[
  {
    "path": ".editorconfig",
    "content": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\nindent_size = 2\nindent_style = space\ninsert_final_newline = false\nmax_line_length = 120\ntab_width = 2\nij_continuation_indent_size = 2\nij_formatter_off_tag = @formatter:off\nij_formatter_on_tag = @formatter:on\nij_formatter_tags_enabled = true\nij_smart_tabs = false\nij_visual_guides =\nij_wrap_on_typing = false\n\n[*.css]\nij_css_align_closing_brace_with_properties = false\nij_css_blank_lines_around_nested_selector = 1\nij_css_blank_lines_between_blocks = 0\nij_css_block_comment_add_space = false\nij_css_brace_placement = end_of_line\nij_css_enforce_quotes_on_format = false\nij_css_hex_color_long_format = false\nij_css_hex_color_lower_case = false\nij_css_hex_color_short_format = false\nij_css_hex_color_upper_case = false\nij_css_keep_blank_lines_in_code = 2\nij_css_keep_indents_on_empty_lines = false\nij_css_keep_single_line_blocks = false\nij_css_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow\nij_css_space_after_colon = true\nij_css_space_before_opening_brace = true\nij_css_use_double_quotes = true\nij_css_value_alignment = do_not_align\n\n[*.js]\nij_javascript_align_imports = false\nij_javascript_align_multiline_array_initializer_expression = false\nij_javascript_align_multiline_binary_operation = false\nij_javascript_align_multiline_chained_methods = false\nij_javascript_align_multiline_extends_list = false\nij_javascript_align_multiline_for = true\nij_javascript_align_multiline_parameters = true\nij_javascript_align_multiline_parameters_in_calls = false\nij_javascript_align_multiline_ternary_operation = false\nij_javascript_align_object_properties = 0\nij_javascript_align_union_types = false\nij_javascript_align_var_statements = 0\nij_javascript_array_initializer_new_line_after_left_brace = false\nij_javascript_array_initializer_right_brace_on_new_line = false\nij_javascript_array_initializer_wrap = off\nij_javascript_assignment_wrap = off\nij_javascript_binary_operation_sign_on_next_line = false\nij_javascript_binary_operation_wrap = off\nij_javascript_blacklist_imports = rxjs/Rx, node_modules/**, **/node_modules/**, @angular/material, @angular/material/typings/**\nij_javascript_blank_lines_after_imports = 1\nij_javascript_blank_lines_around_class = 1\nij_javascript_blank_lines_around_field = 0\nij_javascript_blank_lines_around_function = 1\nij_javascript_blank_lines_around_method = 1\nij_javascript_block_brace_style = end_of_line\nij_javascript_block_comment_add_space = false\nij_javascript_block_comment_at_first_column = true\nij_javascript_call_parameters_new_line_after_left_paren = false\nij_javascript_call_parameters_right_paren_on_new_line = false\nij_javascript_call_parameters_wrap = off\nij_javascript_catch_on_new_line = false\nij_javascript_chained_call_dot_on_new_line = true\nij_javascript_class_brace_style = end_of_line\nij_javascript_class_decorator_wrap = split_into_lines\nij_javascript_class_field_decorator_wrap = off\nij_javascript_class_method_decorator_wrap = off\nij_javascript_comma_on_new_line = false\nij_javascript_do_while_brace_force = never\nij_javascript_else_on_new_line = false\nij_javascript_enforce_trailing_comma = keep\nij_javascript_extends_keyword_wrap = off\nij_javascript_extends_list_wrap = off\nij_javascript_field_prefix = _\nij_javascript_file_name_style = relaxed\nij_javascript_finally_on_new_line = false\nij_javascript_for_brace_force = never\nij_javascript_for_statement_new_line_after_left_paren = false\nij_javascript_for_statement_right_paren_on_new_line = false\nij_javascript_for_statement_wrap = off\nij_javascript_force_quote_style = false\nij_javascript_force_semicolon_style = false\nij_javascript_function_expression_brace_style = end_of_line\nij_javascript_function_parameter_decorator_wrap = off\nij_javascript_if_brace_force = never\nij_javascript_import_merge_members = global\nij_javascript_import_prefer_absolute_path = global\nij_javascript_import_sort_members = true\nij_javascript_import_sort_module_name = false\nij_javascript_import_use_node_resolution = true\nij_javascript_imports_wrap = on_every_item\nij_javascript_indent_case_from_switch = true\nij_javascript_indent_chained_calls = true\nij_javascript_indent_package_children = 0\nij_javascript_jsx_attribute_value = braces\nij_javascript_keep_blank_lines_in_code = 2\nij_javascript_keep_first_column_comment = true\nij_javascript_keep_indents_on_empty_lines = false\nij_javascript_keep_line_breaks = true\nij_javascript_keep_simple_blocks_in_one_line = false\nij_javascript_keep_simple_methods_in_one_line = false\nij_javascript_line_comment_add_space = true\nij_javascript_line_comment_at_first_column = false\nij_javascript_method_brace_style = end_of_line\nij_javascript_method_call_chain_wrap = off\nij_javascript_method_parameters_new_line_after_left_paren = false\nij_javascript_method_parameters_right_paren_on_new_line = false\nij_javascript_method_parameters_wrap = off\nij_javascript_object_literal_wrap = on_every_item\nij_javascript_object_types_wrap = on_every_item\nij_javascript_parentheses_expression_new_line_after_left_paren = false\nij_javascript_parentheses_expression_right_paren_on_new_line = false\nij_javascript_place_assignment_sign_on_next_line = false\nij_javascript_prefer_as_type_cast = false\nij_javascript_prefer_explicit_types_function_expression_returns = false\nij_javascript_prefer_explicit_types_function_returns = false\nij_javascript_prefer_explicit_types_vars_fields = false\nij_javascript_prefer_parameters_wrap = false\nij_javascript_property_prefix =\nij_javascript_reformat_c_style_comments = false\nij_javascript_space_after_colon = true\nij_javascript_space_after_comma = true\nij_javascript_space_after_dots_in_rest_parameter = false\nij_javascript_space_after_generator_mult = true\nij_javascript_space_after_property_colon = true\nij_javascript_space_after_quest = true\nij_javascript_space_after_type_colon = true\nij_javascript_space_after_unary_not = false\nij_javascript_space_before_async_arrow_lparen = true\nij_javascript_space_before_catch_keyword = true\nij_javascript_space_before_catch_left_brace = true\nij_javascript_space_before_catch_parentheses = true\nij_javascript_space_before_class_lbrace = true\nij_javascript_space_before_class_left_brace = true\nij_javascript_space_before_colon = true\nij_javascript_space_before_comma = false\nij_javascript_space_before_do_left_brace = true\nij_javascript_space_before_else_keyword = true\nij_javascript_space_before_else_left_brace = true\nij_javascript_space_before_finally_keyword = true\nij_javascript_space_before_finally_left_brace = true\nij_javascript_space_before_for_left_brace = true\nij_javascript_space_before_for_parentheses = true\nij_javascript_space_before_for_semicolon = false\nij_javascript_space_before_function_left_parenth = true\nij_javascript_space_before_generator_mult = false\nij_javascript_space_before_if_left_brace = true\nij_javascript_space_before_if_parentheses = true\nij_javascript_space_before_method_call_parentheses = false\nij_javascript_space_before_method_left_brace = true\nij_javascript_space_before_method_parentheses = false\nij_javascript_space_before_property_colon = false\nij_javascript_space_before_quest = true\nij_javascript_space_before_switch_left_brace = true\nij_javascript_space_before_switch_parentheses = true\nij_javascript_space_before_try_left_brace = true\nij_javascript_space_before_type_colon = false\nij_javascript_space_before_unary_not = false\nij_javascript_space_before_while_keyword = true\nij_javascript_space_before_while_left_brace = true\nij_javascript_space_before_while_parentheses = true\nij_javascript_spaces_around_additive_operators = true\nij_javascript_spaces_around_arrow_function_operator = true\nij_javascript_spaces_around_assignment_operators = true\nij_javascript_spaces_around_bitwise_operators = true\nij_javascript_spaces_around_equality_operators = true\nij_javascript_spaces_around_logical_operators = true\nij_javascript_spaces_around_multiplicative_operators = true\nij_javascript_spaces_around_relational_operators = true\nij_javascript_spaces_around_shift_operators = true\nij_javascript_spaces_around_unary_operator = false\nij_javascript_spaces_within_array_initializer_brackets = false\nij_javascript_spaces_within_brackets = false\nij_javascript_spaces_within_catch_parentheses = false\nij_javascript_spaces_within_for_parentheses = false\nij_javascript_spaces_within_if_parentheses = false\nij_javascript_spaces_within_imports = false\nij_javascript_spaces_within_interpolation_expressions = false\nij_javascript_spaces_within_method_call_parentheses = false\nij_javascript_spaces_within_method_parentheses = false\nij_javascript_spaces_within_object_literal_braces = false\nij_javascript_spaces_within_object_type_braces = true\nij_javascript_spaces_within_parentheses = false\nij_javascript_spaces_within_switch_parentheses = false\nij_javascript_spaces_within_type_assertion = false\nij_javascript_spaces_within_union_types = true\nij_javascript_spaces_within_while_parentheses = false\nij_javascript_special_else_if_treatment = true\nij_javascript_ternary_operation_signs_on_next_line = false\nij_javascript_ternary_operation_wrap = off\nij_javascript_union_types_wrap = on_every_item\nij_javascript_use_chained_calls_group_indents = false\nij_javascript_use_double_quotes = true\nij_javascript_use_explicit_js_extension = auto\nij_javascript_use_import_type = auto\nij_javascript_use_path_mapping = always\nij_javascript_use_public_modifier = false\nij_javascript_use_semicolon_after_statement = true\nij_javascript_var_declaration_wrap = normal\nij_javascript_while_brace_force = never\nij_javascript_while_on_new_line = false\nij_javascript_wrap_comments = false\n\n[*.go]\nindent_style = tab\ntab_width = 4\nij_go_GROUP_CURRENT_PROJECT_IMPORTS = false\nij_go_add_leading_space_to_comments = true\nij_go_add_parentheses_for_single_import = false\nij_go_call_parameters_new_line_after_left_paren = true\nij_go_call_parameters_right_paren_on_new_line = true\nij_go_call_parameters_wrap = on_every_item\nij_go_fill_paragraph_width = 80\nij_go_group_stdlib_imports = false\nij_go_import_sorting = gofmt\nij_go_keep_indents_on_empty_lines = false\nij_go_local_group_mode = project\nij_go_local_package_prefixes =\nij_go_move_all_imports_in_one_declaration = false\nij_go_move_all_stdlib_imports_in_one_group = false\nij_go_remove_redundant_import_aliases = false\nij_go_run_go_fmt_on_reformat = true\nij_go_use_back_quotes_for_imports = false\nij_go_wrap_comp_lit = on_every_item\nij_go_wrap_comp_lit_newline_after_lbrace = true\nij_go_wrap_comp_lit_newline_before_rbrace = true\nij_go_wrap_func_params = on_every_item\nij_go_wrap_func_params_newline_after_lparen = true\nij_go_wrap_func_params_newline_before_rparen = true\nij_go_wrap_func_result = on_every_item\nij_go_wrap_func_result_newline_after_lparen = true\nij_go_wrap_func_result_newline_before_rparen = true\n\n[{*.htm,*.html}]\nij_html_add_new_line_before_tags = body, div, p, form, h1, h2, h3\nij_html_align_attributes = false\nij_html_align_text = false\nij_html_attribute_wrap = normal\nij_html_block_comment_add_space = false\nij_html_block_comment_at_first_column = true\nij_html_do_not_align_children_of_min_lines = 0\nij_html_do_not_break_if_inline_tags = title, h1, h2, h3, h4, h5, h6, p\nij_html_do_not_indent_children_of_tags =\nij_html_enforce_quotes = false\nij_html_inline_tags = a, abbr, acronym, b, basefont, bdo, big, br, cite, cite, code, dfn, em, font, i, img, input, kbd, label, q, s, samp, select, small, span, strike, strong, sub, sup, textarea, tt, u, var\nij_html_keep_blank_lines = 2\nij_html_keep_indents_on_empty_lines = false\nij_html_keep_line_breaks = true\nij_html_keep_line_breaks_in_text = true\nij_html_keep_whitespaces = false\nij_html_keep_whitespaces_inside = span, pre, textarea\nij_html_line_comment_at_first_column = true\nij_html_new_line_after_last_attribute = never\nij_html_new_line_before_first_attribute = never\nij_html_quote_style = double\nij_html_remove_new_line_before_tags = br\nij_html_space_after_tag_name = false\nij_html_space_around_equality_in_attribute = false\nij_html_space_inside_empty_tag = false\nij_html_text_wrap = normal\n\n[{*.markdown,*.md}]\nij_markdown_force_one_space_after_blockquote_symbol = true\nij_markdown_force_one_space_after_header_symbol = true\nij_markdown_force_one_space_after_list_bullet = true\nij_markdown_force_one_space_between_words = true\nij_markdown_format_tables = true\nij_markdown_insert_quote_arrows_on_wrap = true\nij_markdown_keep_indents_on_empty_lines = false\nij_markdown_keep_line_breaks_inside_text_blocks = true\nij_markdown_max_lines_around_block_elements = 1\nij_markdown_max_lines_around_header = 1\nij_markdown_max_lines_between_paragraphs = 1\nij_markdown_min_lines_around_block_elements = 1\nij_markdown_min_lines_around_header = 1\nij_markdown_min_lines_between_paragraphs = 1\nij_markdown_wrap_text_if_long = true\nij_markdown_wrap_text_inside_blockquotes = true\n"
  },
  {
    "path": ".github/workflows/release.yml",
    "content": "on:\n  push:\n    tags:\n      - \"v*\"\nname: Create Release\njobs:\n  create_release:\n    runs-on: ubuntu-latest\n    env:\n      ASSET_FILES: LICENSE README.md access_point_config.tar.gz fix_avatar_colors_for_overlay font schedules static\n        switch_config.txt templates tunnel\n    steps:\n      - name: Install Go\n        uses: actions/setup-go@v2\n        with:\n          go-version: 1.22.x\n\n      - name: Check out code\n        uses: actions/checkout@v2\n\n      - name: Create release\n        id: create_release\n        uses: actions/create-release@v1\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n        with:\n          tag_name: ${{ github.ref }}\n          release_name: Cheesy Arena ${{ github.ref }}\n          body: This is a release of Cheesy Arena for the 2025 FRC game, REEFSCAPE. Download the version for your\n            operating system below. Supported operating systems are Linux, macOS (x64 and M1), and Windows.\n          draft: false\n          prerelease: false\n\n      - name: Set additional environment variables\n        run: |\n          echo \"LINUX_X64_FILENAME=cheesy-arena.${GITHUB_REF:10}.linux.x64.zip\" >> $GITHUB_ENV\n          echo \"MACOS_X64_FILENAME=cheesy-arena.${GITHUB_REF:10}.macos.x64.zip\" >> $GITHUB_ENV\n          echo \"MACOS_M1_FILENAME=cheesy-arena.${GITHUB_REF:10}.macos.m1.zip\" >> $GITHUB_ENV\n          echo \"WINDOWS_X64_FILENAME=cheesy-arena.${GITHUB_REF:10}.windows.x64.zip\" >> $GITHUB_ENV\n\n      - name: Build Linux bundle\n        run: |\n          rm -rf cheesy-arena*\n          mkdir cheesy-arena\n          GOOS=linux GOARCH=amd64 go build -o cheesy-arena/\n          cp -r ${{ env.ASSET_FILES }} cheesy-arena/\n          zip -r -X ${{ env.LINUX_X64_FILENAME }} cheesy-arena\n\n      - name: Upload Linux bundle\n        uses: actions/upload-release-asset@v1\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n        with:\n          upload_url: ${{ steps.create_release.outputs.upload_url }}\n          asset_path: ./${{ env.LINUX_X64_FILENAME }}\n          asset_name: ${{ env.LINUX_X64_FILENAME }}\n          asset_content_type: application/zip\n\n      - name: Build MacOS x64 bundle\n        run: |\n          rm -rf cheesy-arena*\n          mkdir cheesy-arena\n          GOOS=darwin GOARCH=amd64 go build -o cheesy-arena/\n          cp -r ${{ env.ASSET_FILES }} cheesy-arena/\n          zip -r -X ${{ env.MACOS_X64_FILENAME }} cheesy-arena\n\n      - name: Upload MacOS x64 bundle\n        uses: actions/upload-release-asset@v1\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n        with:\n          upload_url: ${{ steps.create_release.outputs.upload_url }}\n          asset_path: ./${{ env.MACOS_X64_FILENAME }}\n          asset_name: ${{ env.MACOS_X64_FILENAME }}\n          asset_content_type: application/zip\n\n      - name: Build MacOS M1 bundle\n        run: |\n          rm -rf cheesy-arena*\n          mkdir cheesy-arena\n          GOOS=darwin GOARCH=arm64 go build -o cheesy-arena/\n          cp -r ${{ env.ASSET_FILES }} cheesy-arena/\n          zip -r -X ${{ env.MACOS_M1_FILENAME }} cheesy-arena\n\n      - name: Upload MacOS M1 bundle\n        uses: actions/upload-release-asset@v1\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n        with:\n          upload_url: ${{ steps.create_release.outputs.upload_url }}\n          asset_path: ./${{ env.MACOS_M1_FILENAME }}\n          asset_name: ${{ env.MACOS_M1_FILENAME }}\n          asset_content_type: application/zip\n\n      - name: Build Windows bundle\n        run: |\n          rm -rf cheesy-arena*\n          mkdir cheesy-arena\n          GOOS=windows GOARCH=amd64 go build -o cheesy-arena/\n          cp -r ${{ env.ASSET_FILES }} cheesy-arena/\n          zip -r -X ${{ env.WINDOWS_X64_FILENAME }} cheesy-arena\n\n      - name: Upload Windows bundle\n        uses: actions/upload-release-asset@v1\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n        with:\n          upload_url: ${{ steps.create_release.outputs.upload_url }}\n          asset_path: ./${{ env.WINDOWS_X64_FILENAME }}\n          asset_name: ${{ env.WINDOWS_X64_FILENAME }}\n          asset_content_type: application/zip\n"
  },
  {
    "path": ".github/workflows/test.yml",
    "content": "on: [ push, pull_request ]\nname: Build/Test\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Install Go\n        uses: actions/setup-go@v2\n        with:\n          go-version: 1.22.x\n      - name: Check out code\n        uses: actions/checkout@v2\n      - name: Build\n        run: go build\n      - name: Test\n        run: go test ./...\n      - name: Check formatting\n        run: test -z \"$(go fmt ./...)\"\n"
  },
  {
    "path": ".gitignore",
    "content": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\ncheesy-arena\n\n# Folders\n_obj\n_test\n.idea\n\n# Architecture specific extensions/prefixes\n*.[568vq]\n[568vq].out\n\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n\n_testmain.go\n\n*.exe\n*.test\n*.db\n*.db-journal\n*.out\n.DS_Store\nstatic/logs\nstatic/img/avatars\n"
  },
  {
    "path": "AGENTS.md",
    "content": "# Repository Guidelines\n\n## Project Structure & Module Organization\n`main.go` is the entry point for the Go web server. Core domains live in top-level packages such as `field/`, `game/`, `network/`, `partner/`, `playoff/`, `tournament/`, and `websocket/`. Web UI assets are in `web/`, `static/`, and `templates/`. Pre-generated schedules are in `schedules/`. BoltDB data is stored in `db/` (and test fixtures in `*_test.db` files at the repo root).\n\n## Build, Test, and Development Commands\nUse Go 1.23+ (see `go.mod`).\n1. `go build`\n   Builds the `cheesy-arena` binary in the repo root.\n1. `./cheesy-arena`\n   Runs the server; open `http://localhost:8080` in a browser.\n1. `go test ./...`\n   Runs all Go tests across packages.\n\n## Coding Style & Naming Conventions\nFollow standard Go style: tabs for indentation, exported names in `CamelCase`, unexported in `camelCase`. Format code with `gofmt` before submitting changes. Keep package names short and domain-focused (matching existing directories like `field`, `game`, `partner`).\n\n## Testing Guidelines\nTests are Go `*_test.go` files co-located with packages (for example `field/`, `game/`, `partner/`, `playoff/`). Use `go test ./...` for the full suite and `go test ./field -run TestName` to target specific areas. When adding new behavior, add or update tests in the same package and prefer table-driven tests for coverage.\n\n## Commit & Pull Request Guidelines\nCommit messages in this repo are short, imperative sentences (for example “Fix driver station TCP reads”) and often include an issue/PR number in parentheses (for example “... (#258)”). Keep to that style.\n\nPRs should include:\n1. A clear summary of the change.\n1. Test notes (exact commands run, for example `go test ./...`).\n1. UI screenshots when changing pages in `web/`, `static/`, or `templates/`.\n\n## Configuration & Ops Notes\nCheesy Arena is designed to run as a local web server and uses BoltDB for data. For field networking and hardware integrations, see the project README and relevant `field/` or `plc/` code before making behavioral changes.\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright (c) 2014, Team 254\nAll rights reserved.\n\nThis software may be used and redistributed subject to the following conditions:\n\n1. The software may be used without restriction for testing, scrimmages,\n   off-season events, and for evaluation purposes.\n2. The software may be modified for such use, but the modifications may not be\n   redistributed without permission from Team 254.\n3. Redistribution for the purpose of contributing to the original project (e.g.\n   forking on GitHub and submitting pull requests) is permitted.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "README.md",
    "content": "Cheesy Arena [![Build Status](https://github.com/Team254/cheesy-arena/actions/workflows/test.yml/badge.svg)](https://github.com/Team254/cheesy-arena/actions)\n============\nA field management system that just works.\n\nFor the game-agnostic version, see [Cheesy Arena Lite](https://github.com/Team254/cheesy-arena-lite).\n\n## Key features\n\n**For participants and spectators**\n\n* Same network isolation and security as the official FIRST FMS\n* No-lag realtime scoring\n* Team stack lights and seven-segment display are replaced by an LCD screen, which shows team info before the match and\n  realtime scoring and timer during the match\n* Smooth-scrolling rankings display\n* Direct publishing of schedule, results, and rankings to The Blue Alliance\n\n**For scorekeepers and event staff**\n\n* Runs on Windows, macOS, and Linux\n* No install prerequisites\n* No \"pre-start\" &ndash; hardware is configured automatically and in the background\n* Flexible and quick match schedule generation\n* Streamlined realtime score entry\n* Reports, results, and logs can be viewed from any computer\n* An arbitrary number of auxiliary displays can be set up using any computer with just a web browser, to show rankings,\n  queueing, field status, etc.\n\n## License\n\nTeams may use Cheesy Arena freely for practice, scrimmages, and off-season events. See [LICENSE](LICENSE) for more\ndetails.\n\n## Installing\n\n**From a pre-built release**\n\nDownload the [latest release](https://github.com/Team254/cheesy-arena/releases). Pre-built packages are available for\nLinux, macOS (x64 and M1), and Windows.\n\nOn recent versions of macOS, you may be prevented from running an app from an unidentified developer;\nsee [these instructions](https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unidentified-developer-mh40616/mac)\non how to bypass the warning.\n\n**From source**\n\n1. Download [Go](https://golang.org/dl/) (version 1.22 or later required)\n1. Clone this GitHub repository to a location of your choice\n1. Navigate to the repository's directory in the terminal\n1. Compile the code with `go build`\n1. Run the `cheesy-arena` or `cheesy-arena.exe` binary\n1. Navigate to http://localhost:8080 in your browser (Google Chrome recommended)\n\n**IP address configuration**\n\nWhen running Cheesy Arena on a playing field with robots, set the IP address of the computer running Cheesy Arena to\n10.0.100.5. By a convention baked into the FRC Driver Station software, driver stations will broadcast their presence on\nthe network to this hardcoded address so that the FMS does not need to discover them by some other method.\n\nWhen running Cheesy Arena without robots for testing or development, any IP address can be used.\n\n## Under the hood\n\nCheesy Arena is written using [Go](https://golang.org), a language developed by Google and first released in 2009. Go\nexcels in the areas of concurrency, networking, performance, and portability, which makes it ideal for a field\nmanagement system.\n\nCheesy Arena is implemented as a web server, with all human interaction done via browser. The graphical interfaces are\nimplemented in HTML, JavaScript, and CSS. There are many advantages to this approach &ndash; development of new\ngraphical elements is rapid, and no software needs to be installed other than on the server. Client web pages send\ncommands and receive updates using WebSockets.\n\n[Bolt](https://github.com/etcd-io/bbolt) is used as the datastore, and making backups or transferring data from one\ninstallation to another is as simple as copying the database file.\n\nSchedule generation is fast because pre-generated schedules are included with the code. Each schedule contains a certain\nnumber of matches per team for placeholder teams 1 through N, so generating the actual match schedule becomes a simple\nexercise in permuting the mapping of real teams to placeholder teams. The pre-generated schedules are checked into this\nrepository and can be vetted in advance of any events for deviations from the randomness (and other) requirements.\n\nCheesy Arena includes support for, but doesn't require, networking hardware similar to that used in official FRC events.\nTeams are issued their own SSIDs and WPA keys, and when connected to Cheesy Arena are isolated to a VLAN which prevents\nany communication other than between the driver station, robot, and event server. The network hardware is reconfigured\nvia SSH and Telnet commands for the new set of teams when each mach is loaded.\n\n## PLC integration\n\nCheesy Arena has the ability to integrate with an Allen-Bradley PLC setup similar to the one that FIRST uses, to read\nfield sensors and control lights and motors. The PLC hardware travels with the FIRST California fields; contact your FTA\nfor more information.\n\nThe PLC code can be found [here](https://github.com/ejordan376/Cheesy-PLC).\n\n## Team Sign integration\n\nCheesy Arena has the ability to integrate with\nthe [Cypress Team Signs](https://cypressintegration.com/customsolutions/teamdisplay/) used at official FRC events. See\nthe [Configuring Cheesy Arena wiki page](https://github.com/Team254/cheesy-arena/wiki/Configuring-Cheesy-Arena-Settings#team-signs)\nfor details configurating the team signs in Cheesy Arena.\n\n## LED hardware\n\nDue to the prohibitive cost of the LEDs and LED controllers used on official fields, for years in which LEDs are\nmandatory for a proper game experience (such as 2018), Cheesy Arena integrates\nwith [Advatek](https://www.advateklights.com) controllers and LEDs.\n\n## Advanced networking\n\nSee the [Advanced Networking wiki page](https://github.com/Team254/cheesy-arena/wiki/Advanced-Networking-Concepts) for\ninstructions on what equipment to obtain and how to configure it in order to support advanced network security.\n\n## Contributing\n\nCheesy Arena is far from finished! You can help by:\n\n* Writing a missing feature, and sending a pull request\n* Filing any bugs or feature requests using the [issue tracker](https://github.com/Team254/cheesy-arena/issues)\n* Contributing documentation to the [wiki](https://github.com/Team254/cheesy-arena/wiki)\n* Sending baked goods to [Pat](https://github.com/patfair)\n\n## Acknowledgements\n\n[Several folks](https://github.com/Team254/cheesy-arena/graphs/contributors) have contributed pull requests. Thanks!\n\nIn addition, the following individuals have contributed to make Cheesy Arena a reality:\n\n* Tom Bottiglieri\n* James Cerar\n* Kiet Chau\n* Travis Covington\n* Nick Eyre\n* Patrick Fairbank\n* Eugene Fang\n* Thad House\n* Ed Jordan\n* Karthik Kanagasabapathy\n* Ken Mitchell\n* Andrew Nabors\n* Jared Russell\n* Ken Schenke\n* Austin Schuh\n* Colin Wilson\n"
  },
  {
    "path": "coverage",
    "content": "go test -coverprofile=coverage.out ./... && sleep 1 && go tool cover -html=coverage.out\n"
  },
  {
    "path": "field/arena.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Functions for controlling the arena and match play.\n\npackage field\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/network\"\n\t\"github.com/Team254/cheesy-arena/partner\"\n\t\"github.com/Team254/cheesy-arena/playoff\"\n\t\"github.com/Team254/cheesy-arena/plc\"\n)\n\nconst (\n\tarenaLoopPeriodMs        = 10\n\tarenaLoopWarningMs       = 5\n\tdsPacketPeriodMs         = 500\n\tdsPacketWarningMs        = 550\n\tperiodicTaskPeriodSec    = 30\n\tmatchEndScoreDwellSec    = 3\n\tpostTimeoutSec           = 4\n\tpreLoadNextMatchDelaySec = 5\n\tscheduledBreakDelaySec   = 5\n\tearlyLateThresholdMin    = 2.5\n\tMaxMatchGapMin           = 20\n)\n\n// Progression of match states.\ntype MatchState int\n\nconst (\n\tPreMatch MatchState = iota\n\tStartMatch\n\tWarmupPeriod\n\tAutoPeriod\n\tPausePeriod\n\tTeleopPeriod\n\tPostMatch\n\tTimeoutActive\n\tPostTimeout\n)\n\ntype Arena struct {\n\tDatabase         *model.Database\n\tEventSettings    *model.EventSettings\n\taccessPoint      network.AccessPoint\n\tnetworkSwitch    *network.Switch\n\tredSCC           *network.SCCSwitch\n\tblueSCC          *network.SCCSwitch\n\tPlc              plc.Plc\n\tTbaClient        *partner.TbaClient\n\tNexusClient      *partner.NexusClient\n\tBlackmagicClient *partner.BlackmagicClient\n\tCompanionClient  *partner.CompanionClient\n\tAllianceStations map[string]*AllianceStation\n\tDisplays         map[string]*Display\n\tTeamSigns        *TeamSigns\n\tScoringPanelRegistry\n\tArenaNotifiers\n\tMatchState\n\tlastMatchState                    MatchState\n\tCurrentMatch                      *model.Match\n\tMatchStartTime                    time.Time\n\tLastMatchTimeSec                  float64\n\tRedRealtimeScore                  *RealtimeScore\n\tBlueRealtimeScore                 *RealtimeScore\n\tlastDsPacketTime                  time.Time\n\tlastPeriodicTaskTime              time.Time\n\tEventStatus                       EventStatus\n\tFieldVolunteers                   bool\n\tFieldReset                        bool\n\tAudienceDisplayMode               string\n\tSavedMatch                        *model.Match\n\tSavedMatchResult                  *model.MatchResult\n\tSavedRankings                     game.Rankings\n\tAllianceStationDisplayMode        string\n\tAllianceSelectionAlliances        []model.Alliance\n\tAllianceSelectionRankedTeams      []model.AllianceSelectionRankedTeam\n\tAllianceSelectionShowTimer        bool\n\tAllianceSelectionTimeRemainingSec int\n\tPlayoffTournament                 *playoff.PlayoffTournament\n\tLowerThird                        *model.LowerThird\n\tShowLowerThird                    bool\n\tMuteMatchSounds                   bool\n\tmatchAborted                      bool\n\tsoundsPlayed                      map[*game.MatchSound]struct{}\n\tbreakDescription                  string\n\tpreloadedTeams                    *[6]*model.Team\n\tNextFoulId                        int\n}\n\ntype AllianceStation struct {\n\tDsConn     *DriverStationConnection\n\tEthernet   bool\n\tAStop      bool\n\tEStop      bool\n\tBypass     bool\n\tTeam       *model.Team\n\tWifiStatus network.TeamWifiStatus\n\taStopReset bool\n\tGameData   string\n}\n\n// Creates the arena and sets it to its initial state.\nfunc NewArena(dbPath string) (*Arena, error) {\n\tarena := new(Arena)\n\tarena.configureNotifiers()\n\tarena.Plc = new(plc.ModbusPlc)\n\n\tarena.AllianceStations = make(map[string]*AllianceStation)\n\tarena.AllianceStations[\"R1\"] = new(AllianceStation)\n\tarena.AllianceStations[\"R2\"] = new(AllianceStation)\n\tarena.AllianceStations[\"R3\"] = new(AllianceStation)\n\tarena.AllianceStations[\"B1\"] = new(AllianceStation)\n\tarena.AllianceStations[\"B2\"] = new(AllianceStation)\n\tarena.AllianceStations[\"B3\"] = new(AllianceStation)\n\n\tarena.Displays = make(map[string]*Display)\n\n\tarena.TeamSigns = NewTeamSigns()\n\n\tvar err error\n\tarena.Database, err = model.OpenDatabase(dbPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = arena.LoadSettings()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tarena.ScoringPanelRegistry.initialize()\n\n\t// Load empty match as current.\n\tarena.MatchState = PreMatch\n\tarena.LoadTestMatch()\n\tarena.LastMatchTimeSec = 0\n\tarena.lastMatchState = -1\n\n\t// Initialize display parameters.\n\tarena.AudienceDisplayMode = \"blank\"\n\tarena.SavedMatch = &model.Match{}\n\tarena.SavedMatchResult = model.NewMatchResult()\n\tarena.AllianceStationDisplayMode = \"match\"\n\n\treturn arena, nil\n}\n\n// Loads or reloads the event settings upon initial setup or change.\nfunc (arena *Arena) LoadSettings() error {\n\tsettings, err := arena.Database.GetEventSettings()\n\tif err != nil {\n\t\treturn err\n\t}\n\tarena.EventSettings = settings\n\n\t// Initialize the components that depend on settings.\n\tarena.TeamSigns.Red1.SetId(settings.TeamSignRed1Id)\n\tarena.TeamSigns.Red2.SetId(settings.TeamSignRed2Id)\n\tarena.TeamSigns.Red3.SetId(settings.TeamSignRed3Id)\n\tarena.TeamSigns.RedTimer.SetId(settings.TeamSignRedTimerId)\n\tarena.TeamSigns.Blue1.SetId(settings.TeamSignBlue1Id)\n\tarena.TeamSigns.Blue2.SetId(settings.TeamSignBlue2Id)\n\tarena.TeamSigns.Blue3.SetId(settings.TeamSignBlue3Id)\n\tarena.TeamSigns.BlueTimer.SetId(settings.TeamSignBlueTimerId)\n\taccessPointWifiStatuses := [6]*network.TeamWifiStatus{\n\t\t&arena.AllianceStations[\"R1\"].WifiStatus,\n\t\t&arena.AllianceStations[\"R2\"].WifiStatus,\n\t\t&arena.AllianceStations[\"R3\"].WifiStatus,\n\t\t&arena.AllianceStations[\"B1\"].WifiStatus,\n\t\t&arena.AllianceStations[\"B2\"].WifiStatus,\n\t\t&arena.AllianceStations[\"B3\"].WifiStatus,\n\t}\n\tarena.accessPoint.SetSettings(\n\t\tsettings.ApAddress,\n\t\tsettings.ApPassword,\n\t\tsettings.ApChannel,\n\t\tsettings.NetworkSecurityEnabled,\n\t\taccessPointWifiStatuses,\n\t)\n\tarena.networkSwitch = network.NewSwitch(settings.SwitchAddress, settings.SwitchPassword)\n\tsccUpCommands := strings.Split(settings.SCCUpCommands, \"\\n\")\n\tsccDownCommands := strings.Split(settings.SCCDownCommands, \"\\n\")\n\tarena.redSCC = network.NewSCCSwitch(\n\t\tsettings.RedSCCAddress,\n\t\tsettings.SCCUsername,\n\t\tsettings.SCCPassword,\n\t\tsccUpCommands,\n\t\tsccDownCommands,\n\t)\n\tarena.blueSCC = network.NewSCCSwitch(\n\t\tsettings.BlueSCCAddress,\n\t\tsettings.SCCUsername,\n\t\tsettings.SCCPassword,\n\t\tsccUpCommands,\n\t\tsccDownCommands,\n\t)\n\tarena.Plc.SetAddress(settings.PlcAddress)\n\tarena.TbaClient = partner.NewTbaClient(settings.TbaEventCode, settings.TbaSecretId, settings.TbaSecret)\n\tarena.NexusClient = partner.NewNexusClient(settings.TbaEventCode)\n\tarena.BlackmagicClient = partner.NewBlackmagicClient(settings.BlackmagicAddresses)\n\n\t// Initialize Companion client with event configurations\n\tcompanionEventConfigs := map[partner.CompanionEvent]partner.CompanionEventConfig{\n\t\tpartner.EventMatchPreview: {\n\t\t\tPage:   settings.CompanionMatchPreviewPage,\n\t\t\tRow:    settings.CompanionMatchPreviewRow,\n\t\t\tColumn: settings.CompanionMatchPreviewColumn,\n\t\t},\n\t\tpartner.EventShowOverlay: {\n\t\t\tPage:   settings.CompanionSetAudiencePage,\n\t\t\tRow:    settings.CompanionSetAudienceRow,\n\t\t\tColumn: settings.CompanionSetAudienceColumn,\n\t\t},\n\t\tpartner.EventMatchStart: {\n\t\t\tPage:   settings.CompanionMatchStartPage,\n\t\t\tRow:    settings.CompanionMatchStartRow,\n\t\t\tColumn: settings.CompanionMatchStartColumn,\n\t\t},\n\t\tpartner.EventTeleopStart: {\n\t\t\tPage:   settings.CompanionTeleopStartPage,\n\t\t\tRow:    settings.CompanionTeleopStartRow,\n\t\t\tColumn: settings.CompanionTeleopStartColumn,\n\t\t},\n\t\tpartner.EventEndgameStart: {\n\t\t\tPage:   settings.CompanionEndgameStartPage,\n\t\t\tRow:    settings.CompanionEndgameStartRow,\n\t\t\tColumn: settings.CompanionEndgameStartColumn,\n\t\t},\n\t\tpartner.EventMatchEnd: {\n\t\t\tPage:   settings.CompanionMatchEndPage,\n\t\t\tRow:    settings.CompanionMatchEndRow,\n\t\t\tColumn: settings.CompanionMatchEndColumn,\n\t\t},\n\t\tpartner.EventShowFinalScore: {\n\t\t\tPage:   settings.CompanionPostResultPage,\n\t\t\tRow:    settings.CompanionPostResultRow,\n\t\t\tColumn: settings.CompanionPostResultColumn,\n\t\t},\n\t\tpartner.EventAllianceSelection: {\n\t\t\tPage:   settings.CompanionAllianceSelectionPage,\n\t\t\tRow:    settings.CompanionAllianceSelectionRow,\n\t\t\tColumn: settings.CompanionAllianceSelectionColumn,\n\t\t},\n\t\tpartner.EventMatchAbort: {\n\t\t\tPage:   settings.CompanionMatchAbortPage,\n\t\t\tRow:    settings.CompanionMatchAbortRow,\n\t\t\tColumn: settings.CompanionMatchAbortColumn,\n\t\t},\n\t}\n\tarena.CompanionClient = partner.NewCompanionClient(\n\t\tsettings.CompanionAddress,\n\t\tsettings.CompanionPort,\n\t\tcompanionEventConfigs,\n\t)\n\n\tgame.MatchTiming.WarmupDurationSec = settings.WarmupDurationSec\n\tgame.MatchTiming.AutoDurationSec = settings.AutoDurationSec\n\tgame.MatchTiming.PauseDurationSec = settings.PauseDurationSec\n\tgame.MatchTiming.TeleopDurationSec = settings.TeleopDurationSec\n\tgame.MatchTiming.WarningRemainingDurationSec = settings.WarningRemainingDurationSec\n\tgame.UpdateMatchSounds()\n\tarena.MatchTimingNotifier.Notify()\n\n\tgame.AutoBonusCoralThreshold = settings.AutoBonusCoralThreshold\n\tgame.CoralBonusPerLevelThreshold = settings.CoralBonusPerLevelThreshold\n\tgame.CoralBonusCoopEnabled = settings.CoralBonusCoopEnabled\n\tgame.BargeBonusPointThreshold = settings.BargeBonusPointThreshold\n\tgame.IncludeAlgaeInBargeBonus = settings.IncludeAlgaeInBargeBonus\n\n\t// Reconstruct the playoff tournament in memory.\n\tif err = arena.CreatePlayoffTournament(); err != nil {\n\t\treturn err\n\t}\n\tif err = arena.UpdatePlayoffTournament(); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Constructs an empty playoff tournament in memory, based only on the number of alliances.\nfunc (arena *Arena) CreatePlayoffTournament() error {\n\tvar err error\n\tarena.PlayoffTournament, err = playoff.NewPlayoffTournament(\n\t\tarena.EventSettings.PlayoffType, arena.EventSettings.NumPlayoffAlliances,\n\t)\n\treturn err\n}\n\n// Performs the one-time creation of all matches for the playoff tournament.\nfunc (arena *Arena) CreatePlayoffMatches(startTime time.Time) error {\n\treturn arena.PlayoffTournament.CreateMatchesAndBreaks(arena.Database, startTime)\n}\n\n// Traverses the playoff tournament rounds to assess winners and populate subsequent matches.\nfunc (arena *Arena) UpdatePlayoffTournament() error {\n\talliances, err := arena.Database.GetAllAlliances()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif len(alliances) > 0 {\n\t\treturn arena.PlayoffTournament.UpdateMatches(arena.Database)\n\t}\n\treturn nil\n}\n\n// Sets up the arena for the given match.\nfunc (arena *Arena) LoadMatch(match *model.Match) error {\n\tif arena.MatchState != PreMatch && arena.MatchState != TimeoutActive {\n\t\treturn fmt.Errorf(\"cannot load match while there is a match still in progress or with results pending\")\n\t}\n\n\tarena.CurrentMatch = match\n\n\tloadedByNexus := false\n\tif match.ShouldAllowNexusSubstitution() && arena.EventSettings.NexusEnabled {\n\t\t// Attempt to get the match lineup from Nexus for FRC.\n\t\tlineup, err := arena.NexusClient.GetLineup(match.TbaMatchKey)\n\t\tif err != nil {\n\t\t\tlog.Printf(\"Failed to load lineup from Nexus: %s\", err.Error())\n\t\t} else {\n\t\t\terr = arena.SubstituteTeams(lineup[0], lineup[1], lineup[2], lineup[3], lineup[4], lineup[5])\n\t\t\tif err != nil {\n\t\t\t\tlog.Printf(\"Failed to substitute teams using Nexus lineup; loading match normally: %s\", err.Error())\n\t\t\t} else {\n\t\t\t\tlog.Printf(\n\t\t\t\t\t\"Successfully loaded lineup for match %s from Nexus: %v\", match.TbaMatchKey.String(), *lineup,\n\t\t\t\t)\n\t\t\t\tloadedByNexus = true\n\t\t\t}\n\t\t}\n\t}\n\n\tif !loadedByNexus {\n\t\terr := arena.assignTeam(match.Red1, \"R1\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\terr = arena.assignTeam(match.Red2, \"R2\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\terr = arena.assignTeam(match.Red3, \"R3\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\terr = arena.assignTeam(match.Blue1, \"B1\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\terr = arena.assignTeam(match.Blue2, \"B2\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\terr = arena.assignTeam(match.Blue3, \"B3\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tarena.setupNetwork(\n\t\t\t[6]*model.Team{\n\t\t\t\tarena.AllianceStations[\"R1\"].Team,\n\t\t\t\tarena.AllianceStations[\"R2\"].Team,\n\t\t\t\tarena.AllianceStations[\"R3\"].Team,\n\t\t\t\tarena.AllianceStations[\"B1\"].Team,\n\t\t\t\tarena.AllianceStations[\"B2\"].Team,\n\t\t\t\tarena.AllianceStations[\"B3\"].Team,\n\t\t\t},\n\t\t\tfalse,\n\t\t)\n\t}\n\n\t// Reset the arena state and realtime scores.\n\tarena.soundsPlayed = make(map[*game.MatchSound]struct{})\n\tarena.RedRealtimeScore = NewRealtimeScore()\n\tarena.BlueRealtimeScore = NewRealtimeScore()\n\tarena.ScoringPanelRegistry.resetScoreCommitted()\n\tarena.Plc.ResetMatch()\n\tarena.NextFoulId = 1\n\n\t// Notify any listeners about the new match.\n\tarena.MatchLoadNotifier.Notify()\n\tarena.RealtimeScoreNotifier.Notify()\n\tarena.AllianceStationDisplayMode = \"match\"\n\tarena.AllianceStationDisplayModeNotifier.Notify()\n\tarena.ScoringStatusNotifier.Notify()\n\n\treturn nil\n}\n\n// Sets a new test match containing no teams as the current match.\nfunc (arena *Arena) LoadTestMatch() error {\n\treturn arena.LoadMatch(&model.Match{Type: model.Test, ShortName: \"T\", LongName: \"Test Match\"})\n}\n\n// Loads the first unplayed match of the current match type.\nfunc (arena *Arena) LoadNextMatch(startScheduledBreak bool) error {\n\tnextMatch, err := arena.getNextMatch(false)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif nextMatch == nil {\n\t\treturn arena.LoadTestMatch()\n\t}\n\terr = arena.LoadMatch(nextMatch)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Start the timeout timer if there is a scheduled break before this match.\n\tif startScheduledBreak {\n\t\tscheduledBreak, err := arena.Database.GetScheduledBreakByMatchTypeOrder(nextMatch.Type, nextMatch.TypeOrder)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif scheduledBreak != nil {\n\t\t\tgo func() {\n\t\t\t\ttime.Sleep(time.Second * scheduledBreakDelaySec)\n\t\t\t\t_ = arena.StartTimeout(scheduledBreak.Description, scheduledBreak.DurationSec)\n\t\t\t}()\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Assigns the given team to the given station, also substituting it into the match record.\nfunc (arena *Arena) SubstituteTeams(red1, red2, red3, blue1, blue2, blue3 int) error {\n\tif !arena.CurrentMatch.ShouldAllowSubstitution() {\n\t\treturn fmt.Errorf(\"Can't substitute teams for qualification matches.\")\n\t}\n\n\tif err := arena.validateTeams(red1, red2, red3, blue1, blue2, blue3); err != nil {\n\t\treturn err\n\t}\n\tif err := arena.assignTeam(red1, \"R1\"); err != nil {\n\t\treturn err\n\t}\n\tif err := arena.assignTeam(red2, \"R2\"); err != nil {\n\t\treturn err\n\t}\n\tif err := arena.assignTeam(red3, \"R3\"); err != nil {\n\t\treturn err\n\t}\n\tif err := arena.assignTeam(blue1, \"B1\"); err != nil {\n\t\treturn err\n\t}\n\tif err := arena.assignTeam(blue2, \"B2\"); err != nil {\n\t\treturn err\n\t}\n\tif err := arena.assignTeam(blue3, \"B3\"); err != nil {\n\t\treturn err\n\t}\n\n\tarena.CurrentMatch.Red1 = red1\n\tarena.CurrentMatch.Red2 = red2\n\tarena.CurrentMatch.Red3 = red3\n\tarena.CurrentMatch.Blue1 = blue1\n\tarena.CurrentMatch.Blue2 = blue2\n\tarena.CurrentMatch.Blue3 = blue3\n\tarena.setupNetwork(\n\t\t[6]*model.Team{\n\t\t\tarena.AllianceStations[\"R1\"].Team,\n\t\t\tarena.AllianceStations[\"R2\"].Team,\n\t\t\tarena.AllianceStations[\"R3\"].Team,\n\t\t\tarena.AllianceStations[\"B1\"].Team,\n\t\t\tarena.AllianceStations[\"B2\"].Team,\n\t\t\tarena.AllianceStations[\"B3\"].Team,\n\t\t},\n\t\tfalse,\n\t)\n\tarena.MatchLoadNotifier.Notify()\n\n\tif arena.CurrentMatch.Type != model.Test {\n\t\tarena.Database.UpdateMatch(arena.CurrentMatch)\n\t}\n\treturn nil\n}\n\n// Starts the match if all conditions are met.\nfunc (arena *Arena) StartMatch() error {\n\terr := arena.checkCanStartMatch()\n\tif err == nil {\n\t\t// Save the match start time to the database for posterity.\n\t\tarena.CurrentMatch.StartedAt = time.Now()\n\t\tif arena.CurrentMatch.Type != model.Test {\n\t\t\tarena.Database.UpdateMatch(arena.CurrentMatch)\n\t\t}\n\t\tarena.updateCycleTime(arena.CurrentMatch.StartedAt)\n\n\t\t// Save the missed packet count to subtract it from the running count.\n\t\tfor _, allianceStation := range arena.AllianceStations {\n\t\t\tif allianceStation.DsConn != nil {\n\t\t\t\terr = allianceStation.DsConn.signalMatchStart(arena.CurrentMatch, &allianceStation.WifiStatus)\n\t\t\t\tif err != nil {\n\t\t\t\t\tlog.Println(err)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Save the teams that have successfully connected to the field.\n\t\t\tif allianceStation.Team != nil && !allianceStation.Team.HasConnected && allianceStation.DsConn != nil &&\n\t\t\t\tallianceStation.DsConn.RobotLinked {\n\t\t\t\tallianceStation.Team.HasConnected = true\n\t\t\t\tarena.Database.UpdateTeam(allianceStation.Team)\n\t\t\t}\n\t\t}\n\n\t\t// Propagate which teams were bypassed to the tracked score.\n\t\tfor i := 0; i < 3; i++ {\n\t\t\tstationNumber := strconv.Itoa(i + 1)\n\t\t\tarena.RedRealtimeScore.CurrentScore.RobotsBypassed[i] = arena.AllianceStations[\"R\"+stationNumber].Bypass\n\t\t\tarena.BlueRealtimeScore.CurrentScore.RobotsBypassed[i] = arena.AllianceStations[\"B\"+stationNumber].Bypass\n\t\t}\n\n\t\tarena.MatchState = StartMatch\n\t}\n\treturn err\n}\n\n// Kills the current match or timeout if it is underway.\nfunc (arena *Arena) AbortMatch() error {\n\tif arena.MatchState == PreMatch || arena.MatchState == PostMatch || arena.MatchState == PostTimeout {\n\t\treturn fmt.Errorf(\"cannot abort match when it is not in progress\")\n\t}\n\n\tif arena.MatchState == TimeoutActive {\n\t\t// Handle by advancing the timeout clock to the end and letting the regular logic deal with it.\n\t\tarena.MatchStartTime = time.Now().Add(-time.Second * time.Duration(game.MatchTiming.TimeoutDurationSec))\n\t\treturn nil\n\t}\n\n\tif arena.MatchState != WarmupPeriod {\n\t\tarena.PlaySound(\"abort\")\n\t}\n\tarena.MatchState = PostMatch\n\tarena.matchAborted = true\n\tarena.AudienceDisplayMode = \"blank\"\n\tarena.AudienceDisplayModeNotifier.Notify()\n\tgo arena.BlackmagicClient.StopRecording()\n\tgo arena.CompanionClient.SendEvent(partner.EventMatchAbort)\n\treturn nil\n}\n\n// Clears out the match and resets the arena state unless there is a match underway.\nfunc (arena *Arena) ResetMatch() error {\n\tif arena.MatchState != PostMatch && arena.MatchState != PreMatch && arena.MatchState != TimeoutActive {\n\t\treturn fmt.Errorf(\"cannot reset match while it is in progress\")\n\t}\n\tif arena.MatchState != TimeoutActive {\n\t\tarena.MatchState = PreMatch\n\t}\n\tarena.matchAborted = false\n\tarena.AllianceStations[\"R1\"].Bypass = false\n\tarena.AllianceStations[\"R2\"].Bypass = false\n\tarena.AllianceStations[\"R3\"].Bypass = false\n\tarena.AllianceStations[\"B1\"].Bypass = false\n\tarena.AllianceStations[\"B2\"].Bypass = false\n\tarena.AllianceStations[\"B3\"].Bypass = false\n\tarena.MuteMatchSounds = false\n\treturn nil\n}\n\n// Starts a timeout of the given duration.\nfunc (arena *Arena) StartTimeout(description string, durationSec int) error {\n\tif arena.MatchState != PreMatch {\n\t\treturn fmt.Errorf(\"cannot start timeout while there is a match still in progress or with results pending\")\n\t}\n\n\tgame.MatchTiming.TimeoutDurationSec = durationSec\n\tgame.UpdateMatchSounds()\n\tarena.soundsPlayed = make(map[*game.MatchSound]struct{})\n\tarena.MatchTimingNotifier.Notify()\n\tarena.breakDescription = description\n\tarena.MatchLoadNotifier.Notify()\n\tarena.MatchState = TimeoutActive\n\tarena.MatchStartTime = time.Now()\n\tarena.LastMatchTimeSec = -1\n\tarena.AllianceStationDisplayMode = \"timeout\"\n\tarena.AllianceStationDisplayModeNotifier.Notify()\n\n\treturn nil\n}\n\n// Updates the audience display screen.\nfunc (arena *Arena) SetAudienceDisplayMode(mode string) {\n\tif arena.AudienceDisplayMode != mode {\n\t\tarena.AudienceDisplayMode = mode\n\t\tarena.AudienceDisplayModeNotifier.Notify()\n\t\tif mode == \"score\" {\n\t\t\tarena.PlaySound(\"match_result\")\n\t\t\tgo arena.CompanionClient.SendEvent(partner.EventShowFinalScore)\n\t\t} else if mode == \"allianceSelection\" {\n\t\t\tgo arena.CompanionClient.SendEvent(partner.EventAllianceSelection)\n\t\t} else if mode == \"intro\" {\n\t\t\tgo arena.CompanionClient.SendEvent(partner.EventMatchPreview)\n\t\t} else if mode == \"match\" {\n\t\t\tgo arena.CompanionClient.SendEvent(partner.EventShowOverlay)\n\t\t}\n\t}\n}\n\n// Updates the alliance station display screen.\nfunc (arena *Arena) SetAllianceStationDisplayMode(mode string) {\n\tif arena.AllianceStationDisplayMode != mode {\n\t\tarena.AllianceStationDisplayMode = mode\n\t\tarena.AllianceStationDisplayModeNotifier.Notify()\n\t}\n}\n\n// Returns the fractional number of seconds since the start of the match.\nfunc (arena *Arena) MatchTimeSec() float64 {\n\tif arena.MatchState == PreMatch || arena.MatchState == StartMatch || arena.MatchState == PostMatch {\n\t\treturn 0\n\t} else {\n\t\treturn time.Since(arena.MatchStartTime).Seconds()\n\t}\n}\n\n// Performs a single iteration of checking inputs and timers and setting outputs accordingly to control the\n// flow of a match.\nfunc (arena *Arena) Update() {\n\t// Decide what state the robots need to be in, depending on where we are in the match.\n\tauto := false\n\tenabled := false\n\tsendDsPacket := false\n\tmatchTimeSec := arena.MatchTimeSec()\n\tswitch arena.MatchState {\n\tcase PreMatch:\n\t\tauto = true\n\t\tenabled = false\n\t\t// Set all game data values to empty\n\t\tfor _, allianceStation := range arena.AllianceStations {\n\t\t\tallianceStation.GameData = \"\"\n\t\t}\n\tcase StartMatch:\n\t\tarena.MatchStartTime = time.Now()\n\t\tarena.LastMatchTimeSec = -1\n\t\tauto = true\n\t\tarena.AudienceDisplayMode = \"match\"\n\t\tarena.AudienceDisplayModeNotifier.Notify()\n\t\tarena.AllianceStationDisplayMode = \"match\"\n\t\tarena.AllianceStationDisplayModeNotifier.Notify()\n\t\tgo arena.BlackmagicClient.StartRecording()\n\t\tgo arena.CompanionClient.SendEvent(partner.EventMatchStart)\n\t\tif game.MatchTiming.WarmupDurationSec > 0 {\n\t\t\tarena.MatchState = WarmupPeriod\n\t\t\tenabled = false\n\t\t\tsendDsPacket = false\n\t\t} else {\n\t\t\tarena.MatchState = AutoPeriod\n\t\t\tenabled = true\n\t\t\tsendDsPacket = true\n\t\t}\n\t\tarena.Plc.ResetMatch()\n\t\tarena.FieldVolunteers = false\n\t\tarena.FieldReset = false\n\tcase WarmupPeriod:\n\t\tauto = true\n\t\tenabled = false\n\t\tif matchTimeSec >= float64(game.MatchTiming.WarmupDurationSec) {\n\t\t\tarena.MatchState = AutoPeriod\n\t\t\tauto = true\n\t\t\tenabled = true\n\t\t\tsendDsPacket = true\n\t\t}\n\tcase AutoPeriod:\n\t\tauto = true\n\t\tenabled = true\n\t\tif matchTimeSec >= game.GetDurationToAutoEnd().Seconds() {\n\t\t\tauto = false\n\t\t\tsendDsPacket = true\n\t\t\tif game.MatchTiming.PauseDurationSec > 0 {\n\t\t\t\tarena.MatchState = PausePeriod\n\t\t\t\tenabled = false\n\t\t\t} else {\n\t\t\t\tarena.MatchState = TeleopPeriod\n\t\t\t\tenabled = true\n\t\t\t\tgo arena.CompanionClient.SendEvent(partner.EventTeleopStart)\n\t\t\t}\n\t\t}\n\tcase PausePeriod:\n\t\tauto = false\n\t\tenabled = false\n\t\tif matchTimeSec >= game.GetDurationToTeleopStart().Seconds() {\n\t\t\tarena.MatchState = TeleopPeriod\n\t\t\tauto = false\n\t\t\tenabled = true\n\t\t\tsendDsPacket = true\n\t\t\tgo arena.CompanionClient.SendEvent(partner.EventTeleopStart)\n\t\t}\n\tcase TeleopPeriod:\n\t\tauto = false\n\t\tenabled = true\n\t\tif matchTimeSec >= game.GetDurationToTeleopEnd().Seconds() {\n\t\t\tarena.MatchState = PostMatch\n\t\t\tauto = false\n\t\t\tenabled = false\n\t\t\tsendDsPacket = true\n\t\t\tgo arena.BlackmagicClient.StopRecording()\n\t\t\tgo arena.CompanionClient.SendEvent(partner.EventMatchEnd)\n\t\t\tgo func() {\n\t\t\t\t// Leave the scores on the screen briefly at the end of the match.\n\t\t\t\ttime.Sleep(time.Second * matchEndScoreDwellSec)\n\t\t\t\tarena.AudienceDisplayMode = \"blank\"\n\t\t\t\tarena.AudienceDisplayModeNotifier.Notify()\n\t\t\t}()\n\t\t\tgo func() {\n\t\t\t\t// Configure the network in advance for the next match after a delay.\n\t\t\t\ttime.Sleep(time.Second * preLoadNextMatchDelaySec)\n\t\t\t\tarena.preLoadNextMatch()\n\t\t\t}()\n\t\t}\n\tcase TimeoutActive:\n\t\tif matchTimeSec >= float64(game.MatchTiming.TimeoutDurationSec) {\n\t\t\tarena.MatchState = PostTimeout\n\t\t\tgo func() {\n\t\t\t\t// Leave the timer on the screen briefly at the end of the timeout period.\n\t\t\t\ttime.Sleep(time.Second * matchEndScoreDwellSec)\n\t\t\t\tarena.AudienceDisplayMode = \"blank\"\n\t\t\t\tarena.AudienceDisplayModeNotifier.Notify()\n\t\t\t\tarena.AllianceStationDisplayMode = \"logo\"\n\t\t\t\tarena.AllianceStationDisplayModeNotifier.Notify()\n\t\t\t}()\n\t\t}\n\tcase PostTimeout:\n\t\tif matchTimeSec >= float64(game.MatchTiming.TimeoutDurationSec+postTimeoutSec) {\n\t\t\tarena.MatchState = PreMatch\n\t\t}\n\t}\n\n\t// Send a match tick notification if passing an integer second threshold or if the match state changed.\n\tif int(matchTimeSec) != int(arena.LastMatchTimeSec) || arena.MatchState != arena.lastMatchState {\n\t\tarena.MatchTimeNotifier.Notify()\n\t}\n\n\t// Send a packet if at a period transition point or if it's been long enough since the last one.\n\tmsSinceLastDsPacket := int(time.Since(arena.lastDsPacketTime).Seconds() * 1000)\n\tif sendDsPacket || msSinceLastDsPacket >= dsPacketPeriodMs {\n\t\tif msSinceLastDsPacket >= dsPacketWarningMs && arena.lastDsPacketTime.After(time.Time{}) {\n\t\t\tlog.Printf(\"Warning: Long time since last driver station packet: %dms\", msSinceLastDsPacket)\n\t\t}\n\t\tarena.sendDsPacket(auto, enabled)\n\t\tarena.ArenaStatusNotifier.Notify()\n\t}\n\n\t// Handle the Companion EndGameStart event.\n\tarena.checkEndgameStart(matchTimeSec)\n\n\tarena.handleSounds(matchTimeSec)\n\n\t// Handle field sensors/lights/actuators.\n\tarena.handlePlcInputOutput()\n\n\t// Handle the team number / timer displays.\n\tarena.TeamSigns.Update(arena)\n\n\tarena.LastMatchTimeSec = matchTimeSec\n\tarena.lastMatchState = arena.MatchState\n}\n\n// Checks if the endgame warning period has started and triggers the Companion event if so.\nfunc (arena *Arena) checkEndgameStart(matchTimeSec float64) {\n\t// Only check during teleop period\n\tif arena.MatchState != TeleopPeriod {\n\t\treturn\n\t}\n\n\t// Calculate the time when endgame warning should start\n\tendgameStartTime := float64(\n\t\tgame.MatchTiming.AutoDurationSec + game.MatchTiming.PauseDurationSec +\n\t\t\tgame.MatchTiming.TeleopDurationSec - game.MatchTiming.WarningRemainingDurationSec,\n\t)\n\n\t// Check if we've crossed the endgame threshold and haven't already triggered it\n\tif matchTimeSec >= endgameStartTime && arena.LastMatchTimeSec < endgameStartTime {\n\t\tgo arena.CompanionClient.SendEvent(partner.EventEndgameStart)\n\t}\n}\n\n// Loops indefinitely to track and update the arena components.\nfunc (arena *Arena) Run() {\n\t// Start other loops in goroutines.\n\tgo arena.listenForDriverStations()\n\tgo arena.listenForDsUdpPackets()\n\tgo arena.accessPoint.Run()\n\tgo arena.Plc.Run()\n\n\tfor {\n\t\tloopStartTime := time.Now()\n\t\tarena.Update()\n\t\tif time.Since(loopStartTime).Milliseconds() > arenaLoopWarningMs {\n\t\t\tlog.Printf(\"Warning: Arena loop iteration took a long time: %dms\", time.Since(loopStartTime).Milliseconds())\n\t\t}\n\t\tif time.Since(arena.lastPeriodicTaskTime).Seconds() >= periodicTaskPeriodSec {\n\t\t\tarena.lastPeriodicTaskTime = time.Now()\n\t\t\tgo arena.runPeriodicTasks()\n\t\t}\n\n\t\ttime.Sleep(time.Millisecond * arenaLoopPeriodMs)\n\t}\n}\n\n// Calculates the red alliance score summary for the given realtime snapshot.\nfunc (arena *Arena) RedScoreSummary() *game.ScoreSummary {\n\treturn arena.RedRealtimeScore.CurrentScore.Summarize(&arena.BlueRealtimeScore.CurrentScore)\n}\n\n// Calculates the blue alliance score summary for the given realtime snapshot.\nfunc (arena *Arena) BlueScoreSummary() *game.ScoreSummary {\n\treturn arena.BlueRealtimeScore.CurrentScore.Summarize(&arena.RedRealtimeScore.CurrentScore)\n}\n\n// Checks that the given teams are present in the database, allowing team ID 0 which indicates an empty spot.\nfunc (arena *Arena) validateTeams(teamIds ...int) error {\n\tfor _, teamId := range teamIds {\n\t\tif teamId == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tteam, err := arena.Database.GetTeamById(teamId)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif team == nil {\n\t\t\treturn fmt.Errorf(\"Team %d is not present at the event.\", teamId)\n\t\t}\n\t}\n\treturn nil\n}\n\n// Loads a team into an alliance station, cleaning up the previous team there if there is one.\nfunc (arena *Arena) assignTeam(teamId int, station string) error {\n\t// Reject invalid station values.\n\tif _, ok := arena.AllianceStations[station]; !ok {\n\t\treturn fmt.Errorf(\"Invalid alliance station '%s'.\", station)\n\t}\n\n\t// Force the A-stop to be reset by the new team if it is already pressed (if the PLC is enabled).\n\tarena.AllianceStations[station].aStopReset = !arena.Plc.IsEnabled()\n\n\t// Do nothing if the station is already assigned to the requested team.\n\tdsConn := arena.AllianceStations[station].DsConn\n\tif dsConn != nil && dsConn.TeamId == teamId {\n\t\treturn nil\n\t}\n\tif dsConn != nil {\n\t\tdsConn.close()\n\t\tarena.AllianceStations[station].Team = nil\n\t\tarena.AllianceStations[station].DsConn = nil\n\t}\n\n\t// Leave the station empty if the team number is zero.\n\tif teamId == 0 {\n\t\tarena.AllianceStations[station].Team = nil\n\t\treturn nil\n\t}\n\n\t// Load the team model. If it doesn't exist, enable anonymous operation.\n\tteam, err := arena.Database.GetTeamById(teamId)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif team == nil {\n\t\tteam = &model.Team{Id: teamId}\n\t}\n\n\tarena.AllianceStations[station].Team = team\n\treturn nil\n}\n\n// Returns the next match of the same type that is currently loaded, or nil if there are no more matches.\nfunc (arena *Arena) getNextMatch(excludeCurrent bool) (*model.Match, error) {\n\tif arena.CurrentMatch.Type == model.Test {\n\t\treturn nil, nil\n\t}\n\n\tmatches, err := arena.Database.GetMatchesByType(arena.CurrentMatch.Type, false)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfor _, match := range matches {\n\t\tif !match.IsComplete() && !(excludeCurrent && match.Id == arena.CurrentMatch.Id) {\n\t\t\treturn &match, nil\n\t\t}\n\t}\n\n\t// There are no matches left of the same type.\n\treturn nil, nil\n}\n\n// Configures the field network for the next match in advance of the current match being scored and committed.\nfunc (arena *Arena) preLoadNextMatch() {\n\tif arena.MatchState != PostMatch {\n\t\t// The next match has already been loaded; no need to do anything.\n\t\treturn\n\t}\n\n\tnextMatch, err := arena.getNextMatch(true)\n\tif err != nil {\n\t\tlog.Printf(\"Failed to pre-load next match: %s\", err.Error())\n\t}\n\tif nextMatch == nil {\n\t\treturn\n\t}\n\n\tteamIds := [6]int{nextMatch.Red1, nextMatch.Red2, nextMatch.Red3, nextMatch.Blue1, nextMatch.Blue2, nextMatch.Blue3}\n\tif nextMatch.ShouldAllowNexusSubstitution() && arena.EventSettings.NexusEnabled {\n\t\t// Attempt to get the match lineup from Nexus for FRC.\n\t\tlineup, err := arena.NexusClient.GetLineup(nextMatch.TbaMatchKey)\n\t\tif err != nil {\n\t\t\tlog.Printf(\"Failed to load lineup from Nexus: %s\", err.Error())\n\t\t} else {\n\t\t\tteamIds = *lineup\n\t\t}\n\t}\n\n\tvar teams [6]*model.Team\n\tfor i, teamId := range teamIds {\n\t\tif teamId == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tif teams[i], err = arena.Database.GetTeamById(teamId); err != nil {\n\t\t\tlog.Printf(\"Failed to get model for Team %d while pre-loading next match: %s\", teamId, err.Error())\n\t\t}\n\t}\n\tarena.setupNetwork(teams, true)\n\tarena.TeamSigns.SetNextMatchTeams(teamIds)\n}\n\n// Enable or disable the team ethernet ports on both SCCs\nfunc (arena *Arena) setSCCEthernetEnabled(enabled bool) {\n\tif arena.EventSettings.SCCManagementEnabled {\n\t\tvar wg sync.WaitGroup\n\t\twg.Add(2)\n\n\t\tconfigureSCC := func(scc *network.SCCSwitch, name string) {\n\t\t\tdefer wg.Done()\n\t\t\terr := scc.SetTeamEthernetEnabled(enabled)\n\t\t\tif err != nil {\n\t\t\t\tlog.Printf(\"Failed to set %s SCC enabled state to %t: %s\", name, enabled, err.Error())\n\t\t\t}\n\t\t}\n\t\tgo configureSCC(arena.redSCC, \"red\")\n\t\tgo configureSCC(arena.blueSCC, \"blue\")\n\t\twg.Wait()\n\t}\n}\n\n// Asynchronously reconfigures the networking hardware for the new set of teams.\nfunc (arena *Arena) setupNetwork(teams [6]*model.Team, isPreload bool) {\n\tif isPreload {\n\t\tarena.preloadedTeams = &teams\n\t} else if arena.preloadedTeams != nil {\n\t\tpreloadedTeams := *arena.preloadedTeams\n\t\tarena.preloadedTeams = nil\n\t\tif reflect.DeepEqual(teams, preloadedTeams) {\n\t\t\t// Skip configuring the network; this is the same set of teams that was preloaded.\n\t\t\treturn\n\t\t}\n\t}\n\n\tif arena.EventSettings.NetworkSecurityEnabled {\n\t\tif err := arena.accessPoint.ConfigureTeamWifi(teams); err != nil {\n\t\t\tlog.Printf(\"Failed to configure team WiFi: %s\", err.Error())\n\t\t}\n\t\tgo func() {\n\t\t\tarena.setSCCEthernetEnabled(false)\n\t\t\tif err := arena.networkSwitch.ConfigureTeamEthernet(teams); err != nil {\n\t\t\t\tlog.Printf(\"Failed to configure team Ethernet: %s\", err.Error())\n\t\t\t}\n\t\t\tarena.setSCCEthernetEnabled(true)\n\t\t}()\n\t}\n}\n\n// Returns nil if the match can be started, and an error otherwise.\nfunc (arena *Arena) checkCanStartMatch() error {\n\tif arena.MatchState != PreMatch {\n\t\treturn fmt.Errorf(\"cannot start match while there is a match still in progress or with results pending\")\n\t}\n\n\terr := arena.checkAllianceStationsReady(\"R1\", \"R2\", \"R3\", \"B1\", \"B2\", \"B3\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif arena.Plc.IsEnabled() {\n\t\tif !arena.Plc.IsHealthy() {\n\t\t\treturn fmt.Errorf(\"cannot start match while PLC is not healthy\")\n\t\t}\n\t\tif arena.Plc.GetFieldEStop() {\n\t\t\treturn fmt.Errorf(\"cannot start match while field emergency stop is active\")\n\t\t}\n\t\tfor name, status := range arena.Plc.GetArmorBlockStatuses() {\n\t\t\tif !status {\n\t\t\t\treturn fmt.Errorf(\"cannot start match while PLC ArmorBlock %q is not connected\", name)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (arena *Arena) checkAllianceStationsReady(stations ...string) error {\n\tfor _, station := range stations {\n\t\tallianceStation := arena.AllianceStations[station]\n\t\tif allianceStation.EStop {\n\t\t\treturn fmt.Errorf(\"cannot start match while an emergency stop is active\")\n\t\t}\n\t\tif !allianceStation.aStopReset {\n\t\t\treturn fmt.Errorf(\"cannot start match if an autonomous stop has not been reset since the previous match\")\n\t\t}\n\t\tif !allianceStation.Bypass {\n\t\t\tif allianceStation.DsConn == nil || !allianceStation.DsConn.RobotLinked {\n\t\t\t\treturn fmt.Errorf(\"cannot start match until all robots are connected or bypassed\")\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (arena *Arena) sendDsPacket(auto bool, enabled bool) {\n\tfor _, allianceStation := range arena.AllianceStations {\n\t\tdsConn := allianceStation.DsConn\n\t\tif dsConn != nil {\n\t\t\tdsConn.Auto = auto\n\t\t\tdsConn.Enabled = enabled && !allianceStation.EStop && !(auto && allianceStation.AStop) &&\n\t\t\t\t!allianceStation.Bypass\n\t\t\tdsConn.EStop = allianceStation.EStop\n\t\t\tdsConn.AStop = allianceStation.AStop\n\t\t\terr := dsConn.update(arena, allianceStation.GameData)\n\t\t\tif err != nil {\n\t\t\t\tlog.Printf(\"Unable to send driver station packet for team %d.\", allianceStation.Team.Id)\n\t\t\t}\n\t\t}\n\t}\n\tarena.lastDsPacketTime = time.Now()\n}\n\n// Returns the alliance station identifier for the given team, or the empty string if the team is not present\n// in the current match.\nfunc (arena *Arena) getAssignedAllianceStation(teamId int) string {\n\tfor station, allianceStation := range arena.AllianceStations {\n\t\tif allianceStation.Team != nil && allianceStation.Team.Id == teamId {\n\t\t\treturn station\n\t\t}\n\t}\n\n\treturn \"\"\n}\n\n// Updates the score given new input information from the field PLC, and actuates PLC outputs accordingly.\nfunc (arena *Arena) handlePlcInputOutput() {\n\tif !arena.Plc.IsEnabled() {\n\t\treturn\n\t}\n\n\t// Handle PLC functions that are always active.\n\tif arena.Plc.GetFieldEStop() && !arena.matchAborted {\n\t\tarena.AbortMatch()\n\t}\n\tredEStops, blueEStops := arena.Plc.GetTeamEStops()\n\tredAStops, blueAStops := arena.Plc.GetTeamAStops()\n\tarena.handleTeamStop(\"R1\", redEStops[0], redAStops[0])\n\tarena.handleTeamStop(\"R2\", redEStops[1], redAStops[1])\n\tarena.handleTeamStop(\"R3\", redEStops[2], redAStops[2])\n\tarena.handleTeamStop(\"B1\", blueEStops[0], blueAStops[0])\n\tarena.handleTeamStop(\"B2\", blueEStops[1], blueAStops[1])\n\tarena.handleTeamStop(\"B3\", blueEStops[2], blueAStops[2])\n\tredEthernets, blueEthernets := arena.Plc.GetEthernetConnected()\n\tarena.AllianceStations[\"R1\"].Ethernet = redEthernets[0]\n\tarena.AllianceStations[\"R2\"].Ethernet = redEthernets[1]\n\tarena.AllianceStations[\"R3\"].Ethernet = redEthernets[2]\n\tarena.AllianceStations[\"B1\"].Ethernet = blueEthernets[0]\n\tarena.AllianceStations[\"B2\"].Ethernet = blueEthernets[1]\n\tarena.AllianceStations[\"B3\"].Ethernet = blueEthernets[2]\n\n\t// Handle in-match PLC functions.\n\tredScore := &arena.RedRealtimeScore.CurrentScore\n\toldRedScore := *redScore\n\tblueScore := &arena.BlueRealtimeScore.CurrentScore\n\toldBlueScore := *blueScore\n\tmatchStartTime := arena.MatchStartTime\n\tcurrentTime := time.Now()\n\tteleopGracePeriod := matchStartTime.Add(game.GetDurationToTeleopEnd() + game.TeleopGracePeriodSec*time.Second)\n\tinGracePeriod := arena.MatchState == PostMatch && currentTime.Before(teleopGracePeriod) && !arena.matchAborted\n\n\tredAllianceReady := arena.checkAllianceStationsReady(\"R1\", \"R2\", \"R3\") == nil\n\tblueAllianceReady := arena.checkAllianceStationsReady(\"B1\", \"B2\", \"B3\") == nil\n\n\t// Handle the evergreen PLC functions: stack lights, stack buzzer, and field reset light.\n\tswitch arena.MatchState {\n\tcase PreMatch:\n\t\tif arena.lastMatchState != PreMatch {\n\t\t\tarena.Plc.SetFieldResetLight(true)\n\t\t}\n\t\tfallthrough\n\tcase TimeoutActive:\n\t\tfallthrough\n\tcase PostTimeout:\n\t\t// Set the stack light state -- solid alliance color(s) if robots are not connected, solid orange if scores are\n\t\t// not input, or blinking green if ready.\n\t\tgreenStackLight := redAllianceReady && blueAllianceReady && arena.Plc.GetCycleState(2, 0, 2)\n\t\tarena.Plc.SetStackLights(!redAllianceReady, !blueAllianceReady, false, greenStackLight)\n\t\tarena.Plc.SetStackBuzzer(redAllianceReady && blueAllianceReady)\n\n\t\t// Turn off lights if all teams become ready.\n\t\tif redAllianceReady && blueAllianceReady {\n\t\t\tarena.FieldVolunteers = false\n\t\t\tarena.FieldReset = false\n\t\t\tarena.Plc.SetFieldResetLight(false)\n\t\t\tif arena.CurrentMatch.FieldReadyAt.IsZero() {\n\t\t\t\tarena.CurrentMatch.FieldReadyAt = time.Now()\n\t\t\t}\n\t\t}\n\tcase PostMatch:\n\t\tif arena.FieldReset {\n\t\t\tarena.Plc.SetFieldResetLight(true)\n\t\t}\n\t\tscoreReady := arena.RedRealtimeScore.FoulsCommitted && arena.BlueRealtimeScore.FoulsCommitted &&\n\t\t\tarena.positionPostMatchScoreReady(\"red_near\") && arena.positionPostMatchScoreReady(\"red_far\") &&\n\t\t\tarena.positionPostMatchScoreReady(\"blue_near\") && arena.positionPostMatchScoreReady(\"blue_far\")\n\t\tarena.Plc.SetStackLights(false, false, !scoreReady, false)\n\tcase AutoPeriod, PausePeriod, TeleopPeriod:\n\t\tarena.Plc.SetStackBuzzer(false)\n\t\tarena.Plc.SetStackLights(!redAllianceReady, !blueAllianceReady, false, true)\n\t}\n\n\t// Get all the game-specific inputs and update the score.\n\tif arena.MatchState == AutoPeriod || arena.MatchState == PausePeriod || arena.MatchState == TeleopPeriod ||\n\t\tinGracePeriod {\n\t\tredScore.ProcessorAlgae, blueScore.ProcessorAlgae = arena.Plc.GetProcessorCounts()\n\t}\n\tif !oldRedScore.Equals(redScore) || !oldBlueScore.Equals(blueScore) {\n\t\tarena.RealtimeScoreNotifier.Notify()\n\t}\n\n\t// Handle the truss lights.\n\tif arena.MatchState == AutoPeriod || arena.MatchState == PausePeriod || arena.MatchState == TeleopPeriod {\n\t\twarningSequenceActive, lights := trussLightWarningSequence(arena.MatchTimeSec())\n\t\tif warningSequenceActive {\n\t\t\tarena.Plc.SetTrussLights(lights, lights)\n\t\t} else {\n\t\t\tif !game.CoralBonusCoopEnabled || arena.CurrentMatch.Type == model.Playoff {\n\t\t\t\t// Just leave the lights on all match if co-op is not enabled for this match (or event).\n\t\t\t\tarena.Plc.SetTrussLights([3]bool{true, true, true}, [3]bool{true, true, true})\n\t\t\t} else {\n\t\t\t\t// Set the lights to reflect co-op status.\n\t\t\t\tif arena.RedScoreSummary().CoopertitionBonus && arena.BlueScoreSummary().CoopertitionBonus {\n\t\t\t\t\tarena.Plc.SetTrussLights([3]bool{true, true, true}, [3]bool{true, true, true})\n\t\t\t\t} else {\n\t\t\t\t\tarena.Plc.SetTrussLights(\n\t\t\t\t\t\t[3]bool{\n\t\t\t\t\t\t\tarena.RedRealtimeScore.CurrentScore.ProcessorAlgae >= 1,\n\t\t\t\t\t\t\tarena.RedRealtimeScore.CurrentScore.ProcessorAlgae >= 2,\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[3]bool{\n\t\t\t\t\t\t\tarena.BlueRealtimeScore.CurrentScore.ProcessorAlgae >= 1,\n\t\t\t\t\t\t\tarena.BlueRealtimeScore.CurrentScore.ProcessorAlgae >= 2,\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t},\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tarena.Plc.SetTrussLights(\n\t\t\t[3]bool{inGracePeriod, inGracePeriod, inGracePeriod}, [3]bool{inGracePeriod, inGracePeriod, inGracePeriod},\n\t\t)\n\t}\n}\n\nfunc (arena *Arena) handleTeamStop(station string, eStopState, aStopState bool) {\n\tallianceStation := arena.AllianceStations[station]\n\tif eStopState {\n\t\tallianceStation.EStop = true\n\t} else if arena.MatchTimeSec() == 0 {\n\t\t// Keep the E-stop latched until the match is over.\n\t\tallianceStation.EStop = false\n\t}\n\tif aStopState {\n\t\tallianceStation.AStop = true\n\t} else if arena.MatchState != AutoPeriod {\n\t\t// Keep the A-stop latched until the autonomous period is over.\n\t\tallianceStation.AStop = false\n\t\tallianceStation.aStopReset = true\n\t}\n}\n\nfunc (arena *Arena) handleSounds(matchTimeSec float64) {\n\tif arena.MatchState == PreMatch || arena.MatchState == TimeoutActive || arena.MatchState == PostTimeout {\n\t\t// Only apply this logic during a match.\n\t\treturn\n\t}\n\n\tfor _, sound := range game.MatchSounds {\n\t\tif sound.MatchTimeSec < 0 {\n\t\t\t// Skip sounds with negative timestamps; they are meant to only be triggered explicitly.\n\t\t\tcontinue\n\t\t}\n\t\tif _, ok := arena.soundsPlayed[sound]; !ok {\n\t\t\tif matchTimeSec >= sound.MatchTimeSec && matchTimeSec-sound.MatchTimeSec < 1 {\n\t\t\t\tarena.PlaySound(sound.Name)\n\t\t\t\tarena.soundsPlayed[sound] = struct{}{}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (arena *Arena) PlaySound(name string) {\n\tif !arena.MuteMatchSounds {\n\t\tarena.PlaySoundNotifier.NotifyWithMessage(name)\n\t}\n}\n\nfunc (arena *Arena) positionPostMatchScoreReady(position string) bool {\n\tnumPanels := arena.ScoringPanelRegistry.GetNumPanels(position)\n\treturn numPanels > 0 && arena.ScoringPanelRegistry.GetNumScoreCommitted(position) >= numPanels\n}\n\n// Performs any actions that need to run at the interval specified by periodicTaskPeriodSec.\nfunc (arena *Arena) runPeriodicTasks() {\n\tarena.updateEarlyLateMessage()\n\tarena.purgeDisconnectedDisplays()\n}\n\n// trussLightWarningSequence generates the sequence of truss light states during the \"sonar ping\" warning sound. It\n// returns true if the sequence is active, and an array of booleans indicating the state of each truss light.\nfunc trussLightWarningSequence(matchTimeSec float64) (bool, [3]bool) {\n\tstepTimeSec := 0.2\n\tsequence := []int{1, 2, 3, 2, 1, 2, 3, 0, 0, 1, 2, 3, 2, 1, 2, 3, 0, 0}\n\tstartTime := float64(\n\t\tgame.MatchTiming.WarmupDurationSec + game.MatchTiming.AutoDurationSec + game.MatchTiming.PauseDurationSec +\n\t\t\tgame.MatchTiming.TeleopDurationSec - game.MatchTiming.WarningRemainingDurationSec,\n\t)\n\tlights := [3]bool{false, false, false}\n\n\tif matchTimeSec < startTime {\n\t\t// The sequence is not active yet.\n\t\treturn false, lights\n\t}\n\n\tstep := int((matchTimeSec - startTime) / stepTimeSec)\n\tif step < len(sequence) && sequence[step] > 0 {\n\t\tlights[sequence[step]-1] = true\n\t}\n\treturn step < len(sequence), lights\n}\n"
  },
  {
    "path": "field/arena_notifiers.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Contains configuration of the publish-subscribe notifiers that allow the arena to push updates to websocket clients.\n\npackage field\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/playoff\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"strconv\"\n)\n\ntype ArenaNotifiers struct {\n\tAllianceSelectionNotifier          *websocket.Notifier\n\tAllianceStationDisplayModeNotifier *websocket.Notifier\n\tArenaStatusNotifier                *websocket.Notifier\n\tAudienceDisplayModeNotifier        *websocket.Notifier\n\tDisplayConfigurationNotifier       *websocket.Notifier\n\tEventStatusNotifier                *websocket.Notifier\n\tLowerThirdNotifier                 *websocket.Notifier\n\tMatchLoadNotifier                  *websocket.Notifier\n\tMatchTimeNotifier                  *websocket.Notifier\n\tMatchTimingNotifier                *websocket.Notifier\n\tPlaySoundNotifier                  *websocket.Notifier\n\tRealtimeScoreNotifier              *websocket.Notifier\n\tReloadDisplaysNotifier             *websocket.Notifier\n\tScorePostedNotifier                *websocket.Notifier\n\tScoringStatusNotifier              *websocket.Notifier\n}\n\ntype MatchTimeMessage struct {\n\tMatchState\n\tMatchTimeSec int\n}\n\ntype audienceAllianceScoreFields struct {\n\tScore        *game.Score\n\tScoreSummary *game.ScoreSummary\n}\n\n// Instantiates notifiers and configures their message producing methods.\nfunc (arena *Arena) configureNotifiers() {\n\tarena.AllianceSelectionNotifier = websocket.NewNotifier(\"allianceSelection\", arena.generateAllianceSelectionMessage)\n\tarena.AllianceStationDisplayModeNotifier = websocket.NewNotifier(\n\t\t\"allianceStationDisplayMode\", arena.generateAllianceStationDisplayModeMessage,\n\t)\n\tarena.ArenaStatusNotifier = websocket.NewNotifier(\"arenaStatus\", arena.generateArenaStatusMessage)\n\tarena.AudienceDisplayModeNotifier = websocket.NewNotifier(\n\t\t\"audienceDisplayMode\", arena.generateAudienceDisplayModeMessage,\n\t)\n\tarena.DisplayConfigurationNotifier = websocket.NewNotifier(\n\t\t\"displayConfiguration\", arena.generateDisplayConfigurationMessage,\n\t)\n\tarena.EventStatusNotifier = websocket.NewNotifier(\"eventStatus\", arena.generateEventStatusMessage)\n\tarena.LowerThirdNotifier = websocket.NewNotifier(\"lowerThird\", arena.generateLowerThirdMessage)\n\tarena.MatchLoadNotifier = websocket.NewNotifier(\"matchLoad\", arena.GenerateMatchLoadMessage)\n\tarena.MatchTimeNotifier = websocket.NewNotifier(\"matchTime\", arena.generateMatchTimeMessage)\n\tarena.MatchTimingNotifier = websocket.NewNotifier(\"matchTiming\", arena.generateMatchTimingMessage)\n\tarena.PlaySoundNotifier = websocket.NewNotifier(\"playSound\", nil)\n\tarena.RealtimeScoreNotifier = websocket.NewNotifier(\"realtimeScore\", arena.generateRealtimeScoreMessage)\n\tarena.ReloadDisplaysNotifier = websocket.NewNotifier(\"reload\", nil)\n\tarena.ScorePostedNotifier = websocket.NewNotifier(\"scorePosted\", arena.GenerateScorePostedMessage)\n\tarena.ScoringStatusNotifier = websocket.NewNotifier(\"scoringStatus\", arena.generateScoringStatusMessage)\n}\n\nfunc (arena *Arena) generateAllianceSelectionMessage() any {\n\treturn &struct {\n\t\tAlliances        []model.Alliance\n\t\tShowTimer        bool\n\t\tTimeRemainingSec int\n\t\tRankedTeams      []model.AllianceSelectionRankedTeam\n\t}{\n\t\tarena.AllianceSelectionAlliances,\n\t\tarena.AllianceSelectionShowTimer,\n\t\tarena.AllianceSelectionTimeRemainingSec,\n\t\tarena.AllianceSelectionRankedTeams,\n\t}\n}\n\nfunc (arena *Arena) generateAllianceStationDisplayModeMessage() any {\n\treturn arena.AllianceStationDisplayMode\n}\n\nfunc (arena *Arena) generateArenaStatusMessage() any {\n\treturn &struct {\n\t\tMatchId          int\n\t\tAllianceStations map[string]*AllianceStation\n\t\tMatchState\n\t\tCanStartMatch         bool\n\t\tAccessPointStatus     string\n\t\tSwitchStatus          string\n\t\tRedSCCStatus          string\n\t\tBlueSCCStatus         string\n\t\tPlcIsHealthy          bool\n\t\tFieldEStop            bool\n\t\tPlcArmorBlockStatuses map[string]bool\n\t}{\n\t\tarena.CurrentMatch.Id,\n\t\tarena.AllianceStations,\n\t\tarena.MatchState,\n\t\tarena.checkCanStartMatch() == nil,\n\t\tarena.accessPoint.Status,\n\t\tarena.networkSwitch.Status,\n\t\tarena.redSCC.Status,\n\t\tarena.blueSCC.Status,\n\t\tarena.Plc.IsHealthy(),\n\t\tarena.Plc.GetFieldEStop(),\n\t\tarena.Plc.GetArmorBlockStatuses(),\n\t}\n}\n\nfunc (arena *Arena) generateAudienceDisplayModeMessage() any {\n\treturn arena.AudienceDisplayMode\n}\n\nfunc (arena *Arena) generateDisplayConfigurationMessage() any {\n\t// Notify() for this notifier must always called from a method that has a lock on the display mutex.\n\t// Make a copy of the map to avoid potential data races; otherwise the same map would get iterated through as it is\n\t// serialized to JSON, outside the mutex lock.\n\tdisplaysCopy := make(map[string]Display)\n\tfor displayId, display := range arena.Displays {\n\t\tdisplaysCopy[displayId] = *display\n\t}\n\treturn displaysCopy\n}\n\nfunc (arena *Arena) generateEventStatusMessage() any {\n\treturn arena.EventStatus\n}\n\nfunc (arena *Arena) generateLowerThirdMessage() any {\n\treturn &struct {\n\t\tLowerThird     *model.LowerThird\n\t\tShowLowerThird bool\n\t}{arena.LowerThird, arena.ShowLowerThird}\n}\n\nfunc (arena *Arena) GenerateMatchLoadMessage() any {\n\tteams := make(map[string]*model.Team)\n\tvar allTeamIds []int\n\tfor station, allianceStation := range arena.AllianceStations {\n\t\tteams[station] = allianceStation.Team\n\t\tif allianceStation.Team != nil {\n\t\t\tallTeamIds = append(allTeamIds, allianceStation.Team.Id)\n\t\t}\n\t}\n\n\tmatchResult, _ := arena.Database.GetMatchResultForMatch(arena.CurrentMatch.Id)\n\tisReplay := matchResult != nil\n\n\tvar matchup *playoff.Matchup\n\tredOffFieldTeams := []*model.Team{}\n\tblueOffFieldTeams := []*model.Team{}\n\tif arena.CurrentMatch.Type == model.Playoff {\n\t\tmatchGroup := arena.PlayoffTournament.MatchGroups()[arena.CurrentMatch.PlayoffMatchGroupId]\n\t\tmatchup, _ = matchGroup.(*playoff.Matchup)\n\t\tredOffFieldTeamIds, blueOffFieldTeamIds, _ := arena.Database.GetOffFieldTeamIds(arena.CurrentMatch)\n\t\tfor _, teamId := range redOffFieldTeamIds {\n\t\t\tteam, _ := arena.Database.GetTeamById(teamId)\n\t\t\tredOffFieldTeams = append(redOffFieldTeams, team)\n\t\t\tallTeamIds = append(allTeamIds, teamId)\n\t\t}\n\t\tfor _, teamId := range blueOffFieldTeamIds {\n\t\t\tteam, _ := arena.Database.GetTeamById(teamId)\n\t\t\tblueOffFieldTeams = append(blueOffFieldTeams, team)\n\t\t\tallTeamIds = append(allTeamIds, teamId)\n\t\t}\n\t}\n\n\trankings := make(map[string]int)\n\tfor _, teamId := range allTeamIds {\n\t\tranking, _ := arena.Database.GetRankingForTeam(teamId)\n\t\tif ranking != nil {\n\t\t\trankings[strconv.Itoa(teamId)] = ranking.Rank\n\t\t}\n\t}\n\n\treturn &struct {\n\t\tMatch             *model.Match\n\t\tAllowSubstitution bool\n\t\tIsReplay          bool\n\t\tTeams             map[string]*model.Team\n\t\tRankings          map[string]int\n\t\tMatchup           *playoff.Matchup\n\t\tRedOffFieldTeams  []*model.Team\n\t\tBlueOffFieldTeams []*model.Team\n\t\tBreakDescription  string\n\t}{\n\t\tarena.CurrentMatch,\n\t\tarena.CurrentMatch.ShouldAllowSubstitution(),\n\t\tisReplay,\n\t\tteams,\n\t\trankings,\n\t\tmatchup,\n\t\tredOffFieldTeams,\n\t\tblueOffFieldTeams,\n\t\tarena.breakDescription,\n\t}\n}\n\nfunc (arena *Arena) generateMatchTimeMessage() any {\n\treturn MatchTimeMessage{arena.MatchState, int(arena.MatchTimeSec())}\n}\n\nfunc (arena *Arena) generateMatchTimingMessage() any {\n\treturn &game.MatchTiming\n}\n\nfunc (arena *Arena) generateRealtimeScoreMessage() any {\n\tfields := struct {\n\t\tRed       *audienceAllianceScoreFields\n\t\tBlue      *audienceAllianceScoreFields\n\t\tRedCards  map[string]string\n\t\tBlueCards map[string]string\n\t\tMatchState\n\t}{\n\t\tgetAudienceAllianceScoreFields(arena.RedRealtimeScore, arena.RedScoreSummary()),\n\t\tgetAudienceAllianceScoreFields(arena.BlueRealtimeScore, arena.BlueScoreSummary()),\n\t\tarena.RedRealtimeScore.Cards,\n\t\tarena.BlueRealtimeScore.Cards,\n\t\tarena.MatchState,\n\t}\n\treturn &fields\n}\n\nfunc (arena *Arena) GenerateScorePostedMessage() any {\n\tredScoreSummary := arena.SavedMatchResult.RedScoreSummary()\n\tblueScoreSummary := arena.SavedMatchResult.BlueScoreSummary()\n\tredRankingPoints := redScoreSummary.BonusRankingPoints\n\tblueRankingPoints := blueScoreSummary.BonusRankingPoints\n\tswitch arena.SavedMatch.Status {\n\tcase game.RedWonMatch:\n\t\tredRankingPoints += 3\n\tcase game.BlueWonMatch:\n\t\tblueRankingPoints += 3\n\tcase game.TieMatch:\n\t\tredRankingPoints++\n\t\tblueRankingPoints++\n\t}\n\n\t// For playoff matches, summarize the state of the series.\n\tvar redWins, blueWins int\n\tvar redDestination, blueDestination string\n\tredOffFieldTeamIds := []int{}\n\tblueOffFieldTeamIds := []int{}\n\tif arena.SavedMatch.Type == model.Playoff {\n\t\tmatchGroup := arena.PlayoffTournament.MatchGroups()[arena.SavedMatch.PlayoffMatchGroupId]\n\t\tif matchup, ok := matchGroup.(*playoff.Matchup); ok {\n\t\t\tredWins = matchup.RedAllianceWins\n\t\t\tblueWins = matchup.BlueAllianceWins\n\t\t\tredDestination = matchup.RedAllianceDestination()\n\t\t\tblueDestination = matchup.BlueAllianceDestination()\n\t\t}\n\t\tredOffFieldTeamIds, blueOffFieldTeamIds, _ = arena.Database.GetOffFieldTeamIds(arena.SavedMatch)\n\t}\n\n\tredRankings := map[int]*game.Ranking{\n\t\tarena.SavedMatch.Red1: nil, arena.SavedMatch.Red2: nil, arena.SavedMatch.Red3: nil,\n\t}\n\tblueRankings := map[int]*game.Ranking{\n\t\tarena.SavedMatch.Blue1: nil, arena.SavedMatch.Blue2: nil, arena.SavedMatch.Blue3: nil,\n\t}\n\tfor index, ranking := range arena.SavedRankings {\n\t\tif _, ok := redRankings[ranking.TeamId]; ok {\n\t\t\tredRankings[ranking.TeamId] = &arena.SavedRankings[index]\n\t\t}\n\t\tif _, ok := blueRankings[ranking.TeamId]; ok {\n\t\t\tblueRankings[ranking.TeamId] = &arena.SavedRankings[index]\n\t\t}\n\t}\n\n\treturn &struct {\n\t\tMatch               *model.Match\n\t\tRedScoreSummary     *game.ScoreSummary\n\t\tBlueScoreSummary    *game.ScoreSummary\n\t\tRedRankingPoints    int\n\t\tBlueRankingPoints   int\n\t\tRedFouls            []game.Foul\n\t\tBlueFouls           []game.Foul\n\t\tRulesViolated       map[int]*game.Rule\n\t\tRedCards            map[string]string\n\t\tBlueCards           map[string]string\n\t\tRedRankings         map[int]*game.Ranking\n\t\tBlueRankings        map[int]*game.Ranking\n\t\tRedOffFieldTeamIds  []int\n\t\tBlueOffFieldTeamIds []int\n\t\tRedWon              bool\n\t\tBlueWon             bool\n\t\tRedWins             int\n\t\tBlueWins            int\n\t\tRedDestination      string\n\t\tBlueDestination     string\n\t\tCoopertitionEnabled bool\n\t}{\n\t\tarena.SavedMatch,\n\t\tredScoreSummary,\n\t\tblueScoreSummary,\n\t\tredRankingPoints,\n\t\tblueRankingPoints,\n\t\tarena.SavedMatchResult.RedScore.Fouls,\n\t\tarena.SavedMatchResult.BlueScore.Fouls,\n\t\tgetRulesViolated(arena.SavedMatchResult.RedScore.Fouls, arena.SavedMatchResult.BlueScore.Fouls),\n\t\tarena.SavedMatchResult.RedCards,\n\t\tarena.SavedMatchResult.BlueCards,\n\t\tredRankings,\n\t\tblueRankings,\n\t\tredOffFieldTeamIds,\n\t\tblueOffFieldTeamIds,\n\t\tarena.SavedMatch.Status == game.RedWonMatch,\n\t\tarena.SavedMatch.Status == game.BlueWonMatch,\n\t\tredWins,\n\t\tblueWins,\n\t\tredDestination,\n\t\tblueDestination,\n\t\tgame.CoralBonusCoopEnabled,\n\t}\n}\n\nfunc (arena *Arena) generateScoringStatusMessage() any {\n\ttype positionStatus struct {\n\t\tReady          bool\n\t\tNumPanels      int\n\t\tNumPanelsReady int\n\t}\n\tgetStatusForPosition := func(position string) positionStatus {\n\t\treturn positionStatus{\n\t\t\tReady:          arena.positionPostMatchScoreReady(position),\n\t\t\tNumPanels:      arena.ScoringPanelRegistry.GetNumPanels(position),\n\t\t\tNumPanelsReady: arena.GetNumScoreCommitted(position),\n\t\t}\n\t}\n\n\treturn &struct {\n\t\tRefereeScoreReady bool\n\t\tPositionStatuses  map[string]positionStatus\n\t}{\n\t\tarena.RedRealtimeScore.FoulsCommitted && arena.BlueRealtimeScore.FoulsCommitted,\n\t\tmap[string]positionStatus{\n\t\t\t\"red_near\":  getStatusForPosition(\"red_near\"),\n\t\t\t\"red_far\":   getStatusForPosition(\"red_far\"),\n\t\t\t\"blue_near\": getStatusForPosition(\"blue_near\"),\n\t\t\t\"blue_far\":  getStatusForPosition(\"blue_far\"),\n\t\t},\n\t}\n}\n\n// Constructs the data object for one alliance sent to the audience display for the realtime scoring overlay.\nfunc getAudienceAllianceScoreFields(\n\tallianceScore *RealtimeScore,\n\tallianceScoreSummary *game.ScoreSummary,\n) *audienceAllianceScoreFields {\n\tfields := new(audienceAllianceScoreFields)\n\tfields.Score = &allianceScore.CurrentScore\n\tfields.ScoreSummary = allianceScoreSummary\n\treturn fields\n}\n\n// Produce a map of rules that were violated by either alliance so that they are available to the announcer.\nfunc getRulesViolated(redFouls, blueFouls []game.Foul) map[int]*game.Rule {\n\trules := make(map[int]*game.Rule)\n\tfor _, foul := range redFouls {\n\t\trules[foul.RuleId] = game.GetRuleById(foul.RuleId)\n\t}\n\tfor _, foul := range blueFouls {\n\t\trules[foul.RuleId] = game.GetRuleById(foul.RuleId)\n\t}\n\treturn rules\n}\n"
  },
  {
    "path": "field/arena_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage field\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/partner\"\n\t\"github.com/Team254/cheesy-arena/playoff\"\n\t\"github.com/Team254/cheesy-arena/tournament\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestAssignTeam(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\tteam := model.Team{Id: 254}\n\terr := arena.Database.CreateTeam(&team)\n\tassert.Nil(t, err)\n\terr = arena.Database.CreateTeam(&model.Team{Id: 1114})\n\tassert.Nil(t, err)\n\n\terr = arena.assignTeam(254, \"B1\")\n\tassert.Nil(t, err)\n\tassert.Equal(t, team, *arena.AllianceStations[\"B1\"].Team)\n\tdummyDs := &DriverStationConnection{TeamId: 254}\n\tarena.AllianceStations[\"B1\"].DsConn = dummyDs\n\n\t// Nothing should happen if the same team is assigned to the same station.\n\terr = arena.assignTeam(254, \"B1\")\n\tassert.Nil(t, err)\n\tassert.Equal(t, team, *arena.AllianceStations[\"B1\"].Team)\n\tassert.NotNil(t, arena.AllianceStations[\"B1\"])\n\tassert.Equal(t, dummyDs, arena.AllianceStations[\"B1\"].DsConn) // Pointer equality\n\n\t// Test reassignment to another team.\n\terr = arena.assignTeam(1114, \"B1\")\n\tassert.Nil(t, err)\n\tassert.NotEqual(t, team, *arena.AllianceStations[\"B1\"].Team)\n\tassert.Nil(t, arena.AllianceStations[\"B1\"].DsConn)\n\n\t// Check assigning zero as the team number.\n\terr = arena.assignTeam(0, \"R2\")\n\tassert.Nil(t, err)\n\tassert.Nil(t, arena.AllianceStations[\"R2\"].Team)\n\tassert.Nil(t, arena.AllianceStations[\"R2\"].DsConn)\n\n\t// Check assigning to a non-existent station.\n\terr = arena.assignTeam(254, \"R4\")\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"Invalid alliance station\")\n\t}\n}\n\nfunc TestArenaCheckCanStartMatch(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\t// Check robot state constraints.\n\terr := arena.checkCanStartMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot start match until all robots are connected or bypassed\")\n\t}\n\tarena.AllianceStations[\"R1\"].Bypass = true\n\tarena.AllianceStations[\"R2\"].Bypass = true\n\tarena.AllianceStations[\"R3\"].Bypass = true\n\tarena.AllianceStations[\"B1\"].Bypass = true\n\tarena.AllianceStations[\"B2\"].Bypass = true\n\terr = arena.checkCanStartMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot start match until all robots are connected or bypassed\")\n\t}\n\tarena.AllianceStations[\"B3\"].Bypass = true\n\tassert.Nil(t, arena.checkCanStartMatch())\n\n\t// Check PLC constraints.\n\tarena.Plc.SetAddress(\"1.2.3.4\")\n\terr = arena.checkCanStartMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot start match while PLC is not healthy\")\n\t}\n\tarena.Plc.SetAddress(\"\")\n\tassert.Nil(t, arena.checkCanStartMatch())\n}\n\nfunc TestArenaMatchFlow(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\tarena.Database.CreateTeam(&model.Team{Id: 254})\n\tassert.Nil(t, arena.assignTeam(254, \"B3\"))\n\tdummyDs := &DriverStationConnection{TeamId: 254}\n\tarena.AllianceStations[\"B3\"].DsConn = dummyDs\n\tarena.Database.CreateTeam(&model.Team{Id: 1678})\n\tassert.Nil(t, arena.assignTeam(254, \"R2\"))\n\tdummyDs = &DriverStationConnection{TeamId: 1678}\n\tarena.AllianceStations[\"R2\"].DsConn = dummyDs\n\n\t// Check pre-match state and packet timing.\n\tassert.Equal(t, PreMatch, arena.MatchState)\n\tarena.lastDsPacketTime = arena.lastDsPacketTime.Add(-300 * time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, true, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\tlastPacketCount := arena.AllianceStations[\"B3\"].DsConn.packetCount\n\tarena.lastDsPacketTime = arena.lastDsPacketTime.Add(-10 * time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, lastPacketCount, arena.AllianceStations[\"B3\"].DsConn.packetCount)\n\tarena.lastDsPacketTime = arena.lastDsPacketTime.Add(-550 * time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, lastPacketCount+1, arena.AllianceStations[\"B3\"].DsConn.packetCount)\n\n\t// Check match start, autonomous and transition to teleop.\n\tarena.AllianceStations[\"R1\"].Bypass = true\n\tarena.AllianceStations[\"R2\"].DsConn.RobotLinked = true\n\tarena.AllianceStations[\"R3\"].Bypass = true\n\tarena.AllianceStations[\"B1\"].Bypass = true\n\tarena.AllianceStations[\"B2\"].Bypass = true\n\tarena.AllianceStations[\"B3\"].DsConn.RobotLinked = true\n\tassert.Nil(t, arena.StartMatch())\n\tarena.Update()\n\tassert.Equal(t, WarmupPeriod, arena.MatchState)\n\tassert.Equal(t, true, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\tassert.Equal(t, true, arena.RedRealtimeScore.CurrentScore.RobotsBypassed[0])\n\tassert.Equal(t, false, arena.RedRealtimeScore.CurrentScore.RobotsBypassed[1])\n\tassert.Equal(t, true, arena.RedRealtimeScore.CurrentScore.RobotsBypassed[2])\n\tassert.Equal(t, true, arena.BlueRealtimeScore.CurrentScore.RobotsBypassed[0])\n\tassert.Equal(t, true, arena.BlueRealtimeScore.CurrentScore.RobotsBypassed[1])\n\tassert.Equal(t, false, arena.BlueRealtimeScore.CurrentScore.RobotsBypassed[2])\n\tarena.Update()\n\tassert.Equal(t, WarmupPeriod, arena.MatchState)\n\tassert.Equal(t, true, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\tarena.MatchStartTime = time.Now().Add(-time.Duration(game.MatchTiming.WarmupDurationSec) * time.Second)\n\tarena.Update()\n\tassert.Equal(t, AutoPeriod, arena.MatchState)\n\tassert.Equal(t, true, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, true, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\tarena.Update()\n\tassert.Equal(t, AutoPeriod, arena.MatchState)\n\tassert.Equal(t, true, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, true, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\tarena.MatchStartTime = time.Now().Add(\n\t\t-time.Duration(game.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec) * time.Second,\n\t)\n\tarena.Update()\n\tassert.Equal(t, PausePeriod, arena.MatchState)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\tarena.Update()\n\tassert.Equal(t, PausePeriod, arena.MatchState)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\tarena.MatchStartTime = time.Now().Add(\n\t\t-time.Duration(\n\t\t\tgame.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec+game.MatchTiming.PauseDurationSec,\n\t\t) * time.Second,\n\t)\n\tarena.Update()\n\tassert.Equal(t, TeleopPeriod, arena.MatchState)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, true, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\tarena.Update()\n\tassert.Equal(t, TeleopPeriod, arena.MatchState)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, true, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\n\t// Check E-stop and bypass.\n\tarena.AllianceStations[\"B3\"].EStop = true\n\tarena.lastDsPacketTime = arena.lastDsPacketTime.Add(-550 * time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, TeleopPeriod, arena.MatchState)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\tarena.AllianceStations[\"B3\"].Bypass = true\n\tarena.lastDsPacketTime = arena.lastDsPacketTime.Add(-550 * time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, TeleopPeriod, arena.MatchState)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\tarena.AllianceStations[\"B3\"].EStop = false\n\tarena.lastDsPacketTime = arena.lastDsPacketTime.Add(-550 * time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, TeleopPeriod, arena.MatchState)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\tarena.AllianceStations[\"B3\"].Bypass = false\n\tarena.lastDsPacketTime = arena.lastDsPacketTime.Add(-550 * time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, TeleopPeriod, arena.MatchState)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, true, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\n\t// Check match end.\n\tarena.MatchStartTime = time.Now().Add(\n\t\t-time.Duration(\n\t\t\tgame.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec+game.MatchTiming.PauseDurationSec+\n\t\t\t\tgame.MatchTiming.TeleopDurationSec,\n\t\t) * time.Second,\n\t)\n\tarena.Update()\n\tassert.Equal(t, PostMatch, arena.MatchState)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\tarena.Update()\n\tassert.Equal(t, PostMatch, arena.MatchState)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\n\tarena.AllianceStations[\"R1\"].Bypass = true\n\tarena.ResetMatch()\n\tarena.lastDsPacketTime = arena.lastDsPacketTime.Add(-550 * time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, PreMatch, arena.MatchState)\n\tassert.Equal(t, true, arena.AllianceStations[\"B3\"].DsConn.Auto)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].DsConn.Enabled)\n\tassert.Equal(t, false, arena.AllianceStations[\"R1\"].Bypass)\n}\n\nfunc TestArenaStateEnforcement(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\tarena.AllianceStations[\"R1\"].Bypass = true\n\tarena.AllianceStations[\"R2\"].Bypass = true\n\tarena.AllianceStations[\"R3\"].Bypass = true\n\tarena.AllianceStations[\"B1\"].Bypass = true\n\tarena.AllianceStations[\"B2\"].Bypass = true\n\tarena.AllianceStations[\"B3\"].Bypass = true\n\n\terr := arena.LoadMatch(new(model.Match))\n\tassert.Nil(t, err)\n\terr = arena.AbortMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot abort match when\")\n\t}\n\terr = arena.StartMatch()\n\tassert.Nil(t, err)\n\terr = arena.LoadMatch(new(model.Match))\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot load match while\")\n\t}\n\terr = arena.StartMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot start match while\")\n\t}\n\terr = arena.ResetMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot reset match while\")\n\t}\n\tarena.MatchState = AutoPeriod\n\terr = arena.LoadMatch(new(model.Match))\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot load match while\")\n\t}\n\terr = arena.StartMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot start match while\")\n\t}\n\terr = arena.ResetMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot reset match while\")\n\t}\n\tarena.MatchState = PausePeriod\n\terr = arena.LoadMatch(new(model.Match))\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot load match while\")\n\t}\n\terr = arena.StartMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot start match while\")\n\t}\n\terr = arena.ResetMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot reset match while\")\n\t}\n\tarena.MatchState = TeleopPeriod\n\terr = arena.LoadMatch(new(model.Match))\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot load match while\")\n\t}\n\terr = arena.StartMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot start match while\")\n\t}\n\terr = arena.ResetMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot reset match while\")\n\t}\n\tarena.MatchState = PostMatch\n\terr = arena.LoadMatch(new(model.Match))\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot load match while\")\n\t}\n\terr = arena.StartMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot start match while\")\n\t}\n\terr = arena.AbortMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"cannot abort match when\")\n\t}\n\n\terr = arena.ResetMatch()\n\tassert.Nil(t, err)\n\tassert.Equal(t, PreMatch, arena.MatchState)\n\terr = arena.ResetMatch()\n\tassert.Nil(t, err)\n\terr = arena.LoadMatch(new(model.Match))\n\tassert.Nil(t, err)\n}\n\nfunc TestMatchStartRobotLinkEnforcement(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\tarena.Database.CreateTeam(&model.Team{Id: 101})\n\tarena.Database.CreateTeam(&model.Team{Id: 102})\n\tarena.Database.CreateTeam(&model.Team{Id: 103})\n\tarena.Database.CreateTeam(&model.Team{Id: 104})\n\tarena.Database.CreateTeam(&model.Team{Id: 105})\n\tarena.Database.CreateTeam(&model.Team{Id: 106})\n\tmatch := model.Match{Red1: 101, Red2: 102, Red3: 103, Blue1: 104, Blue2: 105, Blue3: 106}\n\tarena.Database.CreateMatch(&match)\n\n\terr := arena.LoadMatch(&match)\n\tassert.Nil(t, err)\n\tarena.AllianceStations[\"R1\"].DsConn = &DriverStationConnection{TeamId: 101}\n\tarena.AllianceStations[\"R2\"].DsConn = &DriverStationConnection{TeamId: 102}\n\tarena.AllianceStations[\"R3\"].DsConn = &DriverStationConnection{TeamId: 103}\n\tarena.AllianceStations[\"B1\"].DsConn = &DriverStationConnection{TeamId: 104}\n\tarena.AllianceStations[\"B2\"].DsConn = &DriverStationConnection{TeamId: 105}\n\tarena.AllianceStations[\"B3\"].DsConn = &DriverStationConnection{TeamId: 106}\n\tfor _, station := range arena.AllianceStations {\n\t\tstation.DsConn.RobotLinked = true\n\t}\n\terr = arena.StartMatch()\n\tassert.Nil(t, err)\n\tarena.MatchState = PreMatch\n\n\t// Check with a single team E-stopped, A-stopped, not linked, and bypassed.\n\tarena.AllianceStations[\"R1\"].EStop = true\n\terr = arena.StartMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"while an emergency stop is active\")\n\t}\n\tarena.AllianceStations[\"R1\"].EStop = false\n\tarena.AllianceStations[\"R1\"].aStopReset = false\n\tarena.AllianceStations[\"R1\"].AStop = true\n\terr = arena.StartMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"if an autonomous stop has not been reset since the previous match\")\n\t}\n\tarena.AllianceStations[\"R1\"].aStopReset = true\n\tarena.AllianceStations[\"R1\"].DsConn.RobotLinked = false\n\terr = arena.StartMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"until all robots are connected or bypassed\")\n\t}\n\tarena.AllianceStations[\"R1\"].Bypass = true\n\terr = arena.StartMatch()\n\tassert.Nil(t, err)\n\tarena.AllianceStations[\"R1\"].Bypass = false\n\tarena.MatchState = PreMatch\n\n\t// Check with a team missing.\n\terr = arena.assignTeam(0, \"R1\")\n\tassert.Nil(t, err)\n\terr = arena.StartMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"until all robots are connected or bypassed\")\n\t}\n\tarena.AllianceStations[\"R1\"].Bypass = true\n\terr = arena.StartMatch()\n\tassert.Nil(t, err)\n\tarena.MatchState = PreMatch\n\n\t// Check with no teams present.\n\tarena.LoadMatch(new(model.Match))\n\terr = arena.StartMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"until all robots are connected or bypassed\")\n\t}\n\tarena.AllianceStations[\"R1\"].Bypass = true\n\tarena.AllianceStations[\"R2\"].Bypass = true\n\tarena.AllianceStations[\"R3\"].Bypass = true\n\tarena.AllianceStations[\"B1\"].Bypass = true\n\tarena.AllianceStations[\"B2\"].Bypass = true\n\tarena.AllianceStations[\"B3\"].Bypass = true\n\tarena.AllianceStations[\"B3\"].EStop = true\n\terr = arena.StartMatch()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"while an emergency stop is active\")\n\t}\n\tarena.AllianceStations[\"B3\"].EStop = false\n\terr = arena.StartMatch()\n\tassert.Nil(t, err)\n}\n\nfunc TestLoadNextMatch(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\tarena.Database.CreateTeam(&model.Team{Id: 1114})\n\tpracticeMatch1 := model.Match{Type: model.Practice, TypeOrder: 1}\n\tpracticeMatch2 := model.Match{Type: model.Practice, TypeOrder: 2, Status: game.RedWonMatch}\n\tpracticeMatch3 := model.Match{Type: model.Practice, TypeOrder: 3}\n\tarena.Database.CreateMatch(&practiceMatch1)\n\tarena.Database.CreateMatch(&practiceMatch2)\n\tarena.Database.CreateMatch(&practiceMatch3)\n\tqualificationMatch1 := model.Match{Type: model.Qualification, TypeOrder: 1, Status: game.BlueWonMatch}\n\tqualificationMatch2 := model.Match{Type: model.Qualification, TypeOrder: 2}\n\tarena.Database.CreateMatch(&qualificationMatch1)\n\tarena.Database.CreateMatch(&qualificationMatch2)\n\n\t// Test match should be followed by another, empty test match.\n\tassert.Equal(t, 0, arena.CurrentMatch.Id)\n\terr := arena.SubstituteTeams(1114, 0, 0, 0, 0, 0)\n\tassert.Nil(t, err)\n\tarena.CurrentMatch.Status = game.TieMatch\n\terr = arena.LoadNextMatch(false)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 0, arena.CurrentMatch.Id)\n\tassert.Equal(t, 0, arena.CurrentMatch.Red1)\n\tassert.Equal(t, false, arena.CurrentMatch.IsComplete())\n\n\t// Other matches should be loaded by type until they're all complete.\n\terr = arena.LoadMatch(&practiceMatch2)\n\tassert.Nil(t, err)\n\terr = arena.LoadNextMatch(false)\n\tassert.Nil(t, err)\n\tassert.Equal(t, practiceMatch1.Id, arena.CurrentMatch.Id)\n\tpracticeMatch1.Status = game.RedWonMatch\n\tarena.Database.UpdateMatch(&practiceMatch1)\n\terr = arena.LoadNextMatch(false)\n\tassert.Nil(t, err)\n\tassert.Equal(t, practiceMatch3.Id, arena.CurrentMatch.Id)\n\tpracticeMatch3.Status = game.BlueWonMatch\n\tarena.Database.UpdateMatch(&practiceMatch3)\n\terr = arena.LoadNextMatch(false)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 0, arena.CurrentMatch.Id)\n\tassert.Equal(t, model.Test, arena.CurrentMatch.Type)\n\n\terr = arena.LoadMatch(&qualificationMatch1)\n\tassert.Nil(t, err)\n\terr = arena.LoadNextMatch(false)\n\tassert.Nil(t, err)\n\tassert.Equal(t, qualificationMatch2.Id, arena.CurrentMatch.Id)\n}\n\nfunc TestSubstituteTeam(t *testing.T) {\n\tarena := setupTestArena(t)\n\ttournament.CreateTestAlliances(arena.Database, 2)\n\tarena.PlayoffTournament, _ = playoff.NewPlayoffTournament(\n\t\tarena.EventSettings.PlayoffType, arena.EventSettings.NumPlayoffAlliances,\n\t)\n\n\tarena.Database.CreateTeam(&model.Team{Id: 101})\n\tarena.Database.CreateTeam(&model.Team{Id: 102})\n\tarena.Database.CreateTeam(&model.Team{Id: 103})\n\tarena.Database.CreateTeam(&model.Team{Id: 104})\n\tarena.Database.CreateTeam(&model.Team{Id: 105})\n\tarena.Database.CreateTeam(&model.Team{Id: 106})\n\tarena.Database.CreateTeam(&model.Team{Id: 107})\n\n\t// Substitute teams into test match.\n\terr := arena.SubstituteTeams(0, 0, 0, 101, 0, 0)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 101, arena.CurrentMatch.Blue1)\n\tassert.Equal(t, 101, arena.AllianceStations[\"B1\"].Team.Id)\n\terr = arena.assignTeam(104, \"R4\")\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"Invalid alliance station\")\n\t}\n\n\t// Substitute teams into practice match.\n\tmatch := model.Match{Type: model.Practice, Red1: 101, Red2: 102, Red3: 103, Blue1: 104, Blue2: 105, Blue3: 106}\n\tarena.Database.CreateMatch(&match)\n\tarena.LoadMatch(&match)\n\terr = arena.SubstituteTeams(107, 102, 103, 104, 105, 106)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 107, arena.CurrentMatch.Red1)\n\tassert.Equal(t, 107, arena.AllianceStations[\"R1\"].Team.Id)\n\tmatchResult := model.NewMatchResult()\n\tmatchResult.MatchId = arena.CurrentMatch.Id\n\n\t// Check that substitution is disallowed in qualification matches.\n\tmatch = model.Match{Type: model.Qualification, Red1: 101, Red2: 102, Red3: 103, Blue1: 104, Blue2: 105, Blue3: 106}\n\tarena.Database.CreateMatch(&match)\n\tarena.LoadMatch(&match)\n\terr = arena.SubstituteTeams(107, 102, 103, 104, 105, 106)\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"Can't substitute teams for qualification matches.\")\n\t}\n\tmatch = model.Match{Type: model.Playoff, Red1: 101, Red2: 102, Red3: 103, Blue1: 104, Blue2: 105, Blue3: 106}\n\tarena.Database.CreateMatch(&match)\n\tarena.LoadMatch(&match)\n\tassert.Nil(t, arena.SubstituteTeams(107, 102, 103, 104, 105, 106))\n\n\t// Check that loading a nonexistent team fails.\n\terr = arena.SubstituteTeams(101, 102, 103, 104, 105, 108)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, err.Error(), \"Team 108 is not present at the event.\")\n\t}\n}\n\nfunc TestLoadTeamsFromNexus(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\tfor i := 1; i <= 12; i++ {\n\t\tarena.Database.CreateTeam(&model.Team{Id: 100 + i})\n\t}\n\tmatch := model.Match{\n\t\tType:        model.Practice,\n\t\tRed1:        101,\n\t\tRed2:        102,\n\t\tRed3:        103,\n\t\tBlue1:       104,\n\t\tBlue2:       105,\n\t\tBlue3:       106,\n\t\tTbaMatchKey: model.TbaMatchKey{CompLevel: \"p\", SetNumber: 0, MatchNumber: 1},\n\t}\n\tarena.Database.CreateMatch(&match)\n\n\tassertTeams := func(red1, red2, red3, blue1, blue2, blue int) {\n\t\tassert.Equal(t, red1, arena.CurrentMatch.Red1)\n\t\tassert.Equal(t, red2, arena.CurrentMatch.Red2)\n\t\tassert.Equal(t, red3, arena.CurrentMatch.Red3)\n\t\tassert.Equal(t, blue1, arena.CurrentMatch.Blue1)\n\t\tassert.Equal(t, blue2, arena.CurrentMatch.Blue2)\n\t\tassert.Equal(t, blue, arena.CurrentMatch.Blue3)\n\t\tassert.Equal(t, red1, arena.AllianceStations[\"R1\"].Team.Id)\n\t\tassert.Equal(t, red2, arena.AllianceStations[\"R2\"].Team.Id)\n\t\tassert.Equal(t, red3, arena.AllianceStations[\"R3\"].Team.Id)\n\t\tassert.Equal(t, blue1, arena.AllianceStations[\"B1\"].Team.Id)\n\t\tassert.Equal(t, blue2, arena.AllianceStations[\"B2\"].Team.Id)\n\t\tassert.Equal(t, blue, arena.AllianceStations[\"B3\"].Team.Id)\n\t}\n\n\t// Sanity check that the match loads correctly without Nexus enabled.\n\tassert.Nil(t, arena.LoadMatch(&match))\n\tassertTeams(101, 102, 103, 104, 105, 106)\n\n\t// Mock the Nexus server.\n\tnexusServer := httptest.NewServer(\n\t\thttp.HandlerFunc(\n\t\t\tfunc(w http.ResponseWriter, r *http.Request) {\n\t\t\t\tif strings.Contains(r.URL.String(), \"/api/v1/event/my_event_code/match/p1/lineup\") {\n\t\t\t\t\tw.Write([]byte(\"{\\\"red\\\":[\\\"112\\\",\\\"111\\\",\\\"110\\\"],\\\"blue\\\":[\\\"109\\\",\\\"108\\\",\\\"107\\\"]}\"))\n\t\t\t\t} else {\n\t\t\t\t\thttp.Error(w, \"Match not found\", 404)\n\t\t\t\t}\n\t\t\t},\n\t\t),\n\t)\n\tdefer nexusServer.Close()\n\tarena.NexusClient = partner.NewNexusClient(\"my_event_code\")\n\tarena.NexusClient.BaseUrl = nexusServer.URL\n\tarena.EventSettings.NexusEnabled = true\n\n\t// Check that the correct teams are loaded from Nexus.\n\tassert.Nil(t, arena.LoadMatch(&match))\n\tassertTeams(112, 111, 110, 109, 108, 107)\n\n\t// Check with a match that Nexus doesn't know about.\n\tmatch = model.Match{\n\t\tType:        model.Practice,\n\t\tRed1:        106,\n\t\tRed2:        105,\n\t\tRed3:        104,\n\t\tBlue1:       103,\n\t\tBlue2:       102,\n\t\tBlue3:       101,\n\t\tTbaMatchKey: model.TbaMatchKey{CompLevel: \"p\", SetNumber: 0, MatchNumber: 2},\n\t}\n\tarena.Database.CreateMatch(&match)\n\tassert.Nil(t, arena.LoadMatch(&match))\n\tassertTeams(106, 105, 104, 103, 102, 101)\n}\n\nfunc TestArenaTimeout(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\t// Test regular ending of timeout.\n\ttimeoutDurationSec := 9\n\tassert.Nil(t, arena.StartTimeout(\"Break 1\", timeoutDurationSec))\n\tassert.Equal(t, timeoutDurationSec, game.MatchTiming.TimeoutDurationSec)\n\tassert.Equal(t, TimeoutActive, arena.MatchState)\n\tassert.Equal(t, \"Break 1\", arena.breakDescription)\n\tarena.MatchStartTime = time.Now().Add(-time.Duration(timeoutDurationSec) * time.Second)\n\tarena.Update()\n\tassert.Equal(t, PostTimeout, arena.MatchState)\n\tarena.MatchStartTime = time.Now().Add(-time.Duration(timeoutDurationSec+postTimeoutSec) * time.Second)\n\tarena.Update()\n\tassert.Equal(t, PreMatch, arena.MatchState)\n\n\t// Test early cancellation of timeout.\n\ttimeoutDurationSec = 28\n\tassert.Nil(t, arena.StartTimeout(\"Break 2\", timeoutDurationSec))\n\tassert.Equal(t, \"Break 2\", arena.breakDescription)\n\tassert.Equal(t, TimeoutActive, arena.MatchState)\n\tassert.Equal(t, timeoutDurationSec, game.MatchTiming.TimeoutDurationSec)\n\tassert.Nil(t, arena.AbortMatch())\n\tarena.Update()\n\tassert.Equal(t, PostTimeout, arena.MatchState)\n\tarena.MatchStartTime = time.Now().Add(-time.Duration(timeoutDurationSec+postTimeoutSec) * time.Second)\n\tarena.Update()\n\tassert.Equal(t, PreMatch, arena.MatchState)\n\n\t// Test that timeout can't be started during a match.\n\tarena.AllianceStations[\"R1\"].Bypass = true\n\tarena.AllianceStations[\"R2\"].Bypass = true\n\tarena.AllianceStations[\"R3\"].Bypass = true\n\tarena.AllianceStations[\"B1\"].Bypass = true\n\tarena.AllianceStations[\"B2\"].Bypass = true\n\tarena.AllianceStations[\"B3\"].Bypass = true\n\tassert.Nil(t, arena.StartMatch())\n\tarena.Update()\n\tassert.NotNil(t, arena.StartTimeout(\"Timeout\", 1))\n\tassert.NotEqual(t, TimeoutActive, arena.MatchState)\n\tassert.Equal(t, timeoutDurationSec, game.MatchTiming.TimeoutDurationSec)\n\tarena.MatchStartTime = time.Now().Add(\n\t\t-time.Duration(\n\t\t\tgame.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec+game.MatchTiming.PauseDurationSec+\n\t\t\t\tgame.MatchTiming.TeleopDurationSec,\n\t\t) * time.Second,\n\t)\n\tfor arena.MatchState != PostMatch {\n\t\tarena.Update()\n\t\tassert.NotNil(t, arena.StartTimeout(\"Timeout\", 1))\n\t}\n\n\t// Test that a match can be loaded during a timeout.\n\tassert.Nil(t, arena.ResetMatch())\n\tassert.Nil(t, arena.LoadTestMatch())\n\tassert.Nil(t, arena.StartTimeout(\"Break 2\", 10))\n\tassert.Equal(t, TimeoutActive, arena.MatchState)\n\tmatch := model.Match{\n\t\tType: model.Playoff, ShortName: \"F1\", Red1: 1, Red2: 2, Red3: 3, Blue1: 4, Blue2: 5, Blue3: 6,\n\t}\n\tassert.Nil(t, arena.Database.CreateMatch(&match))\n\tassert.Nil(t, arena.LoadMatch(&match))\n\tassert.Equal(t, TimeoutActive, arena.MatchState)\n\tassert.Equal(t, match, *arena.CurrentMatch)\n}\n\nfunc TestSaveTeamHasConnected(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\tarena.Database.CreateTeam(&model.Team{Id: 101})\n\tarena.Database.CreateTeam(&model.Team{Id: 102})\n\tarena.Database.CreateTeam(&model.Team{Id: 103})\n\tarena.Database.CreateTeam(&model.Team{Id: 104})\n\tarena.Database.CreateTeam(&model.Team{Id: 105})\n\tarena.Database.CreateTeam(&model.Team{Id: 106, City: \"San Jose\", HasConnected: true})\n\tmatch := model.Match{Red1: 101, Red2: 102, Red3: 103, Blue1: 104, Blue2: 105, Blue3: 106}\n\tarena.Database.CreateMatch(&match)\n\tarena.LoadMatch(&match)\n\tarena.AllianceStations[\"R1\"].DsConn = &DriverStationConnection{TeamId: 101}\n\tarena.AllianceStations[\"R1\"].Bypass = true\n\tarena.AllianceStations[\"R2\"].DsConn = &DriverStationConnection{TeamId: 102, RobotLinked: true}\n\tarena.AllianceStations[\"R3\"].DsConn = &DriverStationConnection{TeamId: 103}\n\tarena.AllianceStations[\"R3\"].Bypass = true\n\tarena.AllianceStations[\"B1\"].DsConn = &DriverStationConnection{TeamId: 104}\n\tarena.AllianceStations[\"B1\"].Bypass = true\n\tarena.AllianceStations[\"B2\"].DsConn = &DriverStationConnection{TeamId: 105, RobotLinked: true}\n\tarena.AllianceStations[\"B3\"].DsConn = &DriverStationConnection{TeamId: 106, RobotLinked: true}\n\tarena.AllianceStations[\"B3\"].Team.City = \"Sand Hosay\" // Change some other field to verify that it isn't saved.\n\tassert.Nil(t, arena.StartMatch())\n\n\t// Check that the connection status was saved for the teams that just linked for the first time.\n\tteams, _ := arena.Database.GetAllTeams()\n\tif assert.Equal(t, 6, len(teams)) {\n\t\tassert.False(t, teams[0].HasConnected)\n\t\tassert.True(t, teams[1].HasConnected)\n\t\tassert.False(t, teams[2].HasConnected)\n\t\tassert.False(t, teams[3].HasConnected)\n\t\tassert.True(t, teams[4].HasConnected)\n\t\tassert.True(t, teams[5].HasConnected)\n\t\tassert.Equal(t, \"San Jose\", teams[5].City)\n\t}\n}\n\nfunc TestPlcEStopAStop(t *testing.T) {\n\tarena := setupTestArena(t)\n\tvar plc FakePlc\n\tplc.isEnabled = true\n\tarena.Plc = &plc\n\n\tarena.Database.CreateTeam(&model.Team{Id: 254})\n\terr := arena.assignTeam(254, \"R1\")\n\tassert.Nil(t, err)\n\tdummyDs := &DriverStationConnection{TeamId: 254}\n\tarena.AllianceStations[\"R1\"].DsConn = dummyDs\n\tarena.Database.CreateTeam(&model.Team{Id: 148})\n\terr = arena.assignTeam(148, \"R2\")\n\tassert.Nil(t, err)\n\tdummyDs = &DriverStationConnection{TeamId: 148}\n\tarena.AllianceStations[\"R2\"].DsConn = dummyDs\n\n\tarena.AllianceStations[\"R1\"].DsConn.RobotLinked = true\n\tarena.AllianceStations[\"R1\"].aStopReset = true\n\tarena.AllianceStations[\"R2\"].DsConn.RobotLinked = true\n\tarena.AllianceStations[\"R2\"].aStopReset = true\n\tarena.AllianceStations[\"R3\"].Bypass = true\n\tarena.AllianceStations[\"R3\"].aStopReset = true\n\tarena.AllianceStations[\"B1\"].Bypass = true\n\tarena.AllianceStations[\"B1\"].aStopReset = true\n\tarena.AllianceStations[\"B2\"].Bypass = true\n\tarena.AllianceStations[\"B2\"].aStopReset = true\n\tarena.AllianceStations[\"B3\"].Bypass = true\n\tarena.AllianceStations[\"B3\"].aStopReset = true\n\terr = arena.StartMatch()\n\tassert.Nil(t, err)\n\tarena.Update()\n\tarena.MatchStartTime = time.Now().Add(-time.Duration(game.MatchTiming.WarmupDurationSec) * time.Second)\n\tarena.Update()\n\tassert.Equal(t, AutoPeriod, arena.MatchState)\n\tassert.Equal(t, true, arena.AllianceStations[\"R1\"].DsConn.Enabled)\n\n\t// Press the R1 A-stop.\n\tplc.redAStops[0] = true\n\tplc.redEStops[0] = false\n\tplc.redAStops[1] = false\n\tplc.redEStops[1] = false\n\tarena.Update()\n\tassert.Equal(t, true, arena.AllianceStations[\"R1\"].AStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"R1\"].EStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"R2\"].AStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"R2\"].EStop)\n\tarena.lastDsPacketTime = time.Unix(0, 0) // Force a DS packet.\n\tarena.Update()\n\tassert.Equal(t, false, arena.AllianceStations[\"R1\"].DsConn.Enabled)\n\tassert.Equal(t, false, arena.AllianceStations[\"R1\"].DsConn.EStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"R1\"].DsConn.AStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"R2\"].DsConn.Enabled)\n\n\t// Unpress the R1 A-stop and press the R2 E-stop.\n\tplc.redAStops[0] = false\n\tplc.redEStops[0] = false\n\tplc.redAStops[1] = false\n\tplc.redEStops[1] = true\n\tarena.Update()\n\tassert.Equal(t, true, arena.AllianceStations[\"R1\"].AStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"R1\"].EStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"R2\"].AStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"R2\"].EStop)\n\tarena.lastDsPacketTime = time.Unix(0, 0) // Force a DS packet.\n\tarena.Update()\n\tassert.Equal(t, false, arena.AllianceStations[\"R1\"].DsConn.Enabled)\n\tassert.Equal(t, false, arena.AllianceStations[\"R1\"].DsConn.EStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"R1\"].DsConn.AStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"R2\"].DsConn.Enabled)\n\tassert.Equal(t, true, arena.AllianceStations[\"R2\"].DsConn.EStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"R2\"].DsConn.AStop)\n\n\t// Unpress the R2 E-stop.\n\tplc.redAStops[0] = false\n\tplc.redEStops[0] = false\n\tplc.redAStops[1] = false\n\tplc.redEStops[1] = false\n\tarena.Update()\n\tassert.Equal(t, true, arena.AllianceStations[\"R1\"].AStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"R1\"].EStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"R2\"].AStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"R2\"].EStop)\n\tarena.lastDsPacketTime = time.Unix(0, 0) // Force a DS packet.\n\tarena.Update()\n\tassert.Equal(t, false, arena.AllianceStations[\"R1\"].DsConn.Enabled)\n\tassert.Equal(t, false, arena.AllianceStations[\"R2\"].DsConn.Enabled)\n\n\t// Transition into the teleop period without any stops.\n\tarena.MatchStartTime = time.Now().Add(\n\t\t-time.Duration(game.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec) * time.Second,\n\t)\n\tarena.Update()\n\tassert.Equal(t, PausePeriod, arena.MatchState)\n\tarena.MatchStartTime = time.Now().Add(\n\t\t-time.Duration(\n\t\t\tgame.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec+game.MatchTiming.PauseDurationSec,\n\t\t) * time.Second,\n\t)\n\tarena.Update()\n\tassert.Equal(t, false, arena.AllianceStations[\"R1\"].AStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"R1\"].EStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"R2\"].AStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"R2\"].EStop)\n\tarena.lastDsPacketTime = time.Unix(0, 0) // Force a DS packet.\n\tarena.Update()\n\tassert.Equal(t, TeleopPeriod, arena.MatchState)\n\tassert.Equal(t, true, arena.AllianceStations[\"R1\"].DsConn.Enabled)\n\tassert.Equal(t, false, arena.AllianceStations[\"R2\"].DsConn.Enabled)\n\n\t// Press the R1 E-stop and the R2 A-stop.\n\tplc.redAStops[0] = false\n\tplc.redEStops[0] = true\n\tplc.redAStops[1] = true\n\tplc.redEStops[1] = false\n\tarena.Update()\n\tassert.Equal(t, false, arena.AllianceStations[\"R1\"].AStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"R1\"].EStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"R2\"].AStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"R2\"].EStop)\n\tarena.lastDsPacketTime = time.Unix(0, 0) // Force a DS packet.\n\tarena.Update()\n\tassert.Equal(t, false, arena.AllianceStations[\"R1\"].DsConn.Enabled)\n\tassert.Equal(t, false, arena.AllianceStations[\"R2\"].DsConn.Enabled)\n\n\t// Ensure the other stations A-stops are working as well.\n\tplc.redAStops[2] = true\n\tplc.redEStops[2] = false\n\tplc.blueAStops[0] = true\n\tplc.blueEStops[0] = false\n\tplc.blueAStops[1] = true\n\tplc.blueEStops[1] = false\n\tplc.blueAStops[2] = true\n\tplc.blueEStops[2] = false\n\tarena.Update()\n\tassert.Equal(t, true, arena.AllianceStations[\"R3\"].AStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"R3\"].EStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"B1\"].AStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"B1\"].EStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"B2\"].AStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"B2\"].EStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"B3\"].AStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].EStop)\n\n\t// Ensure the other stations E-stops are working as well.\n\tplc.redAStops[2] = false\n\tplc.redEStops[2] = true\n\tplc.blueAStops[0] = false\n\tplc.blueEStops[0] = true\n\tplc.blueAStops[1] = false\n\tplc.blueEStops[1] = true\n\tplc.blueAStops[2] = false\n\tplc.blueEStops[2] = true\n\tarena.Update()\n\tassert.Equal(t, false, arena.AllianceStations[\"R3\"].AStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"R3\"].EStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"B1\"].AStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"B1\"].EStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"B2\"].AStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"B2\"].EStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].AStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"B3\"].EStop)\n\n\t// Ensure unpressed E-stops are cleared at the end of the match.\n\tarena.MatchStartTime = time.Now().Add(\n\t\t-time.Duration(\n\t\t\tgame.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec+game.MatchTiming.PauseDurationSec+\n\t\t\t\tgame.MatchTiming.TeleopDurationSec,\n\t\t) * time.Second,\n\t)\n\tarena.Update()\n\tplc.blueEStops[2] = false\n\tarena.Update()\n\tassert.Equal(t, true, arena.AllianceStations[\"R1\"].EStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"R2\"].EStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"R3\"].EStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"B1\"].EStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"B2\"].EStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"B3\"].EStop)\n}\n\nfunc TestPlcEStopAStopWithPlcDisabled(t *testing.T) {\n\tarena := setupTestArena(t)\n\tvar plc FakePlc\n\tplc.isEnabled = false\n\tarena.Plc = &plc\n\n\tarena.Database.CreateTeam(&model.Team{Id: 254})\n\terr := arena.assignTeam(254, \"R1\")\n\tassert.Nil(t, err)\n\tarena.AllianceStations[\"R1\"].DsConn = &DriverStationConnection{TeamId: 254}\n\tarena.AllianceStations[\"R2\"].DsConn = &DriverStationConnection{TeamId: 1323}\n\n\tarena.AllianceStations[\"R1\"].DsConn.RobotLinked = true\n\tarena.AllianceStations[\"R2\"].DsConn.RobotLinked = true\n\tarena.AllianceStations[\"R3\"].Bypass = true\n\tarena.AllianceStations[\"B1\"].Bypass = true\n\tarena.AllianceStations[\"B2\"].Bypass = true\n\tarena.AllianceStations[\"B3\"].Bypass = true\n\tassert.Nil(t, arena.StartMatch())\n\tarena.Update()\n\tarena.MatchStartTime = time.Now().Add(-time.Duration(game.MatchTiming.WarmupDurationSec) * time.Second)\n\tarena.Update()\n\tassert.Equal(t, AutoPeriod, arena.MatchState)\n\tassert.Equal(t, true, arena.AllianceStations[\"R1\"].DsConn.Enabled)\n\n\tplc.redEStops[0] = true\n\tplc.redAStops[1] = true\n\tarena.Update()\n\tassert.Equal(t, false, arena.AllianceStations[\"R1\"].AStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"R1\"].EStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"R1\"].DsConn.Enabled)\n\tassert.Equal(t, false, arena.AllianceStations[\"R2\"].AStop)\n\tassert.Equal(t, false, arena.AllianceStations[\"R2\"].EStop)\n\tassert.Equal(t, true, arena.AllianceStations[\"R2\"].DsConn.Enabled)\n}\n\nfunc TestPlcFieldEStop(t *testing.T) {\n\tarena := setupTestArena(t)\n\tvar plc FakePlc\n\tplc.isEnabled = true\n\tarena.Plc = &plc\n\n\tarena.AllianceStations[\"R1\"].Bypass = true\n\tarena.AllianceStations[\"R2\"].Bypass = true\n\tarena.AllianceStations[\"R3\"].Bypass = true\n\tarena.AllianceStations[\"B1\"].Bypass = true\n\tarena.AllianceStations[\"B2\"].Bypass = true\n\tarena.AllianceStations[\"B3\"].Bypass = true\n\tassert.Nil(t, arena.StartMatch())\n\tarena.Update()\n\tarena.MatchStartTime = time.Now().Add(-time.Duration(game.MatchTiming.WarmupDurationSec) * time.Second)\n\tarena.Update()\n\tassert.Equal(t, AutoPeriod, arena.MatchState)\n\n\tplc.fieldEStop = true\n\tarena.Update()\n\tassert.True(t, arena.matchAborted)\n\tassert.Equal(t, PostMatch, arena.MatchState)\n}\n\nfunc TestPlcFieldEStopWithPlcDisabled(t *testing.T) {\n\tarena := setupTestArena(t)\n\tvar plc FakePlc\n\tplc.isEnabled = false\n\tarena.Plc = &plc\n\n\tarena.AllianceStations[\"R1\"].Bypass = true\n\tarena.AllianceStations[\"R2\"].Bypass = true\n\tarena.AllianceStations[\"R3\"].Bypass = true\n\tarena.AllianceStations[\"B1\"].Bypass = true\n\tarena.AllianceStations[\"B2\"].Bypass = true\n\tarena.AllianceStations[\"B3\"].Bypass = true\n\tassert.Nil(t, arena.StartMatch())\n\tarena.Update()\n\tarena.MatchStartTime = time.Now().Add(-time.Duration(game.MatchTiming.WarmupDurationSec) * time.Second)\n\tarena.Update()\n\tassert.Equal(t, AutoPeriod, arena.MatchState)\n\n\tplc.fieldEStop = true\n\tarena.Update()\n\tassert.False(t, arena.matchAborted)\n\tassert.Equal(t, AutoPeriod, arena.MatchState)\n}\n\nfunc TestPlcMatchCycleEvergreen(t *testing.T) {\n\tarena := setupTestArena(t)\n\tvar plc FakePlc\n\tplc.isEnabled = true\n\tarena.Plc = &plc\n\n\tarena.Update()\n\tassert.Equal(t, [4]bool{true, true, false, false}, plc.stackLights)\n\n\tarena.AllianceStations[\"R1\"].Bypass = true\n\tarena.AllianceStations[\"R2\"].Bypass = true\n\tarena.AllianceStations[\"B1\"].Bypass = true\n\tarena.AllianceStations[\"B2\"].Bypass = true\n\tarena.Update()\n\tassert.Equal(t, [4]bool{true, true, false, false}, plc.stackLights)\n\n\tarena.AllianceStations[\"R3\"].Bypass = true\n\tarena.Update()\n\tassert.Equal(t, [4]bool{false, true, false, false}, plc.stackLights)\n\tassert.Equal(t, false, plc.stackLightBuzzer)\n\n\t// All teams are ready.\n\tarena.AllianceStations[\"B3\"].Bypass = true\n\tplc.cycleState = true\n\tarena.Update()\n\tassert.Equal(t, [4]bool{false, false, false, true}, plc.stackLights)\n\tassert.Equal(t, true, plc.stackLightBuzzer)\n\n\t// Green light when blink cycle is off.\n\tplc.cycleState = false\n\tarena.Update()\n\tassert.Equal(t, [4]bool{false, false, false, false}, plc.stackLights)\n\n\t// Start the match.\n\tassert.Nil(t, arena.StartMatch())\n\tarena.Update()\n\tarena.MatchStartTime = time.Now().Add(-time.Duration(game.MatchTiming.WarmupDurationSec) * time.Second)\n\tarena.Update()\n\tassert.Equal(t, AutoPeriod, arena.MatchState)\n\tassert.Equal(t, [4]bool{false, false, false, true}, plc.stackLights)\n\tassert.Equal(t, false, plc.stackLightBuzzer)\n\n\t// End the match.\n\tarena.MatchStartTime = time.Now().Add(\n\t\t-time.Duration(\n\t\t\tgame.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec+game.MatchTiming.PauseDurationSec+\n\t\t\t\tgame.MatchTiming.TeleopDurationSec,\n\t\t) * time.Second,\n\t)\n\tarena.Update()\n\tarena.Update()\n\tarena.Update()\n\tassert.Equal(t, PostMatch, arena.MatchState)\n\tassert.Equal(t, [4]bool{false, false, true, false}, plc.stackLights)\n\tassert.Equal(t, false, plc.fieldResetLight)\n\n\t// Ready the score.\n\tarena.RedRealtimeScore.FoulsCommitted = true\n\tarena.BlueRealtimeScore.FoulsCommitted = true\n\tredWs := &websocket.Websocket{}\n\tarena.ScoringPanelRegistry.RegisterPanel(\"red_near\", redWs)\n\tarena.ScoringPanelRegistry.SetScoreCommitted(\"red_near\", redWs)\n\tarena.Update()\n\tassert.Equal(t, [4]bool{false, false, true, false}, plc.stackLights)\n\tblueWs := &websocket.Websocket{}\n\tarena.ScoringPanelRegistry.RegisterPanel(\"blue_far\", blueWs)\n\tarena.ScoringPanelRegistry.SetScoreCommitted(\"blue_far\", blueWs)\n\tarena.Update()\n\tassert.Equal(t, [4]bool{false, false, true, false}, plc.stackLights)\n\tarena.ScoringPanelRegistry.RegisterPanel(\"blue_near\", redWs)\n\tarena.ScoringPanelRegistry.SetScoreCommitted(\"blue_near\", redWs)\n\tarena.Update()\n\tassert.Equal(t, [4]bool{false, false, true, false}, plc.stackLights)\n\tarena.ScoringPanelRegistry.RegisterPanel(\"red_far\", redWs)\n\tarena.ScoringPanelRegistry.SetScoreCommitted(\"red_far\", redWs)\n\tarena.Update()\n\tassert.Equal(t, [4]bool{false, false, false, false}, plc.stackLights)\n\n\tarena.FieldReset = true\n\tarena.Update()\n\tassert.Equal(t, true, plc.fieldResetLight)\n}\n\nfunc TestPlcMatchCycleGameSpecificWithCoopEnabled(t *testing.T) {\n\tarena := setupTestArena(t)\n\tvar plc FakePlc\n\tplc.isEnabled = true\n\tarena.Plc = &plc\n\n\t// Check that no inputs or outputs are active before the match starts.\n\tassert.Equal(t, PreMatch, arena.MatchState)\n\tplc.redProcessorCount = 5\n\tplc.blueProcessorCount = 8\n\tarena.Update()\n\tredScore := &arena.RedRealtimeScore.CurrentScore\n\tblueScore := &arena.BlueRealtimeScore.CurrentScore\n\tassert.Equal(t, 0, redScore.ProcessorAlgae)\n\tassert.Equal(t, 0, blueScore.ProcessorAlgae)\n\tassert.Equal(t, [3]bool{false, false, false}, plc.redTrussLights)\n\tassert.Equal(t, [3]bool{false, false, false}, plc.blueTrussLights)\n\tplc.redProcessorCount = 0\n\tplc.blueProcessorCount = 0\n\n\t// Start the match.\n\tarena.AllianceStations[\"R1\"].Bypass = true\n\tarena.AllianceStations[\"R2\"].Bypass = true\n\tarena.AllianceStations[\"R3\"].Bypass = true\n\tarena.AllianceStations[\"B1\"].Bypass = true\n\tarena.AllianceStations[\"B2\"].Bypass = true\n\tarena.AllianceStations[\"B3\"].Bypass = true\n\tarena.Update()\n\tassert.Nil(t, arena.StartMatch())\n\tarena.Update()\n\tarena.MatchStartTime = time.Now().Add(-time.Duration(game.MatchTiming.WarmupDurationSec) * time.Second)\n\tarena.Update()\n\tassert.Equal(t, AutoPeriod, arena.MatchState)\n\n\t// Check the autonomous period.\n\tplc.redProcessorCount = 1\n\tarena.Update()\n\tassert.Equal(t, 1, redScore.ProcessorAlgae)\n\tassert.Equal(t, 0, blueScore.ProcessorAlgae)\n\tassert.Equal(t, [3]bool{true, false, false}, plc.redTrussLights)\n\tassert.Equal(t, [3]bool{false, false, false}, plc.blueTrussLights)\n\n\t// Check the pause period.\n\tarena.MatchStartTime = time.Now().Add(\n\t\t-time.Duration(game.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec) * time.Second,\n\t)\n\tarena.Update()\n\tassert.Equal(t, PausePeriod, arena.MatchState)\n\tplc.redProcessorCount = 2\n\tarena.Update()\n\tassert.Equal(t, 2, redScore.ProcessorAlgae)\n\tassert.Equal(t, 0, blueScore.ProcessorAlgae)\n\tassert.Equal(t, [3]bool{true, true, false}, plc.redTrussLights)\n\tassert.Equal(t, [3]bool{false, false, false}, plc.blueTrussLights)\n\n\t// Check the teleop period.\n\tdurationToTeleopStart := time.Duration(\n\t\tgame.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec+game.MatchTiming.PauseDurationSec,\n\t) * time.Second\n\tarena.MatchStartTime = time.Now().Add(-durationToTeleopStart - 5000*time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, TeleopPeriod, arena.MatchState)\n\n\tplc.blueProcessorCount = 1\n\tarena.Update()\n\tassert.Equal(t, 2, redScore.ProcessorAlgae)\n\tassert.Equal(t, 1, blueScore.ProcessorAlgae)\n\tassert.Equal(t, [3]bool{true, true, false}, plc.redTrussLights)\n\tassert.Equal(t, [3]bool{true, false, false}, plc.blueTrussLights)\n\n\tplc.redProcessorCount = 3\n\tarena.Update()\n\tassert.Equal(t, 3, redScore.ProcessorAlgae)\n\tassert.Equal(t, 1, blueScore.ProcessorAlgae)\n\tassert.Equal(t, [3]bool{true, true, false}, plc.redTrussLights)\n\tassert.Equal(t, [3]bool{true, false, false}, plc.blueTrussLights)\n\n\tplc.redProcessorCount = 17\n\tarena.Update()\n\tassert.Equal(t, 17, redScore.ProcessorAlgae)\n\tassert.Equal(t, 1, blueScore.ProcessorAlgae)\n\tassert.Equal(t, [3]bool{true, true, false}, plc.redTrussLights)\n\tassert.Equal(t, [3]bool{true, false, false}, plc.blueTrussLights)\n\tassert.Equal(t, true, arena.RedScoreSummary().CoopertitionCriteriaMet)\n\tassert.Equal(t, false, arena.RedScoreSummary().CoopertitionBonus)\n\tassert.Equal(t, false, arena.BlueScoreSummary().CoopertitionCriteriaMet)\n\tassert.Equal(t, false, arena.BlueScoreSummary().CoopertitionBonus)\n\n\tplc.blueProcessorCount = 2\n\tarena.Update()\n\tassert.Equal(t, 17, redScore.ProcessorAlgae)\n\tassert.Equal(t, 2, blueScore.ProcessorAlgae)\n\tassert.Equal(t, [3]bool{true, true, true}, plc.redTrussLights)\n\tassert.Equal(t, [3]bool{true, true, true}, plc.blueTrussLights)\n\tassert.Equal(t, true, arena.RedScoreSummary().CoopertitionCriteriaMet)\n\tassert.Equal(t, true, arena.RedScoreSummary().CoopertitionBonus)\n\tassert.Equal(t, true, arena.BlueScoreSummary().CoopertitionCriteriaMet)\n\tassert.Equal(t, true, arena.BlueScoreSummary().CoopertitionBonus)\n\n\t// Check the truss lights during the \"sonar ping\" warning sound.\n\tdurationToWarning := time.Duration(\n\t\tgame.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec+game.MatchTiming.PauseDurationSec+\n\t\t\tgame.MatchTiming.TeleopDurationSec-game.MatchTiming.WarningRemainingDurationSec,\n\t) * time.Second\n\tarena.MatchStartTime = time.Now().Add(-durationToWarning - 100*time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, TeleopPeriod, arena.MatchState)\n\tassert.Equal(t, [3]bool{true, false, false}, plc.redTrussLights)\n\tassert.Equal(t, [3]bool{true, false, false}, plc.blueTrussLights)\n\tarena.MatchStartTime = time.Now().Add(-durationToWarning - 300*time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, TeleopPeriod, arena.MatchState)\n\tassert.Equal(t, [3]bool{false, true, false}, plc.redTrussLights)\n\tassert.Equal(t, [3]bool{false, true, false}, plc.blueTrussLights)\n\tarena.MatchStartTime = time.Now().Add(-durationToWarning - 500*time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, TeleopPeriod, arena.MatchState)\n\tassert.Equal(t, [3]bool{false, false, true}, plc.redTrussLights)\n\tassert.Equal(t, [3]bool{false, false, true}, plc.blueTrussLights)\n\n\t// Undo the co-op and check that the truss lights are back to normal after the warning.\n\tarena.MatchStartTime = time.Now().Add(-durationToWarning - 5000*time.Millisecond)\n\tplc.redProcessorCount = 1\n\tarena.Update()\n\tassert.Equal(t, 1, redScore.ProcessorAlgae)\n\tassert.Equal(t, 2, blueScore.ProcessorAlgae)\n\tassert.Equal(t, [3]bool{true, false, false}, plc.redTrussLights)\n\tassert.Equal(t, [3]bool{true, true, false}, plc.blueTrussLights)\n\n\t// Check after the end of the match.\n\tdurationToTeleopEnd := time.Duration(\n\t\tgame.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec+game.MatchTiming.PauseDurationSec+\n\t\t\tgame.MatchTiming.TeleopDurationSec,\n\t) * time.Second\n\tarena.MatchStartTime = time.Now().Add(-durationToTeleopEnd + 1*time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, [3]bool{true, false, false}, plc.redTrussLights)\n\tassert.Equal(t, [3]bool{true, true, false}, plc.blueTrussLights)\n\tarena.MatchStartTime = time.Now().Add(-durationToTeleopEnd - 1*time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, [3]bool{true, true, true}, plc.redTrussLights)\n\tassert.Equal(t, [3]bool{true, true, true}, plc.blueTrussLights)\n\tarena.MatchStartTime = time.Now().Add(-durationToTeleopEnd - 2999*time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, [3]bool{true, true, true}, plc.redTrussLights)\n\tassert.Equal(t, [3]bool{true, true, true}, plc.blueTrussLights)\n\tarena.MatchStartTime = time.Now().Add(-durationToTeleopEnd - 3001*time.Millisecond)\n\tarena.Update()\n\tassert.Equal(t, [3]bool{false, false, false}, plc.redTrussLights)\n\tassert.Equal(t, [3]bool{false, false, false}, plc.blueTrussLights)\n}\n\nfunc TestPlcMatchCycleGameSpecificWithCoopDisabled(t *testing.T) {\n\tdefer func() {\n\t\tgame.CoralBonusCoopEnabled = true\n\t}()\n\n\ttestCases := []struct {\n\t\tcoopEnabled bool\n\t\tmatchType   model.MatchType\n\t}{\n\t\t// 0. Playoff match with co-op enabled.\n\t\t{true, model.Playoff},\n\n\t\t// 1. Playoff match with co-op disabled.\n\t\t{false, model.Playoff},\n\n\t\t// 2. Qualification match with co-op disabled.\n\t\t{false, model.Qualification},\n\t}\n\n\tfor i, tc := range testCases {\n\t\tt.Run(\n\t\t\tstrconv.Itoa(i),\n\t\t\tfunc(t *testing.T) {\n\t\t\t\tarena := setupTestArena(t)\n\t\t\t\tvar plc FakePlc\n\t\t\t\tplc.isEnabled = true\n\t\t\t\tarena.Plc = &plc\n\t\t\t\tgame.CoralBonusCoopEnabled = tc.coopEnabled\n\t\t\t\tarena.CurrentMatch.Type = tc.matchType\n\n\t\t\t\t// Check that no inputs or outputs are active before the match starts.\n\t\t\t\tassert.Equal(t, PreMatch, arena.MatchState)\n\t\t\t\tplc.redProcessorCount = 5\n\t\t\t\tplc.blueProcessorCount = 8\n\t\t\t\tarena.Update()\n\t\t\t\tredScore := &arena.RedRealtimeScore.CurrentScore\n\t\t\t\tblueScore := &arena.BlueRealtimeScore.CurrentScore\n\t\t\t\tassert.Equal(t, 0, redScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, 0, blueScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, [3]bool{false, false, false}, plc.redTrussLights)\n\t\t\t\tassert.Equal(t, [3]bool{false, false, false}, plc.blueTrussLights)\n\t\t\t\tplc.redProcessorCount = 0\n\t\t\t\tplc.blueProcessorCount = 0\n\n\t\t\t\t// Start the match.\n\t\t\t\tarena.AllianceStations[\"R1\"].Bypass = true\n\t\t\t\tarena.AllianceStations[\"R2\"].Bypass = true\n\t\t\t\tarena.AllianceStations[\"R3\"].Bypass = true\n\t\t\t\tarena.AllianceStations[\"B1\"].Bypass = true\n\t\t\t\tarena.AllianceStations[\"B2\"].Bypass = true\n\t\t\t\tarena.AllianceStations[\"B3\"].Bypass = true\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Nil(t, arena.StartMatch())\n\t\t\t\tarena.Update()\n\t\t\t\tarena.MatchStartTime = time.Now().Add(-time.Duration(game.MatchTiming.WarmupDurationSec) * time.Second)\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, AutoPeriod, arena.MatchState)\n\n\t\t\t\t// Check the autonomous period.\n\t\t\t\tplc.redProcessorCount = 1\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, 1, redScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, 0, blueScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.redTrussLights)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.blueTrussLights)\n\n\t\t\t\t// Check the pause period.\n\t\t\t\tarena.MatchStartTime = time.Now().Add(\n\t\t\t\t\t-time.Duration(game.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec) * time.Second,\n\t\t\t\t)\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, PausePeriod, arena.MatchState)\n\t\t\t\tplc.redProcessorCount = 2\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, 2, redScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, 0, blueScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.redTrussLights)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.blueTrussLights)\n\n\t\t\t\t// Check the teleop period.\n\t\t\t\tdurationToTeleopStart := time.Duration(\n\t\t\t\t\tgame.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec+game.MatchTiming.PauseDurationSec,\n\t\t\t\t) * time.Second\n\t\t\t\tarena.MatchStartTime = time.Now().Add(-durationToTeleopStart - 5000*time.Millisecond)\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, TeleopPeriod, arena.MatchState)\n\n\t\t\t\tplc.blueProcessorCount = 1\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, 2, redScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, 1, blueScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.redTrussLights)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.blueTrussLights)\n\n\t\t\t\tplc.redProcessorCount = 3\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, 3, redScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, 1, blueScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.redTrussLights)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.blueTrussLights)\n\n\t\t\t\tplc.redProcessorCount = 17\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, 17, redScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, 1, blueScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.redTrussLights)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.blueTrussLights)\n\n\t\t\t\tplc.blueProcessorCount = 2\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, 17, redScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, 2, blueScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.redTrussLights)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.blueTrussLights)\n\n\t\t\t\t// Check the truss lights during the \"sonar ping\" warning sound.\n\t\t\t\tdurationToWarning := time.Duration(\n\t\t\t\t\tgame.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec+game.MatchTiming.PauseDurationSec+\n\t\t\t\t\t\tgame.MatchTiming.TeleopDurationSec-game.MatchTiming.WarningRemainingDurationSec,\n\t\t\t\t) * time.Second\n\t\t\t\tarena.MatchStartTime = time.Now().Add(-durationToWarning - 100*time.Millisecond)\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, TeleopPeriod, arena.MatchState)\n\t\t\t\tassert.Equal(t, [3]bool{true, false, false}, plc.redTrussLights)\n\t\t\t\tassert.Equal(t, [3]bool{true, false, false}, plc.blueTrussLights)\n\t\t\t\tarena.MatchStartTime = time.Now().Add(-durationToWarning - 300*time.Millisecond)\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, TeleopPeriod, arena.MatchState)\n\t\t\t\tassert.Equal(t, [3]bool{false, true, false}, plc.redTrussLights)\n\t\t\t\tassert.Equal(t, [3]bool{false, true, false}, plc.blueTrussLights)\n\t\t\t\tarena.MatchStartTime = time.Now().Add(-durationToWarning - 500*time.Millisecond)\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, TeleopPeriod, arena.MatchState)\n\t\t\t\tassert.Equal(t, [3]bool{false, false, true}, plc.redTrussLights)\n\t\t\t\tassert.Equal(t, [3]bool{false, false, true}, plc.blueTrussLights)\n\n\t\t\t\t// Undo the co-op and check that the truss lights are back to normal after the warning.\n\t\t\t\tarena.MatchStartTime = time.Now().Add(-durationToWarning - 5000*time.Millisecond)\n\t\t\t\tplc.redProcessorCount = 1\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, 1, redScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, 2, blueScore.ProcessorAlgae)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.redTrussLights)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.blueTrussLights)\n\n\t\t\t\t// Check after the end of the match.\n\t\t\t\tdurationToTeleopEnd := time.Duration(\n\t\t\t\t\tgame.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec+game.MatchTiming.PauseDurationSec+\n\t\t\t\t\t\tgame.MatchTiming.TeleopDurationSec,\n\t\t\t\t) * time.Second\n\t\t\t\tarena.MatchStartTime = time.Now().Add(-durationToTeleopEnd + 1*time.Millisecond)\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.redTrussLights)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.blueTrussLights)\n\t\t\t\tarena.MatchStartTime = time.Now().Add(-durationToTeleopEnd - 1*time.Millisecond)\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.redTrussLights)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.blueTrussLights)\n\t\t\t\tarena.MatchStartTime = time.Now().Add(-durationToTeleopEnd - 2999*time.Millisecond)\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.redTrussLights)\n\t\t\t\tassert.Equal(t, [3]bool{true, true, true}, plc.blueTrussLights)\n\t\t\t\tarena.MatchStartTime = time.Now().Add(-durationToTeleopEnd - 3001*time.Millisecond)\n\t\t\t\tarena.Update()\n\t\t\t\tassert.Equal(t, [3]bool{false, false, false}, plc.redTrussLights)\n\t\t\t\tassert.Equal(t, [3]bool{false, false, false}, plc.blueTrussLights)\n\t\t\t},\n\t\t)\n\t}\n}\n"
  },
  {
    "path": "field/display.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model representing and methods for controlling a remote web display.\n\npackage field\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"net/url\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\nconst (\n\tminDisplayId       = 100\n\tdisplayPurgeTtlMin = 30\n)\n\ntype DisplayType int\n\nconst (\n\tInvalidDisplay DisplayType = iota\n\tPlaceholderDisplay\n\tAllianceStationDisplay\n\tAnnouncerDisplay\n\tAudienceDisplay\n\tBracketDisplay\n\tFieldMonitorDisplay\n\tLogoDisplay\n\tQueueingDisplay\n\tRankingsDisplay\n\tTwitchStreamDisplay\n\tWallDisplay\n\tWebpageDisplay\n)\n\nvar DisplayTypeNames = map[DisplayType]string{\n\tPlaceholderDisplay:     \"Placeholder\",\n\tAllianceStationDisplay: \"Alliance Station\",\n\tAnnouncerDisplay:       \"Announcer\",\n\tAudienceDisplay:        \"Audience\",\n\tBracketDisplay:         \"Bracket\",\n\tFieldMonitorDisplay:    \"Field Monitor\",\n\tLogoDisplay:            \"Logo\",\n\tQueueingDisplay:        \"Queueing\",\n\tRankingsDisplay:        \"Rankings\",\n\tTwitchStreamDisplay:    \"Twitch Stream\",\n\tWallDisplay:            \"Wall\",\n\tWebpageDisplay:         \"Web Page\",\n}\n\nvar displayTypePaths = map[DisplayType]string{\n\tPlaceholderDisplay:     \"/display\",\n\tAllianceStationDisplay: \"/displays/alliance_station\",\n\tAnnouncerDisplay:       \"/displays/announcer\",\n\tAudienceDisplay:        \"/displays/audience\",\n\tBracketDisplay:         \"/displays/bracket\",\n\tFieldMonitorDisplay:    \"/displays/field_monitor\",\n\tLogoDisplay:            \"/displays/logo\",\n\tQueueingDisplay:        \"/displays/queueing\",\n\tRankingsDisplay:        \"/displays/rankings\",\n\tTwitchStreamDisplay:    \"/displays/twitch\",\n\tWallDisplay:            \"/displays/wall\",\n\tWebpageDisplay:         \"/displays/webpage\",\n}\n\nvar displayRegistryMutex sync.Mutex\n\ntype Display struct {\n\tDisplayConfiguration DisplayConfiguration\n\tIpAddress            string\n\tConnectionCount      int\n\tNotifier             *websocket.Notifier\n\tlastConnectedTime    time.Time\n}\n\ntype DisplayConfiguration struct {\n\tId            string\n\tNickname      string\n\tType          DisplayType\n\tConfiguration map[string]string\n}\n\n// Parses the given display URL path and query string to extract the configuration.\nfunc DisplayFromUrl(path string, query map[string][]string) (*DisplayConfiguration, error) {\n\tif _, ok := query[\"displayId\"]; !ok {\n\t\treturn nil, fmt.Errorf(\"Display ID not present in request.\")\n\t}\n\n\tvar displayConfig DisplayConfiguration\n\tdisplayConfig.Id = query[\"displayId\"][0]\n\tif nickname, ok := query[\"nickname\"]; ok {\n\t\tdisplayConfig.Nickname, _ = url.QueryUnescape(nickname[0])\n\t}\n\n\t// Determine type from the websocket connection URL. This way of doing it isn't super efficient, but it's not really\n\t// a concern since it should happen relatively infrequently.\n\tfor displayType, displayPath := range displayTypePaths {\n\t\tif path == displayPath+\"/websocket\" {\n\t\t\tdisplayConfig.Type = displayType\n\t\t\tbreak\n\t\t}\n\t}\n\tif displayConfig.Type == InvalidDisplay {\n\t\treturn nil, fmt.Errorf(\"Could not determine display type from path %s.\", path)\n\t}\n\n\t// Put any remaining query parameters into the per-type configuration map.\n\tdisplayConfig.Configuration = make(map[string]string)\n\tfor key, value := range query {\n\t\tif key != \"displayId\" && key != \"nickname\" {\n\t\t\tdisplayConfig.Configuration[key], _ = url.QueryUnescape(value[0])\n\t\t}\n\t}\n\n\treturn &displayConfig, nil\n}\n\n// Returns the URL string for the given display that includes all of its configuration parameters.\nfunc (display *Display) ToUrl() string {\n\tvar builder strings.Builder\n\tbuilder.WriteString(displayTypePaths[display.DisplayConfiguration.Type])\n\tbuilder.WriteString(\"?displayId=\")\n\tbuilder.WriteString(url.QueryEscape(display.DisplayConfiguration.Id))\n\tif display.DisplayConfiguration.Nickname != \"\" {\n\t\tbuilder.WriteString(\"&nickname=\")\n\t\tbuilder.WriteString(url.QueryEscape(display.DisplayConfiguration.Nickname))\n\t}\n\n\t// Sort the keys so that the URL generated is deterministic.\n\tvar keys []string\n\tfor key := range display.DisplayConfiguration.Configuration {\n\t\tkeys = append(keys, key)\n\t}\n\tsort.Strings(keys)\n\tfor _, key := range keys {\n\t\tbuilder.WriteString(\"&\")\n\t\tbuilder.WriteString(url.QueryEscape(key))\n\t\tbuilder.WriteString(\"=\")\n\t\tbuilder.WriteString(url.QueryEscape(display.DisplayConfiguration.Configuration[key]))\n\t}\n\treturn builder.String()\n}\n\nfunc (display *Display) generateDisplayConfigurationMessage() any {\n\treturn display.ToUrl()\n}\n\n// Returns an unused ID that can be used for a new display.\nfunc (arena *Arena) NextDisplayId() string {\n\tdisplayRegistryMutex.Lock()\n\tdefer displayRegistryMutex.Unlock()\n\n\t// Loop until we get an ID that isn't already used. This is inefficient if there is a large number of displays, but\n\t// that should never be the case.\n\tcandidateId := minDisplayId\n\tfor {\n\t\tif _, ok := arena.Displays[strconv.Itoa(candidateId)]; !ok {\n\t\t\treturn strconv.Itoa(candidateId)\n\t\t}\n\t\tcandidateId++\n\t}\n}\n\n// Creates or gets the given display in the arena registry and triggers a notification.\nfunc (arena *Arena) RegisterDisplay(displayConfig *DisplayConfiguration, ipAddress string) *Display {\n\tdisplayRegistryMutex.Lock()\n\tdefer displayRegistryMutex.Unlock()\n\n\tdisplay, ok := arena.Displays[displayConfig.Id]\n\tif ok && displayConfig.Type == PlaceholderDisplay {\n\t\t// Don't rewrite the registered configuration if the new one is a placeholder -- if it is reconnecting after a\n\t\t// restart, it should adopt the existing configuration.\n\t\tarena.Displays[displayConfig.Id].ConnectionCount++\n\t\tarena.Displays[displayConfig.Id].IpAddress = ipAddress\n\t} else {\n\t\tif !ok {\n\t\t\tdisplay = new(Display)\n\t\t\tdisplay.Notifier = websocket.NewNotifier(\n\t\t\t\t\"displayConfiguration\", display.generateDisplayConfigurationMessage,\n\t\t\t)\n\t\t\tarena.Displays[displayConfig.Id] = display\n\t\t}\n\t\tdisplay.DisplayConfiguration = *displayConfig\n\t\tdisplay.IpAddress = ipAddress\n\t\tdisplay.ConnectionCount += 1\n\t\tdisplay.lastConnectedTime = time.Now()\n\t\tdisplay.Notifier.Notify()\n\t}\n\tarena.DisplayConfigurationNotifier.Notify()\n\n\treturn display\n}\n\n// Updates the given display in the arena registry. Triggers a notification if the display configuration changed.\nfunc (arena *Arena) UpdateDisplay(displayConfig DisplayConfiguration) error {\n\tdisplayRegistryMutex.Lock()\n\tdefer displayRegistryMutex.Unlock()\n\n\tdisplay, ok := arena.Displays[displayConfig.Id]\n\tif !ok {\n\t\treturn fmt.Errorf(\"Display %s doesn't exist.\", displayConfig.Id)\n\t}\n\tif !reflect.DeepEqual(displayConfig, display.DisplayConfiguration) {\n\t\tdisplay.DisplayConfiguration = displayConfig\n\t\tdisplay.Notifier.Notify()\n\t\tarena.DisplayConfigurationNotifier.Notify()\n\t}\n\treturn nil\n}\n\n// Marks the given display as having disconnected in the arena registry and triggers a notification.\nfunc (arena *Arena) MarkDisplayDisconnected(displayId string) {\n\tdisplayRegistryMutex.Lock()\n\tdefer displayRegistryMutex.Unlock()\n\n\tif existingDisplay, ok := arena.Displays[displayId]; ok {\n\t\tif existingDisplay.ConnectionCount == 1 && existingDisplay.DisplayConfiguration.Type == PlaceholderDisplay &&\n\t\t\texistingDisplay.DisplayConfiguration.Nickname == \"\" &&\n\t\t\tlen(existingDisplay.DisplayConfiguration.Configuration) == 0 {\n\t\t\t// If the display is an unconfigured placeholder, just remove it entirely to prevent clutter.\n\t\t\tdelete(arena.Displays, existingDisplay.DisplayConfiguration.Id)\n\t\t} else {\n\t\t\texistingDisplay.ConnectionCount -= 1\n\t\t}\n\t\texistingDisplay.lastConnectedTime = time.Now()\n\t\tarena.DisplayConfigurationNotifier.Notify()\n\t}\n}\n\n// Removes any displays from the list that haven't had any active connections for a while and don't have a nickname.\nfunc (arena *Arena) purgeDisconnectedDisplays() {\n\tdisplayRegistryMutex.Lock()\n\tdefer displayRegistryMutex.Unlock()\n\n\tdeleted := false\n\tfor id, display := range arena.Displays {\n\t\tif display.ConnectionCount == 0 && display.DisplayConfiguration.Nickname == \"\" &&\n\t\t\ttime.Now().Sub(display.lastConnectedTime).Minutes() >= displayPurgeTtlMin {\n\t\t\tdelete(arena.Displays, id)\n\t\t\tdeleted = true\n\t\t}\n\t}\n\tif deleted {\n\t\tarena.DisplayConfigurationNotifier.Notify()\n\t}\n}\n"
  },
  {
    "path": "field/display_test.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage field\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestDisplayFromUrl(t *testing.T) {\n\tquery := map[string][]string{}\n\tdisplay, err := DisplayFromUrl(\"/display\", query)\n\tassert.Nil(t, display)\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"ID not present\")\n\t}\n\n\t// Test the various types.\n\tquery[\"displayId\"] = []string{\"123\"}\n\tdisplay, err = DisplayFromUrl(\"/blorpy\", query)\n\tassert.Nil(t, display)\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"Could not determine display type\")\n\t}\n\tdisplay, _ = DisplayFromUrl(\"/display/websocket\", query)\n\tassert.Equal(t, PlaceholderDisplay, display.Type)\n\tdisplay, _ = DisplayFromUrl(\"/displays/alliance_station/websocket\", query)\n\tassert.Equal(t, AllianceStationDisplay, display.Type)\n\tdisplay, _ = DisplayFromUrl(\"/displays/announcer/websocket\", query)\n\tassert.Equal(t, AnnouncerDisplay, display.Type)\n\tdisplay, _ = DisplayFromUrl(\"/displays/audience/websocket\", query)\n\tassert.Equal(t, AudienceDisplay, display.Type)\n\tdisplay, _ = DisplayFromUrl(\"/displays/field_monitor/websocket\", query)\n\tassert.Equal(t, FieldMonitorDisplay, display.Type)\n\tdisplay, _ = DisplayFromUrl(\"/displays/rankings/websocket\", query)\n\tassert.Equal(t, RankingsDisplay, display.Type)\n\n\t// Test the nickname and arbitrary parameters.\n\tquery[\"nickname\"] = []string{\"Test Nickname\"}\n\tquery[\"key1\"] = []string{\"value1\"}\n\tquery[\"key2\"] = []string{\"value2\"}\n\tquery[\"color\"] = []string{\"%230f0\"}\n\tdisplay, _ = DisplayFromUrl(\"/display/websocket\", query)\n\tassert.Equal(t, \"Test Nickname\", display.Nickname)\n\tif assert.Equal(t, 3, len(display.Configuration)) {\n\t\tassert.Equal(t, \"value1\", display.Configuration[\"key1\"])\n\t\tassert.Equal(t, \"value2\", display.Configuration[\"key2\"])\n\t\tassert.Equal(t, \"#0f0\", display.Configuration[\"color\"])\n\t}\n}\n\nfunc TestDisplayToUrl(t *testing.T) {\n\tdisplay := &Display{\n\t\tDisplayConfiguration: DisplayConfiguration{\n\t\t\tId:            \"254\",\n\t\t\tNickname:      \"Test Nickname\",\n\t\t\tType:          RankingsDisplay,\n\t\t\tConfiguration: map[string]string{\"f\": \"1\", \"z\": \"#fff\", \"a\": \"3\", \"c\": \"4\"},\n\t\t},\n\t}\n\tassert.Equal(t, \"/displays/rankings?displayId=254&nickname=Test+Nickname&a=3&c=4&f=1&z=%23fff\", display.ToUrl())\n}\n\nfunc TestNextDisplayId(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\tassert.Equal(t, \"100\", arena.NextDisplayId())\n\n\tdisplayConfig := &DisplayConfiguration{Id: \"100\"}\n\tarena.RegisterDisplay(displayConfig, \"\")\n\tassert.Equal(t, \"101\", arena.NextDisplayId())\n}\n\nfunc TestDisplayRegisterUnregister(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\tdisplayConfig := &DisplayConfiguration{\n\t\tId:            \"254\",\n\t\tNickname:      \"Placeholder\",\n\t\tType:          PlaceholderDisplay,\n\t\tConfiguration: map[string]string{},\n\t}\n\tarena.RegisterDisplay(displayConfig, \"1.2.3.4\")\n\tif assert.Contains(t, arena.Displays, \"254\") {\n\t\tassert.Equal(t, \"Placeholder\", arena.Displays[\"254\"].DisplayConfiguration.Nickname)\n\t\tassert.Equal(t, PlaceholderDisplay, arena.Displays[\"254\"].DisplayConfiguration.Type)\n\t\tassert.Equal(t, 1, arena.Displays[\"254\"].ConnectionCount)\n\t\tassert.Equal(t, \"1.2.3.4\", arena.Displays[\"254\"].IpAddress)\n\t}\n\tnotifier := arena.Displays[\"254\"].Notifier\n\n\t// Register a second instance of the same display.\n\tdisplayConfig2 := &DisplayConfiguration{\n\t\tId:            \"254\",\n\t\tNickname:      \"Rankings\",\n\t\tType:          RankingsDisplay,\n\t\tConfiguration: map[string]string{},\n\t}\n\tarena.RegisterDisplay(displayConfig2, \"2.3.4.5\")\n\tif assert.Contains(t, arena.Displays, \"254\") {\n\t\tassert.Equal(t, \"Rankings\", arena.Displays[\"254\"].DisplayConfiguration.Nickname)\n\t\tassert.Equal(t, RankingsDisplay, arena.Displays[\"254\"].DisplayConfiguration.Type)\n\t\tassert.Equal(t, 2, arena.Displays[\"254\"].ConnectionCount)\n\t\tassert.Equal(t, \"2.3.4.5\", arena.Displays[\"254\"].IpAddress)\n\t\tassert.Same(t, notifier, arena.Displays[\"254\"].Notifier)\n\t}\n\n\t// Register a second display.\n\tdisplayConfig3 := &DisplayConfiguration{Id: \"148\", Type: FieldMonitorDisplay, Configuration: map[string]string{}}\n\tarena.RegisterDisplay(displayConfig3, \"3.4.5.6\")\n\tif assert.Contains(t, arena.Displays, \"148\") {\n\t\tassert.Equal(t, 1, arena.Displays[\"148\"].ConnectionCount)\n\t}\n\n\t// Update the first display.\n\tdisplayConfig4 := DisplayConfiguration{\n\t\tId:            \"254\",\n\t\tNickname:      \"Alliance\",\n\t\tType:          AllianceStationDisplay,\n\t\tConfiguration: map[string]string{\"station\": \"B2\"},\n\t}\n\tarena.UpdateDisplay(displayConfig4)\n\tif assert.Contains(t, arena.Displays, \"254\") {\n\t\tassert.Equal(t, \"Alliance\", arena.Displays[\"254\"].DisplayConfiguration.Nickname)\n\t\tassert.Equal(t, AllianceStationDisplay, arena.Displays[\"254\"].DisplayConfiguration.Type)\n\t\tassert.Equal(t, 2, arena.Displays[\"254\"].ConnectionCount)\n\t}\n\n\t// Disconnect both displays.\n\tarena.MarkDisplayDisconnected(displayConfig.Id)\n\tarena.MarkDisplayDisconnected(displayConfig3.Id)\n\tif assert.Contains(t, arena.Displays, \"148\") {\n\t\tassert.Equal(t, 0, arena.Displays[\"148\"].ConnectionCount)\n\t}\n\tif assert.Contains(t, arena.Displays, \"254\") {\n\t\tassert.Equal(t, 1, arena.Displays[\"254\"].ConnectionCount)\n\t}\n}\n\nfunc TestDisplayUpdateError(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\tdisplayConfig := DisplayConfiguration{Id: \"254\", Configuration: map[string]string{}}\n\terr := arena.UpdateDisplay(displayConfig)\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"doesn't exist\")\n\t}\n}\n\nfunc TestDisplayPurge(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\t// Unnamed placeholder gets immediately purged upon disconnection.\n\tdisplayConfig := &DisplayConfiguration{Id: \"254\", Type: PlaceholderDisplay, Configuration: map[string]string{}}\n\tarena.RegisterDisplay(displayConfig, \"1.2.3.4\")\n\tassert.Contains(t, arena.Displays, \"254\")\n\tarena.MarkDisplayDisconnected(displayConfig.Id)\n\tassert.NotContains(t, arena.Displays, \"254\")\n\n\t// Named placeholder does not get immediately purged upon disconnection.\n\tdisplayConfig.Nickname = \"Bob\"\n\tarena.RegisterDisplay(displayConfig, \"1.2.3.4\")\n\tassert.Contains(t, arena.Displays, \"254\")\n\tarena.MarkDisplayDisconnected(displayConfig.Id)\n\tassert.Contains(t, arena.Displays, \"254\")\n\n\t// Unnamed configured displayConfig does not get immediately purged upon disconnection.\n\tdisplayConfig = &DisplayConfiguration{Id: \"1114\", Type: FieldMonitorDisplay, Configuration: map[string]string{}}\n\tarena.RegisterDisplay(displayConfig, \"1.2.3.4\")\n\tassert.Contains(t, arena.Displays, \"1114\")\n\tarena.MarkDisplayDisconnected(displayConfig.Id)\n\tassert.Contains(t, arena.Displays, \"1114\")\n\tarena.purgeDisconnectedDisplays()\n\tassert.Contains(t, arena.Displays, \"1114\")\n\n\t// Unnamed configured displayConfig gets purged by periodic task.\n\tarena.RegisterDisplay(displayConfig, \"1.2.3.4\")\n\tassert.Contains(t, arena.Displays, \"1114\")\n\tarena.MarkDisplayDisconnected(displayConfig.Id)\n\tarena.Displays[\"1114\"].lastConnectedTime = time.Now().Add(-displayPurgeTtlMin * time.Minute)\n\tarena.purgeDisconnectedDisplays()\n\tassert.NotContains(t, arena.Displays, \"1114\")\n\n\t// Named configured displayConfig does not get purged by periodic task.\n\tdisplayConfig.Nickname = \"Brunhilda\"\n\tarena.RegisterDisplay(displayConfig, \"1.2.3.4\")\n\tassert.Contains(t, arena.Displays, \"1114\")\n\tarena.MarkDisplayDisconnected(displayConfig.Id)\n\tarena.Displays[\"1114\"].lastConnectedTime = time.Now().Add(-displayPurgeTtlMin * time.Minute)\n\tarena.purgeDisconnectedDisplays()\n\tassert.Contains(t, arena.Displays, \"1114\")\n}\n"
  },
  {
    "path": "field/driver_station_connection.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model and methods for interacting with a team's Driver Station.\n\npackage field\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"net\"\n\t\"time\"\n\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/network\"\n)\n\n// FMS uses 1121 for sending UDP packets, and FMS Lite uses 1120. Using 1121\n// seems to work just fine and doesn't prompt to let FMS take control.\nconst (\n\tdriverStationTcpListenPort     = 1750\n\tdriverStationUdpSendPort       = 1121\n\tdriverStationUdpSendPortLite   = 1120\n\tdriverStationUdpReceivePort    = 1160\n\tdriverStationTcpLinkTimeoutSec = 5\n\tdriverStationUdpLinkTimeoutSec = 1\n\tmaxTcpPacketBytes              = 65537 // 2 for size, then 2^16-1 for data.\n)\n\ntype DriverStationConnection struct {\n\tTeamId                    int\n\tAllianceStation           string\n\tAuto                      bool\n\tEnabled                   bool\n\tEStop                     bool\n\tAStop                     bool\n\tDsLinked                  bool\n\tRadioLinked               bool\n\tRioLinked                 bool\n\tRobotLinked               bool\n\tBatteryVoltage            float64\n\tDsRobotTripTimeMs         int\n\tMissedPacketCount         int\n\tSecondsSinceLastRobotLink float64\n\tlastPacketTime            time.Time\n\tlastRobotLinkedTime       time.Time\n\tpacketCount               int\n\ttcpConn                   net.Conn\n\tudpConn                   net.Conn\n\tlog                       *TeamMatchLog\n\tSentGameData              string\n\n\t// WrongStation indicates if the team in the station is the incorrect team\n\t// by being non-empty. If the team is in the correct station, or no team is\n\t// connected, this is empty.\n\tWrongStation string\n}\n\nvar allianceStationPositionMap = map[string]byte{\"R1\": 0, \"R2\": 1, \"R3\": 2, \"B1\": 3, \"B2\": 4, \"B3\": 5}\n\nfunc driverStationTeamIdFromRemoteAddr(addr net.Addr) (int, string, bool) {\n\tipAddress, _, err := net.SplitHostPort(addr.String())\n\tif err != nil {\n\t\treturn 0, \"\", false\n\t}\n\n\t// Driver stations use team-specific 10.TE.AM.X addresses on a field network.\n\tipAddressBytes := net.ParseIP(ipAddress).To4()\n\tif ipAddressBytes == nil || ipAddressBytes[0] != 10 {\n\t\treturn 0, ipAddress, false\n\t}\n\n\treturn int(ipAddressBytes[1])*100 + int(ipAddressBytes[2]), ipAddress, true\n}\n\n// Opens a UDP connection for communicating to the driver station.\nfunc newDriverStationConnection(\n\tteamId int,\n\tallianceStation string,\n\ttcpConn net.Conn,\n\tuseLiteUdpPort bool,\n) (*DriverStationConnection, error) {\n\tipAddress, _, err := net.SplitHostPort(tcpConn.RemoteAddr().String())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tlog.Printf(\"Driver station for Team %d connected from %s\\n\", teamId, ipAddress)\n\n\tudpSendPort := driverStationUdpSendPort\n\tif useLiteUdpPort {\n\t\tudpSendPort = driverStationUdpSendPortLite\n\t}\n\n\tudpConn, err := net.Dial(\"udp4\", fmt.Sprintf(\"%s:%d\", ipAddress, udpSendPort))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &DriverStationConnection{\n\t\tTeamId:          teamId,\n\t\tAllianceStation: allianceStation,\n\t\ttcpConn:         tcpConn,\n\t\tudpConn:         udpConn,\n\t}, nil\n}\n\n// Loops indefinitely to read packets and update connection status.\nfunc (arena *Arena) listenForDsUdpPackets() {\n\tudpAddress, err := net.ResolveUDPAddr(\"udp4\", fmt.Sprintf(\"%s:%d\", network.ServerIpAddress, driverStationUdpReceivePort))\n\tif err != nil {\n\t\tlog.Printf(\"Error resolving driver station UDP address: %v\", err)\n\t\tlog.Printf(\"Change IP address to %s and restart Cheesy Arena to fix.\", network.ServerIpAddress)\n\t\treturn\n\t}\n\tlistener, err := net.ListenUDP(\"udp4\", udpAddress)\n\tif err != nil {\n\t\tlog.Fatalf(\"Error opening driver station UDP socket: %v\", err)\n\t}\n\tlog.Printf(\"Listening for driver stations on UDP port %d\\n\", driverStationUdpReceivePort)\n\n\tdefer listener.Close()\n\n\tdata := make([]byte, 1500)\n\tfor {\n\t\tcount, _ := listener.Read(data[:])\n\t\tif count < 8 {\n\t\t\tlog.Printf(\"Received packet with insufficient length: %d\", count)\n\t\t\tcontinue\n\t\t}\n\n\t\tteamId := int(data[4])<<8 + int(data[5])\n\n\t\tvar dsConn *DriverStationConnection\n\t\tfor _, allianceStation := range arena.AllianceStations {\n\t\t\tif allianceStation.Team != nil && allianceStation.Team.Id == teamId {\n\t\t\t\tdsConn = allianceStation.DsConn\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif dsConn != nil {\n\t\t\t// Search through tags looking for tag 1\n\t\t\tindex := 8\n\t\t\tfor index < count {\n\t\t\t\tlength := data[index]\n\t\t\t\tindex++\n\t\t\t\tif length == 0 {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif index+int(length) > count {\n\t\t\t\t\tlog.Printf(\"Unable to finish parsing UDP packet\")\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\ttag := data[index]\n\t\t\t\tif tag == 1 && length == 6 {\n\t\t\t\t\tlost := (int(data[index+1]) << 8) + int(data[index+2])\n\t\t\t\t\tping := int(data[index+5])\n\t\t\t\t\tdsConn.MissedPacketCount = lost\n\t\t\t\t\tdsConn.DsRobotTripTimeMs = ping\n\t\t\t\t}\n\t\t\t\tindex += int(length)\n\t\t\t}\n\n\t\t\tdsConn.DsLinked = true\n\t\t\tdsConn.lastPacketTime = time.Now()\n\n\t\t\tdsConn.RioLinked = data[3]&0x08 != 0\n\t\t\tdsConn.RadioLinked = data[3]&0x10 != 0\n\t\t\tdsConn.RobotLinked = data[3]&0x20 != 0\n\t\t\tif dsConn.RobotLinked {\n\t\t\t\tdsConn.lastRobotLinkedTime = time.Now()\n\n\t\t\t\t// Robot battery voltage, stored as volts * 256.\n\t\t\t\tdsConn.BatteryVoltage = float64(data[6]) + float64(data[7])/256\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Sends a control packet to the Driver Station and checks for timeout conditions.\nfunc (dsConn *DriverStationConnection) update(arena *Arena, gameData string) error {\n\terr := dsConn.sendControlPacket(arena, gameData)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif time.Since(dsConn.lastPacketTime).Seconds() > driverStationUdpLinkTimeoutSec {\n\t\tdsConn.DsLinked = false\n\t\tdsConn.RadioLinked = false\n\t\tdsConn.RioLinked = false\n\t\tdsConn.RobotLinked = false\n\t\tdsConn.BatteryVoltage = 0\n\t}\n\tdsConn.SecondsSinceLastRobotLink = time.Since(dsConn.lastRobotLinkedTime).Seconds()\n\n\treturn nil\n}\n\nfunc (dsConn *DriverStationConnection) close() {\n\tif dsConn.log != nil {\n\t\tdsConn.log.Close()\n\t}\n\tif dsConn.udpConn != nil {\n\t\tdsConn.udpConn.Close()\n\t}\n\tif dsConn.tcpConn != nil {\n\t\tdsConn.tcpConn.Close()\n\t}\n}\n\n// Called at the start of the match to allow for driver station initialization.\nfunc (dsConn *DriverStationConnection) signalMatchStart(match *model.Match, wifiStatus *network.TeamWifiStatus) error {\n\t// Zero out missed packet count and begin logging.\n\tdsConn.MissedPacketCount = 0\n\tvar err error\n\tdsConn.log, err = NewTeamMatchLog(dsConn.TeamId, match, wifiStatus)\n\treturn err\n}\n\n// Serializes the control information into a packet.\nfunc (dsConn *DriverStationConnection) encodeControlPacket(arena *Arena) [22]byte {\n\tvar packet [22]byte\n\n\t// Packet number, stored big-endian in two bytes.\n\tpacket[0] = byte((dsConn.packetCount >> 8) & 0xff)\n\tpacket[1] = byte(dsConn.packetCount & 0xff)\n\n\t// Protocol version.\n\tpacket[2] = 0\n\n\t// Robot status byte.\n\tpacket[3] = 0\n\tif dsConn.Auto {\n\t\tpacket[3] |= 0x02\n\t}\n\tif dsConn.Enabled {\n\t\tpacket[3] |= 0x04\n\t}\n\tif dsConn.EStop {\n\t\tpacket[3] |= 0x80\n\t}\n\tif dsConn.AStop {\n\t\tpacket[3] |= 0x40\n\t}\n\n\t// Unknown or unused.\n\tpacket[4] = 0\n\n\t// Alliance station.\n\tpacket[5] = allianceStationPositionMap[dsConn.AllianceStation]\n\n\t// Match type.\n\tmatch := arena.CurrentMatch\n\tswitch match.Type {\n\tcase model.Practice:\n\t\tpacket[6] = 1\n\tcase model.Qualification:\n\t\tpacket[6] = 2\n\tcase model.Playoff:\n\t\tpacket[6] = 3\n\tdefault:\n\t\tpacket[6] = 0\n\t}\n\n\t// Match number.\n\tpacket[7] = byte(match.TypeOrder >> 8)\n\tpacket[8] = byte(match.TypeOrder & 0xff)\n\tpacket[9] = 1 // Match repeat number\n\n\t// Current time.\n\tcurrentTime := time.Now()\n\tpacket[10] = byte(((currentTime.Nanosecond() / 1000) >> 24) & 0xff)\n\tpacket[11] = byte(((currentTime.Nanosecond() / 1000) >> 16) & 0xff)\n\tpacket[12] = byte(((currentTime.Nanosecond() / 1000) >> 8) & 0xff)\n\tpacket[13] = byte((currentTime.Nanosecond() / 1000) & 0xff)\n\tpacket[14] = byte(currentTime.Second())\n\tpacket[15] = byte(currentTime.Minute())\n\tpacket[16] = byte(currentTime.Hour())\n\tpacket[17] = byte(currentTime.Day())\n\tpacket[18] = byte(currentTime.Month())\n\tpacket[19] = byte(currentTime.Year() - 1900)\n\n\t// Remaining number of seconds in match.\n\tvar matchSecondsRemaining int\n\tswitch arena.MatchState {\n\tcase PreMatch, TimeoutActive, PostTimeout:\n\t\tmatchSecondsRemaining = game.MatchTiming.AutoDurationSec\n\tcase StartMatch, AutoPeriod:\n\t\tmatchSecondsRemaining = game.MatchTiming.AutoDurationSec - int(arena.MatchTimeSec())\n\tcase PausePeriod:\n\t\tmatchSecondsRemaining = game.MatchTiming.TeleopDurationSec\n\tcase TeleopPeriod:\n\t\tmatchSecondsRemaining = game.MatchTiming.AutoDurationSec + game.MatchTiming.TeleopDurationSec +\n\t\t\tgame.MatchTiming.PauseDurationSec - int(arena.MatchTimeSec())\n\tdefault:\n\t\tmatchSecondsRemaining = 0\n\t}\n\tpacket[20] = byte(matchSecondsRemaining >> 8 & 0xff)\n\tpacket[21] = byte(matchSecondsRemaining & 0xff)\n\n\t// Increment the packet count for next time.\n\tdsConn.packetCount++\n\n\treturn packet\n}\n\n// Builds and sends the next control packet to the Driver Station.\nfunc (dsConn *DriverStationConnection) sendControlPacket(arena *Arena, gameData string) error {\n\tgameDataErr := dsConn.checkGameData(gameData)\n\tpacket := dsConn.encodeControlPacket(arena)\n\tif dsConn.udpConn != nil {\n\t\t_, err := dsConn.udpConn.Write(packet[:])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn gameDataErr\n}\n\n// Listens for TCP connection requests to Cheesy Arena from driver stations.\nfunc (arena *Arena) listenForDriverStations() {\n\tl, err := net.Listen(\"tcp\", fmt.Sprintf(\"%s:%d\", network.ServerIpAddress, driverStationTcpListenPort))\n\tif err != nil {\n\t\tlog.Printf(\"Error opening driver station TCP socket: %v\", err.Error())\n\t\tlog.Printf(\"Change IP address to %s and restart Cheesy Arena to fix.\", network.ServerIpAddress)\n\t\treturn\n\t}\n\tdefer l.Close()\n\n\tarena.serveDriverStations(l)\n}\n\nfunc (arena *Arena) serveDriverStations(listener net.Listener) {\n\tif tcpAddr, ok := listener.Addr().(*net.TCPAddr); ok {\n\t\tlog.Printf(\"Listening for driver stations on TCP port %d\\n\", tcpAddr.Port)\n\t} else {\n\t\tlog.Printf(\"Listening for driver stations on TCP address %s\\n\", listener.Addr())\n\t}\n\n\tfor {\n\t\ttcpConn, err := listener.Accept()\n\t\tif err != nil {\n\t\t\tif errors.Is(err, net.ErrClosed) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tlog.Println(\"Error accepting driver station connection: \", err.Error())\n\t\t\tcontinue\n\t\t}\n\n\t\t// Read the team number back and start tracking the driver station.\n\t\tvar packet [5]byte\n\t\t_, err = readTaggedTcpPacket(tcpConn, packet[:])\n\t\tif err != nil {\n\t\t\tlog.Println(\"Error reading initial packet: \", err.Error())\n\t\t\tcontinue\n\t\t}\n\t\tif !(packet[0] == 0 && packet[1] == 3 && packet[2] == 24) {\n\t\t\tlog.Printf(\"Invalid initial packet received: %v\", packet)\n\t\t\ttcpConn.Close()\n\t\t\tcontinue\n\t\t}\n\t\tteamId := int(packet[3])<<8 + int(packet[4])\n\n\t\t// Check to see if the team is supposed to be on the field, and notify the DS accordingly.\n\t\tassignedStation := arena.getAssignedAllianceStation(teamId)\n\t\tif assignedStation == \"\" {\n\t\t\tlog.Printf(\"Rejecting connection from Team %d, who is not in the current match, soon.\", teamId)\n\t\t\tgo handleInvalidTcpConnection(tcpConn, 2, 0)\n\t\t\tcontinue\n\t\t}\n\n\t\t// Read the team number from the IP address to check for a station mismatch.\n\t\tstationStatus := byte(0)\n\t\twrongAssignedStation := \"\"\n\t\tif arena.EventSettings.NetworkSecurityEnabled {\n\t\t\tstationTeamId, ipAddress, ok := driverStationTeamIdFromRemoteAddr(tcpConn.RemoteAddr())\n\t\t\tif ok && stationTeamId != teamId {\n\t\t\t\twrongAssignedStation = arena.getAssignedAllianceStation(stationTeamId)\n\t\t\t\t// The team is supposed to be in this match, but is plugged into the wrong station.\n\t\t\t\tif wrongAssignedStation != \"\" {\n\t\t\t\t\tlog.Printf(\"Team %d is in incorrect station %s.\", teamId, wrongAssignedStation)\n\t\t\t\t\tstationStatus = 1\n\t\t\t\t} else {\n\t\t\t\t\tlog.Printf(\"Team %d is in unknown station with IP address %s.\", teamId, ipAddress)\n\t\t\t\t\tstationStatus = 1\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar assignmentPacket [5]byte\n\t\tassignmentPacket[0] = 0  // Packet size\n\t\tassignmentPacket[1] = 3  // Packet size\n\t\tassignmentPacket[2] = 25 // Packet type\n\t\tlog.Printf(\"Accepting connection from Team %d in station %s.\", teamId, assignedStation)\n\t\tassignmentPacket[3] = allianceStationPositionMap[assignedStation]\n\t\tassignmentPacket[4] = stationStatus\n\t\t_, err = tcpConn.Write(assignmentPacket[:])\n\t\tif err != nil {\n\t\t\tlog.Printf(\"Error sending driver station assignment packet: %v\", err)\n\t\t\ttcpConn.Close()\n\t\t\tcontinue\n\t\t}\n\n\t\t// Write event code here. We need to strip any numbers off the front if it has it.\n\t\t// We also need to limit to 62 characters.\n\t\teventName := arena.EventSettings.TbaEventCode\n\t\tif len(eventName) > 0 {\n\t\t\ttrimIndex := 0\n\t\t\tfor trimIndex < len(eventName) && eventName[trimIndex] >= '0' && eventName[trimIndex] <= '9' {\n\t\t\t\ttrimIndex++\n\t\t\t}\n\t\t\teventName = eventName[trimIndex:]\n\t\t\tif len(eventName) > 62 {\n\t\t\t\teventName = eventName[:62]\n\t\t\t}\n\t\t\tif len(eventName) > 0 {\n\t\t\t\teventNamePacket := make([]byte, 4+len(eventName))\n\t\t\t\teventNamePacket[0] = 0\n\t\t\t\teventNamePacket[1] = byte(len(eventName) + 2)\n\t\t\t\teventNamePacket[2] = 20 // Packet type for event name\n\t\t\t\teventNamePacket[3] = byte(len(eventName))\n\t\t\t\tcopy(eventNamePacket[4:], []byte(eventName))\n\t\t\t\t_, err = tcpConn.Write(eventNamePacket)\n\t\t\t\tif err != nil {\n\t\t\t\t\tlog.Printf(\"Error sending event name packet: %v\", err)\n\t\t\t\t\ttcpConn.Close()\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdsConn, err := newDriverStationConnection(teamId, assignedStation, tcpConn, arena.EventSettings.UseLiteUdpPort)\n\t\tif err != nil {\n\t\t\tlog.Printf(\"Error registering driver station connection: %v\", err)\n\t\t\ttcpConn.Close()\n\t\t\tcontinue\n\t\t}\n\t\tarena.AllianceStations[assignedStation].DsConn = dsConn\n\n\t\tif wrongAssignedStation != \"\" {\n\t\t\tdsConn.WrongStation = wrongAssignedStation\n\t\t}\n\n\t\t// Spin up a goroutine to handle further TCP communication with this driver station.\n\t\tgo dsConn.handleTcpConnection(arena)\n\t}\n}\n\nfunc readTaggedTcpPacket(tcpConn net.Conn, buffer []byte) (int, error) {\n\tif len(buffer) < 2 {\n\t\treturn 0, fmt.Errorf(\"buffer too small to read TCP packet\")\n\t}\n\n\ttcpConn.SetReadDeadline(time.Now().Add(time.Second * driverStationTcpLinkTimeoutSec))\n\t_, err := io.ReadFull(tcpConn, buffer[:2])\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tpacketLength := int(buffer[0])<<8 + int(buffer[1])\n\n\tif len(buffer) < 2+packetLength {\n\t\treturn 0, fmt.Errorf(\"buffer too small to read full TCP packet\")\n\t}\n\n\t_, err = io.ReadFull(tcpConn, buffer[2:2+packetLength])\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn 2 + packetLength, nil\n}\n\nfunc (dsConn *DriverStationConnection) handleTcpConnection(arena *Arena) {\n\tbuffer := make([]byte, maxTcpPacketBytes)\n\tfor {\n\t\t_, err := readTaggedTcpPacket(dsConn.tcpConn, buffer)\n\t\tif err != nil {\n\t\t\tlog.Printf(\"Error reading from connection for Team %d: %v\", dsConn.TeamId, err)\n\t\t\tdsConn.close()\n\t\t\tif arena.AllianceStations[dsConn.AllianceStation].DsConn == dsConn {\n\t\t\t\tarena.AllianceStations[dsConn.AllianceStation].DsConn = nil\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\n\t\tpacketType := int(buffer[2])\n\t\tswitch packetType {\n\t\tcase 29:\n\t\t\t// DS keepalive packet; do nothing.\n\t\t\tcontinue\n\t\tcase 22:\n\t\t\t// Robot log packet. Just use to trigger fms log\n\t\t\t// Create a log entry if the match is in progress.\n\t\t\tmatchTimeSec := arena.MatchTimeSec()\n\t\t\tif matchTimeSec > 0 && dsConn.log != nil {\n\t\t\t\tdsConn.log.LogDsPacket(matchTimeSec, packetType, dsConn)\n\t\t\t}\n\t\tdefault:\n\t\t\tlog.Printf(\"Received unknown packet type %d from Team %d\", packetType, dsConn.TeamId)\n\t\t}\n\t}\n}\n\nfunc handleInvalidTcpConnection(tcpConn net.Conn, status int, station int) {\n\tlog.Printf(\"Handling invalid TCP connection from %v with status %d and station %d\", tcpConn.RemoteAddr(), status, station)\n\tvar assignmentPacket [5]byte\n\tassignmentPacket[0] = 0  // Packet size\n\tassignmentPacket[1] = 3  // Packet size\n\tassignmentPacket[2] = 25 // Packet type\n\tassignmentPacket[3] = byte(station)\n\tassignmentPacket[4] = byte(status)\n\t_, err := tcpConn.Write(assignmentPacket[:])\n\tif err != nil {\n\t\tlog.Printf(\"Error sending invalid driver station assignment packet: %v\", err)\n\t\ttcpConn.Close()\n\t\treturn\n\t}\n\n\tbuffer := make([]byte, maxTcpPacketBytes)\n\tfor {\n\t\t_, err := readTaggedTcpPacket(tcpConn, buffer)\n\t\tif err != nil {\n\t\t\tlog.Printf(\"Error reading from connection for invalid driver station: %v\", err)\n\t\t\tbreak\n\t\t}\n\t}\n\n\ttcpConn.Close()\n}\n\nfunc (dsConn *DriverStationConnection) checkGameData(gameData string) error {\n\tneedsGameDataUpdate := dsConn.SentGameData != gameData\n\tif needsGameDataUpdate {\n\t\terr := dsConn.sendGameDataPacket(gameData)\n\t\tif err != nil {\n\t\t\tlog.Printf(\"Error sending game data packet to Team %d: %v\", dsConn.TeamId, err)\n\t\t\treturn err\n\t\t} else {\n\t\t\tdsConn.SentGameData = gameData\n\t\t}\n\t}\n\treturn nil\n}\n\n// Sends a TCP packet containing the given game data to the driver station.\nfunc (dsConn *DriverStationConnection) sendGameDataPacket(gameData string) error {\n\tbyteData := []byte(gameData)\n\tsize := len(byteData)\n\tpacket := make([]byte, size+4)\n\n\tpacket[0] = 0              // Packet size\n\tpacket[1] = byte(size + 2) // Packet size\n\tpacket[2] = 28             // Packet type\n\tpacket[3] = byte(size)     // Data size\n\n\t// Fill the rest of the packet with the data.\n\tfor i, character := range byteData {\n\t\tpacket[i+4] = character\n\t}\n\n\tif dsConn.tcpConn != nil {\n\t\t_, err := dsConn.tcpConn.Write(packet)\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "field/driver_station_connection_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage field\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestEncodeControlPacket(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\ttcpConn := setupFakeTcpConnection(t)\n\tdefer tcpConn.Close()\n\tdsConn, err := newDriverStationConnection(254, \"R1\", tcpConn, false)\n\tassert.Nil(t, err)\n\tdefer dsConn.close()\n\n\tdata := dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(0), data[5])\n\tassert.Equal(t, byte(0), data[6])\n\tassert.Equal(t, byte(0), data[20])\n\tassert.Equal(t, byte(15), data[21])\n\n\t// Check the different alliance station values.\n\tdsConn.AllianceStation = \"R2\"\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(1), data[5])\n\tdsConn.AllianceStation = \"R3\"\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(2), data[5])\n\tdsConn.AllianceStation = \"B1\"\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(3), data[5])\n\tdsConn.AllianceStation = \"B2\"\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(4), data[5])\n\tdsConn.AllianceStation = \"B3\"\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(5), data[5])\n\n\t// Check packet count rollover.\n\tdsConn.packetCount = 255\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(0), data[0])\n\tassert.Equal(t, byte(255), data[1])\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(1), data[0])\n\tassert.Equal(t, byte(0), data[1])\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(1), data[0])\n\tassert.Equal(t, byte(1), data[1])\n\tdsConn.packetCount = 65535\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(255), data[0])\n\tassert.Equal(t, byte(255), data[1])\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(0), data[0])\n\tassert.Equal(t, byte(0), data[1])\n\n\t// Check different robot statuses.\n\tdsConn.Auto = true\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(2), data[3])\n\n\tdsConn.Enabled = true\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(6), data[3])\n\n\tdsConn.Auto = false\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(4), data[3])\n\n\tdsConn.EStop = true\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(132), data[3])\n\n\tdsConn.AStop = true\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(196), data[3])\n\n\t// Check different match types.\n\tarena.CurrentMatch.Type = model.Practice\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(1), data[6])\n\tarena.CurrentMatch.Type = model.Qualification\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(2), data[6])\n\tarena.CurrentMatch.Type = model.Playoff\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(3), data[6])\n\n\t// Check match numbers.\n\tarena.CurrentMatch.Type = model.Practice\n\tarena.CurrentMatch.TypeOrder = 42\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(0), data[7])\n\tassert.Equal(t, byte(42), data[8])\n\tarena.CurrentMatch.Type = model.Qualification\n\tarena.CurrentMatch.TypeOrder = 258\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(1), data[7])\n\tassert.Equal(t, byte(2), data[8])\n\tarena.CurrentMatch.Type = model.Playoff\n\tarena.CurrentMatch.TypeOrder = 13\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(0), data[7])\n\tassert.Equal(t, byte(13), data[8])\n\n\t// Check the countdown at different points during the match.\n\tarena.MatchState = AutoPeriod\n\tarena.MatchStartTime = time.Now().Add(-time.Duration(4 * time.Second))\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(11), data[21])\n\tarena.MatchState = PausePeriod\n\tarena.MatchStartTime = time.Now().Add(-time.Duration(16 * time.Second))\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(135), data[21])\n\tarena.MatchState = TeleopPeriod\n\tarena.MatchStartTime = time.Now().Add(-time.Duration(33 * time.Second))\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(119), data[21])\n\tarena.MatchStartTime = time.Now().Add(-time.Duration(150 * time.Second))\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(2), data[21])\n\tarena.MatchState = PostMatch\n\tarena.MatchStartTime = time.Now().Add(-time.Duration(180 * time.Second))\n\tdata = dsConn.encodeControlPacket(arena)\n\tassert.Equal(t, byte(0), data[21])\n}\n\nfunc TestSendControlPacket(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\ttcpConn := setupFakeTcpConnection(t)\n\tdefer tcpConn.Close()\n\tdsConn, err := newDriverStationConnection(254, \"R1\", tcpConn, false)\n\tassert.Nil(t, err)\n\tdefer dsConn.close()\n\n\t// No real way of checking this since the destination IP is remote, so settle for there being no errors.\n\terr = dsConn.sendControlPacket(arena, \"\")\n\tassert.Nil(t, err)\n}\n\nfunc TestListenForDriverStations(t *testing.T) {\n\tarena := setupTestArena(t)\n\tserverAddress := startTestDriverStationServer(t, arena)\n\n\t// Connect with an invalid initial packet.\n\ttcpConn, err := net.Dial(\"tcp\", serverAddress)\n\tif assert.Nil(t, err) {\n\t\tdataSend := [5]byte{0, 3, 29, 0, 0}\n\t\ttcpConn.Write(dataSend[:])\n\t\tvar dataReceived [100]byte\n\t\t_, err = readTaggedTcpPacket(tcpConn, dataReceived[:])\n\t\tassert.NotNil(t, err)\n\t\ttcpConn.Close()\n\t}\n\n\t// Connect as a team not in the current match.\n\ttcpConn, err = net.Dial(\"tcp\", serverAddress)\n\tif assert.Nil(t, err) {\n\t\tdataSend := [5]byte{0, 3, 24, 5, 223}\n\t\ttcpConn.Write(dataSend[:])\n\t\tvar dataReceived [5]byte\n\t\tcount, err := readTaggedTcpPacket(tcpConn, dataReceived[:])\n\t\tassert.Nil(t, err)\n\t\tassert.Equal(t, count, 5)\n\t\tassert.Equal(t, [5]byte{0, 3, 25, 0, 2}, dataReceived)\n\t\ttcpConn.Close()\n\t}\n\n\t// Connect as a team in the current match.\n\tarena.assignTeam(1503, \"B2\")\n\n\t// Connect as a team in the current match with a fragmented initial packet.\n\ttcpConn, err = net.Dial(\"tcp\", serverAddress)\n\tif assert.Nil(t, err) {\n\t\tdefer tcpConn.Close()\n\t\tdataSend := [5]byte{0, 3, 24, 5, 223}\n\t\ttcpConn.Write(dataSend[:1])\n\t\ttcpConn.Write(dataSend[1:5])\n\t\tvar dataReceived [5]byte\n\t\tcount, err := readTaggedTcpPacket(tcpConn, dataReceived[:])\n\t\tassert.Nil(t, err)\n\t\tassert.Equal(t, count, 5)\n\t}\n\n\t// Set event name\n\tarena.EventSettings.TbaEventCode = \"2026CC\"\n\ttcpConn, err = net.Dial(\"tcp\", serverAddress)\n\tif assert.Nil(t, err) {\n\t\tdefer tcpConn.Close()\n\t\tdataSend := [5]byte{0, 3, 24, 5, 223}\n\t\ttcpConn.Write(dataSend[:])\n\t\tvar dataReceived [100]byte\n\t\t_, err := readTaggedTcpPacket(tcpConn, dataReceived[:])\n\t\tassert.Nil(t, err)\n\t\t// Read event name\n\t\tcount, err := readTaggedTcpPacket(tcpConn, dataReceived[:])\n\t\tassert.Nil(t, err)\n\t\tassert.Equal(t, count, 6)\n\t\tassert.Equal(t, []byte{0, 4, 20, 2, 67, 67}, dataReceived[:6])\n\t}\n\n\ttcpConn, err = net.Dial(\"tcp\", serverAddress)\n\tif assert.Nil(t, err) {\n\t\tdefer tcpConn.Close()\n\t\tdataSend := [5]byte{0, 3, 24, 5, 223}\n\t\ttcpConn.Write(dataSend[:])\n\t\tvar dataReceived [5]byte\n\t\t_, err = readTaggedTcpPacket(tcpConn, dataReceived[:])\n\t\tassert.Nil(t, err)\n\t\tassert.Equal(t, [5]byte{0, 3, 25, 4, 0}, dataReceived)\n\n\t\tdsConn := waitForDriverStationConnection(t, arena, \"B2\")\n\t\tif assert.NotNil(t, dsConn) {\n\t\t\tassert.Equal(t, 1503, dsConn.TeamId)\n\t\t\tassert.Equal(t, \"B2\", dsConn.AllianceStation)\n\n\t\t\t// Check that an unknown packet type gets ignored and a status packet gets decoded.\n\t\t\tdataSend = [5]byte{0, 3, 37, 0, 0}\n\t\t\ttcpConn.Write(dataSend[:])\n\t\t}\n\t}\n}\n\nfunc TestListenForDriverStations_NetworkSecurityIgnoresNonFieldIp(t *testing.T) {\n\tarena := setupTestArena(t)\n\tarena.EventSettings.NetworkSecurityEnabled = true\n\tarena.assignTeam(1503, \"B2\")\n\tserverAddress := startTestDriverStationServer(t, arena)\n\n\ttcpConn, err := net.Dial(\"tcp\", serverAddress)\n\tif assert.Nil(t, err) {\n\t\tdefer tcpConn.Close()\n\n\t\tdataSend := [5]byte{0, 3, 24, 5, 223}\n\t\ttcpConn.Write(dataSend[:])\n\n\t\tvar dataReceived [5]byte\n\t\t_, err = readTaggedTcpPacket(tcpConn, dataReceived[:])\n\t\tassert.Nil(t, err)\n\t\tassert.Equal(t, [5]byte{0, 3, 25, 4, 0}, dataReceived)\n\n\t\tdsConn := waitForDriverStationConnection(t, arena, \"B2\")\n\t\tif assert.NotNil(t, dsConn) {\n\t\t\tassert.Equal(t, \"\", dsConn.WrongStation)\n\t\t}\n\t}\n}\n\nfunc TestNewDriverStationConnection_UdpPortSelection(t *testing.T) {\n\ttcpConn := setupFakeTcpConnection(t)\n\tdefer tcpConn.Close()\n\n\t// Test with default settings (FMS port).\n\tdsConn, err := newDriverStationConnection(254, \"R1\", tcpConn, false)\n\tassert.Nil(t, err)\n\tdefer dsConn.close()\n\tassert.Contains(t, dsConn.udpConn.RemoteAddr().String(), fmt.Sprintf(\":%d\", driverStationUdpSendPort))\n\n\ttcpConnLite := setupFakeTcpConnection(t)\n\tdefer tcpConnLite.Close()\n\n\t// Test with FMS Lite port enabled.\n\tdsConnLite, err := newDriverStationConnection(254, \"R1\", tcpConnLite, true)\n\tassert.Nil(t, err)\n\tdefer dsConnLite.close()\n\tassert.Contains(t, dsConnLite.udpConn.RemoteAddr().String(), fmt.Sprintf(\":%d\", driverStationUdpSendPortLite))\n}\n\nfunc setupFakeTcpConnection(t *testing.T) net.Conn {\n\t// Set up a fake TCP endpoint and connection to it.\n\tl, err := net.Listen(\"tcp\", \"127.0.0.1:0\")\n\tassert.Nil(t, err)\n\tdefer l.Close()\n\ttcpConn, err := net.Dial(\"tcp\", l.Addr().String())\n\tassert.Nil(t, err)\n\treturn tcpConn\n}\n\nfunc startTestDriverStationServer(t *testing.T, arena *Arena) string {\n\tlistener, err := net.Listen(\"tcp\", \"127.0.0.1:0\")\n\tassert.Nil(t, err)\n\tt.Cleanup(func() {\n\t\tlistener.Close()\n\t})\n\n\tgo arena.serveDriverStations(listener)\n\treturn listener.Addr().String()\n}\n\nfunc waitForDriverStationConnection(t *testing.T, arena *Arena, station string) *DriverStationConnection {\n\tt.Helper()\n\n\tvar dsConn *DriverStationConnection\n\tif !assert.Eventually(t, func() bool {\n\t\tdsConn = arena.AllianceStations[station].DsConn\n\t\treturn dsConn != nil\n\t}, time.Second, 10*time.Millisecond) {\n\t\treturn nil\n\t}\n\n\treturn dsConn\n}\n"
  },
  {
    "path": "field/event_status.go",
    "content": "// Copyright 2020 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model and functions for reporting on event status.\n\npackage field\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"math\"\n\t\"time\"\n)\n\nconst maxExpectedCycleTimeSec = 900\n\ntype EventStatus struct {\n\tCycleTime                   string\n\tEarlyLateMessage            string\n\tlastMatchStartTime          time.Time\n\tlastMatchScheduledStartTime time.Time\n}\n\n// Calculates the last cycle time and publishes an update to the displays that show it.\nfunc (arena *Arena) updateCycleTime(matchStartTime time.Time) {\n\texpectedCycleTimeSec := arena.CurrentMatch.Time.Sub(arena.EventStatus.lastMatchScheduledStartTime).Seconds()\n\tif arena.EventStatus.lastMatchStartTime.IsZero() || expectedCycleTimeSec > maxExpectedCycleTimeSec ||\n\t\tarena.CurrentMatch.Type == model.Test {\n\t\t// We don't know when the previous match was started or there was a big gap that we shouldn't count.\n\t\tarena.EventStatus.CycleTime = \"\"\n\t} else {\n\t\tcycleTimeSec := int(matchStartTime.Sub(arena.EventStatus.lastMatchStartTime).Seconds())\n\t\thours := cycleTimeSec / 3600\n\t\tminutes := cycleTimeSec % 3600 / 60\n\t\tseconds := cycleTimeSec % 60\n\t\tif hours > 0 {\n\t\t\tarena.EventStatus.CycleTime = fmt.Sprintf(\"%d:%02d:%02d\", hours, minutes, seconds)\n\t\t} else {\n\t\t\tarena.EventStatus.CycleTime = fmt.Sprintf(\"%d:%02d\", minutes, seconds)\n\t\t}\n\n\t\tdeltaSec := cycleTimeSec - int(expectedCycleTimeSec)\n\t\tvar direction string\n\t\tif deltaSec > 0 {\n\t\t\tdirection = \"slower\"\n\t\t} else {\n\t\t\tdirection = \"faster\"\n\t\t\tdeltaSec = -deltaSec\n\t\t}\n\t\tarena.EventStatus.CycleTime += fmt.Sprintf(\n\t\t\t\" (%d:%02d %s than scheduled)\", deltaSec/60, deltaSec%60, direction,\n\t\t)\n\t}\n\tarena.EventStatus.lastMatchStartTime = matchStartTime\n\tarena.EventStatus.lastMatchScheduledStartTime = arena.CurrentMatch.Time\n\tarena.EventStatusNotifier.Notify()\n}\n\n// Checks how early or late the event is running and publishes an update to the displays that show it.\nfunc (arena *Arena) updateEarlyLateMessage() {\n\tnewEarlyLateMessage := arena.getEarlyLateMessage()\n\tif newEarlyLateMessage != arena.EventStatus.EarlyLateMessage {\n\t\tarena.EventStatus.EarlyLateMessage = newEarlyLateMessage\n\t\tarena.EventStatusNotifier.Notify()\n\t}\n}\n\n// Updates the string that indicates how early or late the event is running.\nfunc (arena *Arena) getEarlyLateMessage() string {\n\tcurrentMatch := arena.CurrentMatch\n\tif currentMatch.Type == model.Test {\n\t\treturn \"\"\n\t}\n\tif currentMatch.IsComplete() {\n\t\t// This is a replay or otherwise unpredictable situation.\n\t\treturn \"\"\n\t}\n\n\tvar minutesLate float64\n\tif arena.MatchState > PreMatch && arena.MatchState < PostMatch {\n\t\t// The match is in progress; simply calculate lateness from its start time.\n\t\tminutesLate = currentMatch.StartedAt.Sub(currentMatch.Time).Minutes()\n\t} else {\n\t\t// We need to check the adjacent matches to accurately determine lateness.\n\t\tmatches, _ := arena.Database.GetMatchesByType(currentMatch.Type, false)\n\n\t\tpreviousMatchIndex := -1\n\t\tnextMatchIndex := len(matches)\n\t\tfor i, match := range matches {\n\t\t\tif match.Id == currentMatch.Id {\n\t\t\t\tpreviousMatchIndex = i - 1\n\t\t\t\tnextMatchIndex = i + 1\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif arena.MatchState == PreMatch || arena.MatchState == TimeoutActive || arena.MatchState == PostTimeout {\n\t\t\tcurrentMinutesLate := time.Now().Sub(currentMatch.Time).Minutes()\n\t\t\tif previousMatchIndex >= 0 &&\n\t\t\t\tcurrentMatch.Time.Sub(matches[previousMatchIndex].Time).Minutes() <= MaxMatchGapMin {\n\t\t\t\tpreviousMatch := matches[previousMatchIndex]\n\t\t\t\tpreviousMinutesLate := previousMatch.StartedAt.Sub(previousMatch.Time).Minutes()\n\t\t\t\tminutesLate = math.Max(previousMinutesLate, currentMinutesLate)\n\t\t\t} else {\n\t\t\t\tminutesLate = math.Max(currentMinutesLate, 0)\n\t\t\t}\n\t\t} else if arena.MatchState == PostMatch {\n\t\t\tcurrentMinutesLate := currentMatch.StartedAt.Sub(currentMatch.Time).Minutes()\n\t\t\tif nextMatchIndex < len(matches) {\n\t\t\t\tnextMatch := matches[nextMatchIndex]\n\t\t\t\tnextMinutesLate := time.Now().Sub(nextMatch.Time).Minutes()\n\t\t\t\tminutesLate = math.Max(currentMinutesLate, nextMinutesLate)\n\t\t\t} else {\n\t\t\t\tminutesLate = currentMinutesLate\n\t\t\t}\n\t\t}\n\t}\n\n\tif minutesLate > earlyLateThresholdMin {\n\t\treturn fmt.Sprintf(\"Event is running %d minutes late\", int(minutesLate))\n\t} else if minutesLate < -earlyLateThresholdMin {\n\t\treturn fmt.Sprintf(\"Event is running %d minutes early\", int(-minutesLate))\n\t}\n\treturn \"Event is running on schedule\"\n}\n"
  },
  {
    "path": "field/event_status_test.go",
    "content": "// Copyright 2020 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage field\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestCycleTime(t *testing.T) {\n\tarena := setupTestArena(t)\n\tarena.CurrentMatch.Type = model.Practice\n\n\tassert.Equal(t, \"\", arena.EventStatus.CycleTime)\n\tarena.updateCycleTime(time.Time{})\n\tassert.Equal(t, \"\", arena.EventStatus.CycleTime)\n\tarena.updateCycleTime(time.Now().Add(-125 * time.Second))\n\tassert.Equal(t, \"\", arena.EventStatus.CycleTime)\n\tarena.updateCycleTime(time.Now())\n\tassert.Regexp(t, \"2:05.*\", arena.EventStatus.CycleTime)\n\tarena.updateCycleTime(time.Now().Add(3456 * time.Second))\n\tassert.Regexp(t, \"57:36.*\", arena.EventStatus.CycleTime)\n\tarena.updateCycleTime(time.Now().Add(5 * time.Hour))\n\tassert.Regexp(t, \"4:02:24.*\", arena.EventStatus.CycleTime)\n\tarena.updateCycleTime(time.Now().Add(123*time.Hour + 1256*time.Second))\n\tassert.Regexp(t, \"118:20:56.*\", arena.EventStatus.CycleTime)\n\n\t// Cycle time should be suppressed for test matches.\n\tarena.CurrentMatch.Type = model.Test\n\tarena.updateCycleTime(time.Now().Add(123*time.Hour + 1256*time.Second))\n\tassert.Regexp(t, \"\", arena.EventStatus.CycleTime)\n}\n\nfunc TestCycleTimeDelta(t *testing.T) {\n\tarena := setupTestArena(t)\n\tarena.CurrentMatch.Type = model.Practice\n\n\t// Check perfect cycle time.\n\tarena.CurrentMatch.Time = time.Unix(1000, 0)\n\tarena.updateCycleTime(time.Unix(1000, 0))\n\tassert.Equal(t, \"\", arena.EventStatus.CycleTime)\n\tarena.CurrentMatch.Time = time.Unix(1754, 0)\n\tarena.updateCycleTime(time.Unix(1754, 0))\n\tassert.Equal(t, \"12:34 (0:00 faster than scheduled)\", arena.EventStatus.CycleTime)\n\n\t// Check faster cycle time.\n\tarena.CurrentMatch.Time = time.Unix(1000, 0)\n\tarena.updateCycleTime(time.Unix(1000, 0))\n\tarena.CurrentMatch.Time = time.Unix(1500, 0)\n\tarena.updateCycleTime(time.Unix(1417, 0))\n\tassert.Equal(t, \"6:57 (1:23 faster than scheduled)\", arena.EventStatus.CycleTime)\n\n\t// Check slower cycle time.\n\tarena.CurrentMatch.Time = time.Unix(1000, 0)\n\tarena.updateCycleTime(time.Unix(1000, 0))\n\tarena.CurrentMatch.Time = time.Unix(1500, 0)\n\tarena.updateCycleTime(time.Unix(2500, 0))\n\tassert.Equal(t, \"25:00 (16:40 slower than scheduled)\", arena.EventStatus.CycleTime)\n\n\t// Check over a long gap in the schedule.\n\tarena.CurrentMatch.Time = time.Unix(1000, 0)\n\tarena.updateCycleTime(time.Unix(1000, 0))\n\tarena.CurrentMatch.Time = time.Unix(2000, 0)\n\tarena.updateCycleTime(time.Unix(2000, 0))\n\tassert.Equal(t, \"\", arena.EventStatus.CycleTime)\n}\n\nfunc TestEarlyLateMessage(t *testing.T) {\n\tarena := setupTestArena(t)\n\n\tarena.LoadTestMatch()\n\tassert.Equal(t, \"\", arena.getEarlyLateMessage())\n\n\tarena.Database.CreateMatch(&model.Match{Type: model.Qualification, TypeOrder: 1})\n\tarena.Database.CreateMatch(&model.Match{Type: model.Qualification, TypeOrder: 2})\n\tmatches, _ := arena.Database.GetMatchesByType(model.Qualification, false)\n\tassert.Equal(t, 2, len(matches))\n\n\tsetMatch(arena.Database, &matches[0], time.Now().Add(300*time.Second), time.Time{}, false)\n\tarena.CurrentMatch = &matches[0]\n\tarena.MatchState = PreMatch\n\tassert.Equal(t, \"Event is running on schedule\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[0], time.Now().Add(60*time.Second), time.Time{}, false)\n\tassert.Equal(t, \"Event is running on schedule\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[0], time.Now().Add(-60*time.Second), time.Time{}, false)\n\tassert.Equal(t, \"Event is running on schedule\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[0], time.Now().Add(-120*time.Second), time.Time{}, false)\n\tassert.Equal(t, \"Event is running on schedule\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[0], time.Now().Add(-180*time.Second), time.Time{}, false)\n\tassert.Equal(t, \"Event is running 3 minutes late\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[0], time.Now().Add(181*time.Second), time.Now(), false)\n\tarena.MatchState = AutoPeriod\n\tassert.Equal(t, \"Event is running 3 minutes early\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[0], time.Now().Add(-300*time.Second), time.Now().Add(-601*time.Second), false)\n\tsetMatch(arena.Database, &matches[1], time.Now().Add(481*time.Second), time.Time{}, false)\n\tarena.MatchState = PostMatch\n\tassert.Equal(t, \"Event is running 5 minutes early\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[1], time.Now().Add(181*time.Second), time.Time{}, false)\n\tassert.Equal(t, \"Event is running 3 minutes early\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[1], time.Now().Add(-60*time.Second), time.Time{}, false)\n\tassert.Equal(t, \"Event is running on schedule\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[1], time.Now().Add(-180*time.Second), time.Time{}, false)\n\tassert.Equal(t, \"Event is running 3 minutes late\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[0], time.Now().Add(-300*time.Second), time.Now().Add(-601*time.Second), true)\n\tassert.Equal(t, \"\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[1], time.Now().Add(901*time.Second), time.Time{}, false)\n\tarena.CurrentMatch = &matches[1]\n\tarena.MatchState = PreMatch\n\tassert.Equal(t, \"Event is running on schedule\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[1], time.Now().Add(899*time.Second), time.Time{}, false)\n\tassert.Equal(t, \"Event is running 5 minutes early\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[1], time.Now().Add(60*time.Second), time.Time{}, false)\n\tassert.Equal(t, \"Event is running on schedule\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[1], time.Now().Add(-120*time.Second), time.Time{}, false)\n\tassert.Equal(t, \"Event is running on schedule\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[1], time.Now().Add(-180*time.Second), time.Time{}, false)\n\tassert.Equal(t, \"Event is running 3 minutes late\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[1], time.Now().Add(-180*time.Second), time.Now().Add(-541*time.Second), false)\n\tarena.MatchState = TeleopPeriod\n\tassert.Equal(t, \"Event is running 6 minutes early\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[1], time.Now(), time.Now().Add(481*time.Second), false)\n\tarena.MatchState = PostMatch\n\tassert.Equal(t, \"Event is running 8 minutes late\", arena.getEarlyLateMessage())\n\n\tsetMatch(arena.Database, &matches[1], time.Now(), time.Now().Add(481*time.Second), true)\n\tassert.Equal(t, \"\", arena.getEarlyLateMessage())\n\n\t// Check other match types.\n\tarena.MatchState = PreMatch\n\tarena.CurrentMatch = &model.Match{Type: model.Practice, Time: time.Now().Add(-181 * time.Second)}\n\tassert.Equal(t, \"Event is running 3 minutes late\", arena.getEarlyLateMessage())\n\n\tarena.CurrentMatch = &model.Match{Type: model.Playoff, Time: time.Now().Add(-181 * time.Second)}\n\tassert.Equal(t, \"Event is running 3 minutes late\", arena.getEarlyLateMessage())\n}\n\nfunc setMatch(database *model.Database, match *model.Match, matchTime time.Time, startedAt time.Time, isComplete bool) {\n\tmatch.Time = matchTime\n\tmatch.StartedAt = startedAt\n\tif isComplete {\n\t\tmatch.Status = game.TieMatch\n\t} else {\n\t\tmatch.Status = game.MatchScheduled\n\t}\n\t_ = database.UpdateMatch(match)\n}\n"
  },
  {
    "path": "field/fake_plc_test.go",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Contains a fake implementation of the PLC interface for testing.\n\npackage field\n\nimport (\n\t\"github.com/Team254/cheesy-arena/websocket\"\n)\n\ntype FakePlc struct {\n\tisEnabled             bool\n\tfieldEStop            bool\n\tredEStops             [3]bool\n\tblueEStops            [3]bool\n\tredAStops             [3]bool\n\tblueAStops            [3]bool\n\tredEthernetConnected  [3]bool\n\tblueEthernetConnected [3]bool\n\tstackLights           [4]bool\n\tstackLightBuzzer      bool\n\tfieldResetLight       bool\n\tcycleState            bool\n\tredProcessorCount     int\n\tblueProcessorCount    int\n\tredTrussLights        [3]bool\n\tblueTrussLights       [3]bool\n}\n\nfunc (plc *FakePlc) SetAddress(address string) {\n}\n\nfunc (plc *FakePlc) IsEnabled() bool {\n\treturn plc.isEnabled\n}\n\nfunc (plc *FakePlc) IsHealthy() bool {\n\treturn true\n}\n\nfunc (plc *FakePlc) IoChangeNotifier() *websocket.Notifier {\n\treturn nil\n}\n\nfunc (plc *FakePlc) Run() {\n}\n\nfunc (plc *FakePlc) GetArmorBlockStatuses() map[string]bool {\n\treturn map[string]bool{}\n}\n\nfunc (plc *FakePlc) GetFieldEStop() bool {\n\treturn plc.fieldEStop\n}\n\nfunc (plc *FakePlc) GetTeamEStops() ([3]bool, [3]bool) {\n\treturn plc.redEStops, plc.blueEStops\n}\n\nfunc (plc *FakePlc) GetTeamAStops() ([3]bool, [3]bool) {\n\treturn plc.redAStops, plc.blueAStops\n}\n\nfunc (plc *FakePlc) GetEthernetConnected() ([3]bool, [3]bool) {\n\treturn plc.redEthernetConnected, plc.blueEthernetConnected\n}\n\nfunc (plc *FakePlc) ResetMatch() {\n}\n\nfunc (plc *FakePlc) SetStackLights(red, blue, orange, green bool) {\n\tplc.stackLights[0] = red\n\tplc.stackLights[1] = blue\n\tplc.stackLights[2] = orange\n\tplc.stackLights[3] = green\n}\n\nfunc (plc *FakePlc) SetStackBuzzer(state bool) {\n\tplc.stackLightBuzzer = state\n}\n\nfunc (plc *FakePlc) SetFieldResetLight(state bool) {\n\tplc.fieldResetLight = state\n}\n\nfunc (plc *FakePlc) GetCycleState(max, index, duration int) bool {\n\treturn plc.cycleState\n}\n\nfunc (plc *FakePlc) GetInputNames() []string {\n\treturn []string{}\n}\n\nfunc (plc *FakePlc) GetRegisterNames() []string {\n\treturn []string{}\n}\n\nfunc (plc *FakePlc) GetCoilNames() []string {\n\treturn []string{}\n}\n\nfunc (plc *FakePlc) GetProcessorCounts() (int, int) {\n\treturn plc.redProcessorCount, plc.blueProcessorCount\n}\n\nfunc (plc *FakePlc) SetTrussLights(redLights, blueLights [3]bool) {\n\tplc.redTrussLights = redLights\n\tplc.blueTrussLights = blueLights\n}\n"
  },
  {
    "path": "field/realtime_score.go",
    "content": "// Copyright 2017 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model representing the current state of the score during a match.\n\npackage field\n\nimport \"github.com/Team254/cheesy-arena/game\"\n\ntype RealtimeScore struct {\n\tCurrentScore   game.Score\n\tCards          map[string]string\n\tFoulsCommitted bool\n}\n\nfunc NewRealtimeScore() *RealtimeScore {\n\treturn &RealtimeScore{Cards: make(map[string]string)}\n}\n"
  },
  {
    "path": "field/scoring_panel_registry.go",
    "content": "// Copyright 2019 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model representing and methods for tracking the state of a realtime scoring panel.\n\npackage field\n\nimport (\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"sync\"\n)\n\ntype ScoringPanelRegistry struct {\n\tscoringPanels map[string]map[*websocket.Websocket]bool // The score committed state for each panel.\n\tmutex         sync.Mutex\n}\n\nfunc (registry *ScoringPanelRegistry) initialize() {\n\tregistry.scoringPanels = map[string]map[*websocket.Websocket]bool{}\n}\n\n// Resets the score committed state for each registered panel to false.\nfunc (registry *ScoringPanelRegistry) resetScoreCommitted() {\n\tregistry.mutex.Lock()\n\tdefer registry.mutex.Unlock()\n\n\tfor _, panels := range registry.scoringPanels {\n\t\tfor key := range panels {\n\t\t\tpanels[key] = false\n\t\t}\n\t}\n}\n\n// Returns the number of registered panels for the given position.\nfunc (registry *ScoringPanelRegistry) GetNumPanels(position string) int {\n\tregistry.mutex.Lock()\n\tdefer registry.mutex.Unlock()\n\n\treturn len(registry.scoringPanels[position])\n}\n\n// Returns the number of registered panels whose score is committed for the given position.\nfunc (registry *ScoringPanelRegistry) GetNumScoreCommitted(position string) int {\n\tregistry.mutex.Lock()\n\tdefer registry.mutex.Unlock()\n\n\tnumCommitted := 0\n\tfor _, panel := range registry.scoringPanels[position] {\n\t\tif panel {\n\t\t\tnumCommitted++\n\t\t}\n\t}\n\treturn numCommitted\n}\n\n// Adds a panel to the registry, referenced by its websocket pointer.\nfunc (registry *ScoringPanelRegistry) RegisterPanel(position string, ws *websocket.Websocket) {\n\tregistry.mutex.Lock()\n\tdefer registry.mutex.Unlock()\n\n\tif registry.scoringPanels[position] == nil {\n\t\tregistry.scoringPanels[position] = make(map[*websocket.Websocket]bool)\n\t}\n\tregistry.scoringPanels[position][ws] = false\n}\n\n// Sets the score committed state to true for the given panel, referenced by its websocket pointer.\nfunc (registry *ScoringPanelRegistry) SetScoreCommitted(position string, ws *websocket.Websocket) {\n\tregistry.mutex.Lock()\n\tdefer registry.mutex.Unlock()\n\n\tregistry.scoringPanels[position][ws] = true\n}\n\n// Removes a panel from the registry, referenced by its websocket pointer.\nfunc (registry *ScoringPanelRegistry) UnregisterPanel(position string, ws *websocket.Websocket) {\n\tregistry.mutex.Lock()\n\tdefer registry.mutex.Unlock()\n\n\tdelete(registry.scoringPanels[position], ws)\n}\n"
  },
  {
    "path": "field/scoring_panel_registry_test.go",
    "content": "// Copyright 2019 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage field\n\nimport (\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestScoringPanelRegistry(t *testing.T) {\n\tvar registry ScoringPanelRegistry\n\tregistry.initialize()\n\tassert.Equal(t, 0, registry.GetNumPanels(\"red\"))\n\tassert.Equal(t, 0, registry.GetNumScoreCommitted(\"red\"))\n\tassert.Equal(t, 0, registry.GetNumPanels(\"blue\"))\n\tassert.Equal(t, 0, registry.GetNumScoreCommitted(\"blue\"))\n\n\tws1 := new(websocket.Websocket)\n\tws2 := new(websocket.Websocket)\n\tws3 := new(websocket.Websocket)\n\tregistry.RegisterPanel(\"red\", ws1)\n\tregistry.RegisterPanel(\"blue\", ws2)\n\tregistry.RegisterPanel(\"red\", ws3)\n\tassert.Equal(t, 2, registry.GetNumPanels(\"red\"))\n\tassert.Equal(t, 0, registry.GetNumScoreCommitted(\"red\"))\n\tassert.Equal(t, 1, registry.GetNumPanels(\"blue\"))\n\tassert.Equal(t, 0, registry.GetNumScoreCommitted(\"blue\"))\n\n\tregistry.SetScoreCommitted(\"red\", ws3)\n\tregistry.SetScoreCommitted(\"blue\", ws2)\n\tregistry.SetScoreCommitted(\"blue\", ws2)\n\tassert.Equal(t, 2, registry.GetNumPanels(\"red\"))\n\tassert.Equal(t, 1, registry.GetNumScoreCommitted(\"red\"))\n\tassert.Equal(t, 1, registry.GetNumPanels(\"blue\"))\n\tassert.Equal(t, 1, registry.GetNumScoreCommitted(\"blue\"))\n\n\tregistry.UnregisterPanel(\"red\", ws1)\n\tregistry.UnregisterPanel(\"blue\", ws2)\n\tassert.Equal(t, 1, registry.GetNumPanels(\"red\"))\n\tassert.Equal(t, 1, registry.GetNumScoreCommitted(\"red\"))\n\tassert.Equal(t, 0, registry.GetNumPanels(\"blue\"))\n\tassert.Equal(t, 0, registry.GetNumScoreCommitted(\"blue\"))\n\n\tregistry.resetScoreCommitted()\n\tassert.Equal(t, 1, registry.GetNumPanels(\"red\"))\n\tassert.Equal(t, 0, registry.GetNumScoreCommitted(\"red\"))\n\tassert.Equal(t, 0, registry.GetNumPanels(\"blue\"))\n\tassert.Equal(t, 0, registry.GetNumScoreCommitted(\"blue\"))\n}\n"
  },
  {
    "path": "field/team_match_log.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Utilities for logging packets received from team driver stations during a match.\n\npackage field\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"time\"\n\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/network\"\n)\n\nconst logsDir = \"static/logs\"\n\ntype TeamMatchLog struct {\n\tlogger     *log.Logger\n\tlogFile    *os.File\n\twifiStatus *network.TeamWifiStatus\n}\n\n// Creates a file to log to for the given match and team.\nfunc NewTeamMatchLog(teamId int, match *model.Match, wifiStatus *network.TeamWifiStatus) (*TeamMatchLog, error) {\n\terr := os.MkdirAll(filepath.Join(model.BaseDir, logsDir), 0755)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfilename := fmt.Sprintf(\n\t\t\"%s/%s_%s_Match_%s_%d.csv\",\n\t\tfilepath.Join(model.BaseDir, logsDir),\n\t\ttime.Now().Format(\"20060102150405\"),\n\t\tmatch.Type.String(),\n\t\tmatch.ShortName,\n\t\tteamId,\n\t)\n\tlogFile, err := os.Create(filename)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlog := TeamMatchLog{log.New(logFile, \"\", 0), logFile, wifiStatus}\n\tlog.logger.Println(\n\t\t\"matchTimeSec,packetType,teamId,allianceStation,dsLinked,radioLinked,rioLinked,robotLinked,auto,enabled,\" +\n\t\t\t\"emergencyStop,autonomousStop,batteryVoltage,missedPacketCount,dsRobotTripTimeMs,rxRate,txRate,\" +\n\t\t\t\"signalNoiseRatio\",\n\t)\n\n\treturn &log, nil\n}\n\n// Adds a line to the log when a packet is received.\nfunc (log *TeamMatchLog) LogDsPacket(matchTimeSec float64, packetType int, dsConn *DriverStationConnection) {\n\tlog.logger.Printf(\n\t\t\"%f,%d,%d,%s,%v,%v,%v,%v,%v,%v,%v,%v,%f,%d,%d,%f,%f,%d\",\n\t\tmatchTimeSec,\n\t\tpacketType,\n\t\tdsConn.TeamId,\n\t\tdsConn.AllianceStation,\n\t\tdsConn.DsLinked,\n\t\tdsConn.RadioLinked,\n\t\tdsConn.RioLinked,\n\t\tdsConn.RobotLinked,\n\t\tdsConn.Auto,\n\t\tdsConn.Enabled,\n\t\tdsConn.EStop,\n\t\tdsConn.AStop,\n\t\tdsConn.BatteryVoltage,\n\t\tdsConn.MissedPacketCount,\n\t\tdsConn.DsRobotTripTimeMs,\n\t\tlog.wifiStatus.RxRate,\n\t\tlog.wifiStatus.TxRate,\n\t\tlog.wifiStatus.SignalNoiseRatio,\n\t)\n}\n\nfunc (log *TeamMatchLog) Close() {\n\tlog.logFile.Close()\n}\n"
  },
  {
    "path": "field/team_sign.go",
    "content": "// Copyright 2024 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Models and logic for controlling a Cypress team number / timer sign.\n\npackage field\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"image/color\"\n\t\"log\"\n\t\"net\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\n// Represents a collection of team number and timer signs.\ntype TeamSigns struct {\n\tRed1      TeamSign\n\tRed2      TeamSign\n\tRed3      TeamSign\n\tRedTimer  TeamSign\n\tBlue1     TeamSign\n\tBlue2     TeamSign\n\tBlue3     TeamSign\n\tBlueTimer TeamSign\n}\n\n// Represents a team number or timer sign.\ntype TeamSign struct {\n\tisTimer         bool\n\taddress         byte\n\tnextMatchTeamId int\n\tfrontText       string\n\tfrontColor      color.RGBA\n\trearText        string\n\tlastFrontText   string\n\tlastFrontColor  color.RGBA\n\tlastRearText    string\n\tudpConn         net.Conn\n\tpacketData      [128]byte\n\tpacketIndex     int\n\tlastPacketTime  time.Time\n}\n\nconst (\n\tteamSignAddressPrefix            = \"10.0.100.\"\n\tteamSignYear                     = 2025\n\tteamSignPort                     = 10011\n\tteamSignPacketMagicString        = \"CYPRX\"\n\tteamSignPacketHeaderLength       = 7\n\tteamSignCommandSetDisplay        = 0x04\n\tteamSignAddressSingle            = 0x01\n\tteamSignPacketTypeFrontText      = 0x01\n\tteamSignPacketTypeRearText       = 0x02\n\tteamSignPacketTypeFrontIntensity = 0x03\n\tteamSignPacketTypeColor          = 0x04\n\tteamSignPacketPeriodMs           = 5000\n\tteamSignBlinkPeriodMs            = 750\n)\n\n// Predefined colors for the team sign front text. The \"A\" channel is used as the intensity.\nvar redColor = color.RGBA{255, 0, 0, 255}\nvar blueColor = color.RGBA{0, 50, 255, 255}\nvar greenColor = color.RGBA{0, 255, 0, 255}\nvar orangeColor = color.RGBA{255, 50, 0, 255}\nvar purpleColor = color.RGBA{255, 0, 240, 255}\nvar whiteColor = color.RGBA{255, 200, 180, 255}\n\n// Creates a new collection of team signs.\nfunc NewTeamSigns() *TeamSigns {\n\tsigns := new(TeamSigns)\n\tsigns.RedTimer.isTimer = true\n\tsigns.BlueTimer.isTimer = true\n\treturn signs\n}\n\n// Updates the state of all signs with the latest data and sends packets to the signs if anything has changed.\nfunc (signs *TeamSigns) Update(arena *Arena) {\n\t// Generate the countdown string which is used in multiple places.\n\tmatchTimeSec := int(arena.MatchTimeSec())\n\tvar countdownSec int\n\tswitch arena.MatchState {\n\tcase PreMatch:\n\t\tif arena.AudienceDisplayMode == \"allianceSelection\" {\n\t\t\tcountdownSec = arena.AllianceSelectionTimeRemainingSec\n\t\t} else {\n\t\t\tcountdownSec = game.MatchTiming.AutoDurationSec\n\t\t}\n\tcase StartMatch:\n\t\tfallthrough\n\tcase WarmupPeriod:\n\t\tcountdownSec = game.MatchTiming.AutoDurationSec\n\tcase AutoPeriod:\n\t\tcountdownSec = game.MatchTiming.WarmupDurationSec + game.MatchTiming.AutoDurationSec - matchTimeSec\n\tcase TeleopPeriod:\n\t\tcountdownSec = game.MatchTiming.WarmupDurationSec + game.MatchTiming.AutoDurationSec +\n\t\t\tgame.MatchTiming.TeleopDurationSec + game.MatchTiming.PauseDurationSec - matchTimeSec\n\tcase TimeoutActive:\n\t\tcountdownSec = game.MatchTiming.TimeoutDurationSec - matchTimeSec\n\tdefault:\n\t\tcountdownSec = 0\n\t}\n\tcountdown := fmt.Sprintf(\"%02d:%02d\", countdownSec/60, countdownSec%60)\n\n\t// Generate the in-match rear text which is common to a whole alliance.\n\tredInMatchTeamRearText := generateInMatchTeamRearText(arena, true, countdown)\n\tredInMatchTimerRearText := generateInMatchTimerRearText(arena, true)\n\tblueInMatchTeamRearText := generateInMatchTeamRearText(arena, false, countdown)\n\tblueInMatchTimerRearText := generateInMatchTimerRearText(arena, false)\n\n\tsigns.Red1.update(arena, arena.AllianceStations[\"R1\"], true, countdown, redInMatchTeamRearText)\n\tsigns.Red2.update(arena, arena.AllianceStations[\"R2\"], true, countdown, redInMatchTeamRearText)\n\tsigns.Red3.update(arena, arena.AllianceStations[\"R3\"], true, countdown, redInMatchTeamRearText)\n\tsigns.RedTimer.update(arena, nil, true, countdown, redInMatchTimerRearText)\n\tsigns.Blue1.update(arena, arena.AllianceStations[\"B1\"], false, countdown, blueInMatchTeamRearText)\n\tsigns.Blue2.update(arena, arena.AllianceStations[\"B2\"], false, countdown, blueInMatchTeamRearText)\n\tsigns.Blue3.update(arena, arena.AllianceStations[\"B3\"], false, countdown, blueInMatchTeamRearText)\n\tsigns.BlueTimer.update(arena, nil, false, countdown, blueInMatchTimerRearText)\n}\n\n// Sets the team numbers for the next match on all signs.\nfunc (signs *TeamSigns) SetNextMatchTeams(teams [6]int) {\n\tsigns.Red1.nextMatchTeamId = teams[0]\n\tsigns.Red2.nextMatchTeamId = teams[1]\n\tsigns.Red3.nextMatchTeamId = teams[2]\n\tsigns.Blue1.nextMatchTeamId = teams[3]\n\tsigns.Blue2.nextMatchTeamId = teams[4]\n\tsigns.Blue3.nextMatchTeamId = teams[5]\n}\n\n// Sets the IP address of the sign.\nfunc (sign *TeamSign) SetId(id int) {\n\tif sign.udpConn != nil {\n\t\t_ = sign.udpConn.Close()\n\t}\n\tsign.address = byte(id)\n\tif id == 0 {\n\t\t// The sign is not configured.\n\t\treturn\n\t}\n\tipAddress := fmt.Sprintf(\"%s%d\", teamSignAddressPrefix, id)\n\n\tvar err error\n\tsign.udpConn, err = net.Dial(\"udp4\", fmt.Sprintf(\"%s:%d\", ipAddress, teamSignPort))\n\tif err != nil {\n\t\tlog.Printf(\"Failed to connect to team sign at %s: %v\", ipAddress, err)\n\t\treturn\n\t}\n\taddressParts := strings.Split(ipAddress, \".\")\n\tif len(addressParts) != 4 {\n\t\tlog.Printf(\"Failed to configure team sign: invalid IP address: %s\", ipAddress)\n\t\treturn\n\t}\n\taddress, _ := strconv.Atoi(addressParts[3])\n\tsign.address = byte(address)\n\n\t// Reset the sign's state to ensure that the next packet sent will update the sign.\n\tsign.packetIndex = 0\n\tsign.lastPacketTime = time.Time{}\n}\n\n// Updates the sign's internal state with the latest data and sends packets to the sign if anything has changed.\nfunc (sign *TeamSign) update(\n\tarena *Arena, allianceStation *AllianceStation, isRed bool, countdown, inMatchRearText string,\n) {\n\tif sign.address == 0 {\n\t\t// Don't do anything if there is no sign configured in this position.\n\t\treturn\n\t}\n\n\tif sign.isTimer {\n\t\tsign.frontText, sign.frontColor, sign.rearText = generateTimerTexts(arena, countdown, inMatchRearText)\n\t} else {\n\t\tsign.frontText, sign.frontColor, sign.rearText = sign.generateTeamNumberTexts(\n\t\t\tarena, allianceStation, isRed, countdown, inMatchRearText,\n\t\t)\n\t}\n\n\tif err := sign.sendPacket(); err != nil {\n\t\tlog.Printf(\"Failed to send team sign packet: %v\", err)\n\t}\n}\n\n// Returns the in-match rear text for the team number display that is common to the whole given alliance.\nfunc generateInMatchTeamRearText(arena *Arena, isRed bool, countdown string) string {\n\tvar realtimeScore, opponentRealtimeScore *RealtimeScore\n\tvar formatString string\n\tif isRed {\n\t\trealtimeScore = arena.RedRealtimeScore\n\t\topponentRealtimeScore = arena.BlueRealtimeScore\n\t\tformatString = \"R%03d-B%03d\"\n\t} else {\n\t\trealtimeScore = arena.BlueRealtimeScore\n\t\topponentRealtimeScore = arena.RedRealtimeScore\n\t\tformatString = \"B%03d-R%03d\"\n\t}\n\tscoreSummary := realtimeScore.CurrentScore.Summarize(&opponentRealtimeScore.CurrentScore)\n\tscoreTotal := scoreSummary.Score - scoreSummary.BargePoints\n\topponentScoreSummary := opponentRealtimeScore.CurrentScore.Summarize(&realtimeScore.CurrentScore)\n\topponentScoreTotal := opponentScoreSummary.Score - opponentScoreSummary.BargePoints\n\tallianceScores := fmt.Sprintf(formatString, scoreTotal, opponentScoreTotal)\n\n\tvar coralRankingPointProgress string\n\tif arena.CurrentMatch.Type != model.Playoff {\n\t\tcoralRankingPointProgress = fmt.Sprintf(\"%d/%d\", scoreSummary.NumCoralLevels, scoreSummary.NumCoralLevelsGoal)\n\t}\n\n\treturn fmt.Sprintf(\"%s %s %s\", countdown, allianceScores, coralRankingPointProgress)\n}\n\n// Returns the in-match rear text for the timer display for the given alliance.\nfunc generateInMatchTimerRearText(arena *Arena, isRed bool) string {\n\tvar reef *game.Reef\n\tif isRed {\n\t\treef = &arena.RedRealtimeScore.CurrentScore.Reef\n\t} else {\n\t\treef = &arena.BlueRealtimeScore.CurrentScore.Reef\n\t}\n\n\treturn fmt.Sprintf(\n\t\t\"1-%02d 2-%02d 3-%02d 4-%02d\",\n\t\treef.CountTotalCoralByLevel(game.Level1),\n\t\treef.CountTotalCoralByLevel(game.Level2),\n\t\treef.CountTotalCoralByLevel(game.Level3),\n\t\treef.CountTotalCoralByLevel(game.Level4),\n\t)\n}\n\n// Returns the front text, front color, and rear text to display on the timer display.\nfunc generateTimerTexts(arena *Arena, countdown, inMatchRearText string) (string, color.RGBA, string) {\n\tif arena.AllianceStationDisplayMode == \"blank\" {\n\t\treturn \"     \", whiteColor, \"\"\n\t}\n\tif arena.AudienceDisplayMode == \"allianceSelection\" {\n\t\tif arena.AllianceSelectionShowTimer {\n\t\t\treturn countdown, whiteColor, \"\"\n\t\t} else {\n\t\t\treturn \"     \", whiteColor, \"\"\n\t\t}\n\t}\n\n\tvar frontText string\n\tvar frontColor color.RGBA\n\trearText := inMatchRearText\n\tif arena.AllianceStationDisplayMode == \"logo\" {\n\t\tfrontText = fmt.Sprintf(\"%5d\", teamSignYear)\n\t\tfrontColor = whiteColor\n\t} else if arena.AllianceStationDisplayMode == \"timeout\" {\n\t\tfrontText = countdown\n\t\tfrontColor = whiteColor\n\t} else if arena.FieldReset && arena.MatchState != TimeoutActive {\n\t\tfrontText = \"SAFE \"\n\t\tfrontColor = greenColor\n\t} else if arena.FieldVolunteers && arena.MatchState != TimeoutActive {\n\t\tfrontText = \"count\"\n\t\tfrontColor = purpleColor\n\t} else {\n\t\tfrontText = countdown\n\t\tfrontColor = whiteColor\n\t}\n\tif arena.MatchState == TimeoutActive {\n\t\trearText = fmt.Sprintf(\"Field Break: %s\", countdown)\n\t}\n\treturn frontText, frontColor, rearText\n}\n\n// Returns the front text, front color, and rear text to display on the sign for the given alliance station.\nfunc (sign *TeamSign) generateTeamNumberTexts(\n\tarena *Arena, allianceStation *AllianceStation, isRed bool, countdown, inMatchRearText string,\n) (string, color.RGBA, string) {\n\tallianceColor := redColor\n\tif !isRed {\n\t\tallianceColor = blueColor\n\t}\n\n\tif arena.AllianceStationDisplayMode == \"blank\" {\n\t\treturn \"     \", whiteColor, \"\"\n\t}\n\n\tvar frontText string\n\tvar frontColor color.RGBA\n\tif arena.AllianceStationDisplayMode == \"logo\" {\n\t\tfrontText = fmt.Sprintf(\"%5d\", teamSignYear)\n\t\tfrontColor = allianceColor\n\t} else {\n\t\tif allianceStation.Team == nil {\n\t\t\treturn \"     \", whiteColor, fmt.Sprintf(\"%20s\", \"No Team Assigned\")\n\t\t}\n\n\t\tfrontText = fmt.Sprintf(\"%5d\", allianceStation.Team.Id)\n\n\t\tif allianceStation.EStop {\n\t\t\tfrontColor = orangeColor\n\t\t} else if allianceStation.AStop && arena.MatchState == AutoPeriod {\n\t\t\tfrontColor = blinkColor(orangeColor)\n\t\t} else if arena.FieldReset {\n\t\t\tfrontColor = greenColor\n\t\t} else if arena.FieldVolunteers {\n\t\t\tfrontColor = purpleColor\n\t\t} else if allianceStation.DsConn != nil && !allianceStation.DsConn.RobotLinked &&\n\t\t\t(arena.MatchState == AutoPeriod || arena.MatchState == PausePeriod || arena.MatchState == TeleopPeriod) {\n\t\t\t// Blink the display to indicate that the robot is not linked while the match is in progress.\n\t\t\tfrontColor = blinkColor(allianceColor)\n\t\t} else {\n\t\t\tfrontColor = allianceColor\n\t\t}\n\t}\n\n\tvar message string\n\tif allianceStation.EStop {\n\t\tmessage = \"E-STOP\"\n\t} else if allianceStation.AStop && arena.MatchState == AutoPeriod {\n\t\tmessage = \"A-STOP\"\n\t} else if arena.MatchState == PreMatch || arena.MatchState == TimeoutActive {\n\t\tif allianceStation.Bypass {\n\t\t\tmessage = \"Bypassed\"\n\t\t} else if !allianceStation.Ethernet {\n\t\t\tmessage = \"Connect PC\"\n\t\t} else if allianceStation.DsConn == nil {\n\t\t\tmessage = \"Start DS\"\n\t\t} else if allianceStation.DsConn.WrongStation != \"\" {\n\t\t\tmessage = \"Move Station\"\n\t\t} else if !allianceStation.DsConn.RadioLinked {\n\t\t\tmessage = \"No Radio\"\n\t\t} else if !allianceStation.DsConn.RioLinked {\n\t\t\tmessage = \"No Rio\"\n\t\t} else if !allianceStation.DsConn.RobotLinked {\n\t\t\tmessage = \"No Code\"\n\t\t} else {\n\t\t\tmessage = \"Ready\"\n\t\t}\n\t}\n\n\tvar rearText string\n\tif arena.MatchState == PostMatch && sign.nextMatchTeamId > 0 && sign.nextMatchTeamId != allianceStation.Team.Id {\n\t\t// Show the next match team number on the rear display before the score is committed so that queueing teams know\n\t\t// where to go.\n\t\trearText = fmt.Sprintf(\"Next Team Up: %d\", sign.nextMatchTeamId)\n\t} else if len(message) > 0 {\n\t\tteamId := 0\n\t\tif allianceStation.Team != nil {\n\t\t\tteamId = allianceStation.Team.Id\n\t\t}\n\t\trearText = fmt.Sprintf(\"%-5d %14s\", teamId, message)\n\t} else {\n\t\trearText = inMatchRearText\n\t}\n\n\treturn frontText, frontColor, rearText\n}\n\n// Sends a UDP packet to the sign if its state has changed.\nfunc (sign *TeamSign) sendPacket() error {\n\tif sign.packetIndex == 0 {\n\t\t// Write the static packet header the first time this method is invoked.\n\t\tsign.writePacketData([]byte(teamSignPacketMagicString))\n\t\tsign.writePacketData([]byte{sign.address, teamSignCommandSetDisplay})\n\t} else {\n\t\t// Reset the write index to just after the header.\n\t\tsign.packetIndex = teamSignPacketHeaderLength\n\t}\n\n\tisStale := time.Now().Sub(sign.lastPacketTime).Milliseconds() >= teamSignPacketPeriodMs\n\n\tif sign.frontText != sign.lastFrontText || isStale {\n\t\tsign.writePacketData([]byte{teamSignAddressSingle, sign.address, teamSignPacketTypeFrontText})\n\t\tsign.writePacketData([]byte(sign.frontText))\n\t\tsign.writePacketData([]byte{0, 0}) // Second byte is \"show decimal point\".\n\t\tsign.lastFrontText = sign.frontText\n\t}\n\n\tif sign.frontColor != sign.lastFrontColor || isStale {\n\t\tsign.writePacketData([]byte{teamSignAddressSingle, sign.address, teamSignPacketTypeColor})\n\t\tsign.writePacketData([]byte{sign.frontColor.R, sign.frontColor.G, sign.frontColor.B})\n\t\tsign.writePacketData([]byte{teamSignAddressSingle, sign.address, teamSignPacketTypeFrontIntensity})\n\t\tsign.writePacketData([]byte{sign.frontColor.A})\n\t\tsign.lastFrontColor = sign.frontColor\n\t}\n\n\tif sign.rearText != sign.lastRearText || isStale {\n\t\tsign.writePacketData([]byte{teamSignAddressSingle, sign.address, teamSignPacketTypeRearText})\n\t\tsign.writePacketData([]byte(sign.rearText))\n\t\tsign.writePacketData([]byte{0})\n\t\tsign.lastRearText = sign.rearText\n\t}\n\n\tif sign.packetIndex > teamSignPacketHeaderLength && sign.udpConn != nil {\n\t\tsign.lastPacketTime = time.Now()\n\t\tif _, err := sign.udpConn.Write(sign.packetData[:sign.packetIndex]); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Writes the given data to the packet buffer and advances the write index.\nfunc (sign *TeamSign) writePacketData(data []byte) {\n\tfor _, value := range data {\n\t\tsign.packetData[sign.packetIndex] = value\n\t\tsign.packetIndex++\n\t}\n}\n\n// Periodically modifies the given color to zero brightness to create a blinking effect.\nfunc blinkColor(originalColor color.RGBA) color.RGBA {\n\tif time.Now().UnixMilli()%teamSignBlinkPeriodMs < teamSignBlinkPeriodMs/2 {\n\t\treturn originalColor\n\t}\n\treturn color.RGBA{originalColor.R, originalColor.G, originalColor.B, 0}\n}\n"
  },
  {
    "path": "field/team_sign_test.go",
    "content": "// Copyright 2024 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage field\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"image/color\"\n\t\"testing\"\n)\n\nfunc TestTeamSign_GenerateInMatchRearText(t *testing.T) {\n\tarena := setupTestArena(t)\n\tarena.RedRealtimeScore.CurrentScore = *game.TestScore1()\n\tarena.BlueRealtimeScore.CurrentScore = *game.TestScore2()\n\n\tassert.Equal(t, \"01:23 R080-B162 1/4\", generateInMatchTeamRearText(arena, true, \"01:23\"))\n\tassert.Equal(t, \"01:23 B162-R080 1/4\", generateInMatchTeamRearText(arena, false, \"01:23\"))\n\tassert.Equal(t, \"1-07 2-02 3-03 4-00\", generateInMatchTimerRearText(arena, true))\n\tassert.Equal(t, \"1-15 2-03 3-05 4-03\", generateInMatchTimerRearText(arena, false))\n\tarena.BlueRealtimeScore.CurrentScore.Reef.Branches[2] = [12]bool{true, true, true, true, true, true, true, true}\n\tarena.BlueRealtimeScore.CurrentScore.ProcessorAlgae = 2\n\tassert.Equal(t, \"00:59 R080-B195 1/3\", generateInMatchTeamRearText(arena, true, \"00:59\"))\n\tassert.Equal(t, \"00:59 B195-R080 2/3\", generateInMatchTeamRearText(arena, false, \"00:59\"))\n\tassert.Equal(t, \"1-07 2-02 3-03 4-00\", generateInMatchTimerRearText(arena, true))\n\tassert.Equal(t, \"1-15 2-03 3-05 4-08\", generateInMatchTimerRearText(arena, false))\n\n\t// Check that RP progress is hidden for playoff matches.\n\tarena.CurrentMatch.Type = model.Playoff\n\tassert.Equal(t, \"00:45 R080-B195 \", generateInMatchTeamRearText(arena, true, \"00:45\"))\n\tassert.Equal(t, \"00:45 B195-R080 \", generateInMatchTeamRearText(arena, false, \"00:45\"))\n}\n\nfunc TestTeamSign_Timer(t *testing.T) {\n\tarena := setupTestArena(t)\n\tsign := TeamSign{isTimer: true}\n\n\t// Should do nothing if no address is set.\n\tsign.update(arena, nil, true, \"12:34\", \"Rear Text\")\n\tassert.Equal(t, [128]byte{}, sign.packetData)\n\n\t// Check some basics about the data but don't unit-test the whole packet.\n\tsign.SetId(56)\n\tsign.update(arena, nil, true, \"12:34\", \"Rear Text\")\n\tassert.Equal(t, \"CYPRX\", string(sign.packetData[0:5]))\n\tassert.Equal(t, 56, int(sign.packetData[5]))\n\tassert.Equal(t, 0x04, int(sign.packetData[6]))\n\tassert.Equal(t, \"12:34\", string(sign.packetData[10:15]))\n\tassert.Equal(t, []byte{0, 0}, sign.packetData[15:17])\n\tassert.Equal(t, \"Rear Text\", string(sign.packetData[30:39]))\n\tassert.Equal(t, 40, sign.packetIndex)\n\n\tassertSign := func(expectedFrontText string, expectedFrontColor color.RGBA, expectedRearText string) {\n\t\tfrontText, frontColor, rearText := generateTimerTexts(arena, \"23:45\", \"Rear Text\")\n\t\tassert.Equal(t, expectedFrontText, frontText)\n\t\tassert.Equal(t, expectedFrontColor, frontColor)\n\t\tassert.Equal(t, expectedRearText, rearText)\n\t}\n\n\t// Check field reset.\n\tarena.FieldReset = false\n\tassertSign(\"23:45\", whiteColor, \"Rear Text\")\n\tarena.FieldReset = true\n\tassertSign(\"SAFE \", greenColor, \"Rear Text\")\n\n\t// Check timeout mode.\n\tarena.FieldReset = true\n\tarena.MatchState = TimeoutActive\n\tassertSign(\"23:45\", whiteColor, \"Field Break: 23:45\")\n\n\t// Check blank mode.\n\tarena.AllianceStationDisplayMode = \"blank\"\n\tassertSign(\"     \", whiteColor, \"\")\n\n\t// Check alliance selection.\n\tarena.AllianceStationDisplayMode = \"logo\"\n\tarena.AudienceDisplayMode = \"allianceSelection\"\n\tarena.AllianceSelectionShowTimer = false\n\tassertSign(\"     \", whiteColor, \"\")\n\tarena.AllianceSelectionShowTimer = true\n\tassertSign(\"23:45\", whiteColor, \"\")\n\tarena.AllianceStationDisplayMode = \"blank\"\n\tassertSign(\"     \", whiteColor, \"\")\n}\n\nfunc TestTeamSign_TeamNumber(t *testing.T) {\n\tarena := setupTestArena(t)\n\tallianceStation := arena.AllianceStations[\"R1\"]\n\tarena.Database.CreateTeam(&model.Team{Id: 254})\n\tsign := &TeamSign{isTimer: false}\n\n\t// Should do nothing if no address is set.\n\tsign.update(arena, allianceStation, true, \"12:34\", \"Rear Text\")\n\tassert.Equal(t, [128]byte{}, sign.packetData)\n\n\t// Check some basics about the data but don't unit-test the whole packet.\n\tsign.SetId(53)\n\tsign.update(arena, allianceStation, true, \"12:34\", \"Rear Text\")\n\tassert.Equal(t, \"CYPRX\", string(sign.packetData[0:5]))\n\tassert.Equal(t, 53, int(sign.packetData[5]))\n\tassert.Equal(t, 0x04, int(sign.packetData[6]))\n\tassert.Equal(t, []byte{0x01, 53, 0x01}, sign.packetData[7:10])\n\tassert.Equal(t, \"     \", string(sign.packetData[10:15]))\n\tassert.Equal(t, []byte{0, 0}, sign.packetData[15:17])\n\tassert.Equal(t, \"No Team Assigned\", string(sign.packetData[34:50]))\n\tassert.Equal(t, 51, sign.packetIndex)\n\n\tassertSign := func(isRed bool, expectedFrontText string, expectedFrontColor color.RGBA, expectedRearText string) {\n\t\tfrontText, frontColor, rearText := sign.generateTeamNumberTexts(\n\t\t\tarena, allianceStation, isRed, \"12:34\", \"Rear Text\",\n\t\t)\n\t\tassert.Equal(t, expectedFrontText, frontText)\n\t\tassert.Equal(t, expectedRearText, rearText)\n\n\t\t// Modify front color to account for time-based blinking.\n\t\tfrontColor.A = 255\n\t\tassert.Equal(t, expectedFrontColor, frontColor)\n\t}\n\n\tassertSign(true, \"     \", whiteColor, \"    No Team Assigned\")\n\tarena.FieldReset = true\n\tarena.assignTeam(254, \"R1\")\n\tassertSign(true, \"  254\", greenColor, \"254       Connect PC\")\n\tassertSign(false, \"  254\", greenColor, \"254       Connect PC\")\n\tarena.FieldReset = false\n\tassertSign(true, \"  254\", redColor, \"254       Connect PC\")\n\tassertSign(false, \"  254\", blueColor, \"254       Connect PC\")\n\n\t// Check through pre-match sequence.\n\tallianceStation.Ethernet = true\n\tassertSign(true, \"  254\", redColor, \"254         Start DS\")\n\tallianceStation.DsConn = &DriverStationConnection{}\n\tassertSign(true, \"  254\", redColor, \"254         No Radio\")\n\tallianceStation.DsConn.WrongStation = \"R1\"\n\tassertSign(true, \"  254\", redColor, \"254     Move Station\")\n\tallianceStation.DsConn.WrongStation = \"\"\n\tallianceStation.DsConn.RadioLinked = true\n\tassertSign(true, \"  254\", redColor, \"254           No Rio\")\n\tallianceStation.DsConn.RioLinked = true\n\tassertSign(true, \"  254\", redColor, \"254          No Code\")\n\tallianceStation.DsConn.RobotLinked = true\n\tassertSign(true, \"  254\", redColor, \"254            Ready\")\n\tallianceStation.Bypass = true\n\tassertSign(true, \"  254\", redColor, \"254         Bypassed\")\n\n\t// Check that timeout mode has no effect on the team sign.\n\tarena.MatchState = TimeoutActive\n\tassertSign(true, \"  254\", redColor, \"254         Bypassed\")\n\n\t// Check E-stop and A-stop.\n\tarena.MatchState = AutoPeriod\n\tassertSign(true, \"  254\", redColor, \"Rear Text\")\n\tallianceStation.AStop = true\n\tassertSign(true, \"  254\", orangeColor, \"254           A-STOP\")\n\tallianceStation.EStop = true\n\tassertSign(false, \"  254\", orangeColor, \"254           E-STOP\")\n\tallianceStation.EStop = false\n\tarena.MatchState = TeleopPeriod\n\tassertSign(false, \"  254\", blueColor, \"Rear Text\")\n\tallianceStation.EStop = true\n\tassertSign(false, \"  254\", orangeColor, \"254           E-STOP\")\n\tarena.MatchState = PostMatch\n\tassertSign(false, \"  254\", orangeColor, \"254           E-STOP\")\n\n\t// Test preloading the team for the next match.\n\tsign.nextMatchTeamId = 1503\n\tassertSign(false, \"  254\", orangeColor, \"Next Team Up: 1503\")\n\tallianceStation.Bypass = false\n\tallianceStation.EStop = false\n\tallianceStation.Ethernet = false\n\tarena.MatchState = PreMatch\n\tarena.assignTeam(1503, \"R1\")\n\tassertSign(false, \" 1503\", blueColor, \"1503      Connect PC\")\n\n\t// Check blank mode.\n\tarena.AllianceStationDisplayMode = \"blank\"\n\tassertSign(true, \"     \", whiteColor, \"\")\n\n\t// Check alliance selection.\n\tarena.AllianceStationDisplayMode = \"logo\"\n\tarena.AudienceDisplayMode = \"allianceSelection\"\n\tarena.AllianceSelectionShowTimer = false\n\tassertSign(true, \" 2025\", redColor, \"1503      Connect PC\")\n\tarena.AllianceSelectionShowTimer = true\n\tassertSign(false, \" 2025\", blueColor, \"1503      Connect PC\")\n\tarena.AllianceStationDisplayMode = \"blank\"\n\tassertSign(false, \"     \", whiteColor, \"\")\n}\n"
  },
  {
    "path": "field/test_helpers.go",
    "content": "// Copyright 2017 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Helper methods for use in tests in this package and others.\n\npackage field\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"math/rand\"\n\t\"path/filepath\"\n\t\"testing\"\n)\n\nfunc SetupTestArena(t *testing.T) *Arena {\n\trand.Seed(0)\n\tmodel.BaseDir = \"..\"\n\tdbDir := t.TempDir()\n\tdbPath := filepath.Join(dbDir, \"test.db\")\n\tarena, err := NewArena(dbPath)\n\tassert.Nil(t, err)\n\tt.Cleanup(\n\t\tfunc() {\n\t\t\tarena.Database.Close()\n\t\t},\n\t)\n\treturn arena\n}\n\nfunc setupTestArena(t *testing.T) *Arena {\n\tgame.MatchTiming.WarmupDurationSec = 3\n\tgame.MatchTiming.PauseDurationSec = 2\n\treturn SetupTestArena(t)\n}\n"
  },
  {
    "path": "fix_avatar_colors_for_overlay",
    "content": "# This script replaces a single color in the team avatars with a second one, to fix conflicts with chroma/luma key.\n# By default, it replaces black with dark gray; edit the two variables below to change this.\n# Run it after the team list import, during which the avatars are downloaded.\n\nCOLOR_TO_REPLACE=\"#000\"\nREPLACEMENT_COLOR=\"#222\"\n\necho \"This script will replace color $COLOR_TO_REPLACE with $REPLACEMENT_COLOR in the following files:\"\necho\ncd ./static/img/avatars\nls *.png\necho\necho \"Press enter to continue or CTRL-C to cancel.\"\nread\n\nfor f in *.png\ndo\n  convert $f -fill $REPLACEMENT_COLOR -fuzz 50% -opaque $COLOR_TO_REPLACE $f\ndone\n"
  },
  {
    "path": "font/helvetica.json",
    "content": "{\"Tp\":\"Core\",\"Name\":\"Helvetica\",\"Up\":-100,\"Ut\":50,\"Cw\":[278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,350,556,350,222,556,333,1000,556,556,333,1000,667,333,1000,350,611,350,350,222,222,333,333,350,556,1000,333,1000,500,333,944,350,500,667,278,333,556,556,556,556,260,556,333,737,370,556,584,333,737,333,400,584,333,333,333,556,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,584,611,556,556,556,556,500,556,500]}"
  },
  {
    "path": "font/helveticab.json",
    "content": "{\"Tp\":\"Core\",\"Name\":\"Helvetica-Bold\",\"Up\":-100,\"Ut\":50,\"Cw\":[278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,350,556,350,278,556,500,1000,556,556,333,1000,667,333,1000,350,611,350,350,278,278,500,500,350,556,1000,333,1000,556,333,944,350,500,667,278,333,556,556,556,556,280,556,333,737,370,556,584,333,737,333,400,584,333,333,333,611,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,584,611,611,611,611,611,556,611,556]}"
  },
  {
    "path": "font/helveticabi.json",
    "content": "{\"Tp\":\"Core\",\"Name\":\"Helvetica-BoldOblique\",\"Up\":-100,\"Ut\":50,\"Cw\":[278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,350,556,350,278,556,500,1000,556,556,333,1000,667,333,1000,350,611,350,350,278,278,500,500,350,556,1000,333,1000,556,333,944,350,500,667,278,333,556,556,556,556,280,556,333,737,370,556,584,333,737,333,400,584,333,333,333,611,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,584,611,611,611,611,611,556,611,556]}"
  },
  {
    "path": "font/helveticai.json",
    "content": "{\"Tp\":\"Core\",\"Name\":\"Helvetica-Oblique\",\"Up\":-100,\"Ut\":50,\"Cw\":[278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,350,556,350,222,556,333,1000,556,556,333,1000,667,333,1000,350,611,350,350,222,222,333,333,350,556,1000,333,1000,500,333,944,350,500,667,278,333,556,556,556,556,260,556,333,737,370,556,584,333,737,333,400,584,333,333,333,556,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,584,611,556,556,556,556,500,556,500]}"
  },
  {
    "path": "game/foul.go",
    "content": "// Copyright 2017 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model of a foul.\n\npackage game\n\ntype Foul struct {\n\tFoulId  int\n\tIsMajor bool\n\tTeamId  int\n\tRuleId  int\n}\n\n// Returns the rule for which the foul was assigned.\nfunc (foul *Foul) Rule() *Rule {\n\treturn GetRuleById(foul.RuleId)\n}\n\n// Returns the number of points that the foul adds to the opposing alliance's score.\nfunc (foul *Foul) PointValue() int {\n\tif foul.IsMajor {\n\t\treturn 6\n\t} else {\n\t\tif foul.Rule() != nil && foul.Rule().RuleNumber == \"G206\" {\n\t\t\t// Special case in 2025 for G206, which is not actually a foul but does make the alliance ineligible for\n\t\t\t// some bonus RPs.\n\t\t\treturn 0\n\t\t}\n\t\treturn 2\n\t}\n}\n"
  },
  {
    "path": "game/match_sounds.go",
    "content": "// Copyright 2019 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Game-specific audience sound timings.\n\npackage game\n\ntype MatchSound struct {\n\tName          string\n\tFileExtension string\n\tMatchTimeSec  float64\n}\n\n// List of sounds and how many seconds into the match they are played. A negative time indicates that the sound can only\n// be triggered explicitly.\nvar MatchSounds []*MatchSound\n\nfunc UpdateMatchSounds() {\n\tMatchSounds = []*MatchSound{\n\t\t{\n\t\t\t\"start\",\n\t\t\t\"wav\",\n\t\t\t0,\n\t\t},\n\t\t{\n\t\t\t\"end\",\n\t\t\t\"wav\",\n\t\t\tfloat64(MatchTiming.AutoDurationSec),\n\t\t},\n\t\t{\n\t\t\t\"resume\",\n\t\t\t\"wav\",\n\t\t\tfloat64(MatchTiming.AutoDurationSec + MatchTiming.PauseDurationSec),\n\t\t},\n\t\t{\n\t\t\t\"warning_sonar\",\n\t\t\t\"wav\",\n\t\t\tfloat64(\n\t\t\t\tMatchTiming.AutoDurationSec + MatchTiming.PauseDurationSec + MatchTiming.TeleopDurationSec -\n\t\t\t\t\tMatchTiming.WarningRemainingDurationSec,\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\t\"end\",\n\t\t\t\"wav\",\n\t\t\tfloat64(MatchTiming.AutoDurationSec + MatchTiming.PauseDurationSec + MatchTiming.TeleopDurationSec),\n\t\t},\n\t\t{\n\t\t\t\"abort\",\n\t\t\t\"wav\",\n\t\t\t-1,\n\t\t},\n\t\t{\n\t\t\t\"match_result\",\n\t\t\t\"wav\",\n\t\t\t-1,\n\t\t},\n\t\t{\n\t\t\t\"pick_clock\",\n\t\t\t\"wav\",\n\t\t\t-1,\n\t\t},\n\t\t{\n\t\t\t\"pick_clock_expired\",\n\t\t\t\"wav\",\n\t\t\t-1,\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "game/match_timing.go",
    "content": "// Copyright 2017 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Game-specific period timing.\n\npackage game\n\nimport \"time\"\n\nconst (\n\tTeleopGracePeriodSec = 3\n)\n\nvar MatchTiming = struct {\n\tWarmupDurationSec           int\n\tAutoDurationSec             int\n\tPauseDurationSec            int\n\tTeleopDurationSec           int\n\tWarningRemainingDurationSec int\n\tTimeoutDurationSec          int\n}{0, 15, 3, 135, 20, 0}\n\nfunc GetDurationToAutoEnd() time.Duration {\n\treturn time.Duration(MatchTiming.WarmupDurationSec+MatchTiming.AutoDurationSec) * time.Second\n}\n\nfunc GetDurationToTeleopStart() time.Duration {\n\treturn time.Duration(\n\t\tMatchTiming.WarmupDurationSec+MatchTiming.AutoDurationSec+MatchTiming.PauseDurationSec,\n\t) * time.Second\n}\n\nfunc GetDurationToTeleopEnd() time.Duration {\n\treturn time.Duration(\n\t\tMatchTiming.WarmupDurationSec+MatchTiming.AutoDurationSec+MatchTiming.PauseDurationSec+\n\t\t\tMatchTiming.TeleopDurationSec,\n\t) * time.Second\n}\n"
  },
  {
    "path": "game/ranking_fields.go",
    "content": "// Copyright 2017 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Game-specific fields by which teams are ranked and the logic for sorting rankings.\n\npackage game\n\nimport \"math/rand\"\n\ntype RankingFields struct {\n\tRankingPoints      int\n\tCoopertitionPoints int\n\tMatchPoints        int\n\tAutoPoints         int\n\tBargePoints        int\n\tRandom             float64\n\tWins               int\n\tLosses             int\n\tTies               int\n\tDisqualifications  int\n\tPlayed             int\n}\n\ntype Ranking struct {\n\tTeamId       int `db:\"id,manual\"`\n\tRank         int\n\tPreviousRank int\n\tRankingFields\n}\n\ntype Rankings []Ranking\n\nfunc (fields *RankingFields) AddScoreSummary(ownScore *ScoreSummary, opponentScore *ScoreSummary, disqualified bool) {\n\tfields.Played += 1\n\n\t// Store a random value to be used as the last tiebreaker if necessary.\n\tfields.Random = rand.Float64()\n\n\tif disqualified {\n\t\t// Don't award any points.\n\t\tfields.Disqualifications += 1\n\t\treturn\n\t}\n\n\t// Assign ranking points and wins/losses/ties.\n\tif ownScore.Score > opponentScore.Score {\n\t\tfields.RankingPoints += 3\n\t\tfields.Wins += 1\n\t} else if ownScore.Score == opponentScore.Score {\n\t\tfields.RankingPoints += 1\n\t\tfields.Ties += 1\n\t} else {\n\t\tfields.Losses += 1\n\t}\n\tfields.RankingPoints += ownScore.BonusRankingPoints\n\n\t// Assign tiebreaker points.\n\tif ownScore.CoopertitionBonus {\n\t\tfields.CoopertitionPoints++\n\t}\n\tfields.MatchPoints += ownScore.MatchPoints\n\tfields.AutoPoints += ownScore.AutoPoints\n\tfields.BargePoints += ownScore.BargePoints\n}\n\n// Helper function to implement the required interface for Sort.\nfunc (rankings Rankings) Len() int {\n\treturn len(rankings)\n}\n\n// Helper function to implement the required interface for Sort.\nfunc (rankings Rankings) Less(i, j int) bool {\n\ta := rankings[i]\n\tb := rankings[j]\n\n\t// Use cross-multiplication to keep it in integer math.\n\tif a.RankingPoints*b.Played == b.RankingPoints*a.Played {\n\t\tif a.CoopertitionPoints*b.Played == b.CoopertitionPoints*a.Played {\n\t\t\tif a.MatchPoints*b.Played == b.MatchPoints*a.Played {\n\t\t\t\tif a.AutoPoints*b.Played == b.AutoPoints*a.Played {\n\t\t\t\t\tif a.BargePoints*b.Played == b.BargePoints*a.Played {\n\t\t\t\t\t\treturn a.Random > b.Random\n\t\t\t\t\t}\n\t\t\t\t\treturn a.BargePoints*b.Played > b.BargePoints*a.Played\n\t\t\t\t}\n\t\t\t\treturn a.AutoPoints*b.Played > b.AutoPoints*a.Played\n\t\t\t}\n\t\t\treturn a.MatchPoints*b.Played > b.MatchPoints*a.Played\n\t\t}\n\t\treturn a.CoopertitionPoints*b.Played > b.CoopertitionPoints*a.Played\n\t}\n\treturn a.RankingPoints*b.Played > b.RankingPoints*a.Played\n}\n\n// Helper function to implement the required interface for Sort.\nfunc (rankings Rankings) Swap(i, j int) {\n\trankings[i], rankings[j] = rankings[j], rankings[i]\n}\n"
  },
  {
    "path": "game/ranking_fields_test.go",
    "content": "// Copyright 2017 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage game\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"math/rand\"\n\t\"sort\"\n\t\"testing\"\n)\n\nfunc TestAddScoreSummary(t *testing.T) {\n\trand.Seed(0)\n\tredSummary := &ScoreSummary{\n\t\tLeavePoints:            4,\n\t\tAutoPoints:             30,\n\t\tBargePoints:            19,\n\t\tMatchPoints:            67,\n\t\tScore:                  67,\n\t\tCoopertitionBonus:      false,\n\t\tAutoBonusRankingPoint:  true,\n\t\tCoralBonusRankingPoint: false,\n\t\tBargeBonusRankingPoint: true,\n\t\tBonusRankingPoints:     2,\n\t}\n\tblueSummary := &ScoreSummary{\n\t\tLeavePoints:            2,\n\t\tAutoPoints:             16,\n\t\tBargePoints:            14,\n\t\tMatchPoints:            61,\n\t\tScore:                  81,\n\t\tCoopertitionBonus:      true,\n\t\tAutoBonusRankingPoint:  false,\n\t\tCoralBonusRankingPoint: true,\n\t\tBargeBonusRankingPoint: false,\n\t\tBonusRankingPoints:     1,\n\t}\n\trankingFields := RankingFields{}\n\n\t// Add a loss.\n\trankingFields.AddScoreSummary(redSummary, blueSummary, false)\n\tassert.Equal(t, RankingFields{2, 0, 67, 30, 19, 0.9451961492941164, 0, 1, 0, 0, 1}, rankingFields)\n\n\t// Add a win.\n\trankingFields.AddScoreSummary(blueSummary, redSummary, false)\n\tassert.Equal(t, RankingFields{6, 1, 128, 46, 33, 0.24496508529377975, 1, 1, 0, 0, 2}, rankingFields)\n\n\t// Add a tie.\n\trankingFields.AddScoreSummary(redSummary, redSummary, false)\n\tassert.Equal(t, RankingFields{9, 1, 195, 76, 52, 0.6559562651954052, 1, 1, 1, 0, 3}, rankingFields)\n\n\t// Add a disqualification.\n\trankingFields.AddScoreSummary(blueSummary, redSummary, true)\n\tassert.Equal(t, RankingFields{9, 1, 195, 76, 52, 0.05434383959970039, 1, 1, 1, 1, 4}, rankingFields)\n}\n\nfunc TestSortRankings(t *testing.T) {\n\t// Check tiebreakers.\n\trankings := make(Rankings, 12)\n\trankings[0] = Ranking{1, 0, 0, RankingFields{50, 50, 50, 50, 50, 0.49, 3, 2, 1, 0, 10}}\n\trankings[1] = Ranking{2, 0, 0, RankingFields{50, 50, 50, 50, 50, 0.51, 3, 2, 1, 0, 10}}\n\trankings[2] = Ranking{3, 0, 0, RankingFields{50, 50, 50, 50, 49, 0.50, 3, 2, 1, 0, 10}}\n\trankings[3] = Ranking{4, 0, 0, RankingFields{50, 50, 50, 50, 51, 0.50, 3, 2, 1, 0, 10}}\n\trankings[4] = Ranking{5, 0, 0, RankingFields{50, 50, 50, 49, 50, 0.50, 3, 2, 1, 0, 10}}\n\trankings[5] = Ranking{6, 0, 0, RankingFields{50, 50, 50, 51, 50, 0.50, 3, 2, 1, 0, 10}}\n\trankings[6] = Ranking{7, 0, 0, RankingFields{50, 50, 49, 50, 50, 0.50, 3, 2, 1, 0, 10}}\n\trankings[7] = Ranking{8, 0, 0, RankingFields{50, 50, 51, 50, 50, 0.50, 3, 2, 1, 0, 10}}\n\trankings[8] = Ranking{9, 0, 0, RankingFields{50, 49, 50, 50, 50, 0.50, 3, 2, 1, 0, 10}}\n\trankings[9] = Ranking{10, 0, 0, RankingFields{50, 51, 50, 50, 50, 0.50, 3, 2, 1, 0, 10}}\n\trankings[10] = Ranking{11, 0, 0, RankingFields{49, 50, 50, 50, 50, 0.50, 3, 2, 1, 0, 10}}\n\trankings[11] = Ranking{12, 0, 0, RankingFields{51, 50, 50, 50, 50, 0.50, 3, 2, 1, 0, 10}}\n\tsort.Sort(rankings)\n\tassert.Equal(t, 12, rankings[0].TeamId)\n\tassert.Equal(t, 10, rankings[1].TeamId)\n\tassert.Equal(t, 8, rankings[2].TeamId)\n\tassert.Equal(t, 6, rankings[3].TeamId)\n\tassert.Equal(t, 4, rankings[4].TeamId)\n\tassert.Equal(t, 2, rankings[5].TeamId)\n\tassert.Equal(t, 1, rankings[6].TeamId)\n\tassert.Equal(t, 3, rankings[7].TeamId)\n\tassert.Equal(t, 5, rankings[8].TeamId)\n\tassert.Equal(t, 7, rankings[9].TeamId)\n\tassert.Equal(t, 9, rankings[10].TeamId)\n\tassert.Equal(t, 11, rankings[11].TeamId)\n\n\t// Check with unequal number of matches played.\n\trankings = make(Rankings, 3)\n\trankings[0] = Ranking{1, 0, 0, RankingFields{10, 25, 25, 25, 25, 0.49, 3, 2, 1, 0, 5}}\n\trankings[1] = Ranking{2, 0, 0, RankingFields{19, 50, 50, 50, 50, 0.51, 3, 2, 1, 0, 9}}\n\trankings[2] = Ranking{3, 0, 0, RankingFields{20, 50, 50, 50, 50, 0.51, 3, 2, 1, 0, 10}}\n\tsort.Sort(rankings)\n\tassert.Equal(t, 2, rankings[0].TeamId)\n\tassert.Equal(t, 3, rankings[1].TeamId)\n\tassert.Equal(t, 1, rankings[2].TeamId)\n}\n"
  },
  {
    "path": "game/reef.go",
    "content": "// Copyright 2025 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Scoring logic for the 2025 Reef element.\n\npackage game\n\ntype Reef struct {\n\tAutoBranches   [3][12]bool\n\tBranches       [3][12]bool\n\tAutoTroughNear int\n\tAutoTroughFar  int\n\tTroughNear     int\n\tTroughFar      int\n}\n\ntype Level int\n\nconst (\n\tLevel1 Level = iota - 1\n\tLevel2\n\tLevel3\n\tLevel4\n\tLevelCount\n)\n\nvar autoPoints = map[Level]int{\n\tLevel1: 3,\n\tLevel2: 4,\n\tLevel3: 6,\n\tLevel4: 7,\n}\n\nvar teleopPoints = map[Level]int{\n\tLevel1: 2,\n\tLevel2: 3,\n\tLevel3: 4,\n\tLevel4: 5,\n}\n\n// CountTotalCoralByLevel calculates the total number of Coral scored at a specific level across both auto and teleop.\nfunc (reef *Reef) CountTotalCoralByLevel(level Level) int {\n\treturn reef.CountCoralByLevelAndPeriod(level, true) + reef.CountCoralByLevelAndPeriod(level, false)\n}\n\n// AutoCoralCount calculates the total number of Coral scored during the autonomous period across all levels.\nfunc (reef *Reef) AutoCoralCount() int {\n\tcoral := 0\n\tfor level := Level1; level < LevelCount; level++ {\n\t\tcoral += reef.CountCoralByLevelAndPeriod(level, true)\n\t}\n\treturn coral\n}\n\n// AutoCoralPoints calculates the total points scored during the autonomous period based on the Coral scored at each\n// level.\nfunc (reef *Reef) AutoCoralPoints() int {\n\tpoints := 0\n\tfor level := Level1; level < LevelCount; level++ {\n\t\tpoints += reef.CountCoralByLevelAndPeriod(level, true) * autoPoints[level]\n\t}\n\treturn points\n}\n\n// TeleopCoralCount calculates the total number of Coral scored during the teleoperated period across all levels.\nfunc (reef *Reef) TeleopCoralCount() int {\n\tcoral := 0\n\tfor level := Level1; level < LevelCount; level++ {\n\t\tcoral += reef.CountCoralByLevelAndPeriod(level, false)\n\t}\n\treturn coral\n}\n\n// TeleopCoralPoints calculates the total points scored during the teleoperated period based on the Coral scored at each\n// level.\nfunc (reef *Reef) TeleopCoralPoints() int {\n\tpoints := 0\n\tfor level := Level1; level < LevelCount; level++ {\n\t\tpoints += reef.CountCoralByLevelAndPeriod(level, false) * teleopPoints[level]\n\t}\n\treturn points\n}\n\n// CountCoralByLevelAndPeriod calculates the number of Coral scored at a specific level and period (auto or teleop).\nfunc (reef *Reef) CountCoralByLevelAndPeriod(level Level, isAuto bool) int {\n\tif level < Level1 || level >= LevelCount {\n\t\treturn 0\n\t}\n\n\tif level == Level1 {\n\t\ttroughTotal := reef.TroughNear + reef.TroughFar\n\t\tautoTroughTotal := reef.AutoTroughNear + reef.AutoTroughFar\n\n\t\t// Coral must stay scored in teleop to count for auto points, but L1 Coral is not tracked by specific location;\n\t\t// it's assumed that lowest-scoring Coral is removed first and highest-scoring Coral re-added first.\n\t\tautoCoral := min(autoTroughTotal, troughTotal)\n\t\tif isAuto {\n\t\t\treturn autoCoral\n\t\t}\n\t\treturn troughTotal - autoCoral\n\t}\n\n\tcoral := 0\n\tfor i, branch := range reef.Branches[level] {\n\t\t// Coral must stay scored in teleop to count for auto points. Coral initially scored in auto, de-scored in\n\t\t// teleop, then re-scored in the same location does count for auto points.\n\t\tif branch && isAuto == reef.AutoBranches[level][i] {\n\t\t\tcoral++\n\t\t}\n\t}\n\treturn coral\n}\n\n// isAutoBonusCoralThresholdMet returns true if the alliance has scored enough Coral in auto to meet that half of the\n// bonus RP criteria.\nfunc (reef *Reef) isAutoBonusCoralThresholdMet() bool {\n\t// Unlike for auto points, de-scoring a Coral in teleop does not invalidate the auto bonus.\n\tautoCoral := reef.AutoTroughNear + reef.AutoTroughFar\n\tfor _, level := range reef.AutoBranches {\n\t\tfor _, branch := range level {\n\t\t\tif branch {\n\t\t\t\tautoCoral++\n\t\t\t}\n\t\t}\n\t}\n\treturn autoCoral >= AutoBonusCoralThreshold\n}\n\n// countCoralBonusSatisfiedLevels counts the number of levels that have enough Coral scored on them to satisfy the Coral\n// bonus RP.\nfunc (reef *Reef) countCoralBonusSatisfiedLevels() int {\n\tsatisfiedLevels := 0\n\tfor level := Level1; level < LevelCount; level++ {\n\t\tautoCoral := reef.CountCoralByLevelAndPeriod(level, true)\n\t\tteleopCoral := reef.CountCoralByLevelAndPeriod(level, false)\n\t\tif autoCoral+teleopCoral >= CoralBonusPerLevelThreshold {\n\t\t\tsatisfiedLevels++\n\t\t}\n\t}\n\treturn satisfiedLevels\n}\n"
  },
  {
    "path": "game/reef_test.go",
    "content": "// Copyright 2025 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage game\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"strconv\"\n\t\"testing\"\n)\n\nfunc TestReefCoralCountsAndPoints(t *testing.T) {\n\ttestCases := []struct {\n\t\treef                      Reef\n\t\texpectedTotalCountByLevel [4]int\n\t\texpectedAutoCount         int\n\t\texpectedAutoPoints        int\n\t\texpectedTeleopCount       int\n\t\texpectedTeleopPoints      int\n\t}{\n\t\t// 0. Empty Reef.\n\t\t{\n\t\t\tReef{}, [4]int{0, 0, 0, 0}, 0, 0, 0, 0,\n\t\t},\n\n\t\t// 1. Only auto branches which have all been de-scored.\n\t\t{\n\t\t\tReef{\n\t\t\t\tAutoBranches: [3][12]bool{\n\t\t\t\t\t{true, false, false, true, false, false, true, false, false, true, false, false},\n\t\t\t\t\t{false, true, false, false, true, false, false, true, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, true, false, false, false, false, false, true},\n\t\t\t\t},\n\t\t\t\tBranches: [3][12]bool{\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t},\n\t\t\t\tAutoTroughNear: 1,\n\t\t\t\tAutoTroughFar:  2,\n\t\t\t\tTroughNear:     0,\n\t\t\t\tTroughFar:      0,\n\t\t\t},\n\t\t\t[4]int{0, 0, 0, 0},\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t},\n\n\t\t// 2. Only auto branches.\n\t\t{\n\t\t\tReef{\n\t\t\t\tAutoBranches: [3][12]bool{\n\t\t\t\t\t{true, false, false, true, false, false, true, false, false, true, false, false},\n\t\t\t\t\t{false, true, false, false, true, false, false, true, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, true, false, false, false, false, false, true},\n\t\t\t\t},\n\t\t\t\tBranches: [3][12]bool{\n\t\t\t\t\t{true, false, false, true, false, false, true, false, false, true, false, false},\n\t\t\t\t\t{false, true, false, false, true, false, false, true, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, true, false, false, false, false, false, true},\n\t\t\t\t},\n\t\t\t\tAutoTroughNear: 1,\n\t\t\t\tAutoTroughFar:  2,\n\t\t\t\tTroughNear:     2,\n\t\t\t\tTroughFar:      1,\n\t\t\t},\n\t\t\t[4]int{3, 4, 3, 2},\n\t\t\t12,\n\t\t\t57,\n\t\t\t0,\n\t\t\t0,\n\t\t},\n\n\t\t// 3. Only teleop branches.\n\t\t{\n\t\t\tReef{\n\t\t\t\tAutoBranches: [3][12]bool{\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t},\n\t\t\t\tBranches: [3][12]bool{\n\t\t\t\t\t{true, false, false, true, false, false, true, false, false, true, false, false},\n\t\t\t\t\t{false, true, false, false, true, false, false, true, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, true, false, false, false, false, false, true},\n\t\t\t\t},\n\t\t\t\tAutoTroughNear: 0,\n\t\t\t\tAutoTroughFar:  0,\n\t\t\t\tTroughNear:     2,\n\t\t\t\tTroughFar:      1,\n\t\t\t},\n\t\t\t[4]int{3, 4, 3, 2},\n\t\t\t0,\n\t\t\t0,\n\t\t\t12,\n\t\t\t40,\n\t\t},\n\n\t\t// 4. Full Reef with some auto scoring.\n\t\t{\n\t\t\tReef{\n\t\t\t\tAutoBranches: [3][12]bool{\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{true, true, false, true, true, true, false, true, false, false, false, false},\n\t\t\t\t},\n\t\t\t\tBranches: [3][12]bool{\n\t\t\t\t\t{true, true, true, true, true, true, true, true, true, true, true, true},\n\t\t\t\t\t{true, true, true, true, true, true, true, true, true, true, true, true},\n\t\t\t\t\t{true, true, true, true, true, true, true, true, true, true, true, true},\n\t\t\t\t},\n\t\t\t\tAutoTroughNear: 1,\n\t\t\t\tAutoTroughFar:  0,\n\t\t\t\tTroughNear:     12,\n\t\t\t\tTroughFar:      12,\n\t\t\t},\n\t\t\t[4]int{24, 12, 12, 12},\n\t\t\t7,\n\t\t\t45,\n\t\t\t53,\n\t\t\t160,\n\t\t},\n\t}\n\n\tfor i, testCase := range testCases {\n\t\tt.Run(\n\t\t\tstrconv.Itoa(i),\n\t\t\tfunc(t *testing.T) {\n\t\t\t\tfor level := Level1; level < LevelCount; level++ {\n\t\t\t\t\tassert.Equal(\n\t\t\t\t\t\tt, testCase.expectedTotalCountByLevel[level+1], testCase.reef.CountTotalCoralByLevel(level),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tassert.Equal(t, testCase.expectedAutoCount, testCase.reef.AutoCoralCount())\n\t\t\t\tassert.Equal(t, testCase.expectedAutoPoints, testCase.reef.AutoCoralPoints())\n\t\t\t\tassert.Equal(t, testCase.expectedTeleopCount, testCase.reef.TeleopCoralCount())\n\t\t\t\tassert.Equal(t, testCase.expectedTeleopPoints, testCase.reef.TeleopCoralPoints())\n\t\t\t},\n\t\t)\n\t}\n}\n\nfunc TestReef_isAutoBonusCoralThresholdMet(t *testing.T) {\n\t// Save the original threshold value and restore it after the test.\n\toriginalThreshold := AutoBonusCoralThreshold\n\tdefer func() {\n\t\tAutoBonusCoralThreshold = originalThreshold\n\t}()\n\n\ttestCases := []struct {\n\t\treef                 Reef\n\t\tthreshold            int\n\t\texpectedThresholdMet bool\n\t}{\n\t\t// 0. Empty reef.\n\t\t{\n\t\t\treef:                 Reef{},\n\t\t\tthreshold:            1,\n\t\t\texpectedThresholdMet: false,\n\t\t},\n\n\t\t// 1. Below threshold with some coral.\n\t\t{\n\t\t\treef: Reef{\n\t\t\t\tAutoBranches: [3][12]bool{\n\t\t\t\t\t{true, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t},\n\t\t\t\tAutoTroughNear: 2,\n\t\t\t\tAutoTroughFar:  1,\n\t\t\t},\n\t\t\tthreshold:            5,\n\t\t\texpectedThresholdMet: false,\n\t\t},\n\n\t\t// 2. Exactly at threshold.\n\t\t{\n\t\t\treef: Reef{\n\t\t\t\tAutoBranches: [3][12]bool{\n\t\t\t\t\t{true, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t},\n\t\t\t\tAutoTroughNear: 2,\n\t\t\t\tAutoTroughFar:  1,\n\t\t\t},\n\t\t\tthreshold:            4,\n\t\t\texpectedThresholdMet: true,\n\t\t},\n\n\t\t// 3. Above threshold.\n\t\t{\n\t\t\treef: Reef{\n\t\t\t\tAutoBranches: [3][12]bool{\n\t\t\t\t\t{true, true, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{true, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, true},\n\t\t\t\t},\n\t\t\t\tAutoTroughNear: 5,\n\t\t\t\tAutoTroughFar:  3,\n\t\t\t},\n\t\t\tthreshold:            10,\n\t\t\texpectedThresholdMet: true,\n\t\t},\n\t}\n\n\tfor i, tc := range testCases {\n\t\tt.Run(\n\t\t\tstrconv.Itoa(i),\n\t\t\tfunc(t *testing.T) {\n\t\t\t\tAutoBonusCoralThreshold = tc.threshold\n\t\t\t\tresult := tc.reef.isAutoBonusCoralThresholdMet()\n\t\t\t\tassert.Equal(t, tc.expectedThresholdMet, result)\n\t\t\t},\n\t\t)\n\t}\n}\n\nfunc TestReef_countCoralBonusSatisfiedLevels(t *testing.T) {\n\t// Save the original threshold value and restore it after the test.\n\toriginalThreshold := CoralBonusPerLevelThreshold\n\tdefer func() {\n\t\tCoralBonusPerLevelThreshold = originalThreshold\n\t}()\n\n\ttestCases := []struct {\n\t\treef                    Reef\n\t\tthreshold               int\n\t\texpectedSatisfiedLevels int\n\t}{\n\t\t// 0. Empty reef.\n\t\t{\n\t\t\treef:                    Reef{},\n\t\t\tthreshold:               1,\n\t\t\texpectedSatisfiedLevels: 0,\n\t\t},\n\n\t\t// 1. Two levels satisfied.\n\t\t{\n\t\t\treef: Reef{\n\t\t\t\tAutoBranches: [3][12]bool{\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{true, true, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t},\n\t\t\t\tBranches: [3][12]bool{\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{true, false, true, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{false, false, false, false, false, false, false, false, false, true, true, true},\n\t\t\t\t},\n\t\t\t\tAutoTroughNear: 1,\n\t\t\t\tAutoTroughFar:  0,\n\t\t\t\tTroughNear:     2,\n\t\t\t\tTroughFar:      1,\n\t\t\t},\n\t\t\tthreshold:               3,\n\t\t\texpectedSatisfiedLevels: 2,\n\t\t},\n\n\t\t// 2. All levels satisfied.\n\t\t{\n\t\t\treef: Reef{\n\t\t\t\tAutoBranches: [3][12]bool{\n\t\t\t\t\t{false, false, false, false, false, false, true, true, true, true, true, true},\n\t\t\t\t\t{true, true, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{true, true, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t},\n\t\t\t\tBranches: [3][12]bool{\n\t\t\t\t\t{false, false, false, false, false, true, true, true, true, true, true, true},\n\t\t\t\t\t{true, true, true, true, false, true, false, false, true, true, false, false},\n\t\t\t\t\t{true, true, true, true, true, false, false, false, false, false, true, true},\n\t\t\t\t},\n\t\t\t\tAutoTroughNear: 3,\n\t\t\t\tAutoTroughFar:  2,\n\t\t\t\tTroughNear:     2,\n\t\t\t\tTroughFar:      5,\n\t\t\t},\n\t\t\tthreshold:               7,\n\t\t\texpectedSatisfiedLevels: 4,\n\t\t},\n\n\t\t// 3. No levels satisfied with higher threshold and same scoring as above.\n\t\t{\n\t\t\treef: Reef{\n\t\t\t\tAutoBranches: [3][12]bool{\n\t\t\t\t\t{false, false, false, false, false, true, true, true, true, true, true, true},\n\t\t\t\t\t{true, true, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t\t{true, true, false, false, false, false, false, false, false, false, false, false},\n\t\t\t\t},\n\t\t\t\tBranches: [3][12]bool{\n\t\t\t\t\t{false, false, false, false, false, false, true, true, true, true, true, true},\n\t\t\t\t\t{true, true, true, true, false, false, false, false, true, true, false, false},\n\t\t\t\t\t{true, true, true, true, true, false, false, false, false, false, true, true},\n\t\t\t\t},\n\t\t\t\tAutoTroughNear: 3,\n\t\t\t\tAutoTroughFar:  2,\n\t\t\t\tTroughNear:     2,\n\t\t\t\tTroughFar:      5,\n\t\t\t},\n\t\t\tthreshold:               8,\n\t\t\texpectedSatisfiedLevels: 0,\n\t\t},\n\t}\n\n\tfor i, tc := range testCases {\n\t\tt.Run(\n\t\t\tstrconv.Itoa(i),\n\t\t\tfunc(t *testing.T) {\n\t\t\t\tCoralBonusPerLevelThreshold = tc.threshold\n\t\t\t\tresult := tc.reef.countCoralBonusSatisfiedLevels()\n\t\t\t\tassert.Equal(t, tc.expectedSatisfiedLevels, result)\n\t\t\t},\n\t\t)\n\t}\n}\n"
  },
  {
    "path": "game/rule.go",
    "content": "// Copyright 2020 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model of a game-specific rule.\n\npackage game\n\ntype Rule struct {\n\tId             int\n\tRuleNumber     string\n\tIsMajor        bool\n\tIsRankingPoint bool\n\tDescription    string\n}\n\n// All rules from the 2022 game that carry point penalties.\n// @formatter:off\nvar rules = []*Rule{\n\t{1, \"G206\", false, true, \"A team or ALLIANCE may not collude with another team to each purposefully violate a rule in an attempt to influence Ranking Points.\"},\n\t{2, \"G210\", true, false, \"A strategy not consistent with standard gameplay and clearly aimed at forcing the opponent ALLIANCE to violate a rule is not in the spirit of FIRST Robotics Competition and not allowed.\"},\n\t{3, \"G301\", true, false, \"A DRIVE TEAM member may not cause significant delays to the start of their MATCH.\"},\n\t{4, \"G401\", false, false, \"In AUTO, each DRIVE TEAM member must remain in their staged areas. A DRIVE TEAM member staged behind a HUMAN STARTING LINE may not contact anything in front of that HUMAN STARTING LINE, unless for personal or equipment safety, to press the E-Stop or A-Stop, or granted permission by a Head REFEREE or FTA.\"},\n\t{5, \"G402\", false, false, \"In AUTO, a DRIVE TEAM member may not directly or indirectly interact with a ROBOT or an OPERATOR CONSOLE unless for personal safety, OPERATOR CONSOLE safety, or pressing an E-Stop or A-Stop.\"},\n\t{6, \"G403\", true, false, \"In AUTO, a ROBOT whose BUMPERS are completely across the BARGE ZONE (i.e. to the opposite side of the BARGE ZONE from its ROBOT STARTING LINE) may not contact an opponent ROBOT (either directly or transitively through a SCORING ELEMENT CONTROLLED by either ROBOT and regardless of who initiates contact).\"},\n\t{7, \"G404\", false, false, \"In AUTO, a HUMAN PLAYER may not enter ALGAE onto the field.\"},\n\t{8, \"G405\", true, false, \"In AUTO, a ROBOT may not contact an opposing ALLIANCE’s CAGE.\"},\n\t{9, \"G406\", true, false, \"A ROBOT may not deliberately use a SCORING ELEMENT in an attempt to ease or amplify the challenge associated with a FIELD element.\"},\n\t{10, \"G407\", false, false, \"A ROBOT may not intentionally eject a SCORING ELEMENT from the FIELD (either directly or by bouncing off a FIELD element or other ROBOT) other than ALGAE through a PROCESSOR.\"},\n\t{11, \"G407\", true, false, \"A ROBOT may not intentionally eject a SCORING ELEMENT from the FIELD (either directly or by bouncing off a FIELD element or other ROBOT) other than ALGAE through a PROCESSOR.\"},\n\t{12, \"G408\", true, false, \"Neither a ROBOT nor a HUMAN PLAYER may damage a SCORING ELEMENT.\"},\n\t{13, \"G409\", false, false, \"A ROBOT may not simultaneously CONTROL more than 1 CORAL and 1 ALGAE either directly or transitively through other objects.\"},\n\t{14, \"G410\", true, true, \"A ROBOT may not de-score a CORAL scored on the opponent’s REEF.\"},\n\t{15, \"G411\", true, false, \"A ROBOT may not deliberately put ALGAE on their opponent’s REEF.\"},\n\t{16, \"G412\", true, false, \"A ROBOT may not launch CORAL unless their BUMPERS are partially in their REEF ZONE.\"},\n\t{17, \"G414\", false, false, \"BUMPERS must be in the BUMPER ZONE.\"},\n\t{18, \"G415\", false, false, \"A ROBOT may not extend more than 1 ft. 6 in. beyond the vertical projection of its ROBOT PERIMETER.\"},\n\t{19, \"G415\", true, false, \"A ROBOT may not extend more than 1 ft. 6 in. beyond the vertical projection of its ROBOT PERIMETER.\"},\n\t{20, \"G417\", true, false, \"A ROBOT is prohibited from the following interactions with FIELD elements with the exception of CAGES: grabbing, grasping, attaching to, becoming entangled with, suspending from.\"},\n\t{21, \"G418\", true, true, \"In TELEOP, a ROBOT may not contact an opponent’s CAGE.\"},\n\t{22, \"G419\", true, false, \"A ROBOT may not contact the ANCHORS.\"},\n\t{23, \"G420\", true, false, \"A ROBOT may not contact either NET or any ALGAE scored in an opponent NET.\"},\n\t{24, \"G421\", false, false, \"No more than 1 ROBOT may be on the opponent’s side of the FIELD (i.e. containing the opponent REEF) with its BUMPERS fully outside and beyond the BARGE ZONES.\"},\n\t{25, \"G421\", true, false, \"No more than 1 ROBOT may be on the opponent’s side of the FIELD (i.e. containing the opponent REEF) with its BUMPERS fully outside and beyond the BARGE ZONES.\"},\n\t{26, \"G422\", false, false, \"A ROBOT may not use a COMPONENT outside its ROBOT PERIMETER (except its BUMPERS) to initiate contact with an opponent ROBOT inside the vertical projection of the opponent's ROBOT PERIMETER.\"},\n\t{27, \"G423\", true, false, \"A ROBOT may not damage or functionally impair an opponent ROBOT in either of the following ways: A. deliberately. B. regardless of intent, by initiating contact, either directly or transitively via a SCORING ELEMENT CONTROLLED by the ROBOT, inside the vertical projection of an opponent's ROBOT PERIMETER.\"},\n\t{28, \"G424\", true, false, \"A ROBOT may not deliberately attach to, tip, or entangle with an opponent ROBOT.\"},\n\t{29, \"G425\", false, false, \"A ROBOT may not PIN an opponent’s ROBOT for more than 3 seconds.\"},\n\t{30, \"G425\", true, false, \"A ROBOT may not PIN an opponent’s ROBOT for more than 3 seconds.\"},\n\t{31, \"G426\", true, false, \"2 or more ROBOTS that appear to a REFEREE to be working together may not isolate or close off any major element of MATCH play.\"},\n\t{32, \"G427\", true, false, \"A ROBOT may not contact, directly or transitively through a SCORING ELEMENT, an opponent ROBOT partially or fully inside the opponent’s BARGE ZONE or REEF ZONE regardless of who initiates contact.\"},\n\t{33, \"G428\", true, true, \"A ROBOT may not contact, directly or transitively through a SCORING ELEMENT, an opponent ROBOT in contact with an opponent CAGE during the last 20 seconds regardless of who initiates contact.\"},\n\t{34, \"G429\", false, false, \"A DRIVE TEAM member must remain in their designated area as follows: A. DRIVERS and COACHES may not contact anything outside their ALLIANCE AREA, B. a DRIVER must use the OPERATOR CONSOLE in the DRIVER STATION to which they are assigned, as indicated on the team sign, C. a HUMAN PLAYER may not contact anything outside their ALLIANCE AREA or their PROCESSOR AREA, and D. a TECHNICIAN may not contact anything outside their designated area.\"},\n\t{35, \"G430\", true, false, \"A ROBOT shall be operated only by the DRIVERS and/or HUMAN PLAYERS of that team. A COACH activating their E-Stop or A-Stop is the exception to this rule.\"},\n\t{36, \"G431\", false, false, \"A DRIVE TEAM member may not extend into the CHUTE.\"},\n\t{37, \"G432\", true, false, \"A DRIVE TEAM member may not deliberately use a SCORING ELEMENT in an attempt to ease or amplify a challenge associated with a FIELD element.\"},\n\t{38, \"G433\", true, false, \"SCORING ELEMENTS may only be entered onto the FIELD as follows: A. CORAL may only be introduced to the FIELD by a HUMAN PLAYER or DRIVER through the CORAL STATION and B. ALGAE may only be entered onto the FIELD by a HUMAN PLAYER in their PROCESSOR AREA.\"},\n\t{39, \"G434\", false, false, \"COACHES may not touch SCORING ELEMENTS, unless for safety purposes.\"},\n\t{40, \"G435\", true, false, \"HUMAN PLAYERS may not store more than 4 ALGAE in the PROCESSOR AREA.\"},\n}\n\n// @formatter:on\nvar ruleMap map[int]*Rule\n\n// Returns the rule having the given ID, or nil if no such rule exists.\nfunc GetRuleById(id int) *Rule {\n\treturn GetAllRules()[id]\n}\n\n// Returns a slice of all defined rules that carry point penalties.\nfunc GetAllRules() map[int]*Rule {\n\tif ruleMap == nil {\n\t\truleMap = make(map[int]*Rule, len(rules))\n\t\tfor _, rule := range rules {\n\t\t\truleMap[rule.Id] = rule\n\t\t}\n\t}\n\treturn ruleMap\n}\n"
  },
  {
    "path": "game/rule_test.go",
    "content": "// Copyright 2020 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage game\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestGetRuleById(t *testing.T) {\n\tassert.Nil(t, GetRuleById(0))\n\tassert.Equal(t, rules[0], GetRuleById(1))\n\tassert.Equal(t, rules[20], GetRuleById(21))\n\tassert.Nil(t, GetRuleById(1000))\n}\n\nfunc TestGetAllRules(t *testing.T) {\n\tallRules := GetAllRules()\n\tassert.Equal(t, len(rules), len(allRules))\n\tfor _, rule := range rules {\n\t\tassert.Equal(t, rule, allRules[rule.Id])\n\t}\n}\n"
  },
  {
    "path": "game/score.go",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model representing the instantaneous score of a match.\n\npackage game\n\ntype Score struct {\n\tRobotsBypassed  [3]bool\n\tLeaveStatuses   [3]bool\n\tReef            Reef\n\tBargeAlgae      int\n\tProcessorAlgae  int\n\tEndgameStatuses [3]EndgameStatus\n\tFouls           []Foul\n\tPlayoffDq       bool\n}\n\n// Game-specific settings that can be changed via the settings.\nvar AutoBonusCoralThreshold = 1\nvar CoralBonusPerLevelThreshold = 7\nvar CoralBonusCoopEnabled = true\nvar BargeBonusPointThreshold = 16\nvar IncludeAlgaeInBargeBonus = false\n\n// Represents the state of a robot at the end of the match.\ntype EndgameStatus int\n\nconst (\n\tEndgameNone EndgameStatus = iota\n\tEndgameParked\n\tEndgameShallowCage\n\tEndgameDeepCage\n)\n\n// Summarize calculates and returns the summary fields used for ranking and display.\nfunc (score *Score) Summarize(opponentScore *Score) *ScoreSummary {\n\tsummary := new(ScoreSummary)\n\n\t// Leave the score at zero if the alliance was disqualified.\n\tif score.PlayoffDq {\n\t\treturn summary\n\t}\n\n\t// Calculate autonomous period points.\n\tfor _, status := range score.LeaveStatuses {\n\t\tif status {\n\t\t\tsummary.LeavePoints += 3\n\t\t}\n\t}\n\tautoCoralPoints := score.Reef.AutoCoralPoints()\n\tsummary.AutoPoints = summary.LeavePoints + autoCoralPoints\n\n\tsummary.NumCoral = score.Reef.AutoCoralCount() + score.Reef.TeleopCoralCount()\n\tsummary.CoralPoints = autoCoralPoints + score.Reef.TeleopCoralPoints()\n\tsummary.NumAlgae = score.BargeAlgae + score.ProcessorAlgae\n\tsummary.AlgaePoints = 4*score.BargeAlgae + 6*score.ProcessorAlgae\n\n\t// Calculate endgame points.\n\tfor _, status := range score.EndgameStatuses {\n\t\tswitch status {\n\t\tcase EndgameParked:\n\t\t\tsummary.BargePoints += 2\n\t\tcase EndgameShallowCage:\n\t\t\tsummary.BargePoints += 6\n\t\tcase EndgameDeepCage:\n\t\t\tsummary.BargePoints += 12\n\t\tdefault:\n\t\t}\n\t}\n\n\tsummary.MatchPoints = summary.LeavePoints + summary.CoralPoints + summary.AlgaePoints + summary.BargePoints\n\n\t// Calculate penalty points.\n\tfor _, foul := range opponentScore.Fouls {\n\t\tsummary.FoulPoints += foul.PointValue()\n\t\t// Store the number of major fouls since it is used to break ties in playoffs.\n\t\tif foul.IsMajor {\n\t\t\tsummary.NumOpponentMajorFouls++\n\t\t}\n\n\t\trule := foul.Rule()\n\t\tif rule != nil {\n\t\t\t// Check for the opponent fouls that automatically trigger a ranking point.\n\t\t\tif rule.IsRankingPoint {\n\t\t\t\tswitch rule.RuleNumber {\n\t\t\t\tcase \"G410\":\n\t\t\t\t\tsummary.CoralBonusRankingPoint = true\n\t\t\t\tcase \"G418\":\n\t\t\t\t\tsummary.BargeBonusRankingPoint = true\n\t\t\t\tcase \"G428\":\n\t\t\t\t\tsummary.BargeBonusRankingPoint = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tsummary.Score = summary.MatchPoints + summary.FoulPoints\n\n\t// Calculate bonus ranking points.\n\t// Autonomous bonus ranking point.\n\tallRobotsLeft := true\n\tfor i, left := range score.LeaveStatuses {\n\t\tif !left && !score.RobotsBypassed[i] {\n\t\t\tallRobotsLeft = false\n\t\t\tbreak\n\t\t}\n\t}\n\tif allRobotsLeft && score.Reef.isAutoBonusCoralThresholdMet() {\n\t\tsummary.AutoBonusRankingPoint = true\n\t}\n\n\t// Coral bonus ranking point.\n\tsummary.NumCoralLevels = score.Reef.countCoralBonusSatisfiedLevels()\n\tsummary.NumCoralLevelsGoal = 4\n\tif CoralBonusCoopEnabled {\n\t\tsummary.CoopertitionCriteriaMet = score.ProcessorAlgae >= 2\n\t\tsummary.CoopertitionBonus = summary.CoopertitionCriteriaMet && opponentScore.ProcessorAlgae >= 2\n\t\tif summary.CoopertitionBonus {\n\t\t\tsummary.NumCoralLevelsGoal = 3\n\t\t}\n\t}\n\tif summary.NumCoralLevels >= summary.NumCoralLevelsGoal {\n\t\tsummary.CoralBonusRankingPoint = true\n\t}\n\n\t// Barge bonus ranking point.\n\tbargePointsForBonus := summary.BargePoints\n\tif IncludeAlgaeInBargeBonus {\n\t\tbargePointsForBonus += summary.AlgaePoints\n\t}\n\tif bargePointsForBonus >= BargeBonusPointThreshold {\n\t\tsummary.BargeBonusRankingPoint = true\n\t}\n\n\t// Check for G206 violation.\n\tfor _, foul := range score.Fouls {\n\t\tif foul.Rule() != nil && foul.Rule().RuleNumber == \"G206\" {\n\t\t\tsummary.CoralBonusRankingPoint = false\n\t\t\tsummary.BargeBonusRankingPoint = false\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Add up the bonus ranking points.\n\tif summary.AutoBonusRankingPoint {\n\t\tsummary.BonusRankingPoints++\n\t}\n\tif summary.CoralBonusRankingPoint {\n\t\tsummary.BonusRankingPoints++\n\t}\n\tif summary.BargeBonusRankingPoint {\n\t\tsummary.BonusRankingPoints++\n\t}\n\n\treturn summary\n}\n\n// Equals returns true if and only if all fields of the two scores are equal.\nfunc (score *Score) Equals(other *Score) bool {\n\tif score.RobotsBypassed != other.RobotsBypassed ||\n\t\tscore.LeaveStatuses != other.LeaveStatuses ||\n\t\tscore.Reef != other.Reef ||\n\t\tscore.BargeAlgae != other.BargeAlgae ||\n\t\tscore.ProcessorAlgae != other.ProcessorAlgae ||\n\t\tscore.EndgameStatuses != other.EndgameStatuses ||\n\t\tscore.PlayoffDq != other.PlayoffDq ||\n\t\tlen(score.Fouls) != len(other.Fouls) {\n\t\treturn false\n\t}\n\n\tfor i, foul := range score.Fouls {\n\t\tif foul != other.Fouls[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"
  },
  {
    "path": "game/score_summary.go",
    "content": "// Copyright 2022 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model representing the calculated totals of a match score.\n\npackage game\n\ntype ScoreSummary struct {\n\tLeavePoints             int\n\tAutoPoints              int\n\tNumCoral                int\n\tCoralPoints             int\n\tNumAlgae                int\n\tAlgaePoints             int\n\tBargePoints             int\n\tMatchPoints             int\n\tFoulPoints              int\n\tScore                   int\n\tCoopertitionCriteriaMet bool\n\tCoopertitionBonus       bool\n\tNumCoralLevels          int\n\tNumCoralLevelsGoal      int\n\tAutoBonusRankingPoint   bool\n\tCoralBonusRankingPoint  bool\n\tBargeBonusRankingPoint  bool\n\tBonusRankingPoints      int\n\tNumOpponentMajorFouls   int\n}\n\ntype MatchStatus int\n\nconst (\n\tMatchScheduled MatchStatus = iota\n\tMatchHidden\n\tRedWonMatch\n\tBlueWonMatch\n\tTieMatch\n)\n\nfunc (t MatchStatus) Get() MatchStatus {\n\treturn t\n}\n\n// Determines the winner of the match given the score summaries for both alliances.\nfunc DetermineMatchStatus(redScoreSummary, blueScoreSummary *ScoreSummary, applyPlayoffTiebreakers bool) MatchStatus {\n\tif status := comparePoints(redScoreSummary.Score, blueScoreSummary.Score); status != TieMatch {\n\t\treturn status\n\t}\n\n\tif applyPlayoffTiebreakers {\n\t\t// Check scoring breakdowns to resolve playoff ties.\n\t\tif status := comparePoints(\n\t\t\tredScoreSummary.NumOpponentMajorFouls, blueScoreSummary.NumOpponentMajorFouls,\n\t\t); status != TieMatch {\n\t\t\treturn status\n\t\t}\n\t\tif status := comparePoints(redScoreSummary.AutoPoints, blueScoreSummary.AutoPoints); status != TieMatch {\n\t\t\treturn status\n\t\t}\n\t\tif status := comparePoints(redScoreSummary.BargePoints, blueScoreSummary.BargePoints); status != TieMatch {\n\t\t\treturn status\n\t\t}\n\t}\n\n\treturn TieMatch\n}\n\n// Helper method to compare the red and blue alliance point totals and return the appropriate MatchStatus.\nfunc comparePoints(redPoints, bluePoints int) MatchStatus {\n\tif redPoints > bluePoints {\n\t\treturn RedWonMatch\n\t}\n\tif redPoints < bluePoints {\n\t\treturn BlueWonMatch\n\t}\n\treturn TieMatch\n}\n"
  },
  {
    "path": "game/score_summary_test.go",
    "content": "// Copyright 2022 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage game\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestScoreSummaryDetermineMatchStatus(t *testing.T) {\n\tredScoreSummary := &ScoreSummary{Score: 10}\n\tblueScoreSummary := &ScoreSummary{Score: 10}\n\tassert.Equal(t, TieMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, false))\n\tassert.Equal(t, TieMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, true))\n\n\tredScoreSummary.Score = 11\n\tassert.Equal(t, RedWonMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, false))\n\tassert.Equal(t, RedWonMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, true))\n\n\tblueScoreSummary.Score = 12\n\tassert.Equal(t, BlueWonMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, false))\n\tassert.Equal(t, BlueWonMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, true))\n\n\tredScoreSummary.Score = 12\n\tredScoreSummary.NumOpponentMajorFouls = 11\n\tredScoreSummary.AutoPoints = 11\n\tredScoreSummary.BargePoints = 11\n\tblueScoreSummary.NumOpponentMajorFouls = 10\n\tblueScoreSummary.AutoPoints = 10\n\tblueScoreSummary.BargePoints = 10\n\tassert.Equal(t, TieMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, false))\n\tassert.Equal(t, RedWonMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, true))\n\n\tblueScoreSummary.NumOpponentMajorFouls = 12\n\tassert.Equal(t, TieMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, false))\n\tassert.Equal(t, BlueWonMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, true))\n\n\tredScoreSummary.NumOpponentMajorFouls = 12\n\tassert.Equal(t, TieMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, false))\n\tassert.Equal(t, RedWonMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, true))\n\n\tblueScoreSummary.AutoPoints = 12\n\tassert.Equal(t, TieMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, false))\n\tassert.Equal(t, BlueWonMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, true))\n\n\tredScoreSummary.AutoPoints = 12\n\tassert.Equal(t, TieMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, false))\n\tassert.Equal(t, RedWonMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, true))\n\n\tblueScoreSummary.BargePoints = 12\n\tassert.Equal(t, TieMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, false))\n\tassert.Equal(t, BlueWonMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, true))\n\n\tredScoreSummary.BargePoints = 12\n\tassert.Equal(t, TieMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, false))\n\tassert.Equal(t, TieMatch, DetermineMatchStatus(redScoreSummary, blueScoreSummary, true))\n}\n"
  },
  {
    "path": "game/score_test.go",
    "content": "// Copyright 2017 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage game\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"strconv\"\n\t\"testing\"\n)\n\nfunc TestScoreSummary(t *testing.T) {\n\tredScore := TestScore1()\n\tblueScore := TestScore2()\n\n\tredSummary := redScore.Summarize(blueScore)\n\tassert.Equal(t, 6, redSummary.LeavePoints)\n\tassert.Equal(t, 13, redSummary.AutoPoints)\n\tassert.Equal(t, 12, redSummary.NumCoral)\n\tassert.Equal(t, 34, redSummary.CoralPoints)\n\tassert.Equal(t, 9, redSummary.NumAlgae)\n\tassert.Equal(t, 40, redSummary.AlgaePoints)\n\tassert.Equal(t, 14, redSummary.BargePoints)\n\tassert.Equal(t, 94, redSummary.MatchPoints)\n\tassert.Equal(t, 0, redSummary.FoulPoints)\n\tassert.Equal(t, 94, redSummary.Score)\n\tassert.Equal(t, true, redSummary.CoopertitionCriteriaMet)\n\tassert.Equal(t, false, redSummary.CoopertitionBonus)\n\tassert.Equal(t, 1, redSummary.NumCoralLevels)\n\tassert.Equal(t, 4, redSummary.NumCoralLevelsGoal)\n\tassert.Equal(t, true, redSummary.AutoBonusRankingPoint)\n\tassert.Equal(t, false, redSummary.CoralBonusRankingPoint)\n\tassert.Equal(t, false, redSummary.BargeBonusRankingPoint)\n\tassert.Equal(t, 1, redSummary.BonusRankingPoints)\n\tassert.Equal(t, 0, redSummary.NumOpponentMajorFouls)\n\n\tblueSummary := blueScore.Summarize(redScore)\n\tassert.Equal(t, 3, blueSummary.LeavePoints)\n\tassert.Equal(t, 33, blueSummary.AutoPoints)\n\tassert.Equal(t, 26, blueSummary.NumCoral)\n\tassert.Equal(t, 83, blueSummary.CoralPoints)\n\tassert.Equal(t, 10, blueSummary.NumAlgae)\n\tassert.Equal(t, 42, blueSummary.AlgaePoints)\n\tassert.Equal(t, 24, blueSummary.BargePoints)\n\tassert.Equal(t, 152, blueSummary.MatchPoints)\n\tassert.Equal(t, 34, blueSummary.FoulPoints)\n\tassert.Equal(t, 186, blueSummary.Score)\n\tassert.Equal(t, false, blueSummary.CoopertitionCriteriaMet)\n\tassert.Equal(t, false, blueSummary.CoopertitionBonus)\n\tassert.Equal(t, 1, blueSummary.NumCoralLevels)\n\tassert.Equal(t, 4, blueSummary.NumCoralLevelsGoal)\n\tassert.Equal(t, false, blueSummary.AutoBonusRankingPoint)\n\tassert.Equal(t, false, blueSummary.CoralBonusRankingPoint)\n\tassert.Equal(t, true, blueSummary.BargeBonusRankingPoint)\n\tassert.Equal(t, 1, blueSummary.BonusRankingPoints)\n\tassert.Equal(t, 5, blueSummary.NumOpponentMajorFouls)\n\n\t// Test that unsetting the team and rule ID don't invalidate the foul.\n\tredScore.Fouls[0].TeamId = 0\n\tredScore.Fouls[0].RuleId = 0\n\tassert.Equal(t, 34, blueScore.Summarize(redScore).FoulPoints)\n\n\t// Test playoff disqualification.\n\tredScore.PlayoffDq = true\n\tassert.Equal(t, 0, redScore.Summarize(blueScore).Score)\n\tassert.NotEqual(t, 0, blueScore.Summarize(blueScore).Score)\n\tblueScore.PlayoffDq = true\n\tassert.Equal(t, 0, blueScore.Summarize(redScore).Score)\n}\n\nfunc TestScoreAutoBonusRankingPoint(t *testing.T) {\n\tredScore := TestScore1()\n\tredScore.RobotsBypassed = [3]bool{false, false, false}\n\tredScore.LeaveStatuses = [3]bool{false, false, false}\n\tblueScore := TestScore2()\n\n\t// No robots left; no bonus is awarded.\n\tredSummary := redScore.Summarize(blueScore)\n\tassert.Equal(t, false, redSummary.AutoBonusRankingPoint)\n\n\t// All robots left; the bonus is awarded.\n\tredScore.LeaveStatuses = [3]bool{true, true, true}\n\tredSummary = redScore.Summarize(blueScore)\n\tassert.Equal(t, true, redSummary.AutoBonusRankingPoint)\n\n\t// One robot failed to leave; no bonus is awarded.\n\tfor i := 0; i < 3; i++ {\n\t\tredScore.LeaveStatuses = [3]bool{true, true, true}\n\t\tredScore.LeaveStatuses[i] = false\n\t\tredSummary = redScore.Summarize(blueScore)\n\t\tassert.Equal(t, false, redSummary.AutoBonusRankingPoint)\n\t}\n\n\t// One bypassed robot failed to leave; the bonus is awarded.\n\tfor i := 0; i < 3; i++ {\n\t\tredScore.RobotsBypassed = [3]bool{false, false, false}\n\t\tredScore.RobotsBypassed[i] = true\n\t\tredScore.LeaveStatuses = [3]bool{true, true, true}\n\t\tredScore.LeaveStatuses[i] = false\n\t\tredSummary = redScore.Summarize(blueScore)\n\t\tassert.Equal(t, true, redSummary.AutoBonusRankingPoint)\n\t}\n\n\t// Only one robot left but the other two were bypassed; the bonus is awarded.\n\tredScore.RobotsBypassed = [3]bool{false, true, true}\n\tredScore.LeaveStatuses = [3]bool{true, false, false}\n\tredSummary = redScore.Summarize(blueScore)\n\tassert.Equal(t, true, redSummary.AutoBonusRankingPoint)\n\n\t// No coral is scored; the bonus is not awarded.\n\tredScore.Reef = Reef{}\n\tredSummary = redScore.Summarize(blueScore)\n\tassert.Equal(t, false, redSummary.AutoBonusRankingPoint)\n}\n\nfunc TestScoreCoralBonusRankingPoint(t *testing.T) {\n\t// Save the original threshold value and restore it after the test.\n\toriginalThreshold := CoralBonusPerLevelThreshold\n\tdefer func() {\n\t\tCoralBonusPerLevelThreshold = originalThreshold\n\t\tCoralBonusCoopEnabled = true\n\t}()\n\tCoralBonusPerLevelThreshold = 3\n\n\tredScore := TestScore1()\n\tblueScore := TestScore2()\n\n\tredScoreSummary := redScore.Summarize(blueScore)\n\tblueScoreSummary := blueScore.Summarize(redScore)\n\tassert.Equal(t, true, redScoreSummary.CoopertitionCriteriaMet)\n\tassert.Equal(t, false, redScoreSummary.CoopertitionBonus)\n\tassert.Equal(t, 2, redScoreSummary.NumCoralLevels)\n\tassert.Equal(t, 4, redScoreSummary.NumCoralLevelsGoal)\n\tassert.Equal(t, false, redScoreSummary.CoralBonusRankingPoint)\n\tassert.Equal(t, false, blueScoreSummary.CoopertitionCriteriaMet)\n\tassert.Equal(t, false, blueScoreSummary.CoopertitionBonus)\n\tassert.Equal(t, 4, blueScoreSummary.NumCoralLevels)\n\tassert.Equal(t, 4, blueScoreSummary.NumCoralLevelsGoal)\n\tassert.Equal(t, true, blueScoreSummary.CoralBonusRankingPoint)\n\n\t// Activate coopertition bonus for the blue alliance.\n\tblueScore.ProcessorAlgae = 2\n\tredScoreSummary = redScore.Summarize(blueScore)\n\tblueScoreSummary = blueScore.Summarize(redScore)\n\tassert.Equal(t, true, redScoreSummary.CoopertitionCriteriaMet)\n\tassert.Equal(t, true, redScoreSummary.CoopertitionBonus)\n\tassert.Equal(t, 2, redScoreSummary.NumCoralLevels)\n\tassert.Equal(t, 3, redScoreSummary.NumCoralLevelsGoal)\n\tassert.Equal(t, false, redScoreSummary.CoralBonusRankingPoint)\n\tassert.Equal(t, true, blueScoreSummary.CoopertitionCriteriaMet)\n\tassert.Equal(t, true, blueScoreSummary.CoopertitionBonus)\n\tassert.Equal(t, 4, blueScoreSummary.NumCoralLevels)\n\tassert.Equal(t, 3, blueScoreSummary.NumCoralLevelsGoal)\n\tassert.Equal(t, true, blueScoreSummary.CoralBonusRankingPoint)\n\n\t// Satisfy the Coral bonus requirement for the red alliance.\n\tredScore.Reef.Branches[0] = [12]bool{true, true, true, true}\n\tredScoreSummary = redScore.Summarize(blueScore)\n\tblueScoreSummary = blueScore.Summarize(redScore)\n\tassert.Equal(t, true, redScoreSummary.CoopertitionCriteriaMet)\n\tassert.Equal(t, true, redScoreSummary.CoopertitionBonus)\n\tassert.Equal(t, 3, redScoreSummary.NumCoralLevels)\n\tassert.Equal(t, 3, redScoreSummary.NumCoralLevelsGoal)\n\tassert.Equal(t, true, redScoreSummary.CoralBonusRankingPoint)\n\n\t// Disable the coopertition bonus.\n\tCoralBonusCoopEnabled = false\n\tredScoreSummary = redScore.Summarize(blueScore)\n\tblueScoreSummary = blueScore.Summarize(redScore)\n\tassert.Equal(t, false, redScoreSummary.CoopertitionCriteriaMet)\n\tassert.Equal(t, false, redScoreSummary.CoopertitionBonus)\n\tassert.Equal(t, 3, redScoreSummary.NumCoralLevels)\n\tassert.Equal(t, 4, redScoreSummary.NumCoralLevelsGoal)\n\tassert.Equal(t, false, redScoreSummary.CoralBonusRankingPoint)\n\tassert.Equal(t, false, blueScoreSummary.CoopertitionCriteriaMet)\n\tassert.Equal(t, false, blueScoreSummary.CoopertitionBonus)\n\tassert.Equal(t, 4, blueScoreSummary.NumCoralLevels)\n\tassert.Equal(t, 4, blueScoreSummary.NumCoralLevelsGoal)\n\tassert.Equal(t, true, blueScoreSummary.CoralBonusRankingPoint)\n\n\t// Check that G206 disqualifies the alliance from the Coral bonus.\n\tblueScore.Fouls = []Foul{{FoulId: 1, RuleId: 1}}\n\tredScoreSummary = redScore.Summarize(blueScore)\n\tblueScoreSummary = blueScore.Summarize(redScore)\n\tassert.Equal(t, 0, redScoreSummary.FoulPoints)\n\tassert.Equal(t, false, blueScoreSummary.CoralBonusRankingPoint)\n\tassert.Equal(t, 0, blueScoreSummary.BonusRankingPoints)\n}\n\nfunc TestScoreBargeBonusRankingPoint(t *testing.T) {\n\t// Save the original threshold value and restore it after the test.\n\toriginalThreshold := BargeBonusPointThreshold\n\tdefer func() {\n\t\tBargeBonusPointThreshold = originalThreshold\n\t}()\n\n\ttestCases := []struct {\n\t\tendgameStatuses      [3]EndgameStatus\n\t\tfouls                []Foul\n\t\tthreshold            int\n\t\texpectedBonusAwarded bool\n\t}{\n\t\t// 0. No endgame points.\n\t\t{\n\t\t\tendgameStatuses:      [3]EndgameStatus{EndgameNone, EndgameNone, EndgameNone},\n\t\t\tfouls:                []Foul{},\n\t\t\tthreshold:            14,\n\t\t\texpectedBonusAwarded: false,\n\t\t},\n\n\t\t// 1. All robots parked.\n\t\t{\n\t\t\tendgameStatuses:      [3]EndgameStatus{EndgameParked, EndgameParked, EndgameParked},\n\t\t\tfouls:                []Foul{},\n\t\t\tthreshold:            14,\n\t\t\texpectedBonusAwarded: false,\n\t\t},\n\n\t\t// 2. Meeting the minimum threshold.\n\t\t{\n\t\t\tendgameStatuses:      [3]EndgameStatus{EndgameParked, EndgameNone, EndgameDeepCage},\n\t\t\tfouls:                []Foul{},\n\t\t\tthreshold:            14,\n\t\t\texpectedBonusAwarded: true,\n\t\t},\n\n\t\t// 3. Same endgame statuses not meeting a higher threshold.\n\t\t{\n\t\t\tendgameStatuses:      [3]EndgameStatus{EndgameParked, EndgameNone, EndgameDeepCage},\n\t\t\tfouls:                []Foul{},\n\t\t\tthreshold:            16,\n\t\t\texpectedBonusAwarded: false,\n\t\t},\n\n\t\t// 4. Meeting the new minimum threshold with a different combination.\n\t\t{\n\t\t\tendgameStatuses:      [3]EndgameStatus{EndgameDeepCage, EndgameParked, EndgameParked},\n\t\t\tfouls:                []Foul{},\n\t\t\tthreshold:            16,\n\t\t\texpectedBonusAwarded: true,\n\t\t},\n\n\t\t// 5. One of each endgame status with higher threshold.\n\t\t{\n\t\t\tendgameStatuses:      [3]EndgameStatus{EndgameShallowCage, EndgameDeepCage, EndgameParked},\n\t\t\tfouls:                []Foul{},\n\t\t\tthreshold:            21,\n\t\t\texpectedBonusAwarded: false,\n\t\t},\n\n\t\t// 6. All deep climbs.\n\t\t{\n\t\t\tendgameStatuses:      [3]EndgameStatus{EndgameDeepCage, EndgameDeepCage, EndgameDeepCage},\n\t\t\tfouls:                []Foul{},\n\t\t\tthreshold:            36,\n\t\t\texpectedBonusAwarded: true,\n\t\t},\n\n\t\t// 7. G206 foul disqualifies the alliance from the Barge bonus.\n\t\t{\n\t\t\tendgameStatuses:      [3]EndgameStatus{EndgameDeepCage, EndgameDeepCage, EndgameDeepCage},\n\t\t\tfouls:                []Foul{{RuleId: 1}},\n\t\t\tthreshold:            14,\n\t\t\texpectedBonusAwarded: false,\n\t\t},\n\t}\n\n\tfor i, tc := range testCases {\n\t\tt.Run(\n\t\t\tstrconv.Itoa(i),\n\t\t\tfunc(t *testing.T) {\n\t\t\t\tBargeBonusPointThreshold = tc.threshold\n\t\t\t\tscore := Score{EndgameStatuses: tc.endgameStatuses, Fouls: tc.fouls}\n\t\t\t\tsummary := score.Summarize(&Score{})\n\t\t\t\tassert.Equal(t, tc.expectedBonusAwarded, summary.BargeBonusRankingPoint)\n\t\t\t},\n\t\t)\n\t}\n}\n\nfunc TestScoreBargeBonusRankingPointIncludingAlgae(t *testing.T) {\n\t// Save the original setting and restore it after the test.\n\toriginalIncludeAlgae := IncludeAlgaeInBargeBonus\n\tdefer func() {\n\t\tIncludeAlgaeInBargeBonus = originalIncludeAlgae\n\t}()\n\n\tIncludeAlgaeInBargeBonus = false\n\tBargeBonusPointThreshold = 36\n\n\tscore := Score{\n\t\tEndgameStatuses: [3]EndgameStatus{EndgameDeepCage, EndgameDeepCage, EndgameParked},\n\t\tBargeAlgae:      1,\n\t\tProcessorAlgae:  1,\n\t}\n\tsummary := score.Summarize(&Score{})\n\tassert.Equal(t, false, summary.BargeBonusRankingPoint)\n\n\tIncludeAlgaeInBargeBonus = true\n\tsummary = score.Summarize(&Score{})\n\tassert.Equal(t, true, summary.BargeBonusRankingPoint)\n}\n\nfunc TestScoreAutoRankingPointFromFouls(t *testing.T) {\n\ttestCases := []struct {\n\t\townFouls           []Foul\n\t\topponentFouls      []Foul\n\t\texpectedCoralBonus bool\n\t\texpectedBargeBonus bool\n\t}{\n\t\t// 0. No fouls - no automatic ranking points.\n\t\t{\n\t\t\townFouls:           []Foul{},\n\t\t\topponentFouls:      []Foul{},\n\t\t\texpectedCoralBonus: false,\n\t\t\texpectedBargeBonus: false,\n\t\t},\n\n\t\t// 1. G410 foul automatically awards coral bonus.\n\t\t{\n\t\t\townFouls:           []Foul{},\n\t\t\topponentFouls:      []Foul{{RuleId: 14}},\n\t\t\texpectedCoralBonus: true,\n\t\t\texpectedBargeBonus: false,\n\t\t},\n\n\t\t// 2. G418 foul automatically awards barge bonus.\n\t\t{\n\t\t\townFouls:           []Foul{},\n\t\t\topponentFouls:      []Foul{{RuleId: 21}},\n\t\t\texpectedCoralBonus: false,\n\t\t\texpectedBargeBonus: true,\n\t\t},\n\n\t\t// 3. G428 foul automatically awards barge bonus.\n\t\t{\n\t\t\townFouls:           []Foul{},\n\t\t\topponentFouls:      []Foul{{RuleId: 33}},\n\t\t\texpectedCoralBonus: false,\n\t\t\texpectedBargeBonus: true,\n\t\t},\n\n\t\t// 4. All fouls together still automatically award both bonuses.\n\t\t{\n\t\t\townFouls:           []Foul{},\n\t\t\topponentFouls:      []Foul{{RuleId: 14}, {RuleId: 21}, {RuleId: 33}},\n\t\t\texpectedCoralBonus: true,\n\t\t\texpectedBargeBonus: true,\n\t\t},\n\n\t\t// 5. G206 makes the alliance ineligible for both bonuses.\n\t\t{\n\t\t\townFouls:           []Foul{{RuleId: 1}},\n\t\t\topponentFouls:      []Foul{{RuleId: 14}, {RuleId: 21}, {RuleId: 33}},\n\t\t\texpectedCoralBonus: false,\n\t\t\texpectedBargeBonus: false,\n\t\t},\n\t}\n\n\tfor i, tc := range testCases {\n\t\tt.Run(\n\t\t\tstrconv.Itoa(i),\n\t\t\tfunc(t *testing.T) {\n\t\t\t\tredScore := Score{Fouls: tc.ownFouls}\n\t\t\t\tblueScore := Score{Fouls: tc.opponentFouls}\n\t\t\t\tredSummary := redScore.Summarize(&blueScore)\n\t\t\t\tassert.Equal(t, tc.expectedCoralBonus, redSummary.CoralBonusRankingPoint)\n\t\t\t\tassert.Equal(t, tc.expectedBargeBonus, redSummary.BargeBonusRankingPoint)\n\n\t\t\t\t// Count expected total bonus ranking points.\n\t\t\t\texpectedBonusRankingPoints := 0\n\t\t\t\tif tc.expectedCoralBonus {\n\t\t\t\t\texpectedBonusRankingPoints++\n\t\t\t\t}\n\t\t\t\tif tc.expectedBargeBonus {\n\t\t\t\t\texpectedBonusRankingPoints++\n\t\t\t\t}\n\t\t\t\tassert.Equal(t, expectedBonusRankingPoints, redSummary.BonusRankingPoints)\n\t\t\t},\n\t\t)\n\t}\n}\n\nfunc TestScoreEquals(t *testing.T) {\n\tscore1 := TestScore1()\n\tscore2 := TestScore1()\n\tassert.True(t, score1.Equals(score2))\n\tassert.True(t, score2.Equals(score1))\n\n\tscore3 := TestScore2()\n\tassert.False(t, score1.Equals(score3))\n\tassert.False(t, score3.Equals(score1))\n\n\tscore2 = TestScore1()\n\tscore2.RobotsBypassed[0] = true\n\tassert.False(t, score1.Equals(score2))\n\tassert.False(t, score2.Equals(score1))\n\n\tscore2 = TestScore1()\n\tscore2.LeaveStatuses[0] = false\n\tassert.False(t, score1.Equals(score2))\n\tassert.False(t, score2.Equals(score1))\n\n\tscore2 = TestScore1()\n\tscore2.Reef.TroughFar = 5\n\tassert.False(t, score1.Equals(score2))\n\tassert.False(t, score2.Equals(score1))\n\n\tscore2 = TestScore1()\n\tscore2.BargeAlgae = 9\n\tassert.False(t, score1.Equals(score2))\n\tassert.False(t, score2.Equals(score1))\n\n\tscore2 = TestScore1()\n\tscore2.ProcessorAlgae = 3\n\tassert.False(t, score1.Equals(score2))\n\tassert.False(t, score2.Equals(score1))\n\n\tscore2 = TestScore1()\n\tscore2.EndgameStatuses[1] = EndgameParked\n\tassert.False(t, score1.Equals(score2))\n\tassert.False(t, score2.Equals(score1))\n\n\tscore2 = TestScore1()\n\tscore2.Fouls = []Foul{}\n\tassert.False(t, score1.Equals(score2))\n\tassert.False(t, score2.Equals(score1))\n\n\tscore2 = TestScore1()\n\tscore2.Fouls[0].IsMajor = false\n\tassert.False(t, score1.Equals(score2))\n\tassert.False(t, score2.Equals(score1))\n\n\tscore2 = TestScore1()\n\tscore2.Fouls[0].TeamId += 1\n\tassert.False(t, score1.Equals(score2))\n\tassert.False(t, score2.Equals(score1))\n\n\tscore2 = TestScore1()\n\tscore2.Fouls[0].RuleId = 1\n\tassert.False(t, score1.Equals(score2))\n\tassert.False(t, score2.Equals(score1))\n\n\tscore2 = TestScore1()\n\tscore2.PlayoffDq = !score2.PlayoffDq\n\tassert.False(t, score1.Equals(score2))\n\tassert.False(t, score2.Equals(score1))\n}\n"
  },
  {
    "path": "game/test_helpers.go",
    "content": "// Copyright 2017 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Helper methods for use in tests in this package and others.\n\npackage game\n\nfunc TestScore1() *Score {\n\tfouls := []Foul{\n\t\t{1, true, 25, 16},\n\t\t{2, false, 1868, 13},\n\t\t{3, false, 1868, 13},\n\t\t{4, true, 25, 15},\n\t\t{5, true, 25, 15},\n\t\t{6, true, 25, 15},\n\t\t{7, true, 25, 15},\n\t}\n\treturn &Score{\n\t\tRobotsBypassed: [3]bool{false, false, true},\n\t\tLeaveStatuses:  [3]bool{true, true, false},\n\t\tReef: Reef{\n\t\t\tAutoBranches:   [3][12]bool{{true}},\n\t\t\tBranches:       [3][12]bool{{true, true}, {true, true, true}},\n\t\t\tAutoTroughNear: 0,\n\t\t\tAutoTroughFar:  1,\n\t\t\tTroughNear:     3,\n\t\t\tTroughFar:      4,\n\t\t},\n\t\tBargeAlgae:      7,\n\t\tProcessorAlgae:  2,\n\t\tEndgameStatuses: [3]EndgameStatus{EndgameParked, EndgameNone, EndgameDeepCage},\n\t\tFouls:           fouls,\n\t\tPlayoffDq:       false,\n\t}\n}\n\nfunc TestScore2() *Score {\n\treturn &Score{\n\t\tRobotsBypassed: [3]bool{false, false, false},\n\t\tLeaveStatuses:  [3]bool{false, true, false},\n\t\tReef: Reef{\n\t\t\tAutoBranches:   [3][12]bool{{}, {}, {true, true, true, true}},\n\t\t\tBranches:       [3][12]bool{{true, true, true}, {true, true, true, true, true}, {true, true, true}},\n\t\t\tAutoTroughNear: 2,\n\t\t\tAutoTroughFar:  1,\n\t\t\tTroughNear:     10,\n\t\t\tTroughFar:      5,\n\t\t},\n\t\tBargeAlgae:      9,\n\t\tProcessorAlgae:  1,\n\t\tEndgameStatuses: [3]EndgameStatus{EndgameDeepCage, EndgameShallowCage, EndgameShallowCage},\n\t\tFouls:           []Foul{},\n\t\tPlayoffDq:       false,\n\t}\n}\n\nfunc TestRanking1() *Ranking {\n\treturn &Ranking{254, 1, 0, RankingFields{20, 625, 90, 554, 12, 0.254, 3, 2, 1, 0, 10}}\n}\n\nfunc TestRanking2() *Ranking {\n\treturn &Ranking{1114, 2, 1, RankingFields{18, 700, 625, 90, 23, 0.1114, 1, 3, 2, 0, 10}}\n}\n"
  },
  {
    "path": "go.mod",
    "content": "module github.com/Team254/cheesy-arena\n\ngo 1.23.0\n\nrequire (\n\tgithub.com/dchest/uniuri v1.2.0\n\tgithub.com/goburrow/modbus v0.1.0\n\tgithub.com/google/uuid v1.3.0\n\tgithub.com/gorilla/websocket v1.5.0\n\tgithub.com/jung-kurt/gofpdf v1.16.2\n\tgithub.com/mitchellh/mapstructure v1.5.0\n\tgithub.com/stretchr/testify v1.8.2\n\tgo.etcd.io/bbolt v1.3.7\n\tgolang.org/x/crypto v0.35.0\n)\n\nrequire (\n\tgithub.com/davecgh/go-spew v1.1.1 // indirect\n\tgithub.com/goburrow/serial v0.1.0 // indirect\n\tgithub.com/pmezard/go-difflib v1.0.0 // indirect\n\tgolang.org/x/sys v0.30.0 // indirect\n\tgopkg.in/yaml.v3 v3.0.1 // indirect\n)\n"
  },
  {
    "path": "go.sum",
    "content": "github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/dchest/uniuri v1.2.0 h1:koIcOUdrTIivZgSLhHQvKgqdWZq5d7KdMEWF1Ud6+5g=\ngithub.com/dchest/uniuri v1.2.0/go.mod h1:fSzm4SLHzNZvWLvWJew423PhAzkpNQYq+uNLq4kxhkY=\ngithub.com/goburrow/modbus v0.1.0 h1:DejRZY73nEM6+bt5JSP6IsFolJ9dVcqxsYbpLbeW/ro=\ngithub.com/goburrow/modbus v0.1.0/go.mod h1:Kx552D5rLIS8E7TyUwQ/UdHEqvX5T8tyiGBTlzMcZBg=\ngithub.com/goburrow/serial v0.1.0 h1:v2T1SQa/dlUqQiYIT8+Cu7YolfqAi3K96UmhwYyuSrA=\ngithub.com/goburrow/serial v0.1.0/go.mod h1:sAiqG0nRVswsm1C97xsttiYCzSLBmUZ/VSlVLZJ8haA=\ngithub.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=\ngithub.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=\ngithub.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=\ngithub.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=\ngithub.com/jung-kurt/gofpdf v1.16.2 h1:jgbatWHfRlPYiK85qgevsZTHviWXKwB1TTiKdz5PtRc=\ngithub.com/jung-kurt/gofpdf v1.16.2/go.mod h1:1hl7y57EsiPAkLbOwzpzqgx1A30nQCk/YmFV8S2vmK0=\ngithub.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=\ngithub.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=\ngithub.com/phpdave11/gofpdi v1.0.7/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=\ngithub.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=\ngithub.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=\ngithub.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=\ngithub.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=\ngithub.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=\ngo.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ=\ngo.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw=\ngolang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs=\ngolang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ=\ngolang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=\ngolang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=\ngolang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=\ngolang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU=\ngolang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\n"
  },
  {
    "path": "main.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\n// Go version 1.22 or newer is required.\n//go:build go1.22\n\npackage main\n\nimport (\n\t\"flag\"\n\t\"github.com/Team254/cheesy-arena/field\"\n\t\"github.com/Team254/cheesy-arena/network\"\n\t\"github.com/Team254/cheesy-arena/web\"\n\t\"log\"\n)\n\nconst eventDbPath = \"./event.db\"\nconst httpPort = 8080\n\n// Main entry point for the application.\nfunc main() {\n\tarena, err := field.NewArena(eventDbPath)\n\tif err != nil {\n\t\tlog.Fatalln(\"Error during startup: \", err)\n\t}\n\n\tflag.StringVar(&network.ServerIpAddress, \"serverIP\", network.DefaultServerIpAddress, \"Sets the FMS server IP\")\n\tflag.Parse()\n\n\t// Start the web server in a separate goroutine.\n\tweb := web.NewWeb(arena)\n\tgo web.ServeWebInterface(httpPort)\n\n\t// Run the arena state machine in the main thread.\n\tarena.Run()\n}\n"
  },
  {
    "path": "model/alliance.go",
    "content": "// Copyright 2022 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model and datastore CRUD methods for a playoff alliance.\n\npackage model\n\nimport \"sort\"\n\ntype Alliance struct {\n\tId      int `db:\"id,manual\"`\n\tTeamIds []int\n\tLineup  [3]int\n}\n\ntype AllianceSelectionRankedTeam struct {\n\tRank   int\n\tTeamId int\n\tPicked bool\n}\n\nfunc (database *Database) CreateAlliance(alliance *Alliance) error {\n\treturn database.allianceTable.create(alliance)\n}\n\nfunc (database *Database) GetAllianceById(id int) (*Alliance, error) {\n\treturn database.allianceTable.getById(id)\n}\n\nfunc (database *Database) UpdateAlliance(alliance *Alliance) error {\n\treturn database.allianceTable.update(alliance)\n}\n\nfunc (database *Database) DeleteAlliance(id int) error {\n\treturn database.allianceTable.delete(id)\n}\n\nfunc (database *Database) TruncateAlliances() error {\n\treturn database.allianceTable.truncate()\n}\n\nfunc (database *Database) GetAllAlliances() ([]Alliance, error) {\n\talliances, err := database.allianceTable.getAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tsort.Slice(\n\t\talliances,\n\t\tfunc(i, j int) bool {\n\t\t\treturn alliances[i].Id < alliances[j].Id\n\t\t},\n\t)\n\treturn alliances, nil\n}\n\n// Updates the alliance, if necessary, to include whoever played in the match, in case there was a substitute.\nfunc (database *Database) UpdateAllianceFromMatch(allianceId int, matchTeamIds [3]int) error {\n\talliance, err := database.GetAllianceById(allianceId)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tchanged := false\n\tif matchTeamIds != alliance.Lineup {\n\t\talliance.Lineup = matchTeamIds\n\t\tchanged = true\n\t}\n\n\tfor _, teamId := range matchTeamIds {\n\t\tfound := false\n\t\tfor _, allianceTeamId := range alliance.TeamIds {\n\t\t\tif teamId == allianceTeamId {\n\t\t\t\tfound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !found {\n\t\t\talliance.TeamIds = append(alliance.TeamIds, teamId)\n\t\t\tchanged = true\n\t\t}\n\t}\n\n\tif changed {\n\t\treturn database.UpdateAlliance(alliance)\n\t}\n\treturn nil\n}\n\n// Returns two arrays containing the IDs of any teams for the red and blue alliances, respectively, who are part of the\n// playoff alliance but are not playing in the given match.\n// If the given match isn't a playoff match, empty arrays are returned.\nfunc (database *Database) GetOffFieldTeamIds(match *Match) ([]int, []int, error) {\n\tredOffFieldTeams, err := database.getOffFieldTeamIdsForAlliance(\n\t\tmatch.PlayoffRedAlliance, match.Red1, match.Red2, match.Red3,\n\t)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tblueOffFieldTeams, err := database.getOffFieldTeamIdsForAlliance(\n\t\tmatch.PlayoffBlueAlliance, match.Blue1, match.Blue2, match.Blue3,\n\t)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\treturn redOffFieldTeams, blueOffFieldTeams, nil\n}\n\nfunc (database *Database) getOffFieldTeamIdsForAlliance(allianceId int, teamId1, teamId2, teamId3 int) ([]int, error) {\n\tif allianceId == 0 {\n\t\treturn []int{}, nil\n\t}\n\n\talliance, err := database.GetAllianceById(allianceId)\n\tif alliance == nil || err != nil {\n\t\treturn nil, err\n\t}\n\toffFieldTeamIds := []int{}\n\tfor _, allianceTeamId := range alliance.TeamIds {\n\t\tif allianceTeamId != teamId1 && allianceTeamId != teamId2 && allianceTeamId != teamId3 {\n\t\t\toffFieldTeamIds = append(offFieldTeamIds, allianceTeamId)\n\t\t}\n\t}\n\treturn offFieldTeamIds, nil\n}\n"
  },
  {
    "path": "model/alliance_test.go",
    "content": "// Copyright 2022 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage model\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestGetNonexistentAlliance(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\talliance, err := db.GetAllianceById(1114)\n\tassert.Nil(t, err)\n\tassert.Nil(t, alliance)\n}\n\nfunc TestAllianceCrud(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\talliance := Alliance{Id: 3, TeamIds: []int{254, 1114, 296, 1503}, Lineup: [3]int{1114, 254, 296}}\n\tassert.Nil(t, db.CreateAlliance(&alliance))\n\talliance2, err := db.GetAllianceById(3)\n\tassert.Nil(t, err)\n\tassert.Equal(t, alliance, *alliance2)\n\n\talliance.TeamIds = append(alliance.TeamIds, 296)\n\tassert.Nil(t, db.UpdateAlliance(&alliance))\n\talliance2, err = db.GetAllianceById(3)\n\tassert.Nil(t, err)\n\tassert.Equal(t, alliance, *alliance2)\n\n\tassert.Nil(t, db.DeleteAlliance(alliance.Id))\n\talliance2, err = db.GetAllianceById(3)\n\tassert.Nil(t, err)\n\tassert.Nil(t, alliance2)\n}\n\nfunc TestUpdateAllianceFromMatch(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\talliance := Alliance{Id: 3, TeamIds: []int{254, 1114, 296, 1503}, Lineup: [3]int{1114, 254, 296}}\n\tassert.Nil(t, db.CreateAlliance(&alliance))\n\tassert.Nil(t, db.UpdateAllianceFromMatch(3, [3]int{1503, 188, 296}))\n\talliance2, err := db.GetAllianceById(3)\n\tassert.Nil(t, err)\n\tassert.Equal(t, []int{254, 1114, 296, 1503, 188}, alliance2.TeamIds)\n\tassert.Equal(t, [3]int{1503, 188, 296}, alliance2.Lineup)\n}\n\nfunc TestTruncateAllianceTeams(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\talliance := Alliance{Id: 1, TeamIds: []int{148, 118, 125}, Lineup: [3]int{118, 148, 125}}\n\tassert.Nil(t, db.CreateAlliance(&alliance))\n\tassert.Nil(t, db.TruncateAlliances())\n\talliance2, err := db.GetAllianceById(1)\n\tassert.Nil(t, err)\n\tassert.Nil(t, alliance2)\n}\n\nfunc TestGetAllAlliances(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\talliances, err := db.GetAllAlliances()\n\tassert.Nil(t, err)\n\tassert.Empty(t, alliances)\n\n\tBuildTestAlliances(db)\n\talliances, err = db.GetAllAlliances()\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 2, len(alliances)) {\n\t\tassert.Equal(t, 1, alliances[0].Id)\n\t\tassert.Equal(t, []int{254, 469, 2848, 74, 3175}, alliances[0].TeamIds)\n\t\tassert.Equal(t, 2, alliances[1].Id)\n\t\tassert.Equal(t, []int{1718, 2451, 1619}, alliances[1].TeamIds)\n\t}\n}\n\nfunc TestGetOffFieldTeamIds(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\tBuildTestAlliances(db)\n\n\tmatch := &Match{\n\t\tPlayoffRedAlliance:  1,\n\t\tPlayoffBlueAlliance: 2,\n\t\tRed1:                469,\n\t\tRed2:                254,\n\t\tRed3:                2848,\n\t\tBlue1:               1619,\n\t\tBlue2:               1718,\n\t\tBlue3:               2451,\n\t}\n\n\tredOffFieldTeams, blueOffFieldTeams, err := db.GetOffFieldTeamIds(match)\n\tassert.Nil(t, err)\n\tassert.Equal(t, []int{74, 3175}, redOffFieldTeams)\n\tassert.Equal(t, []int{}, blueOffFieldTeams)\n\n\tmatch.Red1 = 74\n\tmatch.Red2 = 3175\n\tredOffFieldTeams, blueOffFieldTeams, err = db.GetOffFieldTeamIds(match)\n\tassert.Nil(t, err)\n\tassert.Equal(t, []int{254, 469}, redOffFieldTeams)\n\tassert.Equal(t, []int{}, blueOffFieldTeams)\n\n\tmatch.PlayoffRedAlliance = 0\n\tmatch.PlayoffBlueAlliance = 0\n\tredOffFieldTeams, blueOffFieldTeams, err = db.GetOffFieldTeamIds(match)\n\tassert.Nil(t, err)\n\tassert.Equal(t, []int{}, redOffFieldTeams)\n\tassert.Equal(t, []int{}, blueOffFieldTeams)\n\n\tmatch = &Match{\n\t\tPlayoffRedAlliance:  2,\n\t\tPlayoffBlueAlliance: 1,\n\t\tRed1:                1718,\n\t\tRed2:                2451,\n\t\tRed3:                1619,\n\t\tBlue1:               3175,\n\t\tBlue2:               74,\n\t\tBlue3:               2848,\n\t}\n\tredOffFieldTeams, blueOffFieldTeams, err = db.GetOffFieldTeamIds(match)\n\tassert.Nil(t, err)\n\tassert.Equal(t, []int{}, redOffFieldTeams)\n\tassert.Equal(t, []int{254, 469}, blueOffFieldTeams)\n}\n"
  },
  {
    "path": "model/award.go",
    "content": "// Copyright 2019 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model and datastore CRUD methods for an award.\n\npackage model\n\nimport \"sort\"\n\ntype Award struct {\n\tId         int `db:\"id\"`\n\tType       AwardType\n\tAwardName  string\n\tTeamId     int\n\tPersonName string\n}\n\ntype AwardType int\n\nconst (\n\tJudgedAward AwardType = iota\n\tFinalistAward\n\tWinnerAward\n)\n\nfunc (database *Database) CreateAward(award *Award) error {\n\treturn database.awardTable.create(award)\n}\n\nfunc (database *Database) GetAwardById(id int) (*Award, error) {\n\treturn database.awardTable.getById(id)\n}\n\nfunc (database *Database) UpdateAward(award *Award) error {\n\treturn database.awardTable.update(award)\n}\n\nfunc (database *Database) DeleteAward(id int) error {\n\treturn database.awardTable.delete(id)\n}\n\nfunc (database *Database) TruncateAwards() error {\n\treturn database.awardTable.truncate()\n}\n\nfunc (database *Database) GetAllAwards() ([]Award, error) {\n\tawards, err := database.awardTable.getAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tsort.Slice(\n\t\tawards,\n\t\tfunc(i, j int) bool {\n\t\t\treturn awards[i].Id < awards[j].Id\n\t\t},\n\t)\n\treturn awards, nil\n}\n\nfunc (database *Database) GetAwardsByType(awardType AwardType) ([]Award, error) {\n\tawards, err := database.GetAllAwards()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar matchingAwards []Award\n\tfor _, award := range awards {\n\t\tif award.Type == awardType {\n\t\t\tmatchingAwards = append(matchingAwards, award)\n\t\t}\n\t}\n\treturn matchingAwards, nil\n}\n"
  },
  {
    "path": "model/award_test.go",
    "content": "// Copyright 2019 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage model\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestGetNonexistentAward(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\taward, err := db.GetAwardById(1114)\n\tassert.Nil(t, err)\n\tassert.Nil(t, award)\n}\n\nfunc TestAwardCrud(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\taward := Award{0, JudgedAward, \"Saftey Award\", 254, \"\"}\n\tassert.Nil(t, db.CreateAward(&award))\n\taward2, err := db.GetAwardById(1)\n\tassert.Nil(t, err)\n\tassert.Equal(t, award, *award2)\n\n\taward2.Id = 0\n\taward2.AwardName = \"Spirit Award\"\n\tassert.Nil(t, db.CreateAward(award2))\n\tawards, err := db.GetAllAwards()\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 2, len(awards)) {\n\t\tassert.Equal(t, award, awards[0])\n\t\tassert.Equal(t, *award2, awards[1])\n\t}\n\n\taward.TeamId = 0\n\taward.PersonName = \"Travus Cubington\"\n\tassert.Nil(t, db.UpdateAward(&award))\n\taward2, err = db.GetAwardById(1)\n\tassert.Nil(t, err)\n\tassert.Equal(t, award.TeamId, award2.TeamId)\n\tassert.Equal(t, award.PersonName, award2.PersonName)\n\n\tassert.Nil(t, db.DeleteAward(award.Id))\n\taward2, err = db.GetAwardById(1)\n\tassert.Nil(t, err)\n\tassert.Nil(t, award2)\n}\n\nfunc TestTruncateAwards(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\taward := Award{0, JudgedAward, \"Saftey Award\", 254, \"\"}\n\tdb.CreateAward(&award)\n\tdb.TruncateAwards()\n\taward2, err := db.GetAwardById(1)\n\tassert.Nil(t, err)\n\tassert.Nil(t, award2)\n}\n\nfunc TestGetAwardsByType(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\taward1 := Award{0, WinnerAward, \"Event Winner\", 1114, \"\"}\n\tdb.CreateAward(&award1)\n\taward2 := Award{0, FinalistAward, \"Event Finalist\", 2056, \"\"}\n\tdb.CreateAward(&award2)\n\taward3 := Award{0, JudgedAward, \"Saftey Award\", 254, \"\"}\n\tdb.CreateAward(&award3)\n\taward4 := Award{0, WinnerAward, \"Event Winner\", 254, \"\"}\n\tdb.CreateAward(&award4)\n\n\tawards, err := db.GetAwardsByType(JudgedAward)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 1, len(awards)) {\n\t\tassert.Equal(t, award3, awards[0])\n\t}\n\tawards, err = db.GetAwardsByType(FinalistAward)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 1, len(awards)) {\n\t\tassert.Equal(t, award2, awards[0])\n\t}\n\tawards, err = db.GetAwardsByType(WinnerAward)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 2, len(awards)) {\n\t\tassert.Equal(t, award1, awards[0])\n\t\tassert.Equal(t, award4, awards[1])\n\t}\n}\n"
  },
  {
    "path": "model/database.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Functions for manipulating the per-event Bolt datastore.\n\npackage model\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"go.etcd.io/bbolt\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"time\"\n)\n\nconst backupsDir = \"db/backups\"\n\nvar BaseDir = \".\" // Mutable for testing\n\ntype Database struct {\n\tPath                string\n\tbolt                *bbolt.DB\n\tallianceTable       *table[Alliance]\n\tawardTable          *table[Award]\n\teventSettingsTable  *table[EventSettings]\n\tjudgingSlotTable    *table[JudgingSlot]\n\tlowerThirdTable     *table[LowerThird]\n\tmatchTable          *table[Match]\n\tmatchResultTable    *table[MatchResult]\n\trankingTable        *table[game.Ranking]\n\tscheduleBlockTable  *table[ScheduleBlock]\n\tscheduledBreakTable *table[ScheduledBreak]\n\tsponsorSlideTable   *table[SponsorSlide]\n\tteamTable           *table[Team]\n\tuserSessionTable    *table[UserSession]\n}\n\n// Opens the Bolt database at the given path, creating it if it doesn't exist.\nfunc OpenDatabase(filename string) (*Database, error) {\n\tdatabase := Database{Path: filename}\n\tvar err error\n\tdatabase.bolt, err = bbolt.Open(database.Path, 0644, &bbolt.Options{NoSync: true, Timeout: time.Second})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Register tables.\n\tif database.allianceTable, err = newTable[Alliance](&database); err != nil {\n\t\treturn nil, err\n\t}\n\tif database.awardTable, err = newTable[Award](&database); err != nil {\n\t\treturn nil, err\n\t}\n\tif database.eventSettingsTable, err = newTable[EventSettings](&database); err != nil {\n\t\treturn nil, err\n\t}\n\tif database.judgingSlotTable, err = newTable[JudgingSlot](&database); err != nil {\n\t\treturn nil, err\n\t}\n\tif database.lowerThirdTable, err = newTable[LowerThird](&database); err != nil {\n\t\treturn nil, err\n\t}\n\tif database.matchTable, err = newTable[Match](&database); err != nil {\n\t\treturn nil, err\n\t}\n\tif database.matchResultTable, err = newTable[MatchResult](&database); err != nil {\n\t\treturn nil, err\n\t}\n\tif database.rankingTable, err = newTable[game.Ranking](&database); err != nil {\n\t\treturn nil, err\n\t}\n\tif database.scheduleBlockTable, err = newTable[ScheduleBlock](&database); err != nil {\n\t\treturn nil, err\n\t}\n\tif database.scheduledBreakTable, err = newTable[ScheduledBreak](&database); err != nil {\n\t\treturn nil, err\n\t}\n\tif database.sponsorSlideTable, err = newTable[SponsorSlide](&database); err != nil {\n\t\treturn nil, err\n\t}\n\tif database.teamTable, err = newTable[Team](&database); err != nil {\n\t\treturn nil, err\n\t}\n\tif database.userSessionTable, err = newTable[UserSession](&database); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &database, nil\n}\n\nfunc (database *Database) Close() error {\n\treturn database.bolt.Close()\n}\n\n// Creates a copy of the current database and saves it to the backups directory.\nfunc (database *Database) Backup(eventName, reason string) error {\n\tbackupsPath := filepath.Join(BaseDir, backupsDir)\n\terr := os.MkdirAll(backupsPath, 0755)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfilename := fmt.Sprintf(\n\t\t\"%s/%s_%s_%s.db\",\n\t\tbackupsPath,\n\t\tstrings.Replace(eventName, \" \", \"_\", -1),\n\t\ttime.Now().Format(\"20060102150405\"),\n\t\treason,\n\t)\n\n\tdest, err := os.Create(filename)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer dest.Close()\n\n\tif err = database.WriteBackup(dest); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Takes a snapshot of Bolt database and writes it to the given writer.\nfunc (database *Database) WriteBackup(writer io.Writer) error {\n\treturn database.bolt.View(\n\t\tfunc(tx *bbolt.Tx) error {\n\t\t\t_, err := tx.WriteTo(writer)\n\t\t\treturn err\n\t\t},\n\t)\n}\n"
  },
  {
    "path": "model/database_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage model\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestOpenUnreachableDatabase(t *testing.T) {\n\t_, err := OpenDatabase(\"nonexistentdir/test.db\")\n\tassert.NotNil(t, err)\n}\n\nfunc setupTestDb(t *testing.T) *Database {\n\treturn SetupTestDb(t)\n}\n"
  },
  {
    "path": "model/event_settings.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model and datastore read/write methods for event-level configuration.\n\npackage model\n\nimport (\n\t\"strings\"\n\n\t\"github.com/Team254/cheesy-arena/game\"\n)\n\ntype PlayoffType int\n\nconst (\n\tDoubleEliminationPlayoff PlayoffType = iota\n\tSingleEliminationPlayoff\n)\n\n// Configured here to avoid circular import dependencies.\nvar (\n\tsccDefaultUpCommands = []string{\n\t\t\"configure terminal\",\n\t\t\"interface range gigabitEthernet 1/2-4\",\n\t\t\"no shutdown\",\n\t\t\"exit\",\n\t\t\"exit\",\n\t\t\"exit\",\n\t}\n\tsccDefaultDownCommands = []string{\n\t\t\"configure terminal\",\n\t\t\"interface range gigabitEthernet 1/2-4\",\n\t\t\"shutdown\",\n\t\t\"exit\",\n\t\t\"exit\",\n\t\t\"exit\",\n\t}\n)\n\ntype EventSettings struct {\n\tId                               int `db:\"id\"`\n\tName                             string\n\tPlayoffType                      PlayoffType\n\tNumPlayoffAlliances              int\n\tSelectionRound2Order             string\n\tSelectionRound3Order             string\n\tSelectionShowUnpickedTeams       bool\n\tTbaDownloadEnabled               bool\n\tTbaPublishingEnabled             bool\n\tTbaEventCode                     string\n\tTbaSecretId                      string\n\tTbaSecret                        string\n\tNexusEnabled                     bool\n\tNetworkSecurityEnabled           bool\n\tApAddress                        string\n\tApPassword                       string\n\tApChannel                        int\n\tSwitchAddress                    string\n\tSwitchPassword                   string\n\tSCCManagementEnabled             bool\n\tRedSCCAddress                    string\n\tBlueSCCAddress                   string\n\tSCCUsername                      string\n\tSCCPassword                      string\n\tSCCUpCommands                    string\n\tSCCDownCommands                  string\n\tPlcAddress                       string\n\tAdminPassword                    string\n\tTeamSignRed1Id                   int\n\tTeamSignRed2Id                   int\n\tTeamSignRed3Id                   int\n\tTeamSignRedTimerId               int\n\tTeamSignBlue1Id                  int\n\tTeamSignBlue2Id                  int\n\tTeamSignBlue3Id                  int\n\tTeamSignBlueTimerId              int\n\tUseLiteUdpPort                   bool\n\tBlackmagicAddresses              string\n\tCompanionAddress                 string\n\tCompanionPort                    int\n\tCompanionMatchPreviewPage        int\n\tCompanionMatchPreviewRow         int\n\tCompanionMatchPreviewColumn      int\n\tCompanionSetAudiencePage         int\n\tCompanionSetAudienceRow          int\n\tCompanionSetAudienceColumn       int\n\tCompanionMatchStartPage          int\n\tCompanionMatchStartRow           int\n\tCompanionMatchStartColumn        int\n\tCompanionTeleopStartPage         int\n\tCompanionTeleopStartRow          int\n\tCompanionTeleopStartColumn       int\n\tCompanionEndgameStartPage        int\n\tCompanionEndgameStartRow         int\n\tCompanionEndgameStartColumn      int\n\tCompanionMatchEndPage            int\n\tCompanionMatchEndRow             int\n\tCompanionMatchEndColumn          int\n\tCompanionPostResultPage          int\n\tCompanionPostResultRow           int\n\tCompanionPostResultColumn        int\n\tCompanionAllianceSelectionPage   int\n\tCompanionAllianceSelectionRow    int\n\tCompanionAllianceSelectionColumn int\n\tCompanionMatchAbortPage          int\n\tCompanionMatchAbortRow           int\n\tCompanionMatchAbortColumn        int\n\tWarmupDurationSec                int\n\tAutoDurationSec                  int\n\tPauseDurationSec                 int\n\tTeleopDurationSec                int\n\tWarningRemainingDurationSec      int\n\tAutoBonusCoralThreshold          int\n\tCoralBonusPerLevelThreshold      int\n\tCoralBonusCoopEnabled            bool\n\tBargeBonusPointThreshold         int\n\tIncludeAlgaeInBargeBonus         bool\n}\n\nfunc (database *Database) GetEventSettings() (*EventSettings, error) {\n\tallEventSettings, err := database.eventSettingsTable.getAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(allEventSettings) == 1 {\n\t\treturn &allEventSettings[0], nil\n\t}\n\n\t// Database record doesn't exist yet; create it now.\n\teventSettings := EventSettings{\n\t\tName:                        \"Untitled Event\",\n\t\tPlayoffType:                 DoubleEliminationPlayoff,\n\t\tNumPlayoffAlliances:         8,\n\t\tSelectionRound2Order:        \"L\",\n\t\tSelectionRound3Order:        \"\",\n\t\tSelectionShowUnpickedTeams:  true,\n\t\tTbaDownloadEnabled:          true,\n\t\tApChannel:                   36,\n\t\tSCCUpCommands:               strings.Join(sccDefaultUpCommands, \"\\n\"),\n\t\tSCCDownCommands:             strings.Join(sccDefaultDownCommands, \"\\n\"),\n\t\tCompanionAddress:            \"\",\n\t\tWarmupDurationSec:           game.MatchTiming.WarmupDurationSec,\n\t\tAutoDurationSec:             game.MatchTiming.AutoDurationSec,\n\t\tPauseDurationSec:            game.MatchTiming.PauseDurationSec,\n\t\tTeleopDurationSec:           game.MatchTiming.TeleopDurationSec,\n\t\tWarningRemainingDurationSec: game.MatchTiming.WarningRemainingDurationSec,\n\t\tAutoBonusCoralThreshold:     game.AutoBonusCoralThreshold,\n\t\tCoralBonusPerLevelThreshold: game.CoralBonusPerLevelThreshold,\n\t\tCoralBonusCoopEnabled:       game.CoralBonusCoopEnabled,\n\t\tBargeBonusPointThreshold:    game.BargeBonusPointThreshold,\n\t\tIncludeAlgaeInBargeBonus:    game.IncludeAlgaeInBargeBonus,\n\t}\n\n\tif err := database.eventSettingsTable.create(&eventSettings); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &eventSettings, nil\n}\n\nfunc (database *Database) UpdateEventSettings(eventSettings *EventSettings) error {\n\treturn database.eventSettingsTable.update(eventSettings)\n}\n"
  },
  {
    "path": "model/event_settings_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage model\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestEventSettingsReadWrite(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\teventSettings, err := db.GetEventSettings()\n\tassert.Nil(t, err)\n\tassert.Equal(\n\t\tt,\n\t\tEventSettings{\n\t\t\tId:                          1,\n\t\t\tName:                        \"Untitled Event\",\n\t\t\tPlayoffType:                 DoubleEliminationPlayoff,\n\t\t\tNumPlayoffAlliances:         8,\n\t\t\tSelectionRound2Order:        \"L\",\n\t\t\tSelectionRound3Order:        \"\",\n\t\t\tSelectionShowUnpickedTeams:  true,\n\t\t\tTbaDownloadEnabled:          true,\n\t\t\tApChannel:                   36,\n\t\t\tSCCUpCommands:               \"configure terminal\\ninterface range gigabitEthernet 1/2-4\\nno shutdown\\nexit\\nexit\\nexit\",\n\t\t\tSCCDownCommands:             \"configure terminal\\ninterface range gigabitEthernet 1/2-4\\nshutdown\\nexit\\nexit\\nexit\",\n\t\t\tWarmupDurationSec:           0,\n\t\t\tAutoDurationSec:             15,\n\t\t\tPauseDurationSec:            3,\n\t\t\tTeleopDurationSec:           135,\n\t\t\tWarningRemainingDurationSec: 20,\n\t\t\tAutoBonusCoralThreshold:     1,\n\t\t\tCoralBonusPerLevelThreshold: 7,\n\t\t\tCoralBonusCoopEnabled:       true,\n\t\t\tBargeBonusPointThreshold:    16,\n\t\t\tIncludeAlgaeInBargeBonus:    false,\n\t\t\tCompanionAddress:            \"\",\n\t\t\tCompanionPort:               0,\n\t\t},\n\t\t*eventSettings,\n\t)\n\n\teventSettings.Name = \"Chezy Champs\"\n\teventSettings.NumPlayoffAlliances = 6\n\teventSettings.SelectionRound2Order = \"F\"\n\teventSettings.SelectionRound3Order = \"L\"\n\terr = db.UpdateEventSettings(eventSettings)\n\tassert.Nil(t, err)\n\teventSettings2, err := db.GetEventSettings()\n\tassert.Nil(t, err)\n\tassert.Equal(t, eventSettings, eventSettings2)\n}\n"
  },
  {
    "path": "model/judging_slot.go",
    "content": "// Copyright 2025 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model and datastore CRUD methods for a judging slot.\n\npackage model\n\nimport (\n\t\"sort\"\n\t\"time\"\n)\n\ntype JudgingSlot struct {\n\tId                  int `db:\"id\"`\n\tTime                time.Time\n\tTeamId              int\n\tPreviousMatchNumber int\n\tPreviousMatchTime   time.Time\n\tNextMatchNumber     int\n\tNextMatchTime       time.Time\n\tJudgeNumber         int\n}\n\nfunc (database *Database) CreateJudgingSlot(judgingSlot *JudgingSlot) error {\n\treturn database.judgingSlotTable.create(judgingSlot)\n}\n\nfunc (database *Database) TruncateJudgingSlots() error {\n\treturn database.judgingSlotTable.truncate()\n}\n\nfunc (database *Database) GetAllJudgingSlots() ([]JudgingSlot, error) {\n\tjudgingSlots, err := database.judgingSlotTable.getAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tsort.Slice(\n\t\tjudgingSlots,\n\t\tfunc(i, j int) bool {\n\t\t\treturn judgingSlots[i].TeamId < judgingSlots[j].TeamId\n\t\t},\n\t)\n\treturn judgingSlots, nil\n}\n"
  },
  {
    "path": "model/judging_slot_test.go",
    "content": "// Copyright 2025 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage model\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestJudgingSlotCrud(t *testing.T) {\n\tdatabase := setupTestDb(t)\n\n\t// Test creation of a judging slot with all fields populated.\n\tvisitTime := time.Unix(100, 0).UTC()\n\tprevMatchTime := time.Unix(50, 0).UTC()\n\tnextMatchTime := time.Unix(150, 0).UTC()\n\tjudgingSlot := JudgingSlot{\n\t\tTime:                visitTime,\n\t\tTeamId:              1503,\n\t\tPreviousMatchNumber: 5,\n\t\tPreviousMatchTime:   prevMatchTime,\n\t\tNextMatchNumber:     6,\n\t\tNextMatchTime:       nextMatchTime,\n\t\tJudgeNumber:         2,\n\t}\n\tassert.Nil(t, database.CreateJudgingSlot(&judgingSlot))\n\tassert.NotEqual(t, 0, judgingSlot.Id)\n\n\t// Test retrieving all judging slots and verify all fields.\n\tslots, err := database.GetAllJudgingSlots()\n\tassert.Nil(t, err)\n\tassert.Equal(t, 1, len(slots))\n\tassert.Equal(t, visitTime, slots[0].Time)\n\tassert.Equal(t, 1503, slots[0].TeamId)\n\tassert.Equal(t, 5, slots[0].PreviousMatchNumber)\n\tassert.Equal(t, prevMatchTime, slots[0].PreviousMatchTime)\n\tassert.Equal(t, 6, slots[0].NextMatchNumber)\n\tassert.Equal(t, nextMatchTime, slots[0].NextMatchTime)\n\tassert.Equal(t, 2, slots[0].JudgeNumber)\n\n\t// Test creating additional judging slots.\n\tslot1 := JudgingSlot{Time: time.Unix(300, 0), TeamId: 1678, JudgeNumber: 1}\n\tslot2 := JudgingSlot{Time: time.Unix(400, 0), TeamId: 1114, JudgeNumber: 2}\n\tassert.Nil(t, database.CreateJudgingSlot(&slot1))\n\tassert.Nil(t, database.CreateJudgingSlot(&slot2))\n\tslots, err = database.GetAllJudgingSlots()\n\tassert.Nil(t, err)\n\tassert.Equal(t, 3, len(slots))\n\tassert.Equal(t, 1114, slots[0].TeamId)\n\tassert.Equal(t, 1503, slots[1].TeamId)\n\tassert.Equal(t, 1678, slots[2].TeamId)\n\n\t// Test truncating all judging slots.\n\tassert.Nil(t, database.TruncateJudgingSlots())\n\tslots, err = database.GetAllJudgingSlots()\n\tassert.Nil(t, err)\n\tassert.Equal(t, 0, len(slots))\n}\n"
  },
  {
    "path": "model/lower_third.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model and datastore CRUD methods for the text on a lower third slide.\n\npackage model\n\nimport (\n\t\"sort\"\n)\n\ntype LowerThird struct {\n\tId           int `db:\"id\"`\n\tTopText      string\n\tBottomText   string\n\tDisplayOrder int\n\tAwardId      int\n}\n\nfunc (database *Database) CreateLowerThird(lowerThird *LowerThird) error {\n\treturn database.lowerThirdTable.create(lowerThird)\n}\n\nfunc (database *Database) GetLowerThirdById(id int) (*LowerThird, error) {\n\treturn database.lowerThirdTable.getById(id)\n}\n\nfunc (database *Database) UpdateLowerThird(lowerThird *LowerThird) error {\n\treturn database.lowerThirdTable.update(lowerThird)\n}\n\nfunc (database *Database) DeleteLowerThird(id int) error {\n\treturn database.lowerThirdTable.delete(id)\n}\n\nfunc (database *Database) TruncateLowerThirds() error {\n\treturn database.lowerThirdTable.truncate()\n}\n\nfunc (database *Database) GetAllLowerThirds() ([]LowerThird, error) {\n\tlowerThirds, err := database.lowerThirdTable.getAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tsort.Slice(\n\t\tlowerThirds,\n\t\tfunc(i, j int) bool {\n\t\t\treturn lowerThirds[i].DisplayOrder < lowerThirds[j].DisplayOrder\n\t\t},\n\t)\n\treturn lowerThirds, nil\n}\n\nfunc (database *Database) GetLowerThirdsByAwardId(awardId int) ([]LowerThird, error) {\n\tlowerThirds, err := database.GetAllLowerThirds()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar matchingLowerThirds []LowerThird\n\tfor _, lowerThird := range lowerThirds {\n\t\tif lowerThird.AwardId == awardId {\n\t\t\tmatchingLowerThirds = append(matchingLowerThirds, lowerThird)\n\t\t}\n\t}\n\treturn matchingLowerThirds, nil\n}\n\nfunc (database *Database) GetNextLowerThirdDisplayOrder() int {\n\tlowerThirds, err := database.GetAllLowerThirds()\n\tif err != nil {\n\t\treturn 0\n\t}\n\tif len(lowerThirds) == 0 {\n\t\treturn 1\n\t}\n\treturn lowerThirds[len(lowerThirds)-1].DisplayOrder + 1\n}\n"
  },
  {
    "path": "model/lower_third_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage model\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestGetNonexistentLowerThird(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tlowerThird, err := db.GetLowerThirdById(1114)\n\tassert.Nil(t, err)\n\tassert.Nil(t, lowerThird)\n}\n\nfunc TestLowerThirdCrud(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tlowerThirds, err := db.GetAllLowerThirds()\n\tassert.Nil(t, err)\n\tassert.Equal(t, 0, len(lowerThirds))\n\n\tlowerThird := LowerThird{0, \"Top Text\", \"Bottom Text\", 1, 0}\n\tassert.Nil(t, db.CreateLowerThird(&lowerThird))\n\tlowerThird2, err := db.GetLowerThirdById(1)\n\tassert.Nil(t, err)\n\tassert.Equal(t, lowerThird, *lowerThird2)\n\n\tlowerThird.BottomText = \"Blorpy\"\n\tassert.Nil(t, db.UpdateLowerThird(&lowerThird))\n\tlowerThird2, err = db.GetLowerThirdById(1)\n\tassert.Nil(t, err)\n\tassert.Equal(t, lowerThird.BottomText, lowerThird2.BottomText)\n\n\tlowerThirds, err = db.GetAllLowerThirds()\n\tassert.Nil(t, err)\n\tassert.Equal(t, 1, len(lowerThirds))\n\n\tassert.Nil(t, db.DeleteLowerThird(lowerThird.Id))\n\tlowerThird2, err = db.GetLowerThirdById(1)\n\tassert.Nil(t, err)\n\tassert.Nil(t, lowerThird2)\n}\n\nfunc TestTruncateLowerThirds(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tlowerThird := LowerThird{0, \"Top Text\", \"Bottom Text\", 0, 0}\n\tassert.Nil(t, db.CreateLowerThird(&lowerThird))\n\tassert.Nil(t, db.TruncateLowerThirds())\n\tlowerThird2, err := db.GetLowerThirdById(1)\n\tassert.Nil(t, err)\n\tassert.Nil(t, lowerThird2)\n}\n\nfunc TestGetLowerThirdsByAwardId(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tnextDisplayOrder := db.GetNextLowerThirdDisplayOrder()\n\tassert.Equal(t, 1, nextDisplayOrder)\n\tlowerThird1 := LowerThird{0, \"Top Text\", \"Bottom Text\", 1, 0}\n\tassert.Nil(t, db.CreateLowerThird(&lowerThird1))\n\tlowerThird2 := LowerThird{0, \"Award 1\", \"\", 2, 5}\n\tassert.Nil(t, db.CreateLowerThird(&lowerThird2))\n\tlowerThird3 := LowerThird{0, \"Award 2\", \"\", 3, 2}\n\tassert.Nil(t, db.CreateLowerThird(&lowerThird3))\n\tlowerThird4 := LowerThird{0, \"Award 1\", \"Award 1 Winner\", 4, 5}\n\tassert.Nil(t, db.CreateLowerThird(&lowerThird4))\n\tlowerThirds, err := db.GetAllLowerThirds()\n\tassert.Nil(t, err)\n\tassert.Equal(t, 4, len(lowerThirds))\n\tnextDisplayOrder = db.GetNextLowerThirdDisplayOrder()\n\tassert.Equal(t, 5, nextDisplayOrder)\n\n\tlowerThirds, err = db.GetLowerThirdsByAwardId(5)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 2, len(lowerThirds)) {\n\t\tassert.Equal(t, lowerThird2, lowerThirds[0])\n\t\tassert.Equal(t, lowerThird4, lowerThirds[1])\n\t}\n\tlowerThirds, err = db.GetLowerThirdsByAwardId(2)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 1, len(lowerThirds)) {\n\t\tassert.Equal(t, lowerThird3, lowerThirds[0])\n\t}\n\tlowerThirds, err = db.GetLowerThirdsByAwardId(39)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 0, len(lowerThirds))\n}\n"
  },
  {
    "path": "model/match.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model and datastore CRUD methods for a match at an event.\n\npackage model\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"sort\"\n\t\"strings\"\n\t\"time\"\n)\n\n//go:generate stringer -type=MatchType\ntype MatchType int\n\nconst (\n\tTest MatchType = iota\n\tPractice\n\tQualification\n\tPlayoff\n)\n\nfunc (t MatchType) Get() MatchType {\n\treturn t\n}\n\ntype Match struct {\n\tId                  int `db:\"id\"`\n\tType                MatchType\n\tTypeOrder           int\n\tTime                time.Time\n\tLongName            string\n\tShortName           string\n\tNameDetail          string\n\tPlayoffMatchGroupId string\n\tPlayoffRedAlliance  int\n\tPlayoffBlueAlliance int\n\tRed1                int\n\tRed1IsSurrogate     bool\n\tRed2                int\n\tRed2IsSurrogate     bool\n\tRed3                int\n\tRed3IsSurrogate     bool\n\tBlue1               int\n\tBlue1IsSurrogate    bool\n\tBlue2               int\n\tBlue2IsSurrogate    bool\n\tBlue3               int\n\tBlue3IsSurrogate    bool\n\tStartedAt           time.Time\n\tScoreCommittedAt    time.Time\n\tFieldReadyAt        time.Time\n\tStatus              game.MatchStatus\n\tUseTiebreakCriteria bool\n\tTbaMatchKey         TbaMatchKey\n}\n\ntype TbaMatchKey struct {\n\tCompLevel   string\n\tSetNumber   int\n\tMatchNumber int\n}\n\nfunc (database *Database) CreateMatch(match *Match) error {\n\treturn database.matchTable.create(match)\n}\n\nfunc (database *Database) GetMatchById(id int) (*Match, error) {\n\treturn database.matchTable.getById(id)\n}\n\nfunc (database *Database) UpdateMatch(match *Match) error {\n\treturn database.matchTable.update(match)\n}\n\nfunc (database *Database) DeleteMatch(id int) error {\n\treturn database.matchTable.delete(id)\n}\n\nfunc (database *Database) TruncateMatches() error {\n\treturn database.matchTable.truncate()\n}\n\nfunc (database *Database) GetMatchByTypeOrder(matchType MatchType, typeOrder int) (*Match, error) {\n\tmatches, err := database.GetMatchesByType(matchType, true)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, match := range matches {\n\t\tif match.TypeOrder == typeOrder {\n\t\t\treturn &match, nil\n\t\t}\n\t}\n\treturn nil, nil\n}\n\nfunc (database *Database) GetMatchesByType(matchType MatchType, includeHidden bool) ([]Match, error) {\n\tmatches, err := database.matchTable.getAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar matchingMatches []Match\n\tfor _, match := range matches {\n\t\tif match.Type == matchType && (includeHidden || match.Status != game.MatchHidden) {\n\t\t\tmatchingMatches = append(matchingMatches, match)\n\t\t}\n\t}\n\n\tsort.Slice(\n\t\tmatchingMatches,\n\t\tfunc(i, j int) bool {\n\t\t\treturn matchingMatches[i].TypeOrder < matchingMatches[j].TypeOrder\n\t\t},\n\t)\n\treturn matchingMatches, nil\n}\n\nfunc (match *Match) IsComplete() bool {\n\treturn match.Status == game.RedWonMatch || match.Status == game.BlueWonMatch || match.Status == game.TieMatch\n}\n\n// Returns true if the match is of a type that allows substitution of teams.\nfunc (match *Match) ShouldAllowSubstitution() bool {\n\treturn match.Type != Qualification\n}\n\n// Returns true if the match is of a type that allows loading lineup information from Nexus.\nfunc (match *Match) ShouldAllowNexusSubstitution() bool {\n\treturn match.Type == Practice || match.Type == Playoff\n}\n\n// Returns true if the red and yellow cards should be updated as a result of the match.\nfunc (match *Match) ShouldUpdateCards() bool {\n\treturn match.Type == Qualification || match.Type == Playoff\n}\n\n// Returns true if the rankings should be updated as a result of the match.\nfunc (match *Match) ShouldUpdateRankings() bool {\n\treturn match.Type == Qualification\n}\n\n// Returns true if the playoff match set should be updated as a result of the match.\nfunc (match *Match) ShouldUpdatePlayoffMatches() bool {\n\treturn match.Type == Playoff\n}\n\n// Returns the enum equivalent of the given match type string.\nfunc MatchTypeFromString(matchTypeString string) (MatchType, error) {\n\tswitch strings.ToLower(matchTypeString) {\n\tcase \"test\":\n\t\treturn Test, nil\n\tcase \"practice\":\n\t\treturn Practice, nil\n\tcase \"qualification\":\n\t\treturn Qualification, nil\n\tcase \"playoff\":\n\t\treturn Playoff, nil\n\t}\n\treturn 0, fmt.Errorf(\"invalid match type %q\", matchTypeString)\n}\n\n// Returns the string equivalent of the given compound match key.\nfunc (key TbaMatchKey) String() string {\n\tif key.SetNumber == 0 {\n\t\treturn fmt.Sprintf(\"%s%d\", key.CompLevel, key.MatchNumber)\n\t}\n\treturn fmt.Sprintf(\"%s%dm%d\", key.CompLevel, key.SetNumber, key.MatchNumber)\n}\n"
  },
  {
    "path": "model/match_result.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model and datastore CRUD methods for the results (score and fouls) from a match at an event.\n\npackage model\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n)\n\ntype MatchResult struct {\n\tId         int `db:\"id\"`\n\tMatchId    int\n\tPlayNumber int\n\tMatchType  MatchType\n\tRedScore   *game.Score\n\tBlueScore  *game.Score\n\tRedCards   map[string]string\n\tBlueCards  map[string]string\n}\n\n// Returns a new match result object with empty slices instead of nil.\nfunc NewMatchResult() *MatchResult {\n\tmatchResult := new(MatchResult)\n\tmatchResult.RedScore = new(game.Score)\n\tmatchResult.BlueScore = new(game.Score)\n\tmatchResult.RedCards = make(map[string]string)\n\tmatchResult.BlueCards = make(map[string]string)\n\treturn matchResult\n}\n\nfunc (database *Database) CreateMatchResult(matchResult *MatchResult) error {\n\treturn database.matchResultTable.create(matchResult)\n}\n\nfunc (database *Database) GetMatchResultForMatch(matchId int) (*MatchResult, error) {\n\tmatchResults, err := database.matchResultTable.getAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar mostRecentMatchResult *MatchResult\n\tfor i, matchResult := range matchResults {\n\t\tif matchResult.MatchId == matchId &&\n\t\t\t(mostRecentMatchResult == nil || matchResult.PlayNumber > mostRecentMatchResult.PlayNumber) {\n\t\t\tmostRecentMatchResult = &matchResults[i]\n\t\t}\n\t}\n\treturn mostRecentMatchResult, nil\n}\n\nfunc (database *Database) UpdateMatchResult(matchResult *MatchResult) error {\n\treturn database.matchResultTable.update(matchResult)\n}\n\nfunc (database *Database) DeleteMatchResult(id int) error {\n\treturn database.matchResultTable.delete(id)\n}\n\nfunc (database *Database) TruncateMatchResults() error {\n\treturn database.matchResultTable.truncate()\n}\n\n// Calculates and returns the summary fields used for ranking and display for the red alliance.\nfunc (matchResult *MatchResult) RedScoreSummary() *game.ScoreSummary {\n\treturn matchResult.RedScore.Summarize(matchResult.BlueScore)\n}\n\n// Calculates and returns the summary fields used for ranking and display for the blue alliance.\nfunc (matchResult *MatchResult) BlueScoreSummary() *game.ScoreSummary {\n\treturn matchResult.BlueScore.Summarize(matchResult.RedScore)\n}\n\n// Checks the score for disqualifications or a tie and adjusts it appropriately.\nfunc (matchResult *MatchResult) CorrectPlayoffScore() {\n\tmatchResult.RedScore.PlayoffDq = false\n\tfor _, card := range matchResult.RedCards {\n\t\tif card == \"red\" || card == \"dq\" {\n\t\t\tmatchResult.RedScore.PlayoffDq = true\n\t\t}\n\t}\n\tfor _, card := range matchResult.BlueCards {\n\t\tif card == \"red\" || card == \"dq\" {\n\t\t\tmatchResult.BlueScore.PlayoffDq = true\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "model/match_result_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage model\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestGetNonexistentMatchResult(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tmatch, err := db.GetMatchResultForMatch(1114)\n\tassert.Nil(t, err)\n\tassert.Nil(t, match)\n}\n\nfunc TestMatchResultCrud(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tmatchResult := BuildTestMatchResult(254, 5)\n\tassert.Nil(t, db.CreateMatchResult(matchResult))\n\tmatchResult2, err := db.GetMatchResultForMatch(254)\n\tassert.Nil(t, err)\n\tassert.Equal(t, matchResult, matchResult2)\n\n\tmatchResult.BlueScore.EndgameStatuses =\n\t\t[3]game.EndgameStatus{game.EndgameParked, game.EndgameNone, game.EndgameShallowCage}\n\tassert.Nil(t, db.UpdateMatchResult(matchResult))\n\tmatchResult2, err = db.GetMatchResultForMatch(254)\n\tassert.Nil(t, err)\n\tassert.Equal(t, matchResult, matchResult2)\n\n\tassert.Nil(t, db.DeleteMatchResult(matchResult.Id))\n\tmatchResult2, err = db.GetMatchResultForMatch(254)\n\tassert.Nil(t, err)\n\tassert.Nil(t, matchResult2)\n}\n\nfunc TestTruncateMatchResults(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tmatchResult := BuildTestMatchResult(254, 1)\n\tassert.Nil(t, db.CreateMatchResult(matchResult))\n\tassert.Nil(t, db.TruncateMatchResults())\n\tmatchResult2, err := db.GetMatchResultForMatch(254)\n\tassert.Nil(t, err)\n\tassert.Nil(t, matchResult2)\n}\n\nfunc TestGetMatchResultForMatch(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tmatchResult := BuildTestMatchResult(254, 2)\n\tassert.Nil(t, db.CreateMatchResult(matchResult))\n\tmatchResult2 := BuildTestMatchResult(254, 5)\n\tassert.Nil(t, db.CreateMatchResult(matchResult2))\n\tmatchResult3 := BuildTestMatchResult(254, 4)\n\tassert.Nil(t, db.CreateMatchResult(matchResult3))\n\n\t// Should return the match result with the highest play number (i.e. the most recent).\n\tmatchResult4, err := db.GetMatchResultForMatch(254)\n\tassert.Nil(t, err)\n\tassert.Equal(t, matchResult2, matchResult4)\n}\n"
  },
  {
    "path": "model/match_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage model\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestGetNonexistentMatch(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tmatch, err := db.GetMatchById(1114)\n\tassert.Nil(t, err)\n\tassert.Nil(t, match)\n}\n\nfunc TestMatchCrud(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tmatch := Match{\n\t\tType:                Qualification,\n\t\tTypeOrder:           254,\n\t\tTime:                time.Unix(1114, 0).UTC(),\n\t\tLongName:            \"Qualification 254\",\n\t\tShortName:           \"Q254\",\n\t\tNameDetail:          \"Qual Round\",\n\t\tRed1:                1,\n\t\tRed2:                2,\n\t\tRed3:                3,\n\t\tBlue1:               4,\n\t\tBlue2:               5,\n\t\tBlue3:               6,\n\t\tUseTiebreakCriteria: true,\n\t\tTbaMatchKey:         TbaMatchKey{\"qm\", 0, 254},\n\t}\n\tassert.Nil(t, db.CreateMatch(&match))\n\tmatch2, err := db.GetMatchById(1)\n\tassert.Nil(t, err)\n\tassert.Equal(t, match, *match2)\n\tmatch3, err := db.GetMatchByTypeOrder(Qualification, 254)\n\tassert.Nil(t, err)\n\tassert.Equal(t, match, *match3)\n\n\tmatch.Status = game.RedWonMatch\n\tassert.Nil(t, db.UpdateMatch(&match))\n\tmatch2, err = db.GetMatchById(1)\n\tassert.Nil(t, err)\n\tassert.Equal(t, match.Status, match2.Status)\n\n\tassert.Nil(t, db.DeleteMatch(match.Id))\n\tmatch2, err = db.GetMatchById(1)\n\tassert.Nil(t, err)\n\tassert.Nil(t, match2)\n}\n\nfunc TestTruncateMatches(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tmatch := Match{\n\t\tType:      Qualification,\n\t\tTypeOrder: 254,\n\t\tShortName: \"Q254\",\n\t\tLongName:  \"Qualification 254\",\n\t\tRed1:      1,\n\t\tRed2:      2,\n\t\tRed3:      3,\n\t\tBlue1:     4,\n\t\tBlue2:     5,\n\t\tBlue3:     6,\n\t}\n\tassert.Nil(t, db.CreateMatch(&match))\n\tassert.Nil(t, db.TruncateMatches())\n\tmatch2, err := db.GetMatchById(1)\n\tassert.Nil(t, err)\n\tassert.Nil(t, match2)\n}\n\nfunc TestGetMatchByTypeOrder(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tmatch1 := Match{\n\t\tType:      Practice,\n\t\tTypeOrder: 2,\n\t\tShortName: \"P2\",\n\t}\n\tassert.Nil(t, db.CreateMatch(&match1))\n\tmatch2 := Match{\n\t\tType:      Qualification,\n\t\tTypeOrder: 2,\n\t\tShortName: \"Q2\",\n\t}\n\tassert.Nil(t, db.CreateMatch(&match2))\n\n\tmatch, err := db.GetMatchByTypeOrder(Qualification, 1)\n\tassert.Nil(t, err)\n\tassert.Nil(t, match)\n\n\tmatch, err = db.GetMatchByTypeOrder(Qualification, 2)\n\tassert.Nil(t, err)\n\tassert.Equal(t, match2, *match)\n\n\tmatch, err = db.GetMatchByTypeOrder(Practice, 2)\n\tassert.Nil(t, err)\n\tassert.Equal(t, match1, *match)\n}\n\nfunc TestGetMatchesByType(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tmatch1 := Match{\n\t\tType:      Qualification,\n\t\tTypeOrder: 1,\n\t\tShortName: \"Q1\",\n\t}\n\tassert.Nil(t, db.CreateMatch(&match1))\n\tmatch3 := Match{\n\t\tType:      Practice,\n\t\tTypeOrder: 2,\n\t\tShortName: \"P2\",\n\t}\n\tassert.Nil(t, db.CreateMatch(&match3))\n\tmatch2 := Match{\n\t\tType:      Practice,\n\t\tTypeOrder: 1,\n\t\tShortName: \"P1\",\n\t}\n\tassert.Nil(t, db.CreateMatch(&match2))\n\n\tmatches, err := db.GetMatchesByType(Test, false)\n\tassert.Nil(t, err)\n\tassert.Empty(t, matches)\n\tmatches, err = db.GetMatchesByType(Practice, false)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 2, len(matches)) {\n\t\tassert.Equal(t, match2, matches[0])\n\t\tassert.Equal(t, match3, matches[1])\n\t}\n\tmatches, err = db.GetMatchesByType(Qualification, false)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 1, len(matches)) {\n\t\tassert.Equal(t, match1, matches[0])\n\t}\n\n\t// Test filtering of hidden matches.\n\tmatch3.Status = game.MatchHidden\n\tassert.Nil(t, db.UpdateMatch(&match3))\n\tmatches, err = db.GetMatchesByType(Practice, false)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 1, len(matches)) {\n\t\tassert.Equal(t, match2, matches[0])\n\t}\n\tmatches, err = db.GetMatchesByType(Practice, true)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 2, len(matches)) {\n\t\tassert.Equal(t, match2, matches[0])\n\t\tassert.Equal(t, match3, matches[1])\n\t}\n}\n\nfunc TestMatchTypeFromString(t *testing.T) {\n\tmatchType, err := MatchTypeFromString(\"test\")\n\tassert.Nil(t, err)\n\tassert.Equal(t, Test, matchType)\n\n\tmatchType, err = MatchTypeFromString(\"practice\")\n\tassert.Nil(t, err)\n\tassert.Equal(t, Practice, matchType)\n\n\tmatchType, err = MatchTypeFromString(\"qualification\")\n\tassert.Nil(t, err)\n\tassert.Equal(t, Qualification, matchType)\n\n\tmatchType, err = MatchTypeFromString(\"Qualification\")\n\tassert.Nil(t, err)\n\tassert.Equal(t, Qualification, matchType)\n\n\tmatchType, err = MatchTypeFromString(\"playoff\")\n\tassert.Nil(t, err)\n\tassert.Equal(t, Playoff, matchType)\n\n\tmatchType, err = MatchTypeFromString(\"blorpy\")\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, \"invalid match type \\\"blorpy\\\"\", err.Error())\n\t}\n\n\tmatchType, err = MatchTypeFromString(\"elimination\")\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, \"invalid match type \\\"elimination\\\"\", err.Error())\n\t}\n}\n\nfunc TestTbaMatchKeyString(t *testing.T) {\n\tkey := TbaMatchKey{CompLevel: \"p\", SetNumber: 0, MatchNumber: 3}\n\tassert.Equal(t, \"p3\", key.String())\n\n\tkey = TbaMatchKey{CompLevel: \"qm\", SetNumber: 0, MatchNumber: 17}\n\tassert.Equal(t, \"qm17\", key.String())\n\n\tkey = TbaMatchKey{CompLevel: \"sf\", SetNumber: 5, MatchNumber: 1}\n\tassert.Equal(t, \"sf5m1\", key.String())\n\n\tkey = TbaMatchKey{CompLevel: \"f\", SetNumber: 1, MatchNumber: 4}\n\tassert.Equal(t, \"f1m4\", key.String())\n}\n"
  },
  {
    "path": "model/matchtype_string.go",
    "content": "// Code generated by \"stringer -type=MatchType\"; DO NOT EDIT.\n\npackage model\n\nimport \"strconv\"\n\nfunc _() {\n\t// An \"invalid array index\" compiler error signifies that the constant values have changed.\n\t// Re-run the stringer command to generate them again.\n\tvar x [1]struct{}\n\t_ = x[Test-0]\n\t_ = x[Practice-1]\n\t_ = x[Qualification-2]\n\t_ = x[Playoff-3]\n}\n\nconst _MatchType_name = \"TestPracticeQualificationPlayoff\"\n\nvar _MatchType_index = [...]uint8{0, 4, 12, 25, 32}\n\nfunc (i MatchType) String() string {\n\tif i < 0 || i >= MatchType(len(_MatchType_index)-1) {\n\t\treturn \"MatchType(\" + strconv.FormatInt(int64(i), 10) + \")\"\n\t}\n\treturn _MatchType_name[_MatchType_index[i]:_MatchType_index[i+1]]\n}\n"
  },
  {
    "path": "model/ranking.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model and datastore CRUD methods for team ranking data at an event.\n\npackage model\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"sort\"\n)\n\nfunc (database *Database) CreateRanking(ranking *game.Ranking) error {\n\treturn database.rankingTable.create(ranking)\n}\n\nfunc (database *Database) GetRankingForTeam(teamId int) (*game.Ranking, error) {\n\treturn database.rankingTable.getById(teamId)\n}\n\nfunc (database *Database) UpdateRanking(ranking *game.Ranking) error {\n\treturn database.rankingTable.update(ranking)\n}\n\nfunc (database *Database) DeleteRanking(teamId int) error {\n\treturn database.rankingTable.delete(teamId)\n}\n\nfunc (database *Database) TruncateRankings() error {\n\treturn database.rankingTable.truncate()\n}\n\nfunc (database *Database) GetAllRankings() (game.Rankings, error) {\n\trankings, err := database.rankingTable.getAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tsort.Slice(\n\t\trankings,\n\t\tfunc(i, j int) bool {\n\t\t\treturn rankings[i].Rank < rankings[j].Rank\n\t\t},\n\t)\n\treturn rankings, nil\n}\n\n// Deletes the existing rankings and inserts the given ones as a replacement.\nfunc (database *Database) ReplaceAllRankings(rankings game.Rankings) error {\n\tif err := database.rankingTable.truncate(); err != nil {\n\t\treturn err\n\t}\n\n\tfor _, ranking := range rankings {\n\t\tif err := database.CreateRanking(&ranking); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "model/ranking_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage model\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestGetNonexistentRanking(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tranking, err := db.GetRankingForTeam(1114)\n\tassert.Nil(t, err)\n\tassert.Nil(t, ranking)\n}\n\nfunc TestRankingCrud(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tranking := game.TestRanking1()\n\tassert.Nil(t, db.CreateRanking(ranking))\n\tranking2, err := db.GetRankingForTeam(254)\n\tassert.Nil(t, err)\n\tassert.Equal(t, ranking, ranking2)\n\n\tranking.Random = 0.1114\n\tdb.UpdateRanking(ranking)\n\tranking2, err = db.GetRankingForTeam(254)\n\tassert.Nil(t, err)\n\tassert.Equal(t, ranking.Random, ranking2.Random)\n}\n\nfunc TestTruncateRankings(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tranking := game.TestRanking1()\n\tdb.CreateRanking(ranking)\n\tdb.TruncateRankings()\n\tranking2, err := db.GetRankingForTeam(254)\n\tassert.Nil(t, err)\n\tassert.Nil(t, ranking2)\n}\n\nfunc TestGetAllRankings(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\trankings, err := db.GetAllRankings()\n\tassert.Nil(t, err)\n\tassert.Empty(t, rankings)\n\n\tnumRankings := 20\n\tfor i := 1; i <= numRankings; i++ {\n\t\tassert.Nil(t, db.CreateRanking(&game.Ranking{TeamId: i, Rank: i}))\n\t}\n\trankings, err = db.GetAllRankings()\n\tassert.Nil(t, err)\n\tassert.Equal(t, numRankings, len(rankings))\n\tfor i := 0; i < numRankings; i++ {\n\t\tassert.Equal(t, i+1, rankings[i].TeamId)\n\t}\n}\n"
  },
  {
    "path": "model/schedule_block.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model and datastore CRUD methods for a schedule block at an event.\n\npackage model\n\nimport (\n\t\"sort\"\n\t\"time\"\n)\n\ntype ScheduleBlock struct {\n\tId              int `db:\"id\"`\n\tMatchType       MatchType\n\tStartTime       time.Time\n\tNumMatches      int\n\tMatchSpacingSec int\n}\n\nfunc (database *Database) CreateScheduleBlock(block *ScheduleBlock) error {\n\treturn database.scheduleBlockTable.create(block)\n}\n\nfunc (database *Database) GetScheduleBlocksByMatchType(matchType MatchType) ([]ScheduleBlock, error) {\n\tscheduleBlocks, err := database.scheduleBlockTable.getAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar matchingScheduleBlocks []ScheduleBlock\n\tfor _, scheduleBlock := range scheduleBlocks {\n\t\tif scheduleBlock.MatchType == matchType {\n\t\t\tmatchingScheduleBlocks = append(matchingScheduleBlocks, scheduleBlock)\n\t\t}\n\t}\n\n\tsort.Slice(\n\t\tmatchingScheduleBlocks,\n\t\tfunc(i, j int) bool {\n\t\t\treturn matchingScheduleBlocks[i].StartTime.Before(matchingScheduleBlocks[j].StartTime)\n\t\t},\n\t)\n\treturn matchingScheduleBlocks, nil\n}\n\nfunc (database *Database) DeleteScheduleBlocksByMatchType(matchType MatchType) error {\n\tscheduleBlocks, err := database.GetScheduleBlocksByMatchType(matchType)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, scheduleBlock := range scheduleBlocks {\n\t\tif err = database.scheduleBlockTable.delete(scheduleBlock.Id); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (database *Database) TruncateScheduleBlocks() error {\n\treturn database.scheduleBlockTable.truncate()\n}\n"
  },
  {
    "path": "model/schedule_block_test.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage model\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestScheduleBlockCrud(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tscheduleBlock1 := ScheduleBlock{0, Practice, time.Now().UTC(), 10, 600}\n\tassert.Nil(t, db.CreateScheduleBlock(&scheduleBlock1))\n\tscheduleBlock2 := ScheduleBlock{0, Qualification, time.Now().UTC(), 20, 480}\n\tassert.Nil(t, db.CreateScheduleBlock(&scheduleBlock2))\n\tscheduleBlock3 := ScheduleBlock{0, Qualification, scheduleBlock2.StartTime.Add(time.Second * 20 * 480), 20, 480}\n\tassert.Nil(t, db.CreateScheduleBlock(&scheduleBlock3))\n\n\t// Test retrieval of all blocks by match type.\n\tblocks, err := db.GetScheduleBlocksByMatchType(Practice)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 1, len(blocks)) {\n\t\tassert.Equal(t, scheduleBlock1, blocks[0])\n\t}\n\tblocks, err = db.GetScheduleBlocksByMatchType(Qualification)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 2, len(blocks)) {\n\t\tassert.Equal(t, scheduleBlock2, blocks[0])\n\t\tassert.Equal(t, scheduleBlock3, blocks[1])\n\t}\n\n\t// Test deletion of blocks.\n\tassert.Nil(t, db.DeleteScheduleBlocksByMatchType(Practice))\n\tblocks, err = db.GetScheduleBlocksByMatchType(Practice)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 0, len(blocks))\n\tblocks, err = db.GetScheduleBlocksByMatchType(Qualification)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 2, len(blocks))\n\tassert.Nil(t, db.TruncateScheduleBlocks())\n\tblocks, err = db.GetScheduleBlocksByMatchType(Qualification)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 0, len(blocks))\n}\n"
  },
  {
    "path": "model/scheduled_break.go",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model and datastore CRUD methods for a scheduled break at an event.\n\npackage model\n\nimport (\n\t\"sort\"\n\t\"time\"\n)\n\ntype ScheduledBreak struct {\n\tId              int `db:\"id\"`\n\tMatchType       MatchType\n\tTypeOrderBefore int\n\tTime            time.Time\n\tDurationSec     int\n\tDescription     string\n}\n\nfunc (database *Database) CreateScheduledBreak(scheduledBreak *ScheduledBreak) error {\n\treturn database.scheduledBreakTable.create(scheduledBreak)\n}\n\nfunc (database *Database) GetScheduledBreakById(id int) (*ScheduledBreak, error) {\n\treturn database.scheduledBreakTable.getById(id)\n}\n\nfunc (database *Database) UpdateScheduledBreak(scheduledBreak *ScheduledBreak) error {\n\treturn database.scheduledBreakTable.update(scheduledBreak)\n}\n\nfunc (database *Database) GetScheduledBreaksByMatchType(matchType MatchType) ([]ScheduledBreak, error) {\n\tscheduledBreaks, err := database.scheduledBreakTable.getAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar matchingScheduledBreaks []ScheduledBreak\n\tfor _, scheduledBreak := range scheduledBreaks {\n\t\tif scheduledBreak.MatchType == matchType {\n\t\t\tmatchingScheduledBreaks = append(matchingScheduledBreaks, scheduledBreak)\n\t\t}\n\t}\n\n\tsort.Slice(\n\t\tmatchingScheduledBreaks,\n\t\tfunc(i, j int) bool {\n\t\t\treturn matchingScheduledBreaks[i].TypeOrderBefore < matchingScheduledBreaks[j].TypeOrderBefore\n\t\t},\n\t)\n\treturn matchingScheduledBreaks, nil\n}\n\nfunc (database *Database) GetScheduledBreakByMatchTypeOrder(\n\tmatchType MatchType,\n\ttypeOrder int,\n) (*ScheduledBreak, error) {\n\tscheduledBreaks, err := database.GetScheduledBreaksByMatchType(matchType)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, scheduledBreak := range scheduledBreaks {\n\t\tif scheduledBreak.TypeOrderBefore == typeOrder {\n\t\t\treturn &scheduledBreak, nil\n\t\t}\n\t}\n\treturn nil, nil\n}\n\nfunc (database *Database) DeleteScheduledBreaksByMatchType(matchType MatchType) error {\n\tscheduledBreaks, err := database.GetScheduledBreaksByMatchType(matchType)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, scheduledBreak := range scheduledBreaks {\n\t\tif err = database.scheduledBreakTable.delete(scheduledBreak.Id); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (database *Database) TruncateScheduledBreaks() error {\n\treturn database.scheduledBreakTable.truncate()\n}\n"
  },
  {
    "path": "model/scheduled_break_test.go",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage model\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestScheduledBreakCrud(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tscheduledBreak1 := ScheduledBreak{0, Qualification, 50, time.Unix(100, 0).UTC(), 600, \"Lunch\"}\n\tassert.Nil(t, db.CreateScheduledBreak(&scheduledBreak1))\n\tscheduledBreak2 := ScheduledBreak{0, Qualification, 25, time.Unix(200, 0).UTC(), 300, \"Breakfast\"}\n\tassert.Nil(t, db.CreateScheduledBreak(&scheduledBreak2))\n\tscheduledBreak3 := ScheduledBreak{0, Playoff, 4, time.Unix(500, 0).UTC(), 900, \"Awards\"}\n\tassert.Nil(t, db.CreateScheduledBreak(&scheduledBreak3))\n\n\t// Test retrieval by ID.\n\tscheduledBreak, err := db.GetScheduledBreakById(1)\n\tassert.Nil(t, err)\n\tassert.Equal(t, scheduledBreak1, *scheduledBreak)\n\tscheduledBreak, err = db.GetScheduledBreakById(2)\n\tassert.Nil(t, err)\n\tassert.Equal(t, scheduledBreak2, *scheduledBreak)\n\n\t// Test update.\n\tscheduledBreak2.Description = \"Brunch\"\n\tassert.Nil(t, db.UpdateScheduledBreak(&scheduledBreak2))\n\tscheduledBreak, err = db.GetScheduledBreakById(2)\n\tassert.Nil(t, err)\n\tassert.Equal(t, scheduledBreak2, *scheduledBreak)\n\n\t// Test retrieval of all blocks by match type.\n\tscheduledBreaks, err := db.GetScheduledBreaksByMatchType(Practice)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 0, len(scheduledBreaks))\n\tscheduledBreaks, err = db.GetScheduledBreaksByMatchType(Qualification)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 2, len(scheduledBreaks)) {\n\t\tassert.Equal(t, scheduledBreak2, scheduledBreaks[0])\n\t\tassert.Equal(t, scheduledBreak1, scheduledBreaks[1])\n\t}\n\tscheduledBreaks, err = db.GetScheduledBreaksByMatchType(Playoff)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 1, len(scheduledBreaks)) {\n\t\tassert.Equal(t, scheduledBreak3, scheduledBreaks[0])\n\t}\n\n\t// Test individual retrieval by match type and order.\n\tscheduledBreak, err = db.GetScheduledBreakByMatchTypeOrder(Qualification, 25)\n\tassert.Nil(t, err)\n\tassert.Equal(t, scheduledBreak2, *scheduledBreak)\n\tscheduledBreak, err = db.GetScheduledBreakByMatchTypeOrder(Playoff, 4)\n\tassert.Nil(t, err)\n\tassert.Equal(t, scheduledBreak3, *scheduledBreak)\n\tscheduledBreak, err = db.GetScheduledBreakByMatchTypeOrder(Qualification, 100)\n\tassert.Nil(t, err)\n\tassert.Nil(t, scheduledBreak)\n\n\t// Test deletion of breaks.\n\tassert.Nil(t, db.DeleteScheduledBreaksByMatchType(Playoff))\n\tscheduledBreaks, err = db.GetScheduledBreaksByMatchType(Playoff)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 0, len(scheduledBreaks))\n\tscheduledBreaks, err = db.GetScheduledBreaksByMatchType(Qualification)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 2, len(scheduledBreaks))\n\n\tassert.Nil(t, db.TruncateScheduledBreaks())\n\tscheduledBreaks, err = db.GetScheduledBreaksByMatchType(Qualification)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 0, len(scheduledBreaks))\n\tscheduledBreaks, err = db.GetScheduledBreaksByMatchType(Playoff)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 0, len(scheduledBreaks))\n}\n"
  },
  {
    "path": "model/sponsor_slide.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: nick@team254.com (Nick Eyre)\n//\n// Model and datastore CRUD methods for the sponsor slideshow.\n\npackage model\n\nimport \"sort\"\n\ntype SponsorSlide struct {\n\tId             int `db:\"id\"`\n\tSubtitle       string\n\tLine1          string\n\tLine2          string\n\tImage          string\n\tDisplayTimeSec int\n\tDisplayOrder   int\n}\n\nfunc (database *Database) CreateSponsorSlide(sponsorSlide *SponsorSlide) error {\n\treturn database.sponsorSlideTable.create(sponsorSlide)\n}\n\nfunc (database *Database) GetSponsorSlideById(id int) (*SponsorSlide, error) {\n\treturn database.sponsorSlideTable.getById(id)\n}\n\nfunc (database *Database) UpdateSponsorSlide(sponsorSlide *SponsorSlide) error {\n\treturn database.sponsorSlideTable.update(sponsorSlide)\n}\n\nfunc (database *Database) DeleteSponsorSlide(id int) error {\n\treturn database.sponsorSlideTable.delete(id)\n}\n\nfunc (database *Database) TruncateSponsorSlides() error {\n\treturn database.sponsorSlideTable.truncate()\n}\n\nfunc (database *Database) GetAllSponsorSlides() ([]SponsorSlide, error) {\n\tsponsorSlides, err := database.sponsorSlideTable.getAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tsort.Slice(\n\t\tsponsorSlides,\n\t\tfunc(i, j int) bool {\n\t\t\treturn sponsorSlides[i].DisplayOrder < sponsorSlides[j].DisplayOrder\n\t\t},\n\t)\n\treturn sponsorSlides, nil\n}\n\nfunc (database *Database) GetNextSponsorSlideDisplayOrder() int {\n\tsponsorSlides, err := database.GetAllSponsorSlides()\n\tif err != nil {\n\t\treturn 0\n\t}\n\tif len(sponsorSlides) == 0 {\n\t\treturn 1\n\t}\n\treturn sponsorSlides[len(sponsorSlides)-1].DisplayOrder + 1\n}\n"
  },
  {
    "path": "model/sponsor_slide_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage model\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestGetNonexistentSponsorSlide(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tsponsorSlide, err := db.GetSponsorSlideById(1114)\n\tassert.Nil(t, err)\n\tassert.Nil(t, sponsorSlide)\n}\n\nfunc TestSponsorSlideCrud(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tassert.Equal(t, 1, db.GetNextSponsorSlideDisplayOrder())\n\n\tsponsorSlide := SponsorSlide{0, \"Subtitle\", \"Line 1\", \"Line 2\", \"\", 10, 1}\n\tassert.Nil(t, db.CreateSponsorSlide(&sponsorSlide))\n\tsponsorSlide2, err := db.GetSponsorSlideById(1)\n\tassert.Nil(t, err)\n\tassert.Equal(t, sponsorSlide, *sponsorSlide2)\n\tassert.Equal(t, 2, db.GetNextSponsorSlideDisplayOrder())\n\n\tsponsorSlide.Line1 = \"Blorpy\"\n\tdb.UpdateSponsorSlide(&sponsorSlide)\n\tsponsorSlide2, err = db.GetSponsorSlideById(1)\n\tassert.Nil(t, err)\n\tassert.Equal(t, sponsorSlide.Line1, sponsorSlide2.Line1)\n\n\tdb.DeleteSponsorSlide(sponsorSlide.Id)\n\tsponsorSlide2, err = db.GetSponsorSlideById(1)\n\tassert.Nil(t, err)\n\tassert.Nil(t, sponsorSlide2)\n}\n\nfunc TestTruncateSponsorSlides(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tsponsorSlide := SponsorSlide{0, \"Subtitle\", \"Line 1\", \"Line 2\", \"\", 10, 0}\n\tdb.CreateSponsorSlide(&sponsorSlide)\n\tdb.TruncateSponsorSlides()\n\tsponsorSlide2, err := db.GetSponsorSlideById(1)\n\tassert.Nil(t, err)\n\tassert.Nil(t, sponsorSlide2)\n\tassert.Equal(t, 1, db.GetNextSponsorSlideDisplayOrder())\n}\n"
  },
  {
    "path": "model/table.go",
    "content": "// Copyright 2021 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Defines a \"table\" wrapper struct and helper methods for persisting data using Bolt.\n\npackage model\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"go.etcd.io/bbolt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Encapsulates all persistence operations for a particular data type represented by a struct.\ntype table[R any] struct {\n\tbolt         *bbolt.DB\n\trecordType   reflect.Type\n\tname         string\n\tbucketKey    []byte\n\tidFieldIndex *int\n\tmanualId     bool\n}\n\n// Registers a new table for a struct.\nfunc newTable[R any](database *Database) (*table[R], error) {\n\tvar recordType R\n\trecordTypeValue := reflect.ValueOf(recordType)\n\tif recordTypeValue.Kind() != reflect.Struct {\n\t\treturn nil, fmt.Errorf(\"record type must be a struct; got %v\", recordTypeValue.Kind())\n\t}\n\n\tvar table table[R]\n\ttable.bolt = database.bolt\n\ttable.recordType = reflect.TypeOf(recordType)\n\ttable.name = table.recordType.Name()\n\ttable.bucketKey = []byte(table.name)\n\n\t// Determine which field in the struct is tagged as the ID and cache its index.\n\tidFound := false\n\tfor i := 0; i < recordTypeValue.Type().NumField(); i++ {\n\t\tfield := recordTypeValue.Type().Field(i)\n\t\ttags := map[string]struct{}{}\n\t\tfor _, tag := range strings.Split(field.Tag.Get(\"db\"), \",\") {\n\t\t\ttags[tag] = struct{}{}\n\t\t}\n\t\tif _, ok := tags[\"id\"]; ok {\n\t\t\tif field.Type.Kind() != reflect.Int {\n\t\t\t\treturn nil,\n\t\t\t\t\tfmt.Errorf(\n\t\t\t\t\t\t\"field in struct %s tagged with 'id' must be an int; got %v\", table.name, field.Type.Kind(),\n\t\t\t\t\t)\n\t\t\t}\n\t\t\ttable.idFieldIndex = new(int)\n\t\t\t*table.idFieldIndex = i\n\t\t\tidFound = true\n\t\t\t_, table.manualId = tags[\"manual\"]\n\t\t\tbreak\n\t\t}\n\t}\n\tif !idFound {\n\t\treturn nil, fmt.Errorf(\"struct %s has no field tagged as the id\", table.name)\n\t}\n\n\t// Create the Bolt bucket corresponding to the struct.\n\terr := table.bolt.Update(\n\t\tfunc(tx *bbolt.Tx) error {\n\t\t\t_, err := tx.CreateBucketIfNotExists(table.bucketKey)\n\t\t\treturn err\n\t\t},\n\t)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &table, nil\n}\n\n// Returns the record with the given ID, or nil if it doesn't exist.\nfunc (table *table[R]) getById(id int) (*R, error) {\n\trecord := new(R)\n\terr := table.bolt.View(\n\t\tfunc(tx *bbolt.Tx) error {\n\t\t\tbucket, err := table.getBucket(tx)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif recordJson := bucket.Get(idToKey(id)); recordJson != nil {\n\t\t\t\treturn json.Unmarshal(recordJson, record)\n\t\t\t}\n\n\t\t\t// If the record does not exist, set the record pointer to nil.\n\t\t\trecord = nil\n\t\t\treturn nil\n\t\t},\n\t)\n\treturn record, err\n}\n\n// Returns a slice containing every record in the table, ordered by string representation of ID.\nfunc (table *table[R]) getAll() ([]R, error) {\n\trecords := []R{}\n\terr := table.bolt.View(\n\t\tfunc(tx *bbolt.Tx) error {\n\t\t\tbucket, err := table.getBucket(tx)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\treturn bucket.ForEach(\n\t\t\t\tfunc(key, value []byte) error {\n\t\t\t\t\tvar record R\n\t\t\t\t\terr := json.Unmarshal(value, &record)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\trecords = append(records, record)\n\t\t\t\t\treturn nil\n\t\t\t\t},\n\t\t\t)\n\t\t},\n\t)\n\treturn records, err\n}\n\n// Persists the given record as a new row in the table.\nfunc (table *table[R]) create(record *R) error {\n\t// Validate that the record has its ID set to zero or not as expected, depending on whether it is configured for\n\t// autogenerated IDs.\n\tvalue := reflect.ValueOf(record).Elem()\n\tid := int(value.Field(*table.idFieldIndex).Int())\n\tif table.manualId && id == 0 {\n\t\treturn fmt.Errorf(\"can't create %s with zero ID since table is configured for manual IDs\", table.name)\n\t} else if !table.manualId && id != 0 {\n\t\treturn fmt.Errorf(\n\t\t\t\"can't create %s with non-zero ID since table is configured for autogenerated IDs: %d\", table.name, id,\n\t\t)\n\t}\n\n\treturn table.bolt.Update(\n\t\tfunc(tx *bbolt.Tx) error {\n\t\t\tbucket, err := table.getBucket(tx)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif !table.manualId {\n\t\t\t\t// Generate a new ID for the record.\n\t\t\t\tnewSequence, err := bucket.NextSequence()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tid = int(newSequence)\n\t\t\t\tvalue.Field(*table.idFieldIndex).SetInt(int64(id))\n\t\t\t}\n\n\t\t\t// Ensure that a record having the same ID does not already exist in the table.\n\t\t\tkey := idToKey(id)\n\t\t\toldRecord := bucket.Get(key)\n\t\t\tif oldRecord != nil {\n\t\t\t\treturn fmt.Errorf(\"%s with ID %d already exists: %s\", table.name, id, string(oldRecord))\n\t\t\t}\n\n\t\t\trecordJson, err := json.Marshal(record)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn bucket.Put(key, recordJson)\n\t\t},\n\t)\n}\n\n// Persists the given record as an update to the existing row in the table. Returns an error if the record does not\n// already exist.\nfunc (table *table[R]) update(record *R) error {\n\t// Validate that the record has a non-zero ID.\n\tvalue := reflect.ValueOf(record).Elem()\n\tid := int(value.Field(*table.idFieldIndex).Int())\n\tif id == 0 {\n\t\treturn fmt.Errorf(\"can't update %s with zero ID\", table.name)\n\t}\n\n\treturn table.bolt.Update(\n\t\tfunc(tx *bbolt.Tx) error {\n\t\t\tbucket, err := table.getBucket(tx)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Ensure that a record having the same ID exists in the table.\n\t\t\tkey := idToKey(id)\n\t\t\toldRecord := bucket.Get(key)\n\t\t\tif oldRecord == nil {\n\t\t\t\treturn fmt.Errorf(\"can't update non-existent %s with ID %d\", table.name, id)\n\t\t\t}\n\n\t\t\trecordJson, err := json.Marshal(record)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn bucket.Put(key, recordJson)\n\t\t},\n\t)\n}\n\n// Deletes the record having the given ID from the table. Returns an error if the record does not exist.\nfunc (table *table[R]) delete(id int) error {\n\treturn table.bolt.Update(\n\t\tfunc(tx *bbolt.Tx) error {\n\t\t\tbucket, err := table.getBucket(tx)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Ensure that a record having the same ID exists in the table.\n\t\t\tkey := idToKey(id)\n\t\t\toldRecord := bucket.Get(key)\n\t\t\tif oldRecord == nil {\n\t\t\t\treturn fmt.Errorf(\"can't delete non-existent %s with ID %d\", table.name, id)\n\t\t\t}\n\n\t\t\treturn bucket.Delete(key)\n\t\t},\n\t)\n}\n\n// Deletes all records from the table.\nfunc (table *table[R]) truncate() error {\n\treturn table.bolt.Update(\n\t\tfunc(tx *bbolt.Tx) error {\n\t\t\t_, err := table.getBucket(tx)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Carry out the truncation by way of deleting the whole bucket and then recreate it.\n\t\t\terr = tx.DeleteBucket(table.bucketKey)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t_, err = tx.CreateBucket(table.bucketKey)\n\t\t\treturn err\n\t\t},\n\t)\n}\n\n// Obtains the Bolt bucket belonging to the table.\nfunc (table *table[R]) getBucket(tx *bbolt.Tx) (*bbolt.Bucket, error) {\n\tbucket := tx.Bucket(table.bucketKey)\n\tif bucket == nil {\n\t\treturn nil, fmt.Errorf(\"unknown table %s\", table.name)\n\t}\n\treturn bucket, nil\n}\n\n// Serializes the given integer ID to a byte array containing its Base-10 string representation.\nfunc idToKey(id int) []byte {\n\treturn []byte(strconv.Itoa(id))\n}\n"
  },
  {
    "path": "model/table_test.go",
    "content": "// Copyright 2021 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage model\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\ntype validRecord struct {\n\tId         int `db:\"id\"`\n\tIntData    int\n\tStringData string\n}\n\ntype manualIdRecord struct {\n\tId         int `db:\"id,manual\"\"`\n\tStringData string\n}\n\nfunc TestTableSingleCrud(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\ttable, err := newTable[validRecord](db)\n\tif !assert.Nil(t, err) {\n\t\treturn\n\t}\n\n\t// Test initial create and then read back.\n\trecord := validRecord{IntData: 254, StringData: \"The Cheesy Poofs\"}\n\tif assert.Nil(t, table.create(&record)) {\n\t\tassert.Equal(t, 1, record.Id)\n\t}\n\trecord2, err := table.getById(record.Id)\n\tassert.Equal(t, record, *record2)\n\tassert.Nil(t, err)\n\n\t// Test update and then read back.\n\trecord.IntData = 252\n\trecord.StringData = \"Teh Chezy Pofs\"\n\tassert.Nil(t, table.update(&record))\n\trecord2, err = table.getById(record.Id)\n\tassert.Equal(t, record, *record2)\n\tassert.Nil(t, err)\n\n\t// Test delete.\n\tassert.Nil(t, table.delete(record.Id))\n\trecord2, err = table.getById(record.Id)\n\tassert.Nil(t, record2)\n\tassert.Nil(t, err)\n}\n\nfunc TestTableMultipleCrud(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\ttable, err := newTable[validRecord](db)\n\tif !assert.Nil(t, err) {\n\t\treturn\n\t}\n\n\t// Insert a few test records.\n\trecord1 := validRecord{IntData: 1, StringData: \"One\"}\n\trecord2 := validRecord{IntData: 2, StringData: \"Two\"}\n\trecord3 := validRecord{IntData: 3, StringData: \"Three\"}\n\tassert.Nil(t, table.create(&record1))\n\tassert.Nil(t, table.create(&record2))\n\tassert.Nil(t, table.create(&record3))\n\n\t// Read all records.\n\trecords, err := table.getAll()\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 3, len(records)) {\n\t\tassert.Equal(t, record1, records[0])\n\t\tassert.Equal(t, record2, records[1])\n\t\tassert.Equal(t, record3, records[2])\n\t}\n\n\t// Truncate the table and verify that the records no longer exist.\n\tassert.Nil(t, table.truncate())\n\trecords, err = table.getAll()\n\tassert.Equal(t, 0, len(records))\n\tassert.Nil(t, err)\n\trecord4, err := table.getById(record1.Id)\n\tassert.Nil(t, record4)\n\tassert.Nil(t, err)\n}\n\nfunc TestTableWithManualId(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\ttable, err := newTable[manualIdRecord](db)\n\tif !assert.Nil(t, err) {\n\t\treturn\n\t}\n\n\t// Test initial create and then read back.\n\trecord := manualIdRecord{Id: 254, StringData: \"The Cheesy Poofs\"}\n\tif assert.Nil(t, table.create(&record)) {\n\t\tassert.Equal(t, 254, record.Id)\n\t}\n\trecord2, err := table.getById(record.Id)\n\tassert.Equal(t, record, *record2)\n\tassert.Nil(t, err)\n\n\t// Test update and then read back.\n\trecord.StringData = \"Teh Chezy Pofs\"\n\tassert.Nil(t, table.update(&record))\n\trecord2, err = table.getById(record.Id)\n\tassert.Equal(t, record, *record2)\n\tassert.Nil(t, err)\n\n\t// Test delete.\n\tassert.Nil(t, table.delete(record.Id))\n\trecord2, err = table.getById(record.Id)\n\tassert.Nil(t, record2)\n\tassert.Nil(t, err)\n\n\t// Test creating a record with a zero ID.\n\trecord.Id = 0\n\terr = table.create(&record)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(\n\t\t\tt, \"can't create manualIdRecord with zero ID since table is configured for manual IDs\", err.Error(),\n\t\t)\n\t}\n}\n\nfunc TestNewTableErrors(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\t// Pass a non-struct as the record type.\n\ttable, err := newTable[int](db)\n\tassert.Nil(t, table)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, \"record type must be a struct; got int\", err.Error())\n\t}\n\n\t// Pass a struct that doesn't have an ID field.\n\ttype recordWithNoId struct {\n\t\tStringData string\n\t}\n\ttable2, err := newTable[recordWithNoId](db)\n\tassert.Nil(t, table2)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, \"struct recordWithNoId has no field tagged as the id\", err.Error())\n\t}\n\n\t// Pass a struct that has a field with the wrong type tagged as the ID.\n\ttype recordWithWrongIdType struct {\n\t\tId bool `db:\"id\"`\n\t}\n\ttable3, err := newTable[recordWithWrongIdType](db)\n\tassert.Nil(t, table3)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(\n\t\t\tt, \"field in struct recordWithWrongIdType tagged with 'id' must be an int; got bool\", err.Error(),\n\t\t)\n\t}\n}\n\nfunc TestTableCrudErrors(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\ttable, err := newTable[validRecord](db)\n\tif !assert.Nil(t, err) {\n\t\treturn\n\t}\n\n\t// Create a record with a non-zero ID.\n\tvar record validRecord\n\trecord.Id = 12345\n\terr = table.create(&record)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(\n\t\t\tt,\n\t\t\t\"can't create validRecord with non-zero ID since table is configured for autogenerated IDs: 12345\",\n\t\t\terr.Error(),\n\t\t)\n\t}\n\n\t// Update a record with an ID of zero.\n\trecord.Id = 0\n\terr = table.update(&record)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, \"can't update validRecord with zero ID\", err.Error())\n\t}\n\n\t// Update a nonexistent record.\n\trecord.Id = 12345\n\terr = table.update(&record)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, \"can't update non-existent validRecord with ID 12345\", err.Error())\n\t}\n\n\t// Delete a nonexistent record.\n\terr = table.delete(12345)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, \"can't delete non-existent validRecord with ID 12345\", err.Error())\n\t}\n}\n"
  },
  {
    "path": "model/team.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model and datastore CRUD methods for a team at an event.\n\npackage model\n\nimport \"sort\"\n\ntype Team struct {\n\tId              int `db:\"id,manual\"`\n\tName            string\n\tNickname        string\n\tCity            string\n\tStateProv       string\n\tCountry         string\n\tSchoolName      string\n\tRookieYear      int\n\tRobotName       string\n\tAccomplishments string\n\tWpaKey          string\n\tYellowCard      bool\n\tHasConnected    bool\n\tFtaNotes        string\n}\n\nfunc (database *Database) CreateTeam(team *Team) error {\n\treturn database.teamTable.create(team)\n}\n\nfunc (database *Database) GetTeamById(id int) (*Team, error) {\n\treturn database.teamTable.getById(id)\n}\n\nfunc (database *Database) UpdateTeam(team *Team) error {\n\treturn database.teamTable.update(team)\n}\n\nfunc (database *Database) DeleteTeam(id int) error {\n\treturn database.teamTable.delete(id)\n}\n\nfunc (database *Database) TruncateTeams() error {\n\treturn database.teamTable.truncate()\n}\n\nfunc (database *Database) GetAllTeams() ([]Team, error) {\n\tteams, err := database.teamTable.getAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tsort.Slice(\n\t\tteams, func(i, j int) bool {\n\t\t\treturn teams[i].Id < teams[j].Id\n\t\t},\n\t)\n\treturn teams, nil\n}\n"
  },
  {
    "path": "model/team_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage model\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestGetNonexistentTeam(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tteam, err := db.GetTeamById(1114)\n\tassert.Nil(t, err)\n\tassert.Nil(t, team)\n}\n\nfunc TestTeamCrud(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tteam := Team{\n\t\tId:         254,\n\t\tName:       \"NASA\",\n\t\tNickname:   \"The Cheesy Poofs\",\n\t\tCity:       \"San Jose\",\n\t\tStateProv:  \"CA\",\n\t\tCountry:    \"USA\",\n\t\tRookieYear: 1999,\n\t\tRobotName:  \"Barrage\",\n\t}\n\tdb.CreateTeam(&team)\n\tteam2, err := db.GetTeamById(254)\n\tassert.Nil(t, err)\n\tassert.Equal(t, team, *team2)\n\n\tteam.Name = \"Updated name\"\n\tdb.UpdateTeam(&team)\n\tteam2, err = db.GetTeamById(254)\n\tassert.Nil(t, err)\n\tassert.Equal(t, team.Name, team2.Name)\n\n\tdb.DeleteTeam(team.Id)\n\tteam2, err = db.GetTeamById(254)\n\tassert.Nil(t, err)\n\tassert.Nil(t, team2)\n}\n\nfunc TestTruncateTeams(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tteam := Team{\n\t\tId:         254,\n\t\tName:       \"NASA\",\n\t\tNickname:   \"The Cheesy Poofs\",\n\t\tCity:       \"San Jose\",\n\t\tStateProv:  \"CA\",\n\t\tCountry:    \"USA\",\n\t\tRookieYear: 1999,\n\t\tRobotName:  \"Barrage\",\n\t}\n\tdb.CreateTeam(&team)\n\tdb.TruncateTeams()\n\tteam2, err := db.GetTeamById(254)\n\tassert.Nil(t, err)\n\tassert.Nil(t, team2)\n}\n\nfunc TestGetAllTeams(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tteams, err := db.GetAllTeams()\n\tassert.Nil(t, err)\n\tassert.Empty(t, teams)\n\n\tnumTeams := 20\n\tfor i := 1; i <= numTeams; i++ {\n\t\tdb.CreateTeam(&Team{Id: i, RookieYear: 2014})\n\t}\n\tteams, err = db.GetAllTeams()\n\tassert.Nil(t, err)\n\tassert.Equal(t, numTeams, len(teams))\n\tfor i := 0; i < numTeams; i++ {\n\t\tassert.Equal(t, i+1, teams[i].Id)\n\t}\n}\n"
  },
  {
    "path": "model/test_helpers.go",
    "content": "// Copyright 2017 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Helper methods for use in tests in this package and others.\n\npackage model\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"path/filepath\"\n\t\"testing\"\n)\n\nfunc SetupTestDb(t *testing.T) *Database {\n\tBaseDir = \"..\"\n\tdbDir := t.TempDir()\n\tdbPath := filepath.Join(dbDir, \"test.db\")\n\tdatabase, err := OpenDatabase(dbPath)\n\tassert.Nil(t, err)\n\tt.Cleanup(\n\t\tfunc() {\n\t\t\tdatabase.Close()\n\t\t},\n\t)\n\treturn database\n}\n\nfunc BuildTestMatchResult(matchId int, playNumber int) *MatchResult {\n\tmatchResult := &MatchResult{MatchId: matchId, PlayNumber: playNumber, MatchType: Qualification}\n\tmatchResult.RedScore = game.TestScore1()\n\tmatchResult.BlueScore = game.TestScore2()\n\tmatchResult.RedCards = map[string]string{\"1868\": \"yellow\"}\n\tmatchResult.BlueCards = map[string]string{}\n\treturn matchResult\n}\n\nfunc BuildTestAlliances(database *Database) {\n\tdatabase.CreateAlliance(&Alliance{Id: 2, TeamIds: []int{1718, 2451, 1619}, Lineup: [3]int{2451, 1718, 1619}})\n\tdatabase.CreateAlliance(&Alliance{Id: 1, TeamIds: []int{254, 469, 2848, 74, 3175}, Lineup: [3]int{469, 254, 2848}})\n}\n"
  },
  {
    "path": "model/user_session.go",
    "content": "// Copyright 2019 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Model and datastore CRUD methods for a user login session.\n\npackage model\n\nimport \"time\"\n\ntype UserSession struct {\n\tId        int `db:\"id\"`\n\tToken     string\n\tUsername  string\n\tCreatedAt time.Time\n}\n\nfunc (database *Database) CreateUserSession(session *UserSession) error {\n\treturn database.userSessionTable.create(session)\n}\n\nfunc (database *Database) GetUserSessionByToken(token string) (*UserSession, error) {\n\tuserSessions, err := database.userSessionTable.getAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, userSession := range userSessions {\n\t\tif userSession.Token == token {\n\t\t\treturn &userSession, nil\n\t\t}\n\t}\n\treturn nil, nil\n}\n\nfunc (database *Database) DeleteUserSession(id int) error {\n\treturn database.userSessionTable.delete(id)\n}\n\nfunc (database *Database) TruncateUserSessions() error {\n\treturn database.userSessionTable.truncate()\n}\n"
  },
  {
    "path": "model/user_session_test.go",
    "content": "// Copyright 2019 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage model\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestGetNonexistentUserSession(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tsession, err := db.GetUserSessionByToken(\"blorpy\")\n\tassert.Nil(t, err)\n\tassert.Nil(t, session)\n}\n\nfunc TestUserSessionCrud(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tsession := UserSession{0, \"token1\", \"Bertha\", time.Now()}\n\terr := db.CreateUserSession(&session)\n\tassert.Nil(t, err)\n\tsession2, err := db.GetUserSessionByToken(\"token1\")\n\tassert.Nil(t, err)\n\tassert.Equal(t, session.Token, session2.Token)\n\tassert.Equal(t, session.Username, session2.Username)\n\tassert.True(t, session.CreatedAt.Equal(session2.CreatedAt))\n\n\tdb.DeleteUserSession(session.Id)\n\tsession2, err = db.GetUserSessionByToken(\"token1\")\n\tassert.Nil(t, err)\n\tassert.Nil(t, session2)\n}\n\nfunc TestTruncateUserSessions(t *testing.T) {\n\tdb := setupTestDb(t)\n\tdefer db.Close()\n\n\tsession := UserSession{0, \"token1\", \"Bertha\", time.Now()}\n\tdb.CreateUserSession(&session)\n\tdb.TruncateUserSessions()\n\tsession2, err := db.GetUserSessionByToken(\"token1\")\n\tassert.Nil(t, err)\n\tassert.Nil(t, session2)\n}\n"
  },
  {
    "path": "network/access_point.go",
    "content": "// Copyright 2017 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Methods for configuring a Vivid-Hosting VH-113 access point running OpenWRT for team SSIDs and VLANs.\n\npackage network\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"github.com/Team254/cheesy-arena/model\"\n)\n\nconst (\n\taccessPointPollPeriodSec = 1\n)\n\ntype AccessPoint struct {\n\tapiUrl                 string\n\tpassword               string\n\tchannel                int\n\tnetworkSecurityEnabled bool\n\tStatus                 string\n\tTeamWifiStatuses       [6]*TeamWifiStatus\n\tlastConfiguredTeams    [6]*model.Team\n}\n\ntype TeamWifiStatus struct {\n\tTeamId            int\n\tRadioLinked       bool\n\tMBits             float64\n\tRxRate            float64\n\tTxRate            float64\n\tSignalNoiseRatio  int\n\tConnectionQuality int\n}\n\ntype configurationRequest struct {\n\tChannel               int                             `json:\"channel\"`\n\tStationConfigurations map[string]stationConfiguration `json:\"stationConfigurations\"`\n}\n\ntype stationConfiguration struct {\n\tSsid   string `json:\"ssid\"`\n\tWpaKey string `json:\"wpaKey\"`\n}\n\ntype accessPointStatus struct {\n\tChannel         int                       `json:\"channel\"`\n\tStatus          string                    `json:\"status\"`\n\tStationStatuses map[string]*stationStatus `json:\"stationStatuses\"`\n}\n\ntype stationStatus struct {\n\tSsid              string  `json:\"ssid\"`\n\tHashedWpaKey      string  `json:\"hashedWpaKey\"`\n\tWpaKeySalt        string  `json:\"wpaKeySalt\"`\n\tIsLinked          bool    `json:\"isLinked\"`\n\tRxRateMbps        float64 `json:\"rxRateMbps\"`\n\tTxRateMbps        float64 `json:\"txRateMbps\"`\n\tSignalNoiseRatio  int     `json:\"signalNoiseRatio\"`\n\tBandwidthUsedMbps float64 `json:\"bandwidthUsedMbps\"`\n\tConnectionQuality string  `json:\"connectionQuality\"`\n}\n\nvar connectionQualityMap = map[string]int{\n\t\"caution\":   1,\n\t\"warning\":   2,\n\t\"good\":      3,\n\t\"excellent\": 4,\n}\n\nfunc (ap *AccessPoint) SetSettings(\n\taddress, password string,\n\tchannel int,\n\tnetworkSecurityEnabled bool,\n\twifiStatuses [6]*TeamWifiStatus,\n) {\n\tap.apiUrl = fmt.Sprintf(\"http://%s\", address)\n\tap.password = password\n\tap.channel = channel\n\tap.networkSecurityEnabled = networkSecurityEnabled\n\tap.Status = \"UNKNOWN\"\n\tap.TeamWifiStatuses = wifiStatuses\n}\n\n// Loops indefinitely to read status from the access point.\nfunc (ap *AccessPoint) Run() {\n\tfor {\n\t\ttime.Sleep(time.Second * accessPointPollPeriodSec)\n\t\tif err := ap.updateMonitoring(); err != nil {\n\t\t\tlog.Printf(\"Failed to update access point monitoring: %v\", err)\n\t\t\tcontinue\n\t\t}\n\n\t\t// If the access point is in a good state but doesn't match the expected configuration, try again.\n\t\tif ap.Status == \"ACTIVE\" && !ap.statusMatchesLastConfiguration() {\n\t\t\tlog.Println(\"Access point is ACTIVE but does not match expected configuration; retrying configuration.\")\n\t\t\tif err := ap.ConfigureTeamWifi(ap.lastConfiguredTeams); err != nil {\n\t\t\t\tlog.Printf(\"Failed to reconfigure access point: %v\", err)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Calls the access point's API to configure the team SSIDs and WPA keys.\nfunc (ap *AccessPoint) ConfigureTeamWifi(teams [6]*model.Team) error {\n\tif !ap.networkSecurityEnabled {\n\t\treturn nil\n\t}\n\n\tap.Status = \"CONFIGURING\"\n\tap.lastConfiguredTeams = teams\n\trequest := configurationRequest{\n\t\tChannel:               ap.channel,\n\t\tStationConfigurations: make(map[string]stationConfiguration),\n\t}\n\taddStation(request.StationConfigurations, \"red1\", teams[0])\n\taddStation(request.StationConfigurations, \"red2\", teams[1])\n\taddStation(request.StationConfigurations, \"red3\", teams[2])\n\taddStation(request.StationConfigurations, \"blue1\", teams[3])\n\taddStation(request.StationConfigurations, \"blue2\", teams[4])\n\taddStation(request.StationConfigurations, \"blue3\", teams[5])\n\tjsonBody, err := json.Marshal(request)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Send the configuration to the access point API.\n\turl := ap.apiUrl + \"/configuration\"\n\thttpRequest, err := http.NewRequest(\"POST\", url, bytes.NewReader(jsonBody))\n\tif err != nil {\n\t\treturn err\n\t}\n\tif ap.password != \"\" {\n\t\thttpRequest.Header.Add(\"Authorization\", fmt.Sprintf(\"Bearer %s\", ap.password))\n\t}\n\thttpClient := http.Client{Timeout: time.Second * 3}\n\thttpResponse, err := httpClient.Do(httpRequest)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer httpResponse.Body.Close()\n\tif httpResponse.StatusCode/100 != 2 {\n\t\tbody, _ := io.ReadAll(httpResponse.Body)\n\t\treturn fmt.Errorf(\"access point returned status %d: %s\", httpResponse.StatusCode, string(body))\n\t}\n\n\tlog.Println(\"Access point accepted the new configuration and will apply it asynchronously.\")\n\treturn nil\n}\n\n// Fetches the current access point status from the API and updates the status structure.\nfunc (ap *AccessPoint) updateMonitoring() error {\n\tif !ap.networkSecurityEnabled {\n\t\treturn nil\n\t}\n\n\t// Fetch the status from the access point API.\n\turl := ap.apiUrl + \"/status\"\n\thttpRequest, err := http.NewRequest(\"GET\", url, nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif ap.password != \"\" {\n\t\thttpRequest.Header.Add(\"Authorization\", fmt.Sprintf(\"Bearer %s\", ap.password))\n\t}\n\tvar httpClient http.Client\n\thttpResponse, err := httpClient.Do(httpRequest)\n\tif err != nil {\n\t\tap.Status = \"ERROR\"\n\t\treturn fmt.Errorf(\"failed to fetch access point status: %v\", err)\n\t}\n\tif httpResponse.StatusCode/100 != 2 {\n\t\tap.Status = \"ERROR\"\n\t\tbody, _ := io.ReadAll(httpResponse.Body)\n\t\treturn fmt.Errorf(\"access point returned status %d: %s\", httpResponse.StatusCode, string(body))\n\t}\n\n\t// Parse the response and populate the status structure.\n\tvar apStatus accessPointStatus\n\terr = json.NewDecoder(httpResponse.Body).Decode(&apStatus)\n\tif err != nil {\n\t\tap.Status = \"ERROR\"\n\t\treturn fmt.Errorf(\"failed to parse access point status: %v\", err)\n\t}\n\tif ap.Status != apStatus.Status {\n\t\tlog.Printf(\"Access point status changed from %s to %s.\", ap.Status, apStatus.Status)\n\t\tap.Status = apStatus.Status\n\t\tif ap.Status == \"ACTIVE\" {\n\t\t\tlog.Printf(\"Access point detailed status:\\n%s\", apStatus.toLogString())\n\t\t}\n\t}\n\tupdateTeamWifiStatus(ap.TeamWifiStatuses[0], apStatus.StationStatuses[\"red1\"])\n\tupdateTeamWifiStatus(ap.TeamWifiStatuses[1], apStatus.StationStatuses[\"red2\"])\n\tupdateTeamWifiStatus(ap.TeamWifiStatuses[2], apStatus.StationStatuses[\"red3\"])\n\tupdateTeamWifiStatus(ap.TeamWifiStatuses[3], apStatus.StationStatuses[\"blue1\"])\n\tupdateTeamWifiStatus(ap.TeamWifiStatuses[4], apStatus.StationStatuses[\"blue2\"])\n\tupdateTeamWifiStatus(ap.TeamWifiStatuses[5], apStatus.StationStatuses[\"blue3\"])\n\n\treturn nil\n}\n\n// Returns true if the access point's current status matches the last configuration that was sent to it.\nfunc (ap *AccessPoint) statusMatchesLastConfiguration() bool {\n\tfor i := 0; i < 6; i++ {\n\t\tvar expectedTeamId, actualTeamId int\n\t\tif ap.lastConfiguredTeams[i] != nil {\n\t\t\texpectedTeamId = ap.lastConfiguredTeams[i].Id\n\t\t}\n\t\tif ap.TeamWifiStatuses[i] != nil {\n\t\t\tactualTeamId = ap.TeamWifiStatuses[i].TeamId\n\t\t}\n\t\tif expectedTeamId != actualTeamId {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Generates the configuration for the given team's station and adds it to the map. If the team is nil, no entry is\n// added for the station.\nfunc addStation(stationsConfigurations map[string]stationConfiguration, station string, team *model.Team) {\n\tif team == nil {\n\t\treturn\n\t}\n\tstationsConfigurations[station] = stationConfiguration{\n\t\tSsid:   strconv.Itoa(team.Id),\n\t\tWpaKey: team.WpaKey,\n\t}\n}\n\n// Updates the given team's wifi status structure with the given station status.\nfunc updateTeamWifiStatus(teamWifiStatus *TeamWifiStatus, stationStatus *stationStatus) {\n\tif stationStatus == nil {\n\t\tteamWifiStatus.TeamId = 0\n\t\tteamWifiStatus.RadioLinked = false\n\t\tteamWifiStatus.MBits = 0\n\t\tteamWifiStatus.RxRate = 0\n\t\tteamWifiStatus.TxRate = 0\n\t\tteamWifiStatus.SignalNoiseRatio = 0\n\t\tteamWifiStatus.ConnectionQuality = 0\n\t} else {\n\t\tteamWifiStatus.TeamId, _ = strconv.Atoi(stationStatus.Ssid)\n\t\tteamWifiStatus.RadioLinked = stationStatus.IsLinked\n\t\tteamWifiStatus.MBits = stationStatus.BandwidthUsedMbps\n\t\tteamWifiStatus.RxRate = stationStatus.RxRateMbps\n\t\tteamWifiStatus.TxRate = stationStatus.TxRateMbps\n\t\tteamWifiStatus.SignalNoiseRatio = stationStatus.SignalNoiseRatio\n\t\tif quality, ok := connectionQualityMap[stationStatus.ConnectionQuality]; ok {\n\t\t\tteamWifiStatus.ConnectionQuality = quality\n\t\t} else {\n\t\t\t// Default to 0 if there is no mapping for the connection quality string.\n\t\t\tteamWifiStatus.ConnectionQuality = 0\n\t\t}\n\t}\n}\n\n// Returns an abbreviated string representation of the access point status for inclusion in the log.\nfunc (apStatus *accessPointStatus) toLogString() string {\n\tvar buffer bytes.Buffer\n\tbuffer.WriteString(fmt.Sprintf(\"Channel: %d\\n\", apStatus.Channel))\n\tfor _, station := range []string{\"red1\", \"red2\", \"red3\", \"blue1\", \"blue2\", \"blue3\"} {\n\t\tstationStatus := apStatus.StationStatuses[station]\n\t\tssid := \"[empty]\"\n\t\tif stationStatus != nil {\n\t\t\tssid = stationStatus.Ssid\n\t\t}\n\t\tbuffer.WriteString(fmt.Sprintf(\"%-6s %s\\n\", station+\":\", ssid))\n\t}\n\treturn buffer.String()\n}\n"
  },
  {
    "path": "network/access_point_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage network\n\nimport (\n\t\"encoding/json\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"testing\"\n)\n\nfunc TestAccessPoint_ConfigureTeamWifi(t *testing.T) {\n\tvar ap AccessPoint\n\tvar request configurationRequest\n\twifiStatuses := [6]*TeamWifiStatus{{}, {}, {}, {}, {}, {}}\n\tap.SetSettings(\"dummy\", \"password1\", 123, true, wifiStatuses)\n\n\t// Mock the radio API server.\n\tradioServer := httptest.NewServer(\n\t\thttp.HandlerFunc(\n\t\t\tfunc(w http.ResponseWriter, r *http.Request) {\n\t\t\t\tassert.Equal(t, r.URL.Path, \"/configuration\")\n\t\t\t\tassert.Equal(t, \"Bearer password1\", r.Header.Get(\"Authorization\"))\n\t\t\t\tassert.Nil(t, json.NewDecoder(r.Body).Decode(&request))\n\t\t\t},\n\t\t),\n\t)\n\tap.apiUrl = radioServer.URL\n\n\t// All stations assigned.\n\tteam1 := &model.Team{Id: 254, WpaKey: \"11111111\"}\n\tteam2 := &model.Team{Id: 1114, WpaKey: \"22222222\"}\n\tteam3 := &model.Team{Id: 469, WpaKey: \"33333333\"}\n\tteam4 := &model.Team{Id: 2046, WpaKey: \"44444444\"}\n\tteam5 := &model.Team{Id: 2056, WpaKey: \"55555555\"}\n\tteam6 := &model.Team{Id: 1678, WpaKey: \"66666666\"}\n\tassert.Nil(t, ap.ConfigureTeamWifi([6]*model.Team{team1, team2, team3, team4, team5, team6}))\n\tassert.Equal(\n\t\tt,\n\t\tconfigurationRequest{\n\t\t\tChannel: 123,\n\t\t\tStationConfigurations: map[string]stationConfiguration{\n\t\t\t\t\"red1\":  {\"254\", \"11111111\"},\n\t\t\t\t\"red2\":  {\"1114\", \"22222222\"},\n\t\t\t\t\"red3\":  {\"469\", \"33333333\"},\n\t\t\t\t\"blue1\": {\"2046\", \"44444444\"},\n\t\t\t\t\"blue2\": {\"2056\", \"55555555\"},\n\t\t\t\t\"blue3\": {\"1678\", \"66666666\"},\n\t\t\t},\n\t\t},\n\t\trequest,\n\t)\n\n\t// Different channel and only some stations assigned.\n\tap.channel = 456\n\trequest = configurationRequest{}\n\tassert.Nil(t, ap.ConfigureTeamWifi([6]*model.Team{nil, nil, team2, nil, team1, nil}))\n\tassert.Equal(\n\t\tt,\n\t\tconfigurationRequest{\n\t\t\tChannel: 456,\n\t\t\tStationConfigurations: map[string]stationConfiguration{\n\t\t\t\t\"red3\":  {\"1114\", \"22222222\"},\n\t\t\t\t\"blue2\": {\"254\", \"11111111\"},\n\t\t\t},\n\t\t},\n\t\trequest,\n\t)\n\n\t// Radio API returns an error.\n\tradioServer = httptest.NewServer(\n\t\thttp.HandlerFunc(\n\t\t\tfunc(w http.ResponseWriter, r *http.Request) {\n\t\t\t\tassert.Equal(t, r.URL.Path, \"/configuration\")\n\t\t\t\thttp.Error(w, \"oh noes\", 507)\n\t\t\t},\n\t\t),\n\t)\n\tap.apiUrl = radioServer.URL\n\terr := ap.ConfigureTeamWifi([6]*model.Team{team1, team2, team3, team4, team5, team6})\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"returned status 507: oh noes\")\n\t}\n\tassert.Equal(t, \"CONFIGURING\", ap.Status)\n}\n\nfunc TestAccessPoint_updateMonitoring(t *testing.T) {\n\tvar ap AccessPoint\n\twifiStatuses := [6]*TeamWifiStatus{{}, {}, {}, {}, {}, {}}\n\tap.SetSettings(\"dummy\", \"password2\", 123, true, wifiStatuses)\n\n\tapStatus := accessPointStatus{\n\t\tChannel: 456,\n\t\tStatus:  \"ACTIVE\",\n\t\tStationStatuses: map[string]*stationStatus{\n\t\t\t\"red1\":  {\"254\", \"hash111\", \"salt1\", true, 1, 2, 3, 4, \"excellent\"},\n\t\t\t\"red2\":  {\"1114\", \"hash222\", \"salt2\", false, 5, 6, 7, 8, \"\"},\n\t\t\t\"red3\":  {\"469\", \"hash333\", \"salt3\", true, 9, 10, 11, 12, \"caution\"},\n\t\t\t\"blue1\": {\"2046\", \"hash444\", \"salt4\", false, 13, 14, 15, 16, \"warning\"},\n\t\t\t\"blue2\": {\"2056\", \"hash555\", \"salt5\", true, 17, 18, 19, 20, \"nonexistent\"},\n\t\t\t\"blue3\": {\"1678\", \"hash666\", \"salt6\", false, 21, 22, 23, 24, \"good\"},\n\t\t},\n\t}\n\n\t// Mock the radio API server.\n\tradioServer := httptest.NewServer(\n\t\thttp.HandlerFunc(\n\t\t\tfunc(w http.ResponseWriter, r *http.Request) {\n\t\t\t\tassert.Equal(t, r.URL.Path, \"/status\")\n\t\t\t\tassert.Equal(t, \"Bearer password2\", r.Header.Get(\"Authorization\"))\n\t\t\t\tassert.Nil(t, json.NewEncoder(w).Encode(apStatus))\n\t\t\t},\n\t\t),\n\t)\n\tap.apiUrl = radioServer.URL\n\n\t// All stations assigned.\n\tassert.Nil(t, ap.updateMonitoring())\n\tassert.Equal(t, 123, ap.channel) // Should not have changed to reflect the radio API.\n\tassert.Equal(t, \"ACTIVE\", ap.Status)\n\tassert.Equal(t, TeamWifiStatus{254, true, 4, 1, 2, 3, 4}, *wifiStatuses[0])\n\tassert.Equal(t, TeamWifiStatus{1114, false, 8, 5, 6, 7, 0}, *wifiStatuses[1])\n\tassert.Equal(t, TeamWifiStatus{469, true, 12, 9, 10, 11, 1}, *wifiStatuses[2])\n\tassert.Equal(t, TeamWifiStatus{2046, false, 16, 13, 14, 15, 2}, *wifiStatuses[3])\n\tassert.Equal(t, TeamWifiStatus{2056, true, 20, 17, 18, 19, 0}, *wifiStatuses[4])\n\tassert.Equal(t, TeamWifiStatus{1678, false, 24, 21, 22, 23, 3}, *wifiStatuses[5])\n\n\t// Only some stations assigned.\n\tapStatus.Status = \"CONFIGURING\"\n\tapStatus.StationStatuses = map[string]*stationStatus{\n\t\t\"red1\":  nil,\n\t\t\"red2\":  nil,\n\t\t\"red3\":  {\"469\", \"hash333\", \"salt3\", true, 9, 10, 11, 12, \"caution\"},\n\t\t\"blue1\": nil,\n\t\t\"blue2\": {\"2056\", \"hash555\", \"salt5\", true, 17, 18, 19, 20, \"excellent\"},\n\t\t\"blue3\": nil,\n\t}\n\tassert.Nil(t, ap.updateMonitoring())\n\tassert.Equal(t, \"CONFIGURING\", ap.Status)\n\tassert.Equal(t, TeamWifiStatus{}, *wifiStatuses[0])\n\tassert.Equal(t, TeamWifiStatus{}, *wifiStatuses[1])\n\tassert.Equal(t, TeamWifiStatus{469, true, 12, 9, 10, 11, 1}, *wifiStatuses[2])\n\tassert.Equal(t, TeamWifiStatus{}, *wifiStatuses[3])\n\tassert.Equal(t, TeamWifiStatus{2056, true, 20, 17, 18, 19, 4}, *wifiStatuses[4])\n\tassert.Equal(t, TeamWifiStatus{}, *wifiStatuses[5])\n\n\t// Radio API returns an error.\n\tradioServer = httptest.NewServer(\n\t\thttp.HandlerFunc(\n\t\t\tfunc(w http.ResponseWriter, r *http.Request) {\n\t\t\t\tassert.Equal(t, r.URL.Path, \"/status\")\n\t\t\t\thttp.Error(w, \"gosh darn\", 404)\n\t\t\t},\n\t\t),\n\t)\n\tap.apiUrl = radioServer.URL\n\terr := ap.updateMonitoring()\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"returned status 404: gosh darn\")\n\t}\n\tassert.Equal(t, \"ERROR\", ap.Status)\n}\n\nfunc TestAccessPoint_statusMatchesLastConfiguration(t *testing.T) {\n\tvar ap AccessPoint\n\twifiStatuses := [6]*TeamWifiStatus{{}, {}, {}, {}, {}, {}}\n\tap.SetSettings(\"dummy\", \"\", 123, true, wifiStatuses)\n\n\tassert.True(t, ap.statusMatchesLastConfiguration())\n\tteam1 := &model.Team{Id: 254, WpaKey: \"11111111\"}\n\tteam2 := &model.Team{Id: 1678, WpaKey: \"22222222\"}\n\tap.ConfigureTeamWifi([6]*model.Team{nil, team1, nil, team2, nil, nil})\n\tassert.False(t, ap.statusMatchesLastConfiguration())\n\tap.TeamWifiStatuses[1].TeamId = 254\n\tassert.False(t, ap.statusMatchesLastConfiguration())\n\tap.TeamWifiStatuses[3].TeamId = 1677\n\tassert.False(t, ap.statusMatchesLastConfiguration())\n\tap.TeamWifiStatuses[3].TeamId = 1678\n\tassert.True(t, ap.statusMatchesLastConfiguration())\n\tap.TeamWifiStatuses[4].TeamId = 111\n\tassert.False(t, ap.statusMatchesLastConfiguration())\n}\n"
  },
  {
    "path": "network/sccswitch.go",
    "content": "// Copyright 2025 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Methods for configuring an SCC Switch via SSH.\n\npackage network\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"net\"\n\t\"strconv\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/crypto/ssh\"\n)\n\nconst (\n\tsccSwitchConnectTimeoutSec = 5\n\tsccSwitchConfigTimeoutSec  = 5\n\tsccSwitchSSHPort           = 22\n)\n\ntype SCCSwitch struct {\n\taddress                string\n\tport                   int\n\tusername               string\n\tpassword               string\n\tmutex                  sync.Mutex\n\tconnectTimeoutDuration time.Duration\n\tconfigTimeoutDuration  time.Duration\n\tupCommands             []string\n\tdownCommands           []string\n\tStatus                 string\n}\n\nfunc NewSCCSwitch(address, username, password string, upCommands, downCommands []string) *SCCSwitch {\n\treturn &SCCSwitch{\n\t\taddress:                address,\n\t\tport:                   sccSwitchSSHPort,\n\t\tusername:               username,\n\t\tpassword:               password,\n\t\tconnectTimeoutDuration: sccSwitchConnectTimeoutSec * time.Second,\n\t\tconfigTimeoutDuration:  sccSwitchConfigTimeoutSec * time.Second,\n\t\tupCommands:             upCommands,\n\t\tdownCommands:           downCommands,\n\t\tStatus:                 \"UNKNOWN\",\n\t}\n}\n\nfunc (scc *SCCSwitch) SetTeamEthernetEnabled(enabled bool) error {\n\tscc.mutex.Lock()\n\tdefer scc.mutex.Unlock()\n\n\tscc.Status = \"CONFIGURING\"\n\n\tcommandSequence := scc.downCommands\n\tif enabled {\n\t\tcommandSequence = scc.upCommands\n\t}\n\n\t_, err := scc.runCommandSequence(commandSequence)\n\tif err != nil {\n\t\tscc.Status = \"ERROR\"\n\t\treturn fmt.Errorf(\"failed to set team ethernet state: %w\", err)\n\t}\n\n\tif enabled {\n\t\tscc.Status = \"ACTIVE\"\n\t} else {\n\t\tscc.Status = \"DISABLED\"\n\t}\n\n\treturn nil\n}\n\n// Logs into the switch via SSH and runs the given commands in sequence.\n// Returns the output of the commands or an error if the operation fails.\nfunc (scc *SCCSwitch) runCommandSequence(commands []string) (string, error) {\n\t// Open an SSH connection to the switch.\n\tsshConfig := &ssh.ClientConfig{\n\t\tUser: scc.username,\n\t\tAuth: []ssh.AuthMethod{\n\t\t\tssh.Password(scc.password),\n\t\t},\n\t\tHostKeyCallback: ssh.InsecureIgnoreHostKey(), // Allow any host key for simplicity\n\t\tTimeout:         scc.connectTimeoutDuration,\n\t}\n\tclient, err := ssh.Dial(\"tcp\", net.JoinHostPort(scc.address, strconv.Itoa(scc.port)), sshConfig)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"failed to connect to SSH: %w\", err)\n\t}\n\tdefer client.Close()\n\n\t// Create an interactive session to run commands\n\tsession, err := client.NewSession()\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"failed to create SSH session: %w\", err)\n\t}\n\tdefer session.Close()\n\n\t// Capture the session output\n\tvar outputBuffer bytes.Buffer\n\tsession.Stdout = &outputBuffer\n\tsession.Stderr = &outputBuffer\n\n\tinputPipe, err := session.StdinPipe()\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"failed to create input pipe: %w\", err)\n\t}\n\n\tmodes := ssh.TerminalModes{ssh.ECHO: 0}\n\tif err := session.RequestPty(\"vt100\", 80, 40, modes); err != nil {\n\t\treturn \"\", fmt.Errorf(\"failed to configure shell: %w\", err)\n\t}\n\n\t// Launch the switch's interactive shell\n\terr = session.Shell()\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"failed to start shell: %w\", err)\n\t}\n\n\t// Submit the commands to the switch\n\tfor _, command := range commands {\n\t\tif _, err := fmt.Fprintln(inputPipe, command); err != nil {\n\t\t\treturn \"\", fmt.Errorf(\"failed to write command to switch: %w\", err)\n\t\t}\n\t}\n\n\t// Wait for the remote to process the commands and exit the shell\n\tdone := make(chan error, 1)\n\tgo func() {\n\t\tdone <- session.Wait()\n\t}()\n\tselect {\n\tcase err := <-done:\n\t\tif err != nil {\n\t\t\treturn \"\", fmt.Errorf(\"failed to run command sequence: %w\", err)\n\t\t}\n\tcase <-time.After(scc.configTimeoutDuration):\n\t\treturn \"\", fmt.Errorf(\"timed out waiting for command sequence to complete\")\n\t}\n\n\treturn outputBuffer.String(), nil\n}\n"
  },
  {
    "path": "network/sccswitch_test.go",
    "content": "// Copyright 2025 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage network\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"golang.org/x/crypto/ed25519\"\n\t\"golang.org/x/crypto/ssh\"\n)\n\nfunc TestConfigureSCC(t *testing.T) {\n\tusername := \"username\"\n\tpassword := \"password\"\n\tupCommands := []string{\n\t\t\"up_line1\",\n\t\t\"up line 2\",\n\t\t\"up-line/3\",\n\t\t\"up line 4\",\n\t\t\"up line 5\",\n\t\t\"exit\",\n\t}\n\tdownCommands := []string{\n\t\t\"down_line1\",\n\t\t\"down line 2\",\n\t\t\"down-line/3\",\n\t\t\"down line 4\",\n\t\t\"down line 5\",\n\t\t\"exit\",\n\t}\n\tscc := NewSCCSwitch(\"127.0.0.1\", username, password, upCommands, downCommands)\n\tscc.port = 9150\n\tscc.connectTimeoutDuration = 10 * time.Millisecond\n\tscc.configTimeoutDuration = 15 * time.Millisecond\n\n\tvar receivedUpCommands, receivedDownCommands []string\n\n\t// Set the switch to the down state\n\tmockSSHSwitch(t, scc.port, username, password, &receivedDownCommands)\n\tassert.Nil(t, scc.SetTeamEthernetEnabled(false))\n\tassert.Equal(t, downCommands, receivedDownCommands)\n\tassert.Equal(t, \"DISABLED\", scc.Status)\n\n\t// Set the switch to the up state\n\tscc.port += 1\n\tmockSSHSwitch(t, scc.port, username, password, &receivedUpCommands)\n\tassert.Nil(t, scc.SetTeamEthernetEnabled(true))\n\tassert.Equal(t, upCommands, receivedUpCommands)\n\tassert.Equal(t, \"ACTIVE\", scc.Status)\n}\n\nfunc mockSSHSwitch(t *testing.T, port int, username, password string, commands *[]string) {\n\tgo func() {\n\t\t// Create a simple SSH server that accepts a connection with password authentication\n\t\t_, privateKey, err := ed25519.GenerateKey(nil)\n\t\tassert.Nil(t, err)\n\t\tsigner, err := ssh.NewSignerFromKey(privateKey)\n\t\tassert.Nil(t, err)\n\t\tconfig := &ssh.ServerConfig{\n\t\t\tPasswordCallback: func(conn ssh.ConnMetadata, pass []byte) (*ssh.Permissions, error) {\n\t\t\t\tassert.Equal(t, username, conn.User())\n\t\t\t\tassert.Equal(t, password, string(pass))\n\t\t\t\treturn nil, nil\n\t\t\t},\n\t\t}\n\t\tconfig.AddHostKey(signer)\n\t\tlistener, err := net.Listen(\"tcp\", fmt.Sprintf(\":%d\", port))\n\t\tassert.Nil(t, err)\n\t\tnConn, err := listener.Accept()\n\t\tassert.Nil(t, err)\n\t\tdefer nConn.Close()\n\t\tconn, chans, reqs, err := ssh.NewServerConn(nConn, config)\n\t\tassert.Nil(t, err)\n\t\tdefer conn.Close()\n\n\t\t// Ignore all client requests\n\t\tgo ssh.DiscardRequests(reqs)\n\n\t\t// Wait for the client to connect and request a session\n\t\trawChannel := <-chans\n\t\tassert.Equal(t, \"session\", rawChannel.ChannelType())\n\t\tchannel, requests, err := rawChannel.Accept()\n\t\tassert.Nil(t, err)\n\t\tdefer channel.Close()\n\n\t\t// Wait for the client to request a PTY\n\t\treq := <-requests\n\t\tassert.Equal(t, \"pty-req\", req.Type)\n\t\treq.Reply(true, nil)\n\n\t\t// Wait for the client to request a shell\n\t\treq = <-requests\n\t\tassert.Equal(t, \"shell\", req.Type)\n\t\treq.Reply(true, nil)\n\n\t\t// Read all data sent by the client\n\t\tvar receivedData bytes.Buffer\n\t\tdone := make(chan struct{})\n\t\tgo func() {\n\t\t\tdefer close(done)\n\t\t\tbuffer := make([]byte, 1024)\n\t\t\tfor {\n\t\t\t\tn, err := channel.Read(buffer)\n\t\t\t\tif err != nil {\n\t\t\t\t\tassert.Equal(t, io.EOF, err)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\treceivedData.Write(buffer[:n])\n\t\t\t}\n\t\t}()\n\n\t\tselect {\n\t\tcase <-done:\n\t\t\t// Client closed the channel\n\t\tcase <-time.After(5 * time.Millisecond):\n\t\t\t// All data should be read by now. Close the connection\n\t\t}\n\n\t\t*commands = strings.Split(receivedData.String(), \"\\n\")\n\t\tif len(*commands) > 0 && (*commands)[len(*commands)-1] == \"\" {\n\t\t\t*commands = (*commands)[:len(*commands)-1] // Remove trailing newline\n\t\t}\n\n\t\t// Send an exit command to cleanly close the session\n\t\tchannel.SendRequest(\"exit-status\", false, []byte{0, 0, 0, 0})\n\t}()\n\ttime.Sleep(100 * time.Millisecond) // Give it some time to open the socket.\n}\n"
  },
  {
    "path": "network/switch.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Methods for configuring a Cisco Switch 3500-series switch for team VLANs.\n\npackage network\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"net\"\n\t\"sync\"\n\t\"time\"\n)\n\nconst (\n\tswitchConfigBackoffDurationSec = 5\n\tswitchConfigPauseDurationSec   = 2\n\tswitchTeamGatewayAddress       = 4\n\tswitchTelnetPort               = 23\n)\n\nconst (\n\tred1Vlan  = 10\n\tred2Vlan  = 20\n\tred3Vlan  = 30\n\tblue1Vlan = 40\n\tblue2Vlan = 50\n\tblue3Vlan = 60\n)\n\ntype Switch struct {\n\taddress               string\n\tport                  int\n\tpassword              string\n\tmutex                 sync.Mutex\n\tconfigBackoffDuration time.Duration\n\tconfigPauseDuration   time.Duration\n\tStatus                string\n}\n\nconst DefaultServerIpAddress = \"10.0.100.5\"\n\nvar ServerIpAddress = DefaultServerIpAddress // The DS will try to connect to this address only.\n\nfunc NewSwitch(address, password string) *Switch {\n\treturn &Switch{\n\t\taddress:               address,\n\t\tport:                  switchTelnetPort,\n\t\tpassword:              password,\n\t\tconfigBackoffDuration: switchConfigBackoffDurationSec * time.Second,\n\t\tconfigPauseDuration:   switchConfigPauseDurationSec * time.Second,\n\t\tStatus:                \"UNKNOWN\",\n\t}\n}\n\n// Sets up wired networks for the given set of teams.\nfunc (sw *Switch) ConfigureTeamEthernet(teams [6]*model.Team) error {\n\t// Make sure multiple configurations aren't being set at the same time.\n\tsw.mutex.Lock()\n\tdefer sw.mutex.Unlock()\n\tsw.Status = \"CONFIGURING\"\n\n\t// Remove old team VLANs to reset the switch state.\n\tremoveTeamVlansCommand := \"\"\n\tfor vlan := 10; vlan <= 60; vlan += 10 {\n\t\tremoveTeamVlansCommand += fmt.Sprintf(\n\t\t\t\"interface Vlan%d\\nno ip address\\nno ip dhcp pool dhcp%d\\n\", vlan, vlan,\n\t\t)\n\t}\n\t_, err := sw.runConfigCommand(removeTeamVlansCommand)\n\tif err != nil {\n\t\tsw.Status = \"ERROR\"\n\t\treturn err\n\t}\n\ttime.Sleep(sw.configPauseDuration)\n\n\t// Create the new team VLANs.\n\taddTeamVlansCommand := \"\"\n\taddTeamVlan := func(team *model.Team, vlan int) {\n\t\tif team == nil {\n\t\t\treturn\n\t\t}\n\t\tteamPartialIp := fmt.Sprintf(\"%d.%d\", team.Id/100, team.Id%100)\n\t\taddTeamVlansCommand += fmt.Sprintf(\n\t\t\t\"ip dhcp excluded-address 10.%s.1 10.%s.19\\n\"+\n\t\t\t\t\"ip dhcp excluded-address 10.%s.200 10.%s.254\\n\"+\n\t\t\t\t\"ip dhcp pool dhcp%d\\n\"+\n\t\t\t\t\"network 10.%s.0 255.255.255.0\\n\"+\n\t\t\t\t\"default-router 10.%s.%d\\n\"+\n\t\t\t\t\"lease 7\\n\"+\n\t\t\t\t\"interface Vlan%d\\nip address 10.%s.%d 255.255.255.0\\n\",\n\t\t\tteamPartialIp,\n\t\t\tteamPartialIp,\n\t\t\tteamPartialIp,\n\t\t\tteamPartialIp,\n\t\t\tvlan,\n\t\t\tteamPartialIp,\n\t\t\tteamPartialIp,\n\t\t\tswitchTeamGatewayAddress,\n\t\t\tvlan,\n\t\t\tteamPartialIp,\n\t\t\tswitchTeamGatewayAddress,\n\t\t)\n\t}\n\taddTeamVlan(teams[0], red1Vlan)\n\taddTeamVlan(teams[1], red2Vlan)\n\taddTeamVlan(teams[2], red3Vlan)\n\taddTeamVlan(teams[3], blue1Vlan)\n\taddTeamVlan(teams[4], blue2Vlan)\n\taddTeamVlan(teams[5], blue3Vlan)\n\tif len(addTeamVlansCommand) > 0 {\n\t\t_, err = sw.runConfigCommand(addTeamVlansCommand)\n\t\tif err != nil {\n\t\t\tsw.Status = \"ERROR\"\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Give some time for the configuration to take before another one can be attempted.\n\ttime.Sleep(sw.configBackoffDuration)\n\n\tsw.Status = \"ACTIVE\"\n\treturn nil\n}\n\n// Logs into the switch via Telnet and runs the given command in user exec mode. Reads the output and\n// returns it as a string.\nfunc (sw *Switch) runCommand(command string) (string, error) {\n\t// Open a Telnet connection to the switch.\n\tconn, err := net.Dial(\"tcp\", fmt.Sprintf(\"%s:%d\", sw.address, sw.port))\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdefer conn.Close()\n\n\t// Login to the AP, send the command, and log out all at once.\n\twriter := bufio.NewWriter(conn)\n\t_, err = writer.WriteString(\n\t\tfmt.Sprintf(\n\t\t\t\"%s\\nenable\\n%s\\nterminal length 0\\n%sexit\\n\", sw.password, sw.password,\n\t\t\tcommand,\n\t\t),\n\t)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\terr = writer.Flush()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\t// Read the response.\n\tvar reader bytes.Buffer\n\t_, err = reader.ReadFrom(conn)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn reader.String(), nil\n}\n\n// Logs into the switch via Telnet and runs the given command in global configuration mode. Reads the output\n// and returns it as a string.\nfunc (sw *Switch) runConfigCommand(command string) (string, error) {\n\treturn sw.runCommand(fmt.Sprintf(\"config terminal\\n%send\\n\", command))\n}\n"
  },
  {
    "path": "network/switch_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage network\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"net\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestConfigureSwitch(t *testing.T) {\n\tsw := NewSwitch(\"127.0.0.1\", \"password\")\n\tassert.Equal(t, \"UNKNOWN\", sw.Status)\n\tsw.port = 9050\n\tsw.configBackoffDuration = time.Millisecond\n\tsw.configPauseDuration = time.Millisecond\n\tvar command1, command2 string\n\texpectedResetCommand := \"password\\nenable\\npassword\\nterminal length 0\\nconfig terminal\\n\" +\n\t\t\"interface Vlan10\\nno ip address\\nno ip dhcp pool dhcp10\\n\" +\n\t\t\"interface Vlan20\\nno ip address\\nno ip dhcp pool dhcp20\\n\" +\n\t\t\"interface Vlan30\\nno ip address\\nno ip dhcp pool dhcp30\\n\" +\n\t\t\"interface Vlan40\\nno ip address\\nno ip dhcp pool dhcp40\\n\" +\n\t\t\"interface Vlan50\\nno ip address\\nno ip dhcp pool dhcp50\\n\" +\n\t\t\"interface Vlan60\\nno ip address\\nno ip dhcp pool dhcp60\\n\" +\n\t\t\"end\\nexit\\n\"\n\n\t// Should remove all previous VLANs and do nothing else if current configuration is blank.\n\tmockTelnet(t, sw.port, &command1, &command2)\n\tassert.Nil(t, sw.ConfigureTeamEthernet([6]*model.Team{nil, nil, nil, nil, nil, nil}))\n\tassert.Equal(t, expectedResetCommand, command1)\n\tassert.Equal(t, \"\", command2)\n\tassert.Equal(t, \"ACTIVE\", sw.Status)\n\n\t// Should configure one team if only one is present.\n\tsw.port += 1\n\tmockTelnet(t, sw.port, &command1, &command2)\n\tassert.Nil(t, sw.ConfigureTeamEthernet([6]*model.Team{nil, nil, nil, nil, {Id: 254}, nil}))\n\tassert.Equal(t, expectedResetCommand, command1)\n\tassert.Equal(\n\t\tt,\n\t\t\"password\\nenable\\npassword\\nterminal length 0\\nconfig terminal\\n\"+\n\t\t\t\"ip dhcp excluded-address 10.2.54.1 10.2.54.19\\nip dhcp excluded-address 10.2.54.200 10.2.54.254\\nip dhcp pool dhcp50\\n\"+\n\t\t\t\"network 10.2.54.0 255.255.255.0\\ndefault-router 10.2.54.4\\nlease 7\\n\"+\n\t\t\t\"interface Vlan50\\nip address 10.2.54.4 255.255.255.0\\n\"+\n\t\t\t\"end\\nexit\\n\",\n\t\tcommand2,\n\t)\n\n\t// Should configure all teams if all are present.\n\tsw.port += 1\n\tmockTelnet(t, sw.port, &command1, &command2)\n\tassert.Nil(\n\t\tt,\n\t\tsw.ConfigureTeamEthernet([6]*model.Team{{Id: 1114}, {Id: 254}, {Id: 296}, {Id: 1503}, {Id: 1678}, {Id: 1538}}),\n\t)\n\tassert.Equal(t, expectedResetCommand, command1)\n\tassert.Equal(\n\t\tt,\n\t\t\"password\\nenable\\npassword\\nterminal length 0\\nconfig terminal\\n\"+\n\t\t\t\"ip dhcp excluded-address 10.11.14.1 10.11.14.19\\nip dhcp excluded-address 10.11.14.200 10.11.14.254\\nip dhcp pool dhcp10\\n\"+\n\t\t\t\"network 10.11.14.0 255.255.255.0\\ndefault-router 10.11.14.4\\nlease 7\\n\"+\n\t\t\t\"interface Vlan10\\nip address 10.11.14.4 255.255.255.0\\n\"+\n\t\t\t\"ip dhcp excluded-address 10.2.54.1 10.2.54.19\\nip dhcp excluded-address 10.2.54.200 10.2.54.254\\nip dhcp pool dhcp20\\n\"+\n\t\t\t\"network 10.2.54.0 255.255.255.0\\ndefault-router 10.2.54.4\\nlease 7\\n\"+\n\t\t\t\"interface Vlan20\\nip address 10.2.54.4 255.255.255.0\\n\"+\n\t\t\t\"ip dhcp excluded-address 10.2.96.1 10.2.96.19\\nip dhcp excluded-address 10.2.96.200 10.2.96.254\\nip dhcp pool dhcp30\\n\"+\n\t\t\t\"network 10.2.96.0 255.255.255.0\\ndefault-router 10.2.96.4\\nlease 7\\n\"+\n\t\t\t\"interface Vlan30\\nip address 10.2.96.4 255.255.255.0\\n\"+\n\t\t\t\"ip dhcp excluded-address 10.15.3.1 10.15.3.19\\nip dhcp excluded-address 10.15.3.200 10.15.3.254\\nip dhcp pool dhcp40\\n\"+\n\t\t\t\"network 10.15.3.0 255.255.255.0\\ndefault-router 10.15.3.4\\nlease 7\\n\"+\n\t\t\t\"interface Vlan40\\nip address 10.15.3.4 255.255.255.0\\n\"+\n\t\t\t\"ip dhcp excluded-address 10.16.78.1 10.16.78.19\\nip dhcp excluded-address 10.16.78.200 10.16.78.254\\nip dhcp pool dhcp50\\n\"+\n\t\t\t\"network 10.16.78.0 255.255.255.0\\ndefault-router 10.16.78.4\\nlease 7\\n\"+\n\t\t\t\"interface Vlan50\\nip address 10.16.78.4 255.255.255.0\\n\"+\n\t\t\t\"ip dhcp excluded-address 10.15.38.1 10.15.38.19\\nip dhcp excluded-address 10.15.38.200 10.15.38.254\\nip dhcp pool dhcp60\\n\"+\n\t\t\t\"network 10.15.38.0 255.255.255.0\\ndefault-router 10.15.38.4\\nlease 7\\n\"+\n\t\t\t\"interface Vlan60\\nip address 10.15.38.4 255.255.255.0\\n\"+\n\t\t\t\"end\\nexit\\n\",\n\t\tcommand2,\n\t)\n}\n\nfunc mockTelnet(t *testing.T, port int, command1 *string, command2 *string) {\n\tgo func() {\n\t\tln, err := net.Listen(\"tcp\", fmt.Sprintf(\":%d\", port))\n\t\tassert.Nil(t, err)\n\t\tdefer ln.Close()\n\t\t*command1 = \"\"\n\t\t*command2 = \"\"\n\n\t\t// Fake the first connection.\n\t\tconn1, err := ln.Accept()\n\t\tassert.Nil(t, err)\n\t\tconn1.SetReadDeadline(time.Now().Add(10 * time.Millisecond))\n\t\tvar reader bytes.Buffer\n\t\treader.ReadFrom(conn1)\n\t\t*command1 = reader.String()\n\t\tconn1.Close()\n\n\t\t// Fake the second connection.\n\t\tconn2, err := ln.Accept()\n\t\tassert.Nil(t, err)\n\t\tconn2.SetReadDeadline(time.Now().Add(10 * time.Millisecond))\n\t\treader.Reset()\n\t\treader.ReadFrom(conn2)\n\t\t*command2 = reader.String()\n\t\tconn2.Close()\n\t}()\n\ttime.Sleep(100 * time.Millisecond) // Give it some time to open the socket.\n}\n"
  },
  {
    "path": "network/testdata/iwinfo_0_teams.txt",
    "content": "wlan0     ESSID: \"no-team-1\"\n          Access Point: 00:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -94 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-1   ESSID: \"no-team-2\"\n          Access Point: 02:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -94 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-2   ESSID: \"no-team-3\"\n          Access Point: 06:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -94 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-3   ESSID: \"no-team-4\"\n          Access Point: 0A:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -94 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-4   ESSID: \"no-team-5\"\n          Access Point: 0E:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -94 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-5   ESSID: \"no-team-6\"\n          Access Point: 12:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -94 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan1     ESSID: unknown\n          Access Point: 00:00:00:00:00:00\n          Mode: Client  Channel: unknown (unknown)\n          Tx-Power: unknown  Link Quality: unknown/70\n          Signal: unknown  Noise: unknown\n          Bit Rate: unknown\n          Encryption: unknown\n          Type: nl80211  HW Mode(s): 802.11bgn\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy1\n\n"
  },
  {
    "path": "network/testdata/iwinfo_2_teams.txt",
    "content": "wlan0     ESSID: \"no-team-1\"\n          Access Point: 00:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -94 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-1   ESSID: \"2471\"\n          Access Point: 02:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: 2/70\n          Signal: unknown  Noise: -94 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-2   ESSID: \"no-team-3\"\n          Access Point: 06:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -94 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-3   ESSID: \"254\"\n          Access Point: 0A:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -94 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-4   ESSID: \"no-team-5\"\n          Access Point: 0E:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -94 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-5   ESSID: \"no-team-6\"\n          Access Point: 12:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -94 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan1     ESSID: unknown\n          Access Point: 00:00:00:00:00:00\n          Mode: Client  Channel: unknown (unknown)\n          Tx-Power: unknown  Link Quality: unknown/70\n          Signal: unknown  Noise: unknown\n          Bit Rate: unknown\n          Encryption: unknown\n          Type: nl80211  HW Mode(s): 802.11bgn\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy1\n\n"
  },
  {
    "path": "network/testdata/iwinfo_6_teams.txt",
    "content": "wlan0     ESSID: \"254\"\n          Access Point: 00:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -96 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-1   ESSID: \"1678\"\n          Access Point: 02:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -96 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-2   ESSID: \"2910\"\n          Access Point: 06:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: 23/70\n          Signal: -85 dBm  Noise: -96 dBm\n          Bit Rate: 6.0 MBit/s\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-3   ESSID: \"604\"\n          Access Point: 0A:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -96 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-4   ESSID: \"8\"\n          Access Point: 0E:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -96 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-5   ESSID: \"2471\"\n          Access Point: 12:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: 55/70\n          Signal: -55 dBm  Noise: -96 dBm\n          Bit Rate: 6.0 MBit/s\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan1     ESSID: unknown\n          Access Point: 00:00:00:00:00:00\n          Mode: Client  Channel: unknown (unknown)\n          Tx-Power: unknown  Link Quality: unknown/70\n          Signal: unknown  Noise: unknown\n          Bit Rate: unknown\n          Encryption: unknown\n          Type: nl80211  HW Mode(s): 802.11bgn\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy1\n\n"
  },
  {
    "path": "network/testdata/iwinfo_invalid.txt",
    "content": "wlan0     ESSID: \"254\"\n          Access Point: 00:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -96 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-1   ESSID: \"1678\"\n          Access Point: 02:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -96 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-2   ESSID: \"2910\"\n          Access Point: 06:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: 23/70\n          Signal: -85 dBm  Noise: -96 dBm\n          Bit Rate: 6.0 MBit/s\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan0-3   ESSID: \"604\"\n          Access Point: 0A:25:9C:14:65:8A\n          Mode: Master  Channel: 161 (5.805 GHz)\n          Tx-Power: 23 dBm  Link Quality: unknown/70\n          Signal: unknown  Noise: -96 dBm\n          Bit Rate: unknown\n          Encryption: WPA2 PSK (CCMP)\n          Type: nl80211  HW Mode(s): 802.11nac\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy0\n\nwlan1     ESSID: unknown\n          Access Point: 00:00:00:00:00:00\n          Mode: Client  Channel: unknown (unknown)\n          Tx-Power: unknown  Link Quality: unknown/70\n          Signal: unknown  Noise: unknown\n          Bit Rate: unknown\n          Encryption: unknown\n          Type: nl80211  HW Mode(s): 802.11bgn\n          Hardware: 11AB:2A55 11AB:0000 [Marvell 88W8864]\n          TX power offset: none\n          Frequency offset: none\n          Supports VAPs: yes  PHY name: phy1\n\n"
  },
  {
    "path": "partner/blackmagic.go",
    "content": "// Copyright 2024 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client for interfacing with one or more Blackmagic HyperDeck devices to automatically record matches.\n\npackage partner\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net\"\n\t\"strings\"\n\t\"time\"\n)\n\nconst (\n\tblackmagicPort             = 9993\n\tblackmagicConnectTimeoutMs = 100\n\tblackmagicStopDelaySec     = 10\n)\n\ntype BlackmagicClient struct {\n\tdeviceAddresses []string\n}\n\n// Creates a new Blackmagic client with the given device addresses as a comma-separated string.\nfunc NewBlackmagicClient(addresses string) *BlackmagicClient {\n\tvar deviceAddresses []string\n\tfor _, address := range strings.Split(addresses, \",\") {\n\t\ttrimmedAddress := strings.TrimSpace(address)\n\t\tif trimmedAddress != \"\" {\n\t\t\tdeviceAddresses = append(deviceAddresses, trimmedAddress)\n\t\t}\n\t}\n\treturn &BlackmagicClient{deviceAddresses: deviceAddresses}\n}\n\n// Starts recording across all devices.\nfunc (client *BlackmagicClient) StartRecording() {\n\tclient.sendCommand(\"record\")\n}\n\n// Stops recording across all devices after a delay.\nfunc (client *BlackmagicClient) StopRecording() {\n\ttime.Sleep(blackmagicStopDelaySec * time.Second)\n\tclient.sendCommand(\"stop\")\n}\n\n// Connects to all devices and executes the given command.\nfunc (client *BlackmagicClient) sendCommand(command string) {\n\tfor _, address := range client.deviceAddresses {\n\t\tconn, err := net.DialTimeout(\n\t\t\t\"tcp\", fmt.Sprintf(\"%s:%d\", address, blackmagicPort), blackmagicConnectTimeoutMs*time.Millisecond,\n\t\t)\n\t\tif err != nil {\n\t\t\tlog.Printf(\"Failed to connect to Blackmagic device at %s: %v\", address, err)\n\t\t\tcontinue\n\t\t}\n\t\tdefer conn.Close()\n\t\t_, err = fmt.Fprint(conn, command+\"\\n\")\n\t\tif err != nil {\n\t\t\tlog.Printf(\"Failed to send '%s' command to Blackmagic device at %s: %v\", command, address, err)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "partner/blackmagic_test.go",
    "content": "// Copyright 2024 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage partner\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestNewBlackmagicClient(t *testing.T) {\n\t// Test with an empty address.\n\tclient := NewBlackmagicClient(\"\")\n\tassert.Equal(t, 0, len(client.deviceAddresses))\n\n\t// Test with whitespace in the address.\n\tclient = NewBlackmagicClient(\"  \")\n\tassert.Equal(t, 0, len(client.deviceAddresses))\n\n\t// Test with a single address.\n\tclient = NewBlackmagicClient(\"1.2.3.4\")\n\tif assert.Equal(t, 1, len(client.deviceAddresses)) {\n\t\tassert.Equal(t, \"1.2.3.4\", client.deviceAddresses[0])\n\t}\n\n\t// Test with multiple addresses.\n\tclient = NewBlackmagicClient(\" 1.2.3.4 ,  5.6.7.8   \")\n\tif assert.Equal(t, 2, len(client.deviceAddresses)) {\n\t\tassert.Equal(t, \"1.2.3.4\", client.deviceAddresses[0])\n\t\tassert.Equal(t, \"5.6.7.8\", client.deviceAddresses[1])\n\t}\n}\n"
  },
  {
    "path": "partner/companion.go",
    "content": "// Copyright 2025 Team 254. All Rights Reserved.\n// Author: kyle@team2481.com (Kyle Waremburg)\n//\n// Client for interfacing with Bitfocus Companion to automatically trigger events during matches.\n\npackage partner\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net\"\n\t\"time\"\n)\n\nconst (\n\tcompanionConnectTimeoutMs = 1000\n)\n\n// CompanionEvent represents the different events that can be sent to Companion\ntype CompanionEvent string\n\nconst (\n\tEventMatchPreview      CompanionEvent = \"matchPreview\"\n\tEventShowOverlay       CompanionEvent = \"showOverlay\"\n\tEventMatchStart        CompanionEvent = \"matchStart\"\n\tEventTeleopStart       CompanionEvent = \"teleopStart\"\n\tEventEndgameStart      CompanionEvent = \"endgameStart\"\n\tEventMatchEnd          CompanionEvent = \"matchEnd\"\n\tEventShowFinalScore    CompanionEvent = \"showFinalScore\"\n\tEventAllianceSelection CompanionEvent = \"allianceSelection\"\n\tEventMatchAbort        CompanionEvent = \"matchAbort\"\n)\n\n// CompanionEventConfig holds the page/row/column configuration for a specific event\ntype CompanionEventConfig struct {\n\tPage   int\n\tRow    int\n\tColumn int\n}\n\ntype CompanionClient struct {\n\taddress string\n\tport    int\n\tevents  map[CompanionEvent]CompanionEventConfig\n}\n\n// Creates a new Companion client with the given configuration.\nfunc NewCompanionClient(\n\taddress string,\n\tport int,\n\teventConfigs map[CompanionEvent]CompanionEventConfig,\n) *CompanionClient {\n\treturn &CompanionClient{\n\t\taddress: address,\n\t\tport:    port,\n\t\tevents:  eventConfigs,\n\t}\n}\n\n// Sends an event to Companion if enabled and the event is configured.\nfunc (client *CompanionClient) SendEvent(event CompanionEvent) {\n\tif !client.IsEnabled() {\n\t\treturn\n\t}\n\n\tconfig, exists := client.events[event]\n\tif !exists || config.Page == 0 {\n\t\t// Event not configured or has invalid coordinates\n\t\treturn\n\t}\n\n\tcommand := fmt.Sprintf(\"LOCATION %d/%d/%d PRESS\\n\", config.Page, config.Row, config.Column)\n\tclient.sendCommand(command)\n}\n\n// Connects to Companion and executes the given command.\nfunc (client *CompanionClient) sendCommand(command string) {\n\tif !client.IsEnabled() {\n\t\treturn\n\t}\n\n\taddress := fmt.Sprintf(\"%s:%d\", client.address, client.port)\n\tconn, err := net.DialTimeout(\"tcp\", address, companionConnectTimeoutMs*time.Millisecond)\n\tif err != nil {\n\t\tlog.Printf(\"Failed to connect to Companion at %s: %v\", address, err)\n\t\treturn\n\t}\n\tdefer conn.Close()\n\n\t_, err = fmt.Fprint(conn, command)\n\tif err != nil {\n\t\tlog.Printf(\"Failed to send command '%s' to Companion at %s: %v\", command, address, err)\n\t}\n}\n\n// IsEnabled returns whether the Companion client is enabled (address is not blank)\nfunc (client *CompanionClient) IsEnabled() bool {\n\treturn client.address != \"\"\n}\n\n// GetEventConfig returns the configuration for a specific event\nfunc (client *CompanionClient) GetEventConfig(event CompanionEvent) (CompanionEventConfig, bool) {\n\tconfig, exists := client.events[event]\n\treturn config, exists\n}\n"
  },
  {
    "path": "partner/companion_test.go",
    "content": "// Copyright 2025 Team 254. All Rights Reserved.\n// Author: kyle@team2481.com (Kyle Waremburg)\n//\n// Tests for the Companion client.\n\npackage partner\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestNewCompanionClient(t *testing.T) {\n\t// Test with disabled client (blank address)\n\tclient := NewCompanionClient(\"\", 51234, nil)\n\tassert.Equal(t, \"\", client.address)\n\tassert.Equal(t, 51234, client.port)\n\tassert.Nil(t, client.events)\n\n\t// Test with enabled client and event configs\n\teventConfigs := map[CompanionEvent]CompanionEventConfig{\n\t\tEventMatchStart: {Page: 1, Row: 2, Column: 3},\n\t\tEventMatchEnd:   {Page: 2, Row: 3, Column: 4},\n\t}\n\tclient = NewCompanionClient(\"192.168.1.100\", 51235, eventConfigs)\n\tassert.Equal(t, \"192.168.1.100\", client.address)\n\tassert.Equal(t, 51235, client.port)\n\tassert.Equal(t, eventConfigs, client.events)\n}\n\nfunc TestCompanionClient_IsEnabled(t *testing.T) {\n\tclient := NewCompanionClient(\"\", 51234, nil)\n\tassert.False(t, client.IsEnabled())\n\n\tclient = NewCompanionClient(\"127.0.0.1\", 51234, nil)\n\tassert.True(t, client.IsEnabled())\n}\n\nfunc TestCompanionClient_GetEventConfig(t *testing.T) {\n\teventConfigs := map[CompanionEvent]CompanionEventConfig{\n\t\tEventMatchStart: {Page: 1, Row: 2, Column: 3},\n\t\tEventMatchEnd:   {Page: 2, Row: 3, Column: 4},\n\t}\n\tclient := NewCompanionClient(\"127.0.0.1\", 51234, eventConfigs)\n\n\t// Test existing event\n\tconfig, exists := client.GetEventConfig(EventMatchStart)\n\tassert.True(t, exists)\n\tassert.Equal(t, 1, config.Page)\n\tassert.Equal(t, 2, config.Row)\n\tassert.Equal(t, 3, config.Column)\n\n\t// Test non-existing event\n\tconfig, exists = client.GetEventConfig(EventTeleopStart)\n\tassert.False(t, exists)\n\tassert.Equal(t, CompanionEventConfig{}, config)\n}\n\nfunc TestCompanionClient_SendEvent_Disabled(t *testing.T) {\n\t// Test that disabled client doesn't send events\n\tclient := NewCompanionClient(\"\", 51234, nil)\n\n\t// This should not panic or cause errors when client is disabled\n\tclient.SendEvent(EventMatchStart)\n}\n\nfunc TestCompanionClient_SendEvent_UnconfiguredEvent(t *testing.T) {\n\t// Test that unconfigured events are ignored\n\teventConfigs := map[CompanionEvent]CompanionEventConfig{\n\t\tEventMatchStart: {Page: 1, Row: 2, Column: 3},\n\t}\n\tclient := NewCompanionClient(\"127.0.0.1\", 51234, eventConfigs)\n\n\t// This should not panic or cause errors for unconfigured events\n\tclient.SendEvent(EventTeleopStart)\n}\n\nfunc TestCompanionClient_SendEvent_InvalidConfig(t *testing.T) {\n\t// Test that events with invalid coordinates (0 values) are ignored\n\teventConfigs := map[CompanionEvent]CompanionEventConfig{\n\t\tEventMatchStart:  {Page: 0, Row: 2, Column: 3}, // Invalid page\n\t\tEventMatchEnd:    {Page: 1, Row: 0, Column: 3}, // Invalid row\n\t\tEventTeleopStart: {Page: 1, Row: 2, Column: 0}, // Invalid column\n\t}\n\tclient := NewCompanionClient(\"127.0.0.1\", 51234, eventConfigs)\n\n\t// These should not panic or cause errors for invalid configurations\n\tclient.SendEvent(EventMatchStart)\n\tclient.SendEvent(EventMatchEnd)\n\tclient.SendEvent(EventTeleopStart)\n}\n"
  },
  {
    "path": "partner/nexus.go",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Methods for pulling match lineups from Nexus for FRC.\n\npackage partner\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"io\"\n\t\"net/http\"\n\t\"strconv\"\n)\n\nconst nexusBaseUrl = \"https://frc.nexus\"\nconst nexusApiKey = \"Vn6D9y80kQcNijDItKOJHg8yYEk\"\n\ntype NexusClient struct {\n\tBaseUrl   string\n\tapiKey    string\n\teventCode string\n}\n\ntype nexusLineup struct {\n\tRed  [3]string `json:\"red\"`\n\tBlue [3]string `json:\"blue\"`\n}\n\nfunc NewNexusClient(eventCode string) *NexusClient {\n\treturn &NexusClient{BaseUrl: nexusBaseUrl, apiKey: nexusApiKey, eventCode: eventCode}\n}\n\n// Gets the team lineup for a given match from the Nexus API. Returns nil and an error if the lineup is not available.\nfunc (client *NexusClient) GetLineup(tbaMatchKey model.TbaMatchKey) (*[6]int, error) {\n\tpath := fmt.Sprintf(\n\t\t\"/api/v1/event/%s/match/%s/lineups?key=%s\",\n\t\tclient.eventCode,\n\t\ttbaMatchKey.String(),\n\t\tclient.apiKey,\n\t)\n\tresp, err := client.getRequest(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Get the response and handle errors\n\tdefer resp.Body.Close()\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif resp.StatusCode != 200 {\n\t\treturn nil, fmt.Errorf(\"Error getting lineup from Nexus: %d, %s\", resp.StatusCode, string(body))\n\t}\n\n\tvar nexusLineup nexusLineup\n\tif err = json.Unmarshal(body, &nexusLineup); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar lineup [6]int\n\tlineup[0], _ = strconv.Atoi(nexusLineup.Red[0])\n\tlineup[1], _ = strconv.Atoi(nexusLineup.Red[1])\n\tlineup[2], _ = strconv.Atoi(nexusLineup.Red[2])\n\tlineup[3], _ = strconv.Atoi(nexusLineup.Blue[0])\n\tlineup[4], _ = strconv.Atoi(nexusLineup.Blue[1])\n\tlineup[5], _ = strconv.Atoi(nexusLineup.Blue[2])\n\n\t// Check that at least one spot is filled with a valid team number; otherwise return an error.\n\tfor _, team := range lineup {\n\t\tif team > 0 {\n\t\t\treturn &lineup, nil\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"Lineup not yet submitted\")\n}\n\n// Sends a GET request to the Nexus API.\nfunc (client *NexusClient) getRequest(path string) (*http.Response, error) {\n\turl := client.BaseUrl + path\n\thttpClient := &http.Client{}\n\treq, err := http.NewRequest(\"GET\", url, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn httpClient.Do(req)\n}\n"
  },
  {
    "path": "partner/nexus_test.go",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage partner\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestGetLineup(t *testing.T) {\n\t// Mock the Nexus server.\n\tnexusServer := httptest.NewServer(\n\t\thttp.HandlerFunc(\n\t\t\tfunc(w http.ResponseWriter, r *http.Request) {\n\t\t\t\tassert.Contains(t, r.URL.String(), \"/api/v1/event/my_event_code/\")\n\t\t\t\tif strings.Contains(r.URL.String(), \"/api/v1/event/my_event_code/match/p1/lineups\") {\n\t\t\t\t\tw.Write([]byte(\"{\\\"red\\\":[\\\"101\\\",\\\"102\\\",\\\"103\\\"],\\\"blue\\\":[\\\"104\\\",\\\"105\\\",\\\"106\\\"]}\"))\n\t\t\t\t} else if strings.Contains(r.URL.String(), \"/api/v1/event/my_event_code/match/p2/lineups\") {\n\t\t\t\t\tw.Write([]byte(\"{\\\"blue\\\":[\\\"104\\\",\\\"\\\",\\\"106\\\"]}\"))\n\t\t\t\t} else if strings.Contains(r.URL.String(), \"/api/v1/event/my_event_code/match/p3/lineups\") {\n\t\t\t\t\tw.Write([]byte(\"{}\"))\n\t\t\t\t} else {\n\t\t\t\t\thttp.Error(w, \"Match not found\", 404)\n\t\t\t\t}\n\t\t\t},\n\t\t),\n\t)\n\tdefer nexusServer.Close()\n\tclient := NewNexusClient(\"my_event_code\")\n\tclient.BaseUrl = nexusServer.URL\n\n\ttbaMatchKey := model.TbaMatchKey{CompLevel: \"p\", SetNumber: 0, MatchNumber: 1}\n\tlineup, err := client.GetLineup(tbaMatchKey)\n\tif assert.Nil(t, err) {\n\t\tassert.Equal(t, [6]int{101, 102, 103, 104, 105, 106}, *lineup)\n\t}\n\n\ttbaMatchKey = model.TbaMatchKey{CompLevel: \"sf\", SetNumber: 6, MatchNumber: 1}\n\tlineup, err = client.GetLineup(tbaMatchKey)\n\tassert.Nil(t, lineup)\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"Match not found\")\n\t}\n\n\ttbaMatchKey = model.TbaMatchKey{CompLevel: \"p\", SetNumber: 0, MatchNumber: 2}\n\tlineup, err = client.GetLineup(tbaMatchKey)\n\tif assert.Nil(t, err) {\n\t\tassert.Equal(t, [6]int{0, 0, 0, 104, 0, 106}, *lineup)\n\t}\n\n\ttbaMatchKey = model.TbaMatchKey{CompLevel: \"p\", SetNumber: 0, MatchNumber: 3}\n\tlineup, err = client.GetLineup(tbaMatchKey)\n\tassert.Nil(t, lineup)\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"Lineup not yet submitted\")\n\t}\n}\n"
  },
  {
    "path": "partner/tba.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Methods for publishing data to and retrieving data from The Blue Alliance.\n\npackage partner\n\nimport (\n\t\"bytes\"\n\t\"crypto/md5\"\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/mitchellh/mapstructure\"\n\t\"io\"\n\t\"net/http\"\n\t\"os\"\n\t\"strconv\"\n)\n\nconst (\n\ttbaBaseUrl = \"https://www.thebluealliance.com\"\n\ttbaAuthKey = \"MAApv9MCuKY9MSFkXLuzTSYBCdosboxDq8Q3ujUE2Mn8PD3Nmv64uczu5Lvy0NQ3\"\n\tAvatarsDir = \"static/img/avatars\"\n)\n\ntype TbaClient struct {\n\tBaseUrl         string\n\teventCode       string\n\tsecretId        string\n\tsecret          string\n\teventNamesCache map[string]string\n}\n\ntype TbaMatch struct {\n\tCompLevel      string                    `json:\"comp_level\"`\n\tSetNumber      int                       `json:\"set_number\"`\n\tMatchNumber    int                       `json:\"match_number\"`\n\tAlliances      map[string]*TbaAlliance   `json:\"alliances\"`\n\tScoreBreakdown map[string]map[string]any `json:\"score_breakdown\"`\n\tTimeString     string                    `json:\"time_string\"`\n\tTimeUtc        string                    `json:\"time_utc\"`\n\tDisplayName    string                    `json:\"display_name\"`\n}\n\ntype TbaAlliance struct {\n\tTeams      []string `json:\"teams\"`\n\tSurrogates []string `json:\"surrogates\"`\n\tDqs        []string `json:\"dqs\"`\n\tScore      *int     `json:\"score\"`\n}\n\ntype TbaScoreBreakdown struct {\n\tAutoLineRobot1          string  `mapstructure:\"autoLineRobot1\"`\n\tAutoLineRobot2          string  `mapstructure:\"autoLineRobot2\"`\n\tAutoLineRobot3          string  `mapstructure:\"autoLineRobot3\"`\n\tAutoMobilityPoints      int     `mapstructure:\"autoMobilityPoints\"`\n\tAutoReef                tbaReef `mapstructure:\"autoReef\"`\n\tAutoCoralCount          int     `mapstructure:\"autoCoralCount\"`\n\tAutoCoralPoints         int     `mapstructure:\"autoCoralPoints\"`\n\tAutoPoints              int     `mapstructure:\"autoPoints\"`\n\tTeleopReef              tbaReef `mapstructure:\"teleopReef\"`\n\tTeleopCoralCount        int     `mapstructure:\"teleopCoralCount\"`\n\tTeleopCoralPoints       int     `mapstructure:\"teleopCoralPoints\"`\n\tNetAlgaeCount           int     `mapstructure:\"netAlgaeCount\"`\n\tWallAlgaeCount          int     `mapstructure:\"wallAlgaeCount\"`\n\tAlgaePoints             int     `mapstructure:\"algaePoints\"`\n\tEndGameRobot1           string  `mapstructure:\"endGameRobot1\"`\n\tEndGameRobot2           string  `mapstructure:\"endGameRobot2\"`\n\tEndGameRobot3           string  `mapstructure:\"endGameRobot3\"`\n\tEndGameBargePoints      int     `mapstructure:\"endGameBargePoints\"`\n\tTeleopPoints            int     `mapstructure:\"teleopPoints\"`\n\tCoopertitionCriteriaMet bool    `mapstructure:\"coopertitionCriteriaMet\"`\n\tAutoBonusAchieved       bool    `mapstructure:\"autoBonusAchieved\"`\n\tCoralBonusAchieved      bool    `mapstructure:\"coralBonusAchieved\"`\n\tBargeBonusAchieved      bool    `mapstructure:\"bargeBonusAchieved\"`\n\tFoulCount               int     `mapstructure:\"foulCount\"`\n\tTechFoulCount           int     `mapstructure:\"techFoulCount\"`\n\tG206Penalty             bool    `mapstructure:\"g206Penalty\"`\n\tG410Penalty             bool    `mapstructure:\"g410Penalty\"`\n\tG418Penalty             bool    `mapstructure:\"g418Penalty\"`\n\tG428Penalty             bool    `mapstructure:\"g428Penalty\"`\n\tFoulPoints              int     `mapstructure:\"foulPoints\"`\n\tTotalPoints             int     `mapstructure:\"totalPoints\"`\n\tRP                      int     `mapstructure:\"rp\"`\n}\n\ntype tbaReef struct {\n\tBotRow         map[string]bool `mapstructure:\"botRow\"`\n\tMidRow         map[string]bool `mapstructure:\"midRow\"`\n\tTopRow         map[string]bool `mapstructure:\"topRow\"`\n\tTbaBotRowCount int             `mapstructure:\"tba_botRowCount\"`\n\tTbaMidRowCount int             `mapstructure:\"tba_midRowCount\"`\n\tTbaTopRowCount int             `mapstructure:\"tba_topRowCount\"`\n\tTrough         int             `mapstructure:\"trough\"`\n}\n\ntype TbaRanking struct {\n\tTeamKey string `json:\"team_key\"`\n\tRank    int    `json:\"rank\"`\n\tRP      float32\n\tCoop    float32\n\tMatch   float32\n\tAuto    float32\n\tBarge   float32\n\tWins    int `json:\"wins\"`\n\tLosses  int `json:\"losses\"`\n\tTies    int `json:\"ties\"`\n\tDqs     int `json:\"dqs\"`\n\tPlayed  int `json:\"played\"`\n}\n\ntype TbaRankings struct {\n\tBreakdowns []string     `json:\"breakdowns\"`\n\tRankings   []TbaRanking `json:\"rankings\"`\n}\n\ntype TbaTeam struct {\n\tTeamNumber int    `json:\"team_number\"`\n\tName       string `json:\"name\"`\n\tNickname   string `json:\"nickname\"`\n\tCity       string `json:\"city\"`\n\tStateProv  string `json:\"state_prov\"`\n\tCountry    string `json:\"country\"`\n\tRookieYear int    `json:\"rookie_year\"`\n}\n\ntype TbaRobot struct {\n\tRobotName string `json:\"robot_name\"`\n\tYear      int    `json:\"year\"`\n}\n\ntype TbaAward struct {\n\tName      string `json:\"name\"`\n\tEventKey  string `json:\"event_key\"`\n\tYear      int    `json:\"year\"`\n\tEventName string\n}\n\ntype TbaEvent struct {\n\tName string `json:\"name\"`\n}\n\ntype TbaMediaItem struct {\n\tDetails map[string]any `json:\"details\"`\n\tType    string         `json:\"type\"`\n}\n\ntype TbaPublishedAward struct {\n\tName    string `json:\"name_str\"`\n\tTeamKey string `json:\"team_key\"`\n\tAwardee string `json:\"awardee\"`\n}\n\nvar leaveMapping = map[bool]string{false: \"No\", true: \"Yes\"}\nvar endGameStatusMapping = map[game.EndgameStatus]string{\n\tgame.EndgameNone:        \"None\",\n\tgame.EndgameParked:      \"Parked\",\n\tgame.EndgameShallowCage: \"ShallowCage\",\n\tgame.EndgameDeepCage:    \"DeepCage\",\n}\n\nfunc NewTbaClient(eventCode, secretId, secret string) *TbaClient {\n\treturn &TbaClient{\n\t\tBaseUrl:         tbaBaseUrl,\n\t\teventCode:       eventCode,\n\t\tsecretId:        secretId,\n\t\tsecret:          secret,\n\t\teventNamesCache: make(map[string]string),\n\t}\n}\n\nfunc (client *TbaClient) GetTeam(teamNumber int) (*TbaTeam, error) {\n\tpath := fmt.Sprintf(\"/api/v3/team/%s\", getTbaTeam(teamNumber))\n\tresp, err := client.getRequest(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Get the response and handle errors\n\tdefer resp.Body.Close()\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar teamData TbaTeam\n\terr = json.Unmarshal(body, &teamData)\n\n\treturn &teamData, err\n}\n\nfunc (client *TbaClient) GetRobotName(teamNumber int, year int) (string, error) {\n\tpath := fmt.Sprintf(\"/api/v3/team/%s/robots\", getTbaTeam(teamNumber))\n\tresp, err := client.getRequest(path)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\t// Get the response and handle errors\n\tdefer resp.Body.Close()\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tvar robots []*TbaRobot\n\terr = json.Unmarshal(body, &robots)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tfor _, robot := range robots {\n\t\tif robot.Year == year {\n\t\t\treturn robot.RobotName, nil\n\t\t}\n\t}\n\treturn \"\", nil\n}\n\nfunc (client *TbaClient) GetTeamAwards(teamNumber int) ([]*TbaAward, error) {\n\tpath := fmt.Sprintf(\"/api/v3/team/%s/awards\", getTbaTeam(teamNumber))\n\tresp, err := client.getRequest(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Get the response and handle errors\n\tdefer resp.Body.Close()\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar awards []*TbaAward\n\terr = json.Unmarshal(body, &awards)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, award := range awards {\n\t\tif _, ok := client.eventNamesCache[award.EventKey]; !ok {\n\t\t\tclient.eventNamesCache[award.EventKey], err = client.getEventName(award.EventKey)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\taward.EventName = client.eventNamesCache[award.EventKey]\n\t}\n\n\treturn awards, nil\n}\n\nfunc (client *TbaClient) DownloadTeamAvatar(teamNumber, year int) error {\n\tpath := fmt.Sprintf(\"/api/v3/team/%s/media/%d\", getTbaTeam(teamNumber), year)\n\tresp, err := client.getRequest(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Get the response and handle errors\n\tdefer resp.Body.Close()\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar mediaItems []*TbaMediaItem\n\terr = json.Unmarshal(body, &mediaItems)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, item := range mediaItems {\n\t\tif item.Type == \"avatar\" {\n\t\t\tbase64String, ok := item.Details[\"base64Image\"].(string)\n\t\t\tif !ok {\n\t\t\t\treturn fmt.Errorf(\"Could not interpret avatar response from TBA: %v\", item)\n\t\t\t}\n\t\t\tavatarBytes, err := base64.StdEncoding.DecodeString(base64String)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Store the avatar to disk as a PNG file.\n\t\t\tavatarPath := fmt.Sprintf(\"%s/%d.png\", AvatarsDir, teamNumber)\n\t\t\treturn os.WriteFile(avatarPath, avatarBytes, 0644)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Uploads the event team list to The Blue Alliance.\nfunc (client *TbaClient) PublishTeams(database *model.Database) error {\n\tteams, err := database.GetAllTeams()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Build a JSON array of TBA-format team keys (e.g. \"frc254\").\n\tteamKeys := make([]string, len(teams))\n\tfor i, team := range teams {\n\t\tteamKeys[i] = getTbaTeam(team.Id)\n\t}\n\tjsonBody, err := json.Marshal(teamKeys)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := client.postRequest(\"team_list\", \"update\", jsonBody)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif resp.StatusCode != 200 {\n\t\tdefer resp.Body.Close()\n\t\tbody, _ := io.ReadAll(resp.Body)\n\t\treturn fmt.Errorf(\"Got status code %d from TBA: %s\", resp.StatusCode, body)\n\t}\n\treturn nil\n}\n\n// Uploads the qualification and playoff match schedule and results to The Blue Alliance.\nfunc (client *TbaClient) PublishMatches(database *model.Database) error {\n\tqualMatches, err := database.GetMatchesByType(model.Qualification, false)\n\tif err != nil {\n\t\treturn err\n\t}\n\tplayoffMatches, err := database.GetMatchesByType(model.Playoff, false)\n\tif err != nil {\n\t\treturn err\n\t}\n\teventSettings, err := database.GetEventSettings()\n\tif err != nil {\n\t\treturn err\n\t}\n\tmatches := append(qualMatches, playoffMatches...)\n\ttbaMatches := make([]TbaMatch, len(matches))\n\n\t// Build a JSON array of TBA-format matches.\n\tfor i, match := range matches {\n\t\t// Fill in scores if the match has been played.\n\t\tvar scoreBreakdown map[string]map[string]any\n\t\tvar redScore, blueScore *int\n\t\tvar redCards, blueCards map[string]string\n\t\tif match.IsComplete() {\n\t\t\tmatchResult, err := database.GetMatchResultForMatch(match.Id)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif matchResult != nil {\n\t\t\t\tscoreBreakdown = make(map[string]map[string]any)\n\t\t\t\tscoreBreakdown[\"red\"] = createTbaScoringBreakdown(eventSettings, &match, matchResult, \"red\")\n\t\t\t\tscoreBreakdown[\"blue\"] = createTbaScoringBreakdown(eventSettings, &match, matchResult, \"blue\")\n\t\t\t\tredScoreValue := scoreBreakdown[\"red\"][\"totalPoints\"].(int)\n\t\t\t\tblueScoreValue, _ := scoreBreakdown[\"blue\"][\"totalPoints\"].(int)\n\t\t\t\tredScore = &redScoreValue\n\t\t\t\tblueScore = &blueScoreValue\n\t\t\t\tredCards = matchResult.RedCards\n\t\t\t\tblueCards = matchResult.BlueCards\n\t\t\t}\n\t\t}\n\t\talliances := make(map[string]*TbaAlliance)\n\t\talliances[\"red\"] = createTbaAlliance(\n\t\t\t[3]int{match.Red1, match.Red2, match.Red3},\n\t\t\t[3]bool{match.Red1IsSurrogate, match.Red2IsSurrogate, match.Red3IsSurrogate},\n\t\t\tredScore,\n\t\t\tredCards,\n\t\t)\n\t\talliances[\"blue\"] = createTbaAlliance(\n\t\t\t[3]int{match.Blue1, match.Blue2, match.Blue3},\n\t\t\t[3]bool{match.Blue1IsSurrogate, match.Blue2IsSurrogate, match.Blue3IsSurrogate},\n\t\t\tblueScore,\n\t\t\tblueCards,\n\t\t)\n\n\t\ttbaMatches[i] = TbaMatch{\n\t\t\tCompLevel:      match.TbaMatchKey.CompLevel,\n\t\t\tSetNumber:      match.TbaMatchKey.SetNumber,\n\t\t\tMatchNumber:    match.TbaMatchKey.MatchNumber,\n\t\t\tAlliances:      alliances,\n\t\t\tScoreBreakdown: scoreBreakdown,\n\t\t\tTimeString:     match.Time.Local().Format(\"3:04 PM\"),\n\t\t\tTimeUtc:        match.Time.UTC().Format(\"2006-01-02T15:04:05\"),\n\t\t}\n\t}\n\tjsonBody, err := json.Marshal(tbaMatches)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := client.postRequest(\"matches\", \"update\", jsonBody)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif resp.StatusCode != 200 {\n\t\tdefer resp.Body.Close()\n\t\tbody, _ := io.ReadAll(resp.Body)\n\t\treturn fmt.Errorf(\"Got status code %d from TBA: %s\", resp.StatusCode, body)\n\t}\n\treturn nil\n}\n\n// Uploads the team standings to The Blue Alliance.\nfunc (client *TbaClient) PublishRankings(database *model.Database) error {\n\trankings, err := database.GetAllRankings()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Build a JSON object of TBA-format rankings.\n\tbreakdowns := []string{\"RP\", \"Coop\", \"Match\", \"Auto\", \"Barge\"}\n\ttbaRankings := make([]TbaRanking, len(rankings))\n\tfor i, ranking := range rankings {\n\t\ttbaRankings[i] = TbaRanking{\n\t\t\tTeamKey: getTbaTeam(ranking.TeamId),\n\t\t\tRank:    ranking.Rank,\n\t\t\tRP:      float32(ranking.RankingPoints) / float32(ranking.Played),\n\t\t\tCoop:    float32(ranking.CoopertitionPoints) / float32(ranking.Played),\n\t\t\tMatch:   float32(ranking.MatchPoints) / float32(ranking.Played),\n\t\t\tAuto:    float32(ranking.AutoPoints) / float32(ranking.Played),\n\t\t\tBarge:   float32(ranking.BargePoints) / float32(ranking.Played),\n\t\t\tWins:    ranking.Wins,\n\t\t\tLosses:  ranking.Losses,\n\t\t\tTies:    ranking.Ties,\n\t\t\tDqs:     ranking.Disqualifications,\n\t\t\tPlayed:  ranking.Played,\n\t\t}\n\t}\n\tjsonBody, err := json.Marshal(TbaRankings{breakdowns, tbaRankings})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := client.postRequest(\"rankings\", \"update\", jsonBody)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif resp.StatusCode != 200 {\n\t\tdefer resp.Body.Close()\n\t\tbody, _ := io.ReadAll(resp.Body)\n\t\treturn fmt.Errorf(\"Got status code %d from TBA: %s\", resp.StatusCode, body)\n\t}\n\treturn nil\n}\n\n// Uploads the alliances selection results to The Blue Alliance.\nfunc (client *TbaClient) PublishAlliances(database *model.Database) error {\n\talliances, err := database.GetAllAlliances()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Build a JSON object of TBA-format alliances.\n\ttbaAlliances := make([][]string, len(alliances))\n\tfor i, alliance := range alliances {\n\t\tfor _, allianceTeamId := range alliance.TeamIds {\n\t\t\ttbaAlliances[i] = append(tbaAlliances[i], getTbaTeam(allianceTeamId))\n\t\t}\n\t}\n\tjsonBody, err := json.Marshal(tbaAlliances)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := client.postRequest(\"alliance_selections\", \"update\", jsonBody)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif resp.StatusCode != 200 {\n\t\tdefer resp.Body.Close()\n\t\tbody, _ := io.ReadAll(resp.Body)\n\t\treturn fmt.Errorf(\"Got status code %d from TBA: %s\", resp.StatusCode, body)\n\t}\n\n\t// Also set the playoff type so that TBA renders the correct bracket.\n\teventSettings, err := database.GetEventSettings()\n\tif err != nil {\n\t\treturn err\n\t}\n\tplayoffType := 0\n\tif eventSettings.PlayoffType == model.DoubleEliminationPlayoff {\n\t\tplayoffType = 10\n\t}\n\tresp, err = client.postRequest(\"info\", \"update\", []byte(fmt.Sprintf(\"{\\\"playoff_type\\\":%d}\", playoffType)))\n\tif err != nil {\n\t\treturn err\n\t}\n\tif resp.StatusCode != 200 {\n\t\tdefer resp.Body.Close()\n\t\tbody, _ := io.ReadAll(resp.Body)\n\t\treturn fmt.Errorf(\"Got status code %d from TBA: %s\", resp.StatusCode, body)\n\t}\n\n\treturn nil\n}\n\n// Uploads the awards to The Blue Alliance.\nfunc (client *TbaClient) PublishAwards(database *model.Database) error {\n\tawards, err := database.GetAllAwards()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Build a JSON array of TBA-format award models.\n\ttbaAwards := make([]TbaPublishedAward, len(awards))\n\tfor i, award := range awards {\n\t\ttbaAwards[i].Name = award.AwardName\n\t\ttbaAwards[i].TeamKey = getTbaTeam(award.TeamId)\n\t\ttbaAwards[i].Awardee = award.PersonName\n\t}\n\tjsonBody, err := json.Marshal(tbaAwards)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := client.postRequest(\"awards\", \"update\", jsonBody)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif resp.StatusCode != 200 {\n\t\tdefer resp.Body.Close()\n\t\tbody, _ := io.ReadAll(resp.Body)\n\t\treturn fmt.Errorf(\"Got status code %d from TBA: %s\", resp.StatusCode, body)\n\t}\n\treturn nil\n}\n\n// Clears out the existing match data on The Blue Alliance for the event.\nfunc (client *TbaClient) DeletePublishedMatches() error {\n\tresp, err := client.postRequest(\"matches\", \"delete_all\", []byte(client.eventCode))\n\tif err != nil {\n\t\treturn err\n\t}\n\tif resp.StatusCode != 200 {\n\t\tdefer resp.Body.Close()\n\t\tbody, _ := io.ReadAll(resp.Body)\n\t\treturn fmt.Errorf(\"Got status code %d from TBA: %s\", resp.StatusCode, body)\n\t}\n\treturn nil\n}\n\nfunc (client *TbaClient) getEventName(eventCode string) (string, error) {\n\tpath := fmt.Sprintf(\"/api/v3/event/%s\", eventCode)\n\tresp, err := client.getRequest(path)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\t// Get the response and handle errors\n\tdefer resp.Body.Close()\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tvar event TbaEvent\n\terr = json.Unmarshal(body, &event)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn event.Name, err\n}\n\n// Converts an integer team number into the \"frcXXXX\" format TBA expects.\nfunc getTbaTeam(team int) string {\n\treturn fmt.Sprintf(\"frc%d\", team)\n}\n\n// Sends a GET request to the TBA API.\nfunc (client *TbaClient) getRequest(path string) (*http.Response, error) {\n\turl := client.BaseUrl + path\n\n\t// Make an HTTP GET request with the TBA auth headers.\n\thttpClient := &http.Client{}\n\treq, err := http.NewRequest(\"GET\", url, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq.Header.Set(\"X-TBA-Auth-Key\", tbaAuthKey)\n\treturn httpClient.Do(req)\n}\n\n// Signs the request and sends it to the TBA API.\nfunc (client *TbaClient) postRequest(resource string, action string, body []byte) (*http.Response, error) {\n\tpath := fmt.Sprintf(\"/api/trusted/v1/event/%s/%s/%s\", client.eventCode, resource, action)\n\tsignature := fmt.Sprintf(\"%x\", md5.Sum(append([]byte(client.secret+path), body...)))\n\n\thttpClient := &http.Client{}\n\trequest, err := http.NewRequest(\"POST\", client.BaseUrl+path, bytes.NewReader(body))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\trequest.Header.Add(\"X-TBA-Auth-Id\", client.secretId)\n\trequest.Header.Add(\"X-TBA-Auth-Sig\", signature)\n\tresponse, err := httpClient.Do(request)\n\tif client.BaseUrl == tbaBaseUrl && err == nil && response.StatusCode == 200 {\n\t\t// Send a non-blocking ping to track usage.\n\t\tpingRequest, _ := http.NewRequest(\n\t\t\t\"POST\", fmt.Sprintf(\"https://cheesyarena.com/events/%s/%s\", client.eventCode, resource), nil,\n\t\t)\n\t\t_, _ = httpClient.Do(pingRequest)\n\t}\n\treturn response, err\n}\n\nfunc createTbaAlliance(teamIds [3]int, surrogates [3]bool, score *int, cards map[string]string) *TbaAlliance {\n\talliance := TbaAlliance{Teams: []string{}, Surrogates: []string{}, Dqs: []string{}, Score: score}\n\tfor i, teamId := range teamIds {\n\t\tif teamId == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tteamKey := getTbaTeam(teamId)\n\t\talliance.Teams = append(alliance.Teams, teamKey)\n\t\tif surrogates[i] {\n\t\t\talliance.Surrogates = append(alliance.Surrogates, teamKey)\n\t\t}\n\t\tif cards != nil {\n\t\t\tif card, ok := cards[strconv.Itoa(teamId)]; ok && card == \"red\" {\n\t\t\t\talliance.Dqs = append(alliance.Dqs, teamKey)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn &alliance\n}\n\nfunc createTbaScoringBreakdown(\n\teventSettings *model.EventSettings,\n\tmatch *model.Match,\n\tmatchResult *model.MatchResult,\n\talliance string,\n) map[string]any {\n\tvar breakdown TbaScoreBreakdown\n\tvar score *game.Score\n\tvar scoreSummary, opponentScoreSummary *game.ScoreSummary\n\tif alliance == \"red\" {\n\t\tscore = matchResult.RedScore\n\t\tscoreSummary = matchResult.RedScoreSummary()\n\t\topponentScoreSummary = matchResult.BlueScoreSummary()\n\t} else {\n\t\tscore = matchResult.BlueScore\n\t\tscoreSummary = matchResult.BlueScoreSummary()\n\t\topponentScoreSummary = matchResult.RedScoreSummary()\n\t}\n\n\tbreakdown.AutoLineRobot1 = leaveMapping[score.LeaveStatuses[0]]\n\tbreakdown.AutoLineRobot2 = leaveMapping[score.LeaveStatuses[1]]\n\tbreakdown.AutoLineRobot3 = leaveMapping[score.LeaveStatuses[2]]\n\tbreakdown.AutoMobilityPoints = scoreSummary.LeavePoints\n\tbreakdown.AutoReef.BotRow = make(map[string]bool)\n\tbreakdown.AutoReef.MidRow = make(map[string]bool)\n\tbreakdown.AutoReef.TopRow = make(map[string]bool)\n\tfor i := 0; i < 12; i++ {\n\t\tbreakdown.AutoReef.BotRow[\"node\"+string(rune('A'+i))] = score.Reef.AutoBranches[game.Level2][i]\n\t\tbreakdown.AutoReef.MidRow[\"node\"+string(rune('A'+i))] = score.Reef.AutoBranches[game.Level3][i]\n\t\tbreakdown.AutoReef.TopRow[\"node\"+string(rune('A'+i))] = score.Reef.AutoBranches[game.Level4][i]\n\t}\n\tbreakdown.AutoReef.TbaBotRowCount = score.Reef.CountCoralByLevelAndPeriod(game.Level2, true)\n\tbreakdown.AutoReef.TbaMidRowCount = score.Reef.CountCoralByLevelAndPeriod(game.Level3, true)\n\tbreakdown.AutoReef.TbaTopRowCount = score.Reef.CountCoralByLevelAndPeriod(game.Level4, true)\n\tbreakdown.AutoReef.Trough = score.Reef.CountCoralByLevelAndPeriod(game.Level1, true)\n\tbreakdown.AutoCoralCount = score.Reef.AutoCoralCount()\n\tbreakdown.AutoCoralPoints = score.Reef.AutoCoralPoints()\n\tbreakdown.AutoPoints = scoreSummary.AutoPoints\n\tbreakdown.TeleopReef.BotRow = make(map[string]bool)\n\tbreakdown.TeleopReef.MidRow = make(map[string]bool)\n\tbreakdown.TeleopReef.TopRow = make(map[string]bool)\n\tfor i := 0; i < 12; i++ {\n\t\tbreakdown.TeleopReef.BotRow[\"node\"+string(rune('A'+i))] = score.Reef.Branches[game.Level2][i]\n\t\tbreakdown.TeleopReef.MidRow[\"node\"+string(rune('A'+i))] = score.Reef.Branches[game.Level3][i]\n\t\tbreakdown.TeleopReef.TopRow[\"node\"+string(rune('A'+i))] = score.Reef.Branches[game.Level4][i]\n\t}\n\tbreakdown.TeleopReef.TbaBotRowCount = breakdown.AutoReef.TbaBotRowCount +\n\t\tscore.Reef.CountCoralByLevelAndPeriod(game.Level2, false)\n\tbreakdown.TeleopReef.TbaMidRowCount = breakdown.AutoReef.TbaMidRowCount +\n\t\tscore.Reef.CountCoralByLevelAndPeriod(game.Level3, false)\n\tbreakdown.TeleopReef.TbaTopRowCount = breakdown.AutoReef.TbaTopRowCount +\n\t\tscore.Reef.CountCoralByLevelAndPeriod(game.Level4, false)\n\tbreakdown.TeleopReef.Trough = score.Reef.CountCoralByLevelAndPeriod(game.Level1, false)\n\tbreakdown.TeleopCoralCount = score.Reef.TeleopCoralCount()\n\tteleopCoralPoints := score.Reef.TeleopCoralPoints()\n\tbreakdown.TeleopCoralPoints = teleopCoralPoints\n\tbreakdown.NetAlgaeCount = score.BargeAlgae\n\tbreakdown.WallAlgaeCount = score.ProcessorAlgae\n\tbreakdown.AlgaePoints = scoreSummary.AlgaePoints\n\tbreakdown.EndGameRobot1 = endGameStatusMapping[score.EndgameStatuses[0]]\n\tbreakdown.EndGameRobot2 = endGameStatusMapping[score.EndgameStatuses[1]]\n\tbreakdown.EndGameRobot3 = endGameStatusMapping[score.EndgameStatuses[2]]\n\tbreakdown.EndGameBargePoints = scoreSummary.BargePoints\n\tbreakdown.TeleopPoints = teleopCoralPoints + scoreSummary.AlgaePoints + scoreSummary.BargePoints\n\tbreakdown.CoopertitionCriteriaMet = scoreSummary.CoopertitionCriteriaMet\n\tbreakdown.AutoBonusAchieved = scoreSummary.AutoBonusRankingPoint\n\tbreakdown.CoralBonusAchieved = scoreSummary.CoralBonusRankingPoint\n\tbreakdown.BargeBonusAchieved = scoreSummary.BargeBonusRankingPoint\n\tfor _, foul := range score.Fouls {\n\t\tif foul.IsMajor {\n\t\t\tbreakdown.TechFoulCount++\n\t\t} else if foul.PointValue() > 0 {\n\t\t\tbreakdown.FoulCount++\n\t\t}\n\t\tif foul.Rule() != nil && foul.Rule().IsRankingPoint {\n\t\t\tswitch foul.Rule().RuleNumber {\n\t\t\tcase \"G206\":\n\t\t\t\tbreakdown.G206Penalty = true\n\t\t\tcase \"G410\":\n\t\t\t\tbreakdown.G410Penalty = true\n\t\t\tcase \"G418\":\n\t\t\t\tbreakdown.G418Penalty = true\n\t\t\tcase \"G428\":\n\t\t\t\tbreakdown.G428Penalty = true\n\t\t\t}\n\t\t}\n\t}\n\tbreakdown.FoulPoints = scoreSummary.FoulPoints\n\tbreakdown.TotalPoints = scoreSummary.Score\n\n\tif match.ShouldUpdateRankings() {\n\t\t// Calculate and set the ranking points for the match.\n\t\tvar ranking game.Ranking\n\t\tranking.AddScoreSummary(scoreSummary, opponentScoreSummary, false)\n\t\tbreakdown.RP = ranking.RankingPoints\n\t}\n\n\t// Turn the breakdown struct into a map in order to be able to remove any fields that are disabled based on the\n\t// event settings.\n\tbreakdownMap := make(map[string]any)\n\t_ = mapstructure.Decode(breakdown, &breakdownMap)\n\tif !eventSettings.CoralBonusCoopEnabled {\n\t\tdelete(breakdownMap, \"coopertitionCriteriaMet\")\n\t}\n\n\treturn breakdownMap\n}\n"
  },
  {
    "path": "partner/tba_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage partner\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestPublishTeams(t *testing.T) {\n\tdatabase := setupTestDb(t)\n\n\tdatabase.CreateTeam(&model.Team{Id: 254})\n\tdatabase.CreateTeam(&model.Team{Id: 1114})\n\n\t// Mock the TBA server.\n\ttbaServer := httptest.NewServer(\n\t\thttp.HandlerFunc(\n\t\t\tfunc(w http.ResponseWriter, r *http.Request) {\n\t\t\t\tassert.Contains(t, r.URL.String(), \"event/my_event_code\")\n\t\t\t\tvar reader bytes.Buffer\n\t\t\t\treader.ReadFrom(r.Body)\n\t\t\t\tassert.Equal(t, \"[\\\"frc254\\\",\\\"frc1114\\\"]\", reader.String())\n\t\t\t\tassert.Equal(t, \"my_secret_id\", r.Header[\"X-Tba-Auth-Id\"][0])\n\t\t\t\tassert.Equal(t, \"f5c022fde6d1186ea0719fe28ab6cc63\", r.Header[\"X-Tba-Auth-Sig\"][0])\n\t\t\t},\n\t\t),\n\t)\n\tdefer tbaServer.Close()\n\tclient := NewTbaClient(\"my_event_code\", \"my_secret_id\", \"my_secret\")\n\tclient.BaseUrl = tbaServer.URL\n\n\tassert.Nil(t, client.PublishTeams(database))\n}\n\nfunc TestPublishMatches(t *testing.T) {\n\tdatabase := setupTestDb(t)\n\n\tmatch1 := model.Match{\n\t\tType:        model.Qualification,\n\t\tShortName:   \"Q2\",\n\t\tTime:        time.Unix(600, 0),\n\t\tRed1:        7,\n\t\tRed2:        8,\n\t\tRed3:        9,\n\t\tBlue1:       10,\n\t\tBlue2:       11,\n\t\tBlue3:       12,\n\t\tStatus:      game.RedWonMatch,\n\t\tTbaMatchKey: model.TbaMatchKey{\"qm\", 0, 2},\n\t}\n\tmatch2 := model.Match{Type: model.Playoff, ShortName: \"SF2-2\", TbaMatchKey: model.TbaMatchKey{\"omg\", 5, 29}}\n\tdatabase.CreateMatch(&match1)\n\tdatabase.CreateMatch(&match2)\n\tmatchResult1 := model.BuildTestMatchResult(match1.Id, 1)\n\tdatabase.CreateMatchResult(matchResult1)\n\n\t// Mock the TBA server.\n\ttbaServer := httptest.NewServer(\n\t\thttp.HandlerFunc(\n\t\t\tfunc(w http.ResponseWriter, r *http.Request) {\n\t\t\t\tbody, _ := io.ReadAll(r.Body)\n\t\t\t\tvar matches []*TbaMatch\n\t\t\t\tjson.Unmarshal(body, &matches)\n\t\t\t\tassert.Equal(t, 2, len(matches))\n\t\t\t\tassert.Equal(t, \"qm\", matches[0].CompLevel)\n\t\t\t\tassert.Equal(t, 0, matches[0].SetNumber)\n\t\t\t\tassert.Equal(t, 2, matches[0].MatchNumber)\n\t\t\t\tassert.Equal(t, \"omg\", matches[1].CompLevel)\n\t\t\t\tassert.Equal(t, 5, matches[1].SetNumber)\n\t\t\t\tassert.Equal(t, 29, matches[1].MatchNumber)\n\t\t\t},\n\t\t),\n\t)\n\tdefer tbaServer.Close()\n\tclient := NewTbaClient(\"my_event_code\", \"my_secret_id\", \"my_secret\")\n\tclient.BaseUrl = tbaServer.URL\n\n\tassert.Nil(t, client.PublishMatches(database))\n}\n\nfunc TestPublishRankings(t *testing.T) {\n\tdatabase := setupTestDb(t)\n\n\tdatabase.CreateRanking(game.TestRanking2())\n\tdatabase.CreateRanking(game.TestRanking1())\n\n\t// Mock the TBA server.\n\ttbaServer := httptest.NewServer(\n\t\thttp.HandlerFunc(\n\t\t\tfunc(w http.ResponseWriter, r *http.Request) {\n\t\t\t\tbody, _ := io.ReadAll(r.Body)\n\t\t\t\tvar response TbaRankings\n\t\t\t\tjson.Unmarshal(body, &response)\n\t\t\t\tassert.Equal(t, 2, len(response.Rankings))\n\t\t\t\tassert.Equal(t, \"frc254\", response.Rankings[0].TeamKey)\n\t\t\t\tassert.Equal(t, \"frc1114\", response.Rankings[1].TeamKey)\n\t\t\t},\n\t\t),\n\t)\n\tdefer tbaServer.Close()\n\tclient := NewTbaClient(\"my_event_code\", \"my_secret_id\", \"my_secret\")\n\tclient.BaseUrl = tbaServer.URL\n\n\tassert.Nil(t, client.PublishRankings(database))\n}\n\nfunc TestPublishAlliances(t *testing.T) {\n\tdatabase := setupTestDb(t)\n\n\tmodel.BuildTestAlliances(database)\n\n\t// Mock the TBA server.\n\ttbaServer := httptest.NewServer(\n\t\thttp.HandlerFunc(\n\t\t\tfunc(w http.ResponseWriter, r *http.Request) {\n\t\t\t\tvar reader bytes.Buffer\n\t\t\t\treader.ReadFrom(r.Body)\n\t\t\t\tif strings.Contains(r.URL.String(), \"alliance_selections\") {\n\t\t\t\t\tassert.Equal(\n\t\t\t\t\t\tt,\n\t\t\t\t\t\t\"[[\\\"frc254\\\",\\\"frc469\\\",\\\"frc2848\\\",\\\"frc74\\\",\\\"frc3175\\\"],[\\\"frc1718\\\",\\\"frc2451\\\",\\\"frc1619\\\"]]\",\n\t\t\t\t\t\treader.String(),\n\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\tassert.Equal(t, \"{\\\"playoff_type\\\":10}\", reader.String())\n\t\t\t\t}\n\t\t\t},\n\t\t),\n\t)\n\tdefer tbaServer.Close()\n\tclient := NewTbaClient(\"my_event_code\", \"my_secret_id\", \"my_secret\")\n\tclient.BaseUrl = tbaServer.URL\n\n\tassert.Nil(t, client.PublishAlliances(database))\n}\n\nfunc TestPublishingErrors(t *testing.T) {\n\tdatabase := setupTestDb(t)\n\n\tmodel.BuildTestAlliances(database)\n\n\t// Mock the TBA server.\n\ttbaServer := httptest.NewServer(\n\t\thttp.HandlerFunc(\n\t\t\tfunc(w http.ResponseWriter, r *http.Request) {\n\t\t\t\thttp.Error(w, \"oh noes\", 500)\n\t\t\t},\n\t\t),\n\t)\n\tdefer tbaServer.Close()\n\tclient := NewTbaClient(\"my_event_code\", \"my_secret_id\", \"my_secret\")\n\tclient.BaseUrl = tbaServer.URL\n\n\tassert.NotNil(t, client.PublishTeams(database))\n\tassert.NotNil(t, client.PublishMatches(database))\n\tassert.NotNil(t, client.PublishRankings(database))\n\tassert.NotNil(t, client.PublishAlliances(database))\n}\n\nfunc TestPublishAwards(t *testing.T) {\n\tdatabase := setupTestDb(t)\n\n\tdatabase.CreateAward(&model.Award{0, model.JudgedAward, \"Saftey Award\", 254, \"\"})\n\tdatabase.CreateAward(&model.Award{0, model.JudgedAward, \"Spirt Award\", 0, \"Bob Dorough\"})\n\n\t// Mock the TBA server.\n\ttbaServer := httptest.NewServer(\n\t\thttp.HandlerFunc(\n\t\t\tfunc(w http.ResponseWriter, r *http.Request) {\n\t\t\t\tassert.Contains(t, r.URL.String(), \"event/my_event_code\")\n\t\t\t\tvar reader bytes.Buffer\n\t\t\t\treader.ReadFrom(r.Body)\n\t\t\t\tassert.Equal(\n\t\t\t\t\tt,\n\t\t\t\t\t\"[{\\\"name_str\\\":\\\"Saftey Award\\\",\\\"team_key\\\":\\\"frc254\\\",\\\"awardee\\\":\\\"\\\"},\"+\n\t\t\t\t\t\t\"{\\\"name_str\\\":\\\"Spirt Award\\\",\\\"team_key\\\":\\\"frc0\\\",\\\"awardee\\\":\\\"Bob Dorough\\\"}]\",\n\t\t\t\t\treader.String(),\n\t\t\t\t)\n\t\t\t},\n\t\t),\n\t)\n\tdefer tbaServer.Close()\n\tclient := NewTbaClient(\"my_event_code\", \"my_secret_id\", \"my_secret\")\n\tclient.BaseUrl = tbaServer.URL\n\n\tassert.Nil(t, client.PublishAwards(database))\n}\n\nfunc setupTestDb(t *testing.T) *model.Database {\n\treturn model.SetupTestDb(t)\n}\n"
  },
  {
    "path": "playoff/alliance_source.go",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Represents how the alliance is determined to fill a given spot at a given stage in a playoff tournament.\n\npackage playoff\n\nimport \"fmt\"\n\ntype allianceSource interface {\n\t// AllianceId returns the alliance number that will fill this spot, or zero if it is not yet determined.\n\tAllianceId() int\n\n\t// displayName returns a human-readable name for the source of this alliance.\n\tdisplayName() string\n\n\t// setDestination passes back the match group filled by this alliance source to the source.\n\tsetDestination(destination MatchGroup)\n\n\t// update updates the state of each match group based on the results of the given played matches.\n\tupdate(playoffMatchResults map[int]playoffMatchResult)\n\n\t// traverse performs a depth-first traversal of the playoff graph and invokes the given function before visiting\n\t// each match group's children.\n\ttraverse(visitFunction func(MatchGroup) error) error\n}\n\n// Represents a playoff spot that is filled directly from the alliance selection.\ntype allianceSelectionSource struct {\n\tallianceId int\n}\n\nfunc (source allianceSelectionSource) AllianceId() int {\n\treturn source.allianceId\n}\n\nfunc (source allianceSelectionSource) displayName() string {\n\treturn fmt.Sprintf(\"A %d\", source.allianceId)\n}\n\nfunc (source allianceSelectionSource) setDestination(destination MatchGroup) {\n\t// Do nothing as there are no child match groups.\n}\n\nfunc (source allianceSelectionSource) update(playoffMatchResults map[int]playoffMatchResult) {\n\t// Do nothing as there are no child match groups.\n}\n\nfunc (source allianceSelectionSource) traverse(visitFunction func(MatchGroup) error) error {\n\t// Do nothing as there are no child match groups.\n\treturn nil\n}\n\n// Represents a playoff spot that is filled by the winner or loser of a given earlier matchup.\ntype matchupSource struct {\n\tmatchup   *Matchup\n\tuseWinner bool\n}\n\nfunc (source matchupSource) AllianceId() int {\n\tif source.useWinner {\n\t\treturn source.matchup.WinningAllianceId()\n\t} else {\n\t\treturn source.matchup.LosingAllianceId()\n\t}\n}\n\nfunc (source matchupSource) displayName() string {\n\tif source.useWinner {\n\t\treturn \"W \" + source.matchup.Id()\n\t}\n\treturn \"L \" + source.matchup.Id()\n}\n\nfunc (source matchupSource) setDestination(destination MatchGroup) {\n\tif source.useWinner {\n\t\tsource.matchup.winningAllianceDestination = destination\n\t} else {\n\t\tsource.matchup.losingAllianceDestination = destination\n\t}\n\n\t// Recurse down through the playoff tournament tree.\n\tsource.matchup.setSourceDestinations()\n}\n\nfunc (source matchupSource) update(playoffMatchResults map[int]playoffMatchResult) {\n\t// Only update if this source is for the winner, to avoid visiting the same match group more than once.\n\tif source.useWinner {\n\t\tsource.matchup.update(playoffMatchResults)\n\t}\n}\n\nfunc (source matchupSource) traverse(visitFunction func(MatchGroup) error) error {\n\t// Only traverse if this source is for the winner, to avoid visiting the same match group more than once.\n\tif source.useWinner {\n\t\treturn source.matchup.traverse(visitFunction)\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "playoff/break_spec.go",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Represents a scheduled break in the playoff match schedule.\n\npackage playoff\n\ntype breakSpec struct {\n\torderBefore int\n\tdurationSec int\n\tdescription string\n}\n"
  },
  {
    "path": "playoff/double_elimination.go",
    "content": "// Copyright 2022 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Defines the tournament structure for a double-elimination bracket culminating in a best-of-three final.\n\npackage playoff\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n)\n\n// Creates a double-elimination bracket and returns the root matchup comprising the tournament finals along with\n// scheduled breaks. Only supports having exactly eight alliances.\nfunc newDoubleEliminationBracket(numAlliances int) (*Matchup, []breakSpec, error) {\n\tif numAlliances != 8 {\n\t\treturn nil, nil, fmt.Errorf(\"double-elimination bracket must have exactly 8 alliances\")\n\t}\n\n\t// Define Round 1 matches.\n\tm1 := Matchup{\n\t\tid:                 \"M1\",\n\t\tNumWinsToAdvance:   1,\n\t\tredAllianceSource:  allianceSelectionSource{1},\n\t\tblueAllianceSource: allianceSelectionSource{8},\n\t\tmatchSpecs:         newDoubleEliminationMatch(1, \"Round 1 Upper\", 540),\n\t}\n\tm2 := Matchup{\n\t\tid:                 \"M2\",\n\t\tNumWinsToAdvance:   1,\n\t\tredAllianceSource:  allianceSelectionSource{4},\n\t\tblueAllianceSource: allianceSelectionSource{5},\n\t\tmatchSpecs:         newDoubleEliminationMatch(2, \"Round 1 Upper\", 540),\n\t}\n\tm3 := Matchup{\n\t\tid:                 \"M3\",\n\t\tNumWinsToAdvance:   1,\n\t\tredAllianceSource:  allianceSelectionSource{2},\n\t\tblueAllianceSource: allianceSelectionSource{7},\n\t\tmatchSpecs:         newDoubleEliminationMatch(3, \"Round 1 Upper\", 540),\n\t}\n\tm4 := Matchup{\n\t\tid:                 \"M4\",\n\t\tNumWinsToAdvance:   1,\n\t\tredAllianceSource:  allianceSelectionSource{3},\n\t\tblueAllianceSource: allianceSelectionSource{6},\n\t\tmatchSpecs:         newDoubleEliminationMatch(4, \"Round 1 Upper\", 540),\n\t}\n\n\t// Define Round 2 matches.\n\tm5 := Matchup{\n\t\tid:                 \"M5\",\n\t\tNumWinsToAdvance:   1,\n\t\tredAllianceSource:  matchupSource{matchup: &m1, useWinner: false},\n\t\tblueAllianceSource: matchupSource{matchup: &m2, useWinner: false},\n\t\tmatchSpecs:         newDoubleEliminationMatch(5, \"Round 2 Lower\", 540),\n\t}\n\tm6 := Matchup{\n\t\tid:                 \"M6\",\n\t\tNumWinsToAdvance:   1,\n\t\tredAllianceSource:  matchupSource{matchup: &m3, useWinner: false},\n\t\tblueAllianceSource: matchupSource{matchup: &m4, useWinner: false},\n\t\tmatchSpecs:         newDoubleEliminationMatch(6, \"Round 2 Lower\", 540),\n\t}\n\tm7 := Matchup{\n\t\tid:                 \"M7\",\n\t\tNumWinsToAdvance:   1,\n\t\tredAllianceSource:  matchupSource{matchup: &m1, useWinner: true},\n\t\tblueAllianceSource: matchupSource{matchup: &m2, useWinner: true},\n\t\tmatchSpecs:         newDoubleEliminationMatch(7, \"Round 2 Upper\", 540),\n\t}\n\tm8 := Matchup{\n\t\tid:                 \"M8\",\n\t\tNumWinsToAdvance:   1,\n\t\tredAllianceSource:  matchupSource{matchup: &m3, useWinner: true},\n\t\tblueAllianceSource: matchupSource{matchup: &m4, useWinner: true},\n\t\tmatchSpecs:         newDoubleEliminationMatch(8, \"Round 2 Upper\", 300),\n\t}\n\n\t// Define Round 3 matches.\n\tm9 := Matchup{\n\t\tid:                 \"M9\",\n\t\tNumWinsToAdvance:   1,\n\t\tredAllianceSource:  matchupSource{matchup: &m7, useWinner: false},\n\t\tblueAllianceSource: matchupSource{matchup: &m6, useWinner: true},\n\t\tmatchSpecs:         newDoubleEliminationMatch(9, \"Round 3 Lower\", 540),\n\t}\n\tm10 := Matchup{\n\t\tid:                 \"M10\",\n\t\tNumWinsToAdvance:   1,\n\t\tredAllianceSource:  matchupSource{matchup: &m8, useWinner: false},\n\t\tblueAllianceSource: matchupSource{matchup: &m5, useWinner: true},\n\t\tmatchSpecs:         newDoubleEliminationMatch(10, \"Round 3 Lower\", 300),\n\t}\n\n\t// Define Round 4 matches.\n\tm11 := Matchup{\n\t\tid:                 \"M11\",\n\t\tNumWinsToAdvance:   1,\n\t\tredAllianceSource:  matchupSource{matchup: &m7, useWinner: true},\n\t\tblueAllianceSource: matchupSource{matchup: &m8, useWinner: true},\n\t\tmatchSpecs:         newDoubleEliminationMatch(11, \"Round 4 Upper\", 540),\n\t}\n\tm12 := Matchup{\n\t\tid:                 \"M12\",\n\t\tNumWinsToAdvance:   1,\n\t\tredAllianceSource:  matchupSource{matchup: &m10, useWinner: true},\n\t\tblueAllianceSource: matchupSource{matchup: &m9, useWinner: true},\n\t\tmatchSpecs:         newDoubleEliminationMatch(12, \"Round 4 Lower\", 300),\n\t}\n\n\t// Define Round 5 matches.\n\tm13 := Matchup{\n\t\tid:                 \"M13\",\n\t\tNumWinsToAdvance:   1,\n\t\tredAllianceSource:  matchupSource{matchup: &m11, useWinner: false},\n\t\tblueAllianceSource: matchupSource{matchup: &m12, useWinner: true},\n\t\tmatchSpecs:         newDoubleEliminationMatch(13, \"Round 5 Lower\", 300),\n\t}\n\n\t// Define final matches.\n\tfinal := Matchup{\n\t\tid:                 \"F\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  matchupSource{matchup: &m11, useWinner: true},\n\t\tblueAllianceSource: matchupSource{matchup: &m13, useWinner: true},\n\t\tmatchSpecs:         newFinalMatches(14),\n\t}\n\n\t// Define scheduled breaks.\n\tbreakSpecs := []breakSpec{\n\t\t{9, 360, \"Field Break\"},\n\t\t{11, 360, \"Field Break\"},\n\t\t{13, 900, \"Awards Break\"},\n\t\t{14, 900, \"Awards Break\"},\n\t\t{15, 900, \"Awards Break\"},\n\t\t{16, 900, \"Awards Break\"},\n\t}\n\n\treturn &final, breakSpecs, nil\n}\n\n// Helper method to create the matches for a given pre-final double-elimination matchup.\nfunc newDoubleEliminationMatch(number int, nameDetail string, durationSec int) []*matchSpec {\n\treturn []*matchSpec{\n\t\t{\n\t\t\tlongName:            fmt.Sprintf(\"Match %d\", number),\n\t\t\tshortName:           fmt.Sprintf(\"M%d\", number),\n\t\t\tnameDetail:          nameDetail,\n\t\t\torder:               number,\n\t\t\tdurationSec:         durationSec,\n\t\t\tuseTiebreakCriteria: true,\n\t\t\ttbaMatchKey:         model.TbaMatchKey{\"sf\", number, 1},\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "playoff/double_elimination_test.go",
    "content": "// Copyright 2022 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage playoff\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestDoubleEliminationInitial(t *testing.T) {\n\tfinalMatchup, _, err := newDoubleEliminationBracket(8)\n\tassert.Nil(t, err)\n\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 19, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs,\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Match 1\", \"M1\", \"Round 1 Upper\", 1, \"M1\", true, false, \"sf\", 1, 1},\n\t\t\t\t{\"Match 2\", \"M2\", \"Round 1 Upper\", 2, \"M2\", true, false, \"sf\", 2, 1},\n\t\t\t\t{\"Match 3\", \"M3\", \"Round 1 Upper\", 3, \"M3\", true, false, \"sf\", 3, 1},\n\t\t\t\t{\"Match 4\", \"M4\", \"Round 1 Upper\", 4, \"M4\", true, false, \"sf\", 4, 1},\n\t\t\t\t{\"Match 5\", \"M5\", \"Round 2 Lower\", 5, \"M5\", true, false, \"sf\", 5, 1},\n\t\t\t\t{\"Match 6\", \"M6\", \"Round 2 Lower\", 6, \"M6\", true, false, \"sf\", 6, 1},\n\t\t\t\t{\"Match 7\", \"M7\", \"Round 2 Upper\", 7, \"M7\", true, false, \"sf\", 7, 1},\n\t\t\t\t{\"Match 8\", \"M8\", \"Round 2 Upper\", 8, \"M8\", true, false, \"sf\", 8, 1},\n\t\t\t\t{\"Match 9\", \"M9\", \"Round 3 Lower\", 9, \"M9\", true, false, \"sf\", 9, 1},\n\t\t\t\t{\"Match 10\", \"M10\", \"Round 3 Lower\", 10, \"M10\", true, false, \"sf\", 10, 1},\n\t\t\t\t{\"Match 11\", \"M11\", \"Round 4 Upper\", 11, \"M11\", true, false, \"sf\", 11, 1},\n\t\t\t\t{\"Match 12\", \"M12\", \"Round 4 Lower\", 12, \"M12\", true, false, \"sf\", 12, 1},\n\t\t\t\t{\"Match 13\", \"M13\", \"Round 5 Lower\", 13, \"M13\", true, false, \"sf\", 13, 1},\n\t\t\t\t{\"Final 1\", \"F1\", \"\", 14, \"F\", false, false, \"f\", 1, 1},\n\t\t\t\t{\"Final 2\", \"F2\", \"\", 15, \"F\", false, false, \"f\", 1, 2},\n\t\t\t\t{\"Final 3\", \"F3\", \"\", 16, \"F\", false, false, \"f\", 1, 3},\n\t\t\t\t{\"Overtime 1\", \"O1\", \"\", 17, \"F\", true, true, \"f\", 1, 4},\n\t\t\t\t{\"Overtime 2\", \"O2\", \"\", 18, \"F\", true, true, \"f\", 1, 5},\n\t\t\t\t{\"Overtime 3\", \"O3\", \"\", 19, \"F\", true, true, \"f\", 1, 6},\n\t\t\t},\n\t\t)\n\t}\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tassertMatchSpecAlliances(\n\t\tt,\n\t\tmatchSpecs[0:4],\n\t\t[]expectedAlliances{\n\t\t\t{1, 8},\n\t\t\t{4, 5},\n\t\t\t{2, 7},\n\t\t\t{3, 6},\n\t\t},\n\t)\n\tfor i := 4; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(\n\t\tt, matchGroups, \"M1\", \"M2\", \"M3\", \"M4\", \"M5\", \"M6\", \"M7\", \"M8\", \"M9\", \"M10\", \"M11\", \"M12\", \"M13\", \"F\",\n\t)\n}\n\nfunc TestDoubleEliminationErrors(t *testing.T) {\n\t_, _, err := newDoubleEliminationBracket(7)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, \"double-elimination bracket must have exactly 8 alliances\", err.Error())\n\t}\n\n\t_, _, err = newDoubleEliminationBracket(9)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, \"double-elimination bracket must have exactly 8 alliances\", err.Error())\n\t}\n}\n\nfunc TestDoubleEliminationProgression(t *testing.T) {\n\tplayoffTournament, err := NewPlayoffTournament(model.DoubleEliminationPlayoff, 8)\n\tassert.Nil(t, err)\n\tfinalMatchup := playoffTournament.FinalMatchup()\n\tmatchSpecs := playoffTournament.matchSpecs\n\tmatchGroups := playoffTournament.MatchGroups()\n\tplayoffMatchResults := map[int]playoffMatchResult{}\n\n\tassertMatchupOutcome(t, matchGroups[\"M1\"], \"\", \"\")\n\n\tplayoffMatchResults[1] = playoffMatchResult{game.RedWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassertMatchSpecAlliances(t, matchSpecs[4:7], []expectedAlliances{{8, 0}, {0, 0}, {1, 0}})\n\tfor i := 7; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\tassertMatchupOutcome(\n\t\tt, matchGroups[\"M1\"], \"Advances to Match 7 &ndash; Round 2 Upper\", \"Advances to Match 5 &ndash; Round 2 Lower\",\n\t)\n\n\t// Reverse a previous outcome.\n\tplayoffMatchResults[1] = playoffMatchResult{game.BlueWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassertMatchSpecAlliances(t, matchSpecs[4:7], []expectedAlliances{{1, 0}, {0, 0}, {8, 0}})\n\tfor i := 7; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\tassertMatchupOutcome(\n\t\tt, matchGroups[\"M1\"], \"Advances to Match 5 &ndash; Round 2 Lower\", \"Advances to Match 7 &ndash; Round 2 Upper\",\n\t)\n\n\tplayoffMatchResults[2] = playoffMatchResult{game.RedWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassertMatchSpecAlliances(t, matchSpecs[4:7], []expectedAlliances{{1, 5}, {0, 0}, {8, 4}})\n\tfor i := 7; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\tassertMatchupOutcome(\n\t\tt, matchGroups[\"M2\"], \"Advances to Match 7 &ndash; Round 2 Upper\", \"Advances to Match 5 &ndash; Round 2 Lower\",\n\t)\n\n\tplayoffMatchResults[3] = playoffMatchResult{game.BlueWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassertMatchSpecAlliances(t, matchSpecs[5:8], []expectedAlliances{{2, 0}, {8, 4}, {7, 0}})\n\tfor i := 8; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\tassertMatchupOutcome(\n\t\tt, matchGroups[\"M3\"], \"Advances to Match 6 &ndash; Round 2 Lower\", \"Advances to Match 8 &ndash; Round 2 Upper\",\n\t)\n\n\tplayoffMatchResults[4] = playoffMatchResult{game.RedWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassertMatchSpecAlliances(t, matchSpecs[5:8], []expectedAlliances{{2, 6}, {8, 4}, {7, 3}})\n\tfor i := 8; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tplayoffMatchResults[5] = playoffMatchResult{game.BlueWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassertMatchSpecAlliances(t, matchSpecs[8:10], []expectedAlliances{{0, 0}, {0, 5}})\n\tfor i := 10; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\tassertMatchupOutcome(t, matchGroups[\"M5\"], \"Eliminated\", \"Advances to Match 10 &ndash; Round 3 Lower\")\n\n\tplayoffMatchResults[6] = playoffMatchResult{game.RedWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassertMatchSpecAlliances(t, matchSpecs[8:10], []expectedAlliances{{0, 2}, {0, 5}})\n\tfor i := 10; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\t// Score a perfect tie; no alliance should advance until the match is replayed.\n\tplayoffMatchResults[7] = playoffMatchResult{game.TieMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassertMatchSpecAlliances(t, matchSpecs[8:10], []expectedAlliances{{0, 2}, {0, 5}})\n\tfor i := 10; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tplayoffMatchResults[7] = playoffMatchResult{game.BlueWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassertMatchSpecAlliances(t, matchSpecs[8:11], []expectedAlliances{{8, 2}, {0, 5}, {4, 0}})\n\tfor i := 11; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tplayoffMatchResults[8] = playoffMatchResult{game.BlueWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassertMatchSpecAlliances(t, matchSpecs[8:11], []expectedAlliances{{8, 2}, {7, 5}, {4, 3}})\n\tfor i := 11; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\t// Score two matches at the same time.\n\tplayoffMatchResults[9] = playoffMatchResult{game.RedWonMatch}\n\tplayoffMatchResults[10] = playoffMatchResult{game.RedWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassertMatchSpecAlliances(t, matchSpecs[11:12], []expectedAlliances{{7, 8}})\n\tfor i := 12; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tplayoffMatchResults[11] = playoffMatchResult{game.RedWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassertMatchSpecAlliances(t, matchSpecs[12:13], []expectedAlliances{{3, 0}})\n\tfinalMatchup.update(playoffMatchResults)\n\tfor i := 13; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{4, 0}})\n\t}\n\tassertMatchupOutcome(\n\t\tt, matchGroups[\"M11\"], \"Advances to Final 1\", \"Advances to Match 13 &ndash; Round 5 Lower\",\n\t)\n\n\tplayoffMatchResults[12] = playoffMatchResult{game.RedWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassertMatchSpecAlliances(t, matchSpecs[12:13], []expectedAlliances{{3, 7}})\n\tfor i := 13; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{4, 0}})\n\t}\n\n\tplayoffMatchResults[13] = playoffMatchResult{game.RedWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tfor i := 13; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{4, 3}})\n\t}\n\tassertMatchupOutcome(t, matchGroups[\"M13\"], \"Advances to Final 1\", \"Eliminated\")\n\n\t// Unscore the previous match.\n\tdelete(playoffMatchResults, 13)\n\tfinalMatchup.update(playoffMatchResults)\n\tassertMatchSpecAlliances(t, matchSpecs[12:13], []expectedAlliances{{3, 7}})\n\tfor i := 13; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{4, 0}})\n\t}\n\tassertMatchupOutcome(t, matchGroups[\"M13\"], \"\", \"\")\n\n\tplayoffMatchResults[13] = playoffMatchResult{game.BlueWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tfor i := 13; i < 19; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{4, 7}})\n\t}\n\tassertMatchupOutcome(t, matchGroups[\"M13\"], \"Eliminated\", \"Advances to Final 1\")\n\n\tplayoffMatchResults[14] = playoffMatchResult{game.BlueWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassert.False(t, finalMatchup.IsComplete())\n\tassert.Equal(t, 0, finalMatchup.WinningAllianceId())\n\tassert.Equal(t, 0, finalMatchup.LosingAllianceId())\n\tassertMatchupOutcome(t, matchGroups[\"F\"], \"\", \"\")\n\n\tplayoffMatchResults[15] = playoffMatchResult{game.RedWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassert.False(t, finalMatchup.IsComplete())\n\tassert.Equal(t, 0, finalMatchup.WinningAllianceId())\n\tassert.Equal(t, 0, finalMatchup.LosingAllianceId())\n\tassertMatchupOutcome(t, matchGroups[\"F\"], \"\", \"\")\n\n\tplayoffMatchResults[16] = playoffMatchResult{game.TieMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassert.False(t, finalMatchup.IsComplete())\n\tassert.Equal(t, 0, finalMatchup.WinningAllianceId())\n\tassert.Equal(t, 0, finalMatchup.LosingAllianceId())\n\tassertMatchupOutcome(t, matchGroups[\"F\"], \"\", \"\")\n\n\tplayoffMatchResults[17] = playoffMatchResult{game.TieMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassert.False(t, finalMatchup.IsComplete())\n\tassert.Equal(t, 0, finalMatchup.WinningAllianceId())\n\tassert.Equal(t, 0, finalMatchup.LosingAllianceId())\n\tassertMatchupOutcome(t, matchGroups[\"F\"], \"\", \"\")\n\n\tplayoffMatchResults[18] = playoffMatchResult{game.BlueWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassert.True(t, finalMatchup.IsComplete())\n\tassert.Equal(t, 7, finalMatchup.WinningAllianceId())\n\tassert.Equal(t, 4, finalMatchup.LosingAllianceId())\n\tassertMatchupOutcome(t, matchGroups[\"F\"], \"Tournament Finalist\", \"Tournament Winner\")\n}\n"
  },
  {
    "path": "playoff/match_group.go",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Interface representing a stage of a playoff tournament containing one or more related matches.\n\npackage playoff\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"sort\"\n)\n\ntype MatchGroup interface {\n\t// Id returns the unique identifier for the match group.\n\tId() string\n\n\t// MatchSpecs returns the list of match specifications that define the matches in the match group.\n\tMatchSpecs() []*matchSpec\n\n\t// update updates the state of each match group based on the results of the given played matches.\n\tupdate(playoffMatchResults map[int]playoffMatchResult)\n\n\t// traverse performs a depth-first traversal of the playoff graph and invokes the given function after visiting each\n\t// match group's children.\n\ttraverse(visitFunction func(MatchGroup) error) error\n}\n\ntype matchSpec struct {\n\tlongName            string\n\tshortName           string\n\tnameDetail          string\n\tmatchGroupId        string\n\torder               int\n\tdurationSec         int\n\tuseTiebreakCriteria bool\n\tisHidden            bool\n\ttbaMatchKey         model.TbaMatchKey\n\tredAllianceId       int\n\tblueAllianceId      int\n}\n\n// collectMatchGroups returns a map of all match groups including and below the given root match group, keyed by ID.\nfunc collectMatchGroups(rootMatchGroup MatchGroup) (map[string]MatchGroup, error) {\n\tmatchGroups := make(map[string]MatchGroup)\n\terr := rootMatchGroup.traverse(\n\t\tfunc(matchGroup MatchGroup) error {\n\t\t\tif _, ok := matchGroups[matchGroup.Id()]; ok {\n\t\t\t\treturn fmt.Errorf(\"match group with ID %q defined more than once\", matchGroup.Id())\n\t\t\t}\n\t\t\tmatchGroups[matchGroup.Id()] = matchGroup\n\t\t\treturn nil\n\t\t},\n\t)\n\treturn matchGroups, err\n}\n\n// collectMatches returns a slice of all matches including and below the given root match group, in order of play.\nfunc collectMatchSpecs(rootMatchGroup MatchGroup) ([]*matchSpec, error) {\n\tuniqueLongNames := make(map[string]struct{})\n\tuniqueShortNames := make(map[string]struct{})\n\tuniqueOrders := make(map[int]struct{})\n\tuniqueTbaKeys := make(map[model.TbaMatchKey]struct{})\n\n\tvar matches []*matchSpec\n\terr := rootMatchGroup.traverse(\n\t\tfunc(matchGroup MatchGroup) error {\n\t\t\tfor _, match := range matchGroup.MatchSpecs() {\n\t\t\t\tif _, ok := uniqueLongNames[match.longName]; ok {\n\t\t\t\t\treturn fmt.Errorf(\"match with long name %q defined more than once\", match.longName)\n\t\t\t\t}\n\t\t\t\tif _, ok := uniqueShortNames[match.shortName]; ok {\n\t\t\t\t\treturn fmt.Errorf(\"match with short name %q defined more than once\", match.shortName)\n\t\t\t\t}\n\t\t\t\tif _, ok := uniqueOrders[match.order]; ok {\n\t\t\t\t\treturn fmt.Errorf(\"match with order %d defined more than once\", match.order)\n\t\t\t\t}\n\t\t\t\tif _, ok := uniqueTbaKeys[match.tbaMatchKey]; ok {\n\t\t\t\t\treturn fmt.Errorf(\"match with TBA key %q defined more than once\", match.tbaMatchKey)\n\t\t\t\t}\n\n\t\t\t\tmatch.matchGroupId = matchGroup.Id()\n\t\t\t\tmatches = append(matches, match)\n\t\t\t\tuniqueLongNames[match.longName] = struct{}{}\n\t\t\t\tuniqueShortNames[match.shortName] = struct{}{}\n\t\t\t\tuniqueOrders[match.order] = struct{}{}\n\t\t\t\tuniqueTbaKeys[match.tbaMatchKey] = struct{}{}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t)\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tsort.Slice(\n\t\tmatches,\n\t\tfunc(i, j int) bool {\n\t\t\treturn matches[i].order < matches[j].order\n\t\t},\n\t)\n\treturn matches, nil\n}\n"
  },
  {
    "path": "playoff/match_group_test.go",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage playoff\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestCollectMatchGroupsErrors(t *testing.T) {\n\t// Duplicate match group ID.\n\tmatchGroup1 := Matchup{\n\t\tid:                 \"M1\",\n\t\tNumWinsToAdvance:   1,\n\t\tredAllianceSource:  allianceSelectionSource{2},\n\t\tblueAllianceSource: allianceSelectionSource{3},\n\t\tmatchSpecs:         newDoubleEliminationMatch(1, \"\", 300),\n\t}\n\tmatchGroup2 := Matchup{\n\t\tid:                 \"M1\",\n\t\tNumWinsToAdvance:   1,\n\t\tredAllianceSource:  allianceSelectionSource{1},\n\t\tblueAllianceSource: matchupSource{&matchGroup1, true},\n\t\tmatchSpecs:         newDoubleEliminationMatch(2, \"\", 300),\n\t}\n\n\t_, err := collectMatchGroups(&matchGroup2)\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"ID \\\"M1\\\" defined more than once\")\n\t}\n}\n\nfunc TestCollectMatchSpecsErrors(t *testing.T) {\n\tmatch1 := matchSpec{\n\t\tlongName:    \"Final 1\",\n\t\tshortName:   \"F1\",\n\t\torder:       1,\n\t\ttbaMatchKey: model.TbaMatchKey{\"f\", 1, 1},\n\t}\n\tmatch2 := matchSpec{\n\t\tlongName:    \"Final 2\",\n\t\tshortName:   \"F2\",\n\t\torder:       2,\n\t\ttbaMatchKey: model.TbaMatchKey{\"f\", 1, 2},\n\t}\n\tmatch3 := matchSpec{\n\t\tlongName:    \"Final 3\",\n\t\tshortName:   \"F3\",\n\t\torder:       3,\n\t\ttbaMatchKey: model.TbaMatchKey{\"f\", 1, 3},\n\t}\n\n\t// No errors to start.\n\tmatchGroup1 := Matchup{\n\t\tid:                 \"F\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  allianceSelectionSource{1},\n\t\tblueAllianceSource: allianceSelectionSource{2},\n\t\tmatchSpecs:         []*matchSpec{&match3, &match2, &match1},\n\t}\n\tmatchSpecs, err := collectMatchSpecs(&matchGroup1)\n\tassert.Nil(t, err)\n\tassert.Equal(t, []*matchSpec{&match1, &match2, &match3}, matchSpecs)\n\n\t// Duplicate long name.\n\tmatch3.longName = \"Final 1\"\n\t_, err = collectMatchSpecs(&matchGroup1)\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"long name \\\"Final 1\\\" defined more than once\")\n\t}\n\n\t// Duplicate short name.\n\tmatch3.longName = \"Final 3\"\n\tmatch3.shortName = \"F1\"\n\t_, err = collectMatchSpecs(&matchGroup1)\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"short name \\\"F1\\\" defined more than once\")\n\t}\n\n\t// Duplicate order.\n\tmatch3.shortName = \"F3\"\n\tmatch3.order = 1\n\t_, err = collectMatchSpecs(&matchGroup1)\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"order 1 defined more than once\")\n\t}\n\n\t// Duplicate TBA match key.\n\tmatch3.order = 3\n\tmatch3.tbaMatchKey = model.TbaMatchKey{\"f\", 1, 1}\n\t_, err = collectMatchSpecs(&matchGroup1)\n\tif assert.NotNil(t, err) {\n\t\tassert.Regexp(t, \"TBA key .* defined more than once\", err.Error())\n\t}\n}\n"
  },
  {
    "path": "playoff/matchup.go",
    "content": "// Copyright 2022 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Models and logic encapsulating a group of one or more matches between the same two alliances at a given point in a\n// playoff tournament.\n\npackage playoff\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"math\"\n)\n\ntype Matchup struct {\n\tid                         string\n\tNumWinsToAdvance           int\n\tredAllianceSource          allianceSource\n\tblueAllianceSource         allianceSource\n\tmatchSpecs                 []*matchSpec\n\tRedAllianceId              int\n\tBlueAllianceId             int\n\tRedAllianceWins            int\n\tBlueAllianceWins           int\n\tNumMatchesPlayed           int\n\twinningAllianceDestination MatchGroup\n\tlosingAllianceDestination  MatchGroup\n}\n\nfunc (matchup *Matchup) Id() string {\n\treturn matchup.id\n}\n\nfunc (matchup *Matchup) MatchSpecs() []*matchSpec {\n\treturn matchup.matchSpecs\n}\n\nfunc (matchup *Matchup) update(playoffMatchResults map[int]playoffMatchResult) {\n\t// Update child matchups first.\n\tmatchup.redAllianceSource.update(playoffMatchResults)\n\tmatchup.blueAllianceSource.update(playoffMatchResults)\n\n\t// Populate the alliance IDs from the lower matchups (or with a zero value if they are not yet complete).\n\tmatchup.RedAllianceId = matchup.redAllianceSource.AllianceId()\n\tmatchup.BlueAllianceId = matchup.blueAllianceSource.AllianceId()\n\n\tfor _, match := range matchup.matchSpecs {\n\t\tmatch.redAllianceId = matchup.RedAllianceId\n\t\tmatch.blueAllianceId = matchup.BlueAllianceId\n\t}\n\n\tmatchup.RedAllianceWins = 0\n\tmatchup.BlueAllianceWins = 0\n\tmatchup.NumMatchesPlayed = 0\n\tvar unplayedMatches []*matchSpec\n\tfor _, match := range matchup.matchSpecs {\n\t\tif matchResult, ok := playoffMatchResults[match.order]; ok {\n\t\t\tswitch matchResult.status {\n\t\t\tcase game.RedWonMatch:\n\t\t\t\tmatchup.RedAllianceWins++\n\t\t\t\tmatchup.NumMatchesPlayed++\n\t\t\tcase game.BlueWonMatch:\n\t\t\t\tmatchup.BlueAllianceWins++\n\t\t\t\tmatchup.NumMatchesPlayed++\n\t\t\tcase game.TieMatch:\n\t\t\t\tmatchup.NumMatchesPlayed++\n\t\t\t}\n\t\t} else {\n\t\t\tunplayedMatches = append(unplayedMatches, match)\n\t\t}\n\t}\n\n\tnumMatchesToSchedule := int(\n\t\tmath.Min(\n\t\t\tfloat64(matchup.NumWinsToAdvance-matchup.RedAllianceWins),\n\t\t\tfloat64(matchup.NumWinsToAdvance-matchup.BlueAllianceWins),\n\t\t),\n\t)\n\tfor _, match := range unplayedMatches {\n\t\tif numMatchesToSchedule > 0 {\n\t\t\tmatch.isHidden = false\n\t\t\tnumMatchesToSchedule--\n\t\t} else if matchup.IsComplete() {\n\t\t\tmatch.isHidden = true\n\t\t}\n\t}\n}\n\n// setSourceDestinations recursively sets the destination of the alliance sources to this matchup.\nfunc (matchup *Matchup) setSourceDestinations() {\n\tmatchup.redAllianceSource.setDestination(matchup)\n\tmatchup.blueAllianceSource.setDestination(matchup)\n}\n\nfunc (matchup *Matchup) traverse(visitFunction func(MatchGroup) error) error {\n\tif err := visitFunction(matchup); err != nil {\n\t\treturn err\n\t}\n\tif err := matchup.redAllianceSource.traverse(visitFunction); err != nil {\n\t\treturn err\n\t}\n\tif err := matchup.blueAllianceSource.traverse(visitFunction); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// RedAllianceSourceDisplayName returns the display name for the linked matchup from which the red alliance is\n// populated.\nfunc (matchup *Matchup) RedAllianceSourceDisplayName() string {\n\treturn matchup.redAllianceSource.displayName()\n}\n\n// BlueAllianceSourceDisplayName returns the display name for the linked matchup from which the blue alliance is\n// populated.\nfunc (matchup *Matchup) BlueAllianceSourceDisplayName() string {\n\treturn matchup.blueAllianceSource.displayName()\n}\n\n// RedAllianceDestination returns a string representing the red alliance's next destination in the tournament.\nfunc (matchup *Matchup) RedAllianceDestination() string {\n\treturn matchup.allianceDestination(matchup.RedAllianceId)\n}\n\n// BlueAllianceDestination returns a string representing the blue alliance's next destination in the tournament.\nfunc (matchup *Matchup) BlueAllianceDestination() string {\n\treturn matchup.allianceDestination(matchup.BlueAllianceId)\n}\n\n// StatusText returns a pair of strings indicating the leading alliance and a readable status of the matchup.\nfunc (matchup *Matchup) StatusText() (string, string) {\n\tvar leader, status string\n\twinText := \"Advances\"\n\tif matchup.isFinal() {\n\t\twinText = \"Wins\"\n\t}\n\tif matchup.RedAllianceWins >= matchup.NumWinsToAdvance {\n\t\tleader = \"red\"\n\t\tstatus = fmt.Sprintf(\"Red %s %d-%d\", winText, matchup.RedAllianceWins, matchup.BlueAllianceWins)\n\t} else if matchup.BlueAllianceWins >= matchup.NumWinsToAdvance {\n\t\tleader = \"blue\"\n\t\tstatus = fmt.Sprintf(\"Blue %s %d-%d\", winText, matchup.BlueAllianceWins, matchup.RedAllianceWins)\n\t} else if matchup.RedAllianceWins > matchup.BlueAllianceWins {\n\t\tleader = \"red\"\n\t\tstatus = fmt.Sprintf(\"Red Leads %d-%d\", matchup.RedAllianceWins, matchup.BlueAllianceWins)\n\t} else if matchup.BlueAllianceWins > matchup.RedAllianceWins {\n\t\tleader = \"blue\"\n\t\tstatus = fmt.Sprintf(\"Blue Leads %d-%d\", matchup.BlueAllianceWins, matchup.RedAllianceWins)\n\t} else if matchup.RedAllianceWins > 0 {\n\t\tstatus = fmt.Sprintf(\"Series Tied %d-%d\", matchup.RedAllianceWins, matchup.BlueAllianceWins)\n\t}\n\treturn leader, status\n}\n\n// WinningAllianceId returns the winning alliance ID of the matchup, or 0 if it is not yet known.\nfunc (matchup *Matchup) WinningAllianceId() int {\n\tif matchup.RedAllianceWins >= matchup.NumWinsToAdvance {\n\t\treturn matchup.RedAllianceId\n\t}\n\tif matchup.BlueAllianceWins >= matchup.NumWinsToAdvance {\n\t\treturn matchup.BlueAllianceId\n\t}\n\treturn 0\n}\n\n// LosingAllianceId returns the losing alliance ID of the matchup, or 0 if it is not yet known.\nfunc (matchup *Matchup) LosingAllianceId() int {\n\tif matchup.RedAllianceWins >= matchup.NumWinsToAdvance {\n\t\treturn matchup.BlueAllianceId\n\t}\n\tif matchup.BlueAllianceWins >= matchup.NumWinsToAdvance {\n\t\treturn matchup.RedAllianceId\n\t}\n\treturn 0\n}\n\n// IsComplete returns true if the matchup has been won, and false if it is still to be determined.\nfunc (matchup *Matchup) IsComplete() bool {\n\treturn matchup.WinningAllianceId() > 0\n}\n\n// IsLosingAllianceEliminated returns true if the losing alliance is eliminated from the tournament.\nfunc (matchup *Matchup) IsLosingAllianceEliminated() bool {\n\treturn matchup.losingAllianceDestination == nil\n}\n\n// isFinal returns true if the matchup represents the final matchup in the playoff tournament.\nfunc (matchup *Matchup) isFinal() bool {\n\treturn matchup.id == \"F\"\n}\n\n// allianceDestination returns a string representing the given alliance's next destination in the tournament.\nfunc (matchup *Matchup) allianceDestination(allianceId int) string {\n\tif !matchup.IsComplete() {\n\t\treturn \"\"\n\t}\n\n\tif matchup.isFinal() {\n\t\tif matchup.WinningAllianceId() == allianceId {\n\t\t\treturn \"Tournament Winner\"\n\t\t} else {\n\t\t\treturn \"Tournament Finalist\"\n\t\t}\n\t}\n\n\tif matchup.WinningAllianceId() == allianceId {\n\t\treturn fmt.Sprintf(\"Advances to %s\", formatDestinationMatchName(matchup.winningAllianceDestination))\n\t} else {\n\t\tif matchup.losingAllianceDestination == nil {\n\t\t\treturn \"Eliminated\"\n\t\t}\n\t\treturn fmt.Sprintf(\"Advances to %s\", formatDestinationMatchName(matchup.losingAllianceDestination))\n\t}\n}\n\n// Returns a string representation of the first match from the given matchup.\nfunc formatDestinationMatchName(destination MatchGroup) string {\n\tif destination == nil || len(destination.MatchSpecs()) == 0 {\n\t\treturn \"\"\n\t}\n\n\tdestinationMatch := destination.MatchSpecs()[0]\n\tdestinationMatchName := destinationMatch.longName\n\tif destinationMatch.nameDetail != \"\" {\n\t\tdestinationMatchName += \" &ndash; \" + destinationMatch.nameDetail\n\t}\n\treturn destinationMatchName\n}\n"
  },
  {
    "path": "playoff/matchup_test.go",
    "content": "// Copyright 2022 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage playoff\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestMatchupAllianceSourceDisplayNames(t *testing.T) {\n\t// Test double-elimination.\n\tmatchup, _, err := newDoubleEliminationBracket(8)\n\tassert.Nil(t, err)\n\n\tassert.Equal(t, \"W M11\", matchup.RedAllianceSourceDisplayName())\n\tassert.Equal(t, \"W M13\", matchup.BlueAllianceSourceDisplayName())\n\n\tmatchGroups, err := collectMatchGroups(matchup)\n\tassert.Nil(t, err)\n\tmatch13 := matchGroups[\"M13\"].(*Matchup)\n\tassert.Equal(t, \"L M11\", match13.RedAllianceSourceDisplayName())\n\tassert.Equal(t, \"W M12\", match13.BlueAllianceSourceDisplayName())\n\n\t// Test single-elimination.\n\tmatchup, _, err = newSingleEliminationBracket(5)\n\tassert.Nil(t, err)\n\n\tassert.Equal(t, \"W SF1\", matchup.RedAllianceSourceDisplayName())\n\tassert.Equal(t, \"W SF2\", matchup.BlueAllianceSourceDisplayName())\n\n\tmatchGroups, err = collectMatchGroups(matchup)\n\tassert.Nil(t, err)\n\tsf1 := matchGroups[\"SF1\"].(*Matchup)\n\tassert.Nil(t, err)\n\tassert.Equal(t, \"A 1\", sf1.RedAllianceSourceDisplayName())\n\tassert.Equal(t, \"W QF2\", sf1.BlueAllianceSourceDisplayName())\n}\n\nfunc TestMatchupStatusText(t *testing.T) {\n\tmatchup := Matchup{NumWinsToAdvance: 1}\n\n\tleader, status := matchup.StatusText()\n\tassert.Equal(t, \"\", leader)\n\tassert.Equal(t, \"\", status)\n\n\tmatchup.RedAllianceWins = 1\n\tleader, status = matchup.StatusText()\n\tassert.Equal(t, \"red\", leader)\n\tassert.Equal(t, \"Red Advances 1-0\", status)\n\n\tmatchup.RedAllianceWins = 0\n\tmatchup.BlueAllianceWins = 2\n\tleader, status = matchup.StatusText()\n\tassert.Equal(t, \"blue\", leader)\n\tassert.Equal(t, \"Blue Advances 2-0\", status)\n\n\tmatchup.NumWinsToAdvance = 3\n\tmatchup.BlueAllianceWins = 2\n\tleader, status = matchup.StatusText()\n\tassert.Equal(t, \"blue\", leader)\n\tassert.Equal(t, \"Blue Leads 2-0\", status)\n\n\tmatchup.RedAllianceWins = 2\n\tleader, status = matchup.StatusText()\n\tassert.Equal(t, \"\", leader)\n\tassert.Equal(t, \"Series Tied 2-2\", status)\n\n\tmatchup.BlueAllianceWins = 1\n\tleader, status = matchup.StatusText()\n\tassert.Equal(t, \"red\", leader)\n\tassert.Equal(t, \"Red Leads 2-1\", status)\n\n\tmatchup.id = \"F\"\n\tmatchup.RedAllianceWins = 3\n\tleader, status = matchup.StatusText()\n\tassert.Equal(t, \"red\", leader)\n\tassert.Equal(t, \"Red Wins 3-1\", status)\n\n\tmatchup.RedAllianceWins = 2\n\tmatchup.BlueAllianceWins = 4\n\tleader, status = matchup.StatusText()\n\tassert.Equal(t, \"blue\", leader)\n\tassert.Equal(t, \"Blue Wins 4-2\", status)\n\n\tmatchup.RedAllianceWins = 0\n\tmatchup.BlueAllianceWins = 0\n\tleader, status = matchup.StatusText()\n\tassert.Equal(t, \"\", leader)\n\tassert.Equal(t, \"\", status)\n}\n\nfunc TestMatchupHideUnnecessaryMatches(t *testing.T) {\n\tqf1 := Matchup{\n\t\tid:                 \"QF1\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  allianceSelectionSource{1},\n\t\tblueAllianceSource: allianceSelectionSource{8},\n\t\tmatchSpecs: []*matchSpec{\n\t\t\tnewSingleEliminationMatch(\"Quarterfinal\", \"QF\", 1, 1, 1),\n\t\t\tnewSingleEliminationMatch(\"Quarterfinal\", \"QF\", 1, 2, 5),\n\t\t\tnewSingleEliminationMatch(\"Quarterfinal\", \"QF\", 1, 3, 9),\n\t\t},\n\t}\n\n\tmatchSpecs, err := collectMatchSpecs(&qf1)\n\tassert.Nil(t, err)\n\tfor _, matchSpec := range matchSpecs {\n\t\tassert.False(t, matchSpec.isHidden)\n\t}\n\n\tplayoffMatchResults := map[int]playoffMatchResult{1: {game.BlueWonMatch}}\n\tqf1.update(playoffMatchResults)\n\tfor _, matchSpec := range matchSpecs {\n\t\tassert.False(t, matchSpec.isHidden)\n\t}\n\n\t// Check that the third match is hidden if the first two are won by the same alliance.\n\tplayoffMatchResults[5] = playoffMatchResult{game.BlueWonMatch}\n\tqf1.update(playoffMatchResults)\n\tassert.False(t, matchSpecs[0].isHidden)\n\tassert.False(t, matchSpecs[1].isHidden)\n\tassert.True(t, matchSpecs[2].isHidden)\n\n\t// Check that the third match is unhidden if the prior outcome is reversed.\n\tplayoffMatchResults[5] = playoffMatchResult{game.RedWonMatch}\n\tqf1.update(playoffMatchResults)\n\tfor _, matchSpec := range matchSpecs {\n\t\tassert.False(t, matchSpec.isHidden)\n\t}\n}\n\nfunc TestMatchupOvertime(t *testing.T) {\n\tfinal := Matchup{\n\t\tid:                 \"F\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  allianceSelectionSource{1},\n\t\tblueAllianceSource: allianceSelectionSource{8},\n\t\tmatchSpecs:         newFinalMatches(1),\n\t}\n\n\tmatchSpecs, err := collectMatchSpecs(&final)\n\tassert.Nil(t, err)\n\tfor i := 0; i < 3; i++ {\n\t\tassert.False(t, matchSpecs[i].isHidden)\n\t}\n\tfor i := 3; i < 6; i++ {\n\t\tassert.True(t, matchSpecs[i].isHidden)\n\t}\n\n\tplayoffMatchResults := map[int]playoffMatchResult{1: {game.RedWonMatch}, 2: {game.TieMatch}}\n\tfinal.update(playoffMatchResults)\n\tfor i := 0; i < 3; i++ {\n\t\tassert.False(t, matchSpecs[i].isHidden)\n\t}\n\tfor i := 3; i < 6; i++ {\n\t\tassert.True(t, matchSpecs[i].isHidden)\n\t}\n\n\tplayoffMatchResults[3] = playoffMatchResult{game.BlueWonMatch}\n\tfinal.update(playoffMatchResults)\n\tfor i := 0; i < 4; i++ {\n\t\tassert.False(t, matchSpecs[i].isHidden)\n\t}\n\tfor i := 4; i < 6; i++ {\n\t\tassert.True(t, matchSpecs[i].isHidden)\n\t}\n\n\tplayoffMatchResults[4] = playoffMatchResult{game.TieMatch}\n\tfinal.update(playoffMatchResults)\n\tfor i := 0; i < 5; i++ {\n\t\tassert.False(t, matchSpecs[i].isHidden)\n\t}\n\tfor i := 5; i < 6; i++ {\n\t\tassert.True(t, matchSpecs[i].isHidden)\n\t}\n\n\tplayoffMatchResults[5] = playoffMatchResult{game.BlueWonMatch}\n\tfinal.update(playoffMatchResults)\n\tfor i := 0; i < 5; i++ {\n\t\tassert.False(t, matchSpecs[i].isHidden)\n\t}\n\tfor i := 5; i < 6; i++ {\n\t\tassert.True(t, matchSpecs[i].isHidden)\n\t}\n}\n"
  },
  {
    "path": "playoff/playoff_match_result.go",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Represents the outcome of a given playoff match.\n\npackage playoff\n\nimport \"github.com/Team254/cheesy-arena/game\"\n\ntype playoffMatchResult struct {\n\tstatus game.MatchStatus\n}\n"
  },
  {
    "path": "playoff/playoff_tournament.go",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Models and logic encapsulating the common aspects of all supported playoff tournament formats.\n\npackage playoff\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"time\"\n)\n\ntype PlayoffTournament struct {\n\tmatchGroups  map[string]MatchGroup\n\tmatchSpecs   []*matchSpec\n\tbreakSpecs   []breakSpec\n\tfinalMatchup *Matchup\n}\n\n// NewPlayoffTournament creates a new playoff tournament of the given type and number of alliances, or returns an error\n// if the number of alliances is invalid for the given tournament type.\nfunc NewPlayoffTournament(playoffType model.PlayoffType, numPlayoffAlliances int) (*PlayoffTournament, error) {\n\tvar finalMatchup *Matchup\n\tvar breakSpecs []breakSpec\n\tvar err error\n\tswitch playoffType {\n\tcase model.DoubleEliminationPlayoff:\n\t\tfinalMatchup, breakSpecs, err = newDoubleEliminationBracket(numPlayoffAlliances)\n\tcase model.SingleEliminationPlayoff:\n\t\tfinalMatchup, breakSpecs, err = newSingleEliminationBracket(numPlayoffAlliances)\n\tdefault:\n\t\terr = fmt.Errorf(\"invalid playoff type: %v\", playoffType)\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Doubly link the match group tree in order to populate alliance destinations.\n\tfinalMatchup.setSourceDestinations()\n\n\t// Trigger an initial update to populate the alliances.\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\n\treturn &PlayoffTournament{\n\t\tfinalMatchup: finalMatchup,\n\t\tmatchGroups:  matchGroups,\n\t\tmatchSpecs:   matchSpecs,\n\t\tbreakSpecs:   breakSpecs,\n\t}, nil\n}\n\n// MatchGroups returns a map of all match groups in the tournament keyed by ID.\nfunc (tournament *PlayoffTournament) MatchGroups() map[string]MatchGroup {\n\treturn tournament.matchGroups\n}\n\n// FinalMatchup returns the matchup representing the tournament's final round.\nfunc (tournament *PlayoffTournament) FinalMatchup() *Matchup {\n\treturn tournament.finalMatchup\n}\n\n// IsComplete returns true if the tournament has been won and false if it is still in progress.\nfunc (tournament *PlayoffTournament) IsComplete() bool {\n\treturn tournament.finalMatchup.IsComplete()\n}\n\n// WinningAllianceId returns the number of the alliance that won the tournament, or 0 if the tournament is not yet\n// complete.\nfunc (tournament *PlayoffTournament) WinningAllianceId() int {\n\treturn tournament.finalMatchup.WinningAllianceId()\n}\n\n// FinalistAllianceId returns the number of the alliance that were tournament finalists, or 0 if the tournament is not\n// yet complete.\nfunc (tournament *PlayoffTournament) FinalistAllianceId() int {\n\treturn tournament.finalMatchup.LosingAllianceId()\n}\n\n// Traverse calls the given function on each match group in the tournament, in reverse round order of play.\nfunc (tournament *PlayoffTournament) Traverse(visitFunction func(MatchGroup) error) error {\n\treturn tournament.finalMatchup.traverse(visitFunction)\n}\n\n// CreateMatchesAndBreaks creates all the playoff matches and scheduled breaks in the database, as a one-time action at\n// the beginning of the playoff tournament.\nfunc (tournament *PlayoffTournament) CreateMatchesAndBreaks(database *model.Database, startTime time.Time) error {\n\tmatches, err := database.GetMatchesByType(model.Playoff, true)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif len(matches) > 0 {\n\t\treturn fmt.Errorf(\"cannot create playoff matches; %d matches already exist\", len(matches))\n\t}\n\tscheduledBreaks, err := database.GetScheduledBreaksByMatchType(model.Playoff)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif len(scheduledBreaks) > 0 {\n\t\treturn fmt.Errorf(\"cannot create playoff breaks; %d breaks already exist\", len(scheduledBreaks))\n\t}\n\n\talliances, err := database.GetAllAlliances()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tbreakIndex := 0\n\tmatchIndex := 0\n\tnextEventTime := startTime\n\n\tfor matchIndex < len(tournament.matchSpecs) {\n\t\t// Advance the break index past any nonexistent matches.\n\t\tfor breakIndex < len(tournament.breakSpecs) &&\n\t\t\ttournament.breakSpecs[breakIndex].orderBefore < tournament.matchSpecs[matchIndex].order {\n\t\t\tbreakIndex++\n\t\t}\n\n\t\tif breakIndex < len(tournament.breakSpecs) &&\n\t\t\ttournament.breakSpecs[breakIndex].orderBefore == tournament.matchSpecs[matchIndex].order {\n\t\t\t// Create the break that is scheduled before the next match.\n\t\t\tbreakSpec := tournament.breakSpecs[breakIndex]\n\t\t\tscheduledBreak := model.ScheduledBreak{\n\t\t\t\tMatchType:       model.Playoff,\n\t\t\t\tTypeOrderBefore: breakSpec.orderBefore,\n\t\t\t\tTime:            nextEventTime,\n\t\t\t\tDurationSec:     breakSpec.durationSec,\n\t\t\t\tDescription:     breakSpec.description,\n\t\t\t}\n\t\t\tif err := database.CreateScheduledBreak(&scheduledBreak); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tbreakIndex++\n\t\t\tnextEventTime = nextEventTime.Add(time.Duration(breakSpec.durationSec) * time.Second)\n\t\t}\n\n\t\tmatchSpec := tournament.matchSpecs[matchIndex]\n\t\tmatch := model.Match{\n\t\t\tType:                model.Playoff,\n\t\t\tTypeOrder:           matchSpec.order,\n\t\t\tTime:                nextEventTime,\n\t\t\tLongName:            matchSpec.longName,\n\t\t\tShortName:           matchSpec.shortName,\n\t\t\tNameDetail:          matchSpec.nameDetail,\n\t\t\tPlayoffMatchGroupId: matchSpec.matchGroupId,\n\t\t\tPlayoffRedAlliance:  matchSpec.redAllianceId,\n\t\t\tPlayoffBlueAlliance: matchSpec.blueAllianceId,\n\t\t\tUseTiebreakCriteria: matchSpec.useTiebreakCriteria,\n\t\t\tTbaMatchKey:         matchSpec.tbaMatchKey,\n\t\t}\n\t\tif match.PlayoffRedAlliance > 0 && len(alliances) >= match.PlayoffRedAlliance {\n\t\t\tpositionRedTeams(&match, &alliances[match.PlayoffRedAlliance-1])\n\t\t}\n\t\tif match.PlayoffBlueAlliance > 0 && len(alliances) >= match.PlayoffBlueAlliance {\n\t\t\tpositionBlueTeams(&match, &alliances[match.PlayoffBlueAlliance-1])\n\t\t}\n\t\tif matchSpec.isHidden {\n\t\t\tmatch.Status = game.MatchHidden\n\t\t} else {\n\t\t\tmatch.Status = game.MatchScheduled\n\t\t}\n\n\t\tif err := database.CreateMatch(&match); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tmatchIndex++\n\t\tnextEventTime = nextEventTime.Add(time.Duration(matchSpec.durationSec) * time.Second)\n\t}\n\n\treturn nil\n}\n\n// UpdateMatches updates the playoff matches in the database to assign teams based on the results of the playoff\n// tournament so far.\nfunc (tournament *PlayoffTournament) UpdateMatches(database *model.Database) error {\n\tmatches, err := database.GetMatchesByType(model.Playoff, true)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif len(matches) == 0 {\n\t\treturn fmt.Errorf(\"cannot update playoff matches; no matches exist\")\n\t}\n\n\tplayoffMatchResults := make(map[int]playoffMatchResult)\n\tfor _, match := range matches {\n\t\tswitch match.Status {\n\t\tcase game.RedWonMatch, game.BlueWonMatch, game.TieMatch:\n\t\t\tplayoffMatchResults[match.TypeOrder] = playoffMatchResult{status: match.Status}\n\t\t}\n\t}\n\n\ttournament.finalMatchup.update(playoffMatchResults)\n\n\t// Update all unplayed matches to assign any alliances that have been newly populated into or removed from matches.\n\tmatchesByTypeOrder := make(map[int]*model.Match)\n\tfor i, match := range matches {\n\t\tmatchesByTypeOrder[match.TypeOrder] = &matches[i]\n\t}\n\talliances, err := database.GetAllAlliances()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, spec := range tournament.matchSpecs {\n\t\tmatch, ok := matchesByTypeOrder[spec.order]\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"cannot update playoff matches; match with order %d does not exist\", spec.order)\n\t\t}\n\t\tif match.IsComplete() {\n\t\t\tcontinue\n\t\t}\n\n\t\tif spec.isHidden {\n\t\t\tmatch.Status = game.MatchHidden\n\t\t} else {\n\t\t\tmatch.Status = game.MatchScheduled\n\t\t}\n\t\tmatch.PlayoffRedAlliance = spec.redAllianceId\n\t\tmatch.PlayoffBlueAlliance = spec.blueAllianceId\n\t\tif match.Status == game.MatchScheduled && match.PlayoffRedAlliance > 0 &&\n\t\t\tlen(alliances) >= match.PlayoffRedAlliance {\n\t\t\tpositionRedTeams(match, &alliances[match.PlayoffRedAlliance-1])\n\t\t} else {\n\t\t\t// Zero out the teams.\n\t\t\tpositionRedTeams(match, &model.Alliance{})\n\t\t}\n\t\tif match.Status == game.MatchScheduled && match.PlayoffBlueAlliance > 0 &&\n\t\t\tlen(alliances) >= match.PlayoffBlueAlliance {\n\t\t\tpositionBlueTeams(match, &alliances[match.PlayoffBlueAlliance-1])\n\t\t} else {\n\t\t\t// Zero out the teams.\n\t\t\tpositionBlueTeams(match, &model.Alliance{})\n\t\t}\n\t\tif err = database.UpdateMatch(match); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Assigns the lineup from the alliance into the red team slots for the match.\nfunc positionRedTeams(match *model.Match, alliance *model.Alliance) {\n\tmatch.Red1 = alliance.Lineup[0]\n\tmatch.Red2 = alliance.Lineup[1]\n\tmatch.Red3 = alliance.Lineup[2]\n}\n\n// Assigns the lineup from the alliance into the blue team slots for the match.\nfunc positionBlueTeams(match *model.Match, alliance *model.Alliance) {\n\tmatch.Blue1 = alliance.Lineup[0]\n\tmatch.Blue2 = alliance.Lineup[1]\n\tmatch.Blue3 = alliance.Lineup[2]\n}\n"
  },
  {
    "path": "playoff/playoff_tournament_test.go",
    "content": "// Copyright 2022 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage playoff\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/tournament\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestNewPlayoffTournamentErrors(t *testing.T) {\n\t_, err := NewPlayoffTournament(5, 8)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, \"invalid playoff type: 5\", err.Error())\n\t}\n}\n\nfunc TestPlayoffTournamentGetters(t *testing.T) {\n\tplayoffTournament, err := NewPlayoffTournament(model.SingleEliminationPlayoff, 2)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 1, len(playoffTournament.MatchGroups()))\n\tassert.Contains(t, playoffTournament.MatchGroups(), \"F\")\n\tassert.Equal(t, playoffTournament.FinalMatchup(), playoffTournament.MatchGroups()[\"F\"])\n\tassert.False(t, playoffTournament.IsComplete())\n\tassert.Equal(t, 0, playoffTournament.WinningAllianceId())\n\tassert.Equal(t, 0, playoffTournament.FinalistAllianceId())\n\n\tplayoffTournament.FinalMatchup().update(\n\t\tmap[int]playoffMatchResult{43: {game.BlueWonMatch}, 44: {game.BlueWonMatch}},\n\t)\n\tassert.True(t, playoffTournament.IsComplete())\n\tassert.Equal(t, 2, playoffTournament.WinningAllianceId())\n\tassert.Equal(t, 1, playoffTournament.FinalistAllianceId())\n}\n\nfunc TestPlayoffTournamentCreateMatchesAndBreaks(t *testing.T) {\n\tdatabase := setupTestDb(t)\n\ttournament.CreateTestAlliances(database, 8)\n\n\t// Test double-elimination.\n\tplayoffTournament, err := NewPlayoffTournament(model.DoubleEliminationPlayoff, 8)\n\tassert.Nil(t, err)\n\n\tstartTime := time.Unix(5000, 0)\n\terr = playoffTournament.CreateMatchesAndBreaks(database, startTime)\n\tassert.Nil(t, err)\n\terr = playoffTournament.CreateMatchesAndBreaks(database, startTime)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, \"cannot create playoff matches; 19 matches already exist\", err.Error())\n\t}\n\n\tmatches, _ := database.GetMatchesByType(model.Playoff, true)\n\tif assert.Equal(t, 19, len(matches)) {\n\t\tassertMatch(t, matches[0], 1, 5000, \"Match 1\", \"M1\", \"Round 1 Upper\", \"M1\", 1, 8, true, \"sf\", 1, 1)\n\t\tassertMatch(t, matches[1], 2, 5540, \"Match 2\", \"M2\", \"Round 1 Upper\", \"M2\", 4, 5, true, \"sf\", 2, 1)\n\t\tassertMatch(t, matches[2], 3, 6080, \"Match 3\", \"M3\", \"Round 1 Upper\", \"M3\", 2, 7, true, \"sf\", 3, 1)\n\t\tassertMatch(t, matches[3], 4, 6620, \"Match 4\", \"M4\", \"Round 1 Upper\", \"M4\", 3, 6, true, \"sf\", 4, 1)\n\t\tassertMatch(t, matches[4], 5, 7160, \"Match 5\", \"M5\", \"Round 2 Lower\", \"M5\", 0, 0, true, \"sf\", 5, 1)\n\t\tassertMatch(t, matches[5], 6, 7700, \"Match 6\", \"M6\", \"Round 2 Lower\", \"M6\", 0, 0, true, \"sf\", 6, 1)\n\t\tassertMatch(t, matches[6], 7, 8240, \"Match 7\", \"M7\", \"Round 2 Upper\", \"M7\", 0, 0, true, \"sf\", 7, 1)\n\t\tassertMatch(t, matches[7], 8, 8780, \"Match 8\", \"M8\", \"Round 2 Upper\", \"M8\", 0, 0, true, \"sf\", 8, 1)\n\t\tassertMatch(t, matches[8], 9, 9440, \"Match 9\", \"M9\", \"Round 3 Lower\", \"M9\", 0, 0, true, \"sf\", 9, 1)\n\t\tassertMatch(t, matches[9], 10, 9980, \"Match 10\", \"M10\", \"Round 3 Lower\", \"M10\", 0, 0, true, \"sf\", 10, 1)\n\t\tassertMatch(t, matches[10], 11, 10640, \"Match 11\", \"M11\", \"Round 4 Upper\", \"M11\", 0, 0, true, \"sf\", 11, 1)\n\t\tassertMatch(t, matches[11], 12, 11180, \"Match 12\", \"M12\", \"Round 4 Lower\", \"M12\", 0, 0, true, \"sf\", 12, 1)\n\t\tassertMatch(t, matches[12], 13, 12380, \"Match 13\", \"M13\", \"Round 5 Lower\", \"M13\", 0, 0, true, \"sf\", 13, 1)\n\t\tassertMatch(t, matches[13], 14, 13580, \"Final 1\", \"F1\", \"\", \"F\", 0, 0, false, \"f\", 1, 1)\n\t\tassertMatch(t, matches[14], 15, 14780, \"Final 2\", \"F2\", \"\", \"F\", 0, 0, false, \"f\", 1, 2)\n\t\tassertMatch(t, matches[15], 16, 15980, \"Final 3\", \"F3\", \"\", \"F\", 0, 0, false, \"f\", 1, 3)\n\t\tassertMatch(t, matches[16], 17, 16280, \"Overtime 1\", \"O1\", \"\", \"F\", 0, 0, true, \"f\", 1, 4)\n\t\tassertMatch(t, matches[17], 18, 16880, \"Overtime 2\", \"O2\", \"\", \"F\", 0, 0, true, \"f\", 1, 5)\n\t\tassertMatch(t, matches[18], 19, 17480, \"Overtime 3\", \"O3\", \"\", \"F\", 0, 0, true, \"f\", 1, 6)\n\t}\n\tfor i := 0; i < 16; i++ {\n\t\tassert.Equal(t, game.MatchScheduled, matches[i].Status)\n\t}\n\tfor i := 17; i < 19; i++ {\n\t\tassert.Equal(t, game.MatchHidden, matches[i].Status)\n\t}\n\tscheduledBreaks, err := database.GetScheduledBreaksByMatchType(model.Playoff)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 6, len(scheduledBreaks)) {\n\t\tassertBreak(t, scheduledBreaks[0], 9, 9080, 360, \"Field Break\")\n\t\tassertBreak(t, scheduledBreaks[1], 11, 10280, 360, \"Field Break\")\n\t\tassertBreak(t, scheduledBreaks[2], 13, 11480, 900, \"Awards Break\")\n\t\tassertBreak(t, scheduledBreaks[3], 14, 12680, 900, \"Awards Break\")\n\t\tassertBreak(t, scheduledBreaks[4], 15, 13880, 900, \"Awards Break\")\n\t\tassertBreak(t, scheduledBreaks[5], 16, 15080, 900, \"Awards Break\")\n\t}\n\n\t// Test single-elimination.\n\tassert.Nil(t, database.TruncateMatches())\n\tassert.Nil(t, database.TruncateScheduledBreaks())\n\tplayoffTournament, err = NewPlayoffTournament(model.SingleEliminationPlayoff, 3)\n\tassert.Nil(t, err)\n\n\tstartTime = time.Unix(1000, 0)\n\terr = playoffTournament.CreateMatchesAndBreaks(database, startTime)\n\tassert.Nil(t, err)\n\n\tmatches, _ = database.GetMatchesByType(model.Playoff, true)\n\tif assert.Equal(t, 9, len(matches)) {\n\t\tassertMatch(t, matches[0], 38, 1000, \"Semifinal 2-1\", \"SF2-1\", \"\", \"SF2\", 2, 3, true, \"sf\", 2, 1)\n\t\tassertMatch(t, matches[1], 40, 1600, \"Semifinal 2-2\", \"SF2-2\", \"\", \"SF2\", 2, 3, true, \"sf\", 2, 2)\n\t\tassertMatch(t, matches[2], 42, 2200, \"Semifinal 2-3\", \"SF2-3\", \"\", \"SF2\", 2, 3, true, \"sf\", 2, 3)\n\t\tassertMatch(t, matches[3], 43, 3280, \"Final 1\", \"F1\", \"\", \"F\", 1, 0, false, \"f\", 1, 1)\n\t\tassertMatch(t, matches[4], 44, 4060, \"Final 2\", \"F2\", \"\", \"F\", 1, 0, false, \"f\", 1, 2)\n\t\tassertMatch(t, matches[5], 45, 4840, \"Final 3\", \"F3\", \"\", \"F\", 1, 0, false, \"f\", 1, 3)\n\t\tassertMatch(t, matches[6], 46, 5140, \"Overtime 1\", \"O1\", \"\", \"F\", 1, 0, true, \"f\", 1, 4)\n\t\tassertMatch(t, matches[7], 47, 5740, \"Overtime 2\", \"O2\", \"\", \"F\", 1, 0, true, \"f\", 1, 5)\n\t\tassertMatch(t, matches[8], 48, 6340, \"Overtime 3\", \"O3\", \"\", \"F\", 1, 0, true, \"f\", 1, 6)\n\t}\n\tfor i := 0; i < 6; i++ {\n\t\tassert.Equal(t, game.MatchScheduled, matches[i].Status)\n\t}\n\tfor i := 6; i < 9; i++ {\n\t\tassert.Equal(t, game.MatchHidden, matches[i].Status)\n\t}\n\tscheduledBreaks, err = database.GetScheduledBreaksByMatchType(model.Playoff)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 3, len(scheduledBreaks)) {\n\t\tassertBreak(t, scheduledBreaks[0], 43, 2800, 480, \"Field Break\")\n\t\tassertBreak(t, scheduledBreaks[1], 44, 3580, 480, \"Field Break\")\n\t\tassertBreak(t, scheduledBreaks[2], 45, 4360, 480, \"Field Break\")\n\t}\n}\n\nfunc TestPlayoffTournamentUpdateMatches(t *testing.T) {\n\tdatabase := setupTestDb(t)\n\ttournament.CreateTestAlliances(database, 4)\n\n\tplayoffTournament, err := NewPlayoffTournament(model.SingleEliminationPlayoff, 4)\n\tassert.Nil(t, err)\n\n\terr = playoffTournament.UpdateMatches(database)\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"no matches exist\")\n\t}\n\n\terr = playoffTournament.CreateMatchesAndBreaks(database, time.Unix(0, 0))\n\tassert.Nil(t, err)\n\n\tmatches, _ := database.GetMatchesByType(model.Playoff, true)\n\tassert.Equal(t, 102, matches[0].Red1)\n\tassert.Equal(t, 101, matches[0].Red2)\n\tassert.Equal(t, 103, matches[0].Red3)\n\tassert.Equal(t, 402, matches[0].Blue1)\n\tassert.Equal(t, 401, matches[0].Blue2)\n\tassert.Equal(t, 403, matches[0].Blue3)\n\n\tmatches[0].Status = game.BlueWonMatch\n\terr = database.UpdateMatch(&matches[0])\n\tassert.Nil(t, err)\n\terr = database.UpdateAllianceFromMatch(1, [3]int{103, 102, 101})\n\tassert.Nil(t, err)\n\terr = database.UpdateAllianceFromMatch(4, [3]int{404, 405, 406})\n\tassert.Nil(t, err)\n\n\terr = playoffTournament.UpdateMatches(database)\n\tassert.Nil(t, err)\n\n\tmatches, _ = database.GetMatchesByType(model.Playoff, true)\n\tassert.Equal(t, 102, matches[0].Red1)\n\tassert.Equal(t, 101, matches[0].Red2)\n\tassert.Equal(t, 103, matches[0].Red3)\n\tassert.Equal(t, 402, matches[0].Blue1)\n\tassert.Equal(t, 401, matches[0].Blue2)\n\tassert.Equal(t, 403, matches[0].Blue3)\n\tassert.Equal(t, game.MatchScheduled, matches[2].Status)\n\tassert.Equal(t, 103, matches[2].Red1)\n\tassert.Equal(t, 102, matches[2].Red2)\n\tassert.Equal(t, 101, matches[2].Red3)\n\tassert.Equal(t, 404, matches[2].Blue1)\n\tassert.Equal(t, 405, matches[2].Blue2)\n\tassert.Equal(t, 406, matches[2].Blue3)\n\tassert.Equal(t, game.MatchScheduled, matches[4].Status)\n\tassert.Equal(t, 103, matches[4].Red1)\n\tassert.Equal(t, 102, matches[4].Red2)\n\tassert.Equal(t, 101, matches[4].Red3)\n\tassert.Equal(t, 404, matches[4].Blue1)\n\tassert.Equal(t, 405, matches[4].Blue2)\n\tassert.Equal(t, 406, matches[4].Blue3)\n\n\tmatches[1].Status = game.BlueWonMatch\n\terr = database.UpdateMatch(&matches[1])\n\tassert.Nil(t, err)\n\tmatches[2].Status = game.BlueWonMatch\n\terr = database.UpdateMatch(&matches[2])\n\tassert.Nil(t, err)\n\tmatches[3].Status = game.BlueWonMatch\n\terr = database.UpdateMatch(&matches[3])\n\tassert.Nil(t, err)\n\terr = database.UpdateAllianceFromMatch(4, [3]int{403, 402, 406})\n\tassert.Nil(t, err)\n\n\terr = playoffTournament.UpdateMatches(database)\n\tassert.Nil(t, err)\n\n\tmatches, _ = database.GetMatchesByType(model.Playoff, true)\n\tassert.Equal(t, 103, matches[2].Red1)\n\tassert.Equal(t, 102, matches[2].Red2)\n\tassert.Equal(t, 101, matches[2].Red3)\n\tassert.Equal(t, 404, matches[2].Blue1)\n\tassert.Equal(t, 405, matches[2].Blue2)\n\tassert.Equal(t, 406, matches[2].Blue3)\n\tassert.Equal(t, game.MatchHidden, matches[4].Status)\n\tassert.Equal(t, game.MatchHidden, matches[5].Status)\n\tassert.Equal(t, 4, matches[6].PlayoffRedAlliance)\n\tassert.Equal(t, 3, matches[6].PlayoffBlueAlliance)\n\tassert.Equal(t, 403, matches[6].Red1)\n\tassert.Equal(t, 402, matches[6].Red2)\n\tassert.Equal(t, 406, matches[6].Red3)\n\tassert.Equal(t, 302, matches[6].Blue1)\n\tassert.Equal(t, 301, matches[6].Blue2)\n\tassert.Equal(t, 303, matches[6].Blue3)\n\n\t// Change the outcome of some matches and verify that the teams in the finals are wiped out.\n\tmatches[1].Status = game.RedWonMatch\n\terr = database.UpdateMatch(&matches[1])\n\tassert.Nil(t, err)\n\tmatches[2].Status = game.RedWonMatch\n\terr = database.UpdateMatch(&matches[2])\n\tassert.Nil(t, err)\n\n\terr = playoffTournament.UpdateMatches(database)\n\tassert.Nil(t, err)\n\n\tmatches, _ = database.GetMatchesByType(model.Playoff, true)\n\tassert.Equal(t, game.MatchScheduled, matches[4].Status)\n\tassert.Equal(t, game.MatchScheduled, matches[5].Status)\n\tassert.Equal(t, 0, matches[6].PlayoffRedAlliance)\n\tassert.Equal(t, 0, matches[6].PlayoffBlueAlliance)\n\tassert.Equal(t, 0, matches[6].Red1)\n\tassert.Equal(t, 0, matches[6].Red2)\n\tassert.Equal(t, 0, matches[6].Red3)\n\tassert.Equal(t, 0, matches[6].Blue1)\n\tassert.Equal(t, 0, matches[6].Blue2)\n\tassert.Equal(t, 0, matches[6].Blue3)\n}\n"
  },
  {
    "path": "playoff/single_elimination.go",
    "content": "// Copyright 2022 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Defines the tournament structure for a single-elimination, best-of-three bracket.\n\npackage playoff\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"strings\"\n)\n\n// Creates a single-elimination bracket containing only the required matchups for the given number of alliances, and\n// returns the root matchup comprising the tournament finals along with scheduled breaks.\nfunc newSingleEliminationBracket(numAlliances int) (*Matchup, []breakSpec, error) {\n\tif numAlliances < 2 {\n\t\treturn nil, nil, fmt.Errorf(\"single-elimination bracket must have at least 2 alliances\")\n\t}\n\tif numAlliances > 16 {\n\t\treturn nil, nil, fmt.Errorf(\"single-elimination bracket must have at most 16 alliances\")\n\t}\n\n\t// Define eighthfinal matches.\n\tef1 := Matchup{\n\t\tid:                 \"EF1\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  allianceSelectionSource{1},\n\t\tblueAllianceSource: allianceSelectionSource{16},\n\t\tmatchSpecs: []*matchSpec{\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 1, 1, 1),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 1, 2, 9),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 1, 3, 17),\n\t\t},\n\t}\n\tef2 := Matchup{\n\t\tid:                 \"EF2\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  allianceSelectionSource{8},\n\t\tblueAllianceSource: allianceSelectionSource{9},\n\t\tmatchSpecs: []*matchSpec{\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 2, 1, 2),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 2, 2, 10),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 2, 3, 18),\n\t\t},\n\t}\n\tef3 := Matchup{\n\t\tid:                 \"EF3\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  allianceSelectionSource{4},\n\t\tblueAllianceSource: allianceSelectionSource{13},\n\t\tmatchSpecs: []*matchSpec{\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 3, 1, 3),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 3, 2, 11),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 3, 3, 19),\n\t\t},\n\t}\n\tef4 := Matchup{\n\t\tid:                 \"EF4\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  allianceSelectionSource{5},\n\t\tblueAllianceSource: allianceSelectionSource{12},\n\t\tmatchSpecs: []*matchSpec{\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 4, 1, 4),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 4, 2, 12),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 4, 3, 20),\n\t\t},\n\t}\n\tef5 := Matchup{\n\t\tid:                 \"EF5\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  allianceSelectionSource{2},\n\t\tblueAllianceSource: allianceSelectionSource{15},\n\t\tmatchSpecs: []*matchSpec{\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 5, 1, 5),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 5, 2, 13),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 5, 3, 21),\n\t\t},\n\t}\n\tef6 := Matchup{\n\t\tid:                 \"EF6\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  allianceSelectionSource{7},\n\t\tblueAllianceSource: allianceSelectionSource{10},\n\t\tmatchSpecs: []*matchSpec{\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 6, 1, 6),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 6, 2, 14),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 6, 3, 22),\n\t\t},\n\t}\n\tef7 := Matchup{\n\t\tid:                 \"EF7\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  allianceSelectionSource{3},\n\t\tblueAllianceSource: allianceSelectionSource{14},\n\t\tmatchSpecs: []*matchSpec{\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 7, 1, 7),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 7, 2, 15),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 7, 3, 23),\n\t\t},\n\t}\n\tef8 := Matchup{\n\t\tid:                 \"EF8\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  allianceSelectionSource{6},\n\t\tblueAllianceSource: allianceSelectionSource{11},\n\t\tmatchSpecs: []*matchSpec{\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 8, 1, 8),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 8, 2, 16),\n\t\t\tnewSingleEliminationMatch(\"Eighthfinal\", \"EF\", 8, 3, 24),\n\t\t},\n\t}\n\n\t// Define quarterfinal matches.\n\tqf1 := Matchup{\n\t\tid:                 \"QF1\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  newSingleEliminationAllianceSource(&ef1, numAlliances),\n\t\tblueAllianceSource: newSingleEliminationAllianceSource(&ef2, numAlliances),\n\t\tmatchSpecs: []*matchSpec{\n\t\t\tnewSingleEliminationMatch(\"Quarterfinal\", \"QF\", 1, 1, 25),\n\t\t\tnewSingleEliminationMatch(\"Quarterfinal\", \"QF\", 1, 2, 29),\n\t\t\tnewSingleEliminationMatch(\"Quarterfinal\", \"QF\", 1, 3, 33),\n\t\t},\n\t}\n\tqf2 := Matchup{\n\t\tid:                 \"QF2\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  newSingleEliminationAllianceSource(&ef3, numAlliances),\n\t\tblueAllianceSource: newSingleEliminationAllianceSource(&ef4, numAlliances),\n\t\tmatchSpecs: []*matchSpec{\n\t\t\tnewSingleEliminationMatch(\"Quarterfinal\", \"QF\", 2, 1, 26),\n\t\t\tnewSingleEliminationMatch(\"Quarterfinal\", \"QF\", 2, 2, 30),\n\t\t\tnewSingleEliminationMatch(\"Quarterfinal\", \"QF\", 2, 3, 34),\n\t\t},\n\t}\n\tqf3 := Matchup{\n\t\tid:                 \"QF3\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  newSingleEliminationAllianceSource(&ef5, numAlliances),\n\t\tblueAllianceSource: newSingleEliminationAllianceSource(&ef6, numAlliances),\n\t\tmatchSpecs: []*matchSpec{\n\t\t\tnewSingleEliminationMatch(\"Quarterfinal\", \"QF\", 3, 1, 27),\n\t\t\tnewSingleEliminationMatch(\"Quarterfinal\", \"QF\", 3, 2, 31),\n\t\t\tnewSingleEliminationMatch(\"Quarterfinal\", \"QF\", 3, 3, 35),\n\t\t},\n\t}\n\tqf4 := Matchup{\n\t\tid:                 \"QF4\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  newSingleEliminationAllianceSource(&ef7, numAlliances),\n\t\tblueAllianceSource: newSingleEliminationAllianceSource(&ef8, numAlliances),\n\t\tmatchSpecs: []*matchSpec{\n\t\t\tnewSingleEliminationMatch(\"Quarterfinal\", \"QF\", 4, 1, 28),\n\t\t\tnewSingleEliminationMatch(\"Quarterfinal\", \"QF\", 4, 2, 32),\n\t\t\tnewSingleEliminationMatch(\"Quarterfinal\", \"QF\", 4, 3, 36),\n\t\t},\n\t}\n\n\t// Define semifinal matches.\n\tsf1 := Matchup{\n\t\tid:                 \"SF1\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  newSingleEliminationAllianceSource(&qf1, numAlliances),\n\t\tblueAllianceSource: newSingleEliminationAllianceSource(&qf2, numAlliances),\n\t\tmatchSpecs: []*matchSpec{\n\t\t\tnewSingleEliminationMatch(\"Semifinal\", \"SF\", 1, 1, 37),\n\t\t\tnewSingleEliminationMatch(\"Semifinal\", \"SF\", 1, 2, 39),\n\t\t\tnewSingleEliminationMatch(\"Semifinal\", \"SF\", 1, 3, 41),\n\t\t},\n\t}\n\tsf2 := Matchup{\n\t\tid:                 \"SF2\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  newSingleEliminationAllianceSource(&qf3, numAlliances),\n\t\tblueAllianceSource: newSingleEliminationAllianceSource(&qf4, numAlliances),\n\t\tmatchSpecs: []*matchSpec{\n\t\t\tnewSingleEliminationMatch(\"Semifinal\", \"SF\", 2, 1, 38),\n\t\t\tnewSingleEliminationMatch(\"Semifinal\", \"SF\", 2, 2, 40),\n\t\t\tnewSingleEliminationMatch(\"Semifinal\", \"SF\", 2, 3, 42),\n\t\t},\n\t}\n\n\t// Define final matches.\n\tfinal := Matchup{\n\t\tid:                 \"F\",\n\t\tNumWinsToAdvance:   2,\n\t\tredAllianceSource:  newSingleEliminationAllianceSource(&sf1, numAlliances),\n\t\tblueAllianceSource: newSingleEliminationAllianceSource(&sf2, numAlliances),\n\t\tmatchSpecs:         newFinalMatches(43),\n\t}\n\n\t// Define scheduled breaks.\n\tvar breakSpecs []breakSpec\n\tif numAlliances > 2 {\n\t\t// Only create a break before the first finals match if there were preceding matches.\n\t\tbreakSpecs = append(breakSpecs, breakSpec{43, 480, \"Field Break\"})\n\t}\n\tbreakSpecs = append(breakSpecs, breakSpec{44, 480, \"Field Break\"})\n\tbreakSpecs = append(breakSpecs, breakSpec{45, 480, \"Field Break\"})\n\n\treturn &final, breakSpecs, nil\n}\n\n// Helper method to create an allianceSource while pruning any unnecessary matchups due to the number of alliances.\nfunc newSingleEliminationAllianceSource(matchup *Matchup, numAlliances int) allianceSource {\n\tredAllianceId := matchup.redAllianceSource.AllianceId()\n\tblueAllianceId := matchup.blueAllianceSource.AllianceId()\n\n\tif blueAllianceId > redAllianceId && blueAllianceId > numAlliances {\n\t\treturn matchup.redAllianceSource\n\t}\n\tif redAllianceId > blueAllianceId && redAllianceId > numAlliances {\n\t\treturn matchup.blueAllianceSource\n\t}\n\treturn matchupSource{matchup: matchup, useWinner: true}\n}\n\n// Helper method to create a match spec for a pre-final single-elimination matchup.\nfunc newSingleEliminationMatch(longRoundName, shortRoundName string, setNumber, matchNumber, order int) *matchSpec {\n\treturn &matchSpec{\n\t\tlongName:            fmt.Sprintf(\"%s %d-%d\", longRoundName, setNumber, matchNumber),\n\t\tshortName:           fmt.Sprintf(\"%s%d-%d\", shortRoundName, setNumber, matchNumber),\n\t\torder:               order,\n\t\tdurationSec:         600,\n\t\tuseTiebreakCriteria: true,\n\t\ttbaMatchKey:         model.TbaMatchKey{strings.ToLower(shortRoundName), setNumber, matchNumber},\n\t}\n}\n\n// Helper method to create the final matches for any tournament type.\nfunc newFinalMatches(startingOrder int) []*matchSpec {\n\treturn []*matchSpec{\n\t\t{\n\t\t\tlongName:            \"Final 1\",\n\t\t\tshortName:           \"F1\",\n\t\t\torder:               startingOrder,\n\t\t\tdurationSec:         300,\n\t\t\tuseTiebreakCriteria: false,\n\t\t\ttbaMatchKey:         model.TbaMatchKey{\"f\", 1, 1},\n\t\t},\n\t\t{\n\t\t\tlongName:            \"Final 2\",\n\t\t\tshortName:           \"F2\",\n\t\t\torder:               startingOrder + 1,\n\t\t\tdurationSec:         300,\n\t\t\tuseTiebreakCriteria: false,\n\t\t\ttbaMatchKey:         model.TbaMatchKey{\"f\", 1, 2},\n\t\t},\n\t\t{\n\t\t\tlongName:            \"Final 3\",\n\t\t\tshortName:           \"F3\",\n\t\t\torder:               startingOrder + 2,\n\t\t\tdurationSec:         300,\n\t\t\tuseTiebreakCriteria: false,\n\t\t\ttbaMatchKey:         model.TbaMatchKey{\"f\", 1, 3},\n\t\t},\n\t\t{\n\t\t\tlongName:            \"Overtime 1\",\n\t\t\tshortName:           \"O1\",\n\t\t\torder:               startingOrder + 3,\n\t\t\tdurationSec:         600,\n\t\t\tuseTiebreakCriteria: true,\n\t\t\tisHidden:            true,\n\t\t\ttbaMatchKey:         model.TbaMatchKey{\"f\", 1, 4},\n\t\t},\n\t\t{\n\t\t\tlongName:            \"Overtime 2\",\n\t\t\tshortName:           \"O2\",\n\t\t\torder:               startingOrder + 4,\n\t\t\tdurationSec:         600,\n\t\t\tuseTiebreakCriteria: true,\n\t\t\tisHidden:            true,\n\t\t\ttbaMatchKey:         model.TbaMatchKey{\"f\", 1, 5},\n\t\t},\n\t\t{\n\t\t\tlongName:            \"Overtime 3\",\n\t\t\tshortName:           \"O3\",\n\t\t\torder:               startingOrder + 5,\n\t\t\tdurationSec:         600,\n\t\t\tuseTiebreakCriteria: true,\n\t\t\tisHidden:            true,\n\t\t\ttbaMatchKey:         model.TbaMatchKey{\"f\", 1, 6},\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "playoff/single_elimination_test.go",
    "content": "// Copyright 2022 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage playoff\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestSingleEliminationInitialWith2Alliances(t *testing.T) {\n\tfinalMatchup, breakSpecs, err := newSingleEliminationBracket(2)\n\tassert.Nil(t, err)\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\n\tassertFullFinals(t, matchSpecs, 0)\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tfor i := 0; i < 6; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{1, 2}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(t, matchGroups, \"F\")\n\n\tif assert.Equal(t, 2, len(breakSpecs)) {\n\t\tassert.Equal(t, breakSpec{44, 480, \"Field Break\"}, breakSpecs[0])\n\t\tassert.Equal(t, breakSpec{45, 480, \"Field Break\"}, breakSpecs[1])\n\t}\n}\n\nfunc TestSingleEliminationInitialWith3Alliances(t *testing.T) {\n\tfinalMatchup, breakSpecs, err := newSingleEliminationBracket(3)\n\tassert.Nil(t, err)\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\n\tif assert.Equal(t, 9, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs[0:3],\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Semifinal 2-1\", \"SF2-1\", \"\", 38, \"SF2\", true, false, \"sf\", 2, 1},\n\t\t\t\t{\"Semifinal 2-2\", \"SF2-2\", \"\", 40, \"SF2\", true, false, \"sf\", 2, 2},\n\t\t\t\t{\"Semifinal 2-3\", \"SF2-3\", \"\", 42, \"SF2\", true, false, \"sf\", 2, 3},\n\t\t\t},\n\t\t)\n\t}\n\tassertFullFinals(t, matchSpecs, 3)\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tassertMatchSpecAlliances(\n\t\tt,\n\t\tmatchSpecs[0:3],\n\t\t[]expectedAlliances{\n\t\t\t{2, 3},\n\t\t\t{2, 3},\n\t\t\t{2, 3},\n\t\t},\n\t)\n\tfor i := 3; i < 9; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{1, 0}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(t, matchGroups, \"SF2\", \"F\")\n\n\tif assert.Equal(t, 3, len(breakSpecs)) {\n\t\tassert.Equal(t, breakSpec{43, 480, \"Field Break\"}, breakSpecs[0])\n\t\tassert.Equal(t, breakSpec{44, 480, \"Field Break\"}, breakSpecs[1])\n\t\tassert.Equal(t, breakSpec{45, 480, \"Field Break\"}, breakSpecs[2])\n\t}\n}\n\nfunc TestSingleEliminationInitialWith4Alliances(t *testing.T) {\n\tfinalMatchup, _, err := newSingleEliminationBracket(4)\n\tassert.Nil(t, err)\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\n\tassertFullSemifinalsOnward(t, matchSpecs, 0)\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tassertMatchSpecAlliances(\n\t\tt,\n\t\tmatchSpecs[0:6],\n\t\t[]expectedAlliances{\n\t\t\t{1, 4},\n\t\t\t{2, 3},\n\t\t\t{1, 4},\n\t\t\t{2, 3},\n\t\t\t{1, 4},\n\t\t\t{2, 3},\n\t\t},\n\t)\n\tfor i := 6; i < 12; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(t, matchGroups, \"SF1\", \"SF2\", \"F\")\n}\n\nfunc TestSingleEliminationInitialWith5Alliances(t *testing.T) {\n\tfinalMatchup, _, err := newSingleEliminationBracket(5)\n\tassert.Nil(t, err)\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\n\tif assert.Equal(t, 15, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs[0:3],\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Quarterfinal 2-1\", \"QF2-1\", \"\", 26, \"QF2\", true, false, \"qf\", 2, 1},\n\t\t\t\t{\"Quarterfinal 2-2\", \"QF2-2\", \"\", 30, \"QF2\", true, false, \"qf\", 2, 2},\n\t\t\t\t{\"Quarterfinal 2-3\", \"QF2-3\", \"\", 34, \"QF2\", true, false, \"qf\", 2, 3},\n\t\t\t},\n\t\t)\n\t}\n\tassertFullSemifinalsOnward(t, matchSpecs, 3)\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tassertMatchSpecAlliances(\n\t\tt,\n\t\tmatchSpecs[0:9],\n\t\t[]expectedAlliances{\n\t\t\t{4, 5},\n\t\t\t{4, 5},\n\t\t\t{4, 5},\n\t\t\t{1, 0},\n\t\t\t{2, 3},\n\t\t\t{1, 0},\n\t\t\t{2, 3},\n\t\t\t{1, 0},\n\t\t\t{2, 3},\n\t\t},\n\t)\n\tfor i := 9; i < 15; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(t, matchGroups, \"QF2\", \"SF1\", \"SF2\", \"F\")\n}\n\nfunc TestSingleEliminationInitialWith6Alliances(t *testing.T) {\n\tfinalMatchup, _, err := newSingleEliminationBracket(6)\n\tassert.Nil(t, err)\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\n\tif assert.Equal(t, 18, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs[0:6],\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Quarterfinal 2-1\", \"QF2-1\", \"\", 26, \"QF2\", true, false, \"qf\", 2, 1},\n\t\t\t\t{\"Quarterfinal 4-1\", \"QF4-1\", \"\", 28, \"QF4\", true, false, \"qf\", 4, 1},\n\t\t\t\t{\"Quarterfinal 2-2\", \"QF2-2\", \"\", 30, \"QF2\", true, false, \"qf\", 2, 2},\n\t\t\t\t{\"Quarterfinal 4-2\", \"QF4-2\", \"\", 32, \"QF4\", true, false, \"qf\", 4, 2},\n\t\t\t\t{\"Quarterfinal 2-3\", \"QF2-3\", \"\", 34, \"QF2\", true, false, \"qf\", 2, 3},\n\t\t\t\t{\"Quarterfinal 4-3\", \"QF4-3\", \"\", 36, \"QF4\", true, false, \"qf\", 4, 3},\n\t\t\t},\n\t\t)\n\t}\n\tassertFullSemifinalsOnward(t, matchSpecs, 6)\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tassertMatchSpecAlliances(\n\t\tt,\n\t\tmatchSpecs[0:12],\n\t\t[]expectedAlliances{\n\t\t\t{4, 5},\n\t\t\t{3, 6},\n\t\t\t{4, 5},\n\t\t\t{3, 6},\n\t\t\t{4, 5},\n\t\t\t{3, 6},\n\t\t\t{1, 0},\n\t\t\t{2, 0},\n\t\t\t{1, 0},\n\t\t\t{2, 0},\n\t\t\t{1, 0},\n\t\t\t{2, 0},\n\t\t},\n\t)\n\tfor i := 12; i < 18; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(t, matchGroups, \"QF2\", \"QF4\", \"SF1\", \"SF2\", \"F\")\n}\n\nfunc TestSingleEliminationInitialWith7Alliances(t *testing.T) {\n\tfinalMatchup, _, err := newSingleEliminationBracket(7)\n\tassert.Nil(t, err)\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\n\tif assert.Equal(t, 21, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs[0:9],\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Quarterfinal 2-1\", \"QF2-1\", \"\", 26, \"QF2\", true, false, \"qf\", 2, 1},\n\t\t\t\t{\"Quarterfinal 3-1\", \"QF3-1\", \"\", 27, \"QF3\", true, false, \"qf\", 3, 1},\n\t\t\t\t{\"Quarterfinal 4-1\", \"QF4-1\", \"\", 28, \"QF4\", true, false, \"qf\", 4, 1},\n\t\t\t\t{\"Quarterfinal 2-2\", \"QF2-2\", \"\", 30, \"QF2\", true, false, \"qf\", 2, 2},\n\t\t\t\t{\"Quarterfinal 3-2\", \"QF3-2\", \"\", 31, \"QF3\", true, false, \"qf\", 3, 2},\n\t\t\t\t{\"Quarterfinal 4-2\", \"QF4-2\", \"\", 32, \"QF4\", true, false, \"qf\", 4, 2},\n\t\t\t\t{\"Quarterfinal 2-3\", \"QF2-3\", \"\", 34, \"QF2\", true, false, \"qf\", 2, 3},\n\t\t\t\t{\"Quarterfinal 3-3\", \"QF3-3\", \"\", 35, \"QF3\", true, false, \"qf\", 3, 3},\n\t\t\t\t{\"Quarterfinal 4-3\", \"QF4-3\", \"\", 36, \"QF4\", true, false, \"qf\", 4, 3},\n\t\t\t},\n\t\t)\n\t}\n\tassertFullSemifinalsOnward(t, matchSpecs, 9)\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tassertMatchSpecAlliances(\n\t\tt,\n\t\tmatchSpecs[0:15],\n\t\t[]expectedAlliances{\n\t\t\t{4, 5},\n\t\t\t{2, 7},\n\t\t\t{3, 6},\n\t\t\t{4, 5},\n\t\t\t{2, 7},\n\t\t\t{3, 6},\n\t\t\t{4, 5},\n\t\t\t{2, 7},\n\t\t\t{3, 6},\n\t\t\t{1, 0},\n\t\t\t{0, 0},\n\t\t\t{1, 0},\n\t\t\t{0, 0},\n\t\t\t{1, 0},\n\t\t\t{0, 0},\n\t\t},\n\t)\n\tfor i := 15; i < 21; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(t, matchGroups, \"QF2\", \"QF3\", \"QF4\", \"SF1\", \"SF2\", \"F\")\n}\n\nfunc TestSingleEliminationInitialWith8Alliances(t *testing.T) {\n\tfinalMatchup, breakSpecs, err := newSingleEliminationBracket(8)\n\tassert.Nil(t, err)\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\n\tassertFullQuarterfinalsOnward(t, matchSpecs, 0)\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tassertMatchSpecAlliances(\n\t\tt,\n\t\tmatchSpecs[0:12],\n\t\t[]expectedAlliances{\n\t\t\t{1, 8},\n\t\t\t{4, 5},\n\t\t\t{2, 7},\n\t\t\t{3, 6},\n\t\t\t{1, 8},\n\t\t\t{4, 5},\n\t\t\t{2, 7},\n\t\t\t{3, 6},\n\t\t\t{1, 8},\n\t\t\t{4, 5},\n\t\t\t{2, 7},\n\t\t\t{3, 6},\n\t\t},\n\t)\n\tfor i := 12; i < 24; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(t, matchGroups, \"QF1\", \"QF2\", \"QF3\", \"QF4\", \"SF1\", \"SF2\", \"F\")\n\n\tif assert.Equal(t, 3, len(breakSpecs)) {\n\t\tassert.Equal(t, breakSpec{43, 480, \"Field Break\"}, breakSpecs[0])\n\t\tassert.Equal(t, breakSpec{44, 480, \"Field Break\"}, breakSpecs[1])\n\t\tassert.Equal(t, breakSpec{45, 480, \"Field Break\"}, breakSpecs[2])\n\t}\n}\n\nfunc TestSingleEliminationInitialWith9Alliances(t *testing.T) {\n\tfinalMatchup, _, err := newSingleEliminationBracket(9)\n\tassert.Nil(t, err)\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\n\tif assert.Equal(t, 27, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs[0:3],\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Eighthfinal 2-1\", \"EF2-1\", \"\", 2, \"EF2\", true, false, \"ef\", 2, 1},\n\t\t\t\t{\"Eighthfinal 2-2\", \"EF2-2\", \"\", 10, \"EF2\", true, false, \"ef\", 2, 2},\n\t\t\t\t{\"Eighthfinal 2-3\", \"EF2-3\", \"\", 18, \"EF2\", true, false, \"ef\", 2, 3},\n\t\t\t},\n\t\t)\n\t}\n\tassertFullQuarterfinalsOnward(t, matchSpecs, 3)\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tassertMatchSpecAlliances(\n\t\tt,\n\t\tmatchSpecs[0:15],\n\t\t[]expectedAlliances{\n\t\t\t{8, 9},\n\t\t\t{8, 9},\n\t\t\t{8, 9},\n\t\t\t{1, 0},\n\t\t\t{4, 5},\n\t\t\t{2, 7},\n\t\t\t{3, 6},\n\t\t\t{1, 0},\n\t\t\t{4, 5},\n\t\t\t{2, 7},\n\t\t\t{3, 6},\n\t\t\t{1, 0},\n\t\t\t{4, 5},\n\t\t\t{2, 7},\n\t\t\t{3, 6},\n\t\t},\n\t)\n\tfor i := 15; i < 27; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(t, matchGroups, \"EF2\", \"QF1\", \"QF2\", \"QF3\", \"QF4\", \"SF1\", \"SF2\", \"F\")\n}\n\nfunc TestSingleEliminationInitialWith10Alliances(t *testing.T) {\n\tfinalMatchup, _, err := newSingleEliminationBracket(10)\n\tassert.Nil(t, err)\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\n\tif assert.Equal(t, 30, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs[0:6],\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Eighthfinal 2-1\", \"EF2-1\", \"\", 2, \"EF2\", true, false, \"ef\", 2, 1},\n\t\t\t\t{\"Eighthfinal 6-1\", \"EF6-1\", \"\", 6, \"EF6\", true, false, \"ef\", 6, 1},\n\t\t\t\t{\"Eighthfinal 2-2\", \"EF2-2\", \"\", 10, \"EF2\", true, false, \"ef\", 2, 2},\n\t\t\t\t{\"Eighthfinal 6-2\", \"EF6-2\", \"\", 14, \"EF6\", true, false, \"ef\", 6, 2},\n\t\t\t\t{\"Eighthfinal 2-3\", \"EF2-3\", \"\", 18, \"EF2\", true, false, \"ef\", 2, 3},\n\t\t\t\t{\"Eighthfinal 6-3\", \"EF6-3\", \"\", 22, \"EF6\", true, false, \"ef\", 6, 3},\n\t\t\t},\n\t\t)\n\t}\n\tassertFullQuarterfinalsOnward(t, matchSpecs, 6)\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tassertMatchSpecAlliances(\n\t\tt,\n\t\tmatchSpecs[0:18],\n\t\t[]expectedAlliances{\n\t\t\t{8, 9},\n\t\t\t{7, 10},\n\t\t\t{8, 9},\n\t\t\t{7, 10},\n\t\t\t{8, 9},\n\t\t\t{7, 10},\n\t\t\t{1, 0},\n\t\t\t{4, 5},\n\t\t\t{2, 0},\n\t\t\t{3, 6},\n\t\t\t{1, 0},\n\t\t\t{4, 5},\n\t\t\t{2, 0},\n\t\t\t{3, 6},\n\t\t\t{1, 0},\n\t\t\t{4, 5},\n\t\t\t{2, 0},\n\t\t\t{3, 6},\n\t\t},\n\t)\n\tfor i := 18; i < 30; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(t, matchGroups, \"EF2\", \"EF6\", \"QF1\", \"QF2\", \"QF3\", \"QF4\", \"SF1\", \"SF2\", \"F\")\n}\n\nfunc TestSingleEliminationInitialWith11Alliances(t *testing.T) {\n\tfinalMatchup, _, err := newSingleEliminationBracket(11)\n\tassert.Nil(t, err)\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\n\tif assert.Equal(t, 33, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs[0:9],\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Eighthfinal 2-1\", \"EF2-1\", \"\", 2, \"EF2\", true, false, \"ef\", 2, 1},\n\t\t\t\t{\"Eighthfinal 6-1\", \"EF6-1\", \"\", 6, \"EF6\", true, false, \"ef\", 6, 1},\n\t\t\t\t{\"Eighthfinal 8-1\", \"EF8-1\", \"\", 8, \"EF8\", true, false, \"ef\", 8, 1},\n\t\t\t\t{\"Eighthfinal 2-2\", \"EF2-2\", \"\", 10, \"EF2\", true, false, \"ef\", 2, 2},\n\t\t\t\t{\"Eighthfinal 6-2\", \"EF6-2\", \"\", 14, \"EF6\", true, false, \"ef\", 6, 2},\n\t\t\t\t{\"Eighthfinal 8-2\", \"EF8-2\", \"\", 16, \"EF8\", true, false, \"ef\", 8, 2},\n\t\t\t\t{\"Eighthfinal 2-3\", \"EF2-3\", \"\", 18, \"EF2\", true, false, \"ef\", 2, 3},\n\t\t\t\t{\"Eighthfinal 6-3\", \"EF6-3\", \"\", 22, \"EF6\", true, false, \"ef\", 6, 3},\n\t\t\t\t{\"Eighthfinal 8-3\", \"EF8-3\", \"\", 24, \"EF8\", true, false, \"ef\", 8, 3},\n\t\t\t},\n\t\t)\n\t}\n\tassertFullQuarterfinalsOnward(t, matchSpecs, 9)\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tassertMatchSpecAlliances(\n\t\tt,\n\t\tmatchSpecs[0:21],\n\t\t[]expectedAlliances{\n\t\t\t{8, 9},\n\t\t\t{7, 10},\n\t\t\t{6, 11},\n\t\t\t{8, 9},\n\t\t\t{7, 10},\n\t\t\t{6, 11},\n\t\t\t{8, 9},\n\t\t\t{7, 10},\n\t\t\t{6, 11},\n\t\t\t{1, 0},\n\t\t\t{4, 5},\n\t\t\t{2, 0},\n\t\t\t{3, 0},\n\t\t\t{1, 0},\n\t\t\t{4, 5},\n\t\t\t{2, 0},\n\t\t\t{3, 0},\n\t\t\t{1, 0},\n\t\t\t{4, 5},\n\t\t\t{2, 0},\n\t\t\t{3, 0},\n\t\t},\n\t)\n\tfor i := 21; i < 33; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(t, matchGroups, \"EF2\", \"EF6\", \"EF8\", \"QF1\", \"QF2\", \"QF3\", \"QF4\", \"SF1\", \"SF2\", \"F\")\n}\n\nfunc TestSingleEliminationInitialWith12Alliances(t *testing.T) {\n\tfinalMatchup, _, err := newSingleEliminationBracket(12)\n\tassert.Nil(t, err)\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\n\tif assert.Equal(t, 36, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs[0:12],\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Eighthfinal 2-1\", \"EF2-1\", \"\", 2, \"EF2\", true, false, \"ef\", 2, 1},\n\t\t\t\t{\"Eighthfinal 4-1\", \"EF4-1\", \"\", 4, \"EF4\", true, false, \"ef\", 4, 1},\n\t\t\t\t{\"Eighthfinal 6-1\", \"EF6-1\", \"\", 6, \"EF6\", true, false, \"ef\", 6, 1},\n\t\t\t\t{\"Eighthfinal 8-1\", \"EF8-1\", \"\", 8, \"EF8\", true, false, \"ef\", 8, 1},\n\t\t\t\t{\"Eighthfinal 2-2\", \"EF2-2\", \"\", 10, \"EF2\", true, false, \"ef\", 2, 2},\n\t\t\t\t{\"Eighthfinal 4-2\", \"EF4-2\", \"\", 12, \"EF4\", true, false, \"ef\", 4, 2},\n\t\t\t\t{\"Eighthfinal 6-2\", \"EF6-2\", \"\", 14, \"EF6\", true, false, \"ef\", 6, 2},\n\t\t\t\t{\"Eighthfinal 8-2\", \"EF8-2\", \"\", 16, \"EF8\", true, false, \"ef\", 8, 2},\n\t\t\t\t{\"Eighthfinal 2-3\", \"EF2-3\", \"\", 18, \"EF2\", true, false, \"ef\", 2, 3},\n\t\t\t\t{\"Eighthfinal 4-3\", \"EF4-3\", \"\", 20, \"EF4\", true, false, \"ef\", 4, 3},\n\t\t\t\t{\"Eighthfinal 6-3\", \"EF6-3\", \"\", 22, \"EF6\", true, false, \"ef\", 6, 3},\n\t\t\t\t{\"Eighthfinal 8-3\", \"EF8-3\", \"\", 24, \"EF8\", true, false, \"ef\", 8, 3},\n\t\t\t},\n\t\t)\n\t}\n\tassertFullQuarterfinalsOnward(t, matchSpecs, 12)\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tassertMatchSpecAlliances(\n\t\tt,\n\t\tmatchSpecs[0:24],\n\t\t[]expectedAlliances{\n\t\t\t{8, 9},\n\t\t\t{5, 12},\n\t\t\t{7, 10},\n\t\t\t{6, 11},\n\t\t\t{8, 9},\n\t\t\t{5, 12},\n\t\t\t{7, 10},\n\t\t\t{6, 11},\n\t\t\t{8, 9},\n\t\t\t{5, 12},\n\t\t\t{7, 10},\n\t\t\t{6, 11},\n\t\t\t{1, 0},\n\t\t\t{4, 0},\n\t\t\t{2, 0},\n\t\t\t{3, 0},\n\t\t\t{1, 0},\n\t\t\t{4, 0},\n\t\t\t{2, 0},\n\t\t\t{3, 0},\n\t\t\t{1, 0},\n\t\t\t{4, 0},\n\t\t\t{2, 0},\n\t\t\t{3, 0},\n\t\t},\n\t)\n\tfor i := 24; i < 36; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(t, matchGroups, \"EF2\", \"EF4\", \"EF6\", \"EF8\", \"QF1\", \"QF2\", \"QF3\", \"QF4\", \"SF1\", \"SF2\", \"F\")\n}\n\nfunc TestSingleEliminationInitialWith13Alliances(t *testing.T) {\n\tfinalMatchup, _, err := newSingleEliminationBracket(13)\n\tassert.Nil(t, err)\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\n\tif assert.Equal(t, 39, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs[0:15],\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Eighthfinal 2-1\", \"EF2-1\", \"\", 2, \"EF2\", true, false, \"ef\", 2, 1},\n\t\t\t\t{\"Eighthfinal 3-1\", \"EF3-1\", \"\", 3, \"EF3\", true, false, \"ef\", 3, 1},\n\t\t\t\t{\"Eighthfinal 4-1\", \"EF4-1\", \"\", 4, \"EF4\", true, false, \"ef\", 4, 1},\n\t\t\t\t{\"Eighthfinal 6-1\", \"EF6-1\", \"\", 6, \"EF6\", true, false, \"ef\", 6, 1},\n\t\t\t\t{\"Eighthfinal 8-1\", \"EF8-1\", \"\", 8, \"EF8\", true, false, \"ef\", 8, 1},\n\t\t\t\t{\"Eighthfinal 2-2\", \"EF2-2\", \"\", 10, \"EF2\", true, false, \"ef\", 2, 2},\n\t\t\t\t{\"Eighthfinal 3-2\", \"EF3-2\", \"\", 11, \"EF3\", true, false, \"ef\", 3, 2},\n\t\t\t\t{\"Eighthfinal 4-2\", \"EF4-2\", \"\", 12, \"EF4\", true, false, \"ef\", 4, 2},\n\t\t\t\t{\"Eighthfinal 6-2\", \"EF6-2\", \"\", 14, \"EF6\", true, false, \"ef\", 6, 2},\n\t\t\t\t{\"Eighthfinal 8-2\", \"EF8-2\", \"\", 16, \"EF8\", true, false, \"ef\", 8, 2},\n\t\t\t\t{\"Eighthfinal 2-3\", \"EF2-3\", \"\", 18, \"EF2\", true, false, \"ef\", 2, 3},\n\t\t\t\t{\"Eighthfinal 3-3\", \"EF3-3\", \"\", 19, \"EF3\", true, false, \"ef\", 3, 3},\n\t\t\t\t{\"Eighthfinal 4-3\", \"EF4-3\", \"\", 20, \"EF4\", true, false, \"ef\", 4, 3},\n\t\t\t\t{\"Eighthfinal 6-3\", \"EF6-3\", \"\", 22, \"EF6\", true, false, \"ef\", 6, 3},\n\t\t\t\t{\"Eighthfinal 8-3\", \"EF8-3\", \"\", 24, \"EF8\", true, false, \"ef\", 8, 3},\n\t\t\t},\n\t\t)\n\t}\n\tassertFullQuarterfinalsOnward(t, matchSpecs, 15)\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tassertMatchSpecAlliances(\n\t\tt,\n\t\tmatchSpecs[0:27],\n\t\t[]expectedAlliances{\n\t\t\t{8, 9},\n\t\t\t{4, 13},\n\t\t\t{5, 12},\n\t\t\t{7, 10},\n\t\t\t{6, 11},\n\t\t\t{8, 9},\n\t\t\t{4, 13},\n\t\t\t{5, 12},\n\t\t\t{7, 10},\n\t\t\t{6, 11},\n\t\t\t{8, 9},\n\t\t\t{4, 13},\n\t\t\t{5, 12},\n\t\t\t{7, 10},\n\t\t\t{6, 11},\n\t\t\t{1, 0},\n\t\t\t{0, 0},\n\t\t\t{2, 0},\n\t\t\t{3, 0},\n\t\t\t{1, 0},\n\t\t\t{0, 0},\n\t\t\t{2, 0},\n\t\t\t{3, 0},\n\t\t\t{1, 0},\n\t\t\t{0, 0},\n\t\t\t{2, 0},\n\t\t\t{3, 0},\n\t\t},\n\t)\n\tfor i := 27; i < 39; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(t, matchGroups, \"EF2\", \"EF3\", \"EF4\", \"EF6\", \"EF8\", \"QF1\", \"QF2\", \"QF3\", \"QF4\", \"SF1\", \"SF2\", \"F\")\n}\n\nfunc TestSingleEliminationInitialWith14Alliances(t *testing.T) {\n\tfinalMatchup, _, err := newSingleEliminationBracket(14)\n\tassert.Nil(t, err)\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\n\tif assert.Equal(t, 42, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs[0:18],\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Eighthfinal 2-1\", \"EF2-1\", \"\", 2, \"EF2\", true, false, \"ef\", 2, 1},\n\t\t\t\t{\"Eighthfinal 3-1\", \"EF3-1\", \"\", 3, \"EF3\", true, false, \"ef\", 3, 1},\n\t\t\t\t{\"Eighthfinal 4-1\", \"EF4-1\", \"\", 4, \"EF4\", true, false, \"ef\", 4, 1},\n\t\t\t\t{\"Eighthfinal 6-1\", \"EF6-1\", \"\", 6, \"EF6\", true, false, \"ef\", 6, 1},\n\t\t\t\t{\"Eighthfinal 7-1\", \"EF7-1\", \"\", 7, \"EF7\", true, false, \"ef\", 7, 1},\n\t\t\t\t{\"Eighthfinal 8-1\", \"EF8-1\", \"\", 8, \"EF8\", true, false, \"ef\", 8, 1},\n\t\t\t\t{\"Eighthfinal 2-2\", \"EF2-2\", \"\", 10, \"EF2\", true, false, \"ef\", 2, 2},\n\t\t\t\t{\"Eighthfinal 3-2\", \"EF3-2\", \"\", 11, \"EF3\", true, false, \"ef\", 3, 2},\n\t\t\t\t{\"Eighthfinal 4-2\", \"EF4-2\", \"\", 12, \"EF4\", true, false, \"ef\", 4, 2},\n\t\t\t\t{\"Eighthfinal 6-2\", \"EF6-2\", \"\", 14, \"EF6\", true, false, \"ef\", 6, 2},\n\t\t\t\t{\"Eighthfinal 7-2\", \"EF7-2\", \"\", 15, \"EF7\", true, false, \"ef\", 7, 2},\n\t\t\t\t{\"Eighthfinal 8-2\", \"EF8-2\", \"\", 16, \"EF8\", true, false, \"ef\", 8, 2},\n\t\t\t\t{\"Eighthfinal 2-3\", \"EF2-3\", \"\", 18, \"EF2\", true, false, \"ef\", 2, 3},\n\t\t\t\t{\"Eighthfinal 3-3\", \"EF3-3\", \"\", 19, \"EF3\", true, false, \"ef\", 3, 3},\n\t\t\t\t{\"Eighthfinal 4-3\", \"EF4-3\", \"\", 20, \"EF4\", true, false, \"ef\", 4, 3},\n\t\t\t\t{\"Eighthfinal 6-3\", \"EF6-3\", \"\", 22, \"EF6\", true, false, \"ef\", 6, 3},\n\t\t\t\t{\"Eighthfinal 7-3\", \"EF7-3\", \"\", 23, \"EF7\", true, false, \"ef\", 7, 3},\n\t\t\t\t{\"Eighthfinal 8-3\", \"EF8-3\", \"\", 24, \"EF8\", true, false, \"ef\", 8, 3},\n\t\t\t},\n\t\t)\n\t}\n\tassertFullQuarterfinalsOnward(t, matchSpecs, 18)\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tassertMatchSpecAlliances(\n\t\tt,\n\t\tmatchSpecs[0:30],\n\t\t[]expectedAlliances{\n\t\t\t{8, 9},\n\t\t\t{4, 13},\n\t\t\t{5, 12},\n\t\t\t{7, 10},\n\t\t\t{3, 14},\n\t\t\t{6, 11},\n\t\t\t{8, 9},\n\t\t\t{4, 13},\n\t\t\t{5, 12},\n\t\t\t{7, 10},\n\t\t\t{3, 14},\n\t\t\t{6, 11},\n\t\t\t{8, 9},\n\t\t\t{4, 13},\n\t\t\t{5, 12},\n\t\t\t{7, 10},\n\t\t\t{3, 14},\n\t\t\t{6, 11},\n\t\t\t{1, 0},\n\t\t\t{0, 0},\n\t\t\t{2, 0},\n\t\t\t{0, 0},\n\t\t\t{1, 0},\n\t\t\t{0, 0},\n\t\t\t{2, 0},\n\t\t\t{0, 0},\n\t\t\t{1, 0},\n\t\t\t{0, 0},\n\t\t\t{2, 0},\n\t\t\t{0, 0},\n\t\t},\n\t)\n\tfor i := 30; i < 42; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(\n\t\tt, matchGroups, \"EF2\", \"EF3\", \"EF4\", \"EF6\", \"EF7\", \"EF8\", \"QF1\", \"QF2\", \"QF3\", \"QF4\", \"SF1\", \"SF2\", \"F\",\n\t)\n}\n\nfunc TestSingleEliminationInitialWith15Alliances(t *testing.T) {\n\tfinalMatchup, _, err := newSingleEliminationBracket(15)\n\tassert.Nil(t, err)\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\n\tif assert.Equal(t, 45, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs[0:21],\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Eighthfinal 2-1\", \"EF2-1\", \"\", 2, \"EF2\", true, false, \"ef\", 2, 1},\n\t\t\t\t{\"Eighthfinal 3-1\", \"EF3-1\", \"\", 3, \"EF3\", true, false, \"ef\", 3, 1},\n\t\t\t\t{\"Eighthfinal 4-1\", \"EF4-1\", \"\", 4, \"EF4\", true, false, \"ef\", 4, 1},\n\t\t\t\t{\"Eighthfinal 5-1\", \"EF5-1\", \"\", 5, \"EF5\", true, false, \"ef\", 5, 1},\n\t\t\t\t{\"Eighthfinal 6-1\", \"EF6-1\", \"\", 6, \"EF6\", true, false, \"ef\", 6, 1},\n\t\t\t\t{\"Eighthfinal 7-1\", \"EF7-1\", \"\", 7, \"EF7\", true, false, \"ef\", 7, 1},\n\t\t\t\t{\"Eighthfinal 8-1\", \"EF8-1\", \"\", 8, \"EF8\", true, false, \"ef\", 8, 1},\n\t\t\t\t{\"Eighthfinal 2-2\", \"EF2-2\", \"\", 10, \"EF2\", true, false, \"ef\", 2, 2},\n\t\t\t\t{\"Eighthfinal 3-2\", \"EF3-2\", \"\", 11, \"EF3\", true, false, \"ef\", 3, 2},\n\t\t\t\t{\"Eighthfinal 4-2\", \"EF4-2\", \"\", 12, \"EF4\", true, false, \"ef\", 4, 2},\n\t\t\t\t{\"Eighthfinal 5-2\", \"EF5-2\", \"\", 13, \"EF5\", true, false, \"ef\", 5, 2},\n\t\t\t\t{\"Eighthfinal 6-2\", \"EF6-2\", \"\", 14, \"EF6\", true, false, \"ef\", 6, 2},\n\t\t\t\t{\"Eighthfinal 7-2\", \"EF7-2\", \"\", 15, \"EF7\", true, false, \"ef\", 7, 2},\n\t\t\t\t{\"Eighthfinal 8-2\", \"EF8-2\", \"\", 16, \"EF8\", true, false, \"ef\", 8, 2},\n\t\t\t\t{\"Eighthfinal 2-3\", \"EF2-3\", \"\", 18, \"EF2\", true, false, \"ef\", 2, 3},\n\t\t\t\t{\"Eighthfinal 3-3\", \"EF3-3\", \"\", 19, \"EF3\", true, false, \"ef\", 3, 3},\n\t\t\t\t{\"Eighthfinal 4-3\", \"EF4-3\", \"\", 20, \"EF4\", true, false, \"ef\", 4, 3},\n\t\t\t\t{\"Eighthfinal 5-3\", \"EF5-3\", \"\", 21, \"EF5\", true, false, \"ef\", 5, 3},\n\t\t\t\t{\"Eighthfinal 6-3\", \"EF6-3\", \"\", 22, \"EF6\", true, false, \"ef\", 6, 3},\n\t\t\t\t{\"Eighthfinal 7-3\", \"EF7-3\", \"\", 23, \"EF7\", true, false, \"ef\", 7, 3},\n\t\t\t\t{\"Eighthfinal 8-3\", \"EF8-3\", \"\", 24, \"EF8\", true, false, \"ef\", 8, 3},\n\t\t\t},\n\t\t)\n\t}\n\tassertFullQuarterfinalsOnward(t, matchSpecs, 21)\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tassertMatchSpecAlliances(\n\t\tt,\n\t\tmatchSpecs[0:33],\n\t\t[]expectedAlliances{\n\t\t\t{8, 9},\n\t\t\t{4, 13},\n\t\t\t{5, 12},\n\t\t\t{2, 15},\n\t\t\t{7, 10},\n\t\t\t{3, 14},\n\t\t\t{6, 11},\n\t\t\t{8, 9},\n\t\t\t{4, 13},\n\t\t\t{5, 12},\n\t\t\t{2, 15},\n\t\t\t{7, 10},\n\t\t\t{3, 14},\n\t\t\t{6, 11},\n\t\t\t{8, 9},\n\t\t\t{4, 13},\n\t\t\t{5, 12},\n\t\t\t{2, 15},\n\t\t\t{7, 10},\n\t\t\t{3, 14},\n\t\t\t{6, 11},\n\t\t\t{1, 0},\n\t\t\t{0, 0},\n\t\t\t{0, 0},\n\t\t\t{0, 0},\n\t\t\t{1, 0},\n\t\t\t{0, 0},\n\t\t\t{0, 0},\n\t\t\t{0, 0},\n\t\t\t{1, 0},\n\t\t\t{0, 0},\n\t\t\t{0, 0},\n\t\t\t{0, 0},\n\t\t},\n\t)\n\tfor i := 33; i < 45; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(\n\t\tt, matchGroups, \"EF2\", \"EF3\", \"EF4\", \"EF5\", \"EF6\", \"EF7\", \"EF8\", \"QF1\", \"QF2\", \"QF3\", \"QF4\", \"SF1\", \"SF2\", \"F\",\n\t)\n}\n\nfunc TestSingleEliminationInitialWith16Alliances(t *testing.T) {\n\tfinalMatchup, breakSpecs, err := newSingleEliminationBracket(16)\n\tassert.Nil(t, err)\n\tmatchSpecs, err := collectMatchSpecs(finalMatchup)\n\tassert.Nil(t, err)\n\n\tif assert.Equal(t, 48, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs[0:24],\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Eighthfinal 1-1\", \"EF1-1\", \"\", 1, \"EF1\", true, false, \"ef\", 1, 1},\n\t\t\t\t{\"Eighthfinal 2-1\", \"EF2-1\", \"\", 2, \"EF2\", true, false, \"ef\", 2, 1},\n\t\t\t\t{\"Eighthfinal 3-1\", \"EF3-1\", \"\", 3, \"EF3\", true, false, \"ef\", 3, 1},\n\t\t\t\t{\"Eighthfinal 4-1\", \"EF4-1\", \"\", 4, \"EF4\", true, false, \"ef\", 4, 1},\n\t\t\t\t{\"Eighthfinal 5-1\", \"EF5-1\", \"\", 5, \"EF5\", true, false, \"ef\", 5, 1},\n\t\t\t\t{\"Eighthfinal 6-1\", \"EF6-1\", \"\", 6, \"EF6\", true, false, \"ef\", 6, 1},\n\t\t\t\t{\"Eighthfinal 7-1\", \"EF7-1\", \"\", 7, \"EF7\", true, false, \"ef\", 7, 1},\n\t\t\t\t{\"Eighthfinal 8-1\", \"EF8-1\", \"\", 8, \"EF8\", true, false, \"ef\", 8, 1},\n\t\t\t\t{\"Eighthfinal 1-2\", \"EF1-2\", \"\", 9, \"EF1\", true, false, \"ef\", 1, 2},\n\t\t\t\t{\"Eighthfinal 2-2\", \"EF2-2\", \"\", 10, \"EF2\", true, false, \"ef\", 2, 2},\n\t\t\t\t{\"Eighthfinal 3-2\", \"EF3-2\", \"\", 11, \"EF3\", true, false, \"ef\", 3, 2},\n\t\t\t\t{\"Eighthfinal 4-2\", \"EF4-2\", \"\", 12, \"EF4\", true, false, \"ef\", 4, 2},\n\t\t\t\t{\"Eighthfinal 5-2\", \"EF5-2\", \"\", 13, \"EF5\", true, false, \"ef\", 5, 2},\n\t\t\t\t{\"Eighthfinal 6-2\", \"EF6-2\", \"\", 14, \"EF6\", true, false, \"ef\", 6, 2},\n\t\t\t\t{\"Eighthfinal 7-2\", \"EF7-2\", \"\", 15, \"EF7\", true, false, \"ef\", 7, 2},\n\t\t\t\t{\"Eighthfinal 8-2\", \"EF8-2\", \"\", 16, \"EF8\", true, false, \"ef\", 8, 2},\n\t\t\t\t{\"Eighthfinal 1-3\", \"EF1-3\", \"\", 17, \"EF1\", true, false, \"ef\", 1, 3},\n\t\t\t\t{\"Eighthfinal 2-3\", \"EF2-3\", \"\", 18, \"EF2\", true, false, \"ef\", 2, 3},\n\t\t\t\t{\"Eighthfinal 3-3\", \"EF3-3\", \"\", 19, \"EF3\", true, false, \"ef\", 3, 3},\n\t\t\t\t{\"Eighthfinal 4-3\", \"EF4-3\", \"\", 20, \"EF4\", true, false, \"ef\", 4, 3},\n\t\t\t\t{\"Eighthfinal 5-3\", \"EF5-3\", \"\", 21, \"EF5\", true, false, \"ef\", 5, 3},\n\t\t\t\t{\"Eighthfinal 6-3\", \"EF6-3\", \"\", 22, \"EF6\", true, false, \"ef\", 6, 3},\n\t\t\t\t{\"Eighthfinal 7-3\", \"EF7-3\", \"\", 23, \"EF7\", true, false, \"ef\", 7, 3},\n\t\t\t\t{\"Eighthfinal 8-3\", \"EF8-3\", \"\", 24, \"EF8\", true, false, \"ef\", 8, 3},\n\t\t\t},\n\t\t)\n\t}\n\tassertFullQuarterfinalsOnward(t, matchSpecs, 24)\n\n\tfinalMatchup.update(map[int]playoffMatchResult{})\n\tassertMatchSpecAlliances(\n\t\tt,\n\t\tmatchSpecs[0:24],\n\t\t[]expectedAlliances{\n\t\t\t{1, 16},\n\t\t\t{8, 9},\n\t\t\t{4, 13},\n\t\t\t{5, 12},\n\t\t\t{2, 15},\n\t\t\t{7, 10},\n\t\t\t{3, 14},\n\t\t\t{6, 11},\n\t\t\t{1, 16},\n\t\t\t{8, 9},\n\t\t\t{4, 13},\n\t\t\t{5, 12},\n\t\t\t{2, 15},\n\t\t\t{7, 10},\n\t\t\t{3, 14},\n\t\t\t{6, 11},\n\t\t\t{1, 16},\n\t\t\t{8, 9},\n\t\t\t{4, 13},\n\t\t\t{5, 12},\n\t\t\t{2, 15},\n\t\t\t{7, 10},\n\t\t\t{3, 14},\n\t\t\t{6, 11},\n\t\t},\n\t)\n\tfor i := 24; i < 48; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{0, 0}})\n\t}\n\n\tmatchGroups, err := collectMatchGroups(finalMatchup)\n\tassert.Nil(t, err)\n\tassertMatchGroups(\n\t\tt,\n\t\tmatchGroups,\n\t\t\"EF1\", \"EF2\", \"EF3\", \"EF4\", \"EF5\", \"EF6\", \"EF7\", \"EF8\", \"QF1\", \"QF2\", \"QF3\", \"QF4\", \"SF1\", \"SF2\", \"F\",\n\t)\n\n\tif assert.Equal(t, 3, len(breakSpecs)) {\n\t\tassert.Equal(t, breakSpec{43, 480, \"Field Break\"}, breakSpecs[0])\n\t\tassert.Equal(t, breakSpec{44, 480, \"Field Break\"}, breakSpecs[1])\n\t\tassert.Equal(t, breakSpec{45, 480, \"Field Break\"}, breakSpecs[2])\n\t}\n}\n\nfunc TestSingleEliminationErrors(t *testing.T) {\n\t_, _, err := newSingleEliminationBracket(1)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, \"single-elimination bracket must have at least 2 alliances\", err.Error())\n\t}\n\n\t_, _, err = newSingleEliminationBracket(17)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, \"single-elimination bracket must have at most 16 alliances\", err.Error())\n\t}\n}\n\nfunc TestSingleEliminationProgression(t *testing.T) {\n\tplayoffTournament, err := NewPlayoffTournament(model.SingleEliminationPlayoff, 3)\n\tassert.Nil(t, err)\n\tfinalMatchup := playoffTournament.FinalMatchup()\n\tmatchSpecs := playoffTournament.matchSpecs\n\tmatchGroups := playoffTournament.MatchGroups()\n\tplayoffMatchResults := map[int]playoffMatchResult{}\n\n\tassertMatchupOutcome(t, matchGroups[\"SF2\"], \"\", \"\")\n\n\tplayoffMatchResults[38] = playoffMatchResult{game.RedWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tfor i := 3; i < 9; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{1, 0}})\n\t}\n\tassertMatchupOutcome(t, matchGroups[\"SF2\"], \"\", \"\")\n\n\tplayoffMatchResults[40] = playoffMatchResult{game.RedWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tfor i := 3; i < 9; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{1, 2}})\n\t}\n\tassertMatchupOutcome(t, matchGroups[\"SF2\"], \"Advances to Final 1\", \"Eliminated\")\n\n\t// Reverse a previous outcome.\n\tplayoffMatchResults[40] = playoffMatchResult{game.BlueWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tfor i := 3; i < 9; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{1, 0}})\n\t}\n\tassertMatchupOutcome(t, matchGroups[\"SF2\"], \"\", \"\")\n\n\tplayoffMatchResults[42] = playoffMatchResult{game.BlueWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tfor i := 3; i < 9; i++ {\n\t\tassertMatchSpecAlliances(t, matchSpecs[i:i+1], []expectedAlliances{{1, 3}})\n\t}\n\tassertMatchupOutcome(t, matchGroups[\"SF2\"], \"Eliminated\", \"Advances to Final 1\")\n\n\tplayoffMatchResults[43] = playoffMatchResult{game.TieMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassert.False(t, finalMatchup.IsComplete())\n\tassert.Equal(t, 0, finalMatchup.WinningAllianceId())\n\tassert.Equal(t, 0, finalMatchup.LosingAllianceId())\n\tassertMatchupOutcome(t, matchGroups[\"F\"], \"\", \"\")\n\n\tplayoffMatchResults[44] = playoffMatchResult{game.RedWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassert.False(t, finalMatchup.IsComplete())\n\tassert.Equal(t, 0, finalMatchup.WinningAllianceId())\n\tassert.Equal(t, 0, finalMatchup.LosingAllianceId())\n\tassertMatchupOutcome(t, matchGroups[\"F\"], \"\", \"\")\n\n\tplayoffMatchResults[45] = playoffMatchResult{game.RedWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassert.True(t, finalMatchup.IsComplete())\n\tassert.Equal(t, 1, finalMatchup.WinningAllianceId())\n\tassert.Equal(t, 3, finalMatchup.LosingAllianceId())\n\tassertMatchupOutcome(t, matchGroups[\"F\"], \"Tournament Winner\", \"Tournament Finalist\")\n\n\t// Unscore the previous match.\n\tdelete(playoffMatchResults, 45)\n\tfinalMatchup.update(playoffMatchResults)\n\tassert.False(t, finalMatchup.IsComplete())\n\tassert.Equal(t, 0, finalMatchup.WinningAllianceId())\n\tassert.Equal(t, 0, finalMatchup.LosingAllianceId())\n\tassertMatchupOutcome(t, matchGroups[\"F\"], \"\", \"\")\n\n\tplayoffMatchResults[45] = playoffMatchResult{game.BlueWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassert.False(t, finalMatchup.IsComplete())\n\tassert.Equal(t, 0, finalMatchup.WinningAllianceId())\n\tassert.Equal(t, 0, finalMatchup.LosingAllianceId())\n\tassertMatchupOutcome(t, matchGroups[\"F\"], \"\", \"\")\n\n\tplayoffMatchResults[46] = playoffMatchResult{game.BlueWonMatch}\n\tfinalMatchup.update(playoffMatchResults)\n\tassert.True(t, finalMatchup.IsComplete())\n\tassert.Equal(t, 3, finalMatchup.WinningAllianceId())\n\tassert.Equal(t, 1, finalMatchup.LosingAllianceId())\n\tassertMatchupOutcome(t, matchGroups[\"F\"], \"Tournament Finalist\", \"Tournament Winner\")\n}\n\nfunc assertFullQuarterfinalsOnward(t *testing.T, matchSpecs []*matchSpec, startingIndex int) {\n\tif assert.Equal(t, startingIndex+24, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs[startingIndex:startingIndex+12],\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Quarterfinal 1-1\", \"QF1-1\", \"\", 25, \"QF1\", true, false, \"qf\", 1, 1},\n\t\t\t\t{\"Quarterfinal 2-1\", \"QF2-1\", \"\", 26, \"QF2\", true, false, \"qf\", 2, 1},\n\t\t\t\t{\"Quarterfinal 3-1\", \"QF3-1\", \"\", 27, \"QF3\", true, false, \"qf\", 3, 1},\n\t\t\t\t{\"Quarterfinal 4-1\", \"QF4-1\", \"\", 28, \"QF4\", true, false, \"qf\", 4, 1},\n\t\t\t\t{\"Quarterfinal 1-2\", \"QF1-2\", \"\", 29, \"QF1\", true, false, \"qf\", 1, 2},\n\t\t\t\t{\"Quarterfinal 2-2\", \"QF2-2\", \"\", 30, \"QF2\", true, false, \"qf\", 2, 2},\n\t\t\t\t{\"Quarterfinal 3-2\", \"QF3-2\", \"\", 31, \"QF3\", true, false, \"qf\", 3, 2},\n\t\t\t\t{\"Quarterfinal 4-2\", \"QF4-2\", \"\", 32, \"QF4\", true, false, \"qf\", 4, 2},\n\t\t\t\t{\"Quarterfinal 1-3\", \"QF1-3\", \"\", 33, \"QF1\", true, false, \"qf\", 1, 3},\n\t\t\t\t{\"Quarterfinal 2-3\", \"QF2-3\", \"\", 34, \"QF2\", true, false, \"qf\", 2, 3},\n\t\t\t\t{\"Quarterfinal 3-3\", \"QF3-3\", \"\", 35, \"QF3\", true, false, \"qf\", 3, 3},\n\t\t\t\t{\"Quarterfinal 4-3\", \"QF4-3\", \"\", 36, \"QF4\", true, false, \"qf\", 4, 3},\n\t\t\t},\n\t\t)\n\t}\n\tassertFullSemifinalsOnward(t, matchSpecs, startingIndex+12)\n}\n\nfunc assertFullSemifinalsOnward(t *testing.T, matchSpecs []*matchSpec, startingIndex int) {\n\tif assert.Equal(t, startingIndex+12, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs[startingIndex:startingIndex+6],\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Semifinal 1-1\", \"SF1-1\", \"\", 37, \"SF1\", true, false, \"sf\", 1, 1},\n\t\t\t\t{\"Semifinal 2-1\", \"SF2-1\", \"\", 38, \"SF2\", true, false, \"sf\", 2, 1},\n\t\t\t\t{\"Semifinal 1-2\", \"SF1-2\", \"\", 39, \"SF1\", true, false, \"sf\", 1, 2},\n\t\t\t\t{\"Semifinal 2-2\", \"SF2-2\", \"\", 40, \"SF2\", true, false, \"sf\", 2, 2},\n\t\t\t\t{\"Semifinal 1-3\", \"SF1-3\", \"\", 41, \"SF1\", true, false, \"sf\", 1, 3},\n\t\t\t\t{\"Semifinal 2-3\", \"SF2-3\", \"\", 42, \"SF2\", true, false, \"sf\", 2, 3},\n\t\t\t},\n\t\t)\n\t}\n\tassertFullFinals(t, matchSpecs, startingIndex+6)\n}\n\nfunc assertFullFinals(t *testing.T, matchSpecs []*matchSpec, startingIndex int) {\n\tif assert.Equal(t, startingIndex+6, len(matchSpecs)) {\n\t\tassertMatchSpecs(\n\t\t\tt,\n\t\t\tmatchSpecs[startingIndex:startingIndex+6],\n\t\t\t[]expectedMatchSpec{\n\t\t\t\t{\"Final 1\", \"F1\", \"\", 43, \"F\", false, false, \"f\", 1, 1},\n\t\t\t\t{\"Final 2\", \"F2\", \"\", 44, \"F\", false, false, \"f\", 1, 2},\n\t\t\t\t{\"Final 3\", \"F3\", \"\", 45, \"F\", false, false, \"f\", 1, 3},\n\t\t\t\t{\"Overtime 1\", \"O1\", \"\", 46, \"F\", true, true, \"f\", 1, 4},\n\t\t\t\t{\"Overtime 2\", \"O2\", \"\", 47, \"F\", true, true, \"f\", 1, 5},\n\t\t\t\t{\"Overtime 3\", \"O3\", \"\", 48, \"F\", true, true, \"f\", 1, 6},\n\t\t\t},\n\t\t)\n\t}\n}\n"
  },
  {
    "path": "playoff/test_helpers.go",
    "content": "// Copyright 2022 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Helper methods for use in tests in this package and others.\n\npackage playoff\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc setupTestDb(t *testing.T) *model.Database {\n\treturn model.SetupTestDb(t)\n}\n\ntype expectedMatchSpec struct {\n\tlongName            string\n\tshortName           string\n\tnameDetail          string\n\torder               int\n\tmatchGroupId        string\n\tuseTiebreakCriteria bool\n\tisHidden            bool\n\ttbaCompLevel        string\n\ttbaSetNumber        int\n\ttbaMatchNumber      int\n}\n\nfunc assertMatchSpecs(\n\tt *testing.T,\n\tmatchSpecs []*matchSpec,\n\texpected []expectedMatchSpec,\n) {\n\tif assert.Equal(t, len(expected), len(matchSpecs)) {\n\t\tfor i, expectedValue := range expected {\n\t\t\tassert.Equal(t, expectedValue.longName, matchSpecs[i].longName)\n\t\t\tassert.Equal(t, expectedValue.shortName, matchSpecs[i].shortName)\n\t\t\tassert.Equal(t, expectedValue.nameDetail, matchSpecs[i].nameDetail)\n\t\t\tassert.Equal(t, expectedValue.matchGroupId, matchSpecs[i].matchGroupId)\n\t\t\tassert.Equal(t, expectedValue.order, matchSpecs[i].order)\n\t\t\tassert.Equal(t, expectedValue.useTiebreakCriteria, matchSpecs[i].useTiebreakCriteria)\n\t\t\tassert.Equal(t, expectedValue.isHidden, matchSpecs[i].isHidden)\n\t\t\tassert.Equal(t, expectedValue.tbaCompLevel, matchSpecs[i].tbaMatchKey.CompLevel)\n\t\t\tassert.Equal(t, expectedValue.tbaSetNumber, matchSpecs[i].tbaMatchKey.SetNumber)\n\t\t\tassert.Equal(t, expectedValue.tbaMatchNumber, matchSpecs[i].tbaMatchKey.MatchNumber)\n\t\t\tassert.Equal(t, 0, matchSpecs[i].redAllianceId)\n\t\t\tassert.Equal(t, 0, matchSpecs[i].blueAllianceId)\n\t\t}\n\t}\n}\n\ntype expectedAlliances struct {\n\tredAllianceId  int\n\tblueAllianceId int\n}\n\nfunc assertMatchSpecAlliances(\n\tt *testing.T,\n\tmatchSpecs []*matchSpec,\n\texpected []expectedAlliances,\n) {\n\tif assert.Equal(t, len(expected), len(matchSpecs)) {\n\t\tfor i, alliance := range expected {\n\t\t\tassert.Equal(t, alliance.redAllianceId, matchSpecs[i].redAllianceId)\n\t\t\tassert.Equal(t, alliance.blueAllianceId, matchSpecs[i].blueAllianceId)\n\t\t}\n\t}\n}\n\nfunc assertMatchGroups(\n\tt *testing.T,\n\tmatchGroups map[string]MatchGroup,\n\texpectedMatchGroupIds ...string,\n) {\n\tassert.Equal(t, len(expectedMatchGroupIds), len(matchGroups))\n\tfor _, expectedMatchGroupId := range expectedMatchGroupIds {\n\t\tassert.Contains(t, matchGroups, expectedMatchGroupId)\n\t}\n}\n\nfunc assertMatch(\n\tt *testing.T,\n\tmatch model.Match,\n\ttypeOrder int,\n\ttimeSec int64,\n\tlongName string,\n\tshortName string,\n\tnameDetail string,\n\tmatchGroupId string,\n\tredAlliance int,\n\tblueAlliance int,\n\tuseTiebreakCriteria bool,\n\ttbaCompLevel string,\n\ttbaSetNumber int,\n\ttbaMatchNumber int,\n) {\n\tassert.Equal(t, model.Playoff, match.Type)\n\tassert.Equal(t, typeOrder, match.TypeOrder)\n\tassert.Equal(t, timeSec, match.Time.Unix())\n\tassert.Equal(t, longName, match.LongName)\n\tassert.Equal(t, shortName, match.ShortName)\n\tassert.Equal(t, nameDetail, match.NameDetail)\n\tassert.Equal(t, matchGroupId, match.PlayoffMatchGroupId)\n\tassert.Equal(t, redAlliance, match.PlayoffRedAlliance)\n\tassert.Equal(t, blueAlliance, match.PlayoffBlueAlliance)\n\tif redAlliance == 0 {\n\t\tassert.Equal(t, 0, match.Red1)\n\t\tassert.Equal(t, 0, match.Red2)\n\t\tassert.Equal(t, 0, match.Red3)\n\t} else {\n\t\tassert.Equal(t, 100*redAlliance+2, match.Red1)\n\t\tassert.Equal(t, 100*redAlliance+1, match.Red2)\n\t\tassert.Equal(t, 100*redAlliance+3, match.Red3)\n\t}\n\tif blueAlliance == 0 {\n\t\tassert.Equal(t, 0, match.Blue1)\n\t\tassert.Equal(t, 0, match.Blue2)\n\t\tassert.Equal(t, 0, match.Blue3)\n\t} else {\n\t\tassert.Equal(t, 100*blueAlliance+2, match.Blue1)\n\t\tassert.Equal(t, 100*blueAlliance+1, match.Blue2)\n\t\tassert.Equal(t, 100*blueAlliance+3, match.Blue3)\n\t}\n\tassert.Equal(t, useTiebreakCriteria, match.UseTiebreakCriteria)\n\tassert.Equal(t, tbaCompLevel, match.TbaMatchKey.CompLevel)\n\tassert.Equal(t, tbaSetNumber, match.TbaMatchKey.SetNumber)\n\tassert.Equal(t, tbaMatchNumber, match.TbaMatchKey.MatchNumber)\n}\n\nfunc assertBreak(\n\tt *testing.T,\n\tscheduledBreak model.ScheduledBreak,\n\ttypeOrderBefore int,\n\ttimeSec int64,\n\tdurationSec int,\n\tdescription string,\n) {\n\tassert.Equal(t, model.Playoff, scheduledBreak.MatchType)\n\tassert.Equal(t, typeOrderBefore, scheduledBreak.TypeOrderBefore)\n\tassert.Equal(t, timeSec, scheduledBreak.Time.Unix())\n\tassert.Equal(t, durationSec, scheduledBreak.DurationSec)\n\tassert.Equal(t, description, scheduledBreak.Description)\n}\n\nfunc assertMatchupOutcome(t *testing.T, matchGroup MatchGroup, redDestination string, blueDestination string) {\n\tmatchup, ok := matchGroup.(*Matchup)\n\tif assert.True(t, ok) {\n\t\tassert.Equal(t, redDestination, matchup.RedAllianceDestination())\n\t\tassert.Equal(t, blueDestination, matchup.BlueAllianceDestination())\n\t}\n}\n"
  },
  {
    "path": "plc/armorblock_string.go",
    "content": "// Code generated by \"stringer -type=armorBlock\"; DO NOT EDIT.\n\npackage plc\n\nimport \"strconv\"\n\nfunc _() {\n\t// An \"invalid array index\" compiler error signifies that the constant values have changed.\n\t// Re-run the stringer command to generate them again.\n\tvar x [1]struct{}\n\t_ = x[redDs-0]\n\t_ = x[blueDs-1]\n\t_ = x[redIoLink-2]\n\t_ = x[blueIoLink-3]\n\t_ = x[armorBlockCount-4]\n}\n\nconst _armorBlock_name = \"redDsblueDsredIoLinkblueIoLinkarmorBlockCount\"\n\nvar _armorBlock_index = [...]uint8{0, 5, 11, 20, 30, 45}\n\nfunc (i armorBlock) String() string {\n\tif i < 0 || i >= armorBlock(len(_armorBlock_index)-1) {\n\t\treturn \"armorBlock(\" + strconv.FormatInt(int64(i), 10) + \")\"\n\t}\n\treturn _armorBlock_name[_armorBlock_index[i]:_armorBlock_index[i+1]]\n}\n"
  },
  {
    "path": "plc/coil_string.go",
    "content": "// Code generated by \"stringer -type=coil\"; DO NOT EDIT.\n\npackage plc\n\nimport \"strconv\"\n\nfunc _() {\n\t// An \"invalid array index\" compiler error signifies that the constant values have changed.\n\t// Re-run the stringer command to generate them again.\n\tvar x [1]struct{}\n\t_ = x[heartbeat-0]\n\t_ = x[matchReset-1]\n\t_ = x[stackLightGreen-2]\n\t_ = x[stackLightOrange-3]\n\t_ = x[stackLightRed-4]\n\t_ = x[stackLightBlue-5]\n\t_ = x[stackLightBuzzer-6]\n\t_ = x[fieldResetLight-7]\n\t_ = x[redTrussLightOuter-8]\n\t_ = x[redTrussLightMiddle-9]\n\t_ = x[redTrussLightInner-10]\n\t_ = x[blueTrussLightOuter-11]\n\t_ = x[blueTrussLightMiddle-12]\n\t_ = x[blueTrussLightInner-13]\n\t_ = x[coilCount-14]\n}\n\nconst _coil_name = \"heartbeatmatchResetstackLightGreenstackLightOrangestackLightRedstackLightBluestackLightBuzzerfieldResetLightredTrussLightOuterredTrussLightMiddleredTrussLightInnerblueTrussLightOuterblueTrussLightMiddleblueTrussLightInnercoilCount\"\n\nvar _coil_index = [...]uint8{0, 9, 19, 34, 50, 63, 77, 93, 108, 126, 145, 163, 182, 202, 221, 230}\n\nfunc (i coil) String() string {\n\tif i < 0 || i >= coil(len(_coil_index)-1) {\n\t\treturn \"coil(\" + strconv.FormatInt(int64(i), 10) + \")\"\n\t}\n\treturn _coil_name[_coil_index[i]:_coil_index[i+1]]\n}\n"
  },
  {
    "path": "plc/fake_modbus_client_test.go",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Contains a fake implementation of the modbus.Client interface for testing.\n\npackage plc\n\nimport \"errors\"\n\ntype FakeModbusClient struct {\n\tinputs      [32]bool\n\tregisters   [32]uint16\n\tcoils       [32]bool\n\treturnError bool\n}\n\nfunc (client *FakeModbusClient) ReadCoils(address, quantity uint16) (results []byte, err error) {\n\treturn nil, nil\n}\n\nfunc (client *FakeModbusClient) ReadDiscreteInputs(address, quantity uint16) (results []byte, err error) {\n\tif address != 0 {\n\t\treturn nil, errors.New(\"unexpected address\")\n\t}\n\tif client.returnError {\n\t\treturn nil, errors.New(\"dummy error\")\n\t}\n\tinputsToRead := client.inputs[0:quantity]\n\treturn boolToByte(inputsToRead), nil\n}\n\nfunc (client *FakeModbusClient) WriteSingleCoil(address, value uint16) (results []byte, err error) {\n\treturn nil, nil\n}\n\nfunc (client *FakeModbusClient) WriteMultipleCoils(address, quantity uint16, value []byte) (results []byte, err error) {\n\tif address != 0 {\n\t\treturn nil, errors.New(\"unexpected address\")\n\t}\n\tbools := byteToBool(value, int(quantity))\n\tfor i, b := range bools {\n\t\tclient.coils[i] = b\n\t}\n\treturn nil, nil\n}\n\nfunc (client *FakeModbusClient) ReadInputRegisters(address, quantity uint16) (results []byte, err error) {\n\treturn nil, nil\n}\n\nfunc (client *FakeModbusClient) ReadHoldingRegisters(address, quantity uint16) (results []byte, err error) {\n\tif address != 0 {\n\t\treturn nil, errors.New(\"unexpected address\")\n\t}\n\tregistersToRead := client.registers[0:quantity]\n\tbytes := make([]byte, len(registersToRead)*2)\n\tfor i, value := range registersToRead {\n\t\tbytes[2*i] = byte(value >> 8)\n\t\tbytes[2*i+1] = byte(value)\n\t}\n\treturn bytes, nil\n}\n\nfunc (client *FakeModbusClient) WriteSingleRegister(address, value uint16) (results []byte, err error) {\n\treturn nil, nil\n}\n\nfunc (client *FakeModbusClient) WriteMultipleRegisters(\n\taddress, quantity uint16, value []byte,\n) (results []byte, err error) {\n\treturn nil, nil\n}\n\nfunc (client *FakeModbusClient) ReadWriteMultipleRegisters(\n\treadAddress, readQuantity, writeAddress, writeQuantity uint16, value []byte,\n) (results []byte, err error) {\n\treturn nil, nil\n}\n\nfunc (client *FakeModbusClient) MaskWriteRegister(address, andMask, orMask uint16) (results []byte, err error) {\n\treturn nil, nil\n}\n\nfunc (client *FakeModbusClient) ReadFIFOQueue(address uint16) (results []byte, err error) {\n\treturn nil, nil\n}\n"
  },
  {
    "path": "plc/input_string.go",
    "content": "// Code generated by \"stringer -type=input\"; DO NOT EDIT.\n\npackage plc\n\nimport \"strconv\"\n\nfunc _() {\n\t// An \"invalid array index\" compiler error signifies that the constant values have changed.\n\t// Re-run the stringer command to generate them again.\n\tvar x [1]struct{}\n\t_ = x[fieldEStop-0]\n\t_ = x[red1EStop-1]\n\t_ = x[red1AStop-2]\n\t_ = x[red2EStop-3]\n\t_ = x[red2AStop-4]\n\t_ = x[red3EStop-5]\n\t_ = x[red3AStop-6]\n\t_ = x[blue1EStop-7]\n\t_ = x[blue1AStop-8]\n\t_ = x[blue2EStop-9]\n\t_ = x[blue2AStop-10]\n\t_ = x[blue3EStop-11]\n\t_ = x[blue3AStop-12]\n\t_ = x[redConnected1-13]\n\t_ = x[redConnected2-14]\n\t_ = x[redConnected3-15]\n\t_ = x[blueConnected1-16]\n\t_ = x[blueConnected2-17]\n\t_ = x[blueConnected3-18]\n\t_ = x[inputCount-19]\n}\n\nconst _input_name = \"fieldEStopred1EStopred1AStopred2EStopred2AStopred3EStopred3AStopblue1EStopblue1AStopblue2EStopblue2AStopblue3EStopblue3AStopredConnected1redConnected2redConnected3blueConnected1blueConnected2blueConnected3inputCount\"\n\nvar _input_index = [...]uint8{0, 10, 19, 28, 37, 46, 55, 64, 74, 84, 94, 104, 114, 124, 137, 150, 163, 177, 191, 205, 215}\n\nfunc (i input) String() string {\n\tif i < 0 || i >= input(len(_input_index)-1) {\n\t\treturn \"input(\" + strconv.FormatInt(int64(i), 10) + \")\"\n\t}\n\treturn _input_name[_input_index[i]:_input_index[i+1]]\n}\n"
  },
  {
    "path": "plc/plc.go",
    "content": "// Copyright 2017 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Methods for interfacing with the field PLC.\n\npackage plc\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"github.com/goburrow/modbus\"\n\t\"log\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype Plc interface {\n\tSetAddress(address string)\n\tIsEnabled() bool\n\tIsHealthy() bool\n\tIoChangeNotifier() *websocket.Notifier\n\tRun()\n\tGetArmorBlockStatuses() map[string]bool\n\tGetFieldEStop() bool\n\tGetTeamEStops() ([3]bool, [3]bool)\n\tGetTeamAStops() ([3]bool, [3]bool)\n\tGetEthernetConnected() ([3]bool, [3]bool)\n\tResetMatch()\n\tSetStackLights(red, blue, orange, green bool)\n\tSetStackBuzzer(state bool)\n\tSetFieldResetLight(state bool)\n\tGetCycleState(max, index, duration int) bool\n\tGetInputNames() []string\n\tGetRegisterNames() []string\n\tGetCoilNames() []string\n\tGetProcessorCounts() (int, int)\n\tSetTrussLights(redLights, blueLights [3]bool)\n}\n\ntype ModbusPlc struct {\n\taddress          string\n\thandler          *modbus.TCPClientHandler\n\tclient           modbus.Client\n\tisHealthy        bool\n\tioChangeNotifier *websocket.Notifier\n\tinputs           [inputCount]bool\n\tregisters        [registerCount]uint16\n\tcoils            [coilCount]bool\n\toldInputs        [inputCount]bool\n\toldRegisters     [registerCount]uint16\n\toldCoils         [coilCount]bool\n\tcycleCounter     int\n\tmatchResetCycles int\n}\n\nconst (\n\tmodbusPort         = 502\n\tplcLoopPeriodMs    = 100\n\tplcRetryIntevalSec = 3\n\tcycleCounterMax    = 100\n)\n\n// Discrete inputs\n//\n//go:generate stringer -type=input\ntype input int\n\nconst (\n\tfieldEStop input = iota\n\tred1EStop\n\tred1AStop\n\tred2EStop\n\tred2AStop\n\tred3EStop\n\tred3AStop\n\tblue1EStop\n\tblue1AStop\n\tblue2EStop\n\tblue2AStop\n\tblue3EStop\n\tblue3AStop\n\tredConnected1\n\tredConnected2\n\tredConnected3\n\tblueConnected1\n\tblueConnected2\n\tblueConnected3\n\tinputCount\n)\n\n// 16-bit registers\n//\n//go:generate stringer -type=register\ntype register int\n\nconst (\n\tfieldIoConnection register = iota\n\tredProcessor\n\tblueProcessor\n\tregisterCount\n)\n\n// Coils\n//\n//go:generate stringer -type=coil\ntype coil int\n\nconst (\n\theartbeat coil = iota\n\tmatchReset\n\tstackLightGreen\n\tstackLightOrange\n\tstackLightRed\n\tstackLightBlue\n\tstackLightBuzzer\n\tfieldResetLight\n\tredTrussLightOuter\n\tredTrussLightMiddle\n\tredTrussLightInner\n\tblueTrussLightOuter\n\tblueTrussLightMiddle\n\tblueTrussLightInner\n\tcoilCount\n)\n\n// Bitmask for decoding fieldIoConnection into individual ArmorBlock connection statuses.\n//\n//go:generate stringer -type=armorBlock\ntype armorBlock int\n\nconst (\n\tredDs armorBlock = iota\n\tblueDs\n\tredIoLink\n\tblueIoLink\n\tarmorBlockCount\n)\n\nfunc (plc *ModbusPlc) SetAddress(address string) {\n\tplc.address = address\n\tplc.resetConnection()\n\n\tif plc.ioChangeNotifier == nil {\n\t\t// Register a notifier that listeners can subscribe to to get websocket updates about I/O value changes.\n\t\tplc.ioChangeNotifier = websocket.NewNotifier(\"plcIoChange\", plc.generateIoChangeMessage)\n\t}\n}\n\n// Returns true if the PLC is enabled in the configurations.\nfunc (plc *ModbusPlc) IsEnabled() bool {\n\treturn plc.address != \"\"\n}\n\n// Returns true if the PLC is connected and responding to requests.\nfunc (plc *ModbusPlc) IsHealthy() bool {\n\treturn plc.isHealthy\n}\n\n// Returns a notifier which fires whenever the I/O values change.\nfunc (plc *ModbusPlc) IoChangeNotifier() *websocket.Notifier {\n\treturn plc.ioChangeNotifier\n}\n\n// Loops indefinitely to read inputs from and write outputs to PLC.\nfunc (plc *ModbusPlc) Run() {\n\tfor {\n\t\tif plc.handler == nil {\n\t\t\tif !plc.IsEnabled() {\n\t\t\t\t// No PLC is configured; just allow the loop to continue to simulate inputs and outputs.\n\t\t\t\tplc.isHealthy = false\n\t\t\t} else {\n\t\t\t\terr := plc.connect()\n\t\t\t\tif err != nil {\n\t\t\t\t\tlog.Printf(\"PLC error: %v\", err)\n\t\t\t\t\ttime.Sleep(time.Second * plcRetryIntevalSec)\n\t\t\t\t\tplc.isHealthy = false\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tstartTime := time.Now()\n\t\tplc.update()\n\t\ttime.Sleep(time.Until(startTime.Add(time.Millisecond * plcLoopPeriodMs)))\n\t}\n}\n\n// Returns a map of ArmorBlocks I/O module names to whether they are connected properly.\nfunc (plc *ModbusPlc) GetArmorBlockStatuses() map[string]bool {\n\tstatuses := make(map[string]bool, armorBlockCount)\n\tfor i := 0; i < int(armorBlockCount); i++ {\n\t\tstatuses[strings.Title(armorBlock(i).String())] = plc.registers[fieldIoConnection]&(1<<i) > 0\n\t}\n\treturn statuses\n}\n\n// Returns the state of the field emergency stop button (true if e-stop is active).\nfunc (plc *ModbusPlc) GetFieldEStop() bool {\n\treturn !plc.inputs[fieldEStop]\n}\n\n// Returns the state of the red and blue driver station emergency stop buttons (true if E-stop is active).\nfunc (plc *ModbusPlc) GetTeamEStops() ([3]bool, [3]bool) {\n\tvar redEStops, blueEStops [3]bool\n\tredEStops[0] = !plc.inputs[red1EStop]\n\tredEStops[1] = !plc.inputs[red2EStop]\n\tredEStops[2] = !plc.inputs[red3EStop]\n\tblueEStops[0] = !plc.inputs[blue1EStop]\n\tblueEStops[1] = !plc.inputs[blue2EStop]\n\tblueEStops[2] = !plc.inputs[blue3EStop]\n\treturn redEStops, blueEStops\n}\n\n// Returns the state of the red and blue driver station autonomous stop buttons (true if A-stop is active).\nfunc (plc *ModbusPlc) GetTeamAStops() ([3]bool, [3]bool) {\n\tvar redAStops, blueAStops [3]bool\n\tredAStops[0] = !plc.inputs[red1AStop]\n\tredAStops[1] = !plc.inputs[red2AStop]\n\tredAStops[2] = !plc.inputs[red3AStop]\n\tblueAStops[0] = !plc.inputs[blue1AStop]\n\tblueAStops[1] = !plc.inputs[blue2AStop]\n\tblueAStops[2] = !plc.inputs[blue3AStop]\n\treturn redAStops, blueAStops\n}\n\n// Returns whether anything is connected to each station's designated Ethernet port on the SCC.\nfunc (plc *ModbusPlc) GetEthernetConnected() ([3]bool, [3]bool) {\n\treturn [3]bool{\n\t\t\tplc.inputs[redConnected1],\n\t\t\tplc.inputs[redConnected2],\n\t\t\tplc.inputs[redConnected3],\n\t\t},\n\t\t[3]bool{\n\t\t\tplc.inputs[blueConnected1],\n\t\t\tplc.inputs[blueConnected2],\n\t\t\tplc.inputs[blueConnected3],\n\t\t}\n}\n\n// Resets the internal state of the PLC to start a new match.\nfunc (plc *ModbusPlc) ResetMatch() {\n\tplc.coils[matchReset] = true\n\tplc.matchResetCycles = 0\n\n\t// Clear register variables (other than fieldIoConnection) so that any values from pre-match testing don't carry\n\t// over.\n\tfor i := 1; i < int(registerCount); i++ {\n\t\tplc.registers[i] = 0\n\t}\n}\n\n// Sets the on/off state of the stack lights on the scoring table.\nfunc (plc *ModbusPlc) SetStackLights(red, blue, orange, green bool) {\n\tplc.coils[stackLightRed] = red\n\tplc.coils[stackLightBlue] = blue\n\tplc.coils[stackLightOrange] = orange\n\tplc.coils[stackLightGreen] = green\n}\n\n// Triggers the \"match ready\" chime if the state is true.\nfunc (plc *ModbusPlc) SetStackBuzzer(state bool) {\n\tplc.coils[stackLightBuzzer] = state\n}\n\n// Sets the on/off state of the field reset light.\nfunc (plc *ModbusPlc) SetFieldResetLight(state bool) {\n\tplc.coils[fieldResetLight] = state\n}\n\nfunc (plc *ModbusPlc) GetCycleState(max, index, duration int) bool {\n\treturn plc.cycleCounter/duration%max == index\n}\n\nfunc (plc *ModbusPlc) GetInputNames() []string {\n\tinputNames := make([]string, inputCount)\n\tfor i := range plc.inputs {\n\t\tinputNames[i] = input(i).String()\n\t}\n\treturn inputNames\n}\n\nfunc (plc *ModbusPlc) GetRegisterNames() []string {\n\tregisterNames := make([]string, registerCount)\n\tfor i := range plc.registers {\n\t\tregisterNames[i] = register(i).String()\n\t}\n\treturn registerNames\n}\n\nfunc (plc *ModbusPlc) GetCoilNames() []string {\n\tcoilNames := make([]string, coilCount)\n\tfor i := range plc.coils {\n\t\tcoilNames[i] = coil(i).String()\n\t}\n\treturn coilNames\n}\n\n// Returns the red and blue processor counts, respectively.\nfunc (plc *ModbusPlc) GetProcessorCounts() (int, int) {\n\treturn int(plc.registers[redProcessor]), int(plc.registers[blueProcessor])\n}\n\n// Sets the state of the red and blue truss lights. Each array represents the outer, middle, and inner lights,\n// respectively.\nfunc (plc *ModbusPlc) SetTrussLights(redLights, blueLights [3]bool) {\n\tplc.coils[redTrussLightOuter] = redLights[0]\n\tplc.coils[redTrussLightMiddle] = redLights[1]\n\tplc.coils[redTrussLightInner] = redLights[2]\n\tplc.coils[blueTrussLightOuter] = blueLights[0]\n\tplc.coils[blueTrussLightMiddle] = blueLights[1]\n\tplc.coils[blueTrussLightInner] = blueLights[2]\n}\n\nfunc (plc *ModbusPlc) connect() error {\n\taddress := fmt.Sprintf(\"%s:%d\", plc.address, modbusPort)\n\thandler := modbus.NewTCPClientHandler(address)\n\thandler.Timeout = 1 * time.Second\n\thandler.SlaveId = 0xFF\n\terr := handler.Connect()\n\tif err != nil {\n\t\treturn err\n\t}\n\tlog.Printf(\"Connected to PLC at %s\", address)\n\n\tplc.handler = handler\n\tplc.client = modbus.NewClient(plc.handler)\n\tplc.writeCoils() // Force initial write of the coils upon connection since they may not be triggered by a change.\n\treturn nil\n}\n\nfunc (plc *ModbusPlc) resetConnection() {\n\tif plc.handler != nil {\n\t\tplc.handler.Close()\n\t\tplc.handler = nil\n\t}\n}\n\n// Performs a single iteration of reading inputs from and writing outputs to the PLC.\nfunc (plc *ModbusPlc) update() {\n\tif plc.handler != nil {\n\t\tisHealthy := true\n\t\tisHealthy = isHealthy && plc.writeCoils()\n\t\tisHealthy = isHealthy && plc.readInputs()\n\t\tisHealthy = isHealthy && plc.readRegisters()\n\t\tif !isHealthy {\n\t\t\tplc.resetConnection()\n\t\t}\n\t\tplc.isHealthy = isHealthy\n\t}\n\n\tplc.cycleCounter++\n\tif plc.cycleCounter == cycleCounterMax {\n\t\tplc.cycleCounter = 0\n\t}\n\n\t// Detect any changes in input or output and notify listeners if so.\n\tif plc.inputs != plc.oldInputs || plc.registers != plc.oldRegisters || plc.coils != plc.oldCoils {\n\t\tplc.ioChangeNotifier.Notify()\n\t\tplc.oldInputs = plc.inputs\n\t\tplc.oldRegisters = plc.registers\n\t\tplc.oldCoils = plc.coils\n\t}\n}\n\nfunc (plc *ModbusPlc) readInputs() bool {\n\tif len(plc.inputs) == 0 {\n\t\treturn true\n\t}\n\n\tinputs, err := plc.client.ReadDiscreteInputs(0, uint16(len(plc.inputs)))\n\tif err != nil {\n\t\tlog.Printf(\"PLC error reading inputs: %v\", err)\n\t\treturn false\n\t}\n\tif len(inputs)*8 < len(plc.inputs) {\n\t\tlog.Printf(\"Insufficient length of PLC inputs: got %d bytes, expected %d bits.\", len(inputs), len(plc.inputs))\n\t\treturn false\n\t}\n\n\tcopy(plc.inputs[:], byteToBool(inputs, len(plc.inputs)))\n\treturn true\n}\n\nfunc (plc *ModbusPlc) readRegisters() bool {\n\tif len(plc.registers) == 0 {\n\t\treturn true\n\t}\n\n\tregisters, err := plc.client.ReadHoldingRegisters(0, uint16(len(plc.registers)))\n\tif err != nil {\n\t\tlog.Printf(\"PLC error reading registers: %v\", err)\n\t\treturn false\n\t}\n\tif len(registers)/2 < len(plc.registers) {\n\t\tlog.Printf(\n\t\t\t\"Insufficient length of PLC registers: got %d bytes, expected %d words.\",\n\t\t\tlen(registers),\n\t\t\tlen(plc.registers),\n\t\t)\n\t\treturn false\n\t}\n\n\tcopy(plc.registers[:], byteToUint(registers, len(plc.registers)))\n\treturn true\n}\n\nfunc (plc *ModbusPlc) writeCoils() bool {\n\t// Send a heartbeat to the PLC so that it can disable outputs if the connection is lost.\n\tplc.coils[heartbeat] = true\n\n\tcoils := boolToByte(plc.coils[:])\n\t_, err := plc.client.WriteMultipleCoils(0, uint16(len(plc.coils)), coils)\n\tif err != nil {\n\t\tlog.Printf(\"PLC error writing coils: %v\", err)\n\t\treturn false\n\t}\n\n\tif plc.matchResetCycles > 5 {\n\t\tplc.coils[matchReset] = false // Only need a short pulse to reset the internal state of the PLC.\n\t} else {\n\t\tplc.matchResetCycles++\n\t}\n\treturn true\n}\n\nfunc (plc *ModbusPlc) generateIoChangeMessage() any {\n\treturn &struct {\n\t\tInputs    []bool\n\t\tRegisters []uint16\n\t\tCoils     []bool\n\t}{plc.inputs[:], plc.registers[:], plc.coils[:]}\n}\n\nfunc byteToBool(bytes []byte, size int) []bool {\n\tbools := make([]bool, size)\n\tfor i := 0; i < size; i++ {\n\t\tbyteIndex := i / 8\n\t\tbitIndex := uint(i % 8)\n\t\tbitMask := byte(1 << bitIndex)\n\t\tbools[i] = bytes[byteIndex]&bitMask != 0\n\t}\n\treturn bools\n}\n\nfunc byteToUint(bytes []byte, size int) []uint16 {\n\tuints := make([]uint16, size)\n\tfor i := 0; i < size; i++ {\n\t\tuints[i] = uint16(bytes[2*i])<<8 + uint16(bytes[2*i+1])\n\t}\n\treturn uints\n}\n\nfunc boolToByte(bools []bool) []byte {\n\tbytes := make([]byte, (len(bools)+7)/8)\n\tfor i, bit := range bools {\n\t\tif bit {\n\t\t\tbytes[i/8] |= 1 << uint(i%8)\n\t\t}\n\t}\n\treturn bytes\n}\n"
  },
  {
    "path": "plc/plc_test.go",
    "content": "// Copyright 2017 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage plc\n\nimport (\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"github.com/goburrow/modbus\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestPlcInitialization(t *testing.T) {\n\tvar client FakeModbusClient\n\tvar plc ModbusPlc\n\tvar notifier websocket.Notifier\n\tplc.client = &client\n\tplc.handler = modbus.NewTCPClientHandler(\"dummy\")\n\tplc.ioChangeNotifier = &notifier\n\n\tassert.Equal(t, false, plc.IsEnabled())\n\tplc.SetAddress(\"dummy\")\n\tassert.Equal(t, true, plc.IsEnabled())\n\tassert.Equal(t, &notifier, plc.IoChangeNotifier())\n}\n\nfunc TestPlcGetCycleState(t *testing.T) {\n\tvar client FakeModbusClient\n\tvar plc ModbusPlc\n\tplc.client = &client\n\tplc.handler = modbus.NewTCPClientHandler(\"dummy\")\n\tplc.ioChangeNotifier = &websocket.Notifier{}\n\n\tassert.Equal(t, false, plc.GetCycleState(3, 1, 2))\n\tplc.update()\n\tassert.Equal(t, false, plc.GetCycleState(3, 1, 2))\n\tplc.update()\n\tassert.Equal(t, true, plc.GetCycleState(3, 1, 2))\n\tplc.update()\n\tassert.Equal(t, true, plc.GetCycleState(3, 1, 2))\n\tplc.update()\n\tassert.Equal(t, false, plc.GetCycleState(3, 1, 2))\n\tplc.update()\n\tassert.Equal(t, false, plc.GetCycleState(3, 1, 2))\n\tplc.update()\n\n\tassert.Equal(t, false, plc.GetCycleState(3, 1, 2))\n\tplc.update()\n\tassert.Equal(t, false, plc.GetCycleState(3, 1, 2))\n\tplc.update()\n\tassert.Equal(t, true, plc.GetCycleState(3, 1, 2))\n\tplc.update()\n\tassert.Equal(t, true, plc.GetCycleState(3, 1, 2))\n\tplc.update()\n\tassert.Equal(t, false, plc.GetCycleState(3, 1, 2))\n\tplc.update()\n\tassert.Equal(t, false, plc.GetCycleState(3, 1, 2))\n}\n\nfunc TestPlcGetNames(t *testing.T) {\n\tvar plc ModbusPlc\n\n\tassert.Equal(\n\t\tt,\n\t\t[]string{\n\t\t\t\"fieldEStop\",\n\t\t\t\"red1EStop\",\n\t\t\t\"red1AStop\",\n\t\t\t\"red2EStop\",\n\t\t\t\"red2AStop\",\n\t\t\t\"red3EStop\",\n\t\t\t\"red3AStop\",\n\t\t\t\"blue1EStop\",\n\t\t\t\"blue1AStop\",\n\t\t\t\"blue2EStop\",\n\t\t\t\"blue2AStop\",\n\t\t\t\"blue3EStop\",\n\t\t\t\"blue3AStop\",\n\t\t\t\"redConnected1\",\n\t\t\t\"redConnected2\",\n\t\t\t\"redConnected3\",\n\t\t\t\"blueConnected1\",\n\t\t\t\"blueConnected2\",\n\t\t\t\"blueConnected3\",\n\t\t},\n\t\tplc.GetInputNames(),\n\t)\n\n\tassert.Equal(\n\t\tt,\n\t\t[]string{\n\t\t\t\"fieldIoConnection\",\n\t\t\t\"redProcessor\",\n\t\t\t\"blueProcessor\",\n\t\t},\n\t\tplc.GetRegisterNames(),\n\t)\n\n\tassert.Equal(\n\t\tt,\n\t\t[]string{\n\t\t\t\"heartbeat\",\n\t\t\t\"matchReset\",\n\t\t\t\"stackLightGreen\",\n\t\t\t\"stackLightOrange\",\n\t\t\t\"stackLightRed\",\n\t\t\t\"stackLightBlue\",\n\t\t\t\"stackLightBuzzer\",\n\t\t\t\"fieldResetLight\",\n\t\t\t\"redTrussLightOuter\",\n\t\t\t\"redTrussLightMiddle\",\n\t\t\t\"redTrussLightInner\",\n\t\t\t\"blueTrussLightOuter\",\n\t\t\t\"blueTrussLightMiddle\",\n\t\t\t\"blueTrussLightInner\",\n\t\t},\n\t\tplc.GetCoilNames(),\n\t)\n}\n\nfunc TestPlcInputs(t *testing.T) {\n\tvar client FakeModbusClient\n\tvar plc ModbusPlc\n\tplc.client = &client\n\tplc.handler = modbus.NewTCPClientHandler(\"dummy\")\n\tplc.ioChangeNotifier = &websocket.Notifier{}\n\n\tclient.inputs[0] = true\n\tplc.update()\n\tassert.Equal(t, false, plc.GetFieldEStop())\n\tclient.inputs[0] = false\n\tplc.update()\n\tassert.Equal(t, true, plc.GetFieldEStop())\n\n\tclient.inputs[1] = true\n\tclient.inputs[2] = true\n\tclient.inputs[3] = true\n\tclient.inputs[4] = true\n\tclient.inputs[5] = true\n\tclient.inputs[6] = true\n\tclient.inputs[7] = true\n\tclient.inputs[8] = true\n\tclient.inputs[9] = true\n\tclient.inputs[10] = true\n\tclient.inputs[11] = true\n\tclient.inputs[12] = true\n\tplc.update()\n\tredEStops, blueEStops := plc.GetTeamEStops()\n\tredAStops, blueAStops := plc.GetTeamAStops()\n\tassert.Equal(t, [3]bool{false, false, false}, redEStops)\n\tassert.Equal(t, [3]bool{false, false, false}, blueEStops)\n\tassert.Equal(t, [3]bool{false, false, false}, redAStops)\n\tassert.Equal(t, [3]bool{false, false, false}, blueAStops)\n\tclient.inputs[1] = false\n\tplc.update()\n\tredEStops, blueEStops = plc.GetTeamEStops()\n\tredAStops, blueAStops = plc.GetTeamAStops()\n\tassert.Equal(t, [3]bool{true, false, false}, redEStops)\n\tassert.Equal(t, [3]bool{false, false, false}, blueEStops)\n\tassert.Equal(t, [3]bool{false, false, false}, redAStops)\n\tassert.Equal(t, [3]bool{false, false, false}, blueAStops)\n\tclient.inputs[2] = false\n\tplc.update()\n\tredEStops, blueEStops = plc.GetTeamEStops()\n\tredAStops, blueAStops = plc.GetTeamAStops()\n\tassert.Equal(t, [3]bool{true, false, false}, redEStops)\n\tassert.Equal(t, [3]bool{false, false, false}, blueEStops)\n\tassert.Equal(t, [3]bool{true, false, false}, redAStops)\n\tassert.Equal(t, [3]bool{false, false, false}, blueAStops)\n\tclient.inputs[3] = false\n\tplc.update()\n\tredEStops, blueEStops = plc.GetTeamEStops()\n\tredAStops, blueAStops = plc.GetTeamAStops()\n\tassert.Equal(t, [3]bool{true, true, false}, redEStops)\n\tassert.Equal(t, [3]bool{false, false, false}, blueEStops)\n\tassert.Equal(t, [3]bool{true, false, false}, redAStops)\n\tassert.Equal(t, [3]bool{false, false, false}, blueAStops)\n\tclient.inputs[4] = false\n\tplc.update()\n\tredEStops, blueEStops = plc.GetTeamEStops()\n\tredAStops, blueAStops = plc.GetTeamAStops()\n\tassert.Equal(t, [3]bool{true, true, false}, redEStops)\n\tassert.Equal(t, [3]bool{false, false, false}, blueEStops)\n\tassert.Equal(t, [3]bool{true, true, false}, redAStops)\n\tassert.Equal(t, [3]bool{false, false, false}, blueAStops)\n\tclient.inputs[5] = false\n\tplc.update()\n\tredEStops, blueEStops = plc.GetTeamEStops()\n\tredAStops, blueAStops = plc.GetTeamAStops()\n\tassert.Equal(t, [3]bool{true, true, true}, redEStops)\n\tassert.Equal(t, [3]bool{false, false, false}, blueEStops)\n\tassert.Equal(t, [3]bool{true, true, false}, redAStops)\n\tassert.Equal(t, [3]bool{false, false, false}, blueAStops)\n\tclient.inputs[6] = false\n\tplc.update()\n\tredEStops, blueEStops = plc.GetTeamEStops()\n\tredAStops, blueAStops = plc.GetTeamAStops()\n\tassert.Equal(t, [3]bool{true, true, true}, redEStops)\n\tassert.Equal(t, [3]bool{false, false, false}, blueEStops)\n\tassert.Equal(t, [3]bool{true, true, true}, redAStops)\n\tassert.Equal(t, [3]bool{false, false, false}, blueAStops)\n\tclient.inputs[7] = false\n\tplc.update()\n\tredEStops, blueEStops = plc.GetTeamEStops()\n\tredAStops, blueAStops = plc.GetTeamAStops()\n\tassert.Equal(t, [3]bool{true, true, true}, redEStops)\n\tassert.Equal(t, [3]bool{true, false, false}, blueEStops)\n\tassert.Equal(t, [3]bool{true, true, true}, redAStops)\n\tassert.Equal(t, [3]bool{false, false, false}, blueAStops)\n\tclient.inputs[8] = false\n\tplc.update()\n\tredEStops, blueEStops = plc.GetTeamEStops()\n\tredAStops, blueAStops = plc.GetTeamAStops()\n\tassert.Equal(t, [3]bool{true, true, true}, redEStops)\n\tassert.Equal(t, [3]bool{true, false, false}, blueEStops)\n\tassert.Equal(t, [3]bool{true, true, true}, redAStops)\n\tassert.Equal(t, [3]bool{true, false, false}, blueAStops)\n\tclient.inputs[9] = false\n\tplc.update()\n\tredEStops, blueEStops = plc.GetTeamEStops()\n\tredAStops, blueAStops = plc.GetTeamAStops()\n\tassert.Equal(t, [3]bool{true, true, true}, redEStops)\n\tassert.Equal(t, [3]bool{true, true, false}, blueEStops)\n\tassert.Equal(t, [3]bool{true, true, true}, redAStops)\n\tassert.Equal(t, [3]bool{true, false, false}, blueAStops)\n\tclient.inputs[10] = false\n\tplc.update()\n\tredEStops, blueEStops = plc.GetTeamEStops()\n\tredAStops, blueAStops = plc.GetTeamAStops()\n\tassert.Equal(t, [3]bool{true, true, true}, redEStops)\n\tassert.Equal(t, [3]bool{true, true, false}, blueEStops)\n\tassert.Equal(t, [3]bool{true, true, true}, redAStops)\n\tassert.Equal(t, [3]bool{true, true, false}, blueAStops)\n\tclient.inputs[11] = false\n\tplc.update()\n\tredEStops, blueEStops = plc.GetTeamEStops()\n\tredAStops, blueAStops = plc.GetTeamAStops()\n\tassert.Equal(t, [3]bool{true, true, true}, redEStops)\n\tassert.Equal(t, [3]bool{true, true, true}, blueEStops)\n\tassert.Equal(t, [3]bool{true, true, true}, redAStops)\n\tassert.Equal(t, [3]bool{true, true, false}, blueAStops)\n\tclient.inputs[12] = false\n\tplc.update()\n\tredEStops, blueEStops = plc.GetTeamEStops()\n\tredAStops, blueAStops = plc.GetTeamAStops()\n\tassert.Equal(t, [3]bool{true, true, true}, redEStops)\n\tassert.Equal(t, [3]bool{true, true, true}, blueEStops)\n\tassert.Equal(t, [3]bool{true, true, true}, redAStops)\n\tassert.Equal(t, [3]bool{true, true, true}, blueAStops)\n\n\tclient.inputs[13] = false\n\tclient.inputs[14] = false\n\tclient.inputs[15] = false\n\tclient.inputs[16] = false\n\tclient.inputs[17] = false\n\tclient.inputs[18] = false\n\tplc.update()\n\tredConnected, blueConnected := plc.GetEthernetConnected()\n\tassert.Equal(t, [3]bool{false, false, false}, redConnected)\n\tassert.Equal(t, [3]bool{false, false, false}, blueConnected)\n\tclient.inputs[13] = true\n\tplc.update()\n\tredConnected, blueConnected = plc.GetEthernetConnected()\n\tassert.Equal(t, [3]bool{true, false, false}, redConnected)\n\tassert.Equal(t, [3]bool{false, false, false}, blueConnected)\n\tclient.inputs[14] = true\n\tplc.update()\n\tredConnected, blueConnected = plc.GetEthernetConnected()\n\tassert.Equal(t, [3]bool{true, true, false}, redConnected)\n\tassert.Equal(t, [3]bool{false, false, false}, blueConnected)\n\tclient.inputs[15] = true\n\tplc.update()\n\tredConnected, blueConnected = plc.GetEthernetConnected()\n\tassert.Equal(t, [3]bool{true, true, true}, redConnected)\n\tassert.Equal(t, [3]bool{false, false, false}, blueConnected)\n\tclient.inputs[16] = true\n\tplc.update()\n\tredConnected, blueConnected = plc.GetEthernetConnected()\n\tassert.Equal(t, [3]bool{true, true, true}, redConnected)\n\tassert.Equal(t, [3]bool{true, false, false}, blueConnected)\n\tclient.inputs[17] = true\n\tplc.update()\n\tredConnected, blueConnected = plc.GetEthernetConnected()\n\tassert.Equal(t, [3]bool{true, true, true}, redConnected)\n\tassert.Equal(t, [3]bool{true, true, false}, blueConnected)\n\tclient.inputs[18] = true\n\tplc.update()\n\tredConnected, blueConnected = plc.GetEthernetConnected()\n\tassert.Equal(t, [3]bool{true, true, true}, redConnected)\n\tassert.Equal(t, [3]bool{true, true, true}, blueConnected)\n}\n\nfunc TestPlcInputsGameSpecific(t *testing.T) {\n\tvar client FakeModbusClient\n\tvar plc ModbusPlc\n\tplc.client = &client\n\tplc.handler = modbus.NewTCPClientHandler(\"dummy\")\n\tplc.ioChangeNotifier = &websocket.Notifier{}\n\n\t// None in 2025.\n}\n\nfunc TestPlcRegisters(t *testing.T) {\n\tvar client FakeModbusClient\n\tvar plc ModbusPlc\n\tplc.client = &client\n\tplc.handler = modbus.NewTCPClientHandler(\"dummy\")\n\tplc.ioChangeNotifier = &websocket.Notifier{}\n\n\ttestCases := map[uint16][4]bool{\n\t\t0:  {false, false, false, false},\n\t\t1:  {true, false, false, false},\n\t\t2:  {false, true, false, false},\n\t\t3:  {true, true, false, false},\n\t\t4:  {false, false, true, false},\n\t\t5:  {true, false, true, false},\n\t\t6:  {false, true, true, false},\n\t\t7:  {true, true, true, false},\n\t\t8:  {false, false, false, true},\n\t\t9:  {true, false, false, true},\n\t\t10: {false, true, false, true},\n\t\t11: {true, true, false, true},\n\t\t12: {false, false, true, true},\n\t\t13: {true, false, true, true},\n\t\t14: {false, true, true, true},\n\t\t15: {true, true, true, true},\n\t}\n\n\tfor value, bits := range testCases {\n\t\tclient.registers[0] = value\n\t\tplc.update()\n\t\tassert.Equal(\n\t\t\tt,\n\t\t\tmap[string]bool{\"RedDs\": bits[0], \"BlueDs\": bits[1], \"RedIoLink\": bits[2], \"BlueIoLink\": bits[3]},\n\t\t\tplc.GetArmorBlockStatuses(),\n\t\t)\n\t}\n}\n\nfunc TestPlcRegistersGameSpecific(t *testing.T) {\n\tvar client FakeModbusClient\n\tvar plc ModbusPlc\n\tplc.client = &client\n\tplc.handler = modbus.NewTCPClientHandler(\"dummy\")\n\tplc.ioChangeNotifier = &websocket.Notifier{}\n\n\tclient.registers[1] = 0\n\tclient.registers[2] = 0\n\tplc.update()\n\tredProcessor, blueProcessor := plc.GetProcessorCounts()\n\tassert.Equal(t, 0, redProcessor)\n\tassert.Equal(t, 0, blueProcessor)\n\tclient.registers[1] = 12\n\tplc.update()\n\tredProcessor, blueProcessor = plc.GetProcessorCounts()\n\tassert.Equal(t, 12, redProcessor)\n\tassert.Equal(t, 0, blueProcessor)\n\tclient.registers[2] = 34\n\tplc.update()\n\tredProcessor, blueProcessor = plc.GetProcessorCounts()\n\tassert.Equal(t, 12, redProcessor)\n\tassert.Equal(t, 34, blueProcessor)\n}\n\nfunc TestPlcCoils(t *testing.T) {\n\tvar client FakeModbusClient\n\tvar plc ModbusPlc\n\tplc.client = &client\n\tplc.handler = modbus.NewTCPClientHandler(\"dummy\")\n\tplc.ioChangeNotifier = &websocket.Notifier{}\n\n\tassert.Equal(t, false, client.coils[0])\n\tplc.update()\n\tassert.Equal(t, true, client.coils[0])\n\n\tassert.Equal(t, false, client.coils[1])\n\tclient.registers[fieldIoConnection] = 31\n\tplc.registers[fieldIoConnection] = 31\n\tplc.registers[redProcessor] = 1\n\tplc.registers[blueProcessor] = 2\n\tplc.ResetMatch()\n\tplc.update()\n\tassert.Equal(t, true, client.coils[1])\n\tassert.Equal(t, 31, int(plc.registers[fieldIoConnection]))\n\tassert.Equal(t, 0, int(plc.registers[redProcessor]))\n\tassert.Equal(t, 0, int(plc.registers[blueProcessor]))\n\n\tplc.SetStackLights(false, false, false, false)\n\tplc.update()\n\tassert.Equal(t, false, client.coils[2])\n\tassert.Equal(t, false, client.coils[3])\n\tassert.Equal(t, false, client.coils[4])\n\tassert.Equal(t, false, client.coils[5])\n\tplc.SetStackLights(true, false, false, false)\n\tplc.update()\n\tassert.Equal(t, false, client.coils[2])\n\tassert.Equal(t, false, client.coils[3])\n\tassert.Equal(t, true, client.coils[4])\n\tassert.Equal(t, false, client.coils[5])\n\tplc.SetStackLights(true, true, false, false)\n\tplc.update()\n\tassert.Equal(t, false, client.coils[2])\n\tassert.Equal(t, false, client.coils[3])\n\tassert.Equal(t, true, client.coils[4])\n\tassert.Equal(t, true, client.coils[5])\n\tplc.SetStackLights(true, true, true, false)\n\tplc.update()\n\tassert.Equal(t, false, client.coils[2])\n\tassert.Equal(t, true, client.coils[3])\n\tassert.Equal(t, true, client.coils[4])\n\tassert.Equal(t, true, client.coils[5])\n\tplc.SetStackLights(true, true, true, true)\n\tplc.update()\n\tassert.Equal(t, true, client.coils[2])\n\tassert.Equal(t, true, client.coils[3])\n\tassert.Equal(t, true, client.coils[4])\n\tassert.Equal(t, true, client.coils[5])\n\n\tplc.SetStackBuzzer(false)\n\tplc.update()\n\tassert.Equal(t, false, client.coils[6])\n\tplc.SetStackBuzzer(true)\n\tplc.update()\n\tassert.Equal(t, true, client.coils[6])\n\n\tplc.SetFieldResetLight(false)\n\tplc.update()\n\tassert.Equal(t, false, client.coils[7])\n\tplc.SetFieldResetLight(true)\n\tplc.update()\n\tassert.Equal(t, true, client.coils[7])\n}\n\nfunc TestPlcCoilsGameSpecific(t *testing.T) {\n\tvar client FakeModbusClient\n\tvar plc ModbusPlc\n\tplc.client = &client\n\tplc.handler = modbus.NewTCPClientHandler(\"dummy\")\n\tplc.ioChangeNotifier = &websocket.Notifier{}\n\n\tplc.SetTrussLights([3]bool{false, false, false}, [3]bool{false, false, false})\n\tplc.update()\n\tassert.Equal(t, []bool{false, false, false, false, false, false}, client.coils[8:14])\n\tplc.SetTrussLights([3]bool{true, false, false}, [3]bool{false, false, false})\n\tplc.update()\n\tassert.Equal(t, []bool{true, false, false, false, false, false}, client.coils[8:14])\n\tplc.SetTrussLights([3]bool{true, true, false}, [3]bool{false, false, false})\n\tplc.update()\n\tassert.Equal(t, []bool{true, true, false, false, false, false}, client.coils[8:14])\n\tplc.SetTrussLights([3]bool{true, true, true}, [3]bool{false, false, false})\n\tplc.update()\n\tassert.Equal(t, []bool{true, true, true, false, false, false}, client.coils[8:14])\n\tplc.SetTrussLights([3]bool{true, true, true}, [3]bool{true, false, false})\n\tplc.update()\n\tassert.Equal(t, []bool{true, true, true, true, false, false}, client.coils[8:14])\n\tplc.SetTrussLights([3]bool{true, true, true}, [3]bool{true, true, false})\n\tplc.update()\n\tassert.Equal(t, []bool{true, true, true, true, true, false}, client.coils[8:14])\n\tplc.SetTrussLights([3]bool{true, true, true}, [3]bool{true, true, true})\n\tplc.update()\n\tassert.Equal(t, []bool{true, true, true, true, true, true}, client.coils[8:14])\n}\n\nfunc TestPlcIsHealthy(t *testing.T) {\n\tvar client FakeModbusClient\n\tvar plc ModbusPlc\n\tplc.client = &client\n\tplc.handler = modbus.NewTCPClientHandler(\"dummy\")\n\tplc.ioChangeNotifier = &websocket.Notifier{}\n\n\tassert.Equal(t, false, plc.IsHealthy())\n\tplc.update()\n\tassert.Equal(t, true, plc.IsHealthy())\n\n\tclient.returnError = true\n\tplc.update()\n\tassert.Equal(t, false, plc.IsHealthy())\n\tplc.update()\n\tassert.Equal(t, false, plc.IsHealthy())\n\n\tclient.returnError = false\n\tplc.update()\n\tassert.Equal(t, false, plc.IsHealthy())\n}\n\nfunc TestByteToBool(t *testing.T) {\n\tbytes := []byte{7, 254, 3}\n\tbools := byteToBool(bytes, 17)\n\tif assert.Equal(t, 17, len(bools)) {\n\t\texpectedBools := []bool{\n\t\t\ttrue, true, true, false, false, false, false, false, false, true, true, true, true, true, true, true, true,\n\t\t}\n\t\tassert.Equal(t, expectedBools, bools)\n\t}\n}\n\nfunc TestByteToUint(t *testing.T) {\n\tbytes := []byte{1, 77, 2, 253, 21, 179}\n\tuints := byteToUint(bytes, 3)\n\tif assert.Equal(t, 3, len(uints)) {\n\t\tassert.Equal(t, []uint16{333, 765, 5555}, uints)\n\t}\n}\n\nfunc TestBoolToByte(t *testing.T) {\n\tbools := []bool{true, true, false, false, true, false, false, false, false, true}\n\tbytes := boolToByte(bools)\n\tif assert.Equal(t, 2, len(bytes)) {\n\t\tassert.Equal(t, []byte{19, 2}, bytes)\n\t\tassert.Equal(t, bools, byteToBool(bytes, len(bools)))\n\t}\n}\n"
  },
  {
    "path": "plc/register_string.go",
    "content": "// Code generated by \"stringer -type=register\"; DO NOT EDIT.\n\npackage plc\n\nimport \"strconv\"\n\nfunc _() {\n\t// An \"invalid array index\" compiler error signifies that the constant values have changed.\n\t// Re-run the stringer command to generate them again.\n\tvar x [1]struct{}\n\t_ = x[fieldIoConnection-0]\n\t_ = x[redProcessor-1]\n\t_ = x[blueProcessor-2]\n\t_ = x[registerCount-3]\n}\n\nconst _register_name = \"fieldIoConnectionredProcessorblueProcessorregisterCount\"\n\nvar _register_index = [...]uint8{0, 17, 29, 42, 55}\n\nfunc (i register) String() string {\n\tif i < 0 || i >= register(len(_register_index)-1) {\n\t\treturn \"register(\" + strconv.FormatInt(int64(i), 10) + \")\"\n\t}\n\treturn _register_name[_register_index[i]:_register_index[i+1]]\n}\n"
  },
  {
    "path": "schedules/100_1.csv",
    "content": "44,0,27,0,3,0,58,0,82,0,93,0\n52,0,54,0,90,0,35,0,83,0,74,0\n94,0,72,0,70,0,46,0,53,0,33,0\n17,0,92,0,86,0,50,0,60,0,76,0\n80,0,19,0,51,0,56,0,48,0,18,0\n68,0,85,0,5,0,63,0,34,0,2,0\n75,0,81,0,6,0,64,0,11,0,69,0\n20,0,91,0,40,0,38,0,42,0,98,0\n47,0,24,0,23,0,67,0,96,0,9,0\n65,0,36,0,7,0,73,0,43,0,28,0\n49,0,4,0,55,0,30,0,31,0,88,0\n100,0,66,0,15,0,13,0,62,0,8,0\n21,0,16,0,59,0,87,0,78,0,95,0\n41,0,89,0,45,0,77,0,79,0,10,0\n22,0,25,0,71,0,32,0,97,0,12,0\n37,0,29,0,57,0,39,0,61,0,1,0\n99,0,26,0,76,1,14,0,84,0,82,1\n"
  },
  {
    "path": "schedules/100_10.csv",
    "content": "50,0,86,0,34,0,94,0,89,0,19,0\n100,0,10,0,79,0,8,0,4,0,56,0\n91,0,47,0,17,0,68,0,46,0,96,0\n74,0,64,0,38,0,57,0,14,0,45,0\n25,0,58,0,53,0,78,0,1,0,80,0\n41,0,98,0,3,0,60,0,63,0,13,0\n52,0,37,0,2,0,71,0,69,0,39,0\n24,0,44,0,36,0,73,0,15,0,61,0\n55,0,87,0,70,0,20,0,49,0,7,0\n5,0,85,0,83,0,93,0,6,0,35,0\n97,0,21,0,66,0,11,0,67,0,30,0\n88,0,82,0,32,0,54,0,26,0,72,0\n59,0,27,0,16,0,22,0,31,0,48,0\n75,0,28,0,51,0,65,0,42,0,77,0\n62,0,84,0,12,0,23,0,76,0,9,0\n40,0,18,0,90,0,95,0,99,0,81,0\n92,0,33,0,44,0,43,0,29,0,3,0\n7,0,13,0,94,0,25,0,39,0,100,0\n86,0,63,0,41,0,83,0,52,0,21,0\n37,0,74,0,50,0,20,0,80,0,5,0\n82,0,79,0,14,0,69,0,93,0,31,0\n98,0,78,0,26,0,59,0,45,0,96,0\n16,0,71,0,62,0,77,0,70,0,6,0\n9,0,48,0,24,0,56,0,11,0,2,0\n19,0,15,0,58,0,17,0,18,0,55,0\n75,0,57,0,87,0,89,0,84,0,47,0\n4,0,88,0,28,0,40,0,81,0,67,0\n34,0,90,0,27,0,38,0,43,0,35,0\n54,0,36,0,99,0,97,0,46,0,12,0\n68,0,22,0,92,0,85,0,66,0,42,0\n65,0,95,0,53,0,73,0,10,0,30,0\n23,0,1,0,29,0,51,0,72,0,91,0\n49,0,76,0,60,0,32,0,33,0,8,0\n64,0,55,0,11,0,61,0,3,0,84,0\n83,1,37,0,75,0,88,1,25,0,59,0\n96,0,89,0,31,0,38,0,63,0,4,0\n52,0,87,0,14,0,26,0,97,0,9,0\n58,0,40,0,6,0,82,0,22,0,98,0\n62,0,43,0,13,0,30,0,19,0,36,0\n56,0,95,0,12,0,16,0,28,0,68,0\n44,0,35,0,10,0,41,0,99,0,1,0\n86,0,24,0,69,0,20,0,23,0,45,0\n71,0,78,0,66,0,51,0,18,0,57,0\n100,0,93,0,53,0,34,0,60,0,21,0\n70,0,72,0,85,0,8,0,47,0,61,0\n76,0,67,0,65,0,48,0,17,0,94,0\n79,0,54,0,91,0,27,0,50,0,49,0\n74,0,32,0,29,0,42,0,2,0,90,0\n15,0,7,0,64,0,5,0,92,0,77,0\n39,0,33,0,46,0,80,0,73,0,81,0\n45,0,11,0,99,0,71,0,13,0,87,0\n57,0,55,0,97,0,95,0,82,0,86,0\n52,0,75,0,40,0,68,0,20,0,3,0\n14,0,30,0,1,0,85,0,16,0,37,0\n51,0,31,0,50,0,60,0,43,0,6,0\n88,0,36,0,35,0,100,0,91,0,74,0\n90,0,48,0,98,0,44,0,70,0,79,0\n29,0,96,0,21,0,22,0,15,0,8,0\n93,0,72,0,7,0,4,0,12,0,58,0\n9,0,64,0,80,0,32,0,65,0,41,0\n89,0,26,0,25,0,33,0,28,0,18,0\n46,0,78,0,2,0,83,0,62,0,27,0\n59,0,49,0,19,0,56,0,47,0,92,0\n5,0,34,0,67,0,39,0,61,0,63,0\n84,0,69,0,73,0,66,0,77,0,38,0\n23,0,81,0,42,0,10,0,94,0,54,0\n53,0,24,0,72,0,76,0,17,0,87,0\n71,0,82,0,45,0,30,0,75,0,44,0\n51,0,33,0,13,0,40,0,93,0,55,0\n50,0,41,0,29,0,70,0,88,0,78,0\n26,0,21,0,37,0,12,0,31,0,90,0\n6,0,4,0,14,0,15,0,48,0,32,0\n79,0,77,0,60,0,89,0,46,0,74,0\n35,0,65,0,81,0,16,0,19,0,52,0\n9,0,1,0,94,0,47,0,43,0,95,0\n25,0,66,0,61,0,23,0,96,0,27,0\n67,0,80,0,91,0,99,0,38,0,59,0\n92,0,8,0,73,0,54,0,11,0,58,0\n86,0,3,0,36,0,53,0,42,0,39,0\n5,0,84,0,24,0,97,0,49,0,28,0\n57,0,56,0,17,0,62,0,69,0,98,0\n76,0,34,0,10,0,68,0,64,0,83,0\n20,0,85,0,18,0,2,0,100,0,63,0\n22,0,61,0,33,0,7,0,37,0,78,0\n27,0,93,0,47,0,29,0,67,0,52,0\n23,0,75,0,15,0,13,0,38,0,50,0\n81,0,9,0,92,0,53,0,60,0,71,0\n3,0,65,0,5,0,21,0,58,0,89,0\n45,0,84,0,1,0,36,0,70,0,32,0\n91,0,56,0,82,0,66,0,12,0,83,0\n40,0,2,0,8,0,26,0,44,0,17,0\n46,0,41,0,43,0,22,0,100,0,24,0\n7,0,62,0,18,0,14,0,59,0,54,0\n69,0,6,0,48,0,34,0,87,0,42,0\n16,0,63,0,49,0,25,0,10,0,74,0\n73,0,94,0,99,0,31,0,28,0,55,0\n19,0,39,0,90,0,68,0,72,0,57,0\n20,0,4,0,98,0,95,0,51,0,11,0\n30,0,35,0,96,0,86,0,79,0,64,0\n97,0,77,0,85,0,88,0,76,0,80,0\n32,0,22,0,12,0,13,0,47,0,18,0\n56,0,42,0,38,0,1,0,5,0,46,0\n67,0,37,0,45,0,9,0,100,0,6,0\n99,0,34,0,29,0,25,0,17,0,82,0\n65,0,54,0,78,0,84,0,40,0,63,0\n31,0,70,0,57,0,83,0,33,0,23,0\n20,0,15,0,30,0,60,0,91,0,26,0\n52,0,92,0,89,0,88,0,90,0,10,0\n95,0,76,0,59,0,44,0,39,0,50,0\n66,0,55,0,14,0,98,0,24,0,8,0\n58,0,28,0,71,0,79,0,36,0,85,0\n68,0,93,0,11,0,86,0,77,0,81,0\n87,0,61,0,21,0,35,0,62,0,80,0\n49,0,94,0,64,0,53,0,75,0,2,0\n72,0,48,0,43,0,74,0,97,0,96,0\n41,0,51,0,16,0,7,0,73,0,27,0\n4,0,19,0,25,0,69,0,3,0,22,0\n60,0,83,0,39,0,47,0,24,0,40,0\n42,0,52,0,13,0,91,0,37,0,58,0\n31,0,20,0,84,0,34,0,81,0,44,0\n89,0,99,0,78,0,93,0,76,0,15,0\n11,0,70,0,94,0,5,0,12,0,14,0\n38,0,98,0,21,0,33,0,10,0,85,0\n1,0,63,0,27,0,92,0,57,0,26,0\n87,0,86,0,2,0,16,0,4,0,66,0\n9,0,51,0,82,0,36,0,49,0,90,0\n71,0,23,0,8,0,41,0,19,0,67,0\n6,0,28,0,72,0,64,0,59,0,46,0\n17,0,3,0,73,0,97,0,50,0,35,0\n74,0,68,0,43,0,69,0,65,0,7,0\n30,0,61,0,18,0,77,0,56,0,29,0\n55,0,45,0,88,0,62,0,53,0,48,0\n80,0,54,0,100,0,96,0,95,0,75,0\n79,0,63,0,37,0,32,0,51,0,87,0\n26,0,22,0,38,0,93,0,49,0,71,0\n42,0,27,0,72,0,99,0,98,0,9,0\n50,0,12,0,64,0,67,0,24,0,85,0\n39,0,17,0,16,0,23,0,92,0,21,0\n74,0,4,0,18,0,82,0,41,0,84,0\n66,0,20,0,59,0,58,0,29,0,94,0\n25,0,90,0,91,0,14,0,86,0,73,0\n60,0,10,0,75,0,5,0,78,0,48,0\n47,0,7,0,30,0,3,0,81,0,76,0\n33,0,34,0,95,0,62,0,15,0,79,0\n96,0,6,0,36,0,52,0,55,0,56,0\n46,0,44,0,65,0,57,0,88,0,11,0\n8,0,28,0,83,0,80,0,45,0,43,0\n35,0,13,0,68,0,2,0,54,0,70,0\n31,0,77,0,100,0,1,0,40,0,19,0\n32,0,69,0,97,0,61,0,89,0,53,0\n48,0,85,0,84,0,26,0,29,0,39,0\n79,0,22,0,20,0,73,0,67,0,72,0\n58,0,99,0,56,0,33,0,86,0,75,0\n10,0,93,0,57,0,3,0,9,0,59,0\n88,0,17,0,7,0,6,0,66,0,95,0\n25,0,12,0,43,0,87,0,98,0,15,0\n47,0,38,0,100,0,11,0,82,0,50,0\n44,0,96,0,77,0,13,0,53,0,83,0\n32,0,78,0,52,0,34,0,30,0,28,0\n92,0,97,0,62,0,31,0,37,0,65,0\n63,0,80,0,68,0,23,0,36,0,60,0\n8,0,69,0,46,0,16,0,94,0,18,0\n42,0,49,0,40,0,89,0,35,0,45,0\n54,0,90,0,1,0,64,0,71,0,4,0\n70,0,27,0,81,0,24,0,74,0,21,0\n5,0,76,0,41,0,91,0,55,0,2,0\n19,0,61,0,83,0,14,0,51,0,88,0\n"
  },
  {
    "path": "schedules/100_11.csv",
    "content": "46,0,74,0,97,0,20,0,34,0,38,0\n83,0,53,0,6,0,23,0,75,0,42,0\n48,0,87,0,43,0,45,0,44,0,33,0\n100,0,37,0,66,0,22,0,28,0,76,0\n60,0,35,0,51,0,78,0,98,0,39,0\n30,0,11,0,67,0,9,0,3,0,8,0\n25,0,56,0,24,0,19,0,70,0,95,0\n96,0,40,0,94,0,92,0,69,0,50,0\n63,0,5,0,77,0,29,0,26,0,73,0\n16,0,58,0,91,0,84,0,85,0,64,0\n89,0,80,0,1,0,72,0,14,0,54,0\n13,0,17,0,99,0,31,0,49,0,55,0\n61,0,47,0,59,0,65,0,71,0,93,0\n62,0,82,0,21,0,27,0,36,0,15,0\n79,0,52,0,12,0,68,0,57,0,32,0\n18,0,2,0,4,0,88,0,10,0,7,0\n86,0,41,0,77,0,81,0,90,0,23,0\n70,0,69,0,78,0,58,0,44,0,5,0\n89,0,26,0,38,0,87,0,16,0,30,0\n83,0,33,0,28,0,84,0,74,0,8,0\n49,0,66,0,97,0,43,0,39,0,42,0\n36,0,1,0,63,0,22,0,47,0,24,0\n75,0,51,0,27,0,91,0,32,0,13,0\n54,0,48,0,25,0,21,0,85,0,93,0\n3,0,76,0,72,0,18,0,41,0,31,0\n7,0,14,0,50,0,11,0,35,0,20,0\n60,0,73,0,46,0,96,0,86,0,82,0\n64,0,45,0,98,0,81,0,15,0,68,0\n61,0,37,0,34,0,12,0,17,0,2,0\n4,0,71,0,10,0,40,0,79,0,56,0\n59,0,55,0,90,0,67,0,88,0,53,0\n95,0,62,0,100,0,92,0,80,0,52,0\n29,0,9,0,19,0,94,0,6,0,57,0\n99,0,28,0,35,0,65,0,43,0,5,0\n38,1,93,0,33,0,66,1,86,0,78,0\n8,1,54,0,63,0,70,1,72,0,98,0\n7,0,31,0,97,0,69,0,91,0,30,0\n22,0,10,0,12,0,83,0,25,0,87,0\n44,0,67,0,13,0,16,0,1,0,2,0\n53,0,95,0,36,0,89,0,50,0,46,0\n42,0,58,0,21,0,37,0,3,0,79,0\n100,0,94,0,90,0,61,0,56,0,73,0\n68,0,26,0,96,0,76,0,27,0,99,0\n57,0,15,0,4,0,59,0,80,0,84,0\n51,0,29,0,81,0,52,0,24,0,48,0\n45,0,55,0,14,0,34,0,9,0,65,0\n41,0,62,0,19,0,17,0,74,0,40,0\n32,0,11,0,88,0,49,0,23,0,60,0\n92,0,39,0,71,0,77,0,64,0,75,0\n20,0,82,0,85,0,6,0,18,0,47,0\n94,0,83,0,36,0,98,0,5,0,27,0\n84,0,3,0,78,0,99,0,50,0,1,0\n13,0,58,0,97,0,12,0,53,0,26,0\n79,0,73,0,15,0,66,0,14,0,29,0\n34,0,51,0,87,0,43,0,19,0,96,0\n24,0,72,0,46,0,59,0,40,0,42,0\n77,0,31,0,52,0,88,0,21,0,9,0\n85,0,32,0,89,0,100,0,63,0,74,0\n4,0,81,0,91,0,17,0,92,0,82,0\n20,0,8,0,69,0,71,0,45,0,49,0\n70,0,75,0,93,0,22,0,57,0,62,0\n2,0,48,0,86,0,18,0,95,0,35,0\n38,0,76,0,11,0,90,0,25,0,6,0\n61,0,30,0,44,0,60,0,10,0,28,0\n39,0,16,0,23,0,7,0,55,0,37,0\n80,0,67,0,65,0,33,0,68,0,56,0\n47,0,54,0,26,0,64,0,41,0,52,0\n1,0,72,0,12,0,100,0,69,0,21,0\n42,0,91,0,96,0,63,0,45,0,78,0\n86,0,85,0,17,0,97,0,3,0,57,0\n62,0,58,0,43,0,83,0,77,0,20,0\n98,0,29,0,90,0,18,0,75,0,50,0\n76,0,88,0,44,0,93,0,46,0,15,0\n7,0,32,0,19,0,80,0,61,0,8,0\n23,0,30,0,35,0,24,0,73,0,27,0\n82,0,25,0,5,0,13,0,33,0,39,0\n59,0,10,0,31,0,54,0,38,0,51,0\n55,0,74,0,2,0,22,0,71,0,94,0\n79,0,34,0,6,0,41,0,67,0,36,0\n4,0,28,0,64,0,49,0,89,0,48,0\n40,0,9,0,84,0,81,0,70,0,87,0\n14,0,60,0,47,0,95,0,68,0,37,0\n16,0,66,0,56,0,53,0,99,0,11,0\n65,0,42,0,19,0,92,0,1,0,73,0\n17,0,98,0,33,0,32,0,58,0,38,0\n15,0,18,0,8,0,51,0,39,0,74,0\n45,0,88,0,35,0,62,0,29,0,3,0\n82,0,12,0,7,0,63,0,71,0,28,0\n50,0,27,0,2,0,87,0,31,0,6,0\n44,0,83,0,49,0,37,0,90,0,26,0\n34,0,93,0,80,0,23,0,79,0,91,0\n9,0,22,0,68,0,85,0,4,0,46,0\n11,0,84,0,54,0,65,0,95,0,97,0\n21,0,96,0,56,0,5,0,14,0,16,0\n30,0,70,0,20,0,94,0,53,0,52,0\n69,0,10,0,86,0,66,0,59,0,64,0\n25,0,67,0,78,0,72,0,47,0,81,0\n60,0,36,0,99,0,57,0,48,0,92,0\n61,0,40,0,13,0,89,0,77,0,76,0\n75,0,100,0,24,0,41,0,43,0,55,0\n31,0,85,0,73,0,34,0,39,0,28,0\n12,0,98,0,95,0,74,0,16,0,3,0\n30,0,65,0,46,0,32,0,62,0,6,0\n1,0,86,0,83,0,68,0,29,0,7,0\n93,0,5,0,37,0,51,0,72,0,4,0\n64,0,20,0,25,0,63,0,79,0,99,0\n10,0,57,0,50,0,77,0,8,0,67,0\n88,0,38,0,71,0,41,0,13,0,42,0\n69,0,55,0,60,0,26,0,80,0,18,0\n17,0,44,0,35,0,47,0,21,0,75,0\n76,0,23,0,56,0,58,0,87,0,36,0\n96,0,9,0,54,0,15,0,61,0,33,0\n92,0,45,0,66,0,89,0,2,0,24,0\n52,0,90,0,43,0,78,0,40,0,82,0\n91,0,100,0,48,0,70,0,11,0,59,0\n53,0,27,0,22,0,49,0,19,0,84,0\n94,0,14,0,99,0,97,0,81,0,10,0\n77,0,6,0,7,0,74,0,72,0,44,0\n39,0,26,0,21,0,32,0,86,0,4,0\n64,0,9,0,38,0,23,0,5,0,50,0\n68,0,24,0,3,0,20,0,93,0,13,0\n80,0,85,0,78,0,76,0,2,0,45,0\n8,0,62,0,48,0,12,0,31,0,56,0\n89,0,55,0,98,0,52,0,73,0,11,0\n19,0,14,0,51,0,70,0,90,0,46,0\n41,0,53,0,57,0,25,0,61,0,35,0\n63,0,65,0,17,0,69,0,95,0,27,0\n92,0,22,0,88,0,79,0,43,0,54,0\n94,0,28,0,15,0,87,0,91,0,1,0\n82,0,71,0,29,0,67,0,37,0,97,0\n36,0,81,0,59,0,16,0,33,0,49,0\n47,0,30,0,42,0,96,0,84,0,100,0\n40,0,58,0,75,0,66,0,60,0,34,0\n18,0,13,0,46,0,83,0,21,0,45,0\n73,0,95,0,51,0,9,0,20,0,44,0\n48,0,6,0,61,0,14,0,22,0,26,0\n68,0,5,0,89,0,91,0,90,0,8,0\n74,0,31,0,37,0,78,0,57,0,24,0\n79,0,87,0,7,0,81,0,65,0,53,0\n80,0,35,0,97,0,36,0,77,0,96,0\n23,0,100,0,98,0,67,0,4,0,99,0\n16,0,50,0,42,0,54,0,28,0,62,0\n49,0,34,0,47,0,3,0,92,0,70,0\n66,0,27,0,1,0,25,0,71,0,18,0\n56,0,29,0,72,0,64,0,43,0,60,0\n93,0,11,0,10,0,19,0,82,0,58,0\n32,0,15,0,41,0,69,0,2,0,83,0\n39,0,52,0,17,0,94,0,59,0,76,0\n55,0,12,0,30,0,33,0,40,0,85,0\n86,0,38,0,63,0,84,0,75,0,88,0\n21,0,49,0,95,0,67,0,61,0,91,0\n99,0,42,0,62,0,89,0,7,0,9,0\n23,0,74,0,36,0,29,0,13,0,54,0\n18,0,16,0,97,0,79,0,100,0,78,0\n46,0,77,0,98,0,56,0,69,0,93,0\n24,0,87,0,11,0,17,0,71,0,80,0\n37,0,65,0,20,0,96,0,48,0,10,0\n28,0,47,0,58,0,86,0,27,0,55,0\n84,0,32,0,5,0,66,0,25,0,31,0\n64,0,44,0,53,0,34,0,94,0,4,0\n81,0,1,0,8,0,26,0,43,0,85,0\n59,0,22,0,50,0,41,0,45,0,60,0\n72,0,92,0,15,0,38,0,35,0,90,0\n76,0,57,0,82,0,83,0,30,0,51,0\n70,0,40,0,73,0,68,0,88,0,6,0\n52,0,33,0,3,0,63,0,14,0,2,0\n39,0,75,0,89,0,19,0,12,0,20,0\n31,0,27,0,64,0,61,0,11,0,46,0\n8,0,87,0,78,0,29,0,55,0,21,0\n67,0,48,0,94,0,7,0,66,0,54,0\n96,0,18,0,53,0,93,0,17,0,28,0\n34,0,81,0,35,0,42,0,95,0,32,0\n69,0,43,0,73,0,47,0,57,0,38,0\n2,0,79,0,33,0,70,0,77,0,60,0\n15,0,50,0,37,0,13,0,19,0,30,0\n71,0,68,0,72,0,84,0,62,0,23,0\n74,0,10,0,49,0,1,0,5,0,76,0\n6,0,24,0,91,0,86,0,12,0,88,0\n45,0,4,0,16,0,75,0,52,0,25,0\n41,0,85,0,92,0,14,0,44,0,98,0\n99,0,39,0,22,0,80,0,58,0,90,0\n3,0,36,0,26,0,51,0,100,0,40,0\n9,0,56,0,83,0,59,0,97,0,63,0\n65,0,38,0,8,0,82,0,66,0,70,0\n"
  },
  {
    "path": "schedules/100_12.csv",
    "content": "22,0,65,0,43,0,10,0,30,0,53,0\n15,0,84,0,7,0,69,0,28,0,77,0\n33,0,47,0,48,0,29,0,1,0,78,0\n25,0,74,0,91,0,55,0,99,0,4,0\n64,0,52,0,81,0,59,0,51,0,62,0\n5,0,60,0,26,0,85,0,92,0,50,0\n17,0,67,0,80,0,56,0,20,0,75,0\n58,0,6,0,83,0,9,0,46,0,32,0\n14,0,100,0,40,0,12,0,23,0,76,0\n93,0,21,0,63,0,82,0,95,0,61,0\n71,0,42,0,73,0,11,0,90,0,96,0\n44,0,86,0,24,0,36,0,2,0,70,0\n34,0,31,0,49,0,98,0,66,0,68,0\n16,0,19,0,89,0,54,0,39,0,3,0\n35,0,18,0,88,0,94,0,79,0,38,0\n72,0,87,0,41,0,57,0,27,0,37,0\n97,0,45,0,48,0,8,0,13,0,56,0\n20,0,83,0,47,0,91,0,64,0,22,0\n23,0,6,0,69,0,11,0,85,0,52,0\n28,0,50,0,65,0,95,0,33,0,44,0\n1,0,46,0,98,0,30,0,36,0,100,0\n63,0,53,0,16,0,71,0,70,0,49,0\n67,0,26,0,42,0,88,0,66,0,77,0\n39,0,60,0,41,0,61,0,9,0,25,0\n55,0,73,0,40,0,19,0,8,0,78,0\n35,0,37,0,14,0,54,0,82,0,15,0\n38,0,57,0,4,0,12,0,59,0,17,0\n18,0,84,0,29,0,90,0,21,0,31,0\n43,0,2,0,3,0,99,0,72,0,92,0\n27,0,79,0,34,0,13,0,7,0,86,0\n68,0,87,0,75,0,24,0,97,0,62,0\n80,0,51,0,45,0,58,0,5,0,76,0\n94,0,93,0,89,0,32,0,96,0,10,0\n74,0,23,0,82,0,81,0,71,0,65,0\n59,0,55,0,77,0,47,0,53,0,46,0\n83,0,41,0,95,0,30,0,88,0,11,0\n72,0,29,0,91,0,9,0,52,0,38,0\n85,0,13,0,61,0,16,0,33,0,17,0\n98,0,40,0,90,0,26,0,97,0,79,0\n84,0,76,0,4,0,60,0,36,0,43,0\n44,0,67,0,63,0,99,0,34,0,12,0\n57,0,96,0,56,0,31,0,24,0,92,0\n19,0,75,0,50,0,2,0,32,0,7,0\n27,0,70,0,35,0,21,0,66,0,22,0\n37,0,93,0,1,0,64,0,51,0,28,0\n68,0,10,0,45,0,25,0,3,0,69,0\n5,0,6,0,48,0,81,0,73,0,87,0\n42,0,78,0,54,0,58,0,100,0,94,0\n80,0,49,0,89,0,74,0,15,0,18,0\n39,0,86,0,62,0,14,0,8,0,20,0\n32,0,29,0,71,0,55,0,88,0,13,0\n38,0,97,0,21,0,60,0,2,0,47,0\n30,0,79,0,84,0,9,0,17,0,66,0\n77,0,75,0,95,0,45,0,12,0,31,0\n24,0,67,0,93,0,98,0,83,0,19,0\n43,0,63,0,25,0,96,0,35,0,1,0\n36,0,53,0,49,0,51,0,41,0,78,0\n72,0,73,0,85,0,4,0,39,0,15,0\n50,0,91,0,69,0,81,0,42,0,62,0\n57,0,70,0,65,0,14,0,48,0,68,0\n86,0,87,0,52,0,80,0,26,0,54,0\n61,0,23,0,22,0,56,0,3,0,7,0\n94,0,33,0,82,0,90,0,6,0,89,0\n64,0,92,0,18,0,46,0,76,0,27,0\n8,0,16,0,58,0,10,0,99,0,28,0\n74,0,11,0,59,0,37,0,40,0,44,0\n100,0,34,0,4,0,5,0,20,0,32,0\n51,0,12,0,21,0,24,0,50,0,72,0\n85,0,49,0,14,0,84,0,95,0,47,0\n53,0,67,0,96,0,23,0,39,0,79,0\n33,0,45,0,9,0,55,0,26,0,62,0\n86,0,69,0,19,0,46,0,35,0,71,0\n63,0,83,0,3,0,81,0,18,0,28,0\n66,0,61,0,37,0,78,0,65,0,97,0\n99,0,38,0,30,0,76,0,89,0,7,0\n36,0,80,0,31,0,59,0,93,0,73,0\n44,0,60,0,94,0,29,0,20,0,57,0\n27,0,98,0,42,0,16,0,40,0,15,0\n64,0,8,0,6,0,70,0,34,0,75,0\n54,0,52,0,2,0,5,0,77,0,25,0\n58,0,56,0,43,0,87,0,91,0,90,0\n17,0,100,0,10,0,48,0,74,0,41,0\n68,0,13,0,92,0,1,0,88,0,82,0\n11,0,39,0,99,0,22,0,33,0,80,0\n71,0,3,0,76,0,24,0,32,0,26,0\n81,0,85,0,21,0,86,0,37,0,53,0\n50,0,97,0,14,0,34,0,55,0,94,0\n65,0,25,0,75,0,38,0,29,0,93,0\n51,0,69,0,40,0,43,0,47,0,57,0\n78,0,67,0,87,0,31,0,35,0,89,0\n73,0,95,0,46,0,70,0,60,0,74,0\n20,0,2,0,13,0,15,0,9,0,58,0\n18,0,91,0,8,0,23,0,30,0,68,0\n42,0,49,0,4,0,61,0,1,0,45,0\n54,0,11,0,84,0,56,0,64,0,12,0\n90,0,17,0,22,0,28,0,52,0,98,0\n82,0,36,0,48,0,16,0,79,0,77,0\n66,0,100,0,96,0,83,0,44,0,7,0\n92,0,63,0,6,0,19,0,41,0,59,0\n62,0,5,0,88,0,27,0,10,0,72,0\n15,0,68,0,55,0,81,0,86,0,43,0\n85,0,58,0,30,0,71,0,31,0,97,0\n1,0,53,0,3,0,57,0,84,0,91,0\n39,0,70,0,38,0,13,0,69,0,98,0\n80,0,65,0,8,0,24,0,77,0,21,0\n96,0,36,0,12,0,29,0,61,0,34,0\n54,0,90,0,45,0,59,0,23,0,66,0\n73,0,2,0,49,0,33,0,67,0,76,0\n9,0,93,0,4,0,48,0,88,0,40,0\n11,0,17,0,47,0,89,0,63,0,50,0\n94,0,37,0,52,0,46,0,92,0,75,0\n56,0,62,0,99,0,60,0,83,0,35,0\n28,0,20,0,100,0,27,0,25,0,6,0\n32,0,72,0,95,0,87,0,79,0,22,0\n7,0,41,0,64,0,74,0,42,0,14,0\n10,0,16,0,78,0,51,0,44,0,26,0\n82,0,5,0,13,0,19,0,18,0,57,0\n80,0,98,0,29,0,63,0,2,0,23,0\n77,0,34,0,58,0,3,0,38,0,92,0\n66,0,76,0,94,0,39,0,91,0,48,0\n97,0,52,0,15,0,12,0,83,0,84,0\n20,0,79,0,93,0,49,0,55,0,11,0\n36,0,17,0,68,0,71,0,7,0,72,0\n32,0,62,0,21,0,41,0,1,0,73,0\n51,0,25,0,35,0,95,0,8,0,42,0\n27,0,78,0,59,0,56,0,82,0,50,0\n47,0,86,0,28,0,74,0,45,0,67,0\n65,0,5,0,40,0,64,0,46,0,99,0\n10,0,70,0,54,0,33,0,85,0,18,0\n37,0,60,0,31,0,26,0,6,0,22,0\n89,0,88,0,53,0,61,0,100,0,24,0\n87,0,14,0,9,0,96,0,16,0,69,0\n44,0,81,0,19,0,30,0,4,0,90,0\n43,0,42,0,83,0,75,0,49,0,48,0\n59,0,98,0,95,0,84,0,58,0,86,0\n46,0,66,0,82,0,20,0,38,0,41,0\n51,0,17,0,3,0,11,0,27,0,97,0\n71,0,47,0,52,0,39,0,10,0,56,0\n88,0,7,0,57,0,78,0,85,0,63,0\n12,0,92,0,33,0,93,0,69,0,8,0\n55,0,60,0,14,0,80,0,72,0,90,0\n37,0,67,0,16,0,29,0,5,0,30,0\n99,0,13,0,23,0,94,0,36,0,21,0\n1,0,54,0,74,0,34,0,9,0,22,0\n70,0,31,0,19,0,100,0,15,0,50,0\n18,0,25,0,76,0,53,0,62,0,87,0\n2,0,6,0,96,0,65,0,45,0,91,0\n79,0,24,0,64,0,44,0,43,0,73,0\n32,0,40,0,35,0,61,0,81,0,77,0\n28,0,68,0,26,0,75,0,89,0,4,0\n60,0,48,0,7,0,58,0,67,0,11,0\n42,0,97,0,86,0,93,0,82,0,99,0\n47,0,9,0,3,0,100,0,37,0,80,0\n10,0,15,0,34,0,53,0,90,0,95,0\n76,0,31,0,72,0,63,0,65,0,13,0\n78,0,18,0,24,0,14,0,17,0,6,0\n88,0,22,0,44,0,46,0,45,0,81,0\n21,0,61,0,71,0,98,0,54,0,43,0\n77,0,83,0,23,0,27,0,68,0,4,0\n75,0,96,0,41,0,51,0,84,0,55,0\n79,0,1,0,91,0,5,0,70,0,59,0\n64,0,87,0,38,0,8,0,50,0,49,0\n29,0,89,0,62,0,85,0,19,0,66,0\n28,0,57,0,92,0,35,0,36,0,39,0\n26,0,12,0,25,0,30,0,73,0,94,0\n69,0,56,0,32,0,2,0,74,0,16,0\n20,0,52,0,63,0,33,0,40,0,3,0\n24,0,46,0,23,0,42,0,84,0,34,0\n11,0,43,0,77,0,100,0,18,0,97,0\n22,0,15,0,38,0,78,0,96,0,5,0\n71,0,8,0,4,0,37,0,89,0,79,0\n91,0,41,0,13,0,44,0,93,0,35,0\n90,0,7,0,92,0,62,0,70,0,47,0\n98,0,85,0,74,0,94,0,51,0,87,0\n9,0,19,0,56,0,28,0,49,0,21,0\n31,0,1,0,10,0,86,0,40,0,83,0\n95,0,55,0,76,0,57,0,67,0,6,0\n39,0,26,0,82,0,2,0,64,0,17,0\n12,0,88,0,16,0,65,0,59,0,60,0\n73,0,53,0,50,0,54,0,68,0,29,0\n30,0,61,0,69,0,72,0,48,0,20,0\n33,0,81,0,66,0,75,0,58,0,36,0\n27,0,14,0,32,0,45,0,99,0,52,0\n25,0,78,0,83,0,80,0,71,0,92,0\n46,0,85,0,90,0,3,0,67,0,8,0\n43,0,28,0,5,0,41,0,31,0,23,0\n44,0,59,0,39,0,42,0,87,0,21,0\n29,0,51,0,100,0,82,0,4,0,22,0\n70,0,76,0,96,0,54,0,17,0,88,0\n57,0,75,0,9,0,10,0,73,0,98,0\n99,0,2,0,48,0,84,0,37,0,68,0\n19,0,33,0,77,0,86,0,60,0,91,0\n74,0,50,0,58,0,52,0,79,0,61,0\n34,0,81,0,72,0,47,0,18,0,93,0\n38,0,56,0,26,0,36,0,14,0,63,0\n62,0,30,0,6,0,49,0,13,0,40,0\n94,0,95,0,97,0,64,0,16,0,80,0\n11,0,24,0,15,0,66,0,25,0,32,0\n89,0,27,0,55,0,1,0,69,0,65,0\n12,0,35,0,7,0,20,0,45,0,53,0\n"
  },
  {
    "path": "schedules/100_13.csv",
    "content": "28,0,96,0,29,0,10,0,32,0,33,0\n16,0,37,0,57,0,49,0,9,0,88,0\n25,0,1,0,40,0,72,0,68,0,100,0\n98,0,55,0,7,0,24,0,59,0,14,0\n82,0,60,0,17,0,3,0,69,0,27,0\n81,0,6,0,26,0,91,0,39,0,21,0\n87,0,23,0,11,0,93,0,86,0,30,0\n74,0,75,0,85,0,80,0,83,0,94,0\n73,0,19,0,36,0,58,0,76,0,15,0\n97,0,67,0,77,0,62,0,65,0,43,0\n35,0,90,0,41,0,71,0,52,0,31,0\n51,0,2,0,61,0,54,0,42,0,18,0\n53,0,45,0,38,0,95,0,78,0,63,0\n20,0,64,0,12,0,44,0,22,0,56,0\n99,0,50,0,48,0,47,0,46,0,89,0\n70,0,66,0,5,0,4,0,92,0,8,0\n79,0,34,0,69,0,13,0,84,0,98,0\n10,0,97,0,6,0,27,0,16,0,30,0\n41,0,65,0,85,0,29,0,39,0,17,0\n71,0,83,0,91,0,9,0,1,0,28,0\n33,0,15,0,43,0,78,0,38,0,55,0\n45,0,26,0,40,0,86,0,36,0,67,0\n37,0,99,0,88,0,52,0,94,0,87,0\n35,0,11,0,21,0,12,0,95,0,66,0\n22,0,51,0,90,0,58,0,100,0,92,0\n74,0,31,0,64,0,42,0,48,0,23,0\n19,0,68,0,80,0,5,0,46,0,3,0\n49,0,59,0,7,0,54,0,76,0,61,0\n24,0,96,0,82,0,18,0,34,0,63,0\n13,0,32,0,20,0,25,0,53,0,47,0\n70,0,60,0,62,0,75,0,93,0,72,0\n44,0,79,0,89,0,8,0,77,0,73,0\n84,0,2,0,57,0,81,0,4,0,14,0\n50,0,94,0,15,0,56,0,21,0,10,0\n51,1,92,0,68,0,69,1,31,0,33,0\n1,0,87,0,66,0,9,0,43,0,76,0\n52,0,5,0,91,0,86,0,58,0,59,0\n47,0,39,0,98,0,53,0,12,0,22,0\n40,0,78,0,18,0,19,0,37,0,11,0\n44,0,16,0,63,0,26,0,13,0,48,0\n90,0,27,0,23,0,45,0,25,0,89,0\n56,0,100,0,3,0,97,0,8,0,55,0\n36,0,61,0,84,0,41,0,28,0,62,0\n75,0,4,0,50,0,71,0,42,0,24,0\n54,0,7,0,73,0,99,0,38,0,96,0\n70,0,77,0,85,0,49,0,20,0,81,0\n82,0,29,0,30,0,72,0,88,0,80,0\n46,0,35,0,14,0,93,0,74,0,17,0\n34,0,65,0,64,0,83,0,60,0,2,0\n57,0,95,0,6,0,79,0,67,0,32,0\n56,0,89,0,84,0,33,0,87,0,91,0\n41,0,23,0,19,0,16,0,55,0,66,0\n59,0,53,0,71,0,21,0,73,0,3,0\n62,0,42,0,92,0,85,0,45,0,9,0\n70,0,96,0,22,0,26,0,30,0,78,0\n75,0,13,0,17,0,37,0,97,0,38,0\n20,0,93,0,1,0,82,0,2,0,48,0\n34,0,47,0,7,0,74,0,40,0,29,0\n46,0,76,0,32,0,31,0,90,0,4,0\n5,0,6,0,72,0,64,0,28,0,15,0\n86,0,35,0,12,0,77,0,57,0,24,0\n80,0,99,0,60,0,51,0,79,0,39,0\n25,0,81,0,61,0,50,0,58,0,95,0\n8,0,69,0,14,0,63,0,88,0,43,0\n10,0,36,0,54,0,100,0,11,0,83,0\n49,0,98,0,68,0,44,0,52,0,65,0\n18,0,94,0,38,0,67,0,27,0,20,0\n2,0,31,0,5,0,45,0,74,0,96,0\n22,0,75,0,16,0,35,0,15,0,82,0\n48,0,53,0,90,0,56,0,87,0,80,0\n89,0,66,0,37,0,81,0,72,0,24,0\n50,0,34,0,3,0,1,0,12,0,85,0\n86,0,9,0,97,0,46,0,84,0,95,0\n26,0,28,0,69,0,73,0,23,0,14,0\n17,0,78,0,88,0,42,0,100,0,6,0\n62,0,52,0,79,0,7,0,33,0,71,0\n63,0,58,0,39,0,40,0,32,0,49,0\n76,0,21,0,18,0,41,0,77,0,83,0\n43,0,36,0,30,0,57,0,98,0,92,0\n93,0,44,0,99,0,27,0,19,0,59,0\n29,0,67,0,8,0,60,0,11,0,61,0\n64,0,4,0,51,0,91,0,68,0,13,0\n55,0,54,0,47,0,65,0,70,0,94,0\n10,0,22,0,38,0,25,0,9,0,79,0\n15,0,39,0,96,0,89,0,86,0,88,0\n95,0,42,0,83,0,3,0,90,0,20,0\n100,0,75,0,81,0,30,0,63,0,41,0\n57,0,59,0,48,0,62,0,23,0,40,0\n71,0,44,0,32,0,72,0,11,0,85,0\n1,0,8,0,91,0,80,0,98,0,27,0\n47,0,66,0,94,0,97,0,14,0,51,0\n26,0,34,0,61,0,64,0,19,0,87,0\n60,0,6,0,35,0,50,0,18,0,7,0\n45,0,28,0,68,0,37,0,77,0,82,0\n25,0,84,0,21,0,65,0,99,0,92,0\n93,0,78,0,54,0,67,0,13,0,31,0\n29,0,46,0,49,0,36,0,69,0,56,0\n58,0,24,0,43,0,10,0,70,0,2,0\n55,0,52,0,76,0,53,0,17,0,5,0\n73,0,12,0,16,0,74,0,4,0,33,0\n50,0,97,0,59,0,11,0,80,0,26,0\n86,0,94,0,100,0,34,0,28,0,66,0\n77,0,91,0,32,0,38,0,23,0,88,0\n31,0,99,0,14,0,40,0,8,0,13,0\n25,0,87,0,98,0,41,0,6,0,45,0\n30,0,79,0,35,0,64,0,49,0,47,0\n9,0,17,0,2,0,19,0,7,0,56,0\n43,0,84,0,5,0,18,0,95,0,16,0\n21,0,42,0,55,0,44,0,36,0,82,0\n63,0,72,0,51,0,12,0,46,0,67,0\n20,0,78,0,58,0,89,0,75,0,65,0\n68,0,22,0,71,0,29,0,57,0,54,0\n62,0,10,0,90,0,69,0,39,0,74,0\n1,0,27,0,70,0,61,0,37,0,73,0\n52,0,96,0,3,0,15,0,92,0,81,0\n33,0,48,0,76,0,24,0,60,0,85,0\n93,0,53,0,40,0,4,0,83,0,84,0\n31,0,88,0,51,0,55,0,50,0,28,0\n14,0,82,0,87,0,95,0,100,0,49,0\n7,0,80,0,45,0,32,0,64,0,41,0\n25,0,94,0,29,0,63,0,2,0,35,0\n30,0,13,0,71,0,8,0,36,0,5,0\n97,0,15,0,12,0,90,0,79,0,70,0\n74,0,60,0,19,0,89,0,21,0,43,0\n18,0,47,0,85,0,91,0,57,0,93,0\n92,0,39,0,20,0,72,0,34,0,73,0\n65,0,42,0,11,0,33,0,1,0,22,0\n16,0,38,0,59,0,68,0,81,0,56,0\n10,0,98,0,23,0,4,0,17,0,67,0\n62,0,6,0,83,0,37,0,86,0,44,0\n48,0,9,0,75,0,27,0,54,0,52,0\n24,0,26,0,76,0,3,0,58,0,99,0\n61,0,77,0,46,0,53,0,96,0,66,0\n69,0,87,0,21,0,78,0,5,0,47,0\n41,0,49,0,34,0,8,0,51,0,93,0\n33,0,57,0,63,0,50,0,20,0,19,0\n7,0,28,0,67,0,97,0,22,0,89,0\n95,0,17,0,94,0,30,0,1,0,59,0\n55,0,83,0,92,0,48,0,35,0,32,0\n31,0,29,0,26,0,43,0,81,0,79,0\n76,0,80,0,44,0,25,0,96,0,16,0\n71,0,100,0,27,0,53,0,24,0,15,0\n77,0,69,0,2,0,6,0,75,0,3,0\n46,0,52,0,38,0,10,0,82,0,40,0\n54,0,45,0,84,0,88,0,12,0,58,0\n66,0,11,0,64,0,73,0,98,0,62,0\n86,0,78,0,99,0,68,0,90,0,85,0\n4,0,72,0,65,0,9,0,61,0,74,0\n36,0,42,0,14,0,60,0,91,0,37,0\n23,0,56,0,13,0,18,0,39,0,70,0\n96,0,69,0,71,0,48,0,20,0,97,0\n24,0,40,0,92,0,79,0,41,0,94,0\n10,0,57,0,81,0,34,0,53,0,75,0\n33,0,16,0,3,0,54,0,64,0,46,0\n80,0,86,0,73,0,17,0,63,0,22,0\n61,0,15,0,83,0,30,0,99,0,45,0\n85,0,67,0,58,0,87,0,68,0,55,0\n91,0,74,0,50,0,44,0,70,0,95,0\n47,0,2,0,27,0,28,0,11,0,76,0\n42,0,35,0,56,0,13,0,19,0,72,0\n90,0,21,0,77,0,14,0,29,0,1,0\n8,0,60,0,12,0,23,0,52,0,78,0\n59,0,88,0,66,0,36,0,65,0,18,0\n100,0,37,0,9,0,98,0,32,0,93,0\n43,0,39,0,4,0,25,0,7,0,82,0\n5,0,51,0,89,0,62,0,38,0,26,0\n49,0,31,0,22,0,6,0,84,0,94,0\n63,0,74,0,87,0,68,0,97,0,11,0\n13,0,57,0,27,0,83,0,58,0,46,0\n55,0,90,0,81,0,60,0,40,0,28,0\n67,0,88,0,33,0,3,0,44,0,35,0\n24,0,65,0,95,0,69,0,23,0,80,0\n72,0,98,0,14,0,50,0,76,0,78,0\n38,0,36,0,75,0,1,0,39,0,64,0\n2,0,49,0,8,0,21,0,15,0,62,0\n79,0,18,0,29,0,100,0,4,0,45,0\n53,0,19,0,86,0,92,0,54,0,82,0\n91,0,30,0,7,0,31,0,20,0,66,0\n26,0,93,0,25,0,17,0,71,0,77,0\n61,0,56,0,6,0,47,0,43,0,73,0\n37,0,85,0,59,0,84,0,51,0,96,0\n89,0,70,0,32,0,16,0,34,0,52,0\n5,0,10,0,99,0,41,0,12,0,42,0\n9,0,78,0,81,0,48,0,94,0,36,0\n86,0,64,0,69,0,1,0,18,0,55,0\n7,0,44,0,92,0,87,0,75,0,46,0\n65,0,3,0,28,0,93,0,79,0,63,0\n95,0,4,0,27,0,62,0,22,0,88,0\n24,0,17,0,11,0,91,0,90,0,49,0\n100,0,85,0,16,0,31,0,61,0,21,0\n23,0,20,0,43,0,37,0,35,0,54,0\n83,0,67,0,39,0,14,0,5,0,96,0\n47,0,72,0,45,0,10,0,59,0,8,0\n80,0,58,0,30,0,77,0,42,0,34,0\n74,0,52,0,25,0,57,0,56,0,51,0\n73,0,82,0,41,0,13,0,9,0,50,0\n66,0,60,0,32,0,26,0,15,0,68,0\n33,0,53,0,98,0,97,0,2,0,99,0\n48,0,29,0,19,0,70,0,84,0,38,0\n12,0,40,0,76,0,89,0,71,0,6,0\n96,0,64,0,93,0,90,0,43,0,94,0\n17,0,28,0,8,0,87,0,16,0,20,0\n79,0,21,0,72,0,86,0,23,0,75,0\n46,0,34,0,91,0,45,0,55,0,22,0\n88,0,92,0,1,0,49,0,26,0,10,0\n52,0,36,0,13,0,2,0,95,0,85,0\n41,0,58,0,4,0,60,0,44,0,38,0\n12,0,32,0,81,0,65,0,19,0,69,0\n9,0,11,0,70,0,53,0,6,0,51,0\n56,0,40,0,98,0,35,0,5,0,61,0\n42,0,67,0,68,0,84,0,47,0,76,0\n99,0,63,0,82,0,74,0,71,0,66,0\n33,0,50,0,54,0,27,0,77,0,39,0\n62,0,3,0,18,0,30,0,25,0,14,0\n97,0,24,0,73,0,78,0,29,0,83,0\n59,0,80,0,89,0,57,0,100,0,31,0\n37,0,15,0,51,0,48,0,7,0,69,0\n"
  },
  {
    "path": "schedules/100_14.csv",
    "content": "58,0,52,0,10,0,94,0,17,0,24,0\n20,0,81,0,61,0,21,0,26,0,6,0\n35,0,89,0,75,0,74,0,31,0,76,0\n78,0,48,0,12,0,49,0,38,0,66,0\n29,0,46,0,9,0,11,0,47,0,65,0\n71,0,4,0,60,0,23,0,91,0,2,0\n1,0,62,0,77,0,82,0,64,0,96,0\n69,0,43,0,57,0,86,0,28,0,50,0\n42,0,25,0,30,0,56,0,45,0,33,0\n98,0,92,0,14,0,59,0,39,0,90,0\n51,0,88,0,37,0,27,0,40,0,16,0\n54,0,87,0,97,0,44,0,7,0,85,0\n68,0,63,0,70,0,41,0,93,0,84,0\n79,0,34,0,67,0,83,0,80,0,18,0\n19,0,15,0,100,0,8,0,55,0,13,0\n3,0,32,0,72,0,36,0,5,0,22,0\n99,0,53,0,28,0,95,0,73,0,2,0\n6,0,52,0,86,0,91,0,56,0,65,0\n45,0,74,0,58,0,26,0,92,0,64,0\n54,0,57,0,1,0,12,0,20,0,11,0\n7,0,27,0,89,0,39,0,17,0,78,0\n9,0,82,0,49,0,93,0,43,0,83,0\n87,0,51,0,42,0,66,0,63,0,18,0\n61,0,41,0,34,0,4,0,24,0,47,0\n73,0,100,0,80,0,90,0,37,0,96,0\n70,0,62,0,76,0,15,0,94,0,40,0\n5,0,97,0,16,0,69,0,21,0,36,0\n98,0,99,0,32,0,30,0,81,0,13,0\n3,0,8,0,10,0,71,0,14,0,53,0\n19,0,31,0,35,0,77,0,67,0,44,0\n50,0,85,0,29,0,22,0,33,0,72,0\n79,0,48,0,84,0,55,0,46,0,23,0\n38,0,25,0,59,0,88,0,60,0,75,0\n95,0,20,0,39,0,68,0,93,0,94,0\n47,1,64,0,90,0,89,1,49,0,86,0\n57,1,82,0,5,0,80,1,92,0,34,0\n16,0,96,0,9,0,42,0,24,0,12,0\n11,0,13,0,4,0,58,0,18,0,35,0\n65,0,40,0,33,0,41,0,1,0,44,0\n63,0,36,0,91,0,99,0,81,0,83,0\n66,0,22,0,84,0,69,0,60,0,67,0\n27,0,10,0,15,0,52,0,75,0,26,0\n85,0,14,0,6,0,98,0,68,0,88,0\n71,0,79,0,77,0,30,0,95,0,70,0\n43,0,51,0,76,0,7,0,53,0,38,0\n21,0,2,0,45,0,17,0,8,0,46,0\n56,0,37,0,50,0,78,0,55,0,97,0\n54,0,100,0,48,0,74,0,61,0,29,0\n62,0,19,0,32,0,28,0,3,0,87,0\n25,0,73,0,72,0,31,0,59,0,23,0\n41,0,6,0,92,0,75,0,96,0,27,0\n36,0,60,0,68,0,11,0,40,0,86,0\n69,0,39,0,70,0,26,0,24,0,99,0\n57,0,85,0,93,0,13,0,51,0,79,0\n78,0,4,0,95,0,10,0,83,0,9,0\n67,0,53,0,91,0,56,0,100,0,46,0\n94,0,12,0,34,0,89,0,28,0,71,0\n8,0,22,0,82,0,37,0,98,0,47,0\n7,0,15,0,45,0,48,0,1,0,3,0\n66,0,25,0,61,0,35,0,64,0,73,0\n44,0,63,0,38,0,17,0,29,0,30,0\n55,0,54,0,58,0,81,0,59,0,62,0\n19,0,97,0,33,0,52,0,74,0,2,0\n87,0,23,0,43,0,14,0,80,0,16,0\n84,0,42,0,31,0,50,0,65,0,5,0\n72,0,88,0,18,0,20,0,77,0,90,0\n32,0,76,0,4,0,49,0,21,0,57,0\n40,0,100,0,26,0,9,0,71,0,66,0\n28,0,82,0,13,0,70,0,60,0,48,0\n96,0,15,0,44,0,95,0,86,0,58,0\n74,0,97,0,34,0,46,0,25,0,22,0\n16,0,89,0,91,0,8,0,38,0,11,0\n47,0,93,0,51,0,14,0,31,0,10,0\n43,0,99,0,36,0,79,0,35,0,1,0\n81,0,85,0,94,0,45,0,41,0,67,0\n21,0,24,0,37,0,92,0,18,0,29,0\n6,0,55,0,3,0,69,0,33,0,54,0\n2,0,12,0,65,0,27,0,72,0,63,0\n90,0,52,0,53,0,68,0,42,0,50,0\n64,0,5,0,78,0,98,0,59,0,87,0\n73,0,17,0,56,0,19,0,20,0,83,0\n30,0,61,0,49,0,80,0,88,0,7,0\n77,0,76,0,84,0,39,0,23,0,32,0\n62,0,22,0,16,0,75,0,91,0,45,0\n89,0,46,0,33,0,43,0,13,0,10,0\n37,0,31,0,85,0,34,0,70,0,3,0\n2,0,81,0,27,0,100,0,57,0,14,0\n93,0,60,0,96,0,78,0,72,0,21,0\n65,0,95,0,67,0,54,0,98,0,25,0\n55,0,17,0,40,0,82,0,61,0,18,0\n39,0,64,0,74,0,51,0,23,0,15,0\n69,0,83,0,4,0,30,0,53,0,62,0\n35,0,87,0,47,0,71,0,68,0,38,0\n8,0,1,0,92,0,88,0,9,0,84,0\n79,0,36,0,20,0,59,0,42,0,76,0\n90,0,44,0,75,0,99,0,66,0,11,0\n12,0,32,0,29,0,80,0,58,0,56,0\n19,0,7,0,86,0,26,0,63,0,5,0\n49,0,52,0,97,0,41,0,28,0,77,0\n48,0,50,0,24,0,6,0,73,0,94,0\n30,0,31,0,18,0,57,0,96,0,91,0\n89,0,15,0,95,0,84,0,4,0,92,0\n46,0,35,0,42,0,62,0,60,0,39,0\n20,0,65,0,69,0,47,0,78,0,45,0\n74,0,83,0,8,0,44,0,70,0,32,0\n37,0,12,0,14,0,61,0,19,0,79,0\n11,0,55,0,64,0,80,0,85,0,10,0\n49,0,59,0,17,0,71,0,22,0,86,0\n67,0,21,0,52,0,48,0,63,0,88,0\n98,0,97,0,56,0,51,0,94,0,1,0\n29,0,93,0,23,0,40,0,5,0,99,0\n100,0,28,0,43,0,68,0,25,0,6,0\n81,0,58,0,53,0,75,0,7,0,82,0\n34,0,90,0,9,0,36,0,38,0,33,0\n54,0,3,0,27,0,73,0,50,0,77,0\n2,0,26,0,16,0,41,0,13,0,76,0\n66,0,87,0,79,0,72,0,24,0,15,0\n52,0,83,0,94,0,14,0,35,0,96,0\n32,0,45,0,71,0,44,0,55,0,61,0\n59,0,6,0,64,0,37,0,67,0,4,0\n68,0,75,0,69,0,89,0,29,0,51,0\n57,0,65,0,10,0,100,0,7,0,70,0\n8,0,12,0,33,0,86,0,93,0,77,0\n85,0,46,0,39,0,28,0,40,0,49,0\n1,0,91,0,25,0,26,0,90,0,87,0\n80,0,66,0,3,0,92,0,63,0,76,0\n95,0,88,0,13,0,22,0,73,0,42,0\n72,0,56,0,48,0,34,0,47,0,16,0\n41,0,60,0,11,0,53,0,17,0,5,0\n21,0,9,0,58,0,99,0,27,0,31,0\n18,0,84,0,74,0,97,0,38,0,81,0\n24,0,20,0,62,0,43,0,98,0,2,0\n78,0,50,0,23,0,30,0,19,0,82,0\n36,0,66,0,46,0,54,0,93,0,37,0\n86,0,67,0,76,0,55,0,29,0,1,0\n33,0,61,0,32,0,75,0,95,0,59,0\n63,0,22,0,52,0,57,0,89,0,64,0\n11,0,45,0,79,0,87,0,34,0,27,0\n31,0,5,0,81,0,4,0,39,0,48,0\n56,0,44,0,49,0,69,0,18,0,3,0\n99,0,65,0,13,0,14,0,62,0,38,0\n53,0,36,0,16,0,19,0,6,0,74,0\n43,0,73,0,85,0,60,0,15,0,12,0\n26,0,78,0,68,0,77,0,2,0,80,0\n47,0,100,0,84,0,24,0,40,0,30,0\n91,0,42,0,54,0,21,0,82,0,10,0\n72,0,41,0,83,0,98,0,58,0,71,0\n96,0,97,0,88,0,17,0,35,0,70,0\n8,0,20,0,50,0,25,0,51,0,92,0\n90,0,28,0,94,0,23,0,7,0,9,0\n46,0,81,0,3,0,52,0,95,0,12,0\n34,0,39,0,45,0,66,0,13,0,29,0\n6,0,30,0,11,0,93,0,22,0,15,0\n68,0,37,0,91,0,54,0,76,0,44,0\n57,0,55,0,77,0,53,0,73,0,47,0\n41,0,87,0,88,0,99,0,56,0,89,0\n4,0,21,0,75,0,72,0,80,0,1,0\n17,0,25,0,14,0,9,0,69,0,32,0\n64,0,60,0,50,0,65,0,83,0,16,0\n18,0,59,0,26,0,82,0,84,0,85,0\n7,0,24,0,36,0,31,0,71,0,8,0\n78,0,62,0,43,0,74,0,67,0,90,0\n63,0,98,0,35,0,10,0,92,0,28,0\n23,0,86,0,70,0,61,0,42,0,27,0\n2,0,38,0,19,0,79,0,96,0,94,0\n100,0,49,0,33,0,58,0,5,0,51,0\n20,0,40,0,53,0,48,0,97,0,91,0\n82,0,25,0,29,0,15,0,41,0,16,0\n32,0,46,0,13,0,4,0,7,0,68,0\n24,0,65,0,74,0,57,0,59,0,3,0\n89,0,1,0,17,0,66,0,28,0,93,0\n26,0,62,0,73,0,34,0,44,0,8,0\n70,0,77,0,64,0,43,0,56,0,21,0\n38,0,92,0,94,0,72,0,86,0,55,0\n58,0,87,0,2,0,9,0,37,0,30,0\n5,0,83,0,23,0,12,0,6,0,88,0\n99,0,76,0,60,0,97,0,45,0,100,0\n80,0,51,0,95,0,52,0,36,0,48,0\n11,0,96,0,50,0,39,0,61,0,63,0\n75,0,42,0,71,0,85,0,19,0,67,0\n18,0,14,0,22,0,78,0,54,0,31,0\n69,0,10,0,40,0,90,0,81,0,79,0\n33,0,84,0,27,0,49,0,35,0,20,0\n98,0,44,0,23,0,47,0,89,0,21,0\n94,0,66,0,74,0,4,0,77,0,82,0\n8,0,95,0,60,0,57,0,29,0,87,0\n80,0,91,0,59,0,9,0,50,0,41,0\n30,0,55,0,34,0,39,0,65,0,43,0\n63,0,71,0,96,0,53,0,25,0,15,0\n10,0,68,0,18,0,12,0,99,0,45,0\n7,0,40,0,72,0,64,0,14,0,42,0\n27,0,19,0,98,0,76,0,46,0,69,0\n83,0,38,0,48,0,26,0,22,0,54,0\n75,0,5,0,86,0,20,0,13,0,37,0\n92,0,73,0,70,0,36,0,49,0,2,0\n93,0,24,0,90,0,85,0,56,0,35,0\n84,0,6,0,51,0,62,0,17,0,11,0\n100,0,16,0,31,0,32,0,1,0,52,0\n61,0,47,0,97,0,3,0,58,0,67,0\n81,0,78,0,33,0,88,0,79,0,28,0\n27,0,59,0,68,0,66,0,83,0,96,0\n38,0,41,0,37,0,57,0,45,0,23,0\n99,0,71,0,80,0,20,0,46,0,74,0\n90,0,63,0,56,0,8,0,54,0,5,0\n62,0,86,0,85,0,48,0,89,0,30,0\n39,0,9,0,35,0,72,0,6,0,70,0\n26,0,29,0,53,0,49,0,94,0,31,0\n81,0,92,0,67,0,16,0,17,0,33,0\n21,0,44,0,13,0,84,0,78,0,25,0\n79,0,75,0,3,0,60,0,100,0,98,0\n40,0,4,0,22,0,12,0,19,0,43,0\n55,0,28,0,24,0,91,0,51,0,64,0\n36,0,77,0,10,0,87,0,65,0,61,0\n11,0,82,0,14,0,76,0,95,0,97,0\n58,0,1,0,42,0,69,0,73,0,34,0\n47,0,15,0,2,0,88,0,50,0,32,0\n7,0,93,0,92,0,52,0,18,0,62,0\n89,0,79,0,54,0,45,0,53,0,9,0\n57,0,35,0,86,0,3,0,16,0,78,0\n60,0,5,0,80,0,44,0,27,0,94,0\n59,0,70,0,29,0,19,0,90,0,51,0\n68,0,30,0,12,0,31,0,64,0,97,0\n14,0,66,0,41,0,55,0,20,0,21,0\n23,0,96,0,4,0,56,0,26,0,36,0\n47,0,1,0,63,0,74,0,85,0,95,0\n93,0,76,0,73,0,71,0,81,0,65,0\n46,0,83,0,28,0,75,0,18,0,8,0\n43,0,72,0,61,0,84,0,69,0,52,0\n82,0,38,0,88,0,24,0,100,0,32,0\n15,0,17,0,77,0,98,0,91,0,34,0\n7,0,11,0,48,0,33,0,99,0,37,0\n50,0,67,0,49,0,13,0,87,0,40,0\n22,0,10,0,2,0,39,0,58,0,25,0\n6,0,47,0,57,0,42,0,89,0,80,0\n"
  },
  {
    "path": "schedules/100_2.csv",
    "content": "58,0,44,0,80,0,95,0,23,0,79,0\n88,0,17,0,70,0,30,0,68,0,43,0\n10,0,38,0,66,0,51,0,19,0,98,0\n20,0,67,0,40,0,21,0,25,0,63,0\n84,0,69,0,29,0,99,0,97,0,53,0\n48,0,42,0,100,0,60,0,41,0,46,0\n56,0,28,0,77,0,2,0,35,0,72,0\n14,0,15,0,6,0,1,0,16,0,34,0\n13,0,4,0,12,0,27,0,89,0,33,0\n32,0,90,0,3,0,18,0,73,0,94,0\n96,0,5,0,52,0,64,0,86,0,49,0\n7,0,50,0,76,0,8,0,82,0,71,0\n75,0,74,0,62,0,24,0,91,0,22,0\n65,0,45,0,59,0,39,0,92,0,26,0\n93,0,81,0,61,0,54,0,31,0,87,0\n47,0,9,0,57,0,11,0,37,0,83,0\n36,0,78,0,27,0,85,0,55,0,10,0\n29,0,21,0,58,0,12,0,18,0,28,0\n33,0,95,0,35,0,3,0,25,0,5,0\n13,0,100,0,34,0,69,0,76,0,70,0\n2,0,46,0,17,0,90,0,40,0,62,0\n59,0,97,0,89,0,96,0,66,0,67,0\n41,0,92,0,71,0,61,0,22,0,15,0\n45,0,20,0,23,0,81,0,73,0,56,0\n68,0,64,0,48,0,14,0,50,0,47,0\n65,0,63,0,74,0,4,0,88,0,87,0\n8,0,53,0,9,0,38,0,93,0,78,0\n1,0,36,0,24,0,84,0,79,0,43,0\n44,0,98,0,86,0,6,0,32,0,72,0\n60,0,30,0,91,0,99,0,83,0,51,0\n85,0,31,0,39,0,42,0,82,0,37,0\n94,0,11,0,19,0,80,0,52,0,7,0\n26,0,49,0,77,0,57,0,75,0,55,0\n54,0,59,1,76,1,16,0,63,1,58,1\n"
  },
  {
    "path": "schedules/100_3.csv",
    "content": "15,0,59,0,25,0,16,0,5,0,64,0\n73,0,90,0,52,0,30,0,39,0,67,0\n86,0,13,0,11,0,65,0,31,0,48,0\n60,0,63,0,45,0,35,0,38,0,95,0\n37,0,97,0,2,0,96,0,33,0,78,0\n24,0,18,0,70,0,49,0,93,0,34,0\n66,0,32,0,61,0,1,0,41,0,91,0\n88,0,58,0,71,0,20,0,29,0,92,0\n27,0,22,0,100,0,54,0,17,0,68,0\n36,0,8,0,14,0,87,0,4,0,6,0\n46,0,3,0,76,0,19,0,72,0,75,0\n51,0,77,0,12,0,50,0,40,0,82,0\n99,0,7,0,83,0,69,0,26,0,62,0\n98,0,74,0,94,0,47,0,23,0,80,0\n57,0,42,0,85,0,81,0,44,0,55,0\n43,0,79,0,89,0,9,0,53,0,56,0\n21,0,28,0,93,0,84,0,10,0,31,0\n49,0,17,0,58,0,25,0,60,0,61,0\n65,0,27,0,5,0,32,0,14,0,70,0\n78,0,20,0,35,0,66,0,50,0,86,0\n92,0,4,0,11,0,40,0,46,0,68,0\n48,0,69,0,96,0,63,0,3,0,51,0\n22,0,62,0,88,0,37,0,18,0,15,0\n41,0,72,0,56,0,42,0,45,0,74,0\n82,0,9,0,44,0,38,0,73,0,91,0\n55,0,59,0,75,0,13,0,90,0,43,0\n100,0,97,0,12,0,79,0,8,0,30,0\n85,0,64,0,95,0,28,0,36,0,7,0\n83,0,33,0,29,0,76,0,98,0,24,0\n71,0,21,0,23,0,52,0,16,0,57,0\n84,0,2,0,67,0,80,0,1,0,77,0\n54,0,53,0,10,0,19,0,94,0,99,0\n34,0,6,0,47,0,81,0,39,0,26,0\n87,0,51,0,17,0,89,0,11,0,55,0\n75,0,92,0,37,0,86,0,27,0,69,0\n40,0,58,0,42,0,95,0,14,0,43,0\n15,0,28,0,65,0,44,0,97,0,74,0\n57,0,82,0,8,0,70,0,76,0,13,0\n63,0,90,0,77,0,29,0,7,0,78,0\n66,0,59,0,99,0,21,0,72,0,12,0\n4,0,38,0,81,0,49,0,100,0,48,0\n45,0,1,0,24,0,3,0,89,0,73,0\n93,0,54,0,30,0,41,0,87,0,80,0\n31,0,68,0,26,0,56,0,2,0,85,0\n6,0,5,0,79,0,60,0,88,0,94,0\n96,0,22,0,35,0,53,0,83,0,71,0\n10,0,67,0,20,0,23,0,32,0,33,0\n16,0,18,0,46,0,84,0,61,0,39,0\n9,0,98,0,34,0,62,0,25,0,36,0\n19,0,64,0,91,0,50,0,47,0,52,0\n"
  },
  {
    "path": "schedules/100_4.csv",
    "content": "11,0,47,0,34,0,82,0,56,0,25,0\n51,0,80,0,50,0,1,0,4,0,63,0\n86,0,37,0,100,0,89,0,72,0,39,0\n2,0,9,0,29,0,92,0,3,0,52,0\n20,0,71,0,99,0,35,0,85,0,18,0\n94,0,13,0,65,0,22,0,95,0,59,0\n90,0,23,0,93,0,10,0,27,0,44,0\n98,0,70,0,96,0,28,0,61,0,84,0\n8,0,74,0,91,0,75,0,79,0,68,0\n53,0,19,0,62,0,41,0,69,0,43,0\n17,0,14,0,88,0,5,0,54,0,55,0\n16,0,32,0,66,0,38,0,7,0,31,0\n40,0,76,0,48,0,46,0,64,0,97,0\n36,0,78,0,12,0,81,0,26,0,67,0\n45,0,58,0,15,0,49,0,24,0,42,0\n57,0,73,0,6,0,60,0,83,0,21,0\n33,0,87,0,84,0,77,0,30,0,2,0\n13,0,75,0,72,0,10,0,70,0,62,0\n90,0,94,0,39,0,14,0,28,0,80,0\n41,0,92,0,66,0,86,0,20,0,91,0\n68,0,85,0,89,0,19,0,31,0,34,0\n82,0,93,0,81,0,76,0,29,0,51,0\n64,0,7,0,47,0,63,0,23,0,59,0\n18,0,79,0,12,0,97,0,37,0,16,0\n73,0,40,0,35,0,52,0,87,0,78,0\n83,0,99,0,38,0,9,0,36,0,55,0\n27,0,67,0,1,0,69,0,32,0,48,0\n3,0,74,0,54,0,58,0,65,0,56,0\n60,0,42,0,11,0,4,0,33,0,98,0\n30,0,15,0,95,0,61,0,57,0,50,0\n25,0,24,0,53,0,71,0,88,0,6,0\n44,0,26,0,45,0,8,0,5,0,43,0\n22,0,17,0,77,0,96,0,21,0,46,0\n100,0,99,0,52,0,49,0,76,0,90,0\n31,1,20,0,81,0,80,1,83,0,27,0\n70,0,55,0,58,0,78,0,32,0,51,0\n62,0,9,0,73,0,48,0,33,0,86,0\n74,0,57,0,85,0,13,0,42,0,40,0\n4,0,64,0,12,0,88,0,35,0,66,0\n7,0,98,0,56,0,94,0,19,0,15,0\n61,0,36,0,43,0,6,0,68,0,17,0\n28,0,18,0,5,0,2,0,47,0,60,0\n3,0,95,0,75,0,45,0,14,0,97,0\n41,0,82,0,72,0,77,0,1,0,23,0\n10,0,100,0,54,0,79,0,24,0,21,0\n59,0,37,0,44,0,53,0,67,0,46,0\n30,0,49,0,91,0,39,0,25,0,96,0\n50,0,11,0,84,0,22,0,8,0,29,0\n89,0,87,0,92,0,16,0,93,0,26,0\n34,0,69,0,65,0,38,0,71,0,63,0\n80,0,42,0,62,0,6,0,56,0,12,0\n2,0,88,0,23,0,83,0,95,0,70,0\n51,0,68,0,77,0,100,0,98,0,40,0\n37,0,21,0,32,0,85,0,64,0,45,0\n78,0,27,0,28,0,99,0,30,0,41,0\n31,0,72,0,25,0,50,0,43,0,3,0\n84,0,4,0,59,0,81,0,52,0,17,0\n5,0,1,0,79,0,22,0,61,0,66,0\n93,0,8,0,53,0,57,0,9,0,20,0\n44,0,24,0,48,0,16,0,35,0,11,0\n10,0,69,0,92,0,14,0,18,0,15,0\n55,0,34,0,67,0,86,0,75,0,87,0\n60,0,89,0,63,0,13,0,91,0,76,0\n46,0,26,0,29,0,94,0,74,0,73,0\n58,0,97,0,39,0,38,0,82,0,19,0\n36,0,96,0,71,0,90,0,7,0,54,0\n33,0,49,0,31,0,47,0,65,0,80,0\n"
  },
  {
    "path": "schedules/100_5.csv",
    "content": "64,0,13,0,1,0,70,0,14,0,33,0\n22,0,72,0,53,0,36,0,92,0,71,0\n74,0,42,0,7,0,12,0,28,0,68,0\n96,0,11,0,51,0,89,0,77,0,5,0\n18,0,26,0,34,0,57,0,87,0,62,0\n80,0,86,0,2,0,17,0,6,0,27,0\n61,0,54,0,49,0,40,0,20,0,88,0\n21,0,81,0,90,0,97,0,52,0,93,0\n32,0,78,0,30,0,67,0,75,0,16,0\n3,0,46,0,10,0,8,0,47,0,37,0\n50,0,85,0,95,0,60,0,82,0,73,0\n65,0,48,0,59,0,100,0,76,0,24,0\n25,0,98,0,66,0,44,0,94,0,63,0\n43,0,23,0,79,0,55,0,58,0,19,0\n45,0,83,0,56,0,39,0,41,0,9,0\n35,0,29,0,69,0,91,0,99,0,4,0\n84,0,15,0,62,0,38,0,31,0,68,0\n89,0,13,0,88,0,78,0,26,0,71,0\n74,0,53,0,64,0,85,0,52,0,6,0\n65,0,60,0,75,0,47,0,57,0,1,0\n14,0,97,0,61,0,59,0,44,0,10,0\n28,0,93,0,79,0,72,0,16,0,54,0\n63,0,67,0,43,0,90,0,3,0,50,0\n45,0,95,0,4,0,27,0,42,0,49,0\n7,0,8,0,58,0,29,0,39,0,94,0\n35,0,12,0,5,0,32,0,56,0,15,0\n87,0,73,0,37,0,66,0,20,0,83,0\n24,0,46,0,55,0,9,0,92,0,25,0\n38,0,100,0,23,0,2,0,11,0,69,0\n41,0,99,0,77,0,98,0,30,0,80,0\n19,0,70,0,91,0,40,0,18,0,48,0\n31,0,21,0,76,0,82,0,36,0,33,0\n84,0,34,0,81,0,96,0,22,0,86,0\n17,0,50,0,28,0,51,0,52,0,4,0\n6,1,66,0,71,0,12,1,1,0,39,0\n94,1,78,0,37,0,45,1,59,0,79,0\n10,0,87,0,49,0,53,0,32,0,100,0\n43,0,42,0,20,0,85,0,5,0,72,0\n29,0,70,0,57,0,27,0,41,0,3,0\n13,0,60,0,97,0,76,0,69,0,58,0\n15,0,26,0,86,0,64,0,93,0,24,0\n19,0,80,0,65,0,44,0,83,0,89,0\n61,0,98,0,51,0,31,0,74,0,23,0\n11,0,68,0,82,0,34,0,8,0,75,0\n77,0,88,0,22,0,46,0,90,0,17,0\n35,0,36,0,73,0,48,0,7,0,25,0\n47,0,14,0,96,0,91,0,21,0,62,0\n84,0,2,0,9,0,95,0,67,0,99,0\n30,0,38,0,63,0,54,0,18,0,92,0\n56,0,33,0,40,0,81,0,16,0,55,0\n5,0,76,0,86,0,94,0,3,0,1,0\n71,0,68,0,10,0,51,0,20,0,45,0\n12,0,57,0,77,0,64,0,72,0,19,0\n8,0,98,0,4,0,32,0,88,0,73,0\n80,0,39,0,85,0,35,0,96,0,97,0\n78,0,93,0,36,0,74,0,70,0,50,0\n67,0,82,0,52,0,65,0,42,0,18,0\n54,0,44,0,58,0,56,0,75,0,37,0\n59,0,31,0,91,0,81,0,25,0,13,0\n22,0,16,0,7,0,62,0,95,0,11,0\n27,0,63,0,46,0,14,0,53,0,79,0\n49,0,24,0,34,0,38,0,47,0,29,0\n100,0,40,0,21,0,30,0,28,0,66,0\n6,0,26,0,43,0,69,0,9,0,61,0\n41,0,92,0,15,0,2,0,89,0,87,0\n90,0,83,0,33,0,23,0,84,0,60,0\n55,0,17,0,20,0,48,0,99,0,78,0\n44,0,1,0,91,0,22,0,82,0,45,0\n85,0,98,0,57,0,93,0,13,0,10,0\n54,0,97,0,71,0,86,0,7,0,31,0\n94,0,24,0,74,0,19,0,95,0,35,0\n11,0,72,0,56,0,6,0,46,0,73,0\n12,0,29,0,50,0,26,0,96,0,30,0\n18,0,88,0,2,0,81,0,83,0,43,0\n62,0,92,0,4,0,23,0,80,0,67,0\n89,0,99,0,16,0,42,0,64,0,63,0\n14,0,37,0,28,0,49,0,41,0,65,0\n33,0,9,0,79,0,51,0,87,0,47,0\n3,0,25,0,58,0,77,0,68,0,100,0\n75,0,17,0,36,0,5,0,66,0,59,0\n61,0,27,0,52,0,8,0,38,0,60,0\n69,0,32,0,55,0,84,0,70,0,21,0\n39,0,76,0,40,0,53,0,15,0,34,0\n48,0,6,0,45,0,90,0,12,0,94,0\n"
  },
  {
    "path": "schedules/100_6.csv",
    "content": "25,0,90,0,26,0,62,0,80,0,97,0\n54,0,27,0,52,0,100,0,20,0,1,0\n79,0,74,0,76,0,34,0,91,0,30,0\n31,0,7,0,44,0,24,0,32,0,61,0\n98,0,10,0,83,0,45,0,12,0,50,0\n71,0,29,0,60,0,39,0,94,0,48,0\n13,0,17,0,70,0,89,0,38,0,9,0\n69,0,77,0,16,0,33,0,96,0,41,0\n64,0,57,0,63,0,53,0,56,0,28,0\n42,0,73,0,5,0,88,0,87,0,93,0\n85,0,3,0,4,0,8,0,18,0,14,0\n72,0,37,0,46,0,15,0,84,0,6,0\n23,0,36,0,22,0,65,0,75,0,82,0\n95,0,92,0,35,0,55,0,21,0,59,0\n99,0,43,0,81,0,86,0,49,0,2,0\n19,0,68,0,11,0,58,0,40,0,66,0\n51,0,67,0,45,0,47,0,78,0,64,0\n7,0,93,0,69,0,70,0,62,0,83,0\n80,0,1,0,76,0,77,0,9,0,24,0\n61,0,79,0,71,0,13,0,98,0,46,0\n5,0,74,0,44,0,38,0,54,0,18,0\n25,0,55,0,32,0,8,0,6,0,63,0\n28,0,39,0,59,0,87,0,26,0,52,0\n88,0,48,0,22,0,95,0,19,0,72,0\n57,0,49,0,94,0,51,0,30,0,65,0\n56,0,41,0,4,0,67,0,11,0,81,0\n75,0,84,0,34,0,17,0,3,0,16,0\n35,0,20,0,43,0,89,0,50,0,31,0\n40,0,23,0,100,0,21,0,78,0,33,0\n47,0,42,0,86,0,82,0,90,0,92,0\n97,0,14,0,96,0,27,0,60,0,53,0\n29,0,2,0,15,0,73,0,68,0,85,0\n66,0,37,0,91,0,12,0,99,0,36,0\n58,0,70,0,22,0,10,0,44,0,4,0\n3,0,69,0,64,0,55,0,71,0,76,0\n43,0,62,0,28,0,74,0,19,0,8,0\n67,0,38,0,72,0,61,0,35,0,87,0\n32,0,92,0,11,0,77,0,98,0,39,0\n33,0,57,0,20,0,9,0,60,0,26,0\n89,0,78,0,95,0,68,0,82,0,96,0\n18,0,17,0,73,0,56,0,59,0,66,0\n99,0,52,0,50,0,40,0,34,0,42,0\n97,0,86,0,51,0,91,0,100,0,46,0\n47,0,80,0,10,0,23,0,7,0,88,0\n31,0,75,0,79,0,94,0,15,0,81,0\n45,0,1,0,58,0,84,0,29,0,30,0\n90,0,83,0,49,0,63,0,14,0,24,0\n5,0,27,0,25,0,41,0,12,0,21,0\n2,0,65,0,93,0,16,0,37,0,53,0\n13,0,36,0,6,0,48,0,54,0,85,0\n82,0,17,0,19,0,98,0,76,0,4,0\n95,0,97,0,33,0,43,0,66,0,39,0\n26,0,94,0,55,0,96,0,100,0,10,0\n50,0,87,0,91,0,15,0,70,0,23,0\n62,0,63,0,60,0,67,0,18,0,52,0\n64,0,86,0,35,0,84,0,32,0,14,0\n74,0,77,0,22,0,71,0,81,0,45,0\n36,0,49,0,89,0,58,0,46,0,73,0\n65,0,85,0,78,0,72,0,42,0,41,0\n2,0,40,0,9,0,51,0,25,0,56,0\n12,0,8,0,92,0,69,0,30,0,61,0\n53,0,5,0,20,0,90,0,13,0,7,0\n24,0,54,0,21,0,28,0,16,0,29,0\n79,0,80,0,48,0,37,0,83,0,57,0\n3,0,59,0,1,0,68,0,31,0,99,0\n47,0,34,0,11,0,38,0,6,0,93,0\n88,0,27,0,63,0,75,0,44,0,43,0\n26,0,73,0,40,0,91,0,45,0,32,0\n39,0,46,0,78,0,55,0,17,0,22,0\n51,0,70,0,41,0,84,0,95,0,74,0\n7,0,66,0,4,0,54,0,92,0,96,0\n30,0,89,0,24,0,5,0,15,0,62,0\n56,0,33,0,87,0,49,0,3,0,13,0\n21,0,61,0,65,0,90,0,48,0,64,0\n71,0,97,0,44,0,1,0,42,0,37,0\n79,0,72,0,28,0,47,0,2,0,20,0\n88,0,36,0,14,0,76,0,11,0,50,0\n29,0,6,0,31,0,52,0,77,0,12,0\n94,0,68,0,35,0,93,0,18,0,9,0\n38,0,16,0,83,0,25,0,60,0,99,0\n100,0,59,0,82,0,85,0,80,0,53,0\n58,0,67,0,98,0,86,0,75,0,8,0\n81,0,19,0,57,0,27,0,69,0,10,0\n23,0,45,0,2,0,34,0,46,0,41,0\n39,0,21,0,3,0,89,0,63,0,7,0\n26,0,24,0,92,0,78,0,36,0,70,0\n6,0,18,0,88,0,97,0,64,0,79,0\n96,0,37,0,11,0,74,0,61,0,73,0\n100,0,30,0,17,0,77,0,83,0,43,0\n95,0,9,0,99,0,47,0,5,0,58,0\n20,0,98,0,84,0,69,0,48,0,25,0\n15,0,53,0,54,0,71,0,40,0,35,0\n32,0,67,0,42,0,59,0,19,0,49,0\n72,0,82,0,50,0,1,0,93,0,57,0\n60,0,90,0,91,0,85,0,10,0,75,0\n8,0,56,0,38,0,76,0,23,0,29,0\n51,0,16,0,66,0,22,0,87,0,62,0\n12,0,14,0,81,0,68,0,28,0,33,0\n31,0,55,0,34,0,4,0,65,0,27,0\n52,0,13,0,44,0,80,0,86,0,94,0\n"
  },
  {
    "path": "schedules/100_7.csv",
    "content": "22,0,72,0,93,0,76,0,66,0,36,0\n3,0,39,0,33,0,26,0,99,0,74,0\n7,0,38,0,40,0,37,0,32,0,82,0\n77,0,57,0,83,0,42,0,64,0,80,0\n69,0,11,0,18,0,12,0,46,0,97,0\n28,0,65,0,73,0,9,0,98,0,17,0\n29,0,49,0,43,0,92,0,51,0,8,0\n58,0,53,0,4,0,30,0,20,0,5,0\n47,0,54,0,24,0,87,0,55,0,94,0\n44,0,48,0,60,0,88,0,70,0,91,0\n35,0,15,0,78,0,67,0,21,0,1,0\n71,0,79,0,50,0,62,0,81,0,41,0\n25,0,2,0,14,0,23,0,27,0,89,0\n59,0,10,0,96,0,31,0,86,0,19,0\n95,0,16,0,100,0,75,0,68,0,90,0\n61,0,56,0,63,0,45,0,85,0,84,0\n52,0,13,0,87,0,34,0,6,0,43,0\n5,0,40,0,91,0,24,0,8,0,57,0\n7,0,55,0,35,0,51,0,12,0,28,0\n83,0,50,0,70,0,9,0,1,0,69,0\n32,0,67,0,73,0,29,0,77,0,71,0\n94,0,25,0,36,0,37,0,3,0,18,0\n10,0,2,0,64,0,11,0,90,0,26,0\n41,0,14,0,92,0,84,0,72,0,46,0\n62,0,45,0,19,0,4,0,54,0,75,0\n23,0,48,0,13,0,80,0,65,0,49,0\n93,0,34,0,59,0,78,0,100,0,85,0\n16,0,96,0,76,0,20,0,27,0,39,0\n97,0,56,0,68,0,15,0,30,0,66,0\n60,0,42,0,86,0,52,0,38,0,89,0\n88,0,63,0,95,0,74,0,22,0,98,0\n79,0,33,0,31,0,17,0,44,0,82,0\n6,0,81,0,21,0,58,0,61,0,99,0\n53,0,1,0,84,0,47,0,40,0,18,0\n12,1,9,0,19,0,72,1,48,0,71,0\n62,0,28,0,13,0,29,0,93,0,16,0\n3,0,4,0,85,0,50,0,76,0,10,0\n66,0,86,0,37,0,75,0,8,0,20,0\n60,0,23,0,83,0,35,0,43,0,26,0\n64,0,39,0,69,0,78,0,54,0,44,0\n49,0,70,0,79,0,100,0,96,0,74,0\n6,0,45,0,55,0,95,0,80,0,14,0\n77,0,34,0,98,0,47,0,21,0,68,0\n36,0,58,0,17,0,52,0,67,0,2,0\n7,0,57,0,30,0,33,0,61,0,41,0\n31,0,99,0,32,0,90,0,27,0,22,0\n97,0,25,0,65,0,92,0,24,0,88,0\n51,0,46,0,15,0,5,0,94,0,42,0\n91,0,73,0,38,0,56,0,81,0,11,0\n87,0,82,0,89,0,63,0,59,0,53,0\n28,0,76,0,40,0,49,0,83,0,34,0\n12,0,3,0,54,0,98,0,86,0,70,0\n30,0,26,0,93,0,9,0,44,0,96,0\n74,0,80,0,67,0,4,0,31,0,18,0\n72,0,100,0,52,0,65,0,50,0,77,0\n27,0,95,0,84,0,69,0,5,0,35,0\n85,0,24,0,17,0,6,0,46,0,37,0\n94,0,91,0,92,0,58,0,71,0,7,0\n29,0,38,0,23,0,22,0,21,0,10,0\n14,0,73,0,47,0,88,0,36,0,64,0\n11,0,43,0,89,0,15,0,79,0,32,0\n97,0,90,0,39,0,53,0,57,0,51,0\n1,0,60,0,99,0,16,0,66,0,59,0\n48,0,56,0,41,0,82,0,75,0,2,0\n87,0,81,0,8,0,25,0,45,0,68,0\n20,0,42,0,62,0,63,0,78,0,33,0\n55,0,19,0,98,0,61,0,13,0,83,0\n74,0,9,0,5,0,6,0,23,0,77,0\n37,0,21,0,84,0,91,0,64,0,100,0\n53,0,17,0,92,0,50,0,11,0,93,0\n24,0,52,0,44,0,16,0,51,0,73,0\n36,0,75,0,27,0,80,0,97,0,28,0\n89,0,85,0,54,0,81,0,65,0,7,0\n57,0,26,0,79,0,87,0,14,0,29,0\n39,0,25,0,58,0,32,0,47,0,86,0\n71,0,2,0,99,0,30,0,49,0,78,0\n3,0,42,0,41,0,45,0,1,0,31,0\n43,0,63,0,67,0,90,0,40,0,72,0\n61,0,48,0,96,0,38,0,62,0,94,0\n35,0,82,0,68,0,76,0,88,0,13,0\n34,0,18,0,10,0,15,0,20,0,55,0\n22,0,69,0,8,0,60,0,56,0,19,0\n33,0,66,0,4,0,46,0,95,0,70,0\n59,0,75,0,65,0,12,0,6,0,84,0\n86,0,78,0,27,0,57,0,92,0,74,0\n71,0,28,0,31,0,39,0,23,0,37,0\n98,0,91,0,49,0,25,0,42,0,85,0\n80,0,32,0,21,0,50,0,44,0,2,0\n5,0,82,0,61,0,3,0,73,0,97,0\n76,0,8,0,52,0,63,0,99,0,54,0\n72,0,30,0,81,0,18,0,60,0,29,0\n33,0,96,0,45,0,83,0,67,0,11,0\n64,0,12,0,89,0,66,0,62,0,24,0\n95,0,15,0,47,0,59,0,41,0,13,0\n79,0,53,0,88,0,56,0,7,0,16,0\n46,0,26,0,34,0,19,0,36,0,38,0\n51,0,68,0,10,0,93,0,69,0,48,0\n94,0,70,0,35,0,20,0,40,0,14,0\n1,0,77,0,90,0,87,0,17,0,4,0\n55,0,100,0,22,0,9,0,43,0,58,0\n44,0,98,0,67,0,76,0,97,0,23,0\n82,0,99,0,45,0,86,0,72,0,64,0\n12,0,83,0,78,0,91,0,95,0,32,0\n37,0,74,0,19,0,53,0,65,0,42,0\n3,0,27,0,46,0,62,0,7,0,68,0\n66,0,5,0,18,0,85,0,39,0,14,0\n50,0,31,0,75,0,60,0,34,0,94,0\n71,0,63,0,24,0,15,0,100,0,26,0\n48,0,22,0,30,0,25,0,35,0,73,0\n1,0,92,0,10,0,52,0,79,0,61,0\n51,0,13,0,58,0,96,0,54,0,84,0\n89,0,77,0,56,0,40,0,93,0,33,0\n4,0,8,0,16,0,2,0,38,0,6,0\n81,0,47,0,70,0,43,0,28,0,57,0\n11,0,20,0,80,0,87,0,9,0,41,0\n90,0,69,0,29,0,36,0,55,0,59,0\n21,0,88,0,72,0,17,0,49,0,12,0\n"
  },
  {
    "path": "schedules/100_8.csv",
    "content": "57,0,81,0,2,0,82,0,80,0,35,0\n20,0,96,0,59,0,12,0,76,0,45,0\n74,0,31,0,5,0,8,0,87,0,69,0\n48,0,64,0,40,0,86,0,16,0,67,0\n19,0,55,0,75,0,100,0,17,0,32,0\n60,0,43,0,62,0,41,0,14,0,21,0\n29,0,53,0,72,0,24,0,97,0,70,0\n95,0,4,0,36,0,66,0,3,0,63,0\n34,0,84,0,51,0,27,0,58,0,44,0\n83,0,1,0,28,0,77,0,42,0,39,0\n7,0,61,0,10,0,46,0,71,0,49,0\n30,0,38,0,50,0,52,0,11,0,54,0\n13,0,88,0,89,0,23,0,33,0,65,0\n98,0,9,0,22,0,93,0,37,0,56,0\n99,0,79,0,90,0,6,0,91,0,25,0\n15,0,92,0,78,0,47,0,68,0,18,0\n85,0,94,0,59,0,73,0,26,0,84,0\n58,0,80,0,75,0,5,0,36,0,42,0\n67,0,7,0,81,0,70,0,3,0,20,0\n61,0,41,0,54,0,1,0,64,0,74,0\n48,0,65,0,44,0,43,0,71,0,77,0\n72,0,35,0,8,0,96,0,38,0,63,0\n55,0,30,0,95,0,53,0,6,0,89,0\n4,0,28,0,68,0,9,0,19,0,2,0\n12,0,57,0,78,0,37,0,23,0,40,0\n31,0,76,0,66,0,60,0,15,0,13,0\n83,0,93,0,100,0,94,0,47,0,82,0\n29,0,26,0,87,0,92,0,16,0,46,0\n18,0,45,0,39,0,99,0,97,0,56,0\n79,0,51,0,49,0,33,0,52,0,85,0\n22,0,32,0,10,0,27,0,25,0,69,0\n11,0,86,0,73,0,21,0,98,0,90,0\n17,0,91,0,24,0,62,0,88,0,50,0\n14,0,61,0,59,0,34,0,70,0,95,0\n78,1,84,0,63,0,48,1,42,0,81,0\n28,1,3,0,43,0,100,1,72,0,31,0\n87,0,83,0,71,0,41,0,19,0,45,0\n46,0,12,0,68,0,55,0,51,0,54,0\n26,0,7,0,74,0,56,0,36,0,77,0\n38,0,57,0,20,0,29,0,18,0,89,0\n10,0,16,0,96,0,62,0,13,0,4,0\n25,0,33,0,40,0,30,0,17,0,2,0\n58,0,23,0,21,0,76,0,8,0,22,0\n32,0,86,0,34,0,37,0,85,0,91,0\n67,0,60,0,99,0,94,0,24,0,52,0\n9,0,15,0,82,0,14,0,6,0,50,0\n27,0,39,0,90,0,53,0,47,0,5,0\n66,0,44,0,93,0,79,0,11,0,80,0\n88,0,97,0,98,0,1,0,69,0,35,0\n92,0,49,0,73,0,75,0,65,0,64,0\n13,0,2,0,45,0,8,0,43,0,70,0\n33,0,21,0,87,0,84,0,18,0,96,0\n23,0,20,0,34,0,4,0,24,0,74,0\n58,0,57,0,6,0,71,0,17,0,60,0\n52,0,41,0,77,0,63,0,82,0,29,0\n59,0,7,0,42,0,62,0,100,0,22,0\n15,0,28,0,12,0,10,0,91,0,67,0\n94,0,46,0,97,0,90,0,14,0,30,0\n53,0,92,0,69,0,40,0,76,0,54,0\n16,0,85,0,36,0,98,0,27,0,72,0\n32,0,38,0,3,0,64,0,39,0,93,0\n65,0,47,0,81,0,1,0,56,0,11,0\n31,0,78,0,55,0,83,0,79,0,9,0\n89,0,37,0,73,0,61,0,48,0,19,0\n51,0,88,0,25,0,26,0,86,0,80,0\n49,0,50,0,68,0,44,0,95,0,5,0\n35,0,75,0,23,0,66,0,99,0,77,0\n82,0,18,0,17,0,8,0,59,0,90,0\n29,0,3,0,76,0,2,0,71,0,85,0\n62,0,94,0,27,0,38,0,92,0,70,0\n63,0,13,0,20,0,100,0,97,0,64,0\n32,0,45,0,46,0,4,0,65,0,31,0\n43,0,93,0,73,0,57,0,87,0,53,0\n44,0,96,0,52,0,6,0,19,0,39,0\n24,0,80,0,15,0,49,0,21,0,55,0\n22,0,51,0,91,0,81,0,75,0,60,0\n5,0,67,0,9,0,41,0,35,0,26,0\n12,0,98,0,25,0,50,0,47,0,48,0\n11,0,42,0,95,0,72,0,37,0,69,0\n1,0,14,0,40,0,10,0,84,0,68,0\n86,0,61,0,33,0,78,0,99,0,36,0\n66,0,89,0,54,0,34,0,7,0,28,0\n16,0,79,0,30,0,88,0,74,0,58,0\n56,0,75,0,62,0,83,0,3,0,57,0\n76,0,65,0,18,0,93,0,27,0,6,0\n94,0,53,0,48,0,41,0,96,0,32,0\n46,0,77,0,21,0,72,0,19,0,67,0\n80,0,95,0,23,0,9,0,39,0,87,0\n100,0,69,0,90,0,61,0,81,0,15,0\n49,0,8,0,34,0,26,0,11,0,78,0\n10,0,50,0,97,0,42,0,92,0,86,0\n45,0,36,0,37,0,54,0,84,0,88,0\n85,0,35,0,24,0,31,0,40,0,22,0\n38,0,82,0,25,0,13,0,28,0,58,0\n4,0,1,0,52,0,59,0,5,0,89,0\n68,0,71,0,16,0,66,0,20,0,33,0\n47,0,55,0,64,0,7,0,2,0,91,0\n30,0,83,0,70,0,73,0,44,0,60,0\n79,0,17,0,56,0,43,0,29,0,12,0\n99,0,98,0,14,0,74,0,51,0,63,0\n11,0,24,0,76,0,9,0,32,0,61,0\n53,0,26,0,19,0,10,0,58,0,65,0\n62,0,5,0,46,0,93,0,25,0,78,0\n3,0,96,0,77,0,34,0,97,0,80,0\n48,0,52,0,91,0,69,0,45,0,57,0\n27,0,95,0,54,0,86,0,82,0,20,0\n90,0,28,0,60,0,55,0,40,0,36,0\n73,0,100,0,6,0,68,0,38,0,23,0\n2,0,50,0,1,0,67,0,63,0,75,0\n51,0,17,0,42,0,89,0,94,0,16,0\n56,0,70,0,4,0,49,0,35,0,87,0\n81,0,43,0,37,0,39,0,74,0,33,0\n71,0,84,0,12,0,31,0,99,0,64,0\n47,0,29,0,44,0,88,0,21,0,59,0\n13,0,98,0,41,0,7,0,30,0,18,0\n66,0,8,0,14,0,83,0,85,0,92,0\n22,0,72,0,20,0,79,0,15,0,48,0\n36,0,67,0,11,0,82,0,96,0,68,0\n24,0,27,0,45,0,73,0,3,0,1,0\n55,0,94,0,87,0,50,0,76,0,37,0\n70,0,74,0,86,0,28,0,57,0,46,0\n71,0,54,0,56,0,90,0,78,0,32,0\n77,0,53,0,60,0,59,0,25,0,49,0\n64,0,33,0,42,0,98,0,4,0,44,0\n19,0,40,0,47,0,38,0,66,0,51,0\n41,0,65,0,100,0,2,0,34,0,12,0\n18,0,72,0,58,0,62,0,52,0,61,0\n21,0,35,0,83,0,13,0,95,0,91,0\n88,0,85,0,99,0,81,0,9,0,10,0\n84,0,29,0,93,0,15,0,8,0,30,0\n39,0,89,0,69,0,75,0,26,0,79,0\n5,0,97,0,6,0,22,0,16,0,43,0\n92,0,31,0,63,0,17,0,23,0,7,0\n80,0,78,0,100,0,14,0,48,0,28,0\n"
  },
  {
    "path": "schedules/100_9.csv",
    "content": "45,0,20,0,86,0,91,0,6,0,34,0\n56,0,43,0,67,0,31,0,98,0,3,0\n74,0,97,0,95,0,60,0,4,0,69,0\n18,0,89,0,78,0,10,0,88,0,36,0\n13,0,22,0,5,0,17,0,7,0,96,0\n32,0,65,0,28,0,100,0,16,0,82,0\n48,0,44,0,1,0,33,0,26,0,76,0\n87,0,35,0,25,0,94,0,55,0,23,0\n39,0,58,0,83,0,30,0,79,0,49,0\n80,0,54,0,59,0,93,0,68,0,46,0\n66,0,51,0,53,0,9,0,75,0,29,0\n40,0,64,0,14,0,85,0,8,0,57,0\n63,0,71,0,99,0,62,0,50,0,11,0\n42,0,27,0,37,0,84,0,19,0,61,0\n70,0,92,0,77,0,2,0,21,0,24,0\n52,0,41,0,90,0,38,0,12,0,47,0\n72,0,81,0,33,0,15,0,73,0,78,0\n67,0,7,0,54,0,18,0,32,0,69,0\n3,0,22,0,51,0,87,0,44,0,10,0\n46,0,98,0,79,0,20,0,74,0,75,0\n4,0,53,0,68,0,89,0,65,0,64,0\n31,0,17,0,28,0,57,0,26,0,27,0\n56,0,49,0,16,0,35,0,63,0,34,0\n42,0,29,0,60,0,76,0,92,0,50,0\n13,0,11,0,30,0,2,0,73,0,90,0\n12,0,59,0,36,0,21,0,95,0,86,0\n81,0,23,0,62,0,83,0,9,0,1,0\n55,0,40,0,88,0,41,0,77,0,72,0\n48,0,100,0,47,0,14,0,71,0,96,0\n85,0,66,0,15,0,24,0,19,0,45,0\n97,0,84,0,99,0,25,0,91,0,38,0\n93,0,8,0,52,0,43,0,6,0,39,0\n82,0,94,0,70,0,80,0,5,0,37,0\n61,0,69,0,46,0,58,0,36,0,51,0\n34,0,33,0,23,0,22,0,59,0,30,0\n98,0,90,0,10,0,86,0,77,0,60,0\n44,0,68,0,32,0,42,0,81,0,55,0\n2,0,78,0,87,0,71,0,53,0,19,0\n41,0,85,0,27,0,56,0,50,0,1,0\n26,0,95,0,100,0,63,0,18,0,24,0\n20,0,17,0,70,0,76,0,3,0,9,0\n31,0,84,0,72,0,96,0,11,0,94,0\n4,0,40,0,38,0,75,0,73,0,6,0\n14,0,13,0,79,0,25,0,29,0,16,0\n64,0,97,0,37,0,47,0,88,0,39,0\n62,0,91,0,89,0,92,0,5,0,28,0\n12,0,48,0,82,0,54,0,43,0,58,0\n21,0,57,0,66,0,7,0,93,0,49,0\n67,0,99,0,80,0,61,0,8,0,15,0\n52,0,35,0,65,0,74,0,83,0,45,0\n19,0,40,0,96,0,46,0,18,0,23,0\n56,0,77,0,69,0,68,0,76,0,78,0\n98,0,70,0,59,0,26,0,14,0,32,0\n63,0,17,0,33,0,41,0,92,0,51,0\n16,0,24,0,64,0,86,0,81,0,38,0\n27,0,12,0,88,0,87,0,60,0,13,0\n75,0,39,0,57,0,91,0,15,0,3,0\n28,0,72,0,21,0,99,0,30,0,35,0\n65,0,50,0,43,0,94,0,20,0,97,0\n6,0,44,0,61,0,54,0,90,0,53,0\n1,0,47,0,45,0,93,0,84,0,22,0\n55,0,62,0,10,0,95,0,67,0,82,0\n58,0,9,0,73,0,85,0,89,0,80,0\n34,0,36,0,31,0,37,0,71,0,74,0\n11,0,42,0,79,0,66,0,100,0,52,0\n5,0,4,0,29,0,8,0,49,0,48,0\n25,0,7,0,3,0,2,0,83,0,72,0\n21,0,63,0,96,0,27,0,64,0,54,0\n18,0,39,0,68,0,17,0,35,0,50,0\n82,0,53,0,30,0,97,0,98,0,93,0\n62,0,45,0,46,0,60,0,44,0,43,0\n41,0,10,0,59,0,61,0,76,0,31,0\n12,0,28,0,37,0,55,0,20,0,33,0\n1,0,14,0,80,0,36,0,66,0,90,0\n9,0,94,0,15,0,56,0,38,0,48,0\n89,0,52,0,84,0,23,0,13,0,57,0\n65,0,86,0,71,0,79,0,69,0,22,0\n7,0,81,0,77,0,19,0,8,0,100,0\n73,0,24,0,91,0,29,0,74,0,87,0\n49,0,6,0,99,0,78,0,70,0,95,0\n26,0,75,0,92,0,16,0,58,0,11,0\n25,0,47,0,32,0,40,0,51,0,34,0\n83,0,85,0,88,0,67,0,5,0,42,0\n2,0,31,0,39,0,4,0,45,0,63,0\n61,0,86,0,68,0,33,0,66,0,82,0\n97,0,21,0,13,0,56,0,18,0,8,0\n14,0,94,0,44,0,52,0,28,0,69,0\n60,0,41,0,6,0,81,0,79,0,3,0\n87,0,38,0,49,0,11,0,36,0,17,0\n26,0,93,0,90,0,74,0,23,0,99,0\n64,0,80,0,29,0,78,0,7,0,30,0\n95,0,96,0,42,0,34,0,57,0,9,0\n5,0,47,0,10,0,53,0,24,0,46,0\n89,0,16,0,43,0,40,0,70,0,1,0\n15,0,71,0,83,0,32,0,92,0,12,0\n48,0,20,0,22,0,2,0,62,0,88,0\n55,0,65,0,54,0,76,0,73,0,19,0\n59,0,27,0,75,0,25,0,77,0,67,0\n50,0,100,0,58,0,37,0,72,0,91,0\n84,0,35,0,85,0,4,0,51,0,98,0\n8,0,45,0,42,0,53,0,69,0,41,0\n86,0,3,0,63,0,28,0,13,0,93,0\n46,0,34,0,38,0,14,0,78,0,82,0\n11,0,40,0,61,0,12,0,56,0,39,0\n5,0,23,0,2,0,54,0,15,0,97,0\n74,0,18,0,16,0,44,0,9,0,77,0\n49,0,72,0,26,0,43,0,10,0,64,0\n87,0,100,0,76,0,80,0,4,0,21,0\n95,0,33,0,75,0,7,0,84,0,50,0\n52,0,88,0,58,0,71,0,81,0,98,0\n29,0,90,0,62,0,32,0,85,0,17,0\n30,0,57,0,6,0,65,0,1,0,25,0\n70,0,68,0,36,0,27,0,73,0,47,0\n37,0,67,0,66,0,22,0,35,0,92,0\n24,0,96,0,99,0,89,0,20,0,60,0\n51,0,79,0,19,0,94,0,91,0,59,0\n55,0,83,0,78,0,48,0,31,0,97,0\n43,0,7,0,14,0,4,0,88,0,86,0\n44,0,72,0,23,0,29,0,12,0,63,0\n54,0,17,0,8,0,10,0,16,0,84,0\n93,0,56,0,33,0,65,0,58,0,70,0\n34,0,77,0,26,0,13,0,62,0,66,0\n37,0,11,0,76,0,24,0,6,0,98,0\n67,0,30,0,38,0,68,0,74,0,51,0\n15,0,47,0,87,0,42,0,31,0,20,0\n28,0,46,0,73,0,48,0,41,0,39,0\n18,0,45,0,71,0,55,0,57,0,59,0\n90,0,69,0,89,0,75,0,83,0,100,0\n50,0,53,0,80,0,52,0,49,0,40,0\n60,0,22,0,82,0,85,0,36,0,25,0\n61,0,35,0,91,0,81,0,96,0,2,0\n92,0,3,0,1,0,64,0,94,0,95,0\n79,0,32,0,9,0,27,0,99,0,5,0\n19,0,41,0,98,0,21,0,34,0,68,0\n17,0,66,0,4,0,44,0,58,0,59,0\n6,0,16,0,51,0,12,0,7,0,31,0\n74,0,15,0,50,0,70,0,88,0,28,0\n77,0,43,0,57,0,22,0,83,0,80,0\n84,0,36,0,29,0,26,0,56,0,55,0\n95,0,48,0,85,0,37,0,65,0,23,0\n9,0,97,0,24,0,52,0,67,0,72,0\n60,0,19,0,75,0,47,0,30,0,63,0\n5,0,73,0,25,0,61,0,64,0,100,0\n92,0,81,0,69,0,40,0,87,0,99,0\n13,0,35,0,78,0,42,0,1,0,54,0\n93,0,27,0,11,0,14,0,10,0,91,0\n8,0,86,0,94,0,89,0,2,0,46,0\n20,0,21,0,82,0,90,0,39,0,71,0\n3,0,32,0,49,0,96,0,33,0,45,0\n53,0,38,0,76,0,79,0,18,0,62,0\n"
  },
  {
    "path": "schedules/10_1.csv",
    "content": "3,0,9,0,10,0,4,0,6,0,2,0\n8,0,1,0,4,1,7,0,5,0,10,1\n"
  },
  {
    "path": "schedules/10_10.csv",
    "content": "3,0,1,0,10,0,7,0,4,0,6,0\n5,0,2,0,4,0,8,0,9,0,6,0\n5,0,8,0,3,0,10,0,7,0,2,0\n3,0,2,0,9,0,8,0,6,0,1,0\n7,1,10,0,4,0,9,1,5,0,1,0\n9,0,7,0,2,0,4,0,10,0,6,0\n7,0,5,0,8,0,1,0,3,0,9,0\n6,0,1,0,2,0,3,0,10,0,5,0\n4,0,9,0,5,0,3,0,8,0,10,0\n1,0,4,0,8,0,6,0,2,0,7,0\n9,0,4,0,3,0,1,0,5,0,2,0\n10,0,6,0,9,0,8,0,7,0,3,0\n5,0,6,0,1,0,4,0,10,0,8,0\n2,0,8,0,10,0,7,0,3,0,4,0\n2,0,6,0,5,0,9,0,1,0,7,0\n10,0,1,0,7,0,2,0,9,0,8,0\n6,0,3,0,7,0,4,0,5,0,9,0\n"
  },
  {
    "path": "schedules/10_11.csv",
    "content": "3,0,2,0,9,0,5,0,10,0,4,0\n9,0,6,0,8,0,7,0,10,0,1,0\n8,0,7,0,4,0,6,0,5,0,3,0\n1,0,10,0,5,0,2,0,4,0,8,0\n9,1,1,1,6,0,2,1,7,0,3,1\n4,0,9,0,5,0,7,0,6,0,10,0\n8,0,3,0,6,0,9,0,1,0,2,0\n2,0,5,0,7,0,8,0,4,0,1,0\n10,0,2,0,4,0,3,0,6,0,1,0\n5,0,8,0,10,0,7,0,3,0,9,0\n7,0,6,0,10,0,2,0,1,0,5,0\n3,0,4,0,7,0,8,0,9,0,2,0\n9,0,1,0,4,0,6,0,5,0,8,0\n3,0,8,0,5,0,10,0,2,0,6,0\n10,0,9,0,3,0,4,0,1,0,7,0\n1,0,3,0,2,0,5,0,7,0,9,0\n6,0,4,0,2,0,10,0,8,0,9,0\n1,0,8,0,7,0,4,0,10,0,3,0\n6,0,9,0,1,0,5,0,2,0,3,0\n"
  },
  {
    "path": "schedules/10_12.csv",
    "content": "5,0,10,0,1,0,8,0,2,0,6,0\n4,0,3,0,1,0,9,0,7,0,10,0\n3,0,6,0,9,0,4,0,2,0,5,0\n8,0,4,0,3,0,1,0,7,0,2,0\n8,0,7,0,9,0,5,0,10,0,6,0\n9,0,5,0,4,0,3,0,8,0,10,0\n2,0,1,0,4,0,7,0,6,0,5,0\n6,0,2,0,8,0,3,0,9,0,1,0\n10,0,1,0,6,0,7,0,3,0,5,0\n9,0,7,0,2,0,10,0,8,0,4,0\n3,0,2,0,7,0,8,0,6,0,9,0\n5,0,1,0,8,0,10,0,4,0,3,0\n6,0,4,0,7,0,1,0,5,0,9,0\n10,0,1,0,6,0,2,0,4,0,8,0\n2,0,9,0,10,0,7,0,3,0,5,0\n7,0,10,0,4,0,6,0,3,0,2,0\n1,0,8,0,7,0,9,0,5,0,2,0\n10,0,9,0,8,0,1,0,6,0,3,0\n5,0,8,0,3,0,4,0,6,0,7,0\n2,0,5,0,10,0,4,0,9,0,1,0\n"
  },
  {
    "path": "schedules/10_13.csv",
    "content": "10,0,6,0,2,0,1,0,9,0,4,0\n4,0,5,0,8,0,7,0,6,0,3,0\n2,0,7,0,5,0,8,0,9,0,1,0\n10,0,1,0,9,0,3,0,4,0,8,0\n3,0,2,0,7,1,6,0,5,0,10,1\n10,0,7,0,3,0,2,0,4,0,9,0\n10,0,8,0,6,0,5,0,1,0,3,0\n5,0,8,0,1,0,4,0,6,0,2,0\n8,0,4,0,7,0,9,0,5,0,10,0\n1,0,2,0,7,0,9,0,3,0,6,0\n6,0,2,0,8,0,7,0,10,0,4,0\n3,0,4,0,9,0,5,0,1,0,6,0\n1,0,2,0,3,0,7,0,10,0,8,0\n2,0,8,0,9,0,5,0,3,0,4,0\n9,0,10,0,5,0,6,0,7,0,1,0\n9,0,6,0,5,0,2,0,8,0,10,0\n4,0,7,0,6,0,1,0,3,0,10,0\n3,0,9,0,7,0,5,0,4,0,2,0\n8,0,3,0,5,0,2,0,10,0,1,0\n6,0,1,0,4,0,7,0,9,0,8,0\n4,0,1,0,10,0,7,0,5,0,2,0\n9,0,6,0,7,0,8,0,3,0,10,0\n"
  },
  {
    "path": "schedules/10_14.csv",
    "content": "4,0,8,0,3,0,7,0,9,0,1,0\n6,0,2,0,1,0,5,0,10,0,8,0\n9,0,10,0,3,0,6,0,4,0,5,0\n5,0,2,0,6,0,4,0,10,0,7,0\n1,1,3,1,8,0,2,1,9,1,7,0\n10,0,5,0,1,0,4,0,9,0,6,0\n2,0,10,0,3,0,5,0,8,0,7,0\n4,0,2,0,8,0,9,0,6,0,3,0\n7,0,10,0,6,0,1,0,8,0,9,0\n7,0,3,0,5,0,4,0,1,0,2,0\n5,0,9,0,4,0,2,0,8,0,10,0\n3,0,6,0,9,0,1,0,5,0,7,0\n2,0,1,0,7,0,6,0,4,0,10,0\n8,0,6,0,1,0,3,0,4,0,2,0\n3,0,7,0,8,0,9,0,5,0,10,0\n8,0,9,0,4,0,6,0,7,0,5,0\n10,0,2,0,6,0,3,0,1,0,9,0\n10,0,4,0,1,0,8,0,3,0,5,0\n7,0,6,0,8,0,2,0,3,0,5,0\n9,0,7,0,10,0,1,0,2,0,4,0\n7,0,3,0,4,0,8,0,6,0,10,0\n1,0,5,0,4,0,9,0,8,0,2,0\n5,0,9,0,2,0,3,0,1,0,6,0\n10,0,1,0,3,0,2,0,7,0,9,0\n"
  },
  {
    "path": "schedules/10_2.csv",
    "content": "4,0,6,0,9,0,10,0,2,0,7,0\n1,0,7,0,3,0,8,0,5,0,2,0\n5,0,4,0,10,0,6,0,8,0,1,0\n3,0,6,1,4,1,9,0,10,1,1,1\n"
  },
  {
    "path": "schedules/10_3.csv",
    "content": "5,0,4,0,2,0,6,0,1,0,10,0\n7,0,3,0,6,0,8,0,9,0,1,0\n3,0,5,0,8,0,10,0,7,0,4,0\n2,0,10,0,8,0,9,0,7,0,5,0\n2,0,6,0,9,0,4,0,1,0,3,0\n"
  },
  {
    "path": "schedules/10_4.csv",
    "content": "7,0,4,0,9,0,3,0,2,0,8,0\n6,0,3,0,5,0,10,0,1,0,2,0\n8,0,1,0,4,0,7,0,6,0,10,0\n5,0,10,0,4,0,3,0,9,0,1,0\n7,1,8,0,6,0,2,1,5,0,9,0\n2,0,7,0,3,0,9,0,10,0,8,0\n1,0,5,0,7,0,4,0,6,0,2,0\n"
  },
  {
    "path": "schedules/10_5.csv",
    "content": "7,0,8,0,4,0,10,0,2,0,1,0\n3,0,9,0,4,0,8,0,5,0,6,0\n1,0,9,0,10,0,2,0,3,0,5,0\n3,0,1,0,6,0,7,0,4,0,10,0\n8,1,2,0,7,1,9,0,5,1,6,1\n9,0,8,0,2,0,4,0,5,0,1,0\n8,0,10,0,3,0,6,0,7,0,9,0\n5,0,3,0,7,0,4,0,6,0,2,0\n10,0,6,0,5,0,1,0,7,0,8,0\n"
  },
  {
    "path": "schedules/10_6.csv",
    "content": "1,0,6,0,10,0,5,0,8,0,2,0\n4,0,3,0,5,0,6,0,7,0,9,0\n10,0,9,0,4,0,1,0,2,0,7,0\n6,0,7,0,3,0,8,0,1,0,9,0\n2,0,8,0,10,0,3,0,4,0,5,0\n9,0,5,0,2,0,4,0,1,0,8,0\n3,0,6,0,8,0,7,0,10,0,4,0\n9,0,3,0,1,0,5,0,10,0,6,0\n7,0,5,0,1,0,2,0,4,0,6,0\n8,0,9,0,7,0,10,0,2,0,3,0\n"
  },
  {
    "path": "schedules/10_7.csv",
    "content": "1,0,5,0,10,0,8,0,7,0,9,0\n6,0,1,0,3,0,5,0,4,0,2,0\n3,0,7,0,8,0,9,0,6,0,2,0\n4,0,5,0,8,0,2,0,7,0,10,0\n4,1,10,0,6,0,1,1,3,0,9,0\n7,0,1,0,4,0,8,0,9,0,3,0\n5,0,2,0,3,0,10,0,6,0,7,0\n2,0,8,0,6,0,9,0,1,0,5,0\n10,0,9,0,8,0,4,0,3,0,5,0\n6,0,2,0,4,0,7,0,10,0,1,0\n1,0,4,0,9,0,5,0,6,0,7,0\n3,0,10,0,4,0,2,0,8,0,1,0\n"
  },
  {
    "path": "schedules/10_8.csv",
    "content": "4,0,8,0,2,0,1,0,9,0,7,0\n5,0,3,0,7,0,10,0,4,0,6,0\n1,0,2,0,9,0,5,0,6,0,10,0\n8,0,6,0,7,0,3,0,10,0,1,0\n9,0,8,1,5,1,4,1,2,1,3,0\n8,0,1,0,3,0,2,0,10,0,5,0\n6,0,7,0,10,0,8,0,9,0,4,0\n3,0,7,0,4,0,5,0,2,0,1,0\n9,0,4,0,5,0,6,0,8,0,1,0\n2,0,7,0,10,0,9,0,6,0,3,0\n6,0,2,0,9,0,7,0,5,0,8,0\n1,0,5,0,4,0,3,0,10,0,9,0\n4,0,1,0,6,0,2,0,3,0,8,0\n10,0,5,0,8,0,7,0,4,0,2,0\n"
  },
  {
    "path": "schedules/10_9.csv",
    "content": "8,0,3,0,6,0,7,0,2,0,9,0\n5,0,10,0,6,0,8,0,4,0,1,0\n10,0,2,0,3,0,5,0,7,0,1,0\n6,0,4,0,7,0,9,0,10,0,2,0\n9,0,1,0,4,0,3,0,5,0,8,0\n1,0,7,0,10,0,4,0,8,0,9,0\n2,0,6,0,8,0,3,0,5,0,10,0\n7,0,9,0,3,0,5,0,6,0,1,0\n2,0,9,0,5,0,10,0,3,0,4,0\n1,0,7,0,8,0,6,0,2,0,4,0\n10,0,8,0,5,0,6,0,3,0,7,0\n2,0,4,0,5,0,9,0,1,0,6,0\n8,0,9,0,10,0,3,0,1,0,2,0\n4,0,5,0,9,0,7,0,8,0,2,0\n4,0,1,0,3,0,10,0,6,0,7,0\n"
  },
  {
    "path": "schedules/11_1.csv",
    "content": "4,0,9,0,6,0,8,0,5,0,1,0\n10,0,7,0,2,0,11,0,3,0,4,1\n"
  },
  {
    "path": "schedules/11_10.csv",
    "content": "1,0,2,0,11,0,3,0,8,0,6,0\n7,0,10,0,9,0,4,0,5,0,8,0\n10,0,4,0,3,0,7,0,1,0,6,0\n5,0,2,0,6,0,11,0,9,0,4,0\n9,1,3,1,5,0,11,0,1,1,8,1\n2,0,6,0,1,0,7,0,10,0,5,0\n7,0,11,0,8,0,10,0,4,0,2,0\n9,0,6,0,8,0,3,0,2,0,7,0\n9,0,3,0,1,0,5,0,11,0,10,0\n4,0,6,0,5,0,3,0,8,0,10,0\n11,0,9,0,2,0,4,0,1,0,7,0\n1,0,10,0,5,0,8,0,4,0,2,0\n11,0,3,0,7,0,6,0,9,0,10,0\n6,0,11,0,4,0,8,0,1,0,9,0\n5,0,3,0,11,0,2,0,7,0,4,0\n2,0,5,0,9,0,6,0,10,0,3,0\n8,0,7,0,6,0,1,0,5,0,11,0\n9,0,7,0,4,0,1,0,8,0,3,0\n10,0,8,0,1,0,2,0,9,0,3,0\n"
  },
  {
    "path": "schedules/11_11.csv",
    "content": "2,0,1,0,7,0,3,0,5,0,6,0\n9,0,10,0,2,0,4,0,8,0,11,0\n7,0,4,0,5,0,8,0,11,0,6,0\n4,0,10,0,3,0,1,0,9,0,6,0\n9,1,8,1,7,0,5,1,11,1,10,1\n1,0,3,0,11,0,6,0,4,0,2,0\n8,0,2,0,3,0,7,0,1,0,9,0\n6,0,8,0,5,0,2,0,10,0,1,0\n10,0,9,0,4,0,5,0,7,0,3,0\n6,0,7,0,11,0,3,0,8,0,10,0\n11,0,4,0,9,0,1,0,2,0,5,0\n10,0,8,0,5,0,4,0,3,0,2,0\n7,0,6,0,1,0,9,0,11,0,10,0\n8,0,1,0,4,0,9,0,2,0,7,0\n11,0,5,0,2,0,3,0,6,0,9,0\n5,0,6,0,1,0,8,0,4,0,7,0\n11,0,3,0,1,0,10,0,5,0,8,0\n10,0,7,0,3,0,11,0,2,0,4,0\n6,0,3,0,4,0,9,0,11,0,8,0\n2,0,5,0,9,0,7,0,6,0,10,0\n1,0,9,0,8,0,5,0,11,0,10,0\n"
  },
  {
    "path": "schedules/11_12.csv",
    "content": "8,0,3,0,5,0,11,0,4,0,7,0\n1,0,6,0,2,0,4,0,10,0,9,0\n7,0,11,0,6,0,1,0,5,0,10,0\n8,0,7,0,3,0,2,0,9,0,1,0\n4,0,2,0,5,0,6,0,3,0,8,0\n11,0,10,0,7,0,6,0,9,0,3,0\n5,0,1,0,4,0,9,0,11,0,2,0\n10,0,3,0,9,0,8,0,5,0,6,0\n1,0,11,0,8,0,2,0,10,0,4,0\n7,0,1,0,10,0,5,0,4,0,3,0\n7,0,6,0,9,0,11,0,8,0,2,0\n5,0,6,0,2,0,3,0,1,0,11,0\n9,0,8,0,4,0,10,0,7,0,5,0\n3,0,11,0,10,0,8,0,2,0,7,0\n9,0,4,0,7,0,6,0,1,0,11,0\n3,0,1,0,4,0,10,0,9,0,8,0\n2,0,6,0,1,0,5,0,8,0,7,0\n9,0,5,0,11,0,3,0,2,0,10,0\n6,0,3,0,11,0,4,0,8,0,1,0\n2,0,9,0,5,0,4,0,7,0,6,0\n10,0,4,0,6,0,7,0,2,0,3,0\n1,0,10,0,8,0,11,0,5,0,9,0\n"
  },
  {
    "path": "schedules/11_13.csv",
    "content": "9,0,1,0,10,0,7,0,11,0,5,0\n8,0,4,0,2,0,6,0,11,0,3,0\n9,0,6,0,4,0,1,0,5,0,3,0\n8,0,6,0,7,0,10,0,2,0,9,0\n5,0,1,0,11,1,2,0,3,0,8,0\n9,0,7,0,4,0,8,0,10,0,11,0\n7,0,5,0,2,0,3,0,1,0,10,0\n2,0,6,0,8,0,5,0,9,0,4,0\n11,0,6,0,1,0,7,0,3,0,4,0\n9,0,2,0,1,0,4,0,11,0,10,0\n5,0,3,0,8,0,6,0,10,0,7,0\n8,0,4,0,3,0,10,0,9,0,5,0\n11,0,7,0,1,0,6,0,2,0,9,0\n11,0,3,0,2,0,10,0,5,0,6,0\n8,0,4,0,6,0,7,0,1,0,2,0\n11,0,9,0,7,0,3,0,5,0,4,0\n10,0,8,0,5,0,1,0,4,0,7,0\n3,0,10,0,11,0,1,0,8,0,6,0\n9,0,11,0,5,0,2,0,10,0,6,0\n2,0,7,0,3,0,1,0,8,0,9,0\n4,0,2,0,11,0,5,0,7,0,8,0\n4,0,10,0,1,0,6,0,9,0,3,0\n1,0,5,0,6,0,11,0,8,0,9,0\n3,0,7,0,10,0,4,0,2,0,11,0\n"
  },
  {
    "path": "schedules/11_14.csv",
    "content": "10,0,5,0,4,0,1,0,8,0,11,0\n2,0,3,0,11,0,9,0,7,0,6,0\n7,0,6,0,3,0,1,0,8,0,2,0\n4,0,10,0,11,0,9,0,5,0,7,0\n5,1,3,0,2,0,1,0,4,1,9,0\n8,0,10,0,1,0,11,0,6,0,5,0\n2,0,4,0,9,0,10,0,6,0,8,0\n11,0,1,0,7,0,8,0,3,0,4,0\n10,0,2,0,7,0,5,0,3,0,6,0\n9,0,3,0,7,0,5,0,4,0,8,0\n2,0,6,0,1,0,10,0,11,0,9,0\n5,0,9,0,8,0,3,0,1,0,10,0\n4,0,6,0,2,0,7,0,11,0,5,0\n10,0,7,0,2,0,3,0,11,0,4,0\n6,0,9,0,11,0,8,0,1,0,3,0\n8,0,5,0,10,0,7,0,1,0,2,0\n6,0,5,0,3,0,4,0,9,0,10,0\n4,0,7,0,1,0,2,0,9,0,8,0\n11,0,7,0,8,0,6,0,10,0,9,0\n1,0,4,0,5,0,11,0,2,0,6,0\n3,0,8,0,9,0,5,0,2,0,11,0\n1,0,10,0,6,0,7,0,4,0,3,0\n9,0,1,0,5,0,4,0,7,0,6,0\n3,0,11,0,10,0,2,0,8,0,4,0\n11,0,9,0,1,0,5,0,10,0,7,0\n6,0,8,0,4,0,3,0,2,0,5,0\n"
  },
  {
    "path": "schedules/11_2.csv",
    "content": "4,0,10,0,2,0,11,0,5,0,9,0\n7,0,3,0,1,0,8,0,6,0,4,0\n5,0,8,0,10,0,9,0,7,0,6,0\n1,0,11,0,10,1,3,0,2,0,9,1\n"
  },
  {
    "path": "schedules/11_3.csv",
    "content": "5,0,8,0,4,0,3,0,1,0,11,0\n7,0,6,0,9,0,4,0,10,0,2,0\n9,0,2,0,5,0,8,0,3,0,6,0\n6,0,11,0,10,0,1,0,7,0,8,0\n2,0,7,0,3,0,10,0,5,0,1,0\n11,0,5,1,2,1,4,0,9,0,1,1\n"
  },
  {
    "path": "schedules/11_4.csv",
    "content": "6,0,8,0,2,0,4,0,10,0,5,0\n9,0,1,0,3,0,11,0,8,0,7,0\n1,0,6,0,4,0,7,0,5,0,9,0\n10,0,11,0,1,0,3,0,4,0,2,0\n3,1,5,1,11,0,9,1,6,1,10,0\n2,0,7,0,10,0,8,0,4,0,9,0\n7,0,6,0,3,0,1,0,2,0,5,0\n5,0,3,0,8,0,11,0,9,0,6,0\n"
  },
  {
    "path": "schedules/11_5.csv",
    "content": "4,0,1,0,10,0,8,0,7,0,2,0\n5,0,6,0,3,0,8,0,11,0,9,0\n6,0,9,0,1,0,5,0,10,0,11,0\n7,0,2,0,6,0,3,0,4,0,9,0\n2,1,3,1,11,1,10,1,8,1,4,0\n9,0,5,0,7,0,1,0,8,0,3,0\n11,0,4,0,6,0,2,0,1,0,5,0\n10,0,9,0,2,0,7,0,11,0,1,0\n4,0,5,0,8,0,10,0,3,0,7,0\n2,0,3,0,11,0,6,0,10,0,8,0\n"
  },
  {
    "path": "schedules/11_6.csv",
    "content": "4,0,9,0,6,0,11,0,5,0,7,0\n8,0,9,0,2,0,1,0,3,0,10,0\n5,0,8,0,3,0,4,0,10,0,11,0\n5,0,1,0,6,0,2,0,7,0,8,0\n7,0,3,0,4,0,2,0,11,0,1,0\n6,0,1,0,11,0,9,0,10,0,5,0\n9,0,2,0,4,0,6,0,8,0,10,0\n7,0,11,0,8,0,3,0,6,0,2,0\n3,0,4,0,5,0,1,0,7,0,9,0\n10,0,2,0,5,0,11,0,3,0,9,0\n10,0,6,0,7,0,8,0,4,0,1,0\n"
  },
  {
    "path": "schedules/11_7.csv",
    "content": "8,0,11,0,7,0,3,0,4,0,10,0\n1,0,9,0,5,0,6,0,11,0,2,0\n7,0,4,0,2,0,1,0,10,0,9,0\n3,0,1,0,6,0,5,0,10,0,8,0\n11,1,7,0,6,0,8,0,2,0,3,0\n2,0,10,0,5,0,4,0,9,0,8,0\n9,0,7,0,3,0,5,0,6,0,4,0\n8,0,1,0,7,0,11,0,5,0,9,0\n4,0,2,0,10,0,11,0,3,0,1,0\n2,0,9,0,1,0,6,0,8,0,3,0\n10,0,6,0,11,0,7,0,5,0,4,0\n5,0,3,0,11,0,10,0,7,0,2,0\n9,0,8,0,6,0,11,0,1,0,4,0\n"
  },
  {
    "path": "schedules/11_8.csv",
    "content": "1,0,7,0,5,0,11,0,3,0,2,0\n9,0,8,0,6,0,10,0,4,0,5,0\n7,0,3,0,8,0,4,0,10,0,11,0\n1,0,6,0,4,0,2,0,7,0,9,0\n6,1,11,0,2,0,10,0,3,1,1,0\n9,0,4,0,5,0,11,0,8,0,1,0\n8,0,9,0,10,0,2,0,5,0,3,0\n7,0,4,0,1,0,6,0,5,0,10,0\n8,0,2,0,11,0,9,0,6,0,7,0\n3,0,5,0,11,0,4,0,6,0,2,0\n8,0,10,0,7,0,3,0,1,0,9,0\n6,0,7,0,3,0,5,0,1,0,8,0\n2,0,10,0,4,0,11,0,9,0,7,0\n3,0,9,0,10,0,5,0,11,0,6,0\n1,0,2,0,6,0,4,0,8,0,3,0\n"
  },
  {
    "path": "schedules/11_9.csv",
    "content": "7,0,2,0,10,0,3,0,5,0,1,0\n11,0,8,0,9,0,6,0,4,0,3,0\n11,0,6,0,5,0,2,0,1,0,4,0\n8,0,6,0,7,0,9,0,10,0,1,0\n7,1,11,1,5,0,4,0,9,1,10,0\n8,0,11,0,3,0,2,0,6,0,5,0\n10,0,2,0,4,0,3,0,9,0,7,0\n6,0,3,0,1,0,8,0,7,0,4,0\n10,0,1,0,8,0,9,0,2,0,11,0\n4,0,5,0,9,0,2,0,1,0,8,0\n7,0,5,0,3,0,11,0,10,0,6,0\n5,0,11,0,2,0,9,0,6,0,7,0\n1,0,8,0,4,0,10,0,3,0,11,0\n7,0,10,0,2,0,6,0,4,0,8,0\n1,0,9,0,6,0,5,0,3,0,10,0\n3,0,9,0,2,0,1,0,7,0,11,0\n4,0,7,0,11,0,5,0,8,0,9,0\n"
  },
  {
    "path": "schedules/12_1.csv",
    "content": "11,0,9,0,12,0,6,0,2,0,5,0\n4,0,3,0,1,0,10,0,8,0,7,0\n"
  },
  {
    "path": "schedules/12_10.csv",
    "content": "8,0,4,0,5,0,12,0,6,0,1,0\n2,0,9,0,3,0,10,0,11,0,7,0\n7,0,12,0,10,0,9,0,4,0,1,0\n3,0,8,0,11,0,6,0,5,0,2,0\n10,0,8,0,6,0,7,0,1,0,3,0\n12,0,5,0,9,0,4,0,2,0,11,0\n8,0,7,0,4,0,10,0,11,0,5,0\n1,0,9,0,6,0,2,0,12,0,3,0\n12,0,5,0,8,0,9,0,3,0,10,0\n1,0,2,0,7,0,11,0,6,0,4,0\n11,0,3,0,6,0,4,0,10,0,12,0\n2,0,9,0,7,0,8,0,1,0,5,0\n5,0,2,0,10,0,7,0,6,0,12,0\n1,0,3,0,8,0,9,0,11,0,4,0\n5,0,11,0,9,0,6,0,1,0,10,0\n3,0,4,0,12,0,2,0,7,0,8,0\n4,0,10,0,9,0,6,0,8,0,2,0\n1,0,12,0,11,0,5,0,3,0,7,0\n3,0,10,0,2,0,5,0,4,0,1,0\n11,0,7,0,6,0,9,0,12,0,8,0\n"
  },
  {
    "path": "schedules/12_11.csv",
    "content": "12,0,9,0,3,0,2,0,1,0,5,0\n11,0,10,0,6,0,7,0,4,0,8,0\n5,0,1,0,3,0,10,0,6,0,8,0\n9,0,4,0,11,0,12,0,2,0,7,0\n8,0,12,0,4,0,1,0,7,0,5,0\n3,0,2,0,6,0,10,0,9,0,11,0\n2,0,10,0,4,0,12,0,1,0,6,0\n3,0,11,0,7,0,9,0,5,0,8,0\n5,0,3,0,4,0,11,0,12,0,6,0\n9,0,8,0,7,0,1,0,10,0,2,0\n4,0,8,0,1,0,11,0,2,0,3,0\n12,0,5,0,10,0,6,0,7,0,9,0\n10,0,3,0,8,0,4,0,12,0,9,0\n2,0,6,0,5,0,1,0,7,0,11,0\n1,0,11,0,12,0,7,0,3,0,10,0\n2,0,8,0,9,0,6,0,4,0,5,0\n7,0,12,0,2,0,8,0,6,0,3,0\n5,0,11,0,9,0,4,0,10,0,1,0\n8,0,11,0,2,0,10,0,5,0,12,0\n6,0,4,0,7,0,3,0,9,0,1,0\n9,0,6,0,1,0,11,0,8,0,12,0\n7,0,5,0,10,0,4,0,3,0,2,0\n"
  },
  {
    "path": "schedules/12_12.csv",
    "content": "10,0,1,0,9,0,5,0,3,0,8,0\n4,0,2,0,6,0,12,0,7,0,11,0\n8,0,5,0,1,0,11,0,3,0,2,0\n4,0,12,0,10,0,6,0,9,0,7,0\n3,0,7,0,1,0,12,0,2,0,9,0\n6,0,11,0,8,0,5,0,4,0,10,0\n8,0,3,0,12,0,6,0,7,0,11,0\n1,0,9,0,5,0,10,0,2,0,4,0\n5,0,6,0,2,0,7,0,3,0,4,0\n9,0,11,0,10,0,1,0,8,0,12,0\n4,0,12,0,6,0,2,0,11,0,1,0\n8,0,10,0,7,0,9,0,5,0,3,0\n9,0,4,0,11,0,2,0,8,0,7,0\n3,0,10,0,5,0,12,0,1,0,6,0\n3,0,6,0,1,0,4,0,8,0,9,0\n11,0,12,0,2,0,7,0,10,0,5,0\n11,0,7,0,4,0,10,0,1,0,3,0\n8,0,2,0,9,0,6,0,5,0,12,0\n2,0,1,0,7,0,6,0,10,0,8,0\n5,0,11,0,4,0,9,0,12,0,3,0\n3,0,8,0,10,0,12,0,4,0,2,0\n7,0,9,0,6,0,11,0,1,0,5,0\n7,0,5,0,12,0,1,0,4,0,8,0\n2,0,9,0,3,0,10,0,6,0,11,0\n"
  },
  {
    "path": "schedules/12_13.csv",
    "content": "10,0,7,0,8,0,1,0,6,0,4,0\n9,0,5,0,3,0,2,0,12,0,11,0\n7,0,12,0,10,0,11,0,9,0,6,0\n2,0,5,0,8,0,3,0,1,0,4,0\n10,0,2,0,12,0,8,0,3,0,7,0\n11,0,4,0,6,0,5,0,1,0,9,0\n9,0,3,0,12,0,8,0,11,0,1,0\n7,0,2,0,6,0,10,0,4,0,5,0\n8,0,12,0,11,0,4,0,1,0,7,0\n5,0,6,0,3,0,10,0,2,0,9,0\n4,0,11,0,12,0,6,0,2,0,5,0\n1,0,10,0,3,0,8,0,9,0,7,0\n11,0,7,0,9,0,4,0,8,0,2,0\n5,0,12,0,1,0,6,0,10,0,3,0\n7,0,4,0,11,0,3,0,10,0,5,0\n2,0,8,0,1,0,12,0,6,0,9,0\n3,0,8,0,4,0,6,0,11,0,10,0\n9,0,1,0,2,0,12,0,7,0,5,0\n6,0,9,0,4,0,7,0,3,0,12,0\n2,0,5,0,11,0,10,0,1,0,8,0\n3,0,9,0,8,0,6,0,7,0,5,0\n11,0,10,0,1,0,12,0,4,0,2,0\n4,0,5,0,10,0,9,0,8,0,12,0\n1,0,6,0,7,0,2,0,11,0,3,0\n1,0,3,0,2,0,4,0,9,0,10,0\n12,0,8,0,6,0,5,0,7,0,11,0\n"
  },
  {
    "path": "schedules/12_14.csv",
    "content": "2,0,9,0,12,0,10,0,8,0,6,0\n4,0,1,0,5,0,7,0,11,0,3,0\n9,0,5,0,6,0,1,0,10,0,12,0\n2,0,11,0,3,0,7,0,8,0,4,0\n11,0,3,0,9,0,1,0,6,0,2,0\n5,0,12,0,7,0,4,0,10,0,8,0\n9,0,8,0,1,0,4,0,6,0,11,0\n3,0,2,0,12,0,5,0,10,0,7,0\n1,0,3,0,12,0,2,0,4,0,9,0\n11,0,10,0,6,0,7,0,8,0,5,0\n10,0,12,0,3,0,8,0,9,0,11,0\n6,0,7,0,4,0,2,0,1,0,5,0\n3,0,7,0,4,0,10,0,9,0,6,0\n12,0,2,0,8,0,1,0,5,0,11,0\n11,0,4,0,1,0,12,0,10,0,7,0\n5,0,6,0,2,0,8,0,9,0,3,0\n6,0,7,0,9,0,12,0,11,0,5,0\n4,0,1,0,10,0,8,0,2,0,3,0\n10,0,2,0,11,0,6,0,12,0,4,0\n9,0,1,0,7,0,3,0,5,0,8,0\n5,0,3,0,4,0,12,0,11,0,9,0\n6,0,8,0,1,0,10,0,2,0,7,0\n12,0,4,0,8,0,3,0,6,0,5,0\n7,0,1,0,11,0,2,0,9,0,10,0\n11,0,5,0,10,0,1,0,3,0,6,0\n8,0,7,0,2,0,9,0,4,0,12,0\n9,0,5,0,10,0,11,0,4,0,2,0\n6,0,12,0,8,0,7,0,3,0,1,0\n"
  },
  {
    "path": "schedules/12_2.csv",
    "content": "12,0,5,0,2,0,1,0,8,0,7,0\n4,0,11,0,6,0,3,0,10,0,9,0\n6,0,1,0,3,0,8,0,12,0,4,0\n2,0,7,0,10,0,5,0,9,0,11,0\n"
  },
  {
    "path": "schedules/12_3.csv",
    "content": "1,0,11,0,4,0,7,0,3,0,6,0\n12,0,10,0,2,0,8,0,9,0,5,0\n9,0,7,0,12,0,2,0,4,0,3,0\n8,0,6,0,11,0,5,0,1,0,10,0\n3,0,8,0,10,0,4,0,5,0,7,0\n11,0,2,0,9,0,6,0,12,0,1,0\n"
  },
  {
    "path": "schedules/12_4.csv",
    "content": "8,0,2,0,4,0,9,0,11,0,3,0\n6,0,10,0,7,0,12,0,1,0,5,0\n7,0,9,0,8,0,4,0,6,0,12,0\n3,0,1,0,10,0,11,0,5,0,2,0\n5,0,4,0,9,0,1,0,7,0,2,0\n10,0,12,0,11,0,3,0,8,0,6,0\n2,0,3,0,12,0,9,0,6,0,1,0\n11,0,4,0,7,0,5,0,10,0,8,0\n"
  },
  {
    "path": "schedules/12_5.csv",
    "content": "8,0,6,0,12,0,1,0,10,0,9,0\n3,0,11,0,7,0,5,0,2,0,4,0\n4,0,9,0,6,0,2,0,12,0,3,0\n5,0,7,0,10,0,11,0,8,0,1,0\n6,0,1,0,5,0,7,0,4,0,12,0\n9,0,11,0,2,0,10,0,3,0,8,0\n9,0,12,0,10,0,4,0,5,0,8,0\n1,0,7,0,2,0,11,0,6,0,3,0\n3,0,4,0,1,0,8,0,9,0,7,0\n12,0,5,0,11,0,10,0,2,0,6,0\n"
  },
  {
    "path": "schedules/12_6.csv",
    "content": "3,0,4,0,10,0,11,0,9,0,5,0\n2,0,7,0,12,0,8,0,6,0,1,0\n12,0,11,0,6,0,2,0,5,0,10,0\n3,0,8,0,4,0,1,0,9,0,7,0\n5,0,12,0,1,0,7,0,10,0,6,0\n8,0,2,0,9,0,4,0,11,0,3,0\n11,0,7,0,8,0,10,0,6,0,9,0\n4,0,5,0,12,0,1,0,3,0,2,0\n10,0,1,0,11,0,7,0,4,0,2,0\n6,0,8,0,5,0,9,0,12,0,3,0\n9,0,1,0,4,0,12,0,10,0,8,0\n6,0,2,0,11,0,5,0,3,0,7,0\n"
  },
  {
    "path": "schedules/12_7.csv",
    "content": "8,0,4,0,2,0,1,0,3,0,5,0\n7,0,6,0,9,0,11,0,12,0,10,0\n10,0,9,0,8,0,1,0,2,0,12,0\n3,0,7,0,4,0,5,0,11,0,6,0\n4,0,9,0,1,0,5,0,10,0,7,0\n6,0,12,0,2,0,3,0,8,0,11,0\n3,0,5,0,12,0,2,0,7,0,10,0\n9,0,11,0,1,0,4,0,8,0,6,0\n7,0,12,0,3,0,9,0,8,0,5,0\n10,0,1,0,6,0,4,0,2,0,11,0\n2,0,5,0,11,0,12,0,4,0,9,0\n6,0,10,0,3,0,8,0,1,0,7,0\n11,0,1,0,7,0,2,0,3,0,9,0\n10,0,5,0,4,0,12,0,6,0,8,0\n"
  },
  {
    "path": "schedules/12_8.csv",
    "content": "8,0,2,0,10,0,7,0,6,0,11,0\n9,0,5,0,12,0,3,0,4,0,1,0\n1,0,3,0,9,0,10,0,2,0,6,0\n8,0,7,0,12,0,4,0,5,0,11,0\n11,0,4,0,2,0,9,0,6,0,5,0\n12,0,10,0,1,0,3,0,8,0,7,0\n12,0,6,0,3,0,11,0,8,0,9,0\n7,0,10,0,4,0,5,0,1,0,2,0\n5,0,8,0,10,0,2,0,12,0,9,0\n6,0,11,0,3,0,1,0,7,0,4,0\n3,0,7,0,2,0,9,0,4,0,8,0\n6,0,1,0,5,0,11,0,12,0,10,0\n2,0,11,0,4,0,10,0,3,0,12,0\n8,0,9,0,6,0,5,0,1,0,7,0\n1,0,11,0,8,0,2,0,3,0,5,0\n10,0,9,0,7,0,4,0,12,0,6,0\n"
  },
  {
    "path": "schedules/12_9.csv",
    "content": "9,0,11,0,7,0,6,0,12,0,1,0\n3,0,10,0,8,0,5,0,2,0,4,0\n2,0,4,0,11,0,10,0,7,0,9,0\n1,0,8,0,12,0,3,0,6,0,5,0\n5,0,4,0,12,0,11,0,1,0,2,0\n6,0,7,0,10,0,9,0,8,0,3,0\n2,0,10,0,12,0,8,0,11,0,6,0\n5,0,9,0,1,0,7,0,3,0,4,0\n4,0,3,0,2,0,12,0,9,0,6,0\n7,0,1,0,5,0,11,0,8,0,10,0\n8,0,6,0,2,0,4,0,1,0,7,0\n3,0,12,0,11,0,10,0,5,0,9,0\n1,0,6,0,3,0,11,0,4,0,10,0\n7,0,5,0,8,0,9,0,12,0,2,0\n2,0,10,0,9,0,1,0,5,0,6,0\n12,0,11,0,3,0,4,0,7,0,8,0\n10,0,3,0,1,0,12,0,2,0,7,0\n6,0,9,0,4,0,8,0,5,0,11,0\n"
  },
  {
    "path": "schedules/13_1.csv",
    "content": "12,0,6,0,9,0,7,0,10,0,5,0\n11,0,13,0,3,0,4,0,2,0,8,0\n1,0,4,1,3,1,11,1,13,1,2,1\n"
  },
  {
    "path": "schedules/13_10.csv",
    "content": "10,0,6,0,1,0,7,0,13,0,11,0\n3,0,5,0,12,0,4,0,2,0,9,0\n8,0,2,0,4,0,13,0,10,0,5,0\n9,0,3,0,12,0,6,0,8,0,11,0\n7,0,10,0,9,0,5,0,12,0,1,0\n11,1,2,0,4,0,7,0,6,0,8,1\n8,0,1,0,13,0,3,0,4,0,10,0\n2,0,7,0,3,0,9,0,11,0,13,0\n12,0,6,0,13,0,1,0,5,0,2,0\n3,0,10,0,8,0,12,0,1,0,7,0\n9,0,5,0,6,0,4,0,11,0,10,0\n2,0,11,0,12,0,1,0,9,0,4,0\n6,0,13,0,5,0,8,0,3,0,7,0\n1,0,4,0,7,0,2,0,9,0,8,0\n5,0,3,0,13,0,10,0,12,0,6,0\n11,0,12,0,8,0,10,0,13,0,2,0\n4,0,7,0,5,0,11,0,1,0,3,0\n9,0,1,0,10,0,6,0,2,0,3,0\n13,0,4,0,6,0,12,0,9,0,7,0\n11,0,7,0,2,0,5,0,8,0,10,0\n13,0,8,0,1,0,5,0,11,0,9,0\n3,0,6,0,11,0,12,0,4,0,8,0\n"
  },
  {
    "path": "schedules/13_11.csv",
    "content": "2,0,9,0,4,0,3,0,6,0,8,0\n1,0,12,0,10,0,5,0,7,0,13,0\n3,0,2,0,5,0,11,0,4,0,10,0\n11,0,6,0,8,0,12,0,9,0,7,0\n13,0,9,0,2,0,1,0,5,0,6,0\n12,0,3,1,4,0,11,0,1,0,13,0\n7,0,8,0,1,0,10,0,3,0,6,0\n11,0,13,0,2,0,4,0,10,0,9,0\n5,0,12,0,2,0,7,0,8,0,13,0\n5,0,3,0,10,0,11,0,8,0,12,0\n1,0,4,0,7,0,6,0,9,0,5,0\n7,0,13,0,6,0,10,0,11,0,3,0\n8,0,4,0,2,0,1,0,9,0,12,0\n3,0,11,0,1,0,7,0,2,0,12,0\n13,0,6,0,10,0,5,0,4,0,8,0\n9,0,12,0,6,0,7,0,10,0,2,0\n9,0,8,0,3,0,13,0,1,0,11,0\n5,0,9,0,10,0,4,0,3,0,12,0\n5,0,8,0,11,0,6,0,2,0,1,0\n7,0,11,0,9,0,13,0,4,0,5,0\n13,0,10,0,12,0,3,0,2,0,6,0\n4,0,7,0,11,0,1,0,8,0,10,0\n3,0,5,0,7,0,8,0,2,0,9,0\n1,0,4,0,6,0,13,0,12,0,3,0\n"
  },
  {
    "path": "schedules/13_12.csv",
    "content": "11,0,3,0,9,0,1,0,12,0,10,0\n8,0,4,0,5,0,2,0,6,0,7,0\n13,0,4,0,7,0,8,0,1,0,11,0\n12,0,6,0,9,0,10,0,5,0,2,0\n12,0,5,0,3,0,13,0,1,0,6,0\n10,0,4,0,9,0,3,0,13,0,2,0\n11,0,10,0,3,0,8,0,5,0,7,0\n7,0,6,0,8,0,13,0,9,0,1,0\n12,0,11,0,13,0,4,0,3,0,2,0\n12,0,2,0,10,0,6,0,7,0,4,0\n9,0,11,0,2,0,5,0,8,0,1,0\n1,0,5,0,11,0,4,0,12,0,9,0\n7,0,13,0,8,0,6,0,3,0,10,0\n2,0,1,0,8,0,5,0,10,0,13,0\n7,0,11,0,4,0,6,0,9,0,12,0\n1,0,12,0,4,0,3,0,10,0,8,0\n9,0,7,0,3,0,6,0,2,0,11,0\n5,0,2,0,1,0,13,0,7,0,12,0\n5,0,13,0,6,0,3,0,4,0,11,0\n8,0,9,0,13,0,10,0,11,0,12,0\n9,0,8,0,6,0,4,0,3,0,1,0\n1,0,10,0,7,0,5,0,2,0,3,0\n10,0,13,0,4,0,7,0,9,0,5,0\n2,0,12,0,6,0,11,0,8,0,13,0\n2,0,1,0,10,0,4,0,6,0,11,0\n3,0,8,0,12,0,9,0,7,0,5,0\n"
  },
  {
    "path": "schedules/13_13.csv",
    "content": "13,0,9,0,1,0,4,0,7,0,11,0\n12,0,2,0,5,0,6,0,3,0,8,0\n4,0,8,0,9,0,13,0,6,0,10,0\n3,0,7,0,12,0,11,0,2,0,10,0\n5,0,6,0,11,0,8,0,10,0,1,0\n3,1,1,1,7,1,13,1,5,1,4,0\n2,0,13,0,3,0,12,0,9,0,6,0\n2,0,5,0,9,0,1,0,7,0,8,0\n4,0,11,0,13,0,10,0,6,0,12,0\n2,0,10,0,9,0,5,0,3,0,11,0\n8,0,4,0,12,0,1,0,7,0,2,0\n7,0,8,0,6,0,3,0,4,0,11,0\n5,0,1,0,10,0,13,0,12,0,9,0\n10,0,3,0,7,0,12,0,1,0,8,0\n4,0,6,0,2,0,11,0,9,0,5,0\n1,0,5,0,4,0,13,0,2,0,3,0\n11,0,8,0,6,0,13,0,12,0,7,0\n9,0,3,0,8,0,10,0,4,0,13,0\n9,0,10,0,7,0,2,0,6,0,1,0\n11,0,12,0,2,0,5,0,8,0,13,0\n6,0,12,0,3,0,9,0,11,0,1,0\n10,0,5,0,12,0,7,0,4,0,6,0\n11,0,13,0,10,0,7,0,2,0,5,0\n3,0,1,0,4,0,8,0,11,0,9,0\n6,0,1,0,13,0,8,0,10,0,2,0\n3,0,9,0,4,0,12,0,5,0,7,0\n12,0,11,0,2,0,1,0,10,0,4,0\n7,0,13,0,8,0,9,0,5,0,3,0\n3,0,1,0,7,0,6,0,13,0,5,0\n"
  },
  {
    "path": "schedules/13_14.csv",
    "content": "8,0,12,0,4,0,3,0,10,0,5,0\n9,0,1,0,7,0,13,0,2,0,6,0\n11,0,8,0,4,0,7,0,1,0,13,0\n6,0,5,0,3,0,12,0,9,0,2,0\n11,0,13,0,1,0,5,0,8,0,10,0\n4,1,10,1,2,0,7,0,12,1,3,1\n9,0,2,0,8,0,6,0,11,0,12,0\n10,0,6,0,9,0,5,0,4,0,1,0\n5,0,13,0,11,0,3,0,7,0,4,0\n6,0,12,0,9,0,7,0,1,0,11,0\n2,0,3,0,8,0,9,0,10,0,13,0\n1,0,12,0,11,0,4,0,2,0,13,0\n6,0,10,0,7,0,3,0,8,0,5,0\n10,0,6,0,1,0,12,0,13,0,3,0\n8,0,5,0,7,0,4,0,9,0,11,0\n2,0,1,0,12,0,4,0,5,0,6,0\n13,0,9,0,3,0,2,0,11,0,10,0\n7,0,9,0,5,0,8,0,2,0,13,0\n3,0,4,0,7,0,1,0,6,0,8,0\n2,0,12,0,10,0,11,0,7,0,8,0\n11,0,4,0,3,0,13,0,9,0,6,0\n1,0,5,0,9,0,12,0,10,0,7,0\n12,0,13,0,5,0,8,0,3,0,1,0\n2,0,6,0,4,0,10,0,11,0,5,0\n4,0,13,0,10,0,6,0,7,0,2,0\n1,0,3,0,12,0,8,0,11,0,9,0\n13,0,6,0,11,0,5,0,7,0,12,0\n1,0,8,0,4,0,9,0,2,0,3,0\n10,0,8,0,13,0,4,0,12,0,6,0\n5,0,11,0,2,0,3,0,10,0,1,0\n7,0,4,0,10,0,9,0,3,0,12,0\n"
  },
  {
    "path": "schedules/13_2.csv",
    "content": "11,0,13,0,10,0,12,0,5,0,9,0\n6,0,2,0,4,0,3,0,7,0,8,0\n1,0,3,0,13,0,8,0,10,0,2,0\n9,0,11,0,6,0,7,0,4,0,1,0\n8,1,12,0,3,1,5,0,4,1,7,1\n"
  },
  {
    "path": "schedules/13_3.csv",
    "content": "5,0,13,0,12,0,9,0,11,0,1,0\n6,0,2,0,10,0,8,0,7,0,4,0\n3,0,9,0,5,0,13,0,8,0,6,0\n11,0,12,0,2,0,4,0,3,0,10,0\n7,0,6,0,11,0,1,0,12,0,8,0\n9,0,4,0,13,0,2,0,5,0,7,0\n13,1,1,0,3,0,10,0,9,1,5,1\n"
  },
  {
    "path": "schedules/13_4.csv",
    "content": "12,0,11,0,13,0,7,0,4,0,1,0\n3,0,8,0,5,0,10,0,9,0,6,0\n9,0,2,0,1,0,12,0,8,0,10,0\n4,0,5,0,2,0,13,0,3,0,7,0\n11,0,1,0,3,0,6,0,7,0,5,0\n12,1,4,0,9,0,11,1,6,0,2,0\n13,0,10,0,4,0,8,0,9,0,11,0\n6,0,12,0,3,0,1,0,13,0,8,0\n2,0,7,0,12,0,5,0,10,0,11,0\n"
  },
  {
    "path": "schedules/13_5.csv",
    "content": "8,0,2,0,1,0,6,0,3,0,9,0\n13,0,11,0,10,0,4,0,7,0,12,0\n7,0,8,0,6,0,10,0,12,0,5,0\n5,0,13,0,4,0,1,0,9,0,11,0\n3,0,1,0,4,0,2,0,6,0,11,0\n9,0,13,0,2,0,8,1,3,0,10,0\n5,0,7,0,9,0,11,0,12,0,3,0\n4,0,10,0,6,0,7,0,1,0,13,0\n2,0,5,0,3,0,12,0,8,0,13,0\n8,0,11,0,5,0,10,0,2,0,7,0\n12,0,6,0,1,0,9,0,4,0,8,0\n"
  },
  {
    "path": "schedules/13_6.csv",
    "content": "4,0,8,0,5,0,6,0,11,0,10,0\n9,0,2,0,12,0,3,0,7,0,1,0\n8,0,13,0,11,0,9,0,1,0,6,0\n12,0,4,0,3,0,2,0,13,0,5,0\n8,0,9,0,10,0,7,0,12,0,11,0\n10,0,5,0,1,0,2,0,4,0,6,0\n13,0,3,0,9,0,7,0,2,0,8,0\n7,0,6,0,13,0,11,0,5,0,3,0\n4,0,10,0,7,0,1,0,12,0,8,0\n11,0,9,0,4,0,10,0,3,0,2,0\n5,0,6,0,12,0,13,0,1,0,4,0\n1,0,11,0,2,0,5,0,7,0,9,0\n3,0,8,0,6,0,12,0,10,0,13,0\n"
  },
  {
    "path": "schedules/13_7.csv",
    "content": "5,0,6,0,2,0,8,0,10,0,11,0\n4,0,12,0,7,0,13,0,9,0,1,0\n9,0,2,0,13,0,3,0,7,0,10,0\n1,0,3,0,4,0,11,0,5,0,8,0\n1,0,8,0,12,0,6,0,10,0,9,0\n2,1,3,1,5,1,13,1,6,1,4,0\n12,0,11,0,6,0,13,0,5,0,7,0\n7,0,11,0,1,0,3,0,12,0,10,0\n9,0,8,0,12,0,2,0,4,0,11,0\n10,0,1,0,2,0,8,0,4,0,13,0\n5,0,9,0,3,0,6,0,7,0,1,0\n6,0,8,0,3,0,12,0,13,0,2,0\n5,0,4,0,10,0,11,0,9,0,7,0\n11,0,3,0,13,0,4,0,6,0,9,0\n7,0,2,0,8,0,12,0,1,0,5,0\n10,0,13,0,6,0,2,0,3,0,5,0\n"
  },
  {
    "path": "schedules/13_8.csv",
    "content": "9,0,4,0,3,0,5,0,12,0,2,0\n10,0,6,0,11,0,7,0,8,0,1,0\n4,0,1,0,6,0,13,0,3,0,2,0\n5,0,7,0,13,0,12,0,9,0,8,0\n12,0,2,0,10,0,11,0,9,0,6,0\n8,1,11,0,5,1,10,1,13,0,3,1\n2,0,4,0,7,0,13,0,1,0,9,0\n8,0,4,0,11,0,6,0,3,0,12,0\n1,0,5,0,3,0,7,0,10,0,9,0\n4,0,13,0,10,0,11,0,7,0,12,0\n2,0,6,0,8,0,4,0,5,0,1,0\n9,0,2,0,7,0,3,0,8,0,11,0\n12,0,1,0,13,0,6,0,5,0,10,0\n6,0,7,0,5,0,10,0,3,0,4,0\n8,0,13,0,12,0,1,0,11,0,2,0\n8,0,10,0,1,0,9,0,12,0,4,0\n3,0,9,0,5,0,11,0,6,0,13,0\n7,0,10,0,3,0,2,0,8,0,5,0\n"
  },
  {
    "path": "schedules/13_9.csv",
    "content": "10,0,1,0,8,0,12,0,2,0,7,0\n5,0,3,0,13,0,9,0,11,0,4,0\n10,0,6,0,2,0,5,0,8,0,4,0\n9,0,11,0,12,0,6,0,7,0,13,0\n6,0,1,0,9,0,3,0,2,0,10,0\n5,1,7,0,13,1,12,1,3,0,11,0\n7,0,1,0,4,0,5,0,6,0,8,0\n3,0,2,0,1,0,10,0,13,0,11,0\n8,0,12,0,2,0,4,0,9,0,3,0\n1,0,11,0,5,0,8,0,10,0,9,0\n7,0,4,0,10,0,12,0,6,0,13,0\n9,0,5,0,12,0,11,0,2,0,6,0\n4,0,13,0,3,0,1,0,8,0,7,0\n2,0,5,0,9,0,13,0,12,0,1,0\n11,0,10,0,6,0,3,0,8,0,7,0\n4,0,10,0,5,0,7,0,9,0,3,0\n2,0,4,0,6,0,11,0,12,0,1,0\n8,0,7,0,11,0,13,0,5,0,2,0\n13,0,9,0,8,0,12,0,4,0,10,0\n6,0,3,0,12,0,1,0,13,0,5,0\n"
  },
  {
    "path": "schedules/14_1.csv",
    "content": "9,0,2,0,6,0,5,0,14,0,10,0\n7,0,12,0,4,0,13,0,3,0,8,0\n11,0,13,1,8,1,1,0,10,1,3,1\n"
  },
  {
    "path": "schedules/14_10.csv",
    "content": "2,0,1,0,6,0,10,0,14,0,5,0\n12,0,11,0,9,0,7,0,13,0,4,0\n4,0,5,0,8,0,3,0,9,0,7,0\n6,0,10,0,13,0,3,0,11,0,8,0\n12,0,2,0,4,0,14,0,13,0,1,0\n12,1,10,1,3,0,9,1,5,1,14,0\n7,0,1,0,11,0,8,0,2,0,6,0\n2,0,7,0,14,0,6,0,11,0,12,0\n13,0,10,0,3,0,5,0,4,0,1,0\n11,0,5,0,8,0,9,0,14,0,4,0\n12,0,9,0,13,0,7,0,6,0,10,0\n9,0,8,0,1,0,12,0,3,0,2,0\n8,0,10,0,7,0,6,0,4,0,1,0\n14,0,3,0,5,0,11,0,13,0,2,0\n4,0,2,0,3,0,10,0,9,0,7,0\n8,0,14,0,12,0,13,0,5,0,6,0\n11,0,6,0,14,0,1,0,3,0,9,0\n5,0,7,0,13,0,1,0,8,0,11,0\n10,0,4,0,11,0,2,0,12,0,5,0\n14,0,7,0,12,0,3,0,8,0,10,0\n13,0,6,0,9,0,4,0,1,0,2,0\n9,0,2,0,10,0,14,0,8,0,13,0\n3,0,4,0,6,0,5,0,12,0,7,0\n1,0,12,0,10,0,11,0,9,0,5,0\n"
  },
  {
    "path": "schedules/14_11.csv",
    "content": "5,0,10,0,14,0,4,0,2,0,1,0\n12,0,9,0,6,0,13,0,7,0,8,0\n3,0,7,0,9,0,11,0,13,0,1,0\n8,0,4,0,6,0,14,0,11,0,3,0\n10,0,2,0,11,0,9,0,12,0,5,0\n13,1,14,0,3,0,10,1,4,0,7,0\n6,0,2,0,5,0,8,0,12,0,1,0\n12,0,7,0,11,0,3,0,6,0,2,0\n9,0,13,0,8,0,4,0,14,0,5,0\n1,0,9,0,12,0,3,0,10,0,8,0\n6,0,1,0,10,0,2,0,4,0,13,0\n2,0,7,0,14,0,11,0,5,0,8,0\n10,0,12,0,3,0,9,0,14,0,13,0\n5,0,1,0,7,0,4,0,11,0,6,0\n14,0,8,0,2,0,3,0,1,0,6,0\n5,0,11,0,4,0,13,0,10,0,12,0\n7,0,3,0,4,0,9,0,5,0,2,0\n1,0,8,0,14,0,7,0,10,0,12,0\n11,0,9,0,2,0,13,0,6,0,14,0\n12,0,5,0,13,0,1,0,3,0,7,0\n8,0,6,0,11,0,10,0,4,0,9,0\n13,0,3,0,4,0,2,0,8,0,12,0\n10,0,9,0,1,0,6,0,5,0,7,0\n14,0,12,0,4,0,11,0,1,0,9,0\n2,0,13,0,10,0,7,0,8,0,11,0\n5,0,3,0,13,0,14,0,6,0,10,0\n"
  },
  {
    "path": "schedules/14_12.csv",
    "content": "8,0,3,0,5,0,12,0,4,0,14,0\n9,0,7,0,10,0,6,0,13,0,11,0\n1,0,3,0,13,0,6,0,2,0,5,0\n2,0,12,0,7,0,8,0,10,0,1,0\n12,0,14,0,9,0,11,0,4,0,2,0\n14,0,13,0,5,0,1,0,7,0,9,0\n6,0,10,0,8,0,3,0,4,0,11,0\n12,0,11,0,1,0,3,0,7,0,6,0\n5,0,10,0,13,0,8,0,2,0,9,0\n10,0,7,0,4,0,2,0,14,0,3,0\n11,0,1,0,12,0,13,0,9,0,4,0\n5,0,8,0,1,0,14,0,6,0,13,0\n14,0,6,0,11,0,10,0,5,0,12,0\n2,0,9,0,7,0,4,0,8,0,3,0\n13,0,8,0,2,0,4,0,6,0,12,0\n10,0,11,0,9,0,3,0,1,0,5,0\n14,0,3,0,8,0,7,0,11,0,13,0\n9,0,12,0,6,0,7,0,14,0,2,0\n5,0,4,0,8,0,1,0,10,0,14,0\n1,0,6,0,7,0,10,0,9,0,4,0\n13,0,2,0,12,0,5,0,3,0,11,0\n2,0,3,0,10,0,13,0,14,0,1,0\n4,0,11,0,8,0,9,0,5,0,6,0\n7,0,5,0,4,0,12,0,13,0,10,0\n3,0,12,0,14,0,6,0,9,0,1,0\n11,0,2,0,6,0,7,0,8,0,14,0\n4,0,1,0,2,0,11,0,5,0,7,0\n9,0,13,0,3,0,8,0,12,0,10,0\n"
  },
  {
    "path": "schedules/14_13.csv",
    "content": "5,0,2,0,1,0,8,0,10,0,13,0\n9,0,6,0,12,0,4,0,3,0,11,0\n10,0,11,0,14,0,6,0,7,0,8,0\n7,0,3,0,12,0,9,0,1,0,4,0\n9,0,13,0,2,0,5,0,14,0,11,0\n4,1,8,1,7,0,12,1,5,1,13,0\n10,0,2,0,6,0,1,0,14,0,3,0\n11,0,12,0,14,0,1,0,9,0,7,0\n8,0,6,0,4,0,5,0,3,0,10,0\n13,0,3,0,6,0,2,0,7,0,1,0\n12,0,8,0,5,0,2,0,9,0,14,0\n10,0,4,0,2,0,11,0,13,0,9,0\n10,0,5,0,6,0,7,0,11,0,12,0\n3,0,1,0,8,0,14,0,4,0,13,0\n1,0,13,0,3,0,9,0,5,0,11,0\n14,0,2,0,7,0,12,0,4,0,10,0\n8,0,2,0,5,0,6,0,12,0,1,0\n4,0,14,0,9,0,6,0,13,0,10,0\n3,0,7,0,14,0,11,0,8,0,2,0\n5,0,7,0,10,0,3,0,9,0,8,0\n6,0,1,0,11,0,13,0,12,0,4,0\n12,0,14,0,6,0,13,0,5,0,3,0\n4,0,11,0,1,0,8,0,9,0,10,0\n2,0,5,0,3,0,7,0,11,0,4,0\n7,0,9,0,13,0,8,0,6,0,14,0\n12,0,1,0,9,0,2,0,10,0,3,0\n13,0,8,0,7,0,12,0,4,0,2,0\n11,0,10,0,1,0,14,0,6,0,5,0\n4,0,5,0,9,0,2,0,7,0,6,0\n13,0,10,0,11,0,3,0,8,0,12,0\n14,0,4,0,8,0,1,0,12,0,5,0\n"
  },
  {
    "path": "schedules/14_14.csv",
    "content": "12,0,14,0,9,0,5,0,1,0,6,0\n3,0,10,0,4,0,8,0,13,0,7,0\n10,0,2,0,7,0,1,0,11,0,14,0\n3,0,2,0,12,0,11,0,13,0,9,0\n8,0,5,0,14,0,4,0,6,0,13,0\n4,1,3,0,11,0,12,1,6,0,7,0\n9,0,5,0,2,0,1,0,10,0,8,0\n13,0,6,0,12,0,1,0,8,0,2,0\n4,0,14,0,11,0,3,0,10,0,9,0\n7,0,4,0,9,0,5,0,12,0,13,0\n11,0,7,0,10,0,6,0,5,0,8,0\n2,0,1,0,4,0,3,0,14,0,8,0\n7,0,6,0,3,0,12,0,9,0,1,0\n14,0,5,0,11,0,10,0,13,0,2,0\n14,0,5,0,13,0,1,0,7,0,3,0\n4,0,12,0,8,0,9,0,2,0,11,0\n6,0,12,0,1,0,10,0,8,0,5,0\n10,0,9,0,7,0,4,0,14,0,2,0\n6,0,11,0,5,0,13,0,3,0,14,0\n11,0,13,0,8,0,7,0,9,0,1,0\n12,0,3,0,2,0,6,0,4,0,10,0\n4,0,10,0,13,0,1,0,11,0,6,0\n2,0,8,0,9,0,7,0,3,0,5,0\n14,0,8,0,10,0,12,0,3,0,5,0\n12,0,11,0,1,0,7,0,4,0,14,0\n6,0,9,0,3,0,13,0,2,0,7,0\n5,0,1,0,4,0,2,0,11,0,6,0\n9,0,8,0,13,0,14,0,10,0,12,0\n8,0,7,0,12,0,2,0,6,0,14,0\n5,0,1,0,10,0,9,0,4,0,3,0\n13,0,1,0,3,0,11,0,12,0,10,0\n14,0,9,0,6,0,8,0,4,0,11,0\n5,0,7,0,4,0,13,0,2,0,12,0\n"
  },
  {
    "path": "schedules/14_2.csv",
    "content": "13,0,6,0,14,0,12,0,9,0,7,0\n2,0,8,0,10,0,3,0,5,0,4,0\n1,0,13,0,2,0,11,0,14,0,8,0\n4,0,11,0,1,0,6,0,10,0,9,0\n5,0,7,0,1,1,11,1,12,0,3,0\n"
  },
  {
    "path": "schedules/14_3.csv",
    "content": "13,0,6,0,5,0,8,0,4,0,3,0\n11,0,12,0,9,0,14,0,2,0,10,0\n7,0,5,0,8,0,1,0,11,0,14,0\n6,0,2,0,12,0,1,0,7,0,13,0\n10,0,4,0,1,0,3,0,9,0,7,0\n13,0,14,0,4,0,11,0,10,0,6,0\n9,0,8,0,2,0,5,0,3,0,12,0\n"
  },
  {
    "path": "schedules/14_4.csv",
    "content": "1,0,7,0,9,0,3,0,11,0,13,0\n5,0,6,0,4,0,10,0,12,0,8,0\n8,0,14,0,7,0,1,0,2,0,10,0\n2,0,5,0,14,0,6,0,9,0,3,0\n11,0,12,0,6,0,7,0,4,0,13,0\n9,1,4,1,10,0,1,1,13,0,5,1\n3,0,14,0,12,0,2,0,8,0,11,0\n11,0,10,0,7,0,9,0,8,0,5,0\n13,0,6,0,2,0,4,0,3,0,1,0\n12,0,1,0,5,0,14,0,9,0,4,0\n"
  },
  {
    "path": "schedules/14_5.csv",
    "content": "5,0,14,0,8,0,3,0,2,0,10,0\n1,0,11,0,13,0,7,0,6,0,4,0\n12,0,4,0,10,0,2,0,9,0,1,0\n3,0,5,0,7,0,6,0,12,0,9,0\n11,0,14,0,9,0,8,0,13,0,7,0\n8,0,6,1,2,0,14,1,1,0,4,0\n13,0,3,0,12,0,5,0,10,0,11,0\n10,0,7,0,1,0,13,0,6,0,5,0\n4,0,11,0,2,0,9,0,8,0,3,0\n14,0,10,0,6,0,12,0,8,0,11,0\n4,0,9,0,5,0,14,0,7,0,12,0\n1,0,3,0,6,0,2,0,13,0,14,0\n"
  },
  {
    "path": "schedules/14_6.csv",
    "content": "7,0,8,0,5,0,3,0,12,0,2,0\n6,0,4,0,1,0,9,0,14,0,13,0\n11,0,9,0,4,0,5,0,10,0,6,0\n14,0,10,0,11,0,13,0,12,0,7,0\n8,0,2,0,10,0,1,0,11,0,3,0\n1,0,2,0,9,0,12,0,4,0,5,0\n13,0,3,0,8,0,6,0,7,0,14,0\n9,0,5,0,3,0,8,0,13,0,1,0\n12,0,11,0,6,0,4,0,7,0,2,0\n14,0,8,0,12,0,10,0,13,0,4,0\n11,0,3,0,7,0,5,0,1,0,14,0\n2,0,6,0,13,0,10,0,9,0,12,0\n7,0,1,0,10,0,8,0,6,0,9,0\n4,0,14,0,3,0,2,0,5,0,11,0\n"
  },
  {
    "path": "schedules/14_7.csv",
    "content": "6,0,8,0,11,0,13,0,2,0,14,0\n1,0,5,0,4,0,3,0,10,0,9,0\n12,0,6,0,14,0,2,0,7,0,1,0\n3,0,11,0,7,0,10,0,4,0,13,0\n10,0,12,0,5,0,9,0,8,0,2,0\n13,1,5,1,1,0,12,1,4,1,11,0\n14,0,3,0,8,0,7,0,9,0,6,0\n8,0,5,0,7,0,1,0,6,0,10,0\n11,0,9,0,13,0,2,0,3,0,12,0\n4,0,13,0,8,0,14,0,1,0,9,0\n11,0,10,0,14,0,5,0,6,0,3,0\n7,0,2,0,10,0,4,0,12,0,3,0\n2,0,4,0,6,0,8,0,1,0,11,0\n9,0,14,0,5,0,12,0,7,0,13,0\n13,0,1,0,3,0,8,0,10,0,12,0\n5,0,11,0,2,0,7,0,14,0,4,0\n9,0,12,0,4,0,6,0,13,0,5,0\n"
  },
  {
    "path": "schedules/14_8.csv",
    "content": "8,0,4,0,2,0,10,0,5,0,9,0\n12,0,3,0,13,0,14,0,11,0,7,0\n6,0,5,0,7,0,10,0,1,0,12,0\n4,0,13,0,9,0,6,0,14,0,1,0\n3,0,5,0,2,0,8,0,11,0,14,0\n12,0,11,1,2,0,4,1,10,0,6,0\n1,0,9,0,8,0,3,0,7,0,13,0\n6,0,8,0,12,0,1,0,7,0,4,0\n9,0,11,0,10,0,14,0,13,0,5,0\n2,0,7,0,10,0,3,0,4,0,14,0\n1,0,3,0,6,0,5,0,9,0,8,0\n11,0,12,0,5,0,13,0,2,0,1,0\n13,0,14,0,10,0,7,0,12,0,8,0\n4,0,6,0,11,0,2,0,9,0,3,0\n10,0,8,0,3,0,13,0,2,0,6,0\n5,0,1,0,4,0,9,0,12,0,14,0\n7,0,10,0,4,0,11,0,3,0,1,0\n14,0,2,0,11,0,9,0,6,0,7,0\n8,0,13,0,11,0,5,0,4,0,12,0\n"
  },
  {
    "path": "schedules/14_9.csv",
    "content": "2,0,4,0,1,0,5,0,3,0,7,0\n8,0,6,0,9,0,11,0,10,0,13,0\n2,0,3,0,14,0,9,0,12,0,11,0\n7,0,4,0,13,0,12,0,14,0,8,0\n10,0,4,0,6,0,1,0,5,0,14,0\n5,0,6,0,12,0,9,0,3,0,8,0\n11,0,7,0,1,0,10,0,13,0,2,0\n6,0,8,0,5,0,7,0,2,0,11,0\n3,0,1,0,12,0,14,0,10,0,9,0\n13,0,2,0,8,0,14,0,1,0,4,0\n5,0,7,0,10,0,13,0,9,0,3,0\n4,0,12,0,2,0,6,0,11,0,10,0\n12,0,8,0,3,0,1,0,13,0,6,0\n14,0,9,0,7,0,11,0,5,0,4,0\n9,0,5,0,13,0,6,0,14,0,2,0\n3,0,11,0,10,0,4,0,8,0,7,0\n1,0,9,0,4,0,12,0,7,0,6,0\n13,0,14,0,10,0,2,0,12,0,5,0\n8,0,11,0,14,0,3,0,1,0,5,0\n7,0,2,0,9,0,8,0,10,0,1,0\n11,0,13,0,12,0,4,0,6,0,3,0\n"
  },
  {
    "path": "schedules/15_1.csv",
    "content": "1,0,15,0,6,0,4,0,2,0,5,0\n9,0,3,0,13,0,14,0,11,0,8,0\n12,0,10,0,4,1,7,0,13,1,3,1\n"
  },
  {
    "path": "schedules/15_10.csv",
    "content": "6,0,12,0,10,0,5,0,1,0,11,0\n2,0,3,0,15,0,9,0,7,0,14,0\n8,0,4,0,7,0,2,0,6,0,13,0\n4,0,15,0,5,0,1,0,3,0,8,0\n14,0,9,0,12,0,13,0,10,0,11,0\n13,0,15,0,10,0,14,0,4,0,5,0\n12,0,2,0,1,0,3,0,8,0,9,0\n3,0,7,0,6,0,11,0,12,0,4,0\n8,0,11,0,2,0,15,0,6,0,14,0\n9,0,5,0,13,0,1,0,7,0,10,0\n6,0,14,0,1,0,7,0,13,0,3,0\n5,0,10,0,11,0,2,0,9,0,4,0\n12,0,8,0,13,0,15,0,6,0,9,0\n14,0,11,0,7,0,15,0,8,0,5,0\n1,0,4,0,3,0,12,0,10,0,2,0\n4,0,13,0,8,0,10,0,3,0,11,0\n6,0,15,0,12,0,5,0,2,0,7,0\n14,0,1,0,8,0,9,0,12,0,4,0\n7,0,13,0,1,0,11,0,2,0,15,0\n10,0,5,0,9,0,3,0,14,0,6,0\n9,0,1,0,15,0,4,0,11,0,6,0\n3,0,5,0,12,0,13,0,14,0,2,0\n10,0,4,0,8,0,7,0,15,0,12,0\n11,0,9,0,3,0,13,0,5,0,7,0\n10,0,2,0,14,0,8,0,1,0,6,0\n"
  },
  {
    "path": "schedules/15_11.csv",
    "content": "5,0,2,0,9,0,4,0,6,0,1,0\n11,0,7,0,13,0,14,0,3,0,15,0\n12,0,8,0,9,0,11,0,3,0,10,0\n4,0,15,0,10,0,1,0,5,0,12,0\n8,0,6,0,14,0,2,0,7,0,13,0\n15,1,11,0,8,0,4,0,9,0,5,1\n12,0,1,0,2,0,6,1,13,0,3,0\n7,0,14,0,15,0,10,0,6,0,12,0\n4,0,14,0,5,0,3,0,13,0,8,0\n2,0,10,0,7,0,9,0,11,0,1,0\n13,0,15,0,6,0,11,0,10,0,5,0\n2,0,12,0,14,0,8,0,7,0,1,0\n3,0,4,0,7,0,9,0,15,0,1,0\n3,0,12,0,14,0,6,0,9,0,5,0\n13,0,4,0,11,0,2,0,10,0,8,0\n8,0,5,0,15,0,3,0,2,0,11,0\n7,0,10,0,9,0,12,0,13,0,4,0\n6,0,1,0,3,0,14,0,4,0,11,0\n14,0,1,0,13,0,15,0,9,0,12,0\n5,0,8,0,10,0,6,0,7,0,2,0\n11,0,8,0,6,0,1,0,3,0,10,0\n5,0,4,0,2,0,14,0,12,0,7,0\n9,0,13,0,3,0,15,0,2,0,6,0\n1,0,12,0,7,0,13,0,5,0,11,0\n10,0,14,0,9,0,15,0,8,0,4,0\n5,0,1,0,3,0,10,0,14,0,13,0\n12,0,11,0,15,0,6,0,2,0,4,0\n9,0,15,0,6,0,7,0,5,0,8,0\n"
  },
  {
    "path": "schedules/15_12.csv",
    "content": "9,0,1,0,13,0,15,0,8,0,10,0\n6,0,11,0,5,0,3,0,7,0,14,0\n1,0,11,0,2,0,9,0,4,0,12,0\n4,0,3,0,15,0,10,0,14,0,7,0\n5,0,6,0,2,0,13,0,8,0,12,0\n2,0,10,0,1,0,6,0,13,0,3,0\n14,0,5,0,11,0,8,0,4,0,9,0\n15,0,3,0,10,0,12,0,7,0,9,0\n1,0,15,0,5,0,12,0,11,0,2,0\n7,0,13,0,4,0,14,0,6,0,8,0\n14,0,12,0,6,0,8,0,5,0,10,0\n2,0,1,0,7,0,3,0,4,0,11,0\n13,0,9,0,11,0,4,0,15,0,6,0\n10,0,13,0,12,0,5,0,1,0,7,0\n8,0,9,0,15,0,2,0,3,0,14,0\n7,0,6,0,8,0,10,0,15,0,2,0\n13,0,14,0,4,0,12,0,1,0,3,0\n5,0,9,0,3,0,8,0,11,0,1,0\n4,0,12,0,5,0,10,0,6,0,9,0\n13,0,2,0,14,0,11,0,7,0,15,0\n11,0,10,0,4,0,3,0,5,0,13,0\n7,0,8,0,9,0,1,0,12,0,6,0\n14,0,15,0,12,0,2,0,4,0,6,0\n7,0,3,0,5,0,9,0,2,0,13,0\n1,0,11,0,10,0,15,0,8,0,14,0\n9,0,14,0,1,0,5,0,2,0,7,0\n3,0,12,0,8,0,15,0,13,0,4,0\n6,0,10,0,13,0,11,0,9,0,14,0\n6,0,7,0,15,0,4,0,5,0,1,0\n12,0,2,0,8,0,11,0,10,0,3,0\n"
  },
  {
    "path": "schedules/15_13.csv",
    "content": "15,0,2,0,14,0,12,0,3,0,11,0\n5,0,4,0,1,0,7,0,10,0,8,0\n3,0,6,0,10,0,9,0,13,0,8,0\n5,0,4,0,6,0,15,0,13,0,11,0\n1,0,7,0,9,0,2,0,14,0,12,0\n12,1,3,0,11,0,10,1,1,0,8,0\n15,0,2,0,7,1,4,0,14,0,13,0\n9,0,5,0,4,0,6,0,12,0,14,0\n10,0,1,0,11,0,6,0,2,0,9,0\n5,0,13,0,7,0,3,0,8,0,15,0\n14,0,9,0,3,0,7,0,5,0,6,0\n12,0,10,0,2,0,4,0,8,0,13,0\n11,0,15,0,13,0,3,0,5,0,1,0\n14,0,12,0,8,0,1,0,6,0,15,0\n7,0,11,0,4,0,2,0,9,0,10,0\n9,0,6,0,2,0,7,0,5,0,12,0\n3,0,1,0,14,0,4,0,15,0,10,0\n11,0,8,0,1,0,13,0,14,0,7,0\n2,0,8,0,15,0,11,0,5,0,9,0\n12,0,6,0,4,0,13,0,3,0,10,0\n1,0,13,0,12,0,14,0,11,0,5,0\n10,0,9,0,15,0,8,0,3,0,2,0\n4,0,7,0,3,0,6,0,11,0,12,0\n10,0,6,0,14,0,2,0,13,0,5,0\n7,0,8,0,9,0,1,0,15,0,4,0\n13,0,3,0,6,0,4,0,2,0,1,0\n8,0,15,0,5,0,12,0,10,0,7,0\n14,0,11,0,5,0,9,0,4,0,3,0\n10,0,1,0,13,0,15,0,12,0,9,0\n11,0,14,0,2,0,8,0,7,0,6,0\n8,0,9,0,12,0,13,0,4,0,14,0\n5,0,10,0,3,0,1,0,7,0,2,0\n15,0,12,0,7,0,6,0,11,0,10,0\n"
  },
  {
    "path": "schedules/15_14.csv",
    "content": "2,0,9,0,5,0,11,0,10,0,6,0\n13,0,8,0,15,0,12,0,4,0,7,0\n12,0,3,0,1,0,14,0,15,0,9,0\n13,0,3,0,7,0,1,0,2,0,5,0\n10,0,14,0,11,0,6,0,4,0,8,0\n13,0,1,0,4,0,9,0,10,0,8,0\n5,0,6,0,12,0,2,0,7,0,14,0\n15,0,3,0,2,0,11,0,4,0,9,0\n11,0,8,0,1,0,7,0,6,0,5,0\n3,0,15,0,10,0,13,0,14,0,12,0\n9,0,12,0,8,0,7,0,10,0,5,0\n2,0,11,0,13,0,14,0,3,0,4,0\n1,0,9,0,2,0,14,0,15,0,6,0\n1,0,5,0,10,0,11,0,12,0,13,0\n6,0,15,0,4,0,3,0,7,0,8,0\n7,0,11,0,6,0,15,0,13,0,9,0\n5,0,3,0,12,0,2,0,8,0,4,0\n14,0,11,0,3,0,1,0,10,0,7,0\n15,0,5,0,1,0,4,0,2,0,10,0\n14,0,6,0,9,0,8,0,13,0,12,0\n6,0,4,0,2,0,7,0,12,0,1,0\n8,0,5,0,14,0,9,0,11,0,3,0\n10,0,13,0,6,0,8,0,2,0,15,0\n4,0,1,0,3,0,5,0,9,0,13,0\n12,0,14,0,10,0,15,0,7,0,11,0\n7,0,13,0,14,0,4,0,5,0,11,0\n12,0,9,0,2,0,8,0,1,0,3,0\n10,0,15,0,7,0,6,0,9,0,3,0\n15,0,8,0,13,0,5,0,2,0,14,0\n4,0,10,0,11,0,12,0,6,0,1,0\n1,0,6,0,14,0,5,0,4,0,15,0\n9,0,8,0,7,0,2,0,13,0,11,0\n10,0,12,0,6,0,3,0,5,0,13,0\n3,0,12,0,15,0,11,0,1,0,8,0\n9,0,7,0,4,0,10,0,14,0,2,0\n"
  },
  {
    "path": "schedules/15_2.csv",
    "content": "13,0,15,0,7,0,2,0,10,0,6,0\n4,0,9,0,8,0,12,0,11,0,5,0\n1,0,12,0,4,0,3,0,14,0,15,0\n7,0,3,0,2,0,8,0,13,0,11,0\n6,0,5,0,9,0,10,0,1,0,14,0\n"
  },
  {
    "path": "schedules/15_3.csv",
    "content": "3,0,4,0,10,0,7,0,9,0,1,0\n13,0,8,0,12,0,15,0,5,0,11,0\n14,0,2,0,15,0,9,0,3,0,6,0\n1,0,11,0,8,0,2,0,6,0,7,0\n5,0,13,0,4,0,12,0,10,0,14,0\n4,0,14,0,11,0,10,0,15,0,8,0\n6,0,12,0,5,0,13,0,7,0,3,0\n5,1,9,0,2,0,12,1,1,0,13,1\n"
  },
  {
    "path": "schedules/15_4.csv",
    "content": "14,0,6,0,11,0,7,0,1,0,8,0\n2,0,5,0,13,0,3,0,9,0,12,0\n10,0,15,0,6,0,2,0,14,0,4,0\n9,0,4,0,5,0,8,0,10,0,11,0\n12,0,1,0,15,0,3,0,7,0,13,0\n7,0,12,0,14,0,4,0,3,0,10,0\n13,0,8,0,9,0,1,0,6,0,2,0\n5,0,11,0,7,0,15,0,2,0,9,0\n4,0,13,0,1,0,5,0,14,0,10,0\n11,0,15,0,3,0,6,0,8,0,12,0\n"
  },
  {
    "path": "schedules/15_5.csv",
    "content": "5,0,4,0,12,0,7,0,15,0,14,0\n11,0,9,0,1,0,8,0,3,0,13,0\n8,0,11,0,6,0,2,0,10,0,5,0\n9,0,2,0,6,0,1,0,12,0,7,0\n10,0,15,0,13,0,14,0,4,0,3,0\n13,0,2,1,4,0,15,1,8,0,9,0\n11,1,14,0,12,0,6,0,10,0,1,0\n5,0,7,0,8,0,3,0,12,0,15,0\n6,0,13,0,7,0,4,0,11,0,10,0\n1,0,3,0,2,0,14,0,5,0,9,0\n3,0,9,0,10,0,15,0,6,0,5,0\n13,0,14,0,11,0,12,0,8,0,2,0\n4,0,1,0,15,0,7,0,2,0,11,0\n"
  },
  {
    "path": "schedules/15_6.csv",
    "content": "5,0,13,0,4,0,15,0,12,0,10,0\n7,0,11,0,9,0,3,0,1,0,6,0\n8,0,2,0,3,0,14,0,9,0,10,0\n6,0,8,0,15,0,1,0,5,0,14,0\n11,0,12,0,13,0,4,0,7,0,2,0\n4,0,14,0,8,0,13,0,3,0,7,0\n5,0,2,0,12,0,6,0,10,0,11,0\n15,0,9,0,13,0,1,0,8,0,11,0\n9,0,4,0,6,0,12,0,14,0,7,0\n3,0,10,0,5,0,2,0,15,0,1,0\n12,0,4,0,1,0,8,0,5,0,9,0\n14,0,15,0,3,0,13,0,6,0,2,0\n10,0,7,0,8,0,11,0,4,0,15,0\n10,0,1,0,13,0,2,0,11,0,14,0\n7,0,6,0,5,0,9,0,3,0,12,0\n"
  },
  {
    "path": "schedules/15_7.csv",
    "content": "15,0,1,0,8,0,14,0,13,0,3,0\n5,0,9,0,11,0,12,0,10,0,2,0\n8,0,7,0,6,0,4,0,2,0,9,0\n3,0,10,0,7,0,1,0,5,0,14,0\n15,0,13,0,12,0,4,0,11,0,6,0\n14,1,4,0,3,0,5,0,6,0,12,1\n9,0,8,1,15,0,11,0,13,0,1,0\n2,0,7,0,5,0,10,0,8,0,13,0\n1,0,4,0,10,0,3,0,6,0,9,0\n14,0,12,0,7,0,11,0,15,0,2,0\n13,0,4,0,5,0,9,0,12,0,1,0\n10,0,8,0,11,0,6,0,14,0,15,0\n2,0,3,0,1,0,7,0,11,0,12,0\n6,0,2,0,13,0,3,0,5,0,8,0\n14,0,9,0,10,0,7,0,15,0,4,0\n8,0,12,0,4,0,10,0,5,0,15,0\n11,0,3,0,14,0,13,0,7,0,9,0\n12,0,1,0,6,0,8,0,14,0,2,0\n"
  },
  {
    "path": "schedules/15_8.csv",
    "content": "7,0,6,0,4,0,12,0,11,0,8,0\n15,0,1,0,14,0,2,0,5,0,10,0\n9,0,5,0,13,0,8,0,3,0,14,0\n3,0,7,0,10,0,11,0,4,0,15,0\n6,0,13,0,12,0,9,0,2,0,1,0\n2,0,4,0,8,0,15,0,7,0,5,0\n1,0,14,0,11,0,12,0,6,0,3,0\n13,0,14,0,9,0,10,0,1,0,8,0\n3,0,15,0,2,0,6,0,4,0,13,0\n5,0,9,0,12,0,10,0,11,0,7,0\n11,0,2,0,6,0,8,0,13,0,15,0\n1,0,12,0,7,0,4,0,3,0,5,0\n4,0,14,0,10,0,9,0,6,0,15,0\n5,0,3,0,1,0,10,0,13,0,11,0\n8,0,7,0,9,0,14,0,12,0,2,0\n14,0,10,0,6,0,7,0,2,0,13,0\n11,0,8,0,5,0,4,0,9,0,1,0\n15,0,12,0,2,0,3,0,11,0,9,0\n13,0,1,0,3,0,14,0,15,0,7,0\n12,0,10,0,4,0,5,0,8,0,6,0\n"
  },
  {
    "path": "schedules/15_9.csv",
    "content": "12,0,8,0,6,0,7,0,3,0,2,0\n10,0,14,0,4,0,11,0,5,0,9,0\n15,0,6,0,13,0,11,0,2,0,1,0\n3,0,15,0,5,0,4,0,14,0,13,0\n7,0,12,0,9,0,8,0,10,0,1,0\n5,0,7,1,2,0,10,1,15,0,12,0\n11,0,6,1,1,0,3,0,9,0,4,0\n14,0,8,0,2,0,13,0,5,0,10,0\n3,0,1,0,7,0,9,0,15,0,14,0\n6,0,4,0,11,0,12,0,13,0,8,0\n8,0,3,0,15,0,13,0,10,0,11,0\n5,0,4,0,7,0,2,0,9,0,6,0\n1,0,12,0,15,0,6,0,14,0,5,0\n4,0,11,0,12,0,1,0,7,0,14,0\n10,0,3,0,9,0,2,0,13,0,8,0\n5,0,12,0,10,0,13,0,7,0,3,0\n15,0,2,0,14,0,4,0,1,0,8,0\n9,0,8,0,5,0,6,0,11,0,15,0\n9,0,1,0,13,0,12,0,2,0,4,0\n14,0,11,0,3,0,7,0,6,0,10,0\n8,0,7,0,11,0,1,0,5,0,3,0\n14,0,13,0,12,0,10,0,9,0,6,0\n2,0,10,0,6,0,15,0,4,0,7,0\n"
  },
  {
    "path": "schedules/16_1.csv",
    "content": "7,0,9,0,11,0,4,0,5,0,1,0\n10,0,8,0,2,0,6,0,12,0,3,0\n14,0,16,0,5,1,15,0,13,0,12,1\n"
  },
  {
    "path": "schedules/16_10.csv",
    "content": "11,0,14,0,13,0,1,0,2,0,16,0\n12,0,7,0,9,0,6,0,10,0,8,0\n5,0,3,0,6,0,4,0,15,0,10,0\n13,0,8,0,3,0,9,0,16,0,14,0\n15,0,7,0,1,0,4,0,5,0,11,0\n14,0,12,0,4,0,7,0,9,0,2,0\n10,0,5,1,13,0,6,0,1,0,15,1\n8,0,11,0,2,0,3,0,12,0,16,0\n7,0,6,0,11,0,8,0,13,0,12,0\n10,0,9,0,3,0,14,0,1,0,4,0\n2,0,15,0,9,0,16,0,5,0,8,0\n10,0,16,0,7,0,2,0,4,0,13,0\n6,0,5,0,15,0,11,0,14,0,12,0\n1,0,13,0,5,0,3,0,14,0,8,0\n16,0,4,0,6,0,15,0,3,0,12,0\n10,0,2,0,7,0,1,0,9,0,11,0\n9,0,6,0,12,0,2,0,3,0,1,0\n8,0,7,0,14,0,11,0,15,0,10,0\n13,0,16,0,9,0,5,0,4,0,7,0\n3,0,11,0,16,0,12,0,10,0,5,0\n8,0,4,0,15,0,13,0,2,0,6,0\n1,0,12,0,10,0,15,0,16,0,14,0\n4,0,1,0,11,0,9,0,8,0,5,0\n14,0,6,0,2,0,7,0,13,0,3,0\n5,0,8,0,1,0,16,0,6,0,7,0\n3,0,9,0,4,0,13,0,11,0,15,0\n12,0,2,0,15,0,14,0,10,0,5,0\n"
  },
  {
    "path": "schedules/16_11.csv",
    "content": "7,0,16,0,1,0,11,0,12,0,4,0\n10,0,9,0,15,0,2,0,5,0,14,0\n8,0,3,0,10,0,1,0,6,0,13,0\n2,0,11,0,13,0,15,0,5,0,4,0\n12,0,9,0,7,0,8,0,14,0,16,0\n6,0,5,0,8,0,7,0,3,0,4,0\n14,1,3,1,11,0,10,1,16,1,2,0\n1,0,9,0,6,0,13,0,15,0,12,0\n4,0,13,0,14,0,11,0,9,0,3,0\n8,0,7,0,15,0,5,0,10,0,1,0\n16,0,12,0,8,0,2,0,6,0,14,0\n2,0,13,0,16,0,6,0,11,0,7,0\n3,0,10,0,5,0,12,0,1,0,4,0\n15,0,4,0,10,0,9,0,16,0,13,0\n9,0,2,0,5,0,1,0,8,0,11,0\n6,0,15,0,14,0,3,0,7,0,12,0\n8,0,4,0,9,0,15,0,2,0,3,0\n14,0,12,0,10,0,7,0,5,0,13,0\n5,0,11,0,16,0,1,0,6,0,9,0\n3,0,15,0,1,0,7,0,14,0,11,0\n12,0,6,0,2,0,10,0,4,0,8,0\n13,0,2,0,1,0,16,0,7,0,15,0\n16,0,12,0,5,0,13,0,3,0,8,0\n4,0,10,0,6,0,11,0,14,0,9,0\n14,0,1,0,7,0,4,0,16,0,6,0\n11,0,13,0,15,0,5,0,8,0,12,0\n9,0,3,0,6,0,10,0,2,0,7,0\n16,0,11,0,3,0,12,0,15,0,9,0\n4,0,8,0,2,0,14,0,1,0,10,0\n5,0,14,0,3,0,10,0,13,0,16,0\n"
  },
  {
    "path": "schedules/16_12.csv",
    "content": "15,0,6,0,3,0,10,0,13,0,14,0\n2,0,1,0,5,0,12,0,9,0,7,0\n4,0,11,0,3,0,8,0,16,0,6,0\n12,0,15,0,4,0,11,0,2,0,9,0\n14,0,16,0,1,0,5,0,8,0,10,0\n9,0,13,0,8,0,14,0,2,0,7,0\n7,0,3,0,4,0,13,0,5,0,11,0\n10,0,1,0,6,0,16,0,12,0,15,0\n13,0,6,0,10,0,11,0,5,0,8,0\n3,0,12,0,14,0,4,0,9,0,16,0\n2,0,7,0,8,0,1,0,15,0,16,0\n10,0,13,0,3,0,1,0,12,0,2,0\n4,0,5,0,14,0,6,0,11,0,7,0\n9,0,1,0,7,0,11,0,10,0,15,0\n5,0,3,0,16,0,4,0,2,0,15,0\n12,0,9,0,13,0,8,0,14,0,6,0\n7,0,15,0,5,0,3,0,1,0,14,0\n2,0,16,0,13,0,12,0,6,0,11,0\n8,0,10,0,12,0,9,0,4,0,3,0\n7,0,2,0,15,0,8,0,4,0,10,0\n11,0,9,0,1,0,16,0,13,0,5,0\n14,0,11,0,1,0,6,0,4,0,2,0\n8,0,15,0,6,0,5,0,3,0,9,0\n16,0,10,0,7,0,13,0,14,0,12,0\n10,0,12,0,2,0,7,0,6,0,5,0\n15,0,14,0,9,0,1,0,4,0,13,0\n16,0,11,0,12,0,3,0,8,0,1,0\n14,0,8,0,11,0,2,0,5,0,10,0\n6,0,16,0,4,0,9,0,7,0,13,0\n15,0,7,0,11,0,3,0,14,0,16,0\n6,0,10,0,9,0,1,0,3,0,2,0\n5,0,8,0,12,0,15,0,13,0,4,0\n"
  },
  {
    "path": "schedules/16_13.csv",
    "content": "11,0,9,0,1,0,10,0,2,0,12,0\n5,0,7,0,6,0,13,0,8,0,16,0\n8,0,14,0,4,0,15,0,13,0,3,0\n15,0,3,0,9,0,7,0,5,0,11,0\n4,0,10,0,6,0,2,0,14,0,1,0\n16,0,7,0,15,0,4,0,12,0,10,0\n13,1,3,0,2,0,16,1,6,0,9,0\n5,0,11,0,8,0,12,0,1,0,14,0\n5,0,3,0,14,0,7,0,10,0,11,0\n15,0,13,0,1,0,6,0,12,0,16,0\n6,0,2,0,4,0,11,0,9,0,8,0\n14,0,9,0,5,0,13,0,4,0,12,0\n16,0,3,0,10,0,2,0,8,0,15,0\n7,0,2,0,3,0,1,0,4,0,5,0\n14,0,16,0,7,0,1,0,6,0,9,0\n12,0,15,0,11,0,8,0,13,0,10,0\n1,0,15,0,10,0,3,0,4,0,14,0\n7,0,13,0,12,0,6,0,5,0,2,0\n9,0,11,0,14,0,16,0,8,0,1,0\n5,0,10,0,13,0,9,0,15,0,2,0\n6,0,7,0,8,0,3,0,11,0,4,0\n3,0,12,0,15,0,16,0,14,0,2,0\n12,0,1,0,8,0,10,0,5,0,6,0\n16,0,11,0,4,0,13,0,7,0,9,0\n2,0,16,0,5,0,15,0,11,0,14,0\n8,0,12,0,13,0,3,0,1,0,7,0\n10,0,9,0,12,0,6,0,4,0,16,0\n8,0,10,0,2,0,14,0,13,0,7,0\n1,0,6,0,3,0,9,0,5,0,15,0\n11,0,2,0,1,0,4,0,15,0,7,0\n4,0,16,0,9,0,12,0,8,0,5,0\n13,0,6,0,11,0,10,0,14,0,3,0\n14,0,15,0,6,0,9,0,12,0,7,0\n2,0,16,0,13,0,8,0,1,0,3,0\n4,0,5,0,13,0,11,0,10,0,16,0\n"
  },
  {
    "path": "schedules/16_14.csv",
    "content": "11,0,7,0,1,0,4,0,10,0,9,0\n2,0,15,0,5,0,14,0,6,0,16,0\n4,0,13,0,12,0,3,0,7,0,8,0\n12,0,9,0,16,0,3,0,15,0,1,0\n11,0,2,0,10,0,13,0,5,0,6,0\n12,0,8,0,6,0,14,0,1,0,13,0\n5,1,16,1,2,0,14,1,4,0,7,1\n15,0,11,0,9,0,3,0,8,0,10,0\n5,0,4,0,14,0,10,0,3,0,13,0\n7,0,9,0,6,0,2,0,15,0,8,0\n12,0,3,0,11,0,16,0,1,0,2,0\n4,0,6,0,10,0,12,0,15,0,7,0\n13,0,14,0,16,0,9,0,1,0,11,0\n8,0,1,0,4,0,15,0,10,0,5,0\n8,0,13,0,9,0,2,0,7,0,16,0\n6,0,11,0,12,0,3,0,14,0,5,0\n15,0,14,0,3,0,11,0,4,0,8,0\n5,0,9,0,7,0,1,0,12,0,6,0\n13,0,2,0,3,0,10,0,16,0,12,0\n6,0,10,0,7,0,16,0,11,0,14,0\n1,0,2,0,5,0,4,0,15,0,13,0\n8,0,16,0,15,0,9,0,5,0,12,0\n1,0,8,0,14,0,10,0,13,0,11,0\n9,0,6,0,3,0,7,0,4,0,2,0\n7,0,9,0,3,0,1,0,5,0,14,0\n8,0,12,0,2,0,6,0,11,0,4,0\n15,0,10,0,14,0,16,0,7,0,13,0\n16,0,10,0,1,0,2,0,6,0,3,0\n5,0,13,0,11,0,9,0,12,0,15,0\n4,0,16,0,1,0,5,0,6,0,8,0\n13,0,7,0,15,0,11,0,3,0,8,0\n14,0,12,0,10,0,9,0,2,0,4,0\n10,0,8,0,5,0,14,0,2,0,9,0\n1,0,3,0,4,0,6,0,13,0,15,0\n16,0,11,0,10,0,7,0,5,0,12,0\n2,0,14,0,7,0,12,0,1,0,15,0\n13,0,16,0,4,0,6,0,9,0,11,0\n3,0,5,0,16,0,8,0,14,0,7,0\n"
  },
  {
    "path": "schedules/16_2.csv",
    "content": "3,0,4,0,11,0,15,0,14,0,12,0\n10,0,2,0,7,0,16,0,6,0,9,0\n1,0,8,0,15,0,13,0,5,0,2,0\n12,0,9,0,3,0,8,0,16,0,13,0\n11,0,10,0,6,0,5,0,1,0,4,0\n14,0,1,1,8,1,7,0,5,1,13,1\n"
  },
  {
    "path": "schedules/16_3.csv",
    "content": "2,0,6,0,10,0,7,0,11,0,3,0\n8,0,16,0,1,0,13,0,15,0,4,0\n12,0,5,0,16,0,9,0,14,0,6,0\n5,0,13,0,9,0,4,0,7,0,2,0\n14,0,12,0,11,0,3,0,1,0,15,0\n8,0,4,0,14,0,10,0,12,0,7,0\n6,0,8,0,15,0,1,0,2,0,9,0\n16,0,3,0,13,0,11,0,10,0,5,0\n"
  },
  {
    "path": "schedules/16_4.csv",
    "content": "16,0,6,0,8,0,2,0,9,0,11,0\n5,0,12,0,1,0,4,0,10,0,14,0\n15,0,14,0,3,0,13,0,6,0,7,0\n7,0,3,0,16,0,1,0,2,0,10,0\n9,0,15,0,13,0,12,0,8,0,4,0\n5,0,7,0,2,0,11,0,13,0,12,0\n4,0,1,0,3,1,6,0,11,0,14,1\n10,0,16,0,9,0,8,0,5,0,15,0\n11,0,15,0,10,0,14,0,13,0,2,0\n3,0,12,0,6,0,16,0,4,0,5,0\n1,0,7,0,14,0,9,0,8,0,3,0\n"
  },
  {
    "path": "schedules/16_5.csv",
    "content": "3,0,12,0,8,0,13,0,6,0,15,0\n10,0,16,0,7,0,1,0,5,0,2,0\n7,0,9,0,11,0,14,0,4,0,10,0\n6,0,9,0,5,0,13,0,14,0,2,0\n8,0,15,0,11,0,12,0,1,0,4,0\n4,0,16,0,5,0,3,0,10,0,6,0\n11,1,3,1,1,0,13,1,12,1,9,0\n2,0,8,0,16,0,15,0,7,0,14,0\n4,0,11,0,13,0,6,0,2,0,7,0\n9,0,14,0,3,0,16,0,15,0,12,0\n10,0,1,0,9,0,5,0,13,0,8,0\n15,0,5,0,10,0,11,0,12,0,6,0\n2,0,3,0,4,0,1,0,8,0,14,0\n7,0,13,0,12,0,16,0,11,0,3,0\n"
  },
  {
    "path": "schedules/16_6.csv",
    "content": "16,0,13,0,14,0,11,0,15,0,3,0\n10,0,7,0,12,0,5,0,4,0,6,0\n6,0,2,0,9,0,8,0,1,0,16,0\n13,0,3,0,5,0,10,0,11,0,8,0\n9,0,4,0,7,0,2,0,14,0,1,0\n15,0,14,0,10,0,8,0,12,0,9,0\n12,0,5,0,16,0,3,0,6,0,1,0\n13,0,11,0,4,0,15,0,2,0,7,0\n16,0,6,0,11,0,4,0,12,0,14,0\n2,0,8,0,3,0,9,0,10,0,13,0\n1,0,15,0,4,0,7,0,5,0,8,0\n11,0,12,0,2,0,5,0,9,0,15,0\n3,0,16,0,10,0,7,0,1,0,13,0\n6,0,8,0,15,0,14,0,7,0,3,0\n12,0,13,0,6,0,4,0,16,0,2,0\n1,0,10,0,5,0,14,0,9,0,11,0\n"
  },
  {
    "path": "schedules/16_7.csv",
    "content": "8,0,11,0,4,0,9,0,12,0,15,0\n5,0,3,0,7,0,1,0,14,0,16,0\n6,0,9,0,13,0,10,0,2,0,3,0\n16,0,4,0,7,0,6,0,12,0,10,0\n14,0,5,0,13,0,8,0,15,0,2,0\n10,0,8,0,1,0,11,0,14,0,6,0\n5,1,16,0,2,0,15,1,13,0,4,0\n12,0,1,0,7,0,3,0,9,0,11,0\n1,0,2,0,11,0,15,0,16,0,6,0\n7,0,10,0,14,0,13,0,8,0,12,0\n3,0,4,0,6,0,9,0,5,0,8,0\n13,0,11,0,10,0,4,0,1,0,5,0\n12,0,3,0,16,0,2,0,9,0,14,0\n1,0,15,0,9,0,7,0,6,0,8,0\n5,0,12,0,11,0,2,0,7,0,13,0\n14,0,15,0,3,0,16,0,10,0,4,0\n16,0,8,0,9,0,15,0,5,0,10,0\n4,0,14,0,12,0,3,0,13,0,1,0\n2,0,6,0,5,0,11,0,7,0,15,0\n"
  },
  {
    "path": "schedules/16_8.csv",
    "content": "4,0,16,0,11,0,6,0,5,0,13,0\n10,0,15,0,8,0,12,0,3,0,9,0\n14,0,1,0,13,0,12,0,7,0,2,0\n7,0,11,0,10,0,8,0,4,0,5,0\n6,0,1,0,3,0,15,0,9,0,14,0\n16,0,5,0,15,0,8,0,2,0,14,0\n3,1,4,0,7,1,9,1,13,0,16,1\n1,0,10,0,2,0,11,0,6,0,12,0\n9,0,8,0,12,0,11,0,13,0,2,0\n3,0,15,0,6,0,1,0,5,0,7,0\n14,0,16,0,6,0,15,0,10,0,4,0\n13,0,12,0,5,0,9,0,7,0,14,0\n1,0,8,0,11,0,16,0,3,0,10,0\n2,0,11,0,15,0,4,0,9,0,1,0\n5,0,2,0,3,0,13,0,10,0,16,0\n6,0,7,0,8,0,12,0,14,0,4,0\n3,0,13,0,8,0,2,0,6,0,4,0\n5,0,11,0,9,0,16,0,12,0,1,0\n10,0,14,0,5,0,7,0,15,0,13,0\n15,0,1,0,12,0,8,0,16,0,7,0\n10,0,6,0,9,0,11,0,14,0,3,0\n4,0,3,0,7,0,2,0,9,0,16,0\n"
  },
  {
    "path": "schedules/16_9.csv",
    "content": "12,0,2,0,7,0,5,0,8,0,16,0\n1,0,10,0,11,0,14,0,3,0,6,0\n15,0,13,0,1,0,3,0,9,0,4,0\n11,0,9,0,5,0,2,0,7,0,4,0\n14,0,12,0,8,0,10,0,6,0,13,0\n4,0,1,0,16,0,11,0,15,0,6,0\n12,0,10,0,5,0,15,0,16,0,14,0\n13,0,9,0,7,0,2,0,8,0,3,0\n2,0,13,0,14,0,3,0,1,0,12,0\n6,0,15,0,9,0,10,0,16,0,7,0\n5,0,4,0,2,0,8,0,11,0,13,0\n6,0,5,0,3,0,4,0,15,0,10,0\n8,0,1,0,14,0,9,0,12,0,16,0\n11,0,4,0,12,0,7,0,3,0,10,0\n16,0,11,0,13,0,14,0,5,0,9,0\n8,0,7,0,15,0,6,0,2,0,1,0\n1,0,2,0,9,0,12,0,5,0,15,0\n7,0,14,0,3,0,4,0,6,0,8,0\n13,0,16,0,3,0,10,0,11,0,2,0\n14,0,4,0,10,0,9,0,8,0,1,0\n7,0,11,0,6,0,13,0,12,0,15,0\n16,0,6,0,12,0,5,0,13,0,4,0\n9,0,10,0,8,0,1,0,7,0,5,0\n16,0,15,0,2,0,3,0,14,0,11,0\n"
  },
  {
    "path": "schedules/17_1.csv",
    "content": "3,0,11,0,4,0,8,0,12,0,1,0\n9,0,5,0,10,0,7,0,2,0,13,0\n16,0,17,0,15,0,6,0,14,0,7,1\n"
  },
  {
    "path": "schedules/17_10.csv",
    "content": "9,0,3,0,13,0,7,0,10,0,14,0\n2,0,5,0,4,0,16,0,12,0,8,0\n9,0,1,0,6,0,15,0,11,0,17,0\n11,0,1,0,12,0,2,0,14,0,3,0\n17,0,7,0,4,0,15,0,16,0,5,0\n6,0,13,0,11,0,8,0,1,0,10,0\n8,1,3,0,17,1,2,1,9,0,7,1\n14,0,4,0,16,0,13,0,15,0,12,0\n10,0,5,0,13,0,2,0,6,0,4,0\n5,0,17,0,3,0,10,0,11,0,16,0\n8,0,9,0,15,0,12,0,6,0,14,0\n1,0,14,0,2,0,7,0,4,0,15,0\n9,0,10,0,8,0,1,0,16,0,5,0\n13,0,3,0,7,0,17,0,12,0,6,0\n11,0,16,0,9,0,3,0,4,0,1,0\n6,0,8,0,5,0,14,0,13,0,17,0\n15,0,12,0,2,0,7,0,11,0,10,0\n2,0,17,0,10,0,4,0,9,0,14,0\n11,0,3,0,12,0,5,0,7,0,8,0\n16,0,15,0,3,0,1,0,6,0,13,0\n10,0,5,0,17,0,13,0,16,0,2,0\n6,0,15,0,1,0,12,0,7,0,9,0\n14,0,8,0,7,0,4,0,11,0,13,0\n14,0,15,0,11,0,5,0,2,0,9,0\n4,0,12,0,10,0,3,0,17,0,1,0\n7,0,6,0,16,0,8,0,2,0,11,0\n12,0,14,0,5,0,3,0,10,0,6,0\n8,0,13,0,4,0,17,0,9,0,15,0\n1,0,2,0,7,0,16,0,8,0,17,0\n"
  },
  {
    "path": "schedules/17_11.csv",
    "content": "5,0,16,0,3,0,14,0,1,0,13,0\n10,0,11,0,4,0,6,0,15,0,9,0\n7,0,8,0,17,0,2,0,12,0,5,0\n6,0,17,0,11,0,8,0,10,0,3,0\n2,0,14,0,15,0,4,0,16,0,12,0\n7,0,17,0,13,0,1,0,6,0,9,0\n11,1,7,1,1,1,3,1,2,1,4,0\n9,0,5,0,10,0,16,0,8,0,14,0\n7,0,12,0,13,0,8,0,15,0,1,0\n11,0,14,0,10,0,16,0,13,0,2,0\n5,0,15,0,4,0,3,0,9,0,17,0\n3,0,1,0,12,0,10,0,2,0,6,0\n12,0,6,0,15,0,7,0,5,0,16,0\n8,0,13,0,11,0,17,0,4,0,14,0\n9,0,10,0,12,0,6,0,5,0,13,0\n15,0,8,0,7,0,14,0,11,0,1,0\n17,0,16,0,2,0,4,0,3,0,9,0\n4,0,16,0,15,0,13,0,12,0,17,0\n9,0,14,0,8,0,2,0,7,0,6,0\n1,0,10,0,5,0,16,0,11,0,3,0\n2,0,4,0,8,0,10,0,5,0,7,0\n12,0,11,0,9,0,3,0,13,0,15,0\n6,0,14,0,5,0,17,0,1,0,2,0\n14,0,3,0,6,0,4,0,7,0,12,0\n1,0,9,0,16,0,11,0,17,0,8,0\n15,0,2,0,3,0,13,0,10,0,8,0\n12,0,1,0,14,0,11,0,17,0,5,0\n13,0,9,0,7,0,10,0,4,0,16,0\n5,0,6,0,16,0,15,0,2,0,11,0\n13,0,4,0,1,0,8,0,12,0,6,0\n17,0,15,0,10,0,3,0,7,0,14,0\n9,0,3,0,2,0,11,0,7,0,1,0\n"
  },
  {
    "path": "schedules/17_12.csv",
    "content": "14,0,15,0,5,0,16,0,1,0,11,0\n3,0,17,0,12,0,10,0,4,0,7,0\n2,0,9,0,13,0,8,0,6,0,12,0\n3,0,5,0,6,0,8,0,14,0,4,0\n16,0,7,0,17,0,9,0,2,0,15,0\n1,0,4,0,10,0,17,0,13,0,11,0\n11,0,5,0,1,0,9,0,3,0,8,0\n12,0,10,0,15,0,14,0,6,0,2,0\n3,0,11,0,13,0,7,0,2,0,16,0\n7,0,15,0,4,0,17,0,9,0,14,0\n16,0,1,0,13,0,10,0,12,0,5,0\n8,0,14,0,16,0,6,0,7,0,1,0\n2,0,6,0,11,0,4,0,9,0,13,0\n10,0,8,0,5,0,15,0,17,0,3,0\n12,0,8,0,1,0,17,0,14,0,2,0\n11,0,3,0,15,0,10,0,6,0,16,0\n4,0,12,0,9,0,7,0,13,0,5,0\n3,0,7,0,14,0,5,0,13,0,2,0\n4,0,1,0,17,0,8,0,15,0,6,0\n9,0,16,0,12,0,11,0,10,0,14,0\n4,0,12,0,6,0,1,0,3,0,11,0\n17,0,8,0,10,0,5,0,7,0,9,0\n13,0,2,0,6,0,16,0,15,0,17,0\n2,0,4,0,16,0,9,0,8,0,10,0\n13,0,3,0,12,0,15,0,1,0,7,0\n5,0,11,0,4,0,14,0,12,0,2,0\n13,0,14,0,8,0,11,0,17,0,9,0\n6,0,10,0,7,0,5,0,16,0,1,0\n15,0,2,0,1,0,3,0,5,0,4,0\n6,0,17,0,9,0,12,0,16,0,3,0\n7,0,11,0,8,0,15,0,13,0,10,0\n14,0,16,0,15,0,13,0,4,0,8,0\n1,0,9,0,14,0,2,0,10,0,3,0\n6,0,5,0,17,0,12,0,11,0,7,0\n"
  },
  {
    "path": "schedules/17_13.csv",
    "content": "17,0,3,0,11,0,8,0,5,0,13,0\n12,0,1,0,16,0,7,0,15,0,6,0\n9,0,10,0,2,0,14,0,4,0,6,0\n17,0,15,0,4,0,3,0,12,0,8,0\n13,0,7,0,2,0,9,0,14,0,11,0\n4,0,5,0,16,0,10,0,1,0,7,0\n2,0,1,1,11,0,5,0,9,0,3,0\n17,0,6,0,14,0,10,0,15,0,13,0\n8,0,12,0,10,0,16,0,11,0,2,0\n16,0,7,0,15,0,1,0,14,0,8,0\n5,0,17,0,13,0,6,0,4,0,12,0\n9,0,13,0,6,0,3,0,8,0,16,0\n10,0,15,0,4,0,5,0,11,0,7,0\n14,0,3,0,1,0,17,0,12,0,9,0\n2,0,16,0,9,0,15,0,8,0,4,0\n3,0,7,0,17,0,2,0,5,0,14,0\n13,0,11,0,1,0,6,0,12,0,10,0\n7,0,5,0,8,0,13,0,6,0,2,0\n4,0,3,0,14,0,11,0,16,0,12,0\n1,0,9,0,15,0,10,0,17,0,5,0\n9,0,17,0,7,0,11,0,6,0,16,0\n1,0,4,0,13,0,15,0,2,0,3,0\n12,0,8,0,11,0,14,0,10,0,7,0\n3,0,10,0,1,0,8,0,2,0,17,0\n13,0,14,0,12,0,15,0,9,0,5,0\n6,0,16,0,5,0,4,0,11,0,2,0\n8,0,9,0,4,0,7,0,1,0,12,0\n15,0,14,0,10,0,16,0,3,0,13,0\n6,0,14,0,15,0,17,0,7,0,4,0\n12,0,10,0,5,0,8,0,3,0,6,0\n1,0,17,0,16,0,2,0,13,0,9,0\n11,0,6,0,3,0,1,0,4,0,14,0\n11,0,8,0,10,0,15,0,5,0,9,0\n7,0,2,0,12,0,16,0,13,0,17,0\n7,0,13,0,9,0,4,0,10,0,3,0\n14,0,16,0,8,0,5,0,1,0,17,0\n6,0,2,0,1,0,12,0,11,0,15,0\n"
  },
  {
    "path": "schedules/17_14.csv",
    "content": "17,0,6,0,3,0,14,0,5,0,7,0\n11,0,13,0,15,0,4,0,12,0,1,0\n10,0,8,0,2,0,16,0,17,0,9,0\n4,0,16,0,7,0,13,0,8,0,1,0\n10,0,3,0,11,0,12,0,6,0,5,0\n15,0,2,0,3,0,4,0,9,0,14,0\n12,1,1,0,5,0,8,0,9,1,2,0\n6,0,13,0,15,0,11,0,7,0,17,0\n14,0,16,0,8,0,11,0,10,0,7,0\n2,0,13,0,16,0,15,0,14,0,17,0\n9,0,12,0,10,0,6,0,1,0,3,0\n5,0,7,0,6,0,4,0,2,0,11,0\n8,0,10,0,14,0,4,0,12,0,17,0\n3,0,16,0,5,0,13,0,9,0,1,0\n15,0,5,0,12,0,2,0,16,0,13,0\n9,0,10,0,7,0,11,0,1,0,14,0\n17,0,6,0,8,0,3,0,4,0,15,0\n6,0,4,0,13,0,1,0,10,0,16,0\n11,0,9,0,7,0,15,0,12,0,17,0\n14,0,8,0,1,0,2,0,3,0,5,0\n3,0,9,0,4,0,7,0,17,0,2,0\n5,0,15,0,8,0,13,0,6,0,10,0\n12,0,11,0,4,0,16,0,14,0,3,0\n5,0,7,0,9,0,16,0,15,0,10,0\n13,0,2,0,14,0,6,0,11,0,8,0\n1,0,17,0,2,0,12,0,6,0,16,0\n1,0,15,0,9,0,8,0,11,0,4,0\n17,0,12,0,14,0,10,0,5,0,13,0\n3,0,14,0,6,0,7,0,8,0,15,0\n2,0,1,0,11,0,10,0,17,0,3,0\n16,0,7,0,12,0,5,0,4,0,9,0\n13,0,4,0,10,0,5,0,11,0,2,0\n12,0,3,0,8,0,17,0,7,0,13,0\n6,0,14,0,15,0,1,0,9,0,16,0\n8,0,5,0,17,0,15,0,1,0,11,0\n9,0,2,0,6,0,14,0,13,0,12,0\n10,0,16,0,4,0,7,0,3,0,13,0\n7,0,15,0,1,0,12,0,2,0,10,0\n17,0,5,0,4,0,9,0,14,0,6,0\n16,0,11,0,12,0,3,0,8,0,9,0\n"
  },
  {
    "path": "schedules/17_2.csv",
    "content": "8,0,5,0,1,0,12,0,7,0,6,0\n11,0,9,0,13,0,16,0,14,0,10,0\n3,0,15,0,4,0,2,0,17,0,12,0\n15,0,10,0,8,0,14,0,3,0,5,0\n17,0,1,0,7,0,9,0,16,0,2,0\n6,0,13,0,8,1,4,0,11,0,2,1\n"
  },
  {
    "path": "schedules/17_3.csv",
    "content": "2,0,7,0,1,0,16,0,10,0,8,0\n13,0,9,0,3,0,11,0,14,0,4,0\n5,0,12,0,15,0,3,0,6,0,17,0\n5,0,11,0,9,0,12,0,16,0,2,0\n14,0,13,0,7,0,15,0,1,0,6,0\n6,0,4,0,10,0,17,0,8,0,11,0\n8,0,2,0,14,0,12,0,17,0,13,0\n9,0,15,0,4,0,10,0,1,0,5,0\n7,0,17,1,16,0,14,1,3,0,4,1\n"
  },
  {
    "path": "schedules/17_4.csv",
    "content": "15,0,2,0,13,0,17,0,1,0,9,0\n6,0,8,0,11,0,7,0,16,0,3,0\n14,0,12,0,7,0,4,0,10,0,5,0\n1,0,6,0,16,0,9,0,5,0,12,0\n8,0,13,0,4,0,3,0,14,0,15,0\n17,0,10,0,14,0,11,0,2,0,1,0\n4,1,16,1,11,0,13,0,6,1,7,1\n5,0,17,0,2,0,3,0,8,0,12,0\n9,0,15,0,8,0,12,0,11,0,10,0\n4,0,7,0,17,0,14,0,9,0,16,0\n5,0,3,0,6,0,10,0,13,0,1,0\n16,0,4,0,15,0,2,0,7,0,6,0\n"
  },
  {
    "path": "schedules/17_5.csv",
    "content": "15,0,3,0,12,0,10,0,8,0,14,0\n9,0,16,0,7,0,17,0,11,0,2,0\n1,0,5,0,13,0,4,0,9,0,6,0\n14,0,2,0,5,0,11,0,7,0,15,0\n10,0,17,0,4,0,8,0,12,0,6,0\n13,0,12,0,16,0,1,0,3,0,11,0\n9,1,14,1,17,1,6,1,10,1,16,0\n15,0,4,0,1,0,7,0,13,0,3,0\n11,0,6,0,5,0,8,0,2,0,3,0\n5,0,15,0,8,0,16,0,17,0,1,0\n2,0,10,0,9,0,14,0,13,0,4,0\n7,0,1,0,2,0,12,0,5,0,10,0\n12,0,7,0,17,0,13,0,9,0,8,0\n16,0,4,0,11,0,6,0,15,0,14,0\n3,0,6,0,10,0,9,0,14,0,17,0\n"
  },
  {
    "path": "schedules/17_6.csv",
    "content": "9,0,8,0,5,0,1,0,11,0,3,0\n17,0,15,0,6,0,4,0,10,0,16,0\n2,0,14,0,13,0,15,0,12,0,7,0\n6,0,10,0,9,0,14,0,12,0,8,0\n11,0,2,0,7,0,17,0,1,0,4,0\n16,0,3,0,14,0,5,0,11,0,13,0\n9,0,13,0,3,0,16,0,17,0,2,0\n4,0,5,0,7,0,15,0,8,0,10,0\n12,0,6,0,11,0,16,0,1,0,15,0\n8,0,6,0,1,0,12,0,13,0,17,0\n5,0,14,0,10,0,2,0,9,0,4,0\n3,0,4,0,12,0,7,0,16,0,9,0\n1,0,5,0,2,0,13,0,7,0,6,0\n14,0,15,0,11,0,8,0,3,0,17,0\n11,0,16,0,8,0,10,0,2,0,12,0\n13,0,4,0,15,0,14,0,9,0,1,0\n10,0,7,0,17,0,3,0,6,0,5,0\n"
  },
  {
    "path": "schedules/17_7.csv",
    "content": "11,0,7,0,8,0,5,0,15,0,1,0\n12,0,14,0,17,0,9,0,16,0,10,0\n6,0,4,0,2,0,3,0,13,0,15,0\n10,0,13,0,17,0,1,0,8,0,9,0\n4,0,3,0,16,0,12,0,7,0,5,0\n2,0,14,0,1,0,11,0,6,0,5,0\n2,1,12,0,13,0,17,0,15,0,8,0\n3,0,10,0,11,0,14,0,7,0,6,0\n7,0,4,0,9,0,16,0,14,0,13,0\n5,0,16,0,17,0,15,0,2,0,11,0\n6,0,8,0,3,0,10,0,1,0,4,0\n9,0,17,0,6,0,12,0,11,0,16,0\n8,0,10,0,12,0,13,0,5,0,4,0\n14,0,9,0,15,0,7,0,1,0,3,0\n2,0,5,0,10,0,9,0,12,0,3,0\n1,0,13,0,11,0,16,0,6,0,15,0\n4,0,8,0,14,0,2,0,17,0,7,0\n15,0,10,0,7,0,8,0,2,0,16,0\n5,0,3,0,14,0,17,0,11,0,4,0\n6,0,1,0,12,0,13,0,9,0,2,0\n"
  },
  {
    "path": "schedules/17_8.csv",
    "content": "7,0,15,0,3,0,16,0,4,0,2,0\n5,0,10,0,9,0,11,0,1,0,14,0\n12,0,13,0,6,0,2,0,8,0,17,0\n7,0,12,0,14,0,3,0,13,0,8,0\n15,0,1,0,5,0,6,0,11,0,4,0\n9,0,16,0,7,0,10,0,6,0,17,0\n1,1,10,0,13,0,3,1,5,0,8,0\n9,0,14,0,4,0,12,0,17,0,15,0\n11,0,15,0,16,0,12,0,10,0,2,0\n17,0,16,0,1,0,3,0,14,0,11,0\n2,0,5,0,13,0,8,0,6,0,9,0\n4,0,17,0,13,0,1,0,7,0,2,0\n6,0,3,0,16,0,15,0,14,0,10,0\n8,0,11,0,12,0,5,0,4,0,7,0\n9,0,2,0,15,0,14,0,17,0,5,0\n4,0,3,0,12,0,13,0,9,0,11,0\n16,0,8,0,10,0,1,0,7,0,6,0\n8,0,6,0,15,0,1,0,9,0,12,0\n5,0,11,0,17,0,7,0,13,0,16,0\n14,0,2,0,6,0,10,0,4,0,3,0\n3,0,2,0,1,0,16,0,12,0,5,0\n10,0,7,0,11,0,13,0,15,0,14,0\n4,0,8,0,1,0,17,0,9,0,3,0\n"
  },
  {
    "path": "schedules/17_9.csv",
    "content": "10,0,9,0,17,0,2,0,15,0,14,0\n11,0,6,0,1,0,5,0,7,0,8,0\n12,0,4,0,6,0,13,0,16,0,3,0\n12,0,8,0,13,0,17,0,10,0,16,0\n3,0,7,0,2,0,4,0,1,0,5,0\n14,0,9,0,6,0,11,0,15,0,7,0\n17,1,13,0,1,0,12,1,14,0,11,0\n8,0,3,0,5,1,9,0,16,0,15,0\n4,0,10,0,7,0,12,0,2,0,17,0\n3,0,4,0,14,0,2,0,6,0,10,0\n8,0,1,0,15,0,5,0,9,0,13,0\n16,0,1,0,7,0,3,0,11,0,10,0\n5,0,14,0,13,0,9,0,2,0,12,0\n16,0,6,0,15,0,17,0,11,0,4,0\n17,0,8,0,11,0,9,0,3,0,4,0\n14,0,10,0,8,0,6,0,13,0,5,0\n7,0,12,0,16,0,15,0,2,0,1,0\n15,0,4,0,3,0,1,0,14,0,8,0\n10,0,5,0,12,0,7,0,11,0,9,0\n2,0,13,0,16,0,6,0,17,0,3,0\n7,0,17,0,14,0,8,0,16,0,4,0\n11,0,5,0,2,0,13,0,15,0,10,0\n1,0,10,0,9,0,6,0,12,0,17,0\n16,0,5,0,11,0,4,0,8,0,2,0\n14,0,12,0,9,0,13,0,7,0,6,0\n15,0,17,0,5,0,1,0,3,0,12,0\n"
  },
  {
    "path": "schedules/18_1.csv",
    "content": "4,0,10,0,11,0,13,0,6,0,5,0\n8,0,16,0,14,0,12,0,3,0,2,0\n18,0,7,0,15,0,1,0,17,0,9,0\n"
  },
  {
    "path": "schedules/18_10.csv",
    "content": "8,0,2,0,10,0,18,0,9,0,14,0\n5,0,15,0,3,0,6,0,4,0,11,0\n1,0,13,0,7,0,12,0,17,0,16,0\n14,0,15,0,6,0,5,0,9,0,2,0\n8,0,11,0,17,0,12,0,7,0,10,0\n18,0,1,0,4,0,3,0,16,0,13,0\n17,0,2,0,14,0,11,0,15,0,7,0\n13,0,4,0,5,0,16,0,8,0,9,0\n10,0,1,0,3,0,18,0,12,0,6,0\n4,0,16,0,9,0,5,0,7,0,17,0\n3,0,6,0,8,0,14,0,12,0,1,0\n13,0,11,0,18,0,10,0,2,0,15,0\n6,0,9,0,7,0,14,0,3,0,17,0\n8,0,12,0,13,0,2,0,4,0,15,0\n16,0,1,0,11,0,5,0,10,0,18,0\n8,0,4,0,14,0,17,0,13,0,6,0\n2,0,3,0,7,0,11,0,1,0,5,0\n9,0,12,0,15,0,16,0,10,0,18,0\n6,0,1,0,2,0,11,0,4,0,7,0\n5,0,16,0,12,0,14,0,10,0,13,0\n18,0,17,0,15,0,9,0,8,0,3,0\n2,0,11,0,12,0,6,0,16,0,4,0\n10,0,13,0,15,0,9,0,17,0,1,0\n7,0,3,0,18,0,5,0,14,0,8,0\n17,0,4,0,10,0,15,0,16,0,2,0\n9,0,12,0,13,0,14,0,11,0,3,0\n7,0,8,0,18,0,5,0,1,0,6,0\n9,0,10,0,11,0,12,0,4,0,3,0\n6,0,5,0,17,0,18,0,2,0,13,0\n14,0,16,0,7,0,15,0,8,0,1,0\n"
  },
  {
    "path": "schedules/18_11.csv",
    "content": "2,0,18,0,6,0,4,0,17,0,1,0\n15,0,14,0,9,0,13,0,12,0,3,0\n7,0,11,0,8,0,10,0,16,0,5,0\n1,0,9,0,6,0,14,0,12,0,18,0\n17,0,8,0,2,0,16,0,3,0,11,0\n4,0,15,0,13,0,5,0,10,0,7,0\n12,0,17,0,16,0,14,0,1,0,8,0\n3,0,5,0,6,0,7,0,2,0,15,0\n9,0,18,0,4,0,11,0,10,0,13,0\n5,0,6,0,15,0,17,0,3,0,8,0\n12,0,7,0,4,0,1,0,18,0,11,0\n9,0,13,0,16,0,14,0,2,0,10,0\n8,0,18,0,17,0,12,0,4,0,15,0\n14,0,6,0,16,0,13,0,7,0,2,0\n1,0,10,0,3,0,9,0,5,0,11,0\n2,0,16,0,12,0,13,0,17,0,18,0\n8,0,5,0,4,0,9,0,6,0,11,0\n7,0,10,0,14,0,15,0,1,0,3,0\n12,0,5,0,13,0,2,0,4,0,11,0\n16,0,7,0,1,0,9,0,15,0,17,0\n10,0,18,0,3,0,6,0,8,0,14,0\n17,0,11,0,7,0,2,0,12,0,9,0\n16,0,15,0,8,0,10,0,6,0,4,0\n13,0,14,0,3,0,5,0,18,0,1,0\n17,0,10,0,9,0,6,0,7,0,12,0\n18,0,11,0,15,0,14,0,5,0,16,0\n2,0,1,0,13,0,8,0,3,0,4,0\n17,0,5,0,14,0,9,0,18,0,7,0\n10,0,4,0,15,0,16,0,3,0,2,0\n12,0,1,0,11,0,13,0,6,0,8,0\n7,0,9,0,3,0,18,0,16,0,4,0\n2,0,1,0,5,0,10,0,12,0,8,0\n13,0,11,0,14,0,17,0,6,0,15,0\n"
  },
  {
    "path": "schedules/18_12.csv",
    "content": "18,0,15,0,13,0,14,0,11,0,9,0\n4,0,12,0,8,0,16,0,5,0,10,0\n2,0,1,0,7,0,17,0,6,0,3,0\n8,0,16,0,18,0,10,0,13,0,9,0\n1,0,3,0,7,0,14,0,6,0,12,0\n2,0,17,0,11,0,15,0,5,0,4,0\n12,0,16,0,1,0,18,0,8,0,7,0\n9,0,6,0,11,0,14,0,2,0,10,0\n15,0,4,0,17,0,5,0,13,0,3,0\n11,0,18,0,2,0,16,0,8,0,6,0\n3,0,10,0,17,0,15,0,13,0,1,0\n9,0,4,0,14,0,7,0,5,0,12,0\n6,0,2,0,10,0,1,0,8,0,17,0\n7,0,15,0,9,0,13,0,16,0,5,0\n11,0,3,0,14,0,18,0,4,0,12,0\n6,0,10,0,15,0,17,0,16,0,9,0\n7,0,11,0,5,0,14,0,3,0,8,0\n12,0,13,0,4,0,2,0,18,0,1,0\n11,0,15,0,5,0,16,0,6,0,7,0\n8,0,12,0,10,0,14,0,13,0,17,0\n18,0,3,0,9,0,2,0,1,0,4,0\n13,0,8,0,11,0,17,0,7,0,12,0\n4,0,16,0,3,0,14,0,6,0,9,0\n2,0,18,0,5,0,15,0,10,0,1,0\n8,0,6,0,17,0,11,0,4,0,9,0\n14,0,5,0,1,0,2,0,16,0,13,0\n7,0,18,0,10,0,12,0,15,0,3,0\n1,0,13,0,6,0,8,0,9,0,5,0\n4,0,14,0,7,0,18,0,15,0,17,0\n2,0,12,0,3,0,11,0,16,0,10,0\n6,0,5,0,17,0,13,0,14,0,18,0\n4,0,16,0,10,0,7,0,1,0,11,0\n3,0,9,0,12,0,2,0,8,0,15,0\n13,0,10,0,7,0,4,0,18,0,6,0\n5,0,1,0,9,0,12,0,11,0,17,0\n16,0,15,0,14,0,3,0,2,0,8,0\n"
  },
  {
    "path": "schedules/18_13.csv",
    "content": "10,0,4,0,15,0,12,0,3,0,6,0\n13,0,18,0,1,0,8,0,9,0,17,0\n14,0,2,0,5,0,7,0,11,0,16,0\n1,0,6,0,8,0,18,0,3,0,10,0\n5,0,4,0,9,0,7,0,11,0,2,0\n14,0,12,0,17,0,15,0,16,0,13,0\n18,0,8,0,7,0,6,0,4,0,11,0\n12,0,1,0,16,0,14,0,3,0,5,0\n15,0,13,0,17,0,9,0,2,0,10,0\n5,0,11,0,12,0,18,0,14,0,1,0\n16,0,8,0,10,0,2,0,17,0,4,0\n13,0,3,0,9,0,15,0,6,0,7,0\n18,0,12,0,2,0,17,0,10,0,14,0\n7,0,5,0,1,0,15,0,13,0,8,0\n11,0,16,0,3,0,6,0,4,0,9,0\n15,0,12,0,10,0,18,0,5,0,7,0\n17,0,9,0,16,0,3,0,11,0,8,0\n2,0,6,0,13,0,1,0,14,0,4,0\n10,0,9,0,7,0,5,0,8,0,16,0\n14,0,11,0,15,0,18,0,6,0,17,0\n3,0,2,0,1,0,13,0,12,0,4,0\n9,0,11,0,18,0,10,0,15,0,5,0\n3,0,4,0,17,0,13,0,14,0,7,0\n2,0,12,0,8,0,16,0,6,0,1,0\n11,0,14,0,9,0,3,0,10,0,13,0\n16,0,4,0,7,0,15,0,1,0,18,0\n17,0,12,0,6,0,2,0,8,0,5,0\n1,0,11,0,10,0,14,0,16,0,15,0\n3,0,6,0,7,0,5,0,17,0,2,0\n8,0,18,0,4,0,9,0,12,0,13,0\n2,0,7,0,17,0,3,0,10,0,1,0\n13,0,11,0,6,0,16,0,12,0,18,0\n8,0,14,0,4,0,5,0,9,0,15,0\n13,0,17,0,11,0,1,0,12,0,7,0\n6,0,5,0,10,0,9,0,14,0,4,0\n18,0,8,0,15,0,2,0,16,0,3,0\n7,0,6,0,14,0,9,0,17,0,1,0\n13,0,5,0,16,0,18,0,4,0,10,0\n15,0,3,0,2,0,8,0,12,0,11,0\n"
  },
  {
    "path": "schedules/18_14.csv",
    "content": "12,0,3,0,13,0,1,0,4,0,11,0\n7,0,18,0,14,0,2,0,16,0,5,0\n9,0,15,0,8,0,10,0,17,0,6,0\n11,0,13,0,7,0,1,0,18,0,2,0\n14,0,5,0,4,0,6,0,9,0,15,0\n3,0,8,0,17,0,12,0,10,0,16,0\n7,0,15,0,14,0,6,0,13,0,1,0\n3,0,5,0,17,0,11,0,8,0,2,0\n18,0,10,0,16,0,12,0,9,0,4,0\n3,0,5,0,15,0,17,0,13,0,14,0\n9,0,16,0,11,0,4,0,8,0,7,0\n12,0,2,0,6,0,10,0,1,0,18,0\n7,0,13,0,15,0,16,0,4,0,17,0\n14,0,2,0,12,0,5,0,8,0,10,0\n9,0,11,0,1,0,18,0,3,0,6,0\n17,0,2,0,4,0,14,0,8,0,16,0\n5,0,12,0,18,0,1,0,15,0,3,0\n13,0,11,0,6,0,7,0,9,0,10,0\n1,0,18,0,3,0,4,0,17,0,14,0\n8,0,5,0,10,0,7,0,11,0,6,0\n16,0,2,0,15,0,13,0,12,0,9,0\n18,0,7,0,4,0,10,0,14,0,3,0\n17,0,11,0,12,0,13,0,5,0,9,0\n1,0,6,0,2,0,16,0,15,0,8,0\n18,0,17,0,9,0,7,0,3,0,5,0\n2,0,10,0,8,0,4,0,15,0,1,0\n11,0,14,0,6,0,12,0,13,0,16,0\n10,0,4,0,9,0,2,0,18,0,5,0\n7,0,1,0,16,0,8,0,13,0,3,0\n6,0,15,0,17,0,12,0,14,0,11,0\n13,0,1,0,8,0,5,0,9,0,18,0\n6,0,4,0,12,0,7,0,2,0,17,0\n10,0,15,0,14,0,3,0,11,0,16,0\n4,0,13,0,18,0,17,0,8,0,6,0\n10,0,5,0,11,0,14,0,16,0,1,0\n2,0,9,0,3,0,7,0,15,0,12,0\n16,0,4,0,6,0,1,0,5,0,17,0\n14,0,9,0,3,0,2,0,13,0,10,0\n8,0,7,0,18,0,15,0,12,0,11,0\n5,0,6,0,13,0,4,0,3,0,2,0\n16,0,10,0,17,0,18,0,11,0,15,0\n12,0,1,0,8,0,14,0,9,0,7,0\n"
  },
  {
    "path": "schedules/18_2.csv",
    "content": "13,0,14,0,6,0,1,0,15,0,8,0\n9,0,16,0,2,0,4,0,18,0,3,0\n11,0,17,0,10,0,5,0,12,0,7,0\n16,0,6,0,1,0,4,0,14,0,2,0\n12,0,8,0,13,0,11,0,9,0,7,0\n3,0,10,0,5,0,17,0,18,0,15,0\n"
  },
  {
    "path": "schedules/18_3.csv",
    "content": "13,0,8,0,16,0,1,0,14,0,9,0\n4,0,6,0,12,0,10,0,18,0,5,0\n3,0,7,0,2,0,17,0,11,0,15,0\n18,0,13,0,9,0,5,0,6,0,8,0\n2,0,4,0,17,0,11,0,16,0,12,0\n10,0,7,0,1,0,14,0,15,0,3,0\n6,0,11,0,13,0,2,0,16,0,18,0\n14,0,5,0,4,0,1,0,17,0,3,0\n10,0,12,0,15,0,7,0,8,0,9,0\n"
  },
  {
    "path": "schedules/18_4.csv",
    "content": "13,0,3,0,15,0,11,0,10,0,18,0\n1,0,8,0,6,0,12,0,7,0,4,0\n9,0,5,0,2,0,14,0,17,0,16,0\n1,0,10,0,15,0,13,0,7,0,6,0\n12,0,16,0,2,0,11,0,9,0,3,0\n4,0,17,0,8,0,5,0,18,0,14,0\n7,0,1,0,9,0,2,0,10,0,3,0\n18,0,16,0,15,0,8,0,5,0,12,0\n13,0,17,0,11,0,6,0,14,0,4,0\n18,0,2,0,1,0,15,0,9,0,8,0\n14,0,11,0,12,0,17,0,10,0,7,0\n5,0,4,0,13,0,16,0,6,0,3,0\n"
  },
  {
    "path": "schedules/18_5.csv",
    "content": "17,0,7,0,5,0,12,0,15,0,11,0\n1,0,16,0,3,0,14,0,10,0,18,0\n4,0,9,0,13,0,6,0,8,0,2,0\n10,0,1,0,11,0,15,0,7,0,3,0\n18,0,17,0,2,0,13,0,8,0,5,0\n4,0,6,0,12,0,9,0,14,0,16,0\n11,0,2,0,7,0,18,0,13,0,1,0\n15,0,5,0,9,0,3,0,4,0,14,0\n8,0,17,0,12,0,6,0,10,0,16,0\n14,0,7,0,13,0,5,0,1,0,4,0\n6,0,9,0,18,0,15,0,17,0,10,0\n11,0,3,0,8,0,16,0,12,0,2,0\n6,0,17,0,14,0,18,0,4,0,7,0\n2,0,9,0,10,0,16,0,5,0,11,0\n8,0,15,0,1,0,3,0,13,0,12,0\n"
  },
  {
    "path": "schedules/18_6.csv",
    "content": "11,0,5,0,1,0,9,0,15,0,12,0\n10,0,6,0,17,0,2,0,3,0,7,0\n4,0,8,0,14,0,18,0,16,0,13,0\n15,0,17,0,3,0,2,0,11,0,12,0\n8,0,16,0,1,0,4,0,10,0,5,0\n7,0,14,0,18,0,13,0,9,0,6,0\n16,0,15,0,4,0,12,0,3,0,1,0\n11,0,13,0,7,0,5,0,6,0,8,0\n9,0,18,0,10,0,17,0,2,0,14,0\n13,0,4,0,1,0,6,0,15,0,7,0\n17,0,18,0,12,0,10,0,16,0,11,0\n2,0,9,0,8,0,5,0,14,0,3,0\n7,0,4,0,17,0,18,0,11,0,15,0\n13,0,2,0,5,0,3,0,16,0,9,0\n8,0,12,0,10,0,1,0,14,0,6,0\n9,0,7,0,5,0,2,0,4,0,18,0\n6,0,3,0,11,0,14,0,12,0,16,0\n1,0,10,0,15,0,17,0,13,0,8,0\n"
  },
  {
    "path": "schedules/18_7.csv",
    "content": "8,0,12,0,17,0,4,0,14,0,7,0\n18,0,15,0,2,0,11,0,5,0,10,0\n9,0,3,0,1,0,6,0,13,0,16,0\n14,0,5,0,2,0,17,0,4,0,11,0\n9,0,16,0,15,0,7,0,13,0,8,0\n6,0,18,0,3,0,1,0,10,0,12,0\n13,0,15,0,17,0,2,0,11,0,8,0\n6,0,7,0,1,0,10,0,18,0,14,0\n9,0,12,0,4,0,5,0,16,0,3,0\n14,0,8,0,1,0,15,0,10,0,11,0\n16,0,12,0,4,0,9,0,2,0,6,0\n17,0,5,0,7,0,3,0,13,0,18,0\n2,0,16,0,10,0,4,0,15,0,1,0\n11,0,9,0,13,0,7,0,18,0,12,0\n17,0,3,0,14,0,6,0,8,0,5,0\n7,0,10,0,9,0,2,0,13,0,12,0\n5,0,4,0,18,0,15,0,3,0,8,0\n6,0,14,0,11,0,17,0,16,0,1,0\n2,0,3,0,4,0,8,0,9,0,18,0\n16,0,11,0,7,0,17,0,6,0,10,0\n13,0,5,0,1,0,14,0,15,0,12,0\n"
  },
  {
    "path": "schedules/18_8.csv",
    "content": "6,0,9,0,13,0,7,0,18,0,2,0\n12,0,16,0,17,0,11,0,15,0,1,0\n5,0,14,0,8,0,10,0,3,0,4,0\n11,0,17,0,18,0,15,0,9,0,7,0\n2,0,3,0,12,0,5,0,6,0,16,0\n1,0,4,0,8,0,13,0,10,0,14,0\n3,0,15,0,5,0,2,0,6,0,11,0\n9,0,17,0,14,0,16,0,8,0,18,0\n10,0,7,0,1,0,4,0,13,0,12,0\n9,0,5,0,8,0,16,0,15,0,14,0\n1,0,18,0,12,0,6,0,7,0,4,0\n11,0,13,0,3,0,2,0,10,0,17,0\n9,0,18,0,4,0,12,0,6,0,14,0\n3,0,7,0,16,0,11,0,10,0,8,0\n5,0,1,0,2,0,15,0,17,0,13,0\n3,0,6,0,8,0,11,0,12,0,9,0\n2,0,14,0,4,0,7,0,5,0,17,0\n15,0,18,0,10,0,1,0,13,0,16,0\n8,0,7,0,12,0,4,0,5,0,11,0\n2,0,15,0,13,0,3,0,14,0,18,0\n10,0,16,0,9,0,6,0,1,0,17,0\n7,0,11,0,14,0,13,0,18,0,5,0\n16,0,4,0,15,0,9,0,3,0,1,0\n12,0,10,0,6,0,2,0,17,0,8,0\n"
  },
  {
    "path": "schedules/18_9.csv",
    "content": "18,0,14,0,15,0,7,0,17,0,6,0\n3,0,10,0,4,0,11,0,13,0,9,0\n5,0,1,0,16,0,2,0,12,0,8,0\n13,0,14,0,7,0,11,0,4,0,18,0\n12,0,3,0,17,0,1,0,2,0,9,0\n10,0,15,0,16,0,8,0,6,0,5,0\n2,0,18,0,17,0,7,0,11,0,12,0\n6,0,9,0,10,0,1,0,4,0,16,0\n3,0,8,0,14,0,13,0,15,0,5,0\n16,0,2,0,6,0,17,0,4,0,11,0\n18,0,5,0,9,0,1,0,13,0,8,0\n15,0,12,0,3,0,14,0,10,0,7,0\n11,0,6,0,1,0,16,0,13,0,17,0\n14,0,4,0,12,0,8,0,18,0,3,0\n5,0,10,0,2,0,7,0,9,0,15,0\n11,0,17,0,8,0,1,0,3,0,6,0\n15,0,7,0,2,0,9,0,16,0,14,0\n13,0,18,0,4,0,12,0,5,0,10,0\n6,0,14,0,11,0,2,0,3,0,9,0\n8,0,13,0,10,0,18,0,16,0,12,0\n7,0,4,0,5,0,17,0,15,0,1,0\n14,0,2,0,13,0,8,0,10,0,16,0\n7,0,18,0,1,0,5,0,3,0,11,0\n12,0,9,0,17,0,15,0,6,0,4,0\n7,0,3,0,16,0,1,0,18,0,10,0\n8,0,4,0,9,0,14,0,17,0,5,0\n11,0,2,0,15,0,12,0,13,0,6,0\n"
  },
  {
    "path": "schedules/19_1.csv",
    "content": "7,0,17,0,13,0,16,0,11,0,3,0\n8,0,10,0,12,0,5,0,19,0,1,0\n18,0,14,0,6,0,4,0,15,0,9,0\n2,0,11,1,8,1,3,1,10,1,16,1\n"
  },
  {
    "path": "schedules/19_10.csv",
    "content": "12,0,2,0,8,0,14,0,11,0,17,0\n15,0,1,0,19,0,10,0,9,0,6,0\n3,0,7,0,4,0,16,0,18,0,5,0\n13,0,1,0,12,0,9,0,19,0,2,0\n3,0,10,0,17,0,8,0,15,0,16,0\n18,0,14,0,6,0,13,0,4,0,7,0\n11,0,10,0,16,0,5,0,1,0,12,0\n13,1,8,0,4,0,17,1,6,0,2,0\n14,0,9,0,15,0,19,0,7,0,5,0\n3,0,11,0,1,0,18,0,2,0,13,0\n8,0,16,0,19,0,4,0,12,0,14,0\n9,0,5,0,11,0,7,0,17,0,10,0\n6,0,15,0,12,0,18,0,3,0,8,0\n10,0,5,0,2,0,14,0,19,0,4,0\n9,0,16,0,13,0,15,0,18,0,11,0\n7,0,1,0,6,0,17,0,3,0,2,0\n8,0,5,0,14,0,10,0,13,0,15,0\n18,0,1,0,17,0,12,0,7,0,19,0\n3,0,6,0,16,0,11,0,9,0,4,0\n2,0,19,0,18,0,5,0,15,0,17,0\n9,0,12,0,3,0,4,0,1,0,10,0\n7,0,16,0,14,0,11,0,13,0,6,0\n15,0,17,0,4,0,8,0,1,0,9,0\n18,0,12,0,10,0,13,0,14,0,16,0\n7,0,11,0,8,0,6,0,3,0,19,0\n5,0,4,0,18,0,2,0,1,0,14,0\n19,0,13,0,10,0,8,0,6,0,17,0\n2,0,7,0,15,0,16,0,12,0,11,0\n5,0,9,0,17,0,3,0,13,0,14,0\n18,0,11,0,7,0,10,0,1,0,8,0\n16,0,2,0,4,0,15,0,9,0,3,0\n6,0,5,0,13,0,12,0,19,0,17,0\n"
  },
  {
    "path": "schedules/19_11.csv",
    "content": "12,0,4,0,16,0,18,0,8,0,14,0\n1,0,2,0,10,0,7,0,17,0,9,0\n3,0,11,0,15,0,19,0,5,0,13,0\n6,0,8,0,9,0,17,0,14,0,4,0\n2,0,3,0,18,0,1,0,15,0,19,0\n13,0,16,0,12,0,7,0,6,0,10,0\n5,0,17,0,8,0,11,0,18,0,4,0\n16,1,9,0,13,0,14,0,12,0,2,0\n11,0,5,0,6,0,3,0,7,0,19,0\n10,0,14,0,8,0,15,0,1,0,9,0\n18,0,19,0,4,0,2,0,13,0,7,0\n1,0,11,0,12,0,17,0,5,0,15,0\n10,0,16,0,19,0,6,0,3,0,4,0\n7,0,1,0,17,0,11,0,2,0,8,0\n15,0,12,0,5,0,9,0,3,0,16,0\n14,0,6,0,2,0,18,0,13,0,10,0\n19,0,12,0,7,0,9,0,8,0,4,0\n5,0,6,0,3,0,13,0,14,0,1,0\n18,0,16,0,15,0,11,0,17,0,10,0\n8,0,7,0,19,0,3,0,12,0,14,0\n10,0,1,0,4,0,2,0,15,0,13,0\n5,0,9,0,18,0,17,0,6,0,16,0\n11,0,14,0,7,0,10,0,3,0,1,0\n18,0,6,0,13,0,15,0,12,0,8,0\n16,0,11,0,4,0,9,0,2,0,19,0\n5,0,10,0,7,0,17,0,12,0,18,0\n13,0,1,0,8,0,11,0,16,0,19,0\n14,0,15,0,6,0,4,0,5,0,2,0\n3,0,17,0,13,0,9,0,10,0,12,0\n7,0,4,0,15,0,5,0,16,0,14,0\n17,0,11,0,2,0,6,0,3,0,8,0\n9,0,19,0,14,0,18,0,1,0,5,0\n10,0,3,0,15,0,8,0,16,0,2,0\n19,0,4,0,17,0,1,0,12,0,6,0\n13,0,9,0,11,0,18,0,7,0,16,0\n"
  },
  {
    "path": "schedules/19_12.csv",
    "content": "13,0,15,0,3,0,1,0,4,0,10,0\n16,0,7,0,17,0,14,0,12,0,18,0\n11,0,8,0,5,0,6,0,9,0,2,0\n17,0,14,0,18,0,19,0,10,0,13,0\n8,0,2,0,6,0,7,0,15,0,11,0\n9,0,3,0,19,0,5,0,12,0,16,0\n4,0,10,0,18,0,1,0,11,0,6,0\n5,0,2,0,13,0,8,0,12,0,17,0\n3,0,14,0,7,0,15,0,1,0,9,0\n19,0,4,0,12,0,16,0,6,0,5,0\n14,0,13,0,9,0,8,0,10,0,15,0\n18,0,11,0,19,0,4,0,2,0,3,0\n1,0,17,0,5,0,7,0,16,0,8,0\n6,0,4,0,12,0,11,0,9,0,10,0\n14,0,2,0,17,0,1,0,18,0,3,0\n15,0,19,0,16,0,7,0,13,0,8,0\n9,0,10,0,11,0,17,0,3,0,5,0\n4,0,15,0,16,0,12,0,14,0,2,0\n1,0,18,0,6,0,13,0,19,0,7,0\n8,0,3,0,9,0,11,0,14,0,16,0\n2,0,18,0,15,0,5,0,19,0,17,0\n1,0,12,0,7,0,13,0,6,0,4,0\n10,0,14,0,16,0,19,0,2,0,11,0\n13,0,6,0,17,0,8,0,3,0,4,0\n9,0,12,0,5,0,18,0,10,0,7,0\n1,0,13,0,16,0,15,0,17,0,11,0\n14,0,4,0,8,0,5,0,18,0,2,0\n7,0,6,0,15,0,12,0,3,0,10,0\n1,0,19,0,14,0,9,0,17,0,4,0\n15,0,10,0,5,0,13,0,11,0,12,0\n1,0,2,0,7,0,18,0,16,0,9,0\n6,0,3,0,10,0,19,0,8,0,17,0\n4,0,13,0,11,0,7,0,5,0,14,0\n15,0,2,0,16,0,6,0,19,0,9,0\n3,0,12,0,11,0,1,0,8,0,18,0\n17,0,2,0,10,0,4,0,7,0,9,0\n13,0,18,0,6,0,5,0,16,0,3,0\n8,0,19,0,1,0,15,0,14,0,12,0\n"
  },
  {
    "path": "schedules/19_13.csv",
    "content": "19,0,9,0,4,0,18,0,10,0,5,0\n13,0,12,0,3,0,14,0,7,0,1,0\n2,0,15,0,6,0,17,0,8,0,11,0\n16,0,1,0,9,0,18,0,13,0,7,0\n15,0,5,0,8,0,3,0,2,0,4,0\n6,0,10,0,17,0,14,0,11,0,12,0\n16,0,15,0,4,0,19,0,1,0,8,0\n14,1,2,1,3,1,18,1,9,1,17,0\n10,0,16,0,13,0,5,0,12,0,6,0\n7,0,9,0,17,0,11,0,19,0,15,0\n8,0,12,0,14,0,1,0,18,0,4,0\n7,0,5,0,16,0,13,0,19,0,2,0\n6,0,11,0,18,0,10,0,3,0,1,0\n4,0,14,0,8,0,5,0,17,0,13,0\n6,0,19,0,3,0,2,0,7,0,10,0\n11,0,9,0,4,0,12,0,16,0,15,0\n5,0,17,0,18,0,6,0,7,0,3,0\n9,0,13,0,12,0,8,0,15,0,10,0\n11,0,14,0,1,0,2,0,19,0,16,0\n4,0,10,0,12,0,15,0,3,0,7,0\n1,0,17,0,2,0,5,0,13,0,11,0\n19,0,14,0,16,0,6,0,8,0,9,0\n18,0,15,0,11,0,13,0,5,0,1,0\n8,0,16,0,10,0,17,0,3,0,9,0\n18,0,2,0,19,0,4,0,12,0,6,0\n7,0,11,0,10,0,14,0,5,0,8,0\n2,0,17,0,12,0,16,0,3,0,18,0\n15,0,13,0,4,0,6,0,19,0,14,0\n9,0,7,0,8,0,1,0,18,0,2,0\n11,0,10,0,3,0,13,0,14,0,4,0\n5,0,15,0,12,0,16,0,6,0,7,0\n17,0,1,0,14,0,19,0,9,0,10,0\n3,0,18,0,8,0,7,0,16,0,11,0\n17,0,5,0,19,0,1,0,15,0,12,0\n4,0,6,0,13,0,2,0,9,0,11,0\n10,0,14,0,18,0,16,0,15,0,17,0\n12,0,19,0,7,0,2,0,8,0,13,0\n3,0,6,0,1,0,9,0,5,0,4,0\n11,0,8,0,13,0,19,0,18,0,10,0\n2,0,5,0,3,0,15,0,9,0,14,0\n1,0,6,0,16,0,17,0,4,0,7,0\n14,0,2,0,3,0,12,0,18,0,9,0\n"
  },
  {
    "path": "schedules/19_14.csv",
    "content": "6,0,10,0,11,0,4,0,12,0,1,0\n8,0,13,0,19,0,18,0,2,0,7,0\n3,0,17,0,14,0,5,0,16,0,9,0\n15,0,12,0,10,0,11,0,2,0,1,0\n17,0,6,0,18,0,7,0,16,0,19,0\n15,0,8,0,9,0,4,0,13,0,14,0\n5,0,11,0,16,0,3,0,19,0,10,0\n7,1,4,1,9,0,2,1,18,1,12,0\n6,0,3,0,13,0,17,0,8,0,14,0\n5,0,18,0,4,0,1,0,15,0,16,0\n17,0,7,0,10,0,14,0,11,0,9,0\n6,0,13,0,5,0,1,0,19,0,12,0\n8,0,2,0,10,0,3,0,15,0,18,0\n1,0,5,0,17,0,7,0,13,0,12,0\n16,0,2,0,3,0,14,0,6,0,15,0\n8,0,4,0,11,0,9,0,19,0,5,0\n18,0,15,0,14,0,13,0,17,0,1,0\n2,0,10,0,9,0,6,0,16,0,8,0\n19,0,12,0,11,0,3,0,4,0,7,0\n15,0,13,0,9,0,10,0,18,0,16,0\n14,0,2,0,19,0,7,0,5,0,12,0\n8,0,1,0,3,0,4,0,17,0,11,0\n6,0,7,0,9,0,15,0,5,0,13,0\n4,0,2,0,19,0,10,0,14,0,1,0\n17,0,16,0,8,0,6,0,11,0,12,0\n18,0,19,0,13,0,3,0,9,0,4,0\n5,0,1,0,8,0,7,0,2,0,16,0\n3,0,12,0,17,0,18,0,6,0,10,0\n14,0,11,0,7,0,15,0,19,0,16,0\n12,0,1,0,9,0,8,0,3,0,5,0\n11,0,18,0,14,0,2,0,6,0,13,0\n17,0,15,0,7,0,10,0,4,0,3,0\n1,0,8,0,18,0,6,0,11,0,19,0\n16,0,14,0,12,0,4,0,5,0,15,0\n10,0,13,0,9,0,2,0,17,0,1,0\n18,0,12,0,3,0,8,0,14,0,7,0\n2,0,16,0,4,0,17,0,13,0,11,0\n19,0,9,0,5,0,10,0,15,0,6,0\n13,0,1,0,7,0,11,0,3,0,16,0\n14,0,5,0,10,0,18,0,8,0,4,0\n12,0,2,0,15,0,19,0,9,0,17,0\n6,0,1,0,4,0,7,0,3,0,14,0\n15,0,11,0,17,0,18,0,2,0,5,0\n19,0,13,0,16,0,10,0,12,0,8,0\n6,0,7,0,4,0,9,0,2,0,18,0\n"
  },
  {
    "path": "schedules/19_2.csv",
    "content": "6,0,12,0,11,0,3,0,18,0,15,0\n5,0,13,0,16,0,17,0,4,0,19,0\n14,0,9,0,8,0,1,0,2,0,7,0\n18,0,11,0,19,0,10,0,6,0,4,0\n17,0,5,0,15,0,14,0,3,0,7,0\n13,0,10,0,8,0,12,0,16,0,9,0\n1,0,18,1,3,1,2,0,17,1,11,1\n"
  },
  {
    "path": "schedules/19_3.csv",
    "content": "1,0,11,0,9,0,13,0,5,0,16,0\n6,0,17,0,19,0,14,0,3,0,15,0\n4,0,7,0,18,0,12,0,10,0,2,0\n17,0,15,0,16,0,8,0,9,0,5,0\n13,1,14,0,10,0,12,1,4,0,11,0\n3,1,8,0,1,0,6,0,2,0,7,0\n18,0,16,0,9,0,19,0,14,0,12,0\n11,0,13,0,2,0,17,0,3,0,7,0\n8,0,19,0,15,0,4,0,1,0,10,0\n5,0,18,0,12,0,6,0,13,0,3,0\n"
  },
  {
    "path": "schedules/19_4.csv",
    "content": "4,0,1,0,18,0,12,0,14,0,13,0\n16,0,15,0,10,0,9,0,2,0,11,0\n19,0,3,0,8,0,7,0,17,0,6,0\n5,0,2,0,14,0,1,0,9,0,12,0\n11,0,10,0,8,0,18,0,13,0,7,0\n4,0,16,0,19,0,5,0,3,0,15,0\n6,0,13,0,9,0,17,0,12,0,11,0\n8,1,18,0,2,0,7,1,3,0,4,0\n17,0,19,0,15,0,10,0,1,0,14,0\n5,0,6,0,18,0,16,0,7,0,2,0\n9,0,4,0,8,0,11,0,19,0,1,0\n3,0,6,0,14,0,5,0,13,0,10,0\n15,0,12,0,7,0,16,0,17,0,8,0\n"
  },
  {
    "path": "schedules/19_5.csv",
    "content": "18,0,5,0,9,0,17,0,13,0,4,0\n7,0,16,0,11,0,19,0,8,0,10,0\n6,0,12,0,14,0,1,0,3,0,15,0\n2,0,17,0,8,0,13,0,19,0,5,0\n16,0,3,0,14,0,7,0,9,0,4,0\n1,0,2,0,6,0,10,0,11,0,18,0\n12,0,16,0,19,0,15,0,14,0,13,0\n10,0,1,0,9,0,3,1,18,0,8,0\n7,0,6,0,15,0,2,0,5,0,4,0\n17,0,3,0,10,0,12,0,11,0,13,0\n1,0,4,0,19,0,16,0,6,0,9,0\n11,0,5,0,8,0,12,0,15,0,18,0\n2,0,7,0,13,0,14,0,17,0,1,0\n15,0,10,0,5,0,19,0,3,0,9,0\n4,0,8,0,14,0,11,0,6,0,17,0\n16,0,2,0,18,0,7,0,12,0,3,0\n"
  },
  {
    "path": "schedules/19_6.csv",
    "content": "9,0,11,0,12,0,1,0,3,0,6,0\n16,0,18,0,7,0,2,0,14,0,4,0\n8,0,13,0,19,0,10,0,15,0,5,0\n7,0,12,0,4,0,17,0,9,0,18,0\n3,0,10,0,14,0,1,0,15,0,2,0\n5,0,17,0,11,0,6,0,19,0,16,0\n8,0,18,0,10,0,13,0,12,0,14,0\n2,0,11,0,6,0,3,0,7,0,5,0\n17,0,15,0,8,0,9,0,1,0,16,0\n13,0,4,0,18,0,19,0,11,0,3,0\n1,0,5,0,14,0,8,0,7,0,9,0\n16,0,4,0,10,0,6,0,12,0,15,0\n19,0,17,0,1,0,13,0,2,0,7,0\n12,0,8,0,5,0,11,0,4,0,15,0\n9,0,14,0,6,0,18,0,2,0,19,0\n3,0,16,0,15,0,10,0,13,0,17,0\n6,0,5,0,18,0,4,0,1,0,8,0\n19,0,7,0,14,0,17,0,3,0,12,0\n2,0,10,0,9,0,13,0,11,0,16,0\n"
  },
  {
    "path": "schedules/19_7.csv",
    "content": "2,0,6,0,17,0,3,0,10,0,1,0\n12,0,7,0,19,0,8,0,16,0,14,0\n4,0,13,0,11,0,5,0,9,0,15,0\n18,0,17,0,8,0,14,0,7,0,3,0\n6,0,19,0,13,0,5,0,11,0,1,0\n2,0,15,0,12,0,4,0,18,0,16,0\n10,0,5,0,8,0,9,0,14,0,17,0\n12,1,13,1,16,0,19,1,2,1,3,1\n7,0,9,0,4,0,10,0,6,0,18,0\n15,0,1,0,3,0,11,0,8,0,12,0\n9,0,16,0,19,0,5,0,7,0,17,0\n1,0,13,0,14,0,15,0,6,0,4,0\n10,0,2,0,16,0,18,0,11,0,7,0\n13,0,17,0,3,0,4,0,1,0,19,0\n5,0,2,0,18,0,12,0,6,0,9,0\n11,0,10,0,14,0,8,0,15,0,19,0\n12,0,17,0,1,0,9,0,13,0,18,0\n7,0,10,0,15,0,2,0,5,0,14,0\n8,0,4,0,3,0,6,0,16,0,11,0\n19,0,18,0,14,0,7,0,13,0,2,0\n9,0,3,0,11,0,12,0,10,0,4,0\n8,0,6,0,1,0,15,0,16,0,17,0\n5,0,12,0,13,0,19,0,2,0,3,0\n"
  },
  {
    "path": "schedules/19_8.csv",
    "content": "17,0,3,0,14,0,13,0,12,0,11,0\n8,0,9,0,16,0,19,0,1,0,18,0\n10,0,15,0,2,0,5,0,7,0,6,0\n18,0,12,0,9,0,4,0,13,0,8,0\n2,0,3,0,16,0,17,0,7,0,15,0\n1,0,4,0,10,0,14,0,5,0,19,0\n11,0,18,0,3,0,6,0,9,0,15,0\n17,1,1,1,13,0,5,1,7,1,10,0\n19,0,8,0,6,0,14,0,12,0,2,0\n4,0,11,0,5,0,16,0,13,0,7,0\n14,0,15,0,1,0,9,0,3,0,19,0\n16,0,12,0,6,0,10,0,18,0,17,0\n2,0,11,0,1,0,8,0,4,0,3,0\n5,0,18,0,13,0,19,0,15,0,12,0\n10,0,14,0,6,0,2,0,17,0,8,0\n9,0,7,0,4,0,11,0,16,0,19,0\n12,0,8,0,5,0,1,0,6,0,17,0\n2,0,7,0,18,0,9,0,10,0,11,0\n15,0,13,0,3,0,16,0,4,0,14,0\n17,0,6,0,11,0,1,0,9,0,5,0\n14,0,7,0,8,0,16,0,18,0,15,0\n4,0,2,0,19,0,10,0,3,0,12,0\n16,0,17,0,5,0,13,0,9,0,14,0\n7,0,1,0,3,0,18,0,6,0,4,0\n10,0,13,0,19,0,11,0,15,0,8,0\n12,0,17,0,1,0,2,0,5,0,7,0\n"
  },
  {
    "path": "schedules/19_9.csv",
    "content": "3,0,5,0,4,0,12,0,15,0,17,0\n18,0,11,0,14,0,9,0,13,0,7,0\n8,0,6,0,16,0,19,0,2,0,1,0\n10,0,5,0,17,0,7,0,18,0,9,0\n15,0,13,0,14,0,2,0,16,0,12,0\n4,0,10,0,19,0,3,0,8,0,11,0\n6,0,13,0,12,0,1,0,17,0,18,0\n19,1,7,0,15,0,9,1,2,0,4,0\n3,0,1,0,10,0,6,1,14,0,16,0\n8,0,5,0,2,0,11,0,4,0,12,0\n14,0,17,0,7,0,6,0,15,0,10,0\n8,0,16,0,9,0,13,0,18,0,3,0\n19,0,11,0,17,0,1,0,5,0,14,0\n10,0,2,0,6,0,3,0,9,0,12,0\n18,0,8,0,19,0,7,0,16,0,4,0\n5,0,1,0,15,0,13,0,11,0,10,0\n3,0,6,0,7,0,14,0,8,0,12,0\n18,0,15,0,2,0,19,0,5,0,13,0\n9,0,4,0,17,0,11,0,16,0,1,0\n2,0,3,0,14,0,19,0,7,0,5,0\n9,0,1,0,13,0,15,0,8,0,4,0\n18,0,10,0,16,0,6,0,11,0,17,0\n12,0,7,0,1,0,19,0,3,0,15,0\n16,0,13,0,2,0,6,0,9,0,5,0\n12,0,18,0,4,0,14,0,8,0,10,0\n11,0,7,0,2,0,17,0,3,0,16,0\n9,0,14,0,19,0,6,0,4,0,1,0\n12,0,5,0,10,0,8,0,13,0,17,0\n15,0,11,0,9,0,18,0,19,0,6,0\n"
  },
  {
    "path": "schedules/20_1.csv",
    "content": "9,0,8,0,13,0,14,0,11,0,16,0\n17,0,2,0,5,0,18,0,6,0,10,0\n15,0,7,0,20,0,1,0,3,0,19,0\n4,0,8,1,6,1,12,0,2,1,18,1\n"
  },
  {
    "path": "schedules/20_10.csv",
    "content": "9,0,2,0,12,0,4,0,15,0,3,0\n5,0,11,0,8,0,1,0,10,0,16,0\n19,0,13,0,18,0,20,0,17,0,14,0\n7,0,8,0,3,0,6,0,5,0,2,0\n19,0,1,0,9,0,13,0,10,0,4,0\n11,0,12,0,14,0,7,0,6,0,17,0\n16,0,20,0,8,0,18,0,15,0,10,0\n1,1,5,0,9,0,19,1,7,0,14,0\n2,1,16,0,17,0,20,1,12,0,4,0\n15,0,11,0,13,0,18,0,3,0,6,0\n5,0,20,0,14,0,12,0,9,0,10,0\n7,0,18,0,4,0,13,0,6,0,8,0\n3,0,2,0,19,0,17,0,11,0,16,0\n15,0,6,0,20,0,1,0,4,0,5,0\n2,0,14,0,10,0,18,0,17,0,8,0\n16,0,12,0,7,0,13,0,11,0,1,0\n3,0,19,0,17,0,9,0,15,0,8,0\n2,0,13,0,16,0,11,0,20,0,10,0\n15,0,5,0,3,0,9,0,14,0,4,0\n12,0,6,0,18,0,19,0,1,0,7,0\n10,0,2,0,8,0,13,0,14,0,3,0\n11,0,17,0,4,0,7,0,9,0,20,0\n16,0,18,0,5,0,12,0,19,0,15,0\n6,0,4,0,11,0,1,0,8,0,14,0\n18,0,20,0,3,0,5,0,10,0,19,0\n17,0,1,0,12,0,7,0,2,0,15,0\n9,0,6,0,14,0,13,0,16,0,20,0\n4,0,8,0,19,0,11,0,18,0,2,0\n1,0,6,0,10,0,3,0,9,0,12,0\n7,0,5,0,13,0,17,0,16,0,15,0\n14,0,18,0,1,0,20,0,4,0,2,0\n7,0,3,0,10,0,16,0,6,0,19,0\n17,0,13,0,9,0,8,0,5,0,12,0\n15,0,1,0,2,0,11,0,19,0,20,0\n"
  },
  {
    "path": "schedules/20_11.csv",
    "content": "6,0,11,0,4,0,14,0,18,0,13,0\n15,0,16,0,12,0,8,0,10,0,2,0\n7,0,5,0,3,0,1,0,9,0,17,0\n19,0,13,0,16,0,20,0,4,0,18,0\n17,0,12,0,2,0,5,0,14,0,11,0\n19,0,3,0,1,0,8,0,20,0,9,0\n7,0,10,0,4,0,15,0,6,0,12,0\n1,1,8,0,5,0,17,1,13,0,20,0\n9,0,10,0,6,0,11,0,2,0,18,0\n19,0,15,0,7,0,14,0,16,0,3,0\n4,0,13,0,10,0,2,0,5,0,9,0\n3,0,15,0,11,0,7,0,18,0,1,0\n14,0,20,0,16,0,17,0,8,0,6,0\n19,0,5,0,4,0,12,0,2,0,3,0\n18,0,10,0,11,0,20,0,17,0,15,0\n13,0,12,0,8,0,19,0,1,0,6,0\n14,0,9,0,11,0,16,0,7,0,5,0\n20,0,1,0,15,0,2,0,3,0,4,0\n9,0,13,0,18,0,8,0,16,0,10,0\n6,0,17,0,14,0,12,0,19,0,7,0\n15,0,2,0,8,0,11,0,3,0,13,0\n4,0,17,0,16,0,19,0,10,0,20,0\n12,0,5,0,18,0,14,0,7,0,9,0\n6,0,2,0,16,0,1,0,15,0,4,0\n14,0,8,0,11,0,17,0,3,0,9,0\n1,0,12,0,20,0,13,0,7,0,6,0\n18,0,19,0,8,0,5,0,10,0,17,0\n9,0,12,0,4,0,16,0,11,0,1,0\n19,0,10,0,14,0,5,0,15,0,13,0\n2,0,20,0,7,0,6,0,18,0,3,0\n5,0,13,0,17,0,16,0,9,0,15,0\n11,0,6,0,7,0,19,0,8,0,4,0\n1,0,10,0,3,0,2,0,14,0,12,0\n20,0,6,0,5,0,18,0,16,0,15,0\n1,0,13,0,2,0,11,0,19,0,17,0\n3,0,20,0,8,0,10,0,12,0,9,0\n7,0,18,0,17,0,14,0,4,0,1,0\n"
  },
  {
    "path": "schedules/20_12.csv",
    "content": "9,0,5,0,2,0,14,0,20,0,19,0\n11,0,18,0,1,0,12,0,10,0,13,0\n17,0,3,0,16,0,7,0,8,0,6,0\n15,0,19,0,9,0,4,0,13,0,5,0\n6,0,2,0,3,0,10,0,18,0,17,0\n4,0,7,0,1,0,11,0,16,0,14,0\n8,0,20,0,19,0,12,0,15,0,18,0\n10,0,9,0,7,0,17,0,1,0,4,0\n6,0,11,0,15,0,16,0,14,0,5,0\n12,0,2,0,20,0,13,0,8,0,3,0\n17,0,18,0,9,0,15,0,16,0,14,0\n5,0,8,0,10,0,6,0,7,0,12,0\n4,0,3,0,11,0,20,0,19,0,1,0\n13,0,7,0,14,0,2,0,17,0,15,0\n12,0,8,0,3,0,9,0,20,0,11,0\n10,0,6,0,4,0,2,0,18,0,19,0\n16,0,1,0,8,0,5,0,13,0,17,0\n14,0,12,0,11,0,4,0,15,0,2,0\n7,0,20,0,5,0,6,0,18,0,9,0\n16,0,19,0,13,0,3,0,10,0,1,0\n5,0,12,0,11,0,7,0,2,0,17,0\n10,0,8,0,4,0,3,0,14,0,9,0\n15,0,13,0,1,0,18,0,6,0,20,0\n16,0,7,0,2,0,19,0,9,0,4,0\n17,0,13,0,6,0,10,0,11,0,15,0\n1,0,14,0,8,0,3,0,5,0,18,0\n20,0,12,0,17,0,16,0,19,0,6,0\n1,0,9,0,15,0,8,0,2,0,11,0\n18,0,14,0,13,0,12,0,7,0,19,0\n5,0,16,0,4,0,20,0,3,0,10,0\n19,0,9,0,11,0,18,0,8,0,17,0\n2,0,20,0,13,0,4,0,6,0,14,0\n15,0,3,0,7,0,12,0,1,0,5,0\n16,0,18,0,20,0,10,0,14,0,2,0\n15,0,6,0,5,0,12,0,1,0,4,0\n16,0,10,0,7,0,8,0,9,0,13,0\n17,0,11,0,14,0,3,0,19,0,5,0\n2,0,1,0,6,0,12,0,9,0,16,0\n19,0,17,0,10,0,8,0,15,0,20,0\n4,0,18,0,3,0,13,0,11,0,7,0\n"
  },
  {
    "path": "schedules/20_13.csv",
    "content": "6,0,8,0,7,0,14,0,18,0,10,0\n16,0,17,0,13,0,12,0,3,0,2,0\n1,0,20,0,15,0,11,0,4,0,9,0\n5,0,14,0,16,0,19,0,6,0,12,0\n8,0,1,0,10,0,15,0,20,0,2,0\n11,0,18,0,19,0,5,0,13,0,4,0\n3,0,7,0,20,0,17,0,9,0,12,0\n19,1,6,0,4,0,15,1,8,0,16,0\n14,1,18,0,5,0,17,1,1,0,9,0\n3,0,13,0,11,0,10,0,7,0,2,0\n8,0,9,0,18,0,12,0,1,0,4,0\n3,0,7,0,6,0,17,0,13,0,19,0\n20,0,16,0,10,0,11,0,14,0,5,0\n15,0,19,0,7,0,2,0,6,0,9,0\n8,0,13,0,10,0,1,0,16,0,11,0\n15,0,3,0,14,0,20,0,18,0,12,0\n2,0,4,0,13,0,17,0,5,0,6,0\n12,0,9,0,16,0,10,0,19,0,11,0\n15,0,8,0,4,0,18,0,17,0,3,0\n2,0,5,0,20,0,1,0,14,0,7,0\n10,0,18,0,6,0,15,0,9,0,16,0\n11,0,14,0,1,0,8,0,3,0,19,0\n12,0,5,0,13,0,2,0,20,0,4,0\n7,0,11,0,9,0,17,0,6,0,14,0\n19,0,12,0,10,0,13,0,18,0,1,0\n16,0,8,0,3,0,20,0,4,0,7,0\n17,0,2,0,1,0,15,0,5,0,10,0\n14,0,13,0,7,0,16,0,4,0,18,0\n6,0,11,0,15,0,5,0,3,0,12,0\n19,0,9,0,20,0,17,0,2,0,8,0\n4,0,15,0,1,0,7,0,12,0,16,0\n9,0,10,0,3,0,6,0,19,0,13,0\n2,0,18,0,5,0,20,0,11,0,8,0\n17,0,10,0,4,0,14,0,19,0,3,0\n11,0,2,0,16,0,7,0,18,0,15,0\n9,0,5,0,13,0,12,0,8,0,14,0\n20,0,17,0,18,0,6,0,1,0,16,0\n2,0,9,0,14,0,10,0,3,0,4,0\n5,0,1,0,19,0,7,0,8,0,17,0\n11,0,12,0,15,0,13,0,6,0,20,0\n19,0,16,0,2,0,1,0,9,0,3,0\n17,0,20,0,14,0,15,0,18,0,13,0\n10,0,12,0,6,0,5,0,7,0,8,0\n4,0,19,0,14,0,11,0,15,0,17,0\n"
  },
  {
    "path": "schedules/20_14.csv",
    "content": "15,0,20,0,13,0,10,0,6,0,3,0\n11,0,5,0,16,0,2,0,19,0,12,0\n14,0,7,0,18,0,4,0,9,0,8,0\n1,0,2,0,16,0,17,0,15,0,19,0\n11,0,7,0,8,0,13,0,9,0,10,0\n17,0,5,0,3,0,12,0,14,0,4,0\n20,0,1,0,19,0,6,0,18,0,8,0\n17,1,15,0,3,0,4,1,11,0,10,0\n20,0,1,0,12,0,14,0,9,0,2,0\n13,0,6,0,5,0,18,0,16,0,7,0\n11,0,19,0,4,0,15,0,12,0,1,0\n2,0,5,0,10,0,17,0,8,0,6,0\n9,0,3,0,20,0,16,0,18,0,13,0\n7,0,11,0,6,0,14,0,1,0,5,0\n18,0,9,0,19,0,3,0,2,0,4,0\n8,0,13,0,12,0,16,0,10,0,17,0\n7,0,14,0,19,0,15,0,20,0,6,0\n5,0,4,0,10,0,16,0,2,0,8,0\n9,0,7,0,15,0,18,0,3,0,1,0\n12,0,17,0,20,0,13,0,11,0,14,0\n6,0,19,0,10,0,5,0,18,0,4,0\n7,0,2,0,12,0,20,0,3,0,8,0\n9,0,17,0,1,0,11,0,14,0,16,0\n13,0,7,0,2,0,15,0,19,0,12,0\n16,0,6,0,4,0,20,0,9,0,10,0\n14,0,1,0,17,0,8,0,15,0,18,0\n11,0,3,0,9,0,5,0,13,0,19,0\n4,0,10,0,15,0,7,0,2,0,17,0\n16,0,12,0,3,0,13,0,6,0,1,0\n8,0,11,0,5,0,20,0,18,0,14,0\n6,0,12,0,10,0,7,0,9,0,1,0\n14,0,8,0,19,0,4,0,13,0,15,0\n18,0,17,0,2,0,11,0,16,0,20,0\n3,0,8,0,10,0,5,0,19,0,1,0\n4,0,20,0,16,0,15,0,14,0,12,0\n6,0,2,0,13,0,9,0,17,0,5,0\n11,0,18,0,12,0,3,0,7,0,4,0\n16,0,9,0,15,0,8,0,5,0,20,0\n6,0,14,0,3,0,17,0,19,0,11,0\n13,0,18,0,2,0,10,0,7,0,1,0\n8,0,15,0,17,0,12,0,9,0,6,0\n3,0,14,0,19,0,7,0,10,0,5,0\n13,0,11,0,1,0,20,0,2,0,4,0\n18,0,10,0,14,0,16,0,12,0,19,0\n4,0,17,0,5,0,9,0,7,0,20,0\n18,0,6,0,16,0,11,0,2,0,15,0\n1,0,8,0,4,0,13,0,3,0,17,0\n"
  },
  {
    "path": "schedules/20_2.csv",
    "content": "12,0,3,0,9,0,19,0,11,0,15,0\n4,0,6,0,1,0,8,0,17,0,7,0\n10,0,5,0,16,0,2,0,13,0,18,0\n14,0,17,0,4,0,20,0,9,0,11,0\n13,0,15,0,7,0,8,0,18,0,19,0\n6,0,10,0,2,0,12,0,1,0,14,0\n16,0,20,0,7,1,3,0,5,0,8,1\n"
  },
  {
    "path": "schedules/20_3.csv",
    "content": "20,0,5,0,10,0,17,0,16,0,11,0\n1,0,3,0,2,0,6,0,15,0,19,0\n8,0,7,0,4,0,18,0,9,0,14,0\n13,0,10,0,6,0,12,0,15,0,5,0\n9,0,17,0,19,0,16,0,2,0,7,0\n8,0,20,0,11,0,4,0,1,0,12,0\n18,0,13,0,16,0,14,0,3,0,6,0\n9,0,5,0,7,0,20,0,15,0,1,0\n12,0,14,0,11,0,19,0,2,0,18,0\n3,0,4,0,13,0,8,0,10,0,17,0\n"
  },
  {
    "path": "schedules/20_4.csv",
    "content": "16,0,17,0,8,0,6,0,19,0,20,0\n7,0,11,0,1,0,3,0,5,0,4,0\n9,0,18,0,13,0,12,0,14,0,15,0\n2,0,4,0,7,0,10,0,16,0,19,0\n15,0,17,0,20,0,5,0,18,0,11,0\n3,0,14,0,10,0,12,0,8,0,6,0\n1,0,13,0,5,0,9,0,2,0,19,0\n17,1,11,0,12,0,16,1,7,0,14,0\n18,1,6,0,15,0,4,1,8,0,1,0\n9,0,20,0,3,0,2,0,10,0,13,0\n8,0,19,0,5,0,12,0,18,0,16,0\n17,0,4,0,14,0,1,0,2,0,20,0\n10,0,7,0,6,0,15,0,13,0,11,0\n9,0,16,0,4,0,3,0,17,0,18,0\n"
  },
  {
    "path": "schedules/20_5.csv",
    "content": "4,0,9,0,15,0,2,0,1,0,18,0\n10,0,3,0,13,0,19,0,16,0,20,0\n14,0,12,0,8,0,7,0,17,0,11,0\n5,0,13,0,19,0,6,0,2,0,9,0\n10,0,8,0,11,0,15,0,3,0,18,0\n4,0,16,0,5,0,20,0,12,0,17,0\n7,0,14,0,18,0,6,0,1,0,19,0\n12,1,4,0,3,0,15,1,11,0,13,0\n5,0,2,0,17,0,7,0,1,0,10,0\n6,0,14,0,20,0,8,0,16,0,9,0\n19,0,7,0,3,0,15,0,5,0,12,0\n1,0,11,0,14,0,10,0,20,0,4,0\n16,0,18,0,17,0,8,0,13,0,2,0\n9,0,12,0,10,0,6,0,4,0,7,0\n5,0,18,0,20,0,2,0,15,0,14,0\n3,0,11,0,6,0,17,0,19,0,9,0\n8,0,1,0,15,0,16,0,13,0,12,0\n"
  },
  {
    "path": "schedules/20_6.csv",
    "content": "6,0,15,0,9,0,3,0,17,0,1,0\n11,0,2,0,10,0,7,0,20,0,4,0\n16,0,13,0,5,0,12,0,14,0,18,0\n8,0,15,0,2,0,19,0,17,0,6,0\n12,0,11,0,16,0,10,0,14,0,3,0\n4,0,1,0,18,0,5,0,19,0,20,0\n8,0,9,0,16,0,7,0,13,0,2,0\n19,0,12,0,10,0,11,0,1,0,15,0\n14,0,7,0,17,0,20,0,9,0,18,0\n13,0,3,0,4,0,8,0,6,0,5,0\n9,0,1,0,19,0,10,0,18,0,16,0\n17,0,20,0,11,0,12,0,13,0,8,0\n15,0,3,0,7,0,4,0,2,0,14,0\n6,0,20,0,10,0,5,0,9,0,11,0\n4,0,17,0,8,0,14,0,16,0,1,0\n7,0,18,0,19,0,3,0,6,0,12,0\n5,0,2,0,1,0,15,0,13,0,10,0\n9,0,12,0,17,0,16,0,6,0,4,0\n14,0,13,0,20,0,2,0,19,0,3,0\n18,0,15,0,5,0,8,0,11,0,7,0\n"
  },
  {
    "path": "schedules/20_7.csv",
    "content": "14,0,3,0,10,0,6,0,2,0,8,0\n11,0,17,0,12,0,5,0,18,0,7,0\n4,0,19,0,13,0,16,0,1,0,15,0\n9,0,8,0,7,0,20,0,5,0,3,0\n18,0,2,0,19,0,4,0,14,0,11,0\n17,0,15,0,9,0,10,0,16,0,13,0\n1,0,6,0,11,0,12,0,20,0,19,0\n3,1,15,0,4,0,16,1,5,0,9,0\n7,1,10,0,2,0,12,1,13,0,18,0\n1,0,8,0,20,0,17,0,14,0,6,0\n9,0,18,0,10,0,16,0,19,0,7,0\n15,0,13,0,11,0,14,0,12,0,8,0\n20,0,17,0,5,0,4,0,2,0,1,0\n6,0,13,0,7,0,3,0,18,0,11,0\n16,0,14,0,20,0,12,0,15,0,5,0\n2,0,3,0,17,0,6,0,19,0,9,0\n1,0,10,0,12,0,4,0,8,0,18,0\n7,0,15,0,14,0,9,0,2,0,11,0\n13,0,3,0,8,0,16,0,17,0,4,0\n1,0,19,0,5,0,6,0,20,0,10,0\n4,0,7,0,12,0,13,0,14,0,9,0\n6,0,16,0,3,0,18,0,20,0,15,0\n8,0,5,0,11,0,17,0,19,0,10,0\n2,0,16,0,12,0,1,0,3,0,7,0\n"
  },
  {
    "path": "schedules/20_8.csv",
    "content": "18,0,7,0,14,0,1,0,20,0,16,0\n3,0,5,0,12,0,13,0,15,0,9,0\n17,0,10,0,6,0,11,0,19,0,8,0\n4,0,13,0,18,0,2,0,16,0,9,0\n14,0,19,0,20,0,7,0,15,0,12,0\n1,0,11,0,5,0,6,0,2,0,3,0\n8,0,17,0,13,0,10,0,4,0,20,0\n16,1,19,0,9,0,12,1,6,0,1,0\n11,0,4,0,17,0,3,0,15,0,18,0\n2,0,5,0,7,0,8,0,10,0,14,0\n12,0,17,0,13,0,4,0,19,0,3,0\n10,0,2,0,15,0,1,0,18,0,8,0\n11,0,6,0,14,0,9,0,7,0,20,0\n16,0,15,0,4,0,5,0,10,0,13,0\n8,0,20,0,3,0,2,0,19,0,1,0\n12,0,11,0,9,0,5,0,16,0,14,0\n18,0,17,0,2,0,6,0,7,0,13,0\n1,0,14,0,3,0,12,0,8,0,4,0\n6,0,20,0,15,0,16,0,19,0,17,0\n18,0,5,0,9,0,7,0,10,0,11,0\n15,0,6,0,19,0,2,0,14,0,13,0\n7,0,8,0,16,0,3,0,9,0,17,0\n1,0,12,0,10,0,18,0,11,0,20,0\n4,0,9,0,14,0,5,0,8,0,6,0\n10,0,16,0,3,0,2,0,20,0,12,0\n4,0,1,0,7,0,17,0,15,0,5,0\n11,0,13,0,16,0,18,0,19,0,12,0\n"
  },
  {
    "path": "schedules/20_9.csv",
    "content": "6,0,18,0,9,0,8,0,20,0,7,0\n5,0,16,0,11,0,17,0,1,0,2,0\n12,0,10,0,15,0,4,0,14,0,19,0\n3,0,1,0,9,0,13,0,20,0,2,0\n6,0,4,0,7,0,15,0,5,0,17,0\n8,0,13,0,14,0,18,0,12,0,3,0\n16,0,19,0,2,0,11,0,10,0,4,0\n15,0,20,0,18,0,12,0,5,0,13,0\n16,0,8,0,10,0,9,0,17,0,7,0\n11,0,14,0,1,0,19,0,3,0,6,0\n5,0,10,0,18,0,8,0,9,0,15,0\n19,0,12,0,7,0,13,0,6,0,11,0\n20,0,14,0,3,0,4,0,16,0,17,0\n2,0,9,0,10,0,1,0,13,0,15,0\n6,0,17,0,19,0,4,0,12,0,20,0\n7,0,3,0,5,0,8,0,2,0,11,0\n14,0,16,0,6,0,18,0,1,0,10,0\n3,0,4,0,13,0,9,0,5,0,19,0\n18,0,16,0,12,0,11,0,7,0,1,0\n17,0,8,0,20,0,15,0,14,0,2,0\n7,0,13,0,10,0,18,0,19,0,11,0\n2,0,6,0,5,0,15,0,16,0,3,0\n4,0,1,0,8,0,14,0,9,0,12,0\n17,0,13,0,18,0,20,0,6,0,10,0\n19,0,15,0,8,0,16,0,2,0,7,0\n20,0,9,0,11,0,14,0,4,0,5,0\n1,0,12,0,6,0,17,0,3,0,10,0\n2,0,4,0,15,0,14,0,7,0,18,0\n19,0,1,0,20,0,3,0,8,0,5,0\n12,0,17,0,11,0,9,0,13,0,16,0\n"
  },
  {
    "path": "schedules/21_1.csv",
    "content": "18,0,10,0,9,0,14,0,20,0,3,0\n17,0,19,0,5,0,16,0,4,0,15,0\n1,0,8,0,2,0,13,0,21,0,12,0\n6,0,7,0,18,1,11,0,19,1,20,1\n"
  },
  {
    "path": "schedules/21_10.csv",
    "content": "13,0,17,0,10,0,20,0,1,0,4,0\n15,0,8,0,19,0,7,0,5,0,16,0\n9,0,14,0,21,0,2,0,3,0,18,0\n12,0,6,0,1,0,11,0,19,0,17,0\n18,0,14,0,4,0,8,0,21,0,7,0\n11,0,9,0,20,0,10,0,16,0,15,0\n12,0,2,0,13,0,3,0,6,0,5,0\n7,0,19,0,14,0,17,0,21,0,20,0\n10,0,8,0,3,0,11,0,13,0,16,0\n18,0,5,0,1,0,2,0,6,0,9,0\n12,0,21,0,16,0,4,0,15,0,3,0\n10,0,19,0,9,0,14,0,8,0,11,0\n18,0,6,0,7,0,4,0,15,0,13,0\n12,0,5,0,20,0,2,0,17,0,1,0\n4,0,6,0,10,0,9,0,3,0,7,0\n11,0,2,0,16,0,13,0,20,0,19,0\n14,0,17,0,5,0,12,0,15,0,18,0\n1,0,8,0,13,0,21,0,11,0,6,0\n18,0,16,0,19,0,17,0,12,0,7,0\n3,0,14,0,1,0,4,0,8,0,2,0\n21,0,9,0,15,0,20,0,10,0,5,0\n3,0,11,0,18,0,19,0,6,0,1,0\n10,0,21,0,2,0,16,0,14,0,20,0\n17,0,4,0,7,0,8,0,5,0,9,0\n15,0,12,0,11,0,13,0,3,0,21,0\n9,0,4,0,16,0,19,0,5,0,2,0\n7,0,1,0,13,0,10,0,12,0,14,0\n20,0,8,0,18,0,17,0,6,0,15,0\n5,0,11,0,7,0,21,0,1,0,16,0\n20,0,14,0,15,0,8,0,9,0,12,0\n3,0,19,0,2,0,10,0,17,0,18,0\n4,0,5,0,21,0,6,0,13,0,14,0\n2,0,7,0,15,0,10,0,1,0,11,0\n8,0,6,0,20,0,12,0,19,0,4,0\n17,0,16,0,3,0,13,0,9,0,18,0\n"
  },
  {
    "path": "schedules/21_11.csv",
    "content": "11,0,2,0,13,0,15,0,18,0,9,0\n14,0,20,0,3,0,16,0,5,0,17,0\n4,0,21,0,1,0,8,0,12,0,10,0\n6,0,19,0,9,0,7,0,11,0,14,0\n8,0,20,0,4,0,1,0,18,0,5,0\n2,0,3,0,12,0,16,0,19,0,10,0\n17,0,21,0,7,0,6,0,15,0,13,0\n9,1,18,0,11,0,20,1,12,0,4,0\n5,0,8,0,13,0,7,1,15,0,3,0\n17,0,6,0,10,0,16,0,14,0,1,0\n19,0,2,0,18,0,21,0,5,0,3,0\n9,0,8,0,17,0,11,0,10,0,4,0\n12,0,19,0,15,0,16,0,20,0,13,0\n14,0,2,0,21,0,6,0,1,0,7,0\n17,0,15,0,10,0,3,0,5,0,9,0\n18,0,12,0,16,0,13,0,6,0,14,0\n7,0,11,0,20,0,19,0,8,0,21,0\n2,0,1,0,9,0,4,0,13,0,3,0\n10,0,14,0,5,0,18,0,6,0,19,0\n15,0,11,0,8,0,20,0,16,0,21,0\n7,0,1,0,12,0,17,0,2,0,4,0\n10,0,13,0,9,0,5,0,20,0,19,0\n16,0,11,0,6,0,2,0,8,0,7,0\n14,0,18,0,4,0,1,0,15,0,21,0\n3,0,17,0,11,0,12,0,20,0,9,0\n7,0,16,0,15,0,18,0,10,0,21,0\n19,0,1,0,3,0,2,0,8,0,14,0\n17,0,12,0,13,0,6,0,5,0,4,0\n8,0,16,0,9,0,10,0,15,0,2,0\n3,0,6,0,1,0,11,0,12,0,21,0\n4,0,7,0,19,0,18,0,17,0,20,0\n13,0,21,0,9,0,5,0,14,0,12,0\n6,0,20,0,2,0,8,0,3,0,18,0\n15,0,16,0,4,0,14,0,19,0,17,0\n5,0,7,0,10,0,11,0,1,0,13,0\n6,0,8,0,21,0,19,0,17,0,9,0\n20,0,10,0,1,0,13,0,7,0,18,0\n14,0,15,0,5,0,11,0,2,0,12,0\n3,0,16,0,20,0,4,0,9,0,7,0\n"
  },
  {
    "path": "schedules/21_12.csv",
    "content": "9,0,6,0,5,0,8,0,18,0,1,0\n16,0,7,0,19,0,13,0,11,0,2,0\n21,0,20,0,4,0,12,0,15,0,17,0\n3,0,14,0,13,0,10,0,5,0,19,0\n15,0,6,0,2,0,4,0,16,0,21,0\n7,0,1,0,20,0,14,0,12,0,18,0\n10,0,8,0,11,0,3,0,17,0,9,0\n7,0,16,0,12,0,5,0,14,0,15,0\n20,0,2,0,3,0,4,0,10,0,8,0\n1,0,11,0,9,0,13,0,6,0,21,0\n19,0,18,0,15,0,17,0,12,0,20,0\n7,0,21,0,11,0,16,0,6,0,4,0\n17,0,18,0,13,0,5,0,3,0,8,0\n10,0,14,0,1,0,19,0,9,0,2,0\n8,0,17,0,21,0,18,0,7,0,3,0\n15,0,13,0,20,0,10,0,16,0,1,0\n2,0,12,0,14,0,11,0,6,0,9,0\n5,0,10,0,17,0,4,0,19,0,1,0\n16,0,15,0,8,0,18,0,2,0,6,0\n11,0,19,0,3,0,12,0,13,0,7,0\n21,0,14,0,9,0,5,0,4,0,20,0\n13,0,7,0,15,0,1,0,17,0,2,0\n9,0,18,0,16,0,19,0,21,0,12,0\n3,0,6,0,4,0,20,0,14,0,11,0\n5,0,8,0,7,0,10,0,9,0,15,0\n4,0,18,0,2,0,14,0,3,0,21,0\n10,0,6,0,12,0,13,0,17,0,8,0\n19,0,5,0,1,0,11,0,16,0,20,0\n18,0,10,0,21,0,7,0,14,0,6,0\n9,0,12,0,8,0,1,0,3,0,15,0\n11,0,4,0,17,0,5,0,16,0,2,0\n20,0,18,0,6,0,19,0,13,0,9,0\n12,0,1,0,11,0,8,0,7,0,2,0\n20,0,10,0,13,0,21,0,5,0,15,0\n19,0,3,0,17,0,14,0,16,0,4,0\n10,0,2,0,7,0,20,0,9,0,18,0\n3,0,4,0,12,0,1,0,13,0,6,0\n14,0,8,0,19,0,11,0,21,0,15,0\n5,0,16,0,13,0,17,0,7,0,9,0\n2,0,21,0,1,0,19,0,3,0,10,0\n14,0,17,0,16,0,8,0,20,0,6,0\n12,0,4,0,15,0,18,0,11,0,5,0\n"
  },
  {
    "path": "schedules/21_13.csv",
    "content": "18,0,6,0,15,0,20,0,12,0,5,0\n8,0,16,0,2,0,11,0,3,0,9,0\n14,0,17,0,10,0,21,0,7,0,13,0\n1,0,4,0,2,0,19,0,5,0,16,0\n3,0,20,0,21,0,18,0,10,0,12,0\n19,0,7,0,11,0,15,0,4,0,9,0\n14,0,17,0,8,0,13,0,6,0,1,0\n4,1,3,0,18,0,7,1,16,0,11,0\n5,1,12,0,10,0,8,0,19,0,6,0\n9,0,2,0,15,0,1,0,14,0,21,0\n17,0,13,0,19,0,20,0,18,0,11,0\n8,0,21,0,2,0,14,0,4,0,6,0\n5,0,10,0,3,0,9,0,17,0,15,0\n20,0,16,0,7,0,12,0,1,0,13,0\n8,0,15,0,11,0,5,0,21,0,19,0\n9,0,7,0,18,0,12,0,2,0,14,0\n20,0,17,0,6,0,3,0,16,0,4,0\n13,0,1,0,9,0,10,0,18,0,2,0\n19,0,12,0,17,0,14,0,15,0,16,0\n11,0,5,0,13,0,6,0,21,0,3,0\n20,0,4,0,10,0,1,0,7,0,8,0\n6,0,13,0,18,0,19,0,2,0,3,0\n16,0,8,0,10,0,20,0,7,0,15,0\n14,0,1,0,5,0,9,0,12,0,11,0\n21,0,4,0,18,0,17,0,19,0,7,0\n16,0,14,0,9,0,12,0,8,0,3,0\n1,0,21,0,11,0,20,0,5,0,13,0\n15,0,10,0,6,0,4,0,2,0,17,0\n7,0,3,0,14,0,20,0,19,0,1,0\n12,0,15,0,13,0,2,0,11,0,4,0\n21,0,9,0,8,0,16,0,17,0,18,0\n5,0,6,0,20,0,10,0,19,0,14,0\n2,0,3,0,13,0,15,0,8,0,7,0\n11,0,17,0,6,0,10,0,1,0,18,0\n16,0,12,0,4,0,5,0,21,0,9,0\n15,0,3,0,1,0,18,0,6,0,7,0\n12,0,19,0,11,0,2,0,8,0,20,0\n4,0,5,0,14,0,13,0,10,0,16,0\n17,0,21,0,20,0,9,0,2,0,6,0\n8,0,18,0,5,0,15,0,13,0,14,0\n12,0,21,0,16,0,10,0,11,0,7,0\n4,0,19,0,9,0,3,0,1,0,17,0\n2,0,5,0,7,0,20,0,14,0,18,0\n9,0,10,0,11,0,8,0,13,0,4,0\n16,0,1,0,6,0,15,0,19,0,21,0\n3,0,12,0,7,0,17,0,4,0,5,0\n"
  },
  {
    "path": "schedules/21_14.csv",
    "content": "11,0,1,0,18,0,17,0,16,0,14,0\n5,0,9,0,2,0,21,0,7,0,19,0\n12,0,20,0,10,0,3,0,4,0,13,0\n15,0,8,0,18,0,6,0,11,0,21,0\n1,0,13,0,9,0,2,0,7,0,16,0\n8,0,12,0,5,0,6,0,15,0,10,0\n3,0,14,0,17,0,20,0,19,0,4,0\n21,0,6,0,1,0,12,0,7,0,9,0\n17,0,5,0,4,0,2,0,8,0,14,0\n18,0,19,0,16,0,15,0,20,0,11,0\n3,0,6,0,14,0,10,0,13,0,2,0\n18,0,4,0,9,0,11,0,12,0,5,0\n21,0,13,0,8,0,3,0,20,0,1,0\n7,0,10,0,17,0,15,0,19,0,16,0\n1,0,5,0,20,0,18,0,2,0,21,0\n13,0,16,0,6,0,9,0,19,0,8,0\n17,0,12,0,15,0,3,0,7,0,14,0\n11,0,10,0,21,0,4,0,16,0,1,0\n3,0,2,0,19,0,12,0,18,0,6,0\n9,0,14,0,13,0,17,0,20,0,11,0\n7,0,4,0,10,0,8,0,15,0,5,0\n20,0,2,0,6,0,11,0,16,0,12,0\n21,0,17,0,18,0,7,0,3,0,8,0\n15,0,9,0,14,0,10,0,19,0,1,0\n13,0,5,0,17,0,4,0,21,0,12,0\n2,0,8,0,9,0,10,0,18,0,14,0\n16,0,4,0,15,0,13,0,1,0,20,0\n11,0,3,0,7,0,5,0,19,0,6,0\n16,0,10,0,8,0,17,0,1,0,12,0\n2,0,11,0,4,0,6,0,13,0,7,0\n19,0,20,0,14,0,5,0,18,0,21,0\n3,0,15,0,12,0,9,0,11,0,13,0\n14,0,7,0,1,0,8,0,20,0,6,0\n3,0,16,0,18,0,5,0,10,0,9,0\n21,0,15,0,4,0,19,0,2,0,17,0\n14,0,5,0,7,0,3,0,10,0,11,0\n19,0,12,0,17,0,18,0,1,0,2,0\n8,0,6,0,4,0,20,0,9,0,16,0\n21,0,13,0,14,0,15,0,18,0,7,0\n16,0,12,0,2,0,4,0,5,0,3,0\n1,0,11,0,8,0,13,0,15,0,19,0\n21,0,20,0,10,0,9,0,6,0,17,0\n19,0,8,0,11,0,4,0,12,0,14,0\n5,0,6,0,10,0,13,0,18,0,17,0\n2,0,15,0,16,0,9,0,3,0,21,0\n7,0,20,0,18,0,1,0,10,0,4,0\n19,0,12,0,13,0,16,0,5,0,21,0\n7,0,20,0,2,0,8,0,17,0,11,0\n3,0,6,0,9,0,1,0,15,0,14,0\n"
  },
  {
    "path": "schedules/21_2.csv",
    "content": "18,0,14,0,2,0,4,0,10,0,12,0\n11,0,7,0,15,0,20,0,6,0,17,0\n9,0,1,0,19,0,21,0,16,0,8,0\n13,0,3,0,2,0,5,0,7,0,20,0\n11,0,14,0,10,0,19,0,15,0,8,0\n5,0,9,0,21,0,4,0,6,0,18,0\n17,0,12,0,3,0,1,0,13,0,16,0\n"
  },
  {
    "path": "schedules/21_3.csv",
    "content": "12,0,11,0,9,0,14,0,1,0,3,0\n10,0,16,0,15,0,2,0,18,0,6,0\n5,0,20,0,19,0,17,0,21,0,8,0\n7,0,4,0,1,0,13,0,16,0,3,0\n15,1,12,0,20,0,19,1,10,0,11,0\n7,1,18,0,13,0,9,0,8,0,5,0\n2,0,17,0,14,0,4,0,21,0,6,0\n5,0,10,0,3,0,15,0,19,0,1,0\n9,0,6,0,7,0,11,0,20,0,4,0\n21,0,16,0,2,0,8,0,12,0,13,0\n14,0,18,0,15,0,17,0,19,0,7,0\n"
  },
  {
    "path": "schedules/21_4.csv",
    "content": "20,0,21,0,10,0,14,0,2,0,6,0\n18,0,9,0,11,0,4,0,19,0,5,0\n15,0,7,0,1,0,13,0,12,0,17,0\n16,0,8,0,4,0,3,0,19,0,21,0\n2,0,15,0,12,0,18,0,5,0,14,0\n3,0,6,0,16,0,13,0,11,0,1,0\n17,0,7,0,10,0,9,0,20,0,8,0\n19,0,15,0,14,0,1,0,4,0,6,0\n16,0,13,0,9,0,18,0,2,0,20,0\n7,0,21,0,12,0,11,0,3,0,10,0\n5,0,8,0,6,0,17,0,16,0,14,0\n10,0,9,0,19,0,3,0,15,0,13,0\n8,0,2,0,17,0,11,0,4,0,12,0\n18,0,1,0,21,0,5,0,7,0,20,0\n"
  },
  {
    "path": "schedules/21_5.csv",
    "content": "15,0,10,0,19,0,20,0,21,0,7,0\n6,0,9,0,4,0,12,0,11,0,18,0\n8,0,5,0,3,0,1,0,2,0,16,0\n14,0,17,0,12,0,13,0,4,0,19,0\n7,0,1,0,15,0,2,0,18,0,6,0\n11,0,5,0,16,0,21,0,17,0,10,0\n20,0,3,0,13,0,8,0,9,0,14,0\n5,1,21,0,12,0,19,1,1,0,18,0\n14,1,13,0,16,0,3,0,7,0,6,0\n20,0,2,0,15,0,11,0,9,0,17,0\n4,0,8,0,21,0,10,0,6,0,5,0\n17,0,18,0,7,0,11,0,3,0,14,0\n19,0,12,0,2,0,20,0,16,0,8,0\n10,0,4,0,1,0,9,0,15,0,13,0\n21,0,14,0,18,0,2,0,8,0,17,0\n11,0,6,0,13,0,19,0,5,0,20,0\n16,0,3,0,10,0,12,0,4,0,15,0\n1,0,9,0,5,0,7,0,19,0,14,0\n"
  },
  {
    "path": "schedules/21_6.csv",
    "content": "14,0,15,0,17,0,12,0,20,0,4,0\n10,0,5,0,7,0,19,0,21,0,11,0\n2,0,18,0,16,0,3,0,6,0,1,0\n13,0,8,0,12,0,9,0,19,0,7,0\n20,0,14,0,3,0,21,0,10,0,1,0\n9,0,18,0,13,0,5,0,2,0,15,0\n4,0,6,0,16,0,8,0,11,0,17,0\n19,0,18,0,1,0,20,0,21,0,13,0\n4,0,2,0,17,0,10,0,16,0,8,0\n11,0,6,0,5,0,14,0,9,0,12,0\n15,0,21,0,4,0,3,0,7,0,2,0\n14,0,16,0,11,0,5,0,19,0,13,0\n10,0,3,0,9,0,17,0,12,0,18,0\n20,0,7,0,1,0,8,0,6,0,15,0\n11,0,2,0,9,0,21,0,16,0,3,0\n4,0,8,0,7,0,5,0,14,0,18,0\n1,0,13,0,15,0,6,0,10,0,17,0\n12,0,19,0,2,0,20,0,18,0,11,0\n14,0,7,0,21,0,13,0,17,0,16,0\n20,0,6,0,9,0,19,0,10,0,4,0\n15,0,12,0,3,0,5,0,8,0,1,0\n"
  },
  {
    "path": "schedules/21_7.csv",
    "content": "3,0,5,0,2,0,14,0,17,0,19,0\n16,0,21,0,8,0,10,0,15,0,18,0\n1,0,9,0,7,0,12,0,4,0,20,0\n13,0,11,0,16,0,6,0,17,0,2,0\n18,0,19,0,4,0,20,0,21,0,7,0\n8,0,5,0,14,0,15,0,1,0,13,0\n6,0,3,0,12,0,10,0,11,0,9,0\n7,1,15,0,19,0,8,1,17,0,4,0\n6,0,13,0,10,0,11,1,20,0,5,0\n14,0,3,0,1,0,21,0,2,0,18,0\n16,0,7,0,17,0,9,0,12,0,5,0\n10,0,14,0,21,0,11,0,1,0,19,0\n8,0,12,0,18,0,2,0,13,0,4,0\n3,0,20,0,15,0,9,0,6,0,16,0\n21,0,4,0,11,0,5,0,17,0,13,0\n2,0,7,0,10,0,8,0,15,0,9,0\n19,0,20,0,6,0,14,0,12,0,16,0\n18,0,1,0,5,0,3,0,11,0,7,0\n20,0,9,0,2,0,13,0,21,0,19,0\n12,0,17,0,15,0,14,0,6,0,18,0\n16,0,4,0,1,0,8,0,3,0,10,0\n11,0,2,0,12,0,15,0,5,0,21,0\n7,0,8,0,13,0,19,0,3,0,16,0\n9,0,18,0,17,0,1,0,10,0,20,0\n4,0,14,0,7,0,6,0,8,0,11,0\n"
  },
  {
    "path": "schedules/21_8.csv",
    "content": "4,0,21,0,12,0,18,0,6,0,20,0\n1,0,9,0,19,0,10,0,2,0,16,0\n3,0,5,0,7,0,14,0,11,0,13,0\n8,0,15,0,20,0,17,0,9,0,21,0\n13,0,3,0,6,0,1,0,16,0,12,0\n2,0,14,0,4,0,17,0,8,0,7,0\n11,0,10,0,19,0,5,0,18,0,15,0\n4,0,6,0,1,0,8,0,2,0,9,0\n16,0,18,0,19,0,20,0,5,0,13,0\n7,0,21,0,14,0,11,0,12,0,15,0\n10,0,17,0,20,0,3,0,18,0,2,0\n9,0,11,0,4,0,1,0,14,0,15,0\n10,0,6,0,8,0,13,0,12,0,7,0\n3,0,17,0,16,0,19,0,21,0,5,0\n18,0,8,0,13,0,9,0,10,0,7,0\n5,0,14,0,16,0,6,0,21,0,2,0\n12,0,19,0,20,0,1,0,3,0,11,0\n15,0,17,0,6,0,4,0,10,0,13,0\n21,0,11,0,18,0,8,0,19,0,14,0\n20,0,1,0,2,0,15,0,7,0,16,0\n9,0,3,0,12,0,4,0,5,0,17,0\n15,0,13,0,2,0,16,0,21,0,8,0\n10,0,14,0,12,0,9,0,20,0,3,0\n18,0,17,0,1,0,5,0,6,0,11,0\n19,0,7,0,2,0,4,0,15,0,3,0\n5,0,8,0,12,0,1,0,10,0,21,0\n11,0,20,0,16,0,7,0,18,0,4,0\n9,0,6,0,14,0,17,0,13,0,19,0\n"
  },
  {
    "path": "schedules/21_9.csv",
    "content": "4,0,18,0,14,0,2,0,12,0,10,0\n11,0,19,0,21,0,7,0,20,0,3,0\n8,0,17,0,6,0,13,0,16,0,5,0\n9,0,12,0,3,0,1,0,15,0,18,0\n10,0,5,0,17,0,11,0,20,0,2,0\n13,0,14,0,19,0,6,0,9,0,21,0\n8,0,1,0,16,0,4,0,15,0,7,0\n10,1,6,0,11,0,12,1,19,0,20,0\n1,1,7,0,14,0,5,0,21,0,18,0\n9,0,15,0,16,0,13,0,3,0,4,0\n8,0,21,0,7,0,17,0,2,0,1,0\n9,0,18,0,13,0,5,0,12,0,4,0\n16,0,6,0,3,0,8,0,10,0,20,0\n11,0,15,0,17,0,2,0,14,0,19,0\n21,0,1,0,12,0,5,0,3,0,9,0\n18,0,17,0,20,0,13,0,11,0,8,0\n16,0,10,0,4,0,7,0,6,0,19,0\n15,0,2,0,3,0,14,0,9,0,8,0\n1,0,5,0,19,0,16,0,11,0,18,0\n21,0,4,0,2,0,15,0,10,0,13,0\n20,0,6,0,14,0,17,0,12,0,7,0\n2,0,5,0,8,0,11,0,4,0,9,0\n6,0,12,0,18,0,20,0,16,0,21,0\n7,0,1,0,13,0,3,0,10,0,14,0\n15,0,8,0,12,0,17,0,19,0,16,0\n3,0,1,0,11,0,2,0,13,0,6,0\n20,0,4,0,5,0,21,0,15,0,14,0\n9,0,19,0,17,0,18,0,10,0,7,0\n11,0,14,0,12,0,8,0,4,0,1,0\n18,0,19,0,10,0,6,0,15,0,5,0\n16,0,7,0,2,0,3,0,21,0,17,0\n20,0,13,0,12,0,9,0,10,0,1,0\n"
  },
  {
    "path": "schedules/22_1.csv",
    "content": "17,0,6,0,18,0,19,0,9,0,14,0\n11,0,2,0,21,0,20,0,16,0,1,0\n7,0,10,0,22,0,4,0,13,0,5,0\n12,0,8,0,2,1,15,0,3,0,14,1\n"
  },
  {
    "path": "schedules/22_10.csv",
    "content": "21,0,14,0,11,0,17,0,2,0,4,0\n6,0,3,0,7,0,18,0,22,0,9,0\n19,0,16,0,8,0,13,0,15,0,1,0\n12,0,5,0,14,0,10,0,20,0,6,0\n22,0,16,0,1,0,2,0,8,0,18,0\n17,0,21,0,10,0,19,0,9,0,7,0\n5,0,11,0,20,0,4,0,13,0,3,0\n12,0,6,0,21,0,15,0,8,0,16,0\n7,1,10,0,18,0,17,1,13,0,11,0\n4,0,14,0,9,0,3,0,5,0,15,0\n12,0,19,0,22,0,2,0,20,0,1,0\n5,0,9,0,8,0,4,0,16,0,11,0\n13,0,22,0,20,0,14,0,19,0,17,0\n18,0,1,0,3,0,15,0,10,0,21,0\n2,0,7,0,4,0,6,0,12,0,8,0\n13,0,16,0,14,0,3,0,22,0,10,0\n21,0,7,0,20,0,5,0,1,0,6,0\n18,0,15,0,17,0,9,0,12,0,2,0\n19,0,10,0,14,0,11,0,21,0,1,0\n3,0,9,0,20,0,15,0,4,0,8,0\n5,0,13,0,2,0,17,0,6,0,18,0\n19,0,22,0,11,0,16,0,12,0,7,0\n9,0,10,0,8,0,14,0,2,0,6,0\n11,0,3,0,12,0,21,0,19,0,13,0\n4,0,18,0,1,0,20,0,16,0,17,0\n22,0,15,0,2,0,7,0,5,0,21,0\n1,0,10,0,4,0,9,0,13,0,6,0\n15,0,11,0,12,0,7,0,14,0,22,0\n17,0,3,0,8,0,5,0,18,0,19,0\n16,0,9,0,21,0,20,0,12,0,13,0\n22,0,17,0,5,0,1,0,8,0,14,0\n15,0,18,0,20,0,2,0,10,0,11,0\n16,0,4,0,6,0,7,0,19,0,3,0\n11,0,17,0,9,0,22,0,8,0,21,0\n13,0,18,0,7,0,14,0,4,0,20,0\n6,0,19,0,15,0,16,0,10,0,5,0\n3,0,2,0,7,0,1,0,12,0,17,0\n"
  },
  {
    "path": "schedules/22_11.csv",
    "content": "13,0,22,0,1,0,3,0,2,0,18,0\n10,0,16,0,7,0,5,0,9,0,15,0\n20,0,12,0,14,0,4,0,17,0,6,0\n8,0,21,0,5,0,19,0,11,0,15,0\n14,0,4,0,7,0,22,0,12,0,2,0\n9,0,16,0,11,0,17,0,19,0,20,0\n10,0,8,0,21,0,13,0,3,0,6,0\n1,0,20,0,2,0,18,0,12,0,5,0\n17,1,8,0,9,0,4,1,19,0,13,0\n7,1,22,0,6,0,11,1,18,0,10,0\n21,0,15,0,3,0,1,0,16,0,14,0\n9,0,10,0,12,0,18,0,11,0,22,0\n3,0,17,0,7,0,8,0,20,0,6,0\n16,0,2,0,14,0,15,0,13,0,19,0\n1,0,4,0,8,0,21,0,5,0,22,0\n20,0,11,0,3,0,18,0,19,0,14,0\n2,0,5,0,17,0,21,0,16,0,13,0\n7,0,1,0,12,0,4,0,10,0,15,0\n9,0,13,0,11,0,6,0,16,0,8,0\n18,0,7,0,20,0,17,0,1,0,21,0\n9,0,22,0,19,0,10,0,14,0,3,0\n6,0,2,0,15,0,12,0,4,0,5,0\n10,0,17,0,22,0,16,0,14,0,21,0\n12,0,13,0,8,0,15,0,20,0,7,0\n6,0,5,0,11,0,1,0,3,0,9,0\n19,0,2,0,8,0,18,0,4,0,16,0\n17,0,15,0,7,0,1,0,11,0,10,0\n13,0,6,0,18,0,4,0,22,0,19,0\n14,0,3,0,20,0,9,0,21,0,2,0\n5,0,10,0,19,0,12,0,6,0,1,0\n21,0,18,0,4,0,11,0,7,0,8,0\n16,0,15,0,22,0,13,0,2,0,20,0\n5,0,12,0,3,0,17,0,14,0,9,0\n21,0,6,0,19,0,1,0,2,0,7,0\n10,0,13,0,4,0,14,0,5,0,11,0\n12,0,16,0,17,0,3,0,22,0,8,0\n15,0,18,0,1,0,9,0,20,0,4,0\n7,0,13,0,5,0,11,0,12,0,21,0\n15,0,6,0,14,0,8,0,17,0,18,0\n19,0,16,0,3,0,10,0,22,0,20,0\n2,0,4,0,11,0,9,0,17,0,7,0\n"
  },
  {
    "path": "schedules/22_12.csv",
    "content": "19,0,17,0,12,0,20,0,21,0,9,0\n7,0,16,0,2,0,10,0,11,0,22,0\n18,0,3,0,6,0,13,0,8,0,1,0\n4,0,14,0,20,0,15,0,5,0,16,0\n7,0,22,0,18,0,8,0,10,0,2,0\n9,0,11,0,5,0,15,0,19,0,1,0\n6,0,13,0,12,0,3,0,14,0,17,0\n21,0,8,0,19,0,4,0,10,0,16,0\n12,0,1,0,17,0,13,0,22,0,20,0\n5,0,3,0,4,0,2,0,21,0,14,0\n11,0,6,0,15,0,9,0,7,0,18,0\n20,0,1,0,16,0,2,0,19,0,22,0\n10,0,15,0,17,0,12,0,5,0,18,0\n11,0,13,0,4,0,9,0,8,0,3,0\n7,0,21,0,5,0,14,0,6,0,22,0\n9,0,10,0,16,0,12,0,3,0,1,0\n18,0,11,0,4,0,6,0,19,0,20,0\n13,0,17,0,15,0,7,0,8,0,14,0\n21,0,3,0,4,0,2,0,20,0,18,0\n12,0,9,0,22,0,8,0,15,0,14,0\n1,0,19,0,7,0,10,0,21,0,13,0\n6,0,2,0,5,0,16,0,17,0,11,0\n18,0,14,0,19,0,13,0,7,0,9,0\n12,0,15,0,8,0,21,0,2,0,11,0\n10,0,1,0,6,0,20,0,17,0,4,0\n3,0,16,0,19,0,22,0,5,0,8,0\n10,0,18,0,21,0,15,0,6,0,9,0\n2,0,16,0,1,0,7,0,17,0,3,0\n4,0,22,0,12,0,5,0,11,0,13,0\n14,0,10,0,16,0,20,0,3,0,15,0\n2,0,9,0,17,0,18,0,19,0,13,0\n20,0,5,0,8,0,7,0,4,0,6,0\n21,0,1,0,22,0,14,0,12,0,11,0\n9,0,5,0,19,0,10,0,17,0,8,0\n7,0,22,0,15,0,18,0,1,0,4,0\n13,0,14,0,2,0,16,0,6,0,21,0\n12,0,20,0,8,0,3,0,11,0,7,0\n15,0,21,0,18,0,16,0,22,0,17,0\n14,0,1,0,9,0,12,0,4,0,2,0\n5,0,10,0,13,0,20,0,11,0,19,0\n3,0,9,0,22,0,6,0,21,0,17,0\n18,0,8,0,11,0,1,0,14,0,5,0\n4,0,15,0,19,0,6,0,12,0,16,0\n10,0,20,0,7,0,13,0,3,0,2,0\n"
  },
  {
    "path": "schedules/22_13.csv",
    "content": "10,0,1,0,22,0,18,0,4,0,5,0\n15,0,8,0,3,0,13,0,21,0,20,0\n12,0,11,0,2,0,17,0,16,0,9,0\n7,0,14,0,13,0,6,0,19,0,22,0\n16,0,15,0,4,0,2,0,1,0,20,0\n19,0,9,0,12,0,8,0,14,0,6,0\n10,0,21,0,5,0,18,0,17,0,7,0\n11,0,19,0,9,0,3,0,20,0,12,0\n1,1,15,0,21,0,13,1,7,0,14,0\n3,0,18,0,10,0,2,0,6,0,5,0\n17,0,8,0,16,0,11,0,22,0,4,0\n12,0,13,0,10,0,3,0,7,0,2,0\n16,0,11,0,14,0,4,0,18,0,8,0\n15,0,17,0,20,0,22,0,6,0,9,0\n5,0,1,0,13,0,21,0,19,0,11,0\n17,0,22,0,8,0,15,0,14,0,18,0\n5,0,21,0,7,0,20,0,9,0,4,0\n10,0,16,0,19,0,12,0,6,0,1,0\n2,0,14,0,4,0,3,0,9,0,7,0\n5,0,22,0,12,0,8,0,21,0,16,0\n6,0,20,0,10,0,11,0,1,0,3,0\n15,0,2,0,13,0,19,0,18,0,17,0\n1,0,16,0,3,0,5,0,9,0,14,0\n4,0,20,0,19,0,21,0,12,0,18,0\n6,0,11,0,13,0,7,0,10,0,15,0\n2,0,17,0,14,0,8,0,22,0,1,0\n6,0,3,0,21,0,15,0,12,0,11,0\n9,0,22,0,2,0,13,0,5,0,16,0\n7,0,19,0,8,0,20,0,17,0,10,0\n4,0,1,0,12,0,18,0,13,0,9,0\n3,0,14,0,22,0,15,0,5,0,19,0\n7,0,6,0,16,0,21,0,4,0,17,0\n20,0,11,0,18,0,8,0,2,0,10,0\n3,0,4,0,5,0,6,0,17,0,1,0\n9,0,10,0,8,0,22,0,21,0,13,0\n18,0,20,0,7,0,14,0,16,0,12,0\n19,0,2,0,5,0,15,0,11,0,8,0\n14,0,3,0,17,0,10,0,4,0,13,0\n21,0,2,0,18,0,16,0,22,0,6,0\n15,0,9,0,1,0,11,0,19,0,7,0\n12,0,13,0,17,0,20,0,3,0,16,0\n19,0,21,0,14,0,11,0,2,0,10,0\n9,0,4,0,6,0,8,0,5,0,20,0\n18,0,15,0,22,0,7,0,12,0,1,0\n17,0,11,0,5,0,20,0,13,0,14,0\n9,0,21,0,1,0,12,0,8,0,10,0\n7,0,4,0,22,0,6,0,15,0,2,0\n18,0,16,0,1,0,19,0,3,0,13,0\n"
  },
  {
    "path": "schedules/22_14.csv",
    "content": "21,0,7,0,13,0,6,0,12,0,4,0\n18,0,5,0,22,0,16,0,11,0,1,0\n2,0,8,0,20,0,10,0,14,0,15,0\n3,0,9,0,11,0,19,0,17,0,7,0\n22,0,13,0,16,0,1,0,20,0,12,0\n4,0,2,0,10,0,9,0,8,0,21,0\n15,0,18,0,14,0,17,0,5,0,3,0\n19,0,16,0,12,0,6,0,2,0,9,0\n3,1,14,0,5,0,22,1,20,0,7,0\n19,1,18,0,4,0,6,1,1,0,15,0\n8,0,13,0,10,0,11,0,17,0,21,0\n9,0,6,0,4,0,7,0,16,0,18,0\n11,0,20,0,22,0,19,0,14,0,10,0\n2,0,15,0,1,0,17,0,21,0,12,0\n3,0,13,0,14,0,5,0,8,0,4,0\n7,0,1,0,21,0,10,0,20,0,22,0\n9,0,11,0,18,0,3,0,8,0,12,0\n2,0,6,0,16,0,5,0,15,0,19,0\n17,0,18,0,20,0,13,0,8,0,4,0\n11,0,3,0,21,0,6,0,1,0,19,0\n2,0,12,0,13,0,10,0,16,0,14,0\n9,0,5,0,7,0,15,0,17,0,22,0\n11,0,1,0,12,0,18,0,2,0,13,0\n19,0,9,0,4,0,8,0,22,0,5,0\n17,0,16,0,3,0,20,0,14,0,21,0\n6,0,10,0,1,0,7,0,15,0,4,0\n16,0,8,0,17,0,12,0,3,0,22,0\n6,0,11,0,15,0,14,0,20,0,2,0\n21,0,5,0,10,0,13,0,18,0,9,0\n7,0,14,0,8,0,19,0,16,0,2,0\n1,0,3,0,22,0,11,0,21,0,4,0\n13,0,18,0,19,0,7,0,15,0,12,0\n6,0,20,0,5,0,10,0,9,0,17,0\n21,0,8,0,19,0,18,0,1,0,14,0\n13,0,17,0,10,0,22,0,4,0,16,0\n11,0,5,0,12,0,6,0,15,0,20,0\n9,0,7,0,22,0,3,0,2,0,21,0\n14,0,12,0,4,0,17,0,18,0,19,0\n7,0,11,0,10,0,2,0,13,0,5,0\n8,0,15,0,1,0,20,0,3,0,9,0\n6,0,14,0,22,0,16,0,4,0,21,0\n19,0,2,0,20,0,17,0,1,0,5,0\n18,0,10,0,12,0,7,0,3,0,6,0\n9,0,16,0,15,0,8,0,13,0,11,0\n3,0,1,0,4,0,12,0,5,0,10,0\n17,0,2,0,22,0,8,0,6,0,18,0\n13,0,21,0,15,0,9,0,14,0,11,0\n7,0,20,0,5,0,16,0,19,0,8,0\n6,0,14,0,17,0,12,0,1,0,9,0\n22,0,19,0,21,0,3,0,10,0,18,0\n20,0,16,0,4,0,2,0,7,0,11,0\n15,0,3,0,19,0,13,0,22,0,6,0\n"
  },
  {
    "path": "schedules/22_2.csv",
    "content": "10,0,3,0,12,0,14,0,22,0,19,0\n6,0,5,0,21,0,9,0,11,0,1,0\n16,0,13,0,15,0,8,0,18,0,2,0\n17,0,4,0,9,0,20,0,7,0,10,0\n21,0,19,0,3,0,8,0,15,0,6,0\n12,0,14,0,18,0,17,0,7,0,5,0\n1,0,13,0,22,0,16,0,4,0,20,0\n2,0,17,1,3,1,11,0,7,1,14,1\n"
  },
  {
    "path": "schedules/22_3.csv",
    "content": "7,0,4,0,14,0,3,0,10,0,1,0\n11,0,18,0,5,0,16,0,2,0,19,0\n13,0,9,0,6,0,17,0,20,0,21,0\n8,0,15,0,10,0,12,0,22,0,16,0\n7,0,11,0,21,0,4,0,20,0,18,0\n15,0,19,0,1,0,22,0,14,0,17,0\n6,0,3,0,12,0,8,0,13,0,5,0\n9,0,20,0,16,0,2,0,14,0,1,0\n5,0,3,0,17,0,10,0,18,0,21,0\n19,0,11,0,4,0,8,0,9,0,12,0\n13,0,22,0,15,0,7,0,2,0,6,0\n"
  },
  {
    "path": "schedules/22_4.csv",
    "content": "6,0,13,0,18,0,16,0,10,0,15,0\n2,0,21,0,8,0,4,0,11,0,19,0\n1,0,5,0,12,0,3,0,14,0,17,0\n9,0,22,0,18,0,7,0,20,0,2,0\n19,0,21,0,10,0,12,0,3,0,15,0\n9,0,7,0,17,0,11,0,6,0,5,0\n22,0,16,0,13,0,8,0,1,0,14,0\n4,0,17,0,6,0,20,0,19,0,18,0\n22,1,11,0,3,0,12,1,13,0,9,0\n20,0,8,0,16,0,5,0,2,0,15,0\n10,0,14,0,7,0,4,0,21,0,1,0\n8,0,13,0,3,0,12,0,6,0,20,0\n5,0,17,0,21,0,10,0,22,0,2,0\n18,0,15,0,1,0,14,0,9,0,11,0\n16,0,19,0,12,0,4,0,7,0,22,0\n"
  },
  {
    "path": "schedules/22_5.csv",
    "content": "13,0,20,0,4,0,8,0,18,0,5,0\n14,0,16,0,6,0,2,0,17,0,15,0\n22,0,7,0,9,0,19,0,21,0,10,0\n12,0,11,0,4,0,3,0,1,0,13,0\n18,0,15,0,22,0,16,0,9,0,5,0\n7,0,21,0,3,0,20,0,11,0,14,0\n10,0,2,0,1,0,17,0,12,0,8,0\n19,0,20,0,22,0,6,0,13,0,11,0\n14,1,10,0,12,0,17,1,16,0,4,0\n7,1,5,0,15,0,18,1,21,0,1,0\n9,0,6,0,19,0,2,0,8,0,3,0\n20,0,12,0,5,0,14,0,22,0,17,0\n18,0,6,0,2,0,10,0,7,0,11,0\n15,0,16,0,3,0,19,0,8,0,13,0\n21,0,9,0,14,0,4,0,1,0,6,0\n5,0,10,0,17,0,3,0,19,0,11,0\n16,0,21,0,8,0,12,0,7,0,18,0\n2,0,22,0,4,0,20,0,15,0,1,0\n13,0,14,0,7,0,9,0,17,0,18,0\n"
  },
  {
    "path": "schedules/22_6.csv",
    "content": "2,0,15,0,3,0,6,0,16,0,8,0\n4,0,7,0,14,0,19,0,13,0,18,0\n9,0,22,0,11,0,1,0,17,0,12,0\n20,0,10,0,19,0,5,0,21,0,2,0\n8,0,13,0,12,0,17,0,6,0,4,0\n9,0,20,0,21,0,7,0,11,0,3,0\n16,0,22,0,1,0,10,0,15,0,14,0\n18,0,2,0,17,0,5,0,3,0,12,0\n20,0,4,0,15,0,9,0,13,0,10,0\n7,0,5,0,22,0,14,0,8,0,11,0\n6,0,18,0,1,0,21,0,19,0,16,0\n20,0,3,0,13,0,14,0,2,0,22,0\n18,0,5,0,8,0,9,0,15,0,1,0\n12,0,10,0,11,0,19,0,6,0,7,0\n4,0,16,0,18,0,21,0,17,0,22,0\n12,0,19,0,2,0,8,0,1,0,20,0\n6,0,15,0,21,0,9,0,17,0,14,0\n13,0,11,0,5,0,3,0,10,0,16,0\n7,0,2,0,9,0,4,0,19,0,22,0\n8,0,17,0,10,0,11,0,20,0,18,0\n13,0,16,0,15,0,21,0,7,0,12,0\n14,0,3,0,6,0,5,0,4,0,1,0\n"
  },
  {
    "path": "schedules/22_7.csv",
    "content": "8,0,22,0,10,0,5,0,17,0,18,0\n9,0,2,0,7,0,1,0,21,0,13,0\n12,0,4,0,3,0,14,0,16,0,11,0\n20,0,19,0,18,0,15,0,6,0,2,0\n5,0,3,0,11,0,7,0,13,0,8,0\n9,0,21,0,16,0,17,0,20,0,4,0\n6,0,22,0,19,0,12,0,14,0,15,0\n1,0,11,0,18,0,10,0,13,0,20,0\n22,1,7,0,15,0,8,1,9,0,4,0\n17,0,3,0,6,0,12,0,1,0,19,0\n5,0,21,0,14,0,2,0,10,0,16,0\n20,0,6,0,8,0,3,0,19,0,13,0\n15,0,16,0,17,0,1,0,14,0,10,0\n12,0,22,0,18,0,4,0,21,0,7,0\n5,0,2,0,1,0,9,0,11,0,6,0\n17,0,10,0,21,0,3,0,18,0,15,0\n13,0,9,0,22,0,4,0,19,0,11,0\n14,0,20,0,2,0,8,0,5,0,12,0\n16,0,4,0,1,0,7,0,6,0,18,0\n10,0,9,0,12,0,8,0,2,0,3,0\n5,0,16,0,13,0,19,0,21,0,15,0\n11,0,7,0,20,0,17,0,14,0,22,0\n1,0,9,0,15,0,16,0,8,0,18,0\n10,0,3,0,7,0,20,0,5,0,22,0\n13,0,4,0,6,0,2,0,17,0,12,0\n14,0,19,0,8,0,21,0,11,0,22,0\n"
  },
  {
    "path": "schedules/22_8.csv",
    "content": "18,0,4,0,10,0,21,0,22,0,14,0\n17,0,2,0,5,0,16,0,13,0,15,0\n6,0,1,0,11,0,8,0,12,0,19,0\n9,0,20,0,16,0,7,0,3,0,18,0\n1,0,10,0,8,0,5,0,4,0,21,0\n17,0,22,0,15,0,3,0,13,0,12,0\n9,0,11,0,19,0,2,0,14,0,20,0\n7,0,21,0,17,0,6,0,12,0,22,0\n5,1,1,0,16,0,10,1,19,0,20,0\n6,1,13,0,2,0,11,1,18,0,9,0\n4,0,7,0,8,0,15,0,3,0,14,0\n19,0,13,0,1,0,18,0,17,0,16,0\n12,0,21,0,11,0,14,0,5,0,9,0\n3,0,4,0,6,0,2,0,22,0,10,0\n8,0,20,0,18,0,7,0,15,0,11,0\n13,0,6,0,17,0,4,0,19,0,14,0\n16,0,7,0,12,0,21,0,10,0,3,0\n8,0,15,0,2,0,22,0,1,0,9,0\n5,0,18,0,19,0,20,0,17,0,12,0\n14,0,13,0,10,0,16,0,11,0,8,0\n5,0,3,0,22,0,21,0,1,0,2,0\n20,0,4,0,15,0,9,0,7,0,6,0\n18,0,2,0,12,0,13,0,8,0,5,0\n16,0,4,0,22,0,3,0,11,0,20,0\n9,0,15,0,21,0,6,0,19,0,10,0\n14,0,17,0,8,0,7,0,1,0,20,0\n11,0,13,0,22,0,16,0,21,0,6,0\n2,0,3,0,19,0,5,0,7,0,10,0\n14,0,18,0,1,0,9,0,4,0,12,0\n15,0,5,0,6,0,17,0,10,0,11,0\n"
  },
  {
    "path": "schedules/22_9.csv",
    "content": "21,0,12,0,20,0,22,0,8,0,1,0\n11,0,19,0,5,0,14,0,16,0,15,0\n6,0,7,0,17,0,13,0,2,0,18,0\n9,0,3,0,20,0,4,0,10,0,21,0\n1,0,18,0,16,0,15,0,13,0,19,0\n10,0,9,0,22,0,11,0,17,0,2,0\n3,0,6,0,4,0,8,0,7,0,5,0\n12,0,15,0,9,0,14,0,20,0,18,0\n4,0,8,0,19,0,2,0,5,0,10,0\n17,0,16,0,12,0,21,0,6,0,1,0\n14,0,13,0,3,0,7,0,11,0,22,0\n2,0,1,0,20,0,15,0,4,0,17,0\n9,0,18,0,5,0,12,0,8,0,13,0\n22,0,19,0,21,0,10,0,14,0,6,0\n16,0,11,0,20,0,3,0,7,0,18,0\n15,0,5,0,21,0,22,0,17,0,19,0\n6,0,13,0,9,0,12,0,2,0,3,0\n11,0,8,0,10,0,4,0,1,0,14,0\n7,0,20,0,13,0,16,0,22,0,5,0\n18,0,17,0,21,0,11,0,9,0,14,0\n6,0,8,0,16,0,3,0,15,0,10,0\n7,0,2,0,4,0,12,0,19,0,1,0\n18,0,15,0,8,0,5,0,3,0,17,0\n13,0,1,0,10,0,7,0,19,0,9,0\n22,0,12,0,11,0,20,0,4,0,16,0\n6,0,2,0,15,0,14,0,21,0,7,0\n19,0,10,0,18,0,13,0,4,0,22,0\n11,0,3,0,1,0,5,0,20,0,6,0\n17,0,14,0,8,0,16,0,9,0,2,0\n12,0,5,0,4,0,21,0,13,0,11,0\n2,0,14,0,22,0,16,0,3,0,19,0\n17,0,10,0,20,0,12,0,6,0,18,0\n7,0,1,0,15,0,21,0,9,0,8,0\n"
  },
  {
    "path": "schedules/23_1.csv",
    "content": "1,0,16,0,22,0,20,0,17,0,13,0\n9,0,3,0,7,0,5,0,2,0,10,0\n23,0,14,0,4,0,15,0,18,0,11,0\n8,0,19,0,6,0,21,0,12,0,16,1\n"
  },
  {
    "path": "schedules/23_10.csv",
    "content": "14,0,23,0,13,0,6,0,22,0,2,0\n19,0,3,0,4,0,18,0,9,0,16,0\n10,0,21,0,5,0,11,0,8,0,1,0\n7,0,20,0,15,0,17,0,12,0,16,0\n6,0,14,0,13,0,9,0,8,0,19,0\n4,0,11,0,5,0,15,0,21,0,1,0\n2,0,18,0,17,0,12,0,3,0,22,0\n23,0,20,0,15,0,7,0,10,0,1,0\n2,1,3,0,17,0,6,1,5,0,14,0\n11,1,18,0,7,0,20,1,13,0,10,0\n8,0,16,0,22,0,21,0,23,0,9,0\n4,0,12,0,18,0,19,0,5,0,20,0\n16,0,6,0,1,0,7,0,17,0,13,0\n15,0,2,0,8,0,19,0,23,0,22,0\n3,0,11,0,10,0,12,0,14,0,21,0\n4,0,23,0,1,0,9,0,17,0,5,0\n12,0,6,0,20,0,3,0,15,0,14,0\n10,0,18,0,8,0,4,0,2,0,9,0\n19,0,7,0,22,0,13,0,21,0,11,0\n16,0,23,0,3,0,17,0,2,0,1,0\n19,0,6,0,10,0,4,0,8,0,7,0\n12,0,15,0,9,0,14,0,22,0,11,0\n20,0,18,0,21,0,13,0,16,0,5,0\n19,0,12,0,11,0,23,0,7,0,2,0\n22,0,5,0,1,0,14,0,10,0,20,0\n9,0,13,0,3,0,16,0,15,0,4,0\n21,0,17,0,8,0,18,0,6,0,20,0\n22,0,9,0,10,0,7,0,5,0,12,0\n17,0,14,0,4,0,16,0,21,0,19,0\n23,0,6,0,8,0,18,0,3,0,1,0\n2,0,13,0,5,0,11,0,15,0,10,0\n3,0,7,0,21,0,4,0,20,0,22,0\n1,0,14,0,9,0,12,0,8,0,13,0\n11,0,2,0,19,0,17,0,15,0,6,0\n16,0,14,0,7,0,18,0,23,0,5,0\n10,0,2,0,12,0,21,0,6,0,4,0\n11,0,17,0,23,0,3,0,20,0,8,0\n22,0,15,0,18,0,1,0,13,0,19,0\n16,0,2,0,20,0,9,0,6,0,11,0\n"
  },
  {
    "path": "schedules/23_11.csv",
    "content": "10,0,1,0,22,0,4,0,5,0,18,0\n13,0,19,0,17,0,20,0,11,0,15,0\n14,0,2,0,23,0,12,0,7,0,21,0\n6,0,9,0,16,0,3,0,8,0,17,0\n5,0,19,0,15,0,4,0,10,0,2,0\n8,0,21,0,13,0,3,0,11,0,1,0\n12,0,23,0,9,0,18,0,6,0,22,0\n20,0,16,0,3,0,14,0,7,0,10,0\n13,1,11,0,2,0,8,1,5,0,6,0\n18,1,19,0,22,0,4,1,15,0,21,0\n16,1,7,0,17,0,9,0,1,0,14,0\n12,0,20,0,6,0,23,0,8,0,19,0\n13,0,10,0,9,0,16,0,14,0,15,0\n17,0,1,0,21,0,7,0,22,0,20,0\n4,0,3,0,2,0,18,0,23,0,11,0\n5,0,6,0,10,0,12,0,13,0,7,0\n9,0,18,0,20,0,3,0,21,0,19,0\n16,0,22,0,5,0,23,0,4,0,12,0\n14,0,8,0,1,0,17,0,15,0,2,0\n11,0,4,0,6,0,9,0,21,0,22,0\n23,0,15,0,13,0,5,0,8,0,14,0\n12,0,3,0,2,0,10,0,20,0,17,0\n18,0,7,0,1,0,19,0,16,0,11,0\n14,0,22,0,17,0,5,0,2,0,9,0\n12,0,15,0,1,0,18,0,10,0,16,0\n7,0,11,0,8,0,20,0,4,0,19,0\n23,0,21,0,10,0,6,0,3,0,13,0\n18,0,20,0,8,0,4,0,14,0,22,0\n16,0,2,0,21,0,1,0,17,0,6,0\n13,0,23,0,5,0,7,0,19,0,9,0\n11,0,12,0,14,0,15,0,3,0,22,0\n20,0,6,0,2,0,1,0,4,0,13,0\n19,0,10,0,12,0,17,0,9,0,11,0\n15,0,18,0,21,0,3,0,7,0,5,0\n8,0,19,0,2,0,16,0,23,0,22,0\n14,0,3,0,18,0,5,0,17,0,12,0\n7,0,21,0,6,0,10,0,15,0,8,0\n1,0,23,0,20,0,9,0,11,0,13,0\n4,0,7,0,15,0,16,0,8,0,12,0\n11,0,18,0,5,0,14,0,6,0,23,0\n16,0,17,0,4,0,13,0,21,0,20,0\n3,0,9,0,10,0,2,0,1,0,19,0\n22,0,8,0,4,0,13,0,18,0,16,0\n"
  },
  {
    "path": "schedules/23_12.csv",
    "content": "22,0,3,0,7,0,13,0,6,0,2,0\n23,0,16,0,11,0,15,0,4,0,17,0\n9,0,12,0,18,0,14,0,10,0,19,0\n5,0,8,0,20,0,1,0,21,0,7,0\n19,0,3,0,15,0,2,0,12,0,6,0\n5,0,18,0,13,0,10,0,1,0,16,0\n22,0,20,0,4,0,9,0,8,0,14,0\n17,0,23,0,10,0,11,0,21,0,3,0\n7,0,18,0,2,0,19,0,8,0,5,0\n14,0,11,0,6,0,21,0,16,0,22,0\n12,0,13,0,17,0,20,0,23,0,9,0\n1,0,15,0,8,0,4,0,5,0,10,0\n19,0,21,0,12,0,16,0,13,0,20,0\n6,0,18,0,3,0,4,0,17,0,14,0\n9,0,1,0,11,0,2,0,7,0,23,0\n22,0,17,0,10,0,15,0,12,0,18,0\n3,0,14,0,16,0,20,0,6,0,1,0\n19,0,7,0,4,0,23,0,21,0,5,0\n22,0,8,0,11,0,9,0,13,0,15,0\n2,0,4,0,10,0,14,0,5,0,12,0\n19,0,16,0,18,0,22,0,15,0,23,0\n6,0,17,0,21,0,8,0,13,0,2,0\n20,0,3,0,1,0,11,0,9,0,7,0\n12,0,8,0,18,0,16,0,5,0,6,0\n1,0,4,0,11,0,22,0,20,0,19,0\n14,0,2,0,21,0,15,0,23,0,3,0\n17,0,9,0,16,0,7,0,10,0,13,0\n2,0,1,0,22,0,18,0,4,0,23,0\n13,0,19,0,6,0,10,0,20,0,9,0\n7,0,5,0,17,0,15,0,11,0,14,0\n21,0,8,0,4,0,3,0,12,0,22,0\n9,0,2,0,5,0,1,0,17,0,14,0\n23,0,12,0,20,0,15,0,7,0,6,0\n13,0,3,0,21,0,18,0,10,0,11,0\n16,0,8,0,7,0,19,0,17,0,2,0\n21,0,20,0,15,0,18,0,14,0,22,0\n10,0,8,0,23,0,4,0,9,0,3,0\n13,0,19,0,11,0,1,0,5,0,6,0\n12,0,10,0,15,0,16,0,7,0,2,0\n13,0,14,0,23,0,8,0,18,0,1,0\n5,0,3,0,16,0,17,0,19,0,22,0\n6,0,9,0,4,0,12,0,11,0,21,0\n20,0,14,0,7,0,19,0,10,0,23,0\n15,0,5,0,9,0,21,0,18,0,6,0\n2,0,20,0,11,0,17,0,3,0,8,0\n13,0,22,0,1,0,16,0,4,0,12,0\n"
  },
  {
    "path": "schedules/23_13.csv",
    "content": "5,0,17,0,21,0,16,0,3,0,14,0\n9,0,2,0,19,0,10,0,11,0,6,0\n7,0,4,0,8,0,20,0,12,0,18,0\n15,0,23,0,13,0,1,0,22,0,17,0\n21,0,7,0,3,0,11,0,12,0,9,0\n14,0,22,0,5,0,18,0,15,0,2,0\n4,0,1,0,20,0,16,0,8,0,19,0\n23,0,6,0,7,0,10,0,13,0,17,0\n19,1,8,0,14,0,22,0,16,0,21,0\n4,0,11,0,15,0,9,0,13,0,6,0\n5,0,12,0,10,0,3,0,20,0,1,0\n18,0,23,0,14,0,2,0,21,0,7,0\n9,0,20,0,16,0,12,0,17,0,15,0\n11,0,3,0,18,0,13,0,22,0,19,0\n2,0,5,0,8,0,4,0,1,0,23,0\n6,0,16,0,12,0,10,0,14,0,13,0\n22,0,21,0,8,0,23,0,19,0,4,0\n11,0,2,0,20,0,6,0,18,0,17,0\n15,0,9,0,7,0,3,0,5,0,10,0\n1,0,2,0,14,0,21,0,20,0,13,0\n18,0,6,0,7,0,9,0,3,0,8,0\n17,0,4,0,22,0,16,0,10,0,15,0\n5,0,19,0,11,0,1,0,12,0,23,0\n15,0,20,0,6,0,2,0,7,0,16,0\n23,0,11,0,17,0,8,0,18,0,5,0\n10,0,9,0,1,0,12,0,19,0,14,0\n22,0,13,0,20,0,21,0,4,0,3,0\n17,0,19,0,15,0,10,0,8,0,2,0\n3,0,9,0,23,0,6,0,4,0,22,0\n16,0,14,0,11,0,13,0,1,0,7,0\n18,0,21,0,19,0,5,0,12,0,6,0\n20,0,23,0,10,0,2,0,17,0,3,0\n5,0,16,0,13,0,9,0,18,0,22,0\n1,0,11,0,8,0,14,0,7,0,15,0\n12,0,21,0,9,0,4,0,17,0,20,0\n19,0,8,0,6,0,5,0,15,0,14,0\n21,0,10,0,23,0,18,0,13,0,11,0\n3,0,2,0,12,0,1,0,4,0,16,0\n22,0,19,0,10,0,7,0,5,0,20,0\n3,0,15,0,13,0,18,0,23,0,16,0\n1,0,6,0,21,0,22,0,11,0,7,0\n2,0,12,0,14,0,9,0,17,0,8,0\n4,0,18,0,10,0,21,0,15,0,1,0\n16,0,22,0,3,0,11,0,19,0,20,0\n8,0,13,0,12,0,23,0,6,0,2,0\n17,0,7,0,14,0,5,0,4,0,9,0\n1,0,19,0,18,0,3,0,15,0,6,0\n23,0,22,0,5,0,14,0,10,0,20,0\n17,0,9,0,16,0,8,0,21,0,11,0\n2,0,13,0,4,0,7,0,12,0,19,0\n"
  },
  {
    "path": "schedules/23_14.csv",
    "content": "14,0,20,0,7,0,23,0,15,0,4,0\n16,0,13,0,12,0,3,0,17,0,18,0\n11,0,22,0,2,0,9,0,8,0,5,0\n1,0,10,0,21,0,6,0,19,0,17,0\n4,0,5,0,20,0,7,0,2,0,12,0\n8,0,1,0,22,0,16,0,13,0,23,0\n9,0,11,0,18,0,14,0,10,0,19,0\n6,0,3,0,12,0,21,0,15,0,22,0\n19,1,20,0,10,0,16,1,7,0,8,0\n18,0,14,0,23,0,9,0,3,0,2,0\n17,0,21,0,6,0,11,0,15,0,5,0\n13,0,1,0,19,0,4,0,12,0,8,0\n21,0,23,0,14,0,9,0,16,0,17,0\n22,0,20,0,3,0,18,0,11,0,4,0\n2,0,13,0,7,0,6,0,15,0,10,0\n5,0,9,0,14,0,1,0,11,0,20,0\n15,0,3,0,8,0,6,0,7,0,4,0\n12,0,1,0,19,0,2,0,17,0,16,0\n10,0,23,0,5,0,13,0,21,0,18,0\n22,0,9,0,16,0,20,0,6,0,2,0\n10,0,4,0,3,0,5,0,13,0,17,0\n21,0,19,0,15,0,8,0,22,0,14,0\n1,0,7,0,18,0,23,0,11,0,12,0\n3,0,19,0,6,0,4,0,9,0,2,0\n12,0,10,0,8,0,5,0,22,0,18,0\n15,0,13,0,14,0,16,0,1,0,20,0\n11,0,21,0,7,0,17,0,23,0,2,0\n1,0,6,0,9,0,3,0,5,0,8,0\n10,0,13,0,20,0,19,0,23,0,15,0\n17,0,4,0,22,0,18,0,7,0,16,0\n21,0,12,0,5,0,11,0,14,0,13,0\n2,0,22,0,23,0,1,0,15,0,4,0\n12,0,18,0,20,0,21,0,6,0,8,0\n16,0,11,0,14,0,10,0,19,0,3,0\n17,0,7,0,15,0,9,0,1,0,18,0\n4,0,3,0,11,0,21,0,2,0,10,0\n17,0,12,0,22,0,9,0,20,0,23,0\n19,0,16,0,6,0,13,0,5,0,7,0\n8,0,18,0,2,0,14,0,3,0,1,0\n16,0,10,0,9,0,20,0,12,0,21,0\n22,0,13,0,8,0,11,0,17,0,7,0\n5,0,4,0,19,0,6,0,23,0,14,0\n15,0,12,0,16,0,11,0,10,0,8,0\n3,0,23,0,7,0,1,0,9,0,21,0\n15,0,18,0,20,0,19,0,2,0,5,0\n4,0,17,0,14,0,13,0,22,0,6,0\n23,0,1,0,5,0,20,0,8,0,19,0\n14,0,2,0,18,0,22,0,10,0,7,0\n21,0,4,0,13,0,15,0,9,0,12,0\n6,0,11,0,3,0,16,0,17,0,20,0\n7,0,9,0,19,0,1,0,14,0,12,0\n15,0,2,0,5,0,21,0,16,0,3,0\n23,0,8,0,17,0,6,0,10,0,18,0\n4,0,13,0,16,0,11,0,22,0,19,0\n"
  },
  {
    "path": "schedules/23_2.csv",
    "content": "17,0,9,0,15,0,19,0,8,0,7,0\n2,0,5,0,22,0,18,0,20,0,10,0\n6,0,11,0,12,0,16,0,23,0,21,0\n14,0,1,0,13,0,4,0,3,0,22,0\n9,0,20,0,12,0,15,0,18,0,6,0\n2,0,4,0,23,0,5,0,3,0,19,0\n7,0,17,0,16,0,21,0,10,0,14,0\n8,0,1,0,2,1,13,0,11,0,18,1\n"
  },
  {
    "path": "schedules/23_3.csv",
    "content": "19,0,23,0,6,0,7,0,22,0,8,0\n17,0,2,0,3,0,10,0,12,0,14,0\n11,0,9,0,4,0,16,0,5,0,13,0\n21,0,20,0,1,0,18,0,15,0,6,0\n7,1,4,0,13,0,22,1,17,0,12,0\n9,0,2,0,1,0,11,1,3,0,8,0\n23,0,21,0,5,0,10,0,19,0,20,0\n18,0,14,0,8,0,15,0,16,0,4,0\n5,0,22,0,10,0,7,0,12,0,1,0\n15,0,3,0,20,0,19,0,17,0,11,0\n18,0,16,0,23,0,6,0,13,0,2,0\n14,0,7,0,11,0,21,0,9,0,22,0\n"
  },
  {
    "path": "schedules/23_4.csv",
    "content": "9,0,6,0,16,0,22,0,18,0,5,0\n3,0,20,0,4,0,11,0,2,0,17,0\n12,0,23,0,15,0,8,0,7,0,13,0\n10,0,21,0,22,0,19,0,1,0,14,0\n23,0,16,0,20,0,3,0,9,0,15,0\n18,0,2,0,1,0,5,0,14,0,13,0\n10,0,8,0,12,0,6,0,11,0,4,0\n7,0,17,0,16,0,21,0,19,0,2,0\n18,1,14,0,8,0,5,1,20,0,12,0\n15,1,1,0,11,0,23,1,6,0,17,0\n13,0,22,0,9,0,4,0,21,0,7,0\n19,0,10,0,18,0,3,0,8,0,23,0\n2,0,15,0,20,0,12,0,1,0,22,0\n19,0,17,0,13,0,10,0,9,0,5,0\n7,0,14,0,6,0,11,0,3,0,16,0\n4,0,5,0,15,0,21,0,18,0,23,0\n"
  },
  {
    "path": "schedules/23_5.csv",
    "content": "8,0,16,0,15,0,7,0,1,0,19,0\n2,0,23,0,20,0,17,0,6,0,18,0\n13,0,3,0,5,0,14,0,11,0,12,0\n4,0,22,0,18,0,9,0,21,0,10,0\n12,0,17,0,13,0,1,0,8,0,2,0\n7,0,6,0,11,0,22,0,21,0,3,0\n19,0,14,0,16,0,23,0,10,0,4,0\n5,0,20,0,8,0,15,0,9,0,13,0\n16,1,22,0,10,0,17,1,3,0,23,0\n21,1,6,0,20,0,9,1,12,0,19,0\n4,0,1,0,5,0,2,1,18,0,7,0\n11,0,15,0,10,0,14,0,8,0,6,0\n12,0,21,0,7,0,23,0,16,0,13,0\n2,0,22,0,17,0,19,0,15,0,5,0\n3,0,1,0,11,0,20,0,4,0,9,0\n18,0,16,0,12,0,14,0,15,0,22,0\n1,0,23,0,21,0,10,0,2,0,5,0\n7,0,9,0,14,0,20,0,19,0,17,0\n6,0,4,0,3,0,13,0,18,0,8,0\n11,0,17,0,9,0,16,0,21,0,2,0\n"
  },
  {
    "path": "schedules/23_6.csv",
    "content": "16,0,9,0,17,0,12,0,6,0,10,0\n8,0,20,0,15,0,14,0,3,0,5,0\n2,0,18,0,23,0,21,0,7,0,4,0\n13,0,19,0,11,0,22,0,1,0,16,0\n17,0,10,0,18,0,5,0,15,0,23,0\n14,0,7,0,11,0,4,0,9,0,20,0\n6,0,3,0,8,0,21,0,13,0,1,0\n12,0,22,0,5,0,2,0,19,0,14,0\n23,0,7,0,3,0,9,0,6,0,11,0\n18,0,1,0,20,0,13,0,16,0,12,0\n15,0,10,0,21,0,19,0,4,0,22,0\n2,0,8,0,1,0,17,0,11,0,20,0\n14,0,21,0,22,0,18,0,6,0,15,0\n9,0,13,0,7,0,19,0,17,0,5,0\n2,0,4,0,16,0,12,0,23,0,8,0\n10,0,11,0,5,0,3,0,21,0,18,0\n20,0,16,0,6,0,9,0,2,0,15,0\n1,0,7,0,12,0,10,0,22,0,8,0\n23,0,4,0,14,0,3,0,13,0,17,0\n19,0,21,0,9,0,16,0,18,0,8,0\n14,0,15,0,13,0,7,0,10,0,2,0\n23,0,17,0,22,0,19,0,3,0,20,0\n11,0,4,0,12,0,6,0,1,0,5,0\n"
  },
  {
    "path": "schedules/23_7.csv",
    "content": "22,0,10,0,1,0,20,0,2,0,3,0\n13,0,11,0,5,0,23,0,18,0,19,0\n6,0,21,0,17,0,7,0,9,0,14,0\n15,0,16,0,12,0,8,0,4,0,11,0\n18,0,6,0,9,0,19,0,1,0,2,0\n20,0,14,0,4,0,3,0,5,0,16,0\n17,0,23,0,10,0,22,0,15,0,21,0\n7,0,13,0,20,0,8,0,12,0,2,0\n21,1,16,0,1,0,11,0,6,0,22,0\n7,0,17,0,19,0,18,0,3,0,15,0\n9,0,8,0,13,0,4,0,5,0,10,0\n23,0,14,0,6,0,12,0,20,0,22,0\n7,0,21,0,5,0,16,0,13,0,19,0\n1,0,18,0,8,0,15,0,14,0,10,0\n11,0,23,0,2,0,9,0,4,0,17,0\n12,0,18,0,5,0,3,0,10,0,6,0\n20,0,16,0,23,0,11,0,1,0,17,0\n9,0,3,0,19,0,12,0,14,0,21,0\n22,0,2,0,4,0,8,0,7,0,15,0\n11,0,3,0,14,0,13,0,23,0,21,0\n20,0,9,0,10,0,7,0,16,0,18,0\n8,0,22,0,19,0,17,0,2,0,5,0\n13,0,4,0,15,0,12,0,1,0,6,0\n21,0,10,0,2,0,14,0,16,0,17,0\n22,0,3,0,13,0,11,0,9,0,15,0\n6,0,8,0,5,0,7,0,23,0,1,0\n19,0,12,0,4,0,20,0,18,0,21,0\n"
  },
  {
    "path": "schedules/23_8.csv",
    "content": "4,0,11,0,14,0,1,0,7,0,21,0\n9,0,5,0,20,0,8,0,12,0,13,0\n15,0,19,0,10,0,17,0,2,0,3,0\n6,0,22,0,18,0,16,0,23,0,14,0\n4,0,13,0,21,0,20,0,3,0,7,0\n18,0,1,0,8,0,11,0,15,0,9,0\n19,0,23,0,2,0,16,0,12,0,6,0\n17,0,22,0,13,0,5,0,10,0,4,0\n9,1,2,0,6,0,21,1,18,0,20,0\n1,0,10,0,12,0,19,0,3,0,22,0\n17,0,7,0,11,0,23,0,5,0,8,0\n16,0,22,0,21,0,14,0,15,0,13,0\n20,0,11,0,23,0,17,0,9,0,1,0\n3,0,16,0,10,0,7,0,8,0,14,0\n5,0,19,0,18,0,2,0,4,0,12,0\n15,0,21,0,3,0,6,0,17,0,23,0\n20,0,14,0,2,0,10,0,8,0,22,0\n11,0,5,0,12,0,15,0,18,0,4,0\n7,0,16,0,9,0,1,0,6,0,19,0\n13,0,11,0,3,0,15,0,12,0,22,0\n4,0,7,0,6,0,10,0,9,0,21,0\n5,0,14,0,17,0,2,0,1,0,16,0\n18,0,23,0,13,0,19,0,8,0,20,0\n9,0,12,0,3,0,22,0,7,0,2,0\n21,0,14,0,19,0,5,0,13,0,1,0\n20,0,10,0,6,0,11,0,18,0,16,0\n17,0,15,0,8,0,23,0,4,0,22,0\n13,0,19,0,16,0,11,0,2,0,21,0\n9,0,4,0,8,0,6,0,5,0,3,0\n15,0,1,0,20,0,23,0,7,0,10,0\n17,0,12,0,21,0,18,0,14,0,9,0\n"
  },
  {
    "path": "schedules/23_9.csv",
    "content": "13,0,18,0,4,0,10,0,15,0,12,0\n7,0,9,0,3,0,11,0,21,0,2,0\n5,0,17,0,23,0,6,0,22,0,19,0\n20,0,14,0,16,0,1,0,8,0,3,0\n15,0,6,0,17,0,10,0,7,0,18,0\n11,0,13,0,12,0,16,0,2,0,23,0\n5,0,20,0,19,0,14,0,9,0,1,0\n4,0,8,0,2,0,21,0,22,0,18,0\n6,1,1,0,20,0,19,1,17,0,13,0\n23,1,15,0,7,0,16,0,22,0,5,0\n3,0,14,0,10,0,12,0,9,0,4,0\n21,0,6,0,13,0,11,0,8,0,19,0\n14,0,4,0,23,0,3,0,20,0,17,0\n1,0,11,0,10,0,8,0,18,0,15,0\n7,0,22,0,2,0,9,0,12,0,16,0\n5,0,18,0,6,0,21,0,10,0,20,0\n1,0,22,0,4,0,7,0,17,0,11,0\n2,0,12,0,14,0,8,0,13,0,5,0\n21,0,9,0,23,0,16,0,15,0,3,0\n8,0,12,0,22,0,19,0,2,0,10,0\n9,0,5,0,11,0,4,0,20,0,15,0\n16,0,18,0,19,0,7,0,6,0,14,0\n21,0,1,0,17,0,23,0,13,0,3,0\n9,0,2,0,15,0,16,0,6,0,4,0\n1,0,23,0,18,0,22,0,10,0,13,0\n14,0,17,0,8,0,21,0,7,0,5,0\n19,0,12,0,3,0,11,0,20,0,18,0\n4,0,17,0,10,0,13,0,16,0,1,0\n2,0,3,0,5,0,19,0,15,0,23,0\n7,0,12,0,20,0,6,0,8,0,9,0\n11,0,22,0,23,0,14,0,21,0,19,0\n13,0,20,0,9,0,18,0,17,0,2,0\n11,0,3,0,6,0,22,0,14,0,15,0\n21,0,16,0,8,0,12,0,1,0,5,0\n4,0,7,0,19,0,10,0,6,0,23,0\n"
  },
  {
    "path": "schedules/24_1.csv",
    "content": "7,0,1,0,3,0,10,0,16,0,20,0\n19,0,22,0,15,0,17,0,12,0,6,0\n4,0,13,0,18,0,2,0,11,0,9,0\n21,0,23,0,5,0,24,0,8,0,14,0\n"
  },
  {
    "path": "schedules/24_10.csv",
    "content": "13,0,16,0,6,0,18,0,10,0,14,0\n24,0,12,0,11,0,21,0,7,0,9,0\n8,0,17,0,2,0,15,0,23,0,4,0\n1,0,3,0,19,0,5,0,22,0,20,0\n8,0,24,0,6,0,13,0,14,0,17,0\n12,0,15,0,20,0,21,0,11,0,2,0\n1,0,16,0,23,0,5,0,19,0,7,0\n9,0,10,0,22,0,18,0,3,0,4,0\n11,0,15,0,14,0,21,0,19,0,16,0\n4,0,8,0,7,0,10,0,1,0,24,0\n23,0,13,0,9,0,6,0,3,0,20,0\n17,0,18,0,5,0,12,0,22,0,2,0\n21,0,20,0,14,0,8,0,11,0,9,0\n3,0,15,0,10,0,18,0,5,0,6,0\n4,0,1,0,13,0,16,0,12,0,17,0\n7,0,2,0,24,0,19,0,22,0,23,0\n3,0,5,0,21,0,8,0,1,0,18,0\n7,0,13,0,12,0,19,0,9,0,15,0\n20,0,17,0,10,0,22,0,16,0,24,0\n4,0,2,0,14,0,6,0,23,0,11,0\n18,0,7,0,22,0,21,0,15,0,13,0\n16,0,3,0,2,0,5,0,24,0,14,0\n6,0,19,0,12,0,23,0,20,0,8,0\n10,0,4,0,11,0,9,0,1,0,17,0\n18,0,12,0,21,0,24,0,19,0,13,0\n8,0,15,0,5,0,9,0,16,0,4,0\n22,0,11,0,17,0,3,0,23,0,14,0\n6,0,10,0,7,0,20,0,1,0,2,0\n21,0,24,0,23,0,4,0,19,0,17,0\n6,0,2,0,9,0,13,0,10,0,5,0\n20,0,16,0,18,0,3,0,7,0,11,0\n22,0,1,0,15,0,8,0,14,0,12,0\n19,0,11,0,18,0,4,0,24,0,20,0\n1,0,14,0,9,0,22,0,13,0,2,0\n12,0,5,0,23,0,10,0,21,0,8,0\n17,0,3,0,6,0,15,0,7,0,16,0\n4,0,22,0,5,0,20,0,11,0,13,0\n17,0,23,0,7,0,3,0,9,0,12,0\n18,0,15,0,24,0,21,0,6,0,1,0\n2,0,10,0,19,0,16,0,8,0,14,0\n"
  },
  {
    "path": "schedules/24_11.csv",
    "content": "2,0,17,0,21,0,18,0,4,0,6,0\n14,0,5,0,23,0,13,0,22,0,1,0\n3,0,11,0,16,0,7,0,15,0,12,0\n9,0,20,0,8,0,10,0,24,0,19,0\n15,0,23,0,3,0,14,0,21,0,12,0\n20,0,18,0,13,0,8,0,7,0,1,0\n16,0,6,0,19,0,11,0,24,0,9,0\n17,0,4,0,10,0,5,0,2,0,22,0\n18,0,1,0,11,0,24,0,15,0,8,0\n4,0,19,0,5,0,10,0,3,0,7,0\n6,0,14,0,9,0,20,0,21,0,23,0\n13,0,17,0,12,0,2,0,16,0,22,0\n15,0,1,0,23,0,11,0,8,0,6,0\n12,0,22,0,3,0,18,0,24,0,21,0\n9,0,2,0,10,0,4,0,20,0,14,0\n17,0,16,0,13,0,7,0,19,0,5,0\n10,0,12,0,8,0,2,0,15,0,6,0\n4,0,16,0,1,0,9,0,13,0,3,0\n7,0,18,0,14,0,23,0,5,0,24,0\n22,0,11,0,21,0,20,0,19,0,17,0\n23,0,7,0,2,0,1,0,9,0,16,0\n11,0,17,0,5,0,8,0,14,0,3,0\n6,0,20,0,24,0,13,0,4,0,12,0\n18,0,19,0,22,0,15,0,10,0,21,0\n24,0,4,0,1,0,8,0,23,0,17,0\n15,0,16,0,14,0,20,0,3,0,22,0\n7,0,21,0,6,0,19,0,11,0,2,0\n10,0,5,0,13,0,12,0,18,0,9,0\n7,0,22,0,20,0,19,0,1,0,14,0\n12,0,16,0,24,0,9,0,21,0,5,0\n10,0,8,0,23,0,17,0,6,0,3,0\n13,0,11,0,15,0,18,0,4,0,2,0\n6,0,20,0,12,0,7,0,16,0,5,0\n4,0,11,0,8,0,21,0,14,0,13,0\n23,0,19,0,9,0,15,0,17,0,18,0\n1,0,2,0,3,0,22,0,10,0,24,0\n4,0,7,0,9,0,16,0,8,0,18,0\n12,0,19,0,21,0,17,0,10,0,1,0\n3,0,24,0,2,0,20,0,14,0,11,0\n5,0,15,0,22,0,6,0,23,0,13,0\n2,0,8,0,21,0,16,0,10,0,20,0\n13,0,7,0,24,0,15,0,14,0,17,0\n3,0,18,0,19,0,1,0,6,0,5,0\n9,0,4,0,22,0,12,0,23,0,11,0\n"
  },
  {
    "path": "schedules/24_12.csv",
    "content": "4,0,13,0,1,0,12,0,8,0,24,0\n3,0,19,0,18,0,10,0,9,0,2,0\n23,0,6,0,5,0,16,0,7,0,14,0\n20,0,15,0,11,0,22,0,17,0,21,0\n8,0,23,0,2,0,16,0,3,0,1,0\n15,0,17,0,7,0,6,0,13,0,10,0\n5,0,20,0,24,0,14,0,11,0,18,0\n22,0,4,0,12,0,9,0,21,0,19,0\n11,0,16,0,24,0,7,0,3,0,17,0\n5,0,14,0,12,0,21,0,6,0,10,0\n23,0,20,0,9,0,4,0,8,0,15,0\n13,0,18,0,22,0,1,0,2,0,19,0\n9,0,5,0,4,0,16,0,20,0,10,0\n3,0,15,0,21,0,1,0,8,0,22,0\n6,0,14,0,19,0,13,0,24,0,2,0\n18,0,7,0,12,0,11,0,17,0,23,0\n21,0,20,0,8,0,14,0,2,0,3,0\n7,0,4,0,6,0,16,0,12,0,17,0\n13,0,11,0,9,0,18,0,15,0,23,0\n5,0,10,0,1,0,24,0,22,0,19,0\n16,0,3,0,6,0,21,0,4,0,23,0\n19,0,8,0,13,0,11,0,17,0,5,0\n10,0,15,0,12,0,1,0,18,0,20,0\n24,0,9,0,14,0,2,0,22,0,7,0\n21,0,11,0,8,0,13,0,6,0,10,0\n20,0,9,0,17,0,23,0,19,0,3,0\n15,0,1,0,2,0,5,0,7,0,4,0\n16,0,12,0,22,0,18,0,14,0,24,0\n3,0,8,0,10,0,13,0,7,0,9,0\n15,0,19,0,5,0,16,0,21,0,18,0\n14,0,22,0,20,0,12,0,11,0,1,0\n6,0,24,0,23,0,17,0,2,0,4,0\n10,0,11,0,7,0,19,0,8,0,12,0\n22,0,4,0,14,0,20,0,23,0,6,0\n1,0,17,0,24,0,9,0,15,0,16,0\n21,0,2,0,18,0,13,0,5,0,3,0\n4,0,16,0,19,0,14,0,10,0,15,0\n6,0,17,0,1,0,9,0,18,0,8,0\n12,0,23,0,13,0,22,0,5,0,3,0\n7,0,24,0,21,0,11,0,20,0,2,0\n10,0,17,0,18,0,14,0,23,0,1,0\n16,0,2,0,5,0,9,0,12,0,6,0\n21,0,13,0,8,0,19,0,7,0,20,0\n3,0,11,0,4,0,24,0,22,0,15,0\n17,0,14,0,8,0,5,0,21,0,18,0\n12,0,20,0,3,0,15,0,6,0,13,0\n23,0,2,0,16,0,22,0,11,0,10,0\n7,0,9,0,1,0,4,0,24,0,19,0\n"
  },
  {
    "path": "schedules/24_13.csv",
    "content": "21,0,13,0,8,0,23,0,19,0,16,0\n4,0,1,0,6,0,12,0,17,0,9,0\n5,0,22,0,2,0,20,0,7,0,15,0\n24,0,18,0,11,0,10,0,3,0,14,0\n15,0,23,0,5,0,19,0,13,0,6,0\n2,0,10,0,7,0,9,0,3,0,1,0\n11,0,12,0,24,0,14,0,21,0,22,0\n17,0,18,0,8,0,16,0,4,0,20,0\n3,0,22,0,10,0,5,0,9,0,12,0\n13,0,24,0,23,0,21,0,2,0,18,0\n15,0,17,0,4,0,7,0,11,0,8,0\n20,0,19,0,6,0,14,0,16,0,1,0\n18,0,7,0,5,0,24,0,8,0,22,0\n10,0,6,0,21,0,17,0,2,0,3,0\n23,0,14,0,12,0,13,0,16,0,20,0\n11,0,9,0,4,0,1,0,19,0,15,0\n16,0,6,0,17,0,23,0,21,0,7,0\n24,0,4,0,2,0,15,0,12,0,3,0\n20,0,8,0,9,0,10,0,13,0,11,0\n22,0,18,0,1,0,5,0,14,0,19,0\n17,0,9,0,13,0,24,0,16,0,21,0\n14,0,1,0,7,0,2,0,8,0,23,0\n12,0,22,0,10,0,11,0,15,0,6,0\n20,0,5,0,3,0,18,0,19,0,4,0\n10,0,8,0,16,0,14,0,17,0,15,0\n24,0,9,0,19,0,3,0,11,0,23,0\n1,0,5,0,21,0,18,0,12,0,4,0\n13,0,2,0,20,0,22,0,7,0,6,0\n1,0,17,0,10,0,23,0,24,0,5,0\n6,0,8,0,12,0,11,0,19,0,21,0\n3,0,16,0,15,0,18,0,20,0,7,0\n4,0,14,0,2,0,9,0,13,0,22,0\n1,0,15,0,8,0,18,0,3,0,6,0\n5,0,11,0,16,0,13,0,12,0,2,0\n21,0,19,0,22,0,10,0,4,0,23,0\n24,0,17,0,7,0,9,0,14,0,20,0\n4,0,3,0,21,0,1,0,13,0,16,0\n2,0,19,0,12,0,17,0,18,0,10,0\n15,0,22,0,11,0,7,0,23,0,9,0\n20,0,14,0,24,0,8,0,5,0,6,0\n18,0,15,0,9,0,23,0,22,0,17,0\n7,0,19,0,16,0,4,0,10,0,5,0\n14,0,13,0,6,0,2,0,11,0,1,0\n20,0,12,0,21,0,3,0,8,0,24,0\n19,0,18,0,16,0,2,0,9,0,6,0\n1,0,20,0,23,0,24,0,10,0,15,0\n7,0,12,0,3,0,13,0,17,0,5,0\n14,0,11,0,8,0,21,0,22,0,4,0\n10,0,6,0,23,0,24,0,5,0,1,0\n21,0,2,0,15,0,11,0,20,0,17,0\n22,0,16,0,9,0,8,0,19,0,3,0\n18,0,13,0,14,0,12,0,7,0,4,0\n"
  },
  {
    "path": "schedules/24_14.csv",
    "content": "14,0,22,0,24,0,11,0,16,0,21,0\n2,0,12,0,7,0,5,0,8,0,4,0\n18,0,19,0,9,0,15,0,1,0,23,0\n10,0,20,0,3,0,6,0,17,0,13,0\n7,0,19,0,15,0,21,0,1,0,5,0\n14,0,17,0,20,0,24,0,23,0,10,0\n9,0,6,0,8,0,4,0,22,0,2,0\n18,0,16,0,13,0,12,0,11,0,3,0\n6,0,9,0,15,0,5,0,2,0,23,0\n14,0,13,0,21,0,7,0,4,0,10,0\n11,0,24,0,20,0,16,0,19,0,22,0\n1,0,18,0,17,0,3,0,8,0,12,0\n13,0,10,0,21,0,14,0,11,0,9,0\n5,0,22,0,3,0,1,0,20,0,2,0\n19,0,4,0,8,0,23,0,18,0,24,0\n15,0,17,0,6,0,7,0,12,0,16,0\n9,0,20,0,1,0,10,0,3,0,19,0\n4,0,23,0,16,0,7,0,17,0,5,0\n14,0,13,0,15,0,22,0,18,0,6,0\n12,0,24,0,21,0,2,0,11,0,8,0\n4,0,1,0,16,0,14,0,22,0,13,0\n23,0,5,0,11,0,15,0,2,0,3,0\n24,0,17,0,12,0,20,0,7,0,9,0\n10,0,6,0,19,0,8,0,18,0,21,0\n7,0,14,0,1,0,11,0,15,0,4,0\n6,0,2,0,24,0,17,0,3,0,10,0\n12,0,5,0,13,0,23,0,19,0,21,0\n16,0,18,0,9,0,20,0,8,0,22,0\n1,0,3,0,13,0,5,0,15,0,24,0\n7,0,6,0,11,0,18,0,22,0,10,0\n2,0,19,0,17,0,4,0,9,0,12,0\n23,0,16,0,8,0,14,0,20,0,21,0\n3,0,24,0,4,0,9,0,12,0,15,0\n11,0,23,0,19,0,6,0,7,0,13,0\n10,0,2,0,16,0,8,0,1,0,14,0\n17,0,22,0,21,0,5,0,20,0,18,0\n3,0,7,0,11,0,9,0,13,0,24,0\n1,0,22,0,2,0,17,0,23,0,4,0\n16,0,14,0,5,0,18,0,6,0,20,0\n10,0,8,0,15,0,19,0,12,0,21,0\n9,0,2,0,3,0,22,0,23,0,7,0\n15,0,18,0,21,0,4,0,20,0,13,0\n12,0,6,0,10,0,1,0,16,0,24,0\n8,0,11,0,17,0,5,0,19,0,14,0\n7,0,21,0,4,0,6,0,16,0,3,0\n23,0,20,0,12,0,11,0,10,0,1,0\n8,0,5,0,13,0,9,0,17,0,22,0\n18,0,14,0,2,0,15,0,24,0,19,0\n23,0,21,0,9,0,16,0,1,0,17,0\n12,0,10,0,14,0,19,0,13,0,2,0\n15,0,20,0,22,0,24,0,8,0,7,0\n4,0,5,0,6,0,11,0,3,0,18,0\n17,0,8,0,2,0,13,0,15,0,16,0\n11,0,21,0,22,0,6,0,1,0,12,0\n19,0,7,0,20,0,23,0,3,0,14,0\n4,0,18,0,24,0,5,0,10,0,9,0\n"
  },
  {
    "path": "schedules/24_2.csv",
    "content": "8,0,20,0,16,0,19,0,21,0,3,0\n24,0,11,0,14,0,2,0,5,0,22,0\n9,0,6,0,1,0,15,0,18,0,10,0\n7,0,12,0,17,0,4,0,23,0,13,0\n11,0,3,0,6,0,9,0,21,0,24,0\n17,0,10,0,4,0,16,0,15,0,2,0\n8,0,18,0,7,0,14,0,20,0,12,0\n19,0,13,0,5,0,22,0,23,0,1,0\n"
  },
  {
    "path": "schedules/24_3.csv",
    "content": "7,0,16,0,3,0,1,0,19,0,17,0\n2,0,18,0,11,0,8,0,15,0,20,0\n9,0,21,0,14,0,12,0,22,0,5,0\n13,0,24,0,6,0,10,0,23,0,4,0\n22,0,19,0,14,0,1,0,20,0,11,0\n8,0,12,0,7,0,4,0,5,0,24,0\n13,0,16,0,17,0,23,0,2,0,9,0\n10,0,3,0,6,0,15,0,21,0,18,0\n8,0,22,0,11,0,7,0,23,0,13,0\n5,0,10,0,20,0,3,0,17,0,12,0\n24,0,9,0,1,0,6,0,2,0,15,0\n14,0,18,0,4,0,19,0,21,0,16,0\n"
  },
  {
    "path": "schedules/24_4.csv",
    "content": "23,0,9,0,4,0,18,0,2,0,15,0\n13,0,14,0,3,0,11,0,6,0,21,0\n7,0,10,0,20,0,17,0,16,0,19,0\n8,0,1,0,12,0,5,0,24,0,22,0\n14,0,17,0,20,0,2,0,9,0,3,0\n6,0,5,0,8,0,10,0,15,0,19,0\n12,0,7,0,24,0,23,0,18,0,11,0\n22,0,4,0,16,0,13,0,21,0,1,0\n2,0,6,0,10,0,9,0,11,0,24,0\n21,0,20,0,16,0,12,0,15,0,5,0\n18,0,14,0,19,0,1,0,22,0,17,0\n7,0,3,0,23,0,8,0,4,0,13,0\n15,0,21,0,22,0,10,0,17,0,24,0\n16,0,5,0,23,0,18,0,6,0,3,0\n19,0,13,0,7,0,12,0,2,0,14,0\n11,0,1,0,4,0,9,0,20,0,8,0\n"
  },
  {
    "path": "schedules/24_5.csv",
    "content": "21,0,23,0,24,0,13,0,17,0,18,0\n10,0,14,0,15,0,7,0,9,0,19,0\n6,0,12,0,1,0,22,0,2,0,20,0\n11,0,4,0,16,0,8,0,3,0,5,0\n15,0,24,0,6,0,21,0,14,0,12,0\n18,0,9,0,2,0,8,0,4,0,19,0\n17,0,7,0,5,0,22,0,13,0,3,0\n11,0,20,0,23,0,16,0,10,0,1,0\n3,0,17,0,9,0,15,0,2,0,12,0\n16,0,19,0,5,0,1,0,7,0,24,0\n11,0,10,0,13,0,18,0,6,0,4,0\n21,0,8,0,20,0,23,0,14,0,22,0\n10,0,5,0,2,0,12,0,16,0,13,0\n22,0,24,0,11,0,9,0,15,0,23,0\n14,0,1,0,19,0,3,0,21,0,4,0\n18,0,7,0,8,0,6,0,20,0,17,0\n2,0,3,0,24,0,10,0,22,0,21,0\n12,0,23,0,19,0,6,0,7,0,11,0\n18,0,20,0,16,0,9,0,14,0,5,0\n1,0,4,0,13,0,8,0,15,0,17,0\n"
  },
  {
    "path": "schedules/24_6.csv",
    "content": "6,0,24,0,15,0,5,0,17,0,11,0\n10,0,2,0,22,0,16,0,20,0,12,0\n18,0,4,0,3,0,19,0,21,0,1,0\n9,0,7,0,13,0,14,0,23,0,8,0\n2,0,15,0,21,0,6,0,10,0,19,0\n12,0,8,0,17,0,14,0,11,0,18,0\n9,0,20,0,22,0,4,0,13,0,5,0\n24,0,23,0,1,0,7,0,16,0,3,0\n4,0,17,0,19,0,13,0,12,0,2,0\n7,0,11,0,24,0,10,0,18,0,9,0\n16,0,15,0,23,0,22,0,8,0,21,0\n6,0,20,0,5,0,1,0,3,0,14,0\n19,0,11,0,22,0,4,0,8,0,24,0\n14,0,9,0,5,0,16,0,21,0,18,0\n1,0,6,0,12,0,2,0,23,0,7,0\n20,0,17,0,13,0,15,0,10,0,3,0\n16,0,4,0,22,0,7,0,6,0,18,0\n10,0,17,0,14,0,19,0,23,0,5,0\n24,0,21,0,12,0,13,0,15,0,1,0\n3,0,20,0,2,0,9,0,8,0,11,0\n14,0,21,0,7,0,17,0,24,0,22,0\n16,0,9,0,1,0,20,0,19,0,15,0\n23,0,18,0,13,0,11,0,2,0,6,0\n8,0,3,0,5,0,4,0,12,0,10,0\n"
  },
  {
    "path": "schedules/24_7.csv",
    "content": "10,0,11,0,20,0,8,0,19,0,22,0\n13,0,1,0,18,0,14,0,2,0,4,0\n12,0,3,0,15,0,7,0,16,0,6,0\n21,0,5,0,23,0,24,0,9,0,17,0\n22,0,13,0,2,0,12,0,6,0,20,0\n23,0,10,0,24,0,8,0,16,0,14,0\n17,0,15,0,4,0,19,0,9,0,3,0\n7,0,5,0,18,0,1,0,11,0,21,0\n15,0,13,0,14,0,10,0,12,0,17,0\n11,0,9,0,6,0,21,0,8,0,2,0\n7,0,1,0,24,0,20,0,4,0,19,0\n16,0,5,0,3,0,18,0,22,0,23,0\n8,0,24,0,12,0,1,0,19,0,17,0\n6,0,4,0,23,0,18,0,11,0,15,0\n2,0,20,0,3,0,14,0,5,0,10,0\n7,0,21,0,22,0,16,0,9,0,13,0\n12,0,19,0,14,0,11,0,5,0,4,0\n3,0,22,0,1,0,17,0,13,0,23,0\n6,0,18,0,21,0,7,0,8,0,10,0\n20,0,16,0,24,0,9,0,15,0,2,0\n11,0,17,0,8,0,3,0,13,0,7,0\n22,0,20,0,9,0,14,0,24,0,18,0\n10,0,16,0,4,0,6,0,5,0,1,0\n15,0,19,0,21,0,12,0,23,0,2,0\n1,0,9,0,10,0,11,0,24,0,3,0\n8,0,13,0,4,0,22,0,15,0,5,0\n18,0,17,0,20,0,16,0,12,0,21,0\n19,0,6,0,2,0,14,0,7,0,23,0\n"
  },
  {
    "path": "schedules/24_8.csv",
    "content": "15,0,2,0,4,0,21,0,23,0,3,0\n16,0,12,0,17,0,14,0,22,0,18,0\n24,0,6,0,19,0,5,0,8,0,1,0\n7,0,10,0,13,0,9,0,20,0,11,0\n24,0,14,0,21,0,22,0,8,0,12,0\n20,0,15,0,7,0,6,0,17,0,4,0\n5,0,3,0,18,0,1,0,13,0,9,0\n19,0,16,0,23,0,10,0,11,0,2,0\n12,0,21,0,9,0,15,0,24,0,3,0\n22,0,1,0,6,0,2,0,7,0,23,0\n11,0,18,0,13,0,14,0,4,0,19,0\n8,0,20,0,17,0,10,0,16,0,5,0\n1,0,14,0,23,0,12,0,6,0,13,0\n18,0,9,0,15,0,8,0,2,0,16,0\n20,0,5,0,21,0,19,0,11,0,17,0\n4,0,3,0,10,0,7,0,24,0,22,0\n23,0,15,0,17,0,1,0,20,0,12,0\n11,0,24,0,16,0,6,0,7,0,18,0\n21,0,22,0,4,0,9,0,19,0,5,0\n10,0,14,0,8,0,2,0,13,0,3,0\n19,0,12,0,15,0,16,0,4,0,7,0\n20,0,13,0,22,0,18,0,2,0,24,0\n23,0,5,0,11,0,14,0,9,0,3,0\n8,0,6,0,21,0,1,0,17,0,10,0\n2,0,19,0,20,0,5,0,14,0,7,0\n24,0,8,0,13,0,4,0,12,0,23,0\n1,0,3,0,11,0,15,0,22,0,16,0\n9,0,6,0,10,0,17,0,18,0,21,0\n24,0,4,0,1,0,15,0,14,0,11,0\n5,0,17,0,2,0,10,0,12,0,18,0\n7,0,9,0,8,0,13,0,21,0,16,0\n19,0,3,0,22,0,6,0,20,0,23,0\n"
  },
  {
    "path": "schedules/24_9.csv",
    "content": "4,0,24,0,11,0,13,0,5,0,21,0\n8,0,18,0,12,0,14,0,7,0,16,0\n15,0,3,0,10,0,20,0,19,0,23,0\n22,0,1,0,6,0,17,0,2,0,9,0\n7,0,12,0,19,0,10,0,11,0,23,0\n20,0,6,0,15,0,8,0,14,0,2,0\n22,0,5,0,9,0,21,0,18,0,3,0\n13,0,17,0,4,0,24,0,1,0,16,0\n3,0,8,0,19,0,14,0,22,0,21,0\n20,0,7,0,9,0,10,0,5,0,17,0\n18,0,6,0,23,0,24,0,15,0,13,0\n11,0,2,0,1,0,4,0,16,0,12,0\n8,0,5,0,7,0,20,0,17,0,24,0\n1,0,14,0,19,0,4,0,18,0,2,0\n12,0,10,0,11,0,13,0,3,0,22,0\n15,0,16,0,23,0,6,0,9,0,21,0\n18,0,24,0,10,0,3,0,1,0,20,0\n17,0,7,0,21,0,2,0,15,0,12,0\n23,0,4,0,22,0,8,0,9,0,16,0\n5,0,14,0,11,0,19,0,6,0,13,0\n17,0,22,0,18,0,3,0,7,0,4,0\n12,0,23,0,9,0,11,0,8,0,20,0\n2,0,13,0,16,0,5,0,19,0,15,0\n6,0,24,0,14,0,1,0,21,0,10,0\n20,0,12,0,13,0,16,0,19,0,22,0\n3,0,24,0,9,0,2,0,6,0,7,0\n23,0,21,0,8,0,18,0,5,0,1,0\n15,0,11,0,17,0,14,0,10,0,4,0\n23,0,2,0,5,0,12,0,22,0,24,0\n14,0,3,0,20,0,15,0,21,0,4,0\n17,0,8,0,1,0,9,0,11,0,19,0\n10,0,6,0,16,0,7,0,18,0,13,0\n1,0,9,0,15,0,3,0,5,0,12,0\n10,0,2,0,13,0,4,0,6,0,8,0\n16,0,18,0,20,0,22,0,7,0,11,0\n19,0,21,0,24,0,23,0,14,0,17,0\n"
  },
  {
    "path": "schedules/25_1.csv",
    "content": "15,0,23,0,4,0,9,0,5,0,13,0\n3,0,2,0,12,0,19,0,8,0,10,0\n17,0,21,0,14,0,25,0,18,0,6,0\n7,0,22,0,1,0,16,0,11,0,20,0\n24,0,19,1,23,1,13,1,17,1,10,1\n"
  },
  {
    "path": "schedules/25_10.csv",
    "content": "17,0,11,0,12,0,4,0,3,0,23,0\n22,0,9,0,7,0,21,0,2,0,14,0\n19,0,18,0,8,0,10,0,20,0,6,0\n1,0,5,0,13,0,16,0,25,0,15,0\n12,0,3,0,14,0,24,0,10,0,21,0\n4,0,2,0,1,0,16,0,5,0,18,0\n9,0,8,0,20,0,17,0,19,0,15,0\n23,0,22,0,25,0,6,0,13,0,7,0\n24,0,9,0,17,0,11,0,1,0,10,0\n13,1,7,0,23,0,18,1,4,0,20,0\n3,0,25,0,6,0,2,0,12,0,16,0\n5,0,21,0,22,0,15,0,8,0,24,0\n14,0,11,0,18,0,19,0,13,0,3,0\n8,0,10,0,16,0,20,0,22,0,2,0\n17,0,1,0,23,0,12,0,25,0,19,0\n14,0,6,0,15,0,4,0,21,0,9,0\n11,0,5,0,20,0,7,0,24,0,1,0\n2,0,15,0,13,0,22,0,10,0,12,0\n17,0,16,0,14,0,7,0,11,0,8,0\n9,0,18,0,23,0,5,0,24,0,3,0\n19,0,21,0,6,0,4,0,25,0,13,0\n18,0,3,0,2,0,15,0,1,0,22,0\n16,0,11,0,6,0,9,0,5,0,12,0\n20,0,23,0,24,0,19,0,7,0,14,0\n10,0,4,0,17,0,21,0,8,0,25,0\n7,0,3,0,15,0,6,0,2,0,9,0\n4,0,8,0,12,0,13,0,18,0,24,0\n10,0,20,0,14,0,5,0,17,0,25,0\n21,0,16,0,1,0,11,0,19,0,23,0\n22,0,6,0,24,0,17,0,13,0,20,0\n25,0,18,0,10,0,11,0,3,0,9,0\n22,0,16,0,4,0,14,0,1,0,8,0\n2,0,5,0,7,0,12,0,15,0,23,0\n19,0,24,0,16,0,21,0,17,0,18,0\n22,0,13,0,8,0,1,0,14,0,9,0\n25,0,20,0,7,0,4,0,15,0,11,0\n2,0,19,0,10,0,6,0,5,0,23,0\n12,0,21,0,15,0,3,0,20,0,16,0\n14,0,25,0,24,0,18,0,1,0,6,0\n13,0,21,0,11,0,2,0,23,0,8,0\n5,0,19,0,4,0,3,0,17,0,22,0\n10,0,9,0,13,0,7,0,12,0,18,0\n"
  },
  {
    "path": "schedules/25_11.csv",
    "content": "2,0,20,0,13,0,4,0,3,0,18,0\n25,0,17,0,8,0,6,0,15,0,1,0\n16,0,7,0,14,0,12,0,11,0,23,0\n19,0,24,0,22,0,9,0,21,0,10,0\n5,0,7,0,11,0,13,0,1,0,16,0\n23,0,6,0,21,0,18,0,22,0,12,0\n20,0,5,0,10,0,9,0,8,0,14,0\n3,0,2,0,24,0,25,0,19,0,4,0\n15,0,14,0,11,0,17,0,13,0,9,0\n2,1,24,0,6,0,22,0,1,0,25,0\n20,0,3,0,16,0,21,0,7,0,19,0\n4,0,12,0,17,0,10,0,8,0,23,0\n5,0,15,0,22,0,18,0,7,0,1,0\n2,0,25,0,6,0,21,0,17,0,11,0\n14,0,12,0,10,0,3,0,13,0,23,0\n18,0,9,0,24,0,16,0,5,0,15,0\n8,0,4,0,6,0,20,0,19,0,14,0\n7,0,9,0,13,0,25,0,24,0,17,0\n22,0,11,0,20,0,2,0,8,0,5,0\n16,0,12,0,1,0,19,0,10,0,3,0\n18,0,15,0,21,0,4,0,23,0,7,0\n25,0,12,0,13,0,20,0,1,0,8,0\n10,0,9,0,11,0,4,0,5,0,22,0\n21,0,19,0,2,0,17,0,18,0,16,0\n14,0,6,0,3,0,23,0,24,0,15,0\n5,0,25,0,18,0,8,0,16,0,19,0\n4,0,10,0,17,0,3,0,24,0,11,0\n1,0,23,0,2,0,21,0,14,0,22,0\n12,0,7,0,15,0,9,0,20,0,6,0\n13,0,5,0,21,0,23,0,17,0,14,0\n25,0,16,0,22,0,10,0,20,0,18,0\n8,0,15,0,13,0,7,0,2,0,24,0\n19,0,9,0,1,0,12,0,6,0,11,0\n4,0,13,0,14,0,3,0,7,0,25,0\n17,0,15,0,20,0,22,0,6,0,10,0\n9,0,3,0,12,0,16,0,11,0,2,0\n18,0,23,0,19,0,1,0,5,0,24,0\n21,0,8,0,3,0,4,0,25,0,15,0\n7,0,19,0,17,0,18,0,2,0,14,0\n4,0,11,0,1,0,12,0,20,0,21,0\n9,0,5,0,23,0,22,0,13,0,6,0\n10,0,16,0,4,0,24,0,8,0,14,0\n25,0,23,0,20,0,9,0,15,0,2,0\n1,0,17,0,3,0,16,0,5,0,6,0\n24,0,10,0,21,0,11,0,13,0,18,0\n7,0,8,0,22,0,12,0,19,0,2,0\n"
  },
  {
    "path": "schedules/25_12.csv",
    "content": "3,0,14,0,5,0,21,0,10,0,22,0\n7,0,17,0,16,0,13,0,12,0,11,0\n1,0,20,0,25,0,4,0,2,0,8,0\n24,0,9,0,19,0,23,0,15,0,18,0\n6,0,14,0,21,0,1,0,13,0,12,0\n2,0,20,0,9,0,17,0,24,0,23,0\n11,0,5,0,19,0,22,0,18,0,10,0\n6,0,16,0,4,0,15,0,25,0,3,0\n7,0,23,0,21,0,8,0,5,0,22,0\n10,0,6,0,25,0,16,0,1,0,24,0\n2,0,11,0,7,0,8,0,17,0,19,0\n13,0,18,0,14,0,15,0,9,0,12,0\n4,0,3,0,22,0,20,0,6,0,5,0\n21,0,16,0,8,0,19,0,23,0,2,0\n25,0,17,0,14,0,20,0,7,0,13,0\n12,0,24,0,4,0,3,0,18,0,11,0\n1,0,15,0,16,0,9,0,10,0,17,0\n18,0,8,0,3,0,13,0,22,0,6,0\n12,0,7,0,9,0,21,0,19,0,1,0\n5,0,2,0,15,0,20,0,24,0,14,0\n11,0,10,0,23,0,4,0,25,0,13,0\n18,0,19,0,1,0,3,0,20,0,21,0\n4,0,2,0,10,0,7,0,6,0,15,0\n22,0,9,0,23,0,14,0,24,0,8,0\n16,0,12,0,25,0,11,0,5,0,17,0\n9,0,21,0,18,0,4,0,2,0,14,0\n15,0,13,0,8,0,20,0,16,0,11,0\n25,0,22,0,1,0,17,0,12,0,3,0\n19,0,6,0,23,0,5,0,24,0,7,0\n10,0,20,0,12,0,8,0,25,0,9,0\n18,0,5,0,17,0,7,0,3,0,1,0\n4,0,16,0,6,0,19,0,14,0,10,0\n24,0,22,0,11,0,15,0,21,0,13,0\n2,0,1,0,17,0,23,0,3,0,14,0\n10,0,8,0,15,0,7,0,4,0,18,0\n5,0,25,0,21,0,2,0,24,0,13,0\n22,0,20,0,19,0,9,0,11,0,6,0\n12,0,23,0,4,0,16,0,10,0,3,0\n24,0,11,0,15,0,19,0,7,0,25,0\n14,0,12,0,22,0,16,0,2,0,18,0\n23,0,5,0,13,0,9,0,1,0,6,0\n20,0,8,0,11,0,21,0,17,0,4,0\n3,0,7,0,2,0,16,0,9,0,5,0\n17,0,6,0,13,0,22,0,15,0,19,0\n8,0,1,0,14,0,18,0,24,0,25,0\n23,0,20,0,10,0,12,0,21,0,11,0\n19,0,16,0,13,0,4,0,5,0,1,0\n14,0,9,0,3,0,25,0,8,0,23,0\n21,0,24,0,2,0,6,0,17,0,12,0\n20,0,18,0,15,0,22,0,10,0,7,0\n"
  },
  {
    "path": "schedules/25_13.csv",
    "content": "6,0,10,0,24,0,14,0,15,0,7,0\n12,0,16,0,9,0,13,0,20,0,23,0\n19,0,25,0,11,0,1,0,5,0,18,0\n21,0,4,0,22,0,8,0,2,0,3,0\n17,0,11,0,7,0,1,0,10,0,20,0\n8,0,13,0,24,0,23,0,6,0,14,0\n3,0,15,0,22,0,25,0,16,0,12,0\n17,0,2,0,21,0,18,0,4,0,9,0\n19,0,15,0,3,0,5,0,23,0,11,0\n1,1,12,0,20,0,9,1,10,0,2,0\n7,1,19,0,17,0,22,1,6,0,8,0\n18,1,25,0,21,0,24,0,16,0,14,0\n5,0,4,0,20,0,13,0,12,0,3,0\n10,0,23,0,8,0,7,0,11,0,1,0\n6,0,16,0,17,0,2,0,19,0,24,0\n22,0,5,0,25,0,9,0,18,0,14,0\n13,0,4,0,1,0,21,0,15,0,24,0\n2,0,19,0,18,0,16,0,23,0,3,0\n13,0,5,0,9,0,11,0,4,0,6,0\n8,0,21,0,20,0,10,0,15,0,17,0\n14,0,25,0,7,0,22,0,12,0,19,0\n8,0,15,0,13,0,5,0,24,0,2,0\n18,0,23,0,1,0,14,0,20,0,16,0\n12,0,7,0,6,0,4,0,25,0,17,0\n22,0,10,0,21,0,9,0,3,0,11,0\n18,0,6,0,17,0,15,0,23,0,25,0\n3,0,24,0,20,0,9,0,8,0,19,0\n10,0,5,0,7,0,21,0,22,0,16,0\n12,0,11,0,14,0,1,0,2,0,4,0\n13,0,10,0,18,0,15,0,3,0,5,0\n23,0,24,0,19,0,1,0,9,0,25,0\n2,0,13,0,11,0,16,0,7,0,8,0\n20,0,6,0,22,0,12,0,21,0,4,0\n14,0,5,0,16,0,17,0,8,0,1,0\n20,0,2,0,25,0,24,0,21,0,11,0\n4,0,19,0,15,0,23,0,7,0,22,0\n13,0,18,0,12,0,10,0,17,0,9,0\n3,0,6,0,2,0,14,0,11,0,22,0\n12,0,23,0,5,0,7,0,18,0,21,0\n1,0,25,0,24,0,8,0,10,0,4,0\n17,0,3,0,14,0,13,0,19,0,20,0\n16,0,15,0,1,0,6,0,9,0,23,0\n10,0,11,0,12,0,21,0,19,0,14,0\n24,0,18,0,8,0,5,0,6,0,3,0\n9,0,2,0,22,0,13,0,17,0,25,0\n4,0,7,0,16,0,20,0,15,0,18,0\n5,0,17,0,23,0,22,0,12,0,24,0\n4,0,9,0,14,0,10,0,16,0,19,0\n3,0,21,0,1,0,2,0,7,0,13,0\n8,0,11,0,20,0,25,0,6,0,15,0\n4,0,3,0,23,0,24,0,17,0,7,0\n18,0,16,0,11,0,6,0,13,0,22,0\n15,0,1,0,9,0,5,0,21,0,19,0\n14,0,10,0,25,0,2,0,12,0,8,0\n20,0,9,0,7,0,1,0,22,0,18,0\n"
  },
  {
    "path": "schedules/25_14.csv",
    "content": "16,0,25,0,18,0,2,0,12,0,15,0\n1,0,24,0,8,0,7,0,10,0,19,0\n5,0,21,0,22,0,9,0,14,0,20,0\n13,0,17,0,23,0,4,0,11,0,6,0\n22,0,25,0,7,0,3,0,24,0,16,0\n8,0,2,0,14,0,4,0,5,0,1,0\n10,0,11,0,23,0,12,0,13,0,20,0\n3,0,9,0,15,0,6,0,18,0,17,0\n19,0,4,0,2,0,21,0,12,0,13,0\n5,1,24,0,9,0,15,1,23,0,8,0\n7,1,14,0,11,0,16,1,18,0,3,0\n21,0,6,0,25,0,20,0,1,0,19,0\n10,0,22,0,9,0,17,0,7,0,5,0\n24,0,11,0,19,0,25,0,1,0,2,0\n6,0,10,0,8,0,16,0,18,0,13,0\n17,0,22,0,15,0,14,0,4,0,21,0\n3,0,12,0,8,0,20,0,23,0,2,0\n7,0,19,0,15,0,10,0,13,0,14,0\n6,0,5,0,12,0,25,0,22,0,11,0\n3,0,1,0,23,0,17,0,21,0,24,0\n20,0,4,0,18,0,16,0,9,0,7,0\n13,0,15,0,25,0,8,0,22,0,12,0\n1,0,18,0,19,0,3,0,11,0,21,0\n23,0,14,0,24,0,6,0,2,0,9,0\n17,0,16,0,4,0,20,0,10,0,5,0\n8,0,9,0,13,0,2,0,6,0,21,0\n10,0,18,0,23,0,5,0,25,0,19,0\n24,0,7,0,12,0,3,0,20,0,4,0\n11,0,17,0,1,0,22,0,16,0,14,0\n25,0,3,0,7,0,15,0,4,0,23,0\n21,0,22,0,19,0,16,0,13,0,5,0\n6,0,20,0,8,0,18,0,24,0,15,0\n9,0,12,0,11,0,1,0,14,0,10,0\n2,0,7,0,18,0,17,0,8,0,19,0\n14,0,5,0,15,0,24,0,6,0,12,0\n13,0,20,0,4,0,23,0,1,0,16,0\n10,0,22,0,3,0,21,0,9,0,11,0\n2,0,17,0,14,0,25,0,23,0,7,0\n9,0,18,0,19,0,4,0,24,0,22,0\n16,0,2,0,5,0,13,0,3,0,6,0\n20,0,1,0,21,0,25,0,15,0,10,0\n12,0,17,0,3,0,8,0,11,0,5,0\n15,0,1,0,9,0,2,0,22,0,23,0\n16,0,4,0,10,0,12,0,25,0,14,0\n21,0,19,0,6,0,20,0,17,0,7,0\n11,0,13,0,24,0,18,0,8,0,14,0\n22,0,1,0,6,0,7,0,12,0,4,0\n16,0,20,0,15,0,11,0,19,0,23,0\n18,0,3,0,5,0,9,0,25,0,8,0\n10,0,24,0,21,0,2,0,13,0,17,0\n9,0,12,0,23,0,1,0,7,0,8,0\n17,0,20,0,25,0,13,0,18,0,22,0\n2,0,24,0,11,0,21,0,15,0,4,0\n16,0,6,0,10,0,19,0,14,0,3,0\n1,0,13,0,7,0,5,0,9,0,15,0\n12,0,16,0,19,0,25,0,24,0,17,0\n6,0,23,0,5,0,21,0,18,0,10,0\n2,0,4,0,8,0,20,0,22,0,3,0\n14,0,5,0,7,0,11,0,15,0,16,0\n"
  },
  {
    "path": "schedules/25_2.csv",
    "content": "1,0,2,0,17,0,22,0,5,0,16,0\n18,0,3,0,25,0,4,0,19,0,14,0\n13,0,23,0,15,0,24,0,8,0,11,0\n6,0,20,0,7,0,9,0,10,0,12,0\n19,0,17,0,16,0,21,0,15,0,8,0\n20,0,12,0,18,0,22,0,1,0,13,0\n23,0,21,0,11,0,9,0,2,0,25,0\n6,0,10,0,24,0,5,0,3,0,14,0\n4,0,22,1,15,1,7,0,21,1,16,1\n"
  },
  {
    "path": "schedules/25_3.csv",
    "content": "5,0,23,0,14,0,12,0,18,0,24,0\n21,0,9,0,16,0,25,0,8,0,1,0\n3,0,10,0,20,0,22,0,2,0,17,0\n4,0,7,0,11,0,6,0,15,0,19,0\n8,0,22,0,3,0,13,0,12,0,23,0\n1,1,2,0,15,0,25,1,19,0,5,0\n7,1,18,0,13,0,21,0,11,0,20,0\n17,0,9,0,10,0,14,0,16,0,6,0\n24,0,5,0,22,0,4,0,21,0,25,0\n2,0,7,0,23,0,13,0,14,0,9,0\n6,0,1,0,24,0,8,0,20,0,15,0\n19,0,4,0,3,0,10,0,18,0,16,0\n11,0,12,0,25,0,17,0,1,0,7,0\n"
  },
  {
    "path": "schedules/25_4.csv",
    "content": "8,0,24,0,12,0,7,0,1,0,22,0\n4,0,18,0,20,0,3,0,16,0,23,0\n15,0,5,0,14,0,21,0,17,0,9,0\n11,0,25,0,13,0,19,0,6,0,10,0\n2,0,21,0,18,0,8,0,9,0,20,0\n6,0,22,0,11,0,7,0,4,0,14,0\n15,0,13,0,16,0,12,0,2,0,25,0\n3,0,19,0,17,0,24,0,1,0,23,0\n5,0,6,0,9,0,10,0,16,0,8,0\n20,1,22,0,15,0,24,1,18,0,19,0\n7,0,23,0,12,0,21,0,5,0,25,0\n2,0,10,0,14,0,4,0,1,0,3,0\n11,0,17,0,7,0,13,0,18,0,9,0\n23,0,10,0,21,0,24,0,22,0,2,0\n3,0,6,0,20,0,12,0,11,0,15,0\n19,0,25,0,16,0,17,0,14,0,8,0\n13,0,1,0,20,0,5,0,4,0,24,0\n"
  },
  {
    "path": "schedules/25_5.csv",
    "content": "20,0,19,0,4,0,1,0,15,0,22,0\n3,0,25,0,9,0,14,0,2,0,23,0\n21,0,18,0,6,0,8,0,17,0,24,0\n11,0,13,0,16,0,12,0,5,0,10,0\n7,0,23,0,25,0,24,0,20,0,6,0\n2,0,9,0,8,0,19,0,13,0,17,0\n16,0,7,0,1,0,14,0,11,0,21,0\n12,0,3,0,22,0,5,0,15,0,18,0\n4,0,1,0,24,0,10,0,13,0,2,0\n3,1,6,0,14,0,15,0,19,0,11,0\n20,0,21,0,10,0,12,0,18,0,9,0\n5,0,8,0,23,0,7,0,17,0,4,0\n22,0,19,0,18,0,25,0,16,0,21,0\n14,0,20,0,15,0,17,0,2,0,5,0\n16,0,12,0,24,0,1,0,6,0,9,0\n23,0,11,0,10,0,22,0,8,0,25,0\n7,0,13,0,21,0,3,0,4,0,15,0\n1,0,18,0,2,0,6,0,23,0,22,0\n8,0,10,0,16,0,7,0,20,0,3,0\n25,0,14,0,17,0,4,0,13,0,12,0\n5,0,11,0,3,0,24,0,9,0,19,0\n"
  },
  {
    "path": "schedules/25_6.csv",
    "content": "16,0,9,0,22,0,23,0,5,0,6,0\n2,0,12,0,7,0,19,0,21,0,1,0\n17,0,8,0,25,0,10,0,24,0,20,0\n3,0,15,0,4,0,14,0,18,0,11,0\n13,0,5,0,22,0,8,0,24,0,12,0\n18,0,4,0,19,0,1,0,11,0,16,0\n20,0,6,0,14,0,13,0,2,0,23,0\n25,0,3,0,21,0,17,0,9,0,15,0\n7,0,24,0,11,0,10,0,14,0,2,0\n22,0,23,0,8,0,17,0,19,0,3,0\n10,0,6,0,16,0,1,0,15,0,13,0\n20,0,9,0,4,0,7,0,21,0,5,0\n25,0,2,0,15,0,18,0,12,0,22,0\n20,0,19,0,16,0,3,0,24,0,9,0\n1,0,5,0,18,0,21,0,23,0,10,0\n8,0,13,0,6,0,25,0,4,0,7,0\n14,0,12,0,1,0,11,0,17,0,20,0\n4,0,10,0,13,0,15,0,22,0,19,0\n9,0,21,0,2,0,16,0,8,0,14,0\n23,0,3,0,7,0,5,0,11,0,25,0\n17,0,18,0,24,0,12,0,6,0,9,0\n22,0,3,0,11,0,21,0,20,0,13,0\n10,0,17,0,12,0,16,0,2,0,4,0\n14,0,19,0,5,0,6,0,18,0,25,0\n15,0,24,0,23,0,1,0,7,0,8,0\n"
  },
  {
    "path": "schedules/25_7.csv",
    "content": "10,0,25,0,24,0,2,0,22,0,3,0\n8,0,12,0,21,0,20,0,6,0,11,0\n13,0,1,0,17,0,14,0,16,0,19,0\n4,0,5,0,18,0,9,0,7,0,15,0\n10,0,19,0,1,0,23,0,6,0,21,0\n18,0,13,0,24,0,12,0,25,0,5,0\n23,0,20,0,22,0,17,0,3,0,16,0\n2,0,15,0,4,0,14,0,9,0,8,0\n7,0,24,0,6,0,11,0,18,0,21,0\n3,1,14,0,10,0,15,1,5,0,8,0\n1,1,22,0,16,0,11,1,2,0,7,0\n25,0,9,0,19,0,23,1,4,0,13,0\n17,0,20,0,7,0,12,0,15,0,10,0\n23,0,25,0,16,0,6,0,5,0,14,0\n3,0,12,0,24,0,19,0,20,0,4,0\n13,0,2,0,21,0,17,0,8,0,22,0\n11,0,9,0,12,0,1,0,18,0,3,0\n4,0,14,0,25,0,16,0,21,0,20,0\n8,0,7,0,1,0,24,0,23,0,17,0\n6,0,18,0,15,0,22,0,13,0,10,0\n5,0,2,0,9,0,19,0,11,0,17,0\n15,0,13,0,3,0,21,0,25,0,7,0\n6,0,10,0,2,0,9,0,4,0,24,0\n11,0,5,0,22,0,20,0,14,0,1,0\n19,0,8,0,23,0,12,0,18,0,16,0\n4,0,10,0,17,0,25,0,1,0,11,0\n15,0,21,0,24,0,16,0,13,0,9,0\n5,0,3,0,20,0,18,0,23,0,2,0\n14,0,22,0,7,0,19,0,12,0,6,0\n8,0,3,0,11,0,15,0,1,0,23,0\n"
  },
  {
    "path": "schedules/25_8.csv",
    "content": "10,0,19,0,4,0,21,0,15,0,20,0\n14,0,1,0,7,0,16,0,23,0,22,0\n13,0,8,0,12,0,17,0,5,0,9,0\n2,0,11,0,25,0,3,0,18,0,24,0\n6,0,23,0,4,0,16,0,19,0,7,0\n8,0,3,0,22,0,20,0,1,0,12,0\n14,0,11,0,18,0,15,0,5,0,10,0\n9,0,6,0,24,0,2,0,13,0,21,0\n17,0,8,0,18,0,25,0,7,0,20,0\n11,1,6,0,15,0,13,1,22,0,9,0\n24,1,4,0,5,0,1,1,23,0,3,0\n25,0,10,0,16,0,17,0,2,0,14,0\n21,0,12,0,3,0,19,0,18,0,13,0\n11,0,10,0,17,0,4,0,9,0,1,0\n16,0,5,0,2,0,21,0,14,0,24,0\n8,0,20,0,6,0,15,0,25,0,23,0\n22,0,7,0,11,0,12,0,19,0,14,0\n2,0,1,0,15,0,5,0,18,0,6,0\n25,0,4,0,3,0,22,0,10,0,21,0\n16,0,20,0,13,0,8,0,7,0,9,0\n24,0,23,0,19,0,12,0,17,0,6,0\n21,0,9,0,18,0,14,0,8,0,4,0\n15,0,7,0,12,0,25,0,1,0,24,0\n19,0,22,0,5,0,10,0,20,0,2,0\n17,0,23,0,13,0,16,0,3,0,11,0\n14,0,9,0,25,0,1,0,19,0,8,0\n3,0,6,0,2,0,4,0,13,0,11,0\n21,0,7,0,5,0,12,0,10,0,23,0\n16,0,24,0,17,0,22,0,15,0,18,0\n20,0,5,0,14,0,13,0,25,0,6,0\n12,0,22,0,24,0,16,0,18,0,4,0\n20,0,19,0,17,0,1,0,21,0,11,0\n9,0,3,0,15,0,7,0,2,0,23,0\n10,0,13,0,1,0,8,0,11,0,24,0\n"
  },
  {
    "path": "schedules/25_9.csv",
    "content": "5,0,19,0,12,0,18,0,11,0,24,0\n16,0,2,0,3,0,21,0,7,0,25,0\n1,0,13,0,22,0,10,0,14,0,8,0\n15,0,4,0,6,0,17,0,9,0,20,0\n18,0,22,0,19,0,23,0,16,0,14,0\n24,0,10,0,9,0,8,0,2,0,13,0\n23,0,1,0,7,0,15,0,5,0,20,0\n11,0,6,0,17,0,12,0,21,0,3,0\n4,0,14,0,5,0,25,0,15,0,8,0\n12,1,20,0,13,0,7,1,6,0,19,0\n25,1,16,0,1,0,4,0,21,0,24,0\n2,0,18,0,17,0,22,0,11,0,23,0\n10,0,15,0,19,0,9,0,3,0,6,0\n4,0,11,0,16,0,12,0,1,0,14,0\n8,0,7,0,20,0,10,0,21,0,18,0\n2,0,22,0,5,0,3,0,17,0,13,0\n24,0,25,0,6,0,23,0,9,0,21,0\n22,0,8,0,16,0,2,0,12,0,15,0\n5,0,10,0,23,0,3,0,4,0,19,0\n18,0,25,0,9,0,20,0,1,0,11,0\n17,0,14,0,7,0,24,0,13,0,19,0\n20,0,23,0,3,0,9,0,1,0,4,0\n5,0,8,0,17,0,10,0,16,0,6,0\n21,0,15,0,22,0,11,0,25,0,13,0\n24,0,2,0,14,0,18,0,12,0,7,0\n21,0,8,0,1,0,19,0,5,0,9,0\n3,0,7,0,24,0,22,0,6,0,20,0\n4,0,18,0,13,0,15,0,16,0,17,0\n10,0,12,0,11,0,2,0,25,0,23,0\n14,0,21,0,20,0,4,0,17,0,22,0\n3,0,11,0,15,0,23,0,8,0,24,0\n6,0,1,0,2,0,14,0,25,0,19,0\n9,0,16,0,12,0,5,0,13,0,7,0\n10,0,3,0,25,0,18,0,14,0,15,0\n12,0,17,0,23,0,1,0,24,0,5,0\n11,0,8,0,19,0,9,0,7,0,22,0\n13,0,21,0,6,0,20,0,16,0,18,0\n4,0,12,0,25,0,2,0,10,0,7,0\n"
  },
  {
    "path": "schedules/26_1.csv",
    "content": "3,0,14,0,9,0,10,0,16,0,21,0\n25,0,20,0,17,0,5,0,7,0,13,0\n12,0,8,0,26,0,23,0,4,0,15,0\n6,0,18,0,22,0,1,0,24,0,2,0\n11,0,9,1,23,1,19,0,15,1,10,1\n"
  },
  {
    "path": "schedules/26_10.csv",
    "content": "22,0,13,0,5,0,19,0,15,0,12,0\n25,0,6,0,23,0,20,0,18,0,17,0\n16,0,7,0,2,0,3,0,1,0,21,0\n8,0,26,0,14,0,10,0,9,0,11,0\n24,0,7,0,23,0,4,0,22,0,25,0\n10,0,26,0,16,0,3,0,13,0,2,0\n18,0,15,0,14,0,19,0,6,0,17,0\n12,0,24,0,20,0,9,0,1,0,4,0\n21,0,5,0,18,0,8,0,11,0,22,0\n17,1,26,0,2,0,9,1,25,0,19,0\n10,1,20,0,13,0,7,1,15,0,1,0\n11,0,3,0,6,0,14,0,5,0,24,0\n21,0,4,0,8,0,23,0,12,0,16,0\n17,0,22,0,7,0,9,0,24,0,2,0\n13,0,23,0,4,0,18,0,19,0,11,0\n25,0,12,0,1,0,3,0,8,0,15,0\n6,0,5,0,26,0,21,0,14,0,16,0\n20,0,23,0,11,0,10,0,2,0,18,0\n22,0,14,0,1,0,13,0,25,0,8,0\n16,0,4,0,19,0,7,0,6,0,10,0\n12,0,26,0,9,0,21,0,15,0,20,0\n3,0,5,0,23,0,17,0,24,0,8,0\n6,0,20,0,9,0,11,0,13,0,16,0\n14,0,12,0,3,0,7,0,25,0,18,0\n10,0,24,0,19,0,1,0,17,0,5,0\n15,0,4,0,2,0,21,0,26,0,22,0\n3,0,7,0,19,0,8,0,20,0,5,0\n10,0,14,0,25,0,22,0,16,0,24,0\n12,0,11,0,4,0,2,0,1,0,6,0\n9,0,21,0,17,0,13,0,18,0,26,0\n15,0,25,0,16,0,23,0,2,0,8,0\n11,0,26,0,24,0,7,0,12,0,13,0\n15,0,9,0,5,0,21,0,23,0,10,0\n17,0,3,0,4,0,6,0,14,0,22,0\n1,0,18,0,8,0,20,0,19,0,26,0\n2,0,17,0,25,0,12,0,5,0,10,0\n13,0,24,0,15,0,18,0,6,0,4,0\n1,0,20,0,16,0,19,0,23,0,14,0\n11,0,21,0,7,0,3,0,9,0,22,0\n8,0,6,0,10,0,1,0,23,0,26,0\n9,0,18,0,16,0,5,0,7,0,4,0\n2,0,20,0,22,0,12,0,11,0,17,0\n19,0,13,0,21,0,25,0,3,0,24,0\n15,0,17,0,10,0,14,0,9,0,7,0\n"
  },
  {
    "path": "schedules/26_11.csv",
    "content": "14,0,19,0,17,0,22,0,23,0,2,0\n10,0,21,0,8,0,7,0,18,0,13,0\n16,0,24,0,15,0,9,0,5,0,11,0\n3,0,6,0,20,0,12,0,4,0,25,0\n1,0,13,0,14,0,26,0,23,0,16,0\n2,0,18,0,5,0,7,0,19,0,4,0\n24,0,6,0,1,0,20,0,15,0,10,0\n26,0,21,0,3,0,12,0,11,0,17,0\n22,0,25,0,18,0,9,0,8,0,14,0\n21,1,23,0,1,0,20,1,26,0,7,0\n2,0,10,0,3,0,11,0,25,0,24,0\n13,0,17,0,15,0,9,0,19,0,12,0\n22,0,6,0,4,0,16,0,5,0,8,0\n11,0,19,0,20,0,2,0,21,0,14,0\n25,0,8,0,26,0,1,0,15,0,5,0\n18,0,12,0,13,0,16,0,4,0,3,0\n9,0,23,0,24,0,7,0,6,0,17,0\n10,0,11,0,13,0,22,0,3,0,1,0\n21,0,14,0,5,0,19,0,9,0,23,0\n16,0,17,0,25,0,15,0,6,0,2,0\n7,0,10,0,22,0,20,0,8,0,12,0\n26,0,24,0,19,0,18,0,4,0,23,0\n15,0,9,0,25,0,12,0,1,0,10,0\n18,0,20,0,16,0,2,0,3,0,8,0\n14,0,4,0,11,0,5,0,7,0,17,0\n6,0,21,0,24,0,22,0,26,0,13,0\n4,0,8,0,15,0,25,0,23,0,10,0\n14,0,17,0,20,0,1,0,18,0,11,0\n5,0,22,0,19,0,21,0,6,0,16,0\n7,0,2,0,9,0,13,0,24,0,3,0\n12,0,11,0,15,0,26,0,5,0,18,0\n17,0,3,0,23,0,1,0,19,0,8,0\n7,0,25,0,21,0,4,0,20,0,9,0\n26,0,6,0,13,0,12,0,24,0,2,0\n22,0,16,0,9,0,10,0,14,0,7,0\n2,0,13,0,25,0,5,0,23,0,20,0\n1,0,4,0,17,0,10,0,16,0,19,0\n11,0,26,0,12,0,6,0,18,0,14,0\n8,0,22,0,24,0,21,0,15,0,3,0\n10,0,9,0,18,0,2,0,4,0,26,0\n5,0,3,0,12,0,21,0,17,0,22,0\n15,0,23,0,8,0,20,0,14,0,24,0\n11,0,16,0,7,0,19,0,25,0,6,0\n1,0,9,0,26,0,13,0,17,0,8,0\n23,0,7,0,12,0,15,0,11,0,22,0\n6,0,5,0,10,0,13,0,21,0,20,0\n19,0,3,0,18,0,14,0,16,0,25,0\n2,0,1,0,20,0,24,0,4,0,21,0\n"
  },
  {
    "path": "schedules/26_12.csv",
    "content": "25,0,7,0,5,0,21,0,9,0,11,0\n8,0,22,0,26,0,6,0,24,0,2,0\n12,0,19,0,18,0,16,0,10,0,1,0\n14,0,20,0,3,0,17,0,15,0,13,0\n23,0,10,0,2,0,4,0,16,0,12,0\n6,0,1,0,17,0,22,0,3,0,9,0\n11,0,5,0,4,0,20,0,19,0,26,0\n21,0,23,0,25,0,24,0,8,0,15,0\n13,0,14,0,11,0,18,0,7,0,3,0\n2,0,9,0,1,0,21,0,5,0,16,0\n13,0,8,0,4,0,18,0,22,0,23,0\n7,0,24,0,14,0,12,0,6,0,26,0\n19,0,25,0,10,0,15,0,20,0,17,0\n16,0,22,0,14,0,12,0,7,0,8,0\n11,0,21,0,3,0,25,0,4,0,2,0\n19,0,9,0,17,0,13,0,20,0,23,0\n6,0,5,0,15,0,10,0,24,0,18,0\n1,0,22,0,7,0,26,0,23,0,11,0\n19,0,15,0,2,0,25,0,14,0,9,0\n20,0,12,0,10,0,18,0,13,0,1,0\n26,0,21,0,24,0,3,0,16,0,8,0\n17,0,5,0,23,0,4,0,6,0,22,0\n13,0,16,0,24,0,10,0,9,0,7,0\n2,0,20,0,5,0,3,0,6,0,25,0\n21,0,1,0,8,0,14,0,4,0,19,0\n12,0,11,0,18,0,26,0,15,0,17,0\n20,0,25,0,22,0,1,0,8,0,14,0\n15,0,5,0,3,0,24,0,10,0,11,0\n23,0,12,0,6,0,21,0,9,0,13,0\n17,0,18,0,4,0,7,0,26,0,16,0\n2,0,22,0,21,0,19,0,15,0,1,0\n11,0,8,0,9,0,3,0,10,0,12,0\n13,0,5,0,26,0,19,0,23,0,24,0\n20,0,6,0,18,0,2,0,7,0,17,0\n4,0,14,0,26,0,25,0,16,0,15,0\n1,0,3,0,23,0,21,0,8,0,17,0\n16,0,7,0,20,0,5,0,10,0,14,0\n19,0,11,0,22,0,6,0,13,0,2,0\n12,0,9,0,24,0,25,0,18,0,4,0\n6,0,10,0,26,0,1,0,23,0,20,0\n17,0,3,0,24,0,18,0,2,0,11,0\n9,0,14,0,15,0,22,0,4,0,5,0\n21,0,7,0,19,0,12,0,25,0,13,0\n8,0,10,0,15,0,16,0,17,0,11,0\n9,0,18,0,26,0,21,0,14,0,22,0\n23,0,8,0,7,0,12,0,5,0,2,0\n1,0,24,0,25,0,13,0,3,0,19,0\n16,0,6,0,18,0,4,0,20,0,21,0\n12,0,14,0,17,0,1,0,5,0,24,0\n10,0,22,0,13,0,26,0,2,0,3,0\n7,0,4,0,15,0,6,0,19,0,8,0\n16,0,23,0,9,0,20,0,25,0,11,0\n"
  },
  {
    "path": "schedules/26_13.csv",
    "content": "1,0,10,0,5,0,15,0,18,0,4,0\n8,0,2,0,3,0,20,0,21,0,6,0\n12,0,13,0,25,0,23,0,11,0,9,0\n26,0,19,0,17,0,7,0,22,0,16,0\n14,0,11,0,21,0,24,0,8,0,2,0\n1,0,16,0,9,0,3,0,23,0,5,0\n12,0,26,0,24,0,4,0,6,0,19,0\n15,0,25,0,17,0,14,0,7,0,10,0\n13,0,22,0,2,0,18,0,20,0,1,0\n26,1,14,0,23,0,10,1,24,0,4,0\n21,1,11,0,13,0,6,1,9,0,15,0\n7,0,12,0,8,0,5,0,19,0,22,0\n16,0,20,0,3,0,18,0,25,0,17,0\n13,0,24,0,9,0,7,0,1,0,23,0\n4,0,22,0,3,0,2,0,5,0,14,0\n20,0,11,0,25,0,16,0,26,0,19,0\n15,0,21,0,8,0,17,0,18,0,12,0\n6,0,13,0,14,0,10,0,3,0,19,0\n17,0,24,0,11,0,4,0,9,0,8,0\n23,0,10,0,15,0,16,0,5,0,21,0\n6,0,22,0,18,0,7,0,25,0,1,0\n2,0,20,0,10,0,12,0,26,0,9,0\n6,0,16,0,13,0,24,0,15,0,22,0\n5,0,8,0,20,0,26,0,1,0,7,0\n18,0,4,0,23,0,14,0,12,0,3,0\n19,0,21,0,25,0,2,0,17,0,11,0\n8,0,14,0,1,0,10,0,22,0,12,0\n25,0,18,0,5,0,23,0,13,0,26,0\n7,0,2,0,9,0,11,0,4,0,21,0\n17,0,15,0,16,0,6,0,24,0,20,0\n3,0,25,0,9,0,19,0,2,0,18,0\n20,0,22,0,12,0,16,0,10,0,11,0\n15,0,26,0,5,0,8,0,14,0,19,0\n1,0,23,0,17,0,3,0,24,0,21,0\n7,0,6,0,5,0,4,0,13,0,12,0\n18,0,17,0,10,0,23,0,22,0,21,0\n20,0,9,0,14,0,13,0,8,0,25,0\n1,0,24,0,19,0,4,0,16,0,2,0\n11,0,26,0,7,0,15,0,6,0,3,0\n5,0,24,0,18,0,19,0,9,0,12,0\n26,0,4,0,14,0,21,0,17,0,20,0\n2,0,15,0,1,0,25,0,10,0,6,0\n8,0,16,0,23,0,13,0,7,0,3,0\n22,0,1,0,25,0,11,0,15,0,12,0\n17,0,4,0,7,0,2,0,9,0,26,0\n13,0,5,0,21,0,16,0,14,0,18,0\n23,0,19,0,6,0,22,0,8,0,11,0\n10,0,3,0,18,0,20,0,24,0,7,0\n2,0,6,0,12,0,8,0,17,0,5,0\n23,0,21,0,24,0,13,0,15,0,20,0\n19,0,11,0,3,0,10,0,1,0,4,0\n22,0,14,0,9,0,26,0,16,0,25,0\n7,0,21,0,18,0,6,0,1,0,11,0\n3,0,10,0,26,0,17,0,22,0,13,0\n24,0,16,0,15,0,14,0,2,0,25,0\n19,0,20,0,4,0,12,0,5,0,23,0\n9,0,10,0,21,0,8,0,26,0,6,0\n"
  },
  {
    "path": "schedules/26_14.csv",
    "content": "25,0,4,0,2,0,14,0,13,0,17,0\n22,0,19,0,24,0,8,0,18,0,20,0\n12,0,1,0,26,0,16,0,6,0,9,0\n11,0,3,0,23,0,5,0,7,0,21,0\n15,0,12,0,24,0,10,0,1,0,9,0\n26,0,5,0,16,0,25,0,14,0,7,0\n20,0,23,0,19,0,15,0,10,0,4,0\n2,0,22,0,6,0,11,0,18,0,3,0\n17,0,21,0,26,0,13,0,8,0,24,0\n25,1,15,0,6,0,2,1,20,0,3,0\n18,0,17,0,9,0,7,0,16,0,11,0\n13,0,10,0,23,0,22,0,1,0,5,0\n8,0,21,0,14,0,19,0,4,0,12,0\n17,0,5,0,10,0,2,0,18,0,24,0\n4,0,3,0,6,0,20,0,12,0,9,0\n7,0,13,0,26,0,23,0,11,0,8,0\n19,0,1,0,15,0,16,0,14,0,25,0\n21,0,6,0,9,0,22,0,17,0,20,0\n14,0,1,0,5,0,26,0,19,0,11,0\n24,0,4,0,2,0,21,0,15,0,23,0\n25,0,13,0,8,0,7,0,12,0,18,0\n16,0,22,0,4,0,3,0,10,0,14,0\n8,0,17,0,15,0,1,0,23,0,6,0\n3,0,7,0,24,0,18,0,26,0,20,0\n19,0,5,0,13,0,12,0,2,0,21,0\n9,0,11,0,22,0,10,0,25,0,16,0\n19,0,24,0,6,0,26,0,4,0,17,0\n13,0,15,0,11,0,5,0,2,0,10,0\n22,0,8,0,12,0,20,0,23,0,16,0\n18,0,9,0,25,0,21,0,1,0,3,0\n7,0,20,0,6,0,14,0,10,0,5,0\n2,0,17,0,26,0,18,0,25,0,23,0\n7,0,9,0,8,0,13,0,14,0,4,0\n21,0,19,0,3,0,15,0,16,0,22,0\n1,0,12,0,25,0,11,0,24,0,17,0\n20,0,15,0,14,0,22,0,3,0,8,0\n23,0,11,0,5,0,4,0,21,0,18,0\n24,0,7,0,1,0,9,0,19,0,2,0\n6,0,26,0,10,0,12,0,13,0,16,0\n9,0,23,0,24,0,19,0,22,0,18,0\n12,0,10,0,14,0,15,0,17,0,7,0\n4,0,3,0,5,0,8,0,26,0,1,0\n25,0,11,0,20,0,2,0,13,0,21,0\n16,0,17,0,19,0,6,0,5,0,8,0\n3,0,25,0,26,0,13,0,9,0,15,0\n22,0,14,0,23,0,11,0,6,0,12,0\n10,0,21,0,20,0,1,0,2,0,7,0\n16,0,18,0,13,0,4,0,24,0,23,0\n3,0,12,0,17,0,19,0,7,0,22,0\n11,0,4,0,1,0,24,0,25,0,10,0\n6,0,14,0,18,0,15,0,26,0,21,0\n8,0,2,0,16,0,20,0,5,0,9,0\n21,0,25,0,22,0,15,0,7,0,4,0\n16,0,8,0,1,0,23,0,2,0,6,0\n5,0,20,0,12,0,3,0,26,0,9,0\n18,0,11,0,10,0,14,0,19,0,17,0\n24,0,21,0,16,0,13,0,3,0,12,0\n4,0,7,0,9,0,25,0,17,0,23,0\n2,0,14,0,11,0,26,0,22,0,24,0\n5,0,15,0,18,0,1,0,20,0,13,0\n10,0,8,0,2,0,19,0,6,0,25,0\n"
  },
  {
    "path": "schedules/26_2.csv",
    "content": "16,0,17,0,5,0,3,0,18,0,10,0\n8,0,4,0,19,0,23,0,22,0,6,0\n7,0,24,0,13,0,2,0,14,0,25,0\n20,0,15,0,12,0,9,0,26,0,21,0\n11,0,14,0,22,0,1,0,16,0,6,0\n17,0,15,0,26,0,8,0,5,0,13,0\n25,0,18,0,4,0,11,0,9,0,12,0\n24,0,21,0,1,0,3,0,19,0,7,0\n10,0,23,0,15,1,20,0,2,0,11,1\n"
  },
  {
    "path": "schedules/26_3.csv",
    "content": "20,0,9,0,22,0,16,0,15,0,18,0\n6,0,23,0,5,0,11,0,7,0,13,0\n19,0,14,0,17,0,3,0,1,0,21,0\n2,0,10,0,25,0,8,0,12,0,26,0\n4,0,14,0,21,0,24,0,23,0,15,0\n16,0,19,0,20,0,10,0,5,0,26,0\n18,0,24,0,13,0,17,0,25,0,12,0\n6,0,22,0,3,0,4,0,9,0,2,0\n8,0,11,0,24,0,7,0,1,0,20,0\n2,0,18,0,21,0,4,0,16,0,13,0\n7,0,23,0,25,0,1,0,9,0,10,0\n12,0,6,0,15,0,3,0,8,0,19,0\n22,0,26,0,17,0,11,0,5,0,14,0\n"
  },
  {
    "path": "schedules/26_4.csv",
    "content": "18,0,7,0,25,0,14,0,6,0,17,0\n9,0,8,0,26,0,16,0,22,0,21,0\n1,0,12,0,15,0,23,0,4,0,5,0\n24,0,10,0,19,0,20,0,2,0,3,0\n13,0,22,0,26,0,11,0,14,0,1,0\n17,0,5,0,18,0,20,0,21,0,9,0\n2,0,10,0,4,0,25,0,8,0,13,0\n11,0,16,0,3,0,12,0,7,0,24,0\n19,0,6,0,21,0,23,0,15,0,22,0\n12,1,20,0,11,0,2,1,25,0,9,0\n6,1,13,0,1,0,17,1,16,0,19,0\n3,0,24,0,23,0,8,0,5,0,14,0\n7,0,15,0,4,0,10,0,26,0,18,0\n21,0,17,0,1,0,2,0,11,0,24,0\n25,0,5,0,12,0,22,0,18,0,19,0\n14,0,20,0,10,0,16,0,4,0,6,0\n7,0,8,0,3,0,13,0,15,0,9,0\n23,0,12,0,6,0,26,0,2,0,17,0\n"
  },
  {
    "path": "schedules/26_5.csv",
    "content": "6,0,19,0,21,0,20,0,23,0,25,0\n12,0,1,0,26,0,11,0,4,0,2,0\n18,0,5,0,8,0,10,0,9,0,13,0\n7,0,22,0,24,0,14,0,17,0,15,0\n3,0,19,0,9,0,16,0,12,0,2,0\n22,0,25,0,14,0,1,0,20,0,13,0\n17,0,10,0,21,0,11,0,5,0,3,0\n23,0,24,0,26,0,7,0,16,0,18,0\n4,0,8,0,1,0,15,0,6,0,5,0\n10,1,20,0,26,0,24,1,13,0,3,0\n16,0,23,0,19,0,11,0,8,0,22,0\n25,0,6,0,4,0,9,0,7,0,17,0\n14,0,18,0,2,0,12,0,21,0,15,0\n5,0,10,0,1,0,7,0,19,0,26,0\n15,0,20,0,9,0,17,0,23,0,2,0\n18,0,25,0,11,0,22,0,6,0,3,0\n13,0,12,0,4,0,24,0,16,0,21,0\n14,0,26,0,3,0,8,0,9,0,6,0\n2,0,15,0,24,0,25,0,5,0,16,0\n8,0,7,0,10,0,12,0,22,0,20,0\n18,0,13,0,21,0,17,0,19,0,1,0\n11,0,23,0,10,0,4,0,14,0,24,0\n"
  },
  {
    "path": "schedules/26_6.csv",
    "content": "7,0,17,0,5,0,1,0,24,0,13,0\n6,0,21,0,12,0,23,0,8,0,18,0\n25,0,20,0,19,0,22,0,16,0,14,0\n26,0,9,0,4,0,10,0,11,0,2,0\n15,0,14,0,13,0,3,0,12,0,22,0\n9,0,23,0,11,0,1,0,20,0,16,0\n8,0,2,0,4,0,5,0,3,0,25,0\n18,0,21,0,15,0,17,0,26,0,24,0\n10,0,6,0,4,0,7,0,19,0,12,0\n18,0,14,0,11,0,15,0,23,0,5,0\n3,0,24,0,9,0,19,0,1,0,26,0\n8,0,22,0,17,0,7,0,16,0,2,0\n6,0,25,0,13,0,21,0,20,0,10,0\n23,0,7,0,1,0,2,0,14,0,26,0\n5,0,6,0,8,0,15,0,9,0,25,0\n16,0,18,0,24,0,4,0,20,0,13,0\n3,0,10,0,19,0,11,0,17,0,21,0\n22,0,25,0,7,0,12,0,18,0,9,0\n1,0,2,0,3,0,20,0,6,0,15,0\n26,0,5,0,12,0,17,0,16,0,19,0\n23,0,24,0,14,0,8,0,10,0,13,0\n22,0,21,0,1,0,11,0,4,0,5,0\n16,0,3,0,15,0,18,0,7,0,10,0\n20,0,8,0,26,0,22,0,13,0,19,0\n2,0,25,0,12,0,11,0,24,0,6,0\n9,0,14,0,17,0,21,0,4,0,23,0\n"
  },
  {
    "path": "schedules/26_7.csv",
    "content": "1,0,19,0,10,0,5,0,8,0,3,0\n23,0,4,0,15,0,18,0,17,0,6,0\n7,0,11,0,25,0,22,0,26,0,20,0\n9,0,14,0,21,0,24,0,13,0,2,0\n12,0,19,0,6,0,16,0,25,0,18,0\n13,0,3,0,23,0,11,0,2,0,17,0\n12,0,14,0,5,0,7,0,21,0,1,0\n8,0,15,0,22,0,9,0,10,0,4,0\n20,0,24,0,23,0,26,0,16,0,1,0\n25,1,6,0,10,0,13,1,7,0,17,0\n4,1,8,0,18,0,26,1,24,0,14,0\n12,0,16,0,22,0,11,0,3,0,9,0\n21,0,2,0,5,0,15,0,19,0,20,0\n8,0,26,0,17,0,12,0,7,0,3,0\n18,0,1,0,22,0,13,0,10,0,21,0\n14,0,20,0,25,0,23,0,19,0,9,0\n16,0,11,0,4,0,24,0,5,0,15,0\n6,0,1,0,13,0,2,0,8,0,20,0\n7,0,19,0,24,0,12,0,10,0,23,0\n2,0,18,0,9,0,11,0,26,0,5,0\n25,0,17,0,4,0,16,0,14,0,3,0\n6,0,15,0,26,0,22,0,21,0,23,0\n20,0,3,0,10,0,12,0,4,0,2,0\n21,0,11,0,15,0,25,0,1,0,8,0\n16,0,9,0,13,0,14,0,7,0,18,0\n17,0,5,0,19,0,6,0,22,0,24,0\n12,0,11,0,13,0,10,0,15,0,14,0\n17,0,9,0,1,0,26,0,19,0,4,0\n8,0,16,0,24,0,22,0,2,0,25,0\n3,0,21,0,18,0,6,0,7,0,20,0\n23,0,25,0,26,0,5,0,13,0,4,0\n"
  },
  {
    "path": "schedules/26_8.csv",
    "content": "9,0,5,0,26,0,4,0,25,0,16,0\n22,0,8,0,15,0,19,0,20,0,21,0\n13,0,11,0,2,0,3,0,12,0,10,0\n7,0,14,0,24,0,18,0,17,0,6,0\n1,0,20,0,5,0,23,0,2,0,9,0\n22,0,21,0,3,0,19,0,25,0,7,0\n14,0,10,0,4,0,23,0,11,0,24,0\n16,0,8,0,1,0,26,0,13,0,6,0\n18,0,15,0,20,0,17,0,12,0,14,0\n21,1,2,0,26,0,8,1,6,0,24,0\n18,0,10,0,1,0,16,0,17,0,3,0\n4,0,23,0,19,0,12,0,25,0,15,0\n11,0,7,0,9,0,22,0,5,0,13,0\n1,0,25,0,6,0,12,0,4,0,2,0\n3,0,19,0,24,0,20,0,13,0,14,0\n16,0,5,0,11,0,17,0,8,0,21,0\n15,0,23,0,7,0,10,0,26,0,22,0\n18,0,2,0,24,0,9,0,1,0,19,0\n16,0,6,0,21,0,25,0,23,0,14,0\n18,0,22,0,9,0,11,0,3,0,15,0\n8,0,20,0,10,0,7,0,5,0,4,0\n17,0,13,0,19,0,26,0,12,0,18,0\n25,0,20,0,9,0,10,0,6,0,11,0\n1,0,12,0,13,0,16,0,24,0,22,0\n7,0,17,0,2,0,21,0,4,0,15,0\n14,0,3,0,26,0,23,0,5,0,8,0\n19,0,12,0,11,0,16,0,20,0,7,0\n10,0,2,0,25,0,18,0,8,0,14,0\n4,0,17,0,9,0,21,0,23,0,13,0\n3,0,6,0,5,0,1,0,15,0,24,0\n26,0,16,0,23,0,22,0,2,0,20,0\n13,0,25,0,8,0,15,0,17,0,10,0\n11,0,14,0,21,0,26,0,7,0,1,0\n22,0,4,0,6,0,18,0,19,0,5,0\n12,0,24,0,21,0,3,0,9,0,8,0\n"
  },
  {
    "path": "schedules/26_9.csv",
    "content": "1,0,2,0,12,0,25,0,4,0,22,0\n23,0,6,0,3,0,20,0,24,0,7,0\n9,0,10,0,16,0,18,0,8,0,11,0\n5,0,17,0,13,0,26,0,15,0,19,0\n21,0,1,0,25,0,14,0,23,0,9,0\n20,0,16,0,11,0,2,0,8,0,10,0\n15,0,3,0,13,0,21,0,4,0,6,0\n14,0,5,0,19,0,18,0,24,0,12,0\n22,0,26,0,10,0,17,0,7,0,4,0\n20,0,6,0,12,0,23,0,19,0,13,0\n2,0,24,0,14,0,17,0,9,0,15,0\n7,0,11,0,25,0,26,0,1,0,3,0\n21,0,16,0,8,0,22,0,18,0,5,0\n14,0,11,0,26,0,4,0,10,0,15,0\n6,0,1,0,7,0,21,0,2,0,17,0\n3,0,8,0,9,0,12,0,23,0,22,0\n13,0,18,0,16,0,25,0,5,0,24,0\n19,0,21,0,3,0,20,0,2,0,9,0\n18,0,23,0,10,0,13,0,24,0,1,0\n4,0,12,0,19,0,26,0,16,0,6,0\n25,0,17,0,20,0,15,0,11,0,22,0\n7,0,5,0,2,0,8,0,14,0,13,0\n4,0,26,0,23,0,18,0,19,0,20,0\n11,0,1,0,17,0,6,0,5,0,8,0\n7,0,9,0,22,0,3,0,14,0,10,0\n24,0,21,0,15,0,16,0,25,0,12,0\n1,0,22,0,14,0,13,0,6,0,11,0\n5,0,4,0,20,0,3,0,16,0,17,0\n7,0,15,0,12,0,21,0,18,0,9,0\n23,0,24,0,8,0,25,0,2,0,26,0\n19,0,9,0,6,0,10,0,11,0,5,0\n4,0,24,0,16,0,1,0,8,0,20,0\n18,0,15,0,14,0,2,0,22,0,3,0\n19,0,10,0,25,0,7,0,21,0,23,0\n26,0,17,0,24,0,13,0,12,0,9,0\n19,0,22,0,8,0,1,0,15,0,23,0\n2,0,11,0,4,0,21,0,12,0,5,0\n20,0,26,0,13,0,7,0,14,0,16,0\n18,0,25,0,3,0,6,0,10,0,17,0\n"
  },
  {
    "path": "schedules/27_1.csv",
    "content": "19,0,5,0,15,0,13,0,6,0,20,0\n10,0,1,0,21,0,26,0,2,0,7,0\n22,0,25,0,9,0,14,0,3,0,16,0\n24,0,4,0,17,0,23,0,12,0,11,0\n18,0,8,0,25,1,27,0,19,1,3,1\n"
  },
  {
    "path": "schedules/27_10.csv",
    "content": "3,0,22,0,11,0,23,0,20,0,17,0\n7,0,15,0,18,0,16,0,12,0,26,0\n10,0,9,0,13,0,24,0,19,0,5,0\n14,0,25,0,21,0,2,0,4,0,27,0\n8,0,6,0,24,0,1,0,12,0,7,0\n17,0,16,0,27,0,26,0,13,0,2,0\n19,0,22,0,25,0,14,0,8,0,18,0\n3,0,9,0,20,0,4,0,6,0,10,0\n5,0,11,0,15,0,1,0,21,0,23,0\n27,0,7,0,24,0,25,0,16,0,9,0\n6,0,11,0,14,0,22,0,8,0,10,0\n2,0,15,0,20,0,26,0,19,0,18,0\n4,0,1,0,5,0,13,0,17,0,12,0\n21,0,3,0,26,0,23,0,24,0,9,0\n17,0,22,0,18,0,27,0,10,0,1,0\n2,0,19,0,14,0,5,0,3,0,7,0\n12,0,6,0,20,0,21,0,11,0,16,0\n13,0,4,0,8,0,15,0,23,0,25,0\n9,0,5,0,2,0,6,0,21,0,17,0\n12,0,14,0,15,0,11,0,13,0,19,0\n24,0,3,0,4,0,23,0,27,0,8,0\n10,0,26,0,7,0,18,0,1,0,25,0\n16,0,20,0,4,0,22,0,2,0,24,0\n12,0,5,0,10,0,25,0,26,0,8,0\n9,0,15,0,17,0,14,0,20,0,22,0\n16,0,13,0,1,0,6,0,3,0,18,0\n19,0,27,0,21,0,23,0,11,0,7,0\n6,0,26,0,5,0,15,0,24,0,16,0\n17,0,7,0,8,0,11,0,9,0,27,0\n10,0,21,0,18,0,3,0,14,0,13,0\n23,0,4,0,25,0,20,0,19,0,1,0\n12,0,2,0,3,0,22,0,5,0,27,0\n16,0,6,0,19,0,4,0,11,0,17,0\n10,0,14,0,23,0,9,0,18,0,12,0\n1,0,2,0,8,0,26,0,20,0,24,0\n21,0,15,0,22,0,13,0,7,0,25,0\n5,0,23,0,16,0,17,0,14,0,1,0\n18,0,20,0,11,0,12,0,21,0,24,0\n10,0,3,0,25,0,15,0,26,0,27,0\n7,0,4,0,19,0,13,0,22,0,6,0\n8,0,9,0,21,0,2,0,10,0,16,0\n25,0,17,0,24,0,19,0,15,0,3,0\n1,0,11,0,26,0,14,0,4,0,9,0\n23,0,12,0,22,0,6,0,7,0,2,0\n27,0,18,0,13,0,20,0,5,0,8,0\n"
  },
  {
    "path": "schedules/27_11.csv",
    "content": "8,0,16,0,26,0,2,0,14,0,11,0\n15,0,9,0,24,0,21,0,19,0,25,0\n18,0,22,0,5,0,27,0,20,0,4,0\n12,0,1,0,10,0,17,0,13,0,23,0\n7,0,6,0,25,0,3,0,2,0,16,0\n20,0,10,0,13,0,26,0,21,0,24,0\n17,0,8,0,22,0,1,0,5,0,7,0\n6,0,9,0,19,0,18,0,11,0,12,0\n3,0,4,0,23,0,27,0,15,0,14,0\n7,1,17,0,19,0,6,1,16,0,13,0\n9,1,11,0,27,0,2,0,21,0,12,0\n26,0,5,0,14,0,24,0,15,0,1,0\n18,0,25,0,20,0,23,0,22,0,10,0\n8,0,4,0,21,0,3,0,19,0,1,0\n27,0,5,0,12,0,16,0,24,0,10,0\n17,0,3,0,26,0,15,0,11,0,23,0\n18,0,13,0,8,0,9,0,25,0,22,0\n7,0,14,0,4,0,2,0,6,0,20,0\n21,0,11,0,22,0,19,0,5,0,23,0\n2,0,17,0,1,0,18,0,24,0,20,0\n26,0,27,0,25,0,3,0,8,0,6,0\n15,0,7,0,16,0,4,0,12,0,9,0\n10,0,14,0,25,0,13,0,19,0,27,0\n20,0,12,0,3,0,17,0,15,0,4,0\n6,0,26,0,18,0,21,0,5,0,16,0\n7,0,13,0,24,0,8,0,11,0,23,0\n10,0,9,0,2,0,14,0,1,0,22,0\n11,0,13,0,4,0,17,0,6,0,21,0\n23,0,7,0,18,0,14,0,24,0,8,0\n19,0,22,0,15,0,16,0,1,0,26,0\n10,0,3,0,27,0,20,0,9,0,5,0\n2,0,25,0,1,0,12,0,8,0,19,0\n16,0,9,0,4,0,27,0,23,0,24,0\n21,0,18,0,10,0,15,0,25,0,3,0\n12,0,14,0,6,0,17,0,5,0,11,0\n2,0,13,0,26,0,20,0,22,0,7,0\n12,0,24,0,17,0,10,0,4,0,6,0\n8,0,5,0,2,0,9,0,23,0,26,0\n19,0,14,0,16,0,15,0,21,0,13,0\n3,0,11,0,7,0,1,0,18,0,27,0\n22,0,25,0,12,0,20,0,14,0,26,0\n7,0,27,0,21,0,18,0,9,0,17,0\n19,0,2,0,24,0,3,0,22,0,13,0\n1,0,6,0,23,0,5,0,25,0,4,0\n11,0,20,0,16,0,15,0,10,0,8,0\n9,0,1,0,13,0,4,0,2,0,18,0\n3,0,24,0,5,0,7,0,12,0,26,0\n23,0,21,0,14,0,22,0,6,0,27,0\n11,0,10,0,19,0,16,0,17,0,25,0\n20,0,15,0,6,0,8,0,7,0,9,0\n"
  },
  {
    "path": "schedules/27_12.csv",
    "content": "24,0,25,0,7,0,2,0,14,0,13,0\n19,0,27,0,20,0,21,0,8,0,12,0\n23,0,22,0,17,0,16,0,18,0,5,0\n6,0,26,0,11,0,1,0,15,0,10,0\n4,0,3,0,24,0,9,0,5,0,12,0\n19,0,23,0,15,0,10,0,2,0,6,0\n27,0,22,0,13,0,7,0,4,0,8,0\n11,0,1,0,21,0,3,0,14,0,16,0\n9,0,26,0,17,0,18,0,20,0,25,0\n21,0,7,0,3,0,15,0,2,0,23,0\n5,0,25,0,13,0,16,0,17,0,19,0\n24,0,10,0,22,0,8,0,27,0,1,0\n4,0,20,0,6,0,14,0,9,0,11,0\n26,0,12,0,1,0,18,0,23,0,27,0\n2,0,4,0,21,0,5,0,11,0,24,0\n16,0,12,0,22,0,7,0,6,0,25,0\n15,0,9,0,17,0,13,0,18,0,19,0\n8,0,14,0,10,0,3,0,20,0,26,0\n11,0,18,0,2,0,5,0,4,0,13,0\n10,0,3,0,19,0,7,0,26,0,21,0\n17,0,27,0,12,0,15,0,22,0,25,0\n9,0,20,0,23,0,1,0,14,0,24,0\n16,0,3,0,2,0,8,0,6,0,22,0\n9,0,14,0,4,0,19,0,21,0,23,0\n18,0,15,0,16,0,8,0,12,0,24,0\n6,0,27,0,5,0,17,0,10,0,20,0\n26,0,11,0,25,0,1,0,13,0,7,0\n20,0,21,0,5,0,4,0,17,0,22,0\n18,0,1,0,3,0,26,0,2,0,9,0\n15,0,25,0,27,0,24,0,23,0,6,0\n10,0,11,0,13,0,7,0,12,0,19,0\n16,0,8,0,4,0,14,0,26,0,27,0\n19,0,5,0,1,0,7,0,15,0,20,0\n22,0,18,0,14,0,10,0,16,0,13,0\n8,0,11,0,23,0,9,0,25,0,21,0\n17,0,2,0,24,0,12,0,6,0,3,0\n20,0,8,0,19,0,16,0,25,0,1,0\n5,0,14,0,23,0,12,0,11,0,15,0\n7,0,10,0,17,0,9,0,3,0,27,0\n13,0,6,0,21,0,4,0,18,0,24,0\n26,0,22,0,1,0,2,0,7,0,27,0\n12,0,25,0,18,0,10,0,4,0,23,0\n6,0,19,0,9,0,24,0,16,0,26,0\n2,0,8,0,5,0,11,0,17,0,14,0\n15,0,13,0,3,0,21,0,20,0,22,0\n12,0,14,0,4,0,1,0,17,0,6,0\n10,0,18,0,5,0,3,0,19,0,22,0\n9,0,7,0,24,0,27,0,16,0,11,0\n13,0,26,0,23,0,8,0,21,0,15,0\n2,0,20,0,12,0,25,0,17,0,10,0\n6,0,14,0,7,0,18,0,9,0,8,0\n13,0,20,0,24,0,2,0,1,0,23,0\n25,0,4,0,19,0,22,0,11,0,3,0\n16,0,21,0,27,0,15,0,5,0,26,0\n"
  },
  {
    "path": "schedules/27_13.csv",
    "content": "19,0,11,0,4,0,15,0,18,0,6,0\n21,0,24,0,27,0,20,0,13,0,5,0\n17,0,7,0,12,0,22,0,2,0,8,0\n16,0,3,0,26,0,1,0,9,0,25,0\n10,0,23,0,24,0,14,0,11,0,12,0\n3,0,6,0,9,0,18,0,8,0,1,0\n15,0,10,0,5,0,16,0,26,0,17,0\n7,0,23,0,25,0,2,0,19,0,21,0\n27,0,22,0,13,0,4,0,14,0,20,0\n21,1,23,0,2,0,19,1,5,0,24,0\n11,1,20,0,1,0,7,0,15,0,14,0\n16,0,13,0,18,0,26,0,27,0,12,0\n22,0,10,0,4,0,9,0,17,0,6,0\n3,0,25,0,13,0,8,0,21,0,14,0\n20,0,7,0,19,0,27,0,23,0,2,0\n4,0,1,0,6,0,5,0,12,0,9,0\n18,0,22,0,26,0,25,0,17,0,10,0\n16,0,15,0,11,0,8,0,3,0,24,0\n6,0,13,0,2,0,20,0,9,0,22,0\n16,0,27,0,7,0,17,0,23,0,3,0\n5,0,11,0,1,0,25,0,26,0,4,0\n14,0,8,0,24,0,10,0,19,0,12,0\n18,0,21,0,25,0,15,0,4,0,23,0\n10,0,2,0,3,0,6,0,5,0,26,0\n17,0,18,0,14,0,21,0,13,0,1,0\n11,0,8,0,12,0,20,0,19,0,16,0\n27,0,9,0,15,0,7,0,22,0,24,0\n11,0,3,0,21,0,18,0,20,0,2,0\n15,0,22,0,12,0,9,0,8,0,7,0\n19,0,4,0,24,0,5,0,14,0,16,0\n6,0,25,0,10,0,13,0,27,0,1,0\n26,0,23,0,8,0,17,0,4,0,2,0\n21,0,27,0,20,0,1,0,6,0,15,0\n16,0,9,0,10,0,3,0,14,0,19,0\n22,0,5,0,17,0,24,0,12,0,25,0\n18,0,23,0,11,0,7,0,13,0,26,0\n16,0,22,0,2,0,15,0,21,0,5,0\n13,0,9,0,19,0,7,0,4,0,3,0\n27,0,18,0,24,0,17,0,6,0,11,0\n14,0,25,0,1,0,12,0,20,0,23,0\n8,0,21,0,4,0,10,0,26,0,11,0\n17,0,3,0,20,0,22,0,25,0,19,0\n7,0,1,0,26,0,10,0,27,0,8,0\n12,0,16,0,6,0,24,0,13,0,23,0\n2,0,15,0,14,0,18,0,5,0,9,0\n11,0,10,0,23,0,22,0,3,0,27,0\n26,0,24,0,20,0,4,0,12,0,18,0\n6,0,7,0,21,0,16,0,14,0,25,0\n1,0,17,0,19,0,15,0,13,0,8,0\n5,0,2,0,12,0,9,0,27,0,11,0\n14,0,22,0,6,0,15,0,19,0,26,0\n5,0,25,0,20,0,7,0,18,0,10,0\n17,0,8,0,24,0,1,0,2,0,3,0\n13,0,9,0,4,0,23,0,16,0,21,0\n15,0,10,0,20,0,24,0,7,0,2,0\n21,0,17,0,12,0,19,0,6,0,23,0\n9,0,26,0,14,0,13,0,25,0,11,0\n5,0,27,0,4,0,8,0,1,0,16,0\n18,0,3,0,19,0,22,0,21,0,11,0\n"
  },
  {
    "path": "schedules/27_14.csv",
    "content": "9,0,18,0,3,0,19,0,6,0,5,0\n23,0,25,0,1,0,14,0,21,0,7,0\n27,0,26,0,15,0,22,0,4,0,10,0\n13,0,24,0,16,0,8,0,17,0,12,0\n20,0,2,0,23,0,11,0,26,0,3,0\n8,0,9,0,4,0,22,0,1,0,24,0\n16,0,15,0,19,0,18,0,11,0,27,0\n25,0,13,0,14,0,21,0,2,0,17,0\n6,0,12,0,7,0,10,0,20,0,5,0\n21,0,23,0,8,0,27,0,19,0,2,0\n12,0,5,0,11,0,15,0,4,0,24,0\n1,0,16,0,7,0,22,0,25,0,6,0\n14,0,9,0,17,0,20,0,18,0,26,0\n10,0,3,0,25,0,13,0,4,0,5,0\n2,0,6,0,1,0,14,0,27,0,12,0\n15,0,7,0,3,0,24,0,8,0,18,0\n16,0,9,0,20,0,19,0,21,0,13,0\n26,0,11,0,22,0,17,0,23,0,10,0\n25,0,21,0,24,0,9,0,15,0,6,0\n20,0,11,0,7,0,16,0,5,0,1,0\n10,0,13,0,12,0,19,0,14,0,23,0\n22,0,27,0,17,0,4,0,18,0,2,0\n26,0,8,0,12,0,3,0,21,0,16,0\n19,0,25,0,20,0,18,0,17,0,22,0\n23,0,24,0,7,0,4,0,14,0,3,0\n2,0,26,0,5,0,1,0,15,0,10,0\n11,0,8,0,6,0,9,0,27,0,13,0\n20,0,22,0,3,0,10,0,2,0,24,0\n15,0,23,0,9,0,26,0,13,0,7,0\n25,0,5,0,8,0,1,0,27,0,16,0\n4,0,19,0,11,0,18,0,12,0,14,0\n6,0,21,0,27,0,17,0,24,0,26,0\n25,0,18,0,5,0,11,0,23,0,14,0\n16,0,6,0,4,0,10,0,2,0,9,0\n22,0,8,0,7,0,12,0,20,0,21,0\n15,0,13,0,1,0,17,0,3,0,19,0\n18,0,10,0,8,0,20,0,9,0,24,0\n3,0,1,0,14,0,6,0,13,0,16,0\n27,0,17,0,15,0,2,0,7,0,25,0\n4,0,21,0,26,0,19,0,23,0,5,0\n22,0,12,0,14,0,11,0,10,0,7,0\n19,0,1,0,18,0,25,0,15,0,17,0\n23,0,4,0,27,0,16,0,12,0,20,0\n6,0,26,0,5,0,13,0,22,0,24,0\n21,0,9,0,11,0,2,0,3,0,8,0\n17,0,20,0,4,0,10,0,6,0,27,0\n2,0,7,0,13,0,16,0,11,0,15,0\n5,0,18,0,21,0,26,0,8,0,3,0\n12,0,19,0,24,0,1,0,25,0,9,0\n14,0,22,0,2,0,23,0,8,0,13,0\n27,0,20,0,25,0,19,0,26,0,12,0\n18,0,7,0,24,0,22,0,23,0,9,0\n17,0,1,0,11,0,4,0,6,0,3,0\n10,0,14,0,16,0,5,0,21,0,15,0\n11,0,13,0,17,0,8,0,27,0,7,0\n22,0,19,0,10,0,26,0,16,0,25,0\n12,0,2,0,4,0,23,0,6,0,18,0\n1,0,21,0,24,0,20,0,15,0,14,0\n3,0,5,0,27,0,9,0,19,0,7,0\n18,0,13,0,15,0,22,0,21,0,6,0\n23,0,12,0,3,0,20,0,1,0,8,0\n16,0,17,0,2,0,5,0,24,0,14,0\n10,0,9,0,26,0,11,0,4,0,25,0\n"
  },
  {
    "path": "schedules/27_2.csv",
    "content": "14,0,12,0,7,0,15,0,18,0,17,0\n27,0,5,0,22,0,8,0,19,0,10,0\n6,0,3,0,20,0,1,0,11,0,24,0\n16,0,13,0,2,0,9,0,26,0,25,0\n23,0,4,0,1,0,21,0,27,0,7,0\n24,0,20,0,13,0,12,0,5,0,2,0\n9,0,11,0,17,0,18,0,8,0,23,0\n22,0,26,0,16,0,4,0,14,0,6,0\n25,0,10,0,21,0,15,0,19,0,3,0\n"
  },
  {
    "path": "schedules/27_3.csv",
    "content": "11,0,7,0,25,0,26,0,24,0,20,0\n22,0,3,0,14,0,21,0,2,0,17,0\n1,0,19,0,6,0,9,0,18,0,13,0\n23,0,10,0,15,0,5,0,8,0,16,0\n27,0,12,0,9,0,4,0,22,0,7,0\n10,1,17,0,20,0,18,1,6,0,15,0\n2,1,5,0,11,0,19,0,3,0,12,0\n21,0,4,0,24,0,16,0,1,0,26,0\n8,0,14,0,23,0,25,0,27,0,13,0\n10,0,9,0,21,0,11,0,15,0,24,0\n23,0,7,0,16,0,18,0,19,0,17,0\n4,0,6,0,5,0,2,0,25,0,14,0\n13,0,1,0,8,0,22,0,12,0,20,0\n27,0,26,0,18,0,3,0,10,0,2,0\n"
  },
  {
    "path": "schedules/27_4.csv",
    "content": "3,0,27,0,15,0,2,0,24,0,17,0\n4,0,10,0,21,0,26,0,11,0,16,0\n22,0,7,0,14,0,25,0,23,0,8,0\n9,0,1,0,19,0,13,0,12,0,6,0\n20,0,11,0,24,0,18,0,5,0,14,0\n2,0,1,0,23,0,25,0,9,0,4,0\n6,0,5,0,22,0,26,0,10,0,27,0\n17,0,21,0,3,0,18,0,7,0,19,0\n16,0,12,0,8,0,13,0,20,0,15,0\n21,0,27,0,19,0,14,0,9,0,23,0\n17,0,6,0,20,0,3,0,11,0,25,0\n15,0,18,0,24,0,22,0,13,0,4,0\n5,0,10,0,16,0,12,0,7,0,2,0\n8,0,26,0,9,0,1,0,3,0,24,0\n23,0,5,0,13,0,10,0,14,0,17,0\n26,0,25,0,18,0,12,0,15,0,19,0\n16,0,1,0,7,0,11,0,27,0,22,0\n2,0,6,0,4,0,8,0,21,0,20,0\n"
  },
  {
    "path": "schedules/27_5.csv",
    "content": "5,0,20,0,11,0,15,0,10,0,8,0\n21,0,6,0,12,0,24,0,18,0,26,0\n7,0,13,0,14,0,17,0,2,0,27,0\n19,0,25,0,23,0,9,0,1,0,3,0\n16,0,22,0,13,0,4,0,20,0,6,0\n5,0,19,0,1,0,21,0,26,0,2,0\n8,0,24,0,23,0,16,0,15,0,7,0\n9,0,11,0,12,0,27,0,4,0,3,0\n10,0,25,0,18,0,22,0,17,0,14,0\n5,1,7,0,6,0,24,1,1,0,11,0\n23,1,26,0,3,0,8,0,14,0,20,0\n4,0,15,0,21,0,12,0,2,0,25,0\n16,0,18,0,19,0,27,0,13,0,10,0\n9,0,17,0,26,0,22,0,15,0,11,0\n4,0,14,0,10,0,6,0,19,0,24,0\n18,0,7,0,2,0,23,0,20,0,9,0\n8,0,12,0,13,0,22,0,21,0,1,0\n16,0,27,0,5,0,17,0,3,0,25,0\n4,0,26,0,12,0,10,0,7,0,23,0\n21,0,9,0,5,0,11,0,16,0,14,0\n24,0,3,0,15,0,1,0,13,0,18,0\n17,0,20,0,19,0,6,0,25,0,8,0\n27,0,22,0,24,0,2,0,5,0,23,0\n"
  },
  {
    "path": "schedules/27_6.csv",
    "content": "8,0,14,0,6,0,7,0,4,0,20,0\n17,0,25,0,12,0,22,0,2,0,9,0\n18,0,21,0,3,0,15,0,26,0,11,0\n27,0,13,0,19,0,24,0,23,0,16,0\n10,0,2,0,14,0,1,0,5,0,12,0\n15,0,24,0,13,0,9,0,26,0,6,0\n25,0,7,0,19,0,10,0,18,0,20,0\n4,0,27,0,5,0,11,0,21,0,22,0\n23,0,17,0,1,0,8,0,3,0,16,0\n12,0,2,0,4,0,7,0,27,0,15,0\n6,0,1,0,21,0,18,0,22,0,23,0\n10,0,8,0,11,0,3,0,9,0,13,0\n26,0,16,0,5,0,20,0,17,0,19,0\n25,0,24,0,22,0,14,0,3,0,7,0\n6,0,18,0,4,0,17,0,10,0,16,0\n20,0,15,0,12,0,5,0,23,0,13,0\n9,0,27,0,11,0,19,0,1,0,14,0\n24,0,21,0,26,0,25,0,8,0,2,0\n3,0,19,0,11,0,6,0,12,0,22,0\n14,0,9,0,23,0,7,0,18,0,26,0\n27,0,8,0,17,0,10,0,25,0,15,0\n1,0,2,0,20,0,4,0,21,0,13,0\n16,0,18,0,12,0,24,0,5,0,8,0\n22,0,10,0,4,0,26,0,2,0,23,0\n17,0,7,0,24,0,1,0,11,0,13,0\n19,0,16,0,15,0,21,0,25,0,14,0\n9,0,5,0,20,0,3,0,6,0,27,0\n"
  },
  {
    "path": "schedules/27_7.csv",
    "content": "8,0,9,0,16,0,25,0,5,0,11,0\n4,0,17,0,15,0,18,0,10,0,6,0\n12,0,27,0,19,0,3,0,22,0,24,0\n13,0,1,0,21,0,20,0,23,0,14,0\n26,0,7,0,9,0,2,0,8,0,19,0\n4,0,25,0,23,0,3,0,5,0,12,0\n26,0,27,0,1,0,17,0,13,0,6,0\n2,0,18,0,14,0,20,0,11,0,16,0\n24,0,21,0,7,0,22,0,15,0,10,0\n1,1,14,0,12,0,4,1,18,0,5,0\n7,1,17,0,22,0,13,0,25,0,16,0\n23,0,8,0,6,0,9,0,20,0,19,0\n15,0,26,0,3,0,21,0,2,0,11,0\n10,0,24,0,16,0,27,0,4,0,8,0\n1,0,19,0,18,0,21,0,5,0,6,0\n25,0,20,0,24,0,2,0,26,0,17,0\n11,0,9,0,10,0,23,0,12,0,22,0\n15,0,14,0,13,0,3,0,27,0,7,0\n22,0,8,0,11,0,17,0,1,0,23,0\n26,0,12,0,20,0,16,0,7,0,15,0\n2,0,13,0,3,0,24,0,9,0,18,0\n19,0,6,0,25,0,10,0,14,0,21,0\n27,0,5,0,22,0,4,0,20,0,2,0\n15,0,12,0,18,0,8,0,25,0,1,0\n3,0,23,0,16,0,27,0,24,0,6,0\n21,0,17,0,9,0,14,0,4,0,7,0\n10,0,5,0,19,0,13,0,26,0,11,0\n24,0,12,0,2,0,1,0,6,0,9,0\n23,0,27,0,11,0,18,0,25,0,7,0\n22,0,4,0,13,0,26,0,8,0,14,0\n17,0,5,0,16,0,15,0,19,0,21,0\n20,0,1,0,7,0,10,0,3,0,4,0\n"
  },
  {
    "path": "schedules/27_8.csv",
    "content": "3,0,15,0,8,0,5,0,18,0,13,0\n10,0,16,0,9,0,22,0,21,0,1,0\n26,0,14,0,7,0,19,0,20,0,4,0\n23,0,2,0,12,0,27,0,25,0,11,0\n6,0,24,0,15,0,17,0,14,0,20,0\n1,0,4,0,12,0,8,0,16,0,23,0\n11,0,5,0,26,0,24,0,7,0,22,0\n10,0,21,0,2,0,3,0,18,0,17,0\n9,0,27,0,13,0,25,0,19,0,6,0\n18,0,11,0,22,0,16,0,15,0,20,0\n25,0,7,0,1,0,6,0,3,0,2,0\n8,0,9,0,14,0,27,0,17,0,10,0\n13,0,12,0,21,0,5,0,4,0,24,0\n19,0,23,0,18,0,26,0,25,0,16,0\n22,0,27,0,4,0,17,0,1,0,5,0\n2,0,7,0,20,0,9,0,15,0,12,0\n24,0,19,0,11,0,10,0,6,0,8,0\n13,0,3,0,14,0,21,0,23,0,26,0\n18,0,1,0,9,0,7,0,11,0,12,0\n10,0,23,0,20,0,17,0,13,0,26,0\n6,0,16,0,5,0,14,0,25,0,2,0\n3,0,21,0,4,0,19,0,15,0,27,0\n8,0,22,0,2,0,24,0,23,0,14,0\n25,0,12,0,17,0,15,0,26,0,10,0\n6,0,13,0,22,0,18,0,21,0,7,0\n24,0,3,0,27,0,4,0,11,0,9,0\n19,0,1,0,16,0,5,0,8,0,20,0\n25,0,23,0,15,0,9,0,21,0,24,0\n16,0,11,0,17,0,13,0,19,0,7,0\n12,0,27,0,20,0,3,0,26,0,22,0\n10,0,5,0,14,0,18,0,6,0,4,0\n1,0,8,0,26,0,2,0,13,0,15,0\n24,0,10,0,18,0,7,0,16,0,27,0\n21,0,14,0,19,0,11,0,2,0,1,0\n17,0,6,0,23,0,5,0,3,0,12,0\n4,0,8,0,25,0,20,0,22,0,9,0\n"
  },
  {
    "path": "schedules/27_9.csv",
    "content": "20,0,22,0,24,0,18,0,25,0,6,0\n11,0,23,0,5,0,9,0,2,0,21,0\n14,0,17,0,16,0,27,0,4,0,7,0\n19,0,1,0,8,0,15,0,12,0,3,0\n26,0,13,0,24,0,10,0,20,0,2,0\n5,0,22,0,16,0,8,0,7,0,15,0\n27,0,6,0,3,0,10,0,4,0,9,0\n11,0,26,0,17,0,14,0,12,0,25,0\n21,0,18,0,1,0,23,0,13,0,19,0\n17,1,20,0,6,0,9,1,15,0,16,0\n1,1,18,0,4,0,26,0,5,0,25,0\n22,0,19,0,10,0,11,0,21,0,7,0\n13,0,12,0,8,0,24,0,27,0,23,0\n2,0,14,0,11,0,3,0,16,0,19,0\n27,0,10,0,13,0,5,0,1,0,7,0\n4,0,24,0,17,0,12,0,21,0,22,0\n26,0,18,0,8,0,9,0,6,0,14,0\n15,0,20,0,25,0,2,0,3,0,23,0\n9,0,13,0,17,0,16,0,1,0,24,0\n2,0,12,0,18,0,21,0,27,0,20,0\n7,0,23,0,6,0,11,0,4,0,3,0\n5,0,19,0,15,0,26,0,22,0,14,0\n25,0,8,0,2,0,10,0,17,0,7,0\n3,0,1,0,20,0,11,0,19,0,24,0\n23,0,26,0,12,0,10,0,6,0,16,0\n8,0,21,0,4,0,18,0,13,0,15,0\n22,0,25,0,9,0,5,0,14,0,27,0\n23,0,17,0,15,0,11,0,18,0,24,0\n16,0,21,0,25,0,9,0,19,0,26,0\n14,0,20,0,4,0,5,0,8,0,10,0\n22,0,2,0,27,0,13,0,6,0,1,0\n7,0,3,0,25,0,12,0,5,0,24,0\n6,0,21,0,19,0,8,0,14,0,23,0\n27,0,1,0,15,0,7,0,16,0,20,0\n26,0,10,0,3,0,18,0,17,0,22,0\n11,0,12,0,9,0,4,0,13,0,2,0\n14,0,10,0,15,0,1,0,25,0,23,0\n6,0,4,0,5,0,19,0,2,0,17,0\n13,0,11,0,22,0,9,0,8,0,20,0\n3,0,24,0,21,0,16,0,27,0,26,0\n7,0,18,0,9,0,12,0,17,0,1,0\n"
  },
  {
    "path": "schedules/28_1.csv",
    "content": "23,0,22,0,15,0,6,0,18,0,16,0\n8,0,11,0,7,0,4,0,17,0,12,0\n21,0,5,0,2,0,24,0,25,0,3,0\n10,0,19,0,1,0,28,0,26,0,20,0\n14,0,13,0,2,1,9,0,27,0,23,1\n"
  },
  {
    "path": "schedules/28_10.csv",
    "content": "16,0,17,0,1,0,10,0,8,0,19,0\n2,0,25,0,4,0,3,0,27,0,15,0\n6,0,13,0,28,0,24,0,18,0,20,0\n9,0,14,0,26,0,23,0,7,0,5,0\n11,0,21,0,3,0,22,0,12,0,10,0\n18,0,1,0,19,0,15,0,14,0,5,0\n6,0,23,0,26,0,27,0,13,0,22,0\n25,0,12,0,24,0,2,0,21,0,20,0\n11,0,8,0,9,0,28,0,4,0,16,0\n7,0,13,0,10,0,17,0,14,0,6,0\n25,1,20,0,26,0,22,1,1,0,11,0\n15,0,2,0,9,0,19,0,28,0,21,0\n3,0,8,0,12,0,5,0,27,0,17,0\n4,0,24,0,23,0,7,0,18,0,16,0\n11,0,15,0,25,0,14,0,1,0,3,0\n21,0,5,0,13,0,6,0,9,0,27,0\n22,0,8,0,7,0,19,0,24,0,2,0\n20,0,28,0,10,0,17,0,4,0,26,0\n18,0,23,0,14,0,16,0,12,0,9,0\n6,0,22,0,21,0,20,0,4,0,7,0\n13,0,16,0,24,0,1,0,5,0,25,0\n17,0,19,0,3,0,26,0,18,0,11,0\n2,0,27,0,8,0,15,0,10,0,23,0\n12,0,5,0,18,0,28,0,11,0,7,0\n10,0,25,0,27,0,20,0,9,0,19,0\n22,0,17,0,28,0,2,0,23,0,13,0\n8,0,16,0,15,0,12,0,1,0,6,0\n21,0,4,0,14,0,24,0,26,0,3,0\n2,0,28,0,5,0,16,0,10,0,11,0\n14,0,20,0,22,0,21,0,1,0,15,0\n23,0,9,0,3,0,8,0,24,0,6,0\n7,0,12,0,26,0,13,0,19,0,25,0\n27,0,4,0,11,0,18,0,17,0,15,0\n16,0,20,0,6,0,3,0,22,0,5,0\n28,0,24,0,27,0,14,0,7,0,19,0\n26,0,1,0,2,0,4,0,13,0,9,0\n21,0,25,0,18,0,23,0,8,0,17,0\n10,0,4,0,6,0,12,0,2,0,14,0\n15,0,24,0,7,0,27,0,16,0,26,0\n11,0,19,0,5,0,13,0,20,0,8,0\n18,0,3,0,10,0,22,0,23,0,25,0\n1,0,28,0,9,0,17,0,12,0,21,0\n8,0,26,0,5,0,22,0,2,0,18,0\n13,0,15,0,12,0,10,0,24,0,9,0\n1,0,27,0,7,0,25,0,6,0,3,0\n20,0,11,0,17,0,23,0,16,0,21,0\n19,0,4,0,22,0,14,0,28,0,25,0\n"
  },
  {
    "path": "schedules/28_11.csv",
    "content": "4,0,17,0,19,0,8,0,24,0,2,0\n21,0,27,0,28,0,14,0,11,0,1,0\n20,0,18,0,12,0,3,0,26,0,15,0\n9,0,5,0,7,0,13,0,22,0,16,0\n25,0,10,0,8,0,6,0,23,0,1,0\n7,0,11,0,13,0,28,0,4,0,15,0\n17,0,14,0,10,0,21,0,19,0,5,0\n3,0,18,0,2,0,16,0,25,0,23,0\n9,0,22,0,24,0,27,0,6,0,12,0\n20,0,7,0,15,0,26,0,23,0,2,0\n5,1,6,0,18,0,4,1,17,0,9,0\n1,1,27,0,26,0,20,1,10,0,13,0\n16,0,24,0,11,0,8,0,3,0,21,0\n25,0,28,0,22,0,19,0,14,0,12,0\n15,0,8,0,1,0,4,0,21,0,9,0\n25,0,2,0,22,0,10,0,7,0,24,0\n12,0,17,0,26,0,14,0,28,0,6,0\n19,0,16,0,27,0,5,0,11,0,3,0\n18,0,13,0,14,0,23,0,20,0,4,0\n9,0,16,0,15,0,27,0,8,0,22,0\n19,0,7,0,6,0,21,0,18,0,1,0\n3,0,24,0,28,0,25,0,26,0,20,0\n23,0,11,0,10,0,13,0,5,0,12,0\n2,0,1,0,28,0,17,0,22,0,3,0\n11,0,27,0,15,0,4,0,18,0,16,0\n6,0,21,0,17,0,9,0,13,0,25,0\n2,0,5,0,10,0,8,0,20,0,14,0\n7,0,23,0,12,0,26,0,19,0,24,0\n4,0,14,0,3,0,10,0,22,0,21,0\n13,0,27,0,24,0,6,0,16,0,2,0\n11,0,20,0,19,0,17,0,15,0,25,0\n5,0,12,0,8,0,28,0,18,0,23,0\n9,0,1,0,3,0,7,0,26,0,4,0\n14,0,27,0,25,0,22,0,18,0,11,0\n21,0,20,0,2,0,28,0,13,0,19,0\n17,0,1,0,5,0,15,0,24,0,12,0\n26,0,10,0,6,0,16,0,7,0,8,0\n23,0,14,0,21,0,9,0,27,0,20,0\n4,0,8,0,6,0,3,0,7,0,25,0\n26,0,22,0,5,0,11,0,17,0,2,0\n10,0,18,0,15,0,24,0,1,0,13,0\n19,0,9,0,23,0,12,0,28,0,16,0\n26,0,8,0,13,0,17,0,24,0,18,0\n1,0,20,0,16,0,7,0,14,0,22,0\n25,0,4,0,11,0,9,0,28,0,10,0\n19,0,15,0,2,0,27,0,5,0,23,0\n12,0,21,0,11,0,3,0,6,0,20,0\n18,0,8,0,9,0,10,0,1,0,19,0\n24,0,25,0,6,0,14,0,5,0,15,0\n16,0,26,0,21,0,12,0,4,0,2,0\n3,0,23,0,13,0,27,0,7,0,17,0\n22,0,4,0,1,0,28,0,5,0,20,0\n"
  },
  {
    "path": "schedules/28_12.csv",
    "content": "23,0,17,0,8,0,28,0,6,0,4,0\n19,0,20,0,13,0,22,0,14,0,25,0\n15,0,11,0,27,0,10,0,26,0,1,0\n3,0,12,0,2,0,21,0,7,0,24,0\n5,0,9,0,27,0,16,0,18,0,15,0\n1,0,6,0,14,0,21,0,2,0,26,0\n17,0,20,0,8,0,23,0,3,0,19,0\n22,0,12,0,4,0,13,0,9,0,10,0\n24,0,11,0,28,0,16,0,5,0,18,0\n7,0,6,0,2,0,25,0,27,0,26,0\n20,0,16,0,24,0,1,0,23,0,4,0\n18,0,28,0,14,0,15,0,12,0,19,0\n7,0,5,0,10,0,13,0,8,0,22,0\n11,0,21,0,17,0,9,0,25,0,3,0\n15,0,2,0,13,0,27,0,20,0,6,0\n1,0,23,0,25,0,11,0,16,0,14,0\n10,0,28,0,21,0,17,0,22,0,19,0\n8,0,12,0,9,0,3,0,5,0,24,0\n26,0,4,0,10,0,7,0,18,0,20,0\n11,0,1,0,22,0,19,0,24,0,25,0\n6,0,21,0,3,0,27,0,18,0,2,0\n28,0,8,0,16,0,14,0,13,0,12,0\n26,0,5,0,15,0,4,0,17,0,7,0\n9,0,25,0,11,0,23,0,21,0,13,0\n4,0,16,0,19,0,18,0,26,0,8,0\n7,0,12,0,10,0,28,0,20,0,9,0\n23,0,24,0,27,0,2,0,14,0,22,0\n3,0,17,0,1,0,6,0,15,0,5,0\n20,0,14,0,26,0,8,0,11,0,18,0\n25,0,13,0,4,0,15,0,24,0,10,0\n3,0,7,0,19,0,1,0,9,0,21,0\n2,0,17,0,5,0,28,0,16,0,12,0\n23,0,6,0,8,0,27,0,22,0,10,0\n24,0,1,0,13,0,4,0,26,0,3,0\n6,0,16,0,22,0,11,0,12,0,5,0\n18,0,14,0,21,0,9,0,2,0,20,0\n23,0,19,0,27,0,25,0,15,0,28,0\n7,0,11,0,13,0,17,0,24,0,6,0\n27,0,16,0,21,0,23,0,12,0,20,0\n14,0,4,0,7,0,28,0,22,0,3,0\n10,0,17,0,18,0,2,0,1,0,15,0\n8,0,5,0,25,0,9,0,19,0,26,0\n15,0,21,0,7,0,1,0,27,0,12,0\n24,0,6,0,9,0,11,0,20,0,4,0\n3,0,13,0,18,0,28,0,5,0,23,0\n16,0,25,0,2,0,14,0,8,0,10,0\n19,0,22,0,21,0,17,0,26,0,12,0\n25,0,10,0,2,0,3,0,20,0,16,0\n18,0,4,0,9,0,27,0,13,0,8,0\n15,0,14,0,24,0,6,0,19,0,5,0\n23,0,22,0,26,0,28,0,7,0,1,0\n11,0,3,0,10,0,17,0,14,0,27,0\n5,0,20,0,1,0,4,0,8,0,21,0\n18,0,23,0,16,0,25,0,7,0,6,0\n13,0,28,0,26,0,11,0,2,0,19,0\n24,0,22,0,12,0,17,0,15,0,9,0\n"
  },
  {
    "path": "schedules/28_13.csv",
    "content": "11,0,24,0,21,0,26,0,14,0,13,0\n2,0,20,0,12,0,5,0,1,0,7,0\n18,0,15,0,6,0,10,0,9,0,3,0\n19,0,23,0,8,0,25,0,28,0,17,0\n27,0,4,0,24,0,22,0,16,0,5,0\n28,0,21,0,26,0,9,0,20,0,17,0\n10,0,11,0,25,0,22,0,15,0,19,0\n18,0,8,0,16,0,3,0,12,0,27,0\n23,0,1,0,14,0,13,0,4,0,6,0\n2,0,17,0,5,0,7,0,18,0,8,0\n4,1,10,0,27,0,28,1,20,0,1,0\n12,0,25,0,14,0,3,0,19,0,26,0\n13,0,16,0,21,0,11,0,23,0,6,0\n7,0,9,0,15,0,2,0,22,0,24,0\n26,0,8,0,3,0,11,0,1,0,4,0\n9,0,27,0,17,0,10,0,23,0,13,0\n12,0,6,0,7,0,25,0,28,0,22,0\n15,0,16,0,14,0,20,0,21,0,19,0\n24,0,2,0,28,0,5,0,18,0,23,0\n15,0,17,0,8,0,4,0,21,0,7,0\n18,0,13,0,2,0,20,0,6,0,10,0\n25,0,5,0,19,0,27,0,26,0,24,0\n1,0,9,0,22,0,11,0,12,0,16,0\n3,0,20,0,13,0,14,0,17,0,2,0\n7,0,11,0,27,0,26,0,9,0,16,0\n14,0,25,0,4,0,18,0,12,0,22,0\n8,0,1,0,10,0,6,0,19,0,24,0\n5,0,21,0,15,0,23,0,3,0,28,0\n27,0,2,0,19,0,11,0,24,0,12,0\n16,0,6,0,5,0,18,0,8,0,21,0\n20,0,25,0,22,0,23,0,14,0,10,0\n7,0,26,0,17,0,1,0,13,0,15,0\n9,0,4,0,18,0,28,0,3,0,6,0\n21,0,19,0,10,0,24,0,2,0,7,0\n22,0,3,0,14,0,28,0,1,0,27,0\n23,0,25,0,15,0,4,0,16,0,12,0\n5,0,17,0,20,0,11,0,9,0,13,0\n26,0,23,0,22,0,8,0,14,0,6,0\n13,0,9,0,19,0,4,0,2,0,16,0\n20,0,11,0,7,0,3,0,21,0,25,0\n1,0,24,0,17,0,18,0,27,0,15,0\n12,0,28,0,10,0,8,0,5,0,26,0\n21,0,6,0,1,0,19,0,23,0,7,0\n11,0,3,0,2,0,13,0,5,0,27,0\n28,0,14,0,20,0,10,0,16,0,17,0\n26,0,18,0,25,0,15,0,4,0,22,0\n9,0,12,0,6,0,24,0,8,0,20,0\n13,0,4,0,5,0,7,0,14,0,16,0\n11,0,8,0,22,0,15,0,28,0,2,0\n21,0,23,0,12,0,9,0,24,0,3,0\n27,0,10,0,18,0,1,0,26,0,25,0\n17,0,22,0,6,0,19,0,11,0,14,0\n16,0,24,0,23,0,20,0,26,0,15,0\n7,0,28,0,13,0,9,0,27,0,25,0\n12,0,5,0,1,0,17,0,18,0,19,0\n3,0,4,0,8,0,10,0,21,0,2,0\n11,0,15,0,26,0,5,0,9,0,14,0\n7,0,10,0,22,0,17,0,21,0,12,0\n28,0,19,0,4,0,27,0,6,0,2,0\n3,0,16,0,1,0,8,0,25,0,13,0\n24,0,18,0,28,0,20,0,23,0,4,0\n"
  },
  {
    "path": "schedules/28_14.csv",
    "content": "26,0,28,0,19,0,23,0,1,0,10,0\n2,0,3,0,24,0,9,0,16,0,6,0\n5,0,7,0,17,0,22,0,25,0,20,0\n15,0,12,0,13,0,21,0,4,0,8,0\n14,0,27,0,9,0,18,0,11,0,7,0\n28,0,25,0,21,0,16,0,26,0,3,0\n15,0,6,0,2,0,24,0,27,0,19,0\n13,0,12,0,4,0,14,0,23,0,1,0\n17,0,10,0,8,0,11,0,18,0,5,0\n22,0,14,0,3,0,20,0,12,0,16,0\n7,1,11,0,10,0,19,1,28,0,24,0\n13,1,6,0,18,0,5,1,15,0,25,0\n26,0,21,0,9,0,22,0,2,0,8,0\n20,0,23,0,17,0,27,0,4,0,1,0\n14,0,19,0,13,0,28,0,9,0,12,0\n7,0,26,0,27,0,15,0,4,0,10,0\n22,0,21,0,6,0,2,0,17,0,1,0\n24,0,8,0,18,0,25,0,5,0,3,0\n11,0,20,0,15,0,23,0,16,0,21,0\n1,0,12,0,7,0,6,0,19,0,18,0\n16,0,14,0,11,0,22,0,25,0,17,0\n3,0,10,0,9,0,5,0,27,0,23,0\n20,0,28,0,8,0,26,0,13,0,24,0\n4,0,7,0,12,0,2,0,18,0,10,0\n16,0,17,0,26,0,25,0,19,0,23,0\n24,0,11,0,15,0,13,0,2,0,1,0\n28,0,22,0,5,0,27,0,3,0,8,0\n14,0,6,0,4,0,9,0,21,0,20,0\n25,0,27,0,18,0,8,0,11,0,19,0\n24,0,23,0,12,0,13,0,5,0,2,0\n21,0,22,0,10,0,3,0,7,0,28,0\n26,0,1,0,14,0,4,0,17,0,16,0\n9,0,20,0,3,0,6,0,15,0,10,0\n18,0,1,0,16,0,13,0,19,0,22,0\n23,0,8,0,9,0,24,0,17,0,21,0\n27,0,28,0,7,0,15,0,26,0,14,0\n11,0,2,0,25,0,20,0,5,0,4,0\n12,0,22,0,18,0,6,0,23,0,28,0\n9,0,5,0,15,0,10,0,16,0,24,0\n2,0,20,0,19,0,14,0,8,0,17,0\n25,0,13,0,7,0,4,0,6,0,26,0\n3,0,1,0,21,0,27,0,12,0,11,0\n13,0,16,0,8,0,2,0,7,0,23,0\n11,0,6,0,1,0,14,0,28,0,10,0\n21,0,5,0,24,0,4,0,3,0,19,0\n22,0,15,0,26,0,18,0,17,0,9,0\n20,0,27,0,16,0,12,0,25,0,10,0\n11,0,21,0,24,0,1,0,22,0,7,0\n14,0,25,0,19,0,3,0,15,0,23,0\n28,0,13,0,17,0,4,0,18,0,9,0\n27,0,6,0,20,0,12,0,26,0,8,0\n2,0,28,0,1,0,5,0,16,0,15,0\n10,0,13,0,27,0,14,0,18,0,21,0\n17,0,19,0,3,0,2,0,8,0,26,0\n4,0,25,0,24,0,6,0,5,0,12,0\n22,0,11,0,23,0,7,0,20,0,9,0\n5,0,12,0,8,0,18,0,16,0,28,0\n17,0,6,0,27,0,7,0,14,0,24,0\n13,0,23,0,10,0,25,0,9,0,1,0\n2,0,4,0,22,0,15,0,19,0,21,0\n26,0,20,0,10,0,11,0,3,0,13,0\n4,0,18,0,23,0,27,0,15,0,22,0\n9,0,19,0,16,0,1,0,20,0,24,0\n7,0,6,0,8,0,26,0,25,0,5,0\n12,0,3,0,2,0,28,0,11,0,17,0\n14,0,19,0,5,0,21,0,7,0,13,0\n"
  },
  {
    "path": "schedules/28_2.csv",
    "content": "23,0,18,0,21,0,14,0,17,0,20,0\n7,0,12,0,8,0,10,0,26,0,2,0\n11,0,24,0,9,0,25,0,16,0,27,0\n19,0,22,0,13,0,1,0,6,0,28,0\n3,0,15,0,16,0,5,0,4,0,18,0\n21,0,26,0,27,0,6,0,19,0,25,0\n9,0,7,0,20,0,22,0,3,0,8,0\n4,0,10,0,1,0,14,0,11,0,2,0\n5,0,15,0,12,0,17,0,24,0,13,0\n28,0,2,1,8,1,23,0,4,1,7,1\n"
  },
  {
    "path": "schedules/28_3.csv",
    "content": "10,0,23,0,22,0,15,0,9,0,12,0\n6,0,11,0,18,0,20,0,7,0,2,0\n13,0,26,0,25,0,5,0,21,0,17,0\n28,0,1,0,8,0,24,0,27,0,4,0\n19,0,3,0,15,0,16,0,14,0,18,0\n21,0,4,0,12,0,17,0,9,0,11,0\n20,0,22,0,16,0,26,0,27,0,28,0\n25,0,19,0,7,0,3,0,24,0,23,0\n13,0,14,0,5,0,10,0,8,0,6,0\n2,0,18,0,26,0,1,0,23,0,12,0\n15,0,28,0,11,0,13,0,6,0,19,0\n20,0,3,0,5,0,22,0,1,0,4,0\n16,0,7,0,10,0,25,0,21,0,8,0\n24,0,2,0,17,0,9,0,27,0,14,0\n"
  },
  {
    "path": "schedules/28_4.csv",
    "content": "5,0,2,0,6,0,7,0,18,0,17,0\n21,0,11,0,12,0,3,0,22,0,4,0\n28,0,8,0,16,0,23,0,10,0,1,0\n9,0,15,0,26,0,14,0,27,0,24,0\n13,0,19,0,23,0,20,0,25,0,6,0\n27,0,26,0,22,0,18,0,3,0,1,0\n14,0,17,0,10,0,13,0,4,0,24,0\n19,0,2,0,12,0,21,0,15,0,16,0\n5,0,9,0,28,0,20,0,11,0,8,0\n25,0,16,0,14,0,7,0,22,0,6,0\n8,1,1,0,15,0,11,1,5,0,13,0\n7,0,3,0,23,0,4,0,19,0,9,0\n2,0,17,0,20,0,12,0,27,0,10,0\n18,0,24,0,26,0,21,0,25,0,28,0\n19,0,14,0,3,0,5,0,17,0,8,0\n25,0,18,0,10,0,9,0,12,0,1,0\n13,0,21,0,27,0,11,0,28,0,7,0\n4,0,20,0,15,0,26,0,16,0,6,0\n22,0,24,0,11,0,2,0,23,0,8,0\n"
  },
  {
    "path": "schedules/28_5.csv",
    "content": "13,0,16,0,7,0,22,0,20,0,1,0\n15,0,27,0,24,0,23,0,25,0,12,0\n10,0,14,0,2,0,4,0,17,0,21,0\n11,0,3,0,19,0,5,0,9,0,18,0\n8,0,28,0,14,0,6,0,26,0,16,0\n13,0,11,0,25,0,19,0,12,0,2,0\n18,0,1,0,15,0,17,0,24,0,26,0\n3,0,4,0,7,0,27,0,28,0,21,0\n20,0,6,0,5,0,10,0,8,0,23,0\n9,0,2,0,3,0,22,0,15,0,14,0\n6,1,21,0,23,0,18,1,16,0,19,0\n8,1,5,0,13,0,17,1,27,0,25,0\n4,0,26,0,12,0,20,0,7,0,9,0\n1,0,24,0,28,0,10,0,11,0,22,0\n2,0,17,0,23,0,8,0,3,0,26,0\n28,0,5,0,25,0,14,0,7,0,18,0\n6,0,24,0,11,0,13,0,20,0,4,0\n10,0,16,0,27,0,9,0,15,0,19,0\n22,0,12,0,5,0,1,0,21,0,26,0\n15,0,17,0,8,0,28,0,7,0,11,0\n10,0,9,0,21,0,13,0,23,0,18,0\n4,0,6,0,25,0,16,0,1,0,3,0\n19,0,14,0,27,0,24,0,20,0,2,0\n22,0,18,0,17,0,12,0,6,0,8,0\n"
  },
  {
    "path": "schedules/28_6.csv",
    "content": "28,0,17,0,1,0,24,0,22,0,9,0\n3,0,12,0,8,0,18,0,4,0,15,0\n6,0,10,0,20,0,21,0,14,0,7,0\n13,0,26,0,25,0,2,0,16,0,27,0\n5,0,19,0,12,0,23,0,11,0,9,0\n6,0,18,0,8,0,16,0,28,0,13,0\n19,0,24,0,7,0,3,0,27,0,21,0\n20,0,25,0,23,0,15,0,22,0,10,0\n17,0,14,0,11,0,4,0,2,0,26,0\n1,0,20,0,13,0,5,0,3,0,24,0\n26,0,18,0,10,0,19,0,25,0,4,0\n15,0,1,0,27,0,14,0,28,0,12,0\n21,0,5,0,2,0,8,0,17,0,23,0\n11,0,16,0,22,0,9,0,7,0,6,0\n10,0,5,0,27,0,18,0,21,0,1,0\n7,0,11,0,13,0,17,0,15,0,12,0\n23,0,4,0,28,0,20,0,14,0,16,0\n19,0,3,0,9,0,6,0,25,0,2,0\n26,0,22,0,12,0,24,0,8,0,10,0\n17,0,2,0,9,0,27,0,20,0,18,0\n4,0,22,0,14,0,21,0,13,0,19,0\n5,0,23,0,15,0,24,0,26,0,6,0\n7,0,25,0,1,0,11,0,28,0,8,0\n3,0,10,0,14,0,16,0,17,0,5,0\n20,0,21,0,28,0,25,0,11,0,12,0\n24,0,15,0,16,0,19,0,1,0,2,0\n8,0,22,0,27,0,4,0,3,0,6,0\n9,0,13,0,18,0,26,0,7,0,23,0\n"
  },
  {
    "path": "schedules/28_7.csv",
    "content": "4,0,7,0,23,0,2,0,11,0,21,0\n26,0,10,0,28,0,3,0,13,0,9,0\n17,0,1,0,22,0,24,0,20,0,25,0\n16,0,8,0,19,0,14,0,5,0,6,0\n12,0,27,0,22,0,18,0,15,0,17,0\n26,0,24,0,2,0,28,0,19,0,5,0\n16,0,9,0,4,0,18,0,25,0,1,0\n12,0,6,0,15,0,8,0,23,0,20,0\n11,0,3,0,27,0,14,0,10,0,21,0\n13,0,17,0,12,0,7,0,9,0,22,0\n8,1,4,0,24,0,23,1,27,0,28,0\n7,0,25,0,14,0,15,0,26,0,3,0\n2,0,18,0,5,0,21,0,20,0,13,0\n1,0,6,0,16,0,19,0,10,0,11,0\n5,0,20,0,7,0,9,0,28,0,14,0\n27,0,21,0,26,0,8,0,1,0,13,0\n10,0,23,0,18,0,19,0,17,0,24,0\n2,0,4,0,3,0,16,0,15,0,22,0\n6,0,11,0,18,0,12,0,25,0,28,0\n27,0,20,0,19,0,16,0,7,0,26,0\n13,0,14,0,11,0,17,0,25,0,2,0\n5,0,23,0,12,0,1,0,10,0,3,0\n9,0,15,0,24,0,21,0,22,0,6,0\n4,0,20,0,18,0,8,0,3,0,7,0\n10,0,9,0,27,0,15,0,2,0,23,0\n21,0,28,0,1,0,16,0,14,0,17,0\n11,0,25,0,22,0,5,0,26,0,8,0\n6,0,24,0,13,0,19,0,4,0,12,0\n21,0,8,0,25,0,20,0,10,0,2,0\n14,0,23,0,26,0,18,0,16,0,12,0\n5,0,17,0,3,0,6,0,4,0,27,0\n13,0,15,0,7,0,11,0,1,0,24,0\n28,0,22,0,8,0,19,0,9,0,23,0\n"
  },
  {
    "path": "schedules/28_8.csv",
    "content": "27,0,24,0,4,0,10,0,9,0,16,0\n3,0,19,0,15,0,17,0,13,0,18,0\n22,0,11,0,12,0,20,0,14,0,25,0\n26,0,21,0,2,0,28,0,5,0,8,0\n23,0,7,0,25,0,6,0,1,0,4,0\n20,0,19,0,2,0,21,0,9,0,15,0\n8,0,14,0,24,0,6,0,22,0,23,0\n3,0,16,0,7,0,10,0,11,0,28,0\n13,0,26,0,1,0,12,0,18,0,27,0\n5,0,15,0,20,0,17,0,16,0,23,0\n4,1,22,0,21,0,25,1,1,0,27,0\n5,1,2,0,18,0,8,1,7,0,11,0\n9,0,13,0,6,0,26,0,28,0,17,0\n10,0,3,0,24,0,14,0,19,0,12,0\n15,0,16,0,25,0,8,0,23,0,13,0\n7,0,26,0,24,0,21,0,3,0,20,0\n10,0,1,0,18,0,17,0,22,0,2,0\n14,0,9,0,28,0,11,0,5,0,27,0\n12,0,6,0,26,0,4,0,19,0,16,0\n5,0,7,0,14,0,22,0,15,0,13,0\n8,0,10,0,27,0,18,0,20,0,28,0\n23,0,11,0,9,0,12,0,1,0,21,0\n17,0,24,0,19,0,25,0,4,0,2,0\n3,0,13,0,5,0,6,0,21,0,7,0\n17,0,1,0,20,0,15,0,4,0,28,0\n8,0,6,0,19,0,11,0,24,0,25,0\n26,0,9,0,18,0,23,0,10,0,14,0\n27,0,16,0,22,0,3,0,2,0,12,0\n11,0,4,0,14,0,17,0,21,0,5,0\n19,0,13,0,10,0,8,0,1,0,22,0\n28,0,3,0,27,0,12,0,23,0,15,0\n6,0,18,0,25,0,20,0,9,0,7,0\n2,0,24,0,1,0,16,0,26,0,5,0\n8,0,12,0,17,0,7,0,19,0,27,0\n25,0,21,0,28,0,24,0,18,0,16,0\n20,0,4,0,23,0,2,0,13,0,14,0\n6,0,11,0,15,0,10,0,26,0,22,0\n9,0,4,0,5,0,3,0,25,0,8,0\n"
  },
  {
    "path": "schedules/28_9.csv",
    "content": "3,0,23,0,5,0,17,0,7,0,8,0\n19,0,27,0,13,0,4,0,22,0,11,0\n14,0,2,0,24,0,9,0,6,0,16,0\n15,0,18,0,21,0,26,0,20,0,25,0\n1,0,28,0,17,0,10,0,12,0,4,0\n3,0,6,0,14,0,18,0,5,0,13,0\n22,0,28,0,26,0,7,0,16,0,23,0\n9,0,19,0,21,0,24,0,10,0,27,0\n1,0,8,0,12,0,20,0,11,0,2,0\n25,0,14,0,10,0,15,0,4,0,5,0\n27,0,2,0,6,0,22,0,20,0,17,0\n24,0,21,0,28,0,16,0,3,0,8,0\n13,0,11,0,25,0,1,0,7,0,26,0\n9,0,12,0,18,0,19,0,23,0,15,0\n6,0,5,0,7,0,10,0,1,0,21,0\n4,0,2,0,23,0,15,0,12,0,11,0\n24,0,22,0,19,0,28,0,20,0,3,0\n17,0,16,0,18,0,9,0,8,0,13,0\n27,0,25,0,21,0,26,0,14,0,23,0\n5,0,22,0,2,0,24,0,1,0,13,0\n20,0,4,0,8,0,10,0,3,0,9,0\n28,0,11,0,7,0,14,0,18,0,27,0\n17,0,6,0,15,0,19,0,25,0,16,0\n26,0,9,0,5,0,12,0,28,0,2,0\n20,0,23,0,10,0,16,0,11,0,14,0\n25,0,15,0,22,0,8,0,24,0,18,0\n26,0,27,0,3,0,4,0,6,0,1,0\n17,0,12,0,19,0,21,0,7,0,13,0\n2,0,1,0,16,0,18,0,23,0,6,0\n3,0,25,0,7,0,17,0,14,0,9,0\n10,0,8,0,19,0,12,0,27,0,22,0\n4,0,13,0,26,0,5,0,24,0,20,0\n11,0,21,0,6,0,28,0,15,0,9,0\n13,0,3,0,22,0,25,0,12,0,23,0\n16,0,20,0,15,0,27,0,28,0,5,0\n26,0,10,0,17,0,1,0,19,0,18,0\n4,0,14,0,7,0,21,0,8,0,2,0\n24,0,12,0,16,0,11,0,17,0,27,0\n10,0,13,0,28,0,3,0,15,0,2,0\n1,0,9,0,22,0,14,0,5,0,21,0\n8,0,11,0,23,0,6,0,19,0,26,0\n20,0,7,0,18,0,4,0,25,0,24,0\n"
  },
  {
    "path": "schedules/29_1.csv",
    "content": "10,0,26,0,27,0,21,0,24,0,4,0\n20,0,23,0,11,0,8,0,3,0,15,0\n28,0,9,0,14,0,22,0,5,0,13,0\n16,0,2,0,25,0,12,0,7,0,1,0\n19,0,17,0,6,0,29,0,18,0,24,1\n"
  },
  {
    "path": "schedules/29_10.csv",
    "content": "3,0,11,0,10,0,27,0,6,0,22,0\n29,0,8,0,28,0,15,0,5,0,23,0\n2,0,1,0,7,0,18,0,25,0,4,0\n17,0,26,0,19,0,9,0,21,0,24,0\n16,0,12,0,14,0,13,0,20,0,15,0\n26,0,23,0,11,0,6,0,2,0,19,0\n20,0,3,0,16,0,5,0,24,0,14,0\n22,0,21,0,10,0,1,0,29,0,13,0\n9,0,18,0,27,0,25,0,17,0,28,0\n12,0,8,0,6,0,7,0,4,0,24,0\n9,1,25,0,14,0,11,1,2,0,29,0\n1,1,27,0,3,0,8,1,19,0,13,0\n12,0,26,0,22,0,28,0,23,0,21,0\n15,0,4,0,16,0,20,0,10,0,18,0\n17,0,7,0,21,0,5,0,3,0,29,0\n19,0,12,0,25,0,26,0,10,0,16,0\n23,0,4,0,20,0,9,0,11,0,7,0\n24,0,2,0,18,0,28,0,5,0,22,0\n14,0,17,0,13,0,1,0,8,0,15,0\n27,0,5,0,4,0,6,0,23,0,10,0\n19,0,9,0,15,0,12,0,13,0,28,0\n22,0,3,0,17,0,6,0,25,0,16,0\n29,0,24,0,20,0,27,0,2,0,11,0\n7,0,8,0,14,0,21,0,26,0,18,0\n1,0,28,0,10,0,17,0,20,0,9,0\n25,0,21,0,11,0,15,0,12,0,18,0\n24,0,1,0,19,0,4,0,22,0,29,0\n26,0,5,0,6,0,16,0,8,0,27,0\n7,0,13,0,3,0,14,0,2,0,23,0\n24,0,25,0,27,0,15,0,21,0,6,0\n18,0,7,0,28,0,22,0,20,0,19,0\n8,0,4,0,10,0,2,0,3,0,26,0\n29,0,16,0,23,0,12,0,1,0,17,0\n5,0,13,0,9,0,11,0,14,0,4,0\n15,0,17,0,29,0,26,0,20,0,7,0\n24,0,23,0,22,0,16,0,18,0,13,0\n21,0,2,0,5,0,10,0,12,0,27,0\n11,0,19,0,28,0,25,0,3,0,8,0\n6,0,9,0,29,0,14,0,1,0,18,0\n10,0,2,0,15,0,28,0,24,0,16,0\n14,0,27,0,20,0,9,0,8,0,22,0\n5,0,7,0,12,0,26,0,1,0,25,0\n21,0,13,0,4,0,11,0,6,0,17,0\n23,0,3,0,9,0,19,0,10,0,7,0\n11,0,22,0,1,0,26,0,15,0,24,0\n28,0,6,0,4,0,19,0,14,0,29,0\n18,0,17,0,8,0,3,0,12,0,21,0\n2,0,25,0,20,0,13,0,23,0,27,0\n16,0,9,0,1,0,5,0,11,0,8,0\n"
  },
  {
    "path": "schedules/29_11.csv",
    "content": "6,0,27,0,1,0,24,0,16,0,23,0\n15,0,2,0,4,0,29,0,17,0,14,0\n19,0,18,0,9,0,11,0,26,0,28,0\n21,0,13,0,5,0,22,0,10,0,12,0\n20,0,3,0,25,0,8,0,7,0,6,0\n18,0,27,0,16,0,13,0,2,0,17,0\n5,0,12,0,8,0,9,0,23,0,4,0\n20,0,10,0,15,0,19,0,11,0,29,0\n1,0,25,0,28,0,22,0,3,0,26,0\n7,0,24,0,17,0,21,0,14,0,19,0\n20,1,9,0,2,0,4,1,6,0,3,0\n18,1,26,0,14,0,22,1,16,0,1,0\n24,1,28,0,8,0,7,0,12,0,29,0\n15,0,11,0,5,0,13,0,25,0,27,0\n10,0,23,0,7,0,21,0,2,0,16,0\n28,0,12,0,6,0,15,0,27,0,22,0\n29,0,9,0,8,0,26,0,24,0,13,0\n5,0,4,0,19,0,21,0,11,0,1,0\n3,0,23,0,17,0,14,0,25,0,10,0\n18,0,29,0,13,0,20,0,19,0,27,0\n24,0,2,0,6,0,1,0,12,0,4,0\n21,0,7,0,3,0,14,0,23,0,11,0\n16,0,26,0,8,0,20,0,5,0,28,0\n22,0,18,0,17,0,25,0,9,0,15,0\n10,0,19,0,28,0,13,0,6,0,14,0\n27,0,3,0,29,0,5,0,22,0,7,0\n10,0,24,0,1,0,9,0,20,0,17,0\n25,0,16,0,12,0,26,0,4,0,21,0\n2,0,18,0,11,0,15,0,23,0,8,0\n20,0,12,0,13,0,25,0,4,0,7,0\n21,0,18,0,23,0,29,0,6,0,22,0\n17,0,26,0,1,0,27,0,10,0,11,0\n16,0,5,0,9,0,19,0,24,0,3,0\n28,0,15,0,14,0,8,0,2,0,25,0\n4,0,6,0,17,0,5,0,26,0,23,0\n16,0,10,0,29,0,1,0,9,0,14,0\n7,0,11,0,20,0,12,0,27,0,2,0\n21,0,24,0,15,0,3,0,28,0,18,0\n8,0,22,0,11,0,19,0,13,0,16,0\n26,0,29,0,2,0,25,0,5,0,24,0\n22,0,19,0,23,0,4,0,28,0,13,0\n12,0,14,0,3,0,10,0,6,0,18,0\n17,0,21,0,27,0,20,0,1,0,8,0\n7,0,16,0,14,0,9,0,15,0,26,0\n21,0,28,0,22,0,10,0,2,0,5,0\n6,0,25,0,19,0,9,0,27,0,7,0\n29,0,23,0,20,0,12,0,15,0,17,0\n13,0,1,0,3,0,18,0,8,0,4,0\n24,0,22,0,25,0,11,0,17,0,16,0\n15,0,7,0,18,0,1,0,5,0,29,0\n13,0,11,0,9,0,20,0,21,0,6,0\n24,0,27,0,4,0,10,0,3,0,8,0\n26,0,19,0,12,0,2,0,28,0,23,0\n14,0,4,0,22,0,20,0,18,0,24,0\n"
  },
  {
    "path": "schedules/29_12.csv",
    "content": "27,0,4,0,29,0,19,0,5,0,25,0\n7,0,10,0,2,0,23,0,24,0,26,0\n17,0,13,0,28,0,11,0,22,0,16,0\n18,0,3,0,21,0,6,0,12,0,15,0\n1,0,9,0,14,0,20,0,8,0,29,0\n22,0,28,0,19,0,21,0,23,0,24,0\n3,0,10,0,20,0,8,0,16,0,14,0\n5,0,12,0,25,0,18,0,4,0,17,0\n13,0,15,0,2,0,1,0,27,0,26,0\n9,0,7,0,23,0,6,0,11,0,28,0\n19,0,3,0,26,0,14,0,16,0,5,0\n24,0,21,0,6,0,7,0,29,0,13,0\n1,0,20,0,15,0,22,0,17,0,9,0\n4,0,25,0,11,0,10,0,12,0,18,0\n27,0,8,0,9,0,2,0,6,0,23,0\n21,0,15,0,5,0,10,0,14,0,17,0\n28,0,24,0,3,0,27,0,20,0,12,0\n18,0,11,0,19,0,1,0,29,0,16,0\n8,0,7,0,26,0,22,0,2,0,4,0\n13,0,11,0,14,0,25,0,17,0,24,0\n8,0,1,0,10,0,27,0,28,0,7,0\n23,0,16,0,18,0,26,0,12,0,21,0\n2,0,25,0,20,0,6,0,19,0,22,0\n29,0,15,0,9,0,3,0,13,0,4,0\n5,0,6,0,17,0,24,0,27,0,18,0\n10,0,1,0,2,0,14,0,21,0,20,0\n12,0,9,0,11,0,8,0,4,0,5,0\n29,0,13,0,22,0,19,0,16,0,7,0\n23,0,25,0,28,0,3,0,15,0,26,0\n12,0,11,0,1,0,29,0,27,0,19,0\n14,0,3,0,6,0,13,0,10,0,21,0\n8,0,22,0,23,0,18,0,2,0,25,0\n7,0,24,0,9,0,20,0,26,0,5,0\n4,0,15,0,28,0,17,0,16,0,11,0\n14,0,19,0,2,0,5,0,18,0,9,0\n20,0,24,0,22,0,3,0,1,0,28,0\n12,0,25,0,7,0,6,0,10,0,29,0\n4,0,26,0,16,0,15,0,27,0,23,0\n13,0,17,0,19,0,21,0,8,0,3,0\n16,0,12,0,2,0,29,0,5,0,24,0\n11,0,8,0,27,0,25,0,22,0,21,0\n20,0,26,0,17,0,4,0,10,0,9,0\n7,0,18,0,6,0,28,0,14,0,15,0\n23,0,4,0,21,0,13,0,1,0,24,0\n15,0,28,0,16,0,12,0,19,0,8,0\n18,0,26,0,14,0,7,0,20,0,11,0\n22,0,10,0,27,0,25,0,29,0,3,0\n1,0,23,0,5,0,6,0,13,0,9,0\n17,0,21,0,27,0,2,0,28,0,26,0\n13,0,16,0,20,0,25,0,12,0,3,0\n22,0,5,0,7,0,11,0,15,0,10,0\n6,0,4,0,24,0,14,0,19,0,23,0\n18,0,29,0,1,0,2,0,17,0,9,0\n10,0,24,0,19,0,8,0,15,0,25,0\n16,0,9,0,21,0,14,0,22,0,27,0\n3,0,2,0,5,0,4,0,1,0,7,0\n8,0,17,0,18,0,12,0,23,0,13,0\n29,0,11,0,26,0,6,0,28,0,20,0\n"
  },
  {
    "path": "schedules/29_13.csv",
    "content": "10,0,7,0,19,0,20,0,13,0,23,0\n25,0,9,0,12,0,21,0,28,0,1,0\n17,0,26,0,5,0,15,0,27,0,11,0\n16,0,18,0,2,0,29,0,14,0,24,0\n4,0,8,0,3,0,22,0,6,0,11,0\n5,0,9,0,1,0,7,0,24,0,13,0\n19,0,14,0,26,0,15,0,4,0,22,0\n12,0,17,0,3,0,18,0,25,0,23,0\n21,0,10,0,28,0,20,0,29,0,27,0\n16,0,8,0,15,0,2,0,6,0,12,0\n19,0,25,0,4,0,18,1,1,0,10,0\n9,0,20,0,24,0,14,0,22,0,8,0\n5,0,13,0,2,0,3,0,28,0,27,0\n6,0,21,0,16,0,17,0,23,0,11,0\n7,0,28,0,20,0,29,0,26,0,8,0\n21,0,27,0,22,0,5,0,10,0,14,0\n17,0,19,0,15,0,2,0,3,0,9,0\n11,0,18,0,7,0,26,0,13,0,6,0\n16,0,29,0,23,0,24,0,4,0,12,0\n1,0,17,0,14,0,25,0,10,0,2,0\n22,0,18,0,5,0,12,0,11,0,13,0\n28,0,6,0,8,0,23,0,24,0,19,0\n4,0,7,0,1,0,9,0,15,0,21,0\n26,0,25,0,27,0,16,0,3,0,20,0\n29,0,5,0,2,0,19,0,1,0,11,0\n21,0,25,0,14,0,4,0,13,0,16,0\n17,0,7,0,27,0,28,0,29,0,22,0\n20,0,18,0,12,0,23,0,9,0,8,0\n6,0,10,0,24,0,26,0,3,0,15,0\n17,0,9,0,29,0,14,0,19,0,13,0\n6,0,18,0,4,0,8,0,5,0,28,0\n27,0,10,0,23,0,15,0,7,0,2,0\n24,0,3,0,22,0,20,0,1,0,25,0\n26,0,16,0,11,0,21,0,12,0,4,0\n9,0,25,0,18,0,15,0,5,0,6,0\n11,0,21,0,3,0,19,0,14,0,27,0\n13,0,1,0,24,0,17,0,20,0,26,0\n28,0,23,0,2,0,16,0,22,0,10,0\n12,0,29,0,25,0,8,0,7,0,3,0\n14,0,17,0,2,0,5,0,4,0,20,0\n13,0,10,0,18,0,24,0,26,0,21,0\n23,0,22,0,1,0,6,0,7,0,29,0\n19,0,9,0,8,0,27,0,12,0,16,0\n15,0,28,0,24,0,11,0,22,0,25,0\n20,0,8,0,16,0,5,0,10,0,19,0\n23,0,15,0,12,0,17,0,13,0,28,0\n4,0,29,0,11,0,18,0,1,0,27,0\n6,0,3,0,14,0,9,0,7,0,26,0\n2,0,8,0,27,0,21,0,5,0,23,0\n22,0,3,0,7,0,20,0,18,0,15,0\n2,0,11,0,24,0,10,0,9,0,4,0\n19,0,13,0,21,0,25,0,6,0,17,0\n26,0,12,0,1,0,14,0,16,0,28,0\n6,0,9,0,22,0,29,0,2,0,21,0\n27,0,13,0,4,0,18,0,28,0,26,0\n29,0,1,0,10,0,12,0,5,0,3,0\n20,0,19,0,11,0,16,0,7,0,17,0\n23,0,15,0,14,0,25,0,8,0,24,0\n20,0,28,0,12,0,1,0,6,0,27,0\n16,0,24,0,5,0,3,0,18,0,17,0\n26,0,4,0,23,0,19,0,2,0,22,0\n29,0,13,0,15,0,14,0,11,0,9,0\n7,0,10,0,25,0,8,0,21,0,18,0\n"
  },
  {
    "path": "schedules/29_14.csv",
    "content": "3,0,25,0,6,0,14,0,26,0,20,0\n13,0,19,0,28,0,7,0,8,0,29,0\n16,0,22,0,27,0,5,0,10,0,18,0\n9,0,24,0,15,0,4,0,11,0,23,0\n2,0,1,0,12,0,17,0,21,0,22,0\n5,0,13,0,6,0,25,0,19,0,4,0\n11,0,24,0,12,0,17,0,20,0,10,0\n27,0,28,0,26,0,21,0,2,0,16,0\n18,0,7,0,14,0,1,0,23,0,8,0\n29,0,9,0,6,0,15,0,3,0,27,0\n20,1,24,0,2,0,28,1,4,0,12,0\n29,0,16,0,23,0,10,0,14,0,15,0\n5,0,8,0,25,0,19,0,11,0,3,0\n21,0,13,0,18,0,17,0,9,0,7,0\n26,0,10,0,23,0,22,0,1,0,14,0\n5,0,12,0,18,0,27,0,6,0,7,0\n11,0,25,0,1,0,4,0,24,0,22,0\n8,0,20,0,13,0,3,0,28,0,2,0\n21,0,15,0,26,0,17,0,19,0,29,0\n16,0,28,0,7,0,9,0,11,0,8,0\n27,0,23,0,19,0,25,0,17,0,14,0\n2,0,22,0,15,0,3,0,13,0,6,0\n9,0,10,0,18,0,20,0,16,0,12,0\n5,0,24,0,21,0,29,0,26,0,1,0\n4,0,14,0,16,0,8,0,15,0,28,0\n21,0,23,0,25,0,19,0,12,0,6,0\n4,0,5,0,1,0,9,0,10,0,3,0\n26,0,11,0,7,0,13,0,2,0,27,0\n17,0,18,0,22,0,29,0,20,0,24,0\n16,0,21,0,12,0,26,0,3,0,4,0\n29,0,18,0,11,0,14,0,20,0,19,0\n7,0,24,0,1,0,8,0,5,0,2,0\n9,0,27,0,17,0,10,0,28,0,6,0\n23,0,13,0,22,0,25,0,15,0,21,0\n24,0,4,0,10,0,6,0,16,0,8,0\n22,0,28,0,25,0,26,0,5,0,7,0\n2,0,20,0,23,0,18,0,19,0,3,0\n12,0,14,0,27,0,11,0,15,0,13,0\n29,0,17,0,6,0,9,0,1,0,16,0\n24,0,8,0,18,0,23,0,15,0,12,0\n14,0,1,0,13,0,22,0,9,0,5,0\n7,0,17,0,3,0,25,0,29,0,28,0\n10,0,27,0,11,0,21,0,20,0,4,0\n19,0,26,0,22,0,2,0,9,0,23,0\n25,0,10,0,1,0,21,0,7,0,13,0\n8,0,26,0,12,0,4,0,6,0,29,0\n11,0,28,0,3,0,19,0,18,0,24,0\n17,0,27,0,20,0,16,0,15,0,5,0\n2,0,18,0,10,0,14,0,9,0,25,0\n15,0,20,0,6,0,4,0,27,0,13,0\n29,0,21,0,22,0,11,0,12,0,28,0\n19,0,14,0,8,0,17,0,26,0,24,0\n3,0,1,0,16,0,7,0,2,0,23,0\n5,0,11,0,14,0,21,0,8,0,6,0\n13,0,9,0,26,0,24,0,23,0,3,0\n17,0,2,0,4,0,29,0,5,0,27,0\n28,0,20,0,1,0,25,0,18,0,16,0\n15,0,7,0,19,0,22,0,10,0,12,0\n14,0,29,0,3,0,27,0,8,0,1,0\n9,0,21,0,19,0,24,0,16,0,13,0\n7,0,25,0,20,0,15,0,22,0,10,0\n28,0,5,0,4,0,23,0,26,0,18,0\n2,0,6,0,11,0,17,0,12,0,1,0\n20,0,19,0,7,0,21,0,27,0,28,0\n8,0,3,0,22,0,11,0,17,0,16,0\n23,0,5,0,6,0,13,0,10,0,29,0\n15,0,4,0,18,0,26,0,25,0,2,0\n12,0,9,0,20,0,24,0,14,0,28,0\n"
  },
  {
    "path": "schedules/29_2.csv",
    "content": "14,0,22,0,2,0,7,0,29,0,21,0\n26,0,10,0,15,0,27,0,11,0,8,0\n28,0,18,0,4,0,19,0,16,0,20,0\n12,0,6,0,25,0,17,0,13,0,3,0\n1,0,9,0,8,0,5,0,23,0,24,0\n27,0,28,0,12,0,6,0,4,0,21,0\n7,0,9,0,19,0,3,0,26,0,25,0\n20,0,24,0,11,0,22,0,13,0,23,0\n17,0,15,0,16,0,1,0,14,0,29,0\n2,0,5,0,6,1,10,0,18,0,3,1\n"
  },
  {
    "path": "schedules/29_3.csv",
    "content": "2,0,26,0,13,0,22,0,19,0,20,0\n9,0,1,0,24,0,29,0,23,0,12,0\n28,0,11,0,3,0,7,0,21,0,4,0\n14,0,5,0,18,0,8,0,17,0,25,0\n15,0,10,0,16,0,27,0,6,0,13,0\n3,1,17,0,12,0,8,1,26,0,4,0\n16,1,29,0,6,0,19,0,25,0,21,0\n28,0,27,0,20,0,11,0,9,0,5,0\n1,0,18,0,23,0,15,0,2,0,7,0\n24,0,22,0,11,0,14,0,10,0,6,0\n8,0,29,0,13,0,26,0,28,0,23,0\n7,0,19,0,16,0,5,0,10,0,12,0\n27,0,2,0,25,0,3,0,4,0,24,0\n14,0,17,0,21,0,20,0,15,0,1,0\n18,0,22,0,8,0,9,0,3,0,16,0\n"
  },
  {
    "path": "schedules/29_4.csv",
    "content": "24,0,25,0,6,0,5,0,7,0,10,0\n14,0,2,0,15,0,29,0,22,0,20,0\n16,0,3,0,17,0,19,0,18,0,12,0\n26,0,27,0,13,0,21,0,4,0,1,0\n9,0,8,0,28,0,11,0,23,0,15,0\n14,0,13,0,20,0,18,0,24,0,27,0\n22,0,10,0,21,0,3,0,12,0,8,0\n26,0,9,0,16,0,29,0,5,0,6,0\n7,0,4,0,2,0,17,0,28,0,11,0\n25,0,1,0,20,0,19,0,23,0,16,0\n15,1,18,0,10,0,21,1,26,0,11,0\n28,1,22,0,27,0,5,1,25,0,9,0\n8,0,17,0,6,0,14,0,1,0,24,0\n7,0,12,0,23,0,3,0,13,0,29,0\n19,0,4,0,9,0,2,0,24,0,21,0\n11,0,3,0,6,0,13,0,25,0,15,0\n14,0,29,0,28,0,10,0,19,0,1,0\n5,0,23,0,22,0,17,0,18,0,4,0\n7,0,27,0,16,0,26,0,8,0,2,0\n12,0,21,0,5,0,20,0,15,0,28,0\n"
  },
  {
    "path": "schedules/29_5.csv",
    "content": "25,0,7,0,3,0,24,0,13,0,11,0\n4,0,17,0,10,0,15,0,29,0,20,0\n21,0,26,0,22,0,1,0,6,0,19,0\n2,0,12,0,8,0,23,0,28,0,16,0\n9,0,18,0,5,0,14,0,27,0,7,0\n2,0,1,0,21,0,8,0,24,0,10,0\n15,0,3,0,18,0,5,0,23,0,19,0\n20,0,14,0,12,0,22,0,29,0,25,0\n11,0,16,0,27,0,6,0,13,0,17,0\n28,0,9,0,24,0,4,0,26,0,18,0\n20,1,21,0,16,0,14,1,11,0,5,0\n2,1,23,0,17,0,13,1,22,0,9,0\n3,1,27,0,19,0,8,0,25,0,4,0\n12,0,6,0,26,0,10,0,7,0,15,0\n1,0,29,0,9,0,28,0,13,0,3,0\n5,0,25,0,6,0,8,0,26,0,17,0\n28,0,22,0,20,0,21,0,27,0,15,0\n29,0,4,0,16,0,18,0,1,0,7,0\n19,0,14,0,24,0,11,0,23,0,10,0\n2,0,13,0,4,0,12,0,21,0,5,0\n3,0,22,0,10,0,16,0,25,0,18,0\n19,0,17,0,7,0,2,0,14,0,28,0\n24,0,29,0,23,0,27,0,20,0,6,0\n11,0,8,0,1,0,9,0,12,0,15,0\n26,0,14,0,13,0,20,0,2,0,3,0\n"
  },
  {
    "path": "schedules/29_6.csv",
    "content": "16,0,20,0,5,0,26,0,7,0,6,0\n19,0,25,0,23,0,8,0,2,0,18,0\n27,0,9,0,3,0,22,0,1,0,24,0\n11,0,15,0,12,0,10,0,4,0,17,0\n14,0,28,0,29,0,13,0,21,0,27,0\n16,0,25,0,2,0,20,0,12,0,22,0\n7,0,9,0,17,0,6,0,21,0,18,0\n8,0,29,0,24,0,1,0,15,0,5,0\n4,0,19,0,14,0,3,0,26,0,28,0\n23,0,10,0,6,0,13,0,11,0,25,0\n17,0,8,0,22,0,28,0,18,0,27,0\n11,0,2,0,24,0,16,0,21,0,26,0\n13,0,5,0,4,0,9,0,19,0,20,0\n7,0,12,0,3,0,23,0,15,0,29,0\n14,0,1,0,18,0,10,0,20,0,11,0\n13,0,8,0,7,0,4,0,12,0,24,0\n29,0,21,0,10,0,6,0,19,0,22,0\n15,0,16,0,14,0,23,0,1,0,9,0\n27,0,17,0,26,0,25,0,3,0,5,0\n28,0,10,0,9,0,2,0,7,0,23,0\n18,0,3,0,17,0,16,0,13,0,29,0\n19,0,26,0,12,0,1,0,27,0,11,0\n15,0,24,0,21,0,28,0,25,0,20,0\n6,0,4,0,8,0,14,0,2,0,22,0\n5,0,28,0,21,0,12,0,10,0,16,0\n1,0,19,0,7,0,17,0,14,0,25,0\n23,0,18,0,4,0,6,0,24,0,27,0\n15,0,13,0,22,0,2,0,5,0,26,0\n3,0,20,0,29,0,9,0,11,0,8,0\n"
  },
  {
    "path": "schedules/29_7.csv",
    "content": "4,0,29,0,8,0,3,0,16,0,6,0\n18,0,17,0,21,0,27,0,5,0,28,0\n15,0,2,0,20,0,22,0,14,0,12,0\n24,0,26,0,25,0,23,0,7,0,10,0\n19,0,11,0,13,0,9,0,1,0,22,0\n14,0,25,0,6,0,5,0,18,0,29,0\n1,0,19,0,10,0,24,0,17,0,4,0\n27,0,7,0,9,0,8,0,3,0,12,0\n20,0,16,0,28,0,26,0,15,0,11,0\n13,0,23,0,9,0,2,0,21,0,7,0\n3,1,17,0,22,0,4,0,25,0,12,0\n2,0,18,0,13,0,16,0,26,0,19,0\n10,0,14,0,15,0,8,0,6,0,11,0\n29,0,28,0,23,0,5,0,20,0,1,0\n27,0,21,0,8,0,24,0,22,0,19,0\n9,0,18,0,14,0,16,0,17,0,10,0\n15,0,1,0,4,0,27,0,26,0,2,0\n12,0,6,0,29,0,24,0,21,0,23,0\n5,0,3,0,11,0,13,0,7,0,20,0\n28,0,19,0,12,0,25,0,10,0,29,0\n27,0,14,0,4,0,9,0,20,0,21,0\n25,0,23,0,18,0,15,0,8,0,13,0\n22,0,16,0,7,0,1,0,28,0,6,0\n26,0,17,0,5,0,2,0,11,0,24,0\n3,0,7,0,19,0,16,0,14,0,23,0\n6,0,13,0,10,0,17,0,20,0,27,0\n12,0,21,0,5,0,26,0,8,0,1,0\n25,0,11,0,28,0,2,0,3,0,4,0\n9,0,24,0,29,0,15,0,18,0,22,0\n4,0,16,0,11,0,23,0,27,0,12,0\n17,0,8,0,7,0,15,0,29,0,21,0\n13,0,1,0,24,0,28,0,3,0,14,0\n6,0,26,0,20,0,19,0,9,0,25,0\n22,0,2,0,5,0,18,0,10,0,3,0\n"
  },
  {
    "path": "schedules/29_8.csv",
    "content": "5,0,19,0,21,0,11,0,18,0,4,0\n15,0,8,0,26,0,1,0,23,0,24,0\n6,0,9,0,22,0,20,0,13,0,27,0\n2,0,7,0,25,0,10,0,3,0,12,0\n16,0,17,0,14,0,28,0,29,0,6,0\n11,0,20,0,10,0,24,0,4,0,15,0\n7,0,27,0,21,0,8,0,16,0,23,0\n1,0,3,0,2,0,13,0,28,0,19,0\n17,0,5,0,26,0,18,0,14,0,12,0\n25,0,22,0,23,0,29,0,9,0,11,0\n5,1,13,0,12,0,10,1,16,0,28,0\n15,0,6,0,2,0,26,0,21,0,22,0\n14,0,24,0,7,0,19,0,1,0,20,0\n3,0,8,0,29,0,18,0,17,0,9,0\n4,0,25,0,20,0,27,0,15,0,12,0\n29,0,23,0,19,0,10,0,5,0,8,0\n3,0,22,0,13,0,25,0,14,0,21,0\n28,0,27,0,11,0,26,0,7,0,18,0\n1,0,16,0,9,0,2,0,4,0,17,0\n6,0,27,0,26,0,24,0,10,0,19,0\n14,0,13,0,9,0,11,0,15,0,21,0\n7,0,17,0,28,0,23,0,2,0,5,0\n1,0,8,0,18,0,12,0,20,0,6,0\n29,0,24,0,22,0,3,0,16,0,4,0\n10,0,21,0,18,0,25,0,1,0,13,0\n24,0,17,0,12,0,11,0,19,0,22,0\n6,0,25,0,5,0,9,0,26,0,3,0\n28,0,4,0,8,0,15,0,29,0,7,0\n20,0,23,0,14,0,16,0,27,0,2,0\n21,0,9,0,24,0,28,0,12,0,25,0\n4,0,29,0,27,0,13,0,26,0,2,0\n16,0,19,0,18,0,10,0,23,0,15,0\n5,0,14,0,22,0,6,0,7,0,8,0\n20,0,3,0,15,0,17,0,11,0,1,0\n18,0,24,0,13,0,9,0,5,0,7,0\n25,0,16,0,11,0,19,0,2,0,8,0\n29,0,26,0,10,0,21,0,20,0,17,0\n12,0,4,0,23,0,6,0,3,0,14,0\n1,0,28,0,5,0,22,0,27,0,10,0\n"
  },
  {
    "path": "schedules/29_9.csv",
    "content": "17,0,16,0,21,0,25,0,19,0,11,0\n12,0,5,0,1,0,8,0,23,0,14,0\n3,0,28,0,27,0,29,0,26,0,22,0\n10,0,4,0,18,0,24,0,15,0,13,0\n7,0,9,0,1,0,20,0,6,0,2,0\n22,0,5,0,21,0,24,0,10,0,12,0\n25,0,9,0,4,0,27,0,29,0,7,0\n16,0,23,0,28,0,17,0,3,0,14,0\n11,0,26,0,2,0,8,0,13,0,18,0\n6,0,19,0,22,0,15,0,20,0,14,0\n10,1,3,0,9,0,17,1,11,0,13,0\n1,0,25,0,2,0,5,1,28,0,15,0\n24,0,18,0,27,0,20,0,12,0,19,0\n4,0,26,0,7,0,21,0,23,0,29,0\n6,0,14,0,18,0,16,0,8,0,25,0\n19,0,17,0,26,0,22,0,2,0,12,0\n23,0,4,0,24,0,11,0,28,0,6,0\n7,0,15,0,21,0,9,0,13,0,5,0\n8,0,29,0,3,0,10,0,1,0,20,0\n27,0,13,0,23,0,16,0,4,0,22,0\n3,0,15,0,11,0,7,0,8,0,28,0\n14,0,19,0,24,0,9,0,12,0,29,0\n26,0,25,0,21,0,17,0,18,0,5,0\n6,0,16,0,1,0,2,0,27,0,10,0\n20,0,8,0,9,0,25,0,18,0,23,0\n17,0,24,0,6,0,13,0,1,0,26,0\n14,0,28,0,10,0,20,0,4,0,21,0\n27,0,15,0,12,0,22,0,7,0,3,0\n29,0,2,0,19,0,16,0,5,0,11,0\n10,0,22,0,23,0,26,0,18,0,9,0\n12,0,25,0,7,0,4,0,19,0,1,0\n3,0,16,0,13,0,29,0,5,0,24,0\n15,0,2,0,17,0,14,0,27,0,11,0\n20,0,28,0,29,0,6,0,21,0,8,0\n10,0,25,0,13,0,7,0,19,0,23,0\n11,0,18,0,20,0,6,0,5,0,27,0\n9,0,22,0,24,0,17,0,8,0,1,0\n4,0,2,0,14,0,21,0,12,0,3,0\n28,0,26,0,5,0,16,0,15,0,9,0\n17,0,25,0,29,0,2,0,24,0,3,0\n20,0,13,0,7,0,16,0,26,0,14,0\n11,0,12,0,23,0,10,0,15,0,6,0\n18,0,21,0,19,0,22,0,1,0,28,0\n8,0,10,0,5,0,27,0,4,0,17,0\n"
  },
  {
    "path": "schedules/30_1.csv",
    "content": "18,0,20,0,4,0,30,0,3,0,21,0\n27,0,26,0,15,0,29,0,7,0,10,0\n8,0,16,0,23,0,19,0,25,0,6,0\n2,0,13,0,24,0,12,0,9,0,14,0\n17,0,28,0,22,0,1,0,5,0,11,0\n"
  },
  {
    "path": "schedules/30_10.csv",
    "content": "8,0,10,0,25,0,1,0,18,0,17,0\n14,0,27,0,30,0,12,0,28,0,6,0\n15,0,26,0,23,0,16,0,3,0,29,0\n20,0,9,0,19,0,4,0,22,0,24,0\n7,0,13,0,5,0,2,0,21,0,11,0\n20,0,14,0,10,0,16,0,6,0,25,0\n28,0,3,0,22,0,15,0,17,0,8,0\n1,0,11,0,13,0,21,0,27,0,9,0\n7,0,18,0,24,0,2,0,26,0,30,0\n12,0,29,0,4,0,23,0,5,0,19,0\n6,0,18,0,10,0,3,0,11,0,20,0\n8,0,24,0,23,0,7,0,2,0,14,0\n19,0,25,0,21,0,29,0,28,0,1,0\n16,0,30,0,22,0,27,0,15,0,4,0\n12,0,5,0,17,0,9,0,26,0,13,0\n8,0,27,0,28,0,2,0,10,0,29,0\n11,0,22,0,26,0,5,0,1,0,14,0\n3,0,9,0,25,0,20,0,24,0,30,0\n4,0,17,0,6,0,16,0,23,0,13,0\n21,0,7,0,15,0,19,0,12,0,18,0\n8,0,16,0,1,0,24,0,3,0,5,0\n18,0,26,0,4,0,12,0,14,0,21,0\n25,0,17,0,30,0,29,0,11,0,9,0\n15,0,28,0,13,0,20,0,27,0,23,0\n6,0,22,0,2,0,19,0,7,0,10,0\n23,0,11,0,17,0,8,0,18,0,20,0\n27,0,3,0,6,0,25,0,26,0,5,0\n1,0,4,0,2,0,30,0,15,0,29,0\n28,0,19,0,14,0,7,0,9,0,16,0\n13,0,24,0,12,0,10,0,22,0,21,0\n1,0,20,0,26,0,4,0,14,0,23,0\n29,0,27,0,7,0,9,0,17,0,10,0\n13,0,3,0,2,0,12,0,22,0,25,0\n8,0,21,0,30,0,6,0,15,0,19,0\n18,0,11,0,5,0,28,0,16,0,24,0\n4,0,20,0,25,0,7,0,22,0,8,0\n16,0,5,0,21,0,23,0,30,0,10,0\n17,0,26,0,29,0,13,0,19,0,27,0\n1,0,6,0,9,0,28,0,2,0,18,0\n24,0,14,0,11,0,15,0,12,0,3,0\n29,0,22,0,18,0,13,0,6,0,30,0\n20,0,16,0,12,0,17,0,24,0,2,0\n19,0,3,0,4,0,11,0,27,0,25,0\n1,0,23,0,21,0,9,0,14,0,8,0\n10,0,15,0,5,0,7,0,26,0,28,0\n23,0,2,0,25,0,19,0,30,0,11,0\n16,0,27,0,18,0,12,0,7,0,1,0\n29,0,14,0,13,0,28,0,10,0,4,0\n15,0,24,0,9,0,6,0,5,0,8,0\n22,0,20,0,17,0,26,0,21,0,3,0\n"
  },
  {
    "path": "schedules/30_11.csv",
    "content": "5,0,3,0,30,0,4,0,13,0,18,0\n21,0,25,0,16,0,27,0,22,0,26,0\n23,0,2,0,6,0,7,0,17,0,20,0\n19,0,9,0,15,0,29,0,12,0,24,0\n14,0,10,0,11,0,1,0,28,0,8,0\n15,0,12,0,20,0,5,0,4,0,2,0\n26,0,23,0,14,0,1,0,30,0,22,0\n25,0,7,0,19,0,29,0,11,0,18,0\n17,0,13,0,28,0,3,0,21,0,8,0\n24,0,16,0,27,0,10,0,9,0,6,0\n28,0,4,0,2,0,21,0,14,0,30,0\n7,0,6,0,11,0,13,0,9,0,26,0\n16,0,12,0,22,0,24,0,1,0,17,0\n25,0,23,0,27,0,5,0,20,0,8,0\n10,0,29,0,19,0,15,0,18,0,3,0\n2,0,20,0,21,0,14,0,24,0,9,0\n6,0,18,0,8,0,12,0,25,0,26,0\n29,0,5,0,13,0,28,0,19,0,22,0\n3,0,4,0,27,0,1,0,11,0,23,0\n16,0,30,0,17,0,7,0,15,0,10,0\n11,0,2,0,25,0,26,0,5,0,19,0\n14,0,22,0,18,0,16,0,3,0,6,0\n1,0,20,0,29,0,7,0,28,0,21,0\n15,0,8,0,24,0,13,0,12,0,23,0\n17,0,27,0,9,0,10,0,30,0,4,0\n1,0,5,0,15,0,14,0,6,0,19,0\n30,0,8,0,26,0,2,0,22,0,9,0\n23,0,7,0,3,0,10,0,25,0,24,0\n4,0,12,0,11,0,16,0,28,0,29,0\n18,0,17,0,21,0,27,0,20,0,13,0\n9,0,16,0,23,0,29,0,3,0,25,0\n19,0,20,0,11,0,10,0,27,0,28,0\n18,0,7,0,26,0,21,0,15,0,4,0\n22,0,24,0,5,0,14,0,8,0,17,0\n30,0,13,0,2,0,6,0,12,0,1,0\n7,0,8,0,27,0,22,0,25,0,4,0\n24,0,30,0,6,0,21,0,11,0,5,0\n13,0,10,0,1,0,29,0,2,0,26,0\n12,0,19,0,3,0,16,0,14,0,20,0\n18,0,28,0,9,0,15,0,17,0,23,0\n21,0,27,0,12,0,3,0,11,0,13,0\n30,0,23,0,29,0,16,0,2,0,8,0\n4,0,26,0,1,0,24,0,19,0,18,0\n20,0,10,0,22,0,7,0,5,0,9,0\n14,0,28,0,15,0,6,0,25,0,17,0\n9,0,8,0,4,0,1,0,19,0,16,0\n17,0,10,0,26,0,28,0,12,0,5,0\n25,0,18,0,20,0,11,0,15,0,30,0\n24,0,2,0,3,0,27,0,6,0,29,0\n14,0,13,0,7,0,23,0,22,0,21,0\n8,0,12,0,10,0,3,0,26,0,20,0\n21,0,29,0,9,0,25,0,5,0,14,0\n11,0,17,0,22,0,2,0,18,0,1,0\n13,0,15,0,6,0,16,0,7,0,4,0\n28,0,23,0,24,0,27,0,30,0,19,0\n"
  },
  {
    "path": "schedules/30_12.csv",
    "content": "1,0,7,0,4,0,27,0,3,0,24,0\n26,0,2,0,20,0,22,0,17,0,8,0\n25,0,18,0,14,0,16,0,9,0,11,0\n12,0,30,0,19,0,29,0,15,0,13,0\n6,0,28,0,23,0,21,0,5,0,10,0\n24,0,20,0,27,0,13,0,19,0,22,0\n21,0,18,0,15,0,2,0,10,0,7,0\n26,0,28,0,29,0,1,0,16,0,5,0\n30,0,4,0,3,0,23,0,17,0,9,0\n8,0,25,0,11,0,6,0,14,0,12,0\n21,0,7,0,9,0,23,0,29,0,4,0\n2,0,25,0,5,0,28,0,27,0,30,0\n13,0,3,0,12,0,26,0,18,0,24,0\n10,0,1,0,8,0,15,0,22,0,20,0\n6,0,19,0,16,0,14,0,11,0,17,0\n30,0,13,0,20,0,28,0,4,0,1,0\n9,0,8,0,12,0,27,0,19,0,23,0\n18,0,22,0,2,0,29,0,25,0,21,0\n5,0,6,0,26,0,14,0,7,0,16,0\n10,0,17,0,24,0,11,0,3,0,15,0\n8,0,28,0,2,0,6,0,29,0,7,0\n19,0,11,0,20,0,3,0,26,0,21,0\n13,0,14,0,27,0,9,0,18,0,10,0\n12,0,24,0,15,0,16,0,5,0,30,0\n4,0,25,0,17,0,22,0,23,0,1,0\n30,0,9,0,2,0,26,0,8,0,11,0\n16,0,4,0,22,0,17,0,19,0,21,0\n29,0,3,0,5,0,1,0,18,0,25,0\n10,0,20,0,14,0,27,0,12,0,7,0\n28,0,13,0,24,0,23,0,6,0,15,0\n3,0,1,0,10,0,21,0,30,0,14,0\n25,0,22,0,6,0,23,0,4,0,26,0\n29,0,13,0,9,0,20,0,16,0,8,0\n15,0,28,0,7,0,11,0,12,0,18,0\n5,0,17,0,27,0,2,0,19,0,24,0\n21,0,20,0,14,0,30,0,25,0,23,0\n19,0,15,0,4,0,18,0,29,0,8,0\n3,0,9,0,6,0,22,0,12,0,5,0\n11,0,24,0,1,0,13,0,16,0,10,0\n26,0,2,0,27,0,7,0,17,0,28,0\n30,0,10,0,29,0,6,0,18,0,20,0\n23,0,11,0,2,0,1,0,9,0,26,0\n17,0,12,0,13,0,3,0,25,0,7,0\n27,0,15,0,16,0,24,0,4,0,21,0\n22,0,14,0,19,0,28,0,5,0,8,0\n27,0,10,0,6,0,12,0,2,0,21,0\n5,0,11,0,29,0,20,0,13,0,4,0\n24,0,23,0,8,0,16,0,28,0,25,0\n1,0,15,0,17,0,22,0,14,0,9,0\n3,0,19,0,18,0,26,0,7,0,30,0\n4,0,5,0,9,0,24,0,14,0,2,0\n22,0,7,0,11,0,29,0,20,0,12,0\n3,0,17,0,16,0,10,0,28,0,19,0\n25,0,15,0,26,0,30,0,6,0,1,0\n23,0,21,0,13,0,27,0,18,0,8,0\n12,0,26,0,28,0,20,0,10,0,4,0\n30,0,22,0,21,0,24,0,25,0,3,0\n16,0,18,0,23,0,27,0,9,0,11,0\n29,0,1,0,14,0,17,0,6,0,2,0\n7,0,19,0,8,0,5,0,15,0,13,0\n"
  },
  {
    "path": "schedules/30_13.csv",
    "content": "13,0,17,0,27,0,12,0,28,0,7,0\n30,0,6,0,19,0,26,0,10,0,18,0\n15,0,29,0,5,0,23,0,25,0,9,0\n1,0,21,0,2,0,20,0,11,0,22,0\n8,0,24,0,3,0,16,0,14,0,4,0\n7,0,30,0,21,0,26,0,15,0,22,0\n17,0,19,0,20,0,29,0,27,0,6,0\n28,0,11,0,9,0,18,0,16,0,2,0\n4,0,5,0,8,0,10,0,1,0,25,0\n23,0,3,0,14,0,12,0,13,0,24,0\n2,0,11,0,29,0,18,0,8,0,22,0\n26,0,9,0,16,0,23,0,27,0,1,0\n17,0,28,0,30,0,13,0,3,0,14,0\n25,0,12,0,21,0,7,0,4,0,19,0\n20,0,15,0,6,0,24,0,5,0,10,0\n12,0,16,0,3,0,28,0,18,0,26,0\n30,0,11,0,19,0,5,0,22,0,6,0\n23,0,9,0,8,0,21,0,25,0,27,0\n10,0,20,0,1,0,13,0,14,0,7,0\n29,0,15,0,17,0,24,0,2,0,4,0\n21,0,22,0,14,0,19,0,26,0,5,0\n17,0,10,0,4,0,11,0,3,0,25,0\n7,0,29,0,27,0,28,0,23,0,1,0\n16,0,6,0,13,0,18,0,15,0,9,0\n12,0,8,0,2,0,24,0,20,0,30,0\n18,0,3,0,5,0,9,0,10,0,7,0\n26,0,2,0,13,0,15,0,8,0,14,0\n30,0,27,0,4,0,1,0,19,0,12,0\n23,0,11,0,6,0,29,0,20,0,21,0\n28,0,22,0,24,0,25,0,16,0,17,0\n21,0,13,0,18,0,4,0,20,0,12,0\n9,0,11,0,1,0,15,0,19,0,28,0\n10,0,8,0,27,0,6,0,3,0,2,0\n25,0,14,0,5,0,16,0,29,0,30,0\n23,0,26,0,24,0,7,0,17,0,22,0\n14,0,27,0,5,0,4,0,30,0,18,0\n10,0,12,0,2,0,1,0,17,0,26,0\n13,0,19,0,9,0,21,0,11,0,8,0\n28,0,3,0,15,0,23,0,22,0,20,0\n7,0,25,0,6,0,29,0,16,0,24,0\n18,0,12,0,23,0,11,0,5,0,17,0\n10,0,15,0,28,0,4,0,29,0,22,0\n21,0,19,0,24,0,3,0,1,0,7,0\n8,0,9,0,25,0,14,0,6,0,30,0\n13,0,26,0,20,0,16,0,2,0,27,0\n17,0,14,0,12,0,6,0,9,0,21,0\n19,0,18,0,25,0,27,0,2,0,20,0\n16,0,22,0,10,0,13,0,4,0,28,0\n1,0,5,0,24,0,29,0,3,0,26,0\n23,0,7,0,15,0,30,0,8,0,11,0\n9,0,20,0,5,0,19,0,24,0,27,0\n15,0,16,0,11,0,3,0,17,0,30,0\n25,0,22,0,12,0,21,0,23,0,10,0\n26,0,4,0,6,0,28,0,14,0,2,0\n7,0,18,0,1,0,29,0,8,0,13,0\n3,0,27,0,22,0,26,0,11,0,12,0\n25,0,28,0,29,0,24,0,30,0,15,0\n4,0,6,0,1,0,9,0,17,0,2,0\n18,0,19,0,14,0,23,0,13,0,10,0\n20,0,8,0,16,0,7,0,5,0,21,0\n26,0,24,0,14,0,27,0,11,0,18,0\n16,0,2,0,23,0,5,0,12,0,15,0\n4,0,21,0,28,0,6,0,17,0,8,0\n9,0,20,0,7,0,3,0,10,0,19,0\n1,0,29,0,22,0,30,0,25,0,13,0\n"
  },
  {
    "path": "schedules/30_14.csv",
    "content": "20,0,4,0,3,0,17,0,19,0,5,0\n25,0,6,0,24,0,12,0,23,0,22,0\n26,0,27,0,7,0,1,0,28,0,11,0\n2,0,29,0,21,0,16,0,13,0,14,0\n15,0,30,0,8,0,9,0,10,0,18,0\n16,0,6,0,5,0,29,0,24,0,3,0\n28,0,25,0,23,0,30,0,17,0,15,0\n1,0,8,0,14,0,10,0,21,0,22,0\n4,0,20,0,27,0,18,0,26,0,12,0\n19,0,2,0,7,0,11,0,13,0,9,0\n15,0,21,0,10,0,22,0,30,0,4,0\n3,0,16,0,13,0,25,0,12,0,27,0\n20,0,23,0,14,0,5,0,28,0,9,0\n11,0,7,0,8,0,2,0,26,0,6,0\n1,0,29,0,18,0,24,0,17,0,19,0\n14,0,10,0,4,0,23,0,2,0,16,0\n1,0,22,0,3,0,8,0,12,0,7,0\n26,0,17,0,25,0,11,0,30,0,18,0\n29,0,19,0,13,0,15,0,9,0,20,0\n28,0,6,0,24,0,5,0,27,0,21,0\n26,0,9,0,4,0,12,0,13,0,25,0\n5,0,8,0,3,0,19,0,15,0,21,0\n24,0,22,0,23,0,16,0,18,0,7,0\n2,0,17,0,27,0,29,0,10,0,1,0\n28,0,14,0,30,0,20,0,6,0,11,0\n13,0,26,0,22,0,9,0,19,0,4,0\n18,0,11,0,24,0,28,0,7,0,14,0\n6,0,3,0,15,0,16,0,20,0,17,0\n29,0,2,0,25,0,8,0,21,0,27,0\n10,0,5,0,23,0,30,0,12,0,1,0\n13,0,4,0,24,0,29,0,8,0,22,0\n28,0,17,0,12,0,14,0,5,0,15,0\n23,0,21,0,16,0,26,0,7,0,19,0\n10,0,1,0,20,0,25,0,3,0,11,0\n9,0,30,0,2,0,27,0,6,0,18,0\n17,0,14,0,19,0,8,0,24,0,13,0\n25,0,29,0,16,0,7,0,5,0,20,0\n1,0,15,0,11,0,4,0,2,0,18,0\n22,0,27,0,28,0,3,0,10,0,26,0\n9,0,21,0,12,0,30,0,23,0,6,0\n18,0,28,0,19,0,3,0,2,0,22,0\n15,0,27,0,24,0,10,0,13,0,6,0\n5,0,30,0,12,0,4,0,7,0,23,0\n25,0,9,0,14,0,8,0,16,0,1,0\n20,0,11,0,21,0,17,0,29,0,26,0\n19,0,25,0,30,0,2,0,14,0,24,0\n6,0,17,0,5,0,22,0,9,0,7,0\n16,0,4,0,15,0,23,0,11,0,29,0\n10,0,3,0,12,0,28,0,26,0,21,0\n8,0,18,0,20,0,13,0,1,0,27,0\n5,0,24,0,21,0,25,0,10,0,2,0\n27,0,30,0,16,0,20,0,28,0,13,0\n9,0,1,0,23,0,18,0,19,0,3,0\n4,0,11,0,12,0,6,0,17,0,8,0\n15,0,26,0,7,0,22,0,29,0,14,0\n21,0,3,0,13,0,12,0,24,0,20,0\n10,0,16,0,19,0,25,0,5,0,18,0\n11,0,22,0,17,0,9,0,14,0,27,0\n7,0,30,0,6,0,29,0,1,0,4,0\n23,0,26,0,8,0,28,0,15,0,2,0\n1,0,7,0,19,0,21,0,14,0,6,0\n30,0,24,0,26,0,22,0,16,0,15,0\n29,0,9,0,12,0,28,0,10,0,8,0\n13,0,17,0,18,0,4,0,25,0,5,0\n20,0,11,0,2,0,23,0,3,0,27,0\n4,0,8,0,28,0,24,0,7,0,10,0\n6,0,12,0,2,0,23,0,15,0,13,0\n14,0,18,0,11,0,25,0,3,0,21,0\n22,0,19,0,27,0,30,0,20,0,29,0\n9,0,16,0,17,0,1,0,26,0,5,0\n"
  },
  {
    "path": "schedules/30_2.csv",
    "content": "15,0,10,0,17,0,28,0,30,0,14,0\n5,0,20,0,21,0,16,0,9,0,29,0\n8,0,3,0,23,0,27,0,11,0,13,0\n4,0,22,0,26,0,2,0,24,0,7,0\n25,0,18,0,6,0,19,0,1,0,12,0\n24,0,3,0,14,0,7,0,21,0,9,0\n11,0,17,0,12,0,22,0,19,0,5,0\n16,0,28,0,26,0,18,0,13,0,23,0\n2,0,27,0,15,0,10,0,29,0,25,0\n6,0,30,0,1,0,20,0,8,0,4,0\n"
  },
  {
    "path": "schedules/30_3.csv",
    "content": "18,0,30,0,17,0,9,0,8,0,28,0\n13,0,23,0,19,0,16,0,24,0,7,0\n14,0,2,0,27,0,20,0,21,0,12,0\n15,0,26,0,22,0,4,0,25,0,29,0\n5,0,11,0,10,0,3,0,1,0,6,0\n26,0,24,0,8,0,7,0,14,0,22,0\n4,0,11,0,21,0,30,0,10,0,23,0\n25,0,20,0,28,0,9,0,5,0,13,0\n3,0,27,0,19,0,2,0,15,0,17,0\n1,0,12,0,16,0,18,0,29,0,6,0\n7,0,30,0,9,0,22,0,3,0,2,0\n6,0,16,0,10,0,27,0,8,0,25,0\n1,0,18,0,15,0,20,0,24,0,23,0\n28,0,29,0,5,0,14,0,19,0,21,0\n26,0,12,0,4,0,13,0,11,0,17,0\n"
  },
  {
    "path": "schedules/30_4.csv",
    "content": "28,0,1,0,11,0,14,0,12,0,15,0\n9,0,8,0,4,0,22,0,6,0,16,0\n24,0,19,0,7,0,27,0,5,0,20,0\n29,0,3,0,26,0,17,0,10,0,2,0\n30,0,18,0,25,0,21,0,23,0,13,0\n17,0,19,0,9,0,2,0,28,0,8,0\n11,0,22,0,12,0,18,0,26,0,7,0\n27,0,13,0,14,0,21,0,29,0,4,0\n6,0,3,0,20,0,1,0,5,0,30,0\n23,0,25,0,15,0,16,0,24,0,10,0\n6,0,7,0,14,0,18,0,19,0,2,0\n10,0,21,0,5,0,4,0,11,0,17,0\n24,0,15,0,29,0,30,0,9,0,22,0\n27,0,26,0,1,0,25,0,16,0,28,0\n23,0,8,0,20,0,12,0,3,0,13,0\n18,0,16,0,1,0,29,0,7,0,17,0\n8,0,14,0,21,0,15,0,20,0,26,0\n4,0,12,0,19,0,24,0,3,0,25,0\n2,0,11,0,9,0,30,0,23,0,27,0\n13,0,10,0,22,0,28,0,5,0,6,0\n"
  },
  {
    "path": "schedules/30_5.csv",
    "content": "15,0,4,0,24,0,11,0,6,0,27,0\n8,0,13,0,25,0,2,0,9,0,18,0\n26,0,1,0,20,0,19,0,30,0,5,0\n12,0,3,0,14,0,22,0,23,0,17,0\n28,0,16,0,29,0,10,0,7,0,21,0\n20,0,19,0,4,0,22,0,13,0,9,0\n10,0,14,0,30,0,7,0,6,0,8,0\n1,0,29,0,27,0,3,0,11,0,25,0\n15,0,18,0,17,0,26,0,21,0,23,0\n24,0,2,0,16,0,28,0,12,0,5,0\n6,0,10,0,29,0,17,0,13,0,1,0\n4,0,18,0,7,0,24,0,20,0,3,0\n16,0,30,0,22,0,27,0,15,0,2,0\n23,0,12,0,25,0,28,0,8,0,26,0\n9,0,19,0,11,0,21,0,5,0,14,0\n3,0,8,0,29,0,15,0,20,0,16,0\n17,0,2,0,7,0,27,0,19,0,23,0\n11,0,5,0,22,0,6,0,28,0,18,0\n24,0,21,0,13,0,25,0,1,0,14,0\n12,0,30,0,26,0,10,0,4,0,9,0\n14,0,19,0,6,0,18,0,25,0,16,0\n20,0,11,0,21,0,2,0,12,0,10,0\n15,0,1,0,8,0,4,0,28,0,17,0\n23,0,9,0,30,0,29,0,24,0,22,0\n26,0,13,0,5,0,7,0,3,0,27,0\n"
  },
  {
    "path": "schedules/30_6.csv",
    "content": "19,0,12,0,24,0,14,0,6,0,5,0\n22,0,30,0,17,0,2,0,29,0,21,0\n4,0,20,0,25,0,16,0,9,0,23,0\n10,0,8,0,27,0,7,0,15,0,13,0\n1,0,28,0,11,0,3,0,18,0,26,0\n5,0,19,0,13,0,24,0,23,0,4,0\n6,0,29,0,26,0,22,0,27,0,18,0\n2,0,28,0,12,0,25,0,16,0,15,0\n1,0,30,0,7,0,9,0,8,0,11,0\n3,0,20,0,14,0,21,0,10,0,17,0\n16,0,28,0,30,0,27,0,19,0,29,0\n3,0,22,0,1,0,20,0,12,0,13,0\n14,0,15,0,17,0,4,0,18,0,7,0\n8,0,24,0,21,0,25,0,23,0,26,0\n2,0,11,0,6,0,10,0,5,0,9,0\n8,0,7,0,14,0,28,0,22,0,20,0\n2,0,9,0,13,0,26,0,21,0,19,0\n4,0,12,0,10,0,18,0,29,0,30,0\n27,0,17,0,5,0,24,0,1,0,25,0\n15,0,6,0,23,0,3,0,11,0,16,0\n29,0,7,0,25,0,13,0,1,0,14,0\n23,0,22,0,10,0,17,0,9,0,28,0\n26,0,20,0,15,0,19,0,6,0,30,0\n8,0,3,0,12,0,27,0,2,0,4,0\n21,0,18,0,16,0,24,0,5,0,11,0\n27,0,23,0,13,0,30,0,2,0,14,0\n11,0,19,0,18,0,22,0,25,0,8,0\n7,0,17,0,26,0,16,0,5,0,12,0\n29,0,20,0,9,0,3,0,15,0,24,0\n4,0,21,0,1,0,6,0,28,0,10,0\n"
  },
  {
    "path": "schedules/30_7.csv",
    "content": "17,0,6,0,28,0,4,0,13,0,12,0\n20,0,7,0,21,0,2,0,18,0,11,0\n14,0,26,0,15,0,1,0,3,0,22,0\n27,0,8,0,10,0,29,0,24,0,23,0\n5,0,9,0,30,0,19,0,25,0,16,0\n18,0,4,0,23,0,2,0,13,0,26,0\n24,0,28,0,11,0,19,0,9,0,15,0\n6,0,21,0,1,0,5,0,8,0,3,0\n22,0,10,0,20,0,30,0,27,0,17,0\n16,0,12,0,14,0,7,0,29,0,25,0\n27,0,18,0,26,0,6,0,19,0,5,0\n2,0,3,0,15,0,12,0,25,0,17,0\n24,0,9,0,10,0,14,0,20,0,13,0\n30,0,29,0,21,0,23,0,7,0,28,0\n11,0,22,0,4,0,16,0,1,0,8,0\n10,0,13,0,30,0,15,0,21,0,5,0\n25,0,9,0,2,0,28,0,8,0,26,0\n16,0,17,0,24,0,1,0,29,0,18,0\n7,0,19,0,3,0,20,0,27,0,4,0\n14,0,22,0,23,0,11,0,12,0,6,0\n18,0,16,0,7,0,10,0,15,0,28,0\n9,0,14,0,27,0,17,0,21,0,4,0\n12,0,1,0,5,0,8,0,23,0,20,0\n25,0,11,0,30,0,26,0,6,0,24,0\n29,0,13,0,3,0,22,0,19,0,2,0\n12,0,24,0,20,0,26,0,21,0,16,0\n19,0,28,0,30,0,14,0,17,0,8,0\n3,0,23,0,25,0,18,0,9,0,22,0\n7,0,6,0,27,0,1,0,10,0,2,0\n4,0,5,0,29,0,13,0,11,0,15,0\n8,0,2,0,12,0,30,0,14,0,18,0\n13,0,28,0,16,0,27,0,3,0,11,0\n4,0,1,0,19,0,21,0,25,0,10,0\n17,0,23,0,5,0,22,0,7,0,24,0\n6,0,29,0,15,0,26,0,9,0,20,0\n"
  },
  {
    "path": "schedules/30_8.csv",
    "content": "29,0,4,0,8,0,28,0,11,0,14,0\n7,0,26,0,25,0,18,0,1,0,21,0\n15,0,19,0,22,0,5,0,16,0,30,0\n2,0,6,0,17,0,3,0,9,0,13,0\n24,0,23,0,27,0,10,0,12,0,20,0\n18,0,17,0,5,0,15,0,14,0,25,0\n4,0,16,0,20,0,23,0,8,0,3,0\n11,0,9,0,1,0,13,0,21,0,10,0\n28,0,19,0,12,0,2,0,27,0,7,0\n22,0,30,0,24,0,29,0,6,0,26,0\n16,0,17,0,25,0,21,0,27,0,4,0\n11,0,18,0,3,0,30,0,1,0,2,0\n23,0,13,0,15,0,29,0,12,0,22,0\n26,0,5,0,9,0,7,0,28,0,20,0\n14,0,8,0,19,0,24,0,6,0,10,0\n2,0,11,0,22,0,27,0,25,0,20,0\n23,0,21,0,5,0,8,0,6,0,30,0\n12,0,15,0,26,0,3,0,14,0,10,0\n1,0,19,0,16,0,9,0,28,0,17,0\n24,0,29,0,13,0,4,0,7,0,18,0\n3,0,15,0,20,0,9,0,8,0,27,0\n7,0,14,0,13,0,21,0,11,0,16,0\n6,0,23,0,25,0,2,0,19,0,26,0\n5,0,1,0,29,0,24,0,12,0,17,0\n10,0,22,0,18,0,28,0,4,0,30,0\n12,0,5,0,3,0,19,0,11,0,24,0\n6,0,4,0,22,0,7,0,15,0,1,0\n28,0,27,0,18,0,14,0,9,0,23,0\n17,0,21,0,29,0,16,0,2,0,10,0\n25,0,13,0,30,0,8,0,20,0,26,0\n21,0,28,0,2,0,15,0,24,0,5,0\n7,0,9,0,10,0,3,0,22,0,25,0\n8,0,16,0,18,0,11,0,6,0,12,0\n23,0,20,0,30,0,14,0,17,0,1,0\n13,0,4,0,26,0,27,0,19,0,29,0\n11,0,7,0,8,0,22,0,23,0,17,0\n21,0,19,0,3,0,20,0,18,0,29,0\n10,0,28,0,25,0,6,0,13,0,5,0\n30,0,14,0,12,0,2,0,9,0,4,0\n16,0,15,0,27,0,24,0,1,0,26,0\n"
  },
  {
    "path": "schedules/30_9.csv",
    "content": "2,0,27,0,4,0,29,0,5,0,14,0\n16,0,21,0,26,0,10,0,9,0,6,0\n1,0,15,0,22,0,23,0,17,0,7,0\n18,0,19,0,28,0,11,0,13,0,12,0\n25,0,24,0,8,0,3,0,30,0,20,0\n22,0,27,0,7,0,4,0,28,0,21,0\n14,0,23,0,8,0,20,0,10,0,19,0\n11,0,6,0,15,0,3,0,25,0,1,0\n12,0,29,0,26,0,2,0,24,0,18,0\n9,0,13,0,5,0,30,0,17,0,16,0\n28,0,24,0,27,0,15,0,23,0,19,0\n29,0,30,0,2,0,8,0,10,0,11,0\n1,0,17,0,20,0,7,0,9,0,26,0\n5,0,21,0,18,0,6,0,13,0,3,0\n4,0,12,0,14,0,22,0,25,0,16,0\n2,0,13,0,21,0,23,0,1,0,27,0\n14,0,26,0,3,0,8,0,12,0,7,0\n24,0,19,0,29,0,25,0,9,0,15,0\n10,0,16,0,18,0,22,0,17,0,5,0\n4,0,6,0,20,0,11,0,28,0,30,0\n9,0,3,0,16,0,27,0,29,0,17,0\n8,0,13,0,15,0,11,0,14,0,18,0\n6,0,24,0,22,0,2,0,20,0,5,0\n1,0,19,0,12,0,7,0,10,0,4,0\n30,0,23,0,21,0,25,0,26,0,28,0\n20,0,9,0,11,0,10,0,12,0,15,0\n22,0,29,0,3,0,19,0,26,0,2,0\n27,0,6,0,25,0,8,0,4,0,17,0\n30,0,1,0,18,0,24,0,14,0,21,0\n7,0,5,0,16,0,13,0,23,0,28,0\n30,0,12,0,27,0,3,0,19,0,17,0\n10,0,28,0,5,0,8,0,2,0,1,0\n4,0,26,0,15,0,16,0,13,0,14,0\n23,0,24,0,20,0,29,0,6,0,18,0\n25,0,7,0,11,0,21,0,22,0,9,0\n8,0,18,0,3,0,4,0,16,0,1,0\n7,0,6,0,14,0,28,0,29,0,9,0\n19,0,22,0,11,0,26,0,27,0,5,0\n17,0,2,0,12,0,21,0,15,0,20,0\n10,0,25,0,23,0,30,0,13,0,24,0\n7,0,21,0,19,0,6,0,16,0,8,0\n28,0,14,0,17,0,3,0,11,0,24,0\n29,0,1,0,13,0,12,0,22,0,20,0\n9,0,2,0,23,0,4,0,5,0,25,0\n10,0,30,0,26,0,27,0,18,0,15,0\n"
  },
  {
    "path": "schedules/31_1.csv",
    "content": "19,0,5,0,20,0,25,0,2,0,9,0\n31,0,17,0,1,0,11,0,27,0,10,0\n29,0,16,0,21,0,22,0,14,0,13,0\n18,0,7,0,23,0,26,0,8,0,28,0\n15,0,30,0,6,0,3,0,4,0,12,0\n24,0,31,1,10,1,9,1,25,1,13,1\n"
  },
  {
    "path": "schedules/31_10.csv",
    "content": "21,0,28,0,2,0,11,0,7,0,23,0\n18,0,1,0,6,0,12,0,31,0,9,0\n13,0,3,0,10,0,5,0,14,0,30,0\n15,0,26,0,4,0,27,0,29,0,16,0\n8,0,24,0,20,0,19,0,17,0,25,0\n22,0,4,0,21,0,7,0,18,0,14,0\n26,0,23,0,29,0,1,0,19,0,11,0\n25,0,13,0,16,0,6,0,12,0,3,0\n30,0,17,0,8,0,22,0,9,0,27,0\n20,0,31,0,15,0,24,0,28,0,10,0\n5,0,12,0,16,0,2,0,8,0,13,0\n31,1,27,0,30,0,18,1,26,0,19,0\n1,0,9,0,15,0,28,0,7,0,5,0\n17,0,6,0,4,0,21,0,11,0,20,0\n24,0,3,0,22,0,10,0,23,0,2,0\n29,0,14,0,31,0,25,0,6,0,7,0\n26,0,22,0,13,0,10,0,15,0,19,0\n24,0,2,0,11,0,30,0,3,0,29,0\n14,0,17,0,12,0,28,0,4,0,9,0\n18,0,16,0,21,0,1,0,8,0,5,0\n23,0,27,0,13,0,20,0,25,0,4,0\n5,0,19,0,2,0,15,0,18,0,29,0\n7,0,26,0,12,0,23,0,17,0,20,0\n1,0,28,0,3,0,8,0,22,0,6,0\n11,0,14,0,27,0,31,0,16,0,24,0\n9,0,30,0,10,0,25,0,21,0,23,0\n12,0,1,0,27,0,22,0,15,0,2,0\n9,0,21,0,19,0,31,0,17,0,13,0\n20,0,29,0,10,0,16,0,28,0,30,0\n5,0,3,0,18,0,4,0,24,0,7,0\n25,0,11,0,8,0,14,0,26,0,6,0\n27,0,15,0,3,0,17,0,21,0,1,0\n20,0,30,0,12,0,22,0,31,0,5,0\n19,0,16,0,6,0,24,0,14,0,23,0\n2,0,18,0,25,0,26,0,11,0,28,0\n13,0,7,0,9,0,29,0,8,0,4,0\n10,0,5,0,11,0,19,0,23,0,12,0\n21,0,3,0,14,0,20,0,9,0,26,0\n25,0,30,0,22,0,16,0,1,0,4,0\n17,0,29,0,28,0,13,0,24,0,18,0\n8,0,10,0,7,0,6,0,27,0,2,0\n15,0,5,0,23,0,31,0,25,0,3,0\n13,0,4,0,14,0,2,0,1,0,20,0\n10,0,26,0,31,0,18,0,28,0,22,0\n7,0,16,0,17,0,30,0,15,0,6,0\n24,0,29,0,19,0,12,0,8,0,21,0\n11,0,9,0,6,0,27,0,20,0,5,0\n23,0,18,0,30,0,14,0,8,0,15,0\n28,0,19,0,31,0,3,0,16,0,9,0\n22,0,1,0,7,0,29,0,11,0,13,0\n25,0,12,0,24,0,26,0,27,0,21,0\n4,0,2,0,31,0,17,0,10,0,18,0\n"
  },
  {
    "path": "schedules/31_11.csv",
    "content": "8,0,19,0,18,0,1,0,23,0,3,0\n20,0,11,0,30,0,2,0,5,0,7,0\n29,0,21,0,27,0,14,0,15,0,6,0\n25,0,12,0,26,0,9,0,24,0,10,0\n16,0,22,0,31,0,13,0,28,0,4,0\n7,0,3,0,24,0,17,0,10,0,5,0\n2,0,27,0,19,0,28,0,16,0,6,0\n14,0,9,0,12,0,30,0,23,0,31,0\n15,0,13,0,8,0,4,0,11,0,25,0\n1,0,22,0,26,0,21,0,17,0,20,0\n29,0,6,0,2,0,18,0,25,0,16,0\n14,0,30,0,21,0,24,1,23,0,17,0\n10,0,20,0,22,0,11,0,31,0,27,0\n1,0,5,0,4,0,12,0,18,0,15,0\n28,0,8,0,29,0,26,0,9,0,3,0\n13,0,7,0,12,0,19,0,5,0,23,0\n17,0,2,0,28,0,29,0,1,0,15,0\n4,0,14,0,16,0,10,0,3,0,11,0\n6,0,9,0,25,0,19,0,20,0,13,0\n26,0,24,0,18,0,8,0,22,0,27,0\n30,0,7,0,1,0,21,0,31,0,6,0\n12,0,19,0,22,0,20,0,2,0,14,0\n5,0,26,0,31,0,17,0,27,0,25,0\n15,0,28,0,10,0,8,0,30,0,24,0\n9,0,18,0,29,0,16,0,7,0,11,0\n23,0,13,0,21,0,3,0,4,0,17,0\n2,0,18,0,10,0,20,0,28,0,9,0\n14,0,11,0,13,0,1,0,21,0,24,0\n22,0,23,0,6,0,25,0,5,0,29,0\n4,0,27,0,30,0,26,0,7,0,19,0\n3,0,16,0,15,0,12,0,8,0,31,0\n25,0,19,0,1,0,14,0,24,0,29,0\n12,0,30,0,17,0,8,0,11,0,6,0\n20,0,7,0,23,0,21,0,28,0,18,0\n16,0,5,0,9,0,22,0,15,0,4,0\n31,0,3,0,2,0,10,0,13,0,26,0\n27,0,5,0,28,0,9,0,21,0,22,0\n18,0,23,0,11,0,17,0,15,0,26,0\n29,0,10,0,4,0,19,0,30,0,16,0\n7,0,31,0,25,0,12,0,2,0,1,0\n20,0,27,0,3,0,24,0,13,0,6,0\n8,0,17,0,16,0,14,0,18,0,31,0\n21,0,19,0,10,0,11,0,2,0,15,0\n9,0,27,0,7,0,14,0,25,0,3,0\n6,0,20,0,5,0,8,0,4,0,26,0\n22,0,24,0,28,0,23,0,12,0,29,0\n30,0,13,0,5,0,1,0,16,0,27,0\n20,0,24,0,31,0,29,0,11,0,19,0\n26,0,14,0,28,0,6,0,12,0,4,0\n17,0,18,0,7,0,13,0,9,0,2,0\n3,0,8,0,21,0,25,0,30,0,22,0\n23,0,15,0,9,0,10,0,1,0,6,0\n21,0,11,0,5,0,31,0,19,0,28,0\n15,0,24,0,25,0,18,0,3,0,30,0\n1,0,14,0,17,0,20,0,16,0,26,0\n22,0,29,0,13,0,7,0,10,0,8,0\n2,0,23,0,4,0,27,0,12,0,24,0\n"
  },
  {
    "path": "schedules/31_12.csv",
    "content": "6,0,23,0,9,0,20,0,24,0,13,0\n16,0,21,0,26,0,11,0,4,0,10,0\n1,0,2,0,14,0,18,0,22,0,8,0\n29,0,15,0,30,0,25,0,5,0,7,0\n17,0,28,0,12,0,3,0,19,0,31,0\n27,0,10,0,18,0,30,0,14,0,7,0\n6,0,13,0,26,0,12,0,24,0,25,0\n29,0,21,0,1,0,28,0,11,0,9,0\n2,0,5,0,31,0,27,0,3,0,17,0\n20,0,19,0,8,0,15,0,23,0,16,0\n4,0,7,0,29,0,22,0,31,0,21,0\n26,0,11,0,30,0,23,0,27,0,14,0\n19,0,12,0,15,0,4,0,25,0,6,0\n22,0,1,0,16,0,10,0,20,0,8,0\n18,0,24,0,5,0,13,0,28,0,2,0\n9,0,3,0,25,0,17,0,29,0,16,0\n4,0,13,0,14,0,28,0,24,0,7,0\n30,0,3,0,22,0,17,0,9,0,19,0\n26,0,27,0,31,0,6,0,12,0,1,0\n23,0,11,0,2,0,5,0,15,0,10,0\n20,0,21,0,9,0,18,0,8,0,19,0\n11,0,13,0,22,0,28,0,4,0,23,0\n2,0,26,0,25,0,30,0,21,0,10,0\n1,0,17,0,18,0,16,0,20,0,12,0\n15,0,27,0,8,0,24,0,31,0,6,0\n14,0,29,0,5,0,7,0,3,0,2,0\n19,0,22,0,28,0,11,0,15,0,24,0\n12,0,18,0,23,0,13,0,21,0,17,0\n20,0,14,0,10,0,1,0,25,0,31,0\n4,0,7,0,29,0,26,0,3,0,8,0\n30,0,6,0,27,0,9,0,5,0,16,0\n10,0,17,0,24,0,25,0,18,0,15,0\n16,0,3,0,4,0,30,0,28,0,5,0\n1,0,21,0,8,0,29,0,23,0,22,0\n2,0,7,0,20,0,11,0,6,0,19,0\n31,0,9,0,13,0,12,0,14,0,26,0\n17,0,15,0,4,0,27,0,16,0,11,0\n13,0,30,0,19,0,29,0,6,0,8,0\n28,0,7,0,31,0,9,0,10,0,12,0\n24,0,14,0,3,0,21,0,26,0,18,0\n23,0,20,0,25,0,22,0,27,0,2,0\n5,0,6,0,17,0,1,0,9,0,4,0\n30,0,31,0,11,0,2,0,24,0,29,0\n28,0,20,0,27,0,19,0,26,0,14,0\n25,0,10,0,13,0,1,0,3,0,15,0\n23,0,8,0,5,0,21,0,12,0,7,0\n22,0,9,0,26,0,16,0,18,0,1,0\n24,0,21,0,23,0,20,0,15,0,31,0\n29,0,10,0,19,0,27,0,5,0,4,0\n11,0,14,0,17,0,12,0,13,0,3,0\n16,0,30,0,25,0,6,0,7,0,22,0\n2,0,18,0,9,0,8,0,28,0,14,0\n26,0,7,0,15,0,17,0,22,0,20,0\n27,0,25,0,21,0,13,0,5,0,1,0\n3,0,6,0,28,0,19,0,4,0,2,0\n24,0,16,0,8,0,23,0,10,0,31,0\n12,0,11,0,29,0,30,0,18,0,2,0\n7,0,1,0,19,0,24,0,26,0,17,0\n15,0,6,0,28,0,14,0,16,0,31,0\n20,0,18,0,4,0,29,0,27,0,13,0\n12,0,22,0,5,0,25,0,11,0,8,0\n10,0,3,0,21,0,23,0,9,0,30,0\n"
  },
  {
    "path": "schedules/31_13.csv",
    "content": "5,0,29,0,27,0,19,0,25,0,26,0\n22,0,1,0,10,0,11,0,28,0,23,0\n20,0,6,0,2,0,21,0,30,0,24,0\n16,0,7,0,18,0,4,0,9,0,17,0\n3,0,13,0,31,0,14,0,15,0,12,0\n24,0,18,0,1,0,8,0,7,0,23,0\n3,0,2,0,28,0,21,0,5,0,16,0\n4,0,6,0,10,0,26,0,25,0,12,0\n20,0,27,0,13,0,30,0,17,0,29,0\n11,0,14,0,31,0,22,0,15,0,19,0\n9,0,5,0,3,0,8,0,10,0,13,0\n4,1,11,0,2,0,23,1,31,0,12,0\n26,1,9,0,16,0,22,1,14,0,25,0\n15,0,18,0,20,0,8,1,29,0,6,0\n7,0,24,0,17,0,1,0,28,0,30,0\n19,0,27,0,18,0,21,0,3,0,10,0\n14,0,29,0,26,0,4,0,20,0,28,0\n9,0,31,0,21,0,6,0,30,0,11,0\n12,0,22,0,13,0,8,0,27,0,17,0\n15,0,2,0,24,0,5,0,1,0,23,0\n25,0,16,0,27,0,7,0,19,0,3,0\n9,0,11,0,1,0,18,0,2,0,29,0\n15,0,26,0,16,0,22,0,17,0,20,0\n10,0,28,0,25,0,8,0,24,0,31,0\n7,0,30,0,12,0,14,0,4,0,5,0\n23,0,13,0,26,0,21,0,19,0,6,0\n22,0,24,0,16,0,29,0,27,0,28,0\n31,0,8,0,30,0,1,0,9,0,15,0\n4,0,23,0,19,0,25,0,17,0,5,0\n21,0,12,0,20,0,18,0,2,0,10,0\n14,0,7,0,11,0,6,0,3,0,13,0\n24,0,4,0,25,0,17,0,23,0,21,0\n18,0,28,0,12,0,13,0,1,0,16,0\n7,0,2,0,5,0,22,0,31,0,29,0\n11,0,15,0,3,0,27,0,9,0,30,0\n19,0,10,0,14,0,20,0,26,0,8,0\n6,0,23,0,25,0,16,0,4,0,30,0\n27,0,24,0,29,0,15,0,31,0,10,0\n17,0,14,0,12,0,8,0,2,0,9,0\n19,0,11,0,20,0,22,0,6,0,18,0\n26,0,21,0,5,0,28,0,7,0,13,0\n1,0,8,0,12,0,3,0,25,0,29,0\n15,0,7,0,4,0,21,0,18,0,11,0\n6,0,31,0,5,0,9,0,19,0,24,0\n16,0,10,0,17,0,2,0,14,0,1,0\n22,0,28,0,30,0,20,0,3,0,23,0\n27,0,26,0,9,0,13,0,5,0,15,0\n20,0,1,0,7,0,12,0,22,0,3,0\n8,0,21,0,25,0,26,0,18,0,30,0\n14,0,6,0,16,0,13,0,23,0,24,0\n28,0,19,0,17,0,10,0,27,0,11,0\n29,0,4,0,18,0,31,0,2,0,7,0\n9,0,25,0,13,0,24,0,20,0,22,0\n19,0,15,0,30,0,16,0,2,0,12,0\n17,0,26,0,3,0,1,0,4,0,31,0\n8,0,14,0,28,0,6,0,21,0,27,0\n10,0,23,0,29,0,5,0,11,0,7,0\n3,0,8,0,18,0,26,0,16,0,31,0\n23,0,2,0,27,0,9,0,14,0,20,0\n1,0,17,0,6,0,25,0,28,0,5,0\n21,0,22,0,4,0,10,0,24,0,12,0\n29,0,15,0,11,0,30,0,13,0,19,0\n9,0,6,0,28,0,26,0,22,0,2,0\n5,0,12,0,19,0,11,0,8,0,16,0\n20,0,30,0,10,0,3,0,24,0,4,0\n27,0,31,0,17,0,18,0,14,0,23,0\n13,0,29,0,21,0,25,0,1,0,15,0\n7,0,23,0,22,0,4,0,26,0,8,0\n"
  },
  {
    "path": "schedules/31_14.csv",
    "content": "14,0,12,0,8,0,20,0,19,0,26,0\n7,0,3,0,6,0,10,0,28,0,13,0\n2,0,29,0,15,0,24,0,21,0,16,0\n11,0,22,0,1,0,9,0,30,0,4,0\n27,0,31,0,25,0,5,0,18,0,23,0\n12,0,3,0,19,0,17,0,6,0,26,0\n30,0,8,0,21,0,31,0,1,0,10,0\n23,0,25,0,20,0,5,0,22,0,7,0\n28,0,16,0,17,0,15,0,9,0,27,0\n18,0,29,0,13,0,2,0,14,0,24,0\n11,0,23,0,9,0,4,0,19,0,28,0\n25,1,10,0,6,0,14,1,20,0,1,0\n3,1,22,0,13,0,16,1,18,0,31,0\n30,0,26,0,27,0,4,0,21,0,2,0\n11,0,12,0,17,0,5,0,24,0,15,0\n7,0,8,0,2,0,29,0,27,0,22,0\n19,0,4,0,30,0,15,0,3,0,31,0\n21,0,29,0,6,0,12,0,18,0,9,0\n8,0,1,0,16,0,24,0,23,0,28,0\n20,0,7,0,13,0,26,0,11,0,5,0\n10,0,14,0,29,0,25,0,17,0,1,0\n15,0,28,0,12,0,22,0,30,0,23,0\n21,0,19,0,13,0,18,0,6,0,5,0\n26,0,7,0,4,0,10,0,9,0,2,0\n27,0,16,0,3,0,31,0,11,0,14,0\n24,0,20,0,25,0,17,0,8,0,4,0\n7,0,1,0,16,0,19,0,11,0,27,0\n21,0,5,0,17,0,22,0,15,0,26,0\n12,0,31,0,23,0,9,0,29,0,13,0\n10,0,30,0,24,0,28,0,14,0,6,0\n18,0,25,0,2,0,3,0,20,0,8,0\n27,0,5,0,28,0,29,0,11,0,17,0\n13,0,8,0,23,0,20,0,30,0,2,0\n3,0,19,0,9,0,12,0,21,0,7,0\n4,0,1,0,15,0,16,0,10,0,18,0\n31,0,6,0,24,0,25,0,14,0,22,0\n26,0,29,0,3,0,30,0,28,0,7,0\n21,0,9,0,18,0,23,0,22,0,19,0\n11,0,14,0,4,0,8,0,15,0,6,0\n31,0,2,0,5,0,10,0,27,0,20,0\n24,0,13,0,17,0,16,0,12,0,26,0\n25,0,5,0,30,0,1,0,11,0,19,0\n18,0,20,0,4,0,17,0,23,0,27,0\n3,0,26,0,21,0,1,0,8,0,24,0\n15,0,25,0,16,0,31,0,7,0,9,0\n28,0,22,0,2,0,29,0,14,0,12,0\n6,0,13,0,30,0,10,0,4,0,7,0\n16,0,20,0,5,0,24,0,29,0,19,0\n15,0,31,0,17,0,2,0,1,0,6,0\n27,0,8,0,14,0,23,0,25,0,21,0\n28,0,9,0,26,0,13,0,18,0,3,0\n10,0,11,0,17,0,12,0,22,0,20,0\n8,0,29,0,28,0,5,0,3,0,4,0\n11,0,6,0,24,0,9,0,1,0,25,0\n15,0,30,0,23,0,2,0,26,0,13,0\n10,0,22,0,18,0,16,0,31,0,19,0\n12,0,21,0,27,0,7,0,14,0,24,0\n22,0,20,0,6,0,29,0,16,0,30,0\n26,0,10,0,23,0,9,0,5,0,8,0\n7,0,11,0,18,0,3,0,14,0,31,0\n17,0,2,0,19,0,21,0,25,0,28,0\n4,0,15,0,27,0,12,0,1,0,13,0\n18,0,24,0,2,0,11,0,3,0,30,0\n6,0,9,0,17,0,27,0,8,0,22,0\n12,0,26,0,10,0,29,0,16,0,23,0\n5,0,19,0,14,0,4,0,25,0,13,0\n28,0,20,0,31,0,21,0,15,0,7,0\n1,0,23,0,3,0,6,0,2,0,12,0\n5,0,13,0,29,0,17,0,30,0,14,0\n19,0,7,0,25,0,8,0,15,0,10,0\n1,0,18,0,28,0,16,0,11,0,20,0\n22,0,4,0,24,0,21,0,31,0,26,0\n9,0,14,0,16,0,27,0,25,0,3,0\n"
  },
  {
    "path": "schedules/31_2.csv",
    "content": "12,0,19,0,13,0,28,0,30,0,18,0\n7,0,5,0,17,0,21,0,29,0,8,0\n24,0,10,0,9,0,26,0,14,0,11,0\n2,0,20,0,16,0,3,0,25,0,1,0\n6,0,27,0,22,0,15,0,4,0,23,0\n8,0,17,0,18,0,31,0,25,0,10,0\n19,0,29,0,15,0,26,0,24,0,1,0\n27,0,21,0,14,0,12,0,20,0,22,0\n4,0,5,0,11,0,2,0,13,0,23,0\n6,0,28,0,31,0,7,0,9,0,16,0\n3,0,29,1,17,1,30,0,21,1,5,1\n"
  },
  {
    "path": "schedules/31_3.csv",
    "content": "8,0,29,0,30,0,26,0,25,0,6,0\n10,0,21,0,13,0,5,0,22,0,4,0\n3,0,24,0,31,0,9,0,2,0,18,0\n15,0,1,0,20,0,16,0,14,0,11,0\n12,0,19,0,27,0,17,0,28,0,7,0\n23,0,9,0,11,0,26,0,13,0,29,0\n17,1,20,0,24,0,28,1,8,0,5,0\n1,1,30,0,14,0,10,0,27,0,18,0\n4,0,23,0,12,0,31,0,15,0,6,0\n7,0,25,0,2,0,22,0,21,0,16,0\n3,0,1,0,5,0,19,0,23,0,30,0\n25,0,28,0,9,0,14,0,4,0,2,0\n17,0,18,0,15,0,26,0,22,0,20,0\n10,0,11,0,6,0,7,0,19,0,24,0\n27,0,13,0,16,0,12,0,8,0,3,0\n31,0,29,0,28,0,21,0,17,0,1,0\n"
  },
  {
    "path": "schedules/31_4.csv",
    "content": "3,0,25,0,21,0,29,0,19,0,8,0\n22,0,6,0,2,0,20,0,10,0,7,0\n17,0,30,0,31,0,16,0,24,0,9,0\n18,0,13,0,5,0,27,0,14,0,26,0\n11,0,28,0,4,0,1,0,12,0,23,0\n6,0,13,0,25,0,15,0,24,0,17,0\n20,0,21,0,16,0,27,0,4,0,7,0\n2,0,1,0,5,0,30,0,3,0,8,0\n26,0,31,0,29,0,22,0,15,0,23,0\n18,0,10,0,19,0,12,0,9,0,28,0\n14,0,8,0,20,0,11,0,15,0,30,0\n1,1,4,0,9,0,29,1,22,0,13,0\n23,0,19,0,17,0,10,0,2,0,27,0\n7,0,3,0,24,0,11,0,18,0,26,0\n25,0,5,0,12,0,6,0,31,0,16,0\n14,0,28,0,24,0,21,0,2,0,29,0\n23,0,26,0,9,0,25,0,20,0,1,0\n22,0,11,0,12,0,17,0,21,0,5,0\n31,0,8,0,7,0,19,0,13,0,28,0\n3,0,14,0,15,0,16,0,4,0,10,0\n18,0,27,0,29,0,6,0,30,0,1,0\n"
  },
  {
    "path": "schedules/31_5.csv",
    "content": "19,0,14,0,12,0,25,0,31,0,20,0\n27,0,22,0,3,0,6,0,30,0,11,0\n24,0,13,0,28,0,15,0,26,0,29,0\n8,0,2,0,17,0,21,0,7,0,5,0\n18,0,9,0,10,0,1,0,4,0,23,0\n16,0,2,0,6,0,11,0,13,0,12,0\n17,0,23,0,5,0,20,0,24,0,22,0\n29,0,3,0,21,0,16,0,14,0,9,0\n8,0,30,0,31,0,28,0,26,0,1,0\n27,0,4,0,7,0,10,0,15,0,19,0\n25,0,3,0,26,0,18,0,23,0,2,0\n6,1,20,0,13,0,10,0,4,0,8,0\n7,0,30,0,29,0,31,0,18,0,5,0\n25,0,11,0,9,0,28,0,17,0,15,0\n19,0,22,0,1,0,21,0,24,0,16,0\n12,0,27,0,15,0,14,0,23,0,8,0\n21,0,4,0,6,0,30,0,25,0,24,0\n9,0,19,0,31,0,13,0,22,0,2,0\n16,0,5,0,20,0,27,0,28,0,18,0\n17,0,12,0,29,0,3,0,1,0,10,0\n26,0,14,0,4,0,7,0,11,0,22,0\n18,0,16,0,15,0,6,0,17,0,31,0\n24,0,2,0,10,0,14,0,28,0,30,0\n25,0,1,0,13,0,7,0,20,0,3,0\n26,0,5,0,27,0,21,0,9,0,12,0\n23,0,11,0,19,0,8,0,29,0,6,0\n"
  },
  {
    "path": "schedules/31_6.csv",
    "content": "16,0,14,0,4,0,12,0,15,0,10,0\n26,0,23,0,2,0,18,0,24,0,1,0\n31,0,17,0,9,0,20,0,30,0,8,0\n11,0,13,0,19,0,28,0,21,0,22,0\n25,0,6,0,3,0,5,0,7,0,29,0\n27,0,14,0,1,0,19,0,17,0,24,0\n15,0,3,0,20,0,2,0,11,0,12,0\n4,0,18,0,21,0,27,0,28,0,25,0\n29,0,30,0,23,0,22,0,8,0,10,0\n9,0,13,0,26,0,5,0,16,0,31,0\n7,0,4,0,24,0,6,0,17,0,22,0\n31,0,8,0,15,0,3,0,21,0,1,0\n14,0,9,0,11,0,18,0,7,0,6,0\n5,0,20,0,25,0,23,0,16,0,19,0\n2,0,27,0,13,0,10,0,26,0,29,0\n28,0,12,0,18,0,30,0,3,0,17,0\n11,0,4,0,29,0,31,0,26,0,24,0\n19,0,21,0,30,0,16,0,7,0,2,0\n6,0,15,0,27,0,13,0,20,0,23,0\n1,0,12,0,22,0,25,0,10,0,9,0\n8,0,5,0,26,0,28,0,14,0,20,0\n22,0,7,0,15,0,27,0,12,0,31,0\n18,0,19,0,2,0,13,0,4,0,8,0\n17,0,1,0,28,0,6,0,29,0,16,0\n5,0,10,0,30,0,24,0,25,0,11,0\n23,0,21,0,14,0,3,0,9,0,29,0\n13,0,30,0,7,0,20,0,1,0,4,0\n31,0,25,0,22,0,2,0,6,0,14,0\n24,0,27,0,16,0,8,0,3,0,11,0\n26,0,28,0,19,0,23,0,9,0,12,0\n17,0,18,0,10,0,21,0,5,0,15,0\n"
  },
  {
    "path": "schedules/31_7.csv",
    "content": "1,0,16,0,6,0,26,0,11,0,2,0\n31,0,25,0,13,0,27,0,9,0,20,0\n28,0,23,0,29,0,18,0,4,0,8,0\n5,0,21,0,22,0,30,0,14,0,19,0\n15,0,17,0,3,0,7,0,12,0,24,0\n10,0,18,0,5,0,20,0,22,0,26,0\n3,0,6,0,2,0,19,0,29,0,31,0\n21,0,4,0,10,0,11,0,17,0,9,0\n28,0,16,0,8,0,15,0,25,0,7,0\n14,0,24,0,27,0,1,0,23,0,12,0\n13,0,4,0,2,0,30,0,3,0,25,0\n10,1,17,0,12,0,11,1,5,0,8,0\n14,1,20,0,31,0,24,1,28,0,22,0\n23,1,9,0,7,0,29,0,30,0,26,0\n6,0,27,0,15,0,21,0,1,0,18,0\n19,0,16,0,5,0,13,0,9,0,8,0\n15,0,30,0,1,0,29,0,25,0,10,0\n18,0,12,0,22,0,3,0,11,0,13,0\n20,0,6,0,4,0,16,0,14,0,7,0\n19,0,23,0,27,0,2,0,17,0,28,0\n26,0,21,0,8,0,31,0,24,0,3,0\n10,0,11,0,30,0,28,0,19,0,6,0\n14,0,29,0,1,0,17,0,18,0,13,0\n7,0,20,0,2,0,21,0,9,0,12,0\n31,0,5,0,15,0,4,0,24,0,23,0\n25,0,26,0,16,0,22,0,27,0,17,0\n7,0,29,0,18,0,24,0,10,0,19,0\n13,0,26,0,14,0,15,0,8,0,2,0\n30,0,23,0,31,0,16,0,20,0,11,0\n9,0,22,0,3,0,27,0,1,0,28,0\n12,0,5,0,4,0,21,0,6,0,25,0\n9,0,30,0,2,0,18,0,15,0,24,0\n17,0,21,0,23,0,6,0,22,0,13,0\n14,0,12,0,3,0,10,0,16,0,31,0\n7,0,11,0,28,0,29,0,5,0,27,0\n20,0,19,0,8,0,4,0,1,0,26,0\n25,0,11,0,24,0,10,0,14,0,23,0\n"
  },
  {
    "path": "schedules/31_8.csv",
    "content": "2,0,19,0,16,0,18,0,14,0,13,0\n20,0,27,0,26,0,9,0,12,0,17,0\n21,0,6,0,8,0,11,0,22,0,31,0\n23,0,15,0,1,0,7,0,28,0,24,0\n4,0,3,0,5,0,29,0,30,0,25,0\n28,0,18,0,26,0,10,0,22,0,21,0\n29,0,14,0,24,0,11,0,6,0,17,0\n15,0,10,0,5,0,9,0,19,0,20,0\n4,0,13,0,12,0,1,0,31,0,3,0\n2,0,7,0,23,0,16,0,27,0,8,0\n25,0,15,0,6,0,30,0,13,0,10,0\n17,1,27,0,28,0,8,1,14,0,31,0\n26,1,24,0,19,0,1,1,2,0,4,0\n16,0,23,0,9,0,3,0,22,0,25,0\n11,0,18,0,7,0,12,0,5,0,30,0\n21,0,20,0,15,0,29,0,3,0,6,0\n13,0,9,0,31,0,7,0,14,0,4,0\n25,0,18,0,27,0,26,0,1,0,11,0\n12,0,21,0,29,0,8,0,19,0,23,0\n17,0,5,0,16,0,10,0,2,0,28,0\n22,0,30,0,27,0,20,0,24,0,13,0\n11,0,19,0,29,0,15,0,16,0,26,0\n21,0,31,0,2,0,25,0,7,0,20,0\n1,0,17,0,10,0,23,0,6,0,5,0\n24,0,3,0,30,0,28,0,9,0,8,0\n22,0,4,0,18,0,14,0,12,0,15,0\n17,0,3,0,13,0,11,0,5,0,21,0\n26,0,4,0,9,0,2,0,30,0,8,0\n10,0,23,0,29,0,27,0,14,0,1,0\n31,0,20,0,6,0,24,0,16,0,18,0\n19,0,28,0,25,0,12,0,22,0,7,0\n13,0,26,0,5,0,31,0,27,0,24,0\n8,0,3,0,7,0,6,0,10,0,18,0\n30,0,9,0,14,0,16,0,1,0,21,0\n11,0,20,0,4,0,28,0,22,0,23,0\n12,0,2,0,25,0,17,0,15,0,29,0\n19,0,1,0,7,0,3,0,27,0,11,0\n6,0,28,0,13,0,29,0,18,0,9,0\n14,0,20,0,5,0,25,0,8,0,26,0\n31,0,17,0,23,0,30,0,19,0,15,0\n16,0,12,0,10,0,21,0,4,0,24,0\n22,0,8,0,1,0,2,0,17,0,26,0\n"
  },
  {
    "path": "schedules/31_9.csv",
    "content": "30,0,10,0,18,0,17,0,2,0,15,0\n9,0,13,0,8,0,24,0,27,0,4,0\n22,0,5,0,19,0,3,0,29,0,25,0\n14,0,20,0,28,0,16,0,11,0,1,0\n12,0,7,0,31,0,26,0,23,0,21,0\n6,0,22,0,29,0,15,0,27,0,11,0\n25,0,28,0,13,0,31,0,23,0,10,0\n8,0,30,0,16,0,3,0,26,0,18,0\n1,0,19,0,2,0,7,0,21,0,9,0\n5,0,20,0,6,0,12,0,17,0,4,0\n24,0,31,0,29,0,14,0,10,0,16,0\n26,1,5,0,12,0,3,1,13,0,19,0\n18,0,22,0,2,0,24,1,20,0,7,0\n4,0,21,0,25,0,8,0,15,0,14,0\n23,0,28,0,11,0,17,0,30,0,27,0\n6,0,31,0,15,0,1,0,9,0,20,0\n24,0,18,0,5,0,11,0,30,0,21,0\n16,0,26,0,17,0,29,0,19,0,8,0\n3,0,27,0,9,0,10,0,7,0,2,0\n14,0,4,0,23,0,12,0,22,0,28,0\n13,0,1,0,30,0,25,0,6,0,27,0\n5,0,9,0,17,0,20,0,26,0,4,0\n24,0,2,0,8,0,29,0,1,0,28,0\n21,0,31,0,18,0,3,0,6,0,14,0\n7,0,25,0,16,0,13,0,11,0,12,0\n19,0,10,0,15,0,23,0,22,0,24,0\n21,0,27,0,1,0,4,0,3,0,31,0\n13,0,17,0,29,0,22,0,9,0,30,0\n25,0,19,0,26,0,28,0,18,0,6,0\n7,0,11,0,14,0,8,0,10,0,20,0\n12,0,23,0,15,0,2,0,5,0,16,0\n22,0,20,0,13,0,19,0,21,0,28,0\n8,0,11,0,26,0,6,0,23,0,2,0\n24,0,30,0,25,0,16,0,4,0,9,0\n10,0,1,0,3,0,29,0,12,0,18,0\n31,0,14,0,17,0,7,0,15,0,5,0\n27,0,23,0,29,0,18,0,20,0,25,0\n2,0,4,0,30,0,19,0,31,0,11,0\n26,0,10,0,27,0,14,0,5,0,1,0\n8,0,12,0,3,0,15,0,28,0,24,0\n16,0,6,0,21,0,22,0,7,0,17,0\n9,0,2,0,11,0,13,0,18,0,14,0\n28,0,4,0,7,0,30,0,29,0,5,0\n6,0,1,0,26,0,10,0,22,0,21,0\n24,0,16,0,3,0,17,0,23,0,25,0\n19,0,9,0,12,0,31,0,27,0,8,0\n20,0,15,0,3,0,13,0,26,0,24,0\n"
  },
  {
    "path": "schedules/32_1.csv",
    "content": "12,0,29,0,24,0,5,0,16,0,32,0\n14,0,17,0,31,0,4,0,22,0,8,0\n23,0,25,0,30,0,1,0,13,0,27,0\n10,0,21,0,11,0,19,0,18,0,26,0\n6,0,15,0,2,0,9,0,28,0,7,0\n3,0,5,1,18,1,20,0,17,1,14,1\n"
  },
  {
    "path": "schedules/32_10.csv",
    "content": "10,0,28,0,2,0,27,0,26,0,9,0\n6,0,31,0,7,0,29,0,32,0,13,0\n5,0,11,0,16,0,18,0,22,0,4,0\n30,0,20,0,1,0,23,0,14,0,8,0\n24,0,3,0,17,0,12,0,25,0,19,0\n15,0,14,0,4,0,21,0,27,0,18,0\n26,0,22,0,8,0,19,0,23,0,31,0\n13,0,5,0,21,0,12,0,32,0,17,0\n28,0,6,0,20,0,7,0,2,0,25,0\n1,0,9,0,24,0,30,0,3,0,11,0\n29,0,15,0,25,0,10,0,16,0,12,0\n11,1,23,0,2,0,32,1,5,0,4,0\n13,1,28,0,27,0,1,1,10,0,21,0\n18,0,14,0,3,0,6,0,17,0,19,0\n29,0,22,0,7,0,24,0,20,0,8,0\n16,0,30,0,9,0,26,0,15,0,31,0\n32,0,18,0,28,0,20,0,22,0,10,0\n31,0,8,0,1,0,12,0,2,0,6,0\n13,0,16,0,23,0,27,0,14,0,19,0\n26,0,25,0,30,0,21,0,29,0,11,0\n9,0,17,0,15,0,7,0,24,0,4,0\n5,0,6,0,26,0,3,0,20,0,27,0\n9,0,32,0,25,0,1,0,23,0,29,0\n2,0,17,0,21,0,18,0,16,0,7,0\n11,0,22,0,12,0,31,0,30,0,14,0\n3,0,8,0,28,0,13,0,24,0,15,0\n10,0,4,0,29,0,19,0,5,0,1,0\n6,0,3,0,16,0,7,0,15,0,23,0\n5,0,31,0,12,0,18,0,8,0,10,0\n27,0,17,0,25,0,22,0,28,0,30,0\n11,0,24,0,19,0,2,0,32,0,20,0\n13,0,26,0,14,0,21,0,4,0,9,0\n29,0,18,0,30,0,32,0,8,0,16,0\n2,0,19,0,15,0,5,0,14,0,25,0\n20,0,21,0,12,0,9,0,3,0,23,0\n13,0,7,0,17,0,26,0,1,0,11,0\n24,0,31,0,28,0,27,0,4,0,6,0\n22,0,32,0,14,0,10,0,7,0,26,0\n11,0,4,0,20,0,8,0,29,0,6,0\n15,0,18,0,5,0,28,0,17,0,23,0\n10,0,13,0,19,0,24,0,30,0,2,0\n16,0,31,0,27,0,25,0,1,0,3,0\n12,0,9,0,8,0,22,0,21,0,6,0\n20,0,23,0,18,0,31,0,13,0,25,0\n10,0,32,0,24,0,17,0,14,0,16,0\n22,0,2,0,3,0,30,0,15,0,21,0\n19,0,4,0,26,0,1,0,28,0,12,0\n9,0,7,0,11,0,29,0,27,0,5,0\n25,0,4,0,8,0,3,0,32,0,26,0\n27,0,30,0,12,0,19,0,7,0,20,0\n1,0,6,0,13,0,22,0,5,0,17,0\n23,0,24,0,21,0,10,0,31,0,11,0\n16,0,29,0,2,0,14,0,28,0,9,0\n15,0,32,0,1,0,18,0,11,0,13,0\n"
  },
  {
    "path": "schedules/32_11.csv",
    "content": "13,0,10,0,29,0,23,0,24,0,3,0\n1,0,30,0,16,0,11,0,2,0,17,0\n25,0,20,0,15,0,4,0,19,0,7,0\n26,0,9,0,14,0,28,0,6,0,8,0\n22,0,18,0,21,0,31,0,12,0,27,0\n32,0,28,0,1,0,5,0,20,0,23,0\n22,0,2,0,26,0,27,0,11,0,29,0\n19,0,8,0,21,0,32,0,13,0,24,0\n5,0,31,0,4,0,14,0,25,0,17,0\n15,0,30,0,9,0,18,0,12,0,3,0\n16,0,6,0,11,0,10,0,7,0,8,0\n12,1,23,0,14,0,31,1,20,0,2,0\n25,0,6,0,5,0,3,0,9,0,32,0\n4,0,10,0,1,0,13,0,15,0,18,0\n21,0,28,0,29,0,17,0,22,0,30,0\n27,0,7,0,16,0,24,0,26,0,19,0\n8,0,32,0,17,0,12,0,10,0,11,0\n15,0,6,0,31,0,16,0,20,0,29,0\n19,0,14,0,27,0,23,0,9,0,13,0\n18,0,7,0,2,0,3,0,5,0,21,0\n30,0,28,0,24,0,4,0,26,0,25,0\n1,0,9,0,2,0,22,0,13,0,19,0\n7,0,17,0,6,0,4,0,23,0,18,0\n12,0,21,0,30,0,26,0,5,0,16,0\n14,0,20,0,3,0,32,0,22,0,10,0\n8,0,25,0,11,0,1,0,15,0,27,0\n24,0,29,0,2,0,31,0,28,0,16,0\n22,0,4,0,14,0,11,0,7,0,1,0\n23,0,15,0,32,0,26,0,8,0,18,0\n9,0,27,0,21,0,28,0,17,0,20,0\n12,0,25,0,13,0,3,0,6,0,29,0\n24,0,10,0,5,0,19,0,30,0,31,0\n16,0,4,0,2,0,9,0,8,0,20,0\n23,0,29,0,25,0,30,0,32,0,14,0\n31,0,17,0,10,0,7,0,13,0,26,0\n24,0,22,0,6,0,18,0,1,0,5,0\n15,0,19,0,12,0,27,0,28,0,3,0\n11,0,4,0,9,0,21,0,23,0,10,0\n17,0,5,0,13,0,22,0,29,0,15,0\n12,0,20,0,26,0,1,0,24,0,25,0\n19,0,3,0,16,0,11,0,14,0,21,0\n18,0,32,0,31,0,30,0,27,0,6,0\n8,0,2,0,13,0,7,0,28,0,5,0\n6,0,20,0,32,0,15,0,16,0,21,0\n18,0,10,0,14,0,27,0,2,0,25,0\n7,0,29,0,30,0,8,0,4,0,12,0\n17,0,26,0,3,0,1,0,19,0,23,0\n28,0,11,0,22,0,31,0,9,0,24,0\n3,0,4,0,30,0,27,0,26,0,10,0\n15,0,17,0,24,0,6,0,2,0,14,0\n7,0,32,0,21,0,1,0,31,0,13,0\n16,0,23,0,8,0,22,0,9,0,25,0\n18,0,11,0,20,0,5,0,29,0,19,0\n12,0,6,0,1,0,28,0,10,0,2,0\n3,0,8,0,31,0,4,0,21,0,17,0\n12,0,9,0,29,0,7,0,15,0,14,0\n28,0,18,0,19,0,16,0,25,0,32,0\n24,0,20,0,27,0,13,0,11,0,30,0\n23,0,26,0,31,0,22,0,5,0,12,0\n"
  },
  {
    "path": "schedules/32_12.csv",
    "content": "5,0,27,0,6,0,20,0,26,0,24,0\n32,0,12,0,17,0,31,0,28,0,21,0\n2,0,30,0,16,0,29,0,3,0,8,0\n4,0,7,0,10,0,23,0,18,0,22,0\n1,0,14,0,9,0,13,0,11,0,25,0\n19,0,23,0,10,0,15,0,28,0,3,0\n9,0,32,0,20,0,1,0,27,0,17,0\n19,0,26,0,31,0,14,0,13,0,5,0\n6,0,8,0,21,0,7,0,15,0,18,0\n24,0,29,0,2,0,25,0,16,0,4,0\n30,0,12,0,5,0,22,0,11,0,1,0\n28,0,2,0,8,0,32,0,3,0,26,0\n21,0,17,0,16,0,9,0,23,0,25,0\n29,0,18,0,14,0,31,0,20,0,10,0\n13,0,15,0,4,0,7,0,27,0,30,0\n22,0,6,0,24,0,19,0,12,0,11,0\n14,0,17,0,7,0,15,0,10,0,1,0\n27,0,13,0,3,0,21,0,5,0,4,0\n11,0,9,0,30,0,6,0,2,0,19,0\n20,0,29,0,22,0,24,0,28,0,32,0\n31,0,18,0,25,0,12,0,23,0,26,0\n16,0,32,0,5,0,8,0,20,0,14,0\n31,0,11,0,15,0,6,0,28,0,18,0\n25,0,21,0,27,0,22,0,30,0,10,0\n23,0,16,0,7,0,29,0,12,0,13,0\n8,0,17,0,4,0,24,0,9,0,19,0\n3,0,1,0,31,0,26,0,2,0,27,0\n7,0,28,0,9,0,25,0,24,0,14,0\n23,0,8,0,11,0,2,0,4,0,32,0\n20,0,16,0,15,0,26,0,21,0,22,0\n18,0,12,0,1,0,13,0,19,0,17,0\n5,0,10,0,3,0,30,0,6,0,29,0\n15,0,14,0,19,0,32,0,27,0,22,0\n28,0,23,0,29,0,9,0,6,0,13,0\n16,0,12,0,31,0,11,0,3,0,4,0\n26,0,21,0,1,0,7,0,5,0,24,0\n20,0,18,0,17,0,25,0,30,0,8,0\n10,0,24,0,21,0,2,0,14,0,11,0\n30,0,32,0,31,0,16,0,6,0,1,0\n13,0,26,0,8,0,29,0,10,0,25,0\n4,0,20,0,23,0,22,0,3,0,9,0\n17,0,15,0,5,0,2,0,7,0,12,0\n28,0,27,0,10,0,18,0,19,0,16,0\n13,0,20,0,21,0,31,0,2,0,17,0\n18,0,24,0,3,0,23,0,30,0,14,0\n29,0,9,0,27,0,12,0,8,0,15,0\n11,0,6,0,26,0,7,0,19,0,32,0\n22,0,28,0,4,0,1,0,25,0,5,0\n21,0,14,0,12,0,26,0,29,0,16,0\n22,0,19,0,8,0,31,0,23,0,13,0\n6,0,25,0,32,0,1,0,4,0,24,0\n9,0,2,0,15,0,20,0,5,0,28,0\n11,0,18,0,27,0,30,0,3,0,17,0\n7,0,6,0,31,0,10,0,9,0,8,0\n5,0,29,0,22,0,17,0,28,0,11,0\n23,0,2,0,1,0,10,0,14,0,16,0\n30,0,24,0,13,0,32,0,21,0,15,0\n7,0,25,0,3,0,27,0,20,0,19,0\n26,0,18,0,30,0,4,0,12,0,9,0\n1,0,19,0,28,0,29,0,7,0,21,0\n15,0,25,0,22,0,18,0,5,0,2,0\n24,0,16,0,11,0,31,0,27,0,8,0\n26,0,14,0,4,0,17,0,23,0,6,0\n32,0,13,0,10,0,3,0,12,0,20,0\n"
  },
  {
    "path": "schedules/32_13.csv",
    "content": "13,0,19,0,8,0,31,0,2,0,9,0\n5,0,16,0,11,0,28,0,6,0,22,0\n27,0,15,0,14,0,20,0,24,0,23,0\n18,0,32,0,21,0,4,0,7,0,17,0\n12,0,1,0,25,0,26,0,3,0,10,0\n29,0,23,0,15,0,30,0,32,0,14,0\n6,0,25,0,19,0,24,0,5,0,18,0\n2,0,11,0,21,0,9,0,16,0,17,0\n10,0,8,0,7,0,20,0,22,0,27,0\n13,0,4,0,31,0,28,0,3,0,29,0\n12,0,30,0,24,0,1,0,26,0,14,0\n13,1,10,0,3,0,19,1,18,0,27,0\n11,1,1,0,31,0,21,1,15,0,5,0\n32,0,26,0,22,0,25,0,4,0,28,0\n20,0,2,0,17,0,16,0,29,0,8,0\n7,0,30,0,9,0,23,0,12,0,6,0\n18,0,25,0,8,0,28,0,15,0,1,0\n13,0,9,0,17,0,29,0,19,0,14,0\n27,0,26,0,12,0,11,0,7,0,24,0\n21,0,20,0,16,0,3,0,6,0,30,0\n5,0,23,0,31,0,2,0,32,0,22,0\n4,0,18,0,30,0,10,0,20,0,19,0\n6,0,2,0,26,0,3,0,24,0,15,0\n5,0,22,0,7,0,10,0,16,0,4,0\n21,0,23,0,14,0,11,0,29,0,25,0\n28,0,9,0,27,0,8,0,32,0,31,0\n12,0,17,0,18,0,1,0,13,0,5,0\n4,0,2,0,15,0,31,0,27,0,21,0\n3,0,20,0,12,0,22,0,29,0,13,0\n26,0,7,0,16,0,1,0,32,0,17,0\n9,0,6,0,11,0,23,0,25,0,30,0\n8,0,28,0,19,0,10,0,24,0,14,0\n11,0,26,0,22,0,27,0,2,0,13,0\n29,0,9,0,20,0,19,0,23,0,7,0\n4,0,21,0,1,0,30,0,15,0,8,0\n32,0,28,0,10,0,14,0,5,0,6,0\n17,0,24,0,25,0,31,0,18,0,12,0\n3,0,27,0,1,0,16,0,13,0,23,0\n18,0,10,0,31,0,26,0,29,0,25,0\n24,0,8,0,4,0,5,0,12,0,11,0\n16,0,32,0,7,0,19,0,9,0,15,0\n28,0,14,0,17,0,3,0,21,0,22,0\n6,0,20,0,18,0,30,0,2,0,1,0\n28,0,27,0,7,0,9,0,3,0,25,0\n24,0,13,0,32,0,11,0,17,0,8,0\n6,0,10,0,23,0,26,0,31,0,19,0\n22,0,12,0,15,0,29,0,21,0,30,0\n4,0,5,0,20,0,14,0,16,0,2,0\n15,0,26,0,13,0,8,0,23,0,21,0\n27,0,17,0,19,0,6,0,32,0,4,0\n30,0,11,0,28,0,7,0,18,0,2,0\n16,0,31,0,25,0,12,0,14,0,20,0\n22,0,24,0,29,0,9,0,10,0,1,0\n5,0,2,0,8,0,3,0,15,0,18,0\n22,0,1,0,19,0,20,0,25,0,11,0\n9,0,32,0,5,0,17,0,26,0,21,0\n29,0,31,0,14,0,6,0,7,0,27,0\n4,0,3,0,23,0,12,0,16,0,28,0\n24,0,10,0,15,0,30,0,13,0,7,0\n6,0,5,0,29,0,4,0,27,0,11,0\n16,0,23,0,18,0,12,0,10,0,2,0\n30,0,26,0,28,0,17,0,22,0,31,0\n13,0,3,0,32,0,24,0,14,0,9,0\n25,0,19,0,21,0,8,0,20,0,1,0\n18,0,11,0,3,0,31,0,7,0,15,0\n21,0,24,0,6,0,28,0,20,0,23,0\n22,0,25,0,13,0,19,0,4,0,32,0\n1,0,29,0,2,0,5,0,10,0,17,0\n30,0,27,0,16,0,9,0,26,0,8,0\n14,0,19,0,11,0,12,0,13,0,21,0\n"
  },
  {
    "path": "schedules/32_14.csv",
    "content": "18,0,4,0,28,0,5,0,9,0,11,0\n16,0,31,0,27,0,12,0,8,0,1,0\n25,0,32,0,17,0,29,0,19,0,3,0\n13,0,26,0,30,0,6,0,21,0,7,0\n2,0,14,0,24,0,10,0,22,0,23,0\n15,0,11,0,7,0,20,0,5,0,4,0\n1,0,32,0,31,0,3,0,13,0,17,0\n30,0,22,0,8,0,19,0,25,0,27,0\n29,0,24,0,28,0,2,0,10,0,12,0\n9,0,23,0,21,0,16,0,6,0,14,0\n15,0,20,0,22,0,18,0,26,0,2,0\n21,1,5,0,17,0,11,1,27,0,4,0\n1,0,28,0,9,0,8,0,6,0,15,0\n16,0,13,0,23,0,18,0,31,0,24,0\n26,0,25,0,20,0,29,0,32,0,10,0\n14,0,12,0,30,0,7,0,3,0,19,0\n20,0,24,0,9,0,18,0,8,0,31,0\n30,0,11,0,17,0,26,0,1,0,22,0\n7,0,16,0,2,0,4,0,29,0,15,0\n13,0,5,0,10,0,3,0,12,0,6,0\n28,0,27,0,21,0,19,0,23,0,32,0\n25,0,8,0,24,0,14,0,1,0,29,0\n22,0,21,0,18,0,7,0,5,0,12,0\n3,0,10,0,20,0,26,0,23,0,27,0\n11,0,28,0,2,0,16,0,32,0,4,0\n15,0,30,0,19,0,6,0,25,0,13,0\n14,0,9,0,10,0,17,0,31,0,4,0\n6,0,32,0,12,0,20,0,2,0,1,0\n18,0,7,0,8,0,14,0,3,0,17,0\n26,0,15,0,9,0,24,0,27,0,23,0\n13,0,29,0,11,0,22,0,19,0,28,0\n5,0,25,0,31,0,30,0,16,0,21,0\n13,0,28,0,14,0,19,0,1,0,2,0\n29,0,6,0,8,0,26,0,5,0,22,0\n31,0,11,0,12,0,15,0,16,0,24,0\n4,0,25,0,10,0,23,0,20,0,7,0\n3,0,32,0,30,0,27,0,9,0,18,0\n21,0,19,0,13,0,17,0,29,0,20,0\n26,0,9,0,4,0,14,0,15,0,5,0\n3,0,1,0,27,0,32,0,28,0,11,0\n24,0,16,0,22,0,17,0,12,0,7,0\n2,0,21,0,8,0,10,0,18,0,30,0\n6,0,31,0,20,0,25,0,23,0,11,0\n5,0,2,0,30,0,32,0,13,0,15,0\n4,0,3,0,23,0,16,0,19,0,26,0\n22,0,29,0,27,0,31,0,14,0,24,0\n6,0,17,0,21,0,8,0,25,0,28,0\n10,0,18,0,1,0,12,0,7,0,9,0\n32,0,13,0,20,0,29,0,11,0,14,0\n24,0,5,0,6,0,2,0,27,0,17,0\n16,0,18,0,12,0,10,0,26,0,8,0\n31,0,19,0,9,0,1,0,21,0,4,0\n7,0,22,0,30,0,15,0,23,0,28,0\n3,0,24,0,4,0,25,0,12,0,13,0\n8,0,17,0,16,0,20,0,28,0,7,0\n10,0,27,0,15,0,3,0,11,0,21,0\n14,0,32,0,26,0,6,0,18,0,19,0\n23,0,2,0,31,0,9,0,25,0,22,0\n5,0,29,0,16,0,30,0,1,0,20,0\n24,0,26,0,7,0,9,0,13,0,32,0\n2,0,3,0,15,0,21,0,25,0,29,0\n19,0,17,0,18,0,31,0,10,0,22,0\n11,0,5,0,1,0,23,0,8,0,14,0\n12,0,28,0,4,0,30,0,6,0,27,0\n25,0,15,0,1,0,13,0,18,0,20,0\n23,0,29,0,12,0,32,0,8,0,5,0\n22,0,6,0,11,0,16,0,9,0,3,0\n19,0,27,0,4,0,24,0,2,0,21,0\n10,0,7,0,17,0,31,0,28,0,26,0\n14,0,19,0,20,0,30,0,24,0,1,0\n21,0,16,0,32,0,4,0,22,0,13,0\n10,0,6,0,23,0,15,0,28,0,17,0\n27,0,25,0,12,0,8,0,11,0,9,0\n26,0,29,0,2,0,3,0,18,0,5,0\n7,0,14,0,21,0,30,0,31,0,11,0\n"
  },
  {
    "path": "schedules/32_2.csv",
    "content": "23,0,11,0,4,0,31,0,16,0,13,0\n1,0,25,0,28,0,14,0,30,0,2,0\n7,0,6,0,27,0,21,0,8,0,32,0\n19,0,24,0,20,0,12,0,29,0,5,0\n3,0,22,0,10,0,15,0,17,0,9,0\n18,0,2,0,5,0,26,0,13,0,6,0\n31,0,20,0,21,0,22,0,1,0,24,0\n25,0,16,0,8,0,19,0,18,0,9,0\n17,0,29,0,14,0,27,0,4,0,26,0\n32,0,12,0,11,0,28,0,10,0,15,0\n7,0,30,0,20,1,23,0,3,0,19,1\n"
  },
  {
    "path": "schedules/32_3.csv",
    "content": "18,0,1,0,20,0,11,0,24,0,21,0\n8,0,23,0,28,0,32,0,12,0,2,0\n25,0,16,0,22,0,6,0,30,0,31,0\n26,0,15,0,9,0,5,0,27,0,17,0\n14,0,29,0,3,0,10,0,4,0,19,0\n13,0,12,0,1,0,7,0,26,0,16,0\n32,0,24,0,31,0,29,0,15,0,10,0\n18,0,28,0,3,0,8,0,25,0,5,0\n2,0,13,0,6,0,27,0,4,0,11,0\n20,0,30,0,7,0,9,0,14,0,23,0\n19,0,21,0,32,0,17,0,22,0,13,0\n4,0,31,0,23,0,9,0,5,0,1,0\n30,0,15,0,21,0,3,0,12,0,6,0\n27,0,16,0,20,0,19,0,28,0,29,0\n14,0,11,0,8,0,26,0,24,0,22,0\n17,0,10,0,7,0,2,0,25,0,18,0\n"
  },
  {
    "path": "schedules/32_4.csv",
    "content": "1,0,30,0,22,0,28,0,23,0,25,0\n8,0,12,0,27,0,19,0,15,0,11,0\n20,0,18,0,29,0,21,0,14,0,32,0\n4,0,24,0,26,0,31,0,6,0,13,0\n10,0,7,0,16,0,17,0,5,0,9,0\n2,0,18,0,25,0,3,0,31,0,15,0\n29,0,17,0,13,0,23,0,30,0,8,0\n3,0,21,0,5,0,1,0,19,0,6,0\n16,0,32,0,24,0,28,0,22,0,11,0\n2,0,20,0,14,0,4,0,12,0,9,0\n27,0,10,0,22,0,26,0,7,0,18,0\n20,1,23,0,11,0,5,1,2,0,6,0\n24,1,9,0,19,0,26,1,25,0,29,0\n1,0,13,0,14,0,27,0,16,0,15,0\n28,0,12,0,31,0,17,0,10,0,21,0\n8,0,4,0,3,0,30,0,7,0,32,0\n2,0,9,0,23,0,24,0,21,0,27,0\n31,0,8,0,19,0,16,0,22,0,20,0\n11,0,26,0,17,0,4,0,1,0,18,0\n25,0,32,0,13,0,10,0,12,0,5,0\n7,0,3,0,6,0,28,0,14,0,29,0\n15,0,5,0,24,0,30,0,20,0,26,0\n"
  },
  {
    "path": "schedules/32_5.csv",
    "content": "5,0,14,0,29,0,27,0,7,0,11,0\n31,0,28,0,4,0,1,0,25,0,15,0\n12,0,9,0,22,0,32,0,23,0,17,0\n2,0,16,0,13,0,19,0,6,0,3,0\n18,0,20,0,24,0,10,0,21,0,30,0\n8,0,1,0,29,0,26,0,3,0,23,0\n28,0,18,0,19,0,5,0,12,0,4,0\n2,0,11,0,15,0,32,0,14,0,30,0\n6,0,20,0,26,0,9,0,24,0,27,0\n10,0,25,0,8,0,22,0,16,0,17,0\n7,0,21,0,2,0,31,0,13,0,9,0\n32,1,25,0,5,0,10,1,29,0,6,0\n18,0,4,0,17,0,13,0,11,0,26,0\n1,0,7,0,24,0,12,0,16,0,15,0\n31,0,27,0,21,0,8,0,3,0,30,0\n22,0,23,0,19,0,28,0,14,0,20,0\n1,0,12,0,10,0,27,0,8,0,13,0\n20,0,9,0,3,0,25,0,18,0,14,0\n6,0,16,0,32,0,4,0,21,0,23,0\n2,0,26,0,30,0,5,0,7,0,22,0\n29,0,17,0,19,0,15,0,31,0,24,0\n11,0,6,0,21,0,28,0,1,0,22,0\n29,0,30,0,9,0,10,0,4,0,19,0\n14,0,12,0,11,0,31,0,16,0,26,0\n15,0,13,0,32,0,20,0,8,0,5,0\n23,0,25,0,24,0,27,0,2,0,18,0\n3,0,28,0,32,0,7,0,17,0,10,0\n"
  },
  {
    "path": "schedules/32_6.csv",
    "content": "32,0,2,0,3,0,6,0,23,0,20,0\n26,0,22,0,9,0,18,0,15,0,27,0\n25,0,4,0,21,0,29,0,17,0,7,0\n28,0,8,0,30,0,13,0,31,0,5,0\n12,0,1,0,10,0,14,0,19,0,11,0\n16,0,17,0,23,0,24,0,5,0,28,0\n25,0,9,0,3,0,4,0,31,0,10,0\n19,0,15,0,32,0,29,0,13,0,30,0\n20,0,11,0,24,0,7,0,26,0,18,0\n8,0,12,0,27,0,6,0,16,0,1,0\n22,0,21,0,31,0,14,0,2,0,24,0\n29,0,3,0,15,0,11,0,8,0,17,0\n23,0,4,0,26,0,19,0,16,0,12,0\n10,0,32,0,28,0,22,0,2,0,7,0\n27,0,5,0,14,0,18,0,13,0,25,0\n6,0,9,0,30,0,1,0,20,0,21,0\n13,0,15,0,2,0,12,0,3,0,7,0\n29,0,18,0,23,0,31,0,1,0,30,0\n24,0,22,0,19,0,6,0,8,0,25,0\n32,0,5,0,16,0,11,0,21,0,9,0\n14,0,17,0,28,0,27,0,20,0,4,0\n10,0,6,0,7,0,26,0,29,0,5,0\n13,0,11,0,23,0,4,0,17,0,22,0\n19,0,18,0,1,0,21,0,28,0,3,0\n2,0,26,0,8,0,14,0,9,0,32,0\n20,0,16,0,31,0,15,0,25,0,10,0\n27,0,24,0,17,0,30,0,12,0,32,0\n11,0,26,0,6,0,28,0,31,0,25,0\n1,0,5,0,2,0,24,0,15,0,4,0\n12,0,22,0,13,0,20,0,29,0,9,0\n21,0,18,0,8,0,23,0,10,0,27,0\n7,0,14,0,16,0,3,0,30,0,19,0\n"
  },
  {
    "path": "schedules/32_7.csv",
    "content": "23,0,26,0,16,0,5,0,29,0,27,0\n7,0,8,0,32,0,19,0,6,0,9,0\n13,0,17,0,18,0,28,0,11,0,12,0\n30,0,21,0,3,0,10,0,24,0,15,0\n1,0,25,0,31,0,20,0,22,0,14,0\n2,0,23,0,19,0,4,0,18,0,21,0\n20,0,8,0,27,0,13,0,22,0,30,0\n7,0,28,0,2,0,16,0,32,0,14,0\n1,0,29,0,9,0,31,0,4,0,11,0\n17,0,5,0,12,0,25,0,6,0,10,0\n26,0,24,0,22,0,3,0,15,0,16,0\n23,1,12,0,9,0,28,1,30,0,17,0\n1,1,4,0,27,0,3,1,7,0,6,0\n24,0,19,0,11,0,14,0,25,0,5,0\n10,0,21,0,29,0,20,0,13,0,32,0\n15,0,31,0,26,0,18,0,2,0,8,0\n32,0,29,0,19,0,3,0,17,0,27,0\n16,0,12,0,21,0,11,0,1,0,8,0\n14,0,6,0,13,0,18,0,15,0,23,0\n5,0,28,0,10,0,9,0,31,0,2,0\n25,0,20,0,4,0,30,0,26,0,7,0\n22,0,8,0,31,0,24,0,23,0,17,0\n32,0,10,0,30,0,26,0,11,0,14,0\n29,0,28,0,6,0,22,0,21,0,7,0\n24,0,3,0,25,0,27,0,9,0,18,0\n5,0,19,0,4,0,15,0,20,0,12,0\n13,0,16,0,25,0,1,0,2,0,30,0\n12,0,14,0,8,0,29,0,3,0,4,0\n21,0,15,0,11,0,27,0,7,0,31,0\n13,0,28,0,23,0,19,0,10,0,26,0\n6,0,20,0,17,0,2,0,16,0,24,0\n18,0,1,0,22,0,5,0,32,0,9,0\n6,0,30,0,16,0,3,0,19,0,31,0\n8,0,15,0,29,0,28,0,32,0,25,0\n4,0,23,0,7,0,24,0,13,0,5,0\n9,0,26,0,17,0,1,0,14,0,21,0\n27,0,2,0,22,0,12,0,18,0,10,0\n11,0,23,0,3,0,20,0,28,0,1,0\n"
  },
  {
    "path": "schedules/32_8.csv",
    "content": "21,0,17,0,13,0,20,0,29,0,18,0\n31,0,27,0,23,0,30,0,8,0,15,0\n9,0,4,0,10,0,5,0,14,0,25,0\n16,0,11,0,22,0,24,0,19,0,7,0\n2,0,26,0,12,0,3,0,28,0,32,0\n1,0,16,0,18,0,6,0,29,0,25,0\n32,0,13,0,8,0,19,0,4,0,2,0\n11,0,27,0,1,0,9,0,15,0,28,0\n23,0,30,0,7,0,12,0,20,0,10,0\n24,0,14,0,22,0,26,0,31,0,6,0\n5,0,21,0,11,0,17,0,3,0,30,0\n32,1,22,0,20,0,16,1,29,0,8,0\n10,0,3,0,7,0,17,0,18,0,19,0\n9,0,31,0,1,0,4,0,23,0,13,0\n2,0,15,0,5,0,6,0,28,0,24,0\n25,0,27,0,12,0,14,0,26,0,21,0\n16,0,32,0,7,0,6,0,13,0,5,0\n17,0,25,0,2,0,9,0,20,0,27,0\n26,0,10,0,29,0,4,0,11,0,8,0\n14,0,30,0,12,0,1,0,3,0,22,0\n19,0,21,0,28,0,23,0,24,0,18,0\n31,0,13,0,3,0,15,0,27,0,10,0\n4,0,16,0,20,0,11,0,28,0,14,0\n22,0,25,0,18,0,23,0,32,0,5,0\n19,0,8,0,6,0,9,0,21,0,12,0\n17,0,15,0,29,0,2,0,30,0,31,0\n26,0,24,0,8,0,7,0,1,0,13,0\n23,0,25,0,16,0,11,0,17,0,12,0\n3,0,14,0,9,0,32,0,24,0,29,0\n2,0,10,0,28,0,31,0,21,0,7,0\n20,0,5,0,19,0,1,0,26,0,15,0\n4,0,18,0,6,0,27,0,22,0,30,0\n14,0,32,0,17,0,1,0,8,0,28,0\n3,0,24,0,15,0,4,0,25,0,7,0\n21,0,30,0,18,0,16,0,9,0,26,0\n13,0,11,0,10,0,6,0,22,0,2,0\n19,0,12,0,31,0,5,0,29,0,27,0\n23,0,6,0,9,0,20,0,3,0,26,0\n17,0,27,0,8,0,5,0,16,0,24,0\n20,0,31,0,11,0,32,0,12,0,18,0\n29,0,7,0,2,0,23,0,14,0,1,0\n25,0,30,0,28,0,19,0,22,0,13,0\n4,0,15,0,32,0,21,0,10,0,16,0\n"
  },
  {
    "path": "schedules/32_9.csv",
    "content": "27,0,26,0,16,0,29,0,18,0,17,0\n20,0,9,0,13,0,8,0,5,0,14,0\n2,0,3,0,25,0,11,0,19,0,24,0\n12,0,7,0,21,0,6,0,4,0,30,0\n31,0,10,0,1,0,23,0,32,0,28,0\n15,0,21,0,29,0,22,0,17,0,2,0\n26,0,30,0,1,0,20,0,14,0,24,0\n15,0,19,0,9,0,27,0,6,0,32,0\n10,0,5,0,18,0,12,0,22,0,23,0\n13,0,3,0,4,0,25,0,16,0,31,0\n8,0,28,0,19,0,7,0,11,0,26,0\n20,0,32,0,10,0,4,0,2,0,29,0\n15,0,11,0,28,0,14,0,16,0,12,0\n6,0,22,0,24,0,31,0,17,0,23,0\n27,0,7,0,8,0,25,0,21,0,13,0\n3,0,18,0,30,0,5,0,1,0,9,0\n6,0,23,0,29,0,25,0,11,0,14,0\n5,0,21,0,28,0,4,0,9,0,24,0\n7,0,32,0,2,0,16,0,22,0,18,0\n10,0,15,0,17,0,8,0,1,0,3,0\n31,0,19,0,27,0,12,0,20,0,26,0\n30,0,24,0,32,0,13,0,15,0,5,0\n1,0,29,0,14,0,25,0,19,0,4,0\n18,0,7,0,28,0,6,0,17,0,13,0\n27,0,12,0,9,0,26,0,10,0,2,0\n22,0,31,0,8,0,16,0,30,0,11,0\n21,0,23,0,19,0,20,0,3,0,28,0\n15,0,1,0,24,0,29,0,9,0,16,0\n22,0,32,0,26,0,6,0,25,0,8,0\n5,0,30,0,17,0,4,0,27,0,10,0\n23,0,2,0,20,0,31,0,13,0,7,0\n12,0,18,0,11,0,21,0,3,0,14,0\n5,0,23,0,4,0,8,0,29,0,26,0\n31,0,9,0,14,0,21,0,10,0,24,0\n25,0,28,0,22,0,18,0,20,0,15,0\n16,0,17,0,32,0,30,0,19,0,12,0\n6,0,2,0,11,0,1,0,27,0,13,0\n7,0,10,0,14,0,3,0,32,0,15,0\n26,0,19,0,13,0,22,0,21,0,1,0\n3,0,6,0,16,0,20,0,27,0,5,0\n11,0,4,0,8,0,24,0,18,0,2,0\n23,0,30,0,25,0,9,0,28,0,17,0\n31,0,12,0,6,0,7,0,29,0,24,0\n17,0,20,0,21,0,32,0,5,0,11,0\n27,0,14,0,22,0,28,0,1,0,2,0\n29,0,3,0,12,0,13,0,8,0,23,0\n26,0,18,0,4,0,31,0,15,0,30,0\n9,0,10,0,25,0,7,0,19,0,16,0\n"
  },
  {
    "path": "schedules/33_1.csv",
    "content": "12,0,17,0,23,0,19,0,3,0,30,0\n20,0,25,0,2,0,18,0,9,0,27,0\n4,0,28,0,24,0,5,0,8,0,15,0\n21,0,31,0,32,0,1,0,26,0,33,0\n29,0,10,0,13,0,11,0,16,0,14,0\n7,0,22,0,1,1,6,0,19,1,30,1\n"
  },
  {
    "path": "schedules/33_10.csv",
    "content": "32,0,1,0,15,0,13,0,4,0,29,0\n19,0,27,0,6,0,23,0,22,0,7,0\n21,0,14,0,25,0,12,0,9,0,16,0\n20,0,2,0,5,0,18,0,11,0,28,0\n8,0,30,0,31,0,26,0,3,0,33,0\n24,0,10,0,18,0,17,0,1,0,22,0\n5,0,8,0,16,0,27,0,30,0,9,0\n17,0,13,0,24,0,21,0,32,0,2,0\n20,0,6,0,31,0,25,0,23,0,28,0\n3,0,29,0,15,0,10,0,14,0,26,0\n4,0,12,0,33,0,19,0,11,0,7,0\n21,0,6,0,22,0,26,0,31,0,32,0\n33,0,23,0,1,0,25,0,3,0,20,0\n30,0,16,0,15,0,12,0,28,0,2,0\n18,0,7,0,4,0,24,0,8,0,29,0\n17,0,27,0,14,0,10,0,19,0,9,0\n5,0,13,0,18,0,11,0,15,0,31,0\n22,0,9,0,14,0,2,0,30,0,4,0\n24,0,16,0,33,0,6,0,5,0,23,0\n25,0,32,0,17,0,29,0,12,0,11,0\n27,0,28,0,3,0,13,0,26,0,19,0\n8,0,7,0,21,0,20,0,1,0,10,0\n32,0,11,0,9,0,16,0,29,0,27,0\n6,0,33,0,28,0,18,0,17,0,3,0\n23,0,12,0,14,0,13,0,8,0,22,0\n7,0,24,0,26,0,31,0,4,0,25,0\n5,0,30,0,19,0,21,0,20,0,15,0\n1,0,2,0,16,0,10,0,31,0,12,0\n20,0,26,0,8,0,5,0,32,0,14,0\n4,0,21,0,10,0,25,0,27,0,18,0\n7,0,13,0,1,0,17,0,33,0,30,0\n15,0,22,0,28,0,3,0,9,0,24,0\n23,0,19,0,29,0,2,0,11,0,6,0\n27,0,31,0,13,0,20,0,4,0,24,0\n23,0,11,0,3,0,10,0,30,0,32,0\n18,0,26,0,12,0,2,0,7,0,9,0\n14,0,8,0,19,0,6,0,15,0,25,0\n22,0,33,0,29,0,16,0,28,0,21,0\n17,0,26,0,2,0,5,0,1,0,25,0\n21,0,24,0,23,0,18,0,29,0,14,0\n31,0,9,0,1,0,19,0,33,0,15,0\n22,0,30,0,20,0,8,0,11,0,17,0\n12,0,3,0,6,0,27,0,4,0,5,0\n10,0,7,0,16,0,32,0,28,0,13,0\n20,0,9,0,29,0,24,0,12,0,22,0\n33,0,27,0,11,0,14,0,15,0,7,0\n16,0,3,0,32,0,18,0,19,0,21,0\n13,0,10,0,25,0,26,0,6,0,30,0\n28,0,17,0,5,0,23,0,4,0,8,0\n2,0,31,0,18,0,1,0,14,0,30,0\n4,0,26,0,15,0,17,0,16,0,23,0\n1,0,21,0,11,0,6,0,9,0,13,0\n19,0,20,0,32,0,10,0,33,0,2,0\n8,0,27,0,12,0,31,0,24,0,28,0\n29,0,25,0,7,0,22,0,3,0,5,0\n"
  },
  {
    "path": "schedules/33_11.csv",
    "content": "33,0,20,0,15,0,5,0,30,0,27,0\n21,0,9,0,17,0,18,0,8,0,16,0\n28,0,10,0,12,0,4,0,23,0,19,0\n1,0,29,0,32,0,2,0,14,0,7,0\n22,0,11,0,26,0,31,0,25,0,6,0\n3,0,24,0,16,0,13,0,15,0,32,0\n11,0,29,0,17,0,21,0,28,0,26,0\n6,0,14,0,10,0,5,0,20,0,13,0\n8,0,12,0,3,0,7,0,30,0,25,0\n22,0,33,0,31,0,2,0,23,0,9,0\n27,0,1,0,19,0,24,0,4,0,18,0\n5,1,11,0,7,0,30,1,3,0,22,0\n4,1,12,0,9,0,6,0,8,0,13,0\n19,0,26,0,16,0,33,0,1,0,14,0\n18,0,20,0,27,0,25,0,28,0,29,0\n21,0,15,0,31,0,10,0,24,0,2,0\n32,0,5,0,19,0,23,0,17,0,22,0\n14,0,30,0,8,0,16,0,28,0,9,0\n11,0,33,0,6,0,27,0,13,0,21,0\n20,0,12,0,24,0,2,0,17,0,3,0\n7,0,18,0,15,0,1,0,4,0,10,0\n23,0,25,0,32,0,31,0,26,0,29,0\n27,0,4,0,6,0,5,0,16,0,17,0\n13,0,12,0,29,0,18,0,30,0,2,0\n28,0,14,0,22,0,20,0,32,0,10,0\n19,0,21,0,25,0,1,0,3,0,31,0\n9,0,7,0,8,0,23,0,15,0,26,0\n24,0,11,0,25,0,33,0,17,0,28,0\n30,0,4,0,31,0,16,0,14,0,13,0\n22,0,6,0,7,0,5,0,15,0,29,0\n10,0,18,0,23,0,26,0,2,0,27,0\n20,0,21,0,3,0,33,0,19,0,9,0\n1,0,8,0,24,0,12,0,32,0,11,0\n13,0,33,0,4,0,7,0,29,0,19,0\n5,0,18,0,9,0,11,0,20,0,31,0\n6,0,3,0,23,0,14,0,15,0,24,0\n17,0,30,0,32,0,25,0,10,0,16,0\n27,0,28,0,8,0,21,0,22,0,1,0\n2,0,12,0,5,0,26,0,9,0,32,0\n10,0,7,0,17,0,3,0,14,0,11,0\n31,0,2,0,16,0,24,0,13,0,28,0\n33,0,18,0,26,0,22,0,8,0,4,0\n20,0,1,0,23,0,29,0,21,0,6,0\n25,0,27,0,15,0,12,0,30,0,19,0\n1,0,28,0,2,0,5,0,33,0,10,0\n11,0,13,0,19,0,8,0,23,0,31,0\n9,0,30,0,29,0,27,0,22,0,24,0\n15,0,4,0,16,0,32,0,18,0,3,0\n17,0,20,0,14,0,21,0,7,0,12,0\n25,0,26,0,4,0,6,0,9,0,24,0\n13,0,2,0,22,0,27,0,7,0,16,0\n19,0,31,0,28,0,17,0,6,0,15,0\n14,0,5,0,23,0,12,0,18,0,25,0\n21,0,32,0,33,0,1,0,30,0,11,0\n26,0,10,0,3,0,8,0,20,0,29,0\n14,0,32,0,31,0,12,0,27,0,33,0\n23,0,16,0,30,0,20,0,6,0,26,0\n2,0,29,0,4,0,8,0,11,0,15,0\n3,0,5,0,28,0,18,0,19,0,22,0\n10,0,9,0,13,0,17,0,1,0,25,0\n24,0,21,0,30,0,7,0,5,0,4,0\n"
  },
  {
    "path": "schedules/33_12.csv",
    "content": "9,0,30,0,12,0,19,0,10,0,4,0\n3,0,27,0,33,0,25,0,8,0,21,0\n23,0,15,0,6,0,13,0,26,0,14,0\n17,0,28,0,22,0,7,0,5,0,31,0\n2,0,24,0,11,0,29,0,1,0,16,0\n18,0,32,0,25,0,20,0,14,0,15,0\n5,0,13,0,3,0,11,0,28,0,9,0\n29,0,30,0,31,0,12,0,24,0,7,0\n4,0,26,0,1,0,16,0,8,0,27,0\n2,0,33,0,18,0,10,0,22,0,6,0\n23,0,32,0,17,0,21,0,20,0,19,0\n14,0,22,0,16,0,27,0,15,0,12,0\n9,0,3,0,26,0,25,0,2,0,7,0\n13,0,1,0,24,0,10,0,17,0,33,0\n23,0,8,0,4,0,30,0,20,0,5,0\n19,0,32,0,29,0,18,0,21,0,28,0\n11,0,6,0,25,0,31,0,1,0,17,0\n4,0,32,0,7,0,30,0,19,0,3,0\n12,0,13,0,31,0,27,0,5,0,18,0\n29,0,15,0,10,0,22,0,2,0,23,0\n20,0,24,0,28,0,14,0,11,0,33,0\n21,0,16,0,9,0,8,0,6,0,26,0\n3,0,25,0,23,0,22,0,12,0,33,0\n18,0,17,0,30,0,7,0,28,0,16,0\n6,0,20,0,13,0,4,0,21,0,29,0\n9,0,27,0,10,0,15,0,19,0,11,0\n1,0,2,0,5,0,24,0,14,0,32,0\n8,0,22,0,29,0,31,0,26,0,19,0\n21,0,17,0,24,0,9,0,2,0,4,0\n10,0,16,0,26,0,14,0,7,0,3,0\n11,0,5,0,8,0,12,0,18,0,23,0\n6,0,31,0,27,0,32,0,33,0,20,0\n25,0,15,0,13,0,1,0,28,0,30,0\n29,0,5,0,14,0,17,0,4,0,27,0\n24,0,23,0,31,0,3,0,6,0,16,0\n22,0,18,0,20,0,1,0,8,0,9,0\n12,0,28,0,2,0,21,0,26,0,32,0\n7,0,15,0,30,0,19,0,13,0,33,0\n10,0,11,0,21,0,25,0,14,0,31,0\n7,0,19,0,18,0,1,0,27,0,23,0\n11,0,20,0,16,0,30,0,13,0,2,0\n33,0,25,0,9,0,17,0,29,0,26,0\n4,0,24,0,6,0,15,0,22,0,32,0\n5,0,12,0,10,0,28,0,3,0,8,0\n1,0,18,0,6,0,33,0,30,0,4,0\n28,0,15,0,31,0,9,0,23,0,20,0\n26,0,25,0,22,0,24,0,16,0,5,0\n32,0,8,0,2,0,11,0,29,0,13,0\n17,0,19,0,14,0,21,0,3,0,12,0\n27,0,7,0,20,0,10,0,2,0,31,0\n14,0,30,0,6,0,5,0,9,0,22,0\n17,0,3,0,11,0,15,0,18,0,8,0\n28,0,19,0,23,0,27,0,24,0,26,0\n16,0,13,0,4,0,29,0,25,0,12,0\n7,0,33,0,21,0,32,0,1,0,10,0\n5,0,4,0,28,0,19,0,16,0,2,0\n11,0,30,0,26,0,29,0,24,0,33,0\n12,0,8,0,20,0,6,0,7,0,17,0\n31,0,9,0,32,0,3,0,1,0,15,0\n10,0,18,0,14,0,23,0,21,0,13,0\n27,0,22,0,19,0,25,0,17,0,20,0\n14,0,12,0,1,0,32,0,28,0,6,0\n29,0,2,0,3,0,30,0,27,0,25,0\n5,0,21,0,15,0,10,0,24,0,8,0\n31,0,33,0,16,0,13,0,18,0,9,0\n7,0,26,0,23,0,11,0,4,0,22,0\n"
  },
  {
    "path": "schedules/33_13.csv",
    "content": "18,0,22,0,7,0,25,0,8,0,10,0\n33,0,13,0,24,0,19,0,4,0,1,0\n28,0,27,0,9,0,26,0,29,0,21,0\n23,0,6,0,14,0,30,0,5,0,17,0\n2,0,11,0,31,0,16,0,12,0,3,0\n32,0,20,0,26,0,15,0,27,0,8,0\n4,0,11,0,23,0,7,0,29,0,9,0\n19,0,30,0,24,0,16,0,22,0,28,0\n3,0,20,0,5,0,21,0,18,0,14,0\n13,0,32,0,10,0,6,0,15,0,31,0\n25,0,2,0,12,0,17,0,33,0,1,0\n23,1,27,0,6,0,9,1,4,0,14,0\n8,1,10,0,7,0,25,0,33,0,31,0\n12,0,18,0,13,0,16,0,21,0,5,0\n1,0,30,0,15,0,20,0,24,0,22,0\n3,0,29,0,28,0,17,0,32,0,19,0\n26,0,2,0,8,0,11,0,14,0,10,0\n22,0,21,0,32,0,20,0,7,0,13,0\n19,0,12,0,6,0,29,0,5,0,25,0\n18,0,16,0,15,0,24,0,1,0,9,0\n30,0,31,0,27,0,28,0,11,0,4,0\n26,0,23,0,33,0,17,0,3,0,2,0\n18,0,10,0,29,0,11,0,30,0,21,0\n4,0,28,0,32,0,15,0,9,0,23,0\n25,0,3,0,19,0,6,0,2,0,20,0\n13,0,1,0,31,0,8,0,17,0,14,0\n24,0,27,0,5,0,22,0,12,0,33,0\n7,0,26,0,31,0,16,0,19,0,29,0\n5,0,32,0,18,0,2,0,30,0,9,0\n6,0,10,0,24,0,4,0,20,0,12,0\n33,0,8,0,14,0,21,0,15,0,7,0\n28,0,17,0,25,0,26,0,1,0,11,0\n22,0,23,0,3,0,16,0,27,0,13,0\n8,0,19,0,28,0,10,0,21,0,6,0\n17,0,20,0,32,0,5,0,11,0,33,0\n27,0,25,0,26,0,22,0,14,0,9,0\n7,0,24,0,4,0,30,0,23,0,13,0\n2,0,16,0,1,0,18,0,3,0,31,0\n29,0,20,0,23,0,12,0,15,0,24,0\n11,0,18,0,6,0,13,0,4,0,25,0\n21,0,9,0,19,0,12,0,30,0,8,0\n17,0,22,0,31,0,3,0,32,0,26,0\n33,0,10,0,16,0,14,0,27,0,29,0\n15,0,5,0,2,0,28,0,1,0,7,0\n23,0,12,0,32,0,26,0,24,0,18,0\n11,0,22,0,29,0,7,0,6,0,3,0\n19,0,4,0,10,0,15,0,16,0,17,0\n9,0,5,0,8,0,28,0,33,0,2,0\n30,0,13,0,14,0,27,0,20,0,21,0\n1,0,25,0,22,0,31,0,9,0,10,0\n20,0,8,0,18,0,26,0,28,0,13,0\n16,0,30,0,25,0,32,0,33,0,15,0\n14,0,1,0,12,0,29,0,3,0,6,0\n4,0,2,0,27,0,5,0,19,0,31,0\n23,0,21,0,17,0,24,0,11,0,7,0\n19,0,22,0,15,0,4,0,18,0,33,0\n16,0,12,0,26,0,25,0,32,0,11,0\n17,0,9,0,6,0,2,0,27,0,7,0\n13,0,30,0,29,0,20,0,31,0,8,0\n3,0,21,0,1,0,10,0,23,0,5,0\n14,0,24,0,25,0,28,0,30,0,20,0\n12,0,17,0,7,0,27,0,19,0,18,0\n9,0,33,0,3,0,4,0,26,0,5,0\n13,0,15,0,21,0,23,0,10,0,28,0\n16,0,8,0,11,0,1,0,22,0,6,0\n24,0,31,0,29,0,14,0,2,0,32,0\n3,0,11,0,15,0,5,0,13,0,12,0\n16,0,9,0,20,0,19,0,2,0,23,0\n7,0,30,0,33,0,10,0,1,0,27,0\n21,0,4,0,8,0,25,0,29,0,32,0\n28,0,31,0,14,0,17,0,18,0,24,0\n22,0,26,0,9,0,6,0,23,0,8,0\n"
  },
  {
    "path": "schedules/33_14.csv",
    "content": "5,0,11,0,29,0,3,0,30,0,16,0\n2,0,31,0,18,0,22,0,17,0,24,0\n12,0,13,0,15,0,1,0,25,0,6,0\n33,0,23,0,7,0,21,0,28,0,8,0\n10,0,4,0,20,0,32,0,26,0,9,0\n14,0,19,0,15,0,27,0,5,0,3,0\n1,0,8,0,20,0,18,0,21,0,12,0\n6,0,7,0,22,0,25,0,24,0,2,0\n26,0,16,0,11,0,13,0,29,0,27,0\n31,0,9,0,19,0,14,0,33,0,23,0\n17,0,32,0,10,0,30,0,28,0,4,0\n26,0,2,0,27,0,7,0,5,0,20,0\n1,0,24,0,33,0,11,0,17,0,15,0\n12,0,19,0,30,0,28,0,9,0,22,0\n29,0,16,0,18,0,10,0,8,0,25,0\n6,0,14,0,21,0,31,0,3,0,32,0\n13,0,4,0,10,0,23,0,28,0,27,0\n6,0,30,0,33,0,20,0,26,0,17,0\n22,0,14,0,1,0,8,0,13,0,9,0\n24,0,16,0,31,0,7,0,21,0,4,0\n11,0,23,0,15,0,18,0,19,0,3,0\n25,0,5,0,12,0,29,0,32,0,2,0\n18,0,17,0,4,0,8,0,27,0,16,0\n5,0,9,0,32,0,26,0,23,0,1,0\n10,0,15,0,30,0,31,0,14,0,20,0\n33,0,12,0,2,0,13,0,24,0,6,0\n19,0,3,0,28,0,25,0,11,0,21,0\n29,0,7,0,1,0,22,0,16,0,4,0\n11,0,13,0,19,0,23,0,20,0,32,0\n28,0,31,0,33,0,29,0,26,0,12,0\n15,0,22,0,25,0,2,0,9,0,10,0\n6,0,5,0,18,0,3,0,7,0,17,0\n21,0,24,0,8,0,27,0,30,0,14,0\n2,0,3,0,9,0,31,0,33,0,10,0\n16,0,28,0,26,0,15,0,18,0,8,0\n5,0,19,0,24,0,32,0,13,0,1,0\n23,0,17,0,29,0,12,0,7,0,14,0\n21,0,30,0,22,0,4,0,6,0,11,0\n27,0,25,0,7,0,20,0,1,0,33,0\n13,0,28,0,17,0,11,0,2,0,22,0\n12,0,25,0,23,0,26,0,3,0,8,0\n31,0,21,0,29,0,15,0,5,0,4,0\n14,0,16,0,10,0,20,0,19,0,30,0\n27,0,6,0,9,0,18,0,24,0,32,0\n4,0,30,0,23,0,11,0,12,0,33,0\n9,0,24,0,29,0,13,0,21,0,3,0\n20,0,16,0,25,0,2,0,19,0,8,0\n7,0,32,0,28,0,14,0,18,0,22,0\n27,0,31,0,17,0,5,0,1,0,10,0\n15,0,26,0,22,0,6,0,24,0,23,0\n32,0,21,0,33,0,7,0,11,0,10,0\n30,0,27,0,2,0,19,0,29,0,4,0\n18,0,28,0,26,0,1,0,31,0,5,0\n25,0,9,0,14,0,16,0,15,0,6,0\n12,0,3,0,8,0,17,0,20,0,13,0\n16,0,1,0,21,0,15,0,9,0,30,0\n14,0,2,0,17,0,26,0,33,0,29,0\n6,0,7,0,13,0,31,0,27,0,11,0\n3,0,4,0,8,0,19,0,32,0,22,0\n20,0,24,0,12,0,10,0,23,0,18,0\n25,0,5,0,13,0,28,0,19,0,6,0\n4,0,14,0,32,0,1,0,12,0,17,0\n21,0,27,0,20,0,5,0,28,0,2,0\n3,0,10,0,24,0,25,0,16,0,33,0\n11,0,9,0,18,0,7,0,31,0,23,0\n22,0,30,0,8,0,29,0,15,0,26,0\n20,0,11,0,28,0,12,0,32,0,6,0\n18,0,27,0,1,0,22,0,29,0,10,0\n26,0,25,0,19,0,17,0,21,0,9,0\n33,0,4,0,24,0,14,0,5,0,8,0\n15,0,23,0,3,0,30,0,2,0,7,0\n31,0,13,0,22,0,16,0,5,0,17,0\n6,0,8,0,29,0,21,0,19,0,10,0\n32,0,1,0,30,0,25,0,24,0,28,0\n2,0,23,0,16,0,33,0,18,0,13,0\n3,0,11,0,14,0,4,0,31,0,26,0\n20,0,15,0,27,0,9,0,7,0,12,0\n"
  },
  {
    "path": "schedules/33_2.csv",
    "content": "18,0,25,0,13,0,20,0,33,0,5,0\n6,0,32,0,8,0,4,0,31,0,30,0\n26,0,19,0,2,0,24,0,16,0,29,0\n11,0,9,0,15,0,1,0,12,0,27,0\n10,0,23,0,7,0,17,0,21,0,28,0\n14,0,22,0,1,0,3,0,29,0,18,0\n12,0,7,0,16,0,23,0,4,0,5,0\n13,0,3,0,26,0,6,0,11,0,17,0\n30,0,21,0,24,0,31,0,25,0,27,0\n20,0,15,0,32,0,28,0,19,0,14,0\n33,0,22,0,2,0,9,0,10,0,8,0\n"
  },
  {
    "path": "schedules/33_3.csv",
    "content": "22,0,21,0,9,0,15,0,2,0,17,0\n16,0,19,0,23,0,27,0,13,0,20,0\n7,0,29,0,6,0,12,0,4,0,26,0\n18,0,28,0,32,0,25,0,8,0,5,0\n31,0,10,0,33,0,3,0,1,0,14,0\n30,0,27,0,12,0,11,0,24,0,32,0\n33,1,21,0,18,0,6,1,10,0,23,0\n8,0,13,0,9,0,22,1,3,0,4,0\n31,0,25,0,26,0,2,0,30,0,16,0\n24,0,15,0,5,0,19,0,1,0,29,0\n7,0,20,0,11,0,14,0,28,0,17,0\n10,0,1,0,12,0,8,0,22,0,16,0\n24,0,17,0,4,0,28,0,23,0,31,0\n33,0,15,0,32,0,26,0,13,0,7,0\n11,0,3,0,2,0,18,0,6,0,19,0\n21,0,25,0,14,0,29,0,27,0,9,0\n5,0,30,0,6,0,20,0,33,0,22,0\n"
  },
  {
    "path": "schedules/33_4.csv",
    "content": "27,0,16,0,29,0,9,0,31,0,2,0\n18,0,8,0,7,0,15,0,26,0,1,0\n24,0,22,0,28,0,3,0,32,0,6,0\n17,0,10,0,30,0,12,0,21,0,11,0\n20,0,5,0,25,0,33,0,4,0,13,0\n19,0,1,0,30,0,23,0,14,0,16,0\n12,0,13,0,8,0,33,0,27,0,24,0\n6,0,25,0,9,0,23,0,7,0,10,0\n19,0,18,0,11,0,20,0,22,0,31,0\n3,0,28,0,21,0,5,0,29,0,26,0\n4,0,14,0,15,0,2,0,17,0,32,0\n1,0,20,0,29,0,12,0,22,0,6,0\n28,0,8,0,2,0,10,0,19,0,25,0\n9,0,30,0,24,0,4,0,18,0,26,0\n23,0,13,0,21,0,32,0,15,0,31,0\n11,0,5,0,7,0,27,0,14,0,3,0\n16,0,33,0,26,0,17,0,22,0,23,0\n12,0,5,0,3,0,19,0,15,0,9,0\n16,0,6,0,21,0,4,0,11,0,8,0\n13,0,20,0,2,0,7,0,28,0,30,0\n27,0,17,0,31,0,25,0,1,0,24,0\n32,0,10,0,14,0,29,0,33,0,18,0\n"
  },
  {
    "path": "schedules/33_5.csv",
    "content": "10,0,25,0,11,0,24,0,27,0,30,0\n31,0,5,0,28,0,6,0,16,0,3,0\n17,0,20,0,7,0,21,0,19,0,33,0\n22,0,8,0,18,0,12,0,13,0,4,0\n9,0,14,0,26,0,1,0,32,0,23,0\n2,0,29,0,3,0,15,0,17,0,33,0\n21,0,8,0,30,0,19,0,9,0,27,0\n24,0,22,0,12,0,28,0,20,0,14,0\n10,0,29,0,4,0,6,0,26,0,31,0\n15,0,18,0,32,0,25,0,23,0,5,0\n11,0,16,0,1,0,2,0,13,0,7,0\n31,1,17,0,30,0,32,1,8,0,28,0\n11,1,12,0,33,0,16,0,25,0,26,0\n1,0,6,0,13,0,15,0,21,0,24,0\n3,0,9,0,20,0,10,0,7,0,18,0\n4,0,2,0,14,0,19,0,5,0,29,0\n27,0,6,0,11,0,23,0,22,0,17,0\n16,0,2,0,21,0,10,0,14,0,8,0\n22,0,31,0,19,0,1,0,18,0,25,0\n23,0,20,0,26,0,13,0,30,0,3,0\n4,0,33,0,27,0,9,0,15,0,28,0\n29,0,24,0,7,0,5,0,32,0,12,0\n31,0,14,0,25,0,17,0,9,0,13,0\n16,0,4,0,19,0,24,0,3,0,32,0\n21,0,18,0,28,0,29,0,26,0,11,0\n10,0,30,0,5,0,22,0,1,0,33,0\n6,0,15,0,23,0,8,0,7,0,12,0\n20,0,27,0,32,0,2,0,31,0,11,0\n"
  },
  {
    "path": "schedules/33_6.csv",
    "content": "26,0,5,0,25,0,19,0,12,0,3,0\n2,0,13,0,28,0,29,0,1,0,7,0\n22,0,17,0,20,0,9,0,11,0,15,0\n16,0,8,0,4,0,32,0,14,0,27,0\n10,0,33,0,18,0,24,0,6,0,30,0\n21,0,23,0,12,0,31,0,22,0,29,0\n30,0,17,0,16,0,2,0,1,0,26,0\n4,0,14,0,11,0,13,0,10,0,15,0\n18,0,19,0,31,0,3,0,9,0,8,0\n27,0,21,0,7,0,24,0,33,0,5,0\n23,0,32,0,6,0,25,0,20,0,28,0\n17,0,5,0,29,0,18,0,22,0,4,0\n24,0,19,0,1,0,20,0,23,0,14,0\n27,0,33,0,12,0,2,0,10,0,9,0\n15,0,31,0,7,0,16,0,26,0,6,0\n8,0,21,0,13,0,3,0,28,0,32,0\n30,0,25,0,29,0,11,0,31,0,27,0\n10,0,32,0,7,0,17,0,19,0,23,0\n24,0,8,0,28,0,11,0,22,0,26,0\n18,0,14,0,15,0,21,0,25,0,2,0\n6,0,33,0,9,0,1,0,3,0,4,0\n30,0,20,0,12,0,16,0,13,0,5,0\n33,0,31,0,25,0,14,0,28,0,17,0\n9,0,19,0,29,0,15,0,16,0,24,0\n5,0,6,0,2,0,8,0,23,0,11,0\n32,0,13,0,22,0,26,0,18,0,27,0\n20,0,21,0,3,0,4,0,30,0,7,0\n1,0,28,0,15,0,10,0,12,0,5,0\n30,0,9,0,22,0,25,0,7,0,14,0\n11,0,3,0,18,0,1,0,23,0,16,0\n32,0,24,0,4,0,2,0,12,0,31,0\n8,0,26,0,10,0,20,0,29,0,33,0\n27,0,13,0,19,0,17,0,6,0,21,0\n"
  },
  {
    "path": "schedules/33_7.csv",
    "content": "31,0,1,0,21,0,28,0,20,0,26,0\n6,0,7,0,23,0,30,0,15,0,8,0\n18,0,12,0,11,0,3,0,17,0,9,0\n2,0,29,0,22,0,4,0,14,0,33,0\n27,0,19,0,5,0,13,0,16,0,10,0\n25,0,6,0,8,0,32,0,24,0,21,0\n5,0,23,0,11,0,29,0,12,0,26,0\n10,0,2,0,17,0,25,0,1,0,22,0\n19,0,7,0,4,0,28,0,32,0,18,0\n14,0,24,0,9,0,27,0,16,0,31,0\n3,0,30,0,13,0,15,0,33,0,20,0\n6,1,9,0,11,0,28,1,14,0,25,0\n22,1,30,0,12,0,13,0,1,0,2,0\n18,0,17,0,7,0,33,0,5,0,24,0\n31,0,10,0,29,0,8,0,3,0,21,0\n23,0,15,0,16,0,20,0,32,0,4,0\n26,0,27,0,8,0,19,0,17,0,33,0\n5,0,6,0,31,0,4,0,2,0,11,0\n13,0,14,0,32,0,10,0,9,0,23,0\n20,0,18,0,27,0,28,0,29,0,30,0\n25,0,21,0,12,0,15,0,19,0,22,0\n1,0,3,0,26,0,7,0,24,0,16,0\n4,0,28,0,21,0,8,0,17,0,13,0\n30,0,25,0,19,0,14,0,5,0,3,0\n2,0,9,0,16,0,7,0,15,0,29,0\n33,0,31,0,26,0,12,0,32,0,10,0\n22,0,27,0,11,0,18,0,23,0,1,0\n24,0,6,0,17,0,20,0,29,0,19,0\n28,0,12,0,33,0,16,0,25,0,5,0\n26,0,10,0,24,0,4,0,30,0,9,0\n22,0,13,0,20,0,7,0,11,0,8,0\n6,0,15,0,1,0,31,0,18,0,14,0\n3,0,32,0,23,0,2,0,21,0,27,0\n8,0,14,0,20,0,5,0,12,0,7,0\n24,0,15,0,2,0,28,0,11,0,10,0\n1,0,9,0,33,0,21,0,19,0,6,0\n30,0,16,0,32,0,17,0,31,0,22,0\n18,0,25,0,29,0,23,0,13,0,26,0\n27,0,3,0,28,0,4,0,6,0,22,0\n"
  },
  {
    "path": "schedules/33_8.csv",
    "content": "26,0,24,0,33,0,3,0,31,0,32,0\n4,0,17,0,28,0,10,0,8,0,6,0\n7,0,23,0,12,0,14,0,15,0,20,0\n16,0,25,0,11,0,5,0,21,0,19,0\n9,0,22,0,29,0,18,0,13,0,30,0\n1,0,2,0,10,0,27,0,26,0,11,0\n32,0,15,0,23,0,6,0,21,0,30,0\n25,0,1,0,19,0,9,0,31,0,33,0\n18,0,17,0,29,0,14,0,7,0,24,0\n28,0,2,0,16,0,20,0,3,0,22,0\n12,0,4,0,13,0,5,0,8,0,27,0\n18,0,28,0,15,0,32,0,19,0,11,0\n1,0,20,0,8,0,29,0,21,0,3,0\n14,0,23,0,22,0,4,0,24,0,9,0\n30,0,31,0,12,0,27,0,16,0,10,0\n13,0,26,0,6,0,33,0,25,0,2,0\n7,0,17,0,31,0,5,0,3,0,1,0\n12,0,15,0,16,0,24,0,25,0,18,0\n10,0,7,0,20,0,13,0,19,0,22,0\n26,0,30,0,4,0,21,0,2,0,17,0\n32,0,27,0,33,0,11,0,23,0,8,0\n6,0,29,0,14,0,28,0,5,0,9,0\n20,0,11,0,18,0,31,0,8,0,4,0\n21,0,10,0,24,0,5,0,14,0,33,0\n15,0,27,0,9,0,26,0,17,0,16,0\n28,0,13,0,3,0,23,0,19,0,30,0\n32,0,6,0,25,0,7,0,22,0,1,0\n29,0,31,0,23,0,12,0,2,0,14,0\n5,0,25,0,17,0,20,0,32,0,30,0\n16,0,1,0,33,0,29,0,15,0,4,0\n9,0,12,0,21,0,27,0,7,0,28,0\n6,0,3,0,18,0,10,0,13,0,11,0\n24,0,22,0,8,0,2,0,19,0,26,0\n32,0,14,0,1,0,13,0,16,0,20,0\n4,0,6,0,19,0,29,0,26,0,12,0\n5,0,30,0,2,0,18,0,33,0,7,0\n8,0,9,0,3,0,22,0,15,0,31,0\n27,0,24,0,23,0,28,0,10,0,25,0\n11,0,21,0,33,0,17,0,12,0,22,0\n2,0,8,0,29,0,9,0,10,0,32,0\n14,0,4,0,11,0,30,0,3,0,25,0\n13,0,21,0,7,0,31,0,24,0,16,0\n26,0,5,0,18,0,28,0,1,0,23,0\n19,0,20,0,27,0,6,0,17,0,15,0\n"
  },
  {
    "path": "schedules/33_9.csv",
    "content": "6,0,23,0,21,0,20,0,28,0,11,0\n32,0,27,0,19,0,26,0,31,0,33,0\n3,0,30,0,17,0,18,0,7,0,24,0\n16,0,25,0,9,0,8,0,13,0,12,0\n14,0,4,0,29,0,22,0,1,0,15,0\n2,0,10,0,8,0,5,0,3,0,7,0\n1,0,12,0,4,0,28,0,21,0,30,0\n14,0,23,0,16,0,26,0,2,0,18,0\n22,0,10,0,32,0,19,0,9,0,24,0\n20,0,29,0,27,0,11,0,17,0,13,0\n31,0,5,0,6,0,25,0,15,0,33,0\n28,1,10,0,1,0,30,1,27,0,18,0\n21,0,25,0,12,0,5,1,29,0,32,0\n6,0,22,0,26,0,9,0,13,0,2,0\n3,0,24,0,14,0,16,0,33,0,20,0\n15,0,7,0,4,0,11,0,19,0,23,0\n31,0,17,0,18,0,8,0,21,0,22,0\n4,0,5,0,2,0,23,0,15,0,13,0\n31,0,29,0,30,0,27,0,14,0,6,0\n16,0,11,0,1,0,19,0,10,0,3,0\n26,0,9,0,28,0,25,0,17,0,24,0\n33,0,7,0,8,0,20,0,12,0,32,0\n19,0,28,0,18,0,25,0,2,0,29,0\n6,0,7,0,11,0,5,0,12,0,26,0\n9,0,10,0,31,0,23,0,4,0,3,0\n22,0,13,0,24,0,17,0,1,0,33,0\n15,0,20,0,8,0,32,0,30,0,14,0\n21,0,5,0,9,0,16,0,27,0,7,0\n11,0,31,0,25,0,20,0,2,0,24,0\n23,0,29,0,17,0,16,0,30,0,13,0\n6,0,32,0,33,0,4,0,10,0,18,0\n26,0,19,0,21,0,1,0,8,0,14,0\n15,0,27,0,3,0,22,0,28,0,12,0\n32,0,1,0,7,0,31,0,2,0,16,0\n4,0,24,0,28,0,5,0,8,0,27,0\n20,0,13,0,26,0,18,0,9,0,15,0\n14,0,19,0,17,0,12,0,10,0,6,0\n11,0,33,0,22,0,25,0,30,0,23,0\n3,0,29,0,26,0,21,0,4,0,32,0\n25,0,28,0,13,0,14,0,10,0,7,0\n21,0,11,0,2,0,9,0,30,0,33,0\n24,0,12,0,27,0,22,0,18,0,23,0\n16,0,3,0,8,0,6,0,29,0,15,0\n5,0,20,0,17,0,1,0,19,0,31,0\n24,0,15,0,10,0,21,0,7,0,29,0\n13,0,19,0,33,0,28,0,31,0,3,0\n12,0,2,0,30,0,26,0,17,0,4,0\n5,0,14,0,18,0,9,0,11,0,32,0\n27,0,1,0,23,0,25,0,6,0,8,0\n22,0,20,0,30,0,16,0,28,0,5,0\n"
  },
  {
    "path": "schedules/34_1.csv",
    "content": "5,0,17,0,11,0,20,0,7,0,31,0\n9,0,10,0,19,0,4,0,29,0,2,0\n32,0,22,0,8,0,14,0,12,0,28,0\n15,0,30,0,34,0,18,0,33,0,26,0\n13,0,16,0,21,0,23,0,1,0,24,0\n3,0,6,0,7,1,25,0,27,0,19,1\n"
  },
  {
    "path": "schedules/34_10.csv",
    "content": "17,0,20,0,11,0,21,0,14,0,7,0\n19,0,5,0,23,0,8,0,29,0,1,0\n30,0,28,0,4,0,3,0,32,0,27,0\n34,0,6,0,25,0,22,0,16,0,2,0\n31,0,13,0,33,0,26,0,15,0,9,0\n24,0,12,0,19,0,10,0,18,0,22,0\n26,0,6,0,32,0,9,0,34,0,3,0\n30,0,8,0,21,0,33,0,14,0,1,0\n25,0,12,0,28,0,23,0,24,0,17,0\n13,0,2,0,10,0,11,0,29,0,31,0\n16,0,18,0,27,0,7,0,5,0,20,0\n15,0,19,0,21,0,4,0,6,0,14,0\n29,1,27,0,34,0,31,1,25,0,23,0\n30,0,13,0,1,0,10,0,26,0,7,0\n18,0,17,0,32,0,5,0,2,0,15,0\n3,0,33,0,4,0,11,0,12,0,8,0\n9,0,16,0,20,0,24,0,28,0,22,0\n18,0,34,0,5,0,3,0,12,0,13,0\n7,0,1,0,4,0,33,0,32,0,9,0\n25,0,15,0,22,0,30,0,20,0,29,0\n31,0,24,0,14,0,6,0,11,0,23,0\n27,0,2,0,28,0,17,0,19,0,8,0\n21,0,10,0,11,0,16,0,26,0,23,0\n19,0,1,0,28,0,15,0,24,0,13,0\n12,0,18,0,14,0,10,0,4,0,27,0\n22,0,3,0,30,0,31,0,5,0,21,0\n9,0,17,0,7,0,2,0,6,0,29,0\n26,0,34,0,8,0,25,0,20,0,32,0\n16,0,3,0,29,0,33,0,24,0,27,0\n34,0,2,0,1,0,21,0,28,0,18,0\n8,0,20,0,6,0,11,0,16,0,13,0\n23,0,32,0,7,0,33,0,19,0,22,0\n17,0,15,0,4,0,26,0,30,0,31,0\n12,0,5,0,10,0,25,0,14,0,9,0\n20,0,23,0,33,0,2,0,24,0,30,0\n15,0,18,0,11,0,9,0,8,0,27,0\n25,0,21,0,17,0,4,0,13,0,19,0\n14,0,22,0,29,0,3,0,28,0,10,0\n31,0,16,0,6,0,12,0,32,0,1,0\n7,0,34,0,24,0,26,0,5,0,4,0\n33,0,18,0,8,0,17,0,6,0,10,0\n9,0,19,0,30,0,20,0,34,0,31,0\n15,0,23,0,3,0,2,0,25,0,7,0\n5,0,29,0,32,0,14,0,28,0,11,0\n22,0,12,0,27,0,26,0,21,0,1,0\n16,0,32,0,14,0,13,0,29,0,17,0\n19,0,26,0,25,0,9,0,2,0,11,0\n7,0,27,0,15,0,16,0,12,0,34,0\n13,0,5,0,28,0,30,0,6,0,33,0\n22,0,31,0,8,0,21,0,4,0,24,0\n23,0,1,0,10,0,18,0,3,0,20,0\n5,0,8,0,14,0,28,0,7,0,31,0\n9,0,6,0,13,0,23,0,27,0,21,0\n11,0,1,0,3,0,34,0,17,0,22,0\n20,0,26,0,2,0,12,0,4,0,29,0\n24,0,16,0,10,0,32,0,30,0,15,0\n33,0,25,0,29,0,18,0,19,0,31,0\n"
  },
  {
    "path": "schedules/34_11.csv",
    "content": "20,0,11,0,25,0,29,0,6,0,22,0\n34,0,1,0,24,0,27,0,18,0,32,0\n19,0,33,0,12,0,21,0,30,0,13,0\n17,0,14,0,3,0,28,0,23,0,2,0\n31,0,10,0,8,0,26,0,16,0,15,0\n7,0,9,0,34,0,5,0,4,0,11,0\n28,0,20,0,14,0,1,0,15,0,19,0\n22,0,18,0,5,0,10,0,30,0,17,0\n31,0,25,0,9,0,27,0,33,0,21,0\n8,0,12,0,2,0,6,0,32,0,4,0\n24,0,29,0,26,0,3,0,13,0,23,0\n16,0,20,0,30,0,7,0,32,0,5,0\n28,1,33,0,31,0,12,1,26,0,11,0\n22,1,2,0,3,0,9,1,19,0,18,0\n17,0,13,0,16,0,25,0,34,0,27,0\n6,0,1,0,8,0,24,0,7,0,4,0\n21,0,14,0,29,0,23,0,10,0,15,0\n28,0,9,0,32,0,20,0,6,0,13,0\n24,0,11,0,33,0,15,0,12,0,3,0\n1,0,14,0,23,0,34,0,31,0,30,0\n17,0,18,0,7,0,21,0,8,0,19,0\n4,0,27,0,2,0,10,0,26,0,25,0\n22,0,16,0,7,0,5,0,29,0,3,0\n25,0,18,0,1,0,8,0,11,0,15,0\n4,0,23,0,19,0,21,0,20,0,9,0\n26,0,31,0,32,0,34,0,6,0,17,0\n5,0,12,0,30,0,2,0,14,0,16,0\n10,0,33,0,29,0,27,0,24,0,13,0\n22,0,21,0,11,0,28,0,16,0,1,0\n27,0,9,0,26,0,14,0,7,0,12,0\n29,0,18,0,28,0,33,0,2,0,32,0\n5,0,24,0,17,0,4,0,20,0,10,0\n30,0,8,0,25,0,3,0,19,0,34,0\n13,0,15,0,22,0,31,0,23,0,6,0\n10,0,24,0,28,0,1,0,9,0,5,0\n16,0,34,0,21,0,26,0,33,0,6,0\n3,0,4,0,18,0,31,0,15,0,17,0\n11,0,27,0,23,0,32,0,8,0,20,0\n14,0,30,0,19,0,29,0,25,0,7,0\n13,0,2,0,10,0,22,0,12,0,34,0\n5,0,20,0,19,0,29,0,17,0,11,0\n16,0,25,0,6,0,18,0,24,0,23,0\n13,0,32,0,12,0,1,0,3,0,21,0\n28,0,15,0,27,0,7,0,30,0,26,0\n8,0,33,0,4,0,14,0,9,0,22,0\n31,0,12,0,21,0,2,0,20,0,29,0\n26,0,28,0,34,0,24,0,8,0,22,0\n31,0,16,0,18,0,13,0,14,0,5,0\n27,0,3,0,10,0,19,0,11,0,32,0\n7,0,1,0,2,0,25,0,33,0,23,0\n6,0,15,0,30,0,9,0,17,0,4,0\n20,0,7,0,3,0,18,0,10,0,34,0\n9,0,6,0,11,0,31,0,24,0,14,0\n8,0,23,0,5,0,25,0,12,0,28,0\n2,0,19,0,17,0,33,0,13,0,1,0\n21,0,15,0,32,0,22,0,30,0,27,0\n26,0,4,0,1,0,29,0,16,0,19,0\n27,0,6,0,5,0,33,0,30,0,3,0\n29,0,34,0,15,0,9,0,16,0,8,0\n23,0,26,0,22,0,20,0,18,0,12,0\n13,0,4,0,31,0,11,0,7,0,28,0\n10,0,14,0,32,0,21,0,25,0,2,0\n24,0,12,0,9,0,17,0,28,0,22,0\n"
  },
  {
    "path": "schedules/34_12.csv",
    "content": "21,0,22,0,1,0,4,0,11,0,32,0\n14,0,19,0,34,0,13,0,20,0,26,0\n2,0,31,0,17,0,8,0,30,0,25,0\n10,0,24,0,5,0,18,0,27,0,28,0\n7,0,16,0,23,0,6,0,29,0,9,0\n12,0,33,0,32,0,3,0,15,0,8,0\n19,0,21,0,26,0,10,0,6,0,28,0\n23,0,30,0,33,0,3,0,31,0,9,0\n20,0,1,0,18,0,29,0,16,0,2,0\n24,0,27,0,15,0,25,0,34,0,13,0\n17,0,5,0,12,0,22,0,7,0,4,0\n14,0,24,0,23,0,11,0,10,0,15,0\n18,0,13,0,22,0,7,0,26,0,33,0\n29,0,27,0,17,0,3,0,11,0,34,0\n4,0,31,0,28,0,2,0,21,0,14,0\n5,0,6,0,8,0,9,0,1,0,19,0\n16,0,32,0,25,0,20,0,30,0,12,0\n15,0,9,0,26,0,34,0,24,0,17,0\n10,0,29,0,32,0,4,0,12,0,2,0\n6,0,7,0,18,0,14,0,25,0,1,0\n13,0,3,0,19,0,31,0,30,0,5,0\n23,0,20,0,11,0,28,0,22,0,33,0\n8,0,16,0,26,0,21,0,27,0,3,0\n14,0,32,0,31,0,20,0,7,0,24,0\n22,0,15,0,12,0,27,0,6,0,19,0\n13,0,9,0,17,0,11,0,1,0,16,0\n34,0,4,0,33,0,8,0,10,0,18,0\n2,0,25,0,23,0,21,0,28,0,5,0\n30,0,24,0,19,0,29,0,22,0,14,0\n26,0,3,0,5,0,1,0,33,0,6,0\n28,0,2,0,9,0,16,0,17,0,4,0\n12,0,23,0,13,0,18,0,31,0,34,0\n10,0,20,0,27,0,32,0,21,0,8,0\n29,0,30,0,11,0,15,0,25,0,7,0\n5,0,2,0,22,0,12,0,24,0,8,0\n4,0,27,0,9,0,29,0,15,0,23,0\n19,0,28,0,25,0,1,0,13,0,32,0\n16,0,30,0,18,0,14,0,33,0,11,0\n31,0,21,0,7,0,26,0,10,0,17,0\n6,0,3,0,14,0,20,0,34,0,2,0\n26,0,12,0,1,0,13,0,30,0,4,0\n24,0,11,0,6,0,8,0,31,0,33,0\n3,0,17,0,22,0,9,0,25,0,10,0\n29,0,34,0,5,0,7,0,32,0,28,0\n16,0,21,0,15,0,23,0,18,0,19,0\n27,0,30,0,34,0,20,0,5,0,9,0\n16,0,13,0,6,0,22,0,32,0,24,0\n10,0,23,0,3,0,19,0,12,0,7,0\n27,0,11,0,31,0,26,0,2,0,18,0\n28,0,1,0,8,0,29,0,21,0,20,0\n17,0,33,0,25,0,14,0,4,0,15,0\n28,0,26,0,29,0,22,0,23,0,31,0\n27,0,8,0,7,0,20,0,19,0,17,0\n9,0,18,0,11,0,30,0,6,0,32,0\n4,0,25,0,21,0,12,0,16,0,34,0\n15,0,33,0,2,0,13,0,14,0,5,0\n10,0,1,0,4,0,3,0,24,0,29,0\n6,0,15,0,20,0,28,0,11,0,17,0\n8,0,9,0,14,0,12,0,3,0,18,0\n34,0,22,0,26,0,5,0,16,0,19,0\n33,0,21,0,13,0,2,0,10,0,30,0\n31,0,1,0,24,0,23,0,27,0,32,0\n7,0,34,0,10,0,25,0,6,0,22,0\n5,0,18,0,32,0,21,0,23,0,17,0\n29,0,25,0,12,0,14,0,27,0,26,0\n19,0,11,0,2,0,24,0,9,0,33,0\n28,0,3,0,16,0,1,0,7,0,30,0\n4,0,8,0,20,0,31,0,13,0,15,0\n"
  },
  {
    "path": "schedules/34_13.csv",
    "content": "14,0,19,0,31,0,23,0,12,0,22,0\n13,0,6,0,7,0,28,0,2,0,32,0\n11,0,9,0,30,0,25,0,1,0,29,0\n20,0,34,0,4,0,18,0,33,0,16,0\n3,0,21,0,5,0,15,0,8,0,27,0\n17,0,24,0,28,0,26,0,10,0,30,0\n15,0,4,0,12,0,33,0,14,0,25,0\n31,0,7,0,29,0,8,0,20,0,2,0\n18,0,32,0,34,0,21,0,17,0,9,0\n11,0,26,0,16,0,5,0,19,0,23,0\n27,0,24,0,3,0,13,0,22,0,10,0\n6,0,19,0,20,0,1,0,9,0,31,0\n34,1,15,0,21,0,4,1,32,0,29,0\n3,0,25,0,10,0,33,0,26,0,13,0\n7,0,22,0,30,0,12,0,14,0,1,0\n27,0,11,0,23,0,18,0,24,0,6,0\n28,0,17,0,16,0,5,0,8,0,2,0\n22,0,15,0,9,0,29,0,30,0,13,0\n34,0,33,0,7,0,26,0,31,0,24,0\n3,0,27,0,1,0,21,0,16,0,20,0\n17,0,14,0,2,0,5,0,11,0,4,0\n8,0,25,0,19,0,10,0,6,0,32,0\n28,0,12,0,21,0,18,0,23,0,30,0\n33,0,22,0,8,0,27,0,19,0,5,0\n23,0,6,0,20,0,12,0,7,0,9,0\n14,0,26,0,32,0,25,0,16,0,15,0\n11,0,28,0,31,0,34,0,3,0,29,0\n1,0,24,0,13,0,18,0,4,0,17,0\n10,0,5,0,16,0,2,0,9,0,7,0\n26,0,29,0,15,0,34,0,12,0,24,0\n30,0,14,0,3,0,6,0,4,0,27,0\n32,0,21,0,22,0,2,0,18,0,20,0\n23,0,1,0,33,0,28,0,8,0,13,0\n31,0,25,0,17,0,11,0,10,0,19,0\n18,0,1,0,26,0,30,0,5,0,15,0\n21,0,29,0,33,0,2,0,25,0,6,0\n27,0,34,0,28,0,16,0,14,0,23,0\n13,0,20,0,32,0,31,0,10,0,12,0\n7,0,11,0,8,0,17,0,22,0,3,0\n9,0,24,0,5,0,4,0,19,0,13,0\n20,0,22,0,14,0,15,0,17,0,34,0\n29,0,9,0,27,0,19,0,7,0,26,0\n4,0,16,0,23,0,8,0,3,0,32,0\n24,0,11,0,33,0,30,0,1,0,21,0\n31,0,12,0,2,0,25,0,18,0,28,0\n10,0,21,0,24,0,6,0,14,0,22,0\n2,0,26,0,4,0,31,0,23,0,32,0\n16,0,19,0,30,0,15,0,11,0,13,0\n10,0,1,0,34,0,18,0,7,0,5,0\n27,0,25,0,12,0,6,0,17,0,8,0\n3,0,29,0,20,0,33,0,28,0,9,0\n10,0,15,0,23,0,30,0,32,0,27,0\n25,0,7,0,34,0,28,0,1,0,19,0\n5,0,18,0,31,0,24,0,14,0,20,0\n17,0,13,0,3,0,29,0,11,0,12,0\n21,0,8,0,4,0,22,0,2,0,16,0\n6,0,33,0,18,0,9,0,26,0,23,0\n14,0,5,0,34,0,11,0,21,0,25,0\n13,0,27,0,2,0,7,0,10,0,15,0\n28,0,22,0,26,0,30,0,4,0,31,0\n33,0,19,0,12,0,1,0,6,0,16,0\n32,0,20,0,17,0,29,0,24,0,8,0\n9,0,2,0,14,0,3,0,33,0,31,0\n16,0,7,0,1,0,32,0,19,0,24,0\n30,0,12,0,8,0,34,0,13,0,9,0\n6,0,26,0,21,0,27,0,20,0,10,0\n25,0,17,0,5,0,15,0,3,0,23,0\n18,0,22,0,11,0,28,0,4,0,29,0\n1,0,5,0,13,0,31,0,34,0,6,0\n10,0,8,0,18,0,14,0,7,0,28,0\n19,0,2,0,15,0,3,0,12,0,26,0\n24,0,30,0,25,0,20,0,4,0,22,0\n23,0,29,0,17,0,16,0,27,0,21,0\n32,0,9,0,4,0,11,0,33,0,34,0\n"
  },
  {
    "path": "schedules/34_14.csv",
    "content": "13,0,11,0,17,0,25,0,2,0,10,0\n30,0,21,0,27,0,33,0,26,0,20,0\n15,0,22,0,29,0,7,0,8,0,34,0\n24,0,18,0,4,0,32,0,3,0,6,0\n23,0,16,0,28,0,12,0,5,0,19,0\n1,0,9,0,25,0,14,0,31,0,21,0\n26,0,3,0,19,0,2,0,27,0,23,0\n28,0,20,0,6,0,4,0,1,0,30,0\n5,0,32,0,13,0,24,0,8,0,9,0\n14,0,7,0,15,0,16,0,31,0,11,0\n10,0,22,0,12,0,17,0,29,0,34,0\n33,0,24,0,1,0,18,0,21,0,7,0\n12,1,20,0,30,0,10,1,26,0,11,0\n31,1,4,0,3,0,6,1,13,0,23,0\n34,0,33,0,27,0,28,0,5,0,22,0\n32,0,2,0,15,0,16,0,17,0,14,0\n25,0,8,0,19,0,9,0,18,0,29,0\n5,0,27,0,11,0,6,0,17,0,1,0\n29,0,30,0,3,0,10,0,9,0,13,0\n15,0,25,0,23,0,28,0,31,0,18,0\n21,0,24,0,2,0,33,0,12,0,20,0\n16,0,22,0,34,0,8,0,26,0,4,0\n14,0,32,0,30,0,19,0,7,0,10,0\n11,0,1,0,29,0,15,0,23,0,4,0\n7,0,16,0,2,0,12,0,9,0,28,0\n14,0,25,0,34,0,3,0,17,0,33,0\n22,0,26,0,31,0,19,0,6,0,32,0\n21,0,13,0,8,0,24,0,27,0,18,0\n20,0,7,0,3,0,5,0,34,0,15,0\n6,0,18,0,14,0,26,0,13,0,12,0\n19,0,10,0,4,0,20,0,8,0,23,0\n24,0,11,0,25,0,9,0,30,0,22,0\n1,0,27,0,32,0,17,0,5,0,31,0\n33,0,16,0,21,0,28,0,29,0,2,0\n5,0,20,0,14,0,12,0,4,0,34,0\n8,0,31,0,33,0,23,0,11,0,7,0\n32,0,10,0,28,0,1,0,18,0,26,0\n17,0,3,0,13,0,15,0,19,0,16,0\n21,0,29,0,25,0,6,0,30,0,27,0\n9,0,2,0,3,0,24,0,22,0,19,0\n28,0,21,0,4,0,32,0,16,0,8,0\n23,0,22,0,1,0,6,0,11,0,33,0\n13,0,29,0,31,0,20,0,34,0,10,0\n9,0,27,0,15,0,30,0,18,0,12,0\n2,0,17,0,26,0,7,0,25,0,5,0\n24,0,34,0,6,0,14,0,4,0,19,0\n33,0,5,0,18,0,22,0,13,0,25,0\n21,0,23,0,20,0,29,0,24,0,32,0\n7,0,30,0,17,0,15,0,10,0,31,0\n16,0,26,0,9,0,11,0,3,0,12,0\n28,0,8,0,27,0,2,0,14,0,1,0\n15,0,33,0,9,0,17,0,20,0,4,0\n13,0,19,0,30,0,32,0,21,0,11,0\n26,0,28,0,29,0,5,0,31,0,24,0\n23,0,10,0,34,0,27,0,16,0,25,0\n12,0,8,0,2,0,6,0,7,0,22,0\n18,0,14,0,11,0,3,0,1,0,28,0\n7,0,32,0,26,0,27,0,19,0,29,0\n8,0,22,0,17,0,13,0,1,0,20,0\n5,0,6,0,16,0,14,0,9,0,25,0\n31,0,34,0,2,0,23,0,24,0,3,0\n10,0,4,0,33,0,15,0,21,0,12,0\n30,0,11,0,24,0,18,0,34,0,25,0\n28,0,14,0,33,0,10,0,29,0,8,0\n31,0,27,0,26,0,4,0,18,0,16,0\n7,0,6,0,13,0,20,0,9,0,32,0\n15,0,19,0,1,0,5,0,2,0,30,0\n17,0,23,0,12,0,21,0,3,0,22,0\n4,0,9,0,7,0,28,0,34,0,13,0\n5,0,8,0,6,0,30,0,15,0,23,0\n18,0,3,0,17,0,11,0,21,0,19,0\n16,0,1,0,12,0,32,0,25,0,26,0\n20,0,31,0,29,0,2,0,33,0,22,0\n24,0,10,0,16,0,27,0,14,0,13,0\n8,0,34,0,30,0,31,0,32,0,1,0\n12,0,18,0,14,0,24,0,20,0,15,0\n3,0,9,0,5,0,6,0,21,0,26,0\n22,0,10,0,27,0,11,0,4,0,2,0\n19,0,17,0,28,0,33,0,29,0,23,0\n7,0,12,0,31,0,25,0,10,0,6,0\n"
  },
  {
    "path": "schedules/34_2.csv",
    "content": "12,0,30,0,5,0,32,0,23,0,8,0\n21,0,24,0,6,0,4,0,10,0,29,0\n17,0,28,0,1,0,13,0,9,0,3,0\n20,0,26,0,27,0,31,0,14,0,15,0\n22,0,7,0,18,0,2,0,25,0,11,0\n34,0,33,0,15,0,19,0,16,0,28,0\n8,0,11,0,1,0,26,0,29,0,21,0\n5,0,31,0,13,0,4,0,22,0,19,0\n25,0,9,0,16,0,20,0,24,0,12,0\n34,0,23,0,27,0,6,0,17,0,2,0\n3,0,10,0,14,0,18,0,32,0,33,0\n7,0,20,1,9,1,30,0,31,1,21,1\n"
  },
  {
    "path": "schedules/34_3.csv",
    "content": "16,0,19,0,11,0,26,0,25,0,2,0\n7,0,32,0,9,0,18,0,21,0,28,0\n17,0,30,0,1,0,8,0,27,0,34,0\n6,0,5,0,13,0,33,0,15,0,10,0\n14,0,23,0,22,0,29,0,24,0,4,0\n20,0,3,0,26,0,31,0,12,0,32,0\n13,0,33,0,7,0,11,0,17,0,23,0\n2,0,4,0,8,0,5,0,3,0,9,0\n24,0,6,0,12,0,19,0,1,0,18,0\n28,0,16,0,27,0,20,0,10,0,14,0\n15,0,25,0,21,0,29,0,31,0,34,0\n30,0,20,0,33,0,22,0,19,0,9,0\n2,0,15,0,32,0,27,0,23,0,24,0\n11,0,31,0,4,0,6,0,28,0,34,0\n8,0,21,0,1,0,26,0,14,0,13,0\n12,0,29,0,5,0,16,0,7,0,30,0\n18,0,10,0,22,0,25,0,17,0,3,0\n"
  },
  {
    "path": "schedules/34_4.csv",
    "content": "13,0,22,0,3,0,15,0,7,0,6,0\n32,0,25,0,26,0,19,0,24,0,27,0\n28,0,17,0,11,0,2,0,12,0,5,0\n31,0,33,0,30,0,29,0,20,0,21,0\n1,0,4,0,14,0,34,0,9,0,10,0\n18,0,16,0,15,0,23,0,8,0,28,0\n30,0,12,0,25,0,26,0,3,0,14,0\n2,0,23,0,33,0,27,0,1,0,6,0\n18,0,11,0,32,0,20,0,4,0,13,0\n9,0,7,0,24,0,5,0,21,0,16,0\n17,0,10,0,19,0,8,0,34,0,31,0\n29,0,2,0,16,0,22,0,25,0,4,0\n17,1,24,0,31,0,33,1,3,0,18,0\n7,0,1,0,20,0,14,0,19,0,28,0\n34,0,21,0,6,0,26,0,15,0,11,0\n9,0,12,0,8,0,27,0,13,0,29,0\n23,0,5,0,22,0,10,0,32,0,30,0\n3,0,27,0,17,0,21,0,4,0,28,0\n22,0,12,0,20,0,23,0,24,0,34,0\n5,0,13,0,1,0,16,0,26,0,31,0\n8,0,11,0,10,0,7,0,25,0,33,0\n18,0,19,0,30,0,6,0,2,0,9,0\n29,0,14,0,33,0,32,0,15,0,17,0\n"
  },
  {
    "path": "schedules/34_5.csv",
    "content": "34,0,27,0,20,0,7,0,4,0,8,0\n10,0,16,0,6,0,19,0,23,0,11,0\n14,0,18,0,33,0,22,0,2,0,1,0\n24,0,12,0,30,0,21,0,31,0,5,0\n25,0,15,0,13,0,9,0,29,0,28,0\n17,0,3,0,23,0,26,0,32,0,31,0\n30,0,11,0,9,0,28,0,33,0,8,0\n4,0,22,0,27,0,3,0,10,0,29,0\n34,0,25,0,19,0,1,0,24,0,17,0\n12,0,5,0,32,0,15,0,18,0,16,0\n7,0,20,0,13,0,6,0,14,0,26,0\n21,0,8,0,3,0,2,0,19,0,15,0\n9,1,1,0,10,0,17,1,20,0,5,0\n16,1,28,0,26,0,14,1,4,0,24,0\n31,0,33,0,29,0,34,0,18,0,6,0\n23,0,30,0,13,0,27,0,12,0,2,0\n22,0,32,0,21,0,11,0,25,0,7,0\n8,0,10,0,31,0,13,0,16,0,14,0\n18,0,28,0,23,0,17,0,34,0,21,0\n1,0,7,0,6,0,9,0,3,0,12,0\n27,0,19,0,5,0,33,0,25,0,26,0\n2,0,24,0,20,0,11,0,32,0,29,0\n15,0,22,0,17,0,4,0,30,0,6,0\n2,0,16,0,31,0,20,0,25,0,28,0\n7,0,15,0,24,0,33,0,23,0,10,0\n18,0,4,0,32,0,9,0,19,0,13,0\n34,0,11,0,14,0,3,0,5,0,30,0\n26,0,12,0,1,0,22,0,29,0,8,0\n21,0,9,0,16,0,27,0,17,0,14,0\n"
  },
  {
    "path": "schedules/34_6.csv",
    "content": "25,0,20,0,15,0,13,0,31,0,11,0\n30,0,8,0,33,0,4,0,19,0,28,0\n7,0,14,0,22,0,12,0,21,0,10,0\n2,0,24,0,5,0,1,0,16,0,34,0\n9,0,23,0,26,0,3,0,29,0,32,0\n18,0,6,0,15,0,27,0,17,0,33,0\n31,0,28,0,21,0,32,0,26,0,2,0\n24,0,27,0,19,0,9,0,20,0,11,0\n1,0,29,0,7,0,4,0,34,0,18,0\n3,0,17,0,10,0,25,0,16,0,8,0\n14,0,23,0,5,0,30,0,13,0,22,0\n6,0,32,0,25,0,12,0,1,0,33,0\n30,0,34,0,24,0,22,0,31,0,10,0\n27,0,2,0,3,0,14,0,29,0,17,0\n16,0,18,0,23,0,8,0,20,0,21,0\n28,0,11,0,7,0,9,0,13,0,6,0\n26,0,4,0,12,0,5,0,15,0,19,0\n21,0,13,0,16,0,27,0,1,0,30,0\n17,0,2,0,25,0,9,0,22,0,4,0\n6,0,10,0,33,0,5,0,26,0,20,0\n8,0,32,0,14,0,29,0,15,0,24,0\n12,0,34,0,31,0,11,0,3,0,18,0\n19,0,7,0,17,0,28,0,23,0,24,0\n20,0,12,0,13,0,8,0,9,0,34,0\n21,0,22,0,19,0,16,0,29,0,6,0\n1,0,4,0,31,0,10,0,23,0,27,0\n11,0,26,0,15,0,30,0,2,0,7,0\n5,0,28,0,32,0,25,0,14,0,18,0\n3,0,16,0,22,0,33,0,7,0,15,0\n2,0,10,0,13,0,32,0,19,0,18,0\n34,0,27,0,6,0,23,0,25,0,30,0\n20,0,4,0,24,0,28,0,12,0,3,0\n9,0,29,0,21,0,5,0,31,0,33,0\n1,0,14,0,11,0,8,0,26,0,17,0\n"
  },
  {
    "path": "schedules/34_7.csv",
    "content": "3,0,29,0,6,0,33,0,24,0,30,0\n21,0,13,0,34,0,2,0,31,0,23,0\n9,0,17,0,10,0,20,0,25,0,5,0\n32,0,18,0,26,0,16,0,15,0,4,0\n28,0,8,0,14,0,19,0,11,0,7,0\n27,0,1,0,25,0,22,0,12,0,16,0\n23,0,32,0,34,0,9,0,8,0,29,0\n26,0,28,0,22,0,12,0,30,0,13,0\n4,0,18,0,2,0,10,0,27,0,33,0\n6,0,1,0,15,0,11,0,17,0,20,0\n5,0,3,0,7,0,14,0,19,0,31,0\n21,0,12,0,25,0,24,0,18,0,34,0\n15,1,20,0,8,0,30,1,22,0,31,0\n33,0,11,0,6,0,16,0,10,0,5,0\n17,0,7,0,13,0,3,0,32,0,4,0\n24,0,14,0,9,0,1,0,2,0,26,0\n19,0,27,0,28,0,21,0,23,0,29,0\n24,0,13,0,16,0,15,0,17,0,14,0\n29,0,22,0,7,0,10,0,6,0,21,0\n19,0,23,0,9,0,18,0,12,0,11,0\n27,0,20,0,26,0,25,0,3,0,34,0\n33,0,28,0,5,0,8,0,1,0,4,0\n2,0,30,0,11,0,31,0,32,0,12,0\n22,0,21,0,5,0,15,0,26,0,3,0\n25,0,19,0,8,0,6,0,13,0,2,0\n7,0,18,0,14,0,34,0,17,0,30,0\n4,0,31,0,29,0,1,0,9,0,16,0\n32,0,27,0,24,0,28,0,10,0,20,0\n23,0,12,0,15,0,33,0,25,0,7,0\n32,0,13,0,14,0,6,0,20,0,18,0\n21,0,3,0,24,0,8,0,16,0,23,0\n22,0,33,0,17,0,31,0,9,0,28,0\n27,0,29,0,2,0,11,0,5,0,26,0\n30,0,4,0,10,0,19,0,34,0,1,0\n5,0,15,0,31,0,29,0,18,0,28,0\n33,0,34,0,26,0,19,0,17,0,32,0\n10,0,12,0,1,0,8,0,3,0,13,0\n20,0,2,0,16,0,23,0,30,0,7,0\n4,0,14,0,11,0,25,0,24,0,22,0\n6,0,9,0,30,0,21,0,27,0,15,0\n"
  },
  {
    "path": "schedules/34_8.csv",
    "content": "25,0,11,0,2,0,34,0,31,0,9,0\n27,0,16,0,28,0,30,0,20,0,21,0\n7,0,6,0,23,0,32,0,29,0,1,0\n19,0,8,0,13,0,14,0,33,0,18,0\n22,0,17,0,10,0,4,0,12,0,26,0\n15,0,24,0,9,0,3,0,5,0,29,0\n14,0,13,0,23,0,25,0,16,0,10,0\n31,0,27,0,18,0,3,0,24,0,22,0\n17,0,12,0,28,0,7,0,33,0,2,0\n32,0,6,0,30,0,34,0,15,0,5,0\n1,0,8,0,21,0,19,0,11,0,4,0\n20,0,33,0,13,0,26,0,24,0,6,0\n34,1,7,0,25,0,28,1,21,0,22,0\n16,1,8,0,29,0,32,1,26,0,17,0\n1,0,18,0,2,0,31,0,20,0,5,0\n14,0,15,0,19,0,12,0,11,0,27,0\n30,0,3,0,9,0,4,0,10,0,23,0\n5,0,16,0,24,0,12,0,7,0,19,0\n3,0,13,0,21,0,32,0,22,0,2,0\n9,0,26,0,28,0,14,0,1,0,6,0\n34,0,10,0,11,0,27,0,33,0,23,0\n4,0,18,0,17,0,31,0,15,0,25,0\n29,0,20,0,22,0,30,0,8,0,11,0\n10,0,33,0,15,0,16,0,31,0,7,0\n17,0,3,0,1,0,34,0,30,0,14,0\n12,0,29,0,21,0,13,0,5,0,28,0\n4,0,25,0,6,0,24,0,19,0,32,0\n26,0,8,0,18,0,27,0,9,0,2,0\n23,0,31,0,32,0,20,0,17,0,19,0\n7,0,27,0,30,0,6,0,18,0,13,0\n4,0,2,0,5,0,11,0,16,0,14,0\n23,0,34,0,8,0,15,0,26,0,21,0\n9,0,10,0,29,0,1,0,22,0,33,0\n24,0,12,0,20,0,3,0,28,0,25,0\n26,0,31,0,14,0,21,0,5,0,7,0\n1,0,30,0,10,0,24,0,25,0,8,0\n28,0,19,0,33,0,3,0,20,0,15,0\n22,0,6,0,27,0,17,0,23,0,2,0\n11,0,18,0,9,0,12,0,16,0,32,0\n4,0,34,0,20,0,29,0,13,0,7,0\n31,0,3,0,11,0,6,0,28,0,8,0\n34,0,21,0,32,0,18,0,24,0,10,0\n15,0,16,0,17,0,13,0,9,0,1,0\n30,0,2,0,12,0,19,0,26,0,23,0\n5,0,25,0,27,0,29,0,33,0,4,0\n22,0,34,0,16,0,14,0,28,0,32,0\n"
  },
  {
    "path": "schedules/34_9.csv",
    "content": "2,0,34,0,33,0,10,0,23,0,22,0\n26,0,29,0,25,0,6,0,14,0,18,0\n5,0,32,0,30,0,9,0,16,0,1,0\n20,0,31,0,27,0,21,0,3,0,19,0\n17,0,7,0,24,0,12,0,28,0,8,0\n13,0,11,0,19,0,4,0,15,0,34,0\n9,0,24,0,3,0,10,0,30,0,2,0\n26,0,8,0,13,0,31,0,5,0,23,0\n12,0,16,0,4,0,33,0,6,0,28,0\n14,0,1,0,27,0,20,0,15,0,17,0\n29,0,18,0,32,0,11,0,22,0,7,0\n21,0,34,0,5,0,25,0,3,0,28,0\n11,0,14,0,8,0,16,0,19,0,6,0\n23,0,7,0,20,0,27,0,10,0,15,0\n17,0,25,0,13,0,29,0,2,0,22,0\n21,0,1,0,12,0,4,0,9,0,18,0\n24,0,30,0,31,0,32,0,33,0,26,0\n29,0,10,0,21,0,23,0,8,0,16,0\n30,0,15,0,3,0,17,0,11,0,32,0\n19,0,34,0,24,0,6,0,13,0,7,0\n28,0,26,0,22,0,4,0,20,0,1,0\n12,0,33,0,27,0,5,0,25,0,18,0\n14,0,31,0,16,0,2,0,9,0,7,0\n6,0,5,0,24,0,30,0,27,0,22,0\n11,0,1,0,23,0,9,0,19,0,25,0\n32,0,4,0,28,0,2,0,18,0,31,0\n26,0,10,0,14,0,3,0,12,0,13,0\n15,0,33,0,8,0,29,0,20,0,34,0\n21,0,18,0,23,0,17,0,14,0,30,0\n5,0,20,0,2,0,34,0,12,0,11,0\n16,0,17,0,3,0,13,0,24,0,4,0\n1,0,7,0,8,0,22,0,33,0,21,0\n26,0,19,0,27,0,28,0,9,0,29,0\n6,0,10,0,25,0,31,0,15,0,32,0\n33,0,13,0,14,0,28,0,11,0,27,0\n7,0,30,0,25,0,8,0,4,0,3,0\n6,0,22,0,34,0,9,0,17,0,31,0\n15,0,29,0,19,0,2,0,12,0,26,0\n18,0,10,0,20,0,32,0,21,0,16,0\n24,0,23,0,29,0,5,0,1,0,3,0\n11,0,2,0,6,0,7,0,26,0,21,0\n34,0,1,0,31,0,14,0,24,0,12,0\n8,0,30,0,9,0,13,0,32,0,20,0\n4,0,17,0,19,0,5,0,10,0,33,0\n28,0,16,0,18,0,25,0,15,0,22,0\n23,0,4,0,2,0,27,0,8,0,5,0\n3,0,6,0,20,0,1,0,13,0,18,0\n22,0,12,0,32,0,19,0,23,0,14,0\n16,0,27,0,7,0,17,0,26,0,34,0\n9,0,15,0,21,0,25,0,24,0,33,0\n28,0,31,0,10,0,11,0,29,0,30,0\n"
  },
  {
    "path": "schedules/35_1.csv",
    "content": "13,0,31,0,19,0,2,0,26,0,20,0\n22,0,4,0,9,0,24,0,15,0,34,0\n5,0,18,0,27,0,6,0,28,0,35,0\n21,0,14,0,3,0,32,0,29,0,10,0\n33,0,30,0,25,0,17,0,23,0,12,0\n8,0,7,0,11,0,16,0,1,0,32,1\n"
  },
  {
    "path": "schedules/35_10.csv",
    "content": "2,0,32,0,5,0,3,0,28,0,16,0\n23,0,24,0,7,0,18,0,14,0,1,0\n31,0,20,0,10,0,9,0,33,0,21,0\n22,0,15,0,25,0,35,0,13,0,6,0\n12,0,19,0,34,0,27,0,11,0,17,0\n26,0,4,0,8,0,30,0,29,0,9,0\n10,0,14,0,33,0,27,0,18,0,25,0\n6,0,21,0,32,0,13,0,23,0,5,0\n16,0,12,0,17,0,24,0,28,0,8,0\n1,0,19,0,29,0,30,0,31,0,15,0\n7,0,4,0,2,0,20,0,3,0,22,0\n34,0,11,0,29,0,26,0,35,0,24,0\n4,1,5,0,14,0,15,1,19,0,9,0\n10,1,28,0,2,0,17,1,13,0,1,0\n12,0,21,0,27,0,26,0,32,0,3,0\n33,0,22,0,31,0,11,0,23,0,35,0\n16,0,8,0,18,0,25,0,20,0,34,0\n7,0,6,0,27,0,30,0,12,0,2,0\n8,0,32,0,35,0,33,0,5,0,19,0\n20,0,28,0,11,0,10,0,18,0,15,0\n24,0,30,0,14,0,23,0,16,0,21,0\n17,0,34,0,26,0,13,0,31,0,4,0\n7,0,3,0,9,0,1,0,6,0,25,0\n29,0,23,0,20,0,22,0,28,0,27,0\n16,0,32,0,33,0,15,0,26,0,7,0\n25,0,9,0,11,0,5,0,29,0,17,0\n14,0,6,0,31,0,12,0,35,0,4,0\n19,0,18,0,3,0,22,0,21,0,1,0\n34,0,2,0,13,0,8,0,10,0,30,0\n24,0,15,0,33,0,28,0,25,0,31,0\n23,0,8,0,14,0,10,0,7,0,17,0\n3,0,13,0,29,0,35,0,16,0,19,0\n1,0,27,0,2,0,11,0,21,0,4,0\n22,0,18,0,34,0,9,0,32,0,12,0\n6,0,26,0,30,0,20,0,24,0,5,0\n32,0,10,0,1,0,29,0,7,0,35,0\n21,0,8,0,31,0,16,0,14,0,22,0\n17,0,4,0,18,0,33,0,6,0,28,0\n5,0,15,0,3,0,23,0,34,0,27,0\n26,0,20,0,9,0,24,0,2,0,19,0\n30,0,13,0,25,0,11,0,12,0,33,0\n31,0,32,0,24,0,2,0,14,0,3,0\n4,0,15,0,34,0,8,0,11,0,7,0\n1,0,23,0,28,0,26,0,19,0,25,0\n20,0,35,0,27,0,9,0,13,0,22,0\n16,0,10,0,29,0,5,0,12,0,6,0\n17,0,30,0,35,0,18,0,21,0,20,0\n23,0,12,0,15,0,4,0,16,0,9,0\n11,0,22,0,30,0,29,0,32,0,14,0\n27,0,26,0,13,0,7,0,18,0,31,0\n21,0,19,0,28,0,34,0,6,0,10,0\n24,0,1,0,3,0,33,0,8,0,17,0\n25,0,5,0,7,0,2,0,21,0,15,0\n35,0,9,0,14,0,28,0,30,0,34,0\n6,0,3,0,17,0,10,0,11,0,26,0\n16,0,24,0,25,0,19,0,27,0,4,0\n20,0,13,0,12,0,31,0,1,0,5,0\n33,0,23,0,18,0,29,0,8,0,2,0\n22,0,4,0,10,0,32,0,15,0,17,0\n"
  },
  {
    "path": "schedules/35_11.csv",
    "content": "30,0,1,0,27,0,11,0,24,0,19,0\n22,0,31,0,28,0,32,0,3,0,20,0\n16,0,7,0,21,0,12,0,33,0,14,0\n34,0,10,0,13,0,26,0,15,0,25,0\n4,0,8,0,17,0,6,0,23,0,9,0\n35,0,5,0,2,0,29,0,18,0,31,0\n9,0,24,0,25,0,15,0,3,0,11,0\n12,0,16,0,8,0,2,0,29,0,20,0\n30,0,32,0,6,0,26,0,13,0,1,0\n22,0,34,0,21,0,5,0,27,0,28,0\n7,0,19,0,33,0,17,0,10,0,23,0\n14,0,4,0,6,0,18,0,35,0,28,0\n29,1,5,0,34,0,11,1,9,0,33,0\n24,1,13,0,8,0,26,1,4,0,10,0\n17,0,20,0,7,0,27,1,18,0,2,0\n3,0,21,0,31,0,30,0,14,0,19,0\n22,0,23,0,35,0,16,0,25,0,1,0\n15,0,32,0,17,0,12,0,5,0,11,0\n31,0,10,0,24,0,21,0,2,0,23,0\n3,0,4,0,29,0,15,0,16,0,14,0\n19,0,8,0,9,0,34,0,28,0,1,0\n6,0,25,0,33,0,18,0,20,0,30,0\n12,0,27,0,22,0,7,0,35,0,32,0\n26,0,20,0,9,0,13,0,21,0,18,0\n3,0,1,0,7,0,34,0,25,0,8,0\n19,0,28,0,26,0,33,0,5,0,23,0\n24,0,35,0,6,0,31,0,12,0,15,0\n11,0,17,0,16,0,22,0,13,0,14,0\n10,0,29,0,30,0,32,0,4,0,27,0\n2,0,6,0,28,0,13,0,9,0,16,0\n32,0,8,0,29,0,25,0,35,0,21,0\n31,0,23,0,30,0,15,0,27,0,7,0\n2,0,14,0,17,0,26,0,34,0,24,0\n22,0,11,0,20,0,5,0,4,0,19,0\n3,0,33,0,18,0,1,0,12,0,10,0\n13,0,2,0,19,0,23,0,29,0,25,0\n1,0,18,0,15,0,17,0,28,0,21,0\n34,0,9,0,31,0,22,0,16,0,30,0\n5,0,7,0,26,0,12,0,4,0,35,0\n33,0,10,0,32,0,8,0,27,0,11,0\n20,0,6,0,5,0,3,0,24,0,14,0\n2,0,1,0,31,0,4,0,11,0,28,0\n15,0,23,0,20,0,21,0,32,0,14,0\n16,0,18,0,24,0,7,0,8,0,22,0\n3,0,17,0,25,0,29,0,33,0,26,0\n12,0,6,0,13,0,27,0,19,0,34,0\n10,0,35,0,14,0,9,0,30,0,17,0\n33,0,21,0,15,0,4,0,22,0,2,0\n11,0,23,0,1,0,20,0,10,0,8,0\n25,0,18,0,12,0,31,0,19,0,6,0\n16,0,26,0,27,0,9,0,5,0,3,0\n28,0,29,0,13,0,24,0,30,0,7,0\n32,0,34,0,11,0,35,0,19,0,16,0\n5,0,1,0,14,0,13,0,7,0,25,0\n30,0,8,0,28,0,12,0,17,0,26,0\n15,0,24,0,4,0,31,0,27,0,33,0\n9,0,21,0,10,0,22,0,6,0,29,0\n32,0,23,0,18,0,2,0,3,0,34,0\n20,0,4,0,33,0,35,0,29,0,17,0\n23,0,24,0,12,0,1,0,9,0,32,0\n7,0,34,0,14,0,21,0,6,0,11,0\n15,0,19,0,22,0,26,0,2,0,30,0\n10,0,27,0,25,0,28,0,16,0,20,0\n35,0,8,0,3,0,5,0,31,0,13,0\n18,0,11,0,26,0,29,0,24,0,27,0\n"
  },
  {
    "path": "schedules/35_12.csv",
    "content": "31,0,28,0,2,0,6,0,11,0,20,0\n8,0,3,0,30,0,1,0,34,0,23,0\n35,0,16,0,14,0,5,0,25,0,22,0\n32,0,27,0,7,0,33,0,4,0,17,0\n19,0,18,0,13,0,9,0,29,0,24,0\n26,0,10,0,21,0,12,0,15,0,20,0\n33,0,27,0,22,0,35,0,30,0,24,0\n1,0,15,0,25,0,13,0,11,0,21,0\n9,0,5,0,7,0,10,0,32,0,3,0\n8,0,6,0,23,0,14,0,19,0,17,0\n26,0,16,0,28,0,18,0,29,0,12,0\n34,0,2,0,13,0,4,0,31,0,21,0\n18,0,22,0,9,0,3,0,1,0,14,0\n12,0,31,0,17,0,29,0,26,0,27,0\n34,0,28,0,10,0,5,0,23,0,35,0\n11,0,19,0,4,0,30,0,16,0,15,0\n7,0,33,0,8,0,25,0,20,0,24,0\n2,0,32,0,21,0,6,0,17,0,18,0\n25,0,7,0,4,0,22,0,19,0,23,0\n13,0,27,0,30,0,33,0,3,0,28,0\n31,0,14,0,6,0,34,0,24,0,26,0\n35,0,1,0,12,0,5,0,10,0,2,0\n11,0,16,0,29,0,32,0,8,0,9,0\n15,0,14,0,34,0,20,0,17,0,28,0\n25,0,32,0,11,0,35,0,21,0,27,0\n23,0,10,0,18,0,22,0,29,0,6,0\n1,0,16,0,13,0,20,0,7,0,31,0\n26,0,3,0,19,0,2,0,33,0,9,0\n12,0,8,0,24,0,5,0,4,0,15,0\n20,0,26,0,32,0,30,0,11,0,23,0\n24,0,18,0,5,0,34,0,27,0,25,0\n29,0,17,0,1,0,21,0,16,0,3,0\n6,0,15,0,33,0,28,0,35,0,7,0\n30,0,9,0,31,0,10,0,14,0,4,0\n12,0,2,0,19,0,8,0,13,0,22,0\n21,0,7,0,29,0,28,0,14,0,30,0\n27,0,4,0,18,0,1,0,19,0,6,0\n31,0,25,0,8,0,12,0,3,0,23,0\n13,0,5,0,20,0,22,0,26,0,2,0\n33,0,10,0,35,0,24,0,32,0,16,0\n17,0,34,0,9,0,15,0,11,0,28,0\n33,0,23,0,16,0,1,0,21,0,18,0\n2,0,30,0,25,0,8,0,27,0,10,0\n12,0,26,0,14,0,31,0,32,0,19,0\n11,0,34,0,22,0,7,0,13,0,17,0\n4,0,20,0,29,0,6,0,35,0,9,0\n5,0,3,0,27,0,24,0,15,0,21,0\n10,0,17,0,11,0,13,0,33,0,12,0\n26,0,6,0,30,0,16,0,34,0,4,0\n31,0,15,0,23,0,1,0,22,0,32,0\n2,0,14,0,24,0,28,0,9,0,25,0\n3,0,7,0,18,0,35,0,20,0,8,0\n19,0,29,0,30,0,5,0,11,0,26,0\n31,0,22,0,35,0,27,0,9,0,12,0\n5,0,34,0,29,0,7,0,2,0,1,0\n3,0,6,0,24,0,17,0,23,0,25,0\n21,0,8,0,28,0,19,0,16,0,20,0\n13,0,15,0,10,0,14,0,32,0,18,0\n4,0,28,0,22,0,33,0,1,0,26,0\n14,0,20,0,23,0,11,0,2,0,27,0\n12,0,6,0,10,0,30,0,34,0,7,0\n5,0,21,0,17,0,4,0,9,0,13,0\n15,0,35,0,32,0,16,0,18,0,8,0\n19,0,25,0,33,0,29,0,31,0,3,0\n24,0,1,0,28,0,32,0,5,0,12,0\n6,0,16,0,27,0,8,0,29,0,15,0\n23,0,9,0,26,0,13,0,25,0,35,0\n2,0,4,0,3,0,11,0,14,0,7,0\n17,0,30,0,22,0,31,0,18,0,33,0\n20,0,21,0,34,0,24,0,10,0,19,0\n"
  },
  {
    "path": "schedules/35_13.csv",
    "content": "31,0,10,0,22,0,18,0,9,0,1,0\n15,0,3,0,30,0,25,0,2,0,16,0\n17,0,26,0,7,0,21,0,11,0,23,0\n28,0,35,0,6,0,12,0,24,0,29,0\n33,0,8,0,34,0,13,0,32,0,27,0\n14,0,4,0,1,0,20,0,19,0,5,0\n29,0,6,0,7,0,8,0,3,0,22,0\n32,0,35,0,21,0,14,0,34,0,10,0\n24,0,9,0,5,0,28,0,15,0,16,0\n2,0,25,0,19,0,20,0,18,0,23,0\n26,0,12,0,13,0,17,0,33,0,4,0\n30,0,27,0,20,0,11,0,31,0,28,0\n29,1,9,0,3,0,23,0,32,0,25,0\n33,0,24,0,31,0,10,0,17,0,30,0\n7,0,12,0,19,0,15,0,14,0,26,0\n11,0,4,0,21,0,2,0,6,0,1,0\n16,0,5,0,34,0,35,0,27,0,22,0\n18,0,32,0,4,0,8,0,13,0,17,0\n22,0,7,0,33,0,21,0,9,0,28,0\n8,0,18,0,15,0,27,0,19,0,1,0\n23,0,26,0,12,0,31,0,35,0,3,0\n13,0,25,0,5,0,11,0,2,0,10,0\n34,0,6,0,20,0,30,0,16,0,24,0\n29,0,15,0,5,0,14,0,7,0,31,0\n32,0,28,0,30,0,11,0,23,0,13,0\n33,0,20,0,10,0,6,0,16,0,4,0\n14,0,8,0,19,0,21,0,17,0,34,0\n26,0,9,0,2,0,1,0,24,0,35,0\n25,0,29,0,27,0,12,0,18,0,22,0\n3,0,21,0,16,0,13,0,19,0,30,0\n12,0,10,0,32,0,27,0,17,0,5,0\n2,0,31,0,20,0,11,0,9,0,8,0\n23,0,22,0,24,0,14,0,4,0,26,0\n33,0,29,0,28,0,25,0,6,0,3,0\n18,0,34,0,7,0,1,0,35,0,15,0\n22,0,13,0,16,0,23,0,27,0,14,0\n31,0,29,0,19,0,7,0,4,0,30,0\n12,0,28,0,17,0,10,0,1,0,21,0\n6,0,18,0,5,0,34,0,33,0,3,0\n9,0,15,0,25,0,26,0,8,0,24,0\n35,0,11,0,20,0,32,0,2,0,33,0\n3,0,14,0,18,0,12,0,9,0,6,0\n30,0,1,0,23,0,29,0,8,0,2,0\n11,0,24,0,19,0,28,0,7,0,10,0\n17,0,34,0,35,0,20,0,15,0,13,0\n4,0,27,0,16,0,31,0,21,0,25,0\n26,0,22,0,1,0,32,0,5,0,30,0\n27,0,11,0,34,0,23,0,17,0,9,0\n7,0,3,0,32,0,2,0,12,0,31,0\n13,0,14,0,21,0,28,0,4,0,5,0\n16,0,8,0,20,0,10,0,29,0,18,0\n6,0,33,0,15,0,25,0,24,0,22,0\n35,0,7,0,23,0,26,0,19,0,28,0\n24,0,17,0,2,0,32,0,6,0,31,0\n25,0,30,0,14,0,8,0,35,0,13,0\n10,0,4,0,15,0,11,0,16,0,18,0\n26,0,27,0,21,0,20,0,3,0,1,0\n29,0,22,0,9,0,5,0,12,0,33,0\n19,0,17,0,18,0,34,0,2,0,13,0\n3,0,23,0,10,0,21,0,22,0,30,0\n28,0,34,0,25,0,32,0,19,0,15,0\n26,0,5,0,11,0,7,0,6,0,8,0\n14,0,1,0,29,0,9,0,33,0,27,0\n35,0,12,0,16,0,20,0,4,0,24,0\n31,0,27,0,5,0,15,0,11,0,33,0\n2,0,35,0,30,0,6,0,17,0,22,0\n19,0,23,0,34,0,16,0,31,0,9,0\n28,0,3,0,4,0,26,0,25,0,18,0\n12,0,8,0,1,0,14,0,20,0,32,0\n24,0,13,0,10,0,29,0,21,0,7,0\n14,0,6,0,11,0,12,0,30,0,34,0\n24,0,18,0,21,0,5,0,33,0,23,0\n32,0,31,0,29,0,19,0,15,0,22,0\n8,0,28,0,4,0,3,0,2,0,27,0\n10,0,13,0,9,0,7,0,26,0,20,0\n25,0,17,0,1,0,35,0,16,0,29,0\n"
  },
  {
    "path": "schedules/35_14.csv",
    "content": "2,0,29,0,18,0,24,0,23,0,21,0\n7,0,27,0,35,0,9,0,20,0,28,0\n5,0,11,0,16,0,34,0,6,0,30,0\n13,0,33,0,26,0,19,0,15,0,22,0\n10,0,12,0,3,0,1,0,32,0,4,0\n14,0,25,0,13,0,8,0,17,0,31,0\n9,0,4,0,6,0,33,0,18,0,34,0\n35,0,5,0,29,0,2,0,10,0,11,0\n30,0,3,0,15,0,16,0,25,0,24,0\n27,0,17,0,32,0,21,0,7,0,28,0\n23,0,31,0,26,0,12,0,22,0,14,0\n19,0,20,0,24,0,1,0,8,0,9,0\n6,1,27,0,15,0,5,1,10,0,35,0\n14,0,28,0,1,0,25,0,12,0,8,0\n18,0,21,0,20,0,31,0,3,0,34,0\n16,0,26,0,17,0,11,0,33,0,32,0\n23,0,22,0,30,0,19,0,2,0,7,0\n13,0,4,0,28,0,29,0,20,0,26,0\n14,0,35,0,27,0,33,0,3,0,22,0\n19,0,32,0,6,0,31,0,18,0,10,0\n4,0,5,0,25,0,13,0,1,0,11,0\n16,0,34,0,15,0,29,0,24,0,30,0\n17,0,2,0,12,0,7,0,8,0,23,0\n21,0,4,0,26,0,9,0,1,0,16,0\n10,0,8,0,27,0,14,0,2,0,15,0\n25,0,5,0,30,0,20,0,17,0,34,0\n7,0,33,0,6,0,3,0,13,0,32,0\n29,0,21,0,9,0,19,0,35,0,28,0\n12,0,22,0,24,0,31,0,11,0,23,0\n18,0,28,0,8,0,3,0,5,0,2,0\n33,0,19,0,22,0,10,0,6,0,16,0\n13,0,34,0,29,0,26,0,7,0,24,0\n27,0,9,0,25,0,18,0,11,0,4,0\n1,0,12,0,35,0,21,0,30,0,14,0\n17,0,23,0,15,0,20,0,31,0,32,0\n34,0,4,0,35,0,24,0,13,0,2,0\n33,0,3,0,1,0,22,0,27,0,29,0\n25,0,21,0,31,0,23,0,9,0,5,0\n19,0,30,0,17,0,26,0,6,0,14,0\n10,0,7,0,18,0,20,0,8,0,16,0\n28,0,12,0,11,0,32,0,15,0,21,0\n8,0,34,0,19,0,35,0,3,0,26,0\n29,0,11,0,14,0,33,0,2,0,31,0\n10,0,24,0,28,0,25,0,1,0,23,0\n5,0,18,0,15,0,13,0,22,0,20,0\n9,0,32,0,7,0,12,0,30,0,27,0\n17,0,6,0,3,0,4,0,16,0,29,0\n30,0,28,0,31,0,10,0,33,0,8,0\n15,0,11,0,7,0,18,0,6,0,25,0\n32,0,16,0,34,0,12,0,5,0,19,0\n2,0,14,0,23,0,17,0,13,0,9,0\n24,0,35,0,1,0,4,0,20,0,27,0\n22,0,21,0,10,0,26,0,30,0,9,0\n12,0,29,0,15,0,23,0,4,0,34,0\n6,0,24,0,31,0,26,0,28,0,25,0\n35,0,20,0,2,0,22,0,1,0,5,0\n13,0,16,0,21,0,32,0,14,0,18,0\n11,0,17,0,8,0,3,0,19,0,27,0\n7,0,20,0,25,0,33,0,12,0,21,0\n30,0,35,0,32,0,31,0,15,0,4,0\n10,0,23,0,13,0,28,0,19,0,16,0\n9,0,14,0,33,0,29,0,7,0,17,0\n8,0,3,0,22,0,5,0,34,0,24,0\n26,0,11,0,2,0,6,0,27,0,18,0\n23,0,3,0,28,0,1,0,15,0,10,0\n22,0,9,0,16,0,8,0,29,0,32,0\n19,0,14,0,21,0,6,0,11,0,24,0\n1,0,7,0,34,0,18,0,17,0,35,0\n13,0,31,0,5,0,12,0,26,0,27,0\n4,0,2,0,25,0,33,0,30,0,20,0\n1,0,31,0,29,0,14,0,7,0,16,0\n13,0,18,0,30,0,28,0,22,0,17,0\n24,0,8,0,4,0,5,0,33,0,15,0\n12,0,23,0,27,0,35,0,21,0,6,0\n32,0,19,0,26,0,34,0,2,0,25,0\n20,0,10,0,12,0,11,0,9,0,3,0\n6,0,22,0,2,0,7,0,30,0,4,0\n8,0,21,0,11,0,27,0,34,0,28,0\n26,0,18,0,24,0,17,0,10,0,5,0\n31,0,19,0,9,0,13,0,35,0,15,0\n16,0,33,0,23,0,3,0,29,0,25,0\n1,0,20,0,6,0,32,0,14,0,5,0\n"
  },
  {
    "path": "schedules/35_2.csv",
    "content": "22,0,7,0,20,0,30,0,12,0,1,0\n17,0,10,0,31,0,2,0,8,0,23,0\n28,0,5,0,24,0,13,0,4,0,35,0\n32,0,25,0,14,0,15,0,11,0,27,0\n9,0,21,0,16,0,3,0,29,0,34,0\n19,0,26,0,18,0,6,0,33,0,5,0\n1,0,29,0,20,0,4,0,8,0,14,0\n22,0,19,0,25,0,9,0,17,0,24,0\n34,0,15,0,2,0,7,0,13,0,33,0\n35,0,11,0,12,0,3,0,10,0,18,0\n30,0,27,0,23,0,26,0,21,0,28,0\n6,0,31,0,20,1,32,0,16,0,35,1\n"
  },
  {
    "path": "schedules/35_3.csv",
    "content": "23,0,6,0,33,0,8,0,10,0,1,0\n15,0,7,0,28,0,31,0,25,0,27,0\n13,0,21,0,9,0,2,0,3,0,30,0\n14,0,18,0,12,0,29,0,26,0,24,0\n17,0,34,0,20,0,22,0,4,0,19,0\n16,0,35,0,32,0,11,0,5,0,7,0\n4,1,17,0,28,0,24,1,8,0,9,0\n11,0,13,0,26,0,31,1,20,0,6,0\n34,0,10,0,27,0,14,0,35,0,21,0\n25,0,18,0,1,0,19,0,5,0,3,0\n16,0,22,0,30,0,15,0,29,0,23,0\n32,0,12,0,31,0,33,0,2,0,17,0\n1,0,4,0,29,0,21,0,26,0,7,0\n22,0,2,0,8,0,18,0,27,0,11,0\n19,0,24,0,15,0,35,0,13,0,33,0\n3,0,12,0,28,0,6,0,34,0,16,0\n9,0,25,0,23,0,14,0,32,0,20,0\n10,0,5,0,24,0,30,0,4,0,31,0\n"
  },
  {
    "path": "schedules/35_4.csv",
    "content": "9,0,10,0,31,0,20,0,19,0,16,0\n21,0,33,0,5,0,25,0,8,0,24,0\n15,0,29,0,3,0,26,0,30,0,1,0\n17,0,18,0,28,0,34,0,6,0,13,0\n22,0,12,0,23,0,14,0,7,0,2,0\n11,0,35,0,32,0,4,0,27,0,24,0\n7,0,18,0,15,0,8,0,9,0,29,0\n20,0,21,0,22,0,11,0,3,0,17,0\n26,0,25,0,19,0,14,0,4,0,13,0\n27,0,30,0,2,0,6,0,28,0,31,0\n16,0,5,0,34,0,32,0,12,0,1,0\n35,0,23,0,13,0,10,0,33,0,30,0\n15,1,14,0,16,0,21,1,11,0,28,0\n6,1,24,0,7,0,10,1,20,0,26,0\n4,0,29,0,33,0,22,0,34,0,9,0\n27,0,1,0,19,0,23,0,17,0,8,0\n31,0,35,0,3,0,18,0,12,0,5,0\n32,0,25,0,10,0,2,0,29,0,17,0\n6,0,1,0,9,0,14,0,21,0,35,0\n20,0,2,0,13,0,15,0,5,0,27,0\n30,0,25,0,18,0,24,0,16,0,22,0\n28,0,3,0,7,0,19,0,32,0,33,0\n8,0,26,0,11,0,23,0,31,0,34,0\n12,0,21,0,6,0,4,0,15,0,10,0\n"
  },
  {
    "path": "schedules/35_5.csv",
    "content": "22,0,27,0,1,0,23,0,4,0,16,0\n5,0,24,0,31,0,32,0,8,0,13,0\n2,0,12,0,28,0,35,0,15,0,17,0\n6,0,11,0,14,0,34,0,7,0,30,0\n18,0,19,0,10,0,33,0,20,0,25,0\n21,0,9,0,3,0,29,0,26,0,5,0\n27,0,25,0,16,0,31,0,2,0,14,0\n24,0,12,0,33,0,1,0,3,0,34,0\n32,0,7,0,19,0,26,0,28,0,23,0\n8,0,9,0,10,0,17,0,22,0,6,0\n29,0,13,0,4,0,35,0,11,0,18,0\n20,0,15,0,32,0,30,0,21,0,16,0\n8,1,2,0,35,0,13,1,9,0,7,0\n20,1,23,0,29,0,34,1,24,0,17,0\n27,1,6,0,21,0,12,0,22,0,19,0\n10,0,31,0,26,0,11,0,1,0,15,0\n25,0,5,0,30,0,4,0,28,0,33,0\n3,0,18,0,17,0,14,0,27,0,32,0\n4,0,19,0,34,0,31,0,15,0,9,0\n23,0,11,0,8,0,25,0,12,0,21,0\n35,0,14,0,20,0,1,0,6,0,5,0\n22,0,26,0,18,0,2,0,30,0,24,0\n16,0,29,0,3,0,10,0,28,0,7,0\n33,0,14,0,22,0,13,0,26,0,35,0\n30,0,1,0,8,0,19,0,27,0,29,0\n32,0,21,0,34,0,10,0,2,0,4,0\n25,0,6,0,15,0,13,0,24,0,3,0\n23,0,9,0,12,0,31,0,18,0,20,0\n5,0,17,0,33,0,11,0,16,0,7,0\n28,0,13,0,34,0,8,0,20,0,27,0\n"
  },
  {
    "path": "schedules/35_6.csv",
    "content": "15,0,9,0,7,0,12,0,35,0,3,0\n32,0,29,0,18,0,16,0,13,0,5,0\n22,0,11,0,4,0,1,0,31,0,14,0\n30,0,23,0,21,0,28,0,8,0,33,0\n2,0,24,0,27,0,34,0,25,0,19,0\n20,0,10,0,17,0,26,0,6,0,22,0\n15,0,14,0,33,0,1,0,34,0,18,0\n4,0,12,0,30,0,24,0,32,0,5,0\n23,0,13,0,10,0,7,0,25,0,20,0\n3,0,6,0,28,0,31,0,11,0,8,0\n21,0,17,0,2,0,16,0,9,0,27,0\n26,0,35,0,14,0,19,0,29,0,13,0\n27,0,8,0,12,0,20,0,11,0,18,0\n9,0,5,0,19,0,6,0,1,0,23,0\n32,0,4,0,34,0,21,0,28,0,7,0\n10,0,29,0,31,0,15,0,30,0,2,0\n35,0,16,0,22,0,24,0,26,0,3,0\n17,0,25,0,6,0,33,0,29,0,4,0\n16,0,30,0,34,0,23,0,35,0,20,0\n25,0,32,0,8,0,14,0,9,0,22,0\n13,0,33,0,1,0,12,0,10,0,2,0\n31,0,28,0,5,0,27,0,26,0,15,0\n11,0,19,0,24,0,18,0,7,0,17,0\n3,0,22,0,20,0,21,0,33,0,5,0\n18,0,35,0,9,0,28,0,4,0,10,0\n32,0,26,0,2,0,23,0,15,0,11,0\n34,0,14,0,13,0,3,0,30,0,17,0\n16,0,21,0,25,0,6,0,31,0,12,0\n1,0,29,0,27,0,7,0,24,0,8,0\n19,0,33,0,20,0,32,0,31,0,9,0\n18,0,25,0,3,0,1,0,26,0,30,0\n28,0,23,0,12,0,17,0,29,0,22,0\n13,0,4,0,15,0,19,0,8,0,16,0\n27,0,7,0,35,0,2,0,6,0,14,0\n5,0,10,0,11,0,24,0,34,0,21,0\n"
  },
  {
    "path": "schedules/35_7.csv",
    "content": "13,0,27,0,26,0,5,0,28,0,25,0\n24,0,17,0,7,0,14,0,34,0,23,0\n21,0,16,0,9,0,6,0,2,0,30,0\n15,0,10,0,4,0,33,0,11,0,31,0\n3,0,22,0,35,0,1,0,29,0,12,0\n20,0,19,0,18,0,8,0,32,0,21,0\n29,0,16,0,30,0,4,0,14,0,25,0\n8,0,28,0,19,0,34,0,35,0,11,0\n15,0,22,0,6,0,5,0,17,0,10,0\n2,0,7,0,31,0,32,0,26,0,1,0\n9,0,24,0,33,0,3,0,20,0,13,0\n12,0,23,0,26,0,27,0,18,0,10,0\n9,0,14,0,30,0,2,1,19,0,15,0\n28,0,22,0,1,0,24,0,21,0,34,0\n32,0,17,0,35,0,13,0,4,0,16,0\n3,0,6,0,31,0,18,0,23,0,8,0\n5,0,12,0,33,0,11,0,25,0,29,0\n20,0,7,0,34,0,27,0,3,0,15,0\n9,0,5,0,23,0,4,0,35,0,28,0\n30,0,12,0,17,0,26,0,24,0,8,0\n29,0,14,0,27,0,32,0,6,0,10,0\n1,0,21,0,11,0,13,0,18,0,7,0\n25,0,16,0,19,0,22,0,20,0,31,0\n2,0,34,0,26,0,33,0,35,0,14,0\n11,0,30,0,28,0,6,0,17,0,20,0\n15,0,13,0,8,0,29,0,23,0,2,0\n5,0,32,0,31,0,12,0,3,0,9,0\n33,0,10,0,19,0,16,0,1,0,7,0\n21,0,4,0,18,0,22,0,25,0,27,0\n24,0,20,0,2,0,7,0,5,0,29,0\n1,0,25,0,10,0,17,0,8,0,9,0\n27,0,35,0,21,0,24,0,14,0,31,0\n26,0,3,0,4,0,13,0,6,0,19,0\n16,0,12,0,18,0,15,0,28,0,34,0\n22,0,11,0,23,0,33,0,30,0,32,0\n14,0,2,0,1,0,20,0,12,0,4,0\n15,0,25,0,32,0,6,0,35,0,24,0\n13,0,5,0,34,0,10,0,31,0,30,0\n21,0,3,0,23,0,16,0,26,0,11,0\n29,0,22,0,8,0,9,0,28,0,7,0\n19,0,17,0,27,0,33,0,18,0,2,0\n"
  },
  {
    "path": "schedules/35_8.csv",
    "content": "27,0,29,0,28,0,17,0,16,0,9,0\n19,0,8,0,22,0,5,0,23,0,21,0\n13,0,30,0,33,0,35,0,12,0,2,0\n26,0,31,0,10,0,34,0,32,0,24,0\n25,0,14,0,3,0,6,0,18,0,15,0\n4,0,7,0,11,0,1,0,20,0,13,0\n32,0,25,0,26,0,12,0,19,0,9,0\n1,0,33,0,18,0,30,0,6,0,10,0\n15,0,7,0,34,0,11,0,35,0,8,0\n17,0,31,0,22,0,21,0,14,0,20,0\n3,0,24,0,29,0,5,0,16,0,28,0\n4,0,2,0,21,0,27,0,23,0,14,0\n31,1,9,0,6,0,24,1,12,0,7,0\n8,0,25,0,30,0,17,0,32,0,4,0\n23,0,35,0,28,0,1,0,5,0,11,0\n15,0,26,0,29,0,33,0,3,0,2,0\n19,0,34,0,20,0,18,0,16,0,13,0\n22,0,27,0,25,0,10,0,1,0,29,0\n18,0,20,0,12,0,2,0,28,0,8,0\n7,0,14,0,32,0,27,0,15,0,5,0\n17,0,34,0,33,0,19,0,23,0,24,0\n35,0,21,0,16,0,30,0,31,0,4,0\n9,0,22,0,10,0,3,0,13,0,11,0\n6,0,8,0,17,0,26,0,2,0,27,0\n4,0,10,0,3,0,19,0,31,0,7,0\n15,0,9,0,20,0,30,0,5,0,24,0\n11,0,14,0,16,0,26,0,33,0,12,0\n29,0,23,0,22,0,18,0,32,0,35,0\n13,0,28,0,34,0,25,0,21,0,6,0\n1,0,12,0,32,0,17,0,35,0,3,0\n14,0,5,0,19,0,30,0,29,0,11,0\n26,0,24,0,6,0,1,0,22,0,4,0\n34,0,18,0,21,0,2,0,9,0,7,0\n20,0,10,0,23,0,16,0,15,0,25,0\n13,0,27,0,8,0,28,0,31,0,33,0\n29,0,12,0,5,0,34,0,4,0,6,0\n23,0,7,0,30,0,22,0,26,0,28,0\n32,0,33,0,21,0,20,0,3,0,16,0\n1,0,35,0,9,0,10,0,14,0,8,0\n2,0,18,0,11,0,25,0,24,0,31,0\n13,0,15,0,35,0,19,0,17,0,27,0\n31,0,16,0,2,0,6,0,22,0,7,0\n26,0,5,0,17,0,10,0,18,0,25,0\n24,0,20,0,8,0,14,0,13,0,29,0\n33,0,19,0,4,0,28,0,32,0,9,0\n27,0,30,0,3,0,23,0,34,0,11,0\n12,0,21,0,31,0,1,0,15,0,24,0\n"
  },
  {
    "path": "schedules/35_9.csv",
    "content": "13,0,3,0,16,0,1,0,35,0,28,0\n26,0,32,0,21,0,11,0,9,0,29,0\n22,0,12,0,15,0,31,0,20,0,25,0\n5,0,6,0,14,0,33,0,2,0,8,0\n34,0,23,0,18,0,10,0,24,0,27,0\n4,0,17,0,29,0,7,0,19,0,30,0\n31,0,35,0,9,0,20,0,14,0,2,0\n27,0,19,0,23,0,11,0,25,0,13,0\n18,0,7,0,1,0,34,0,33,0,22,0\n3,0,4,0,30,0,26,0,6,0,10,0\n32,0,24,0,16,0,17,0,5,0,15,0\n21,0,28,0,31,0,8,0,12,0,10,0\n17,1,2,0,13,0,29,1,32,0,34,0\n21,1,12,0,24,0,14,0,3,0,7,0\n15,0,20,0,11,0,6,0,28,0,23,0\n22,0,18,0,26,0,35,0,5,0,19,0\n33,0,30,0,27,0,4,0,1,0,16,0\n8,0,9,0,3,0,25,0,7,0,15,0\n33,0,10,0,1,0,12,0,32,0,19,0\n13,0,31,0,30,0,18,0,16,0,21,0\n9,0,6,0,17,0,22,0,5,0,28,0\n8,0,20,0,24,0,27,0,29,0,26,0\n34,0,2,0,25,0,4,0,35,0,11,0\n14,0,31,0,18,0,23,0,30,0,15,0\n5,0,33,0,7,0,26,0,20,0,13,0\n2,0,19,0,29,0,3,0,27,0,12,0\n6,0,25,0,1,0,10,0,17,0,14,0\n21,0,34,0,4,0,9,0,16,0,28,0\n35,0,8,0,22,0,23,0,11,0,32,0\n24,0,29,0,28,0,31,0,1,0,2,0\n14,0,16,0,25,0,18,0,20,0,19,0\n23,0,21,0,3,0,5,0,4,0,32,0\n7,0,35,0,26,0,6,0,27,0,15,0\n11,0,10,0,22,0,33,0,13,0,24,0\n9,0,34,0,12,0,17,0,30,0,8,0\n33,0,25,0,18,0,7,0,31,0,29,0\n23,0,10,0,2,0,17,0,26,0,16,0\n20,0,5,0,3,0,30,0,11,0,34,0\n1,0,15,0,19,0,8,0,21,0,6,0\n35,0,13,0,12,0,4,0,24,0,9,0\n27,0,28,0,14,0,22,0,32,0,3,0\n19,0,11,0,16,0,9,0,10,0,7,0\n15,0,18,0,8,0,2,0,4,0,22,0\n1,0,17,0,21,0,20,0,35,0,23,0\n30,0,24,0,26,0,25,0,28,0,32,0\n14,0,29,0,12,0,13,0,34,0,6,0\n5,0,27,0,9,0,33,0,31,0,3,0\n13,0,29,0,10,0,15,0,16,0,35,0\n7,0,22,0,27,0,21,0,2,0,30,0\n8,0,5,0,11,0,18,0,17,0,12,0\n32,0,31,0,6,0,34,0,26,0,1,0\n20,0,4,0,28,0,24,0,19,0,14,0\n23,0,25,0,17,0,33,0,29,0,21,0\n"
  },
  {
    "path": "schedules/36_1.csv",
    "content": "8,0,32,0,17,0,23,0,31,0,27,0\n5,0,11,0,15,0,13,0,6,0,20,0\n19,0,25,0,9,0,16,0,21,0,12,0\n3,0,35,0,24,0,29,0,34,0,18,0\n1,0,22,0,10,0,28,0,7,0,14,0\n36,0,2,0,26,0,33,0,4,0,30,0\n"
  },
  {
    "path": "schedules/36_10.csv",
    "content": "10,0,34,0,13,0,12,0,35,0,24,0\n18,0,19,0,22,0,3,0,4,0,23,0\n5,0,20,0,7,0,32,0,8,0,30,0\n6,0,33,0,29,0,28,0,1,0,17,0\n11,0,26,0,27,0,9,0,16,0,15,0\n2,0,36,0,14,0,31,0,25,0,21,0\n35,0,20,0,17,0,22,0,3,0,29,0\n4,0,24,0,34,0,6,0,15,0,30,0\n32,0,16,0,27,0,8,0,10,0,2,0\n14,0,1,0,13,0,12,0,7,0,9,0\n31,0,26,0,28,0,23,0,5,0,21,0\n18,0,36,0,25,0,11,0,19,0,33,0\n22,0,13,0,16,0,15,0,29,0,32,0\n23,0,7,0,8,0,24,0,21,0,17,0\n34,0,30,0,3,0,25,0,14,0,33,0\n12,0,4,0,27,0,20,0,19,0,28,0\n10,0,11,0,6,0,2,0,9,0,31,0\n5,0,18,0,26,0,36,0,35,0,1,0\n34,0,16,0,8,0,27,0,29,0,17,0\n21,0,12,0,14,0,33,0,31,0,22,0\n15,0,26,0,10,0,7,0,11,0,4,0\n24,0,18,0,3,0,36,0,28,0,13,0\n1,0,5,0,9,0,19,0,2,0,25,0\n32,0,6,0,20,0,30,0,35,0,23,0\n15,0,27,0,33,0,4,0,18,0,14,0\n10,0,17,0,19,0,22,0,28,0,9,0\n35,0,3,0,25,0,21,0,6,0,7,0\n36,0,12,0,5,0,29,0,23,0,16,0\n31,0,8,0,13,0,26,0,30,0,1,0\n20,0,11,0,24,0,32,0,2,0,34,0\n23,0,33,0,18,0,10,0,7,0,16,0\n14,0,3,0,15,0,5,0,35,0,8,0\n6,0,1,0,31,0,36,0,27,0,20,0\n9,0,32,0,11,0,34,0,28,0,12,0\n24,0,30,0,25,0,26,0,22,0,17,0\n4,0,2,0,21,0,29,0,13,0,19,0\n15,0,36,0,31,0,10,0,3,0,32,0\n6,0,8,0,9,0,20,0,18,0,12,0\n28,0,29,0,2,0,26,0,14,0,7,0\n19,0,21,0,35,0,11,0,16,0,30,0\n25,0,17,0,23,0,27,0,13,0,24,0\n22,0,5,0,4,0,34,0,33,0,1,0\n21,0,29,0,30,0,18,0,9,0,10,0\n15,0,7,0,24,0,31,0,12,0,19,0\n14,0,17,0,8,0,4,0,36,0,32,0\n28,0,35,0,16,0,1,0,20,0,25,0\n27,0,6,0,22,0,13,0,11,0,5,0\n26,0,23,0,34,0,2,0,33,0,3,0\n31,0,20,0,29,0,15,0,18,0,28,0\n5,0,17,0,30,0,25,0,12,0,10,0\n1,0,32,0,24,0,21,0,27,0,3,0\n23,0,36,0,9,0,22,0,7,0,34,0\n19,0,14,0,16,0,13,0,6,0,26,0\n2,0,11,0,35,0,8,0,4,0,33,0\n7,0,27,0,28,0,22,0,30,0,36,0\n13,0,18,0,21,0,5,0,34,0,6,0\n19,0,8,0,3,0,10,0,14,0,20,0\n1,0,23,0,2,0,15,0,11,0,17,0\n12,0,32,0,33,0,29,0,25,0,26,0\n4,0,9,0,35,0,16,0,24,0,31,0\n"
  },
  {
    "path": "schedules/36_11.csv",
    "content": "27,0,36,0,23,0,24,0,30,0,17,0\n19,0,10,0,2,0,22,0,7,0,5,0\n16,0,8,0,3,0,34,0,6,0,28,0\n35,0,15,0,18,0,31,0,25,0,12,0\n11,0,1,0,20,0,4,0,14,0,26,0\n32,0,9,0,21,0,33,0,29,0,13,0\n5,0,6,0,30,0,23,0,8,0,18,0\n10,0,25,0,34,0,4,0,15,0,1,0\n17,0,35,0,29,0,2,0,11,0,27,0\n14,0,28,0,12,0,9,0,13,0,31,0\n7,0,16,0,19,0,32,0,24,0,3,0\n33,0,26,0,36,0,20,0,21,0,22,0\n12,0,1,0,23,0,10,0,13,0,8,0\n35,0,16,0,25,0,30,0,29,0,19,0\n22,0,33,0,6,0,17,0,11,0,36,0\n27,0,18,0,7,0,28,0,15,0,26,0\n21,0,24,0,31,0,34,0,5,0,14,0\n20,0,4,0,32,0,9,0,2,0,3,0\n29,0,6,0,16,0,12,0,7,0,33,0\n28,0,17,0,18,0,21,0,5,0,35,0\n13,0,22,0,25,0,10,0,36,0,32,0\n8,0,4,0,2,0,1,0,31,0,27,0\n11,0,24,0,34,0,23,0,30,0,20,0\n14,0,15,0,9,0,19,0,26,0,3,0\n10,0,33,0,17,0,16,0,12,0,18,0\n2,0,22,0,31,0,30,0,21,0,28,0\n8,0,15,0,24,0,11,0,4,0,29,0\n3,0,14,0,7,0,1,0,35,0,36,0\n6,0,19,0,9,0,20,0,27,0,13,0\n26,0,23,0,34,0,32,0,25,0,5,0\n30,0,35,0,33,0,21,0,1,0,3,0\n8,0,12,0,29,0,28,0,19,0,36,0\n18,0,5,0,20,0,13,0,4,0,7,0\n31,0,10,0,11,0,26,0,2,0,16,0\n32,0,14,0,22,0,25,0,23,0,6,0\n15,0,34,0,17,0,24,0,9,0,27,0\n21,0,13,0,26,0,8,0,7,0,30,0\n28,0,31,0,4,0,10,0,35,0,23,0\n3,0,27,0,33,0,5,0,11,0,12,0\n20,0,17,0,6,0,19,0,15,0,25,0\n18,0,1,0,9,0,24,0,29,0,22,0\n36,0,2,0,14,0,32,0,16,0,34,0\n28,0,33,0,25,0,8,0,26,0,20,0\n19,0,31,0,23,0,4,0,24,0,18,0\n6,0,2,0,1,0,36,0,5,0,9,0\n12,0,34,0,13,0,35,0,11,0,7,0\n30,0,3,0,22,0,15,0,29,0,32,0\n17,0,27,0,16,0,21,0,10,0,14,0\n25,0,24,0,7,0,2,0,33,0,34,0\n8,0,11,0,28,0,13,0,32,0,18,0\n29,0,23,0,5,0,20,0,35,0,31,0\n12,0,15,0,21,0,19,0,22,0,1,0\n16,0,30,0,36,0,17,0,9,0,26,0\n10,0,3,0,4,0,27,0,6,0,14,0\n29,0,20,0,2,0,19,0,18,0,34,0\n21,0,36,0,25,0,9,0,11,0,23,0\n26,0,5,0,24,0,12,0,35,0,6,0\n15,0,30,0,10,0,8,0,33,0,14,0\n4,0,27,0,22,0,13,0,28,0,16,0\n32,0,1,0,7,0,3,0,17,0,31,0\n19,0,11,0,21,0,24,0,6,0,10,0\n2,0,13,0,23,0,33,0,15,0,16,0\n30,0,32,0,26,0,12,0,4,0,17,0\n5,0,27,0,28,0,1,0,25,0,14,0\n34,0,3,0,36,0,29,0,31,0,18,0\n9,0,7,0,20,0,8,0,22,0,35,0\n"
  },
  {
    "path": "schedules/36_12.csv",
    "content": "20,0,14,0,15,0,21,0,11,0,19,0\n10,0,16,0,1,0,27,0,7,0,18,0\n29,0,30,0,32,0,34,0,24,0,22,0\n23,0,6,0,13,0,12,0,8,0,2,0\n9,0,36,0,28,0,5,0,17,0,25,0\n4,0,26,0,33,0,31,0,3,0,35,0\n16,0,24,0,7,0,30,0,23,0,20,0\n19,0,5,0,13,0,2,0,32,0,34,0\n6,0,12,0,21,0,36,0,35,0,17,0\n31,0,4,0,25,0,8,0,18,0,29,0\n27,0,1,0,11,0,3,0,28,0,10,0\n14,0,22,0,26,0,9,0,15,0,33,0\n17,0,29,0,12,0,19,0,7,0,20,0\n28,0,4,0,24,0,27,0,5,0,30,0\n15,0,11,0,2,0,35,0,8,0,16,0\n31,0,1,0,21,0,22,0,13,0,25,0\n3,0,23,0,14,0,34,0,10,0,33,0\n6,0,9,0,18,0,32,0,26,0,36,0\n25,0,19,0,16,0,1,0,13,0,35,0\n5,0,10,0,2,0,21,0,4,0,14,0\n18,0,28,0,12,0,26,0,34,0,3,0\n20,0,27,0,29,0,33,0,6,0,32,0\n8,0,36,0,7,0,24,0,30,0,15,0\n23,0,9,0,31,0,11,0,17,0,22,0\n4,0,32,0,1,0,14,0,16,0,12,0\n15,0,13,0,7,0,28,0,20,0,26,0\n33,0,36,0,24,0,10,0,19,0,31,0\n11,0,5,0,18,0,23,0,22,0,29,0\n9,0,2,0,17,0,27,0,3,0,25,0\n34,0,35,0,21,0,8,0,30,0,6,0\n11,0,31,0,36,0,4,0,7,0,5,0\n20,0,3,0,24,0,2,0,29,0,25,0\n32,0,8,0,23,0,26,0,12,0,27,0\n9,0,14,0,34,0,1,0,15,0,28,0\n19,0,22,0,30,0,6,0,10,0,35,0\n17,0,18,0,33,0,16,0,13,0,21,0\n34,0,1,0,25,0,4,0,36,0,15,0\n7,0,12,0,35,0,14,0,5,0,6,0\n19,0,29,0,28,0,9,0,30,0,21,0\n10,0,17,0,23,0,32,0,20,0,13,0\n27,0,24,0,2,0,18,0,26,0,31,0\n16,0,33,0,22,0,8,0,11,0,3,0\n32,0,9,0,25,0,6,0,34,0,7,0\n17,0,26,0,1,0,24,0,14,0,29,0\n3,0,22,0,5,0,28,0,8,0,13,0\n11,0,12,0,10,0,16,0,30,0,2,0\n20,0,33,0,31,0,36,0,19,0,18,0\n27,0,35,0,4,0,23,0,15,0,21,0\n30,0,11,0,7,0,9,0,13,0,26,0\n20,0,6,0,2,0,5,0,1,0,24,0\n4,0,8,0,10,0,19,0,34,0,17,0\n33,0,29,0,3,0,23,0,27,0,36,0\n18,0,21,0,25,0,22,0,15,0,12,0\n28,0,35,0,14,0,31,0,32,0,16,0\n13,0,27,0,10,0,29,0,6,0,36,0\n23,0,7,0,26,0,2,0,4,0,19,0\n20,0,16,0,34,0,22,0,28,0,31,0\n8,0,5,0,21,0,1,0,3,0,9,0\n17,0,32,0,15,0,35,0,30,0,18,0\n12,0,25,0,24,0,14,0,11,0,33,0\n34,0,8,0,27,0,7,0,29,0,21,0\n6,0,19,0,3,0,15,0,31,0,5,0\n35,0,9,0,22,0,20,0,12,0,4,0\n17,0,30,0,28,0,2,0,33,0,1,0\n26,0,25,0,11,0,32,0,10,0,24,0\n14,0,36,0,13,0,23,0,18,0,16,0\n8,0,19,0,33,0,6,0,17,0,4,0\n26,0,24,0,35,0,27,0,21,0,28,0\n29,0,15,0,16,0,12,0,5,0,9,0\n13,0,30,0,31,0,25,0,10,0,14,0\n36,0,3,0,2,0,7,0,32,0,22,0\n18,0,1,0,20,0,34,0,11,0,23,0\n"
  },
  {
    "path": "schedules/36_13.csv",
    "content": "24,0,29,0,5,0,8,0,32,0,27,0\n3,0,26,0,14,0,10,0,17,0,35,0\n33,0,16,0,9,0,36,0,20,0,2,0\n7,0,30,0,28,0,34,0,6,0,13,0\n18,0,21,0,23,0,11,0,31,0,22,0\n4,0,1,0,25,0,19,0,12,0,15,0\n9,0,24,0,8,0,30,0,29,0,6,0\n2,0,21,0,32,0,26,0,36,0,10,0\n7,0,17,0,31,0,28,0,16,0,12,0\n22,0,13,0,4,0,18,0,1,0,33,0\n35,0,27,0,3,0,11,0,23,0,25,0\n34,0,15,0,14,0,19,0,20,0,5,0\n22,0,6,0,18,0,31,0,1,0,16,0\n13,0,33,0,32,0,17,0,7,0,9,0\n28,0,4,0,34,0,30,0,8,0,3,0\n5,0,36,0,12,0,20,0,14,0,11,0\n24,0,25,0,21,0,10,0,19,0,27,0\n35,0,15,0,26,0,2,0,29,0,23,0\n5,0,18,0,8,0,9,0,1,0,28,0\n7,0,19,0,13,0,22,0,25,0,20,0\n23,0,12,0,10,0,32,0,3,0,29,0\n17,0,35,0,11,0,2,0,31,0,24,0\n26,0,4,0,21,0,6,0,34,0,36,0\n14,0,16,0,27,0,33,0,15,0,30,0\n10,0,11,0,5,0,25,0,7,0,29,0\n28,0,22,0,34,0,17,0,8,0,23,0\n19,0,4,0,36,0,2,0,26,0,13,0\n15,0,3,0,18,0,20,0,35,0,32,0\n1,0,6,0,21,0,27,0,9,0,30,0\n14,0,33,0,31,0,24,0,16,0,12,0\n36,0,32,0,25,0,18,0,28,0,26,0\n7,0,4,0,27,0,20,0,13,0,9,0\n11,0,16,0,29,0,23,0,6,0,3,0\n30,0,34,0,24,0,5,0,22,0,35,0\n19,0,2,0,17,0,15,0,10,0,1,0\n12,0,21,0,31,0,8,0,14,0,33,0\n11,0,9,0,22,0,5,0,25,0,3,0\n20,0,23,0,7,0,2,0,27,0,18,0\n30,0,16,0,10,0,31,0,4,0,8,0\n35,0,33,0,36,0,19,0,34,0,28,0\n6,0,32,0,15,0,21,0,17,0,14,0\n26,0,12,0,29,0,1,0,24,0,13,0\n34,0,10,0,25,0,4,0,20,0,18,0\n3,0,32,0,31,0,19,0,21,0,9,0\n1,0,22,0,16,0,27,0,7,0,26,0\n29,0,28,0,14,0,36,0,17,0,30,0\n12,0,8,0,13,0,35,0,24,0,23,0\n15,0,2,0,5,0,11,0,33,0,6,0\n30,0,1,0,20,0,17,0,18,0,25,0\n26,0,9,0,23,0,4,0,10,0,14,0\n11,0,12,0,32,0,15,0,22,0,24,0\n2,0,34,0,7,0,16,0,21,0,3,0\n35,0,29,0,13,0,6,0,28,0,5,0\n27,0,19,0,33,0,8,0,31,0,36,0\n2,0,22,0,14,0,20,0,12,0,34,0\n35,0,30,0,21,0,32,0,4,0,9,0\n1,0,19,0,11,0,16,0,26,0,17,0\n8,0,15,0,7,0,3,0,24,0,18,0\n28,0,36,0,23,0,27,0,5,0,13,0\n33,0,6,0,25,0,10,0,31,0,29,0\n8,0,2,0,1,0,11,0,7,0,35,0\n19,0,16,0,23,0,30,0,14,0,32,0\n29,0,36,0,18,0,22,0,12,0,4,0\n24,0,20,0,27,0,34,0,26,0,5,0\n3,0,17,0,28,0,33,0,10,0,21,0\n31,0,9,0,6,0,25,0,13,0,15,0\n5,0,12,0,30,0,4,0,16,0,2,0\n14,0,1,0,23,0,33,0,7,0,24,0\n25,0,35,0,8,0,15,0,34,0,21,0\n13,0,10,0,18,0,11,0,36,0,3,0\n6,0,17,0,27,0,9,0,29,0,19,0\n28,0,31,0,20,0,22,0,32,0,26,0\n25,0,30,0,13,0,21,0,14,0,5,0\n16,0,8,0,34,0,29,0,36,0,27,0\n2,0,9,0,3,0,1,0,28,0,32,0\n24,0,26,0,11,0,31,0,19,0,18,0\n22,0,10,0,7,0,12,0,6,0,35,0\n17,0,20,0,33,0,15,0,23,0,4,0\n"
  },
  {
    "path": "schedules/36_14.csv",
    "content": "35,0,18,0,25,0,19,0,7,0,14,0\n8,0,22,0,28,0,1,0,24,0,34,0\n2,0,5,0,21,0,16,0,13,0,17,0\n26,0,33,0,31,0,20,0,10,0,27,0\n6,0,12,0,11,0,30,0,9,0,32,0\n15,0,23,0,3,0,36,0,4,0,29,0\n13,0,5,0,7,0,31,0,19,0,28,0\n26,0,12,0,18,0,27,0,2,0,11,0\n20,0,25,0,4,0,30,0,22,0,34,0\n24,0,16,0,9,0,21,0,32,0,1,0\n10,0,17,0,8,0,6,0,23,0,15,0\n33,0,36,0,29,0,35,0,3,0,14,0\n16,0,27,0,5,0,12,0,25,0,19,0\n17,0,15,0,18,0,26,0,28,0,30,0\n24,0,10,0,3,0,14,0,34,0,9,0\n13,0,32,0,20,0,29,0,22,0,11,0\n36,0,8,0,1,0,35,0,2,0,33,0\n7,0,31,0,4,0,6,0,23,0,21,0\n13,0,24,0,27,0,16,0,30,0,15,0\n19,0,33,0,3,0,2,0,28,0,18,0\n25,0,8,0,9,0,14,0,26,0,17,0\n36,0,29,0,6,0,5,0,22,0,1,0\n34,0,32,0,12,0,7,0,23,0,20,0\n31,0,21,0,11,0,10,0,35,0,4,0\n15,0,27,0,14,0,9,0,6,0,5,0\n32,0,18,0,33,0,25,0,24,0,17,0\n13,0,16,0,10,0,22,0,35,0,12,0\n26,0,1,0,8,0,7,0,3,0,11,0\n4,0,28,0,23,0,29,0,31,0,20,0\n2,0,30,0,19,0,36,0,21,0,34,0\n25,0,14,0,11,0,22,0,16,0,33,0\n35,0,28,0,10,0,26,0,6,0,5,0\n36,0,18,0,30,0,20,0,19,0,1,0\n23,0,7,0,12,0,27,0,9,0,17,0\n34,0,15,0,13,0,32,0,31,0,2,0\n24,0,29,0,21,0,4,0,8,0,3,0\n5,0,25,0,36,0,12,0,17,0,7,0\n15,0,20,0,30,0,32,0,22,0,16,0\n6,0,33,0,10,0,13,0,29,0,8,0\n27,0,28,0,21,0,9,0,3,0,2,0\n35,0,19,0,11,0,4,0,26,0,34,0\n14,0,1,0,18,0,24,0,31,0,23,0\n17,0,6,0,2,0,3,0,21,0,20,0\n12,0,34,0,28,0,10,0,36,0,32,0\n22,0,27,0,14,0,19,0,24,0,4,0\n23,0,25,0,30,0,5,0,35,0,8,0\n26,0,11,0,29,0,33,0,13,0,9,0\n16,0,1,0,31,0,15,0,18,0,7,0\n23,0,2,0,35,0,3,0,14,0,32,0\n11,0,28,0,25,0,27,0,6,0,34,0\n1,0,22,0,7,0,26,0,15,0,21,0\n29,0,17,0,16,0,30,0,31,0,10,0\n9,0,19,0,36,0,13,0,8,0,18,0\n33,0,20,0,24,0,12,0,5,0,4,0\n21,0,22,0,17,0,1,0,35,0,29,0\n6,0,3,0,13,0,23,0,18,0,16,0\n32,0,4,0,27,0,2,0,7,0,26,0\n15,0,36,0,31,0,33,0,25,0,34,0\n8,0,30,0,12,0,24,0,28,0,14,0\n19,0,10,0,5,0,9,0,20,0,11,0\n27,0,7,0,33,0,36,0,35,0,16,0\n29,0,2,0,14,0,28,0,1,0,15,0\n26,0,20,0,24,0,21,0,25,0,10,0\n34,0,17,0,31,0,12,0,19,0,13,0\n9,0,8,0,23,0,6,0,4,0,22,0\n5,0,30,0,11,0,3,0,18,0,32,0\n26,0,25,0,16,0,36,0,13,0,28,0\n7,0,35,0,17,0,2,0,24,0,22,0\n10,0,23,0,34,0,27,0,29,0,30,0\n32,0,6,0,19,0,33,0,15,0,11,0\n9,0,4,0,1,0,31,0,12,0,3,0\n18,0,5,0,20,0,14,0,21,0,8,0\n35,0,30,0,13,0,7,0,24,0,36,0\n16,0,12,0,2,0,6,0,31,0,25,0\n4,0,14,0,20,0,10,0,27,0,1,0\n26,0,22,0,3,0,23,0,17,0,33,0\n32,0,28,0,29,0,19,0,8,0,15,0\n18,0,21,0,9,0,34,0,11,0,5,0\n3,0,2,0,1,0,25,0,13,0,23,0\n35,0,32,0,26,0,8,0,20,0,16,0\n21,0,33,0,4,0,17,0,5,0,28,0\n9,0,10,0,22,0,18,0,31,0,27,0\n19,0,34,0,29,0,7,0,6,0,30,0\n12,0,15,0,14,0,24,0,11,0,36,0\n"
  },
  {
    "path": "schedules/36_2.csv",
    "content": "33,0,24,0,34,0,16,0,20,0,25,0\n6,0,10,0,11,0,8,0,9,0,5,0\n19,0,30,0,32,0,27,0,17,0,31,0\n36,0,4,0,14,0,3,0,21,0,22,0\n18,0,2,0,26,0,1,0,28,0,13,0\n12,0,35,0,15,0,7,0,29,0,23,0\n24,0,32,0,25,0,5,0,11,0,14,0\n28,0,22,0,17,0,1,0,34,0,10,0\n16,0,7,0,31,0,13,0,9,0,4,0\n2,0,29,0,19,0,6,0,36,0,20,0\n23,0,3,0,35,0,30,0,26,0,33,0\n8,0,27,0,15,0,12,0,21,0,18,0\n"
  },
  {
    "path": "schedules/36_3.csv",
    "content": "28,0,24,0,9,0,23,0,3,0,14,0\n13,0,5,0,26,0,18,0,1,0,17,0\n30,0,6,0,36,0,21,0,29,0,11,0\n31,0,25,0,33,0,22,0,19,0,32,0\n7,0,20,0,27,0,10,0,35,0,4,0\n16,0,15,0,34,0,2,0,12,0,8,0\n18,0,11,0,14,0,33,0,21,0,19,0\n3,0,1,0,35,0,22,0,36,0,10,0\n13,0,29,0,16,0,24,0,7,0,32,0\n23,0,20,0,8,0,25,0,2,0,17,0\n4,0,31,0,15,0,6,0,5,0,28,0\n12,0,26,0,34,0,9,0,27,0,30,0\n35,0,21,0,32,0,24,0,1,0,8,0\n18,0,4,0,3,0,25,0,15,0,29,0\n12,0,9,0,19,0,13,0,20,0,6,0\n28,0,36,0,17,0,27,0,34,0,33,0\n31,0,10,0,23,0,11,0,26,0,16,0\n2,0,14,0,30,0,7,0,5,0,22,0\n"
  },
  {
    "path": "schedules/36_4.csv",
    "content": "17,0,24,0,13,0,7,0,33,0,25,0\n20,0,19,0,1,0,28,0,18,0,23,0\n21,0,29,0,34,0,12,0,2,0,5,0\n35,0,6,0,22,0,11,0,27,0,15,0\n32,0,3,0,16,0,36,0,31,0,26,0\n4,0,30,0,14,0,10,0,8,0,9,0\n7,0,1,0,34,0,33,0,19,0,35,0\n32,0,31,0,22,0,23,0,21,0,24,0\n9,0,26,0,29,0,15,0,28,0,8,0\n2,0,27,0,36,0,25,0,4,0,17,0\n30,0,18,0,11,0,16,0,14,0,5,0\n10,0,12,0,6,0,13,0,3,0,20,0\n23,0,35,0,4,0,21,0,17,0,26,0\n25,0,14,0,29,0,22,0,16,0,19,0\n8,0,32,0,18,0,2,0,6,0,33,0\n13,0,15,0,12,0,30,0,36,0,1,0\n7,0,20,0,5,0,27,0,9,0,31,0\n28,0,3,0,10,0,11,0,34,0,24,0\n22,0,33,0,18,0,4,0,12,0,26,0\n17,0,31,0,6,0,29,0,30,0,19,0\n11,0,3,0,21,0,1,0,25,0,9,0\n36,0,5,0,24,0,20,0,8,0,35,0\n23,0,10,0,2,0,7,0,16,0,15,0\n28,0,27,0,34,0,13,0,32,0,14,0\n"
  },
  {
    "path": "schedules/36_5.csv",
    "content": "3,0,25,0,12,0,10,0,33,0,31,0\n32,0,18,0,24,0,9,0,27,0,30,0\n36,0,20,0,15,0,17,0,14,0,35,0\n7,0,11,0,5,0,19,0,8,0,16,0\n6,0,21,0,29,0,13,0,23,0,2,0\n34,0,4,0,1,0,22,0,26,0,28,0\n36,0,7,0,27,0,5,0,31,0,20,0\n21,0,8,0,18,0,17,0,6,0,25,0\n13,0,35,0,16,0,32,0,34,0,33,0\n3,0,23,0,14,0,1,0,2,0,9,0\n11,0,29,0,24,0,28,0,10,0,4,0\n26,0,12,0,30,0,19,0,22,0,15,0\n25,0,33,0,9,0,6,0,1,0,7,0\n2,0,31,0,32,0,4,0,8,0,17,0\n14,0,30,0,34,0,11,0,27,0,12,0\n13,0,26,0,5,0,10,0,24,0,35,0\n16,0,23,0,22,0,20,0,18,0,28,0\n29,0,19,0,36,0,21,0,3,0,15,0\n24,0,30,0,6,0,35,0,1,0,31,0\n2,0,33,0,20,0,18,0,11,0,26,0\n13,0,17,0,27,0,19,0,28,0,3,0\n10,0,15,0,23,0,7,0,34,0,8,0\n9,0,12,0,16,0,21,0,4,0,36,0\n5,0,32,0,14,0,29,0,22,0,25,0\n6,0,8,0,3,0,34,0,24,0,20,0\n33,0,35,0,4,0,23,0,19,0,27,0\n7,0,14,0,28,0,32,0,21,0,26,0\n1,0,18,0,17,0,12,0,29,0,5,0\n25,0,10,0,2,0,30,0,16,0,36,0\n31,0,22,0,9,0,15,0,13,0,11,0\n"
  },
  {
    "path": "schedules/36_6.csv",
    "content": "21,0,2,0,13,0,6,0,25,0,3,0\n9,0,15,0,16,0,1,0,35,0,34,0\n26,0,10,0,18,0,17,0,30,0,11,0\n36,0,12,0,32,0,19,0,27,0,4,0\n31,0,20,0,14,0,8,0,29,0,5,0\n28,0,24,0,22,0,33,0,23,0,7,0\n18,0,6,0,2,0,32,0,9,0,34,0\n20,0,19,0,29,0,21,0,26,0,16,0\n33,0,12,0,3,0,25,0,15,0,11,0\n27,0,5,0,30,0,22,0,8,0,23,0\n24,0,36,0,4,0,28,0,10,0,31,0\n17,0,13,0,1,0,7,0,14,0,35,0\n33,0,8,0,16,0,26,0,12,0,2,0\n34,0,15,0,22,0,31,0,36,0,21,0\n17,0,3,0,14,0,28,0,19,0,23,0\n25,0,18,0,5,0,4,0,29,0,7,0\n35,0,10,0,11,0,6,0,27,0,1,0\n30,0,24,0,32,0,13,0,9,0,20,0\n34,0,7,0,3,0,5,0,26,0,4,0\n25,0,8,0,35,0,10,0,19,0,22,0\n21,0,11,0,24,0,16,0,32,0,14,0\n2,0,33,0,29,0,1,0,36,0,30,0\n9,0,31,0,6,0,28,0,17,0,12,0\n20,0,27,0,23,0,18,0,13,0,15,0\n36,0,16,0,7,0,30,0,3,0,8,0\n35,0,6,0,19,0,5,0,31,0,33,0\n18,0,28,0,1,0,12,0,21,0,22,0\n11,0,4,0,20,0,9,0,23,0,2,0\n27,0,34,0,26,0,24,0,14,0,25,0\n32,0,29,0,13,0,15,0,17,0,10,0\n3,0,36,0,35,0,12,0,20,0,18,0\n22,0,30,0,16,0,6,0,4,0,14,0\n23,0,1,0,31,0,25,0,26,0,32,0\n29,0,11,0,28,0,34,0,8,0,13,0\n5,0,17,0,19,0,2,0,15,0,24,0\n10,0,27,0,7,0,21,0,9,0,33,0\n"
  },
  {
    "path": "schedules/36_7.csv",
    "content": "36,0,31,0,27,0,19,0,12,0,21,0\n10,0,35,0,32,0,24,0,25,0,7,0\n33,0,23,0,22,0,6,0,11,0,17,0\n16,0,20,0,18,0,26,0,5,0,9,0\n14,0,13,0,8,0,3,0,15,0,28,0\n30,0,1,0,2,0,34,0,4,0,29,0\n32,0,31,0,23,0,35,0,18,0,33,0\n17,0,9,0,15,0,7,0,19,0,5,0\n29,0,36,0,14,0,27,0,8,0,11,0\n26,0,25,0,6,0,34,0,13,0,2,0\n20,0,21,0,1,0,30,0,28,0,24,0\n4,0,12,0,16,0,10,0,22,0,3,0\n7,0,17,0,32,0,27,0,26,0,29,0\n5,0,8,0,2,0,24,0,21,0,23,0\n12,0,14,0,18,0,6,0,1,0,16,0\n22,0,30,0,11,0,10,0,31,0,15,0\n25,0,19,0,34,0,20,0,33,0,3,0\n13,0,36,0,4,0,35,0,9,0,28,0\n21,0,32,0,29,0,12,0,10,0,6,0\n7,0,22,0,18,0,8,0,3,0,34,0\n35,0,15,0,2,0,16,0,17,0,28,0\n1,0,31,0,11,0,5,0,13,0,20,0\n36,0,9,0,25,0,30,0,27,0,23,0\n4,0,26,0,24,0,33,0,14,0,19,0\n8,0,7,0,10,0,2,0,31,0,20,0\n35,0,12,0,34,0,21,0,5,0,11,0\n13,0,28,0,29,0,23,0,16,0,19,0\n25,0,33,0,17,0,9,0,14,0,1,0\n36,0,3,0,30,0,32,0,22,0,26,0\n4,0,15,0,27,0,24,0,18,0,6,0\n33,0,28,0,5,0,29,0,25,0,12,0\n22,0,21,0,13,0,14,0,20,0,7,0\n19,0,6,0,35,0,18,0,30,0,8,0\n27,0,10,0,1,0,26,0,15,0,23,0\n24,0,17,0,31,0,36,0,16,0,34,0\n3,0,11,0,32,0,2,0,9,0,4,0\n33,0,30,0,12,0,7,0,15,0,13,0\n20,0,28,0,10,0,36,0,18,0,17,0\n9,0,3,0,24,0,6,0,29,0,31,0\n5,0,23,0,34,0,14,0,32,0,4,0\n2,0,19,0,27,0,35,0,1,0,22,0\n16,0,11,0,26,0,21,0,8,0,25,0\n"
  },
  {
    "path": "schedules/36_8.csv",
    "content": "29,0,28,0,15,0,30,0,36,0,21,0\n27,0,10,0,14,0,4,0,22,0,5,0\n3,0,12,0,20,0,13,0,24,0,17,0\n9,0,34,0,16,0,7,0,8,0,6,0\n33,0,31,0,25,0,32,0,11,0,19,0\n23,0,35,0,2,0,1,0,26,0,18,0\n28,0,3,0,9,0,12,0,14,0,22,0\n13,0,5,0,21,0,16,0,32,0,4,0\n35,0,24,0,27,0,15,0,8,0,34,0\n31,0,26,0,17,0,29,0,10,0,6,0\n23,0,7,0,19,0,18,0,36,0,11,0\n25,0,2,0,1,0,30,0,20,0,33,0\n4,0,29,0,31,0,16,0,28,0,17,0\n12,0,36,0,6,0,22,0,35,0,21,0\n10,0,2,0,32,0,7,0,20,0,34,0\n23,0,27,0,18,0,13,0,33,0,9,0\n14,0,11,0,30,0,24,0,26,0,8,0\n15,0,1,0,3,0,5,0,25,0,19,0\n16,0,7,0,2,0,12,0,27,0,17,0\n8,0,18,0,22,0,31,0,21,0,6,0\n28,0,36,0,26,0,3,0,25,0,34,0\n19,0,20,0,4,0,15,0,35,0,9,0\n24,0,5,0,30,0,33,0,10,0,23,0\n14,0,13,0,32,0,11,0,1,0,29,0\n4,0,7,0,17,0,25,0,8,0,28,0\n24,0,21,0,15,0,9,0,2,0,31,0\n36,0,16,0,27,0,14,0,33,0,1,0\n29,0,22,0,26,0,5,0,18,0,20,0\n34,0,30,0,10,0,19,0,13,0,12,0\n32,0,35,0,6,0,11,0,3,0,23,0\n9,0,18,0,24,0,16,0,26,0,25,0\n4,0,21,0,34,0,31,0,7,0,1,0\n13,0,8,0,20,0,3,0,36,0,19,0\n10,0,5,0,11,0,2,0,28,0,12,0\n27,0,6,0,33,0,29,0,30,0,35,0\n17,0,32,0,22,0,23,0,14,0,15,0\n1,0,8,0,9,0,10,0,28,0,18,0\n35,0,5,0,31,0,30,0,7,0,13,0\n19,0,33,0,17,0,21,0,27,0,26,0\n15,0,2,0,11,0,16,0,22,0,3,0\n24,0,12,0,4,0,32,0,29,0,36,0\n25,0,14,0,20,0,23,0,34,0,6,0\n33,0,26,0,7,0,13,0,15,0,22,0\n3,0,32,0,18,0,4,0,30,0,27,0\n36,0,34,0,5,0,11,0,9,0,17,0\n14,0,21,0,16,0,35,0,20,0,10,0\n1,0,19,0,28,0,2,0,24,0,6,0\n23,0,25,0,29,0,12,0,8,0,31,0\n"
  },
  {
    "path": "schedules/36_9.csv",
    "content": "29,0,2,0,13,0,8,0,7,0,27,0\n22,0,34,0,16,0,30,0,15,0,36,0\n18,0,10,0,9,0,25,0,14,0,1,0\n24,0,20,0,28,0,5,0,17,0,6,0\n21,0,19,0,12,0,4,0,33,0,26,0\n3,0,32,0,23,0,35,0,31,0,11,0\n34,0,1,0,5,0,22,0,17,0,25,0\n15,0,24,0,13,0,10,0,26,0,14,0\n29,0,11,0,6,0,36,0,33,0,9,0\n19,0,4,0,3,0,28,0,8,0,16,0\n21,0,30,0,2,0,12,0,35,0,18,0\n27,0,31,0,23,0,7,0,20,0,32,0\n25,0,24,0,19,0,29,0,3,0,36,0\n8,0,12,0,5,0,11,0,10,0,34,0\n18,0,7,0,33,0,20,0,26,0,35,0\n21,0,6,0,4,0,1,0,13,0,32,0\n27,0,9,0,15,0,28,0,22,0,23,0\n14,0,30,0,16,0,17,0,2,0,31,0\n19,0,29,0,35,0,32,0,34,0,12,0\n11,0,3,0,20,0,26,0,21,0,15,0\n9,0,31,0,8,0,18,0,13,0,17,0\n16,0,25,0,5,0,6,0,23,0,33,0\n28,0,30,0,27,0,24,0,1,0,2,0\n36,0,10,0,22,0,7,0,4,0,14,0\n33,0,15,0,17,0,35,0,21,0,9,0\n5,0,32,0,27,0,25,0,3,0,18,0\n1,0,10,0,6,0,8,0,22,0,19,0\n26,0,36,0,24,0,23,0,2,0,34,0\n7,0,28,0,31,0,12,0,11,0,30,0\n20,0,14,0,29,0,4,0,16,0,13,0\n32,0,8,0,35,0,5,0,22,0,15,0\n17,0,11,0,21,0,27,0,19,0,10,0\n7,0,25,0,9,0,12,0,16,0,24,0\n1,0,23,0,36,0,30,0,20,0,13,0\n18,0,2,0,4,0,33,0,3,0,34,0\n28,0,14,0,6,0,29,0,26,0,31,0\n30,0,8,0,17,0,25,0,36,0,20,0\n22,0,3,0,24,0,13,0,33,0,12,0\n16,0,1,0,35,0,27,0,11,0,26,0\n23,0,4,0,9,0,10,0,32,0,31,0\n21,0,14,0,34,0,5,0,28,0,29,0\n2,0,15,0,7,0,19,0,18,0,6,0\n16,0,26,0,17,0,4,0,36,0,32,0\n10,0,33,0,29,0,30,0,3,0,1,0\n13,0,25,0,35,0,15,0,11,0,28,0\n23,0,20,0,5,0,2,0,9,0,19,0\n24,0,31,0,34,0,22,0,21,0,7,0\n6,0,12,0,27,0,14,0,8,0,18,0\n26,0,13,0,9,0,30,0,5,0,19,0\n25,0,28,0,10,0,20,0,2,0,16,0\n6,0,36,0,31,0,35,0,27,0,34,0\n3,0,12,0,15,0,7,0,17,0,1,0\n33,0,32,0,14,0,23,0,21,0,8,0\n18,0,11,0,22,0,29,0,4,0,24,0\n"
  },
  {
    "path": "schedules/37_1.csv",
    "content": "32,0,24,0,36,0,30,0,19,0,37,0\n2,0,31,0,8,0,13,0,26,0,22,0\n16,0,15,0,35,0,3,0,28,0,7,0\n29,0,23,0,25,0,5,0,9,0,11,0\n33,0,27,0,18,0,4,0,6,0,10,0\n20,0,34,0,1,0,17,0,12,0,21,0\n14,0,30,1,31,1,7,1,3,1,2,1\n"
  },
  {
    "path": "schedules/37_10.csv",
    "content": "24,0,1,0,12,0,28,0,34,0,22,0\n20,0,30,0,33,0,35,0,17,0,25,0\n2,0,29,0,3,0,5,0,26,0,21,0\n9,0,6,0,32,0,8,0,15,0,13,0\n37,0,11,0,10,0,27,0,31,0,18,0\n36,0,16,0,14,0,19,0,23,0,4,0\n7,0,2,0,15,0,29,0,28,0,30,0\n31,0,32,0,1,0,21,0,17,0,27,0\n26,0,23,0,14,0,20,0,8,0,10,0\n7,0,22,0,12,0,9,0,36,0,25,0\n5,0,13,0,35,0,16,0,18,0,33,0\n34,0,24,0,11,0,3,0,37,0,19,0\n6,0,2,0,27,0,4,0,20,0,9,0\n16,1,26,0,15,0,7,1,35,0,1,0\n21,0,29,0,37,0,12,0,36,0,18,0\n23,0,25,0,34,0,32,0,30,0,13,0\n28,0,5,0,17,0,8,0,14,0,19,0\n11,0,33,0,22,0,10,0,4,0,6,0\n31,0,24,0,7,0,3,0,15,0,20,0\n35,0,19,0,21,0,23,0,9,0,27,0\n10,0,18,0,22,0,16,0,32,0,34,0\n26,0,25,0,28,0,33,0,6,0,24,0\n3,0,8,0,36,0,11,0,4,0,30,0\n14,0,12,0,37,0,2,0,13,0,1,0\n17,0,31,0,26,0,29,0,5,0,22,0\n32,0,4,0,28,0,18,0,19,0,20,0\n23,0,8,0,33,0,37,0,27,0,7,0\n10,0,13,0,29,0,25,0,24,0,2,0\n6,0,21,0,36,0,34,0,1,0,5,0\n9,0,12,0,15,0,16,0,17,0,11,0\n14,0,30,0,35,0,3,0,31,0,22,0\n33,0,2,0,36,0,20,0,32,0,24,0\n25,0,8,0,21,0,18,0,15,0,37,0\n12,0,3,0,5,0,23,0,10,0,28,0\n7,0,17,0,19,0,13,0,6,0,26,0\n16,0,4,0,27,0,31,0,34,0,30,0\n1,0,14,0,29,0,35,0,11,0,9,0\n6,0,28,0,3,0,32,0,36,0,17,0\n34,0,18,0,2,0,15,0,33,0,27,0\n25,0,7,0,16,0,5,0,11,0,8,0\n29,0,4,0,24,0,35,0,23,0,12,0\n37,0,30,0,9,0,1,0,26,0,10,0\n22,0,19,0,13,0,31,0,20,0,21,0\n14,0,33,0,32,0,6,0,29,0,16,0\n9,0,1,0,8,0,24,0,18,0,3,0\n36,0,13,0,20,0,26,0,27,0,12,0\n15,0,11,0,19,0,2,0,23,0,22,0\n10,0,30,0,25,0,14,0,28,0,21,0\n37,0,35,0,34,0,4,0,7,0,5,0\n17,0,18,0,6,0,31,0,36,0,23,0\n27,0,28,0,13,0,26,0,29,0,11,0\n5,0,16,0,30,0,24,0,21,0,22,0\n9,0,31,0,19,0,25,0,33,0,12,0\n34,0,20,0,17,0,37,0,2,0,8,0\n35,0,15,0,4,0,7,0,32,0,10,0\n3,0,1,0,27,0,14,0,25,0,13,0\n16,0,28,0,20,0,34,0,29,0,9,0\n32,0,18,0,5,0,30,0,7,0,26,0\n31,0,2,0,12,0,6,0,35,0,8,0\n24,0,19,0,36,0,14,0,15,0,10,0\n11,0,1,0,21,0,4,0,17,0,33,0\n23,0,3,0,7,0,22,0,37,0,16,0\n"
  },
  {
    "path": "schedules/37_11.csv",
    "content": "7,0,28,0,24,0,4,0,12,0,34,0\n8,0,16,0,29,0,26,0,5,0,31,0\n36,0,6,0,10,0,15,0,20,0,25,0\n3,0,14,0,1,0,17,0,11,0,27,0\n37,0,35,0,33,0,21,0,18,0,19,0\n13,0,32,0,23,0,30,0,9,0,22,0\n2,0,31,0,10,0,6,0,14,0,17,0\n36,0,28,0,15,0,3,0,35,0,26,0\n12,0,23,0,19,0,22,0,21,0,16,0\n9,0,18,0,32,0,5,0,37,0,34,0\n2,0,20,0,4,0,25,0,13,0,8,0\n11,0,24,0,33,0,30,0,7,0,29,0\n27,0,19,0,6,0,1,0,18,0,36,0\n15,1,10,0,22,0,31,0,32,0,28,0\n17,0,33,0,4,0,16,0,12,0,35,0\n5,0,30,0,25,0,24,0,27,0,37,0\n26,0,8,0,7,0,21,0,13,0,14,0\n3,0,29,0,34,0,2,0,11,0,9,0\n20,0,1,0,27,0,23,0,30,0,15,0\n36,0,19,0,4,0,5,0,8,0,32,0\n13,0,16,0,17,0,9,0,29,0,28,0\n23,0,37,0,26,0,34,0,10,0,11,0\n25,0,21,0,31,0,33,0,22,0,3,0\n2,0,35,0,18,0,7,0,1,0,12,0\n14,0,20,0,37,0,6,0,24,0,29,0\n21,0,11,0,8,0,9,0,15,0,4,0\n22,0,12,0,31,0,30,0,36,0,27,0\n5,0,28,0,35,0,10,0,14,0,25,0\n33,0,6,0,18,0,3,0,23,0,2,0\n13,0,7,0,20,0,16,0,19,0,34,0\n26,0,32,0,25,0,1,0,17,0,24,0\n14,0,29,0,11,0,18,0,15,0,3,0\n12,0,21,0,36,0,5,0,20,0,23,0\n16,0,27,0,7,0,10,0,37,0,8,0\n17,0,28,0,26,0,6,0,4,0,30,0\n31,0,33,0,9,0,19,0,1,0,13,0\n24,0,34,0,35,0,22,0,32,0,2,0\n30,0,11,0,18,0,25,0,16,0,4,0\n36,0,23,0,17,0,37,0,7,0,31,0\n24,0,19,0,8,0,3,0,28,0,10,0\n20,0,9,0,35,0,2,0,26,0,27,0\n34,0,14,0,32,0,13,0,15,0,33,0\n6,0,1,0,22,0,5,0,21,0,29,0\n12,0,10,0,27,0,26,0,9,0,24,0\n16,0,23,0,28,0,14,0,2,0,36,0\n19,0,31,0,15,0,11,0,7,0,4,0\n12,0,3,0,30,0,25,0,6,0,34,0\n22,0,18,0,17,0,20,0,8,0,33,0\n29,0,13,0,37,0,21,0,32,0,35,0\n5,0,24,0,3,0,1,0,31,0,16,0\n27,0,14,0,4,0,20,0,17,0,19,0\n25,0,29,0,2,0,36,0,11,0,26,0\n32,0,15,0,1,0,12,0,18,0,28,0\n6,0,35,0,8,0,23,0,34,0,9,0\n33,0,21,0,30,0,5,0,7,0,10,0\n13,0,22,0,4,0,37,0,36,0,3,0\n32,0,16,0,11,0,20,0,31,0,6,0\n9,0,21,0,27,0,28,0,33,0,14,0\n24,0,10,0,30,0,18,0,13,0,34,0\n25,0,7,0,19,0,23,0,35,0,29,0\n15,0,5,0,12,0,17,0,2,0,8,0\n37,0,1,0,28,0,22,0,26,0,20,0\n31,0,34,0,30,0,35,0,19,0,14,0\n15,0,17,0,21,0,23,0,24,0,18,0\n26,0,4,0,10,0,29,0,1,0,33,0\n3,0,9,0,8,0,7,0,36,0,32,0\n13,0,27,0,5,0,6,0,12,0,11,0\n2,0,16,0,15,0,22,0,37,0,25,0\n"
  },
  {
    "path": "schedules/37_12.csv",
    "content": "16,0,13,0,3,0,8,0,27,0,28,0\n11,0,2,0,6,0,15,0,21,0,36,0\n5,0,18,0,20,0,1,0,23,0,31,0\n17,0,34,0,24,0,22,0,12,0,26,0\n37,0,14,0,29,0,4,0,9,0,33,0\n10,0,25,0,30,0,7,0,32,0,35,0\n19,0,15,0,23,0,16,0,17,0,28,0\n36,0,22,0,3,0,2,0,29,0,5,0\n9,0,21,0,14,0,30,0,8,0,13,0\n35,0,20,0,12,0,32,0,25,0,19,0\n1,0,26,0,6,0,10,0,31,0,27,0\n18,0,33,0,24,0,11,0,34,0,4,0\n7,0,2,0,16,0,37,0,3,0,12,0\n26,0,9,0,29,0,5,0,23,0,8,0\n28,0,31,0,11,0,10,0,4,0,32,0\n1,0,33,0,7,0,35,0,27,0,13,0\n21,0,25,0,37,0,19,0,34,0,18,0\n15,0,20,0,6,0,14,0,24,0,22,0\n30,0,23,0,7,0,36,0,17,0,31,0\n1,0,13,0,11,0,12,0,2,0,18,0\n26,0,10,0,37,0,25,0,14,0,15,0\n33,0,22,0,8,0,30,0,5,0,32,0\n36,0,20,0,27,0,17,0,19,0,29,0\n24,0,4,0,3,0,21,0,6,0,35,0\n9,0,16,0,25,0,34,0,28,0,13,0\n31,0,22,0,30,0,11,0,14,0,12,0\n5,0,37,0,6,0,36,0,19,0,1,0\n17,0,23,0,27,0,35,0,24,0,28,0\n7,0,8,0,4,0,26,0,15,0,34,0\n33,0,2,0,10,0,16,0,21,0,20,0\n32,0,18,0,29,0,3,0,9,0,27,0\n30,0,37,0,28,0,15,0,12,0,5,0\n25,0,1,0,22,0,7,0,21,0,13,0\n8,0,9,0,19,0,24,0,31,0,2,0\n32,0,36,0,11,0,33,0,26,0,20,0\n23,0,35,0,34,0,18,0,3,0,6,0\n4,0,16,0,29,0,10,0,17,0,14,0\n20,0,11,0,8,0,1,0,37,0,2,0\n22,0,18,0,27,0,30,0,15,0,3,0\n13,0,9,0,10,0,17,0,7,0,5,0\n31,0,32,0,34,0,19,0,21,0,33,0\n12,0,29,0,28,0,24,0,25,0,6,0\n35,0,36,0,16,0,4,0,23,0,14,0\n26,0,21,0,3,0,30,0,20,0,17,0\n6,0,34,0,27,0,7,0,31,0,37,0\n12,0,13,0,4,0,23,0,36,0,9,0\n14,0,19,0,26,0,28,0,18,0,1,0\n5,0,10,0,16,0,35,0,22,0,11,0\n15,0,2,0,8,0,33,0,29,0,25,0\n32,0,28,0,26,0,24,0,1,0,21,0\n20,0,13,0,23,0,27,0,30,0,11,0\n31,0,4,0,19,0,7,0,9,0,22,0\n25,0,3,0,5,0,14,0,32,0,16,0\n24,0,12,0,36,0,10,0,15,0,18,0\n2,0,35,0,17,0,8,0,37,0,34,0\n6,0,29,0,31,0,33,0,11,0,16,0\n21,0,12,0,27,0,14,0,5,0,36,0\n37,0,13,0,22,0,26,0,25,0,18,0\n10,0,35,0,8,0,24,0,9,0,20,0\n7,0,19,0,6,0,34,0,30,0,29,0\n17,0,15,0,4,0,3,0,1,0,32,0\n28,0,33,0,14,0,2,0,23,0,22,0\n36,0,18,0,7,0,6,0,8,0,16,0\n31,0,9,0,35,0,17,0,25,0,11,0\n33,0,23,0,3,0,12,0,10,0,19,0\n30,0,2,0,21,0,4,0,26,0,27,0\n15,0,37,0,32,0,29,0,24,0,13,0\n20,0,1,0,34,0,5,0,28,0,9,0\n8,0,17,0,18,0,12,0,33,0,6,0\n29,0,3,0,35,0,31,0,13,0,26,0\n5,0,24,0,27,0,4,0,2,0,25,0\n32,0,21,0,22,0,16,0,37,0,23,0\n7,0,15,0,11,0,20,0,19,0,28,0\n14,0,1,0,30,0,10,0,34,0,36,0\n"
  },
  {
    "path": "schedules/37_13.csv",
    "content": "23,0,22,0,3,0,28,0,9,0,2,0\n7,0,37,0,31,0,32,0,21,0,13,0\n6,0,30,0,19,0,5,0,14,0,29,0\n1,0,10,0,17,0,15,0,35,0,11,0\n24,0,12,0,8,0,27,0,26,0,33,0\n34,0,16,0,25,0,18,0,20,0,4,0\n36,0,37,0,6,0,10,0,5,0,19,0\n11,0,29,0,8,0,33,0,31,0,15,0\n17,0,30,0,21,0,34,0,35,0,18,0\n1,0,24,0,9,0,12,0,25,0,14,0\n16,0,22,0,36,0,4,0,20,0,3,0\n26,0,2,0,32,0,13,0,23,0,28,0\n27,0,12,0,34,0,7,0,6,0,29,0\n21,1,3,0,33,0,19,1,30,0,14,0\n31,1,5,0,18,0,28,1,35,0,25,0\n11,1,27,0,4,0,8,0,9,0,13,0\n20,0,15,0,10,0,37,0,2,0,1,0\n17,0,7,0,36,0,23,0,24,0,26,0\n32,0,22,0,28,0,16,0,3,0,6,0\n25,0,19,0,9,0,30,0,8,0,1,0\n24,0,4,0,2,0,27,0,17,0,31,0\n5,0,34,0,15,0,36,0,10,0,13,0\n7,0,11,0,14,0,21,0,23,0,18,0\n29,0,33,0,26,0,35,0,22,0,37,0\n32,0,16,0,10,0,20,0,12,0,24,0\n25,0,23,0,34,0,19,0,17,0,15,0\n7,0,2,0,30,0,5,0,21,0,8,0\n16,0,13,0,29,0,27,0,22,0,1,0\n36,0,31,0,35,0,14,0,20,0,26,0\n12,0,11,0,37,0,18,0,9,0,3,0\n4,0,32,0,6,0,28,0,33,0,5,0\n20,0,7,0,8,0,27,0,15,0,24,0\n10,0,22,0,9,0,31,0,29,0,23,0\n14,0,26,0,21,0,12,0,33,0,1,0\n25,0,3,0,28,0,13,0,35,0,34,0\n11,0,32,0,19,0,37,0,16,0,4,0\n2,0,6,0,17,0,30,0,18,0,36,0\n5,0,12,0,7,0,1,0,3,0,31,0\n27,0,25,0,23,0,4,0,29,0,22,0\n14,0,13,0,19,0,20,0,26,0,36,0\n10,0,28,0,30,0,37,0,15,0,32,0\n11,0,6,0,24,0,2,0,8,0,35,0\n18,0,16,0,33,0,21,0,34,0,17,0\n9,0,12,0,4,0,37,0,29,0,3,0\n35,0,1,0,6,0,30,0,24,0,32,0\n19,0,18,0,27,0,10,0,26,0,7,0\n8,0,16,0,31,0,34,0,28,0,36,0\n20,0,17,0,5,0,9,0,14,0,15,0\n21,0,23,0,2,0,25,0,11,0,33,0\n22,0,24,0,34,0,13,0,30,0,3,0\n35,0,10,0,29,0,8,0,17,0,4,0\n26,0,18,0,15,0,16,0,12,0,21,0\n27,0,28,0,1,0,37,0,23,0,5,0\n6,0,14,0,22,0,36,0,11,0,19,0\n13,0,20,0,2,0,31,0,33,0,9,0\n32,0,34,0,29,0,25,0,7,0,1,0\n8,0,18,0,10,0,23,0,16,0,30,0\n37,0,31,0,26,0,33,0,2,0,14,0\n24,0,25,0,5,0,11,0,22,0,20,0\n35,0,4,0,19,0,12,0,28,0,13,0\n36,0,3,0,15,0,21,0,6,0,27,0\n9,0,17,0,11,0,32,0,7,0,22,0\n14,0,28,0,8,0,19,0,34,0,37,0\n24,0,29,0,18,0,36,0,2,0,12,0\n5,0,15,0,13,0,32,0,35,0,17,0\n20,0,21,0,1,0,4,0,23,0,7,0\n27,0,3,0,16,0,25,0,26,0,30,0\n31,0,10,0,33,0,9,0,6,0,34,0\n2,0,5,0,22,0,11,0,18,0,1,0\n29,0,30,0,20,0,7,0,28,0,15,0\n25,0,21,0,37,0,24,0,9,0,36,0\n13,0,31,0,4,0,26,0,17,0,16,0\n35,0,3,0,27,0,8,0,19,0,33,0\n23,0,14,0,32,0,10,0,12,0,6,0\n26,0,34,0,31,0,9,0,5,0,4,0\n35,0,33,0,7,0,16,0,24,0,2,0\n18,0,11,0,28,0,14,0,10,0,27,0\n15,0,12,0,30,0,21,0,19,0,22,0\n23,0,1,0,36,0,3,0,32,0,8,0\n37,0,13,0,6,0,17,0,29,0,25,0\n20,0,19,0,28,0,21,0,31,0,11,0\n"
  },
  {
    "path": "schedules/37_14.csv",
    "content": "33,0,31,0,2,0,34,0,10,0,24,0\n13,0,17,0,4,0,27,0,22,0,5,0\n12,0,14,0,26,0,1,0,23,0,25,0\n20,0,30,0,8,0,21,0,7,0,37,0\n11,0,32,0,19,0,15,0,35,0,9,0\n3,0,28,0,29,0,16,0,18,0,6,0\n36,0,12,0,34,0,8,0,21,0,4,0\n31,0,5,0,1,0,32,0,35,0,37,0\n27,0,2,0,26,0,16,0,29,0,30,0\n11,0,36,0,18,0,22,0,25,0,17,0\n14,0,9,0,6,0,24,0,15,0,13,0\n19,0,23,0,33,0,7,0,3,0,20,0\n28,0,37,0,18,0,10,0,27,0,12,0\n35,1,1,0,26,0,16,1,34,0,2,0\n25,1,20,0,15,0,7,1,17,0,14,0\n5,0,30,0,28,0,3,0,23,0,11,0\n24,0,31,0,22,0,6,0,21,0,19,0\n9,0,13,0,8,0,33,0,32,0,4,0\n29,0,34,0,14,0,10,0,36,0,5,0\n30,0,24,0,25,0,28,0,19,0,27,0\n13,0,26,0,18,0,6,0,23,0,32,0\n16,0,37,0,17,0,9,0,11,0,33,0\n20,0,21,0,1,0,35,0,4,0,10,0\n22,0,31,0,36,0,15,0,7,0,29,0\n3,0,2,0,25,0,8,0,12,0,28,0\n17,0,18,0,5,0,1,0,13,0,33,0\n27,0,16,0,34,0,32,0,14,0,36,0\n4,0,7,0,9,0,10,0,30,0,37,0\n23,0,24,0,19,0,3,0,8,0,15,0\n6,0,12,0,22,0,2,0,21,0,35,0\n31,0,26,0,29,0,20,0,11,0,17,0\n32,0,30,0,16,0,5,0,8,0,19,0\n7,0,24,0,27,0,1,0,14,0,10,0\n36,0,23,0,35,0,28,0,6,0,25,0\n26,0,9,0,22,0,21,0,12,0,29,0\n15,0,11,0,34,0,20,0,13,0,2,0\n33,0,37,0,4,0,31,0,3,0,18,0\n19,0,17,0,7,0,28,0,16,0,9,0\n24,0,35,0,29,0,26,0,21,0,36,0\n1,0,3,0,32,0,30,0,12,0,13,0\n15,0,5,0,37,0,22,0,11,0,2,0\n6,0,20,0,4,0,33,0,34,0,25,0\n10,0,31,0,27,0,23,0,18,0,8,0\n14,0,15,0,19,0,1,0,11,0,28,0\n3,0,25,0,37,0,5,0,16,0,26,0\n8,0,22,0,33,0,12,0,24,0,20,0\n27,0,17,0,21,0,18,0,2,0,32,0\n34,0,30,0,9,0,14,0,31,0,35,0\n23,0,7,0,10,0,6,0,13,0,29,0\n4,0,12,0,19,0,36,0,11,0,18,0\n20,0,35,0,28,0,37,0,32,0,24,0\n13,0,16,0,22,0,7,0,34,0,31,0\n29,0,36,0,1,0,33,0,6,0,3,0\n5,0,25,0,9,0,14,0,30,0,27,0\n2,0,10,0,15,0,17,0,8,0,26,0\n23,0,21,0,28,0,4,0,16,0,36,0\n14,0,22,0,34,0,9,0,5,0,3,0\n29,0,2,0,19,0,25,0,32,0,10,0\n17,0,12,0,7,0,1,0,24,0,4,0\n8,0,37,0,31,0,6,0,30,0,26,0\n27,0,33,0,35,0,13,0,15,0,23,0\n21,0,11,0,5,0,18,0,20,0,14,0\n36,0,7,0,25,0,12,0,2,0,24,0\n27,0,15,0,4,0,17,0,28,0,34,0\n1,0,18,0,30,0,31,0,9,0,23,0\n33,0,10,0,26,0,21,0,22,0,32,0\n11,0,13,0,37,0,19,0,35,0,3,0\n6,0,16,0,8,0,29,0,20,0,5,0\n21,0,24,0,18,0,30,0,17,0,33,0\n10,0,3,0,13,0,28,0,36,0,2,0\n1,0,23,0,12,0,19,0,16,0,31,0\n14,0,8,0,25,0,35,0,22,0,7,0\n20,0,15,0,32,0,37,0,29,0,9,0\n6,0,11,0,27,0,26,0,4,0,34,0\n14,0,36,0,33,0,19,0,22,0,30,0\n16,0,10,0,21,0,31,0,13,0,25,0\n1,0,2,0,8,0,11,0,4,0,29,0\n6,0,20,0,35,0,3,0,12,0,27,0\n28,0,17,0,24,0,23,0,5,0,34,0\n9,0,18,0,32,0,26,0,37,0,7,0\n30,0,3,0,4,0,15,0,21,0,25,0\n11,0,35,0,10,0,24,0,14,0,16,0\n7,0,13,0,32,0,8,0,29,0,27,0\n31,0,2,0,9,0,22,0,23,0,20,0\n5,0,12,0,33,0,28,0,26,0,15,0\n36,0,6,0,17,0,37,0,34,0,19,0\n18,0,35,0,25,0,1,0,16,0,7,0\n"
  },
  {
    "path": "schedules/37_2.csv",
    "content": "28,0,20,0,6,0,9,0,4,0,10,0\n21,0,36,0,8,0,3,0,35,0,18,0\n2,0,27,0,24,0,11,0,7,0,29,0\n32,0,14,0,1,0,30,0,16,0,34,0\n33,0,25,0,23,0,17,0,26,0,12,0\n31,0,15,0,13,0,5,0,19,0,37,0\n22,0,6,0,21,0,27,0,20,0,1,0\n29,0,26,0,3,0,4,0,16,0,12,0\n18,0,9,0,11,0,23,0,13,0,34,0\n19,0,30,0,7,0,8,0,33,0,22,0\n36,0,17,0,5,0,24,0,28,0,14,0\n35,0,10,0,32,0,37,0,2,0,25,0\n31,0,3,1,1,1,15,0,7,1,12,1\n"
  },
  {
    "path": "schedules/37_3.csv",
    "content": "25,0,10,0,22,0,9,0,27,0,34,0\n2,0,19,0,37,0,26,0,23,0,35,0\n36,0,20,0,8,0,21,0,32,0,18,0\n5,0,12,0,3,0,15,0,17,0,29,0\n28,0,31,0,13,0,11,0,6,0,14,0\n1,0,7,0,4,0,16,0,30,0,33,0\n24,0,19,0,27,0,36,0,5,0,9,0\n3,1,6,0,32,0,21,1,25,0,37,0\n10,1,29,0,1,0,18,0,2,0,31,0\n26,0,17,0,11,0,7,0,33,0,8,0\n16,0,22,0,23,0,20,0,28,0,12,0\n34,0,15,0,14,0,4,0,35,0,24,0\n30,0,18,0,9,0,13,0,3,0,26,0\n33,0,21,0,28,0,5,0,2,0,25,0\n34,0,20,0,17,0,1,0,19,0,6,0\n13,0,4,0,12,0,10,0,32,0,24,0\n16,0,31,0,37,0,27,0,15,0,8,0\n35,0,29,0,30,0,36,0,11,0,22,0\n14,0,23,0,21,0,7,0,3,0,10,0\n"
  },
  {
    "path": "schedules/37_4.csv",
    "content": "5,0,35,0,14,0,2,0,32,0,1,0\n26,0,23,0,6,0,7,0,36,0,17,0\n25,0,33,0,24,0,4,0,19,0,8,0\n10,0,21,0,11,0,3,0,15,0,29,0\n20,0,13,0,18,0,9,0,34,0,30,0\n16,0,28,0,12,0,27,0,22,0,37,0\n23,0,3,0,1,0,31,0,32,0,33,0\n9,0,5,0,15,0,29,0,19,0,17,0\n11,0,26,0,20,0,25,0,28,0,14,0\n36,0,30,0,27,0,35,0,22,0,24,0\n7,0,4,0,12,0,2,0,13,0,21,0\n8,0,31,0,34,0,10,0,6,0,16,0\n37,0,36,0,33,0,18,0,14,0,15,0\n35,1,3,0,7,0,28,1,9,0,24,0\n30,0,2,0,16,0,23,0,11,0,19,0\n13,0,22,0,17,0,1,0,25,0,10,0\n32,0,21,0,18,0,8,0,27,0,26,0\n4,0,37,0,29,0,20,0,6,0,31,0\n34,0,5,0,25,0,12,0,36,0,3,0\n2,0,27,0,9,0,33,0,26,0,10,0\n19,0,30,0,1,0,28,0,21,0,6,0\n12,0,8,0,15,0,35,0,23,0,20,0\n18,0,11,0,22,0,7,0,31,0,5,0\n14,0,32,0,13,0,24,0,29,0,16,0\n4,0,17,0,35,0,37,0,34,0,28,0\n"
  },
  {
    "path": "schedules/37_5.csv",
    "content": "17,0,7,0,6,0,35,0,15,0,8,0\n16,0,28,0,24,0,30,0,12,0,33,0\n37,0,25,0,19,0,31,0,29,0,13,0\n32,0,20,0,5,0,10,0,2,0,22,0\n14,0,23,0,36,0,26,0,18,0,34,0\n4,0,27,0,1,0,11,0,9,0,21,0\n25,0,5,0,29,0,3,0,30,0,35,0\n13,0,10,0,24,0,36,0,28,0,17,0\n37,0,14,0,15,0,20,0,1,0,33,0\n7,0,4,0,23,0,32,0,16,0,19,0\n8,0,18,0,12,0,22,0,3,0,21,0\n2,0,34,0,31,0,6,0,27,0,11,0\n26,0,37,0,16,0,9,0,5,0,17,0\n36,1,35,0,1,0,23,0,32,0,12,0\n29,0,22,0,14,0,15,0,27,0,24,0\n30,0,6,0,21,0,7,0,13,0,9,0\n31,0,3,0,11,0,10,0,26,0,33,0\n4,0,28,0,34,0,8,0,25,0,20,0\n18,0,19,0,30,0,2,0,1,0,17,0\n32,0,3,0,36,0,16,0,6,0,15,0\n12,0,21,0,34,0,29,0,37,0,10,0\n20,0,9,0,35,0,31,0,18,0,24,0\n8,0,11,0,14,0,19,0,5,0,13,0\n22,0,27,0,26,0,7,0,25,0,28,0\n23,0,33,0,3,0,2,0,4,0,9,0\n32,0,24,0,6,0,18,0,37,0,11,0\n19,0,27,0,20,0,36,0,30,0,26,0\n28,0,21,0,31,0,5,0,23,0,15,0\n17,0,12,0,10,0,4,0,14,0,25,0\n22,0,35,0,13,0,16,0,34,0,1,0\n33,0,29,0,2,0,7,0,8,0,36,0\n"
  },
  {
    "path": "schedules/37_6.csv",
    "content": "29,0,16,0,31,0,22,0,3,0,21,0\n25,0,24,0,2,0,20,0,8,0,13,0\n4,0,17,0,30,0,14,0,33,0,28,0\n1,0,35,0,15,0,34,0,11,0,10,0\n7,0,9,0,12,0,36,0,37,0,23,0\n6,0,32,0,18,0,26,0,19,0,5,0\n27,0,3,0,16,0,30,0,35,0,24,0\n14,0,15,0,29,0,33,0,7,0,25,0\n18,0,22,0,17,0,9,0,1,0,32,0\n21,0,20,0,27,0,12,0,6,0,5,0\n34,0,36,0,31,0,13,0,10,0,28,0\n4,0,19,0,11,0,2,0,26,0,37,0\n8,0,5,0,17,0,23,0,35,0,29,0\n6,0,28,0,24,0,22,0,10,0,7,0\n33,0,16,0,11,0,19,0,9,0,20,0\n3,0,34,0,12,0,8,0,18,0,4,0\n37,0,25,0,15,0,32,0,31,0,27,0\n14,0,23,0,30,0,2,0,36,0,21,0\n13,0,26,0,7,0,1,0,8,0,3,0\n24,0,5,0,9,0,15,0,4,0,34,0\n25,0,10,0,17,0,19,0,21,0,18,0\n12,0,37,0,1,0,28,0,2,0,16,0\n29,0,13,0,32,0,6,0,11,0,30,0\n22,0,26,0,35,0,20,0,36,0,33,0\n31,0,14,0,19,0,27,0,23,0,1,0\n37,0,16,0,8,0,15,0,17,0,6,0\n3,0,28,0,36,0,25,0,11,0,5,0\n23,0,32,0,21,0,33,0,24,0,34,0\n30,0,2,0,20,0,7,0,31,0,18,0\n26,0,4,0,9,0,10,0,29,0,27,0\n13,0,14,0,35,0,22,0,12,0,15,0\n7,0,20,0,3,0,17,0,34,0,19,0\n25,0,36,0,4,0,16,0,6,0,1,0\n10,0,30,0,37,0,23,0,5,0,22,0\n8,0,32,0,28,0,14,0,21,0,9,0\n26,0,11,0,29,0,24,0,12,0,31,0\n27,0,33,0,35,0,18,0,2,0,13,0\n"
  },
  {
    "path": "schedules/37_7.csv",
    "content": "24,0,28,0,21,0,11,0,14,0,5,0\n7,0,25,0,36,0,32,0,20,0,33,0\n23,0,13,0,2,0,8,0,17,0,18,0\n19,0,3,0,29,0,12,0,6,0,30,0\n9,0,26,0,37,0,15,0,16,0,10,0\n1,0,4,0,35,0,34,0,27,0,31,0\n22,0,17,0,12,0,14,0,29,0,32,0\n3,0,11,0,25,0,24,0,5,0,18,0\n10,0,21,0,30,0,1,0,37,0,16,0\n31,0,13,0,19,0,36,0,27,0,9,0\n15,0,7,0,4,0,23,0,28,0,6,0\n34,0,20,0,8,0,26,0,33,0,22,0\n2,0,14,0,1,0,35,0,3,0,9,0\n29,1,10,0,31,0,28,1,18,0,32,0\n12,1,33,0,24,0,26,1,16,0,4,0\n37,0,17,0,11,0,13,1,20,0,6,0\n27,0,2,0,5,0,30,0,7,0,22,0\n8,0,19,0,35,0,15,0,25,0,21,0\n34,0,23,0,14,0,36,0,29,0,37,0\n31,0,16,0,7,0,22,0,13,0,3,0\n9,0,25,0,33,0,28,0,27,0,17,0\n5,0,6,0,10,0,23,0,36,0,12,0\n8,0,26,0,1,0,19,0,18,0,4,0\n15,0,34,0,32,0,11,0,2,0,30,0\n20,0,24,0,22,0,35,0,21,0,6,0\n28,0,5,0,3,0,37,0,8,0,10,0\n14,0,13,0,25,0,1,0,30,0,34,0\n15,0,2,0,26,0,36,0,24,0,31,0\n35,0,32,0,11,0,23,0,19,0,33,0\n7,0,18,0,29,0,21,0,9,0,4,0\n16,0,12,0,27,0,17,0,20,0,15,0\n6,0,14,0,31,0,8,0,5,0,33,0\n25,0,4,0,22,0,11,0,13,0,10,0\n23,0,24,0,37,0,9,0,12,0,1,0\n3,0,27,0,32,0,21,0,26,0,34,0\n16,0,29,0,20,0,19,0,2,0,28,0\n36,0,18,0,30,0,7,0,35,0,17,0\n32,0,6,0,26,0,13,0,5,0,9,0\n12,0,37,0,21,0,25,0,2,0,31,0\n36,0,16,0,8,0,27,0,11,0,29,0\n22,0,1,0,18,0,28,0,33,0,15,0\n10,0,17,0,34,0,7,0,24,0,19,0\n23,0,4,0,20,0,30,0,3,0,14,0\n35,0,28,0,12,0,29,0,26,0,13,0\n"
  },
  {
    "path": "schedules/37_8.csv",
    "content": "25,0,12,0,21,0,28,0,33,0,31,0\n26,0,2,0,37,0,19,0,5,0,7,0\n6,0,24,0,4,0,16,0,14,0,3,0\n27,0,15,0,32,0,17,0,9,0,20,0\n1,0,35,0,29,0,36,0,8,0,34,0\n13,0,18,0,10,0,30,0,23,0,11,0\n22,0,25,0,28,0,20,0,4,0,32,0\n6,0,21,0,16,0,36,0,15,0,2,0\n30,0,19,0,31,0,12,0,8,0,27,0\n1,0,18,0,11,0,35,0,13,0,37,0\n14,0,17,0,5,0,33,0,29,0,10,0\n9,0,3,0,34,0,23,0,26,0,22,0\n7,0,1,0,6,0,24,0,27,0,25,0\n11,1,35,0,15,0,12,1,5,0,28,0\n36,1,26,0,20,0,3,1,33,0,18,0\n31,0,37,0,24,0,23,0,2,0,17,0\n14,0,19,0,34,0,21,0,13,0,32,0\n16,0,4,0,7,0,10,0,30,0,9,0\n8,0,29,0,26,0,22,0,12,0,15,0\n11,0,34,0,20,0,19,0,17,0,33,0\n13,0,25,0,14,0,35,0,2,0,30,0\n7,0,3,0,28,0,36,0,31,0,1,0\n23,0,5,0,37,0,4,0,27,0,22,0\n10,0,8,0,24,0,32,0,6,0,9,0\n16,0,29,0,19,0,18,0,21,0,28,0\n17,0,11,0,36,0,25,0,4,0,26,0\n33,0,22,0,30,0,15,0,1,0,24,0\n32,0,14,0,18,0,12,0,6,0,3,0\n13,0,34,0,5,0,16,0,8,0,37,0\n20,0,35,0,21,0,7,0,23,0,10,0\n31,0,29,0,2,0,9,0,27,0,11,0\n17,0,22,0,1,0,12,0,18,0,16,0\n24,0,32,0,30,0,36,0,21,0,5,0\n9,0,8,0,28,0,33,0,14,0,23,0\n4,0,2,0,13,0,20,0,29,0,7,0\n15,0,3,0,25,0,10,0,37,0,19,0\n27,0,31,0,6,0,35,0,34,0,26,0\n32,0,8,0,22,0,2,0,7,0,11,0\n29,0,23,0,9,0,19,0,25,0,1,0\n18,0,27,0,37,0,24,0,36,0,14,0\n30,0,28,0,13,0,17,0,26,0,6,0\n5,0,20,0,10,0,31,0,12,0,34,0\n15,0,21,0,33,0,3,0,35,0,4,0\n16,0,1,0,23,0,26,0,32,0,11,0\n36,0,19,0,22,0,31,0,14,0,10,0\n2,0,12,0,24,0,34,0,4,0,28,0\n17,0,27,0,35,0,8,0,3,0,21,0\n37,0,33,0,20,0,30,0,29,0,6,0\n18,0,7,0,25,0,5,0,16,0,15,0\n9,0,12,0,36,0,13,0,11,0,3,0\n"
  },
  {
    "path": "schedules/37_9.csv",
    "content": "20,0,32,0,2,0,10,0,30,0,31,0\n23,0,26,0,27,0,8,0,7,0,28,0\n6,0,36,0,37,0,33,0,16,0,5,0\n3,0,9,0,18,0,22,0,15,0,13,0\n14,0,25,0,17,0,1,0,29,0,4,0\n11,0,21,0,19,0,24,0,12,0,34,0\n35,0,32,0,30,0,18,0,33,0,22,0\n7,0,6,0,20,0,13,0,2,0,3,0\n11,0,36,0,14,0,21,0,15,0,8,0\n10,0,34,0,1,0,28,0,9,0,26,0\n16,0,4,0,23,0,25,0,5,0,35,0\n31,0,27,0,24,0,12,0,17,0,37,0\n19,0,9,0,22,0,29,0,14,0,2,0\n25,1,30,0,16,0,28,1,3,0,23,0\n4,1,20,0,15,0,37,0,1,0,27,0\n8,0,13,0,33,0,5,0,19,0,34,0\n7,0,17,0,35,0,10,0,6,0,11,0\n18,0,29,0,26,0,31,0,12,0,36,0\n21,0,32,0,3,0,24,0,37,0,28,0\n13,0,11,0,9,0,27,0,16,0,35,0\n5,0,1,0,7,0,19,0,18,0,30,0\n34,0,23,0,31,0,22,0,14,0,12,0\n26,0,33,0,4,0,21,0,24,0,2,0\n10,0,25,0,15,0,32,0,6,0,8,0\n36,0,29,0,35,0,17,0,20,0,3,0\n2,0,18,0,7,0,4,0,11,0,34,0\n28,0,22,0,10,0,37,0,14,0,5,0\n25,0,29,0,31,0,33,0,27,0,21,0\n17,0,15,0,16,0,20,0,26,0,19,0\n24,0,23,0,32,0,13,0,36,0,1,0\n8,0,9,0,12,0,6,0,30,0,33,0\n21,0,34,0,18,0,20,0,28,0,16,0\n13,0,27,0,14,0,3,0,26,0,10,0\n4,0,5,0,12,0,15,0,32,0,7,0\n8,0,2,0,37,0,9,0,1,0,17,0\n31,0,35,0,6,0,29,0,19,0,23,0\n24,0,25,0,11,0,30,0,36,0,22,0\n12,0,33,0,7,0,14,0,16,0,1,0\n2,0,26,0,34,0,3,0,35,0,4,0\n27,0,9,0,5,0,31,0,11,0,32,0\n18,0,24,0,15,0,29,0,10,0,8,0\n22,0,20,0,37,0,25,0,28,0,19,0\n13,0,6,0,17,0,30,0,21,0,23,0\n36,0,16,0,3,0,8,0,1,0,31,0\n14,0,15,0,28,0,11,0,35,0,2,0\n29,0,12,0,30,0,26,0,13,0,37,0\n5,0,20,0,23,0,9,0,24,0,33,0\n25,0,34,0,22,0,17,0,10,0,32,0\n21,0,36,0,4,0,27,0,7,0,19,0\n6,0,26,0,14,0,18,0,11,0,20,0\n30,0,1,0,24,0,15,0,34,0,35,0\n2,0,28,0,12,0,36,0,9,0,25,0\n8,0,4,0,27,0,22,0,6,0,16,0\n3,0,19,0,37,0,7,0,10,0,23,0\n29,0,21,0,17,0,5,0,18,0,32,0\n31,0,33,0,28,0,13,0,25,0,4,0\n"
  },
  {
    "path": "schedules/38_1.csv",
    "content": "11,0,1,0,27,0,6,0,7,0,21,0\n25,0,17,0,38,0,18,0,28,0,9,0\n24,0,2,0,16,0,10,0,8,0,35,0\n19,0,33,0,15,0,20,0,22,0,30,0\n12,0,23,0,36,0,3,0,29,0,13,0\n5,0,14,0,31,0,34,0,26,0,37,0\n32,0,1,1,8,1,4,0,20,1,28,1\n"
  },
  {
    "path": "schedules/38_10.csv",
    "content": "1,0,16,0,35,0,36,0,26,0,29,0\n4,0,7,0,25,0,33,0,5,0,19,0\n10,0,20,0,34,0,23,0,30,0,6,0\n15,0,21,0,17,0,24,0,11,0,14,0\n18,0,38,0,13,0,37,0,2,0,31,0\n9,0,12,0,8,0,27,0,28,0,3,0\n32,0,14,0,29,0,22,0,10,0,33,0\n6,0,18,0,17,0,16,0,23,0,21,0\n1,0,19,0,26,0,36,0,28,0,37,0\n2,0,11,0,20,0,12,0,25,0,24,0\n27,0,9,0,38,0,4,0,15,0,34,0\n7,0,30,0,31,0,35,0,22,0,3,0\n13,0,8,0,37,0,32,0,5,0,20,0\n2,1,23,0,14,0,9,1,16,0,26,0\n6,1,1,0,29,0,15,1,31,0,38,0\n30,0,27,0,10,0,7,0,21,0,19,0\n36,0,35,0,5,0,18,0,12,0,22,0\n17,0,25,0,34,0,32,0,3,0,8,0\n4,0,33,0,24,0,28,0,11,0,13,0\n30,0,19,0,12,0,18,0,15,0,2,0\n23,0,36,0,22,0,21,0,38,0,25,0\n35,0,14,0,33,0,37,0,17,0,3,0\n8,0,4,0,28,0,16,0,10,0,13,0\n9,0,20,0,31,0,7,0,26,0,34,0\n24,0,6,0,32,0,29,0,27,0,5,0\n11,0,21,0,33,0,1,0,18,0,8,0\n2,0,12,0,36,0,4,0,31,0,10,0\n19,0,3,0,38,0,24,0,35,0,26,0\n5,0,34,0,13,0,14,0,28,0,1,0\n37,0,29,0,23,0,7,0,11,0,9,0\n15,0,27,0,22,0,16,0,6,0,20,0\n17,0,30,0,28,0,25,0,32,0,36,0\n8,0,23,0,24,0,37,0,7,0,1,0\n26,0,6,0,3,0,12,0,13,0,4,0\n22,0,21,0,2,0,35,0,27,0,34,0\n32,0,16,0,30,0,11,0,38,0,5,0\n10,0,15,0,19,0,33,0,31,0,17,0\n29,0,18,0,9,0,25,0,20,0,14,0\n32,0,1,0,22,0,7,0,2,0,28,0\n3,0,5,0,24,0,36,0,10,0,6,0\n37,0,34,0,16,0,20,0,12,0,17,0\n8,0,33,0,29,0,15,0,30,0,26,0\n21,0,13,0,35,0,9,0,25,0,19,0\n14,0,31,0,27,0,4,0,11,0,23,0\n38,0,32,0,28,0,18,0,3,0,20,0\n7,0,29,0,13,0,16,0,15,0,12,0\n9,0,1,0,17,0,22,0,5,0,30,0\n6,0,8,0,11,0,35,0,2,0,19,0\n31,0,36,0,34,0,33,0,27,0,23,0\n25,0,26,0,18,0,38,0,10,0,24,0\n21,0,37,0,30,0,4,0,14,0,6,0\n12,0,35,0,23,0,15,0,32,0,33,0\n18,0,27,0,7,0,13,0,25,0,1,0\n2,0,3,0,4,0,29,0,16,0,17,0\n37,0,10,0,11,0,22,0,8,0,38,0\n19,0,24,0,36,0,14,0,9,0,34,0\n20,0,28,0,26,0,31,0,21,0,5,0\n12,0,6,0,38,0,17,0,7,0,8,0\n25,0,15,0,11,0,9,0,3,0,36,0\n5,0,18,0,37,0,34,0,29,0,19,0\n26,0,21,0,14,0,27,0,32,0,2,0\n35,0,4,0,20,0,10,0,1,0,23,0\n16,0,22,0,31,0,13,0,24,0,30,0\n33,0,2,0,6,0,28,0,9,0,15,0\n"
  },
  {
    "path": "schedules/38_11.csv",
    "content": "14,0,17,0,27,0,29,0,12,0,34,0\n23,0,22,0,31,0,18,0,3,0,6,0\n2,0,4,0,26,0,28,0,10,0,37,0\n9,0,13,0,38,0,19,0,35,0,33,0\n25,0,21,0,5,0,32,0,1,0,20,0\n15,0,11,0,8,0,7,0,30,0,24,0\n16,0,28,0,14,0,36,0,22,0,27,0\n38,0,37,0,33,0,2,0,31,0,20,0\n34,0,26,0,1,0,5,0,9,0,15,0\n24,0,29,0,3,0,10,0,8,0,7,0\n18,0,13,0,23,0,16,0,30,0,25,0\n6,0,36,0,11,0,4,0,21,0,32,0\n12,0,19,0,37,0,35,0,17,0,7,0\n3,1,13,0,20,0,15,1,14,0,24,0\n16,0,21,0,36,0,6,0,9,0,34,0\n33,0,4,0,23,0,26,0,27,0,29,0\n8,0,19,0,2,0,11,0,18,0,22,0\n17,0,38,0,32,0,1,0,30,0,5,0\n12,0,31,0,10,0,35,0,25,0,28,0\n21,0,19,0,6,0,29,0,37,0,2,0\n18,0,14,0,7,0,30,0,26,0,9,0\n33,0,16,0,32,0,22,0,38,0,8,0\n12,0,13,0,25,0,20,0,34,0,17,0\n27,0,4,0,35,0,1,0,15,0,23,0\n31,0,11,0,28,0,5,0,10,0,24,0\n3,0,7,0,21,0,36,0,19,0,13,0\n30,0,29,0,22,0,4,0,12,0,9,0\n35,0,10,0,14,0,5,0,20,0,33,0\n6,0,38,0,24,0,17,0,26,0,18,0\n16,0,34,0,2,0,28,0,3,0,1,0\n36,0,15,0,32,0,23,0,8,0,25,0\n11,0,27,0,13,0,31,0,37,0,17,0\n35,0,5,0,3,0,21,0,22,0,2,0\n18,0,28,0,30,0,38,0,36,0,20,0\n7,0,23,0,34,0,33,0,11,0,29,0\n24,0,27,0,12,0,1,0,4,0,16,0\n25,0,15,0,37,0,9,0,19,0,31,0\n14,0,8,0,32,0,10,0,6,0,26,0\n22,0,12,0,7,0,27,0,21,0,38,0\n2,0,35,0,15,0,18,0,16,0,29,0\n8,0,6,0,5,0,37,0,13,0,34,0\n14,0,26,0,20,0,31,0,3,0,4,0\n1,0,11,0,10,0,23,0,30,0,19,0\n9,0,17,0,33,0,24,0,36,0,28,0\n25,0,38,0,4,0,32,0,13,0,7,0\n19,0,5,0,16,0,30,0,8,0,27,0\n33,0,21,0,34,0,15,0,31,0,18,0\n11,0,9,0,23,0,12,0,2,0,14,0\n29,0,28,0,17,0,32,0,37,0,3,0\n1,0,25,0,36,0,35,0,24,0,26,0\n20,0,10,0,19,0,6,0,22,0,15,0\n7,0,2,0,5,0,23,0,16,0,17,0\n31,0,38,0,1,0,14,0,36,0,29,0\n26,0,28,0,12,0,21,0,8,0,13,0\n20,0,22,0,35,0,34,0,24,0,11,0\n9,0,37,0,27,0,18,0,10,0,32,0\n6,0,30,0,4,0,25,0,33,0,3,0\n8,0,24,0,17,0,23,0,21,0,14,0\n32,0,31,0,26,0,35,0,12,0,16,0\n6,0,2,0,27,0,11,0,3,0,30,0\n9,0,18,0,36,0,5,0,29,0,13,0\n10,0,4,0,34,0,15,0,19,0,38,0\n1,0,7,0,37,0,33,0,22,0,28,0\n20,0,29,0,8,0,25,0,31,0,27,0\n3,0,10,0,15,0,36,0,5,0,12,0\n32,0,28,0,19,0,24,0,23,0,2,0\n30,0,37,0,21,0,34,0,25,0,14,0\n18,0,1,0,35,0,7,0,33,0,6,0\n20,0,16,0,9,0,11,0,38,0,26,0\n17,0,22,0,3,0,4,0,13,0,15,0\n"
  },
  {
    "path": "schedules/38_12.csv",
    "content": "17,0,37,0,28,0,10,0,38,0,14,0\n22,0,19,0,20,0,6,0,9,0,3,0\n26,0,32,0,1,0,24,0,29,0,33,0\n25,0,30,0,5,0,21,0,4,0,11,0\n36,0,34,0,16,0,2,0,15,0,35,0\n31,0,8,0,13,0,23,0,7,0,12,0\n18,0,3,0,21,0,27,0,14,0,20,0\n2,0,16,0,9,0,11,0,25,0,19,0\n30,0,37,0,10,0,1,0,15,0,13,0\n6,0,4,0,29,0,17,0,18,0,23,0\n28,0,26,0,33,0,31,0,22,0,32,0\n36,0,24,0,38,0,34,0,27,0,7,0\n8,0,35,0,20,0,5,0,12,0,2,0\n10,0,18,0,28,0,21,0,23,0,19,0\n13,0,6,0,33,0,30,0,14,0,16,0\n5,0,26,0,27,0,4,0,15,0,12,0\n7,0,1,0,9,0,36,0,32,0,25,0\n37,0,35,0,38,0,8,0,17,0,24,0\n31,0,11,0,34,0,29,0,3,0,22,0\n6,0,15,0,21,0,9,0,32,0,33,0\n2,0,8,0,26,0,28,0,16,0,13,0\n38,0,22,0,11,0,1,0,18,0,37,0\n7,0,25,0,10,0,27,0,29,0,12,0\n20,0,23,0,5,0,34,0,30,0,24,0\n31,0,36,0,19,0,35,0,4,0,3,0\n17,0,15,0,29,0,14,0,9,0,8,0\n33,0,27,0,18,0,20,0,28,0,2,0\n26,0,34,0,12,0,37,0,19,0,6,0\n36,0,11,0,35,0,24,0,13,0,10,0\n5,0,32,0,14,0,23,0,25,0,31,0\n17,0,38,0,4,0,21,0,1,0,16,0\n7,0,3,0,8,0,22,0,30,0,33,0\n9,0,29,0,18,0,36,0,5,0,37,0\n25,0,14,0,34,0,19,0,24,0,1,0\n7,0,4,0,13,0,28,0,15,0,11,0\n23,0,10,0,22,0,16,0,38,0,20,0\n27,0,3,0,2,0,26,0,6,0,35,0\n21,0,32,0,17,0,30,0,12,0,31,0\n22,0,8,0,28,0,7,0,36,0,29,0\n9,0,37,0,15,0,13,0,23,0,35,0\n32,0,38,0,30,0,2,0,19,0,18,0\n10,0,12,0,3,0,4,0,33,0,5,0\n16,0,17,0,25,0,26,0,24,0,20,0\n11,0,1,0,14,0,6,0,27,0,31,0\n34,0,3,0,23,0,21,0,10,0,2,0\n4,0,26,0,19,0,20,0,7,0,17,0\n12,0,28,0,9,0,24,0,16,0,11,0\n1,0,5,0,6,0,36,0,13,0,22,0\n31,0,15,0,33,0,18,0,38,0,25,0\n37,0,14,0,29,0,35,0,30,0,21,0\n32,0,34,0,20,0,8,0,27,0,11,0\n16,0,7,0,18,0,3,0,1,0,17,0\n25,0,12,0,37,0,36,0,28,0,30,0\n32,0,19,0,27,0,5,0,15,0,22,0\n13,0,29,0,21,0,2,0,34,0,4,0\n9,0,31,0,24,0,6,0,10,0,8,0\n35,0,33,0,14,0,26,0,38,0,23,0\n4,0,16,0,27,0,37,0,22,0,34,0\n25,0,3,0,24,0,18,0,8,0,32,0\n9,0,21,0,36,0,12,0,33,0,38,0\n2,0,29,0,23,0,17,0,11,0,26,0\n5,0,35,0,10,0,6,0,14,0,7,0\n15,0,30,0,20,0,1,0,31,0,28,0\n13,0,11,0,2,0,19,0,33,0,17,0\n6,0,24,0,23,0,38,0,5,0,29,0\n22,0,7,0,35,0,28,0,21,0,25,0\n36,0,20,0,3,0,37,0,13,0,32,0\n16,0,8,0,15,0,4,0,31,0,14,0\n26,0,30,0,18,0,10,0,34,0,9,0\n19,0,12,0,13,0,1,0,27,0,25,0\n4,0,37,0,24,0,31,0,7,0,2,0\n8,0,21,0,5,0,10,0,16,0,26,0\n38,0,28,0,6,0,32,0,15,0,3,0\n1,0,30,0,23,0,27,0,9,0,35,0\n33,0,20,0,11,0,29,0,34,0,19,0\n17,0,12,0,36,0,14,0,18,0,22,0\n"
  },
  {
    "path": "schedules/38_13.csv",
    "content": "2,0,9,0,11,0,12,0,3,0,15,0\n23,0,33,0,19,0,24,0,5,0,13,0\n1,0,29,0,25,0,35,0,30,0,7,0\n21,0,27,0,20,0,10,0,22,0,8,0\n38,0,34,0,31,0,18,0,36,0,37,0\n32,0,28,0,4,0,26,0,14,0,16,0\n17,0,22,0,9,0,6,0,20,0,10,0\n33,0,34,0,7,0,18,0,25,0,15,0\n4,0,30,0,3,0,12,0,16,0,5,0\n26,0,29,0,31,0,23,0,17,0,36,0\n35,0,6,0,13,0,2,0,38,0,32,0\n1,0,27,0,11,0,19,0,28,0,37,0\n21,0,24,0,3,0,8,0,14,0,7,0\n5,1,22,0,33,0,15,1,30,0,20,0\n17,1,4,0,12,0,27,1,29,0,36,0\n13,0,32,0,37,0,9,0,18,0,24,0\n23,0,8,0,21,0,38,0,35,0,14,0\n11,0,25,0,10,0,2,0,16,0,28,0\n19,0,1,0,31,0,26,0,34,0,6,0\n36,0,14,0,9,0,13,0,29,0,38,0\n7,0,37,0,15,0,8,0,28,0,33,0\n35,0,24,0,26,0,2,0,12,0,10,0\n11,0,22,0,31,0,19,0,25,0,16,0\n18,0,1,0,20,0,17,0,3,0,34,0\n32,0,30,0,6,0,4,0,23,0,27,0\n21,0,38,0,9,0,5,0,2,0,25,0\n35,0,29,0,8,0,33,0,31,0,16,0\n19,0,27,0,26,0,32,0,3,0,20,0\n10,0,34,0,28,0,37,0,23,0,1,0\n7,0,18,0,5,0,12,0,14,0,22,0\n15,0,36,0,13,0,17,0,11,0,6,0\n21,0,30,0,28,0,24,0,4,0,29,0\n12,0,20,0,23,0,8,0,31,0,5,0\n13,0,27,0,22,0,17,0,33,0,14,0\n38,0,6,0,7,0,37,0,11,0,4,0\n21,0,35,0,25,0,1,0,3,0,9,0\n24,0,32,0,15,0,10,0,16,0,18,0\n34,0,36,0,19,0,30,0,26,0,2,0\n33,0,11,0,3,0,31,0,23,0,7,0\n15,0,10,0,14,0,37,0,20,0,29,0\n16,0,4,0,36,0,19,0,35,0,9,0\n13,0,30,0,34,0,32,0,8,0,26,0\n2,0,6,0,18,0,27,0,25,0,17,0\n1,0,12,0,24,0,28,0,22,0,38,0\n5,0,10,0,3,0,21,0,13,0,4,0\n26,0,11,0,7,0,27,0,6,0,16,0\n2,0,20,0,36,0,30,0,18,0,33,0\n19,0,22,0,24,0,28,0,31,0,35,0\n38,0,17,0,1,0,12,0,32,0,21,0\n14,0,5,0,29,0,34,0,25,0,37,0\n8,0,9,0,6,0,15,0,23,0,28,0\n18,0,13,0,19,0,21,0,7,0,1,0\n24,0,2,0,37,0,12,0,29,0,27,0\n38,0,3,0,8,0,34,0,15,0,22,0\n25,0,4,0,14,0,10,0,30,0,31,0\n16,0,23,0,11,0,17,0,20,0,35,0\n26,0,33,0,36,0,5,0,32,0,9,0\n31,0,15,0,27,0,30,0,38,0,24,0\n17,0,28,0,29,0,3,0,7,0,13,0\n19,0,12,0,8,0,14,0,37,0,6,0\n20,0,33,0,9,0,4,0,1,0,2,0\n23,0,5,0,26,0,11,0,18,0,35,0\n34,0,16,0,32,0,22,0,36,0,21,0\n25,0,38,0,12,0,10,0,13,0,33,0\n14,0,30,0,27,0,1,0,15,0,35,0\n3,0,16,0,22,0,36,0,28,0,6,0\n21,0,32,0,18,0,25,0,20,0,31,0\n29,0,10,0,23,0,2,0,7,0,19,0\n26,0,4,0,9,0,34,0,11,0,8,0\n37,0,5,0,30,0,24,0,17,0,31,0\n29,0,2,0,15,0,22,0,32,0,1,0\n12,0,36,0,7,0,27,0,9,0,10,0\n37,0,3,0,35,0,26,0,13,0,20,0\n18,0,14,0,28,0,5,0,11,0,21,0\n6,0,33,0,25,0,23,0,34,0,24,0\n17,0,16,0,8,0,19,0,38,0,4,0\n31,0,2,0,14,0,28,0,13,0,9,0\n5,0,34,0,20,0,24,0,27,0,7,0\n37,0,16,0,38,0,3,0,23,0,25,0\n21,0,10,0,17,0,4,0,33,0,15,0\n12,0,18,0,26,0,29,0,6,0,22,0\n30,0,1,0,8,0,11,0,36,0,32,0\n35,0,5,0,27,0,19,0,15,0,17,0\n"
  },
  {
    "path": "schedules/38_14.csv",
    "content": "33,0,17,0,14,0,24,0,22,0,28,0\n10,0,2,0,1,0,19,0,37,0,16,0\n25,0,38,0,26,0,21,0,6,0,15,0\n18,0,9,0,30,0,32,0,31,0,11,0\n35,0,23,0,36,0,5,0,20,0,34,0\n7,0,27,0,29,0,8,0,12,0,13,0\n3,0,9,0,6,0,4,0,15,0,18,0\n16,0,32,0,22,0,24,0,19,0,1,0\n23,0,33,0,29,0,20,0,12,0,10,0\n26,0,37,0,7,0,4,0,31,0,34,0\n3,0,13,0,17,0,38,0,2,0,11,0\n21,0,25,0,8,0,35,0,28,0,27,0\n30,0,36,0,19,0,14,0,5,0,4,0\n31,1,17,0,15,0,11,1,10,0,37,0\n24,0,21,0,27,0,23,0,9,0,12,0\n38,0,14,0,20,0,29,0,18,0,28,0\n22,0,7,0,8,0,16,0,13,0,36,0\n33,0,26,0,34,0,1,0,30,0,5,0\n25,0,32,0,3,0,2,0,6,0,35,0\n19,0,12,0,21,0,31,0,37,0,24,0\n14,0,11,0,34,0,5,0,16,0,26,0\n23,0,15,0,28,0,2,0,3,0,30,0\n13,0,7,0,32,0,17,0,10,0,35,0\n27,0,9,0,4,0,18,0,20,0,1,0\n6,0,33,0,8,0,22,0,29,0,25,0\n38,0,23,0,3,0,36,0,31,0,12,0\n13,0,35,0,18,0,10,0,5,0,24,0\n22,0,20,0,9,0,26,0,1,0,8,0\n34,0,29,0,6,0,7,0,21,0,28,0\n30,0,11,0,37,0,27,0,36,0,14,0\n32,0,16,0,2,0,17,0,4,0,38,0\n25,0,15,0,9,0,33,0,19,0,5,0\n11,0,26,0,27,0,12,0,29,0,1,0\n13,0,31,0,20,0,28,0,6,0,4,0\n18,0,16,0,17,0,23,0,30,0,8,0\n25,0,14,0,24,0,19,0,3,0,7,0\n35,0,34,0,22,0,38,0,15,0,33,0\n10,0,21,0,2,0,37,0,32,0,36,0\n8,0,28,0,20,0,6,0,18,0,25,0\n29,0,7,0,24,0,23,0,9,0,17,0\n38,0,4,0,36,0,30,0,22,0,33,0\n27,0,31,0,16,0,26,0,3,0,2,0\n10,0,11,0,19,0,21,0,34,0,13,0\n12,0,14,0,1,0,35,0,15,0,32,0\n5,0,7,0,22,0,37,0,18,0,8,0\n26,0,23,0,6,0,19,0,17,0,2,0\n1,0,21,0,15,0,32,0,14,0,10,0\n37,0,34,0,38,0,25,0,13,0,4,0\n35,0,11,0,24,0,29,0,31,0,36,0\n5,0,3,0,28,0,33,0,9,0,16,0\n12,0,30,0,4,0,20,0,27,0,17,0\n25,0,1,0,7,0,10,0,8,0,34,0\n32,0,36,0,18,0,33,0,11,0,21,0\n6,0,5,0,27,0,14,0,31,0,23,0\n28,0,19,0,26,0,24,0,30,0,13,0\n20,0,2,0,29,0,15,0,22,0,37,0\n12,0,16,0,3,0,38,0,9,0,35,0\n4,0,33,0,10,0,14,0,28,0,32,0\n18,0,8,0,2,0,36,0,34,0,24,0\n1,0,6,0,17,0,13,0,23,0,5,0\n12,0,35,0,19,0,20,0,7,0,3,0\n30,0,38,0,27,0,22,0,21,0,31,0\n15,0,29,0,26,0,25,0,16,0,11,0\n9,0,34,0,10,0,37,0,14,0,6,0\n5,0,36,0,8,0,38,0,32,0,19,0\n4,0,2,0,31,0,12,0,33,0,18,0\n16,0,21,0,20,0,7,0,11,0,15,0\n28,0,37,0,13,0,1,0,3,0,27,0\n24,0,23,0,30,0,25,0,22,0,9,0\n35,0,29,0,14,0,26,0,17,0,32,0\n12,0,28,0,2,0,34,0,16,0,7,0\n22,0,11,0,18,0,3,0,10,0,36,0\n35,0,1,0,33,0,26,0,9,0,21,0\n5,0,17,0,25,0,20,0,30,0,19,0\n6,0,24,0,38,0,4,0,29,0,13,0\n31,0,15,0,8,0,37,0,23,0,27,0\n32,0,5,0,12,0,28,0,1,0,11,0\n3,0,21,0,29,0,25,0,20,0,36,0\n35,0,4,0,37,0,24,0,2,0,15,0\n27,0,13,0,33,0,7,0,18,0,38,0\n23,0,34,0,19,0,26,0,22,0,14,0\n30,0,10,0,6,0,8,0,16,0,9,0\n31,0,33,0,1,0,17,0,12,0,7,0\n13,0,19,0,22,0,32,0,23,0,11,0\n37,0,5,0,21,0,16,0,29,0,38,0\n9,0,36,0,28,0,35,0,25,0,31,0\n24,0,20,0,4,0,27,0,15,0,10,0\n17,0,8,0,14,0,2,0,30,0,34,0\n18,0,26,0,31,0,6,0,3,0,11,0\n"
  },
  {
    "path": "schedules/38_2.csv",
    "content": "29,0,3,0,17,0,4,0,27,0,14,0\n28,0,26,0,20,0,23,0,33,0,31,0\n6,0,2,0,34,0,22,0,15,0,12,0\n13,0,8,0,25,0,24,0,35,0,11,0\n38,0,32,0,18,0,7,0,30,0,5,0\n36,0,9,0,16,0,10,0,1,0,37,0\n21,0,25,0,33,0,19,0,17,0,34,0\n29,0,31,0,8,0,2,0,22,0,38,0\n14,0,15,0,10,0,13,0,20,0,18,0\n23,0,35,0,19,0,7,0,6,0,16,0\n4,0,21,0,24,0,28,0,37,0,5,0\n36,0,1,0,26,0,3,0,11,0,32,0\n12,0,30,0,20,1,27,0,9,0,25,1\n"
  },
  {
    "path": "schedules/38_3.csv",
    "content": "32,0,29,0,30,0,15,0,14,0,21,0\n25,0,13,0,11,0,36,0,34,0,31,0\n18,0,35,0,20,0,27,0,2,0,38,0\n8,0,6,0,5,0,7,0,22,0,24,0\n26,0,37,0,10,0,33,0,28,0,9,0\n19,0,17,0,16,0,3,0,4,0,12,0\n23,0,24,0,27,0,1,0,29,0,25,0\n32,0,28,0,21,0,20,0,31,0,8,0\n5,0,14,0,34,0,35,0,17,0,26,0\n12,0,11,0,7,0,10,0,38,0,30,0\n4,0,6,0,36,0,3,0,1,0,33,0\n9,0,22,0,2,0,23,0,15,0,16,0\n13,0,37,0,14,0,18,0,19,0,8,0\n25,0,10,0,17,0,30,0,6,0,20,0\n38,0,31,0,3,0,15,0,24,0,26,0\n35,0,1,0,21,0,9,0,11,0,19,0\n18,0,12,0,28,0,5,0,23,0,36,0\n16,0,7,0,33,0,27,0,13,0,32,0\n22,0,4,0,34,0,2,0,37,0,29,0\n"
  },
  {
    "path": "schedules/38_4.csv",
    "content": "8,0,37,0,1,0,20,0,23,0,21,0\n33,0,15,0,3,0,5,0,32,0,12,0\n25,0,14,0,17,0,28,0,30,0,35,0\n10,0,31,0,13,0,19,0,26,0,2,0\n36,0,24,0,16,0,34,0,6,0,4,0\n38,0,11,0,18,0,9,0,7,0,27,0\n29,0,21,0,10,0,22,0,3,0,25,0\n26,0,34,0,30,0,37,0,28,0,15,0\n6,0,33,0,31,0,14,0,7,0,18,0\n12,0,13,0,38,0,1,0,24,0,35,0\n27,0,5,0,2,0,8,0,4,0,22,0\n29,0,9,0,19,0,20,0,17,0,16,0\n23,0,11,0,14,0,32,0,36,0,13,0\n31,1,27,0,37,0,25,1,24,0,5,0\n20,1,7,0,3,0,34,1,17,0,2,0\n32,0,1,0,28,0,10,0,4,0,9,0\n15,0,6,0,19,0,22,0,23,0,38,0\n18,0,8,0,29,0,36,0,30,0,12,0\n35,0,21,0,26,0,16,0,33,0,11,0\n13,0,28,0,20,0,6,0,3,0,27,0\n5,0,34,0,23,0,10,0,18,0,17,0\n35,0,22,0,37,0,31,0,36,0,9,0\n7,0,32,0,24,0,26,0,8,0,25,0\n15,0,2,0,1,0,29,0,14,0,16,0\n19,0,38,0,4,0,33,0,21,0,30,0\n12,0,31,0,20,0,11,0,25,0,34,0\n"
  },
  {
    "path": "schedules/38_5.csv",
    "content": "27,0,11,0,29,0,6,0,13,0,4,0\n1,0,7,0,12,0,5,0,38,0,33,0\n23,0,32,0,22,0,2,0,28,0,34,0\n36,0,15,0,3,0,20,0,25,0,21,0\n9,0,8,0,19,0,35,0,10,0,24,0\n31,0,14,0,37,0,18,0,16,0,30,0\n17,0,34,0,12,0,26,0,4,0,3,0\n9,0,20,0,38,0,32,0,11,0,25,0\n37,0,21,0,24,0,22,0,5,0,29,0\n30,0,19,0,2,0,27,0,16,0,36,0\n35,0,18,0,17,0,7,0,13,0,15,0\n28,0,33,0,31,0,8,0,26,0,14,0\n6,0,10,0,30,0,1,0,23,0,21,0\n7,1,37,0,34,0,11,1,15,0,2,0\n22,0,3,0,27,0,14,0,38,0,35,0\n12,0,8,0,4,0,32,0,18,0,19,0\n13,0,26,0,5,0,23,0,36,0,9,0\n25,0,17,0,16,0,33,0,6,0,24,0\n10,0,1,0,31,0,29,0,28,0,20,0\n14,0,19,0,13,0,38,0,21,0,34,0\n25,0,26,0,35,0,32,0,30,0,37,0\n36,0,22,0,8,0,17,0,11,0,1,0\n28,0,6,0,16,0,5,0,15,0,12,0\n4,0,23,0,7,0,31,0,24,0,20,0\n2,0,18,0,29,0,3,0,33,0,9,0\n27,0,5,0,14,0,10,0,32,0,17,0\n7,0,20,0,26,0,22,0,6,0,19,0\n38,0,16,0,15,0,29,0,8,0,23,0\n21,0,2,0,12,0,35,0,31,0,11,0\n24,0,25,0,18,0,1,0,34,0,27,0\n13,0,33,0,36,0,4,0,37,0,10,0\n30,0,9,0,11,0,28,0,3,0,7,0\n"
  },
  {
    "path": "schedules/38_6.csv",
    "content": "37,0,23,0,21,0,33,0,14,0,24,0\n7,0,30,0,20,0,34,0,36,0,10,0\n2,0,15,0,4,0,9,0,6,0,19,0\n28,0,35,0,17,0,1,0,25,0,32,0\n16,0,27,0,11,0,29,0,38,0,12,0\n18,0,22,0,3,0,26,0,31,0,13,0\n8,0,2,0,36,0,5,0,1,0,33,0\n7,0,14,0,34,0,15,0,32,0,12,0\n13,0,20,0,19,0,25,0,30,0,35,0\n21,0,26,0,8,0,4,0,28,0,16,0\n24,0,6,0,29,0,17,0,31,0,38,0\n11,0,3,0,10,0,5,0,23,0,18,0\n27,0,22,0,8,0,37,0,9,0,30,0\n13,0,21,0,29,0,15,0,1,0,7,0\n16,0,5,0,26,0,24,0,19,0,34,0\n9,0,25,0,17,0,11,0,18,0,14,0\n32,0,27,0,31,0,23,0,36,0,4,0\n28,0,2,0,38,0,20,0,37,0,10,0\n12,0,35,0,3,0,22,0,33,0,6,0\n17,0,1,0,26,0,30,0,27,0,15,0\n37,0,34,0,28,0,9,0,13,0,36,0\n20,0,24,0,32,0,18,0,8,0,6,0\n19,0,4,0,10,0,22,0,29,0,14,0\n16,0,38,0,7,0,33,0,23,0,35,0\n31,0,25,0,12,0,5,0,2,0,21,0\n11,0,1,0,24,0,3,0,4,0,34,0\n33,0,7,0,18,0,27,0,19,0,28,0\n5,0,29,0,32,0,22,0,30,0,38,0\n15,0,25,0,20,0,16,0,3,0,37,0\n26,0,36,0,14,0,6,0,35,0,11,0\n2,0,23,0,12,0,13,0,17,0,8,0\n10,0,9,0,32,0,31,0,21,0,16,0\n19,0,38,0,14,0,36,0,1,0,3,0\n17,0,4,0,6,0,7,0,37,0,5,0\n25,0,27,0,13,0,24,0,10,0,8,0\n34,0,21,0,18,0,2,0,35,0,22,0\n29,0,9,0,23,0,26,0,20,0,12,0\n28,0,30,0,33,0,31,0,15,0,11,0\n"
  },
  {
    "path": "schedules/38_7.csv",
    "content": "6,0,30,0,15,0,38,0,27,0,25,0\n10,0,17,0,3,0,13,0,18,0,1,0\n20,0,26,0,5,0,22,0,24,0,32,0\n7,0,37,0,33,0,4,0,23,0,2,0\n19,0,21,0,28,0,29,0,34,0,14,0\n9,0,16,0,35,0,31,0,36,0,11,0\n12,0,24,0,23,0,8,0,15,0,17,0\n27,0,2,0,28,0,26,0,32,0,18,0\n20,0,7,0,11,0,37,0,3,0,38,0\n35,0,30,0,19,0,9,0,10,0,5,0\n36,0,8,0,33,0,13,0,6,0,34,0\n21,0,29,0,4,0,22,0,16,0,1,0\n31,0,25,0,26,0,12,0,14,0,17,0\n6,1,38,0,24,0,10,1,37,0,19,0\n8,1,34,0,2,0,20,1,30,0,16,0\n14,0,36,0,1,0,15,0,28,0,7,0\n23,0,9,0,18,0,21,0,22,0,12,0\n35,0,32,0,25,0,33,0,3,0,29,0\n5,0,13,0,11,0,31,0,4,0,27,0\n24,0,36,0,16,0,6,0,10,0,12,0\n29,0,1,0,9,0,8,0,26,0,37,0\n33,0,23,0,5,0,18,0,11,0,14,0\n13,0,7,0,22,0,32,0,28,0,30,0\n27,0,21,0,15,0,20,0,19,0,3,0\n17,0,31,0,38,0,4,0,35,0,34,0\n25,0,24,0,1,0,2,0,13,0,16,0\n26,0,29,0,30,0,21,0,33,0,11,0\n37,0,15,0,18,0,35,0,8,0,31,0\n28,0,34,0,38,0,3,0,12,0,5,0\n20,0,6,0,27,0,7,0,9,0,17,0\n19,0,4,0,32,0,36,0,23,0,25,0\n14,0,10,0,8,0,2,0,22,0,38,0\n35,0,7,0,6,0,21,0,26,0,13,0\n19,0,18,0,17,0,32,0,37,0,16,0\n14,0,3,0,28,0,4,0,24,0,9,0\n15,0,36,0,12,0,5,0,29,0,2,0\n31,0,20,0,23,0,33,0,1,0,30,0\n11,0,34,0,27,0,25,0,10,0,22,0\n21,0,8,0,3,0,5,0,17,0,36,0\n13,0,4,0,38,0,20,0,18,0,29,0\n10,0,16,0,34,0,26,0,23,0,15,0\n1,0,32,0,2,0,11,0,6,0,9,0\n12,0,35,0,37,0,27,0,30,0,14,0\n31,0,33,0,22,0,19,0,24,0,7,0\n25,0,6,0,8,0,28,0,10,0,20,0\n"
  },
  {
    "path": "schedules/38_8.csv",
    "content": "33,0,3,0,9,0,15,0,22,0,2,0\n28,0,36,0,14,0,30,0,23,0,10,0\n34,0,35,0,24,0,1,0,26,0,25,0\n37,0,31,0,20,0,6,0,29,0,32,0\n16,0,38,0,18,0,27,0,17,0,13,0\n12,0,21,0,8,0,4,0,11,0,19,0\n5,0,30,0,32,0,7,0,24,0,22,0\n36,0,27,0,23,0,1,0,9,0,20,0\n10,0,34,0,37,0,11,0,21,0,18,0\n7,0,28,0,16,0,31,0,12,0,15,0\n17,0,25,0,3,0,19,0,8,0,6,0\n5,0,13,0,33,0,29,0,35,0,14,0\n4,0,26,0,31,0,2,0,38,0,23,0\n12,1,1,0,7,0,25,1,10,0,21,0\n30,0,15,0,36,0,18,0,19,0,35,0\n4,0,38,0,22,0,20,0,24,0,29,0\n8,0,27,0,11,0,33,0,28,0,32,0\n5,0,3,0,37,0,13,0,16,0,9,0\n14,0,26,0,2,0,17,0,6,0,34,0\n33,0,23,0,11,0,38,0,35,0,7,0\n5,0,4,0,18,0,28,0,37,0,25,0\n2,0,8,0,13,0,12,0,36,0,24,0\n27,0,29,0,22,0,19,0,15,0,10,0\n20,0,16,0,3,0,34,0,30,0,14,0\n31,0,21,0,9,0,26,0,32,0,17,0\n6,0,15,0,11,0,1,0,18,0,22,0\n25,0,7,0,29,0,36,0,2,0,3,0\n4,0,35,0,21,0,14,0,27,0,31,0\n30,0,13,0,6,0,23,0,8,0,26,0\n20,0,34,0,32,0,33,0,12,0,10,0\n24,0,16,0,19,0,9,0,38,0,28,0\n1,0,5,0,15,0,37,0,17,0,30,0\n25,0,23,0,32,0,3,0,21,0,29,0\n22,0,28,0,19,0,26,0,13,0,34,0\n1,0,36,0,6,0,33,0,4,0,16,0\n2,0,11,0,24,0,20,0,5,0,27,0\n14,0,18,0,37,0,8,0,31,0,7,0\n9,0,10,0,35,0,17,0,12,0,38,0\n19,0,21,0,36,0,5,0,24,0,6,0\n3,0,18,0,7,0,26,0,28,0,20,0\n12,0,25,0,4,0,15,0,9,0,14,0\n32,0,10,0,8,0,35,0,16,0,2,0\n29,0,31,0,13,0,30,0,1,0,11,0\n17,0,23,0,22,0,37,0,33,0,27,0\n38,0,20,0,15,0,34,0,8,0,5,0\n13,0,24,0,25,0,10,0,11,0,31,0\n19,0,1,0,14,0,32,0,18,0,2,0\n27,0,38,0,6,0,12,0,3,0,30,0\n17,0,7,0,9,0,34,0,29,0,4,0\n35,0,28,0,23,0,16,0,21,0,22,0\n37,0,26,0,12,0,33,0,36,0,25,0\n"
  },
  {
    "path": "schedules/38_9.csv",
    "content": "37,0,28,0,26,0,8,0,17,0,38,0\n23,0,30,0,9,0,27,0,33,0,2,0\n35,0,36,0,32,0,18,0,29,0,16,0\n34,0,13,0,3,0,12,0,19,0,1,0\n11,0,24,0,6,0,10,0,7,0,22,0\n21,0,20,0,14,0,4,0,25,0,15,0\n5,0,8,0,3,0,31,0,2,0,38,0\n34,0,27,0,32,0,26,0,35,0,11,0\n25,0,37,0,17,0,14,0,30,0,24,0\n4,0,13,0,33,0,6,0,18,0,5,0\n21,0,23,0,7,0,31,0,16,0,1,0\n15,0,20,0,12,0,36,0,19,0,22,0\n9,0,10,0,25,0,28,0,29,0,3,0\n1,0,38,0,34,0,18,0,14,0,27,0\n37,0,30,0,16,0,6,0,22,0,20,0\n11,0,28,0,33,0,5,0,36,0,23,0\n21,0,26,0,2,0,10,0,35,0,12,0\n31,0,17,0,32,0,4,0,9,0,19,0\n8,0,15,0,29,0,7,0,13,0,24,0\n34,0,36,0,10,0,38,0,21,0,30,0\n14,0,6,0,37,0,11,0,31,0,23,0\n19,0,16,0,28,0,4,0,29,0,26,0\n9,0,33,0,22,0,1,0,35,0,8,0\n3,0,15,0,27,0,32,0,5,0,24,0\n17,0,18,0,12,0,25,0,7,0,20,0\n13,0,21,0,36,0,2,0,9,0,14,0\n1,0,28,0,24,0,6,0,15,0,16,0\n33,0,5,0,29,0,12,0,34,0,37,0\n20,0,4,0,18,0,27,0,10,0,8,0\n23,0,35,0,22,0,19,0,25,0,38,0\n30,0,2,0,3,0,32,0,7,0,11,0\n26,0,17,0,10,0,13,0,31,0,5,0\n9,0,15,0,38,0,6,0,4,0,12,0\n19,0,29,0,11,0,30,0,1,0,18,0\n28,0,7,0,31,0,2,0,35,0,20,0\n23,0,14,0,8,0,26,0,32,0,3,0\n17,0,24,0,22,0,33,0,34,0,21,0\n36,0,16,0,25,0,37,0,13,0,27,0\n26,0,5,0,20,0,1,0,9,0,29,0\n12,0,32,0,14,0,10,0,6,0,28,0\n33,0,7,0,15,0,25,0,27,0,31,0\n21,0,18,0,22,0,3,0,37,0,23,0\n4,0,35,0,38,0,13,0,30,0,11,0\n16,0,2,0,8,0,17,0,34,0,19,0\n24,0,31,0,18,0,36,0,12,0,28,0\n5,0,30,0,27,0,29,0,14,0,22,0\n3,0,10,0,19,0,33,0,16,0,20,0\n4,0,7,0,36,0,26,0,23,0,34,0\n6,0,2,0,1,0,21,0,25,0,8,0\n35,0,17,0,9,0,15,0,37,0,11,0\n32,0,13,0,20,0,38,0,24,0,33,0\n7,0,30,0,19,0,28,0,21,0,5,0\n8,0,12,0,31,0,16,0,14,0,11,0\n27,0,36,0,29,0,3,0,17,0,6,0\n37,0,1,0,22,0,2,0,32,0,4,0\n38,0,23,0,10,0,13,0,15,0,35,0\n18,0,34,0,25,0,26,0,24,0,9,0\n"
  },
  {
    "path": "schedules/39_1.csv",
    "content": "1,0,32,0,5,0,24,0,18,0,2,0\n10,0,38,0,31,0,16,0,17,0,7,0\n23,0,33,0,19,0,26,0,20,0,29,0\n4,0,6,0,36,0,34,0,30,0,37,0\n22,0,13,0,39,0,35,0,3,0,12,0\n15,0,14,0,21,0,9,0,8,0,11,0\n27,0,25,0,36,1,28,0,30,1,1,1\n"
  },
  {
    "path": "schedules/39_10.csv",
    "content": "21,0,22,0,1,0,30,0,24,0,29,0\n31,0,26,0,3,0,7,0,23,0,12,0\n14,0,27,0,4,0,13,0,15,0,19,0\n35,0,2,0,28,0,8,0,9,0,18,0\n10,0,32,0,36,0,6,0,39,0,25,0\n38,0,16,0,11,0,37,0,20,0,5,0\n33,0,3,0,1,0,17,0,34,0,19,0\n18,0,13,0,36,0,39,0,32,0,30,0\n9,0,10,0,12,0,4,0,15,0,38,0\n28,0,20,0,21,0,23,0,37,0,31,0\n25,0,11,0,29,0,26,0,33,0,8,0\n34,0,22,0,6,0,14,0,7,0,5,0\n2,0,17,0,24,0,27,0,16,0,35,0\n26,0,1,0,15,0,37,0,13,0,21,0\n7,0,22,0,29,0,4,0,23,0,10,0\n5,0,33,0,12,0,32,0,20,0,2,0\n36,0,39,0,34,0,9,0,31,0,35,0\n24,0,14,0,18,0,38,0,25,0,28,0\n8,0,11,0,6,0,3,0,30,0,16,0\n27,0,19,0,32,0,17,0,29,0,23,0\n15,0,12,0,35,0,26,0,39,0,28,0\n16,0,21,0,14,0,5,0,3,0,10,0\n13,0,20,0,9,0,24,0,19,0,6,0\n17,0,33,0,27,0,22,0,8,0,36,0\n4,0,7,0,1,0,18,0,11,0,30,0\n34,0,25,0,31,0,2,0,38,0,37,0\n6,0,26,0,9,0,16,0,22,0,17,0\n35,0,24,0,5,0,19,0,33,0,23,0\n37,0,29,0,39,0,14,0,30,0,2,0\n28,0,4,0,12,0,11,0,1,0,27,0\n8,0,13,0,3,0,31,0,38,0,10,0\n15,0,21,0,32,0,7,0,20,0,34,0\n25,0,18,0,26,0,36,0,6,0,27,0\n2,0,8,0,10,0,13,0,24,0,11,0\n37,0,19,0,22,0,38,0,32,0,12,0\n20,0,17,0,39,0,21,0,4,0,18,0\n23,0,25,0,14,0,31,0,1,0,16,0\n28,0,34,0,30,0,29,0,33,0,35,0\n15,0,3,0,7,0,9,0,5,0,36,0\n6,0,23,0,21,0,12,0,17,0,1,0\n30,0,19,0,38,0,16,0,28,0,32,0\n22,0,25,0,27,0,11,0,39,0,3,0\n14,0,33,0,20,0,13,0,35,0,7,0\n29,0,8,0,31,0,15,0,5,0,18,0\n36,0,24,0,26,0,34,0,2,0,4,0\n37,0,9,0,33,0,10,0,27,0,21,0\n5,0,17,0,30,0,15,0,20,0,25,0\n4,0,35,0,11,0,6,0,31,0,32,0\n39,0,10,0,7,0,19,0,8,0,1,0\n38,0,9,0,3,0,29,0,2,0,26,0\n24,0,23,0,28,0,14,0,36,0,37,0\n34,0,13,0,16,0,12,0,18,0,22,0\n2,0,15,0,33,0,6,0,38,0,1,0\n31,0,30,0,7,0,27,0,39,0,24,0\n23,0,9,0,32,0,14,0,8,0,12,0\n37,0,35,0,18,0,3,0,4,0,22,0\n5,0,25,0,16,0,13,0,29,0,28,0\n10,0,19,0,11,0,17,0,36,0,21,0\n20,0,4,0,8,0,26,0,34,0,14,0\n18,0,32,0,3,0,24,0,15,0,9,0\n6,0,13,0,17,0,37,0,7,0,28,0\n27,0,5,0,38,0,21,0,35,0,25,0\n29,0,1,0,10,0,20,0,12,0,36,0\n23,0,39,0,16,0,11,0,33,0,34,0\n2,0,19,0,31,0,22,0,30,0,26,0\n"
  },
  {
    "path": "schedules/39_11.csv",
    "content": "36,0,39,0,22,0,3,0,18,0,25,0\n32,0,29,0,10,0,11,0,16,0,13,0\n19,0,15,0,8,0,35,0,21,0,4,0\n6,0,31,0,7,0,1,0,28,0,24,0\n17,0,14,0,34,0,33,0,20,0,38,0\n26,0,9,0,30,0,12,0,27,0,2,0\n37,0,5,0,32,0,23,0,4,0,29,0\n39,0,16,0,24,0,14,0,22,0,19,0\n3,0,20,0,36,0,7,0,27,0,21,0\n18,0,38,0,5,0,35,0,1,0,10,0\n28,0,9,0,17,0,13,0,30,0,37,0\n26,0,12,0,31,0,8,0,11,0,25,0\n34,0,2,0,6,0,15,0,23,0,33,0\n36,1,1,0,4,0,37,1,17,0,35,0\n29,1,31,0,38,0,32,0,27,0,30,0\n28,0,18,0,23,0,20,0,39,0,21,0\n2,0,22,0,10,0,33,0,14,0,5,0\n25,0,16,0,34,0,9,0,15,0,7,0\n11,0,24,0,3,0,8,0,13,0,12,0\n6,0,19,0,21,0,26,0,10,0,17,0\n14,0,36,0,27,0,35,0,5,0,31,0\n25,0,12,0,9,0,3,0,38,0,23,0\n32,0,19,0,16,0,18,0,2,0,8,0\n7,0,30,0,1,0,15,0,20,0,22,0\n29,0,34,0,13,0,39,0,6,0,26,0\n28,0,11,0,33,0,4,0,24,0,37,0\n31,0,18,0,20,0,23,0,25,0,19,0\n27,0,10,0,6,0,7,0,38,0,8,0\n29,0,11,0,17,0,22,0,3,0,34,0\n33,0,12,0,35,0,39,0,28,0,32,0\n4,0,26,0,5,0,30,0,36,0,16,0\n1,0,15,0,21,0,2,0,24,0,13,0\n37,0,9,0,19,0,14,0,6,0,18,0\n4,0,28,0,27,0,22,0,29,0,12,0\n36,0,33,0,8,0,1,0,13,0,23,0\n24,0,32,0,21,0,30,0,34,0,10,0\n35,0,15,0,14,0,37,0,26,0,3,0\n20,0,7,0,25,0,9,0,11,0,5,0\n2,0,16,0,38,0,17,0,39,0,31,0\n15,0,12,0,34,0,36,0,10,0,18,0\n1,0,32,0,11,0,14,0,9,0,21,0\n23,0,7,0,22,0,4,0,17,0,8,0\n38,0,13,0,35,0,29,0,16,0,20,0\n6,0,30,0,24,0,2,0,25,0,5,0\n39,0,27,0,3,0,19,0,28,0,31,0\n26,0,21,0,38,0,37,0,33,0,22,0\n23,0,20,0,30,0,10,0,14,0,24,0\n31,0,8,0,9,0,15,0,28,0,29,0\n37,0,16,0,6,0,3,0,32,0,33,0\n17,0,18,0,13,0,12,0,5,0,7,0\n25,0,4,0,39,0,26,0,1,0,27,0\n35,0,2,0,19,0,34,0,11,0,36,0\n31,0,22,0,21,0,32,0,12,0,6,0\n26,0,24,0,33,0,9,0,18,0,27,0\n36,0,17,0,25,0,10,0,16,0,28,0\n5,0,23,0,39,0,38,0,15,0,11,0\n37,0,1,0,29,0,19,0,7,0,34,0\n20,0,2,0,14,0,4,0,3,0,13,0\n8,0,30,0,22,0,35,0,36,0,9,0\n23,0,34,0,21,0,16,0,27,0,5,0\n11,0,4,0,2,0,38,0,28,0,6,0\n24,0,17,0,7,0,35,0,32,0,26,0\n13,0,19,0,33,0,30,0,25,0,31,0\n8,0,10,0,20,0,39,0,37,0,15,0\n3,0,29,0,14,0,18,0,12,0,1,0\n36,0,32,0,7,0,19,0,38,0,24,0\n13,0,31,0,10,0,22,0,9,0,4,0\n35,0,27,0,29,0,17,0,15,0,2,0\n33,0,16,0,1,0,20,0,12,0,37,0\n39,0,30,0,18,0,11,0,6,0,23,0\n28,0,3,0,5,0,8,0,26,0,34,0\n14,0,25,0,37,0,21,0,36,0,29,0\n"
  },
  {
    "path": "schedules/39_12.csv",
    "content": "28,0,1,0,39,0,5,0,20,0,23,0\n31,0,33,0,30,0,21,0,9,0,35,0\n16,0,6,0,11,0,25,0,18,0,26,0\n15,0,2,0,37,0,34,0,29,0,38,0\n27,0,19,0,10,0,17,0,3,0,13,0\n4,0,36,0,22,0,8,0,14,0,32,0\n24,0,12,0,23,0,7,0,18,0,33,0\n30,0,20,0,21,0,15,0,38,0,13,0\n19,0,9,0,34,0,25,0,10,0,29,0\n14,0,5,0,31,0,6,0,36,0,3,0\n7,0,35,0,12,0,32,0,16,0,22,0\n26,0,8,0,4,0,37,0,1,0,24,0\n27,0,28,0,17,0,11,0,2,0,39,0\n5,0,6,0,32,0,18,0,23,0,30,0\n4,0,14,0,13,0,7,0,15,0,1,0\n11,0,20,0,31,0,22,0,19,0,2,0\n3,0,27,0,29,0,12,0,28,0,34,0\n37,0,8,0,25,0,21,0,26,0,39,0\n24,0,36,0,33,0,38,0,10,0,16,0\n9,0,17,0,15,0,35,0,18,0,5,0\n12,0,20,0,3,0,25,0,30,0,6,0\n10,0,26,0,33,0,28,0,8,0,31,0\n22,0,27,0,38,0,19,0,35,0,1,0\n24,0,9,0,2,0,37,0,32,0,17,0\n29,0,39,0,36,0,13,0,16,0,7,0\n34,0,21,0,14,0,4,0,23,0,11,0\n5,0,19,0,25,0,12,0,30,0,27,0\n38,0,8,0,39,0,28,0,7,0,9,0\n20,0,1,0,26,0,36,0,34,0,32,0\n18,0,14,0,11,0,35,0,13,0,24,0\n17,0,22,0,10,0,21,0,29,0,6,0\n31,0,3,0,37,0,33,0,15,0,23,0\n16,0,2,0,28,0,4,0,19,0,18,0\n38,0,6,0,24,0,13,0,32,0,12,0\n17,0,30,0,36,0,37,0,9,0,39,0\n35,0,22,0,8,0,4,0,5,0,34,0\n25,0,2,0,20,0,23,0,31,0,27,0\n7,0,26,0,11,0,10,0,21,0,15,0\n1,0,29,0,16,0,33,0,3,0,14,0\n23,0,36,0,13,0,22,0,24,0,31,0\n39,0,15,0,35,0,2,0,6,0,8,0\n38,0,9,0,32,0,18,0,3,0,16,0\n33,0,29,0,12,0,20,0,4,0,17,0\n37,0,5,0,10,0,1,0,11,0,25,0\n14,0,7,0,30,0,34,0,27,0,26,0\n28,0,19,0,36,0,21,0,17,0,23,0\n39,0,12,0,25,0,22,0,1,0,3,0\n29,0,18,0,32,0,8,0,11,0,27,0\n24,0,7,0,10,0,2,0,21,0,5,0\n31,0,4,0,35,0,28,0,38,0,26,0\n33,0,9,0,20,0,14,0,19,0,15,0\n37,0,13,0,6,0,16,0,34,0,30,0\n21,0,32,0,25,0,29,0,17,0,35,0\n8,0,1,0,23,0,11,0,38,0,3,0\n19,0,16,0,26,0,13,0,5,0,33,0\n18,0,34,0,31,0,39,0,24,0,27,0\n37,0,4,0,7,0,20,0,28,0,6,0\n2,0,10,0,30,0,12,0,14,0,36,0\n9,0,27,0,18,0,22,0,15,0,26,0\n19,0,3,0,8,0,16,0,37,0,21,0\n23,0,38,0,35,0,10,0,12,0,6,0\n15,0,32,0,28,0,7,0,36,0,25,0\n30,0,1,0,5,0,31,0,29,0,2,0\n13,0,9,0,11,0,4,0,39,0,33,0\n34,0,17,0,24,0,22,0,20,0,14,0\n12,0,31,0,21,0,37,0,18,0,36,0\n1,0,27,0,6,0,16,0,9,0,23,0\n22,0,13,0,30,0,28,0,11,0,33,0\n4,0,25,0,15,0,24,0,29,0,19,0\n35,0,14,0,26,0,39,0,32,0,3,0\n38,0,5,0,17,0,34,0,7,0,20,0\n2,0,13,0,18,0,10,0,8,0,9,0\n29,0,23,0,37,0,30,0,24,0,26,0\n15,0,16,0,12,0,1,0,17,0,31,0\n28,0,22,0,25,0,2,0,14,0,38,0\n3,0,21,0,4,0,5,0,27,0,7,0\n11,0,10,0,35,0,8,0,20,0,36,0\n34,0,39,0,6,0,19,0,33,0,32,0\n"
  },
  {
    "path": "schedules/39_13.csv",
    "content": "22,0,9,0,32,0,39,0,8,0,25,0\n1,0,3,0,12,0,34,0,17,0,27,0\n23,0,20,0,15,0,5,0,13,0,37,0\n4,0,11,0,38,0,2,0,24,0,7,0\n6,0,30,0,26,0,10,0,29,0,33,0\n35,0,16,0,18,0,21,0,14,0,19,0\n28,0,36,0,17,0,31,0,9,0,4,0\n12,0,11,0,30,0,39,0,33,0,1,0\n7,0,19,0,20,0,34,0,16,0,23,0\n3,0,32,0,13,0,18,0,37,0,6,0\n10,0,31,0,5,0,36,0,27,0,38,0\n29,0,15,0,2,0,21,0,8,0,35,0\n28,0,25,0,24,0,22,0,14,0,26,0\n12,1,39,0,18,0,33,1,27,0,11,0\n34,1,19,0,5,0,35,0,9,0,10,0\n36,0,31,0,2,0,24,0,16,0,6,0\n8,0,26,0,17,0,14,0,3,0,23,0\n37,0,32,0,28,0,15,0,1,0,30,0\n4,0,22,0,7,0,38,0,20,0,21,0\n29,0,25,0,26,0,13,0,9,0,18,0\n3,0,19,0,28,0,2,0,39,0,11,0\n38,0,12,0,1,0,15,0,36,0,16,0\n29,0,5,0,20,0,25,0,32,0,7,0\n37,0,23,0,33,0,10,0,24,0,17,0\n8,0,27,0,14,0,21,0,31,0,6,0\n22,0,13,0,34,0,30,0,4,0,35,0\n26,0,19,0,24,0,1,0,17,0,32,0\n15,0,33,0,7,0,18,0,10,0,27,0\n36,0,3,0,30,0,23,0,38,0,25,0\n6,0,9,0,11,0,22,0,29,0,21,0\n12,0,14,0,28,0,35,0,2,0,5,0\n13,0,4,0,20,0,16,0,8,0,31,0\n34,0,39,0,38,0,37,0,15,0,26,0\n29,0,14,0,9,0,12,0,2,0,33,0\n25,0,35,0,1,0,7,0,5,0,6,0\n3,0,34,0,11,0,28,0,31,0,22,0\n16,0,13,0,27,0,37,0,19,0,17,0\n4,0,21,0,39,0,18,0,23,0,24,0\n8,0,36,0,10,0,32,0,30,0,20,0\n15,0,31,0,3,0,2,0,19,0,9,0\n22,0,11,0,35,0,12,0,13,0,23,0\n27,0,25,0,21,0,28,0,10,0,26,0\n24,0,30,0,37,0,36,0,18,0,14,0\n38,0,5,0,8,0,4,0,16,0,33,0\n32,0,29,0,39,0,7,0,1,0,34,0\n6,0,17,0,25,0,20,0,22,0,12,0\n5,0,3,0,21,0,8,0,11,0,19,0\n15,0,9,0,24,0,7,0,18,0,30,0\n10,0,1,0,13,0,4,0,36,0,34,0\n31,0,39,0,20,0,33,0,35,0,26,0\n38,0,2,0,37,0,32,0,6,0,14,0\n17,0,29,0,16,0,23,0,27,0,28,0\n34,0,18,0,8,0,9,0,12,0,5,0\n33,0,14,0,30,0,4,0,19,0,1,0\n35,0,20,0,27,0,24,0,32,0,11,0\n31,0,29,0,37,0,38,0,15,0,6,0\n10,0,16,0,7,0,3,0,39,0,22,0\n36,0,26,0,23,0,2,0,28,0,21,0\n13,0,17,0,33,0,25,0,15,0,11,0\n16,0,9,0,1,0,38,0,3,0,35,0\n2,0,18,0,32,0,10,0,34,0,14,0\n23,0,30,0,28,0,8,0,6,0,20,0\n37,0,39,0,27,0,5,0,25,0,4,0\n7,0,26,0,21,0,17,0,31,0,12,0\n22,0,36,0,24,0,29,0,13,0,19,0\n14,0,15,0,35,0,25,0,3,0,9,0\n4,0,18,0,17,0,26,0,39,0,5,0\n28,0,34,0,6,0,21,0,24,0,13,0\n12,0,10,0,32,0,11,0,31,0,23,0\n22,0,8,0,33,0,36,0,7,0,37,0\n20,0,2,0,16,0,1,0,27,0,29,0\n19,0,31,0,25,0,38,0,30,0,13,0\n6,0,36,0,35,0,17,0,15,0,39,0\n23,0,7,0,9,0,34,0,2,0,26,0\n10,0,21,0,11,0,1,0,37,0,14,0\n18,0,19,0,38,0,33,0,28,0,20,0\n4,0,24,0,12,0,3,0,8,0,29,0\n22,0,16,0,30,0,5,0,27,0,32,0\n7,0,31,0,14,0,28,0,13,0,39,0\n10,0,37,0,4,0,12,0,35,0,29,0\n33,0,32,0,38,0,17,0,30,0,21,0\n19,0,27,0,6,0,20,0,9,0,34,0\n5,0,36,0,11,0,3,0,16,0,26,0\n23,0,2,0,1,0,18,0,22,0,15,0\n25,0,12,0,34,0,8,0,24,0,33,0\n"
  },
  {
    "path": "schedules/39_14.csv",
    "content": "33,0,34,0,39,0,7,0,14,0,18,0\n5,0,24,0,19,0,26,0,38,0,15,0\n12,0,25,0,11,0,16,0,21,0,13,0\n9,0,36,0,28,0,29,0,32,0,27,0\n17,0,6,0,10,0,22,0,23,0,37,0\n3,0,1,0,2,0,31,0,8,0,4,0\n30,0,20,0,21,0,35,0,32,0,9,0\n5,0,13,0,29,0,33,0,27,0,19,0\n22,0,18,0,1,0,25,0,6,0,16,0\n37,0,31,0,20,0,14,0,30,0,11,0\n7,0,38,0,34,0,24,0,15,0,10,0\n2,0,17,0,39,0,3,0,8,0,35,0\n28,0,26,0,23,0,36,0,12,0,4,0\n37,0,30,0,19,0,1,0,24,0,16,0\n13,0,31,0,15,0,18,0,29,0,6,0\n38,0,36,0,33,0,17,0,14,0,11,0\n22,0,9,0,25,0,7,0,8,0,5,0\n32,0,12,0,3,0,39,0,27,0,20,0\n4,0,10,0,2,0,35,0,21,0,26,0\n23,0,8,0,1,0,28,0,34,0,11,0\n39,0,37,0,24,0,38,0,19,0,9,0\n4,0,21,0,33,0,25,0,2,0,36,0\n5,0,18,0,26,0,6,0,10,0,13,0\n34,0,23,0,14,0,28,0,16,0,31,0\n7,0,15,0,32,0,30,0,17,0,3,0\n29,0,20,0,22,0,35,0,27,0,12,0\n34,0,13,0,26,0,5,0,38,0,2,0\n19,0,4,0,23,0,18,0,9,0,39,0\n16,0,37,0,28,0,22,0,10,0,3,0\n8,0,12,0,15,0,27,0,32,0,14,0\n6,0,7,0,30,0,29,0,36,0,33,0\n11,0,24,0,20,0,31,0,21,0,25,0\n35,0,1,0,10,0,17,0,13,0,8,0\n34,0,14,0,12,0,29,0,26,0,3,0\n16,0,5,0,4,0,15,0,11,0,22,0\n7,0,27,0,9,0,39,0,35,0,6,0\n18,0,31,0,24,0,20,0,1,0,36,0\n23,0,37,0,17,0,19,0,32,0,21,0\n30,0,38,0,25,0,28,0,33,0,2,0\n18,0,27,0,8,0,10,0,7,0,16,0\n13,0,9,0,11,0,22,0,4,0,17,0\n35,0,38,0,36,0,37,0,33,0,25,0\n2,0,20,0,26,0,23,0,15,0,3,0\n12,0,29,0,21,0,5,0,34,0,1,0\n39,0,32,0,28,0,24,0,31,0,6,0\n19,0,14,0,8,0,30,0,2,0,9,0\n21,0,7,0,22,0,13,0,33,0,20,0\n32,0,23,0,6,0,34,0,24,0,25,0\n10,0,29,0,28,0,5,0,31,0,37,0\n35,0,15,0,19,0,36,0,3,0,11,0\n38,0,14,0,16,0,1,0,4,0,39,0\n30,0,27,0,26,0,12,0,17,0,18,0\n36,0,15,0,6,0,22,0,20,0,34,0\n11,0,33,0,1,0,24,0,9,0,32,0\n2,0,29,0,14,0,26,0,17,0,31,0\n7,0,35,0,4,0,19,0,10,0,23,0\n30,0,13,0,16,0,39,0,38,0,21,0\n37,0,27,0,3,0,8,0,25,0,28,0\n5,0,12,0,9,0,18,0,23,0,36,0\n26,0,11,0,32,0,20,0,7,0,15,0\n33,0,8,0,6,0,4,0,37,0,13,0\n22,0,2,0,12,0,5,0,39,0,30,0\n16,0,35,0,29,0,24,0,28,0,14,0\n27,0,25,0,17,0,31,0,19,0,1,0\n21,0,3,0,34,0,10,0,18,0,38,0\n5,0,20,0,2,0,23,0,16,0,9,0\n25,0,39,0,14,0,19,0,11,0,29,0\n15,0,35,0,18,0,30,0,4,0,28,0\n21,0,38,0,10,0,12,0,13,0,1,0\n8,0,24,0,26,0,33,0,3,0,17,0\n36,0,31,0,7,0,27,0,22,0,6,0\n37,0,32,0,10,0,34,0,15,0,30,0\n33,0,14,0,9,0,12,0,25,0,20,0\n27,0,11,0,4,0,13,0,24,0,2,0\n31,0,38,0,8,0,29,0,7,0,37,0\n6,0,3,0,39,0,21,0,23,0,5,0\n34,0,19,0,18,0,17,0,35,0,28,0\n26,0,16,0,1,0,32,0,22,0,36,0\n5,0,27,0,10,0,4,0,6,0,14,0\n30,0,24,0,12,0,7,0,2,0,11,0\n28,0,19,0,22,0,1,0,21,0,38,0\n17,0,25,0,29,0,32,0,20,0,8,0\n18,0,3,0,16,0,9,0,34,0,31,0\n23,0,13,0,39,0,37,0,36,0,26,0\n33,0,35,0,22,0,15,0,1,0,14,0\n20,0,19,0,6,0,34,0,29,0,4,0\n17,0,32,0,2,0,5,0,25,0,18,0\n24,0,33,0,16,0,23,0,30,0,35,0\n13,0,3,0,7,0,12,0,37,0,38,0\n8,0,36,0,21,0,15,0,28,0,27,0\n11,0,31,0,39,0,26,0,10,0,9,0\n"
  },
  {
    "path": "schedules/39_2.csv",
    "content": "20,0,28,0,13,0,22,0,19,0,5,0\n26,0,25,0,23,0,38,0,37,0,27,0\n16,0,15,0,14,0,7,0,6,0,31,0\n2,0,34,0,29,0,21,0,11,0,9,0\n8,0,32,0,1,0,30,0,10,0,33,0\n12,0,24,0,17,0,36,0,35,0,18,0\n3,0,4,0,22,0,39,0,26,0,6,0\n7,0,10,0,11,0,37,0,25,0,28,0\n36,0,21,0,13,0,23,0,16,0,32,0\n1,0,9,0,18,0,38,0,14,0,4,0\n27,0,17,0,19,0,15,0,8,0,34,0\n35,0,2,0,31,0,3,0,33,0,5,0\n12,0,30,0,29,0,24,0,20,0,39,0\n"
  },
  {
    "path": "schedules/39_3.csv",
    "content": "10,0,34,0,25,0,3,0,13,0,36,0\n22,0,37,0,30,0,6,0,18,0,7,0\n20,0,38,0,33,0,31,0,28,0,9,0\n5,0,15,0,12,0,11,0,32,0,35,0\n4,0,2,0,8,0,29,0,23,0,19,0\n26,0,1,0,17,0,39,0,16,0,24,0\n21,0,27,0,37,0,14,0,11,0,38,0\n23,1,12,0,2,0,36,1,6,0,33,0\n39,1,35,0,25,0,4,0,18,0,16,0\n7,0,20,0,34,0,8,0,1,0,5,0\n22,0,24,0,31,0,27,0,10,0,15,0\n13,0,30,0,14,0,29,0,28,0,26,0\n19,0,3,0,9,0,21,0,32,0,17,0\n4,0,33,0,11,0,36,0,22,0,1,0\n8,0,38,0,39,0,30,0,10,0,12,0\n27,0,23,0,16,0,7,0,13,0,9,0\n35,0,26,0,19,0,37,0,3,0,20,0\n32,0,14,0,18,0,24,0,34,0,2,0\n29,0,17,0,6,0,31,0,5,0,25,0\n15,0,28,0,36,0,21,0,23,0,39,0\n"
  },
  {
    "path": "schedules/39_4.csv",
    "content": "20,0,1,0,33,0,6,0,7,0,29,0\n18,0,27,0,37,0,31,0,35,0,5,0\n3,0,26,0,19,0,14,0,25,0,12,0\n36,0,17,0,34,0,16,0,39,0,32,0\n24,0,2,0,38,0,21,0,22,0,10,0\n8,0,15,0,11,0,4,0,13,0,9,0\n28,0,23,0,39,0,30,0,29,0,19,0\n35,0,10,0,14,0,1,0,36,0,21,0\n2,0,16,0,9,0,3,0,27,0,20,0\n22,0,12,0,4,0,5,0,33,0,34,0\n31,0,24,0,17,0,30,0,8,0,7,0\n25,0,11,0,6,0,37,0,15,0,23,0\n18,0,26,0,13,0,32,0,28,0,38,0\n29,0,8,0,3,0,36,0,10,0,5,0\n11,0,27,0,19,0,22,0,1,0,17,0\n37,0,30,0,32,0,12,0,9,0,38,0\n31,0,21,0,23,0,26,0,33,0,16,0\n7,0,28,0,4,0,2,0,25,0,35,0\n18,0,14,0,15,0,39,0,20,0,24,0\n6,0,13,0,30,0,34,0,27,0,10,0\n1,0,3,0,31,0,23,0,4,0,32,0\n5,0,38,0,16,0,19,0,15,0,7,0\n33,0,17,0,14,0,2,0,37,0,13,0\n34,0,21,0,29,0,25,0,9,0,18,0\n36,0,12,0,20,0,11,0,24,0,28,0\n35,0,22,0,39,0,6,0,8,0,26,0\n"
  },
  {
    "path": "schedules/39_5.csv",
    "content": "31,0,19,0,5,0,24,0,2,0,13,0\n14,0,29,0,9,0,22,0,23,0,36,0\n26,0,8,0,6,0,7,0,33,0,16,0\n1,0,3,0,27,0,12,0,21,0,18,0\n17,0,35,0,10,0,11,0,34,0,20,0\n4,0,25,0,32,0,39,0,38,0,30,0\n28,0,15,0,1,0,37,0,7,0,6,0\n36,0,18,0,35,0,26,0,31,0,21,0\n39,0,14,0,32,0,16,0,10,0,24,0\n11,0,19,0,4,0,8,0,29,0,37,0\n25,0,17,0,23,0,28,0,13,0,3,0\n38,0,12,0,22,0,33,0,20,0,5,0\n34,0,30,0,9,0,2,0,15,0,27,0\n4,1,39,0,37,0,23,1,31,0,3,0\n11,1,36,0,10,0,7,0,5,0,25,0\n27,0,13,0,26,0,14,0,20,0,38,0\n1,0,16,0,30,0,19,0,17,0,22,0\n2,0,35,0,12,0,8,0,32,0,28,0\n29,0,33,0,18,0,24,0,34,0,15,0\n21,0,6,0,20,0,9,0,39,0,19,0\n13,0,7,0,22,0,4,0,35,0,27,0\n30,0,2,0,28,0,10,0,29,0,26,0\n11,0,24,0,33,0,1,0,21,0,23,0\n25,0,12,0,14,0,31,0,6,0,34,0\n38,0,16,0,8,0,15,0,36,0,3,0\n9,0,37,0,17,0,32,0,18,0,5,0\n23,0,7,0,24,0,12,0,20,0,30,0\n3,0,25,0,33,0,19,0,14,0,35,0\n37,0,11,0,15,0,26,0,39,0,22,0\n21,0,34,0,5,0,16,0,4,0,28,0\n31,0,13,0,8,0,1,0,10,0,9,0\n29,0,6,0,36,0,32,0,17,0,27,0\n2,0,38,0,4,0,18,0,23,0,11,0\n"
  },
  {
    "path": "schedules/39_6.csv",
    "content": "34,0,22,0,8,0,20,0,11,0,7,0\n17,0,18,0,32,0,14,0,25,0,3,0\n24,0,12,0,5,0,6,0,19,0,21,0\n27,0,29,0,1,0,4,0,36,0,2,0\n9,0,31,0,28,0,13,0,26,0,33,0\n39,0,16,0,37,0,23,0,30,0,35,0\n10,0,38,0,17,0,15,0,7,0,24,0\n19,0,33,0,1,0,20,0,21,0,32,0\n2,0,28,0,14,0,3,0,34,0,5,0\n15,0,8,0,9,0,36,0,37,0,25,0\n27,0,22,0,6,0,23,0,26,0,39,0\n13,0,35,0,4,0,10,0,11,0,12,0\n18,0,31,0,38,0,30,0,29,0,16,0\n1,0,2,0,23,0,26,0,8,0,24,0\n20,0,35,0,6,0,36,0,17,0,9,0\n39,0,29,0,22,0,13,0,15,0,19,0\n30,0,7,0,3,0,12,0,21,0,25,0\n4,0,34,0,14,0,16,0,33,0,38,0\n10,0,37,0,18,0,28,0,27,0,5,0\n31,0,11,0,2,0,32,0,39,0,25,0\n13,0,6,0,3,0,34,0,1,0,15,0\n4,0,38,0,12,0,8,0,28,0,18,0\n26,0,37,0,11,0,17,0,16,0,19,0\n36,0,31,0,21,0,10,0,14,0,22,0\n32,0,24,0,30,0,20,0,27,0,9,0\n23,0,7,0,29,0,33,0,5,0,35,0\n26,0,21,0,15,0,18,0,11,0,4,0\n16,0,28,0,25,0,24,0,22,0,1,0\n23,0,32,0,36,0,38,0,34,0,13,0\n8,0,35,0,19,0,27,0,3,0,31,0\n2,0,10,0,33,0,30,0,12,0,17,0\n14,0,29,0,20,0,6,0,37,0,7,0\n9,0,5,0,1,0,39,0,38,0,11,0\n27,0,17,0,35,0,21,0,28,0,22,0\n18,0,13,0,16,0,2,0,7,0,19,0\n30,0,5,0,6,0,32,0,8,0,4,0\n26,0,9,0,25,0,34,0,10,0,29,0\n20,0,12,0,23,0,31,0,15,0,14,0\n39,0,36,0,24,0,3,0,33,0,37,0\n"
  },
  {
    "path": "schedules/39_7.csv",
    "content": "25,0,4,0,22,0,6,0,15,0,21,0\n20,0,9,0,11,0,5,0,36,0,13,0\n17,0,23,0,19,0,1,0,27,0,7,0\n30,0,39,0,8,0,10,0,26,0,2,0\n18,0,3,0,38,0,14,0,29,0,12,0\n37,0,32,0,28,0,24,0,34,0,33,0\n35,0,16,0,21,0,31,0,6,0,36,0\n15,0,18,0,5,0,23,0,8,0,27,0\n33,0,3,0,22,0,13,0,20,0,26,0\n30,0,9,0,4,0,1,0,12,0,28,0\n10,0,37,0,7,0,14,0,31,0,38,0\n17,0,11,0,39,0,16,0,32,0,34,0\n24,0,35,0,2,0,29,0,19,0,25,0\n21,1,7,0,4,0,13,1,33,0,9,0\n5,1,31,0,28,0,1,0,26,0,36,0\n20,0,12,0,38,0,25,0,27,0,39,0\n23,0,6,0,29,0,17,0,34,0,8,0\n35,0,30,0,32,0,18,0,37,0,22,0\n3,0,11,0,10,0,15,0,19,0,24,0\n2,0,34,0,9,0,14,0,16,0,27,0\n22,0,12,0,5,0,35,0,37,0,17,0\n33,0,25,0,31,0,11,0,8,0,18,0\n2,0,13,0,28,0,38,0,10,0,23,0\n29,0,21,0,1,0,32,0,39,0,20,0\n24,0,6,0,3,0,7,0,30,0,36,0\n14,0,26,0,19,0,16,0,15,0,4,0\n21,0,11,0,12,0,28,0,10,0,29,0\n23,0,39,0,9,0,22,0,35,0,31,0\n26,0,34,0,18,0,7,0,13,0,25,0\n38,0,8,0,16,0,24,0,20,0,1,0\n27,0,17,0,36,0,14,0,30,0,33,0\n32,0,5,0,4,0,2,0,3,0,15,0\n37,0,19,0,20,0,6,0,9,0,18,0\n7,0,8,0,14,0,11,0,28,0,22,0\n27,0,24,0,31,0,17,0,4,0,13,0\n26,0,6,0,12,0,32,0,23,0,2,0\n5,0,19,0,34,0,38,0,21,0,30,0\n15,0,39,0,29,0,33,0,36,0,37,0\n10,0,1,0,16,0,25,0,35,0,3,0\n8,0,31,0,13,0,19,0,32,0,12,0\n21,0,26,0,27,0,11,0,37,0,6,0\n18,0,17,0,25,0,3,0,28,0,9,0\n33,0,16,0,29,0,30,0,5,0,23,0\n15,0,35,0,1,0,20,0,2,0,7,0\n36,0,10,0,22,0,34,0,4,0,38,0\n24,0,14,0,13,0,39,0,21,0,5,0\n"
  },
  {
    "path": "schedules/39_8.csv",
    "content": "6,0,10,0,16,0,20,0,33,0,4,0\n11,0,34,0,29,0,25,0,14,0,23,0\n15,0,19,0,8,0,17,0,12,0,27,0\n7,0,3,0,13,0,32,0,21,0,30,0\n18,0,1,0,22,0,38,0,28,0,2,0\n24,0,37,0,31,0,26,0,5,0,35,0\n39,0,8,0,4,0,9,0,36,0,27,0\n12,0,25,0,21,0,22,0,33,0,38,0\n14,0,32,0,37,0,6,0,26,0,17,0\n30,0,18,0,5,0,15,0,16,0,36,0\n29,0,39,0,13,0,31,0,19,0,34,0\n10,0,35,0,3,0,11,0,28,0,1,0\n24,0,23,0,2,0,7,0,9,0,20,0\n38,0,21,0,8,0,32,0,29,0,15,0\n36,0,1,0,19,0,13,0,31,0,11,0\n33,0,5,0,17,0,7,0,22,0,35,0\n16,0,24,0,25,0,6,0,28,0,39,0\n12,0,23,0,30,0,14,0,2,0,10,0\n20,0,27,0,26,0,3,0,9,0,18,0\n4,0,15,0,7,0,37,0,34,0,1,0\n36,0,39,0,12,0,35,0,6,0,30,0\n17,0,16,0,13,0,2,0,25,0,11,0\n33,0,19,0,23,0,26,0,38,0,37,0\n4,0,14,0,9,0,3,0,31,0,21,0\n10,0,34,0,18,0,24,0,32,0,22,0\n28,0,20,0,5,0,29,0,8,0,27,0\n14,0,38,0,19,0,30,0,16,0,7,0\n11,0,32,0,35,0,15,0,34,0,9,0\n10,0,20,0,1,0,25,0,5,0,39,0\n36,0,29,0,2,0,4,0,3,0,26,0\n12,0,18,0,28,0,13,0,21,0,37,0\n6,0,27,0,31,0,17,0,23,0,22,0\n33,0,1,0,2,0,24,0,8,0,14,0\n19,0,13,0,9,0,10,0,5,0,37,0\n12,0,34,0,32,0,16,0,20,0,31,0\n7,0,6,0,8,0,29,0,18,0,35,0\n3,0,24,0,39,0,17,0,38,0,15,0\n28,0,25,0,22,0,36,0,23,0,4,0\n30,0,26,0,11,0,27,0,21,0,33,0\n35,0,13,0,38,0,6,0,20,0,14,0\n22,0,8,0,3,0,37,0,19,0,16,0\n27,0,4,0,11,0,12,0,24,0,7,0\n32,0,23,0,5,0,39,0,33,0,18,0\n31,0,9,0,28,0,15,0,30,0,25,0\n36,0,10,0,21,0,2,0,34,0,17,0\n26,0,29,0,23,0,1,0,13,0,12,0\n25,0,4,0,35,0,32,0,18,0,19,0\n38,0,34,0,6,0,3,0,2,0,5,0\n27,0,24,0,15,0,33,0,14,0,36,0\n11,0,37,0,22,0,30,0,20,0,39,0\n26,0,7,0,31,0,8,0,10,0,28,0\n17,0,9,0,21,0,16,0,29,0,1,0\n"
  },
  {
    "path": "schedules/39_9.csv",
    "content": "13,0,10,0,8,0,1,0,33,0,27,0\n20,0,4,0,23,0,3,0,18,0,34,0\n31,0,9,0,30,0,26,0,11,0,17,0\n21,0,5,0,7,0,37,0,14,0,28,0\n36,0,35,0,19,0,38,0,15,0,16,0\n32,0,22,0,29,0,6,0,2,0,25,0\n39,0,28,0,3,0,12,0,24,0,13,0\n31,0,17,0,5,0,20,0,1,0,38,0\n32,0,11,0,2,0,21,0,16,0,36,0\n23,0,15,0,26,0,29,0,18,0,24,0\n4,0,9,0,25,0,34,0,7,0,8,0\n30,0,35,0,33,0,12,0,6,0,39,0\n27,0,10,0,37,0,22,0,19,0,14,0\n23,1,3,0,24,0,25,1,11,0,1,0\n26,0,34,0,2,0,28,1,13,0,6,0\n7,0,33,0,14,0,32,0,31,0,38,0\n10,0,21,0,18,0,39,0,15,0,17,0\n29,0,36,0,5,0,4,0,27,0,12,0\n9,0,22,0,16,0,20,0,19,0,30,0\n37,0,35,0,2,0,8,0,33,0,25,0\n1,0,6,0,24,0,4,0,36,0,10,0\n39,0,9,0,26,0,23,0,27,0,14,0\n22,0,35,0,38,0,21,0,11,0,34,0\n13,0,7,0,18,0,30,0,15,0,5,0\n17,0,28,0,12,0,8,0,37,0,32,0\n29,0,16,0,19,0,3,0,31,0,20,0\n25,0,24,0,38,0,9,0,18,0,27,0\n8,0,1,0,12,0,22,0,15,0,7,0\n26,0,16,0,20,0,33,0,21,0,28,0\n23,0,32,0,30,0,29,0,10,0,2,0\n17,0,34,0,36,0,19,0,5,0,39,0\n6,0,31,0,14,0,35,0,4,0,13,0\n11,0,37,0,15,0,3,0,32,0,27,0\n10,0,39,0,1,0,7,0,28,0,29,0\n21,0,20,0,25,0,36,0,23,0,13,0\n16,0,6,0,4,0,38,0,9,0,37,0\n2,0,18,0,12,0,11,0,31,0,19,0\n5,0,34,0,33,0,30,0,14,0,24,0\n17,0,8,0,35,0,3,0,22,0,26,0\n39,0,20,0,13,0,11,0,10,0,38,0\n21,0,29,0,37,0,1,0,34,0,9,0\n27,0,15,0,24,0,14,0,2,0,16,0\n6,0,33,0,19,0,7,0,17,0,23,0\n32,0,25,0,12,0,30,0,4,0,26,0\n28,0,8,0,22,0,18,0,36,0,31,0\n35,0,3,0,10,0,5,0,2,0,9,0\n20,0,24,0,17,0,27,0,6,0,7,0\n31,0,15,0,8,0,25,0,39,0,34,0\n14,0,21,0,38,0,30,0,12,0,3,0\n1,0,23,0,18,0,35,0,32,0,16,0\n19,0,28,0,26,0,11,0,5,0,4,0\n29,0,33,0,13,0,22,0,37,0,36,0\n12,0,16,0,34,0,10,0,25,0,17,0\n11,0,23,0,6,0,14,0,8,0,5,0\n30,0,27,0,36,0,31,0,35,0,28,0\n21,0,32,0,13,0,9,0,19,0,24,0\n4,0,37,0,39,0,2,0,22,0,20,0\n1,0,3,0,7,0,26,0,33,0,18,0\n38,0,23,0,28,0,29,0,15,0,25,0\n"
  },
  {
    "path": "schedules/40_1.csv",
    "content": "1,0,2,0,37,0,28,0,38,0,5,0\n13,0,20,0,15,0,9,0,22,0,7,0\n30,0,39,0,34,0,10,0,31,0,19,0\n23,0,35,0,40,0,6,0,32,0,29,0\n8,0,24,0,25,0,16,0,12,0,21,0\n26,0,33,0,36,0,4,0,17,0,18,0\n14,0,3,0,15,1,27,0,11,0,38,1\n"
  },
  {
    "path": "schedules/40_10.csv",
    "content": "5,0,15,0,7,0,17,0,36,0,12,0\n31,0,24,0,32,0,10,0,11,0,16,0\n20,0,9,0,28,0,25,0,40,0,35,0\n21,0,37,0,2,0,29,0,13,0,22,0\n39,0,33,0,26,0,3,0,6,0,8,0\n14,0,4,0,1,0,38,0,19,0,34,0\n27,0,18,0,7,0,23,0,30,0,24,0\n9,0,35,0,29,0,12,0,32,0,3,0\n22,0,14,0,5,0,20,0,33,0,16,0\n37,0,30,0,8,0,31,0,40,0,23,0\n25,0,21,0,1,0,34,0,27,0,36,0\n18,0,19,0,10,0,26,0,38,0,6,0\n13,0,15,0,17,0,39,0,4,0,2,0\n11,0,21,0,34,0,28,0,8,0,24,0\n12,1,19,0,7,0,16,1,32,0,9,0\n5,0,39,0,31,0,18,0,35,0,1,0\n40,0,10,0,36,0,20,0,2,0,22,0\n17,0,6,0,27,0,29,0,11,0,25,0\n13,0,38,0,37,0,14,0,33,0,23,0\n30,0,26,0,3,0,15,0,4,0,28,0\n29,0,2,0,31,0,34,0,25,0,24,0\n40,0,5,0,12,0,13,0,39,0,10,0\n16,0,17,0,28,0,9,0,27,0,37,0\n30,0,36,0,15,0,19,0,23,0,6,0\n1,0,38,0,8,0,22,0,3,0,18,0\n35,0,32,0,7,0,21,0,33,0,4,0\n26,0,11,0,12,0,14,0,20,0,40,0\n15,0,24,0,38,0,8,0,5,0,27,0\n34,0,28,0,3,0,13,0,6,0,16,0\n33,0,36,0,35,0,11,0,2,0,30,0\n17,0,19,0,32,0,37,0,18,0,20,0\n21,0,39,0,29,0,31,0,14,0,9,0\n10,0,25,0,22,0,23,0,26,0,7,0\n4,0,11,0,8,0,1,0,37,0,12,0\n35,0,16,0,21,0,40,0,6,0,15,0\n26,0,18,0,13,0,36,0,32,0,29,0\n25,0,2,0,5,0,39,0,19,0,3,0\n23,0,10,0,9,0,34,0,33,0,1,0\n14,0,27,0,24,0,22,0,30,0,4,0\n38,0,31,0,28,0,17,0,7,0,20,0\n23,0,37,0,11,0,12,0,34,0,15,0\n16,0,29,0,4,0,8,0,39,0,36,0\n14,0,3,0,17,0,40,0,24,0,7,0\n1,0,13,0,31,0,19,0,35,0,26,0\n5,0,33,0,10,0,27,0,28,0,21,0\n30,0,20,0,25,0,2,0,9,0,38,0\n6,0,18,0,34,0,32,0,22,0,40,0\n19,0,29,0,14,0,21,0,7,0,10,0\n38,0,35,0,39,0,24,0,36,0,37,0\n4,0,26,0,20,0,23,0,16,0,5,0\n30,0,32,0,1,0,8,0,25,0,17,0\n6,0,12,0,33,0,18,0,31,0,15,0\n22,0,27,0,11,0,13,0,3,0,9,0\n2,0,36,0,23,0,28,0,32,0,14,0\n38,0,33,0,40,0,15,0,1,0,29,0\n25,0,6,0,9,0,37,0,4,0,5,0\n16,0,34,0,26,0,35,0,10,0,17,0\n22,0,19,0,24,0,12,0,39,0,28,0\n20,0,3,0,11,0,30,0,21,0,18,0\n31,0,7,0,8,0,27,0,13,0,2,0\n35,0,22,0,23,0,5,0,29,0,17,0\n28,0,18,0,25,0,14,0,12,0,16,0\n19,0,8,0,40,0,7,0,33,0,11,0\n4,0,3,0,36,0,31,0,37,0,10,0\n32,0,34,0,20,0,27,0,15,0,39,0\n6,0,24,0,2,0,9,0,26,0,1,0\n21,0,13,0,12,0,30,0,38,0,16,0\n"
  },
  {
    "path": "schedules/40_11.csv",
    "content": "39,0,37,0,1,0,23,0,27,0,12,0\n8,0,15,0,25,0,16,0,5,0,38,0\n24,0,17,0,4,0,21,0,30,0,35,0\n28,0,26,0,9,0,18,0,22,0,31,0\n7,0,2,0,3,0,29,0,20,0,32,0\n6,0,40,0,36,0,33,0,19,0,14,0\n13,0,10,0,4,0,34,0,11,0,25,0\n9,0,29,0,24,0,27,0,15,0,32,0\n1,0,20,0,8,0,36,0,14,0,31,0\n10,0,35,0,33,0,7,0,26,0,39,0\n23,0,38,0,18,0,11,0,19,0,30,0\n13,0,37,0,2,0,28,0,5,0,40,0\n34,0,3,0,6,0,16,0,21,0,12,0\n17,0,10,0,8,0,22,0,19,0,32,0\n36,1,28,0,2,0,15,1,4,0,31,0\n26,1,27,0,38,0,40,1,33,0,13,0\n24,0,22,0,34,0,3,0,1,0,11,0\n35,0,16,0,6,0,18,0,30,0,29,0\n5,0,25,0,9,0,12,0,20,0,39,0\n7,0,23,0,14,0,37,0,17,0,21,0\n31,0,26,0,34,0,40,0,29,0,38,0\n24,0,20,0,16,0,39,0,28,0,10,0\n11,0,12,0,22,0,19,0,35,0,15,0\n2,0,30,0,5,0,14,0,27,0,3,0\n33,0,1,0,36,0,32,0,13,0,18,0\n25,0,21,0,7,0,8,0,37,0,9,0\n17,0,23,0,15,0,6,0,4,0,20,0\n26,0,16,0,33,0,24,0,12,0,19,0\n9,0,13,0,21,0,29,0,10,0,5,0\n39,0,36,0,23,0,17,0,28,0,3,0\n1,0,32,0,34,0,38,0,25,0,4,0\n30,0,27,0,31,0,11,0,37,0,6,0\n35,0,7,0,22,0,40,0,2,0,8,0\n14,0,29,0,4,0,18,0,25,0,1,0\n31,0,3,0,39,0,10,0,6,0,38,0\n20,0,35,0,13,0,26,0,21,0,8,0\n22,0,23,0,40,0,16,0,18,0,36,0\n12,0,5,0,15,0,30,0,37,0,32,0\n34,0,14,0,28,0,27,0,7,0,19,0\n9,0,17,0,11,0,33,0,2,0,24,0\n13,0,29,0,8,0,3,0,4,0,23,0\n26,0,20,0,30,0,37,0,34,0,40,0\n11,0,18,0,24,0,7,0,5,0,36,0\n25,0,16,0,10,0,17,0,27,0,22,0\n19,0,6,0,1,0,2,0,9,0,35,0\n31,0,38,0,33,0,21,0,15,0,39,0\n28,0,32,0,11,0,14,0,12,0,8,0\n6,0,22,0,30,0,7,0,34,0,4,0\n18,0,27,0,39,0,21,0,20,0,2,0\n5,0,17,0,19,0,1,0,26,0,40,0\n29,0,12,0,31,0,24,0,13,0,14,0\n9,0,32,0,38,0,28,0,16,0,23,0\n37,0,25,0,35,0,3,0,10,0,36,0\n33,0,39,0,8,0,15,0,30,0,34,0\n16,0,19,0,13,0,24,0,7,0,31,0\n36,0,21,0,32,0,22,0,5,0,1,0\n12,0,4,0,40,0,10,0,9,0,27,0\n17,0,29,0,35,0,38,0,37,0,28,0\n18,0,20,0,3,0,33,0,11,0,15,0\n14,0,6,0,2,0,25,0,26,0,23,0\n29,0,27,0,21,0,19,0,8,0,36,0\n1,0,31,0,28,0,7,0,33,0,30,0\n11,0,26,0,14,0,16,0,39,0,9,0\n2,0,12,0,18,0,38,0,34,0,17,0\n10,0,20,0,15,0,23,0,6,0,13,0\n3,0,25,0,32,0,24,0,35,0,40,0\n5,0,37,0,26,0,22,0,4,0,33,0\n14,0,15,0,16,0,1,0,10,0,2,0\n30,0,38,0,3,0,9,0,36,0,20,0\n19,0,37,0,4,0,39,0,13,0,22,0\n11,0,40,0,21,0,29,0,28,0,25,0\n5,0,34,0,27,0,35,0,31,0,23,0\n8,0,32,0,24,0,6,0,18,0,17,0\n7,0,15,0,40,0,12,0,36,0,26,0\n"
  },
  {
    "path": "schedules/40_12.csv",
    "content": "15,0,16,0,4,0,39,0,6,0,30,0\n13,0,17,0,26,0,37,0,27,0,5,0\n31,0,36,0,9,0,1,0,7,0,2,0\n38,0,32,0,35,0,34,0,21,0,40,0\n33,0,25,0,11,0,28,0,3,0,24,0\n22,0,14,0,19,0,18,0,12,0,20,0\n8,0,29,0,21,0,10,0,23,0,5,0\n17,0,3,0,4,0,36,0,16,0,26,0\n24,0,32,0,15,0,38,0,9,0,33,0\n12,0,11,0,23,0,2,0,40,0,39,0\n13,0,7,0,14,0,1,0,19,0,29,0\n31,0,20,0,34,0,6,0,28,0,18,0\n10,0,30,0,27,0,35,0,22,0,8,0\n37,0,14,0,39,0,25,0,2,0,5,0\n28,0,34,0,9,0,13,0,12,0,16,0\n36,0,4,0,32,0,23,0,35,0,27,0\n17,0,30,0,22,0,1,0,24,0,38,0\n20,0,7,0,11,0,21,0,37,0,10,0\n40,0,15,0,33,0,19,0,25,0,31,0\n3,0,29,0,18,0,26,0,6,0,8,0\n28,0,38,0,37,0,9,0,4,0,10,0\n31,0,39,0,22,0,2,0,35,0,13,0\n40,0,18,0,16,0,1,0,17,0,15,0\n33,0,6,0,32,0,8,0,7,0,30,0\n34,0,23,0,26,0,27,0,29,0,11,0\n25,0,14,0,12,0,36,0,20,0,21,0\n3,0,19,0,40,0,5,0,24,0,8,0\n9,0,1,0,6,0,32,0,26,0,11,0\n23,0,37,0,22,0,33,0,16,0,14,0\n3,0,21,0,2,0,30,0,4,0,34,0\n5,0,17,0,12,0,7,0,15,0,31,0\n39,0,20,0,28,0,27,0,19,0,38,0\n35,0,10,0,36,0,24,0,29,0,25,0\n13,0,37,0,32,0,18,0,23,0,15,0\n34,0,16,0,1,0,33,0,5,0,20,0\n30,0,26,0,35,0,22,0,28,0,7,0\n29,0,14,0,40,0,3,0,38,0,39,0\n10,0,25,0,8,0,9,0,17,0,21,0\n18,0,2,0,24,0,19,0,4,0,12,0\n6,0,11,0,36,0,13,0,31,0,27,0\n17,0,20,0,10,0,14,0,3,0,9,0\n24,0,12,0,22,0,5,0,32,0,40,0\n28,0,2,0,27,0,29,0,15,0,36,0\n38,0,23,0,16,0,7,0,6,0,35,0\n19,0,8,0,34,0,37,0,1,0,11,0\n21,0,33,0,39,0,18,0,31,0,26,0\n13,0,30,0,5,0,4,0,25,0,40,0\n28,0,17,0,35,0,2,0,20,0,6,0\n27,0,16,0,24,0,21,0,1,0,14,0\n15,0,25,0,34,0,22,0,11,0,10,0\n19,0,7,0,9,0,39,0,36,0,23,0\n29,0,37,0,12,0,30,0,32,0,31,0\n4,0,38,0,26,0,33,0,8,0,13,0\n3,0,6,0,27,0,18,0,25,0,22,0\n19,0,16,0,20,0,9,0,29,0,30,0\n35,0,5,0,39,0,17,0,11,0,8,0\n7,0,24,0,21,0,28,0,13,0,15,0\n12,0,1,0,31,0,4,0,23,0,14,0\n18,0,34,0,37,0,40,0,38,0,36,0\n32,0,2,0,10,0,33,0,26,0,3,0\n9,0,8,0,15,0,35,0,20,0,14,0\n4,0,18,0,11,0,16,0,29,0,22,0\n6,0,13,0,40,0,37,0,33,0,17,0\n27,0,7,0,25,0,2,0,38,0,12,0\n28,0,31,0,5,0,3,0,23,0,32,0\n30,0,36,0,1,0,10,0,39,0,34,0\n26,0,24,0,37,0,21,0,19,0,35,0\n29,0,28,0,33,0,40,0,27,0,17,0\n3,0,25,0,1,0,39,0,32,0,7,0\n11,0,9,0,5,0,14,0,30,0,18,0\n6,0,38,0,10,0,31,0,16,0,2,0\n26,0,22,0,15,0,36,0,34,0,12,0\n23,0,20,0,8,0,13,0,24,0,4,0\n21,0,38,0,11,0,19,0,5,0,6,0\n33,0,35,0,1,0,9,0,39,0,12,0\n40,0,24,0,31,0,20,0,26,0,27,0\n23,0,2,0,29,0,25,0,37,0,30,0\n36,0,14,0,8,0,32,0,28,0,16,0\n22,0,21,0,4,0,7,0,17,0,34,0\n18,0,19,0,13,0,15,0,10,0,3,0\n"
  },
  {
    "path": "schedules/40_13.csv",
    "content": "31,0,7,0,29,0,11,0,37,0,35,0\n24,0,3,0,40,0,27,0,20,0,16,0\n23,0,39,0,30,0,33,0,4,0,25,0\n2,0,10,0,15,0,19,0,17,0,14,0\n18,0,1,0,9,0,13,0,12,0,22,0\n5,0,32,0,38,0,28,0,8,0,6,0\n26,0,34,0,14,0,36,0,21,0,31,0\n17,0,35,0,16,0,19,0,39,0,10,0\n29,0,12,0,30,0,13,0,24,0,28,0\n38,0,15,0,1,0,36,0,32,0,27,0\n4,0,6,0,2,0,7,0,9,0,20,0\n40,0,11,0,25,0,23,0,18,0,34,0\n26,0,21,0,5,0,8,0,33,0,3,0\n37,0,28,0,12,0,22,0,27,0,19,0\n10,1,14,0,1,0,7,1,6,0,11,0\n23,0,38,0,24,0,26,0,17,0,25,0\n31,0,22,0,8,0,18,0,2,0,29,0\n15,0,13,0,33,0,4,0,36,0,40,0\n34,0,20,0,5,0,16,0,9,0,30,0\n32,0,3,0,37,0,35,0,21,0,39,0\n25,0,8,0,23,0,7,0,1,0,13,0\n18,0,10,0,20,0,38,0,33,0,6,0\n26,0,27,0,39,0,22,0,5,0,36,0\n29,0,11,0,16,0,15,0,40,0,9,0\n37,0,31,0,17,0,12,0,21,0,24,0\n34,0,19,0,2,0,30,0,28,0,3,0\n35,0,4,0,22,0,14,0,32,0,25,0\n10,0,23,0,6,0,38,0,13,0,31,0\n36,0,15,0,19,0,3,0,29,0,9,0\n26,0,35,0,30,0,12,0,39,0,40,0\n20,0,1,0,33,0,28,0,14,0,16,0\n34,0,27,0,24,0,21,0,2,0,7,0\n37,0,8,0,18,0,5,0,17,0,4,0\n11,0,12,0,19,0,32,0,31,0,20,0\n40,0,35,0,28,0,34,0,15,0,6,0\n27,0,33,0,9,0,39,0,4,0,38,0\n21,0,1,0,17,0,29,0,26,0,32,0\n8,0,30,0,36,0,10,0,24,0,7,0\n13,0,23,0,5,0,11,0,22,0,3,0\n25,0,16,0,18,0,2,0,14,0,37,0\n10,0,31,0,40,0,4,0,1,0,26,0\n35,0,3,0,38,0,39,0,34,0,29,0\n32,0,28,0,9,0,24,0,33,0,36,0\n19,0,16,0,7,0,12,0,5,0,18,0\n13,0,6,0,27,0,2,0,17,0,23,0\n15,0,20,0,11,0,22,0,21,0,25,0\n8,0,14,0,9,0,37,0,30,0,40,0\n33,0,7,0,39,0,17,0,34,0,28,0\n31,0,3,0,18,0,27,0,25,0,1,0\n16,0,22,0,23,0,21,0,19,0,32,0\n8,0,13,0,20,0,26,0,15,0,37,0\n2,0,35,0,36,0,11,0,38,0,30,0\n12,0,6,0,14,0,4,0,29,0,10,0\n24,0,25,0,31,0,5,0,40,0,7,0\n22,0,34,0,33,0,15,0,8,0,17,0\n32,0,12,0,1,0,2,0,20,0,30,0\n39,0,16,0,3,0,11,0,23,0,14,0\n26,0,36,0,9,0,18,0,13,0,35,0\n38,0,29,0,21,0,5,0,27,0,10,0\n19,0,4,0,28,0,37,0,6,0,24,0\n17,0,12,0,33,0,25,0,35,0,9,0\n2,0,27,0,3,0,14,0,7,0,18,0\n22,0,10,0,28,0,4,0,31,0,16,0\n5,0,37,0,1,0,15,0,29,0,23,0\n34,0,13,0,11,0,20,0,19,0,24,0\n39,0,36,0,6,0,40,0,21,0,8,0\n26,0,38,0,7,0,32,0,30,0,15,0\n29,0,22,0,20,0,33,0,31,0,2,0\n4,0,18,0,21,0,28,0,39,0,11,0\n34,0,32,0,40,0,37,0,10,0,13,0\n23,0,26,0,19,0,14,0,5,0,35,0\n36,0,25,0,12,0,8,0,38,0,16,0\n24,0,30,0,17,0,3,0,1,0,6,0\n9,0,4,0,13,0,27,0,7,0,35,0\n21,0,33,0,37,0,25,0,19,0,38,0\n32,0,8,0,11,0,3,0,26,0,10,0\n28,0,18,0,27,0,20,0,40,0,23,0\n15,0,5,0,39,0,24,0,2,0,1,0\n29,0,17,0,36,0,34,0,16,0,12,0\n31,0,14,0,30,0,22,0,6,0,9,0\n20,0,25,0,28,0,10,0,35,0,8,0\n4,0,37,0,7,0,34,0,1,0,36,0\n24,0,14,0,29,0,22,0,18,0,38,0\n32,0,39,0,13,0,15,0,31,0,12,0\n11,0,17,0,27,0,33,0,19,0,30,0\n5,0,2,0,16,0,6,0,26,0,40,0\n9,0,21,0,10,0,3,0,23,0,7,0\n"
  },
  {
    "path": "schedules/40_14.csv",
    "content": "16,0,3,0,33,0,29,0,24,0,38,0\n26,0,40,0,1,0,20,0,5,0,12,0\n35,0,10,0,34,0,30,0,36,0,4,0\n37,0,17,0,32,0,15,0,28,0,25,0\n21,0,22,0,6,0,8,0,7,0,27,0\n31,0,2,0,23,0,39,0,14,0,13,0\n18,0,11,0,36,0,19,0,9,0,5,0\n27,0,1,0,34,0,7,0,16,0,35,0\n22,0,31,0,14,0,26,0,15,0,32,0\n11,0,28,0,19,0,29,0,25,0,9,0\n12,0,2,0,13,0,21,0,10,0,33,0\n23,0,17,0,6,0,4,0,18,0,40,0\n38,0,39,0,20,0,24,0,8,0,30,0\n3,0,25,0,27,0,37,0,26,0,13,0\n18,1,29,0,34,0,7,1,10,0,2,0\n6,1,40,0,38,0,17,1,22,0,33,0\n36,0,5,0,8,0,31,0,14,0,12,0\n24,0,11,0,37,0,28,0,35,0,1,0\n23,0,32,0,19,0,20,0,3,0,15,0\n16,0,4,0,9,0,21,0,30,0,39,0\n28,0,2,0,26,0,17,0,38,0,33,0\n35,0,8,0,23,0,37,0,6,0,25,0\n4,0,31,0,7,0,19,0,12,0,3,0\n34,0,32,0,9,0,24,0,18,0,1,0\n15,0,27,0,5,0,22,0,40,0,16,0\n14,0,29,0,36,0,13,0,21,0,20,0\n10,0,30,0,18,0,39,0,11,0,9,0\n15,0,35,0,38,0,23,0,34,0,12,0\n40,0,21,0,25,0,31,0,1,0,29,0\n6,0,27,0,39,0,2,0,19,0,14,0\n13,0,22,0,30,0,26,0,4,0,11,0\n7,0,17,0,24,0,28,0,36,0,8,0\n10,0,16,0,37,0,33,0,32,0,5,0\n20,0,2,0,14,0,3,0,18,0,22,0\n38,0,36,0,1,0,11,0,15,0,23,0\n7,0,12,0,30,0,32,0,21,0,29,0\n28,0,20,0,27,0,13,0,9,0,37,0\n5,0,6,0,40,0,33,0,25,0,31,0\n35,0,26,0,19,0,24,0,10,0,4,0\n39,0,17,0,8,0,3,0,16,0,34,0\n22,0,5,0,11,0,2,0,30,0,9,0\n14,0,28,0,4,0,21,0,38,0,27,0\n33,0,26,0,23,0,16,0,25,0,8,0\n3,0,24,0,13,0,32,0,10,0,6,0\n7,0,19,0,29,0,31,0,17,0,35,0\n37,0,18,0,1,0,12,0,39,0,36,0\n15,0,34,0,33,0,40,0,20,0,23,0\n29,0,11,0,3,0,19,0,17,0,21,0\n39,0,1,0,2,0,38,0,12,0,25,0\n6,0,36,0,13,0,35,0,30,0,32,0\n10,0,26,0,8,0,14,0,9,0,27,0\n24,0,15,0,40,0,31,0,34,0,37,0\n18,0,5,0,16,0,7,0,28,0,22,0\n4,0,39,0,29,0,20,0,35,0,11,0\n30,0,14,0,26,0,19,0,37,0,40,0\n28,0,31,0,18,0,10,0,3,0,1,0\n8,0,20,0,38,0,24,0,12,0,22,0\n15,0,21,0,9,0,17,0,16,0,6,0\n7,0,33,0,36,0,27,0,2,0,32,0\n25,0,5,0,34,0,4,0,23,0,13,0\n15,0,1,0,30,0,28,0,17,0,3,0\n19,0,39,0,32,0,40,0,8,0,12,0\n4,0,9,0,6,0,37,0,26,0,29,0\n2,0,21,0,16,0,13,0,38,0,31,0\n11,0,14,0,33,0,27,0,22,0,23,0\n25,0,20,0,7,0,10,0,5,0,24,0\n36,0,34,0,16,0,35,0,18,0,6,0\n12,0,27,0,37,0,2,0,4,0,17,0\n11,0,32,0,22,0,24,0,23,0,39,0\n5,0,31,0,30,0,18,0,9,0,8,0\n34,0,21,0,38,0,25,0,19,0,1,0\n28,0,33,0,29,0,20,0,26,0,36,0\n40,0,13,0,35,0,7,0,14,0,15,0\n10,0,11,0,12,0,3,0,6,0,8,0\n9,0,20,0,1,0,32,0,2,0,38,0\n24,0,21,0,36,0,22,0,15,0,26,0\n14,0,25,0,23,0,34,0,28,0,30,0\n29,0,17,0,40,0,18,0,33,0,4,0\n19,0,31,0,10,0,16,0,27,0,13,0\n7,0,3,0,37,0,39,0,35,0,5,0\n17,0,9,0,12,0,34,0,20,0,22,0\n21,0,1,0,23,0,29,0,16,0,10,0\n6,0,28,0,13,0,39,0,40,0,36,0\n4,0,3,0,37,0,18,0,14,0,38,0\n26,0,7,0,25,0,11,0,15,0,31,0\n24,0,35,0,27,0,30,0,19,0,33,0\n8,0,32,0,4,0,5,0,2,0,38,0\n26,0,18,0,21,0,34,0,40,0,7,0\n22,0,10,0,39,0,19,0,6,0,15,0\n20,0,32,0,16,0,31,0,36,0,27,0\n13,0,8,0,33,0,1,0,11,0,17,0\n30,0,12,0,29,0,24,0,28,0,37,0\n35,0,9,0,2,0,23,0,3,0,5,0\n25,0,18,0,17,0,14,0,7,0,6,0\n"
  },
  {
    "path": "schedules/40_2.csv",
    "content": "34,0,5,0,19,0,37,0,23,0,11,0\n27,0,31,0,33,0,26,0,16,0,40,0\n36,0,3,0,17,0,1,0,8,0,10,0\n28,0,6,0,39,0,25,0,38,0,29,0\n7,0,32,0,4,0,15,0,24,0,22,0\n21,0,20,0,13,0,30,0,14,0,2,0\n9,0,35,0,10,0,18,0,12,0,23,0\n17,0,37,0,39,0,22,0,7,0,31,0\n1,0,14,0,15,0,33,0,6,0,34,0\n4,0,12,0,16,0,13,0,38,0,3,0\n19,0,21,0,29,0,9,0,40,0,32,0\n18,0,8,0,24,0,30,0,26,0,5,0\n35,0,36,0,11,0,20,0,27,0,28,0\n25,0,19,1,9,1,2,0,32,1,40,1\n"
  },
  {
    "path": "schedules/40_3.csv",
    "content": "17,0,33,0,20,0,27,0,24,0,25,0\n18,0,37,0,9,0,32,0,1,0,2,0\n34,0,29,0,28,0,19,0,30,0,21,0\n3,0,4,0,23,0,5,0,14,0,11,0\n39,0,31,0,7,0,15,0,22,0,40,0\n35,0,8,0,12,0,10,0,6,0,26,0\n36,0,16,0,25,0,13,0,38,0,4,0\n24,0,19,0,40,0,23,0,21,0,1,0\n11,0,7,0,32,0,20,0,12,0,34,0\n37,0,14,0,8,0,22,0,16,0,29,0\n9,0,10,0,36,0,15,0,28,0,17,0\n26,0,38,0,27,0,5,0,39,0,18,0\n2,0,30,0,33,0,31,0,35,0,3,0\n13,0,17,0,11,0,6,0,40,0,29,0\n23,0,15,0,25,0,18,0,8,0,34,0\n22,0,10,0,19,0,33,0,38,0,32,0\n16,0,20,0,6,0,9,0,5,0,31,0\n2,0,14,0,21,0,26,0,7,0,13,0\n39,0,24,0,28,0,37,0,35,0,4,0\n3,0,30,0,1,0,12,0,27,0,36,0\n"
  },
  {
    "path": "schedules/40_4.csv",
    "content": "7,0,17,0,8,0,9,0,33,0,37,0\n32,0,13,0,22,0,16,0,28,0,1,0\n27,0,31,0,39,0,34,0,5,0,30,0\n14,0,26,0,35,0,15,0,18,0,2,0\n21,0,10,0,23,0,24,0,6,0,38,0\n20,0,36,0,29,0,3,0,40,0,19,0\n4,0,25,0,14,0,11,0,12,0,22,0\n18,0,33,0,7,0,10,0,39,0,1,0\n23,0,28,0,40,0,26,0,5,0,17,0\n29,0,37,0,38,0,27,0,16,0,12,0\n32,0,8,0,25,0,31,0,20,0,15,0\n9,0,36,0,21,0,34,0,11,0,2,0\n35,0,3,0,24,0,30,0,4,0,13,0\n6,0,31,0,16,0,19,0,7,0,26,0\n22,1,17,0,15,0,39,1,29,0,21,0\n40,0,9,0,30,0,38,0,1,0,25,0\n12,0,24,0,32,0,5,0,35,0,36,0\n19,0,2,0,28,0,4,0,10,0,8,0\n33,0,13,0,11,0,20,0,23,0,27,0\n37,0,3,0,34,0,18,0,14,0,6,0\n1,0,12,0,2,0,31,0,17,0,24,0\n30,0,10,0,11,0,32,0,29,0,26,0\n6,0,5,0,20,0,18,0,9,0,22,0\n39,0,38,0,14,0,8,0,36,0,13,0\n28,0,27,0,7,0,3,0,21,0,25,0\n34,0,16,0,4,0,33,0,40,0,15,0\n35,0,19,0,22,0,23,0,37,0,39,0\n"
  },
  {
    "path": "schedules/40_5.csv",
    "content": "5,0,10,0,28,0,3,0,20,0,35,0\n11,0,4,0,39,0,6,0,1,0,25,0\n16,0,30,0,38,0,9,0,15,0,8,0\n34,0,2,0,24,0,22,0,37,0,17,0\n18,0,29,0,19,0,13,0,26,0,23,0\n36,0,7,0,33,0,32,0,31,0,14,0\n40,0,27,0,39,0,12,0,21,0,28,0\n26,0,25,0,34,0,16,0,20,0,10,0\n1,0,3,0,7,0,2,0,30,0,13,0\n4,0,14,0,27,0,37,0,38,0,35,0\n12,0,24,0,11,0,31,0,18,0,8,0\n32,0,36,0,40,0,6,0,22,0,23,0\n19,0,17,0,15,0,5,0,33,0,21,0\n29,0,1,0,10,0,9,0,27,0,31,0\n24,1,20,0,23,0,2,1,38,0,12,0\n36,1,22,0,15,0,26,1,28,0,4,0\n25,0,18,0,32,0,30,0,17,0,35,0\n21,0,13,0,6,0,8,0,34,0,5,0\n37,0,16,0,33,0,7,0,29,0,39,0\n19,0,11,0,9,0,14,0,40,0,3,0\n17,0,13,0,25,0,38,0,28,0,36,0\n31,0,5,0,2,0,16,0,4,0,18,0\n15,0,35,0,32,0,34,0,29,0,11,0\n33,0,6,0,40,0,3,0,10,0,24,0\n22,0,20,0,39,0,8,0,19,0,27,0\n14,0,37,0,23,0,30,0,21,0,1,0\n7,0,9,0,35,0,26,0,12,0,6,0\n34,0,3,0,38,0,36,0,18,0,39,0\n28,0,16,0,1,0,19,0,24,0,32,0\n27,0,30,0,26,0,2,0,11,0,33,0\n22,0,12,0,5,0,29,0,14,0,25,0\n20,0,37,0,31,0,15,0,40,0,13,0\n8,0,23,0,10,0,4,0,17,0,7,0\n21,0,24,0,36,0,9,0,2,0,26,0\n"
  },
  {
    "path": "schedules/40_6.csv",
    "content": "12,0,22,0,13,0,24,0,37,0,30,0\n14,0,28,0,35,0,15,0,3,0,23,0\n20,0,9,0,11,0,32,0,4,0,5,0\n1,0,8,0,26,0,6,0,40,0,31,0\n25,0,36,0,7,0,10,0,17,0,38,0\n33,0,2,0,19,0,29,0,34,0,18,0\n39,0,21,0,5,0,27,0,16,0,31,0\n23,0,37,0,35,0,1,0,7,0,32,0\n14,0,18,0,8,0,13,0,10,0,4,0\n26,0,21,0,38,0,3,0,20,0,2,0\n36,0,12,0,40,0,22,0,29,0,39,0\n24,0,17,0,9,0,16,0,33,0,34,0\n30,0,11,0,25,0,19,0,6,0,28,0\n27,0,38,0,2,0,15,0,12,0,32,0\n3,0,17,0,4,0,29,0,24,0,31,0\n22,0,18,0,25,0,16,0,8,0,20,0\n13,0,5,0,15,0,7,0,34,0,6,0\n27,0,37,0,19,0,40,0,35,0,10,0\n36,0,28,0,1,0,21,0,9,0,14,0\n39,0,30,0,33,0,23,0,11,0,26,0\n13,0,16,0,32,0,3,0,19,0,40,0\n37,0,17,0,28,0,38,0,5,0,18,0\n30,0,29,0,15,0,39,0,1,0,20,0\n6,0,8,0,33,0,12,0,21,0,35,0\n14,0,7,0,11,0,22,0,26,0,24,0\n2,0,31,0,23,0,9,0,25,0,10,0\n34,0,27,0,30,0,4,0,36,0,8,0\n11,0,40,0,13,0,21,0,17,0,15,0\n24,0,39,0,35,0,5,0,25,0,2,0\n3,0,6,0,9,0,27,0,7,0,18,0\n32,0,28,0,10,0,16,0,29,0,26,0\n4,0,22,0,19,0,38,0,33,0,1,0\n31,0,14,0,20,0,12,0,37,0,34,0\n23,0,24,0,32,0,36,0,21,0,18,0\n9,0,39,0,15,0,17,0,8,0,19,0\n7,0,20,0,40,0,33,0,31,0,28,0\n29,0,35,0,5,0,30,0,14,0,38,0\n6,0,36,0,16,0,37,0,4,0,2,0\n27,0,12,0,26,0,23,0,25,0,13,0\n3,0,10,0,34,0,11,0,22,0,1,0\n"
  },
  {
    "path": "schedules/40_7.csv",
    "content": "33,0,28,0,23,0,4,0,11,0,8,0\n25,0,3,0,10,0,13,0,37,0,35,0\n31,0,29,0,24,0,22,0,7,0,6,0\n14,0,18,0,26,0,30,0,20,0,9,0\n16,0,21,0,15,0,36,0,1,0,34,0\n27,0,19,0,12,0,2,0,39,0,40,0\n38,0,17,0,18,0,32,0,5,0,24,0\n1,0,30,0,8,0,25,0,11,0,29,0\n2,0,37,0,20,0,7,0,28,0,4,0\n6,0,32,0,40,0,23,0,21,0,35,0\n27,0,9,0,5,0,10,0,16,0,19,0\n22,0,17,0,39,0,33,0,13,0,15,0\n34,0,12,0,14,0,3,0,26,0,38,0\n36,0,9,0,32,0,31,0,40,0,4,0\n13,1,22,0,25,0,21,1,28,0,5,0\n6,0,1,0,15,0,30,0,37,0,3,0\n20,0,31,0,26,0,17,0,10,0,11,0\n29,0,2,0,16,0,38,0,39,0,23,0\n36,0,12,0,33,0,27,0,24,0,34,0\n8,0,35,0,18,0,7,0,14,0,19,0\n22,0,28,0,2,0,6,0,16,0,17,0\n24,0,13,0,3,0,11,0,40,0,27,0\n20,0,21,0,38,0,9,0,15,0,8,0\n7,0,39,0,36,0,30,0,25,0,14,0\n31,0,10,0,23,0,12,0,18,0,1,0\n37,0,19,0,33,0,29,0,26,0,32,0\n4,0,34,0,30,0,35,0,5,0,22,0\n17,0,20,0,36,0,12,0,23,0,3,0\n39,0,16,0,31,0,8,0,24,0,37,0\n26,0,5,0,7,0,1,0,13,0,21,0\n14,0,10,0,27,0,28,0,29,0,15,0\n2,0,11,0,32,0,35,0,9,0,34,0\n18,0,33,0,40,0,38,0,25,0,6,0\n19,0,21,0,3,0,4,0,24,0,10,0\n32,0,27,0,1,0,14,0,20,0,22,0\n25,0,37,0,7,0,17,0,23,0,9,0\n4,0,5,0,6,0,12,0,39,0,11,0\n15,0,40,0,35,0,16,0,26,0,33,0\n8,0,13,0,29,0,18,0,2,0,36,0\n38,0,34,0,19,0,28,0,31,0,30,0\n25,0,23,0,4,0,26,0,27,0,15,0\n21,0,22,0,11,0,39,0,18,0,37,0\n3,0,5,0,14,0,31,0,33,0,2,0\n36,0,38,0,13,0,20,0,6,0,19,0\n24,0,28,0,35,0,29,0,1,0,9,0\n17,0,8,0,7,0,10,0,40,0,34,0\n16,0,30,0,13,0,12,0,32,0,21,0\n"
  },
  {
    "path": "schedules/40_8.csv",
    "content": "23,0,40,0,1,0,22,0,28,0,16,0\n38,0,26,0,17,0,15,0,29,0,2,0\n10,0,12,0,39,0,5,0,35,0,31,0\n13,0,14,0,33,0,9,0,3,0,7,0\n32,0,8,0,37,0,36,0,6,0,20,0\n18,0,11,0,19,0,34,0,25,0,24,0\n30,0,27,0,13,0,21,0,4,0,23,0\n15,0,6,0,39,0,12,0,33,0,28,0\n29,0,24,0,22,0,32,0,10,0,3,0\n11,0,5,0,40,0,18,0,30,0,38,0\n7,0,25,0,4,0,37,0,17,0,20,0\n36,0,2,0,16,0,35,0,9,0,34,0\n27,0,19,0,26,0,1,0,8,0,14,0\n21,0,24,0,33,0,31,0,22,0,25,0\n3,1,29,0,23,0,5,1,7,0,34,0\n37,1,14,0,30,0,1,1,35,0,15,0\n2,0,20,0,8,0,11,0,16,0,21,0\n4,0,13,0,39,0,19,0,40,0,6,0\n38,0,36,0,28,0,31,0,10,0,27,0\n32,0,17,0,9,0,12,0,18,0,26,0\n25,0,39,0,8,0,2,0,14,0,22,0\n15,0,21,0,7,0,19,0,24,0,36,0\n6,0,35,0,17,0,27,0,23,0,5,0\n34,0,33,0,29,0,13,0,12,0,40,0\n30,0,31,0,3,0,16,0,20,0,18,0\n37,0,28,0,10,0,11,0,9,0,26,0\n1,0,4,0,34,0,38,0,32,0,21,0\n31,0,7,0,40,0,25,0,27,0,6,0\n15,0,36,0,8,0,5,0,13,0,3,0\n22,0,20,0,38,0,19,0,14,0,12,0\n4,0,11,0,10,0,17,0,1,0,33,0\n24,0,18,0,23,0,2,0,37,0,26,0\n16,0,9,0,30,0,29,0,39,0,32,0\n28,0,13,0,1,0,35,0,25,0,38,0\n20,0,15,0,14,0,10,0,23,0,34,0\n11,0,39,0,22,0,26,0,7,0,36,0\n35,0,29,0,16,0,18,0,21,0,6,0\n28,0,40,0,30,0,8,0,17,0,24,0\n9,0,2,0,12,0,4,0,27,0,3,0\n37,0,19,0,5,0,31,0,33,0,32,0\n10,0,18,0,1,0,13,0,8,0,7,0\n26,0,22,0,34,0,6,0,30,0,4,0\n20,0,33,0,25,0,36,0,29,0,27,0\n9,0,19,0,31,0,17,0,15,0,3,0\n40,0,2,0,21,0,5,0,28,0,14,0\n12,0,38,0,24,0,16,0,39,0,23,0\n35,0,32,0,27,0,37,0,11,0,15,0\n21,0,25,0,3,0,40,0,10,0,26,0\n6,0,9,0,5,0,20,0,1,0,24,0\n4,0,29,0,31,0,8,0,23,0,11,0\n16,0,14,0,17,0,37,0,22,0,13,0\n7,0,2,0,28,0,30,0,12,0,32,0\n36,0,18,0,35,0,33,0,38,0,19,0\n34,0,3,0,37,0,39,0,5,0,1,0\n"
  },
  {
    "path": "schedules/40_9.csv",
    "content": "39,0,25,0,35,0,31,0,38,0,12,0\n18,0,22,0,33,0,9,0,4,0,3,0\n20,0,10,0,37,0,21,0,7,0,14,0\n34,0,6,0,30,0,36,0,17,0,23,0\n32,0,13,0,2,0,16,0,11,0,19,0\n15,0,8,0,5,0,24,0,26,0,40,0\n29,0,1,0,3,0,28,0,27,0,9,0\n13,0,20,0,30,0,33,0,6,0,2,0\n38,0,22,0,26,0,4,0,10,0,14,0\n24,0,25,0,17,0,19,0,39,0,1,0\n21,0,11,0,12,0,36,0,18,0,29,0\n31,0,5,0,34,0,37,0,16,0,8,0\n15,0,7,0,28,0,32,0,35,0,23,0\n27,0,13,0,18,0,40,0,10,0,17,0\n37,0,29,0,4,0,25,0,19,0,30,0\n32,0,34,0,38,0,9,0,20,0,24,0\n2,0,27,0,8,0,1,0,28,0,12,0\n36,0,11,0,3,0,5,0,35,0,26,0\n39,0,16,0,22,0,15,0,23,0,21,0\n40,0,6,0,14,0,33,0,7,0,31,0\n17,0,37,0,1,0,11,0,32,0,20,0\n35,0,4,0,18,0,29,0,24,0,5,0\n8,0,19,0,21,0,9,0,38,0,23,0\n25,0,36,0,10,0,28,0,33,0,16,0\n31,0,14,0,30,0,12,0,15,0,3,0\n40,0,7,0,13,0,22,0,2,0,34,0\n26,0,6,0,8,0,27,0,39,0,29,0\n4,0,12,0,16,0,35,0,21,0,1,0\n24,0,23,0,34,0,31,0,10,0,11,0\n18,0,26,0,15,0,20,0,25,0,6,0\n19,0,32,0,9,0,40,0,30,0,36,0\n17,0,28,0,39,0,13,0,5,0,22,0\n2,0,7,0,38,0,3,0,33,0,37,0\n14,0,15,0,9,0,27,0,35,0,19,0\n6,0,29,0,12,0,22,0,32,0,10,0\n18,0,38,0,20,0,36,0,31,0,2,0\n7,0,1,0,24,0,30,0,26,0,16,0\n27,0,5,0,23,0,34,0,25,0,33,0\n28,0,11,0,37,0,40,0,21,0,39,0\n14,0,3,0,8,0,4,0,13,0,17,0\n35,0,12,0,33,0,26,0,34,0,19,0\n10,0,1,0,18,0,15,0,36,0,37,0\n20,0,31,0,16,0,11,0,22,0,4,0\n25,0,3,0,23,0,8,0,40,0,32,0\n6,0,5,0,17,0,9,0,2,0,21,0\n38,0,24,0,14,0,30,0,28,0,29,0\n13,0,39,0,36,0,27,0,7,0,4,0\n2,0,10,0,35,0,22,0,8,0,25,0\n11,0,33,0,5,0,38,0,1,0,15,0\n16,0,21,0,34,0,3,0,24,0,30,0\n28,0,14,0,19,0,6,0,18,0,7,0\n31,0,40,0,29,0,27,0,20,0,17,0\n26,0,12,0,23,0,9,0,37,0,13,0\n32,0,33,0,30,0,39,0,18,0,8,0\n2,0,4,0,28,0,29,0,34,0,15,0\n40,0,1,0,16,0,6,0,38,0,35,0\n11,0,9,0,17,0,7,0,12,0,25,0\n19,0,20,0,3,0,10,0,5,0,39,0\n32,0,31,0,21,0,14,0,13,0,26,0\n24,0,27,0,36,0,22,0,37,0,23,0\n"
  },
  {
    "path": "schedules/41_1.csv",
    "content": "35,0,10,0,37,0,23,0,33,0,19,0\n12,0,26,0,13,0,4,0,39,0,2,0\n9,0,16,0,25,0,11,0,27,0,6,0\n41,0,28,0,36,0,21,0,34,0,20,0\n15,0,22,0,24,0,18,0,14,0,40,0\n38,0,31,0,1,0,17,0,8,0,7,0\n30,0,29,0,5,0,32,0,3,0,33,1\n"
  },
  {
    "path": "schedules/41_10.csv",
    "content": "1,0,34,0,39,0,10,0,5,0,35,0\n29,0,21,0,3,0,38,0,18,0,12,0\n19,0,17,0,22,0,40,0,7,0,4,0\n31,0,26,0,16,0,41,0,20,0,13,0\n32,0,9,0,2,0,6,0,25,0,15,0\n11,0,27,0,30,0,23,0,14,0,24,0\n28,0,36,0,3,0,33,0,8,0,37,0\n40,0,32,0,38,0,39,0,9,0,13,0\n19,0,4,0,14,0,23,0,10,0,16,0\n33,0,21,0,26,0,7,0,27,0,6,0\n15,0,37,0,11,0,5,0,17,0,29,0\n34,0,22,0,30,0,28,0,1,0,31,0\n12,0,8,0,35,0,2,0,25,0,18,0\n20,0,36,0,39,0,41,0,24,0,17,0\n34,1,23,0,3,0,6,1,5,0,31,0\n26,1,27,0,37,0,19,1,18,0,16,0\n40,0,33,0,10,0,21,0,20,0,25,0\n41,0,14,0,38,0,12,0,22,0,24,0\n1,0,4,0,13,0,9,0,11,0,8,0\n2,0,28,0,7,0,36,0,32,0,29,0\n35,0,15,0,19,0,30,0,21,0,39,0\n33,0,31,0,12,0,40,0,11,0,6,0\n2,0,3,0,24,0,27,0,9,0,34,0\n26,0,18,0,8,0,10,0,22,0,15,0\n29,0,16,0,4,0,28,0,30,0,5,0\n38,0,36,0,17,0,23,0,35,0,32,0\n41,0,25,0,1,0,13,0,14,0,7,0\n20,0,24,0,28,0,37,0,40,0,19,0\n31,0,8,0,34,0,27,0,39,0,38,0\n18,0,6,0,4,0,36,0,5,0,41,0\n25,0,10,0,13,0,29,0,23,0,37,0\n32,0,15,0,26,0,14,0,33,0,3,0\n16,0,21,0,22,0,11,0,2,0,17,0\n12,0,9,0,7,0,30,0,20,0,35,0\n1,0,33,0,29,0,31,0,19,0,41,0\n34,0,15,0,17,0,38,0,4,0,25,0\n12,0,5,0,20,0,14,0,22,0,36,0\n30,0,2,0,10,0,3,0,11,0,32,0\n13,0,18,0,27,0,28,0,39,0,6,0\n1,0,37,0,16,0,9,0,21,0,23,0\n40,0,24,0,8,0,35,0,26,0,7,0\n38,0,5,0,19,0,2,0,20,0,31,0\n41,0,32,0,22,0,34,0,37,0,21,0\n40,0,39,0,18,0,1,0,23,0,7,0\n8,0,10,0,6,0,24,0,15,0,16,0\n29,0,25,0,35,0,3,0,4,0,27,0\n13,0,28,0,33,0,12,0,17,0,14,0\n30,0,9,0,26,0,11,0,36,0,18,0\n8,0,5,0,27,0,19,0,32,0,20,0\n39,0,4,0,37,0,40,0,2,0,14,0\n31,0,3,0,9,0,12,0,10,0,21,0\n6,0,24,0,29,0,17,0,26,0,1,0\n13,0,11,0,34,0,7,0,36,0,15,0\n38,0,35,0,22,0,33,0,16,0,30,0\n25,0,23,0,5,0,41,0,28,0,26,0\n7,0,24,0,32,0,4,0,17,0,31,0\n27,0,12,0,36,0,15,0,40,0,1,0\n30,0,38,0,6,0,28,0,37,0,10,0\n39,0,11,0,22,0,3,0,25,0,16,0\n35,0,14,0,21,0,29,0,13,0,8,0\n18,0,20,0,23,0,2,0,33,0,34,0\n41,0,9,0,15,0,19,0,11,0,28,0\n31,0,14,0,25,0,6,0,35,0,36,0\n40,0,12,0,29,0,32,0,16,0,34,0\n1,0,2,0,21,0,4,0,26,0,20,0\n19,0,24,0,13,0,18,0,22,0,3,0\n10,0,27,0,17,0,8,0,30,0,41,0\n7,0,39,0,33,0,9,0,37,0,5,0\n23,0,6,0,19,0,38,0,34,0,26,0\n"
  },
  {
    "path": "schedules/41_11.csv",
    "content": "32,0,37,0,9,0,34,0,7,0,36,0\n31,0,20,0,28,0,26,0,15,0,13,0\n24,0,1,0,29,0,4,0,27,0,6,0\n17,0,5,0,38,0,40,0,8,0,14,0\n35,0,18,0,21,0,25,0,10,0,41,0\n30,0,16,0,39,0,3,0,19,0,23,0\n11,0,33,0,2,0,12,0,22,0,15,0\n10,0,1,0,34,0,36,0,17,0,25,0\n31,0,26,0,4,0,3,0,5,0,9,0\n18,0,20,0,39,0,11,0,7,0,27,0\n19,0,37,0,30,0,14,0,28,0,35,0\n12,0,38,0,21,0,29,0,16,0,32,0\n22,0,40,0,33,0,13,0,24,0,23,0\n41,0,6,0,37,0,2,0,8,0,39,0\n16,1,11,0,15,0,5,1,36,0,27,0\n18,1,12,0,23,0,14,1,31,0,34,0\n8,1,21,0,33,0,40,0,4,0,20,0\n19,0,10,0,38,0,2,0,7,0,26,0\n32,0,24,0,3,0,1,0,17,0,28,0\n22,0,6,0,9,0,13,0,25,0,30,0\n35,0,29,0,27,0,41,0,33,0,14,0\n34,0,39,0,3,0,38,0,1,0,20,0\n26,0,32,0,25,0,37,0,11,0,40,0\n4,0,16,0,41,0,19,0,17,0,22,0\n24,0,35,0,8,0,13,0,29,0,9,0\n23,0,21,0,6,0,18,0,5,0,15,0\n30,0,36,0,10,0,12,0,7,0,31,0\n2,0,13,0,37,0,28,0,34,0,40,0\n16,0,22,0,23,0,32,0,35,0,39,0\n15,0,30,0,33,0,10,0,8,0,9,0\n38,0,18,0,36,0,24,0,17,0,4,0\n7,0,28,0,25,0,11,0,29,0,14,0\n41,0,12,0,1,0,5,0,26,0,20,0\n31,0,27,0,3,0,2,0,19,0,21,0\n14,0,4,0,10,0,6,0,39,0,15,0\n17,0,20,0,9,0,37,0,28,0,23,0\n36,0,24,0,11,0,41,0,13,0,21,0\n25,0,27,0,8,0,12,0,3,0,16,0\n5,0,1,0,40,0,7,0,29,0,30,0\n31,0,18,0,19,0,34,0,33,0,32,0\n35,0,26,0,22,0,38,0,6,0,2,0\n12,0,4,0,13,0,17,0,37,0,10,0\n28,0,36,0,32,0,39,0,41,0,5,0\n7,0,3,0,38,0,33,0,23,0,35,0\n26,0,30,0,40,0,27,0,22,0,18,0\n2,0,14,0,9,0,11,0,1,0,21,0\n25,0,15,0,19,0,31,0,29,0,8,0\n34,0,20,0,16,0,24,0,6,0,30,0\n11,0,4,0,3,0,38,0,32,0,14,0\n33,0,19,0,7,0,15,0,1,0,36,0\n6,0,18,0,29,0,28,0,2,0,16,0\n17,0,39,0,26,0,31,0,24,0,25,0\n37,0,8,0,34,0,10,0,21,0,22,0\n9,0,40,0,12,0,41,0,35,0,20,0\n23,0,5,0,25,0,13,0,27,0,19,0\n29,0,28,0,21,0,1,0,22,0,39,0\n36,0,12,0,6,0,3,0,37,0,18,0\n11,0,35,0,5,0,10,0,24,0,33,0\n7,0,4,0,8,0,31,0,16,0,40,0\n32,0,13,0,17,0,20,0,2,0,30,0\n14,0,15,0,23,0,41,0,34,0,26,0\n27,0,10,0,40,0,38,0,9,0,28,0\n1,0,6,0,8,0,11,0,32,0,31,0\n7,0,24,0,22,0,12,0,19,0,14,0\n38,0,13,0,39,0,21,0,9,0,30,0\n34,0,15,0,27,0,35,0,17,0,3,0\n37,0,16,0,26,0,29,0,33,0,5,0\n2,0,23,0,41,0,25,0,18,0,4,0\n20,0,14,0,22,0,36,0,3,0,40,0\n39,0,27,0,28,0,12,0,8,0,32,0\n1,0,18,0,9,0,35,0,16,0,19,0\n11,0,25,0,34,0,30,0,5,0,4,0\n41,0,15,0,31,0,24,0,38,0,37,0\n7,0,17,0,21,0,26,0,33,0,6,0\n29,0,2,0,10,0,36,0,23,0,20,0\n13,0,5,0,14,0,16,0,18,0,8,0\n"
  },
  {
    "path": "schedules/41_12.csv",
    "content": "25,0,34,0,4,0,23,0,14,0,12,0\n1,0,11,0,36,0,41,0,7,0,9,0\n17,0,13,0,24,0,32,0,18,0,15,0\n30,0,26,0,16,0,38,0,8,0,5,0\n2,0,3,0,19,0,10,0,20,0,40,0\n33,0,39,0,37,0,29,0,27,0,6,0\n21,0,35,0,18,0,31,0,22,0,28,0\n36,0,23,0,9,0,17,0,8,0,3,0\n13,0,32,0,11,0,19,0,38,0,27,0\n5,0,22,0,10,0,25,0,6,0,39,0\n15,0,2,0,28,0,41,0,20,0,37,0\n40,0,7,0,24,0,31,0,34,0,12,0\n21,0,26,0,14,0,30,0,29,0,4,0\n35,0,1,0,13,0,33,0,16,0,22,0\n5,0,40,0,11,0,2,0,7,0,17,0\n26,0,37,0,8,0,14,0,25,0,36,0\n41,0,16,0,29,0,23,0,20,0,32,0\n30,0,1,0,10,0,18,0,4,0,12,0\n3,0,38,0,15,0,33,0,6,0,28,0\n35,0,9,0,24,0,34,0,19,0,39,0\n21,0,27,0,20,0,31,0,10,0,18,0\n13,0,25,0,22,0,3,0,36,0,7,0\n12,0,39,0,2,0,26,0,34,0,33,0\n38,0,16,0,21,0,24,0,11,0,19,0\n29,0,14,0,32,0,15,0,9,0,5,0\n8,0,30,0,40,0,23,0,37,0,28,0\n1,0,41,0,6,0,31,0,17,0,35,0\n27,0,18,0,5,0,4,0,19,0,36,0\n39,0,28,0,21,0,14,0,38,0,9,0\n26,0,24,0,31,0,32,0,33,0,1,0\n23,0,17,0,29,0,2,0,35,0,22,0\n7,0,8,0,34,0,41,0,3,0,27,0\n15,0,10,0,12,0,37,0,16,0,11,0\n20,0,25,0,30,0,13,0,6,0,4,0\n40,0,23,0,27,0,1,0,26,0,9,0\n21,0,12,0,19,0,17,0,39,0,36,0\n41,0,8,0,22,0,20,0,15,0,13,0\n3,0,10,0,6,0,24,0,34,0,30,0\n7,0,14,0,11,0,35,0,32,0,37,0\n28,0,4,0,38,0,5,0,2,0,31,0\n16,0,40,0,18,0,33,0,25,0,29,0\n22,0,6,0,20,0,11,0,26,0,27,0\n34,0,14,0,15,0,21,0,13,0,36,0\n9,0,18,0,2,0,12,0,8,0,33,0\n31,0,38,0,7,0,16,0,23,0,10,0\n32,0,30,0,3,0,39,0,4,0,35,0\n40,0,37,0,25,0,5,0,24,0,41,0\n17,0,28,0,19,0,1,0,29,0,34,0\n6,0,31,0,9,0,2,0,21,0,8,0\n18,0,41,0,11,0,14,0,3,0,24,0\n29,0,35,0,12,0,13,0,38,0,40,0\n33,0,15,0,17,0,7,0,26,0,10,0\n20,0,19,0,1,0,30,0,36,0,37,0\n32,0,27,0,28,0,16,0,25,0,5,0\n22,0,4,0,15,0,39,0,23,0,38,0\n29,0,10,0,36,0,24,0,12,0,6,0\n37,0,31,0,13,0,9,0,17,0,11,0\n33,0,19,0,35,0,8,0,23,0,25,0\n7,0,27,0,22,0,14,0,28,0,30,0\n4,0,5,0,26,0,40,0,21,0,41,0\n18,0,3,0,34,0,2,0,16,0,32,0\n20,0,39,0,14,0,1,0,7,0,12,0\n33,0,4,0,41,0,29,0,21,0,11,0\n31,0,15,0,40,0,9,0,22,0,30,0\n34,0,35,0,23,0,37,0,19,0,5,0\n25,0,38,0,26,0,1,0,18,0,17,0\n24,0,32,0,39,0,8,0,28,0,20,0\n2,0,36,0,6,0,16,0,13,0,27,0\n3,0,21,0,9,0,10,0,35,0,25,0\n38,0,30,0,17,0,33,0,11,0,20,0\n37,0,27,0,4,0,24,0,23,0,15,0\n7,0,28,0,5,0,13,0,26,0,18,0\n6,0,32,0,19,0,12,0,22,0,40,0\n14,0,1,0,8,0,10,0,2,0,34,0\n31,0,16,0,36,0,3,0,39,0,29,0\n41,0,25,0,12,0,7,0,15,0,19,0\n33,0,23,0,13,0,24,0,1,0,21,0\n6,0,16,0,17,0,14,0,31,0,4,0\n10,0,8,0,11,0,29,0,28,0,40,0\n9,0,37,0,34,0,38,0,22,0,18,0\n2,0,26,0,20,0,5,0,3,0,35,0\n32,0,41,0,36,0,27,0,39,0,30,0\n"
  },
  {
    "path": "schedules/41_13.csv",
    "content": "1,0,20,0,32,0,17,0,10,0,8,0\n16,0,26,0,38,0,3,0,39,0,29,0\n5,0,19,0,35,0,27,0,13,0,23,0\n40,0,37,0,2,0,36,0,28,0,4,0\n33,0,30,0,9,0,21,0,15,0,7,0\n41,0,18,0,25,0,11,0,12,0,34,0\n6,0,14,0,24,0,31,0,22,0,19,0\n3,0,32,0,2,0,37,0,33,0,36,0\n30,0,17,0,11,0,26,0,41,0,28,0\n20,0,34,0,40,0,1,0,39,0,21,0\n24,0,5,0,12,0,38,0,31,0,9,0\n15,0,13,0,22,0,18,0,27,0,8,0\n10,0,4,0,23,0,6,0,16,0,7,0\n29,0,35,0,30,0,25,0,14,0,2,0\n20,1,38,0,41,0,34,0,37,0,22,0\n31,0,39,0,28,0,27,0,16,0,33,0\n26,0,25,0,21,0,19,0,14,0,10,0\n40,0,12,0,23,0,15,0,17,0,1,0\n24,0,3,0,13,0,29,0,32,0,6,0\n9,0,36,0,5,0,35,0,4,0,18,0\n7,0,8,0,39,0,11,0,31,0,15,0\n27,0,10,0,34,0,41,0,24,0,17,0\n2,0,1,0,16,0,22,0,30,0,6,0\n19,0,18,0,20,0,40,0,3,0,35,0\n32,0,9,0,26,0,25,0,11,0,37,0\n28,0,8,0,12,0,13,0,5,0,21,0\n33,0,7,0,4,0,38,0,29,0,36,0\n14,0,32,0,11,0,23,0,18,0,24,0\n9,0,27,0,17,0,35,0,41,0,16,0\n1,0,4,0,29,0,12,0,25,0,15,0\n21,0,22,0,2,0,23,0,26,0,39,0\n33,0,10,0,38,0,40,0,28,0,13,0\n31,0,6,0,37,0,3,0,20,0,7,0\n5,0,8,0,34,0,36,0,30,0,14,0\n19,0,27,0,38,0,29,0,23,0,11,0\n21,0,31,0,24,0,17,0,7,0,40,0\n16,0,15,0,18,0,5,0,20,0,2,0\n25,0,22,0,3,0,10,0,36,0,35,0\n8,0,30,0,26,0,1,0,28,0,9,0\n14,0,4,0,12,0,13,0,34,0,33,0\n39,0,19,0,6,0,41,0,37,0,32,0\n20,0,21,0,16,0,11,0,38,0,5,0\n28,0,33,0,35,0,15,0,26,0,24,0\n27,0,22,0,36,0,6,0,41,0,1,0\n39,0,4,0,37,0,18,0,10,0,31,0\n25,0,34,0,23,0,13,0,9,0,8,0\n2,0,19,0,30,0,17,0,14,0,3,0\n7,0,29,0,12,0,32,0,40,0,22,0\n35,0,1,0,8,0,5,0,33,0,39,0\n23,0,36,0,15,0,34,0,24,0,30,0\n6,0,4,0,38,0,19,0,17,0,26,0\n28,0,20,0,27,0,25,0,7,0,32,0\n41,0,11,0,3,0,10,0,13,0,2,0\n31,0,40,0,29,0,18,0,21,0,9,0\n12,0,16,0,17,0,14,0,37,0,7,0\n13,0,41,0,39,0,23,0,2,0,33,0\n15,0,9,0,19,0,38,0,20,0,22,0\n11,0,36,0,21,0,6,0,28,0,5,0\n10,0,24,0,1,0,29,0,34,0,16,0\n3,0,18,0,26,0,40,0,8,0,25,0\n37,0,12,0,30,0,27,0,35,0,31,0\n14,0,21,0,41,0,4,0,32,0,15,0\n6,0,8,0,2,0,9,0,11,0,10,0\n7,0,13,0,18,0,33,0,19,0,1,0\n34,0,31,0,14,0,38,0,23,0,32,0\n28,0,37,0,17,0,5,0,29,0,22,0\n30,0,25,0,4,0,24,0,20,0,39,0\n16,0,3,0,36,0,27,0,12,0,26,0\n35,0,7,0,11,0,40,0,1,0,14,0\n8,0,24,0,32,0,38,0,2,0,39,0\n20,0,23,0,6,0,12,0,33,0,18,0\n41,0,10,0,22,0,40,0,5,0,30,0\n31,0,17,0,36,0,35,0,13,0,26,0\n29,0,27,0,21,0,3,0,9,0,4,0\n34,0,15,0,28,0,37,0,19,0,16,0\n25,0,38,0,1,0,2,0,41,0,31,0\n22,0,7,0,23,0,27,0,3,0,30,0\n6,0,35,0,34,0,28,0,32,0,21,0\n17,0,5,0,18,0,9,0,24,0,25,0\n20,0,37,0,26,0,14,0,13,0,29,0\n15,0,39,0,10,0,12,0,36,0,19,0\n8,0,33,0,11,0,16,0,40,0,4,0\n5,0,7,0,27,0,34,0,26,0,2,0\n9,0,14,0,39,0,3,0,23,0,28,0\n31,0,32,0,13,0,30,0,10,0,16,0\n35,0,24,0,22,0,4,0,11,0,20,0\n37,0,1,0,18,0,38,0,21,0,12,0\n40,0,33,0,15,0,6,0,25,0,17,0\n29,0,41,0,19,0,8,0,36,0,20,0\n"
  },
  {
    "path": "schedules/41_14.csv",
    "content": "23,0,35,0,9,0,1,0,39,0,14,0\n26,0,34,0,6,0,15,0,5,0,2,0\n36,0,24,0,19,0,4,0,18,0,27,0\n30,0,29,0,25,0,7,0,21,0,31,0\n20,0,28,0,33,0,22,0,10,0,13,0\n40,0,16,0,11,0,12,0,17,0,38,0\n32,0,8,0,41,0,3,0,37,0,39,0\n13,0,34,0,18,0,7,0,25,0,9,0\n1,0,6,0,27,0,4,0,31,0,5,0\n22,0,40,0,12,0,14,0,2,0,16,0\n30,0,11,0,24,0,33,0,37,0,29,0\n28,0,38,0,8,0,10,0,19,0,15,0\n17,0,26,0,32,0,23,0,41,0,20,0\n3,0,36,0,6,0,21,0,35,0,18,0\n28,1,37,0,11,0,33,1,9,0,40,0\n39,0,25,0,12,0,15,0,24,0,8,0\n17,0,34,0,3,0,31,0,26,0,20,0\n2,0,32,0,22,0,1,0,10,0,4,0\n13,0,23,0,29,0,21,0,27,0,41,0\n14,0,38,0,5,0,36,0,35,0,7,0\n30,0,16,0,1,0,19,0,34,0,33,0\n26,0,8,0,28,0,18,0,23,0,17,0\n14,0,32,0,22,0,40,0,37,0,24,0\n36,0,10,0,7,0,11,0,6,0,13,0\n4,0,35,0,12,0,3,0,29,0,19,0\n9,0,41,0,5,0,31,0,30,0,38,0\n15,0,2,0,39,0,21,0,25,0,20,0\n16,0,23,0,33,0,27,0,12,0,3,0\n34,0,36,0,4,0,40,0,10,0,26,0\n17,0,19,0,22,0,6,0,41,0,29,0\n38,0,11,0,39,0,7,0,2,0,30,0\n37,0,27,0,16,0,9,0,28,0,21,0\n15,0,18,0,31,0,32,0,13,0,20,0\n14,0,24,0,25,0,1,0,5,0,8,0\n35,0,28,0,39,0,12,0,37,0,26,0\n15,0,34,0,11,0,22,0,20,0,3,0\n14,0,13,0,30,0,6,0,38,0,36,0\n35,0,24,0,10,0,17,0,16,0,25,0\n41,0,2,0,19,0,5,0,23,0,7,0\n21,0,40,0,33,0,4,0,29,0,8,0\n27,0,31,0,32,0,9,0,18,0,1,0\n37,0,10,0,20,0,23,0,25,0,34,0\n21,0,29,0,39,0,28,0,8,0,40,0\n22,0,18,0,26,0,11,0,5,0,27,0\n41,0,14,0,4,0,17,0,35,0,30,0\n12,0,16,0,13,0,19,0,32,0,9,0\n1,0,36,0,31,0,6,0,15,0,7,0\n38,0,3,0,2,0,33,0,24,0,17,0\n20,0,30,0,5,0,39,0,4,0,16,0\n6,0,37,0,19,0,11,0,14,0,18,0\n24,0,26,0,9,0,10,0,41,0,28,0\n25,0,35,0,31,0,36,0,33,0,12,0\n32,0,23,0,38,0,29,0,22,0,34,0\n2,0,40,0,8,0,3,0,13,0,15,0\n27,0,7,0,18,0,1,0,21,0,17,0\n25,0,5,0,37,0,41,0,16,0,28,0\n9,0,30,0,33,0,22,0,23,0,39,0\n1,0,29,0,4,0,24,0,36,0,20,0\n14,0,12,0,6,0,32,0,3,0,34,0\n21,0,2,0,8,0,35,0,11,0,26,0\n19,0,7,0,31,0,40,0,38,0,13,0\n27,0,10,0,29,0,15,0,37,0,30,0\n16,0,3,0,9,0,32,0,28,0,18,0\n12,0,2,0,1,0,33,0,11,0,41,0\n23,0,24,0,4,0,6,0,31,0,22,0\n15,0,25,0,27,0,26,0,38,0,19,0\n5,0,10,0,21,0,17,0,39,0,13,0\n20,0,34,0,7,0,14,0,35,0,8,0\n40,0,15,0,23,0,36,0,16,0,19,0\n31,0,10,0,17,0,12,0,11,0,32,0\n41,0,38,0,29,0,1,0,34,0,28,0\n6,0,4,0,33,0,9,0,37,0,18,0\n22,0,25,0,8,0,3,0,30,0,21,0\n40,0,5,0,36,0,35,0,2,0,24,0\n39,0,7,0,26,0,14,0,27,0,20,0\n13,0,19,0,21,0,12,0,9,0,34,0\n28,0,23,0,3,0,24,0,5,0,29,0\n20,0,6,0,8,0,27,0,35,0,40,0\n38,0,18,0,16,0,39,0,10,0,30,0\n41,0,37,0,31,0,2,0,13,0,26,0\n22,0,15,0,33,0,36,0,17,0,14,0\n11,0,7,0,1,0,4,0,32,0,25,0\n38,0,37,0,21,0,19,0,12,0,5,0\n36,0,39,0,27,0,31,0,14,0,28,0\n8,0,35,0,13,0,11,0,22,0,4,0\n3,0,26,0,33,0,32,0,7,0,24,0\n10,0,34,0,16,0,1,0,15,0,41,0\n18,0,40,0,25,0,23,0,30,0,6,0\n20,0,17,0,9,0,29,0,2,0,28,0\n13,0,41,0,7,0,10,0,33,0,27,0\n21,0,14,0,26,0,23,0,31,0,8,0\n19,0,30,0,32,0,2,0,25,0,6,0\n9,0,36,0,29,0,22,0,5,0,16,0\n17,0,3,0,11,0,39,0,34,0,37,0\n24,0,18,0,1,0,40,0,20,0,12,0\n15,0,4,0,28,0,38,0,35,0,33,0\n"
  },
  {
    "path": "schedules/41_2.csv",
    "content": "19,0,40,0,24,0,6,0,1,0,9,0\n2,0,21,0,38,0,7,0,39,0,13,0\n31,0,29,0,30,0,16,0,17,0,3,0\n26,0,4,0,5,0,18,0,22,0,11,0\n36,0,14,0,20,0,27,0,32,0,23,0\n8,0,41,0,37,0,15,0,33,0,35,0\n34,0,10,0,12,0,28,0,25,0,30,0\n39,0,18,0,3,0,27,0,11,0,40,0\n8,0,22,0,13,0,36,0,6,0,17,0\n28,0,23,0,35,0,24,0,4,0,21,0\n25,0,19,0,29,0,41,0,2,0,32,0\n1,0,12,0,37,0,16,0,20,0,5,0\n15,0,26,0,9,0,38,0,10,0,31,0\n33,0,14,0,19,1,34,0,7,0,11,1\n"
  },
  {
    "path": "schedules/41_3.csv",
    "content": "8,0,27,0,26,0,5,0,23,0,39,0\n7,0,12,0,13,0,17,0,19,0,20,0\n6,0,15,0,30,0,31,0,21,0,16,0\n38,0,40,0,32,0,37,0,29,0,11,0\n4,0,34,0,3,0,9,0,41,0,36,0\n2,0,35,0,28,0,24,0,25,0,33,0\n22,0,10,0,18,0,1,0,14,0,13,0\n38,1,11,0,41,0,30,1,26,0,17,0\n12,1,37,0,3,0,23,0,6,0,35,0\n39,0,40,0,15,0,24,0,34,0,10,0\n5,0,16,0,2,0,32,0,36,0,14,0\n33,0,8,0,18,0,7,0,21,0,4,0\n9,0,27,0,20,0,22,0,25,0,29,0\n19,0,1,0,26,0,31,0,28,0,37,0\n13,0,35,0,39,0,4,0,16,0,38,0\n3,0,10,0,29,0,7,0,5,0,30,0\n24,0,41,0,21,0,27,0,19,0,32,0\n9,0,1,0,12,0,33,0,15,0,11,0\n23,0,34,0,31,0,18,0,20,0,2,0\n25,0,6,0,17,0,14,0,40,0,8,0\n36,0,22,0,30,0,28,0,38,0,12,0\n"
  },
  {
    "path": "schedules/41_4.csv",
    "content": "5,0,4,0,12,0,19,0,1,0,3,0\n23,0,24,0,28,0,9,0,33,0,20,0\n25,0,41,0,14,0,13,0,2,0,21,0\n35,0,39,0,11,0,34,0,29,0,32,0\n17,0,22,0,38,0,30,0,15,0,27,0\n26,0,10,0,18,0,37,0,31,0,40,0\n36,0,7,0,8,0,6,0,16,0,41,0\n3,0,13,0,30,0,32,0,33,0,35,0\n2,0,27,0,29,0,23,0,1,0,18,0\n20,0,26,0,34,0,38,0,16,0,12,0\n5,0,21,0,17,0,10,0,36,0,31,0\n6,0,37,0,19,0,39,0,28,0,15,0\n24,0,40,0,11,0,7,0,22,0,14,0\n9,0,4,0,27,0,25,0,8,0,26,0\n15,1,13,0,23,0,30,1,34,0,36,0\n31,1,33,0,14,0,7,1,19,0,29,0\n21,0,6,0,18,0,24,0,35,0,12,0\n1,0,9,0,38,0,41,0,37,0,11,0\n25,0,16,0,10,0,3,0,22,0,28,0\n39,0,2,0,40,0,20,0,8,0,5,0\n32,0,7,0,37,0,4,0,17,0,23,0\n9,0,31,0,3,0,22,0,6,0,34,0\n20,0,27,0,19,0,10,0,13,0,11,0\n5,0,15,0,32,0,41,0,24,0,26,0\n4,0,16,0,30,0,40,0,21,0,29,0\n17,0,8,0,1,0,28,0,14,0,35,0\n33,0,36,0,25,0,18,0,38,0,39,0\n12,0,15,0,31,0,2,0,30,0,7,0\n"
  },
  {
    "path": "schedules/41_5.csv",
    "content": "8,0,36,0,41,0,31,0,38,0,3,0\n14,0,22,0,24,0,25,0,17,0,23,0\n29,0,9,0,11,0,13,0,10,0,40,0\n26,0,21,0,15,0,28,0,1,0,4,0\n7,0,39,0,12,0,30,0,35,0,32,0\n33,0,27,0,16,0,34,0,2,0,6,0\n37,0,18,0,19,0,5,0,20,0,4,0\n23,0,31,0,30,0,26,0,29,0,28,0\n34,0,40,0,32,0,17,0,15,0,3,0\n11,0,38,0,5,0,6,0,39,0,21,0\n41,0,7,0,10,0,27,0,14,0,19,0\n1,0,9,0,25,0,33,0,12,0,18,0\n24,0,35,0,36,0,20,0,2,0,37,0\n13,0,22,0,30,0,16,0,8,0,15,0\n18,1,4,0,25,0,29,1,32,0,38,0\n34,1,36,0,37,0,6,1,7,0,9,0\n22,1,27,0,3,0,28,0,11,0,24,0\n14,0,8,0,12,0,40,0,21,0,20,0\n10,0,23,0,5,0,35,0,33,0,17,0\n31,0,2,0,1,0,39,0,19,0,13,0\n26,0,9,0,32,0,16,0,41,0,24,0\n27,0,17,0,18,0,36,0,30,0,21,0\n34,0,35,0,28,0,25,0,8,0,19,0\n23,0,12,0,4,0,41,0,11,0,2,0\n29,0,15,0,14,0,39,0,37,0,33,0\n3,0,10,0,20,0,6,0,13,0,26,0\n22,0,40,0,38,0,5,0,1,0,7,0\n16,0,35,0,11,0,31,0,18,0,14,0\n30,0,39,0,24,0,4,0,10,0,34,0\n7,0,21,0,2,0,29,0,3,0,25,0\n37,0,8,0,6,0,32,0,1,0,23,0\n19,0,40,0,33,0,36,0,26,0,22,0\n38,0,17,0,28,0,12,0,16,0,13,0\n20,0,27,0,15,0,5,0,31,0,9,0\n41,0,18,0,6,0,29,0,34,0,22,0\n"
  },
  {
    "path": "schedules/41_6.csv",
    "content": "15,0,32,0,8,0,33,0,3,0,18,0\n11,0,6,0,14,0,41,0,28,0,25,0\n35,0,29,0,1,0,40,0,2,0,31,0\n30,0,36,0,21,0,34,0,17,0,19,0\n26,0,9,0,23,0,22,0,37,0,16,0\n24,0,20,0,39,0,38,0,4,0,7,0\n5,0,27,0,10,0,12,0,13,0,18,0\n8,0,33,0,31,0,11,0,17,0,26,0\n34,0,16,0,7,0,29,0,38,0,32,0\n41,0,37,0,30,0,5,0,15,0,22,0\n23,0,2,0,13,0,36,0,25,0,39,0\n20,0,40,0,19,0,12,0,6,0,9,0\n27,0,21,0,35,0,10,0,4,0,14,0\n28,0,1,0,26,0,3,0,24,0,15,0\n38,0,8,0,23,0,30,0,40,0,6,0\n11,0,25,0,35,0,37,0,27,0,19,0\n14,0,5,0,29,0,1,0,20,0,36,0\n22,0,12,0,2,0,21,0,4,0,18,0\n28,0,10,0,16,0,33,0,39,0,34,0\n13,0,9,0,31,0,32,0,41,0,24,0\n7,0,17,0,37,0,3,0,2,0,14,0\n6,0,36,0,4,0,33,0,15,0,10,0\n39,0,28,0,21,0,8,0,5,0,9,0\n23,0,24,0,18,0,11,0,34,0,20,0\n26,0,38,0,19,0,29,0,13,0,41,0\n17,0,32,0,27,0,22,0,1,0,40,0\n16,0,31,0,12,0,3,0,25,0,30,0\n7,0,9,0,18,0,35,0,36,0,26,0\n2,0,4,0,32,0,28,0,19,0,23,0\n3,0,38,0,40,0,5,0,21,0,11,0\n20,0,13,0,15,0,35,0,16,0,17,0\n37,0,33,0,6,0,7,0,12,0,1,0\n24,0,25,0,22,0,8,0,10,0,29,0\n27,0,14,0,39,0,31,0,34,0,30,0\n41,0,7,0,33,0,40,0,21,0,23,0\n12,0,15,0,17,0,9,0,11,0,29,0\n6,0,3,0,22,0,35,0,13,0,39,0\n32,0,10,0,20,0,30,0,26,0,2,0\n38,0,37,0,36,0,27,0,28,0,31,0\n34,0,41,0,1,0,4,0,25,0,8,0\n18,0,5,0,19,0,16,0,24,0,14,0\n"
  },
  {
    "path": "schedules/41_7.csv",
    "content": "2,0,30,0,24,0,19,0,25,0,40,0\n18,0,31,0,39,0,6,0,29,0,1,0\n32,0,3,0,17,0,16,0,14,0,7,0\n15,0,8,0,26,0,5,0,4,0,22,0\n35,0,12,0,9,0,36,0,11,0,41,0\n21,0,38,0,27,0,28,0,10,0,20,0\n23,0,13,0,33,0,34,0,37,0,1,0\n15,0,18,0,14,0,36,0,24,0,8,0\n25,0,31,0,11,0,32,0,38,0,20,0\n5,0,9,0,40,0,3,0,27,0,37,0\n33,0,28,0,30,0,13,0,39,0,17,0\n4,0,21,0,7,0,23,0,35,0,6,0\n2,0,34,0,41,0,26,0,22,0,29,0\n19,0,10,0,1,0,12,0,16,0,3,0\n38,1,40,0,13,0,21,0,6,0,11,0\n37,0,24,0,33,0,27,0,41,0,4,0\n35,0,30,0,8,0,29,0,16,0,20,0\n34,0,19,0,14,0,7,0,28,0,9,0\n22,0,10,0,17,0,36,0,18,0,25,0\n31,0,2,0,32,0,15,0,5,0,12,0\n39,0,26,0,27,0,23,0,11,0,19,0\n36,0,3,0,29,0,13,0,20,0,4,0\n24,0,35,0,17,0,31,0,10,0,34,0\n18,0,7,0,33,0,2,0,26,0,38,0\n14,0,21,0,5,0,30,0,1,0,25,0\n16,0,6,0,22,0,12,0,28,0,37,0\n40,0,41,0,8,0,39,0,23,0,32,0\n9,0,29,0,27,0,15,0,17,0,1,0\n36,0,13,0,10,0,7,0,5,0,2,0\n38,0,4,0,12,0,14,0,39,0,40,0\n37,0,41,0,21,0,8,0,19,0,31,0\n20,0,22,0,23,0,33,0,32,0,9,0\n11,0,15,0,34,0,30,0,18,0,16,0\n6,0,3,0,28,0,24,0,26,0,25,0\n35,0,20,0,19,0,17,0,5,0,38,0\n7,0,11,0,40,0,33,0,29,0,31,0\n14,0,23,0,41,0,15,0,10,0,6,0\n1,0,32,0,36,0,30,0,37,0,26,0\n4,0,28,0,16,0,18,0,9,0,2,0\n3,0,24,0,39,0,22,0,35,0,21,0\n12,0,8,0,25,0,13,0,27,0,34,0\n4,0,29,0,10,0,19,0,28,0,32,0\n16,0,5,0,36,0,40,0,33,0,21,0\n38,0,1,0,11,0,41,0,24,0,22,0\n12,0,6,0,2,0,8,0,17,0,9,0\n18,0,13,0,26,0,27,0,35,0,14,0\n25,0,20,0,7,0,39,0,37,0,15,0\n30,0,34,0,23,0,31,0,3,0,38,0\n"
  },
  {
    "path": "schedules/41_8.csv",
    "content": "39,0,15,0,33,0,7,0,18,0,20,0\n11,0,9,0,34,0,25,0,23,0,36,0\n37,0,12,0,13,0,35,0,38,0,19,0\n2,0,26,0,16,0,5,0,29,0,41,0\n6,0,4,0,14,0,3,0,27,0,31,0\n24,0,17,0,21,0,28,0,32,0,40,0\n10,0,8,0,30,0,1,0,22,0,36,0\n35,0,5,0,25,0,27,0,15,0,19,0\n40,0,11,0,14,0,26,0,29,0,12,0\n24,0,16,0,34,0,10,0,4,0,22,0\n17,0,13,0,7,0,2,0,18,0,31,0\n37,0,1,0,8,0,39,0,38,0,3,0\n21,0,41,0,32,0,20,0,28,0,9,0\n23,0,33,0,18,0,30,0,6,0,16,0\n2,1,25,0,17,0,8,1,36,0,14,0\n34,0,19,0,28,0,13,0,39,0,4,0\n35,0,26,0,22,0,7,0,9,0,3,0\n31,0,41,0,24,0,15,0,30,0,21,0\n12,0,27,0,23,0,20,0,1,0,33,0\n29,0,38,0,11,0,32,0,6,0,10,0\n40,0,9,0,36,0,5,0,37,0,39,0\n19,0,14,0,13,0,23,0,15,0,16,0\n10,0,26,0,21,0,25,0,12,0,18,0\n17,0,5,0,20,0,34,0,6,0,8,0\n38,0,22,0,37,0,41,0,2,0,4,0\n3,0,28,0,30,0,7,0,27,0,29,0\n33,0,31,0,32,0,35,0,40,0,1,0\n24,0,2,0,37,0,11,0,20,0,25,0\n26,0,41,0,6,0,13,0,36,0,10,0\n28,0,22,0,31,0,12,0,33,0,5,0\n7,0,23,0,38,0,24,0,27,0,40,0\n30,0,32,0,19,0,18,0,14,0,34,0\n3,0,11,0,35,0,39,0,16,0,21,0\n15,0,29,0,9,0,8,0,4,0,17,0\n1,0,5,0,18,0,20,0,41,0,14,0\n28,0,10,0,16,0,37,0,40,0,6,0\n4,0,34,0,23,0,7,0,8,0,21,0\n9,0,1,0,31,0,19,0,24,0,11,0\n25,0,27,0,13,0,39,0,29,0,22,0\n30,0,35,0,33,0,26,0,17,0,38,0\n2,0,15,0,36,0,32,0,3,0,12,0\n10,0,29,0,25,0,23,0,5,0,31,0\n22,0,11,0,18,0,28,0,38,0,14,0\n12,0,39,0,7,0,16,0,41,0,17,0\n1,0,6,0,2,0,34,0,35,0,15,0\n32,0,8,0,24,0,27,0,26,0,37,0\n3,0,40,0,20,0,30,0,9,0,13,0\n4,0,36,0,19,0,21,0,33,0,2,0\n8,0,29,0,18,0,24,0,12,0,35,0\n15,0,14,0,7,0,10,0,9,0,37,0\n4,0,5,0,30,0,32,0,11,0,13,0\n20,0,38,0,27,0,36,0,31,0,16,0\n41,0,40,0,33,0,34,0,25,0,3,0\n17,0,6,0,22,0,21,0,19,0,1,0\n28,0,39,0,2,0,26,0,23,0,8,0\n"
  },
  {
    "path": "schedules/41_9.csv",
    "content": "38,0,2,0,35,0,9,0,20,0,6,0\n12,0,1,0,26,0,19,0,15,0,4,0\n14,0,22,0,34,0,21,0,28,0,11,0\n41,0,30,0,3,0,7,0,37,0,13,0\n29,0,5,0,36,0,17,0,10,0,16,0\n39,0,8,0,33,0,31,0,25,0,27,0\n18,0,24,0,19,0,40,0,23,0,32,0\n20,0,5,0,13,0,1,0,29,0,6,0\n2,0,11,0,15,0,33,0,16,0,26,0\n32,0,31,0,18,0,21,0,25,0,3,0\n35,0,9,0,40,0,14,0,17,0,8,0\n30,0,37,0,10,0,4,0,27,0,24,0\n36,0,7,0,22,0,12,0,39,0,34,0\n38,0,23,0,31,0,41,0,28,0,5,0\n8,1,40,0,21,0,35,1,30,0,1,0\n13,1,34,0,6,0,29,0,33,0,24,0\n4,0,20,0,10,0,7,0,3,0,38,0\n23,0,16,0,15,0,39,0,36,0,32,0\n17,0,11,0,25,0,37,0,2,0,12,0\n9,0,22,0,28,0,19,0,26,0,41,0\n27,0,14,0,33,0,18,0,20,0,23,0\n34,0,35,0,8,0,5,0,2,0,7,0\n9,0,37,0,21,0,10,0,11,0,39,0\n22,0,24,0,6,0,31,0,19,0,17,0\n28,0,4,0,40,0,36,0,27,0,15,0\n32,0,14,0,26,0,29,0,30,0,13,0\n38,0,12,0,41,0,16,0,3,0,18,0\n25,0,7,0,24,0,1,0,15,0,21,0\n9,0,23,0,17,0,31,0,30,0,34,0\n10,0,8,0,12,0,13,0,40,0,38,0\n3,0,1,0,33,0,35,0,16,0,28,0\n27,0,32,0,19,0,22,0,5,0,11,0\n18,0,37,0,36,0,26,0,6,0,39,0\n14,0,4,0,41,0,25,0,2,0,29,0\n20,0,31,0,28,0,12,0,32,0,13,0\n21,0,7,0,26,0,27,0,5,0,17,0\n6,0,3,0,4,0,11,0,23,0,8,0\n24,0,30,0,2,0,41,0,18,0,35,0\n40,0,16,0,37,0,33,0,20,0,22,0\n15,0,14,0,39,0,10,0,19,0,34,0\n38,0,9,0,29,0,36,0,1,0,25,0\n18,0,5,0,33,0,4,0,22,0,12,0\n6,0,2,0,41,0,34,0,27,0,40,0\n31,0,7,0,1,0,11,0,36,0,14,0\n13,0,24,0,21,0,9,0,8,0,16,0\n17,0,37,0,39,0,38,0,32,0,28,0\n23,0,25,0,10,0,35,0,26,0,20,0\n3,0,29,0,15,0,19,0,30,0,9,0\n8,0,6,0,37,0,12,0,21,0,14,0\n23,0,28,0,1,0,22,0,2,0,10,0\n16,0,34,0,32,0,4,0,26,0,31,0\n13,0,11,0,18,0,17,0,15,0,20,0\n29,0,27,0,39,0,35,0,3,0,24,0\n40,0,19,0,7,0,25,0,33,0,38,0\n41,0,36,0,20,0,5,0,30,0,8,0\n23,0,35,0,29,0,37,0,15,0,31,0\n18,0,27,0,12,0,9,0,7,0,34,0\n38,0,26,0,5,0,24,0,14,0,40,0\n19,0,13,0,3,0,21,0,2,0,36,0\n25,0,28,0,30,0,6,0,11,0,16,0\n32,0,17,0,33,0,41,0,1,0,10,0\n22,0,39,0,35,0,4,0,8,0,13,0\n"
  },
  {
    "path": "schedules/42_1.csv",
    "content": "15,0,17,0,32,0,24,0,12,0,9,0\n1,0,13,0,22,0,26,0,19,0,37,0\n40,0,38,0,29,0,33,0,35,0,36,0\n30,0,5,0,21,0,10,0,7,0,39,0\n8,0,3,0,2,0,23,0,20,0,34,0\n18,0,16,0,28,0,11,0,42,0,4,0\n25,0,41,0,14,0,27,0,6,0,31,0\n"
  },
  {
    "path": "schedules/42_10.csv",
    "content": "15,0,37,0,9,0,41,0,24,0,19,0\n13,0,10,0,7,0,16,0,18,0,23,0\n2,0,36,0,32,0,4,0,11,0,1,0\n8,0,6,0,35,0,38,0,20,0,29,0\n21,0,33,0,34,0,14,0,25,0,28,0\n40,0,22,0,42,0,17,0,26,0,27,0\n39,0,31,0,3,0,30,0,12,0,5,0\n29,0,35,0,25,0,1,0,9,0,28,0\n21,0,41,0,7,0,32,0,24,0,38,0\n23,0,8,0,19,0,27,0,31,0,34,0\n12,0,39,0,11,0,6,0,10,0,15,0\n22,0,30,0,26,0,13,0,4,0,33,0\n40,0,14,0,3,0,18,0,2,0,20,0\n37,0,36,0,5,0,17,0,42,0,16,0\n28,0,31,0,8,0,7,0,22,0,24,0\n29,0,11,0,21,0,41,0,13,0,2,0\n6,0,18,0,30,0,36,0,27,0,35,0\n23,0,34,0,26,0,25,0,5,0,3,0\n4,0,14,0,39,0,40,0,10,0,37,0\n42,0,9,0,20,0,15,0,1,0,33,0\n38,0,12,0,17,0,32,0,19,0,16,0\n2,0,27,0,37,0,34,0,29,0,7,0\n15,0,30,0,4,0,25,0,8,0,21,0\n19,0,1,0,14,0,22,0,6,0,5,0\n36,0,24,0,39,0,41,0,23,0,33,0\n18,0,28,0,10,0,38,0,42,0,3,0\n32,0,31,0,13,0,35,0,40,0,20,0\n9,0,17,0,11,0,26,0,12,0,16,0\n39,0,1,0,37,0,38,0,27,0,21,0\n20,0,33,0,28,0,41,0,31,0,5,0\n32,0,4,0,40,0,9,0,6,0,34,0\n11,0,25,0,19,0,18,0,8,0,42,0\n7,0,15,0,12,0,23,0,22,0,35,0\n14,0,2,0,17,0,13,0,24,0,30,0\n16,0,10,0,3,0,26,0,29,0,36,0\n28,0,7,0,23,0,6,0,11,0,40,0\n33,0,8,0,5,0,12,0,21,0,2,0\n36,0,25,0,18,0,17,0,37,0,29,0\n34,0,42,0,19,0,39,0,13,0,35,0\n41,0,30,0,3,0,9,0,22,0,32,0\n38,0,26,0,1,0,31,0,15,0,14,0\n20,0,16,0,27,0,4,0,24,0,10,0\n32,0,30,0,7,0,19,0,39,0,29,0\n40,0,26,0,13,0,1,0,8,0,41,0\n33,0,42,0,10,0,21,0,3,0,6,0\n38,0,16,0,36,0,25,0,34,0,24,0\n31,0,12,0,9,0,37,0,14,0,18,0\n17,0,28,0,35,0,2,0,23,0,4,0\n22,0,11,0,27,0,5,0,20,0,15,0\n6,0,24,0,37,0,8,0,3,0,13,0\n25,0,1,0,40,0,2,0,10,0,19,0\n29,0,31,0,4,0,42,0,7,0,5,0\n27,0,18,0,15,0,32,0,33,0,17,0\n38,0,22,0,28,0,9,0,39,0,26,0\n34,0,30,0,35,0,16,0,41,0,11,0\n36,0,23,0,12,0,21,0,14,0,20,0\n17,0,1,0,3,0,39,0,7,0,8,0\n16,0,29,0,6,0,33,0,31,0,19,0\n20,0,10,0,32,0,30,0,28,0,37,0\n12,0,14,0,41,0,27,0,25,0,42,0\n26,0,21,0,24,0,11,0,35,0,18,0\n5,0,23,0,13,0,4,0,9,0,38,0\n2,0,34,0,40,0,36,0,15,0,22,0\n24,0,16,0,8,0,32,0,42,0,14,0\n9,0,21,0,10,0,31,0,7,0,17,0\n41,0,34,0,4,0,18,0,12,0,1,0\n29,0,33,0,22,0,23,0,11,0,37,0\n15,0,13,0,19,0,36,0,3,0,28,0\n5,0,38,0,35,0,27,0,40,0,30,0\n20,0,6,0,39,0,26,0,2,0,25,0\n"
  },
  {
    "path": "schedules/42_11.csv",
    "content": "24,0,7,0,8,0,37,0,30,0,6,0\n22,0,32,0,41,0,34,0,29,0,40,0\n39,0,11,0,16,0,4,0,1,0,20,0\n10,0,27,0,9,0,23,0,5,0,42,0\n33,0,25,0,28,0,18,0,19,0,35,0\n38,0,17,0,14,0,3,0,15,0,12,0\n36,0,31,0,21,0,2,0,26,0,13,0\n23,0,16,0,28,0,22,0,24,0,33,0\n32,0,38,0,9,0,8,0,19,0,25,0\n4,0,41,0,39,0,14,0,7,0,12,0\n29,0,20,0,27,0,37,0,35,0,31,0\n17,0,18,0,36,0,5,0,34,0,26,0\n40,0,11,0,15,0,3,0,13,0,21,0\n30,0,42,0,2,0,6,0,10,0,1,0\n36,0,39,0,25,0,41,0,5,0,24,0\n22,0,23,0,27,0,17,0,15,0,4,0\n6,0,13,0,16,0,10,0,32,0,3,0\n31,0,33,0,1,0,21,0,38,0,34,0\n30,0,19,0,12,0,18,0,40,0,2,0\n14,0,35,0,42,0,11,0,37,0,8,0\n29,0,26,0,28,0,20,0,9,0,7,0\n24,0,4,0,13,0,33,0,21,0,19,0\n34,0,1,0,11,0,23,0,17,0,37,0\n6,0,15,0,27,0,14,0,25,0,26,0\n10,0,7,0,35,0,36,0,40,0,22,0\n38,0,18,0,16,0,41,0,29,0,9,0\n5,0,20,0,31,0,32,0,30,0,8,0\n3,0,2,0,28,0,42,0,39,0,12,0\n18,0,7,0,23,0,35,0,27,0,1,0\n20,0,37,0,13,0,4,0,6,0,25,0\n10,0,19,0,26,0,31,0,41,0,11,0\n34,0,9,0,3,0,33,0,40,0,30,0\n28,0,8,0,15,0,12,0,16,0,36,0\n21,0,42,0,24,0,32,0,29,0,17,0\n22,0,2,0,14,0,39,0,38,0,5,0\n7,0,6,0,19,0,34,0,35,0,16,0\n11,0,29,0,4,0,9,0,30,0,31,0\n28,0,17,0,5,0,13,0,22,0,25,0\n38,0,23,0,3,0,14,0,20,0,36,0\n33,0,41,0,15,0,1,0,8,0,42,0\n37,0,39,0,2,0,26,0,18,0,21,0\n12,0,40,0,10,0,24,0,27,0,32,0\n34,0,17,0,30,0,19,0,14,0,28,0\n16,0,22,0,8,0,23,0,11,0,2,0\n18,0,12,0,9,0,37,0,15,0,10,0\n25,0,29,0,31,0,1,0,3,0,36,0\n21,0,4,0,5,0,6,0,35,0,41,0\n40,0,42,0,32,0,24,0,39,0,20,0\n27,0,7,0,26,0,13,0,38,0,33,0\n41,0,30,0,3,0,37,0,22,0,28,0\n42,0,17,0,25,0,40,0,16,0,31,0\n33,0,20,0,34,0,2,0,10,0,4,0\n9,0,6,0,36,0,21,0,39,0,27,0\n13,0,32,0,14,0,18,0,24,0,1,0\n26,0,35,0,11,0,38,0,8,0,12,0\n29,0,5,0,7,0,15,0,23,0,19,0\n16,0,21,0,41,0,27,0,14,0,30,0\n3,0,24,0,35,0,17,0,2,0,9,0\n25,0,5,0,18,0,7,0,42,0,11,0\n23,0,6,0,40,0,38,0,31,0,28,0\n36,0,32,0,15,0,4,0,37,0,33,0\n10,0,34,0,8,0,29,0,39,0,13,0\n1,0,19,0,22,0,26,0,12,0,20,0\n2,0,31,0,27,0,28,0,11,0,32,0\n35,0,33,0,29,0,14,0,6,0,39,0\n36,0,13,0,23,0,42,0,41,0,19,0\n38,0,26,0,15,0,16,0,30,0,24,0\n20,0,10,0,21,0,34,0,25,0,7,0\n37,0,1,0,12,0,5,0,9,0,22,0\n18,0,4,0,8,0,40,0,17,0,3,0\n30,0,39,0,35,0,15,0,13,0,31,0\n14,0,9,0,1,0,28,0,36,0,10,0\n5,0,37,0,40,0,26,0,33,0,16,0\n38,0,22,0,4,0,6,0,42,0,18,0\n19,0,34,0,24,0,11,0,27,0,3,0\n2,0,20,0,32,0,7,0,17,0,41,0\n25,0,21,0,12,0,23,0,29,0,8,0\n"
  },
  {
    "path": "schedules/42_12.csv",
    "content": "2,0,7,0,11,0,38,0,21,0,18,0\n1,0,33,0,22,0,41,0,30,0,5,0\n39,0,4,0,27,0,17,0,25,0,36,0\n23,0,32,0,3,0,31,0,12,0,40,0\n42,0,24,0,37,0,16,0,29,0,34,0\n35,0,15,0,8,0,10,0,14,0,28,0\n9,0,19,0,20,0,13,0,6,0,26,0\n32,0,36,0,38,0,33,0,41,0,23,0\n1,0,8,0,30,0,18,0,27,0,14,0\n9,0,40,0,3,0,42,0,20,0,39,0\n12,0,37,0,21,0,17,0,19,0,15,0\n35,0,10,0,29,0,2,0,25,0,13,0\n28,0,4,0,11,0,22,0,24,0,16,0\n6,0,7,0,31,0,34,0,5,0,26,0\n20,0,8,0,13,0,42,0,33,0,32,0\n28,0,29,0,27,0,19,0,40,0,41,0\n37,0,5,0,23,0,36,0,21,0,24,0\n15,0,14,0,3,0,6,0,4,0,38,0\n31,0,10,0,26,0,7,0,16,0,18,0\n39,0,17,0,34,0,2,0,30,0,35,0\n22,0,11,0,25,0,1,0,12,0,9,0\n32,0,41,0,24,0,21,0,6,0,15,0\n23,0,29,0,39,0,34,0,36,0,28,0\n18,0,5,0,19,0,4,0,7,0,9,0\n13,0,11,0,35,0,27,0,22,0,8,0\n3,0,16,0,31,0,25,0,33,0,14,0\n2,0,26,0,40,0,20,0,37,0,1,0\n17,0,30,0,12,0,42,0,38,0,10,0\n35,0,24,0,27,0,29,0,9,0,32,0\n41,0,3,0,2,0,7,0,8,0,5,0\n18,0,36,0,40,0,42,0,13,0,17,0\n1,0,16,0,4,0,23,0,30,0,15,0\n10,0,6,0,12,0,37,0,28,0,33,0\n26,0,39,0,25,0,21,0,11,0,14,0\n20,0,38,0,22,0,31,0,34,0,19,0\n8,0,41,0,6,0,29,0,17,0,5,0\n26,0,16,0,37,0,1,0,39,0,13,0\n19,0,36,0,12,0,18,0,31,0,35,0\n21,0,4,0,34,0,33,0,11,0,27,0\n14,0,40,0,22,0,7,0,10,0,32,0\n30,0,28,0,24,0,20,0,3,0,25,0\n9,0,23,0,42,0,38,0,15,0,2,0\n41,0,17,0,11,0,34,0,32,0,37,0\n5,0,6,0,27,0,16,0,35,0,12,0\n1,0,19,0,38,0,39,0,10,0,36,0\n18,0,9,0,15,0,20,0,24,0,40,0\n25,0,7,0,23,0,13,0,30,0,14,0\n33,0,26,0,3,0,4,0,29,0,22,0\n2,0,8,0,42,0,21,0,31,0,28,0\n23,0,16,0,11,0,17,0,35,0,20,0\n15,0,34,0,22,0,3,0,27,0,36,0\n21,0,32,0,39,0,18,0,12,0,29,0\n30,0,7,0,37,0,25,0,9,0,8,0\n41,0,14,0,4,0,6,0,42,0,40,0\n38,0,31,0,5,0,26,0,1,0,28,0\n33,0,10,0,2,0,19,0,24,0,13,0\n16,0,17,0,14,0,36,0,41,0,9,0\n29,0,40,0,21,0,31,0,30,0,22,0\n25,0,19,0,27,0,28,0,6,0,18,0\n23,0,24,0,12,0,38,0,8,0,26,0\n42,0,1,0,35,0,33,0,7,0,34,0\n32,0,20,0,4,0,2,0,39,0,37,0\n10,0,15,0,13,0,5,0,3,0,11,0\n14,0,34,0,38,0,16,0,9,0,21,0\n26,0,30,0,42,0,32,0,35,0,19,0\n29,0,24,0,6,0,1,0,10,0,23,0\n36,0,7,0,20,0,12,0,4,0,8,0\n5,0,13,0,33,0,40,0,11,0,39,0\n17,0,37,0,18,0,3,0,22,0,28,0\n41,0,25,0,15,0,2,0,27,0,31,0\n34,0,13,0,12,0,30,0,40,0,4,0\n33,0,16,0,19,0,23,0,8,0,18,0\n26,0,20,0,21,0,10,0,41,0,27,0\n38,0,35,0,7,0,29,0,15,0,37,0\n14,0,36,0,42,0,2,0,22,0,5,0\n11,0,31,0,24,0,6,0,39,0,3,0\n28,0,9,0,17,0,32,0,25,0,1,0\n19,0,29,0,2,0,12,0,14,0,20,0\n39,0,8,0,33,0,15,0,27,0,42,0\n1,0,21,0,41,0,4,0,35,0,3,0\n22,0,18,0,10,0,34,0,6,0,23,0\n13,0,28,0,7,0,26,0,24,0,17,0\n37,0,36,0,31,0,9,0,30,0,11,0\n5,0,32,0,40,0,38,0,25,0,16,0\n"
  },
  {
    "path": "schedules/42_13.csv",
    "content": "2,0,35,0,21,0,6,0,15,0,23,0\n9,0,3,0,29,0,8,0,19,0,22,0\n5,0,1,0,16,0,39,0,13,0,34,0\n25,0,11,0,18,0,20,0,41,0,37,0\n36,0,10,0,7,0,26,0,38,0,31,0\n12,0,40,0,42,0,4,0,32,0,14,0\n24,0,28,0,33,0,17,0,30,0,27,0\n36,0,25,0,21,0,18,0,9,0,39,0\n15,0,16,0,20,0,31,0,37,0,13,0\n8,0,28,0,30,0,35,0,12,0,34,0\n7,0,32,0,11,0,6,0,22,0,17,0\n27,0,2,0,26,0,40,0,24,0,14,0\n3,0,5,0,19,0,1,0,38,0,42,0\n33,0,4,0,41,0,23,0,29,0,10,0\n26,0,14,0,6,0,17,0,21,0,15,0\n37,0,24,0,22,0,5,0,35,0,7,0\n23,0,42,0,13,0,41,0,28,0,25,0\n39,0,40,0,4,0,8,0,3,0,20,0\n9,0,36,0,38,0,33,0,31,0,29,0\n19,0,11,0,10,0,16,0,34,0,2,0\n27,0,18,0,1,0,30,0,12,0,32,0\n5,0,37,0,8,0,26,0,23,0,9,0\n16,0,40,0,33,0,28,0,36,0,22,0\n39,0,25,0,12,0,38,0,24,0,11,0\n3,0,31,0,6,0,35,0,41,0,27,0\n29,0,1,0,20,0,42,0,30,0,2,0\n19,0,32,0,13,0,10,0,14,0,21,0\n4,0,18,0,17,0,7,0,15,0,34,0\n1,0,37,0,2,0,12,0,29,0,28,0\n21,0,24,0,3,0,26,0,36,0,33,0\n31,0,30,0,25,0,5,0,10,0,39,0\n6,0,11,0,42,0,7,0,23,0,40,0\n38,0,8,0,41,0,16,0,22,0,4,0\n19,0,27,0,14,0,34,0,18,0,20,0\n35,0,13,0,15,0,9,0,17,0,32,0\n2,0,39,0,33,0,37,0,4,0,21,0\n31,0,7,0,12,0,40,0,29,0,19,0\n15,0,30,0,9,0,25,0,10,0,38,0\n32,0,23,0,34,0,13,0,27,0,28,0\n26,0,17,0,16,0,8,0,42,0,18,0\n24,0,20,0,6,0,41,0,5,0,22,0\n1,0,36,0,11,0,14,0,3,0,35,0\n38,0,15,0,27,0,37,0,9,0,42,0\n41,0,12,0,10,0,7,0,8,0,26,0\n30,0,33,0,13,0,24,0,23,0,2,0\n35,0,40,0,20,0,21,0,18,0,16,0\n19,0,28,0,17,0,4,0,5,0,36,0\n3,0,34,0,25,0,32,0,29,0,6,0\n11,0,14,0,22,0,39,0,31,0,1,0\n38,0,20,0,33,0,28,0,10,0,42,0\n13,0,4,0,8,0,37,0,6,0,35,0\n32,0,26,0,39,0,19,0,2,0,41,0\n9,0,22,0,40,0,30,0,34,0,14,0\n31,0,16,0,23,0,18,0,36,0,24,0\n7,0,25,0,17,0,1,0,12,0,3,0\n29,0,15,0,5,0,11,0,27,0,21,0\n36,0,34,0,6,0,20,0,39,0,19,0\n8,0,9,0,14,0,41,0,1,0,24,0\n42,0,35,0,22,0,12,0,5,0,2,0\n33,0,21,0,32,0,16,0,7,0,30,0\n26,0,40,0,28,0,25,0,4,0,15,0\n10,0,27,0,31,0,37,0,23,0,3,0\n29,0,18,0,38,0,13,0,17,0,11,0\n41,0,15,0,26,0,33,0,1,0,22,0\n30,0,37,0,36,0,6,0,19,0,7,0\n28,0,2,0,18,0,11,0,3,0,39,0\n12,0,17,0,23,0,21,0,9,0,20,0\n29,0,14,0,25,0,32,0,16,0,10,0\n4,0,42,0,34,0,31,0,24,0,35,0\n5,0,38,0,13,0,27,0,8,0,40,0\n23,0,21,0,28,0,19,0,1,0,25,0\n24,0,4,0,26,0,11,0,20,0,30,0\n38,0,22,0,12,0,18,0,13,0,6,0\n37,0,10,0,34,0,40,0,41,0,17,0\n39,0,29,0,35,0,33,0,14,0,7,0\n5,0,27,0,9,0,42,0,16,0,3,0\n31,0,8,0,36,0,15,0,2,0,32,0\n35,0,38,0,23,0,29,0,34,0,26,0\n4,0,30,0,3,0,13,0,16,0,12,0\n20,0,7,0,2,0,25,0,33,0,9,0\n24,0,42,0,19,0,37,0,18,0,15,0\n14,0,28,0,31,0,8,0,21,0,6,0\n39,0,27,0,22,0,17,0,10,0,1,0\n32,0,41,0,36,0,40,0,5,0,11,0\n18,0,12,0,19,0,15,0,33,0,8,0\n16,0,37,0,14,0,23,0,25,0,22,0\n34,0,21,0,5,0,38,0,3,0,2,0\n24,0,17,0,29,0,31,0,20,0,32,0\n13,0,9,0,7,0,11,0,4,0,28,0\n10,0,40,0,6,0,1,0,26,0,35,0\n41,0,30,0,39,0,27,0,42,0,36,0\n"
  },
  {
    "path": "schedules/42_14.csv",
    "content": "10,0,25,0,17,0,23,0,34,0,41,0\n21,0,11,0,30,0,42,0,13,0,40,0\n3,0,35,0,4,0,12,0,26,0,28,0\n15,0,20,0,14,0,1,0,7,0,31,0\n2,0,32,0,24,0,9,0,6,0,5,0\n16,0,37,0,39,0,38,0,8,0,22,0\n19,0,36,0,33,0,18,0,29,0,27,0\n20,0,3,0,10,0,34,0,2,0,35,0\n37,0,9,0,4,0,30,0,26,0,31,0\n28,0,25,0,36,0,15,0,22,0,33,0\n18,0,16,0,42,0,17,0,29,0,24,0\n41,0,27,0,14,0,39,0,7,0,11,0\n5,0,13,0,12,0,19,0,40,0,8,0\n32,0,1,0,38,0,21,0,23,0,6,0\n15,0,18,0,2,0,27,0,16,0,4,0\n12,0,25,0,35,0,11,0,36,0,3,0\n7,0,41,0,24,0,14,0,19,0,34,0\n22,0,17,0,40,0,32,0,20,0,5,0\n30,0,38,0,37,0,13,0,28,0,42,0\n29,0,31,0,6,0,8,0,1,0,10,0\n21,0,23,0,33,0,39,0,9,0,26,0\n27,0,40,0,30,0,17,0,3,0,41,0\n18,0,38,0,36,0,14,0,10,0,12,0\n8,0,29,0,32,0,22,0,35,0,21,0\n5,0,31,0,25,0,20,0,24,0,37,0\n34,0,1,0,11,0,4,0,23,0,28,0\n13,0,6,0,7,0,16,0,33,0,39,0\n2,0,42,0,26,0,19,0,15,0,9,0\n23,0,37,0,29,0,3,0,24,0,12,0\n13,0,27,0,14,0,35,0,32,0,18,0\n10,0,28,0,34,0,39,0,9,0,8,0\n21,0,1,0,15,0,33,0,17,0,5,0\n30,0,25,0,6,0,11,0,41,0,20,0\n2,0,7,0,38,0,36,0,42,0,4,0\n16,0,26,0,22,0,40,0,31,0,19,0\n13,0,8,0,25,0,14,0,33,0,27,0\n21,0,23,0,38,0,20,0,30,0,17,0\n11,0,31,0,12,0,26,0,18,0,37,0\n10,0,7,0,9,0,1,0,24,0,40,0\n34,0,36,0,6,0,2,0,5,0,28,0\n16,0,35,0,19,0,39,0,4,0,32,0\n3,0,22,0,29,0,41,0,15,0,42,0\n8,0,5,0,21,0,11,0,24,0,18,0\n39,0,28,0,31,0,27,0,36,0,35,0\n34,0,29,0,16,0,15,0,12,0,32,0\n13,0,9,0,41,0,38,0,40,0,25,0\n33,0,26,0,7,0,20,0,22,0,1,0\n17,0,4,0,19,0,3,0,6,0,37,0\n23,0,30,0,42,0,10,0,14,0,2,0\n12,0,9,0,16,0,34,0,18,0,25,0\n24,0,27,0,22,0,6,0,38,0,33,0\n11,0,37,0,42,0,1,0,26,0,5,0\n13,0,21,0,4,0,31,0,2,0,3,0\n39,0,40,0,41,0,17,0,23,0,32,0\n19,0,20,0,28,0,35,0,14,0,29,0\n8,0,15,0,7,0,30,0,10,0,36,0\n1,0,9,0,24,0,41,0,38,0,16,0\n27,0,17,0,20,0,22,0,14,0,4,0\n32,0,3,0,34,0,21,0,42,0,31,0\n30,0,28,0,18,0,19,0,23,0,26,0\n12,0,2,0,33,0,25,0,11,0,40,0\n35,0,8,0,6,0,7,0,15,0,37,0\n10,0,39,0,13,0,36,0,29,0,5,0\n18,0,41,0,31,0,40,0,34,0,27,0\n23,0,8,0,11,0,6,0,15,0,22,0\n1,0,3,0,28,0,24,0,26,0,13,0\n36,0,37,0,12,0,2,0,39,0,19,0\n38,0,14,0,5,0,35,0,17,0,9,0\n42,0,32,0,10,0,16,0,20,0,25,0\n29,0,33,0,4,0,21,0,30,0,7,0\n22,0,36,0,9,0,23,0,13,0,35,0\n11,0,40,0,16,0,37,0,31,0,27,0\n2,0,6,0,32,0,25,0,30,0,1,0\n26,0,14,0,21,0,39,0,41,0,12,0\n4,0,5,0,15,0,24,0,10,0,28,0\n18,0,20,0,33,0,3,0,17,0,7,0\n38,0,29,0,19,0,34,0,8,0,42,0\n30,0,22,0,5,0,6,0,9,0,27,0\n32,0,28,0,41,0,31,0,10,0,33,0\n42,0,7,0,35,0,12,0,18,0,4,0\n14,0,17,0,39,0,11,0,29,0,13,0\n2,0,1,0,23,0,3,0,16,0,8,0\n20,0,26,0,34,0,38,0,15,0,24,0\n19,0,37,0,25,0,21,0,40,0,36,0\n23,0,7,0,14,0,31,0,22,0,9,0\n17,0,18,0,8,0,2,0,26,0,32,0\n24,0,4,0,13,0,20,0,16,0,36,0\n37,0,40,0,28,0,6,0,12,0,42,0\n15,0,39,0,3,0,25,0,41,0,29,0\n21,0,1,0,27,0,10,0,19,0,5,0\n33,0,34,0,30,0,38,0,35,0,11,0\n18,0,22,0,39,0,32,0,7,0,25,0\n40,0,9,0,3,0,37,0,14,0,8,0\n27,0,19,0,12,0,17,0,28,0,16,0\n34,0,31,0,24,0,13,0,2,0,30,0\n35,0,41,0,5,0,38,0,20,0,4,0\n6,0,11,0,26,0,10,0,29,0,21,0\n36,0,15,0,23,0,1,0,42,0,33,0\n"
  },
  {
    "path": "schedules/42_2.csv",
    "content": "22,0,28,0,2,0,26,0,15,0,7,0\n1,0,18,0,42,0,32,0,36,0,38,0\n20,0,27,0,25,0,24,0,29,0,17,0\n6,0,21,0,41,0,23,0,35,0,16,0\n4,0,13,0,8,0,9,0,19,0,5,0\n12,0,3,0,34,0,40,0,33,0,14,0\n39,0,11,0,31,0,30,0,10,0,37,0\n6,0,38,0,23,0,27,0,28,0,4,0\n32,0,33,0,15,0,25,0,41,0,8,0\n12,0,36,0,16,0,11,0,13,0,26,0\n14,0,31,0,9,0,20,0,42,0,21,0\n7,0,29,0,18,0,35,0,34,0,39,0\n19,0,3,0,37,0,1,0,17,0,2,0\n40,0,5,0,30,0,24,0,10,0,22,0\n"
  },
  {
    "path": "schedules/42_3.csv",
    "content": "13,0,35,0,7,0,42,0,17,0,40,0\n16,0,30,0,26,0,10,0,14,0,33,0\n24,0,20,0,39,0,23,0,19,0,1,0\n28,0,37,0,2,0,4,0,36,0,8,0\n38,0,6,0,21,0,31,0,22,0,34,0\n25,0,3,0,29,0,32,0,41,0,15,0\n9,0,5,0,12,0,11,0,18,0,27,0\n4,0,14,0,24,0,34,0,35,0,33,0\n8,0,3,0,39,0,42,0,38,0,10,0\n16,0,22,0,15,0,5,0,28,0,13,0\n32,0,17,0,23,0,21,0,9,0,30,0\n19,0,41,0,2,0,26,0,40,0,12,0\n6,0,36,0,18,0,1,0,29,0,11,0\n25,0,37,0,31,0,27,0,20,0,7,0\n40,0,19,0,9,0,3,0,22,0,14,0\n17,0,33,0,41,0,6,0,5,0,8,0\n26,0,21,0,42,0,20,0,15,0,36,0\n27,0,29,0,28,0,38,0,24,0,30,0\n35,0,31,0,11,0,2,0,32,0,39,0\n10,0,4,0,23,0,13,0,25,0,18,0\n12,0,34,0,1,0,37,0,7,0,16,0\n"
  },
  {
    "path": "schedules/42_4.csv",
    "content": "35,0,42,0,7,0,36,0,12,0,23,0\n15,0,9,0,11,0,20,0,17,0,38,0\n25,0,39,0,21,0,8,0,22,0,19,0\n3,0,41,0,30,0,2,0,37,0,32,0\n27,0,6,0,5,0,40,0,24,0,26,0\n10,0,18,0,31,0,1,0,28,0,33,0\n34,0,29,0,14,0,4,0,13,0,16,0\n17,0,30,0,22,0,26,0,5,0,23,0\n40,0,36,0,33,0,3,0,21,0,15,0\n4,0,12,0,2,0,9,0,1,0,16,0\n7,0,19,0,6,0,18,0,29,0,38,0\n37,0,11,0,10,0,27,0,39,0,13,0\n24,0,32,0,8,0,28,0,42,0,14,0\n20,0,35,0,34,0,25,0,31,0,41,0\n17,0,19,0,16,0,36,0,37,0,6,0\n29,0,28,0,2,0,42,0,39,0,40,0\n26,0,4,0,31,0,7,0,32,0,15,0\n3,0,22,0,1,0,11,0,24,0,35,0\n23,0,13,0,9,0,8,0,18,0,41,0\n12,0,20,0,5,0,21,0,10,0,34,0\n33,0,14,0,38,0,30,0,27,0,25,0\n28,0,6,0,13,0,2,0,15,0,22,0\n17,0,35,0,40,0,8,0,10,0,4,0\n26,0,41,0,11,0,12,0,19,0,33,0\n38,0,31,0,37,0,21,0,14,0,23,0\n32,0,36,0,1,0,25,0,5,0,29,0\n27,0,20,0,18,0,3,0,42,0,16,0\n24,0,39,0,9,0,30,0,34,0,7,0\n"
  },
  {
    "path": "schedules/42_5.csv",
    "content": "1,0,39,0,10,0,33,0,19,0,36,0\n11,0,16,0,9,0,24,0,4,0,15,0\n31,0,2,0,8,0,32,0,14,0,17,0\n26,0,40,0,7,0,41,0,18,0,22,0\n20,0,23,0,13,0,42,0,37,0,28,0\n12,0,30,0,21,0,27,0,5,0,29,0\n25,0,3,0,35,0,6,0,38,0,34,0\n13,0,2,0,32,0,39,0,41,0,4,0\n36,0,14,0,42,0,22,0,24,0,12,0\n1,0,31,0,30,0,15,0,38,0,28,0\n9,0,40,0,37,0,3,0,27,0,10,0\n25,0,7,0,5,0,33,0,17,0,16,0\n11,0,20,0,29,0,35,0,18,0,8,0\n21,0,19,0,34,0,23,0,26,0,6,0\n36,0,32,0,25,0,14,0,30,0,9,0\n28,0,22,0,5,0,3,0,11,0,2,0\n6,0,41,0,29,0,37,0,33,0,24,0\n16,0,27,0,18,0,34,0,1,0,23,0\n35,0,10,0,4,0,21,0,31,0,7,0\n12,0,19,0,13,0,8,0,40,0,38,0\n17,0,39,0,15,0,26,0,20,0,42,0\n33,0,28,0,18,0,21,0,14,0,4,0\n11,0,34,0,32,0,7,0,37,0,12,0\n24,0,8,0,26,0,38,0,10,0,5,0\n15,0,35,0,23,0,2,0,40,0,36,0\n42,0,29,0,39,0,27,0,31,0,25,0\n16,0,41,0,20,0,30,0,19,0,3,0\n6,0,22,0,9,0,13,0,17,0,1,0\n15,0,2,0,12,0,25,0,18,0,10,0\n27,0,32,0,24,0,19,0,28,0,35,0\n38,0,17,0,11,0,23,0,41,0,36,0\n37,0,21,0,8,0,39,0,16,0,22,0\n42,0,4,0,6,0,40,0,5,0,30,0\n20,0,31,0,33,0,13,0,9,0,34,0\n14,0,3,0,26,0,1,0,29,0,7,0\n"
  },
  {
    "path": "schedules/42_6.csv",
    "content": "5,0,3,0,30,0,33,0,17,0,20,0\n37,0,36,0,32,0,1,0,18,0,31,0\n35,0,11,0,28,0,24,0,29,0,6,0\n21,0,4,0,41,0,14,0,10,0,40,0\n2,0,16,0,23,0,26,0,7,0,9,0\n12,0,25,0,8,0,13,0,22,0,27,0\n39,0,34,0,19,0,42,0,38,0,15,0\n40,0,20,0,16,0,29,0,32,0,1,0\n13,0,23,0,35,0,41,0,3,0,36,0\n28,0,38,0,34,0,5,0,21,0,22,0\n9,0,31,0,25,0,4,0,19,0,33,0\n11,0,27,0,10,0,18,0,7,0,15,0\n2,0,30,0,12,0,39,0,24,0,37,0\n17,0,6,0,14,0,42,0,26,0,8,0\n5,0,41,0,29,0,36,0,31,0,15,0\n7,0,24,0,34,0,33,0,40,0,13,0\n35,0,12,0,9,0,20,0,18,0,14,0\n23,0,1,0,19,0,8,0,21,0,30,0\n37,0,27,0,38,0,6,0,3,0,16,0\n32,0,42,0,22,0,2,0,4,0,11,0\n17,0,28,0,26,0,39,0,10,0,25,0\n36,0,6,0,21,0,33,0,12,0,15,0\n8,0,2,0,40,0,38,0,31,0,35,0\n11,0,39,0,1,0,23,0,14,0,5,0\n3,0,22,0,20,0,19,0,7,0,10,0\n24,0,32,0,9,0,41,0,17,0,27,0\n42,0,16,0,18,0,25,0,28,0,30,0\n26,0,37,0,4,0,34,0,29,0,13,0\n40,0,6,0,22,0,39,0,36,0,9,0\n25,0,15,0,24,0,1,0,14,0,3,0\n10,0,33,0,34,0,8,0,16,0,32,0\n13,0,19,0,18,0,29,0,2,0,17,0\n35,0,7,0,5,0,37,0,42,0,21,0\n26,0,11,0,30,0,38,0,12,0,41,0\n31,0,20,0,4,0,27,0,23,0,28,0\n3,0,8,0,24,0,5,0,18,0,9,0\n15,0,22,0,30,0,32,0,35,0,26,0\n29,0,33,0,42,0,12,0,23,0,10,0\n41,0,25,0,6,0,20,0,2,0,34,0\n36,0,38,0,1,0,7,0,17,0,4,0\n28,0,14,0,37,0,27,0,40,0,19,0\n39,0,13,0,31,0,21,0,11,0,16,0\n"
  },
  {
    "path": "schedules/42_7.csv",
    "content": "22,0,18,0,30,0,3,0,2,0,29,0\n8,0,39,0,19,0,1,0,24,0,17,0\n11,0,21,0,33,0,6,0,40,0,37,0\n26,0,41,0,4,0,27,0,15,0,7,0\n20,0,5,0,12,0,34,0,32,0,16,0\n36,0,23,0,14,0,10,0,38,0,25,0\n13,0,31,0,28,0,9,0,42,0,35,0\n32,0,39,0,21,0,7,0,8,0,29,0\n26,0,20,0,40,0,4,0,14,0,22,0\n27,0,25,0,24,0,28,0,12,0,35,0\n9,0,38,0,17,0,5,0,37,0,30,0\n11,0,6,0,13,0,19,0,1,0,36,0\n15,0,16,0,23,0,31,0,18,0,2,0\n42,0,41,0,10,0,34,0,33,0,3,0\n30,0,26,0,32,0,1,0,25,0,13,0\n38,0,31,0,24,0,18,0,4,0,21,0\n3,0,7,0,6,0,34,0,23,0,17,0\n35,0,2,0,41,0,36,0,40,0,8,0\n16,0,12,0,33,0,22,0,11,0,9,0\n5,0,39,0,29,0,20,0,42,0,27,0\n19,0,37,0,15,0,10,0,28,0,14,0\n40,0,12,0,7,0,17,0,36,0,31,0\n20,0,29,0,4,0,6,0,23,0,9,0\n42,0,21,0,2,0,25,0,14,0,11,0\n35,0,32,0,19,0,33,0,15,0,30,0\n34,0,28,0,18,0,39,0,26,0,1,0\n3,0,8,0,27,0,37,0,16,0,38,0\n10,0,13,0,22,0,5,0,24,0,41,0\n25,0,40,0,18,0,9,0,20,0,19,0\n30,0,8,0,35,0,14,0,6,0,12,0\n22,0,27,0,1,0,23,0,21,0,10,0\n29,0,31,0,33,0,26,0,5,0,36,0\n42,0,16,0,28,0,41,0,7,0,17,0\n11,0,39,0,15,0,3,0,38,0,13,0\n34,0,37,0,2,0,24,0,32,0,4,0\n23,0,42,0,26,0,19,0,21,0,12,0\n25,0,16,0,17,0,29,0,15,0,1,0\n8,0,41,0,11,0,30,0,20,0,31,0\n37,0,4,0,10,0,18,0,35,0,39,0\n24,0,13,0,34,0,27,0,33,0,40,0\n38,0,36,0,6,0,22,0,32,0,28,0\n9,0,5,0,3,0,7,0,14,0,2,0\n23,0,12,0,29,0,13,0,41,0,37,0\n25,0,33,0,19,0,31,0,4,0,39,0\n30,0,3,0,28,0,40,0,5,0,21,0\n15,0,36,0,22,0,8,0,42,0,34,0\n14,0,18,0,17,0,32,0,11,0,27,0\n6,0,10,0,24,0,16,0,9,0,26,0\n7,0,1,0,35,0,38,0,20,0,2,0\n"
  },
  {
    "path": "schedules/42_8.csv",
    "content": "2,0,15,0,30,0,37,0,39,0,5,0\n12,0,9,0,16,0,13,0,34,0,14,0\n42,0,10,0,21,0,41,0,40,0,22,0\n17,0,35,0,26,0,1,0,19,0,20,0\n3,0,25,0,28,0,18,0,11,0,7,0\n38,0,6,0,33,0,27,0,36,0,8,0\n31,0,4,0,32,0,23,0,24,0,29,0\n1,0,37,0,30,0,21,0,12,0,25,0\n27,0,3,0,33,0,16,0,10,0,2,0\n31,0,38,0,9,0,35,0,28,0,42,0\n14,0,5,0,40,0,18,0,20,0,32,0\n17,0,23,0,7,0,24,0,13,0,36,0\n29,0,15,0,39,0,6,0,19,0,22,0\n26,0,4,0,41,0,11,0,8,0,34,0\n1,0,27,0,5,0,31,0,7,0,42,0\n21,0,28,0,16,0,15,0,32,0,17,0\n33,0,40,0,39,0,3,0,24,0,26,0\n6,0,30,0,18,0,9,0,2,0,4,0\n13,0,37,0,8,0,19,0,11,0,14,0\n10,0,29,0,41,0,36,0,12,0,35,0\n25,0,20,0,22,0,34,0,23,0,38,0\n18,0,24,0,21,0,11,0,16,0,26,0\n36,0,41,0,19,0,5,0,9,0,30,0\n34,0,40,0,7,0,35,0,39,0,6,0\n10,0,13,0,4,0,15,0,25,0,38,0\n1,0,42,0,23,0,2,0,33,0,29,0\n20,0,14,0,37,0,28,0,22,0,27,0\n31,0,12,0,17,0,3,0,32,0,8,0\n35,0,24,0,19,0,42,0,2,0,25,0\n16,0,36,0,37,0,40,0,4,0,1,0\n7,0,38,0,27,0,26,0,12,0,32,0\n18,0,13,0,15,0,20,0,41,0,31,0\n17,0,11,0,6,0,22,0,33,0,14,0\n21,0,9,0,34,0,5,0,29,0,3,0\n23,0,8,0,10,0,39,0,28,0,30,0\n42,0,12,0,11,0,20,0,15,0,36,0\n19,0,31,0,2,0,38,0,40,0,16,0\n14,0,7,0,32,0,33,0,30,0,41,0\n22,0,24,0,8,0,9,0,1,0,18,0\n13,0,35,0,23,0,6,0,21,0,3,0\n4,0,25,0,5,0,17,0,27,0,39,0\n26,0,29,0,34,0,10,0,37,0,28,0\n14,0,38,0,3,0,24,0,1,0,15,0\n20,0,12,0,33,0,4,0,19,0,21,0\n34,0,32,0,39,0,36,0,18,0,42,0\n37,0,7,0,2,0,10,0,17,0,9,0\n6,0,25,0,41,0,26,0,31,0,28,0\n22,0,16,0,23,0,8,0,5,0,35,0\n29,0,40,0,30,0,13,0,27,0,11,0\n34,0,36,0,31,0,14,0,21,0,2,0\n38,0,18,0,35,0,37,0,33,0,17,0\n20,0,16,0,8,0,25,0,29,0,7,0\n42,0,22,0,26,0,4,0,30,0,3,0\n5,0,11,0,24,0,12,0,10,0,6,0\n32,0,28,0,1,0,13,0,39,0,19,0\n15,0,9,0,41,0,27,0,23,0,40,0\n"
  },
  {
    "path": "schedules/42_9.csv",
    "content": "25,0,10,0,39,0,41,0,15,0,1,0\n19,0,13,0,12,0,9,0,11,0,17,0\n34,0,33,0,7,0,40,0,35,0,24,0\n28,0,18,0,5,0,21,0,37,0,26,0\n4,0,20,0,2,0,6,0,8,0,16,0\n27,0,31,0,22,0,38,0,3,0,23,0\n32,0,30,0,42,0,14,0,29,0,36,0\n35,0,4,0,16,0,37,0,10,0,12,0\n33,0,11,0,22,0,39,0,20,0,28,0\n5,0,31,0,1,0,36,0,32,0,2,0\n38,0,18,0,40,0,41,0,9,0,19,0\n8,0,24,0,23,0,42,0,3,0,6,0\n30,0,26,0,14,0,34,0,25,0,17,0\n21,0,29,0,15,0,27,0,13,0,7,0\n3,0,36,0,9,0,4,0,10,0,40,0\n19,0,38,0,20,0,30,0,39,0,5,0\n24,0,34,0,14,0,11,0,2,0,23,0\n7,0,15,0,8,0,17,0,22,0,18,0\n12,0,28,0,25,0,29,0,27,0,6,0\n16,0,26,0,41,0,21,0,31,0,33,0\n37,0,35,0,42,0,1,0,13,0,32,0\n36,0,34,0,18,0,12,0,2,0,38,0\n4,0,8,0,26,0,19,0,24,0,29,0\n28,0,10,0,1,0,31,0,7,0,20,0\n40,0,13,0,21,0,39,0,32,0,14,0\n30,0,6,0,15,0,9,0,23,0,37,0\n5,0,3,0,22,0,35,0,25,0,33,0\n42,0,11,0,41,0,17,0,16,0,27,0\n9,0,24,0,6,0,39,0,29,0,1,0\n2,0,14,0,37,0,19,0,7,0,3,0\n30,0,41,0,21,0,26,0,12,0,35,0\n40,0,42,0,17,0,22,0,16,0,28,0\n36,0,20,0,23,0,25,0,18,0,32,0\n38,0,11,0,31,0,15,0,4,0,33,0\n34,0,8,0,27,0,5,0,13,0,10,0\n25,0,29,0,9,0,21,0,2,0,22,0\n33,0,17,0,38,0,20,0,6,0,37,0\n11,0,27,0,3,0,30,0,1,0,18,0\n28,0,19,0,14,0,35,0,10,0,32,0\n16,0,40,0,12,0,23,0,15,0,5,0\n8,0,13,0,41,0,26,0,36,0,24,0\n7,0,42,0,39,0,31,0,4,0,34,0\n1,0,20,0,21,0,40,0,23,0,19,0\n12,0,15,0,36,0,28,0,3,0,26,0\n41,0,32,0,22,0,6,0,2,0,34,0\n11,0,29,0,10,0,38,0,42,0,5,0\n16,0,13,0,33,0,7,0,30,0,25,0\n37,0,24,0,4,0,27,0,18,0,14,0\n39,0,31,0,9,0,17,0,8,0,35,0\n20,0,15,0,25,0,19,0,42,0,34,0\n22,0,6,0,7,0,5,0,11,0,26,0\n12,0,27,0,1,0,14,0,33,0,8,0\n28,0,2,0,40,0,13,0,4,0,30,0\n18,0,29,0,23,0,31,0,35,0,41,0\n24,0,3,0,32,0,38,0,9,0,16,0\n39,0,17,0,37,0,36,0,21,0,10,0\n19,0,6,0,33,0,42,0,13,0,18,0\n1,0,16,0,3,0,34,0,28,0,29,0\n9,0,14,0,15,0,20,0,41,0,5,0\n7,0,21,0,35,0,4,0,36,0,38,0\n2,0,17,0,26,0,23,0,39,0,27,0\n37,0,40,0,32,0,8,0,11,0,25,0\n24,0,31,0,10,0,30,0,22,0,12,0\n"
  },
  {
    "path": "schedules/43_1.csv",
    "content": "19,0,23,0,3,0,1,0,40,0,9,0\n11,0,32,0,42,0,22,0,5,0,16,0\n43,0,15,0,26,0,38,0,14,0,6,0\n36,0,41,0,34,0,39,0,25,0,33,0\n24,0,21,0,30,0,17,0,29,0,10,0\n37,0,31,0,27,0,8,0,2,0,35,0\n7,0,20,0,18,0,28,0,4,0,12,0\n13,0,11,1,16,1,3,1,41,1,36,1\n"
  },
  {
    "path": "schedules/43_10.csv",
    "content": "28,0,38,0,26,0,9,0,39,0,18,0\n15,0,24,0,31,0,5,0,13,0,25,0\n8,0,41,0,10,0,42,0,29,0,22,0\n17,0,34,0,32,0,36,0,43,0,11,0\n14,0,37,0,7,0,19,0,23,0,6,0\n33,0,27,0,1,0,4,0,40,0,2,0\n30,0,3,0,21,0,12,0,16,0,20,0\n35,0,24,0,8,0,22,0,36,0,19,0\n23,0,42,0,39,0,41,0,2,0,13,0\n37,0,4,0,29,0,15,0,21,0,7,0\n12,0,26,0,14,0,11,0,35,0,20,0\n3,0,34,0,18,0,31,0,40,0,6,0\n9,0,25,0,27,0,43,0,1,0,30,0\n33,0,16,0,32,0,28,0,17,0,5,0\n10,0,19,0,15,0,38,0,21,0,12,0\n23,1,14,0,36,0,40,1,3,0,8,0\n16,0,37,0,5,0,1,0,41,0,35,0\n25,0,22,0,7,0,32,0,39,0,26,0\n18,0,38,0,43,0,2,0,30,0,33,0\n4,0,6,0,20,0,9,0,13,0,10,0\n42,0,27,0,28,0,31,0,11,0,17,0\n29,0,34,0,15,0,24,0,33,0,12,0\n10,0,3,0,39,0,1,0,32,0,23,0\n31,0,5,0,7,0,14,0,9,0,17,0\n35,0,43,0,42,0,24,0,28,0,6,0\n40,0,34,0,13,0,38,0,16,0,22,0\n36,0,27,0,4,0,18,0,41,0,25,0\n8,0,11,0,2,0,37,0,20,0,30,0\n26,0,19,0,31,0,21,0,29,0,32,0\n23,0,16,0,10,0,15,0,5,0,36,0\n6,0,12,0,2,0,40,0,7,0,28,0\n27,0,17,0,8,0,39,0,21,0,24,0\n19,0,37,0,3,0,9,0,34,0,42,0\n25,0,26,0,20,0,33,0,38,0,41,0\n30,0,35,0,22,0,43,0,4,0,14,0\n1,0,29,0,13,0,18,0,11,0,19,0\n23,0,7,0,27,0,28,0,34,0,20,0\n10,0,4,0,12,0,16,0,31,0,39,0\n32,0,22,0,18,0,42,0,15,0,14,0\n40,0,43,0,37,0,5,0,8,0,26,0\n1,0,6,0,36,0,30,0,29,0,38,0\n25,0,35,0,2,0,13,0,3,0,17,0\n21,0,9,0,33,0,24,0,41,0,11,0\n5,0,20,0,43,0,29,0,39,0,19,0\n26,0,18,0,13,0,32,0,27,0,3,0\n40,0,41,0,30,0,31,0,9,0,35,0\n36,0,21,0,28,0,14,0,1,0,2,0\n17,0,33,0,22,0,23,0,37,0,12,0\n42,0,8,0,6,0,4,0,15,0,25,0\n16,0,11,0,7,0,10,0,24,0,38,0\n5,0,29,0,9,0,34,0,27,0,22,0\n28,0,18,0,12,0,21,0,8,0,13,0\n3,0,42,0,41,0,7,0,43,0,33,0\n20,0,15,0,39,0,35,0,36,0,40,0\n34,0,6,0,38,0,1,0,26,0,17,0\n4,0,30,0,24,0,32,0,37,0,10,0\n31,0,23,0,2,0,19,0,25,0,16,0\n14,0,22,0,39,0,11,0,6,0,33,0\n38,0,4,0,5,0,28,0,29,0,3,0\n12,0,13,0,32,0,8,0,9,0,37,0\n21,0,40,0,11,0,25,0,43,0,23,0\n41,0,20,0,19,0,18,0,15,0,17,0\n35,0,14,0,34,0,2,0,10,0,27,0\n36,0,16,0,30,0,26,0,42,0,7,0\n31,0,1,0,3,0,24,0,22,0,20,0\n40,0,25,0,17,0,29,0,10,0,14,0\n32,0,6,0,9,0,16,0,21,0,2,0\n38,0,23,0,11,0,18,0,5,0,35,0\n1,0,37,0,15,0,43,0,27,0,12,0\n33,0,31,0,13,0,36,0,7,0,8,0\n28,0,41,0,39,0,30,0,19,0,34,0\n42,0,24,0,40,0,4,0,26,0,23,0\n"
  },
  {
    "path": "schedules/43_11.csv",
    "content": "17,0,41,0,38,0,28,0,35,0,22,0\n27,0,13,0,29,0,16,0,5,0,2,0\n1,0,34,0,37,0,6,0,42,0,33,0\n36,0,4,0,43,0,3,0,21,0,39,0\n14,0,31,0,20,0,18,0,12,0,24,0\n15,0,8,0,26,0,25,0,40,0,9,0\n23,0,7,0,11,0,30,0,10,0,32,0\n19,0,24,0,2,0,5,0,6,0,43,0\n39,0,25,0,16,0,14,0,9,0,22,0\n35,0,8,0,23,0,18,0,21,0,11,0\n37,0,4,0,29,0,20,0,12,0,10,0\n17,0,34,0,31,0,42,0,36,0,7,0\n40,0,32,0,3,0,27,0,30,0,28,0\n33,0,1,0,38,0,26,0,19,0,13,0\n41,0,5,0,42,0,15,0,35,0,21,0\n7,1,30,0,40,0,4,0,16,0,20,0\n38,0,13,0,34,0,11,0,17,0,8,0\n12,0,2,0,39,0,23,0,31,0,41,0\n25,0,24,0,28,0,15,0,1,0,10,0\n18,0,27,0,43,0,22,0,19,0,6,0\n36,0,33,0,9,0,37,0,14,0,32,0\n3,0,29,0,35,0,26,0,31,0,40,0\n7,0,4,0,41,0,25,0,23,0,38,0\n2,0,20,0,28,0,19,0,14,0,39,0\n32,0,9,0,8,0,29,0,1,0,12,0\n3,0,15,0,36,0,6,0,10,0,13,0\n30,0,18,0,17,0,5,0,33,0,37,0\n34,0,43,0,11,0,42,0,27,0,22,0\n21,0,26,0,25,0,24,0,16,0,32,0\n3,0,20,0,8,0,33,0,2,0,7,0\n9,0,30,0,37,0,35,0,41,0,19,0\n13,0,12,0,22,0,24,0,29,0,42,0\n14,0,5,0,21,0,1,0,31,0,11,0\n26,0,18,0,4,0,36,0,17,0,28,0\n34,0,15,0,23,0,16,0,43,0,40,0\n39,0,6,0,27,0,10,0,38,0,21,0\n11,0,24,0,30,0,2,0,26,0,36,0\n28,0,42,0,3,0,5,0,29,0,23,0\n25,0,14,0,10,0,40,0,17,0,13,0\n35,0,32,0,31,0,6,0,20,0,34,0\n16,0,38,0,9,0,43,0,41,0,37,0\n7,0,15,0,12,0,27,0,33,0,19,0\n39,0,4,0,22,0,8,0,1,0,18,0\n6,0,28,0,31,0,9,0,13,0,11,0\n21,0,40,0,42,0,2,0,30,0,41,0\n24,0,35,0,14,0,8,0,34,0,4,0\n26,0,1,0,43,0,7,0,20,0,27,0\n18,0,39,0,37,0,25,0,15,0,29,0\n12,0,19,0,16,0,10,0,17,0,3,0\n22,0,38,0,36,0,32,0,23,0,33,0\n5,0,13,0,39,0,30,0,35,0,34,0\n27,0,17,0,2,0,9,0,4,0,1,0\n25,0,22,0,33,0,31,0,43,0,21,0\n7,0,6,0,16,0,12,0,28,0,5,0\n20,0,15,0,19,0,40,0,8,0,36,0\n29,0,10,0,41,0,26,0,14,0,11,0\n42,0,32,0,18,0,38,0,24,0,3,0\n23,0,28,0,21,0,37,0,20,0,13,0\n33,0,29,0,8,0,27,0,41,0,36,0\n19,0,32,0,5,0,25,0,42,0,4,0\n3,0,1,0,7,0,37,0,35,0,40,0\n30,0,31,0,12,0,15,0,38,0,43,0\n34,0,16,0,26,0,18,0,2,0,10,0\n6,0,24,0,23,0,17,0,9,0,39,0\n22,0,11,0,15,0,14,0,4,0,3,0\n20,0,40,0,41,0,38,0,18,0,5,0\n31,0,27,0,24,0,37,0,17,0,23,0\n43,0,33,0,35,0,16,0,36,0,1,0\n21,0,30,0,19,0,34,0,28,0,29,0\n2,0,11,0,6,0,8,0,25,0,12,0\n13,0,42,0,14,0,7,0,39,0,32,0\n10,0,22,0,5,0,9,0,26,0,20,0\n25,0,35,0,36,0,27,0,12,0,3,0\n32,0,29,0,43,0,17,0,15,0,4,0\n37,0,7,0,38,0,34,0,22,0,2,0\n16,0,10,0,28,0,31,0,8,0,42,0\n6,0,1,0,14,0,23,0,26,0,30,0\n19,0,40,0,11,0,33,0,24,0,39,0\n18,0,9,0,41,0,13,0,21,0,7,0\n"
  },
  {
    "path": "schedules/43_12.csv",
    "content": "25,0,6,0,20,0,10,0,29,0,28,0\n19,0,7,0,17,0,41,0,5,0,9,0\n1,0,33,0,11,0,31,0,21,0,32,0\n34,0,16,0,13,0,37,0,40,0,8,0\n39,0,35,0,15,0,24,0,4,0,42,0\n26,0,14,0,22,0,12,0,43,0,23,0\n38,0,3,0,18,0,30,0,2,0,36,0\n27,0,39,0,25,0,37,0,1,0,19,0\n32,0,12,0,5,0,43,0,41,0,10,0\n22,0,3,0,16,0,31,0,13,0,20,0\n2,0,26,0,18,0,7,0,29,0,15,0\n24,0,30,0,33,0,14,0,38,0,40,0\n21,0,4,0,8,0,34,0,35,0,28,0\n9,0,17,0,42,0,6,0,11,0,36,0\n27,0,31,0,40,0,23,0,37,0,41,0\n43,0,28,0,19,0,14,0,13,0,33,0\n8,0,25,0,29,0,4,0,11,0,22,0\n23,0,10,0,16,0,39,0,38,0,9,0\n20,0,42,0,32,0,12,0,17,0,30,0\n27,0,35,0,21,0,15,0,3,0,26,0\n5,0,1,0,2,0,36,0,34,0,24,0\n6,0,18,0,14,0,7,0,23,0,8,0\n17,0,15,0,32,0,22,0,39,0,40,0\n42,0,41,0,3,0,29,0,27,0,24,0\n1,0,10,0,12,0,13,0,2,0,11,0\n4,0,16,0,20,0,6,0,7,0,33,0\n21,0,43,0,26,0,30,0,31,0,19,0\n25,0,28,0,38,0,34,0,18,0,9,0\n35,0,37,0,20,0,36,0,5,0,17,0\n30,0,15,0,1,0,33,0,16,0,19,0\n7,0,24,0,41,0,22,0,34,0,6,0\n23,0,32,0,36,0,42,0,21,0,28,0\n2,0,29,0,12,0,39,0,8,0,43,0\n27,0,10,0,37,0,14,0,3,0,4,0\n35,0,31,0,9,0,18,0,40,0,25,0\n38,0,11,0,42,0,5,0,26,0,13,0\n15,0,20,0,36,0,8,0,1,0,14,0\n23,0,29,0,21,0,10,0,25,0,32,0\n4,0,7,0,9,0,12,0,31,0,3,0\n17,0,22,0,43,0,38,0,27,0,16,0\n39,0,24,0,13,0,30,0,34,0,26,0\n40,0,5,0,6,0,19,0,18,0,11,0\n37,0,33,0,28,0,2,0,35,0,41,0\n7,0,30,0,14,0,39,0,21,0,17,0\n8,0,22,0,24,0,42,0,25,0,19,0\n38,0,5,0,29,0,31,0,15,0,28,0\n34,0,37,0,3,0,12,0,40,0,11,0\n18,0,23,0,13,0,20,0,1,0,41,0\n2,0,43,0,6,0,4,0,35,0,32,0\n26,0,33,0,27,0,9,0,36,0,16,0\n10,0,38,0,19,0,37,0,25,0,7,0\n40,0,34,0,42,0,29,0,14,0,43,0\n27,0,20,0,8,0,24,0,31,0,11,0\n12,0,28,0,26,0,17,0,1,0,16,0\n4,0,5,0,18,0,30,0,21,0,41,0\n23,0,15,0,2,0,32,0,13,0,9,0\n36,0,22,0,33,0,39,0,6,0,3,0\n35,0,40,0,16,0,10,0,8,0,5,0\n24,0,43,0,9,0,20,0,21,0,18,0\n39,0,37,0,11,0,30,0,23,0,28,0\n6,0,4,0,41,0,26,0,1,0,38,0\n19,0,12,0,13,0,35,0,36,0,29,0\n34,0,33,0,31,0,42,0,10,0,22,0\n14,0,15,0,25,0,17,0,2,0,3,0\n7,0,12,0,38,0,27,0,32,0,28,0\n22,0,30,0,13,0,9,0,6,0,21,0\n26,0,17,0,8,0,33,0,10,0,18,0\n23,0,20,0,40,0,2,0,7,0,27,0\n25,0,31,0,41,0,14,0,39,0,36,0\n32,0,34,0,11,0,15,0,19,0,4,0\n1,0,43,0,3,0,37,0,5,0,42,0\n16,0,29,0,31,0,24,0,35,0,17,0\n30,0,9,0,10,0,27,0,34,0,41,0\n13,0,7,0,36,0,25,0,43,0,4,0\n21,0,24,0,15,0,12,0,6,0,37,0\n35,0,11,0,8,0,33,0,38,0,23,0\n32,0,26,0,40,0,28,0,3,0,20,0\n2,0,14,0,19,0,16,0,42,0,18,0\n1,0,29,0,39,0,22,0,5,0,35,0\n34,0,4,0,17,0,3,0,23,0,24,0\n28,0,41,0,11,0,16,0,43,0,15,0\n18,0,31,0,39,0,27,0,13,0,6,0\n32,0,14,0,37,0,9,0,26,0,29,0\n22,0,21,0,19,0,2,0,20,0,38,0\n30,0,25,0,5,0,8,0,33,0,12,0\n36,0,1,0,42,0,7,0,10,0,40,0\n"
  },
  {
    "path": "schedules/43_13.csv",
    "content": "36,0,31,0,39,0,26,0,34,0,19,0\n6,0,2,0,27,0,7,0,11,0,28,0\n17,0,5,0,43,0,12,0,21,0,23,0\n13,0,24,0,41,0,1,0,4,0,42,0\n3,0,30,0,35,0,20,0,40,0,22,0\n9,0,8,0,15,0,33,0,10,0,14,0\n25,0,32,0,18,0,37,0,16,0,29,0\n38,0,28,0,31,0,4,0,17,0,24,0\n19,0,7,0,6,0,43,0,26,0,35,0\n9,0,36,0,42,0,39,0,12,0,29,0\n30,0,8,0,34,0,13,0,27,0,21,0\n38,0,1,0,16,0,23,0,15,0,40,0\n11,0,20,0,32,0,41,0,25,0,5,0\n3,0,37,0,10,0,18,0,2,0,33,0\n14,0,29,0,1,0,22,0,27,0,17,0\n16,1,12,0,8,0,34,1,35,0,11,0\n42,1,6,0,23,0,10,1,2,0,25,0\n33,1,30,0,15,0,41,0,31,0,3,0\n22,0,32,0,7,0,38,0,39,0,24,0\n19,0,5,0,14,0,37,0,28,0,18,0\n21,0,4,0,26,0,20,0,13,0,36,0\n40,0,43,0,24,0,9,0,2,0,17,0\n10,0,27,0,11,0,31,0,37,0,35,0\n41,0,30,0,4,0,25,0,19,0,29,0\n26,0,3,0,7,0,1,0,5,0,33,0\n42,0,8,0,40,0,6,0,28,0,32,0\n20,0,14,0,9,0,23,0,38,0,36,0\n13,0,34,0,16,0,43,0,18,0,39,0\n21,0,22,0,37,0,15,0,12,0,42,0\n24,0,30,0,10,0,27,0,26,0,23,0\n16,0,14,0,2,0,8,0,19,0,1,0\n12,0,32,0,9,0,6,0,17,0,18,0\n35,0,39,0,15,0,5,0,20,0,28,0\n38,0,21,0,7,0,31,0,25,0,34,0\n11,0,29,0,41,0,4,0,33,0,40,0\n13,0,3,0,22,0,36,0,43,0,32,0\n30,0,17,0,31,0,2,0,35,0,42,0\n26,0,40,0,18,0,24,0,29,0,15,0\n19,0,10,0,12,0,20,0,8,0,3,0\n7,0,27,0,41,0,22,0,9,0,28,0\n16,0,5,0,23,0,34,0,37,0,6,0\n13,0,33,0,38,0,1,0,21,0,36,0\n39,0,25,0,14,0,43,0,4,0,11,0\n23,0,34,0,2,0,42,0,28,0,41,0\n16,0,18,0,31,0,30,0,22,0,1,0\n6,0,33,0,20,0,38,0,40,0,14,0\n24,0,27,0,19,0,37,0,7,0,12,0\n17,0,29,0,36,0,39,0,8,0,11,0\n9,0,25,0,43,0,15,0,5,0,26,0\n21,0,10,0,35,0,3,0,4,0,32,0\n13,0,42,0,31,0,6,0,14,0,12,0\n15,0,2,0,22,0,39,0,34,0,20,0\n21,0,32,0,8,0,23,0,9,0,30,0\n29,0,7,0,5,0,10,0,41,0,36,0\n19,0,38,0,18,0,17,0,28,0,1,0\n40,0,16,0,27,0,13,0,35,0,4,0\n33,0,43,0,3,0,25,0,24,0,37,0\n11,0,5,0,12,0,26,0,30,0,14,0\n6,0,4,0,29,0,21,0,18,0,34,0\n31,0,2,0,1,0,13,0,37,0,32,0\n23,0,22,0,39,0,19,0,11,0,33,0\n17,0,26,0,42,0,40,0,25,0,7,0\n8,0,24,0,36,0,41,0,20,0,16,0\n43,0,15,0,10,0,27,0,35,0,38,0\n28,0,3,0,25,0,9,0,19,0,31,0\n18,0,22,0,4,0,8,0,23,0,7,0\n1,0,35,0,20,0,29,0,43,0,42,0\n37,0,15,0,36,0,30,0,40,0,6,0\n41,0,34,0,14,0,12,0,3,0,24,0\n10,0,13,0,28,0,9,0,16,0,11,0\n17,0,33,0,21,0,32,0,2,0,26,0\n39,0,27,0,37,0,38,0,5,0,3,0\n14,0,43,0,23,0,7,0,15,0,16,0\n1,0,11,0,6,0,24,0,9,0,35,0\n40,0,39,0,19,0,5,0,21,0,31,0\n25,0,22,0,36,0,42,0,27,0,18,0\n10,0,4,0,20,0,34,0,32,0,17,0\n8,0,2,0,41,0,12,0,26,0,38,0\n29,0,33,0,28,0,30,0,13,0,43,0\n1,0,40,0,9,0,22,0,10,0,34,0\n35,0,18,0,14,0,21,0,39,0,41,0\n11,0,38,0,30,0,7,0,42,0,24,0\n20,0,23,0,37,0,26,0,29,0,31,0\n12,0,28,0,27,0,33,0,32,0,16,0\n17,0,19,0,3,0,15,0,13,0,6,0\n25,0,8,0,4,0,5,0,2,0,36,0\n38,0,9,0,29,0,16,0,30,0,28,0\n13,0,7,0,18,0,27,0,20,0,15,0\n41,0,12,0,1,0,39,0,10,0,6,0\n33,0,37,0,26,0,4,0,36,0,34,0\n32,0,5,0,42,0,14,0,8,0,22,0\n31,0,11,0,24,0,43,0,19,0,21,0\n25,0,35,0,23,0,2,0,3,0,40,0\n34,0,42,0,33,0,17,0,16,0,10,0\n"
  },
  {
    "path": "schedules/43_14.csv",
    "content": "37,0,28,0,21,0,43,0,11,0,13,0\n41,0,18,0,29,0,42,0,31,0,26,0\n16,0,8,0,3,0,27,0,14,0,24,0\n2,0,33,0,30,0,20,0,15,0,5,0\n39,0,12,0,1,0,40,0,35,0,6,0\n25,0,36,0,7,0,38,0,9,0,32,0\n10,0,19,0,23,0,4,0,34,0,17,0\n29,0,24,0,1,0,22,0,35,0,18,0\n28,0,6,0,30,0,31,0,5,0,13,0\n2,0,14,0,17,0,37,0,4,0,41,0\n38,0,39,0,20,0,9,0,3,0,11,0\n42,0,19,0,22,0,8,0,25,0,33,0\n16,0,40,0,27,0,26,0,36,0,12,0\n34,0,10,0,21,0,32,0,15,0,7,0\n23,0,42,0,17,0,43,0,24,0,2,0\n11,1,38,0,3,0,9,1,25,0,12,0\n15,1,32,0,4,0,18,1,31,0,16,0\n30,0,34,0,10,0,26,0,21,0,14,0\n19,0,39,0,8,0,43,0,40,0,1,0\n6,0,29,0,33,0,35,0,41,0,28,0\n23,0,22,0,37,0,20,0,5,0,7,0\n27,0,13,0,30,0,36,0,4,0,1,0\n40,0,28,0,17,0,15,0,11,0,34,0\n20,0,25,0,14,0,18,0,21,0,42,0\n10,0,39,0,27,0,9,0,22,0,31,0\n8,0,29,0,36,0,5,0,43,0,41,0\n7,0,33,0,24,0,37,0,6,0,19,0\n35,0,16,0,26,0,38,0,12,0,23,0\n13,0,3,0,40,0,2,0,32,0,29,0\n36,0,9,0,39,0,7,0,17,0,14,0\n10,0,25,0,5,0,23,0,1,0,27,0\n20,0,4,0,37,0,41,0,8,0,21,0\n19,0,32,0,33,0,24,0,26,0,16,0\n18,0,22,0,3,0,6,0,34,0,43,0\n42,0,35,0,12,0,13,0,28,0,15,0\n30,0,31,0,11,0,2,0,38,0,1,0\n39,0,40,0,5,0,17,0,41,0,25,0\n43,0,29,0,16,0,8,0,10,0,32,0\n13,0,4,0,6,0,38,0,42,0,24,0\n21,0,36,0,22,0,33,0,11,0,23,0\n3,0,28,0,27,0,26,0,30,0,14,0\n2,0,34,0,35,0,18,0,20,0,9,0\n15,0,19,0,12,0,37,0,31,0,7,0\n23,0,5,0,32,0,27,0,29,0,42,0\n24,0,25,0,11,0,14,0,10,0,18,0\n33,0,22,0,20,0,7,0,34,0,40,0\n31,0,19,0,1,0,13,0,21,0,12,0\n37,0,9,0,17,0,16,0,26,0,41,0\n38,0,35,0,36,0,28,0,8,0,2,0\n43,0,30,0,4,0,39,0,3,0,6,0\n15,0,21,0,16,0,14,0,23,0,40,0\n29,0,13,0,37,0,19,0,25,0,18,0\n43,0,35,0,10,0,41,0,33,0,12,0\n20,0,6,0,24,0,39,0,11,0,32,0\n38,0,1,0,15,0,36,0,17,0,5,0\n3,0,2,0,31,0,7,0,27,0,8,0\n26,0,9,0,4,0,22,0,34,0,28,0\n42,0,25,0,1,0,30,0,40,0,18,0\n5,0,24,0,21,0,6,0,16,0,36,0\n37,0,43,0,38,0,34,0,27,0,29,0\n28,0,17,0,31,0,30,0,19,0,20,0\n15,0,14,0,22,0,2,0,13,0,9,0\n11,0,26,0,7,0,42,0,10,0,33,0\n39,0,23,0,8,0,12,0,3,0,4,0\n41,0,32,0,20,0,35,0,24,0,19,0\n22,0,16,0,11,0,29,0,17,0,30,0\n12,0,14,0,34,0,31,0,27,0,36,0\n26,0,8,0,38,0,28,0,4,0,39,0\n37,0,2,0,18,0,33,0,5,0,1,0\n23,0,7,0,13,0,43,0,32,0,42,0\n35,0,15,0,9,0,6,0,25,0,21,0\n40,0,41,0,31,0,10,0,3,0,24,0\n38,0,19,0,27,0,13,0,17,0,8,0\n5,0,34,0,9,0,22,0,43,0,29,0\n18,0,15,0,26,0,41,0,23,0,36,0\n33,0,35,0,21,0,25,0,39,0,30,0\n7,0,42,0,28,0,16,0,1,0,20,0\n10,0,6,0,2,0,3,0,11,0,37,0\n12,0,32,0,40,0,4,0,14,0,9,0\n30,0,22,0,41,0,38,0,28,0,16,0\n26,0,23,0,6,0,42,0,20,0,8,0\n32,0,13,0,25,0,33,0,40,0,21,0\n24,0,15,0,31,0,39,0,2,0,27,0\n7,0,17,0,1,0,29,0,4,0,35,0\n43,0,14,0,3,0,5,0,19,0,11,0\n18,0,34,0,36,0,10,0,12,0,37,0\n4,0,25,0,27,0,33,0,38,0,15,0\n9,0,43,0,40,0,31,0,21,0,29,0\n14,0,42,0,6,0,10,0,28,0,36,0\n20,0,13,0,26,0,23,0,35,0,3,0\n12,0,11,0,17,0,7,0,22,0,2,0\n18,0,24,0,32,0,8,0,30,0,5,0\n41,0,19,0,1,0,16,0,39,0,34,0\n43,0,28,0,33,0,37,0,15,0,40,0\n6,0,11,0,27,0,35,0,17,0,32,0\n25,0,2,0,31,0,4,0,22,0,39,0\n8,0,12,0,9,0,23,0,24,0,30,0\n10,0,41,0,7,0,18,0,21,0,38,0\n34,0,26,0,3,0,13,0,36,0,19,0\n5,0,20,0,29,0,16,0,14,0,37,0\n1,0,11,0,18,0,42,0,9,0,15,0\n"
  },
  {
    "path": "schedules/43_2.csv",
    "content": "1,0,26,0,2,0,3,0,34,0,27,0\n28,0,35,0,13,0,32,0,25,0,14,0\n41,0,21,0,6,0,29,0,33,0,43,0\n36,0,18,0,24,0,8,0,16,0,9,0\n19,0,7,0,30,0,38,0,31,0,40,0\n10,0,11,0,17,0,37,0,42,0,12,0\n20,0,22,0,4,0,23,0,5,0,15,0\n3,0,33,0,25,0,39,0,30,0,24,0\n2,0,36,0,40,0,11,0,28,0,43,0\n16,0,35,0,31,0,20,0,37,0,41,0\n12,0,21,0,32,0,1,0,22,0,19,0\n29,0,34,0,8,0,7,0,5,0,17,0\n27,0,10,0,38,0,9,0,13,0,15,0\n39,0,6,0,23,0,14,0,42,0,18,0\n26,0,16,1,12,1,4,0,8,1,29,1\n"
  },
  {
    "path": "schedules/43_3.csv",
    "content": "43,0,40,0,29,0,41,0,13,0,42,0\n16,0,39,0,12,0,2,0,14,0,26,0\n24,0,30,0,3,0,20,0,33,0,18,0\n34,0,28,0,19,0,25,0,11,0,8,0\n7,0,9,0,36,0,22,0,32,0,15,0\n38,0,31,0,6,0,17,0,1,0,5,0\n37,0,27,0,35,0,23,0,4,0,21,0\n10,0,42,0,8,0,32,0,39,0,3,0\n11,1,15,0,26,0,41,1,17,0,20,0\n21,1,13,0,18,0,28,0,5,0,16,0\n31,0,14,0,33,0,35,0,25,0,9,0\n2,0,1,0,37,0,43,0,34,0,22,0\n29,0,7,0,6,0,27,0,30,0,19,0\n10,0,23,0,38,0,24,0,12,0,36,0\n40,0,17,0,25,0,4,0,3,0,16,0\n39,0,1,0,21,0,29,0,33,0,15,0\n19,0,24,0,5,0,41,0,37,0,9,0\n28,0,26,0,43,0,36,0,35,0,6,0\n32,0,14,0,11,0,13,0,30,0,23,0\n38,0,4,0,20,0,42,0,34,0,7,0\n12,0,22,0,18,0,27,0,8,0,40,0\n10,0,2,0,41,0,31,0,11,0,21,0\n"
  },
  {
    "path": "schedules/43_4.csv",
    "content": "21,0,27,0,15,0,40,0,9,0,43,0\n5,0,32,0,16,0,22,0,39,0,20,0\n6,0,1,0,24,0,42,0,13,0,34,0\n2,0,18,0,11,0,37,0,29,0,35,0\n25,0,19,0,14,0,33,0,10,0,26,0\n12,0,30,0,36,0,7,0,17,0,4,0\n41,0,38,0,31,0,8,0,23,0,28,0\n26,0,29,0,32,0,3,0,6,0,15,0\n17,0,24,0,11,0,21,0,19,0,4,0\n8,0,7,0,20,0,35,0,42,0,25,0\n12,0,10,0,3,0,13,0,27,0,38,0\n14,0,9,0,22,0,28,0,34,0,2,0\n40,0,33,0,18,0,30,0,41,0,39,0\n36,0,43,0,37,0,1,0,31,0,5,0\n16,0,9,0,25,0,23,0,6,0,12,0\n2,1,4,0,41,0,20,1,26,0,27,0\n10,0,35,0,34,0,21,0,39,0,36,0\n14,0,23,0,29,0,5,0,7,0,24,0\n19,0,8,0,1,0,40,0,3,0,16,0\n31,0,22,0,13,0,33,0,11,0,15,0\n28,0,42,0,17,0,32,0,18,0,43,0\n37,0,38,0,20,0,30,0,14,0,6,0\n21,0,1,0,25,0,41,0,29,0,22,0\n42,0,2,0,33,0,23,0,3,0,36,0\n27,0,30,0,28,0,35,0,16,0,24,0\n39,0,7,0,26,0,38,0,43,0,11,0\n4,0,9,0,37,0,13,0,32,0,8,0\n34,0,12,0,5,0,15,0,19,0,18,0\n10,0,40,0,2,0,17,0,31,0,20,0\n"
  },
  {
    "path": "schedules/43_5.csv",
    "content": "15,0,10,0,31,0,33,0,2,0,37,0\n36,0,29,0,24,0,30,0,23,0,21,0\n32,0,16,0,17,0,9,0,13,0,34,0\n42,0,35,0,18,0,43,0,19,0,1,0\n6,0,40,0,3,0,4,0,41,0,12,0\n28,0,11,0,38,0,26,0,7,0,20,0\n39,0,8,0,27,0,22,0,5,0,14,0\n25,0,1,0,13,0,6,0,2,0,36,0\n23,0,18,0,38,0,15,0,33,0,3,0\n26,0,29,0,10,0,22,0,34,0,43,0\n8,0,14,0,35,0,40,0,11,0,9,0\n19,0,17,0,30,0,27,0,12,0,37,0\n4,0,5,0,16,0,20,0,24,0,25,0\n28,0,21,0,31,0,32,0,41,0,42,0\n7,0,13,0,37,0,39,0,18,0,40,0\n20,1,34,0,19,0,33,0,24,0,14,0\n27,0,21,0,9,0,3,0,25,0,26,0\n41,0,39,0,23,0,16,0,1,0,10,0\n38,0,2,0,5,0,29,0,32,0,12,0\n6,0,15,0,22,0,35,0,28,0,30,0\n43,0,31,0,4,0,36,0,17,0,11,0\n42,0,2,0,24,0,7,0,8,0,3,0\n23,0,14,0,12,0,13,0,26,0,28,0\n11,0,21,0,19,0,10,0,5,0,6,0\n20,0,39,0,42,0,17,0,29,0,15,0\n7,0,33,0,43,0,9,0,16,0,22,0\n41,0,34,0,25,0,18,0,30,0,8,0\n37,0,4,0,36,0,35,0,32,0,27,0\n40,0,1,0,22,0,31,0,38,0,24,0\n17,0,20,0,14,0,2,0,18,0,21,0\n13,0,29,0,33,0,11,0,41,0,27,0\n15,0,16,0,26,0,19,0,40,0,36,0\n12,0,25,0,35,0,7,0,31,0,39,0\n9,0,30,0,10,0,38,0,42,0,4,0\n5,0,28,0,3,0,37,0,1,0,34,0\n23,0,32,0,8,0,6,0,43,0,20,0\n"
  },
  {
    "path": "schedules/43_6.csv",
    "content": "23,0,31,0,36,0,39,0,26,0,9,0\n13,0,43,0,20,0,8,0,1,0,33,0\n19,0,15,0,41,0,4,0,37,0,25,0\n6,0,16,0,3,0,27,0,28,0,24,0\n7,0,12,0,30,0,5,0,40,0,11,0\n35,0,29,0,14,0,22,0,32,0,10,0\n38,0,2,0,18,0,21,0,42,0,34,0\n17,0,28,0,3,0,23,0,15,0,8,0\n39,0,41,0,43,0,11,0,7,0,22,0\n32,0,6,0,9,0,20,0,34,0,37,0\n24,0,33,0,4,0,31,0,10,0,12,0\n14,0,5,0,38,0,36,0,35,0,2,0\n27,0,42,0,30,0,1,0,17,0,19,0\n21,0,16,0,26,0,40,0,13,0,29,0\n25,0,35,0,3,0,18,0,20,0,12,0\n6,0,10,0,36,0,15,0,42,0,43,0\n1,0,40,0,31,0,19,0,14,0,28,0\n29,0,37,0,8,0,27,0,38,0,7,0\n39,0,32,0,23,0,21,0,30,0,24,0\n2,0,9,0,11,0,16,0,4,0,13,0\n41,0,33,0,25,0,34,0,17,0,5,0\n18,0,26,0,1,0,22,0,38,0,24,0\n15,0,20,0,39,0,27,0,12,0,2,0\n36,0,13,0,19,0,3,0,34,0,29,0\n8,0,9,0,21,0,14,0,10,0,41,0\n32,0,4,0,5,0,43,0,26,0,28,0\n30,0,22,0,25,0,37,0,31,0,16,0\n35,0,40,0,7,0,33,0,42,0,23,0\n17,0,18,0,10,0,6,0,11,0,1,0\n24,0,20,0,31,0,5,0,29,0,41,0\n28,0,37,0,13,0,42,0,35,0,39,0\n33,0,11,0,38,0,3,0,32,0,19,0\n27,0,15,0,9,0,22,0,40,0,18,0\n6,0,30,0,2,0,26,0,25,0,8,0\n43,0,34,0,12,0,16,0,14,0,23,0\n21,0,4,0,7,0,17,0,36,0,20,0\n39,0,5,0,22,0,6,0,8,0,19,0\n27,0,23,0,25,0,38,0,13,0,10,0\n17,0,37,0,40,0,2,0,43,0,24,0\n1,0,12,0,16,0,36,0,41,0,32,0\n29,0,28,0,33,0,18,0,9,0,30,0\n34,0,15,0,11,0,35,0,31,0,21,0\n42,0,7,0,14,0,4,0,26,0,3,0\n"
  },
  {
    "path": "schedules/43_7.csv",
    "content": "13,0,9,0,19,0,40,0,38,0,18,0\n42,0,25,0,6,0,8,0,33,0,24,0\n12,0,31,0,34,0,21,0,43,0,5,0\n41,0,37,0,2,0,20,0,14,0,15,0\n16,0,1,0,35,0,36,0,11,0,22,0\n7,0,4,0,26,0,10,0,23,0,17,0\n29,0,30,0,27,0,32,0,3,0,39,0\n28,0,14,0,12,0,38,0,11,0,25,0\n41,0,6,0,17,0,16,0,9,0,5,0\n7,0,31,0,27,0,18,0,2,0,33,0\n30,0,4,0,20,0,43,0,1,0,22,0\n10,0,21,0,34,0,13,0,3,0,42,0\n36,0,19,0,29,0,35,0,26,0,24,0\n23,0,28,0,40,0,15,0,39,0,8,0\n37,0,11,0,3,0,32,0,9,0,41,0\n34,1,38,0,42,0,31,1,36,0,35,0\n17,1,18,0,29,0,1,1,15,0,21,0\n19,1,33,0,28,0,30,0,16,0,43,0\n22,0,13,0,14,0,39,0,23,0,5,0\n8,0,4,0,6,0,2,0,12,0,32,0\n25,0,20,0,27,0,40,0,10,0,26,0\n24,0,22,0,30,0,7,0,37,0,13,0\n3,0,18,0,28,0,12,0,36,0,17,0\n35,0,14,0,41,0,27,0,8,0,1,0\n21,0,24,0,2,0,25,0,26,0,16,0\n37,0,23,0,38,0,6,0,29,0,34,0\n15,0,19,0,5,0,32,0,10,0,33,0\n9,0,39,0,20,0,4,0,31,0,42,0\n11,0,43,0,12,0,40,0,7,0,29,0\n22,0,26,0,18,0,34,0,14,0,33,0\n25,0,24,0,36,0,39,0,41,0,31,0\n8,0,43,0,19,0,27,0,37,0,21,0\n5,0,40,0,3,0,28,0,35,0,4,0\n38,0,10,0,9,0,2,0,30,0,23,0\n15,0,32,0,16,0,1,0,42,0,7,0\n13,0,11,0,17,0,20,0,6,0,19,0\n29,0,31,0,10,0,28,0,41,0,22,0\n42,0,23,0,16,0,18,0,37,0,25,0\n4,0,34,0,24,0,11,0,27,0,15,0\n26,0,39,0,33,0,1,0,9,0,12,0\n36,0,21,0,30,0,40,0,6,0,14,0\n32,0,43,0,17,0,13,0,35,0,2,0\n5,0,20,0,8,0,7,0,38,0,3,0\n1,0,39,0,18,0,6,0,10,0,37,0\n2,0,17,0,40,0,42,0,29,0,22,0\n32,0,35,0,23,0,33,0,20,0,21,0\n34,0,28,0,7,0,41,0,4,0,19,0\n11,0,26,0,8,0,31,0,5,0,30,0\n15,0,13,0,12,0,27,0,36,0,9,0\n43,0,38,0,14,0,16,0,24,0,3,0\n25,0,31,0,1,0,34,0,17,0,19,0\n"
  },
  {
    "path": "schedules/43_8.csv",
    "content": "12,0,43,0,31,0,8,0,26,0,37,0\n20,0,18,0,19,0,40,0,5,0,22,0\n25,0,28,0,15,0,34,0,9,0,7,0\n42,0,4,0,30,0,6,0,27,0,38,0\n33,0,39,0,32,0,14,0,13,0,16,0\n10,0,41,0,2,0,35,0,29,0,3,0\n1,0,17,0,11,0,21,0,36,0,23,0\n24,0,40,0,27,0,25,0,16,0,31,0\n10,0,20,0,15,0,18,0,8,0,30,0\n6,0,41,0,9,0,12,0,21,0,17,0\n7,0,38,0,5,0,36,0,39,0,24,0\n32,0,1,0,37,0,42,0,19,0,28,0\n13,0,43,0,11,0,29,0,34,0,4,0\n23,0,22,0,14,0,2,0,26,0,35,0\n3,0,27,0,15,0,33,0,17,0,40,0\n9,1,18,0,12,0,11,1,29,0,7,0\n22,1,2,0,4,0,8,1,21,0,32,0\n38,0,10,0,16,0,19,0,41,0,14,0\n37,0,31,0,34,0,1,0,5,0,33,0\n6,0,36,0,13,0,28,0,24,0,35,0\n42,0,26,0,25,0,39,0,20,0,3,0\n23,0,43,0,32,0,30,0,38,0,9,0\n12,0,2,0,36,0,4,0,10,0,33,0\n26,0,20,0,27,0,11,0,41,0,28,0\n39,0,8,0,40,0,34,0,35,0,1,0\n5,0,3,0,23,0,43,0,7,0,16,0\n13,0,17,0,42,0,15,0,14,0,31,0\n21,0,22,0,29,0,37,0,30,0,24,0\n18,0,25,0,33,0,19,0,6,0,8,0\n5,0,43,0,28,0,14,0,11,0,2,0\n21,0,10,0,9,0,40,0,13,0,26,0\n15,0,41,0,32,0,23,0,6,0,37,0\n30,0,29,0,17,0,19,0,39,0,25,0\n7,0,36,0,35,0,27,0,42,0,31,0\n20,0,24,0,16,0,1,0,12,0,4,0\n38,0,34,0,28,0,18,0,22,0,3,0\n42,0,33,0,8,0,29,0,23,0,41,0\n30,0,26,0,12,0,5,0,35,0,17,0\n14,0,24,0,32,0,40,0,20,0,34,0\n16,0,27,0,22,0,2,0,7,0,6,0\n38,0,43,0,25,0,13,0,10,0,1,0\n4,0,31,0,21,0,39,0,18,0,15,0\n37,0,3,0,19,0,9,0,11,0,36,0\n7,0,1,0,40,0,30,0,33,0,41,0\n24,0,17,0,22,0,10,0,43,0,42,0\n13,0,34,0,19,0,12,0,27,0,23,0\n8,0,14,0,3,0,21,0,6,0,5,0\n39,0,35,0,4,0,37,0,9,0,25,0\n29,0,18,0,26,0,16,0,32,0,36,0\n11,0,20,0,31,0,2,0,38,0,15,0\n28,0,6,0,39,0,23,0,40,0,10,0\n1,0,29,0,9,0,5,0,27,0,14,0\n11,0,3,0,34,0,32,0,31,0,30,0\n22,0,15,0,36,0,12,0,41,0,25,0\n28,0,7,0,26,0,8,0,38,0,4,0\n19,0,35,0,33,0,21,0,43,0,20,0\n2,0,37,0,17,0,13,0,18,0,24,0\n16,0,9,0,8,0,42,0,11,0,22,0\n"
  },
  {
    "path": "schedules/43_9.csv",
    "content": "21,0,16,0,40,0,14,0,12,0,11,0\n25,0,10,0,3,0,35,0,30,0,18,0\n36,0,29,0,1,0,17,0,34,0,2,0\n9,0,5,0,7,0,27,0,32,0,28,0\n41,0,6,0,39,0,24,0,31,0,38,0\n19,0,23,0,13,0,8,0,33,0,4,0\n20,0,15,0,22,0,42,0,26,0,43,0\n37,0,16,0,25,0,36,0,32,0,39,0\n30,0,14,0,10,0,28,0,41,0,5,0\n43,0,18,0,24,0,26,0,21,0,19,0\n3,0,35,0,34,0,42,0,8,0,12,0\n17,0,29,0,37,0,13,0,4,0,20,0\n27,0,15,0,33,0,9,0,2,0,38,0\n40,0,6,0,11,0,7,0,22,0,23,0\n31,0,28,0,29,0,1,0,43,0,35,0\n33,1,17,0,19,0,42,1,3,0,27,0\n36,1,20,0,9,0,21,0,11,0,24,0\n16,0,8,0,41,0,15,0,6,0,37,0\n26,0,39,0,30,0,40,0,2,0,4,0\n10,0,23,0,32,0,14,0,31,0,34,0\n1,0,13,0,22,0,5,0,18,0,12,0\n25,0,2,0,8,0,7,0,38,0,20,0\n30,0,11,0,28,0,19,0,31,0,36,0\n26,0,18,0,3,0,16,0,23,0,9,0\n32,0,35,0,13,0,22,0,24,0,40,0\n21,0,34,0,43,0,4,0,41,0,7,0\n29,0,33,0,12,0,14,0,6,0,25,0\n1,0,42,0,15,0,10,0,27,0,39,0\n37,0,38,0,8,0,5,0,17,0,35,0\n30,0,7,0,24,0,22,0,26,0,16,0\n36,0,2,0,13,0,10,0,43,0,6,0\n12,0,31,0,9,0,4,0,19,0,38,0\n23,0,11,0,17,0,32,0,29,0,41,0\n14,0,40,0,3,0,1,0,37,0,27,0\n28,0,18,0,34,0,39,0,33,0,20,0\n5,0,21,0,42,0,15,0,25,0,31,0\n22,0,9,0,27,0,8,0,10,0,29,0\n20,0,19,0,16,0,40,0,1,0,41,0\n39,0,5,0,2,0,23,0,21,0,35,0\n34,0,6,0,12,0,15,0,18,0,32,0\n28,0,36,0,7,0,13,0,38,0,3,0\n4,0,14,0,17,0,26,0,24,0,25,0\n37,0,11,0,43,0,33,0,30,0,42,0\n27,0,31,0,8,0,36,0,16,0,18,0\n25,0,40,0,13,0,41,0,9,0,15,0\n19,0,32,0,14,0,2,0,20,0,42,0\n26,0,23,0,37,0,28,0,10,0,12,0\n1,0,38,0,17,0,22,0,30,0,21,0\n29,0,24,0,35,0,34,0,7,0,33,0\n11,0,39,0,4,0,3,0,5,0,6,0\n43,0,38,0,25,0,23,0,1,0,14,0\n33,0,41,0,35,0,26,0,27,0,36,0\n29,0,21,0,39,0,8,0,13,0,30,0\n32,0,5,0,20,0,15,0,43,0,3,0\n19,0,22,0,6,0,9,0,37,0,34,0\n18,0,10,0,31,0,17,0,40,0,7,0\n28,0,42,0,24,0,16,0,2,0,12,0\n4,0,26,0,1,0,11,0,32,0,8,0\n20,0,21,0,27,0,6,0,30,0,23,0\n2,0,33,0,3,0,31,0,22,0,41,0\n4,0,15,0,36,0,14,0,35,0,28,0\n38,0,16,0,42,0,34,0,13,0,29,0\n7,0,12,0,43,0,9,0,17,0,39,0\n37,0,10,0,24,0,18,0,25,0,11,0\n5,0,33,0,36,0,19,0,40,0,42,0\n"
  },
  {
    "path": "schedules/44_1.csv",
    "content": "6,0,2,0,17,0,1,0,25,0,42,0\n44,0,38,0,14,0,35,0,12,0,31,0\n29,0,21,0,33,0,40,0,18,0,32,0\n5,0,43,0,19,0,34,0,16,0,24,0\n28,0,20,0,30,0,11,0,39,0,7,0\n22,0,41,0,37,0,13,0,27,0,15,0\n10,0,36,0,23,0,26,0,4,0,8,0\n3,0,33,1,29,1,9,0,18,1,40,1\n"
  },
  {
    "path": "schedules/44_10.csv",
    "content": "27,0,31,0,29,0,41,0,8,0,9,0\n5,0,28,0,37,0,23,0,35,0,1,0\n21,0,7,0,12,0,36,0,13,0,17,0\n34,0,39,0,3,0,4,0,19,0,25,0\n22,0,2,0,11,0,20,0,32,0,26,0\n15,0,14,0,44,0,33,0,30,0,40,0\n18,0,16,0,24,0,6,0,43,0,38,0\n10,0,11,0,19,0,42,0,28,0,21,0\n5,0,13,0,8,0,41,0,22,0,14,0\n24,0,26,0,6,0,2,0,34,0,15,0\n33,0,25,0,3,0,7,0,29,0,40,0\n35,0,42,0,18,0,44,0,12,0,9,0\n37,0,38,0,23,0,39,0,30,0,43,0\n16,0,10,0,20,0,32,0,31,0,1,0\n27,0,17,0,11,0,36,0,4,0,14,0\n23,1,41,0,25,0,13,1,22,0,3,0\n2,1,21,0,6,0,19,1,44,0,20,0\n26,0,35,0,30,0,29,0,18,0,10,0\n39,0,16,0,28,0,34,0,36,0,27,0\n17,0,5,0,31,0,42,0,40,0,43,0\n9,0,4,0,32,0,24,0,7,0,1,0\n15,0,8,0,38,0,33,0,37,0,12,0\n6,0,36,0,29,0,14,0,23,0,10,0\n22,0,18,0,28,0,7,0,17,0,39,0\n20,0,9,0,11,0,37,0,19,0,3,0\n32,0,33,0,44,0,43,0,13,0,31,0\n15,0,21,0,27,0,42,0,1,0,8,0\n38,0,41,0,12,0,26,0,34,0,25,0\n40,0,35,0,5,0,16,0,4,0,2,0\n24,0,43,0,3,0,30,0,21,0,14,0\n11,0,6,0,13,0,8,0,31,0,39,0\n12,0,20,0,18,0,27,0,40,0,23,0\n1,0,25,0,22,0,24,0,35,0,33,0\n4,0,41,0,42,0,30,0,32,0,36,0\n26,0,9,0,38,0,2,0,44,0,17,0\n16,0,7,0,34,0,15,0,37,0,10,0\n28,0,19,0,31,0,29,0,5,0,12,0\n11,0,24,0,40,0,38,0,35,0,13,0\n20,0,21,0,36,0,33,0,9,0,15,0\n16,0,37,0,42,0,14,0,28,0,26,0\n44,0,1,0,43,0,34,0,29,0,22,0\n10,0,17,0,6,0,3,0,5,0,41,0\n19,0,27,0,2,0,25,0,7,0,30,0\n32,0,23,0,8,0,39,0,18,0,4,0\n3,0,29,0,28,0,16,0,21,0,38,0\n41,0,31,0,10,0,19,0,24,0,12,0\n40,0,4,0,37,0,22,0,6,0,44,0\n8,0,26,0,43,0,35,0,7,0,20,0\n9,0,14,0,27,0,23,0,13,0,34,0\n33,0,39,0,1,0,17,0,30,0,42,0\n15,0,36,0,25,0,18,0,5,0,11,0\n32,0,3,0,14,0,2,0,12,0,28,0\n9,0,23,0,39,0,40,0,10,0,21,0\n31,0,38,0,30,0,7,0,36,0,22,0\n25,0,35,0,17,0,15,0,20,0,6,0\n18,0,2,0,43,0,41,0,11,0,1,0\n13,0,33,0,4,0,19,0,16,0,26,0\n29,0,37,0,44,0,5,0,24,0,27,0\n34,0,8,0,35,0,32,0,42,0,2,0\n23,0,21,0,22,0,25,0,31,0,14,0\n44,0,7,0,41,0,16,0,11,0,12,0\n43,0,4,0,15,0,28,0,9,0,10,0\n30,0,24,0,34,0,5,0,39,0,20,0\n32,0,27,0,6,0,38,0,19,0,33,0\n26,0,36,0,1,0,8,0,40,0,3,0\n42,0,29,0,13,0,37,0,17,0,18,0\n39,0,14,0,19,0,35,0,41,0,15,0\n22,0,30,0,12,0,6,0,16,0,9,0\n7,0,37,0,26,0,5,0,32,0,21,0\n2,0,40,0,13,0,10,0,27,0,43,0\n18,0,34,0,33,0,11,0,23,0,3,0\n17,0,8,0,28,0,25,0,44,0,24,0\n20,0,42,0,31,0,4,0,29,0,38,0\n36,0,23,0,2,0,1,0,13,0,19,0\n"
  },
  {
    "path": "schedules/44_11.csv",
    "content": "37,0,12,0,31,0,16,0,13,0,1,0\n24,0,39,0,43,0,5,0,19,0,35,0\n9,0,2,0,10,0,34,0,11,0,21,0\n27,0,22,0,17,0,42,0,4,0,41,0\n18,0,32,0,25,0,29,0,15,0,7,0\n26,0,14,0,40,0,30,0,28,0,20,0\n44,0,8,0,36,0,3,0,23,0,33,0\n38,0,35,0,7,0,6,0,41,0,2,0\n31,0,32,0,40,0,19,0,25,0,10,0\n8,0,4,0,29,0,26,0,12,0,16,0\n18,0,24,0,34,0,39,0,33,0,38,0\n9,0,43,0,1,0,3,0,17,0,20,0\n11,0,23,0,36,0,21,0,28,0,27,0\n13,0,44,0,37,0,22,0,42,0,5,0\n15,0,6,0,35,0,14,0,30,0,1,0\n10,1,17,0,29,0,9,1,19,0,38,0\n33,0,41,0,16,0,27,0,43,0,26,0\n30,0,8,0,25,0,44,0,11,0,24,0\n18,0,5,0,20,0,28,0,23,0,6,0\n12,0,22,0,3,0,15,0,2,0,37,0\n32,0,21,0,14,0,39,0,13,0,31,0\n36,0,7,0,42,0,34,0,4,0,40,0\n25,0,6,0,11,0,5,0,37,0,3,0\n15,0,1,0,44,0,26,0,29,0,39,0\n17,0,34,0,19,0,35,0,28,0,16,0\n18,0,31,0,9,0,42,0,32,0,20,0\n2,0,40,0,13,0,43,0,23,0,41,0\n7,0,12,0,27,0,22,0,21,0,30,0\n14,0,33,0,36,0,8,0,38,0,10,0\n4,0,6,0,13,0,24,0,3,0,19,0\n41,0,34,0,15,0,40,0,1,0,18,0\n35,0,23,0,39,0,31,0,16,0,22,0\n42,0,29,0,38,0,8,0,11,0,5,0\n33,0,4,0,20,0,32,0,30,0,2,0\n37,0,24,0,27,0,17,0,26,0,7,0\n14,0,28,0,44,0,12,0,10,0,21,0\n25,0,43,0,16,0,9,0,36,0,6,0\n33,0,31,0,34,0,37,0,26,0,22,0\n3,0,1,0,29,0,42,0,19,0,14,0\n41,0,25,0,24,0,20,0,11,0,39,0\n4,0,12,0,38,0,9,0,40,0,23,0\n18,0,10,0,28,0,35,0,27,0,13,0\n30,0,5,0,15,0,21,0,2,0,36,0\n43,0,8,0,17,0,44,0,32,0,7,0\n10,0,24,0,22,0,1,0,4,0,28,0\n26,0,21,0,38,0,35,0,42,0,25,0\n6,0,8,0,40,0,39,0,2,0,17,0\n37,0,32,0,36,0,41,0,18,0,44,0\n11,0,3,0,14,0,34,0,23,0,16,0\n27,0,29,0,5,0,31,0,20,0,43,0\n15,0,19,0,13,0,9,0,33,0,7,0\n30,0,42,0,10,0,12,0,39,0,41,0\n38,0,1,0,22,0,43,0,40,0,11,0\n16,0,9,0,29,0,33,0,24,0,28,0\n5,0,26,0,6,0,32,0,34,0,12,0\n27,0,30,0,18,0,8,0,15,0,3,0\n2,0,35,0,4,0,31,0,25,0,44,0\n7,0,37,0,19,0,23,0,14,0,20,0\n21,0,17,0,6,0,36,0,13,0,29,0\n39,0,44,0,5,0,15,0,9,0,27,0\n35,0,32,0,3,0,37,0,38,0,40,0\n21,0,23,0,25,0,1,0,17,0,33,0\n2,0,42,0,18,0,16,0,4,0,14,0\n28,0,31,0,19,0,41,0,8,0,7,0\n36,0,20,0,26,0,13,0,11,0,22,0\n10,0,34,0,43,0,24,0,12,0,30,0\n32,0,9,0,28,0,1,0,27,0,2,0\n31,0,11,0,15,0,4,0,5,0,17,0\n34,0,37,0,39,0,43,0,29,0,21,0\n13,0,8,0,14,0,22,0,40,0,25,0\n23,0,10,0,26,0,7,0,6,0,18,0\n42,0,33,0,12,0,35,0,36,0,24,0\n19,0,16,0,20,0,38,0,30,0,44,0\n41,0,13,0,21,0,3,0,39,0,4,0\n2,0,23,0,22,0,32,0,29,0,24,0\n33,0,44,0,40,0,6,0,27,0,34,0\n16,0,38,0,3,0,31,0,10,0,7,0\n17,0,41,0,30,0,14,0,9,0,5,0\n11,0,1,0,19,0,12,0,18,0,36,0\n42,0,43,0,28,0,15,0,25,0,26,0\n20,0,8,0,9,0,37,0,35,0,10,0\n"
  },
  {
    "path": "schedules/44_12.csv",
    "content": "32,0,18,0,25,0,36,0,16,0,5,0\n27,0,44,0,14,0,9,0,31,0,30,0\n2,0,10,0,12,0,39,0,29,0,13,0\n35,0,42,0,7,0,4,0,19,0,21,0\n23,0,24,0,8,0,15,0,28,0,22,0\n38,0,3,0,37,0,33,0,41,0,11,0\n26,0,20,0,34,0,6,0,43,0,40,0\n17,0,7,0,39,0,1,0,29,0,8,0\n13,0,19,0,12,0,37,0,24,0,27,0\n43,0,42,0,3,0,40,0,2,0,5,0\n23,0,28,0,31,0,4,0,38,0,16,0\n11,0,32,0,26,0,15,0,33,0,10,0\n14,0,35,0,6,0,17,0,22,0,25,0\n20,0,44,0,36,0,18,0,34,0,41,0\n9,0,1,0,16,0,30,0,21,0,42,0\n38,0,33,0,7,0,2,0,35,0,24,0\n23,0,13,0,27,0,41,0,25,0,44,0\n31,0,4,0,11,0,40,0,20,0,29,0\n34,0,5,0,30,0,17,0,21,0,10,0\n6,0,37,0,8,0,43,0,15,0,18,0\n1,0,14,0,39,0,19,0,3,0,28,0\n26,0,12,0,22,0,9,0,36,0,32,0\n35,0,17,0,16,0,13,0,43,0,37,0\n18,0,11,0,44,0,14,0,42,0,25,0\n4,0,30,0,29,0,39,0,23,0,12,0\n2,0,21,0,15,0,8,0,19,0,20,0\n26,0,7,0,5,0,34,0,38,0,27,0\n40,0,41,0,36,0,28,0,9,0,10,0\n22,0,24,0,33,0,3,0,1,0,6,0\n31,0,18,0,20,0,32,0,23,0,2,0\n9,0,29,0,27,0,42,0,19,0,16,0\n28,0,43,0,39,0,13,0,11,0,34,0\n40,0,33,0,21,0,38,0,14,0,36,0\n26,0,3,0,30,0,24,0,25,0,15,0\n10,0,4,0,6,0,1,0,5,0,22,0\n37,0,44,0,35,0,32,0,8,0,17,0\n41,0,31,0,21,0,12,0,7,0,25,0\n36,0,27,0,19,0,11,0,29,0,43,0\n39,0,3,0,5,0,9,0,37,0,20,0\n41,0,17,0,30,0,24,0,18,0,4,0\n28,0,1,0,35,0,26,0,44,0,2,0\n23,0,38,0,40,0,32,0,13,0,7,0\n22,0,34,0,14,0,12,0,16,0,15,0\n8,0,10,0,42,0,6,0,33,0,31,0\n9,0,21,0,7,0,37,0,28,0,18,0\n2,0,19,0,17,0,23,0,36,0,26,0\n13,0,31,0,5,0,14,0,30,0,33,0\n34,0,12,0,6,0,35,0,3,0,11,0\n22,0,32,0,29,0,43,0,8,0,41,0\n1,0,42,0,15,0,25,0,40,0,39,0\n38,0,44,0,24,0,16,0,10,0,20,0\n27,0,18,0,35,0,4,0,3,0,9,0\n23,0,34,0,33,0,30,0,1,0,43,0\n8,0,14,0,31,0,26,0,38,0,10,0\n29,0,19,0,37,0,40,0,44,0,22,0\n27,0,28,0,21,0,24,0,6,0,32,0\n11,0,16,0,25,0,20,0,2,0,7,0\n42,0,12,0,41,0,15,0,17,0,5,0\n4,0,39,0,44,0,13,0,36,0,21,0\n43,0,22,0,31,0,18,0,38,0,1,0\n15,0,23,0,35,0,41,0,27,0,10,0\n16,0,3,0,8,0,17,0,36,0,12,0\n4,0,32,0,33,0,19,0,34,0,7,0\n42,0,20,0,39,0,26,0,24,0,14,0\n13,0,9,0,40,0,11,0,6,0,5,0\n30,0,25,0,37,0,2,0,28,0,29,0\n32,0,43,0,21,0,10,0,3,0,14,0\n41,0,16,0,7,0,26,0,39,0,6,0\n28,0,36,0,42,0,13,0,20,0,30,0\n24,0,5,0,29,0,31,0,34,0,35,0\n23,0,25,0,4,0,33,0,8,0,9,0\n40,0,18,0,17,0,2,0,27,0,22,0\n38,0,15,0,11,0,1,0,12,0,44,0\n37,0,34,0,10,0,19,0,25,0,31,0\n17,0,24,0,3,0,16,0,14,0,40,0\n1,0,13,0,4,0,41,0,26,0,15,0\n37,0,2,0,36,0,6,0,42,0,23,0\n8,0,22,0,18,0,27,0,39,0,11,0\n5,0,43,0,9,0,7,0,44,0,28,0\n38,0,32,0,20,0,30,0,19,0,35,0\n29,0,33,0,26,0,21,0,12,0,18,0\n2,0,43,0,14,0,4,0,37,0,41,0\n10,0,44,0,13,0,7,0,3,0,22,0\n34,0,29,0,15,0,38,0,9,0,42,0\n39,0,16,0,30,0,8,0,35,0,40,0\n20,0,17,0,28,0,27,0,33,0,12,0\n24,0,11,0,19,0,23,0,5,0,21,0\n36,0,6,0,25,0,1,0,32,0,31,0\n"
  },
  {
    "path": "schedules/44_13.csv",
    "content": "19,0,41,0,13,0,35,0,17,0,12,0\n15,0,42,0,29,0,30,0,27,0,10,0\n14,0,26,0,21,0,33,0,4,0,7,0\n38,0,6,0,25,0,2,0,9,0,32,0\n1,0,43,0,8,0,11,0,18,0,37,0\n3,0,5,0,28,0,16,0,24,0,44,0\n40,0,39,0,20,0,22,0,34,0,36,0\n23,0,6,0,42,0,31,0,21,0,35,0\n11,0,41,0,3,0,28,0,13,0,2,0\n30,0,7,0,9,0,1,0,39,0,10,0\n17,0,25,0,44,0,43,0,23,0,16,0\n31,0,36,0,8,0,38,0,22,0,14,0\n40,0,37,0,5,0,27,0,20,0,12,0\n32,0,15,0,33,0,24,0,34,0,19,0\n4,0,26,0,41,0,29,0,18,0,10,0\n30,1,21,0,8,0,40,1,9,0,43,0\n19,1,17,0,11,0,23,1,44,0,27,0\n14,0,4,0,5,0,42,0,38,0,39,0\n28,0,37,0,7,0,29,0,25,0,36,0\n1,0,32,0,13,0,31,0,33,0,16,0\n22,0,12,0,26,0,2,0,34,0,6,0\n35,0,3,0,24,0,15,0,18,0,20,0\n8,0,9,0,13,0,41,0,25,0,7,0\n43,0,42,0,12,0,21,0,11,0,22,0\n40,0,24,0,1,0,28,0,27,0,35,0\n14,0,33,0,39,0,37,0,16,0,6,0\n17,0,23,0,34,0,18,0,38,0,3,0\n4,0,10,0,15,0,36,0,5,0,19,0\n44,0,29,0,32,0,26,0,2,0,30,0\n31,0,39,0,28,0,20,0,21,0,7,0\n40,0,15,0,35,0,14,0,6,0,11,0\n37,0,9,0,44,0,12,0,34,0,4,0\n22,0,20,0,24,0,1,0,26,0,25,0\n31,0,18,0,2,0,5,0,17,0,27,0\n43,0,29,0,38,0,23,0,33,0,13,0\n3,0,36,0,32,0,41,0,42,0,30,0\n16,0,10,0,20,0,19,0,8,0,44,0\n34,0,26,0,27,0,28,0,21,0,15,0\n2,0,33,0,25,0,36,0,39,0,18,0\n13,0,4,0,22,0,30,0,23,0,37,0\n42,0,3,0,1,0,12,0,19,0,7,0\n16,0,38,0,41,0,6,0,31,0,40,0\n35,0,5,0,29,0,17,0,32,0,8,0\n14,0,9,0,10,0,43,0,11,0,24,0\n4,0,18,0,44,0,40,0,33,0,12,0\n16,0,21,0,25,0,41,0,1,0,35,0\n10,0,19,0,23,0,37,0,27,0,2,0\n14,0,43,0,36,0,5,0,24,0,32,0\n9,0,28,0,42,0,17,0,15,0,31,0\n8,0,22,0,39,0,13,0,26,0,3,0\n7,0,34,0,11,0,20,0,6,0,29,0\n38,0,4,0,35,0,30,0,12,0,28,0\n27,0,19,0,43,0,26,0,16,0,36,0\n5,0,2,0,7,0,9,0,34,0,31,0\n20,0,1,0,11,0,41,0,22,0,17,0\n29,0,33,0,30,0,37,0,14,0,3,0\n44,0,10,0,40,0,25,0,32,0,42,0\n24,0,15,0,39,0,8,0,38,0,23,0\n21,0,6,0,19,0,13,0,18,0,5,0\n28,0,25,0,22,0,11,0,42,0,33,0\n35,0,10,0,37,0,34,0,38,0,32,0\n18,0,7,0,17,0,15,0,36,0,30,0\n13,0,12,0,24,0,29,0,39,0,16,0\n23,0,21,0,2,0,40,0,14,0,8,0\n41,0,31,0,20,0,43,0,26,0,44,0\n4,0,27,0,1,0,6,0,3,0,9,0\n23,0,18,0,28,0,10,0,42,0,13,0\n37,0,22,0,43,0,15,0,7,0,16,0\n38,0,33,0,27,0,20,0,2,0,8,0\n31,0,11,0,32,0,4,0,3,0,30,0\n24,0,36,0,6,0,44,0,21,0,12,0\n40,0,29,0,26,0,5,0,9,0,1,0\n34,0,14,0,41,0,39,0,25,0,19,0\n35,0,33,0,6,0,17,0,10,0,3,0\n11,0,30,0,5,0,37,0,24,0,21,0\n27,0,25,0,40,0,4,0,43,0,39,0\n2,0,36,0,44,0,13,0,38,0,7,0\n8,0,28,0,41,0,1,0,14,0,15,0\n35,0,26,0,19,0,29,0,22,0,31,0\n18,0,9,0,12,0,32,0,20,0,23,0\n34,0,16,0,8,0,42,0,17,0,4,0\n6,0,39,0,30,0,28,0,43,0,10,0\n12,0,36,0,11,0,33,0,18,0,26,0\n15,0,27,0,3,0,14,0,13,0,25,0\n23,0,1,0,22,0,5,0,44,0,34,0\n17,0,38,0,21,0,19,0,37,0,29,0\n7,0,24,0,31,0,40,0,32,0,41,0\n42,0,16,0,2,0,35,0,9,0,20,0\n14,0,18,0,19,0,44,0,6,0,28,0\n30,0,31,0,25,0,8,0,29,0,12,0\n38,0,10,0,26,0,21,0,3,0,40,0\n37,0,34,0,42,0,41,0,43,0,5,0\n23,0,15,0,9,0,33,0,1,0,36,0\n39,0,27,0,7,0,22,0,32,0,35,0\n17,0,20,0,13,0,24,0,4,0,2,0\n16,0,30,0,19,0,11,0,40,0,23,0\n"
  },
  {
    "path": "schedules/44_14.csv",
    "content": "2,0,5,0,17,0,33,0,27,0,9,0\n11,0,44,0,38,0,29,0,8,0,24,0\n36,0,3,0,32,0,39,0,23,0,19,0\n26,0,21,0,15,0,4,0,37,0,34,0\n42,0,18,0,40,0,6,0,41,0,7,0\n20,0,43,0,25,0,35,0,16,0,30,0\n10,0,31,0,1,0,28,0,14,0,12,0\n22,0,37,0,41,0,13,0,39,0,40,0\n42,0,34,0,2,0,38,0,25,0,19,0\n12,0,16,0,7,0,3,0,23,0,14,0\n27,0,43,0,26,0,20,0,13,0,32,0\n10,0,44,0,29,0,15,0,35,0,8,0\n33,0,21,0,5,0,17,0,18,0,22,0\n9,0,28,0,6,0,4,0,30,0,31,0\n24,0,11,0,7,0,1,0,36,0,34,0\n14,1,43,0,15,0,32,1,5,0,40,0\n29,0,2,0,9,0,6,0,13,0,3,0\n4,0,22,0,25,0,20,0,18,0,36,0\n39,0,33,0,42,0,16,0,28,0,8,0\n27,0,21,0,24,0,26,0,10,0,12,0\n38,0,35,0,1,0,11,0,23,0,31,0\n44,0,41,0,17,0,37,0,19,0,30,0\n10,0,7,0,40,0,2,0,22,0,16,0\n4,0,28,0,20,0,24,0,15,0,3,0\n8,0,41,0,19,0,34,0,32,0,6,0\n9,0,38,0,39,0,21,0,18,0,44,0\n37,0,33,0,13,0,43,0,5,0,31,0\n26,0,36,0,14,0,27,0,17,0,1,0\n25,0,35,0,23,0,11,0,42,0,12,0\n30,0,33,0,18,0,29,0,21,0,3,0\n43,0,34,0,38,0,22,0,1,0,7,0\n8,0,37,0,2,0,17,0,35,0,4,0\n30,0,9,0,44,0,27,0,15,0,42,0\n11,0,16,0,29,0,41,0,12,0,5,0\n14,0,39,0,31,0,20,0,19,0,24,0\n36,0,13,0,23,0,10,0,28,0,32,0\n40,0,6,0,8,0,26,0,25,0,16,0\n18,0,41,0,31,0,2,0,3,0,43,0\n30,0,7,0,27,0,19,0,22,0,13,0\n28,0,29,0,34,0,21,0,25,0,12,0\n35,0,44,0,36,0,40,0,33,0,1,0\n20,0,17,0,26,0,5,0,38,0,42,0\n6,0,39,0,24,0,15,0,9,0,23,0\n10,0,11,0,37,0,4,0,14,0,32,0\n43,0,1,0,29,0,42,0,16,0,19,0\n8,0,20,0,3,0,27,0,36,0,2,0\n21,0,13,0,7,0,6,0,35,0,5,0\n38,0,40,0,23,0,14,0,41,0,33,0\n30,0,34,0,10,0,18,0,39,0,28,0\n12,0,9,0,4,0,37,0,32,0,44,0\n15,0,11,0,22,0,26,0,24,0,31,0\n25,0,14,0,6,0,17,0,43,0,33,0\n19,0,36,0,12,0,16,0,20,0,9,0\n30,0,2,0,39,0,4,0,7,0,5,0\n10,0,22,0,3,0,26,0,44,0,34,0\n1,0,23,0,24,0,41,0,25,0,13,0\n40,0,37,0,15,0,38,0,29,0,18,0\n11,0,27,0,32,0,21,0,17,0,28,0\n42,0,35,0,14,0,8,0,31,0,34,0\n15,0,18,0,19,0,23,0,10,0,5,0\n30,0,3,0,41,0,43,0,21,0,36,0\n7,0,33,0,8,0,9,0,26,0,11,0\n28,0,31,0,22,0,40,0,44,0,25,0\n35,0,32,0,2,0,17,0,42,0,24,0\n16,0,13,0,27,0,38,0,37,0,12,0\n20,0,29,0,6,0,4,0,1,0,39,0\n3,0,28,0,19,0,40,0,17,0,9,0\n13,0,35,0,12,0,18,0,8,0,26,0\n44,0,5,0,14,0,30,0,11,0,25,0\n43,0,4,0,23,0,22,0,27,0,39,0\n1,0,41,0,20,0,34,0,33,0,15,0\n6,0,42,0,37,0,24,0,10,0,36,0\n31,0,16,0,38,0,32,0,7,0,29,0\n21,0,39,0,35,0,2,0,19,0,14,0\n25,0,34,0,24,0,18,0,9,0,13,0\n32,0,12,0,33,0,4,0,42,0,41,0\n31,0,20,0,7,0,8,0,10,0,21,0\n3,0,1,0,11,0,27,0,29,0,37,0\n17,0,6,0,16,0,44,0,22,0,23,0\n40,0,2,0,26,0,38,0,36,0,15,0\n28,0,5,0,24,0,30,0,43,0,8,0\n32,0,25,0,18,0,44,0,27,0,6,0\n4,0,33,0,36,0,15,0,13,0,29,0\n39,0,16,0,41,0,28,0,35,0,26,0\n23,0,7,0,34,0,17,0,31,0,37,0\n3,0,9,0,5,0,14,0,38,0,10,0\n21,0,40,0,19,0,1,0,12,0,30,0\n22,0,42,0,43,0,11,0,2,0,20,0\n13,0,5,0,26,0,7,0,3,0,44,0\n30,0,17,0,36,0,12,0,15,0,31,0\n23,0,8,0,27,0,21,0,34,0,11,0\n25,0,42,0,10,0,20,0,37,0,39,0\n18,0,4,0,2,0,16,0,14,0,1,0\n22,0,9,0,32,0,29,0,41,0,35,0\n28,0,33,0,38,0,19,0,6,0,43,0\n24,0,13,0,44,0,40,0,20,0,14,0\n1,0,5,0,18,0,22,0,8,0,36,0\n15,0,32,0,16,0,21,0,9,0,42,0\n4,0,3,0,27,0,31,0,40,0,35,0\n25,0,28,0,37,0,2,0,7,0,38,0\n39,0,34,0,12,0,33,0,6,0,11,0\n19,0,17,0,10,0,41,0,24,0,43,0\n29,0,30,0,14,0,26,0,23,0,32,0\n"
  },
  {
    "path": "schedules/44_2.csv",
    "content": "18,0,10,0,28,0,14,0,38,0,36,0\n27,0,17,0,6,0,29,0,35,0,12,0\n44,0,37,0,2,0,22,0,33,0,24,0\n4,0,15,0,34,0,40,0,7,0,13,0\n8,0,16,0,25,0,42,0,20,0,39,0\n23,0,32,0,3,0,26,0,19,0,30,0\n11,0,31,0,9,0,21,0,43,0,1,0\n41,0,10,0,13,0,5,0,39,0,6,0\n40,0,12,0,20,0,32,0,37,0,28,0\n35,0,30,0,14,0,31,0,22,0,42,0\n11,0,17,0,25,0,3,0,34,0,41,0\n24,0,38,0,43,0,15,0,26,0,16,0\n29,0,9,0,19,0,5,0,33,0,8,0\n1,0,2,0,27,0,23,0,7,0,18,0\n36,0,21,0,25,1,4,0,44,0,30,1\n"
  },
  {
    "path": "schedules/44_3.csv",
    "content": "7,0,29,0,44,0,30,0,35,0,39,0\n14,0,23,0,16,0,2,0,24,0,3,0\n43,0,25,0,42,0,13,0,33,0,4,0\n32,0,1,0,18,0,17,0,27,0,9,0\n41,0,37,0,22,0,8,0,21,0,10,0\n6,0,20,0,31,0,28,0,40,0,11,0\n19,0,12,0,38,0,26,0,36,0,34,0\n15,0,10,0,1,0,5,0,35,0,43,0\n40,0,42,0,30,0,18,0,2,0,21,0\n19,0,27,0,41,0,16,0,28,0,44,0\n29,0,9,0,13,0,15,0,38,0,8,0\n4,0,6,0,26,0,39,0,23,0,22,0\n17,0,37,0,33,0,31,0,14,0,12,0\n24,0,5,0,36,0,20,0,7,0,32,0\n3,0,34,0,9,0,11,0,25,0,22,0\n12,0,8,0,35,0,42,0,16,0,6,0\n18,0,28,0,43,0,37,0,23,0,36,0\n11,0,44,0,26,0,2,0,5,0,17,0\n21,0,38,0,14,0,7,0,25,0,1,0\n39,0,13,0,10,0,31,0,19,0,32,0\n20,0,30,0,3,0,27,0,15,0,4,0\n41,0,24,0,34,0,29,0,40,0,33,0\n"
  },
  {
    "path": "schedules/44_4.csv",
    "content": "17,0,26,0,39,0,13,0,10,0,42,0\n32,0,27,0,24,0,8,0,7,0,31,0\n14,0,18,0,4,0,19,0,2,0,35,0\n22,0,5,0,28,0,36,0,15,0,9,0\n6,0,1,0,44,0,11,0,23,0,33,0\n41,0,40,0,21,0,3,0,43,0,30,0\n38,0,34,0,29,0,37,0,12,0,25,0\n16,0,32,0,44,0,20,0,42,0,9,0\n7,0,10,0,36,0,14,0,43,0,23,0\n19,0,17,0,40,0,5,0,29,0,27,0\n34,0,1,0,3,0,39,0,20,0,18,0\n33,0,24,0,12,0,41,0,35,0,15,0\n8,0,6,0,38,0,30,0,16,0,22,0\n13,0,28,0,37,0,21,0,31,0,4,0\n2,0,11,0,43,0,25,0,26,0,24,0\n5,1,3,0,17,0,1,1,14,0,16,0\n12,1,20,0,21,0,10,1,19,0,6,0\n37,0,7,0,42,0,11,0,41,0,22,0\n39,0,2,0,31,0,36,0,44,0,29,0\n9,0,30,0,35,0,25,0,13,0,27,0\n15,0,4,0,26,0,23,0,34,0,8,0\n28,0,38,0,33,0,18,0,32,0,40,0\n36,0,42,0,30,0,24,0,19,0,1,0\n23,0,5,0,25,0,20,0,31,0,41,0\n16,0,35,0,7,0,26,0,29,0,28,0\n11,0,3,0,15,0,10,0,27,0,38,0\n13,0,18,0,44,0,12,0,8,0,43,0\n2,0,34,0,22,0,17,0,33,0,21,0\n9,0,40,0,14,0,6,0,37,0,39,0\n32,0,5,0,12,0,4,0,1,0,10,0\n"
  },
  {
    "path": "schedules/44_5.csv",
    "content": "9,0,15,0,10,0,6,0,2,0,38,0\n12,0,44,0,18,0,29,0,22,0,23,0\n30,0,34,0,33,0,20,0,24,0,36,0\n27,0,35,0,8,0,11,0,7,0,13,0\n26,0,39,0,21,0,41,0,43,0,32,0\n14,0,37,0,25,0,5,0,28,0,17,0\n40,0,31,0,4,0,1,0,19,0,42,0\n3,0,20,0,44,0,16,0,41,0,8,0\n26,0,12,0,36,0,11,0,28,0,2,0\n7,0,37,0,23,0,42,0,32,0,38,0\n4,0,6,0,18,0,33,0,5,0,13,0\n35,0,22,0,9,0,31,0,21,0,24,0\n17,0,16,0,1,0,19,0,34,0,15,0\n14,0,43,0,10,0,30,0,27,0,3,0\n25,0,39,0,7,0,40,0,29,0,9,0\n1,1,33,0,41,0,35,1,32,0,28,0\n34,0,21,0,23,0,11,0,4,0,14,0\n5,0,30,0,40,0,22,0,8,0,2,0\n6,0,36,0,17,0,39,0,44,0,27,0\n31,0,38,0,43,0,12,0,16,0,25,0\n24,0,3,0,15,0,18,0,26,0,37,0\n13,0,19,0,20,0,29,0,10,0,42,0\n22,0,43,0,33,0,17,0,14,0,7,0\n38,0,35,0,44,0,26,0,40,0,34,0\n10,0,8,0,12,0,1,0,32,0,24,0\n29,0,16,0,11,0,6,0,37,0,30,0\n2,0,42,0,25,0,18,0,27,0,21,0\n28,0,39,0,13,0,31,0,20,0,15,0\n36,0,19,0,5,0,23,0,3,0,9,0\n41,0,24,0,27,0,4,0,29,0,38,0\n22,0,1,0,6,0,26,0,20,0,25,0\n12,0,5,0,42,0,15,0,33,0,35,0\n21,0,19,0,28,0,7,0,30,0,44,0\n16,0,40,0,32,0,13,0,14,0,36,0\n34,0,4,0,37,0,9,0,43,0,8,0\n31,0,17,0,11,0,41,0,18,0,10,0\n2,0,3,0,1,0,39,0,23,0,35,0\n"
  },
  {
    "path": "schedules/44_6.csv",
    "content": "29,0,36,0,3,0,5,0,35,0,22,0\n42,0,15,0,12,0,11,0,34,0,10,0\n23,0,1,0,39,0,4,0,27,0,30,0\n21,0,7,0,44,0,20,0,14,0,41,0\n8,0,25,0,17,0,9,0,40,0,2,0\n38,0,37,0,6,0,13,0,32,0,28,0\n33,0,18,0,16,0,26,0,31,0,43,0\n19,0,29,0,12,0,24,0,1,0,41,0\n8,0,32,0,27,0,34,0,20,0,35,0\n16,0,37,0,22,0,23,0,40,0,44,0\n19,0,36,0,4,0,17,0,6,0,33,0\n26,0,7,0,39,0,13,0,15,0,5,0\n11,0,43,0,14,0,25,0,28,0,3,0\n24,0,38,0,10,0,21,0,31,0,2,0\n30,0,9,0,32,0,42,0,18,0,29,0\n34,0,40,0,1,0,36,0,20,0,13,0\n38,0,21,0,3,0,12,0,16,0,17,0\n42,0,26,0,28,0,22,0,25,0,27,0\n35,0,44,0,9,0,19,0,10,0,39,0\n2,0,14,0,4,0,15,0,18,0,37,0\n7,0,24,0,8,0,6,0,30,0,43,0\n41,0,11,0,5,0,31,0,33,0,23,0\n12,0,22,0,21,0,18,0,13,0,9,0\n36,0,14,0,32,0,24,0,26,0,19,0\n34,0,23,0,25,0,29,0,7,0,38,0\n40,0,28,0,31,0,15,0,30,0,35,0\n41,0,37,0,17,0,27,0,43,0,10,0\n1,0,4,0,5,0,8,0,44,0,42,0\n6,0,20,0,16,0,11,0,39,0,2,0\n3,0,7,0,40,0,33,0,32,0,10,0\n31,0,34,0,17,0,1,0,14,0,22,0\n18,0,8,0,36,0,41,0,39,0,28,0\n44,0,15,0,27,0,21,0,29,0,6,0\n26,0,35,0,4,0,38,0,9,0,11,0\n42,0,24,0,20,0,3,0,37,0,33,0\n16,0,30,0,13,0,25,0,19,0,5,0\n2,0,43,0,32,0,23,0,12,0,36,0\n33,0,38,0,22,0,39,0,15,0,8,0\n13,0,17,0,44,0,11,0,18,0,24,0\n6,0,5,0,27,0,14,0,40,0,12,0\n10,0,31,0,20,0,29,0,4,0,25,0\n26,0,2,0,30,0,3,0,41,0,34,0\n37,0,1,0,28,0,7,0,16,0,9,0\n35,0,42,0,19,0,23,0,43,0,21,0\n"
  },
  {
    "path": "schedules/44_7.csv",
    "content": "10,0,27,0,38,0,26,0,19,0,9,0\n43,0,29,0,13,0,42,0,2,0,41,0\n28,0,7,0,22,0,31,0,8,0,1,0\n24,0,44,0,36,0,5,0,20,0,6,0\n16,0,11,0,40,0,15,0,4,0,18,0\n17,0,3,0,37,0,21,0,23,0,25,0\n39,0,30,0,35,0,32,0,12,0,34,0\n33,0,18,0,36,0,14,0,10,0,41,0\n26,0,15,0,5,0,42,0,31,0,3,0\n8,0,37,0,7,0,27,0,43,0,35,0\n24,0,20,0,4,0,29,0,28,0,25,0\n11,0,12,0,21,0,32,0,6,0,2,0\n19,0,23,0,44,0,16,0,39,0,22,0\n40,0,9,0,1,0,14,0,17,0,34,0\n13,0,30,0,5,0,38,0,33,0,28,0\n19,1,7,0,20,0,41,1,18,0,23,0\n11,1,2,0,14,0,34,1,24,0,31,0\n44,0,29,0,9,0,15,0,30,0,21,0\n17,0,4,0,10,0,6,0,22,0,37,0\n27,0,1,0,32,0,16,0,3,0,13,0\n39,0,42,0,33,0,36,0,8,0,40,0\n35,0,25,0,12,0,38,0,43,0,26,0\n17,0,32,0,16,0,5,0,29,0,7,0\n9,0,39,0,37,0,18,0,28,0,11,0\n22,0,19,0,3,0,13,0,36,0,12,0\n27,0,33,0,14,0,25,0,4,0,44,0\n23,0,15,0,1,0,2,0,38,0,35,0\n26,0,31,0,6,0,20,0,30,0,40,0\n43,0,8,0,34,0,21,0,10,0,24,0\n41,0,7,0,4,0,42,0,12,0,9,0\n38,0,20,0,39,0,16,0,14,0,37,0\n13,0,24,0,32,0,44,0,26,0,18,0\n36,0,15,0,27,0,43,0,17,0,28,0\n6,0,42,0,25,0,19,0,34,0,1,0\n41,0,21,0,5,0,22,0,35,0,40,0\n29,0,33,0,10,0,11,0,23,0,31,0\n30,0,3,0,18,0,8,0,2,0,17,0\n28,0,42,0,19,0,21,0,35,0,14,0\n9,0,32,0,43,0,20,0,22,0,33,0\n30,0,2,0,31,0,25,0,36,0,16,0\n13,0,7,0,15,0,10,0,6,0,39,0\n26,0,8,0,23,0,11,0,5,0,4,0\n1,0,12,0,41,0,37,0,27,0,24,0\n34,0,40,0,44,0,38,0,29,0,3,0\n14,0,6,0,18,0,23,0,43,0,5,0\n21,0,4,0,31,0,13,0,39,0,1,0\n22,0,27,0,11,0,42,0,30,0,38,0\n25,0,41,0,19,0,8,0,32,0,15,0\n37,0,34,0,29,0,36,0,7,0,26,0\n2,0,40,0,12,0,44,0,28,0,10,0\n16,0,35,0,24,0,3,0,33,0,9,0\n17,0,19,0,11,0,20,0,41,0,34,0\n"
  },
  {
    "path": "schedules/44_8.csv",
    "content": "33,0,31,0,11,0,10,0,18,0,13,0\n27,0,43,0,35,0,9,0,26,0,23,0\n2,0,34,0,28,0,7,0,5,0,30,0\n44,0,29,0,38,0,17,0,20,0,12,0\n36,0,14,0,8,0,19,0,25,0,42,0\n3,0,22,0,40,0,32,0,21,0,37,0\n41,0,1,0,4,0,6,0,39,0,16,0\n15,0,33,0,23,0,24,0,29,0,8,0\n43,0,28,0,7,0,19,0,22,0,38,0\n32,0,36,0,30,0,44,0,16,0,35,0\n6,0,12,0,42,0,13,0,25,0,37,0\n5,0,39,0,27,0,24,0,41,0,17,0\n18,0,31,0,21,0,15,0,2,0,14,0\n10,0,3,0,9,0,34,0,26,0,1,0\n20,0,40,0,5,0,11,0,4,0,6,0\n18,1,33,0,17,0,23,1,2,0,12,0\n34,0,44,0,41,0,22,0,25,0,31,0\n42,0,43,0,24,0,35,0,3,0,21,0\n29,0,28,0,13,0,40,0,10,0,16,0\n38,0,8,0,4,0,27,0,37,0,1,0\n26,0,7,0,32,0,39,0,20,0,14,0\n36,0,11,0,19,0,30,0,15,0,9,0\n17,0,37,0,5,0,43,0,25,0,1,0\n33,0,35,0,20,0,28,0,27,0,40,0\n8,0,7,0,34,0,6,0,18,0,36,0\n19,0,10,0,44,0,23,0,39,0,21,0\n15,0,22,0,4,0,2,0,42,0,26,0\n13,0,41,0,38,0,30,0,3,0,14,0\n12,0,32,0,29,0,9,0,11,0,24,0\n16,0,18,0,27,0,31,0,19,0,39,0\n4,0,10,0,7,0,25,0,3,0,15,0\n38,0,30,0,21,0,33,0,41,0,8,0\n2,0,17,0,13,0,32,0,35,0,34,0\n31,0,23,0,20,0,12,0,43,0,22,0\n26,0,37,0,36,0,5,0,29,0,11,0\n14,0,42,0,44,0,9,0,28,0,6,0\n16,0,1,0,22,0,40,0,24,0,15,0\n18,0,12,0,8,0,10,0,5,0,35,0\n23,0,17,0,3,0,36,0,28,0,31,0\n11,0,37,0,40,0,41,0,14,0,27,0\n34,0,21,0,9,0,20,0,16,0,4,0\n1,0,7,0,42,0,44,0,33,0,32,0\n19,0,6,0,2,0,24,0,26,0,38,0\n29,0,25,0,39,0,30,0,43,0,13,0\n1,0,11,0,21,0,7,0,23,0,35,0\n17,0,26,0,31,0,8,0,40,0,42,0\n24,0,5,0,19,0,13,0,4,0,44,0\n27,0,6,0,3,0,22,0,29,0,30,0\n14,0,12,0,37,0,34,0,15,0,39,0\n20,0,43,0,2,0,10,0,41,0,36,0\n9,0,25,0,32,0,18,0,28,0,38,0\n16,0,14,0,23,0,33,0,5,0,4,0\n35,0,41,0,31,0,19,0,7,0,29,0\n10,0,6,0,15,0,17,0,27,0,32,0\n21,0,28,0,26,0,12,0,36,0,1,0\n24,0,18,0,30,0,20,0,37,0,42,0\n39,0,13,0,33,0,8,0,22,0,9,0\n44,0,25,0,2,0,3,0,16,0,11,0\n34,0,40,0,18,0,43,0,38,0,23,0\n"
  },
  {
    "path": "schedules/44_9.csv",
    "content": "14,0,29,0,43,0,9,0,42,0,44,0\n33,0,8,0,20,0,36,0,15,0,10,0\n3,0,35,0,39,0,7,0,27,0,28,0\n11,0,1,0,17,0,23,0,22,0,24,0\n13,0,41,0,2,0,12,0,19,0,5,0\n31,0,32,0,21,0,30,0,37,0,25,0\n38,0,16,0,34,0,4,0,6,0,26,0\n40,0,24,0,41,0,18,0,14,0,15,0\n43,0,39,0,22,0,2,0,32,0,10,0\n17,0,5,0,7,0,8,0,37,0,31,0\n36,0,34,0,6,0,12,0,18,0,23,0\n26,0,30,0,19,0,42,0,1,0,27,0\n21,0,40,0,29,0,16,0,35,0,11,0\n9,0,13,0,33,0,3,0,20,0,38,0\n4,0,28,0,12,0,25,0,44,0,24,0\n30,0,29,0,41,0,17,0,34,0,40,0\n13,0,6,0,22,0,5,0,21,0,26,0\n16,0,7,0,4,0,32,0,33,0,14,0\n44,0,10,0,39,0,38,0,1,0,35,0\n11,0,31,0,25,0,36,0,9,0,27,0\n19,0,3,0,37,0,15,0,43,0,8,0\n28,0,18,0,20,0,23,0,42,0,2,0\n14,0,7,0,36,0,21,0,10,0,34,0\n12,0,11,0,39,0,31,0,6,0,19,0\n30,0,23,0,43,0,24,0,13,0,38,0\n3,0,8,0,40,0,22,0,42,0,41,0\n18,0,9,0,17,0,32,0,27,0,4,0\n25,0,20,0,5,0,29,0,16,0,1,0\n44,0,26,0,35,0,2,0,33,0,37,0\n15,0,21,0,27,0,28,0,43,0,34,0\n38,0,14,0,23,0,32,0,8,0,5,0\n19,0,17,0,4,0,40,0,35,0,20,0\n42,0,13,0,15,0,7,0,31,0,1,0\n22,0,36,0,37,0,39,0,24,0,16,0\n10,0,11,0,3,0,12,0,29,0,26,0\n2,0,25,0,18,0,44,0,33,0,30,0\n6,0,9,0,1,0,28,0,41,0,37,0\n24,0,35,0,21,0,42,0,20,0,10,0\n29,0,38,0,19,0,18,0,7,0,22,0\n9,0,8,0,28,0,30,0,16,0,12,0\n23,0,26,0,17,0,25,0,39,0,14,0\n44,0,40,0,27,0,13,0,5,0,36,0\n31,0,4,0,34,0,3,0,2,0,43,0\n41,0,32,0,15,0,11,0,6,0,33,0\n37,0,12,0,35,0,14,0,22,0,30,0\n8,0,38,0,27,0,1,0,44,0,21,0\n31,0,24,0,20,0,32,0,26,0,40,0\n43,0,7,0,42,0,23,0,6,0,25,0\n33,0,5,0,10,0,9,0,34,0,19,0\n2,0,16,0,36,0,3,0,17,0,15,0\n11,0,29,0,18,0,13,0,28,0,39,0\n41,0,23,0,27,0,4,0,10,0,37,0\n26,0,2,0,24,0,40,0,9,0,7,0\n6,0,3,0,14,0,39,0,20,0,19,0\n16,0,42,0,31,0,41,0,44,0,38,0\n12,0,33,0,1,0,21,0,17,0,43,0\n8,0,25,0,35,0,18,0,13,0,34,0\n4,0,5,0,22,0,11,0,28,0,15,0\n32,0,30,0,1,0,36,0,29,0,3,0\n21,0,18,0,19,0,9,0,16,0,23,0\n44,0,7,0,34,0,20,0,22,0,11,0\n14,0,28,0,10,0,17,0,31,0,13,0\n36,0,43,0,26,0,35,0,41,0,5,0\n37,0,32,0,38,0,12,0,40,0,25,0\n6,0,27,0,2,0,24,0,8,0,29,0\n39,0,42,0,30,0,4,0,15,0,33,0\n"
  },
  {
    "path": "schedules/45_1.csv",
    "content": "39,0,30,0,11,0,16,0,33,0,6,0\n20,0,12,0,1,0,25,0,19,0,13,0\n40,0,29,0,3,0,45,0,10,0,34,0\n36,0,4,0,22,0,21,0,26,0,42,0\n37,0,8,0,14,0,41,0,31,0,15,0\n28,0,7,0,23,0,18,0,43,0,32,0\n17,0,9,0,38,0,27,0,35,0,24,0\n44,0,5,0,6,1,2,0,4,1,11,1\n"
  },
  {
    "path": "schedules/45_10.csv",
    "content": "14,0,2,0,1,0,18,0,6,0,28,0\n30,0,22,0,36,0,38,0,8,0,35,0\n7,0,24,0,27,0,21,0,15,0,32,0\n9,0,41,0,17,0,19,0,44,0,5,0\n40,0,42,0,10,0,37,0,45,0,3,0\n25,0,33,0,39,0,16,0,31,0,29,0\n43,0,34,0,12,0,11,0,13,0,26,0\n4,0,20,0,24,0,23,0,19,0,6,0\n44,0,35,0,41,0,10,0,37,0,8,0\n11,0,21,0,2,0,25,0,5,0,14,0\n20,0,38,0,18,0,40,0,39,0,26,0\n13,0,42,0,27,0,1,0,17,0,36,0\n7,0,30,0,45,0,28,0,31,0,4,0\n32,0,34,0,23,0,15,0,12,0,33,0\n3,0,9,0,29,0,16,0,22,0,43,0\n27,0,5,0,37,0,20,0,31,0,36,0\n2,0,19,0,26,0,32,0,30,0,11,0\n14,0,12,0,44,0,38,0,42,0,4,0\n40,0,28,0,15,0,8,0,13,0,29,0\n22,0,3,0,33,0,21,0,7,0,6,0\n35,0,16,0,10,0,1,0,18,0,24,0\n43,0,17,0,45,0,41,0,25,0,23,0\n9,0,34,0,37,0,39,0,29,0,21,0\n5,0,15,0,35,0,26,0,6,0,42,0\n12,0,1,0,4,0,36,0,25,0,24,0\n32,0,3,0,31,0,18,0,41,0,13,0\n28,0,11,0,38,0,43,0,33,0,44,0\n7,0,19,0,8,0,34,0,45,0,16,0\n39,0,23,0,20,0,10,0,22,0,14,0\n17,0,27,0,40,0,9,0,30,0,2,0\n25,0,15,0,29,0,31,0,44,0,1,0\n32,0,43,0,41,0,34,0,36,0,14,0\n45,0,9,0,22,0,12,0,17,0,35,0\n16,0,30,0,28,0,42,0,21,0,5,0\n4,0,2,0,33,0,20,0,13,0,3,0\n6,0,8,0,39,0,38,0,19,0,27,0\n10,0,24,0,23,0,7,0,40,0,11,0\n26,0,18,0,17,0,37,0,28,0,33,0\n8,0,34,0,20,0,31,0,42,0,9,0\n40,0,35,0,25,0,14,0,19,0,32,0\n36,0,7,0,12,0,18,0,39,0,30,0\n26,0,24,0,15,0,41,0,2,0,22,0\n3,0,27,0,16,0,23,0,38,0,44,0\n4,0,37,0,21,0,1,0,43,0,11,0\n5,0,6,0,29,0,13,0,10,0,45,0\n36,0,9,0,23,0,42,0,24,0,2,0\n35,0,1,0,30,0,3,0,34,0,28,0\n22,0,18,0,40,0,4,0,44,0,27,0\n41,0,31,0,6,0,12,0,16,0,21,0\n19,0,43,0,37,0,7,0,33,0,5,0\n39,0,11,0,14,0,45,0,15,0,8,0\n38,0,32,0,29,0,20,0,10,0,17,0\n25,0,13,0,6,0,26,0,37,0,30,0\n31,0,34,0,22,0,2,0,40,0,44,0\n32,0,1,0,28,0,4,0,41,0,39,0\n23,0,21,0,13,0,19,0,35,0,36,0\n18,0,33,0,45,0,9,0,43,0,15,0\n11,0,12,0,42,0,29,0,27,0,10,0\n25,0,3,0,38,0,8,0,24,0,5,0\n20,0,14,0,26,0,17,0,16,0,7,0\n10,0,18,0,31,0,19,0,22,0,42,0\n5,0,28,0,23,0,37,0,32,0,12,0\n16,0,2,0,8,0,4,0,43,0,40,0\n13,0,1,0,38,0,9,0,7,0,25,0\n45,0,44,0,20,0,36,0,21,0,26,0\n14,0,24,0,33,0,34,0,30,0,27,0\n6,0,11,0,15,0,3,0,39,0,17,0\n29,0,35,0,2,0,41,0,7,0,38,0\n26,0,25,0,10,0,27,0,28,0,9,0\n13,0,16,0,37,0,24,0,11,0,22,0\n1,0,15,0,41,0,30,0,20,0,40,0\n21,0,18,0,8,0,23,0,29,0,45,0\n36,0,44,0,42,0,33,0,32,0,6,0\n12,0,31,0,19,0,43,0,14,0,3,0\n17,0,5,0,4,0,39,0,34,0,35,0\n"
  },
  {
    "path": "schedules/45_11.csv",
    "content": "45,0,43,0,8,0,21,0,23,0,20,0\n25,0,3,0,39,0,31,0,14,0,12,0\n5,0,37,0,1,0,18,0,17,0,7,0\n38,0,33,0,11,0,30,0,6,0,34,0\n2,0,44,0,36,0,13,0,35,0,16,0\n22,0,32,0,24,0,4,0,9,0,41,0\n26,0,27,0,42,0,15,0,28,0,29,0\n19,0,40,0,39,0,10,0,37,0,44,0\n22,0,2,0,21,0,23,0,6,0,31,0\n13,0,29,0,20,0,7,0,5,0,25,0\n12,0,16,0,24,0,15,0,14,0,26,0\n17,0,36,0,30,0,41,0,32,0,3,0\n38,0,45,0,19,0,9,0,33,0,27,0\n34,0,8,0,28,0,18,0,35,0,4,0\n40,0,1,0,10,0,11,0,42,0,43,0\n12,1,15,0,25,0,27,1,7,0,19,0\n18,1,3,0,36,0,21,0,26,0,37,0\n43,0,40,0,28,0,31,0,9,0,16,0\n34,0,33,0,4,0,23,0,39,0,44,0\n42,0,17,0,1,0,8,0,24,0,2,0\n38,0,6,0,41,0,45,0,20,0,11,0\n35,0,29,0,14,0,10,0,13,0,32,0\n30,0,22,0,15,0,5,0,24,0,18,0\n6,0,12,0,36,0,27,0,1,0,43,0\n23,0,42,0,4,0,25,0,16,0,41,0\n9,0,44,0,26,0,35,0,21,0,30,0\n3,0,31,0,28,0,8,0,7,0,38,0\n11,0,13,0,5,0,19,0,33,0,32,0\n45,0,14,0,34,0,40,0,17,0,29,0\n39,0,22,0,10,0,2,0,20,0,37,0\n43,0,6,0,18,0,19,0,4,0,3,0\n34,0,26,0,12,0,9,0,25,0,45,0\n37,0,7,0,31,0,42,0,32,0,30,0\n39,0,24,0,35,0,38,0,29,0,23,0\n15,0,27,0,5,0,41,0,44,0,8,0\n10,0,33,0,21,0,16,0,40,0,2,0\n1,0,28,0,11,0,20,0,36,0,14,0\n13,0,42,0,19,0,22,0,17,0,34,0\n29,0,43,0,16,0,8,0,30,0,39,0\n7,0,24,0,36,0,12,0,44,0,45,0\n27,0,17,0,14,0,20,0,31,0,33,0\n9,0,23,0,13,0,1,0,3,0,6,0\n40,0,25,0,21,0,5,0,28,0,32,0\n11,0,35,0,15,0,22,0,4,0,37,0\n10,0,2,0,41,0,26,0,18,0,38,0\n30,0,23,0,28,0,12,0,17,0,8,0\n35,0,20,0,19,0,24,0,40,0,3,0\n43,0,32,0,14,0,22,0,5,0,38,0\n42,0,9,0,2,0,36,0,27,0,25,0\n41,0,18,0,37,0,44,0,33,0,6,0\n15,0,16,0,21,0,1,0,34,0,29,0\n11,0,31,0,39,0,13,0,45,0,26,0\n7,0,10,0,20,0,4,0,12,0,27,0\n2,0,32,0,34,0,15,0,43,0,3,0\n18,0,23,0,8,0,11,0,14,0,9,0\n33,0,13,0,37,0,10,0,24,0,28,0\n45,0,31,0,1,0,35,0,44,0,5,0\n4,0,38,0,17,0,21,0,42,0,36,0\n26,0,39,0,16,0,22,0,6,0,7,0\n30,0,41,0,40,0,19,0,25,0,29,0\n5,0,9,0,12,0,13,0,4,0,2,0\n32,0,38,0,20,0,23,0,26,0,1,0\n25,0,6,0,17,0,10,0,43,0,35,0\n15,0,41,0,19,0,21,0,39,0,28,0\n3,0,8,0,29,0,36,0,33,0,22,0\n14,0,30,0,16,0,37,0,45,0,42,0\n27,0,24,0,31,0,18,0,40,0,34,0\n44,0,7,0,29,0,11,0,2,0,23,0\n3,0,33,0,45,0,42,0,15,0,10,0\n1,0,4,0,20,0,19,0,31,0,30,0\n44,0,38,0,40,0,13,0,22,0,12,0\n5,0,39,0,6,0,36,0,28,0,26,0\n17,0,32,0,35,0,18,0,16,0,27,0\n24,0,37,0,25,0,21,0,8,0,11,0\n41,0,7,0,14,0,34,0,43,0,9,0\n32,0,44,0,18,0,42,0,20,0,39,0\n16,0,37,0,11,0,27,0,3,0,38,0\n4,0,7,0,26,0,14,0,40,0,8,0\n34,0,23,0,10,0,36,0,19,0,5,0\n12,0,33,0,35,0,41,0,43,0,24,0\n22,0,45,0,28,0,25,0,1,0,2,0\n29,0,9,0,6,0,17,0,31,0,15,0\n13,0,21,0,27,0,30,0,12,0,18,0\n"
  },
  {
    "path": "schedules/45_12.csv",
    "content": "17,0,25,0,45,0,36,0,20,0,22,0\n4,0,5,0,33,0,21,0,38,0,9,0\n1,0,41,0,19,0,40,0,44,0,29,0\n8,0,27,0,11,0,2,0,13,0,12,0\n24,0,35,0,14,0,23,0,7,0,15,0\n32,0,42,0,43,0,18,0,30,0,34,0\n3,0,31,0,6,0,26,0,16,0,37,0\n28,0,10,0,22,0,39,0,27,0,9,0\n34,0,7,0,20,0,13,0,15,0,1,0\n19,0,17,0,42,0,35,0,23,0,5,0\n16,0,45,0,28,0,2,0,33,0,18,0\n39,0,11,0,4,0,12,0,37,0,3,0\n44,0,26,0,36,0,21,0,43,0,29,0\n40,0,38,0,25,0,6,0,30,0,24,0\n8,0,41,0,10,0,14,0,31,0,32,0\n5,0,17,0,22,0,11,0,34,0,44,0\n29,0,28,0,27,0,20,0,37,0,42,0\n25,0,12,0,31,0,40,0,23,0,18,0\n10,0,1,0,6,0,3,0,30,0,8,0\n32,0,2,0,38,0,19,0,36,0,39,0\n14,0,26,0,21,0,13,0,45,0,35,0\n33,0,7,0,16,0,4,0,43,0,41,0\n15,0,24,0,8,0,9,0,3,0,29,0\n28,0,2,0,37,0,25,0,23,0,10,0\n13,0,30,0,43,0,38,0,45,0,14,0\n41,0,5,0,36,0,11,0,22,0,6,0\n18,0,12,0,24,0,44,0,20,0,33,0\n7,0,1,0,27,0,39,0,21,0,17,0\n31,0,9,0,16,0,35,0,40,0,34,0\n15,0,26,0,42,0,4,0,32,0,19,0\n13,0,6,0,18,0,29,0,41,0,39,0\n7,0,3,0,35,0,28,0,44,0,12,0\n27,0,14,0,43,0,34,0,9,0,2,0\n37,0,40,0,21,0,42,0,8,0,22,0\n19,0,24,0,23,0,16,0,11,0,36,0\n32,0,25,0,1,0,5,0,10,0,45,0\n38,0,30,0,33,0,31,0,20,0,15,0\n4,0,26,0,18,0,17,0,27,0,36,0\n19,0,9,0,28,0,1,0,22,0,43,0\n35,0,39,0,31,0,33,0,25,0,11,0\n10,0,13,0,17,0,40,0,16,0,24,0\n8,0,26,0,38,0,7,0,42,0,41,0\n32,0,45,0,34,0,21,0,12,0,6,0\n2,0,44,0,23,0,4,0,29,0,30,0\n14,0,20,0,3,0,37,0,15,0,5,0\n40,0,11,0,13,0,32,0,33,0,26,0\n6,0,39,0,16,0,9,0,45,0,8,0\n12,0,34,0,43,0,24,0,10,0,38,0\n5,0,20,0,30,0,36,0,7,0,28,0\n21,0,19,0,3,0,2,0,14,0,17,0\n22,0,37,0,4,0,35,0,18,0,1,0\n41,0,15,0,44,0,31,0,23,0,27,0\n42,0,29,0,33,0,25,0,14,0,7,0\n6,0,20,0,35,0,43,0,2,0,11,0\n21,0,5,0,27,0,16,0,23,0,38,0\n39,0,30,0,12,0,41,0,26,0,17,0\n18,0,44,0,45,0,10,0,15,0,3,0\n9,0,37,0,1,0,36,0,42,0,13,0\n29,0,22,0,32,0,24,0,4,0,31,0\n25,0,34,0,19,0,28,0,8,0,40,0\n9,0,30,0,10,0,7,0,21,0,11,0\n31,0,2,0,26,0,5,0,24,0,1,0\n27,0,34,0,41,0,33,0,19,0,35,0\n36,0,6,0,40,0,15,0,14,0,28,0\n23,0,4,0,20,0,32,0,39,0,8,0\n37,0,45,0,29,0,17,0,43,0,38,0\n16,0,13,0,3,0,25,0,44,0,42,0\n22,0,18,0,19,0,12,0,5,0,7,0\n39,0,43,0,20,0,14,0,40,0,4,0\n6,0,45,0,42,0,31,0,10,0,44,0\n29,0,16,0,8,0,32,0,35,0,30,0\n33,0,28,0,34,0,37,0,17,0,24,0\n11,0,3,0,1,0,41,0,18,0,38,0\n15,0,21,0,2,0,25,0,22,0,27,0\n36,0,12,0,23,0,9,0,13,0,26,0\n29,0,5,0,38,0,11,0,28,0,35,0\n42,0,21,0,24,0,39,0,18,0,15,0\n2,0,4,0,36,0,31,0,34,0,13,0\n1,0,8,0,23,0,43,0,6,0,33,0\n30,0,14,0,37,0,22,0,16,0,12,0\n7,0,32,0,40,0,45,0,27,0,3,0\n20,0,25,0,41,0,10,0,26,0,19,0\n9,0,44,0,14,0,17,0,18,0,8,0\n43,0,31,0,40,0,28,0,32,0,5,0\n15,0,12,0,11,0,42,0,16,0,1,0\n41,0,9,0,24,0,45,0,21,0,20,0\n39,0,37,0,13,0,19,0,44,0,30,0\n34,0,22,0,38,0,26,0,3,0,23,0\n29,0,36,0,35,0,33,0,10,0,27,0\n17,0,7,0,4,0,2,0,25,0,6,0\n"
  },
  {
    "path": "schedules/45_13.csv",
    "content": "28,0,10,0,29,0,35,0,24,0,3,0\n23,0,34,0,39,0,1,0,43,0,17,0\n31,0,4,0,21,0,11,0,26,0,40,0\n9,0,44,0,6,0,20,0,2,0,18,0\n14,0,37,0,38,0,8,0,33,0,5,0\n36,0,13,0,19,0,45,0,7,0,15,0\n32,0,30,0,25,0,12,0,22,0,42,0\n27,0,16,0,3,0,41,0,5,0,40,0\n9,0,1,0,7,0,38,0,31,0,20,0\n17,0,19,0,2,0,43,0,32,0,4,0\n27,0,37,0,23,0,30,0,33,0,36,0\n25,0,42,0,14,0,10,0,35,0,45,0\n16,0,26,0,44,0,13,0,11,0,6,0\n15,0,24,0,41,0,34,0,22,0,18,0\n28,0,8,0,12,0,21,0,39,0,29,0\n33,1,43,0,25,0,7,1,16,0,11,0\n15,1,40,0,1,0,42,0,41,0,32,0\n5,0,6,0,36,0,10,0,8,0,22,0\n31,0,17,0,29,0,27,0,44,0,30,0\n2,0,35,0,39,0,18,0,24,0,38,0\n19,0,4,0,20,0,34,0,28,0,13,0\n23,0,14,0,21,0,26,0,9,0,3,0\n12,0,45,0,40,0,37,0,24,0,6,0\n31,0,10,0,32,0,19,0,8,0,18,0\n11,0,21,0,33,0,13,0,42,0,30,0\n41,0,17,0,45,0,38,0,39,0,9,0\n25,0,36,0,34,0,5,0,44,0,2,0\n28,0,35,0,22,0,16,0,23,0,12,0\n20,0,1,0,26,0,43,0,3,0,29,0\n4,0,15,0,37,0,27,0,14,0,7,0\n32,0,6,0,18,0,22,0,13,0,21,0\n35,0,12,0,26,0,44,0,41,0,23,0\n5,0,42,0,7,0,28,0,36,0,17,0\n9,0,20,0,40,0,27,0,45,0,8,0\n11,0,3,0,15,0,37,0,31,0,34,0\n33,0,16,0,24,0,39,0,19,0,14,0\n29,0,30,0,1,0,25,0,38,0,4,0\n2,0,43,0,26,0,10,0,12,0,37,0\n22,0,19,0,6,0,9,0,17,0,27,0\n24,0,21,0,20,0,16,0,41,0,36,0\n3,0,40,0,34,0,35,0,14,0,44,0\n7,0,13,0,4,0,31,0,42,0,39,0\n38,0,43,0,8,0,25,0,15,0,28,0\n32,0,2,0,29,0,11,0,5,0,23,0\n18,0,30,0,10,0,45,0,33,0,1,0\n8,0,44,0,24,0,42,0,43,0,27,0\n38,0,36,0,3,0,6,0,4,0,16,0\n25,0,37,0,39,0,19,0,21,0,9,0\n29,0,33,0,20,0,26,0,18,0,7,0\n17,0,15,0,10,0,28,0,2,0,40,0\n30,0,5,0,12,0,41,0,13,0,1,0\n22,0,23,0,31,0,14,0,34,0,45,0\n32,0,11,0,17,0,35,0,37,0,20,0\n36,0,9,0,42,0,3,0,1,0,12,0\n8,0,23,0,13,0,27,0,25,0,40,0\n32,0,33,0,44,0,4,0,24,0,28,0\n21,0,43,0,16,0,7,0,10,0,38,0\n34,0,26,0,19,0,45,0,22,0,30,0\n11,0,2,0,14,0,39,0,41,0,18,0\n6,0,31,0,35,0,5,0,29,0,15,0\n38,0,23,0,40,0,20,0,44,0,10,0\n3,0,28,0,33,0,36,0,2,0,45,0\n35,0,41,0,21,0,19,0,31,0,1,0\n7,0,30,0,37,0,32,0,9,0,24,0\n25,0,18,0,16,0,17,0,4,0,39,0\n34,0,42,0,11,0,27,0,6,0,12,0\n5,0,13,0,43,0,14,0,22,0,29,0\n15,0,8,0,32,0,26,0,41,0,25,0\n1,0,23,0,10,0,19,0,11,0,28,0\n45,0,4,0,29,0,7,0,21,0,36,0\n20,0,39,0,22,0,37,0,42,0,3,0\n9,0,18,0,33,0,40,0,43,0,6,0\n35,0,13,0,16,0,30,0,8,0,2,0\n12,0,44,0,17,0,14,0,15,0,31,0\n34,0,24,0,27,0,26,0,5,0,38,0\n6,0,20,0,41,0,25,0,7,0,35,0\n14,0,36,0,43,0,30,0,31,0,11,0\n27,0,13,0,39,0,10,0,2,0,21,0\n18,0,44,0,28,0,5,0,37,0,19,0\n12,0,38,0,33,0,23,0,26,0,17,0\n4,0,40,0,8,0,24,0,22,0,1,0\n16,0,15,0,42,0,34,0,9,0,29,0\n45,0,3,0,5,0,32,0,38,0,19,0\n7,0,6,0,2,0,1,0,14,0,8,0\n37,0,9,0,22,0,29,0,44,0,11,0\n42,0,45,0,21,0,43,0,20,0,15,0\n27,0,31,0,18,0,32,0,28,0,16,0\n24,0,13,0,17,0,25,0,3,0,23,0\n34,0,12,0,41,0,10,0,4,0,33,0\n26,0,39,0,36,0,35,0,40,0,30,0\n16,0,38,0,1,0,37,0,44,0,13,0\n25,0,2,0,22,0,7,0,31,0,33,0\n28,0,39,0,30,0,6,0,15,0,26,0\n45,0,11,0,24,0,17,0,8,0,21,0\n19,0,41,0,10,0,29,0,42,0,40,0\n35,0,4,0,5,0,23,0,43,0,9,0\n12,0,18,0,14,0,27,0,20,0,36,0\n3,0,32,0,7,0,34,0,33,0,15,0\n"
  },
  {
    "path": "schedules/45_14.csv",
    "content": "29,0,26,0,28,0,5,0,33,0,38,0\n19,0,23,0,21,0,10,0,32,0,17,0\n31,0,22,0,11,0,27,0,7,0,34,0\n3,0,36,0,37,0,13,0,1,0,24,0\n41,0,2,0,12,0,25,0,9,0,16,0\n6,0,42,0,4,0,30,0,45,0,44,0\n39,0,14,0,40,0,43,0,18,0,8,0\n20,0,15,0,7,0,35,0,5,0,37,0\n26,0,3,0,6,0,25,0,22,0,36,0\n11,0,44,0,9,0,2,0,32,0,19,0\n33,0,20,0,12,0,41,0,17,0,45,0\n1,0,31,0,18,0,13,0,30,0,35,0\n8,0,38,0,15,0,40,0,42,0,10,0\n43,0,14,0,34,0,16,0,4,0,28,0\n27,0,23,0,29,0,39,0,24,0,21,0\n45,0,32,0,25,0,37,0,18,0,7,0\n31,0,34,0,2,0,14,0,19,0,20,0\n21,0,10,0,8,0,6,0,22,0,44,0\n13,0,36,0,4,0,42,0,3,0,23,0\n24,0,30,0,17,0,16,0,11,0,15,0\n40,0,28,0,35,0,9,0,12,0,38,0\n27,0,1,0,33,0,5,0,41,0,43,0\n26,0,39,0,45,0,29,0,15,0,14,0\n8,0,24,0,4,0,17,0,21,0,31,0\n6,0,28,0,7,0,35,0,3,0,19,0\n42,0,43,0,16,0,32,0,44,0,23,0\n37,0,27,0,41,0,38,0,18,0,34,0\n36,0,5,0,11,0,9,0,29,0,40,0\n30,0,33,0,2,0,25,0,39,0,10,0\n22,0,13,0,20,0,1,0,26,0,12,0\n41,0,35,0,23,0,14,0,17,0,8,0\n27,0,3,0,16,0,37,0,6,0,39,0\n38,0,31,0,42,0,30,0,21,0,25,0\n11,0,1,0,20,0,26,0,44,0,4,0\n32,0,34,0,22,0,29,0,13,0,12,0\n45,0,28,0,18,0,15,0,5,0,10,0\n19,0,7,0,36,0,2,0,43,0,40,0\n9,0,30,0,26,0,24,0,33,0,14,0\n22,0,42,0,21,0,41,0,31,0,28,0\n2,0,5,0,16,0,10,0,4,0,29,0\n40,0,25,0,11,0,43,0,24,0,20,0\n3,0,8,0,1,0,19,0,27,0,15,0\n32,0,13,0,9,0,33,0,34,0,6,0\n18,0,35,0,17,0,36,0,45,0,38,0\n44,0,12,0,37,0,7,0,23,0,39,0\n6,0,32,0,15,0,5,0,14,0,27,0\n34,0,4,0,25,0,35,0,38,0,10,0\n17,0,39,0,43,0,19,0,13,0,26,0\n16,0,7,0,24,0,18,0,20,0,29,0\n31,0,44,0,3,0,41,0,36,0,9,0\n11,0,21,0,33,0,1,0,42,0,37,0\n22,0,2,0,23,0,12,0,40,0,45,0\n30,0,8,0,36,0,28,0,20,0,32,0\n5,0,25,0,3,0,17,0,44,0,34,0\n1,0,39,0,4,0,33,0,18,0,40,0\n9,0,28,0,19,0,42,0,8,0,12,0\n7,0,38,0,41,0,11,0,6,0,24,0\n2,0,10,0,37,0,14,0,22,0,26,0\n43,0,29,0,45,0,27,0,31,0,30,0\n21,0,35,0,15,0,13,0,23,0,16,0\n5,0,42,0,19,0,3,0,12,0,22,0\n32,0,40,0,4,0,41,0,26,0,33,0\n11,0,10,0,13,0,31,0,36,0,16,0\n23,0,30,0,15,0,7,0,44,0,29,0\n1,0,38,0,43,0,20,0,9,0,39,0\n6,0,27,0,18,0,28,0,2,0,17,0\n34,0,37,0,24,0,35,0,45,0,8,0\n14,0,21,0,36,0,25,0,15,0,44,0\n5,0,17,0,23,0,39,0,28,0,11,0\n19,0,22,0,37,0,30,0,18,0,4,0\n42,0,24,0,32,0,2,0,1,0,14,0\n25,0,7,0,33,0,45,0,9,0,34,0\n26,0,31,0,8,0,38,0,6,0,16,0\n12,0,43,0,35,0,3,0,29,0,21,0\n13,0,40,0,27,0,20,0,10,0,41,0\n9,0,6,0,1,0,34,0,23,0,26,0\n22,0,39,0,18,0,42,0,35,0,11,0\n7,0,4,0,14,0,12,0,27,0,36,0\n40,0,21,0,20,0,32,0,30,0,3,0\n13,0,44,0,38,0,24,0,31,0,5,0\n25,0,41,0,29,0,37,0,28,0,43,0\n10,0,45,0,33,0,8,0,16,0,19,0\n17,0,15,0,13,0,2,0,4,0,9,0\n5,0,20,0,26,0,44,0,21,0,18,0\n45,0,14,0,3,0,38,0,29,0,11,0\n2,0,25,0,8,0,1,0,17,0,7,0\n40,0,16,0,37,0,27,0,28,0,42,0\n31,0,35,0,32,0,22,0,15,0,33,0\n39,0,12,0,34,0,36,0,24,0,10,0\n19,0,41,0,30,0,43,0,23,0,6,0\n4,0,45,0,11,0,1,0,25,0,28,0\n17,0,9,0,3,0,21,0,32,0,37,0\n15,0,26,0,18,0,12,0,23,0,31,0\n36,0,34,0,35,0,30,0,40,0,5,0\n42,0,29,0,33,0,6,0,8,0,20,0\n19,0,24,0,44,0,27,0,38,0,22,0\n10,0,16,0,14,0,7,0,43,0,13,0\n39,0,2,0,15,0,41,0,21,0,34,0\n5,0,6,0,12,0,37,0,30,0,11,0\n17,0,29,0,16,0,22,0,40,0,1,0\n23,0,14,0,38,0,4,0,33,0,19,0\n10,0,43,0,9,0,20,0,3,0,2,0\n32,0,39,0,41,0,31,0,7,0,45,0\n35,0,24,0,27,0,42,0,36,0,26,0\n28,0,8,0,44,0,25,0,18,0,13,0\n"
  },
  {
    "path": "schedules/45_2.csv",
    "content": "34,0,16,0,35,0,22,0,32,0,7,0\n11,0,31,0,30,0,2,0,37,0,1,0\n29,0,17,0,12,0,6,0,8,0,28,0\n41,0,33,0,26,0,38,0,27,0,42,0\n45,0,10,0,5,0,19,0,14,0,39,0\n43,0,20,0,23,0,3,0,44,0,15,0\n36,0,25,0,18,0,13,0,21,0,9,0\n24,0,4,0,14,0,40,0,11,0,6,0\n38,0,16,0,28,0,30,0,10,0,20,0\n21,0,32,0,19,0,12,0,42,0,23,0\n13,0,8,0,44,0,39,0,33,0,40,0\n9,0,29,0,27,0,34,0,37,0,15,0\n2,0,17,0,36,0,45,0,35,0,41,0\n22,0,31,0,5,0,4,0,25,0,3,0\n1,0,43,0,24,0,7,0,18,0,26,0\n"
  },
  {
    "path": "schedules/45_3.csv",
    "content": "22,0,40,0,27,0,29,0,13,0,26,0\n25,0,14,0,28,0,44,0,45,0,6,0\n32,0,37,0,1,0,19,0,35,0,23,0\n8,0,21,0,12,0,9,0,7,0,36,0\n18,0,15,0,33,0,30,0,10,0,43,0\n17,0,41,0,34,0,3,0,20,0,39,0\n24,0,16,0,31,0,38,0,5,0,4,0\n11,0,8,0,1,0,42,0,2,0,15,0\n14,1,33,0,34,0,13,1,7,0,32,0\n23,1,44,0,40,0,10,0,12,0,16,0\n22,0,42,0,6,0,4,0,17,0,9,0\n25,0,38,0,3,0,29,0,11,0,30,0\n26,0,45,0,5,0,41,0,36,0,35,0\n37,0,20,0,2,0,28,0,43,0,24,0\n39,0,19,0,18,0,21,0,27,0,31,0\n10,0,13,0,9,0,25,0,1,0,41,0\n42,0,43,0,7,0,45,0,3,0,16,0\n39,0,14,0,4,0,15,0,37,0,40,0\n23,0,36,0,29,0,34,0,28,0,18,0\n2,0,26,0,6,0,38,0,19,0,12,0\n31,0,35,0,20,0,8,0,33,0,22,0\n27,0,17,0,30,0,32,0,44,0,5,0\n24,0,11,0,13,0,21,0,14,0,23,0\n"
  },
  {
    "path": "schedules/45_4.csv",
    "content": "32,0,29,0,41,0,11,0,30,0,14,0\n12,0,35,0,2,0,22,0,20,0,42,0\n1,0,44,0,27,0,37,0,10,0,33,0\n4,0,15,0,23,0,19,0,38,0,31,0\n45,0,17,0,6,0,36,0,25,0,13,0\n16,0,28,0,34,0,21,0,18,0,9,0\n5,0,26,0,7,0,40,0,43,0,39,0\n8,0,24,0,14,0,3,0,6,0,20,0\n32,0,9,0,15,0,22,0,45,0,33,0\n40,0,36,0,18,0,19,0,2,0,29,0\n38,0,39,0,10,0,42,0,24,0,28,0\n43,0,4,0,27,0,41,0,13,0,8,0\n21,0,30,0,31,0,26,0,12,0,1,0\n37,0,25,0,23,0,7,0,11,0,16,0\n17,0,44,0,3,0,35,0,5,0,34,0\n39,0,20,0,30,0,18,0,27,0,45,0\n10,0,12,0,6,0,7,0,9,0,4,0\n35,0,28,0,19,0,25,0,1,0,14,0\n16,0,17,0,29,0,26,0,15,0,8,0\n13,0,2,0,21,0,37,0,3,0,32,0\n33,0,11,0,42,0,31,0,34,0,40,0\n22,0,41,0,36,0,23,0,24,0,5,0\n38,0,44,0,20,0,43,0,16,0,32,0\n2,0,1,0,11,0,39,0,9,0,17,0\n18,0,7,0,15,0,24,0,13,0,35,0\n40,0,3,0,12,0,28,0,23,0,27,0\n38,0,33,0,5,0,30,0,8,0,25,0\n31,0,43,0,37,0,22,0,6,0,29,0\n21,0,42,0,14,0,44,0,4,0,36,0\n34,0,19,0,45,0,10,0,26,0,41,0\n"
  },
  {
    "path": "schedules/45_5.csv",
    "content": "11,0,45,0,7,0,36,0,31,0,26,0\n15,0,30,0,10,0,32,0,8,0,4,0\n12,0,23,0,2,0,22,0,29,0,14,0\n1,0,35,0,40,0,44,0,17,0,28,0\n19,0,27,0,24,0,6,0,25,0,20,0\n42,0,43,0,41,0,37,0,33,0,13,0\n38,0,16,0,18,0,5,0,9,0,21,0\n3,0,34,0,25,0,39,0,12,0,40,0\n28,0,13,0,29,0,30,0,27,0,7,0\n17,0,6,0,33,0,26,0,38,0,4,0\n2,0,39,0,19,0,16,0,10,0,44,0\n5,0,11,0,20,0,32,0,43,0,23,0\n15,0,14,0,21,0,31,0,1,0,37,0\n24,0,3,0,45,0,18,0,42,0,22,0\n9,0,8,0,36,0,41,0,34,0,35,0\n5,1,32,0,27,0,26,1,1,0,12,0\n2,1,16,0,3,0,4,0,11,0,28,0\n22,0,25,0,15,0,44,0,41,0,7,0\n14,0,13,0,38,0,24,0,39,0,36,0\n29,0,33,0,35,0,18,0,19,0,31,0\n37,0,23,0,9,0,40,0,30,0,6,0\n45,0,10,0,17,0,43,0,21,0,34,0\n42,0,2,0,7,0,8,0,20,0,38,0\n44,0,3,0,33,0,36,0,5,0,30,0\n6,0,18,0,12,0,13,0,10,0,1,0\n19,0,28,0,34,0,23,0,26,0,15,0\n22,0,37,0,27,0,35,0,11,0,39,0\n8,0,43,0,40,0,29,0,24,0,21,0\n4,0,9,0,41,0,14,0,20,0,45,0\n42,0,31,0,32,0,25,0,17,0,16,0\n30,0,22,0,1,0,43,0,38,0,19,0\n20,0,29,0,26,0,3,0,37,0,10,0\n2,0,17,0,11,0,15,0,9,0,24,0\n31,0,39,0,5,0,28,0,41,0,6,0\n44,0,36,0,4,0,21,0,42,0,12,0\n34,0,32,0,40,0,18,0,14,0,7,0\n8,0,23,0,16,0,27,0,45,0,33,0\n35,0,13,0,26,0,25,0,5,0,2,0\n"
  },
  {
    "path": "schedules/45_6.csv",
    "content": "27,0,23,0,29,0,11,0,8,0,24,0\n25,0,1,0,2,0,44,0,39,0,15,0\n36,0,42,0,35,0,37,0,45,0,5,0\n38,0,18,0,21,0,4,0,32,0,7,0\n33,0,3,0,14,0,34,0,12,0,6,0\n26,0,10,0,31,0,20,0,30,0,19,0\n43,0,9,0,41,0,16,0,13,0,40,0\n22,0,17,0,23,0,28,0,37,0,7,0\n44,0,5,0,32,0,10,0,3,0,39,0\n35,0,11,0,34,0,38,0,41,0,2,0\n1,0,8,0,9,0,21,0,6,0,26,0\n45,0,13,0,12,0,29,0,4,0,30,0\n15,0,27,0,22,0,33,0,16,0,20,0\n24,0,19,0,28,0,25,0,36,0,43,0\n40,0,17,0,42,0,31,0,18,0,14,0\n10,0,38,0,29,0,9,0,15,0,6,0\n22,0,12,0,39,0,11,0,26,0,36,0\n35,0,43,0,31,0,27,0,18,0,3,0\n1,0,41,0,30,0,42,0,32,0,28,0\n21,0,37,0,24,0,2,0,33,0,40,0\n14,0,19,0,4,0,8,0,44,0,16,0\n34,0,7,0,17,0,13,0,5,0,25,0\n20,0,3,0,40,0,45,0,23,0,1,0\n39,0,24,0,6,0,4,0,42,0,31,0\n15,0,35,0,33,0,32,0,19,0,13,0\n16,0,37,0,26,0,34,0,44,0,29,0\n11,0,14,0,20,0,5,0,21,0,28,0\n43,0,22,0,8,0,17,0,38,0,45,0\n30,0,36,0,7,0,2,0,9,0,27,0\n10,0,41,0,18,0,23,0,12,0,25,0\n42,0,21,0,19,0,29,0,22,0,3,0\n15,0,37,0,43,0,30,0,8,0,39,0\n33,0,44,0,7,0,31,0,41,0,45,0\n16,0,5,0,6,0,2,0,18,0,28,0\n23,0,26,0,13,0,36,0,14,0,38,0\n9,0,32,0,20,0,12,0,17,0,24,0\n1,0,11,0,27,0,10,0,4,0,34,0\n40,0,25,0,30,0,35,0,22,0,6,0\n36,0,3,0,21,0,15,0,41,0,17,0\n34,0,39,0,45,0,19,0,9,0,18,0\n38,0,28,0,40,0,12,0,44,0,27,0\n33,0,26,0,4,0,43,0,23,0,5,0\n29,0,24,0,7,0,1,0,14,0,35,0\n16,0,32,0,25,0,31,0,37,0,11,0\n2,0,13,0,8,0,20,0,42,0,10,0\n"
  },
  {
    "path": "schedules/45_7.csv",
    "content": "28,0,7,0,32,0,38,0,4,0,14,0\n45,0,34,0,17,0,2,0,8,0,33,0\n21,0,12,0,42,0,22,0,35,0,31,0\n19,0,40,0,6,0,26,0,41,0,10,0\n18,0,29,0,13,0,11,0,20,0,5,0\n15,0,30,0,37,0,16,0,1,0,44,0\n9,0,27,0,25,0,23,0,24,0,36,0\n3,0,43,0,7,0,39,0,42,0,35,0\n17,0,2,0,20,0,31,0,37,0,11,0\n10,0,34,0,25,0,38,0,45,0,5,0\n22,0,29,0,1,0,28,0,40,0,23,0\n19,0,14,0,16,0,21,0,13,0,39,0\n9,0,3,0,33,0,41,0,32,0,15,0\n44,0,26,0,4,0,12,0,27,0,36,0\n8,0,24,0,30,0,43,0,18,0,6,0\n41,1,14,0,2,0,25,1,1,0,42,0\n12,0,39,0,37,0,13,1,9,0,45,0\n24,0,38,0,22,0,16,0,26,0,17,0\n6,0,30,0,31,0,29,0,33,0,7,0\n43,0,15,0,23,0,20,0,4,0,10,0\n21,0,8,0,5,0,44,0,27,0,32,0\n36,0,28,0,11,0,34,0,19,0,3,0\n35,0,40,0,12,0,18,0,2,0,15,0\n4,0,43,0,22,0,5,0,37,0,14,0\n32,0,21,0,26,0,25,0,29,0,30,0\n41,0,19,0,42,0,17,0,27,0,18,0\n7,0,6,0,45,0,1,0,3,0,20,0\n8,0,16,0,28,0,10,0,11,0,9,0\n39,0,44,0,31,0,40,0,24,0,34,0\n36,0,35,0,38,0,23,0,13,0,33,0\n21,0,4,0,9,0,17,0,3,0,6,0\n10,0,27,0,22,0,2,0,39,0,30,0\n42,0,37,0,13,0,28,0,26,0,24,0\n32,0,45,0,43,0,23,0,31,0,16,0\n40,0,11,0,44,0,33,0,14,0,25,0\n19,0,36,0,8,0,29,0,35,0,15,0\n1,0,5,0,41,0,12,0,38,0,20,0\n18,0,34,0,32,0,7,0,10,0,37,0\n3,0,40,0,29,0,27,0,13,0,16,0\n35,0,11,0,30,0,41,0,4,0,45,0\n5,0,19,0,23,0,2,0,24,0,7,0\n36,0,18,0,39,0,38,0,21,0,1,0\n26,0,31,0,20,0,14,0,9,0,8,0\n15,0,34,0,44,0,6,0,22,0,42,0\n33,0,17,0,28,0,25,0,12,0,43,0\n26,0,37,0,23,0,11,0,41,0,21,0\n42,0,20,0,45,0,40,0,32,0,36,0\n4,0,16,0,33,0,25,0,19,0,18,0\n5,0,17,0,39,0,35,0,28,0,6,0\n1,0,15,0,27,0,34,0,31,0,13,0\n3,0,14,0,24,0,12,0,30,0,10,0\n2,0,38,0,9,0,44,0,43,0,29,0\n7,0,41,0,13,0,8,0,22,0,25,0\n"
  },
  {
    "path": "schedules/45_8.csv",
    "content": "20,0,18,0,6,0,7,0,22,0,16,0\n17,0,41,0,26,0,31,0,2,0,43,0\n29,0,44,0,1,0,40,0,37,0,5,0\n11,0,9,0,39,0,33,0,25,0,10,0\n21,0,19,0,38,0,28,0,13,0,4,0\n15,0,32,0,35,0,14,0,34,0,42,0\n27,0,36,0,24,0,3,0,12,0,8,0\n45,0,40,0,16,0,23,0,30,0,19,0\n43,0,4,0,44,0,42,0,18,0,25,0\n7,0,38,0,1,0,29,0,17,0,34,0\n5,0,13,0,33,0,3,0,15,0,41,0\n26,0,12,0,22,0,39,0,8,0,14,0\n21,0,6,0,10,0,45,0,27,0,31,0\n37,0,36,0,11,0,20,0,23,0,35,0\n28,0,2,0,30,0,9,0,32,0,24,0\n3,0,18,0,14,0,29,0,19,0,6,0\n22,0,41,0,10,0,38,0,17,0,42,0\n24,0,39,0,16,0,31,0,32,0,37,0\n21,0,27,0,43,0,33,0,11,0,1,0\n34,0,35,0,12,0,9,0,44,0,13,0\n40,0,20,0,25,0,28,0,8,0,45,0\n30,0,36,0,4,0,7,0,26,0,15,0\n2,0,5,0,39,0,23,0,38,0,6,0\n14,0,20,0,45,0,13,0,43,0,41,0\n7,0,24,0,3,0,11,0,22,0,35,0\n27,0,40,0,9,0,15,0,18,0,17,0\n33,0,8,0,31,0,4,0,19,0,2,0\n32,0,44,0,23,0,10,0,1,0,26,0\n28,0,42,0,29,0,16,0,34,0,36,0\n30,0,25,0,37,0,5,0,12,0,21,0\n24,0,8,0,18,0,13,0,17,0,10,0\n38,0,31,0,20,0,3,0,9,0,1,0\n23,0,14,0,7,0,33,0,28,0,44,0\n5,0,22,0,43,0,32,0,36,0,21,0\n29,0,39,0,45,0,27,0,35,0,4,0\n6,0,26,0,34,0,25,0,11,0,19,0\n37,0,12,0,16,0,2,0,15,0,40,0\n42,0,41,0,23,0,30,0,13,0,27,0\n9,0,19,0,45,0,5,0,7,0,36,0\n33,0,26,0,18,0,34,0,24,0,20,0\n2,0,22,0,32,0,29,0,4,0,25,0\n44,0,35,0,21,0,16,0,8,0,17,0\n10,0,43,0,30,0,37,0,3,0,38,0\n1,0,28,0,15,0,39,0,6,0,41,0\n11,0,31,0,42,0,12,0,40,0,14,0\n20,0,4,0,16,0,10,0,5,0,27,0\n43,0,19,0,15,0,29,0,24,0,23,0\n31,0,35,0,28,0,18,0,22,0,30,0\n14,0,36,0,13,0,2,0,25,0,1,0\n8,0,41,0,37,0,11,0,7,0,34,0\n40,0,3,0,6,0,9,0,21,0,26,0\n32,0,42,0,12,0,38,0,45,0,33,0\n44,0,17,0,30,0,39,0,20,0,36,0\n15,0,23,0,34,0,21,0,22,0,31,0\n10,0,12,0,19,0,1,0,35,0,41,0\n2,0,3,0,11,0,44,0,45,0,18,0\n7,0,40,0,13,0,32,0,43,0,39,0\n5,0,29,0,9,0,8,0,26,0,42,0\n17,0,4,0,33,0,28,0,37,0,6,0\n25,0,14,0,24,0,38,0,16,0,27,0\n"
  },
  {
    "path": "schedules/45_9.csv",
    "content": "5,0,38,0,3,0,20,0,35,0,42,0\n1,0,19,0,4,0,8,0,39,0,43,0\n31,0,29,0,44,0,25,0,10,0,27,0\n15,0,24,0,41,0,18,0,17,0,9,0\n2,0,23,0,22,0,11,0,30,0,14,0\n7,0,37,0,34,0,26,0,40,0,45,0\n12,0,28,0,13,0,21,0,36,0,16,0\n32,0,6,0,41,0,33,0,44,0,2,0\n18,0,11,0,38,0,8,0,37,0,27,0\n22,0,34,0,15,0,43,0,31,0,42,0\n32,0,20,0,36,0,39,0,21,0,10,0\n4,0,40,0,33,0,35,0,30,0,13,0\n45,0,23,0,19,0,9,0,24,0,1,0\n7,0,14,0,17,0,16,0,12,0,29,0\n6,0,3,0,28,0,25,0,5,0,26,0\n19,1,35,0,34,0,2,1,27,0,15,0\n41,1,10,0,14,0,37,0,45,0,13,0\n33,0,5,0,12,0,26,0,1,0,31,0\n25,0,18,0,8,0,17,0,20,0,30,0\n11,0,9,0,44,0,3,0,7,0,4,0\n32,0,29,0,42,0,28,0,43,0,16,0\n24,0,21,0,40,0,39,0,38,0,22,0\n23,0,5,0,18,0,36,0,6,0,7,0\n41,0,13,0,26,0,25,0,29,0,35,0\n16,0,42,0,34,0,11,0,20,0,19,0\n22,0,8,0,30,0,12,0,32,0,37,0\n24,0,39,0,6,0,3,0,15,0,31,0\n43,0,21,0,2,0,45,0,17,0,44,0\n33,0,10,0,28,0,38,0,23,0,9,0\n27,0,4,0,14,0,36,0,40,0,1,0\n44,0,34,0,8,0,5,0,24,0,13,0\n39,0,37,0,25,0,42,0,2,0,9,0\n14,0,43,0,36,0,11,0,41,0,31,0\n40,0,17,0,38,0,23,0,33,0,32,0\n29,0,3,0,10,0,18,0,12,0,22,0\n4,0,16,0,20,0,45,0,1,0,6,0\n15,0,21,0,30,0,26,0,7,0,19,0\n35,0,27,0,18,0,28,0,14,0,9,0\n8,0,42,0,6,0,10,0,34,0,40,0\n39,0,12,0,26,0,44,0,23,0,43,0\n16,0,24,0,11,0,21,0,33,0,25,0\n38,0,15,0,45,0,30,0,41,0,29,0\n3,0,27,0,19,0,32,0,13,0,7,0\n1,0,22,0,17,0,4,0,5,0,28,0\n35,0,36,0,31,0,20,0,37,0,2,0\n33,0,42,0,19,0,14,0,44,0,18,0\n10,0,45,0,30,0,3,0,17,0,11,0\n20,0,43,0,7,0,28,0,37,0,24,0\n13,0,25,0,15,0,1,0,5,0,32,0\n29,0,21,0,26,0,40,0,31,0,8,0\n9,0,12,0,36,0,34,0,38,0,6,0\n23,0,16,0,39,0,41,0,22,0,35,0\n4,0,2,0,30,0,27,0,29,0,24,0\n36,0,45,0,28,0,8,0,15,0,33,0\n35,0,17,0,37,0,6,0,19,0,44,0\n40,0,43,0,27,0,16,0,10,0,5,0\n41,0,1,0,2,0,3,0,42,0,21,0\n9,0,20,0,26,0,22,0,11,0,13,0\n7,0,25,0,38,0,14,0,34,0,39,0\n31,0,23,0,12,0,4,0,32,0,18,0\n36,0,42,0,13,0,26,0,17,0,24,0\n19,0,25,0,22,0,45,0,27,0,33,0\n37,0,18,0,41,0,21,0,4,0,34,0\n43,0,10,0,1,0,35,0,2,0,7,0\n39,0,11,0,32,0,5,0,6,0,29,0\n16,0,31,0,9,0,38,0,30,0,44,0\n3,0,8,0,20,0,15,0,23,0,14,0\n28,0,40,0,2,0,12,0,19,0,41,0\n"
  },
  {
    "path": "schedules/46_1.csv",
    "content": "18,0,13,0,32,0,35,0,1,0,8,0\n33,0,7,0,37,0,9,0,26,0,3,0\n20,0,39,0,19,0,31,0,30,0,41,0\n44,0,36,0,6,0,22,0,21,0,45,0\n34,0,24,0,16,0,27,0,14,0,29,0\n40,0,43,0,15,0,25,0,12,0,23,0\n11,0,4,0,2,0,28,0,46,0,42,0\n38,0,10,0,1,1,5,0,17,0,30,1\n"
  },
  {
    "path": "schedules/46_10.csv",
    "content": "25,0,9,0,38,0,28,0,39,0,27,0\n37,0,2,0,4,0,42,0,26,0,10,0\n19,0,24,0,16,0,12,0,11,0,45,0\n21,0,29,0,18,0,15,0,7,0,31,0\n3,0,20,0,33,0,35,0,22,0,40,0\n41,0,1,0,43,0,44,0,30,0,34,0\n14,0,6,0,36,0,13,0,32,0,8,0\n23,0,17,0,9,0,5,0,46,0,42,0\n45,0,16,0,37,0,40,0,27,0,4,0\n43,0,13,0,18,0,38,0,21,0,24,0\n35,0,36,0,3,0,41,0,17,0,44,0\n30,0,15,0,14,0,19,0,10,0,23,0\n46,0,22,0,28,0,12,0,39,0,31,0\n1,0,5,0,2,0,20,0,6,0,29,0\n33,0,34,0,26,0,11,0,8,0,7,0\n25,0,17,0,24,0,32,0,15,0,40,0\n28,1,44,0,10,0,6,1,23,0,46,0\n36,0,11,0,13,0,20,0,42,0,45,0\n39,0,35,0,8,0,19,0,21,0,1,0\n2,0,32,0,43,0,9,0,33,0,5,0\n38,0,4,0,14,0,29,0,34,0,12,0\n16,0,26,0,30,0,31,0,25,0,3,0\n22,0,37,0,27,0,18,0,7,0,41,0\n6,0,9,0,40,0,11,0,29,0,19,0\n33,0,17,0,21,0,4,0,28,0,20,0\n12,0,22,0,42,0,10,0,30,0,32,0\n34,0,2,0,15,0,36,0,39,0,16,0\n18,0,35,0,45,0,46,0,25,0,13,0\n1,0,24,0,37,0,3,0,26,0,38,0\n8,0,31,0,5,0,23,0,41,0,27,0\n44,0,43,0,25,0,7,0,14,0,2,0\n46,0,12,0,38,0,36,0,29,0,33,0\n15,0,17,0,28,0,26,0,22,0,6,0\n20,0,31,0,10,0,45,0,3,0,34,0\n39,0,19,0,30,0,5,0,24,0,18,0\n40,0,43,0,21,0,42,0,41,0,8,0\n27,0,32,0,11,0,4,0,44,0,35,0\n9,0,16,0,7,0,13,0,23,0,1,0\n14,0,5,0,28,0,37,0,36,0,34,0\n6,0,21,0,41,0,46,0,26,0,45,0\n40,0,3,0,13,0,12,0,23,0,2,0\n18,0,39,0,37,0,11,0,43,0,10,0\n32,0,17,0,42,0,38,0,15,0,16,0\n35,0,7,0,20,0,30,0,9,0,4,0\n29,0,22,0,25,0,44,0,8,0,19,0\n33,0,24,0,31,0,1,0,14,0,27,0\n35,0,10,0,21,0,5,0,40,0,36,0\n23,0,44,0,26,0,20,0,39,0,34,0\n15,0,25,0,41,0,1,0,33,0,11,0\n46,0,14,0,24,0,22,0,16,0,4,0\n27,0,19,0,31,0,17,0,2,0,13,0\n32,0,12,0,6,0,7,0,43,0,38,0\n18,0,3,0,28,0,42,0,9,0,29,0\n8,0,45,0,33,0,37,0,30,0,17,0\n26,0,4,0,19,0,36,0,43,0,31,0\n34,0,42,0,14,0,35,0,27,0,6,0\n5,0,23,0,22,0,45,0,1,0,38,0\n46,0,7,0,30,0,40,0,11,0,2,0\n10,0,29,0,41,0,39,0,13,0,24,0\n18,0,8,0,20,0,32,0,16,0,28,0\n9,0,12,0,44,0,15,0,21,0,37,0\n25,0,36,0,7,0,3,0,24,0,42,0\n16,0,33,0,27,0,10,0,6,0,39,0\n11,0,22,0,34,0,9,0,2,0,21,0\n46,0,4,0,8,0,5,0,15,0,3,0\n30,0,45,0,13,0,43,0,28,0,26,0\n40,0,17,0,12,0,1,0,18,0,44,0\n20,0,38,0,41,0,25,0,14,0,19,0\n31,0,29,0,23,0,32,0,35,0,37,0\n13,0,16,0,42,0,22,0,33,0,44,0\n28,0,7,0,12,0,41,0,5,0,45,0\n32,0,1,0,34,0,46,0,19,0,37,0\n40,0,10,0,38,0,31,0,26,0,9,0\n23,0,4,0,36,0,18,0,6,0,25,0\n15,0,29,0,27,0,30,0,43,0,20,0\n11,0,39,0,21,0,14,0,17,0,3,0\n2,0,8,0,6,0,24,0,35,0,28,0\n"
  },
  {
    "path": "schedules/46_11.csv",
    "content": "16,0,41,0,22,0,10,0,31,0,28,0\n12,0,24,0,8,0,29,0,40,0,46,0\n15,0,44,0,18,0,19,0,7,0,21,0\n1,0,23,0,4,0,38,0,6,0,9,0\n5,0,33,0,45,0,27,0,34,0,2,0\n30,0,13,0,3,0,42,0,11,0,43,0\n32,0,39,0,36,0,17,0,25,0,20,0\n26,0,14,0,28,0,35,0,37,0,21,0\n27,0,22,0,42,0,3,0,38,0,4,0\n39,0,30,0,1,0,40,0,45,0,2,0\n13,0,5,0,18,0,41,0,44,0,26,0\n14,0,7,0,9,0,20,0,19,0,8,0\n23,0,37,0,43,0,34,0,36,0,10,0\n16,0,11,0,12,0,33,0,24,0,17,0\n31,0,25,0,6,0,46,0,35,0,15,0\n32,0,30,0,10,0,29,0,18,0,27,0\n34,1,26,0,1,0,36,1,42,0,16,0\n21,1,20,0,12,0,2,1,13,0,25,0\n5,0,6,0,35,0,43,0,19,0,24,0\n32,0,37,0,17,0,31,0,23,0,44,0\n22,0,39,0,28,0,15,0,9,0,8,0\n14,0,29,0,3,0,33,0,4,0,40,0\n45,0,11,0,46,0,7,0,38,0,41,0\n27,0,31,0,24,0,28,0,13,0,8,0\n5,0,32,0,21,0,15,0,33,0,42,0\n16,0,46,0,9,0,34,0,14,0,30,0\n45,0,29,0,20,0,6,0,23,0,17,0\n19,0,39,0,2,0,26,0,11,0,3,0\n41,0,18,0,1,0,25,0,37,0,22,0\n10,0,12,0,38,0,36,0,7,0,35,0\n44,0,40,0,16,0,4,0,43,0,45,0\n26,0,21,0,15,0,27,0,9,0,17,0\n29,0,37,0,31,0,38,0,39,0,5,0\n32,0,4,0,2,0,13,0,46,0,19,0\n22,0,33,0,1,0,14,0,24,0,20,0\n23,0,10,0,40,0,44,0,35,0,11,0\n25,0,34,0,28,0,30,0,7,0,6,0\n18,0,42,0,8,0,41,0,12,0,43,0\n3,0,35,0,27,0,36,0,9,0,1,0\n19,0,38,0,14,0,25,0,10,0,45,0\n6,0,15,0,12,0,37,0,30,0,11,0\n20,0,36,0,4,0,18,0,26,0,31,0\n24,0,3,0,39,0,34,0,44,0,32,0\n29,0,43,0,17,0,28,0,41,0,2,0\n33,0,8,0,7,0,16,0,13,0,23,0\n42,0,21,0,40,0,22,0,5,0,46,0\n4,0,27,0,25,0,37,0,24,0,10,0\n35,0,2,0,30,0,3,0,23,0,41,0\n5,0,42,0,34,0,28,0,18,0,20,0\n9,0,40,0,19,0,36,0,33,0,31,0\n46,0,8,0,43,0,1,0,21,0,45,0\n44,0,38,0,29,0,15,0,32,0,16,0\n39,0,6,0,26,0,22,0,12,0,7,0\n11,0,17,0,34,0,13,0,14,0,1,0\n38,0,20,0,33,0,30,0,44,0,43,0\n7,0,25,0,29,0,42,0,9,0,3,0\n17,0,10,0,18,0,40,0,8,0,6,0\n13,0,36,0,45,0,5,0,23,0,15,0\n11,0,14,0,2,0,32,0,12,0,31,0\n41,0,46,0,24,0,19,0,37,0,26,0\n21,0,28,0,16,0,39,0,4,0,35,0\n27,0,11,0,7,0,22,0,29,0,30,0\n24,0,13,0,9,0,18,0,45,0,38,0\n10,0,35,0,33,0,39,0,17,0,42,0\n44,0,28,0,36,0,46,0,14,0,6,0\n19,0,25,0,23,0,21,0,22,0,43,0\n15,0,31,0,41,0,34,0,12,0,3,0\n2,0,20,0,16,0,37,0,27,0,40,0\n5,0,26,0,4,0,8,0,1,0,32,0\n18,0,30,0,23,0,31,0,14,0,39,0\n37,0,41,0,6,0,9,0,33,0,21,0\n40,0,35,0,22,0,13,0,29,0,32,0\n3,0,17,0,46,0,10,0,20,0,5,0\n43,0,15,0,7,0,38,0,2,0,24,0\n4,0,16,0,8,0,25,0,36,0,11,0\n19,0,12,0,44,0,28,0,1,0,27,0\n42,0,26,0,32,0,34,0,45,0,6,0\n46,0,18,0,37,0,3,0,33,0,16,0\n31,0,13,0,21,0,1,0,10,0,7,0\n9,0,45,0,22,0,5,0,2,0,12,0\n14,0,36,0,43,0,39,0,27,0,41,0\n20,0,35,0,34,0,11,0,15,0,4,0\n38,0,23,0,28,0,25,0,26,0,40,0\n42,0,30,0,19,0,8,0,17,0,44,0\n24,0,34,0,21,0,29,0,36,0,2,0\n"
  },
  {
    "path": "schedules/46_12.csv",
    "content": "10,0,11,0,24,0,18,0,2,0,39,0\n36,0,6,0,37,0,15,0,33,0,26,0\n4,0,27,0,43,0,34,0,46,0,14,0\n3,0,42,0,20,0,44,0,41,0,32,0\n21,0,13,0,16,0,35,0,8,0,38,0\n23,0,45,0,31,0,28,0,29,0,5,0\n19,0,17,0,40,0,9,0,30,0,7,0\n12,0,22,0,33,0,1,0,25,0,4,0\n34,0,32,0,43,0,16,0,29,0,15,0\n14,0,26,0,7,0,31,0,38,0,11,0\n19,0,46,0,6,0,39,0,10,0,44,0\n22,0,27,0,13,0,9,0,42,0,2,0\n30,0,28,0,24,0,21,0,20,0,8,0\n1,0,18,0,41,0,17,0,37,0,35,0\n3,0,5,0,45,0,40,0,12,0,25,0\n23,0,30,0,16,0,36,0,22,0,28,0\n13,0,32,0,1,0,41,0,27,0,29,0\n12,0,44,0,20,0,7,0,35,0,21,0\n18,0,45,0,46,0,36,0,33,0,31,0\n3,0,15,0,34,0,10,0,14,0,2,0\n42,0,11,0,43,0,23,0,37,0,40,0\n8,0,4,0,17,0,26,0,39,0,25,0\n19,0,9,0,24,0,6,0,5,0,38,0\n31,0,7,0,43,0,30,0,41,0,42,0\n39,0,46,0,21,0,22,0,32,0,14,0\n29,0,19,0,33,0,36,0,24,0,26,0\n15,0,17,0,20,0,40,0,45,0,13,0\n16,0,6,0,12,0,2,0,11,0,8,0\n27,0,34,0,5,0,28,0,18,0,4,0\n25,0,9,0,38,0,23,0,3,0,35,0\n37,0,10,0,8,0,1,0,44,0,43,0\n20,0,34,0,11,0,5,0,17,0,22,0\n39,0,35,0,24,0,12,0,28,0,15,0\n2,0,25,0,21,0,42,0,18,0,31,0\n41,0,6,0,3,0,7,0,36,0,27,0\n16,0,45,0,10,0,19,0,13,0,26,0\n33,0,23,0,9,0,44,0,30,0,4,0\n32,0,37,0,46,0,29,0,40,0,14,0\n1,0,22,0,7,0,38,0,43,0,45,0\n18,0,20,0,33,0,12,0,3,0,11,0\n9,0,6,0,44,0,34,0,25,0,29,0\n5,0,46,0,30,0,13,0,2,0,35,0\n4,0,41,0,21,0,19,0,15,0,1,0\n26,0,27,0,16,0,31,0,40,0,39,0\n24,0,14,0,8,0,36,0,10,0,23,0\n38,0,28,0,37,0,42,0,32,0,17,0\n29,0,13,0,9,0,18,0,3,0,16,0\n1,0,45,0,35,0,27,0,6,0,2,0\n10,0,34,0,30,0,38,0,41,0,12,0\n14,0,28,0,11,0,19,0,25,0,44,0\n5,0,40,0,7,0,8,0,33,0,39,0\n31,0,15,0,4,0,37,0,24,0,20,0\n36,0,46,0,17,0,22,0,21,0,42,0\n32,0,26,0,18,0,23,0,43,0,12,0\n29,0,11,0,35,0,15,0,7,0,10,0\n13,0,42,0,38,0,33,0,14,0,4,0\n41,0,40,0,8,0,34,0,24,0,22,0\n28,0,21,0,26,0,43,0,9,0,5,0\n1,0,23,0,27,0,16,0,46,0,20,0\n44,0,2,0,31,0,36,0,32,0,19,0\n37,0,3,0,39,0,6,0,45,0,30,0\n25,0,33,0,27,0,17,0,10,0,21,0\n44,0,22,0,15,0,18,0,5,0,12,0\n38,0,14,0,20,0,29,0,45,0,8,0\n1,0,30,0,31,0,11,0,32,0,9,0\n40,0,36,0,42,0,6,0,4,0,35,0\n17,0,24,0,25,0,43,0,16,0,37,0\n19,0,7,0,39,0,13,0,23,0,34,0\n3,0,28,0,2,0,46,0,41,0,26,0\n14,0,18,0,9,0,8,0,6,0,42,0\n16,0,44,0,7,0,15,0,38,0,24,0\n27,0,37,0,12,0,19,0,23,0,5,0\n33,0,35,0,32,0,45,0,34,0,17,0\n3,0,22,0,4,0,31,0,21,0,29,0\n36,0,39,0,11,0,20,0,43,0,13,0\n40,0,30,0,26,0,28,0,10,0,1,0\n41,0,2,0,7,0,46,0,25,0,23,0\n21,0,9,0,36,0,11,0,45,0,37,0\n18,0,35,0,19,0,26,0,20,0,22,0\n29,0,43,0,2,0,44,0,40,0,33,0\n6,0,14,0,31,0,17,0,13,0,12,0\n39,0,34,0,42,0,24,0,1,0,3,0\n8,0,25,0,30,0,27,0,15,0,46,0\n41,0,10,0,5,0,32,0,16,0,4,0\n38,0,33,0,2,0,28,0,39,0,20,0\n24,0,44,0,29,0,17,0,30,0,27,0\n12,0,26,0,10,0,46,0,22,0,9,0\n28,0,8,0,32,0,7,0,11,0,4,0\n21,0,23,0,38,0,40,0,18,0,6,0\n43,0,15,0,35,0,31,0,3,0,19,0\n5,0,16,0,42,0,41,0,45,0,14,0\n36,0,13,0,25,0,34,0,37,0,1,0\n"
  },
  {
    "path": "schedules/46_13.csv",
    "content": "3,0,40,0,20,0,5,0,45,0,16,0\n41,0,10,0,13,0,11,0,35,0,6,0\n7,0,38,0,29,0,2,0,9,0,4,0\n21,0,8,0,36,0,19,0,18,0,22,0\n28,0,23,0,1,0,14,0,32,0,43,0\n15,0,31,0,12,0,44,0,30,0,27,0\n25,0,39,0,33,0,46,0,37,0,24,0\n17,0,42,0,35,0,34,0,26,0,3,0\n11,0,45,0,13,0,8,0,16,0,9,0\n19,0,33,0,10,0,39,0,15,0,44,0\n43,0,30,0,28,0,12,0,22,0,14,0\n17,0,34,0,20,0,37,0,36,0,5,0\n18,0,31,0,4,0,25,0,2,0,21,0\n41,0,7,0,46,0,6,0,1,0,42,0\n26,0,32,0,24,0,40,0,27,0,38,0\n23,0,22,0,15,0,29,0,34,0,5,0\n2,1,43,0,33,0,8,1,20,0,11,0\n35,0,30,0,24,0,40,0,21,0,18,0\n14,0,6,0,38,0,3,0,25,0,36,0\n16,0,46,0,32,0,37,0,41,0,9,0\n12,0,42,0,29,0,19,0,17,0,1,0\n44,0,31,0,13,0,26,0,39,0,7,0\n28,0,45,0,27,0,10,0,4,0,23,0\n40,0,41,0,15,0,18,0,17,0,25,0\n9,0,34,0,39,0,21,0,1,0,43,0\n12,0,26,0,30,0,45,0,33,0,23,0\n44,0,28,0,36,0,27,0,2,0,46,0\n32,0,13,0,37,0,3,0,11,0,19,0\n24,0,8,0,5,0,4,0,7,0,42,0\n6,0,29,0,31,0,20,0,38,0,35,0\n16,0,22,0,21,0,14,0,10,0,28,0\n43,0,46,0,26,0,3,0,33,0,18,0\n23,0,37,0,38,0,40,0,29,0,2,0\n15,0,9,0,11,0,42,0,36,0,27,0\n39,0,1,0,4,0,20,0,30,0,5,0\n41,0,31,0,32,0,34,0,45,0,22,0\n25,0,44,0,14,0,17,0,8,0,13,0\n12,0,35,0,19,0,24,0,6,0,16,0\n10,0,26,0,36,0,7,0,1,0,37,0\n21,0,17,0,30,0,45,0,46,0,38,0\n8,0,43,0,42,0,25,0,31,0,23,0\n19,0,13,0,5,0,12,0,2,0,28,0\n7,0,14,0,15,0,20,0,41,0,24,0\n4,0,40,0,35,0,22,0,9,0,33,0\n16,0,18,0,11,0,34,0,44,0,6,0\n27,0,3,0,32,0,10,0,39,0,29,0\n40,0,1,0,33,0,13,0,14,0,42,0\n44,0,37,0,20,0,22,0,31,0,24,0\n8,0,2,0,41,0,10,0,35,0,3,0\n39,0,36,0,38,0,23,0,12,0,16,0\n25,0,11,0,4,0,21,0,19,0,32,0\n5,0,27,0,7,0,46,0,34,0,18,0\n9,0,6,0,28,0,17,0,26,0,15,0\n30,0,29,0,32,0,45,0,43,0,36,0\n12,0,20,0,7,0,8,0,46,0,40,0\n6,0,2,0,23,0,41,0,33,0,21,0\n13,0,27,0,1,0,29,0,17,0,43,0\n18,0,42,0,15,0,16,0,39,0,28,0\n35,0,5,0,25,0,31,0,30,0,45,0\n4,0,38,0,3,0,44,0,11,0,22,0\n24,0,34,0,10,0,19,0,26,0,9,0\n37,0,6,0,17,0,14,0,30,0,39,0\n8,0,25,0,15,0,11,0,1,0,12,0\n34,0,41,0,36,0,4,0,28,0,26,0\n20,0,29,0,46,0,32,0,18,0,9,0\n42,0,5,0,23,0,44,0,35,0,21,0\n22,0,37,0,3,0,33,0,7,0,13,0\n40,0,19,0,45,0,31,0,14,0,27,0\n43,0,10,0,16,0,2,0,24,0,38,0\n9,0,35,0,29,0,41,0,12,0,39,0\n33,0,17,0,28,0,1,0,36,0,31,0\n16,0,27,0,19,0,7,0,30,0,8,0\n26,0,5,0,22,0,6,0,43,0,25,0\n38,0,42,0,10,0,18,0,20,0,13,0\n21,0,37,0,45,0,40,0,44,0,32,0\n14,0,3,0,2,0,4,0,15,0,34,0\n24,0,23,0,36,0,11,0,46,0,17,0\n1,0,41,0,22,0,44,0,38,0,19,0\n27,0,12,0,18,0,33,0,42,0,37,0\n7,0,25,0,16,0,39,0,21,0,23,0\n45,0,3,0,6,0,29,0,28,0,24,0\n34,0,11,0,30,0,26,0,2,0,20,0\n4,0,32,0,8,0,15,0,35,0,13,0\n9,0,46,0,14,0,5,0,10,0,31,0\n43,0,11,0,39,0,40,0,28,0,7,0\n24,0,12,0,21,0,29,0,26,0,8,0\n14,0,45,0,1,0,18,0,37,0,35,0\n34,0,40,0,13,0,36,0,15,0,46,0\n19,0,20,0,31,0,41,0,23,0,3,0\n27,0,6,0,33,0,38,0,5,0,32,0\n17,0,16,0,2,0,4,0,43,0,22,0\n9,0,44,0,10,0,30,0,25,0,42,0\n19,0,34,0,28,0,38,0,33,0,8,0\n21,0,46,0,5,0,1,0,15,0,24,0\n11,0,26,0,31,0,29,0,16,0,14,0\n35,0,2,0,36,0,27,0,20,0,25,0\n12,0,17,0,44,0,10,0,32,0,7,0\n40,0,43,0,37,0,6,0,41,0,4,0\n18,0,23,0,30,0,13,0,9,0,3,0\n42,0,22,0,2,0,39,0,45,0,8,0\n"
  },
  {
    "path": "schedules/46_14.csv",
    "content": "41,0,5,0,16,0,27,0,28,0,2,0\n11,0,14,0,17,0,1,0,15,0,45,0\n22,0,25,0,34,0,39,0,30,0,38,0\n18,0,43,0,42,0,31,0,9,0,13,0\n26,0,32,0,4,0,44,0,7,0,36,0\n33,0,10,0,46,0,3,0,6,0,12,0\n21,0,20,0,40,0,29,0,35,0,8,0\n24,0,37,0,36,0,23,0,19,0,5,0\n16,0,39,0,28,0,33,0,26,0,22,0\n2,0,7,0,21,0,31,0,27,0,10,0\n45,0,3,0,24,0,44,0,42,0,23,0\n1,0,35,0,13,0,34,0,41,0,37,0\n9,0,29,0,43,0,30,0,14,0,4,0\n15,0,20,0,18,0,40,0,12,0,25,0\n11,0,38,0,19,0,46,0,17,0,8,0\n6,0,35,0,26,0,32,0,30,0,1,0\n7,1,12,0,31,0,14,1,40,0,13,0\n23,1,41,0,24,0,11,1,33,0,37,0\n18,0,32,0,2,0,34,0,45,0,4,0\n43,0,20,0,3,0,39,0,10,0,22,0\n16,0,38,0,17,0,6,0,9,0,44,0\n46,0,25,0,36,0,15,0,21,0,8,0\n42,0,27,0,5,0,29,0,19,0,28,0\n14,0,32,0,9,0,24,0,18,0,4,0\n33,0,45,0,16,0,43,0,8,0,40,0\n41,0,13,0,6,0,25,0,31,0,39,0\n10,0,1,0,28,0,23,0,15,0,38,0\n20,0,44,0,11,0,21,0,37,0,19,0\n12,0,30,0,2,0,35,0,17,0,36,0\n26,0,34,0,27,0,29,0,42,0,46,0\n7,0,5,0,20,0,22,0,3,0,18,0\n41,0,40,0,32,0,30,0,11,0,21,0\n28,0,17,0,42,0,29,0,15,0,16,0\n4,0,33,0,5,0,25,0,27,0,38,0\n8,0,23,0,3,0,6,0,14,0,34,0\n26,0,19,0,36,0,45,0,37,0,9,0\n1,0,24,0,12,0,43,0,22,0,31,0\n35,0,39,0,46,0,44,0,10,0,2,0\n7,0,40,0,23,0,13,0,4,0,19,0\n42,0,38,0,8,0,36,0,41,0,43,0\n25,0,10,0,37,0,45,0,11,0,22,0\n44,0,3,0,29,0,27,0,13,0,18,0\n39,0,24,0,15,0,20,0,35,0,2,0\n21,0,6,0,5,0,26,0,9,0,12,0\n31,0,46,0,30,0,14,0,28,0,33,0\n34,0,1,0,16,0,7,0,17,0,32,0\n10,0,18,0,26,0,19,0,41,0,2,0\n8,0,45,0,44,0,29,0,36,0,39,0\n16,0,6,0,7,0,13,0,5,0,15,0\n27,0,17,0,9,0,14,0,22,0,35,0\n28,0,34,0,23,0,20,0,4,0,25,0\n24,0,11,0,42,0,40,0,1,0,46,0\n32,0,21,0,3,0,12,0,43,0,33,0\n30,0,37,0,7,0,31,0,38,0,2,0\n23,0,36,0,13,0,17,0,45,0,41,0\n29,0,14,0,12,0,1,0,33,0,19,0\n27,0,15,0,35,0,8,0,37,0,18,0\n11,0,10,0,9,0,30,0,34,0,3,0\n31,0,40,0,42,0,25,0,32,0,28,0\n39,0,6,0,4,0,24,0,46,0,5,0\n43,0,44,0,38,0,16,0,20,0,26,0\n21,0,23,0,33,0,22,0,30,0,40,0\n19,0,18,0,46,0,39,0,32,0,42,0\n9,0,41,0,28,0,45,0,20,0,12,0\n17,0,44,0,4,0,35,0,31,0,5,0\n37,0,14,0,27,0,43,0,10,0,6,0\n8,0,25,0,1,0,3,0,2,0,16,0\n26,0,38,0,7,0,24,0,34,0,21,0\n29,0,13,0,22,0,36,0,15,0,11,0\n42,0,9,0,30,0,27,0,20,0,8,0\n1,0,37,0,17,0,28,0,44,0,21,0\n22,0,46,0,15,0,6,0,31,0,45,0\n34,0,10,0,38,0,5,0,40,0,36,0\n24,0,14,0,19,0,18,0,16,0,35,0\n26,0,41,0,29,0,7,0,3,0,25,0\n4,0,2,0,43,0,12,0,11,0,13,0\n33,0,32,0,27,0,39,0,23,0,20,0\n36,0,10,0,30,0,16,0,44,0,24,0\n15,0,28,0,31,0,38,0,9,0,3,0\n41,0,25,0,18,0,43,0,23,0,46,0\n12,0,5,0,8,0,1,0,26,0,11,0\n21,0,17,0,39,0,42,0,14,0,7,0\n4,0,29,0,40,0,37,0,2,0,6,0\n33,0,34,0,13,0,19,0,22,0,32,0\n45,0,23,0,25,0,35,0,9,0,24,0\n12,0,36,0,16,0,39,0,27,0,11,0\n2,0,33,0,40,0,17,0,3,0,26,0\n43,0,37,0,35,0,46,0,28,0,7,0\n6,0,30,0,15,0,34,0,19,0,42,0\n13,0,38,0,21,0,45,0,14,0,18,0\n8,0,22,0,4,0,44,0,1,0,41,0\n31,0,20,0,32,0,29,0,10,0,5,0\n2,0,46,0,11,0,7,0,33,0,9,0\n14,0,25,0,15,0,44,0,27,0,40,0\n19,0,3,0,39,0,21,0,12,0,4,0\n1,0,29,0,6,0,38,0,36,0,20,0\n28,0,8,0,13,0,10,0,32,0,24,0\n22,0,16,0,23,0,26,0,42,0,37,0\n45,0,30,0,43,0,5,0,18,0,17,0\n34,0,35,0,44,0,41,0,31,0,33,0\n29,0,37,0,38,0,23,0,12,0,32,0\n18,0,36,0,6,0,3,0,11,0,28,0\n22,0,2,0,5,0,21,0,41,0,14,0\n4,0,7,0,35,0,16,0,10,0,42,0\n45,0,46,0,27,0,30,0,20,0,13,0\n9,0,40,0,34,0,43,0,1,0,39,0\n17,0,15,0,19,0,24,0,25,0,26,0\n31,0,14,0,23,0,8,0,7,0,11,0\n"
  },
  {
    "path": "schedules/46_2.csv",
    "content": "31,0,36,0,32,0,37,0,7,0,41,0\n40,0,14,0,3,0,19,0,4,0,29,0\n9,0,8,0,2,0,27,0,17,0,23,0\n43,0,22,0,10,0,24,0,26,0,16,0\n45,0,42,0,13,0,30,0,5,0,46,0\n44,0,33,0,39,0,18,0,12,0,34,0\n38,0,25,0,1,0,28,0,20,0,35,0\n21,0,6,0,42,0,11,0,15,0,32,0\n19,0,30,0,31,0,39,0,22,0,9,0\n7,0,34,0,24,0,38,0,13,0,3,0\n17,0,20,0,41,0,5,0,10,0,6,0\n18,0,15,0,35,0,8,0,40,0,36,0\n28,0,11,0,23,0,26,0,14,0,12,0\n37,0,33,0,4,0,25,0,45,0,43,0\n29,0,46,0,16,0,2,0,1,0,21,0\n27,0,38,1,3,1,44,0,31,1,14,1\n"
  },
  {
    "path": "schedules/46_3.csv",
    "content": "3,0,28,0,20,0,43,0,13,0,10,0\n42,0,4,0,25,0,5,0,23,0,40,0\n16,0,7,0,46,0,14,0,45,0,21,0\n31,0,29,0,9,0,15,0,41,0,34,0\n27,0,6,0,8,0,19,0,36,0,2,0\n18,0,1,0,26,0,33,0,37,0,11,0\n35,0,39,0,24,0,32,0,17,0,44,0\n30,0,38,0,45,0,12,0,22,0,20,0\n25,0,28,0,14,0,36,0,37,0,29,0\n21,0,19,0,10,0,1,0,15,0,24,0\n33,0,9,0,17,0,5,0,6,0,16,0\n11,0,13,0,2,0,39,0,42,0,12,0\n23,0,44,0,41,0,18,0,46,0,27,0\n4,0,22,0,32,0,3,0,8,0,31,0\n38,0,34,0,43,0,35,0,7,0,26,0\n40,0,41,0,33,0,30,0,2,0,24,0\n15,0,27,0,16,0,20,0,11,0,4,0\n18,0,12,0,3,0,6,0,34,0,14,0\n30,0,42,0,36,0,44,0,9,0,7,0\n17,0,46,0,10,0,25,0,8,0,38,0\n29,0,23,0,43,0,1,0,39,0,22,0\n21,0,37,0,5,0,35,0,13,0,31,0\n40,0,32,0,26,0,45,0,19,0,28,0\n"
  },
  {
    "path": "schedules/46_4.csv",
    "content": "20,0,39,0,23,0,29,0,34,0,42,0\n6,0,14,0,11,0,1,0,22,0,24,0\n43,0,18,0,35,0,36,0,8,0,21,0\n10,0,44,0,7,0,25,0,31,0,19,0\n40,0,45,0,26,0,13,0,32,0,2,0\n5,0,41,0,4,0,3,0,15,0,33,0\n46,0,17,0,38,0,27,0,37,0,12,0\n30,0,16,0,31,0,28,0,9,0,35,0\n25,0,3,0,8,0,40,0,14,0,20,0\n5,0,43,0,42,0,38,0,1,0,44,0\n29,0,12,0,16,0,4,0,24,0,45,0\n10,0,13,0,9,0,17,0,23,0,11,0\n32,0,39,0,33,0,37,0,28,0,6,0\n46,0,41,0,30,0,18,0,7,0,22,0\n27,0,34,0,15,0,2,0,21,0,19,0\n36,0,42,0,3,0,26,0,16,0,10,0\n29,1,32,0,25,0,11,1,41,0,43,0\n13,0,6,0,12,0,34,0,31,0,18,0\n17,0,14,0,21,0,45,0,30,0,5,0\n1,0,7,0,23,0,26,0,33,0,27,0\n8,0,2,0,24,0,39,0,38,0,9,0\n20,0,19,0,28,0,46,0,4,0,36,0\n37,0,35,0,22,0,40,0,15,0,44,0\n9,0,33,0,21,0,12,0,25,0,42,0\n18,0,19,0,23,0,3,0,24,0,32,0\n35,0,38,0,45,0,7,0,6,0,20,0\n27,0,10,0,22,0,8,0,29,0,28,0\n44,0,34,0,11,0,30,0,26,0,4,0\n1,0,31,0,40,0,41,0,17,0,39,0\n15,0,14,0,46,0,16,0,43,0,13,0\n37,0,2,0,29,0,5,0,36,0,11,0\n"
  },
  {
    "path": "schedules/46_5.csv",
    "content": "8,0,35,0,38,0,14,0,25,0,9,0\n2,0,16,0,36,0,7,0,20,0,41,0\n34,0,4,0,31,0,30,0,42,0,5,0\n46,0,37,0,44,0,22,0,3,0,28,0\n21,0,12,0,29,0,17,0,33,0,6,0\n23,0,24,0,40,0,43,0,1,0,13,0\n32,0,45,0,39,0,26,0,11,0,18,0\n10,0,15,0,34,0,19,0,27,0,25,0\n37,0,23,0,38,0,29,0,36,0,4,0\n20,0,5,0,12,0,45,0,1,0,44,0\n10,0,30,0,32,0,9,0,46,0,24,0\n16,0,28,0,11,0,6,0,15,0,35,0\n22,0,33,0,13,0,27,0,39,0,2,0\n19,0,7,0,26,0,21,0,14,0,31,0\n3,0,18,0,8,0,41,0,43,0,17,0\n42,0,44,0,9,0,40,0,16,0,33,0\n22,1,23,0,25,0,32,1,12,0,31,0\n15,1,45,0,14,0,41,1,46,0,13,0\n7,0,17,0,11,0,40,0,37,0,34,0\n28,0,27,0,26,0,8,0,24,0,4,0\n1,0,19,0,35,0,18,0,2,0,29,0\n43,0,38,0,30,0,20,0,39,0,21,0\n42,0,3,0,36,0,5,0,6,0,10,0\n1,0,2,0,25,0,46,0,4,0,11,0\n20,0,15,0,9,0,23,0,18,0,17,0\n44,0,24,0,39,0,36,0,35,0,31,0\n13,0,42,0,12,0,8,0,19,0,37,0\n27,0,16,0,29,0,3,0,30,0,14,0\n28,0,33,0,5,0,43,0,32,0,7,0\n40,0,6,0,41,0,34,0,38,0,26,0\n10,0,45,0,4,0,21,0,22,0,16,0\n8,0,39,0,7,0,29,0,46,0,15,0\n35,0,20,0,32,0,34,0,13,0,3,0\n14,0,40,0,28,0,10,0,2,0,12,0\n24,0,17,0,22,0,19,0,38,0,5,0\n44,0,11,0,21,0,23,0,27,0,41,0\n9,0,37,0,31,0,6,0,45,0,43,0\n25,0,18,0,30,0,33,0,26,0,36,0\n1,0,22,0,15,0,42,0,32,0,41,0\n"
  },
  {
    "path": "schedules/46_6.csv",
    "content": "39,0,14,0,34,0,33,0,16,0,32,0\n45,0,22,0,19,0,26,0,4,0,18,0\n17,0,24,0,43,0,2,0,46,0,35,0\n20,0,21,0,15,0,31,0,7,0,38,0\n5,0,9,0,27,0,28,0,6,0,40,0\n8,0,12,0,37,0,23,0,42,0,10,0\n41,0,1,0,25,0,44,0,36,0,3,0\n13,0,11,0,24,0,30,0,29,0,28,0\n46,0,16,0,27,0,8,0,23,0,20,0\n12,0,7,0,39,0,22,0,6,0,41,0\n3,0,35,0,10,0,4,0,32,0,9,0\n15,0,5,0,19,0,36,0,33,0,13,0\n17,0,38,0,29,0,45,0,14,0,44,0\n42,0,26,0,34,0,43,0,21,0,11,0\n1,0,31,0,18,0,30,0,37,0,40,0\n2,0,10,0,28,0,25,0,15,0,39,0\n19,0,23,0,9,0,17,0,41,0,21,0\n44,0,7,0,33,0,26,0,31,0,35,0\n22,0,40,0,32,0,36,0,11,0,46,0\n6,0,18,0,8,0,13,0,43,0,14,0\n37,0,38,0,25,0,24,0,34,0,27,0\n42,0,29,0,16,0,1,0,5,0,4,0\n3,0,30,0,2,0,12,0,20,0,45,0\n6,0,11,0,32,0,31,0,25,0,23,0\n38,0,16,0,36,0,35,0,28,0,18,0\n22,0,15,0,30,0,8,0,9,0,34,0\n10,0,24,0,45,0,20,0,33,0,1,0\n40,0,39,0,13,0,3,0,17,0,42,0\n27,0,4,0,21,0,44,0,12,0,43,0\n26,0,2,0,41,0,29,0,5,0,37,0\n14,0,46,0,30,0,19,0,7,0,25,0\n36,0,45,0,9,0,43,0,39,0,23,0\n20,0,22,0,44,0,37,0,28,0,42,0\n10,0,34,0,31,0,13,0,46,0,29,0\n8,0,33,0,4,0,38,0,40,0,41,0\n17,0,7,0,18,0,32,0,5,0,12,0\n14,0,19,0,11,0,27,0,1,0,2,0\n3,0,26,0,6,0,24,0,16,0,15,0\n35,0,45,0,13,0,21,0,22,0,25,0\n23,0,28,0,4,0,2,0,7,0,34,0\n17,0,36,0,30,0,10,0,6,0,16,0\n44,0,5,0,31,0,24,0,8,0,39,0\n32,0,43,0,20,0,19,0,40,0,29,0\n18,0,37,0,21,0,33,0,11,0,3,0\n35,0,41,0,15,0,14,0,27,0,42,0\n38,0,1,0,46,0,9,0,12,0,26,0\n"
  },
  {
    "path": "schedules/46_7.csv",
    "content": "29,0,13,0,21,0,42,0,32,0,4,0\n28,0,27,0,2,0,43,0,3,0,22,0\n14,0,9,0,39,0,12,0,38,0,26,0\n33,0,19,0,8,0,1,0,34,0,16,0\n20,0,30,0,36,0,15,0,7,0,35,0\n24,0,45,0,17,0,46,0,25,0,18,0\n10,0,11,0,5,0,41,0,6,0,37,0\n31,0,23,0,32,0,44,0,40,0,33,0\n43,0,15,0,46,0,39,0,42,0,25,0\n38,0,14,0,28,0,1,0,17,0,35,0\n9,0,13,0,27,0,34,0,30,0,37,0\n23,0,41,0,24,0,20,0,19,0,26,0\n4,0,2,0,12,0,44,0,18,0,11,0\n3,0,6,0,16,0,40,0,36,0,22,0\n10,0,45,0,21,0,7,0,8,0,31,0\n29,0,11,0,23,0,5,0,27,0,1,0\n32,1,41,0,2,0,24,1,38,0,25,0\n18,0,15,0,33,0,14,0,21,0,3,0\n40,0,30,0,5,0,43,0,10,0,42,0\n13,0,22,0,35,0,44,0,8,0,46,0\n31,0,9,0,6,0,17,0,20,0,4,0\n12,0,39,0,37,0,19,0,36,0,29,0\n7,0,34,0,45,0,16,0,26,0,28,0\n44,0,42,0,38,0,20,0,3,0,27,0\n2,0,5,0,17,0,39,0,33,0,13,0\n22,0,1,0,26,0,15,0,32,0,10,0\n46,0,21,0,16,0,23,0,9,0,30,0\n25,0,28,0,4,0,37,0,40,0,19,0\n34,0,12,0,35,0,6,0,7,0,24,0\n36,0,43,0,14,0,45,0,41,0,11,0\n8,0,18,0,30,0,29,0,31,0,38,0\n10,0,37,0,25,0,3,0,23,0,35,0\n44,0,27,0,21,0,28,0,6,0,39,0\n7,0,32,0,19,0,5,0,14,0,46,0\n34,0,29,0,20,0,45,0,40,0,2,0\n42,0,11,0,31,0,24,0,22,0,16,0\n36,0,41,0,13,0,9,0,18,0,1,0\n15,0,26,0,4,0,8,0,17,0,43,0\n12,0,22,0,42,0,33,0,35,0,45,0\n39,0,16,0,18,0,10,0,28,0,20,0\n2,0,37,0,1,0,31,0,46,0,26,0\n33,0,43,0,11,0,29,0,7,0,9,0\n3,0,30,0,41,0,17,0,32,0,12,0\n25,0,34,0,44,0,21,0,36,0,5,0\n8,0,40,0,4,0,14,0,24,0,27,0\n15,0,6,0,38,0,13,0,23,0,19,0\n18,0,20,0,37,0,32,0,43,0,34,0\n3,0,24,0,1,0,30,0,39,0,45,0\n31,0,27,0,16,0,25,0,13,0,12,0\n8,0,14,0,42,0,2,0,6,0,23,0\n40,0,26,0,35,0,21,0,19,0,11,0\n46,0,38,0,33,0,10,0,4,0,36,0\n7,0,22,0,44,0,29,0,41,0,17,0\n5,0,9,0,32,0,28,0,15,0,24,0\n"
  },
  {
    "path": "schedules/46_8.csv",
    "content": "4,0,16,0,7,0,17,0,9,0,6,0\n11,0,44,0,28,0,31,0,12,0,40,0\n36,0,10,0,14,0,41,0,39,0,22,0\n35,0,29,0,43,0,2,0,19,0,37,0\n20,0,45,0,5,0,23,0,1,0,18,0\n42,0,32,0,46,0,33,0,38,0,24,0\n8,0,25,0,30,0,34,0,3,0,27,0\n15,0,26,0,2,0,13,0,21,0,28,0\n29,0,6,0,18,0,12,0,46,0,39,0\n8,0,40,0,7,0,33,0,4,0,35,0\n1,0,19,0,24,0,41,0,25,0,11,0\n9,0,15,0,13,0,32,0,14,0,30,0\n10,0,34,0,43,0,26,0,23,0,20,0\n16,0,42,0,31,0,27,0,5,0,36,0\n37,0,44,0,3,0,38,0,22,0,17,0\n45,0,33,0,29,0,21,0,11,0,10,0\n26,1,25,0,35,0,46,1,16,0,18,0\n23,1,4,0,12,0,19,1,36,0,3,0\n41,0,21,0,40,0,30,0,42,0,34,0\n44,0,15,0,1,0,43,0,9,0,7,0\n22,0,14,0,2,0,8,0,5,0,38,0\n6,0,13,0,24,0,37,0,45,0,31,0\n27,0,39,0,32,0,20,0,17,0,28,0\n42,0,29,0,12,0,22,0,35,0,9,0\n46,0,3,0,10,0,2,0,31,0,7,0\n8,0,27,0,6,0,23,0,15,0,11,0\n30,0,41,0,17,0,38,0,26,0,45,0\n21,0,32,0,19,0,37,0,36,0,40,0\n4,0,39,0,5,0,43,0,25,0,33,0\n28,0,1,0,34,0,14,0,24,0,16,0\n18,0,20,0,41,0,44,0,13,0,2,0\n15,0,25,0,37,0,45,0,36,0,42,0\n28,0,29,0,14,0,30,0,4,0,43,0\n46,0,31,0,8,0,16,0,20,0,21,0\n3,0,32,0,26,0,1,0,6,0,39,0\n23,0,10,0,38,0,9,0,40,0,18,0\n34,0,24,0,7,0,22,0,12,0,27,0\n13,0,11,0,35,0,44,0,5,0,17,0\n19,0,9,0,28,0,33,0,20,0,3,0\n4,0,27,0,40,0,1,0,2,0,45,0\n5,0,37,0,16,0,10,0,41,0,15,0\n42,0,14,0,11,0,26,0,7,0,46,0\n22,0,6,0,31,0,19,0,23,0,25,0\n30,0,21,0,24,0,44,0,39,0,35,0\n43,0,17,0,32,0,12,0,8,0,18,0\n33,0,13,0,36,0,38,0,34,0,29,0\n45,0,23,0,41,0,28,0,3,0,35,0\n12,0,26,0,9,0,24,0,5,0,46,0\n31,0,39,0,38,0,15,0,34,0,4,0\n21,0,33,0,37,0,18,0,27,0,14,0\n16,0,30,0,22,0,2,0,11,0,20,0\n44,0,25,0,7,0,32,0,29,0,8,0\n17,0,13,0,1,0,19,0,10,0,42,0\n36,0,43,0,41,0,6,0,40,0,46,0\n26,0,11,0,34,0,32,0,37,0,4,0\n45,0,39,0,19,0,42,0,9,0,8,0\n30,0,2,0,12,0,33,0,31,0,1,0\n18,0,38,0,36,0,7,0,28,0,5,0\n40,0,23,0,17,0,29,0,24,0,15,0\n22,0,21,0,3,0,13,0,43,0,16,0\n35,0,20,0,10,0,25,0,6,0,14,0\n27,0,46,0,23,0,44,0,26,0,19,0\n"
  },
  {
    "path": "schedules/46_9.csv",
    "content": "1,0,25,0,21,0,23,0,31,0,46,0\n39,0,30,0,36,0,32,0,8,0,19,0\n4,0,11,0,5,0,6,0,29,0,40,0\n33,0,42,0,37,0,34,0,38,0,15,0\n44,0,22,0,10,0,35,0,2,0,43,0\n27,0,9,0,13,0,24,0,12,0,26,0\n16,0,20,0,45,0,17,0,18,0,3,0\n7,0,14,0,1,0,41,0,28,0,38,0\n15,0,6,0,21,0,10,0,12,0,32,0\n5,0,30,0,16,0,26,0,42,0,25,0\n35,0,37,0,29,0,46,0,28,0,39,0\n8,0,4,0,31,0,20,0,7,0,24,0\n2,0,18,0,41,0,33,0,13,0,3,0\n23,0,44,0,45,0,11,0,40,0,22,0\n17,0,34,0,19,0,14,0,43,0,9,0\n36,0,5,0,41,0,27,0,18,0,30,0\n23,0,26,0,29,0,3,0,6,0,7,0\n14,0,15,0,35,0,40,0,43,0,13,0\n12,0,20,0,25,0,34,0,24,0,28,0\n42,0,44,0,31,0,9,0,4,0,36,0\n2,0,10,0,46,0,17,0,39,0,45,0\n11,0,32,0,16,0,38,0,37,0,22,0\n27,0,1,0,19,0,8,0,21,0,33,0\n39,0,12,0,7,0,45,0,14,0,25,0\n43,0,17,0,36,0,38,0,6,0,4,0\n19,0,23,0,28,0,27,0,44,0,41,0\n10,0,29,0,1,0,30,0,13,0,34,0\n8,0,35,0,22,0,18,0,9,0,15,0\n40,0,33,0,46,0,26,0,20,0,32,0\n2,0,11,0,42,0,16,0,24,0,21,0\n3,0,37,0,19,0,31,0,5,0,12,0\n36,0,38,0,20,0,13,0,25,0,10,0\n43,0,32,0,42,0,26,0,45,0,27,0\n5,0,29,0,14,0,2,0,31,0,22,0\n3,0,9,0,35,0,33,0,11,0,1,0\n17,0,30,0,24,0,37,0,7,0,23,0\n28,0,18,0,21,0,15,0,4,0,40,0\n8,0,34,0,39,0,16,0,44,0,46,0\n6,0,22,0,26,0,41,0,19,0,20,0\n30,0,31,0,9,0,21,0,38,0,45,0\n4,0,33,0,23,0,39,0,13,0,37,0\n18,0,46,0,25,0,11,0,6,0,27,0\n2,0,34,0,5,0,32,0,35,0,7,0\n8,0,10,0,42,0,3,0,14,0,28,0\n36,0,12,0,40,0,16,0,1,0,43,0\n15,0,24,0,44,0,17,0,29,0,41,0\n13,0,46,0,11,0,42,0,7,0,19,0\n3,0,40,0,39,0,27,0,34,0,22,0\n24,0,45,0,29,0,36,0,33,0,10,0\n2,0,6,0,44,0,18,0,37,0,1,0\n35,0,26,0,28,0,21,0,31,0,17,0\n12,0,43,0,38,0,5,0,8,0,23,0\n32,0,41,0,9,0,16,0,4,0,25,0\n14,0,20,0,27,0,30,0,15,0,37,0\n1,0,28,0,45,0,43,0,24,0,5,0\n6,0,35,0,31,0,42,0,16,0,41,0\n34,0,11,0,23,0,15,0,2,0,36,0\n3,0,21,0,26,0,44,0,38,0,14,0\n4,0,22,0,46,0,33,0,12,0,30,0\n18,0,7,0,40,0,19,0,9,0,10,0\n17,0,25,0,32,0,8,0,13,0,29,0\n39,0,43,0,27,0,20,0,31,0,11,0\n33,0,16,0,15,0,44,0,5,0,7,0\n18,0,32,0,29,0,14,0,23,0,12,0\n22,0,20,0,17,0,36,0,42,0,1,0\n24,0,38,0,3,0,35,0,46,0,19,0\n28,0,30,0,6,0,2,0,9,0,39,0\n21,0,40,0,37,0,25,0,41,0,8,0\n26,0,4,0,13,0,45,0,34,0,10,0\n"
  },
  {
    "path": "schedules/47_1.csv",
    "content": "1,0,47,0,30,0,24,0,15,0,29,0\n17,0,14,0,4,0,40,0,16,0,22,0\n11,0,5,0,27,0,46,0,18,0,44,0\n38,0,12,0,32,0,10,0,7,0,25,0\n2,0,13,0,35,0,33,0,26,0,3,0\n21,0,41,0,37,0,31,0,28,0,36,0\n23,0,8,0,6,0,34,0,39,0,9,0\n43,0,20,0,45,0,42,0,19,0,4,1\n"
  },
  {
    "path": "schedules/47_10.csv",
    "content": "28,0,34,0,32,0,27,0,24,0,14,0\n1,0,26,0,23,0,40,0,11,0,41,0\n46,0,17,0,30,0,15,0,25,0,36,0\n33,0,44,0,12,0,22,0,47,0,37,0\n10,0,35,0,42,0,6,0,45,0,43,0\n9,0,8,0,3,0,20,0,29,0,38,0\n18,0,7,0,31,0,5,0,21,0,4,0\n39,0,19,0,16,0,2,0,13,0,6,0\n12,0,47,0,43,0,3,0,28,0,30,0\n20,0,25,0,8,0,7,0,4,0,36,0\n38,0,19,0,32,0,21,0,1,0,35,0\n15,0,11,0,22,0,9,0,13,0,27,0\n40,0,24,0,45,0,41,0,5,0,17,0\n14,0,39,0,18,0,10,0,26,0,46,0\n37,0,44,0,23,0,16,0,42,0,2,0\n31,0,29,0,13,0,33,0,34,0,1,0\n6,1,8,0,10,0,19,1,41,0,28,0\n7,1,25,0,9,0,40,1,14,0,12,0\n46,0,36,0,3,0,34,0,35,0,26,0\n4,0,31,0,23,0,37,0,27,0,15,0\n32,0,47,0,20,0,22,0,29,0,39,0\n45,0,21,0,11,0,30,0,18,0,33,0\n38,0,24,0,5,0,44,0,16,0,43,0\n2,0,9,0,26,0,17,0,42,0,47,0\n45,0,25,0,35,0,15,0,23,0,29,0\n41,0,18,0,13,0,7,0,38,0,12,0\n28,0,44,0,24,0,4,0,11,0,46,0\n34,0,42,0,22,0,21,0,10,0,30,0\n43,0,40,0,32,0,36,0,8,0,33,0\n5,0,39,0,2,0,1,0,27,0,3,0\n16,0,14,0,17,0,31,0,20,0,6,0\n19,0,15,0,46,0,37,0,12,0,41,0\n29,0,9,0,4,0,40,0,13,0,21,0\n22,0,3,0,5,0,42,0,26,0,25,0\n23,0,19,0,47,0,10,0,14,0,38,0\n39,0,27,0,44,0,8,0,43,0,31,0\n37,0,32,0,18,0,17,0,34,0,6,0\n35,0,30,0,11,0,24,0,2,0,20,0\n1,0,16,0,28,0,45,0,33,0,7,0\n36,0,41,0,14,0,44,0,42,0,13,0\n43,0,18,0,10,0,2,0,15,0,32,0\n35,0,29,0,46,0,22,0,16,0,7,0\n33,0,21,0,17,0,23,0,3,0,24,0\n45,0,4,0,12,0,39,0,6,0,38,0\n31,0,27,0,26,0,19,0,30,0,20,0\n36,0,1,0,9,0,37,0,5,0,28,0\n40,0,34,0,8,0,47,0,11,0,25,0\n15,0,24,0,7,0,3,0,26,0,39,0\n22,0,2,0,12,0,31,0,45,0,36,0\n14,0,37,0,30,0,35,0,38,0,8,0\n13,0,47,0,5,0,23,0,21,0,32,0\n6,0,19,0,1,0,43,0,46,0,9,0\n27,0,28,0,42,0,29,0,40,0,18,0\n25,0,4,0,17,0,16,0,11,0,10,0\n20,0,33,0,15,0,34,0,41,0,44,0\n23,0,38,0,40,0,46,0,22,0,18,0\n7,0,13,0,35,0,47,0,31,0,10,0\n2,0,33,0,11,0,14,0,5,0,19,0\n8,0,12,0,42,0,1,0,24,0,17,0\n37,0,21,0,25,0,28,0,39,0,20,0\n32,0,29,0,6,0,30,0,26,0,44,0\n36,0,34,0,27,0,45,0,16,0,9,0\n4,0,41,0,22,0,3,0,43,0,14,0\n28,0,18,0,17,0,19,0,35,0,44,0\n27,0,6,0,7,0,33,0,25,0,38,0\n20,0,12,0,34,0,5,0,23,0,43,0\n15,0,30,0,16,0,40,0,1,0,47,0\n10,0,36,0,37,0,11,0,29,0,24,0\n8,0,26,0,13,0,21,0,2,0,46,0\n3,0,41,0,45,0,31,0,9,0,32,0\n39,0,42,0,1,0,4,0,35,0,33,0\n5,0,6,0,15,0,28,0,22,0,8,0\n13,0,45,0,10,0,40,0,37,0,20,0\n19,0,2,0,29,0,24,0,4,0,34,0\n36,0,30,0,39,0,18,0,9,0,23,0\n17,0,27,0,43,0,7,0,47,0,14,0\n46,0,31,0,38,0,32,0,11,0,42,0\n41,0,26,0,21,0,25,0,12,0,16,0\n44,0,6,0,40,0,3,0,19,0,7,0\n"
  },
  {
    "path": "schedules/47_11.csv",
    "content": "12,0,44,0,10,0,19,0,14,0,32,0\n21,0,26,0,30,0,8,0,27,0,29,0\n4,0,11,0,20,0,41,0,7,0,5,0\n28,0,17,0,47,0,36,0,46,0,2,0\n6,0,31,0,37,0,39,0,13,0,9,0\n45,0,33,0,15,0,24,0,25,0,22,0\n23,0,40,0,1,0,16,0,42,0,43,0\n34,0,18,0,3,0,38,0,35,0,31,0\n30,0,29,0,13,0,25,0,36,0,4,0\n40,0,14,0,47,0,8,0,7,0,6,0\n42,0,2,0,15,0,19,0,11,0,35,0\n10,0,39,0,37,0,23,0,44,0,21,0\n20,0,28,0,27,0,34,0,32,0,33,0\n46,0,38,0,18,0,9,0,1,0,17,0\n45,0,12,0,5,0,26,0,16,0,24,0\n43,0,22,0,20,0,3,0,41,0,42,0\n37,1,4,0,27,0,47,1,6,0,25,0\n12,1,16,0,7,0,36,1,10,0,30,0\n9,1,32,0,29,0,14,0,41,0,45,0\n8,0,5,0,17,0,13,0,19,0,22,0\n43,0,31,0,44,0,11,0,2,0,33,0\n18,0,39,0,1,0,34,0,15,0,24,0\n21,0,38,0,28,0,35,0,26,0,23,0\n3,0,40,0,16,0,46,0,25,0,44,0\n14,0,11,0,18,0,12,0,30,0,39,0\n1,0,22,0,8,0,32,0,4,0,23,0\n41,0,21,0,35,0,47,0,46,0,5,0\n2,0,37,0,29,0,20,0,31,0,3,0\n19,0,15,0,6,0,28,0,34,0,36,0\n9,0,42,0,26,0,33,0,17,0,7,0\n45,0,13,0,24,0,43,0,27,0,38,0\n10,0,5,0,2,0,40,0,8,0,34,0\n46,0,9,0,28,0,30,0,14,0,3,0\n37,0,19,0,16,0,24,0,33,0,4,0\n21,0,47,0,13,0,32,0,18,0,42,0\n38,0,22,0,36,0,43,0,40,0,39,0\n12,0,31,0,25,0,26,0,44,0,1,0\n6,0,23,0,27,0,20,0,15,0,41,0\n29,0,17,0,35,0,45,0,7,0,10,0\n11,0,32,0,43,0,18,0,25,0,37,0\n12,0,6,0,38,0,16,0,30,0,22,0\n4,0,31,0,8,0,35,0,40,0,45,0\n41,0,34,0,23,0,44,0,17,0,13,0\n42,0,24,0,5,0,28,0,29,0,14,0\n9,0,15,0,10,0,2,0,20,0,21,0\n39,0,7,0,19,0,3,0,27,0,46,0\n36,0,11,0,26,0,33,0,1,0,47,0\n15,0,8,0,35,0,43,0,29,0,12,0\n38,0,4,0,41,0,14,0,31,0,10,0\n32,0,24,0,44,0,17,0,46,0,6,0\n28,0,13,0,2,0,16,0,39,0,20,0\n47,0,7,0,26,0,37,0,34,0,22,0\n45,0,19,0,27,0,40,0,11,0,9,0\n42,0,25,0,23,0,36,0,18,0,5,0\n21,0,33,0,3,0,30,0,1,0,6,0\n46,0,13,0,14,0,34,0,26,0,12,0\n36,0,20,0,42,0,38,0,8,0,44,0\n17,0,4,0,3,0,39,0,11,0,15,0\n5,0,43,0,28,0,31,0,47,0,27,0\n41,0,19,0,30,0,45,0,37,0,1,0\n23,0,16,0,9,0,32,0,35,0,25,0\n22,0,18,0,33,0,40,0,29,0,10,0\n2,0,24,0,41,0,21,0,7,0,36,0\n43,0,25,0,14,0,17,0,20,0,19,0\n33,0,27,0,42,0,12,0,4,0,46,0\n35,0,10,0,1,0,5,0,6,0,13,0\n32,0,7,0,30,0,39,0,2,0,31,0\n22,0,44,0,40,0,9,0,21,0,24,0\n45,0,23,0,8,0,28,0,37,0,3,0\n11,0,47,0,34,0,29,0,16,0,38,0\n26,0,33,0,14,0,15,0,18,0,13,0\n31,0,17,0,36,0,21,0,12,0,27,0\n20,0,30,0,44,0,43,0,35,0,24,0\n6,0,26,0,29,0,23,0,19,0,2,0\n46,0,41,0,16,0,8,0,9,0,18,0\n45,0,39,0,3,0,10,0,47,0,42,0\n1,0,25,0,11,0,7,0,28,0,22,0\n37,0,32,0,15,0,40,0,38,0,5,0\n34,0,43,0,19,0,4,0,21,0,16,0\n35,0,2,0,22,0,14,0,1,0,27,0\n36,0,3,0,9,0,5,0,26,0,32,0\n40,0,30,0,37,0,17,0,42,0,34,0\n12,0,18,0,20,0,6,0,45,0,28,0\n7,0,4,0,13,0,47,0,15,0,44,0\n39,0,33,0,38,0,8,0,41,0,25,0\n10,0,24,0,46,0,23,0,31,0,11,0\n29,0,47,0,36,0,37,0,12,0,9,0\n"
  },
  {
    "path": "schedules/47_12.csv",
    "content": "37,0,45,0,13,0,4,0,43,0,26,0\n21,0,24,0,31,0,22,0,47,0,30,0\n18,0,44,0,42,0,38,0,46,0,11,0\n23,0,8,0,41,0,7,0,20,0,39,0\n2,0,33,0,28,0,17,0,14,0,27,0\n25,0,5,0,19,0,40,0,16,0,34,0\n6,0,10,0,35,0,12,0,9,0,29,0\n3,0,15,0,32,0,36,0,1,0,2,0\n44,0,45,0,20,0,27,0,25,0,7,0\n39,0,26,0,12,0,16,0,18,0,9,0\n29,0,22,0,31,0,38,0,17,0,43,0\n42,0,33,0,10,0,40,0,13,0,21,0\n47,0,8,0,37,0,28,0,4,0,23,0\n30,0,36,0,35,0,34,0,41,0,46,0\n1,0,11,0,32,0,14,0,19,0,3,0\n15,0,5,0,26,0,24,0,6,0,25,0\n47,0,34,0,9,0,33,0,36,0,37,0\n8,0,4,0,2,0,41,0,44,0,1,0\n6,0,19,0,28,0,20,0,30,0,13,0\n18,0,11,0,7,0,31,0,40,0,17,0\n46,0,32,0,39,0,24,0,38,0,10,0\n3,0,42,0,27,0,22,0,35,0,12,0\n5,0,16,0,29,0,14,0,45,0,15,0\n43,0,23,0,19,0,21,0,18,0,4,0\n27,0,30,0,2,0,47,0,10,0,11,0\n5,0,9,0,13,0,14,0,31,0,46,0\n3,0,24,0,22,0,7,0,41,0,37,0\n43,0,40,0,15,0,44,0,12,0,23,0\n32,0,17,0,34,0,42,0,45,0,16,0\n20,0,28,0,8,0,29,0,36,0,21,0\n38,0,35,0,39,0,26,0,25,0,1,0\n33,0,46,0,19,0,6,0,2,0,3,0\n9,0,44,0,40,0,32,0,8,0,29,0\n24,0,30,0,5,0,23,0,13,0,17,0\n14,0,21,0,1,0,6,0,27,0,34,0\n25,0,15,0,16,0,11,0,22,0,33,0\n4,0,20,0,37,0,36,0,39,0,18,0\n47,0,45,0,43,0,41,0,42,0,35,0\n12,0,31,0,7,0,28,0,26,0,38,0\n25,0,22,0,34,0,10,0,13,0,4,0\n43,0,16,0,39,0,30,0,40,0,3,0\n6,0,45,0,31,0,36,0,24,0,28,0\n20,0,14,0,18,0,7,0,35,0,15,0\n10,0,46,0,37,0,11,0,8,0,27,0\n23,0,26,0,29,0,2,0,42,0,32,0\n47,0,12,0,41,0,5,0,33,0,1,0\n9,0,21,0,38,0,17,0,19,0,44,0\n8,0,6,0,18,0,22,0,2,0,16,0\n13,0,24,0,1,0,43,0,11,0,20,0\n27,0,21,0,45,0,39,0,15,0,9,0\n17,0,4,0,36,0,10,0,5,0,12,0\n47,0,42,0,28,0,35,0,19,0,32,0\n30,0,26,0,34,0,3,0,44,0,29,0\n23,0,46,0,7,0,31,0,33,0,25,0\n40,0,41,0,38,0,37,0,14,0,9,0\n17,0,15,0,8,0,34,0,43,0,35,0\n45,0,32,0,33,0,21,0,22,0,46,0\n3,0,18,0,26,0,4,0,5,0,27,0\n16,0,24,0,23,0,44,0,38,0,36,0\n1,0,40,0,20,0,28,0,10,0,31,0\n29,0,39,0,2,0,13,0,47,0,7,0\n30,0,11,0,14,0,19,0,12,0,37,0\n41,0,25,0,28,0,6,0,42,0,9,0\n13,0,34,0,3,0,38,0,47,0,18,0\n33,0,35,0,14,0,8,0,24,0,26,0\n27,0,10,0,20,0,5,0,43,0,42,0\n4,0,7,0,32,0,30,0,6,0,15,0\n11,0,21,0,12,0,2,0,25,0,23,0\n17,0,37,0,16,0,1,0,46,0,29,0\n19,0,36,0,31,0,40,0,22,0,45,0\n41,0,39,0,33,0,44,0,28,0,11,0\n3,0,17,0,1,0,26,0,9,0,20,0\n24,0,27,0,46,0,40,0,19,0,29,0\n25,0,36,0,32,0,13,0,18,0,43,0\n15,0,2,0,31,0,34,0,42,0,37,0\n38,0,6,0,12,0,8,0,30,0,45,0\n10,0,7,0,21,0,16,0,41,0,4,0\n44,0,39,0,22,0,23,0,5,0,35,0\n14,0,34,0,12,0,47,0,20,0,46,0\n42,0,4,0,40,0,24,0,2,0,9,0\n33,0,44,0,30,0,1,0,45,0,18,0\n17,0,28,0,29,0,3,0,8,0,25,0\n10,0,43,0,36,0,7,0,26,0,19,0\n11,0,35,0,37,0,5,0,32,0,21,0\n38,0,13,0,31,0,15,0,27,0,41,0\n6,0,14,0,16,0,39,0,23,0,47,0\n22,0,28,0,9,0,34,0,2,0,11,0\n12,0,27,0,18,0,41,0,32,0,24,0\n7,0,36,0,5,0,30,0,1,0,42,0\n40,0,46,0,26,0,47,0,15,0,21,0\n14,0,43,0,44,0,17,0,39,0,6,0\n25,0,45,0,10,0,3,0,23,0,37,0\n22,0,4,0,38,0,20,0,29,0,33,0\n19,0,13,0,16,0,8,0,35,0,31,0\n"
  },
  {
    "path": "schedules/47_13.csv",
    "content": "40,0,34,0,45,0,5,0,8,0,44,0\n47,0,12,0,31,0,23,0,20,0,42,0\n28,0,22,0,4,0,27,0,35,0,26,0\n7,0,30,0,46,0,2,0,43,0,29,0\n19,0,10,0,9,0,21,0,32,0,15,0\n6,0,14,0,17,0,11,0,13,0,3,0\n24,0,25,0,36,0,1,0,18,0,39,0\n33,0,38,0,37,0,41,0,16,0,35,0\n15,0,4,0,20,0,44,0,2,0,26,0\n14,0,5,0,23,0,36,0,6,0,21,0\n3,0,34,0,16,0,41,0,7,0,22,0\n29,0,38,0,11,0,37,0,18,0,8,0\n28,0,33,0,31,0,30,0,25,0,9,0\n24,0,32,0,39,0,19,0,46,0,27,0\n12,0,1,0,43,0,13,0,40,0,10,0\n42,0,47,0,14,0,45,0,17,0,25,0\n34,1,19,0,30,0,29,0,22,0,6,0\n9,0,36,0,38,0,2,0,12,0,7,0\n16,0,20,0,1,0,28,0,46,0,45,0\n13,0,24,0,8,0,47,0,35,0,44,0\n3,0,23,0,15,0,43,0,27,0,4,0\n17,0,5,0,31,0,33,0,10,0,18,0\n42,0,39,0,26,0,37,0,21,0,40,0\n41,0,11,0,2,0,32,0,44,0,25,0\n8,0,14,0,16,0,30,0,20,0,12,0\n9,0,43,0,26,0,47,0,3,0,38,0\n6,0,41,0,23,0,15,0,40,0,19,0\n29,0,35,0,32,0,5,0,1,0,28,0\n24,0,33,0,7,0,10,0,37,0,42,0\n46,0,39,0,21,0,11,0,22,0,17,0\n45,0,27,0,36,0,13,0,34,0,31,0\n4,0,40,0,7,0,18,0,32,0,23,0\n3,0,22,0,25,0,10,0,24,0,35,0\n27,0,21,0,30,0,13,0,41,0,38,0\n46,0,11,0,26,0,5,0,43,0,6,0\n15,0,14,0,44,0,16,0,47,0,18,0\n17,0,37,0,20,0,1,0,9,0,4,0\n8,0,29,0,19,0,31,0,42,0,36,0\n2,0,34,0,33,0,39,0,12,0,45,0\n28,0,43,0,13,0,41,0,18,0,9,0\n3,0,14,0,27,0,26,0,31,0,37,0\n44,0,10,0,22,0,2,0,8,0,15,0\n42,0,19,0,45,0,46,0,16,0,36,0\n32,0,47,0,40,0,29,0,33,0,30,0\n17,0,35,0,1,0,34,0,23,0,39,0\n12,0,11,0,21,0,24,0,28,0,20,0\n25,0,4,0,5,0,38,0,7,0,6,0\n29,0,17,0,36,0,35,0,9,0,15,0\n3,0,46,0,10,0,28,0,40,0,14,0\n32,0,1,0,34,0,43,0,42,0,8,0\n19,0,23,0,21,0,25,0,2,0,38,0\n37,0,24,0,4,0,45,0,30,0,13,0\n44,0,11,0,6,0,16,0,31,0,39,0\n41,0,27,0,47,0,20,0,7,0,5,0\n26,0,22,0,18,0,33,0,12,0,23,0\n9,0,32,0,28,0,6,0,24,0,45,0\n15,0,31,0,7,0,21,0,14,0,35,0\n38,0,17,0,43,0,36,0,44,0,39,0\n2,0,1,0,19,0,5,0,47,0,26,0\n13,0,25,0,37,0,40,0,20,0,22,0\n8,0,4,0,12,0,46,0,41,0,33,0\n30,0,18,0,11,0,42,0,34,0,27,0\n29,0,3,0,39,0,16,0,10,0,32,0\n35,0,6,0,40,0,14,0,2,0,13,0\n28,0,37,0,7,0,19,0,12,0,44,0\n5,0,46,0,18,0,9,0,16,0,42,0\n10,0,30,0,15,0,34,0,20,0,25,0\n45,0,29,0,41,0,26,0,23,0,24,0\n1,0,11,0,36,0,21,0,3,0,33,0\n43,0,47,0,22,0,4,0,38,0,31,0\n8,0,40,0,30,0,27,0,17,0,9,0\n35,0,3,0,18,0,20,0,19,0,26,0\n37,0,12,0,22,0,43,0,45,0,32,0\n42,0,24,0,21,0,34,0,4,0,14,0\n6,0,2,0,16,0,8,0,1,0,33,0\n31,0,44,0,27,0,25,0,46,0,29,0\n47,0,15,0,13,0,39,0,5,0,11,0\n23,0,36,0,7,0,28,0,41,0,17,0\n38,0,45,0,35,0,10,0,6,0,27,0\n39,0,43,0,33,0,29,0,14,0,20,0\n36,0,18,0,12,0,22,0,5,0,30,0\n10,0,4,0,23,0,8,0,9,0,11,0\n25,0,16,0,7,0,32,0,13,0,26,0\n15,0,41,0,34,0,46,0,37,0,47,0\n40,0,2,0,17,0,24,0,19,0,31,0\n21,0,38,0,44,0,42,0,3,0,1,0\n28,0,25,0,39,0,8,0,7,0,34,0\n18,0,20,0,2,0,6,0,32,0,37,0\n10,0,26,0,29,0,13,0,4,0,36,0\n42,0,46,0,44,0,30,0,35,0,23,0\n16,0,27,0,12,0,47,0,17,0,21,0\n9,0,31,0,22,0,14,0,1,0,41,0\n45,0,33,0,5,0,19,0,43,0,3,0\n40,0,24,0,38,0,15,0,11,0,28,0\n6,0,25,0,47,0,34,0,36,0,37,0\n39,0,8,0,35,0,41,0,3,0,12,0\n1,0,30,0,26,0,10,0,11,0,7,0\n23,0,31,0,43,0,15,0,24,0,16,0\n13,0,42,0,33,0,27,0,28,0,2,0\n32,0,5,0,19,0,17,0,4,0,44,0\n45,0,21,0,20,0,40,0,29,0,18,0\n46,0,9,0,14,0,22,0,38,0,34,0\n"
  },
  {
    "path": "schedules/47_14.csv",
    "content": "19,0,29,0,32,0,15,0,26,0,12,0\n10,0,4,0,28,0,21,0,18,0,44,0\n30,0,11,0,45,0,9,0,43,0,7,0\n20,0,35,0,39,0,47,0,40,0,5,0\n41,0,3,0,25,0,6,0,24,0,8,0\n37,0,2,0,33,0,22,0,31,0,23,0\n46,0,34,0,14,0,17,0,38,0,16,0\n42,0,27,0,1,0,13,0,36,0,4,0\n44,0,47,0,29,0,9,0,40,0,33,0\n15,0,17,0,30,0,11,0,41,0,20,0\n10,0,8,0,36,0,32,0,28,0,37,0\n22,0,35,0,14,0,3,0,19,0,23,0\n2,0,42,0,39,0,12,0,24,0,38,0\n31,0,18,0,25,0,1,0,46,0,13,0\n26,0,5,0,6,0,16,0,7,0,34,0\n43,0,27,0,39,0,21,0,45,0,9,0\n22,1,44,0,40,0,18,1,46,0,15,0\n32,0,41,0,8,0,31,0,2,0,34,0\n23,0,33,0,42,0,27,0,16,0,10,0\n43,0,6,0,14,0,29,0,5,0,7,0\n36,0,12,0,25,0,21,0,30,0,26,0\n37,0,3,0,35,0,47,0,1,0,38,0\n13,0,11,0,19,0,17,0,28,0,20,0\n4,0,24,0,32,0,45,0,7,0,33,0\n34,0,29,0,40,0,31,0,44,0,1,0\n35,0,10,0,30,0,36,0,43,0,21,0\n28,0,16,0,45,0,18,0,3,0,12,0\n22,0,2,0,11,0,6,0,13,0,39,0\n8,0,20,0,42,0,47,0,25,0,14,0\n27,0,5,0,38,0,17,0,19,0,41,0\n15,0,23,0,24,0,9,0,46,0,4,0\n37,0,31,0,16,0,26,0,36,0,20,0\n14,0,40,0,42,0,30,0,2,0,3,0\n21,0,38,0,33,0,1,0,8,0,25,0\n6,0,9,0,12,0,46,0,37,0,19,0\n27,0,11,0,24,0,34,0,23,0,18,0\n28,0,44,0,13,0,7,0,47,0,32,0\n41,0,39,0,10,0,45,0,35,0,15,0\n26,0,22,0,29,0,43,0,4,0,5,0\n17,0,1,0,37,0,44,0,30,0,23,0\n20,0,25,0,16,0,9,0,11,0,47,0\n3,0,8,0,4,0,6,0,34,0,35,0\n21,0,28,0,42,0,39,0,15,0,29,0\n12,0,14,0,41,0,22,0,33,0,18,0\n32,0,43,0,2,0,46,0,17,0,24,0\n7,0,27,0,19,0,10,0,26,0,40,0\n36,0,38,0,45,0,31,0,13,0,5,0\n29,0,30,0,43,0,16,0,18,0,8,0\n10,0,7,0,2,0,47,0,27,0,35,0\n24,0,45,0,19,0,20,0,4,0,15,0\n34,0,25,0,44,0,22,0,39,0,12,0\n41,0,40,0,38,0,13,0,21,0,32,0\n9,0,31,0,26,0,6,0,23,0,28,0\n46,0,5,0,33,0,37,0,11,0,42,0\n1,0,14,0,36,0,3,0,17,0,27,0\n41,0,13,0,7,0,29,0,35,0,12,0\n38,0,4,0,37,0,20,0,40,0,32,0\n33,0,26,0,8,0,36,0,17,0,18,0\n19,0,25,0,28,0,2,0,1,0,16,0\n47,0,15,0,34,0,45,0,23,0,43,0\n14,0,21,0,11,0,6,0,42,0,44,0\n24,0,10,0,5,0,9,0,30,0,22,0\n3,0,39,0,7,0,46,0,31,0,8,0\n23,0,4,0,40,0,28,0,41,0,36,0\n29,0,45,0,37,0,38,0,25,0,11,0\n15,0,9,0,1,0,2,0,19,0,5,0\n46,0,21,0,20,0,3,0,22,0,13,0\n39,0,31,0,32,0,30,0,14,0,27,0\n17,0,34,0,12,0,43,0,10,0,42,0\n33,0,44,0,24,0,16,0,35,0,26,0\n47,0,18,0,39,0,6,0,19,0,36,0\n5,0,32,0,3,0,25,0,23,0,10,0\n1,0,41,0,34,0,7,0,14,0,37,0\n2,0,27,0,20,0,44,0,43,0,12,0\n6,0,15,0,33,0,30,0,13,0,38,0\n17,0,40,0,21,0,24,0,9,0,16,0\n4,0,31,0,35,0,8,0,11,0,28,0\n46,0,45,0,22,0,47,0,26,0,42,0\n18,0,7,0,6,0,29,0,20,0,23,0\n43,0,17,0,31,0,25,0,37,0,39,0\n8,0,44,0,19,0,42,0,45,0,41,0\n27,0,18,0,29,0,40,0,2,0,35,0\n36,0,16,0,22,0,3,0,38,0,15,0\n47,0,30,0,24,0,28,0,5,0,1,0\n13,0,9,0,34,0,4,0,33,0,12,0\n11,0,26,0,46,0,32,0,10,0,14,0\n44,0,7,0,36,0,21,0,2,0,25,0\n23,0,13,0,16,0,39,0,30,0,4,0\n42,0,38,0,31,0,43,0,24,0,18,0\n21,0,47,0,19,0,34,0,11,0,32,0\n14,0,20,0,9,0,35,0,46,0,41,0\n5,0,22,0,15,0,27,0,37,0,8,0\n26,0,3,0,28,0,29,0,33,0,17,0\n40,0,1,0,6,0,12,0,10,0,45,0\n19,0,22,0,38,0,31,0,7,0,30,0\n17,0,9,0,35,0,15,0,32,0,42,0\n46,0,6,0,25,0,28,0,27,0,33,0\n3,0,47,0,43,0,4,0,44,0,41,0\n36,0,37,0,24,0,13,0,29,0,14,0\n12,0,8,0,23,0,40,0,11,0,16,0\n20,0,10,0,1,0,26,0,34,0,39,0\n18,0,45,0,2,0,5,0,21,0,37,0\n16,0,47,0,12,0,41,0,31,0,24,0\n13,0,43,0,33,0,39,0,40,0,19,0\n1,0,18,0,32,0,22,0,20,0,6,0\n30,0,8,0,5,0,44,0,46,0,27,0\n26,0,4,0,45,0,38,0,2,0,14,0\n15,0,10,0,11,0,36,0,3,0,29,0\n23,0,7,0,35,0,17,0,42,0,25,0\n28,0,9,0,18,0,21,0,34,0,22,0\n"
  },
  {
    "path": "schedules/47_2.csv",
    "content": "23,0,14,0,6,0,29,0,33,0,8,0\n4,0,44,0,41,0,42,0,9,0,36,0\n38,0,39,0,16,0,18,0,3,0,35,0\n26,0,46,0,2,0,15,0,13,0,27,0\n43,0,28,0,7,0,32,0,24,0,1,0\n31,0,34,0,37,0,30,0,47,0,21,0\n45,0,40,0,5,0,22,0,12,0,11,0\n10,0,25,0,17,0,20,0,19,0,41,0\n14,0,21,0,1,0,35,0,44,0,27,0\n32,0,9,0,29,0,40,0,26,0,37,0\n19,0,47,0,5,0,36,0,16,0,43,0\n12,0,42,0,24,0,25,0,23,0,39,0\n6,0,22,0,4,0,7,0,2,0,10,0\n33,0,11,0,46,0,17,0,18,0,34,0\n8,0,30,0,15,0,38,0,20,0,45,0\n13,0,3,0,40,1,31,0,28,0,14,1\n"
  },
  {
    "path": "schedules/47_3.csv",
    "content": "42,0,30,0,41,0,46,0,16,0,4,0\n1,0,40,0,33,0,13,0,6,0,9,0\n35,0,26,0,17,0,3,0,5,0,12,0\n36,0,11,0,44,0,31,0,38,0,45,0\n15,0,14,0,47,0,37,0,25,0,32,0\n39,0,20,0,18,0,43,0,23,0,2,0\n27,0,22,0,24,0,10,0,21,0,29,0\n28,0,19,0,5,0,34,0,8,0,7,0\n32,1,38,0,4,0,3,1,33,0,43,0\n46,1,31,0,21,0,37,0,40,0,12,0\n2,0,29,0,34,0,16,0,36,0,14,0\n8,0,9,0,10,0,39,0,17,0,30,0\n42,0,26,0,23,0,47,0,44,0,24,0\n19,0,27,0,11,0,41,0,1,0,15,0\n20,0,22,0,45,0,35,0,6,0,7,0\n13,0,25,0,31,0,28,0,18,0,42,0\n46,0,38,0,8,0,26,0,14,0,27,0\n37,0,33,0,24,0,30,0,20,0,19,0\n5,0,16,0,32,0,22,0,23,0,1,0\n6,0,21,0,43,0,17,0,34,0,25,0\n13,0,39,0,3,0,44,0,29,0,15,0\n47,0,9,0,7,0,41,0,12,0,36,0\n2,0,40,0,4,0,11,0,35,0,28,0\n10,0,45,0,32,0,18,0,3,0,46,0\n"
  },
  {
    "path": "schedules/47_4.csv",
    "content": "29,0,15,0,24,0,36,0,13,0,41,0\n16,0,31,0,33,0,9,0,35,0,22,0\n32,0,46,0,10,0,7,0,27,0,34,0\n43,0,1,0,23,0,47,0,25,0,37,0\n26,0,21,0,12,0,30,0,19,0,8,0\n42,0,3,0,18,0,17,0,14,0,45,0\n5,0,44,0,38,0,20,0,28,0,40,0\n11,0,6,0,39,0,2,0,4,0,16,0\n30,0,9,0,37,0,24,0,45,0,46,0\n14,0,21,0,10,0,15,0,1,0,5,0\n18,0,41,0,27,0,35,0,38,0,39,0\n13,0,25,0,22,0,11,0,40,0,7,0\n26,0,36,0,17,0,33,0,6,0,44,0\n32,0,4,0,20,0,29,0,19,0,43,0\n3,0,34,0,31,0,2,0,12,0,23,0\n47,0,28,0,16,0,8,0,42,0,24,0\n5,1,7,0,4,0,36,1,18,0,37,0\n45,1,39,0,44,0,23,1,10,0,13,0\n35,0,25,0,2,0,46,0,28,0,19,0\n38,0,32,0,1,0,8,0,3,0,33,0\n6,0,42,0,41,0,43,0,21,0,22,0\n11,0,27,0,20,0,26,0,31,0,15,0\n40,0,9,0,29,0,47,0,17,0,12,0\n14,0,36,0,43,0,34,0,30,0,35,0\n37,0,39,0,22,0,26,0,28,0,3,0\n15,0,17,0,16,0,23,0,38,0,7,0\n40,0,46,0,8,0,41,0,14,0,4,0\n2,0,45,0,21,0,33,0,27,0,29,0\n5,0,30,0,47,0,6,0,13,0,31,0\n25,0,10,0,12,0,24,0,18,0,20,0\n19,0,34,0,9,0,44,0,1,0,42,0\n11,0,5,0,45,0,32,0,36,0,23,0\n"
  },
  {
    "path": "schedules/47_5.csv",
    "content": "40,0,39,0,35,0,21,0,38,0,6,0\n3,0,31,0,29,0,30,0,37,0,25,0\n1,0,13,0,16,0,11,0,28,0,20,0\n47,0,33,0,19,0,46,0,43,0,23,0\n34,0,42,0,7,0,22,0,17,0,9,0\n18,0,36,0,8,0,44,0,4,0,2,0\n27,0,5,0,32,0,41,0,12,0,24,0\n14,0,10,0,15,0,26,0,45,0,7,0\n4,0,37,0,1,0,19,0,42,0,39,0\n30,0,46,0,41,0,18,0,34,0,13,0\n21,0,22,0,20,0,3,0,14,0,23,0\n45,0,43,0,36,0,12,0,31,0,17,0\n5,0,6,0,9,0,11,0,26,0,47,0\n25,0,38,0,16,0,8,0,32,0,10,0\n15,0,40,0,33,0,24,0,2,0,29,0\n28,0,44,0,17,0,35,0,27,0,46,0\n18,1,5,0,3,0,43,1,10,0,1,0\n6,1,2,0,42,0,38,1,45,0,30,0\n20,1,31,0,32,0,8,0,33,0,26,0\n9,0,36,0,27,0,13,0,40,0,25,0\n28,0,24,0,47,0,34,0,14,0,39,0\n23,0,37,0,7,0,44,0,12,0,16,0\n41,0,22,0,35,0,15,0,4,0,11,0\n21,0,19,0,45,0,29,0,13,0,5,0\n37,0,17,0,14,0,40,0,18,0,32,0\n23,0,31,0,15,0,38,0,1,0,9,0\n24,0,11,0,46,0,42,0,21,0,36,0\n29,0,12,0,47,0,44,0,35,0,20,0\n30,0,10,0,39,0,22,0,33,0,27,0\n2,0,26,0,34,0,43,0,4,0,25,0\n6,0,28,0,3,0,8,0,41,0,7,0\n16,0,35,0,18,0,19,0,31,0,24,0\n39,0,20,0,25,0,15,0,46,0,5,0\n6,0,17,0,4,0,23,0,13,0,10,0\n30,0,12,0,8,0,19,0,40,0,9,0\n38,0,22,0,26,0,37,0,28,0,36,0\n41,0,43,0,14,0,16,0,29,0,42,0\n45,0,33,0,11,0,34,0,3,0,44,0\n1,0,7,0,2,0,21,0,47,0,32,0\n27,0,18,0,38,0,43,0,6,0,20,0\n"
  },
  {
    "path": "schedules/47_6.csv",
    "content": "33,0,29,0,26,0,12,0,24,0,44,0\n21,0,28,0,42,0,30,0,32,0,4,0\n27,0,1,0,37,0,10,0,41,0,25,0\n31,0,23,0,39,0,20,0,43,0,7,0\n14,0,11,0,9,0,6,0,19,0,47,0\n15,0,34,0,13,0,18,0,5,0,3,0\n35,0,36,0,40,0,38,0,17,0,16,0\n8,0,22,0,2,0,46,0,45,0,6,0\n21,0,23,0,41,0,29,0,13,0,19,0\n44,0,9,0,3,0,1,0,43,0,36,0\n40,0,30,0,2,0,39,0,15,0,14,0\n25,0,16,0,11,0,46,0,34,0,32,0\n5,0,7,0,38,0,22,0,33,0,27,0\n42,0,18,0,8,0,31,0,47,0,10,0\n45,0,28,0,24,0,17,0,12,0,37,0\n20,0,26,0,2,0,35,0,4,0,1,0\n32,0,29,0,7,0,36,0,34,0,8,0\n21,0,13,0,12,0,43,0,47,0,16,0\n15,0,26,0,45,0,25,0,38,0,19,0\n41,0,46,0,20,0,24,0,18,0,9,0\n35,0,33,0,10,0,28,0,39,0,11,0\n4,0,37,0,31,0,40,0,44,0,5,0\n27,0,42,0,3,0,14,0,23,0,22,0\n6,0,17,0,20,0,30,0,10,0,29,0\n47,0,36,0,15,0,4,0,26,0,41,0\n8,0,46,0,38,0,13,0,44,0,28,0\n43,0,19,0,40,0,33,0,32,0,42,0\n14,0,1,0,31,0,34,0,21,0,45,0\n37,0,16,0,18,0,6,0,27,0,39,0\n12,0,30,0,35,0,9,0,23,0,5,0\n3,0,24,0,17,0,25,0,2,0,7,0\n22,0,37,0,29,0,11,0,15,0,43,0\n44,0,46,0,30,0,45,0,35,0,47,0\n40,0,20,0,9,0,8,0,27,0,21,0\n12,0,5,0,36,0,42,0,2,0,11,0\n24,0,19,0,10,0,16,0,22,0,34,0\n38,0,32,0,13,0,17,0,1,0,39,0\n6,0,3,0,41,0,26,0,28,0,31,0\n14,0,4,0,25,0,33,0,23,0,18,0\n7,0,42,0,44,0,20,0,16,0,15,0\n24,0,27,0,30,0,11,0,13,0,31,0\n33,0,25,0,36,0,21,0,35,0,6,0\n34,0,47,0,38,0,37,0,2,0,23,0\n5,0,14,0,43,0,8,0,41,0,17,0\n22,0,1,0,18,0,29,0,28,0,40,0\n39,0,46,0,4,0,3,0,12,0,19,0\n45,0,7,0,10,0,32,0,26,0,9,0\n"
  },
  {
    "path": "schedules/47_7.csv",
    "content": "40,0,6,0,12,0,26,0,38,0,16,0\n13,0,17,0,27,0,39,0,21,0,23,0\n7,0,29,0,19,0,10,0,46,0,15,0\n45,0,22,0,14,0,9,0,44,0,47,0\n1,0,8,0,32,0,5,0,42,0,35,0\n28,0,11,0,20,0,24,0,36,0,30,0\n2,0,43,0,31,0,34,0,41,0,37,0\n33,0,25,0,3,0,18,0,4,0,8,0\n28,0,44,0,13,0,11,0,26,0,10,0\n36,0,22,0,32,0,31,0,17,0,37,0\n18,0,42,0,3,0,38,0,46,0,43,0\n4,0,40,0,23,0,41,0,19,0,1,0\n5,0,39,0,14,0,24,0,29,0,6,0\n35,0,30,0,47,0,2,0,7,0,12,0\n15,0,25,0,45,0,20,0,33,0,27,0\n9,0,34,0,24,0,16,0,21,0,8,0\n38,1,4,0,31,0,11,0,39,0,35,0\n36,0,47,0,10,0,43,0,6,0,33,0\n16,0,45,0,19,0,5,0,28,0,37,0\n46,0,9,0,30,0,26,0,34,0,23,0\n40,0,22,0,29,0,42,0,25,0,7,0\n15,0,41,0,32,0,13,0,14,0,12,0\n21,0,2,0,44,0,1,0,3,0,20,0\n18,0,17,0,10,0,27,0,40,0,16,0\n30,0,13,0,38,0,5,0,9,0,4,0\n25,0,24,0,41,0,1,0,46,0,47,0\n14,0,34,0,3,0,35,0,17,0,28,0\n36,0,15,0,6,0,44,0,18,0,23,0\n26,0,39,0,7,0,45,0,2,0,32,0\n8,0,20,0,12,0,43,0,27,0,22,0\n42,0,21,0,33,0,19,0,37,0,11,0\n31,0,16,0,13,0,29,0,3,0,30,0\n7,0,20,0,6,0,9,0,41,0,17,0\n11,0,47,0,43,0,15,0,27,0,5,0\n4,0,42,0,12,0,10,0,45,0,34,0\n39,0,44,0,46,0,28,0,40,0,8,0\n22,0,23,0,2,0,24,0,38,0,33,0\n14,0,31,0,26,0,25,0,21,0,19,0\n1,0,29,0,35,0,36,0,37,0,18,0\n9,0,11,0,15,0,32,0,40,0,3,0\n44,0,33,0,41,0,30,0,27,0,42,0\n34,0,19,0,6,0,1,0,22,0,13,0\n26,0,4,0,35,0,20,0,43,0,16,0\n46,0,5,0,2,0,36,0,12,0,17,0\n14,0,18,0,24,0,31,0,7,0,45,0\n23,0,10,0,37,0,39,0,8,0,25,0\n28,0,38,0,21,0,47,0,32,0,29,0\n42,0,46,0,16,0,14,0,2,0,15,0\n35,0,40,0,43,0,23,0,24,0,13,0\n19,0,39,0,47,0,20,0,18,0,30,0\n34,0,38,0,32,0,44,0,36,0,25,0\n37,0,27,0,7,0,4,0,3,0,6,0\n21,0,26,0,41,0,5,0,22,0,10,0\n28,0,12,0,1,0,33,0,9,0,31,0\n17,0,45,0,8,0,29,0,11,0,38,0\n"
  },
  {
    "path": "schedules/47_8.csv",
    "content": "11,0,23,0,26,0,28,0,35,0,3,0\n20,0,43,0,19,0,1,0,22,0,13,0\n33,0,14,0,37,0,34,0,9,0,2,0\n17,0,42,0,31,0,6,0,5,0,46,0\n24,0,41,0,8,0,21,0,18,0,39,0\n29,0,44,0,27,0,30,0,32,0,38,0\n12,0,25,0,4,0,15,0,16,0,36,0\n45,0,10,0,7,0,47,0,40,0,21,0\n33,0,18,0,29,0,31,0,43,0,26,0\n37,0,1,0,8,0,6,0,23,0,12,0\n40,0,38,0,44,0,36,0,20,0,25,0\n16,0,46,0,28,0,10,0,2,0,5,0\n45,0,11,0,19,0,27,0,17,0,34,0\n9,0,15,0,41,0,3,0,13,0,30,0\n22,0,47,0,7,0,14,0,35,0,39,0\n24,0,4,0,43,0,32,0,42,0,11,0\n19,1,6,0,16,0,26,1,18,0,15,0\n20,0,46,0,41,0,35,0,7,0,37,0\n24,0,36,0,38,0,22,0,5,0,14,0\n4,0,45,0,3,0,44,0,10,0,33,0\n25,0,34,0,47,0,8,0,31,0,32,0\n2,0,27,0,13,0,1,0,21,0,42,0\n23,0,39,0,9,0,40,0,17,0,29,0\n30,0,12,0,31,0,28,0,20,0,45,0\n34,0,3,0,38,0,46,0,21,0,43,0\n10,0,13,0,17,0,14,0,29,0,25,0\n5,0,44,0,35,0,18,0,12,0,40,0\n33,0,16,0,9,0,7,0,27,0,8,0\n15,0,6,0,32,0,22,0,23,0,2,0\n41,0,42,0,36,0,47,0,26,0,28,0\n30,0,37,0,4,0,24,0,1,0,19,0\n39,0,6,0,13,0,11,0,5,0,38,0\n20,0,35,0,16,0,34,0,29,0,42,0\n2,0,24,0,40,0,41,0,12,0,43,0\n19,0,23,0,46,0,9,0,44,0,45,0\n47,0,37,0,18,0,27,0,25,0,3,0\n8,0,26,0,30,0,10,0,22,0,11,0\n32,0,28,0,36,0,33,0,39,0,7,0\n14,0,17,0,1,0,15,0,21,0,31,0\n29,0,20,0,2,0,4,0,47,0,11,0\n28,0,30,0,40,0,16,0,37,0,13,0\n32,0,1,0,35,0,36,0,10,0,9,0\n3,0,12,0,21,0,19,0,31,0,39,0\n41,0,34,0,33,0,22,0,44,0,42,0\n7,0,23,0,17,0,4,0,18,0,38,0\n5,0,43,0,27,0,14,0,8,0,15,0\n46,0,25,0,45,0,26,0,6,0,24,0\n38,0,10,0,42,0,12,0,37,0,9,0\n14,0,31,0,11,0,44,0,41,0,16,0\n6,0,36,0,7,0,34,0,43,0,30,0\n18,0,45,0,35,0,32,0,4,0,13,0\n22,0,40,0,39,0,46,0,1,0,27,0\n2,0,26,0,3,0,17,0,8,0,20,0\n19,0,5,0,21,0,33,0,23,0,25,0\n15,0,47,0,29,0,28,0,24,0,34,0\n22,0,35,0,43,0,45,0,16,0,17,0\n8,0,18,0,2,0,19,0,36,0,30,0\n5,0,1,0,29,0,3,0,41,0,7,0\n39,0,44,0,15,0,37,0,42,0,26,0\n13,0,46,0,11,0,12,0,33,0,47,0\n23,0,27,0,10,0,24,0,31,0,20,0\n6,0,25,0,21,0,9,0,4,0,28,0\n14,0,38,0,26,0,32,0,40,0,19,0\n"
  },
  {
    "path": "schedules/47_9.csv",
    "content": "31,0,45,0,5,0,21,0,11,0,6,0\n12,0,1,0,25,0,13,0,44,0,41,0\n34,0,38,0,18,0,39,0,9,0,14,0\n7,0,46,0,36,0,4,0,16,0,26,0\n43,0,23,0,35,0,19,0,28,0,15,0\n47,0,33,0,8,0,10,0,37,0,30,0\n29,0,20,0,3,0,32,0,24,0,27,0\n40,0,42,0,2,0,17,0,22,0,35,0\n46,0,9,0,44,0,47,0,13,0,43,0\n34,0,6,0,4,0,33,0,38,0,29,0\n30,0,39,0,32,0,26,0,28,0,42,0\n14,0,41,0,25,0,24,0,21,0,40,0\n10,0,31,0,36,0,15,0,3,0,1,0\n7,0,18,0,16,0,11,0,22,0,19,0\n5,0,2,0,37,0,17,0,23,0,27,0\n12,0,8,0,35,0,20,0,45,0,39,0\n7,1,22,0,42,0,21,1,46,0,3,0\n17,0,32,0,37,0,18,1,31,0,43,0\n24,0,12,0,11,0,28,0,1,0,9,0\n30,0,15,0,27,0,40,0,33,0,45,0\n34,0,25,0,10,0,5,0,20,0,16,0\n26,0,6,0,44,0,14,0,4,0,23,0\n19,0,29,0,41,0,8,0,38,0,36,0\n47,0,16,0,24,0,2,0,13,0,33,0\n3,0,17,0,30,0,6,0,12,0,9,0\n28,0,22,0,41,0,31,0,44,0,20,0\n38,0,25,0,23,0,32,0,18,0,46,0\n11,0,35,0,39,0,4,0,27,0,36,0\n13,0,42,0,14,0,29,0,15,0,37,0\n34,0,8,0,43,0,40,0,1,0,7,0\n10,0,19,0,26,0,21,0,45,0,2,0\n47,0,4,0,18,0,5,0,12,0,15,0\n3,0,31,0,9,0,8,0,29,0,23,0\n30,0,33,0,44,0,36,0,11,0,42,0\n1,0,6,0,45,0,7,0,25,0,37,0\n34,0,24,0,28,0,46,0,10,0,22,0\n26,0,38,0,21,0,17,0,47,0,20,0\n32,0,13,0,40,0,19,0,39,0,5,0\n41,0,16,0,43,0,14,0,35,0,27,0\n2,0,26,0,12,0,31,0,34,0,29,0\n23,0,6,0,36,0,40,0,22,0,47,0\n21,0,42,0,4,0,24,0,8,0,18,0\n27,0,7,0,44,0,9,0,10,0,32,0\n20,0,37,0,41,0,15,0,11,0,2,0\n14,0,46,0,30,0,5,0,1,0,35,0\n13,0,28,0,45,0,16,0,38,0,17,0\n33,0,3,0,39,0,43,0,19,0,25,0\n40,0,10,0,11,0,46,0,29,0,12,0\n27,0,13,0,16,0,6,0,8,0,31,0\n22,0,26,0,9,0,42,0,33,0,25,0\n14,0,28,0,18,0,45,0,47,0,3,0\n2,0,20,0,19,0,1,0,30,0,4,0\n15,0,35,0,21,0,32,0,34,0,44,0\n24,0,5,0,36,0,37,0,43,0,38,0\n7,0,17,0,39,0,23,0,41,0,10,0\n47,0,27,0,11,0,34,0,19,0,42,0\n1,0,38,0,31,0,18,0,40,0,44,0\n37,0,9,0,4,0,16,0,28,0,21,0\n17,0,15,0,6,0,46,0,24,0,39,0\n7,0,23,0,33,0,14,0,20,0,12,0\n29,0,43,0,32,0,22,0,30,0,45,0\n3,0,5,0,13,0,41,0,26,0,35,0\n8,0,2,0,28,0,36,0,25,0,15,0\n10,0,43,0,20,0,6,0,42,0,18,0\n9,0,19,0,33,0,46,0,41,0,5,0\n35,0,24,0,25,0,7,0,31,0,47,0\n32,0,8,0,11,0,14,0,2,0,17,0\n16,0,1,0,29,0,39,0,23,0,21,0\n4,0,45,0,44,0,3,0,34,0,40,0\n12,0,22,0,38,0,27,0,26,0,37,0\n36,0,21,0,18,0,13,0,30,0,7,0\n"
  },
  {
    "path": "schedules/48_1.csv",
    "content": "5,0,21,0,42,0,30,0,16,0,19,0\n18,0,24,0,47,0,39,0,41,0,2,0\n28,0,20,0,26,0,27,0,9,0,10,0\n34,0,37,0,36,0,25,0,15,0,4,0\n14,0,45,0,38,0,6,0,3,0,46,0\n22,0,17,0,33,0,40,0,12,0,7,0\n11,0,35,0,48,0,32,0,31,0,23,0\n44,0,1,0,13,0,29,0,43,0,8,0\n"
  },
  {
    "path": "schedules/48_10.csv",
    "content": "2,0,3,0,4,0,37,0,38,0,26,0\n5,0,47,0,32,0,16,0,12,0,20,0\n15,0,30,0,41,0,39,0,35,0,48,0\n33,0,23,0,7,0,46,0,31,0,42,0\n22,0,6,0,1,0,14,0,45,0,17,0\n25,0,36,0,43,0,40,0,29,0,18,0\n44,0,28,0,9,0,24,0,21,0,27,0\n13,0,19,0,8,0,34,0,10,0,11,0\n17,0,22,0,42,0,15,0,20,0,26,0\n31,0,39,0,36,0,46,0,4,0,47,0\n40,0,38,0,27,0,16,0,7,0,45,0\n32,0,11,0,12,0,18,0,24,0,41,0\n14,0,37,0,25,0,21,0,34,0,48,0\n33,0,30,0,10,0,6,0,43,0,28,0\n29,0,5,0,44,0,2,0,9,0,13,0\n1,0,35,0,8,0,19,0,3,0,23,0\n11,0,27,0,20,0,38,0,22,0,4,0\n32,0,21,0,43,0,47,0,48,0,42,0\n25,0,44,0,17,0,36,0,41,0,33,0\n29,0,19,0,45,0,39,0,46,0,26,0\n9,0,1,0,37,0,30,0,13,0,40,0\n23,0,34,0,28,0,2,0,18,0,16,0\n31,0,6,0,15,0,5,0,24,0,8,0\n7,0,12,0,14,0,3,0,35,0,10,0\n33,0,32,0,48,0,38,0,1,0,19,0\n11,0,42,0,26,0,16,0,21,0,39,0\n31,0,41,0,37,0,6,0,27,0,36,0\n17,0,8,0,47,0,25,0,28,0,30,0\n18,0,7,0,46,0,9,0,14,0,15,0\n35,0,2,0,12,0,40,0,45,0,34,0\n22,0,20,0,3,0,13,0,24,0,44,0\n43,0,29,0,10,0,5,0,23,0,4,0\n47,0,9,0,26,0,11,0,8,0,15,0\n14,0,39,0,19,0,37,0,16,0,28,0\n3,0,25,0,48,0,6,0,42,0,24,0\n38,0,10,0,20,0,21,0,1,0,46,0\n18,0,5,0,34,0,44,0,33,0,31,0\n45,0,27,0,41,0,43,0,13,0,23,0\n32,0,40,0,4,0,17,0,35,0,30,0\n2,0,7,0,22,0,12,0,29,0,36,0\n25,0,24,0,39,0,14,0,5,0,38,0\n18,0,33,0,45,0,20,0,8,0,37,0\n40,0,42,0,15,0,28,0,10,0,46,0\n16,0,41,0,34,0,29,0,22,0,9,0\n31,0,21,0,2,0,17,0,32,0,3,0\n48,0,30,0,12,0,36,0,23,0,26,0\n11,0,44,0,1,0,35,0,7,0,43,0\n13,0,27,0,4,0,19,0,6,0,47,0\n33,0,24,0,22,0,39,0,2,0,40,0\n48,0,28,0,36,0,20,0,23,0,9,0\n42,0,38,0,16,0,29,0,8,0,41,0\n14,0,47,0,10,0,32,0,45,0,44,0\n18,0,19,0,21,0,6,0,7,0,4,0\n43,0,17,0,15,0,12,0,37,0,34,0\n5,0,46,0,11,0,3,0,27,0,30,0\n1,0,13,0,26,0,25,0,35,0,31,0\n40,0,7,0,44,0,4,0,48,0,8,0\n38,0,39,0,17,0,18,0,10,0,9,0\n37,0,3,0,24,0,47,0,23,0,29,0\n35,0,26,0,14,0,42,0,5,0,27,0\n2,0,46,0,34,0,6,0,11,0,41,0\n43,0,30,0,20,0,16,0,25,0,19,0\n22,0,12,0,28,0,31,0,32,0,1,0\n15,0,21,0,33,0,36,0,45,0,13,0\n29,0,48,0,24,0,27,0,17,0,10,0\n34,0,6,0,26,0,39,0,7,0,20,0\n19,0,42,0,30,0,12,0,44,0,18,0\n16,0,47,0,15,0,33,0,1,0,2,0\n31,0,38,0,13,0,43,0,11,0,14,0\n8,0,36,0,46,0,32,0,37,0,35,0\n21,0,41,0,23,0,40,0,22,0,5,0\n3,0,28,0,45,0,25,0,9,0,4,0\n20,0,2,0,29,0,14,0,30,0,31,0\n46,0,13,0,16,0,17,0,18,0,48,0\n23,0,44,0,6,0,15,0,38,0,32,0\n35,0,19,0,9,0,43,0,22,0,47,0\n5,0,37,0,45,0,7,0,11,0,28,0\n4,0,36,0,24,0,42,0,34,0,1,0\n10,0,41,0,40,0,26,0,3,0,33,0\n27,0,39,0,12,0,21,0,25,0,8,0\n"
  },
  {
    "path": "schedules/48_11.csv",
    "content": "16,0,12,0,33,0,46,0,25,0,6,0\n22,0,15,0,47,0,4,0,42,0,19,0\n41,0,44,0,24,0,28,0,7,0,26,0\n30,0,10,0,17,0,37,0,36,0,11,0\n39,0,8,0,32,0,45,0,3,0,20,0\n5,0,40,0,21,0,34,0,9,0,18,0\n27,0,2,0,35,0,38,0,14,0,48,0\n29,0,43,0,1,0,31,0,13,0,23,0\n37,0,22,0,28,0,8,0,26,0,44,0\n10,0,33,0,34,0,47,0,30,0,36,0\n25,0,9,0,24,0,18,0,45,0,39,0\n41,0,31,0,29,0,32,0,42,0,35,0\n11,0,46,0,3,0,4,0,5,0,38,0\n14,0,2,0,15,0,6,0,20,0,13,0\n1,0,12,0,40,0,16,0,27,0,19,0\n21,0,7,0,48,0,17,0,23,0,43,0\n37,0,45,0,5,0,22,0,38,0,29,0\n42,0,3,0,24,0,34,0,2,0,11,0\n8,0,16,0,15,0,30,0,39,0,31,0\n48,0,25,0,10,0,7,0,6,0,40,0\n23,0,20,0,41,0,1,0,33,0,27,0\n17,0,14,0,12,0,43,0,28,0,9,0\n19,0,35,0,18,0,44,0,46,0,13,0\n21,0,36,0,32,0,4,0,26,0,47,0\n20,0,42,0,7,0,1,0,30,0,5,0\n9,0,16,0,23,0,10,0,41,0,3,0\n17,0,19,0,11,0,14,0,45,0,34,0\n4,0,18,0,25,0,43,0,26,0,2,0\n44,0,38,0,28,0,21,0,31,0,33,0\n46,0,36,0,27,0,13,0,24,0,8,0\n39,0,40,0,47,0,22,0,35,0,6,0\n29,0,48,0,32,0,12,0,15,0,37,0\n4,0,34,0,43,0,44,0,16,0,10,0\n2,0,23,0,5,0,36,0,8,0,19,0\n31,0,22,0,9,0,11,0,20,0,25,0\n17,0,38,0,6,0,13,0,41,0,40,0\n33,0,45,0,28,0,27,0,48,0,42,0\n39,0,14,0,21,0,37,0,32,0,46,0\n7,0,3,0,1,0,29,0,47,0,18,0\n35,0,26,0,12,0,24,0,30,0,15,0\n25,0,19,0,13,0,28,0,10,0,8,0\n32,0,9,0,44,0,48,0,16,0,2,0\n46,0,38,0,40,0,20,0,36,0,43,0\n4,0,35,0,37,0,6,0,1,0,45,0\n15,0,21,0,11,0,41,0,12,0,7,0\n47,0,23,0,42,0,18,0,17,0,24,0\n22,0,34,0,30,0,27,0,29,0,39,0\n31,0,26,0,3,0,5,0,33,0,14,0\n10,0,6,0,36,0,20,0,21,0,35,0\n44,0,37,0,7,0,42,0,15,0,46,0\n1,0,48,0,13,0,11,0,39,0,22,0\n27,0,17,0,25,0,32,0,5,0,3,0\n33,0,18,0,8,0,24,0,4,0,14,0\n29,0,30,0,26,0,19,0,38,0,9,0\n28,0,12,0,31,0,23,0,40,0,34,0\n43,0,45,0,16,0,47,0,41,0,2,0\n48,0,15,0,36,0,25,0,1,0,14,0\n20,0,4,0,17,0,44,0,29,0,19,0\n30,0,27,0,6,0,3,0,18,0,23,0\n28,0,46,0,39,0,31,0,11,0,47,0\n34,0,38,0,32,0,7,0,8,0,9,0\n22,0,41,0,5,0,2,0,12,0,10,0\n13,0,42,0,45,0,26,0,21,0,16,0\n37,0,43,0,40,0,33,0,35,0,24,0\n14,0,11,0,23,0,25,0,44,0,47,0\n36,0,31,0,18,0,19,0,48,0,41,0\n26,0,1,0,15,0,34,0,46,0,21,0\n27,0,13,0,43,0,37,0,3,0,9,0\n7,0,16,0,35,0,8,0,22,0,17,0\n6,0,28,0,24,0,5,0,20,0,29,0\n45,0,32,0,2,0,40,0,30,0,33,0\n39,0,4,0,10,0,12,0,42,0,38,0\n9,0,27,0,47,0,15,0,7,0,31,0\n26,0,34,0,19,0,48,0,6,0,43,0\n37,0,33,0,20,0,16,0,18,0,11,0\n21,0,42,0,29,0,25,0,2,0,8,0\n14,0,41,0,30,0,22,0,4,0,46,0\n44,0,3,0,39,0,45,0,40,0,36,0\n35,0,5,0,13,0,32,0,12,0,23,0\n38,0,10,0,24,0,28,0,1,0,17,0\n47,0,20,0,34,0,25,0,41,0,37,0\n36,0,14,0,29,0,42,0,40,0,16,0\n5,0,7,0,19,0,33,0,13,0,39,0\n9,0,2,0,4,0,35,0,17,0,31,0\n8,0,12,0,6,0,11,0,44,0,1,0\n22,0,24,0,48,0,21,0,3,0,30,0\n45,0,26,0,46,0,23,0,27,0,10,0\n38,0,43,0,18,0,15,0,28,0,32,0\n"
  },
  {
    "path": "schedules/48_12.csv",
    "content": "32,0,1,0,16,0,44,0,21,0,30,0\n28,0,39,0,9,0,40,0,33,0,8,0\n10,0,45,0,19,0,11,0,37,0,27,0\n42,0,15,0,23,0,41,0,4,0,34,0\n46,0,12,0,18,0,22,0,48,0,47,0\n3,0,25,0,7,0,31,0,38,0,43,0\n2,0,20,0,17,0,6,0,29,0,36,0\n5,0,35,0,24,0,26,0,14,0,13,0\n4,0,30,0,27,0,34,0,22,0,28,0\n46,0,39,0,16,0,42,0,32,0,38,0\n8,0,31,0,41,0,17,0,1,0,33,0\n25,0,23,0,40,0,35,0,44,0,13,0\n24,0,47,0,37,0,21,0,29,0,12,0\n10,0,14,0,2,0,18,0,15,0,3,0\n48,0,19,0,9,0,26,0,20,0,6,0\n36,0,45,0,11,0,7,0,43,0,5,0\n13,0,34,0,46,0,38,0,41,0,33,0\n30,0,17,0,25,0,40,0,14,0,1,0\n29,0,4,0,35,0,12,0,39,0,10,0\n24,0,11,0,26,0,27,0,16,0,20,0\n9,0,2,0,31,0,47,0,19,0,44,0\n23,0,7,0,8,0,37,0,32,0,48,0\n3,0,42,0,28,0,22,0,5,0,36,0\n43,0,15,0,45,0,6,0,21,0,18,0\n30,0,10,0,33,0,31,0,47,0,25,0\n48,0,13,0,29,0,27,0,46,0,1,0\n3,0,2,0,38,0,19,0,23,0,20,0\n5,0,16,0,18,0,41,0,37,0,9,0\n36,0,24,0,43,0,8,0,15,0,39,0\n34,0,14,0,6,0,44,0,12,0,11,0\n21,0,45,0,28,0,35,0,17,0,42,0\n26,0,4,0,22,0,32,0,7,0,40,0\n27,0,3,0,36,0,47,0,39,0,1,0\n16,0,8,0,6,0,31,0,34,0,18,0\n48,0,30,0,28,0,15,0,24,0,13,0\n5,0,21,0,41,0,19,0,12,0,26,0\n35,0,11,0,38,0,40,0,4,0,2,0\n14,0,37,0,44,0,20,0,43,0,42,0\n32,0,45,0,25,0,29,0,9,0,17,0\n7,0,22,0,33,0,10,0,46,0,23,0\n6,0,1,0,12,0,38,0,19,0,28,0\n37,0,40,0,13,0,34,0,2,0,24,0\n42,0,21,0,25,0,4,0,36,0,18,0\n17,0,46,0,14,0,16,0,9,0,23,0\n3,0,47,0,29,0,48,0,8,0,44,0\n39,0,22,0,45,0,15,0,7,0,31,0\n30,0,20,0,35,0,5,0,27,0,33,0\n43,0,11,0,10,0,41,0,32,0,26,0\n36,0,38,0,34,0,21,0,48,0,14,0\n4,0,12,0,13,0,9,0,45,0,3,0\n5,0,19,0,39,0,16,0,17,0,22,0\n25,0,41,0,20,0,24,0,32,0,28,0\n40,0,18,0,11,0,46,0,31,0,35,0\n1,0,43,0,23,0,6,0,10,0,27,0\n15,0,29,0,44,0,26,0,37,0,33,0\n2,0,42,0,7,0,47,0,30,0,8,0\n38,0,24,0,48,0,35,0,45,0,41,0\n19,0,31,0,3,0,34,0,17,0,32,0\n15,0,36,0,20,0,40,0,9,0,46,0\n47,0,33,0,13,0,4,0,43,0,6,0\n26,0,44,0,1,0,42,0,18,0,30,0\n27,0,29,0,7,0,21,0,16,0,2,0\n23,0,37,0,28,0,14,0,11,0,39,0\n8,0,10,0,22,0,12,0,25,0,5,0\n48,0,43,0,17,0,19,0,30,0,40,0\n32,0,35,0,33,0,2,0,1,0,45,0\n7,0,14,0,47,0,41,0,29,0,28,0\n42,0,8,0,13,0,10,0,21,0,20,0\n22,0,3,0,12,0,11,0,15,0,16,0\n26,0,25,0,18,0,23,0,39,0,34,0\n31,0,36,0,37,0,27,0,38,0,9,0\n6,0,5,0,44,0,4,0,46,0,24,0\n17,0,8,0,12,0,20,0,11,0,13,0\n39,0,43,0,35,0,34,0,30,0,7,0\n32,0,19,0,18,0,33,0,29,0,42,0\n10,0,36,0,28,0,16,0,45,0,44,0\n41,0,27,0,14,0,40,0,6,0,3,0\n9,0,21,0,24,0,31,0,22,0,23,0\n2,0,37,0,46,0,4,0,48,0,25,0\n5,0,38,0,1,0,15,0,47,0,26,0\n41,0,13,0,19,0,36,0,44,0,39,0\n40,0,21,0,17,0,12,0,24,0,33,0\n4,0,16,0,28,0,18,0,43,0,2,0\n22,0,11,0,30,0,38,0,37,0,29,0\n6,0,31,0,48,0,14,0,5,0,42,0\n20,0,9,0,34,0,1,0,7,0,10,0\n45,0,26,0,23,0,8,0,3,0,46,0\n32,0,27,0,47,0,15,0,35,0,25,0\n39,0,41,0,2,0,22,0,21,0,43,0\n11,0,33,0,9,0,10,0,42,0,48,0\n1,0,19,0,4,0,14,0,24,0,8,0\n31,0,29,0,26,0,25,0,13,0,28,0\n34,0,40,0,16,0,20,0,45,0,47,0\n46,0,15,0,6,0,35,0,3,0,37,0\n27,0,18,0,44,0,7,0,38,0,17,0\n5,0,32,0,30,0,23,0,12,0,36,0\n"
  },
  {
    "path": "schedules/48_13.csv",
    "content": "6,0,7,0,24,0,23,0,30,0,11,0\n43,0,39,0,25,0,13,0,37,0,33,0\n15,0,40,0,14,0,36,0,38,0,44,0\n34,0,22,0,41,0,8,0,31,0,47,0\n45,0,42,0,26,0,2,0,4,0,19,0\n3,0,32,0,21,0,46,0,28,0,5,0\n29,0,27,0,10,0,17,0,16,0,12,0\n35,0,48,0,20,0,1,0,18,0,9,0\n37,0,4,0,43,0,15,0,24,0,30,0\n23,0,45,0,46,0,42,0,22,0,8,0\n21,0,5,0,25,0,36,0,10,0,26,0\n17,0,11,0,33,0,19,0,16,0,14,0\n12,0,6,0,41,0,32,0,44,0,18,0\n35,0,39,0,40,0,29,0,3,0,34,0\n2,0,13,0,20,0,48,0,28,0,31,0\n47,0,1,0,38,0,27,0,9,0,7,0\n17,0,25,0,46,0,41,0,11,0,4,0\n29,0,23,0,32,0,39,0,37,0,18,0\n30,0,34,0,8,0,20,0,44,0,33,0\n45,0,27,0,15,0,35,0,19,0,7,0\n2,0,1,0,36,0,38,0,24,0,12,0\n42,0,13,0,48,0,47,0,5,0,10,0\n9,0,28,0,14,0,22,0,40,0,26,0\n16,0,21,0,31,0,6,0,3,0,43,0\n7,0,18,0,46,0,24,0,17,0,36,0\n38,0,29,0,48,0,19,0,25,0,23,0\n22,0,14,0,5,0,35,0,30,0,1,0\n28,0,33,0,34,0,21,0,2,0,6,0\n16,0,10,0,3,0,42,0,9,0,41,0\n47,0,20,0,32,0,45,0,12,0,39,0\n27,0,37,0,26,0,11,0,43,0,8,0\n4,0,44,0,15,0,40,0,13,0,31,0\n30,0,6,0,38,0,41,0,2,0,35,0\n46,0,16,0,29,0,1,0,32,0,28,0\n22,0,21,0,12,0,37,0,20,0,23,0\n48,0,27,0,25,0,5,0,15,0,3,0\n42,0,44,0,24,0,11,0,39,0,26,0\n18,0,47,0,19,0,31,0,14,0,4,0\n9,0,33,0,8,0,36,0,13,0,7,0\n17,0,45,0,43,0,10,0,40,0,34,0\n30,0,20,0,25,0,15,0,26,0,35,0\n4,0,48,0,21,0,22,0,38,0,39,0\n5,0,13,0,19,0,46,0,37,0,6,0\n34,0,9,0,32,0,42,0,17,0,14,0\n33,0,23,0,24,0,3,0,45,0,8,0\n7,0,31,0,10,0,2,0,44,0,29,0\n11,0,27,0,47,0,12,0,28,0,40,0\n18,0,36,0,41,0,43,0,1,0,16,0\n35,0,13,0,8,0,17,0,21,0,19,0\n26,0,46,0,9,0,39,0,10,0,6,0\n44,0,12,0,3,0,45,0,48,0,5,0\n38,0,4,0,20,0,32,0,14,0,43,0\n30,0,2,0,22,0,23,0,16,0,27,0\n36,0,31,0,34,0,11,0,1,0,25,0\n15,0,29,0,28,0,33,0,18,0,42,0\n7,0,40,0,47,0,24,0,37,0,41,0\n2,0,16,0,38,0,20,0,46,0,39,0\n19,0,11,0,32,0,13,0,9,0,30,0\n35,0,25,0,44,0,27,0,8,0,28,0\n5,0,4,0,18,0,21,0,34,0,7,0\n45,0,6,0,14,0,29,0,47,0,43,0\n26,0,41,0,31,0,15,0,12,0,33,0\n24,0,1,0,40,0,23,0,42,0,10,0\n17,0,22,0,37,0,3,0,36,0,48,0\n39,0,7,0,4,0,6,0,25,0,28,0\n14,0,12,0,11,0,46,0,2,0,8,0\n40,0,41,0,5,0,29,0,20,0,19,0\n38,0,31,0,37,0,35,0,18,0,45,0\n23,0,9,0,22,0,43,0,44,0,21,0\n10,0,32,0,48,0,36,0,33,0,27,0\n1,0,3,0,17,0,42,0,47,0,30,0\n16,0,13,0,15,0,26,0,34,0,24,0\n44,0,7,0,28,0,20,0,43,0,31,0\n27,0,22,0,18,0,10,0,46,0,11,0\n6,0,1,0,42,0,25,0,45,0,37,0\n35,0,16,0,33,0,4,0,32,0,40,0\n2,0,34,0,12,0,9,0,19,0,3,0\n36,0,47,0,15,0,30,0,21,0,29,0\n24,0,39,0,8,0,38,0,5,0,17,0\n26,0,13,0,14,0,48,0,41,0,23,0\n35,0,32,0,37,0,34,0,46,0,44,0\n6,0,19,0,15,0,22,0,33,0,1,0\n36,0,8,0,4,0,10,0,43,0,2,0\n23,0,31,0,5,0,27,0,41,0,17,0\n16,0,24,0,25,0,47,0,21,0,14,0\n18,0,29,0,26,0,38,0,3,0,13,0\n42,0,11,0,40,0,12,0,7,0,20,0\n45,0,30,0,28,0,9,0,39,0,48,0\n2,0,17,0,32,0,22,0,15,0,25,0\n19,0,33,0,46,0,47,0,23,0,44,0\n13,0,18,0,43,0,26,0,5,0,12,0\n8,0,1,0,7,0,40,0,16,0,48,0\n30,0,41,0,39,0,45,0,36,0,21,0\n20,0,3,0,42,0,4,0,27,0,6,0\n28,0,10,0,37,0,38,0,34,0,14,0\n11,0,9,0,24,0,35,0,29,0,31,0\n17,0,40,0,44,0,18,0,2,0,25,0\n3,0,26,0,47,0,32,0,22,0,7,0\n21,0,39,0,13,0,14,0,27,0,1,0\n12,0,23,0,36,0,4,0,35,0,34,0\n24,0,19,0,10,0,41,0,20,0,28,0\n48,0,43,0,30,0,42,0,46,0,31,0\n29,0,6,0,9,0,37,0,15,0,8,0\n33,0,38,0,45,0,16,0,11,0,5,0\n"
  },
  {
    "path": "schedules/48_14.csv",
    "content": "32,0,21,0,15,0,6,0,47,0,33,0\n38,0,46,0,40,0,8,0,45,0,4,0\n30,0,23,0,29,0,28,0,20,0,24,0\n41,0,16,0,34,0,18,0,43,0,22,0\n11,0,39,0,26,0,36,0,27,0,3,0\n44,0,12,0,19,0,42,0,7,0,9,0\n37,0,2,0,31,0,1,0,5,0,13,0\n10,0,48,0,14,0,25,0,17,0,35,0\n45,0,41,0,47,0,32,0,29,0,11,0\n27,0,18,0,23,0,38,0,33,0,34,0\n26,0,8,0,9,0,36,0,20,0,4,0\n21,0,12,0,5,0,15,0,13,0,22,0\n30,0,46,0,14,0,2,0,48,0,44,0\n28,0,6,0,25,0,39,0,43,0,31,0\n17,0,10,0,37,0,7,0,40,0,19,0\n42,0,24,0,3,0,35,0,1,0,16,0\n22,0,36,0,34,0,29,0,2,0,33,0\n13,0,14,0,47,0,26,0,25,0,41,0\n31,0,5,0,4,0,19,0,32,0,39,0\n48,0,1,0,43,0,10,0,45,0,27,0\n6,0,7,0,44,0,40,0,35,0,20,0\n3,0,15,0,12,0,18,0,17,0,24,0\n38,0,42,0,23,0,28,0,9,0,46,0\n8,0,30,0,16,0,37,0,11,0,21,0\n34,0,6,0,20,0,27,0,47,0,40,0\n5,0,24,0,29,0,35,0,4,0,48,0\n32,0,18,0,45,0,14,0,36,0,28,0\n8,0,3,0,31,0,15,0,38,0,37,0\n12,0,42,0,2,0,10,0,41,0,30,0\n9,0,23,0,21,0,11,0,7,0,25,0\n46,0,43,0,17,0,22,0,26,0,1,0\n33,0,19,0,16,0,44,0,39,0,13,0\n15,0,4,0,41,0,42,0,27,0,30,0\n14,0,34,0,9,0,35,0,3,0,37,0\n43,0,38,0,7,0,48,0,47,0,31,0\n18,0,2,0,1,0,8,0,39,0,21,0\n11,0,36,0,44,0,17,0,22,0,28,0\n5,0,40,0,16,0,12,0,29,0,46,0\n6,0,24,0,32,0,26,0,13,0,23,0\n25,0,10,0,19,0,20,0,33,0,45,0\n48,0,28,0,42,0,47,0,15,0,34,0\n11,0,43,0,40,0,3,0,5,0,14,0\n35,0,27,0,13,0,2,0,9,0,17,0\n46,0,41,0,7,0,36,0,39,0,24,0\n8,0,19,0,6,0,16,0,25,0,38,0\n10,0,18,0,21,0,29,0,4,0,44,0\n22,0,33,0,32,0,37,0,30,0,20,0\n45,0,26,0,12,0,23,0,31,0,1,0\n14,0,40,0,42,0,16,0,9,0,39,0\n24,0,41,0,19,0,36,0,18,0,6,0\n25,0,47,0,30,0,5,0,22,0,46,0\n20,0,15,0,29,0,37,0,12,0,13,0\n43,0,23,0,3,0,2,0,10,0,32,0\n21,0,48,0,33,0,17,0,31,0,26,0\n38,0,45,0,11,0,34,0,35,0,44,0\n4,0,27,0,28,0,8,0,7,0,1,0\n29,0,36,0,40,0,25,0,23,0,15,0\n26,0,2,0,47,0,22,0,9,0,19,0\n39,0,35,0,38,0,33,0,43,0,12,0\n8,0,44,0,17,0,32,0,30,0,5,0\n27,0,20,0,48,0,16,0,28,0,3,0\n34,0,37,0,18,0,6,0,46,0,10,0\n11,0,14,0,24,0,1,0,4,0,21,0\n7,0,31,0,45,0,41,0,42,0,13,0\n22,0,27,0,39,0,30,0,35,0,19,0\n28,0,26,0,43,0,12,0,40,0,10,0\n46,0,1,0,33,0,3,0,29,0,9,0\n2,0,20,0,5,0,21,0,41,0,38,0\n14,0,15,0,31,0,24,0,34,0,7,0\n17,0,45,0,13,0,23,0,8,0,36,0\n32,0,25,0,48,0,42,0,6,0,11,0\n47,0,37,0,4,0,16,0,18,0,44,0\n24,0,30,0,40,0,27,0,31,0,33,0\n35,0,15,0,9,0,43,0,41,0,8,0\n48,0,3,0,19,0,12,0,32,0,23,0\n25,0,4,0,22,0,28,0,37,0,45,0\n21,0,44,0,46,0,29,0,34,0,13,0\n6,0,2,0,39,0,10,0,11,0,47,0\n20,0,1,0,42,0,16,0,17,0,14,0\n26,0,36,0,7,0,5,0,38,0,18,0\n27,0,12,0,41,0,46,0,25,0,3,0\n34,0,40,0,39,0,48,0,8,0,13,0\n30,0,45,0,9,0,29,0,14,0,6,0\n26,0,32,0,16,0,28,0,7,0,2,0\n23,0,17,0,4,0,35,0,5,0,47,0\n15,0,11,0,1,0,18,0,20,0,19,0\n37,0,33,0,36,0,42,0,21,0,43,0\n44,0,22,0,10,0,31,0,38,0,24,0\n6,0,40,0,9,0,12,0,48,0,16,0\n35,0,32,0,28,0,18,0,46,0,15,0\n21,0,20,0,3,0,45,0,42,0,5,0\n23,0,39,0,41,0,44,0,37,0,26,0\n33,0,10,0,7,0,8,0,11,0,22,0\n30,0,31,0,13,0,47,0,36,0,1,0\n43,0,34,0,25,0,2,0,4,0,24,0\n19,0,29,0,17,0,38,0,14,0,27,0\n41,0,9,0,5,0,40,0,21,0,28,0\n35,0,36,0,31,0,10,0,20,0,16,0\n42,0,8,0,37,0,47,0,24,0,12,0\n43,0,13,0,2,0,11,0,48,0,18,0\n19,0,27,0,1,0,32,0,34,0,46,0\n25,0,29,0,45,0,17,0,7,0,39,0\n38,0,26,0,3,0,30,0,44,0,15,0\n33,0,14,0,4,0,22,0,6,0,23,0\n36,0,13,0,10,0,5,0,27,0,37,0\n46,0,2,0,11,0,31,0,29,0,42,0\n30,0,39,0,18,0,9,0,20,0,25,0\n7,0,12,0,35,0,4,0,26,0,34,0\n17,0,1,0,38,0,41,0,6,0,48,0\n15,0,16,0,24,0,23,0,44,0,45,0\n21,0,47,0,22,0,32,0,40,0,3,0\n8,0,33,0,28,0,43,0,19,0,14,0\n"
  },
  {
    "path": "schedules/48_2.csv",
    "content": "27,0,40,0,45,0,17,0,6,0,12,0\n3,0,46,0,4,0,25,0,34,0,37,0\n8,0,42,0,15,0,9,0,28,0,1,0\n48,0,44,0,23,0,35,0,2,0,43,0\n24,0,14,0,33,0,13,0,11,0,30,0\n26,0,31,0,22,0,47,0,38,0,7,0\n36,0,32,0,20,0,5,0,18,0,41,0\n21,0,16,0,10,0,19,0,29,0,39,0\n12,0,28,0,34,0,11,0,25,0,48,0\n37,0,23,0,9,0,40,0,30,0,38,0\n5,0,15,0,2,0,4,0,14,0,31,0\n33,0,39,0,43,0,6,0,41,0,26,0\n18,0,29,0,8,0,17,0,44,0,3,0\n16,0,22,0,46,0,21,0,27,0,32,0\n47,0,13,0,36,0,42,0,45,0,10,0\n7,0,1,0,35,0,20,0,19,0,24,0\n"
  },
  {
    "path": "schedules/48_3.csv",
    "content": "2,0,13,0,38,0,9,0,6,0,25,0\n23,0,41,0,44,0,10,0,36,0,12,0\n14,0,34,0,18,0,32,0,40,0,42,0\n28,0,24,0,19,0,37,0,27,0,29,0\n39,0,11,0,5,0,45,0,8,0,47,0\n30,0,33,0,1,0,31,0,4,0,43,0\n26,0,21,0,7,0,48,0,15,0,16,0\n22,0,17,0,46,0,3,0,20,0,35,0\n11,0,44,0,10,0,40,0,13,0,29,0\n37,0,36,0,18,0,5,0,2,0,1,0\n25,0,16,0,33,0,34,0,8,0,27,0\n9,0,43,0,21,0,45,0,20,0,32,0\n3,0,7,0,39,0,41,0,30,0,19,0\n48,0,31,0,23,0,46,0,38,0,28,0\n26,0,42,0,47,0,17,0,35,0,4,0\n12,0,15,0,22,0,14,0,6,0,24,0\n27,0,20,0,40,0,5,0,41,0,7,0\n8,0,32,0,29,0,46,0,2,0,30,0\n45,0,19,0,17,0,16,0,18,0,44,0\n23,0,9,0,35,0,33,0,24,0,15,0\n6,0,3,0,28,0,26,0,1,0,11,0\n37,0,10,0,25,0,14,0,31,0,47,0\n34,0,39,0,4,0,38,0,12,0,21,0\n13,0,42,0,43,0,36,0,22,0,48,0\n"
  },
  {
    "path": "schedules/48_4.csv",
    "content": "22,0,16,0,15,0,45,0,18,0,2,0\n5,0,36,0,27,0,44,0,26,0,25,0\n28,0,4,0,13,0,11,0,37,0,34,0\n6,0,12,0,1,0,3,0,14,0,24,0\n29,0,48,0,23,0,41,0,9,0,46,0\n7,0,42,0,39,0,19,0,33,0,8,0\n17,0,21,0,43,0,47,0,31,0,35,0\n30,0,10,0,32,0,40,0,20,0,38,0\n27,0,26,0,13,0,24,0,46,0,18,0\n2,0,14,0,11,0,36,0,29,0,39,0\n6,0,15,0,28,0,41,0,8,0,43,0\n44,0,9,0,31,0,3,0,40,0,16,0\n35,0,37,0,33,0,30,0,23,0,38,0\n47,0,32,0,19,0,5,0,1,0,22,0\n12,0,4,0,20,0,21,0,48,0,42,0\n7,0,34,0,45,0,17,0,25,0,10,0\n2,0,33,0,46,0,37,0,6,0,40,0\n30,0,43,0,22,0,24,0,44,0,39,0\n21,0,8,0,5,0,38,0,9,0,18,0\n29,0,3,0,7,0,20,0,47,0,13,0\n36,0,45,0,12,0,23,0,28,0,19,0\n31,0,34,0,42,0,26,0,41,0,1,0\n35,0,48,0,11,0,10,0,15,0,27,0\n17,0,14,0,16,0,4,0,25,0,32,0\n47,0,23,0,18,0,6,0,39,0,20,0\n24,0,40,0,29,0,5,0,42,0,28,0\n46,0,44,0,1,0,21,0,15,0,7,0\n17,0,3,0,19,0,11,0,26,0,30,0\n9,0,4,0,14,0,22,0,10,0,33,0\n38,0,43,0,16,0,48,0,34,0,36,0\n41,0,25,0,2,0,35,0,12,0,13,0\n8,0,37,0,45,0,27,0,32,0,31,0\n"
  },
  {
    "path": "schedules/48_5.csv",
    "content": "35,0,12,0,40,0,34,0,38,0,4,0\n13,0,25,0,15,0,29,0,47,0,20,0\n8,0,2,0,43,0,24,0,11,0,48,0\n7,0,42,0,26,0,5,0,46,0,10,0\n3,0,30,0,41,0,17,0,21,0,44,0\n32,0,27,0,22,0,31,0,45,0,9,0\n1,0,14,0,19,0,16,0,33,0,28,0\n37,0,39,0,36,0,6,0,23,0,18,0\n41,0,8,0,35,0,15,0,3,0,42,0\n32,0,46,0,48,0,47,0,21,0,34,0\n22,0,4,0,25,0,43,0,19,0,5,0\n27,0,40,0,29,0,23,0,1,0,26,0\n45,0,11,0,18,0,30,0,7,0,16,0\n20,0,36,0,28,0,39,0,17,0,2,0\n44,0,6,0,13,0,33,0,38,0,9,0\n14,0,24,0,10,0,12,0,37,0,31,0\n1,0,22,0,11,0,25,0,41,0,34,0\n39,0,4,0,27,0,8,0,30,0,47,0\n19,0,44,0,46,0,35,0,2,0,23,0\n16,0,37,0,17,0,29,0,9,0,42,0\n43,0,26,0,6,0,32,0,14,0,12,0\n36,0,45,0,5,0,3,0,13,0,24,0\n7,0,31,0,33,0,20,0,40,0,48,0\n28,0,38,0,21,0,15,0,10,0,18,0\n47,0,9,0,37,0,35,0,11,0,26,0\n4,0,45,0,17,0,1,0,46,0,6,0\n3,0,25,0,12,0,27,0,2,0,7,0\n24,0,18,0,41,0,40,0,19,0,32,0\n5,0,38,0,20,0,8,0,14,0,21,0\n39,0,15,0,48,0,16,0,22,0,44,0\n30,0,43,0,33,0,36,0,10,0,29,0\n31,0,34,0,23,0,13,0,28,0,42,0\n38,0,1,0,2,0,37,0,5,0,32,0\n20,0,9,0,3,0,46,0,4,0,18,0\n8,0,6,0,10,0,16,0,25,0,40,0\n42,0,14,0,44,0,11,0,27,0,36,0\n33,0,24,0,23,0,22,0,47,0,17,0\n12,0,29,0,28,0,45,0,48,0,41,0\n34,0,15,0,30,0,26,0,19,0,31,0\n35,0,7,0,21,0,13,0,43,0,39,0\n"
  },
  {
    "path": "schedules/48_6.csv",
    "content": "25,0,8,0,24,0,40,0,3,0,7,0\n10,0,44,0,41,0,31,0,4,0,46,0\n43,0,21,0,28,0,47,0,2,0,48,0\n42,0,11,0,1,0,9,0,34,0,37,0\n33,0,6,0,39,0,17,0,32,0,23,0\n27,0,35,0,12,0,22,0,20,0,26,0\n15,0,14,0,16,0,38,0,13,0,45,0\n36,0,18,0,30,0,29,0,19,0,5,0\n17,0,34,0,47,0,10,0,9,0,25,0\n11,0,40,0,44,0,33,0,21,0,27,0\n22,0,3,0,39,0,28,0,16,0,38,0\n37,0,31,0,43,0,14,0,35,0,6,0\n19,0,4,0,30,0,8,0,15,0,32,0\n23,0,5,0,26,0,7,0,46,0,48,0\n29,0,36,0,13,0,42,0,12,0,41,0\n18,0,45,0,20,0,1,0,2,0,24,0\n17,0,27,0,11,0,43,0,4,0,16,0\n35,0,32,0,5,0,8,0,38,0,44,0\n40,0,47,0,22,0,41,0,23,0,14,0\n45,0,28,0,34,0,31,0,29,0,26,0\n25,0,46,0,2,0,30,0,13,0,1,0\n39,0,20,0,15,0,37,0,7,0,36,0\n48,0,19,0,6,0,42,0,24,0,10,0\n21,0,9,0,3,0,18,0,33,0,12,0\n41,0,43,0,32,0,25,0,26,0,16,0\n8,0,28,0,23,0,37,0,27,0,13,0\n31,0,5,0,40,0,2,0,42,0,17,0\n48,0,18,0,44,0,34,0,22,0,15,0\n35,0,9,0,46,0,7,0,19,0,45,0\n47,0,20,0,3,0,29,0,6,0,11,0\n12,0,21,0,14,0,39,0,10,0,30,0\n36,0,24,0,33,0,38,0,1,0,4,0\n23,0,16,0,42,0,25,0,18,0,35,0\n48,0,13,0,22,0,31,0,32,0,11,0\n14,0,28,0,17,0,20,0,8,0,46,0\n10,0,2,0,27,0,3,0,36,0,15,0\n30,0,26,0,38,0,9,0,40,0,6,0\n43,0,29,0,7,0,1,0,44,0,33,0\n24,0,41,0,19,0,21,0,34,0,39,0\n12,0,4,0,45,0,5,0,47,0,37,0\n9,0,31,0,14,0,27,0,36,0,32,0\n38,0,7,0,18,0,11,0,28,0,10,0\n3,0,1,0,41,0,30,0,35,0,48,0\n15,0,37,0,29,0,17,0,46,0,24,0\n22,0,6,0,25,0,5,0,21,0,45,0\n40,0,34,0,4,0,43,0,13,0,20,0\n16,0,2,0,19,0,44,0,12,0,23,0\n33,0,8,0,47,0,42,0,39,0,26,0\n"
  },
  {
    "path": "schedules/48_7.csv",
    "content": "29,0,47,0,33,0,22,0,38,0,43,0\n13,0,12,0,3,0,11,0,42,0,48,0\n45,0,14,0,9,0,4,0,40,0,34,0\n6,0,15,0,18,0,41,0,20,0,44,0\n1,0,8,0,46,0,36,0,28,0,23,0\n37,0,10,0,32,0,25,0,27,0,19,0\n39,0,26,0,30,0,7,0,21,0,16,0\n35,0,2,0,5,0,24,0,17,0,31,0\n23,0,12,0,1,0,40,0,33,0,41,0\n19,0,48,0,8,0,18,0,14,0,38,0\n6,0,11,0,25,0,9,0,28,0,26,0\n36,0,3,0,24,0,34,0,31,0,44,0\n29,0,27,0,21,0,5,0,42,0,7,0\n10,0,22,0,30,0,17,0,37,0,15,0\n16,0,32,0,35,0,45,0,46,0,43,0\n4,0,47,0,39,0,2,0,13,0,20,0\n24,0,1,0,40,0,29,0,48,0,25,0\n23,0,17,0,30,0,12,0,6,0,19,0\n41,0,38,0,7,0,10,0,11,0,5,0\n42,0,26,0,20,0,34,0,35,0,22,0\n33,0,36,0,27,0,13,0,16,0,14,0\n18,0,46,0,9,0,31,0,39,0,37,0\n2,0,15,0,47,0,3,0,8,0,45,0\n28,0,44,0,21,0,32,0,43,0,4,0\n19,0,10,0,40,0,35,0,11,0,36,0\n34,0,9,0,7,0,13,0,33,0,17,0\n24,0,15,0,12,0,18,0,16,0,47,0\n22,0,3,0,23,0,39,0,28,0,27,0\n29,0,8,0,4,0,32,0,26,0,41,0\n25,0,20,0,31,0,45,0,38,0,21,0\n48,0,30,0,14,0,46,0,44,0,5,0\n43,0,37,0,2,0,42,0,6,0,1,0\n7,0,11,0,23,0,35,0,4,0,15,0\n13,0,18,0,45,0,29,0,10,0,28,0\n22,0,16,0,8,0,21,0,40,0,31,0\n32,0,20,0,36,0,37,0,5,0,12,0\n47,0,27,0,34,0,6,0,46,0,48,0\n43,0,33,0,19,0,26,0,2,0,3,0\n24,0,38,0,42,0,30,0,9,0,1,0\n17,0,25,0,41,0,39,0,14,0,44,0\n37,0,18,0,11,0,34,0,21,0,23,0\n13,0,6,0,5,0,45,0,22,0,19,0\n40,0,43,0,28,0,24,0,7,0,20,0\n42,0,39,0,32,0,33,0,48,0,15,0\n29,0,2,0,41,0,30,0,36,0,25,0\n35,0,12,0,44,0,9,0,8,0,27,0\n4,0,17,0,38,0,16,0,46,0,3,0\n26,0,47,0,31,0,14,0,10,0,1,0\n33,0,45,0,32,0,24,0,11,0,30,0\n34,0,5,0,43,0,39,0,15,0,8,0\n7,0,46,0,22,0,12,0,25,0,2,0\n21,0,35,0,14,0,29,0,3,0,6,0\n28,0,42,0,31,0,19,0,41,0,47,0\n1,0,36,0,17,0,27,0,4,0,18,0\n16,0,20,0,48,0,10,0,23,0,9,0\n13,0,26,0,44,0,37,0,38,0,40,0\n"
  },
  {
    "path": "schedules/48_8.csv",
    "content": "31,0,27,0,33,0,36,0,8,0,45,0\n18,0,35,0,21,0,12,0,30,0,7,0\n13,0,38,0,3,0,46,0,26,0,11,0\n39,0,24,0,23,0,22,0,17,0,9,0\n48,0,16,0,32,0,40,0,37,0,14,0\n1,0,29,0,25,0,10,0,34,0,43,0\n47,0,44,0,5,0,2,0,4,0,42,0\n6,0,28,0,20,0,41,0,19,0,15,0\n39,0,18,0,30,0,16,0,13,0,45,0\n23,0,11,0,25,0,31,0,26,0,7,0\n44,0,29,0,42,0,22,0,48,0,38,0\n15,0,34,0,5,0,47,0,24,0,27,0\n3,0,41,0,6,0,36,0,2,0,32,0\n1,0,35,0,40,0,8,0,19,0,9,0\n20,0,14,0,21,0,10,0,17,0,4,0\n33,0,46,0,12,0,37,0,28,0,43,0\n15,0,7,0,16,0,34,0,32,0,42,0\n23,0,6,0,35,0,13,0,44,0,27,0\n41,0,24,0,29,0,31,0,30,0,14,0\n5,0,3,0,9,0,48,0,33,0,25,0\n26,0,10,0,36,0,47,0,22,0,18,0\n8,0,21,0,4,0,2,0,11,0,28,0\n1,0,46,0,39,0,40,0,12,0,20,0\n43,0,17,0,38,0,19,0,37,0,45,0\n18,0,16,0,24,0,25,0,41,0,35,0\n28,0,26,0,8,0,6,0,34,0,48,0\n32,0,27,0,22,0,13,0,1,0,21,0\n14,0,19,0,17,0,42,0,12,0,11,0\n47,0,7,0,33,0,46,0,20,0,30,0\n10,0,5,0,2,0,45,0,40,0,23,0\n9,0,4,0,38,0,43,0,36,0,15,0\n3,0,44,0,37,0,39,0,31,0,29,0\n27,0,30,0,25,0,48,0,17,0,28,0\n32,0,10,0,8,0,46,0,42,0,24,0\n9,0,45,0,43,0,6,0,22,0,14,0\n40,0,44,0,34,0,11,0,15,0,18,0\n41,0,39,0,37,0,5,0,21,0,7,0\n2,0,20,0,31,0,38,0,35,0,12,0\n36,0,47,0,3,0,1,0,23,0,16,0\n19,0,13,0,26,0,4,0,33,0,29,0\n5,0,11,0,37,0,22,0,15,0,30,0\n39,0,48,0,43,0,35,0,24,0,32,0\n23,0,12,0,41,0,8,0,38,0,34,0\n4,0,40,0,7,0,3,0,29,0,45,0\n13,0,28,0,31,0,10,0,47,0,9,0\n21,0,36,0,46,0,44,0,25,0,14,0\n42,0,17,0,18,0,6,0,33,0,1,0\n16,0,19,0,20,0,27,0,26,0,2,0\n11,0,48,0,45,0,41,0,47,0,32,0\n15,0,8,0,14,0,13,0,25,0,39,0\n33,0,21,0,24,0,6,0,40,0,38,0\n12,0,19,0,27,0,44,0,10,0,7,0\n43,0,42,0,20,0,18,0,3,0,23,0\n2,0,30,0,37,0,1,0,9,0,26,0\n4,0,22,0,31,0,16,0,34,0,46,0\n29,0,36,0,28,0,17,0,35,0,5,0\n27,0,40,0,42,0,41,0,43,0,13,0\n10,0,30,0,38,0,3,0,39,0,8,0\n37,0,25,0,12,0,6,0,4,0,47,0\n33,0,22,0,34,0,2,0,35,0,14,0\n45,0,7,0,28,0,24,0,1,0,44,0\n32,0,31,0,17,0,5,0,26,0,18,0\n15,0,46,0,48,0,19,0,23,0,21,0\n16,0,9,0,36,0,11,0,20,0,29,0\n"
  },
  {
    "path": "schedules/48_9.csv",
    "content": "15,0,7,0,5,0,21,0,9,0,30,0\n47,0,12,0,16,0,36,0,23,0,39,0\n14,0,24,0,11,0,10,0,33,0,48,0\n19,0,17,0,4,0,1,0,37,0,3,0\n25,0,46,0,31,0,8,0,18,0,2,0\n41,0,34,0,45,0,22,0,38,0,35,0\n6,0,13,0,43,0,29,0,40,0,27,0\n32,0,44,0,42,0,26,0,28,0,20,0\n33,0,37,0,2,0,47,0,21,0,3,0\n14,0,7,0,9,0,46,0,23,0,19,0\n38,0,48,0,18,0,39,0,27,0,35,0\n5,0,22,0,17,0,36,0,42,0,31,0\n24,0,26,0,10,0,4,0,6,0,45,0\n13,0,40,0,1,0,44,0,8,0,34,0\n15,0,29,0,25,0,41,0,32,0,16,0\n11,0,20,0,30,0,12,0,43,0,28,0\n22,0,27,0,37,0,14,0,10,0,46,0\n33,0,36,0,44,0,4,0,35,0,18,0\n38,0,45,0,24,0,3,0,7,0,32,0\n23,0,5,0,42,0,2,0,41,0,29,0\n16,0,21,0,17,0,34,0,28,0,13,0\n12,0,11,0,31,0,47,0,19,0,40,0\n8,0,26,0,48,0,20,0,15,0,43,0\n6,0,39,0,30,0,9,0,1,0,25,0\n33,0,14,0,34,0,41,0,36,0,27,0\n16,0,38,0,5,0,17,0,11,0,46,0\n28,0,44,0,15,0,2,0,24,0,22,0\n39,0,32,0,31,0,43,0,4,0,7,0\n6,0,23,0,1,0,21,0,20,0,45,0\n10,0,9,0,3,0,35,0,42,0,40,0\n13,0,19,0,48,0,26,0,25,0,47,0\n18,0,29,0,37,0,8,0,30,0,12,0\n34,0,46,0,6,0,39,0,33,0,15,0\n42,0,20,0,2,0,7,0,16,0,35,0\n28,0,4,0,3,0,13,0,5,0,31,0\n26,0,40,0,45,0,29,0,30,0,36,0\n19,0,8,0,27,0,41,0,24,0,23,0\n22,0,1,0,32,0,48,0,11,0,37,0\n14,0,21,0,44,0,12,0,38,0,25,0\n10,0,47,0,18,0,17,0,43,0,9,0\n45,0,8,0,39,0,33,0,19,0,5,0\n1,0,42,0,16,0,32,0,27,0,24,0\n37,0,12,0,23,0,35,0,15,0,13,0\n28,0,47,0,36,0,25,0,10,0,7,0\n4,0,20,0,40,0,22,0,18,0,14,0\n31,0,2,0,26,0,9,0,11,0,34,0\n38,0,17,0,3,0,48,0,6,0,29,0\n46,0,41,0,21,0,43,0,30,0,44,0\n13,0,45,0,14,0,18,0,42,0,15,0\n7,0,1,0,27,0,12,0,26,0,5,0\n10,0,32,0,8,0,39,0,2,0,3,0\n40,0,25,0,43,0,17,0,24,0,33,0\n21,0,29,0,35,0,19,0,22,0,11,0\n30,0,23,0,48,0,31,0,34,0,16,0\n38,0,20,0,44,0,9,0,36,0,37,0\n41,0,6,0,28,0,46,0,4,0,47,0\n17,0,32,0,35,0,5,0,14,0,8,0\n3,0,11,0,15,0,25,0,18,0,27,0\n34,0,10,0,29,0,44,0,31,0,7,0\n30,0,24,0,46,0,20,0,13,0,47,0\n39,0,37,0,21,0,26,0,41,0,42,0\n33,0,23,0,40,0,1,0,28,0,38,0\n4,0,9,0,12,0,45,0,48,0,16,0\n22,0,43,0,36,0,6,0,19,0,2,0\n34,0,25,0,5,0,20,0,10,0,37,0\n1,0,18,0,39,0,29,0,28,0,14,0\n7,0,41,0,48,0,40,0,11,0,44,0\n33,0,6,0,9,0,32,0,13,0,12,0\n15,0,47,0,8,0,42,0,38,0,4,0\n36,0,46,0,35,0,24,0,31,0,21,0\n26,0,3,0,43,0,23,0,16,0,22,0\n2,0,27,0,17,0,19,0,30,0,45,0\n"
  },
  {
    "path": "schedules/49_1.csv",
    "content": "10,0,1,0,43,0,34,0,8,0,3,0\n32,0,16,0,33,0,20,0,17,0,9,0\n41,0,13,0,23,0,7,0,49,0,19,0\n29,0,48,0,46,0,27,0,31,0,22,0\n37,0,14,0,2,0,39,0,21,0,28,0\n44,0,15,0,11,0,24,0,42,0,5,0\n6,0,25,0,4,0,18,0,12,0,26,0\n36,0,47,0,30,0,45,0,40,0,35,0\n38,0,27,1,39,1,32,1,34,1,14,1\n"
  },
  {
    "path": "schedules/49_10.csv",
    "content": "12,0,27,0,47,0,45,0,20,0,39,0\n43,0,3,0,38,0,30,0,25,0,44,0\n46,0,15,0,48,0,9,0,13,0,41,0\n26,0,34,0,49,0,24,0,14,0,32,0\n35,0,33,0,10,0,37,0,31,0,18,0\n1,0,28,0,42,0,36,0,16,0,40,0\n29,0,11,0,21,0,19,0,2,0,5,0\n6,0,8,0,4,0,17,0,7,0,22,0\n46,0,12,0,30,0,23,0,31,0,10,0\n41,0,32,0,49,0,47,0,3,0,45,0\n34,0,14,0,5,0,39,0,15,0,28,0\n9,0,33,0,4,0,20,0,2,0,8,0\n35,0,21,0,17,0,27,0,23,0,48,0\n24,0,7,0,16,0,43,0,36,0,37,0\n6,0,44,0,38,0,29,0,42,0,26,0\n40,0,1,0,22,0,25,0,11,0,18,0\n19,0,8,0,39,0,13,0,46,0,3,0\n4,1,35,0,14,0,36,1,12,0,5,0\n16,0,2,0,23,0,26,0,47,0,41,0\n1,0,29,0,25,0,48,0,49,0,24,0\n31,0,38,0,34,0,43,0,17,0,11,0\n15,0,6,0,33,0,45,0,19,0,10,0\n40,0,21,0,30,0,44,0,37,0,9,0\n32,0,22,0,27,0,42,0,13,0,7,0\n28,0,20,0,16,0,18,0,17,0,5,0\n46,0,2,0,38,0,49,0,15,0,36,0\n29,0,41,0,33,0,30,0,11,0,26,0\n24,0,12,0,31,0,6,0,3,0,40,0\n43,0,28,0,32,0,10,0,4,0,21,0\n9,0,22,0,48,0,47,0,23,0,34,0\n18,0,1,0,39,0,7,0,35,0,8,0\n14,0,37,0,25,0,27,0,19,0,44,0\n42,0,20,0,3,0,45,0,13,0,4,0\n15,0,9,0,26,0,22,0,12,0,11,0\n48,0,47,0,7,0,28,0,33,0,38,0\n37,0,32,0,17,0,39,0,23,0,36,0\n10,0,29,0,16,0,35,0,25,0,31,0\n44,0,21,0,46,0,34,0,18,0,45,0\n40,0,27,0,13,0,49,0,2,0,43,0\n6,0,14,0,20,0,1,0,41,0,30,0\n19,0,42,0,24,0,8,0,5,0,47,0\n25,0,45,0,7,0,34,0,35,0,11,0\n40,0,32,0,29,0,46,0,33,0,17,0\n15,0,43,0,10,0,2,0,6,0,1,0\n16,0,18,0,13,0,38,0,26,0,14,0\n39,0,24,0,3,0,23,0,28,0,9,0\n31,0,36,0,22,0,21,0,20,0,19,0\n8,0,41,0,12,0,49,0,44,0,42,0\n27,0,37,0,30,0,4,0,5,0,48,0\n3,0,1,0,33,0,46,0,6,0,34,0\n19,0,35,0,26,0,40,0,43,0,20,0\n49,0,11,0,23,0,42,0,18,0,36,0\n4,0,39,0,27,0,24,0,10,0,41,0\n45,0,14,0,28,0,37,0,22,0,29,0\n17,0,13,0,47,0,21,0,12,0,25,0\n5,0,7,0,44,0,2,0,48,0,31,0\n8,0,30,0,9,0,16,0,15,0,32,0\n38,0,23,0,19,0,1,0,49,0,45,0\n28,0,36,0,13,0,27,0,6,0,11,0\n39,0,5,0,21,0,33,0,25,0,26,0\n47,0,4,0,15,0,40,0,44,0,31,0\n42,0,17,0,9,0,14,0,7,0,10,0\n37,0,8,0,34,0,20,0,29,0,38,0\n48,0,35,0,18,0,3,0,32,0,2,0\n43,0,16,0,12,0,46,0,41,0,22,0\n24,0,44,0,36,0,30,0,13,0,33,0\n23,0,25,0,15,0,4,0,20,0,7,0\n5,0,28,0,31,0,32,0,38,0,1,0\n46,0,11,0,10,0,21,0,3,0,14,0\n43,0,29,0,48,0,39,0,12,0,42,0\n40,0,19,0,34,0,41,0,16,0,27,0\n47,0,9,0,49,0,35,0,6,0,37,0\n2,0,22,0,18,0,17,0,24,0,30,0\n26,0,45,0,36,0,8,0,10,0,48,0\n23,0,40,0,7,0,29,0,13,0,5,0\n49,0,4,0,12,0,34,0,16,0,33,0\n35,0,38,0,41,0,21,0,24,0,22,0\n8,0,31,0,45,0,43,0,14,0,9,0\n3,0,26,0,17,0,15,0,27,0,1,0\n44,0,11,0,20,0,6,0,32,0,39,0\n42,0,25,0,2,0,28,0,46,0,37,0\n30,0,18,0,4,0,47,0,19,0,36,0\n"
  },
  {
    "path": "schedules/49_11.csv",
    "content": "30,0,11,0,31,0,7,0,35,0,32,0\n18,0,19,0,6,0,37,0,20,0,26,0\n27,0,23,0,39,0,49,0,34,0,9,0\n45,0,17,0,8,0,29,0,10,0,4,0\n21,0,1,0,44,0,38,0,40,0,13,0\n24,0,42,0,41,0,48,0,33,0,47,0\n14,0,25,0,46,0,36,0,3,0,12,0\n28,0,43,0,2,0,16,0,22,0,5,0\n13,0,7,0,23,0,15,0,39,0,37,0\n21,0,4,0,49,0,6,0,48,0,17,0\n46,0,20,0,38,0,24,0,30,0,45,0\n26,0,19,0,25,0,16,0,8,0,43,0\n5,0,15,0,47,0,40,0,10,0,31,0\n27,0,22,0,44,0,35,0,41,0,29,0\n2,0,14,0,9,0,42,0,18,0,1,0\n33,0,28,0,12,0,36,0,11,0,34,0\n3,0,16,0,13,0,32,0,40,0,17,0\n7,1,22,0,38,0,46,0,19,0,23,0\n5,0,10,0,24,0,9,0,35,0,4,0\n28,0,29,0,47,0,2,0,39,0,1,0\n31,0,41,0,6,0,34,0,3,0,43,0\n21,0,27,0,42,0,11,0,45,0,26,0\n48,0,18,0,14,0,25,0,33,0,32,0\n37,0,8,0,36,0,30,0,20,0,49,0\n15,0,12,0,34,0,44,0,4,0,16,0\n28,0,39,0,26,0,46,0,24,0,40,0\n35,0,47,0,3,0,48,0,38,0,19,0\n27,0,30,0,37,0,36,0,21,0,25,0\n15,0,41,0,8,0,12,0,17,0,2,0\n22,0,33,0,10,0,44,0,11,0,6,0\n42,0,7,0,5,0,1,0,13,0,20,0\n45,0,9,0,18,0,49,0,29,0,31,0\n14,0,32,0,36,0,23,0,43,0,4,0\n37,0,46,0,11,0,2,0,48,0,34,0\n3,0,5,0,38,0,15,0,42,0,26,0\n8,0,13,0,35,0,47,0,18,0,41,0\n6,0,49,0,23,0,12,0,16,0,27,0\n40,0,25,0,20,0,17,0,10,0,9,0\n14,0,19,0,29,0,21,0,30,0,28,0\n32,0,45,0,43,0,44,0,7,0,24,0\n1,0,31,0,22,0,39,0,33,0,16,0\n20,0,23,0,11,0,4,0,46,0,47,0\n30,0,13,0,9,0,3,0,28,0,49,0\n29,0,5,0,45,0,41,0,14,0,37,0\n26,0,35,0,17,0,1,0,36,0,33,0\n7,0,39,0,6,0,8,0,38,0,21,0\n42,0,10,0,34,0,19,0,12,0,43,0\n15,0,40,0,27,0,22,0,18,0,32,0\n25,0,24,0,48,0,31,0,2,0,44,0\n21,0,33,0,11,0,5,0,8,0,49,0\n26,0,38,0,10,0,28,0,13,0,37,0\n41,0,1,0,9,0,30,0,15,0,46,0\n42,0,32,0,47,0,34,0,29,0,25,0\n19,0,20,0,44,0,27,0,14,0,31,0\n2,0,36,0,23,0,40,0,6,0,45,0\n43,0,48,0,22,0,24,0,39,0,17,0\n3,0,7,0,4,0,35,0,16,0,18,0\n12,0,14,0,11,0,41,0,13,0,19,0\n46,0,10,0,2,0,21,0,31,0,32,0\n8,0,28,0,44,0,23,0,42,0,9,0\n35,0,45,0,39,0,5,0,25,0,6,0\n12,0,49,0,18,0,43,0,1,0,38,0\n15,0,3,0,48,0,20,0,36,0,29,0\n47,0,7,0,16,0,27,0,33,0,17,0\n34,0,4,0,30,0,40,0,26,0,22,0\n24,0,32,0,1,0,37,0,19,0,45,0\n43,0,21,0,35,0,20,0,28,0,15,0\n16,0,25,0,9,0,41,0,38,0,11,0\n22,0,23,0,34,0,13,0,48,0,5,0\n44,0,10,0,36,0,3,0,18,0,39,0\n4,0,31,0,17,0,37,0,42,0,6,0\n49,0,2,0,47,0,14,0,7,0,26,0\n29,0,24,0,33,0,12,0,30,0,40,0\n46,0,1,0,48,0,27,0,8,0,10,0\n38,0,18,0,17,0,32,0,11,0,5,0\n19,0,28,0,4,0,7,0,25,0,41,0\n31,0,20,0,35,0,23,0,29,0,26,0\n34,0,8,0,6,0,15,0,14,0,24,0\n30,0,36,0,39,0,2,0,16,0,42,0\n43,0,13,0,33,0,45,0,3,0,27,0\n12,0,37,0,21,0,9,0,47,0,22,0\n40,0,44,0,29,0,49,0,46,0,7,0\n20,0,6,0,32,0,1,0,28,0,25,0\n24,0,38,0,31,0,27,0,13,0,36,0\n22,0,39,0,11,0,14,0,3,0,8,0\n17,0,30,0,5,0,44,0,47,0,34,0\n16,0,23,0,41,0,18,0,10,0,21,0\n19,0,49,0,33,0,2,0,4,0,15,0\n37,0,35,0,40,0,42,0,43,0,46,0\n12,0,9,0,26,0,45,0,48,0,7,0\n"
  },
  {
    "path": "schedules/49_12.csv",
    "content": "41,0,6,0,26,0,40,0,22,0,47,0\n19,0,29,0,27,0,37,0,10,0,3,0\n21,0,17,0,48,0,39,0,9,0,30,0\n24,0,49,0,4,0,20,0,34,0,1,0\n8,0,25,0,32,0,11,0,23,0,18,0\n44,0,42,0,14,0,35,0,7,0,31,0\n12,0,28,0,38,0,36,0,16,0,2,0\n46,0,15,0,13,0,33,0,45,0,43,0\n32,0,17,0,20,0,5,0,41,0,22,0\n39,0,11,0,31,0,18,0,1,0,25,0\n19,0,42,0,28,0,9,0,47,0,44,0\n38,0,6,0,16,0,7,0,36,0,8,0\n2,0,24,0,48,0,34,0,14,0,13,0\n40,0,5,0,35,0,23,0,12,0,46,0\n30,0,37,0,4,0,26,0,3,0,43,0\n15,0,27,0,33,0,10,0,49,0,29,0\n45,0,20,0,7,0,21,0,1,0,32,0\n48,0,22,0,44,0,24,0,5,0,18,0\n39,0,35,0,19,0,43,0,40,0,38,0\n23,0,3,0,9,0,4,0,16,0,46,0\n11,0,14,0,26,0,15,0,28,0,49,0\n47,0,6,0,45,0,31,0,27,0,12,0\n42,0,10,0,13,0,25,0,34,0,41,0\n36,0,21,0,30,0,33,0,2,0,37,0\n29,0,8,0,28,0,17,0,38,0,24,0\n1,0,43,0,23,0,44,0,26,0,45,0\n32,0,10,0,7,0,40,0,4,0,27,0\n49,0,37,0,12,0,25,0,13,0,9,0\n39,0,20,0,46,0,6,0,19,0,14,0\n35,0,17,0,34,0,3,0,21,0,47,0\n5,0,30,0,29,0,42,0,36,0,31,0\n18,0,48,0,41,0,33,0,16,0,8,0\n11,0,15,0,20,0,22,0,2,0,12,0\n46,0,32,0,34,0,38,0,37,0,1,0\n24,0,40,0,9,0,36,0,5,0,3,0\n23,0,42,0,26,0,39,0,6,0,33,0\n13,0,19,0,41,0,28,0,30,0,7,0\n11,0,4,0,22,0,48,0,45,0,29,0\n21,0,44,0,15,0,27,0,25,0,16,0\n35,0,47,0,14,0,10,0,18,0,8,0\n2,0,43,0,31,0,49,0,17,0,41,0\n28,0,26,0,33,0,39,0,5,0,7,0\n34,0,23,0,44,0,30,0,15,0,22,0\n48,0,27,0,10,0,11,0,46,0,37,0\n17,0,36,0,25,0,20,0,4,0,14,0\n12,0,43,0,16,0,42,0,24,0,32,0\n49,0,21,0,8,0,31,0,40,0,19,0\n38,0,3,0,45,0,18,0,13,0,6,0\n29,0,47,0,2,0,35,0,9,0,1,0\n16,0,14,0,23,0,43,0,42,0,37,0\n17,0,22,0,7,0,39,0,25,0,10,0\n46,0,28,0,36,0,45,0,21,0,31,0\n27,0,47,0,38,0,49,0,5,0,20,0\n8,0,13,0,2,0,4,0,44,0,29,0\n32,0,15,0,26,0,9,0,19,0,48,0\n40,0,3,0,34,0,12,0,1,0,33,0\n35,0,11,0,6,0,24,0,41,0,30,0\n18,0,4,0,42,0,46,0,27,0,17,0\n10,0,47,0,36,0,48,0,13,0,32,0\n34,0,8,0,31,0,20,0,22,0,26,0\n15,0,6,0,1,0,21,0,28,0,35,0\n44,0,39,0,37,0,41,0,9,0,11,0\n18,0,12,0,7,0,49,0,23,0,2,0\n5,0,25,0,33,0,45,0,19,0,24,0\n16,0,30,0,40,0,14,0,29,0,38,0\n3,0,48,0,20,0,43,0,28,0,44,0\n46,0,42,0,22,0,32,0,36,0,49,0\n39,0,13,0,45,0,35,0,2,0,27,0\n31,0,30,0,33,0,12,0,4,0,9,0\n29,0,6,0,43,0,5,0,11,0,34,0\n21,0,23,0,38,0,41,0,10,0,14,0\n1,0,26,0,19,0,17,0,18,0,16,0\n24,0,37,0,7,0,47,0,15,0,8,0\n25,0,40,0,49,0,3,0,44,0,30,0\n14,0,39,0,21,0,12,0,29,0,32,0\n41,0,1,0,36,0,34,0,19,0,10,0\n9,0,27,0,43,0,8,0,38,0,22,0\n5,0,16,0,28,0,35,0,4,0,25,0\n33,0,46,0,3,0,47,0,7,0,11,0\n17,0,31,0,13,0,23,0,24,0,15,0\n2,0,45,0,42,0,26,0,48,0,40,0\n37,0,18,0,29,0,6,0,20,0,44,0\n36,0,22,0,35,0,19,0,21,0,33,0\n31,0,10,0,28,0,30,0,43,0,32,0\n4,0,3,0,15,0,42,0,47,0,39,0\n17,0,40,0,11,0,16,0,20,0,13,0\n26,0,24,0,25,0,2,0,38,0,46,0\n9,0,7,0,34,0,14,0,45,0,18,0\n27,0,1,0,49,0,48,0,23,0,6,0\n37,0,41,0,8,0,12,0,5,0,15,0\n38,0,19,0,4,0,21,0,11,0,42,0\n16,0,9,0,45,0,10,0,30,0,20,0\n33,0,44,0,32,0,17,0,2,0,6,0\n34,0,36,0,24,0,27,0,39,0,23,0\n41,0,29,0,35,0,26,0,49,0,46,0\n22,0,18,0,31,0,28,0,37,0,40,0\n25,0,12,0,47,0,43,0,7,0,48,0\n5,0,8,0,14,0,3,0,1,0,13,0\n"
  },
  {
    "path": "schedules/49_13.csv",
    "content": "21,0,39,0,7,0,46,0,11,0,28,0\n37,0,42,0,25,0,9,0,22,0,31,0\n47,0,32,0,44,0,38,0,24,0,18,0\n17,0,43,0,33,0,40,0,45,0,2,0\n10,0,6,0,41,0,30,0,3,0,20,0\n5,0,1,0,12,0,48,0,36,0,4,0\n15,0,35,0,16,0,19,0,26,0,29,0\n34,0,27,0,8,0,49,0,13,0,14,0\n23,0,40,0,32,0,22,0,30,0,2,0\n25,0,4,0,3,0,45,0,43,0,37,0\n42,0,47,0,1,0,15,0,5,0,20,0\n31,0,28,0,13,0,46,0,41,0,29,0\n49,0,23,0,21,0,14,0,12,0,39,0\n17,0,9,0,11,0,26,0,27,0,16,0\n48,0,8,0,18,0,7,0,35,0,44,0\n36,0,38,0,33,0,24,0,6,0,19,0\n34,0,28,0,47,0,10,0,4,0,2,0\n43,1,25,0,46,0,26,1,30,0,23,0\n7,1,3,0,49,0,5,1,22,0,29,0\n31,0,44,0,12,0,19,1,13,0,17,0\n34,0,36,0,10,0,32,0,18,0,27,0\n40,0,6,0,39,0,38,0,42,0,41,0\n24,0,48,0,11,0,8,0,33,0,15,0\n20,0,35,0,9,0,21,0,16,0,37,0\n1,0,44,0,30,0,14,0,45,0,7,0\n42,0,32,0,26,0,4,0,49,0,18,0\n22,0,48,0,12,0,2,0,34,0,39,0\n38,0,13,0,5,0,28,0,29,0,9,0\n3,0,37,0,40,0,19,0,11,0,47,0\n23,0,27,0,35,0,6,0,33,0,1,0\n45,0,46,0,24,0,41,0,14,0,36,0\n15,0,10,0,25,0,8,0,21,0,17,0\n43,0,20,0,44,0,16,0,31,0,32,0\n35,0,6,0,13,0,47,0,37,0,39,0\n27,0,24,0,41,0,23,0,9,0,45,0\n4,0,5,0,17,0,3,0,46,0,8,0\n33,0,2,0,19,0,25,0,49,0,28,0\n18,0,16,0,22,0,36,0,7,0,1,0\n38,0,14,0,43,0,34,0,42,0,15,0\n31,0,26,0,40,0,21,0,12,0,11,0\n48,0,30,0,29,0,20,0,10,0,46,0\n33,0,39,0,4,0,9,0,44,0,37,0\n16,0,2,0,6,0,7,0,18,0,15,0\n8,0,47,0,38,0,32,0,45,0,12,0\n3,0,21,0,10,0,24,0,23,0,13,0\n43,0,29,0,11,0,1,0,22,0,14,0\n27,0,28,0,40,0,35,0,25,0,5,0\n30,0,41,0,17,0,19,0,48,0,42,0\n31,0,36,0,20,0,34,0,26,0,49,0\n39,0,29,0,15,0,12,0,33,0,18,0\n23,0,25,0,38,0,1,0,3,0,16,0\n4,0,30,0,19,0,48,0,13,0,27,0\n9,0,2,0,47,0,14,0,46,0,31,0\n21,0,43,0,41,0,5,0,6,0,36,0\n28,0,45,0,17,0,7,0,37,0,32,0\n24,0,20,0,34,0,35,0,40,0,11,0\n26,0,22,0,44,0,8,0,42,0,10,0\n48,0,21,0,1,0,49,0,47,0,43,0\n28,0,14,0,19,0,18,0,3,0,17,0\n34,0,13,0,11,0,32,0,25,0,6,0\n30,0,12,0,42,0,37,0,2,0,24,0\n7,0,16,0,8,0,20,0,23,0,39,0\n36,0,44,0,45,0,9,0,15,0,40,0\n49,0,10,0,35,0,31,0,41,0,5,0\n46,0,38,0,26,0,27,0,33,0,22,0\n4,0,6,0,7,0,29,0,24,0,12,0\n11,0,39,0,18,0,9,0,13,0,30,0\n32,0,15,0,3,0,31,0,48,0,25,0\n21,0,34,0,22,0,44,0,19,0,41,0\n46,0,40,0,36,0,8,0,1,0,37,0\n4,0,26,0,28,0,16,0,42,0,23,0\n5,0,2,0,49,0,45,0,10,0,38,0\n20,0,17,0,14,0,35,0,47,0,33,0\n27,0,29,0,37,0,43,0,32,0,24,0\n16,0,9,0,46,0,12,0,3,0,34,0\n5,0,48,0,10,0,25,0,45,0,11,0\n35,0,8,0,31,0,6,0,38,0,30,0\n18,0,2,0,14,0,21,0,20,0,4,0\n36,0,29,0,49,0,23,0,44,0,17,0\n13,0,7,0,43,0,42,0,33,0,40,0\n28,0,41,0,22,0,15,0,47,0,27,0\n1,0,19,0,45,0,26,0,39,0,3,0\n20,0,18,0,6,0,24,0,25,0,17,0\n48,0,14,0,16,0,10,0,13,0,40,0\n43,0,36,0,12,0,35,0,42,0,28,0\n7,0,38,0,27,0,26,0,47,0,21,0\n32,0,2,0,1,0,9,0,39,0,19,0\n37,0,11,0,41,0,29,0,44,0,8,0\n23,0,33,0,5,0,31,0,34,0,30,0\n15,0,22,0,49,0,4,0,46,0,35,0\n10,0,24,0,26,0,1,0,39,0,28,0\n42,0,44,0,2,0,27,0,3,0,11,0\n32,0,29,0,17,0,5,0,21,0,40,0\n25,0,7,0,41,0,4,0,12,0,38,0\n18,0,45,0,31,0,20,0,13,0,22,0\n30,0,33,0,14,0,47,0,36,0,16,0\n23,0,19,0,34,0,46,0,15,0,37,0\n43,0,48,0,9,0,6,0,49,0,8,0\n39,0,22,0,24,0,17,0,31,0,27,0\n11,0,33,0,16,0,32,0,41,0,4,0\n13,0,2,0,3,0,26,0,35,0,36,0\n12,0,15,0,19,0,43,0,10,0,30,0\n8,0,14,0,9,0,28,0,7,0,5,0\n6,0,47,0,46,0,25,0,44,0,40,0\n37,0,18,0,23,0,38,0,48,0,49,0\n21,0,45,0,42,0,34,0,1,0,29,0\n20,0,26,0,7,0,43,0,5,0,19,0\n"
  },
  {
    "path": "schedules/49_14.csv",
    "content": "4,0,7,0,3,0,22,0,2,0,24,0\n34,0,45,0,8,0,42,0,17,0,30,0\n1,0,23,0,16,0,48,0,25,0,11,0\n36,0,15,0,49,0,37,0,39,0,14,0\n6,0,26,0,21,0,9,0,33,0,10,0\n40,0,32,0,29,0,19,0,43,0,35,0\n12,0,44,0,18,0,20,0,38,0,46,0\n27,0,47,0,13,0,28,0,41,0,31,0\n5,0,9,0,21,0,34,0,36,0,30,0\n37,0,8,0,26,0,24,0,16,0,25,0\n44,0,14,0,3,0,19,0,11,0,7,0\n12,0,33,0,48,0,32,0,31,0,39,0\n15,0,13,0,2,0,45,0,47,0,18,0\n28,0,1,0,17,0,49,0,10,0,38,0\n22,0,42,0,35,0,27,0,23,0,5,0\n6,0,29,0,41,0,20,0,4,0,43,0\n40,0,21,0,45,0,46,0,44,0,16,0\n3,1,38,0,15,0,9,1,37,0,31,0\n17,1,10,0,22,0,13,1,1,0,30,0\n4,0,12,0,11,0,14,0,36,0,35,0\n43,0,27,0,42,0,48,0,47,0,5,0\n8,0,25,0,41,0,6,0,2,0,32,0\n7,0,29,0,24,0,23,0,34,0,33,0\n49,0,28,0,46,0,19,0,26,0,40,0\n20,0,18,0,22,0,39,0,43,0,9,0\n35,0,32,0,4,0,44,0,10,0,42,0\n48,0,14,0,38,0,3,0,6,0,8,0\n2,0,46,0,34,0,23,0,11,0,37,0\n45,0,28,0,13,0,36,0,16,0,19,0\n30,0,12,0,31,0,39,0,25,0,17,0\n40,0,24,0,27,0,33,0,1,0,5,0\n7,0,41,0,18,0,20,0,15,0,26,0\n47,0,29,0,23,0,49,0,21,0,13,0\n12,0,43,0,38,0,4,0,6,0,45,0\n44,0,40,0,31,0,2,0,10,0,14,0\n35,0,28,0,7,0,19,0,9,0,18,0\n42,0,32,0,49,0,24,0,26,0,30,0\n21,0,1,0,41,0,8,0,36,0,22,0\n17,0,5,0,11,0,48,0,29,0,15,0\n46,0,47,0,33,0,37,0,25,0,3,0\n27,0,39,0,20,0,16,0,34,0,26,0\n9,0,45,0,23,0,32,0,14,0,41,0\n43,0,5,0,24,0,36,0,11,0,38,0\n46,0,10,0,30,0,7,0,12,0,47,0\n39,0,1,0,2,0,13,0,35,0,6,0\n48,0,49,0,3,0,44,0,28,0,29,0\n25,0,20,0,40,0,22,0,31,0,34,0\n19,0,4,0,21,0,15,0,27,0,17,0\n42,0,18,0,8,0,16,0,37,0,33,0\n47,0,11,0,30,0,41,0,44,0,38,0\n10,0,26,0,48,0,5,0,3,0,12,0\n22,0,29,0,14,0,28,0,36,0,32,0\n20,0,34,0,19,0,4,0,1,0,42,0\n25,0,46,0,21,0,45,0,15,0,35,0\n24,0,9,0,6,0,31,0,18,0,27,0\n13,0,16,0,43,0,8,0,33,0,2,0\n37,0,17,0,40,0,7,0,39,0,23,0\n49,0,47,0,34,0,35,0,20,0,41,0\n19,0,25,0,27,0,10,0,18,0,29,0\n31,0,36,0,43,0,3,0,30,0,16,0\n46,0,6,0,5,0,44,0,17,0,8,0\n45,0,32,0,1,0,4,0,37,0,49,0\n40,0,38,0,9,0,7,0,48,0,13,0\n33,0,24,0,39,0,21,0,28,0,14,0\n11,0,2,0,42,0,15,0,22,0,12,0\n23,0,17,0,36,0,26,0,35,0,3,0\n1,0,31,0,10,0,43,0,29,0,46,0\n14,0,6,0,30,0,37,0,5,0,34,0\n41,0,16,0,4,0,48,0,18,0,40,0\n26,0,22,0,33,0,44,0,21,0,47,0\n32,0,13,0,25,0,7,0,38,0,27,0\n49,0,8,0,19,0,9,0,12,0,2,0\n39,0,11,0,28,0,20,0,45,0,42,0\n24,0,23,0,35,0,15,0,6,0,16,0\n47,0,14,0,26,0,43,0,1,0,48,0\n37,0,18,0,32,0,13,0,17,0,34,0\n39,0,38,0,45,0,22,0,41,0,19,0\n36,0,20,0,3,0,8,0,46,0,27,0\n23,0,30,0,2,0,28,0,4,0,33,0\n5,0,31,0,25,0,24,0,11,0,21,0\n10,0,40,0,12,0,9,0,42,0,29,0\n15,0,7,0,43,0,44,0,49,0,27,0\n46,0,39,0,26,0,22,0,32,0,38,0\n31,0,23,0,48,0,20,0,2,0,21,0\n14,0,4,0,17,0,42,0,25,0,47,0\n30,0,28,0,37,0,29,0,35,0,8,0\n45,0,5,0,16,0,7,0,1,0,9,0\n36,0,18,0,6,0,40,0,49,0,11,0\n44,0,19,0,33,0,24,0,41,0,12,0\n15,0,34,0,14,0,10,0,13,0,3,0\n48,0,37,0,35,0,26,0,45,0,31,0\n21,0,42,0,38,0,2,0,7,0,36,0\n9,0,27,0,11,0,4,0,40,0,39,0\n13,0,44,0,22,0,29,0,16,0,17,0\n33,0,41,0,30,0,46,0,15,0,1,0\n34,0,43,0,3,0,12,0,25,0,28,0\n20,0,6,0,47,0,32,0,24,0,19,0\n8,0,10,0,5,0,18,0,23,0,49,0\n26,0,36,0,1,0,2,0,17,0,31,0\n34,0,9,0,35,0,3,0,33,0,45,0\n46,0,48,0,22,0,13,0,42,0,24,0\n49,0,41,0,39,0,25,0,29,0,4,0\n43,0,44,0,37,0,12,0,21,0,27,0\n18,0,11,0,16,0,10,0,32,0,47,0\n30,0,19,0,38,0,20,0,14,0,23,0\n28,0,15,0,8,0,6,0,7,0,40,0\n13,0,31,0,4,0,5,0,26,0,49,0\n9,0,36,0,48,0,34,0,25,0,44,0\n42,0,19,0,3,0,18,0,21,0,30,0\n39,0,35,0,10,0,38,0,8,0,47,0\n17,0,7,0,33,0,43,0,11,0,6,0\n29,0,2,0,27,0,45,0,14,0,46,0\n1,0,12,0,37,0,22,0,28,0,23,0\n16,0,32,0,20,0,40,0,5,0,15,0\n24,0,3,0,17,0,41,0,9,0,13,0\n"
  },
  {
    "path": "schedules/49_2.csv",
    "content": "23,0,43,0,8,0,16,0,33,0,46,0\n26,0,24,0,11,0,18,0,31,0,25,0\n47,0,7,0,32,0,30,0,3,0,41,0\n9,0,42,0,37,0,15,0,39,0,35,0\n5,0,22,0,36,0,13,0,38,0,12,0\n1,0,10,0,14,0,4,0,28,0,40,0\n2,0,17,0,49,0,20,0,45,0,19,0\n27,0,6,0,44,0,48,0,21,0,34,0\n29,0,38,0,25,0,43,0,47,0,37,0\n11,0,13,0,10,0,30,0,8,0,42,0\n15,0,41,0,22,0,20,0,18,0,23,0\n39,0,4,0,19,0,5,0,44,0,7,0\n2,0,27,0,46,0,12,0,24,0,14,0\n48,0,32,0,40,0,35,0,36,0,49,0\n31,0,33,0,3,0,45,0,29,0,6,0\n34,0,16,0,9,0,28,0,26,0,17,0\n21,0,47,1,5,1,1,0,22,1,8,1\n"
  },
  {
    "path": "schedules/49_3.csv",
    "content": "6,0,29,0,27,0,21,0,24,0,34,0\n17,0,43,0,31,0,49,0,42,0,38,0\n32,0,8,0,46,0,30,0,15,0,41,0\n33,0,4,0,37,0,35,0,44,0,18,0\n5,0,45,0,12,0,23,0,10,0,20,0\n36,0,26,0,40,0,19,0,7,0,39,0\n13,0,9,0,48,0,3,0,47,0,22,0\n25,0,16,0,2,0,14,0,11,0,1,0\n28,0,41,0,20,0,37,0,29,0,31,0\n49,1,4,0,23,0,19,1,27,0,15,0\n33,1,5,0,22,0,36,0,8,0,17,0\n30,0,24,0,14,0,43,0,10,0,3,0\n1,0,42,0,9,0,34,0,40,0,44,0\n39,0,6,0,46,0,48,0,12,0,25,0\n47,0,28,0,35,0,32,0,26,0,11,0\n13,0,38,0,18,0,21,0,7,0,2,0\n45,0,24,0,15,0,16,0,33,0,31,0\n10,0,22,0,19,0,25,0,42,0,37,0\n29,0,32,0,14,0,36,0,4,0,48,0\n49,0,40,0,2,0,30,0,28,0,12,0\n27,0,20,0,8,0,16,0,38,0,47,0\n46,0,3,0,18,0,26,0,5,0,1,0\n21,0,43,0,35,0,9,0,39,0,23,0\n44,0,17,0,41,0,6,0,7,0,45,0\n11,0,19,0,33,0,13,0,34,0,49,0\n"
  },
  {
    "path": "schedules/49_4.csv",
    "content": "14,0,10,0,21,0,9,0,45,0,47,0\n32,0,44,0,34,0,31,0,20,0,25,0\n42,0,26,0,7,0,41,0,30,0,2,0\n43,0,35,0,27,0,1,0,4,0,24,0\n8,0,49,0,37,0,22,0,40,0,16,0\n48,0,39,0,12,0,13,0,17,0,28,0\n15,0,19,0,5,0,23,0,29,0,46,0\n36,0,38,0,18,0,3,0,33,0,6,0\n11,0,20,0,45,0,7,0,24,0,16,0\n30,0,40,0,25,0,27,0,13,0,14,0\n47,0,22,0,19,0,12,0,35,0,31,0\n49,0,29,0,6,0,33,0,41,0,9,0\n34,0,15,0,21,0,39,0,18,0,4,0\n32,0,46,0,42,0,36,0,48,0,1,0\n28,0,10,0,11,0,5,0,8,0,3,0\n38,0,44,0,43,0,17,0,26,0,37,0\n2,0,35,0,49,0,23,0,18,0,25,0\n31,1,33,0,13,0,15,1,42,0,24,0\n36,0,47,0,41,0,20,0,4,0,8,0\n19,0,40,0,7,0,1,0,39,0,38,0\n3,0,16,0,32,0,43,0,14,0,29,0\n26,0,23,0,9,0,11,0,27,0,48,0\n44,0,5,0,30,0,12,0,21,0,6,0\n46,0,2,0,10,0,34,0,17,0,22,0\n28,0,25,0,1,0,45,0,37,0,15,0\n8,0,13,0,9,0,32,0,7,0,35,0\n24,0,14,0,36,0,26,0,5,0,49,0\n16,0,31,0,46,0,41,0,27,0,21,0\n22,0,3,0,23,0,42,0,44,0,39,0\n28,0,33,0,47,0,34,0,43,0,30,0\n45,0,29,0,4,0,2,0,38,0,12,0\n37,0,18,0,20,0,48,0,19,0,10,0\n6,0,17,0,31,0,40,0,11,0,15,0\n"
  },
  {
    "path": "schedules/49_5.csv",
    "content": "33,0,46,0,31,0,32,0,4,0,10,0\n15,0,11,0,20,0,9,0,13,0,39,0\n30,0,49,0,36,0,14,0,37,0,6,0\n16,0,24,0,35,0,18,0,48,0,27,0\n22,0,47,0,23,0,44,0,12,0,19,0\n21,0,17,0,45,0,7,0,34,0,2,0\n25,0,38,0,42,0,41,0,26,0,5,0\n40,0,1,0,28,0,29,0,43,0,3,0\n35,0,9,0,10,0,8,0,23,0,37,0\n2,0,27,0,6,0,20,0,33,0,22,0\n34,0,32,0,41,0,30,0,18,0,47,0\n29,0,44,0,31,0,17,0,13,0,25,0\n45,0,5,0,40,0,8,0,16,0,11,0\n49,0,3,0,46,0,24,0,15,0,26,0\n7,0,12,0,48,0,38,0,43,0,36,0\n21,0,19,0,14,0,1,0,39,0,42,0\n4,0,9,0,17,0,28,0,30,0,16,0\n2,1,23,0,18,0,25,0,40,0,49,0\n44,0,6,0,43,0,11,0,24,0,41,0\n42,0,47,0,14,0,35,0,31,0,20,0\n1,0,37,0,12,0,5,0,33,0,34,0\n45,0,32,0,15,0,36,0,29,0,10,0\n19,0,27,0,8,0,4,0,7,0,26,0\n46,0,22,0,48,0,13,0,28,0,21,0\n39,0,18,0,6,0,3,0,38,0,17,0\n20,0,23,0,5,0,29,0,24,0,30,0\n49,0,42,0,8,0,32,0,16,0,12,0\n43,0,37,0,31,0,21,0,27,0,15,0\n26,0,48,0,14,0,9,0,44,0,33,0\n13,0,36,0,47,0,2,0,1,0,4,0\n7,0,41,0,40,0,39,0,46,0,35,0\n10,0,25,0,11,0,3,0,22,0,34,0\n38,0,19,0,33,0,28,0,45,0,24,0\n16,0,26,0,1,0,31,0,23,0,6,0\n44,0,2,0,30,0,15,0,42,0,7,0\n35,0,22,0,17,0,43,0,5,0,32,0\n47,0,29,0,38,0,21,0,9,0,49,0\n40,0,27,0,13,0,12,0,10,0,14,0\n8,0,28,0,39,0,34,0,25,0,36,0\n3,0,4,0,20,0,45,0,48,0,41,0\n37,0,18,0,11,0,19,0,46,0,2,0\n"
  },
  {
    "path": "schedules/49_6.csv",
    "content": "22,0,2,0,10,0,11,0,27,0,9,0\n19,0,16,0,17,0,1,0,38,0,21,0\n12,0,49,0,37,0,45,0,29,0,41,0\n25,0,46,0,23,0,14,0,40,0,47,0\n28,0,48,0,33,0,15,0,4,0,30,0\n44,0,35,0,20,0,34,0,18,0,24,0\n8,0,43,0,36,0,26,0,7,0,5,0\n42,0,13,0,6,0,39,0,32,0,3,0\n31,0,10,0,1,0,14,0,49,0,48,0\n16,0,41,0,28,0,19,0,35,0,25,0\n4,0,34,0,27,0,12,0,26,0,21,0\n6,0,44,0,46,0,36,0,37,0,9,0\n24,0,15,0,32,0,23,0,2,0,3,0\n7,0,40,0,18,0,22,0,29,0,39,0\n5,0,17,0,42,0,47,0,31,0,20,0\n43,0,45,0,38,0,33,0,13,0,11,0\n30,0,21,0,9,0,8,0,32,0,49,0\n2,0,48,0,34,0,41,0,46,0,39,0\n15,0,27,0,37,0,7,0,17,0,35,0\n40,0,20,0,19,0,10,0,13,0,4,0\n14,0,45,0,24,0,43,0,6,0,22,0\n18,0,33,0,12,0,5,0,3,0,25,0\n23,0,36,0,11,0,16,0,31,0,30,0\n29,0,44,0,8,0,42,0,28,0,38,0\n47,0,26,0,41,0,1,0,22,0,32,0\n12,0,39,0,14,0,20,0,9,0,17,0\n49,0,11,0,4,0,18,0,46,0,3,0\n35,0,38,0,10,0,6,0,23,0,5,0\n13,0,47,0,48,0,21,0,36,0,29,0\n19,0,2,0,15,0,31,0,44,0,45,0\n37,0,25,0,26,0,30,0,42,0,24,0\n1,0,27,0,43,0,8,0,28,0,40,0\n7,0,33,0,9,0,34,0,16,0,47,0\n22,0,49,0,36,0,38,0,20,0,15,0\n35,0,30,0,14,0,13,0,2,0,12,0\n5,0,39,0,11,0,24,0,28,0,21,0\n8,0,31,0,41,0,4,0,6,0,33,0\n26,0,17,0,29,0,46,0,16,0,10,0\n44,0,3,0,48,0,27,0,40,0,25,0\n34,0,37,0,32,0,18,0,43,0,19,0\n23,0,45,0,42,0,1,0,7,0,4,0\n13,0,16,0,49,0,24,0,8,0,17,0\n25,0,29,0,6,0,15,0,11,0,26,0\n47,0,39,0,30,0,10,0,43,0,44,0\n14,0,41,0,38,0,27,0,42,0,18,0\n3,0,35,0,34,0,36,0,45,0,1,0\n40,0,21,0,33,0,20,0,37,0,2,0\n22,0,5,0,9,0,48,0,23,0,19,0\n46,0,28,0,31,0,7,0,32,0,12,0\n"
  },
  {
    "path": "schedules/49_7.csv",
    "content": "31,0,32,0,16,0,2,0,15,0,9,0\n40,0,39,0,6,0,34,0,42,0,19,0\n5,0,28,0,4,0,43,0,18,0,27,0\n35,0,45,0,13,0,3,0,11,0,23,0\n29,0,49,0,10,0,46,0,38,0,36,0\n12,0,33,0,26,0,25,0,7,0,21,0\n22,0,37,0,17,0,14,0,24,0,41,0\n47,0,1,0,20,0,8,0,30,0,44,0\n16,0,11,0,6,0,48,0,31,0,10,0\n33,0,18,0,25,0,40,0,32,0,46,0\n39,0,36,0,15,0,23,0,7,0,22,0\n27,0,19,0,14,0,47,0,45,0,29,0\n4,0,13,0,34,0,37,0,21,0,44,0\n17,0,2,0,48,0,43,0,8,0,3,0\n41,0,35,0,5,0,49,0,26,0,1,0\n9,0,12,0,42,0,28,0,20,0,24,0\n30,0,23,0,19,0,38,0,16,0,37,0\n6,1,32,0,27,0,44,1,17,0,36,0\n29,1,18,0,8,0,25,1,34,0,3,0\n22,0,20,0,40,0,5,1,11,0,31,0\n35,0,24,0,7,0,48,0,30,0,4,0\n1,0,14,0,33,0,42,0,15,0,10,0\n49,0,21,0,13,0,28,0,47,0,2,0\n45,0,46,0,43,0,39,0,26,0,9,0\n41,0,38,0,32,0,12,0,40,0,34,0\n19,0,24,0,10,0,23,0,20,0,18,0\n37,0,27,0,3,0,25,0,6,0,1,0\n2,0,30,0,42,0,29,0,22,0,26,0\n5,0,21,0,45,0,38,0,15,0,17,0\n9,0,43,0,48,0,33,0,13,0,36,0\n31,0,41,0,44,0,28,0,39,0,35,0\n49,0,12,0,11,0,14,0,8,0,4,0\n47,0,46,0,34,0,16,0,7,0,1,0\n15,0,13,0,26,0,27,0,40,0,24,0\n20,0,48,0,29,0,45,0,32,0,37,0\n30,0,43,0,49,0,25,0,42,0,31,0\n14,0,46,0,2,0,44,0,23,0,4,0\n7,0,9,0,11,0,17,0,18,0,41,0\n47,0,10,0,5,0,3,0,39,0,12,0\n33,0,38,0,8,0,22,0,6,0,28,0\n35,0,21,0,36,0,16,0,19,0,25,0\n26,0,20,0,34,0,49,0,17,0,14,0\n40,0,44,0,2,0,45,0,10,0,7,0\n48,0,23,0,42,0,47,0,27,0,41,0\n38,0,29,0,39,0,16,0,18,0,13,0\n19,0,3,0,4,0,22,0,9,0,33,0\n24,0,37,0,31,0,36,0,8,0,5,0\n15,0,12,0,6,0,30,0,35,0,46,0\n21,0,28,0,43,0,11,0,1,0,32,0\n25,0,47,0,38,0,4,0,20,0,41,0\n24,0,33,0,16,0,49,0,45,0,44,0\n46,0,7,0,42,0,13,0,5,0,19,0\n23,0,31,0,1,0,29,0,17,0,12,0\n36,0,3,0,6,0,40,0,14,0,21,0\n8,0,35,0,22,0,32,0,43,0,10,0\n28,0,26,0,18,0,48,0,37,0,15,0\n30,0,11,0,27,0,2,0,34,0,39,0\n9,0,44,0,25,0,6,0,29,0,5,0\n"
  },
  {
    "path": "schedules/49_8.csv",
    "content": "26,0,4,0,24,0,19,0,20,0,5,0\n38,0,27,0,2,0,10,0,12,0,22,0\n45,0,41,0,33,0,25,0,46,0,49,0\n30,0,43,0,14,0,47,0,15,0,6,0\n13,0,17,0,28,0,39,0,1,0,16,0\n42,0,21,0,9,0,44,0,48,0,8,0\n31,0,11,0,3,0,36,0,18,0,23,0\n37,0,7,0,35,0,34,0,29,0,40,0\n32,0,17,0,46,0,25,0,27,0,6,0\n21,0,1,0,4,0,45,0,30,0,26,0\n49,0,3,0,43,0,48,0,5,0,38,0\n22,0,19,0,36,0,28,0,37,0,15,0\n41,0,7,0,8,0,13,0,10,0,31,0\n16,0,11,0,24,0,33,0,32,0,44,0\n40,0,18,0,42,0,39,0,23,0,34,0\n29,0,35,0,12,0,9,0,14,0,20,0\n47,0,3,0,17,0,2,0,26,0,19,0\n41,1,13,0,37,0,21,1,44,0,43,0\n48,1,31,0,6,0,23,1,33,0,28,0\n24,0,12,0,25,0,40,0,8,0,49,0\n2,0,14,0,16,0,45,0,5,0,36,0\n15,0,30,0,42,0,11,0,27,0,35,0\n32,0,4,0,9,0,18,0,34,0,10,0\n20,0,39,0,47,0,7,0,46,0,38,0\n29,0,22,0,6,0,1,0,24,0,41,0\n25,0,30,0,16,0,37,0,3,0,42,0\n34,0,19,0,43,0,36,0,27,0,21,0\n18,0,32,0,45,0,15,0,12,0,7,0\n5,0,28,0,46,0,9,0,11,0,40,0\n48,0,47,0,49,0,4,0,29,0,17,0\n22,0,38,0,23,0,14,0,13,0,26,0\n39,0,10,0,44,0,20,0,35,0,31,0\n1,0,8,0,32,0,2,0,33,0,37,0\n15,0,21,0,41,0,16,0,4,0,12,0\n5,0,6,0,23,0,34,0,45,0,38,0\n7,0,40,0,44,0,3,0,14,0,27,0\n2,0,18,0,47,0,48,0,24,0,28,0\n31,0,26,0,39,0,9,0,43,0,25,0\n22,0,17,0,8,0,20,0,11,0,46,0\n49,0,1,0,13,0,35,0,42,0,36,0\n10,0,29,0,33,0,30,0,19,0,40,0\n27,0,23,0,41,0,9,0,37,0,47,0\n28,0,25,0,11,0,4,0,7,0,43,0\n31,0,34,0,15,0,49,0,2,0,20,0\n14,0,45,0,10,0,42,0,24,0,17,0\n6,0,16,0,38,0,35,0,8,0,19,0\n26,0,29,0,18,0,36,0,44,0,46,0\n30,0,48,0,21,0,22,0,32,0,39,0\n13,0,3,0,5,0,1,0,12,0,33,0\n2,0,6,0,9,0,7,0,16,0,42,0\n37,0,40,0,4,0,38,0,31,0,17,0\n46,0,23,0,43,0,30,0,24,0,10,0\n8,0,15,0,45,0,29,0,28,0,3,0\n27,0,34,0,12,0,48,0,1,0,26,0\n19,0,14,0,11,0,39,0,41,0,49,0\n36,0,20,0,13,0,32,0,47,0,25,0\n35,0,21,0,22,0,18,0,33,0,5,0\n44,0,9,0,24,0,1,0,38,0,15,0\n19,0,12,0,46,0,42,0,31,0,23,0\n28,0,49,0,32,0,3,0,41,0,26,0\n11,0,29,0,2,0,6,0,21,0,13,0\n25,0,37,0,10,0,14,0,48,0,18,0\n8,0,33,0,36,0,4,0,39,0,27,0\n5,0,7,0,34,0,44,0,17,0,30,0\n35,0,16,0,45,0,47,0,22,0,43,0\n20,0,41,0,48,0,40,0,21,0,23,0\n"
  },
  {
    "path": "schedules/49_9.csv",
    "content": "40,0,16,0,18,0,46,0,42,0,14,0\n9,0,32,0,29,0,7,0,23,0,12,0\n39,0,35,0,4,0,21,0,37,0,6,0\n30,0,8,0,25,0,45,0,41,0,47,0\n49,0,3,0,11,0,48,0,26,0,10,0\n44,0,2,0,38,0,33,0,34,0,36,0\n22,0,13,0,28,0,19,0,24,0,5,0\n20,0,17,0,31,0,27,0,15,0,43,0\n1,0,21,0,47,0,26,0,29,0,14,0\n34,0,23,0,6,0,49,0,8,0,42,0\n39,0,5,0,41,0,7,0,40,0,11,0\n12,0,36,0,45,0,48,0,43,0,19,0\n18,0,9,0,46,0,33,0,28,0,31,0\n3,0,24,0,20,0,35,0,16,0,32,0\n1,0,38,0,37,0,17,0,22,0,25,0\n44,0,13,0,27,0,15,0,30,0,4,0\n10,0,23,0,45,0,2,0,41,0,33,0\n5,1,12,0,49,0,36,1,39,0,20,0\n18,1,3,0,8,0,22,0,38,0,9,0\n31,0,24,0,25,0,44,0,4,0,11,0\n43,0,16,0,47,0,13,0,34,0,37,0\n15,0,19,0,14,0,46,0,6,0,26,0\n27,0,32,0,40,0,10,0,29,0,28,0\n48,0,42,0,35,0,17,0,2,0,30,0\n1,0,8,0,36,0,7,0,21,0,31,0\n47,0,9,0,25,0,46,0,5,0,20,0\n4,0,19,0,33,0,40,0,49,0,14,0\n11,0,6,0,27,0,22,0,18,0,2,0\n30,0,12,0,13,0,21,0,23,0,44,0\n41,0,17,0,48,0,34,0,24,0,29,0\n16,0,7,0,28,0,10,0,35,0,15,0\n39,0,37,0,42,0,32,0,3,0,45,0\n26,0,1,0,2,0,43,0,38,0,40,0\n14,0,21,0,20,0,11,0,23,0,5,0\n48,0,22,0,7,0,33,0,16,0,44,0\n42,0,10,0,13,0,39,0,31,0,8,0\n4,0,46,0,3,0,41,0,1,0,43,0\n26,0,24,0,35,0,18,0,25,0,12,0\n6,0,17,0,15,0,47,0,36,0,32,0\n49,0,38,0,29,0,45,0,30,0,28,0\n34,0,19,0,27,0,9,0,37,0,11,0\n20,0,12,0,44,0,3,0,41,0,42,0\n31,0,4,0,10,0,23,0,22,0,47,0\n25,0,39,0,28,0,14,0,43,0,36,0\n21,0,38,0,19,0,16,0,27,0,48,0\n49,0,37,0,18,0,2,0,29,0,15,0\n45,0,26,0,17,0,7,0,13,0,46,0\n24,0,9,0,30,0,6,0,1,0,40,0\n35,0,5,0,33,0,34,0,8,0,32,0\n37,0,14,0,31,0,10,0,38,0,12,0\n23,0,41,0,26,0,27,0,17,0,28,0\n18,0,7,0,44,0,47,0,20,0,19,0\n16,0,24,0,39,0,9,0,2,0,8,0\n15,0,40,0,3,0,21,0,34,0,25,0\n32,0,33,0,6,0,13,0,11,0,1,0\n4,0,42,0,43,0,48,0,29,0,5,0\n22,0,46,0,36,0,35,0,30,0,49,0\n45,0,9,0,44,0,14,0,10,0,17,0\n18,0,15,0,34,0,12,0,1,0,39,0\n41,0,29,0,31,0,5,0,16,0,6,0\n26,0,33,0,8,0,4,0,37,0,20,0\n21,0,2,0,48,0,46,0,32,0,25,0\n22,0,35,0,27,0,40,0,13,0,45,0\n47,0,42,0,11,0,28,0,3,0,36,0\n49,0,23,0,43,0,24,0,7,0,38,0\n30,0,10,0,32,0,19,0,18,0,26,0\n5,0,8,0,27,0,46,0,1,0,44,0\n28,0,34,0,20,0,6,0,45,0,22,0\n17,0,36,0,11,0,12,0,16,0,4,0\n47,0,15,0,24,0,38,0,42,0,33,0\n14,0,2,0,7,0,31,0,30,0,3,0\n21,0,43,0,13,0,41,0,49,0,9,0\n29,0,23,0,39,0,25,0,35,0,19,0\n37,0,40,0,5,0,48,0,36,0,18,0\n"
  },
  {
    "path": "schedules/50_1.csv",
    "content": "46,0,35,0,13,0,32,0,30,0,36,0\n33,0,42,0,31,0,49,0,37,0,48,0\n39,0,5,0,8,0,17,0,29,0,4,0\n2,0,38,0,15,0,25,0,1,0,34,0\n20,0,22,0,19,0,41,0,43,0,40,0\n16,0,14,0,11,0,23,0,47,0,24,0\n12,0,28,0,45,0,44,0,6,0,7,0\n21,0,26,0,10,0,50,0,3,0,18,0\n27,0,19,1,35,1,9,0,37,1,41,1\n"
  },
  {
    "path": "schedules/50_10.csv",
    "content": "43,0,38,0,50,0,21,0,6,0,3,0\n28,0,2,0,14,0,41,0,29,0,12,0\n11,0,23,0,48,0,8,0,16,0,1,0\n35,0,22,0,5,0,25,0,42,0,47,0\n4,0,46,0,44,0,15,0,9,0,20,0\n49,0,34,0,37,0,33,0,19,0,13,0\n10,0,24,0,18,0,7,0,40,0,45,0\n32,0,17,0,30,0,31,0,26,0,36,0\n27,0,35,0,20,0,39,0,6,0,12,0\n44,0,50,0,3,0,1,0,23,0,14,0\n40,0,37,0,29,0,4,0,13,0,49,0\n46,0,2,0,21,0,25,0,7,0,28,0\n22,0,9,0,26,0,10,0,8,0,33,0\n19,0,32,0,16,0,18,0,30,0,5,0\n36,0,39,0,24,0,15,0,41,0,48,0\n42,0,11,0,17,0,27,0,34,0,43,0\n38,0,45,0,12,0,31,0,47,0,7,0\n18,1,44,0,19,0,29,1,23,0,35,0\n37,1,46,0,36,0,48,1,40,0,3,0\n17,0,6,0,13,0,2,0,5,0,9,0\n49,0,20,0,8,0,50,0,28,0,11,0\n45,0,39,0,22,0,4,0,21,0,16,0\n47,0,14,0,26,0,24,0,27,0,31,0\n25,0,15,0,1,0,38,0,34,0,32,0\n10,0,30,0,41,0,42,0,43,0,33,0\n12,0,16,0,49,0,44,0,17,0,21,0\n19,0,39,0,47,0,50,0,24,0,9,0\n40,0,35,0,13,0,23,0,7,0,15,0\n30,0,11,0,46,0,10,0,6,0,22,0\n3,0,32,0,33,0,2,0,42,0,4,0\n18,0,29,0,8,0,38,0,25,0,36,0\n20,0,34,0,5,0,31,0,43,0,48,0\n1,0,28,0,41,0,37,0,45,0,26,0\n14,0,49,0,15,0,27,0,10,0,16,0\n39,0,38,0,21,0,11,0,40,0,33,0\n31,0,44,0,42,0,50,0,46,0,13,0\n20,0,18,0,4,0,26,0,24,0,1,0\n22,0,37,0,2,0,34,0,14,0,35,0\n25,0,3,0,19,0,17,0,28,0,48,0\n23,0,43,0,12,0,45,0,9,0,32,0\n8,0,36,0,41,0,6,0,5,0,47,0\n29,0,7,0,50,0,30,0,27,0,37,0\n48,0,16,0,44,0,42,0,38,0,26,0\n21,0,34,0,13,0,3,0,35,0,24,0\n12,0,18,0,17,0,46,0,15,0,22,0\n4,0,28,0,33,0,6,0,27,0,36,0\n5,0,25,0,10,0,39,0,41,0,23,0\n7,0,11,0,1,0,9,0,31,0,29,0\n43,0,32,0,40,0,19,0,14,0,8,0\n47,0,45,0,20,0,2,0,30,0,49,0\n48,0,50,0,36,0,10,0,13,0,12,0\n27,0,21,0,9,0,34,0,18,0,41,0\n28,0,31,0,6,0,22,0,24,0,16,0\n4,0,43,0,37,0,23,0,47,0,46,0\n1,0,30,0,35,0,49,0,40,0,38,0\n33,0,45,0,2,0,8,0,5,0,44,0\n26,0,19,0,15,0,11,0,29,0,3,0\n14,0,32,0,7,0,39,0,17,0,20,0\n25,0,37,0,9,0,42,0,16,0,30,0\n24,0,48,0,38,0,46,0,49,0,5,0\n27,0,15,0,2,0,22,0,1,0,43,0\n28,0,47,0,13,0,32,0,18,0,11,0\n3,0,34,0,8,0,39,0,29,0,10,0\n17,0,26,0,33,0,45,0,35,0,50,0\n25,0,12,0,31,0,40,0,6,0,19,0\n23,0,36,0,42,0,20,0,21,0,14,0\n41,0,4,0,11,0,44,0,7,0,30,0\n33,0,29,0,16,0,43,0,47,0,24,0\n48,0,9,0,10,0,35,0,28,0,32,0\n31,0,15,0,17,0,21,0,37,0,8,0\n46,0,42,0,39,0,1,0,19,0,2,0\n14,0,22,0,41,0,13,0,20,0,38,0\n27,0,5,0,3,0,44,0,12,0,40,0\n25,0,50,0,34,0,45,0,4,0,36,0\n23,0,6,0,49,0,18,0,26,0,7,0\n1,0,47,0,38,0,19,0,10,0,17,0\n8,0,11,0,24,0,12,0,35,0,37,0\n5,0,21,0,48,0,30,0,4,0,14,0\n40,0,18,0,16,0,41,0,50,0,2,0\n6,0,42,0,45,0,32,0,15,0,29,0\n26,0,27,0,13,0,43,0,46,0,25,0\n7,0,9,0,49,0,36,0,3,0,22,0\n28,0,44,0,23,0,34,0,39,0,31,0\n33,0,18,0,37,0,20,0,29,0,48,0\n"
  },
  {
    "path": "schedules/50_11.csv",
    "content": "44,0,9,0,35,0,41,0,1,0,26,0\n36,0,38,0,8,0,43,0,27,0,25,0\n42,0,19,0,30,0,22,0,20,0,15,0\n48,0,18,0,45,0,32,0,40,0,34,0\n21,0,12,0,11,0,49,0,31,0,47,0\n28,0,13,0,7,0,29,0,4,0,5,0\n50,0,16,0,37,0,10,0,39,0,2,0\n14,0,6,0,33,0,24,0,17,0,3,0\n46,0,25,0,20,0,23,0,30,0,47,0\n18,0,38,0,22,0,36,0,28,0,49,0\n37,0,1,0,32,0,15,0,4,0,2,0\n29,0,42,0,40,0,35,0,17,0,14,0\n9,0,46,0,16,0,31,0,13,0,34,0\n11,0,19,0,27,0,50,0,43,0,33,0\n12,0,26,0,24,0,48,0,39,0,5,0\n7,0,41,0,8,0,6,0,21,0,45,0\n23,0,10,0,22,0,44,0,3,0,32,0\n28,1,20,0,38,0,36,1,1,0,11,0\n9,0,19,0,24,0,18,0,30,0,37,0\n42,0,35,0,33,0,7,0,39,0,21,0\n2,0,3,0,27,0,34,0,5,0,44,0\n25,0,29,0,41,0,49,0,15,0,43,0\n16,0,31,0,12,0,26,0,14,0,23,0\n48,0,17,0,8,0,10,0,50,0,46,0\n13,0,6,0,4,0,45,0,47,0,40,0\n28,0,5,0,3,0,32,0,41,0,30,0\n31,0,18,0,7,0,44,0,16,0,15,0\n43,0,17,0,36,0,21,0,9,0,37,0\n49,0,2,0,35,0,45,0,14,0,4,0\n12,0,40,0,1,0,34,0,25,0,33,0\n47,0,46,0,6,0,10,0,42,0,38,0\n19,0,39,0,26,0,23,0,13,0,8,0\n22,0,24,0,48,0,50,0,29,0,11,0\n27,0,17,0,7,0,20,0,41,0,4,0\n33,0,44,0,49,0,6,0,5,0,15,0\n32,0,38,0,2,0,13,0,26,0,9,0\n31,0,50,0,40,0,36,0,30,0,39,0\n25,0,35,0,10,0,18,0,1,0,28,0\n11,0,47,0,42,0,3,0,8,0,34,0\n43,0,12,0,22,0,24,0,20,0,45,0\n16,0,14,0,19,0,46,0,48,0,27,0\n21,0,23,0,31,0,37,0,29,0,38,0\n11,0,13,0,2,0,25,0,17,0,18,0\n43,0,20,0,44,0,4,0,49,0,39,0\n15,0,9,0,33,0,48,0,10,0,3,0\n16,0,41,0,28,0,40,0,8,0,24,0\n35,0,50,0,5,0,34,0,23,0,6,0\n12,0,36,0,32,0,42,0,1,0,46,0\n14,0,22,0,47,0,19,0,7,0,37,0\n21,0,26,0,29,0,30,0,27,0,45,0\n43,0,39,0,23,0,28,0,33,0,2,0\n46,0,38,0,3,0,41,0,24,0,18,0\n8,0,9,0,10,0,4,0,7,0,12,0\n30,0,34,0,48,0,49,0,6,0,20,0\n40,0,27,0,13,0,31,0,42,0,37,0\n32,0,25,0,21,0,14,0,44,0,50,0\n47,0,36,0,15,0,22,0,26,0,35,0\n5,0,1,0,19,0,29,0,16,0,17,0\n11,0,3,0,37,0,45,0,46,0,28,0\n50,0,2,0,41,0,42,0,20,0,12,0\n18,0,4,0,34,0,23,0,25,0,24,0\n1,0,30,0,14,0,43,0,8,0,47,0\n40,0,17,0,49,0,38,0,26,0,7,0\n39,0,6,0,16,0,11,0,9,0,32,0\n10,0,45,0,44,0,19,0,29,0,36,0\n48,0,15,0,13,0,21,0,27,0,22,0\n33,0,5,0,20,0,31,0,35,0,8,0\n43,0,28,0,26,0,6,0,7,0,42,0\n45,0,49,0,32,0,10,0,24,0,16,0\n18,0,29,0,27,0,12,0,39,0,3,0\n50,0,23,0,15,0,17,0,47,0,9,0\n40,0,21,0,4,0,22,0,46,0,5,0\n31,0,1,0,25,0,41,0,48,0,19,0\n37,0,44,0,2,0,30,0,35,0,11,0\n14,0,34,0,36,0,13,0,38,0,33,0\n28,0,17,0,6,0,12,0,27,0,47,0\n42,0,25,0,22,0,31,0,5,0,9,0\n8,0,49,0,19,0,46,0,35,0,32,0\n34,0,26,0,11,0,37,0,14,0,41,0\n7,0,36,0,24,0,48,0,23,0,2,0\n45,0,50,0,39,0,1,0,38,0,15,0\n30,0,4,0,44,0,18,0,33,0,16,0\n13,0,20,0,3,0,10,0,43,0,40,0\n29,0,34,0,28,0,21,0,19,0,2,0\n45,0,23,0,1,0,27,0,42,0,49,0\n39,0,17,0,41,0,22,0,36,0,16,0\n24,0,15,0,37,0,12,0,8,0,44,0\n43,0,29,0,46,0,33,0,32,0,26,0\n7,0,3,0,35,0,50,0,13,0,25,0\n6,0,9,0,18,0,21,0,14,0,20,0\n30,0,10,0,5,0,40,0,38,0,11,0\n47,0,4,0,28,0,31,0,48,0,36,0\n"
  },
  {
    "path": "schedules/50_12.csv",
    "content": "26,0,11,0,1,0,39,0,45,0,18,0\n40,0,31,0,20,0,49,0,50,0,25,0\n9,0,4,0,27,0,38,0,5,0,43,0\n3,0,2,0,29,0,30,0,8,0,13,0\n42,0,19,0,32,0,21,0,47,0,41,0\n14,0,17,0,36,0,22,0,46,0,10,0\n28,0,37,0,15,0,34,0,35,0,23,0\n48,0,33,0,12,0,6,0,7,0,16,0\n44,0,2,0,4,0,24,0,32,0,20,0\n31,0,19,0,30,0,10,0,1,0,40,0\n28,0,18,0,50,0,14,0,29,0,43,0\n7,0,48,0,35,0,6,0,3,0,11,0\n41,0,36,0,24,0,9,0,12,0,16,0\n17,0,23,0,42,0,45,0,27,0,25,0\n33,0,34,0,44,0,47,0,46,0,5,0\n21,0,8,0,37,0,49,0,22,0,38,0\n15,0,13,0,16,0,26,0,39,0,40,0\n43,0,27,0,24,0,14,0,20,0,48,0\n6,0,5,0,32,0,2,0,50,0,23,0\n19,0,33,0,29,0,45,0,4,0,17,0\n47,0,34,0,18,0,11,0,8,0,22,0\n46,0,49,0,1,0,35,0,9,0,41,0\n31,0,12,0,10,0,38,0,28,0,3,0\n36,0,42,0,37,0,13,0,26,0,7,0\n39,0,15,0,25,0,44,0,21,0,30,0\n43,0,35,0,45,0,34,0,50,0,22,0\n16,0,8,0,28,0,19,0,17,0,20,0\n11,0,5,0,27,0,36,0,29,0,31,0\n7,0,4,0,21,0,24,0,13,0,44,0\n33,0,39,0,10,0,49,0,2,0,37,0\n30,0,48,0,40,0,14,0,6,0,41,0\n26,0,9,0,47,0,23,0,3,0,25,0\n38,0,12,0,32,0,18,0,42,0,46,0\n1,0,24,0,45,0,15,0,10,0,43,0\n6,0,4,0,30,0,37,0,17,0,11,0\n39,0,22,0,7,0,23,0,41,0,28,0\n19,0,50,0,13,0,12,0,44,0,14,0\n49,0,3,0,34,0,42,0,16,0,2,0\n9,0,5,0,18,0,48,0,15,0,47,0\n26,0,27,0,29,0,1,0,20,0,33,0\n38,0,8,0,36,0,40,0,25,0,32,0\n46,0,35,0,17,0,21,0,31,0,42,0\n16,0,18,0,43,0,7,0,5,0,10,0\n20,0,13,0,9,0,11,0,34,0,30,0\n6,0,15,0,49,0,22,0,47,0,29,0\n44,0,41,0,38,0,33,0,26,0,14,0\n21,0,23,0,36,0,50,0,48,0,1,0\n24,0,40,0,28,0,3,0,46,0,4,0\n45,0,2,0,32,0,27,0,19,0,35,0\n25,0,31,0,8,0,37,0,12,0,39,0\n42,0,22,0,26,0,48,0,17,0,9,0\n10,0,41,0,3,0,4,0,50,0,20,0\n45,0,16,0,38,0,1,0,44,0,47,0\n25,0,11,0,13,0,28,0,27,0,46,0\n39,0,31,0,23,0,30,0,43,0,33,0\n14,0,15,0,7,0,32,0,49,0,8,0\n6,0,19,0,37,0,36,0,18,0,2,0\n29,0,5,0,40,0,12,0,24,0,35,0\n21,0,10,0,27,0,34,0,46,0,26,0\n32,0,47,0,30,0,28,0,31,0,7,0\n49,0,23,0,20,0,13,0,18,0,38,0\n43,0,3,0,44,0,40,0,45,0,36,0\n9,0,22,0,14,0,33,0,16,0,21,0\n17,0,12,0,1,0,37,0,34,0,4,0\n41,0,42,0,50,0,15,0,11,0,2,0\n24,0,5,0,8,0,25,0,35,0,6,0\n39,0,29,0,20,0,19,0,48,0,36,0\n22,0,33,0,3,0,1,0,32,0,21,0\n46,0,12,0,13,0,30,0,15,0,45,0\n4,0,18,0,26,0,31,0,5,0,35,0\n27,0,42,0,44,0,6,0,8,0,10,0\n23,0,29,0,11,0,16,0,14,0,39,0\n28,0,49,0,47,0,37,0,24,0,48,0\n7,0,40,0,50,0,34,0,19,0,9,0\n25,0,17,0,38,0,43,0,41,0,2,0\n42,0,14,0,30,0,4,0,36,0,5,0\n16,0,10,0,47,0,35,0,13,0,39,0\n6,0,20,0,28,0,21,0,45,0,9,0\n15,0,34,0,41,0,31,0,48,0,38,0\n44,0,32,0,23,0,11,0,49,0,12,0\n50,0,24,0,33,0,17,0,8,0,18,0\n27,0,37,0,22,0,3,0,40,0,19,0\n25,0,46,0,2,0,29,0,1,0,7,0\n43,0,4,0,49,0,26,0,36,0,6,0\n41,0,48,0,8,0,44,0,28,0,45,0\n10,0,20,0,11,0,15,0,40,0,33,0\n35,0,50,0,16,0,27,0,38,0,30,0\n31,0,46,0,24,0,19,0,22,0,23,0\n5,0,39,0,17,0,32,0,13,0,3,0\n1,0,14,0,25,0,42,0,7,0,34,0\n43,0,26,0,21,0,2,0,47,0,12,0\n18,0,37,0,41,0,9,0,29,0,44,0\n19,0,11,0,45,0,30,0,5,0,49,0\n13,0,23,0,48,0,25,0,10,0,4,0\n36,0,35,0,15,0,28,0,17,0,33,0\n22,0,20,0,12,0,47,0,27,0,7,0\n14,0,2,0,8,0,1,0,9,0,31,0\n29,0,21,0,18,0,40,0,43,0,42,0\n50,0,46,0,32,0,37,0,26,0,16,0\n34,0,6,0,38,0,39,0,24,0,3,0\n"
  },
  {
    "path": "schedules/50_13.csv",
    "content": "35,0,13,0,41,0,21,0,1,0,15,0\n46,0,32,0,43,0,48,0,23,0,37,0\n5,0,12,0,11,0,38,0,47,0,24,0\n27,0,26,0,18,0,29,0,44,0,50,0\n39,0,14,0,40,0,9,0,17,0,30,0\n20,0,45,0,6,0,8,0,25,0,16,0\n7,0,28,0,42,0,2,0,49,0,19,0\n4,0,34,0,10,0,36,0,22,0,3,0\n33,0,14,0,9,0,31,0,37,0,43,0\n16,0,6,0,21,0,39,0,5,0,46,0\n45,0,17,0,35,0,28,0,47,0,19,0\n24,0,42,0,44,0,29,0,26,0,13,0\n40,0,3,0,34,0,15,0,18,0,23,0\n12,0,38,0,50,0,20,0,25,0,49,0\n22,0,7,0,2,0,30,0,11,0,41,0\n10,0,27,0,31,0,48,0,32,0,8,0\n36,0,4,0,40,0,1,0,33,0,19,0\n18,1,6,0,42,0,37,1,47,0,3,0\n22,1,43,0,50,0,7,1,15,0,12,0\n41,0,28,0,8,0,14,0,34,0,31,0\n11,0,32,0,20,0,38,0,46,0,35,0\n9,0,10,0,26,0,13,0,21,0,4,0\n5,0,1,0,48,0,27,0,45,0,44,0\n16,0,39,0,2,0,24,0,33,0,49,0\n25,0,29,0,30,0,17,0,23,0,36,0\n41,0,47,0,7,0,20,0,35,0,9,0\n34,0,38,0,32,0,43,0,6,0,4,0\n27,0,39,0,19,0,40,0,45,0,15,0\n37,0,5,0,13,0,17,0,31,0,2,0\n3,0,11,0,28,0,25,0,14,0,50,0\n18,0,16,0,30,0,10,0,42,0,12,0\n36,0,8,0,49,0,21,0,23,0,44,0\n29,0,1,0,24,0,22,0,46,0,33,0\n48,0,17,0,20,0,26,0,6,0,11,0\n32,0,47,0,4,0,45,0,39,0,28,0\n49,0,15,0,38,0,14,0,30,0,21,0\n33,0,10,0,7,0,27,0,12,0,1,0\n29,0,31,0,35,0,16,0,3,0,43,0\n8,0,23,0,26,0,2,0,44,0,18,0\n13,0,19,0,40,0,46,0,50,0,41,0\n24,0,48,0,36,0,34,0,9,0,42,0\n22,0,5,0,30,0,37,0,25,0,32,0\n17,0,33,0,26,0,3,0,27,0,38,0\n41,0,44,0,6,0,35,0,28,0,40,0\n31,0,42,0,23,0,19,0,10,0,20,0\n25,0,43,0,7,0,46,0,24,0,37,0\n8,0,5,0,29,0,4,0,15,0,11,0\n13,0,1,0,2,0,39,0,34,0,12,0\n9,0,18,0,36,0,14,0,16,0,45,0\n50,0,21,0,49,0,22,0,48,0,47,0\n41,0,33,0,31,0,38,0,23,0,5,0\n24,0,3,0,26,0,20,0,8,0,40,0\n44,0,34,0,19,0,14,0,10,0,11,0\n30,0,49,0,45,0,43,0,18,0,13,0\n35,0,6,0,22,0,50,0,36,0,42,0\n2,0,12,0,28,0,29,0,39,0,48,0\n25,0,47,0,21,0,16,0,1,0,32,0\n37,0,9,0,4,0,17,0,46,0,27,0\n15,0,26,0,43,0,7,0,6,0,31,0\n8,0,11,0,22,0,23,0,20,0,33,0\n24,0,12,0,40,0,21,0,38,0,28,0\n1,0,37,0,17,0,50,0,48,0,10,0\n41,0,29,0,16,0,19,0,32,0,30,0\n9,0,15,0,44,0,25,0,4,0,2,0\n3,0,45,0,5,0,7,0,13,0,49,0\n18,0,46,0,14,0,35,0,42,0,27,0\n36,0,34,0,37,0,47,0,39,0,26,0\n28,0,48,0,15,0,16,0,22,0,20,0\n40,0,31,0,1,0,11,0,49,0,29,0\n42,0,21,0,32,0,43,0,41,0,17,0\n10,0,13,0,44,0,14,0,6,0,5,0\n9,0,19,0,25,0,34,0,18,0,8,0\n24,0,4,0,27,0,35,0,30,0,47,0\n33,0,39,0,38,0,50,0,23,0,7,0\n3,0,46,0,2,0,45,0,36,0,12,0\n19,0,14,0,43,0,22,0,1,0,26,0\n6,0,28,0,49,0,27,0,9,0,41,0\n42,0,29,0,20,0,5,0,21,0,34,0\n15,0,47,0,2,0,10,0,40,0,46,0\n45,0,31,0,4,0,50,0,30,0,24,0\n48,0,11,0,18,0,32,0,13,0,33,0\n38,0,7,0,17,0,36,0,44,0,16,0\n39,0,35,0,37,0,3,0,8,0,12,0\n23,0,41,0,19,0,25,0,24,0,6,0\n31,0,20,0,21,0,18,0,4,0,1,0\n22,0,13,0,27,0,38,0,2,0,36,0\n15,0,50,0,3,0,32,0,5,0,9,0\n23,0,46,0,30,0,34,0,26,0,28,0\n43,0,40,0,42,0,7,0,39,0,8,0\n37,0,16,0,49,0,35,0,44,0,11,0\n17,0,14,0,47,0,25,0,12,0,48,0\n45,0,33,0,50,0,10,0,29,0,6,0\n3,0,9,0,23,0,30,0,28,0,1,0\n27,0,11,0,2,0,21,0,36,0,43,0\n17,0,39,0,18,0,41,0,24,0,22,0\n46,0,47,0,12,0,8,0,44,0,31,0\n34,0,13,0,20,0,40,0,33,0,16,0\n5,0,25,0,10,0,48,0,26,0,35,0\n29,0,7,0,32,0,14,0,4,0,49,0\n38,0,45,0,37,0,15,0,19,0,42,0\n43,0,33,0,30,0,47,0,20,0,44,0\n22,0,25,0,39,0,11,0,13,0,31,0\n36,0,1,0,6,0,24,0,5,0,18,0\n37,0,12,0,26,0,45,0,32,0,41,0\n21,0,48,0,27,0,19,0,3,0,7,0\n46,0,34,0,15,0,42,0,49,0,17,0\n16,0,4,0,50,0,23,0,14,0,2,0\n35,0,8,0,10,0,9,0,38,0,29,0\n28,0,18,0,22,0,40,0,37,0,7,0\n"
  },
  {
    "path": "schedules/50_14.csv",
    "content": "29,0,20,0,22,0,4,0,26,0,10,0\n34,0,1,0,6,0,37,0,11,0,2,0\n21,0,16,0,32,0,43,0,40,0,28,0\n30,0,7,0,35,0,27,0,38,0,15,0\n48,0,23,0,12,0,17,0,13,0,3,0\n18,0,41,0,47,0,33,0,14,0,50,0\n9,0,25,0,19,0,45,0,46,0,36,0\n39,0,44,0,5,0,31,0,49,0,24,0\n42,0,7,0,11,0,8,0,4,0,35,0\n14,0,21,0,34,0,3,0,27,0,22,0\n26,0,18,0,28,0,46,0,50,0,16,0\n43,0,25,0,49,0,48,0,13,0,20,0\n41,0,32,0,9,0,44,0,17,0,45,0\n38,0,24,0,40,0,23,0,36,0,1,0\n6,0,33,0,8,0,15,0,31,0,5,0\n30,0,42,0,10,0,47,0,37,0,19,0\n12,0,2,0,28,0,39,0,29,0,35,0\n17,1,46,0,34,0,4,1,49,0,50,0\n27,0,6,0,32,0,20,0,25,0,8,0\n19,0,14,0,48,0,16,0,40,0,37,0\n26,0,13,0,23,0,18,0,31,0,11,0\n9,0,24,0,15,0,22,0,5,0,42,0\n7,0,41,0,12,0,21,0,39,0,30,0\n33,0,1,0,45,0,43,0,10,0,36,0\n44,0,29,0,38,0,3,0,47,0,2,0\n11,0,22,0,46,0,42,0,48,0,17,0\n28,0,23,0,24,0,7,0,19,0,34,0\n20,0,43,0,15,0,14,0,41,0,40,0\n31,0,4,0,13,0,38,0,10,0,45,0\n8,0,2,0,21,0,25,0,18,0,5,0\n29,0,6,0,49,0,3,0,1,0,50,0\n30,0,36,0,9,0,39,0,33,0,32,0\n26,0,37,0,27,0,16,0,44,0,12,0\n47,0,38,0,21,0,35,0,15,0,19,0\n46,0,3,0,31,0,5,0,11,0,28,0\n45,0,50,0,2,0,25,0,10,0,48,0\n42,0,44,0,20,0,36,0,24,0,39,0\n7,0,32,0,1,0,14,0,18,0,29,0\n47,0,17,0,4,0,8,0,41,0,34,0\n40,0,35,0,13,0,27,0,33,0,16,0\n12,0,43,0,26,0,6,0,9,0,22,0\n23,0,37,0,21,0,30,0,49,0,20,0\n15,0,10,0,41,0,34,0,11,0,47,0\n36,0,4,0,29,0,14,0,13,0,16,0\n2,0,17,0,27,0,24,0,42,0,19,0\n25,0,33,0,23,0,39,0,48,0,7,0\n37,0,8,0,50,0,3,0,38,0,43,0\n49,0,18,0,45,0,35,0,6,0,28,0\n31,0,12,0,22,0,46,0,9,0,40,0\n32,0,5,0,30,0,44,0,26,0,1,0\n15,0,39,0,42,0,13,0,43,0,34,0\n3,0,6,0,16,0,47,0,33,0,7,0\n24,0,11,0,20,0,18,0,9,0,37,0\n25,0,45,0,29,0,17,0,22,0,30,0\n49,0,28,0,19,0,4,0,32,0,2,0\n10,0,35,0,23,0,14,0,26,0,46,0\n48,0,44,0,36,0,12,0,8,0,5,0\n1,0,38,0,31,0,27,0,21,0,41,0\n40,0,47,0,42,0,50,0,25,0,6,0\n32,0,3,0,35,0,24,0,22,0,10,0\n39,0,49,0,14,0,26,0,8,0,19,0\n44,0,21,0,33,0,11,0,17,0,23,0\n40,0,31,0,2,0,46,0,13,0,29,0\n9,0,34,0,12,0,28,0,38,0,20,0\n4,0,43,0,48,0,27,0,30,0,18,0\n16,0,41,0,45,0,1,0,37,0,5,0\n15,0,50,0,11,0,7,0,36,0,49,0\n10,0,14,0,28,0,12,0,17,0,25,0\n8,0,40,0,22,0,30,0,33,0,2,0\n20,0,41,0,39,0,42,0,3,0,45,0\n6,0,4,0,24,0,43,0,46,0,21,0\n23,0,19,0,27,0,50,0,29,0,9,0\n15,0,1,0,48,0,7,0,31,0,26,0\n38,0,16,0,18,0,44,0,34,0,32,0\n35,0,47,0,5,0,36,0,13,0,37,0\n49,0,9,0,8,0,21,0,40,0,45,0\n26,0,50,0,17,0,27,0,39,0,4,0\n42,0,33,0,46,0,38,0,23,0,32,0\n13,0,18,0,22,0,5,0,19,0,41,0\n11,0,3,0,25,0,16,0,31,0,20,0\n44,0,37,0,10,0,15,0,28,0,7,0\n48,0,24,0,2,0,47,0,14,0,6,0\n34,0,36,0,35,0,29,0,43,0,30,0\n1,0,16,0,11,0,12,0,39,0,50,0\n7,0,8,0,45,0,38,0,33,0,26,0\n49,0,17,0,37,0,47,0,25,0,31,0\n27,0,28,0,36,0,41,0,23,0,22,0\n4,0,15,0,18,0,3,0,19,0,12,0\n43,0,5,0,14,0,32,0,42,0,29,0\n6,0,40,0,30,0,44,0,13,0,24,0\n20,0,1,0,9,0,2,0,46,0,35,0\n34,0,48,0,31,0,10,0,21,0,19,0\n43,0,7,0,16,0,49,0,38,0,22,0\n11,0,45,0,30,0,12,0,14,0,32,0\n1,0,25,0,4,0,44,0,15,0,23,0\n6,0,41,0,17,0,9,0,48,0,35,0\n5,0,33,0,13,0,50,0,28,0,34,0\n26,0,3,0,21,0,2,0,36,0,42,0\n10,0,47,0,39,0,20,0,40,0,18,0\n24,0,37,0,46,0,29,0,8,0,27,0\n44,0,50,0,31,0,14,0,22,0,35,0\n34,0,16,0,2,0,45,0,43,0,23,0\n7,0,13,0,25,0,9,0,4,0,3,0\n49,0,33,0,10,0,27,0,24,0,12,0\n29,0,40,0,26,0,11,0,41,0,48,0\n39,0,46,0,18,0,15,0,30,0,37,0\n47,0,36,0,8,0,21,0,1,0,28,0\n19,0,17,0,38,0,5,0,6,0,20,0\n42,0,12,0,35,0,32,0,49,0,48,0\n3,0,24,0,34,0,41,0,25,0,26,0\n14,0,30,0,8,0,16,0,10,0,9,0\n17,0,36,0,31,0,43,0,2,0,18,0\n29,0,37,0,33,0,4,0,20,0,21,0\n19,0,46,0,44,0,13,0,1,0,42,0\n22,0,28,0,39,0,6,0,38,0,11,0\n47,0,27,0,50,0,15,0,32,0,45,0\n5,0,40,0,17,0,7,0,23,0,4,0\n"
  },
  {
    "path": "schedules/50_2.csv",
    "content": "37,0,32,0,39,0,49,0,25,0,11,0\n28,0,44,0,42,0,27,0,20,0,7,0\n24,0,50,0,33,0,6,0,9,0,12,0\n5,0,29,0,17,0,31,0,21,0,22,0\n16,0,8,0,45,0,10,0,23,0,35,0\n43,0,36,0,47,0,34,0,1,0,3,0\n14,0,19,0,4,0,15,0,40,0,46,0\n26,0,41,0,13,0,30,0,48,0,2,0\n38,0,22,0,50,0,18,0,45,0,37,0\n20,0,31,0,32,0,35,0,24,0,47,0\n10,0,17,0,42,0,36,0,19,0,25,0\n27,0,1,0,40,0,2,0,39,0,5,0\n18,0,8,0,7,0,26,0,6,0,4,0\n9,0,49,0,30,0,38,0,34,0,46,0\n12,0,48,0,23,0,3,0,15,0,29,0\n41,0,21,0,11,0,14,0,44,0,16,0\n13,0,33,0,40,1,28,0,43,0,35,1\n"
  },
  {
    "path": "schedules/50_3.csv",
    "content": "34,0,38,0,44,0,3,0,17,0,1,0\n29,0,2,0,22,0,43,0,27,0,36,0\n31,0,39,0,30,0,28,0,6,0,13,0\n24,0,47,0,23,0,42,0,46,0,8,0\n4,0,45,0,10,0,50,0,12,0,21,0\n19,0,40,0,48,0,14,0,33,0,11,0\n37,0,41,0,9,0,26,0,20,0,49,0\n15,0,35,0,5,0,32,0,18,0,25,0\n16,0,22,0,45,0,7,0,31,0,1,0\n50,0,2,0,46,0,6,0,34,0,40,0\n8,0,38,0,29,0,10,0,11,0,26,0\n44,0,14,0,15,0,24,0,41,0,28,0\n25,0,39,0,20,0,23,0,4,0,43,0\n17,0,32,0,21,0,37,0,36,0,30,0\n47,0,13,0,9,0,35,0,7,0,19,0\n3,0,27,0,33,0,16,0,49,0,5,0\n18,0,12,0,20,0,42,0,48,0,22,0\n28,0,32,0,34,0,23,0,29,0,45,0\n15,0,10,0,17,0,2,0,31,0,47,0\n25,0,36,0,49,0,13,0,38,0,40,0\n35,0,26,0,24,0,48,0,21,0,16,0\n1,0,27,0,4,0,19,0,30,0,8,0\n43,0,44,0,46,0,12,0,9,0,33,0\n6,0,42,0,41,0,5,0,7,0,11,0\n14,0,50,0,37,0,3,0,18,0,39,0\n"
  },
  {
    "path": "schedules/50_4.csv",
    "content": "33,0,25,0,20,0,39,0,24,0,37,0\n45,0,15,0,27,0,18,0,41,0,14,0\n40,0,32,0,46,0,48,0,10,0,12,0\n19,0,5,0,22,0,8,0,34,0,44,0\n50,0,35,0,13,0,49,0,29,0,21,0\n42,0,6,0,4,0,23,0,38,0,7,0\n30,0,11,0,28,0,36,0,16,0,47,0\n26,0,17,0,9,0,2,0,43,0,1,0\n31,0,22,0,12,0,3,0,35,0,14,0\n49,0,24,0,7,0,15,0,34,0,10,0\n23,0,18,0,39,0,5,0,40,0,28,0\n38,0,16,0,8,0,29,0,17,0,20,0\n44,0,47,0,13,0,32,0,43,0,27,0\n2,0,42,0,36,0,37,0,41,0,19,0\n45,0,25,0,4,0,9,0,46,0,30,0\n33,0,48,0,26,0,50,0,31,0,11,0\n3,0,21,0,34,0,6,0,1,0,20,0\n14,1,10,0,39,0,8,1,13,0,2,0\n43,1,35,0,37,0,40,1,4,0,16,0\n32,0,26,0,29,0,22,0,42,0,45,0\n11,0,12,0,19,0,27,0,23,0,49,0\n30,0,24,0,50,0,5,0,17,0,6,0\n7,0,3,0,28,0,46,0,41,0,33,0\n1,0,18,0,31,0,25,0,36,0,44,0\n47,0,15,0,9,0,21,0,48,0,38,0\n49,0,20,0,30,0,22,0,40,0,2,0\n12,0,5,0,41,0,13,0,26,0,16,0\n24,0,14,0,1,0,32,0,19,0,4,0\n8,0,7,0,11,0,18,0,35,0,9,0\n23,0,46,0,43,0,15,0,29,0,31,0\n34,0,39,0,36,0,27,0,38,0,50,0\n6,0,48,0,44,0,28,0,45,0,37,0\n17,0,47,0,10,0,3,0,42,0,25,0\n33,0,14,0,43,0,21,0,8,0,40,0\n"
  },
  {
    "path": "schedules/50_5.csv",
    "content": "6,0,18,0,30,0,39,0,34,0,26,0\n42,0,10,0,3,0,46,0,1,0,24,0\n36,0,12,0,14,0,7,0,20,0,44,0\n38,0,22,0,48,0,8,0,2,0,33,0\n23,0,25,0,45,0,9,0,16,0,11,0\n37,0,28,0,43,0,5,0,41,0,29,0\n31,0,4,0,32,0,15,0,35,0,40,0\n50,0,17,0,27,0,21,0,13,0,19,0\n49,0,42,0,7,0,47,0,8,0,18,0\n16,0,36,0,38,0,28,0,6,0,24,0\n32,0,3,0,45,0,2,0,12,0,5,0\n34,0,15,0,20,0,23,0,50,0,43,0\n9,0,48,0,41,0,35,0,13,0,14,0\n37,0,46,0,11,0,30,0,27,0,31,0\n21,0,29,0,39,0,44,0,49,0,10,0\n40,0,22,0,1,0,47,0,19,0,25,0\n17,0,26,0,9,0,4,0,33,0,7,0\n31,1,18,0,2,0,20,1,41,0,16,0\n37,0,49,0,13,0,12,0,24,0,34,0\n1,0,15,0,11,0,6,0,21,0,48,0\n35,0,36,0,33,0,29,0,19,0,3,0\n47,0,46,0,45,0,44,0,50,0,4,0\n23,0,38,0,5,0,42,0,40,0,39,0\n17,0,30,0,8,0,43,0,25,0,14,0\n26,0,28,0,10,0,32,0,22,0,27,0\n4,0,29,0,13,0,20,0,1,0,18,0\n34,0,31,0,21,0,47,0,3,0,9,0\n48,0,50,0,42,0,36,0,25,0,37,0\n44,0,19,0,23,0,41,0,32,0,30,0\n12,0,43,0,35,0,38,0,11,0,26,0\n14,0,33,0,6,0,10,0,45,0,40,0\n16,0,46,0,5,0,49,0,22,0,17,0\n24,0,7,0,2,0,39,0,27,0,15,0\n8,0,50,0,9,0,28,0,12,0,1,0\n32,0,34,0,29,0,14,0,11,0,42,0\n20,0,22,0,30,0,45,0,21,0,35,0\n24,0,18,0,44,0,33,0,5,0,31,0\n23,0,37,0,47,0,17,0,2,0,6,0\n15,0,41,0,8,0,46,0,36,0,26,0\n27,0,4,0,25,0,38,0,49,0,3,0\n16,0,40,0,43,0,7,0,10,0,13,0\n28,0,39,0,20,0,19,0,48,0,31,0\n"
  },
  {
    "path": "schedules/50_6.csv",
    "content": "43,0,6,0,41,0,46,0,7,0,49,0\n26,0,16,0,42,0,45,0,20,0,30,0\n37,0,29,0,18,0,28,0,24,0,38,0\n5,0,9,0,25,0,32,0,50,0,1,0\n34,0,10,0,40,0,27,0,8,0,2,0\n17,0,33,0,11,0,13,0,4,0,12,0\n36,0,23,0,22,0,3,0,44,0,14,0\n39,0,47,0,31,0,15,0,19,0,35,0\n21,0,43,0,32,0,48,0,16,0,27,0\n28,0,37,0,7,0,33,0,26,0,1,0\n17,0,50,0,2,0,29,0,42,0,41,0\n44,0,8,0,24,0,6,0,31,0,5,0\n15,0,20,0,49,0,13,0,3,0,21,0\n46,0,45,0,47,0,11,0,40,0,22,0\n18,0,9,0,12,0,36,0,35,0,10,0\n4,0,19,0,30,0,38,0,25,0,23,0\n48,0,34,0,26,0,14,0,39,0,50,0\n33,0,44,0,29,0,49,0,40,0,47,0\n27,0,46,0,37,0,20,0,35,0,17,0\n3,0,31,0,7,0,32,0,4,0,10,0\n2,0,11,0,30,0,6,0,36,0,48,0\n41,0,21,0,15,0,25,0,18,0,22,0\n1,0,39,0,38,0,45,0,43,0,8,0\n19,0,42,0,24,0,14,0,9,0,13,0\n28,0,12,0,23,0,16,0,5,0,34,0\n4,0,35,0,27,0,49,0,26,0,41,0\n38,0,50,0,10,0,44,0,15,0,11,0\n33,0,8,0,14,0,46,0,9,0,21,0\n6,0,25,0,16,0,37,0,13,0,47,0\n22,0,1,0,42,0,12,0,19,0,48,0\n23,0,7,0,2,0,20,0,24,0,39,0\n3,0,40,0,17,0,43,0,28,0,18,0\n34,0,45,0,36,0,32,0,29,0,31,0\n30,0,41,0,10,0,5,0,37,0,14,0\n44,0,16,0,9,0,4,0,46,0,39,0\n12,0,47,0,50,0,7,0,18,0,8,0\n38,0,3,0,6,0,42,0,34,0,35,0\n36,0,19,0,26,0,40,0,5,0,21,0\n31,0,43,0,30,0,33,0,22,0,2,0\n49,0,25,0,48,0,24,0,45,0,17,0\n15,0,13,0,1,0,27,0,23,0,29,0\n20,0,32,0,8,0,11,0,28,0,41,0\n37,0,36,0,4,0,47,0,43,0,42,0\n7,0,21,0,34,0,44,0,30,0,17,0\n49,0,18,0,14,0,16,0,1,0,2,0\n9,0,48,0,38,0,40,0,31,0,23,0\n50,0,13,0,35,0,28,0,45,0,22,0\n39,0,5,0,27,0,25,0,11,0,3,0\n10,0,29,0,20,0,33,0,19,0,6,0\n46,0,15,0,32,0,12,0,24,0,26,0\n"
  },
  {
    "path": "schedules/50_7.csv",
    "content": "23,0,16,0,35,0,36,0,41,0,8,0\n28,0,29,0,33,0,25,0,22,0,6,0\n4,0,12,0,24,0,47,0,13,0,27,0\n40,0,20,0,34,0,5,0,46,0,49,0\n19,0,10,0,15,0,1,0,26,0,32,0\n44,0,21,0,17,0,45,0,42,0,43,0\n11,0,7,0,31,0,14,0,50,0,18,0\n37,0,30,0,3,0,38,0,2,0,48,0\n9,0,26,0,40,0,39,0,28,0,24,0\n43,0,16,0,12,0,1,0,20,0,35,0\n50,0,34,0,22,0,19,0,8,0,17,0\n18,0,38,0,10,0,29,0,23,0,48,0\n21,0,6,0,30,0,31,0,39,0,5,0\n44,0,47,0,3,0,46,0,7,0,33,0\n42,0,2,0,36,0,11,0,9,0,4,0\n27,0,37,0,15,0,14,0,25,0,49,0\n45,0,32,0,20,0,41,0,13,0,50,0\n30,1,29,0,46,0,7,1,19,0,16,0\n10,1,40,0,6,0,21,1,18,0,47,0\n14,0,12,0,8,0,2,0,43,0,33,0\n22,0,48,0,4,0,32,0,24,0,15,0\n28,0,45,0,35,0,37,0,42,0,34,0\n26,0,11,0,27,0,23,0,44,0,31,0\n13,0,39,0,36,0,38,0,1,0,5,0\n9,0,41,0,25,0,49,0,3,0,17,0\n42,0,24,0,46,0,37,0,50,0,12,0\n45,0,11,0,47,0,29,0,15,0,35,0\n1,0,48,0,33,0,21,0,27,0,40,0\n25,0,26,0,5,0,38,0,7,0,8,0\n41,0,17,0,16,0,28,0,10,0,31,0\n2,0,14,0,39,0,34,0,23,0,32,0\n49,0,6,0,43,0,3,0,36,0,19,0\n13,0,18,0,22,0,44,0,9,0,30,0\n4,0,8,0,42,0,20,0,29,0,31,0\n47,0,5,0,14,0,16,0,45,0,48,0\n35,0,50,0,36,0,26,0,33,0,3,0\n18,0,43,0,1,0,24,0,34,0,25,0\n28,0,46,0,23,0,4,0,30,0,49,0\n41,0,2,0,6,0,13,0,7,0,15,0\n38,0,19,0,9,0,21,0,12,0,11,0\n37,0,20,0,39,0,10,0,22,0,44,0\n32,0,40,0,29,0,27,0,17,0,30,0\n36,0,31,0,25,0,34,0,46,0,47,0\n15,0,50,0,28,0,21,0,43,0,38,0\n41,0,37,0,1,0,26,0,4,0,18,0\n13,0,32,0,49,0,11,0,16,0,33,0\n7,0,39,0,48,0,17,0,20,0,12,0\n8,0,27,0,10,0,9,0,6,0,45,0\n22,0,23,0,14,0,40,0,42,0,3,0\n2,0,5,0,44,0,35,0,19,0,24,0\n29,0,21,0,34,0,13,0,37,0,26,0\n8,0,43,0,11,0,48,0,10,0,46,0\n45,0,49,0,7,0,1,0,22,0,31,0\n16,0,44,0,25,0,40,0,50,0,2,0\n9,0,20,0,33,0,30,0,15,0,23,0\n47,0,42,0,19,0,27,0,41,0,39,0\n35,0,17,0,38,0,6,0,14,0,4,0\n32,0,3,0,5,0,12,0,28,0,18,0\n24,0,30,0,10,0,36,0,7,0,21,0\n"
  },
  {
    "path": "schedules/50_8.csv",
    "content": "1,0,15,0,27,0,26,0,3,0,50,0\n46,0,40,0,7,0,48,0,18,0,13,0\n8,0,33,0,5,0,6,0,29,0,19,0\n35,0,16,0,17,0,28,0,36,0,4,0\n37,0,2,0,24,0,23,0,34,0,45,0\n41,0,38,0,30,0,21,0,9,0,11,0\n25,0,14,0,10,0,32,0,47,0,42,0\n31,0,22,0,44,0,43,0,39,0,12,0\n20,0,16,0,15,0,49,0,19,0,37,0\n13,0,36,0,29,0,6,0,24,0,41,0\n23,0,26,0,14,0,35,0,11,0,8,0\n1,0,43,0,42,0,17,0,32,0,2,0\n10,0,28,0,46,0,3,0,39,0,30,0\n31,0,7,0,49,0,27,0,33,0,38,0\n44,0,25,0,12,0,34,0,21,0,48,0\n20,0,18,0,4,0,50,0,47,0,9,0\n22,0,40,0,35,0,5,0,45,0,11,0\n24,1,29,0,39,0,7,1,15,0,2,0\n42,0,38,0,17,0,44,0,8,0,3,0\n28,0,26,0,33,0,37,0,50,0,25,0\n49,0,40,0,21,0,4,0,10,0,22,0\n9,0,14,0,34,0,1,0,31,0,13,0\n32,0,41,0,48,0,45,0,16,0,6,0\n19,0,5,0,47,0,46,0,36,0,23,0\n12,0,27,0,20,0,30,0,43,0,18,0\n21,0,35,0,44,0,2,0,49,0,13,0\n45,0,3,0,4,0,31,0,8,0,39,0\n50,0,40,0,17,0,24,0,14,0,38,0\n9,0,43,0,46,0,25,0,16,0,29,0\n34,0,7,0,28,0,20,0,19,0,32,0\n1,0,48,0,26,0,22,0,47,0,23,0\n6,0,11,0,33,0,15,0,12,0,42,0\n5,0,37,0,10,0,41,0,27,0,18,0\n30,0,45,0,8,0,36,0,43,0,25,0\n46,0,16,0,39,0,1,0,24,0,21,0\n20,0,23,0,44,0,40,0,32,0,33,0\n47,0,14,0,12,0,41,0,15,0,28,0\n48,0,22,0,19,0,31,0,30,0,37,0\n5,0,13,0,26,0,2,0,38,0,4,0\n9,0,6,0,17,0,10,0,35,0,7,0\n3,0,18,0,49,0,29,0,11,0,34,0\n36,0,42,0,21,0,27,0,50,0,23,0\n43,0,24,0,40,0,12,0,19,0,33,0\n30,0,25,0,5,0,13,0,17,0,15,0\n18,0,2,0,47,0,3,0,16,0,31,0\n34,0,8,0,50,0,41,0,7,0,22,0\n27,0,32,0,39,0,29,0,38,0,35,0\n1,0,36,0,11,0,48,0,10,0,20,0\n42,0,9,0,28,0,49,0,26,0,45,0\n37,0,4,0,6,0,44,0,14,0,46,0\n39,0,13,0,34,0,17,0,33,0,47,0\n3,0,48,0,7,0,43,0,5,0,21,0\n12,0,10,0,50,0,2,0,16,0,8,0\n37,0,15,0,32,0,36,0,9,0,40,0\n18,0,23,0,24,0,49,0,22,0,6,0\n38,0,25,0,11,0,1,0,19,0,4,0\n29,0,14,0,45,0,30,0,26,0,44,0\n42,0,31,0,41,0,35,0,46,0,20,0\n28,0,24,0,8,0,27,0,48,0,9,0\n32,0,49,0,11,0,50,0,5,0,39,0\n7,0,29,0,4,0,37,0,36,0,12,0\n45,0,35,0,33,0,46,0,18,0,1,0\n27,0,22,0,3,0,14,0,16,0,13,0\n6,0,2,0,31,0,25,0,40,0,28,0\n17,0,19,0,26,0,21,0,41,0,20,0\n43,0,23,0,38,0,34,0,10,0,15,0\n47,0,30,0,24,0,44,0,42,0,7,0\n"
  },
  {
    "path": "schedules/50_9.csv",
    "content": "40,0,6,0,1,0,8,0,12,0,33,0\n49,0,38,0,7,0,29,0,4,0,26,0\n5,0,44,0,41,0,32,0,13,0,43,0\n30,0,42,0,17,0,50,0,2,0,18,0\n21,0,28,0,15,0,22,0,45,0,20,0\n3,0,24,0,14,0,25,0,37,0,36,0\n11,0,34,0,27,0,9,0,46,0,16,0\n39,0,10,0,48,0,19,0,23,0,35,0\n47,0,42,0,18,0,31,0,29,0,8,0\n41,0,15,0,2,0,28,0,33,0,3,0\n4,0,30,0,24,0,32,0,16,0,45,0\n39,0,6,0,7,0,48,0,13,0,22,0\n21,0,46,0,12,0,19,0,50,0,44,0\n36,0,26,0,35,0,9,0,27,0,20,0\n5,0,49,0,40,0,14,0,17,0,34,0\n38,0,37,0,23,0,31,0,47,0,43,0\n25,0,11,0,32,0,10,0,1,0,50,0\n3,0,48,0,7,0,16,0,30,0,18,0\n2,0,17,0,13,0,20,0,26,0,24,0\n22,0,5,0,29,0,37,0,33,0,34,0\n31,0,12,0,27,0,25,0,43,0,10,0\n41,0,38,0,1,0,40,0,42,0,23,0\n44,0,46,0,28,0,49,0,35,0,6,0\n36,0,14,0,11,0,45,0,47,0,19,0\n15,0,8,0,4,0,21,0,39,0,9,0\n23,0,1,0,43,0,7,0,2,0,30,0\n17,0,16,0,48,0,22,0,12,0,41,0\n11,0,19,0,3,0,40,0,24,0,44,0\n9,0,10,0,36,0,28,0,29,0,38,0\n46,0,13,0,31,0,8,0,32,0,21,0\n26,0,18,0,25,0,34,0,6,0,15,0\n50,0,20,0,33,0,4,0,49,0,47,0\n37,0,45,0,5,0,27,0,42,0,39,0\n35,0,11,0,29,0,14,0,32,0,41,0\n40,0,26,0,19,0,30,0,31,0,28,0\n2,0,48,0,34,0,38,0,50,0,15,0\n18,0,22,0,24,0,46,0,27,0,49,0\n1,0,5,0,4,0,47,0,3,0,35,0\n39,0,20,0,16,0,14,0,43,0,42,0\n23,0,33,0,45,0,9,0,13,0,25,0\n17,0,10,0,44,0,36,0,8,0,7,0\n6,0,12,0,30,0,21,0,37,0,29,0\n28,0,43,0,35,0,24,0,34,0,50,0\n33,0,9,0,40,0,32,0,39,0,18,0\n7,0,17,0,31,0,46,0,15,0,14,0\n13,0,19,0,6,0,27,0,38,0,3,0\n45,0,26,0,1,0,48,0,44,0,20,0\n8,0,25,0,49,0,2,0,37,0,11,0\n21,0,5,0,47,0,41,0,16,0,10,0\n22,0,42,0,36,0,12,0,4,0,23,0\n32,0,35,0,38,0,17,0,3,0,45,0\n31,0,34,0,39,0,2,0,1,0,44,0\n41,0,47,0,7,0,6,0,9,0,24,0\n11,0,18,0,12,0,20,0,5,0,13,0\n22,0,8,0,27,0,50,0,14,0,30,0\n16,0,33,0,21,0,36,0,23,0,28,0\n19,0,10,0,42,0,49,0,15,0,26,0\n46,0,43,0,37,0,4,0,40,0,48,0\n29,0,47,0,44,0,25,0,22,0,17,0\n38,0,9,0,14,0,24,0,1,0,12,0\n8,0,50,0,23,0,5,0,3,0,26,0\n49,0,34,0,36,0,41,0,30,0,13,0\n32,0,28,0,19,0,18,0,43,0,4,0\n27,0,40,0,25,0,21,0,20,0,7,0\n33,0,48,0,6,0,11,0,31,0,42,0\n39,0,45,0,2,0,46,0,29,0,10,0\n16,0,15,0,13,0,37,0,35,0,1,0\n9,0,43,0,3,0,21,0,49,0,17,0\n20,0,42,0,32,0,7,0,19,0,34,0\n10,0,4,0,14,0,6,0,44,0,18,0\n38,0,46,0,30,0,33,0,5,0,25,0\n27,0,24,0,29,0,48,0,15,0,23,0\n22,0,35,0,16,0,2,0,8,0,40,0\n28,0,26,0,12,0,11,0,39,0,47,0\n37,0,50,0,31,0,41,0,36,0,45,0\n"
  },
  {
    "path": "schedules/51_1.csv",
    "content": "39,0,14,0,30,0,12,0,45,0,28,0\n11,0,15,0,47,0,49,0,21,0,33,0\n9,0,7,0,10,0,17,0,48,0,16,0\n20,0,51,0,1,0,29,0,3,0,24,0\n2,0,35,0,8,0,4,0,27,0,41,0\n36,0,34,0,42,0,38,0,26,0,50,0\n19,0,25,0,5,0,13,0,37,0,6,0\n22,0,46,0,18,0,40,0,44,0,43,0\n23,0,32,0,47,1,31,0,39,1,41,1\n"
  },
  {
    "path": "schedules/51_10.csv",
    "content": "51,0,4,0,19,0,40,0,47,0,44,0\n41,0,8,0,11,0,12,0,9,0,38,0\n26,0,42,0,16,0,39,0,15,0,20,0\n30,0,25,0,27,0,2,0,3,0,24,0\n33,0,6,0,50,0,37,0,36,0,32,0\n28,0,34,0,7,0,5,0,1,0,10,0\n23,0,45,0,22,0,29,0,14,0,17,0\n13,0,18,0,49,0,21,0,46,0,35,0\n43,0,31,0,47,0,48,0,25,0,15,0\n4,0,41,0,33,0,26,0,3,0,34,0\n38,0,22,0,6,0,44,0,27,0,45,0\n35,0,9,0,18,0,30,0,8,0,12,0\n10,0,21,0,36,0,23,0,51,0,43,0\n32,0,42,0,2,0,46,0,7,0,14,0\n31,0,49,0,39,0,1,0,24,0,11,0\n37,0,40,0,17,0,28,0,20,0,13,0\n5,0,19,0,48,0,50,0,29,0,16,0\n12,0,36,0,45,0,15,0,2,0,34,0\n44,0,42,0,23,0,18,0,24,0,31,0\n38,0,40,0,49,0,17,0,26,0,10,0\n32,0,9,0,13,0,47,0,22,0,48,0\n20,0,5,0,30,0,21,0,33,0,11,0\n3,0,4,0,50,0,43,0,37,0,39,0\n29,0,7,0,51,0,14,0,27,0,35,0\n6,0,46,0,8,0,41,0,28,0,19,0\n16,0,1,0,13,0,25,0,45,0,24,0\n48,0,32,0,21,0,2,0,44,0,4,0\n10,0,37,0,38,0,15,0,22,0,18,0\n19,0,30,0,39,0,5,0,41,0,7,0\n6,0,16,0,20,0,9,0,14,0,49,0\n43,0,17,0,27,0,46,0,33,0,31,0\n47,0,50,0,28,0,11,0,3,0,23,0\n26,0,25,0,1,0,8,0,36,0,29,0\n34,0,12,0,42,0,35,0,51,0,40,0\n2,0,39,0,14,0,19,0,43,0,38,0\n17,0,49,0,16,0,30,0,32,0,41,0\n23,0,1,0,46,0,48,0,20,0,4,0\n33,0,28,0,26,0,51,0,22,0,9,0\n37,0,34,0,24,0,29,0,21,0,47,0\n8,0,18,0,7,0,40,0,3,0,31,0\n10,0,11,0,25,0,6,0,42,0,45,0\n50,0,13,0,44,0,15,0,27,0,12,0\n35,0,5,0,39,0,36,0,48,0,17,0\n34,0,40,0,8,0,16,0,22,0,21,0\n37,0,14,0,47,0,30,0,10,0,31,0\n18,0,33,0,32,0,1,0,19,0,45,0\n35,0,41,0,38,0,50,0,23,0,25,0\n24,0,20,0,43,0,6,0,12,0,7,0\n27,0,4,0,26,0,13,0,5,0,42,0\n49,0,2,0,36,0,9,0,44,0,28,0\n11,0,15,0,29,0,3,0,51,0,46,0\n7,0,33,0,47,0,16,0,8,0,38,0\n12,0,31,0,22,0,4,0,6,0,39,0\n44,0,19,0,10,0,20,0,1,0,35,0\n46,0,26,0,45,0,37,0,30,0,50,0\n13,0,29,0,27,0,43,0,49,0,32,0\n36,0,9,0,3,0,42,0,17,0,21,0\n41,0,15,0,14,0,5,0,40,0,24,0\n28,0,48,0,11,0,25,0,18,0,34,0\n2,0,51,0,45,0,23,0,13,0,8,0\n32,0,3,0,20,0,36,0,31,0,38,0\n22,0,19,0,50,0,49,0,42,0,24,0\n29,0,44,0,37,0,40,0,11,0,7,0\n39,0,12,0,21,0,14,0,33,0,25,0\n46,0,9,0,43,0,34,0,5,0,23,0\n2,0,17,0,6,0,18,0,47,0,26,0\n16,0,48,0,41,0,51,0,27,0,10,0\n35,0,15,0,30,0,4,0,28,0,1,0\n23,0,40,0,9,0,25,0,39,0,32,0\n22,0,3,0,44,0,2,0,5,0,46,0\n45,0,48,0,7,0,21,0,26,0,49,0\n43,0,8,0,15,0,11,0,17,0,30,0\n6,0,51,0,31,0,50,0,34,0,38,0\n1,0,42,0,14,0,41,0,13,0,37,0\n24,0,29,0,4,0,10,0,20,0,18,0\n36,0,27,0,28,0,12,0,47,0,19,0\n35,0,11,0,31,0,33,0,16,0,2,0\n34,0,14,0,13,0,39,0,44,0,8,0\n25,0,5,0,49,0,18,0,37,0,51,0\n1,0,9,0,21,0,50,0,40,0,27,0\n45,0,47,0,20,0,22,0,41,0,43,0\n4,0,46,0,17,0,36,0,7,0,16,0\n35,0,24,0,10,0,26,0,32,0,12,0\n33,0,15,0,3,0,23,0,19,0,6,0\n42,0,30,0,28,0,38,0,48,0,29,0\n"
  },
  {
    "path": "schedules/51_11.csv",
    "content": "23,0,41,0,50,0,11,0,14,0,5,0\n12,0,17,0,21,0,32,0,40,0,49,0\n27,0,45,0,36,0,31,0,19,0,10,0\n25,0,47,0,48,0,24,0,34,0,22,0\n35,0,42,0,46,0,13,0,37,0,1,0\n38,0,9,0,3,0,29,0,28,0,20,0\n16,0,39,0,8,0,18,0,7,0,51,0\n30,0,33,0,43,0,6,0,15,0,26,0\n44,0,2,0,5,0,4,0,49,0,37,0\n13,0,3,0,45,0,23,0,32,0,48,0\n21,0,22,0,36,0,9,0,35,0,7,0\n18,0,1,0,38,0,12,0,34,0,14,0\n43,0,31,0,47,0,28,0,10,0,42,0\n46,0,4,0,17,0,51,0,29,0,15,0\n2,0,41,0,16,0,44,0,39,0,19,0\n25,0,6,0,27,0,26,0,50,0,8,0\n40,0,24,0,33,0,11,0,30,0,20,0\n48,1,21,0,14,0,45,1,4,0,38,0\n23,1,5,0,29,0,22,0,43,0,16,0\n49,0,8,0,35,0,46,0,47,0,50,0\n12,0,51,0,44,0,34,0,15,0,28,0\n7,0,24,0,26,0,18,0,42,0,19,0\n9,0,32,0,27,0,40,0,13,0,41,0\n30,0,6,0,2,0,10,0,20,0,36,0\n11,0,39,0,31,0,25,0,3,0,1,0\n33,0,28,0,23,0,37,0,17,0,8,0\n15,0,4,0,14,0,9,0,47,0,19,0\n2,0,49,0,12,0,7,0,41,0,6,0\n35,0,50,0,39,0,32,0,34,0,29,0\n1,0,24,0,51,0,26,0,43,0,21,0\n13,0,17,0,10,0,25,0,11,0,22,0\n20,0,5,0,18,0,31,0,36,0,46,0\n30,0,27,0,48,0,37,0,38,0,44,0\n16,0,33,0,45,0,40,0,3,0,42,0\n9,0,2,0,29,0,47,0,6,0,24,0\n13,0,51,0,19,0,18,0,31,0,49,0\n8,0,11,0,10,0,44,0,21,0,4,0\n32,0,36,0,16,0,28,0,30,0,1,0\n40,0,43,0,25,0,3,0,46,0,37,0\n7,0,48,0,17,0,41,0,35,0,5,0\n14,0,22,0,38,0,34,0,26,0,45,0\n15,0,42,0,39,0,23,0,20,0,27,0\n50,0,21,0,29,0,12,0,33,0,13,0\n41,0,47,0,51,0,36,0,30,0,3,0\n2,0,31,0,34,0,16,0,40,0,46,0\n27,0,4,0,7,0,35,0,20,0,1,0\n12,0,18,0,25,0,43,0,9,0,23,0\n8,0,14,0,42,0,22,0,49,0,17,0\n37,0,10,0,15,0,50,0,38,0,24,0\n32,0,26,0,28,0,19,0,48,0,11,0\n44,0,33,0,6,0,5,0,45,0,39,0\n49,0,7,0,23,0,25,0,9,0,30,0\n50,0,4,0,31,0,18,0,43,0,17,0\n34,0,8,0,38,0,13,0,42,0,36,0\n37,0,19,0,22,0,41,0,21,0,3,0\n35,0,28,0,24,0,33,0,39,0,14,0\n46,0,44,0,20,0,48,0,12,0,26,0\n40,0,10,0,29,0,15,0,5,0,1,0\n51,0,11,0,45,0,27,0,47,0,2,0\n32,0,6,0,13,0,16,0,4,0,24,0\n20,0,3,0,22,0,44,0,28,0,50,0\n36,0,49,0,43,0,39,0,48,0,40,0\n46,0,51,0,34,0,10,0,33,0,7,0\n19,0,12,0,32,0,5,0,25,0,42,0\n2,0,26,0,1,0,41,0,17,0,9,0\n6,0,16,0,23,0,47,0,21,0,38,0\n15,0,30,0,8,0,35,0,45,0,31,0\n37,0,18,0,14,0,11,0,27,0,29,0\n1,0,36,0,4,0,25,0,50,0,33,0\n10,0,46,0,38,0,41,0,39,0,32,0\n19,0,40,0,23,0,51,0,22,0,6,0\n35,0,11,0,47,0,12,0,45,0,43,0\n3,0,5,0,17,0,34,0,18,0,30,0\n49,0,20,0,26,0,29,0,16,0,37,0\n27,0,15,0,13,0,2,0,7,0,28,0\n21,0,9,0,42,0,44,0,48,0,31,0\n14,0,24,0,3,0,8,0,12,0,36,0\n47,0,37,0,20,0,45,0,17,0,1,0\n18,0,32,0,22,0,33,0,15,0,2,0\n16,0,9,0,48,0,10,0,27,0,50,0\n28,0,46,0,49,0,23,0,24,0,11,0\n41,0,34,0,19,0,4,0,8,0,43,0\n38,0,42,0,6,0,25,0,35,0,51,0\n30,0,26,0,5,0,39,0,21,0,13,0\n31,0,7,0,40,0,14,0,29,0,44,0\n15,0,17,0,24,0,27,0,16,0,3,0\n19,0,33,0,1,0,48,0,49,0,38,0\n45,0,28,0,21,0,25,0,41,0,46,0\n50,0,5,0,7,0,47,0,26,0,40,0\n35,0,10,0,44,0,23,0,18,0,13,0\n39,0,4,0,30,0,22,0,12,0,42,0\n51,0,43,0,14,0,2,0,20,0,32,0\n11,0,34,0,37,0,6,0,9,0,31,0\n36,0,29,0,48,0,8,0,45,0,23,0\n"
  },
  {
    "path": "schedules/51_12.csv",
    "content": "26,0,30,0,45,0,16,0,11,0,15,0\n42,0,17,0,29,0,18,0,37,0,21,0\n3,0,39,0,20,0,9,0,36,0,31,0\n50,0,1,0,34,0,8,0,6,0,13,0\n46,0,33,0,23,0,4,0,40,0,25,0\n32,0,12,0,27,0,10,0,22,0,41,0\n44,0,24,0,47,0,5,0,48,0,2,0\n49,0,51,0,38,0,7,0,43,0,14,0\n35,0,19,0,9,0,28,0,13,0,36,0\n26,0,22,0,27,0,17,0,4,0,31,0\n32,0,37,0,5,0,16,0,23,0,34,0\n1,0,14,0,49,0,48,0,41,0,33,0\n10,0,44,0,20,0,45,0,29,0,21,0\n19,0,42,0,2,0,38,0,15,0,3,0\n28,0,43,0,47,0,12,0,35,0,40,0\n46,0,18,0,51,0,50,0,24,0,30,0\n7,0,25,0,6,0,39,0,11,0,8,0\n10,0,14,0,16,0,13,0,5,0,17,0\n28,0,22,0,20,0,41,0,44,0,37,0\n3,0,29,0,9,0,48,0,23,0,30,0\n39,0,38,0,40,0,51,0,26,0,4,0\n43,0,2,0,21,0,36,0,1,0,25,0\n8,0,27,0,24,0,45,0,47,0,42,0\n46,0,49,0,19,0,34,0,18,0,11,0\n50,0,31,0,12,0,15,0,33,0,35,0\n32,0,6,0,23,0,7,0,26,0,44,0\n21,0,16,0,5,0,4,0,41,0,36,0\n43,0,1,0,48,0,20,0,46,0,45,0\n15,0,50,0,17,0,34,0,24,0,33,0\n40,0,10,0,13,0,49,0,47,0,39,0\n29,0,11,0,6,0,28,0,31,0,42,0\n12,0,3,0,37,0,2,0,32,0,51,0\n19,0,18,0,7,0,35,0,14,0,27,0\n25,0,8,0,22,0,9,0,30,0,38,0\n43,0,49,0,45,0,5,0,28,0,26,0\n32,0,11,0,4,0,1,0,29,0,37,0\n18,0,15,0,40,0,31,0,6,0,16,0\n22,0,21,0,19,0,51,0,7,0,47,0\n25,0,48,0,39,0,27,0,42,0,34,0\n35,0,36,0,10,0,30,0,33,0,44,0\n46,0,2,0,12,0,3,0,14,0,8,0\n38,0,24,0,17,0,20,0,13,0,23,0\n41,0,9,0,26,0,50,0,19,0,37,0\n35,0,42,0,43,0,6,0,22,0,4,0\n33,0,5,0,47,0,39,0,46,0,36,0\n44,0,25,0,15,0,49,0,3,0,17,0\n18,0,32,0,41,0,51,0,8,0,45,0\n24,0,7,0,31,0,16,0,1,0,28,0\n2,0,9,0,40,0,10,0,29,0,27,0\n13,0,34,0,38,0,30,0,12,0,21,0\n20,0,14,0,48,0,50,0,11,0,23,0\n8,0,46,0,44,0,19,0,31,0,15,0\n49,0,26,0,36,0,29,0,24,0,22,0\n33,0,18,0,16,0,28,0,34,0,2,0\n30,0,39,0,41,0,1,0,38,0,35,0\n9,0,13,0,47,0,42,0,7,0,32,0\n20,0,12,0,6,0,45,0,5,0,25,0\n3,0,23,0,4,0,10,0,50,0,43,0\n37,0,14,0,11,0,48,0,40,0,21,0\n51,0,30,0,35,0,27,0,17,0,46,0\n20,0,26,0,16,0,8,0,42,0,12,0\n2,0,22,0,49,0,39,0,19,0,23,0\n29,0,47,0,25,0,50,0,41,0,3,0\n24,0,15,0,4,0,14,0,32,0,28,0\n34,0,17,0,37,0,40,0,36,0,45,0\n31,0,43,0,5,0,13,0,48,0,7,0\n10,0,18,0,38,0,44,0,1,0,11,0\n33,0,27,0,6,0,51,0,21,0,9,0\n45,0,28,0,50,0,2,0,14,0,39,0\n48,0,31,0,32,0,19,0,17,0,25,0\n42,0,36,0,37,0,10,0,46,0,7,0\n40,0,1,0,8,0,3,0,5,0,35,0\n41,0,23,0,21,0,18,0,13,0,26,0\n34,0,29,0,15,0,38,0,22,0,47,0\n4,0,12,0,33,0,49,0,44,0,6,0\n9,0,27,0,11,0,43,0,51,0,16,0\n30,0,19,0,40,0,20,0,24,0,21,0\n38,0,36,0,48,0,39,0,32,0,50,0\n33,0,45,0,13,0,4,0,29,0,7,0\n10,0,37,0,51,0,15,0,43,0,8,0\n2,0,31,0,30,0,42,0,41,0,49,0\n22,0,44,0,16,0,46,0,14,0,6,0\n26,0,47,0,23,0,1,0,20,0,27,0\n11,0,5,0,12,0,9,0,17,0,18,0\n34,0,25,0,3,0,28,0,24,0,35,0\n29,0,8,0,16,0,39,0,43,0,33,0\n44,0,45,0,23,0,51,0,13,0,42,0\n5,0,30,0,7,0,50,0,40,0,26,0\n3,0,21,0,36,0,49,0,27,0,15,0\n17,0,35,0,32,0,2,0,20,0,11,0\n14,0,25,0,38,0,31,0,37,0,47,0\n10,0,4,0,28,0,18,0,48,0,22,0\n41,0,46,0,24,0,6,0,9,0,34,0\n1,0,42,0,23,0,12,0,19,0,36,0\n49,0,50,0,35,0,16,0,45,0,32,0\n3,0,13,0,27,0,22,0,11,0,33,0\n14,0,34,0,44,0,9,0,43,0,20,0\n39,0,21,0,31,0,10,0,24,0,12,0\n40,0,17,0,7,0,15,0,1,0,41,0\n28,0,51,0,48,0,38,0,8,0,5,0\n30,0,37,0,4,0,6,0,19,0,47,0\n18,0,2,0,29,0,26,0,25,0,46,0\n"
  },
  {
    "path": "schedules/51_13.csv",
    "content": "47,0,45,0,4,0,33,0,1,0,48,0\n44,0,8,0,11,0,41,0,2,0,12,0\n29,0,6,0,25,0,42,0,30,0,46,0\n17,0,16,0,15,0,20,0,32,0,7,0\n9,0,23,0,3,0,50,0,28,0,13,0\n27,0,43,0,5,0,49,0,40,0,38,0\n14,0,31,0,22,0,37,0,19,0,36,0\n21,0,39,0,26,0,51,0,24,0,34,0\n35,0,18,0,3,0,10,0,42,0,1,0\n25,0,46,0,8,0,9,0,45,0,28,0\n44,0,30,0,48,0,17,0,7,0,33,0\n31,0,15,0,36,0,40,0,26,0,47,0\n12,0,37,0,10,0,6,0,5,0,34,0\n21,0,43,0,18,0,23,0,38,0,32,0\n11,0,14,0,39,0,27,0,4,0,13,0\n41,0,35,0,50,0,29,0,22,0,51,0\n20,0,24,0,19,0,49,0,16,0,2,0\n25,1,44,0,32,0,10,1,45,0,7,0\n40,1,6,0,21,0,3,0,39,0,5,0\n28,0,23,0,47,0,38,0,42,0,51,0\n49,0,15,0,12,0,31,0,18,0,41,0\n2,0,20,0,27,0,4,0,9,0,35,0\n33,0,16,0,24,0,11,0,36,0,50,0\n34,0,29,0,17,0,43,0,22,0,8,0\n13,0,30,0,19,0,37,0,46,0,48,0\n14,0,1,0,21,0,26,0,10,0,31,0\n36,0,38,0,16,0,25,0,39,0,12,0\n23,0,44,0,50,0,11,0,17,0,40,0\n27,0,51,0,37,0,32,0,48,0,8,0\n24,0,4,0,26,0,42,0,6,0,43,0\n29,0,47,0,7,0,35,0,13,0,14,0\n34,0,1,0,19,0,41,0,30,0,45,0\n15,0,9,0,46,0,22,0,3,0,49,0\n20,0,33,0,5,0,28,0,2,0,18,0\n39,0,17,0,4,0,10,0,23,0,25,0\n34,0,27,0,36,0,29,0,44,0,19,0\n6,0,31,0,16,0,50,0,15,0,48,0\n1,0,2,0,26,0,46,0,12,0,43,0\n28,0,38,0,30,0,11,0,35,0,22,0\n5,0,32,0,42,0,9,0,33,0,41,0\n47,0,37,0,21,0,20,0,45,0,49,0\n24,0,13,0,8,0,7,0,14,0,40,0\n51,0,18,0,16,0,3,0,44,0,34,0\n22,0,48,0,28,0,35,0,39,0,27,0\n42,0,47,0,36,0,21,0,15,0,30,0\n41,0,10,0,46,0,23,0,37,0,43,0\n12,0,20,0,14,0,50,0,17,0,51,0\n1,0,40,0,9,0,11,0,7,0,19,0\n29,0,24,0,32,0,2,0,4,0,31,0\n49,0,25,0,33,0,6,0,26,0,3,0\n38,0,18,0,13,0,8,0,45,0,5,0\n27,0,17,0,41,0,16,0,30,0,47,0\n22,0,12,0,7,0,46,0,23,0,21,0\n6,0,49,0,9,0,36,0,10,0,40,0\n1,0,24,0,25,0,18,0,34,0,48,0\n19,0,51,0,5,0,11,0,29,0,20,0\n14,0,28,0,8,0,32,0,43,0,15,0\n33,0,35,0,44,0,26,0,13,0,37,0\n2,0,45,0,3,0,50,0,42,0,31,0\n4,0,38,0,7,0,39,0,19,0,41,0\n48,0,43,0,16,0,5,0,9,0,21,0\n37,0,33,0,32,0,29,0,1,0,12,0\n23,0,35,0,6,0,14,0,45,0,27,0\n40,0,44,0,31,0,28,0,4,0,46,0\n30,0,34,0,25,0,3,0,38,0,50,0\n39,0,51,0,13,0,17,0,49,0,36,0\n20,0,22,0,47,0,18,0,24,0,10,0\n11,0,2,0,42,0,26,0,8,0,15,0\n46,0,14,0,33,0,34,0,21,0,16,0\n13,0,41,0,43,0,25,0,27,0,31,0\n32,0,50,0,22,0,44,0,47,0,6,0\n10,0,5,0,15,0,35,0,19,0,42,0\n49,0,39,0,23,0,1,0,8,0,30,0\n11,0,38,0,45,0,36,0,51,0,2,0\n7,0,28,0,26,0,29,0,4,0,18,0\n37,0,17,0,9,0,40,0,3,0,24,0\n20,0,48,0,13,0,12,0,42,0,23,0\n15,0,19,0,45,0,33,0,43,0,11,0\n50,0,4,0,16,0,35,0,8,0,49,0\n25,0,7,0,36,0,5,0,22,0,37,0\n41,0,14,0,3,0,24,0,12,0,48,0\n2,0,38,0,17,0,1,0,6,0,28,0\n21,0,51,0,31,0,44,0,10,0,9,0\n46,0,39,0,29,0,47,0,18,0,32,0\n40,0,27,0,30,0,34,0,20,0,26,0\n36,0,8,0,3,0,23,0,4,0,19,0\n28,0,35,0,12,0,45,0,24,0,21,0\n43,0,2,0,50,0,37,0,7,0,39,0\n42,0,40,0,13,0,22,0,1,0,16,0\n17,0,6,0,46,0,41,0,51,0,20,0\n5,0,26,0,18,0,32,0,31,0,30,0\n29,0,49,0,48,0,44,0,15,0,38,0\n9,0,25,0,11,0,34,0,47,0,14,0\n33,0,10,0,8,0,27,0,24,0,28,0\n50,0,18,0,6,0,21,0,19,0,17,0\n1,0,43,0,20,0,36,0,13,0,44,0\n47,0,51,0,15,0,4,0,25,0,37,0\n7,0,42,0,3,0,27,0,11,0,32,0\n30,0,10,0,29,0,12,0,9,0,16,0\n35,0,46,0,40,0,39,0,33,0,38,0\n22,0,45,0,26,0,48,0,5,0,41,0\n31,0,49,0,34,0,2,0,14,0,23,0\n27,0,50,0,9,0,18,0,15,0,1,0\n12,0,19,0,40,0,25,0,47,0,35,0\n51,0,43,0,4,0,33,0,30,0,22,0\n34,0,7,0,8,0,31,0,3,0,20,0\n10,0,21,0,49,0,11,0,13,0,6,0\n5,0,46,0,38,0,24,0,44,0,14,0\n41,0,42,0,37,0,39,0,28,0,36,0\n17,0,45,0,23,0,16,0,29,0,26,0\n2,0,32,0,10,0,48,0,25,0,40,0\n"
  },
  {
    "path": "schedules/51_14.csv",
    "content": "47,0,35,0,4,0,16,0,29,0,45,0\n32,0,33,0,43,0,41,0,10,0,25,0\n42,0,19,0,31,0,23,0,17,0,14,0\n40,0,3,0,15,0,34,0,13,0,44,0\n27,0,6,0,12,0,2,0,8,0,36,0\n50,0,22,0,51,0,9,0,37,0,7,0\n24,0,21,0,46,0,30,0,5,0,48,0\n38,0,28,0,11,0,1,0,18,0,20,0\n26,0,49,0,41,0,39,0,34,0,25,0\n50,0,17,0,32,0,27,0,43,0,2,0\n7,0,46,0,3,0,19,0,12,0,24,0\n23,0,10,0,9,0,28,0,35,0,29,0\n16,0,11,0,44,0,21,0,33,0,8,0\n15,0,22,0,31,0,39,0,36,0,18,0\n14,0,48,0,42,0,51,0,37,0,26,0\n4,0,45,0,40,0,49,0,13,0,1,0\n20,0,38,0,30,0,5,0,6,0,47,0\n29,0,11,0,36,0,39,0,3,0,9,0\n24,0,34,0,26,0,35,0,17,0,33,0\n32,0,7,0,21,0,14,0,45,0,15,0\n20,0,31,0,50,0,47,0,41,0,46,0\n27,0,4,0,19,0,22,0,38,0,16,0\n2,0,1,0,23,0,49,0,51,0,44,0\n13,0,5,0,42,0,12,0,10,0,28,0\n40,0,8,0,37,0,30,0,6,0,43,0\n25,0,29,0,17,0,48,0,18,0,46,0\n3,0,21,0,19,0,1,0,51,0,33,0\n4,0,7,0,28,0,9,0,27,0,36,0\n10,0,20,0,16,0,49,0,50,0,40,0\n11,0,48,0,26,0,31,0,2,0,13,0\n45,0,22,0,39,0,14,0,30,0,12,0\n43,0,18,0,37,0,23,0,5,0,34,0\n6,0,25,0,8,0,47,0,24,0,15,0\n38,0,42,0,35,0,32,0,44,0,41,0\n36,0,17,0,51,0,33,0,16,0,30,0\n19,0,2,0,10,0,34,0,18,0,21,0\n43,0,22,0,48,0,45,0,3,0,23,0\n41,0,1,0,28,0,26,0,15,0,29,0\n6,0,24,0,35,0,14,0,40,0,27,0\n46,0,50,0,8,0,49,0,9,0,32,0\n47,0,11,0,39,0,42,0,7,0,25,0\n4,0,31,0,38,0,12,0,44,0,37,0\n5,0,16,0,17,0,20,0,13,0,22,0\n32,0,34,0,2,0,28,0,15,0,36,0\n40,0,48,0,1,0,35,0,50,0,18,0\n43,0,8,0,39,0,9,0,33,0,19,0\n47,0,51,0,12,0,41,0,11,0,6,0\n23,0,7,0,49,0,5,0,38,0,26,0\n10,0,21,0,14,0,4,0,25,0,46,0\n44,0,3,0,24,0,37,0,20,0,42,0\n13,0,27,0,45,0,31,0,29,0,30,0\n5,0,19,0,7,0,35,0,41,0,40,0\n22,0,23,0,32,0,8,0,1,0,11,0\n26,0,36,0,14,0,44,0,46,0,10,0\n39,0,28,0,6,0,21,0,45,0,48,0\n3,0,30,0,42,0,18,0,16,0,2,0\n4,0,33,0,24,0,43,0,47,0,50,0\n25,0,20,0,9,0,27,0,31,0,34,0\n29,0,38,0,12,0,37,0,17,0,15,0\n51,0,13,0,6,0,49,0,21,0,42,0\n41,0,22,0,36,0,23,0,40,0,47,0\n26,0,35,0,19,0,20,0,43,0,4,0\n45,0,11,0,37,0,10,0,48,0,17,0\n2,0,29,0,14,0,8,0,34,0,38,0\n13,0,18,0,9,0,7,0,16,0,24,0\n44,0,39,0,27,0,51,0,5,0,32,0\n30,0,49,0,25,0,3,0,50,0,28,0\n33,0,12,0,15,0,46,0,1,0,31,0\n16,0,13,0,35,0,6,0,38,0,23,0\n26,0,47,0,9,0,51,0,40,0,10,0\n18,0,8,0,45,0,20,0,41,0,24,0\n21,0,44,0,2,0,22,0,7,0,17,0\n11,0,14,0,3,0,15,0,50,0,39,0\n42,0,4,0,32,0,33,0,48,0,31,0\n19,0,46,0,49,0,37,0,28,0,27,0\n1,0,36,0,25,0,5,0,43,0,12,0\n34,0,29,0,41,0,30,0,22,0,11,0\n39,0,51,0,2,0,13,0,38,0,24,0\n40,0,17,0,28,0,3,0,4,0,8,0\n18,0,49,0,14,0,47,0,33,0,44,0\n30,0,9,0,50,0,45,0,12,0,26,0\n25,0,37,0,31,0,7,0,35,0,1,0\n46,0,43,0,34,0,6,0,16,0,42,0\n36,0,23,0,21,0,32,0,27,0,29,0\n15,0,10,0,5,0,48,0,19,0,20,0\n18,0,31,0,12,0,8,0,51,0,35,0\n17,0,41,0,13,0,6,0,1,0,9,0\n44,0,36,0,38,0,26,0,50,0,25,0\n7,0,20,0,33,0,48,0,23,0,29,0\n49,0,28,0,43,0,14,0,22,0,24,0\n40,0,46,0,5,0,2,0,42,0,45,0\n30,0,47,0,37,0,11,0,32,0,19,0\n34,0,15,0,16,0,39,0,4,0,10,0\n27,0,21,0,26,0,3,0,41,0,18,0\n33,0,50,0,6,0,28,0,5,0,31,0\n35,0,36,0,48,0,22,0,8,0,49,0\n47,0,25,0,45,0,19,0,13,0,37,0\n3,0,2,0,20,0,9,0,14,0,4,0\n38,0,27,0,15,0,11,0,46,0,42,0\n12,0,23,0,16,0,24,0,32,0,39,0\n7,0,10,0,30,0,17,0,1,0,34,0\n43,0,44,0,40,0,21,0,29,0,51,0\n41,0,33,0,45,0,2,0,38,0,25,0\n4,0,13,0,50,0,19,0,23,0,18,0\n30,0,34,0,28,0,31,0,7,0,47,0\n8,0,9,0,42,0,5,0,21,0,37,0\n51,0,46,0,15,0,43,0,35,0,11,0\n17,0,39,0,12,0,36,0,40,0,20,0\n32,0,6,0,10,0,3,0,22,0,26,0\n1,0,44,0,14,0,16,0,48,0,27,0\n29,0,24,0,5,0,49,0,11,0,4,0\n35,0,15,0,23,0,30,0,17,0,21,0\n22,0,34,0,33,0,13,0,12,0,46,0\n10,0,31,0,8,0,38,0,3,0,43,0\n14,0,51,0,20,0,32,0,25,0,40,0\n6,0,49,0,48,0,41,0,50,0,7,0\n39,0,16,0,37,0,28,0,2,0,26,0\n19,0,1,0,29,0,42,0,36,0,24,0\n27,0,47,0,18,0,45,0,9,0,44,0\n"
  },
  {
    "path": "schedules/51_2.csv",
    "content": "37,0,25,0,20,0,30,0,44,0,16,0\n43,0,12,0,46,0,2,0,38,0,40,0\n15,0,31,0,23,0,29,0,11,0,28,0\n5,0,47,0,41,0,10,0,39,0,8,0\n19,0,13,0,26,0,51,0,24,0,18,0\n49,0,6,0,9,0,1,0,48,0,50,0\n45,0,4,0,34,0,27,0,7,0,35,0\n42,0,36,0,21,0,32,0,17,0,33,0\n14,0,22,0,51,0,3,0,28,0,46,0\n8,0,2,0,11,0,9,0,25,0,19,0\n7,0,49,0,40,0,29,0,20,0,10,0\n24,0,33,0,50,0,30,0,4,0,23,0\n42,0,16,0,22,0,34,0,15,0,6,0\n32,0,47,0,27,0,37,0,1,0,13,0\n17,0,35,0,5,0,12,0,14,0,18,0\n31,0,39,0,3,0,38,0,44,0,36,0\n26,0,43,0,48,0,45,0,21,0,41,0\n"
  },
  {
    "path": "schedules/51_3.csv",
    "content": "33,0,51,0,28,0,29,0,40,0,32,0\n16,0,39,0,3,0,44,0,12,0,7,0\n13,0,50,0,14,0,2,0,17,0,18,0\n15,0,24,0,47,0,34,0,27,0,43,0\n5,0,45,0,31,0,35,0,23,0,30,0\n10,0,19,0,49,0,36,0,11,0,4,0\n41,0,9,0,26,0,38,0,6,0,42,0\n48,0,25,0,21,0,20,0,1,0,46,0\n8,0,22,0,2,0,37,0,29,0,15,0\n39,1,34,0,18,0,23,1,33,0,19,0\n27,1,32,0,41,0,13,0,16,0,49,0\n44,0,43,0,5,0,48,0,26,0,28,0\n46,0,35,0,50,0,9,0,3,0,11,0\n4,0,42,0,17,0,31,0,51,0,21,0\n45,0,7,0,20,0,10,0,37,0,24,0\n36,0,8,0,38,0,14,0,1,0,12,0\n40,0,6,0,30,0,22,0,25,0,47,0\n29,0,50,0,43,0,16,0,23,0,4,0\n17,0,3,0,37,0,27,0,19,0,28,0\n32,0,26,0,14,0,7,0,21,0,35,0\n30,0,42,0,46,0,39,0,36,0,24,0\n20,0,9,0,31,0,8,0,47,0,18,0\n13,0,22,0,34,0,10,0,51,0,44,0\n48,0,38,0,49,0,45,0,40,0,15,0\n12,0,5,0,25,0,11,0,41,0,33,0\n1,0,6,0,23,0,2,0,39,0,27,0\n"
  },
  {
    "path": "schedules/51_4.csv",
    "content": "4,0,51,0,23,0,43,0,42,0,6,0\n32,0,50,0,31,0,49,0,2,0,47,0\n48,0,24,0,5,0,46,0,16,0,9,0\n10,0,38,0,45,0,7,0,30,0,36,0\n22,0,21,0,18,0,20,0,14,0,11,0\n26,0,25,0,35,0,40,0,17,0,34,0\n44,0,19,0,28,0,41,0,1,0,15,0\n3,0,8,0,13,0,27,0,29,0,12,0\n33,0,39,0,49,0,37,0,21,0,43,0\n36,0,31,0,48,0,23,0,26,0,11,0\n35,0,6,0,7,0,47,0,19,0,18,0\n30,0,22,0,41,0,5,0,8,0,2,0\n13,0,46,0,15,0,40,0,4,0,45,0\n25,0,28,0,9,0,3,0,50,0,42,0\n17,0,12,0,14,0,37,0,1,0,16,0\n10,0,20,0,27,0,33,0,34,0,32,0\n24,0,44,0,51,0,39,0,29,0,38,0\n3,0,22,0,43,0,48,0,47,0,15,0\n42,0,46,0,2,0,26,0,7,0,21,0\n13,0,49,0,19,0,17,0,23,0,20,0\n11,0,25,0,1,0,5,0,29,0,10,0\n45,0,33,0,50,0,16,0,44,0,6,0\n37,0,27,0,36,0,24,0,35,0,28,0\n41,0,34,0,39,0,4,0,31,0,12,0\n30,0,18,0,32,0,40,0,51,0,9,0\n14,0,8,0,26,0,38,0,50,0,19,0\n44,0,10,0,42,0,13,0,48,0,37,0\n16,0,20,0,47,0,36,0,25,0,41,0\n21,0,31,0,5,0,45,0,28,0,51,0\n9,0,38,0,12,0,35,0,23,0,33,0\n7,0,15,0,8,0,11,0,39,0,32,0\n29,0,43,0,34,0,30,0,46,0,14,0\n2,0,17,0,4,0,24,0,3,0,18,0\n49,0,27,0,40,0,22,0,6,0,1,0\n"
  },
  {
    "path": "schedules/51_5.csv",
    "content": "43,0,18,0,32,0,22,0,28,0,9,0\n23,0,19,0,36,0,7,0,48,0,6,0\n31,0,50,0,21,0,13,0,38,0,30,0\n15,0,4,0,10,0,44,0,20,0,40,0\n35,0,46,0,5,0,29,0,24,0,1,0\n12,0,16,0,42,0,33,0,26,0,51,0\n39,0,34,0,11,0,49,0,41,0,14,0\n25,0,37,0,47,0,3,0,8,0,27,0\n45,0,40,0,28,0,2,0,17,0,38,0\n18,0,31,0,4,0,1,0,7,0,16,0\n49,0,35,0,33,0,22,0,36,0,10,0\n51,0,20,0,3,0,32,0,11,0,5,0\n14,0,12,0,47,0,6,0,45,0,44,0\n25,0,17,0,43,0,24,0,50,0,39,0\n13,0,34,0,48,0,27,0,46,0,26,0\n19,0,21,0,41,0,15,0,42,0,37,0\n2,0,29,0,30,0,8,0,9,0,23,0\n51,1,32,0,39,0,35,1,7,0,45,0\n34,1,36,0,28,0,16,0,20,0,25,0\n26,0,3,0,41,0,10,0,50,0,6,0\n11,0,27,0,29,0,43,0,40,0,31,0\n9,0,12,0,49,0,4,0,21,0,46,0\n8,0,42,0,38,0,44,0,18,0,48,0\n30,0,33,0,17,0,14,0,1,0,15,0\n2,0,24,0,22,0,13,0,19,0,47,0\n23,0,5,0,10,0,37,0,45,0,43,0\n29,0,49,0,7,0,26,0,38,0,20,0\n6,0,9,0,27,0,39,0,42,0,35,0\n40,0,22,0,1,0,48,0,41,0,51,0\n19,0,31,0,8,0,17,0,32,0,34,0\n37,0,24,0,18,0,30,0,12,0,36,0\n4,0,3,0,14,0,23,0,28,0,13,0\n16,0,15,0,50,0,47,0,46,0,11,0\n33,0,5,0,44,0,2,0,21,0,25,0\n38,0,39,0,1,0,10,0,19,0,12,0\n40,0,24,0,7,0,3,0,9,0,34,0\n32,0,48,0,37,0,16,0,29,0,14,0\n44,0,35,0,26,0,11,0,23,0,17,0\n51,0,27,0,2,0,4,0,36,0,50,0\n41,0,20,0,13,0,33,0,43,0,8,0\n45,0,22,0,46,0,42,0,25,0,30,0\n6,0,15,0,28,0,31,0,5,0,49,0\n47,0,51,0,34,0,18,0,21,0,35,0\n"
  },
  {
    "path": "schedules/51_6.csv",
    "content": "30,0,8,0,24,0,11,0,47,0,17,0\n3,0,31,0,45,0,41,0,1,0,48,0\n22,0,40,0,28,0,34,0,51,0,43,0\n4,0,49,0,7,0,38,0,19,0,9,0\n10,0,35,0,27,0,21,0,42,0,39,0\n37,0,36,0,33,0,18,0,2,0,29,0\n16,0,14,0,5,0,26,0,32,0,13,0\n20,0,46,0,44,0,50,0,15,0,6,0\n12,0,23,0,22,0,25,0,45,0,7,0\n47,0,51,0,42,0,2,0,41,0,34,0\n27,0,48,0,5,0,24,0,18,0,4,0\n1,0,39,0,8,0,13,0,49,0,15,0\n26,0,23,0,28,0,6,0,10,0,36,0\n14,0,37,0,9,0,46,0,40,0,11,0\n21,0,17,0,43,0,12,0,29,0,20,0\n35,0,3,0,32,0,25,0,50,0,19,0\n16,0,30,0,38,0,44,0,31,0,33,0\n1,0,11,0,36,0,7,0,46,0,5,0\n42,0,4,0,41,0,8,0,26,0,22,0\n39,0,32,0,48,0,12,0,6,0,37,0\n15,0,9,0,25,0,30,0,51,0,29,0\n10,0,40,0,50,0,45,0,17,0,16,0\n19,0,31,0,43,0,33,0,13,0,47,0\n14,0,2,0,24,0,20,0,35,0,38,0\n44,0,34,0,3,0,18,0,21,0,23,0\n49,0,28,0,37,0,27,0,30,0,41,0\n6,0,25,0,47,0,33,0,40,0,5,0\n51,0,4,0,19,0,14,0,12,0,1,0\n21,0,11,0,50,0,48,0,13,0,22,0\n38,0,32,0,17,0,46,0,27,0,23,0\n15,0,18,0,26,0,43,0,7,0,35,0\n29,0,34,0,31,0,10,0,49,0,24,0\n3,0,42,0,9,0,36,0,16,0,20,0\n2,0,8,0,45,0,39,0,44,0,28,0\n13,0,23,0,35,0,37,0,4,0,30,0\n33,0,48,0,51,0,46,0,49,0,26,0\n47,0,20,0,22,0,18,0,10,0,1,0\n41,0,43,0,14,0,39,0,25,0,36,0\n50,0,31,0,17,0,2,0,5,0,9,0\n12,0,24,0,15,0,28,0,3,0,16,0\n6,0,34,0,11,0,19,0,27,0,45,0\n32,0,29,0,44,0,40,0,42,0,7,0\n21,0,8,0,5,0,38,0,37,0,51,0\n46,0,2,0,10,0,3,0,30,0,43,0\n12,0,13,0,9,0,33,0,34,0,27,0\n11,0,18,0,25,0,28,0,42,0,31,0\n36,0,47,0,45,0,15,0,4,0,32,0\n1,0,26,0,38,0,50,0,29,0,39,0\n22,0,49,0,44,0,17,0,14,0,35,0\n48,0,20,0,23,0,8,0,40,0,19,0\n41,0,6,0,7,0,24,0,21,0,16,0\n"
  },
  {
    "path": "schedules/51_7.csv",
    "content": "3,0,41,0,30,0,45,0,47,0,21,0\n6,0,44,0,18,0,19,0,29,0,4,0\n12,0,22,0,25,0,28,0,15,0,26,0\n32,0,13,0,5,0,42,0,34,0,24,0\n50,0,16,0,40,0,2,0,10,0,31,0\n20,0,11,0,38,0,46,0,23,0,43,0\n27,0,51,0,37,0,9,0,14,0,39,0\n48,0,1,0,17,0,36,0,8,0,35,0\n49,0,33,0,12,0,7,0,13,0,6,0\n5,0,15,0,23,0,46,0,50,0,30,0\n51,0,28,0,34,0,38,0,45,0,16,0\n35,0,19,0,39,0,32,0,31,0,43,0\n42,0,27,0,20,0,44,0,17,0,25,0\n14,0,26,0,40,0,33,0,18,0,36,0\n1,0,37,0,47,0,2,0,21,0,49,0\n4,0,41,0,22,0,8,0,10,0,9,0\n11,0,7,0,3,0,48,0,24,0,29,0\n25,1,39,0,33,0,34,1,44,0,5,0\n14,1,49,0,16,0,15,0,42,0,35,0\n13,0,31,0,26,0,1,0,4,0,38,0\n29,0,8,0,37,0,23,0,45,0,40,0\n3,0,10,0,24,0,9,0,19,0,17,0\n18,0,20,0,51,0,7,0,47,0,30,0\n43,0,2,0,6,0,22,0,27,0,48,0\n36,0,11,0,50,0,28,0,32,0,41,0\n12,0,46,0,16,0,21,0,4,0,39,0\n9,0,25,0,45,0,13,0,35,0,23,0\n42,0,2,0,8,0,29,0,30,0,33,0\n20,0,14,0,32,0,10,0,1,0,49,0\n7,0,43,0,22,0,50,0,47,0,34,0\n26,0,21,0,6,0,51,0,17,0,11,0\n44,0,28,0,36,0,46,0,3,0,37,0\n24,0,27,0,18,0,41,0,31,0,15,0\n19,0,38,0,40,0,5,0,12,0,48,0\n32,0,47,0,6,0,26,0,16,0,9,0\n29,0,17,0,46,0,43,0,49,0,34,0\n23,0,42,0,51,0,31,0,36,0,22,0\n15,0,13,0,11,0,40,0,2,0,44,0\n41,0,19,0,1,0,37,0,7,0,25,0\n12,0,30,0,38,0,14,0,27,0,3,0\n48,0,50,0,4,0,33,0,45,0,20,0\n10,0,18,0,28,0,35,0,5,0,21,0\n39,0,46,0,47,0,24,0,8,0,40,0\n1,0,43,0,44,0,41,0,16,0,51,0\n33,0,9,0,31,0,11,0,34,0,12,0\n21,0,36,0,19,0,29,0,13,0,27,0\n23,0,30,0,48,0,26,0,10,0,39,0\n7,0,45,0,15,0,32,0,38,0,42,0\n49,0,50,0,8,0,3,0,18,0,25,0\n14,0,2,0,4,0,5,0,28,0,17,0\n24,0,37,0,35,0,6,0,22,0,20,0\n10,0,36,0,42,0,43,0,47,0,12,0\n33,0,3,0,34,0,27,0,23,0,1,0\n25,0,32,0,40,0,30,0,4,0,51,0\n44,0,24,0,21,0,50,0,38,0,14,0\n49,0,45,0,22,0,19,0,11,0,5,0\n48,0,13,0,16,0,37,0,17,0,18,0\n35,0,2,0,46,0,7,0,26,0,41,0\n15,0,9,0,29,0,28,0,39,0,20,0\n6,0,31,0,34,0,8,0,25,0,14,0\n"
  },
  {
    "path": "schedules/51_8.csv",
    "content": "27,0,39,0,19,0,8,0,6,0,40,0\n2,0,29,0,7,0,20,0,33,0,12,0\n15,0,50,0,35,0,51,0,22,0,1,0\n17,0,28,0,4,0,49,0,32,0,3,0\n42,0,31,0,23,0,25,0,9,0,48,0\n21,0,13,0,5,0,11,0,30,0,46,0\n16,0,14,0,43,0,44,0,10,0,45,0\n24,0,34,0,36,0,41,0,38,0,26,0\n47,0,48,0,20,0,18,0,37,0,27,0\n6,0,21,0,11,0,7,0,28,0,9,0\n25,0,2,0,1,0,30,0,10,0,17,0\n46,0,40,0,49,0,42,0,35,0,33,0\n43,0,31,0,32,0,15,0,12,0,47,0\n5,0,38,0,19,0,14,0,13,0,41,0\n16,0,3,0,37,0,51,0,36,0,39,0\n8,0,26,0,24,0,29,0,22,0,50,0\n18,0,34,0,45,0,4,0,44,0,23,0\n12,0,35,0,17,0,41,0,15,0,21,0\n11,0,14,0,38,0,32,0,27,0,46,0\n22,0,49,0,10,0,19,0,48,0,36,0\n34,0,28,0,42,0,2,0,13,0,45,0\n39,0,30,0,33,0,9,0,47,0,50,0\n20,0,25,0,31,0,43,0,24,0,40,0\n29,0,4,0,1,0,16,0,7,0,5,0\n6,0,44,0,26,0,51,0,23,0,37,0\n18,0,8,0,32,0,3,0,10,0,9,0\n50,0,36,0,45,0,21,0,19,0,40,0\n11,0,41,0,28,0,39,0,48,0,43,0\n1,0,24,0,7,0,46,0,47,0,44,0\n4,0,30,0,15,0,42,0,8,0,37,0\n29,0,13,0,27,0,25,0,51,0,17,0\n12,0,3,0,5,0,34,0,23,0,20,0\n16,0,35,0,22,0,31,0,38,0,33,0\n18,0,2,0,6,0,14,0,26,0,49,0\n8,0,44,0,41,0,25,0,47,0,21,0\n37,0,5,0,46,0,50,0,28,0,12,0\n40,0,10,0,51,0,34,0,30,0,38,0\n39,0,11,0,45,0,49,0,29,0,20,0\n7,0,27,0,22,0,42,0,18,0,3,0\n19,0,43,0,23,0,2,0,4,0,35,0\n32,0,9,0,33,0,36,0,1,0,13,0\n48,0,6,0,14,0,16,0,15,0,24,0\n31,0,26,0,5,0,17,0,27,0,45,0\n25,0,4,0,3,0,38,0,50,0,2,0\n37,0,21,0,34,0,43,0,1,0,49,0\n40,0,16,0,9,0,41,0,12,0,22,0\n13,0,30,0,6,0,18,0,31,0,44,0\n19,0,17,0,33,0,42,0,11,0,24,0\n28,0,20,0,8,0,36,0,14,0,35,0\n23,0,46,0,15,0,29,0,10,0,47,0\n26,0,51,0,48,0,7,0,39,0,32,0\n13,0,11,0,18,0,1,0,16,0,50,0\n49,0,17,0,38,0,9,0,44,0,20,0\n21,0,10,0,12,0,24,0,27,0,4,0\n46,0,22,0,34,0,25,0,6,0,39,0\n47,0,51,0,43,0,5,0,36,0,42,0\n33,0,7,0,41,0,23,0,8,0,14,0\n30,0,26,0,45,0,3,0,35,0,48,0\n32,0,37,0,28,0,19,0,29,0,31,0\n2,0,15,0,44,0,40,0,5,0,39,0\n22,0,36,0,43,0,17,0,13,0,7,0\n49,0,23,0,24,0,30,0,27,0,16,0\n10,0,32,0,50,0,42,0,6,0,41,0\n33,0,25,0,15,0,26,0,18,0,28,0\n37,0,35,0,47,0,2,0,34,0,11,0\n1,0,48,0,45,0,38,0,12,0,8,0\n14,0,29,0,21,0,3,0,31,0,40,0\n51,0,46,0,9,0,20,0,19,0,4,0\n"
  },
  {
    "path": "schedules/51_9.csv",
    "content": "30,0,36,0,34,0,38,0,33,0,3,0\n50,0,48,0,5,0,40,0,15,0,19,0\n42,0,26,0,13,0,4,0,46,0,21,0\n14,0,23,0,31,0,29,0,25,0,51,0\n10,0,37,0,45,0,27,0,47,0,2,0\n22,0,16,0,9,0,44,0,32,0,8,0\n41,0,12,0,11,0,35,0,24,0,28,0\n39,0,20,0,43,0,18,0,7,0,1,0\n6,0,10,0,13,0,49,0,17,0,29,0\n46,0,34,0,22,0,23,0,45,0,40,0\n14,0,35,0,38,0,47,0,50,0,31,0\n36,0,41,0,28,0,39,0,21,0,18,0\n43,0,11,0,8,0,3,0,37,0,49,0\n7,0,51,0,24,0,48,0,32,0,16,0\n25,0,12,0,17,0,15,0,26,0,9,0\n33,0,27,0,1,0,42,0,2,0,6,0\n44,0,5,0,19,0,30,0,20,0,4,0\n18,1,51,0,14,0,10,1,7,0,41,0\n11,1,23,0,13,0,36,0,8,0,26,0\n38,0,40,0,29,0,24,0,21,0,32,0\n20,0,31,0,27,0,46,0,30,0,12,0\n39,0,49,0,34,0,5,0,35,0,17,0\n2,0,37,0,22,0,50,0,19,0,25,0\n47,0,15,0,28,0,6,0,44,0,43,0\n48,0,33,0,4,0,3,0,1,0,45,0\n16,0,42,0,18,0,9,0,29,0,30,0\n41,0,2,0,32,0,11,0,5,0,26,0\n51,0,38,0,23,0,13,0,49,0,20,0\n14,0,21,0,3,0,35,0,15,0,22,0\n7,0,37,0,31,0,6,0,28,0,4,0\n50,0,12,0,45,0,10,0,16,0,36,0\n48,0,25,0,44,0,43,0,42,0,34,0\n8,0,40,0,46,0,1,0,47,0,17,0\n19,0,24,0,33,0,9,0,39,0,27,0\n7,0,13,0,15,0,22,0,11,0,30,0\n28,0,43,0,32,0,42,0,50,0,23,0\n2,0,21,0,17,0,37,0,20,0,14,0\n9,0,41,0,33,0,48,0,31,0,49,0\n46,0,26,0,19,0,34,0,38,0,10,0\n4,0,45,0,39,0,8,0,29,0,12,0\n3,0,27,0,18,0,51,0,44,0,40,0\n25,0,5,0,1,0,47,0,35,0,16,0\n36,0,24,0,48,0,6,0,26,0,14,0\n41,0,30,0,19,0,23,0,43,0,17,0\n42,0,44,0,39,0,10,0,31,0,11,0\n47,0,22,0,51,0,28,0,33,0,12,0\n2,0,40,0,35,0,16,0,4,0,13,0\n3,0,24,0,9,0,37,0,5,0,46,0\n20,0,38,0,18,0,6,0,45,0,25,0\n36,0,49,0,27,0,1,0,32,0,15,0\n29,0,21,0,50,0,7,0,34,0,8,0\n28,0,16,0,31,0,19,0,3,0,17,0\n14,0,11,0,45,0,43,0,9,0,40,0\n12,0,37,0,1,0,41,0,44,0,38,0\n8,0,15,0,30,0,10,0,20,0,32,0\n47,0,5,0,21,0,48,0,27,0,23,0\n39,0,6,0,51,0,50,0,26,0,34,0\n35,0,29,0,7,0,46,0,2,0,36,0\n42,0,4,0,49,0,24,0,18,0,22,0\n33,0,13,0,32,0,25,0,10,0,14,0\n47,0,9,0,11,0,20,0,34,0,21,0\n48,0,2,0,30,0,28,0,39,0,46,0\n29,0,31,0,36,0,22,0,5,0,43,0\n23,0,26,0,37,0,15,0,18,0,33,0\n1,0,50,0,44,0,45,0,13,0,24,0\n40,0,25,0,3,0,7,0,49,0,12,0\n8,0,6,0,19,0,51,0,35,0,42,0\n41,0,16,0,17,0,27,0,38,0,4,0\n34,0,15,0,24,0,18,0,31,0,2,0\n49,0,21,0,26,0,45,0,44,0,30,0\n35,0,43,0,1,0,10,0,9,0,51,0\n27,0,25,0,11,0,4,0,36,0,50,0\n28,0,7,0,38,0,33,0,5,0,8,0\n20,0,42,0,29,0,41,0,40,0,37,0\n3,0,13,0,47,0,32,0,39,0,19,0\n23,0,6,0,46,0,16,0,14,0,12,0\n17,0,22,0,10,0,48,0,18,0,11,0\n"
  },
  {
    "path": "schedules/52_1.csv",
    "content": "29,0,7,0,44,0,41,0,33,0,15,0\n46,0,31,0,51,0,34,0,32,0,42,0\n12,0,10,0,52,0,17,0,30,0,49,0\n5,0,19,0,45,0,8,0,25,0,2,0\n3,0,35,0,24,0,43,0,14,0,50,0\n18,0,4,0,23,0,39,0,27,0,1,0\n36,0,21,0,48,0,16,0,6,0,28,0\n26,0,11,0,40,0,20,0,47,0,37,0\n22,0,38,0,44,1,13,0,9,0,17,1\n"
  },
  {
    "path": "schedules/52_10.csv",
    "content": "44,0,2,0,10,0,11,0,14,0,20,0\n9,0,29,0,1,0,12,0,7,0,48,0\n52,0,8,0,18,0,21,0,16,0,47,0\n46,0,3,0,4,0,28,0,15,0,22,0\n33,0,43,0,36,0,6,0,45,0,35,0\n27,0,51,0,13,0,17,0,40,0,23,0\n32,0,25,0,37,0,42,0,39,0,38,0\n34,0,50,0,49,0,5,0,41,0,19,0\n24,0,30,0,6,0,31,0,26,0,44,0\n21,0,22,0,48,0,14,0,15,0,13,0\n18,0,46,0,1,0,40,0,3,0,33,0\n25,0,47,0,51,0,34,0,41,0,2,0\n10,0,5,0,39,0,31,0,35,0,9,0\n20,0,37,0,24,0,49,0,43,0,28,0\n38,0,16,0,7,0,12,0,36,0,42,0\n50,0,27,0,32,0,30,0,29,0,52,0\n4,0,23,0,19,0,45,0,17,0,8,0\n26,0,51,0,18,0,11,0,43,0,37,0\n41,1,31,0,13,0,38,1,36,0,46,0\n34,0,9,0,22,0,2,0,6,0,27,0\n14,0,3,0,47,0,23,0,12,0,32,0\n45,0,4,0,25,0,29,0,49,0,10,0\n15,0,42,0,52,0,33,0,8,0,20,0\n24,0,35,0,11,0,40,0,50,0,7,0\n21,0,26,0,17,0,1,0,5,0,16,0\n44,0,48,0,30,0,19,0,28,0,39,0\n22,0,31,0,42,0,43,0,52,0,23,0\n14,0,27,0,36,0,25,0,49,0,3,0\n45,0,40,0,29,0,15,0,2,0,16,0\n33,0,34,0,17,0,26,0,28,0,9,0\n11,0,6,0,5,0,8,0,48,0,37,0\n51,0,39,0,12,0,21,0,4,0,50,0\n7,0,20,0,46,0,38,0,18,0,30,0\n19,0,10,0,47,0,24,0,13,0,1,0\n44,0,32,0,15,0,35,0,41,0,36,0\n21,0,2,0,31,0,50,0,48,0,33,0\n23,0,16,0,30,0,49,0,37,0,9,0\n10,0,3,0,8,0,43,0,38,0,34,0\n46,0,13,0,12,0,52,0,25,0,11,0\n18,0,44,0,41,0,22,0,26,0,29,0\n19,0,17,0,6,0,14,0,40,0,32,0\n51,0,45,0,28,0,47,0,39,0,7,0\n42,0,20,0,27,0,5,0,4,0,24,0\n1,0,48,0,49,0,35,0,52,0,38,0\n6,0,9,0,16,0,46,0,21,0,19,0\n13,0,3,0,50,0,44,0,7,0,45,0\n15,0,43,0,5,0,36,0,47,0,11,0\n28,0,14,0,31,0,8,0,1,0,51,0\n29,0,17,0,42,0,34,0,35,0,30,0\n26,0,25,0,39,0,22,0,40,0,20,0\n24,0,27,0,10,0,33,0,32,0,18,0\n23,0,41,0,37,0,12,0,2,0,4,0\n6,0,31,0,52,0,28,0,11,0,29,0\n16,0,19,0,35,0,3,0,51,0,20,0\n49,0,32,0,42,0,8,0,26,0,46,0\n2,0,36,0,22,0,12,0,17,0,24,0\n21,0,38,0,44,0,27,0,47,0,23,0\n4,0,9,0,39,0,18,0,43,0,13,0\n41,0,40,0,30,0,48,0,10,0,45,0\n33,0,7,0,14,0,34,0,37,0,5,0\n25,0,1,0,23,0,50,0,15,0,6,0\n11,0,22,0,49,0,9,0,32,0,47,0\n51,0,44,0,17,0,10,0,42,0,46,0\n13,0,34,0,40,0,12,0,20,0,31,0\n8,0,39,0,29,0,3,0,41,0,24,0\n28,0,5,0,35,0,18,0,25,0,2,0\n37,0,45,0,36,0,27,0,1,0,21,0\n50,0,43,0,16,0,38,0,14,0,48,0\n19,0,52,0,7,0,26,0,4,0,15,0\n30,0,13,0,22,0,33,0,51,0,5,0\n32,0,1,0,45,0,20,0,34,0,44,0\n17,0,47,0,37,0,31,0,48,0,25,0\n38,0,11,0,4,0,24,0,19,0,14,0\n41,0,7,0,28,0,27,0,16,0,33,0\n40,0,36,0,9,0,8,0,42,0,50,0\n52,0,26,0,2,0,30,0,3,0,39,0\n46,0,35,0,43,0,23,0,21,0,29,0\n15,0,49,0,12,0,10,0,18,0,6,0\n33,0,4,0,31,0,25,0,16,0,44,0\n45,0,9,0,38,0,22,0,51,0,52,0\n41,0,11,0,39,0,1,0,30,0,17,0\n48,0,34,0,23,0,18,0,36,0,24,0\n2,0,19,0,49,0,7,0,42,0,43,0\n12,0,14,0,8,0,35,0,27,0,26,0\n21,0,5,0,40,0,3,0,28,0,32,0\n50,0,10,0,20,0,46,0,47,0,6,0\n29,0,15,0,41,0,37,0,13,0,38,0\n"
  },
  {
    "path": "schedules/52_11.csv",
    "content": "17,0,30,0,49,0,35,0,41,0,44,0\n46,0,47,0,15,0,32,0,20,0,2,0\n26,0,40,0,8,0,9,0,4,0,36,0\n28,0,42,0,33,0,48,0,6,0,51,0\n34,0,31,0,5,0,16,0,43,0,52,0\n29,0,27,0,1,0,24,0,37,0,3,0\n39,0,19,0,22,0,7,0,45,0,14,0\n18,0,11,0,38,0,12,0,50,0,13,0\n25,0,21,0,9,0,10,0,23,0,28,0\n24,0,26,0,32,0,17,0,40,0,5,0\n7,0,41,0,4,0,6,0,37,0,2,0\n14,0,13,0,33,0,44,0,46,0,30,0\n19,0,31,0,1,0,48,0,10,0,8,0\n45,0,23,0,11,0,18,0,15,0,3,0\n12,0,34,0,52,0,27,0,21,0,47,0\n51,0,38,0,25,0,43,0,49,0,39,0\n29,0,35,0,16,0,22,0,20,0,42,0\n50,0,10,0,24,0,36,0,7,0,6,0\n28,1,31,0,11,0,37,1,47,0,45,0\n44,1,32,0,33,0,26,1,52,0,25,0\n16,0,42,0,15,0,4,0,3,0,49,0\n12,0,43,0,29,0,36,0,23,0,17,0\n39,0,2,0,38,0,46,0,1,0,35,0\n41,0,13,0,5,0,8,0,34,0,51,0\n18,0,40,0,21,0,48,0,22,0,14,0\n20,0,30,0,19,0,27,0,9,0,50,0\n39,0,44,0,15,0,29,0,31,0,24,0\n43,0,45,0,42,0,12,0,47,0,41,0\n51,0,35,0,3,0,14,0,32,0,10,0\n11,0,34,0,27,0,38,0,22,0,28,0\n30,0,9,0,8,0,7,0,16,0,48,0\n17,0,46,0,6,0,25,0,19,0,18,0\n5,0,36,0,20,0,21,0,2,0,13,0\n37,0,50,0,4,0,40,0,33,0,52,0\n49,0,26,0,12,0,23,0,1,0,39,0\n46,0,8,0,22,0,28,0,24,0,17,0\n41,0,9,0,42,0,31,0,18,0,36,0\n27,0,6,0,44,0,2,0,43,0,40,0\n1,0,7,0,33,0,13,0,45,0,20,0\n23,0,48,0,32,0,14,0,4,0,11,0\n38,0,5,0,16,0,37,0,10,0,25,0\n51,0,19,0,52,0,47,0,3,0,30,0\n35,0,21,0,34,0,15,0,29,0,26,0\n49,0,44,0,2,0,50,0,45,0,22,0\n6,0,10,0,20,0,17,0,12,0,8,0\n3,0,33,0,9,0,41,0,24,0,38,0\n19,0,21,0,43,0,1,0,32,0,16,0\n51,0,46,0,50,0,23,0,35,0,31,0\n52,0,18,0,28,0,29,0,49,0,7,0\n25,0,48,0,13,0,37,0,34,0,26,0\n27,0,14,0,5,0,42,0,39,0,4,0\n40,0,36,0,47,0,11,0,30,0,15,0\n18,0,50,0,44,0,51,0,21,0,1,0\n17,0,3,0,20,0,34,0,49,0,48,0\n43,0,22,0,23,0,13,0,52,0,37,0\n4,0,24,0,15,0,7,0,12,0,19,0\n42,0,38,0,40,0,16,0,8,0,45,0\n47,0,31,0,2,0,29,0,25,0,33,0\n26,0,10,0,11,0,46,0,41,0,27,0\n14,0,36,0,35,0,5,0,28,0,6,0\n39,0,9,0,12,0,30,0,32,0,42,0\n17,0,45,0,51,0,7,0,37,0,21,0\n23,0,8,0,50,0,47,0,44,0,34,0\n41,0,40,0,3,0,20,0,46,0,28,0\n36,0,16,0,10,0,39,0,48,0,52,0\n27,0,43,0,18,0,33,0,15,0,35,0\n11,0,19,0,29,0,49,0,5,0,25,0\n2,0,30,0,14,0,38,0,31,0,26,0\n32,0,9,0,6,0,1,0,13,0,22,0\n4,0,28,0,45,0,24,0,35,0,43,0\n46,0,48,0,37,0,42,0,12,0,44,0\n10,0,2,0,18,0,34,0,40,0,19,0\n6,0,39,0,13,0,21,0,3,0,11,0\n49,0,16,0,23,0,24,0,27,0,33,0\n7,0,47,0,52,0,17,0,38,0,9,0\n14,0,51,0,26,0,8,0,20,0,29,0\n31,0,30,0,22,0,4,0,1,0,5,0\n32,0,25,0,41,0,15,0,36,0,50,0\n16,0,2,0,34,0,9,0,44,0,11,0\n49,0,45,0,10,0,47,0,6,0,26,0\n46,0,29,0,21,0,43,0,30,0,4,0\n35,0,7,0,5,0,12,0,40,0,23,0\n13,0,3,0,27,0,31,0,17,0,50,0\n48,0,38,0,36,0,51,0,22,0,15,0\n28,0,8,0,37,0,18,0,39,0,32,0\n25,0,1,0,24,0,14,0,52,0,41,0\n20,0,33,0,23,0,42,0,19,0,10,0\n44,0,31,0,40,0,6,0,21,0,38,0\n50,0,28,0,47,0,13,0,16,0,4,0\n49,0,15,0,37,0,46,0,9,0,14,0\n43,0,25,0,7,0,26,0,3,0,42,0\n52,0,17,0,1,0,51,0,2,0,11,0\n27,0,48,0,45,0,32,0,29,0,5,0\n22,0,12,0,35,0,8,0,33,0,41,0\n30,0,39,0,24,0,34,0,20,0,18,0\n36,0,28,0,26,0,19,0,37,0,44,0\n"
  },
  {
    "path": "schedules/52_12.csv",
    "content": "3,0,41,0,1,0,26,0,36,0,7,0\n46,0,37,0,47,0,32,0,23,0,9,0\n13,0,11,0,45,0,30,0,18,0,34,0\n29,0,24,0,52,0,12,0,49,0,25,0\n14,0,42,0,20,0,21,0,44,0,28,0\n17,0,6,0,8,0,43,0,16,0,19,0\n5,0,38,0,48,0,22,0,27,0,10,0\n35,0,40,0,2,0,50,0,51,0,15,0\n4,0,31,0,7,0,39,0,33,0,13,0\n12,0,46,0,24,0,43,0,17,0,36,0\n47,0,9,0,8,0,29,0,30,0,10,0\n37,0,26,0,21,0,44,0,41,0,25,0\n39,0,20,0,16,0,42,0,2,0,34,0\n15,0,23,0,14,0,6,0,22,0,31,0\n33,0,27,0,51,0,1,0,52,0,18,0\n45,0,48,0,19,0,50,0,32,0,35,0\n3,0,28,0,4,0,40,0,49,0,38,0\n11,0,12,0,34,0,5,0,44,0,8,0\n6,0,2,0,21,0,31,0,46,0,27,0\n24,0,14,0,35,0,7,0,47,0,1,0\n17,0,29,0,26,0,48,0,40,0,42,0\n51,0,10,0,11,0,33,0,20,0,28,0\n18,0,36,0,50,0,4,0,19,0,22,0\n43,0,52,0,41,0,30,0,23,0,38,0\n16,0,49,0,3,0,39,0,9,0,37,0\n32,0,45,0,15,0,25,0,13,0,5,0\n11,0,19,0,7,0,21,0,34,0,22,0\n24,0,42,0,1,0,46,0,2,0,4,0\n14,0,43,0,10,0,23,0,36,0,52,0\n15,0,25,0,8,0,31,0,39,0,50,0\n26,0,13,0,9,0,17,0,28,0,32,0\n41,0,30,0,51,0,12,0,3,0,48,0\n37,0,5,0,40,0,38,0,33,0,6,0\n16,0,47,0,35,0,49,0,44,0,18,0\n45,0,29,0,4,0,27,0,20,0,52,0\n31,0,10,0,24,0,19,0,32,0,51,0\n9,0,34,0,6,0,36,0,12,0,1,0\n49,0,47,0,43,0,2,0,50,0,37,0\n44,0,39,0,22,0,46,0,21,0,30,0\n27,0,42,0,23,0,11,0,3,0,35,0\n29,0,18,0,16,0,41,0,15,0,26,0\n33,0,25,0,17,0,20,0,13,0,38,0\n7,0,28,0,48,0,8,0,14,0,45,0\n5,0,24,0,32,0,40,0,9,0,21,0\n22,0,49,0,36,0,42,0,51,0,26,0\n12,0,39,0,41,0,13,0,27,0,47,0\n45,0,33,0,44,0,29,0,43,0,25,0\n46,0,19,0,20,0,40,0,30,0,14,0\n6,0,23,0,18,0,48,0,8,0,2,0\n34,0,3,0,10,0,17,0,4,0,15,0\n5,0,1,0,35,0,38,0,31,0,28,0\n50,0,16,0,11,0,37,0,7,0,52,0\n27,0,21,0,14,0,43,0,13,0,12,0\n41,0,2,0,32,0,4,0,8,0,49,0\n46,0,10,0,9,0,45,0,26,0,18,0\n34,0,7,0,51,0,29,0,50,0,6,0\n30,0,37,0,36,0,20,0,17,0,5,0\n22,0,42,0,3,0,47,0,31,0,33,0\n1,0,16,0,28,0,23,0,19,0,25,0\n11,0,52,0,40,0,35,0,39,0,48,0\n44,0,38,0,4,0,15,0,24,0,9,0\n50,0,8,0,10,0,13,0,42,0,37,0\n49,0,33,0,41,0,46,0,34,0,14,0\n43,0,32,0,39,0,22,0,29,0,1,0\n12,0,44,0,23,0,40,0,7,0,18,0\n16,0,30,0,25,0,35,0,6,0,27,0\n48,0,31,0,15,0,20,0,11,0,24,0\n51,0,36,0,38,0,21,0,45,0,47,0\n5,0,2,0,52,0,26,0,3,0,19,0\n28,0,8,0,27,0,17,0,41,0,18,0\n43,0,1,0,9,0,11,0,33,0,48,0\n22,0,32,0,38,0,14,0,16,0,12,0\n23,0,35,0,4,0,51,0,29,0,5,0\n28,0,39,0,2,0,44,0,36,0,10,0\n49,0,13,0,7,0,20,0,25,0,6,0\n34,0,26,0,50,0,30,0,24,0,3,0\n21,0,31,0,52,0,17,0,40,0,47,0\n15,0,19,0,37,0,42,0,45,0,46,0\n9,0,22,0,20,0,8,0,35,0,41,0\n18,0,25,0,14,0,44,0,51,0,3,0\n29,0,13,0,40,0,16,0,24,0,36,0\n46,0,43,0,7,0,5,0,10,0,28,0\n52,0,42,0,38,0,48,0,34,0,32,0\n4,0,47,0,26,0,6,0,15,0,11,0\n50,0,21,0,17,0,39,0,1,0,23,0\n12,0,30,0,45,0,31,0,2,0,49,0\n33,0,37,0,22,0,19,0,27,0,24,0\n20,0,51,0,18,0,43,0,42,0,5,0\n47,0,50,0,25,0,16,0,4,0,9,0\n40,0,6,0,3,0,1,0,45,0,10,0\n31,0,29,0,34,0,37,0,14,0,28,0\n38,0,27,0,11,0,36,0,32,0,46,0\n48,0,49,0,23,0,19,0,13,0,44,0\n17,0,52,0,30,0,15,0,7,0,2,0\n35,0,26,0,33,0,12,0,21,0,8,0\n41,0,45,0,5,0,39,0,47,0,24,0\n20,0,32,0,44,0,3,0,23,0,50,0\n4,0,48,0,36,0,16,0,37,0,31,0\n17,0,13,0,46,0,35,0,22,0,51,0\n19,0,38,0,18,0,29,0,39,0,7,0\n42,0,9,0,28,0,6,0,52,0,12,0\n8,0,26,0,40,0,43,0,27,0,34,0\n1,0,21,0,33,0,15,0,30,0,49,0\n10,0,25,0,2,0,14,0,11,0,41,0\n"
  },
  {
    "path": "schedules/52_13.csv",
    "content": "13,0,22,0,10,0,1,0,35,0,21,0\n40,0,37,0,24,0,42,0,11,0,17,0\n45,0,31,0,51,0,32,0,7,0,46,0\n8,0,52,0,39,0,28,0,15,0,5,0\n29,0,12,0,2,0,34,0,19,0,18,0\n38,0,47,0,14,0,36,0,26,0,4,0\n30,0,6,0,16,0,25,0,3,0,33,0\n49,0,50,0,48,0,20,0,9,0,43,0\n23,0,27,0,13,0,41,0,44,0,34,0\n35,0,32,0,2,0,39,0,29,0,46,0\n31,0,5,0,3,0,33,0,17,0,8,0\n30,0,37,0,45,0,47,0,1,0,36,0\n10,0,15,0,44,0,43,0,6,0,24,0\n22,0,18,0,50,0,21,0,23,0,9,0\n12,0,28,0,11,0,48,0,41,0,16,0\n38,0,7,0,52,0,27,0,42,0,25,0\n14,0,26,0,19,0,49,0,51,0,20,0\n4,0,46,0,3,0,40,0,21,0,34,0\n6,1,28,0,47,0,31,1,23,0,11,0\n50,0,38,0,16,0,52,0,10,0,37,0\n22,0,9,0,49,0,7,0,5,0,12,0\n2,0,24,0,45,0,4,0,14,0,48,0\n33,0,27,0,40,0,15,0,35,0,19,0\n20,0,26,0,32,0,30,0,17,0,39,0\n36,0,43,0,51,0,41,0,8,0,13,0\n18,0,42,0,29,0,25,0,44,0,1,0\n33,0,46,0,31,0,12,0,21,0,52,0\n15,0,17,0,23,0,14,0,37,0,2,0\n16,0,40,0,32,0,48,0,24,0,13,0\n28,0,45,0,49,0,30,0,25,0,34,0\n41,0,4,0,43,0,22,0,35,0,20,0\n6,0,29,0,3,0,5,0,38,0,51,0\n19,0,36,0,10,0,39,0,18,0,11,0\n9,0,26,0,47,0,27,0,8,0,1,0\n7,0,44,0,13,0,50,0,42,0,33,0\n52,0,17,0,6,0,22,0,45,0,4,0\n41,0,18,0,38,0,49,0,24,0,32,0\n30,0,29,0,48,0,31,0,36,0,14,0\n21,0,37,0,46,0,27,0,5,0,44,0\n11,0,2,0,34,0,39,0,1,0,20,0\n12,0,9,0,50,0,15,0,3,0,26,0\n47,0,23,0,10,0,42,0,19,0,40,0\n28,0,25,0,16,0,8,0,35,0,51,0\n43,0,34,0,14,0,7,0,27,0,18,0\n33,0,5,0,29,0,11,0,41,0,15,0\n3,0,2,0,10,0,50,0,45,0,13,0\n4,0,40,0,1,0,26,0,28,0,51,0\n35,0,24,0,30,0,17,0,38,0,9,0\n20,0,42,0,46,0,16,0,36,0,22,0\n25,0,8,0,47,0,12,0,44,0,39,0\n32,0,52,0,31,0,43,0,37,0,49,0\n21,0,7,0,48,0,6,0,23,0,19,0\n13,0,33,0,11,0,14,0,29,0,28,0\n27,0,4,0,9,0,16,0,51,0,44,0\n24,0,38,0,42,0,20,0,45,0,12,0\n10,0,25,0,41,0,31,0,17,0,34,0\n19,0,3,0,1,0,52,0,43,0,46,0\n15,0,7,0,40,0,36,0,49,0,18,0\n5,0,26,0,8,0,37,0,32,0,23,0\n47,0,35,0,39,0,50,0,6,0,21,0\n30,0,22,0,38,0,48,0,2,0,44,0\n18,0,28,0,17,0,46,0,16,0,19,0\n1,0,49,0,23,0,3,0,11,0,24,0\n15,0,12,0,31,0,10,0,4,0,20,0\n6,0,9,0,42,0,32,0,14,0,21,0\n5,0,45,0,39,0,29,0,13,0,43,0\n35,0,26,0,52,0,36,0,7,0,2,0\n37,0,8,0,50,0,34,0,48,0,27,0\n51,0,40,0,22,0,30,0,47,0,41,0\n33,0,43,0,23,0,25,0,4,0,39,0\n1,0,11,0,7,0,44,0,32,0,6,0\n16,0,31,0,21,0,38,0,15,0,2,0\n34,0,13,0,42,0,19,0,9,0,30,0\n45,0,48,0,35,0,18,0,12,0,26,0\n37,0,41,0,20,0,33,0,51,0,10,0\n5,0,46,0,49,0,50,0,47,0,24,0\n29,0,17,0,36,0,28,0,3,0,27,0\n22,0,25,0,52,0,40,0,14,0,8,0\n19,0,51,0,41,0,37,0,39,0,9,0\n42,0,44,0,23,0,35,0,49,0,31,0\n34,0,45,0,47,0,16,0,33,0,15,0\n14,0,50,0,10,0,22,0,32,0,28,0\n27,0,11,0,29,0,30,0,40,0,52,0\n25,0,43,0,7,0,26,0,24,0,21,0\n18,0,8,0,46,0,4,0,13,0,6,0\n48,0,1,0,17,0,38,0,12,0,3,0\n20,0,36,0,40,0,5,0,2,0,9,0\n37,0,33,0,26,0,7,0,29,0,22,0\n49,0,21,0,41,0,6,0,45,0,8,0\n35,0,34,0,38,0,11,0,19,0,32,0\n1,0,18,0,31,0,17,0,50,0,5,0\n15,0,14,0,25,0,46,0,10,0,48,0\n20,0,44,0,24,0,13,0,52,0,28,0\n3,0,43,0,39,0,42,0,47,0,16,0\n12,0,27,0,36,0,23,0,2,0,51,0\n4,0,8,0,21,0,30,0,11,0,50,0\n28,0,9,0,24,0,37,0,29,0,31,0\n39,0,14,0,33,0,46,0,38,0,40,0\n12,0,32,0,25,0,27,0,20,0,6,0\n44,0,22,0,19,0,26,0,45,0,16,0\n3,0,36,0,30,0,10,0,18,0,43,0\n17,0,2,0,13,0,49,0,47,0,7,0\n52,0,15,0,1,0,23,0,41,0,35,0\n34,0,51,0,4,0,48,0,42,0,5,0\n12,0,37,0,6,0,25,0,40,0,50,0\n27,0,39,0,19,0,22,0,24,0,31,0\n30,0,23,0,7,0,41,0,46,0,45,0\n2,0,43,0,42,0,28,0,38,0,8,0\n4,0,16,0,49,0,10,0,1,0,29,0\n51,0,17,0,21,0,36,0,34,0,15,0\n14,0,5,0,20,0,44,0,3,0,35,0\n48,0,32,0,18,0,47,0,33,0,52,0\n11,0,26,0,6,0,13,0,9,0,31,0\n"
  },
  {
    "path": "schedules/52_14.csv",
    "content": "12,0,32,0,30,0,34,0,3,0,43,0\n4,0,20,0,26,0,37,0,21,0,8,0\n14,0,25,0,24,0,23,0,51,0,16,0\n15,0,46,0,11,0,22,0,49,0,48,0\n1,0,6,0,17,0,28,0,39,0,5,0\n47,0,9,0,50,0,18,0,35,0,2,0\n44,0,10,0,7,0,13,0,42,0,19,0\n40,0,45,0,33,0,38,0,41,0,29,0\n31,0,27,0,48,0,52,0,36,0,16,0\n6,0,32,0,8,0,24,0,1,0,34,0\n19,0,26,0,17,0,14,0,11,0,49,0\n46,0,4,0,43,0,18,0,29,0,9,0\n25,0,52,0,50,0,22,0,3,0,20,0\n42,0,41,0,35,0,39,0,38,0,51,0\n30,0,27,0,21,0,45,0,31,0,44,0\n37,0,7,0,5,0,33,0,28,0,10,0\n13,0,36,0,47,0,15,0,2,0,12,0\n23,0,8,0,39,0,40,0,50,0,11,0\n41,1,26,0,25,0,44,1,17,0,43,0\n27,1,45,0,6,0,7,1,42,0,4,0\n24,0,2,0,20,0,14,0,48,0,29,0\n38,0,1,0,22,0,15,0,49,0,47,0\n36,0,21,0,34,0,18,0,51,0,10,0\n37,0,23,0,3,0,13,0,5,0,9,0\n28,0,35,0,12,0,32,0,31,0,33,0\n16,0,30,0,40,0,46,0,19,0,52,0\n21,0,20,0,38,0,36,0,43,0,2,0\n41,0,3,0,13,0,34,0,8,0,29,0\n4,0,6,0,47,0,50,0,10,0,49,0\n25,0,16,0,35,0,52,0,26,0,5,0\n46,0,45,0,51,0,1,0,33,0,7,0\n11,0,32,0,44,0,9,0,27,0,14,0\n30,0,19,0,24,0,39,0,15,0,40,0\n17,0,48,0,12,0,28,0,37,0,18,0\n42,0,22,0,50,0,23,0,31,0,36,0\n1,0,2,0,52,0,4,0,10,0,45,0\n44,0,38,0,8,0,51,0,6,0,33,0\n17,0,37,0,29,0,24,0,12,0,39,0\n49,0,46,0,18,0,28,0,27,0,16,0\n7,0,43,0,48,0,31,0,41,0,14,0\n19,0,15,0,20,0,9,0,32,0,23,0\n11,0,42,0,25,0,34,0,30,0,26,0\n22,0,47,0,5,0,21,0,40,0,3,0\n35,0,24,0,31,0,13,0,46,0,1,0\n15,0,27,0,52,0,6,0,37,0,2,0\n14,0,7,0,38,0,30,0,4,0,8,0\n50,0,21,0,32,0,33,0,17,0,42,0\n23,0,18,0,19,0,51,0,3,0,12,0\n36,0,44,0,5,0,29,0,49,0,43,0\n34,0,20,0,28,0,35,0,22,0,26,0\n41,0,39,0,48,0,9,0,45,0,25,0\n13,0,16,0,11,0,47,0,10,0,40,0\n1,0,36,0,51,0,3,0,44,0,4,0\n26,0,38,0,49,0,7,0,29,0,12,0\n6,0,19,0,5,0,24,0,21,0,18,0\n45,0,30,0,17,0,46,0,20,0,23,0\n14,0,39,0,37,0,34,0,27,0,25,0\n10,0,22,0,13,0,16,0,50,0,41,0\n8,0,42,0,52,0,43,0,31,0,28,0\n48,0,40,0,2,0,47,0,32,0,35,0\n33,0,15,0,18,0,11,0,9,0,4,0\n36,0,39,0,6,0,14,0,22,0,19,0\n31,0,10,0,3,0,49,0,17,0,20,0\n2,0,42,0,16,0,12,0,8,0,41,0\n50,0,27,0,1,0,40,0,26,0,46,0\n34,0,33,0,44,0,47,0,48,0,52,0\n9,0,7,0,28,0,25,0,21,0,15,0\n43,0,35,0,30,0,13,0,51,0,37,0\n24,0,5,0,11,0,45,0,38,0,32,0\n29,0,16,0,20,0,23,0,42,0,1,0\n39,0,18,0,31,0,44,0,15,0,26,0\n33,0,41,0,36,0,6,0,30,0,46,0\n9,0,24,0,52,0,8,0,47,0,7,0\n2,0,49,0,51,0,11,0,19,0,37,0\n12,0,27,0,13,0,48,0,5,0,21,0\n22,0,29,0,40,0,4,0,25,0,32,0\n38,0,43,0,23,0,17,0,10,0,34,0\n14,0,3,0,28,0,35,0,45,0,50,0\n47,0,31,0,11,0,5,0,41,0,20,0\n46,0,22,0,8,0,37,0,42,0,44,0\n38,0,6,0,9,0,13,0,29,0,52,0\n48,0,32,0,18,0,7,0,50,0,23,0\n21,0,4,0,17,0,34,0,39,0,16,0\n26,0,27,0,3,0,24,0,10,0,15,0\n49,0,35,0,1,0,36,0,25,0,19,0\n28,0,40,0,51,0,12,0,45,0,14,0\n33,0,43,0,5,0,2,0,30,0,22,0\n3,0,39,0,32,0,48,0,38,0,46,0\n44,0,47,0,21,0,24,0,37,0,27,0\n50,0,19,0,29,0,51,0,52,0,34,0\n18,0,14,0,42,0,41,0,1,0,15,0\n16,0,10,0,9,0,36,0,30,0,28,0\n31,0,17,0,25,0,4,0,33,0,2,0\n13,0,35,0,6,0,45,0,26,0,23,0\n12,0,40,0,43,0,7,0,20,0,11,0\n49,0,30,0,52,0,8,0,50,0,18,0\n10,0,37,0,38,0,14,0,1,0,32,0\n48,0,15,0,13,0,17,0,51,0,5,0\n46,0,12,0,47,0,6,0,25,0,43,0\n29,0,27,0,4,0,35,0,19,0,21,0\n23,0,41,0,11,0,44,0,28,0,2,0\n20,0,39,0,33,0,3,0,7,0,16,0\n24,0,26,0,8,0,36,0,22,0,45,0\n34,0,9,0,42,0,49,0,31,0,40,0\n30,0,29,0,44,0,28,0,47,0,25,0\n52,0,23,0,14,0,21,0,12,0,1,0\n48,0,10,0,19,0,35,0,8,0,33,0\n43,0,45,0,16,0,50,0,38,0,15,0\n3,0,5,0,2,0,39,0,42,0,26,0\n49,0,4,0,36,0,24,0,13,0,32,0\n51,0,9,0,41,0,17,0,27,0,22,0\n20,0,31,0,37,0,40,0,6,0,18,0\n34,0,11,0,2,0,7,0,46,0,21,0\n28,0,42,0,45,0,19,0,47,0,3,0\n12,0,4,0,50,0,24,0,41,0,44,0\n33,0,49,0,23,0,27,0,39,0,43,0\n52,0,40,0,7,0,17,0,35,0,36,0\n14,0,8,0,51,0,32,0,5,0,46,0\n26,0,10,0,1,0,9,0,48,0,30,0\n18,0,25,0,22,0,13,0,38,0,31,0\n37,0,15,0,16,0,11,0,29,0,6,0\n34,0,41,0,7,0,20,0,44,0,27,0\n"
  },
  {
    "path": "schedules/52_2.csv",
    "content": "36,0,50,0,16,0,34,0,39,0,10,0\n37,0,35,0,7,0,26,0,15,0,43,0\n52,0,41,0,6,0,24,0,20,0,18,0\n22,0,11,0,3,0,17,0,25,0,42,0\n51,0,38,0,45,0,14,0,31,0,21,0\n49,0,5,0,30,0,47,0,19,0,2,0\n13,0,23,0,1,0,12,0,4,0,32,0\n8,0,44,0,40,0,27,0,48,0,9,0\n29,0,28,0,20,0,46,0,33,0,35,0\n19,0,15,0,21,0,36,0,22,0,41,0\n39,0,38,0,2,0,23,0,18,0,3,0\n24,0,25,0,26,0,27,0,47,0,34,0\n37,0,32,0,14,0,44,0,11,0,28,0\n6,0,9,0,51,0,50,0,29,0,13,0\n10,0,8,0,12,0,52,0,33,0,5,0\n45,0,46,0,4,0,43,0,40,0,42,0\n1,0,31,0,7,0,30,0,16,0,17,0\n48,0,11,1,37,1,49,0,25,1,39,1\n"
  },
  {
    "path": "schedules/52_3.csv",
    "content": "40,0,30,0,26,0,27,0,28,0,35,0\n4,0,6,0,5,0,10,0,12,0,51,0\n11,0,38,0,41,0,32,0,21,0,49,0\n50,0,39,0,31,0,45,0,9,0,19,0\n16,0,20,0,43,0,18,0,17,0,23,0\n42,0,44,0,33,0,29,0,48,0,46,0\n25,0,24,0,13,0,14,0,52,0,47,0\n15,0,8,0,1,0,3,0,7,0,37,0\n36,0,22,0,38,0,34,0,2,0,26,0\n17,0,51,0,45,0,29,0,28,0,11,0\n21,0,18,0,40,0,31,0,4,0,13,0\n49,0,1,0,16,0,9,0,52,0,33,0\n48,0,3,0,50,0,24,0,36,0,43,0\n44,0,5,0,35,0,22,0,25,0,37,0\n2,0,7,0,39,0,30,0,46,0,32,0\n19,0,47,0,12,0,15,0,20,0,41,0\n23,0,8,0,34,0,6,0,27,0,42,0\n14,0,9,0,36,0,10,0,40,0,44,0\n45,0,30,0,18,0,25,0,38,0,1,0\n26,0,33,0,13,0,39,0,5,0,20,0\n21,0,48,0,6,0,19,0,7,0,16,0\n10,0,43,0,2,0,8,0,28,0,41,0\n46,0,11,0,27,0,3,0,12,0,14,0\n35,0,31,0,52,0,51,0,15,0,42,0\n23,0,29,0,49,0,24,0,4,0,22,0\n37,0,17,0,32,0,47,0,50,0,34,0\n"
  },
  {
    "path": "schedules/52_4.csv",
    "content": "51,0,5,0,21,0,11,0,29,0,20,0\n36,0,9,0,4,0,26,0,2,0,37,0\n40,0,46,0,23,0,48,0,15,0,17,0\n45,0,1,0,27,0,13,0,50,0,41,0\n19,0,33,0,7,0,44,0,22,0,10,0\n38,0,6,0,14,0,12,0,52,0,3,0\n18,0,34,0,35,0,43,0,8,0,49,0\n32,0,42,0,25,0,39,0,16,0,31,0\n47,0,30,0,19,0,24,0,28,0,17,0\n22,0,20,0,38,0,48,0,4,0,1,0\n10,0,43,0,45,0,3,0,15,0,36,0\n41,0,37,0,31,0,40,0,21,0,34,0\n52,0,32,0,50,0,29,0,7,0,9,0\n44,0,16,0,49,0,6,0,11,0,24,0\n18,0,14,0,27,0,25,0,47,0,5,0\n8,0,39,0,13,0,12,0,46,0,28,0\n33,0,30,0,26,0,35,0,23,0,42,0\n2,0,50,0,3,0,51,0,22,0,49,0\n41,1,29,0,47,0,43,1,48,0,6,0\n15,0,12,0,1,0,44,0,9,0,31,0\n4,0,16,0,10,0,8,0,30,0,52,0\n32,0,34,0,33,0,20,0,27,0,17,0\n24,0,46,0,25,0,26,0,38,0,21,0\n51,0,40,0,39,0,35,0,36,0,14,0\n7,0,2,0,28,0,42,0,45,0,5,0\n37,0,18,0,13,0,23,0,19,0,11,0\n29,0,44,0,3,0,46,0,27,0,30,0\n48,0,8,0,14,0,26,0,31,0,50,0\n52,0,36,0,5,0,33,0,24,0,1,0\n11,0,15,0,28,0,35,0,32,0,41,0\n25,0,13,0,20,0,40,0,2,0,43,0\n10,0,42,0,38,0,47,0,49,0,37,0\n12,0,4,0,17,0,21,0,18,0,7,0\n22,0,23,0,6,0,39,0,45,0,34,0\n51,0,9,0,43,0,19,0,16,0,41,0\n"
  },
  {
    "path": "schedules/52_5.csv",
    "content": "10,0,13,0,34,0,38,0,52,0,3,0\n2,0,6,0,47,0,20,0,44,0,28,0\n31,0,32,0,40,0,43,0,22,0,8,0\n26,0,30,0,12,0,48,0,37,0,45,0\n25,0,24,0,21,0,41,0,16,0,14,0\n35,0,51,0,11,0,33,0,5,0,9,0\n49,0,4,0,27,0,15,0,18,0,17,0\n39,0,36,0,1,0,19,0,29,0,46,0\n50,0,23,0,38,0,42,0,7,0,31,0\n5,0,43,0,14,0,47,0,30,0,10,0\n37,0,6,0,22,0,25,0,49,0,9,0\n3,0,26,0,35,0,36,0,4,0,21,0\n29,0,13,0,48,0,11,0,24,0,23,0\n41,0,2,0,33,0,27,0,1,0,40,0\n42,0,12,0,15,0,46,0,20,0,32,0\n17,0,8,0,28,0,45,0,50,0,34,0\n16,0,51,0,52,0,44,0,39,0,18,0\n19,0,41,0,4,0,7,0,11,0,47,0\n32,1,38,0,35,0,30,1,37,0,27,0\n1,1,21,0,45,0,13,1,5,0,42,0\n10,0,33,0,49,0,36,0,16,0,8,0\n19,0,34,0,9,0,48,0,18,0,2,0\n6,0,7,0,24,0,40,0,12,0,39,0\n20,0,50,0,14,0,29,0,22,0,51,0\n52,0,28,0,25,0,15,0,31,0,26,0\n46,0,3,0,23,0,43,0,44,0,17,0\n32,0,16,0,48,0,4,0,6,0,5,0\n8,0,29,0,27,0,21,0,9,0,12,0\n38,0,45,0,47,0,25,0,33,0,39,0\n24,0,20,0,43,0,26,0,1,0,34,0\n31,0,37,0,44,0,14,0,13,0,19,0\n46,0,49,0,11,0,50,0,52,0,40,0\n36,0,23,0,30,0,51,0,15,0,41,0\n22,0,17,0,7,0,35,0,2,0,10,0\n18,0,42,0,37,0,28,0,3,0,24,0\n44,0,26,0,40,0,29,0,38,0,5,0\n13,0,43,0,50,0,25,0,12,0,36,0\n1,0,51,0,47,0,31,0,48,0,49,0\n32,0,17,0,52,0,33,0,19,0,21,0\n27,0,34,0,22,0,30,0,42,0,16,0\n41,0,18,0,45,0,6,0,35,0,46,0\n9,0,39,0,4,0,20,0,23,0,10,0\n3,0,15,0,14,0,2,0,11,0,8,0\n28,0,30,0,1,0,7,0,32,0,13,0\n"
  },
  {
    "path": "schedules/52_6.csv",
    "content": "11,0,47,0,19,0,17,0,23,0,27,0\n7,0,36,0,34,0,22,0,15,0,9,0\n31,0,48,0,30,0,25,0,6,0,35,0\n5,0,16,0,26,0,37,0,1,0,14,0\n12,0,28,0,33,0,29,0,32,0,3,0\n41,0,44,0,46,0,42,0,24,0,20,0\n13,0,38,0,52,0,50,0,45,0,40,0\n4,0,49,0,2,0,8,0,10,0,21,0\n51,0,43,0,3,0,18,0,39,0,27,0\n41,0,34,0,12,0,48,0,47,0,16,0\n5,0,42,0,50,0,11,0,31,0,9,0\n26,0,29,0,35,0,21,0,20,0,13,0\n45,0,1,0,23,0,8,0,15,0,28,0\n43,0,2,0,30,0,44,0,17,0,33,0\n6,0,10,0,7,0,14,0,40,0,32,0\n36,0,18,0,38,0,4,0,19,0,46,0\n37,0,25,0,52,0,22,0,39,0,24,0\n51,0,9,0,28,0,49,0,41,0,16,0\n47,0,3,0,50,0,10,0,30,0,1,0\n27,0,40,0,13,0,2,0,42,0,15,0\n21,0,19,0,52,0,25,0,44,0,5,0\n20,0,49,0,39,0,36,0,6,0,17,0\n23,0,12,0,35,0,37,0,7,0,46,0\n24,0,11,0,14,0,33,0,34,0,18,0\n32,0,26,0,45,0,31,0,4,0,43,0\n22,0,8,0,48,0,38,0,29,0,51,0\n27,0,35,0,10,0,28,0,36,0,44,0\n20,0,15,0,18,0,12,0,30,0,50,0\n9,0,6,0,46,0,3,0,52,0,2,0\n29,0,47,0,45,0,7,0,5,0,24,0\n49,0,48,0,1,0,43,0,11,0,40,0\n17,0,4,0,25,0,14,0,51,0,13,0\n21,0,31,0,39,0,33,0,16,0,38,0\n42,0,19,0,32,0,37,0,8,0,34,0\n22,0,41,0,6,0,23,0,26,0,43,0\n40,0,35,0,4,0,17,0,3,0,5,0\n7,0,12,0,44,0,31,0,51,0,1,0\n8,0,33,0,13,0,9,0,20,0,47,0\n46,0,25,0,27,0,45,0,49,0,34,0\n21,0,24,0,36,0,32,0,30,0,23,0\n29,0,14,0,39,0,50,0,19,0,2,0\n48,0,42,0,18,0,52,0,26,0,28,0\n15,0,41,0,37,0,38,0,11,0,10,0\n22,0,45,0,17,0,16,0,21,0,12,0\n5,0,51,0,2,0,23,0,34,0,20,0\n33,0,7,0,50,0,4,0,27,0,48,0\n44,0,47,0,37,0,40,0,18,0,6,0\n30,0,28,0,13,0,22,0,11,0,46,0\n39,0,32,0,38,0,1,0,9,0,35,0\n16,0,10,0,43,0,42,0,29,0,25,0\n24,0,15,0,3,0,49,0,19,0,26,0\n14,0,8,0,31,0,41,0,52,0,36,0\n"
  },
  {
    "path": "schedules/52_7.csv",
    "content": "15,0,33,0,48,0,23,0,32,0,35,0\n44,0,16,0,31,0,8,0,46,0,42,0\n49,0,36,0,29,0,4,0,26,0,28,0\n3,0,20,0,41,0,17,0,6,0,13,0\n22,0,34,0,11,0,14,0,37,0,18,0\n5,0,27,0,30,0,25,0,9,0,1,0\n10,0,52,0,50,0,19,0,38,0,39,0\n47,0,7,0,21,0,40,0,45,0,24,0\n2,0,51,0,42,0,12,0,43,0,37,0\n14,0,41,0,34,0,48,0,32,0,25,0\n15,0,52,0,49,0,5,0,6,0,46,0\n28,0,1,0,44,0,50,0,20,0,21,0\n8,0,27,0,43,0,24,0,33,0,38,0\n31,0,7,0,12,0,4,0,9,0,3,0\n39,0,40,0,35,0,13,0,30,0,29,0\n51,0,36,0,22,0,2,0,47,0,10,0\n11,0,23,0,17,0,16,0,45,0,26,0\n19,0,4,0,37,0,18,0,24,0,15,0\n3,1,50,0,49,0,52,1,34,0,9,0\n47,0,28,0,48,0,42,0,13,0,27,0\n32,0,12,0,45,0,22,0,29,0,44,0\n30,0,35,0,18,0,8,0,26,0,21,0\n43,0,25,0,20,0,7,0,19,0,16,0\n6,0,1,0,33,0,11,0,51,0,39,0\n36,0,46,0,41,0,40,0,23,0,38,0\n17,0,31,0,2,0,14,0,10,0,5,0\n8,0,47,0,50,0,25,0,12,0,52,0\n39,0,27,0,24,0,49,0,26,0,32,0\n44,0,43,0,48,0,36,0,30,0,3,0\n42,0,34,0,5,0,33,0,41,0,7,0\n23,0,21,0,29,0,19,0,11,0,31,0\n38,0,4,0,35,0,2,0,22,0,20,0\n18,0,45,0,13,0,10,0,1,0,46,0\n16,0,9,0,40,0,15,0,51,0,14,0\n37,0,6,0,8,0,17,0,28,0,7,0\n11,0,2,0,41,0,52,0,44,0,24,0\n42,0,22,0,26,0,3,0,19,0,1,0\n20,0,49,0,14,0,30,0,45,0,15,0\n37,0,23,0,51,0,35,0,25,0,27,0\n32,0,31,0,10,0,40,0,43,0,28,0\n9,0,18,0,6,0,48,0,29,0,38,0\n39,0,21,0,34,0,46,0,17,0,47,0\n5,0,33,0,4,0,13,0,50,0,16,0\n12,0,24,0,11,0,36,0,20,0,35,0\n10,0,26,0,27,0,44,0,15,0,7,0\n30,0,34,0,46,0,51,0,28,0,19,0\n45,0,22,0,39,0,48,0,5,0,8,0\n9,0,32,0,50,0,17,0,36,0,42,0\n4,0,47,0,23,0,14,0,6,0,43,0\n31,0,37,0,29,0,1,0,41,0,52,0\n25,0,40,0,3,0,18,0,33,0,2,0\n12,0,38,0,13,0,16,0,21,0,49,0\n50,0,7,0,24,0,23,0,22,0,46,0\n26,0,48,0,51,0,20,0,31,0,52,0\n19,0,33,0,9,0,44,0,37,0,45,0\n28,0,12,0,16,0,18,0,41,0,39,0\n3,0,5,0,47,0,11,0,32,0,38,0\n15,0,13,0,8,0,2,0,34,0,29,0\n43,0,35,0,1,0,40,0,17,0,49,0\n42,0,30,0,25,0,10,0,4,0,6,0\n36,0,14,0,52,0,21,0,27,0,3,0\n"
  },
  {
    "path": "schedules/52_8.csv",
    "content": "39,0,22,0,44,0,13,0,38,0,18,0\n51,0,30,0,50,0,41,0,37,0,33,0\n32,0,4,0,31,0,25,0,42,0,16,0\n6,0,45,0,48,0,23,0,5,0,19,0\n15,0,12,0,2,0,20,0,21,0,29,0\n9,0,1,0,10,0,47,0,49,0,46,0\n26,0,35,0,28,0,36,0,40,0,14,0\n34,0,43,0,11,0,8,0,3,0,52,0\n17,0,7,0,19,0,27,0,24,0,37,0\n42,0,33,0,12,0,49,0,22,0,23,0\n21,0,5,0,4,0,31,0,40,0,9,0\n44,0,36,0,8,0,32,0,2,0,50,0\n17,0,28,0,47,0,30,0,20,0,39,0\n7,0,13,0,51,0,11,0,46,0,45,0\n10,0,48,0,29,0,34,0,14,0,41,0\n26,0,15,0,24,0,38,0,25,0,6,0\n18,0,27,0,35,0,43,0,1,0,16,0\n3,0,37,0,45,0,52,0,9,0,36,0\n48,1,50,0,21,0,28,1,13,0,10,0\n33,1,22,0,31,0,7,1,15,0,8,0\n34,0,47,0,20,0,32,0,46,0,38,0\n11,0,42,0,24,0,5,0,1,0,30,0\n49,0,25,0,26,0,18,0,19,0,29,0\n16,0,3,0,14,0,17,0,51,0,12,0\n41,0,40,0,39,0,52,0,43,0,6,0\n4,0,23,0,35,0,27,0,44,0,2,0\n38,0,9,0,47,0,25,0,7,0,29,0\n20,0,8,0,17,0,49,0,13,0,36,0\n16,0,28,0,37,0,6,0,22,0,34,0\n26,0,31,0,2,0,41,0,11,0,48,0\n12,0,24,0,35,0,45,0,50,0,4,0\n14,0,43,0,19,0,44,0,21,0,42,0\n1,0,32,0,40,0,23,0,39,0,3,0\n30,0,10,0,27,0,5,0,15,0,51,0\n18,0,46,0,4,0,33,0,52,0,17,0\n34,0,16,0,2,0,9,0,13,0,24,0\n48,0,19,0,22,0,11,0,20,0,40,0\n42,0,3,0,10,0,44,0,35,0,7,0\n37,0,12,0,5,0,26,0,39,0,46,0\n49,0,32,0,6,0,30,0,21,0,52,0\n41,0,25,0,28,0,8,0,45,0,1,0\n50,0,14,0,23,0,18,0,47,0,15,0\n33,0,38,0,51,0,31,0,43,0,36,0\n29,0,24,0,49,0,27,0,22,0,3,0\n40,0,30,0,25,0,44,0,34,0,12,0\n16,0,8,0,5,0,14,0,20,0,7,0\n26,0,13,0,37,0,23,0,32,0,43,0\n2,0,9,0,18,0,28,0,6,0,51,0\n52,0,27,0,45,0,10,0,47,0,31,0\n38,0,50,0,17,0,1,0,42,0,48,0\n19,0,46,0,36,0,41,0,15,0,4,0\n21,0,35,0,11,0,33,0,39,0,29,0\n20,0,52,0,51,0,26,0,7,0,23,0\n18,0,42,0,40,0,8,0,10,0,24,0\n43,0,44,0,15,0,9,0,28,0,48,0\n47,0,19,0,33,0,3,0,2,0,13,0\n5,0,41,0,22,0,17,0,32,0,35,0\n34,0,45,0,25,0,27,0,21,0,39,0\n38,0,11,0,14,0,49,0,37,0,4,0\n29,0,12,0,36,0,1,0,31,0,6,0\n50,0,46,0,3,0,16,0,30,0,26,0\n10,0,43,0,2,0,22,0,25,0,17,0\n48,0,8,0,39,0,51,0,24,0,4,0\n20,0,41,0,1,0,44,0,9,0,33,0\n7,0,31,0,49,0,50,0,34,0,35,0\n38,0,52,0,23,0,28,0,19,0,30,0\n37,0,29,0,15,0,45,0,16,0,40,0\n6,0,46,0,13,0,27,0,42,0,14,0\n47,0,36,0,21,0,18,0,11,0,5,0\n32,0,48,0,33,0,12,0,28,0,7,0\n"
  },
  {
    "path": "schedules/52_9.csv",
    "content": "43,0,22,0,15,0,50,0,49,0,31,0\n28,0,35,0,47,0,21,0,41,0,10,0\n34,0,1,0,38,0,30,0,24,0,23,0\n13,0,8,0,11,0,20,0,25,0,40,0\n33,0,44,0,12,0,27,0,17,0,26,0\n51,0,45,0,42,0,2,0,32,0,9,0\n16,0,36,0,19,0,14,0,46,0,37,0\n48,0,6,0,52,0,3,0,7,0,4,0\n29,0,18,0,26,0,39,0,5,0,20,0\n40,0,47,0,30,0,44,0,43,0,51,0\n41,0,32,0,35,0,1,0,16,0,13,0\n31,0,6,0,17,0,10,0,34,0,8,0\n36,0,11,0,2,0,48,0,49,0,24,0\n14,0,52,0,29,0,37,0,45,0,38,0\n4,0,18,0,39,0,23,0,28,0,50,0\n12,0,15,0,42,0,22,0,33,0,7,0\n27,0,25,0,21,0,9,0,46,0,5,0\n3,0,17,0,49,0,19,0,1,0,24,0\n41,0,13,0,26,0,6,0,2,0,45,0\n37,0,29,0,36,0,18,0,44,0,42,0\n11,0,30,0,22,0,4,0,35,0,9,0\n3,0,12,0,48,0,8,0,40,0,21,0\n52,0,16,0,28,0,34,0,25,0,15,0\n19,0,50,0,32,0,38,0,10,0,31,0\n7,0,46,0,20,0,51,0,23,0,33,0\n5,0,14,0,27,0,47,0,43,0,39,0\n44,0,24,0,28,0,8,0,35,0,22,0\n36,0,30,0,12,0,25,0,13,0,10,0\n21,0,20,0,9,0,31,0,15,0,32,0\n29,0,4,0,17,0,26,0,16,0,51,0\n1,0,50,0,14,0,11,0,27,0,6,0\n40,0,5,0,19,0,52,0,23,0,42,0\n49,0,45,0,46,0,7,0,39,0,34,0\n41,0,33,0,48,0,37,0,43,0,18,0\n38,0,3,0,50,0,2,0,47,0,16,0\n10,0,52,0,15,0,27,0,29,0,8,0\n23,0,21,0,32,0,14,0,6,0,22,0\n7,0,25,0,5,0,24,0,37,0,17,0\n11,0,43,0,26,0,34,0,51,0,28,0\n47,0,49,0,36,0,45,0,30,0,20,0\n9,0,33,0,13,0,44,0,38,0,48,0\n4,0,31,0,12,0,1,0,42,0,41,0\n40,0,2,0,18,0,19,0,35,0,46,0\n3,0,37,0,22,0,39,0,51,0,30,0\n48,0,23,0,8,0,27,0,49,0,16,0\n44,0,47,0,15,0,25,0,1,0,6,0\n4,0,45,0,34,0,19,0,33,0,21,0\n41,0,39,0,29,0,24,0,40,0,9,0\n43,0,42,0,10,0,13,0,18,0,38,0\n46,0,52,0,32,0,12,0,11,0,17,0\n20,0,28,0,31,0,3,0,2,0,14,0\n35,0,50,0,7,0,26,0,5,0,36,0\n38,0,51,0,25,0,21,0,49,0,18,0\n47,0,23,0,9,0,52,0,13,0,12,0\n20,0,16,0,42,0,43,0,24,0,6,0\n3,0,34,0,5,0,32,0,4,0,44,0\n14,0,39,0,45,0,35,0,15,0,17,0\n10,0,1,0,46,0,48,0,22,0,26,0\n8,0,50,0,2,0,30,0,29,0,33,0\n28,0,37,0,27,0,36,0,31,0,40,0\n7,0,19,0,44,0,41,0,11,0,20,0\n4,0,24,0,26,0,15,0,14,0,13,0\n1,0,17,0,52,0,21,0,43,0,2,0\n34,0,35,0,37,0,9,0,50,0,12,0\n16,0,38,0,32,0,27,0,40,0,7,0\n45,0,23,0,10,0,11,0,42,0,3,0\n51,0,6,0,36,0,33,0,31,0,39,0\n47,0,25,0,22,0,19,0,29,0,48,0\n30,0,5,0,49,0,41,0,28,0,46,0\n18,0,14,0,9,0,8,0,1,0,7,0\n24,0,51,0,20,0,50,0,52,0,45,0\n40,0,44,0,39,0,4,0,2,0,10,0\n43,0,27,0,33,0,35,0,3,0,25,0\n46,0,26,0,8,0,32,0,42,0,47,0\n31,0,22,0,18,0,30,0,17,0,16,0\n19,0,38,0,6,0,12,0,28,0,5,0\n21,0,37,0,13,0,49,0,11,0,29,0\n41,0,34,0,23,0,15,0,36,0,48,0\n"
  },
  {
    "path": "schedules/53_1.csv",
    "content": "33,0,20,0,8,0,21,0,3,0,35,0\n2,0,6,0,14,0,24,0,17,0,37,0\n12,0,36,0,43,0,29,0,26,0,7,0\n47,0,40,0,22,0,38,0,10,0,48,0\n1,0,15,0,16,0,13,0,39,0,44,0\n11,0,31,0,53,0,9,0,34,0,50,0\n4,0,23,0,46,0,52,0,27,0,49,0\n25,0,30,0,5,0,51,0,42,0,19,0\n41,0,45,0,18,0,28,0,32,0,40,1\n"
  },
  {
    "path": "schedules/53_10.csv",
    "content": "52,0,51,0,45,0,22,0,46,0,5,0\n27,0,28,0,33,0,7,0,13,0,4,0\n6,0,8,0,11,0,34,0,2,0,16,0\n44,0,12,0,31,0,21,0,37,0,18,0\n14,0,36,0,3,0,47,0,25,0,30,0\n42,0,41,0,23,0,24,0,40,0,20,0\n48,0,53,0,1,0,39,0,35,0,50,0\n19,0,17,0,9,0,26,0,43,0,49,0\n15,0,38,0,10,0,32,0,29,0,36,0\n34,0,41,0,30,0,23,0,31,0,51,0\n35,0,53,0,25,0,22,0,13,0,44,0\n18,0,26,0,7,0,45,0,47,0,16,0\n46,0,50,0,21,0,14,0,32,0,17,0\n5,0,3,0,49,0,42,0,48,0,8,0\n39,0,10,0,37,0,38,0,6,0,43,0\n27,0,12,0,9,0,28,0,11,0,20,0\n19,0,24,0,4,0,29,0,2,0,15,0\n33,0,40,0,23,0,52,0,1,0,18,0\n42,1,43,0,53,0,46,1,6,0,14,0\n31,1,27,0,17,0,39,1,16,0,5,0\n50,0,13,0,28,0,8,0,49,0,10,0\n48,0,32,0,34,0,33,0,44,0,30,0\n26,0,19,0,35,0,37,0,40,0,3,0\n15,0,36,0,1,0,41,0,21,0,45,0\n2,0,47,0,52,0,20,0,12,0,29,0\n4,0,22,0,51,0,7,0,9,0,11,0\n25,0,24,0,48,0,38,0,8,0,27,0\n34,0,36,0,5,0,18,0,39,0,3,0\n1,0,46,0,43,0,44,0,28,0,47,0\n29,0,40,0,49,0,11,0,14,0,22,0\n16,0,51,0,37,0,15,0,4,0,42,0\n17,0,6,0,26,0,23,0,12,0,13,0\n41,0,2,0,31,0,25,0,10,0,52,0\n24,0,50,0,30,0,9,0,35,0,45,0\n53,0,32,0,38,0,7,0,19,0,20,0\n33,0,48,0,6,0,21,0,36,0,51,0\n44,0,23,0,16,0,3,0,22,0,28,0\n14,0,43,0,13,0,5,0,24,0,37,0\n2,0,4,0,25,0,47,0,18,0,35,0\n11,0,17,0,52,0,10,0,45,0,30,0\n20,0,9,0,8,0,40,0,1,0,7,0\n53,0,12,0,39,0,32,0,15,0,49,0\n29,0,46,0,34,0,27,0,41,0,19,0\n31,0,26,0,50,0,42,0,38,0,33,0\n21,0,40,0,43,0,35,0,30,0,51,0\n16,0,17,0,20,0,48,0,9,0,44,0\n25,0,14,0,12,0,34,0,23,0,19,0\n45,0,3,0,29,0,13,0,33,0,31,0\n4,0,52,0,21,0,8,0,50,0,32,0\n49,0,2,0,7,0,46,0,37,0,36,0\n10,0,42,0,18,0,53,0,27,0,24,0\n15,0,11,0,5,0,26,0,38,0,1,0\n47,0,22,0,41,0,28,0,6,0,39,0\n23,0,3,0,7,0,2,0,43,0,50,0\n37,0,32,0,27,0,45,0,17,0,40,0\n31,0,19,0,5,0,36,0,11,0,44,0\n35,0,52,0,38,0,51,0,34,0,49,0\n41,0,39,0,8,0,18,0,33,0,14,0\n26,0,28,0,16,0,30,0,53,0,29,0\n15,0,24,0,46,0,6,0,20,0,25,0\n10,0,4,0,1,0,22,0,12,0,48,0\n42,0,13,0,9,0,21,0,47,0,34,0\n17,0,5,0,28,0,36,0,2,0,53,0\n44,0,50,0,18,0,11,0,51,0,29,0\n32,0,6,0,24,0,31,0,1,0,3,0\n16,0,7,0,43,0,41,0,52,0,13,0\n8,0,22,0,21,0,20,0,37,0,26,0\n12,0,33,0,10,0,14,0,42,0,35,0\n27,0,47,0,49,0,15,0,23,0,30,0\n19,0,45,0,25,0,39,0,40,0,48,0\n46,0,38,0,3,0,4,0,9,0,53,0\n52,0,37,0,34,0,28,0,24,0,1,0\n18,0,15,0,41,0,42,0,17,0,22,0\n40,0,16,0,19,0,47,0,50,0,10,0\n38,0,7,0,30,0,6,0,21,0,12,0\n35,0,8,0,23,0,48,0,46,0,11,0\n2,0,39,0,32,0,51,0,13,0,26,0\n25,0,33,0,29,0,9,0,43,0,5,0\n49,0,20,0,14,0,31,0,45,0,4,0\n27,0,44,0,35,0,36,0,6,0,52,0\n39,0,47,0,51,0,8,0,17,0,24,0\n11,0,37,0,12,0,3,0,41,0,53,0\n48,0,13,0,15,0,31,0,40,0,46,0\n18,0,23,0,28,0,32,0,42,0,19,0\n1,0,21,0,49,0,25,0,27,0,16,0\n14,0,44,0,45,0,2,0,38,0,9,0\n22,0,20,0,30,0,33,0,5,0,50,0\n43,0,10,0,36,0,26,0,4,0,34,0\n29,0,42,0,31,0,7,0,46,0,39,0\n"
  },
  {
    "path": "schedules/53_11.csv",
    "content": "51,0,50,0,35,0,13,0,45,0,34,0\n29,0,19,0,11,0,23,0,53,0,37,0\n8,0,33,0,22,0,2,0,6,0,17,0\n3,0,48,0,20,0,28,0,21,0,36,0\n41,0,49,0,24,0,10,0,39,0,44,0\n31,0,42,0,43,0,4,0,27,0,12,0\n25,0,7,0,15,0,32,0,5,0,52,0\n14,0,47,0,26,0,1,0,46,0,30,0\n18,0,38,0,16,0,9,0,40,0,39,0\n21,0,13,0,27,0,23,0,8,0,4,0\n29,0,43,0,22,0,28,0,11,0,45,0\n20,0,5,0,14,0,51,0,53,0,2,0\n30,0,48,0,47,0,10,0,15,0,35,0\n31,0,3,0,52,0,37,0,38,0,49,0\n24,0,12,0,18,0,41,0,7,0,26,0\n25,0,1,0,42,0,6,0,16,0,50,0\n32,0,44,0,46,0,9,0,19,0,33,0\n40,0,34,0,23,0,36,0,17,0,14,0\n18,1,2,0,29,0,3,1,21,0,24,0\n10,1,6,0,38,0,11,1,5,0,51,0\n33,1,35,0,52,0,8,0,9,0,1,0\n39,0,12,0,45,0,28,0,19,0,40,0\n17,0,7,0,50,0,31,0,44,0,48,0\n20,0,16,0,49,0,15,0,27,0,26,0\n25,0,43,0,30,0,13,0,36,0,41,0\n42,0,47,0,37,0,53,0,22,0,32,0\n46,0,4,0,31,0,34,0,6,0,24,0\n16,0,15,0,1,0,7,0,51,0,23,0\n18,0,30,0,19,0,8,0,38,0,29,0\n9,0,21,0,17,0,36,0,47,0,43,0\n26,0,42,0,5,0,40,0,41,0,48,0\n14,0,35,0,27,0,3,0,50,0,44,0\n28,0,33,0,39,0,4,0,13,0,37,0\n2,0,46,0,45,0,25,0,49,0,53,0\n20,0,32,0,11,0,34,0,52,0,12,0\n10,0,16,0,21,0,22,0,35,0,7,0\n19,0,5,0,48,0,4,0,33,0,14,0\n13,0,47,0,23,0,44,0,38,0,24,0\n2,0,30,0,12,0,18,0,50,0,34,0\n51,0,49,0,1,0,29,0,25,0,17,0\n6,0,40,0,26,0,28,0,32,0,37,0\n8,0,43,0,41,0,20,0,22,0,15,0\n10,0,53,0,45,0,31,0,39,0,36,0\n46,0,9,0,11,0,3,0,42,0,27,0\n52,0,30,0,4,0,17,0,12,0,16,0\n8,0,49,0,34,0,47,0,28,0,41,0\n26,0,31,0,19,0,2,0,25,0,35,0\n10,0,50,0,11,0,15,0,6,0,21,0\n13,0,9,0,7,0,29,0,53,0,14,0\n45,0,23,0,24,0,33,0,42,0,20,0\n37,0,3,0,46,0,43,0,5,0,40,0\n32,0,48,0,27,0,38,0,1,0,39,0\n36,0,51,0,44,0,22,0,18,0,52,0\n42,0,6,0,23,0,49,0,30,0,7,0\n40,0,14,0,16,0,8,0,11,0,31,0\n53,0,41,0,38,0,33,0,50,0,43,0\n47,0,51,0,22,0,26,0,3,0,39,0\n36,0,35,0,12,0,29,0,46,0,5,0\n10,0,48,0,37,0,18,0,20,0,9,0\n17,0,15,0,32,0,13,0,28,0,2,0\n27,0,45,0,19,0,24,0,25,0,52,0\n34,0,4,0,53,0,1,0,21,0,44,0\n14,0,9,0,12,0,49,0,22,0,6,0\n37,0,17,0,35,0,42,0,41,0,32,0\n50,0,40,0,29,0,10,0,20,0,52,0\n1,0,31,0,24,0,36,0,3,0,15,0\n28,0,51,0,18,0,27,0,30,0,23,0\n44,0,34,0,5,0,26,0,45,0,43,0\n4,0,2,0,7,0,47,0,38,0,11,0\n46,0,25,0,33,0,8,0,39,0,21,0\n13,0,19,0,49,0,16,0,48,0,36,0\n28,0,43,0,14,0,18,0,35,0,32,0\n22,0,26,0,4,0,9,0,23,0,50,0\n52,0,51,0,38,0,46,0,21,0,42,0\n47,0,33,0,29,0,31,0,16,0,27,0\n45,0,41,0,37,0,48,0,1,0,2,0\n6,0,13,0,44,0,8,0,40,0,20,0\n10,0,7,0,3,0,34,0,25,0,19,0\n11,0,24,0,39,0,30,0,17,0,5,0\n53,0,15,0,33,0,12,0,38,0,26,0\n48,0,18,0,13,0,45,0,47,0,6,0\n27,0,1,0,43,0,19,0,22,0,10,0\n30,0,21,0,32,0,49,0,31,0,5,0\n50,0,36,0,8,0,7,0,37,0,11,0\n23,0,17,0,20,0,12,0,25,0,3,0\n2,0,44,0,41,0,52,0,46,0,16,0\n53,0,35,0,40,0,51,0,24,0,4,0\n29,0,15,0,39,0,14,0,42,0,34,0\n28,0,25,0,50,0,9,0,47,0,5,0\n17,0,31,0,18,0,19,0,46,0,20,0\n36,0,7,0,40,0,27,0,33,0,2,0\n38,0,21,0,45,0,11,0,41,0,14,0\n42,0,12,0,28,0,10,0,1,0,13,0\n32,0,8,0,26,0,29,0,4,0,3,0\n52,0,6,0,39,0,35,0,43,0,23,0\n9,0,44,0,37,0,15,0,30,0,51,0\n34,0,16,0,22,0,24,0,53,0,48,0\n49,0,3,0,11,0,18,0,10,0,33,0\n"
  },
  {
    "path": "schedules/53_12.csv",
    "content": "39,0,10,0,49,0,26,0,31,0,12,0\n41,0,50,0,21,0,33,0,44,0,45,0\n11,0,32,0,35,0,23,0,17,0,2,0\n28,0,20,0,48,0,47,0,7,0,43,0\n40,0,36,0,3,0,37,0,38,0,29,0\n51,0,9,0,46,0,34,0,30,0,18,0\n14,0,15,0,8,0,16,0,19,0,25,0\n4,0,42,0,24,0,5,0,1,0,27,0\n53,0,13,0,6,0,52,0,22,0,41,0\n43,0,23,0,34,0,38,0,35,0,10,0\n31,0,21,0,29,0,14,0,47,0,37,0\n30,0,9,0,48,0,8,0,2,0,45,0\n27,0,44,0,26,0,1,0,18,0,17,0\n25,0,22,0,39,0,49,0,51,0,24,0\n16,0,40,0,11,0,19,0,3,0,52,0\n5,0,32,0,42,0,36,0,15,0,50,0\n13,0,33,0,20,0,28,0,53,0,46,0\n12,0,4,0,35,0,7,0,6,0,45,0\n24,0,43,0,22,0,14,0,41,0,3,0\n50,0,32,0,47,0,34,0,19,0,26,0\n8,0,33,0,18,0,42,0,29,0,10,0\n48,0,27,0,23,0,9,0,44,0,40,0\n36,0,2,0,49,0,1,0,20,0,46,0\n25,0,11,0,37,0,31,0,28,0,4,0\n39,0,52,0,6,0,51,0,38,0,7,0\n16,0,12,0,5,0,17,0,21,0,30,0\n15,0,13,0,49,0,53,0,42,0,35,0\n46,0,31,0,41,0,8,0,26,0,48,0\n11,0,19,0,10,0,44,0,7,0,36,0\n52,0,4,0,21,0,30,0,39,0,3,0\n45,0,17,0,20,0,25,0,28,0,14,0\n1,0,13,0,22,0,18,0,32,0,16,0\n12,0,29,0,6,0,50,0,43,0,27,0\n51,0,53,0,23,0,37,0,5,0,15,0\n2,0,33,0,38,0,24,0,9,0,47,0\n34,0,36,0,21,0,40,0,25,0,41,0\n20,0,42,0,52,0,22,0,29,0,45,0\n19,0,35,0,48,0,11,0,46,0,5,0\n39,0,1,0,51,0,33,0,23,0,10,0\n26,0,9,0,17,0,53,0,37,0,4,0\n38,0,34,0,6,0,31,0,16,0,15,0\n50,0,28,0,8,0,18,0,40,0,49,0\n30,0,13,0,7,0,47,0,27,0,3,0\n43,0,2,0,12,0,44,0,24,0,14,0\n1,0,21,0,10,0,32,0,9,0,38,0\n33,0,50,0,35,0,31,0,20,0,22,0\n27,0,52,0,36,0,28,0,47,0,15,0\n43,0,40,0,45,0,51,0,16,0,26,0\n32,0,3,0,6,0,46,0,44,0,48,0\n19,0,37,0,8,0,7,0,12,0,24,0\n30,0,41,0,53,0,14,0,42,0,23,0\n17,0,49,0,4,0,13,0,2,0,34,0\n5,0,18,0,25,0,11,0,39,0,29,0\n24,0,31,0,27,0,21,0,32,0,20,0\n44,0,47,0,38,0,42,0,45,0,51,0\n46,0,17,0,15,0,10,0,41,0,9,0\n53,0,16,0,7,0,18,0,36,0,29,0\n2,0,22,0,28,0,12,0,19,0,23,0\n50,0,14,0,52,0,1,0,37,0,35,0\n33,0,40,0,30,0,6,0,49,0,11,0\n5,0,26,0,3,0,34,0,25,0,8,0\n4,0,13,0,39,0,48,0,43,0,36,0\n29,0,47,0,46,0,12,0,41,0,1,0\n20,0,9,0,49,0,23,0,44,0,16,0\n21,0,7,0,37,0,22,0,34,0,35,0\n8,0,40,0,51,0,14,0,32,0,4,0\n10,0,24,0,26,0,11,0,52,0,48,0\n31,0,30,0,42,0,19,0,17,0,28,0\n38,0,45,0,39,0,5,0,13,0,50,0\n18,0,2,0,3,0,6,0,27,0,15,0\n25,0,43,0,32,0,33,0,53,0,21,0\n44,0,8,0,22,0,28,0,11,0,36,0\n24,0,39,0,23,0,34,0,17,0,29,0\n7,0,14,0,27,0,41,0,26,0,49,0\n42,0,33,0,16,0,4,0,48,0,50,0\n9,0,12,0,25,0,47,0,13,0,52,0\n45,0,3,0,53,0,31,0,51,0,35,0\n5,0,19,0,38,0,6,0,20,0,18,0\n15,0,1,0,40,0,43,0,30,0,46,0\n37,0,10,0,16,0,2,0,25,0,24,0\n11,0,7,0,3,0,42,0,9,0,50,0\n51,0,48,0,29,0,28,0,21,0,49,0\n1,0,19,0,44,0,52,0,34,0,33,0\n26,0,35,0,14,0,13,0,8,0,38,0\n10,0,22,0,46,0,45,0,4,0,27,0\n36,0,47,0,23,0,6,0,17,0,5,0\n43,0,18,0,41,0,31,0,32,0,37,0\n20,0,15,0,2,0,40,0,12,0,39,0\n53,0,48,0,25,0,30,0,38,0,1,0\n34,0,9,0,28,0,6,0,22,0,14,0\n4,0,47,0,18,0,23,0,3,0,35,0\n17,0,32,0,52,0,33,0,49,0,43,0\n26,0,30,0,50,0,46,0,24,0,36,0\n44,0,13,0,31,0,5,0,7,0,40,0\n29,0,19,0,41,0,10,0,2,0,51,0\n42,0,27,0,37,0,20,0,8,0,16,0\n11,0,21,0,45,0,39,0,53,0,15,0\n12,0,18,0,14,0,3,0,48,0,33,0\n31,0,5,0,36,0,52,0,9,0,2,0\n17,0,38,0,43,0,19,0,30,0,22,0\n29,0,20,0,44,0,15,0,4,0,26,0\n7,0,42,0,46,0,23,0,25,0,21,0\n1,0,45,0,49,0,6,0,37,0,24,0\n28,0,35,0,16,0,32,0,41,0,39,0\n8,0,10,0,47,0,50,0,40,0,53,0\n51,0,34,0,11,0,13,0,12,0,27,0\n"
  },
  {
    "path": "schedules/53_13.csv",
    "content": "48,0,7,0,53,0,37,0,51,0,19,0\n36,0,43,0,29,0,25,0,12,0,52,0\n45,0,50,0,33,0,5,0,16,0,24,0\n47,0,28,0,46,0,4,0,20,0,9,0\n38,0,22,0,26,0,27,0,6,0,40,0\n10,0,17,0,15,0,41,0,13,0,1,0\n49,0,11,0,3,0,44,0,14,0,39,0\n21,0,42,0,35,0,23,0,18,0,2,0\n30,0,32,0,31,0,8,0,34,0,7,0\n38,0,50,0,24,0,41,0,19,0,28,0\n46,0,33,0,3,0,6,0,17,0,37,0\n12,0,48,0,21,0,11,0,39,0,10,0\n49,0,53,0,23,0,31,0,36,0,22,0\n14,0,5,0,13,0,18,0,9,0,47,0\n27,0,52,0,45,0,42,0,15,0,8,0\n34,0,25,0,20,0,44,0,1,0,4,0\n40,0,29,0,16,0,51,0,35,0,30,0\n43,0,32,0,50,0,26,0,2,0,41,0\n10,0,13,0,46,0,12,1,27,0,31,0\n37,0,39,0,53,0,28,0,15,0,1,0\n23,0,45,0,30,0,33,0,44,0,18,0\n7,0,2,0,17,0,8,0,4,0,29,0\n3,0,20,0,5,0,11,0,51,0,48,0\n47,0,34,0,16,0,49,0,21,0,40,0\n36,0,6,0,24,0,43,0,14,0,42,0\n52,0,32,0,19,0,38,0,9,0,35,0\n22,0,25,0,30,0,26,0,39,0,5,0\n17,0,11,0,1,0,48,0,28,0,16,0\n31,0,34,0,37,0,6,0,43,0,45,0\n13,0,8,0,51,0,42,0,4,0,23,0\n52,0,36,0,18,0,40,0,44,0,26,0\n46,0,21,0,15,0,53,0,3,0,32,0\n12,0,2,0,38,0,24,0,49,0,9,0\n41,0,10,0,50,0,35,0,20,0,14,0\n25,0,33,0,47,0,7,0,19,0,22,0\n27,0,1,0,21,0,29,0,5,0,18,0\n6,0,39,0,8,0,16,0,43,0,9,0\n4,0,11,0,12,0,40,0,52,0,31,0\n19,0,15,0,26,0,49,0,20,0,33,0\n29,0,34,0,42,0,7,0,10,0,47,0\n35,0,28,0,22,0,45,0,36,0,46,0\n3,0,48,0,24,0,32,0,25,0,23,0\n14,0,51,0,2,0,38,0,37,0,13,0\n41,0,27,0,17,0,30,0,53,0,44,0\n50,0,28,0,21,0,40,0,10,0,22,0\n31,0,46,0,29,0,48,0,33,0,42,0\n15,0,11,0,47,0,35,0,25,0,26,0\n41,0,9,0,14,0,34,0,51,0,27,0\n32,0,39,0,4,0,5,0,36,0,17,0\n52,0,44,0,24,0,13,0,30,0,50,0\n8,0,38,0,19,0,3,0,37,0,18,0\n16,0,49,0,1,0,43,0,7,0,23,0\n45,0,20,0,2,0,53,0,12,0,6,0\n14,0,21,0,52,0,28,0,31,0,33,0\n34,0,24,0,26,0,9,0,8,0,3,0\n16,0,41,0,44,0,42,0,22,0,37,0\n15,0,48,0,32,0,18,0,4,0,50,0\n49,0,39,0,27,0,20,0,6,0,51,0\n38,0,29,0,7,0,53,0,5,0,11,0\n47,0,2,0,13,0,30,0,10,0,36,0\n40,0,23,0,19,0,46,0,43,0,17,0\n12,0,35,0,45,0,1,0,25,0,39,0\n44,0,6,0,28,0,21,0,7,0,32,0\n18,0,31,0,11,0,41,0,30,0,47,0\n2,0,22,0,27,0,34,0,3,0,52,0\n12,0,20,0,19,0,14,0,8,0,23,0\n53,0,25,0,9,0,42,0,49,0,17,0\n1,0,5,0,37,0,50,0,36,0,40,0\n51,0,10,0,29,0,45,0,24,0,15,0\n48,0,4,0,35,0,43,0,26,0,33,0\n13,0,16,0,7,0,38,0,46,0,34,0\n25,0,49,0,50,0,27,0,32,0,37,0\n30,0,52,0,42,0,3,0,19,0,1,0\n14,0,48,0,40,0,15,0,9,0,44,0\n39,0,28,0,18,0,24,0,2,0,46,0\n38,0,36,0,20,0,16,0,17,0,31,0\n26,0,29,0,45,0,4,0,13,0,21,0\n5,0,12,0,41,0,6,0,35,0,23,0\n33,0,11,0,8,0,47,0,53,0,51,0\n10,0,43,0,20,0,22,0,15,0,52,0\n18,0,46,0,1,0,26,0,49,0,14,0\n44,0,23,0,31,0,9,0,39,0,29,0\n35,0,40,0,7,0,27,0,53,0,24,0\n51,0,17,0,3,0,12,0,50,0,47,0\n5,0,30,0,33,0,28,0,43,0,38,0\n4,0,6,0,10,0,25,0,16,0,19,0\n36,0,2,0,21,0,41,0,48,0,8,0\n42,0,45,0,13,0,32,0,22,0,11,0\n37,0,47,0,52,0,34,0,39,0,23,0\n38,0,18,0,53,0,43,0,4,0,25,0\n16,0,15,0,14,0,2,0,5,0,31,0\n32,0,1,0,33,0,8,0,10,0,27,0\n41,0,7,0,36,0,40,0,45,0,3,0\n42,0,19,0,44,0,28,0,51,0,12,0\n34,0,13,0,35,0,17,0,20,0,48,0\n24,0,11,0,30,0,46,0,6,0,49,0\n50,0,9,0,37,0,29,0,21,0,22,0\n26,0,18,0,16,0,3,0,7,0,12,0\n23,0,28,0,36,0,15,0,34,0,53,0\n48,0,27,0,43,0,17,0,47,0,45,0\n6,0,9,0,22,0,1,0,29,0,30,0\n25,0,14,0,31,0,26,0,51,0,32,0\n49,0,4,0,37,0,52,0,10,0,35,0\n42,0,24,0,20,0,38,0,21,0,5,0\n11,0,44,0,46,0,2,0,50,0,8,0\n41,0,40,0,39,0,13,0,33,0,19,0\n23,0,26,0,3,0,45,0,53,0,10,0\n30,0,43,0,18,0,37,0,21,0,20,0\n44,0,35,0,47,0,1,0,38,0,31,0\n40,0,33,0,12,0,34,0,2,0,32,0\n25,0,51,0,5,0,46,0,52,0,41,0\n19,0,27,0,9,0,36,0,11,0,16,0\n49,0,8,0,28,0,29,0,13,0,48,0\n7,0,42,0,6,0,50,0,39,0,15,0\n17,0,4,0,22,0,24,0,14,0,12,0\n"
  },
  {
    "path": "schedules/53_14.csv",
    "content": "49,0,28,0,45,0,29,0,52,0,46,0\n33,0,35,0,18,0,1,0,30,0,7,0\n24,0,40,0,42,0,31,0,25,0,34,0\n4,0,12,0,22,0,2,0,48,0,39,0\n26,0,10,0,5,0,53,0,43,0,23,0\n3,0,9,0,6,0,47,0,36,0,41,0\n21,0,50,0,15,0,17,0,20,0,19,0\n37,0,8,0,38,0,27,0,32,0,51,0\n13,0,11,0,16,0,44,0,14,0,1,0\n25,0,36,0,49,0,30,0,26,0,4,0\n53,0,50,0,17,0,22,0,18,0,3,0\n9,0,19,0,15,0,33,0,48,0,45,0\n46,0,43,0,40,0,21,0,44,0,12,0\n2,0,47,0,32,0,5,0,28,0,29,0\n34,0,27,0,20,0,42,0,41,0,16,0\n11,0,23,0,35,0,6,0,52,0,13,0\n7,0,39,0,37,0,8,0,31,0,14,0\n38,0,51,0,1,0,24,0,10,0,3,0\n27,1,45,0,36,0,5,1,47,0,22,0\n21,0,28,0,17,0,33,0,49,0,50,0\n4,0,44,0,9,0,42,0,30,0,37,0\n6,0,19,0,24,0,8,0,35,0,15,0\n32,0,25,0,43,0,51,0,31,0,52,0\n29,0,11,0,39,0,46,0,16,0,10,0\n13,0,18,0,2,0,34,0,38,0,48,0\n20,0,14,0,7,0,26,0,12,0,40,0\n53,0,41,0,37,0,23,0,32,0,15,0\n43,0,39,0,21,0,24,0,35,0,17,0\n10,0,28,0,42,0,16,0,30,0,22,0\n52,0,11,0,47,0,18,0,20,0,51,0\n53,0,14,0,25,0,34,0,29,0,9,0\n44,0,45,0,6,0,26,0,27,0,3,0\n2,0,5,0,49,0,46,0,7,0,50,0\n31,0,36,0,23,0,38,0,19,0,12,0\n1,0,8,0,40,0,41,0,4,0,48,0\n33,0,32,0,20,0,13,0,43,0,42,0\n47,0,6,0,30,0,34,0,39,0,53,0\n31,0,27,0,16,0,9,0,5,0,46,0\n19,0,48,0,37,0,11,0,26,0,25,0\n10,0,52,0,38,0,33,0,17,0,4,0\n1,0,45,0,22,0,21,0,8,0,49,0\n18,0,29,0,15,0,40,0,35,0,50,0\n51,0,36,0,12,0,28,0,41,0,13,0\n44,0,23,0,3,0,14,0,24,0,2,0\n7,0,19,0,4,0,45,0,47,0,20,0\n9,0,35,0,42,0,5,0,11,0,40,0\n21,0,34,0,22,0,37,0,26,0,36,0\n30,0,8,0,28,0,31,0,43,0,3,0\n6,0,10,0,48,0,33,0,51,0,46,0\n2,0,12,0,53,0,27,0,52,0,1,0\n7,0,13,0,23,0,16,0,25,0,17,0\n32,0,49,0,41,0,14,0,18,0,39,0\n50,0,29,0,44,0,38,0,15,0,24,0\n11,0,33,0,21,0,53,0,8,0,27,0\n16,0,47,0,23,0,1,0,3,0,48,0\n32,0,19,0,52,0,9,0,40,0,17,0\n14,0,49,0,6,0,18,0,42,0,31,0\n20,0,5,0,12,0,10,0,37,0,45,0\n2,0,50,0,26,0,30,0,13,0,51,0\n24,0,46,0,25,0,41,0,22,0,15,0\n7,0,43,0,29,0,36,0,39,0,44,0\n34,0,35,0,4,0,38,0,28,0,23,0\n31,0,6,0,2,0,45,0,17,0,13,0\n25,0,15,0,51,0,42,0,53,0,1,0\n30,0,40,0,27,0,43,0,24,0,47,0\n33,0,3,0,8,0,49,0,20,0,16,0\n39,0,5,0,50,0,44,0,52,0,34,0\n19,0,14,0,26,0,46,0,4,0,38,0\n21,0,18,0,41,0,28,0,11,0,37,0\n36,0,48,0,7,0,29,0,10,0,32,0\n22,0,9,0,49,0,12,0,35,0,6,0\n1,0,13,0,15,0,8,0,52,0,5,0\n14,0,46,0,42,0,47,0,25,0,28,0\n34,0,30,0,23,0,20,0,21,0,29,0\n26,0,45,0,35,0,11,0,48,0,32,0\n4,0,3,0,37,0,33,0,7,0,40,0\n43,0,18,0,9,0,2,0,22,0,38,0\n41,0,39,0,31,0,10,0,27,0,50,0\n44,0,24,0,16,0,19,0,36,0,53,0\n17,0,12,0,46,0,51,0,8,0,34,0\n52,0,48,0,42,0,21,0,38,0,7,0\n50,0,30,0,45,0,37,0,14,0,43,0\n53,0,28,0,20,0,39,0,13,0,19,0\n29,0,26,0,17,0,41,0,9,0,1,0\n10,0,23,0,25,0,47,0,49,0,27,0\n44,0,22,0,51,0,6,0,4,0,16,0\n5,0,24,0,31,0,11,0,18,0,12,0\n2,0,15,0,33,0,40,0,32,0,36,0\n35,0,37,0,46,0,3,0,53,0,13,0\n20,0,8,0,39,0,25,0,38,0,9,0\n47,0,1,0,4,0,11,0,50,0,43,0\n33,0,6,0,42,0,29,0,23,0,2,0\n12,0,24,0,34,0,32,0,16,0,45,0\n27,0,28,0,18,0,7,0,15,0,26,0\n22,0,10,0,35,0,31,0,40,0,44,0\n51,0,41,0,19,0,49,0,30,0,52,0\n3,0,14,0,17,0,48,0,5,0,21,0\n36,0,46,0,8,0,50,0,42,0,23,0\n29,0,25,0,12,0,39,0,33,0,26,0\n18,0,7,0,10,0,22,0,13,0,24,0\n27,0,17,0,48,0,20,0,44,0,30,0\n15,0,49,0,31,0,43,0,2,0,4,0\n3,0,32,0,34,0,1,0,11,0,19,0\n5,0,51,0,35,0,14,0,36,0,9,0\n52,0,16,0,28,0,40,0,6,0,37,0\n41,0,45,0,38,0,53,0,21,0,47,0\n11,0,46,0,22,0,32,0,30,0,17,0\n27,0,4,0,13,0,29,0,49,0,35,0\n1,0,12,0,37,0,42,0,19,0,2,0\n40,0,21,0,45,0,39,0,23,0,51,0\n48,0,9,0,53,0,36,0,28,0,50,0\n47,0,31,0,7,0,44,0,41,0,33,0\n38,0,5,0,3,0,6,0,20,0,25,0\n14,0,16,0,34,0,43,0,10,0,15,0\n18,0,26,0,52,0,24,0,8,0,45,0\n13,0,44,0,32,0,21,0,23,0,9,0\n22,0,19,0,29,0,5,0,37,0,27,0\n41,0,25,0,50,0,2,0,35,0,16,0\n8,0,26,0,42,0,10,0,47,0,17,0\n1,0,36,0,20,0,28,0,46,0,31,0\n40,0,53,0,38,0,11,0,7,0,49,0\n48,0,43,0,51,0,34,0,6,0,18,0\n30,0,39,0,3,0,12,0,52,0,15,0\n33,0,24,0,27,0,14,0,4,0,5,0\n"
  },
  {
    "path": "schedules/53_2.csv",
    "content": "26,0,50,0,30,0,4,0,12,0,45,0\n46,0,14,0,44,0,11,0,52,0,20,0\n33,0,48,0,24,0,38,0,22,0,37,0\n18,0,5,0,53,0,10,0,40,0,29,0\n35,0,42,0,49,0,13,0,7,0,25,0\n2,0,9,0,36,0,3,0,17,0,1,0\n28,0,43,0,21,0,41,0,39,0,16,0\n23,0,6,0,34,0,51,0,47,0,19,0\n32,0,27,0,40,0,15,0,8,0,31,0\n33,0,3,0,46,0,53,0,26,0,42,0\n13,0,18,0,45,0,48,0,36,0,43,0\n22,0,50,0,16,0,23,0,5,0,44,0\n20,0,32,0,25,0,34,0,30,0,39,0\n8,0,24,0,47,0,14,0,21,0,35,0\n7,0,12,0,51,0,17,0,11,0,28,0\n4,0,10,0,52,0,19,0,2,0,27,0\n38,0,31,0,29,0,9,0,49,0,6,0\n1,0,37,0,47,1,15,0,41,0,14,1\n"
  },
  {
    "path": "schedules/53_3.csv",
    "content": "36,0,8,0,20,0,30,0,45,0,31,0\n39,0,34,0,6,0,12,0,48,0,11,0\n40,0,21,0,14,0,35,0,5,0,25,0\n38,0,18,0,43,0,7,0,29,0,44,0\n24,0,46,0,27,0,17,0,50,0,13,0\n3,0,19,0,47,0,37,0,1,0,22,0\n28,0,41,0,53,0,23,0,10,0,9,0\n2,0,32,0,4,0,16,0,15,0,42,0\n33,0,49,0,52,0,26,0,51,0,31,0\n20,1,48,0,44,0,37,1,46,0,5,0\n35,1,29,0,47,0,28,0,50,0,8,0\n7,0,11,0,3,0,17,0,23,0,4,0\n34,0,10,0,26,0,21,0,18,0,30,0\n16,0,45,0,33,0,19,0,39,0,27,0\n51,0,12,0,41,0,43,0,13,0,2,0\n9,0,40,0,22,0,52,0,42,0,38,0\n36,0,24,0,15,0,53,0,6,0,25,0\n49,0,1,0,48,0,14,0,32,0,8,0\n50,0,2,0,21,0,37,0,7,0,33,0\n27,0,47,0,31,0,34,0,23,0,40,0\n5,0,28,0,26,0,36,0,4,0,43,0\n14,0,20,0,39,0,24,0,3,0,29,0\n10,0,35,0,16,0,6,0,22,0,49,0\n52,0,25,0,32,0,11,0,41,0,18,0\n13,0,30,0,53,0,42,0,19,0,44,0\n15,0,38,0,1,0,12,0,45,0,46,0\n9,0,51,0,37,0,17,0,20,0,35,0\n"
  },
  {
    "path": "schedules/53_4.csv",
    "content": "13,0,49,0,38,0,40,0,10,0,5,0\n17,0,4,0,6,0,53,0,28,0,2,0\n36,0,15,0,46,0,33,0,3,0,1,0\n41,0,20,0,44,0,48,0,47,0,19,0\n9,0,32,0,43,0,24,0,14,0,27,0\n35,0,29,0,51,0,45,0,25,0,7,0\n16,0,18,0,37,0,39,0,12,0,23,0\n42,0,50,0,30,0,21,0,52,0,34,0\n31,0,22,0,8,0,26,0,11,0,24,0\n53,0,32,0,35,0,41,0,15,0,38,0\n25,0,3,0,10,0,18,0,20,0,6,0\n5,0,2,0,33,0,9,0,7,0,16,0\n40,0,45,0,14,0,19,0,22,0,52,0\n11,0,37,0,4,0,43,0,1,0,34,0\n26,0,21,0,28,0,49,0,48,0,51,0\n36,0,50,0,44,0,39,0,8,0,27,0\n29,0,30,0,13,0,46,0,23,0,17,0\n47,0,31,0,5,0,12,0,42,0,35,0\n53,1,10,0,26,0,52,1,37,0,7,0\n27,1,34,0,6,0,48,1,33,0,22,0\n3,0,50,0,23,0,51,0,38,0,11,0\n47,0,13,0,25,0,32,0,4,0,8,0\n24,0,19,0,16,0,36,0,49,0,17,0\n14,0,41,0,31,0,30,0,18,0,2,0\n1,0,42,0,9,0,29,0,20,0,39,0\n15,0,12,0,21,0,43,0,40,0,44,0\n45,0,46,0,32,0,28,0,50,0,10,0\n38,0,27,0,25,0,31,0,37,0,17,0\n9,0,4,0,51,0,52,0,41,0,36,0\n29,0,8,0,48,0,18,0,15,0,5,0\n53,0,33,0,39,0,45,0,21,0,13,0\n7,0,46,0,20,0,22,0,43,0,49,0\n1,0,19,0,6,0,26,0,30,0,35,0\n24,0,2,0,34,0,47,0,23,0,40,0\n11,0,14,0,28,0,16,0,44,0,42,0\n3,0,52,0,27,0,12,0,53,0,48,0\n"
  },
  {
    "path": "schedules/53_5.csv",
    "content": "32,0,49,0,7,0,34,0,52,0,9,0\n20,0,43,0,10,0,4,0,47,0,24,0\n30,0,45,0,23,0,5,0,11,0,40,0\n14,0,53,0,35,0,39,0,1,0,12,0\n21,0,13,0,8,0,22,0,17,0,37,0\n25,0,16,0,18,0,2,0,26,0,27,0\n29,0,41,0,6,0,50,0,46,0,51,0\n36,0,38,0,42,0,48,0,33,0,28,0\n15,0,3,0,17,0,31,0,44,0,19,0\n37,0,52,0,40,0,4,0,12,0,27,0\n41,0,45,0,20,0,49,0,2,0,13,0\n28,0,11,0,32,0,53,0,43,0,46,0\n25,0,44,0,23,0,1,0,9,0,33,0\n34,0,15,0,10,0,29,0,42,0,14,0\n30,0,51,0,26,0,19,0,35,0,38,0\n50,0,48,0,8,0,7,0,5,0,47,0\n16,0,6,0,21,0,24,0,31,0,36,0\n22,0,39,0,9,0,18,0,3,0,46,0\n2,1,20,0,29,0,17,1,12,0,30,0\n48,1,13,0,47,0,53,1,15,0,23,0\n6,1,1,0,34,0,8,0,45,0,38,0\n37,0,31,0,32,0,42,0,25,0,35,0\n19,0,28,0,21,0,18,0,40,0,10,0\n26,0,36,0,22,0,11,0,49,0,4,0\n5,0,52,0,14,0,3,0,24,0,41,0\n39,0,51,0,44,0,27,0,43,0,7,0\n33,0,50,0,19,0,16,0,20,0,34,0\n49,0,31,0,8,0,53,0,10,0,30,0\n47,0,12,0,41,0,25,0,38,0,21,0\n22,0,48,0,44,0,52,0,29,0,35,0\n43,0,40,0,13,0,6,0,26,0,14,0\n27,0,11,0,1,0,50,0,42,0,3,0\n9,0,5,0,28,0,15,0,16,0,51,0\n7,0,23,0,46,0,37,0,36,0,2,0\n45,0,39,0,33,0,32,0,17,0,24,0\n4,0,53,0,38,0,18,0,50,0,44,0\n42,0,19,0,12,0,6,0,5,0,22,0\n3,0,30,0,2,0,34,0,43,0,36,0\n47,0,17,0,52,0,28,0,1,0,26,0\n49,0,24,0,25,0,51,0,40,0,48,0\n27,0,23,0,8,0,14,0,32,0,20,0\n16,0,11,0,10,0,41,0,37,0,39,0\n29,0,31,0,18,0,7,0,13,0,33,0\n46,0,35,0,15,0,45,0,21,0,4,0\n9,0,2,0,53,0,17,0,48,0,6,0\n"
  },
  {
    "path": "schedules/53_6.csv",
    "content": "6,0,37,0,10,0,51,0,52,0,48,0\n2,0,44,0,43,0,24,0,53,0,38,0\n42,0,1,0,13,0,32,0,19,0,9,0\n8,0,21,0,17,0,45,0,39,0,26,0\n18,0,34,0,28,0,12,0,20,0,25,0\n29,0,49,0,36,0,40,0,27,0,15,0\n14,0,22,0,50,0,16,0,33,0,35,0\n7,0,4,0,41,0,30,0,31,0,47,0\n23,0,11,0,46,0,5,0,3,0,51,0\n34,0,49,0,38,0,52,0,13,0,39,0\n15,0,2,0,50,0,37,0,18,0,32,0\n40,0,7,0,16,0,1,0,4,0,45,0\n19,0,5,0,24,0,25,0,8,0,10,0\n31,0,12,0,22,0,44,0,21,0,29,0\n26,0,14,0,53,0,11,0,48,0,20,0\n46,0,3,0,35,0,30,0,42,0,17,0\n6,0,28,0,41,0,43,0,23,0,27,0\n9,0,47,0,34,0,36,0,33,0,44,0\n51,0,8,0,13,0,40,0,18,0,14,0\n7,0,49,0,37,0,5,0,53,0,12,0\n26,0,29,0,38,0,19,0,41,0,16,0\n50,0,6,0,11,0,24,0,9,0,17,0\n1,0,25,0,3,0,39,0,2,0,31,0\n4,0,28,0,21,0,33,0,46,0,52,0\n43,0,42,0,48,0,15,0,45,0,47,0\n32,0,27,0,22,0,30,0,10,0,20,0\n35,0,23,0,53,0,36,0,8,0,1,0\n33,0,25,0,7,0,13,0,11,0,29,0\n4,0,19,0,26,0,3,0,15,0,6,0\n12,0,47,0,46,0,38,0,10,0,50,0\n30,0,16,0,9,0,23,0,18,0,49,0\n48,0,44,0,39,0,40,0,35,0,28,0\n17,0,5,0,32,0,22,0,43,0,34,0\n24,0,31,0,45,0,14,0,27,0,52,0\n42,0,20,0,21,0,41,0,36,0,37,0\n2,0,47,0,19,0,51,0,35,0,49,0\n48,0,5,0,30,0,50,0,29,0,1,0\n10,0,33,0,31,0,26,0,18,0,43,0\n13,0,3,0,41,0,12,0,36,0,24,0\n40,0,25,0,53,0,21,0,6,0,32,0\n39,0,15,0,51,0,7,0,20,0,9,0\n46,0,16,0,27,0,8,0,2,0,34,0\n44,0,37,0,14,0,4,0,17,0,23,0\n22,0,45,0,42,0,11,0,38,0,28,0\n52,0,18,0,53,0,3,0,47,0,29,0\n32,0,49,0,8,0,41,0,33,0,48,0\n30,0,39,0,12,0,14,0,43,0,19,0\n10,0,1,0,11,0,34,0,21,0,15,0\n4,0,35,0,9,0,38,0,27,0,25,0\n51,0,36,0,31,0,17,0,28,0,16,0\n44,0,52,0,23,0,42,0,7,0,50,0\n24,0,40,0,26,0,22,0,37,0,46,0\n6,0,20,0,5,0,13,0,45,0,2,0\n"
  },
  {
    "path": "schedules/53_7.csv",
    "content": "47,0,18,0,9,0,12,0,14,0,28,0\n23,0,24,0,53,0,36,0,19,0,7,0\n41,0,27,0,34,0,49,0,51,0,25,0\n5,0,42,0,20,0,11,0,15,0,29,0\n1,0,43,0,13,0,37,0,44,0,32,0\n39,0,8,0,35,0,26,0,10,0,30,0\n6,0,45,0,4,0,33,0,16,0,40,0\n38,0,17,0,50,0,31,0,52,0,2,0\n46,0,22,0,3,0,21,0,48,0,12,0\n51,0,5,0,26,0,28,0,43,0,24,0\n7,0,6,0,35,0,15,0,27,0,44,0\n16,0,9,0,36,0,19,0,25,0,50,0\n37,0,2,0,30,0,29,0,41,0,21,0\n42,0,32,0,45,0,22,0,17,0,8,0\n18,0,33,0,52,0,34,0,3,0,23,0\n48,0,10,0,13,0,4,0,38,0,47,0\n40,0,46,0,1,0,20,0,49,0,53,0\n11,0,31,0,32,0,39,0,14,0,7,0\n17,1,28,0,21,0,6,0,43,0,33,0\n8,0,25,0,18,0,2,0,5,0,48,0\n1,0,4,0,23,0,30,0,34,0,9,0\n29,0,22,0,24,0,11,0,47,0,49,0\n39,0,52,0,37,0,42,0,36,0,27,0\n19,0,51,0,38,0,20,0,45,0,3,0\n15,0,41,0,26,0,13,0,50,0,53,0\n14,0,16,0,31,0,10,0,46,0,44,0\n40,0,23,0,42,0,12,0,35,0,25,0\n6,0,36,0,51,0,18,0,32,0,30,0\n39,0,41,0,3,0,47,0,17,0,5,0\n11,0,9,0,45,0,21,0,27,0,13,0\n38,0,46,0,8,0,7,0,43,0,40,0\n53,0,14,0,26,0,22,0,34,0,2,0\n35,0,16,0,48,0,1,0,29,0,31,0\n24,0,10,0,50,0,33,0,37,0,20,0\n28,0,15,0,49,0,52,0,4,0,19,0\n12,0,38,0,11,0,44,0,41,0,6,0\n25,0,32,0,23,0,31,0,3,0,26,0\n2,0,1,0,9,0,24,0,33,0,42,0\n27,0,19,0,22,0,40,0,10,0,5,0\n34,0,44,0,51,0,46,0,50,0,29,0\n16,0,13,0,20,0,12,0,39,0,18,0\n45,0,43,0,53,0,35,0,47,0,52,0\n30,0,28,0,7,0,37,0,48,0,17,0\n49,0,21,0,4,0,8,0,36,0,14,0\n15,0,25,0,22,0,1,0,38,0,39,0\n19,0,41,0,33,0,32,0,35,0,46,0\n29,0,40,0,6,0,9,0,31,0,13,0\n43,0,48,0,14,0,50,0,23,0,27,0\n37,0,34,0,47,0,16,0,8,0,15,0\n12,0,17,0,53,0,51,0,4,0,24,0\n7,0,21,0,20,0,52,0,42,0,26,0\n2,0,36,0,3,0,11,0,10,0,28,0\n44,0,45,0,30,0,49,0,18,0,5,0\n47,0,8,0,50,0,17,0,6,0,1,0\n48,0,32,0,39,0,24,0,40,0,21,0\n26,0,37,0,25,0,11,0,46,0,4,0\n52,0,5,0,13,0,14,0,51,0,35,0\n12,0,31,0,36,0,34,0,45,0,15,0\n38,0,33,0,27,0,30,0,53,0,42,0\n16,0,49,0,2,0,3,0,9,0,7,0\n28,0,20,0,44,0,41,0,23,0,22,0\n10,0,19,0,29,0,43,0,18,0,17,0\n"
  },
  {
    "path": "schedules/53_8.csv",
    "content": "35,0,24,0,29,0,1,0,6,0,8,0\n2,0,11,0,47,0,5,0,28,0,19,0\n25,0,37,0,10,0,27,0,53,0,4,0\n40,0,31,0,38,0,16,0,39,0,43,0\n15,0,42,0,34,0,7,0,50,0,44,0\n18,0,36,0,48,0,23,0,30,0,26,0\n49,0,21,0,12,0,13,0,20,0,17,0\n22,0,32,0,52,0,9,0,51,0,3,0\n41,0,45,0,15,0,46,0,14,0,33,0\n5,0,35,0,4,0,36,0,34,0,23,0\n31,0,28,0,1,0,26,0,25,0,13,0\n27,0,12,0,39,0,11,0,9,0,29,0\n53,0,20,0,24,0,19,0,45,0,7,0\n21,0,43,0,10,0,52,0,30,0,8,0\n42,0,22,0,47,0,18,0,38,0,41,0\n46,0,37,0,32,0,16,0,6,0,44,0\n2,0,40,0,3,0,14,0,50,0,48,0\n33,0,51,0,28,0,17,0,49,0,30,0\n19,1,29,0,13,0,8,1,35,0,22,0\n4,0,16,0,42,0,36,0,24,0,9,0\n40,0,41,0,23,0,1,0,12,0,10,0\n50,0,47,0,51,0,46,0,7,0,27,0\n26,0,39,0,17,0,44,0,3,0,14,0\n6,0,34,0,21,0,31,0,45,0,11,0\n18,0,53,0,32,0,49,0,2,0,43,0\n48,0,37,0,5,0,33,0,25,0,20,0\n38,0,52,0,24,0,15,0,23,0,28,0\n27,0,22,0,10,0,45,0,36,0,39,0\n46,0,8,0,31,0,40,0,4,0,49,0\n5,0,7,0,14,0,16,0,18,0,29,0\n51,0,37,0,12,0,1,0,42,0,2,0\n48,0,38,0,6,0,41,0,53,0,34,0\n17,0,3,0,21,0,35,0,25,0,47,0\n52,0,11,0,26,0,32,0,33,0,50,0\n20,0,44,0,19,0,9,0,30,0,15,0\n43,0,6,0,46,0,13,0,23,0,22,0\n14,0,21,0,24,0,27,0,38,0,51,0\n42,0,39,0,7,0,25,0,52,0,48,0\n5,0,8,0,53,0,44,0,12,0,15,0\n49,0,13,0,16,0,10,0,3,0,34,0\n45,0,9,0,47,0,26,0,43,0,1,0\n11,0,35,0,33,0,40,0,20,0,18,0\n28,0,36,0,17,0,31,0,37,0,50,0\n30,0,4,0,41,0,2,0,32,0,29,0\n19,0,26,0,48,0,6,0,51,0,5,0\n46,0,35,0,42,0,10,0,14,0,11,0\n23,0,9,0,50,0,53,0,31,0,21,0\n44,0,18,0,13,0,41,0,27,0,52,0\n30,0,34,0,37,0,40,0,24,0,22,0\n16,0,1,0,45,0,15,0,17,0,2,0\n43,0,3,0,33,0,12,0,4,0,7,0\n36,0,25,0,29,0,19,0,38,0,49,0\n39,0,20,0,32,0,47,0,28,0,8,0\n31,0,27,0,16,0,35,0,53,0,52,0\n5,0,50,0,17,0,24,0,43,0,41,0\n3,0,23,0,19,0,45,0,37,0,42,0\n40,0,7,0,36,0,32,0,28,0,21,0\n26,0,20,0,34,0,10,0,46,0,29,0\n30,0,25,0,6,0,12,0,14,0,47,0\n51,0,18,0,15,0,4,0,13,0,39,0\n1,0,11,0,44,0,49,0,22,0,48,0\n8,0,2,0,9,0,38,0,33,0,23,0\n29,0,43,0,53,0,42,0,3,0,28,0\n52,0,6,0,14,0,4,0,36,0,20,0\n1,0,19,0,46,0,18,0,21,0,39,0\n11,0,41,0,8,0,25,0,16,0,51,0\n9,0,49,0,7,0,37,0,35,0,2,0\n33,0,24,0,10,0,44,0,31,0,47,0\n26,0,15,0,22,0,40,0,48,0,12,0\n50,0,13,0,38,0,30,0,45,0,5,0\n27,0,34,0,19,0,17,0,32,0,8,0\n"
  },
  {
    "path": "schedules/53_9.csv",
    "content": "17,0,42,0,31,0,39,0,8,0,33,0\n14,0,26,0,2,0,25,0,15,0,9,0\n41,0,38,0,10,0,32,0,24,0,12,0\n34,0,1,0,16,0,44,0,51,0,43,0\n18,0,4,0,40,0,30,0,46,0,21,0\n37,0,36,0,23,0,27,0,29,0,19,0\n48,0,7,0,50,0,49,0,5,0,20,0\n6,0,11,0,3,0,28,0,22,0,13,0\n53,0,45,0,47,0,35,0,52,0,40,0\n1,0,24,0,23,0,30,0,12,0,8,0\n39,0,5,0,18,0,9,0,43,0,32,0\n37,0,28,0,7,0,26,0,17,0,44,0\n41,0,19,0,6,0,15,0,33,0,4,0\n53,0,49,0,22,0,27,0,16,0,46,0\n31,0,13,0,52,0,48,0,36,0,10,0\n21,0,42,0,35,0,3,0,38,0,50,0\n25,0,2,0,20,0,51,0,34,0,29,0\n45,0,14,0,30,0,11,0,47,0,44,0\n37,1,18,0,8,0,15,1,7,0,53,0\n9,0,17,0,35,0,12,1,16,0,13,0\n28,0,38,0,51,0,52,0,23,0,41,0\n43,0,24,0,22,0,26,0,50,0,36,0\n29,0,32,0,21,0,6,0,31,0,45,0\n11,0,27,0,33,0,25,0,4,0,48,0\n42,0,47,0,19,0,2,0,34,0,49,0\n46,0,1,0,40,0,5,0,3,0,10,0\n39,0,14,0,6,0,20,0,12,0,50,0\n28,0,36,0,9,0,38,0,15,0,45,0\n35,0,23,0,53,0,44,0,31,0,2,0\n52,0,5,0,16,0,21,0,25,0,24,0\n40,0,8,0,27,0,32,0,13,0,34,0\n37,0,11,0,10,0,43,0,18,0,42,0\n22,0,33,0,17,0,30,0,47,0,1,0\n3,0,46,0,19,0,7,0,51,0,14,0\n29,0,41,0,39,0,26,0,49,0,48,0\n20,0,16,0,53,0,4,0,28,0,5,0\n32,0,30,0,27,0,2,0,52,0,1,0\n11,0,25,0,36,0,46,0,6,0,8,0\n37,0,50,0,9,0,31,0,41,0,40,0\n45,0,4,0,7,0,22,0,42,0,34,0\n12,0,44,0,3,0,18,0,33,0,29,0\n39,0,51,0,49,0,15,0,35,0,24,0\n21,0,43,0,23,0,48,0,14,0,17,0\n19,0,38,0,26,0,47,0,13,0,20,0\n33,0,7,0,16,0,10,0,45,0,40,0\n51,0,30,0,5,0,39,0,36,0,12,0\n46,0,42,0,14,0,41,0,28,0,1,0\n44,0,49,0,8,0,43,0,38,0,6,0\n31,0,20,0,15,0,3,0,27,0,17,0\n2,0,13,0,24,0,22,0,37,0,21,0\n48,0,11,0,32,0,19,0,53,0,9,0\n4,0,47,0,10,0,50,0,23,0,25,0\n52,0,18,0,34,0,26,0,29,0,35,0\n13,0,41,0,30,0,43,0,7,0,20,0\n45,0,5,0,12,0,2,0,19,0,17,0\n44,0,37,0,4,0,36,0,8,0,3,0\n49,0,47,0,25,0,31,0,18,0,28,0\n24,0,51,0,6,0,42,0,48,0,40,0\n21,0,38,0,53,0,33,0,26,0,1,0\n16,0,50,0,32,0,11,0,29,0,15,0\n34,0,23,0,46,0,52,0,39,0,9,0\n35,0,10,0,8,0,22,0,14,0,27,0\n25,0,3,0,41,0,43,0,30,0,53,0\n50,0,15,0,18,0,1,0,45,0,13,0\n17,0,12,0,40,0,52,0,49,0,11,0\n35,0,46,0,20,0,32,0,33,0,37,0\n34,0,48,0,31,0,16,0,14,0,38,0\n26,0,42,0,6,0,27,0,23,0,5,0\n2,0,4,0,29,0,24,0,28,0,10,0\n47,0,7,0,9,0,21,0,36,0,51,0\n44,0,22,0,25,0,19,0,39,0,40,0\n45,0,23,0,32,0,3,0,49,0,37,0\n43,0,31,0,26,0,12,0,46,0,4,0\n36,0,1,0,5,0,35,0,41,0,11,0\n2,0,39,0,27,0,38,0,7,0,18,0\n10,0,34,0,30,0,21,0,6,0,15,0\n22,0,20,0,52,0,9,0,44,0,42,0\n19,0,51,0,33,0,8,0,50,0,28,0\n14,0,29,0,24,0,53,0,17,0,13,0\n48,0,16,0,15,0,47,0,37,0,12,0\n"
  },
  {
    "path": "schedules/54_1.csv",
    "content": "52,0,16,0,13,0,18,0,49,0,35,0\n1,0,40,0,36,0,23,0,37,0,45,0\n21,0,31,0,47,0,20,0,8,0,30,0\n38,0,53,0,32,0,12,0,22,0,24,0\n50,0,34,0,25,0,41,0,4,0,48,0\n26,0,33,0,6,0,29,0,3,0,43,0\n17,0,28,0,46,0,39,0,14,0,10,0\n44,0,7,0,54,0,42,0,5,0,51,0\n11,0,19,0,27,0,9,0,2,0,15,0\n"
  },
  {
    "path": "schedules/54_10.csv",
    "content": "30,0,40,0,6,0,43,0,20,0,52,0\n10,0,45,0,37,0,9,0,21,0,51,0\n49,0,35,0,38,0,46,0,22,0,33,0\n23,0,27,0,8,0,24,0,48,0,13,0\n12,0,19,0,34,0,17,0,18,0,4,0\n41,0,53,0,39,0,14,0,44,0,42,0\n47,0,26,0,25,0,5,0,54,0,11,0\n7,0,36,0,16,0,3,0,32,0,31,0\n2,0,50,0,1,0,15,0,28,0,29,0\n17,0,27,0,34,0,46,0,9,0,10,0\n45,0,23,0,24,0,38,0,12,0,14,0\n13,0,11,0,42,0,49,0,40,0,54,0\n8,0,53,0,44,0,5,0,33,0,6,0\n32,0,18,0,35,0,47,0,21,0,3,0\n52,0,2,0,4,0,50,0,25,0,7,0\n31,0,22,0,37,0,1,0,29,0,20,0\n15,0,26,0,51,0,36,0,43,0,39,0\n41,0,30,0,48,0,19,0,16,0,28,0\n34,0,38,0,47,0,27,0,44,0,35,0\n24,0,2,0,5,0,13,0,4,0,21,0\n31,0,46,0,7,0,6,0,50,0,9,0\n40,0,18,0,52,0,45,0,22,0,36,0\n48,0,32,0,8,0,15,0,25,0,49,0\n43,0,42,0,53,0,30,0,29,0,12,0\n33,0,51,0,20,0,41,0,16,0,17,0\n19,0,10,0,11,0,1,0,23,0,39,0\n14,0,37,0,28,0,3,0,54,0,26,0\n40,0,35,0,34,0,15,0,50,0,5,0\n46,0,53,0,30,0,7,0,48,0,45,0\n49,0,51,0,42,0,31,0,27,0,4,0\n36,0,25,0,6,0,38,0,13,0,29,0\n21,0,52,0,10,0,54,0,20,0,8,0\n11,0,37,0,3,0,24,0,33,0,19,0\n39,0,14,0,2,0,22,0,16,0,18,0\n43,0,47,0,44,0,28,0,1,0,17,0\n23,0,12,0,9,0,41,0,32,0,26,0\n54,0,10,0,53,0,35,0,52,0,31,0\n27,0,29,0,45,0,4,0,11,0,33,0\n42,0,19,0,8,0,50,0,34,0,22,0\n30,0,47,0,15,0,49,0,14,0,13,0\n7,0,38,0,39,0,41,0,1,0,21,0\n40,0,48,0,17,0,32,0,6,0,24,0\n36,0,12,0,44,0,20,0,37,0,2,0\n9,0,43,0,25,0,3,0,23,0,16,0\n5,0,26,0,28,0,46,0,51,0,18,0\n22,0,15,0,54,0,7,0,41,0,27,0\n35,0,21,0,11,0,30,0,17,0,31,0\n6,0,10,0,29,0,32,0,19,0,47,0\n43,0,50,0,13,0,33,0,39,0,45,0\n8,0,16,0,4,0,36,0,37,0,38,0\n2,0,3,0,44,0,40,0,46,0,26,0\n49,0,12,0,28,0,52,0,14,0,9,0\n1,0,34,0,24,0,51,0,53,0,25,0\n20,0,18,0,5,0,23,0,42,0,48,0\n47,0,17,0,36,0,54,0,39,0,30,0\n45,0,3,0,4,0,6,0,41,0,8,0\n49,0,19,0,31,0,2,0,40,0,38,0\n51,0,28,0,7,0,35,0,12,0,13,0\n20,0,14,0,32,0,27,0,11,0,43,0\n52,0,1,0,48,0,9,0,33,0,34,0\n26,0,18,0,21,0,50,0,29,0,53,0\n16,0,44,0,5,0,24,0,10,0,22,0\n46,0,15,0,42,0,23,0,25,0,37,0\n39,0,3,0,28,0,20,0,45,0,31,0\n6,0,1,0,27,0,35,0,36,0,2,0\n47,0,29,0,51,0,9,0,8,0,40,0\n13,0,22,0,17,0,48,0,53,0,26,0\n33,0,41,0,14,0,10,0,34,0,25,0\n54,0,4,0,50,0,30,0,44,0,23,0\n24,0,18,0,37,0,7,0,49,0,43,0\n38,0,11,0,32,0,5,0,52,0,42,0\n16,0,46,0,12,0,19,0,21,0,15,0\n53,0,27,0,33,0,36,0,40,0,28,0\n48,0,4,0,20,0,14,0,47,0,35,0\n43,0,23,0,41,0,2,0,31,0,8,0\n50,0,38,0,30,0,37,0,51,0,32,0\n44,0,22,0,9,0,11,0,15,0,18,0\n26,0,6,0,49,0,34,0,16,0,21,0\n13,0,1,0,10,0,3,0,12,0,42,0\n52,0,46,0,54,0,39,0,29,0,24,0\n7,0,17,0,19,0,45,0,5,0,25,0\n15,0,9,0,20,0,38,0,4,0,53,0\n23,0,21,0,6,0,22,0,28,0,27,0\n50,0,36,0,11,0,10,0,43,0,48,0\n18,0,30,0,14,0,8,0,1,0,46,0\n35,0,25,0,39,0,37,0,12,0,40,0\n5,0,17,0,29,0,3,0,41,0,49,0\n33,0,42,0,26,0,7,0,24,0,47,0\n54,0,45,0,34,0,2,0,32,0,16,0\n51,0,31,0,13,0,19,0,52,0,44,0\n"
  },
  {
    "path": "schedules/54_11.csv",
    "content": "15,0,44,0,11,0,22,0,27,0,39,0\n7,0,12,0,26,0,18,0,6,0,47,0\n32,0,1,0,28,0,35,0,46,0,30,0\n5,0,24,0,21,0,31,0,42,0,20,0\n54,0,50,0,23,0,14,0,51,0,43,0\n2,0,17,0,53,0,13,0,37,0,38,0\n19,0,4,0,8,0,25,0,45,0,9,0\n33,0,41,0,48,0,52,0,29,0,16,0\n34,0,40,0,49,0,10,0,3,0,36,0\n26,0,6,0,43,0,14,0,24,0,11,0\n35,0,27,0,13,0,21,0,37,0,39,0\n51,0,12,0,25,0,47,0,2,0,42,0\n28,0,38,0,52,0,50,0,31,0,7,0\n18,0,32,0,41,0,34,0,53,0,8,0\n44,0,16,0,30,0,15,0,29,0,36,0\n54,0,40,0,10,0,23,0,9,0,33,0\n4,0,22,0,5,0,46,0,17,0,3,0\n19,0,45,0,20,0,1,0,48,0,49,0\n42,0,32,0,37,0,18,0,14,0,28,0\n25,0,35,0,53,0,43,0,44,0,12,0\n50,0,9,0,36,0,27,0,7,0,30,0\n29,0,13,0,31,0,4,0,11,0,26,0\n39,0,10,0,48,0,38,0,41,0,49,0\n47,0,3,0,8,0,1,0,15,0,33,0\n54,0,19,0,2,0,6,0,5,0,46,0\n52,0,40,0,21,0,45,0,51,0,34,0\n17,0,23,0,22,0,16,0,24,0,20,0\n10,0,44,0,13,0,50,0,42,0,48,0\n49,0,30,0,3,0,27,0,25,0,43,0\n53,0,18,0,9,0,46,0,39,0,31,0\n32,0,36,0,51,0,19,0,12,0,33,0\n41,0,40,0,26,0,5,0,15,0,54,0\n45,0,29,0,2,0,23,0,24,0,7,0\n28,0,22,0,47,0,6,0,21,0,8,0\n16,0,37,0,4,0,38,0,34,0,1,0\n52,0,35,0,14,0,11,0,20,0,17,0\n9,0,10,0,27,0,5,0,18,0,51,0\n46,0,33,0,44,0,13,0,7,0,42,0\n43,0,2,0,48,0,32,0,22,0,21,0\n24,0,54,0,1,0,38,0,25,0,40,0\n45,0,6,0,53,0,15,0,3,0,35,0\n37,0,30,0,14,0,41,0,12,0,31,0\n36,0,8,0,16,0,20,0,52,0,26,0\n11,0,23,0,49,0,28,0,34,0,4,0\n29,0,50,0,47,0,19,0,17,0,39,0\n5,0,10,0,1,0,32,0,7,0,43,0\n38,0,46,0,27,0,6,0,14,0,40,0\n15,0,24,0,13,0,51,0,8,0,35,0\n37,0,31,0,26,0,22,0,44,0,49,0\n23,0,3,0,18,0,16,0,19,0,21,0\n47,0,4,0,54,0,48,0,30,0,36,0\n41,0,20,0,9,0,11,0,50,0,2,0\n42,0,29,0,28,0,53,0,52,0,12,0\n25,0,17,0,34,0,45,0,33,0,39,0\n16,0,5,0,38,0,49,0,32,0,35,0\n26,0,8,0,46,0,23,0,30,0,51,0\n31,0,22,0,15,0,36,0,1,0,2,0\n11,0,52,0,27,0,21,0,53,0,54,0\n6,0,34,0,48,0,9,0,37,0,17,0\n25,0,50,0,20,0,33,0,18,0,29,0\n39,0,42,0,14,0,4,0,7,0,3,0\n41,0,43,0,45,0,40,0,13,0,12,0\n19,0,47,0,44,0,10,0,28,0,24,0\n6,0,49,0,51,0,1,0,30,0,53,0\n29,0,35,0,34,0,46,0,22,0,54,0\n25,0,5,0,33,0,21,0,48,0,14,0\n38,0,23,0,12,0,52,0,15,0,9,0\n11,0,37,0,10,0,47,0,45,0,16,0\n26,0,50,0,39,0,2,0,4,0,32,0\n24,0,18,0,36,0,41,0,28,0,13,0\n7,0,44,0,20,0,3,0,19,0,40,0\n31,0,17,0,43,0,27,0,42,0,8,0\n53,0,16,0,49,0,14,0,47,0,9,0\n12,0,11,0,1,0,10,0,50,0,46,0\n38,0,45,0,22,0,18,0,30,0,25,0\n39,0,32,0,24,0,52,0,3,0,54,0\n34,0,15,0,7,0,13,0,43,0,20,0\n51,0,21,0,44,0,41,0,4,0,17,0\n36,0,42,0,5,0,29,0,6,0,23,0\n35,0,19,0,48,0,8,0,31,0,40,0\n2,0,26,0,33,0,27,0,28,0,37,0\n14,0,53,0,13,0,1,0,9,0,22,0\n15,0,21,0,46,0,24,0,50,0,49,0\n3,0,29,0,20,0,38,0,51,0,10,0\n16,0,54,0,6,0,44,0,45,0,31,0\n12,0,34,0,42,0,27,0,48,0,26,0\n30,0,8,0,28,0,39,0,40,0,5,0\n43,0,52,0,4,0,37,0,19,0,18,0\n7,0,36,0,17,0,32,0,25,0,11,0\n47,0,33,0,35,0,23,0,41,0,2,0\n21,0,1,0,3,0,9,0,26,0,29,0\n50,0,45,0,40,0,16,0,42,0,22,0\n4,0,39,0,6,0,12,0,10,0,20,0\n38,0,17,0,8,0,43,0,46,0,36,0\n7,0,49,0,18,0,54,0,35,0,41,0\n5,0,2,0,14,0,44,0,52,0,34,0\n31,0,27,0,32,0,13,0,23,0,47,0\n51,0,28,0,15,0,37,0,48,0,25,0\n19,0,30,0,24,0,33,0,53,0,11,0\n"
  },
  {
    "path": "schedules/54_12.csv",
    "content": "6,0,23,0,33,0,16,0,19,0,34,0\n11,0,50,0,5,0,48,0,54,0,42,0\n26,0,21,0,24,0,8,0,1,0,18,0\n43,0,46,0,13,0,38,0,10,0,7,0\n15,0,32,0,25,0,12,0,35,0,36,0\n40,0,2,0,28,0,22,0,39,0,45,0\n9,0,14,0,17,0,49,0,4,0,47,0\n27,0,41,0,30,0,37,0,31,0,20,0\n3,0,52,0,29,0,44,0,51,0,53,0\n25,0,5,0,48,0,38,0,19,0,33,0\n43,0,34,0,39,0,54,0,24,0,45,0\n16,0,10,0,42,0,4,0,35,0,14,0\n11,0,46,0,17,0,18,0,27,0,12,0\n47,0,40,0,7,0,15,0,3,0,41,0\n53,0,6,0,49,0,21,0,30,0,2,0\n13,0,8,0,31,0,28,0,44,0,1,0\n22,0,37,0,50,0,29,0,36,0,51,0\n20,0,52,0,9,0,26,0,23,0,32,0\n24,0,14,0,19,0,11,0,35,0,27,0\n46,0,33,0,18,0,2,0,54,0,3,0\n8,0,48,0,44,0,47,0,12,0,43,0\n36,0,49,0,25,0,51,0,39,0,31,0\n21,0,28,0,9,0,40,0,34,0,41,0\n10,0,50,0,53,0,38,0,37,0,45,0\n20,0,1,0,16,0,15,0,29,0,5,0\n22,0,6,0,42,0,52,0,26,0,17,0\n30,0,23,0,4,0,7,0,32,0,13,0\n9,0,19,0,18,0,3,0,43,0,36,0\n40,0,31,0,48,0,34,0,37,0,46,0\n21,0,1,0,12,0,47,0,39,0,35,0\n28,0,11,0,6,0,49,0,5,0,20,0\n8,0,4,0,54,0,52,0,23,0,53,0\n42,0,51,0,24,0,41,0,10,0,29,0\n13,0,26,0,45,0,25,0,27,0,17,0\n2,0,7,0,50,0,33,0,16,0,32,0\n38,0,30,0,14,0,15,0,44,0,22,0\n37,0,39,0,5,0,52,0,19,0,8,0\n4,0,48,0,12,0,18,0,51,0,35,0\n23,0,10,0,49,0,40,0,26,0,27,0\n25,0,3,0,33,0,24,0,28,0,29,0\n2,0,45,0,43,0,30,0,42,0,1,0\n32,0,34,0,17,0,41,0,14,0,44,0\n16,0,46,0,15,0,11,0,13,0,9,0\n36,0,22,0,7,0,21,0,53,0,20,0\n47,0,6,0,38,0,31,0,50,0,54,0\n40,0,33,0,51,0,26,0,30,0,43,0\n12,0,17,0,28,0,25,0,10,0,2,0\n3,0,44,0,39,0,42,0,23,0,11,0\n22,0,8,0,24,0,4,0,32,0,20,0\n1,0,5,0,35,0,46,0,9,0,50,0\n15,0,54,0,7,0,36,0,19,0,37,0\n21,0,18,0,29,0,6,0,31,0,14,0\n38,0,53,0,34,0,47,0,27,0,52,0\n48,0,45,0,41,0,49,0,13,0,16,0\n22,0,30,0,33,0,8,0,9,0,5,0\n46,0,23,0,35,0,25,0,24,0,50,0\n26,0,4,0,31,0,2,0,19,0,15,0\n11,0,32,0,47,0,29,0,40,0,6,0\n53,0,37,0,3,0,13,0,39,0,14,0\n27,0,16,0,44,0,28,0,18,0,54,0\n12,0,49,0,41,0,20,0,42,0,34,0\n43,0,38,0,51,0,7,0,1,0,17,0\n52,0,45,0,10,0,48,0,36,0,21,0\n31,0,32,0,9,0,39,0,53,0,24,0\n35,0,26,0,3,0,37,0,30,0,16,0\n25,0,20,0,40,0,4,0,44,0,50,0\n1,0,54,0,19,0,41,0,22,0,17,0\n7,0,27,0,14,0,52,0,12,0,6,0\n2,0,36,0,23,0,48,0,29,0,38,0\n49,0,42,0,33,0,47,0,18,0,13,0\n43,0,5,0,10,0,34,0,21,0,11,0\n45,0,28,0,46,0,51,0,8,0,15,0\n19,0,30,0,31,0,16,0,50,0,17,0\n40,0,4,0,1,0,6,0,3,0,48,0\n52,0,44,0,38,0,49,0,35,0,24,0\n21,0,54,0,13,0,12,0,26,0,29,0\n46,0,39,0,20,0,45,0,33,0,14,0\n11,0,10,0,51,0,34,0,2,0,8,0\n18,0,43,0,53,0,23,0,5,0,41,0\n25,0,7,0,37,0,22,0,9,0,47,0\n36,0,32,0,42,0,15,0,27,0,28,0\n24,0,3,0,12,0,50,0,45,0,6,0\n34,0,13,0,29,0,46,0,49,0,19,0\n35,0,40,0,17,0,5,0,53,0,33,0\n11,0,26,0,8,0,31,0,41,0,7,0\n1,0,14,0,32,0,54,0,43,0,25,0\n23,0,38,0,20,0,42,0,37,0,28,0\n30,0,15,0,18,0,22,0,48,0,52,0\n51,0,16,0,4,0,39,0,21,0,27,0\n44,0,2,0,47,0,9,0,10,0,36,0\n50,0,49,0,26,0,25,0,12,0,53,0\n32,0,41,0,35,0,31,0,3,0,45,0\n28,0,7,0,20,0,34,0,18,0,48,0\n27,0,29,0,23,0,17,0,39,0,30,0\n52,0,4,0,37,0,33,0,11,0,1,0\n22,0,21,0,19,0,42,0,46,0,44,0\n15,0,43,0,9,0,10,0,6,0,54,0\n51,0,5,0,47,0,24,0,13,0,2,0\n38,0,8,0,36,0,40,0,16,0,14,0\n53,0,11,0,41,0,25,0,28,0,30,0\n34,0,27,0,49,0,3,0,22,0,1,0\n37,0,48,0,15,0,6,0,21,0,17,0\n31,0,42,0,12,0,7,0,9,0,33,0\n47,0,14,0,54,0,45,0,23,0,51,0\n52,0,16,0,24,0,13,0,40,0,50,0\n2,0,35,0,29,0,43,0,20,0,8,0\n39,0,19,0,10,0,38,0,32,0,18,0\n36,0,44,0,26,0,46,0,4,0,5,0\n"
  },
  {
    "path": "schedules/54_13.csv",
    "content": "36,0,21,0,33,0,17,0,49,0,43,0\n7,0,34,0,3,0,20,0,29,0,2,0\n4,0,37,0,8,0,39,0,18,0,28,0\n41,0,23,0,24,0,1,0,14,0,9,0\n52,0,5,0,25,0,12,0,11,0,6,0\n16,0,51,0,15,0,45,0,53,0,22,0\n13,0,42,0,35,0,47,0,48,0,31,0\n38,0,54,0,40,0,10,0,50,0,30,0\n19,0,46,0,27,0,32,0,26,0,44,0\n1,0,7,0,5,0,33,0,3,0,28,0\n14,0,11,0,29,0,37,0,18,0,51,0\n2,0,25,0,53,0,52,0,17,0,24,0\n10,0,22,0,49,0,31,0,13,0,36,0\n38,0,23,0,50,0,42,0,45,0,32,0\n26,0,46,0,47,0,20,0,6,0,8,0\n19,0,9,0,40,0,34,0,35,0,39,0\n44,0,16,0,4,0,30,0,43,0,41,0\n54,0,12,0,27,0,48,0,21,0,15,0\n13,0,18,0,22,0,11,0,1,0,25,0\n50,0,31,0,52,0,51,0,8,0,46,0\n42,0,37,0,14,0,2,0,19,0,32,0\n23,0,40,0,35,0,44,0,28,0,6,0\n20,0,3,0,16,0,27,0,17,0,38,0\n30,0,48,0,26,0,41,0,5,0,36,0\n12,0,43,0,53,0,49,0,54,0,34,0\n4,0,24,0,9,0,15,0,29,0,7,0\n33,0,39,0,45,0,21,0,10,0,47,0\n3,0,27,0,6,0,37,0,31,0,23,0\n5,0,40,0,16,0,2,0,11,0,51,0\n41,0,44,0,14,0,36,0,53,0,54,0\n20,0,49,0,32,0,1,0,30,0,35,0\n15,0,45,0,4,0,26,0,8,0,13,0\n17,0,33,0,50,0,48,0,24,0,22,0\n9,0,10,0,39,0,25,0,38,0,43,0\n12,0,28,0,47,0,19,0,52,0,29,0\n18,0,34,0,46,0,42,0,21,0,7,0\n6,0,40,0,45,0,2,0,49,0,4,0\n13,0,51,0,24,0,8,0,30,0,54,0\n15,0,3,0,25,0,39,0,50,0,20,0\n27,0,10,0,11,0,28,0,41,0,19,0\n53,0,42,0,18,0,48,0,35,0,33,0\n34,0,21,0,38,0,31,0,5,0,14,0\n43,0,44,0,22,0,32,0,47,0,52,0\n26,0,17,0,36,0,29,0,1,0,37,0\n16,0,7,0,23,0,12,0,9,0,46,0\n11,0,18,0,33,0,50,0,40,0,27,0\n53,0,5,0,49,0,19,0,20,0,42,0\n31,0,43,0,15,0,25,0,28,0,14,0\n45,0,51,0,44,0,1,0,24,0,3,0\n23,0,48,0,54,0,26,0,2,0,52,0\n21,0,35,0,46,0,29,0,4,0,10,0\n39,0,8,0,38,0,16,0,36,0,12,0\n6,0,17,0,13,0,34,0,41,0,32,0\n30,0,22,0,47,0,9,0,7,0,37,0\n45,0,26,0,31,0,18,0,54,0,24,0\n1,0,20,0,53,0,10,0,43,0,40,0\n38,0,49,0,36,0,50,0,46,0,2,0\n5,0,11,0,35,0,27,0,13,0,15,0\n14,0,3,0,32,0,25,0,4,0,47,0\n29,0,41,0,6,0,22,0,39,0,23,0\n9,0,17,0,48,0,7,0,8,0,19,0\n12,0,34,0,51,0,37,0,33,0,44,0\n52,0,28,0,21,0,42,0,30,0,16,0\n50,0,24,0,36,0,27,0,43,0,35,0\n46,0,3,0,13,0,40,0,22,0,14,0\n17,0,39,0,32,0,54,0,5,0,45,0\n2,0,7,0,6,0,10,0,8,0,18,0\n26,0,12,0,42,0,30,0,4,0,51,0\n11,0,31,0,21,0,9,0,23,0,53,0\n44,0,49,0,29,0,25,0,48,0,37,0\n28,0,15,0,20,0,41,0,33,0,52,0\n1,0,38,0,16,0,19,0,34,0,47,0\n5,0,39,0,6,0,24,0,42,0,46,0\n31,0,27,0,22,0,40,0,12,0,17,0\n13,0,25,0,7,0,51,0,21,0,53,0\n9,0,20,0,41,0,28,0,37,0,45,0\n4,0,32,0,36,0,52,0,11,0,16,0\n34,0,10,0,44,0,50,0,35,0,26,0\n48,0,8,0,29,0,14,0,38,0,33,0\n30,0,18,0,19,0,3,0,43,0,23,0\n54,0,15,0,2,0,49,0,47,0,1,0\n40,0,52,0,20,0,32,0,24,0,21,0\n31,0,28,0,17,0,4,0,39,0,26,0\n53,0,37,0,35,0,5,0,22,0,38,0\n25,0,30,0,45,0,29,0,34,0,27,0\n2,0,41,0,1,0,12,0,7,0,50,0\n51,0,48,0,14,0,10,0,16,0,6,0\n49,0,33,0,8,0,9,0,18,0,44,0\n54,0,47,0,42,0,11,0,3,0,36,0\n19,0,13,0,43,0,15,0,23,0,46,0\n28,0,27,0,4,0,38,0,53,0,24,0\n14,0,50,0,6,0,5,0,20,0,12,0\n16,0,32,0,37,0,10,0,33,0,31,0\n3,0,47,0,51,0,18,0,41,0,17,0\n8,0,2,0,42,0,22,0,1,0,21,0\n39,0,11,0,15,0,44,0,23,0,30,0\n36,0,25,0,19,0,7,0,45,0,35,0\n29,0,43,0,26,0,49,0,40,0,48,0\n54,0,52,0,46,0,9,0,34,0,13,0\n28,0,8,0,24,0,12,0,3,0,22,0\n38,0,10,0,42,0,15,0,44,0,17,0\n30,0,2,0,5,0,19,0,4,0,33,0\n23,0,18,0,32,0,51,0,36,0,20,0\n25,0,29,0,35,0,16,0,13,0,54,0\n9,0,50,0,21,0,6,0,26,0,53,0\n34,0,1,0,45,0,48,0,43,0,11,0\n7,0,52,0,39,0,49,0,14,0,27,0\n41,0,37,0,47,0,40,0,31,0,46,0\n54,0,51,0,22,0,38,0,4,0,20,0\n23,0,19,0,26,0,25,0,16,0,33,0\n28,0,2,0,9,0,32,0,50,0,13,0\n52,0,1,0,48,0,21,0,39,0,3,0\n17,0,14,0,7,0,40,0,11,0,44,0\n34,0,37,0,36,0,6,0,24,0,15,0\n12,0,41,0,10,0,18,0,35,0,49,0\n47,0,43,0,8,0,27,0,42,0,5,0\n31,0,53,0,30,0,45,0,46,0,29,0\n"
  },
  {
    "path": "schedules/54_14.csv",
    "content": "29,0,17,0,23,0,41,0,39,0,31,0\n51,0,22,0,46,0,24,0,26,0,12,0\n13,0,54,0,28,0,48,0,37,0,1,0\n20,0,19,0,9,0,52,0,44,0,5,0\n43,0,18,0,49,0,45,0,10,0,6,0\n36,0,7,0,3,0,2,0,38,0,11,0\n35,0,34,0,16,0,25,0,40,0,47,0\n15,0,32,0,21,0,27,0,33,0,4,0\n53,0,50,0,42,0,30,0,8,0,14,0\n23,0,28,0,10,0,29,0,31,0,44,0\n41,0,3,0,17,0,54,0,37,0,24,0\n39,0,19,0,48,0,26,0,47,0,49,0\n38,0,15,0,9,0,34,0,43,0,22,0\n12,0,27,0,36,0,53,0,6,0,11,0\n50,0,4,0,1,0,51,0,45,0,2,0\n52,0,13,0,18,0,42,0,30,0,25,0\n7,0,33,0,16,0,20,0,32,0,8,0\n35,0,14,0,40,0,46,0,5,0,21,0\n23,0,48,0,12,0,27,0,15,0,3,0\n2,0,22,0,26,0,45,0,11,0,28,0\n50,0,17,0,44,0,1,0,13,0,25,0\n29,0,43,0,8,0,47,0,53,0,52,0\n54,0,18,0,33,0,46,0,49,0,36,0\n32,0,6,0,7,0,5,0,24,0,35,0\n19,0,4,0,38,0,16,0,40,0,39,0\n51,0,34,0,42,0,10,0,37,0,21,0\n41,0,30,0,9,0,20,0,31,0,14,0\n12,0,43,0,54,0,2,0,28,0,25,0\n23,0,13,0,53,0,32,0,46,0,18,0\n49,0,39,0,27,0,3,0,29,0,5,0\n4,0,44,0,6,0,33,0,47,0,22,0\n52,0,34,0,26,0,35,0,50,0,36,0\n31,0,24,0,42,0,9,0,45,0,14,0\n15,0,10,0,19,0,8,0,7,0,17,0\n30,0,51,0,48,0,20,0,11,0,40,0\n1,0,41,0,21,0,38,0,37,0,16,0\n44,0,12,0,39,0,43,0,28,0,35,0\n26,0,42,0,33,0,54,0,31,0,3,0\n18,0,34,0,45,0,52,0,17,0,32,0\n29,0,40,0,49,0,15,0,14,0,50,0\n19,0,21,0,47,0,38,0,24,0,53,0\n8,0,27,0,5,0,51,0,13,0,41,0\n11,0,46,0,48,0,9,0,6,0,1,0\n22,0,4,0,37,0,7,0,23,0,25,0\n10,0,36,0,2,0,20,0,16,0,30,0\n17,0,49,0,15,0,35,0,47,0,42,0\n8,0,53,0,40,0,54,0,39,0,45,0\n11,0,1,0,31,0,13,0,32,0,19,0\n28,0,46,0,29,0,51,0,4,0,25,0\n24,0,10,0,48,0,33,0,36,0,38,0\n9,0,7,0,44,0,18,0,21,0,50,0\n16,0,27,0,14,0,43,0,52,0,37,0\n5,0,20,0,34,0,22,0,12,0,3,0\n30,0,6,0,2,0,26,0,41,0,23,0\n35,0,39,0,15,0,45,0,36,0,13,0\n31,0,25,0,53,0,38,0,40,0,48,0\n9,0,52,0,11,0,10,0,4,0,54,0\n24,0,20,0,18,0,14,0,37,0,29,0\n6,0,3,0,42,0,7,0,1,0,51,0\n12,0,28,0,47,0,17,0,21,0,30,0\n22,0,49,0,41,0,44,0,34,0,32,0\n33,0,8,0,19,0,23,0,2,0,27,0\n43,0,5,0,16,0,46,0,50,0,26,0\n53,0,20,0,54,0,15,0,4,0,13,0\n37,0,12,0,45,0,9,0,10,0,47,0\n11,0,25,0,36,0,14,0,41,0,38,0\n29,0,35,0,51,0,8,0,22,0,48,0\n49,0,3,0,50,0,23,0,31,0,16,0\n26,0,5,0,1,0,27,0,44,0,18,0\n2,0,32,0,40,0,21,0,42,0,43,0\n34,0,33,0,46,0,19,0,28,0,17,0\n24,0,39,0,6,0,7,0,52,0,30,0\n45,0,16,0,8,0,20,0,3,0,48,0\n37,0,27,0,31,0,54,0,22,0,35,0\n38,0,21,0,13,0,26,0,29,0,9,0\n17,0,25,0,43,0,23,0,42,0,11,0\n19,0,40,0,50,0,6,0,41,0,12,0\n28,0,34,0,36,0,4,0,18,0,7,0\n2,0,47,0,15,0,46,0,52,0,24,0\n32,0,14,0,39,0,44,0,10,0,51,0\n5,0,33,0,49,0,30,0,1,0,53,0\n8,0,25,0,6,0,9,0,31,0,21,0\n7,0,28,0,38,0,45,0,35,0,23,0\n20,0,29,0,36,0,19,0,54,0,42,0\n50,0,47,0,39,0,11,0,32,0,27,0\n14,0,48,0,5,0,17,0,2,0,4,0\n16,0,18,0,41,0,51,0,33,0,40,0\n22,0,52,0,10,0,1,0,46,0,3,0\n44,0,30,0,26,0,37,0,53,0,15,0\n13,0,43,0,24,0,34,0,49,0,12,0\n27,0,6,0,38,0,42,0,20,0,28,0\n25,0,39,0,18,0,33,0,50,0,48,0\n22,0,5,0,45,0,21,0,14,0,36,0\n30,0,46,0,47,0,54,0,7,0,41,0\n17,0,13,0,31,0,52,0,16,0,12,0\n43,0,1,0,2,0,15,0,24,0,34,0\n8,0,4,0,26,0,44,0,11,0,49,0\n3,0,51,0,9,0,19,0,53,0,35,0\n40,0,37,0,23,0,32,0,29,0,10,0\n50,0,6,0,5,0,17,0,42,0,38,0\n54,0,16,0,21,0,13,0,39,0,22,0\n27,0,46,0,7,0,48,0,31,0,34,0\n41,0,15,0,52,0,26,0,53,0,51,0\n9,0,37,0,25,0,19,0,2,0,49,0\n36,0,40,0,24,0,44,0,28,0,8,0\n12,0,11,0,35,0,45,0,33,0,29,0\n23,0,18,0,14,0,20,0,47,0,1,0\n4,0,32,0,43,0,3,0,30,0,10,0\n15,0,31,0,46,0,39,0,37,0,5,0\n53,0,7,0,2,0,17,0,22,0,40,0\n54,0,34,0,29,0,16,0,6,0,26,0\n52,0,38,0,1,0,12,0,8,0,18,0\n48,0,45,0,42,0,41,0,44,0,43,0\n13,0,14,0,47,0,33,0,3,0,28,0\n36,0,32,0,51,0,49,0,23,0,9,0\n35,0,21,0,4,0,11,0,30,0,19,0\n20,0,27,0,10,0,25,0,50,0,24,0\n38,0,22,0,44,0,52,0,54,0,48,0\n42,0,14,0,12,0,34,0,39,0,8,0\n17,0,9,0,33,0,26,0,7,0,40,0\n13,0,2,0,3,0,6,0,18,0,29,0\n37,0,51,0,47,0,31,0,43,0,36,0\n30,0,32,0,45,0,25,0,19,0,27,0\n50,0,11,0,16,0,15,0,28,0,5,0\n23,0,20,0,46,0,49,0,24,0,21,0\n1,0,35,0,10,0,4,0,53,0,41,0\n"
  },
  {
    "path": "schedules/54_2.csv",
    "content": "43,0,38,0,53,0,51,0,4,0,20,0\n16,0,10,0,52,0,5,0,7,0,44,0\n8,0,32,0,27,0,12,0,15,0,37,0\n30,0,35,0,26,0,54,0,50,0,3,0\n42,0,22,0,13,0,34,0,19,0,45,0\n25,0,21,0,18,0,46,0,31,0,14,0\n2,0,11,0,47,0,40,0,23,0,1,0\n49,0,39,0,24,0,33,0,6,0,17,0\n28,0,9,0,29,0,41,0,48,0,36,0\n15,0,35,0,19,0,53,0,7,0,26,0\n54,0,13,0,44,0,27,0,38,0,21,0\n31,0,47,0,20,0,22,0,32,0,16,0\n17,0,12,0,30,0,42,0,11,0,10,0\n25,0,43,0,5,0,29,0,40,0,39,0\n18,0,3,0,48,0,49,0,4,0,8,0\n14,0,34,0,36,0,33,0,2,0,41,0\n46,0,6,0,1,0,45,0,51,0,9,0\n50,0,23,0,52,0,24,0,28,0,37,0\n"
  },
  {
    "path": "schedules/54_3.csv",
    "content": "15,0,26,0,18,0,6,0,25,0,8,0\n34,0,32,0,5,0,35,0,31,0,49,0\n9,0,3,0,46,0,24,0,40,0,11,0\n51,0,21,0,4,0,37,0,1,0,52,0\n42,0,38,0,12,0,53,0,30,0,33,0\n14,0,23,0,54,0,10,0,22,0,41,0\n2,0,7,0,43,0,39,0,44,0,27,0\n20,0,48,0,28,0,19,0,45,0,50,0\n29,0,16,0,36,0,13,0,47,0,17,0\n18,0,38,0,52,0,26,0,46,0,49,0\n40,0,32,0,25,0,33,0,23,0,37,0\n1,0,8,0,30,0,3,0,54,0,44,0\n48,0,39,0,42,0,4,0,15,0,14,0\n17,0,50,0,31,0,43,0,10,0,47,0\n22,0,36,0,35,0,9,0,6,0,28,0\n19,0,5,0,24,0,7,0,51,0,13,0\n16,0,53,0,45,0,11,0,2,0,34,0\n27,0,12,0,29,0,20,0,41,0,21,0\n26,0,40,0,30,0,4,0,48,0,43,0\n17,0,42,0,44,0,32,0,18,0,22,0\n10,0,25,0,13,0,39,0,46,0,28,0\n33,0,2,0,8,0,14,0,36,0,5,0\n27,0,37,0,16,0,3,0,19,0,38,0\n15,0,53,0,20,0,9,0,31,0,21,0\n34,0,6,0,54,0,52,0,29,0,24,0\n35,0,11,0,23,0,12,0,50,0,51,0\n49,0,47,0,41,0,1,0,45,0,7,0\n"
  },
  {
    "path": "schedules/54_4.csv",
    "content": "12,0,23,0,52,0,18,0,1,0,40,0\n21,0,3,0,7,0,9,0,2,0,37,0\n6,0,33,0,20,0,28,0,47,0,17,0\n54,0,31,0,8,0,38,0,26,0,53,0\n22,0,10,0,4,0,19,0,50,0,36,0\n41,0,5,0,39,0,34,0,11,0,27,0\n24,0,16,0,15,0,43,0,29,0,14,0\n45,0,25,0,30,0,51,0,46,0,44,0\n13,0,49,0,42,0,32,0,35,0,48,0\n2,0,33,0,53,0,23,0,4,0,19,0\n52,0,38,0,36,0,41,0,47,0,37,0\n40,0,15,0,39,0,3,0,54,0,20,0\n29,0,31,0,21,0,22,0,12,0,30,0\n50,0,17,0,35,0,44,0,5,0,14,0\n49,0,27,0,48,0,10,0,25,0,6,0\n32,0,43,0,18,0,8,0,45,0,34,0\n51,0,26,0,9,0,28,0,42,0,24,0\n46,0,13,0,11,0,1,0,7,0,16,0\n19,0,44,0,3,0,20,0,29,0,41,0\n5,0,40,0,36,0,53,0,49,0,30,0\n10,0,12,0,43,0,39,0,37,0,33,0\n48,0,8,0,24,0,4,0,21,0,17,0\n47,0,42,0,2,0,45,0,1,0,22,0\n18,0,14,0,54,0,13,0,9,0,27,0\n7,0,26,0,35,0,52,0,34,0,25,0\n28,0,15,0,50,0,23,0,31,0,46,0\n11,0,16,0,6,0,32,0,38,0,51,0\n17,0,48,0,45,0,29,0,39,0,36,0\n1,0,41,0,21,0,54,0,43,0,49,0\n40,0,10,0,14,0,8,0,42,0,7,0\n52,0,3,0,30,0,24,0,33,0,50,0\n23,0,37,0,26,0,22,0,16,0,20,0\n2,0,28,0,38,0,25,0,13,0,5,0\n53,0,27,0,32,0,15,0,47,0,44,0\n9,0,12,0,34,0,46,0,6,0,4,0\n51,0,11,0,18,0,31,0,19,0,35,0\n"
  },
  {
    "path": "schedules/54_5.csv",
    "content": "21,0,40,0,54,0,20,0,45,0,7,0\n38,0,48,0,39,0,18,0,49,0,34,0\n9,0,35,0,46,0,51,0,37,0,8,0\n12,0,30,0,28,0,3,0,14,0,19,0\n10,0,26,0,22,0,5,0,27,0,11,0\n1,0,15,0,41,0,50,0,17,0,33,0\n4,0,25,0,23,0,2,0,47,0,29,0\n24,0,31,0,13,0,32,0,6,0,44,0\n16,0,42,0,53,0,52,0,43,0,36,0\n8,0,30,0,22,0,7,0,38,0,18,0\n33,0,5,0,49,0,40,0,37,0,12,0\n19,0,27,0,29,0,21,0,46,0,1,0\n45,0,50,0,28,0,11,0,2,0,6,0\n17,0,20,0,32,0,47,0,39,0,42,0\n4,0,53,0,48,0,14,0,13,0,26,0\n23,0,3,0,15,0,44,0,9,0,16,0\n36,0,31,0,41,0,25,0,10,0,35,0\n24,0,54,0,43,0,52,0,51,0,34,0\n18,0,45,0,37,0,1,0,19,0,42,0\n32,0,7,0,33,0,53,0,29,0,11,0\n12,0,39,0,50,0,9,0,22,0,4,0\n40,0,36,0,47,0,8,0,15,0,13,0\n48,0,5,0,3,0,6,0,35,0,54,0\n21,0,44,0,51,0,41,0,49,0,28,0\n25,0,24,0,38,0,16,0,26,0,46,0\n27,0,2,0,31,0,43,0,30,0,17,0\n34,0,14,0,10,0,23,0,52,0,20,0\n15,0,6,0,42,0,7,0,4,0,35,0\n47,0,19,0,44,0,22,0,48,0,33,0\n37,0,26,0,36,0,29,0,28,0,54,0\n51,0,39,0,40,0,27,0,25,0,3,0\n50,0,14,0,43,0,18,0,10,0,32,0\n20,0,53,0,2,0,41,0,24,0,8,0\n23,0,13,0,12,0,17,0,45,0,46,0\n21,0,52,0,9,0,5,0,31,0,38,0\n34,0,11,0,16,0,30,0,49,0,1,0\n7,0,19,0,26,0,44,0,39,0,43,0\n18,0,4,0,27,0,36,0,33,0,24,0\n14,0,6,0,46,0,22,0,41,0,40,0\n2,0,10,0,9,0,54,0,13,0,42,0\n17,0,34,0,25,0,37,0,21,0,53,0\n11,0,20,0,31,0,48,0,12,0,15,0\n30,0,47,0,16,0,45,0,51,0,5,0\n49,0,8,0,29,0,52,0,50,0,3,0\n28,0,35,0,38,0,32,0,1,0,23,0\n"
  },
  {
    "path": "schedules/54_6.csv",
    "content": "16,0,32,0,46,0,45,0,13,0,50,0\n43,0,34,0,9,0,31,0,26,0,41,0\n36,0,27,0,40,0,7,0,35,0,22,0\n2,0,53,0,5,0,23,0,51,0,38,0\n48,0,28,0,33,0,37,0,39,0,30,0\n12,0,21,0,20,0,17,0,52,0,14,0\n19,0,47,0,10,0,18,0,8,0,49,0\n25,0,15,0,3,0,4,0,6,0,44,0\n29,0,24,0,54,0,1,0,42,0,11,0\n39,0,5,0,9,0,27,0,16,0,43,0\n33,0,7,0,20,0,45,0,31,0,38,0\n46,0,34,0,12,0,22,0,51,0,49,0\n30,0,44,0,13,0,52,0,23,0,8,0\n40,0,19,0,1,0,3,0,6,0,53,0\n37,0,21,0,18,0,42,0,36,0,25,0\n29,0,48,0,10,0,4,0,14,0,54,0\n47,0,41,0,15,0,35,0,32,0,11,0\n50,0,28,0,17,0,26,0,24,0,2,0\n49,0,39,0,52,0,40,0,45,0,23,0\n27,0,30,0,3,0,37,0,20,0,46,0\n8,0,36,0,6,0,31,0,51,0,48,0\n53,0,15,0,43,0,33,0,10,0,42,0\n4,0,26,0,21,0,5,0,11,0,19,0\n7,0,25,0,41,0,24,0,47,0,16,0\n44,0,35,0,38,0,54,0,50,0,12,0\n32,0,22,0,9,0,2,0,17,0,29,0\n18,0,1,0,14,0,28,0,34,0,13,0\n26,0,8,0,53,0,39,0,6,0,46,0\n11,0,40,0,16,0,31,0,10,0,20,0\n23,0,24,0,12,0,43,0,4,0,36,0\n38,0,52,0,27,0,25,0,19,0,32,0\n45,0,37,0,2,0,15,0,13,0,1,0\n17,0,54,0,5,0,33,0,34,0,47,0\n49,0,7,0,21,0,44,0,29,0,28,0\n41,0,48,0,18,0,22,0,50,0,3,0\n35,0,51,0,42,0,14,0,30,0,9,0\n11,0,13,0,43,0,25,0,40,0,6,0\n39,0,10,0,1,0,36,0,17,0,38,0\n29,0,45,0,47,0,26,0,12,0,27,0\n15,0,48,0,20,0,24,0,19,0,34,0\n33,0,46,0,14,0,2,0,41,0,44,0\n50,0,49,0,4,0,9,0,37,0,51,0\n30,0,22,0,54,0,21,0,16,0,53,0\n42,0,3,0,23,0,7,0,8,0,32,0\n31,0,52,0,35,0,18,0,5,0,28,0\n43,0,44,0,45,0,19,0,17,0,48,0\n51,0,41,0,40,0,37,0,38,0,29,0\n50,0,6,0,34,0,21,0,27,0,10,0\n22,0,42,0,4,0,39,0,13,0,47,0\n49,0,31,0,24,0,53,0,32,0,14,0\n36,0,16,0,52,0,33,0,3,0,26,0\n46,0,23,0,28,0,15,0,9,0,54,0\n35,0,25,0,5,0,1,0,8,0,20,0\n30,0,18,0,11,0,12,0,2,0,7,0\n"
  },
  {
    "path": "schedules/54_7.csv",
    "content": "10,0,17,0,5,0,41,0,53,0,15,0\n50,0,28,0,20,0,27,0,2,0,25,0\n1,0,48,0,12,0,11,0,22,0,8,0\n35,0,38,0,33,0,6,0,49,0,19,0\n43,0,45,0,23,0,39,0,32,0,3,0\n16,0,30,0,44,0,40,0,26,0,7,0\n46,0,21,0,13,0,24,0,51,0,4,0\n34,0,52,0,9,0,37,0,36,0,14,0\n18,0,42,0,29,0,54,0,31,0,47,0\n48,0,2,0,5,0,1,0,10,0,19,0\n22,0,53,0,40,0,35,0,23,0,28,0\n49,0,26,0,24,0,12,0,15,0,25,0\n27,0,7,0,52,0,38,0,45,0,41,0\n9,0,51,0,11,0,32,0,54,0,44,0\n37,0,34,0,39,0,46,0,29,0,50,0\n4,0,3,0,31,0,6,0,8,0,20,0\n30,0,17,0,47,0,36,0,43,0,13,0\n14,0,42,0,21,0,18,0,16,0,33,0\n52,0,32,0,26,0,22,0,2,0,35,0\n5,0,39,0,38,0,9,0,48,0,24,0\n27,0,40,0,46,0,31,0,49,0,10,0\n3,0,29,0,54,0,19,0,50,0,30,0\n28,0,36,0,11,0,4,0,7,0,33,0\n23,0,25,0,6,0,51,0,17,0,14,0\n37,0,1,0,15,0,42,0,16,0,43,0\n44,0,8,0,34,0,21,0,47,0,41,0\n45,0,20,0,53,0,18,0,13,0,12,0\n54,0,33,0,10,0,39,0,22,0,7,0\n36,0,32,0,40,0,29,0,25,0,5,0\n42,0,11,0,3,0,17,0,26,0,38,0\n37,0,6,0,2,0,21,0,27,0,44,0\n8,0,9,0,46,0,18,0,53,0,43,0\n45,0,15,0,35,0,30,0,4,0,34,0\n14,0,47,0,20,0,49,0,51,0,1,0\n12,0,28,0,24,0,16,0,52,0,19,0\n41,0,48,0,50,0,31,0,23,0,13,0\n18,0,22,0,10,0,37,0,3,0,38,0\n30,0,42,0,25,0,39,0,8,0,53,0\n6,0,45,0,1,0,9,0,29,0,26,0\n43,0,44,0,35,0,14,0,12,0,5,0\n2,0,13,0,16,0,31,0,11,0,34,0\n7,0,21,0,19,0,23,0,46,0,20,0\n50,0,51,0,15,0,52,0,40,0,33,0\n54,0,28,0,49,0,36,0,24,0,41,0\n27,0,32,0,47,0,48,0,17,0,4,0\n5,0,31,0,6,0,37,0,30,0,11,0\n16,0,45,0,25,0,44,0,46,0,22,0\n19,0,42,0,12,0,40,0,9,0,21,0\n39,0,36,0,51,0,35,0,41,0,18,0\n13,0,28,0,14,0,38,0,32,0,15,0\n53,0,3,0,24,0,34,0,1,0,27,0\n43,0,48,0,33,0,20,0,54,0,52,0\n26,0,4,0,47,0,23,0,10,0,50,0\n49,0,8,0,7,0,2,0,29,0,17,0\n22,0,19,0,31,0,14,0,39,0,15,0\n41,0,12,0,32,0,46,0,30,0,6,0\n53,0,48,0,38,0,36,0,21,0,16,0\n34,0,51,0,26,0,43,0,28,0,27,0\n33,0,2,0,47,0,3,0,9,0,25,0\n37,0,8,0,17,0,40,0,45,0,54,0\n11,0,29,0,35,0,24,0,20,0,10,0\n1,0,23,0,4,0,44,0,18,0,52,0\n13,0,7,0,50,0,5,0,49,0,42,0\n"
  },
  {
    "path": "schedules/54_8.csv",
    "content": "33,0,35,0,14,0,4,0,39,0,50,0\n52,0,24,0,28,0,7,0,44,0,53,0\n36,0,3,0,42,0,1,0,45,0,38,0\n29,0,47,0,2,0,48,0,30,0,12,0\n6,0,54,0,23,0,15,0,20,0,25,0\n10,0,51,0,11,0,46,0,40,0,27,0\n26,0,13,0,21,0,43,0,17,0,5,0\n16,0,18,0,19,0,9,0,41,0,32,0\n37,0,8,0,34,0,49,0,31,0,22,0\n4,0,3,0,2,0,50,0,53,0,6,0\n33,0,45,0,15,0,28,0,47,0,46,0\n17,0,40,0,7,0,38,0,29,0,25,0\n12,0,54,0,14,0,11,0,1,0,21,0\n36,0,8,0,49,0,16,0,10,0,13,0\n18,0,41,0,20,0,5,0,22,0,52,0\n44,0,27,0,24,0,48,0,31,0,19,0\n37,0,26,0,32,0,23,0,35,0,51,0\n43,0,34,0,30,0,9,0,39,0,42,0\n49,0,38,0,21,0,15,0,46,0,6,0\n33,0,7,0,16,0,13,0,2,0,22,0\n41,0,27,0,4,0,54,0,8,0,47,0\n14,0,45,0,53,0,40,0,18,0,10,0\n32,0,48,0,17,0,52,0,12,0,42,0\n43,0,35,0,3,0,28,0,34,0,5,0\n19,0,25,0,39,0,11,0,26,0,31,0\n29,0,30,0,50,0,23,0,36,0,44,0\n37,0,9,0,51,0,1,0,20,0,24,0\n53,0,32,0,49,0,27,0,7,0,54,0\n35,0,41,0,40,0,48,0,33,0,42,0\n45,0,5,0,31,0,16,0,4,0,11,0\n22,0,46,0,8,0,30,0,14,0,26,0\n2,0,23,0,12,0,43,0,24,0,38,0\n15,0,18,0,17,0,3,0,37,0,44,0\n34,0,51,0,19,0,52,0,36,0,6,0\n50,0,13,0,9,0,25,0,47,0,21,0\n1,0,28,0,39,0,29,0,10,0,20,0\n8,0,5,0,33,0,12,0,38,0,53,0\n2,0,54,0,46,0,44,0,35,0,31,0\n11,0,7,0,6,0,42,0,37,0,16,0\n36,0,32,0,14,0,41,0,25,0,43,0\n10,0,19,0,1,0,47,0,4,0,17,0\n28,0,20,0,30,0,27,0,18,0,13,0\n9,0,22,0,48,0,3,0,39,0,51,0\n24,0,29,0,40,0,21,0,34,0,15,0\n26,0,23,0,50,0,49,0,45,0,52,0\n5,0,54,0,36,0,33,0,17,0,46,0\n42,0,25,0,4,0,37,0,28,0,27,0\n39,0,12,0,10,0,41,0,6,0,44,0\n51,0,18,0,21,0,7,0,2,0,8,0\n15,0,53,0,26,0,48,0,1,0,50,0\n52,0,13,0,23,0,40,0,9,0,31,0\n38,0,47,0,20,0,14,0,34,0,16,0\n45,0,22,0,43,0,29,0,19,0,35,0\n49,0,11,0,24,0,30,0,32,0,3,0\n28,0,41,0,15,0,51,0,26,0,2,0\n21,0,42,0,31,0,18,0,36,0,53,0\n48,0,47,0,39,0,23,0,7,0,46,0\n27,0,29,0,9,0,5,0,6,0,14,0\n25,0,11,0,17,0,24,0,8,0,35,0\n32,0,13,0,44,0,34,0,4,0,45,0\n54,0,50,0,38,0,22,0,37,0,10,0\n40,0,3,0,49,0,12,0,19,0,20,0\n16,0,30,0,52,0,1,0,43,0,33,0\n48,0,8,0,11,0,28,0,36,0,9,0\n29,0,46,0,41,0,24,0,53,0,13,0\n45,0,27,0,2,0,17,0,37,0,39,0\n5,0,44,0,42,0,14,0,51,0,49,0\n23,0,1,0,25,0,34,0,33,0,18,0\n6,0,20,0,31,0,43,0,32,0,50,0\n47,0,40,0,16,0,54,0,3,0,26,0\n12,0,7,0,22,0,4,0,10,0,15,0\n35,0,30,0,38,0,21,0,52,0,19,0\n"
  },
  {
    "path": "schedules/54_9.csv",
    "content": "34,0,24,0,37,0,2,0,52,0,7,0\n49,0,12,0,33,0,40,0,9,0,20,0\n23,0,50,0,38,0,47,0,36,0,35,0\n26,0,43,0,11,0,15,0,39,0,48,0\n3,0,54,0,22,0,8,0,19,0,28,0\n25,0,21,0,6,0,45,0,13,0,32,0\n44,0,51,0,42,0,27,0,30,0,18,0\n46,0,4,0,29,0,14,0,53,0,31,0\n41,0,16,0,10,0,1,0,5,0,17,0\n23,0,49,0,19,0,24,0,26,0,8,0\n52,0,11,0,15,0,9,0,54,0,32,0\n21,0,36,0,40,0,2,0,51,0,25,0\n33,0,37,0,3,0,46,0,44,0,48,0\n6,0,39,0,38,0,4,0,1,0,42,0\n14,0,18,0,35,0,30,0,17,0,16,0\n7,0,20,0,27,0,43,0,28,0,31,0\n47,0,22,0,29,0,41,0,5,0,13,0\n10,0,50,0,45,0,34,0,12,0,53,0\n40,0,26,0,6,0,38,0,44,0,9,0\n17,0,15,0,21,0,36,0,3,0,30,0\n35,0,37,0,31,0,25,0,49,0,39,0\n52,0,47,0,41,0,19,0,14,0,33,0\n4,0,27,0,53,0,5,0,16,0,32,0\n18,0,8,0,1,0,11,0,28,0,34,0\n42,0,12,0,50,0,29,0,2,0,23,0\n7,0,45,0,46,0,22,0,10,0,20,0\n51,0,54,0,13,0,43,0,24,0,48,0\n21,0,53,0,19,0,15,0,33,0,27,0\n28,0,6,0,9,0,34,0,35,0,17,0\n2,0,5,0,30,0,31,0,3,0,38,0\n40,0,14,0,22,0,11,0,37,0,50,0\n29,0,1,0,20,0,52,0,51,0,23,0\n43,0,7,0,49,0,44,0,47,0,32,0\n4,0,18,0,48,0,41,0,12,0,24,0\n26,0,54,0,42,0,46,0,10,0,25,0\n39,0,8,0,45,0,36,0,13,0,16,0\n38,0,15,0,34,0,23,0,37,0,27,0\n29,0,51,0,31,0,11,0,6,0,19,0\n48,0,49,0,41,0,50,0,7,0,30,0\n21,0,26,0,28,0,52,0,42,0,5,0\n45,0,40,0,47,0,3,0,18,0,46,0\n13,0,35,0,10,0,4,0,20,0,33,0\n17,0,9,0,24,0,22,0,32,0,39,0\n12,0,2,0,43,0,16,0,25,0,8,0\n1,0,14,0,36,0,54,0,53,0,44,0\n34,0,51,0,41,0,49,0,46,0,38,0\n13,0,4,0,52,0,7,0,15,0,3,0\n30,0,32,0,29,0,28,0,37,0,22,0\n10,0,23,0,17,0,40,0,19,0,43,0\n31,0,48,0,1,0,35,0,42,0,45,0\n6,0,12,0,36,0,27,0,26,0,47,0\n16,0,11,0,44,0,24,0,50,0,21,0\n8,0,5,0,9,0,14,0,25,0,20,0\n53,0,33,0,39,0,18,0,2,0,54,0\n32,0,28,0,15,0,41,0,31,0,40,0\n47,0,51,0,37,0,4,0,10,0,26,0\n12,0,30,0,46,0,6,0,24,0,1,0\n48,0,3,0,14,0,23,0,20,0,34,0\n13,0,11,0,2,0,44,0,17,0,49,0\n27,0,45,0,19,0,50,0,9,0,39,0\n54,0,7,0,8,0,35,0,29,0,21,0\n22,0,38,0,25,0,53,0,52,0,18,0\n36,0,5,0,33,0,16,0,42,0,43,0\n2,0,15,0,24,0,28,0,10,0,14,0\n50,0,32,0,1,0,3,0,13,0,26,0\n20,0,39,0,47,0,30,0,21,0,34,0\n49,0,27,0,40,0,45,0,29,0,52,0\n44,0,35,0,5,0,12,0,19,0,51,0\n18,0,7,0,16,0,6,0,23,0,54,0\n33,0,31,0,46,0,8,0,38,0,17,0\n42,0,53,0,41,0,9,0,37,0,43,0\n4,0,36,0,25,0,11,0,22,0,48,0\n3,0,51,0,32,0,14,0,12,0,39,0\n54,0,30,0,19,0,34,0,13,0,40,0\n20,0,16,0,24,0,29,0,26,0,38,0\n8,0,43,0,50,0,37,0,52,0,6,0\n21,0,31,0,9,0,36,0,18,0,10,0\n25,0,48,0,5,0,1,0,15,0,49,0\n42,0,17,0,11,0,53,0,47,0,7,0\n4,0,23,0,28,0,45,0,44,0,33,0\n35,0,27,0,2,0,46,0,22,0,41,0\n"
  },
  {
    "path": "schedules/55_1.csv",
    "content": "1,0,45,0,49,0,52,0,11,0,16,0\n31,0,35,0,22,0,23,0,30,0,13,0\n38,0,34,0,50,0,46,0,3,0,41,0\n51,0,19,0,47,0,40,0,8,0,2,0\n24,0,9,0,54,0,10,0,17,0,25,0\n15,0,36,0,48,0,18,0,28,0,6,0\n5,0,32,0,20,0,14,0,12,0,27,0\n33,0,53,0,4,0,39,0,55,0,7,0\n29,0,37,0,44,0,42,0,21,0,43,0\n26,0,30,1,50,1,17,1,40,1,10,1\n"
  },
  {
    "path": "schedules/55_10.csv",
    "content": "4,0,15,0,48,0,29,0,42,0,1,0\n12,0,37,0,26,0,41,0,23,0,46,0\n40,0,9,0,21,0,28,0,45,0,35,0\n53,0,47,0,13,0,18,0,38,0,17,0\n24,0,8,0,2,0,30,0,5,0,33,0\n25,0,7,0,11,0,20,0,52,0,44,0\n36,0,31,0,14,0,6,0,50,0,34,0\n27,0,49,0,43,0,54,0,39,0,32,0\n55,0,3,0,10,0,16,0,19,0,22,0\n51,0,21,0,33,0,9,0,13,0,12,0\n40,0,46,0,17,0,29,0,5,0,11,0\n23,0,2,0,25,0,35,0,6,0,42,0\n45,0,50,0,7,0,4,0,49,0,32,0\n14,0,19,0,20,0,27,0,30,0,53,0\n31,0,41,0,34,0,3,0,52,0,43,0\n1,0,38,0,39,0,18,0,10,0,26,0\n48,0,51,0,22,0,36,0,8,0,37,0\n44,0,55,0,16,0,54,0,15,0,47,0\n24,0,53,0,7,0,28,0,6,0,27,0\n20,1,23,0,13,0,41,1,50,0,4,0\n18,0,21,0,29,0,26,0,3,0,30,0\n35,0,1,0,46,0,31,0,49,0,48,0\n16,0,54,0,11,0,36,0,9,0,32,0\n43,0,22,0,8,0,44,0,12,0,17,0\n39,0,33,0,55,0,34,0,52,0,5,0\n42,0,51,0,28,0,14,0,37,0,10,0\n45,0,19,0,38,0,25,0,15,0,24,0\n40,0,2,0,13,0,47,0,16,0,27,0\n20,0,3,0,9,0,6,0,1,0,12,0\n44,0,22,0,18,0,31,0,33,0,23,0\n35,0,52,0,32,0,29,0,8,0,26,0\n48,0,55,0,36,0,24,0,43,0,38,0\n37,0,51,0,50,0,7,0,15,0,5,0\n39,0,19,0,17,0,41,0,14,0,45,0\n4,0,11,0,47,0,34,0,21,0,25,0\n53,0,10,0,28,0,49,0,30,0,2,0\n42,0,46,0,31,0,54,0,40,0,38,0\n50,0,27,0,24,0,3,0,51,0,35,0\n13,0,41,0,18,0,48,0,32,0,44,0\n12,0,55,0,47,0,29,0,45,0,37,0\n15,0,39,0,2,0,11,0,8,0,21,0\n20,0,1,0,54,0,17,0,23,0,28,0\n6,0,19,0,10,0,4,0,33,0,40,0\n30,0,46,0,9,0,34,0,43,0,7,0\n26,0,22,0,36,0,53,0,14,0,25,0\n52,0,49,0,42,0,5,0,16,0,12,0\n44,0,51,0,31,0,45,0,20,0,21,0\n33,0,3,0,17,0,35,0,55,0,38,0\n7,0,48,0,30,0,39,0,40,0,11,0\n54,0,2,0,37,0,19,0,26,0,50,0\n29,0,13,0,34,0,10,0,1,0,22,0\n25,0,16,0,8,0,4,0,43,0,53,0\n52,0,6,0,46,0,18,0,27,0,15,0\n49,0,28,0,9,0,42,0,41,0,36,0\n32,0,5,0,24,0,14,0,23,0,47,0\n48,0,12,0,39,0,19,0,13,0,31,0\n8,0,34,0,38,0,37,0,40,0,20,0\n1,0,18,0,11,0,35,0,16,0,50,0\n7,0,42,0,27,0,33,0,29,0,41,0\n25,0,28,0,32,0,51,0,46,0,55,0\n15,0,30,0,6,0,22,0,47,0,49,0\n17,0,4,0,26,0,24,0,44,0,9,0\n5,0,23,0,53,0,10,0,43,0,21,0\n54,0,14,0,52,0,2,0,3,0,45,0\n19,0,35,0,29,0,36,0,13,0,28,0\n6,0,49,0,41,0,38,0,11,0,51,0\n34,0,20,0,27,0,16,0,48,0,26,0\n10,0,17,0,5,0,32,0,31,0,15,0\n52,0,33,0,53,0,9,0,47,0,37,0\n43,0,18,0,45,0,42,0,22,0,2,0\n23,0,50,0,12,0,55,0,40,0,30,0\n21,0,1,0,14,0,54,0,8,0,7,0\n44,0,36,0,4,0,3,0,39,0,46,0\n24,0,16,0,33,0,25,0,31,0,29,0\n11,0,26,0,43,0,19,0,28,0,47,0\n45,0,5,0,55,0,6,0,48,0,20,0\n15,0,12,0,40,0,14,0,18,0,9,0\n46,0,44,0,34,0,50,0,42,0,53,0\n21,0,36,0,24,0,41,0,1,0,52,0\n4,0,30,0,22,0,38,0,2,0,32,0\n23,0,54,0,35,0,7,0,51,0,39,0\n25,0,3,0,49,0,17,0,37,0,13,0\n10,0,8,0,31,0,27,0,55,0,9,0\n14,0,29,0,15,0,33,0,20,0,43,0\n22,0,50,0,28,0,24,0,52,0,48,0\n51,0,40,0,32,0,1,0,44,0,53,0\n41,0,54,0,5,0,18,0,25,0,4,0\n42,0,26,0,45,0,13,0,11,0,30,0\n12,0,2,0,27,0,7,0,36,0,17,0\n6,0,38,0,37,0,39,0,16,0,21,0\n19,0,3,0,34,0,49,0,23,0,8,0\n35,0,47,0,41,0,46,0,10,0,20,0\n"
  },
  {
    "path": "schedules/55_11.csv",
    "content": "2,0,11,0,13,0,9,0,18,0,37,0\n8,0,17,0,4,0,45,0,47,0,12,0\n40,0,36,0,44,0,22,0,21,0,51,0\n32,0,29,0,41,0,14,0,19,0,31,0\n55,0,25,0,10,0,52,0,3,0,39,0\n42,0,53,0,24,0,50,0,23,0,33,0\n43,0,26,0,1,0,6,0,49,0,16,0\n20,0,15,0,46,0,7,0,5,0,54,0\n28,0,38,0,34,0,35,0,48,0,27,0\n30,0,32,0,2,0,17,0,10,0,44,0\n13,0,39,0,25,0,29,0,33,0,14,0\n37,0,24,0,21,0,31,0,50,0,18,0\n42,0,55,0,43,0,8,0,47,0,7,0\n49,0,26,0,9,0,41,0,52,0,40,0\n3,0,11,0,19,0,23,0,46,0,35,0\n12,0,53,0,51,0,34,0,22,0,15,0\n45,0,6,0,48,0,1,0,36,0,20,0\n54,0,38,0,27,0,16,0,5,0,30,0\n28,0,9,0,14,0,4,0,33,0,55,0\n32,1,50,0,21,0,41,0,25,0,43,0\n10,0,47,0,26,0,24,0,29,0,11,0\n23,0,13,0,6,0,44,0,46,0,34,0\n39,0,45,0,27,0,40,0,54,0,19,0\n22,0,7,0,16,0,17,0,3,0,2,0\n38,0,8,0,42,0,53,0,15,0,1,0\n48,0,36,0,49,0,35,0,18,0,30,0\n31,0,5,0,51,0,4,0,37,0,20,0\n12,0,52,0,6,0,28,0,21,0,11,0\n46,0,19,0,47,0,22,0,25,0,26,0\n7,0,40,0,15,0,23,0,32,0,10,0\n50,0,17,0,35,0,54,0,14,0,13,0\n45,0,24,0,49,0,38,0,2,0,51,0\n12,0,39,0,55,0,18,0,41,0,42,0\n27,0,44,0,9,0,20,0,53,0,29,0\n3,0,36,0,34,0,52,0,31,0,8,0\n5,0,43,0,37,0,30,0,1,0,28,0\n4,0,48,0,40,0,16,0,33,0,2,0\n24,0,6,0,39,0,35,0,25,0,15,0\n22,0,9,0,54,0,18,0,26,0,23,0\n3,0,42,0,47,0,38,0,36,0,14,0\n10,0,34,0,29,0,43,0,20,0,28,0\n11,0,46,0,55,0,1,0,27,0,50,0\n37,0,31,0,16,0,45,0,44,0,52,0\n41,0,8,0,48,0,51,0,32,0,13,0\n4,0,5,0,19,0,53,0,49,0,17,0\n33,0,30,0,21,0,7,0,12,0,29,0\n1,0,14,0,2,0,28,0,40,0,23,0\n39,0,42,0,9,0,22,0,24,0,43,0\n47,0,27,0,15,0,37,0,41,0,3,0\n11,0,16,0,20,0,19,0,55,0,36,0\n7,0,44,0,31,0,49,0,12,0,35,0\n53,0,4,0,21,0,54,0,48,0,32,0\n52,0,25,0,46,0,8,0,30,0,45,0\n18,0,13,0,5,0,10,0,51,0,6,0\n17,0,38,0,33,0,50,0,34,0,26,0\n12,0,43,0,14,0,24,0,27,0,2,0\n49,0,29,0,54,0,37,0,22,0,55,0\n40,0,25,0,53,0,36,0,46,0,7,0\n6,0,32,0,18,0,47,0,16,0,52,0\n5,0,33,0,34,0,45,0,11,0,41,0\n4,0,31,0,30,0,42,0,13,0,26,0\n19,0,50,0,15,0,28,0,48,0,44,0\n8,0,51,0,1,0,35,0,9,0,10,0\n23,0,38,0,39,0,21,0,20,0,17,0\n3,0,14,0,7,0,54,0,6,0,11,0\n25,0,2,0,18,0,27,0,42,0,34,0\n46,0,28,0,24,0,4,0,45,0,32,0\n37,0,19,0,26,0,8,0,12,0,10,0\n13,0,33,0,43,0,52,0,36,0,15,0\n3,0,51,0,44,0,38,0,1,0,29,0\n41,0,53,0,35,0,30,0,40,0,20,0\n50,0,9,0,16,0,47,0,39,0,49,0\n23,0,22,0,17,0,55,0,31,0,48,0\n21,0,2,0,36,0,5,0,26,0,28,0\n52,0,27,0,11,0,42,0,4,0,44,0\n12,0,40,0,37,0,3,0,38,0,6,0\n41,0,49,0,10,0,45,0,54,0,53,0\n22,0,18,0,20,0,32,0,8,0,33,0\n46,0,31,0,17,0,15,0,9,0,43,0\n23,0,30,0,7,0,51,0,39,0,50,0\n13,0,21,0,34,0,24,0,16,0,19,0\n1,0,48,0,5,0,47,0,25,0,14,0\n29,0,55,0,52,0,35,0,40,0,2,0\n15,0,38,0,41,0,11,0,4,0,22,0\n45,0,3,0,18,0,43,0,50,0,53,0\n19,0,27,0,30,0,6,0,33,0,31,0\n34,0,54,0,20,0,47,0,1,0,24,0\n26,0,29,0,44,0,7,0,39,0,48,0\n42,0,28,0,17,0,49,0,46,0,51,0\n32,0,5,0,12,0,9,0,13,0,55,0\n8,0,35,0,14,0,16,0,21,0,23,0\n25,0,36,0,33,0,10,0,37,0,38,0\n52,0,1,0,18,0,19,0,7,0,41,0\n11,0,47,0,31,0,39,0,53,0,2,0\n49,0,32,0,20,0,13,0,3,0,27,0\n50,0,24,0,44,0,8,0,5,0,40,0\n28,0,35,0,6,0,17,0,25,0,9,0\n4,0,23,0,54,0,43,0,29,0,36,0\n10,0,16,0,48,0,12,0,42,0,46,0\n45,0,51,0,15,0,26,0,21,0,55,0\n22,0,14,0,32,0,30,0,37,0,34,0\n"
  },
  {
    "path": "schedules/55_12.csv",
    "content": "41,0,23,0,53,0,51,0,6,0,30,0\n36,0,16,0,14,0,1,0,10,0,45,0\n52,0,54,0,48,0,34,0,11,0,31,0\n12,0,33,0,49,0,19,0,29,0,47,0\n7,0,8,0,20,0,2,0,38,0,46,0\n27,0,4,0,39,0,15,0,9,0,18,0\n24,0,5,0,42,0,37,0,22,0,43,0\n28,0,35,0,21,0,13,0,26,0,40,0\n17,0,55,0,32,0,44,0,50,0,25,0\n3,0,54,0,33,0,52,0,6,0,36,0\n48,0,12,0,16,0,18,0,46,0,4,0\n42,0,47,0,30,0,2,0,27,0,34,0\n7,0,21,0,38,0,39,0,51,0,19,0\n50,0,41,0,8,0,49,0,28,0,13,0\n37,0,55,0,35,0,32,0,3,0,45,0\n1,0,23,0,26,0,15,0,24,0,22,0\n40,0,44,0,14,0,29,0,9,0,31,0\n43,0,53,0,11,0,17,0,25,0,20,0\n10,0,50,0,7,0,5,0,16,0,27,0\n55,0,4,0,30,0,28,0,52,0,37,0\n45,0,24,0,33,0,39,0,46,0,13,0\n8,0,40,0,12,0,22,0,14,0,41,0\n23,0,3,0,49,0,48,0,20,0,9,0\n21,0,51,0,43,0,36,0,44,0,29,0\n35,0,53,0,34,0,15,0,19,0,5,0\n54,0,25,0,31,0,18,0,42,0,1,0\n10,0,38,0,32,0,6,0,26,0,11,0\n2,0,7,0,28,0,17,0,47,0,9,0\n49,0,43,0,30,0,16,0,46,0,55,0\n20,0,22,0,50,0,48,0,4,0,14,0\n21,0,18,0,52,0,53,0,13,0,8,0\n44,0,32,0,1,0,10,0,19,0,27,0\n26,0,39,0,35,0,54,0,29,0,34,0\n2,0,36,0,23,0,33,0,41,0,37,0\n5,0,17,0,31,0,12,0,45,0,51,0\n47,0,25,0,24,0,40,0,15,0,38,0\n11,0,42,0,13,0,3,0,6,0,53,0\n14,0,49,0,1,0,34,0,21,0,30,0\n19,0,41,0,54,0,23,0,55,0,7,0\n46,0,52,0,9,0,36,0,5,0,50,0\n15,0,8,0,45,0,10,0,43,0,48,0\n38,0,24,0,6,0,44,0,35,0,2,0\n18,0,16,0,51,0,33,0,11,0,40,0\n20,0,4,0,3,0,39,0,47,0,31,0\n28,0,32,0,26,0,42,0,12,0,25,0\n29,0,37,0,27,0,17,0,22,0,8,0\n44,0,13,0,48,0,7,0,30,0,54,0\n55,0,10,0,34,0,51,0,9,0,53,0\n36,0,1,0,39,0,23,0,40,0,20,0\n38,0,43,0,33,0,28,0,12,0,3,0\n45,0,22,0,26,0,47,0,11,0,50,0\n16,0,2,0,4,0,25,0,29,0,35,0\n27,0,46,0,42,0,21,0,15,0,41,0\n37,0,6,0,5,0,14,0,17,0,18,0\n19,0,32,0,49,0,52,0,31,0,24,0\n34,0,40,0,1,0,33,0,55,0,44,0\n22,0,2,0,39,0,12,0,53,0,10,0\n21,0,23,0,54,0,45,0,16,0,38,0\n6,0,29,0,50,0,47,0,7,0,15,0\n42,0,4,0,32,0,8,0,5,0,51,0\n31,0,41,0,20,0,24,0,18,0,30,0\n3,0,35,0,11,0,27,0,14,0,13,0\n48,0,17,0,36,0,28,0,19,0,25,0\n37,0,49,0,9,0,46,0,26,0,43,0\n52,0,2,0,5,0,45,0,39,0,44,0\n55,0,47,0,6,0,21,0,8,0,31,0\n12,0,29,0,18,0,34,0,24,0,50,0\n33,0,36,0,15,0,7,0,14,0,32,0\n9,0,13,0,19,0,16,0,20,0,42,0\n41,0,43,0,40,0,52,0,53,0,38,0\n37,0,11,0,51,0,1,0,48,0,28,0\n25,0,3,0,30,0,54,0,49,0,22,0\n46,0,17,0,10,0,35,0,4,0,23,0\n27,0,55,0,31,0,26,0,5,0,33,0\n53,0,45,0,42,0,24,0,16,0,7,0\n37,0,20,0,15,0,12,0,44,0,21,0\n11,0,19,0,18,0,30,0,9,0,2,0\n32,0,25,0,39,0,6,0,48,0,8,0\n54,0,47,0,51,0,43,0,50,0,35,0\n28,0,14,0,29,0,27,0,23,0,52,0\n41,0,3,0,26,0,4,0,1,0,17,0\n38,0,34,0,13,0,46,0,36,0,22,0\n40,0,49,0,48,0,10,0,42,0,2,0\n50,0,39,0,53,0,31,0,37,0,7,0\n25,0,52,0,15,0,20,0,51,0,27,0\n24,0,12,0,23,0,11,0,14,0,55,0\n9,0,43,0,1,0,13,0,6,0,32,0\n44,0,18,0,26,0,28,0,40,0,46,0\n47,0,41,0,34,0,3,0,10,0,16,0\n30,0,19,0,38,0,4,0,45,0,29,0\n5,0,22,0,35,0,36,0,49,0,21,0\n33,0,8,0,9,0,17,0,54,0,15,0\n40,0,31,0,18,0,23,0,43,0,32,0\n14,0,37,0,39,0,16,0,25,0,41,0\n51,0,52,0,7,0,26,0,12,0,2,0\n34,0,6,0,22,0,28,0,20,0,45,0\n8,0,46,0,29,0,19,0,1,0,3,0\n30,0,35,0,10,0,50,0,33,0,21,0\n53,0,27,0,24,0,4,0,54,0,36,0\n55,0,5,0,13,0,47,0,48,0,38,0\n11,0,17,0,44,0,49,0,42,0,39,0\n16,0,15,0,28,0,31,0,3,0,2,0\n10,0,40,0,6,0,19,0,50,0,37,0\n25,0,1,0,22,0,9,0,7,0,35,0\n47,0,14,0,46,0,54,0,53,0,32,0\n27,0,45,0,18,0,38,0,51,0,49,0\n24,0,21,0,48,0,52,0,17,0,33,0\n36,0,12,0,30,0,42,0,8,0,26,0\n13,0,4,0,43,0,23,0,34,0,44,0\n11,0,20,0,5,0,55,0,29,0,41,0\n"
  },
  {
    "path": "schedules/55_13.csv",
    "content": "34,0,21,0,5,0,26,0,27,0,47,0\n25,0,3,0,7,0,43,0,23,0,9,0\n13,0,30,0,50,0,12,0,29,0,18,0\n1,0,24,0,10,0,20,0,19,0,54,0\n17,0,4,0,2,0,16,0,48,0,32,0\n31,0,51,0,41,0,52,0,15,0,45,0\n53,0,49,0,14,0,39,0,40,0,37,0\n6,0,33,0,38,0,36,0,35,0,8,0\n28,0,44,0,22,0,42,0,11,0,55,0\n2,0,1,0,5,0,46,0,25,0,29,0\n32,0,54,0,24,0,3,0,45,0,30,0\n41,0,27,0,12,0,4,0,14,0,37,0\n48,0,17,0,43,0,6,0,31,0,13,0\n19,0,8,0,9,0,20,0,39,0,42,0\n46,0,55,0,28,0,15,0,47,0,50,0\n51,0,18,0,34,0,16,0,33,0,22,0\n52,0,38,0,23,0,53,0,26,0,11,0\n21,0,10,0,36,0,49,0,7,0,40,0\n35,0,3,0,29,0,44,0,9,0,5,0\n54,1,55,0,47,0,17,1,27,0,8,0\n50,1,37,0,42,0,15,1,24,0,51,0\n16,0,34,0,19,0,14,1,6,0,23,0\n18,0,41,0,7,0,53,0,52,0,32,0\n4,0,31,0,30,0,21,0,2,0,11,0\n39,0,33,0,44,0,46,0,40,0,43,0\n25,0,38,0,48,0,28,0,10,0,12,0\n20,0,26,0,13,0,35,0,45,0,49,0\n1,0,22,0,14,0,36,0,18,0,23,0\n47,0,4,0,34,0,11,0,51,0,3,0\n41,0,29,0,53,0,8,0,54,0,31,0\n39,0,19,0,15,0,25,0,21,0,43,0\n17,0,20,0,16,0,37,0,55,0,26,0\n48,0,28,0,24,0,40,0,33,0,27,0\n36,0,5,0,50,0,7,0,32,0,6,0\n42,0,49,0,52,0,35,0,38,0,1,0\n30,0,9,0,46,0,22,0,13,0,10,0\n44,0,2,0,34,0,45,0,12,0,14,0\n23,0,40,0,21,0,37,0,54,0,33,0\n26,0,17,0,7,0,51,0,6,0,28,0\n31,0,50,0,19,0,3,0,5,0,27,0\n24,0,8,0,46,0,32,0,43,0,22,0\n20,0,30,0,2,0,44,0,41,0,38,0\n25,0,11,0,45,0,18,0,48,0,42,0\n39,0,55,0,1,0,10,0,35,0,4,0\n15,0,53,0,36,0,13,0,16,0,29,0\n12,0,49,0,54,0,9,0,47,0,52,0\n31,0,28,0,26,0,46,0,19,0,32,0\n44,0,37,0,51,0,18,0,50,0,8,0\n40,0,14,0,5,0,22,0,55,0,4,0\n25,0,27,0,6,0,53,0,30,0,23,0\n43,0,12,0,13,0,16,0,52,0,1,0\n35,0,47,0,20,0,29,0,7,0,48,0\n39,0,49,0,21,0,41,0,2,0,24,0\n36,0,33,0,45,0,10,0,15,0,11,0\n9,0,3,0,38,0,42,0,17,0,34,0\n4,0,32,0,26,0,44,0,13,0,25,0\n12,0,19,0,48,0,53,0,55,0,51,0\n27,0,54,0,23,0,18,0,49,0,5,0\n24,0,20,0,31,0,36,0,39,0,47,0\n42,0,1,0,40,0,41,0,6,0,50,0\n43,0,10,0,33,0,9,0,2,0,14,0\n22,0,46,0,11,0,17,0,45,0,29,0\n8,0,7,0,15,0,30,0,34,0,37,0\n3,0,28,0,16,0,21,0,35,0,52,0\n38,0,42,0,51,0,53,0,39,0,31,0\n32,0,33,0,25,0,20,0,50,0,55,0\n17,0,54,0,6,0,10,0,44,0,14,0\n8,0,48,0,45,0,4,0,24,0,49,0\n35,0,5,0,11,0,43,0,2,0,37,0\n36,0,13,0,28,0,23,0,34,0,41,0\n52,0,12,0,22,0,21,0,29,0,19,0\n38,0,16,0,46,0,27,0,7,0,9,0\n40,0,26,0,3,0,15,0,1,0,30,0\n18,0,4,0,33,0,47,0,31,0,43,0\n54,0,50,0,53,0,34,0,20,0,11,0\n39,0,12,0,8,0,5,0,23,0,17,0\n52,0,41,0,46,0,25,0,16,0,24,0\n38,0,49,0,13,0,55,0,19,0,14,0\n40,0,32,0,10,0,29,0,27,0,42,0\n51,0,9,0,36,0,44,0,21,0,48,0\n15,0,26,0,6,0,7,0,2,0,22,0\n37,0,45,0,1,0,28,0,30,0,47,0\n18,0,35,0,53,0,3,0,46,0,34,0\n11,0,32,0,29,0,39,0,14,0,38,0\n52,0,27,0,10,0,44,0,36,0,4,0\n43,0,54,0,41,0,26,0,48,0,50,0\n8,0,2,0,33,0,7,0,1,0,19,0\n24,0,30,0,42,0,16,0,5,0,12,0\n51,0,47,0,40,0,23,0,25,0,35,0\n21,0,9,0,18,0,45,0,55,0,6,0\n37,0,49,0,22,0,17,0,31,0,15,0\n13,0,3,0,14,0,28,0,20,0,8,0\n54,0,7,0,46,0,42,0,12,0,4,0\n32,0,50,0,2,0,34,0,40,0,52,0\n55,0,30,0,29,0,51,0,45,0,43,0\n25,0,47,0,37,0,38,0,22,0,36,0\n23,0,1,0,26,0,31,0,10,0,48,0\n15,0,28,0,5,0,20,0,44,0,18,0\n13,0,53,0,17,0,24,0,21,0,33,0\n27,0,11,0,19,0,35,0,41,0,9,0\n6,0,49,0,16,0,39,0,3,0,50,0\n23,0,55,0,8,0,36,0,52,0,2,0\n43,0,15,0,4,0,28,0,38,0,54,0\n34,0,14,0,48,0,42,0,46,0,21,0\n5,0,10,0,47,0,51,0,32,0,13,0\n44,0,16,0,30,0,33,0,49,0,19,0\n35,0,7,0,39,0,41,0,3,0,22,0\n45,0,27,0,53,0,17,0,25,0,1,0\n26,0,29,0,9,0,18,0,37,0,24,0\n12,0,31,0,11,0,20,0,40,0,6,0\n21,0,16,0,50,0,38,0,10,0,8,0\n30,0,14,0,52,0,48,0,5,0,39,0\n51,0,27,0,22,0,2,0,54,0,13,0\n44,0,32,0,15,0,9,0,53,0,1,0\n18,0,17,0,47,0,19,0,40,0,41,0\n42,0,36,0,3,0,12,0,26,0,33,0\n31,0,25,0,55,0,11,0,7,0,24,0\n29,0,6,0,43,0,49,0,34,0,28,0\n23,0,20,0,37,0,46,0,4,0,45,0\n35,0,17,0,50,0,54,0,15,0,14,0\n"
  },
  {
    "path": "schedules/55_14.csv",
    "content": "28,0,33,0,53,0,55,0,49,0,51,0\n43,0,44,0,20,0,13,0,8,0,37,0\n38,0,4,0,12,0,32,0,31,0,3,0\n5,0,21,0,30,0,36,0,50,0,7,0\n40,0,6,0,14,0,52,0,15,0,34,0\n29,0,9,0,17,0,18,0,54,0,48,0\n2,0,24,0,19,0,11,0,41,0,16,0\n46,0,42,0,26,0,27,0,25,0,39,0\n47,0,35,0,22,0,10,0,45,0,23,0\n12,0,8,0,6,0,1,0,28,0,7,0\n14,0,31,0,54,0,38,0,3,0,9,0\n53,0,30,0,24,0,15,0,19,0,20,0\n48,0,4,0,2,0,42,0,43,0,5,0\n10,0,51,0,35,0,37,0,26,0,55,0\n1,0,45,0,25,0,39,0,50,0,52,0\n16,0,33,0,21,0,27,0,34,0,17,0\n13,0,22,0,44,0,11,0,49,0,47,0\n23,0,36,0,18,0,32,0,46,0,41,0\n40,0,43,0,31,0,29,0,24,0,51,0\n3,1,2,0,26,0,6,1,1,0,5,0\n7,1,4,0,35,0,17,1,33,0,20,0\n47,0,52,0,38,0,37,0,9,0,30,0\n53,0,50,0,41,0,12,0,46,0,48,0\n15,0,29,0,39,0,22,0,25,0,19,0\n44,0,55,0,23,0,8,0,21,0,14,0\n11,0,18,0,32,0,42,0,34,0,10,0\n54,0,45,0,36,0,13,0,27,0,40,0\n16,0,28,0,26,0,49,0,30,0,38,0\n46,0,35,0,5,0,47,0,43,0,9,0\n25,0,48,0,6,0,37,0,14,0,4,0\n32,0,22,0,10,0,7,0,55,0,24,0\n31,0,39,0,8,0,11,0,52,0,27,0\n51,0,17,0,50,0,2,0,36,0,20,0\n3,0,41,0,34,0,54,0,28,0,13,0\n45,0,44,0,33,0,53,0,29,0,42,0\n21,0,12,0,1,0,49,0,19,0,40,0\n18,0,16,0,24,0,15,0,23,0,26,0\n46,0,11,0,14,0,20,0,27,0,22,0\n17,0,5,0,13,0,30,0,51,0,32,0\n28,0,10,0,39,0,34,0,43,0,48,0\n19,0,50,0,33,0,52,0,1,0,3,0\n16,0,9,0,12,0,4,0,25,0,21,0\n40,0,54,0,7,0,53,0,37,0,23,0\n42,0,2,0,15,0,36,0,8,0,47,0\n35,0,41,0,44,0,45,0,6,0,31,0\n18,0,29,0,49,0,55,0,38,0,20,0\n11,0,48,0,51,0,32,0,27,0,1,0\n43,0,37,0,22,0,3,0,23,0,50,0\n9,0,7,0,34,0,2,0,12,0,47,0\n28,0,15,0,41,0,52,0,35,0,42,0\n4,0,49,0,54,0,10,0,26,0,44,0\n38,0,31,0,17,0,40,0,45,0,16,0\n6,0,13,0,30,0,55,0,25,0,46,0\n39,0,24,0,5,0,18,0,53,0,21,0\n36,0,19,0,14,0,8,0,29,0,33,0\n47,0,37,0,27,0,2,0,1,0,41,0\n38,0,51,0,7,0,4,0,34,0,50,0\n17,0,12,0,52,0,43,0,35,0,15,0\n49,0,23,0,13,0,9,0,42,0,54,0\n29,0,14,0,16,0,39,0,6,0,46,0\n5,0,3,0,8,0,25,0,10,0,24,0\n18,0,28,0,19,0,36,0,40,0,44,0\n33,0,55,0,48,0,11,0,45,0,30,0\n53,0,32,0,20,0,21,0,26,0,31,0\n22,0,1,0,29,0,41,0,13,0,4,0\n16,0,42,0,8,0,37,0,51,0,54,0\n47,0,14,0,50,0,24,0,49,0,28,0\n2,0,45,0,34,0,46,0,19,0,23,0\n6,0,20,0,52,0,36,0,3,0,53,0\n17,0,44,0,21,0,48,0,22,0,38,0\n7,0,30,0,27,0,39,0,43,0,18,0\n15,0,40,0,9,0,11,0,55,0,5,0\n25,0,32,0,26,0,33,0,35,0,12,0\n31,0,23,0,42,0,10,0,50,0,13,0\n49,0,22,0,45,0,6,0,2,0,51,0\n39,0,17,0,4,0,8,0,44,0,34,0\n53,0,7,0,5,0,3,0,29,0,11,0\n41,0,20,0,47,0,28,0,40,0,25,0\n43,0,55,0,1,0,38,0,54,0,19,0\n36,0,27,0,10,0,30,0,16,0,35,0\n48,0,37,0,52,0,18,0,12,0,26,0\n21,0,15,0,46,0,31,0,33,0,24,0\n32,0,14,0,34,0,9,0,20,0,45,0\n3,0,54,0,55,0,39,0,2,0,44,0\n22,0,42,0,41,0,5,0,38,0,16,0\n40,0,29,0,50,0,8,0,26,0,35,0\n6,0,27,0,33,0,13,0,24,0,12,0\n25,0,31,0,15,0,7,0,48,0,49,0\n19,0,53,0,10,0,28,0,32,0,37,0\n30,0,1,0,4,0,17,0,14,0,23,0\n21,0,52,0,51,0,47,0,18,0,46,0\n11,0,9,0,26,0,36,0,43,0,29,0\n20,0,3,0,42,0,40,0,48,0,35,0\n50,0,32,0,45,0,16,0,54,0,15,0\n30,0,34,0,12,0,2,0,22,0,31,0\n27,0,41,0,21,0,10,0,47,0,33,0\n6,0,38,0,24,0,23,0,9,0,39,0\n36,0,51,0,25,0,7,0,14,0,44,0\n37,0,1,0,11,0,4,0,46,0,28,0\n49,0,52,0,53,0,43,0,17,0,8,0\n13,0,55,0,19,0,5,0,18,0,50,0\n10,0,30,0,29,0,42,0,40,0,12,0\n23,0,38,0,27,0,51,0,15,0,3,0\n44,0,48,0,28,0,24,0,22,0,9,0\n21,0,11,0,20,0,35,0,6,0,54,0\n47,0,25,0,34,0,17,0,53,0,55,0\n36,0,37,0,39,0,5,0,49,0,31,0\n18,0,33,0,1,0,16,0,2,0,7,0\n46,0,45,0,8,0,4,0,19,0,26,0\n43,0,32,0,13,0,14,0,41,0,52,0\n54,0,30,0,17,0,6,0,11,0,50,0\n34,0,23,0,28,0,29,0,5,0,48,0\n40,0,37,0,20,0,39,0,22,0,33,0\n25,0,12,0,7,0,45,0,18,0,51,0\n14,0,26,0,49,0,41,0,19,0,31,0\n35,0,38,0,13,0,8,0,53,0,2,0\n16,0,43,0,3,0,47,0,21,0,32,0\n55,0,36,0,52,0,4,0,24,0,42,0\n9,0,46,0,10,0,1,0,44,0,15,0\n27,0,31,0,18,0,28,0,22,0,6,0\n11,0,40,0,2,0,12,0,53,0,14,0\n3,0,37,0,49,0,29,0,21,0,45,0\n54,0,43,0,23,0,33,0,25,0,5,0\n46,0,52,0,13,0,7,0,17,0,10,0\n24,0,35,0,36,0,34,0,38,0,1,0\n48,0,20,0,26,0,16,0,55,0,47,0\n50,0,15,0,27,0,4,0,44,0,32,0\n51,0,8,0,9,0,30,0,41,0,39,0\n19,0,3,0,7,0,42,0,6,0,17,0\n"
  },
  {
    "path": "schedules/55_2.csv",
    "content": "37,0,19,0,9,0,17,0,48,0,8,0\n2,0,18,0,39,0,34,0,28,0,49,0\n7,0,26,0,22,0,3,0,16,0,30,0\n44,0,46,0,27,0,42,0,20,0,15,0\n40,0,24,0,1,0,13,0,6,0,4,0\n38,0,32,0,31,0,12,0,25,0,33,0\n54,0,45,0,50,0,51,0,41,0,23,0\n53,0,47,0,55,0,11,0,10,0,43,0\n29,0,21,0,5,0,14,0,36,0,52,0\n26,0,8,0,20,0,35,0,39,0,4,0\n42,0,6,0,3,0,19,0,18,0,38,0\n15,0,48,0,1,0,2,0,7,0,45,0\n44,0,41,0,16,0,9,0,55,0,31,0\n22,0,28,0,12,0,27,0,29,0,43,0\n49,0,17,0,36,0,54,0,24,0,53,0\n11,0,13,0,32,0,37,0,23,0,21,0\n10,0,14,0,33,0,30,0,50,0,40,0\n34,0,35,0,5,0,47,0,25,0,51,0\n52,0,8,1,45,1,46,0,2,1,39,1\n"
  },
  {
    "path": "schedules/55_3.csv",
    "content": "20,0,28,0,39,0,38,0,1,0,33,0\n6,0,55,0,18,0,11,0,5,0,14,0\n35,0,47,0,52,0,45,0,7,0,37,0\n4,0,54,0,3,0,8,0,22,0,46,0\n44,0,23,0,16,0,26,0,29,0,50,0\n10,0,12,0,27,0,25,0,30,0,41,0\n32,0,53,0,31,0,43,0,2,0,40,0\n34,0,17,0,42,0,51,0,36,0,49,0\n9,0,19,0,13,0,21,0,48,0,15,0\n24,0,45,0,1,0,54,0,29,0,18,0\n55,1,3,0,20,0,26,1,7,0,12,0\n11,0,30,0,38,0,46,1,53,0,47,0\n10,0,22,0,36,0,6,0,43,0,28,0\n5,0,9,0,37,0,23,0,39,0,32,0\n8,0,48,0,49,0,44,0,41,0,31,0\n51,0,15,0,4,0,16,0,2,0,14,0\n17,0,21,0,40,0,50,0,27,0,35,0\n52,0,25,0,24,0,33,0,34,0,19,0\n42,0,29,0,32,0,13,0,46,0,28,0\n48,0,54,0,43,0,5,0,26,0,30,0\n45,0,41,0,15,0,36,0,38,0,3,0\n1,0,49,0,16,0,35,0,9,0,55,0\n53,0,33,0,18,0,10,0,50,0,51,0\n12,0,23,0,6,0,4,0,17,0,52,0\n14,0,47,0,13,0,24,0,27,0,44,0\n7,0,25,0,8,0,2,0,39,0,21,0\n22,0,19,0,40,0,20,0,11,0,42,0\n37,0,31,0,26,0,34,0,55,0,46,0\n"
  },
  {
    "path": "schedules/55_4.csv",
    "content": "17,0,25,0,19,0,27,0,36,0,54,0\n7,0,45,0,22,0,11,0,20,0,42,0\n3,0,34,0,29,0,21,0,47,0,13,0\n43,0,30,0,28,0,4,0,40,0,26,0\n10,0,1,0,31,0,38,0,44,0,55,0\n23,0,53,0,12,0,51,0,52,0,8,0\n15,0,41,0,16,0,46,0,37,0,6,0\n14,0,50,0,32,0,39,0,33,0,18,0\n24,0,49,0,48,0,5,0,2,0,35,0\n44,0,28,0,20,0,9,0,13,0,25,0\n10,0,36,0,47,0,4,0,53,0,7,0\n26,0,52,0,16,0,21,0,22,0,31,0\n54,0,11,0,39,0,40,0,1,0,34,0\n17,0,12,0,45,0,49,0,55,0,14,0\n2,0,51,0,46,0,3,0,50,0,19,0\n5,0,43,0,37,0,18,0,29,0,23,0\n38,0,8,0,9,0,41,0,32,0,24,0\n42,0,48,0,33,0,6,0,27,0,30,0\n35,0,7,0,13,0,15,0,40,0,17,0\n1,1,20,0,53,0,50,1,26,0,49,0\n16,0,5,0,36,0,39,0,28,0,51,0\n25,0,55,0,23,0,24,0,22,0,47,0\n37,0,44,0,8,0,14,0,19,0,48,0\n6,0,45,0,54,0,29,0,10,0,32,0\n52,0,46,0,38,0,43,0,27,0,34,0\n9,0,31,0,15,0,4,0,3,0,33,0\n21,0,11,0,35,0,30,0,18,0,12,0\n41,0,47,0,1,0,2,0,42,0,17,0\n26,0,51,0,25,0,29,0,14,0,7,0\n27,0,40,0,44,0,45,0,50,0,16,0\n3,0,32,0,55,0,20,0,52,0,5,0\n19,0,15,0,30,0,38,0,22,0,53,0\n34,0,18,0,48,0,36,0,31,0,41,0\n49,0,8,0,13,0,10,0,11,0,33,0\n43,0,6,0,39,0,12,0,9,0,2,0\n46,0,54,0,42,0,28,0,23,0,35,0\n21,0,4,0,50,0,37,0,24,0,1,0\n"
  },
  {
    "path": "schedules/55_5.csv",
    "content": "35,0,11,0,42,0,10,0,17,0,40,0\n49,0,16,0,38,0,22,0,36,0,14,0\n3,0,8,0,43,0,32,0,12,0,52,0\n50,0,29,0,33,0,45,0,54,0,20,0\n41,0,15,0,23,0,47,0,24,0,19,0\n28,0,55,0,44,0,18,0,53,0,5,0\n7,0,25,0,51,0,31,0,1,0,48,0\n30,0,39,0,46,0,9,0,26,0,37,0\n6,0,27,0,2,0,21,0,34,0,4,0\n12,0,11,0,20,0,13,0,38,0,15,0\n23,0,33,0,32,0,53,0,42,0,36,0\n8,0,40,0,28,0,16,0,1,0,54,0\n44,0,29,0,22,0,48,0,30,0,19,0\n7,0,24,0,43,0,55,0,9,0,27,0\n35,0,18,0,26,0,6,0,41,0,14,0\n13,0,31,0,50,0,21,0,5,0,37,0\n17,0,4,0,52,0,47,0,45,0,51,0\n25,0,3,0,10,0,49,0,2,0,39,0\n34,0,23,0,54,0,46,0,7,0,44,0\n20,1,18,0,1,0,32,0,22,0,24,0\n42,0,9,0,48,0,38,0,41,0,21,0\n45,0,14,0,37,0,53,0,40,0,43,0\n27,0,26,0,47,0,10,0,12,0,31,0\n19,0,51,0,28,0,34,0,11,0,49,0\n6,0,13,0,46,0,17,0,3,0,16,0\n55,0,4,0,36,0,25,0,50,0,30,0\n5,0,15,0,33,0,39,0,8,0,35,0\n52,0,2,0,9,0,29,0,40,0,23,0\n38,0,19,0,54,0,31,0,43,0,18,0\n41,0,53,0,20,0,51,0,16,0,10,0\n24,0,36,0,21,0,26,0,17,0,28,0\n22,0,25,0,8,0,45,0,13,0,27,0\n34,0,37,0,3,0,29,0,47,0,35,0\n12,0,49,0,55,0,6,0,33,0,48,0\n52,0,44,0,39,0,1,0,50,0,14,0\n32,0,7,0,30,0,11,0,5,0,2,0\n4,0,46,0,31,0,42,0,15,0,28,0\n13,0,36,0,10,0,51,0,29,0,43,0\n20,0,17,0,49,0,37,0,27,0,23,0\n18,0,21,0,16,0,52,0,33,0,25,0\n40,0,6,0,47,0,44,0,32,0,38,0\n1,0,5,0,9,0,19,0,4,0,12,0\n48,0,45,0,46,0,2,0,35,0,24,0\n54,0,22,0,11,0,55,0,41,0,39,0\n53,0,15,0,26,0,50,0,7,0,3,0\n34,0,8,0,14,0,42,0,30,0,20,0\n"
  },
  {
    "path": "schedules/55_6.csv",
    "content": "18,0,5,0,32,0,40,0,25,0,8,0\n44,0,39,0,50,0,22,0,7,0,17,0\n15,0,26,0,45,0,37,0,47,0,6,0\n49,0,2,0,11,0,35,0,54,0,20,0\n27,0,42,0,31,0,48,0,36,0,28,0\n21,0,12,0,43,0,51,0,9,0,23,0\n46,0,14,0,55,0,13,0,29,0,38,0\n24,0,53,0,19,0,10,0,3,0,41,0\n34,0,4,0,52,0,33,0,1,0,16,0\n30,0,37,0,2,0,42,0,44,0,40,0\n6,0,39,0,8,0,27,0,54,0,51,0\n7,0,11,0,14,0,31,0,21,0,32,0\n18,0,19,0,26,0,49,0,12,0,22,0\n16,0,53,0,10,0,50,0,55,0,48,0\n33,0,46,0,25,0,43,0,45,0,41,0\n38,0,52,0,23,0,47,0,30,0,5,0\n13,0,3,0,9,0,28,0,35,0,4,0\n15,0,36,0,29,0,24,0,17,0,1,0\n34,0,14,0,48,0,20,0,19,0,37,0\n51,0,26,0,50,0,2,0,33,0,31,0\n32,0,12,0,54,0,53,0,52,0,44,0\n3,0,16,0,40,0,49,0,43,0,39,0\n23,0,15,0,18,0,27,0,13,0,41,0\n46,0,4,0,7,0,36,0,10,0,8,0\n5,0,42,0,45,0,9,0,29,0,20,0\n1,0,30,0,55,0,21,0,6,0,22,0\n28,0,47,0,25,0,34,0,24,0,11,0\n17,0,35,0,51,0,38,0,16,0,37,0\n8,0,43,0,32,0,2,0,48,0,15,0\n20,0,41,0,12,0,39,0,4,0,31,0\n26,0,1,0,53,0,13,0,40,0,7,0\n54,0,29,0,33,0,36,0,47,0,18,0\n28,0,50,0,5,0,46,0,19,0,6,0\n23,0,35,0,44,0,24,0,25,0,55,0\n30,0,45,0,27,0,14,0,17,0,3,0\n9,0,34,0,22,0,10,0,38,0,11,0\n42,0,49,0,41,0,21,0,52,0,8,0\n6,0,2,0,7,0,16,0,12,0,29,0\n31,0,44,0,47,0,13,0,19,0,43,0\n40,0,14,0,4,0,50,0,15,0,54,0\n22,0,24,0,27,0,5,0,33,0,37,0\n35,0,32,0,34,0,26,0,46,0,42,0\n36,0,38,0,21,0,25,0,53,0,20,0\n1,0,11,0,39,0,45,0,23,0,48,0\n17,0,52,0,9,0,3,0,18,0,55,0\n49,0,30,0,10,0,51,0,28,0,15,0\n22,0,16,0,41,0,47,0,32,0,14,0\n4,0,19,0,29,0,21,0,25,0,27,0\n39,0,13,0,36,0,34,0,5,0,2,0\n50,0,38,0,12,0,42,0,3,0,11,0\n48,0,8,0,24,0,30,0,26,0,9,0\n43,0,37,0,28,0,54,0,55,0,7,0\n17,0,33,0,6,0,23,0,49,0,53,0\n31,0,52,0,10,0,40,0,35,0,45,0\n51,0,20,0,46,0,18,0,1,0,44,0\n"
  },
  {
    "path": "schedules/55_7.csv",
    "content": "12,0,1,0,23,0,26,0,24,0,22,0\n7,0,4,0,9,0,46,0,48,0,2,0\n47,0,37,0,42,0,41,0,36,0,15,0\n55,0,31,0,13,0,30,0,28,0,52,0\n18,0,33,0,40,0,19,0,20,0,38,0\n21,0,14,0,39,0,27,0,35,0,8,0\n44,0,17,0,29,0,45,0,50,0,32,0\n6,0,11,0,34,0,53,0,49,0,3,0\n25,0,54,0,5,0,43,0,10,0,16,0\n51,0,2,0,18,0,12,0,47,0,52,0\n28,0,9,0,8,0,35,0,24,0,33,0\n36,0,45,0,39,0,38,0,31,0,1,0\n3,0,21,0,15,0,19,0,48,0,44,0\n49,0,32,0,23,0,54,0,20,0,46,0\n10,0,53,0,14,0,51,0,55,0,43,0\n41,0,29,0,5,0,13,0,40,0,34,0\n30,0,22,0,25,0,11,0,37,0,4,0\n26,0,27,0,6,0,7,0,50,0,42,0\n17,0,49,0,12,0,16,0,33,0,8,0\n18,1,53,0,24,0,15,1,44,0,31,0\n43,1,35,0,34,0,32,1,46,0,47,0\n9,1,22,0,19,0,10,0,29,0,36,0\n2,0,54,0,30,0,26,0,28,0,40,0\n41,0,52,0,11,0,6,0,21,0,45,0\n50,0,48,0,25,0,39,0,5,0,23,0\n27,0,37,0,55,0,51,0,1,0,17,0\n16,0,3,0,14,0,4,0,42,0,20,0\n13,0,38,0,44,0,7,0,43,0,26,0\n35,0,40,0,32,0,52,0,33,0,53,0\n54,0,19,0,47,0,48,0,11,0,45,0\n23,0,22,0,8,0,41,0,31,0,51,0\n16,0,36,0,30,0,24,0,34,0,21,0\n3,0,39,0,7,0,12,0,29,0,55,0\n50,0,46,0,14,0,25,0,13,0,18,0\n27,0,20,0,15,0,4,0,5,0,28,0\n10,0,2,0,38,0,6,0,37,0,17,0\n42,0,49,0,44,0,9,0,1,0,52,0\n40,0,11,0,43,0,12,0,39,0,24,0\n8,0,46,0,55,0,45,0,16,0,22,0\n4,0,50,0,33,0,54,0,51,0,34,0\n18,0,26,0,17,0,41,0,3,0,35,0\n37,0,19,0,31,0,49,0,13,0,7,0\n48,0,6,0,15,0,20,0,14,0,1,0\n29,0,9,0,38,0,47,0,23,0,30,0\n28,0,42,0,32,0,10,0,21,0,5,0\n36,0,53,0,27,0,2,0,25,0,3,0\n39,0,34,0,4,0,45,0,18,0,37,0\n7,0,24,0,52,0,41,0,14,0,54,0\n55,0,15,0,35,0,38,0,49,0,50,0\n1,0,48,0,8,0,32,0,10,0,13,0\n51,0,26,0,9,0,28,0,11,0,16,0\n53,0,12,0,19,0,30,0,46,0,27,0\n36,0,43,0,42,0,40,0,17,0,23,0\n33,0,5,0,22,0,6,0,44,0,47,0\n21,0,2,0,20,0,31,0,25,0,29,0\n4,0,24,0,10,0,39,0,26,0,49,0\n48,0,41,0,32,0,38,0,16,0,27,0\n43,0,52,0,50,0,8,0,3,0,37,0\n54,0,6,0,18,0,9,0,55,0,36,0\n51,0,45,0,40,0,7,0,25,0,15,0\n44,0,28,0,12,0,23,0,34,0,14,0\n47,0,20,0,17,0,13,0,21,0,53,0\n33,0,31,0,46,0,42,0,11,0,29,0\n1,0,5,0,2,0,30,0,35,0,19,0\n18,0,43,0,9,0,22,0,15,0,32,0\n"
  },
  {
    "path": "schedules/55_8.csv",
    "content": "45,0,30,0,21,0,43,0,39,0,19,0\n42,0,23,0,44,0,24,0,2,0,11,0\n17,0,54,0,31,0,1,0,20,0,49,0\n18,0,16,0,36,0,6,0,10,0,53,0\n38,0,55,0,13,0,27,0,14,0,9,0\n34,0,4,0,28,0,52,0,50,0,26,0\n22,0,47,0,12,0,25,0,41,0,29,0\n5,0,3,0,8,0,15,0,40,0,51,0\n37,0,32,0,33,0,48,0,35,0,46,0\n10,0,14,0,24,0,7,0,20,0,39,0\n11,0,27,0,1,0,4,0,18,0,30,0\n42,0,26,0,29,0,55,0,17,0,43,0\n6,0,9,0,41,0,19,0,31,0,5,0\n33,0,28,0,3,0,37,0,44,0,53,0\n36,0,34,0,50,0,48,0,25,0,8,0\n49,0,32,0,16,0,23,0,13,0,22,0\n12,0,15,0,35,0,21,0,38,0,54,0\n45,0,40,0,52,0,2,0,46,0,7,0\n47,0,26,0,6,0,51,0,37,0,30,0\n10,1,17,0,27,0,9,1,24,0,48,0\n50,1,29,0,39,0,49,1,31,0,18,0\n15,0,8,0,13,0,33,0,41,0,20,0\n55,0,46,0,34,0,11,0,16,0,21,0\n32,0,35,0,25,0,7,0,40,0,53,0\n45,0,28,0,23,0,42,0,36,0,1,0\n44,0,5,0,22,0,14,0,54,0,4,0\n19,0,2,0,47,0,3,0,38,0,43,0\n12,0,11,0,49,0,51,0,52,0,8,0\n21,0,26,0,37,0,10,0,40,0,13,0\n53,0,20,0,29,0,50,0,6,0,1,0\n44,0,9,0,30,0,41,0,34,0,32,0\n22,0,27,0,31,0,43,0,28,0,46,0\n5,0,24,0,42,0,52,0,33,0,38,0\n14,0,25,0,18,0,23,0,35,0,19,0\n54,0,3,0,51,0,17,0,45,0,16,0\n39,0,36,0,2,0,15,0,55,0,47,0\n48,0,7,0,43,0,4,0,12,0,9,0\n53,0,52,0,24,0,8,0,26,0,30,0\n19,0,34,0,38,0,29,0,49,0,46,0\n40,0,33,0,14,0,16,0,50,0,54,0\n39,0,6,0,13,0,35,0,3,0,11,0\n51,0,36,0,7,0,41,0,42,0,27,0\n10,0,15,0,1,0,25,0,44,0,12,0\n4,0,48,0,31,0,23,0,21,0,2,0\n22,0,45,0,20,0,5,0,55,0,37,0\n28,0,17,0,32,0,47,0,18,0,8,0\n9,0,3,0,46,0,14,0,36,0,26,0\n35,0,43,0,52,0,16,0,44,0,41,0\n51,0,23,0,4,0,38,0,39,0,53,0\n49,0,25,0,6,0,45,0,27,0,33,0\n29,0,54,0,13,0,10,0,28,0,2,0\n40,0,37,0,24,0,12,0,34,0,31,0\n47,0,7,0,21,0,18,0,1,0,5,0\n19,0,50,0,15,0,22,0,11,0,17,0\n55,0,20,0,42,0,32,0,48,0,30,0\n8,0,54,0,46,0,39,0,9,0,25,0\n41,0,2,0,53,0,34,0,49,0,14,0\n24,0,4,0,35,0,29,0,36,0,28,0\n38,0,26,0,17,0,21,0,6,0,22,0\n31,0,37,0,16,0,7,0,15,0,42,0\n19,0,52,0,1,0,10,0,32,0,55,0\n23,0,30,0,27,0,3,0,50,0,12,0\n20,0,40,0,11,0,43,0,47,0,33,0\n18,0,48,0,44,0,13,0,45,0,51,0\n5,0,2,0,9,0,16,0,25,0,28,0\n4,0,10,0,7,0,55,0,8,0,6,0\n21,0,49,0,50,0,32,0,24,0,3,0\n31,0,20,0,38,0,52,0,11,0,36,0\n43,0,54,0,41,0,18,0,37,0,23,0\n12,0,5,0,46,0,53,0,17,0,13,0\n14,0,29,0,30,0,48,0,45,0,15,0\n44,0,27,0,39,0,19,0,26,0,40,0\n33,0,35,0,1,0,51,0,34,0,22,0\n47,0,10,0,50,0,42,0,9,0,49,0\n"
  },
  {
    "path": "schedules/55_9.csv",
    "content": "54,0,20,0,16,0,47,0,50,0,41,0\n7,0,30,0,42,0,51,0,17,0,6,0\n15,0,39,0,19,0,37,0,26,0,40,0\n48,0,2,0,4,0,43,0,12,0,23,0\n29,0,49,0,53,0,52,0,10,0,34,0\n9,0,28,0,32,0,8,0,46,0,44,0\n18,0,14,0,27,0,35,0,33,0,1,0\n21,0,45,0,24,0,25,0,36,0,22,0\n5,0,3,0,55,0,31,0,11,0,38,0\n13,0,52,0,15,0,39,0,50,0,42,0\n46,0,37,0,4,0,7,0,54,0,49,0\n26,0,27,0,17,0,28,0,29,0,18,0\n22,0,12,0,10,0,16,0,25,0,44,0\n6,0,30,0,2,0,35,0,48,0,34,0\n38,0,24,0,5,0,41,0,23,0,40,0\n9,0,20,0,51,0,55,0,14,0,31,0\n13,0,53,0,1,0,33,0,21,0,3,0\n47,0,36,0,45,0,43,0,19,0,32,0\n8,0,52,0,7,0,11,0,18,0,16,0\n12,1,29,0,50,0,46,1,22,0,6,0\n24,1,27,0,23,0,10,0,49,0,51,0\n48,0,9,0,37,0,41,0,38,0,33,0\n36,0,39,0,17,0,14,0,2,0,53,0\n25,0,1,0,19,0,42,0,28,0,55,0\n43,0,54,0,34,0,8,0,15,0,31,0\n44,0,26,0,30,0,11,0,47,0,21,0\n13,0,4,0,35,0,32,0,20,0,5,0\n45,0,40,0,46,0,3,0,52,0,14,0\n10,0,36,0,50,0,38,0,51,0,48,0\n49,0,16,0,24,0,31,0,19,0,28,0\n27,0,54,0,42,0,43,0,22,0,9,0\n29,0,33,0,5,0,39,0,55,0,30,0\n11,0,8,0,25,0,41,0,35,0,37,0\n2,0,15,0,21,0,7,0,20,0,45,0\n44,0,47,0,40,0,53,0,6,0,4,0\n34,0,26,0,32,0,1,0,23,0,3,0\n17,0,18,0,19,0,13,0,12,0,38,0\n37,0,25,0,43,0,50,0,30,0,14,0\n16,0,21,0,29,0,54,0,35,0,24,0\n55,0,52,0,49,0,22,0,8,0,47,0\n42,0,41,0,1,0,10,0,2,0,44,0\n33,0,11,0,51,0,32,0,46,0,15,0\n34,0,12,0,17,0,5,0,39,0,9,0\n20,0,40,0,3,0,48,0,7,0,28,0\n18,0,4,0,31,0,27,0,45,0,53,0\n23,0,26,0,6,0,36,0,13,0,37,0\n32,0,21,0,51,0,52,0,41,0,29,0\n49,0,38,0,47,0,2,0,33,0,25,0\n44,0,1,0,24,0,5,0,43,0,7,0\n15,0,28,0,35,0,12,0,9,0,53,0\n13,0,55,0,16,0,36,0,27,0,46,0\n4,0,39,0,54,0,6,0,18,0,3,0\n14,0,11,0,34,0,48,0,19,0,22,0\n8,0,20,0,23,0,45,0,17,0,42,0\n50,0,31,0,26,0,30,0,40,0,10,0\n13,0,2,0,51,0,28,0,16,0,37,0\n15,0,3,0,7,0,27,0,25,0,47,0\n33,0,19,0,9,0,29,0,22,0,4,0\n38,0,53,0,32,0,14,0,6,0,24,0\n18,0,49,0,42,0,50,0,21,0,5,0\n34,0,45,0,41,0,26,0,55,0,46,0\n20,0,43,0,39,0,10,0,23,0,11,0\n30,0,36,0,12,0,8,0,54,0,1,0\n31,0,52,0,35,0,17,0,48,0,44,0\n40,0,22,0,2,0,18,0,25,0,32,0\n37,0,42,0,38,0,27,0,34,0,16,0\n28,0,5,0,6,0,33,0,10,0,45,0\n43,0,8,0,14,0,13,0,29,0,26,0\n50,0,11,0,15,0,17,0,4,0,24,0\n54,0,21,0,12,0,51,0,55,0,40,0\n48,0,31,0,47,0,46,0,39,0,1,0\n7,0,23,0,19,0,41,0,53,0,30,0\n44,0,35,0,20,0,49,0,3,0,36,0\n9,0,27,0,6,0,52,0,24,0,2,0\n45,0,14,0,32,0,12,0,16,0,42,0\n46,0,47,0,10,0,17,0,37,0,21,0\n53,0,48,0,25,0,26,0,54,0,5,0\n41,0,7,0,22,0,13,0,31,0,39,0\n28,0,38,0,52,0,30,0,43,0,4,0\n8,0,3,0,35,0,51,0,19,0,50,0\n55,0,29,0,44,0,18,0,15,0,23,0\n36,0,11,0,1,0,49,0,9,0,40,0\n33,0,34,0,46,0,20,0,12,0,24,0\n"
  },
  {
    "path": "schedules/56_1.csv",
    "content": "32,0,22,0,21,0,4,0,40,0,15,0\n7,0,19,0,36,0,44,0,51,0,47,0\n38,0,28,0,8,0,52,0,24,0,56,0\n6,0,34,0,14,0,12,0,30,0,54,0\n31,0,53,0,10,0,11,0,5,0,33,0\n18,0,35,0,48,0,50,0,1,0,17,0\n42,0,41,0,49,0,55,0,25,0,45,0\n37,0,26,0,46,0,29,0,27,0,23,0\n43,0,39,0,2,0,16,0,3,0,13,0\n9,0,21,1,30,1,20,0,7,1,4,1\n"
  },
  {
    "path": "schedules/56_10.csv",
    "content": "44,0,35,0,21,0,24,0,29,0,48,0\n14,0,33,0,36,0,3,0,50,0,51,0\n46,0,52,0,13,0,4,0,32,0,30,0\n20,0,53,0,18,0,5,0,16,0,19,0\n37,0,56,0,2,0,49,0,40,0,54,0\n22,0,12,0,31,0,7,0,26,0,34,0\n27,0,25,0,1,0,41,0,8,0,6,0\n45,0,55,0,15,0,47,0,23,0,9,0\n17,0,42,0,11,0,43,0,10,0,28,0\n38,0,48,0,46,0,39,0,19,0,52,0\n30,0,36,0,3,0,31,0,5,0,34,0\n26,0,49,0,41,0,13,0,14,0,24,0\n16,0,40,0,35,0,12,0,50,0,15,0\n9,0,1,0,6,0,43,0,54,0,33,0\n10,0,45,0,37,0,29,0,7,0,38,0\n18,0,44,0,23,0,28,0,53,0,17,0\n11,0,25,0,8,0,55,0,39,0,2,0\n4,0,42,0,21,0,56,0,32,0,47,0\n51,0,27,0,49,0,20,0,22,0,35,0\n48,1,10,0,50,0,3,1,43,0,37,0\n28,1,15,0,29,0,31,1,19,0,33,0\n53,0,24,0,34,0,9,0,45,0,46,0\n6,0,39,0,12,0,32,0,17,0,44,0\n56,0,25,0,13,0,16,0,27,0,22,0\n41,0,38,0,11,0,20,0,21,0,5,0\n51,0,55,0,30,0,42,0,26,0,18,0\n1,0,7,0,4,0,2,0,40,0,36,0\n8,0,54,0,23,0,47,0,52,0,14,0\n32,0,28,0,19,0,35,0,37,0,25,0\n10,0,33,0,34,0,48,0,12,0,27,0\n31,0,38,0,50,0,53,0,6,0,42,0\n26,0,22,0,1,0,45,0,17,0,29,0\n49,0,16,0,44,0,52,0,43,0,55,0\n56,0,41,0,36,0,9,0,18,0,8,0\n11,0,51,0,39,0,23,0,3,0,7,0\n24,0,20,0,30,0,4,0,15,0,54,0\n46,0,14,0,21,0,13,0,2,0,5,0\n47,0,55,0,27,0,40,0,31,0,43,0\n32,0,8,0,50,0,26,0,28,0,38,0\n1,0,56,0,29,0,11,0,53,0,23,0\n54,0,12,0,24,0,4,0,25,0,36,0\n7,0,48,0,52,0,42,0,15,0,14,0\n19,0,37,0,47,0,13,0,30,0,34,0\n3,0,49,0,35,0,6,0,40,0,17,0\n44,0,22,0,46,0,20,0,16,0,41,0\n33,0,39,0,18,0,21,0,2,0,45,0\n5,0,51,0,4,0,10,0,9,0,15,0\n28,0,34,0,50,0,1,0,52,0,54,0\n47,0,7,0,11,0,26,0,24,0,6,0\n12,0,36,0,17,0,20,0,19,0,55,0\n46,0,29,0,18,0,3,0,27,0,42,0\n16,0,51,0,13,0,38,0,45,0,40,0\n49,0,9,0,53,0,32,0,21,0,25,0\n31,0,35,0,56,0,14,0,10,0,39,0\n37,0,5,0,22,0,8,0,44,0,33,0\n2,0,43,0,48,0,41,0,23,0,30,0\n55,0,29,0,34,0,38,0,4,0,6,0\n11,0,54,0,21,0,46,0,51,0,15,0\n53,0,36,0,39,0,10,0,26,0,13,0\n5,0,45,0,8,0,12,0,42,0,49,0\n20,0,2,0,3,0,50,0,52,0,56,0\n23,0,24,0,43,0,18,0,31,0,32,0\n28,0,40,0,47,0,48,0,41,0,22,0\n33,0,16,0,1,0,30,0,7,0,35,0\n9,0,14,0,37,0,27,0,19,0,17,0\n44,0,26,0,15,0,25,0,3,0,38,0\n13,0,32,0,20,0,31,0,29,0,8,0\n2,0,53,0,41,0,51,0,12,0,34,0\n48,0,18,0,36,0,6,0,49,0,11,0\n50,0,35,0,19,0,55,0,56,0,22,0\n52,0,24,0,42,0,37,0,1,0,39,0\n10,0,40,0,23,0,9,0,21,0,30,0\n17,0,5,0,33,0,4,0,16,0,47,0\n7,0,14,0,43,0,46,0,28,0,25,0\n27,0,45,0,26,0,54,0,44,0,19,0\n18,0,15,0,6,0,37,0,12,0,13,0\n29,0,41,0,9,0,30,0,50,0,39,0\n16,0,17,0,31,0,48,0,51,0,8,0\n21,0,43,0,53,0,22,0,36,0,52,0\n25,0,42,0,40,0,34,0,23,0,20,0\n27,0,2,0,38,0,28,0,24,0,56,0\n45,0,44,0,4,0,35,0,11,0,14,0\n10,0,46,0,3,0,49,0,47,0,1,0\n55,0,5,0,54,0,7,0,32,0,33,0\n26,0,21,0,39,0,34,0,37,0,16,0\n15,0,17,0,30,0,27,0,53,0,56,0\n9,0,20,0,12,0,28,0,48,0,11,0\n19,0,43,0,8,0,24,0,4,0,3,0\n51,0,47,0,31,0,50,0,1,0,44,0\n33,0,23,0,38,0,36,0,49,0,46,0\n52,0,25,0,29,0,40,0,18,0,5,0\n6,0,10,0,32,0,2,0,22,0,14,0\n42,0,7,0,54,0,35,0,13,0,41,0\n45,0,3,0,28,0,55,0,48,0,31,0\n"
  },
  {
    "path": "schedules/56_11.csv",
    "content": "12,0,21,0,4,0,39,0,46,0,32,0\n20,0,19,0,25,0,26,0,22,0,2,0\n9,0,52,0,23,0,42,0,54,0,51,0\n36,0,47,0,16,0,13,0,14,0,44,0\n3,0,34,0,24,0,18,0,37,0,15,0\n28,0,7,0,48,0,17,0,8,0,31,0\n33,0,27,0,45,0,40,0,55,0,56,0\n6,0,10,0,1,0,38,0,50,0,30,0\n41,0,29,0,49,0,11,0,5,0,53,0\n43,0,22,0,23,0,35,0,44,0,34,0\n31,0,4,0,26,0,15,0,42,0,14,0\n36,0,9,0,20,0,28,0,21,0,55,0\n3,0,10,0,12,0,24,0,47,0,2,0\n41,0,30,0,33,0,27,0,18,0,13,0\n32,0,49,0,53,0,16,0,8,0,50,0\n37,0,29,0,45,0,46,0,48,0,52,0\n5,0,51,0,35,0,7,0,1,0,38,0\n17,0,40,0,54,0,39,0,25,0,6,0\n56,0,43,0,34,0,11,0,19,0,4,0\n42,1,55,0,27,0,28,1,2,0,12,0\n23,0,21,0,10,0,53,0,31,0,45,0\n46,0,24,0,15,0,51,0,41,0,36,0\n25,0,54,0,13,0,50,0,7,0,5,0\n30,0,18,0,40,0,47,0,35,0,17,0\n56,0,49,0,19,0,32,0,14,0,43,0\n26,0,16,0,9,0,33,0,37,0,22,0\n6,0,44,0,38,0,29,0,3,0,48,0\n11,0,52,0,8,0,39,0,1,0,20,0\n50,0,21,0,2,0,41,0,4,0,7,0\n13,0,43,0,42,0,40,0,51,0,32,0\n47,0,14,0,45,0,22,0,15,0,5,0\n56,0,24,0,53,0,31,0,6,0,48,0\n37,0,44,0,1,0,17,0,28,0,27,0\n12,0,11,0,16,0,30,0,26,0,23,0\n54,0,49,0,46,0,33,0,20,0,38,0\n39,0,8,0,3,0,29,0,35,0,19,0\n55,0,36,0,52,0,10,0,18,0,25,0\n34,0,5,0,48,0,9,0,2,0,40,0\n47,0,22,0,21,0,37,0,43,0,6,0\n44,0,17,0,42,0,49,0,50,0,24,0\n11,0,15,0,31,0,32,0,35,0,33,0\n20,0,45,0,4,0,30,0,53,0,3,0\n36,0,54,0,26,0,27,0,51,0,8,0\n14,0,19,0,38,0,12,0,9,0,18,0\n10,0,46,0,16,0,39,0,7,0,34,0\n55,0,25,0,41,0,1,0,29,0,23,0\n13,0,56,0,5,0,28,0,52,0,15,0\n21,0,43,0,36,0,17,0,2,0,33,0\n42,0,37,0,3,0,30,0,8,0,12,0\n18,0,44,0,51,0,11,0,39,0,45,0\n48,0,16,0,14,0,41,0,1,0,54,0\n10,0,31,0,56,0,49,0,25,0,9,0\n47,0,20,0,27,0,4,0,29,0,38,0\n46,0,22,0,35,0,53,0,55,0,13,0\n23,0,28,0,50,0,40,0,19,0,24,0\n52,0,26,0,7,0,32,0,6,0,34,0\n18,0,11,0,42,0,5,0,21,0,16,0\n48,0,1,0,25,0,15,0,43,0,47,0\n35,0,37,0,41,0,20,0,54,0,10,0\n8,0,2,0,46,0,44,0,9,0,56,0\n53,0,19,0,7,0,38,0,40,0,52,0\n34,0,51,0,55,0,30,0,6,0,14,0\n13,0,17,0,49,0,23,0,4,0,3,0\n36,0,29,0,31,0,45,0,50,0,12,0\n28,0,24,0,39,0,22,0,27,0,32,0\n33,0,48,0,44,0,26,0,19,0,42,0\n40,0,8,0,15,0,11,0,38,0,10,0\n47,0,3,0,7,0,23,0,56,0,51,0\n53,0,4,0,50,0,55,0,30,0,37,0\n46,0,28,0,45,0,25,0,43,0,16,0\n32,0,31,0,2,0,54,0,18,0,29,0\n21,0,35,0,27,0,52,0,14,0,49,0\n33,0,1,0,5,0,34,0,12,0,20,0\n9,0,6,0,24,0,39,0,13,0,26,0\n22,0,41,0,38,0,36,0,17,0,56,0\n30,0,29,0,15,0,43,0,19,0,54,0\n7,0,49,0,11,0,47,0,48,0,55,0\n51,0,33,0,4,0,44,0,28,0,10,0\n14,0,12,0,27,0,25,0,8,0,53,0\n52,0,35,0,2,0,24,0,22,0,16,0\n50,0,42,0,6,0,46,0,18,0,20,0\n39,0,31,0,23,0,37,0,5,0,36,0\n13,0,3,0,40,0,1,0,26,0,21,0\n17,0,32,0,41,0,34,0,45,0,9,0\n25,0,12,0,51,0,35,0,48,0,4,0\n29,0,7,0,10,0,28,0,42,0,22,0\n30,0,39,0,2,0,23,0,49,0,15,0\n18,0,53,0,26,0,56,0,1,0,50,0\n11,0,14,0,40,0,17,0,37,0,46,0\n8,0,38,0,34,0,21,0,45,0,13,0\n36,0,19,0,33,0,41,0,47,0,6,0\n52,0,43,0,27,0,3,0,31,0,9,0\n5,0,54,0,32,0,55,0,44,0,24,0\n20,0,17,0,29,0,16,0,15,0,56,0\n38,0,37,0,39,0,25,0,42,0,2,0\n6,0,26,0,28,0,49,0,45,0,35,0\n14,0,50,0,22,0,33,0,11,0,3,0\n9,0,30,0,1,0,24,0,7,0,36,0\n13,0,32,0,23,0,10,0,48,0,27,0\n18,0,5,0,8,0,4,0,46,0,43,0\n12,0,40,0,44,0,41,0,20,0,52,0\n16,0,55,0,19,0,31,0,21,0,51,0\n53,0,34,0,42,0,54,0,47,0,28,0\n"
  },
  {
    "path": "schedules/56_12.csv",
    "content": "47,0,7,0,25,0,22,0,5,0,35,0\n54,0,43,0,3,0,26,0,24,0,8,0\n36,0,28,0,32,0,23,0,12,0,50,0\n37,0,21,0,9,0,29,0,16,0,46,0\n39,0,27,0,14,0,41,0,49,0,56,0\n11,0,17,0,53,0,34,0,55,0,45,0\n40,0,44,0,15,0,42,0,13,0,48,0\n4,0,30,0,1,0,20,0,51,0,19,0\n33,0,31,0,6,0,38,0,2,0,10,0\n18,0,8,0,25,0,52,0,36,0,26,0\n49,0,7,0,46,0,3,0,28,0,35,0\n34,0,17,0,50,0,15,0,48,0,9,0\n41,0,23,0,32,0,14,0,21,0,29,0\n44,0,33,0,20,0,19,0,45,0,54,0\n42,0,2,0,22,0,10,0,12,0,39,0\n30,0,31,0,13,0,37,0,27,0,6,0\n16,0,38,0,51,0,55,0,40,0,11,0\n47,0,52,0,53,0,1,0,43,0,56,0\n24,0,4,0,54,0,18,0,5,0,44,0\n21,0,48,0,26,0,2,0,14,0,49,0\n37,0,34,0,42,0,25,0,33,0,41,0\n38,0,20,0,55,0,7,0,23,0,28,0\n35,0,50,0,27,0,51,0,52,0,11,0\n5,0,40,0,24,0,3,0,36,0,39,0\n29,0,31,0,8,0,4,0,47,0,13,0\n18,0,6,0,12,0,1,0,16,0,17,0\n46,0,22,0,15,0,56,0,53,0,32,0\n9,0,43,0,45,0,19,0,10,0,30,0\n34,0,41,0,51,0,44,0,28,0,2,0\n5,0,49,0,48,0,8,0,37,0,55,0\n38,0,1,0,18,0,13,0,50,0,14,0\n40,0,26,0,47,0,46,0,17,0,20,0\n10,0,11,0,23,0,9,0,19,0,3,0\n33,0,39,0,53,0,30,0,21,0,25,0\n15,0,4,0,45,0,24,0,6,0,7,0\n22,0,29,0,36,0,43,0,16,0,35,0\n42,0,52,0,32,0,54,0,31,0,27,0\n56,0,55,0,9,0,12,0,40,0,8,0\n47,0,39,0,19,0,34,0,14,0,38,0\n1,0,24,0,48,0,26,0,13,0,25,0\n30,0,7,0,2,0,44,0,46,0,50,0\n33,0,42,0,43,0,15,0,23,0,49,0\n56,0,28,0,54,0,36,0,35,0,6,0\n31,0,3,0,20,0,53,0,22,0,18,0\n21,0,45,0,16,0,52,0,5,0,27,0\n41,0,29,0,37,0,12,0,17,0,51,0\n10,0,32,0,25,0,4,0,11,0,44,0\n19,0,13,0,1,0,49,0,36,0,34,0\n6,0,46,0,23,0,8,0,50,0,39,0\n20,0,45,0,48,0,31,0,56,0,35,0\n29,0,17,0,55,0,33,0,14,0,24,0\n5,0,12,0,2,0,40,0,52,0,43,0\n38,0,41,0,7,0,54,0,32,0,9,0\n16,0,10,0,18,0,51,0,37,0,53,0\n27,0,47,0,21,0,3,0,22,0,4,0\n28,0,42,0,15,0,11,0,26,0,30,0\n17,0,33,0,49,0,50,0,5,0,20,0\n46,0,43,0,36,0,45,0,31,0,41,0\n9,0,18,0,39,0,55,0,48,0,32,0\n25,0,34,0,1,0,3,0,6,0,38,0\n40,0,4,0,14,0,28,0,37,0,22,0\n8,0,54,0,16,0,30,0,51,0,47,0\n13,0,21,0,24,0,42,0,7,0,56,0\n29,0,52,0,2,0,19,0,15,0,11,0\n35,0,44,0,12,0,53,0,26,0,23,0\n10,0,33,0,1,0,27,0,40,0,46,0\n9,0,14,0,36,0,20,0,4,0,6,0\n5,0,34,0,3,0,32,0,31,0,51,0\n38,0,50,0,48,0,45,0,29,0,42,0\n12,0,24,0,30,0,11,0,47,0,49,0\n26,0,55,0,19,0,27,0,22,0,41,0\n35,0,15,0,18,0,10,0,44,0,21,0\n43,0,28,0,13,0,39,0,17,0,54,0\n23,0,56,0,2,0,25,0,37,0,16,0\n52,0,7,0,14,0,8,0,53,0,34,0\n22,0,49,0,31,0,11,0,9,0,1,0\n41,0,19,0,35,0,40,0,30,0,18,0\n50,0,15,0,10,0,55,0,47,0,54,0\n51,0,28,0,21,0,25,0,43,0,48,0\n3,0,12,0,16,0,45,0,13,0,33,0\n8,0,27,0,42,0,2,0,53,0,20,0\n29,0,26,0,32,0,56,0,6,0,5,0\n4,0,39,0,7,0,52,0,23,0,17,0\n38,0,46,0,37,0,44,0,24,0,36,0\n40,0,31,0,34,0,49,0,21,0,54,0\n20,0,25,0,14,0,12,0,15,0,43,0\n33,0,48,0,19,0,32,0,5,0,47,0\n35,0,23,0,55,0,45,0,1,0,6,0\n56,0,51,0,36,0,44,0,42,0,9,0\n41,0,26,0,3,0,16,0,50,0,4,0\n27,0,53,0,30,0,28,0,29,0,38,0\n17,0,24,0,22,0,52,0,8,0,10,0\n2,0,39,0,11,0,18,0,7,0,37,0\n13,0,49,0,51,0,46,0,45,0,32,0\n6,0,9,0,47,0,5,0,42,0,21,0\n43,0,4,0,26,0,35,0,33,0,38,0\n28,0,19,0,50,0,24,0,31,0,16,0\n1,0,44,0,8,0,39,0,29,0,15,0\n30,0,56,0,22,0,23,0,18,0,34,0\n53,0,3,0,14,0,17,0,36,0,2,0\n37,0,11,0,12,0,46,0,48,0,54,0\n13,0,20,0,52,0,10,0,55,0,41,0\n27,0,7,0,45,0,25,0,40,0,29,0\n49,0,6,0,44,0,16,0,47,0,22,0\n15,0,51,0,26,0,23,0,39,0,31,0\n8,0,17,0,21,0,12,0,38,0,19,0\n5,0,11,0,54,0,1,0,14,0,41,0\n53,0,50,0,25,0,13,0,9,0,40,0\n3,0,52,0,56,0,33,0,28,0,30,0\n18,0,43,0,55,0,42,0,46,0,4,0\n10,0,36,0,27,0,7,0,48,0,34,0\n35,0,32,0,20,0,2,0,24,0,37,0\n"
  },
  {
    "path": "schedules/56_13.csv",
    "content": "37,0,56,0,29,0,2,0,51,0,46,0\n49,0,30,0,14,0,27,0,55,0,5,0\n35,0,40,0,23,0,32,0,1,0,22,0\n26,0,43,0,38,0,34,0,39,0,8,0\n13,0,52,0,36,0,31,0,17,0,15,0\n48,0,47,0,6,0,18,0,7,0,50,0\n42,0,25,0,44,0,3,0,9,0,21,0\n33,0,10,0,28,0,53,0,20,0,12,0\n45,0,19,0,11,0,41,0,16,0,4,0\n54,0,51,0,22,0,24,0,49,0,17,0\n46,0,13,0,8,0,7,0,34,0,48,0\n50,0,30,0,40,0,3,0,18,0,25,0\n27,0,42,0,15,0,56,0,35,0,53,0\n26,0,33,0,4,0,37,0,9,0,47,0\n6,0,52,0,41,0,54,0,32,0,5,0\n10,0,14,0,43,0,19,0,36,0,31,0\n11,0,1,0,2,0,24,0,45,0,28,0\n21,0,20,0,39,0,29,0,16,0,23,0\n55,0,44,0,35,0,12,0,38,0,13,0\n6,1,30,0,54,0,46,1,48,0,56,0\n31,1,42,0,41,0,50,1,27,0,37,0\n3,0,28,0,1,0,34,0,9,0,43,0\n26,0,45,0,16,0,29,0,15,0,47,0\n40,0,4,0,17,0,39,0,25,0,10,0\n49,0,32,0,18,0,12,0,14,0,23,0\n20,0,52,0,24,0,36,0,21,0,38,0\n8,0,5,0,44,0,33,0,19,0,2,0\n55,0,53,0,22,0,51,0,11,0,7,0\n46,0,10,0,27,0,15,0,1,0,39,0\n16,0,32,0,14,0,13,0,4,0,42,0\n20,0,48,0,26,0,17,0,45,0,56,0\n2,0,5,0,18,0,23,0,33,0,50,0\n19,0,12,0,21,0,38,0,40,0,54,0\n55,0,36,0,9,0,6,0,24,0,53,0\n44,0,37,0,49,0,47,0,30,0,22,0\n51,0,8,0,43,0,25,0,31,0,11,0\n35,0,41,0,29,0,52,0,28,0,34,0\n7,0,4,0,21,0,3,0,2,0,17,0\n32,0,38,0,55,0,45,0,18,0,54,0\n50,0,44,0,39,0,37,0,20,0,14,0\n31,0,56,0,47,0,9,0,11,0,40,0\n23,0,30,0,34,0,52,0,42,0,19,0\n22,0,29,0,13,0,53,0,5,0,10,0\n43,0,24,0,15,0,49,0,6,0,26,0\n12,0,36,0,28,0,46,0,16,0,7,0\n48,0,33,0,25,0,1,0,35,0,27,0\n51,0,3,0,14,0,8,0,41,0,20,0\n45,0,31,0,5,0,37,0,54,0,21,0\n19,0,38,0,15,0,4,0,47,0,50,0\n32,0,23,0,56,0,43,0,36,0,44,0\n42,0,40,0,12,0,11,0,55,0,29,0\n53,0,34,0,2,0,49,0,25,0,35,0\n7,0,26,0,41,0,30,0,46,0,33,0\n28,0,27,0,6,0,22,0,17,0,8,0\n51,0,39,0,18,0,9,0,52,0,1,0\n3,0,24,0,10,0,48,0,16,0,13,0\n54,0,25,0,2,0,36,0,42,0,14,0\n7,0,43,0,49,0,29,0,20,0,4,0\n34,0,15,0,46,0,40,0,44,0,32,0\n50,0,1,0,17,0,8,0,55,0,56,0\n5,0,11,0,16,0,9,0,35,0,30,0\n52,0,31,0,39,0,22,0,33,0,45,0\n51,0,53,0,19,0,6,0,18,0,21,0\n3,0,12,0,27,0,24,0,47,0,26,0\n10,0,48,0,37,0,23,0,28,0,38,0\n41,0,50,0,9,0,13,0,40,0,49,0\n46,0,35,0,17,0,45,0,43,0,30,0\n1,0,8,0,4,0,21,0,22,0,44,0\n19,0,56,0,16,0,3,0,52,0,33,0\n48,0,11,0,27,0,29,0,34,0,36,0\n31,0,18,0,24,0,20,0,28,0,32,0\n2,0,55,0,14,0,51,0,10,0,26,0\n12,0,47,0,54,0,41,0,13,0,53,0\n15,0,25,0,7,0,5,0,37,0,39,0\n6,0,38,0,46,0,23,0,42,0,11,0\n31,0,20,0,9,0,48,0,4,0,19,0\n30,0,32,0,3,0,29,0,28,0,51,0\n16,0,40,0,24,0,45,0,44,0,27,0\n8,0,18,0,10,0,34,0,54,0,35,0\n42,0,38,0,7,0,49,0,41,0,1,0\n5,0,36,0,50,0,26,0,12,0,39,0\n53,0,47,0,14,0,17,0,52,0,23,0\n33,0,15,0,37,0,21,0,43,0,55,0\n22,0,56,0,2,0,6,0,13,0,25,0\n29,0,27,0,8,0,18,0,46,0,9,0\n3,0,54,0,42,0,39,0,28,0,11,0\n17,0,30,0,16,0,53,0,31,0,1,0\n24,0,35,0,7,0,19,0,14,0,50,0\n37,0,45,0,4,0,34,0,6,0,12,0\n47,0,40,0,51,0,43,0,48,0,5,0\n2,0,15,0,36,0,38,0,22,0,41,0\n23,0,55,0,20,0,26,0,52,0,25,0\n33,0,56,0,21,0,32,0,10,0,13,0\n44,0,1,0,19,0,49,0,53,0,29,0\n34,0,51,0,17,0,16,0,42,0,50,0\n28,0,37,0,40,0,14,0,35,0,6,0\n25,0,41,0,23,0,12,0,31,0,55,0\n39,0,38,0,24,0,56,0,5,0,30,0\n47,0,46,0,32,0,2,0,21,0,10,0\n49,0,9,0,33,0,45,0,3,0,36,0\n43,0,13,0,54,0,20,0,27,0,7,0\n11,0,18,0,22,0,44,0,15,0,26,0\n4,0,52,0,53,0,8,0,48,0,24,0\n47,0,55,0,25,0,28,0,46,0,19,0\n31,0,29,0,3,0,38,0,37,0,17,0\n45,0,34,0,21,0,56,0,7,0,14,0\n13,0,27,0,33,0,51,0,23,0,6,0\n5,0,26,0,1,0,44,0,4,0,54,0\n52,0,11,0,35,0,50,0,49,0,10,0\n39,0,48,0,9,0,2,0,41,0,32,0\n22,0,42,0,43,0,18,0,16,0,12,0\n36,0,20,0,30,0,8,0,15,0,40,0\n25,0,29,0,14,0,33,0,24,0,54,0\n45,0,7,0,6,0,10,0,23,0,44,0\n26,0,53,0,46,0,38,0,51,0,31,0\n52,0,50,0,21,0,41,0,43,0,27,0\n34,0,42,0,1,0,5,0,47,0,20,0\n19,0,17,0,13,0,32,0,11,0,37,0\n16,0,8,0,49,0,40,0,55,0,39,0\n35,0,28,0,18,0,36,0,56,0,4,0\n9,0,12,0,2,0,48,0,15,0,30,0\n22,0,6,0,31,0,3,0,46,0,50,0\n"
  },
  {
    "path": "schedules/56_14.csv",
    "content": "45,0,34,0,56,0,5,0,47,0,39,0\n44,0,10,0,40,0,3,0,50,0,6,0\n29,0,7,0,32,0,8,0,31,0,13,0\n51,0,55,0,22,0,11,0,42,0,1,0\n24,0,33,0,26,0,4,0,23,0,18,0\n53,0,16,0,20,0,2,0,41,0,35,0\n46,0,38,0,12,0,21,0,52,0,43,0\n36,0,25,0,15,0,14,0,49,0,54,0\n9,0,27,0,28,0,30,0,37,0,17,0\n19,0,11,0,47,0,48,0,10,0,29,0\n13,0,7,0,42,0,50,0,8,0,34,0\n16,0,2,0,1,0,23,0,24,0,32,0\n25,0,31,0,41,0,54,0,40,0,33,0\n53,0,15,0,4,0,21,0,36,0,6,0\n22,0,19,0,49,0,46,0,28,0,44,0\n45,0,3,0,30,0,52,0,48,0,39,0\n51,0,20,0,9,0,27,0,56,0,12,0\n38,0,14,0,55,0,37,0,26,0,35,0\n18,0,43,0,29,0,5,0,17,0,31,0\n34,1,42,0,23,0,16,1,7,0,54,0\n6,0,25,0,24,0,36,0,52,0,28,0\n19,0,44,0,21,0,39,0,51,0,41,0\n27,0,37,0,11,0,26,0,45,0,12,0\n22,0,50,0,14,0,9,0,56,0,32,0\n46,0,30,0,15,0,2,0,8,0,18,0\n35,0,43,0,3,0,47,0,53,0,13,0\n40,0,48,0,5,0,38,0,1,0,33,0\n49,0,4,0,55,0,17,0,10,0,20,0\n54,0,34,0,24,0,45,0,19,0,37,0\n56,0,15,0,18,0,29,0,41,0,6,0\n9,0,35,0,52,0,22,0,21,0,27,0\n8,0,39,0,32,0,38,0,11,0,44,0\n3,0,10,0,36,0,1,0,17,0,46,0\n20,0,25,0,55,0,13,0,16,0,30,0\n26,0,40,0,43,0,7,0,53,0,51,0\n2,0,23,0,5,0,31,0,47,0,4,0\n12,0,50,0,42,0,33,0,49,0,28,0\n48,0,41,0,21,0,14,0,8,0,37,0\n18,0,45,0,20,0,36,0,16,0,55,0\n1,0,15,0,54,0,34,0,22,0,9,0\n2,0,56,0,29,0,26,0,25,0,52,0\n23,0,39,0,12,0,46,0,10,0,50,0\n13,0,19,0,27,0,7,0,49,0,6,0\n48,0,3,0,32,0,28,0,43,0,4,0\n24,0,5,0,38,0,44,0,51,0,42,0\n30,0,40,0,31,0,14,0,11,0,53,0\n47,0,35,0,8,0,33,0,17,0,36,0\n37,0,34,0,55,0,25,0,23,0,29,0\n3,0,2,0,28,0,56,0,10,0,7,0\n5,0,1,0,27,0,38,0,50,0,41,0\n21,0,18,0,42,0,40,0,45,0,32,0\n53,0,48,0,31,0,49,0,39,0,16,0\n17,0,13,0,22,0,24,0,14,0,12,0\n20,0,52,0,30,0,43,0,44,0,15,0\n54,0,51,0,47,0,6,0,33,0,11,0\n9,0,4,0,26,0,46,0,19,0,35,0\n27,0,25,0,39,0,18,0,36,0,31,0\n50,0,55,0,13,0,38,0,53,0,17,0\n37,0,2,0,43,0,8,0,1,0,22,0\n15,0,34,0,7,0,51,0,24,0,48,0\n41,0,9,0,42,0,3,0,19,0,29,0\n10,0,28,0,54,0,20,0,26,0,21,0\n30,0,44,0,12,0,35,0,45,0,5,0\n23,0,49,0,47,0,56,0,40,0,11,0\n4,0,52,0,46,0,14,0,33,0,16,0\n6,0,17,0,39,0,32,0,42,0,2,0\n26,0,22,0,3,0,20,0,38,0,31,0\n51,0,5,0,15,0,13,0,28,0,48,0\n36,0,49,0,11,0,44,0,24,0,18,0\n35,0,29,0,53,0,10,0,34,0,14,0\n16,0,6,0,56,0,37,0,21,0,40,0\n45,0,33,0,4,0,50,0,43,0,1,0\n46,0,47,0,7,0,30,0,41,0,27,0\n32,0,54,0,19,0,55,0,52,0,12,0\n25,0,8,0,11,0,9,0,23,0,3,0\n51,0,56,0,28,0,35,0,18,0,16,0\n34,0,21,0,29,0,36,0,24,0,22,0\n49,0,17,0,45,0,26,0,46,0,41,0\n6,0,13,0,38,0,54,0,4,0,30,0\n33,0,37,0,10,0,32,0,15,0,27,0\n14,0,39,0,9,0,55,0,7,0,43,0\n47,0,12,0,1,0,25,0,42,0,53,0\n40,0,23,0,8,0,5,0,20,0,19,0\n44,0,50,0,48,0,2,0,52,0,31,0\n51,0,30,0,49,0,17,0,32,0,4,0\n29,0,24,0,37,0,39,0,46,0,3,0\n42,0,27,0,54,0,43,0,53,0,56,0\n41,0,18,0,40,0,34,0,28,0,12,0\n6,0,14,0,2,0,55,0,45,0,23,0\n11,0,31,0,35,0,19,0,15,0,50,0\n44,0,47,0,52,0,13,0,1,0,26,0\n10,0,16,0,22,0,8,0,36,0,5,0\n21,0,38,0,25,0,20,0,48,0,7,0\n33,0,41,0,53,0,9,0,24,0,30,0\n55,0,31,0,15,0,12,0,51,0,3,0\n56,0,17,0,14,0,44,0,27,0,34,0\n16,0,5,0,50,0,54,0,26,0,39,0\n35,0,36,0,23,0,42,0,48,0,43,0\n22,0,46,0,32,0,40,0,25,0,19,0\n13,0,11,0,20,0,2,0,21,0,33,0\n7,0,52,0,8,0,1,0,6,0,18,0\n28,0,45,0,38,0,49,0,9,0,29,0\n4,0,10,0,42,0,47,0,37,0,15,0\n24,0,43,0,46,0,55,0,56,0,5,0\n23,0,27,0,16,0,13,0,44,0,3,0\n26,0,48,0,34,0,12,0,32,0,6,0\n19,0,30,0,1,0,54,0,17,0,21,0\n29,0,50,0,33,0,37,0,49,0,20,0\n28,0,31,0,22,0,8,0,45,0,53,0\n41,0,36,0,14,0,11,0,51,0,2,0\n38,0,52,0,18,0,9,0,47,0,10,0\n7,0,39,0,40,0,35,0,25,0,4,0\n12,0,54,0,43,0,16,0,44,0,29,0\n6,0,30,0,26,0,15,0,42,0,22,0\n31,0,3,0,21,0,34,0,49,0,2,0\n1,0,32,0,14,0,28,0,47,0,20,0\n17,0,7,0,35,0,11,0,5,0,52,0\n27,0,8,0,48,0,55,0,40,0,24,0\n53,0,50,0,37,0,19,0,51,0,18,0\n38,0,4,0,36,0,23,0,41,0,56,0\n45,0,10,0,39,0,13,0,33,0,25,0\n9,0,31,0,6,0,46,0,20,0,42,0\n28,0,5,0,21,0,27,0,47,0,55,0\n26,0,8,0,49,0,52,0,1,0,34,0\n32,0,44,0,53,0,4,0,37,0,7,0\n16,0,19,0,17,0,38,0,39,0,15,0\n51,0,33,0,23,0,29,0,22,0,45,0\n3,0,18,0,54,0,35,0,14,0,48,0\n24,0,56,0,50,0,10,0,30,0,25,0\n13,0,36,0,2,0,40,0,12,0,9,0\n46,0,11,0,34,0,41,0,43,0,16,0\n"
  },
  {
    "path": "schedules/56_2.csv",
    "content": "55,0,39,0,54,0,42,0,11,0,12,0\n21,0,38,0,4,0,43,0,35,0,29,0\n15,0,40,0,10,0,51,0,19,0,18,0\n27,0,44,0,14,0,48,0,31,0,2,0\n23,0,17,0,5,0,26,0,37,0,56,0\n22,0,45,0,13,0,24,0,28,0,41,0\n49,0,32,0,8,0,46,0,52,0,20,0\n1,0,34,0,33,0,6,0,36,0,47,0\n3,0,9,0,25,0,7,0,53,0,30,0\n16,0,44,0,29,0,50,0,18,0,23,0\n43,0,28,0,12,0,27,0,19,0,56,0\n35,0,41,0,20,0,10,0,11,0,14,0\n1,0,42,0,46,0,45,0,4,0,40,0\n6,0,48,0,32,0,9,0,13,0,54,0\n26,0,25,0,47,0,22,0,39,0,16,0\n55,0,50,0,24,0,49,0,34,0,30,0\n51,0,53,0,17,0,2,0,33,0,52,0\n37,0,31,0,36,0,8,0,38,0,3,0\n15,0,7,0,41,1,21,0,5,0,13,1\n"
  },
  {
    "path": "schedules/56_3.csv",
    "content": "35,0,50,0,40,0,39,0,21,0,20,0\n10,0,38,0,43,0,24,0,32,0,2,0\n5,0,19,0,14,0,9,0,55,0,44,0\n45,0,15,0,16,0,54,0,11,0,22,0\n1,0,30,0,53,0,7,0,23,0,12,0\n47,0,26,0,27,0,46,0,36,0,25,0\n52,0,51,0,13,0,33,0,34,0,48,0\n29,0,4,0,49,0,8,0,56,0,28,0\n37,0,31,0,3,0,42,0,17,0,18,0\n41,0,53,0,24,0,6,0,14,0,35,0\n26,0,23,0,54,0,10,0,39,0,9,0\n20,0,19,0,7,0,43,0,11,0,52,0\n51,0,4,0,22,0,38,0,40,0,27,0\n45,0,18,0,25,0,28,0,44,0,33,0\n12,0,42,0,15,0,34,0,50,0,47,0\n21,0,3,0,36,0,30,0,56,0,55,0\n13,0,8,0,5,0,2,0,16,0,31,0\n46,0,1,0,6,0,37,0,32,0,29,0\n41,0,48,0,40,0,49,0,17,0,19,0\n12,0,39,0,11,0,14,0,4,0,18,0\n52,0,9,0,47,0,22,0,24,0,3,0\n33,0,7,0,2,0,27,0,50,0,54,0\n6,0,44,0,8,0,10,0,15,0,36,0\n17,0,46,0,30,0,45,0,51,0,35,0\n31,0,56,0,43,0,41,0,1,0,26,0\n48,0,16,0,28,0,32,0,21,0,42,0\n13,0,55,0,29,0,20,0,38,0,53,0\n34,0,49,0,23,0,37,0,25,0,5,0\n"
  },
  {
    "path": "schedules/56_4.csv",
    "content": "56,0,21,0,6,0,27,0,55,0,25,0\n35,0,51,0,38,0,34,0,43,0,20,0\n16,0,23,0,41,0,44,0,40,0,31,0\n15,0,30,0,45,0,49,0,8,0,2,0\n54,0,36,0,39,0,53,0,26,0,28,0\n11,0,13,0,24,0,19,0,18,0,42,0\n22,0,47,0,1,0,10,0,33,0,32,0\n4,0,12,0,9,0,37,0,52,0,29,0\n3,0,14,0,7,0,50,0,46,0,5,0\n48,0,2,0,55,0,17,0,53,0,43,0\n28,0,45,0,38,0,41,0,42,0,56,0\n10,0,25,0,40,0,54,0,20,0,11,0\n52,0,32,0,35,0,15,0,6,0,39,0\n13,0,26,0,29,0,34,0,7,0,23,0\n17,0,46,0,18,0,16,0,49,0,22,0\n27,0,33,0,31,0,4,0,24,0,14,0\n36,0,8,0,50,0,44,0,48,0,37,0\n19,0,30,0,21,0,1,0,3,0,12,0\n47,0,5,0,39,0,9,0,51,0,23,0\n53,1,10,0,46,0,45,1,35,0,29,0\n52,1,2,0,38,0,31,1,26,0,18,0\n20,0,24,0,17,0,32,0,41,0,36,0\n50,0,15,0,42,0,55,0,12,0,54,0\n3,0,56,0,8,0,13,0,33,0,9,0\n1,0,44,0,11,0,27,0,34,0,49,0\n43,0,5,0,40,0,4,0,6,0,19,0\n16,0,7,0,21,0,37,0,47,0,28,0\n51,0,30,0,14,0,22,0,48,0,25,0\n39,0,29,0,31,0,20,0,55,0,8,0\n12,0,11,0,23,0,38,0,36,0,46,0\n52,0,43,0,44,0,54,0,24,0,3,0\n49,0,41,0,6,0,33,0,53,0,7,0\n27,0,26,0,37,0,45,0,40,0,51,0\n32,0,2,0,25,0,13,0,50,0,28,0\n10,0,17,0,9,0,15,0,14,0,19,0\n42,0,5,0,48,0,35,0,16,0,1,0\n47,0,18,0,34,0,30,0,56,0,4,0\n22,0,53,0,52,0,21,0,45,0,31,0\n"
  },
  {
    "path": "schedules/56_5.csv",
    "content": "19,0,44,0,11,0,4,0,40,0,35,0\n52,0,34,0,46,0,9,0,33,0,18,0\n21,0,15,0,39,0,7,0,20,0,55,0\n28,0,53,0,3,0,36,0,45,0,25,0\n31,0,13,0,56,0,32,0,29,0,41,0\n2,0,23,0,16,0,51,0,1,0,54,0\n43,0,5,0,10,0,8,0,30,0,12,0\n50,0,42,0,49,0,22,0,6,0,24,0\n47,0,17,0,26,0,37,0,14,0,38,0\n48,0,46,0,32,0,27,0,25,0,20,0\n4,0,33,0,16,0,29,0,39,0,28,0\n36,0,55,0,51,0,13,0,40,0,52,0\n9,0,35,0,42,0,41,0,53,0,21,0\n12,0,37,0,1,0,19,0,56,0,7,0\n50,0,3,0,27,0,10,0,47,0,54,0\n11,0,30,0,15,0,14,0,26,0,49,0\n45,0,17,0,22,0,2,0,18,0,43,0\n8,0,48,0,6,0,34,0,23,0,38,0\n24,0,31,0,21,0,44,0,5,0,25,0\n51,1,37,0,42,0,50,1,28,0,55,0\n14,0,40,0,7,0,33,0,10,0,41,0\n29,0,20,0,11,0,52,0,2,0,12,0\n16,0,26,0,36,0,18,0,6,0,32,0\n53,0,27,0,38,0,13,0,5,0,15,0\n9,0,30,0,19,0,48,0,31,0,17,0\n54,0,24,0,4,0,8,0,56,0,45,0\n1,0,44,0,22,0,3,0,34,0,39,0\n49,0,43,0,46,0,23,0,47,0,35,0\n25,0,7,0,51,0,38,0,42,0,11,0\n33,0,12,0,55,0,31,0,27,0,26,0\n2,0,14,0,19,0,8,0,32,0,50,0\n10,0,18,0,20,0,13,0,44,0,37,0\n40,0,16,0,22,0,15,0,9,0,56,0\n39,0,23,0,24,0,30,0,47,0,53,0\n1,0,41,0,52,0,49,0,28,0,48,0\n17,0,6,0,5,0,3,0,46,0,4,0\n36,0,21,0,34,0,54,0,43,0,29,0\n35,0,15,0,8,0,45,0,31,0,51,0\n47,0,9,0,7,0,44,0,32,0,2,0\n49,0,10,0,55,0,19,0,16,0,53,0\n23,0,52,0,5,0,26,0,56,0,50,0\n14,0,13,0,43,0,48,0,3,0,42,0\n38,0,41,0,20,0,36,0,4,0,22,0\n29,0,30,0,45,0,1,0,40,0,46,0\n28,0,27,0,34,0,17,0,11,0,24,0\n54,0,37,0,6,0,35,0,33,0,25,0\n18,0,21,0,50,0,12,0,39,0,51,0\n"
  },
  {
    "path": "schedules/56_6.csv",
    "content": "43,0,38,0,41,0,21,0,36,0,55,0\n1,0,40,0,10,0,53,0,54,0,8,0\n25,0,6,0,24,0,50,0,18,0,39,0\n15,0,35,0,28,0,4,0,13,0,56,0\n47,0,46,0,19,0,23,0,37,0,45,0\n16,0,17,0,51,0,52,0,48,0,42,0\n32,0,26,0,7,0,20,0,31,0,3,0\n5,0,14,0,22,0,30,0,2,0,33,0\n11,0,27,0,34,0,49,0,9,0,44,0\n29,0,43,0,53,0,12,0,39,0,35,0\n21,0,50,0,8,0,37,0,28,0,16,0\n10,0,4,0,24,0,42,0,32,0,45,0\n54,0,13,0,3,0,5,0,47,0,38,0\n51,0,55,0,34,0,20,0,56,0,40,0\n48,0,22,0,27,0,11,0,46,0,1,0\n52,0,31,0,18,0,30,0,9,0,36,0\n6,0,19,0,7,0,49,0,2,0,17,0\n29,0,25,0,15,0,26,0,14,0,44,0\n33,0,12,0,16,0,23,0,41,0,32,0\n46,0,56,0,27,0,10,0,50,0,38,0\n42,0,11,0,40,0,39,0,3,0,28,0\n55,0,47,0,53,0,7,0,48,0,18,0\n24,0,9,0,8,0,20,0,29,0,2,0\n36,0,44,0,6,0,4,0,22,0,23,0\n14,0,1,0,34,0,12,0,13,0,31,0\n30,0,17,0,45,0,21,0,35,0,25,0\n37,0,41,0,51,0,5,0,26,0,49,0\n54,0,33,0,52,0,43,0,19,0,15,0\n36,0,4,0,29,0,40,0,27,0,47,0\n2,0,9,0,13,0,55,0,42,0,46,0\n14,0,20,0,35,0,6,0,16,0,38,0\n48,0,56,0,23,0,8,0,26,0,45,0\n21,0,49,0,18,0,10,0,33,0,3,0\n30,0,28,0,25,0,34,0,41,0,54,0\n43,0,44,0,52,0,7,0,24,0,1,0\n31,0,53,0,19,0,5,0,11,0,50,0\n37,0,39,0,32,0,15,0,22,0,17,0\n12,0,3,0,46,0,51,0,6,0,8,0\n27,0,26,0,41,0,35,0,2,0,18,0\n49,0,20,0,42,0,30,0,43,0,47,0\n38,0,25,0,31,0,48,0,33,0,40,0\n24,0,23,0,15,0,53,0,21,0,34,0\n7,0,56,0,54,0,11,0,36,0,37,0\n28,0,17,0,44,0,55,0,12,0,10,0\n4,0,39,0,5,0,1,0,16,0,9,0\n50,0,52,0,45,0,22,0,13,0,29,0\n51,0,32,0,21,0,14,0,19,0,27,0\n2,0,48,0,34,0,3,0,43,0,37,0\n47,0,10,0,11,0,15,0,41,0,6,0\n53,0,20,0,36,0,46,0,33,0,17,0\n35,0,50,0,42,0,7,0,23,0,5,0\n39,0,44,0,45,0,51,0,31,0,54,0\n40,0,30,0,26,0,13,0,24,0,16,0\n49,0,55,0,8,0,52,0,14,0,4,0\n38,0,28,0,1,0,18,0,32,0,29,0\n9,0,22,0,12,0,56,0,25,0,19,0\n"
  },
  {
    "path": "schedules/56_7.csv",
    "content": "12,0,21,0,47,0,32,0,49,0,28,0\n44,0,45,0,6,0,46,0,50,0,42,0\n13,0,22,0,40,0,38,0,18,0,36,0\n4,0,43,0,15,0,2,0,16,0,41,0\n1,0,24,0,51,0,10,0,19,0,54,0\n11,0,3,0,31,0,52,0,23,0,53,0\n30,0,34,0,33,0,56,0,25,0,37,0\n7,0,14,0,26,0,27,0,29,0,20,0\n55,0,9,0,8,0,39,0,35,0,48,0\n5,0,15,0,19,0,17,0,22,0,47,0\n4,0,51,0,3,0,46,0,38,0,24,0\n23,0,28,0,40,0,16,0,56,0,6,0\n11,0,36,0,12,0,2,0,30,0,14,0\n52,0,20,0,34,0,55,0,54,0,45,0\n39,0,32,0,41,0,29,0,37,0,17,0\n21,0,7,0,35,0,33,0,1,0,42,0\n5,0,43,0,9,0,31,0,18,0,49,0\n44,0,53,0,13,0,8,0,10,0,26,0\n25,0,48,0,36,0,50,0,27,0,54,0\n6,1,38,0,47,0,14,1,37,0,45,0\n4,1,32,0,19,0,23,1,11,0,35,0\n49,0,1,0,20,0,46,0,39,0,30,0\n18,0,33,0,55,0,29,0,28,0,26,0\n40,0,10,0,17,0,42,0,43,0,12,0\n16,0,44,0,27,0,34,0,51,0,5,0\n56,0,9,0,3,0,25,0,41,0,8,0\n50,0,52,0,15,0,21,0,53,0,24,0\n2,0,7,0,22,0,48,0,31,0,13,0\n30,0,47,0,35,0,10,0,43,0,29,0\n20,0,51,0,37,0,11,0,49,0,4,0\n23,0,1,0,45,0,17,0,36,0,9,0\n14,0,8,0,46,0,33,0,15,0,40,0\n24,0,6,0,27,0,31,0,22,0,21,0\n5,0,39,0,54,0,13,0,3,0,28,0\n7,0,12,0,32,0,55,0,50,0,16,0\n18,0,42,0,41,0,53,0,48,0,34,0\n38,0,52,0,56,0,44,0,2,0,19,0\n26,0,22,0,11,0,25,0,46,0,47,0\n13,0,35,0,17,0,51,0,14,0,6,0\n50,0,28,0,30,0,4,0,40,0,9,0\n3,0,10,0,42,0,55,0,31,0,15,0\n23,0,37,0,2,0,27,0,1,0,8,0\n36,0,49,0,56,0,7,0,48,0,52,0\n29,0,53,0,25,0,5,0,16,0,45,0\n34,0,39,0,43,0,38,0,21,0,26,0\n24,0,41,0,12,0,33,0,20,0,44,0\n32,0,54,0,30,0,19,0,18,0,14,0\n55,0,4,0,1,0,22,0,56,0,27,0\n52,0,29,0,47,0,42,0,51,0,23,0\n46,0,31,0,28,0,36,0,35,0,34,0\n5,0,50,0,41,0,11,0,10,0,2,0\n18,0,6,0,25,0,7,0,39,0,15,0\n20,0,21,0,48,0,3,0,40,0,44,0\n43,0,13,0,8,0,32,0,45,0,24,0\n16,0,38,0,49,0,33,0,17,0,54,0\n53,0,37,0,26,0,9,0,12,0,19,0\n31,0,39,0,50,0,47,0,14,0,56,0\n34,0,29,0,11,0,6,0,1,0,48,0\n44,0,46,0,23,0,55,0,43,0,7,0\n8,0,42,0,38,0,30,0,5,0,20,0\n12,0,25,0,17,0,52,0,4,0,13,0\n2,0,15,0,54,0,35,0,26,0,40,0\n16,0,37,0,36,0,3,0,24,0,18,0\n9,0,53,0,33,0,51,0,32,0,22,0\n27,0,45,0,49,0,19,0,28,0,41,0\n10,0,14,0,4,0,21,0,6,0,23,0\n"
  },
  {
    "path": "schedules/56_8.csv",
    "content": "30,0,50,0,9,0,42,0,43,0,23,0\n24,0,52,0,22,0,12,0,18,0,36,0\n11,0,7,0,46,0,54,0,19,0,49,0\n32,0,1,0,26,0,15,0,29,0,47,0\n2,0,37,0,17,0,3,0,21,0,38,0\n14,0,27,0,56,0,4,0,41,0,5,0\n8,0,39,0,48,0,34,0,25,0,33,0\n55,0,6,0,44,0,10,0,40,0,20,0\n16,0,35,0,28,0,13,0,45,0,51,0\n31,0,19,0,9,0,53,0,36,0,3,0\n47,0,30,0,49,0,38,0,27,0,24,0\n2,0,25,0,18,0,54,0,42,0,32,0\n52,0,55,0,34,0,17,0,44,0,4,0\n11,0,6,0,45,0,23,0,41,0,21,0\n56,0,40,0,33,0,15,0,50,0,13,0\n37,0,8,0,1,0,12,0,35,0,14,0\n48,0,31,0,20,0,28,0,39,0,5,0\n10,0,53,0,22,0,7,0,26,0,51,0\n29,0,16,0,21,0,46,0,43,0,4,0\n3,1,17,0,42,0,33,1,36,0,47,0\n44,0,30,0,54,0,32,0,45,0,8,0\n52,0,50,0,20,0,27,0,31,0,37,0\n18,0,39,0,51,0,11,0,14,0,9,0\n2,0,12,0,5,0,10,0,15,0,19,0\n35,0,26,0,13,0,46,0,6,0,25,0\n34,0,49,0,22,0,1,0,43,0,40,0\n38,0,23,0,29,0,56,0,28,0,53,0\n55,0,48,0,41,0,16,0,7,0,24,0\n54,0,21,0,47,0,10,0,52,0,31,0\n17,0,45,0,19,0,20,0,18,0,13,0\n32,0,9,0,49,0,34,0,26,0,12,0\n4,0,22,0,39,0,23,0,2,0,30,0\n53,0,16,0,25,0,14,0,6,0,50,0\n33,0,7,0,44,0,37,0,56,0,24,0\n36,0,46,0,41,0,15,0,8,0,51,0\n48,0,3,0,40,0,1,0,27,0,29,0\n38,0,35,0,42,0,11,0,5,0,55,0\n28,0,26,0,17,0,43,0,14,0,54,0\n6,0,19,0,39,0,22,0,50,0,32,0\n51,0,20,0,33,0,30,0,12,0,21,0\n13,0,41,0,3,0,52,0,49,0,48,0\n38,0,8,0,10,0,16,0,42,0,1,0\n37,0,23,0,5,0,46,0,40,0,18,0\n27,0,36,0,7,0,2,0,34,0,28,0\n43,0,25,0,56,0,47,0,55,0,45,0\n4,0,29,0,9,0,24,0,35,0,31,0\n53,0,15,0,26,0,44,0,11,0,48,0\n54,0,40,0,38,0,41,0,39,0,12,0\n50,0,46,0,1,0,52,0,7,0,28,0\n51,0,6,0,2,0,5,0,17,0,47,0\n8,0,21,0,27,0,22,0,55,0,9,0\n23,0,24,0,25,0,20,0,15,0,3,0\n14,0,49,0,31,0,42,0,45,0,33,0\n18,0,43,0,10,0,53,0,4,0,35,0\n19,0,11,0,34,0,56,0,29,0,30,0\n36,0,13,0,16,0,44,0,37,0,32,0\n38,0,20,0,41,0,46,0,26,0,22,0\n40,0,28,0,45,0,33,0,9,0,2,0\n27,0,42,0,15,0,35,0,39,0,21,0\n12,0,50,0,11,0,4,0,3,0,47,0\n43,0,48,0,32,0,51,0,52,0,56,0\n6,0,31,0,29,0,8,0,18,0,7,0\n19,0,53,0,30,0,16,0,55,0,37,0\n24,0,13,0,14,0,54,0,34,0,10,0\n5,0,36,0,44,0,49,0,1,0,25,0\n23,0,46,0,27,0,17,0,32,0,33,0\n15,0,4,0,7,0,38,0,9,0,45,0\n30,0,3,0,28,0,18,0,6,0,56,0\n43,0,24,0,8,0,11,0,2,0,13,0\n21,0,50,0,55,0,36,0,48,0,26,0\n52,0,47,0,35,0,19,0,14,0,40,0\n12,0,51,0,31,0,34,0,44,0,23,0\n37,0,10,0,49,0,25,0,29,0,39,0\n41,0,53,0,42,0,20,0,17,0,1,0\n54,0,22,0,33,0,5,0,16,0,3,0\n"
  },
  {
    "path": "schedules/56_9.csv",
    "content": "17,0,52,0,9,0,13,0,49,0,51,0\n32,0,37,0,22,0,12,0,56,0,1,0\n30,0,45,0,39,0,28,0,26,0,15,0\n42,0,36,0,11,0,23,0,27,0,8,0\n40,0,5,0,16,0,25,0,48,0,46,0\n24,0,34,0,21,0,54,0,44,0,7,0\n31,0,47,0,6,0,20,0,14,0,50,0\n3,0,2,0,33,0,43,0,19,0,18,0\n41,0,38,0,10,0,4,0,53,0,55,0\n35,0,9,0,13,0,29,0,48,0,12,0\n15,0,27,0,16,0,52,0,32,0,54,0\n1,0,6,0,25,0,42,0,47,0,34,0\n7,0,31,0,11,0,45,0,33,0,49,0\n30,0,18,0,41,0,22,0,40,0,14,0\n4,0,2,0,51,0,21,0,35,0,36,0\n37,0,5,0,38,0,10,0,39,0,3,0\n20,0,53,0,19,0,23,0,24,0,17,0\n44,0,55,0,50,0,28,0,8,0,43,0\n29,0,56,0,42,0,46,0,26,0,49,0\n54,0,40,0,35,0,47,0,36,0,13,0\n15,0,52,0,31,0,12,0,3,0,34,0\n27,0,32,0,19,0,21,0,9,0,5,0\n53,0,25,0,37,0,18,0,28,0,11,0\n10,0,7,0,14,0,44,0,17,0,56,0\n23,0,6,0,50,0,2,0,55,0,26,0\n22,0,1,0,29,0,4,0,48,0,45,0\n33,0,41,0,51,0,16,0,24,0,39,0\n46,0,8,0,20,0,30,0,43,0,38,0\n21,0,28,0,10,0,52,0,36,0,12,0\n5,0,26,0,17,0,55,0,35,0,11,0\n54,0,18,0,49,0,19,0,50,0,1,0\n14,0,33,0,48,0,34,0,2,0,37,0\n4,0,8,0,9,0,24,0,31,0,40,0\n56,0,39,0,53,0,27,0,6,0,13,0\n3,0,32,0,45,0,51,0,42,0,20,0\n44,0,25,0,47,0,46,0,30,0,22,0\n16,0,41,0,43,0,7,0,38,0,23,0\n15,0,11,0,34,0,29,0,4,0,10,0\n6,0,28,0,48,0,24,0,1,0,49,0\n14,0,54,0,42,0,5,0,51,0,12,0\n8,0,55,0,45,0,18,0,52,0,56,0\n39,0,33,0,38,0,22,0,21,0,47,0\n43,0,15,0,20,0,26,0,9,0,53,0\n17,0,3,0,35,0,23,0,31,0,25,0\n36,0,37,0,46,0,19,0,7,0,41,0\n44,0,30,0,13,0,32,0,16,0,2,0\n50,0,27,0,28,0,29,0,40,0,38,0\n21,0,48,0,15,0,42,0,18,0,8,0\n49,0,47,0,53,0,5,0,24,0,3,0\n56,0,46,0,23,0,54,0,4,0,34,0\n22,0,20,0,2,0,10,0,16,0,11,0\n19,0,9,0,29,0,7,0,6,0,30,0\n52,0,26,0,35,0,44,0,40,0,33,0\n31,0,51,0,50,0,55,0,37,0,13,0\n43,0,1,0,32,0,39,0,36,0,14,0\n12,0,17,0,25,0,41,0,45,0,27,0\n47,0,5,0,28,0,16,0,56,0,8,0\n35,0,42,0,7,0,53,0,10,0,18,0\n33,0,55,0,22,0,15,0,54,0,9,0\n36,0,44,0,19,0,48,0,39,0,20,0\n24,0,26,0,4,0,52,0,14,0,25,0\n38,0,51,0,32,0,6,0,41,0,29,0\n2,0,30,0,1,0,27,0,31,0,17,0\n43,0,40,0,23,0,37,0,12,0,45,0\n3,0,11,0,21,0,13,0,50,0,46,0\n34,0,16,0,14,0,49,0,39,0,55,0\n8,0,7,0,26,0,22,0,28,0,51,0\n38,0,36,0,56,0,15,0,25,0,33,0\n12,0,4,0,18,0,6,0,5,0,44,0\n24,0,2,0,9,0,45,0,42,0,46,0\n47,0,54,0,17,0,43,0,37,0,29,0\n40,0,49,0,48,0,21,0,53,0,32,0\n34,0,41,0,50,0,20,0,27,0,35,0\n13,0,1,0,31,0,23,0,10,0,19,0\n30,0,11,0,5,0,3,0,52,0,6,0\n29,0,25,0,54,0,2,0,39,0,8,0\n4,0,32,0,46,0,17,0,28,0,33,0\n44,0,21,0,49,0,41,0,15,0,37,0\n34,0,18,0,26,0,9,0,16,0,36,0\n19,0,14,0,35,0,45,0,11,0,38,0\n13,0,42,0,52,0,43,0,22,0,31,0\n48,0,10,0,27,0,23,0,51,0,47,0\n24,0,12,0,53,0,50,0,56,0,30,0\n7,0,55,0,40,0,1,0,3,0,20,0\n"
  },
  {
    "path": "schedules/57_1.csv",
    "content": "2,0,53,0,31,0,12,0,18,0,27,0\n28,0,56,0,26,0,48,0,54,0,22,0\n29,0,47,0,30,0,14,0,39,0,11,0\n16,0,37,0,49,0,45,0,46,0,55,0\n44,0,3,0,21,0,34,0,36,0,43,0\n50,0,5,0,24,0,25,0,19,0,32,0\n17,0,23,0,51,0,15,0,13,0,42,0\n52,0,1,0,8,0,38,0,4,0,41,0\n57,0,6,0,10,0,35,0,7,0,20,0\n9,0,33,0,54,1,40,0,48,1,44,1\n"
  },
  {
    "path": "schedules/57_10.csv",
    "content": "42,0,7,0,3,0,44,0,51,0,37,0\n45,0,48,0,26,0,29,0,30,0,15,0\n4,0,33,0,54,0,2,0,39,0,34,0\n40,0,27,0,5,0,25,0,1,0,53,0\n31,0,22,0,35,0,41,0,49,0,32,0\n36,0,17,0,21,0,16,0,46,0,56,0\n8,0,14,0,43,0,6,0,38,0,18,0\n52,0,11,0,50,0,10,0,13,0,20,0\n12,0,19,0,23,0,57,0,47,0,24,0\n55,0,28,0,22,0,9,0,31,0,40,0\n42,0,1,0,4,0,29,0,32,0,46,0\n5,0,33,0,3,0,49,0,15,0,8,0\n44,0,30,0,6,0,41,0,17,0,50,0\n56,0,34,0,57,0,14,0,10,0,48,0\n36,0,26,0,25,0,19,0,9,0,52,0\n23,0,24,0,28,0,43,0,18,0,21,0\n39,0,54,0,20,0,51,0,55,0,7,0\n11,0,53,0,16,0,38,0,12,0,35,0\n47,0,2,0,13,0,27,0,37,0,45,0\n44,0,46,0,26,0,34,0,31,0,8,0\n4,0,17,0,24,0,9,0,41,0,3,0\n43,0,22,0,19,0,32,0,33,0,20,0\n36,0,39,0,5,0,35,0,18,0,23,0\n21,0,37,0,56,0,49,0,53,0,30,0\n51,0,27,0,38,0,45,0,28,0,50,0\n13,0,52,0,7,0,29,0,14,0,2,0\n57,0,42,0,55,0,25,0,11,0,47,0\n6,0,48,0,15,0,16,0,54,0,1,0\n40,0,46,0,19,0,10,0,12,0,44,0\n20,0,43,0,50,0,36,0,37,0,4,0\n31,0,7,0,32,0,21,0,53,0,38,0\n47,0,29,0,56,0,11,0,5,0,34,0\n16,0,22,0,30,0,42,0,24,0,52,0\n15,0,12,0,51,0,41,0,48,0,18,0\n45,0,49,0,2,0,25,0,17,0,14,0\n33,0,39,0,26,0,27,0,28,0,57,0\n40,0,10,0,3,0,6,0,9,0,35,0\n23,0,13,0,1,0,54,0,55,0,8,0\n34,0,47,0,53,0,15,0,20,0,41,0\n2,0,22,0,32,0,48,0,36,0,56,0\n14,0,44,0,49,0,25,0,16,0,28,0\n9,0,57,0,7,0,46,0,18,0,45,0\n35,0,29,0,55,0,19,0,30,0,38,0\n31,0,37,0,50,0,8,0,52,0,23,0\n10,0,1,0,17,0,42,0,39,0,43,0\n6,0,12,0,5,0,4,0,51,0,13,0\n54,0,27,0,26,0,11,0,24,0,40,0\n21,0,33,0,34,0,3,0,36,0,55,0\n56,0,41,0,35,0,52,0,46,0,28,0\n32,0,23,0,10,0,25,0,15,0,2,0\n9,0,49,0,50,0,39,0,12,0,29,0\n43,0,16,0,5,0,54,0,45,0,19,0\n30,0,40,0,18,0,33,0,47,0,31,0\n4,0,22,0,3,0,38,0,26,0,13,0\n11,0,8,0,42,0,7,0,48,0,24,0\n53,0,37,0,57,0,6,0,51,0,17,0\n21,0,44,0,20,0,1,0,14,0,27,0\n55,0,30,0,46,0,28,0,5,0,2,0\n10,0,47,0,43,0,3,0,26,0,16,0\n7,0,39,0,25,0,56,0,24,0,13,0\n54,0,35,0,32,0,8,0,50,0,57,0\n14,0,41,0,11,0,19,0,33,0,37,0\n15,0,31,0,42,0,36,0,6,0,27,0\n17,0,45,0,12,0,22,0,23,0,20,0\n53,0,44,0,18,0,48,0,52,0,4,0\n38,0,1,0,9,0,34,0,51,0,49,0\n21,0,29,0,8,0,40,0,25,0,41,0\n14,0,39,0,32,0,3,0,47,0,30,0\n27,0,7,0,50,0,17,0,26,0,22,0\n31,0,45,0,4,0,19,0,42,0,56,0\n12,0,18,0,24,0,37,0,1,0,34,0\n53,0,28,0,29,0,36,0,54,0,10,0\n2,0,38,0,48,0,5,0,21,0,9,0\n43,0,15,0,13,0,44,0,57,0,35,0\n16,0,51,0,52,0,40,0,55,0,33,0\n6,0,23,0,46,0,20,0,49,0,11,0\n19,0,14,0,34,0,22,0,53,0,8,0\n56,0,25,0,3,0,54,0,12,0,50,0\n32,0,36,0,24,0,5,0,44,0,45,0\n38,0,40,0,52,0,39,0,15,0,57,0\n28,0,18,0,20,0,42,0,13,0,29,0\n51,0,41,0,31,0,11,0,2,0,43,0\n55,0,27,0,48,0,49,0,46,0,37,0\n17,0,47,0,9,0,35,0,33,0,1,0\n30,0,23,0,4,0,7,0,16,0,10,0\n6,0,21,0,45,0,26,0,52,0,12,0\n2,0,18,0,42,0,19,0,50,0,53,0\n48,0,25,0,49,0,43,0,40,0,36,0\n28,0,11,0,13,0,34,0,17,0,32,0\n3,0,20,0,1,0,57,0,30,0,31,0\n35,0,51,0,46,0,24,0,14,0,26,0\n37,0,54,0,5,0,22,0,10,0,21,0\n47,0,55,0,15,0,4,0,7,0,6,0\n41,0,16,0,8,0,9,0,27,0,39,0\n38,0,29,0,44,0,23,0,33,0,56,0\n"
  },
  {
    "path": "schedules/57_11.csv",
    "content": "12,0,8,0,21,0,18,0,11,0,17,0\n48,0,42,0,23,0,34,0,10,0,38,0\n55,0,24,0,35,0,46,0,52,0,6,0\n33,0,1,0,47,0,51,0,41,0,37,0\n36,0,19,0,3,0,44,0,13,0,31,0\n40,0,45,0,7,0,43,0,15,0,49,0\n4,0,26,0,32,0,57,0,20,0,39,0\n2,0,16,0,22,0,27,0,14,0,54,0\n9,0,53,0,5,0,28,0,29,0,56,0\n25,0,30,0,31,0,50,0,6,0,42,0\n55,0,37,0,34,0,12,0,10,0,24,0\n36,0,43,0,13,0,11,0,51,0,1,0\n8,0,35,0,7,0,4,0,48,0,54,0\n45,0,21,0,56,0,44,0,57,0,52,0\n29,0,50,0,46,0,26,0,22,0,27,0\n47,0,5,0,28,0,40,0,9,0,14,0\n30,0,19,0,17,0,23,0,49,0,3,0\n41,0,15,0,53,0,32,0,25,0,38,0\n20,0,33,0,2,0,39,0,18,0,16,0\n21,1,51,0,26,0,4,1,55,0,7,0\n22,1,57,0,43,0,5,0,37,0,54,0\n50,0,9,0,36,0,23,0,6,0,45,0\n14,0,41,0,10,0,17,0,53,0,52,0\n3,0,13,0,46,0,47,0,20,0,12,0\n48,0,8,0,30,0,27,0,56,0,2,0\n16,0,38,0,49,0,31,0,28,0,11,0\n24,0,32,0,19,0,42,0,29,0,33,0\n44,0,35,0,18,0,40,0,34,0,25,0\n1,0,15,0,12,0,39,0,5,0,50,0\n23,0,55,0,22,0,7,0,13,0,53,0\n14,0,52,0,31,0,4,0,9,0,43,0\n8,0,17,0,42,0,28,0,46,0,26,0\n34,0,36,0,54,0,21,0,32,0,49,0\n38,0,27,0,40,0,37,0,3,0,33,0\n24,0,18,0,51,0,45,0,39,0,10,0\n6,0,29,0,44,0,41,0,1,0,2,0\n15,0,57,0,47,0,16,0,30,0,35,0\n11,0,25,0,20,0,19,0,56,0,48,0\n5,0,55,0,17,0,33,0,27,0,32,0\n45,0,34,0,3,0,37,0,22,0,8,0\n38,0,51,0,52,0,2,0,50,0,40,0\n41,0,54,0,30,0,28,0,13,0,39,0\n57,0,49,0,14,0,29,0,18,0,23,0\n9,0,1,0,31,0,24,0,48,0,21,0\n4,0,15,0,46,0,44,0,11,0,53,0\n19,0,12,0,25,0,7,0,47,0,43,0\n26,0,42,0,16,0,35,0,56,0,36,0\n20,0,10,0,40,0,6,0,8,0,57,0\n48,0,22,0,31,0,17,0,51,0,32,0\n37,0,23,0,44,0,52,0,11,0,5,0\n9,0,46,0,18,0,15,0,54,0,19,0\n16,0,21,0,1,0,12,0,3,0,42,0\n41,0,38,0,20,0,30,0,36,0,55,0\n4,0,29,0,2,0,28,0,45,0,25,0\n34,0,43,0,24,0,53,0,26,0,56,0\n47,0,27,0,39,0,49,0,10,0,6,0\n33,0,7,0,14,0,35,0,13,0,50,0\n40,0,18,0,48,0,22,0,41,0,42,0\n12,0,29,0,52,0,51,0,30,0,44,0\n57,0,45,0,32,0,1,0,38,0,46,0\n4,0,5,0,34,0,17,0,43,0,16,0\n27,0,24,0,28,0,15,0,36,0,7,0\n50,0,10,0,56,0,49,0,19,0,13,0\n53,0,14,0,6,0,26,0,54,0,3,0\n2,0,39,0,37,0,23,0,35,0,21,0\n31,0,33,0,55,0,25,0,47,0,8,0\n11,0,9,0,27,0,20,0,1,0,34,0\n13,0,42,0,57,0,45,0,15,0,17,0\n12,0,22,0,5,0,41,0,36,0,48,0\n6,0,51,0,40,0,19,0,16,0,53,0\n37,0,56,0,7,0,46,0,14,0,32,0\n39,0,35,0,29,0,38,0,43,0,55,0\n25,0,9,0,49,0,3,0,8,0,2,0\n54,0,44,0,21,0,24,0,50,0,20,0\n52,0,28,0,23,0,18,0,31,0,47,0\n11,0,4,0,10,0,30,0,33,0,26,0\n39,0,14,0,51,0,34,0,15,0,42,0\n48,0,49,0,2,0,55,0,57,0,53,0\n25,0,17,0,13,0,16,0,9,0,37,0\n28,0,8,0,19,0,1,0,52,0,35,0\n43,0,33,0,41,0,46,0,21,0,36,0\n45,0,18,0,30,0,5,0,7,0,26,0\n54,0,22,0,38,0,44,0,47,0,10,0\n4,0,56,0,23,0,12,0,27,0,6,0\n50,0,11,0,32,0,24,0,3,0,40,0\n20,0,29,0,53,0,31,0,42,0,37,0\n5,0,30,0,21,0,51,0,25,0,46,0\n49,0,44,0,22,0,9,0,33,0,35,0\n15,0,2,0,10,0,47,0,36,0,4,0\n23,0,1,0,54,0,40,0,26,0,55,0\n32,0,28,0,20,0,12,0,50,0,43,0\n27,0,41,0,34,0,57,0,19,0,31,0\n13,0,24,0,6,0,38,0,18,0,8,0\n16,0,48,0,11,0,45,0,29,0,14,0\n17,0,3,0,7,0,39,0,56,0,52,0\n22,0,25,0,1,0,30,0,20,0,23,0\n42,0,43,0,10,0,44,0,2,0,9,0\n32,0,47,0,53,0,21,0,27,0,18,0\n49,0,35,0,4,0,24,0,5,0,41,0\n52,0,7,0,50,0,16,0,34,0,8,0\n11,0,3,0,57,0,55,0,28,0,51,0\n17,0,39,0,46,0,29,0,40,0,36,0\n48,0,6,0,26,0,15,0,37,0,13,0\n12,0,33,0,56,0,54,0,45,0,31,0\n38,0,19,0,21,0,14,0,4,0,22,0\n"
  },
  {
    "path": "schedules/57_12.csv",
    "content": "38,0,41,0,15,0,3,0,42,0,12,0\n2,0,39,0,57,0,18,0,29,0,7,0\n25,0,37,0,55,0,24,0,14,0,49,0\n51,0,32,0,36,0,26,0,33,0,56,0\n48,0,46,0,20,0,52,0,6,0,10,0\n43,0,21,0,44,0,13,0,19,0,27,0\n9,0,11,0,16,0,1,0,5,0,17,0\n34,0,50,0,8,0,30,0,40,0,47,0\n54,0,23,0,22,0,35,0,4,0,45,0\n31,0,28,0,38,0,53,0,37,0,10,0\n26,0,43,0,12,0,29,0,20,0,14,0\n48,0,21,0,17,0,44,0,55,0,46,0\n11,0,30,0,50,0,6,0,42,0,51,0\n52,0,34,0,25,0,9,0,13,0,23,0\n24,0,33,0,39,0,45,0,47,0,19,0\n35,0,53,0,1,0,2,0,7,0,8,0\n27,0,56,0,4,0,57,0,31,0,41,0\n49,0,18,0,32,0,28,0,5,0,22,0\n54,0,3,0,15,0,36,0,40,0,16,0\n48,0,25,0,38,0,26,0,17,0,34,0\n44,0,19,0,9,0,2,0,20,0,50,0\n4,0,21,0,30,0,29,0,1,0,39,0\n37,0,27,0,51,0,8,0,5,0,46,0\n3,0,45,0,11,0,7,0,56,0,13,0\n49,0,47,0,43,0,54,0,52,0,32,0\n6,0,41,0,33,0,40,0,23,0,28,0\n36,0,18,0,22,0,42,0,15,0,24,0\n35,0,14,0,12,0,10,0,57,0,16,0\n31,0,53,0,51,0,55,0,45,0,39,0\n34,0,38,0,1,0,46,0,50,0,56,0\n3,0,2,0,40,0,25,0,32,0,4,0\n42,0,13,0,20,0,27,0,7,0,28,0\n49,0,52,0,22,0,41,0,14,0,17,0\n10,0,9,0,12,0,6,0,36,0,53,0\n30,0,57,0,26,0,24,0,55,0,43,0\n47,0,16,0,5,0,31,0,23,0,19,0\n35,0,48,0,8,0,21,0,18,0,15,0\n29,0,54,0,44,0,33,0,37,0,11,0\n56,0,49,0,39,0,14,0,42,0,9,0\n7,0,30,0,45,0,41,0,32,0,46,0\n19,0,10,0,43,0,1,0,22,0,40,0\n57,0,25,0,28,0,8,0,51,0,16,0\n13,0,55,0,26,0,47,0,15,0,12,0\n3,0,53,0,29,0,27,0,44,0,50,0\n23,0,38,0,17,0,18,0,54,0,2,0\n20,0,37,0,6,0,34,0,11,0,4,0\n52,0,33,0,31,0,24,0,35,0,21,0\n36,0,5,0,14,0,48,0,13,0,40,0\n7,0,55,0,9,0,28,0,29,0,19,0\n45,0,1,0,23,0,3,0,44,0,57,0\n34,0,56,0,18,0,10,0,49,0,54,0\n6,0,24,0,4,0,43,0,51,0,38,0\n37,0,46,0,2,0,33,0,22,0,48,0\n47,0,17,0,11,0,27,0,36,0,30,0\n41,0,35,0,42,0,16,0,53,0,26,0\n12,0,25,0,20,0,32,0,21,0,39,0\n8,0,15,0,52,0,31,0,50,0,5,0\n45,0,57,0,13,0,49,0,6,0,2,0\n14,0,47,0,18,0,4,0,51,0,29,0\n16,0,56,0,22,0,53,0,33,0,30,0\n9,0,17,0,37,0,40,0,26,0,42,0\n27,0,54,0,1,0,48,0,28,0,24,0\n34,0,10,0,41,0,5,0,25,0,21,0\n35,0,55,0,31,0,36,0,3,0,20,0\n32,0,8,0,44,0,52,0,38,0,7,0\n46,0,39,0,11,0,43,0,23,0,15,0\n19,0,50,0,42,0,12,0,4,0,54,0\n22,0,47,0,51,0,21,0,9,0,1,0\n48,0,45,0,37,0,16,0,35,0,30,0\n44,0,28,0,14,0,36,0,34,0,57,0\n41,0,40,0,11,0,38,0,55,0,18,0\n46,0,49,0,3,0,8,0,12,0,53,0\n23,0,56,0,2,0,20,0,52,0,27,0\n7,0,43,0,5,0,25,0,33,0,17,0\n19,0,6,0,32,0,31,0,15,0,29,0\n10,0,24,0,26,0,13,0,39,0,50,0\n46,0,54,0,40,0,47,0,57,0,53,0\n18,0,9,0,4,0,12,0,48,0,27,0\n30,0,42,0,55,0,52,0,44,0,5,0\n15,0,33,0,45,0,20,0,8,0,17,0\n19,0,35,0,25,0,11,0,56,0,6,0\n51,0,34,0,24,0,10,0,32,0,3,0\n36,0,29,0,26,0,49,0,31,0,1,0\n43,0,41,0,39,0,2,0,28,0,16,0\n23,0,7,0,50,0,14,0,21,0,37,0\n13,0,38,0,5,0,22,0,57,0,20,0\n30,0,15,0,10,0,54,0,9,0,25,0\n52,0,19,0,46,0,18,0,3,0,26,0\n34,0,27,0,40,0,35,0,39,0,51,0\n14,0,6,0,55,0,32,0,1,0,33,0\n41,0,23,0,8,0,17,0,24,0,29,0\n50,0,53,0,48,0,43,0,13,0,11,0\n12,0,36,0,28,0,45,0,38,0,22,0\n16,0,4,0,31,0,7,0,49,0,44,0\n2,0,21,0,47,0,42,0,56,0,37,0\n39,0,19,0,54,0,52,0,41,0,51,0\n9,0,29,0,32,0,35,0,46,0,13,0\n27,0,53,0,15,0,25,0,14,0,1,0\n22,0,10,0,8,0,55,0,11,0,23,0\n30,0,49,0,5,0,3,0,33,0,38,0\n45,0,42,0,31,0,43,0,34,0,48,0\n12,0,24,0,7,0,56,0,40,0,44,0\n26,0,21,0,28,0,4,0,36,0,2,0\n16,0,20,0,18,0,6,0,47,0,50,0\n57,0,17,0,32,0,37,0,19,0,3,0\n29,0,42,0,52,0,10,0,45,0,25,0\n51,0,40,0,7,0,23,0,49,0,48,0\n2,0,11,0,14,0,30,0,12,0,31,0\n20,0,5,0,4,0,53,0,46,0,24,0\n27,0,55,0,21,0,54,0,38,0,16,0\n50,0,17,0,28,0,35,0,47,0,56,0\n33,0,57,0,43,0,34,0,15,0,9,0\n1,0,13,0,36,0,41,0,37,0,18,0\n6,0,22,0,44,0,26,0,39,0,8,0\n"
  },
  {
    "path": "schedules/57_13.csv",
    "content": "2,0,47,0,48,0,55,0,43,0,39,0\n10,0,26,0,37,0,8,0,1,0,7,0\n50,0,49,0,25,0,57,0,46,0,38,0\n23,0,34,0,53,0,42,0,27,0,19,0\n5,0,20,0,28,0,14,0,16,0,3,0\n11,0,21,0,31,0,35,0,44,0,52,0\n33,0,29,0,54,0,40,0,30,0,45,0\n36,0,12,0,56,0,4,0,32,0,9,0\n18,0,6,0,24,0,51,0,41,0,22,0\n15,0,8,0,2,0,13,0,17,0,47,0\n53,0,21,0,10,0,37,0,49,0,5,0\n27,0,20,0,26,0,33,0,57,0,44,0\n3,0,52,0,45,0,36,0,35,0,32,0\n23,0,55,0,48,0,56,0,9,0,28,0\n17,0,39,0,29,0,19,0,6,0,50,0\n30,0,16,0,38,0,41,0,18,0,4,0\n51,0,13,0,34,0,12,0,11,0,24,0\n7,0,14,0,54,0,22,0,25,0,15,0\n31,0,40,0,43,0,42,0,46,0,1,0\n39,1,6,0,9,0,44,1,45,0,53,0\n19,0,47,0,30,0,10,1,36,0,50,0\n26,0,18,0,21,0,32,0,24,0,48,0\n27,0,5,0,35,0,37,0,54,0,22,0\n55,0,34,0,38,0,13,0,1,0,20,0\n57,0,25,0,8,0,28,0,23,0,29,0\n7,0,12,0,46,0,15,0,11,0,33,0\n42,0,31,0,16,0,51,0,2,0,3,0\n17,0,14,0,49,0,56,0,40,0,41,0\n4,0,38,0,20,0,43,0,52,0,21,0\n35,0,10,0,18,0,36,0,26,0,25,0\n5,0,44,0,39,0,32,0,34,0,15,0\n19,0,24,0,7,0,27,0,9,0,8,0\n28,0,50,0,2,0,12,0,41,0,31,0\n1,0,56,0,57,0,11,0,6,0,42,0\n17,0,45,0,54,0,14,0,46,0,55,0\n4,0,33,0,49,0,52,0,47,0,29,0\n43,0,23,0,30,0,13,0,37,0,3,0\n40,0,22,0,48,0,53,0,16,0,51,0\n34,0,36,0,44,0,1,0,18,0,28,0\n45,0,12,0,14,0,38,0,31,0,19,0\n21,0,7,0,42,0,39,0,54,0,20,0\n24,0,37,0,30,0,57,0,55,0,47,0\n56,0,50,0,15,0,16,0,29,0,35,0\n46,0,41,0,48,0,22,0,8,0,53,0\n17,0,33,0,27,0,3,0,43,0,26,0\n13,0,52,0,32,0,9,0,49,0,51,0\n40,0,23,0,2,0,10,0,11,0,5,0\n6,0,4,0,15,0,25,0,55,0,44,0\n46,0,35,0,22,0,42,0,30,0,20,0\n17,0,12,0,1,0,39,0,18,0,27,0\n54,0,47,0,56,0,28,0,53,0,26,0\n7,0,49,0,38,0,19,0,5,0,2,0\n23,0,57,0,3,0,4,0,34,0,40,0\n51,0,24,0,21,0,45,0,43,0,50,0\n11,0,29,0,8,0,36,0,9,0,14,0\n37,0,25,0,41,0,48,0,31,0,52,0\n10,0,32,0,33,0,16,0,13,0,6,0\n3,0,12,0,18,0,57,0,53,0,15,0\n22,0,55,0,17,0,44,0,21,0,23,0\n20,0,11,0,50,0,28,0,49,0,54,0\n2,0,42,0,37,0,25,0,29,0,4,0\n27,0,43,0,7,0,56,0,32,0,45,0\n52,0,19,0,14,0,48,0,1,0,30,0\n40,0,36,0,16,0,46,0,24,0,13,0\n8,0,26,0,39,0,51,0,38,0,10,0\n5,0,34,0,41,0,35,0,33,0,9,0\n47,0,31,0,53,0,6,0,17,0,7,0\n52,0,57,0,2,0,56,0,18,0,22,0\n3,0,19,0,32,0,54,0,25,0,11,0\n29,0,46,0,43,0,44,0,26,0,13,0\n48,0,50,0,9,0,35,0,38,0,40,0\n14,0,15,0,37,0,21,0,34,0,6,0\n36,0,30,0,27,0,20,0,31,0,51,0\n23,0,1,0,5,0,41,0,24,0,47,0\n16,0,12,0,55,0,49,0,10,0,42,0\n28,0,4,0,8,0,39,0,33,0,45,0\n38,0,26,0,2,0,53,0,6,0,40,0\n51,0,11,0,30,0,17,0,43,0,25,0\n56,0,31,0,13,0,5,0,54,0,24,0\n3,0,47,0,9,0,21,0,46,0,16,0\n44,0,41,0,20,0,37,0,19,0,12,0\n48,0,49,0,34,0,7,0,45,0,36,0\n22,0,42,0,32,0,28,0,15,0,10,0\n35,0,39,0,14,0,18,0,23,0,33,0\n50,0,55,0,8,0,27,0,52,0,4,0\n29,0,57,0,51,0,1,0,47,0,21,0\n26,0,11,0,49,0,34,0,30,0,31,0\n36,0,6,0,54,0,9,0,2,0,43,0\n18,0,53,0,13,0,20,0,35,0,23,0\n10,0,24,0,4,0,17,0,28,0,46,0\n15,0,29,0,3,0,27,0,48,0,38,0\n25,0,1,0,45,0,5,0,22,0,12,0\n52,0,41,0,16,0,57,0,39,0,7,0\n50,0,32,0,44,0,14,0,8,0,42,0\n19,0,40,0,33,0,56,0,55,0,37,0\n48,0,20,0,10,0,24,0,29,0,9,0\n43,0,51,0,1,0,49,0,15,0,23,0\n5,0,6,0,52,0,28,0,3,0,27,0\n12,0,44,0,38,0,7,0,47,0,16,0\n13,0,19,0,4,0,22,0,14,0,26,0\n37,0,35,0,57,0,17,0,32,0,2,0\n56,0,39,0,34,0,25,0,30,0,46,0\n42,0,53,0,41,0,55,0,11,0,45,0\n8,0,36,0,18,0,40,0,21,0,54,0\n31,0,9,0,22,0,33,0,50,0,47,0\n28,0,35,0,51,0,37,0,4,0,7,0\n46,0,6,0,26,0,52,0,23,0,12,0\n15,0,20,0,45,0,30,0,2,0,56,0\n1,0,34,0,11,0,54,0,16,0,8,0\n25,0,13,0,40,0,21,0,27,0,41,0\n38,0,42,0,33,0,17,0,36,0,48,0\n24,0,39,0,3,0,44,0,49,0,19,0\n53,0,14,0,5,0,43,0,10,0,57,0\n18,0,55,0,32,0,50,0,29,0,31,0\n40,0,28,0,52,0,15,0,13,0,12,0\n9,0,45,0,16,0,23,0,26,0,17,0\n11,0,37,0,36,0,22,0,38,0,39,0\n49,0,30,0,35,0,44,0,6,0,8,0\n54,0,10,0,31,0,57,0,4,0,48,0\n53,0,25,0,33,0,50,0,1,0,24,0\n47,0,43,0,32,0,34,0,20,0,19,0\n27,0,51,0,46,0,2,0,21,0,14,0\n29,0,42,0,55,0,7,0,5,0,18,0\n56,0,3,0,44,0,41,0,39,0,10,0\n"
  },
  {
    "path": "schedules/57_14.csv",
    "content": "22,0,57,0,52,0,7,0,25,0,37,0\n45,0,51,0,49,0,55,0,11,0,26,0\n16,0,1,0,31,0,4,0,32,0,56,0\n35,0,41,0,34,0,33,0,15,0,53,0\n21,0,27,0,6,0,10,0,43,0,24,0\n30,0,38,0,3,0,54,0,8,0,28,0\n36,0,17,0,39,0,13,0,5,0,23,0\n44,0,20,0,2,0,19,0,29,0,12,0\n47,0,9,0,46,0,50,0,14,0,40,0\n42,0,34,0,37,0,48,0,18,0,49,0\n6,0,7,0,22,0,38,0,11,0,56,0\n53,0,25,0,54,0,13,0,1,0,24,0\n26,0,2,0,36,0,8,0,20,0,32,0\n41,0,27,0,50,0,47,0,19,0,3,0\n9,0,43,0,42,0,16,0,51,0,15,0\n29,0,48,0,30,0,45,0,35,0,46,0\n18,0,33,0,44,0,52,0,55,0,17,0\n12,0,10,0,28,0,4,0,14,0,5,0\n39,0,23,0,40,0,21,0,31,0,57,0\n16,0,24,0,3,0,36,0,1,0,22,0\n15,0,48,0,43,0,38,0,54,0,26,0\n13,0,49,0,32,0,33,0,27,0,8,0\n12,0,50,0,2,0,18,0,45,0,10,0\n20,0,57,0,14,0,11,0,19,0,25,0\n6,0,44,0,46,0,31,0,39,0,9,0\n7,0,35,0,5,0,47,0,41,0,37,0\n4,0,52,0,42,0,17,0,30,0,40,0\n21,0,28,0,29,0,56,0,55,0,51,0\n34,0,53,0,12,0,23,0,32,0,38,0\n24,0,14,0,11,0,3,0,15,0,26,0\n36,0,18,0,43,0,10,0,39,0,35,0\n5,0,9,0,48,0,33,0,57,0,1,0\n42,0,50,0,47,0,56,0,13,0,21,0\n46,0,31,0,19,0,53,0,7,0,52,0\n20,0,45,0,54,0,17,0,4,0,28,0\n55,0,16,0,30,0,25,0,27,0,49,0\n8,0,44,0,41,0,6,0,51,0,2,0\n22,0,37,0,40,0,34,0,29,0,23,0\n50,0,31,0,56,0,36,0,15,0,38,0\n32,0,11,0,35,0,21,0,46,0,52,0\n26,0,16,0,18,0,13,0,47,0,57,0\n6,0,45,0,3,0,33,0,20,0,5,0\n23,0,37,0,4,0,44,0,42,0,24,0\n2,0,9,0,1,0,28,0,43,0,49,0\n10,0,54,0,30,0,19,0,40,0,34,0\n41,0,48,0,55,0,22,0,39,0,12,0\n27,0,7,0,14,0,29,0,53,0,8,0\n51,0,25,0,26,0,17,0,38,0,6,0\n18,0,15,0,24,0,20,0,16,0,46,0\n2,0,4,0,57,0,34,0,31,0,3,0\n22,0,5,0,55,0,54,0,50,0,44,0\n33,0,36,0,12,0,42,0,21,0,8,0\n25,0,47,0,56,0,53,0,39,0,45,0\n49,0,19,0,23,0,28,0,48,0,35,0\n29,0,14,0,41,0,43,0,13,0,52,0\n17,0,10,0,32,0,7,0,30,0,9,0\n37,0,51,0,1,0,27,0,11,0,40,0\n3,0,46,0,50,0,53,0,26,0,42,0\n21,0,22,0,15,0,5,0,6,0,18,0\n57,0,38,0,49,0,54,0,29,0,47,0\n25,0,35,0,23,0,10,0,2,0,56,0\n17,0,12,0,1,0,19,0,30,0,43,0\n44,0,13,0,36,0,45,0,40,0,48,0\n52,0,37,0,8,0,55,0,9,0,20,0\n51,0,14,0,39,0,32,0,16,0,34,0\n24,0,28,0,27,0,11,0,41,0,31,0\n4,0,7,0,19,0,33,0,25,0,2,0\n21,0,53,0,30,0,26,0,29,0,22,0\n43,0,1,0,8,0,56,0,23,0,52,0\n54,0,46,0,42,0,16,0,6,0,35,0\n18,0,57,0,27,0,14,0,36,0,45,0\n31,0,12,0,15,0,28,0,33,0,37,0\n40,0,55,0,32,0,47,0,24,0,5,0\n11,0,50,0,7,0,48,0,4,0,34,0\n9,0,44,0,38,0,10,0,13,0,41,0\n20,0,51,0,17,0,39,0,3,0,49,0\n14,0,6,0,33,0,36,0,37,0,30,0\n43,0,47,0,45,0,31,0,22,0,24,0\n53,0,16,0,11,0,2,0,54,0,55,0\n19,0,15,0,35,0,40,0,8,0,4,0\n42,0,10,0,29,0,32,0,48,0,39,0\n18,0,17,0,25,0,41,0,28,0,57,0\n56,0,49,0,46,0,51,0,44,0,12,0\n27,0,5,0,26,0,9,0,52,0,34,0\n7,0,38,0,20,0,50,0,21,0,1,0\n3,0,13,0,55,0,23,0,30,0,15,0\n16,0,48,0,22,0,28,0,6,0,53,0\n47,0,10,0,36,0,29,0,11,0,17,0\n32,0,26,0,57,0,27,0,37,0,44,0\n49,0,2,0,7,0,39,0,54,0,24,0\n23,0,8,0,51,0,4,0,33,0,50,0\n9,0,56,0,3,0,19,0,18,0,21,0\n40,0,52,0,1,0,45,0,41,0,12,0\n14,0,38,0,31,0,42,0,35,0,20,0\n43,0,34,0,5,0,46,0,25,0,13,0\n33,0,51,0,24,0,57,0,50,0,30,0\n47,0,21,0,17,0,2,0,48,0,8,0\n23,0,16,0,12,0,52,0,11,0,6,0\n41,0,56,0,40,0,14,0,26,0,49,0\n43,0,38,0,53,0,37,0,45,0,5,0\n25,0,1,0,39,0,3,0,44,0,35,0\n28,0,55,0,36,0,7,0,46,0,34,0\n32,0,29,0,31,0,54,0,9,0,18,0\n10,0,20,0,19,0,13,0,42,0,22,0\n15,0,27,0,52,0,4,0,47,0,12,0\n40,0,24,0,6,0,50,0,17,0,35,0\n45,0,44,0,34,0,8,0,7,0,16,0\n54,0,3,0,21,0,37,0,56,0,14,0\n1,0,26,0,28,0,55,0,42,0,33,0\n38,0,5,0,39,0,2,0,19,0,27,0\n20,0,29,0,18,0,23,0,43,0,41,0\n13,0,48,0,11,0,51,0,31,0,30,0\n22,0,4,0,53,0,49,0,36,0,9,0\n25,0,10,0,57,0,46,0,32,0,15,0\n39,0,28,0,52,0,37,0,24,0,50,0\n47,0,34,0,6,0,3,0,29,0,1,0\n12,0,55,0,14,0,17,0,31,0,48,0\n26,0,19,0,41,0,54,0,23,0,36,0\n20,0,53,0,49,0,15,0,10,0,7,0\n45,0,4,0,13,0,32,0,21,0,9,0\n30,0,8,0,56,0,16,0,57,0,5,0\n18,0,11,0,42,0,25,0,43,0,44,0\n40,0,46,0,33,0,2,0,22,0,38,0\n35,0,54,0,52,0,51,0,27,0,36,0\n45,0,19,0,32,0,15,0,6,0,49,0\n9,0,13,0,26,0,7,0,12,0,3,0\n56,0,42,0,48,0,24,0,34,0,20,0\n39,0,33,0,11,0,40,0,53,0,18,0\n23,0,28,0,44,0,14,0,47,0,30,0\n37,0,21,0,10,0,2,0,16,0,41,0\n8,0,22,0,17,0,27,0,46,0,1,0\n4,0,38,0,35,0,57,0,55,0,43,0\n50,0,51,0,29,0,31,0,25,0,5,0\n"
  },
  {
    "path": "schedules/57_2.csv",
    "content": "18,0,19,0,22,0,20,0,47,0,27,0\n46,0,35,0,9,0,4,0,6,0,55,0\n8,0,41,0,57,0,25,0,44,0,10,0\n24,0,14,0,54,0,33,0,53,0,32,0\n38,0,12,0,21,0,3,0,2,0,31,0\n56,0,26,0,5,0,16,0,37,0,28,0\n13,0,40,0,11,0,30,0,45,0,52,0\n1,0,34,0,43,0,39,0,48,0,36,0\n51,0,42,0,23,0,50,0,29,0,17,0\n49,0,7,0,9,0,15,0,41,0,12,0\n4,0,2,0,24,0,8,0,20,0,5,0\n6,0,40,0,44,0,19,0,56,0,38,0\n26,0,53,0,52,0,47,0,46,0,3,0\n55,0,33,0,31,0,13,0,29,0,1,0\n34,0,54,0,50,0,16,0,7,0,57,0\n30,0,32,0,28,0,15,0,17,0,43,0\n23,0,39,0,37,0,45,0,35,0,18,0\n21,0,27,0,36,0,25,0,51,0,11,0\n14,0,10,0,48,0,22,0,49,0,42,0\n"
  },
  {
    "path": "schedules/57_3.csv",
    "content": "41,0,13,0,31,0,29,0,17,0,45,0\n52,0,8,0,12,0,35,0,27,0,7,0\n28,0,19,0,24,0,23,0,1,0,30,0\n6,0,32,0,26,0,47,0,39,0,34,0\n48,0,25,0,44,0,4,0,49,0,46,0\n56,0,38,0,16,0,42,0,21,0,15,0\n50,0,54,0,9,0,2,0,33,0,40,0\n37,0,10,0,20,0,18,0,55,0,43,0\n53,0,51,0,36,0,3,0,22,0,11,0\n57,0,14,0,35,0,5,0,32,0,13,0\n46,1,19,0,17,0,56,1,34,0,12,0\n47,1,44,0,1,0,31,0,52,0,33,0\n40,0,29,0,38,0,23,0,43,0,4,0\n55,0,51,0,16,0,6,0,28,0,25,0\n49,0,3,0,20,0,39,0,9,0,30,0\n27,0,2,0,36,0,10,0,21,0,41,0\n50,0,8,0,11,0,14,0,42,0,37,0\n57,0,45,0,7,0,24,0,48,0,53,0\n54,0,5,0,15,0,22,0,18,0,26,0\n6,0,56,0,13,0,3,0,44,0,40,0\n34,0,9,0,35,0,36,0,31,0,25,0\n46,0,33,0,23,0,8,0,20,0,41,0\n10,0,14,0,29,0,16,0,49,0,24,0\n22,0,21,0,43,0,19,0,47,0,7,0\n53,0,4,0,42,0,27,0,18,0,32,0\n52,0,45,0,30,0,38,0,54,0,51,0\n55,0,48,0,39,0,15,0,50,0,17,0\n26,0,12,0,1,0,57,0,2,0,37,0\n11,0,28,0,46,0,5,0,56,0,47,0\n"
  },
  {
    "path": "schedules/57_4.csv",
    "content": "20,0,1,0,37,0,13,0,23,0,35,0\n45,0,57,0,28,0,16,0,18,0,48,0\n17,0,21,0,41,0,42,0,4,0,24,0\n30,0,14,0,10,0,22,0,36,0,7,0\n5,0,44,0,27,0,9,0,31,0,33,0\n15,0,50,0,53,0,52,0,40,0,26,0\n55,0,6,0,49,0,12,0,43,0,46,0\n39,0,47,0,29,0,25,0,51,0,19,0\n34,0,11,0,8,0,56,0,38,0,32,0\n3,0,2,0,35,0,54,0,42,0,36,0\n27,0,37,0,14,0,50,0,57,0,24,0\n30,0,28,0,12,0,40,0,23,0,44,0\n7,0,9,0,4,0,47,0,55,0,53,0\n56,0,33,0,46,0,17,0,10,0,29,0\n52,0,49,0,38,0,31,0,13,0,2,0\n43,0,21,0,1,0,16,0,11,0,25,0\n41,0,39,0,54,0,18,0,20,0,34,0\n19,0,48,0,15,0,22,0,6,0,8,0\n3,0,26,0,32,0,45,0,5,0,51,0\n31,0,42,0,28,0,56,0,14,0,55,0\n9,0,29,0,40,0,36,0,1,0,49,0\n53,0,20,0,11,0,57,0,30,0,46,0\n22,0,44,0,13,0,47,0,50,0,41,0\n18,0,24,0,25,0,52,0,3,0,8,0\n12,0,51,0,4,0,27,0,2,0,34,0\n35,0,33,0,43,0,39,0,45,0,15,0\n10,0,37,0,5,0,38,0,48,0,21,0\n7,0,23,0,16,0,54,0,19,0,26,0\n32,0,17,0,36,0,6,0,13,0,25,0\n47,0,40,0,42,0,46,0,27,0,8,0\n24,0,56,0,2,0,15,0,44,0,20,0\n34,0,53,0,22,0,21,0,45,0,31,0\n33,0,26,0,18,0,12,0,14,0,1,0\n11,0,23,0,3,0,41,0,29,0,48,0\n4,0,16,0,50,0,49,0,39,0,10,0\n19,0,57,0,5,0,55,0,35,0,17,0\n43,0,7,0,32,0,52,0,28,0,37,0\n6,0,38,0,51,0,30,0,54,0,9,0\n"
  },
  {
    "path": "schedules/57_5.csv",
    "content": "7,0,35,0,2,0,48,0,54,0,1,0\n30,0,19,0,53,0,38,0,47,0,25,0\n9,0,51,0,39,0,44,0,28,0,6,0\n50,0,57,0,46,0,10,0,5,0,16,0\n45,0,34,0,33,0,49,0,4,0,32,0\n42,0,36,0,26,0,21,0,11,0,3,0\n8,0,37,0,17,0,20,0,15,0,56,0\n23,0,31,0,55,0,43,0,29,0,12,0\n41,0,24,0,14,0,18,0,27,0,22,0\n40,0,34,0,48,0,52,0,13,0,46,0\n44,0,49,0,16,0,26,0,30,0,54,0\n38,0,56,0,4,0,2,0,36,0,5,0\n28,0,20,0,43,0,29,0,57,0,3,0\n15,0,10,0,14,0,25,0,11,0,31,0\n21,0,1,0,45,0,41,0,47,0,51,0\n13,0,39,0,27,0,33,0,12,0,37,0\n9,0,23,0,24,0,7,0,8,0,40,0\n52,0,22,0,6,0,19,0,17,0,32,0\n18,0,50,0,53,0,42,0,55,0,35,0\n20,1,25,0,45,0,31,1,28,0,5,0\n33,1,26,0,43,0,48,0,14,0,38,0\n15,0,4,0,29,0,39,0,1,0,40,0\n19,0,11,0,56,0,23,0,44,0,46,0\n57,0,35,0,37,0,34,0,41,0,9,0\n49,0,42,0,51,0,7,0,27,0,52,0\n16,0,8,0,36,0,55,0,47,0,22,0\n12,0,3,0,6,0,2,0,24,0,50,0\n21,0,10,0,18,0,13,0,32,0,30,0\n17,0,53,0,39,0,54,0,46,0,31,0\n33,0,28,0,41,0,19,0,42,0,40,0\n1,0,38,0,27,0,11,0,9,0,16,0\n37,0,25,0,52,0,2,0,55,0,26,0\n47,0,7,0,20,0,34,0,6,0,10,0\n57,0,21,0,8,0,14,0,12,0,53,0\n54,0,4,0,51,0,23,0,3,0,18,0\n56,0,13,0,29,0,50,0,22,0,49,0\n44,0,35,0,5,0,43,0,32,0,15,0\n17,0,30,0,48,0,24,0,36,0,45,0\n46,0,37,0,28,0,38,0,21,0,7,0\n27,0,31,0,34,0,3,0,8,0,19,0\n20,0,40,0,2,0,53,0,49,0,11,0\n9,0,12,0,22,0,26,0,4,0,10,0\n29,0,54,0,47,0,33,0,24,0,5,0\n15,0,30,0,23,0,42,0,57,0,6,0\n44,0,14,0,55,0,13,0,1,0,17,0\n25,0,32,0,50,0,41,0,39,0,48,0\n16,0,18,0,43,0,52,0,45,0,56,0\n35,0,36,0,31,0,51,0,20,0,33,0\n"
  },
  {
    "path": "schedules/57_6.csv",
    "content": "53,0,24,0,54,0,11,0,39,0,57,0\n47,0,2,0,15,0,40,0,16,0,13,0\n3,0,49,0,14,0,12,0,27,0,30,0\n20,0,56,0,51,0,37,0,33,0,1,0\n43,0,48,0,46,0,8,0,22,0,6,0\n42,0,18,0,55,0,38,0,34,0,26,0\n45,0,5,0,7,0,19,0,44,0,32,0\n21,0,52,0,23,0,17,0,50,0,10,0\n4,0,36,0,9,0,28,0,29,0,31,0\n35,0,25,0,30,0,41,0,56,0,6,0\n40,0,1,0,2,0,54,0,18,0,43,0\n45,0,33,0,27,0,13,0,24,0,42,0\n53,0,46,0,38,0,7,0,23,0,51,0\n55,0,9,0,49,0,36,0,8,0,5,0\n11,0,22,0,47,0,21,0,35,0,19,0\n25,0,16,0,26,0,28,0,17,0,12,0\n37,0,50,0,3,0,29,0,57,0,41,0\n44,0,48,0,31,0,14,0,52,0,34,0\n10,0,32,0,39,0,15,0,4,0,20,0\n18,0,22,0,7,0,49,0,47,0,27,0\n11,0,13,0,8,0,1,0,30,0,23,0\n57,0,12,0,19,0,46,0,40,0,42,0\n37,0,16,0,6,0,21,0,45,0,14,0\n15,0,29,0,52,0,25,0,54,0,5,0\n33,0,41,0,28,0,44,0,55,0,39,0\n51,0,2,0,17,0,48,0,32,0,9,0\n24,0,35,0,50,0,20,0,31,0,26,0\n38,0,36,0,10,0,43,0,56,0,3,0\n4,0,53,0,29,0,34,0,1,0,45,0\n25,0,37,0,46,0,18,0,44,0,11,0\n32,0,6,0,52,0,12,0,55,0,13,0\n39,0,16,0,7,0,50,0,9,0,30,0\n33,0,40,0,49,0,38,0,31,0,17,0\n15,0,36,0,51,0,41,0,21,0,26,0\n35,0,54,0,8,0,42,0,10,0,14,0\n43,0,19,0,20,0,28,0,53,0,27,0\n48,0,47,0,5,0,24,0,4,0,3,0\n34,0,57,0,23,0,2,0,56,0,22,0\n45,0,51,0,30,0,31,0,52,0,18,0\n10,0,26,0,29,0,6,0,40,0,7,0\n17,0,13,0,43,0,39,0,37,0,35,0\n27,0,50,0,55,0,46,0,54,0,4,0\n57,0,32,0,38,0,47,0,1,0,25,0\n34,0,19,0,8,0,16,0,3,0,33,0\n28,0,42,0,48,0,49,0,23,0,15,0\n5,0,2,0,41,0,20,0,11,0,14,0\n21,0,12,0,44,0,53,0,56,0,9,0\n24,0,22,0,30,0,36,0,32,0,37,0\n34,0,40,0,27,0,39,0,25,0,51,0\n57,0,52,0,26,0,49,0,43,0,4,0\n45,0,28,0,8,0,2,0,38,0,50,0\n17,0,56,0,14,0,47,0,29,0,46,0\n23,0,12,0,18,0,33,0,35,0,5,0\n44,0,16,0,42,0,6,0,36,0,11,0\n20,0,21,0,54,0,13,0,7,0,48,0\n31,0,15,0,22,0,53,0,55,0,3,0\n41,0,10,0,1,0,19,0,9,0,24,0\n"
  },
  {
    "path": "schedules/57_7.csv",
    "content": "38,0,19,0,33,0,34,0,45,0,32,0\n40,0,44,0,47,0,56,0,14,0,31,0\n13,0,27,0,16,0,36,0,25,0,28,0\n41,0,52,0,30,0,3,0,46,0,8,0\n21,0,54,0,18,0,29,0,1,0,12,0\n37,0,20,0,39,0,50,0,10,0,42,0\n51,0,23,0,26,0,6,0,15,0,35,0\n17,0,11,0,49,0,55,0,57,0,48,0\n22,0,9,0,5,0,43,0,4,0,2,0\n53,0,24,0,56,0,7,0,27,0,8,0\n3,0,47,0,28,0,42,0,32,0,21,0\n25,0,46,0,10,0,51,0,44,0,18,0\n35,0,29,0,45,0,20,0,16,0,17,0\n30,0,12,0,36,0,49,0,37,0,9,0\n43,0,38,0,55,0,23,0,1,0,24,0\n50,0,26,0,34,0,53,0,11,0,40,0\n14,0,15,0,52,0,22,0,7,0,39,0\n2,0,33,0,6,0,48,0,13,0,54,0\n31,0,57,0,41,0,4,0,5,0,19,0\n18,1,56,0,45,0,49,1,23,0,30,0\n53,1,10,0,9,0,35,0,28,0,1,0\n37,0,15,0,16,0,38,0,47,0,8,0\n3,0,33,0,11,0,25,0,14,0,24,0\n22,0,46,0,29,0,50,0,31,0,48,0\n17,0,19,0,12,0,52,0,40,0,42,0\n39,0,44,0,27,0,41,0,6,0,21,0\n36,0,34,0,51,0,2,0,20,0,57,0\n32,0,13,0,4,0,26,0,7,0,55,0\n43,0,5,0,18,0,54,0,16,0,47,0\n49,0,33,0,29,0,10,0,23,0,52,0\n40,0,6,0,30,0,25,0,22,0,38,0\n51,0,11,0,21,0,9,0,56,0,19,0\n46,0,2,0,7,0,27,0,55,0,45,0\n20,0,48,0,8,0,5,0,32,0,26,0\n42,0,36,0,54,0,53,0,4,0,14,0\n24,0,57,0,12,0,13,0,41,0,35,0\n1,0,15,0,3,0,50,0,44,0,17,0\n43,0,37,0,28,0,34,0,31,0,39,0\n19,0,10,0,55,0,47,0,27,0,22,0\n8,0,40,0,4,0,45,0,51,0,49,0\n42,0,5,0,24,0,6,0,36,0,29,0\n1,0,16,0,14,0,52,0,2,0,26,0\n53,0,17,0,33,0,46,0,21,0,43,0\n38,0,31,0,13,0,9,0,20,0,3,0\n48,0,56,0,34,0,12,0,25,0,15,0\n23,0,18,0,50,0,28,0,7,0,57,0\n54,0,11,0,39,0,30,0,35,0,44,0\n41,0,37,0,40,0,32,0,2,0,29,0\n21,0,31,0,26,0,10,0,24,0,45,0\n16,0,48,0,6,0,53,0,55,0,3,0\n22,0,34,0,1,0,47,0,13,0,49,0\n57,0,38,0,56,0,39,0,46,0,42,0\n8,0,44,0,36,0,35,0,18,0,19,0\n4,0,30,0,15,0,33,0,20,0,28,0\n7,0,9,0,17,0,41,0,54,0,25,0\n32,0,14,0,50,0,51,0,43,0,12,0\n27,0,52,0,37,0,11,0,23,0,5,0\n1,0,39,0,47,0,36,0,40,0,48,0\n2,0,49,0,28,0,46,0,19,0,24,0\n55,0,9,0,18,0,26,0,42,0,33,0\n44,0,7,0,10,0,16,0,38,0,12,0\n29,0,51,0,5,0,53,0,13,0,30,0\n43,0,6,0,20,0,11,0,41,0,56,0\n54,0,45,0,57,0,37,0,3,0,22,0\n35,0,4,0,25,0,21,0,50,0,52,0\n14,0,27,0,23,0,34,0,8,0,17,0\n32,0,49,0,53,0,31,0,15,0,18,0\n"
  },
  {
    "path": "schedules/57_8.csv",
    "content": "10,0,19,0,1,0,52,0,38,0,12,0\n6,0,44,0,46,0,14,0,7,0,27,0\n48,0,22,0,47,0,49,0,36,0,15,0\n39,0,42,0,50,0,16,0,55,0,17,0\n24,0,29,0,3,0,30,0,2,0,34,0\n5,0,57,0,56,0,25,0,53,0,33,0\n45,0,32,0,28,0,9,0,37,0,35,0\n31,0,41,0,51,0,43,0,11,0,8,0\n4,0,21,0,23,0,18,0,26,0,20,0\n40,0,52,0,30,0,54,0,13,0,6,0\n53,0,36,0,38,0,7,0,55,0,24,0\n5,0,50,0,15,0,44,0,27,0,56,0\n33,0,45,0,48,0,51,0,14,0,3,0\n39,0,34,0,11,0,57,0,12,0,18,0\n17,0,32,0,2,0,19,0,16,0,21,0\n28,0,31,0,20,0,26,0,29,0,47,0\n35,0,49,0,40,0,10,0,4,0,8,0\n54,0,46,0,42,0,1,0,43,0,37,0\n22,0,9,0,23,0,25,0,41,0,13,0\n51,0,34,0,36,0,17,0,6,0,5,0\n11,0,50,0,14,0,30,0,53,0,28,0\n57,0,10,0,39,0,4,0,29,0,32,0\n27,0,2,0,47,0,45,0,54,0,1,0\n46,0,22,0,12,0,56,0,55,0,21,0\n31,0,52,0,18,0,9,0,44,0,42,0\n20,0,15,0,16,0,40,0,41,0,38,0\n37,0,33,0,8,0,26,0,24,0,48,0\n7,0,43,0,35,0,25,0,3,0,23,0\n13,0,49,0,39,0,19,0,46,0,28,0\n1,0,44,0,11,0,22,0,6,0,29,0\n55,0,5,0,20,0,2,0,45,0,52,0\n4,0,54,0,51,0,32,0,24,0,36,0\n43,0,18,0,41,0,47,0,57,0,7,0\n38,0,33,0,13,0,50,0,34,0,8,0\n3,0,19,0,26,0,40,0,53,0,42,0\n37,0,30,0,25,0,15,0,10,0,21,0\n14,0,17,0,31,0,49,0,56,0,23,0\n27,0,9,0,48,0,35,0,12,0,16,0\n33,0,46,0,2,0,4,0,36,0,11,0\n7,0,28,0,40,0,22,0,5,0,32,0\n8,0,21,0,13,0,42,0,29,0,45,0\n57,0,19,0,24,0,6,0,15,0,31,0\n38,0,3,0,49,0,37,0,52,0,27,0\n26,0,25,0,54,0,12,0,48,0,50,0\n56,0,35,0,30,0,39,0,41,0,1,0\n51,0,16,0,53,0,23,0,47,0,44,0\n14,0,34,0,55,0,9,0,20,0,43,0\n17,0,18,0,27,0,10,0,22,0,33,0\n12,0,5,0,36,0,42,0,31,0,3,0\n11,0,41,0,48,0,32,0,21,0,52,0\n45,0,56,0,51,0,30,0,7,0,38,0\n2,0,15,0,44,0,13,0,35,0,26,0\n6,0,55,0,28,0,54,0,23,0,10,0\n57,0,8,0,9,0,17,0,1,0,20,0\n29,0,53,0,18,0,16,0,46,0,49,0\n40,0,25,0,24,0,39,0,14,0,47,0\n19,0,43,0,34,0,4,0,37,0,50,0\n22,0,54,0,21,0,38,0,31,0,35,0\n56,0,26,0,10,0,9,0,5,0,11,0\n49,0,12,0,32,0,44,0,30,0,20,0\n1,0,18,0,8,0,55,0,15,0,3,0\n37,0,14,0,16,0,57,0,36,0,13,0\n4,0,7,0,52,0,47,0,17,0,50,0\n48,0,2,0,6,0,43,0,39,0,53,0\n42,0,34,0,27,0,51,0,28,0,25,0\n41,0,24,0,23,0,40,0,46,0,45,0\n29,0,19,0,15,0,33,0,54,0,9,0\n4,0,16,0,5,0,21,0,1,0,14,0\n47,0,13,0,32,0,6,0,56,0,3,0\n42,0,25,0,38,0,11,0,2,0,49,0\n7,0,31,0,46,0,34,0,10,0,48,0\n43,0,45,0,26,0,52,0,22,0,39,0\n17,0,37,0,53,0,29,0,41,0,12,0\n35,0,20,0,50,0,51,0,18,0,24,0\n8,0,23,0,27,0,36,0,19,0,30,0\n40,0,55,0,44,0,33,0,57,0,28,0\n"
  },
  {
    "path": "schedules/57_9.csv",
    "content": "21,0,57,0,13,0,36,0,14,0,44,0\n55,0,39,0,35,0,50,0,24,0,38,0\n52,0,30,0,29,0,8,0,33,0,51,0\n18,0,10,0,1,0,17,0,12,0,26,0\n34,0,28,0,23,0,45,0,7,0,49,0\n41,0,19,0,43,0,27,0,5,0,42,0\n31,0,20,0,53,0,2,0,9,0,22,0\n56,0,47,0,6,0,16,0,3,0,46,0\n15,0,4,0,32,0,54,0,37,0,48,0\n11,0,25,0,8,0,40,0,21,0,34,0\n10,0,49,0,33,0,7,0,57,0,50,0\n14,0,41,0,17,0,29,0,2,0,31,0\n43,0,24,0,12,0,16,0,36,0,6,0\n52,0,19,0,44,0,38,0,1,0,28,0\n15,0,54,0,26,0,30,0,53,0,55,0\n35,0,56,0,11,0,4,0,47,0,51,0\n37,0,5,0,3,0,45,0,18,0,13,0\n48,0,25,0,39,0,46,0,23,0,20,0\n40,0,27,0,9,0,42,0,32,0,22,0\n28,1,14,0,57,0,15,1,53,0,38,0\n33,1,29,0,24,0,21,0,7,0,56,0\n1,0,36,0,26,0,34,0,8,0,5,0\n55,0,20,0,41,0,11,0,44,0,12,0\n22,0,19,0,47,0,48,0,49,0,32,0\n3,0,30,0,27,0,46,0,40,0,50,0\n43,0,9,0,51,0,4,0,23,0,18,0\n2,0,17,0,13,0,25,0,35,0,16,0\n10,0,31,0,52,0,6,0,45,0,54,0\n39,0,42,0,1,0,37,0,47,0,33,0\n11,0,26,0,41,0,19,0,24,0,57,0\n38,0,18,0,43,0,21,0,22,0,29,0\n48,0,2,0,5,0,56,0,55,0,40,0\n20,0,36,0,45,0,30,0,15,0,35,0\n42,0,16,0,53,0,46,0,34,0,52,0\n6,0,8,0,28,0,37,0,13,0,32,0\n23,0,31,0,51,0,50,0,10,0,3,0\n27,0,14,0,49,0,12,0,25,0,4,0\n7,0,9,0,54,0,44,0,17,0,39,0\n33,0,1,0,11,0,48,0,43,0,36,0\n18,0,5,0,28,0,20,0,6,0,35,0\n37,0,19,0,21,0,10,0,16,0,40,0\n52,0,57,0,23,0,32,0,55,0,2,0\n25,0,22,0,24,0,42,0,29,0,3,0\n12,0,46,0,7,0,15,0,9,0,31,0\n34,0,49,0,51,0,38,0,17,0,54,0\n8,0,50,0,45,0,47,0,53,0,41,0\n27,0,56,0,26,0,13,0,39,0,14,0\n44,0,16,0,22,0,30,0,4,0,5,0\n48,0,46,0,28,0,12,0,29,0,57,0\n18,0,25,0,42,0,31,0,36,0,54,0\n51,0,55,0,3,0,1,0,8,0,7,0\n49,0,13,0,53,0,39,0,10,0,20,0\n33,0,14,0,9,0,27,0,6,0,19,0\n40,0,4,0,24,0,47,0,17,0,52,0\n35,0,21,0,32,0,15,0,34,0,41,0\n11,0,23,0,38,0,37,0,30,0,56,0\n2,0,50,0,44,0,43,0,45,0,26,0\n16,0,48,0,14,0,51,0,39,0,18,0\n13,0,40,0,6,0,33,0,7,0,53,0\n31,0,8,0,3,0,27,0,57,0,35,0\n5,0,10,0,24,0,25,0,38,0,9,0\n34,0,47,0,44,0,29,0,23,0,15,0\n56,0,43,0,17,0,19,0,30,0,32,0\n26,0,22,0,50,0,52,0,28,0,11,0\n45,0,4,0,21,0,2,0,42,0,12,0\n37,0,55,0,36,0,41,0,46,0,49,0\n20,0,54,0,27,0,1,0,24,0,23,0\n33,0,32,0,25,0,18,0,53,0,44,0\n48,0,13,0,19,0,34,0,31,0,50,0\n7,0,42,0,4,0,38,0,26,0,8,0\n15,0,12,0,5,0,3,0,52,0,39,0\n36,0,40,0,41,0,51,0,56,0,28,0\n49,0,30,0,1,0,21,0,2,0,6,0\n54,0,10,0,46,0,35,0,22,0,14,0\n37,0,17,0,20,0,43,0,47,0,57,0\n16,0,29,0,11,0,55,0,9,0,45,0\n4,0,36,0,53,0,3,0,23,0,19,0\n39,0,21,0,30,0,41,0,31,0,28,0\n12,0,38,0,35,0,40,0,26,0,33,0\n46,0,8,0,15,0,49,0,24,0,18,0\n57,0,22,0,45,0,56,0,25,0,1,0\n54,0,29,0,32,0,11,0,5,0,13,0\n34,0,43,0,55,0,10,0,47,0,9,0\n6,0,44,0,42,0,17,0,51,0,48,0\n37,0,50,0,52,0,20,0,14,0,7,0\n2,0,16,0,15,0,27,0,28,0,33,0\n"
  },
  {
    "path": "schedules/58_1.csv",
    "content": "48,0,30,0,22,0,9,0,39,0,34,0\n14,0,21,0,28,0,11,0,23,0,46,0\n38,0,33,0,55,0,44,0,42,0,5,0\n26,0,51,0,53,0,8,0,15,0,6,0\n47,0,19,0,27,0,43,0,58,0,25,0\n17,0,1,0,37,0,3,0,24,0,12,0\n35,0,32,0,13,0,36,0,4,0,29,0\n50,0,18,0,45,0,40,0,57,0,2,0\n10,0,20,0,7,0,52,0,54,0,49,0\n56,0,41,0,15,1,16,0,31,0,51,1\n"
  },
  {
    "path": "schedules/58_10.csv",
    "content": "44,0,20,0,49,0,25,0,36,0,15,0\n7,0,8,0,48,0,43,0,55,0,19,0\n37,0,41,0,1,0,35,0,53,0,24,0\n52,0,50,0,2,0,39,0,42,0,54,0\n21,0,18,0,38,0,46,0,31,0,33,0\n51,0,23,0,26,0,9,0,12,0,16,0\n30,0,4,0,6,0,10,0,40,0,3,0\n29,0,5,0,14,0,13,0,56,0,47,0\n28,0,22,0,27,0,32,0,17,0,45,0\n11,0,58,0,46,0,57,0,34,0,19,0\n44,0,2,0,48,0,18,0,9,0,49,0\n37,0,52,0,7,0,12,0,40,0,20,0\n13,0,35,0,1,0,26,0,36,0,47,0\n42,0,24,0,22,0,25,0,38,0,55,0\n41,0,50,0,16,0,27,0,10,0,43,0\n39,0,30,0,28,0,58,0,56,0,31,0\n11,0,6,0,21,0,29,0,54,0,53,0\n5,0,51,0,33,0,8,0,57,0,4,0\n34,0,23,0,32,0,45,0,15,0,14,0\n3,0,24,0,47,0,17,0,27,0,26,0\n46,1,16,0,56,0,48,1,22,0,20,0\n53,0,13,0,30,0,50,0,38,0,44,0\n10,0,54,0,31,0,33,0,37,0,9,0\n25,0,57,0,28,0,8,0,29,0,23,0\n35,0,40,0,49,0,43,0,45,0,34,0\n21,0,5,0,3,0,2,0,42,0,58,0\n15,0,18,0,7,0,11,0,4,0,1,0\n17,0,12,0,19,0,41,0,14,0,39,0\n32,0,36,0,55,0,52,0,6,0,51,0\n24,0,57,0,20,0,31,0,50,0,43,0\n23,0,10,0,45,0,21,0,2,0,56,0\n46,0,38,0,26,0,29,0,40,0,28,0\n8,0,16,0,19,0,3,0,37,0,15,0\n51,0,30,0,44,0,54,0,47,0,34,0\n25,0,1,0,14,0,9,0,27,0,52,0\n39,0,12,0,32,0,55,0,5,0,48,0\n4,0,36,0,18,0,58,0,53,0,17,0\n6,0,33,0,22,0,35,0,7,0,41,0\n42,0,49,0,16,0,11,0,13,0,24,0\n28,0,21,0,44,0,37,0,43,0,51,0\n46,0,45,0,3,0,5,0,1,0,54,0\n14,0,10,0,32,0,58,0,18,0,8,0\n15,0,47,0,38,0,12,0,57,0,2,0\n52,0,22,0,36,0,23,0,11,0,31,0\n19,0,53,0,39,0,33,0,20,0,35,0\n48,0,29,0,9,0,30,0,50,0,27,0\n6,0,7,0,26,0,42,0,34,0,25,0\n55,0,40,0,4,0,49,0,13,0,41,0\n17,0,44,0,43,0,56,0,5,0,11,0\n18,0,19,0,10,0,28,0,47,0,52,0\n24,0,9,0,2,0,29,0,32,0,33,0\n8,0,50,0,3,0,34,0,7,0,22,0\n27,0,13,0,40,0,21,0,51,0,57,0\n25,0,45,0,41,0,58,0,37,0,36,0\n42,0,46,0,35,0,14,0,30,0,12,0\n20,0,54,0,17,0,48,0,23,0,1,0\n49,0,38,0,4,0,39,0,6,0,16,0\n31,0,15,0,55,0,56,0,26,0,53,0\n51,0,22,0,13,0,52,0,19,0,58,0\n5,0,47,0,9,0,41,0,21,0,34,0\n1,0,43,0,36,0,29,0,10,0,12,0\n27,0,8,0,24,0,39,0,46,0,44,0\n23,0,56,0,4,0,37,0,26,0,50,0\n54,0,49,0,2,0,31,0,7,0,14,0\n53,0,25,0,40,0,48,0,16,0,32,0\n6,0,15,0,42,0,28,0,33,0,17,0\n45,0,55,0,57,0,20,0,30,0,18,0\n35,0,11,0,9,0,3,0,38,0,56,0\n51,0,47,0,58,0,46,0,50,0,49,0\n12,0,54,0,21,0,4,0,25,0,24,0\n41,0,40,0,22,0,1,0,15,0,2,0\n48,0,53,0,31,0,8,0,42,0,45,0\n57,0,29,0,52,0,44,0,16,0,35,0\n13,0,23,0,33,0,3,0,32,0,43,0\n28,0,26,0,14,0,11,0,7,0,39,0\n37,0,19,0,30,0,6,0,36,0,5,0\n38,0,17,0,34,0,20,0,55,0,10,0\n18,0,56,0,42,0,27,0,49,0,51,0\n53,0,43,0,4,0,46,0,22,0,47,0\n7,0,40,0,58,0,24,0,44,0,23,0\n21,0,31,0,1,0,19,0,50,0,32,0\n45,0,20,0,9,0,12,0,13,0,6,0\n52,0,26,0,8,0,17,0,41,0,30,0\n33,0,3,0,57,0,48,0,36,0,14,0\n37,0,34,0,18,0,39,0,29,0,38,0\n2,0,55,0,16,0,35,0,54,0,28,0\n15,0,10,0,11,0,5,0,27,0,25,0\n46,0,32,0,30,0,7,0,49,0,17,0\n14,0,42,0,19,0,44,0,4,0,45,0\n58,0,43,0,48,0,1,0,38,0,6,0\n51,0,41,0,29,0,20,0,31,0,3,0\n33,0,47,0,55,0,37,0,16,0,11,0\n50,0,25,0,23,0,18,0,35,0,5,0\n12,0,27,0,34,0,2,0,53,0,28,0\n39,0,26,0,57,0,21,0,22,0,10,0\n54,0,56,0,9,0,40,0,8,0,36,0\n24,0,15,0,46,0,52,0,13,0,48,0\n"
  },
  {
    "path": "schedules/58_11.csv",
    "content": "45,0,58,0,11,0,31,0,43,0,12,0\n36,0,50,0,37,0,14,0,51,0,35,0\n7,0,15,0,21,0,26,0,8,0,13,0\n39,0,27,0,53,0,30,0,25,0,16,0\n46,0,17,0,5,0,28,0,20,0,42,0\n49,0,55,0,1,0,29,0,34,0,38,0\n10,0,44,0,52,0,9,0,18,0,24,0\n48,0,40,0,3,0,32,0,56,0,4,0\n54,0,57,0,6,0,22,0,33,0,2,0\n23,0,47,0,30,0,19,0,41,0,43,0\n37,0,7,0,27,0,58,0,12,0,5,0\n18,0,50,0,55,0,53,0,36,0,11,0\n15,0,29,0,45,0,32,0,3,0,10,0\n8,0,38,0,48,0,6,0,42,0,49,0\n21,0,23,0,22,0,44,0,14,0,46,0\n2,0,31,0,51,0,47,0,41,0,40,0\n13,0,17,0,4,0,9,0,57,0,52,0\n35,0,19,0,20,0,39,0,34,0,54,0\n24,0,56,0,25,0,16,0,26,0,28,0\n1,0,30,0,36,0,33,0,23,0,46,0\n8,1,21,0,55,0,40,1,27,0,45,0\n50,1,43,0,13,0,17,1,42,0,3,0\n53,0,54,0,9,0,48,0,15,0,51,0\n6,0,18,0,16,0,19,0,37,0,34,0\n41,0,57,0,26,0,52,0,58,0,38,0\n14,0,22,0,32,0,5,0,33,0,56,0\n29,0,1,0,11,0,20,0,47,0,24,0\n10,0,4,0,25,0,35,0,2,0,12,0\n31,0,44,0,28,0,49,0,7,0,39,0\n9,0,38,0,19,0,37,0,40,0,21,0\n34,0,45,0,22,0,50,0,30,0,3,0\n52,0,51,0,43,0,6,0,27,0,46,0\n20,0,2,0,54,0,26,0,14,0,55,0\n42,0,7,0,1,0,4,0,18,0,41,0\n31,0,39,0,16,0,29,0,17,0,36,0\n23,0,24,0,28,0,32,0,8,0,12,0\n53,0,56,0,10,0,47,0,11,0,57,0\n13,0,49,0,5,0,15,0,58,0,25,0\n44,0,35,0,43,0,33,0,48,0,20,0\n54,0,16,0,7,0,38,0,45,0,42,0\n41,0,31,0,3,0,8,0,46,0,37,0\n18,0,12,0,57,0,14,0,40,0,30,0\n50,0,15,0,4,0,39,0,21,0,47,0\n9,0,2,0,11,0,34,0,1,0,28,0\n19,0,29,0,52,0,36,0,25,0,33,0\n5,0,48,0,22,0,24,0,51,0,55,0\n6,0,10,0,17,0,26,0,49,0,23,0\n58,0,27,0,13,0,53,0,35,0,32,0\n44,0,41,0,37,0,56,0,15,0,11,0\n36,0,34,0,14,0,43,0,7,0,28,0\n3,0,12,0,16,0,1,0,52,0,48,0\n54,0,24,0,33,0,8,0,18,0,39,0\n10,0,46,0,47,0,27,0,38,0,17,0\n26,0,35,0,9,0,22,0,30,0,42,0\n56,0,55,0,13,0,50,0,6,0,23,0\n5,0,51,0,45,0,29,0,4,0,44,0\n19,0,40,0,2,0,58,0,53,0,49,0\n25,0,32,0,21,0,57,0,31,0,20,0\n3,0,8,0,47,0,12,0,36,0,9,0\n54,0,43,0,46,0,56,0,7,0,50,0\n24,0,6,0,29,0,4,0,34,0,30,0\n35,0,5,0,40,0,16,0,52,0,23,0\n25,0,42,0,14,0,55,0,10,0,19,0\n58,0,17,0,39,0,22,0,38,0,11,0\n48,0,18,0,2,0,31,0,27,0,15,0\n21,0,28,0,33,0,53,0,51,0,41,0\n49,0,20,0,37,0,57,0,13,0,45,0\n1,0,26,0,6,0,44,0,32,0,36,0\n35,0,46,0,29,0,24,0,40,0,43,0\n4,0,19,0,23,0,31,0,22,0,54,0\n56,0,51,0,8,0,39,0,2,0,30,0\n38,0,20,0,12,0,5,0,15,0,53,0\n3,0,28,0,45,0,26,0,27,0,18,0\n7,0,48,0,14,0,1,0,17,0,25,0\n44,0,16,0,47,0,57,0,58,0,55,0\n33,0,34,0,41,0,37,0,13,0,10,0\n52,0,42,0,21,0,11,0,49,0,32,0\n50,0,31,0,26,0,9,0,20,0,5,0\n1,0,40,0,15,0,35,0,28,0,6,0\n8,0,16,0,53,0,4,0,43,0,14,0\n38,0,25,0,47,0,3,0,33,0,44,0\n12,0,34,0,42,0,56,0,57,0,39,0\n36,0,27,0,49,0,22,0,41,0,24,0\n9,0,29,0,21,0,7,0,2,0,23,0\n17,0,55,0,32,0,51,0,18,0,37,0\n46,0,11,0,13,0,19,0,45,0,48,0\n58,0,10,0,30,0,54,0,50,0,52,0\n20,0,36,0,4,0,56,0,38,0,49,0\n35,0,57,0,22,0,29,0,28,0,8,0\n53,0,2,0,3,0,7,0,17,0,24,0\n27,0,11,0,51,0,23,0,13,0,40,0\n32,0,16,0,19,0,44,0,50,0,12,0\n5,0,39,0,43,0,1,0,10,0,21,0\n33,0,30,0,31,0,42,0,15,0,55,0\n14,0,58,0,41,0,9,0,45,0,6,0\n52,0,34,0,26,0,37,0,47,0,48,0\n25,0,46,0,12,0,54,0,18,0,17,0\n22,0,51,0,40,0,7,0,10,0,20,0\n27,0,8,0,57,0,19,0,50,0,1,0\n30,0,38,0,24,0,14,0,31,0,13,0\n48,0,36,0,28,0,29,0,37,0,58,0\n33,0,26,0,15,0,4,0,16,0,46,0\n41,0,11,0,6,0,3,0,54,0,5,0\n32,0,39,0,52,0,2,0,43,0,55,0\n23,0,42,0,9,0,25,0,53,0,45,0\n56,0,18,0,47,0,21,0,49,0,35,0\n34,0,8,0,50,0,44,0,40,0,17,0\n"
  },
  {
    "path": "schedules/58_12.csv",
    "content": "55,0,6,0,51,0,13,0,35,0,18,0\n56,0,25,0,8,0,34,0,19,0,53,0\n58,0,40,0,52,0,15,0,26,0,22,0\n42,0,45,0,57,0,5,0,50,0,38,0\n21,0,49,0,48,0,32,0,27,0,2,0\n41,0,44,0,36,0,14,0,39,0,20,0\n46,0,30,0,29,0,31,0,7,0,54,0\n33,0,10,0,11,0,3,0,9,0,37,0\n1,0,47,0,17,0,4,0,16,0,23,0\n12,0,28,0,8,0,43,0,24,0,45,0\n6,0,50,0,18,0,2,0,36,0,56,0\n14,0,31,0,5,0,40,0,25,0,48,0\n49,0,13,0,34,0,57,0,41,0,21,0\n20,0,35,0,23,0,42,0,19,0,54,0\n47,0,11,0,22,0,29,0,43,0,51,0\n44,0,4,0,15,0,10,0,16,0,55,0\n26,0,32,0,58,0,28,0,46,0,9,0\n12,0,33,0,1,0,39,0,17,0,52,0\n24,0,3,0,38,0,27,0,7,0,37,0\n53,0,50,0,22,0,30,0,8,0,41,0\n2,0,48,0,34,0,15,0,45,0,23,0\n40,0,19,0,44,0,6,0,4,0,43,0\n33,0,21,0,36,0,1,0,26,0,51,0\n31,0,27,0,12,0,57,0,47,0,10,0\n17,0,53,0,42,0,14,0,11,0,46,0\n13,0,54,0,3,0,58,0,24,0,39,0\n9,0,7,0,5,0,49,0,18,0,55,0\n52,0,28,0,20,0,35,0,25,0,30,0\n16,0,29,0,56,0,32,0,38,0,37,0\n19,0,10,0,12,0,48,0,1,0,36,0\n31,0,26,0,53,0,4,0,39,0,13,0\n46,0,43,0,55,0,57,0,6,0,33,0\n22,0,30,0,52,0,18,0,34,0,17,0\n29,0,50,0,20,0,58,0,23,0,14,0\n47,0,5,0,2,0,32,0,56,0,24,0\n28,0,15,0,35,0,38,0,51,0,27,0\n16,0,7,0,21,0,9,0,25,0,42,0\n49,0,54,0,44,0,11,0,45,0,8,0\n37,0,40,0,23,0,3,0,41,0,55,0\n48,0,32,0,6,0,30,0,10,0,58,0\n34,0,56,0,51,0,24,0,31,0,20,0\n27,0,47,0,19,0,50,0,52,0,46,0\n29,0,44,0,8,0,26,0,42,0,33,0\n4,0,1,0,54,0,5,0,57,0,28,0\n36,0,13,0,45,0,40,0,17,0,11,0\n15,0,39,0,41,0,18,0,43,0,7,0\n14,0,16,0,35,0,22,0,3,0,21,0\n9,0,49,0,2,0,37,0,53,0,12,0\n25,0,55,0,26,0,38,0,48,0,47,0\n57,0,44,0,17,0,29,0,40,0,28,0\n6,0,34,0,54,0,42,0,1,0,27,0\n46,0,3,0,8,0,20,0,15,0,36,0\n24,0,19,0,35,0,32,0,53,0,11,0\n9,0,14,0,43,0,56,0,23,0,52,0\n16,0,37,0,39,0,5,0,30,0,45,0\n33,0,31,0,18,0,2,0,58,0,38,0\n13,0,10,0,22,0,49,0,50,0,7,0\n12,0,4,0,41,0,51,0,21,0,25,0\n1,0,32,0,55,0,34,0,20,0,3,0\n36,0,52,0,57,0,53,0,23,0,5,0\n35,0,56,0,9,0,54,0,26,0,45,0\n2,0,37,0,31,0,14,0,28,0,22,0\n12,0,43,0,11,0,27,0,16,0,58,0\n17,0,29,0,15,0,6,0,49,0,25,0\n51,0,40,0,10,0,39,0,21,0,50,0\n47,0,44,0,30,0,41,0,19,0,38,0\n48,0,4,0,24,0,42,0,18,0,46,0\n33,0,8,0,32,0,13,0,7,0,57,0\n25,0,15,0,31,0,35,0,37,0,36,0\n28,0,39,0,45,0,29,0,52,0,21,0\n23,0,2,0,51,0,10,0,27,0,44,0\n14,0,50,0,26,0,11,0,1,0,34,0\n41,0,40,0,18,0,46,0,16,0,54,0\n58,0,5,0,17,0,7,0,8,0,19,0\n24,0,55,0,42,0,30,0,49,0,43,0\n13,0,6,0,20,0,12,0,47,0,9,0\n22,0,56,0,48,0,3,0,4,0,33,0\n38,0,45,0,18,0,53,0,1,0,10,0\n32,0,52,0,19,0,51,0,8,0,31,0\n16,0,2,0,41,0,55,0,36,0,29,0\n23,0,42,0,6,0,26,0,24,0,37,0\n57,0,22,0,35,0,44,0,9,0,48,0\n46,0,40,0,5,0,34,0,30,0,12,0\n28,0,7,0,4,0,11,0,49,0,20,0\n53,0,54,0,14,0,47,0,15,0,33,0\n27,0,39,0,25,0,56,0,58,0,13,0\n38,0,21,0,43,0,17,0,50,0,3,0\n42,0,36,0,22,0,12,0,45,0,32,0\n48,0,8,0,5,0,6,0,28,0,41,0\n7,0,47,0,29,0,52,0,35,0,34,0\n20,0,53,0,27,0,40,0,16,0,26,0\n50,0,10,0,25,0,54,0,33,0,24,0\n13,0,37,0,46,0,44,0,43,0,1,0\n18,0,51,0,19,0,49,0,57,0,3,0\n23,0,55,0,21,0,11,0,31,0,39,0\n38,0,30,0,9,0,2,0,4,0,14,0\n15,0,58,0,42,0,56,0,17,0,41,0\n43,0,20,0,5,0,48,0,29,0,10,0\n3,0,7,0,45,0,47,0,26,0,6,0\n28,0,23,0,34,0,16,0,33,0,13,0\n49,0,52,0,24,0,40,0,38,0,36,0\n8,0,14,0,27,0,55,0,4,0,19,0\n39,0,46,0,1,0,22,0,2,0,25,0\n50,0,31,0,32,0,18,0,12,0,44,0\n11,0,30,0,21,0,15,0,56,0,57,0\n51,0,9,0,53,0,54,0,17,0,37,0\n58,0,33,0,43,0,35,0,45,0,4,0\n38,0,49,0,23,0,22,0,20,0,46,0\n18,0,25,0,47,0,8,0,42,0,40,0\n3,0,19,0,36,0,28,0,13,0,2,0\n26,0,27,0,17,0,41,0,32,0,5,0\n30,0,14,0,56,0,51,0,12,0,7,0\n15,0,9,0,24,0,29,0,31,0,1,0\n21,0,54,0,58,0,55,0,44,0,53,0\n16,0,11,0,57,0,6,0,52,0,10,0\n34,0,50,0,37,0,48,0,39,0,35,0\n"
  },
  {
    "path": "schedules/58_13.csv",
    "content": "50,0,4,0,46,0,48,0,43,0,42,0\n25,0,37,0,44,0,39,0,49,0,8,0\n29,0,19,0,40,0,22,0,57,0,24,0\n36,0,17,0,20,0,35,0,18,0,16,0\n38,0,2,0,31,0,12,0,10,0,28,0\n47,0,33,0,56,0,9,0,41,0,53,0\n55,0,58,0,34,0,13,0,21,0,14,0\n30,0,1,0,15,0,26,0,54,0,7,0\n6,0,5,0,51,0,52,0,27,0,11,0\n45,0,23,0,12,0,3,0,32,0,17,0\n36,0,25,0,9,0,37,0,40,0,24,0\n56,0,48,0,35,0,16,0,39,0,34,0\n2,0,21,0,8,0,22,0,4,0,33,0\n28,0,29,0,6,0,30,0,50,0,5,0\n41,0,49,0,51,0,58,0,54,0,18,0\n44,0,10,0,38,0,13,0,43,0,15,0\n52,0,53,0,3,0,57,0,26,0,31,0\n14,0,45,0,11,0,1,0,46,0,20,0\n7,0,32,0,55,0,19,0,27,0,42,0\n23,0,29,0,50,0,47,0,18,0,41,0\n2,1,58,0,43,0,36,1,34,0,12,0\n25,0,49,0,4,0,53,0,51,0,16,0\n57,0,14,0,5,0,9,0,38,0,6,0\n35,0,30,0,45,0,32,0,22,0,8,0\n42,0,47,0,37,0,17,0,44,0,31,0\n10,0,55,0,3,0,33,0,54,0,1,0\n39,0,24,0,46,0,23,0,21,0,27,0\n52,0,13,0,28,0,48,0,19,0,15,0\n40,0,26,0,56,0,20,0,7,0,11,0\n51,0,38,0,42,0,49,0,37,0,22,0\n32,0,36,0,4,0,5,0,47,0,54,0\n39,0,50,0,1,0,21,0,30,0,34,0\n13,0,24,0,31,0,41,0,16,0,8,0\n3,0,29,0,26,0,27,0,58,0,14,0\n48,0,33,0,25,0,11,0,35,0,23,0\n53,0,55,0,43,0,20,0,19,0,45,0\n18,0,44,0,40,0,2,0,28,0,46,0\n12,0,56,0,9,0,57,0,10,0,15,0\n6,0,52,0,24,0,17,0,7,0,13,0\n33,0,34,0,50,0,49,0,26,0,38,0\n41,0,45,0,1,0,19,0,32,0,58,0\n31,0,35,0,46,0,55,0,18,0,29,0\n4,0,15,0,28,0,39,0,3,0,11,0\n17,0,27,0,10,0,30,0,36,0,22,0\n37,0,5,0,16,0,57,0,2,0,42,0\n52,0,8,0,56,0,47,0,21,0,9,0\n23,0,14,0,53,0,7,0,40,0,51,0\n25,0,6,0,54,0,12,0,43,0,44,0\n20,0,32,0,33,0,48,0,29,0,31,0\n18,0,13,0,10,0,5,0,45,0,26,0\n16,0,11,0,38,0,52,0,21,0,58,0\n23,0,37,0,30,0,4,0,55,0,19,0\n34,0,56,0,57,0,25,0,42,0,46,0\n2,0,7,0,6,0,36,0,53,0,39,0\n1,0,22,0,14,0,44,0,48,0,41,0\n8,0,17,0,40,0,50,0,51,0,3,0\n20,0,54,0,43,0,24,0,9,0,28,0\n15,0,49,0,47,0,27,0,35,0,12,0\n21,0,42,0,18,0,53,0,30,0,4,0\n32,0,2,0,29,0,38,0,56,0,25,0\n41,0,58,0,26,0,6,0,40,0,36,0\n13,0,9,0,46,0,24,0,51,0,1,0\n19,0,17,0,11,0,54,0,14,0,49,0\n35,0,43,0,22,0,31,0,23,0,5,0\n55,0,8,0,12,0,39,0,52,0,48,0\n45,0,44,0,34,0,57,0,33,0,27,0\n28,0,37,0,50,0,10,0,16,0,7,0\n47,0,20,0,53,0,15,0,3,0,38,0\n22,0,6,0,13,0,1,0,18,0,25,0\n42,0,41,0,14,0,4,0,52,0,35,0\n26,0,55,0,23,0,44,0,2,0,9,0\n50,0,45,0,27,0,54,0,56,0,37,0\n39,0,51,0,21,0,29,0,10,0,20,0\n48,0,58,0,40,0,24,0,30,0,47,0\n31,0,8,0,7,0,5,0,11,0,34,0\n32,0,49,0,57,0,43,0,17,0,28,0\n36,0,19,0,16,0,12,0,46,0,33,0\n3,0,23,0,22,0,15,0,14,0,56,0\n54,0,42,0,9,0,13,0,29,0,39,0\n53,0,31,0,58,0,50,0,24,0,35,0\n52,0,32,0,10,0,34,0,49,0,20,0\n18,0,46,0,6,0,37,0,38,0,8,0\n40,0,1,0,27,0,33,0,43,0,16,0\n36,0,48,0,21,0,19,0,44,0,3,0\n25,0,5,0,28,0,55,0,45,0,47,0\n4,0,26,0,51,0,57,0,12,0,7,0\n17,0,30,0,41,0,2,0,11,0,15,0\n39,0,27,0,54,0,40,0,38,0,14,0\n23,0,10,0,19,0,6,0,42,0,8,0\n52,0,33,0,18,0,50,0,32,0,25,0\n44,0,20,0,22,0,4,0,7,0,58,0\n5,0,53,0,21,0,48,0,17,0,26,0\n46,0,37,0,34,0,28,0,3,0,41,0\n11,0,49,0,12,0,56,0,24,0,55,0\n51,0,15,0,9,0,45,0,31,0,36,0\n57,0,35,0,47,0,13,0,1,0,2,0\n16,0,30,0,44,0,29,0,43,0,38,0\n46,0,32,0,48,0,10,0,53,0,6,0\n27,0,41,0,7,0,25,0,17,0,21,0\n42,0,15,0,26,0,58,0,8,0,28,0\n50,0,18,0,36,0,57,0,55,0,11,0\n5,0,19,0,1,0,31,0,56,0,20,0\n43,0,24,0,3,0,51,0,52,0,2,0\n40,0,4,0,45,0,29,0,49,0,35,0\n22,0,54,0,16,0,34,0,47,0,23,0\n13,0,37,0,12,0,14,0,33,0,30,0\n39,0,58,0,25,0,9,0,5,0,10,0\n55,0,28,0,38,0,51,0,17,0,56,0\n2,0,3,0,35,0,50,0,19,0,6,0\n11,0,44,0,21,0,40,0,32,0,53,0\n20,0,57,0,8,0,12,0,54,0,41,0\n16,0,24,0,42,0,15,0,45,0,33,0\n47,0,39,0,22,0,46,0,43,0,26,0\n14,0,7,0,9,0,18,0,30,0,49,0\n29,0,34,0,1,0,36,0,52,0,23,0\n48,0,27,0,13,0,37,0,4,0,31,0\n12,0,5,0,15,0,40,0,21,0,50,0\n19,0,35,0,51,0,47,0,44,0,26,0\n24,0,11,0,41,0,10,0,22,0,42,0\n43,0,14,0,8,0,2,0,56,0,36,0\n58,0,17,0,57,0,55,0,39,0,33,0\n16,0,4,0,9,0,6,0,34,0,32,0\n28,0,1,0,53,0,37,0,27,0,29,0\n18,0,7,0,38,0,3,0,48,0,45,0\n46,0,54,0,30,0,52,0,31,0,25,0\n20,0,23,0,2,0,13,0,49,0,36,0\n"
  },
  {
    "path": "schedules/58_14.csv",
    "content": "21,0,33,0,39,0,3,0,32,0,54,0\n22,0,5,0,18,0,51,0,47,0,57,0\n40,0,29,0,25,0,10,0,31,0,6,0\n20,0,37,0,12,0,23,0,13,0,36,0\n48,0,7,0,2,0,15,0,55,0,4,0\n45,0,53,0,38,0,8,0,17,0,43,0\n11,0,34,0,46,0,27,0,1,0,28,0\n24,0,44,0,52,0,56,0,30,0,14,0\n19,0,50,0,9,0,49,0,42,0,41,0\n58,0,26,0,36,0,16,0,35,0,15,0\n5,0,32,0,33,0,18,0,13,0,20,0\n21,0,48,0,43,0,2,0,40,0,11,0\n45,0,34,0,54,0,46,0,53,0,51,0\n55,0,22,0,9,0,28,0,50,0,29,0\n6,0,19,0,8,0,3,0,14,0,25,0\n35,0,1,0,42,0,7,0,23,0,58,0\n24,0,41,0,56,0,27,0,17,0,31,0\n4,0,52,0,30,0,12,0,26,0,39,0\n47,0,16,0,49,0,57,0,44,0,10,0\n38,0,34,0,29,0,37,0,19,0,45,0\n46,1,42,0,15,0,53,1,14,0,18,0\n41,1,3,0,22,0,40,1,5,0,48,0\n26,0,33,0,2,0,39,0,56,0,31,0\n43,0,16,0,1,0,54,0,47,0,35,0\n51,0,32,0,55,0,57,0,24,0,12,0\n23,0,49,0,20,0,17,0,4,0,38,0\n28,0,9,0,44,0,36,0,8,0,25,0\n27,0,7,0,52,0,21,0,6,0,58,0\n30,0,37,0,13,0,50,0,11,0,10,0\n24,0,34,0,19,0,33,0,43,0,22,0\n55,0,56,0,57,0,46,0,38,0,49,0\n2,0,47,0,12,0,25,0,17,0,23,0\n42,0,6,0,27,0,44,0,8,0,51,0\n29,0,54,0,20,0,41,0,52,0,18,0\n35,0,31,0,28,0,3,0,13,0,21,0\n45,0,7,0,4,0,16,0,40,0,30,0\n48,0,14,0,32,0,10,0,26,0,53,0\n58,0,39,0,11,0,50,0,36,0,5,0\n1,0,37,0,6,0,9,0,15,0,2,0\n23,0,52,0,33,0,38,0,28,0,41,0\n8,0,54,0,22,0,12,0,17,0,40,0\n21,0,56,0,10,0,45,0,20,0,42,0\n58,0,32,0,57,0,25,0,44,0,34,0\n37,0,14,0,36,0,29,0,19,0,30,0\n55,0,16,0,18,0,1,0,53,0,50,0\n7,0,39,0,49,0,13,0,11,0,51,0\n9,0,31,0,43,0,48,0,4,0,46,0\n27,0,3,0,47,0,15,0,24,0,26,0\n35,0,2,0,30,0,5,0,34,0,20,0\n41,0,1,0,58,0,45,0,57,0,8,0\n25,0,53,0,55,0,29,0,51,0,21,0\n13,0,44,0,38,0,40,0,10,0,22,0\n17,0,37,0,28,0,6,0,7,0,18,0\n49,0,54,0,48,0,46,0,39,0,19,0\n15,0,12,0,3,0,11,0,43,0,35,0\n42,0,33,0,56,0,47,0,36,0,4,0\n24,0,16,0,50,0,26,0,5,0,52,0\n31,0,23,0,14,0,32,0,9,0,27,0\n44,0,45,0,41,0,48,0,39,0,13,0\n21,0,54,0,53,0,30,0,6,0,49,0\n40,0,43,0,3,0,36,0,34,0,1,0\n12,0,10,0,51,0,28,0,4,0,24,0\n23,0,11,0,56,0,7,0,25,0,26,0\n8,0,46,0,31,0,5,0,15,0,37,0\n2,0,42,0,32,0,52,0,16,0,22,0\n50,0,35,0,20,0,19,0,27,0,57,0\n17,0,18,0,33,0,55,0,29,0,14,0\n47,0,9,0,48,0,58,0,38,0,30,0\n11,0,8,0,26,0,54,0,23,0,41,0\n46,0,12,0,13,0,53,0,3,0,6,0\n15,0,22,0,31,0,36,0,56,0,20,0\n34,0,50,0,39,0,7,0,37,0,55,0\n28,0,19,0,32,0,44,0,1,0,17,0\n47,0,21,0,40,0,33,0,58,0,51,0\n5,0,38,0,16,0,14,0,43,0,27,0\n25,0,10,0,52,0,35,0,9,0,45,0\n18,0,49,0,4,0,29,0,24,0,2,0\n57,0,26,0,20,0,42,0,48,0,28,0\n51,0,23,0,15,0,30,0,44,0,50,0\n31,0,13,0,5,0,47,0,17,0,55,0\n53,0,37,0,43,0,58,0,56,0,19,0\n38,0,25,0,6,0,1,0,39,0,24,0\n7,0,11,0,54,0,14,0,22,0,42,0\n40,0,18,0,45,0,9,0,36,0,3,0\n34,0,8,0,4,0,21,0,52,0,57,0\n41,0,35,0,29,0,46,0,32,0,16,0\n10,0,2,0,49,0,27,0,33,0,12,0\n38,0,19,0,42,0,31,0,55,0,30,0\n14,0,40,0,6,0,50,0,47,0,23,0\n44,0,4,0,26,0,21,0,20,0,1,0\n25,0,37,0,51,0,41,0,16,0,48,0\n11,0,15,0,17,0,52,0,34,0,9,0\n53,0,39,0,35,0,49,0,28,0,43,0\n57,0,36,0,7,0,33,0,54,0,24,0\n58,0,27,0,8,0,22,0,13,0,29,0\n32,0,10,0,45,0,46,0,18,0,2,0\n3,0,5,0,19,0,56,0,12,0,4,0\n41,0,50,0,14,0,35,0,21,0,55,0\n1,0,57,0,30,0,33,0,53,0,31,0\n27,0,29,0,15,0,40,0,42,0,39,0\n52,0,17,0,36,0,7,0,46,0,10,0\n11,0,38,0,3,0,2,0,51,0,20,0\n6,0,13,0,26,0,43,0,18,0,25,0\n45,0,49,0,58,0,23,0,22,0,32,0\n47,0,44,0,5,0,54,0,9,0,37,0\n56,0,48,0,8,0,34,0,28,0,16,0\n24,0,36,0,40,0,12,0,42,0,53,0\n1,0,19,0,51,0,52,0,11,0,14,0\n46,0,17,0,22,0,25,0,21,0,30,0\n43,0,57,0,29,0,44,0,3,0,7,0\n55,0,49,0,26,0,10,0,37,0,8,0\n9,0,23,0,24,0,39,0,20,0,16,0\n34,0,18,0,58,0,31,0,41,0,12,0\n35,0,5,0,4,0,33,0,45,0,6,0\n27,0,48,0,50,0,47,0,32,0,56,0\n15,0,13,0,28,0,2,0,38,0,54,0\n26,0,51,0,40,0,49,0,17,0,19,0\n39,0,9,0,14,0,34,0,57,0,22,0\n16,0,44,0,6,0,11,0,33,0,55,0\n24,0,42,0,3,0,35,0,58,0,37,0\n1,0,23,0,10,0,5,0,53,0,56,0\n25,0,4,0,32,0,15,0,43,0,54,0\n46,0,30,0,36,0,13,0,2,0,41,0\n20,0,28,0,52,0,29,0,47,0,45,0\n50,0,7,0,31,0,12,0,8,0,38,0\n27,0,21,0,23,0,18,0,48,0,24,0\n6,0,17,0,34,0,42,0,58,0,10,0\n43,0,56,0,2,0,9,0,41,0,51,0\n47,0,53,0,22,0,4,0,37,0,11,0\n25,0,46,0,50,0,33,0,36,0,38,0\n28,0,14,0,5,0,40,0,49,0,52,0\n29,0,44,0,12,0,26,0,48,0,1,0\n8,0,39,0,30,0,35,0,32,0,18,0\n16,0,57,0,13,0,21,0,19,0,15,0\n27,0,54,0,55,0,45,0,31,0,3,0\n20,0,46,0,41,0,7,0,53,0,40,0\n"
  },
  {
    "path": "schedules/58_2.csv",
    "content": "49,0,53,0,11,0,1,0,36,0,14,0\n4,0,10,0,23,0,34,0,2,0,19,0\n7,0,8,0,16,0,57,0,17,0,48,0\n25,0,29,0,9,0,32,0,45,0,33,0\n55,0,12,0,56,0,26,0,27,0,38,0\n15,0,30,0,47,0,51,0,13,0,18,0\n50,0,22,0,42,0,3,0,37,0,52,0\n40,0,21,0,20,0,43,0,46,0,58,0\n44,0,6,0,24,0,41,0,31,0,39,0\n35,0,5,0,34,0,54,0,28,0,17,0\n48,0,47,0,26,0,9,0,36,0,10,0\n18,0,25,0,8,0,55,0,11,0,50,0\n58,0,3,0,29,0,15,0,7,0,19,0\n13,0,23,0,40,0,42,0,24,0,53,0\n2,0,31,0,49,0,46,0,5,0,56,0\n12,0,32,0,35,0,22,0,44,0,16,0\n33,0,43,0,28,0,41,0,30,0,38,0\n21,0,37,0,39,0,27,0,14,0,4,0\n1,0,52,0,45,0,51,0,20,0,54,0\n57,0,9,1,18,1,6,0,50,1,10,1\n"
  },
  {
    "path": "schedules/58_3.csv",
    "content": "33,0,24,0,58,0,47,0,14,0,19,0\n41,0,34,0,4,0,39,0,13,0,15,0\n56,0,18,0,10,0,29,0,36,0,52,0\n31,0,38,0,40,0,43,0,37,0,6,0\n28,0,16,0,45,0,1,0,8,0,25,0\n57,0,50,0,23,0,53,0,26,0,11,0\n54,0,49,0,48,0,55,0,17,0,44,0\n9,0,21,0,12,0,5,0,35,0,46,0\n2,0,32,0,3,0,30,0,27,0,7,0\n20,0,42,0,58,0,51,0,22,0,16,0\n29,0,38,0,8,0,57,0,24,0,34,0\n39,0,18,0,53,0,45,0,48,0,33,0\n47,0,13,0,25,0,36,0,46,0,40,0\n43,0,11,0,54,0,32,0,4,0,56,0\n7,0,35,0,23,0,44,0,20,0,52,0\n27,0,14,0,21,0,31,0,51,0,50,0\n22,0,41,0,2,0,6,0,49,0,26,0\n15,0,17,0,28,0,42,0,9,0,10,0\n37,0,1,0,55,0,19,0,3,0,12,0\n5,0,36,0,16,0,30,0,23,0,33,0\n8,0,46,0,44,0,14,0,11,0,39,0\n52,0,31,0,54,0,41,0,53,0,47,0\n40,0,21,0,32,0,28,0,58,0,18,0\n26,0,13,0,27,0,1,0,38,0,42,0\n34,0,48,0,35,0,22,0,37,0,10,0\n57,0,45,0,15,0,56,0,12,0,2,0\n49,0,29,0,20,0,3,0,5,0,25,0\n17,0,6,0,19,0,50,0,4,0,7,0\n9,0,30,0,51,0,43,0,55,0,24,0\n"
  },
  {
    "path": "schedules/58_4.csv",
    "content": "34,0,5,0,23,0,21,0,4,0,28,0\n22,0,1,0,8,0,13,0,10,0,33,0\n41,0,26,0,42,0,14,0,52,0,16,0\n51,0,6,0,29,0,17,0,36,0,37,0\n2,0,56,0,31,0,20,0,45,0,18,0\n27,0,48,0,50,0,19,0,9,0,54,0\n57,0,47,0,12,0,15,0,49,0,35,0\n39,0,53,0,43,0,11,0,38,0,58,0\n55,0,7,0,40,0,3,0,24,0,32,0\n46,0,44,0,52,0,30,0,25,0,51,0\n18,0,33,0,42,0,5,0,27,0,6,0\n15,0,29,0,50,0,13,0,31,0,28,0\n4,0,47,0,22,0,14,0,2,0,53,0\n39,0,9,0,32,0,12,0,21,0,20,0\n17,0,41,0,30,0,8,0,57,0,48,0\n7,0,43,0,10,0,37,0,16,0,23,0\n36,0,44,0,54,0,24,0,38,0,35,0\n40,0,19,0,26,0,46,0,56,0,49,0\n25,0,55,0,34,0,58,0,1,0,45,0\n11,0,18,0,13,0,3,0,21,0,30,0\n20,1,23,0,48,0,22,1,6,0,15,0\n32,0,52,0,36,0,43,0,47,0,33,0\n24,0,19,0,28,0,51,0,39,0,42,0\n35,0,10,0,17,0,40,0,9,0,58,0\n3,0,56,0,12,0,54,0,25,0,41,0\n4,0,16,0,38,0,45,0,46,0,57,0\n37,0,14,0,31,0,34,0,11,0,27,0\n53,0,50,0,5,0,26,0,1,0,7,0\n49,0,2,0,29,0,55,0,44,0,8,0\n25,0,13,0,20,0,47,0,42,0,40,0\n21,0,24,0,22,0,56,0,17,0,52,0\n3,0,35,0,16,0,48,0,51,0,34,0\n45,0,30,0,27,0,23,0,36,0,53,0\n9,0,1,0,28,0,18,0,49,0,43,0\n44,0,26,0,11,0,4,0,32,0,10,0\n58,0,46,0,54,0,2,0,15,0,5,0\n8,0,38,0,6,0,19,0,31,0,12,0\n14,0,7,0,33,0,29,0,57,0,39,0\n55,0,37,0,20,0,50,0,41,0,22,0\n"
  },
  {
    "path": "schedules/58_5.csv",
    "content": "7,0,27,0,54,0,58,0,45,0,22,0\n51,0,4,0,47,0,38,0,41,0,46,0\n35,0,11,0,40,0,29,0,24,0,15,0\n48,0,9,0,34,0,18,0,55,0,13,0\n23,0,19,0,33,0,26,0,36,0,10,0\n49,0,42,0,12,0,44,0,17,0,21,0\n57,0,50,0,53,0,3,0,28,0,1,0\n25,0,52,0,39,0,37,0,20,0,6,0\n2,0,16,0,8,0,5,0,32,0,31,0\n14,0,56,0,40,0,43,0,30,0,58,0\n23,0,7,0,11,0,44,0,55,0,47,0\n36,0,45,0,4,0,35,0,48,0,42,0\n3,0,27,0,13,0,24,0,21,0,52,0\n17,0,15,0,57,0,33,0,51,0,39,0\n28,0,25,0,22,0,31,0,29,0,38,0\n50,0,37,0,32,0,46,0,14,0,12,0\n26,0,30,0,49,0,9,0,20,0,16,0\n19,0,54,0,1,0,18,0,43,0,5,0\n2,0,6,0,10,0,56,0,34,0,53,0\n41,0,21,0,28,0,8,0,23,0,58,0\n32,1,47,0,48,0,40,1,33,0,25,0\n7,1,29,0,36,0,57,1,9,0,12,0\n52,0,55,0,1,0,16,0,22,0,4,0\n20,0,5,0,35,0,27,0,10,0,44,0\n42,0,39,0,8,0,46,0,34,0,11,0\n49,0,24,0,41,0,18,0,50,0,56,0\n14,0,15,0,38,0,13,0,19,0,2,0\n54,0,30,0,53,0,17,0,31,0,37,0\n43,0,26,0,3,0,51,0,45,0,6,0\n10,0,58,0,46,0,57,0,16,0,25,0\n44,0,22,0,56,0,32,0,36,0,39,0\n41,0,34,0,5,0,7,0,15,0,52,0\n27,0,55,0,37,0,40,0,42,0,2,0\n45,0,29,0,14,0,53,0,49,0,33,0\n30,0,51,0,19,0,11,0,28,0,48,0\n18,0,23,0,17,0,3,0,38,0,20,0\n26,0,12,0,13,0,8,0,1,0,35,0\n50,0,9,0,21,0,54,0,6,0,4,0\n43,0,31,0,34,0,47,0,24,0,57,0\n10,0,41,0,55,0,45,0,32,0,30,0\n16,0,3,0,42,0,29,0,56,0,19,0\n18,0,53,0,46,0,26,0,52,0,40,0\n28,0,35,0,39,0,7,0,49,0,2,0\n58,0,47,0,36,0,50,0,13,0,17,0\n33,0,37,0,43,0,21,0,11,0,22,0\n51,0,14,0,44,0,54,0,8,0,25,0\n31,0,1,0,15,0,9,0,23,0,27,0\n6,0,5,0,24,0,48,0,38,0,12,0\n20,0,32,0,7,0,4,0,40,0,57,0\n"
  },
  {
    "path": "schedules/58_6.csv",
    "content": "53,0,4,0,36,0,41,0,24,0,46,0\n44,0,40,0,42,0,52,0,17,0,22,0\n43,0,29,0,23,0,48,0,58,0,9,0\n50,0,8,0,20,0,49,0,1,0,26,0\n34,0,39,0,10,0,30,0,13,0,51,0\n2,0,19,0,54,0,3,0,28,0,31,0\n7,0,47,0,11,0,35,0,45,0,27,0\n32,0,5,0,57,0,33,0,14,0,25,0\n15,0,6,0,55,0,18,0,12,0,38,0\n21,0,16,0,20,0,56,0,37,0,44,0\n8,0,40,0,29,0,30,0,24,0,54,0\n53,0,31,0,58,0,13,0,52,0,47,0\n10,0,22,0,57,0,35,0,4,0,28,0\n32,0,36,0,48,0,50,0,34,0,15,0\n46,0,51,0,25,0,21,0,38,0,27,0\n14,0,39,0,18,0,45,0,23,0,7,0\n43,0,26,0,16,0,41,0,12,0,42,0\n9,0,19,0,56,0,49,0,55,0,5,0\n33,0,6,0,17,0,37,0,1,0,3,0\n11,0,38,0,24,0,2,0,52,0,32,0\n51,0,15,0,54,0,7,0,20,0,57,0\n27,0,28,0,39,0,53,0,40,0,43,0\n29,0,49,0,18,0,41,0,34,0,21,0\n17,0,12,0,45,0,9,0,31,0,46,0\n14,0,58,0,3,0,25,0,35,0,8,0\n42,0,2,0,56,0,10,0,36,0,1,0\n55,0,33,0,13,0,48,0,4,0,16,0\n30,0,37,0,19,0,22,0,26,0,11,0\n50,0,23,0,5,0,47,0,44,0,6,0\n35,0,9,0,34,0,20,0,38,0,53,0\n45,0,25,0,49,0,24,0,28,0,15,0\n56,0,27,0,41,0,57,0,17,0,13,0\n37,0,7,0,12,0,2,0,40,0,48,0\n30,0,4,0,1,0,44,0,18,0,43,0\n29,0,47,0,26,0,36,0,3,0,39,0\n6,0,32,0,46,0,54,0,42,0,58,0\n11,0,10,0,55,0,50,0,21,0,14,0\n51,0,52,0,8,0,33,0,23,0,19,0\n5,0,31,0,1,0,16,0,22,0,27,0\n36,0,44,0,57,0,49,0,38,0,39,0\n20,0,2,0,45,0,6,0,13,0,29,0\n34,0,14,0,12,0,54,0,47,0,4,0\n21,0,9,0,30,0,15,0,42,0,33,0\n16,0,50,0,24,0,58,0,51,0,17,0\n48,0,41,0,28,0,11,0,8,0,5,0\n22,0,46,0,3,0,7,0,56,0,43,0\n26,0,40,0,35,0,32,0,31,0,23,0\n53,0,18,0,19,0,10,0,37,0,25,0\n52,0,36,0,58,0,55,0,30,0,20,0\n21,0,2,0,4,0,5,0,39,0,17,0\n50,0,28,0,12,0,29,0,56,0,33,0\n41,0,38,0,51,0,40,0,1,0,45,0\n3,0,11,0,57,0,16,0,23,0,53,0\n31,0,34,0,7,0,42,0,55,0,25,0\n26,0,48,0,27,0,10,0,6,0,24,0\n47,0,22,0,9,0,8,0,32,0,18,0\n35,0,52,0,49,0,37,0,54,0,43,0\n15,0,46,0,13,0,14,0,44,0,19,0\n"
  },
  {
    "path": "schedules/58_7.csv",
    "content": "51,0,27,0,11,0,40,0,33,0,9,0\n22,0,1,0,14,0,4,0,43,0,52,0\n20,0,26,0,39,0,50,0,45,0,25,0\n54,0,35,0,57,0,29,0,53,0,21,0\n56,0,7,0,48,0,17,0,13,0,28,0\n34,0,12,0,42,0,46,0,10,0,58,0\n47,0,32,0,31,0,15,0,5,0,8,0\n55,0,24,0,37,0,19,0,2,0,16,0\n6,0,49,0,36,0,18,0,44,0,30,0\n38,0,3,0,28,0,41,0,23,0,35,0\n45,0,52,0,9,0,13,0,42,0,54,0\n20,0,4,0,31,0,11,0,33,0,10,0\n37,0,40,0,25,0,47,0,5,0,7,0\n17,0,51,0,21,0,39,0,24,0,18,0\n57,0,16,0,27,0,34,0,26,0,38,0\n46,0,56,0,30,0,55,0,14,0,29,0\n19,0,12,0,22,0,8,0,49,0,23,0\n58,0,41,0,32,0,1,0,36,0,53,0\n50,0,6,0,43,0,2,0,48,0,3,0\n44,0,35,0,52,0,15,0,24,0,20,0\n17,1,5,0,16,0,9,1,28,0,14,0\n33,0,23,0,47,0,55,0,57,0,42,0\n13,0,10,0,26,0,22,0,40,0,30,0\n50,0,46,0,54,0,19,0,36,0,27,0\n12,0,1,0,25,0,48,0,31,0,44,0\n4,0,56,0,2,0,41,0,51,0,49,0\n15,0,53,0,34,0,37,0,21,0,3,0\n18,0,8,0,43,0,29,0,45,0,38,0\n11,0,58,0,7,0,6,0,39,0,32,0\n22,0,48,0,24,0,57,0,9,0,31,0\n42,0,25,0,36,0,35,0,51,0,56,0\n52,0,47,0,3,0,27,0,21,0,30,0\n41,0,8,0,40,0,14,0,17,0,34,0\n37,0,23,0,29,0,10,0,50,0,32,0\n26,0,33,0,49,0,1,0,15,0,7,0\n38,0,2,0,13,0,12,0,5,0,39,0\n19,0,45,0,4,0,6,0,44,0,53,0\n18,0,28,0,58,0,20,0,55,0,54,0\n16,0,46,0,21,0,43,0,11,0,23,0\n27,0,7,0,10,0,51,0,24,0,8,0\n36,0,39,0,14,0,12,0,37,0,33,0\n50,0,15,0,30,0,38,0,42,0,4,0\n9,0,54,0,26,0,47,0,44,0,56,0\n49,0,53,0,17,0,52,0,55,0,5,0\n18,0,41,0,3,0,11,0,22,0,25,0\n34,0,2,0,29,0,1,0,28,0,45,0\n43,0,35,0,19,0,40,0,58,0,31,0\n57,0,32,0,13,0,6,0,16,0,20,0\n48,0,53,0,51,0,46,0,23,0,26,0\n24,0,11,0,14,0,38,0,54,0,49,0\n12,0,29,0,17,0,15,0,22,0,27,0\n25,0,8,0,2,0,30,0,33,0,58,0\n28,0,57,0,10,0,44,0,43,0,39,0\n7,0,36,0,55,0,9,0,34,0,4,0\n5,0,48,0,21,0,20,0,42,0,19,0\n1,0,18,0,35,0,47,0,13,0,50,0\n41,0,37,0,6,0,52,0,31,0,46,0\n45,0,56,0,40,0,3,0,32,0,16,0\n4,0,28,0,24,0,26,0,8,0,12,0\n30,0,5,0,43,0,34,0,51,0,54,0\n38,0,10,0,19,0,25,0,9,0,17,0\n42,0,31,0,14,0,7,0,18,0,53,0\n45,0,32,0,11,0,48,0,55,0,35,0\n49,0,29,0,39,0,16,0,47,0,41,0\n44,0,37,0,13,0,58,0,23,0,27,0\n21,0,33,0,6,0,50,0,22,0,56,0\n52,0,40,0,15,0,2,0,36,0,57,0\n20,0,3,0,9,0,46,0,1,0,17,0\n"
  },
  {
    "path": "schedules/58_8.csv",
    "content": "33,0,23,0,24,0,41,0,42,0,30,0\n47,0,4,0,8,0,46,0,26,0,7,0\n17,0,52,0,48,0,34,0,56,0,44,0\n45,0,1,0,28,0,11,0,10,0,19,0\n21,0,54,0,39,0,9,0,15,0,29,0\n32,0,5,0,25,0,43,0,27,0,53,0\n37,0,13,0,50,0,38,0,36,0,55,0\n6,0,2,0,14,0,51,0,31,0,35,0\n57,0,3,0,40,0,58,0,16,0,18,0\n49,0,22,0,52,0,20,0,12,0,45,0\n25,0,9,0,26,0,17,0,42,0,32,0\n36,0,23,0,43,0,53,0,34,0,11,0\n8,0,10,0,51,0,44,0,39,0,27,0\n29,0,1,0,40,0,47,0,30,0,31,0\n35,0,28,0,33,0,12,0,18,0,15,0\n7,0,50,0,14,0,56,0,54,0,3,0\n38,0,46,0,48,0,5,0,16,0,21,0\n19,0,49,0,58,0,22,0,13,0,6,0\n41,0,55,0,37,0,57,0,20,0,4,0\n2,0,32,0,40,0,24,0,17,0,11,0\n36,1,31,0,25,0,45,1,10,0,33,0\n18,1,39,0,43,0,21,1,48,0,14,0\n49,0,44,0,12,0,7,0,5,0,1,0\n28,0,55,0,27,0,26,0,52,0,23,0\n35,0,54,0,53,0,19,0,41,0,47,0\n13,0,24,0,57,0,34,0,8,0,22,0\n20,0,2,0,42,0,38,0,3,0,29,0\n16,0,9,0,51,0,4,0,58,0,50,0\n15,0,6,0,30,0,46,0,37,0,56,0\n23,0,14,0,55,0,21,0,49,0,40,0\n19,0,54,0,52,0,24,0,43,0,31,0\n5,0,12,0,29,0,26,0,11,0,41,0\n1,0,57,0,8,0,9,0,2,0,36,0\n20,0,33,0,50,0,6,0,17,0,27,0\n32,0,10,0,7,0,58,0,15,0,48,0\n53,0,56,0,22,0,42,0,16,0,39,0\n3,0,34,0,35,0,45,0,4,0,30,0\n38,0,18,0,13,0,44,0,46,0,25,0\n47,0,51,0,17,0,37,0,28,0,21,0\n10,0,5,0,36,0,40,0,54,0,20,0\n29,0,6,0,58,0,12,0,23,0,8,0\n19,0,55,0,50,0,30,0,7,0,2,0\n35,0,44,0,13,0,32,0,16,0,33,0\n42,0,47,0,45,0,15,0,27,0,14,0\n53,0,26,0,37,0,24,0,48,0,1,0\n11,0,4,0,18,0,38,0,52,0,39,0\n31,0,46,0,9,0,28,0,43,0,22,0\n41,0,34,0,51,0,25,0,49,0,3,0\n56,0,10,0,17,0,57,0,35,0,23,0\n7,0,20,0,21,0,13,0,53,0,45,0\n18,0,5,0,8,0,19,0,32,0,15,0\n4,0,44,0,6,0,36,0,28,0,42,0\n50,0,31,0,26,0,39,0,34,0,49,0\n52,0,1,0,46,0,41,0,58,0,14,0\n9,0,56,0,27,0,40,0,24,0,38,0\n11,0,3,0,22,0,48,0,55,0,47,0\n29,0,30,0,33,0,51,0,43,0,57,0\n2,0,12,0,16,0,37,0,54,0,25,0\n31,0,15,0,41,0,36,0,17,0,13,0\n20,0,14,0,19,0,4,0,23,0,9,0\n39,0,58,0,28,0,5,0,24,0,55,0\n34,0,57,0,38,0,47,0,32,0,6,0\n42,0,12,0,48,0,40,0,51,0,46,0\n3,0,21,0,53,0,33,0,52,0,8,0\n56,0,45,0,16,0,26,0,2,0,43,0\n29,0,25,0,22,0,50,0,1,0,35,0\n11,0,49,0,27,0,30,0,54,0,44,0\n37,0,7,0,34,0,10,0,18,0,9,0\n39,0,19,0,36,0,3,0,12,0,46,0\n47,0,2,0,23,0,5,0,13,0,52,0\n4,0,21,0,32,0,56,0,31,0,1,0\n48,0,25,0,30,0,28,0,8,0,20,0\n17,0,55,0,54,0,18,0,45,0,51,0\n43,0,58,0,42,0,35,0,49,0,37,0\n44,0,15,0,40,0,57,0,53,0,50,0\n26,0,33,0,22,0,38,0,14,0,10,0\n27,0,41,0,7,0,11,0,6,0,16,0\n24,0,36,0,18,0,29,0,45,0,21,0\n"
  },
  {
    "path": "schedules/58_9.csv",
    "content": "41,0,12,0,30,0,45,0,19,0,22,0\n7,0,25,0,51,0,13,0,24,0,2,0\n17,0,55,0,14,0,1,0,56,0,38,0\n50,0,36,0,18,0,43,0,44,0,37,0\n52,0,49,0,47,0,33,0,58,0,3,0\n35,0,5,0,40,0,9,0,54,0,32,0\n10,0,16,0,6,0,11,0,26,0,20,0\n21,0,48,0,39,0,53,0,42,0,23,0\n28,0,27,0,8,0,57,0,4,0,15,0\n31,0,46,0,14,0,34,0,29,0,25,0\n43,0,52,0,58,0,55,0,24,0,45,0\n38,0,9,0,12,0,33,0,49,0,32,0\n42,0,47,0,10,0,2,0,41,0,40,0\n21,0,3,0,6,0,22,0,44,0,8,0\n50,0,26,0,23,0,34,0,54,0,1,0\n57,0,20,0,7,0,35,0,36,0,19,0\n13,0,46,0,11,0,18,0,4,0,39,0\n29,0,37,0,5,0,28,0,53,0,17,0\n51,0,30,0,15,0,56,0,16,0,31,0\n27,0,47,0,34,0,48,0,52,0,10,0\n42,0,49,0,41,0,14,0,35,0,23,0\n44,0,45,0,3,0,25,0,57,0,26,0\n46,0,5,0,1,0,7,0,2,0,43,0\n50,0,17,0,22,0,16,0,53,0,4,0\n18,0,32,0,21,0,55,0,36,0,31,0\n48,0,29,0,51,0,30,0,39,0,9,0\n33,0,24,0,40,0,6,0,19,0,15,0\n56,0,58,0,13,0,12,0,11,0,27,0\n38,0,37,0,28,0,20,0,8,0,54,0\n21,0,35,0,16,0,5,0,18,0,47,0\n4,0,43,0,32,0,52,0,42,0,51,0\n49,0,26,0,55,0,17,0,7,0,40,0\n9,0,10,0,25,0,58,0,12,0,53,0\n34,0,22,0,20,0,24,0,39,0,44,0\n30,0,19,0,27,0,3,0,37,0,1,0\n41,0,11,0,38,0,48,0,15,0,46,0\n2,0,57,0,54,0,6,0,56,0,29,0\n13,0,45,0,36,0,23,0,28,0,33,0\n31,0,8,0,52,0,50,0,14,0,40,0\n51,0,20,0,4,0,58,0,21,0,1,0\n24,0,17,0,41,0,27,0,44,0,32,0\n6,0,53,0,30,0,34,0,38,0,7,0\n46,0,16,0,49,0,19,0,57,0,55,0\n25,0,15,0,43,0,54,0,39,0,22,0\n37,0,45,0,48,0,35,0,13,0,31,0\n36,0,11,0,42,0,5,0,9,0,8,0\n2,0,26,0,29,0,33,0,12,0,18,0\n56,0,28,0,50,0,23,0,3,0,10,0\n47,0,32,0,57,0,14,0,1,0,43,0\n54,0,53,0,44,0,30,0,31,0,49,0\n37,0,42,0,55,0,11,0,25,0,22,0\n26,0,41,0,52,0,13,0,21,0,9,0\n35,0,2,0,28,0,24,0,27,0,38,0\n7,0,3,0,48,0,16,0,40,0,12,0\n39,0,33,0,14,0,4,0,5,0,10,0\n15,0,45,0,47,0,29,0,20,0,50,0\n8,0,18,0,19,0,34,0,56,0,23,0\n58,0,17,0,51,0,36,0,6,0,46,0\n2,0,11,0,21,0,30,0,32,0,40,0\n53,0,9,0,24,0,14,0,3,0,16,0\n44,0,1,0,10,0,35,0,15,0,52,0\n4,0,50,0,13,0,19,0,5,0,38,0\n8,0,6,0,12,0,47,0,39,0,55,0\n23,0,43,0,20,0,27,0,31,0,17,0\n34,0,57,0,37,0,41,0,51,0,33,0\n56,0,45,0,54,0,46,0,7,0,42,0\n22,0,58,0,28,0,26,0,48,0,18,0\n25,0,36,0,4,0,29,0,49,0,35,0\n43,0,55,0,8,0,30,0,13,0,10,0\n3,0,15,0,9,0,34,0,2,0,17,0\n19,0,14,0,54,0,44,0,11,0,51,0\n22,0,33,0,21,0,50,0,7,0,27,0\n46,0,56,0,53,0,26,0,36,0,47,0\n32,0,23,0,38,0,29,0,16,0,58,0\n42,0,20,0,18,0,57,0,52,0,12,0\n39,0,40,0,31,0,41,0,28,0,1,0\n48,0,5,0,6,0,25,0,49,0,45,0\n24,0,15,0,14,0,37,0,21,0,26,0\n4,0,23,0,44,0,47,0,9,0,7,0\n58,0,35,0,46,0,30,0,50,0,33,0\n31,0,22,0,38,0,36,0,57,0,10,0\n5,0,54,0,3,0,20,0,55,0,41,0\n1,0,13,0,29,0,42,0,24,0,6,0\n37,0,16,0,39,0,2,0,56,0,52,0\n12,0,49,0,34,0,28,0,43,0,11,0\n17,0,19,0,32,0,25,0,8,0,48,0\n40,0,53,0,27,0,45,0,51,0,18,0\n"
  },
  {
    "path": "schedules/59_1.csv",
    "content": "53,0,34,0,16,0,10,0,48,0,55,0\n21,0,19,0,1,0,35,0,24,0,15,0\n54,0,51,0,37,0,4,0,52,0,49,0\n27,0,36,0,26,0,18,0,47,0,23,0\n13,0,38,0,8,0,59,0,33,0,56,0\n30,0,32,0,43,0,5,0,45,0,14,0\n7,0,31,0,20,0,42,0,50,0,40,0\n11,0,29,0,58,0,46,0,22,0,12,0\n44,0,41,0,9,0,57,0,6,0,28,0\n3,0,2,0,17,0,25,0,39,0,21,1\n"
  },
  {
    "path": "schedules/59_10.csv",
    "content": "33,0,37,0,26,0,44,0,4,0,19,0\n1,0,43,0,11,0,28,0,36,0,38,0\n42,0,20,0,12,0,7,0,45,0,52,0\n23,0,48,0,25,0,51,0,22,0,53,0\n56,0,30,0,46,0,57,0,8,0,16,0\n13,0,50,0,5,0,2,0,39,0,49,0\n35,0,6,0,55,0,15,0,40,0,58,0\n24,0,34,0,27,0,59,0,29,0,18,0\n17,0,41,0,47,0,21,0,32,0,10,0\n31,0,3,0,54,0,9,0,14,0,53,0\n7,0,2,0,43,0,16,0,22,0,19,0\n23,0,37,0,28,0,46,0,45,0,5,0\n34,0,1,0,18,0,56,0,39,0,12,0\n21,0,15,0,11,0,44,0,26,0,24,0\n32,0,40,0,17,0,38,0,13,0,25,0\n49,0,27,0,55,0,48,0,20,0,3,0\n52,0,4,0,51,0,8,0,54,0,29,0\n50,0,33,0,9,0,58,0,57,0,41,0\n35,0,14,0,10,0,59,0,30,0,42,0\n36,0,6,0,2,0,31,0,47,0,56,0\n21,1,48,0,38,0,53,1,20,0,18,0\n43,1,27,0,3,0,13,1,40,0,37,0\n5,0,16,0,1,0,58,0,45,0,32,0\n9,0,59,0,8,0,11,0,49,0,19,0\n24,0,35,0,22,0,10,0,4,0,34,0\n26,0,29,0,57,0,47,0,25,0,6,0\n46,0,33,0,12,0,55,0,54,0,42,0\n28,0,30,0,52,0,31,0,50,0,44,0\n7,0,15,0,14,0,41,0,23,0,51,0\n17,0,39,0,9,0,36,0,4,0,48,0\n21,0,29,0,2,0,20,0,1,0,37,0\n22,0,38,0,45,0,59,0,33,0,35,0\n5,0,18,0,49,0,31,0,30,0,10,0\n8,0,6,0,44,0,14,0,25,0,50,0\n26,0,55,0,23,0,28,0,34,0,17,0\n51,0,19,0,24,0,47,0,52,0,46,0\n41,0,7,0,12,0,39,0,3,0,57,0\n53,0,27,0,32,0,58,0,42,0,11,0\n36,0,16,0,56,0,15,0,54,0,13,0\n40,0,29,0,4,0,43,0,31,0,45,0\n49,0,46,0,14,0,52,0,1,0,17,0\n38,0,50,0,7,0,55,0,21,0,9,0\n10,0,47,0,2,0,27,0,33,0,23,0\n6,0,39,0,20,0,16,0,59,0,24,0\n56,0,43,0,51,0,58,0,37,0,44,0\n3,0,13,0,26,0,35,0,48,0,8,0\n42,0,22,0,40,0,54,0,18,0,11,0\n28,0,15,0,12,0,25,0,32,0,30,0\n53,0,19,0,36,0,34,0,5,0,41,0\n57,0,21,0,24,0,14,0,2,0,45,0\n23,0,10,0,39,0,56,0,52,0,38,0\n51,0,17,0,33,0,3,0,16,0,18,0\n13,0,58,0,7,0,4,0,28,0,47,0\n55,0,1,0,29,0,41,0,8,0,22,0\n53,0,44,0,40,0,49,0,59,0,12,0\n36,0,32,0,46,0,27,0,50,0,26,0\n20,0,54,0,57,0,15,0,43,0,5,0\n35,0,42,0,25,0,9,0,31,0,19,0\n6,0,11,0,34,0,30,0,37,0,48,0\n7,0,53,0,33,0,29,0,56,0,24,0\n28,0,21,0,14,0,39,0,27,0,40,0\n52,0,18,0,44,0,55,0,57,0,2,0\n58,0,25,0,19,0,23,0,20,0,13,0\n12,0,45,0,3,0,11,0,10,0,36,0\n54,0,50,0,49,0,37,0,51,0,35,0\n47,0,5,0,59,0,48,0,43,0,42,0\n9,0,1,0,22,0,15,0,30,0,26,0\n31,0,38,0,4,0,16,0,41,0,46,0\n34,0,8,0,32,0,17,0,6,0,7,0\n3,0,11,0,29,0,56,0,23,0,50,0\n24,0,54,0,47,0,49,0,44,0,28,0\n45,0,19,0,30,0,39,0,51,0,55,0\n41,0,52,0,37,0,25,0,40,0,16,0\n48,0,53,0,58,0,15,0,46,0,10,0\n17,0,5,0,22,0,9,0,6,0,12,0\n14,0,18,0,31,0,20,0,32,0,26,0\n36,0,35,0,43,0,8,0,33,0,21,0\n57,0,27,0,59,0,13,0,1,0,4,0\n2,0,42,0,3,0,34,0,38,0,15,0\n54,0,30,0,39,0,29,0,17,0,58,0\n16,0,50,0,45,0,53,0,26,0,47,0\n31,0,23,0,24,0,8,0,12,0,43,0\n37,0,59,0,36,0,18,0,7,0,32,0\n13,0,34,0,48,0,33,0,14,0,52,0\n19,0,38,0,57,0,49,0,21,0,22,0\n51,0,42,0,10,0,28,0,1,0,6,0\n46,0,20,0,2,0,40,0,9,0,35,0\n11,0,56,0,55,0,5,0,4,0,25,0\n44,0,41,0,54,0,27,0,13,0,45,0\n15,0,32,0,49,0,43,0,39,0,33,0\n17,0,37,0,8,0,53,0,57,0,42,0\n51,0,12,0,58,0,26,0,2,0,38,0\n25,0,46,0,31,0,21,0,59,0,3,0\n28,0,22,0,56,0,41,0,20,0,14,0\n11,0,5,0,52,0,7,0,35,0,27,0\n16,0,29,0,34,0,9,0,10,0,44,0\n4,0,30,0,55,0,23,0,47,0,36,0\n19,0,48,0,40,0,1,0,24,0,50,0\n18,0,21,0,43,0,6,0,53,0,13,0\n"
  },
  {
    "path": "schedules/59_11.csv",
    "content": "8,0,34,0,56,0,19,0,15,0,3,0\n21,0,33,0,58,0,47,0,17,0,29,0\n42,0,13,0,24,0,28,0,6,0,50,0\n55,0,22,0,23,0,40,0,1,0,44,0\n35,0,48,0,5,0,37,0,11,0,9,0\n45,0,54,0,38,0,26,0,12,0,57,0\n10,0,39,0,59,0,53,0,18,0,4,0\n16,0,46,0,49,0,31,0,27,0,43,0\n14,0,41,0,52,0,20,0,25,0,36,0\n7,0,30,0,51,0,2,0,32,0,17,0\n35,0,19,0,54,0,23,0,47,0,6,0\n42,0,1,0,45,0,53,0,48,0,59,0\n27,0,49,0,10,0,38,0,50,0,15,0\n40,0,36,0,37,0,39,0,26,0,4,0\n3,0,31,0,30,0,20,0,24,0,9,0\n7,0,13,0,8,0,55,0,41,0,34,0\n29,0,46,0,25,0,5,0,2,0,57,0\n11,0,22,0,33,0,43,0,14,0,51,0\n18,0,44,0,58,0,56,0,12,0,28,0\n52,0,32,0,6,0,16,0,21,0,45,0\n30,1,47,0,34,0,37,1,31,0,48,0\n29,1,40,0,59,0,26,1,19,0,17,0\n7,0,57,0,49,0,13,1,51,0,35,0\n36,0,58,0,38,0,46,0,44,0,23,0\n10,0,18,0,16,0,3,0,25,0,14,0\n27,0,42,0,28,0,5,0,41,0,39,0\n1,0,50,0,53,0,12,0,8,0,32,0\n56,0,33,0,15,0,52,0,54,0,22,0\n2,0,4,0,21,0,55,0,9,0,43,0\n11,0,24,0,29,0,20,0,47,0,38,0\n14,0,5,0,28,0,34,0,40,0,45,0\n32,0,26,0,23,0,27,0,12,0,3,0\n48,0,7,0,19,0,10,0,22,0,58,0\n18,0,41,0,25,0,37,0,6,0,33,0\n43,0,35,0,17,0,15,0,20,0,42,0\n51,0,59,0,2,0,54,0,31,0,13,0\n46,0,30,0,11,0,56,0,1,0,4,0\n50,0,44,0,9,0,16,0,52,0,39,0\n57,0,24,0,36,0,53,0,49,0,55,0\n8,0,18,0,23,0,21,0,42,0,5,0\n43,0,12,0,20,0,7,0,59,0,28,0\n41,0,33,0,40,0,35,0,34,0,32,0\n3,0,58,0,50,0,2,0,45,0,11,0\n6,0,55,0,46,0,9,0,49,0,26,0\n36,0,14,0,54,0,29,0,19,0,27,0\n17,0,53,0,15,0,44,0,38,0,31,0\n39,0,21,0,57,0,30,0,16,0,22,0\n48,0,4,0,13,0,24,0,25,0,56,0\n51,0,37,0,47,0,52,0,10,0,1,0\n33,0,54,0,43,0,8,0,36,0,5,0\n55,0,29,0,42,0,32,0,11,0,15,0\n58,0,26,0,34,0,18,0,30,0,49,0\n31,0,40,0,12,0,21,0,19,0,25,0\n44,0,52,0,24,0,14,0,35,0,46,0\n56,0,9,0,13,0,45,0,17,0,37,0\n41,0,10,0,50,0,59,0,57,0,23,0\n2,0,53,0,20,0,27,0,6,0,22,0\n39,0,3,0,7,0,51,0,1,0,38,0\n4,0,8,0,16,0,48,0,28,0,47,0\n30,0,44,0,14,0,32,0,54,0,5,0\n57,0,19,0,18,0,13,0,11,0,52,0\n2,0,37,0,34,0,21,0,59,0,24,0\n46,0,36,0,9,0,7,0,22,0,42,0\n40,0,28,0,26,0,15,0,31,0,10,0\n16,0,41,0,47,0,56,0,51,0,53,0\n3,0,17,0,48,0,12,0,6,0,49,0\n45,0,20,0,23,0,27,0,33,0,55,0\n29,0,38,0,4,0,8,0,50,0,35,0\n1,0,25,0,39,0,43,0,58,0,24,0\n19,0,44,0,10,0,41,0,9,0,21,0\n57,0,22,0,14,0,42,0,26,0,47,0\n15,0,12,0,16,0,36,0,13,0,33,0\n18,0,51,0,11,0,40,0,27,0,46,0\n31,0,50,0,23,0,56,0,37,0,7,0\n34,0,43,0,25,0,53,0,29,0,45,0\n32,0,20,0,1,0,49,0,39,0,54,0\n6,0,59,0,35,0,30,0,58,0,8,0\n2,0,55,0,48,0,28,0,38,0,52,0\n3,0,5,0,26,0,4,0,17,0,41,0\n45,0,15,0,25,0,19,0,51,0,46,0\n1,0,47,0,9,0,18,0,36,0,50,0\n8,0,33,0,49,0,7,0,44,0,11,0\n52,0,48,0,30,0,43,0,23,0,40,0\n37,0,35,0,28,0,53,0,3,0,54,0\n39,0,56,0,31,0,29,0,14,0,6,0\n42,0,10,0,12,0,24,0,16,0,2,0\n17,0,20,0,27,0,34,0,4,0,57,0\n59,0,22,0,5,0,38,0,32,0,55,0\n58,0,13,0,53,0,21,0,3,0,40,0\n49,0,28,0,11,0,23,0,30,0,25,0\n29,0,15,0,2,0,48,0,1,0,41,0\n6,0,57,0,51,0,4,0,44,0,43,0\n50,0,12,0,54,0,34,0,39,0,46,0\n52,0,8,0,21,0,27,0,26,0,7,0\n13,0,59,0,38,0,14,0,33,0,9,0\n56,0,45,0,5,0,35,0,36,0,10,0\n37,0,55,0,20,0,19,0,16,0,58,0\n24,0,17,0,31,0,32,0,22,0,18,0\n47,0,44,0,3,0,42,0,30,0,40,0\n9,0,51,0,29,0,12,0,23,0,53,0\n49,0,41,0,2,0,39,0,45,0,8,0\n34,0,11,0,38,0,6,0,36,0,16,0\n26,0,21,0,14,0,50,0,48,0,20,0\n46,0,32,0,43,0,37,0,10,0,13,0\n4,0,31,0,52,0,42,0,58,0,54,0\n1,0,19,0,28,0,57,0,17,0,33,0\n7,0,5,0,15,0,24,0,47,0,18,0\n56,0,35,0,27,0,55,0,25,0,59,0\n22,0,37,0,26,0,30,0,29,0,13,0\n"
  },
  {
    "path": "schedules/59_12.csv",
    "content": "16,0,53,0,17,0,52,0,40,0,1,0\n48,0,34,0,12,0,42,0,20,0,27,0\n58,0,25,0,29,0,54,0,43,0,11,0\n2,0,26,0,57,0,8,0,10,0,35,0\n21,0,47,0,33,0,3,0,55,0,28,0\n56,0,19,0,18,0,30,0,45,0,32,0\n15,0,39,0,9,0,46,0,50,0,37,0\n5,0,31,0,14,0,4,0,41,0,22,0\n51,0,59,0,13,0,44,0,38,0,23,0\n49,0,7,0,6,0,36,0,24,0,55,0\n17,0,42,0,57,0,45,0,21,0,2,0\n48,0,47,0,52,0,37,0,12,0,35,0\n39,0,4,0,33,0,19,0,41,0,15,0\n8,0,16,0,40,0,59,0,9,0,5,0\n54,0,31,0,30,0,53,0,34,0,38,0\n27,0,1,0,56,0,6,0,44,0,11,0\n22,0,28,0,20,0,36,0,18,0,51,0\n58,0,3,0,14,0,25,0,7,0,46,0\n26,0,23,0,50,0,43,0,24,0,32,0\n13,0,49,0,9,0,29,0,10,0,47,0\n35,0,33,0,34,0,31,0,6,0,45,0\n37,0,54,0,40,0,28,0,4,0,12,0\n8,0,38,0,39,0,36,0,3,0,25,0\n19,0,48,0,53,0,23,0,21,0,56,0\n14,0,52,0,2,0,50,0,49,0,27,0\n58,0,15,0,24,0,59,0,17,0,30,0\n55,0,29,0,32,0,5,0,57,0,1,0\n20,0,51,0,11,0,10,0,42,0,41,0\n13,0,26,0,7,0,22,0,16,0,18,0\n46,0,47,0,2,0,44,0,43,0,31,0\n50,0,59,0,21,0,56,0,39,0,36,0\n34,0,14,0,37,0,32,0,1,0,58,0\n24,0,6,0,8,0,42,0,29,0,11,0\n20,0,16,0,13,0,57,0,54,0,19,0\n43,0,46,0,45,0,33,0,38,0,10,0\n9,0,30,0,44,0,7,0,4,0,48,0\n18,0,28,0,5,0,17,0,23,0,52,0\n35,0,26,0,40,0,51,0,3,0,49,0\n55,0,53,0,15,0,27,0,25,0,22,0\n41,0,32,0,2,0,12,0,11,0,59,0\n57,0,46,0,16,0,31,0,36,0,34,0\n43,0,1,0,7,0,39,0,20,0,21,0\n38,0,9,0,37,0,24,0,49,0,23,0\n33,0,30,0,27,0,29,0,40,0,51,0\n50,0,28,0,6,0,10,0,53,0,5,0\n54,0,41,0,18,0,35,0,3,0,48,0\n45,0,42,0,55,0,4,0,58,0,26,0\n12,0,47,0,56,0,15,0,22,0,14,0\n19,0,44,0,52,0,17,0,8,0,25,0\n13,0,11,0,32,0,21,0,46,0,40,0\n3,0,20,0,23,0,6,0,2,0,30,0\n34,0,28,0,49,0,59,0,41,0,24,0\n10,0,16,0,4,0,27,0,18,0,15,0\n57,0,12,0,7,0,48,0,51,0,33,0\n54,0,8,0,50,0,47,0,17,0,45,0\n19,0,43,0,55,0,5,0,42,0,37,0\n1,0,36,0,44,0,9,0,53,0,26,0\n25,0,31,0,35,0,56,0,14,0,13,0\n22,0,29,0,38,0,58,0,39,0,52,0\n32,0,48,0,40,0,15,0,47,0,6,0\n28,0,23,0,46,0,7,0,8,0,42,0\n19,0,37,0,59,0,10,0,54,0,3,0\n43,0,14,0,53,0,24,0,18,0,57,0\n2,0,17,0,31,0,9,0,55,0,51,0\n22,0,33,0,49,0,50,0,20,0,1,0\n58,0,27,0,12,0,26,0,5,0,39,0\n36,0,30,0,11,0,52,0,45,0,13,0\n29,0,21,0,35,0,25,0,34,0,4,0\n38,0,56,0,16,0,41,0,44,0,40,0\n22,0,3,0,42,0,32,0,9,0,57,0\n24,0,27,0,14,0,54,0,2,0,33,0\n55,0,52,0,31,0,43,0,59,0,23,0\n4,0,29,0,5,0,26,0,10,0,48,0\n51,0,19,0,45,0,15,0,46,0,1,0\n25,0,21,0,30,0,16,0,49,0,37,0\n41,0,12,0,8,0,13,0,50,0,58,0\n39,0,47,0,44,0,6,0,18,0,34,0\n35,0,38,0,17,0,20,0,7,0,53,0\n28,0,36,0,54,0,56,0,11,0,55,0\n59,0,52,0,25,0,26,0,42,0,33,0\n10,0,1,0,49,0,12,0,3,0,31,0\n45,0,5,0,22,0,34,0,46,0,24,0\n9,0,43,0,6,0,30,0,19,0,14,0\n57,0,38,0,11,0,47,0,4,0,50,0\n41,0,36,0,23,0,17,0,40,0,27,0\n48,0,15,0,2,0,13,0,53,0,39,0\n32,0,35,0,20,0,16,0,28,0,58,0\n51,0,56,0,7,0,8,0,37,0,29,0\n44,0,18,0,14,0,21,0,38,0,55,0\n47,0,27,0,41,0,19,0,23,0,1,0\n45,0,10,0,57,0,40,0,39,0,25,0\n58,0,6,0,36,0,13,0,28,0,2,0\n20,0,24,0,52,0,3,0,56,0,4,0\n30,0,5,0,50,0,42,0,35,0,44,0\n51,0,12,0,43,0,16,0,34,0,9,0\n53,0,46,0,18,0,29,0,49,0,59,0\n15,0,54,0,26,0,11,0,7,0,21,0\n48,0,37,0,17,0,8,0,22,0,31,0\n32,0,44,0,10,0,33,0,52,0,36,0\n13,0,27,0,3,0,43,0,56,0,28,0\n23,0,29,0,45,0,12,0,14,0,20,0\n24,0,42,0,39,0,47,0,16,0,35,0\n4,0,37,0,57,0,6,0,17,0,46,0\n55,0,26,0,8,0,30,0,53,0,41,0\n1,0,11,0,22,0,48,0,59,0,38,0\n19,0,40,0,34,0,2,0,7,0,50,0\n25,0,49,0,54,0,5,0,51,0,32,0\n18,0,21,0,58,0,31,0,33,0,9,0\n15,0,4,0,35,0,43,0,8,0,36,0\n59,0,27,0,46,0,30,0,57,0,47,0\n3,0,16,0,29,0,50,0,45,0,11,0\n39,0,34,0,10,0,14,0,55,0,17,0\n6,0,23,0,51,0,54,0,22,0,21,0\n24,0,25,0,2,0,48,0,1,0,18,0\n13,0,40,0,5,0,33,0,20,0,37,0\n28,0,31,0,38,0,19,0,26,0,12,0\n42,0,58,0,49,0,56,0,15,0,44,0\n7,0,9,0,41,0,53,0,52,0,32,0\n"
  },
  {
    "path": "schedules/59_13.csv",
    "content": "51,0,58,0,34,0,20,0,55,0,28,0\n11,0,25,0,36,0,2,0,56,0,7,0\n24,0,59,0,54,0,27,0,37,0,52,0\n38,0,42,0,41,0,23,0,43,0,22,0\n12,0,40,0,50,0,8,0,26,0,21,0\n9,0,53,0,31,0,30,0,39,0,16,0\n14,0,57,0,15,0,46,0,13,0,32,0\n17,0,45,0,18,0,33,0,19,0,10,0\n49,0,44,0,35,0,6,0,1,0,3,0\n29,0,4,0,47,0,48,0,5,0,27,0\n21,0,55,0,41,0,26,0,11,0,56,0\n58,0,7,0,40,0,9,0,59,0,50,0\n15,0,19,0,43,0,54,0,36,0,22,0\n8,0,24,0,34,0,42,0,14,0,10,0\n48,0,25,0,49,0,16,0,53,0,51,0\n38,0,13,0,52,0,6,0,4,0,20,0\n57,0,32,0,23,0,28,0,2,0,5,0\n44,0,18,0,29,0,46,0,31,0,17,0\n37,0,1,0,45,0,12,0,47,0,30,0\n35,0,3,0,48,0,33,0,39,0,15,0\n9,1,10,0,52,0,38,0,49,0,51,0\n53,0,26,0,20,0,28,0,59,0,43,0\n6,0,42,0,31,0,17,0,58,0,27,0\n23,0,14,0,19,0,21,0,4,0,30,0\n13,0,11,0,16,0,25,0,32,0,35,0\n50,0,55,0,54,0,45,0,33,0,5,0\n41,0,39,0,18,0,46,0,40,0,2,0\n22,0,56,0,57,0,1,0,47,0,44,0\n24,0,37,0,36,0,29,0,34,0,3,0\n12,0,7,0,19,0,8,0,48,0,51,0\n31,0,16,0,10,0,52,0,35,0,55,0\n28,0,6,0,17,0,54,0,25,0,41,0\n38,0,30,0,15,0,26,0,49,0,18,0\n37,0,22,0,13,0,23,0,21,0,40,0\n5,0,24,0,11,0,39,0,44,0,20,0\n42,0,27,0,56,0,57,0,53,0,50,0\n33,0,2,0,43,0,14,0,12,0,9,0\n58,0,4,0,36,0,1,0,29,0,8,0\n45,0,46,0,34,0,59,0,32,0,3,0\n7,0,54,0,51,0,47,0,22,0,49,0\n10,0,37,0,5,0,15,0,53,0,41,0\n57,0,35,0,39,0,19,0,55,0,25,0\n21,0,1,0,11,0,38,0,29,0,28,0\n32,0,24,0,58,0,17,0,36,0,40,0\n2,0,34,0,26,0,52,0,31,0,47,0\n30,0,14,0,13,0,44,0,7,0,42,0\n8,0,45,0,27,0,48,0,23,0,46,0\n56,0,59,0,6,0,33,0,12,0,18,0\n3,0,43,0,20,0,50,0,16,0,4,0\n9,0,49,0,11,0,19,0,57,0,47,0\n28,0,30,0,52,0,55,0,15,0,40,0\n38,0,21,0,24,0,48,0,2,0,53,0\n39,0,26,0,29,0,34,0,1,0,32,0\n8,0,17,0,37,0,56,0,35,0,20,0\n50,0,45,0,51,0,41,0,16,0,14,0\n6,0,23,0,5,0,7,0,43,0,31,0\n13,0,3,0,18,0,36,0,27,0,9,0\n22,0,44,0,33,0,10,0,59,0,58,0\n4,0,54,0,12,0,42,0,25,0,46,0\n55,0,45,0,14,0,37,0,40,0,57,0\n34,0,20,0,48,0,6,0,49,0,50,0\n47,0,3,0,8,0,41,0,43,0,30,0\n1,0,52,0,53,0,32,0,17,0,7,0\n44,0,21,0,36,0,54,0,27,0,35,0\n58,0,28,0,16,0,38,0,2,0,19,0\n25,0,9,0,26,0,5,0,18,0,42,0\n59,0,33,0,4,0,22,0,39,0,11,0\n13,0,15,0,31,0,56,0,24,0,12,0\n10,0,51,0,46,0,23,0,29,0,36,0\n17,0,38,0,34,0,30,0,57,0,45,0\n6,0,19,0,53,0,3,0,55,0,9,0\n26,0,41,0,35,0,54,0,58,0,14,0\n59,0,48,0,40,0,13,0,1,0,43,0\n2,0,27,0,39,0,7,0,10,0,15,0\n32,0,28,0,22,0,49,0,12,0,31,0\n5,0,8,0,16,0,37,0,18,0,11,0\n47,0,23,0,25,0,50,0,24,0,33,0\n51,0,52,0,20,0,46,0,21,0,56,0\n29,0,42,0,2,0,4,0,44,0,45,0\n12,0,58,0,6,0,39,0,53,0,36,0\n40,0,31,0,54,0,11,0,34,0,10,0\n30,0,25,0,27,0,8,0,32,0,38,0\n50,0,14,0,3,0,52,0,22,0,18,0\n16,0,21,0,15,0,17,0,23,0,59,0\n5,0,55,0,46,0,42,0,24,0,1,0\n7,0,48,0,47,0,35,0,19,0,28,0\n33,0,57,0,29,0,20,0,13,0,41,0\n9,0,51,0,44,0,37,0,4,0,26,0\n49,0,43,0,10,0,56,0,25,0,58,0\n23,0,34,0,18,0,12,0,11,0,53,0\n47,0,21,0,5,0,6,0,36,0,45,0\n17,0,16,0,55,0,13,0,48,0,54,0\n20,0,19,0,27,0,1,0,2,0,14,0\n42,0,3,0,33,0,51,0,32,0,31,0\n37,0,56,0,43,0,46,0,38,0,39,0\n41,0,29,0,40,0,7,0,52,0,49,0\n9,0,28,0,15,0,50,0,8,0,44,0\n22,0,30,0,26,0,4,0,24,0,57,0\n35,0,51,0,14,0,59,0,5,0,53,0\n55,0,32,0,47,0,38,0,43,0,18,0\n48,0,11,0,52,0,58,0,37,0,42,0\n1,0,31,0,20,0,45,0,15,0,25,0\n3,0,10,0,4,0,57,0,16,0,7,0\n35,0,9,0,46,0,34,0,50,0,22,0\n56,0,33,0,36,0,28,0,27,0,40,0\n12,0,59,0,41,0,24,0,29,0,19,0\n23,0,39,0,49,0,17,0,26,0,44,0\n6,0,2,0,13,0,8,0,54,0,30,0\n21,0,18,0,7,0,57,0,34,0,43,0\n4,0,42,0,53,0,35,0,33,0,40,0\n1,0,27,0,15,0,11,0,51,0,41,0\n19,0,22,0,48,0,32,0,44,0,5,0\n56,0,29,0,16,0,6,0,24,0,26,0\n49,0,59,0,55,0,2,0,23,0,8,0\n9,0,54,0,17,0,3,0,38,0,12,0\n52,0,58,0,39,0,45,0,13,0,47,0\n20,0,50,0,46,0,10,0,30,0,36,0\n31,0,25,0,28,0,37,0,14,0,21,0\n8,0,53,0,55,0,15,0,29,0,22,0\n41,0,56,0,32,0,4,0,48,0,9,0\n44,0,12,0,27,0,52,0,34,0,16,0\n7,0,46,0,30,0,33,0,26,0,58,0\n50,0,2,0,17,0,6,0,37,0,51,0\n36,0,38,0,57,0,31,0,59,0,14,0\n13,0,40,0,25,0,3,0,5,0,19,0\n43,0,35,0,11,0,45,0,24,0,49,0\n10,0,47,0,39,0,21,0,28,0,42,0\n23,0,1,0,54,0,20,0,18,0,9,0\n"
  },
  {
    "path": "schedules/59_14.csv",
    "content": "1,0,34,0,3,0,31,0,5,0,10,0\n55,0,38,0,45,0,23,0,24,0,36,0\n57,0,43,0,11,0,29,0,13,0,25,0\n50,0,40,0,58,0,56,0,35,0,4,0\n15,0,19,0,47,0,8,0,59,0,33,0\n49,0,42,0,41,0,44,0,9,0,46,0\n39,0,51,0,2,0,21,0,26,0,22,0\n32,0,17,0,30,0,48,0,16,0,54,0\n6,0,53,0,27,0,7,0,37,0,28,0\n52,0,20,0,18,0,14,0,12,0,35,0\n45,0,4,0,9,0,55,0,34,0,19,0\n56,0,33,0,58,0,38,0,39,0,57,0\n16,0,24,0,25,0,10,0,15,0,43,0\n59,0,28,0,17,0,46,0,23,0,11,0\n2,0,36,0,18,0,47,0,32,0,37,0\n8,0,3,0,27,0,6,0,51,0,30,0\n41,0,48,0,26,0,40,0,53,0,29,0\n31,0,13,0,7,0,42,0,20,0,22,0\n49,0,5,0,21,0,14,0,52,0,50,0\n54,0,1,0,24,0,12,0,44,0,4,0\n30,1,27,0,38,0,39,1,9,0,15,0\n26,0,46,0,53,0,32,0,8,0,34,0\n28,0,2,0,57,0,20,0,19,0,3,0\n21,0,56,0,14,0,43,0,5,0,13,0\n1,0,47,0,41,0,36,0,17,0,16,0\n52,0,42,0,55,0,29,0,33,0,44,0\n59,0,31,0,18,0,10,0,6,0,54,0\n48,0,11,0,58,0,7,0,22,0,49,0\n12,0,25,0,50,0,23,0,40,0,45,0\n35,0,51,0,24,0,37,0,57,0,19,0\n14,0,43,0,53,0,55,0,39,0,1,0\n52,0,44,0,21,0,34,0,36,0,47,0\n29,0,6,0,18,0,20,0,8,0,11,0\n54,0,7,0,45,0,49,0,33,0,28,0\n37,0,48,0,5,0,15,0,31,0,4,0\n51,0,56,0,40,0,9,0,17,0,25,0\n42,0,2,0,46,0,50,0,16,0,27,0\n12,0,32,0,10,0,22,0,38,0,59,0\n23,0,13,0,41,0,58,0,35,0,30,0\n26,0,47,0,18,0,3,0,55,0,7,0\n17,0,51,0,15,0,49,0,24,0,6,0\n11,0,29,0,50,0,52,0,36,0,56,0\n48,0,14,0,34,0,39,0,28,0,12,0\n31,0,58,0,44,0,41,0,32,0,27,0\n26,0,57,0,23,0,9,0,1,0,21,0\n59,0,35,0,43,0,5,0,42,0,45,0\n54,0,33,0,4,0,53,0,2,0,25,0\n37,0,10,0,20,0,46,0,19,0,30,0\n3,0,40,0,38,0,13,0,22,0,8,0\n16,0,12,0,34,0,6,0,56,0,7,0\n49,0,31,0,32,0,11,0,47,0,24,0\n33,0,25,0,5,0,41,0,28,0,35,0\n2,0,1,0,30,0,45,0,46,0,18,0\n39,0,29,0,22,0,17,0,57,0,27,0\n14,0,42,0,36,0,26,0,15,0,40,0\n19,0,59,0,9,0,44,0,13,0,50,0\n48,0,51,0,10,0,16,0,20,0,55,0\n23,0,43,0,21,0,3,0,53,0,54,0\n38,0,8,0,37,0,4,0,58,0,52,0\n32,0,22,0,40,0,1,0,14,0,49,0\n44,0,15,0,7,0,35,0,17,0,29,0\n36,0,25,0,11,0,34,0,30,0,9,0\n47,0,53,0,50,0,57,0,20,0,41,0\n19,0,5,0,27,0,38,0,18,0,48,0\n6,0,21,0,46,0,12,0,55,0,58,0\n4,0,28,0,43,0,52,0,59,0,51,0\n24,0,39,0,37,0,54,0,8,0,42,0\n23,0,31,0,33,0,56,0,2,0,13,0\n26,0,3,0,17,0,10,0,45,0,16,0\n9,0,58,0,36,0,18,0,12,0,19,0\n43,0,44,0,6,0,48,0,20,0,40,0\n29,0,5,0,57,0,46,0,47,0,54,0\n39,0,59,0,23,0,1,0,7,0,51,0\n22,0,33,0,30,0,32,0,21,0,4,0\n2,0,55,0,31,0,38,0,42,0,25,0\n14,0,24,0,27,0,50,0,41,0,3,0\n56,0,11,0,49,0,26,0,10,0,28,0\n52,0,13,0,45,0,8,0,16,0,53,0\n15,0,35,0,22,0,37,0,34,0,18,0\n36,0,4,0,40,0,43,0,7,0,46,0\n54,0,39,0,32,0,55,0,5,0,9,0\n47,0,51,0,3,0,56,0,50,0,48,0\n45,0,41,0,17,0,52,0,10,0,19,0\n37,0,11,0,16,0,14,0,33,0,38,0\n44,0,35,0,42,0,30,0,53,0,21,0\n28,0,1,0,13,0,15,0,58,0,24,0\n27,0,23,0,20,0,26,0,25,0,59,0\n12,0,29,0,8,0,2,0,49,0,34,0\n6,0,57,0,32,0,31,0,45,0,56,0\n17,0,53,0,4,0,3,0,9,0,14,0\n44,0,18,0,10,0,21,0,39,0,50,0\n22,0,43,0,19,0,23,0,52,0,15,0\n48,0,59,0,46,0,26,0,33,0,37,0\n25,0,34,0,20,0,58,0,16,0,1,0\n30,0,40,0,24,0,11,0,2,0,5,0\n38,0,6,0,28,0,47,0,29,0,42,0\n35,0,57,0,31,0,8,0,49,0,36,0\n51,0,55,0,13,0,41,0,12,0,7,0\n54,0,21,0,20,0,27,0,45,0,15,0\n56,0,22,0,46,0,18,0,24,0,53,0\n47,0,10,0,59,0,29,0,58,0,14,0\n6,0,52,0,35,0,2,0,32,0,38,0\n42,0,39,0,31,0,19,0,23,0,48,0\n50,0,9,0,7,0,8,0,43,0,30,0\n36,0,54,0,13,0,51,0,28,0,5,0\n16,0,4,0,57,0,41,0,44,0,11,0\n49,0,3,0,12,0,55,0,37,0,25,0\n17,0,40,0,1,0,34,0,27,0,33,0\n26,0,50,0,30,0,22,0,31,0,6,0\n46,0,38,0,5,0,58,0,53,0,51,0\n10,0,9,0,57,0,14,0,7,0,2,0\n16,0,43,0,41,0,35,0,54,0,18,0\n25,0,47,0,52,0,13,0,39,0,40,0\n19,0,56,0,8,0,55,0,21,0,27,0\n15,0,3,0,28,0,32,0,26,0,44,0\n29,0,37,0,49,0,1,0,4,0,23,0\n33,0,48,0,36,0,59,0,34,0,24,0\n20,0,12,0,45,0,11,0,42,0,17,0\n35,0,55,0,47,0,27,0,22,0,9,0\n25,0,14,0,46,0,6,0,39,0,19,0\n28,0,16,0,29,0,31,0,40,0,21,0\n56,0,41,0,53,0,59,0,15,0,2,0\n49,0,20,0,30,0,38,0,52,0,24,0\n3,0,33,0,10,0,12,0,36,0,43,0\n7,0,32,0,11,0,54,0,23,0,50,0\n4,0,34,0,51,0,42,0,18,0,57,0\n8,0,58,0,26,0,44,0,5,0,17,0\n37,0,45,0,1,0,13,0,48,0,47,0\n53,0,12,0,9,0,24,0,31,0,29,0\n54,0,11,0,52,0,46,0,3,0,35,0\n39,0,4,0,41,0,36,0,20,0,6,0\n15,0,30,0,55,0,59,0,57,0,40,0\n58,0,5,0,22,0,45,0,2,0,33,0\n50,0,18,0,8,0,28,0,25,0,48,0\n42,0,7,0,19,0,1,0,32,0,56,0\n34,0,21,0,38,0,43,0,37,0,17,0\n23,0,10,0,14,0,51,0,44,0,27,0\n16,0,13,0,30,0,26,0,49,0,39,0\n"
  },
  {
    "path": "schedules/59_2.csv",
    "content": "10,0,23,0,14,0,29,0,18,0,54,0\n46,0,22,0,1,0,25,0,26,0,32,0\n13,0,47,0,7,0,43,0,45,0,8,0\n20,0,16,0,50,0,31,0,2,0,28,0\n21,0,56,0,55,0,6,0,19,0,48,0\n4,0,27,0,57,0,37,0,59,0,33,0\n44,0,42,0,24,0,38,0,36,0,11,0\n51,0,34,0,41,0,58,0,35,0,15,0\n39,0,12,0,53,0,9,0,30,0,3,0\n5,0,40,0,52,0,49,0,17,0,22,0\n14,0,21,0,8,0,28,0,46,0,27,0\n11,0,54,0,55,0,7,0,25,0,50,0\n51,0,48,0,36,0,13,0,20,0,1,0\n35,0,19,0,59,0,24,0,53,0,26,0\n58,0,38,0,10,0,17,0,3,0,4,0\n49,0,56,0,30,0,23,0,37,0,44,0\n2,0,29,0,45,0,12,0,57,0,52,0\n33,0,39,0,31,0,34,0,47,0,42,0\n16,0,32,0,43,0,15,0,18,0,5,0\n41,0,6,0,11,1,9,0,40,0,59,1\n"
  },
  {
    "path": "schedules/59_3.csv",
    "content": "49,0,19,0,32,0,23,0,37,0,9,0\n34,0,2,0,7,0,5,0,45,0,46,0\n54,0,39,0,11,0,8,0,18,0,53,0\n50,0,42,0,22,0,4,0,57,0,58,0\n29,0,38,0,31,0,52,0,43,0,33,0\n28,0,1,0,26,0,47,0,56,0,17,0\n48,0,20,0,40,0,12,0,27,0,21,0\n36,0,51,0,25,0,24,0,15,0,55,0\n3,0,13,0,41,0,16,0,44,0,30,0\n14,0,59,0,35,0,6,0,10,0,32,0\n56,1,9,0,31,0,54,1,58,0,7,0\n4,1,48,0,19,0,34,0,28,0,43,0\n36,0,23,0,1,0,2,0,39,0,33,0\n20,0,45,0,44,0,53,0,24,0,29,0\n15,0,30,0,21,0,38,0,14,0,22,0\n10,0,51,0,46,0,13,0,50,0,27,0\n5,0,47,0,18,0,49,0,16,0,40,0\n52,0,26,0,59,0,42,0,25,0,11,0\n17,0,12,0,37,0,35,0,41,0,8,0\n57,0,55,0,53,0,3,0,6,0,1,0\n27,0,4,0,31,0,30,0,32,0,36,0\n50,0,54,0,47,0,23,0,20,0,38,0\n33,0,34,0,22,0,11,0,44,0,40,0\n24,0,58,0,8,0,49,0,26,0,10,0\n57,0,46,0,56,0,19,0,14,0,52,0\n43,0,55,0,2,0,42,0,35,0,18,0\n17,0,5,0,25,0,3,0,21,0,9,0\n37,0,13,0,7,0,48,0,15,0,29,0\n6,0,28,0,39,0,45,0,16,0,12,0\n41,0,51,0,56,0,59,0,54,0,4,0\n"
  },
  {
    "path": "schedules/59_4.csv",
    "content": "52,0,2,0,36,0,49,0,14,0,6,0\n27,0,44,0,20,0,7,0,30,0,35,0\n3,0,15,0,29,0,16,0,39,0,34,0\n19,0,50,0,10,0,24,0,9,0,5,0\n53,0,56,0,45,0,28,0,59,0,54,0\n58,0,40,0,22,0,55,0,12,0,42,0\n37,0,13,0,8,0,51,0,41,0,32,0\n21,0,33,0,25,0,11,0,43,0,38,0\n23,0,31,0,4,0,46,0,57,0,47,0\n1,0,18,0,39,0,26,0,48,0,17,0\n20,0,55,0,29,0,10,0,2,0,53,0\n58,0,49,0,30,0,3,0,9,0,41,0\n32,0,42,0,11,0,19,0,56,0,36,0\n5,0,15,0,47,0,43,0,45,0,14,0\n24,0,46,0,17,0,54,0,16,0,44,0\n40,0,27,0,1,0,25,0,31,0,8,0\n18,0,22,0,37,0,35,0,21,0,4,0\n48,0,23,0,34,0,12,0,51,0,33,0\n59,0,13,0,57,0,7,0,50,0,52,0\n38,0,26,0,19,0,6,0,28,0,20,0\n41,1,10,0,42,0,1,1,15,0,44,0\n54,1,30,0,11,0,22,1,5,0,31,0\n14,0,25,0,4,0,34,0,56,0,55,0\n43,0,9,0,59,0,27,0,36,0,48,0\n40,0,7,0,29,0,23,0,24,0,37,0\n51,0,21,0,50,0,6,0,47,0,58,0\n35,0,32,0,16,0,52,0,33,0,26,0\n49,0,39,0,53,0,13,0,38,0,46,0\n12,0,18,0,2,0,45,0,8,0,3,0\n57,0,17,0,41,0,28,0,40,0,14,0\n36,0,54,0,23,0,25,0,58,0,15,0\n43,0,55,0,51,0,24,0,1,0,35,0\n52,0,39,0,9,0,44,0,22,0,56,0\n7,0,48,0,38,0,2,0,32,0,31,0\n49,0,21,0,12,0,26,0,10,0,59,0\n57,0,8,0,53,0,30,0,19,0,34,0\n42,0,3,0,28,0,37,0,5,0,46,0\n47,0,13,0,16,0,27,0,18,0,11,0\n45,0,17,0,6,0,29,0,4,0,33,0\n20,0,41,0,54,0,50,0,1,0,22,0\n"
  },
  {
    "path": "schedules/59_5.csv",
    "content": "18,0,12,0,28,0,27,0,33,0,59,0\n44,0,4,0,2,0,58,0,10,0,23,0\n52,0,50,0,46,0,37,0,5,0,41,0\n43,0,3,0,29,0,13,0,39,0,16,0\n55,0,30,0,31,0,14,0,49,0,42,0\n17,0,51,0,8,0,45,0,54,0,6,0\n56,0,25,0,57,0,7,0,1,0,20,0\n35,0,40,0,38,0,24,0,9,0,47,0\n21,0,22,0,34,0,26,0,48,0,32,0\n53,0,11,0,39,0,19,0,36,0,15,0\n14,0,59,0,58,0,16,0,51,0,52,0\n3,0,5,0,55,0,2,0,57,0,8,0\n41,0,45,0,12,0,23,0,43,0,49,0\n46,0,34,0,42,0,24,0,4,0,17,0\n56,0,54,0,47,0,31,0,53,0,26,0\n11,0,13,0,9,0,10,0,1,0,48,0\n35,0,20,0,27,0,21,0,15,0,30,0\n28,0,22,0,6,0,36,0,44,0,40,0\n29,0,33,0,37,0,25,0,19,0,38,0\n50,0,7,0,55,0,32,0,18,0,4,0\n56,1,2,0,16,0,48,1,42,0,12,0\n35,1,10,0,51,0,39,1,31,0,46,0\n28,1,23,0,8,0,34,0,9,0,30,0\n6,0,27,0,24,0,11,0,49,0,25,0\n26,0,7,0,15,0,44,0,14,0,38,0\n40,0,45,0,57,0,59,0,37,0,21,0\n20,0,33,0,43,0,22,0,17,0,50,0\n32,0,36,0,13,0,41,0,58,0,47,0\n18,0,1,0,19,0,3,0,54,0,52,0\n53,0,48,0,27,0,5,0,29,0,7,0\n4,0,12,0,25,0,39,0,14,0,8,0\n11,0,17,0,31,0,2,0,21,0,28,0\n26,0,23,0,24,0,33,0,16,0,57,0\n1,0,37,0,44,0,34,0,47,0,43,0\n35,0,32,0,52,0,42,0,45,0,29,0\n38,0,41,0,6,0,20,0,18,0,10,0\n59,0,9,0,46,0,54,0,55,0,36,0\n15,0,5,0,49,0,22,0,51,0,56,0\n53,0,30,0,40,0,58,0,50,0,3,0\n19,0,57,0,34,0,13,0,12,0,35,0\n16,0,28,0,1,0,4,0,45,0,38,0\n42,0,37,0,9,0,39,0,26,0,20,0\n36,0,43,0,52,0,21,0,8,0,56,0\n15,0,50,0,48,0,59,0,6,0,31,0\n3,0,49,0,47,0,7,0,33,0,46,0\n19,0,41,0,17,0,44,0,55,0,27,0\n10,0,30,0,22,0,29,0,54,0,24,0\n40,0,14,0,5,0,11,0,23,0,32,0\n51,0,2,0,25,0,53,0,18,0,13,0\n58,0,48,0,39,0,56,0,35,0,28,0\n"
  },
  {
    "path": "schedules/59_6.csv",
    "content": "54,0,59,0,20,0,4,0,39,0,28,0\n34,0,30,0,12,0,8,0,41,0,11,0\n6,0,10,0,17,0,45,0,35,0,18,0\n50,0,3,0,51,0,2,0,55,0,31,0\n9,0,5,0,49,0,58,0,53,0,52,0\n43,0,47,0,44,0,48,0,29,0,27,0\n32,0,14,0,21,0,1,0,38,0,46,0\n56,0,40,0,42,0,24,0,15,0,25,0\n19,0,13,0,22,0,7,0,23,0,36,0\n57,0,37,0,33,0,16,0,26,0,59,0\n52,0,8,0,35,0,31,0,4,0,47,0\n12,0,53,0,48,0,10,0,20,0,38,0\n51,0,15,0,43,0,54,0,21,0,30,0\n27,0,42,0,2,0,14,0,5,0,23,0\n58,0,16,0,29,0,6,0,11,0,40,0\n50,0,37,0,24,0,19,0,34,0,1,0\n39,0,3,0,46,0,57,0,22,0,18,0\n56,0,36,0,55,0,33,0,32,0,41,0\n28,0,7,0,9,0,26,0,44,0,17,0\n13,0,45,0,30,0,49,0,25,0,48,0\n21,0,53,0,8,0,19,0,42,0,16,0\n59,0,24,0,23,0,51,0,6,0,38,0\n4,0,22,0,33,0,50,0,43,0,58,0\n32,0,2,0,52,0,26,0,12,0,39,0\n14,0,7,0,10,0,47,0,55,0,54,0\n44,0,31,0,5,0,46,0,37,0,11,0\n34,0,29,0,18,0,20,0,25,0,36,0\n57,0,45,0,27,0,41,0,9,0,40,0\n3,0,28,0,1,0,35,0,56,0,49,0\n17,0,58,0,47,0,15,0,13,0,59,0\n12,0,54,0,5,0,24,0,6,0,22,0\n2,0,4,0,18,0,53,0,37,0,7,0\n57,0,44,0,25,0,10,0,32,0,8,0\n31,0,43,0,41,0,39,0,19,0,49,0\n35,0,46,0,27,0,20,0,16,0,30,0\n45,0,15,0,38,0,28,0,50,0,29,0\n36,0,11,0,51,0,9,0,42,0,1,0\n21,0,23,0,55,0,34,0,26,0,48,0\n40,0,33,0,3,0,17,0,52,0,14,0\n56,0,16,0,10,0,13,0,5,0,4,0\n2,0,8,0,46,0,24,0,43,0,45,0\n59,0,42,0,49,0,32,0,29,0,7,0\n54,0,25,0,1,0,23,0,44,0,41,0\n15,0,9,0,6,0,37,0,3,0,20,0\n28,0,21,0,12,0,58,0,31,0,36,0\n19,0,55,0,27,0,18,0,38,0,52,0\n50,0,39,0,11,0,48,0,56,0,17,0\n40,0,26,0,30,0,22,0,53,0,47,0\n51,0,14,0,35,0,57,0,13,0,34,0\n33,0,46,0,49,0,23,0,12,0,15,0\n41,0,29,0,24,0,10,0,21,0,3,0\n8,0,17,0,20,0,5,0,1,0,55,0\n37,0,58,0,30,0,45,0,39,0,42,0\n13,0,31,0,54,0,27,0,53,0,32,0\n14,0,11,0,26,0,4,0,25,0,19,0\n44,0,36,0,59,0,50,0,35,0,40,0\n22,0,48,0,28,0,16,0,51,0,18,0\n47,0,38,0,9,0,2,0,33,0,34,0\n56,0,6,0,52,0,57,0,43,0,7,0\n"
  },
  {
    "path": "schedules/59_7.csv",
    "content": "3,0,55,0,19,0,48,0,4,0,51,0\n26,0,45,0,8,0,18,0,38,0,37,0\n49,0,13,0,6,0,16,0,47,0,39,0\n7,0,35,0,42,0,41,0,31,0,17,0\n15,0,20,0,54,0,5,0,1,0,12,0\n24,0,50,0,2,0,57,0,36,0,30,0\n40,0,58,0,14,0,53,0,52,0,25,0\n11,0,46,0,43,0,22,0,44,0,23,0\n9,0,27,0,10,0,28,0,34,0,33,0\n29,0,32,0,21,0,56,0,59,0,35,0\n18,0,51,0,36,0,39,0,12,0,31,0\n17,0,14,0,8,0,6,0,48,0,1,0\n4,0,26,0,49,0,44,0,58,0,20,0\n41,0,50,0,55,0,34,0,13,0,11,0\n28,0,53,0,16,0,54,0,56,0,7,0\n52,0,45,0,27,0,57,0,22,0,10,0\n42,0,2,0,25,0,19,0,15,0,21,0\n33,0,37,0,5,0,47,0,23,0,29,0\n30,0,40,0,9,0,32,0,46,0,3,0\n24,0,59,0,31,0,43,0,38,0,1,0\n50,1,16,0,48,0,27,0,26,0,41,0\n22,0,21,0,12,0,58,0,55,0,28,0\n33,0,20,0,11,0,14,0,18,0,2,0\n47,0,4,0,57,0,35,0,53,0,9,0\n17,0,56,0,5,0,36,0,46,0,38,0\n32,0,7,0,19,0,44,0,52,0,24,0\n34,0,37,0,15,0,43,0,49,0,3,0\n51,0,13,0,54,0,29,0,45,0,40,0\n23,0,39,0,42,0,10,0,59,0,8,0\n30,0,25,0,12,0,6,0,38,0,11,0\n2,0,44,0,36,0,1,0,27,0,35,0\n3,0,31,0,14,0,22,0,50,0,26,0\n5,0,18,0,9,0,13,0,19,0,58,0\n45,0,53,0,43,0,42,0,32,0,20,0\n8,0,41,0,56,0,55,0,40,0,24,0\n25,0,49,0,48,0,33,0,10,0,46,0\n52,0,59,0,30,0,15,0,28,0,47,0\n16,0,57,0,51,0,17,0,34,0,23,0\n37,0,4,0,54,0,6,0,21,0,39,0\n29,0,3,0,58,0,7,0,38,0,2,0\n49,0,50,0,10,0,43,0,56,0,18,0\n36,0,47,0,22,0,32,0,25,0,8,0\n5,0,48,0,28,0,51,0,24,0,53,0\n37,0,16,0,52,0,42,0,12,0,9,0\n59,0,39,0,34,0,45,0,14,0,46,0\n23,0,35,0,19,0,30,0,54,0,26,0\n29,0,6,0,44,0,20,0,55,0,31,0\n13,0,21,0,1,0,7,0,33,0,57,0\n15,0,40,0,11,0,4,0,27,0,17,0\n41,0,49,0,38,0,52,0,51,0,9,0\n47,0,42,0,18,0,24,0,34,0,54,0\n31,0,58,0,56,0,30,0,48,0,45,0\n20,0,25,0,7,0,57,0,50,0,23,0\n4,0,12,0,59,0,22,0,2,0,13,0\n43,0,6,0,40,0,19,0,36,0,28,0\n44,0,14,0,41,0,21,0,10,0,3,0\n17,0,33,0,39,0,55,0,26,0,32,0\n53,0,46,0,1,0,29,0,27,0,37,0\n35,0,8,0,11,0,16,0,5,0,15,0\n2,0,56,0,34,0,31,0,6,0,52,0\n54,0,57,0,18,0,48,0,44,0,59,0\n28,0,32,0,38,0,4,0,14,0,50,0\n29,0,24,0,13,0,3,0,25,0,17,0\n15,0,36,0,23,0,41,0,9,0,45,0\n55,0,1,0,22,0,42,0,49,0,40,0\n5,0,39,0,27,0,30,0,7,0,43,0\n35,0,10,0,51,0,11,0,37,0,58,0\n46,0,47,0,21,0,16,0,26,0,20,0\n33,0,12,0,53,0,8,0,19,0,50,0\n"
  },
  {
    "path": "schedules/59_8.csv",
    "content": "40,0,18,0,19,0,48,0,54,0,49,0\n20,0,53,0,25,0,45,0,28,0,33,0\n46,0,13,0,15,0,26,0,17,0,37,0\n7,0,23,0,42,0,52,0,8,0,27,0\n34,0,39,0,11,0,12,0,44,0,29,0\n24,0,57,0,31,0,10,0,56,0,14,0\n22,0,43,0,30,0,32,0,2,0,38,0\n4,0,59,0,58,0,1,0,55,0,41,0\n21,0,47,0,36,0,5,0,35,0,3,0\n6,0,16,0,53,0,9,0,51,0,50,0\n48,0,11,0,52,0,37,0,25,0,31,0\n7,0,17,0,10,0,54,0,22,0,26,0\n59,0,24,0,39,0,30,0,20,0,58,0\n44,0,56,0,32,0,36,0,28,0,4,0\n38,0,47,0,51,0,45,0,21,0,12,0\n1,0,9,0,27,0,43,0,35,0,29,0\n49,0,16,0,8,0,5,0,6,0,13,0\n42,0,3,0,18,0,46,0,55,0,57,0\n41,0,2,0,40,0,19,0,33,0,14,0\n23,0,15,0,45,0,34,0,50,0,58,0\n29,1,36,0,1,0,17,1,25,0,30,0\n16,0,21,0,24,0,59,0,32,0,11,0\n52,0,13,0,39,0,28,0,22,0,35,0\n5,0,18,0,46,0,33,0,53,0,7,0\n20,0,40,0,8,0,37,0,55,0,38,0\n12,0,57,0,6,0,41,0,54,0,23,0\n4,0,10,0,19,0,27,0,50,0,43,0\n44,0,47,0,42,0,9,0,14,0,15,0\n26,0,2,0,49,0,31,0,3,0,51,0\n56,0,48,0,59,0,34,0,38,0,5,0\n18,0,6,0,45,0,22,0,52,0,24,0\n8,0,36,0,17,0,43,0,11,0,53,0\n13,0,14,0,12,0,55,0,7,0,4,0\n54,0,33,0,58,0,47,0,27,0,16,0\n30,0,28,0,31,0,41,0,46,0,34,0\n25,0,26,0,50,0,44,0,40,0,57,0\n39,0,1,0,19,0,32,0,3,0,15,0\n37,0,9,0,56,0,23,0,49,0,21,0\n48,0,51,0,29,0,35,0,42,0,20,0\n10,0,27,0,18,0,2,0,11,0,13,0\n4,0,25,0,46,0,38,0,24,0,54,0\n52,0,55,0,36,0,34,0,15,0,16,0\n43,0,3,0,9,0,12,0,58,0,56,0\n40,0,31,0,22,0,1,0,42,0,53,0\n14,0,17,0,51,0,23,0,30,0,19,0\n33,0,39,0,21,0,48,0,6,0,26,0\n32,0,35,0,41,0,37,0,5,0,10,0\n29,0,45,0,57,0,44,0,49,0,7,0\n2,0,28,0,50,0,8,0,59,0,47,0\n20,0,23,0,11,0,22,0,3,0,4,0\n14,0,38,0,58,0,18,0,26,0,36,0\n51,0,27,0,56,0,40,0,46,0,39,0\n55,0,9,0,29,0,31,0,33,0,32,0\n8,0,45,0,37,0,10,0,12,0,30,0\n59,0,35,0,25,0,6,0,19,0,15,0\n53,0,54,0,52,0,21,0,41,0,44,0\n49,0,5,0,50,0,17,0,42,0,28,0\n1,0,2,0,24,0,48,0,7,0,16,0\n20,0,34,0,47,0,57,0,43,0,13,0\n45,0,9,0,10,0,36,0,59,0,40,0\n8,0,58,0,22,0,46,0,21,0,19,0\n28,0,37,0,3,0,14,0,54,0,29,0\n38,0,7,0,41,0,50,0,39,0,42,0\n44,0,23,0,43,0,13,0,31,0,16,0\n4,0,15,0,57,0,53,0,2,0,48,0\n47,0,55,0,17,0,24,0,27,0,6,0\n26,0,12,0,5,0,52,0,20,0,1,0\n30,0,35,0,11,0,49,0,33,0,56,0\n32,0,34,0,51,0,25,0,18,0,8,0\n43,0,15,0,7,0,28,0,21,0,40,0\n38,0,23,0,53,0,29,0,10,0,47,0\n55,0,54,0,2,0,39,0,5,0,45,0\n31,0,52,0,35,0,17,0,58,0,57,0\n50,0,32,0,30,0,3,0,48,0,13,0\n22,0,27,0,49,0,12,0,25,0,36,0\n14,0,6,0,20,0,11,0,1,0,46,0\n37,0,44,0,33,0,42,0,51,0,59,0\n19,0,34,0,26,0,4,0,24,0,9,0\n41,0,16,0,17,0,18,0,56,0,29,0\n"
  },
  {
    "path": "schedules/59_9.csv",
    "content": "20,0,39,0,14,0,2,0,57,0,52,0\n38,0,12,0,44,0,53,0,22,0,5,0\n9,0,51,0,17,0,40,0,13,0,47,0\n4,0,16,0,26,0,27,0,59,0,15,0\n19,0,54,0,49,0,55,0,42,0,8,0\n50,0,11,0,36,0,18,0,28,0,1,0\n32,0,25,0,48,0,33,0,41,0,45,0\n6,0,34,0,7,0,58,0,43,0,10,0\n24,0,46,0,37,0,21,0,30,0,29,0\n23,0,35,0,51,0,31,0,56,0,3,0\n52,0,40,0,59,0,42,0,12,0,19,0\n8,0,26,0,45,0,39,0,11,0,47,0\n16,0,41,0,1,0,58,0,44,0,2,0\n27,0,21,0,57,0,55,0,33,0,18,0\n46,0,29,0,3,0,48,0,36,0,5,0\n35,0,6,0,13,0,30,0,50,0,53,0\n14,0,49,0,32,0,10,0,37,0,56,0\n4,0,34,0,17,0,23,0,22,0,54,0\n28,0,7,0,24,0,20,0,15,0,9,0\n43,0,38,0,39,0,31,0,25,0,59,0\n57,1,30,0,3,0,1,1,26,0,21,0\n53,1,27,0,48,0,10,0,8,0,47,0\n58,0,13,0,5,0,52,0,23,0,33,0\n12,0,56,0,45,0,7,0,54,0,44,0\n24,0,29,0,17,0,49,0,4,0,41,0\n19,0,43,0,51,0,15,0,38,0,50,0\n14,0,37,0,25,0,16,0,22,0,18,0\n55,0,6,0,9,0,11,0,46,0,20,0\n42,0,2,0,36,0,34,0,32,0,35,0\n28,0,31,0,5,0,40,0,30,0,45,0\n50,0,47,0,3,0,38,0,49,0,58,0\n10,0,22,0,27,0,43,0,29,0,52,0\n21,0,56,0,8,0,13,0,20,0,16,0\n48,0,9,0,23,0,18,0,53,0,19,0\n46,0,12,0,51,0,17,0,39,0,1,0\n35,0,40,0,42,0,14,0,11,0,4,0\n41,0,31,0,57,0,7,0,37,0,36,0\n28,0,54,0,25,0,6,0,2,0,26,0\n44,0,33,0,34,0,24,0,59,0,55,0\n15,0,39,0,30,0,32,0,53,0,10,0\n43,0,17,0,5,0,9,0,42,0,56,0\n45,0,38,0,16,0,40,0,57,0,29,0\n27,0,13,0,28,0,46,0,41,0,22,0\n6,0,4,0,47,0,31,0,19,0,33,0\n15,0,12,0,2,0,48,0,21,0,11,0\n14,0,3,0,1,0,7,0,25,0,55,0\n37,0,20,0,32,0,50,0,58,0,54,0\n44,0,59,0,51,0,23,0,8,0,36,0\n35,0,18,0,26,0,24,0,52,0,49,0\n34,0,56,0,40,0,27,0,39,0,46,0\n3,0,53,0,21,0,43,0,4,0,28,0\n1,0,19,0,57,0,32,0,29,0,22,0\n14,0,58,0,31,0,15,0,44,0,17,0\n25,0,49,0,33,0,51,0,11,0,30,0\n7,0,50,0,42,0,48,0,24,0,16,0\n36,0,10,0,34,0,26,0,13,0,12,0\n45,0,55,0,2,0,6,0,23,0,37,0\n54,0,18,0,20,0,47,0,59,0,5,0\n35,0,52,0,41,0,38,0,9,0,8,0\n57,0,50,0,4,0,46,0,44,0,25,0\n26,0,29,0,58,0,31,0,53,0,42,0\n2,0,7,0,56,0,19,0,22,0,30,0\n13,0,43,0,54,0,40,0,48,0,1,0\n52,0,55,0,32,0,12,0,47,0,28,0\n15,0,37,0,33,0,35,0,17,0,8,0\n27,0,11,0,23,0,14,0,38,0,24,0\n5,0,41,0,18,0,34,0,51,0,20,0\n10,0,45,0,9,0,16,0,59,0,3,0\n39,0,36,0,44,0,21,0,6,0,49,0\n50,0,33,0,26,0,17,0,2,0,40,0\n47,0,55,0,29,0,56,0,25,0,15,0\n41,0,54,0,30,0,43,0,23,0,14,0\n53,0,46,0,52,0,51,0,16,0,7,0\n21,0,31,0,32,0,5,0,9,0,34,0\n8,0,24,0,22,0,58,0,45,0,36,0\n49,0,59,0,48,0,28,0,57,0,6,0\n11,0,19,0,37,0,3,0,13,0,39,0\n10,0,38,0,1,0,4,0,18,0,42,0\n20,0,12,0,23,0,27,0,35,0,25,0\n52,0,16,0,30,0,36,0,55,0,17,0\n28,0,51,0,8,0,34,0,29,0,14,0\n53,0,11,0,58,0,56,0,57,0,59,0\n18,0,40,0,15,0,6,0,41,0,3,0\n49,0,42,0,1,0,27,0,31,0,45,0\n21,0,19,0,46,0,35,0,10,0,54,0\n48,0,20,0,43,0,37,0,44,0,26,0\n9,0,33,0,22,0,39,0,50,0,12,0\n38,0,4,0,7,0,32,0,13,0,2,0\n47,0,57,0,53,0,5,0,24,0,1,0\n"
  },
  {
    "path": "schedules/60_1.csv",
    "content": "35,0,33,0,25,0,44,0,51,0,58,0\n9,0,13,0,24,0,31,0,3,0,12,0\n4,0,7,0,52,0,26,0,30,0,6,0\n23,0,59,0,15,0,21,0,28,0,2,0\n29,0,47,0,38,0,60,0,49,0,11,0\n43,0,1,0,19,0,8,0,34,0,10,0\n22,0,57,0,27,0,5,0,39,0,50,0\n17,0,56,0,45,0,55,0,37,0,46,0\n14,0,53,0,40,0,18,0,32,0,16,0\n20,0,42,0,48,0,54,0,36,0,41,0\n"
  },
  {
    "path": "schedules/60_10.csv",
    "content": "32,0,28,0,54,0,46,0,50,0,27,0\n23,0,59,0,41,0,58,0,13,0,31,0\n51,0,10,0,15,0,18,0,9,0,47,0\n1,0,7,0,6,0,2,0,48,0,12,0\n11,0,21,0,35,0,5,0,39,0,56,0\n29,0,24,0,30,0,38,0,40,0,34,0\n43,0,49,0,4,0,22,0,17,0,3,0\n42,0,33,0,55,0,36,0,45,0,26,0\n16,0,57,0,20,0,19,0,37,0,8,0\n25,0,14,0,53,0,44,0,60,0,52,0\n11,0,29,0,23,0,15,0,27,0,35,0\n31,0,47,0,17,0,28,0,2,0,30,0\n54,0,24,0,58,0,51,0,1,0,33,0\n41,0,55,0,18,0,7,0,37,0,49,0\n53,0,22,0,21,0,48,0,38,0,32,0\n19,0,10,0,20,0,56,0,6,0,42,0\n3,0,34,0,5,0,36,0,16,0,60,0\n14,0,8,0,12,0,40,0,9,0,43,0\n39,0,57,0,4,0,13,0,46,0,25,0\n26,0,52,0,59,0,44,0,50,0,45,0\n53,0,17,0,11,0,21,0,19,0,51,0\n3,0,49,0,24,0,32,0,10,0,5,0\n54,0,40,0,16,0,36,0,56,0,2,0\n41,0,38,0,28,0,60,0,43,0,57,0\n23,0,47,0,58,0,20,0,48,0,14,0\n35,0,25,0,1,0,31,0,42,0,50,0\n13,0,7,0,45,0,46,0,26,0,30,0\n27,0,44,0,37,0,9,0,34,0,15,0\n39,0,52,0,22,0,6,0,59,0,33,0\n18,0,29,0,12,0,55,0,4,0,8,0\n25,0,54,0,3,0,11,0,20,0,40,0\n53,0,7,0,19,0,58,0,43,0,45,0\n17,0,38,0,36,0,56,0,46,0,15,0\n48,0,30,0,22,0,57,0,26,0,27,0\n6,0,18,0,8,0,21,0,13,0,28,0\n14,0,9,0,29,0,59,0,49,0,2,0\n47,0,33,0,50,0,5,0,4,0,37,0\n24,0,44,0,23,0,42,0,12,0,16,0\n35,0,34,0,32,0,1,0,41,0,52,0\n10,0,31,0,60,0,55,0,51,0,39,0\n38,0,15,0,2,0,8,0,45,0,25,0\n33,0,57,0,21,0,7,0,29,0,40,0\n47,0,46,0,37,0,22,0,42,0,43,0\n49,0,27,0,20,0,13,0,35,0,53,0\n36,0,32,0,19,0,4,0,31,0,23,0\n50,0,9,0,6,0,16,0,41,0,24,0\n28,0,12,0,5,0,58,0,52,0,51,0\n60,0,48,0,11,0,30,0,44,0,10,0\n55,0,56,0,1,0,14,0,59,0,3,0\n26,0,39,0,18,0,54,0,17,0,34,0\n46,0,16,0,43,0,33,0,31,0,35,0\n40,0,8,0,21,0,27,0,22,0,58,0\n50,0,20,0,32,0,12,0,30,0,15,0\n51,0,42,0,49,0,57,0,59,0,48,0\n17,0,52,0,9,0,13,0,1,0,11,0\n39,0,10,0,37,0,26,0,2,0,23,0\n56,0,24,0,34,0,53,0,47,0,55,0\n36,0,44,0,5,0,7,0,18,0,38,0\n19,0,28,0,25,0,41,0,29,0,3,0\n6,0,4,0,45,0,54,0,14,0,60,0\n46,0,49,0,52,0,30,0,23,0,21,0\n17,0,37,0,48,0,24,0,12,0,31,0\n50,0,57,0,34,0,10,0,58,0,11,0\n15,0,13,0,16,0,1,0,53,0,28,0\n19,0,27,0,33,0,14,0,55,0,44,0\n43,0,26,0,5,0,25,0,29,0,6,0\n59,0,8,0,60,0,35,0,47,0,54,0\n3,0,42,0,7,0,9,0,38,0,39,0\n40,0,45,0,56,0,18,0,4,0,32,0\n22,0,41,0,36,0,51,0,20,0,2,0\n10,0,34,0,13,0,33,0,25,0,12,0\n46,0,59,0,28,0,24,0,11,0,19,0\n1,0,49,0,31,0,47,0,8,0,44,0\n55,0,15,0,43,0,21,0,54,0,52,0\n40,0,48,0,36,0,39,0,50,0,29,0\n57,0,18,0,2,0,20,0,3,0,53,0\n42,0,27,0,45,0,41,0,5,0,17,0\n30,0,51,0,32,0,14,0,6,0,37,0\n26,0,58,0,4,0,38,0,35,0,16,0\n23,0,56,0,60,0,7,0,22,0,9,0\n39,0,33,0,20,0,49,0,50,0,28,0\n43,0,1,0,59,0,5,0,27,0,18,0\n40,0,46,0,14,0,10,0,53,0,41,0\n30,0,3,0,6,0,58,0,15,0,44,0\n37,0,31,0,22,0,54,0,45,0,11,0\n2,0,42,0,8,0,34,0,52,0,4,0\n9,0,48,0,13,0,55,0,35,0,19,0\n47,0,24,0,21,0,25,0,36,0,57,0\n16,0,29,0,32,0,17,0,7,0,60,0\n12,0,51,0,23,0,56,0,26,0,38,0\n5,0,22,0,14,0,31,0,34,0,28,0\n35,0,42,0,30,0,53,0,54,0,18,0\n9,0,10,0,59,0,4,0,21,0,20,0\n1,0,37,0,58,0,29,0,36,0,46,0\n12,0,45,0,47,0,16,0,39,0,3,0\n51,0,56,0,7,0,52,0,27,0,25,0\n2,0,44,0,13,0,24,0,43,0,32,0\n50,0,17,0,55,0,57,0,6,0,23,0\n8,0,11,0,38,0,48,0,33,0,41,0\n19,0,26,0,15,0,40,0,49,0,60,0\n"
  },
  {
    "path": "schedules/60_11.csv",
    "content": "48,0,59,0,13,0,21,0,49,0,56,0\n40,0,29,0,45,0,58,0,14,0,50,0\n2,0,7,0,54,0,30,0,12,0,53,0\n32,0,5,0,27,0,25,0,28,0,34,0\n19,0,10,0,17,0,31,0,60,0,33,0\n20,0,26,0,36,0,39,0,8,0,1,0\n15,0,51,0,16,0,11,0,23,0,24,0\n35,0,41,0,52,0,57,0,22,0,9,0\n44,0,6,0,42,0,46,0,37,0,47,0\n43,0,3,0,18,0,38,0,55,0,4,0\n14,0,33,0,59,0,36,0,39,0,13,0\n21,0,31,0,8,0,23,0,15,0,12,0\n51,0,22,0,20,0,27,0,17,0,2,0\n45,0,54,0,34,0,11,0,37,0,42,0\n49,0,18,0,25,0,46,0,7,0,56,0\n43,0,47,0,48,0,19,0,52,0,30,0\n50,0,29,0,55,0,5,0,44,0,4,0\n26,0,38,0,24,0,6,0,9,0,41,0\n16,0,3,0,10,0,35,0,40,0,32,0\n58,0,28,0,1,0,57,0,53,0,60,0\n34,0,8,0,56,0,7,0,14,0,17,0\n13,0,55,0,2,0,59,0,42,0,31,0\n21,0,37,0,51,0,49,0,43,0,41,0\n36,0,35,0,9,0,10,0,54,0,40,0\n23,0,52,0,18,0,27,0,28,0,44,0\n11,0,4,0,60,0,22,0,6,0,25,0\n33,0,53,0,26,0,38,0,46,0,3,0\n24,0,58,0,12,0,30,0,39,0,5,0\n16,0,1,0,45,0,48,0,29,0,19,0\n50,0,47,0,15,0,57,0,20,0,32,0\n43,0,59,0,23,0,4,0,35,0,17,0\n7,0,22,0,8,0,37,0,28,0,13,0\n26,0,40,0,60,0,54,0,56,0,5,0\n11,0,14,0,44,0,38,0,1,0,30,0\n15,0,57,0,27,0,45,0,36,0,3,0\n25,0,52,0,33,0,16,0,20,0,2,0\n50,0,6,0,49,0,55,0,31,0,9,0\n10,0,46,0,29,0,24,0,51,0,48,0\n32,0,39,0,42,0,53,0,21,0,41,0\n19,0,47,0,12,0,34,0,58,0,18,0\n52,0,3,0,57,0,11,0,59,0,8,0\n40,0,30,0,25,0,15,0,6,0,13,0\n35,0,54,0,38,0,51,0,1,0,50,0\n37,0,9,0,7,0,29,0,20,0,23,0\n36,0,60,0,21,0,24,0,34,0,44,0\n39,0,16,0,46,0,5,0,2,0,47,0\n55,0,12,0,17,0,26,0,48,0,27,0\n41,0,58,0,42,0,28,0,56,0,10,0\n45,0,4,0,43,0,32,0,49,0,33,0\n53,0,22,0,14,0,31,0,18,0,19,0\n52,0,9,0,59,0,24,0,1,0,37,0\n50,0,13,0,7,0,47,0,39,0,26,0\n30,0,58,0,21,0,20,0,3,0,17,0\n44,0,45,0,10,0,8,0,15,0,2,0\n53,0,18,0,55,0,60,0,51,0,34,0\n48,0,42,0,4,0,35,0,14,0,5,0\n23,0,31,0,57,0,54,0,43,0,25,0\n32,0,6,0,56,0,33,0,29,0,22,0\n40,0,46,0,27,0,41,0,19,0,11,0\n28,0,12,0,49,0,38,0,36,0,16,0\n35,0,15,0,42,0,26,0,7,0,52,0\n48,0,53,0,58,0,25,0,9,0,4,0\n18,0,6,0,5,0,59,0,45,0,21,0\n41,0,14,0,2,0,23,0,47,0,3,0\n11,0,16,0,50,0,43,0,60,0,56,0\n8,0,37,0,20,0,40,0,55,0,24,0\n51,0,29,0,31,0,28,0,19,0,36,0\n22,0,27,0,49,0,39,0,54,0,44,0\n32,0,1,0,17,0,13,0,46,0,12,0\n57,0,34,0,30,0,38,0,10,0,33,0\n15,0,20,0,7,0,41,0,60,0,59,0\n25,0,58,0,37,0,14,0,26,0,51,0\n6,0,19,0,2,0,24,0,9,0,56,0\n8,0,29,0,13,0,53,0,43,0,27,0\n47,0,30,0,28,0,55,0,35,0,45,0\n11,0,38,0,39,0,10,0,32,0,31,0\n57,0,16,0,40,0,44,0,17,0,18,0\n36,0,54,0,4,0,46,0,52,0,21,0\n34,0,22,0,5,0,49,0,3,0,1,0\n48,0,12,0,33,0,23,0,42,0,50,0\n56,0,31,0,37,0,27,0,35,0,30,0\n9,0,39,0,17,0,18,0,45,0,15,0\n60,0,7,0,38,0,29,0,21,0,2,0\n24,0,14,0,46,0,57,0,28,0,55,0\n11,0,22,0,47,0,36,0,50,0,12,0\n49,0,5,0,10,0,52,0,53,0,20,0\n33,0,51,0,41,0,44,0,40,0,48,0\n4,0,6,0,8,0,54,0,13,0,16,0\n1,0,19,0,43,0,25,0,3,0,42,0\n34,0,23,0,32,0,59,0,26,0,58,0\n28,0,29,0,18,0,30,0,2,0,11,0\n60,0,39,0,12,0,48,0,52,0,37,0\n5,0,36,0,51,0,6,0,57,0,7,0\n53,0,24,0,3,0,50,0,56,0,45,0\n43,0,14,0,21,0,22,0,26,0,10,0\n40,0,41,0,47,0,1,0,31,0,4,0\n55,0,27,0,54,0,33,0,58,0,15,0\n44,0,32,0,13,0,19,0,35,0,20,0\n34,0,46,0,59,0,9,0,8,0,16,0\n17,0,25,0,23,0,38,0,49,0,42,0\n28,0,53,0,39,0,6,0,43,0,40,0\n26,0,12,0,56,0,4,0,51,0,57,0\n52,0,44,0,31,0,7,0,45,0,58,0\n41,0,54,0,20,0,14,0,29,0,34,0\n27,0,25,0,59,0,21,0,50,0,10,0\n60,0,3,0,9,0,13,0,47,0,42,0\n37,0,19,0,5,0,15,0,17,0,38,0\n49,0,35,0,11,0,24,0,8,0,33,0\n1,0,48,0,36,0,18,0,32,0,2,0\n55,0,46,0,30,0,22,0,16,0,23,0\n"
  },
  {
    "path": "schedules/60_12.csv",
    "content": "9,0,2,0,57,0,19,0,47,0,15,0\n14,0,5,0,12,0,23,0,48,0,41,0\n4,0,24,0,37,0,46,0,39,0,8,0\n52,0,58,0,40,0,42,0,20,0,10,0\n53,0,44,0,7,0,13,0,36,0,43,0\n25,0,6,0,22,0,59,0,28,0,56,0\n3,0,18,0,34,0,35,0,1,0,16,0\n33,0,54,0,30,0,31,0,21,0,49,0\n55,0,50,0,38,0,17,0,29,0,51,0\n45,0,26,0,27,0,11,0,32,0,60,0\n9,0,24,0,40,0,48,0,37,0,52,0\n10,0,5,0,47,0,53,0,43,0,42,0\n54,0,57,0,31,0,28,0,12,0,22,0\n36,0,17,0,1,0,51,0,8,0,33,0\n7,0,56,0,20,0,45,0,19,0,38,0\n41,0,16,0,46,0,21,0,13,0,23,0\n32,0,3,0,44,0,11,0,39,0,59,0\n6,0,18,0,60,0,49,0,29,0,58,0\n30,0,55,0,4,0,2,0,25,0,34,0\n35,0,14,0,26,0,27,0,50,0,15,0\n47,0,21,0,38,0,36,0,24,0,23,0\n11,0,8,0,31,0,19,0,52,0,53,0\n40,0,6,0,32,0,41,0,17,0,3,0\n20,0,43,0,46,0,12,0,34,0,55,0\n60,0,49,0,35,0,10,0,37,0,56,0\n29,0,44,0,14,0,33,0,16,0,25,0\n42,0,1,0,50,0,45,0,15,0,57,0\n4,0,48,0,39,0,26,0,58,0,22,0\n59,0,18,0,27,0,9,0,54,0,7,0\n30,0,2,0,13,0,5,0,51,0,28,0\n34,0,14,0,6,0,40,0,36,0,31,0\n23,0,45,0,16,0,24,0,43,0,57,0\n19,0,17,0,26,0,1,0,58,0,46,0\n50,0,33,0,3,0,12,0,37,0,27,0\n38,0,20,0,54,0,11,0,4,0,44,0\n10,0,51,0,35,0,5,0,7,0,22,0\n30,0,8,0,56,0,9,0,48,0,29,0\n32,0,42,0,47,0,25,0,18,0,13,0\n21,0,39,0,2,0,52,0,60,0,59,0\n55,0,49,0,28,0,15,0,53,0,41,0\n57,0,46,0,40,0,35,0,5,0,44,0\n1,0,10,0,48,0,50,0,19,0,54,0\n26,0,36,0,32,0,56,0,31,0,24,0\n8,0,25,0,23,0,6,0,27,0,20,0\n37,0,59,0,53,0,16,0,17,0,4,0\n9,0,41,0,22,0,2,0,7,0,33,0\n43,0,29,0,28,0,3,0,21,0,52,0\n55,0,13,0,60,0,18,0,30,0,14,0\n49,0,11,0,38,0,34,0,42,0,58,0\n39,0,15,0,12,0,45,0,51,0,47,0\n54,0,41,0,56,0,16,0,8,0,50,0\n31,0,6,0,23,0,4,0,9,0,10,0\n29,0,21,0,59,0,20,0,26,0,5,0\n37,0,2,0,43,0,38,0,28,0,32,0\n19,0,27,0,1,0,40,0,49,0,44,0\n22,0,52,0,45,0,18,0,36,0,15,0\n55,0,35,0,57,0,13,0,58,0,39,0\n3,0,51,0,24,0,14,0,53,0,25,0\n42,0,60,0,48,0,46,0,33,0,34,0\n17,0,7,0,12,0,11,0,30,0,47,0\n10,0,36,0,27,0,2,0,16,0,20,0\n41,0,31,0,59,0,39,0,1,0,18,0\n24,0,44,0,58,0,9,0,15,0,28,0\n6,0,21,0,33,0,46,0,48,0,51,0\n52,0,49,0,4,0,7,0,32,0,50,0\n8,0,5,0,45,0,25,0,3,0,38,0\n29,0,54,0,11,0,35,0,40,0,47,0\n26,0,34,0,60,0,53,0,12,0,13,0\n22,0,19,0,30,0,37,0,55,0,23,0\n17,0,14,0,43,0,57,0,42,0,56,0\n48,0,3,0,49,0,44,0,46,0,2,0\n8,0,18,0,9,0,39,0,40,0,10,0\n15,0,52,0,34,0,6,0,5,0,54,0\n38,0,16,0,7,0,26,0,31,0,55,0\n53,0,45,0,58,0,59,0,33,0,14,0\n27,0,13,0,4,0,21,0,56,0,17,0\n11,0,43,0,50,0,60,0,24,0,22,0\n32,0,25,0,51,0,23,0,19,0,29,0\n36,0,12,0,30,0,41,0,35,0,42,0\n20,0,28,0,37,0,1,0,57,0,47,0\n7,0,10,0,15,0,3,0,14,0,39,0\n21,0,11,0,45,0,9,0,55,0,6,0\n5,0,13,0,24,0,58,0,54,0,27,0\n43,0,59,0,48,0,36,0,8,0,49,0\n23,0,47,0,2,0,34,0,56,0,50,0\n26,0,44,0,25,0,30,0,17,0,52,0\n31,0,29,0,18,0,37,0,51,0,57,0\n42,0,33,0,28,0,4,0,35,0,19,0\n46,0,22,0,53,0,41,0,32,0,20,0\n12,0,16,0,60,0,40,0,1,0,38,0\n49,0,5,0,23,0,52,0,11,0,55,0\n57,0,25,0,39,0,48,0,36,0,54,0\n42,0,24,0,19,0,6,0,35,0,7,0\n41,0,51,0,18,0,4,0,43,0,26,0\n45,0,46,0,50,0,27,0,30,0,28,0\n1,0,34,0,53,0,22,0,56,0,29,0\n20,0,60,0,17,0,9,0,31,0,3,0\n21,0,44,0,37,0,14,0,10,0,2,0\n33,0,15,0,40,0,13,0,38,0,59,0\n32,0,16,0,58,0,8,0,47,0,12,0\n53,0,39,0,27,0,6,0,30,0,43,0\n36,0,5,0,4,0,60,0,1,0,9,0\n31,0,37,0,35,0,41,0,45,0,25,0\n50,0,2,0,28,0,33,0,18,0,11,0\n56,0,55,0,51,0,44,0,8,0,52,0\n15,0,16,0,13,0,48,0,19,0,20,0\n29,0,12,0,24,0,10,0,49,0,17,0\n58,0,57,0,7,0,21,0,34,0,32,0\n47,0,22,0,59,0,46,0,14,0,38,0\n54,0,42,0,40,0,3,0,26,0,23,0\n13,0,37,0,50,0,6,0,36,0,44,0\n56,0,33,0,5,0,24,0,20,0,18,0\n35,0,48,0,15,0,32,0,43,0,31,0\n7,0,11,0,46,0,1,0,29,0,25,0\n47,0,28,0,34,0,8,0,26,0,10,0\n19,0,55,0,14,0,59,0,4,0,12,0\n54,0,17,0,23,0,60,0,2,0,45,0\n58,0,30,0,21,0,22,0,3,0,40,0\n9,0,39,0,51,0,16,0,49,0,42,0\n52,0,27,0,41,0,53,0,57,0,38,0\n"
  },
  {
    "path": "schedules/60_13.csv",
    "content": "13,0,59,0,35,0,26,0,11,0,22,0\n41,0,30,0,34,0,29,0,39,0,48,0\n28,0,21,0,51,0,10,0,44,0,27,0\n24,0,47,0,45,0,18,0,3,0,37,0\n16,0,52,0,33,0,58,0,15,0,31,0\n38,0,50,0,4,0,2,0,60,0,7,0\n57,0,8,0,25,0,46,0,55,0,9,0\n54,0,32,0,20,0,23,0,14,0,12,0\n43,0,49,0,1,0,19,0,6,0,40,0\n36,0,17,0,5,0,42,0,53,0,56,0\n16,0,60,0,31,0,37,0,22,0,29,0\n44,0,2,0,55,0,13,0,48,0,7,0\n50,0,11,0,25,0,38,0,24,0,54,0\n47,0,59,0,20,0,58,0,21,0,6,0\n56,0,57,0,23,0,53,0,49,0,34,0\n43,0,12,0,39,0,42,0,8,0,36,0\n46,0,14,0,30,0,27,0,28,0,35,0\n51,0,9,0,45,0,26,0,41,0,15,0\n52,0,3,0,10,0,5,0,19,0,1,0\n18,0,32,0,17,0,33,0,40,0,4,0\n2,0,22,0,48,0,8,0,20,0,38,0\n46,0,58,0,56,0,11,0,36,0,37,0\n51,0,13,0,29,0,6,0,53,0,59,0\n12,0,30,0,1,0,25,0,5,0,45,0\n47,0,32,0,15,0,39,0,54,0,55,0\n41,0,31,0,44,0,43,0,60,0,23,0\n7,0,17,0,34,0,16,0,21,0,35,0\n24,0,10,0,49,0,52,0,27,0,50,0\n14,0,28,0,3,0,18,0,33,0,26,0\n40,0,9,0,57,0,4,0,19,0,42,0\n56,0,47,0,1,0,20,0,30,0,60,0\n53,0,7,0,44,0,45,0,46,0,59,0\n2,0,8,0,12,0,23,0,31,0,17,0\n58,0,18,0,55,0,50,0,10,0,34,0\n24,0,35,0,51,0,5,0,41,0,57,0\n28,0,29,0,38,0,32,0,40,0,13,0\n6,0,26,0,9,0,49,0,16,0,39,0\n27,0,54,0,14,0,4,0,52,0,48,0\n3,0,22,0,43,0,36,0,25,0,33,0\n19,0,15,0,11,0,37,0,21,0,42,0\n53,0,5,0,32,0,20,0,41,0,46,0\n18,0,57,0,10,0,39,0,59,0,23,0\n30,0,24,0,7,0,13,0,58,0,8,0\n36,0,27,0,38,0,45,0,31,0,26,0\n11,0,52,0,43,0,47,0,55,0,35,0\n34,0,37,0,51,0,29,0,54,0,42,0\n12,0,15,0,4,0,22,0,28,0,6,0\n25,0,19,0,48,0,16,0,40,0,56,0\n60,0,49,0,14,0,2,0,3,0,17,0\n1,0,9,0,33,0,21,0,50,0,44,0\n10,0,45,0,8,0,11,0,35,0,34,0\n13,0,4,0,26,0,52,0,23,0,37,0\n59,0,15,0,55,0,27,0,46,0,40,0\n16,0,38,0,2,0,51,0,47,0,41,0\n20,0,57,0,19,0,50,0,28,0,17,0\n7,0,33,0,29,0,9,0,12,0,56,0\n49,0,5,0,42,0,25,0,18,0,44,0\n58,0,53,0,39,0,1,0,22,0,14,0\n3,0,36,0,24,0,48,0,60,0,54,0\n43,0,31,0,6,0,30,0,21,0,32,0\n55,0,16,0,10,0,33,0,37,0,38,0\n41,0,59,0,27,0,20,0,50,0,42,0\n18,0,51,0,52,0,7,0,46,0,12,0\n40,0,23,0,11,0,39,0,60,0,5,0\n48,0,26,0,21,0,32,0,35,0,22,0\n58,0,2,0,57,0,6,0,25,0,3,0\n31,0,1,0,4,0,47,0,49,0,13,0\n14,0,8,0,29,0,19,0,44,0,36,0\n56,0,45,0,34,0,28,0,24,0,43,0\n53,0,30,0,17,0,15,0,54,0,9,0\n37,0,39,0,57,0,33,0,2,0,27,0\n11,0,7,0,16,0,3,0,32,0,1,0\n10,0,5,0,29,0,4,0,47,0,14,0\n46,0,13,0,23,0,48,0,50,0,43,0\n28,0,36,0,41,0,17,0,49,0,55,0\n22,0,42,0,40,0,52,0,45,0,30,0\n54,0,35,0,53,0,44,0,60,0,6,0\n34,0,25,0,31,0,59,0,19,0,51,0\n56,0,15,0,20,0,24,0,8,0,26,0\n38,0,9,0,58,0,18,0,21,0,12,0\n3,0,23,0,16,0,13,0,27,0,42,0\n4,0,39,0,2,0,53,0,55,0,45,0\n30,0,6,0,36,0,41,0,10,0,7,0\n37,0,8,0,60,0,25,0,32,0,51,0\n18,0,31,0,19,0,54,0,11,0,57,0\n21,0,22,0,9,0,56,0,24,0,14,0\n48,0,15,0,28,0,58,0,43,0,5,0\n52,0,44,0,1,0,59,0,17,0,38,0\n50,0,40,0,26,0,47,0,12,0,34,0\n35,0,33,0,46,0,20,0,29,0,49,0\n56,0,25,0,21,0,39,0,13,0,18,0\n60,0,32,0,10,0,45,0,57,0,42,0\n27,0,22,0,5,0,7,0,43,0,19,0\n54,0,37,0,41,0,1,0,28,0,8,0\n9,0,29,0,34,0,2,0,52,0,15,0\n3,0,59,0,33,0,23,0,30,0,38,0\n44,0,17,0,46,0,26,0,58,0,47,0\n12,0,49,0,6,0,11,0,48,0,14,0\n50,0,24,0,53,0,40,0,35,0,31,0\n4,0,55,0,36,0,16,0,20,0,51,0\n54,0,52,0,19,0,33,0,41,0,39,0\n46,0,21,0,8,0,3,0,45,0,60,0\n12,0,17,0,26,0,43,0,10,0,25,0\n28,0,59,0,32,0,9,0,2,0,24,0\n50,0,22,0,23,0,57,0,1,0,29,0\n42,0,6,0,35,0,55,0,56,0,38,0\n11,0,30,0,58,0,51,0,4,0,44,0\n48,0,16,0,27,0,18,0,47,0,53,0\n14,0,36,0,13,0,34,0,40,0,15,0\n20,0,7,0,5,0,31,0,37,0,49,0\n54,0,22,0,56,0,10,0,2,0,46,0\n29,0,17,0,43,0,51,0,11,0,3,0\n24,0,60,0,19,0,26,0,55,0,30,0\n12,0,41,0,25,0,21,0,4,0,53,0\n1,0,18,0,27,0,32,0,34,0,36,0\n59,0,50,0,8,0,14,0,5,0,16,0\n37,0,58,0,40,0,35,0,9,0,23,0\n38,0,48,0,44,0,57,0,15,0,49,0\n20,0,45,0,33,0,13,0,52,0,6,0\n39,0,42,0,47,0,31,0,7,0,28,0\n5,0,21,0,55,0,29,0,36,0,26,0\n50,0,37,0,2,0,43,0,18,0,30,0\n44,0,3,0,40,0,41,0,56,0,32,0\n34,0,27,0,6,0,22,0,60,0,17,0\n31,0,13,0,20,0,9,0,10,0,4,0\n19,0,46,0,39,0,38,0,35,0,12,0\n53,0,11,0,8,0,57,0,52,0,28,0\n54,0,45,0,49,0,16,0,58,0,59,0\n25,0,47,0,23,0,15,0,7,0,14,0\n33,0,51,0,42,0,48,0,1,0,24,0\n"
  },
  {
    "path": "schedules/60_14.csv",
    "content": "24,0,2,0,14,0,50,0,6,0,3,0\n58,0,27,0,10,0,31,0,12,0,54,0\n51,0,34,0,18,0,49,0,16,0,56,0\n52,0,11,0,39,0,28,0,1,0,57,0\n36,0,41,0,47,0,29,0,19,0,13,0\n42,0,23,0,35,0,22,0,53,0,48,0\n43,0,55,0,37,0,38,0,17,0,25,0\n15,0,60,0,4,0,8,0,21,0,7,0\n45,0,26,0,44,0,59,0,30,0,33,0\n40,0,9,0,32,0,46,0,5,0,20,0\n12,0,51,0,35,0,11,0,47,0,54,0\n52,0,10,0,53,0,16,0,50,0,38,0\n27,0,29,0,34,0,8,0,28,0,17,0\n3,0,33,0,31,0,59,0,41,0,13,0\n37,0,23,0,5,0,15,0,43,0,49,0\n26,0,46,0,40,0,25,0,22,0,2,0\n45,0,18,0,32,0,48,0,1,0,42,0\n36,0,39,0,19,0,57,0,14,0,4,0\n60,0,30,0,56,0,6,0,9,0,20,0\n58,0,24,0,7,0,55,0,21,0,44,0\n28,0,31,0,50,0,51,0,16,0,26,0\n12,0,52,0,43,0,53,0,15,0,42,0\n47,0,29,0,14,0,18,0,36,0,25,0\n54,0,34,0,1,0,3,0,60,0,13,0\n7,0,4,0,41,0,46,0,22,0,30,0\n55,0,49,0,24,0,45,0,27,0,39,0\n17,0,10,0,32,0,8,0,35,0,6,0\n21,0,2,0,5,0,59,0,23,0,19,0\n44,0,9,0,38,0,11,0,40,0,48,0\n37,0,57,0,58,0,56,0,33,0,20,0\n34,0,15,0,31,0,52,0,36,0,30,0\n4,0,47,0,32,0,26,0,10,0,24,0\n50,0,5,0,54,0,17,0,18,0,42,0\n41,0,23,0,25,0,45,0,60,0,59,0\n2,0,49,0,8,0,58,0,33,0,55,0\n12,0,28,0,48,0,19,0,57,0,20,0\n29,0,1,0,6,0,37,0,40,0,22,0\n9,0,51,0,3,0,14,0,44,0,53,0\n21,0,27,0,46,0,43,0,16,0,11,0\n56,0,13,0,38,0,7,0,35,0,39,0\n58,0,42,0,8,0,19,0,28,0,54,0\n26,0,48,0,55,0,12,0,34,0,37,0\n59,0,14,0,31,0,60,0,24,0,23,0\n25,0,30,0,11,0,18,0,10,0,3,0\n1,0,33,0,4,0,56,0,27,0,35,0\n50,0,7,0,43,0,40,0,39,0,41,0\n15,0,51,0,57,0,38,0,32,0,6,0\n16,0,13,0,47,0,22,0,9,0,5,0\n20,0,52,0,45,0,21,0,49,0,17,0\n46,0,53,0,2,0,29,0,44,0,36,0\n19,0,50,0,25,0,7,0,30,0,1,0\n12,0,38,0,27,0,14,0,23,0,51,0\n13,0,43,0,6,0,18,0,58,0,11,0\n55,0,39,0,17,0,48,0,57,0,3,0\n2,0,15,0,20,0,53,0,47,0,34,0\n41,0,54,0,42,0,56,0,40,0,4,0\n31,0,32,0,29,0,9,0,21,0,45,0\n46,0,35,0,52,0,59,0,8,0,26,0\n5,0,36,0,24,0,37,0,16,0,33,0\n60,0,49,0,44,0,28,0,22,0,10,0\n40,0,38,0,57,0,27,0,53,0,13,0\n31,0,6,0,11,0,55,0,25,0,4,0\n58,0,54,0,48,0,52,0,7,0,14,0\n29,0,35,0,2,0,15,0,45,0,5,0\n42,0,47,0,43,0,3,0,49,0,30,0\n59,0,36,0,1,0,20,0,10,0,8,0\n16,0,60,0,21,0,19,0,37,0,17,0\n39,0,28,0,9,0,26,0,18,0,33,0\n41,0,34,0,22,0,24,0,32,0,51,0\n56,0,46,0,50,0,44,0,23,0,12,0\n49,0,42,0,40,0,31,0,57,0,8,0\n30,0,47,0,6,0,16,0,1,0,55,0\n27,0,60,0,28,0,48,0,36,0,35,0\n45,0,2,0,19,0,38,0,7,0,51,0\n56,0,11,0,41,0,15,0,29,0,10,0\n25,0,58,0,46,0,34,0,5,0,39,0\n4,0,20,0,21,0,3,0,14,0,43,0\n44,0,37,0,59,0,32,0,54,0,53,0\n22,0,26,0,12,0,24,0,18,0,13,0\n33,0,9,0,23,0,52,0,50,0,17,0\n56,0,8,0,39,0,5,0,47,0,60,0\n10,0,11,0,55,0,20,0,14,0,42,0\n48,0,27,0,16,0,41,0,15,0,32,0\n24,0,38,0,35,0,58,0,40,0,29,0\n18,0,50,0,57,0,46,0,31,0,45,0\n19,0,22,0,44,0,34,0,59,0,43,0\n30,0,13,0,17,0,2,0,52,0,37,0\n4,0,6,0,12,0,49,0,9,0,1,0\n21,0,51,0,53,0,33,0,25,0,28,0\n3,0,7,0,54,0,26,0,36,0,23,0\n59,0,57,0,47,0,34,0,58,0,50,0\n35,0,14,0,45,0,37,0,13,0,46,0\n16,0,4,0,18,0,2,0,60,0,38,0\n19,0,11,0,51,0,40,0,52,0,8,0\n25,0,3,0,42,0,15,0,27,0,9,0\n1,0,23,0,17,0,41,0,44,0,24,0\n20,0,29,0,12,0,31,0,26,0,39,0\n36,0,22,0,55,0,56,0,32,0,21,0\n48,0,7,0,10,0,43,0,33,0,5,0\n30,0,53,0,28,0,49,0,54,0,6,0\n11,0,17,0,57,0,58,0,23,0,47,0\n59,0,51,0,39,0,42,0,37,0,29,0\n36,0,16,0,3,0,12,0,45,0,40,0\n20,0,44,0,25,0,52,0,13,0,4,0\n5,0,7,0,27,0,6,0,18,0,53,0\n38,0,8,0,22,0,30,0,48,0,31,0\n15,0,33,0,24,0,46,0,54,0,60,0\n9,0,34,0,55,0,50,0,21,0,35,0\n26,0,32,0,49,0,41,0,14,0,19,0\n56,0,10,0,1,0,28,0,2,0,43,0\n37,0,27,0,31,0,44,0,47,0,7,0\n23,0,16,0,8,0,29,0,25,0,39,0\n33,0,54,0,22,0,20,0,34,0,38,0\n59,0,50,0,48,0,11,0,49,0,4,0\n13,0,21,0,57,0,30,0,51,0,10,0\n26,0,58,0,6,0,36,0,43,0,45,0\n12,0,53,0,5,0,41,0,55,0,60,0\n15,0,14,0,18,0,17,0,35,0,40,0\n24,0,1,0,19,0,9,0,42,0,46,0\n52,0,56,0,28,0,2,0,3,0,32,0\n20,0,22,0,39,0,27,0,44,0,50,0\n29,0,23,0,45,0,10,0,34,0,4,0\n53,0,60,0,26,0,58,0,17,0,51,0\n14,0,46,0,33,0,1,0,31,0,47,0\n43,0,41,0,9,0,57,0,54,0,2,0\n52,0,19,0,48,0,6,0,56,0,24,0\n15,0,13,0,40,0,28,0,55,0,59,0\n30,0,5,0,42,0,38,0,36,0,11,0\n37,0,18,0,8,0,21,0,12,0,3,0\n49,0,7,0,25,0,35,0,32,0,16,0\n54,0,43,0,44,0,57,0,29,0,60,0\n53,0,17,0,45,0,56,0,14,0,22,0\n2,0,34,0,33,0,11,0,42,0,27,0\n40,0,6,0,21,0,39,0,48,0,47,0\n5,0,16,0,58,0,1,0,15,0,26,0\n18,0,55,0,20,0,52,0,51,0,41,0\n32,0,13,0,8,0,30,0,50,0,23,0\n9,0,25,0,59,0,12,0,7,0,36,0\n28,0,49,0,38,0,4,0,46,0,24,0\n35,0,3,0,37,0,19,0,10,0,31,0\n"
  },
  {
    "path": "schedules/60_2.csv",
    "content": "27,0,56,0,23,0,25,0,2,0,24,0\n15,0,58,0,9,0,20,0,18,0,6,0\n41,0,37,0,59,0,5,0,46,0,51,0\n43,0,55,0,26,0,11,0,35,0,10,0\n49,0,57,0,4,0,47,0,52,0,7,0\n54,0,19,0,1,0,14,0,33,0,53,0\n13,0,45,0,12,0,3,0,30,0,8,0\n21,0,22,0,16,0,60,0,17,0,44,0\n40,0,28,0,31,0,42,0,29,0,38,0\n39,0,32,0,50,0,34,0,36,0,48,0\n53,0,51,0,35,0,18,0,47,0,23,0\n46,0,14,0,20,0,45,0,26,0,49,0\n16,0,7,0,27,0,3,0,19,0,15,0\n5,0,8,0,21,0,54,0,29,0,58,0\n38,0,1,0,6,0,44,0,39,0,12,0\n2,0,37,0,43,0,13,0,4,0,50,0\n36,0,42,0,56,0,55,0,41,0,22,0\n60,0,48,0,24,0,30,0,57,0,40,0\n34,0,17,0,10,0,9,0,31,0,59,0\n28,0,33,0,52,0,25,0,32,0,11,0\n"
  },
  {
    "path": "schedules/60_3.csv",
    "content": "32,0,1,0,35,0,41,0,2,0,60,0\n27,0,23,0,58,0,55,0,37,0,4,0\n11,0,21,0,48,0,40,0,17,0,19,0\n30,0,46,0,7,0,57,0,5,0,18,0\n44,0,12,0,50,0,52,0,28,0,38,0\n22,0,24,0,39,0,15,0,8,0,13,0\n31,0,36,0,45,0,51,0,16,0,43,0\n9,0,47,0,29,0,54,0,25,0,10,0\n26,0,56,0,20,0,59,0,33,0,53,0\n14,0,42,0,34,0,49,0,3,0,6,0\n60,0,19,0,37,0,50,0,24,0,46,0\n18,0,48,0,55,0,1,0,45,0,22,0\n13,0,5,0,52,0,27,0,40,0,35,0\n26,0,15,0,16,0,57,0,2,0,10,0\n3,0,29,0,59,0,28,0,23,0,36,0\n31,0,6,0,54,0,41,0,7,0,39,0\n53,0,49,0,9,0,8,0,32,0,12,0\n56,0,14,0,4,0,43,0,17,0,44,0\n38,0,30,0,11,0,42,0,20,0,47,0\n51,0,33,0,21,0,34,0,25,0,58,0\n45,0,23,0,40,0,6,0,46,0,15,0\n37,0,12,0,2,0,5,0,22,0,54,0\n8,0,28,0,10,0,48,0,27,0,60,0\n47,0,1,0,16,0,49,0,44,0,59,0\n18,0,33,0,32,0,4,0,29,0,42,0\n57,0,31,0,13,0,50,0,14,0,21,0\n39,0,34,0,55,0,36,0,19,0,20,0\n25,0,43,0,52,0,7,0,11,0,26,0\n3,0,51,0,38,0,56,0,35,0,9,0\n58,0,41,0,17,0,24,0,53,0,30,0\n"
  },
  {
    "path": "schedules/60_4.csv",
    "content": "1,0,52,0,3,0,39,0,4,0,29,0\n13,0,20,0,45,0,38,0,50,0,60,0\n15,0,35,0,54,0,46,0,36,0,28,0\n34,0,9,0,18,0,41,0,57,0,43,0\n6,0,32,0,42,0,12,0,37,0,40,0\n24,0,11,0,7,0,56,0,49,0,23,0\n59,0,58,0,44,0,48,0,2,0,31,0\n30,0,22,0,25,0,47,0,33,0,21,0\n27,0,53,0,19,0,51,0,5,0,17,0\n26,0,8,0,14,0,10,0,16,0,55,0\n38,0,40,0,36,0,56,0,34,0,4,0\n52,0,6,0,45,0,54,0,59,0,43,0\n12,0,35,0,25,0,58,0,60,0,18,0\n23,0,57,0,42,0,28,0,53,0,3,0\n5,0,7,0,16,0,30,0,31,0,29,0\n13,0,22,0,17,0,32,0,11,0,14,0\n27,0,49,0,37,0,10,0,9,0,47,0\n24,0,26,0,46,0,2,0,39,0,33,0\n21,0,50,0,8,0,44,0,19,0,15,0\n55,0,1,0,41,0,48,0,20,0,51,0\n43,0,5,0,3,0,35,0,40,0,13,0\n42,0,60,0,4,0,27,0,7,0,59,0\n53,0,58,0,36,0,14,0,24,0,30,0\n57,0,44,0,33,0,16,0,11,0,45,0\n31,0,49,0,38,0,39,0,41,0,6,0\n55,0,15,0,29,0,37,0,25,0,17,0\n21,0,9,0,28,0,26,0,1,0,12,0\n2,0,34,0,19,0,10,0,20,0,22,0\n46,0,48,0,8,0,56,0,18,0,52,0\n51,0,54,0,50,0,32,0,23,0,47,0\n4,0,57,0,31,0,35,0,55,0,24,0\n17,0,3,0,16,0,58,0,6,0,9,0\n14,0,25,0,28,0,49,0,59,0,34,0\n30,0,56,0,13,0,1,0,15,0,42,0\n2,0,12,0,47,0,45,0,8,0,5,0\n22,0,40,0,46,0,7,0,44,0,51,0\n43,0,39,0,36,0,32,0,20,0,21,0\n11,0,10,0,41,0,50,0,53,0,52,0\n33,0,29,0,18,0,27,0,54,0,38,0\n48,0,37,0,23,0,19,0,60,0,26,0\n"
  },
  {
    "path": "schedules/60_5.csv",
    "content": "42,0,26,0,18,0,5,0,9,0,53,0\n2,0,50,0,3,0,40,0,37,0,47,0\n21,0,24,0,23,0,12,0,54,0,41,0\n36,0,57,0,35,0,22,0,10,0,52,0\n33,0,55,0,6,0,14,0,39,0,4,0\n31,0,25,0,46,0,27,0,7,0,32,0\n11,0,59,0,44,0,58,0,15,0,60,0\n13,0,49,0,16,0,30,0,8,0,19,0\n56,0,34,0,28,0,1,0,29,0,38,0\n51,0,17,0,20,0,48,0,43,0,45,0\n41,0,3,0,35,0,33,0,31,0,9,0\n12,0,52,0,46,0,59,0,2,0,6,0\n42,0,54,0,30,0,27,0,58,0,50,0\n38,0,10,0,7,0,49,0,4,0,18,0\n22,0,1,0,14,0,5,0,23,0,20,0\n47,0,43,0,15,0,28,0,25,0,39,0\n32,0,53,0,34,0,24,0,17,0,19,0\n16,0,60,0,21,0,57,0,45,0,29,0\n48,0,11,0,36,0,26,0,40,0,8,0\n51,0,13,0,37,0,55,0,56,0,44,0\n54,0,33,0,15,0,18,0,2,0,1,0\n43,0,53,0,14,0,50,0,38,0,46,0\n20,0,29,0,19,0,42,0,25,0,35,0\n57,0,28,0,49,0,58,0,26,0,41,0\n45,0,11,0,23,0,3,0,10,0,56,0\n44,0,39,0,34,0,31,0,36,0,21,0\n22,0,51,0,9,0,16,0,59,0,32,0\n6,0,24,0,7,0,5,0,40,0,13,0\n8,0,17,0,37,0,27,0,52,0,4,0\n55,0,47,0,12,0,60,0,30,0,48,0\n26,0,39,0,19,0,38,0,2,0,23,0\n32,0,15,0,35,0,56,0,21,0,14,0\n3,0,29,0,6,0,49,0,36,0,54,0\n7,0,53,0,33,0,37,0,16,0,11,0\n50,0,5,0,52,0,51,0,60,0,25,0\n10,0,20,0,27,0,55,0,9,0,28,0\n59,0,41,0,18,0,47,0,45,0,13,0\n8,0,58,0,43,0,34,0,22,0,12,0\n44,0,4,0,46,0,42,0,24,0,48,0\n57,0,31,0,40,0,30,0,17,0,1,0\n50,0,9,0,29,0,23,0,7,0,15,0\n27,0,21,0,26,0,51,0,47,0,6,0\n52,0,41,0,38,0,11,0,20,0,32,0\n48,0,13,0,2,0,22,0,28,0,53,0\n40,0,60,0,54,0,43,0,4,0,35,0\n45,0,37,0,1,0,19,0,36,0,12,0\n42,0,39,0,56,0,17,0,49,0,59,0\n10,0,5,0,30,0,34,0,46,0,33,0\n24,0,16,0,58,0,31,0,55,0,18,0\n14,0,25,0,44,0,8,0,57,0,3,0\n"
  },
  {
    "path": "schedules/60_6.csv",
    "content": "22,0,11,0,44,0,52,0,55,0,5,0\n42,0,46,0,26,0,60,0,17,0,32,0\n34,0,33,0,28,0,40,0,57,0,16,0\n25,0,59,0,30,0,31,0,14,0,37,0\n47,0,21,0,12,0,15,0,9,0,53,0\n3,0,1,0,2,0,27,0,20,0,56,0\n43,0,13,0,41,0,35,0,54,0,50,0\n7,0,6,0,49,0,23,0,38,0,51,0\n18,0,36,0,19,0,29,0,24,0,39,0\n4,0,10,0,48,0,58,0,45,0,8,0\n32,0,11,0,15,0,14,0,30,0,56,0\n3,0,37,0,54,0,16,0,47,0,60,0\n43,0,27,0,55,0,51,0,12,0,17,0\n9,0,38,0,1,0,19,0,57,0,50,0\n8,0,21,0,28,0,46,0,13,0,22,0\n2,0,5,0,25,0,29,0,58,0,18,0\n53,0,52,0,31,0,23,0,4,0,24,0\n33,0,20,0,6,0,39,0,48,0,42,0\n35,0,26,0,44,0,7,0,45,0,34,0\n41,0,36,0,59,0,49,0,10,0,40,0\n60,0,13,0,11,0,12,0,25,0,1,0\n38,0,28,0,24,0,27,0,15,0,58,0\n51,0,2,0,42,0,19,0,37,0,4,0\n50,0,23,0,39,0,47,0,26,0,14,0\n55,0,7,0,33,0,59,0,46,0,29,0\n16,0,36,0,43,0,32,0,22,0,31,0\n30,0,52,0,10,0,3,0,35,0,48,0\n40,0,8,0,41,0,53,0,44,0,18,0\n57,0,49,0,20,0,21,0,45,0,5,0\n56,0,6,0,9,0,34,0,54,0,17,0\n60,0,14,0,19,0,22,0,33,0,58,0\n47,0,42,0,28,0,43,0,7,0,10,0\n3,0,13,0,53,0,39,0,51,0,32,0\n48,0,46,0,31,0,2,0,12,0,44,0\n50,0,25,0,17,0,20,0,36,0,8,0\n54,0,59,0,57,0,23,0,18,0,11,0\n40,0,27,0,4,0,35,0,9,0,5,0\n16,0,29,0,45,0,6,0,41,0,15,0\n21,0,26,0,37,0,56,0,38,0,52,0\n55,0,34,0,1,0,30,0,49,0,24,0\n31,0,58,0,17,0,13,0,57,0,47,0\n44,0,23,0,33,0,10,0,27,0,25,0\n46,0,5,0,36,0,14,0,3,0,6,0\n45,0,22,0,12,0,42,0,18,0,38,0\n4,0,35,0,39,0,16,0,49,0,56,0\n53,0,30,0,20,0,43,0,19,0,26,0\n15,0,60,0,34,0,59,0,52,0,8,0\n9,0,55,0,32,0,28,0,41,0,2,0\n24,0,48,0,50,0,7,0,37,0,11,0\n54,0,51,0,29,0,1,0,40,0,21,0\n42,0,30,0,44,0,13,0,23,0,36,0\n16,0,5,0,17,0,10,0,53,0,38,0\n49,0,18,0,43,0,33,0,9,0,52,0\n45,0,31,0,56,0,50,0,60,0,55,0\n22,0,24,0,26,0,2,0,59,0,6,0\n21,0,32,0,19,0,34,0,27,0,48,0\n40,0,15,0,7,0,57,0,25,0,3,0\n12,0,14,0,20,0,4,0,54,0,28,0\n29,0,35,0,47,0,8,0,11,0,51,0\n1,0,58,0,39,0,37,0,41,0,46,0\n"
  },
  {
    "path": "schedules/60_7.csv",
    "content": "34,0,32,0,41,0,54,0,29,0,55,0\n40,0,45,0,27,0,20,0,23,0,31,0\n19,0,1,0,15,0,39,0,10,0,52,0\n8,0,43,0,44,0,22,0,14,0,37,0\n24,0,59,0,46,0,13,0,56,0,58,0\n42,0,50,0,51,0,6,0,26,0,60,0\n9,0,16,0,11,0,17,0,49,0,57,0\n48,0,21,0,3,0,53,0,5,0,28,0\n18,0,47,0,4,0,2,0,12,0,30,0\n25,0,7,0,36,0,38,0,33,0,35,0\n56,0,26,0,55,0,15,0,31,0,8,0\n6,0,39,0,34,0,16,0,14,0,45,0\n32,0,28,0,44,0,46,0,53,0,52,0\n57,0,59,0,5,0,20,0,18,0,1,0\n35,0,42,0,47,0,54,0,11,0,43,0\n24,0,10,0,25,0,9,0,4,0,27,0\n13,0,33,0,21,0,49,0,50,0,30,0\n22,0,58,0,38,0,19,0,23,0,29,0\n37,0,3,0,36,0,17,0,2,0,51,0\n40,0,7,0,60,0,12,0,48,0,41,0\n55,0,20,0,35,0,39,0,56,0,9,0\n32,0,47,0,45,0,13,0,5,0,27,0\n10,0,30,0,53,0,58,0,6,0,11,0\n18,0,54,0,36,0,19,0,28,0,37,0\n22,0,60,0,52,0,34,0,7,0,2,0\n23,0,1,0,51,0,21,0,14,0,15,0\n41,0,43,0,50,0,25,0,16,0,31,0\n8,0,17,0,12,0,38,0,42,0,59,0\n24,0,3,0,57,0,40,0,33,0,44,0\n29,0,49,0,4,0,26,0,48,0,46,0\n10,0,2,0,56,0,54,0,45,0,21,0\n13,0,23,0,53,0,18,0,55,0,43,0\n30,0,34,0,15,0,28,0,17,0,38,0\n50,0,11,0,19,0,24,0,12,0,32,0\n59,0,27,0,22,0,48,0,33,0,6,0\n5,0,37,0,60,0,46,0,25,0,40,0\n31,0,9,0,44,0,36,0,1,0,4,0\n7,0,39,0,26,0,47,0,58,0,57,0\n35,0,52,0,49,0,14,0,41,0,51,0\n29,0,8,0,42,0,20,0,3,0,16,0\n45,0,18,0,48,0,24,0,15,0,50,0\n38,0,2,0,40,0,11,0,55,0,1,0\n31,0,21,0,46,0,9,0,12,0,22,0\n54,0,49,0,39,0,44,0,59,0,30,0\n57,0,37,0,6,0,35,0,13,0,4,0\n27,0,26,0,19,0,34,0,3,0,43,0\n29,0,53,0,25,0,47,0,56,0,51,0\n52,0,42,0,41,0,5,0,58,0,36,0\n16,0,8,0,7,0,23,0,10,0,28,0\n17,0,20,0,14,0,32,0,60,0,33,0\n43,0,6,0,49,0,1,0,40,0,24,0\n48,0,13,0,15,0,2,0,44,0,25,0\n22,0,45,0,11,0,36,0,41,0,26,0\n21,0,47,0,16,0,55,0,52,0,37,0\n4,0,3,0,60,0,59,0,23,0,32,0\n9,0,58,0,33,0,18,0,34,0,8,0\n5,0,31,0,39,0,53,0,17,0,54,0\n28,0,12,0,50,0,27,0,29,0,35,0\n14,0,30,0,56,0,42,0,19,0,7,0\n10,0,51,0,46,0,57,0,20,0,38,0\n58,0,32,0,16,0,40,0,22,0,15,0\n34,0,36,0,24,0,59,0,47,0,53,0\n37,0,23,0,33,0,39,0,48,0,11,0\n43,0,17,0,29,0,21,0,4,0,7,0\n35,0,30,0,1,0,60,0,8,0,45,0\n27,0,18,0,38,0,56,0,41,0,44,0\n14,0,55,0,46,0,10,0,3,0,50,0\n2,0,57,0,28,0,42,0,31,0,49,0\n20,0,54,0,25,0,12,0,26,0,52,0\n51,0,6,0,13,0,5,0,19,0,9,0\n"
  },
  {
    "path": "schedules/60_8.csv",
    "content": "29,0,55,0,14,0,54,0,40,0,23,0\n36,0,28,0,56,0,15,0,8,0,9,0\n57,0,45,0,39,0,31,0,59,0,51,0\n44,0,24,0,35,0,7,0,38,0,10,0\n5,0,30,0,52,0,48,0,43,0,20,0\n17,0,60,0,47,0,32,0,2,0,34,0\n53,0,4,0,19,0,3,0,6,0,27,0\n58,0,18,0,42,0,33,0,46,0,50,0\n16,0,49,0,26,0,37,0,22,0,21,0\n1,0,11,0,13,0,25,0,12,0,41,0\n32,0,51,0,43,0,24,0,31,0,14,0\n2,0,7,0,6,0,28,0,59,0,38,0\n30,0,27,0,15,0,46,0,60,0,55,0\n58,0,17,0,20,0,21,0,36,0,39,0\n11,0,57,0,8,0,37,0,44,0,48,0\n25,0,34,0,35,0,16,0,45,0,18,0\n47,0,23,0,52,0,1,0,33,0,19,0\n29,0,49,0,4,0,13,0,12,0,53,0\n56,0,41,0,54,0,5,0,50,0,22,0\n10,0,9,0,26,0,3,0,42,0,40,0\n21,0,32,0,31,0,25,0,8,0,6,0\n7,0,55,0,37,0,43,0,36,0,1,0\n16,0,28,0,2,0,57,0,58,0,52,0\n53,0,47,0,45,0,24,0,13,0,56,0\n44,0,14,0,3,0,49,0,22,0,33,0\n39,0,40,0,38,0,15,0,23,0,18,0\n20,0,19,0,42,0,54,0,59,0,11,0\n27,0,60,0,10,0,50,0,9,0,29,0\n12,0,26,0,46,0,35,0,17,0,5,0\n4,0,34,0,41,0,48,0,30,0,51,0\n57,0,53,0,32,0,22,0,43,0,15,0\n8,0,1,0,24,0,49,0,54,0,20,0\n31,0,19,0,50,0,2,0,36,0,13,0\n21,0,42,0,35,0,14,0,47,0,5,0\n33,0,26,0,55,0,45,0,41,0,38,0\n58,0,30,0,16,0,6,0,44,0,29,0\n34,0,48,0,40,0,12,0,27,0,59,0\n17,0,18,0,10,0,11,0,4,0,28,0\n56,0,51,0,3,0,7,0,23,0,60,0\n37,0,52,0,39,0,25,0,9,0,46,0\n47,0,50,0,21,0,29,0,38,0,57,0\n22,0,40,0,32,0,58,0,1,0,35,0\n36,0,27,0,5,0,24,0,11,0,16,0\n17,0,42,0,15,0,51,0,19,0,49,0\n14,0,20,0,46,0,3,0,28,0,34,0\n18,0,7,0,8,0,26,0,52,0,13,0\n43,0,59,0,25,0,56,0,33,0,4,0\n2,0,53,0,39,0,10,0,48,0,55,0\n9,0,23,0,12,0,30,0,31,0,41,0\n60,0,44,0,45,0,37,0,6,0,54,0\n3,0,29,0,5,0,32,0,18,0,36,0\n16,0,15,0,4,0,14,0,7,0,50,0\n8,0,39,0,22,0,42,0,34,0,24,0\n33,0,13,0,21,0,28,0,30,0,40,0\n51,0,54,0,12,0,47,0,37,0,10,0\n49,0,9,0,6,0,57,0,55,0,20,0\n46,0,23,0,2,0,11,0,45,0,43,0\n1,0,27,0,31,0,35,0,26,0,56,0\n59,0,44,0,41,0,17,0,53,0,52,0\n25,0,48,0,38,0,58,0,60,0,19,0\n9,0,55,0,22,0,18,0,4,0,47,0\n57,0,54,0,33,0,7,0,46,0,36,0\n15,0,24,0,3,0,21,0,12,0,2,0\n40,0,17,0,51,0,52,0,56,0,6,0\n19,0,41,0,43,0,10,0,8,0,16,0\n31,0,5,0,38,0,37,0,53,0,34,0\n25,0,27,0,32,0,23,0,20,0,44,0\n45,0,29,0,48,0,42,0,28,0,1,0\n49,0,35,0,50,0,30,0,11,0,39,0\n60,0,14,0,13,0,26,0,58,0,59,0\n33,0,9,0,18,0,53,0,51,0,16,0\n34,0,44,0,56,0,19,0,55,0,21,0\n12,0,36,0,4,0,42,0,38,0,52,0\n28,0,54,0,47,0,27,0,43,0,39,0\n30,0,1,0,25,0,57,0,17,0,14,0\n2,0,37,0,41,0,20,0,35,0,29,0\n26,0,6,0,48,0,24,0,23,0,50,0\n49,0,59,0,13,0,46,0,32,0,10,0\n7,0,22,0,11,0,60,0,31,0,40,0\n8,0,3,0,58,0,15,0,45,0,5,0\n"
  },
  {
    "path": "schedules/60_9.csv",
    "content": "20,0,31,0,43,0,51,0,1,0,27,0\n53,0,2,0,45,0,15,0,49,0,5,0\n4,0,18,0,47,0,42,0,6,0,40,0\n60,0,24,0,38,0,46,0,41,0,10,0\n34,0,57,0,32,0,44,0,25,0,55,0\n16,0,35,0,3,0,59,0,26,0,29,0\n37,0,33,0,7,0,28,0,19,0,39,0\n22,0,52,0,54,0,58,0,56,0,12,0\n17,0,14,0,48,0,21,0,9,0,50,0\n11,0,30,0,23,0,13,0,8,0,36,0\n2,0,42,0,10,0,20,0,45,0,32,0\n39,0,25,0,5,0,4,0,31,0,35,0\n44,0,46,0,43,0,56,0,18,0,53,0\n24,0,7,0,58,0,9,0,48,0,26,0\n27,0,29,0,50,0,19,0,52,0,11,0\n59,0,13,0,34,0,60,0,37,0,22,0\n38,0,49,0,6,0,28,0,8,0,3,0\n54,0,23,0,33,0,1,0,14,0,16,0\n21,0,51,0,15,0,57,0,30,0,47,0\n36,0,55,0,17,0,12,0,40,0,41,0\n4,0,37,0,29,0,20,0,46,0,24,0\n44,0,60,0,26,0,8,0,31,0,2,0\n16,0,9,0,25,0,43,0,28,0,38,0\n1,0,45,0,30,0,7,0,59,0,6,0\n41,0,49,0,57,0,50,0,13,0,33,0\n5,0,47,0,21,0,34,0,54,0,36,0\n19,0,17,0,56,0,35,0,15,0,11,0\n22,0,3,0,12,0,40,0,27,0,10,0\n42,0,32,0,48,0,52,0,23,0,51,0\n39,0,55,0,18,0,14,0,53,0,58,0\n44,0,13,0,54,0,28,0,7,0,29,0\n57,0,8,0,1,0,37,0,5,0,35,0\n56,0,45,0,9,0,19,0,41,0,3,0\n11,0,47,0,32,0,24,0,12,0,43,0\n26,0,15,0,20,0,59,0,14,0,18,0\n46,0,51,0,17,0,22,0,2,0,16,0\n40,0,48,0,50,0,34,0,39,0,38,0\n10,0,31,0,6,0,36,0,58,0,23,0\n30,0,60,0,27,0,55,0,4,0,49,0\n52,0,53,0,42,0,21,0,25,0,33,0\n44,0,51,0,47,0,9,0,3,0,14,0\n43,0,7,0,8,0,15,0,46,0,34,0\n58,0,2,0,19,0,1,0,40,0,24,0\n22,0,35,0,18,0,49,0,32,0,30,0\n12,0,28,0,42,0,60,0,5,0,29,0\n20,0,23,0,53,0,38,0,57,0,17,0\n55,0,31,0,21,0,33,0,11,0,45,0\n50,0,16,0,59,0,10,0,25,0,36,0\n39,0,13,0,4,0,26,0,52,0,56,0\n41,0,48,0,37,0,54,0,27,0,6,0\n17,0,58,0,5,0,29,0,30,0,44,0\n38,0,53,0,40,0,31,0,7,0,32,0\n43,0,19,0,59,0,57,0,55,0,42,0\n36,0,14,0,28,0,46,0,52,0,35,0\n1,0,56,0,20,0,60,0,47,0,49,0\n23,0,37,0,26,0,50,0,12,0,45,0\n8,0,33,0,10,0,18,0,48,0,51,0\n15,0,25,0,24,0,27,0,13,0,3,0\n21,0,22,0,39,0,16,0,41,0,6,0\n34,0,4,0,9,0,11,0,54,0,2,0\n55,0,59,0,37,0,52,0,38,0,47,0\n20,0,8,0,5,0,40,0,19,0,32,0\n7,0,30,0,56,0,24,0,14,0,57,0\n46,0,39,0,27,0,21,0,44,0,23,0\n2,0,41,0,50,0,28,0,31,0,18,0\n29,0,45,0,25,0,51,0,36,0,22,0\n33,0,35,0,6,0,9,0,15,0,60,0\n54,0,49,0,43,0,26,0,17,0,10,0\n11,0,34,0,42,0,1,0,58,0,3,0\n53,0,13,0,12,0,48,0,4,0,16,0\n40,0,23,0,59,0,28,0,56,0,51,0\n15,0,22,0,44,0,50,0,55,0,20,0\n18,0,27,0,38,0,54,0,5,0,45,0\n3,0,30,0,36,0,43,0,33,0,2,0\n24,0,52,0,31,0,17,0,34,0,16,0\n11,0,60,0,6,0,57,0,53,0,26,0\n46,0,49,0,19,0,12,0,25,0,48,0\n29,0,10,0,13,0,9,0,1,0,39,0\n35,0,8,0,41,0,47,0,42,0,7,0\n14,0,21,0,4,0,58,0,37,0,32,0\n51,0,53,0,6,0,54,0,24,0,50,0\n55,0,3,0,15,0,48,0,23,0,5,0\n30,0,26,0,28,0,19,0,34,0,10,0\n57,0,9,0,31,0,22,0,42,0,46,0\n29,0,18,0,2,0,37,0,56,0,21,0\n36,0,38,0,41,0,4,0,1,0,44,0\n14,0,35,0,40,0,45,0,43,0,13,0\n60,0,25,0,32,0,47,0,17,0,39,0\n16,0,52,0,7,0,20,0,49,0,11,0\n12,0,33,0,27,0,59,0,58,0,8,0\n"
  },
  {
    "path": "schedules/61_1.csv",
    "content": "41,0,31,0,26,0,18,0,57,0,37,0\n32,0,11,0,3,0,16,0,5,0,51,0\n46,0,44,0,23,0,14,0,47,0,2,0\n13,0,36,0,4,0,9,0,20,0,21,0\n10,0,56,0,38,0,27,0,22,0,12,0\n24,0,42,0,53,0,28,0,52,0,7,0\n45,0,8,0,49,0,61,0,39,0,48,0\n29,0,43,0,15,0,6,0,55,0,35,0\n1,0,60,0,54,0,33,0,19,0,30,0\n50,0,40,0,34,0,25,0,58,0,17,0\n59,0,12,1,10,1,23,1,52,1,21,1\n"
  },
  {
    "path": "schedules/61_10.csv",
    "content": "3,0,57,0,40,0,41,0,22,0,29,0\n25,0,18,0,21,0,60,0,49,0,15,0\n54,0,56,0,4,0,9,0,36,0,61,0\n2,0,33,0,47,0,37,0,32,0,13,0\n5,0,7,0,38,0,8,0,46,0,48,0\n6,0,31,0,50,0,27,0,34,0,39,0\n26,0,45,0,20,0,16,0,53,0,58,0\n42,0,1,0,12,0,30,0,23,0,44,0\n24,0,19,0,52,0,11,0,14,0,51,0\n10,0,43,0,59,0,17,0,28,0,55,0\n35,0,31,0,40,0,5,0,47,0,25,0\n16,0,34,0,49,0,9,0,3,0,13,0\n54,0,58,0,38,0,15,0,2,0,44,0\n42,0,60,0,7,0,57,0,33,0,24,0\n11,0,32,0,39,0,26,0,17,0,41,0\n61,0,8,0,45,0,22,0,35,0,6,0\n52,0,59,0,21,0,1,0,53,0,37,0\n10,0,12,0,55,0,48,0,19,0,36,0\n50,0,43,0,29,0,46,0,51,0,56,0\n23,0,14,0,28,0,4,0,27,0,20,0\n30,0,32,0,5,0,18,0,16,0,3,0\n61,1,59,0,49,0,47,1,58,0,31,0\n53,0,35,0,36,0,11,0,42,0,15,0\n43,0,38,0,9,0,12,0,52,0,57,0\n20,0,28,0,48,0,19,0,13,0,56,0\n33,0,30,0,41,0,55,0,8,0,29,0\n1,0,25,0,2,0,50,0,27,0,14,0\n60,0,51,0,23,0,17,0,34,0,40,0\n22,0,46,0,44,0,26,0,6,0,24,0\n18,0,10,0,54,0,37,0,4,0,45,0\n39,0,21,0,28,0,7,0,30,0,29,0\n49,0,8,0,11,0,47,0,56,0,42,0\n2,0,31,0,57,0,48,0,52,0,16,0\n9,0,40,0,5,0,17,0,6,0,1,0\n22,0,4,0,32,0,25,0,12,0,34,0\n53,0,61,0,41,0,58,0,7,0,10,0\n44,0,33,0,39,0,51,0,18,0,20,0\n24,0,50,0,60,0,59,0,36,0,38,0\n46,0,27,0,13,0,23,0,45,0,19,0\n3,0,35,0,14,0,54,0,21,0,55,0\n15,0,37,0,7,0,26,0,43,0,34,0\n20,0,57,0,44,0,47,0,49,0,4,0\n60,0,58,0,6,0,50,0,53,0,30,0\n33,0,1,0,11,0,46,0,12,0,16,0\n56,0,31,0,21,0,32,0,23,0,10,0\n29,0,26,0,15,0,48,0,59,0,14,0\n37,0,25,0,17,0,3,0,24,0,45,0\n52,0,27,0,8,0,54,0,39,0,40,0\n13,0,51,0,42,0,38,0,55,0,61,0\n36,0,28,0,41,0,22,0,5,0,2,0\n43,0,35,0,19,0,9,0,18,0,50,0\n46,0,20,0,14,0,30,0,60,0,37,0\n56,0,39,0,59,0,45,0,33,0,34,0\n53,0,26,0,55,0,8,0,31,0,17,0\n3,0,1,0,48,0,51,0,58,0,4,0\n13,0,5,0,11,0,10,0,15,0,22,0\n32,0,54,0,19,0,49,0,43,0,57,0\n23,0,27,0,16,0,35,0,38,0,29,0\n52,0,7,0,36,0,44,0,47,0,18,0\n12,0,21,0,40,0,2,0,24,0,61,0\n6,0,9,0,28,0,42,0,41,0,25,0\n10,0,34,0,53,0,14,0,57,0,39,0\n50,0,48,0,49,0,22,0,33,0,23,0\n58,0,37,0,27,0,32,0,36,0,55,0\n3,0,29,0,56,0,52,0,26,0,60,0\n7,0,41,0,54,0,1,0,20,0,13,0\n6,0,19,0,47,0,38,0,21,0,17,0\n15,0,8,0,18,0,28,0,31,0,12,0\n25,0,61,0,43,0,44,0,5,0,16,0\n2,0,51,0,30,0,45,0,11,0,9,0\n46,0,4,0,40,0,42,0,35,0,59,0\n10,0,6,0,52,0,24,0,32,0,20,0\n55,0,18,0,49,0,26,0,38,0,1,0\n8,0,28,0,44,0,3,0,23,0,50,0\n29,0,37,0,14,0,7,0,9,0,31,0\n13,0,57,0,36,0,46,0,30,0,25,0\n5,0,4,0,24,0,56,0,53,0,2,0\n19,0,42,0,16,0,34,0,59,0,54,0\n40,0,11,0,22,0,43,0,21,0,58,0\n61,0,27,0,17,0,15,0,48,0,33,0\n51,0,45,0,12,0,47,0,41,0,60,0\n39,0,26,0,30,0,35,0,2,0,4,0\n8,0,34,0,38,0,10,0,25,0,20,0\n53,0,44,0,32,0,29,0,13,0,40,0\n23,0,18,0,37,0,61,0,11,0,57,0\n31,0,43,0,3,0,33,0,6,0,36,0\n14,0,17,0,56,0,58,0,35,0,12,0\n48,0,24,0,47,0,54,0,1,0,28,0\n9,0,19,0,15,0,22,0,39,0,60,0\n41,0,59,0,46,0,27,0,21,0,49,0\n42,0,55,0,45,0,50,0,5,0,52,0\n51,0,16,0,6,0,7,0,12,0,4,0\n11,0,54,0,53,0,38,0,33,0,28,0\n15,0,47,0,23,0,30,0,10,0,9,0\n58,0,24,0,13,0,39,0,8,0,43,0\n1,0,61,0,31,0,19,0,3,0,60,0\n22,0,25,0,56,0,7,0,59,0,55,0\n26,0,57,0,21,0,27,0,5,0,51,0\n16,0,45,0,14,0,49,0,36,0,40,0\n20,0,17,0,29,0,18,0,2,0,42,0\n34,0,37,0,35,0,41,0,48,0,44,0\n50,0,46,0,61,0,32,0,52,0,47,0\n"
  },
  {
    "path": "schedules/61_11.csv",
    "content": "5,0,22,0,51,0,56,0,48,0,20,0\n30,0,36,0,14,0,9,0,11,0,27,0\n49,0,6,0,32,0,45,0,40,0,29,0\n59,0,42,0,38,0,13,0,58,0,25,0\n17,0,54,0,31,0,34,0,3,0,44,0\n2,0,46,0,23,0,57,0,4,0,35,0\n47,0,26,0,21,0,24,0,41,0,7,0\n33,0,28,0,50,0,10,0,18,0,12,0\n8,0,55,0,43,0,15,0,37,0,61,0\n16,0,53,0,19,0,52,0,1,0,39,0\n60,0,46,0,34,0,42,0,5,0,30,0\n22,0,47,0,6,0,58,0,21,0,36,0\n23,0,24,0,20,0,50,0,41,0,29,0\n15,0,2,0,12,0,32,0,3,0,10,0\n37,0,25,0,14,0,44,0,18,0,16,0\n49,0,31,0,56,0,38,0,53,0,9,0\n55,0,57,0,54,0,40,0,52,0,13,0\n8,0,7,0,51,0,4,0,17,0,33,0\n61,0,19,0,39,0,60,0,45,0,11,0\n48,0,27,0,28,0,1,0,35,0,59,0\n43,0,44,0,6,0,26,0,14,0,3,0\n56,0,30,0,32,0,52,1,57,0,25,0\n54,0,34,0,58,0,16,0,10,0,51,0\n5,0,50,0,21,0,53,0,61,0,31,0\n15,0,41,0,46,0,7,0,11,0,48,0\n59,0,20,0,27,0,60,0,36,0,55,0\n4,0,8,0,40,0,47,0,24,0,39,0\n33,0,35,0,22,0,17,0,19,0,43,0\n9,0,37,0,42,0,12,0,13,0,23,0\n45,0,49,0,26,0,2,0,28,0,1,0\n38,0,18,0,58,0,29,0,7,0,27,0\n55,0,16,0,31,0,24,0,36,0,46,0\n17,0,6,0,14,0,57,0,48,0,41,0\n51,0,35,0,53,0,40,0,37,0,59,0\n43,0,60,0,5,0,8,0,12,0,1,0\n50,0,19,0,23,0,15,0,38,0,30,0\n42,0,22,0,25,0,47,0,10,0,49,0\n45,0,13,0,18,0,44,0,20,0,11,0\n61,0,56,0,29,0,34,0,4,0,28,0\n9,0,2,0,26,0,33,0,54,0,39,0\n21,0,3,0,35,0,32,0,52,0,60,0\n10,0,43,0,40,0,36,0,48,0,38,0\n45,0,51,0,17,0,31,0,30,0,47,0\n20,0,41,0,28,0,15,0,8,0,44,0\n18,0,42,0,6,0,2,0,61,0,54,0\n23,0,33,0,5,0,59,0,11,0,52,0\n27,0,57,0,37,0,19,0,24,0,22,0\n13,0,32,0,34,0,7,0,53,0,46,0\n26,0,55,0,12,0,58,0,29,0,49,0\n3,0,25,0,50,0,39,0,9,0,21,0\n16,0,14,0,1,0,56,0,4,0,51,0\n47,0,2,0,11,0,43,0,54,0,27,0\n38,0,24,0,17,0,53,0,20,0,60,0\n58,0,45,0,32,0,8,0,23,0,36,0\n29,0,30,0,6,0,37,0,35,0,31,0\n34,0,1,0,15,0,9,0,25,0,33,0\n39,0,7,0,4,0,52,0,22,0,28,0\n44,0,14,0,59,0,61,0,12,0,46,0\n19,0,56,0,55,0,3,0,42,0,41,0\n21,0,10,0,57,0,49,0,5,0,18,0\n48,0,16,0,40,0,13,0,50,0,26,0\n36,0,4,0,54,0,25,0,53,0,30,0\n33,0,52,0,46,0,38,0,45,0,6,0\n51,0,9,0,60,0,32,0,29,0,22,0\n21,0,1,0,11,0,37,0,2,0,58,0\n15,0,3,0,28,0,5,0,24,0,13,0\n27,0,16,0,49,0,43,0,23,0,41,0\n56,0,7,0,17,0,50,0,40,0,61,0\n10,0,14,0,35,0,20,0,39,0,55,0\n59,0,31,0,57,0,42,0,26,0,8,0\n12,0,47,0,48,0,18,0,34,0,19,0\n44,0,9,0,32,0,5,0,27,0,6,0\n36,0,29,0,52,0,2,0,17,0,41,0\n56,0,39,0,45,0,15,0,43,0,21,0\n30,0,13,0,61,0,33,0,26,0,58,0\n19,0,20,0,12,0,25,0,31,0,46,0\n40,0,24,0,28,0,14,0,42,0,34,0\n4,0,60,0,48,0,49,0,37,0,54,0\n57,0,11,0,3,0,59,0,16,0,7,0\n53,0,23,0,55,0,18,0,51,0,47,0\n38,0,50,0,8,0,1,0,44,0,22,0\n10,0,24,0,9,0,35,0,19,0,45,0\n56,0,5,0,37,0,17,0,39,0,58,0\n4,0,20,0,21,0,34,0,57,0,43,0\n23,0,25,0,18,0,26,0,60,0,40,0\n44,0,7,0,38,0,51,0,2,0,55,0\n48,0,52,0,10,0,8,0,61,0,3,0\n49,0,15,0,33,0,31,0,14,0,27,0\n13,0,1,0,42,0,35,0,36,0,6,0\n46,0,59,0,29,0,22,0,54,0,50,0\n41,0,11,0,30,0,12,0,53,0,28,0\n32,0,16,0,61,0,47,0,38,0,20,0\n48,0,33,0,44,0,56,0,21,0,23,0\n27,0,52,0,26,0,37,0,34,0,10,0\n2,0,29,0,8,0,19,0,14,0,13,0\n45,0,5,0,7,0,25,0,35,0,54,0\n41,0,31,0,40,0,60,0,58,0,1,0\n4,0,42,0,11,0,32,0,17,0,50,0\n53,0,15,0,22,0,6,0,16,0,12,0\n24,0,43,0,18,0,59,0,9,0,30,0\n36,0,3,0,39,0,51,0,49,0,46,0\n28,0,57,0,60,0,55,0,47,0,33,0\n1,0,31,0,10,0,23,0,32,0,7,0\n8,0,54,0,13,0,12,0,27,0,56,0\n38,0,41,0,37,0,34,0,45,0,59,0\n24,0,11,0,25,0,52,0,6,0,51,0\n40,0,20,0,22,0,2,0,3,0,30,0\n18,0,36,0,26,0,5,0,4,0,19,0\n16,0,17,0,46,0,21,0,28,0,55,0\n57,0,61,0,47,0,35,0,9,0,15,0\n44,0,53,0,39,0,48,0,29,0,42,0\n58,0,50,0,52,0,43,0,49,0,14,0\n"
  },
  {
    "path": "schedules/61_12.csv",
    "content": "61,0,20,0,51,0,5,0,34,0,1,0\n36,0,9,0,55,0,45,0,19,0,13,0\n38,0,2,0,39,0,47,0,42,0,43,0\n57,0,12,0,50,0,7,0,58,0,60,0\n27,0,8,0,56,0,37,0,30,0,23,0\n15,0,41,0,35,0,59,0,49,0,10,0\n46,0,53,0,6,0,22,0,28,0,32,0\n17,0,44,0,3,0,54,0,4,0,33,0\n14,0,26,0,18,0,48,0,40,0,25,0\n16,0,11,0,31,0,29,0,24,0,52,0\n21,0,36,0,7,0,39,0,60,0,51,0\n46,0,9,0,61,0,8,0,47,0,58,0\n10,0,28,0,12,0,4,0,23,0,32,0\n17,0,34,0,45,0,30,0,57,0,14,0\n29,0,19,0,59,0,43,0,53,0,50,0\n44,0,33,0,42,0,55,0,25,0,20,0\n54,0,24,0,13,0,40,0,37,0,2,0\n38,0,6,0,22,0,52,0,15,0,16,0\n11,0,5,0,26,0,41,0,3,0,18,0\n31,0,49,0,27,0,1,0,21,0,48,0\n56,0,19,0,25,0,35,0,34,0,39,0\n13,0,10,0,58,0,45,0,59,0,33,0\n29,0,51,0,32,0,15,0,2,0,42,0\n47,0,12,0,14,0,44,0,36,0,37,0\n5,0,52,0,8,0,7,0,26,0,16,0\n21,0,55,0,6,0,4,0,24,0,57,0\n3,0,60,0,53,0,35,0,48,0,46,0\n18,0,40,0,49,0,20,0,23,0,38,0\n27,0,9,0,1,0,22,0,43,0,54,0\n41,0,28,0,31,0,17,0,50,0,30,0\n61,0,11,0,59,0,56,0,12,0,32,0\n25,0,53,0,47,0,5,0,13,0,57,0\n37,0,26,0,49,0,19,0,55,0,60,0\n4,0,9,0,3,0,38,0,27,0,29,0\n42,0,16,0,23,0,50,0,45,0,21,0\n35,0,28,0,43,0,14,0,33,0,36,0\n48,0,44,0,34,0,15,0,11,0,39,0\n6,0,40,0,1,0,7,0,10,0,30,0\n54,0,20,0,58,0,56,0,52,0,2,0\n22,0,51,0,18,0,61,0,17,0,8,0\n24,0,41,0,25,0,31,0,46,0,36,0\n16,0,39,0,5,0,12,0,27,0,55,0\n9,0,30,0,15,0,14,0,42,0,53,0\n11,0,54,0,19,0,23,0,47,0,45,0\n29,0,18,0,1,0,6,0,58,0,28,0\n37,0,46,0,43,0,49,0,51,0,50,0\n20,0,22,0,10,0,3,0,31,0,24,0\n7,0,56,0,48,0,13,0,44,0,41,0\n33,0,52,0,57,0,40,0,8,0,32,0\n4,0,61,0,2,0,60,0,35,0,26,0\n38,0,21,0,34,0,17,0,59,0,54,0\n20,0,37,0,24,0,39,0,58,0,9,0\n56,0,43,0,45,0,15,0,18,0,7,0\n3,0,10,0,51,0,44,0,29,0,57,0\n33,0,6,0,30,0,5,0,46,0,19,0\n55,0,23,0,40,0,31,0,61,0,35,0\n13,0,32,0,21,0,14,0,50,0,38,0\n27,0,16,0,17,0,53,0,11,0,2,0\n1,0,28,0,47,0,8,0,26,0,25,0\n42,0,12,0,4,0,34,0,41,0,49,0\n48,0,36,0,60,0,22,0,59,0,52,0\n29,0,54,0,10,0,18,0,55,0,30,0\n50,0,6,0,9,0,44,0,61,0,39,0\n51,0,21,0,11,0,26,0,33,0,53,0\n38,0,49,0,24,0,34,0,56,0,28,0\n7,0,46,0,52,0,4,0,35,0,47,0\n14,0,23,0,59,0,2,0,3,0,1,0\n60,0,13,0,43,0,32,0,31,0,5,0\n22,0,42,0,25,0,19,0,17,0,37,0\n15,0,48,0,45,0,8,0,20,0,12,0\n57,0,27,0,58,0,36,0,16,0,41,0\n40,0,4,0,50,0,1,0,56,0,51,0\n2,0,18,0,33,0,9,0,31,0,34,0\n25,0,49,0,32,0,6,0,3,0,7,0\n24,0,45,0,12,0,43,0,52,0,17,0\n23,0,54,0,48,0,29,0,5,0,36,0\n37,0,10,0,39,0,53,0,40,0,16,0\n60,0,44,0,8,0,19,0,58,0,38,0\n61,0,26,0,13,0,42,0,30,0,27,0\n35,0,21,0,14,0,41,0,46,0,20,0\n55,0,47,0,57,0,15,0,59,0,28,0\n22,0,39,0,7,0,11,0,33,0,29,0\n36,0,52,0,18,0,37,0,50,0,3,0\n58,0,23,0,44,0,26,0,24,0,43,0\n10,0,2,0,45,0,61,0,21,0,25,0\n30,0,16,0,1,0,41,0,60,0,47,0\n13,0,8,0,53,0,34,0,6,0,54,0\n20,0,40,0,15,0,28,0,27,0,11,0\n12,0,31,0,38,0,14,0,19,0,51,0\n5,0,55,0,56,0,17,0,42,0,46,0\n35,0,57,0,59,0,22,0,49,0,9,0\n48,0,4,0,41,0,32,0,37,0,54,0\n3,0,29,0,45,0,40,0,34,0,60,0\n43,0,36,0,2,0,10,0,11,0,8,0\n23,0,46,0,15,0,13,0,39,0,17,0\n22,0,47,0,16,0,49,0,56,0,14,0\n18,0,28,0,5,0,21,0,52,0,44,0\n61,0,57,0,7,0,19,0,48,0,24,0\n12,0,53,0,1,0,33,0,55,0,38,0\n32,0,50,0,59,0,27,0,26,0,20,0\n35,0,58,0,42,0,51,0,31,0,6,0\n4,0,30,0,60,0,9,0,25,0,11,0\n28,0,29,0,17,0,3,0,49,0,61,0\n1,0,45,0,37,0,44,0,2,0,5,0\n26,0,46,0,39,0,10,0,57,0,38,0\n8,0,14,0,7,0,42,0,55,0,59,0\n47,0,32,0,30,0,18,0,35,0,24,0\n9,0,52,0,41,0,51,0,53,0,23,0\n58,0,25,0,31,0,27,0,15,0,54,0\n21,0,40,0,56,0,22,0,36,0,12,0\n19,0,20,0,43,0,13,0,16,0,4,0\n33,0,50,0,34,0,6,0,48,0,47,0\n57,0,11,0,37,0,1,0,61,0,38,0\n28,0,49,0,39,0,51,0,54,0,45,0\n31,0,56,0,26,0,53,0,9,0,7,0\n8,0,29,0,35,0,12,0,25,0,13,0\n59,0,46,0,40,0,44,0,18,0,16,0\n17,0,23,0,36,0,20,0,6,0,32,0\n34,0,19,0,42,0,52,0,10,0,27,0\n3,0,48,0,30,0,58,0,43,0,21,0\n60,0,5,0,33,0,15,0,24,0,14,0\n50,0,41,0,2,0,55,0,22,0,4,0\n"
  },
  {
    "path": "schedules/61_13.csv",
    "content": "22,0,46,0,42,0,43,0,6,0,53,0\n37,0,38,0,24,0,7,0,8,0,45,0\n23,0,29,0,51,0,28,0,39,0,18,0\n4,0,55,0,15,0,40,0,59,0,36,0\n34,0,35,0,33,0,49,0,10,0,19,0\n17,0,44,0,1,0,14,0,57,0,11,0\n47,0,3,0,20,0,16,0,21,0,52,0\n30,0,12,0,60,0,54,0,2,0,31,0\n32,0,61,0,48,0,9,0,13,0,25,0\n27,0,41,0,50,0,56,0,5,0,58,0\n26,0,44,0,7,0,23,0,55,0,17,0\n42,0,18,0,19,0,21,0,46,0,38,0\n43,0,16,0,12,0,57,0,33,0,49,0\n35,0,30,0,6,0,47,0,54,0,37,0\n3,0,9,0,15,0,2,0,39,0,56,0\n36,0,51,0,10,0,26,0,24,0,41,0\n8,0,32,0,34,0,48,0,58,0,22,0\n31,0,4,0,5,0,11,0,28,0,61,0\n1,0,45,0,60,0,52,0,59,0,13,0\n50,0,20,0,40,0,53,0,14,0,29,0\n25,0,12,0,42,0,27,0,44,0,35,0\n39,1,24,0,16,0,19,1,22,0,15,0\n9,1,43,0,2,0,55,1,41,0,36,0\n45,1,58,0,18,0,4,0,49,0,1,0\n48,0,56,0,50,0,52,0,60,0,10,0\n21,0,14,0,30,0,34,0,51,0,59,0\n32,0,5,0,38,0,20,0,26,0,57,0\n17,0,33,0,13,0,31,0,37,0,28,0\n23,0,11,0,47,0,8,0,29,0,46,0\n3,0,40,0,53,0,6,0,25,0,27,0\n54,0,61,0,14,0,7,0,48,0,39,0\n59,0,60,0,19,0,16,0,18,0,26,0\n12,0,2,0,38,0,17,0,34,0,37,0\n21,0,36,0,58,0,56,0,11,0,22,0\n28,0,33,0,9,0,44,0,6,0,40,0\n53,0,41,0,8,0,13,0,30,0,61,0\n15,0,52,0,31,0,27,0,57,0,7,0\n10,0,5,0,47,0,43,0,55,0,1,0\n23,0,20,0,4,0,24,0,42,0,35,0\n29,0,49,0,32,0,54,0,3,0,46,0\n45,0,25,0,36,0,51,0,50,0,60,0\n58,0,15,0,28,0,26,0,14,0,38,0\n31,0,7,0,53,0,9,0,19,0,44,0\n35,0,16,0,11,0,27,0,52,0,2,0\n46,0,37,0,6,0,20,0,59,0,21,0\n50,0,4,0,43,0,8,0,54,0,48,0\n1,0,40,0,42,0,34,0,41,0,39,0\n25,0,18,0,47,0,24,0,57,0,3,0\n29,0,33,0,45,0,30,0,23,0,32,0\n56,0,61,0,17,0,12,0,22,0,55,0\n13,0,10,0,14,0,49,0,5,0,51,0\n20,0,42,0,6,0,60,0,2,0,41,0\n34,0,52,0,58,0,25,0,19,0,37,0\n8,0,33,0,59,0,54,0,36,0,57,0\n40,0,56,0,32,0,23,0,7,0,43,0\n30,0,11,0,1,0,49,0,22,0,38,0\n21,0,13,0,15,0,12,0,50,0,9,0\n27,0,46,0,61,0,24,0,10,0,55,0\n28,0,45,0,26,0,53,0,16,0,47,0\n39,0,5,0,29,0,17,0,4,0,35,0\n51,0,44,0,31,0,18,0,3,0,48,0\n9,0,41,0,59,0,49,0,52,0,11,0\n25,0,55,0,57,0,54,0,22,0,20,0\n28,0,2,0,32,0,53,0,24,0,50,0\n26,0,27,0,29,0,61,0,34,0,43,0\n47,0,38,0,40,0,12,0,31,0,36,0\n10,0,6,0,48,0,23,0,18,0,13,0\n16,0,30,0,7,0,46,0,58,0,39,0\n8,0,5,0,60,0,21,0,33,0,19,0\n56,0,4,0,44,0,35,0,1,0,51,0\n15,0,17,0,14,0,45,0,42,0,3,0\n37,0,13,0,26,0,40,0,54,0,11,0\n59,0,2,0,10,0,7,0,41,0,25,0\n29,0,28,0,57,0,60,0,9,0,55,0\n52,0,5,0,44,0,30,0,34,0,46,0\n48,0,27,0,24,0,21,0,49,0,17,0\n16,0,23,0,37,0,4,0,51,0,53,0\n33,0,42,0,39,0,61,0,58,0,47,0\n3,0,38,0,31,0,50,0,35,0,22,0\n36,0,6,0,18,0,12,0,32,0,14,0\n19,0,8,0,43,0,1,0,15,0,20,0\n45,0,57,0,34,0,56,0,46,0,28,0\n54,0,49,0,41,0,47,0,55,0,44,0\n22,0,3,0,37,0,59,0,26,0,42,0\n35,0,9,0,7,0,30,0,50,0,18,0\n31,0,8,0,1,0,6,0,32,0,16,0\n11,0,17,0,60,0,23,0,10,0,15,0\n53,0,39,0,52,0,33,0,5,0,36,0\n21,0,27,0,43,0,38,0,61,0,4,0\n19,0,14,0,24,0,13,0,56,0,29,0\n40,0,45,0,48,0,2,0,58,0,20,0\n25,0,51,0,11,0,12,0,7,0,47,0\n37,0,35,0,49,0,32,0,60,0,15,0\n5,0,54,0,16,0,42,0,38,0,9,0\n46,0,41,0,1,0,33,0,3,0,50,0\n20,0,30,0,48,0,28,0,27,0,36,0\n39,0,26,0,25,0,8,0,6,0,56,0\n17,0,51,0,18,0,43,0,40,0,52,0\n57,0,22,0,61,0,45,0,2,0,19,0\n55,0,31,0,14,0,21,0,24,0,23,0\n58,0,10,0,29,0,12,0,44,0,53,0\n13,0,34,0,50,0,59,0,4,0,47,0\n20,0,49,0,56,0,17,0,8,0,28,0\n61,0,18,0,41,0,15,0,37,0,45,0\n26,0,46,0,43,0,31,0,25,0,35,0\n12,0,52,0,19,0,32,0,24,0,44,0\n57,0,21,0,40,0,39,0,30,0,10,0\n13,0,7,0,36,0,16,0,29,0,42,0\n3,0,60,0,6,0,34,0,11,0,5,0\n4,0,2,0,22,0,14,0,33,0,51,0\n54,0,23,0,9,0,1,0,58,0,27,0\n55,0,53,0,59,0,38,0,48,0,35,0\n49,0,50,0,44,0,16,0,40,0,61,0\n3,0,17,0,25,0,19,0,36,0,30,0\n28,0,10,0,21,0,32,0,42,0,52,0\n8,0,27,0,47,0,7,0,60,0,14,0\n9,0,26,0,4,0,46,0,45,0,12,0\n54,0,51,0,15,0,20,0,31,0,34,0\n53,0,11,0,33,0,56,0,18,0,55,0\n39,0,22,0,23,0,41,0,13,0,38,0\n6,0,58,0,24,0,59,0,57,0,43,0\n48,0,2,0,29,0,5,0,1,0,37,0\n4,0,28,0,12,0,3,0,10,0,7,0\n32,0,51,0,47,0,27,0,17,0,9,0\n46,0,19,0,16,0,41,0,14,0,40,0\n35,0,52,0,55,0,58,0,8,0,13,0\n36,0,43,0,39,0,60,0,44,0,37,0\n38,0,56,0,45,0,29,0,6,0,31,0\n33,0,24,0,30,0,42,0,48,0,11,0\n59,0,18,0,22,0,5,0,61,0,20,0\n21,0,54,0,1,0,25,0,15,0,53,0\n57,0,2,0,50,0,49,0,23,0,26,0\n34,0,19,0,55,0,39,0,9,0,45,0\n"
  },
  {
    "path": "schedules/61_14.csv",
    "content": "35,0,50,0,15,0,19,0,61,0,36,0\n3,0,6,0,49,0,39,0,46,0,31,0\n52,0,16,0,20,0,59,0,8,0,40,0\n12,0,43,0,34,0,45,0,37,0,27,0\n42,0,54,0,4,0,33,0,28,0,22,0\n51,0,38,0,32,0,24,0,44,0,47,0\n11,0,14,0,5,0,30,0,25,0,55,0\n26,0,1,0,41,0,18,0,10,0,60,0\n7,0,57,0,23,0,29,0,56,0,21,0\n48,0,53,0,17,0,2,0,58,0,13,0\n45,0,28,0,12,0,9,0,24,0,52,0\n19,0,22,0,37,0,27,0,3,0,51,0\n41,0,42,0,35,0,4,0,43,0,26,0\n54,0,20,0,29,0,47,0,15,0,34,0\n40,0,10,0,36,0,31,0,32,0,61,0\n55,0,57,0,48,0,60,0,53,0,25,0\n17,0,7,0,44,0,39,0,11,0,8,0\n46,0,2,0,5,0,14,0,50,0,21,0\n30,0,18,0,58,0,9,0,59,0,49,0\n16,0,6,0,13,0,38,0,23,0,33,0\n1,0,61,0,51,0,56,0,52,0,45,0\n7,1,35,0,8,0,60,1,37,0,54,0\n25,1,50,0,36,0,3,1,22,0,14,0\n21,0,59,0,47,0,17,0,57,0,32,0\n29,0,6,0,40,0,53,0,43,0,13,0\n24,0,48,0,33,0,30,0,15,0,41,0\n42,0,18,0,44,0,19,0,11,0,10,0\n49,0,28,0,20,0,1,0,5,0,56,0\n39,0,58,0,23,0,16,0,55,0,27,0\n9,0,4,0,2,0,38,0,34,0,31,0\n26,0,46,0,50,0,12,0,52,0,17,0\n53,0,32,0,45,0,48,0,7,0,54,0\n13,0,33,0,30,0,8,0,51,0,20,0\n56,0,24,0,16,0,3,0,18,0,21,0\n2,0,28,0,27,0,61,0,41,0,55,0\n37,0,6,0,9,0,59,0,42,0,36,0\n43,0,15,0,11,0,22,0,40,0,46,0\n34,0,58,0,44,0,1,0,60,0,35,0\n10,0,29,0,38,0,25,0,12,0,5,0\n4,0,19,0,14,0,23,0,47,0,49,0\n26,0,31,0,54,0,39,0,57,0,24,0\n56,0,11,0,32,0,50,0,43,0,3,0\n60,0,8,0,45,0,46,0,15,0,42,0\n40,0,27,0,20,0,30,0,36,0,44,0\n2,0,12,0,16,0,5,0,48,0,51,0\n57,0,33,0,58,0,61,0,22,0,34,0\n10,0,6,0,52,0,7,0,49,0,18,0\n38,0,28,0,26,0,53,0,23,0,14,0\n25,0,13,0,41,0,31,0,9,0,47,0\n55,0,21,0,1,0,35,0,59,0,19,0\n39,0,4,0,48,0,29,0,17,0,37,0\n56,0,7,0,2,0,12,0,33,0,15,0\n26,0,32,0,14,0,45,0,58,0,40,0\n54,0,9,0,43,0,5,0,10,0,3,0\n57,0,35,0,61,0,38,0,8,0,49,0\n52,0,30,0,50,0,4,0,44,0,6,0\n11,0,41,0,34,0,23,0,13,0,19,0\n39,0,17,0,51,0,31,0,28,0,21,0\n46,0,55,0,60,0,20,0,47,0,37,0\n27,0,53,0,22,0,24,0,18,0,59,0\n36,0,1,0,16,0,42,0,25,0,29,0\n3,0,41,0,58,0,44,0,11,0,12,0\n28,0,23,0,34,0,30,0,43,0,7,0\n10,0,31,0,15,0,21,0,17,0,20,0\n5,0,52,0,19,0,6,0,53,0,57,0\n14,0,9,0,60,0,8,0,24,0,27,0\n2,0,35,0,36,0,45,0,29,0,13,0\n33,0,16,0,39,0,47,0,1,0,32,0\n54,0,46,0,25,0,4,0,56,0,59,0\n49,0,61,0,48,0,51,0,26,0,22,0\n38,0,50,0,18,0,40,0,42,0,55,0\n37,0,5,0,53,0,31,0,60,0,44,0\n6,0,20,0,1,0,43,0,2,0,14,0\n15,0,23,0,8,0,28,0,3,0,32,0\n29,0,16,0,9,0,26,0,61,0,11,0\n45,0,38,0,25,0,50,0,54,0,58,0\n30,0,51,0,4,0,27,0,57,0,42,0\n47,0,39,0,55,0,12,0,22,0,36,0\n24,0,49,0,41,0,37,0,7,0,40,0\n13,0,34,0,59,0,46,0,56,0,10,0\n33,0,35,0,21,0,52,0,18,0,48,0\n19,0,43,0,27,0,17,0,38,0,5,0\n26,0,42,0,45,0,55,0,20,0,3,0\n11,0,40,0,47,0,2,0,8,0,57,0\n14,0,61,0,30,0,32,0,37,0,13,0\n29,0,18,0,46,0,51,0,28,0,54,0\n52,0,60,0,22,0,12,0,23,0,31,0\n34,0,49,0,53,0,41,0,50,0,16,0\n15,0,24,0,19,0,35,0,39,0,25,0\n1,0,44,0,33,0,9,0,56,0,48,0\n58,0,59,0,17,0,7,0,36,0,4,0\n21,0,10,0,8,0,6,0,45,0,22,0\n29,0,34,0,3,0,52,0,14,0,41,0\n47,0,57,0,5,0,24,0,35,0,23,0\n25,0,61,0,43,0,44,0,39,0,53,0\n60,0,2,0,32,0,16,0,4,0,11,0\n31,0,36,0,37,0,18,0,33,0,56,0\n27,0,7,0,38,0,46,0,48,0,1,0\n12,0,49,0,21,0,42,0,13,0,20,0\n19,0,50,0,28,0,58,0,26,0,10,0\n59,0,55,0,51,0,9,0,15,0,40,0\n54,0,17,0,56,0,6,0,30,0,60,0\n46,0,45,0,44,0,16,0,22,0,23,0\n31,0,11,0,35,0,14,0,27,0,48,0\n21,0,57,0,38,0,28,0,41,0,36,0\n53,0,9,0,18,0,39,0,15,0,20,0\n42,0,43,0,37,0,52,0,47,0,58,0\n40,0,54,0,32,0,1,0,19,0,12,0\n55,0,4,0,13,0,5,0,7,0,26,0\n30,0,24,0,3,0,10,0,61,0,2,0\n6,0,8,0,17,0,25,0,34,0,51,0\n59,0,29,0,33,0,49,0,50,0,31,0\n22,0,32,0,35,0,20,0,41,0,9,0\n39,0,18,0,40,0,45,0,4,0,5,0\n55,0,36,0,23,0,12,0,30,0,10,0\n3,0,37,0,11,0,1,0,53,0,38,0\n24,0,46,0,17,0,34,0,33,0,42,0\n58,0,56,0,8,0,19,0,2,0,29,0\n26,0,47,0,48,0,59,0,6,0,28,0\n7,0,21,0,51,0,61,0,60,0,50,0\n52,0,25,0,15,0,27,0,49,0,13,0\n14,0,57,0,54,0,43,0,44,0,16,0\n53,0,12,0,4,0,19,0,33,0,45,0\n5,0,31,0,8,0,1,0,58,0,42,0\n38,0,48,0,59,0,34,0,39,0,60,0\n17,0,23,0,3,0,51,0,40,0,35,0\n56,0,6,0,55,0,41,0,32,0,27,0\n46,0,21,0,43,0,30,0,9,0,26,0\n61,0,47,0,7,0,25,0,20,0,18,0\n49,0,36,0,52,0,2,0,11,0,54,0\n50,0,10,0,37,0,16,0,57,0,15,0\n22,0,44,0,13,0,28,0,29,0,24,0\n12,0,59,0,60,0,14,0,6,0,35,0\n5,0,18,0,61,0,34,0,32,0,46,0\n51,0,41,0,43,0,48,0,8,0,36,0\n26,0,25,0,23,0,2,0,37,0,33,0\n13,0,3,0,15,0,1,0,4,0,57,0\n42,0,56,0,14,0,7,0,39,0,52,0\n20,0,11,0,58,0,21,0,54,0,24,0\n10,0,9,0,27,0,53,0,47,0,50,0\n31,0,30,0,22,0,38,0,16,0,19,0\n44,0,29,0,49,0,17,0,55,0,45,0\n28,0,7,0,25,0,40,0,60,0,3,0\n"
  },
  {
    "path": "schedules/61_2.csv",
    "content": "7,0,32,0,25,0,36,0,52,0,56,0\n57,0,12,0,4,0,55,0,39,0,59,0\n47,0,49,0,2,0,53,0,22,0,14,0\n48,0,24,0,31,0,19,0,40,0,58,0\n1,0,50,0,37,0,60,0,30,0,38,0\n41,0,27,0,13,0,28,0,18,0,9,0\n3,0,6,0,10,0,44,0,16,0,61,0\n43,0,17,0,15,0,54,0,29,0,21,0\n45,0,11,0,20,0,51,0,42,0,35,0\n23,0,5,0,46,0,34,0,26,0,33,0\n53,0,36,0,27,0,8,0,50,0,24,0\n55,0,38,0,9,0,6,0,7,0,2,0\n39,0,22,0,32,0,48,0,29,0,37,0\n3,0,51,0,58,0,43,0,59,0,25,0\n28,0,21,0,52,0,45,0,1,0,14,0\n54,0,16,0,18,0,46,0,47,0,4,0\n61,0,26,0,35,0,15,0,49,0,13,0\n60,0,34,0,17,0,12,0,42,0,31,0\n40,0,11,0,8,0,56,0,44,0,23,0\n10,0,57,0,30,0,41,0,5,0,19,0\n33,0,3,1,28,1,20,0,7,1,37,1\n"
  },
  {
    "path": "schedules/61_3.csv",
    "content": "28,0,53,0,29,0,35,0,43,0,44,0\n23,0,10,0,24,0,54,0,16,0,40,0\n41,0,12,0,1,0,46,0,5,0,38,0\n18,0,6,0,33,0,49,0,36,0,57,0\n26,0,59,0,22,0,45,0,30,0,56,0\n20,0,21,0,32,0,52,0,48,0,51,0\n50,0,47,0,58,0,17,0,9,0,15,0\n60,0,25,0,2,0,31,0,34,0,39,0\n14,0,37,0,27,0,8,0,55,0,42,0\n11,0,19,0,61,0,4,0,7,0,13,0\n3,0,40,0,49,0,32,0,30,0,53,0\n58,1,54,0,6,0,41,1,26,0,21,0\n33,1,20,0,28,0,24,0,31,0,56,0\n16,0,34,0,50,0,37,0,59,0,35,0\n10,0,15,0,4,0,18,0,1,0,27,0\n55,0,5,0,9,0,13,0,23,0,22,0\n60,0,14,0,44,0,17,0,12,0,61,0\n39,0,8,0,51,0,29,0,19,0,36,0\n2,0,57,0,42,0,3,0,48,0,7,0\n43,0,45,0,46,0,47,0,11,0,25,0\n38,0,23,0,30,0,52,0,6,0,50,0\n53,0,31,0,61,0,16,0,58,0,22,0\n24,0,18,0,17,0,29,0,41,0,32,0\n1,0,54,0,36,0,20,0,59,0,55,0\n13,0,10,0,37,0,46,0,60,0,3,0\n39,0,5,0,7,0,27,0,47,0,33,0\n14,0,9,0,21,0,43,0,2,0,38,0\n26,0,40,0,15,0,25,0,57,0,19,0\n12,0,52,0,4,0,49,0,28,0,42,0\n44,0,8,0,48,0,56,0,34,0,11,0\n35,0,45,0,41,0,51,0,58,0,33,0\n"
  },
  {
    "path": "schedules/61_4.csv",
    "content": "13,0,52,0,12,0,51,0,33,0,20,0\n36,0,22,0,47,0,54,0,32,0,42,0\n45,0,7,0,39,0,40,0,56,0,34,0\n35,0,43,0,11,0,58,0,26,0,38,0\n50,0,41,0,53,0,8,0,23,0,31,0\n5,0,17,0,24,0,16,0,25,0,60,0\n55,0,1,0,57,0,37,0,19,0,21,0\n30,0,46,0,44,0,61,0,49,0,3,0\n2,0,9,0,15,0,29,0,59,0,48,0\n18,0,4,0,10,0,14,0,28,0,27,0\n6,0,60,0,52,0,53,0,7,0,26,0\n31,0,39,0,19,0,11,0,32,0,33,0\n12,0,44,0,45,0,23,0,21,0,47,0\n20,0,34,0,50,0,46,0,43,0,59,0\n9,0,14,0,42,0,24,0,13,0,30,0\n51,0,18,0,29,0,55,0,54,0,17,0\n10,0,3,0,41,0,36,0,2,0,5,0\n16,0,48,0,6,0,1,0,28,0,38,0\n4,0,37,0,56,0,22,0,61,0,35,0\n27,0,25,0,58,0,40,0,8,0,57,0\n49,0,51,0,42,0,15,0,11,0,7,0\n54,1,59,0,26,0,45,1,19,0,10,0\n55,0,34,0,48,0,14,0,41,0,60,0\n50,0,52,0,30,0,5,0,4,0,1,0\n17,0,32,0,27,0,6,0,44,0,56,0\n2,0,13,0,39,0,22,0,16,0,23,0\n61,0,53,0,24,0,38,0,57,0,47,0\n28,0,8,0,20,0,37,0,15,0,3,0\n33,0,40,0,21,0,43,0,29,0,36,0\n49,0,18,0,35,0,25,0,12,0,31,0\n58,0,23,0,60,0,46,0,9,0,1,0\n45,0,38,0,32,0,55,0,13,0,4,0\n5,0,42,0,26,0,39,0,8,0,48,0\n21,0,11,0,61,0,16,0,54,0,41,0\n56,0,19,0,28,0,25,0,52,0,36,0\n29,0,10,0,22,0,6,0,34,0,30,0\n7,0,57,0,33,0,18,0,50,0,9,0\n47,0,59,0,27,0,35,0,3,0,51,0\n15,0,46,0,40,0,17,0,12,0,53,0\n14,0,43,0,31,0,37,0,44,0,2,0\n24,0,58,0,54,0,49,0,20,0,45,0\n"
  },
  {
    "path": "schedules/61_5.csv",
    "content": "21,0,16,0,22,0,56,0,33,0,58,0\n10,0,2,0,1,0,24,0,48,0,46,0\n13,0,59,0,12,0,38,0,44,0,32,0\n61,0,19,0,45,0,43,0,17,0,20,0\n52,0,27,0,41,0,26,0,60,0,31,0\n36,0,30,0,14,0,50,0,8,0,28,0\n40,0,15,0,3,0,4,0,29,0,11,0\n51,0,37,0,47,0,9,0,35,0,34,0\n57,0,18,0,39,0,25,0,7,0,5,0\n23,0,42,0,49,0,55,0,54,0,6,0\n53,0,60,0,33,0,17,0,38,0,10,0\n3,0,20,0,26,0,13,0,46,0,21,0\n45,0,50,0,11,0,59,0,22,0,47,0\n14,0,32,0,29,0,5,0,37,0,27,0\n49,0,19,0,1,0,28,0,41,0,7,0\n2,0,4,0,12,0,42,0,39,0,34,0\n18,0,6,0,61,0,31,0,53,0,40,0\n56,0,48,0,9,0,23,0,36,0,15,0\n30,0,43,0,35,0,58,0,54,0,24,0\n8,0,25,0,44,0,16,0,52,0,51,0\n57,0,11,0,13,0,55,0,17,0,1,0\n49,1,32,0,31,0,47,0,3,0,2,0\n26,0,4,0,14,0,22,0,61,0,23,0\n38,0,6,0,36,0,35,0,20,0,5,0\n60,0,39,0,54,0,19,0,48,0,16,0\n34,0,7,0,15,0,55,0,44,0,58,0\n59,0,24,0,42,0,40,0,37,0,52,0\n50,0,10,0,27,0,43,0,21,0,57,0\n30,0,56,0,51,0,46,0,45,0,53,0\n8,0,33,0,9,0,12,0,18,0,41,0\n29,0,28,0,60,0,25,0,13,0,61,0\n58,0,47,0,38,0,14,0,40,0,48,0\n44,0,22,0,20,0,57,0,49,0,37,0\n16,0,32,0,7,0,42,0,45,0,36,0\n55,0,10,0,39,0,30,0,3,0,52,0\n23,0,41,0,53,0,2,0,29,0,50,0\n43,0,11,0,46,0,9,0,6,0,25,0\n5,0,21,0,1,0,8,0,4,0,59,0\n31,0,24,0,19,0,51,0,12,0,15,0\n27,0,54,0,17,0,34,0,56,0,18,0\n33,0,35,0,48,0,26,0,28,0,32,0\n61,0,11,0,7,0,38,0,2,0,30,0\n46,0,5,0,40,0,50,0,60,0,49,0\n55,0,14,0,41,0,20,0,16,0,24,0\n44,0,9,0,45,0,31,0,29,0,10,0\n22,0,25,0,12,0,27,0,53,0,1,0\n3,0,28,0,58,0,18,0,23,0,51,0\n37,0,21,0,17,0,39,0,15,0,6,0\n8,0,56,0,42,0,19,0,57,0,35,0\n47,0,4,0,52,0,13,0,33,0,54,0\n43,0,36,0,34,0,26,0,59,0,49,0\n"
  },
  {
    "path": "schedules/61_6.csv",
    "content": "14,0,49,0,40,0,48,0,37,0,32,0\n22,0,41,0,60,0,56,0,52,0,34,0\n26,0,47,0,15,0,24,0,5,0,54,0\n46,0,8,0,44,0,30,0,59,0,53,0\n36,0,13,0,3,0,21,0,17,0,38,0\n28,0,18,0,42,0,43,0,11,0,51,0\n10,0,7,0,58,0,4,0,6,0,1,0\n12,0,50,0,16,0,57,0,23,0,27,0\n45,0,33,0,39,0,55,0,2,0,31,0\n61,0,9,0,25,0,19,0,29,0,20,0\n35,0,18,0,44,0,24,0,49,0,38,0\n46,0,13,0,51,0,56,0,1,0,54,0\n28,0,27,0,21,0,34,0,5,0,48,0\n42,0,36,0,41,0,10,0,40,0,39,0\n16,0,2,0,32,0,25,0,26,0,52,0\n47,0,59,0,37,0,58,0,61,0,33,0\n7,0,55,0,20,0,12,0,35,0,53,0\n9,0,23,0,31,0,11,0,8,0,60,0\n29,0,50,0,30,0,15,0,3,0,14,0\n45,0,43,0,17,0,6,0,19,0,57,0\n22,0,33,0,32,0,4,0,28,0,38,0\n20,0,13,0,2,0,10,0,18,0,37,0\n34,0,7,0,40,0,16,0,44,0,61,0\n21,0,1,0,42,0,49,0,60,0,53,0\n58,0,5,0,29,0,23,0,17,0,52,0\n59,0,12,0,36,0,25,0,22,0,45,0\n8,0,47,0,19,0,48,0,50,0,35,0\n6,0,55,0,11,0,26,0,3,0,46,0\n15,0,4,0,57,0,41,0,31,0,51,0\n9,0,43,0,56,0,24,0,30,0,39,0\n54,0,14,0,60,0,27,0,58,0,36,0\n61,0,50,0,22,0,49,0,10,0,5,0\n11,0,17,0,25,0,35,0,34,0,37,0\n59,0,48,0,26,0,57,0,13,0,42,0\n8,0,12,0,1,0,56,0,38,0,29,0\n43,0,20,0,41,0,46,0,32,0,45,0\n40,0,6,0,52,0,30,0,28,0,31,0\n54,0,4,0,9,0,55,0,21,0,16,0\n24,0,14,0,53,0,2,0,19,0,23,0\n51,0,39,0,18,0,47,0,3,0,7,0\n44,0,27,0,1,0,15,0,33,0,43,0\n8,0,26,0,17,0,20,0,40,0,22,0\n45,0,50,0,34,0,4,0,42,0,30,0\n6,0,35,0,14,0,56,0,21,0,61,0\n54,0,31,0,48,0,12,0,10,0,24,0\n38,0,52,0,37,0,7,0,46,0,19,0\n49,0,16,0,29,0,36,0,33,0,51,0\n11,0,53,0,27,0,41,0,47,0,13,0\n25,0,5,0,18,0,60,0,55,0,57,0\n58,0,28,0,2,0,44,0,9,0,3,0\n15,0,59,0,23,0,39,0,32,0,35,0\n29,0,37,0,24,0,42,0,22,0,6,0\n36,0,43,0,26,0,50,0,31,0,7,0\n16,0,48,0,41,0,18,0,17,0,1,0\n57,0,52,0,21,0,33,0,20,0,11,0\n49,0,61,0,54,0,28,0,45,0,23,0\n27,0,30,0,32,0,51,0,55,0,58,0\n44,0,39,0,13,0,14,0,25,0,8,0\n56,0,3,0,19,0,4,0,5,0,59,0\n38,0,34,0,10,0,53,0,9,0,15,0\n46,0,2,0,60,0,47,0,12,0,40,0\n"
  },
  {
    "path": "schedules/61_7.csv",
    "content": "35,0,45,0,11,0,1,0,50,0,20,0\n24,0,3,0,23,0,41,0,46,0,29,0\n14,0,51,0,31,0,28,0,44,0,54,0\n56,0,18,0,8,0,48,0,59,0,25,0\n19,0,26,0,10,0,22,0,61,0,57,0\n36,0,13,0,17,0,32,0,60,0,21,0\n7,0,33,0,55,0,16,0,30,0,38,0\n49,0,43,0,34,0,4,0,15,0,2,0\n42,0,40,0,9,0,47,0,12,0,52,0\n53,0,5,0,37,0,27,0,6,0,58,0\n59,0,57,0,31,0,39,0,36,0,1,0\n16,0,11,0,29,0,26,0,17,0,48,0\n46,0,50,0,60,0,30,0,49,0,25,0\n13,0,18,0,2,0,41,0,51,0,40,0\n34,0,61,0,24,0,55,0,35,0,5,0\n8,0,15,0,19,0,3,0,37,0,52,0\n54,0,20,0,33,0,47,0,4,0,27,0\n12,0,22,0,21,0,53,0,56,0,39,0\n45,0,32,0,7,0,44,0,58,0,42,0\n9,0,23,0,43,0,10,0,14,0,38,0\n28,0,52,0,1,0,6,0,2,0,17,0\n47,1,3,0,30,0,49,1,51,0,61,0\n31,1,37,0,29,0,35,1,40,0,4,0\n22,1,59,0,50,0,5,0,21,0,42,0\n11,0,27,0,36,0,24,0,56,0,14,0\n55,0,57,0,44,0,53,0,46,0,43,0\n32,0,15,0,25,0,33,0,23,0,26,0\n58,0,20,0,60,0,38,0,18,0,19,0\n8,0,34,0,39,0,9,0,16,0,45,0\n54,0,7,0,10,0,41,0,6,0,12,0\n48,0,13,0,37,0,28,0,22,0,55,0\n5,0,2,0,46,0,32,0,11,0,31,0\n30,0,24,0,4,0,59,0,53,0,42,0\n26,0,1,0,21,0,34,0,51,0,58,0\n47,0,16,0,36,0,10,0,18,0,44,0\n25,0,27,0,17,0,45,0,19,0,12,0\n61,0,15,0,60,0,6,0,29,0,9,0\n49,0,20,0,48,0,57,0,23,0,14,0\n38,0,52,0,13,0,50,0,39,0,54,0\n28,0,56,0,41,0,35,0,33,0,8,0\n40,0,43,0,36,0,7,0,3,0,22,0\n25,0,12,0,5,0,1,0,4,0,16,0\n23,0,10,0,59,0,34,0,60,0,27,0\n54,0,48,0,24,0,19,0,44,0,2,0\n29,0,51,0,57,0,32,0,38,0,37,0\n18,0,50,0,31,0,33,0,43,0,61,0\n52,0,58,0,30,0,56,0,13,0,35,0\n55,0,45,0,6,0,26,0,40,0,49,0\n41,0,42,0,39,0,15,0,20,0,17,0\n47,0,21,0,14,0,7,0,46,0,8,0\n3,0,9,0,28,0,53,0,11,0,18,0\n1,0,54,0,60,0,16,0,56,0,43,0\n4,0,22,0,51,0,24,0,52,0,45,0\n12,0,58,0,50,0,57,0,15,0,36,0\n33,0,42,0,6,0,48,0,34,0,46,0\n31,0,27,0,26,0,9,0,7,0,13,0\n38,0,21,0,2,0,35,0,25,0,3,0\n14,0,19,0,55,0,29,0,47,0,39,0\n32,0,53,0,28,0,20,0,10,0,40,0\n8,0,44,0,17,0,5,0,23,0,30,0\n37,0,61,0,41,0,11,0,59,0,49,0\n18,0,46,0,22,0,1,0,27,0,15,0\n35,0,39,0,48,0,60,0,7,0,51,0\n43,0,47,0,58,0,24,0,28,0,25,0\n31,0,6,0,16,0,21,0,23,0,19,0\n53,0,38,0,36,0,8,0,61,0,26,0\n33,0,5,0,49,0,10,0,29,0,52,0\n3,0,59,0,44,0,12,0,13,0,20,0\n55,0,4,0,32,0,50,0,9,0,41,0\n30,0,11,0,40,0,57,0,34,0,54,0\n14,0,42,0,45,0,56,0,37,0,2,0\n17,0,49,0,35,0,47,0,31,0,22,0\n"
  },
  {
    "path": "schedules/61_8.csv",
    "content": "40,0,21,0,28,0,8,0,18,0,37,0\n29,0,3,0,19,0,46,0,17,0,53,0\n43,0,56,0,60,0,38,0,36,0,57,0\n14,0,11,0,4,0,39,0,5,0,33,0\n47,0,22,0,52,0,10,0,12,0,9,0\n34,0,16,0,54,0,42,0,49,0,48,0\n32,0,27,0,25,0,6,0,30,0,31,0\n2,0,20,0,41,0,15,0,55,0,58,0\n59,0,23,0,35,0,50,0,61,0,13,0\n51,0,24,0,45,0,26,0,44,0,1,0\n7,0,17,0,22,0,37,0,21,0,54,0\n53,0,49,0,6,0,18,0,31,0,43,0\n14,0,8,0,58,0,47,0,3,0,57,0\n42,0,12,0,56,0,20,0,23,0,25,0\n45,0,28,0,61,0,36,0,39,0,41,0\n50,0,26,0,15,0,19,0,30,0,48,0\n7,0,10,0,16,0,44,0,4,0,59,0\n11,0,13,0,52,0,60,0,32,0,51,0\n9,0,38,0,29,0,1,0,27,0,2,0\n46,0,35,0,24,0,34,0,5,0,40,0\n55,0,53,0,36,0,33,0,21,0,42,0\n12,1,48,0,20,0,19,1,61,0,4,0\n51,1,50,0,25,0,16,1,58,0,43,0\n39,0,2,0,18,0,59,0,54,0,57,0\n23,0,31,0,46,0,47,0,7,0,11,0\n34,0,27,0,33,0,15,0,3,0,37,0\n45,0,35,0,32,0,10,0,38,0,8,0\n55,0,17,0,40,0,6,0,60,0,14,0\n49,0,13,0,44,0,28,0,29,0,5,0\n56,0,30,0,24,0,22,0,41,0,9,0\n52,0,1,0,39,0,26,0,43,0,3,0\n19,0,23,0,54,0,16,0,31,0,33,0\n18,0,20,0,38,0,34,0,47,0,51,0\n27,0,45,0,58,0,48,0,28,0,7,0\n22,0,46,0,50,0,32,0,55,0,44,0\n42,0,10,0,11,0,29,0,61,0,40,0\n52,0,57,0,17,0,15,0,24,0,25,0\n12,0,13,0,21,0,14,0,2,0,30,0\n8,0,1,0,35,0,60,0,41,0,53,0\n37,0,59,0,6,0,56,0,26,0,5,0\n36,0,4,0,3,0,49,0,9,0,50,0\n11,0,43,0,61,0,16,0,24,0,18,0\n25,0,34,0,28,0,51,0,14,0,22,0\n7,0,1,0,57,0,20,0,19,0,33,0\n27,0,59,0,46,0,60,0,42,0,58,0\n32,0,40,0,26,0,12,0,54,0,49,0\n15,0,47,0,44,0,35,0,56,0,21,0\n23,0,30,0,10,0,6,0,2,0,36,0\n37,0,4,0,52,0,53,0,45,0,29,0\n5,0,17,0,31,0,38,0,48,0,41,0\n8,0,9,0,39,0,55,0,13,0,34,0\n21,0,7,0,60,0,26,0,61,0,51,0\n32,0,15,0,14,0,24,0,59,0,42,0\n36,0,27,0,16,0,35,0,52,0,20,0\n56,0,50,0,33,0,45,0,18,0,17,0\n48,0,2,0,22,0,11,0,8,0,3,0\n5,0,57,0,53,0,40,0,23,0,9,0\n4,0,28,0,41,0,54,0,46,0,43,0\n38,0,6,0,58,0,12,0,39,0,44,0\n37,0,49,0,19,0,10,0,13,0,25,0\n55,0,31,0,47,0,30,0,1,0,29,0\n5,0,7,0,2,0,32,0,56,0,52,0\n4,0,17,0,9,0,35,0,26,0,42,0\n51,0,54,0,15,0,8,0,46,0,6,0\n44,0,37,0,43,0,14,0,23,0,48,0\n39,0,61,0,49,0,53,0,47,0,27,0\n18,0,58,0,22,0,36,0,13,0,1,0\n10,0,41,0,31,0,57,0,21,0,34,0\n3,0,30,0,40,0,16,0,20,0,28,0\n25,0,19,0,38,0,59,0,55,0,11,0\n60,0,29,0,33,0,12,0,50,0,24,0\n45,0,47,0,42,0,43,0,5,0,22,0\n58,0,32,0,34,0,17,0,61,0,23,0\n51,0,40,0,56,0,27,0,31,0,4,0\n16,0,13,0,26,0,15,0,53,0,38,0\n28,0,44,0,60,0,9,0,19,0,2,0\n18,0,3,0,12,0,35,0,7,0,55,0\n14,0,25,0,29,0,54,0,45,0,36,0\n24,0,48,0,10,0,46,0,39,0,20,0\n49,0,59,0,30,0,52,0,8,0,33,0\n21,0,1,0,6,0,57,0,50,0,11,0\n37,0,12,0,51,0,41,0,19,0,16,0\n"
  },
  {
    "path": "schedules/61_9.csv",
    "content": "27,0,17,0,32,0,56,0,4,0,20,0\n30,0,40,0,18,0,60,0,49,0,38,0\n9,0,6,0,2,0,57,0,10,0,47,0\n39,0,21,0,28,0,8,0,37,0,25,0\n43,0,19,0,12,0,31,0,61,0,35,0\n1,0,3,0,53,0,24,0,46,0,22,0\n41,0,55,0,16,0,48,0,13,0,5,0\n51,0,42,0,59,0,58,0,33,0,50,0\n36,0,11,0,34,0,23,0,29,0,7,0\n26,0,52,0,14,0,45,0,54,0,44,0\n15,0,49,0,37,0,32,0,57,0,35,0\n43,0,4,0,39,0,2,0,28,0,16,0\n40,0,47,0,24,0,58,0,55,0,12,0\n30,0,11,0,59,0,17,0,36,0,3,0\n7,0,21,0,18,0,41,0,52,0,46,0\n25,0,1,0,20,0,48,0,15,0,45,0\n54,0,13,0,56,0,34,0,33,0,6,0\n9,0,53,0,22,0,61,0,51,0,8,0\n31,0,60,0,44,0,50,0,29,0,5,0\n42,0,10,0,26,0,27,0,19,0,38,0\n14,0,43,0,37,0,23,0,48,0,47,0\n11,1,45,0,16,0,21,1,40,0,6,0\n22,1,34,0,41,0,9,0,30,0,32,0\n55,0,57,0,28,0,20,0,50,0,7,0\n46,0,58,0,5,0,15,0,19,0,54,0\n53,0,14,0,59,0,18,0,26,0,56,0\n49,0,8,0,24,0,27,0,31,0,36,0\n33,0,25,0,61,0,44,0,10,0,3,0\n52,0,51,0,13,0,29,0,4,0,12,0\n17,0,39,0,23,0,1,0,42,0,60,0\n35,0,2,0,58,0,38,0,28,0,22,0\n45,0,5,0,14,0,27,0,46,0,8,0\n33,0,31,0,26,0,15,0,11,0,47,0\n25,0,56,0,29,0,7,0,19,0,49,0\n48,0,4,0,30,0,54,0,42,0,21,0\n2,0,34,0,40,0,37,0,61,0,17,0\n52,0,3,0,60,0,36,0,43,0,57,0\n59,0,1,0,44,0,13,0,55,0,35,0\n10,0,16,0,18,0,24,0,51,0,32,0\n39,0,12,0,53,0,20,0,41,0,6,0\n38,0,50,0,56,0,9,0,23,0,15,0\n34,0,14,0,46,0,2,0,25,0,60,0\n26,0,55,0,29,0,8,0,30,0,22,0\n54,0,47,0,61,0,36,0,1,0,16,0\n41,0,43,0,49,0,6,0,51,0,17,0\n21,0,38,0,10,0,59,0,12,0,31,0\n44,0,57,0,19,0,48,0,18,0,39,0\n24,0,23,0,33,0,20,0,52,0,35,0\n32,0,28,0,5,0,42,0,40,0,3,0\n11,0,4,0,53,0,50,0,45,0,37,0\n27,0,7,0,9,0,13,0,58,0,60,0\n16,0,12,0,38,0,46,0,44,0,36,0\n1,0,17,0,29,0,57,0,21,0,14,0\n19,0,20,0,8,0,41,0,59,0,40,0\n31,0,55,0,54,0,32,0,2,0,53,0\n18,0,22,0,33,0,43,0,45,0,27,0\n15,0,28,0,13,0,24,0,10,0,30,0\n11,0,35,0,5,0,25,0,52,0,9,0\n3,0,51,0,56,0,42,0,37,0,47,0\n26,0,7,0,6,0,61,0,23,0,4,0\n50,0,48,0,34,0,39,0,49,0,58,0\n17,0,60,0,28,0,33,0,19,0,53,0\n41,0,57,0,13,0,14,0,31,0,40,0\n24,0,44,0,37,0,59,0,54,0,9,0\n35,0,27,0,23,0,21,0,16,0,30,0\n36,0,6,0,22,0,42,0,15,0,25,0\n32,0,47,0,38,0,29,0,45,0,39,0\n51,0,5,0,43,0,1,0,26,0,34,0\n8,0,50,0,3,0,12,0,52,0,48,0\n61,0,20,0,2,0,58,0,11,0,18,0\n4,0,10,0,46,0,55,0,56,0,49,0\n7,0,15,0,22,0,44,0,17,0,40,0\n13,0,23,0,30,0,25,0,53,0,57,0\n32,0,29,0,48,0,33,0,59,0,27,0\n31,0,52,0,6,0,1,0,28,0,37,0\n49,0,16,0,42,0,14,0,9,0,20,0\n3,0,47,0,35,0,18,0,4,0,34,0\n61,0,11,0,39,0,51,0,55,0,46,0\n36,0,45,0,58,0,41,0,56,0,10,0\n8,0,38,0,54,0,60,0,7,0,43,0\n50,0,21,0,2,0,26,0,19,0,24,0\n12,0,23,0,22,0,5,0,59,0,49,0\n6,0,15,0,55,0,3,0,14,0,27,0\n42,0,34,0,52,0,16,0,31,0,53,0\n46,0,37,0,29,0,20,0,43,0,10,0\n48,0,60,0,21,0,61,0,28,0,56,0\n58,0,8,0,1,0,44,0,32,0,11,0\n9,0,36,0,35,0,39,0,40,0,26,0\n50,0,54,0,25,0,41,0,18,0,17,0\n24,0,57,0,4,0,38,0,5,0,33,0\n30,0,12,0,51,0,45,0,2,0,7,0\n47,0,19,0,21,0,13,0,11,0,22,0\n"
  },
  {
    "path": "schedules/62_1.csv",
    "content": "27,0,12,0,62,0,18,0,19,0,52,0\n4,0,41,0,56,0,42,0,32,0,24,0\n45,0,36,0,20,0,54,0,29,0,35,0\n59,0,3,0,37,0,25,0,2,0,9,0\n22,0,48,0,8,0,34,0,40,0,10,0\n47,0,6,0,13,0,44,0,49,0,23,0\n55,0,5,0,51,0,38,0,31,0,50,0\n30,0,11,0,33,0,61,0,43,0,58,0\n28,0,57,0,39,0,21,0,1,0,26,0\n15,0,7,0,46,0,16,0,60,0,14,0\n17,0,59,1,8,1,53,0,13,1,23,1\n"
  },
  {
    "path": "schedules/62_10.csv",
    "content": "56,0,8,0,26,0,61,0,1,0,62,0\n48,0,44,0,21,0,52,0,4,0,54,0\n16,0,35,0,40,0,41,0,11,0,50,0\n47,0,49,0,20,0,23,0,59,0,3,0\n19,0,45,0,13,0,33,0,32,0,6,0\n43,0,53,0,25,0,30,0,7,0,31,0\n24,0,27,0,38,0,9,0,28,0,34,0\n36,0,37,0,18,0,46,0,5,0,2,0\n60,0,22,0,58,0,17,0,39,0,42,0\n57,0,29,0,55,0,15,0,12,0,10,0\n14,0,33,0,23,0,51,0,44,0,7,0\n11,0,26,0,45,0,43,0,27,0,49,0\n37,0,38,0,52,0,4,0,46,0,41,0\n62,0,58,0,19,0,53,0,47,0,18,0\n5,0,34,0,10,0,48,0,59,0,39,0\n55,0,61,0,31,0,57,0,16,0,22,0\n24,0,54,0,51,0,9,0,15,0,32,0\n36,0,60,0,56,0,29,0,28,0,21,0\n3,0,14,0,42,0,2,0,30,0,40,0\n8,0,50,0,25,0,13,0,20,0,12,0\n17,0,1,0,31,0,6,0,35,0,4,0\n47,1,62,0,44,0,34,1,38,0,43,0\n45,1,39,0,23,0,48,1,56,0,41,0\n53,0,46,0,3,0,16,0,9,0,54,0\n42,0,32,0,11,0,61,0,12,0,7,0\n2,0,20,0,21,0,27,0,28,0,13,0\n35,0,17,0,59,0,57,0,25,0,36,0\n37,0,26,0,60,0,40,0,19,0,33,0\n30,0,29,0,5,0,24,0,1,0,6,0\n14,0,55,0,15,0,8,0,52,0,58,0\n18,0,49,0,50,0,51,0,22,0,10,0\n31,0,62,0,41,0,36,0,48,0,42,0\n57,0,46,0,11,0,20,0,34,0,39,0\n9,0,43,0,24,0,37,0,23,0,13,0\n54,0,59,0,61,0,14,0,58,0,45,0\n5,0,33,0,12,0,35,0,22,0,52,0\n44,0,3,0,29,0,19,0,50,0,26,0\n28,0,4,0,7,0,47,0,6,0,30,0\n32,0,17,0,49,0,8,0,21,0,15,0\n2,0,10,0,38,0,53,0,1,0,60,0\n18,0,27,0,51,0,16,0,25,0,56,0\n55,0,35,0,20,0,40,0,54,0,37,0\n3,0,52,0,33,0,31,0,23,0,34,0\n12,0,48,0,14,0,43,0,19,0,46,0\n61,0,22,0,39,0,47,0,9,0,21,0\n1,0,15,0,28,0,42,0,18,0,59,0\n17,0,53,0,44,0,41,0,27,0,29,0\n50,0,58,0,57,0,36,0,32,0,45,0\n62,0,30,0,8,0,16,0,10,0,60,0\n38,0,6,0,11,0,2,0,51,0,55,0\n56,0,7,0,40,0,49,0,5,0,13,0\n25,0,4,0,59,0,26,0,24,0,22,0\n33,0,34,0,46,0,17,0,61,0,29,0\n30,0,15,0,37,0,44,0,45,0,31,0\n19,0,1,0,23,0,21,0,16,0,11,0\n7,0,36,0,39,0,54,0,8,0,38,0\n50,0,14,0,2,0,25,0,62,0,5,0\n12,0,53,0,57,0,40,0,51,0,28,0\n13,0,9,0,48,0,49,0,55,0,58,0\n35,0,42,0,60,0,47,0,27,0,52,0\n43,0,3,0,32,0,10,0,56,0,4,0\n24,0,20,0,41,0,6,0,26,0,18,0\n40,0,1,0,22,0,62,0,36,0,34,0\n17,0,23,0,2,0,45,0,12,0,50,0\n47,0,31,0,13,0,54,0,11,0,29,0\n10,0,21,0,7,0,58,0,37,0,46,0\n8,0,51,0,35,0,44,0,24,0,42,0\n25,0,6,0,15,0,3,0,48,0,60,0\n27,0,59,0,16,0,39,0,52,0,43,0\n19,0,61,0,30,0,38,0,41,0,49,0\n5,0,20,0,32,0,33,0,55,0,53,0\n9,0,57,0,4,0,56,0,18,0,14,0\n26,0,46,0,31,0,28,0,8,0,23,0\n3,0,12,0,6,0,21,0,62,0,27,0\n22,0,34,0,15,0,19,0,7,0,2,0\n49,0,1,0,52,0,32,0,37,0,25,0\n10,0,40,0,47,0,17,0,24,0,45,0\n60,0,11,0,33,0,9,0,59,0,50,0\n29,0,56,0,42,0,14,0,20,0,38,0\n48,0,4,0,43,0,35,0,61,0,53,0\n57,0,28,0,44,0,16,0,5,0,58,0\n26,0,36,0,51,0,39,0,30,0,55,0\n54,0,13,0,34,0,41,0,18,0,60,0\n50,0,32,0,21,0,59,0,31,0,38,0\n9,0,10,0,45,0,42,0,25,0,20,0\n2,0,33,0,47,0,57,0,43,0,8,0\n29,0,37,0,48,0,22,0,11,0,28,0\n27,0,23,0,4,0,19,0,5,0,55,0\n44,0,52,0,6,0,18,0,40,0,61,0\n41,0,7,0,58,0,51,0,1,0,3,0\n30,0,54,0,26,0,12,0,56,0,17,0\n53,0,16,0,24,0,36,0,49,0,14,0\n39,0,62,0,46,0,35,0,15,0,13,0\n48,0,25,0,40,0,38,0,33,0,21,0\n11,0,5,0,18,0,45,0,3,0,8,0\n54,0,22,0,27,0,57,0,30,0,23,0\n37,0,6,0,16,0,12,0,34,0,42,0\n55,0,47,0,43,0,46,0,50,0,1,0\n28,0,41,0,35,0,14,0,32,0,10,0\n29,0,49,0,39,0,2,0,62,0,4,0\n56,0,53,0,13,0,15,0,59,0,44,0\n24,0,58,0,61,0,60,0,31,0,20,0\n9,0,7,0,52,0,36,0,17,0,19,0\n51,0,47,0,45,0,26,0,34,0,48,0\n"
  },
  {
    "path": "schedules/62_11.csv",
    "content": "46,0,33,0,48,0,10,0,54,0,12,0\n45,0,17,0,42,0,27,0,4,0,22,0\n32,0,49,0,5,0,28,0,3,0,7,0\n50,0,29,0,41,0,16,0,52,0,55,0\n20,0,40,0,57,0,25,0,31,0,14,0\n34,0,26,0,23,0,62,0,58,0,47,0\n37,0,56,0,2,0,24,0,6,0,18,0\n21,0,51,0,38,0,43,0,19,0,15,0\n44,0,59,0,9,0,30,0,1,0,8,0\n35,0,36,0,13,0,39,0,53,0,60,0\n11,0,52,0,58,0,61,0,57,0,10,0\n6,0,34,0,25,0,3,0,48,0,45,0\n16,0,56,0,47,0,21,0,42,0,40,0\n14,0,50,0,62,0,41,0,7,0,17,0\n4,0,12,0,33,0,35,0,23,0,9,0\n32,0,24,0,54,0,44,0,29,0,43,0\n26,0,28,0,27,0,11,0,39,0,31,0\n8,0,60,0,18,0,46,0,1,0,19,0\n2,0,30,0,49,0,22,0,13,0,38,0\n59,0,15,0,53,0,61,0,37,0,55,0\n20,0,5,0,7,0,36,0,51,0,54,0\n35,1,43,0,39,0,25,1,56,0,40,0\n27,0,17,0,16,0,32,0,48,0,19,0\n45,0,62,0,60,0,31,0,3,0,8,0\n33,0,26,0,14,0,15,0,50,0,6,0\n47,0,18,0,57,0,12,0,61,0,5,0\n30,0,13,0,52,0,23,0,55,0,42,0\n29,0,38,0,1,0,20,0,34,0,53,0\n59,0,46,0,22,0,11,0,21,0,44,0\n41,0,51,0,10,0,37,0,28,0,4,0\n58,0,9,0,49,0,2,0,36,0,24,0\n3,0,57,0,19,0,40,0,39,0,30,0\n18,0,20,0,16,0,27,0,15,0,45,0\n14,0,34,0,21,0,8,0,54,0,35,0\n31,0,44,0,53,0,33,0,47,0,52,0\n60,0,24,0,43,0,26,0,10,0,7,0\n1,0,59,0,36,0,2,0,4,0,62,0\n22,0,23,0,61,0,48,0,56,0,29,0\n46,0,37,0,25,0,13,0,50,0,32,0\n28,0,5,0,11,0,41,0,38,0,9,0\n51,0,55,0,58,0,17,0,6,0,12,0\n49,0,54,0,53,0,42,0,18,0,59,0\n10,0,45,0,43,0,14,0,44,0,23,0\n20,0,22,0,24,0,33,0,32,0,35,0\n36,0,31,0,34,0,19,0,11,0,16,0\n12,0,47,0,48,0,4,0,60,0,15,0\n39,0,58,0,6,0,62,0,46,0,29,0\n56,0,57,0,42,0,7,0,2,0,55,0\n26,0,9,0,61,0,25,0,49,0,51,0\n27,0,50,0,30,0,40,0,1,0,5,0\n37,0,21,0,3,0,38,0,52,0,17,0\n8,0,13,0,53,0,41,0,28,0,48,0\n32,0,15,0,36,0,58,0,57,0,23,0\n20,0,39,0,61,0,12,0,43,0,16,0\n19,0,42,0,4,0,25,0,5,0,44,0\n26,0,17,0,2,0,54,0,52,0,46,0\n27,0,35,0,29,0,50,0,49,0,37,0\n60,0,51,0,40,0,34,0,41,0,22,0\n3,0,33,0,9,0,14,0,18,0,13,0\n24,0,55,0,47,0,8,0,28,0,62,0\n31,0,59,0,38,0,6,0,10,0,56,0\n21,0,1,0,7,0,11,0,30,0,45,0\n37,0,22,0,52,0,43,0,58,0,36,0\n18,0,53,0,4,0,26,0,50,0,16,0\n28,0,44,0,40,0,2,0,15,0,48,0\n42,0,39,0,62,0,33,0,38,0,20,0\n7,0,34,0,12,0,13,0,59,0,10,0\n8,0,23,0,25,0,27,0,54,0,11,0\n35,0,5,0,46,0,56,0,45,0,55,0\n6,0,41,0,1,0,49,0,57,0,21,0\n29,0,24,0,19,0,14,0,47,0,3,0\n31,0,32,0,17,0,61,0,51,0,30,0\n60,0,26,0,48,0,9,0,20,0,42,0\n12,0,45,0,2,0,53,0,11,0,37,0\n5,0,8,0,33,0,25,0,52,0,43,0\n47,0,15,0,10,0,19,0,49,0,35,0\n62,0,6,0,27,0,61,0,44,0,13,0\n50,0,54,0,3,0,31,0,1,0,22,0\n46,0,24,0,38,0,16,0,57,0,51,0\n18,0,32,0,58,0,60,0,41,0,59,0\n55,0,29,0,21,0,40,0,36,0,4,0\n7,0,39,0,23,0,17,0,34,0,9,0\n28,0,30,0,12,0,14,0,56,0,22,0\n37,0,1,0,43,0,31,0,42,0,46,0\n16,0,35,0,3,0,59,0,57,0,26,0\n61,0,19,0,2,0,45,0,41,0,33,0\n40,0,10,0,62,0,18,0,9,0,21,0\n48,0,55,0,27,0,38,0,7,0,58,0\n14,0,4,0,39,0,52,0,32,0,53,0\n17,0,56,0,51,0,8,0,36,0,29,0\n49,0,23,0,11,0,44,0,60,0,50,0\n28,0,47,0,6,0,30,0,25,0,20,0\n54,0,34,0,13,0,5,0,15,0,24,0\n3,0,62,0,43,0,2,0,53,0,27,0\n7,0,52,0,35,0,51,0,19,0,18,0\n36,0,38,0,12,0,26,0,44,0,41,0\n61,0,58,0,48,0,50,0,21,0,39,0\n55,0,15,0,22,0,25,0,10,0,1,0\n30,0,14,0,46,0,33,0,49,0,34,0\n54,0,9,0,60,0,6,0,16,0,37,0\n45,0,57,0,13,0,29,0,47,0,17,0\n56,0,11,0,8,0,20,0,4,0,32,0\n31,0,24,0,40,0,59,0,5,0,23,0\n42,0,61,0,35,0,28,0,36,0,46,0\n16,0,25,0,15,0,7,0,30,0,62,0\n52,0,29,0,34,0,12,0,9,0,27,0\n44,0,56,0,4,0,13,0,58,0,3,0\n40,0,32,0,45,0,26,0,54,0,38,0\n55,0,49,0,18,0,31,0,48,0,43,0\n28,0,21,0,33,0,37,0,60,0,57,0\n50,0,10,0,5,0,2,0,8,0,42,0\n53,0,19,0,22,0,23,0,6,0,20,0\n51,0,59,0,14,0,39,0,47,0,1,0\n41,0,11,0,25,0,17,0,24,0,35,0\n"
  },
  {
    "path": "schedules/62_12.csv",
    "content": "4,0,24,0,44,0,11,0,61,0,23,0\n37,0,29,0,13,0,46,0,1,0,16,0\n57,0,14,0,7,0,28,0,25,0,17,0\n47,0,10,0,27,0,15,0,49,0,43,0\n42,0,53,0,54,0,21,0,56,0,52,0\n41,0,6,0,30,0,35,0,55,0,12,0\n59,0,51,0,22,0,31,0,3,0,58,0\n39,0,18,0,19,0,8,0,34,0,2,0\n9,0,20,0,62,0,36,0,60,0,5,0\n33,0,38,0,32,0,50,0,40,0,45,0\n48,0,24,0,6,0,26,0,27,0,12,0\n25,0,31,0,11,0,29,0,56,0,1,0\n17,0,2,0,22,0,61,0,53,0,8,0\n51,0,41,0,49,0,20,0,42,0,13,0\n54,0,36,0,19,0,7,0,15,0,38,0\n48,0,3,0,32,0,37,0,23,0,14,0\n34,0,57,0,46,0,59,0,45,0,30,0\n47,0,21,0,16,0,4,0,62,0,18,0\n39,0,44,0,52,0,60,0,55,0,33,0\n28,0,9,0,26,0,43,0,58,0,40,0\n35,0,50,0,53,0,5,0,10,0,3,0\n49,0,17,0,32,0,56,0,46,0,59,0\n15,0,31,0,20,0,11,0,48,0,4,0\n8,0,6,0,54,0,44,0,60,0,16,0\n23,0,39,0,9,0,38,0,28,0,42,0\n61,0,58,0,14,0,26,0,19,0,13,0\n41,0,1,0,36,0,10,0,45,0,2,0\n43,0,55,0,22,0,25,0,33,0,62,0\n51,0,30,0,40,0,52,0,29,0,27,0\n12,0,47,0,24,0,50,0,7,0,34,0\n21,0,18,0,37,0,5,0,57,0,35,0\n15,0,1,0,58,0,41,0,44,0,61,0\n16,0,6,0,53,0,36,0,59,0,49,0\n30,0,25,0,54,0,39,0,3,0,2,0\n34,0,45,0,62,0,28,0,52,0,14,0\n40,0,21,0,20,0,57,0,24,0,27,0\n56,0,26,0,23,0,35,0,22,0,18,0\n31,0,60,0,47,0,17,0,33,0,37,0\n11,0,5,0,7,0,38,0,43,0,46,0\n42,0,29,0,48,0,50,0,13,0,8,0\n55,0,10,0,4,0,32,0,19,0,51,0\n9,0,22,0,58,0,12,0,57,0,54,0\n15,0,60,0,3,0,49,0,24,0,18,0\n43,0,61,0,39,0,16,0,45,0,52,0\n2,0,33,0,42,0,59,0,48,0,20,0\n17,0,53,0,27,0,29,0,55,0,50,0\n11,0,8,0,46,0,25,0,9,0,47,0\n5,0,41,0,38,0,4,0,26,0,31,0\n34,0,23,0,6,0,7,0,51,0,56,0\n13,0,12,0,40,0,10,0,62,0,44,0\n28,0,32,0,1,0,21,0,30,0,19,0\n36,0,14,0,2,0,37,0,35,0,49,0\n52,0,3,0,43,0,41,0,17,0,57,0\n61,0,27,0,38,0,59,0,18,0,42,0\n29,0,16,0,7,0,20,0,33,0,22,0\n26,0,54,0,51,0,62,0,30,0,11,0\n14,0,46,0,31,0,24,0,40,0,53,0\n23,0,1,0,10,0,6,0,39,0,58,0\n34,0,37,0,44,0,4,0,50,0,9,0\n47,0,55,0,15,0,56,0,28,0,13,0\n25,0,36,0,8,0,12,0,32,0,5,0\n21,0,35,0,45,0,19,0,48,0,60,0\n57,0,42,0,10,0,24,0,33,0,11,0\n18,0,23,0,41,0,53,0,62,0,46,0\n44,0,38,0,2,0,17,0,3,0,16,0\n20,0,26,0,55,0,47,0,1,0,37,0\n59,0,4,0,40,0,39,0,35,0,7,0\n12,0,21,0,8,0,51,0,15,0,14,0\n43,0,27,0,25,0,31,0,34,0,48,0\n30,0,50,0,60,0,36,0,58,0,56,0\n32,0,45,0,13,0,22,0,6,0,52,0\n49,0,61,0,5,0,29,0,54,0,28,0\n9,0,33,0,51,0,19,0,35,0,17,0\n46,0,23,0,2,0,57,0,21,0,55,0\n14,0,24,0,56,0,43,0,4,0,41,0\n48,0,52,0,1,0,36,0,27,0,22,0\n54,0,58,0,45,0,47,0,29,0,20,0\n11,0,53,0,3,0,12,0,60,0,28,0\n31,0,10,0,13,0,18,0,8,0,9,0\n34,0,5,0,16,0,40,0,42,0,32,0\n15,0,50,0,19,0,39,0,26,0,59,0\n38,0,62,0,37,0,6,0,25,0,61,0\n30,0,49,0,53,0,7,0,44,0,48,0\n46,0,29,0,22,0,4,0,60,0,14,0\n35,0,11,0,20,0,34,0,32,0,55,0\n5,0,27,0,56,0,33,0,45,0,39,0\n21,0,58,0,50,0,43,0,31,0,6,0\n12,0,59,0,19,0,23,0,54,0,40,0\n16,0,13,0,2,0,17,0,26,0,24,0\n52,0,42,0,30,0,37,0,10,0,15,0\n7,0,61,0,47,0,41,0,3,0,9,0\n62,0,57,0,1,0,49,0,8,0,38,0\n18,0,28,0,36,0,51,0,25,0,44,0\n17,0,55,0,48,0,5,0,4,0,54,0\n2,0,58,0,37,0,40,0,15,0,11,0\n29,0,59,0,23,0,41,0,52,0,47,0\n3,0,22,0,19,0,20,0,46,0,6,0\n18,0,12,0,31,0,39,0,49,0,42,0\n7,0,45,0,27,0,32,0,8,0,44,0\n14,0,53,0,33,0,1,0,30,0,9,0\n57,0,56,0,50,0,61,0,16,0,51,0\n24,0,28,0,43,0,13,0,35,0,38,0\n34,0,26,0,25,0,10,0,60,0,21,0\n62,0,3,0,55,0,36,0,42,0,31,0\n5,0,30,0,44,0,14,0,47,0,19,0\n17,0,40,0,18,0,45,0,11,0,6,0\n41,0,35,0,46,0,54,0,50,0,27,0\n37,0,59,0,28,0,24,0,10,0,22,0\n36,0,61,0,13,0,34,0,21,0,33,0\n20,0,16,0,25,0,53,0,15,0,23,0\n8,0,52,0,4,0,49,0,26,0,58,0\n39,0,32,0,62,0,57,0,48,0,9,0\n7,0,43,0,60,0,1,0,51,0,2,0\n12,0,56,0,10,0,38,0,29,0,21,0\n19,0,27,0,41,0,37,0,16,0,11,0\n59,0,52,0,50,0,14,0,18,0,20,0\n45,0,49,0,9,0,25,0,55,0,24,0\n5,0,15,0,17,0,34,0,1,0,22,0\n62,0,35,0,42,0,7,0,58,0,46,0\n39,0,38,0,51,0,47,0,32,0,53,0\n60,0,13,0,54,0,23,0,31,0,30,0\n26,0,43,0,57,0,36,0,44,0,29,0\n8,0,40,0,48,0,56,0,61,0,3,0\n28,0,33,0,4,0,2,0,12,0,6,0\n"
  },
  {
    "path": "schedules/62_13.csv",
    "content": "21,0,47,0,50,0,53,0,31,0,48,0\n37,0,60,0,19,0,55,0,5,0,34,0\n30,0,54,0,41,0,1,0,39,0,17,0\n16,0,15,0,23,0,13,0,36,0,18,0\n58,0,51,0,27,0,8,0,40,0,29,0\n56,0,38,0,4,0,3,0,42,0,11,0\n7,0,22,0,46,0,52,0,61,0,24,0\n59,0,43,0,35,0,9,0,20,0,6,0\n49,0,2,0,45,0,28,0,10,0,62,0\n33,0,32,0,12,0,44,0,26,0,57,0\n14,0,8,0,38,0,25,0,4,0,47,0\n39,0,27,0,22,0,7,0,36,0,19,0\n56,0,6,0,21,0,61,0,50,0,41,0\n3,0,45,0,13,0,20,0,17,0,42,0\n58,0,52,0,1,0,49,0,12,0,34,0\n44,0,10,0,60,0,37,0,51,0,24,0\n9,0,53,0,2,0,54,0,32,0,26,0\n18,0,31,0,40,0,25,0,57,0,5,0\n28,0,30,0,46,0,59,0,48,0,62,0\n23,0,55,0,29,0,33,0,43,0,14,0\n16,0,11,0,4,0,15,0,35,0,21,0\n34,1,24,0,26,0,10,1,41,0,8,0\n40,1,1,0,27,0,3,1,61,0,32,0\n18,0,45,0,59,0,50,0,49,0,44,0\n33,0,47,0,5,0,28,0,17,0,51,0\n30,0,52,0,48,0,36,0,29,0,25,0\n35,0,23,0,54,0,37,0,58,0,31,0\n14,0,62,0,13,0,56,0,7,0,39,0\n12,0,60,0,11,0,9,0,43,0,22,0\n55,0,2,0,6,0,42,0,16,0,46,0\n15,0,20,0,53,0,19,0,57,0,38,0\n17,0,59,0,50,0,23,0,34,0,61,0\n1,0,29,0,35,0,49,0,24,0,62,0\n26,0,13,0,8,0,11,0,30,0,21,0\n9,0,14,0,3,0,5,0,6,0,27,0\n2,0,47,0,32,0,37,0,22,0,18,0\n42,0,44,0,25,0,10,0,19,0,58,0\n55,0,16,0,48,0,12,0,7,0,41,0\n54,0,57,0,36,0,43,0,51,0,4,0\n15,0,31,0,46,0,45,0,33,0,39,0\n53,0,56,0,52,0,40,0,28,0,20,0\n38,0,10,0,59,0,60,0,29,0,13,0\n32,0,19,0,8,0,3,0,7,0,2,0\n47,0,57,0,11,0,16,0,44,0,1,0\n48,0,26,0,43,0,35,0,27,0,17,0\n21,0,34,0,39,0,28,0,24,0,56,0\n40,0,37,0,4,0,52,0,38,0,45,0\n49,0,20,0,54,0,55,0,25,0,22,0\n18,0,61,0,62,0,58,0,33,0,9,0\n31,0,50,0,60,0,36,0,42,0,14,0\n51,0,6,0,53,0,15,0,30,0,12,0\n23,0,41,0,32,0,5,0,46,0,29,0\n52,0,57,0,34,0,13,0,27,0,48,0\n55,0,18,0,28,0,38,0,1,0,26,0\n35,0,58,0,2,0,60,0,25,0,14,0\n12,0,39,0,4,0,47,0,19,0,17,0\n51,0,46,0,45,0,16,0,9,0,56,0\n59,0,20,0,36,0,37,0,54,0,21,0\n41,0,42,0,24,0,53,0,23,0,40,0\n43,0,3,0,50,0,10,0,7,0,30,0\n49,0,6,0,61,0,33,0,31,0,11,0\n22,0,44,0,62,0,8,0,15,0,5,0\n4,0,48,0,58,0,26,0,51,0,59,0\n57,0,12,0,2,0,29,0,21,0,45,0\n39,0,35,0,55,0,23,0,52,0,18,0\n19,0,42,0,34,0,47,0,46,0,6,0\n61,0,13,0,33,0,40,0,54,0,5,0\n62,0,25,0,11,0,27,0,28,0,50,0\n41,0,56,0,3,0,60,0,49,0,36,0\n24,0,15,0,32,0,30,0,14,0,20,0\n44,0,9,0,38,0,17,0,31,0,7,0\n1,0,37,0,43,0,22,0,53,0,16,0\n8,0,6,0,48,0,10,0,45,0,54,0\n36,0,46,0,11,0,58,0,47,0,3,0\n5,0,12,0,50,0,2,0,4,0,27,0\n33,0,59,0,41,0,32,0,38,0,35,0\n44,0,55,0,53,0,34,0,25,0,13,0\n8,0,28,0,1,0,23,0,9,0,19,0\n18,0,10,0,42,0,21,0,52,0,14,0\n30,0,17,0,61,0,56,0,57,0,37,0\n51,0,29,0,62,0,20,0,31,0,22,0\n49,0,26,0,7,0,40,0,15,0,60,0\n43,0,16,0,25,0,24,0,39,0,5,0\n21,0,36,0,44,0,33,0,46,0,35,0\n9,0,47,0,30,0,10,0,4,0,52,0\n14,0,31,0,23,0,53,0,12,0,3,0\n56,0,2,0,17,0,55,0,15,0,59,0\n7,0,27,0,42,0,1,0,49,0,51,0\n11,0,24,0,13,0,19,0,18,0,48,0\n34,0,38,0,58,0,43,0,32,0,45,0\n61,0,60,0,16,0,20,0,8,0,62,0\n22,0,50,0,54,0,57,0,28,0,41,0\n37,0,29,0,39,0,40,0,26,0,6,0\n21,0,59,0,25,0,55,0,1,0,3,0\n5,0,7,0,45,0,36,0,53,0,35,0\n17,0,46,0,38,0,10,0,16,0,27,0\n41,0,34,0,51,0,18,0,2,0,11,0\n47,0,60,0,23,0,56,0,40,0,30,0\n44,0,33,0,48,0,14,0,4,0,22,0\n57,0,58,0,24,0,13,0,9,0,50,0\n20,0,12,0,37,0,39,0,49,0,8,0\n28,0,54,0,15,0,29,0,42,0,32,0\n26,0,19,0,52,0,43,0,31,0,61,0\n62,0,21,0,38,0,6,0,44,0,23,0\n27,0,45,0,53,0,60,0,55,0,33,0\n14,0,49,0,37,0,13,0,46,0,57,0\n39,0,40,0,9,0,48,0,50,0,2,0\n31,0,42,0,5,0,11,0,59,0,8,0\n32,0,36,0,58,0,17,0,6,0,24,0\n62,0,15,0,41,0,52,0,43,0,47,0\n20,0,4,0,29,0,18,0,34,0,7,0\n26,0,16,0,28,0,51,0,3,0,54,0\n35,0,10,0,25,0,61,0,12,0,56,0\n19,0,22,0,45,0,1,0,30,0,23,0\n5,0,60,0,53,0,38,0,48,0,39,0\n43,0,17,0,11,0,40,0,2,0,14,0\n52,0,8,0,7,0,59,0,6,0,57,0\n51,0,50,0,25,0,37,0,32,0,46,0\n24,0,12,0,18,0,62,0,54,0,42,0\n10,0,1,0,34,0,15,0,33,0,36,0\n4,0,30,0,55,0,28,0,58,0,61,0\n3,0,35,0,26,0,13,0,47,0,22,0\n27,0,56,0,20,0,31,0,44,0,41,0\n16,0,19,0,21,0,49,0,9,0,29,0\n8,0,18,0,17,0,46,0,53,0,43,0\n32,0,57,0,10,0,39,0,23,0,11,0\n40,0,3,0,36,0,55,0,12,0,62,0\n13,0,31,0,6,0,60,0,1,0,4,0\n28,0,34,0,14,0,16,0,35,0,51,0\n29,0,33,0,52,0,56,0,50,0,19,0\n15,0,7,0,9,0,25,0,41,0,37,0\n59,0,61,0,27,0,47,0,45,0,24,0\n49,0,38,0,30,0,54,0,2,0,44,0\n5,0,20,0,48,0,42,0,26,0,58,0\n22,0,34,0,40,0,21,0,10,0,3,0\n"
  },
  {
    "path": "schedules/62_14.csv",
    "content": "4,0,5,0,49,0,31,0,55,0,51,0\n8,0,7,0,41,0,36,0,54,0,25,0\n24,0,42,0,45,0,3,0,53,0,11,0\n44,0,56,0,62,0,12,0,58,0,29,0\n9,0,60,0,32,0,21,0,61,0,33,0\n30,0,46,0,26,0,1,0,27,0,2,0\n14,0,13,0,59,0,6,0,35,0,28,0\n47,0,15,0,22,0,43,0,52,0,20,0\n18,0,40,0,39,0,57,0,50,0,16,0\n17,0,37,0,34,0,19,0,23,0,10,0\n48,0,58,0,5,0,38,0,2,0,46,0\n13,0,7,0,35,0,61,0,62,0,24,0\n31,0,32,0,8,0,3,0,1,0,56,0\n50,0,12,0,11,0,29,0,15,0,41,0\n25,0,43,0,49,0,33,0,9,0,19,0\n55,0,53,0,57,0,34,0,54,0,22,0\n16,0,37,0,48,0,21,0,30,0,14,0\n39,0,47,0,60,0,17,0,42,0,18,0\n4,0,20,0,28,0,45,0,27,0,6,0\n36,0,44,0,51,0,52,0,40,0,26,0\n23,0,59,0,22,0,10,0,38,0,54,0\n49,1,55,0,8,0,41,1,53,0,19,0\n42,0,48,0,34,0,11,0,57,0,62,0\n56,0,25,0,58,0,31,0,15,0,61,0\n46,0,28,0,24,0,26,0,20,0,21,0\n33,0,27,0,47,0,50,0,14,0,29,0\n37,0,4,0,43,0,36,0,35,0,2,0\n45,0,17,0,9,0,38,0,32,0,6,0\n51,0,12,0,18,0,40,0,13,0,30,0\n60,0,52,0,3,0,7,0,39,0,23,0\n1,0,16,0,44,0,59,0,10,0,5,0\n53,0,42,0,54,0,14,0,56,0,35,0\n19,0,36,0,47,0,62,0,31,0,46,0\n61,0,43,0,27,0,6,0,24,0,40,0\n25,0,13,0,20,0,55,0,60,0,48,0\n58,0,50,0,1,0,17,0,49,0,23,0\n16,0,34,0,2,0,15,0,51,0,39,0\n26,0,45,0,5,0,10,0,33,0,41,0\n11,0,7,0,22,0,32,0,44,0,30,0\n8,0,52,0,12,0,59,0,4,0,57,0\n3,0,29,0,28,0,18,0,9,0,37,0\n38,0,1,0,51,0,21,0,35,0,25,0\n48,0,40,0,54,0,45,0,31,0,39,0\n22,0,46,0,17,0,42,0,36,0,13,0\n57,0,27,0,41,0,23,0,58,0,32,0\n60,0,33,0,53,0,2,0,6,0,44,0\n61,0,20,0,14,0,18,0,62,0,59,0\n30,0,37,0,56,0,15,0,49,0,24,0\n43,0,7,0,5,0,28,0,8,0,34,0\n4,0,19,0,50,0,21,0,11,0,9,0\n55,0,26,0,29,0,16,0,38,0,52,0\n47,0,12,0,35,0,10,0,3,0,48,0\n54,0,33,0,30,0,20,0,1,0,42,0\n32,0,2,0,24,0,40,0,59,0,49,0\n17,0,44,0,21,0,34,0,56,0,27,0\n15,0,9,0,55,0,7,0,36,0,29,0\n47,0,58,0,11,0,22,0,25,0,6,0\n12,0,31,0,16,0,23,0,53,0,61,0\n60,0,10,0,50,0,28,0,51,0,52,0\n46,0,45,0,41,0,43,0,57,0,14,0\n8,0,38,0,18,0,37,0,19,0,62,0\n5,0,3,0,39,0,26,0,4,0,13,0\n11,0,16,0,42,0,1,0,55,0,7,0\n48,0,15,0,59,0,27,0,53,0,49,0\n31,0,2,0,33,0,57,0,17,0,28,0\n51,0,60,0,45,0,37,0,46,0,12,0\n26,0,43,0,62,0,47,0,32,0,54,0\n18,0,22,0,4,0,41,0,24,0,56,0\n29,0,19,0,20,0,35,0,23,0,40,0\n44,0,52,0,25,0,9,0,39,0,14,0\n50,0,21,0,38,0,61,0,10,0,13,0\n3,0,30,0,6,0,5,0,36,0,34,0\n58,0,49,0,33,0,8,0,4,0,16,0\n7,0,19,0,2,0,22,0,12,0,45,0\n44,0,55,0,54,0,47,0,18,0,24,0\n61,0,40,0,17,0,26,0,14,0,1,0\n48,0,51,0,23,0,59,0,9,0,43,0\n46,0,57,0,3,0,29,0,25,0,62,0\n42,0,21,0,31,0,13,0,52,0,15,0\n27,0,37,0,38,0,34,0,20,0,41,0\n10,0,28,0,39,0,53,0,30,0,58,0\n35,0,32,0,11,0,8,0,5,0,60,0\n50,0,6,0,59,0,36,0,56,0,55,0\n33,0,16,0,40,0,9,0,22,0,3,0\n29,0,61,0,52,0,45,0,54,0,37,0\n21,0,28,0,1,0,4,0,47,0,44,0\n5,0,53,0,38,0,17,0,30,0,43,0\n34,0,12,0,24,0,36,0,31,0,27,0\n10,0,14,0,62,0,19,0,60,0,15,0\n18,0,23,0,2,0,25,0,11,0,8,0\n41,0,49,0,35,0,13,0,46,0,39,0\n57,0,48,0,26,0,7,0,56,0,50,0\n6,0,20,0,58,0,42,0,51,0,32,0\n37,0,3,0,31,0,44,0,22,0,38,0\n55,0,62,0,23,0,30,0,28,0,45,0\n36,0,52,0,33,0,35,0,1,0,18,0\n19,0,61,0,57,0,26,0,27,0,11,0\n21,0,12,0,15,0,54,0,5,0,17,0\n2,0,51,0,49,0,42,0,6,0,29,0\n39,0,8,0,58,0,48,0,14,0,24,0\n32,0,46,0,59,0,34,0,47,0,50,0\n13,0,43,0,56,0,60,0,16,0,20,0\n10,0,53,0,40,0,25,0,7,0,4,0\n9,0,49,0,1,0,41,0,12,0,62,0\n17,0,38,0,24,0,2,0,57,0,52,0\n18,0,15,0,45,0,58,0,26,0,35,0\n14,0,11,0,54,0,51,0,33,0,3,0\n31,0,59,0,30,0,60,0,29,0,43,0\n7,0,53,0,9,0,46,0,47,0,20,0\n50,0,25,0,5,0,37,0,22,0,42,0\n36,0,23,0,6,0,21,0,39,0,16,0\n19,0,40,0,56,0,55,0,41,0,28,0\n48,0,32,0,4,0,44,0,61,0,34,0\n27,0,10,0,29,0,8,0,13,0,24,0\n53,0,59,0,26,0,37,0,60,0,58,0\n38,0,45,0,35,0,16,0,49,0,47,0\n31,0,57,0,25,0,9,0,50,0,30,0\n21,0,7,0,40,0,43,0,18,0,11,0\n10,0,4,0,36,0,2,0,14,0,42,0\n23,0,34,0,52,0,33,0,56,0,5,0\n55,0,61,0,6,0,8,0,15,0,46,0\n44,0,41,0,3,0,48,0,17,0,20,0\n28,0,32,0,13,0,54,0,19,0,12,0\n1,0,39,0,62,0,22,0,51,0,27,0\n36,0,60,0,14,0,38,0,58,0,7,0\n11,0,6,0,46,0,10,0,52,0,31,0\n16,0,23,0,15,0,24,0,4,0,33,0\n54,0,57,0,56,0,37,0,47,0,5,0\n51,0,9,0,35,0,27,0,17,0,55,0\n41,0,30,0,2,0,59,0,21,0,3,0\n28,0,22,0,19,0,39,0,48,0,61,0\n50,0,44,0,42,0,45,0,43,0,8,0\n25,0,26,0,34,0,12,0,49,0,20,0\n29,0,13,0,18,0,32,0,53,0,1,0\n62,0,54,0,60,0,40,0,46,0,4,0\n41,0,47,0,61,0,5,0,51,0,30,0\n17,0,39,0,33,0,37,0,59,0,7,0\n57,0,22,0,20,0,49,0,21,0,10,0\n9,0,23,0,56,0,2,0,11,0,13,0\n62,0,8,0,35,0,26,0,31,0,50,0\n24,0,29,0,1,0,48,0,6,0,19,0\n52,0,27,0,32,0,16,0,25,0,53,0\n3,0,12,0,14,0,55,0,58,0,43,0\n38,0,15,0,42,0,44,0,28,0,40,0\n34,0,45,0,49,0,18,0,36,0,41,0\n"
  },
  {
    "path": "schedules/62_2.csv",
    "content": "24,0,14,0,8,0,27,0,36,0,60,0\n59,0,18,0,61,0,42,0,34,0,43,0\n29,0,20,0,46,0,13,0,12,0,54,0\n23,0,62,0,51,0,4,0,19,0,38,0\n3,0,28,0,44,0,52,0,30,0,53,0\n56,0,26,0,33,0,17,0,57,0,15,0\n11,0,37,0,9,0,6,0,22,0,39,0\n45,0,47,0,50,0,41,0,21,0,32,0\n55,0,16,0,1,0,40,0,35,0,58,0\n48,0,10,0,2,0,7,0,5,0,25,0\n49,0,34,0,12,0,31,0,33,0,4,0\n14,0,52,0,43,0,39,0,62,0,13,0\n24,0,22,0,41,0,61,0,46,0,51,0\n40,0,27,0,26,0,23,0,9,0,50,0\n19,0,7,0,17,0,21,0,53,0,36,0\n56,0,29,0,38,0,1,0,44,0,2,0\n30,0,18,0,10,0,16,0,8,0,47,0\n35,0,15,0,42,0,20,0,3,0,11,0\n5,0,6,0,49,0,32,0,54,0,55,0\n58,0,45,0,37,0,28,0,59,0,48,0\n60,0,57,0,46,1,31,0,25,0,38,1\n"
  },
  {
    "path": "schedules/62_3.csv",
    "content": "27,0,49,0,13,0,18,0,1,0,15,0\n51,0,31,0,45,0,50,0,42,0,35,0\n8,0,40,0,22,0,25,0,2,0,34,0\n48,0,52,0,36,0,24,0,10,0,38,0\n37,0,17,0,33,0,56,0,5,0,59,0\n60,0,21,0,7,0,39,0,44,0,16,0\n62,0,14,0,57,0,29,0,30,0,46,0\n47,0,26,0,43,0,12,0,53,0,61,0\n20,0,4,0,6,0,54,0,3,0,58,0\n32,0,55,0,23,0,9,0,41,0,19,0\n11,0,7,0,17,0,28,0,15,0,25,0\n39,0,37,0,30,0,22,0,10,0,45,0\n43,0,29,0,21,0,2,0,31,0,52,0\n56,0,49,0,62,0,26,0,54,0,51,0\n3,0,34,0,19,0,13,0,48,0,16,0\n9,0,33,0,24,0,61,0,58,0,27,0\n20,0,53,0,44,0,28,0,57,0,23,0\n8,0,35,0,4,0,47,0,60,0,41,0\n50,0,38,0,46,0,5,0,32,0,11,0\n1,0,14,0,42,0,55,0,40,0,59,0\n18,0,12,0,16,0,6,0,36,0,33,0\n39,0,2,0,13,0,26,0,20,0,9,0\n21,0,51,0,58,0,34,0,37,0,15,0\n3,0,10,0,8,0,11,0,62,0,27,0\n41,0,38,0,44,0,42,0,22,0,43,0\n12,0,52,0,32,0,49,0,17,0,57,0\n40,0,54,0,18,0,19,0,45,0,29,0\n5,0,47,0,31,0,7,0,23,0,14,0\n56,0,61,0,28,0,36,0,55,0,60,0\n48,0,59,0,50,0,53,0,30,0,4,0\n25,0,1,0,46,0,6,0,24,0,35,0\n"
  },
  {
    "path": "schedules/62_4.csv",
    "content": "18,0,47,0,43,0,25,0,8,0,30,0\n12,0,52,0,23,0,31,0,45,0,16,0\n40,0,26,0,36,0,6,0,10,0,60,0\n41,0,59,0,11,0,56,0,21,0,14,0\n39,0,46,0,34,0,17,0,54,0,20,0\n38,0,61,0,62,0,57,0,53,0,5,0\n35,0,29,0,37,0,55,0,19,0,7,0\n28,0,24,0,50,0,13,0,9,0,27,0\n44,0,51,0,48,0,3,0,15,0,49,0\n2,0,58,0,1,0,42,0,4,0,22,0\n32,0,62,0,60,0,33,0,11,0,23,0\n20,0,19,0,8,0,12,0,59,0,38,0\n16,0,17,0,50,0,41,0,10,0,55,0\n25,0,27,0,34,0,57,0,15,0,26,0\n36,0,52,0,1,0,29,0,21,0,48,0\n44,0,14,0,61,0,18,0,40,0,42,0\n7,0,5,0,28,0,47,0,32,0,45,0\n31,0,33,0,24,0,39,0,4,0,49,0\n13,0,58,0,3,0,46,0,53,0,43,0\n2,0,9,0,56,0,51,0,37,0,30,0\n54,0,22,0,14,0,35,0,6,0,48,0\n32,1,18,0,15,0,38,1,29,0,16,0\n42,1,7,0,26,0,52,1,8,0,11,0\n20,0,24,0,23,0,3,0,36,0,61,0\n10,0,5,0,49,0,2,0,34,0,12,0\n13,0,6,0,62,0,30,0,4,0,41,0\n55,0,40,0,46,0,57,0,33,0,59,0\n21,0,60,0,51,0,45,0,58,0,50,0\n35,0,39,0,53,0,44,0,25,0,9,0\n43,0,31,0,1,0,37,0,28,0,54,0\n17,0,47,0,27,0,22,0,56,0,19,0\n30,0,32,0,12,0,36,0,14,0,46,0\n11,0,55,0,6,0,51,0,18,0,24,0\n50,0,4,0,38,0,44,0,7,0,23,0\n29,0,25,0,42,0,20,0,33,0,5,0\n53,0,56,0,54,0,49,0,52,0,40,0\n31,0,9,0,3,0,26,0,17,0,21,0\n57,0,16,0,48,0,47,0,13,0,2,0\n35,0,8,0,15,0,58,0,10,0,28,0\n39,0,61,0,41,0,19,0,1,0,60,0\n59,0,45,0,22,0,34,0,37,0,62,0\n27,0,32,0,42,0,43,0,38,0,52,0\n"
  },
  {
    "path": "schedules/62_5.csv",
    "content": "18,0,56,0,60,0,7,0,42,0,22,0\n5,0,2,0,41,0,8,0,40,0,55,0\n59,0,4,0,29,0,49,0,52,0,14,0\n48,0,31,0,38,0,58,0,6,0,1,0\n3,0,13,0,54,0,24,0,10,0,39,0\n27,0,35,0,53,0,9,0,12,0,62,0\n26,0,15,0,30,0,61,0,34,0,47,0\n16,0,33,0,11,0,17,0,23,0,21,0\n20,0,44,0,25,0,43,0,37,0,46,0\n57,0,36,0,19,0,51,0,28,0,45,0\n50,0,27,0,38,0,32,0,42,0,4,0\n2,0,30,0,9,0,7,0,54,0,29,0\n49,0,48,0,18,0,3,0,47,0,8,0\n56,0,25,0,10,0,52,0,5,0,21,0\n41,0,62,0,61,0,24,0,43,0,6,0\n31,0,13,0,53,0,57,0,11,0,22,0\n58,0,36,0,12,0,55,0,16,0,15,0\n20,0,33,0,40,0,19,0,50,0,35,0\n46,0,14,0,28,0,17,0,26,0,60,0\n34,0,39,0,23,0,45,0,44,0,59,0\n1,0,37,0,61,0,32,0,51,0,49,0\n27,1,24,0,47,0,21,1,36,0,31,0\n12,0,54,0,33,0,38,0,56,0,8,0\n35,0,42,0,6,0,29,0,11,0,46,0\n15,0,25,0,28,0,23,0,7,0,40,0\n52,0,9,0,45,0,60,0,43,0,48,0\n4,0,10,0,16,0,57,0,44,0,1,0\n26,0,55,0,32,0,19,0,39,0,18,0\n37,0,17,0,22,0,41,0,59,0,30,0\n51,0,5,0,50,0,62,0,13,0,58,0\n34,0,3,0,53,0,20,0,2,0,14,0\n35,0,49,0,43,0,36,0,7,0,10,0\n21,0,61,0,38,0,55,0,44,0,9,0\n27,0,8,0,11,0,26,0,25,0,59,0\n47,0,22,0,51,0,46,0,23,0,52,0\n45,0,32,0,24,0,30,0,20,0,56,0\n39,0,1,0,42,0,5,0,14,0,15,0\n34,0,54,0,17,0,58,0,18,0,4,0\n50,0,16,0,41,0,31,0,3,0,28,0\n6,0,19,0,13,0,60,0,12,0,2,0\n62,0,48,0,37,0,33,0,29,0,57,0\n40,0,59,0,46,0,53,0,61,0,36,0\n51,0,8,0,35,0,24,0,4,0,15,0\n7,0,52,0,11,0,1,0,3,0,55,0\n39,0,21,0,2,0,43,0,50,0,22,0\n44,0,26,0,12,0,48,0,41,0,42,0\n57,0,23,0,58,0,27,0,56,0,49,0\n9,0,32,0,33,0,28,0,34,0,13,0\n17,0,47,0,29,0,20,0,5,0,38,0\n30,0,19,0,14,0,62,0,10,0,31,0\n45,0,6,0,25,0,53,0,16,0,18,0\n60,0,37,0,21,0,54,0,40,0,27,0\n"
  },
  {
    "path": "schedules/62_6.csv",
    "content": "15,0,1,0,60,0,45,0,35,0,28,0\n12,0,32,0,34,0,57,0,9,0,36,0\n2,0,50,0,48,0,25,0,43,0,11,0\n30,0,39,0,3,0,27,0,5,0,10,0\n13,0,42,0,20,0,40,0,16,0,58,0\n4,0,56,0,14,0,49,0,47,0,29,0\n55,0,53,0,38,0,6,0,18,0,8,0\n23,0,51,0,44,0,26,0,52,0,24,0\n41,0,37,0,21,0,22,0,54,0,62,0\n46,0,7,0,59,0,17,0,31,0,19,0\n33,0,4,0,58,0,61,0,32,0,2,0\n45,0,5,0,40,0,56,0,38,0,35,0\n13,0,27,0,24,0,14,0,11,0,53,0\n10,0,9,0,47,0,42,0,41,0,43,0\n62,0,46,0,26,0,16,0,15,0,12,0\n48,0,49,0,6,0,34,0,17,0,28,0\n1,0,23,0,39,0,29,0,57,0,18,0\n25,0,20,0,22,0,30,0,19,0,51,0\n52,0,60,0,55,0,50,0,37,0,31,0\n44,0,36,0,54,0,7,0,3,0,61,0\n59,0,8,0,26,0,33,0,21,0,14,0\n29,0,2,0,6,0,24,0,12,0,42,0\n19,0,16,0,18,0,43,0,49,0,27,0\n31,0,51,0,45,0,58,0,62,0,9,0\n28,0,11,0,32,0,5,0,7,0,37,0\n15,0,20,0,36,0,39,0,48,0,21,0\n61,0,34,0,22,0,56,0,55,0,10,0\n17,0,60,0,33,0,23,0,13,0,41,0\n47,0,57,0,46,0,44,0,25,0,38,0\n52,0,3,0,53,0,59,0,35,0,4,0\n50,0,30,0,8,0,54,0,40,0,1,0\n55,0,43,0,14,0,5,0,15,0,51,0\n32,0,22,0,17,0,26,0,45,0,39,0\n42,0,62,0,60,0,48,0,27,0,61,0\n44,0,10,0,33,0,20,0,31,0,12,0\n38,0,37,0,34,0,1,0,24,0,4,0\n49,0,46,0,40,0,3,0,11,0,21,0\n13,0,28,0,47,0,52,0,30,0,18,0\n16,0,41,0,25,0,29,0,8,0,36,0\n56,0,7,0,9,0,2,0,23,0,53,0\n19,0,6,0,35,0,57,0,58,0,50,0\n54,0,11,0,55,0,59,0,45,0,42,0\n3,0,51,0,18,0,37,0,48,0,33,0\n44,0,43,0,8,0,4,0,13,0,39,0\n53,0,12,0,61,0,40,0,17,0,25,0\n5,0,49,0,36,0,62,0,23,0,50,0\n58,0,14,0,7,0,60,0,46,0,22,0\n2,0,35,0,41,0,34,0,30,0,26,0\n47,0,16,0,21,0,6,0,1,0,31,0\n52,0,29,0,27,0,38,0,20,0,9,0\n15,0,24,0,28,0,57,0,59,0,10,0\n56,0,54,0,48,0,32,0,19,0,13,0\n30,0,37,0,43,0,36,0,45,0,46,0\n62,0,40,0,39,0,55,0,47,0,7,0\n21,0,58,0,29,0,53,0,34,0,44,0\n35,0,61,0,31,0,24,0,49,0,8,0\n11,0,15,0,22,0,33,0,52,0,6,0\n42,0,19,0,28,0,3,0,23,0,14,0\n57,0,5,0,17,0,20,0,54,0,2,0\n38,0,50,0,16,0,51,0,10,0,32,0\n18,0,25,0,4,0,60,0,26,0,9,0\n1,0,12,0,27,0,59,0,41,0,56,0\n"
  },
  {
    "path": "schedules/62_7.csv",
    "content": "5,0,19,0,31,0,58,0,51,0,54,0\n62,0,47,0,15,0,17,0,46,0,41,0\n61,0,49,0,1,0,33,0,39,0,42,0\n14,0,28,0,7,0,13,0,59,0,20,0\n21,0,8,0,37,0,16,0,24,0,38,0\n25,0,35,0,50,0,32,0,3,0,4,0\n48,0,34,0,52,0,44,0,30,0,2,0\n55,0,6,0,12,0,9,0,23,0,60,0\n22,0,29,0,56,0,11,0,10,0,57,0\n43,0,36,0,53,0,45,0,26,0,40,0\n18,0,16,0,31,0,27,0,61,0,47,0\n34,0,32,0,8,0,58,0,15,0,14,0\n41,0,7,0,39,0,21,0,9,0,25,0\n51,0,1,0,30,0,10,0,59,0,35,0\n38,0,56,0,11,0,33,0,26,0,46,0\n42,0,20,0,62,0,18,0,54,0,43,0\n23,0,27,0,13,0,29,0,52,0,5,0\n37,0,3,0,48,0,45,0,22,0,49,0\n57,0,44,0,60,0,53,0,17,0,4,0\n55,0,40,0,50,0,19,0,24,0,12,0\n6,0,2,0,16,0,28,0,36,0,42,0\n9,1,14,0,31,0,56,1,46,0,35,0\n37,1,20,0,26,0,32,1,52,0,41,0\n38,0,4,0,45,0,51,0,29,0,15,0\n57,0,3,0,61,0,24,0,30,0,7,0\n60,0,10,0,48,0,21,0,50,0,18,0\n47,0,19,0,44,0,6,0,43,0,13,0\n40,0,33,0,23,0,34,0,22,0,62,0\n5,0,11,0,1,0,8,0,25,0,28,0\n53,0,59,0,12,0,27,0,49,0,2,0\n39,0,17,0,54,0,55,0,36,0,58,0\n21,0,4,0,6,0,56,0,20,0,61,0\n46,0,45,0,60,0,32,0,16,0,19,0\n29,0,40,0,30,0,50,0,8,0,31,0\n48,0,25,0,57,0,15,0,12,0,33,0\n38,0,17,0,35,0,34,0,42,0,7,0\n14,0,52,0,54,0,47,0,53,0,22,0\n62,0,2,0,37,0,26,0,55,0,1,0\n10,0,58,0,49,0,23,0,43,0,28,0\n9,0,44,0,24,0,51,0,27,0,11,0\n41,0,59,0,3,0,5,0,36,0,18,0\n13,0,22,0,38,0,39,0,31,0,32,0\n45,0,17,0,33,0,2,0,50,0,20,0\n47,0,49,0,25,0,60,0,26,0,34,0\n23,0,51,0,19,0,57,0,14,0,37,0\n7,0,18,0,12,0,16,0,52,0,11,0\n53,0,15,0,9,0,42,0,13,0,30,0\n29,0,59,0,58,0,62,0,44,0,21,0\n5,0,61,0,55,0,35,0,43,0,48,0\n46,0,3,0,10,0,39,0,8,0,6,0\n54,0,27,0,28,0,4,0,41,0,40,0\n36,0,24,0,23,0,1,0,56,0,15,0\n9,0,26,0,18,0,19,0,29,0,17,0\n61,0,34,0,58,0,37,0,11,0,53,0\n46,0,20,0,5,0,22,0,12,0,30,0\n6,0,59,0,25,0,48,0,54,0,38,0\n13,0,50,0,16,0,62,0,51,0,49,0\n56,0,42,0,41,0,55,0,44,0,8,0\n21,0,2,0,47,0,40,0,57,0,32,0\n43,0,27,0,1,0,3,0,60,0,14,0\n4,0,7,0,36,0,31,0,10,0,33,0\n52,0,35,0,28,0,45,0,39,0,24,0\n53,0,29,0,20,0,25,0,16,0,55,0\n49,0,30,0,11,0,6,0,17,0,32,0\n42,0,51,0,3,0,47,0,56,0,48,0\n10,0,14,0,12,0,61,0,62,0,38,0\n33,0,9,0,43,0,52,0,8,0,59,0\n37,0,39,0,15,0,40,0,5,0,60,0\n13,0,2,0,24,0,46,0,4,0,58,0\n31,0,57,0,45,0,1,0,41,0,34,0\n22,0,36,0,35,0,19,0,27,0,21,0\n54,0,44,0,26,0,23,0,7,0,50,0\n18,0,56,0,32,0,28,0,9,0,37,0\n"
  },
  {
    "path": "schedules/62_8.csv",
    "content": "17,0,37,0,54,0,60,0,10,0,30,0\n14,0,7,0,32,0,51,0,43,0,26,0\n53,0,41,0,25,0,1,0,36,0,50,0\n27,0,18,0,28,0,12,0,5,0,47,0\n15,0,11,0,61,0,48,0,62,0,40,0\n2,0,24,0,38,0,23,0,45,0,42,0\n22,0,29,0,56,0,44,0,9,0,20,0\n16,0,35,0,8,0,52,0,21,0,13,0\n3,0,58,0,59,0,34,0,4,0,6,0\n19,0,49,0,39,0,46,0,57,0,33,0\n55,0,28,0,40,0,31,0,38,0,51,0\n44,0,47,0,60,0,10,0,1,0,32,0\n7,0,23,0,18,0,13,0,53,0,37,0\n50,0,52,0,26,0,12,0,11,0,54,0\n15,0,33,0,22,0,14,0,57,0,3,0\n48,0,24,0,19,0,31,0,41,0,5,0\n30,0,35,0,56,0,59,0,45,0,4,0\n6,0,58,0,20,0,46,0,25,0,62,0\n34,0,55,0,49,0,17,0,29,0,2,0\n9,0,27,0,61,0,43,0,36,0,16,0\n8,0,21,0,54,0,39,0,42,0,28,0\n47,1,37,0,57,0,14,1,40,0,13,0\n18,0,1,0,33,0,56,0,52,0,58,0\n10,0,34,0,24,0,7,0,35,0,11,0\n50,0,12,0,48,0,62,0,16,0,38,0\n19,0,4,0,9,0,42,0,27,0,8,0\n43,0,60,0,55,0,59,0,15,0,41,0\n29,0,6,0,49,0,23,0,30,0,5,0\n26,0,46,0,36,0,44,0,3,0,45,0\n31,0,32,0,53,0,20,0,17,0,21,0\n22,0,25,0,61,0,51,0,39,0,2,0\n42,0,47,0,16,0,41,0,55,0,58,0\n43,0,56,0,37,0,38,0,48,0,6,0\n36,0,49,0,8,0,7,0,50,0,15,0\n9,0,35,0,28,0,3,0,17,0,11,0\n57,0,25,0,34,0,12,0,61,0,30,0\n52,0,39,0,31,0,27,0,14,0,53,0\n13,0,51,0,33,0,60,0,5,0,45,0\n23,0,24,0,4,0,32,0,54,0,22,0\n20,0,40,0,2,0,59,0,18,0,44,0\n26,0,1,0,21,0,29,0,19,0,62,0\n46,0,41,0,61,0,10,0,28,0,53,0\n3,0,38,0,25,0,7,0,60,0,27,0\n43,0,5,0,11,0,58,0,23,0,57,0\n16,0,20,0,45,0,8,0,14,0,34,0\n55,0,26,0,30,0,9,0,48,0,33,0\n39,0,32,0,29,0,18,0,37,0,36,0\n12,0,4,0,21,0,46,0,24,0,40,0\n50,0,13,0,2,0,10,0,56,0,19,0\n22,0,31,0,59,0,49,0,1,0,47,0\n51,0,42,0,62,0,44,0,17,0,52,0\n15,0,6,0,18,0,54,0,35,0,61,0\n34,0,30,0,48,0,14,0,46,0,21,0\n11,0,33,0,36,0,20,0,4,0,38,0\n58,0,40,0,60,0,53,0,49,0,24,0\n3,0,51,0,56,0,8,0,41,0,12,0\n28,0,62,0,52,0,19,0,22,0,7,0\n39,0,59,0,23,0,16,0,10,0,9,0\n13,0,29,0,44,0,54,0,43,0,31,0\n15,0,45,0,17,0,50,0,47,0,25,0\n32,0,57,0,27,0,2,0,55,0,6,0\n5,0,42,0,1,0,37,0,35,0,26,0\n14,0,62,0,41,0,9,0,49,0,18,0\n31,0,36,0,28,0,34,0,23,0,33,0\n40,0,19,0,54,0,56,0,16,0,25,0\n3,0,43,0,47,0,52,0,30,0,2,0\n51,0,45,0,58,0,27,0,21,0,37,0\n13,0,20,0,39,0,24,0,15,0,26,0\n42,0,10,0,12,0,53,0,6,0,22,0\n7,0,48,0,57,0,29,0,35,0,60,0\n17,0,32,0,46,0,38,0,59,0,8,0\n50,0,44,0,4,0,55,0,5,0,61,0\n11,0,20,0,30,0,1,0,51,0,27,0\n14,0,15,0,9,0,12,0,58,0,2,0\n45,0,7,0,41,0,39,0,6,0,40,0\n34,0,54,0,53,0,33,0,43,0,62,0\n56,0,8,0,23,0,47,0,61,0,26,0\n60,0,22,0,46,0,31,0,11,0,18,0\n5,0,21,0,10,0,52,0,25,0,55,0\n24,0,50,0,59,0,29,0,28,0,37,0\n1,0,17,0,16,0,36,0,57,0,4,0\n13,0,42,0,3,0,32,0,48,0,49,0\n44,0,38,0,14,0,19,0,35,0,47,0\n"
  },
  {
    "path": "schedules/62_9.csv",
    "content": "53,0,32,0,15,0,22,0,26,0,19,0\n39,0,13,0,56,0,16,0,6,0,2,0\n3,0,59,0,55,0,8,0,4,0,34,0\n60,0,62,0,1,0,33,0,11,0,5,0\n41,0,35,0,30,0,9,0,52,0,31,0\n14,0,48,0,25,0,21,0,54,0,36,0\n57,0,17,0,51,0,37,0,40,0,61,0\n58,0,7,0,44,0,29,0,49,0,45,0\n24,0,12,0,20,0,23,0,42,0,38,0\n47,0,46,0,18,0,10,0,28,0,27,0\n43,0,30,0,2,0,50,0,1,0,19,0\n4,0,39,0,21,0,17,0,22,0,54,0\n8,0,45,0,59,0,62,0,25,0,35,0\n37,0,23,0,31,0,33,0,60,0,3,0\n49,0,51,0,46,0,13,0,53,0,34,0\n41,0,14,0,7,0,57,0,44,0,38,0\n6,0,11,0,61,0,12,0,52,0,27,0\n15,0,28,0,29,0,24,0,48,0,55,0\n58,0,10,0,47,0,50,0,32,0,16,0\n56,0,36,0,43,0,5,0,20,0,9,0\n40,0,26,0,8,0,18,0,42,0,41,0\n57,0,34,0,45,0,27,0,22,0,2,0\n35,0,38,0,37,0,46,0,55,0,6,0\n13,0,11,0,44,0,32,0,17,0,4,0\n33,0,50,0,54,0,3,0,51,0,56,0\n29,0,10,0,61,0,26,0,23,0,36,0\n5,0,19,0,12,0,25,0,31,0,7,0\n39,0,9,0,48,0,53,0,24,0,62,0\n47,0,49,0,42,0,60,0,21,0,15,0\n52,0,20,0,16,0,18,0,1,0,14,0\n43,0,28,0,40,0,59,0,30,0,58,0\n33,0,36,0,12,0,26,0,4,0,57,0\n19,0,46,0,29,0,9,0,11,0,45,0\n27,0,38,0,8,0,17,0,15,0,31,0\n23,0,52,0,51,0,56,0,47,0,48,0\n54,0,6,0,53,0,18,0,30,0,7,0\n14,0,10,0,34,0,13,0,24,0,42,0\n1,0,22,0,20,0,25,0,40,0,49,0\n32,0,35,0,21,0,3,0,43,0,5,0\n60,0,37,0,50,0,44,0,39,0,28,0\n58,0,2,0,55,0,62,0,61,0,41,0\n16,0,26,0,42,0,59,0,48,0,11,0\n57,0,56,0,19,0,49,0,8,0,24,0\n29,0,30,0,22,0,13,0,38,0,47,0\n50,0,52,0,21,0,40,0,46,0,7,0\n12,0,58,0,3,0,9,0,15,0,18,0\n31,0,16,0,61,0,28,0,4,0,53,0\n41,0,17,0,34,0,25,0,43,0,33,0\n55,0,45,0,5,0,39,0,23,0,14,0\n60,0,27,0,36,0,59,0,54,0,32,0\n2,0,37,0,62,0,35,0,20,0,10,0\n6,0,51,0,24,0,1,0,44,0,21,0\n19,0,28,0,42,0,52,0,22,0,3,0\n18,0,49,0,31,0,11,0,39,0,43,0\n8,0,23,0,25,0,58,0,53,0,27,0\n60,0,40,0,38,0,10,0,45,0,56,0\n9,0,26,0,1,0,17,0,47,0,55,0\n48,0,7,0,13,0,61,0,33,0,35,0\n12,0,59,0,14,0,32,0,2,0,51,0\n44,0,46,0,54,0,57,0,5,0,62,0\n16,0,37,0,15,0,36,0,30,0,34,0\n41,0,20,0,4,0,6,0,50,0,29,0\n39,0,19,0,27,0,33,0,40,0,21,0\n18,0,28,0,23,0,49,0,17,0,2,0\n52,0,45,0,1,0,13,0,57,0,59,0\n25,0,32,0,42,0,37,0,56,0,46,0\n47,0,24,0,3,0,41,0,36,0,53,0\n31,0,26,0,6,0,14,0,62,0,58,0\n38,0,9,0,50,0,34,0,61,0,54,0\n11,0,20,0,30,0,44,0,48,0,8,0\n15,0,7,0,4,0,10,0,43,0,51,0\n35,0,5,0,29,0,22,0,16,0,12,0\n55,0,26,0,25,0,60,0,52,0,2,0\n23,0,41,0,54,0,19,0,13,0,37,0\n3,0,49,0,62,0,30,0,27,0,14,0\n20,0,61,0,28,0,33,0,45,0,15,0\n22,0,10,0,44,0,59,0,56,0,31,0\n17,0,1,0,36,0,42,0,58,0,35,0\n32,0,24,0,11,0,50,0,7,0,55,0\n21,0,51,0,38,0,9,0,8,0,16,0\n53,0,18,0,43,0,60,0,57,0,29,0\n34,0,40,0,5,0,47,0,6,0,4,0\n46,0,48,0,41,0,12,0,39,0,1,0\n25,0,36,0,13,0,31,0,28,0,50,0\n9,0,2,0,33,0,44,0,49,0,32,0\n16,0,24,0,43,0,37,0,45,0,26,0\n15,0,11,0,54,0,35,0,40,0,23,0\n62,0,56,0,21,0,29,0,12,0,34,0\n14,0,22,0,8,0,60,0,61,0,46,0\n3,0,17,0,53,0,10,0,52,0,6,0\n42,0,5,0,27,0,30,0,51,0,55,0\n58,0,18,0,4,0,38,0,48,0,19,0\n39,0,47,0,59,0,20,0,57,0,7,0\n"
  },
  {
    "path": "schedules/63_1.csv",
    "content": "30,0,61,0,25,0,39,0,33,0,52,0\n22,0,55,0,56,0,38,0,4,0,7,0\n5,0,12,0,20,0,24,0,62,0,60,0\n34,0,15,0,42,0,1,0,51,0,63,0\n18,0,13,0,36,0,44,0,16,0,26,0\n45,0,54,0,28,0,21,0,23,0,32,0\n46,0,6,0,14,0,27,0,41,0,58,0\n50,0,47,0,35,0,29,0,48,0,53,0\n40,0,37,0,49,0,10,0,31,0,2,0\n9,0,8,0,59,0,57,0,43,0,17,0\n19,0,3,0,15,1,11,0,25,1,54,1\n"
  },
  {
    "path": "schedules/63_10.csv",
    "content": "62,0,60,0,56,0,28,0,31,0,53,0\n52,0,32,0,4,0,54,0,34,0,36,0\n1,0,23,0,37,0,42,0,41,0,48,0\n14,0,26,0,2,0,8,0,24,0,15,0\n10,0,13,0,18,0,38,0,47,0,59,0\n25,0,3,0,19,0,50,0,21,0,45,0\n51,0,7,0,35,0,63,0,22,0,57,0\n20,0,30,0,58,0,39,0,55,0,17,0\n6,0,43,0,29,0,9,0,49,0,11,0\n5,0,16,0,33,0,44,0,12,0,61,0\n27,0,46,0,23,0,40,0,15,0,32,0\n60,0,41,0,25,0,57,0,2,0,52,0\n19,0,48,0,18,0,63,0,54,0,26,0\n56,0,43,0,1,0,13,0,37,0,21,0\n8,0,5,0,38,0,35,0,62,0,59,0\n50,0,10,0,27,0,16,0,17,0,30,0\n44,0,7,0,29,0,34,0,40,0,39,0\n14,0,42,0,28,0,3,0,9,0,6,0\n12,0,24,0,31,0,58,0,46,0,61,0\n22,0,53,0,36,0,20,0,49,0,47,0\n45,0,51,0,11,0,55,0,33,0,4,0\n60,0,48,0,8,0,27,0,7,0,38,0\n28,0,37,0,19,0,44,0,13,0,35,0\n42,0,62,0,43,0,12,0,2,0,29,0\n56,0,32,0,50,0,20,0,6,0,5,0\n26,0,45,0,9,0,41,0,40,0,61,0\n3,0,53,0,58,0,36,0,15,0,52,0\n47,0,57,0,17,0,33,0,54,0,11,0\n22,0,25,0,34,0,31,0,18,0,46,0\n1,0,63,0,14,0,23,0,10,0,55,0\n21,0,30,0,49,0,4,0,24,0,59,0\n39,0,16,0,36,0,51,0,56,0,13,0\n29,0,58,0,45,0,47,0,2,0,48,0\n62,0,6,0,37,0,22,0,40,0,33,0\n12,0,34,0,38,0,3,0,27,0,14,0\n59,0,7,0,20,0,25,0,23,0,61,0\n42,0,26,0,16,0,30,0,55,0,57,0\n54,0,51,0,15,0,31,0,49,0,1,0\n18,0,53,0,50,0,24,0,28,0,41,0\n63,0,10,0,17,0,9,0,32,0,21,0\n11,0,52,0,8,0,5,0,19,0,39,0\n43,0,46,0,44,0,35,0,60,0,4,0\n42,0,49,0,3,0,58,0,7,0,62,0\n48,0,40,0,54,0,59,0,50,0,16,0\n63,0,30,0,23,0,56,0,38,0,57,0\n52,0,28,0,45,0,17,0,12,0,22,0\n26,0,20,0,29,0,10,0,44,0,51,0\n39,0,31,0,6,0,27,0,35,0,2,0\n21,0,33,0,41,0,36,0,14,0,46,0\n61,0,32,0,18,0,37,0,43,0,8,0\n4,0,5,0,9,0,25,0,15,0,55,0\n19,0,60,0,1,0,47,0,24,0,34,0\n11,0,13,0,12,0,53,0,26,0,23,0\n59,0,17,0,46,0,42,0,39,0,63,0\n28,0,40,0,38,0,43,0,52,0,58,0\n55,0,54,0,21,0,62,0,44,0,8,0\n47,0,18,0,41,0,30,0,15,0,6,0\n25,0,35,0,9,0,33,0,49,0,56,0\n13,0,31,0,48,0,11,0,20,0,14,0\n34,0,4,0,57,0,2,0,37,0,50,0\n3,0,1,0,22,0,29,0,16,0,60,0\n36,0,24,0,7,0,10,0,45,0,5,0\n51,0,61,0,53,0,19,0,27,0,32,0\n52,0,20,0,31,0,47,0,21,0,42,0\n50,0,11,0,62,0,18,0,63,0,35,0\n58,0,23,0,28,0,25,0,39,0,4,0\n54,0,57,0,9,0,46,0,12,0,48,0\n2,0,30,0,24,0,51,0,3,0,32,0\n1,0,27,0,44,0,56,0,14,0,45,0\n55,0,49,0,16,0,38,0,41,0,19,0\n33,0,34,0,10,0,53,0,8,0,40,0\n7,0,15,0,61,0,13,0,17,0,29,0\n6,0,59,0,36,0,37,0,26,0,60,0\n5,0,22,0,14,0,43,0,54,0,30,0\n23,0,16,0,9,0,62,0,18,0,52,0\n12,0,63,0,32,0,25,0,44,0,47,0\n7,0,2,0,33,0,1,0,20,0,28,0\n31,0,35,0,34,0,26,0,38,0,17,0\n57,0,59,0,15,0,19,0,43,0,36,0\n50,0,8,0,49,0,45,0,46,0,13,0\n37,0,29,0,55,0,24,0,53,0,27,0\n58,0,51,0,41,0,60,0,21,0,5,0\n56,0,10,0,40,0,42,0,11,0,22,0\n3,0,61,0,39,0,6,0,48,0,4,0\n26,0,32,0,47,0,14,0,7,0,50,0\n57,0,36,0,28,0,1,0,8,0,29,0\n35,0,20,0,41,0,27,0,54,0,58,0\n25,0,37,0,46,0,38,0,30,0,11,0\n39,0,43,0,21,0,16,0,48,0,53,0\n10,0,60,0,15,0,45,0,61,0,62,0\n5,0,49,0,51,0,18,0,42,0,34,0\n4,0,17,0,40,0,19,0,12,0,56,0\n59,0,2,0,23,0,22,0,44,0,9,0\n24,0,63,0,13,0,33,0,52,0,6,0\n55,0,3,0,41,0,31,0,43,0,10,0\n32,0,14,0,39,0,60,0,57,0,49,0\n16,0,34,0,21,0,15,0,28,0,11,0\n50,0,38,0,44,0,9,0,36,0,51,0\n26,0,46,0,40,0,2,0,5,0,1,0\n63,0,20,0,8,0,37,0,3,0,12,0\n52,0,47,0,56,0,59,0,55,0,61,0\n17,0,24,0,6,0,62,0,25,0,48,0\n53,0,35,0,54,0,45,0,7,0,42,0\n29,0,19,0,30,0,23,0,33,0,31,0\n18,0,27,0,22,0,4,0,58,0,13,0\n"
  },
  {
    "path": "schedules/63_11.csv",
    "content": "60,0,47,0,24,0,10,0,61,0,30,0\n37,0,1,0,23,0,54,0,9,0,14,0\n56,0,53,0,26,0,57,0,12,0,59,0\n39,0,25,0,49,0,28,0,51,0,43,0\n22,0,6,0,31,0,33,0,32,0,16,0\n17,0,35,0,7,0,62,0,44,0,36,0\n29,0,50,0,3,0,4,0,45,0,42,0\n18,0,13,0,38,0,19,0,34,0,55,0\n48,0,5,0,8,0,2,0,58,0,46,0\n63,0,20,0,15,0,21,0,11,0,40,0\n52,0,41,0,59,0,27,0,35,0,30,0\n53,0,4,0,17,0,9,0,22,0,43,0\n13,0,56,0,31,0,3,0,47,0,62,0\n18,0,42,0,51,0,24,0,5,0,6,0\n63,0,16,0,58,0,26,0,37,0,61,0\n14,0,1,0,29,0,28,0,38,0,15,0\n19,0,40,0,33,0,25,0,45,0,2,0\n7,0,39,0,27,0,21,0,8,0,60,0\n11,0,12,0,52,0,36,0,48,0,54,0\n32,0,55,0,23,0,57,0,50,0,46,0\n10,0,44,0,41,0,34,0,49,0,20,0\n1,1,33,0,17,0,61,1,13,0,58,0\n45,1,24,0,30,0,2,0,4,0,62,0\n59,0,16,0,47,0,11,0,8,0,28,0\n36,0,12,0,55,0,60,0,22,0,51,0\n31,0,15,0,37,0,44,0,23,0,57,0\n49,0,48,0,18,0,26,0,39,0,29,0\n32,0,5,0,40,0,14,0,34,0,35,0\n21,0,52,0,20,0,9,0,3,0,38,0\n50,0,7,0,56,0,19,0,27,0,6,0\n53,0,46,0,42,0,25,0,63,0,10,0\n43,0,54,0,31,0,41,0,29,0,18,0\n61,0,28,0,40,0,58,0,4,0,22,0\n38,0,39,0,32,0,59,0,26,0,24,0\n57,0,8,0,14,0,52,0,49,0,13,0\n30,0,33,0,11,0,50,0,53,0,1,0\n51,0,62,0,27,0,47,0,23,0,48,0\n3,0,6,0,12,0,41,0,2,0,9,0\n43,0,35,0,19,0,21,0,15,0,10,0\n54,0,44,0,45,0,60,0,63,0,5,0\n20,0,55,0,46,0,37,0,56,0,17,0\n34,0,36,0,7,0,42,0,16,0,25,0\n23,0,11,0,22,0,18,0,3,0,30,0\n10,0,50,0,28,0,12,0,48,0,15,0\n61,0,53,0,54,0,39,0,13,0,2,0\n52,0,40,0,1,0,46,0,44,0,31,0\n62,0,60,0,9,0,34,0,25,0,59,0\n5,0,42,0,47,0,49,0,33,0,38,0\n45,0,37,0,55,0,43,0,27,0,8,0\n36,0,58,0,32,0,41,0,19,0,21,0\n14,0,24,0,16,0,35,0,56,0,20,0\n51,0,7,0,29,0,17,0,57,0,63,0\n26,0,6,0,44,0,4,0,25,0,46,0\n49,0,55,0,10,0,37,0,2,0,11,0\n22,0,39,0,59,0,58,0,50,0,5,0\n9,0,45,0,27,0,30,0,32,0,54,0\n43,0,13,0,47,0,7,0,42,0,1,0\n62,0,26,0,34,0,15,0,33,0,52,0\n20,0,8,0,12,0,29,0,61,0,35,0\n41,0,16,0,56,0,51,0,38,0,53,0\n21,0,63,0,24,0,6,0,28,0,23,0\n3,0,57,0,40,0,17,0,36,0,18,0\n19,0,48,0,4,0,60,0,14,0,31,0\n49,0,43,0,30,0,12,0,46,0,54,0\n22,0,1,0,26,0,42,0,8,0,56,0\n51,0,61,0,63,0,34,0,50,0,9,0\n62,0,15,0,16,0,3,0,39,0,41,0\n33,0,25,0,44,0,11,0,29,0,27,0\n57,0,4,0,5,0,20,0,19,0,47,0\n18,0,23,0,58,0,60,0,35,0,10,0\n2,0,32,0,52,0,17,0,13,0,28,0\n38,0,14,0,59,0,6,0,45,0,36,0\n48,0,24,0,53,0,40,0,7,0,37,0\n31,0,30,0,5,0,21,0,55,0,26,0\n8,0,33,0,4,0,23,0,54,0,51,0\n15,0,25,0,61,0,18,0,32,0,56,0\n57,0,35,0,2,0,38,0,22,0,63,0\n44,0,13,0,9,0,16,0,10,0,48,0\n6,0,55,0,1,0,40,0,29,0,62,0\n21,0,17,0,59,0,42,0,19,0,49,0\n20,0,36,0,27,0,53,0,28,0,31,0\n50,0,60,0,41,0,52,0,14,0,37,0\n45,0,39,0,46,0,7,0,47,0,12,0\n11,0,3,0,34,0,43,0,58,0,24,0\n19,0,63,0,23,0,16,0,22,0,49,0\n42,0,28,0,48,0,55,0,35,0,54,0\n2,0,20,0,60,0,51,0,32,0,1,0\n47,0,21,0,45,0,18,0,53,0,52,0\n62,0,58,0,38,0,43,0,44,0,12,0\n8,0,31,0,17,0,50,0,25,0,24,0\n11,0,41,0,13,0,4,0,40,0,26,0\n3,0,46,0,14,0,61,0,33,0,27,0\n29,0,9,0,10,0,5,0,56,0,36,0\n30,0,34,0,39,0,57,0,6,0,37,0\n15,0,59,0,54,0,7,0,22,0,20,0\n42,0,24,0,40,0,60,0,12,0,16,0\n62,0,32,0,19,0,63,0,53,0,8,0\n9,0,18,0,28,0,41,0,33,0,46,0\n6,0,58,0,35,0,45,0,31,0,49,0\n57,0,51,0,21,0,11,0,14,0,44,0\n25,0,27,0,37,0,15,0,5,0,13,0\n48,0,17,0,34,0,56,0,30,0,1,0\n3,0,10,0,4,0,55,0,7,0,59,0\n38,0,52,0,29,0,61,0,23,0,39,0\n26,0,2,0,43,0,47,0,50,0,36,0\n22,0,13,0,45,0,41,0,24,0,20,0\n1,0,12,0,18,0,27,0,63,0,32,0\n15,0,60,0,53,0,17,0,6,0,49,0\n11,0,9,0,61,0,62,0,42,0,31,0\n58,0,25,0,14,0,47,0,55,0,30,0\n54,0,50,0,8,0,10,0,38,0,40,0\n5,0,43,0,7,0,23,0,52,0,56,0\n35,0,4,0,36,0,37,0,39,0,33,0\n2,0,34,0,21,0,46,0,59,0,29,0\n51,0,19,0,44,0,26,0,28,0,3,0\n57,0,16,0,61,0,48,0,1,0,45,0\n"
  },
  {
    "path": "schedules/63_12.csv",
    "content": "14,0,6,0,57,0,5,0,1,0,31,0\n42,0,13,0,55,0,59,0,16,0,45,0\n29,0,50,0,46,0,20,0,12,0,22,0\n7,0,32,0,44,0,61,0,60,0,23,0\n9,0,15,0,52,0,17,0,43,0,34,0\n63,0,49,0,62,0,8,0,51,0,41,0\n36,0,39,0,25,0,18,0,3,0,37,0\n10,0,19,0,48,0,40,0,11,0,53,0\n4,0,24,0,35,0,27,0,26,0,47,0\n58,0,21,0,56,0,54,0,33,0,38,0\n28,0,30,0,57,0,2,0,12,0,63,0\n43,0,45,0,14,0,29,0,51,0,3,0\n5,0,16,0,48,0,23,0,39,0,22,0\n42,0,11,0,27,0,31,0,32,0,52,0\n36,0,19,0,38,0,59,0,24,0,55,0\n1,0,33,0,2,0,53,0,17,0,10,0\n15,0,6,0,37,0,54,0,60,0,30,0\n21,0,49,0,46,0,47,0,7,0,34,0\n28,0,58,0,13,0,20,0,18,0,62,0\n44,0,9,0,41,0,26,0,8,0,35,0\n56,0,50,0,4,0,61,0,25,0,40,0\n43,0,22,0,3,0,19,0,60,0,59,0\n31,0,7,0,10,0,15,0,36,0,29,0\n12,0,1,0,48,0,21,0,24,0,42,0\n51,0,18,0,49,0,53,0,16,0,57,0\n63,0,35,0,28,0,5,0,13,0,25,0\n58,0,38,0,40,0,2,0,14,0,37,0\n32,0,27,0,55,0,54,0,34,0,50,0\n62,0,6,0,44,0,46,0,45,0,11,0\n23,0,4,0,30,0,8,0,9,0,33,0\n41,0,26,0,17,0,56,0,39,0,61,0\n20,0,47,0,31,0,52,0,1,0,38,0\n60,0,29,0,40,0,16,0,35,0,42,0\n54,0,13,0,46,0,25,0,48,0,49,0\n10,0,63,0,15,0,27,0,4,0,14,0\n59,0,36,0,6,0,17,0,23,0,62,0\n26,0,11,0,51,0,28,0,21,0,50,0\n9,0,45,0,58,0,19,0,5,0,7,0\n43,0,39,0,12,0,44,0,2,0,55,0\n22,0,8,0,56,0,18,0,52,0,24,0\n37,0,53,0,30,0,57,0,61,0,20,0\n34,0,3,0,32,0,47,0,41,0,33,0\n23,0,25,0,26,0,42,0,45,0,19,0\n27,0,31,0,54,0,39,0,13,0,16,0\n15,0,59,0,50,0,46,0,1,0,18,0\n21,0,30,0,14,0,49,0,44,0,24,0\n9,0,61,0,22,0,2,0,51,0,36,0\n52,0,28,0,7,0,41,0,6,0,53,0\n11,0,43,0,58,0,40,0,35,0,57,0\n8,0,34,0,60,0,10,0,56,0,20,0\n3,0,62,0,38,0,12,0,5,0,32,0\n55,0,63,0,47,0,37,0,48,0,33,0\n29,0,17,0,42,0,4,0,44,0,46,0\n61,0,27,0,21,0,40,0,9,0,59,0\n14,0,24,0,34,0,18,0,43,0,23,0\n32,0,6,0,49,0,45,0,12,0,35,0\n28,0,54,0,2,0,3,0,8,0,36,0\n63,0,7,0,33,0,22,0,50,0,38,0\n60,0,20,0,51,0,31,0,17,0,19,0\n5,0,15,0,53,0,13,0,56,0,29,0\n48,0,39,0,4,0,58,0,57,0,52,0\n11,0,1,0,41,0,25,0,55,0,30,0\n47,0,37,0,10,0,16,0,26,0,62,0\n2,0,61,0,35,0,24,0,20,0,23,0\n31,0,56,0,44,0,63,0,3,0,9,0\n17,0,45,0,38,0,27,0,28,0,53,0\n13,0,43,0,51,0,4,0,1,0,32,0\n57,0,26,0,55,0,6,0,7,0,22,0\n37,0,12,0,42,0,8,0,11,0,10,0\n16,0,60,0,46,0,41,0,36,0,58,0\n21,0,25,0,34,0,29,0,30,0,62,0\n39,0,50,0,33,0,15,0,19,0,49,0\n52,0,54,0,47,0,18,0,40,0,5,0\n59,0,48,0,32,0,14,0,9,0,20,0\n13,0,31,0,41,0,22,0,17,0,37,0\n29,0,25,0,44,0,2,0,58,0,27,0\n21,0,10,0,23,0,50,0,63,0,43,0\n28,0,8,0,45,0,57,0,47,0,15,0\n12,0,7,0,18,0,51,0,40,0,54,0\n16,0,61,0,34,0,38,0,6,0,48,0\n30,0,59,0,46,0,52,0,5,0,26,0\n39,0,14,0,19,0,56,0,62,0,42,0\n60,0,1,0,24,0,49,0,11,0,33,0\n35,0,3,0,53,0,36,0,55,0,4,0\n25,0,8,0,43,0,47,0,16,0,6,0\n51,0,57,0,48,0,38,0,44,0,15,0\n56,0,12,0,41,0,23,0,31,0,59,0\n40,0,7,0,50,0,62,0,24,0,13,0\n18,0,54,0,63,0,17,0,35,0,11,0\n37,0,4,0,5,0,19,0,21,0,2,0\n26,0,22,0,34,0,49,0,42,0,58,0\n55,0,3,0,61,0,46,0,14,0,10,0\n20,0,33,0,30,0,27,0,36,0,45,0\n9,0,39,0,32,0,1,0,29,0,28,0\n53,0,52,0,2,0,60,0,62,0,50,0\n17,0,25,0,4,0,12,0,34,0,49,0\n24,0,54,0,57,0,10,0,41,0,42,0\n23,0,5,0,58,0,51,0,15,0,55,0\n33,0,59,0,44,0,37,0,28,0,31,0\n18,0,29,0,26,0,48,0,60,0,3,0\n52,0,13,0,11,0,61,0,36,0,14,0\n8,0,27,0,38,0,43,0,19,0,46,0\n20,0,40,0,32,0,39,0,6,0,63,0\n16,0,1,0,30,0,56,0,35,0,7,0\n22,0,45,0,53,0,21,0,47,0,9,0\n51,0,33,0,62,0,54,0,26,0,42,0\n17,0,50,0,5,0,8,0,14,0,48,0\n37,0,49,0,23,0,52,0,27,0,29,0\n46,0,56,0,36,0,43,0,32,0,57,0\n1,0,40,0,34,0,22,0,44,0,28,0\n61,0,53,0,24,0,58,0,63,0,31,0\n45,0,18,0,6,0,2,0,41,0,4,0\n35,0,25,0,10,0,7,0,39,0,59,0\n55,0,38,0,12,0,13,0,60,0,9,0\n20,0,15,0,3,0,16,0,11,0,21,0\n47,0,19,0,29,0,30,0,17,0,61,0\n63,0,36,0,40,0,45,0,26,0,1,0\n54,0,5,0,41,0,43,0,44,0,53,0\n9,0,6,0,42,0,58,0,50,0,18,0\n49,0,4,0,20,0,28,0,56,0,55,0\n24,0,37,0,39,0,34,0,46,0,51,0\n47,0,2,0,59,0,7,0,15,0,11,0\n13,0,23,0,38,0,30,0,10,0,3,0\n8,0,21,0,57,0,25,0,60,0,32,0\n33,0,16,0,19,0,12,0,14,0,52,0\n35,0,62,0,27,0,31,0,22,0,48,0\n"
  },
  {
    "path": "schedules/63_13.csv",
    "content": "39,0,11,0,43,0,26,0,47,0,27,0\n53,0,31,0,58,0,21,0,50,0,18,0\n40,0,17,0,7,0,48,0,5,0,57,0\n63,0,6,0,62,0,35,0,2,0,56,0\n38,0,3,0,14,0,4,0,34,0,24,0\n25,0,42,0,16,0,30,0,8,0,54,0\n51,0,32,0,19,0,10,0,9,0,60,0\n41,0,13,0,44,0,29,0,33,0,52,0\n36,0,37,0,22,0,59,0,61,0,46,0\n23,0,1,0,45,0,28,0,20,0,55,0\n15,0,12,0,63,0,49,0,35,0,14,0\n48,0,24,0,27,0,54,0,19,0,2,0\n50,0,29,0,34,0,39,0,42,0,10,0\n26,0,61,0,58,0,62,0,51,0,59,0\n41,0,46,0,55,0,4,0,43,0,21,0\n25,0,12,0,56,0,38,0,36,0,33,0\n40,0,53,0,47,0,52,0,16,0,23,0\n7,0,8,0,32,0,45,0,15,0,11,0\n30,0,28,0,37,0,57,0,17,0,44,0\n13,0,9,0,18,0,6,0,3,0,1,0\n22,0,49,0,60,0,31,0,20,0,5,0\n61,1,53,0,2,0,34,1,43,0,56,0\n21,0,46,0,33,0,48,1,54,0,39,0\n10,0,23,0,51,0,8,0,44,0,63,0\n29,0,11,0,42,0,36,0,45,0,58,0\n52,0,50,0,20,0,5,0,35,0,3,0\n16,0,9,0,47,0,14,0,18,0,57,0\n13,0,17,0,49,0,26,0,32,0,40,0\n28,0,27,0,31,0,12,0,59,0,41,0\n15,0,24,0,6,0,55,0,37,0,62,0\n4,0,22,0,19,0,1,0,7,0,25,0\n60,0,38,0,35,0,30,0,10,0,53,0\n51,0,16,0,8,0,34,0,36,0,39,0\n14,0,54,0,43,0,17,0,50,0,59,0\n61,0,13,0,42,0,28,0,24,0,21,0\n58,0,18,0,25,0,41,0,20,0,40,0\n32,0,6,0,46,0,30,0,55,0,29,0\n15,0,26,0,5,0,33,0,19,0,1,0\n62,0,4,0,45,0,27,0,22,0,44,0\n48,0,7,0,56,0,52,0,31,0,9,0\n37,0,49,0,57,0,38,0,23,0,2,0\n11,0,47,0,12,0,3,0,63,0,60,0\n59,0,19,0,40,0,21,0,29,0,51,0\n62,0,46,0,15,0,18,0,34,0,28,0\n33,0,61,0,35,0,27,0,14,0,8,0\n56,0,4,0,54,0,26,0,23,0,30,0\n3,0,41,0,7,0,22,0,32,0,10,0\n9,0,45,0,6,0,58,0,38,0,5,0\n60,0,52,0,25,0,42,0,43,0,57,0\n31,0,17,0,39,0,24,0,11,0,1,0\n50,0,55,0,44,0,48,0,47,0,49,0\n16,0,53,0,12,0,37,0,20,0,2,0\n13,0,63,0,38,0,36,0,9,0,62,0\n56,0,10,0,52,0,28,0,4,0,58,0\n26,0,24,0,17,0,41,0,18,0,30,0\n15,0,27,0,39,0,51,0,3,0,40,0\n14,0,23,0,61,0,48,0,6,0,11,0\n25,0,21,0,55,0,63,0,2,0,34,0\n50,0,36,0,32,0,44,0,33,0,20,0\n54,0,53,0,29,0,7,0,22,0,57,0\n59,0,37,0,16,0,8,0,1,0,60,0\n46,0,47,0,42,0,49,0,5,0,12,0\n35,0,43,0,31,0,19,0,13,0,45,0\n38,0,26,0,20,0,61,0,50,0,51,0\n14,0,10,0,21,0,36,0,52,0,18,0\n17,0,60,0,33,0,23,0,29,0,58,0\n34,0,54,0,47,0,1,0,32,0,2,0\n11,0,27,0,13,0,30,0,15,0,25,0\n8,0,12,0,40,0,43,0,22,0,9,0\n45,0,41,0,24,0,46,0,53,0,49,0\n7,0,5,0,19,0,44,0,16,0,62,0\n55,0,48,0,3,0,42,0,37,0,56,0\n57,0,59,0,63,0,6,0,39,0,4,0\n28,0,35,0,36,0,31,0,22,0,26,0\n49,0,29,0,18,0,9,0,8,0,2,0\n52,0,1,0,41,0,61,0,62,0,12,0\n60,0,23,0,21,0,50,0,15,0,7,0\n56,0,40,0,6,0,44,0,24,0,42,0\n34,0,35,0,59,0,47,0,17,0,38,0\n45,0,25,0,5,0,37,0,39,0,32,0\n16,0,20,0,48,0,10,0,27,0,55,0\n4,0,33,0,51,0,28,0,53,0,11,0\n58,0,63,0,54,0,43,0,13,0,3,0\n30,0,14,0,46,0,31,0,57,0,19,0\n29,0,38,0,44,0,39,0,21,0,12,0\n9,0,41,0,26,0,15,0,34,0,37,0\n8,0,33,0,24,0,20,0,47,0,7,0\n11,0,22,0,17,0,50,0,16,0,56,0\n30,0,19,0,3,0,36,0,49,0,6,0\n2,0,46,0,45,0,61,0,60,0,40,0\n28,0,32,0,54,0,14,0,52,0,58,0\n23,0,57,0,55,0,59,0,13,0,31,0\n5,0,1,0,42,0,27,0,53,0,63,0\n51,0,48,0,43,0,18,0,35,0,4,0\n10,0,62,0,17,0,25,0,47,0,61,0\n37,0,11,0,58,0,49,0,19,0,34,0\n15,0,54,0,31,0,29,0,6,0,20,0\n2,0,42,0,22,0,33,0,13,0,26,0\n32,0,18,0,5,0,23,0,12,0,4,0\n3,0,25,0,50,0,51,0,46,0,28,0\n9,0,39,0,44,0,53,0,55,0,35,0\n30,0,1,0,62,0,40,0,10,0,43,0\n41,0,38,0,57,0,36,0,48,0,8,0\n52,0,59,0,45,0,16,0,24,0,63,0\n21,0,7,0,27,0,14,0,60,0,56,0\n20,0,9,0,23,0,17,0,25,0,46,0\n19,0,61,0,18,0,33,0,39,0,55,0\n10,0,12,0,34,0,13,0,53,0,6,0\n59,0,44,0,5,0,2,0,11,0,41,0\n4,0,36,0,47,0,45,0,54,0,40,0\n62,0,57,0,27,0,3,0,32,0,31,0\n52,0,48,0,22,0,58,0,15,0,60,0\n14,0,1,0,51,0,56,0,30,0,49,0\n37,0,29,0,24,0,35,0,50,0,63,0\n38,0,42,0,28,0,16,0,43,0,7,0\n21,0,8,0,53,0,26,0,62,0,3,0\n6,0,22,0,55,0,17,0,27,0,52,0\n15,0,19,0,20,0,56,0,47,0,57,0\n40,0,34,0,31,0,37,0,63,0,33,0\n51,0,35,0,39,0,41,0,23,0,42,0\n43,0,1,0,28,0,5,0,36,0,24,0\n44,0,60,0,11,0,18,0,54,0,38,0\n4,0,49,0,32,0,21,0,16,0,61,0\n2,0,59,0,30,0,58,0,7,0,9,0\n45,0,12,0,14,0,10,0,25,0,26,0\n13,0,29,0,8,0,46,0,50,0,48,0\n27,0,23,0,18,0,34,0,22,0,38,0\n43,0,33,0,47,0,37,0,21,0,6,0\n42,0,40,0,35,0,61,0,11,0,32,0\n24,0,7,0,55,0,58,0,51,0,12,0\n3,0,59,0,49,0,28,0,25,0,48,0\n16,0,1,0,26,0,52,0,44,0,46,0\n60,0,20,0,39,0,13,0,14,0,62,0\n63,0,9,0,19,0,41,0,50,0,54,0\n10,0,2,0,36,0,15,0,53,0,17,0\n56,0,31,0,29,0,8,0,4,0,5,0\n57,0,30,0,34,0,45,0,61,0,48,0\n"
  },
  {
    "path": "schedules/63_14.csv",
    "content": "14,0,45,0,41,0,9,0,57,0,48,0\n27,0,13,0,1,0,43,0,32,0,46,0\n2,0,54,0,25,0,3,0,26,0,7,0\n21,0,35,0,18,0,38,0,22,0,29,0\n42,0,6,0,30,0,37,0,51,0,11,0\n56,0,60,0,5,0,31,0,61,0,44,0\n36,0,62,0,4,0,17,0,59,0,15,0\n58,0,19,0,20,0,16,0,50,0,23,0\n12,0,33,0,39,0,53,0,28,0,52,0\n8,0,40,0,47,0,49,0,10,0,24,0\n34,0,55,0,45,0,63,0,27,0,6,0\n31,0,11,0,38,0,59,0,43,0,22,0\n13,0,37,0,29,0,17,0,54,0,48,0\n44,0,53,0,62,0,1,0,9,0,26,0\n16,0,35,0,30,0,56,0,12,0,49,0\n14,0,46,0,10,0,15,0,50,0,25,0\n7,0,4,0,51,0,5,0,8,0,32,0\n40,0,23,0,34,0,58,0,36,0,41,0\n60,0,47,0,24,0,3,0,21,0,52,0\n63,0,28,0,33,0,61,0,20,0,2,0\n57,0,39,0,42,0,19,0,55,0,18,0\n50,0,44,0,46,0,45,0,53,0,17,0\n35,0,23,0,9,0,34,0,25,0,51,0\n12,0,11,0,26,0,4,0,13,0,24,0\n54,0,61,0,63,0,8,0,33,0,31,0\n5,0,7,0,18,0,49,0,59,0,14,0\n27,0,37,0,48,0,16,0,28,0,60,0\n38,0,40,0,32,0,47,0,20,0,62,0\n42,0,1,0,43,0,6,0,3,0,29,0\n36,0,19,0,10,0,55,0,56,0,41,0\n22,0,39,0,21,0,30,0,58,0,2,0\n15,0,52,0,7,0,57,0,35,0,13,0\n47,0,32,0,48,0,46,0,18,0,33,0\n62,0,29,0,42,0,23,0,49,0,4,0\n28,0,55,0,43,0,53,0,41,0,26,0\n50,0,10,0,31,0,30,0,3,0,38,0\n2,0,15,0,8,0,40,0,16,0,45,0\n51,0,52,0,63,0,36,0,57,0,56,0\n39,0,58,0,44,0,24,0,6,0,1,0\n59,0,19,0,25,0,54,0,21,0,60,0\n11,0,34,0,9,0,12,0,37,0,61,0\n17,0,20,0,27,0,22,0,5,0,14,0\n31,0,52,0,62,0,53,0,8,0,48,0\n16,0,29,0,43,0,51,0,24,0,57,0\n47,0,38,0,25,0,15,0,44,0,41,0\n28,0,46,0,61,0,6,0,35,0,49,0\n5,0,12,0,36,0,45,0,58,0,3,0\n19,0,22,0,42,0,59,0,9,0,63,0\n32,0,13,0,60,0,2,0,10,0,40,0\n20,0,56,0,21,0,17,0,34,0,1,0\n50,0,33,0,4,0,37,0,55,0,7,0\n26,0,14,0,27,0,39,0,23,0,30,0\n18,0,54,0,3,0,11,0,45,0,61,0\n24,0,31,0,42,0,41,0,2,0,13,0\n22,0,6,0,25,0,8,0,57,0,52,0\n59,0,35,0,48,0,43,0,4,0,20,0\n55,0,16,0,1,0,28,0,47,0,30,0\n27,0,23,0,15,0,63,0,44,0,11,0\n39,0,17,0,50,0,10,0,51,0,5,0\n40,0,56,0,46,0,54,0,9,0,14,0\n32,0,53,0,36,0,49,0,7,0,19,0\n58,0,34,0,12,0,29,0,60,0,33,0\n26,0,37,0,18,0,21,0,38,0,62,0\n5,0,41,0,11,0,1,0,52,0,35,0\n2,0,9,0,6,0,47,0,27,0,50,0\n48,0,30,0,51,0,57,0,40,0,7,0\n16,0,17,0,61,0,43,0,39,0,25,0\n56,0,3,0,8,0,28,0,18,0,59,0\n20,0,44,0,10,0,12,0,54,0,62,0\n45,0,21,0,29,0,36,0,13,0,33,0\n19,0,63,0,31,0,37,0,24,0,46,0\n38,0,53,0,55,0,32,0,23,0,58,0\n60,0,26,0,22,0,14,0,15,0,42,0\n34,0,49,0,44,0,4,0,52,0,48,0\n30,0,13,0,21,0,20,0,41,0,6,0\n50,0,11,0,19,0,33,0,25,0,62,0\n59,0,53,0,1,0,40,0,27,0,24,0\n23,0,56,0,51,0,2,0,47,0,12,0\n3,0,31,0,14,0,34,0,29,0,4,0\n5,0,17,0,58,0,42,0,8,0,54,0\n43,0,60,0,49,0,63,0,15,0,55,0\n35,0,7,0,38,0,10,0,45,0,28,0\n37,0,22,0,57,0,32,0,26,0,61,0\n9,0,46,0,36,0,18,0,39,0,16,0\n42,0,48,0,25,0,12,0,27,0,53,0\n19,0,44,0,2,0,29,0,55,0,52,0\n8,0,50,0,30,0,63,0,35,0,60,0\n17,0,32,0,49,0,31,0,45,0,6,0\n18,0,10,0,23,0,40,0,43,0,37,0\n24,0,33,0,5,0,38,0,15,0,9,0\n26,0,39,0,62,0,7,0,56,0,34,0\n22,0,1,0,41,0,51,0,16,0,54,0\n20,0,36,0,3,0,11,0,46,0,57,0\n59,0,58,0,13,0,47,0,14,0,61,0\n4,0,28,0,9,0,21,0,32,0,10,0\n17,0,55,0,25,0,18,0,24,0,30,0\n6,0,33,0,40,0,31,0,56,0,26,0\n63,0,38,0,49,0,39,0,3,0,1,0\n57,0,53,0,47,0,5,0,34,0,54,0\n43,0,12,0,14,0,8,0,37,0,36,0\n27,0,61,0,59,0,41,0,29,0,50,0\n60,0,52,0,44,0,35,0,46,0,20,0\n58,0,4,0,15,0,51,0,28,0,2,0\n62,0,19,0,23,0,45,0,13,0,22,0\n7,0,16,0,48,0,21,0,11,0,42,0\n43,0,63,0,17,0,12,0,25,0,32,0\n54,0,35,0,31,0,27,0,55,0,36,0\n29,0,53,0,9,0,15,0,20,0,30,0\n13,0,49,0,50,0,18,0,56,0,58,0\n10,0,26,0,6,0,19,0,5,0,16,0\n40,0,59,0,3,0,22,0,33,0,44,0\n41,0,28,0,24,0,62,0,14,0,57,0\n34,0,38,0,8,0,42,0,2,0,46,0\n60,0,48,0,61,0,23,0,1,0,7,0\n4,0,45,0,37,0,47,0,52,0,39,0\n11,0,53,0,18,0,21,0,51,0,44,0\n35,0,3,0,55,0,17,0,13,0,62,0\n25,0,40,0,36,0,50,0,28,0,42,0\n54,0,15,0,24,0,6,0,23,0,48,0\n9,0,45,0,52,0,31,0,43,0,58,0\n4,0,27,0,8,0,38,0,56,0,19,0\n2,0,21,0,14,0,61,0,1,0,10,0\n34,0,37,0,30,0,5,0,46,0,59,0\n7,0,41,0,47,0,63,0,22,0,12,0\n32,0,29,0,57,0,60,0,39,0,11,0\n26,0,49,0,16,0,20,0,51,0,33,0\n1,0,36,0,15,0,25,0,8,0,9,0\n61,0,30,0,43,0,4,0,54,0,19,0\n55,0,12,0,46,0,21,0,5,0,40,0\n56,0,63,0,62,0,58,0,48,0,29,0\n10,0,52,0,33,0,18,0,27,0,42,0\n45,0,47,0,26,0,11,0,17,0,14,0\n41,0,16,0,37,0,3,0,53,0,49,0\n51,0,6,0,13,0,38,0,59,0,60,0\n31,0,20,0,23,0,28,0,39,0,7,0\n22,0,24,0,32,0,34,0,50,0,35,0\n2,0,57,0,33,0,44,0,17,0,30,0\n58,0,62,0,49,0,25,0,11,0,27,0\n41,0,18,0,4,0,6,0,53,0,60,0\n10,0,59,0,8,0,23,0,26,0,63,0\n7,0,46,0,29,0,22,0,55,0,9,0\n39,0,48,0,2,0,36,0,35,0,47,0\n54,0,38,0,52,0,16,0,14,0,32,0\n5,0,28,0,44,0,43,0,34,0,13,0\n57,0,50,0,12,0,1,0,31,0,21,0\n24,0,56,0,45,0,37,0,20,0,42,0\n51,0,15,0,40,0,3,0,19,0,61,0\n"
  },
  {
    "path": "schedules/63_2.csv",
    "content": "22,0,37,0,14,0,3,0,52,0,11,0\n36,0,59,0,49,0,47,0,50,0,44,0\n18,0,17,0,46,0,16,0,9,0,29,0\n58,0,48,0,8,0,27,0,32,0,39,0\n38,0,61,0,51,0,54,0,7,0,6,0\n57,0,30,0,23,0,62,0,25,0,43,0\n10,0,35,0,20,0,55,0,53,0,12,0\n21,0,31,0,34,0,42,0,5,0,63,0\n2,0,26,0,45,0,56,0,1,0,28,0\n24,0,19,0,41,0,13,0,4,0,15,0\n33,0,60,0,9,0,40,0,23,0,14,0\n29,0,48,0,50,0,30,0,12,0,61,0\n37,0,17,0,5,0,51,0,32,0,59,0\n56,0,43,0,38,0,10,0,58,0,21,0\n15,0,31,0,28,0,3,0,20,0,47,0\n60,0,39,0,52,0,16,0,49,0,19,0\n1,0,42,0,4,0,27,0,57,0,54,0\n44,0,63,0,55,0,62,0,2,0,7,0\n6,0,40,0,53,0,46,0,22,0,13,0\n25,0,45,0,11,0,8,0,41,0,34,0\n36,0,24,0,18,0,33,0,35,0,26,0\n"
  },
  {
    "path": "schedules/63_3.csv",
    "content": "1,0,16,0,5,0,36,0,8,0,7,0\n10,0,18,0,26,0,29,0,41,0,46,0\n59,0,2,0,22,0,28,0,32,0,39,0\n48,0,49,0,58,0,23,0,55,0,15,0\n20,0,42,0,35,0,57,0,61,0,54,0\n38,0,56,0,43,0,45,0,27,0,11,0\n17,0,3,0,12,0,47,0,34,0,31,0\n30,0,40,0,6,0,33,0,37,0,62,0\n25,0,4,0,19,0,14,0,52,0,51,0\n13,0,53,0,44,0,21,0,50,0,60,0\n63,0,24,0,27,0,9,0,55,0,20,0\n22,1,10,0,35,0,23,1,36,0,34,0\n45,0,7,0,39,0,41,1,3,0,37,0\n59,0,57,0,46,0,51,0,30,0,47,0\n31,0,6,0,32,0,25,0,26,0,48,0\n11,0,18,0,52,0,54,0,13,0,63,0\n33,0,58,0,4,0,38,0,61,0,44,0\n49,0,28,0,50,0,19,0,8,0,17,0\n15,0,5,0,29,0,56,0,2,0,53,0\n62,0,14,0,60,0,16,0,24,0,43,0\n12,0,9,0,42,0,1,0,40,0,21,0\n6,0,45,0,47,0,23,0,20,0,52,0\n4,0,41,0,36,0,57,0,55,0,11,0\n63,0,7,0,2,0,30,0,25,0,35,0\n24,0,17,0,56,0,46,0,22,0,33,0\n9,0,38,0,26,0,19,0,59,0,62,0\n60,0,54,0,27,0,58,0,28,0,1,0\n32,0,40,0,3,0,49,0,43,0,44,0\n37,0,16,0,15,0,12,0,10,0,13,0\n51,0,21,0,61,0,18,0,5,0,39,0\n29,0,34,0,50,0,42,0,14,0,48,0\n8,0,53,0,23,0,31,0,22,0,41,0\n"
  },
  {
    "path": "schedules/63_4.csv",
    "content": "39,0,28,0,3,0,26,0,8,0,13,0\n1,0,45,0,24,0,49,0,20,0,62,0\n11,0,17,0,37,0,33,0,29,0,21,0\n2,0,46,0,19,0,34,0,40,0,36,0\n23,0,59,0,12,0,32,0,16,0,47,0\n30,0,53,0,10,0,42,0,50,0,18,0\n31,0,57,0,41,0,55,0,15,0,14,0\n5,0,22,0,52,0,63,0,51,0,43,0\n54,0,44,0,4,0,9,0,25,0,6,0\n35,0,56,0,60,0,7,0,38,0,58,0\n61,0,11,0,16,0,27,0,48,0,19,0\n47,0,53,0,57,0,3,0,36,0,45,0\n29,0,49,0,26,0,46,0,10,0,5,0\n52,0,28,0,33,0,4,0,30,0,14,0\n59,0,40,0,42,0,44,0,24,0,39,0\n54,0,55,0,38,0,34,0,63,0,17,0\n50,0,9,0,58,0,31,0,61,0,32,0\n13,0,25,0,23,0,60,0,21,0,1,0\n62,0,15,0,18,0,51,0,27,0,56,0\n48,0,41,0,43,0,37,0,12,0,7,0\n2,0,35,0,20,0,8,0,6,0,22,0\n26,0,63,0,58,0,33,0,45,0,42,0\n16,0,40,0,5,0,60,0,54,0,30,0\n29,0,34,0,61,0,25,0,28,0,18,0\n1,0,51,0,32,0,19,0,14,0,38,0\n49,0,15,0,48,0,50,0,23,0,6,0\n41,0,9,0,47,0,2,0,52,0,39,0\n56,0,37,0,8,0,46,0,59,0,53,0\n10,0,21,0,36,0,7,0,22,0,24,0\n27,0,43,0,13,0,57,0,35,0,4,0\n3,0,55,0,12,0,44,0,20,0,11,0\n62,0,17,0,25,0,31,0,48,0,52,0\n50,0,19,0,29,0,8,0,60,0,41,0\n28,0,47,0,54,0,58,0,15,0,37,0\n46,0,14,0,7,0,61,0,23,0,42,0\n22,0,34,0,1,0,56,0,26,0,57,0\n49,0,51,0,44,0,16,0,2,0,17,0\n36,0,30,0,55,0,59,0,62,0,13,0\n39,0,11,0,6,0,43,0,45,0,32,0\n4,0,21,0,63,0,53,0,31,0,20,0\n12,0,18,0,5,0,24,0,9,0,35,0\n40,0,27,0,33,0,38,0,10,0,3,0\n"
  },
  {
    "path": "schedules/63_5.csv",
    "content": "41,0,16,0,29,0,5,0,48,0,34,0\n54,0,17,0,23,0,49,0,6,0,42,0\n33,0,25,0,44,0,1,0,39,0,55,0\n30,0,32,0,28,0,36,0,38,0,18,0\n45,0,53,0,43,0,26,0,61,0,40,0\n52,0,14,0,31,0,35,0,13,0,22,0\n19,0,7,0,56,0,2,0,11,0,12,0\n51,0,9,0,3,0,15,0,10,0,57,0\n24,0,27,0,20,0,59,0,4,0,50,0\n37,0,47,0,62,0,21,0,63,0,46,0\n58,0,17,0,39,0,8,0,60,0,48,0\n1,0,6,0,61,0,30,0,19,0,34,0\n35,0,15,0,42,0,40,0,5,0,2,0\n55,0,52,0,16,0,50,0,26,0,10,0\n18,0,31,0,51,0,43,0,25,0,56,0\n20,0,38,0,11,0,49,0,47,0,57,0\n29,0,4,0,37,0,14,0,54,0,36,0\n62,0,33,0,32,0,23,0,59,0,53,0\n21,0,27,0,12,0,58,0,9,0,22,0\n60,0,46,0,3,0,24,0,28,0,13,0\n44,0,7,0,8,0,45,0,63,0,41,0\n10,1,19,0,48,0,42,1,14,0,25,0\n50,0,57,0,5,0,1,1,32,0,37,0\n22,0,39,0,26,0,56,0,62,0,30,0\n46,0,51,0,52,0,4,0,17,0,38,0\n53,0,3,0,20,0,29,0,31,0,7,0\n58,0,54,0,28,0,40,0,41,0,59,0\n2,0,18,0,6,0,45,0,27,0,33,0\n63,0,49,0,9,0,55,0,24,0,43,0\n23,0,47,0,12,0,15,0,36,0,61,0\n44,0,35,0,60,0,11,0,34,0,21,0\n13,0,16,0,40,0,8,0,38,0,62,0\n26,0,48,0,57,0,54,0,18,0,7,0\n10,0,2,0,49,0,29,0,58,0,32,0\n63,0,22,0,5,0,19,0,3,0,4,0\n59,0,45,0,47,0,52,0,60,0,25,0\n30,0,24,0,17,0,44,0,53,0,12,0\n8,0,56,0,21,0,15,0,50,0,6,0\n11,0,13,0,61,0,55,0,42,0,51,0\n36,0,46,0,39,0,34,0,27,0,31,0\n43,0,41,0,35,0,20,0,33,0,37,0\n28,0,9,0,14,0,23,0,1,0,16,0\n40,0,24,0,21,0,52,0,7,0,32,0\n22,0,57,0,25,0,61,0,2,0,17,0\n10,0,63,0,38,0,54,0,39,0,12,0\n26,0,42,0,36,0,3,0,58,0,33,0\n14,0,45,0,5,0,51,0,20,0,30,0\n8,0,59,0,11,0,1,0,43,0,46,0\n13,0,50,0,34,0,47,0,53,0,9,0\n31,0,6,0,48,0,44,0,28,0,62,0\n55,0,23,0,29,0,27,0,35,0,19,0\n37,0,15,0,49,0,16,0,60,0,18,0\n56,0,4,0,42,0,41,0,10,0,1,0\n"
  },
  {
    "path": "schedules/63_6.csv",
    "content": "28,0,48,0,36,0,12,0,51,0,10,0\n31,0,26,0,5,0,46,0,25,0,30,0\n15,0,57,0,42,0,58,0,39,0,23,0\n33,0,3,0,56,0,21,0,45,0,27,0\n29,0,44,0,34,0,53,0,49,0,61,0\n4,0,60,0,2,0,54,0,47,0,24,0\n38,0,40,0,8,0,1,0,11,0,20,0\n6,0,43,0,7,0,19,0,59,0,13,0\n41,0,37,0,55,0,16,0,17,0,9,0\n63,0,52,0,50,0,35,0,22,0,14,0\n32,0,25,0,12,0,18,0,62,0,4,0\n40,0,60,0,5,0,48,0,44,0,3,0\n38,0,26,0,10,0,54,0,61,0,57,0\n29,0,58,0,55,0,43,0,20,0,21,0\n19,0,15,0,1,0,52,0,37,0,46,0\n49,0,33,0,62,0,6,0,23,0,9,0\n28,0,17,0,11,0,32,0,50,0,7,0\n42,0,45,0,13,0,47,0,53,0,14,0\n16,0,18,0,36,0,35,0,24,0,31,0\n27,0,59,0,22,0,51,0,39,0,8,0\n41,0,56,0,34,0,30,0,63,0,2,0\n21,0,4,0,10,0,11,0,26,0,9,0\n46,0,38,0,43,0,49,0,28,0,3,0\n31,0,12,0,47,0,15,0,50,0,29,0\n44,0,23,0,19,0,22,0,25,0,16,0\n35,0,34,0,39,0,40,0,45,0,6,0\n54,0,42,0,17,0,36,0,30,0,62,0\n5,0,37,0,20,0,18,0,2,0,7,0\n48,0,27,0,13,0,52,0,24,0,57,0\n59,0,1,0,14,0,60,0,41,0,58,0\n63,0,51,0,33,0,55,0,61,0,32,0\n53,0,17,0,6,0,8,0,56,0,31,0\n18,0,22,0,10,0,40,0,29,0,42,0\n2,0,35,0,27,0,44,0,15,0,38,0\n46,0,23,0,45,0,41,0,20,0,12,0\n1,0,43,0,63,0,4,0,5,0,57,0\n3,0,52,0,16,0,53,0,51,0,54,0\n8,0,19,0,14,0,34,0,28,0,26,0\n11,0,36,0,25,0,33,0,13,0,58,0\n9,0,32,0,47,0,48,0,56,0,59,0\n21,0,50,0,61,0,60,0,37,0,62,0\n39,0,49,0,24,0,55,0,7,0,30,0\n40,0,2,0,12,0,57,0,19,0,17,0\n6,0,52,0,29,0,5,0,41,0,38,0\n13,0,15,0,32,0,34,0,20,0,16,0\n18,0,1,0,9,0,50,0,54,0,27,0\n28,0,25,0,35,0,59,0,53,0,55,0\n8,0,46,0,24,0,44,0,21,0,42,0\n31,0,48,0,14,0,39,0,4,0,33,0\n56,0,51,0,26,0,58,0,37,0,49,0\n47,0,61,0,7,0,36,0,23,0,3,0\n30,0,22,0,60,0,45,0,43,0,11,0\n62,0,63,0,16,0,10,0,46,0,27,0\n20,0,59,0,57,0,44,0,50,0,33,0\n58,0,18,0,53,0,38,0,48,0,19,0\n42,0,7,0,51,0,31,0,34,0,9,0\n55,0,26,0,45,0,1,0,36,0,2,0\n37,0,3,0,24,0,12,0,6,0,14,0\n61,0,30,0,4,0,15,0,40,0,28,0\n23,0,13,0,60,0,63,0,29,0,8,0\n11,0,62,0,35,0,39,0,56,0,5,0\n49,0,41,0,54,0,21,0,32,0,22,0\n25,0,47,0,17,0,43,0,52,0,10,0\n"
  },
  {
    "path": "schedules/63_7.csv",
    "content": "53,0,48,0,62,0,11,0,4,0,40,0\n13,0,57,0,26,0,12,0,52,0,41,0\n10,0,27,0,46,0,14,0,7,0,58,0\n44,0,3,0,45,0,21,0,31,0,42,0\n6,0,36,0,39,0,23,0,17,0,49,0\n1,0,54,0,35,0,50,0,43,0,63,0\n59,0,37,0,2,0,20,0,8,0,55,0\n30,0,29,0,47,0,60,0,38,0,16,0\n61,0,51,0,34,0,18,0,9,0,22,0\n19,0,24,0,15,0,33,0,32,0,25,0\n5,0,28,0,7,0,56,0,13,0,39,0\n10,0,8,0,3,0,52,0,23,0,1,0\n63,0,57,0,42,0,53,0,49,0,46,0\n55,0,11,0,12,0,21,0,38,0,36,0\n45,0,37,0,43,0,51,0,27,0,19,0\n25,0,20,0,44,0,29,0,40,0,34,0\n32,0,22,0,56,0,60,0,17,0,58,0\n28,0,16,0,6,0,18,0,41,0,48,0\n35,0,62,0,31,0,15,0,9,0,5,0\n30,0,4,0,24,0,54,0,26,0,2,0\n33,0,50,0,14,0,61,0,59,0,47,0\n23,1,13,0,46,0,38,1,53,0,20,0\n42,1,34,0,27,0,6,0,63,0,55,0\n51,0,5,0,32,0,41,0,29,0,3,0\n11,0,57,0,28,0,9,0,8,0,30,0\n36,0,44,0,19,0,61,0,4,0,35,0\n2,0,47,0,25,0,12,0,56,0,62,0\n10,0,50,0,17,0,40,0,24,0,45,0\n22,0,14,0,54,0,48,0,37,0,31,0\n39,0,58,0,43,0,18,0,60,0,59,0\n16,0,26,0,15,0,21,0,1,0,7,0\n49,0,33,0,11,0,52,0,51,0,56,0\n63,0,20,0,17,0,3,0,19,0,9,0\n4,0,29,0,50,0,27,0,28,0,31,0\n55,0,25,0,23,0,43,0,48,0,57,0\n38,0,13,0,14,0,1,0,44,0,24,0\n26,0,53,0,10,0,6,0,59,0,22,0\n60,0,61,0,7,0,54,0,8,0,62,0\n12,0,40,0,58,0,42,0,37,0,15,0\n47,0,21,0,18,0,52,0,49,0,32,0\n30,0,41,0,35,0,34,0,46,0,39,0\n36,0,2,0,16,0,33,0,45,0,5,0\n63,0,25,0,38,0,4,0,7,0,22,0\n15,0,55,0,17,0,8,0,29,0,13,0\n1,0,59,0,31,0,11,0,19,0,18,0\n51,0,12,0,6,0,44,0,54,0,46,0\n45,0,26,0,20,0,48,0,47,0,35,0\n3,0,58,0,49,0,2,0,50,0,30,0\n57,0,37,0,34,0,10,0,62,0,33,0\n53,0,39,0,9,0,16,0,32,0,14,0\n42,0,43,0,52,0,36,0,28,0,24,0\n23,0,41,0,21,0,61,0,27,0,56,0\n40,0,60,0,19,0,5,0,55,0,26,0\n38,0,8,0,6,0,58,0,33,0,35,0\n48,0,9,0,29,0,49,0,12,0,1,0\n22,0,39,0,62,0,42,0,20,0,50,0\n14,0,23,0,59,0,63,0,28,0,45,0\n51,0,60,0,21,0,13,0,4,0,10,0\n61,0,46,0,5,0,25,0,17,0,52,0\n54,0,56,0,57,0,40,0,16,0,3,0\n24,0,7,0,41,0,47,0,37,0,44,0\n18,0,27,0,30,0,15,0,36,0,53,0\n31,0,11,0,32,0,34,0,2,0,43,0\n29,0,21,0,62,0,6,0,14,0,19,0\n35,0,13,0,16,0,42,0,25,0,59,0\n38,0,9,0,56,0,50,0,26,0,37,0\n58,0,24,0,20,0,57,0,51,0,36,0\n12,0,33,0,23,0,30,0,31,0,7,0\n27,0,44,0,52,0,48,0,60,0,2,0\n49,0,8,0,41,0,22,0,40,0,43,0\n28,0,53,0,34,0,47,0,3,0,17,0\n4,0,45,0,1,0,32,0,55,0,46,0\n15,0,63,0,39,0,61,0,10,0,11,0\n18,0,23,0,42,0,54,0,5,0,38,0\n"
  },
  {
    "path": "schedules/63_8.csv",
    "content": "62,0,48,0,46,0,43,0,35,0,4,0\n18,0,27,0,45,0,40,0,44,0,51,0\n37,0,29,0,7,0,57,0,24,0,1,0\n39,0,32,0,22,0,36,0,53,0,34,0\n5,0,42,0,59,0,3,0,12,0,2,0\n20,0,41,0,14,0,30,0,23,0,61,0\n19,0,26,0,33,0,56,0,63,0,25,0\n58,0,47,0,60,0,55,0,38,0,8,0\n10,0,54,0,31,0,50,0,28,0,15,0\n13,0,11,0,16,0,9,0,17,0,21,0\n6,0,49,0,37,0,52,0,42,0,53,0\n40,0,4,0,12,0,14,0,33,0,57,0\n58,0,18,0,51,0,35,0,32,0,1,0\n45,0,30,0,47,0,54,0,19,0,7,0\n26,0,3,0,60,0,43,0,41,0,10,0\n63,0,34,0,39,0,21,0,28,0,49,0\n6,0,2,0,62,0,31,0,55,0,16,0\n5,0,61,0,13,0,8,0,50,0,22,0\n56,0,15,0,23,0,29,0,44,0,59,0\n36,0,52,0,27,0,11,0,9,0,20,0\n48,0,24,0,38,0,25,0,46,0,17,0\n26,0,16,0,34,0,4,0,37,0,47,0\n13,0,18,0,43,0,28,0,12,0,19,0\n44,0,6,0,31,0,61,0,3,0,1,0\n2,0,50,0,53,0,29,0,20,0,21,0\n35,0,55,0,25,0,57,0,52,0,23,0\n11,0,22,0,10,0,30,0,49,0,38,0\n46,0,5,0,15,0,45,0,41,0,36,0\n51,0,39,0,54,0,24,0,8,0,56,0\n33,0,27,0,42,0,48,0,60,0,32,0\n63,0,17,0,40,0,62,0,59,0,58,0\n9,0,7,0,53,0,14,0,44,0,10,0\n46,0,11,0,61,0,55,0,26,0,18,0\n16,0,43,0,57,0,54,0,8,0,1,0\n5,0,3,0,30,0,29,0,52,0,33,0\n31,0,32,0,13,0,20,0,37,0,38,0\n42,0,17,0,7,0,15,0,34,0,51,0\n59,0,28,0,22,0,6,0,35,0,60,0\n48,0,41,0,9,0,56,0,39,0,40,0\n21,0,19,0,47,0,27,0,62,0,23,0\n25,0,49,0,36,0,58,0,14,0,12,0\n4,0,24,0,50,0,45,0,2,0,63,0\n61,0,53,0,37,0,35,0,54,0,33,0\n28,0,55,0,32,0,7,0,56,0,41,0\n51,0,29,0,11,0,6,0,40,0,47,0\n15,0,25,0,9,0,62,0,22,0,3,0\n45,0,42,0,23,0,63,0,38,0,43,0\n49,0,19,0,4,0,36,0,17,0,8,0\n1,0,50,0,14,0,26,0,59,0,27,0\n60,0,21,0,24,0,12,0,30,0,31,0\n52,0,2,0,34,0,48,0,13,0,58,0\n20,0,57,0,10,0,18,0,5,0,39,0\n46,0,44,0,28,0,16,0,33,0,22,0\n23,0,36,0,43,0,40,0,37,0,50,0\n45,0,32,0,8,0,21,0,25,0,6,0\n14,0,38,0,54,0,29,0,62,0,34,0\n7,0,35,0,63,0,27,0,31,0,5,0\n59,0,10,0,56,0,4,0,61,0,16,0\n57,0,30,0,60,0,2,0,46,0,9,0\n24,0,41,0,18,0,13,0,47,0,53,0\n12,0,1,0,26,0,15,0,17,0,52,0\n55,0,48,0,20,0,51,0,3,0,49,0\n39,0,58,0,19,0,11,0,44,0,42,0\n9,0,33,0,59,0,34,0,45,0,31,0\n36,0,56,0,30,0,13,0,38,0,6,0\n12,0,8,0,63,0,41,0,46,0,29,0\n35,0,17,0,10,0,2,0,47,0,20,0\n50,0,3,0,57,0,53,0,11,0,62,0\n54,0,44,0,43,0,5,0,32,0,49,0\n25,0,39,0,37,0,60,0,61,0,27,0\n40,0,21,0,42,0,1,0,22,0,55,0\n58,0,28,0,23,0,26,0,4,0,51,0\n48,0,15,0,16,0,19,0,24,0,14,0\n52,0,18,0,38,0,7,0,59,0,50,0\n35,0,29,0,27,0,45,0,13,0,49,0\n55,0,12,0,6,0,63,0,54,0,9,0\n1,0,34,0,44,0,30,0,41,0,25,0\n2,0,51,0,33,0,43,0,39,0,15,0\n52,0,40,0,19,0,32,0,10,0,24,0\n53,0,5,0,16,0,60,0,23,0,17,0\n21,0,3,0,56,0,58,0,37,0,46,0\n47,0,28,0,36,0,48,0,57,0,61,0\n7,0,8,0,62,0,26,0,42,0,20,0\n22,0,4,0,14,0,18,0,11,0,31,0\n"
  },
  {
    "path": "schedules/63_9.csv",
    "content": "19,0,17,0,58,0,50,0,12,0,29,0\n43,0,44,0,32,0,33,0,39,0,5,0\n40,0,38,0,63,0,57,0,20,0,51,0\n55,0,24,0,15,0,2,0,25,0,1,0\n60,0,26,0,21,0,34,0,27,0,48,0\n30,0,4,0,13,0,52,0,62,0,37,0\n49,0,6,0,36,0,14,0,59,0,54,0\n11,0,41,0,16,0,7,0,47,0,46,0\n35,0,22,0,18,0,10,0,31,0,9,0\n28,0,56,0,45,0,61,0,8,0,23,0\n53,0,3,0,12,0,42,0,34,0,5,0\n52,0,6,0,27,0,24,0,58,0,44,0\n21,0,63,0,59,0,11,0,50,0,32,0\n29,0,10,0,14,0,60,0,4,0,33,0\n43,0,62,0,19,0,47,0,40,0,25,0\n42,0,28,0,30,0,46,0,55,0,18,0\n49,0,38,0,23,0,17,0,48,0,13,0\n51,0,31,0,8,0,41,0,1,0,37,0\n16,0,2,0,20,0,9,0,36,0,39,0\n53,0,61,0,7,0,57,0,15,0,22,0\n56,0,54,0,35,0,45,0,3,0,26,0\n30,1,47,0,10,0,17,1,6,0,5,0\n41,0,28,0,25,0,32,1,33,0,52,0\n51,0,48,0,21,0,39,0,18,0,12,0\n9,0,7,0,1,0,36,0,58,0,63,0\n46,0,20,0,15,0,54,0,24,0,45,0\n31,0,38,0,50,0,60,0,62,0,3,0\n53,0,49,0,35,0,4,0,43,0,2,0\n8,0,16,0,55,0,22,0,40,0,14,0\n42,0,19,0,37,0,59,0,11,0,27,0\n34,0,13,0,57,0,56,0,44,0,29,0\n23,0,26,0,39,0,61,0,50,0,33,0\n7,0,3,0,32,0,6,0,18,0,1,0\n20,0,21,0,30,0,8,0,35,0,25,0\n10,0,54,0,19,0,48,0,28,0,16,0\n60,0,37,0,57,0,49,0,41,0,46,0\n56,0,17,0,40,0,9,0,24,0,11,0\n12,0,4,0,47,0,22,0,27,0,45,0\n5,0,52,0,36,0,23,0,34,0,62,0\n55,0,29,0,61,0,43,0,38,0,59,0\n14,0,31,0,58,0,42,0,2,0,13,0\n63,0,44,0,51,0,15,0,53,0,26,0\n25,0,57,0,50,0,54,0,32,0,27,0\n37,0,46,0,6,0,22,0,23,0,1,0\n47,0,61,0,60,0,21,0,40,0,18,0\n56,0,43,0,3,0,58,0,30,0,16,0\n4,0,8,0,36,0,17,0,38,0,42,0\n62,0,51,0,45,0,44,0,10,0,55,0\n26,0,33,0,11,0,20,0,49,0,13,0\n7,0,24,0,59,0,5,0,31,0,35,0\n29,0,48,0,9,0,53,0,14,0,52,0\n34,0,15,0,63,0,28,0,39,0,19,0\n41,0,12,0,30,0,2,0,44,0,61,0\n47,0,32,0,58,0,49,0,4,0,55,0\n54,0,60,0,23,0,51,0,11,0,43,0\n22,0,9,0,62,0,26,0,42,0,24,0\n28,0,21,0,31,0,20,0,6,0,53,0\n36,0,14,0,41,0,19,0,3,0,50,0\n38,0,27,0,15,0,10,0,56,0,18,0\n45,0,5,0,25,0,63,0,13,0,29,0\n52,0,16,0,1,0,12,0,57,0,33,0\n37,0,40,0,39,0,7,0,17,0,35,0\n46,0,48,0,2,0,8,0,59,0,34,0\n6,0,42,0,4,0,51,0,19,0,61,0\n5,0,22,0,43,0,20,0,41,0,18,0\n23,0,57,0,55,0,3,0,9,0,21,0\n1,0,50,0,49,0,52,0,40,0,45,0\n25,0,10,0,11,0,53,0,58,0,39,0\n59,0,35,0,44,0,17,0,60,0,28,0\n36,0,33,0,48,0,24,0,47,0,31,0\n13,0,54,0,38,0,30,0,7,0,34,0\n26,0,2,0,29,0,37,0,32,0,16,0\n14,0,56,0,46,0,12,0,62,0,63,0\n27,0,8,0,5,0,15,0,49,0,9,0\n45,0,47,0,39,0,60,0,42,0,52,0\n1,0,44,0,31,0,54,0,21,0,4,0\n11,0,2,0,3,0,29,0,28,0,22,0\n32,0,53,0,24,0,30,0,38,0,19,0\n17,0,8,0,62,0,6,0,63,0,16,0\n18,0,34,0,61,0,14,0,25,0,37,0\n59,0,58,0,40,0,41,0,23,0,15,0\n13,0,46,0,33,0,27,0,51,0,35,0\n50,0,55,0,20,0,7,0,56,0,48,0\n26,0,12,0,10,0,36,0,43,0,57,0\n39,0,29,0,11,0,62,0,31,0,30,0\n23,0,59,0,18,0,44,0,16,0,4,0\n33,0,2,0,40,0,45,0,6,0,38,0\n17,0,46,0,52,0,20,0,61,0,3,0\n36,0,42,0,35,0,48,0,32,0,15,0\n13,0,55,0,27,0,41,0,54,0,53,0\n60,0,5,0,19,0,1,0,26,0,56,0\n24,0,63,0,37,0,21,0,43,0,10,0\n50,0,58,0,34,0,8,0,47,0,57,0\n12,0,25,0,9,0,49,0,7,0,28,0\n22,0,51,0,17,0,14,0,30,0,32,0\n"
  },
  {
    "path": "schedules/64_1.csv",
    "content": "5,0,8,0,27,0,7,0,15,0,22,0\n34,0,58,0,12,0,47,0,51,0,21,0\n37,0,24,0,31,0,52,0,62,0,3,0\n10,0,25,0,41,0,19,0,59,0,33,0\n57,0,26,0,4,0,2,0,42,0,54,0\n46,0,28,0,44,0,53,0,50,0,32,0\n55,0,16,0,13,0,14,0,23,0,20,0\n64,0,36,0,39,0,63,0,9,0,45,0\n61,0,56,0,11,0,29,0,6,0,40,0\n48,0,35,0,30,0,17,0,49,0,18,0\n1,0,60,0,24,1,43,0,38,0,32,1\n"
  },
  {
    "path": "schedules/64_10.csv",
    "content": "49,0,27,0,39,0,59,0,15,0,8,0\n40,0,3,0,61,0,22,0,52,0,7,0\n23,0,41,0,28,0,62,0,43,0,44,0\n6,0,9,0,46,0,35,0,55,0,4,0\n17,0,53,0,30,0,29,0,2,0,63,0\n25,0,26,0,21,0,24,0,57,0,36,0\n33,0,32,0,34,0,54,0,19,0,38,0\n47,0,48,0,31,0,20,0,45,0,51,0\n12,0,50,0,1,0,18,0,37,0,14,0\n56,0,16,0,60,0,10,0,13,0,58,0\n42,0,5,0,17,0,11,0,64,0,49,0\n36,0,41,0,19,0,6,0,26,0,22,0\n30,0,54,0,28,0,47,0,59,0,21,0\n34,0,62,0,24,0,53,0,48,0,39,0\n9,0,15,0,23,0,56,0,40,0,37,0\n7,0,11,0,8,0,10,0,55,0,2,0\n5,0,32,0,61,0,58,0,35,0,16,0\n12,0,27,0,52,0,44,0,46,0,57,0\n50,0,4,0,33,0,51,0,13,0,60,0\n42,0,31,0,14,0,38,0,63,0,3,0\n18,0,25,0,64,0,45,0,43,0,29,0\n1,0,36,0,9,0,20,0,16,0,17,0\n6,1,49,0,32,0,30,1,12,0,23,0\n53,0,19,0,2,0,4,0,47,0,57,0\n48,0,42,0,7,0,27,0,54,0,50,0\n55,0,37,0,44,0,45,0,58,0,56,0\n14,0,38,0,15,0,21,0,41,0,52,0\n63,0,22,0,59,0,51,0,64,0,46,0\n31,0,5,0,8,0,33,0,28,0,18,0\n20,0,24,0,13,0,11,0,62,0,61,0\n10,0,3,0,43,0,39,0,29,0,34,0\n35,0,25,0,40,0,26,0,1,0,60,0\n14,0,48,0,58,0,7,0,57,0,17,0\n54,0,45,0,2,0,12,0,5,0,41,0\n27,0,33,0,21,0,9,0,62,0,64,0\n56,0,39,0,52,0,11,0,47,0,32,0\n44,0,18,0,30,0,15,0,19,0,25,0\n16,0,3,0,59,0,4,0,37,0,26,0\n22,0,20,0,29,0,34,0,60,0,35,0\n10,0,42,0,46,0,61,0,51,0,28,0\n43,0,38,0,53,0,1,0,8,0,13,0\n40,0,49,0,24,0,50,0,31,0,6,0\n55,0,63,0,33,0,36,0,23,0,52,0\n30,0,59,0,45,0,3,0,60,0,62,0\n21,0,4,0,18,0,22,0,48,0,10,0\n46,0,37,0,7,0,25,0,39,0,13,0\n14,0,44,0,53,0,49,0,5,0,20,0\n34,0,26,0,63,0,28,0,6,0,58,0\n31,0,64,0,1,0,57,0,61,0,56,0\n51,0,11,0,54,0,9,0,29,0,40,0\n12,0,32,0,24,0,42,0,41,0,8,0\n36,0,38,0,17,0,35,0,27,0,23,0\n47,0,43,0,55,0,50,0,16,0,15,0\n19,0,60,0,37,0,2,0,49,0,61,0\n48,0,52,0,25,0,9,0,5,0,28,0\n51,0,32,0,29,0,62,0,7,0,26,0\n4,0,8,0,14,0,56,0,36,0,34,0\n11,0,46,0,30,0,1,0,58,0,41,0\n50,0,10,0,35,0,15,0,53,0,63,0\n40,0,47,0,17,0,44,0,24,0,33,0\n42,0,6,0,16,0,39,0,2,0,21,0\n20,0,57,0,55,0,54,0,59,0,18,0\n13,0,64,0,38,0,19,0,3,0,12,0\n23,0,43,0,22,0,27,0,31,0,45,0\n17,0,56,0,50,0,46,0,34,0,41,0\n7,0,29,0,4,0,1,0,47,0,5,0\n37,0,32,0,36,0,10,0,28,0,53,0\n57,0,49,0,35,0,39,0,55,0,40,0\n60,0,43,0,63,0,48,0,12,0,11,0\n15,0,2,0,62,0,54,0,22,0,31,0\n8,0,19,0,21,0,51,0,58,0,23,0\n33,0,3,0,25,0,20,0,61,0,27,0\n38,0,18,0,9,0,24,0,6,0,59,0\n44,0,52,0,13,0,30,0,26,0,42,0\n45,0,64,0,28,0,14,0,16,0,40,0\n62,0,39,0,12,0,55,0,19,0,17,0\n5,0,21,0,63,0,27,0,56,0,32,0\n36,0,35,0,51,0,2,0,3,0,18,0\n34,0,59,0,31,0,11,0,25,0,44,0\n54,0,58,0,52,0,24,0,43,0,4,0\n48,0,20,0,37,0,30,0,64,0,8,0\n41,0,22,0,16,0,7,0,53,0,33,0\n6,0,1,0,15,0,60,0,45,0,42,0\n23,0,57,0,38,0,29,0,50,0,46,0\n10,0,61,0,26,0,47,0,14,0,9,0\n13,0,4,0,54,0,49,0,63,0,17,0\n5,0,34,0,16,0,24,0,30,0,51,0\n19,0,43,0,56,0,59,0,35,0,42,0\n46,0,40,0,12,0,53,0,20,0,21,0\n28,0,3,0,7,0,11,0,57,0,15,0\n13,0,61,0,41,0,23,0,55,0,18,0\n14,0,29,0,27,0,37,0,6,0,33,0\n62,0,50,0,45,0,8,0,52,0,10,0\n31,0,60,0,39,0,64,0,26,0,36,0\n1,0,44,0,2,0,9,0,32,0,48,0\n58,0,49,0,47,0,22,0,25,0,38,0\n23,0,6,0,56,0,53,0,54,0,3,0\n24,0,45,0,16,0,63,0,46,0,19,0\n39,0,28,0,20,0,41,0,27,0,4,0\n9,0,30,0,35,0,12,0,7,0,31,0\n60,0,61,0,21,0,44,0,8,0,17,0\n29,0,13,0,59,0,36,0,48,0,15,0\n22,0,51,0,55,0,14,0,32,0,25,0\n64,0,2,0,34,0,49,0,1,0,52,0\n18,0,58,0,40,0,47,0,62,0,42,0\n11,0,5,0,26,0,50,0,38,0,37,0\n57,0,10,0,6,0,43,0,33,0,30,0\n"
  },
  {
    "path": "schedules/64_11.csv",
    "content": "43,0,35,0,36,0,29,0,31,0,58,0\n41,0,15,0,59,0,55,0,53,0,34,0\n23,0,61,0,3,0,8,0,51,0,30,0\n64,0,49,0,44,0,4,0,17,0,16,0\n28,0,63,0,37,0,26,0,27,0,45,0\n56,0,62,0,12,0,25,0,33,0,40,0\n2,0,11,0,47,0,46,0,5,0,50,0\n9,0,18,0,1,0,10,0,19,0,7,0\n60,0,14,0,54,0,21,0,22,0,42,0\n13,0,20,0,48,0,57,0,24,0,39,0\n32,0,52,0,26,0,6,0,38,0,12,0\n30,0,43,0,62,0,63,0,59,0,4,0\n17,0,64,0,37,0,9,0,5,0,3,0\n2,0,19,0,40,0,34,0,8,0,36,0\n57,0,22,0,16,0,7,0,31,0,33,0\n38,0,14,0,48,0,11,0,51,0,20,0\n50,0,32,0,1,0,25,0,13,0,41,0\n60,0,24,0,55,0,49,0,39,0,53,0\n18,0,61,0,44,0,35,0,56,0,28,0\n58,0,6,0,15,0,46,0,45,0,23,0\n27,0,47,0,52,0,21,0,10,0,54,0\n29,0,22,0,11,0,42,0,9,0,63,0\n12,1,59,0,36,0,3,1,16,0,24,0\n41,1,35,0,5,0,28,1,26,0,40,0\n46,0,56,0,60,0,13,0,45,0,64,0\n61,0,21,0,20,0,31,0,25,0,53,0\n19,0,49,0,52,0,33,0,50,0,29,0\n2,0,57,0,38,0,1,0,43,0,15,0\n17,0,32,0,39,0,58,0,18,0,14,0\n23,0,7,0,51,0,37,0,47,0,42,0\n62,0,44,0,6,0,8,0,55,0,54,0\n48,0,30,0,4,0,10,0,27,0,34,0\n13,0,50,0,31,0,26,0,3,0,15,0\n64,0,28,0,53,0,32,0,40,0,38,0\n11,0,45,0,41,0,51,0,59,0,19,0\n62,0,55,0,21,0,18,0,29,0,36,0\n25,0,54,0,46,0,9,0,49,0,48,0\n1,0,8,0,44,0,37,0,20,0,58,0\n16,0,42,0,30,0,6,0,56,0,24,0\n33,0,47,0,57,0,60,0,17,0,27,0\n35,0,10,0,23,0,2,0,63,0,14,0\n5,0,34,0,7,0,43,0,61,0,12,0\n22,0,4,0,15,0,39,0,52,0,37,0\n19,0,62,0,31,0,28,0,6,0,49,0\n9,0,58,0,54,0,3,0,13,0,57,0\n63,0,36,0,33,0,53,0,51,0,50,0\n24,0,5,0,30,0,21,0,35,0,1,0\n60,0,39,0,10,0,8,0,32,0,11,0\n7,0,43,0,38,0,44,0,48,0,56,0\n16,0,20,0,41,0,17,0,46,0,29,0\n26,0,25,0,55,0,4,0,14,0,47,0\n12,0,18,0,27,0,61,0,2,0,45,0\n34,0,23,0,59,0,22,0,64,0,52,0\n40,0,37,0,53,0,42,0,50,0,57,0\n8,0,13,0,19,0,51,0,43,0,16,0\n1,0,31,0,28,0,47,0,63,0,54,0\n10,0,45,0,32,0,20,0,49,0,3,0\n5,0,52,0,58,0,30,0,27,0,14,0\n56,0,25,0,2,0,41,0,22,0,17,0\n34,0,12,0,35,0,9,0,38,0,55,0\n29,0,6,0,23,0,40,0,60,0,48,0\n33,0,18,0,4,0,46,0,24,0,59,0\n7,0,64,0,21,0,62,0,15,0,11,0\n26,0,39,0,61,0,42,0,44,0,36,0\n16,0,25,0,38,0,5,0,37,0,10,0\n17,0,51,0,45,0,1,0,34,0,54,0\n43,0,53,0,20,0,23,0,55,0,47,0\n63,0,21,0,29,0,32,0,56,0,3,0\n39,0,9,0,6,0,59,0,33,0,61,0\n4,0,26,0,42,0,2,0,58,0,48,0\n50,0,44,0,19,0,30,0,60,0,22,0\n18,0,49,0,41,0,52,0,8,0,57,0\n11,0,12,0,24,0,31,0,27,0,15,0\n64,0,36,0,40,0,13,0,14,0,7,0\n46,0,35,0,42,0,28,0,62,0,3,0\n33,0,16,0,55,0,23,0,1,0,48,0\n17,0,38,0,52,0,63,0,60,0,61,0\n56,0,5,0,4,0,57,0,6,0,19,0\n31,0,40,0,39,0,25,0,30,0,45,0\n8,0,28,0,14,0,53,0,15,0,9,0\n58,0,50,0,10,0,51,0,21,0,12,0\n29,0,47,0,13,0,2,0,59,0,44,0\n24,0,20,0,26,0,64,0,54,0,62,0\n46,0,27,0,32,0,22,0,7,0,36,0\n35,0,11,0,49,0,37,0,41,0,43,0\n18,0,3,0,31,0,34,0,60,0,38,0\n50,0,12,0,17,0,28,0,4,0,23,0\n2,0,52,0,51,0,20,0,9,0,40,0\n8,0,45,0,33,0,5,0,42,0,55,0\n59,0,48,0,37,0,21,0,19,0,32,0\n58,0,30,0,56,0,54,0,49,0,15,0\n35,0,13,0,22,0,7,0,6,0,53,0\n14,0,61,0,34,0,62,0,47,0,24,0\n16,0,1,0,29,0,18,0,11,0,26,0\n25,0,44,0,10,0,57,0,36,0,46,0\n43,0,63,0,27,0,64,0,39,0,41,0\n38,0,49,0,45,0,23,0,13,0,21,0\n34,0,37,0,2,0,33,0,14,0,6,0\n32,0,60,0,58,0,16,0,9,0,62,0\n17,0,57,0,26,0,11,0,55,0,30,0\n24,0,28,0,7,0,25,0,43,0,52,0\n40,0,22,0,3,0,1,0,61,0,4,0\n41,0,31,0,42,0,64,0,18,0,10,0\n63,0,15,0,51,0,5,0,29,0,44,0\n53,0,54,0,12,0,46,0,19,0,39,0\n56,0,27,0,50,0,20,0,59,0,35,0\n8,0,47,0,22,0,48,0,36,0,45,0\n33,0,37,0,30,0,18,0,13,0,28,0\n55,0,63,0,64,0,58,0,61,0,25,0\n3,0,2,0,53,0,52,0,44,0,11,0\n6,0,40,0,21,0,43,0,17,0,10,0\n4,0,20,0,54,0,7,0,41,0,60,0\n14,0,42,0,59,0,12,0,49,0,1,0\n9,0,46,0,51,0,26,0,56,0,31,0\n23,0,5,0,57,0,62,0,32,0,34,0\n29,0,24,0,27,0,50,0,8,0,38,0\n15,0,47,0,39,0,35,0,16,0,19,0\n36,0,3,0,41,0,48,0,12,0,28,0\n"
  },
  {
    "path": "schedules/64_12.csv",
    "content": "61,0,58,0,18,0,25,0,45,0,34,0\n30,0,24,0,19,0,49,0,53,0,37,0\n28,0,33,0,11,0,9,0,16,0,46,0\n17,0,47,0,52,0,7,0,4,0,63,0\n20,0,54,0,60,0,21,0,35,0,8,0\n41,0,62,0,2,0,5,0,56,0,26,0\n32,0,15,0,14,0,23,0,50,0,40,0\n43,0,51,0,44,0,13,0,6,0,59,0\n27,0,36,0,55,0,57,0,3,0,38,0\n42,0,12,0,39,0,29,0,31,0,48,0\n64,0,22,0,9,0,1,0,10,0,52,0\n58,0,17,0,62,0,28,0,50,0,53,0\n23,0,59,0,37,0,7,0,25,0,54,0\n16,0,43,0,40,0,18,0,46,0,5,0\n21,0,27,0,47,0,29,0,34,0,15,0\n41,0,39,0,20,0,36,0,64,0,1,0\n63,0,42,0,24,0,14,0,10,0,6,0\n35,0,13,0,44,0,4,0,30,0,26,0\n49,0,57,0,11,0,60,0,48,0,32,0\n55,0,3,0,45,0,51,0,2,0,31,0\n56,0,38,0,61,0,8,0,19,0,33,0\n22,0,20,0,62,0,12,0,23,0,29,0\n21,0,16,0,7,0,9,0,39,0,25,0\n17,0,48,0,49,0,43,0,36,0,35,0\n1,0,47,0,28,0,14,0,55,0,18,0\n59,0,51,0,38,0,60,0,58,0,52,0\n4,0,56,0,42,0,64,0,45,0,15,0\n19,0,37,0,31,0,11,0,13,0,40,0\n8,0,34,0,10,0,53,0,44,0,46,0\n22,0,26,0,54,0,24,0,33,0,3,0\n41,0,57,0,6,0,2,0,12,0,50,0\n30,0,32,0,63,0,5,0,27,0,61,0\n43,0,37,0,60,0,55,0,39,0,47,0\n23,0,1,0,35,0,42,0,49,0,31,0\n11,0,20,0,53,0,17,0,38,0,7,0\n28,0,34,0,64,0,22,0,50,0,13,0\n6,0,36,0,2,0,25,0,15,0,33,0\n24,0,32,0,16,0,19,0,56,0,29,0\n4,0,9,0,10,0,57,0,26,0,61,0\n8,0,18,0,3,0,41,0,63,0,48,0\n52,0,27,0,54,0,58,0,5,0,44,0\n12,0,45,0,30,0,21,0,40,0,59,0\n46,0,14,0,17,0,51,0,62,0,49,0\n57,0,2,0,53,0,22,0,16,0,39,0\n9,0,23,0,47,0,56,0,6,0,8,0\n3,0,1,0,41,0,32,0,58,0,4,0\n7,0,30,0,10,0,19,0,45,0,36,0\n25,0,40,0,35,0,63,0,62,0,38,0\n55,0,51,0,33,0,20,0,64,0,50,0\n31,0,13,0,46,0,54,0,21,0,14,0\n59,0,34,0,18,0,11,0,24,0,29,0\n5,0,28,0,12,0,60,0,61,0,42,0\n26,0,37,0,52,0,27,0,15,0,48,0\n44,0,8,0,4,0,43,0,62,0,33,0\n31,0,57,0,21,0,53,0,51,0,6,0\n10,0,46,0,32,0,59,0,39,0,35,0\n1,0,14,0,12,0,19,0,7,0,34,0\n38,0,29,0,18,0,50,0,26,0,9,0\n17,0,16,0,42,0,60,0,27,0,30,0\n58,0,54,0,63,0,64,0,37,0,2,0\n36,0,11,0,22,0,56,0,40,0,47,0\n48,0,44,0,28,0,41,0,15,0,24,0\n3,0,61,0,25,0,43,0,20,0,52,0\n13,0,49,0,55,0,23,0,45,0,5,0\n64,0,31,0,7,0,27,0,62,0,46,0\n50,0,58,0,29,0,8,0,30,0,40,0\n6,0,63,0,26,0,16,0,1,0,11,0\n54,0,34,0,37,0,20,0,32,0,9,0\n57,0,19,0,55,0,44,0,42,0,25,0\n47,0,10,0,35,0,21,0,3,0,5,0\n12,0,15,0,56,0,17,0,13,0,53,0\n59,0,33,0,52,0,41,0,18,0,49,0\n14,0,43,0,22,0,39,0,45,0,60,0\n51,0,36,0,48,0,23,0,4,0,28,0\n24,0,61,0,44,0,2,0,38,0,21,0\n17,0,5,0,40,0,34,0,57,0,1,0\n18,0,33,0,13,0,32,0,7,0,42,0\n25,0,56,0,50,0,49,0,3,0,10,0\n19,0,47,0,12,0,46,0,58,0,26,0\n23,0,38,0,53,0,63,0,43,0,64,0\n45,0,2,0,11,0,28,0,52,0,35,0\n31,0,60,0,15,0,9,0,30,0,41,0\n29,0,37,0,39,0,61,0,4,0,51,0\n14,0,36,0,62,0,54,0,16,0,59,0\n22,0,6,0,27,0,8,0,55,0,48,0\n20,0,5,0,25,0,24,0,28,0,26,0\n9,0,13,0,38,0,49,0,47,0,2,0\n29,0,60,0,7,0,64,0,10,0,44,0\n32,0,62,0,21,0,42,0,58,0,36,0\n6,0,55,0,46,0,52,0,56,0,30,0\n24,0,39,0,18,0,3,0,17,0,23,0\n19,0,4,0,59,0,20,0,31,0,63,0\n37,0,8,0,15,0,57,0,16,0,14,0\n51,0,54,0,35,0,41,0,22,0,34,0\n1,0,53,0,40,0,33,0,48,0,61,0\n43,0,50,0,45,0,27,0,12,0,11,0\n56,0,10,0,20,0,18,0,30,0,31,0\n49,0,26,0,8,0,39,0,7,0,28,0\n42,0,23,0,34,0,38,0,41,0,16,0\n59,0,57,0,48,0,5,0,47,0,64,0\n27,0,40,0,24,0,1,0,51,0,13,0\n2,0,60,0,14,0,36,0,53,0,4,0\n61,0,11,0,15,0,62,0,55,0,54,0\n50,0,21,0,44,0,22,0,37,0,17,0\n6,0,43,0,9,0,58,0,35,0,19,0\n46,0,45,0,33,0,29,0,3,0,63,0\n25,0,52,0,24,0,32,0,12,0,8,0\n4,0,40,0,41,0,7,0,55,0,11,0\n26,0,15,0,17,0,31,0,59,0,22,0\n58,0,56,0,27,0,61,0,35,0,14,0\n63,0,18,0,19,0,21,0,51,0,60,0\n16,0,3,0,64,0,44,0,49,0,12,0\n53,0,42,0,45,0,47,0,54,0,50,0\n10,0,38,0,28,0,6,0,32,0,37,0\n30,0,1,0,29,0,43,0,2,0,23,0\n34,0,62,0,52,0,57,0,39,0,33,0\n48,0,5,0,9,0,36,0,46,0,20,0\n13,0,41,0,27,0,25,0,18,0,53,0\n26,0,64,0,32,0,45,0,8,0,17,0\n15,0,49,0,23,0,10,0,11,0,58,0\n31,0,50,0,16,0,61,0,59,0,47,0\n33,0,5,0,35,0,12,0,37,0,51,0\n46,0,4,0,25,0,42,0,22,0,1,0\n3,0,60,0,62,0,6,0,24,0,34,0\n29,0,36,0,13,0,52,0,63,0,55,0\n9,0,2,0,44,0,20,0,40,0,14,0\n7,0,57,0,56,0,28,0,21,0,43,0\n48,0,30,0,39,0,38,0,54,0,19,0\n"
  },
  {
    "path": "schedules/64_13.csv",
    "content": "60,0,8,0,41,0,20,0,4,0,40,0\n48,0,6,0,18,0,59,0,32,0,13,0\n5,0,54,0,29,0,31,0,37,0,21,0\n22,0,57,0,19,0,11,0,24,0,58,0\n52,0,3,0,7,0,2,0,56,0,45,0\n33,0,38,0,30,0,34,0,44,0,16,0\n35,0,49,0,27,0,14,0,51,0,36,0\n25,0,43,0,53,0,64,0,42,0,55,0\n23,0,10,0,1,0,63,0,50,0,28,0\n26,0,17,0,61,0,39,0,46,0,47,0\n62,0,12,0,2,0,15,0,9,0,31,0\n8,0,54,0,36,0,13,0,51,0,44,0\n60,0,48,0,33,0,41,0,30,0,56,0\n29,0,42,0,32,0,4,0,23,0,35,0\n17,0,63,0,64,0,45,0,39,0,50,0\n24,0,37,0,15,0,28,0,18,0,38,0\n11,0,10,0,16,0,46,0,59,0,58,0\n49,0,19,0,9,0,61,0,47,0,40,0\n62,0,26,0,34,0,21,0,43,0,52,0\n20,0,25,0,7,0,57,0,1,0,6,0\n5,0,3,0,22,0,53,0,27,0,12,0\n55,0,24,0,17,0,14,0,13,0,63,0\n56,1,50,0,15,0,8,1,16,0,9,0\n46,0,30,0,11,0,28,0,2,0,29,0\n49,0,23,0,60,0,57,0,52,0,44,0\n64,0,22,0,37,0,32,0,21,0,33,0\n59,0,1,0,62,0,54,0,35,0,61,0\n40,0,36,0,31,0,6,0,53,0,10,0\n41,0,3,0,34,0,25,0,39,0,18,0\n7,0,55,0,51,0,19,0,47,0,5,0\n48,0,20,0,45,0,27,0,14,0,42,0\n4,0,38,0,12,0,58,0,26,0,43,0\n10,0,35,0,9,0,8,0,22,0,6,0\n46,0,50,0,33,0,3,0,59,0,36,0\n24,0,63,0,1,0,5,0,7,0,30,0\n34,0,53,0,61,0,57,0,15,0,41,0\n16,0,14,0,43,0,47,0,23,0,20,0\n56,0,29,0,12,0,25,0,40,0,28,0\n4,0,58,0,39,0,55,0,37,0,44,0\n49,0,52,0,11,0,42,0,17,0,38,0\n2,0,51,0,48,0,62,0,64,0,21,0\n31,0,19,0,13,0,26,0,32,0,27,0\n18,0,45,0,14,0,54,0,60,0,50,0\n58,0,34,0,35,0,5,0,53,0,9,0\n56,0,6,0,59,0,12,0,39,0,23,0\n41,0,64,0,38,0,29,0,49,0,36,0\n25,0,61,0,15,0,26,0,7,0,48,0\n4,0,54,0,30,0,19,0,17,0,11,0\n47,0,43,0,32,0,60,0,1,0,21,0\n18,0,40,0,2,0,51,0,27,0,16,0\n8,0,55,0,52,0,10,0,3,0,46,0\n44,0,22,0,24,0,42,0,45,0,62,0\n57,0,20,0,31,0,28,0,33,0,13,0\n63,0,36,0,48,0,37,0,54,0,58,0\n50,0,32,0,53,0,11,0,51,0,43,0\n2,0,38,0,39,0,1,0,8,0,12,0\n46,0,61,0,21,0,6,0,25,0,14,0\n23,0,31,0,29,0,3,0,55,0,15,0\n19,0,59,0,63,0,9,0,4,0,52,0\n22,0,28,0,20,0,5,0,44,0,17,0\n27,0,60,0,37,0,34,0,10,0,24,0\n47,0,30,0,64,0,18,0,57,0,56,0\n49,0,45,0,26,0,40,0,35,0,33,0\n42,0,13,0,16,0,62,0,7,0,41,0\n58,0,63,0,44,0,21,0,25,0,2,0\n29,0,50,0,8,0,52,0,48,0,61,0\n39,0,15,0,28,0,10,0,51,0,32,0\n27,0,57,0,47,0,46,0,54,0,12,0\n23,0,6,0,55,0,18,0,26,0,22,0\n19,0,16,0,4,0,35,0,1,0,56,0\n36,0,5,0,33,0,42,0,11,0,9,0\n43,0,59,0,41,0,24,0,45,0,31,0\n60,0,13,0,7,0,53,0,38,0,49,0\n34,0,64,0,40,0,3,0,20,0,17,0\n14,0,37,0,10,0,62,0,30,0,57,0\n8,0,25,0,4,0,15,0,54,0,33,0\n18,0,5,0,43,0,36,0,28,0,52,0\n13,0,2,0,61,0,56,0,53,0,23,0\n55,0,59,0,45,0,6,0,38,0,20,0\n58,0,48,0,30,0,35,0,47,0,31,0\n14,0,40,0,21,0,7,0,39,0,11,0\n19,0,26,0,50,0,37,0,41,0,42,0\n63,0,51,0,29,0,22,0,34,0,12,0\n16,0,32,0,1,0,24,0,3,0,49,0\n62,0,44,0,9,0,46,0,64,0,27,0\n60,0,57,0,43,0,17,0,2,0,59,0\n21,0,39,0,42,0,53,0,30,0,13,0\n29,0,40,0,38,0,14,0,31,0,5,0\n48,0,50,0,34,0,4,0,49,0,6,0\n20,0,33,0,18,0,19,0,62,0,10,0\n8,0,27,0,7,0,23,0,58,0,64,0\n17,0,51,0,52,0,1,0,61,0,41,0\n45,0,9,0,25,0,32,0,11,0,37,0\n56,0,24,0,16,0,36,0,12,0,55,0\n22,0,63,0,35,0,60,0,46,0,15,0\n28,0,54,0,44,0,47,0,26,0,3,0\n4,0,42,0,5,0,18,0,10,0,61,0\n17,0,53,0,1,0,62,0,8,0,33,0\n58,0,12,0,52,0,14,0,32,0,30,0\n16,0,49,0,39,0,31,0,43,0,63,0\n3,0,11,0,28,0,48,0,35,0,13,0\n54,0,9,0,26,0,60,0,24,0,29,0\n22,0,21,0,27,0,38,0,25,0,56,0\n15,0,44,0,40,0,55,0,57,0,50,0\n59,0,20,0,51,0,7,0,37,0,46,0\n36,0,23,0,2,0,19,0,34,0,45,0\n64,0,6,0,11,0,47,0,41,0,63,0\n13,0,18,0,1,0,9,0,22,0,29,0\n53,0,31,0,52,0,16,0,17,0,25,0\n44,0,46,0,35,0,43,0,40,0,37,0\n23,0,33,0,51,0,38,0,24,0,48,0\n10,0,12,0,28,0,7,0,64,0,45,0\n15,0,32,0,49,0,20,0,5,0,56,0\n54,0,47,0,42,0,39,0,59,0,34,0\n2,0,14,0,57,0,36,0,4,0,26,0\n50,0,41,0,27,0,61,0,30,0,55,0\n6,0,62,0,3,0,60,0,19,0,58,0\n21,0,7,0,18,0,8,0,35,0,17,0\n52,0,15,0,64,0,24,0,13,0,40,0\n45,0,46,0,1,0,31,0,34,0,4,0\n54,0,41,0,14,0,43,0,2,0,22,0\n10,0,44,0,38,0,48,0,19,0,53,0\n63,0,6,0,39,0,29,0,33,0,27,0\n55,0,9,0,21,0,59,0,28,0,49,0\n62,0,47,0,25,0,50,0,30,0,23,0\n37,0,51,0,56,0,42,0,3,0,58,0\n57,0,16,0,26,0,5,0,8,0,32,0\n36,0,11,0,61,0,12,0,20,0,60,0\n49,0,21,0,13,0,45,0,10,0,4,0\n33,0,39,0,24,0,35,0,2,0,50,0\n43,0,30,0,27,0,59,0,7,0,15,0\n25,0,34,0,5,0,8,0,19,0,14,0\n47,0,37,0,36,0,22,0,52,0,1,0\n58,0,56,0,17,0,20,0,29,0,26,0\n38,0,32,0,3,0,61,0,62,0,63,0\n42,0,28,0,51,0,6,0,60,0,16,0\n12,0,9,0,57,0,41,0,48,0,55,0\n46,0,53,0,40,0,54,0,18,0,23,0\n31,0,11,0,56,0,44,0,64,0,8,0\n"
  },
  {
    "path": "schedules/64_14.csv",
    "content": "52,0,7,0,12,0,16,0,21,0,59,0\n49,0,42,0,22,0,23,0,11,0,64,0\n19,0,62,0,8,0,4,0,14,0,24,0\n37,0,9,0,45,0,25,0,44,0,46,0\n63,0,58,0,50,0,38,0,51,0,29,0\n30,0,26,0,20,0,53,0,57,0,5,0\n47,0,33,0,61,0,36,0,2,0,15,0\n18,0,43,0,6,0,17,0,28,0,56,0\n31,0,60,0,1,0,3,0,40,0,10,0\n27,0,48,0,39,0,32,0,41,0,34,0\n35,0,55,0,37,0,54,0,13,0,62,0\n38,0,63,0,12,0,61,0,20,0,44,0\n28,0,51,0,50,0,47,0,26,0,16,0\n33,0,1,0,14,0,45,0,43,0,31,0\n19,0,59,0,2,0,21,0,18,0,23,0\n25,0,49,0,5,0,34,0,27,0,55,0\n48,0,64,0,60,0,24,0,13,0,7,0\n22,0,56,0,40,0,32,0,58,0,39,0\n15,0,46,0,30,0,42,0,3,0,52,0\n4,0,57,0,17,0,9,0,35,0,41,0\n10,0,29,0,53,0,54,0,11,0,6,0\n36,0,60,0,23,0,8,0,34,0,31,0\n24,1,63,0,64,0,47,1,62,0,28,0\n43,1,58,0,27,0,55,1,3,0,21,0\n15,0,22,0,5,0,45,0,56,0,57,0\n37,0,48,0,51,0,11,0,30,0,52,0\n40,0,26,0,38,0,6,0,17,0,33,0\n46,0,59,0,18,0,39,0,54,0,29,0\n41,0,8,0,42,0,12,0,49,0,16,0\n53,0,14,0,20,0,25,0,35,0,10,0\n32,0,4,0,44,0,50,0,61,0,13,0\n2,0,7,0,9,0,19,0,1,0,36,0\n21,0,15,0,45,0,40,0,31,0,29,0\n57,0,47,0,63,0,37,0,39,0,34,0\n14,0,56,0,25,0,38,0,16,0,48,0\n51,0,43,0,46,0,18,0,49,0,60,0\n53,0,27,0,11,0,52,0,26,0,8,0\n54,0,1,0,32,0,20,0,12,0,42,0\n36,0,44,0,17,0,24,0,30,0,22,0\n19,0,23,0,6,0,33,0,55,0,5,0\n28,0,13,0,9,0,10,0,7,0,62,0\n61,0,58,0,3,0,35,0,59,0,50,0\n2,0,4,0,53,0,64,0,41,0,37,0\n15,0,54,0,56,0,14,0,63,0,36,0\n47,0,51,0,39,0,21,0,6,0,31,0\n12,0,13,0,34,0,30,0,43,0,19,0\n59,0,1,0,11,0,5,0,35,0,61,0\n4,0,9,0,42,0,22,0,2,0,26,0\n49,0,62,0,20,0,40,0,50,0,18,0\n8,0,55,0,57,0,48,0,17,0,45,0\n16,0,64,0,28,0,3,0,27,0,38,0\n41,0,44,0,60,0,25,0,58,0,23,0\n10,0,32,0,52,0,24,0,33,0,46,0\n7,0,39,0,14,0,29,0,49,0,4,0\n34,0,56,0,59,0,20,0,8,0,9,0\n43,0,5,0,50,0,37,0,40,0,36,0\n38,0,15,0,60,0,11,0,18,0,41,0\n52,0,44,0,57,0,32,0,28,0,31,0\n24,0,10,0,48,0,63,0,26,0,35,0\n3,0,17,0,13,0,33,0,25,0,2,0\n22,0,21,0,19,0,53,0,46,0,1,0\n62,0,45,0,29,0,16,0,51,0,23,0\n27,0,61,0,54,0,47,0,30,0,42,0\n58,0,55,0,12,0,7,0,64,0,6,0\n8,0,39,0,5,0,44,0,38,0,13,0\n10,0,49,0,56,0,21,0,57,0,37,0\n20,0,40,0,23,0,11,0,48,0,28,0\n45,0,53,0,41,0,9,0,36,0,47,0\n29,0,50,0,33,0,34,0,1,0,64,0\n19,0,27,0,7,0,61,0,17,0,15,0\n3,0,26,0,12,0,52,0,14,0,62,0\n31,0,42,0,59,0,43,0,55,0,63,0\n24,0,25,0,32,0,18,0,51,0,4,0\n16,0,22,0,35,0,6,0,30,0,60,0\n54,0,46,0,34,0,2,0,58,0,48,0\n23,0,38,0,61,0,3,0,9,0,53,0\n20,0,13,0,1,0,15,0,26,0,49,0\n12,0,25,0,11,0,39,0,36,0,4,0\n57,0,35,0,19,0,27,0,44,0,29,0\n46,0,50,0,52,0,56,0,6,0,41,0\n31,0,37,0,62,0,17,0,59,0,5,0\n7,0,54,0,8,0,43,0,33,0,22,0\n58,0,24,0,18,0,45,0,42,0,10,0\n14,0,32,0,64,0,60,0,21,0,47,0\n40,0,28,0,2,0,30,0,55,0,51,0\n63,0,23,0,37,0,16,0,27,0,1,0\n13,0,25,0,36,0,6,0,57,0,46,0\n62,0,48,0,53,0,39,0,44,0,43,0\n21,0,17,0,52,0,60,0,4,0,54,0\n49,0,8,0,30,0,50,0,10,0,15,0\n63,0,45,0,3,0,19,0,11,0,32,0\n35,0,42,0,34,0,7,0,38,0,28,0\n24,0,29,0,26,0,12,0,2,0,56,0\n61,0,41,0,22,0,20,0,51,0,33,0\n58,0,5,0,31,0,9,0,16,0,18,0\n64,0,40,0,55,0,47,0,59,0,14,0\n3,0,15,0,28,0,37,0,43,0,4,0\n42,0,6,0,62,0,34,0,57,0,25,0\n56,0,24,0,50,0,23,0,53,0,7,0\n38,0,19,0,54,0,51,0,31,0,49,0\n11,0,5,0,2,0,8,0,58,0,14,0\n55,0,26,0,45,0,60,0,61,0,39,0\n36,0,10,0,41,0,40,0,59,0,32,0\n64,0,52,0,13,0,1,0,18,0,35,0\n17,0,27,0,47,0,48,0,12,0,46,0\n29,0,30,0,16,0,20,0,63,0,22,0\n21,0,33,0,11,0,9,0,44,0,55,0\n61,0,6,0,8,0,14,0,37,0,19,0\n59,0,54,0,57,0,60,0,40,0,24,0\n38,0,32,0,35,0,43,0,23,0,15,0\n42,0,18,0,29,0,3,0,48,0,36,0\n13,0,2,0,39,0,9,0,50,0,27,0\n16,0,44,0,56,0,17,0,10,0,1,0\n31,0,25,0,30,0,62,0,21,0,41,0\n49,0,7,0,47,0,5,0,52,0,63,0\n4,0,34,0,26,0,46,0,45,0,64,0\n33,0,28,0,12,0,22,0,53,0,58,0\n51,0,60,0,3,0,20,0,36,0,56,0\n18,0,57,0,27,0,14,0,50,0,11,0\n21,0,5,0,29,0,42,0,17,0,32,0\n26,0,44,0,19,0,43,0,41,0,47,0\n2,0,62,0,55,0,38,0,22,0,52,0\n33,0,37,0,16,0,24,0,39,0,35,0\n34,0,10,0,9,0,40,0,51,0,12,0\n31,0,46,0,23,0,61,0,30,0,7,0\n59,0,28,0,53,0,49,0,13,0,45,0\n54,0,25,0,63,0,8,0,64,0,15,0\n48,0,4,0,20,0,58,0,6,0,1,0\n36,0,52,0,35,0,39,0,19,0,40,0\n18,0,37,0,30,0,32,0,7,0,26,0\n3,0,16,0,46,0,33,0,38,0,57,0\n24,0,21,0,8,0,34,0,61,0,28,0\n41,0,55,0,4,0,63,0,29,0,56,0\n5,0,45,0,23,0,50,0,12,0,54,0\n47,0,11,0,58,0,1,0,25,0,62,0\n43,0,10,0,20,0,64,0,2,0,31,0\n6,0,51,0,44,0,15,0,59,0,27,0\n14,0,17,0,22,0,42,0,13,0,53,0\n60,0,9,0,12,0,48,0,49,0,63,0\n39,0,41,0,3,0,5,0,54,0,24,0\n28,0,43,0,52,0,61,0,29,0,25,0\n4,0,47,0,1,0,38,0,30,0,59,0\n18,0,15,0,34,0,55,0,16,0,53,0\n33,0,42,0,27,0,62,0,60,0,56,0\n64,0,17,0,51,0,57,0,23,0,14,0\n6,0,35,0,49,0,32,0,45,0,2,0\n48,0,50,0,22,0,31,0,19,0,10,0\n21,0,58,0,36,0,13,0,26,0,37,0\n7,0,40,0,46,0,44,0,8,0,11,0\n9,0,24,0,43,0,20,0,47,0,55,0\n"
  },
  {
    "path": "schedules/64_2.csv",
    "content": "13,0,62,0,38,0,5,0,10,0,7,0\n26,0,46,0,45,0,27,0,8,0,22,0\n42,0,64,0,33,0,20,0,6,0,24,0\n50,0,36,0,41,0,57,0,52,0,44,0\n63,0,34,0,35,0,25,0,30,0,58,0\n49,0,11,0,43,0,14,0,39,0,21,0\n47,0,12,0,59,0,54,0,32,0,37,0\n51,0,40,0,60,0,3,0,9,0,18,0\n15,0,23,0,1,0,19,0,29,0,4,0\n16,0,31,0,17,0,56,0,48,0,53,0\n2,0,28,0,36,0,61,0,55,0,62,0\n10,0,25,0,33,0,50,0,11,0,8,0\n40,0,5,0,47,0,64,0,30,0,45,0\n1,0,57,0,9,0,13,0,26,0,39,0\n24,0,43,0,3,0,31,0,59,0,35,0\n55,0,14,0,32,0,42,0,16,0,23,0\n61,0,44,0,4,0,34,0,17,0,18,0\n48,0,58,0,21,0,60,0,15,0,2,0\n28,0,19,0,56,0,63,0,46,0,6,0\n37,0,52,0,22,0,38,0,53,0,51,0\n29,0,20,0,54,0,7,0,41,0,49,0\n27,0,61,1,1,1,12,0,11,1,18,1\n"
  },
  {
    "path": "schedules/64_3.csv",
    "content": "51,0,3,0,32,0,63,0,2,0,10,0\n15,0,4,0,1,0,28,0,19,0,42,0\n27,0,12,0,57,0,39,0,36,0,13,0\n38,0,7,0,48,0,24,0,45,0,50,0\n17,0,53,0,11,0,30,0,5,0,56,0\n40,0,52,0,20,0,23,0,49,0,58,0\n9,0,61,0,29,0,26,0,62,0,41,0\n31,0,25,0,18,0,37,0,21,0,14,0\n44,0,8,0,59,0,6,0,22,0,43,0\n60,0,64,0,33,0,54,0,16,0,46,0\n34,0,55,0,24,0,47,0,35,0,2,0\n17,0,12,0,62,0,40,0,15,0,3,0\n36,0,32,0,37,0,5,0,26,0,38,0\n21,0,13,0,42,0,51,0,52,0,9,0\n63,0,18,0,22,0,20,0,64,0,27,0\n41,0,54,0,1,0,53,0,34,0,48,0\n28,0,23,0,29,0,6,0,7,0,56,0\n16,0,35,0,49,0,4,0,10,0,39,0\n46,0,47,0,50,0,25,0,11,0,43,0\n45,0,19,0,14,0,55,0,60,0,59,0\n30,0,44,0,57,0,58,0,31,0,61,0\n33,0,36,0,52,0,8,0,63,0,7,0\n64,0,23,0,4,0,32,0,34,0,17,0\n9,0,46,0,56,0,49,0,1,0,24,0\n5,0,3,0,27,0,47,0,21,0,29,0\n16,0,19,0,13,0,44,0,40,0,25,0\n10,0,55,0,58,0,8,0,37,0,53,0\n22,0,39,0,50,0,42,0,41,0,31,0\n15,0,43,0,45,0,51,0,57,0,20,0\n6,0,11,0,26,0,14,0,12,0,54,0\n2,0,62,0,59,0,38,0,30,0,33,0\n28,0,48,0,61,0,18,0,35,0,60,0\n"
  },
  {
    "path": "schedules/64_4.csv",
    "content": "15,0,39,0,48,0,9,0,63,0,55,0\n16,0,18,0,41,0,27,0,46,0,12,0\n2,0,60,0,52,0,59,0,47,0,5,0\n42,0,45,0,51,0,8,0,17,0,57,0\n43,0,11,0,19,0,32,0,50,0,29,0\n64,0,37,0,10,0,21,0,24,0,62,0\n30,0,26,0,54,0,36,0,23,0,35,0\n38,0,31,0,6,0,44,0,49,0,25,0\n34,0,3,0,53,0,7,0,28,0,4,0\n14,0,22,0,61,0,40,0,33,0,20,0\n1,0,56,0,29,0,58,0,13,0,64,0\n16,0,19,0,9,0,37,0,2,0,36,0\n24,0,51,0,52,0,30,0,41,0,50,0\n47,0,4,0,38,0,48,0,18,0,42,0\n46,0,11,0,59,0,44,0,34,0,20,0\n60,0,56,0,55,0,17,0,3,0,31,0\n7,0,62,0,14,0,49,0,32,0,35,0\n23,0,57,0,33,0,39,0,6,0,1,0\n8,0,27,0,15,0,22,0,58,0,10,0\n26,0,12,0,53,0,45,0,43,0,40,0\n25,0,28,0,21,0,61,0,5,0,63,0\n13,0,46,0,9,0,54,0,24,0,3,0\n17,1,29,0,7,0,39,1,59,0,16,0\n49,0,55,0,50,0,37,0,27,0,23,0\n31,0,18,0,19,0,64,0,14,0,15,0\n42,0,35,0,61,0,6,0,12,0,11,0\n25,0,53,0,48,0,62,0,56,0,22,0\n5,0,20,0,26,0,4,0,51,0,58,0\n30,0,45,0,28,0,2,0,38,0,1,0\n32,0,47,0,33,0,41,0,54,0,44,0\n34,0,21,0,8,0,13,0,43,0,60,0\n52,0,10,0,40,0,36,0,63,0,57,0\n56,0,37,0,6,0,18,0,59,0,26,0\n30,0,3,0,20,0,48,0,29,0,27,0\n44,0,17,0,64,0,4,0,12,0,9,0\n2,0,25,0,35,0,33,0,24,0,8,0\n5,0,31,0,32,0,45,0,34,0,39,0\n36,0,43,0,51,0,15,0,46,0,47,0\n50,0,1,0,62,0,40,0,16,0,54,0\n41,0,11,0,14,0,28,0,55,0,10,0\n57,0,38,0,13,0,61,0,53,0,19,0\n42,0,58,0,63,0,7,0,60,0,23,0\n49,0,22,0,17,0,21,0,52,0,39,0\n"
  },
  {
    "path": "schedules/64_5.csv",
    "content": "59,0,25,0,62,0,19,0,13,0,60,0\n27,0,4,0,24,0,17,0,38,0,20,0\n35,0,63,0,47,0,22,0,40,0,1,0\n7,0,46,0,14,0,2,0,45,0,18,0\n6,0,61,0,44,0,36,0,12,0,56,0\n51,0,41,0,28,0,15,0,31,0,23,0\n26,0,54,0,55,0,9,0,3,0,32,0\n5,0,58,0,57,0,8,0,33,0,16,0\n52,0,30,0,48,0,10,0,29,0,21,0\n50,0,42,0,49,0,37,0,64,0,43,0\n53,0,11,0,51,0,34,0,39,0,19,0\n17,0,54,0,47,0,44,0,2,0,28,0\n56,0,46,0,33,0,55,0,25,0,38,0\n60,0,18,0,12,0,57,0,48,0,22,0\n42,0,59,0,6,0,7,0,3,0,5,0\n61,0,53,0,10,0,41,0,4,0,43,0\n20,0,30,0,8,0,26,0,63,0,50,0\n58,0,15,0,1,0,39,0,49,0,45,0\n21,0,9,0,40,0,64,0,36,0,14,0\n37,0,52,0,62,0,16,0,34,0,31,0\n32,0,23,0,11,0,24,0,29,0,13,0\n27,0,41,0,44,0,35,0,59,0,55,0\n5,1,25,0,50,0,47,1,12,0,10,0\n14,1,22,0,33,0,43,1,17,0,3,0\n60,0,34,0,64,0,4,0,30,0,7,0\n1,0,26,0,19,0,28,0,56,0,52,0\n48,0,16,0,38,0,6,0,53,0,32,0\n15,0,57,0,2,0,35,0,21,0,24,0\n31,0,20,0,61,0,11,0,45,0,42,0\n18,0,51,0,13,0,27,0,9,0,58,0\n39,0,8,0,23,0,40,0,46,0,37,0\n49,0,36,0,29,0,62,0,54,0,63,0\n25,0,43,0,32,0,15,0,52,0,7,0\n57,0,38,0,3,0,34,0,50,0,1,0\n9,0,45,0,5,0,24,0,48,0,41,0\n47,0,21,0,60,0,61,0,27,0,33,0\n22,0,55,0,28,0,8,0,42,0,53,0\n35,0,58,0,19,0,23,0,54,0,64,0\n14,0,12,0,37,0,20,0,51,0,29,0\n4,0,16,0,63,0,44,0,13,0,46,0\n17,0,18,0,36,0,59,0,26,0,39,0\n62,0,2,0,30,0,11,0,40,0,56,0\n10,0,49,0,8,0,31,0,6,0,35,0\n38,0,43,0,28,0,29,0,60,0,58,0\n23,0,25,0,1,0,53,0,44,0,14,0\n17,0,34,0,46,0,12,0,9,0,15,0\n39,0,61,0,2,0,5,0,32,0,63,0\n13,0,33,0,40,0,54,0,48,0,42,0\n24,0,51,0,64,0,47,0,26,0,62,0\n6,0,55,0,11,0,52,0,4,0,18,0\n45,0,59,0,16,0,22,0,50,0,21,0\n3,0,27,0,19,0,37,0,36,0,10,0\n56,0,20,0,41,0,49,0,7,0,57,0\n31,0,5,0,14,0,30,0,47,0,43,0\n"
  },
  {
    "path": "schedules/64_6.csv",
    "content": "26,0,33,0,6,0,52,0,4,0,3,0\n9,0,43,0,62,0,20,0,37,0,41,0\n58,0,45,0,63,0,31,0,40,0,27,0\n17,0,1,0,30,0,35,0,54,0,48,0\n25,0,34,0,55,0,61,0,21,0,14,0\n15,0,8,0,7,0,60,0,46,0,13,0\n28,0,44,0,16,0,59,0,47,0,38,0\n53,0,51,0,39,0,42,0,11,0,19,0\n12,0,64,0,32,0,22,0,50,0,29,0\n24,0,10,0,18,0,23,0,56,0,36,0\n5,0,57,0,4,0,49,0,2,0,40,0\n31,0,59,0,26,0,54,0,55,0,60,0\n17,0,37,0,52,0,44,0,25,0,8,0\n35,0,29,0,3,0,42,0,41,0,28,0\n50,0,19,0,21,0,18,0,6,0,1,0\n45,0,36,0,39,0,9,0,34,0,32,0\n61,0,22,0,20,0,46,0,53,0,10,0\n51,0,33,0,5,0,64,0,23,0,13,0\n2,0,7,0,38,0,62,0,48,0,24,0\n43,0,47,0,57,0,11,0,30,0,63,0\n12,0,56,0,14,0,15,0,27,0,16,0\n58,0,46,0,37,0,49,0,29,0,54,0\n4,0,25,0,50,0,41,0,39,0,59,0\n36,0,38,0,5,0,17,0,61,0,42,0\n44,0,63,0,33,0,2,0,10,0,9,0\n27,0,11,0,35,0,13,0,24,0,21,0\n8,0,20,0,31,0,14,0,48,0,23,0\n32,0,53,0,15,0,55,0,18,0,30,0\n43,0,40,0,60,0,6,0,28,0,51,0\n62,0,22,0,56,0,58,0,3,0,1,0\n7,0,34,0,16,0,57,0,26,0,64,0\n45,0,19,0,49,0,12,0,52,0,47,0\n23,0,55,0,39,0,37,0,63,0,35,0\n44,0,54,0,18,0,40,0,61,0,13,0\n46,0,3,0,21,0,9,0,38,0,30,0\n1,0,64,0,59,0,14,0,53,0,36,0\n29,0,19,0,56,0,20,0,7,0,33,0\n34,0,6,0,41,0,5,0,11,0,12,0\n42,0,2,0,22,0,16,0,45,0,60,0\n47,0,4,0,8,0,10,0,58,0,32,0\n51,0,17,0,57,0,50,0,15,0,24,0\n26,0,48,0,27,0,49,0,25,0,43,0\n52,0,31,0,53,0,28,0,62,0,5,0\n61,0,30,0,59,0,6,0,45,0,7,0\n37,0,32,0,14,0,33,0,38,0,11,0\n42,0,9,0,56,0,8,0,54,0,50,0\n46,0,24,0,44,0,19,0,4,0,55,0\n35,0,58,0,18,0,12,0,20,0,51,0\n48,0,34,0,13,0,63,0,22,0,52,0\n23,0,60,0,41,0,1,0,27,0,57,0\n2,0,25,0,47,0,31,0,36,0,3,0\n21,0,49,0,28,0,64,0,17,0,10,0\n29,0,40,0,62,0,15,0,39,0,26,0\n43,0,50,0,33,0,16,0,35,0,53,0\n52,0,46,0,42,0,59,0,57,0,32,0\n27,0,22,0,55,0,36,0,8,0,6,0\n30,0,49,0,31,0,34,0,56,0,51,0\n61,0,24,0,9,0,60,0,47,0,29,0\n64,0,3,0,48,0,40,0,37,0,19,0\n28,0,54,0,11,0,23,0,7,0,25,0\n14,0,41,0,13,0,26,0,58,0,2,0\n16,0,18,0,63,0,4,0,62,0,17,0\n38,0,1,0,10,0,39,0,12,0,43,0\n45,0,21,0,15,0,20,0,5,0,44,0\n"
  },
  {
    "path": "schedules/64_7.csv",
    "content": "41,0,31,0,58,0,1,0,28,0,11,0\n13,0,30,0,5,0,33,0,2,0,46,0\n48,0,18,0,26,0,56,0,32,0,3,0\n12,0,62,0,61,0,55,0,20,0,45,0\n43,0,59,0,14,0,27,0,42,0,63,0\n38,0,25,0,10,0,4,0,24,0,7,0\n6,0,17,0,44,0,54,0,35,0,64,0\n9,0,39,0,15,0,8,0,23,0,36,0\n40,0,21,0,19,0,50,0,57,0,51,0\n34,0,52,0,29,0,16,0,22,0,53,0\n49,0,37,0,30,0,47,0,60,0,45,0\n3,0,44,0,27,0,25,0,62,0,58,0\n11,0,55,0,59,0,7,0,8,0,18,0\n48,0,12,0,17,0,5,0,31,0,36,0\n23,0,42,0,19,0,53,0,6,0,61,0\n34,0,20,0,47,0,63,0,33,0,40,0\n46,0,22,0,37,0,21,0,56,0,10,0\n1,0,51,0,52,0,54,0,9,0,38,0\n24,0,64,0,13,0,32,0,16,0,50,0\n4,0,26,0,29,0,39,0,41,0,43,0\n35,0,15,0,2,0,28,0,60,0,14,0\n49,0,11,0,44,0,57,0,61,0,48,0\n5,1,6,0,1,0,53,1,59,0,62,0\n40,0,8,0,56,0,45,0,17,0,27,0\n36,0,58,0,37,0,38,0,29,0,50,0\n13,0,25,0,43,0,60,0,12,0,52,0\n4,0,31,0,57,0,47,0,2,0,42,0\n24,0,23,0,30,0,18,0,34,0,28,0\n16,0,49,0,54,0,10,0,15,0,19,0\n26,0,7,0,64,0,9,0,21,0,20,0\n3,0,35,0,39,0,55,0,63,0,46,0\n51,0,14,0,41,0,32,0,33,0,22,0\n56,0,38,0,23,0,47,0,11,0,62,0\n8,0,50,0,60,0,1,0,44,0,34,0\n61,0,40,0,59,0,64,0,15,0,29,0\n35,0,27,0,9,0,19,0,12,0,30,0\n14,0,53,0,31,0,55,0,13,0,10,0\n36,0,63,0,45,0,24,0,2,0,26,0\n42,0,48,0,16,0,46,0,20,0,51,0\n33,0,6,0,28,0,25,0,49,0,39,0\n17,0,52,0,32,0,37,0,4,0,21,0\n18,0,22,0,58,0,54,0,5,0,43,0\n3,0,57,0,30,0,41,0,7,0,36,0\n46,0,11,0,50,0,15,0,53,0,26,0\n28,0,8,0,10,0,62,0,42,0,29,0\n4,0,35,0,20,0,56,0,1,0,13,0\n24,0,6,0,55,0,48,0,40,0,52,0\n47,0,16,0,12,0,44,0,21,0,59,0\n14,0,45,0,54,0,57,0,25,0,23,0\n7,0,39,0,37,0,27,0,5,0,51,0\n41,0,9,0,63,0,49,0,18,0,17,0\n60,0,31,0,64,0,19,0,22,0,3,0\n34,0,2,0,38,0,61,0,43,0,32,0\n33,0,4,0,15,0,58,0,45,0,44,0\n12,0,26,0,6,0,8,0,37,0,14,0\n46,0,27,0,18,0,29,0,1,0,57,0\n55,0,60,0,21,0,42,0,54,0,36,0\n40,0,7,0,62,0,35,0,16,0,31,0\n51,0,34,0,58,0,49,0,13,0,59,0\n64,0,10,0,48,0,2,0,41,0,23,0\n47,0,61,0,28,0,52,0,3,0,50,0\n32,0,11,0,25,0,19,0,5,0,63,0\n24,0,56,0,53,0,9,0,43,0,33,0\n20,0,22,0,30,0,17,0,39,0,38,0\n62,0,4,0,54,0,12,0,34,0,46,0\n13,0,44,0,42,0,18,0,40,0,37,0\n52,0,57,0,5,0,35,0,26,0,10,0\n45,0,3,0,21,0,6,0,11,0,43,0\n20,0,32,0,36,0,27,0,28,0,53,0\n22,0,9,0,2,0,50,0,25,0,59,0\n7,0,19,0,29,0,48,0,47,0,14,0\n51,0,63,0,56,0,15,0,30,0,31,0\n60,0,41,0,61,0,58,0,24,0,39,0\n23,0,16,0,33,0,17,0,55,0,1,0\n38,0,8,0,5,0,49,0,64,0,53,0\n"
  },
  {
    "path": "schedules/64_8.csv",
    "content": "54,0,4,0,62,0,10,0,16,0,44,0\n33,0,31,0,41,0,22,0,47,0,3,0\n1,0,17,0,8,0,52,0,24,0,5,0\n43,0,46,0,38,0,60,0,36,0,50,0\n7,0,49,0,14,0,27,0,42,0,39,0\n6,0,51,0,15,0,53,0,32,0,63,0\n29,0,35,0,59,0,2,0,18,0,57,0\n19,0,11,0,56,0,25,0,40,0,28,0\n64,0,61,0,26,0,58,0,12,0,30,0\n37,0,48,0,55,0,45,0,21,0,20,0\n13,0,9,0,36,0,34,0,23,0,14,0\n42,0,43,0,3,0,59,0,6,0,4,0\n28,0,7,0,10,0,52,0,25,0,41,0\n53,0,31,0,18,0,24,0,50,0,58,0\n27,0,40,0,22,0,44,0,29,0,8,0\n2,0,39,0,48,0,5,0,62,0,51,0\n37,0,19,0,30,0,57,0,55,0,54,0\n32,0,49,0,17,0,12,0,9,0,60,0\n34,0,35,0,20,0,16,0,26,0,38,0\n63,0,56,0,23,0,61,0,47,0,21,0\n13,0,45,0,11,0,33,0,15,0,46,0\n1,0,25,0,36,0,64,0,6,0,62,0\n41,1,28,0,60,0,53,1,5,0,55,0\n2,1,32,0,29,0,38,1,10,0,58,0\n27,0,35,0,56,0,37,0,31,0,4,0\n47,0,26,0,14,0,51,0,43,0,19,0\n12,0,21,0,15,0,52,0,22,0,42,0\n20,0,49,0,57,0,46,0,61,0,8,0\n30,0,17,0,18,0,33,0,34,0,48,0\n50,0,63,0,9,0,1,0,40,0,16,0\n44,0,64,0,39,0,59,0,23,0,11,0\n3,0,13,0,54,0,24,0,7,0,45,0\n12,0,47,0,55,0,4,0,46,0,29,0\n10,0,8,0,56,0,42,0,18,0,36,0\n34,0,52,0,37,0,43,0,63,0,49,0\n22,0,14,0,31,0,32,0,64,0,5,0\n2,0,44,0,45,0,9,0,26,0,17,0\n53,0,3,0,25,0,48,0,23,0,54,0\n24,0,28,0,15,0,39,0,38,0,61,0\n19,0,60,0,59,0,20,0,1,0,33,0\n50,0,6,0,57,0,7,0,11,0,21,0\n35,0,40,0,41,0,58,0,62,0,13,0\n51,0,27,0,45,0,16,0,30,0,22,0\n34,0,9,0,47,0,61,0,3,0,10,0\n38,0,29,0,17,0,14,0,25,0,63,0\n5,0,33,0,12,0,36,0,7,0,44,0\n64,0,43,0,57,0,53,0,13,0,56,0\n54,0,42,0,11,0,48,0,1,0,26,0\n4,0,21,0,23,0,28,0,2,0,19,0\n52,0,31,0,51,0,6,0,40,0,46,0\n58,0,60,0,37,0,24,0,16,0,59,0\n41,0,62,0,27,0,20,0,15,0,18,0\n39,0,35,0,32,0,55,0,50,0,8,0\n49,0,5,0,29,0,30,0,56,0,3,0\n1,0,22,0,46,0,7,0,53,0,34,0\n16,0,6,0,2,0,14,0,61,0,33,0\n44,0,47,0,57,0,28,0,48,0,58,0\n23,0,60,0,40,0,18,0,45,0,35,0\n38,0,52,0,64,0,9,0,19,0,42,0\n4,0,51,0,11,0,36,0,41,0,49,0\n12,0,63,0,54,0,20,0,31,0,39,0\n30,0,62,0,21,0,32,0,43,0,24,0\n25,0,26,0,8,0,50,0,37,0,15,0\n59,0,17,0,55,0,27,0,10,0,13,0\n16,0,28,0,64,0,6,0,18,0,49,0\n61,0,54,0,22,0,4,0,38,0,40,0\n48,0,7,0,20,0,29,0,43,0,9,0\n24,0,42,0,57,0,51,0,33,0,23,0\n50,0,62,0,19,0,45,0,34,0,12,0\n44,0,31,0,13,0,8,0,21,0,60,0\n41,0,56,0,59,0,32,0,46,0,26,0\n39,0,36,0,47,0,17,0,37,0,53,0\n2,0,58,0,15,0,1,0,3,0,55,0\n52,0,14,0,10,0,35,0,30,0,11,0\n27,0,63,0,4,0,25,0,5,0,57,0\n34,0,6,0,60,0,56,0,54,0,51,0\n42,0,61,0,50,0,29,0,13,0,41,0\n26,0,33,0,55,0,49,0,53,0,62,0\n40,0,24,0,20,0,64,0,2,0,47,0\n12,0,32,0,3,0,28,0,27,0,11,0\n37,0,1,0,18,0,44,0,38,0,14,0\n46,0,21,0,5,0,9,0,10,0,35,0\n58,0,43,0,52,0,39,0,45,0,25,0\n22,0,59,0,48,0,63,0,36,0,19,0\n23,0,16,0,7,0,31,0,15,0,17,0\n8,0,53,0,2,0,30,0,41,0,38,0\n"
  },
  {
    "path": "schedules/64_9.csv",
    "content": "61,0,15,0,7,0,24,0,44,0,53,0\n27,0,3,0,13,0,6,0,43,0,19,0\n57,0,5,0,22,0,14,0,12,0,38,0\n31,0,42,0,23,0,1,0,58,0,34,0\n47,0,2,0,56,0,40,0,49,0,55,0\n36,0,21,0,60,0,10,0,45,0,25,0\n26,0,35,0,11,0,59,0,16,0,50,0\n41,0,4,0,64,0,29,0,20,0,46,0\n52,0,39,0,30,0,9,0,33,0,8,0\n62,0,54,0,18,0,51,0,28,0,17,0\n37,0,48,0,7,0,32,0,63,0,13,0\n10,0,38,0,1,0,56,0,35,0,59,0\n44,0,5,0,31,0,46,0,47,0,36,0\n15,0,64,0,2,0,39,0,50,0,3,0\n58,0,27,0,51,0,20,0,12,0,55,0\n48,0,8,0,22,0,11,0,43,0,53,0\n42,0,9,0,57,0,33,0,29,0,26,0\n14,0,49,0,4,0,28,0,25,0,52,0\n19,0,60,0,34,0,62,0,16,0,37,0\n18,0,41,0,32,0,23,0,21,0,61,0\n54,0,30,0,17,0,6,0,40,0,63,0\n24,0,56,0,33,0,45,0,3,0,44,0\n28,0,50,0,1,0,29,0,48,0,55,0\n34,0,62,0,9,0,35,0,12,0,15,0\n64,0,37,0,18,0,52,0,31,0,47,0\n41,0,53,0,25,0,13,0,40,0,59,0\n42,0,45,0,32,0,39,0,27,0,49,0\n20,0,17,0,21,0,5,0,16,0,30,0\n23,0,43,0,4,0,11,0,51,0,7,0\n38,0,6,0,24,0,8,0,60,0,26,0\n19,0,46,0,63,0,10,0,14,0,58,0\n36,0,57,0,2,0,61,0,54,0,22,0\n35,0,55,0,31,0,45,0,13,0,20,0\n50,0,37,0,43,0,17,0,9,0,44,0\n5,0,29,0,12,0,40,0,8,0,32,0\n7,0,3,0,26,0,47,0,60,0,58,0\n41,0,34,0,48,0,38,0,56,0,52,0\n49,0,11,0,54,0,33,0,19,0,61,0\n16,0,14,0,53,0,64,0,42,0,24,0\n6,0,59,0,2,0,36,0,23,0,18,0\n22,0,51,0,10,0,27,0,30,0,28,0\n62,0,39,0,4,0,63,0,57,0,25,0\n21,0,1,0,13,0,15,0,46,0,54,0\n60,0,40,0,9,0,49,0,48,0,31,0\n11,0,17,0,29,0,36,0,14,0,7,0\n38,0,23,0,20,0,28,0,33,0,37,0\n24,0,58,0,30,0,47,0,32,0,62,0\n15,0,45,0,27,0,59,0,4,0,5,0\n10,0,19,0,16,0,18,0,44,0,57,0\n42,0,50,0,22,0,25,0,3,0,46,0\n39,0,26,0,12,0,43,0,1,0,41,0\n6,0,21,0,52,0,51,0,35,0,53,0\n61,0,8,0,34,0,55,0,63,0,64,0\n56,0,45,0,7,0,2,0,11,0,30,0\n54,0,3,0,57,0,20,0,59,0,31,0\n15,0,16,0,43,0,38,0,58,0,49,0\n12,0,33,0,46,0,48,0,18,0,6,0\n53,0,63,0,28,0,9,0,5,0,41,0\n64,0,44,0,25,0,1,0,51,0,32,0\n52,0,61,0,13,0,62,0,10,0,50,0\n17,0,2,0,55,0,60,0,4,0,42,0\n23,0,27,0,35,0,14,0,47,0,8,0\n24,0,40,0,36,0,34,0,39,0,37,0\n19,0,26,0,56,0,22,0,21,0,29,0\n6,0,10,0,11,0,62,0,64,0,5,0\n31,0,33,0,32,0,15,0,17,0,41,0\n1,0,49,0,8,0,57,0,51,0,50,0\n30,0,36,0,48,0,4,0,3,0,35,0\n34,0,20,0,25,0,9,0,7,0,18,0\n22,0,40,0,46,0,52,0,24,0,23,0\n37,0,53,0,54,0,16,0,26,0,27,0\n60,0,12,0,28,0,61,0,56,0,42,0\n58,0,44,0,13,0,14,0,21,0,2,0\n29,0,45,0,47,0,38,0,63,0,43,0\n59,0,19,0,52,0,55,0,39,0,7,0\n32,0,50,0,4,0,34,0,6,0,53,0\n64,0,27,0,57,0,17,0,23,0,56,0\n51,0,30,0,14,0,41,0,60,0,37,0\n28,0,26,0,15,0,8,0,45,0,46,0\n31,0,12,0,25,0,19,0,24,0,2,0\n29,0,59,0,44,0,22,0,49,0,62,0\n35,0,5,0,39,0,61,0,18,0,58,0\n47,0,48,0,43,0,10,0,42,0,54,0\n63,0,1,0,16,0,13,0,33,0,36,0\n21,0,38,0,55,0,11,0,9,0,3,0\n40,0,62,0,14,0,20,0,26,0,50,0\n56,0,58,0,8,0,4,0,25,0,37,0\n19,0,29,0,51,0,5,0,2,0,48,0\n63,0,18,0,27,0,24,0,60,0,1,0\n13,0,47,0,34,0,57,0,11,0,28,0\n6,0,16,0,9,0,41,0,45,0,22,0\n7,0,33,0,40,0,21,0,64,0,35,0\n3,0,49,0,53,0,17,0,10,0,12,0\n43,0,59,0,61,0,31,0,46,0,30,0\n23,0,44,0,55,0,54,0,38,0,39,0\n42,0,36,0,52,0,15,0,20,0,32,0\n"
  },
  {
    "path": "schedules/65_1.csv",
    "content": "9,0,61,0,15,0,41,0,36,0,18,0\n57,0,22,0,14,0,34,0,42,0,4,0\n38,0,45,0,62,0,17,0,58,0,30,0\n65,0,54,0,63,0,10,0,40,0,47,0\n6,0,8,0,11,0,26,0,53,0,27,0\n29,0,49,0,51,0,55,0,3,0,44,0\n60,0,19,0,20,0,64,0,37,0,59,0\n24,0,2,0,48,0,12,0,23,0,46,0\n50,0,43,0,35,0,32,0,25,0,31,0\n52,0,16,0,1,0,28,0,7,0,21,0\n56,0,33,0,13,0,39,0,5,0,14,1\n"
  },
  {
    "path": "schedules/65_10.csv",
    "content": "46,0,59,0,48,0,7,0,11,0,57,0\n39,0,20,0,10,0,62,0,60,0,64,0\n34,0,24,0,58,0,21,0,40,0,26,0\n49,0,51,0,30,0,52,0,33,0,5,0\n12,0,63,0,29,0,1,0,53,0,23,0\n41,0,6,0,38,0,31,0,27,0,45,0\n50,0,55,0,56,0,44,0,19,0,54,0\n18,0,32,0,9,0,22,0,8,0,16,0\n43,0,4,0,42,0,25,0,2,0,13,0\n14,0,47,0,17,0,61,0,28,0,35,0\n15,0,65,0,3,0,37,0,36,0,11,0\n54,0,56,0,1,0,62,0,58,0,26,0\n52,0,48,0,22,0,8,0,12,0,27,0\n41,0,19,0,57,0,4,0,53,0,49,0\n47,0,7,0,24,0,45,0,50,0,30,0\n37,0,33,0,9,0,17,0,32,0,13,0\n35,0,38,0,15,0,25,0,39,0,23,0\n60,0,59,0,65,0,46,0,2,0,63,0\n44,0,31,0,42,0,10,0,3,0,21,0\n5,0,36,0,14,0,6,0,18,0,64,0\n28,0,51,0,43,0,55,0,29,0,40,0\n16,0,61,0,57,0,34,0,20,0,23,0\n56,1,62,0,19,0,7,1,2,0,32,0\n9,1,26,0,25,0,41,1,10,0,65,0\n15,0,49,0,59,0,48,0,24,0,54,0\n11,0,29,0,58,0,44,0,60,0,13,0\n64,0,40,0,39,0,46,0,45,0,22,0\n27,0,37,0,61,0,21,0,5,0,4,0\n8,0,50,0,36,0,28,0,20,0,33,0\n53,0,12,0,18,0,30,0,3,0,43,0\n31,0,17,0,63,0,55,0,52,0,14,0\n34,0,42,0,47,0,38,0,1,0,51,0\n16,0,6,0,29,0,35,0,59,0,64,0\n48,0,27,0,50,0,65,0,40,0,9,0\n33,0,24,0,61,0,12,0,2,0,10,0\n26,0,49,0,18,0,55,0,28,0,7,0\n57,0,5,0,43,0,36,0,1,0,31,0\n15,0,16,0,30,0,63,0,42,0,58,0\n34,0,54,0,38,0,17,0,4,0,46,0\n51,0,11,0,14,0,8,0,41,0,25,0\n35,0,45,0,60,0,3,0,62,0,37,0\n6,0,32,0,39,0,53,0,52,0,44,0\n13,0,47,0,22,0,21,0,20,0,56,0\n23,0,64,0,26,0,19,0,33,0,43,0\n29,0,5,0,27,0,17,0,15,0,10,0\n25,0,40,0,48,0,61,0,1,0,60,0\n14,0,2,0,9,0,45,0,53,0,34,0\n56,0,57,0,8,0,42,0,6,0,30,0\n36,0,55,0,3,0,47,0,32,0,46,0\n35,0,51,0,62,0,50,0,21,0,63,0\n39,0,38,0,13,0,18,0,24,0,19,0\n52,0,11,0,49,0,4,0,23,0,16,0\n28,0,65,0,54,0,22,0,41,0,44,0\n37,0,31,0,20,0,12,0,59,0,58,0\n7,0,21,0,53,0,33,0,40,0,8,0\n19,0,6,0,34,0,47,0,48,0,10,0\n60,0,30,0,23,0,36,0,4,0,32,0\n46,0,44,0,1,0,49,0,9,0,35,0\n64,0,63,0,28,0,31,0,38,0,56,0\n7,0,37,0,12,0,25,0,54,0,16,0\n61,0,50,0,59,0,39,0,41,0,43,0\n17,0,45,0,65,0,51,0,58,0,18,0\n2,0,22,0,20,0,29,0,14,0,15,0\n52,0,3,0,57,0,5,0,13,0,26,0\n55,0,27,0,42,0,11,0,24,0,62,0\n53,0,9,0,10,0,36,0,59,0,28,0\n31,0,51,0,39,0,48,0,7,0,16,0\n46,0,41,0,33,0,47,0,15,0,58,0\n40,0,23,0,13,0,2,0,17,0,6,0\n29,0,52,0,37,0,50,0,18,0,42,0\n30,0,27,0,54,0,43,0,14,0,60,0\n49,0,8,0,63,0,61,0,56,0,3,0\n45,0,26,0,1,0,4,0,44,0,20,0\n55,0,25,0,62,0,5,0,34,0,22,0\n64,0,57,0,32,0,65,0,35,0,24,0\n12,0,11,0,21,0,19,0,38,0,9,0\n23,0,50,0,46,0,10,0,13,0,14,0\n54,0,8,0,4,0,31,0,47,0,29,0\n1,0,28,0,3,0,16,0,27,0,39,0\n45,0,49,0,32,0,59,0,17,0,25,0\n2,0,62,0,44,0,12,0,57,0,51,0\n20,0,65,0,43,0,52,0,21,0,24,0\n19,0,40,0,7,0,42,0,35,0,5,0\n18,0,33,0,11,0,56,0,34,0,63,0\n55,0,48,0,64,0,41,0,30,0,37,0\n58,0,22,0,38,0,53,0,36,0,61,0\n60,0,6,0,50,0,26,0,15,0,12,0\n3,0,24,0,51,0,54,0,9,0,23,0\n56,0,10,0,52,0,40,0,45,0,57,0\n20,0,32,0,35,0,27,0,41,0,34,0\n21,0,2,0,36,0,49,0,48,0,39,0\n8,0,59,0,1,0,55,0,13,0,65,0\n19,0,25,0,46,0,30,0,28,0,29,0\n53,0,26,0,47,0,17,0,11,0,64,0\n44,0,5,0,16,0,38,0,33,0,60,0\n63,0,7,0,22,0,6,0,37,0,43,0\n61,0,4,0,31,0,62,0,18,0,15,0\n14,0,42,0,28,0,58,0,32,0,48,0\n39,0,9,0,12,0,57,0,55,0,47,0\n41,0,17,0,21,0,2,0,1,0,30,0\n56,0,24,0,16,0,46,0,53,0,5,0\n15,0,34,0,44,0,7,0,43,0,8,0\n18,0,35,0,10,0,54,0,11,0,20,0\n13,0,36,0,19,0,27,0,63,0,51,0\n4,0,25,0,58,0,50,0,3,0,64,0\n29,0,65,0,33,0,45,0,6,0,61,0\n22,0,42,0,23,0,26,0,59,0,31,0\n38,0,62,0,40,0,49,0,37,0,14,0\n60,0,56,0,41,0,52,0,7,0,9,0\n"
  },
  {
    "path": "schedules/65_11.csv",
    "content": "41,0,11,0,27,0,5,0,18,0,61,0\n34,0,42,0,12,0,21,0,64,0,23,0\n54,0,25,0,9,0,7,0,15,0,47,0\n51,0,4,0,26,0,16,0,14,0,49,0\n58,0,62,0,36,0,1,0,40,0,65,0\n6,0,55,0,59,0,32,0,37,0,28,0\n35,0,22,0,10,0,53,0,46,0,39,0\n52,0,50,0,3,0,56,0,19,0,31,0\n29,0,48,0,43,0,13,0,45,0,8,0\n24,0,20,0,17,0,2,0,30,0,57,0\n60,0,44,0,63,0,38,0,33,0,27,0\n65,0,51,0,7,0,35,0,41,0,55,0\n53,0,4,0,1,0,25,0,5,0,46,0\n49,0,12,0,43,0,6,0,47,0,56,0\n2,0,62,0,29,0,11,0,39,0,52,0\n10,0,30,0,19,0,60,0,13,0,9,0\n63,0,18,0,21,0,50,0,54,0,36,0\n44,0,24,0,45,0,14,0,23,0,37,0\n40,0,15,0,16,0,8,0,32,0,22,0\n31,0,28,0,48,0,20,0,61,0,42,0\n59,0,34,0,3,0,57,0,58,0,33,0\n64,0,17,0,36,0,26,0,38,0,9,0\n44,1,35,0,2,0,10,1,18,0,12,0\n50,1,56,0,37,0,15,1,13,0,25,0\n65,1,60,0,53,0,28,0,29,0,7,0\n11,0,40,0,49,0,1,0,14,0,59,0\n32,0,26,0,5,0,39,0,38,0,30,0\n16,0,57,0,3,0,63,0,46,0,23,0\n27,0,34,0,51,0,48,0,54,0,19,0\n21,0,31,0,6,0,62,0,41,0,24,0\n17,0,33,0,47,0,4,0,64,0,45,0\n43,0,42,0,55,0,22,0,61,0,52,0\n20,0,8,0,12,0,58,0,15,0,63,0\n39,0,28,0,3,0,16,0,51,0,44,0\n21,0,53,0,30,0,50,0,27,0,48,0\n9,0,23,0,32,0,31,0,65,0,2,0\n37,0,10,0,57,0,40,0,41,0,18,0\n6,0,46,0,7,0,61,0,59,0,45,0\n64,0,35,0,11,0,60,0,20,0,43,0\n56,0,54,0,29,0,22,0,26,0,17,0\n33,0,8,0,55,0,25,0,14,0,36,0\n38,0,13,0,34,0,52,0,47,0,4,0\n5,0,58,0,49,0,19,0,42,0,62,0\n24,0,28,0,63,0,1,0,7,0,44,0\n46,0,35,0,31,0,6,0,48,0,40,0\n12,0,14,0,9,0,41,0,50,0,16,0\n30,0,22,0,51,0,2,0,61,0,37,0\n13,0,26,0,59,0,5,0,33,0,52,0\n25,0,4,0,18,0,29,0,58,0,21,0\n47,0,57,0,42,0,65,0,10,0,32,0\n43,0,39,0,1,0,23,0,54,0,38,0\n11,0,3,0,62,0,17,0,27,0,8,0\n45,0,15,0,53,0,64,0,49,0,19,0\n24,0,60,0,55,0,20,0,56,0,34,0\n36,0,57,0,52,0,35,0,61,0,4,0\n7,0,21,0,33,0,31,0,1,0,10,0\n2,0,14,0,6,0,13,0,63,0,5,0\n16,0,27,0,42,0,25,0,43,0,59,0\n65,0,8,0,56,0,37,0,38,0,53,0\n29,0,32,0,64,0,62,0,50,0,44,0\n45,0,54,0,30,0,55,0,3,0,40,0\n11,0,22,0,9,0,34,0,49,0,24,0\n58,0,23,0,41,0,48,0,60,0,26,0\n19,0,15,0,39,0,36,0,47,0,28,0\n20,0,18,0,46,0,17,0,51,0,12,0\n65,0,25,0,16,0,64,0,30,0,6,0\n8,0,5,0,44,0,21,0,34,0,57,0\n2,0,40,0,50,0,4,0,42,0,38,0\n47,0,61,0,41,0,3,0,22,0,29,0\n7,0,43,0,31,0,12,0,58,0,37,0\n28,0,33,0,1,0,35,0,56,0,9,0\n53,0,13,0,23,0,18,0,51,0,11,0\n45,0,10,0,62,0,20,0,26,0,36,0\n32,0,46,0,14,0,27,0,52,0,19,0\n24,0,59,0,48,0,15,0,60,0,54,0\n49,0,17,0,39,0,63,0,55,0,37,0\n11,0,44,0,38,0,25,0,58,0,42,0\n57,0,5,0,51,0,8,0,9,0,31,0\n23,0,22,0,20,0,6,0,50,0,33,0\n45,0,19,0,65,0,59,0,16,0,18,0\n14,0,54,0,52,0,64,0,10,0,28,0\n4,0,7,0,12,0,3,0,32,0,48,0\n46,0,15,0,56,0,30,0,62,0,34,0\n47,0,27,0,1,0,55,0,26,0,2,0\n60,0,40,0,17,0,13,0,21,0,39,0\n63,0,36,0,41,0,24,0,53,0,43,0\n29,0,61,0,23,0,35,0,49,0,59,0\n25,0,28,0,45,0,5,0,22,0,12,0\n57,0,6,0,19,0,54,0,1,0,11,0\n42,0,18,0,56,0,39,0,7,0,14,0\n26,0,10,0,24,0,51,0,3,0,43,0\n63,0,48,0,4,0,62,0,64,0,9,0\n47,0,50,0,30,0,58,0,8,0,35,0\n36,0,37,0,60,0,46,0,2,0,16,0\n34,0,32,0,44,0,53,0,41,0,17,0\n29,0,15,0,38,0,31,0,55,0,27,0\n13,0,52,0,49,0,20,0,21,0,65,0\n61,0,40,0,39,0,33,0,24,0,12,0\n5,0,37,0,42,0,35,0,54,0,3,0\n41,0,19,0,28,0,4,0,30,0,23,0\n62,0,22,0,38,0,7,0,59,0,57,0\n6,0,8,0,49,0,27,0,2,0,10,0\n61,0,34,0,31,0,25,0,63,0,26,0\n46,0,55,0,64,0,58,0,18,0,13,0\n9,0,47,0,20,0,53,0,40,0,44,0\n60,0,1,0,50,0,52,0,45,0,51,0\n65,0,14,0,33,0,43,0,17,0,15,0\n36,0,21,0,48,0,56,0,32,0,11,0\n16,0,23,0,5,0,29,0,10,0,55,0\n62,0,54,0,59,0,30,0,44,0,12,0\n37,0,7,0,26,0,20,0,50,0,19,0\n41,0,15,0,8,0,42,0,45,0,1,0\n43,0,21,0,38,0,9,0,3,0,46,0\n56,0,39,0,63,0,65,0,4,0,11,0\n36,0,40,0,51,0,34,0,6,0,29,0\n35,0,32,0,27,0,24,0,13,0,64,0\n14,0,18,0,60,0,47,0,22,0,31,0\n25,0,49,0,48,0,57,0,28,0,17,0\n58,0,2,0,52,0,53,0,16,0,33,0\n61,0,10,0,50,0,44,0,15,0,65,0\n"
  },
  {
    "path": "schedules/65_12.csv",
    "content": "30,0,3,0,41,0,49,0,14,0,31,0\n23,0,46,0,35,0,45,0,10,0,11,0\n62,0,9,0,34,0,6,0,64,0,19,0\n16,0,15,0,5,0,22,0,32,0,50,0\n43,0,63,0,21,0,4,0,29,0,59,0\n7,0,18,0,27,0,57,0,33,0,47,0\n48,0,39,0,58,0,36,0,60,0,13,0\n54,0,1,0,37,0,28,0,53,0,61,0\n25,0,38,0,44,0,17,0,56,0,24,0\n8,0,20,0,2,0,52,0,40,0,12,0\n26,0,51,0,7,0,65,0,42,0,55,0\n6,0,3,0,18,0,30,0,46,0,15,0\n64,0,50,0,5,0,45,0,33,0,60,0\n39,0,25,0,49,0,53,0,59,0,32,0\n11,0,28,0,21,0,62,0,2,0,19,0\n20,0,16,0,4,0,54,0,41,0,56,0\n37,0,36,0,48,0,23,0,34,0,47,0\n51,0,27,0,22,0,52,0,24,0,61,0\n29,0,40,0,9,0,65,0,13,0,35,0\n17,0,14,0,43,0,63,0,26,0,55,0\n42,0,10,0,57,0,1,0,31,0,44,0\n12,0,8,0,47,0,38,0,58,0,11,0\n60,0,56,0,64,0,22,0,59,0,30,0\n53,0,33,0,39,0,35,0,52,0,6,0\n65,0,17,0,48,0,18,0,62,0,46,0\n26,0,43,0,37,0,16,0,32,0,44,0\n2,0,1,0,38,0,29,0,54,0,5,0\n40,0,31,0,21,0,36,0,25,0,50,0\n13,0,23,0,3,0,63,0,51,0,19,0\n42,0,14,0,27,0,49,0,12,0,28,0\n61,0,57,0,8,0,20,0,9,0,10,0\n34,0,45,0,15,0,55,0,4,0,58,0\n24,0,41,0,35,0,7,0,1,0,59,0\n39,0,3,0,62,0,22,0,37,0,40,0\n6,0,29,0,13,0,31,0,26,0,23,0\n32,0,11,0,18,0,44,0,61,0,36,0\n30,0,57,0,38,0,28,0,51,0,4,0\n63,0,5,0,56,0,27,0,12,0,34,0\n42,0,16,0,24,0,33,0,2,0,46,0\n65,0,52,0,58,0,55,0,49,0,50,0\n19,0,25,0,48,0,64,0,41,0,10,0\n53,0,60,0,47,0,45,0,14,0,21,0\n15,0,54,0,17,0,8,0,43,0,9,0\n20,0,18,0,13,0,7,0,23,0,22,0\n61,0,11,0,31,0,59,0,33,0,16,0\n64,0,35,0,26,0,38,0,4,0,12,0\n49,0,27,0,45,0,40,0,44,0,39,0\n52,0,62,0,48,0,43,0,57,0,15,0\n47,0,41,0,28,0,24,0,6,0,58,0\n51,0,2,0,25,0,9,0,14,0,54,0\n36,0,32,0,5,0,42,0,8,0,3,0\n20,0,65,0,56,0,1,0,19,0,60,0\n46,0,50,0,63,0,37,0,53,0,7,0\n55,0,34,0,10,0,29,0,30,0,21,0\n13,0,22,0,28,0,17,0,33,0,25,0\n27,0,32,0,31,0,54,0,48,0,64,0\n9,0,26,0,44,0,58,0,60,0,3,0\n23,0,62,0,4,0,5,0,49,0,61,0\n39,0,15,0,56,0,21,0,46,0,51,0\n1,0,35,0,30,0,63,0,8,0,37,0\n55,0,41,0,40,0,18,0,57,0,53,0\n59,0,52,0,42,0,29,0,17,0,47,0\n38,0,36,0,14,0,7,0,10,0,19,0\n43,0,24,0,11,0,20,0,50,0,45,0\n6,0,65,0,34,0,2,0,16,0,12,0\n8,0,62,0,53,0,56,0,26,0,27,0\n18,0,15,0,63,0,60,0,42,0,31,0\n23,0,58,0,30,0,40,0,7,0,17,0\n55,0,5,0,39,0,11,0,41,0,25,0\n20,0,6,0,59,0,45,0,38,0,48,0\n46,0,16,0,9,0,29,0,28,0,36,0\n65,0,4,0,22,0,37,0,10,0,14,0\n12,0,13,0,24,0,57,0,32,0,21,0\n2,0,44,0,54,0,19,0,35,0,33,0\n49,0,34,0,51,0,43,0,47,0,50,0\n61,0,1,0,3,0,52,0,64,0,17,0\n58,0,59,0,37,0,6,0,27,0,5,0\n22,0,21,0,42,0,9,0,11,0,48,0\n4,0,32,0,30,0,65,0,19,0,46,0\n62,0,31,0,50,0,20,0,35,0,44,0\n60,0,10,0,40,0,43,0,28,0,52,0\n34,0,1,0,26,0,23,0,25,0,18,0\n33,0,38,0,56,0,3,0,15,0,14,0\n61,0,63,0,7,0,39,0,45,0,2,0\n12,0,29,0,51,0,36,0,53,0,41,0\n47,0,64,0,13,0,55,0,16,0,8,0\n24,0,57,0,37,0,54,0,49,0,60,0\n14,0,32,0,6,0,11,0,40,0,1,0\n5,0,18,0,43,0,56,0,35,0,9,0\n58,0,45,0,25,0,62,0,51,0,42,0\n16,0,23,0,21,0,52,0,27,0,3,0\n33,0,10,0,49,0,12,0,17,0,63,0\n28,0,50,0,57,0,26,0,59,0,8,0\n22,0,41,0,38,0,13,0,46,0,34,0\n65,0,7,0,29,0,64,0,15,0,61,0\n31,0,36,0,4,0,2,0,24,0,55,0\n30,0,53,0,44,0,47,0,48,0,20,0\n54,0,19,0,50,0,39,0,12,0,18,0\n6,0,17,0,57,0,14,0,34,0,35,0\n8,0,21,0,33,0,23,0,41,0,65,0\n32,0,55,0,9,0,59,0,27,0,38,0\n4,0,25,0,63,0,44,0,15,0,11,0\n7,0,47,0,2,0,22,0,3,0,43,0\n58,0,62,0,16,0,39,0,1,0,10,0\n45,0,40,0,28,0,29,0,48,0,56,0\n53,0,19,0,26,0,24,0,31,0,5,0\n13,0,30,0,52,0,54,0,36,0,42,0\n49,0,37,0,46,0,51,0,64,0,20,0\n60,0,12,0,35,0,61,0,55,0,23,0\n3,0,33,0,50,0,1,0,48,0,4,0\n39,0,32,0,29,0,47,0,62,0,56,0\n26,0,52,0,11,0,9,0,30,0,7,0\n40,0,65,0,54,0,63,0,24,0,34,0\n17,0,42,0,45,0,31,0,41,0,37,0\n20,0,61,0,46,0,5,0,58,0,14,0\n16,0,64,0,49,0,38,0,21,0,18,0\n60,0,44,0,22,0,51,0,6,0,8,0\n15,0,59,0,10,0,53,0,2,0,13,0\n36,0,19,0,43,0,57,0,25,0,27,0\n28,0,55,0,33,0,39,0,34,0,20,0\n12,0,9,0,1,0,47,0,31,0,46,0\n63,0,60,0,41,0,32,0,38,0,62,0\n8,0,14,0,29,0,24,0,48,0,18,0\n35,0,49,0,36,0,15,0,22,0,26,0\n19,0,40,0,4,0,51,0,17,0,16,0\n54,0,59,0,45,0,10,0,65,0,3,0\n2,0,37,0,11,0,57,0,13,0,56,0\n43,0,64,0,23,0,58,0,53,0,42,0\n52,0,7,0,21,0,28,0,44,0,5,0\n27,0,61,0,50,0,6,0,25,0,30,0\n"
  },
  {
    "path": "schedules/65_13.csv",
    "content": "39,0,11,0,24,0,12,0,19,0,51,0\n18,0,26,0,6,0,52,0,3,0,54,0\n53,0,7,0,61,0,31,0,2,0,57,0\n38,0,8,0,47,0,60,0,27,0,48,0\n33,0,13,0,17,0,41,0,59,0,15,0\n56,0,49,0,40,0,55,0,50,0,42,0\n25,0,36,0,37,0,34,0,62,0,21,0\n32,0,63,0,65,0,58,0,20,0,4,0\n14,0,45,0,35,0,9,0,16,0,5,0\n30,0,10,0,22,0,43,0,46,0,44,0\n1,0,29,0,64,0,28,0,23,0,41,0\n34,0,54,0,37,0,8,0,7,0,12,0\n57,0,42,0,39,0,60,0,58,0,33,0\n27,0,47,0,63,0,17,0,16,0,45,0\n21,0,56,0,6,0,35,0,44,0,4,0\n55,0,51,0,46,0,32,0,23,0,2,0\n59,0,20,0,1,0,61,0,38,0,43,0\n53,0,52,0,29,0,62,0,3,0,9,0\n31,0,5,0,65,0,11,0,10,0,28,0\n49,0,18,0,13,0,40,0,22,0,36,0\n25,0,19,0,48,0,64,0,14,0,15,0\n50,0,26,0,21,0,30,0,24,0,38,0\n55,1,39,0,3,0,1,0,62,0,17,0\n23,0,43,0,8,0,42,0,35,0,28,0\n61,0,51,0,63,0,18,0,12,0,41,0\n4,0,16,0,10,0,40,0,11,0,25,0\n54,0,53,0,19,0,37,0,45,0,59,0\n34,0,9,0,30,0,15,0,2,0,56,0\n46,0,31,0,32,0,29,0,14,0,49,0\n58,0,47,0,22,0,50,0,64,0,24,0\n60,0,5,0,36,0,6,0,65,0,48,0\n13,0,20,0,52,0,33,0,7,0,27,0\n57,0,44,0,23,0,26,0,62,0,19,0\n28,0,30,0,45,0,40,0,59,0,51,0\n32,0,42,0,38,0,53,0,47,0,3,0\n63,0,56,0,37,0,17,0,61,0,11,0\n9,0,46,0,33,0,34,0,64,0,65,0\n41,0,36,0,31,0,35,0,26,0,43,0\n49,0,25,0,1,0,5,0,20,0,27,0\n44,0,50,0,12,0,48,0,52,0,2,0\n8,0,24,0,15,0,18,0,4,0,55,0\n57,0,21,0,7,0,22,0,6,0,16,0\n10,0,13,0,60,0,58,0,29,0,54,0\n14,0,30,0,37,0,39,0,64,0,27,0\n3,0,31,0,23,0,44,0,63,0,33,0\n25,0,12,0,15,0,1,0,42,0,65,0\n11,0,6,0,20,0,22,0,53,0,45,0\n56,0,16,0,62,0,32,0,60,0,26,0\n47,0,57,0,14,0,54,0,18,0,28,0\n39,0,5,0,13,0,43,0,34,0,50,0\n55,0,29,0,8,0,36,0,21,0,59,0\n52,0,10,0,35,0,4,0,61,0,2,0\n17,0,40,0,19,0,38,0,48,0,46,0\n24,0,58,0,49,0,9,0,41,0,7,0\n51,0,43,0,53,0,14,0,56,0,25,0\n63,0,26,0,39,0,29,0,6,0,42,0\n60,0,4,0,64,0,31,0,45,0,44,0\n22,0,34,0,35,0,54,0,1,0,48,0\n20,0,41,0,38,0,55,0,9,0,37,0\n27,0,8,0,40,0,51,0,23,0,15,0\n62,0,2,0,5,0,24,0,47,0,59,0\n57,0,33,0,36,0,11,0,30,0,52,0\n17,0,32,0,7,0,18,0,50,0,10,0\n21,0,65,0,12,0,49,0,19,0,3,0\n16,0,61,0,28,0,13,0,58,0,46,0\n26,0,14,0,51,0,20,0,34,0,47,0\n27,0,31,0,1,0,36,0,56,0,9,0\n48,0,17,0,55,0,11,0,7,0,4,0\n6,0,10,0,49,0,30,0,59,0,23,0\n22,0,12,0,28,0,62,0,60,0,41,0\n52,0,38,0,16,0,8,0,65,0,39,0\n25,0,2,0,29,0,19,0,58,0,18,0\n35,0,64,0,5,0,53,0,63,0,13,0\n61,0,3,0,32,0,24,0,40,0,45,0\n37,0,57,0,46,0,44,0,42,0,15,0\n54,0,33,0,50,0,21,0,43,0,55,0\n8,0,22,0,2,0,17,0,26,0,25,0\n23,0,36,0,10,0,12,0,56,0,53,0\n45,0,7,0,65,0,30,0,41,0,35,0\n59,0,48,0,32,0,24,0,63,0,1,0\n31,0,64,0,42,0,21,0,20,0,18,0\n38,0,28,0,49,0,15,0,33,0,52,0\n40,0,16,0,57,0,44,0,34,0,5,0\n19,0,9,0,14,0,6,0,60,0,61,0\n4,0,46,0,39,0,13,0,47,0,54,0\n62,0,11,0,58,0,27,0,43,0,3,0\n50,0,51,0,22,0,37,0,29,0,65,0\n34,0,2,0,18,0,23,0,45,0,49,0\n38,0,17,0,14,0,36,0,35,0,24,0\n19,0,5,0,41,0,4,0,52,0,42,0\n28,0,53,0,21,0,55,0,61,0,27,0\n9,0,15,0,50,0,63,0,62,0,54,0\n47,0,32,0,12,0,31,0,25,0,6,0\n39,0,29,0,43,0,7,0,44,0,40,0\n20,0,8,0,64,0,10,0,56,0,57,0\n48,0,3,0,58,0,51,0,30,0,13,0\n1,0,37,0,11,0,16,0,26,0,59,0\n46,0,60,0,24,0,33,0,25,0,53,0\n23,0,55,0,22,0,14,0,5,0,52,0\n27,0,2,0,44,0,41,0,54,0,65,0\n38,0,34,0,4,0,29,0,61,0,31,0\n36,0,45,0,3,0,50,0,20,0,39,0\n47,0,37,0,60,0,63,0,43,0,49,0\n19,0,30,0,6,0,28,0,1,0,8,0\n9,0,11,0,21,0,13,0,32,0,40,0\n35,0,59,0,12,0,64,0,57,0,58,0\n62,0,33,0,42,0,10,0,17,0,51,0\n18,0,7,0,48,0,46,0,26,0,56,0\n16,0,53,0,41,0,15,0,39,0,19,0\n20,0,44,0,24,0,28,0,13,0,34,0\n59,0,63,0,2,0,14,0,21,0,22,0\n50,0,4,0,1,0,60,0,51,0,57,0\n26,0,45,0,27,0,12,0,10,0,46,0\n9,0,29,0,35,0,11,0,47,0,33,0\n49,0,61,0,65,0,62,0,8,0,48,0\n58,0,6,0,23,0,37,0,40,0,38,0\n7,0,56,0,54,0,5,0,3,0,25,0\n18,0,16,0,42,0,55,0,36,0,30,0\n43,0,17,0,15,0,32,0,52,0,64,0\n31,0,62,0,13,0,8,0,19,0,45,0\n50,0,11,0,41,0,14,0,46,0,20,0\n65,0,56,0,27,0,57,0,29,0,24,0\n3,0,42,0,34,0,59,0,4,0,22,0\n44,0,55,0,10,0,1,0,18,0,47,0\n7,0,51,0,49,0,63,0,64,0,38,0\n33,0,43,0,16,0,12,0,6,0,2,0\n40,0,30,0,54,0,31,0,17,0,53,0\n23,0,25,0,21,0,39,0,48,0,9,0\n60,0,52,0,28,0,37,0,32,0,35,0\n36,0,15,0,26,0,58,0,5,0,61,0\n41,0,63,0,55,0,10,0,34,0,19,0\n11,0,44,0,53,0,50,0,49,0,8,0\n7,0,62,0,64,0,40,0,14,0,6,0\n56,0,4,0,48,0,37,0,28,0,33,0\n59,0,18,0,43,0,26,0,9,0,65,0\n12,0,20,0,29,0,30,0,17,0,5,0\n35,0,39,0,61,0,27,0,22,0,32,0\n58,0,1,0,52,0,47,0,46,0,21,0\n60,0,3,0,15,0,51,0,2,0,36,0\n24,0,23,0,42,0,31,0,16,0,54,0\n45,0,25,0,13,0,57,0,38,0,55,0\n"
  },
  {
    "path": "schedules/65_14.csv",
    "content": "44,0,38,0,1,0,32,0,39,0,17,0\n3,0,9,0,8,0,64,0,11,0,54,0\n34,0,53,0,7,0,46,0,35,0,51,0\n63,0,41,0,37,0,14,0,57,0,50,0\n6,0,13,0,62,0,5,0,30,0,21,0\n20,0,2,0,29,0,26,0,36,0,18,0\n22,0,31,0,33,0,19,0,40,0,59,0\n12,0,27,0,23,0,24,0,45,0,56,0\n4,0,52,0,42,0,16,0,58,0,49,0\n47,0,61,0,60,0,55,0,28,0,65,0\n25,0,15,0,43,0,48,0,10,0,20,0\n46,0,41,0,8,0,62,0,31,0,40,0\n32,0,1,0,56,0,29,0,63,0,54,0\n3,0,35,0,12,0,4,0,36,0,33,0\n19,0,39,0,26,0,28,0,49,0,17,0\n25,0,45,0,37,0,43,0,5,0,11,0\n14,0,21,0,23,0,61,0,51,0,42,0\n30,0,50,0,22,0,9,0,60,0,44,0\n18,0,59,0,65,0,27,0,52,0,6,0\n58,0,13,0,38,0,57,0,24,0,48,0\n16,0,53,0,10,0,7,0,2,0,47,0\n15,0,55,0,31,0,34,0,64,0,39,0\n60,1,19,0,8,0,21,1,36,0,63,0\n1,0,14,0,3,0,12,0,65,0,25,0\n6,0,28,0,23,0,37,0,22,0,54,0\n40,0,38,0,56,0,51,0,18,0,7,0\n16,0,5,0,17,0,35,0,64,0,13,0\n30,0,20,0,52,0,27,0,33,0,24,0\n34,0,50,0,15,0,53,0,45,0,49,0\n9,0,10,0,41,0,26,0,48,0,55,0\n47,0,11,0,4,0,59,0,32,0,57,0\n43,0,61,0,58,0,62,0,29,0,46,0\n2,0,42,0,14,0,44,0,17,0,31,0\n60,0,38,0,12,0,49,0,13,0,20,0\n64,0,33,0,5,0,22,0,27,0,7,0\n18,0,55,0,30,0,11,0,28,0,3,0\n65,0,36,0,35,0,63,0,51,0,62,0\n42,0,39,0,45,0,4,0,57,0,10,0\n48,0,21,0,16,0,50,0,46,0,56,0\n24,0,32,0,9,0,53,0,25,0,61,0\n40,0,34,0,6,0,29,0,8,0,23,0\n54,0,58,0,19,0,2,0,44,0,15,0\n47,0,41,0,52,0,59,0,37,0,1,0\n43,0,27,0,50,0,26,0,42,0,33,0\n28,0,14,0,62,0,20,0,38,0,53,0\n13,0,25,0,7,0,39,0,29,0,18,0\n24,0,11,0,49,0,22,0,17,0,40,0\n46,0,4,0,2,0,15,0,1,0,6,0\n31,0,21,0,54,0,12,0,36,0,47,0\n43,0,41,0,48,0,61,0,5,0,19,0\n55,0,34,0,16,0,26,0,63,0,58,0\n30,0,32,0,65,0,10,0,23,0,64,0\n57,0,51,0,45,0,60,0,35,0,52,0\n59,0,56,0,9,0,37,0,44,0,3,0\n8,0,54,0,13,0,49,0,14,0,41,0\n55,0,33,0,63,0,2,0,6,0,21,0\n11,0,10,0,39,0,29,0,38,0,19,0\n15,0,20,0,18,0,16,0,30,0,31,0\n64,0,9,0,62,0,51,0,12,0,59,0\n37,0,58,0,32,0,65,0,26,0,45,0\n44,0,5,0,36,0,23,0,4,0,1,0\n22,0,46,0,48,0,8,0,47,0,42,0\n52,0,40,0,61,0,27,0,53,0,3,0\n57,0,60,0,56,0,17,0,43,0,34,0\n25,0,24,0,28,0,35,0,50,0,7,0\n20,0,31,0,63,0,58,0,9,0,5,0\n45,0,48,0,11,0,54,0,62,0,33,0\n36,0,32,0,15,0,13,0,59,0,52,0\n1,0,46,0,57,0,22,0,64,0,55,0\n30,0,29,0,17,0,50,0,4,0,65,0\n60,0,18,0,53,0,39,0,8,0,37,0\n40,0,21,0,49,0,10,0,35,0,14,0\n27,0,47,0,19,0,38,0,25,0,34,0\n26,0,16,0,43,0,44,0,23,0,24,0\n2,0,51,0,28,0,41,0,42,0,3,0\n61,0,7,0,56,0,6,0,12,0,20,0\n45,0,35,0,40,0,9,0,55,0,52,0\n49,0,4,0,64,0,18,0,47,0,25,0\n10,0,24,0,29,0,1,0,8,0,33,0\n21,0,27,0,28,0,32,0,2,0,43,0\n15,0,14,0,26,0,62,0,5,0,60,0\n3,0,50,0,63,0,23,0,22,0,38,0\n53,0,65,0,19,0,56,0,42,0,13,0\n59,0,54,0,61,0,30,0,58,0,34,0\n39,0,48,0,51,0,12,0,11,0,16,0\n6,0,36,0,7,0,57,0,41,0,44,0\n17,0,37,0,60,0,31,0,46,0,3,0\n23,0,5,0,52,0,9,0,47,0,29,0\n22,0,2,0,24,0,34,0,54,0,4,0\n42,0,65,0,20,0,40,0,50,0,11,0\n14,0,63,0,44,0,18,0,64,0,48,0\n37,0,61,0,33,0,39,0,36,0,38,0\n8,0,45,0,59,0,28,0,56,0,16,0\n51,0,10,0,30,0,17,0,57,0,21,0\n12,0,1,0,58,0,35,0,43,0,19,0\n49,0,46,0,7,0,32,0,62,0,55,0\n6,0,31,0,25,0,41,0,26,0,53,0\n13,0,27,0,44,0,15,0,63,0,11,0\n52,0,2,0,54,0,64,0,50,0,61,0\n57,0,5,0,34,0,8,0,18,0,21,0\n20,0,22,0,35,0,23,0,32,0,19,0\n28,0,29,0,1,0,31,0,51,0,56,0\n33,0,59,0,58,0,60,0,25,0,14,0\n26,0,3,0,40,0,13,0,15,0,47,0\n49,0,62,0,10,0,27,0,37,0,16,0\n4,0,53,0,55,0,38,0,65,0,43,0\n46,0,39,0,12,0,30,0,45,0,41,0\n17,0,24,0,6,0,42,0,36,0,48,0\n9,0,1,0,11,0,7,0,58,0,21,0\n59,0,50,0,23,0,10,0,5,0,13,0\n34,0,62,0,2,0,52,0,25,0,56,0\n40,0,44,0,4,0,60,0,28,0,63,0\n12,0,42,0,55,0,15,0,29,0,37,0\n26,0,38,0,35,0,64,0,8,0,30,0\n27,0,36,0,49,0,9,0,46,0,53,0\n31,0,39,0,43,0,22,0,65,0,6,0\n16,0,33,0,18,0,17,0,41,0,61,0\n32,0,47,0,45,0,14,0,51,0,24,0\n3,0,57,0,54,0,19,0,20,0,7,0\n48,0,13,0,29,0,35,0,37,0,28,0\n42,0,10,0,38,0,34,0,9,0,36,0\n31,0,2,0,60,0,62,0,23,0,11,0\n55,0,43,0,8,0,18,0,32,0,52,0\n5,0,65,0,49,0,46,0,33,0,44,0\n30,0,4,0,27,0,7,0,48,0,14,0\n64,0,51,0,19,0,45,0,50,0,6,0\n12,0,57,0,26,0,53,0,40,0,1,0\n17,0,54,0,25,0,16,0,63,0,61,0\n59,0,3,0,39,0,21,0,24,0,20,0\n56,0,22,0,47,0,15,0,58,0,41,0\n33,0,50,0,48,0,31,0,32,0,34,0\n52,0,46,0,64,0,13,0,12,0,28,0\n16,0,19,0,6,0,9,0,65,0,14,0\n51,0,44,0,8,0,25,0,20,0,55,0\n41,0,60,0,23,0,15,0,38,0,27,0\n3,0,62,0,30,0,42,0,1,0,49,0\n11,0,57,0,61,0,4,0,26,0,56,0\n5,0,37,0,40,0,39,0,58,0,2,0\n53,0,29,0,36,0,21,0,45,0,22,0\n63,0,7,0,17,0,47,0,43,0,59,0\n35,0,24,0,54,0,18,0,10,0,46,0\n6,0,32,0,48,0,16,0,60,0,3,0\n9,0,15,0,23,0,28,0,33,0,57,0\n34,0,21,0,41,0,44,0,65,0,11,0\n51,0,38,0,49,0,2,0,59,0,5,0\n35,0,39,0,55,0,27,0,54,0,14,0\n17,0,58,0,50,0,53,0,8,0,12,0\n7,0,26,0,10,0,22,0,63,0,52,0\n43,0,56,0,36,0,40,0,30,0,25,0\n62,0,47,0,37,0,19,0,4,0,24,0\n18,0,13,0,61,0,1,0,31,0,45,0\n20,0,64,0,60,0,42,0,29,0,21,0\n"
  },
  {
    "path": "schedules/65_2.csv",
    "content": "33,0,56,0,7,0,20,0,24,0,49,0\n47,0,10,0,29,0,59,0,18,0,37,0\n15,0,4,0,14,0,28,0,21,0,48,0\n58,0,39,0,3,0,60,0,12,0,57,0\n42,0,53,0,26,0,6,0,36,0,63,0\n19,0,55,0,54,0,17,0,31,0,27,0\n43,0,46,0,22,0,44,0,9,0,23,0\n30,0,41,0,8,0,32,0,52,0,1,0\n50,0,61,0,51,0,65,0,40,0,25,0\n62,0,64,0,13,0,2,0,45,0,5,0\n34,0,11,0,7,0,38,0,35,0,16,0\n43,0,18,0,57,0,55,0,26,0,56,0\n49,0,54,0,60,0,10,0,23,0,6,0\n27,0,39,0,20,0,47,0,46,0,51,0\n2,0,40,0,44,0,59,0,30,0,4,0\n45,0,58,0,16,0,37,0,53,0,31,0\n9,0,52,0,65,0,63,0,34,0,15,0\n8,0,17,0,24,0,61,0,62,0,29,0\n14,0,5,0,12,0,22,0,19,0,25,0\n1,0,48,0,11,0,42,0,3,0,64,0\n35,0,50,0,21,0,41,0,36,0,13,0\n38,0,32,0,55,1,33,0,28,0,57,1\n"
  },
  {
    "path": "schedules/65_3.csv",
    "content": "22,0,11,0,32,0,47,0,30,0,40,0\n38,0,2,0,16,0,18,0,15,0,39,0\n37,0,42,0,46,0,1,0,49,0,57,0\n58,0,56,0,31,0,64,0,6,0,4,0\n45,0,8,0,51,0,27,0,7,0,35,0\n61,0,36,0,20,0,52,0,17,0,5,0\n65,0,23,0,60,0,25,0,13,0,14,0\n28,0,53,0,24,0,10,0,12,0,54,0\n44,0,26,0,34,0,50,0,62,0,29,0\n43,0,48,0,9,0,19,0,21,0,41,0\n55,0,63,0,3,0,59,0,33,0,51,0\n60,1,42,0,16,0,58,1,47,0,20,0\n45,1,56,0,10,0,65,0,61,0,22,0\n11,0,52,0,4,0,26,0,14,0,35,0\n17,0,38,0,40,0,28,0,62,0,43,0\n33,0,29,0,23,0,2,0,36,0,64,0\n13,0,15,0,8,0,37,0,19,0,24,0\n49,0,55,0,9,0,32,0,7,0,39,0\n59,0,1,0,54,0,41,0,50,0,31,0\n6,0,46,0,18,0,12,0,30,0,34,0\n44,0,57,0,25,0,21,0,53,0,63,0\n5,0,48,0,47,0,27,0,3,0,13,0\n11,0,7,0,19,0,33,0,56,0,42,0\n60,0,40,0,35,0,31,0,24,0,49,0\n10,0,34,0,41,0,23,0,51,0,58,0\n21,0,30,0,14,0,17,0,16,0,37,0\n52,0,39,0,64,0,48,0,22,0,1,0\n45,0,59,0,6,0,29,0,53,0,38,0\n28,0,50,0,5,0,2,0,25,0,46,0\n54,0,20,0,3,0,44,0,9,0,8,0\n32,0,43,0,27,0,61,0,57,0,4,0\n15,0,12,0,36,0,55,0,26,0,65,0\n63,0,62,0,58,0,18,0,60,0,45,0\n"
  },
  {
    "path": "schedules/65_4.csv",
    "content": "64,0,11,0,44,0,63,0,29,0,8,0\n27,0,20,0,32,0,61,0,45,0,54,0\n38,0,53,0,12,0,39,0,48,0,9,0\n4,0,18,0,35,0,55,0,16,0,51,0\n22,0,47,0,36,0,15,0,46,0,37,0\n43,0,26,0,13,0,33,0,21,0,40,0\n34,0,6,0,60,0,19,0,57,0,2,0\n14,0,50,0,62,0,52,0,23,0,42,0\n58,0,41,0,31,0,7,0,59,0,1,0\n49,0,65,0,25,0,5,0,10,0,24,0\n17,0,30,0,37,0,28,0,3,0,56,0\n34,0,9,0,21,0,20,0,63,0,4,0\n11,0,54,0,15,0,43,0,52,0,39,0\n57,0,22,0,14,0,16,0,31,0,53,0\n45,0,13,0,7,0,18,0,42,0,10,0\n47,0,5,0,35,0,62,0,30,0,6,0\n56,0,19,0,49,0,58,0,32,0,44,0\n12,0,55,0,24,0,33,0,1,0,46,0\n41,0,3,0,2,0,29,0,48,0,26,0\n38,0,40,0,61,0,64,0,28,0,60,0\n8,0,23,0,51,0,25,0,36,0,59,0\n27,0,50,0,44,0,17,0,65,0,31,0\n13,1,4,0,11,0,58,1,30,0,53,0\n62,1,19,0,29,0,55,1,7,0,20,0\n63,0,1,0,52,0,6,0,26,0,28,0\n56,0,54,0,46,0,57,0,25,0,35,0\n59,0,18,0,21,0,22,0,49,0,61,0\n42,0,65,0,39,0,34,0,47,0,8,0\n38,0,33,0,32,0,10,0,17,0,36,0\n9,0,24,0,60,0,45,0,23,0,3,0\n16,0,12,0,27,0,2,0,40,0,15,0\n43,0,37,0,51,0,50,0,41,0,5,0\n48,0,20,0,59,0,64,0,14,0,13,0\n55,0,30,0,52,0,34,0,38,0,44,0\n45,0,28,0,58,0,35,0,36,0,65,0\n31,0,62,0,26,0,60,0,11,0,12,0\n57,0,29,0,33,0,37,0,27,0,42,0\n47,0,64,0,17,0,2,0,43,0,4,0\n15,0,23,0,63,0,56,0,41,0,18,0\n39,0,6,0,10,0,51,0,3,0,22,0\n8,0,24,0,16,0,48,0,61,0,19,0\n21,0,7,0,46,0,5,0,14,0,32,0\n54,0,1,0,40,0,49,0,50,0,53,0\n25,0,13,0,62,0,9,0,58,0,55,0\n"
  },
  {
    "path": "schedules/65_5.csv",
    "content": "51,0,30,0,15,0,56,0,62,0,23,0\n14,0,64,0,8,0,3,0,53,0,25,0\n50,0,48,0,45,0,46,0,27,0,33,0\n59,0,32,0,60,0,57,0,37,0,10,0\n54,0,42,0,31,0,44,0,35,0,39,0\n18,0,29,0,28,0,2,0,4,0,9,0\n65,0,52,0,7,0,1,0,43,0,47,0\n20,0,6,0,13,0,5,0,41,0,21,0\n19,0,36,0,17,0,34,0,16,0,12,0\n49,0,22,0,63,0,38,0,61,0,11,0\n40,0,58,0,3,0,24,0,55,0,26,0\n53,0,50,0,4,0,47,0,31,0,57,0\n20,0,33,0,9,0,54,0,10,0,64,0\n45,0,17,0,32,0,29,0,65,0,44,0\n43,0,62,0,2,0,60,0,22,0,36,0\n13,0,34,0,46,0,58,0,15,0,18,0\n23,0,8,0,35,0,28,0,63,0,5,0\n19,0,56,0,1,0,14,0,11,0,41,0\n30,0,26,0,25,0,39,0,7,0,49,0\n21,0,16,0,59,0,42,0,40,0,38,0\n51,0,12,0,27,0,55,0,61,0,52,0\n24,0,48,0,36,0,6,0,37,0,63,0\n60,1,33,0,56,0,47,1,8,0,34,0\n17,1,14,0,46,0,9,1,30,0,43,0\n21,1,44,0,23,0,11,0,7,0,57,0\n28,0,26,0,10,0,42,0,45,0,12,0\n61,0,64,0,41,0,48,0,29,0,59,0\n65,0,24,0,39,0,13,0,19,0,2,0\n31,0,40,0,6,0,32,0,1,0,49,0\n53,0,18,0,5,0,16,0,52,0,62,0\n38,0,27,0,20,0,15,0,3,0,35,0\n22,0,37,0,51,0,54,0,4,0,58,0\n55,0,25,0,13,0,50,0,17,0,59,0\n24,0,33,0,1,0,30,0,28,0,57,0\n21,0,49,0,10,0,48,0,52,0,14,0\n43,0,5,0,29,0,38,0,26,0,31,0\n27,0,16,0,7,0,22,0,9,0,56,0\n55,0,62,0,4,0,64,0,19,0,35,0\n34,0,61,0,45,0,20,0,53,0,40,0\n44,0,3,0,41,0,50,0,12,0,37,0\n63,0,47,0,46,0,39,0,32,0,51,0\n18,0,54,0,11,0,36,0,8,0,65,0\n25,0,58,0,60,0,42,0,6,0,23,0\n15,0,40,0,52,0,2,0,33,0,17,0\n50,0,29,0,14,0,22,0,20,0,24,0\n10,0,7,0,34,0,51,0,31,0,3,0\n26,0,37,0,56,0,61,0,18,0,21,0\n23,0,39,0,9,0,45,0,55,0,36,0\n30,0,60,0,63,0,41,0,53,0,27,0\n28,0,47,0,59,0,6,0,19,0,54,0\n12,0,62,0,38,0,48,0,65,0,58,0\n11,0,4,0,5,0,32,0,15,0,25,0\n43,0,57,0,42,0,64,0,13,0,49,0\n44,0,8,0,16,0,1,0,2,0,46,0\n35,0,47,0,9,0,60,0,17,0,21,0\n"
  },
  {
    "path": "schedules/65_6.csv",
    "content": "7,0,3,0,11,0,42,0,39,0,65,0\n1,0,18,0,8,0,33,0,35,0,57,0\n37,0,25,0,17,0,62,0,30,0,54,0\n28,0,64,0,43,0,58,0,51,0,29,0\n9,0,21,0,6,0,49,0,24,0,16,0\n48,0,12,0,38,0,44,0,26,0,50,0\n59,0,2,0,45,0,36,0,15,0,46,0\n14,0,31,0,13,0,10,0,60,0,55,0\n63,0,20,0,47,0,61,0,4,0,5,0\n22,0,52,0,41,0,27,0,40,0,56,0\n23,0,19,0,11,0,34,0,53,0,32,0\n48,0,42,0,46,0,25,0,8,0,64,0\n51,0,13,0,50,0,36,0,17,0,9,0\n60,0,37,0,28,0,7,0,49,0,12,0\n62,0,47,0,41,0,1,0,14,0,59,0\n45,0,4,0,35,0,44,0,40,0,32,0\n39,0,21,0,54,0,31,0,26,0,63,0\n61,0,6,0,34,0,33,0,65,0,22,0\n5,0,29,0,57,0,52,0,38,0,23,0\n15,0,16,0,10,0,43,0,20,0,53,0\n3,0,55,0,58,0,19,0,2,0,56,0\n18,0,24,0,7,0,27,0,30,0,47,0\n9,0,28,0,34,0,41,0,31,0,42,0\n52,0,11,0,63,0,44,0,14,0,37,0\n8,0,59,0,50,0,4,0,65,0,53,0\n13,0,46,0,26,0,6,0,35,0,56,0\n45,0,18,0,49,0,48,0,29,0,17,0\n16,0,27,0,58,0,60,0,25,0,38,0\n24,0,5,0,3,0,40,0,54,0,43,0\n39,0,19,0,22,0,30,0,15,0,1,0\n2,0,10,0,12,0,23,0,62,0,51,0\n36,0,33,0,20,0,21,0,32,0,55,0\n57,0,61,0,59,0,64,0,26,0,37,0\n3,0,31,0,27,0,17,0,6,0,44,0\n4,0,41,0,7,0,38,0,46,0,19,0\n29,0,63,0,56,0,24,0,1,0,12,0\n15,0,48,0,40,0,21,0,23,0,58,0\n22,0,36,0,49,0,57,0,42,0,14,0\n53,0,30,0,64,0,55,0,5,0,35,0\n28,0,2,0,61,0,18,0,25,0,13,0\n32,0,51,0,65,0,16,0,47,0,52,0\n8,0,54,0,10,0,9,0,45,0,11,0\n60,0,62,0,34,0,50,0,20,0,39,0\n33,0,4,0,14,0,43,0,48,0,27,0\n58,0,46,0,53,0,57,0,24,0,31,0\n26,0,51,0,41,0,15,0,3,0,49,0\n40,0,19,0,6,0,29,0,37,0,42,0\n35,0,25,0,36,0,10,0,39,0,47,0\n23,0,50,0,55,0,63,0,45,0,22,0\n16,0,44,0,34,0,5,0,7,0,13,0\n62,0,56,0,38,0,11,0,28,0,33,0\n20,0,18,0,59,0,52,0,12,0,54,0\n43,0,32,0,61,0,30,0,9,0,60,0\n17,0,65,0,21,0,64,0,2,0,1,0\n37,0,23,0,39,0,8,0,41,0,24,0\n33,0,10,0,42,0,58,0,5,0,50,0\n25,0,11,0,57,0,51,0,6,0,20,0\n63,0,60,0,48,0,35,0,59,0,19,0\n45,0,30,0,21,0,3,0,28,0,52,0\n36,0,16,0,26,0,62,0,29,0,4,0\n44,0,9,0,2,0,53,0,22,0,47,0\n46,0,12,0,17,0,43,0,34,0,55,0\n64,0,40,0,65,0,18,0,38,0,14,0\n54,0,1,0,27,0,13,0,32,0,49,0\n31,0,56,0,8,0,61,0,7,0,15,0\n"
  },
  {
    "path": "schedules/65_7.csv",
    "content": "15,0,61,0,58,0,5,0,57,0,1,0\n54,0,21,0,31,0,19,0,20,0,50,0\n37,0,45,0,34,0,30,0,60,0,33,0\n4,0,51,0,7,0,44,0,41,0,11,0\n28,0,25,0,32,0,59,0,24,0,65,0\n12,0,47,0,6,0,10,0,62,0,22,0\n35,0,18,0,2,0,52,0,36,0,9,0\n16,0,63,0,14,0,42,0,17,0,29,0\n13,0,39,0,3,0,49,0,56,0,8,0\n26,0,23,0,55,0,27,0,38,0,64,0\n43,0,40,0,53,0,48,0,46,0,30,0\n22,0,28,0,1,0,9,0,44,0,50,0\n31,0,58,0,51,0,45,0,6,0,14,0\n11,0,52,0,21,0,10,0,42,0,13,0\n64,0,41,0,37,0,36,0,3,0,18,0\n33,0,16,0,39,0,27,0,43,0,54,0\n60,0,25,0,56,0,46,0,2,0,15,0\n19,0,23,0,47,0,7,0,24,0,61,0\n8,0,55,0,17,0,32,0,12,0,57,0\n59,0,63,0,20,0,35,0,38,0,40,0\n34,0,48,0,5,0,4,0,26,0,65,0\n62,0,29,0,33,0,49,0,53,0,44,0\n37,1,50,0,10,0,51,0,25,0,61,0\n24,0,60,0,1,0,8,0,31,0,16,0\n43,0,9,0,13,0,19,0,63,0,41,0\n22,0,35,0,3,0,46,0,32,0,58,0\n23,0,42,0,5,0,53,0,6,0,54,0\n36,0,48,0,56,0,47,0,55,0,20,0\n39,0,2,0,17,0,65,0,64,0,7,0\n27,0,57,0,40,0,45,0,62,0,11,0\n52,0,49,0,15,0,34,0,12,0,14,0\n38,0,30,0,21,0,29,0,28,0,4,0\n26,0,18,0,61,0,59,0,6,0,8,0\n41,0,65,0,54,0,56,0,35,0,10,0\n19,0,55,0,16,0,51,0,22,0,53,0\n45,0,5,0,7,0,43,0,25,0,20,0\n46,0,12,0,38,0,50,0,11,0,36,0\n59,0,42,0,57,0,2,0,30,0,44,0\n37,0,9,0,4,0,49,0,23,0,17,0\n3,0,34,0,28,0,27,0,63,0,31,0\n29,0,13,0,32,0,26,0,1,0,47,0\n64,0,40,0,58,0,33,0,24,0,52,0\n60,0,18,0,48,0,21,0,14,0,39,0\n15,0,51,0,43,0,62,0,35,0,59,0\n57,0,7,0,16,0,10,0,3,0,9,0\n22,0,8,0,29,0,20,0,2,0,34,0\n32,0,38,0,61,0,54,0,45,0,49,0\n63,0,6,0,1,0,36,0,65,0,21,0\n47,0,18,0,44,0,17,0,40,0,15,0\n50,0,42,0,27,0,41,0,48,0,58,0\n14,0,46,0,55,0,5,0,39,0,37,0\n53,0,4,0,60,0,12,0,64,0,13,0\n11,0,56,0,19,0,28,0,33,0,26,0\n31,0,52,0,30,0,62,0,25,0,23,0\n24,0,2,0,38,0,43,0,3,0,6,0\n49,0,46,0,42,0,1,0,7,0,18,0\n14,0,36,0,40,0,32,0,10,0,4,0\n5,0,27,0,17,0,60,0,59,0,22,0\n8,0,62,0,58,0,37,0,28,0,19,0\n15,0,45,0,41,0,24,0,29,0,39,0\n65,0,53,0,52,0,57,0,47,0,50,0\n35,0,61,0,31,0,33,0,55,0,13,0\n26,0,12,0,20,0,51,0,30,0,9,0\n44,0,56,0,21,0,34,0,16,0,23,0\n54,0,64,0,63,0,25,0,48,0,11,0\n6,0,32,0,37,0,7,0,27,0,52,0\n59,0,33,0,47,0,3,0,14,0,41,0\n15,0,65,0,9,0,8,0,42,0,38,0\n62,0,20,0,4,0,46,0,61,0,16,0\n49,0,21,0,25,0,26,0,22,0,40,0\n34,0,36,0,17,0,19,0,54,0,51,0\n12,0,48,0,45,0,23,0,28,0,2,0\n44,0,63,0,10,0,58,0,60,0,55,0\n29,0,57,0,64,0,56,0,31,0,43,0\n50,0,30,0,13,0,5,0,18,0,24,0\n53,0,39,0,1,0,11,0,35,0,37,0\n"
  },
  {
    "path": "schedules/65_8.csv",
    "content": "19,0,35,0,3,0,51,0,27,0,49,0\n50,0,30,0,44,0,41,0,53,0,4,0\n7,0,39,0,17,0,10,0,54,0,55,0\n59,0,62,0,56,0,8,0,34,0,9,0\n60,0,40,0,2,0,32,0,42,0,25,0\n1,0,6,0,15,0,48,0,28,0,5,0\n65,0,29,0,23,0,21,0,12,0,11,0\n52,0,46,0,16,0,64,0,22,0,38,0\n45,0,31,0,57,0,61,0,13,0,58,0\n20,0,18,0,47,0,33,0,36,0,63,0\n37,0,26,0,43,0,14,0,24,0,2,0\n51,0,50,0,23,0,39,0,32,0,15,0\n46,0,10,0,21,0,59,0,53,0,3,0\n5,0,13,0,64,0,19,0,7,0,42,0\n52,0,49,0,57,0,20,0,4,0,55,0\n11,0,48,0,35,0,26,0,47,0,28,0\n41,0,36,0,58,0,12,0,8,0,37,0\n56,0,29,0,33,0,17,0,25,0,43,0\n27,0,40,0,34,0,65,0,63,0,6,0\n62,0,24,0,38,0,18,0,31,0,30,0\n61,0,45,0,16,0,9,0,54,0,44,0\n22,0,14,0,47,0,1,0,60,0,13,0\n10,1,28,0,2,0,58,1,56,0,21,0\n53,0,19,0,65,0,20,0,43,0,23,0\n12,0,48,0,33,0,52,0,31,0,42,0\n63,0,15,0,8,0,44,0,38,0,49,0\n61,0,57,0,64,0,27,0,37,0,25,0\n54,0,29,0,30,0,35,0,5,0,46,0\n26,0,6,0,32,0,62,0,22,0,16,0\n17,0,4,0,1,0,34,0,24,0,51,0\n18,0,50,0,11,0,59,0,7,0,60,0\n41,0,39,0,9,0,3,0,36,0,40,0\n14,0,55,0,64,0,45,0,29,0,63,0\n62,0,53,0,28,0,27,0,54,0,52,0\n57,0,8,0,24,0,32,0,65,0,48,0\n10,0,15,0,58,0,18,0,34,0,42,0\n20,0,40,0,50,0,5,0,3,0,22,0\n47,0,51,0,55,0,25,0,31,0,44,0\n23,0,16,0,37,0,60,0,56,0,4,0\n33,0,11,0,46,0,9,0,1,0,2,0\n61,0,49,0,21,0,7,0,41,0,26,0\n38,0,43,0,36,0,35,0,59,0,6,0\n45,0,14,0,17,0,30,0,39,0,19,0\n13,0,56,0,27,0,12,0,55,0,50,0\n32,0,20,0,10,0,37,0,31,0,28,0\n16,0,29,0,53,0,57,0,47,0,15,0\n34,0,7,0,46,0,25,0,36,0,24,0\n26,0,3,0,63,0,43,0,58,0,54,0\n4,0,19,0,61,0,33,0,8,0,22,0\n52,0,21,0,44,0,17,0,60,0,6,0\n62,0,35,0,18,0,1,0,12,0,45,0\n41,0,11,0,40,0,38,0,51,0,14,0\n23,0,13,0,9,0,30,0,64,0,48,0\n39,0,65,0,2,0,59,0,49,0,5,0\n42,0,8,0,27,0,46,0,43,0,47,0\n62,0,36,0,60,0,15,0,19,0,55,0\n22,0,35,0,57,0,10,0,41,0,34,0\n13,0,24,0,29,0,28,0,40,0,33,0\n20,0,12,0,7,0,6,0,39,0,44,0\n42,0,37,0,49,0,54,0,1,0,50,0\n26,0,51,0,64,0,65,0,18,0,56,0\n4,0,25,0,9,0,21,0,14,0,32,0\n38,0,45,0,53,0,2,0,48,0,3,0\n63,0,31,0,5,0,16,0,17,0,11,0\n58,0,52,0,59,0,61,0,30,0,23,0\n12,0,28,0,60,0,49,0,64,0,34,0\n9,0,42,0,51,0,20,0,26,0,29,0\n65,0,37,0,45,0,33,0,15,0,7,0\n5,0,38,0,50,0,57,0,14,0,62,0\n10,0,48,0,44,0,19,0,40,0,43,0\n27,0,36,0,1,0,30,0,21,0,16,0\n22,0,4,0,31,0,63,0,35,0,2,0\n39,0,53,0,55,0,24,0,58,0,11,0\n32,0,54,0,59,0,56,0,41,0,47,0\n13,0,3,0,25,0,6,0,52,0,8,0\n46,0,18,0,61,0,17,0,23,0,28,0\n51,0,7,0,30,0,63,0,60,0,57,0\n26,0,34,0,39,0,33,0,27,0,31,0\n58,0,1,0,19,0,32,0,29,0,38,0\n54,0,22,0,25,0,12,0,24,0,59,0\n10,0,5,0,47,0,23,0,45,0,52,0\n37,0,35,0,44,0,13,0,65,0,46,0\n15,0,3,0,43,0,64,0,11,0,4,0\n42,0,56,0,36,0,61,0,53,0,14,0\n48,0,41,0,17,0,62,0,20,0,2,0\n21,0,8,0,40,0,18,0,16,0,55,0\n9,0,6,0,58,0,50,0,49,0,10,0\n"
  },
  {
    "path": "schedules/65_9.csv",
    "content": "57,0,18,0,34,0,63,0,45,0,43,0\n47,0,13,0,62,0,39,0,41,0,54,0\n53,0,3,0,19,0,16,0,33,0,20,0\n52,0,50,0,25,0,29,0,61,0,58,0\n46,0,32,0,12,0,36,0,38,0,6,0\n65,0,11,0,27,0,10,0,28,0,59,0\n23,0,5,0,31,0,64,0,49,0,2,0\n7,0,4,0,51,0,9,0,24,0,60,0\n40,0,26,0,35,0,42,0,8,0,37,0\n55,0,17,0,56,0,30,0,48,0,1,0\n15,0,14,0,38,0,21,0,22,0,44,0\n64,0,20,0,19,0,34,0,27,0,58,0\n2,0,11,0,63,0,65,0,36,0,62,0\n47,0,45,0,24,0,31,0,13,0,6,0\n4,0,61,0,57,0,40,0,23,0,56,0\n29,0,59,0,37,0,17,0,14,0,16,0\n5,0,21,0,42,0,32,0,52,0,18,0\n60,0,53,0,30,0,1,0,39,0,35,0\n26,0,12,0,51,0,55,0,50,0,48,0\n25,0,49,0,46,0,15,0,22,0,7,0\n28,0,9,0,41,0,44,0,43,0,33,0\n10,0,3,0,57,0,8,0,54,0,38,0\n5,1,1,0,45,0,24,1,23,0,20,0\n14,0,34,0,36,0,65,1,30,0,51,0\n63,0,61,0,22,0,27,0,26,0,53,0\n32,0,28,0,48,0,4,0,15,0,62,0\n9,0,21,0,37,0,3,0,47,0,58,0\n43,0,60,0,39,0,31,0,11,0,25,0\n13,0,50,0,33,0,17,0,49,0,18,0\n19,0,16,0,29,0,6,0,56,0,35,0\n7,0,2,0,44,0,12,0,40,0,10,0\n41,0,59,0,8,0,46,0,42,0,55,0\n54,0,64,0,65,0,52,0,53,0,43,0\n58,0,9,0,26,0,32,0,13,0,45,0\n50,0,38,0,23,0,16,0,15,0,60,0\n62,0,12,0,1,0,18,0,61,0,31,0\n2,0,27,0,3,0,24,0,41,0,29,0\n30,0,21,0,40,0,28,0,19,0,25,0\n37,0,55,0,54,0,22,0,11,0,33,0\n8,0,14,0,6,0,7,0,63,0,5,0\n4,0,17,0,46,0,64,0,47,0,51,0\n42,0,56,0,39,0,10,0,49,0,20,0\n57,0,48,0,36,0,59,0,52,0,44,0\n35,0,54,0,25,0,34,0,12,0,45,0\n55,0,1,0,31,0,28,0,5,0,38,0\n30,0,16,0,24,0,64,0,26,0,18,0\n63,0,9,0,13,0,42,0,23,0,19,0\n43,0,8,0,4,0,21,0,29,0,20,0\n61,0,49,0,48,0,60,0,14,0,65,0\n32,0,47,0,44,0,50,0,3,0,11,0\n35,0,22,0,59,0,58,0,56,0,2,0\n15,0,40,0,53,0,51,0,17,0,41,0\n33,0,10,0,46,0,34,0,62,0,52,0\n36,0,27,0,37,0,39,0,7,0,57,0\n6,0,29,0,65,0,18,0,20,0,44,0\n35,0,23,0,61,0,21,0,24,0,55,0\n49,0,58,0,15,0,63,0,3,0,1,0\n45,0,38,0,59,0,47,0,33,0,40,0\n32,0,31,0,51,0,56,0,8,0,22,0\n60,0,19,0,2,0,46,0,57,0,54,0\n27,0,7,0,62,0,43,0,30,0,17,0\n28,0,42,0,50,0,64,0,6,0,37,0\n39,0,34,0,10,0,48,0,9,0,16,0\n5,0,36,0,13,0,53,0,25,0,4,0\n52,0,11,0,26,0,12,0,14,0,41,0\n1,0,24,0,44,0,33,0,19,0,32,0\n38,0,29,0,51,0,62,0,49,0,37,0\n16,0,7,0,31,0,65,0,58,0,42,0\n50,0,4,0,21,0,63,0,59,0,54,0\n36,0,10,0,15,0,26,0,6,0,61,0\n64,0,25,0,3,0,35,0,55,0,14,0\n41,0,22,0,20,0,30,0,57,0,9,0\n2,0,17,0,52,0,28,0,45,0,39,0\n40,0,34,0,8,0,27,0,13,0,60,0\n11,0,48,0,18,0,23,0,46,0,53,0\n5,0,12,0,56,0,47,0,43,0,37,0\n63,0,64,0,41,0,10,0,25,0,32,0\n21,0,57,0,33,0,29,0,30,0,31,0\n65,0,39,0,26,0,19,0,4,0,38,0\n28,0,7,0,20,0,13,0,48,0,35,0\n8,0,24,0,52,0,34,0,49,0,11,0\n53,0,6,0,62,0,55,0,59,0,9,0\n23,0,17,0,60,0,3,0,12,0,42,0\n14,0,56,0,46,0,27,0,45,0,50,0\n54,0,58,0,5,0,61,0,51,0,44,0\n16,0,1,0,43,0,22,0,36,0,40,0\n47,0,18,0,19,0,2,0,15,0,8,0\n13,0,39,0,12,0,64,0,21,0,59,0\n35,0,65,0,50,0,57,0,41,0,62,0\n45,0,30,0,42,0,38,0,61,0,11,0\n48,0,22,0,46,0,5,0,3,0,40,0\n43,0,25,0,6,0,1,0,51,0,2,0\n10,0,53,0,58,0,14,0,28,0,24,0\n23,0,29,0,47,0,34,0,7,0,26,0\n9,0,18,0,54,0,36,0,17,0,31,0\n49,0,44,0,16,0,4,0,27,0,55,0\n20,0,37,0,52,0,63,0,60,0,32,0\n56,0,33,0,24,0,15,0,5,0,65,0\n"
  },
  {
    "path": "schedules/66_1.csv",
    "content": "9,0,46,0,47,0,3,0,48,0,16,0\n5,0,65,0,1,0,8,0,14,0,34,0\n2,0,32,0,19,0,24,0,53,0,66,0\n44,0,31,0,20,0,54,0,41,0,18,0\n30,0,21,0,7,0,37,0,56,0,17,0\n62,0,60,0,15,0,11,0,51,0,22,0\n55,0,33,0,45,0,50,0,25,0,49,0\n4,0,35,0,10,0,43,0,26,0,42,0\n13,0,39,0,12,0,58,0,38,0,64,0\n57,0,52,0,36,0,6,0,40,0,61,0\n28,0,63,0,29,0,27,0,59,0,23,0\n"
  },
  {
    "path": "schedules/66_10.csv",
    "content": "8,0,57,0,36,0,3,0,17,0,39,0\n65,0,35,0,15,0,66,0,47,0,58,0\n50,0,1,0,28,0,30,0,25,0,40,0\n63,0,56,0,10,0,19,0,27,0,23,0\n5,0,26,0,13,0,44,0,61,0,6,0\n20,0,64,0,31,0,34,0,38,0,51,0\n24,0,11,0,53,0,9,0,22,0,29,0\n7,0,41,0,49,0,32,0,21,0,4,0\n12,0,48,0,46,0,62,0,60,0,16,0\n55,0,43,0,54,0,52,0,2,0,14,0\n59,0,18,0,42,0,45,0,37,0,33,0\n19,0,65,0,39,0,27,0,53,0,40,0\n61,0,58,0,5,0,56,0,64,0,24,0\n22,0,16,0,21,0,62,0,26,0,25,0\n51,0,30,0,11,0,60,0,41,0,55,0\n32,0,37,0,17,0,66,0,20,0,54,0\n34,0,13,0,29,0,2,0,18,0,46,0\n12,0,14,0,45,0,63,0,6,0,8,0\n3,0,44,0,9,0,28,0,23,0,7,0\n47,0,4,0,10,0,33,0,48,0,36,0\n43,0,1,0,52,0,15,0,31,0,59,0\n49,0,42,0,38,0,57,0,35,0,50,0\n25,0,45,0,39,0,55,0,32,0,61,0\n12,0,17,0,2,0,51,0,7,0,19,0\n63,0,9,0,16,0,21,0,65,0,64,0\n54,0,27,0,1,0,5,0,36,0,60,0\n3,0,46,0,6,0,43,0,24,0,49,0\n29,0,57,0,4,0,23,0,30,0,34,0\n42,0,15,0,41,0,56,0,40,0,26,0\n59,0,47,0,53,0,13,0,66,0,38,0\n11,0,10,0,62,0,35,0,18,0,52,0\n22,0,31,0,14,0,28,0,37,0,48,0\n50,0,20,0,8,0,44,0,33,0,58,0\n9,0,41,0,2,0,1,0,5,0,57,0\n66,0,60,0,61,0,7,0,63,0,40,0\n17,0,4,0,26,0,18,0,38,0,43,0\n52,0,37,0,21,0,45,0,24,0,3,0\n28,0,19,0,36,0,29,0,11,0,46,0\n15,0,8,0,22,0,30,0,27,0,42,0\n39,0,58,0,13,0,16,0,10,0,12,0\n59,0,32,0,35,0,14,0,64,0,44,0\n34,0,54,0,62,0,51,0,56,0,33,0\n23,0,55,0,31,0,50,0,47,0,6,0\n25,0,48,0,49,0,20,0,65,0,53,0\n61,0,38,0,41,0,27,0,22,0,3,0\n19,0,5,0,30,0,32,0,43,0,13,0\n51,0,8,0,24,0,59,0,16,0,4,0\n36,0,6,0,18,0,66,0,15,0,9,0\n55,0,33,0,65,0,46,0,17,0,1,0\n50,0,21,0,10,0,60,0,28,0,14,0\n47,0,34,0,52,0,39,0,12,0,44,0\n48,0,7,0,29,0,45,0,56,0,35,0\n40,0,49,0,62,0,37,0,58,0,23,0\n25,0,2,0,20,0,11,0,63,0,42,0\n57,0,26,0,64,0,53,0,31,0,54,0\n12,0,33,0,28,0,38,0,5,0,24,0\n61,0,65,0,29,0,15,0,14,0,10,0\n30,0,32,0,45,0,62,0,9,0,27,0\n42,0,23,0,43,0,51,0,48,0,1,0\n25,0,3,0,19,0,4,0,58,0,54,0\n46,0,31,0,8,0,41,0,18,0,66,0\n21,0,34,0,2,0,53,0,35,0,6,0\n56,0,36,0,16,0,44,0,52,0,57,0\n37,0,40,0,13,0,64,0,11,0,55,0\n59,0,20,0,39,0,7,0,26,0,50,0\n49,0,60,0,63,0,22,0,17,0,47,0\n65,0,32,0,18,0,42,0,61,0,28,0\n44,0,27,0,45,0,31,0,58,0,2,0\n66,0,57,0,23,0,11,0,33,0,21,0\n16,0,7,0,15,0,19,0,50,0,34,0\n24,0,13,0,17,0,41,0,14,0,25,0\n48,0,10,0,9,0,59,0,49,0,54,0\n22,0,40,0,5,0,52,0,46,0,20,0\n29,0,38,0,47,0,43,0,8,0,62,0\n6,0,64,0,4,0,1,0,39,0,60,0\n37,0,26,0,63,0,36,0,35,0,30,0\n53,0,56,0,3,0,51,0,55,0,12,0\n16,0,45,0,23,0,5,0,20,0,17,0\n24,0,32,0,40,0,10,0,18,0,57,0\n9,0,42,0,31,0,19,0,60,0,13,0\n39,0,66,0,63,0,29,0,44,0,43,0\n65,0,4,0,50,0,54,0,12,0,22,0\n35,0,33,0,41,0,61,0,52,0,36,0\n11,0,14,0,58,0,53,0,1,0,7,0\n28,0,26,0,55,0,49,0,34,0,8,0\n48,0,2,0,62,0,15,0,64,0,3,0\n46,0,59,0,38,0,21,0,56,0,30,0\n27,0,25,0,6,0,47,0,51,0,37,0\n40,0,35,0,54,0,12,0,31,0,43,0\n60,0,23,0,52,0,8,0,26,0,32,0\n9,0,17,0,34,0,48,0,61,0,50,0\n41,0,58,0,28,0,63,0,59,0,55,0\n38,0,36,0,62,0,7,0,65,0,6,0\n53,0,37,0,44,0,15,0,46,0,4,0\n14,0,30,0,66,0,16,0,42,0,2,0\n19,0,56,0,1,0,20,0,24,0,47,0\n27,0,33,0,64,0,25,0,21,0,29,0\n22,0,51,0,57,0,10,0,13,0,45,0\n39,0,18,0,11,0,49,0,3,0,5,0\n43,0,37,0,60,0,41,0,65,0,34,0\n24,0,15,0,54,0,63,0,23,0,38,0\n56,0,32,0,50,0,53,0,2,0,36,0\n35,0,62,0,20,0,4,0,13,0,28,0\n61,0,12,0,27,0,59,0,11,0,57,0\n58,0,29,0,6,0,52,0,17,0,42,0\n5,0,8,0,7,0,31,0,25,0,10,0\n46,0,14,0,51,0,26,0,9,0,39,0\n66,0,1,0,64,0,45,0,22,0,49,0\n47,0,33,0,40,0,3,0,30,0,16,0\n44,0,55,0,19,0,18,0,48,0,21,0\n"
  },
  {
    "path": "schedules/66_11.csv",
    "content": "65,0,47,0,25,0,20,0,34,0,16,0\n32,0,40,0,8,0,13,0,10,0,52,0\n12,0,45,0,3,0,57,0,61,0,48,0\n33,0,17,0,31,0,26,0,53,0,51,0\n64,0,14,0,36,0,27,0,23,0,54,0\n4,0,41,0,29,0,58,0,62,0,1,0\n22,0,21,0,9,0,56,0,24,0,60,0\n15,0,2,0,39,0,19,0,44,0,46,0\n5,0,42,0,35,0,30,0,43,0,59,0\n28,0,50,0,55,0,63,0,49,0,37,0\n18,0,6,0,11,0,7,0,66,0,38,0\n4,0,26,0,16,0,22,0,40,0,14,0\n29,0,10,0,15,0,17,0,12,0,21,0\n30,0,5,0,64,0,19,0,41,0,60,0\n20,0,8,0,48,0,58,0,43,0,32,0\n66,0,11,0,54,0,65,0,55,0,35,0\n46,0,23,0,7,0,37,0,34,0,31,0\n18,0,9,0,62,0,57,0,47,0,52,0\n28,0,13,0,61,0,38,0,51,0,50,0\n2,0,44,0,53,0,36,0,25,0,56,0\n42,0,49,0,59,0,1,0,39,0,3,0\n6,0,63,0,27,0,45,0,33,0,24,0\n57,0,31,0,5,0,40,0,66,0,64,0\n43,0,54,0,29,0,22,0,19,0,18,0\n8,0,26,0,56,0,65,0,61,0,46,0\n41,0,48,0,52,0,39,0,36,0,4,0\n33,0,7,0,10,0,47,0,55,0,14,0\n38,0,60,0,1,0,45,0,15,0,25,0\n50,0,11,0,32,0,44,0,3,0,17,0\n35,0,24,0,27,0,49,0,58,0,34,0\n59,0,53,0,16,0,9,0,63,0,20,0\n23,0,21,0,62,0,28,0,51,0,6,0\n12,0,37,0,2,0,13,0,30,0,42,0\n32,0,31,0,65,0,5,0,60,0,39,0\n64,0,15,0,47,0,61,0,25,0,29,0\n4,0,34,0,18,0,53,0,3,0,10,0\n35,0,23,0,9,0,40,0,50,0,7,0\n13,0,66,0,16,0,30,0,24,0,58,0\n56,0,57,0,54,0,38,0,41,0,63,0\n22,0,36,0,55,0,12,0,6,0,20,0\n1,0,48,0,37,0,51,0,52,0,19,0\n62,0,59,0,28,0,44,0,33,0,26,0\n8,0,46,0,27,0,42,0,11,0,21,0\n43,0,45,0,14,0,2,0,17,0,49,0\n39,0,23,0,65,0,29,0,57,0,13,0\n51,0,24,0,32,0,30,0,53,0,7,0\n26,0,12,0,9,0,19,0,35,0,25,0\n58,0,37,0,22,0,63,0,15,0,62,0\n54,0,2,0,21,0,48,0,47,0,59,0\n20,0,40,0,17,0,66,0,3,0,41,0\n56,0,18,0,52,0,5,0,27,0,55,0\n64,0,46,0,1,0,14,0,50,0,6,0\n43,0,38,0,42,0,10,0,16,0,44,0\n61,0,36,0,49,0,33,0,60,0,34,0\n31,0,4,0,45,0,11,0,28,0,8,0\n19,0,21,0,53,0,22,0,13,0,41,0\n63,0,47,0,66,0,12,0,48,0,23,0\n43,0,17,0,25,0,27,0,62,0,7,0\n16,0,3,0,29,0,46,0,37,0,36,0\n55,0,49,0,64,0,65,0,59,0,38,0\n31,0,60,0,28,0,6,0,52,0,42,0\n35,0,4,0,57,0,32,0,15,0,56,0\n40,0,33,0,51,0,39,0,58,0,54,0\n18,0,45,0,30,0,26,0,50,0,20,0\n34,0,14,0,8,0,5,0,44,0,9,0\n61,0,11,0,24,0,1,0,2,0,10,0\n37,0,47,0,27,0,41,0,59,0,32,0\n53,0,15,0,46,0,65,0,66,0,52,0\n7,0,13,0,56,0,64,0,3,0,62,0\n55,0,40,0,25,0,48,0,45,0,42,0\n28,0,39,0,17,0,34,0,35,0,22,0\n49,0,10,0,6,0,57,0,9,0,30,0\n38,0,5,0,58,0,36,0,26,0,2,0\n16,0,19,0,1,0,8,0,18,0,23,0\n54,0,61,0,44,0,24,0,31,0,20,0\n11,0,63,0,60,0,14,0,29,0,51,0\n21,0,33,0,50,0,12,0,43,0,4,0\n65,0,28,0,22,0,2,0,7,0,32,0\n19,0,38,0,34,0,62,0,40,0,42,0\n45,0,52,0,53,0,64,0,16,0,54,0\n63,0,48,0,29,0,31,0,44,0,27,0\n61,0,51,0,12,0,5,0,4,0,59,0\n1,0,20,0,14,0,21,0,37,0,57,0\n17,0,58,0,9,0,46,0,55,0,30,0\n13,0,24,0,15,0,36,0,11,0,43,0\n49,0,3,0,60,0,23,0,47,0,26,0\n25,0,8,0,66,0,39,0,56,0,50,0\n41,0,10,0,18,0,33,0,35,0,6,0\n12,0,34,0,62,0,54,0,32,0,14,0\n53,0,13,0,27,0,30,0,15,0,1,0\n63,0,36,0,42,0,7,0,17,0,65,0\n16,0,43,0,39,0,60,0,61,0,55,0\n57,0,59,0,26,0,50,0,52,0,29,0\n40,0,46,0,48,0,28,0,24,0,18,0\n21,0,38,0,47,0,35,0,58,0,31,0\n44,0,66,0,37,0,4,0,64,0,9,0\n45,0,22,0,23,0,25,0,5,0,10,0\n2,0,51,0,3,0,41,0,8,0,6,0\n19,0,49,0,33,0,56,0,20,0,11,0\n30,0,63,0,61,0,40,0,36,0,21,0\n1,0,26,0,32,0,43,0,66,0,9,0\n44,0,7,0,58,0,12,0,60,0,52,0\n47,0,22,0,42,0,57,0,51,0,64,0\n34,0,56,0,6,0,15,0,48,0,16,0\n19,0,65,0,10,0,27,0,3,0,28,0\n20,0,38,0,23,0,24,0,17,0,4,0\n11,0,45,0,39,0,37,0,53,0,62,0\n14,0,25,0,59,0,18,0,13,0,31,0\n55,0,33,0,29,0,2,0,8,0,35,0\n54,0,41,0,5,0,49,0,50,0,46,0\n56,0,17,0,1,0,47,0,40,0,12,0\n24,0,26,0,10,0,39,0,37,0,64,0\n30,0,11,0,52,0,34,0,63,0,25,0\n3,0,48,0,9,0,38,0,33,0,22,0\n55,0,41,0,42,0,61,0,23,0,15,0\n44,0,21,0,51,0,18,0,49,0,65,0\n14,0,58,0,57,0,28,0,43,0,53,0\n59,0,36,0,19,0,32,0,45,0,66,0\n54,0,7,0,6,0,29,0,5,0,8,0\n62,0,31,0,50,0,2,0,27,0,16,0\n13,0,35,0,60,0,46,0,20,0,4,0\n"
  },
  {
    "path": "schedules/66_12.csv",
    "content": "22,0,66,0,25,0,7,0,11,0,10,0\n19,0,9,0,38,0,40,0,63,0,18,0\n29,0,3,0,49,0,53,0,35,0,23,0\n41,0,17,0,55,0,48,0,26,0,32,0\n33,0,5,0,37,0,34,0,24,0,46,0\n21,0,50,0,20,0,8,0,39,0,27,0\n45,0,52,0,2,0,30,0,36,0,12,0\n56,0,16,0,13,0,60,0,59,0,44,0\n15,0,64,0,42,0,47,0,54,0,51,0\n4,0,58,0,65,0,61,0,1,0,14,0\n28,0,62,0,43,0,31,0,6,0,57,0\n55,0,46,0,25,0,52,0,38,0,41,0\n48,0,33,0,2,0,7,0,3,0,8,0\n30,0,45,0,59,0,50,0,64,0,40,0\n26,0,18,0,9,0,37,0,53,0,12,0\n10,0,28,0,57,0,4,0,1,0,34,0\n6,0,21,0,23,0,65,0,22,0,42,0\n44,0,61,0,43,0,49,0,54,0,35,0\n11,0,19,0,58,0,47,0,16,0,32,0\n63,0,24,0,15,0,27,0,56,0,20,0\n66,0,60,0,39,0,29,0,36,0,31,0\n62,0,5,0,14,0,13,0,51,0,17,0\n25,0,45,0,48,0,10,0,61,0,21,0\n1,0,8,0,19,0,26,0,11,0,6,0\n35,0,2,0,4,0,32,0,56,0,38,0\n16,0,12,0,39,0,3,0,24,0,28,0\n40,0,27,0,42,0,44,0,52,0,53,0\n13,0,65,0,54,0,66,0,33,0,31,0\n9,0,47,0,15,0,46,0,23,0,7,0\n60,0,49,0,5,0,22,0,59,0,18,0\n57,0,17,0,14,0,63,0,64,0,55,0\n37,0,34,0,50,0,62,0,58,0,36,0\n41,0,30,0,51,0,20,0,29,0,43,0\n40,0,9,0,48,0,35,0,47,0,13,0\n33,0,39,0,18,0,25,0,15,0,11,0\n57,0,23,0,56,0,21,0,19,0,12,0\n32,0,6,0,36,0,54,0,16,0,61,0\n42,0,2,0,62,0,24,0,66,0,1,0\n3,0,5,0,34,0,52,0,8,0,31,0\n27,0,28,0,37,0,49,0,30,0,22,0\n64,0,51,0,53,0,38,0,10,0,46,0\n65,0,29,0,60,0,55,0,44,0,50,0\n45,0,20,0,58,0,4,0,17,0,43,0\n14,0,41,0,63,0,26,0,59,0,7,0\n61,0,32,0,40,0,15,0,57,0,22,0\n16,0,19,0,64,0,5,0,27,0,66,0\n56,0,62,0,65,0,53,0,47,0,28,0\n8,0,29,0,11,0,42,0,13,0,9,0\n34,0,59,0,39,0,30,0,23,0,17,0\n37,0,6,0,7,0,44,0,45,0,38,0\n4,0,54,0,63,0,3,0,50,0,48,0\n26,0,20,0,46,0,36,0,2,0,21,0\n35,0,24,0,41,0,18,0,58,0,31,0\n55,0,49,0,12,0,25,0,1,0,51,0\n14,0,52,0,43,0,60,0,33,0,10,0\n30,0,50,0,4,0,11,0,5,0,44,0\n19,0,20,0,22,0,53,0,54,0,48,0\n15,0,28,0,58,0,66,0,59,0,2,0\n35,0,6,0,64,0,37,0,39,0,13,0\n24,0,17,0,52,0,65,0,57,0,8,0\n26,0,25,0,61,0,3,0,27,0,47,0\n46,0,45,0,31,0,14,0,56,0,42,0\n55,0,9,0,10,0,16,0,49,0,33,0\n18,0,21,0,38,0,62,0,1,0,29,0\n51,0,12,0,34,0,60,0,41,0,40,0\n63,0,7,0,36,0,43,0,23,0,32,0\n65,0,26,0,44,0,20,0,64,0,59,0\n47,0,52,0,66,0,50,0,6,0,49,0\n8,0,35,0,15,0,45,0,16,0,62,0\n54,0,14,0,2,0,57,0,37,0,40,0\n25,0,53,0,33,0,31,0,30,0,32,0\n17,0,38,0,61,0,10,0,42,0,24,0\n28,0,11,0,23,0,48,0,60,0,55,0\n13,0,43,0,1,0,3,0,19,0,39,0\n12,0,29,0,22,0,63,0,58,0,34,0\n41,0,36,0,5,0,9,0,56,0,21,0\n27,0,46,0,51,0,18,0,4,0,7,0\n14,0,24,0,23,0,54,0,25,0,6,0\n59,0,53,0,61,0,55,0,8,0,43,0\n39,0,32,0,10,0,12,0,40,0,65,0\n35,0,1,0,37,0,50,0,60,0,17,0\n18,0,66,0,36,0,30,0,48,0,47,0\n46,0,52,0,58,0,13,0,62,0,26,0\n15,0,3,0,51,0,19,0,44,0,28,0\n31,0,21,0,22,0,64,0,9,0,4,0\n29,0,41,0,57,0,45,0,27,0,33,0\n38,0,7,0,42,0,5,0,20,0,16,0\n49,0,34,0,11,0,63,0,2,0,56,0\n55,0,65,0,52,0,37,0,15,0,19,0\n6,0,1,0,53,0,36,0,35,0,59,0\n44,0,62,0,47,0,22,0,39,0,41,0\n7,0,30,0,24,0,21,0,60,0,3,0\n48,0,38,0,34,0,27,0,32,0,14,0\n20,0,31,0,40,0,23,0,49,0,58,0\n43,0,63,0,10,0,18,0,5,0,42,0\n13,0,11,0,46,0,54,0,28,0,45,0\n26,0,66,0,50,0,9,0,57,0,51,0\n8,0,61,0,64,0,56,0,12,0,33,0\n2,0,17,0,16,0,29,0,4,0,25,0\n47,0,37,0,31,0,10,0,1,0,27,0\n32,0,49,0,21,0,13,0,14,0,19,0\n59,0,3,0,38,0,11,0,36,0,57,0\n42,0,20,0,33,0,12,0,50,0,35,0\n9,0,45,0,22,0,51,0,2,0,65,0\n16,0,18,0,44,0,34,0,52,0,23,0\n7,0,56,0,54,0,58,0,55,0,39,0\n40,0,6,0,28,0,17,0,5,0,26,0\n4,0,8,0,53,0,41,0,66,0,15,0\n24,0,29,0,48,0,25,0,64,0,43,0\n30,0,60,0,63,0,46,0,61,0,62,0\n54,0,20,0,32,0,1,0,9,0,52,0\n50,0,10,0,13,0,23,0,2,0,26,0\n22,0,36,0,47,0,33,0,17,0,8,0\n44,0,21,0,27,0,12,0,43,0,66,0\n18,0,3,0,30,0,6,0,55,0,56,0\n31,0,16,0,11,0,37,0,51,0,61,0\n62,0,40,0,4,0,7,0,29,0,64,0\n24,0,25,0,59,0,45,0,34,0,19,0\n5,0,53,0,15,0,14,0,58,0,60,0\n57,0,39,0,49,0,46,0,48,0,42,0\n38,0,35,0,63,0,41,0,65,0,28,0\n12,0,17,0,27,0,11,0,62,0,54,0\n56,0,29,0,59,0,37,0,32,0,52,0\n58,0,10,0,25,0,8,0,9,0,44,0\n55,0,36,0,13,0,4,0,24,0,22,0\n35,0,19,0,7,0,42,0,30,0,34,0\n28,0,61,0,66,0,18,0,20,0,14,0\n39,0,47,0,5,0,57,0,2,0,53,0\n3,0,1,0,23,0,64,0,45,0,41,0\n49,0,31,0,48,0,38,0,15,0,26,0\n65,0,50,0,43,0,46,0,40,0,16,0\n60,0,51,0,6,0,33,0,63,0,21,0\n"
  },
  {
    "path": "schedules/66_13.csv",
    "content": "56,0,1,0,18,0,50,0,66,0,17,0\n14,0,19,0,25,0,27,0,15,0,41,0\n36,0,16,0,26,0,57,0,59,0,22,0\n2,0,63,0,44,0,45,0,24,0,60,0\n31,0,61,0,49,0,28,0,58,0,51,0\n47,0,62,0,53,0,29,0,55,0,21,0\n52,0,64,0,38,0,20,0,34,0,30,0\n10,0,35,0,12,0,6,0,7,0,3,0\n33,0,32,0,11,0,46,0,43,0,42,0\n4,0,23,0,48,0,8,0,65,0,37,0\n54,0,5,0,9,0,40,0,39,0,13,0\n44,0,53,0,41,0,1,0,20,0,64,0\n57,0,51,0,60,0,38,0,7,0,15,0\n52,0,59,0,17,0,49,0,21,0,66,0\n8,0,4,0,22,0,10,0,37,0,58,0\n27,0,33,0,40,0,12,0,16,0,47,0\n48,0,54,0,62,0,43,0,63,0,56,0\n9,0,65,0,34,0,14,0,11,0,35,0\n42,0,6,0,28,0,23,0,25,0,45,0\n61,0,46,0,29,0,5,0,19,0,24,0\n3,0,55,0,2,0,36,0,30,0,50,0\n13,0,31,0,26,0,39,0,18,0,32,0\n16,0,11,0,66,0,7,0,58,0,4,0\n42,0,22,0,38,0,12,0,44,0,6,0\n9,0,10,0,57,0,8,0,51,0,29,0\n53,0,30,0,63,0,19,0,28,0,61,0\n50,0,5,0,31,0,48,0,25,0,35,0\n43,0,64,0,27,0,40,0,60,0,3,0\n46,0,24,0,2,0,65,0,18,0,41,0\n55,0,59,0,20,0,33,0,1,0,13,0\n39,0,15,0,17,0,45,0,36,0,37,0\n14,0,26,0,54,0,23,0,52,0,21,0\n47,0,32,0,34,0,56,0,62,0,49,0\n63,0,4,0,12,0,35,0,51,0,64,0\n28,0,57,0,24,0,55,0,48,0,42,0\n59,0,13,0,7,0,39,0,25,0,46,0\n66,0,53,0,54,0,2,0,11,0,36,0\n17,0,56,0,22,0,60,0,41,0,61,0\n58,0,31,0,16,0,52,0,14,0,9,0\n3,0,29,0,37,0,33,0,38,0,49,0\n50,0,20,0,19,0,26,0,34,0,43,0\n30,0,21,0,40,0,8,0,44,0,32,0\n23,0,27,0,18,0,10,0,45,0,62,0\n1,0,5,0,47,0,15,0,6,0,65,0\n39,0,35,0,56,0,42,0,14,0,24,0\n34,0,37,0,50,0,54,0,46,0,12,0\n44,0,40,0,52,0,19,0,48,0,59,0\n51,0,20,0,11,0,49,0,25,0,16,0\n30,0,43,0,18,0,9,0,53,0,22,0\n23,0,63,0,7,0,21,0,15,0,3,0\n60,0,1,0,32,0,5,0,58,0,36,0\n29,0,2,0,62,0,6,0,4,0,17,0\n55,0,38,0,41,0,61,0,10,0,66,0\n27,0,13,0,28,0,64,0,33,0,57,0\n26,0,65,0,47,0,31,0,8,0,45,0\n21,0,22,0,11,0,20,0,24,0,40,0\n4,0,16,0,52,0,3,0,5,0,43,0\n1,0,59,0,2,0,9,0,60,0,12,0\n34,0,62,0,19,0,10,0,28,0,39,0\n29,0,15,0,26,0,48,0,27,0,61,0\n46,0,6,0,45,0,58,0,56,0,38,0\n51,0,47,0,42,0,66,0,36,0,65,0\n33,0,30,0,31,0,63,0,41,0,54,0\n49,0,8,0,57,0,18,0,25,0,50,0\n17,0,64,0,23,0,35,0,32,0,55,0\n37,0,13,0,44,0,7,0,53,0,14,0\n40,0,1,0,15,0,28,0,52,0,46,0\n22,0,54,0,20,0,29,0,19,0,42,0\n12,0,41,0,21,0,43,0,47,0,60,0\n45,0,30,0,56,0,33,0,4,0,59,0\n44,0,16,0,61,0,13,0,23,0,50,0\n49,0,2,0,64,0,5,0,10,0,14,0\n25,0,24,0,9,0,26,0,66,0,37,0\n32,0,53,0,65,0,39,0,6,0,63,0\n7,0,36,0,57,0,18,0,62,0,31,0\n58,0,48,0,3,0,55,0,34,0,51,0\n8,0,35,0,17,0,27,0,11,0,38,0\n5,0,46,0,64,0,9,0,23,0,42,0\n26,0,21,0,28,0,16,0,56,0,10,0\n45,0,43,0,29,0,37,0,61,0,1,0\n34,0,3,0,39,0,66,0,60,0,44,0\n63,0,24,0,36,0,20,0,8,0,7,0\n38,0,14,0,51,0,62,0,40,0,50,0\n52,0,33,0,25,0,2,0,65,0,22,0\n18,0,58,0,15,0,59,0,41,0,35,0\n49,0,53,0,6,0,54,0,31,0,27,0\n12,0,57,0,55,0,19,0,32,0,4,0\n48,0,11,0,17,0,47,0,13,0,30,0\n45,0,5,0,61,0,66,0,62,0,20,0\n64,0,44,0,56,0,29,0,25,0,36,0\n40,0,58,0,63,0,10,0,42,0,18,0\n28,0,9,0,7,0,22,0,27,0,32,0\n24,0,13,0,15,0,34,0,12,0,49,0\n26,0,19,0,11,0,1,0,51,0,17,0\n54,0,59,0,3,0,57,0,47,0,14,0\n35,0,30,0,65,0,37,0,53,0,16,0\n48,0,21,0,43,0,2,0,31,0,38,0\n6,0,52,0,60,0,8,0,55,0,46,0\n33,0,23,0,41,0,39,0,4,0,50,0\n24,0,3,0,18,0,14,0,28,0,1,0\n5,0,16,0,51,0,54,0,17,0,45,0\n37,0,27,0,19,0,32,0,42,0,2,0\n63,0,25,0,59,0,34,0,38,0,29,0\n15,0,10,0,8,0,53,0,33,0,56,0\n20,0,4,0,13,0,23,0,31,0,60,0\n61,0,39,0,12,0,11,0,52,0,57,0\n50,0,47,0,21,0,22,0,58,0,64,0\n55,0,43,0,49,0,44,0,65,0,7,0\n36,0,6,0,41,0,9,0,48,0,40,0\n66,0,35,0,46,0,62,0,26,0,30,0\n32,0,25,0,38,0,1,0,54,0,16,0\n3,0,17,0,42,0,53,0,31,0,59,0\n5,0,39,0,27,0,55,0,18,0,22,0\n10,0,51,0,6,0,43,0,44,0,24,0\n56,0,65,0,40,0,26,0,7,0,50,0\n2,0,8,0,66,0,64,0,15,0,28,0\n46,0,57,0,37,0,20,0,47,0,63,0\n48,0,33,0,60,0,35,0,49,0,19,0\n14,0,58,0,23,0,12,0,29,0,30,0\n62,0,52,0,41,0,11,0,13,0,45,0\n9,0,36,0,61,0,4,0,34,0,21,0\n25,0,55,0,15,0,43,0,54,0,40,0\n66,0,1,0,22,0,48,0,31,0,63,0\n65,0,20,0,39,0,12,0,17,0,58,0\n59,0,47,0,56,0,51,0,23,0,2,0\n13,0,42,0,62,0,8,0,30,0,3,0\n21,0,44,0,46,0,35,0,57,0,27,0\n4,0,5,0,38,0,24,0,26,0,53,0\n14,0,36,0,34,0,33,0,6,0,61,0\n45,0,7,0,49,0,19,0,9,0,64,0\n29,0,11,0,60,0,16,0,28,0,18,0\n10,0,50,0,41,0,32,0,52,0,37,0\n22,0,31,0,24,0,15,0,59,0,62,0\n23,0,66,0,40,0,57,0,43,0,53,0\n49,0,51,0,39,0,1,0,30,0,46,0\n28,0,12,0,33,0,26,0,5,0,44,0\n7,0,35,0,29,0,2,0,52,0,61,0\n8,0,34,0,42,0,16,0,17,0,41,0\n18,0,37,0,11,0,64,0,21,0,6,0\n65,0,19,0,58,0,13,0,38,0,36,0\n60,0,4,0,10,0,25,0,47,0,54,0\n45,0,48,0,20,0,32,0,3,0,14,0\n50,0,56,0,55,0,9,0,63,0,27,0\n"
  },
  {
    "path": "schedules/66_14.csv",
    "content": "35,0,39,0,63,0,31,0,22,0,14,0\n6,0,2,0,30,0,24,0,36,0,13,0\n19,0,17,0,26,0,41,0,21,0,33,0\n60,0,50,0,34,0,27,0,66,0,52,0\n47,0,55,0,43,0,37,0,32,0,61,0\n15,0,29,0,45,0,1,0,53,0,20,0\n56,0,3,0,7,0,62,0,4,0,25,0\n9,0,49,0,10,0,46,0,59,0,48,0\n38,0,16,0,65,0,8,0,58,0,57,0\n23,0,12,0,44,0,40,0,18,0,5,0\n11,0,64,0,54,0,42,0,28,0,51,0\n6,0,43,0,39,0,15,0,56,0,52,0\n60,0,20,0,7,0,37,0,35,0,24,0\n33,0,34,0,58,0,31,0,30,0,4,0\n45,0,5,0,53,0,48,0,27,0,3,0\n64,0,40,0,55,0,29,0,59,0,25,0\n47,0,46,0,16,0,26,0,1,0,36,0\n51,0,66,0,38,0,13,0,12,0,61,0\n17,0,42,0,10,0,50,0,8,0,62,0\n65,0,28,0,44,0,9,0,14,0,2,0\n18,0,57,0,63,0,49,0,54,0,21,0\n32,0,23,0,11,0,22,0,41,0,19,0\n55,0,52,0,20,0,51,0,13,0,31,0\n37,0,36,0,3,0,34,0,24,0,61,0\n16,0,6,0,12,0,50,0,64,0,45,0\n8,0,35,0,27,0,1,0,15,0,18,0\n28,0,17,0,56,0,63,0,38,0,47,0\n25,0,19,0,9,0,66,0,58,0,53,0\n59,0,49,0,5,0,39,0,7,0,22,0\n32,0,14,0,30,0,10,0,60,0,23,0\n40,0,21,0,42,0,2,0,43,0,26,0\n4,0,33,0,54,0,11,0,65,0,46,0\n62,0,29,0,48,0,57,0,41,0,44,0\n9,0,51,0,3,0,22,0,36,0,8,0\n50,0,18,0,25,0,1,0,63,0,37,0\n28,0,47,0,23,0,15,0,66,0,13,0\n27,0,33,0,59,0,20,0,16,0,14,0\n21,0,56,0,38,0,46,0,42,0,5,0\n39,0,2,0,64,0,11,0,48,0,17,0\n60,0,62,0,58,0,43,0,29,0,49,0\n4,0,53,0,44,0,54,0,6,0,55,0\n19,0,10,0,12,0,65,0,52,0,61,0\n45,0,7,0,35,0,41,0,26,0,30,0\n31,0,40,0,24,0,32,0,57,0,34,0\n22,0,60,0,15,0,16,0,48,0,42,0\n13,0,62,0,9,0,11,0,29,0,21,0\n10,0,5,0,4,0,20,0,17,0,18,0\n37,0,52,0,64,0,26,0,63,0,65,0\n34,0,28,0,55,0,7,0,57,0,19,0\n6,0,31,0,59,0,27,0,30,0,38,0\n32,0,40,0,53,0,39,0,12,0,46,0\n24,0,51,0,14,0,25,0,45,0,43,0\n49,0,35,0,50,0,61,0,44,0,47,0\n33,0,3,0,1,0,23,0,54,0,58,0\n2,0,8,0,56,0,36,0,66,0,41,0\n19,0,15,0,64,0,4,0,13,0,38,0\n63,0,17,0,62,0,55,0,9,0,30,0\n22,0,40,0,29,0,45,0,31,0,18,0\n37,0,11,0,7,0,21,0,27,0,10,0\n3,0,2,0,58,0,52,0,14,0,47,0\n28,0,61,0,25,0,60,0,16,0,44,0\n23,0,33,0,36,0,57,0,50,0,53,0\n35,0,66,0,42,0,6,0,5,0,32,0\n41,0,39,0,48,0,43,0,12,0,1,0\n26,0,54,0,34,0,59,0,56,0,51,0\n65,0,8,0,20,0,46,0,24,0,49,0\n38,0,3,0,14,0,52,0,30,0,7,0\n40,0,62,0,36,0,35,0,15,0,21,0\n1,0,61,0,10,0,55,0,33,0,2,0\n56,0,22,0,32,0,37,0,58,0,44,0\n16,0,25,0,13,0,12,0,49,0,34,0\n50,0,41,0,9,0,5,0,64,0,20,0\n45,0,66,0,11,0,43,0,31,0,46,0\n24,0,23,0,19,0,42,0,27,0,63,0\n53,0,18,0,65,0,17,0,59,0,60,0\n26,0,39,0,28,0,29,0,4,0,8,0\n54,0,57,0,51,0,48,0,47,0,6,0\n46,0,21,0,50,0,3,0,30,0,25,0\n15,0,43,0,44,0,7,0,10,0,64,0\n61,0,17,0,22,0,24,0,27,0,1,0\n60,0,5,0,39,0,36,0,2,0,19,0\n12,0,47,0,8,0,56,0,33,0,62,0\n65,0,29,0,58,0,6,0,35,0,51,0\n26,0,13,0,53,0,32,0,38,0,18,0\n37,0,20,0,4,0,23,0,48,0,57,0\n41,0,55,0,31,0,14,0,49,0,42,0\n52,0,16,0,54,0,66,0,40,0,9,0\n45,0,59,0,34,0,28,0,63,0,11,0\n30,0,51,0,47,0,56,0,18,0,39,0\n61,0,43,0,5,0,57,0,4,0,6,0\n26,0,32,0,31,0,17,0,15,0,3,0\n54,0,46,0,9,0,55,0,35,0,23,0\n34,0,10,0,16,0,53,0,28,0,41,0\n2,0,25,0,65,0,22,0,20,0,62,0\n66,0,37,0,48,0,33,0,14,0,29,0\n19,0,50,0,38,0,49,0,45,0,40,0\n42,0,52,0,24,0,59,0,44,0,21,0\n27,0,36,0,11,0,64,0,58,0,12,0\n63,0,7,0,13,0,60,0,8,0,1,0\n23,0,43,0,30,0,16,0,22,0,28,0\n25,0,49,0,56,0,45,0,33,0,9,0\n20,0,34,0,19,0,17,0,44,0,6,0\n53,0,24,0,48,0,52,0,11,0,35,0\n21,0,26,0,66,0,27,0,55,0,58,0\n38,0,1,0,62,0,60,0,51,0,37,0\n13,0,42,0,3,0,57,0,39,0,10,0\n15,0,54,0,31,0,2,0,50,0,12,0\n40,0,8,0,7,0,64,0,47,0,65,0\n14,0,41,0,46,0,18,0,61,0,4,0\n32,0,63,0,59,0,29,0,36,0,5,0\n20,0,23,0,21,0,39,0,38,0,34,0\n9,0,22,0,57,0,12,0,26,0,60,0\n1,0,44,0,31,0,64,0,30,0,28,0\n53,0,51,0,27,0,4,0,2,0,49,0\n54,0,45,0,61,0,32,0,62,0,52,0\n8,0,14,0,11,0,56,0,19,0,40,0\n24,0,55,0,29,0,33,0,5,0,15,0\n6,0,42,0,41,0,47,0,25,0,37,0\n58,0,36,0,50,0,7,0,18,0,48,0\n16,0,63,0,66,0,3,0,65,0,10,0\n17,0,13,0,46,0,35,0,43,0,59,0\n64,0,9,0,27,0,39,0,24,0,32,0\n20,0,12,0,29,0,30,0,42,0,19,0\n4,0,21,0,55,0,45,0,47,0,60,0\n6,0,18,0,52,0,7,0,28,0,62,0\n34,0,14,0,13,0,26,0,50,0,5,0\n63,0,3,0,46,0,51,0,15,0,41,0\n35,0,38,0,44,0,11,0,33,0,16,0\n49,0,37,0,57,0,66,0,2,0,17,0\n1,0,56,0,58,0,59,0,40,0,10,0\n22,0,43,0,65,0,36,0,54,0,53,0\n8,0,48,0,61,0,25,0,23,0,31,0\n32,0,21,0,28,0,33,0,50,0,51,0\n4,0,66,0,12,0,24,0,63,0,44,0\n41,0,59,0,62,0,40,0,13,0,27,0\n39,0,30,0,45,0,65,0,54,0,37,0\n64,0,23,0,29,0,46,0,52,0,22,0\n7,0,58,0,61,0,53,0,56,0,42,0\n1,0,57,0,14,0,20,0,15,0,9,0\n6,0,60,0,49,0,26,0,3,0,11,0\n31,0,10,0,47,0,16,0,5,0,19,0\n25,0,36,0,48,0,55,0,38,0,17,0\n2,0,18,0,35,0,8,0,34,0,43,0\n22,0,53,0,64,0,21,0,62,0,14,0\n46,0,45,0,44,0,58,0,13,0,39,0\n6,0,33,0,20,0,63,0,60,0,40,0\n1,0,52,0,4,0,49,0,36,0,32,0\n15,0,42,0,47,0,9,0,65,0,34,0\n18,0,11,0,30,0,61,0,66,0,55,0\n27,0,57,0,5,0,25,0,54,0,8,0\n37,0,12,0,59,0,35,0,19,0,3,0\n24,0,26,0,56,0,28,0,48,0,50,0\n7,0,2,0,51,0,16,0,23,0,17,0\n41,0,10,0,43,0,38,0,29,0,31,0\n"
  },
  {
    "path": "schedules/66_2.csv",
    "content": "43,0,2,0,25,0,61,0,4,0,49,0\n28,0,16,0,3,0,7,0,35,0,12,0\n65,0,54,0,11,0,66,0,30,0,50,0\n22,0,32,0,23,0,55,0,5,0,24,0\n19,0,10,0,42,0,8,0,21,0,38,0\n53,0,40,0,52,0,41,0,34,0,29,0\n26,0,60,0,39,0,64,0,20,0,27,0\n13,0,62,0,48,0,14,0,9,0,51,0\n58,0,44,0,1,0,18,0,33,0,6,0\n15,0,63,0,45,0,46,0,17,0,59,0\n57,0,31,0,47,0,56,0,36,0,37,0\n60,0,66,0,29,0,43,0,23,0,28,0\n64,0,65,0,13,0,8,0,40,0,25,0\n27,0,42,0,5,0,49,0,62,0,35,0\n21,0,33,0,2,0,41,0,11,0,16,0\n56,0,6,0,34,0,24,0,3,0,15,0\n30,0,26,0,9,0,59,0,53,0,19,0\n38,0,46,0,37,0,61,0,52,0,22,0\n1,0,57,0,4,0,54,0,48,0,55,0\n50,0,17,0,7,0,39,0,31,0,58,0\n63,0,36,0,51,0,10,0,12,0,44,0\n14,0,18,0,20,0,47,0,32,0,45,0\n"
  },
  {
    "path": "schedules/66_3.csv",
    "content": "39,0,4,0,1,0,53,0,48,0,38,0\n64,0,33,0,9,0,32,0,44,0,59,0\n2,0,11,0,50,0,40,0,54,0,6,0\n61,0,58,0,30,0,3,0,25,0,37,0\n27,0,66,0,7,0,43,0,5,0,31,0\n28,0,12,0,10,0,45,0,55,0,63,0\n23,0,35,0,42,0,36,0,21,0,57,0\n49,0,15,0,24,0,46,0,51,0,56,0\n62,0,8,0,20,0,13,0,18,0,65,0\n26,0,29,0,60,0,17,0,34,0,22,0\n52,0,16,0,41,0,14,0,19,0,47,0\n28,0,48,0,58,0,50,0,36,0,43,0\n42,0,38,0,31,0,55,0,54,0,32,0\n7,0,51,0,25,0,33,0,39,0,21,0\n22,0,57,0,12,0,11,0,56,0,59,0\n19,0,60,0,5,0,8,0,3,0,9,0\n18,0,16,0,30,0,2,0,63,0,24,0\n62,0,1,0,17,0,15,0,41,0,44,0\n53,0,23,0,65,0,47,0,49,0,66,0\n45,0,20,0,52,0,27,0,6,0,29,0\n10,0,37,0,13,0,40,0,64,0,26,0\n34,0,14,0,46,0,4,0,61,0,35,0\n60,0,55,0,59,0,50,0,25,0,1,0\n32,0,41,0,2,0,8,0,66,0,58,0\n63,0,17,0,54,0,23,0,5,0,39,0\n52,0,40,0,3,0,22,0,18,0,53,0\n43,0,64,0,34,0,56,0,65,0,45,0\n27,0,21,0,61,0,15,0,10,0,16,0\n44,0,51,0,19,0,31,0,29,0,35,0\n6,0,4,0,13,0,30,0,28,0,57,0\n7,0,14,0,36,0,37,0,38,0,49,0\n33,0,11,0,46,0,62,0,26,0,48,0\n24,0,42,0,47,0,20,0,12,0,9,0\n"
  },
  {
    "path": "schedules/66_4.csv",
    "content": "6,0,15,0,44,0,45,0,28,0,52,0\n30,0,14,0,29,0,7,0,64,0,58,0\n62,0,54,0,4,0,16,0,63,0,17,0\n35,0,66,0,27,0,11,0,40,0,2,0\n42,0,3,0,43,0,8,0,53,0,57,0\n60,0,23,0,32,0,65,0,10,0,37,0\n48,0,49,0,18,0,39,0,36,0,41,0\n22,0,59,0,34,0,12,0,51,0,61,0\n19,0,31,0,56,0,25,0,46,0,33,0\n55,0,26,0,21,0,50,0,38,0,5,0\n9,0,20,0,24,0,1,0,13,0,47,0\n6,0,8,0,36,0,11,0,32,0,16,0\n17,0,45,0,29,0,37,0,49,0,3,0\n28,0,18,0,56,0,35,0,42,0,7,0\n48,0,15,0,53,0,59,0,54,0,23,0\n40,0,20,0,65,0,61,0,5,0,33,0\n34,0,66,0,24,0,26,0,62,0,64,0\n14,0,1,0,60,0,38,0,31,0,22,0\n12,0,25,0,47,0,44,0,2,0,21,0\n43,0,58,0,46,0,50,0,13,0,41,0\n39,0,10,0,51,0,19,0,9,0,63,0\n57,0,52,0,55,0,27,0,4,0,30,0\n17,0,38,0,42,0,24,0,32,0,15,0\n8,0,65,0,49,0,1,0,12,0,54,0\n61,0,47,0,46,0,48,0,26,0,29,0\n2,0,5,0,64,0,56,0,45,0,59,0\n4,0,39,0,35,0,53,0,34,0,33,0\n37,0,7,0,25,0,40,0,9,0,6,0\n43,0,16,0,30,0,19,0,22,0,44,0\n57,0,31,0,58,0,21,0,66,0,28,0\n52,0,11,0,10,0,3,0,20,0,41,0\n50,0,62,0,27,0,51,0,60,0,18,0\n63,0,36,0,13,0,14,0,55,0,23,0\n7,0,4,0,45,0,38,0,47,0,43,0\n28,0,32,0,2,0,34,0,1,0,46,0\n16,0,48,0,58,0,3,0,35,0,65,0\n41,0,37,0,5,0,8,0,19,0,62,0\n64,0,22,0,33,0,21,0,15,0,27,0\n44,0,55,0,24,0,61,0,10,0,18,0\n23,0,26,0,40,0,42,0,51,0,30,0\n53,0,63,0,60,0,6,0,20,0,49,0\n59,0,39,0,13,0,66,0,25,0,29,0\n11,0,57,0,54,0,14,0,56,0,9,0\n36,0,50,0,12,0,52,0,17,0,31,0\n"
  },
  {
    "path": "schedules/66_5.csv",
    "content": "42,0,3,0,33,0,25,0,14,0,21,0\n17,0,35,0,30,0,28,0,6,0,22,0\n44,0,4,0,63,0,49,0,34,0,5,0\n53,0,19,0,15,0,1,0,12,0,16,0\n48,0,56,0,37,0,61,0,58,0,32,0\n7,0,10,0,13,0,60,0,65,0,29,0\n46,0,51,0,23,0,26,0,39,0,9,0\n18,0,2,0,41,0,55,0,62,0,36,0\n24,0,11,0,27,0,57,0,31,0,45,0\n50,0,64,0,38,0,52,0,8,0,43,0\n54,0,66,0,47,0,20,0,59,0,40,0\n39,0,63,0,61,0,19,0,3,0,29,0\n2,0,6,0,16,0,26,0,33,0,56,0\n18,0,35,0,5,0,11,0,13,0,23,0\n14,0,27,0,60,0,34,0,50,0,17,0\n44,0,47,0,41,0,22,0,46,0,38,0\n43,0,31,0,32,0,10,0,36,0,30,0\n12,0,4,0,8,0,48,0,55,0,59,0\n62,0,45,0,21,0,54,0,1,0,49,0\n52,0,28,0,37,0,57,0,25,0,40,0\n53,0,24,0,51,0,58,0,66,0,7,0\n64,0,20,0,9,0,65,0,42,0,15,0\n46,0,43,0,14,0,13,0,56,0,4,0\n10,0,6,0,45,0,59,0,18,0,63,0\n16,0,31,0,17,0,52,0,55,0,54,0\n61,0,50,0,25,0,12,0,66,0,44,0\n28,0,36,0,53,0,60,0,11,0,64,0\n22,0,48,0,7,0,5,0,15,0,2,0\n47,0,33,0,34,0,24,0,62,0,39,0\n40,0,29,0,23,0,41,0,42,0,32,0\n27,0,21,0,19,0,37,0,51,0,65,0\n49,0,38,0,30,0,20,0,26,0,3,0\n8,0,58,0,1,0,35,0,9,0,57,0\n61,0,4,0,17,0,64,0,45,0,33,0\n56,0,50,0,59,0,23,0,62,0,28,0\n37,0,7,0,11,0,41,0,34,0,16,0\n60,0,31,0,25,0,19,0,6,0,38,0\n8,0,39,0,42,0,2,0,49,0,66,0\n52,0,5,0,47,0,53,0,10,0,9,0\n20,0,43,0,18,0,48,0,21,0,44,0\n65,0,30,0,55,0,24,0,1,0,14,0\n58,0,36,0,29,0,12,0,54,0,46,0\n35,0,26,0,15,0,63,0,40,0,27,0\n57,0,32,0,22,0,51,0,13,0,3,0\n34,0,66,0,19,0,48,0,45,0,52,0\n59,0,9,0,60,0,44,0,16,0,24,0\n36,0,39,0,4,0,7,0,20,0,50,0\n23,0,63,0,53,0,30,0,8,0,33,0\n1,0,32,0,46,0,5,0,25,0,27,0\n41,0,65,0,3,0,43,0,54,0,28,0\n26,0,58,0,13,0,62,0,42,0,17,0\n37,0,12,0,10,0,35,0,2,0,38,0\n21,0,29,0,57,0,15,0,56,0,47,0\n49,0,55,0,11,0,61,0,51,0,6,0\n18,0,64,0,40,0,14,0,22,0,31,0\n"
  },
  {
    "path": "schedules/66_6.csv",
    "content": "4,0,36,0,3,0,39,0,45,0,15,0\n16,0,21,0,47,0,40,0,48,0,59,0\n18,0,51,0,46,0,37,0,53,0,64,0\n28,0,63,0,60,0,32,0,24,0,30,0\n9,0,38,0,50,0,33,0,34,0,26,0\n41,0,5,0,22,0,14,0,25,0,31,0\n29,0,66,0,57,0,6,0,49,0,19,0\n7,0,43,0,65,0,56,0,13,0,55,0\n23,0,10,0,12,0,27,0,58,0,42,0\n61,0,52,0,20,0,54,0,2,0,62,0\n35,0,8,0,1,0,11,0,44,0,17,0\n21,0,31,0,15,0,51,0,50,0,19,0\n46,0,33,0,63,0,57,0,25,0,48,0\n28,0,45,0,18,0,13,0,58,0,34,0\n64,0,38,0,62,0,6,0,12,0,59,0\n37,0,23,0,52,0,65,0,35,0,40,0\n7,0,54,0,11,0,42,0,3,0,24,0\n20,0,47,0,55,0,8,0,5,0,29,0\n41,0,49,0,36,0,10,0,1,0,56,0\n2,0,30,0,17,0,4,0,66,0,9,0\n60,0,43,0,26,0,44,0,22,0,27,0\n14,0,32,0,53,0,39,0,61,0,16,0\n55,0,6,0,24,0,25,0,18,0,35,0\n56,0,54,0,12,0,50,0,45,0,46,0\n20,0,23,0,66,0,63,0,34,0,1,0\n49,0,40,0,51,0,11,0,9,0,5,0\n64,0,8,0,2,0,21,0,41,0,60,0\n33,0,13,0,3,0,32,0,31,0,29,0\n4,0,28,0,16,0,27,0,65,0,57,0\n17,0,43,0,58,0,47,0,39,0,38,0\n48,0,30,0,10,0,22,0,7,0,61,0\n53,0,44,0,42,0,52,0,59,0,15,0\n14,0,37,0,26,0,36,0,19,0,62,0\n64,0,31,0,27,0,20,0,9,0,45,0\n18,0,32,0,50,0,66,0,65,0,41,0\n38,0,56,0,35,0,5,0,4,0,63,0\n60,0,34,0,55,0,11,0,53,0,57,0\n51,0,42,0,36,0,48,0,13,0,2,0\n25,0,44,0,47,0,12,0,49,0,61,0\n30,0,15,0,46,0,26,0,16,0,58,0\n40,0,1,0,28,0,29,0,7,0,62,0\n52,0,24,0,17,0,14,0,10,0,21,0\n39,0,33,0,6,0,22,0,54,0,37,0\n59,0,19,0,43,0,8,0,23,0,3,0\n13,0,26,0,63,0,53,0,12,0,41,0\n25,0,16,0,29,0,36,0,60,0,50,0\n38,0,57,0,44,0,10,0,20,0,40,0\n62,0,35,0,27,0,51,0,33,0,66,0\n9,0,21,0,58,0,3,0,61,0,55,0\n11,0,30,0,18,0,47,0,56,0,52,0\n49,0,48,0,54,0,31,0,43,0,28,0\n45,0,59,0,5,0,2,0,24,0,37,0\n64,0,22,0,32,0,15,0,17,0,23,0\n7,0,6,0,34,0,8,0,14,0,4,0\n39,0,65,0,19,0,46,0,42,0,1,0\n35,0,36,0,53,0,9,0,28,0,47,0\n10,0,2,0,11,0,50,0,43,0,63,0\n3,0,66,0,52,0,55,0,16,0,22,0\n56,0,58,0,14,0,33,0,40,0,64,0\n41,0,27,0,59,0,17,0,29,0,46,0\n65,0,15,0,48,0,6,0,60,0,20,0\n34,0,19,0,5,0,30,0,54,0,44,0\n32,0,45,0,62,0,42,0,8,0,49,0\n37,0,13,0,1,0,38,0,21,0,25,0\n4,0,61,0,24,0,23,0,51,0,26,0\n12,0,7,0,39,0,18,0,57,0,31,0\n"
  },
  {
    "path": "schedules/66_7.csv",
    "content": "35,0,58,0,33,0,57,0,37,0,54,0\n51,0,36,0,3,0,11,0,59,0,66,0\n19,0,63,0,9,0,24,0,45,0,42,0\n13,0,31,0,47,0,16,0,46,0,49,0\n56,0,23,0,21,0,48,0,34,0,41,0\n1,0,15,0,8,0,30,0,52,0,27,0\n64,0,5,0,32,0,28,0,62,0,65,0\n6,0,18,0,17,0,39,0,12,0,22,0\n40,0,55,0,50,0,43,0,60,0,44,0\n53,0,26,0,14,0,10,0,61,0,4,0\n29,0,7,0,2,0,25,0,20,0,38,0\n62,0,1,0,21,0,49,0,51,0,19,0\n57,0,28,0,52,0,13,0,23,0,36,0\n65,0,43,0,45,0,59,0,54,0,17,0\n3,0,10,0,39,0,15,0,35,0,47,0\n7,0,31,0,8,0,26,0,18,0,50,0\n27,0,24,0,25,0,56,0,37,0,4,0\n53,0,20,0,5,0,60,0,34,0,22,0\n38,0,41,0,32,0,44,0,66,0,63,0\n11,0,48,0,42,0,40,0,61,0,12,0\n55,0,33,0,30,0,29,0,16,0,9,0\n64,0,6,0,2,0,58,0,14,0,46,0\n50,0,4,0,22,0,13,0,21,0,54,0\n18,0,10,0,52,0,51,0,41,0,45,0\n43,0,12,0,56,0,5,0,63,0,15,0\n42,0,3,0,16,0,37,0,44,0,62,0\n46,0,61,0,36,0,20,0,24,0,35,0\n6,0,59,0,38,0,57,0,55,0,1,0\n40,0,66,0,8,0,64,0,9,0,23,0\n25,0,34,0,26,0,47,0,19,0,65,0\n7,0,58,0,32,0,48,0,39,0,30,0\n31,0,29,0,60,0,17,0,14,0,11,0\n28,0,53,0,49,0,27,0,33,0,2,0\n45,0,21,0,20,0,15,0,6,0,37,0\n23,0,38,0,50,0,5,0,24,0,51,0\n26,0,16,0,58,0,36,0,22,0,56,0\n64,0,31,0,39,0,59,0,42,0,4,0\n61,0,9,0,54,0,2,0,28,0,17,0\n32,0,35,0,19,0,60,0,40,0,27,0\n65,0,49,0,44,0,7,0,14,0,57,0\n25,0,1,0,29,0,63,0,3,0,18,0\n43,0,41,0,53,0,30,0,13,0,11,0\n8,0,12,0,10,0,46,0,34,0,55,0\n48,0,66,0,47,0,52,0,33,0,62,0\n28,0,42,0,51,0,56,0,35,0,6,0\n15,0,44,0,22,0,25,0,61,0,31,0\n21,0,18,0,16,0,38,0,65,0,53,0\n57,0,32,0,24,0,43,0,2,0,8,0\n59,0,46,0,50,0,29,0,27,0,48,0\n52,0,34,0,63,0,7,0,11,0,64,0\n66,0,55,0,13,0,14,0,19,0,39,0\n20,0,30,0,54,0,62,0,23,0,12,0\n60,0,9,0,49,0,37,0,10,0,36,0\n47,0,45,0,40,0,1,0,4,0,58,0\n17,0,33,0,41,0,3,0,5,0,26,0\n46,0,27,0,39,0,57,0,63,0,21,0\n56,0,11,0,20,0,32,0,55,0,18,0\n28,0,30,0,37,0,59,0,22,0,19,0\n24,0,1,0,12,0,7,0,66,0,53,0\n6,0,3,0,60,0,54,0,8,0,48,0\n61,0,5,0,58,0,49,0,29,0,52,0\n40,0,33,0,13,0,65,0,51,0,31,0\n36,0,47,0,14,0,15,0,41,0,42,0\n34,0,4,0,62,0,9,0,38,0,43,0\n2,0,23,0,26,0,44,0,45,0,35,0\n25,0,64,0,17,0,16,0,50,0,10,0\n37,0,51,0,63,0,48,0,53,0,55,0\n7,0,54,0,19,0,31,0,5,0,36,0\n52,0,56,0,46,0,40,0,3,0,38,0\n11,0,44,0,28,0,58,0,21,0,24,0\n62,0,13,0,15,0,26,0,6,0,29,0\n39,0,65,0,2,0,50,0,1,0,41,0\n4,0,35,0,49,0,17,0,20,0,8,0\n66,0,27,0,45,0,16,0,61,0,34,0\n60,0,57,0,30,0,64,0,47,0,18,0\n12,0,59,0,14,0,32,0,25,0,9,0\n10,0,43,0,22,0,33,0,23,0,42,0\n"
  },
  {
    "path": "schedules/66_8.csv",
    "content": "15,0,58,0,37,0,20,0,26,0,41,0\n21,0,28,0,43,0,6,0,38,0,66,0\n10,0,9,0,31,0,33,0,51,0,24,0\n5,0,35,0,56,0,39,0,4,0,44,0\n60,0,64,0,62,0,16,0,55,0,12,0\n8,0,2,0,14,0,59,0,46,0,65,0\n19,0,25,0,40,0,49,0,18,0,42,0\n17,0,29,0,22,0,53,0,63,0,50,0\n61,0,7,0,34,0,3,0,23,0,45,0\n1,0,47,0,32,0,11,0,54,0,48,0\n27,0,52,0,30,0,57,0,36,0,13,0\n31,0,26,0,62,0,39,0,18,0,35,0\n58,0,53,0,9,0,25,0,38,0,16,0\n33,0,15,0,66,0,23,0,22,0,4,0\n3,0,17,0,21,0,48,0,20,0,32,0\n37,0,61,0,27,0,8,0,47,0,56,0\n40,0,41,0,57,0,29,0,7,0,43,0\n65,0,28,0,14,0,34,0,52,0,54,0\n46,0,10,0,13,0,5,0,1,0,63,0\n30,0,24,0,44,0,59,0,49,0,64,0\n55,0,60,0,11,0,19,0,6,0,51,0\n36,0,50,0,45,0,42,0,12,0,2,0\n43,0,57,0,9,0,61,0,62,0,54,0\n21,0,7,0,13,0,33,0,8,0,18,0\n40,0,47,0,26,0,28,0,4,0,53,0\n55,0,52,0,49,0,39,0,63,0,41,0\n46,0,34,0,12,0,20,0,30,0,31,0\n29,0,42,0,38,0,59,0,15,0,60,0\n32,0,64,0,5,0,22,0,36,0,6,0\n48,0,66,0,35,0,37,0,25,0,45,0\n3,0,16,0,1,0,24,0,56,0,2,0\n65,0,10,0,17,0,23,0,44,0,11,0\n19,0,14,0,58,0,50,0,51,0,27,0\n39,0,60,0,47,0,7,0,36,0,9,0\n12,0,5,0,54,0,52,0,26,0,29,0\n63,0,28,0,42,0,48,0,31,0,37,0\n57,0,59,0,4,0,16,0,18,0,10,0\n1,0,65,0,51,0,21,0,64,0,61,0\n38,0,13,0,14,0,11,0,22,0,40,0\n23,0,25,0,46,0,41,0,24,0,27,0\n33,0,53,0,20,0,6,0,2,0,35,0\n44,0,19,0,43,0,34,0,32,0,15,0\n49,0,56,0,62,0,58,0,45,0,17,0\n66,0,8,0,50,0,30,0,55,0,3,0\n42,0,39,0,22,0,21,0,16,0,46,0\n12,0,35,0,41,0,48,0,59,0,51,0\n18,0,44,0,52,0,9,0,2,0,61,0\n4,0,20,0,29,0,49,0,1,0,27,0\n13,0,50,0,60,0,43,0,37,0,23,0\n33,0,54,0,45,0,40,0,64,0,55,0\n65,0,11,0,58,0,7,0,66,0,30,0\n24,0,38,0,19,0,47,0,17,0,5,0\n53,0,25,0,14,0,36,0,31,0,3,0\n26,0,63,0,6,0,56,0,57,0,34,0\n10,0,15,0,28,0,62,0,32,0,8,0\n66,0,12,0,40,0,9,0,1,0,44,0\n11,0,50,0,4,0,21,0,52,0,45,0\n3,0,18,0,51,0,37,0,5,0,49,0\n48,0,26,0,33,0,46,0,61,0,60,0\n30,0,6,0,39,0,27,0,15,0,17,0\n19,0,7,0,22,0,25,0,62,0,59,0\n63,0,36,0,23,0,38,0,8,0,54,0\n65,0,41,0,42,0,13,0,56,0,53,0\n10,0,20,0,43,0,47,0,14,0,64,0\n31,0,55,0,2,0,58,0,57,0,32,0\n35,0,24,0,16,0,28,0,29,0,34,0\n48,0,62,0,6,0,44,0,40,0,50,0\n27,0,11,0,42,0,9,0,3,0,33,0\n21,0,37,0,54,0,30,0,10,0,19,0\n56,0,20,0,59,0,55,0,5,0,66,0\n18,0,63,0,45,0,14,0,16,0,43,0\n60,0,49,0,22,0,35,0,47,0,65,0\n8,0,53,0,57,0,39,0,24,0,12,0\n36,0,61,0,41,0,17,0,4,0,34,0\n52,0,51,0,32,0,7,0,46,0,38,0\n64,0,2,0,13,0,25,0,15,0,26,0\n1,0,23,0,29,0,28,0,58,0,31,0\n18,0,27,0,54,0,53,0,66,0,60,0\n30,0,5,0,62,0,33,0,14,0,41,0\n4,0,6,0,55,0,37,0,65,0,24,0\n15,0,11,0,36,0,56,0,40,0,46,0\n61,0,29,0,39,0,32,0,25,0,13,0\n45,0,51,0,57,0,44,0,28,0,20,0\n9,0,64,0,63,0,35,0,3,0,19,0\n48,0,34,0,2,0,38,0,22,0,10,0\n31,0,7,0,16,0,50,0,26,0,49,0\n12,0,47,0,59,0,58,0,23,0,21,0\n1,0,43,0,52,0,8,0,42,0,17,0\n"
  },
  {
    "path": "schedules/66_9.csv",
    "content": "38,0,26,0,56,0,19,0,43,0,57,0\n61,0,47,0,9,0,34,0,44,0,33,0\n63,0,51,0,6,0,21,0,53,0,18,0\n20,0,2,0,48,0,37,0,15,0,46,0\n12,0,60,0,5,0,65,0,31,0,41,0\n1,0,62,0,7,0,54,0,10,0,17,0\n24,0,64,0,66,0,55,0,52,0,32,0\n23,0,8,0,28,0,42,0,11,0,45,0\n50,0,22,0,13,0,25,0,39,0,59,0\n58,0,14,0,3,0,30,0,36,0,40,0\n29,0,16,0,35,0,27,0,4,0,49,0\n17,0,55,0,60,0,2,0,38,0,6,0\n63,0,57,0,9,0,12,0,54,0,46,0\n56,0,18,0,28,0,34,0,41,0,61,0\n21,0,44,0,64,0,8,0,30,0,65,0\n27,0,29,0,1,0,23,0,58,0,59,0\n15,0,24,0,16,0,5,0,19,0,33,0\n48,0,4,0,7,0,13,0,49,0,11,0\n3,0,53,0,22,0,26,0,31,0,52,0\n20,0,45,0,32,0,40,0,10,0,25,0\n37,0,14,0,43,0,50,0,62,0,66,0\n36,0,42,0,39,0,35,0,51,0,47,0\n48,0,30,0,27,0,55,0,9,0,19,0\n16,0,41,0,28,0,2,0,58,0,17,0\n40,0,60,0,29,0,24,0,44,0,57,0\n14,0,63,0,56,0,15,0,31,0,8,0\n49,0,51,0,20,0,66,0,65,0,22,0\n3,0,18,0,45,0,59,0,54,0,43,0\n25,0,7,0,52,0,33,0,6,0,36,0\n1,0,39,0,26,0,38,0,34,0,64,0\n37,0,12,0,32,0,47,0,23,0,13,0\n10,0,11,0,5,0,50,0,35,0,53,0\n62,0,4,0,61,0,46,0,21,0,42,0\n31,0,43,0,40,0,16,0,2,0,7,0\n39,0,64,0,63,0,33,0,20,0,58,0\n1,0,49,0,59,0,47,0,28,0,14,0\n26,0,41,0,44,0,45,0,66,0,27,0\n38,0,10,0,12,0,52,0,4,0,8,0\n19,0,35,0,60,0,37,0,22,0,17,0\n56,0,21,0,25,0,54,0,24,0,23,0\n42,0,18,0,57,0,32,0,53,0,48,0\n11,0,30,0,6,0,62,0,15,0,65,0\n13,0,5,0,9,0,61,0,36,0,55,0\n50,0,46,0,29,0,51,0,34,0,3,0\n21,0,22,0,40,0,27,0,33,0,12,0\n24,0,7,0,41,0,48,0,35,0,38,0\n52,0,18,0,2,0,23,0,39,0,14,0\n64,0,37,0,10,0,59,0,42,0,9,0\n51,0,62,0,36,0,56,0,16,0,45,0\n15,0,55,0,6,0,29,0,49,0,26,0\n66,0,54,0,58,0,11,0,60,0,61,0\n25,0,57,0,4,0,3,0,65,0,28,0\n13,0,32,0,46,0,44,0,1,0,53,0\n17,0,34,0,43,0,63,0,5,0,30,0\n47,0,19,0,8,0,20,0,31,0,50,0\n61,0,45,0,39,0,24,0,48,0,12,0\n3,0,15,0,23,0,64,0,60,0,7,0\n38,0,44,0,25,0,49,0,62,0,58,0\n1,0,2,0,21,0,36,0,26,0,5,0\n42,0,50,0,16,0,20,0,63,0,55,0\n52,0,19,0,11,0,59,0,51,0,40,0\n56,0,17,0,53,0,4,0,9,0,66,0\n31,0,33,0,46,0,35,0,43,0,28,0\n30,0,54,0,41,0,32,0,47,0,22,0\n14,0,65,0,18,0,10,0,29,0,13,0\n27,0,8,0,34,0,37,0,6,0,57,0\n63,0,26,0,40,0,62,0,23,0,9,0\n53,0,33,0,45,0,60,0,50,0,49,0\n59,0,20,0,15,0,38,0,21,0,41,0\n47,0,55,0,58,0,35,0,56,0,65,0\n5,0,28,0,54,0,27,0,13,0,52,0\n24,0,30,0,31,0,4,0,37,0,18,0\n61,0,48,0,6,0,10,0,3,0,1,0\n19,0,66,0,16,0,64,0,46,0,25,0\n34,0,57,0,11,0,14,0,22,0,36,0\n42,0,51,0,2,0,44,0,7,0,12,0\n8,0,29,0,43,0,32,0,17,0,39,0\n26,0,50,0,65,0,54,0,40,0,48,0\n45,0,9,0,35,0,52,0,1,0,15,0\n10,0,47,0,34,0,16,0,21,0,60,0\n51,0,55,0,37,0,14,0,25,0,41,0\n19,0,36,0,23,0,4,0,39,0,44,0\n58,0,24,0,13,0,6,0,42,0,43,0\n31,0,64,0,17,0,57,0,61,0,49,0\n2,0,33,0,59,0,66,0,56,0,30,0\n3,0,38,0,32,0,27,0,63,0,11,0\n12,0,53,0,28,0,29,0,20,0,62,0\n46,0,8,0,22,0,18,0,7,0,5,0\n15,0,10,0,58,0,57,0,31,0,51,0\n13,0,19,0,65,0,45,0,2,0,34,0\n42,0,37,0,49,0,56,0,52,0,3,0\n41,0,27,0,36,0,43,0,64,0,53,0\n33,0,4,0,40,0,1,0,8,0,55,0\n48,0,5,0,66,0,47,0,29,0,63,0\n50,0,21,0,32,0,9,0,7,0,28,0\n46,0,59,0,62,0,24,0,39,0,60,0\n61,0,38,0,23,0,22,0,30,0,16,0\n25,0,11,0,12,0,18,0,17,0,26,0\n54,0,35,0,14,0,44,0,20,0,6,0\n"
  },
  {
    "path": "schedules/67_1.csv",
    "content": "36,0,29,0,21,0,3,0,38,0,20,0\n34,0,50,0,62,0,40,0,60,0,48,0\n31,0,64,0,18,0,39,0,42,0,26,0\n19,0,24,0,15,0,51,0,33,0,35,0\n52,0,16,0,5,0,59,0,25,0,13,0\n49,0,7,0,12,0,45,0,6,0,44,0\n66,0,56,0,27,0,67,0,28,0,47,0\n30,0,23,0,17,0,65,0,2,0,63,0\n10,0,9,0,1,0,58,0,4,0,11,0\n32,0,53,0,41,0,14,0,8,0,46,0\n54,0,22,0,55,0,43,0,61,0,57,0\n37,0,29,1,39,1,52,1,19,1,15,1\n"
  },
  {
    "path": "schedules/67_10.csv",
    "content": "4,0,47,0,48,0,36,0,33,0,11,0\n25,0,65,0,46,0,60,0,20,0,59,0\n5,0,40,0,13,0,49,0,2,0,29,0\n22,0,53,0,8,0,15,0,42,0,18,0\n24,0,19,0,17,0,67,0,3,0,34,0\n27,0,43,0,44,0,54,0,50,0,64,0\n26,0,57,0,55,0,21,0,35,0,56,0\n7,0,52,0,58,0,10,0,63,0,23,0\n6,0,51,0,9,0,38,0,31,0,66,0\n32,0,61,0,14,0,1,0,41,0,28,0\n62,0,30,0,45,0,16,0,12,0,39,0\n37,0,54,0,8,0,3,0,49,0,26,0\n10,0,25,0,20,0,44,0,19,0,40,0\n4,0,34,0,56,0,51,0,38,0,18,0\n36,0,61,0,58,0,5,0,32,0,53,0\n17,0,43,0,28,0,35,0,9,0,30,0\n2,0,62,0,31,0,7,0,60,0,47,0\n42,0,59,0,52,0,24,0,13,0,37,0\n64,0,48,0,46,0,6,0,67,0,55,0\n23,0,14,0,22,0,27,0,65,0,16,0\n63,0,33,0,50,0,21,0,1,0,39,0\n57,0,41,0,66,0,11,0,45,0,29,0\n12,0,37,0,5,0,15,0,20,0,44,0\n25,1,4,0,3,0,49,1,6,0,13,0\n10,0,16,0,51,0,18,0,67,0,35,0\n47,0,36,0,63,0,43,0,40,0,26,0\n22,0,62,0,50,0,19,0,9,0,11,0\n57,0,45,0,2,0,23,0,28,0,54,0\n38,0,41,0,46,0,30,0,7,0,24,0\n58,0,55,0,1,0,12,0,34,0,31,0\n52,0,17,0,65,0,21,0,53,0,42,0\n15,0,56,0,60,0,48,0,14,0,29,0\n33,0,64,0,39,0,61,0,8,0,66,0\n27,0,59,0,19,0,32,0,51,0,30,0\n38,0,1,0,67,0,62,0,23,0,20,0\n40,0,28,0,53,0,37,0,26,0,11,0\n45,0,60,0,43,0,24,0,4,0,5,0\n58,0,35,0,14,0,33,0,42,0,6,0\n13,0,56,0,61,0,63,0,65,0,54,0\n17,0,66,0,44,0,2,0,48,0,8,0\n9,0,27,0,12,0,52,0,18,0,57,0\n32,0,21,0,10,0,64,0,47,0,49,0\n15,0,3,0,41,0,46,0,39,0,55,0\n25,0,50,0,34,0,7,0,29,0,16,0\n36,0,31,0,53,0,22,0,59,0,67,0\n13,0,8,0,35,0,19,0,12,0,23,0\n45,0,37,0,6,0,51,0,47,0,65,0\n21,0,2,0,18,0,38,0,43,0,14,0\n64,0,4,0,66,0,25,0,30,0,58,0\n17,0,1,0,11,0,27,0,15,0,49,0\n5,0,31,0,54,0,41,0,16,0,52,0\n20,0,63,0,48,0,29,0,9,0,3,0\n33,0,62,0,26,0,59,0,24,0,10,0\n34,0,44,0,46,0,22,0,57,0,61,0\n60,0,55,0,42,0,36,0,50,0,28,0\n40,0,56,0,7,0,32,0,39,0,17,0\n47,0,30,0,5,0,1,0,13,0,48,0\n63,0,15,0,12,0,24,0,25,0,2,0\n19,0,38,0,29,0,37,0,61,0,33,0\n36,0,21,0,51,0,44,0,62,0,41,0\n6,0,16,0,11,0,43,0,32,0,8,0\n27,0,42,0,45,0,10,0,3,0,55,0\n26,0,9,0,20,0,14,0,7,0,64,0\n35,0,57,0,65,0,31,0,4,0,50,0\n59,0,46,0,18,0,54,0,40,0,58,0\n60,0,23,0,39,0,34,0,53,0,49,0\n56,0,67,0,66,0,22,0,52,0,28,0\n15,0,61,0,19,0,7,0,36,0,45,0\n29,0,24,0,21,0,27,0,8,0,31,0\n47,0,16,0,13,0,9,0,41,0,58,0\n10,0,53,0,54,0,4,0,1,0,14,0\n12,0,26,0,51,0,50,0,17,0,46,0\n52,0,40,0,38,0,60,0,64,0,35,0\n63,0,34,0,6,0,62,0,5,0,28,0\n67,0,57,0,48,0,42,0,37,0,39,0\n32,0,49,0,18,0,33,0,44,0,65,0\n3,0,23,0,66,0,43,0,59,0,56,0\n22,0,11,0,30,0,2,0,20,0,55,0\n25,0,35,0,52,0,47,0,61,0,1,0\n58,0,67,0,8,0,38,0,50,0,45,0\n24,0,36,0,60,0,17,0,16,0,57,0\n21,0,15,0,40,0,19,0,6,0,4,0\n23,0,31,0,29,0,44,0,26,0,30,0\n64,0,51,0,22,0,14,0,13,0,63,0\n18,0,28,0,11,0,3,0,7,0,5,0\n65,0,43,0,34,0,48,0,10,0,41,0\n2,0,33,0,53,0,27,0,62,0,46,0\n37,0,25,0,49,0,55,0,56,0,9,0\n42,0,32,0,54,0,66,0,12,0,20,0\n39,0,18,0,29,0,59,0,47,0,6,0\n34,0,14,0,30,0,36,0,8,0,52,0\n13,0,15,0,50,0,31,0,10,0,28,0\n49,0,58,0,48,0,35,0,22,0,24,0\n3,0,62,0,65,0,57,0,64,0,40,0\n32,0,37,0,9,0,23,0,4,0,46,0\n67,0,11,0,61,0,21,0,60,0,12,0\n39,0,5,0,27,0,25,0,26,0,38,0\n63,0,59,0,44,0,41,0,45,0,17,0\n7,0,51,0,55,0,33,0,54,0,43,0\n16,0,1,0,42,0,2,0,19,0,56,0\n53,0,20,0,35,0,66,0,34,0,13,0\n29,0,28,0,64,0,12,0,36,0,49,0\n48,0,32,0,31,0,25,0,45,0,14,0\n8,0,33,0,59,0,5,0,9,0,57,0\n11,0,65,0,2,0,58,0,39,0,51,0\n50,0,24,0,55,0,40,0,23,0,61,0\n41,0,6,0,20,0,53,0,27,0,56,0\n7,0,26,0,4,0,44,0,42,0,67,0\n10,0,38,0,47,0,22,0,17,0,54,0\n46,0,1,0,3,0,21,0,66,0,16,0\n19,0,37,0,30,0,63,0,60,0,18,0\n43,0,52,0,49,0,62,0,15,0,25,0\n"
  },
  {
    "path": "schedules/67_11.csv",
    "content": "21,0,51,0,64,0,20,0,5,0,17,0\n25,0,8,0,44,0,13,0,26,0,53,0\n6,0,46,0,35,0,65,0,48,0,1,0\n49,0,28,0,52,0,15,0,2,0,41,0\n56,0,59,0,54,0,55,0,3,0,10,0\n50,0,45,0,11,0,39,0,37,0,60,0\n27,0,4,0,42,0,38,0,32,0,36,0\n66,0,34,0,18,0,14,0,40,0,29,0\n12,0,57,0,16,0,23,0,19,0,31,0\n9,0,43,0,62,0,58,0,61,0,63,0\n67,0,7,0,30,0,24,0,33,0,22,0\n47,0,8,0,46,0,36,0,56,0,11,0\n4,0,38,0,40,0,28,0,1,0,15,0\n60,0,25,0,31,0,35,0,17,0,27,0\n5,0,55,0,34,0,32,0,6,0,45,0\n41,0,61,0,19,0,51,0,50,0,23,0\n66,0,26,0,43,0,18,0,7,0,53,0\n29,0,65,0,16,0,22,0,57,0,52,0\n47,0,33,0,10,0,63,0,44,0,37,0\n59,0,64,0,39,0,9,0,58,0,24,0\n13,0,30,0,20,0,42,0,49,0,62,0\n12,0,21,0,2,0,3,0,14,0,48,0\n54,0,15,0,61,0,67,0,31,0,46,0\n52,1,17,0,23,0,47,0,32,0,43,0\n4,0,53,0,57,0,56,0,45,0,9,0\n26,0,60,0,10,0,13,0,36,0,28,0\n30,0,1,0,41,0,44,0,14,0,64,0\n24,0,20,0,63,0,54,0,18,0,65,0\n5,0,38,0,66,0,62,0,8,0,2,0\n40,0,39,0,22,0,21,0,55,0,49,0\n48,0,42,0,58,0,7,0,34,0,50,0\n33,0,3,0,59,0,51,0,25,0,16,0\n6,0,37,0,29,0,19,0,67,0,27,0\n35,0,11,0,53,0,12,0,38,0,63,0\n10,0,31,0,41,0,20,0,22,0,32,0\n54,0,23,0,24,0,36,0,14,0,50,0\n62,0,21,0,16,0,45,0,42,0,26,0\n59,0,60,0,4,0,7,0,66,0,49,0\n1,0,2,0,39,0,34,0,61,0,33,0\n19,0,64,0,28,0,65,0,8,0,56,0\n47,0,29,0,15,0,3,0,6,0,30,0\n17,0,58,0,51,0,37,0,52,0,35,0\n13,0,48,0,9,0,55,0,67,0,18,0\n5,0,40,0,43,0,57,0,27,0,11,0\n12,0,25,0,42,0,44,0,46,0,10,0\n39,0,65,0,30,0,60,0,16,0,38,0\n53,0,22,0,28,0,58,0,32,0,59,0\n36,0,8,0,37,0,21,0,31,0,35,0\n51,0,57,0,2,0,47,0,4,0,18,0\n15,0,52,0,6,0,62,0,56,0,7,0\n66,0,3,0,50,0,27,0,9,0,23,0\n63,0,40,0,1,0,5,0,19,0,25,0\n14,0,33,0,43,0,55,0,20,0,64,0\n17,0,13,0,67,0,41,0,11,0,46,0\n49,0,29,0,45,0,48,0,44,0,54,0\n24,0,26,0,61,0,34,0,12,0,27,0\n3,0,32,0,7,0,19,0,65,0,35,0\n25,0,63,0,55,0,21,0,57,0,30,0\n31,0,50,0,2,0,59,0,6,0,11,0\n47,0,20,0,16,0,48,0,60,0,53,0\n29,0,13,0,34,0,28,0,23,0,33,0\n24,0,15,0,42,0,58,0,41,0,66,0\n12,0,49,0,36,0,43,0,1,0,67,0\n14,0,61,0,10,0,45,0,8,0,17,0\n56,0,37,0,64,0,38,0,22,0,18,0\n52,0,46,0,5,0,39,0,4,0,26,0\n44,0,51,0,62,0,40,0,9,0,54,0\n27,0,55,0,53,0,65,0,2,0,23,0\n11,0,28,0,48,0,3,0,57,0,61,0\n13,0,16,0,7,0,37,0,14,0,1,0\n63,0,22,0,8,0,32,0,15,0,50,0\n38,0,24,0,49,0,46,0,33,0,51,0\n45,0,25,0,67,0,47,0,64,0,66,0\n10,0,4,0,35,0,29,0,21,0,43,0\n54,0,19,0,17,0,42,0,39,0,18,0\n31,0,56,0,58,0,40,0,30,0,26,0\n36,0,59,0,44,0,20,0,34,0,52,0\n60,0,41,0,9,0,6,0,5,0,12,0\n48,0,22,0,25,0,62,0,24,0,4,0\n32,0,8,0,67,0,16,0,3,0,2,0\n57,0,50,0,56,0,1,0,66,0,17,0\n64,0,7,0,27,0,49,0,10,0,63,0\n18,0,35,0,28,0,30,0,44,0,5,0\n29,0,55,0,33,0,60,0,58,0,46,0\n20,0,37,0,19,0,26,0,15,0,9,0\n34,0,38,0,21,0,54,0,41,0,47,0\n65,0,62,0,45,0,59,0,12,0,43,0\n53,0,14,0,42,0,31,0,51,0,39,0\n36,0,52,0,61,0,40,0,13,0,6,0\n11,0,18,0,60,0,23,0,15,0,10,0\n26,0,38,0,1,0,29,0,17,0,48,0\n9,0,22,0,30,0,45,0,27,0,2,0\n53,0,3,0,46,0,64,0,62,0,34,0\n32,0,52,0,12,0,66,0,21,0,33,0\n23,0,61,0,42,0,56,0,35,0,49,0\n31,0,59,0,24,0,13,0,5,0,47,0\n8,0,39,0,7,0,57,0,20,0,40,0\n44,0,55,0,58,0,51,0,19,0,11,0\n65,0,67,0,14,0,50,0,25,0,4,0\n54,0,6,0,43,0,28,0,16,0,37,0\n36,0,63,0,27,0,41,0,59,0,48,0\n45,0,18,0,1,0,31,0,52,0,3,0\n32,0,13,0,51,0,12,0,39,0,29,0\n49,0,50,0,19,0,53,0,10,0,62,0\n21,0,47,0,9,0,46,0,28,0,7,0\n33,0,40,0,37,0,65,0,42,0,41,0\n5,0,15,0,64,0,55,0,61,0,16,0\n23,0,58,0,6,0,20,0,38,0,25,0\n35,0,14,0,57,0,67,0,26,0,22,0\n30,0,11,0,8,0,54,0,34,0,4,0\n44,0,56,0,2,0,43,0,60,0,24,0\n36,0,66,0,55,0,17,0,63,0,28,0\n65,0,15,0,27,0,13,0,21,0,45,0\n18,0,40,0,46,0,50,0,59,0,16,0\n6,0,9,0,1,0,10,0,8,0,42,0\n62,0,35,0,41,0,39,0,56,0,47,0\n7,0,31,0,61,0,44,0,29,0,38,0\n52,0,63,0,11,0,14,0,25,0,24,0\n22,0,5,0,3,0,33,0,36,0,53,0\n32,0,26,0,57,0,49,0,64,0,54,0\n66,0,23,0,48,0,51,0,37,0,30,0\n4,0,2,0,17,0,12,0,58,0,20,0\n60,0,67,0,34,0,19,0,43,0,52,0\n"
  },
  {
    "path": "schedules/67_12.csv",
    "content": "33,0,62,0,52,0,65,0,14,0,27,0\n16,0,45,0,56,0,43,0,4,0,53,0\n34,0,50,0,19,0,40,0,57,0,18,0\n49,0,28,0,59,0,30,0,31,0,35,0\n44,0,36,0,67,0,21,0,32,0,10,0\n9,0,51,0,22,0,54,0,23,0,5,0\n3,0,41,0,26,0,25,0,29,0,38,0\n37,0,15,0,6,0,47,0,42,0,2,0\n46,0,63,0,17,0,60,0,48,0,64,0\n11,0,55,0,12,0,7,0,58,0,66,0\n39,0,61,0,8,0,24,0,20,0,1,0\n13,0,59,0,21,0,54,0,65,0,10,0\n53,0,26,0,29,0,51,0,23,0,37,0\n44,0,48,0,6,0,34,0,30,0,52,0\n15,0,36,0,18,0,55,0,16,0,9,0\n7,0,32,0,45,0,8,0,22,0,40,0\n1,0,5,0,35,0,12,0,38,0,33,0\n31,0,64,0,28,0,11,0,57,0,13,0\n60,0,47,0,3,0,24,0,49,0,42,0\n4,0,46,0,66,0,63,0,62,0,61,0\n17,0,67,0,14,0,41,0,56,0,20,0\n43,0,58,0,2,0,19,0,27,0,39,0\n50,0,51,0,16,0,25,0,37,0,8,0\n9,0,21,0,24,0,6,0,7,0,64,0\n18,0,63,0,28,0,62,0,53,0,54,0\n42,0,57,0,46,0,67,0,35,0,29,0\n33,0,11,0,4,0,36,0,22,0,19,0\n47,0,40,0,61,0,10,0,38,0,17,0\n52,0,49,0,55,0,56,0,50,0,25,0\n20,0,66,0,3,0,45,0,44,0,2,0\n34,0,65,0,43,0,5,0,15,0,31,0\n48,0,41,0,27,0,39,0,23,0,59,0\n30,0,32,0,58,0,60,0,1,0,13,0\n14,0,12,0,9,0,26,0,17,0,21,0\n7,0,55,0,51,0,61,0,33,0,44,0\n24,0,16,0,64,0,45,0,34,0,29,0\n5,0,49,0,43,0,41,0,66,0,8,0\n22,0,56,0,38,0,30,0,42,0,19,0\n6,0,18,0,65,0,35,0,58,0,26,0\n50,0,14,0,10,0,60,0,39,0,32,0\n15,0,28,0,20,0,1,0,48,0,37,0\n46,0,13,0,53,0,27,0,36,0,52,0\n57,0,12,0,59,0,2,0,11,0,25,0\n47,0,62,0,31,0,23,0,3,0,63,0\n4,0,67,0,8,0,54,0,40,0,60,0\n24,0,22,0,48,0,18,0,35,0,37,0\n34,0,32,0,55,0,26,0,65,0,19,0\n46,0,50,0,6,0,10,0,28,0,33,0\n1,0,59,0,47,0,53,0,44,0,5,0\n66,0,38,0,16,0,14,0,23,0,31,0\n58,0,41,0,61,0,21,0,15,0,57,0\n36,0,56,0,54,0,7,0,39,0,3,0\n49,0,29,0,40,0,9,0,20,0,11,0\n27,0,63,0,51,0,12,0,30,0,45,0\n43,0,42,0,25,0,13,0,17,0,62,0\n67,0,64,0,2,0,52,0,4,0,65,0\n21,0,37,0,53,0,66,0,19,0,55,0\n60,0,61,0,35,0,50,0,11,0,54,0\n14,0,47,0,38,0,8,0,57,0,36,0\n41,0,7,0,30,0,31,0,20,0,46,0\n52,0,43,0,12,0,10,0,24,0,23,0\n63,0,67,0,6,0,17,0,1,0,16,0\n48,0,40,0,26,0,62,0,22,0,2,0\n29,0,56,0,13,0,59,0,44,0,18,0\n39,0,58,0,5,0,28,0,42,0,45,0\n3,0,25,0,27,0,34,0,4,0,9,0\n15,0,49,0,33,0,32,0,51,0,64,0\n55,0,8,0,54,0,48,0,31,0,2,0\n29,0,30,0,59,0,43,0,50,0,36,0\n5,0,61,0,66,0,40,0,56,0,6,0\n62,0,9,0,35,0,60,0,41,0,19,0\n3,0,51,0,18,0,52,0,11,0,67,0\n32,0,49,0,37,0,38,0,58,0,4,0\n39,0,33,0,13,0,47,0,12,0,34,0\n25,0,46,0,23,0,1,0,21,0,45,0\n7,0,20,0,42,0,63,0,16,0,26,0\n17,0,57,0,22,0,27,0,15,0,10,0\n64,0,65,0,44,0,53,0,24,0,14,0\n28,0,52,0,61,0,29,0,32,0,47,0\n40,0,41,0,45,0,13,0,55,0,6,0\n4,0,39,0,1,0,31,0,66,0,26,0\n27,0,23,0,17,0,50,0,7,0,5,0\n11,0,37,0,65,0,63,0,56,0,14,0\n58,0,24,0,15,0,46,0,59,0,33,0\n12,0,19,0,48,0,67,0,49,0,16,0\n42,0,54,0,9,0,30,0,53,0,57,0\n21,0,43,0,64,0,22,0,28,0,3,0\n18,0,2,0,38,0,51,0,44,0,60,0\n34,0,62,0,10,0,8,0,20,0,35,0\n25,0,61,0,19,0,36,0,65,0,48,0\n15,0,14,0,29,0,40,0,12,0,4,0\n9,0,50,0,66,0,47,0,67,0,58,0\n22,0,11,0,44,0,39,0,16,0,46,0\n20,0,57,0,63,0,43,0,55,0,24,0\n62,0,6,0,21,0,59,0,38,0,51,0\n64,0,37,0,30,0,10,0,41,0,5,0\n7,0,53,0,35,0,52,0,3,0,13,0\n42,0,31,0,18,0,33,0,32,0,25,0\n23,0,2,0,1,0,36,0,49,0,34,0\n60,0,56,0,8,0,27,0,26,0,28,0\n54,0,17,0,44,0,45,0,58,0,37,0\n35,0,38,0,52,0,63,0,15,0,39,0\n5,0,4,0,47,0,55,0,18,0,46,0\n10,0,7,0,1,0,19,0,3,0,14,0\n25,0,36,0,59,0,40,0,20,0,64,0\n29,0,21,0,65,0,30,0,11,0,8,0\n23,0,62,0,16,0,56,0,24,0,57,0\n12,0,27,0,66,0,42,0,32,0,48,0\n2,0,26,0,54,0,33,0,50,0,41,0\n60,0,53,0,49,0,22,0,34,0,6,0\n43,0,31,0,45,0,67,0,61,0,9,0\n28,0,13,0,19,0,51,0,17,0,24,0\n58,0,29,0,36,0,35,0,63,0,66,0\n54,0,38,0,1,0,64,0,55,0,27,0\n26,0,60,0,57,0,5,0,59,0,52,0\n50,0,20,0,65,0,22,0,12,0,41,0\n42,0,44,0,13,0,61,0,49,0,4,0\n7,0,25,0,67,0,2,0,28,0,53,0\n31,0,34,0,56,0,21,0,47,0,51,0\n10,0,45,0,11,0,15,0,62,0,48,0\n46,0,32,0,14,0,9,0,6,0,43,0\n40,0,33,0,30,0,3,0,37,0,16,0\n8,0,23,0,18,0,39,0,17,0,64,0\n51,0,41,0,65,0,36,0,42,0,1,0\n22,0,15,0,26,0,67,0,13,0,66,0\n31,0,38,0,24,0,58,0,50,0,53,0\n25,0,12,0,60,0,44,0,43,0,47,0\n5,0,32,0,17,0,3,0,29,0,11,0\n14,0,30,0,2,0,45,0,61,0,18,0\n27,0,16,0,40,0,21,0,35,0,28,0\n55,0,37,0,39,0,49,0,46,0,62,0\n54,0,19,0,20,0,52,0,6,0,23,0\n57,0,48,0,10,0,4,0,7,0,56,0\n34,0,33,0,8,0,59,0,63,0,9,0\n"
  },
  {
    "path": "schedules/67_13.csv",
    "content": "18,0,63,0,61,0,51,0,44,0,53,0\n39,0,22,0,58,0,3,0,29,0,31,0\n4,0,8,0,54,0,59,0,57,0,66,0\n9,0,52,0,64,0,49,0,7,0,14,0\n24,0,62,0,21,0,15,0,42,0,37,0\n50,0,41,0,26,0,60,0,43,0,67,0\n6,0,27,0,40,0,20,0,2,0,48,0\n34,0,47,0,45,0,36,0,65,0,28,0\n17,0,56,0,30,0,33,0,10,0,1,0\n16,0,13,0,19,0,55,0,35,0,23,0\n38,0,32,0,5,0,25,0,11,0,12,0\n15,0,24,0,43,0,46,0,44,0,3,0\n31,0,41,0,37,0,4,0,36,0,45,0\n17,0,6,0,39,0,21,0,30,0,61,0\n48,0,14,0,34,0,16,0,22,0,10,0\n28,0,29,0,12,0,9,0,42,0,23,0\n7,0,33,0,35,0,63,0,62,0,60,0\n19,0,40,0,38,0,32,0,58,0,26,0\n67,0,59,0,47,0,13,0,11,0,5,0\n27,0,1,0,51,0,8,0,64,0,25,0\n20,0,46,0,52,0,57,0,54,0,50,0\n56,0,55,0,53,0,66,0,49,0,2,0\n18,0,43,0,40,0,65,0,22,0,6,0\n17,1,29,0,48,0,14,1,32,0,19,0\n26,1,28,0,39,0,11,1,62,0,4,0\n1,0,44,0,61,0,23,1,54,0,5,0\n12,0,20,0,49,0,16,0,41,0,15,0\n56,0,10,0,60,0,46,0,9,0,25,0\n18,0,47,0,52,0,58,0,2,0,37,0\n45,0,42,0,21,0,51,0,13,0,57,0\n59,0,38,0,34,0,33,0,67,0,30,0\n66,0,24,0,55,0,27,0,63,0,50,0\n36,0,53,0,31,0,65,0,35,0,64,0\n8,0,7,0,5,0,3,0,16,0,43,0\n39,0,49,0,23,0,18,0,48,0,25,0\n15,0,1,0,22,0,6,0,58,0,47,0\n34,0,26,0,57,0,41,0,63,0,44,0\n21,0,2,0,4,0,36,0,50,0,64,0\n42,0,61,0,67,0,10,0,19,0,52,0\n55,0,65,0,45,0,60,0,8,0,24,0\n12,0,14,0,62,0,53,0,46,0,54,0\n29,0,35,0,40,0,56,0,59,0,11,0\n28,0,51,0,3,0,27,0,38,0,37,0\n31,0,33,0,66,0,32,0,9,0,30,0\n20,0,7,0,4,0,17,0,13,0,44,0\n5,0,6,0,10,0,52,0,53,0,26,0\n59,0,43,0,25,0,48,0,63,0,47,0\n37,0,18,0,60,0,15,0,12,0,56,0\n3,0,39,0,32,0,1,0,35,0,50,0\n21,0,66,0,36,0,20,0,40,0,14,0\n7,0,67,0,54,0,23,0,30,0,45,0\n64,0,22,0,57,0,24,0,19,0,33,0\n16,0,2,0,11,0,58,0,62,0,51,0\n34,0,42,0,31,0,49,0,8,0,17,0\n27,0,61,0,9,0,13,0,65,0,46,0\n41,0,28,0,4,0,55,0,29,0,38,0\n5,0,50,0,60,0,22,0,48,0,30,0\n36,0,40,0,7,0,1,0,39,0,67,0\n24,0,17,0,3,0,21,0,26,0,49,0\n34,0,20,0,58,0,25,0,61,0,23,0\n57,0,16,0,63,0,9,0,29,0,2,0\n12,0,52,0,51,0,44,0,33,0,65,0\n59,0,15,0,27,0,31,0,43,0,32,0\n62,0,64,0,28,0,66,0,18,0,10,0\n38,0,14,0,46,0,45,0,56,0,13,0\n41,0,11,0,8,0,37,0,19,0,53,0\n35,0,6,0,42,0,47,0,54,0,55,0\n52,0,36,0,63,0,60,0,23,0,32,0\n43,0,49,0,48,0,28,0,21,0,58,0\n44,0,14,0,39,0,38,0,25,0,2,0\n51,0,29,0,4,0,10,0,24,0,34,0\n40,0,64,0,30,0,8,0,13,0,12,0\n67,0,66,0,35,0,46,0,17,0,15,0\n41,0,53,0,22,0,9,0,54,0,1,0\n42,0,20,0,5,0,31,0,18,0,59,0\n45,0,62,0,3,0,61,0,19,0,47,0\n57,0,11,0,6,0,7,0,56,0,27,0\n26,0,33,0,37,0,65,0,50,0,16,0\n55,0,58,0,4,0,9,0,44,0,12,0\n51,0,66,0,20,0,67,0,5,0,22,0\n49,0,1,0,36,0,13,0,59,0,29,0\n24,0,28,0,14,0,61,0,40,0,41,0\n53,0,23,0,2,0,34,0,60,0,17,0\n57,0,39,0,10,0,43,0,65,0,37,0\n48,0,64,0,42,0,56,0,26,0,3,0\n30,0,27,0,46,0,16,0,47,0,62,0\n38,0,15,0,11,0,52,0,55,0,8,0\n50,0,25,0,19,0,7,0,6,0,31,0\n35,0,18,0,45,0,32,0,33,0,21,0\n54,0,37,0,3,0,63,0,34,0,40,0\n57,0,5,0,44,0,62,0,36,0,17,0\n52,0,29,0,43,0,47,0,66,0,64,0\n58,0,50,0,38,0,16,0,53,0,42,0\n56,0,25,0,22,0,59,0,55,0,21,0\n35,0,32,0,8,0,7,0,28,0,9,0\n24,0,63,0,49,0,30,0,6,0,12,0\n45,0,1,0,19,0,20,0,26,0,15,0\n54,0,2,0,13,0,31,0,11,0,10,0\n60,0,14,0,27,0,18,0,4,0,67,0\n33,0,23,0,51,0,39,0,46,0,41,0\n65,0,7,0,66,0,61,0,48,0,38,0\n37,0,44,0,45,0,49,0,22,0,29,0\n50,0,12,0,10,0,36,0,11,0,47,0\n55,0,31,0,16,0,52,0,60,0,40,0\n9,0,21,0,6,0,62,0,34,0,67,0\n23,0,1,0,59,0,2,0,57,0,24,0\n41,0,64,0,14,0,58,0,5,0,35,0\n48,0,3,0,13,0,18,0,53,0,17,0\n32,0,15,0,25,0,4,0,65,0,61,0\n19,0,26,0,54,0,33,0,39,0,27,0\n63,0,46,0,56,0,28,0,8,0,20,0\n43,0,30,0,35,0,51,0,42,0,14,0\n23,0,62,0,50,0,45,0,40,0,49,0\n3,0,12,0,67,0,57,0,25,0,31,0\n21,0,27,0,17,0,38,0,41,0,52,0\n65,0,32,0,54,0,5,0,2,0,56,0\n18,0,46,0,29,0,55,0,30,0,26,0\n11,0,37,0,61,0,1,0,64,0,43,0\n22,0,33,0,63,0,10,0,42,0,4,0\n16,0,28,0,44,0,19,0,6,0,59,0\n9,0,8,0,15,0,36,0,51,0,48,0\n60,0,13,0,58,0,66,0,34,0,39,0\n53,0,47,0,20,0,24,0,7,0,32,0\n62,0,65,0,31,0,1,0,29,0,14,0\n12,0,61,0,2,0,35,0,22,0,26,0\n4,0,46,0,33,0,48,0,5,0,40,0\n21,0,10,0,44,0,66,0,8,0,23,0\n50,0,7,0,15,0,28,0,18,0,34,0\n39,0,59,0,53,0,27,0,45,0,52,0\n36,0,41,0,6,0,11,0,42,0,3,0\n13,0,67,0,25,0,24,0,16,0,37,0\n19,0,56,0,58,0,30,0,63,0,51,0\n60,0,47,0,57,0,49,0,64,0,38,0\n9,0,43,0,55,0,17,0,54,0,20,0\n8,0,33,0,29,0,6,0,61,0,14,0\n52,0,48,0,32,0,62,0,13,0,41,0\n46,0,42,0,66,0,1,0,37,0,7,0\n10,0,49,0,58,0,35,0,4,0,27,0\n51,0,9,0,17,0,40,0,26,0,59,0\n23,0,56,0,44,0,47,0,31,0,50,0\n11,0,65,0,60,0,21,0,20,0,3,0\n34,0,19,0,2,0,5,0,12,0,43,0\n38,0,16,0,54,0,18,0,36,0,24,0\n67,0,63,0,55,0,39,0,45,0,64,0\n25,0,30,0,53,0,28,0,15,0,57,0\n17,0,26,0,23,0,22,0,14,0,11,0\n"
  },
  {
    "path": "schedules/67_14.csv",
    "content": "3,0,34,0,48,0,44,0,47,0,32,0\n39,0,51,0,37,0,40,0,8,0,56,0\n23,0,2,0,29,0,36,0,9,0,57,0\n24,0,54,0,7,0,22,0,18,0,55,0\n30,0,64,0,25,0,35,0,66,0,26,0\n19,0,52,0,10,0,20,0,59,0,46,0\n41,0,62,0,16,0,13,0,31,0,15,0\n65,0,1,0,17,0,14,0,28,0,12,0\n61,0,6,0,60,0,11,0,50,0,58,0\n4,0,38,0,45,0,63,0,21,0,5,0\n27,0,53,0,49,0,33,0,43,0,67,0\n42,0,51,0,24,0,2,0,41,0,34,0\n47,0,12,0,7,0,30,0,10,0,9,0\n50,0,57,0,64,0,3,0,46,0,37,0\n14,0,52,0,21,0,39,0,55,0,25,0\n62,0,54,0,19,0,60,0,29,0,16,0\n13,0,26,0,59,0,48,0,17,0,27,0\n20,0,18,0,44,0,8,0,5,0,38,0\n42,0,66,0,61,0,53,0,4,0,31,0\n33,0,56,0,36,0,35,0,67,0,32,0\n6,0,45,0,65,0,23,0,40,0,49,0\n22,0,1,0,43,0,63,0,15,0,11,0\n28,0,26,0,64,0,58,0,8,0,59,0\n52,1,5,0,29,0,3,1,17,0,51,0\n61,1,48,0,32,0,66,1,57,0,39,0\n34,0,23,0,7,0,12,0,35,0,62,0\n37,0,56,0,53,0,22,0,30,0,19,0\n1,0,9,0,60,0,41,0,18,0,45,0\n33,0,63,0,4,0,24,0,20,0,15,0\n43,0,42,0,65,0,67,0,38,0,13,0\n28,0,31,0,44,0,49,0,6,0,54,0\n27,0,21,0,16,0,10,0,14,0,36,0\n11,0,2,0,25,0,46,0,58,0,55,0\n47,0,40,0,29,0,50,0,12,0,24,0\n8,0,1,0,32,0,43,0,59,0,19,0\n15,0,42,0,35,0,66,0,37,0,6,0\n67,0,64,0,34,0,60,0,7,0,45,0\n36,0,58,0,3,0,62,0,4,0,10,0\n31,0,5,0,40,0,25,0,18,0,27,0\n20,0,41,0,21,0,44,0,65,0,22,0\n61,0,2,0,26,0,54,0,38,0,56,0\n9,0,46,0,51,0,33,0,48,0,16,0\n49,0,28,0,50,0,30,0,63,0,39,0\n11,0,17,0,14,0,47,0,23,0,53,0\n55,0,13,0,43,0,52,0,57,0,12,0\n37,0,18,0,5,0,62,0,61,0,67,0\n4,0,56,0,32,0,9,0,31,0,27,0\n28,0,24,0,59,0,15,0,3,0,49,0\n41,0,38,0,64,0,23,0,36,0,11,0\n17,0,16,0,42,0,25,0,7,0,50,0\n13,0,30,0,40,0,53,0,1,0,46,0\n63,0,20,0,65,0,55,0,48,0,29,0\n6,0,22,0,57,0,26,0,34,0,14,0\n66,0,8,0,52,0,54,0,21,0,33,0\n19,0,58,0,44,0,45,0,51,0,47,0\n10,0,35,0,43,0,39,0,2,0,60,0\n7,0,63,0,46,0,53,0,32,0,5,0\n11,0,34,0,28,0,13,0,18,0,9,0\n26,0,33,0,12,0,14,0,4,0,42,0\n15,0,47,0,62,0,44,0,45,0,25,0\n51,0,67,0,1,0,20,0,54,0,39,0\n36,0,55,0,60,0,59,0,40,0,37,0\n66,0,27,0,65,0,3,0,19,0,8,0\n50,0,16,0,6,0,56,0,41,0,52,0\n35,0,61,0,17,0,64,0,2,0,24,0\n10,0,38,0,22,0,49,0,57,0,31,0\n30,0,21,0,29,0,48,0,58,0,23,0\n46,0,47,0,39,0,26,0,65,0,60,0\n25,0,41,0,54,0,19,0,4,0,34,0\n11,0,45,0,3,0,14,0,7,0,37,0\n38,0,35,0,6,0,1,0,28,0,16,0\n32,0,13,0,27,0,51,0,2,0,21,0\n5,0,48,0,67,0,36,0,50,0,22,0\n49,0,58,0,9,0,55,0,42,0,52,0\n62,0,20,0,30,0,43,0,17,0,24,0\n57,0,23,0,59,0,33,0,18,0,31,0\n15,0,29,0,53,0,10,0,64,0,8,0\n66,0,40,0,44,0,61,0,56,0,63,0\n12,0,2,0,65,0,5,0,16,0,45,0\n60,0,47,0,52,0,28,0,27,0,22,0\n13,0,23,0,24,0,37,0,19,0,32,0\n41,0,48,0,43,0,64,0,58,0,18,0\n29,0,50,0,46,0,35,0,44,0,14,0\n10,0,33,0,1,0,61,0,55,0,34,0\n30,0,12,0,54,0,11,0,4,0,49,0\n31,0,38,0,7,0,39,0,15,0,17,0\n51,0,63,0,66,0,6,0,62,0,59,0\n57,0,8,0,20,0,40,0,42,0,36,0\n53,0,67,0,3,0,9,0,26,0,21,0\n25,0,28,0,46,0,56,0,23,0,43,0\n48,0,52,0,31,0,7,0,35,0,19,0\n59,0,18,0,15,0,50,0,47,0,2,0\n37,0,58,0,34,0,27,0,29,0,38,0\n4,0,67,0,26,0,40,0,55,0,16,0\n45,0,22,0,17,0,10,0,66,0,32,0\n11,0,9,0,39,0,44,0,62,0,24,0\n61,0,57,0,53,0,51,0,41,0,12,0\n36,0,63,0,25,0,54,0,65,0,3,0\n60,0,20,0,33,0,56,0,6,0,21,0\n14,0,13,0,5,0,8,0,30,0,49,0\n64,0,42,0,37,0,1,0,52,0,44,0\n58,0,57,0,16,0,53,0,11,0,66,0\n22,0,35,0,4,0,65,0,59,0,51,0\n40,0,3,0,2,0,33,0,38,0,34,0\n32,0,41,0,49,0,29,0,25,0,26,0\n10,0,23,0,27,0,50,0,48,0,1,0\n7,0,9,0,17,0,43,0,61,0,21,0\n56,0,5,0,20,0,13,0,64,0,47,0\n39,0,18,0,19,0,6,0,36,0,30,0\n12,0,8,0,60,0,31,0,24,0,63,0\n28,0,55,0,62,0,42,0,45,0,46,0\n15,0,14,0,48,0,54,0,67,0,40,0\n65,0,47,0,58,0,61,0,33,0,37,0\n19,0,56,0,17,0,49,0,34,0,39,0\n12,0,1,0,59,0,25,0,21,0,38,0\n66,0,36,0,4,0,44,0,50,0,13,0\n2,0,62,0,45,0,53,0,30,0,52,0\n31,0,26,0,3,0,43,0,20,0,11,0\n15,0,54,0,60,0,23,0,5,0,42,0\n51,0,32,0,14,0,10,0,18,0,28,0\n57,0,24,0,29,0,6,0,7,0,27,0\n9,0,63,0,16,0,46,0,22,0,64,0\n67,0,8,0,55,0,41,0,35,0,47,0\n66,0,2,0,1,0,3,0,4,0,60,0\n11,0,56,0,62,0,48,0,65,0,10,0\n50,0,15,0,23,0,51,0,52,0,26,0\n39,0,5,0,43,0,42,0,59,0,29,0\n30,0,38,0,37,0,16,0,20,0,32,0\n8,0,18,0,53,0,49,0,25,0,17,0\n46,0,24,0,34,0,31,0,36,0,21,0\n45,0,54,0,58,0,57,0,13,0,35,0\n41,0,22,0,7,0,40,0,33,0,28,0\n14,0,63,0,67,0,19,0,9,0,61,0\n55,0,27,0,12,0,44,0,64,0,6,0\n31,0,60,0,42,0,30,0,51,0,48,0\n16,0,52,0,4,0,47,0,8,0,43,0\n22,0,33,0,25,0,13,0,29,0,39,0\n50,0,32,0,40,0,58,0,1,0,62,0\n14,0,49,0,20,0,66,0,34,0,9,0\n44,0,23,0,67,0,2,0,59,0,10,0\n36,0,45,0,61,0,6,0,26,0,46,0\n12,0,3,0,18,0,15,0,55,0,56,0\n57,0,21,0,11,0,5,0,19,0,28,0\n35,0,27,0,37,0,63,0,17,0,41,0\n54,0,53,0,64,0,38,0,24,0,65,0\n7,0,49,0,51,0,47,0,36,0,1,0\n39,0,23,0,16,0,3,0,61,0,20,0\n62,0,46,0,8,0,12,0,22,0,67,0\n42,0,41,0,11,0,63,0,52,0,32,0\n6,0,28,0,48,0,37,0,2,0,4,0\n19,0,21,0,13,0,35,0,40,0,64,0\n24,0,10,0,26,0,66,0,25,0,5,0\n59,0,56,0,44,0,58,0,53,0,7,0\n54,0,31,0,43,0,50,0,45,0,33,0\n30,0,65,0,15,0,57,0,27,0,34,0\n14,0,55,0,9,0,38,0,60,0,17,0\n18,0,52,0,61,0,29,0,3,0,66,0\n"
  },
  {
    "path": "schedules/67_2.csv",
    "content": "4,0,27,0,23,0,6,0,36,0,32,0\n66,0,26,0,55,0,16,0,56,0,8,0\n45,0,65,0,19,0,64,0,20,0,60,0\n2,0,7,0,33,0,24,0,34,0,29,0\n61,0,46,0,13,0,54,0,50,0,57,0\n48,0,53,0,14,0,47,0,11,0,59,0\n51,0,40,0,9,0,42,0,22,0,3,0\n21,0,41,0,35,0,1,0,30,0,62,0\n39,0,31,0,58,0,49,0,52,0,67,0\n43,0,28,0,10,0,25,0,5,0,37,0\n44,0,15,0,63,0,18,0,17,0,38,0\n12,0,40,0,26,0,45,0,23,0,7,0\n14,0,65,0,34,0,61,0,66,0,4,0\n64,0,56,0,67,0,33,0,35,0,22,0\n20,0,10,0,11,0,51,0,36,0,30,0\n32,0,5,0,57,0,59,0,21,0,63,0\n49,0,17,0,12,0,24,0,46,0,48,0\n58,0,50,0,37,0,41,0,44,0,6,0\n62,0,60,0,42,0,31,0,2,0,43,0\n55,0,27,0,29,0,15,0,19,0,3,0\n28,0,38,0,13,0,53,0,9,0,39,0\n25,0,16,0,47,0,52,0,18,0,54,0\n1,0,44,1,61,1,8,0,5,1,48,1\n"
  },
  {
    "path": "schedules/67_3.csv",
    "content": "39,0,7,0,35,0,41,0,42,0,58,0\n9,0,48,0,33,0,13,0,5,0,6,0\n50,0,40,0,46,0,4,0,37,0,25,0\n11,0,8,0,22,0,52,0,27,0,20,0\n53,0,49,0,24,0,66,0,16,0,55,0\n1,0,34,0,17,0,12,0,18,0,51,0\n32,0,63,0,64,0,31,0,43,0,47,0\n45,0,60,0,2,0,15,0,56,0,36,0\n29,0,54,0,21,0,61,0,65,0,14,0\n23,0,10,0,57,0,19,0,26,0,59,0\n30,0,28,0,67,0,3,0,62,0,44,0\n20,0,37,0,42,0,38,0,17,0,33,0\n25,1,60,0,58,0,18,1,8,0,53,0\n39,1,9,0,12,0,54,0,45,0,63,0\n10,0,36,0,64,0,50,0,7,0,11,0\n16,0,41,0,14,0,30,0,40,0,2,0\n31,0,65,0,13,0,38,0,22,0,28,0\n62,0,43,0,29,0,5,0,59,0,46,0\n32,0,52,0,66,0,26,0,48,0,34,0\n3,0,4,0,51,0,6,0,35,0,57,0\n44,0,55,0,21,0,23,0,56,0,27,0\n49,0,61,0,47,0,67,0,1,0,15,0\n19,0,40,0,13,0,24,0,17,0,29,0\n46,0,38,0,26,0,39,0,53,0,36,0\n33,0,18,0,57,0,45,0,7,0,31,0\n30,0,35,0,25,0,64,0,21,0,52,0\n41,0,56,0,37,0,10,0,49,0,6,0\n44,0,51,0,59,0,42,0,11,0,47,0\n34,0,24,0,15,0,62,0,22,0,63,0\n1,0,66,0,8,0,23,0,54,0,50,0\n28,0,12,0,4,0,20,0,60,0,48,0\n19,0,2,0,43,0,9,0,61,0,3,0\n27,0,16,0,5,0,58,0,32,0,65,0\n67,0,55,0,18,0,14,0,25,0,39,0\n"
  },
  {
    "path": "schedules/67_4.csv",
    "content": "27,0,9,0,19,0,13,0,10,0,23,0\n66,0,64,0,3,0,25,0,12,0,34,0\n62,0,55,0,2,0,53,0,46,0,63,0\n20,0,37,0,52,0,31,0,28,0,8,0\n48,0,5,0,36,0,4,0,45,0,59,0\n43,0,51,0,18,0,49,0,60,0,6,0\n44,0,39,0,26,0,35,0,65,0,15,0\n17,0,54,0,33,0,14,0,58,0,16,0\n57,0,11,0,7,0,40,0,41,0,67,0\n61,0,50,0,24,0,42,0,38,0,29,0\n1,0,21,0,30,0,32,0,22,0,47,0\n56,0,36,0,66,0,26,0,51,0,55,0\n16,0,52,0,63,0,45,0,23,0,60,0\n62,0,39,0,37,0,7,0,6,0,3,0\n25,0,61,0,28,0,9,0,14,0,53,0\n17,0,40,0,42,0,46,0,43,0,5,0\n12,0,65,0,49,0,19,0,32,0,24,0\n8,0,22,0,13,0,48,0,64,0,18,0\n38,0,41,0,35,0,56,0,59,0,30,0\n47,0,29,0,11,0,44,0,20,0,54,0\n50,0,2,0,31,0,27,0,21,0,57,0\n34,0,10,0,4,0,15,0,33,0,1,0\n58,0,51,0,24,0,67,0,25,0,48,0\n17,1,8,0,41,0,19,1,36,0,63,0\n30,0,18,0,23,0,28,0,62,0,12,0\n13,0,44,0,32,0,37,0,40,0,38,0\n26,0,4,0,16,0,11,0,64,0,2,0\n52,0,22,0,55,0,3,0,50,0,54,0\n47,0,46,0,6,0,56,0,57,0,10,0\n5,0,60,0,15,0,20,0,61,0,58,0\n49,0,7,0,1,0,9,0,31,0,59,0\n66,0,53,0,65,0,67,0,27,0,33,0\n29,0,45,0,43,0,14,0,34,0,35,0\n42,0,13,0,11,0,21,0,39,0,55,0\n26,0,57,0,12,0,20,0,17,0,22,0\n10,0,32,0,54,0,63,0,28,0,51,0\n38,0,53,0,15,0,18,0,36,0,47,0\n5,0,27,0,35,0,1,0,3,0,8,0\n40,0,59,0,6,0,61,0,52,0,65,0\n29,0,67,0,46,0,16,0,39,0,19,0\n64,0,21,0,33,0,43,0,24,0,56,0\n4,0,9,0,41,0,62,0,42,0,58,0\n7,0,44,0,25,0,30,0,2,0,45,0\n50,0,14,0,37,0,66,0,23,0,49,0\n31,0,60,0,19,0,34,0,48,0,17,0\n"
  },
  {
    "path": "schedules/67_5.csv",
    "content": "10,0,5,0,1,0,41,0,38,0,63,0\n57,0,46,0,3,0,67,0,40,0,29,0\n34,0,31,0,49,0,16,0,26,0,42,0\n47,0,27,0,36,0,7,0,4,0,25,0\n58,0,66,0,43,0,22,0,18,0,9,0\n13,0,51,0,20,0,48,0,44,0,35,0\n11,0,21,0,55,0,54,0,45,0,28,0\n15,0,14,0,17,0,6,0,37,0,33,0\n39,0,32,0,64,0,19,0,62,0,65,0\n24,0,50,0,56,0,59,0,8,0,60,0\n23,0,61,0,2,0,12,0,30,0,52,0\n25,0,43,0,34,0,53,0,21,0,1,0\n38,0,36,0,37,0,13,0,3,0,16,0\n10,0,15,0,26,0,44,0,39,0,55,0\n56,0,4,0,62,0,9,0,11,0,14,0\n5,0,46,0,65,0,2,0,47,0,50,0\n51,0,22,0,8,0,30,0,32,0,54,0\n60,0,12,0,66,0,35,0,67,0,42,0\n41,0,28,0,24,0,33,0,18,0,49,0\n7,0,20,0,29,0,61,0,64,0,17,0\n57,0,53,0,31,0,63,0,27,0,59,0\n48,0,40,0,23,0,6,0,45,0,19,0\n52,0,65,0,42,0,58,0,38,0,15,0\n46,1,22,0,13,0,14,0,12,0,28,0\n51,0,64,0,3,0,60,0,55,0,34,0\n7,0,44,0,56,0,31,0,67,0,1,0\n35,0,9,0,33,0,2,0,39,0,53,0\n29,0,10,0,45,0,36,0,59,0,43,0\n48,0,11,0,25,0,49,0,52,0,63,0\n66,0,20,0,50,0,41,0,30,0,16,0\n5,0,23,0,21,0,4,0,57,0,32,0\n17,0,18,0,26,0,62,0,40,0,8,0\n6,0,54,0,58,0,61,0,24,0,27,0\n47,0,37,0,9,0,19,0,31,0,28,0\n49,0,64,0,2,0,13,0,66,0,10,0\n42,0,30,0,57,0,39,0,14,0,48,0\n67,0,32,0,16,0,18,0,25,0,55,0\n38,0,33,0,34,0,7,0,40,0,11,0\n23,0,17,0,65,0,51,0,56,0,41,0\n8,0,52,0,6,0,46,0,36,0,21,0\n63,0,22,0,24,0,20,0,62,0,47,0\n27,0,12,0,19,0,43,0,3,0,44,0\n29,0,54,0,26,0,5,0,60,0,37,0\n53,0,4,0,45,0,50,0,61,0,15,0\n59,0,58,0,16,0,35,0,1,0,40,0\n6,0,39,0,47,0,51,0,11,0,66,0\n9,0,34,0,65,0,10,0,8,0,20,0\n37,0,18,0,63,0,46,0,44,0,42,0\n4,0,2,0,67,0,28,0,38,0,43,0\n62,0,30,0,7,0,5,0,49,0,45,0\n21,0,31,0,48,0,12,0,29,0,15,0\n19,0,55,0,53,0,13,0,56,0,58,0\n27,0,14,0,35,0,26,0,50,0,23,0\n41,0,36,0,61,0,22,0,60,0,57,0\n32,0,3,0,1,0,24,0,52,0,17,0\n59,0,25,0,54,0,64,0,33,0,46,0\n"
  },
  {
    "path": "schedules/67_6.csv",
    "content": "32,0,64,0,41,0,3,0,61,0,50,0\n67,0,12,0,59,0,22,0,30,0,29,0\n36,0,28,0,55,0,6,0,23,0,51,0\n24,0,7,0,39,0,54,0,13,0,20,0\n26,0,57,0,45,0,65,0,43,0,1,0\n31,0,18,0,42,0,53,0,44,0,33,0\n9,0,16,0,27,0,8,0,37,0,62,0\n52,0,4,0,46,0,2,0,5,0,38,0\n63,0,49,0,35,0,11,0,34,0,56,0\n66,0,15,0,17,0,10,0,21,0,25,0\n60,0,40,0,48,0,47,0,19,0,14,0\n58,0,8,0,28,0,65,0,61,0,20,0\n3,0,36,0,27,0,44,0,39,0,59,0\n30,0,50,0,18,0,11,0,57,0,16,0\n31,0,1,0,56,0,4,0,54,0,66,0\n48,0,35,0,25,0,6,0,5,0,33,0\n24,0,45,0,41,0,9,0,47,0,38,0\n7,0,2,0,32,0,55,0,67,0,40,0\n37,0,17,0,63,0,12,0,14,0,42,0\n49,0,21,0,29,0,23,0,26,0,46,0\n51,0,34,0,58,0,53,0,13,0,15,0\n64,0,22,0,10,0,62,0,52,0,60,0\n19,0,11,0,8,0,43,0,3,0,7,0\n25,0,56,0,14,0,18,0,59,0,55,0\n40,0,5,0,1,0,21,0,41,0,42,0\n2,0,54,0,15,0,30,0,63,0,28,0\n53,0,26,0,27,0,52,0,48,0,32,0\n60,0,61,0,33,0,49,0,51,0,67,0\n23,0,45,0,44,0,20,0,10,0,50,0\n36,0,29,0,62,0,24,0,57,0,31,0\n9,0,22,0,6,0,4,0,58,0,43,0\n65,0,13,0,47,0,46,0,66,0,37,0\n64,0,38,0,35,0,19,0,12,0,39,0\n17,0,16,0,7,0,34,0,48,0,1,0\n23,0,42,0,54,0,27,0,57,0,60,0\n59,0,24,0,40,0,8,0,49,0,6,0\n32,0,66,0,63,0,5,0,44,0,62,0\n20,0,38,0,43,0,67,0,37,0,25,0\n14,0,21,0,11,0,39,0,22,0,51,0\n2,0,50,0,34,0,31,0,26,0,47,0\n33,0,46,0,56,0,64,0,30,0,58,0\n16,0,3,0,55,0,65,0,35,0,29,0\n10,0,4,0,19,0,41,0,53,0,28,0\n52,0,18,0,61,0,17,0,45,0,13,0\n12,0,9,0,32,0,15,0,36,0,49,0\n46,0,63,0,39,0,25,0,40,0,50,0\n38,0,14,0,23,0,66,0,3,0,34,0\n62,0,6,0,53,0,20,0,11,0,1,0\n26,0,56,0,67,0,24,0,28,0,16,0\n57,0,15,0,41,0,48,0,22,0,8,0\n43,0,17,0,44,0,29,0,2,0,64,0\n60,0,31,0,21,0,13,0,30,0,9,0\n61,0,7,0,42,0,10,0,35,0,36,0\n65,0,52,0,51,0,54,0,59,0,19,0\n58,0,12,0,5,0,27,0,18,0,47,0\n37,0,55,0,33,0,4,0,45,0,15,0\n14,0,13,0,44,0,16,0,41,0,6,0\n48,0,43,0,23,0,31,0,61,0,39,0\n66,0,20,0,42,0,9,0,29,0,52,0\n65,0,53,0,12,0,2,0,56,0,60,0\n28,0,27,0,22,0,34,0,40,0,45,0\n21,0,64,0,67,0,8,0,36,0,63,0\n3,0,1,0,51,0,46,0,24,0,18,0\n54,0,26,0,10,0,11,0,38,0,33,0\n49,0,5,0,50,0,55,0,19,0,17,0\n35,0,57,0,37,0,32,0,59,0,58,0\n47,0,25,0,30,0,62,0,7,0,4,0\n"
  },
  {
    "path": "schedules/67_7.csv",
    "content": "67,0,63,0,42,0,52,0,43,0,47,0\n18,0,20,0,36,0,21,0,2,0,49,0\n30,0,14,0,31,0,60,0,35,0,37,0\n19,0,56,0,1,0,58,0,38,0,54,0\n25,0,22,0,62,0,15,0,39,0,34,0\n55,0,11,0,5,0,12,0,29,0,6,0\n65,0,40,0,57,0,44,0,17,0,23,0\n9,0,45,0,50,0,4,0,41,0,61,0\n66,0,3,0,64,0,8,0,24,0,10,0\n51,0,16,0,59,0,27,0,46,0,32,0\n7,0,26,0,28,0,33,0,13,0,53,0\n22,0,6,0,17,0,48,0,31,0,43,0\n23,0,5,0,45,0,1,0,2,0,34,0\n20,0,30,0,58,0,29,0,67,0,25,0\n51,0,42,0,3,0,11,0,49,0,60,0\n19,0,24,0,4,0,53,0,52,0,62,0\n48,0,40,0,54,0,14,0,33,0,9,0\n8,0,57,0,18,0,46,0,37,0,50,0\n39,0,41,0,21,0,38,0,16,0,28,0\n36,0,47,0,61,0,65,0,32,0,64,0\n7,0,10,0,59,0,15,0,56,0,44,0\n27,0,12,0,66,0,35,0,63,0,26,0\n13,0,46,0,42,0,55,0,2,0,14,0\n45,1,33,0,52,0,21,1,5,0,8,0\n38,1,34,0,50,0,67,1,64,0,31,0\n51,1,37,0,6,0,65,0,15,0,54,0\n30,0,24,0,41,0,11,0,40,0,27,0\n12,0,9,0,49,0,13,0,56,0,32,0\n61,0,25,0,59,0,60,0,66,0,1,0\n47,0,35,0,58,0,4,0,16,0,55,0\n26,0,62,0,23,0,48,0,36,0,3,0\n20,0,17,0,63,0,19,0,10,0,28,0\n29,0,18,0,39,0,43,0,53,0,44,0\n7,0,57,0,5,0,22,0,42,0,66,0\n2,0,31,0,15,0,11,0,58,0,9,0\n40,0,8,0,13,0,38,0,6,0,25,0\n21,0,60,0,65,0,50,0,63,0,12,0\n29,0,53,0,16,0,17,0,56,0,45,0\n61,0,44,0,62,0,33,0,27,0,67,0\n55,0,52,0,22,0,26,0,32,0,18,0\n64,0,23,0,14,0,51,0,7,0,19,0\n43,0,49,0,54,0,28,0,30,0,46,0\n1,0,57,0,4,0,3,0,39,0,20,0\n37,0,48,0,41,0,10,0,34,0,47,0\n35,0,36,0,6,0,59,0,24,0,9,0\n64,0,15,0,29,0,42,0,26,0,40,0\n50,0,27,0,22,0,28,0,23,0,56,0\n54,0,44,0,63,0,25,0,5,0,4,0\n34,0,61,0,11,0,19,0,57,0,21,0\n53,0,38,0,14,0,47,0,66,0,20,0\n3,0,59,0,33,0,2,0,43,0,41,0\n46,0,52,0,60,0,39,0,10,0,58,0\n13,0,48,0,1,0,30,0,18,0,51,0\n49,0,65,0,24,0,55,0,31,0,45,0\n35,0,32,0,17,0,8,0,62,0,7,0\n16,0,12,0,40,0,37,0,36,0,67,0\n21,0,27,0,6,0,58,0,14,0,3,0\n11,0,64,0,33,0,4,0,22,0,63,0\n39,0,49,0,19,0,59,0,48,0,50,0\n43,0,13,0,15,0,45,0,35,0,57,0\n51,0,54,0,26,0,61,0,20,0,8,0\n65,0,67,0,56,0,5,0,18,0,41,0\n53,0,25,0,10,0,32,0,42,0,31,0\n47,0,46,0,1,0,17,0,62,0,12,0\n2,0,29,0,38,0,24,0,7,0,37,0\n44,0,60,0,55,0,36,0,34,0,28,0\n23,0,9,0,66,0,30,0,16,0,52,0\n8,0,41,0,27,0,49,0,53,0,15,0\n19,0,31,0,47,0,5,0,3,0,13,0\n58,0,45,0,12,0,64,0,18,0,59,0\n2,0,51,0,28,0,57,0,6,0,62,0\n32,0,67,0,23,0,24,0,54,0,60,0\n38,0,17,0,30,0,33,0,36,0,42,0\n44,0,37,0,9,0,22,0,20,0,21,0\n16,0,1,0,43,0,14,0,26,0,50,0\n4,0,46,0,34,0,66,0,29,0,65,0\n39,0,7,0,61,0,55,0,63,0,40,0\n11,0,48,0,56,0,25,0,52,0,35,0\n10,0,45,0,67,0,21,0,38,0,51,0\n"
  },
  {
    "path": "schedules/67_8.csv",
    "content": "54,0,43,0,33,0,66,0,24,0,61,0\n7,0,15,0,25,0,49,0,27,0,28,0\n37,0,8,0,5,0,23,0,13,0,45,0\n10,0,52,0,32,0,22,0,40,0,14,0\n38,0,20,0,29,0,26,0,51,0,50,0\n47,0,16,0,1,0,39,0,35,0,21,0\n57,0,48,0,64,0,11,0,56,0,44,0\n58,0,30,0,36,0,17,0,63,0,67,0\n4,0,62,0,18,0,12,0,2,0,60,0\n31,0,6,0,65,0,53,0,9,0,41,0\n46,0,42,0,34,0,55,0,19,0,3,0\n59,0,43,0,16,0,40,0,38,0,23,0\n7,0,61,0,22,0,36,0,17,0,26,0\n62,0,56,0,13,0,21,0,66,0,58,0\n51,0,41,0,35,0,67,0,44,0,25,0\n42,0,63,0,50,0,52,0,65,0,2,0\n9,0,39,0,12,0,19,0,37,0,14,0\n20,0,31,0,49,0,60,0,10,0,47,0\n6,0,15,0,18,0,5,0,46,0,57,0\n11,0,55,0,24,0,4,0,45,0,59,0\n32,0,33,0,28,0,34,0,29,0,8,0\n27,0,30,0,48,0,1,0,54,0,3,0\n53,0,35,0,49,0,64,0,52,0,36,0\n43,1,65,0,17,0,21,1,57,0,10,0\n44,1,7,0,20,0,24,1,13,0,63,0\n45,0,61,0,32,0,42,0,41,0,15,0\n38,0,62,0,54,0,37,0,34,0,11,0\n19,0,18,0,64,0,29,0,59,0,30,0\n39,0,67,0,33,0,31,0,27,0,4,0\n55,0,60,0,51,0,48,0,16,0,22,0\n50,0,12,0,28,0,56,0,46,0,23,0\n25,0,14,0,58,0,8,0,6,0,3,0\n40,0,26,0,5,0,1,0,66,0,53,0\n2,0,47,0,44,0,9,0,38,0,15,0\n7,0,18,0,35,0,10,0,55,0,33,0\n17,0,19,0,13,0,54,0,31,0,16,0\n36,0,27,0,34,0,14,0,41,0,50,0\n60,0,24,0,56,0,6,0,30,0,25,0\n8,0,32,0,64,0,20,0,21,0,4,0\n52,0,61,0,39,0,29,0,5,0,3,0\n51,0,57,0,66,0,23,0,9,0,42,0\n63,0,48,0,40,0,49,0,45,0,62,0\n67,0,26,0,59,0,2,0,28,0,37,0\n46,0,11,0,22,0,53,0,65,0,47,0\n58,0,43,0,31,0,12,0,1,0,32,0\n17,0,38,0,42,0,56,0,39,0,8,0\n4,0,40,0,41,0,57,0,30,0,13,0\n23,0,10,0,61,0,21,0,34,0,63,0\n14,0,44,0,16,0,7,0,62,0,53,0\n22,0,66,0,37,0,50,0,18,0,25,0\n5,0,65,0,33,0,28,0,58,0,60,0\n45,0,26,0,27,0,19,0,35,0,43,0\n48,0,9,0,52,0,46,0,67,0,20,0\n24,0,49,0,29,0,1,0,2,0,11,0\n51,0,3,0,59,0,6,0,47,0,36,0\n12,0,15,0,54,0,64,0,55,0,40,0\n63,0,5,0,66,0,38,0,4,0,19,0\n60,0,23,0,53,0,27,0,17,0,32,0\n44,0,8,0,1,0,18,0,61,0,65,0\n35,0,24,0,57,0,31,0,48,0,34,0\n6,0,55,0,62,0,28,0,20,0,39,0\n21,0,56,0,14,0,29,0,51,0,54,0\n46,0,45,0,2,0,25,0,16,0,36,0\n43,0,37,0,64,0,52,0,7,0,41,0\n15,0,11,0,3,0,67,0,10,0,50,0\n9,0,58,0,13,0,49,0,59,0,22,0\n42,0,30,0,26,0,33,0,47,0,12,0\n34,0,20,0,65,0,56,0,16,0,5,0\n40,0,17,0,46,0,37,0,27,0,29,0\n60,0,67,0,19,0,8,0,57,0,7,0\n39,0,53,0,51,0,15,0,58,0,24,0\n9,0,50,0,61,0,55,0,30,0,35,0\n4,0,49,0,54,0,42,0,44,0,6,0\n62,0,23,0,52,0,26,0,31,0,25,0\n11,0,18,0,36,0,13,0,43,0,32,0\n3,0,22,0,21,0,45,0,12,0,38,0\n59,0,2,0,33,0,48,0,10,0,41,0\n14,0,66,0,47,0,64,0,28,0,63,0\n1,0,34,0,4,0,52,0,17,0,51,0\n67,0,43,0,56,0,5,0,53,0,55,0\n16,0,37,0,3,0,32,0,49,0,57,0\n8,0,24,0,10,0,9,0,62,0,27,0\n23,0,2,0,6,0,19,0,44,0,22,0\n36,0,29,0,48,0,65,0,12,0,66,0\n31,0,21,0,28,0,42,0,18,0,40,0\n38,0,25,0,13,0,61,0,64,0,33,0\n41,0,11,0,63,0,39,0,60,0,26,0\n47,0,50,0,7,0,54,0,58,0,45,0\n1,0,15,0,35,0,14,0,59,0,20,0\n46,0,21,0,44,0,30,0,43,0,24,0\n"
  },
  {
    "path": "schedules/67_9.csv",
    "content": "40,0,3,0,30,0,14,0,63,0,49,0\n60,0,56,0,9,0,23,0,1,0,34,0\n52,0,41,0,11,0,26,0,59,0,58,0\n38,0,47,0,31,0,20,0,44,0,53,0\n45,0,22,0,37,0,24,0,35,0,33,0\n65,0,32,0,67,0,51,0,16,0,50,0\n17,0,57,0,8,0,12,0,28,0,7,0\n36,0,4,0,39,0,13,0,19,0,10,0\n64,0,66,0,27,0,2,0,18,0,43,0\n42,0,21,0,29,0,6,0,25,0,61,0\n54,0,15,0,55,0,46,0,48,0,62,0\n5,0,40,0,9,0,28,0,67,0,8,0\n50,0,58,0,34,0,59,0,47,0,17,0\n10,0,2,0,12,0,24,0,49,0,32,0\n11,0,35,0,63,0,65,0,38,0,66,0\n52,0,44,0,25,0,64,0,39,0,3,0\n56,0,36,0,55,0,45,0,41,0,42,0\n6,0,21,0,13,0,37,0,30,0,31,0\n1,0,14,0,4,0,18,0,5,0,48,0\n20,0,22,0,16,0,46,0,61,0,60,0\n23,0,7,0,54,0,53,0,15,0,33,0\n29,0,43,0,57,0,26,0,19,0,51,0\n62,0,41,0,13,0,27,0,12,0,35,0\n45,1,59,0,48,0,49,1,65,0,39,0\n52,1,8,0,60,0,6,0,4,0,66,0\n53,0,3,0,34,0,21,0,55,0,5,0\n28,0,10,0,50,0,54,0,38,0,42,0\n62,0,9,0,47,0,37,0,29,0,64,0\n33,0,40,0,56,0,27,0,57,0,61,0\n2,0,24,0,58,0,25,0,14,0,46,0\n17,0,26,0,23,0,44,0,32,0,30,0\n51,0,20,0,11,0,18,0,15,0,63,0\n1,0,7,0,43,0,36,0,31,0,67,0\n19,0,16,0,12,0,22,0,34,0,21,0\n35,0,8,0,61,0,10,0,14,0,55,0\n33,0,26,0,39,0,38,0,2,0,62,0\n29,0,46,0,5,0,23,0,64,0,13,0\n54,0,24,0,20,0,36,0,7,0,49,0\n30,0,50,0,18,0,60,0,41,0,19,0\n52,0,15,0,40,0,17,0,31,0,22,0\n27,0,37,0,59,0,67,0,42,0,63,0\n43,0,65,0,48,0,9,0,3,0,57,0\n44,0,45,0,51,0,6,0,28,0,58,0\n53,0,47,0,4,0,16,0,11,0,1,0\n25,0,66,0,19,0,56,0,32,0,54,0\n63,0,17,0,21,0,2,0,60,0,36,0\n43,0,30,0,24,0,62,0,42,0,40,0\n18,0,12,0,3,0,23,0,45,0,10,0\n57,0,37,0,44,0,4,0,55,0,49,0\n1,0,25,0,53,0,52,0,50,0,35,0\n16,0,38,0,5,0,59,0,56,0,29,0\n66,0,51,0,14,0,13,0,33,0,9,0\n7,0,32,0,48,0,11,0,27,0,22,0\n6,0,39,0,15,0,58,0,67,0,61,0\n64,0,34,0,28,0,65,0,20,0,41,0\n26,0,47,0,18,0,31,0,46,0,8,0\n16,0,55,0,63,0,24,0,13,0,52,0\n54,0,59,0,44,0,43,0,12,0,14,0\n67,0,62,0,23,0,57,0,11,0,21,0\n29,0,15,0,4,0,50,0,41,0,2,0\n6,0,36,0,46,0,32,0,9,0,38,0\n31,0,64,0,51,0,35,0,17,0,49,0\n7,0,3,0,37,0,66,0,61,0,34,0\n45,0,20,0,27,0,25,0,5,0,30,0\n19,0,58,0,33,0,40,0,1,0,8,0\n47,0,22,0,65,0,10,0,26,0,56,0\n28,0,42,0,60,0,39,0,48,0,53,0\n18,0,7,0,21,0,9,0,59,0,52,0\n4,0,38,0,13,0,43,0,23,0,49,0\n14,0,32,0,31,0,45,0,57,0,34,0\n46,0,1,0,10,0,44,0,63,0,41,0\n60,0,11,0,55,0,29,0,54,0,40,0\n62,0,8,0,20,0,17,0,42,0,3,0\n28,0,19,0,35,0,6,0,47,0,27,0\n66,0,5,0,39,0,22,0,24,0,50,0\n26,0,16,0,36,0,64,0,25,0,15,0\n37,0,12,0,53,0,65,0,58,0,56,0\n51,0,67,0,2,0,30,0,48,0,61,0\n33,0,31,0,63,0,32,0,4,0,28,0\n45,0,7,0,38,0,21,0,40,0,47,0\n49,0,66,0,42,0,1,0,15,0,26,0\n24,0,9,0,17,0,19,0,11,0,56,0\n54,0,13,0,58,0,2,0,3,0,22,0\n5,0,10,0,62,0,25,0,60,0,51,0\n35,0,34,0,67,0,29,0,44,0,18,0\n48,0,6,0,55,0,33,0,50,0,20,0\n41,0,8,0,16,0,39,0,43,0,37,0\n52,0,14,0,65,0,27,0,36,0,23,0\n64,0,46,0,30,0,59,0,53,0,57,0\n61,0,9,0,26,0,12,0,45,0,4,0\n15,0,60,0,32,0,47,0,13,0,3,0\n17,0,18,0,25,0,37,0,55,0,38,0\n48,0,10,0,41,0,31,0,66,0,16,0\n42,0,44,0,65,0,5,0,7,0,19,0\n36,0,29,0,52,0,33,0,30,0,12,0\n49,0,21,0,56,0,14,0,39,0,28,0\n27,0,8,0,34,0,51,0,24,0,53,0\n35,0,59,0,2,0,40,0,20,0,23,0\n63,0,61,0,50,0,58,0,62,0,43,0\n64,0,57,0,6,0,54,0,1,0,22,0\n67,0,11,0,49,0,46,0,45,0,52,0\n"
  },
  {
    "path": "schedules/68_1.csv",
    "content": "51,0,61,0,5,0,20,0,9,0,23,0\n48,0,28,0,21,0,8,0,67,0,18,0\n64,0,46,0,7,0,39,0,37,0,15,0\n3,0,47,0,25,0,44,0,66,0,58,0\n12,0,65,0,55,0,4,0,60,0,34,0\n68,0,36,0,56,0,10,0,35,0,6,0\n32,0,24,0,22,0,1,0,2,0,43,0\n40,0,57,0,29,0,31,0,49,0,53,0\n41,0,19,0,50,0,14,0,59,0,62,0\n33,0,16,0,27,0,26,0,11,0,42,0\n52,0,38,0,13,0,30,0,54,0,45,0\n63,0,32,1,7,1,17,0,28,1,64,1\n"
  },
  {
    "path": "schedules/68_10.csv",
    "content": "24,0,45,0,16,0,57,0,48,0,60,0\n67,0,62,0,61,0,65,0,13,0,27,0\n53,0,22,0,55,0,63,0,10,0,37,0\n46,0,31,0,54,0,25,0,26,0,34,0\n33,0,5,0,30,0,14,0,21,0,41,0\n42,0,44,0,56,0,12,0,58,0,32,0\n50,0,38,0,2,0,4,0,6,0,17,0\n29,0,18,0,3,0,59,0,43,0,19,0\n9,0,66,0,64,0,28,0,39,0,51,0\n52,0,36,0,49,0,20,0,23,0,11,0\n15,0,8,0,47,0,1,0,68,0,35,0\n7,0,41,0,26,0,40,0,62,0,58,0\n55,0,65,0,29,0,33,0,54,0,45,0\n17,0,25,0,44,0,27,0,10,0,51,0\n13,0,6,0,63,0,64,0,52,0,57,0\n19,0,11,0,36,0,30,0,4,0,42,0\n38,0,68,0,60,0,9,0,18,0,21,0\n48,0,37,0,34,0,56,0,47,0,39,0\n50,0,7,0,61,0,5,0,53,0,49,0\n1,0,14,0,28,0,22,0,43,0,12,0\n3,0,66,0,35,0,24,0,2,0,20,0\n31,0,40,0,8,0,23,0,67,0,59,0\n46,0,32,0,18,0,16,0,15,0,52,0\n68,1,64,0,48,0,61,1,34,0,38,0\n12,1,10,0,39,0,11,1,50,0,41,0\n56,0,7,0,66,0,29,0,30,0,25,0\n53,0,19,0,47,0,58,0,54,0,9,0\n1,0,21,0,42,0,31,0,17,0,16,0\n40,0,67,0,57,0,36,0,28,0,2,0\n45,0,26,0,23,0,15,0,44,0,37,0\n20,0,65,0,8,0,63,0,51,0,14,0\n4,0,33,0,24,0,22,0,62,0,46,0\n13,0,43,0,3,0,60,0,5,0,55,0\n59,0,27,0,35,0,49,0,6,0,32,0\n57,0,16,0,23,0,58,0,38,0,39,0\n17,0,54,0,40,0,48,0,20,0,18,0\n63,0,1,0,9,0,26,0,11,0,44,0\n14,0,4,0,29,0,51,0,60,0,37,0\n43,0,50,0,34,0,66,0,52,0,27,0\n19,0,68,0,28,0,6,0,62,0,55,0\n41,0,32,0,67,0,22,0,45,0,7,0\n12,0,2,0,30,0,8,0,10,0,46,0\n13,0,61,0,21,0,35,0,47,0,36,0\n3,0,56,0,65,0,31,0,64,0,49,0\n15,0,59,0,42,0,25,0,53,0,33,0\n5,0,40,0,63,0,24,0,38,0,32,0\n66,0,67,0,34,0,12,0,26,0,17,0\n11,0,2,0,27,0,22,0,16,0,21,0\n35,0,31,0,51,0,43,0,48,0,7,0\n54,0,15,0,49,0,14,0,57,0,30,0\n28,0,45,0,47,0,4,0,18,0,25,0\n33,0,39,0,8,0,44,0,3,0,6,0\n60,0,58,0,46,0,50,0,64,0,59,0\n20,0,1,0,52,0,55,0,42,0,61,0\n13,0,68,0,53,0,41,0,23,0,56,0\n9,0,24,0,62,0,37,0,36,0,29,0\n10,0,5,0,7,0,65,0,19,0,16,0\n21,0,34,0,49,0,44,0,4,0,8,0\n25,0,43,0,58,0,67,0,38,0,63,0\n14,0,53,0,17,0,45,0,11,0,46,0\n54,0,39,0,29,0,1,0,22,0,13,0\n59,0,68,0,36,0,48,0,66,0,10,0\n57,0,51,0,32,0,62,0,47,0,3,0\n12,0,37,0,52,0,2,0,31,0,33,0\n60,0,41,0,27,0,20,0,26,0,19,0\n5,0,35,0,9,0,42,0,64,0,40,0\n15,0,55,0,28,0,24,0,50,0,56,0\n65,0,6,0,61,0,30,0,23,0,18,0\n14,0,31,0,39,0,32,0,47,0,2,0\n33,0,49,0,16,0,17,0,43,0,68,0\n52,0,22,0,26,0,51,0,5,0,64,0\n57,0,21,0,53,0,40,0,55,0,66,0\n58,0,15,0,48,0,4,0,9,0,65,0\n37,0,42,0,6,0,54,0,60,0,67,0\n62,0,59,0,63,0,12,0,50,0,35,0\n20,0,7,0,25,0,24,0,11,0,13,0\n18,0,41,0,36,0,3,0,1,0,46,0\n29,0,10,0,34,0,28,0,23,0,61,0\n19,0,45,0,27,0,38,0,8,0,56,0\n44,0,43,0,62,0,30,0,64,0,47,0\n59,0,51,0,12,0,54,0,21,0,24,0\n48,0,9,0,26,0,2,0,25,0,49,0\n18,0,13,0,28,0,33,0,58,0,37,0\n53,0,23,0,1,0,67,0,35,0,4,0\n50,0,40,0,36,0,14,0,16,0,34,0\n15,0,63,0,17,0,3,0,7,0,39,0\n44,0,41,0,38,0,65,0,60,0,52,0\n22,0,19,0,56,0,66,0,61,0,57,0\n30,0,68,0,46,0,27,0,29,0,42,0\n5,0,31,0,6,0,10,0,45,0,20,0\n8,0,32,0,64,0,11,0,55,0,18,0\n4,0,12,0,60,0,40,0,52,0,7,0\n51,0,66,0,49,0,13,0,33,0,38,0\n46,0,23,0,48,0,19,0,63,0,21,0\n17,0,47,0,27,0,5,0,24,0,29,0\n55,0,2,0,14,0,44,0,59,0,61,0\n65,0,37,0,57,0,50,0,32,0,1,0\n42,0,25,0,9,0,6,0,34,0,41,0\n30,0,3,0,16,0,53,0,26,0,28,0\n11,0,10,0,56,0,43,0,54,0,35,0\n45,0,39,0,67,0,20,0,62,0,68,0\n8,0,22,0,58,0,36,0,15,0,31,0\n23,0,7,0,12,0,27,0,9,0,55,0\n38,0,47,0,49,0,42,0,46,0,28,0\n54,0,61,0,16,0,63,0,41,0,66,0\n25,0,37,0,11,0,3,0,19,0,40,0\n24,0,6,0,36,0,43,0,65,0,53,0\n20,0,50,0,44,0,22,0,29,0,68,0\n2,0,62,0,18,0,5,0,56,0,34,0\n10,0,64,0,21,0,14,0,15,0,67,0\n59,0,26,0,4,0,13,0,39,0,57,0\n60,0,33,0,32,0,1,0,8,0,48,0\n30,0,58,0,35,0,17,0,52,0,45,0\n51,0,61,0,11,0,31,0,68,0,12,0\n"
  },
  {
    "path": "schedules/68_11.csv",
    "content": "40,0,58,0,19,0,12,0,45,0,7,0\n3,0,14,0,35,0,66,0,60,0,2,0\n49,0,52,0,11,0,8,0,63,0,6,0\n28,0,22,0,41,0,37,0,56,0,27,0\n47,0,68,0,36,0,32,0,39,0,53,0\n21,0,9,0,10,0,65,0,13,0,17,0\n57,0,29,0,59,0,4,0,25,0,31,0\n67,0,48,0,54,0,61,0,44,0,64,0\n55,0,50,0,15,0,26,0,42,0,30,0\n23,0,24,0,38,0,1,0,5,0,18,0\n34,0,51,0,46,0,33,0,20,0,16,0\n62,0,11,0,59,0,43,0,52,0,35,0\n17,0,40,0,28,0,48,0,57,0,14,0\n68,0,7,0,63,0,50,0,65,0,67,0\n3,0,9,0,31,0,39,0,22,0,55,0\n58,0,54,0,21,0,19,0,42,0,33,0\n32,0,36,0,5,0,26,0,25,0,61,0\n37,0,2,0,10,0,46,0,4,0,1,0\n41,0,29,0,64,0,43,0,30,0,49,0\n6,0,16,0,15,0,56,0,23,0,13,0\n12,0,20,0,62,0,38,0,47,0,45,0\n53,0,18,0,44,0,66,0,51,0,27,0\n60,0,8,0,25,0,34,0,24,0,54,0\n52,1,19,0,1,0,48,1,29,0,68,0\n14,0,65,0,23,0,41,0,33,0,11,0\n59,0,26,0,3,0,10,0,58,0,7,0\n13,0,6,0,67,0,39,0,2,0,35,0\n20,0,51,0,60,0,31,0,64,0,17,0\n32,0,56,0,4,0,44,0,9,0,8,0\n38,0,57,0,46,0,61,0,55,0,27,0\n5,0,37,0,62,0,40,0,30,0,16,0\n22,0,63,0,42,0,66,0,47,0,34,0\n45,0,21,0,43,0,50,0,28,0,53,0\n24,0,18,0,36,0,49,0,15,0,12,0\n11,0,58,0,27,0,9,0,64,0,67,0\n48,0,38,0,37,0,33,0,8,0,39,0\n26,0,66,0,4,0,30,0,52,0,31,0\n55,0,56,0,29,0,5,0,65,0,21,0\n32,0,60,0,12,0,59,0,28,0,1,0\n13,0,42,0,14,0,24,0,45,0,68,0\n50,0,16,0,54,0,57,0,47,0,35,0\n3,0,51,0,23,0,49,0,36,0,40,0\n43,0,53,0,6,0,19,0,22,0,10,0\n25,0,63,0,62,0,15,0,44,0,46,0\n41,0,34,0,17,0,7,0,2,0,18,0\n20,0,56,0,66,0,61,0,50,0,12,0\n65,0,47,0,42,0,37,0,51,0,64,0\n67,0,4,0,49,0,5,0,45,0,14,0\n59,0,13,0,53,0,8,0,54,0,29,0\n68,0,25,0,58,0,62,0,2,0,21,0\n7,0,43,0,3,0,15,0,20,0,57,0\n33,0,52,0,61,0,18,0,17,0,22,0\n23,0,9,0,34,0,26,0,28,0,10,0\n38,0,31,0,16,0,36,0,44,0,11,0\n1,0,35,0,27,0,63,0,39,0,40,0\n46,0,6,0,24,0,41,0,32,0,48,0\n60,0,19,0,7,0,55,0,30,0,67,0\n29,0,34,0,52,0,58,0,14,0,37,0\n2,0,8,0,5,0,31,0,42,0,20,0\n44,0,57,0,12,0,21,0,23,0,22,0\n46,0,40,0,11,0,56,0,15,0,47,0\n13,0,50,0,4,0,27,0,36,0,62,0\n3,0,28,0,30,0,25,0,6,0,65,0\n61,0,51,0,19,0,9,0,35,0,41,0\n66,0,54,0,17,0,43,0,38,0,1,0\n26,0,53,0,33,0,39,0,64,0,24,0\n60,0,45,0,16,0,63,0,18,0,32,0\n68,0,49,0,55,0,59,0,10,0,48,0\n40,0,65,0,12,0,44,0,4,0,52,0\n50,0,8,0,35,0,17,0,25,0,23,0\n31,0,61,0,67,0,24,0,21,0,37,0\n20,0,18,0,27,0,6,0,29,0,26,0\n30,0,47,0,2,0,9,0,59,0,33,0\n41,0,42,0,57,0,53,0,60,0,62,0\n34,0,1,0,45,0,3,0,55,0,11,0\n66,0,28,0,64,0,46,0,68,0,16,0\n43,0,39,0,58,0,63,0,51,0,56,0\n38,0,32,0,10,0,19,0,15,0,14,0\n22,0,48,0,36,0,5,0,7,0,54,0\n13,0,40,0,61,0,49,0,34,0,60,0\n12,0,17,0,26,0,67,0,3,0,46,0\n25,0,53,0,64,0,31,0,56,0,1,0\n35,0,44,0,37,0,43,0,24,0,10,0\n2,0,29,0,33,0,63,0,57,0,45,0\n20,0,30,0,23,0,32,0,68,0,27,0\n18,0,48,0,4,0,11,0,42,0,21,0\n8,0,14,0,62,0,36,0,51,0,55,0\n52,0,41,0,15,0,39,0,28,0,54,0\n13,0,22,0,16,0,58,0,65,0,38,0\n5,0,9,0,6,0,59,0,7,0,66,0\n49,0,19,0,31,0,47,0,50,0,27,0\n63,0,37,0,23,0,48,0,3,0,53,0\n10,0,56,0,36,0,42,0,52,0,60,0\n8,0,1,0,26,0,14,0,16,0,21,0\n35,0,33,0,15,0,5,0,41,0,12,0\n50,0,68,0,2,0,11,0,51,0,38,0\n58,0,32,0,49,0,65,0,66,0,57,0\n22,0,9,0,25,0,20,0,40,0,67,0\n18,0,46,0,55,0,13,0,43,0,54,0\n44,0,45,0,39,0,17,0,30,0,59,0\n47,0,24,0,61,0,28,0,29,0,7,0\n62,0,4,0,64,0,6,0,34,0,19,0\n1,0,57,0,53,0,52,0,20,0,9,0\n16,0,66,0,55,0,41,0,25,0,67,0\n2,0,65,0,43,0,48,0,40,0,26,0\n10,0,14,0,30,0,12,0,31,0,54,0\n17,0,11,0,29,0,22,0,32,0,62,0\n56,0,21,0,34,0,51,0,59,0,24,0\n18,0,61,0,35,0,3,0,68,0,4,0\n33,0,28,0,63,0,36,0,19,0,13,0\n39,0,42,0,7,0,23,0,46,0,49,0\n60,0,5,0,44,0,6,0,50,0,58,0\n64,0,27,0,45,0,8,0,37,0,15,0\n38,0,21,0,52,0,47,0,3,0,32,0\n24,0,20,0,17,0,4,0,55,0,63,0\n65,0,34,0,30,0,35,0,36,0,53,0\n1,0,7,0,67,0,33,0,56,0,62,0\n12,0,27,0,43,0,16,0,61,0,2,0\n28,0,6,0,31,0,42,0,38,0,40,0\n48,0,15,0,23,0,60,0,9,0,29,0\n68,0,54,0,44,0,26,0,49,0,37,0\n57,0,11,0,39,0,66,0,5,0,19,0\n50,0,59,0,14,0,64,0,46,0,22,0\n47,0,8,0,10,0,41,0,58,0,18,0\n51,0,25,0,48,0,45,0,13,0,52,0\n"
  },
  {
    "path": "schedules/68_12.csv",
    "content": "27,0,10,0,61,0,34,0,66,0,35,0\n13,0,24,0,36,0,68,0,49,0,19,0\n46,0,58,0,1,0,23,0,57,0,42,0\n29,0,28,0,60,0,18,0,53,0,5,0\n38,0,54,0,62,0,25,0,22,0,17,0\n20,0,55,0,45,0,67,0,39,0,43,0\n2,0,44,0,37,0,16,0,21,0,48,0\n52,0,9,0,63,0,47,0,33,0,3,0\n41,0,4,0,7,0,31,0,26,0,59,0\n14,0,50,0,64,0,56,0,32,0,11,0\n8,0,12,0,6,0,40,0,30,0,65,0\n51,0,68,0,36,0,15,0,5,0,42,0\n62,0,3,0,29,0,49,0,16,0,55,0\n44,0,4,0,67,0,41,0,22,0,52,0\n63,0,50,0,2,0,23,0,20,0,37,0\n32,0,28,0,57,0,61,0,8,0,13,0\n64,0,54,0,26,0,38,0,33,0,1,0\n46,0,9,0,59,0,65,0,19,0,31,0\n12,0,48,0,53,0,11,0,7,0,66,0\n15,0,51,0,17,0,18,0,10,0,45,0\n43,0,21,0,30,0,56,0,27,0,40,0\n58,0,47,0,34,0,24,0,14,0,25,0\n35,0,6,0,3,0,60,0,39,0,36,0\n61,0,68,0,4,0,37,0,46,0,55,0\n16,0,18,0,66,0,1,0,9,0,64,0\n8,0,38,0,43,0,41,0,29,0,15,0\n67,0,23,0,24,0,17,0,40,0,7,0\n60,0,21,0,31,0,12,0,32,0,51,0\n11,0,50,0,35,0,25,0,33,0,59,0\n44,0,10,0,30,0,53,0,42,0,65,0\n22,0,27,0,47,0,39,0,6,0,13,0\n52,0,2,0,28,0,63,0,45,0,14,0\n58,0,48,0,5,0,49,0,20,0,54,0\n56,0,34,0,26,0,57,0,19,0,62,0\n51,0,16,0,42,0,65,0,38,0,50,0\n61,0,11,0,29,0,30,0,9,0,68,0\n23,0,53,0,31,0,55,0,33,0,67,0\n44,0,49,0,12,0,27,0,6,0,4,0\n40,0,37,0,18,0,46,0,54,0,35,0\n13,0,7,0,34,0,15,0,21,0,20,0\n10,0,62,0,36,0,28,0,47,0,59,0\n19,0,5,0,41,0,3,0,1,0,14,0\n24,0,64,0,57,0,45,0,48,0,60,0\n56,0,43,0,66,0,39,0,22,0,8,0\n2,0,58,0,17,0,26,0,52,0,32,0\n63,0,65,0,44,0,25,0,31,0,61,0\n11,0,62,0,40,0,41,0,13,0,1,0\n67,0,53,0,54,0,19,0,36,0,50,0\n23,0,47,0,30,0,38,0,18,0,59,0\n60,0,27,0,42,0,2,0,55,0,9,0\n25,0,32,0,35,0,66,0,22,0,15,0\n10,0,26,0,8,0,48,0,37,0,14,0\n16,0,46,0,7,0,49,0,45,0,56,0\n5,0,39,0,21,0,63,0,24,0,4,0\n29,0,68,0,20,0,17,0,57,0,6,0\n43,0,12,0,3,0,51,0,33,0,58,0\n28,0,34,0,30,0,64,0,52,0,67,0\n15,0,31,0,14,0,54,0,27,0,16,0\n5,0,50,0,60,0,26,0,40,0,22,0\n57,0,1,0,68,0,47,0,32,0,63,0\n23,0,41,0,36,0,66,0,65,0,45,0\n61,0,33,0,20,0,29,0,10,0,24,0\n59,0,56,0,7,0,44,0,3,0,18,0\n12,0,39,0,11,0,34,0,19,0,2,0\n42,0,62,0,52,0,64,0,21,0,37,0\n38,0,28,0,6,0,4,0,55,0,58,0\n48,0,35,0,13,0,9,0,17,0,43,0\n49,0,51,0,46,0,25,0,53,0,8,0\n57,0,50,0,26,0,3,0,27,0,30,0\n18,0,64,0,61,0,41,0,12,0,21,0\n55,0,22,0,36,0,20,0,16,0,34,0\n9,0,14,0,5,0,44,0,43,0,62,0\n6,0,59,0,37,0,51,0,66,0,24,0\n2,0,48,0,33,0,38,0,46,0,68,0\n45,0,42,0,32,0,47,0,11,0,4,0\n56,0,28,0,15,0,17,0,23,0,49,0\n7,0,63,0,31,0,19,0,58,0,40,0\n65,0,52,0,8,0,39,0,35,0,53,0\n1,0,25,0,67,0,60,0,10,0,13,0\n54,0,50,0,47,0,29,0,34,0,21,0\n55,0,42,0,17,0,5,0,59,0,12,0\n31,0,18,0,33,0,57,0,66,0,49,0\n20,0,36,0,64,0,44,0,27,0,8,0\n41,0,3,0,39,0,25,0,68,0,10,0\n15,0,6,0,32,0,63,0,46,0,11,0\n65,0,9,0,22,0,37,0,7,0,28,0\n30,0,4,0,54,0,43,0,13,0,2,0\n24,0,58,0,53,0,56,0,62,0,1,0\n19,0,16,0,38,0,60,0,52,0,35,0\n26,0,14,0,67,0,23,0,51,0,61,0\n45,0,40,0,25,0,48,0,29,0,42,0\n13,0,30,0,32,0,33,0,36,0,5,0\n9,0,41,0,53,0,2,0,54,0,6,0\n12,0,24,0,15,0,28,0,50,0,44,0\n21,0,11,0,49,0,23,0,26,0,65,0\n45,0,34,0,37,0,58,0,3,0,38,0\n63,0,8,0,19,0,16,0,4,0,17,0\n51,0,55,0,48,0,35,0,47,0,56,0\n61,0,1,0,60,0,52,0,43,0,7,0\n10,0,64,0,22,0,31,0,46,0,29,0\n27,0,68,0,66,0,18,0,67,0,62,0\n40,0,59,0,14,0,57,0,20,0,39,0\n45,0,5,0,23,0,8,0,9,0,34,0\n19,0,47,0,24,0,30,0,2,0,15,0\n37,0,17,0,33,0,44,0,41,0,60,0\n54,0,52,0,25,0,26,0,68,0,12,0\n38,0,66,0,55,0,14,0,7,0,21,0\n57,0,16,0,10,0,6,0,11,0,43,0\n63,0,49,0,27,0,59,0,42,0,22,0\n1,0,20,0,28,0,31,0,35,0,51,0\n40,0,3,0,53,0,32,0,64,0,4,0\n39,0,18,0,48,0,50,0,62,0,61,0\n13,0,65,0,67,0,56,0,58,0,29,0\n46,0,26,0,43,0,36,0,34,0,63,0\n1,0,49,0,37,0,30,0,12,0,14,0\n68,0,40,0,47,0,16,0,53,0,28,0\n52,0,51,0,3,0,48,0,23,0,27,0\n59,0,15,0,39,0,58,0,64,0,60,0\n19,0,33,0,45,0,61,0,22,0,6,0\n11,0,65,0,18,0,67,0,38,0,20,0\n25,0,21,0,4,0,9,0,57,0,36,0\n44,0,13,0,17,0,50,0,66,0,46,0\n55,0,24,0,32,0,41,0,10,0,54,0\n29,0,8,0,35,0,2,0,7,0,62,0\n42,0,56,0,6,0,31,0,5,0,52,0\n4,0,34,0,15,0,65,0,48,0,1,0\n27,0,33,0,43,0,19,0,25,0,37,0\n14,0,22,0,23,0,36,0,18,0,12,0\n32,0,39,0,29,0,26,0,51,0,44,0\n2,0,16,0,35,0,57,0,58,0,67,0\n54,0,60,0,66,0,42,0,63,0,28,0\n5,0,64,0,17,0,61,0,47,0,7,0\n45,0,21,0,59,0,53,0,68,0,13,0\n9,0,38,0,10,0,49,0,50,0,40,0\n55,0,3,0,31,0,24,0,11,0,8,0\n20,0,62,0,41,0,56,0,46,0,30,0\n"
  },
  {
    "path": "schedules/68_13.csv",
    "content": "56,0,35,0,7,0,55,0,4,0,37,0\n25,0,65,0,50,0,68,0,49,0,14,0\n9,0,52,0,28,0,1,0,67,0,54,0\n36,0,22,0,43,0,32,0,16,0,2,0\n3,0,17,0,5,0,60,0,48,0,29,0\n19,0,53,0,58,0,10,0,20,0,39,0\n45,0,38,0,27,0,51,0,31,0,24,0\n33,0,13,0,62,0,18,0,44,0,59,0\n21,0,47,0,42,0,46,0,34,0,57,0\n15,0,64,0,11,0,61,0,8,0,41,0\n26,0,40,0,23,0,30,0,63,0,6,0\n12,0,27,0,36,0,66,0,48,0,39,0\n28,0,32,0,25,0,62,0,59,0,9,0\n54,0,17,0,42,0,22,0,44,0,50,0\n53,0,41,0,55,0,19,0,1,0,3,0\n24,0,58,0,68,0,35,0,63,0,11,0\n40,0,7,0,12,0,67,0,21,0,52,0\n10,0,51,0,4,0,43,0,18,0,23,0\n65,0,31,0,66,0,34,0,13,0,16,0\n38,0,46,0,6,0,5,0,64,0,56,0\n61,0,60,0,30,0,2,0,49,0,57,0\n33,0,20,0,26,0,45,0,37,0,8,0\n14,0,29,0,43,0,15,0,47,0,52,0\n21,1,63,0,34,0,35,1,59,0,36,0\n27,1,50,0,64,0,13,1,3,0,23,0\n58,0,57,0,10,0,22,0,51,0,49,0\n5,0,11,0,54,0,65,0,37,0,2,0\n9,0,45,0,7,0,39,0,14,0,6,0\n55,0,26,0,32,0,33,0,68,0,47,0\n8,0,67,0,60,0,56,0,42,0,29,0\n25,0,48,0,38,0,1,0,15,0,28,0\n44,0,66,0,20,0,46,0,41,0,30,0\n18,0,40,0,24,0,61,0,19,0,16,0\n31,0,4,0,17,0,53,0,12,0,62,0\n36,0,13,0,49,0,3,0,6,0,54,0\n34,0,52,0,37,0,32,0,64,0,68,0\n27,0,10,0,44,0,60,0,58,0,25,0\n2,0,14,0,22,0,1,0,24,0,41,0\n47,0,12,0,35,0,28,0,18,0,51,0\n17,0,45,0,50,0,9,0,66,0,61,0\n15,0,38,0,30,0,62,0,7,0,55,0\n16,0,63,0,59,0,20,0,42,0,46,0\n19,0,4,0,23,0,5,0,21,0,33,0\n39,0,8,0,53,0,43,0,67,0,65,0\n26,0,57,0,48,0,40,0,29,0,11,0\n56,0,36,0,3,0,31,0,45,0,47,0\n14,0,16,0,30,0,27,0,28,0,17,0\n23,0,68,0,2,0,13,0,7,0,20,0\n37,0,15,0,63,0,5,0,10,0,12,0\n42,0,51,0,34,0,1,0,11,0,6,0\n66,0,33,0,67,0,38,0,22,0,35,0\n44,0,41,0,31,0,52,0,40,0,39,0\n50,0,62,0,21,0,8,0,24,0,26,0\n57,0,18,0,61,0,56,0,53,0,25,0\n46,0,48,0,58,0,4,0,32,0,54,0\n29,0,64,0,9,0,55,0,49,0,59,0\n60,0,43,0,47,0,19,0,65,0,6,0\n16,0,17,0,21,0,45,0,33,0,15,0\n67,0,36,0,51,0,13,0,25,0,5,0\n40,0,41,0,35,0,53,0,38,0,54,0\n29,0,61,0,46,0,62,0,10,0,34,0\n2,0,18,0,55,0,50,0,48,0,63,0\n31,0,7,0,64,0,58,0,28,0,42,0\n24,0,12,0,11,0,56,0,9,0,43,0\n22,0,37,0,59,0,49,0,19,0,52,0\n65,0,4,0,20,0,27,0,57,0,3,0\n14,0,8,0,44,0,32,0,23,0,66,0\n68,0,30,0,26,0,39,0,1,0,60,0\n11,0,2,0,42,0,25,0,55,0,17,0\n33,0,29,0,6,0,50,0,41,0,28,0\n19,0,63,0,13,0,9,0,57,0,38,0\n18,0,10,0,46,0,24,0,7,0,36,0\n23,0,60,0,59,0,45,0,54,0,66,0\n26,0,67,0,14,0,34,0,4,0,43,0\n5,0,1,0,8,0,44,0,58,0,12,0\n37,0,30,0,64,0,16,0,47,0,53,0\n56,0,40,0,15,0,27,0,32,0,49,0\n52,0,65,0,62,0,20,0,61,0,51,0\n68,0,48,0,3,0,21,0,31,0,22,0\n39,0,25,0,46,0,35,0,50,0,60,0\n12,0,16,0,9,0,26,0,38,0,10,0\n40,0,55,0,28,0,37,0,36,0,58,0\n20,0,49,0,5,0,18,0,17,0,34,0\n66,0,4,0,7,0,8,0,19,0,11,0\n2,0,64,0,6,0,54,0,21,0,68,0\n45,0,43,0,52,0,27,0,30,0,35,0\n61,0,47,0,62,0,22,0,39,0,23,0\n65,0,53,0,24,0,44,0,32,0,29,0\n63,0,3,0,51,0,56,0,33,0,14,0\n57,0,67,0,59,0,1,0,31,0,48,0\n15,0,41,0,19,0,42,0,13,0,26,0\n40,0,49,0,34,0,8,0,35,0,62,0\n65,0,28,0,12,0,46,0,22,0,55,0\n21,0,51,0,9,0,44,0,53,0,68,0\n50,0,4,0,52,0,38,0,36,0,16,0\n42,0,10,0,30,0,5,0,48,0,14,0\n25,0,31,0,29,0,20,0,23,0,54,0\n27,0,33,0,59,0,7,0,11,0,47,0\n13,0,39,0,64,0,56,0,24,0,17,0\n58,0,66,0,15,0,67,0,3,0,2,0\n18,0,45,0,41,0,43,0,57,0,37,0\n32,0,6,0,60,0,61,0,63,0,1,0\n33,0,42,0,9,0,40,0,65,0,36,0\n22,0,29,0,8,0,13,0,30,0,51,0\n20,0,35,0,48,0,56,0,44,0,47,0\n57,0,52,0,55,0,66,0,5,0,24,0\n43,0,1,0,17,0,46,0,50,0,7,0\n38,0,61,0,12,0,3,0,59,0,14,0\n25,0,37,0,18,0,58,0,6,0,31,0\n60,0,49,0,41,0,21,0,28,0,4,0\n11,0,68,0,39,0,16,0,15,0,23,0\n62,0,45,0,67,0,10,0,64,0,63,0\n27,0,2,0,54,0,34,0,53,0,26,0\n32,0,51,0,35,0,19,0,50,0,42,0\n36,0,21,0,41,0,17,0,30,0,65,0\n38,0,13,0,14,0,37,0,20,0,60,0\n62,0,56,0,23,0,52,0,58,0,16,0\n54,0,31,0,61,0,43,0,33,0,55,0\n27,0,48,0,8,0,9,0,63,0,46,0\n28,0,34,0,3,0,39,0,57,0,44,0\n7,0,22,0,5,0,26,0,64,0,25,0\n29,0,19,0,2,0,45,0,68,0,12,0\n1,0,10,0,49,0,40,0,47,0,66,0\n6,0,24,0,59,0,4,0,53,0,15,0\n32,0,11,0,21,0,18,0,67,0,20,0\n56,0,58,0,34,0,30,0,33,0,50,0\n54,0,16,0,55,0,57,0,51,0,7,0\n45,0,49,0,23,0,12,0,48,0,42,0\n65,0,3,0,61,0,35,0,37,0,26,0\n68,0,59,0,17,0,40,0,8,0,10,0\n60,0,22,0,15,0,31,0,9,0,18,0\n53,0,13,0,46,0,52,0,11,0,14,0\n32,0,47,0,39,0,38,0,2,0,5,0\n62,0,63,0,25,0,43,0,66,0,41,0\n64,0,1,0,44,0,4,0,29,0,36,0\n67,0,6,0,28,0,24,0,19,0,27,0\n7,0,48,0,53,0,65,0,34,0,60,0\n18,0,8,0,42,0,52,0,3,0,38,0\n2,0,26,0,51,0,31,0,59,0,46,0\n39,0,56,0,37,0,21,0,66,0,29,0\n13,0,11,0,28,0,45,0,32,0,10,0\n19,0,57,0,35,0,23,0,14,0,36,0\n50,0,68,0,5,0,27,0,41,0,62,0\n49,0,6,0,16,0,67,0,44,0,55,0\n63,0,58,0,4,0,17,0,9,0,47,0\n54,0,33,0,24,0,30,0,25,0,12,0\n15,0,43,0,20,0,22,0,64,0,40,0\n1,0,21,0,27,0,61,0,35,0,13,0\n"
  },
  {
    "path": "schedules/68_14.csv",
    "content": "34,0,52,0,36,0,38,0,12,0,39,0\n40,0,58,0,33,0,50,0,42,0,59,0\n29,0,21,0,48,0,19,0,3,0,61,0\n37,0,46,0,44,0,31,0,41,0,67,0\n13,0,55,0,45,0,63,0,1,0,22,0\n24,0,18,0,27,0,57,0,64,0,56,0\n7,0,65,0,8,0,30,0,49,0,43,0\n17,0,5,0,51,0,60,0,62,0,16,0\n2,0,35,0,68,0,15,0,47,0,20,0\n66,0,28,0,4,0,9,0,54,0,6,0\n10,0,14,0,26,0,53,0,23,0,25,0\n11,0,13,0,39,0,32,0,31,0,57,0\n58,0,1,0,3,0,5,0,44,0,12,0\n48,0,8,0,24,0,67,0,62,0,27,0\n65,0,6,0,66,0,45,0,59,0,36,0\n23,0,63,0,40,0,51,0,22,0,29,0\n4,0,43,0,32,0,18,0,38,0,25,0\n28,0,54,0,2,0,19,0,41,0,64,0\n68,0,34,0,26,0,56,0,49,0,21,0\n55,0,9,0,47,0,16,0,30,0,17,0\n15,0,53,0,14,0,7,0,60,0,61,0\n37,0,10,0,35,0,50,0,46,0,11,0\n52,0,20,0,57,0,33,0,42,0,63,0\n29,1,19,0,56,0,58,1,39,0,22,0\n32,0,67,0,68,0,51,0,26,0,9,0\n7,0,16,0,4,0,36,0,48,0,31,0\n45,0,17,0,6,0,27,0,61,0,44,0\n2,0,66,0,30,0,60,0,24,0,1,0\n8,0,20,0,33,0,14,0,35,0,5,0\n52,0,46,0,38,0,21,0,15,0,28,0\n3,0,64,0,54,0,37,0,53,0,50,0\n23,0,13,0,18,0,41,0,59,0,49,0\n34,0,10,0,43,0,55,0,42,0,62,0\n40,0,25,0,12,0,11,0,47,0,65,0\n16,0,14,0,6,0,1,0,15,0,39,0\n64,0,50,0,22,0,20,0,7,0,32,0\n24,0,30,0,37,0,5,0,68,0,45,0\n31,0,26,0,28,0,34,0,66,0,59,0\n46,0,60,0,21,0,27,0,33,0,11,0\n29,0,49,0,12,0,67,0,25,0,43,0\n47,0,63,0,56,0,10,0,4,0,54,0\n48,0,2,0,52,0,57,0,36,0,58,0\n19,0,62,0,13,0,53,0,9,0,40,0\n61,0,41,0,38,0,51,0,55,0,8,0\n42,0,23,0,65,0,3,0,18,0,17,0\n44,0,22,0,16,0,35,0,28,0,12,0\n54,0,25,0,59,0,21,0,2,0,39,0\n19,0,9,0,1,0,31,0,37,0,43,0\n60,0,50,0,34,0,61,0,63,0,48,0\n68,0,10,0,58,0,8,0,14,0,36,0\n67,0,66,0,64,0,65,0,33,0,17,0\n53,0,49,0,11,0,38,0,42,0,47,0\n46,0,45,0,24,0,44,0,20,0,29,0\n32,0,15,0,30,0,23,0,4,0,57,0\n55,0,5,0,40,0,18,0,52,0,6,0\n27,0,35,0,7,0,62,0,26,0,41,0\n13,0,3,0,31,0,51,0,56,0,33,0\n38,0,63,0,20,0,65,0,37,0,48,0\n17,0,39,0,4,0,8,0,45,0,53,0\n61,0,9,0,21,0,10,0,1,0,64,0\n34,0,19,0,11,0,5,0,23,0,15,0\n57,0,42,0,67,0,56,0,16,0,41,0\n66,0,58,0,44,0,47,0,51,0,62,0\n7,0,25,0,22,0,52,0,24,0,59,0\n60,0,36,0,54,0,13,0,26,0,43,0\n50,0,68,0,30,0,28,0,46,0,27,0\n49,0,35,0,32,0,6,0,40,0,3,0\n18,0,29,0,55,0,12,0,2,0,14,0\n11,0,51,0,67,0,58,0,7,0,59,0\n22,0,45,0,9,0,57,0,25,0,15,0\n37,0,27,0,23,0,36,0,66,0,39,0\n38,0,1,0,8,0,24,0,40,0,56,0\n65,0,53,0,13,0,46,0,34,0,2,0\n48,0,10,0,30,0,6,0,12,0,33,0\n18,0,16,0,19,0,50,0,20,0,26,0\n43,0,63,0,41,0,21,0,17,0,14,0\n31,0,47,0,49,0,60,0,28,0,29,0\n55,0,52,0,3,0,62,0,68,0,4,0\n32,0,5,0,42,0,35,0,54,0,61,0\n64,0,40,0,15,0,44,0,39,0,67,0\n19,0,53,0,59,0,27,0,8,0,12,0\n17,0,25,0,37,0,34,0,13,0,7,0\n38,0,26,0,60,0,6,0,57,0,47,0\n55,0,14,0,46,0,24,0,3,0,32,0\n62,0,52,0,54,0,63,0,29,0,30,0\n22,0,61,0,18,0,16,0,68,0,66,0\n33,0,9,0,5,0,49,0,65,0,36,0\n20,0,64,0,28,0,1,0,4,0,11,0\n42,0,48,0,51,0,21,0,45,0,31,0\n2,0,58,0,56,0,35,0,23,0,43,0\n41,0,44,0,13,0,50,0,10,0,52,0\n59,0,61,0,57,0,46,0,17,0,19,0\n24,0,39,0,26,0,63,0,9,0,4,0\n1,0,47,0,18,0,36,0,7,0,33,0\n31,0,14,0,51,0,22,0,54,0,30,0\n32,0,41,0,27,0,65,0,34,0,58,0\n21,0,37,0,20,0,6,0,8,0,29,0\n60,0,3,0,35,0,25,0,45,0,64,0\n53,0,68,0,43,0,48,0,44,0,40,0\n55,0,50,0,49,0,11,0,66,0,15,0\n62,0,23,0,12,0,56,0,28,0,42,0\n5,0,67,0,16,0,38,0,10,0,2,0\n32,0,26,0,65,0,52,0,37,0,1,0\n36,0,51,0,43,0,53,0,64,0,46,0\n41,0,9,0,14,0,45,0,11,0,60,0\n47,0,12,0,24,0,13,0,21,0,50,0\n2,0,44,0,62,0,61,0,49,0,4,0\n39,0,28,0,16,0,3,0,8,0,30,0\n17,0,35,0,63,0,58,0,31,0,38,0\n42,0,68,0,25,0,7,0,19,0,6,0\n67,0,33,0,54,0,55,0,22,0,23,0\n48,0,27,0,66,0,29,0,10,0,5,0\n34,0,56,0,15,0,18,0,20,0,59,0\n57,0,21,0,16,0,40,0,49,0,14,0\n24,0,61,0,17,0,11,0,52,0,35,0\n43,0,6,0,22,0,3,0,41,0,50,0\n36,0,19,0,32,0,63,0,60,0,67,0\n44,0,42,0,34,0,8,0,66,0,9,0\n25,0,31,0,55,0,20,0,53,0,27,0\n38,0,65,0,57,0,12,0,54,0,68,0\n58,0,15,0,4,0,37,0,13,0,33,0\n40,0,2,0,45,0,28,0,7,0,10,0\n29,0,59,0,26,0,64,0,30,0,5,0\n1,0,56,0,23,0,46,0,47,0,48,0\n62,0,39,0,25,0,18,0,51,0,41,0\n49,0,22,0,20,0,17,0,58,0,53,0\n40,0,16,0,36,0,54,0,24,0,34,0\n59,0,21,0,44,0,60,0,32,0,55,0\n38,0,33,0,3,0,2,0,27,0,26,0\n64,0,23,0,6,0,8,0,52,0,31,0\n46,0,15,0,7,0,12,0,63,0,66,0\n42,0,39,0,29,0,68,0,1,0,13,0\n43,0,28,0,47,0,37,0,61,0,5,0\n65,0,10,0,51,0,57,0,35,0,19,0\n30,0,9,0,11,0,56,0,48,0,18,0\n4,0,67,0,50,0,45,0,62,0,14,0\n54,0,63,0,27,0,1,0,49,0,25,0\n61,0,68,0,31,0,26,0,58,0,23,0\n6,0,42,0,37,0,24,0,51,0,2,0\n7,0,56,0,5,0,57,0,55,0,44,0\n11,0,8,0,62,0,46,0,22,0,65,0\n21,0,35,0,53,0,67,0,30,0,18,0\n33,0,19,0,52,0,45,0,34,0,16,0\n17,0,36,0,29,0,50,0,32,0,28,0\n10,0,41,0,47,0,9,0,15,0,3,0\n14,0,38,0,48,0,59,0,13,0,64,0\n20,0,60,0,66,0,39,0,40,0,43,0\n12,0,1,0,34,0,4,0,35,0,51,0\n56,0,31,0,50,0,2,0,65,0,25,0\n33,0,53,0,41,0,29,0,68,0,24,0\n44,0,7,0,45,0,54,0,23,0,38,0\n11,0,63,0,59,0,43,0,3,0,16,0\n36,0,4,0,5,0,21,0,42,0,22,0\n58,0,18,0,49,0,10,0,46,0,39,0\n61,0,30,0,28,0,13,0,67,0,20,0\n57,0,12,0,60,0,37,0,32,0,62,0\n8,0,40,0,17,0,26,0,48,0,15,0\n66,0,47,0,52,0,14,0,19,0,27,0\n64,0,9,0,29,0,55,0,6,0,58,0\n"
  },
  {
    "path": "schedules/68_2.csv",
    "content": "65,0,40,0,41,0,9,0,11,0,1,0\n53,0,13,0,17,0,8,0,60,0,68,0\n54,0,12,0,59,0,32,0,39,0,36,0\n5,0,56,0,50,0,45,0,4,0,49,0\n30,0,22,0,24,0,25,0,21,0,66,0\n7,0,14,0,3,0,2,0,55,0,23,0\n26,0,15,0,52,0,29,0,48,0,61,0\n37,0,42,0,46,0,51,0,38,0,44,0\n28,0,6,0,67,0,62,0,43,0,18,0\n27,0,63,0,10,0,31,0,58,0,35,0\n34,0,47,0,20,0,16,0,64,0,33,0\n57,0,54,0,50,0,19,0,15,0,40,0\n51,0,65,0,29,0,49,0,30,0,23,0\n42,0,32,0,9,0,28,0,52,0,25,0\n68,0,21,0,5,0,27,0,67,0,14,0\n7,0,38,0,4,0,16,0,58,0,24,0\n61,0,8,0,36,0,43,0,57,0,41,0\n19,0,35,0,62,0,3,0,12,0,34,0\n55,0,22,0,1,0,26,0,13,0,59,0\n44,0,48,0,63,0,20,0,60,0,6,0\n2,0,46,0,64,0,66,0,56,0,31,0\n39,0,11,0,47,0,18,0,10,0,53,0\n33,0,45,0,15,1,37,0,17,0,35,1\n"
  },
  {
    "path": "schedules/68_3.csv",
    "content": "53,0,28,0,45,0,36,0,32,0,66,0\n18,0,13,0,30,0,48,0,52,0,22,0\n35,0,60,0,62,0,10,0,61,0,5,0\n6,0,21,0,64,0,9,0,57,0,38,0\n7,0,39,0,49,0,58,0,55,0,59,0\n19,0,33,0,56,0,8,0,37,0,42,0\n20,0,17,0,3,0,68,0,54,0,34,0\n50,0,47,0,11,0,31,0,46,0,27,0\n44,0,1,0,43,0,29,0,63,0,41,0\n67,0,65,0,4,0,23,0,2,0,51,0\n16,0,40,0,25,0,14,0,24,0,15,0\n26,0,6,0,66,0,12,0,10,0,33,0\n47,0,9,0,30,0,20,0,36,0,59,0\n34,0,28,0,38,0,56,0,63,0,5,0\n48,0,11,0,4,0,49,0,62,0,45,0\n32,0,68,0,61,0,8,0,25,0,44,0\n41,0,58,0,53,0,51,0,52,0,26,0\n24,0,50,0,54,0,43,0,12,0,19,0\n23,0,18,0,60,0,64,0,40,0,42,0\n16,0,67,0,35,0,13,0,7,0,1,0\n15,0,22,0,57,0,31,0,39,0,65,0\n37,0,2,0,29,0,55,0,17,0,46,0\n3,0,27,0,52,0,14,0,21,0,28,0\n49,0,24,0,9,0,53,0,34,0,33,0\n36,0,1,0,51,0,19,0,48,0,64,0\n20,0,45,0,40,0,67,0,43,0,57,0\n25,0,31,0,12,0,35,0,18,0,41,0\n23,0,50,0,38,0,16,0,26,0,37,0\n13,0,2,0,8,0,14,0,66,0,62,0\n27,0,39,0,56,0,68,0,6,0,4,0\n32,0,42,0,10,0,30,0,55,0,21,0\n63,0,61,0,58,0,17,0,47,0,65,0\n22,0,29,0,60,0,7,0,54,0,11,0\n46,0,5,0,59,0,44,0,15,0,3,0\n"
  },
  {
    "path": "schedules/68_4.csv",
    "content": "57,0,44,0,48,0,33,0,10,0,53,0\n6,0,27,0,65,0,56,0,42,0,25,0\n52,0,30,0,20,0,47,0,36,0,8,0\n46,0,4,0,24,0,22,0,9,0,37,0\n26,0,41,0,16,0,45,0,51,0,54,0\n39,0,63,0,29,0,62,0,49,0,66,0\n58,0,61,0,43,0,59,0,19,0,5,0\n35,0,3,0,12,0,55,0,21,0,64,0\n31,0,11,0,60,0,23,0,38,0,14,0\n1,0,50,0,28,0,67,0,2,0,32,0\n15,0,17,0,18,0,40,0,13,0,34,0\n7,0,66,0,9,0,68,0,6,0,54,0\n19,0,27,0,33,0,36,0,3,0,41,0\n31,0,24,0,58,0,10,0,20,0,63,0\n46,0,29,0,56,0,21,0,50,0,51,0\n62,0,37,0,67,0,18,0,38,0,55,0\n52,0,45,0,60,0,40,0,5,0,32,0\n49,0,61,0,28,0,57,0,26,0,7,0\n43,0,13,0,39,0,48,0,22,0,30,0\n65,0,4,0,53,0,16,0,11,0,34,0\n14,0,44,0,25,0,68,0,12,0,8,0\n17,0,35,0,47,0,23,0,42,0,2,0\n64,0,59,0,57,0,1,0,15,0,27,0\n54,1,40,0,36,0,56,1,28,0,43,0\n48,1,45,0,20,0,19,1,29,0,65,0\n14,0,34,0,32,0,33,0,58,0,66,0\n17,0,10,0,50,0,9,0,52,0,16,0\n63,0,41,0,55,0,5,0,42,0,8,0\n6,0,37,0,11,0,1,0,13,0,47,0\n2,0,21,0,7,0,60,0,4,0,44,0\n38,0,26,0,53,0,64,0,39,0,24,0\n23,0,3,0,62,0,61,0,25,0,15,0\n51,0,22,0,18,0,31,0,35,0,68,0\n67,0,49,0,30,0,46,0,12,0,59,0\n9,0,58,0,47,0,28,0,27,0,45,0\n10,0,34,0,2,0,37,0,56,0,26,0\n25,0,55,0,29,0,24,0,32,0,43,0\n5,0,64,0,31,0,48,0,4,0,36,0\n53,0,61,0,21,0,63,0,18,0,52,0\n54,0,8,0,59,0,60,0,13,0,62,0\n66,0,57,0,19,0,40,0,11,0,46,0\n38,0,42,0,68,0,50,0,15,0,30,0\n1,0,49,0,14,0,51,0,65,0,3,0\n67,0,6,0,23,0,44,0,41,0,22,0\n7,0,33,0,20,0,16,0,35,0,39,0\n12,0,56,0,48,0,17,0,54,0,19,0\n"
  },
  {
    "path": "schedules/68_5.csv",
    "content": "37,0,51,0,2,0,1,0,53,0,52,0\n3,0,26,0,4,0,8,0,49,0,18,0\n16,0,22,0,17,0,61,0,24,0,43,0\n19,0,46,0,23,0,57,0,40,0,9,0\n32,0,38,0,28,0,64,0,65,0,44,0\n31,0,15,0,25,0,35,0,42,0,20,0\n7,0,59,0,34,0,54,0,6,0,29,0\n39,0,68,0,55,0,12,0,13,0,5,0\n45,0,48,0,14,0,41,0,62,0,66,0\n11,0,56,0,10,0,27,0,30,0,50,0\n60,0,33,0,63,0,36,0,58,0,21,0\n47,0,57,0,8,0,67,0,31,0,51,0\n23,0,59,0,37,0,13,0,32,0,22,0\n55,0,17,0,52,0,7,0,42,0,38,0\n6,0,48,0,25,0,19,0,11,0,2,0\n53,0,12,0,14,0,28,0,16,0,56,0\n43,0,46,0,47,0,39,0,33,0,41,0\n54,0,1,0,21,0,27,0,64,0,18,0\n62,0,10,0,15,0,26,0,65,0,61,0\n4,0,35,0,24,0,30,0,63,0,34,0\n60,0,29,0,5,0,49,0,40,0,67,0\n20,0,44,0,68,0,36,0,9,0,66,0\n3,0,50,0,51,0,58,0,45,0,39,0\n14,1,52,0,18,0,32,1,61,0,57,0\n55,0,26,0,30,0,23,0,2,0,21,0\n42,0,13,0,67,0,62,0,11,0,33,0\n38,0,9,0,34,0,53,0,41,0,31,0\n6,0,64,0,66,0,37,0,15,0,49,0\n58,0,4,0,20,0,10,0,19,0,12,0\n35,0,65,0,50,0,54,0,60,0,17,0\n3,0,7,0,40,0,28,0,68,0,22,0\n59,0,45,0,47,0,5,0,16,0,63,0\n27,0,24,0,29,0,46,0,36,0,25,0\n1,0,56,0,44,0,43,0,48,0,8,0\n65,0,2,0,67,0,20,0,14,0,39,0\n68,0,54,0,15,0,11,0,4,0,57,0\n31,0,33,0,22,0,30,0,64,0,19,0\n63,0,41,0,17,0,25,0,32,0,3,0\n40,0,37,0,35,0,38,0,10,0,47,0\n13,0,60,0,46,0,48,0,26,0,7,0\n16,0,1,0,36,0,55,0,62,0,50,0\n12,0,18,0,43,0,51,0,29,0,42,0\n9,0,56,0,52,0,24,0,59,0,21,0\n53,0,61,0,5,0,6,0,58,0,44,0\n27,0,28,0,8,0,66,0,23,0,34,0\n49,0,1,0,32,0,45,0,10,0,33,0\n14,0,36,0,43,0,3,0,37,0,31,0\n20,0,51,0,62,0,46,0,30,0,59,0\n6,0,41,0,68,0,18,0,56,0,67,0\n25,0,61,0,28,0,13,0,50,0,4,0\n22,0,8,0,15,0,45,0,60,0,53,0\n7,0,12,0,27,0,63,0,9,0,65,0\n21,0,66,0,19,0,17,0,29,0,47,0\n24,0,57,0,64,0,2,0,42,0,5,0\n16,0,49,0,48,0,38,0,23,0,54,0\n39,0,34,0,26,0,44,0,40,0,52,0\n11,0,58,0,14,0,35,0,55,0,32,0\n"
  },
  {
    "path": "schedules/68_6.csv",
    "content": "62,0,57,0,41,0,9,0,68,0,36,0\n12,0,54,0,20,0,67,0,14,0,2,0\n32,0,64,0,15,0,23,0,52,0,42,0\n17,0,51,0,21,0,48,0,45,0,24,0\n59,0,7,0,26,0,55,0,5,0,25,0\n44,0,27,0,4,0,29,0,1,0,34,0\n60,0,50,0,66,0,61,0,28,0,39,0\n35,0,65,0,53,0,37,0,6,0,18,0\n8,0,56,0,16,0,49,0,13,0,43,0\n40,0,47,0,31,0,58,0,22,0,19,0\n46,0,63,0,38,0,33,0,10,0,11,0\n3,0,28,0,27,0,30,0,7,0,42,0\n9,0,61,0,34,0,59,0,15,0,20,0\n49,0,2,0,65,0,36,0,51,0,23,0\n58,0,35,0,68,0,32,0,56,0,66,0\n37,0,14,0,45,0,50,0,13,0,4,0\n24,0,30,0,11,0,53,0,31,0,43,0\n16,0,25,0,3,0,39,0,62,0,29,0\n1,0,47,0,48,0,26,0,38,0,18,0\n21,0,6,0,10,0,60,0,8,0,40,0\n67,0,64,0,63,0,19,0,5,0,44,0\n22,0,41,0,46,0,17,0,52,0,54,0\n12,0,33,0,24,0,55,0,57,0,35,0\n50,0,30,0,59,0,36,0,38,0,20,0\n58,0,9,0,6,0,49,0,3,0,26,0\n45,0,34,0,18,0,2,0,40,0,63,0\n65,0,13,0,68,0,31,0,25,0,1,0\n43,0,39,0,42,0,12,0,4,0,19,0\n7,0,32,0,22,0,53,0,10,0,48,0\n28,0,37,0,29,0,23,0,11,0,17,0\n21,0,56,0,33,0,41,0,44,0,61,0\n16,0,5,0,14,0,27,0,52,0,60,0\n57,0,46,0,67,0,15,0,51,0,8,0\n66,0,55,0,47,0,64,0,54,0,62,0\n9,0,45,0,19,0,23,0,35,0,30,0\n26,0,44,0,22,0,65,0,24,0,42,0\n43,0,34,0,38,0,32,0,6,0,14,0\n40,0,25,0,36,0,53,0,17,0,33,0\n54,0,61,0,68,0,16,0,48,0,63,0\n12,0,60,0,7,0,46,0,13,0,62,0\n29,0,31,0,8,0,64,0,50,0,18,0\n37,0,15,0,27,0,55,0,49,0,21,0\n1,0,5,0,28,0,41,0,58,0,2,0\n11,0,4,0,52,0,57,0,20,0,3,0\n67,0,56,0,10,0,59,0,47,0,39,0\n66,0,13,0,19,0,51,0,6,0,33,0\n29,0,35,0,26,0,46,0,14,0,40,0\n50,0,65,0,17,0,12,0,16,0,9,0\n52,0,18,0,49,0,62,0,30,0,44,0\n3,0,43,0,5,0,10,0,68,0,15,0\n42,0,51,0,60,0,54,0,1,0,53,0\n38,0,31,0,57,0,7,0,56,0,45,0\n36,0,61,0,58,0,67,0,55,0,4,0\n11,0,59,0,2,0,22,0,27,0,64,0\n24,0,32,0,25,0,28,0,20,0,47,0\n41,0,8,0,48,0,34,0,37,0,39,0\n23,0,21,0,14,0,63,0,66,0,3,0\n60,0,43,0,67,0,33,0,29,0,65,0\n10,0,35,0,62,0,31,0,27,0,61,0\n18,0,19,0,16,0,36,0,11,0,32,0\n20,0,5,0,46,0,49,0,48,0,42,0\n2,0,30,0,4,0,66,0,8,0,17,0\n47,0,52,0,53,0,34,0,68,0,21,0\n7,0,1,0,24,0,63,0,37,0,9,0\n51,0,55,0,39,0,44,0,38,0,40,0\n23,0,54,0,59,0,13,0,57,0,58,0\n56,0,15,0,6,0,50,0,22,0,25,0\n64,0,12,0,26,0,45,0,41,0,28,0\n"
  },
  {
    "path": "schedules/68_7.csv",
    "content": "60,0,67,0,22,0,4,0,61,0,19,0\n49,0,65,0,68,0,20,0,32,0,24,0\n46,0,15,0,47,0,21,0,27,0,41,0\n5,0,3,0,55,0,57,0,56,0,12,0\n28,0,37,0,29,0,50,0,35,0,10,0\n16,0,2,0,14,0,58,0,64,0,54,0\n44,0,9,0,43,0,31,0,18,0,62,0\n26,0,8,0,38,0,59,0,23,0,51,0\n63,0,33,0,6,0,7,0,25,0,1,0\n52,0,53,0,36,0,48,0,30,0,34,0\n39,0,17,0,13,0,40,0,66,0,45,0\n11,0,35,0,5,0,42,0,19,0,16,0\n10,0,65,0,58,0,9,0,8,0,57,0\n20,0,3,0,26,0,43,0,25,0,50,0\n36,0,6,0,18,0,22,0,59,0,27,0\n40,0,52,0,47,0,37,0,64,0,4,0\n48,0,23,0,39,0,44,0,41,0,32,0\n15,0,68,0,54,0,45,0,28,0,60,0\n51,0,55,0,34,0,7,0,11,0,24,0\n12,0,2,0,62,0,66,0,67,0,1,0\n63,0,14,0,38,0,42,0,29,0,56,0\n17,0,21,0,31,0,30,0,61,0,49,0\n33,0,46,0,19,0,13,0,53,0,20,0\n27,1,16,0,23,0,3,1,28,0,7,0\n51,1,57,0,41,0,9,1,60,0,2,0\n52,0,10,0,38,0,25,0,18,0,32,0\n30,0,66,0,42,0,65,0,56,0,43,0\n37,0,14,0,44,0,45,0,5,0,21,0\n62,0,49,0,63,0,47,0,34,0,26,0\n61,0,64,0,35,0,39,0,59,0,12,0\n8,0,4,0,29,0,6,0,24,0,53,0\n58,0,1,0,11,0,36,0,15,0,13,0\n17,0,46,0,54,0,22,0,48,0,50,0\n31,0,40,0,55,0,68,0,33,0,67,0\n60,0,21,0,43,0,39,0,63,0,52,0\n27,0,6,0,44,0,2,0,34,0,56,0\n41,0,7,0,35,0,20,0,66,0,36,0\n45,0,42,0,50,0,12,0,18,0,49,0\n57,0,59,0,10,0,68,0,16,0,17,0\n38,0,9,0,28,0,46,0,1,0,55,0\n5,0,30,0,26,0,15,0,4,0,33,0\n64,0,65,0,51,0,62,0,19,0,48,0\n47,0,25,0,14,0,11,0,53,0,22,0\n61,0,29,0,58,0,23,0,3,0,40,0\n8,0,13,0,32,0,54,0,31,0,37,0\n24,0,57,0,63,0,67,0,35,0,38,0\n4,0,20,0,1,0,42,0,59,0,44,0\n53,0,27,0,28,0,17,0,64,0,26,0\n66,0,68,0,50,0,11,0,23,0,9,0\n7,0,29,0,2,0,31,0,52,0,65,0\n40,0,24,0,12,0,16,0,15,0,22,0\n43,0,54,0,19,0,41,0,49,0,10,0\n3,0,34,0,33,0,18,0,39,0,14,0\n30,0,62,0,60,0,58,0,37,0,6,0\n45,0,48,0,55,0,61,0,47,0,8,0\n67,0,25,0,13,0,51,0,21,0,56,0\n32,0,36,0,49,0,5,0,46,0,64,0\n33,0,66,0,22,0,57,0,29,0,44,0\n37,0,11,0,20,0,2,0,38,0,39,0\n62,0,27,0,68,0,14,0,4,0,35,0\n48,0,26,0,12,0,13,0,9,0,6,0\n19,0,1,0,50,0,40,0,32,0,30,0\n60,0,42,0,47,0,10,0,3,0,36,0\n21,0,23,0,18,0,54,0,55,0,65,0\n67,0,17,0,7,0,8,0,15,0,43,0\n16,0,41,0,53,0,51,0,61,0,63,0\n31,0,28,0,58,0,5,0,25,0,34,0\n24,0,56,0,59,0,45,0,52,0,46,0\n48,0,64,0,3,0,21,0,68,0,1,0\n2,0,32,0,35,0,17,0,33,0,9,0\n43,0,6,0,51,0,40,0,14,0,36,0\n44,0,49,0,25,0,8,0,60,0,16,0\n15,0,20,0,56,0,10,0,62,0,53,0\n54,0,39,0,30,0,27,0,57,0,7,0\n58,0,22,0,52,0,26,0,55,0,41,0\n13,0,50,0,18,0,5,0,61,0,24,0\n34,0,42,0,46,0,23,0,67,0,37,0\n66,0,38,0,59,0,19,0,47,0,31,0\n11,0,65,0,4,0,12,0,28,0,63,0\n45,0,27,0,9,0,29,0,3,0,51,0\n"
  },
  {
    "path": "schedules/68_8.csv",
    "content": "22,0,23,0,7,0,57,0,43,0,2,0\n3,0,24,0,1,0,51,0,36,0,45,0\n39,0,44,0,6,0,47,0,54,0,14,0\n30,0,66,0,59,0,33,0,62,0,60,0\n15,0,38,0,16,0,52,0,40,0,46,0\n31,0,64,0,4,0,28,0,11,0,41,0\n19,0,29,0,20,0,58,0,63,0,8,0\n12,0,5,0,67,0,53,0,48,0,21,0\n68,0,35,0,26,0,10,0,17,0,13,0\n37,0,9,0,27,0,34,0,42,0,61,0\n55,0,25,0,49,0,56,0,65,0,50,0\n32,0,23,0,58,0,18,0,6,0,40,0\n67,0,57,0,11,0,1,0,33,0,36,0\n45,0,30,0,17,0,38,0,39,0,22,0\n60,0,28,0,12,0,2,0,19,0,42,0\n51,0,65,0,47,0,61,0,35,0,52,0\n27,0,32,0,44,0,68,0,24,0,20,0\n50,0,62,0,31,0,34,0,43,0,21,0\n49,0,59,0,8,0,4,0,10,0,7,0\n29,0,54,0,56,0,9,0,18,0,26,0\n66,0,3,0,53,0,37,0,55,0,14,0\n15,0,48,0,63,0,16,0,41,0,13,0\n46,0,64,0,32,0,5,0,25,0,30,0\n10,1,2,0,38,0,47,1,31,0,27,0\n61,0,62,0,57,0,58,0,50,0,6,0\n29,0,68,0,43,0,49,0,35,0,53,0\n54,0,16,0,21,0,24,0,11,0,37,0\n41,0,7,0,26,0,34,0,45,0,66,0\n51,0,22,0,12,0,15,0,39,0,56,0\n36,0,60,0,4,0,40,0,20,0,48,0\n46,0,1,0,59,0,23,0,44,0,28,0\n55,0,63,0,9,0,64,0,33,0,14,0\n67,0,17,0,52,0,25,0,8,0,42,0\n18,0,19,0,13,0,3,0,65,0,5,0\n4,0,37,0,68,0,47,0,15,0,50,0\n53,0,41,0,23,0,58,0,27,0,51,0\n35,0,63,0,46,0,60,0,34,0,56,0\n39,0,57,0,48,0,52,0,64,0,49,0\n5,0,22,0,42,0,6,0,20,0,33,0\n16,0,36,0,19,0,32,0,26,0,55,0\n40,0,7,0,17,0,31,0,29,0,65,0\n59,0,24,0,14,0,25,0,12,0,18,0\n21,0,66,0,38,0,10,0,1,0,61,0\n13,0,45,0,2,0,8,0,9,0,44,0\n28,0,30,0,54,0,3,0,67,0,43,0\n11,0,42,0,35,0,62,0,32,0,48,0\n52,0,50,0,36,0,23,0,14,0,29,0\n41,0,21,0,47,0,25,0,22,0,19,0\n9,0,20,0,2,0,17,0,1,0,49,0\n65,0,34,0,53,0,38,0,54,0,59,0\n30,0,8,0,6,0,56,0,11,0,27,0\n28,0,18,0,68,0,66,0,16,0,51,0\n3,0,10,0,15,0,60,0,7,0,57,0\n61,0,55,0,33,0,46,0,31,0,45,0\n64,0,13,0,37,0,43,0,12,0,58,0\n26,0,67,0,44,0,4,0,63,0,62,0\n5,0,39,0,34,0,24,0,40,0,8,0\n47,0,16,0,42,0,23,0,59,0,3,0\n33,0,50,0,27,0,7,0,35,0,19,0\n15,0,18,0,43,0,61,0,36,0,17,0\n54,0,31,0,49,0,13,0,66,0,32,0\n4,0,51,0,25,0,38,0,29,0,37,0\n11,0,26,0,20,0,39,0,53,0,46,0\n6,0,60,0,65,0,67,0,9,0,41,0\n1,0,5,0,55,0,68,0,62,0,12,0\n56,0,2,0,48,0,45,0,14,0,58,0\n21,0,44,0,40,0,64,0,57,0,30,0\n24,0,28,0,10,0,22,0,52,0,63,0\n16,0,43,0,27,0,66,0,65,0,4,0\n29,0,15,0,34,0,67,0,32,0,6,0\n31,0,14,0,26,0,60,0,5,0,51,0\n59,0,11,0,19,0,40,0,68,0,61,0\n33,0,38,0,44,0,49,0,41,0,12,0\n57,0,24,0,13,0,17,0,47,0,53,0\n52,0,20,0,23,0,37,0,62,0,56,0\n55,0,42,0,58,0,39,0,21,0,7,0\n1,0,18,0,22,0,64,0,35,0,8,0\n50,0,10,0,46,0,48,0,9,0,3,0\n36,0,63,0,30,0,54,0,25,0,2,0\n45,0,53,0,62,0,28,0,19,0,15,0\n5,0,56,0,66,0,44,0,11,0,17,0\n22,0,47,0,60,0,55,0,27,0,29,0\n14,0,8,0,68,0,46,0,57,0,65,0\n10,0,31,0,37,0,39,0,18,0,67,0\n43,0,32,0,51,0,45,0,59,0,63,0\n49,0,61,0,48,0,26,0,24,0,23,0\n35,0,25,0,58,0,28,0,9,0,16,0\n41,0,40,0,50,0,42,0,54,0,1,0\n36,0,6,0,64,0,38,0,13,0,7,0\n33,0,3,0,52,0,4,0,2,0,21,0\n34,0,12,0,47,0,20,0,30,0,10,0\n"
  },
  {
    "path": "schedules/68_9.csv",
    "content": "10,0,18,0,68,0,49,0,40,0,62,0\n21,0,3,0,35,0,53,0,66,0,26,0\n65,0,38,0,7,0,54,0,37,0,60,0\n9,0,41,0,11,0,12,0,51,0,17,0\n13,0,36,0,16,0,45,0,5,0,42,0\n6,0,1,0,34,0,52,0,43,0,59,0\n25,0,29,0,63,0,14,0,61,0,33,0\n47,0,4,0,28,0,23,0,19,0,30,0\n56,0,48,0,46,0,22,0,55,0,31,0\n58,0,20,0,27,0,15,0,8,0,64,0\n32,0,24,0,57,0,39,0,44,0,50,0\n2,0,18,0,54,0,67,0,6,0,35,0\n1,0,40,0,59,0,47,0,9,0,45,0\n65,0,52,0,55,0,26,0,29,0,19,0\n56,0,60,0,61,0,30,0,10,0,46,0\n44,0,66,0,38,0,17,0,34,0,68,0\n14,0,4,0,8,0,43,0,62,0,7,0\n37,0,41,0,3,0,36,0,28,0,33,0\n13,0,5,0,22,0,49,0,25,0,24,0\n15,0,51,0,16,0,48,0,64,0,57,0\n21,0,39,0,63,0,2,0,12,0,20,0\n58,0,23,0,11,0,32,0,50,0,53,0\n67,0,31,0,44,0,42,0,27,0,60,0\n45,0,30,0,17,0,52,0,62,0,37,0\n59,0,68,0,19,0,14,0,35,0,22,0\n13,0,20,0,40,0,29,0,66,0,33,0\n9,0,36,0,58,0,2,0,25,0,10,0\n7,0,39,0,55,0,11,0,64,0,5,0\n8,0,56,0,34,0,12,0,6,0,28,0\n50,0,41,0,42,0,4,0,61,0,15,0\n31,0,43,0,48,0,32,0,63,0,54,0\n67,0,16,0,21,0,47,0,38,0,3,0\n51,0,26,0,65,0,23,0,24,0,18,0\n53,0,46,0,1,0,27,0,49,0,57,0\n55,0,8,0,60,0,2,0,9,0,68,0\n42,0,11,0,13,0,28,0,14,0,48,0\n30,0,5,0,43,0,67,0,66,0,58,0\n50,0,65,0,25,0,39,0,47,0,35,0\n40,0,34,0,38,0,22,0,36,0,51,0\n24,0,1,0,62,0,63,0,46,0,3,0\n33,0,49,0,15,0,52,0,31,0,19,0\n4,0,20,0,64,0,6,0,10,0,26,0\n45,0,44,0,53,0,29,0,54,0,12,0\n17,0,21,0,23,0,61,0,27,0,7,0\n59,0,18,0,16,0,56,0,32,0,41,0\n37,0,5,0,40,0,57,0,52,0,63,0\n4,0,22,0,60,0,1,0,58,0,51,0\n68,0,54,0,15,0,3,0,30,0,11,0\n42,0,49,0,9,0,39,0,66,0,6,0\n47,0,62,0,48,0,20,0,41,0,34,0\n12,0,61,0,57,0,13,0,7,0,19,0\n33,0,55,0,10,0,67,0,24,0,50,0\n43,0,46,0,38,0,23,0,45,0,25,0\n36,0,8,0,29,0,32,0,18,0,21,0\n17,0,28,0,31,0,64,0,16,0,35,0\n2,0,14,0,56,0,27,0,37,0,26,0\n59,0,53,0,10,0,44,0,65,0,33,0\n50,0,6,0,45,0,48,0,3,0,68,0\n19,0,8,0,42,0,54,0,1,0,25,0\n20,0,67,0,28,0,7,0,32,0,46,0\n57,0,60,0,29,0,34,0,62,0,23,0\n53,0,43,0,2,0,61,0,40,0,16,0\n27,0,30,0,39,0,59,0,51,0,13,0\n55,0,58,0,35,0,12,0,49,0,38,0\n37,0,22,0,64,0,44,0,18,0,9,0\n41,0,24,0,52,0,21,0,14,0,66,0\n56,0,15,0,17,0,65,0,4,0,5,0\n26,0,36,0,47,0,63,0,31,0,11,0\n7,0,49,0,2,0,59,0,30,0,48,0\n3,0,44,0,23,0,25,0,40,0,55,0\n27,0,50,0,12,0,18,0,52,0,22,0\n51,0,68,0,5,0,29,0,28,0,53,0\n64,0,32,0,66,0,1,0,61,0,38,0\n11,0,46,0,33,0,34,0,21,0,4,0\n31,0,62,0,65,0,13,0,9,0,67,0\n60,0,17,0,24,0,19,0,43,0,36,0\n63,0,37,0,6,0,41,0,16,0,58,0\n42,0,57,0,20,0,56,0,35,0,45,0\n47,0,54,0,10,0,14,0,15,0,39,0\n26,0,48,0,33,0,8,0,5,0,38,0\n2,0,66,0,19,0,50,0,62,0,51,0\n24,0,29,0,27,0,16,0,4,0,9,0\n18,0,30,0,64,0,42,0,53,0,63,0\n54,0,61,0,55,0,36,0,59,0,20,0\n28,0,45,0,43,0,65,0,21,0,49,0\n6,0,47,0,58,0,17,0,46,0,13,0\n52,0,39,0,67,0,23,0,68,0,56,0\n22,0,10,0,11,0,8,0,57,0,3,0\n35,0,44,0,7,0,1,0,41,0,15,0\n14,0,32,0,26,0,40,0,12,0,60,0\n34,0,25,0,59,0,31,0,37,0,24,0\n52,0,48,0,36,0,4,0,53,0,67,0\n29,0,62,0,38,0,27,0,11,0,56,0\n51,0,61,0,49,0,47,0,8,0,44,0\n39,0,45,0,3,0,7,0,58,0,18,0\n31,0,30,0,21,0,55,0,6,0,57,0\n15,0,66,0,63,0,25,0,60,0,28,0\n32,0,2,0,22,0,42,0,17,0,33,0\n14,0,23,0,65,0,1,0,16,0,20,0\n12,0,13,0,35,0,37,0,43,0,10,0\n54,0,9,0,50,0,5,0,26,0,34,0\n46,0,41,0,19,0,64,0,68,0,40,0\n"
  },
  {
    "path": "schedules/69_1.csv",
    "content": "14,0,7,0,30,0,17,0,24,0,47,0\n67,0,57,0,27,0,34,0,20,0,54,0\n4,0,49,0,6,0,33,0,21,0,48,0\n18,0,53,0,25,0,35,0,40,0,58,0\n69,0,19,0,51,0,1,0,8,0,39,0\n56,0,52,0,32,0,62,0,16,0,31,0\n66,0,63,0,28,0,43,0,37,0,9,0\n15,0,42,0,29,0,64,0,11,0,3,0\n26,0,13,0,5,0,2,0,38,0,59,0\n50,0,22,0,44,0,45,0,23,0,41,0\n12,0,36,0,61,0,68,0,55,0,60,0\n46,0,65,0,62,1,10,0,18,1,31,1\n"
  },
  {
    "path": "schedules/69_10.csv",
    "content": "38,0,62,0,59,0,60,0,4,0,18,0\n15,0,46,0,10,0,51,0,45,0,65,0\n43,0,54,0,33,0,49,0,39,0,21,0\n67,0,47,0,28,0,8,0,40,0,16,0\n68,0,3,0,22,0,37,0,42,0,26,0\n1,0,52,0,32,0,2,0,7,0,25,0\n44,0,27,0,19,0,14,0,36,0,48,0\n53,0,63,0,11,0,29,0,31,0,23,0\n13,0,50,0,66,0,9,0,61,0,5,0\n64,0,55,0,6,0,56,0,12,0,57,0\n35,0,24,0,41,0,20,0,34,0,30,0\n69,0,17,0,33,0,58,0,40,0,38,0\n14,0,42,0,8,0,43,0,25,0,11,0\n9,0,2,0,47,0,37,0,65,0,48,0\n56,0,1,0,39,0,26,0,51,0,63,0\n3,0,7,0,16,0,18,0,68,0,64,0\n30,0,55,0,62,0,15,0,5,0,53,0\n45,0,69,0,59,0,28,0,50,0,31,0\n44,0,17,0,29,0,66,0,4,0,20,0\n58,0,21,0,10,0,41,0,27,0,22,0\n36,0,57,0,13,0,52,0,67,0,34,0\n61,0,12,0,54,0,60,0,19,0,35,0\n32,0,24,0,23,0,46,0,6,0,49,0\n3,0,30,0,45,0,14,0,39,0,66,0\n16,0,51,0,58,0,31,0,55,0,42,0\n41,0,62,0,48,0,10,0,43,0,63,0\n7,0,17,0,53,0,47,0,54,0,27,0\n36,0,21,0,23,0,40,0,61,0,18,0\n50,0,37,0,29,0,24,0,46,0,33,0\n34,0,35,0,44,0,19,0,56,0,8,0\n13,0,25,0,28,0,12,0,22,0,15,0\n5,0,11,0,68,0,59,0,32,0,65,0\n9,0,6,0,60,0,26,0,1,0,67,0\n69,0,64,0,49,0,2,0,52,0,4,0\n57,0,20,0,46,0,38,0,54,0,42,0\n62,0,7,0,56,0,13,0,3,0,23,0\n55,0,40,0,15,0,61,0,50,0,27,0\n44,0,66,0,11,0,6,0,51,0,25,0\n58,0,52,0,29,0,59,0,9,0,19,0\n34,0,60,0,24,0,10,0,2,0,17,0\n48,0,53,0,64,0,1,0,8,0,22,0\n67,0,21,0,68,0,45,0,20,0,12,0\n26,0,41,0,47,0,33,0,14,0,4,0\n16,0,32,0,43,0,69,0,37,0,57,0\n39,0,31,0,30,0,65,0,18,0,49,0\n38,0,36,0,63,0,5,0,35,0,28,0\n67,0,66,0,19,0,64,0,50,0,10,0\n51,0,42,0,21,0,29,0,62,0,2,0\n61,0,17,0,43,0,52,0,45,0,68,0\n56,0,22,0,26,0,59,0,24,0,16,0\n5,0,34,0,12,0,39,0,69,0,23,0\n20,0,28,0,9,0,25,0,14,0,53,0\n35,0,15,0,49,0,57,0,47,0,1,0\n11,0,6,0,38,0,30,0,13,0,63,0\n65,0,46,0,36,0,58,0,4,0,8,0\n40,0,44,0,32,0,54,0,41,0,3,0\n7,0,37,0,31,0,55,0,48,0,60,0\n18,0,27,0,20,0,33,0,1,0,45,0\n6,0,59,0,22,0,62,0,35,0,69,0\n4,0,16,0,10,0,25,0,39,0,5,0\n47,0,34,0,64,0,58,0,11,0,54,0\n12,0,50,0,26,0,36,0,7,0,42,0\n65,0,3,0,28,0,24,0,29,0,19,0\n57,0,51,0,18,0,48,0,40,0,17,0\n2,0,43,0,41,0,38,0,66,0,55,0\n14,0,13,0,46,0,68,0,63,0,60,0\n8,0,31,0,32,0,15,0,21,0,9,0\n53,0,37,0,49,0,61,0,67,0,44,0\n27,0,30,0,33,0,23,0,56,0,52,0\n55,0,22,0,65,0,17,0,18,0,34,0\n54,0,50,0,20,0,11,0,16,0,62,0\n3,0,25,0,60,0,58,0,57,0,43,0\n44,0,15,0,42,0,64,0,39,0,59,0\n9,0,49,0,63,0,51,0,68,0,27,0\n46,0,56,0,69,0,10,0,41,0,7,0\n30,0,67,0,23,0,32,0,48,0,28,0\n1,0,19,0,4,0,37,0,13,0,21,0\n14,0,24,0,31,0,12,0,52,0,38,0\n8,0,61,0,33,0,2,0,6,0,5,0\n45,0,26,0,66,0,53,0,35,0,40,0\n29,0,36,0,60,0,47,0,22,0,32,0\n17,0,21,0,1,0,44,0,50,0,30,0\n67,0,58,0,63,0,15,0,4,0,24,0\n52,0,18,0,10,0,28,0,42,0,6,0\n48,0,12,0,66,0,34,0,16,0,46,0\n35,0,33,0,39,0,9,0,55,0,11,0\n19,0,57,0,45,0,62,0,26,0,8,0\n65,0,27,0,64,0,20,0,43,0,13,0\n53,0,31,0,2,0,56,0,68,0,36,0\n54,0,59,0,51,0,41,0,37,0,23,0\n5,0,49,0,40,0,29,0,14,0,7,0\n47,0,61,0,25,0,38,0,3,0,69,0\n66,0,60,0,16,0,33,0,65,0,21,0\n27,0,11,0,2,0,46,0,22,0,67,0\n50,0,4,0,43,0,53,0,34,0,6,0\n52,0,40,0,20,0,37,0,15,0,63,0\n12,0,8,0,59,0,49,0,3,0,17,0\n68,0,48,0,1,0,24,0,69,0,54,0\n5,0,47,0,19,0,31,0,18,0,41,0\n38,0,23,0,26,0,10,0,55,0,44,0\n58,0,14,0,35,0,13,0,32,0,51,0\n57,0,28,0,62,0,7,0,39,0,61,0\n45,0,42,0,64,0,30,0,36,0,9,0\n25,0,54,0,18,0,56,0,29,0,67,0\n52,0,48,0,5,0,3,0,26,0,21,0\n40,0,59,0,11,0,12,0,10,0,1,0\n2,0,65,0,57,0,50,0,23,0,14,0\n19,0,69,0,51,0,60,0,53,0,20,0\n9,0,22,0,4,0,43,0,30,0,7,0\n61,0,42,0,34,0,33,0,32,0,63,0\n58,0,37,0,56,0,28,0,49,0,66,0\n41,0,6,0,36,0,17,0,16,0,15,0\n55,0,24,0,13,0,44,0,47,0,45,0\n31,0,35,0,25,0,46,0,62,0,64,0\n68,0,39,0,8,0,38,0,29,0,27,0\n"
  },
  {
    "path": "schedules/69_11.csv",
    "content": "18,0,60,0,22,0,65,0,48,0,52,0\n27,0,50,0,57,0,64,0,29,0,4,0\n40,0,20,0,67,0,6,0,10,0,2,0\n28,0,45,0,30,0,36,0,62,0,11,0\n51,0,32,0,63,0,56,0,34,0,35,0\n55,0,41,0,33,0,31,0,23,0,47,0\n5,0,24,0,69,0,53,0,14,0,12,0\n37,0,49,0,8,0,13,0,7,0,43,0\n66,0,42,0,25,0,59,0,54,0,19,0\n26,0,3,0,38,0,16,0,61,0,1,0\n68,0,44,0,9,0,58,0,21,0,17,0\n46,0,15,0,24,0,39,0,11,0,23,0\n31,0,60,0,4,0,67,0,45,0,56,0\n66,0,29,0,65,0,34,0,28,0,5,0\n6,0,16,0,52,0,33,0,59,0,2,0\n8,0,41,0,57,0,35,0,44,0,38,0\n64,0,1,0,69,0,20,0,18,0,15,0\n36,0,27,0,40,0,49,0,19,0,58,0\n51,0,62,0,10,0,17,0,68,0,43,0\n61,0,25,0,21,0,14,0,37,0,39,0\n13,0,3,0,50,0,12,0,9,0,63,0\n46,0,22,0,47,0,42,0,30,0,26,0\n54,0,32,0,7,0,48,0,55,0,53,0\n64,1,18,0,49,0,62,1,59,0,45,0\n27,1,37,0,60,0,28,0,15,0,68,0\n61,0,20,0,23,0,9,0,8,0,36,0\n19,0,2,0,21,0,38,0,50,0,69,0\n11,0,7,0,44,0,52,0,67,0,47,0\n32,0,39,0,12,0,33,0,42,0,22,0\n46,0,17,0,65,0,41,0,6,0,13,0\n10,0,63,0,4,0,30,0,14,0,48,0\n56,0,29,0,5,0,43,0,16,0,55,0\n53,0,35,0,26,0,25,0,40,0,31,0\n58,0,66,0,57,0,3,0,51,0,1,0\n54,0,34,0,67,0,24,0,17,0,27,0\n30,0,6,0,19,0,13,0,61,0,18,0\n12,0,16,0,49,0,41,0,44,0,46,0\n11,0,53,0,65,0,35,0,43,0,42,0\n62,0,56,0,22,0,69,0,60,0,57,0\n31,0,9,0,24,0,25,0,4,0,2,0\n47,0,54,0,58,0,50,0,8,0,15,0\n1,0,29,0,33,0,10,0,37,0,36,0\n48,0,23,0,34,0,21,0,59,0,51,0\n52,0,14,0,28,0,55,0,39,0,3,0\n45,0,20,0,26,0,38,0,32,0,66,0\n40,0,63,0,68,0,7,0,5,0,64,0\n6,0,1,0,43,0,47,0,19,0,12,0\n67,0,61,0,59,0,29,0,53,0,58,0\n23,0,35,0,17,0,4,0,3,0,18,0\n50,0,30,0,20,0,52,0,49,0,55,0\n11,0,64,0,2,0,66,0,14,0,51,0\n15,0,34,0,13,0,26,0,33,0,44,0\n48,0,38,0,5,0,37,0,9,0,62,0\n27,0,45,0,42,0,16,0,10,0,41,0\n69,0,25,0,36,0,46,0,68,0,32,0\n8,0,39,0,54,0,65,0,57,0,40,0\n22,0,21,0,24,0,28,0,63,0,31,0\n60,0,56,0,12,0,7,0,23,0,58,0\n53,0,41,0,61,0,34,0,4,0,1,0\n35,0,46,0,52,0,66,0,62,0,27,0\n14,0,42,0,38,0,68,0,50,0,6,0\n48,0,63,0,47,0,36,0,45,0,57,0\n22,0,20,0,7,0,29,0,25,0,3,0\n19,0,64,0,44,0,60,0,24,0,39,0\n51,0,69,0,67,0,33,0,13,0,40,0\n15,0,9,0,21,0,65,0,30,0,16,0\n32,0,18,0,2,0,43,0,8,0,28,0\n10,0,11,0,49,0,5,0,54,0,31,0\n59,0,17,0,26,0,55,0,56,0,37,0\n27,0,38,0,7,0,69,0,39,0,66,0\n1,0,15,0,40,0,9,0,34,0,45,0\n25,0,43,0,51,0,41,0,60,0,50,0\n4,0,5,0,33,0,20,0,46,0,21,0\n13,0,58,0,52,0,35,0,29,0,48,0\n30,0,63,0,55,0,67,0,42,0,37,0\n47,0,68,0,49,0,2,0,61,0,56,0\n18,0,8,0,10,0,26,0,24,0,12,0\n19,0,17,0,36,0,53,0,16,0,22,0\n6,0,57,0,3,0,31,0,11,0,32,0\n14,0,62,0,23,0,44,0,54,0,65,0\n64,0,59,0,47,0,28,0,35,0,69,0\n56,0,66,0,41,0,40,0,21,0,18,0\n12,0,29,0,17,0,39,0,2,0,30,0\n27,0,55,0,9,0,6,0,22,0,11,0\n16,0,48,0,62,0,31,0,8,0,20,0\n36,0,59,0,42,0,5,0,15,0,60,0\n45,0,37,0,68,0,19,0,24,0,3,0\n65,0,58,0,64,0,33,0,53,0,38,0\n14,0,57,0,67,0,49,0,43,0,34,0\n32,0,44,0,61,0,46,0,63,0,50,0\n52,0,26,0,7,0,4,0,51,0,54,0\n13,0,23,0,28,0,25,0,10,0,1,0\n59,0,24,0,56,0,36,0,65,0,3,0\n31,0,33,0,43,0,17,0,66,0,30,0\n16,0,68,0,20,0,11,0,12,0,34,0\n4,0,7,0,15,0,19,0,62,0,32,0\n48,0,69,0,42,0,23,0,29,0,26,0\n27,0,13,0,51,0,45,0,47,0,14,0\n21,0,6,0,55,0,64,0,60,0,8,0\n9,0,53,0,46,0,57,0,52,0,10,0\n38,0,22,0,37,0,40,0,44,0,49,0\n58,0,2,0,63,0,18,0,54,0,41,0\n39,0,1,0,35,0,50,0,5,0,67,0\n28,0,25,0,33,0,61,0,48,0,27,0\n42,0,13,0,16,0,57,0,7,0,24,0\n30,0,52,0,23,0,40,0,32,0,64,0\n14,0,54,0,68,0,59,0,29,0,46,0\n3,0,53,0,49,0,47,0,62,0,21,0\n63,0,65,0,60,0,20,0,1,0,2,0\n5,0,9,0,19,0,28,0,41,0,26,0\n36,0,38,0,12,0,67,0,55,0,25,0\n50,0,45,0,11,0,8,0,56,0,17,0\n35,0,66,0,10,0,22,0,61,0,15,0\n69,0,4,0,43,0,44,0,58,0,6,0\n39,0,18,0,31,0,34,0,51,0,37,0\n47,0,60,0,40,0,32,0,24,0,29,0\n30,0,1,0,53,0,27,0,68,0,8,0\n45,0,35,0,3,0,54,0,46,0,2,0\n41,0,67,0,43,0,48,0,22,0,64,0\n6,0,39,0,26,0,62,0,49,0,63,0\n34,0,55,0,65,0,10,0,19,0,69,0\n38,0,4,0,21,0,13,0,59,0,11,0\n58,0,37,0,50,0,66,0,16,0,23,0\n56,0,44,0,51,0,20,0,42,0,28,0\n25,0,15,0,57,0,52,0,17,0,5,0\n18,0,36,0,33,0,14,0,7,0,9,0\n31,0,61,0,62,0,12,0,64,0,27,0\n"
  },
  {
    "path": "schedules/69_12.csv",
    "content": "21,0,33,0,23,0,54,0,64,0,40,0\n10,0,46,0,36,0,65,0,58,0,25,0\n24,0,8,0,63,0,18,0,50,0,30,0\n14,0,19,0,62,0,22,0,1,0,15,0\n51,0,12,0,44,0,66,0,5,0,59,0\n45,0,38,0,47,0,31,0,52,0,69,0\n61,0,35,0,29,0,20,0,16,0,56,0\n37,0,34,0,43,0,55,0,7,0,39,0\n41,0,28,0,26,0,68,0,17,0,9,0\n67,0,60,0,48,0,6,0,53,0,2,0\n57,0,49,0,13,0,27,0,3,0,4,0\n32,0,42,0,38,0,11,0,50,0,15,0\n12,0,10,0,21,0,56,0,14,0,35,0\n24,0,62,0,43,0,36,0,33,0,69,0\n59,0,17,0,64,0,34,0,54,0,58,0\n25,0,3,0,66,0,68,0,40,0,45,0\n44,0,5,0,42,0,57,0,4,0,6,0\n29,0,26,0,23,0,22,0,55,0,67,0\n11,0,37,0,47,0,18,0,28,0,48,0\n27,0,52,0,9,0,61,0,2,0,46,0\n13,0,63,0,16,0,1,0,60,0,7,0\n49,0,53,0,41,0,8,0,51,0,20,0\n39,0,65,0,19,0,31,0,30,0,32,0\n4,0,45,0,12,0,38,0,26,0,17,0\n34,0,66,0,55,0,58,0,24,0,15,0\n46,0,23,0,16,0,14,0,6,0,36,0\n28,0,54,0,51,0,2,0,35,0,13,0\n60,0,37,0,42,0,8,0,33,0,30,0\n57,0,56,0,41,0,48,0,31,0,62,0\n10,0,53,0,59,0,68,0,21,0,47,0\n5,0,61,0,1,0,49,0,25,0,69,0\n32,0,11,0,40,0,20,0,7,0,29,0\n44,0,19,0,18,0,9,0,50,0,67,0\n3,0,39,0,64,0,65,0,52,0,63,0\n27,0,38,0,15,0,43,0,22,0,35,0\n30,0,2,0,10,0,62,0,53,0,26,0\n61,0,33,0,31,0,12,0,7,0,58,0\n11,0,18,0,21,0,4,0,41,0,25,0\n45,0,6,0,24,0,65,0,37,0,9,0\n22,0,34,0,52,0,8,0,28,0,16,0\n5,0,48,0,13,0,40,0,46,0,19,0\n20,0,63,0,54,0,43,0,42,0,47,0\n68,0,67,0,1,0,57,0,39,0,51,0\n44,0,59,0,56,0,14,0,55,0,17,0\n50,0,69,0,64,0,3,0,60,0,29,0\n32,0,36,0,23,0,27,0,49,0,66,0\n7,0,37,0,4,0,54,0,19,0,35,0\n15,0,10,0,43,0,16,0,48,0,45,0\n30,0,22,0,12,0,13,0,41,0,52,0\n31,0,55,0,1,0,53,0,46,0,64,0\n21,0,50,0,63,0,26,0,36,0,34,0\n5,0,17,0,23,0,42,0,61,0,62,0\n39,0,69,0,2,0,40,0,14,0,8,0\n28,0,3,0,6,0,33,0,38,0,20,0\n25,0,57,0,24,0,51,0,59,0,32,0\n65,0,27,0,56,0,11,0,44,0,67,0\n9,0,29,0,58,0,49,0,47,0,60,0\n66,0,68,0,36,0,18,0,61,0,54,0\n48,0,20,0,42,0,21,0,64,0,1,0\n7,0,46,0,24,0,3,0,45,0,41,0\n33,0,22,0,27,0,59,0,63,0,31,0\n4,0,56,0,43,0,2,0,60,0,32,0\n57,0,29,0,65,0,12,0,28,0,34,0\n49,0,40,0,51,0,62,0,16,0,30,0\n5,0,68,0,14,0,55,0,37,0,50,0\n58,0,10,0,8,0,11,0,19,0,38,0\n15,0,44,0,26,0,39,0,47,0,23,0\n52,0,35,0,53,0,18,0,17,0,6,0\n69,0,66,0,9,0,25,0,67,0,13,0\n32,0,68,0,24,0,42,0,64,0,12,0\n11,0,63,0,61,0,2,0,40,0,55,0\n49,0,8,0,43,0,21,0,44,0,31,0\n36,0,5,0,50,0,45,0,7,0,28,0\n15,0,65,0,53,0,54,0,4,0,13,0\n20,0,62,0,67,0,37,0,59,0,52,0\n14,0,30,0,57,0,38,0,25,0,29,0\n6,0,69,0,51,0,26,0,27,0,58,0\n18,0,3,0,9,0,39,0,10,0,1,0\n47,0,16,0,33,0,46,0,17,0,56,0\n34,0,19,0,60,0,35,0,41,0,23,0\n66,0,22,0,8,0,48,0,64,0,4,0\n14,0,61,0,67,0,43,0,28,0,32,0\n54,0,15,0,69,0,52,0,12,0,11,0\n20,0,17,0,24,0,13,0,27,0,39,0\n34,0,42,0,46,0,51,0,60,0,10,0\n65,0,18,0,45,0,2,0,59,0,29,0\n55,0,47,0,36,0,19,0,57,0,33,0\n31,0,41,0,38,0,37,0,40,0,44,0\n58,0,16,0,5,0,30,0,21,0,3,0\n25,0,9,0,53,0,62,0,63,0,23,0\n48,0,35,0,7,0,68,0,49,0,26,0\n56,0,1,0,66,0,50,0,22,0,6,0\n39,0,38,0,59,0,60,0,61,0,36,0\n21,0,28,0,29,0,19,0,24,0,27,0\n37,0,51,0,13,0,10,0,32,0,63,0\n48,0,8,0,54,0,45,0,55,0,62,0\n58,0,52,0,68,0,23,0,4,0,44,0\n46,0,30,0,9,0,50,0,20,0,35,0\n40,0,7,0,69,0,17,0,65,0,22,0\n11,0,33,0,43,0,57,0,53,0,66,0\n56,0,25,0,6,0,49,0,64,0,15,0\n47,0,2,0,12,0,1,0,34,0,3,0\n31,0,18,0,26,0,42,0,14,0,16,0\n67,0,41,0,27,0,5,0,54,0,10,0\n63,0,37,0,17,0,21,0,46,0,66,0\n57,0,35,0,58,0,52,0,40,0,56,0\n6,0,8,0,13,0,29,0,43,0,68,0\n25,0,55,0,19,0,2,0,3,0,42,0\n30,0,28,0,4,0,59,0,69,0,23,0\n44,0,32,0,45,0,33,0,1,0,53,0\n26,0,61,0,22,0,11,0,24,0,65,0\n38,0,62,0,49,0,67,0,34,0,47,0\n15,0,60,0,31,0,18,0,20,0,5,0\n64,0,14,0,51,0,36,0,7,0,9,0\n16,0,39,0,50,0,41,0,48,0,12,0\n19,0,63,0,68,0,69,0,24,0,56,0\n25,0,1,0,47,0,35,0,8,0,65,0\n30,0,67,0,6,0,34,0,21,0,45,0\n42,0,7,0,66,0,53,0,38,0,28,0\n60,0,55,0,18,0,27,0,12,0,62,0\n13,0,17,0,11,0,50,0,23,0,31,0\n54,0,22,0,39,0,49,0,5,0,46,0\n2,0,37,0,64,0,15,0,16,0,57,0\n29,0,48,0,36,0,52,0,3,0,44,0\n58,0,59,0,40,0,9,0,26,0,43,0\n4,0,33,0,14,0,41,0,61,0,51,0\n20,0,32,0,55,0,10,0,18,0,69,0\n60,0,54,0,17,0,25,0,28,0,22,0\n7,0,62,0,21,0,6,0,66,0,39,0\n34,0,16,0,68,0,9,0,11,0,5,0\n38,0,65,0,23,0,56,0,48,0,51,0\n31,0,4,0,35,0,36,0,67,0,24,0\n13,0,64,0,30,0,61,0,47,0,44,0\n26,0,3,0,46,0,8,0,32,0,15,0\n2,0,52,0,50,0,33,0,10,0,49,0\n57,0,20,0,45,0,14,0,63,0,58,0\n59,0,41,0,43,0,42,0,29,0,1,0\n53,0,27,0,40,0,12,0,37,0,19,0\n"
  },
  {
    "path": "schedules/69_13.csv",
    "content": "51,0,46,0,66,0,2,0,33,0,9,0\n25,0,63,0,22,0,16,0,1,0,44,0\n5,0,49,0,23,0,60,0,31,0,54,0\n50,0,17,0,38,0,65,0,32,0,62,0\n53,0,3,0,47,0,43,0,36,0,8,0\n12,0,52,0,64,0,40,0,28,0,37,0\n26,0,41,0,10,0,55,0,45,0,21,0\n20,0,18,0,42,0,24,0,15,0,34,0\n27,0,56,0,6,0,11,0,68,0,57,0\n13,0,7,0,48,0,29,0,4,0,35,0\n39,0,67,0,19,0,61,0,14,0,30,0\n59,0,69,0,44,0,58,0,46,0,16,0\n24,0,51,0,53,0,54,0,28,0,34,0\n2,0,37,0,26,0,10,0,43,0,6,0\n23,0,33,0,12,0,17,0,42,0,32,0\n64,0,27,0,13,0,3,0,60,0,45,0\n35,0,61,0,21,0,59,0,50,0,29,0\n56,0,38,0,20,0,14,0,47,0,41,0\n30,0,25,0,69,0,4,0,18,0,9,0\n5,0,57,0,15,0,48,0,63,0,66,0\n58,0,1,0,52,0,31,0,67,0,65,0\n7,0,39,0,68,0,36,0,40,0,49,0\n8,0,55,0,62,0,11,0,19,0,22,0\n2,1,56,0,43,0,28,1,25,0,61,0\n47,1,60,0,9,0,48,0,59,0,41,0\n51,0,50,0,63,0,52,0,6,0,30,0\n12,0,37,0,39,0,46,0,45,0,7,0\n53,0,8,0,54,0,31,0,69,0,17,0\n10,0,44,0,19,0,29,0,66,0,5,0\n20,0,55,0,35,0,36,0,58,0,62,0\n11,0,40,0,4,0,38,0,57,0,33,0\n64,0,34,0,32,0,1,0,68,0,26,0\n22,0,15,0,13,0,65,0,18,0,49,0\n21,0,16,0,14,0,27,0,23,0,24,0\n67,0,58,0,66,0,42,0,3,0,43,0\n47,0,25,0,19,0,11,0,17,0,39,0\n56,0,57,0,52,0,54,0,59,0,10,0\n31,0,15,0,62,0,37,0,13,0,51,0\n41,0,33,0,16,0,53,0,49,0,30,0\n8,0,7,0,28,0,20,0,21,0,23,0\n3,0,26,0,22,0,12,0,24,0,50,0\n35,0,5,0,63,0,18,0,40,0,64,0\n27,0,61,0,48,0,38,0,46,0,65,0\n14,0,42,0,67,0,45,0,68,0,44,0\n36,0,9,0,32,0,4,0,60,0,6,0\n69,0,1,0,34,0,55,0,2,0,29,0\n31,0,41,0,18,0,62,0,3,0,64,0\n47,0,37,0,56,0,33,0,49,0,35,0\n25,0,42,0,65,0,23,0,26,0,54,0\n30,0,28,0,17,0,44,0,57,0,13,0\n2,0,7,0,22,0,52,0,19,0,53,0\n21,0,24,0,48,0,1,0,51,0,39,0\n9,0,55,0,38,0,43,0,15,0,27,0\n67,0,40,0,16,0,61,0,32,0,8,0\n60,0,20,0,11,0,63,0,69,0,45,0\n46,0,5,0,10,0,36,0,34,0,50,0\n29,0,12,0,6,0,66,0,59,0,14,0\n4,0,2,0,39,0,68,0,58,0,22,0\n61,0,57,0,53,0,42,0,64,0,21,0\n51,0,69,0,55,0,65,0,40,0,13,0\n11,0,50,0,26,0,36,0,16,0,20,0\n30,0,33,0,29,0,27,0,3,0,8,0\n6,0,34,0,44,0,9,0,52,0,49,0\n38,0,59,0,24,0,68,0,28,0,67,0\n66,0,23,0,45,0,1,0,62,0,4,0\n58,0,48,0,47,0,10,0,18,0,7,0\n12,0,60,0,32,0,25,0,56,0,31,0\n15,0,37,0,35,0,17,0,5,0,41,0\n43,0,46,0,54,0,63,0,14,0,19,0\n62,0,9,0,50,0,33,0,24,0,39,0\n64,0,58,0,53,0,6,0,51,0,38,0\n52,0,66,0,3,0,47,0,45,0,61,0\n18,0,68,0,56,0,55,0,67,0,17,0\n19,0,28,0,69,0,1,0,41,0,32,0\n26,0,4,0,8,0,44,0,60,0,37,0\n57,0,31,0,35,0,2,0,25,0,46,0\n49,0,59,0,63,0,27,0,42,0,10,0\n20,0,7,0,14,0,16,0,5,0,65,0\n54,0,21,0,15,0,12,0,30,0,11,0\n36,0,23,0,22,0,48,0,43,0,34,0\n13,0,29,0,9,0,40,0,58,0,26,0\n45,0,57,0,4,0,19,0,18,0,51,0\n28,0,35,0,65,0,31,0,39,0,10,0\n59,0,25,0,68,0,37,0,8,0,50,0\n48,0,2,0,49,0,63,0,55,0,12,0\n56,0,64,0,30,0,34,0,66,0,7,0\n60,0,29,0,52,0,46,0,42,0,11,0\n62,0,44,0,40,0,53,0,23,0,6,0\n17,0,61,0,43,0,41,0,22,0,20,0\n36,0,33,0,27,0,67,0,15,0,1,0\n54,0,16,0,32,0,13,0,47,0,21,0\n14,0,5,0,38,0,3,0,69,0,24,0\n18,0,28,0,66,0,39,0,49,0,26,0\n17,0,9,0,45,0,31,0,63,0,29,0\n2,0,11,0,41,0,67,0,48,0,23,0\n46,0,59,0,30,0,43,0,64,0,20,0\n5,0,25,0,58,0,33,0,21,0,52,0\n15,0,3,0,55,0,44,0,32,0,7,0\n51,0,35,0,42,0,16,0,22,0,38,0\n50,0,1,0,40,0,14,0,4,0,56,0\n60,0,65,0,34,0,19,0,57,0,62,0\n68,0,47,0,10,0,69,0,12,0,53,0\n6,0,36,0,61,0,8,0,13,0,24,0\n37,0,27,0,20,0,54,0,35,0,66,0\n17,0,4,0,16,0,64,0,28,0,2,0\n21,0,57,0,60,0,22,0,14,0,33,0\n48,0,31,0,38,0,44,0,26,0,30,0\n24,0,29,0,68,0,52,0,41,0,65,0\n12,0,7,0,54,0,61,0,1,0,9,0\n47,0,39,0,55,0,6,0,5,0,59,0\n62,0,27,0,45,0,43,0,69,0,40,0\n46,0,32,0,49,0,11,0,51,0,8,0\n10,0,34,0,53,0,67,0,13,0,25,0\n58,0,15,0,18,0,56,0,50,0,23,0\n19,0,3,0,36,0,42,0,37,0,63,0\n33,0,44,0,43,0,7,0,65,0,24,0\n47,0,11,0,27,0,22,0,31,0,51,0\n69,0,8,0,41,0,66,0,57,0,12,0\n10,0,1,0,17,0,61,0,16,0,60,0\n6,0,25,0,40,0,20,0,48,0,19,0\n18,0,36,0,21,0,38,0,2,0,52,0\n29,0,39,0,64,0,55,0,54,0,56,0\n68,0,23,0,62,0,3,0,46,0,28,0\n53,0,26,0,59,0,63,0,15,0,4,0\n67,0,37,0,49,0,9,0,14,0,58,0\n34,0,5,0,30,0,35,0,45,0,32,0\n13,0,43,0,31,0,42,0,50,0,57,0\n7,0,41,0,6,0,18,0,27,0,25,0\n19,0,24,0,46,0,15,0,64,0,47,0\n14,0,69,0,49,0,61,0,52,0,26,0\n16,0,48,0,45,0,33,0,54,0,68,0\n20,0,4,0,51,0,12,0,10,0,67,0\n23,0,13,0,34,0,38,0,39,0,63,0\n9,0,8,0,42,0,62,0,56,0,5,0\n2,0,65,0,1,0,59,0,11,0,3,0\n22,0,30,0,32,0,58,0,37,0,29,0\n35,0,50,0,60,0,55,0,28,0,53,0\n21,0,40,0,66,0,17,0,36,0,44,0\n63,0,26,0,67,0,62,0,47,0,7,0\n34,0,33,0,31,0,19,0,61,0,59,0\n1,0,12,0,43,0,5,0,13,0,18,0\n6,0,22,0,65,0,56,0,46,0,69,0\n28,0,36,0,51,0,14,0,29,0,25,0\n2,0,10,0,45,0,15,0,8,0,38,0\n24,0,16,0,57,0,37,0,66,0,55,0\n11,0,9,0,44,0,68,0,64,0,35,0\n4,0,3,0,48,0,21,0,17,0,49,0\n54,0,58,0,50,0,41,0,60,0,40,0\n39,0,52,0,27,0,32,0,20,0,53,0\n42,0,23,0,28,0,30,0,2,0,47,0\n"
  },
  {
    "path": "schedules/69_14.csv",
    "content": "25,0,21,0,64,0,27,0,26,0,57,0\n43,0,53,0,68,0,28,0,59,0,55,0\n31,0,22,0,48,0,37,0,44,0,5,0\n3,0,54,0,69,0,36,0,23,0,63,0\n46,0,35,0,20,0,14,0,16,0,11,0\n51,0,9,0,42,0,7,0,49,0,61,0\n18,0,56,0,45,0,30,0,39,0,6,0\n2,0,29,0,24,0,12,0,13,0,33,0\n1,0,19,0,65,0,60,0,38,0,15,0\n67,0,8,0,4,0,17,0,52,0,32,0\n50,0,40,0,41,0,58,0,47,0,10,0\n66,0,34,0,49,0,62,0,45,0,43,0\n13,0,30,0,2,0,44,0,57,0,68,0\n16,0,15,0,25,0,38,0,53,0,46,0\n5,0,11,0,59,0,8,0,17,0,51,0\n42,0,27,0,48,0,28,0,65,0,24,0\n4,0,37,0,66,0,23,0,18,0,7,0\n32,0,62,0,54,0,3,0,64,0,56,0\n69,0,34,0,21,0,39,0,67,0,40,0\n31,0,36,0,14,0,50,0,19,0,9,0\n22,0,10,0,33,0,12,0,47,0,26,0\n58,0,1,0,60,0,52,0,20,0,6,0\n41,0,55,0,61,0,63,0,35,0,29,0\n54,0,37,0,68,0,53,0,65,0,21,0\n64,0,14,0,39,0,36,0,15,0,11,0\n27,0,49,0,59,0,3,0,18,0,40,0\n12,0,48,0,43,0,20,0,8,0,23,0\n25,0,60,0,28,0,34,0,13,0,56,0\n38,0,57,0,17,0,66,0,29,0,10,0\n7,0,5,0,2,0,26,0,19,0,58,0\n52,0,22,0,67,0,16,0,63,0,30,0\n50,0,33,0,6,0,61,0,32,0,35,0\n69,0,44,0,42,0,55,0,45,0,51,0\n1,0,62,0,31,0,41,0,46,0,24,0\n4,0,47,0,20,0,9,0,34,0,65,0\n38,0,11,0,52,0,40,0,2,0,21,0\n56,0,6,0,12,0,48,0,53,0,49,0\n17,0,59,0,61,0,39,0,15,0,45,0\n55,0,31,0,19,0,33,0,60,0,16,0\n44,0,47,0,29,0,25,0,1,0,23,0\n46,0,28,0,26,0,41,0,7,0,36,0\n18,0,14,0,62,0,67,0,42,0,68,0\n8,0,30,0,5,0,32,0,10,0,4,0\n57,0,69,0,35,0,54,0,58,0,22,0\n64,0,63,0,24,0,50,0,37,0,51,0\n66,0,43,0,13,0,27,0,9,0,3,0\n33,0,65,0,45,0,28,0,1,0,11,0\n6,0,21,0,23,0,59,0,31,0,15,0\n55,0,49,0,46,0,8,0,57,0,22,0\n35,0,64,0,5,0,40,0,38,0,69,0\n17,0,47,0,36,0,24,0,61,0,13,0\n43,0,19,0,67,0,44,0,54,0,12,0\n32,0,41,0,66,0,25,0,39,0,20,0\n3,0,26,0,30,0,42,0,34,0,50,0\n7,0,37,0,60,0,29,0,62,0,68,0\n53,0,18,0,63,0,9,0,48,0,2,0\n14,0,27,0,58,0,56,0,16,0,4,0\n10,0,12,0,28,0,51,0,52,0,21,0\n15,0,49,0,54,0,66,0,47,0,69,0\n22,0,64,0,1,0,31,0,39,0,13,0\n19,0,46,0,40,0,65,0,37,0,18,0\n34,0,11,0,63,0,56,0,68,0,27,0\n48,0,16,0,23,0,62,0,10,0,51,0\n14,0,35,0,45,0,52,0,26,0,59,0\n58,0,30,0,41,0,9,0,33,0,8,0\n50,0,32,0,20,0,17,0,53,0,2,0\n25,0,36,0,67,0,6,0,4,0,55,0\n38,0,24,0,7,0,44,0,61,0,3,0\n29,0,57,0,60,0,43,0,5,0,42,0\n56,0,51,0,22,0,41,0,27,0,19,0\n28,0,64,0,47,0,16,0,66,0,2,0\n33,0,34,0,23,0,46,0,17,0,67,0\n8,0,50,0,55,0,38,0,39,0,54,0\n40,0,53,0,29,0,26,0,48,0,4,0\n3,0,6,0,63,0,57,0,65,0,20,0\n21,0,43,0,35,0,14,0,7,0,13,0\n25,0,24,0,62,0,9,0,30,0,45,0\n12,0,18,0,11,0,5,0,61,0,1,0\n59,0,58,0,37,0,49,0,36,0,32,0\n10,0,31,0,42,0,68,0,52,0,15,0\n60,0,69,0,41,0,44,0,53,0,14,0\n34,0,64,0,45,0,33,0,48,0,21,0\n6,0,29,0,19,0,3,0,11,0,47,0\n23,0,50,0,54,0,27,0,7,0,1,0\n57,0,39,0,18,0,9,0,35,0,24,0\n68,0,16,0,49,0,25,0,32,0,26,0\n13,0,59,0,10,0,44,0,67,0,63,0\n65,0,8,0,69,0,61,0,62,0,2,0\n5,0,31,0,52,0,36,0,66,0,55,0\n15,0,22,0,42,0,40,0,20,0,56,0\n58,0,17,0,12,0,30,0,28,0,37,0\n51,0,4,0,38,0,43,0,60,0,46,0\n16,0,53,0,50,0,11,0,57,0,21,0\n7,0,48,0,3,0,25,0,47,0,41,0\n52,0,44,0,27,0,6,0,62,0,9,0\n23,0,64,0,30,0,19,0,14,0,49,0\n26,0,66,0,17,0,63,0,56,0,60,0\n10,0,1,0,40,0,43,0,2,0,55,0\n37,0,8,0,13,0,15,0,33,0,69,0\n20,0,12,0,24,0,4,0,68,0,59,0\n38,0,32,0,22,0,34,0,31,0,18,0\n46,0,61,0,39,0,28,0,54,0,5,0\n67,0,65,0,51,0,58,0,45,0,36,0\n35,0,8,0,16,0,29,0,42,0,3,0\n2,0,14,0,6,0,37,0,55,0,17,0\n49,0,9,0,38,0,50,0,68,0,48,0\n33,0,1,0,59,0,7,0,57,0,4,0\n28,0,36,0,21,0,22,0,18,0,60,0\n34,0,27,0,15,0,41,0,5,0,12,0\n35,0,53,0,19,0,24,0,67,0,66,0\n40,0,11,0,45,0,23,0,13,0,62,0\n56,0,47,0,31,0,43,0,51,0,69,0\n61,0,63,0,42,0,46,0,32,0,64,0\n39,0,58,0,65,0,10,0,44,0,25,0\n29,0,26,0,20,0,30,0,52,0,54,0\n45,0,53,0,3,0,5,0,22,0,68,0\n12,0,37,0,9,0,56,0,35,0,1,0\n60,0,32,0,21,0,24,0,47,0,23,0\n11,0,10,0,19,0,4,0,25,0,69,0\n59,0,62,0,63,0,38,0,58,0,28,0\n52,0,18,0,43,0,64,0,50,0,65,0\n40,0,61,0,48,0,66,0,14,0,30,0\n2,0,20,0,44,0,27,0,46,0,36,0\n17,0,13,0,41,0,54,0,42,0,16,0\n34,0,26,0,7,0,31,0,6,0,8,0\n51,0,39,0,49,0,67,0,33,0,29,0\n55,0,57,0,32,0,15,0,12,0,65,0\n68,0,58,0,9,0,23,0,46,0,22,0\n30,0,10,0,35,0,36,0,1,0,53,0\n11,0,56,0,7,0,64,0,20,0,38,0\n16,0,69,0,5,0,43,0,24,0,6,0\n61,0,60,0,67,0,3,0,41,0,2,0\n42,0,39,0,55,0,48,0,37,0,47,0\n15,0,28,0,4,0,50,0,44,0,49,0\n18,0,51,0,66,0,21,0,26,0,13,0\n54,0,25,0,40,0,17,0,33,0,31,0\n27,0,63,0,45,0,8,0,14,0,29,0\n34,0,62,0,52,0,59,0,19,0,57,0\n32,0,3,0,1,0,28,0,69,0,48,0\n7,0,39,0,16,0,60,0,12,0,30,0\n68,0,46,0,51,0,66,0,40,0,6,0\n9,0,55,0,67,0,26,0,11,0,64,0\n47,0,62,0,33,0,14,0,63,0,5,0\n17,0,65,0,27,0,35,0,31,0,49,0\n54,0,2,0,4,0,42,0,59,0,45,0\n44,0,36,0,56,0,21,0,18,0,8,0\n15,0,24,0,53,0,29,0,58,0,34,0\n41,0,52,0,57,0,23,0,37,0,38,0\n50,0,43,0,61,0,19,0,25,0,22,0\n20,0,13,0,49,0,10,0,55,0,5,0\n9,0,7,0,44,0,32,0,40,0,16,0\n60,0,68,0,47,0,27,0,8,0,64,0\n33,0,42,0,36,0,12,0,66,0,38,0\n37,0,57,0,31,0,28,0,45,0,67,0\n18,0,15,0,30,0,63,0,41,0,43,0\n29,0,50,0,46,0,69,0,59,0,56,0\n62,0,21,0,19,0,17,0,1,0,20,0\n54,0,26,0,61,0,48,0,58,0,11,0\n14,0,22,0,24,0,65,0,10,0,6,0\n23,0,51,0,2,0,35,0,25,0,34,0\n3,0,13,0,52,0,4,0,53,0,39,0\n"
  },
  {
    "path": "schedules/69_2.csv",
    "content": "26,0,68,0,24,0,69,0,52,0,28,0\n37,0,55,0,17,0,25,0,53,0,42,0\n18,0,36,0,22,0,2,0,21,0,48,0\n19,0,47,0,7,0,14,0,38,0,32,0\n5,0,13,0,64,0,27,0,63,0,34,0\n4,0,23,0,9,0,61,0,56,0,40,0\n44,0,50,0,65,0,67,0,57,0,3,0\n62,0,16,0,54,0,29,0,60,0,30,0\n1,0,11,0,58,0,43,0,31,0,20,0\n35,0,49,0,66,0,46,0,51,0,39,0\n45,0,6,0,8,0,12,0,33,0,15,0\n10,0,41,0,69,0,59,0,17,0,4,0\n61,0,27,0,42,0,47,0,48,0,16,0\n60,0,56,0,68,0,58,0,7,0,65,0\n46,0,34,0,23,0,28,0,36,0,32,0\n6,0,38,0,63,0,35,0,43,0,37,0\n53,0,30,0,14,0,57,0,45,0,41,0\n31,0,26,0,39,0,50,0,55,0,12,0\n21,0,62,0,3,0,64,0,24,0,1,0\n33,0,13,0,20,0,51,0,18,0,54,0\n40,0,5,0,2,0,29,0,49,0,10,0\n15,0,67,0,59,0,66,0,25,0,22,0\n19,0,9,0,52,0,8,0,44,0,11,0\n"
  },
  {
    "path": "schedules/69_3.csv",
    "content": "6,0,37,0,40,0,16,0,28,0,48,0\n2,0,10,0,49,0,50,0,60,0,18,0\n39,0,53,0,15,0,4,0,5,0,45,0\n26,0,61,0,33,0,68,0,54,0,66,0\n19,0,8,0,13,0,29,0,27,0,55,0\n67,0,47,0,12,0,23,0,38,0,43,0\n41,0,21,0,11,0,34,0,22,0,59,0\n14,0,64,0,58,0,25,0,46,0,63,0\n31,0,42,0,62,0,52,0,9,0,3,0\n32,0,20,0,69,0,1,0,35,0,17,0\n30,0,24,0,51,0,7,0,57,0,56,0\n65,0,55,0,43,0,44,0,36,0,61,0\n40,1,66,0,64,0,60,1,23,0,4,0\n34,0,39,0,63,0,67,1,2,0,16,0\n52,0,45,0,20,0,18,0,27,0,12,0\n35,0,51,0,19,0,31,0,10,0,28,0\n3,0,15,0,29,0,32,0,11,0,68,0\n44,0,56,0,59,0,38,0,26,0,25,0\n33,0,41,0,48,0,24,0,47,0,8,0\n30,0,13,0,36,0,21,0,62,0,14,0\n50,0,54,0,9,0,7,0,6,0,69,0\n46,0,1,0,42,0,22,0,5,0,49,0\n57,0,65,0,17,0,58,0,37,0,53,0\n20,0,38,0,40,0,31,0,39,0,11,0\n47,0,32,0,66,0,63,0,56,0,13,0\n27,0,24,0,25,0,43,0,60,0,9,0\n45,0,55,0,28,0,69,0,33,0,3,0\n49,0,4,0,17,0,26,0,67,0,6,0\n29,0,14,0,53,0,51,0,22,0,52,0\n23,0,46,0,10,0,34,0,62,0,48,0\n12,0,8,0,50,0,58,0,35,0,61,0\n2,0,7,0,21,0,65,0,15,0,42,0\n44,0,5,0,37,0,64,0,68,0,30,0\n18,0,1,0,16,0,54,0,36,0,41,0\n57,0,59,0,60,0,19,0,40,0,67,0\n"
  },
  {
    "path": "schedules/69_4.csv",
    "content": "29,0,28,0,49,0,48,0,7,0,6,0\n16,0,32,0,37,0,63,0,59,0,67,0\n20,0,43,0,14,0,11,0,23,0,2,0\n10,0,21,0,62,0,58,0,8,0,44,0\n9,0,15,0,38,0,17,0,46,0,51,0\n24,0,65,0,3,0,57,0,66,0,22,0\n18,0,36,0,25,0,31,0,33,0,30,0\n40,0,68,0,56,0,54,0,5,0,69,0\n50,0,47,0,53,0,39,0,45,0,60,0\n4,0,42,0,52,0,13,0,19,0,34,0\n64,0,27,0,61,0,26,0,1,0,12,0\n35,0,41,0,65,0,55,0,36,0,21,0\n15,0,48,0,67,0,20,0,31,0,40,0\n33,0,2,0,38,0,53,0,7,0,3,0\n45,0,28,0,44,0,4,0,22,0,9,0\n16,0,47,0,51,0,11,0,42,0,54,0\n37,0,1,0,23,0,17,0,58,0,56,0\n69,0,32,0,34,0,41,0,61,0,10,0\n8,0,27,0,6,0,19,0,5,0,35,0\n59,0,24,0,62,0,52,0,25,0,29,0\n60,0,46,0,66,0,18,0,68,0,12,0\n55,0,64,0,50,0,49,0,13,0,14,0\n30,0,57,0,39,0,43,0,26,0,63,0\n54,0,61,0,7,0,4,0,8,0,65,0\n56,0,52,0,41,0,47,0,15,0,27,0\n25,0,5,0,58,0,66,0,28,0,11,0\n69,0,13,0,9,0,67,0,36,0,3,0\n14,0,31,0,12,0,37,0,34,0,6,0\n22,0,26,0,19,0,38,0,10,0,50,0\n57,0,23,0,33,0,40,0,64,0,59,0\n55,0,17,0,60,0,2,0,44,0,42,0\n51,0,62,0,39,0,35,0,68,0,49,0\n43,0,45,0,21,0,32,0,18,0,29,0\n53,0,63,0,46,0,48,0,24,0,1,0\n20,0,30,0,56,0,16,0,64,0,22,0\n54,0,66,0,23,0,52,0,9,0,31,0\n65,0,10,0,33,0,51,0,5,0,14,0\n67,0,18,0,8,0,47,0,49,0,2,0\n11,0,27,0,38,0,63,0,69,0,55,0\n26,0,21,0,53,0,42,0,20,0,37,0\n68,0,24,0,58,0,32,0,36,0,15,0\n45,0,41,0,48,0,30,0,19,0,62,0\n40,0,6,0,44,0,16,0,43,0,61,0\n57,0,7,0,13,0,25,0,1,0,60,0\n4,0,3,0,17,0,29,0,12,0,39,0\n59,0,46,0,35,0,34,0,50,0,28,0\n"
  },
  {
    "path": "schedules/69_5.csv",
    "content": "63,0,49,0,1,0,41,0,34,0,28,0\n26,0,38,0,18,0,65,0,61,0,7,0\n8,0,13,0,2,0,24,0,5,0,66,0\n6,0,22,0,19,0,58,0,20,0,67,0\n11,0,12,0,50,0,68,0,25,0,37,0\n40,0,17,0,54,0,35,0,47,0,14,0\n44,0,21,0,3,0,15,0,43,0,36,0\n42,0,39,0,33,0,52,0,46,0,48,0\n4,0,27,0,16,0,23,0,45,0,53,0\n51,0,62,0,29,0,10,0,56,0,69,0\n57,0,30,0,55,0,31,0,64,0,9,0\n60,0,32,0,41,0,59,0,14,0,44,0\n58,0,25,0,24,0,63,0,15,0,39,0\n3,0,48,0,27,0,18,0,11,0,35,0\n46,0,28,0,36,0,6,0,50,0,51,0\n29,0,26,0,67,0,68,0,16,0,31,0\n30,0,12,0,19,0,52,0,43,0,32,0\n37,0,23,0,40,0,22,0,56,0,57,0\n10,0,47,0,2,0,55,0,38,0,45,0\n64,0,66,0,33,0,1,0,65,0,17,0\n7,0,53,0,34,0,42,0,8,0,60,0\n61,0,9,0,69,0,20,0,13,0,21,0\n49,0,5,0,59,0,54,0,62,0,4,0\n12,1,67,0,15,0,41,1,46,0,27,0\n32,0,65,0,3,0,22,1,29,0,47,0\n44,0,64,0,48,0,37,0,8,0,38,0\n16,0,13,0,60,0,10,0,19,0,11,0\n40,0,31,0,21,0,42,0,25,0,49,0\n58,0,4,0,52,0,55,0,7,0,56,0\n2,0,6,0,68,0,23,0,1,0,62,0\n61,0,36,0,17,0,30,0,34,0,24,0\n66,0,18,0,57,0,54,0,51,0,39,0\n35,0,20,0,28,0,45,0,59,0,33,0\n14,0,69,0,53,0,5,0,26,0,50,0\n63,0,38,0,11,0,43,0,9,0,46,0\n4,0,19,0,34,0,64,0,29,0,2,0\n8,0,23,0,10,0,31,0,32,0,58,0\n56,0,54,0,25,0,20,0,48,0,41,0\n35,0,39,0,7,0,21,0,50,0,30,0\n65,0,15,0,52,0,13,0,51,0,14,0\n68,0,27,0,43,0,17,0,57,0,28,0\n59,0,1,0,36,0,69,0,40,0,16,0\n47,0,9,0,53,0,66,0,49,0,44,0\n6,0,26,0,24,0,3,0,12,0,60,0\n62,0,63,0,45,0,18,0,42,0,22,0\n5,0,37,0,61,0,33,0,67,0,55,0\n23,0,64,0,20,0,11,0,7,0,15,0\n35,0,31,0,19,0,41,0,36,0,53,0\n21,0,56,0,28,0,16,0,8,0,47,0\n45,0,50,0,1,0,9,0,32,0,54,0\n44,0,5,0,57,0,6,0,65,0,63,0\n39,0,38,0,34,0,12,0,62,0,13,0\n51,0,48,0,55,0,24,0,22,0,59,0\n37,0,17,0,46,0,49,0,26,0,10,0\n52,0,61,0,60,0,27,0,29,0,40,0\n43,0,25,0,67,0,14,0,4,0,18,0\n30,0,42,0,68,0,58,0,3,0,66,0\n33,0,41,0,22,0,69,0,2,0,12,0\n"
  },
  {
    "path": "schedules/69_6.csv",
    "content": "10,0,19,0,30,0,7,0,11,0,1,0\n37,0,50,0,28,0,33,0,20,0,38,0\n67,0,5,0,31,0,68,0,40,0,26,0\n17,0,35,0,48,0,54,0,69,0,27,0\n55,0,9,0,51,0,64,0,41,0,61,0\n62,0,29,0,47,0,22,0,34,0,36,0\n13,0,42,0,60,0,65,0,56,0,3,0\n63,0,53,0,4,0,25,0,6,0,45,0\n32,0,58,0,49,0,16,0,15,0,46,0\n44,0,24,0,43,0,59,0,2,0,21,0\n39,0,14,0,57,0,12,0,52,0,23,0\n8,0,66,0,5,0,18,0,65,0,7,0\n38,0,3,0,36,0,10,0,17,0,45,0\n13,0,15,0,61,0,27,0,19,0,26,0\n51,0,68,0,46,0,22,0,4,0,35,0\n16,0,64,0,48,0,39,0,11,0,29,0\n69,0,57,0,40,0,25,0,59,0,28,0\n32,0,23,0,47,0,66,0,24,0,33,0\n14,0,67,0,41,0,56,0,8,0,21,0\n37,0,34,0,42,0,52,0,44,0,55,0\n6,0,60,0,12,0,31,0,50,0,1,0\n20,0,49,0,54,0,18,0,2,0,63,0\n9,0,30,0,58,0,62,0,43,0,53,0\n21,0,64,0,23,0,5,0,28,0,35,0\n11,0,33,0,25,0,8,0,36,0,42,0\n17,0,4,0,59,0,13,0,39,0,37,0\n10,0,61,0,66,0,20,0,6,0,57,0\n29,0,52,0,40,0,51,0,54,0,58,0\n48,0,32,0,44,0,19,0,12,0,67,0\n55,0,53,0,2,0,16,0,68,0,56,0\n7,0,24,0,62,0,31,0,15,0,63,0\n26,0,41,0,22,0,50,0,30,0,49,0\n27,0,9,0,34,0,3,0,14,0,1,0\n45,0,46,0,47,0,60,0,69,0,18,0\n65,0,38,0,11,0,43,0,61,0,32,0\n25,0,2,0,51,0,48,0,10,0,23,0\n21,0,26,0,33,0,16,0,12,0,54,0\n59,0,6,0,52,0,7,0,36,0,49,0\n1,0,68,0,28,0,45,0,42,0,58,0\n46,0,43,0,31,0,64,0,17,0,34,0\n44,0,13,0,22,0,9,0,5,0,63,0\n8,0,35,0,29,0,37,0,15,0,60,0\n50,0,66,0,19,0,40,0,14,0,53,0\n56,0,27,0,24,0,18,0,38,0,30,0\n3,0,67,0,4,0,57,0,55,0,47,0\n41,0,69,0,65,0,39,0,62,0,20,0\n45,0,33,0,7,0,61,0,34,0,48,0\n14,0,15,0,28,0,6,0,51,0,17,0\n9,0,18,0,52,0,68,0,10,0,32,0\n38,0,35,0,63,0,47,0,42,0,40,0\n30,0,2,0,65,0,67,0,46,0,29,0\n5,0,56,0,59,0,54,0,50,0,62,0\n55,0,36,0,20,0,58,0,13,0,12,0\n1,0,39,0,25,0,43,0,66,0,26,0\n37,0,16,0,19,0,22,0,57,0,24,0\n44,0,64,0,49,0,8,0,53,0,3,0\n60,0,11,0,23,0,27,0,4,0,41,0\n21,0,69,0,51,0,31,0,30,0,13,0\n50,0,34,0,68,0,65,0,15,0,25,0\n28,0,54,0,36,0,67,0,66,0,9,0\n64,0,56,0,26,0,47,0,7,0,20,0\n6,0,3,0,40,0,33,0,62,0,46,0\n10,0,39,0,55,0,24,0,35,0,49,0\n53,0,52,0,5,0,38,0,48,0,41,0\n19,0,29,0,43,0,69,0,4,0,42,0\n58,0,14,0,31,0,2,0,37,0,11,0\n12,0,22,0,27,0,59,0,8,0,45,0\n32,0,57,0,63,0,17,0,21,0,60,0\n16,0,18,0,61,0,44,0,23,0,1,0\n"
  },
  {
    "path": "schedules/69_7.csv",
    "content": "56,0,36,0,15,0,53,0,52,0,14,0\n43,0,37,0,59,0,6,0,12,0,46,0\n16,0,31,0,68,0,24,0,18,0,10,0\n45,0,69,0,64,0,1,0,7,0,19,0\n11,0,26,0,2,0,3,0,61,0,34,0\n40,0,28,0,8,0,27,0,20,0,49,0\n51,0,41,0,33,0,55,0,17,0,4,0\n50,0,67,0,29,0,58,0,9,0,42,0\n5,0,13,0,21,0,54,0,63,0,32,0\n57,0,48,0,39,0,47,0,23,0,30,0\n65,0,25,0,35,0,44,0,60,0,22,0\n62,0,38,0,19,0,66,0,18,0,26,0\n34,0,59,0,17,0,52,0,16,0,40,0\n10,0,27,0,33,0,15,0,9,0,32,0\n43,0,3,0,30,0,21,0,51,0,36,0\n2,0,8,0,7,0,60,0,29,0,57,0\n5,0,68,0,53,0,38,0,47,0,45,0\n66,0,39,0,41,0,50,0,6,0,1,0\n64,0,23,0,61,0,14,0,54,0,35,0\n25,0,31,0,58,0,12,0,48,0,49,0\n46,0,13,0,11,0,65,0,56,0,42,0\n22,0,4,0,24,0,63,0,20,0,37,0\n62,0,44,0,55,0,67,0,69,0,28,0\n6,1,66,0,7,0,47,1,5,0,27,0\n8,1,53,0,30,0,10,0,35,0,59,0\n60,0,32,0,61,0,19,0,17,0,42,0\n45,0,48,0,43,0,15,0,24,0,34,0\n12,0,44,0,13,0,3,0,39,0,20,0\n36,0,18,0,65,0,57,0,33,0,63,0\n21,0,31,0,9,0,1,0,22,0,55,0\n38,0,2,0,56,0,58,0,16,0,64,0\n29,0,4,0,54,0,62,0,25,0,40,0\n14,0,69,0,50,0,51,0,11,0,68,0\n46,0,23,0,52,0,28,0,41,0,26,0\n67,0,49,0,15,0,37,0,39,0,21,0\n1,0,34,0,18,0,30,0,5,0,42,0\n38,0,24,0,40,0,33,0,7,0,44,0\n14,0,13,0,59,0,22,0,19,0,48,0\n57,0,3,0,28,0,56,0,6,0,17,0\n62,0,50,0,47,0,2,0,36,0,31,0\n23,0,8,0,32,0,68,0,12,0,4,0\n37,0,58,0,54,0,26,0,27,0,51,0\n49,0,66,0,53,0,60,0,64,0,63,0\n29,0,46,0,16,0,45,0,35,0,55,0\n43,0,25,0,41,0,67,0,11,0,10,0\n20,0,9,0,52,0,61,0,65,0,69,0\n18,0,48,0,17,0,50,0,54,0,8,0\n42,0,7,0,28,0,68,0,37,0,36,0\n31,0,6,0,4,0,15,0,38,0,13,0\n10,0,55,0,34,0,56,0,23,0,49,0\n66,0,20,0,14,0,46,0,21,0,57,0\n11,0,35,0,63,0,9,0,12,0,40,0\n16,0,33,0,26,0,25,0,69,0,39,0\n24,0,60,0,41,0,5,0,59,0,3,0\n1,0,47,0,32,0,51,0,29,0,44,0\n27,0,2,0,19,0,53,0,65,0,43,0\n22,0,58,0,30,0,61,0,62,0,45,0\n64,0,67,0,68,0,52,0,13,0,57,0\n28,0,15,0,54,0,16,0,11,0,66,0\n10,0,48,0,60,0,69,0,46,0,38,0\n33,0,20,0,35,0,43,0,50,0,56,0\n45,0,59,0,18,0,9,0,2,0,49,0\n44,0,19,0,21,0,4,0,34,0,58,0\n37,0,3,0,1,0,62,0,14,0,32,0\n8,0,52,0,42,0,25,0,47,0,24,0\n17,0,63,0,31,0,7,0,30,0,26,0\n36,0,27,0,12,0,61,0,41,0,29,0\n53,0,51,0,6,0,22,0,23,0,67,0\n40,0,65,0,55,0,39,0,5,0,64,0\n15,0,35,0,69,0,47,0,18,0,3,0\n30,0,9,0,56,0,8,0,19,0,37,0\n57,0,42,0,41,0,31,0,45,0,44,0\n6,0,62,0,20,0,68,0,34,0,60,0\n24,0,11,0,32,0,53,0,58,0,55,0\n4,0,16,0,65,0,67,0,7,0,48,0\n22,0,17,0,49,0,36,0,46,0,5,0\n59,0,50,0,63,0,27,0,25,0,23,0\n54,0,12,0,1,0,33,0,2,0,52,0\n10,0,61,0,40,0,13,0,51,0,66,0\n39,0,38,0,28,0,29,0,14,0,43,0\n21,0,26,0,6,0,64,0,47,0,8,0\n"
  },
  {
    "path": "schedules/69_8.csv",
    "content": "45,0,4,0,53,0,47,0,8,0,29,0\n5,0,37,0,14,0,7,0,61,0,62,0\n9,0,35,0,26,0,21,0,11,0,43,0\n15,0,57,0,60,0,67,0,66,0,38,0\n68,0,34,0,28,0,48,0,18,0,50,0\n19,0,20,0,33,0,65,0,41,0,17,0\n12,0,46,0,54,0,1,0,52,0,23,0\n10,0,27,0,24,0,13,0,51,0,64,0\n30,0,40,0,63,0,16,0,36,0,49,0\n3,0,6,0,42,0,55,0,58,0,25,0\n22,0,32,0,44,0,56,0,59,0,39,0\n69,0,2,0,60,0,31,0,23,0,21,0\n52,0,38,0,19,0,27,0,50,0,9,0\n41,0,68,0,61,0,45,0,63,0,54,0\n15,0,17,0,26,0,34,0,29,0,3,0\n39,0,13,0,20,0,14,0,57,0,53,0\n25,0,51,0,31,0,62,0,30,0,33,0\n16,0,5,0,42,0,43,0,32,0,28,0\n6,0,7,0,48,0,46,0,2,0,59,0\n47,0,67,0,65,0,64,0,49,0,11,0\n10,0,44,0,18,0,69,0,8,0,35,0\n4,0,22,0,37,0,58,0,12,0,36,0\n56,0,66,0,1,0,24,0,55,0,40,0\n38,0,45,0,39,0,43,0,6,0,26,0\n65,0,28,0,59,0,30,0,54,0,9,0\n67,0,23,0,29,0,33,0,16,0,44,0\n21,0,46,0,62,0,41,0,36,0,15,0\n63,0,50,0,58,0,13,0,14,0,31,0\n24,0,4,0,35,0,5,0,52,0,68,0\n3,0,56,0,57,0,47,0,37,0,18,0\n12,0,7,0,1,0,10,0,60,0,17,0\n20,0,49,0,55,0,27,0,48,0,69,0\n40,0,64,0,61,0,32,0,53,0,19,0\n25,0,66,0,34,0,22,0,8,0,11,0\n42,0,51,0,45,0,2,0,15,0,4,0\n63,0,35,0,38,0,46,0,1,0,37,0\n69,0,16,0,26,0,62,0,57,0,12,0\n67,0,39,0,17,0,24,0,50,0,36,0\n8,0,10,0,9,0,48,0,33,0,56,0\n53,0,3,0,31,0,65,0,42,0,22,0\n43,0,23,0,64,0,66,0,20,0,30,0\n11,0,54,0,18,0,55,0,14,0,2,0\n34,0,49,0,52,0,41,0,7,0,32,0\n44,0,40,0,27,0,21,0,6,0,5,0\n68,0,60,0,19,0,13,0,29,0,25,0\n51,0,58,0,59,0,61,0,28,0,47,0\n33,0,69,0,11,0,53,0,63,0,37,0\n42,0,12,0,34,0,9,0,20,0,67,0\n38,0,21,0,17,0,64,0,54,0,56,0\n26,0,68,0,24,0,14,0,44,0,30,0\n22,0,28,0,49,0,10,0,62,0,45,0\n58,0,43,0,8,0,60,0,46,0,40,0\n29,0,51,0,55,0,41,0,50,0,23,0\n36,0,59,0,52,0,13,0,3,0,2,0\n35,0,61,0,65,0,57,0,16,0,25,0\n5,0,66,0,47,0,19,0,39,0,48,0\n15,0,6,0,18,0,32,0,31,0,1,0\n27,0,7,0,28,0,4,0,63,0,23,0\n55,0,21,0,10,0,59,0,34,0,45,0\n56,0,43,0,25,0,53,0,12,0,2,0\n48,0,41,0,16,0,24,0,38,0,58,0\n51,0,66,0,32,0,69,0,17,0,68,0\n50,0,60,0,11,0,61,0,20,0,3,0\n1,0,62,0,9,0,4,0,64,0,44,0\n7,0,13,0,40,0,18,0,26,0,65,0\n52,0,6,0,14,0,19,0,22,0,67,0\n47,0,33,0,36,0,42,0,54,0,35,0\n29,0,5,0,49,0,46,0,31,0,57,0\n27,0,30,0,8,0,37,0,15,0,39,0\n62,0,43,0,65,0,34,0,24,0,23,0\n59,0,50,0,4,0,25,0,69,0,40,0\n67,0,1,0,53,0,58,0,21,0,68,0\n46,0,10,0,20,0,47,0,32,0,26,0\n54,0,37,0,48,0,60,0,6,0,51,0\n3,0,14,0,33,0,12,0,38,0,49,0\n30,0,35,0,56,0,45,0,27,0,13,0\n28,0,8,0,31,0,17,0,52,0,61,0\n2,0,9,0,41,0,66,0,16,0,39,0\n36,0,11,0,57,0,7,0,44,0,19,0\n42,0,63,0,29,0,18,0,5,0,64,0\n15,0,22,0,47,0,55,0,43,0,68,0\n37,0,24,0,45,0,20,0,59,0,31,0\n54,0,32,0,62,0,3,0,8,0,67,0\n14,0,46,0,16,0,34,0,51,0,56,0\n53,0,41,0,64,0,35,0,28,0,6,0\n39,0,60,0,65,0,55,0,52,0,63,0\n11,0,27,0,17,0,57,0,40,0,42,0\n1,0,2,0,26,0,50,0,33,0,22,0\n13,0,48,0,12,0,44,0,15,0,61,0\n49,0,18,0,21,0,19,0,66,0,4,0\n30,0,69,0,58,0,9,0,29,0,7,0\n38,0,23,0,36,0,5,0,10,0,25,0\n"
  },
  {
    "path": "schedules/69_9.csv",
    "content": "47,0,68,0,31,0,61,0,24,0,67,0\n22,0,26,0,11,0,36,0,32,0,64,0\n52,0,39,0,19,0,48,0,2,0,42,0\n34,0,23,0,56,0,6,0,16,0,69,0\n35,0,33,0,63,0,45,0,44,0,21,0\n38,0,1,0,25,0,4,0,27,0,58,0\n17,0,51,0,10,0,66,0,53,0,8,0\n37,0,46,0,60,0,7,0,20,0,3,0\n14,0,30,0,15,0,62,0,65,0,54,0\n5,0,59,0,18,0,50,0,43,0,12,0\n40,0,9,0,55,0,13,0,57,0,28,0\n49,0,41,0,56,0,29,0,39,0,47,0\n24,0,42,0,33,0,1,0,3,0,10,0\n44,0,69,0,31,0,11,0,52,0,15,0\n59,0,35,0,6,0,4,0,22,0,53,0\n5,0,40,0,17,0,21,0,25,0,30,0\n27,0,54,0,9,0,23,0,36,0,50,0\n49,0,68,0,63,0,28,0,19,0,60,0\n34,0,20,0,57,0,8,0,18,0,62,0\n67,0,2,0,32,0,38,0,7,0,13,0\n64,0,37,0,14,0,29,0,61,0,43,0\n51,0,48,0,65,0,58,0,12,0,26,0\n46,0,45,0,55,0,41,0,66,0,16,0\n59,1,33,0,1,0,60,1,11,0,49,0\n24,1,53,0,52,0,20,0,30,0,28,0\n43,0,13,0,47,0,19,0,10,0,36,0\n6,0,12,0,64,0,38,0,9,0,42,0\n14,0,27,0,29,0,48,0,35,0,68,0\n34,0,44,0,4,0,7,0,26,0,17,0\n67,0,18,0,15,0,66,0,22,0,58,0\n69,0,39,0,37,0,65,0,55,0,21,0\n23,0,62,0,16,0,50,0,61,0,31,0\n40,0,32,0,45,0,56,0,3,0,8,0\n51,0,54,0,63,0,25,0,5,0,2,0\n41,0,46,0,17,0,57,0,27,0,59,0\n66,0,18,0,11,0,24,0,37,0,38,0\n53,0,34,0,19,0,55,0,67,0,29,0\n8,0,16,0,52,0,47,0,21,0,14,0\n58,0,7,0,62,0,5,0,9,0,39,0\n23,0,15,0,64,0,63,0,13,0,20,0\n10,0,57,0,26,0,45,0,49,0,6,0\n12,0,61,0,54,0,46,0,35,0,32,0\n51,0,56,0,4,0,28,0,43,0,65,0\n60,0,41,0,42,0,31,0,36,0,25,0\n2,0,33,0,68,0,69,0,40,0,50,0\n44,0,48,0,3,0,30,0,22,0,1,0\n24,0,58,0,63,0,6,0,46,0,29,0\n61,0,35,0,7,0,51,0,18,0,52,0\n62,0,43,0,25,0,32,0,11,0,55,0\n19,0,47,0,4,0,12,0,69,0,33,0\n20,0,50,0,49,0,44,0,42,0,67,0\n48,0,36,0,37,0,59,0,40,0,15,0\n39,0,38,0,30,0,23,0,14,0,57,0\n5,0,56,0,27,0,64,0,60,0,10,0\n2,0,21,0,22,0,34,0,45,0,41,0\n3,0,65,0,9,0,17,0,66,0,31,0\n26,0,16,0,13,0,68,0,1,0,54,0\n28,0,53,0,50,0,8,0,37,0,58,0\n6,0,67,0,47,0,46,0,51,0,62,0\n7,0,43,0,10,0,41,0,48,0,23,0\n27,0,64,0,66,0,52,0,40,0,49,0\n31,0,57,0,21,0,20,0,12,0,29,0\n30,0,24,0,11,0,34,0,13,0,35,0\n32,0,4,0,68,0,42,0,5,0,55,0\n22,0,28,0,8,0,33,0,39,0,54,0\n61,0,69,0,38,0,60,0,17,0,45,0\n59,0,14,0,2,0,44,0,9,0,56,0\n36,0,53,0,65,0,63,0,1,0,18,0\n3,0,25,0,16,0,15,0,19,0,26,0\n12,0,41,0,10,0,34,0,37,0,52,0\n45,0,42,0,50,0,17,0,24,0,48,0\n6,0,66,0,54,0,68,0,59,0,21,0\n36,0,47,0,28,0,57,0,5,0,65,0\n11,0,39,0,63,0,51,0,16,0,27,0\n8,0,13,0,61,0,44,0,49,0,25,0\n60,0,22,0,7,0,40,0,14,0,19,0\n15,0,32,0,31,0,33,0,46,0,53,0\n38,0,56,0,20,0,35,0,26,0,55,0\n4,0,2,0,29,0,3,0,18,0,23,0\n43,0,1,0,69,0,67,0,9,0,30,0\n58,0,36,0,21,0,62,0,64,0,24,0\n42,0,40,0,11,0,65,0,61,0,46,0\n35,0,15,0,5,0,6,0,41,0,8,0\n14,0,50,0,66,0,4,0,63,0,26,0\n39,0,3,0,27,0,34,0,43,0,67,0\n7,0,48,0,57,0,25,0,69,0,53,0\n60,0,18,0,9,0,44,0,47,0,32,0\n20,0,1,0,23,0,22,0,51,0,68,0\n16,0,30,0,55,0,12,0,49,0,2,0\n58,0,17,0,52,0,33,0,13,0,56,0\n28,0,29,0,59,0,10,0,62,0,38,0\n54,0,45,0,64,0,31,0,19,0,37,0\n11,0,67,0,20,0,5,0,41,0,14,0\n9,0,4,0,49,0,51,0,24,0,15,0\n52,0,6,0,55,0,50,0,3,0,60,0\n18,0,46,0,30,0,68,0,10,0,39,0\n65,0,33,0,25,0,64,0,59,0,16,0\n1,0,19,0,21,0,57,0,56,0,61,0\n13,0,22,0,62,0,42,0,69,0,27,0\n32,0,48,0,34,0,63,0,28,0,31,0\n29,0,66,0,45,0,7,0,12,0,36,0\n44,0,38,0,43,0,40,0,54,0,53,0\n37,0,2,0,17,0,47,0,35,0,58,0\n8,0,26,0,59,0,23,0,60,0,24,0\n"
  },
  {
    "path": "schedules/6_1.csv",
    "content": "2,0,3,0,1,0,5,0,4,0,6,0\n"
  },
  {
    "path": "schedules/6_10.csv",
    "content": "4,0,6,0,5,0,2,0,3,0,1,0\n5,0,3,0,2,0,1,0,4,0,6,0\n6,0,2,0,3,0,4,0,5,0,1,0\n6,0,1,0,5,0,4,0,3,0,2,0\n1,0,2,0,4,0,5,0,6,0,3,0\n2,0,5,0,4,0,6,0,1,0,3,0\n1,0,6,0,2,0,3,0,5,0,4,0\n3,0,1,0,5,0,2,0,4,0,6,0\n3,0,4,0,6,0,5,0,2,0,1,0\n3,0,1,0,4,0,2,0,5,0,6,0\n"
  },
  {
    "path": "schedules/6_11.csv",
    "content": "2,0,4,0,6,0,5,0,3,0,1,0\n5,0,4,0,6,0,2,0,1,0,3,0\n1,0,5,0,2,0,3,0,6,0,4,0\n3,0,5,0,2,0,6,0,1,0,4,0\n6,0,1,0,5,0,2,0,4,0,3,0\n5,0,4,0,2,0,6,0,1,0,3,0\n6,0,2,0,3,0,1,0,5,0,4,0\n1,0,2,0,6,0,4,0,3,0,5,0\n4,0,3,0,1,0,5,0,6,0,2,0\n3,0,6,0,5,0,4,0,2,0,1,0\n4,0,3,0,1,0,2,0,6,0,5,0\n"
  },
  {
    "path": "schedules/6_12.csv",
    "content": "1,0,6,0,2,0,3,0,5,0,4,0\n6,0,3,0,4,0,5,0,1,0,2,0\n4,0,5,0,1,0,6,0,3,0,2,0\n4,0,6,0,2,0,3,0,1,0,5,0\n1,0,2,0,3,0,5,0,4,0,6,0\n2,0,5,0,6,0,4,0,1,0,3,0\n5,0,3,0,6,0,2,0,4,0,1,0\n4,0,2,0,5,0,3,0,1,0,6,0\n5,0,2,0,3,0,6,0,4,0,1,0\n1,0,4,0,3,0,2,0,6,0,5,0\n1,0,6,0,5,0,3,0,2,0,4,0\n6,0,4,0,1,0,2,0,3,0,5,0\n"
  },
  {
    "path": "schedules/6_13.csv",
    "content": "4,0,6,0,2,0,3,0,5,0,1,0\n4,0,2,0,3,0,6,0,5,0,1,0\n1,0,3,0,2,0,5,0,4,0,6,0\n1,0,6,0,5,0,3,0,4,0,2,0\n2,0,3,0,5,0,6,0,4,0,1,0\n1,0,3,0,6,0,2,0,4,0,5,0\n2,0,1,0,5,0,6,0,3,0,4,0\n3,0,5,0,4,0,1,0,6,0,2,0\n4,0,1,0,6,0,2,0,5,0,3,0\n5,0,2,0,1,0,4,0,3,0,6,0\n5,0,6,0,3,0,1,0,2,0,4,0\n5,0,1,0,4,0,6,0,2,0,3,0\n3,0,1,0,4,0,5,0,6,0,2,0\n"
  },
  {
    "path": "schedules/6_14.csv",
    "content": "6,0,2,0,5,0,1,0,3,0,4,0\n6,0,5,0,3,0,1,0,2,0,4,0\n2,0,3,0,4,0,1,0,5,0,6,0\n1,0,6,0,5,0,2,0,3,0,4,0\n3,0,6,0,2,0,5,0,4,0,1,0\n1,0,2,0,5,0,6,0,4,0,3,0\n4,0,5,0,3,0,2,0,1,0,6,0\n5,0,1,0,3,0,4,0,6,0,2,0\n6,0,3,0,1,0,4,0,5,0,2,0\n5,0,4,0,6,0,3,0,2,0,1,0\n5,0,4,0,2,0,3,0,6,0,1,0\n4,0,1,0,3,0,2,0,6,0,5,0\n2,0,1,0,4,0,3,0,5,0,6,0\n4,0,1,0,6,0,3,0,2,0,5,0\n"
  },
  {
    "path": "schedules/6_2.csv",
    "content": "5,0,1,0,4,0,2,0,6,0,3,0\n1,0,3,0,2,0,4,0,5,0,6,0\n"
  },
  {
    "path": "schedules/6_3.csv",
    "content": "1,0,3,0,6,0,5,0,2,0,4,0\n2,0,4,0,1,0,6,0,5,0,3,0\n4,0,1,0,5,0,3,0,6,0,2,0\n"
  },
  {
    "path": "schedules/6_4.csv",
    "content": "5,0,2,0,1,0,6,0,3,0,4,0\n4,0,5,0,3,0,1,0,2,0,6,0\n3,0,1,0,6,0,2,0,4,0,5,0\n3,0,6,0,2,0,1,0,5,0,4,0\n"
  },
  {
    "path": "schedules/6_5.csv",
    "content": "1,0,2,0,5,0,4,0,6,0,3,0\n6,0,3,0,5,0,4,0,2,0,1,0\n6,0,1,0,4,0,3,0,5,0,2,0\n1,0,5,0,3,0,2,0,4,0,6,0\n2,0,3,0,6,0,5,0,4,0,1,0\n"
  },
  {
    "path": "schedules/6_6.csv",
    "content": "3,0,2,0,1,0,4,0,5,0,6,0\n5,0,3,0,4,0,6,0,2,0,1,0\n2,0,4,0,6,0,3,0,1,0,5,0\n1,0,5,0,2,0,6,0,3,0,4,0\n2,0,6,0,5,0,4,0,1,0,3,0\n1,0,6,0,3,0,5,0,4,0,2,0\n"
  },
  {
    "path": "schedules/6_7.csv",
    "content": "2,0,1,0,4,0,5,0,6,0,3,0\n3,0,1,0,5,0,2,0,4,0,6,0\n6,0,2,0,1,0,5,0,4,0,3,0\n3,0,6,0,4,0,5,0,2,0,1,0\n6,0,2,0,5,0,3,0,4,0,1,0\n4,0,5,0,6,0,1,0,3,0,2,0\n4,0,5,0,2,0,1,0,3,0,6,0\n"
  },
  {
    "path": "schedules/6_8.csv",
    "content": "4,0,5,0,1,0,6,0,2,0,3,0\n6,0,3,0,5,0,2,0,4,0,1,0\n3,0,6,0,4,0,2,0,1,0,5,0\n2,0,6,0,1,0,5,0,3,0,4,0\n1,0,5,0,6,0,3,0,4,0,2,0\n4,0,1,0,3,0,5,0,2,0,6,0\n6,0,4,0,2,0,1,0,3,0,5,0\n5,0,2,0,3,0,4,0,1,0,6,0\n"
  },
  {
    "path": "schedules/6_9.csv",
    "content": "3,0,6,0,1,0,2,0,4,0,5,0\n5,0,2,0,6,0,4,0,1,0,3,0\n1,0,2,0,4,0,6,0,5,0,3,0\n4,0,6,0,3,0,2,0,5,0,1,0\n2,0,1,0,6,0,3,0,4,0,5,0\n3,0,2,0,4,0,5,0,1,0,6,0\n1,0,3,0,5,0,6,0,4,0,2,0\n4,0,5,0,1,0,6,0,3,0,2,0\n5,0,3,0,2,0,1,0,6,0,4,0\n"
  },
  {
    "path": "schedules/70_1.csv",
    "content": "65,0,32,0,10,0,18,0,26,0,52,0\n22,0,47,0,17,0,48,0,3,0,38,0\n59,0,67,0,36,0,21,0,40,0,8,0\n44,0,1,0,58,0,57,0,53,0,42,0\n54,0,66,0,6,0,7,0,39,0,30,0\n56,0,64,0,33,0,28,0,45,0,5,0\n23,0,13,0,34,0,49,0,2,0,35,0\n4,0,41,0,16,0,50,0,46,0,14,0\n55,0,19,0,12,0,68,0,31,0,20,0\n51,0,62,0,61,0,15,0,70,0,24,0\n25,0,69,0,63,0,60,0,27,0,43,0\n11,0,37,0,48,1,29,0,9,0,47,1\n"
  },
  {
    "path": "schedules/70_10.csv",
    "content": "42,0,5,0,40,0,36,0,52,0,28,0\n11,0,22,0,7,0,14,0,29,0,64,0\n8,0,55,0,44,0,53,0,13,0,6,0\n43,0,62,0,45,0,31,0,24,0,70,0\n67,0,2,0,9,0,30,0,59,0,49,0\n58,0,32,0,1,0,68,0,23,0,41,0\n39,0,20,0,48,0,21,0,17,0,26,0\n57,0,37,0,50,0,54,0,18,0,63,0\n38,0,61,0,69,0,47,0,3,0,25,0\n4,0,10,0,19,0,27,0,35,0,66,0\n60,0,16,0,65,0,56,0,12,0,34,0\n51,0,15,0,39,0,33,0,46,0,62,0\n26,0,7,0,59,0,18,0,36,0,43,0\n61,0,17,0,50,0,22,0,42,0,6,0\n14,0,21,0,47,0,67,0,45,0,55,0\n58,0,64,0,9,0,40,0,12,0,19,0\n23,0,70,0,33,0,65,0,27,0,37,0\n60,0,11,0,10,0,25,0,20,0,52,0\n35,0,53,0,51,0,16,0,31,0,28,0\n8,0,24,0,54,0,49,0,1,0,15,0\n3,0,32,0,34,0,44,0,57,0,5,0\n2,0,41,0,30,0,29,0,13,0,69,0\n46,0,48,0,56,0,63,0,4,0,68,0\n38,0,23,0,52,0,66,0,9,0,53,0\n62,1,21,0,12,0,1,1,10,0,42,0\n67,0,35,0,5,0,61,0,15,0,43,0\n45,0,14,0,27,0,18,0,60,0,39,0\n65,0,11,0,63,0,32,0,36,0,51,0\n34,0,29,0,48,0,38,0,59,0,13,0\n64,0,19,0,8,0,50,0,41,0,47,0\n17,0,30,0,25,0,31,0,57,0,56,0\n20,0,37,0,16,0,24,0,3,0,7,0\n70,0,68,0,44,0,22,0,69,0,33,0\n55,0,2,0,66,0,54,0,40,0,46,0\n28,0,26,0,6,0,58,0,4,0,49,0\n12,0,50,0,15,0,45,0,30,0,36,0\n18,0,35,0,65,0,9,0,21,0,25,0\n32,0,47,0,59,0,37,0,10,0,17,0\n1,0,22,0,31,0,48,0,67,0,40,0\n63,0,49,0,44,0,16,0,27,0,5,0\n64,0,13,0,4,0,54,0,20,0,62,0\n69,0,56,0,6,0,52,0,24,0,29,0\n38,0,57,0,60,0,46,0,58,0,7,0\n34,0,51,0,68,0,14,0,66,0,43,0\n19,0,11,0,26,0,53,0,42,0,33,0\n41,0,55,0,28,0,3,0,61,0,70,0\n39,0,23,0,10,0,8,0,2,0,36,0\n52,0,13,0,27,0,67,0,12,0,46,0\n40,0,51,0,47,0,29,0,50,0,49,0\n42,0,38,0,44,0,18,0,31,0,4,0\n25,0,15,0,66,0,70,0,7,0,32,0\n45,0,69,0,26,0,65,0,8,0,57,0\n33,0,54,0,59,0,20,0,41,0,60,0\n68,0,3,0,62,0,35,0,11,0,2,0\n22,0,5,0,19,0,56,0,23,0,55,0\n61,0,1,0,34,0,39,0,53,0,30,0\n14,0,63,0,28,0,17,0,9,0,24,0\n58,0,43,0,37,0,16,0,21,0,64,0\n48,0,32,0,18,0,6,0,2,0,12,0\n31,0,7,0,69,0,55,0,50,0,10,0\n65,0,52,0,49,0,13,0,61,0,22,0\n40,0,23,0,35,0,45,0,20,0,34,0\n38,0,64,0,24,0,5,0,68,0,26,0\n58,0,54,0,11,0,27,0,56,0,39,0\n36,0,46,0,53,0,3,0,48,0,17,0\n62,0,6,0,63,0,67,0,25,0,19,0\n28,0,8,0,33,0,30,0,66,0,16,0\n4,0,21,0,57,0,51,0,70,0,59,0\n29,0,41,0,42,0,37,0,14,0,15,0\n1,0,44,0,60,0,47,0,43,0,9,0\n56,0,3,0,53,0,45,0,49,0,64,0\n24,0,48,0,55,0,58,0,65,0,25,0\n17,0,12,0,7,0,5,0,54,0,23,0\n41,0,63,0,70,0,10,0,40,0,38,0\n18,0,29,0,61,0,20,0,68,0,8,0\n67,0,37,0,30,0,4,0,60,0,51,0\n27,0,33,0,9,0,6,0,36,0,34,0\n69,0,1,0,46,0,35,0,19,0,28,0\n50,0,62,0,14,0,59,0,44,0,52,0\n57,0,43,0,42,0,39,0,13,0,66,0\n15,0,16,0,22,0,26,0,2,0,47,0\n31,0,21,0,49,0,11,0,32,0,41,0\n51,0,19,0,37,0,48,0,45,0,38,0\n3,0,52,0,54,0,8,0,34,0,58,0\n20,0,70,0,36,0,14,0,56,0,1,0\n28,0,57,0,25,0,22,0,43,0,12,0\n16,0,4,0,9,0,39,0,32,0,55,0\n2,0,21,0,7,0,61,0,63,0,33,0\n6,0,40,0,27,0,15,0,59,0,68,0\n62,0,47,0,10,0,65,0,5,0,53,0\n13,0,50,0,60,0,26,0,35,0,24,0\n67,0,66,0,18,0,69,0,17,0,11,0\n44,0,46,0,30,0,42,0,64,0,23,0\n29,0,39,0,59,0,31,0,63,0,12,0\n22,0,41,0,45,0,4,0,62,0,7,0\n25,0,68,0,36,0,49,0,19,0,16,0\n34,0,47,0,55,0,18,0,11,0,24,0\n9,0,46,0,10,0,61,0,54,0,26,0\n13,0,31,0,5,0,66,0,1,0,37,0\n23,0,69,0,53,0,15,0,21,0,60,0\n17,0,58,0,70,0,51,0,29,0,44,0\n43,0,56,0,67,0,42,0,8,0,32,0\n33,0,52,0,48,0,35,0,57,0,64,0\n30,0,40,0,3,0,65,0,6,0,14,0\n2,0,20,0,27,0,50,0,28,0,38,0\n24,0,36,0,66,0,41,0,21,0,44,0\n12,0,49,0,26,0,69,0,37,0,34,0\n42,0,58,0,45,0,63,0,1,0,59,0\n16,0,61,0,14,0,57,0,62,0,23,0\n25,0,4,0,53,0,33,0,50,0,40,0\n15,0,17,0,2,0,19,0,60,0,52,0\n39,0,68,0,65,0,28,0,67,0,7,0\n13,0,51,0,56,0,3,0,10,0,18,0\n6,0,31,0,43,0,46,0,20,0,47,0\n8,0,11,0,70,0,48,0,9,0,5,0\n30,0,32,0,54,0,38,0,35,0,22,0\n55,0,64,0,62,0,29,0,27,0,1,0\n"
  },
  {
    "path": "schedules/70_11.csv",
    "content": "70,0,4,0,51,0,7,0,34,0,18,0\n22,0,12,0,5,0,42,0,64,0,13,0\n19,0,8,0,2,0,6,0,46,0,28,0\n36,0,37,0,35,0,21,0,63,0,16,0\n56,0,68,0,29,0,38,0,17,0,59,0\n65,0,60,0,30,0,55,0,3,0,11,0\n9,0,32,0,27,0,67,0,15,0,54,0\n52,0,25,0,23,0,24,0,57,0,69,0\n44,0,61,0,33,0,26,0,14,0,1,0\n41,0,49,0,20,0,31,0,39,0,62,0\n45,0,50,0,47,0,43,0,58,0,48,0\n10,0,40,0,18,0,66,0,53,0,22,0\n67,0,21,0,24,0,5,0,42,0,30,0\n1,0,4,0,56,0,26,0,57,0,19,0\n55,0,16,0,38,0,49,0,52,0,59,0\n8,0,45,0,54,0,23,0,36,0,64,0\n39,0,13,0,66,0,6,0,25,0,27,0\n11,0,63,0,7,0,12,0,47,0,68,0\n70,0,35,0,41,0,3,0,58,0,17,0\n53,0,14,0,46,0,69,0,60,0,43,0\n2,0,9,0,20,0,50,0,51,0,37,0\n34,0,29,0,31,0,44,0,32,0,28,0\n33,0,15,0,65,0,61,0,48,0,62,0\n40,0,52,0,47,0,10,0,49,0,12,0\n8,1,69,0,16,0,67,1,66,0,11,0\n56,1,42,0,53,0,7,1,37,0,2,0\n70,0,14,0,19,0,32,0,63,0,13,0\n58,0,26,0,65,0,38,0,22,0,39,0\n62,0,64,0,43,0,27,0,34,0,57,0\n28,0,25,0,29,0,9,0,18,0,21,0\n54,0,41,0,51,0,48,0,55,0,4,0\n33,0,50,0,5,0,45,0,60,0,17,0\n20,0,24,0,59,0,10,0,6,0,44,0\n23,0,1,0,15,0,31,0,35,0,30,0\n36,0,40,0,3,0,61,0,46,0,68,0\n9,0,37,0,43,0,22,0,41,0,52,0\n28,0,54,0,21,0,47,0,17,0,70,0\n10,0,33,0,51,0,19,0,16,0,42,0\n67,0,60,0,27,0,49,0,4,0,35,0\n58,0,64,0,68,0,13,0,53,0,26,0\n48,0,29,0,3,0,66,0,59,0,14,0\n65,0,1,0,7,0,23,0,40,0,20,0\n55,0,61,0,25,0,38,0,45,0,31,0\n6,0,62,0,18,0,36,0,5,0,69,0\n39,0,34,0,63,0,50,0,15,0,8,0\n2,0,44,0,57,0,11,0,32,0,30,0\n12,0,24,0,48,0,56,0,46,0,9,0\n43,0,29,0,67,0,40,0,19,0,60,0\n54,0,49,0,17,0,25,0,58,0,51,0\n69,0,28,0,41,0,26,0,33,0,36,0\n14,0,30,0,38,0,34,0,20,0,10,0\n35,0,66,0,46,0,56,0,44,0,64,0\n16,0,7,0,39,0,24,0,2,0,62,0\n57,0,31,0,63,0,3,0,42,0,45,0\n23,0,27,0,11,0,6,0,50,0,61,0\n32,0,12,0,59,0,18,0,65,0,37,0\n5,0,52,0,4,0,53,0,70,0,15,0\n8,0,55,0,68,0,1,0,22,0,21,0\n47,0,57,0,38,0,13,0,51,0,67,0\n42,0,25,0,26,0,62,0,29,0,7,0\n6,0,31,0,17,0,16,0,12,0,14,0\n24,0,64,0,41,0,70,0,65,0,50,0\n66,0,23,0,49,0,19,0,32,0,68,0\n3,0,30,0,44,0,13,0,9,0,36,0\n54,0,60,0,58,0,8,0,18,0,52,0\n10,0,4,0,61,0,46,0,21,0,43,0\n2,0,15,0,63,0,69,0,40,0,55,0\n45,0,22,0,28,0,56,0,27,0,20,0\n34,0,53,0,47,0,59,0,33,0,35,0\n37,0,1,0,48,0,11,0,5,0,39,0\n51,0,21,0,7,0,43,0,66,0,3,0\n60,0,50,0,10,0,70,0,32,0,62,0\n58,0,38,0,24,0,19,0,69,0,27,0\n42,0,46,0,55,0,18,0,23,0,26,0\n45,0,39,0,30,0,35,0,29,0,12,0\n9,0,6,0,47,0,53,0,31,0,65,0\n40,0,17,0,37,0,8,0,4,0,13,0\n25,0,2,0,36,0,48,0,22,0,34,0\n49,0,57,0,5,0,54,0,33,0,14,0\n59,0,15,0,64,0,1,0,11,0,41,0\n61,0,52,0,63,0,67,0,56,0,28,0\n68,0,16,0,4,0,44,0,20,0,65,0\n8,0,66,0,26,0,30,0,24,0,70,0\n51,0,27,0,12,0,36,0,10,0,29,0\n37,0,25,0,3,0,15,0,19,0,47,0\n13,0,62,0,11,0,46,0,52,0,45,0\n69,0,32,0,21,0,20,0,39,0,64,0\n42,0,50,0,1,0,28,0,49,0,38,0\n7,0,40,0,35,0,5,0,55,0,9,0\n43,0,33,0,68,0,18,0,2,0,31,0\n23,0,44,0,17,0,63,0,48,0,53,0\n16,0,59,0,22,0,67,0,61,0,57,0\n34,0,6,0,54,0,56,0,41,0,60,0\n14,0,28,0,11,0,58,0,40,0,4,0\n69,0,46,0,37,0,49,0,29,0,65,0\n55,0,20,0,50,0,25,0,12,0,66,0\n53,0,19,0,17,0,36,0,57,0,39,0\n22,0,9,0,64,0,38,0,33,0,63,0\n27,0,14,0,18,0,7,0,41,0,47,0\n34,0,32,0,8,0,3,0,26,0,5,0\n56,0,59,0,62,0,58,0,21,0,23,0\n10,0,70,0,45,0,2,0,67,0,1,0\n35,0,52,0,6,0,48,0,30,0,68,0\n13,0,31,0,61,0,24,0,51,0,60,0\n43,0,15,0,42,0,44,0,16,0,54,0\n38,0,53,0,12,0,62,0,3,0,8,0\n63,0,5,0,56,0,25,0,10,0,65,0\n55,0,67,0,18,0,64,0,17,0,14,0\n60,0,48,0,28,0,68,0,57,0,37,0\n19,0,30,0,7,0,54,0,22,0,50,0\n41,0,23,0,13,0,29,0,2,0,16,0\n34,0,9,0,58,0,61,0,66,0,1,0\n36,0,45,0,4,0,24,0,32,0,47,0\n27,0,40,0,31,0,59,0,21,0,70,0\n26,0,49,0,43,0,15,0,11,0,6,0\n52,0,39,0,33,0,44,0,51,0,46,0\n69,0,20,0,61,0,35,0,42,0,8,0\n19,0,10,0,9,0,68,0,45,0,34,0\n53,0,29,0,24,0,54,0,1,0,63,0\n21,0,49,0,15,0,57,0,7,0,12,0\n58,0,67,0,6,0,33,0,37,0,55,0\n22,0,51,0,62,0,14,0,35,0,44,0\n11,0,36,0,70,0,23,0,56,0,38,0\n59,0,5,0,13,0,43,0,28,0,39,0\n65,0,66,0,27,0,52,0,17,0,42,0\n40,0,46,0,30,0,25,0,41,0,32,0\n64,0,26,0,2,0,60,0,20,0,47,0\n16,0,3,0,50,0,69,0,4,0,18,0\n48,0,8,0,56,0,31,0,67,0,7,0\n"
  },
  {
    "path": "schedules/70_12.csv",
    "content": "9,0,55,0,26,0,11,0,45,0,68,0\n36,0,27,0,34,0,59,0,31,0,22,0\n70,0,54,0,57,0,8,0,50,0,21,0\n13,0,62,0,32,0,10,0,52,0,29,0\n37,0,46,0,43,0,3,0,53,0,47,0\n33,0,14,0,51,0,64,0,61,0,7,0\n42,0,1,0,69,0,35,0,58,0,19,0\n17,0,16,0,12,0,41,0,65,0,63,0\n15,0,25,0,60,0,24,0,2,0,44,0\n23,0,28,0,49,0,20,0,40,0,39,0\n66,0,4,0,30,0,48,0,5,0,6,0\n38,0,18,0,46,0,67,0,56,0,57,0\n47,0,10,0,54,0,45,0,16,0,14,0\n11,0,53,0,35,0,36,0,61,0,2,0\n62,0,12,0,68,0,31,0,25,0,40,0\n29,0,7,0,41,0,21,0,5,0,60,0\n42,0,38,0,20,0,27,0,8,0,3,0\n55,0,59,0,39,0,19,0,67,0,66,0\n43,0,48,0,22,0,56,0,69,0,65,0\n64,0,58,0,34,0,70,0,4,0,9,0\n44,0,18,0,30,0,49,0,17,0,13,0\n37,0,50,0,63,0,32,0,51,0,1,0\n26,0,6,0,28,0,52,0,33,0,24,0\n15,0,69,0,3,0,23,0,66,0,36,0\n2,0,21,0,47,0,48,0,27,0,61,0\n7,0,14,0,12,0,43,0,55,0,29,0\n9,0,35,0,18,0,54,0,25,0,63,0\n62,0,56,0,39,0,41,0,50,0,33,0\n15,0,59,0,6,0,10,0,58,0,5,0\n19,0,52,0,20,0,65,0,34,0,60,0\n4,0,11,0,22,0,28,0,57,0,32,0\n37,0,44,0,8,0,31,0,23,0,26,0\n42,0,49,0,64,0,38,0,68,0,24,0\n67,0,1,0,16,0,53,0,13,0,70,0\n45,0,17,0,30,0,46,0,51,0,40,0\n32,0,6,0,50,0,35,0,12,0,36,0\n56,0,21,0,11,0,3,0,10,0,63,0\n49,0,5,0,37,0,69,0,25,0,27,0\n64,0,20,0,29,0,59,0,48,0,1,0\n17,0,2,0,15,0,9,0,43,0,16,0\n26,0,44,0,52,0,53,0,7,0,57,0\n19,0,18,0,40,0,51,0,41,0,70,0\n31,0,67,0,54,0,24,0,65,0,30,0\n60,0,39,0,28,0,8,0,68,0,14,0\n66,0,34,0,45,0,58,0,38,0,61,0\n42,0,13,0,46,0,23,0,22,0,55,0\n4,0,47,0,17,0,33,0,62,0,15,0\n2,0,49,0,59,0,6,0,1,0,12,0\n8,0,36,0,28,0,51,0,63,0,67,0\n5,0,39,0,27,0,70,0,18,0,32,0\n45,0,65,0,10,0,60,0,37,0,64,0\n34,0,62,0,29,0,23,0,35,0,30,0\n48,0,38,0,9,0,55,0,14,0,41,0\n26,0,3,0,24,0,16,0,13,0,61,0\n58,0,57,0,42,0,40,0,33,0,43,0\n69,0,11,0,19,0,7,0,31,0,47,0\n50,0,54,0,56,0,68,0,44,0,53,0\n20,0,21,0,46,0,25,0,52,0,4,0\n66,0,64,0,14,0,22,0,67,0,18,0\n29,0,6,0,61,0,39,0,42,0,37,0\n23,0,24,0,10,0,9,0,57,0,12,0\n50,0,49,0,65,0,7,0,15,0,34,0\n36,0,30,0,54,0,26,0,4,0,19,0\n70,0,63,0,68,0,69,0,43,0,20,0\n55,0,25,0,8,0,1,0,22,0,17,0\n44,0,59,0,38,0,47,0,51,0,11,0\n58,0,2,0,41,0,13,0,52,0,3,0\n40,0,35,0,21,0,56,0,5,0,66,0\n32,0,31,0,33,0,60,0,46,0,48,0\n53,0,27,0,16,0,45,0,62,0,28,0\n50,0,57,0,11,0,14,0,20,0,65,0\n6,0,41,0,22,0,44,0,47,0,70,0\n67,0,61,0,5,0,68,0,2,0,23,0\n56,0,43,0,25,0,26,0,59,0,34,0\n36,0,21,0,37,0,9,0,49,0,33,0\n7,0,19,0,32,0,13,0,8,0,64,0\n38,0,35,0,39,0,52,0,48,0,17,0\n66,0,46,0,69,0,62,0,51,0,54,0\n31,0,53,0,24,0,63,0,29,0,58,0\n10,0,1,0,30,0,18,0,28,0,3,0\n55,0,60,0,27,0,40,0,4,0,16,0\n12,0,42,0,70,0,15,0,45,0,52,0\n19,0,62,0,22,0,43,0,38,0,5,0\n57,0,13,0,48,0,6,0,68,0,36,0\n69,0,50,0,61,0,30,0,9,0,59,0\n64,0,28,0,31,0,55,0,3,0,21,0\n60,0,67,0,4,0,49,0,56,0,12,0\n35,0,8,0,16,0,33,0,37,0,18,0\n53,0,20,0,41,0,42,0,15,0,10,0\n65,0,47,0,26,0,2,0,32,0,40,0\n63,0,24,0,34,0,46,0,14,0,44,0\n51,0,39,0,7,0,1,0,25,0,58,0\n23,0,27,0,29,0,54,0,17,0,11,0\n66,0,13,0,33,0,45,0,20,0,31,0\n52,0,22,0,40,0,10,0,50,0,9,0\n16,0,15,0,21,0,19,0,6,0,46,0\n69,0,57,0,39,0,2,0,64,0,56,0\n54,0,61,0,43,0,60,0,1,0,38,0\n12,0,34,0,48,0,28,0,53,0,51,0\n5,0,14,0,42,0,26,0,36,0,17,0\n59,0,63,0,7,0,4,0,37,0,62,0\n68,0,67,0,41,0,27,0,45,0,32,0\n3,0,70,0,66,0,29,0,25,0,44,0\n55,0,35,0,47,0,30,0,49,0,8,0\n24,0,58,0,18,0,65,0,23,0,11,0\n5,0,51,0,31,0,20,0,56,0,16,0\n9,0,1,0,21,0,26,0,62,0,42,0\n2,0,70,0,7,0,54,0,28,0,66,0\n40,0,60,0,10,0,69,0,38,0,36,0\n61,0,8,0,65,0,46,0,4,0,29,0\n41,0,23,0,59,0,14,0,53,0,49,0\n19,0,45,0,3,0,24,0,17,0,50,0\n52,0,6,0,43,0,18,0,27,0,64,0\n33,0,68,0,58,0,22,0,12,0,30,0\n11,0,15,0,63,0,13,0,39,0,25,0\n32,0,37,0,47,0,34,0,55,0,57,0\n67,0,44,0,10,0,48,0,35,0,26,0\n31,0,4,0,18,0,2,0,42,0,50,0\n23,0,56,0,14,0,27,0,19,0,1,0\n33,0,65,0,5,0,53,0,38,0,63,0\n25,0,30,0,34,0,64,0,57,0,41,0\n52,0,51,0,16,0,49,0,22,0,29,0\n28,0,13,0,67,0,69,0,9,0,47,0\n40,0,11,0,48,0,37,0,15,0,54,0\n70,0,61,0,20,0,36,0,62,0,55,0\n43,0,12,0,45,0,39,0,21,0,44,0\n35,0,68,0,59,0,7,0,24,0,46,0\n66,0,17,0,58,0,8,0,60,0,32,0\n3,0,29,0,40,0,6,0,34,0,67,0\n70,0,52,0,14,0,30,0,37,0,56,0\n25,0,10,0,49,0,19,0,61,0,33,0\n24,0,4,0,36,0,47,0,39,0,43,0\n46,0,1,0,68,0,66,0,11,0,41,0\n60,0,26,0,58,0,18,0,62,0,48,0\n32,0,65,0,44,0,59,0,42,0,28,0\n45,0,7,0,22,0,2,0,63,0,20,0\n38,0,64,0,23,0,50,0,16,0,31,0\n15,0,51,0,13,0,57,0,27,0,35,0\n53,0,55,0,17,0,69,0,6,0,21,0\n8,0,54,0,9,0,12,0,5,0,3,0\n"
  },
  {
    "path": "schedules/70_13.csv",
    "content": "60,0,47,0,1,0,10,0,39,0,7,0\n48,0,38,0,18,0,23,0,21,0,69,0\n20,0,14,0,28,0,40,0,36,0,62,0\n58,0,57,0,55,0,30,0,8,0,9,0\n13,0,4,0,44,0,63,0,35,0,17,0\n64,0,22,0,53,0,24,0,11,0,65,0\n43,0,2,0,49,0,32,0,15,0,52,0\n37,0,70,0,19,0,3,0,50,0,26,0\n29,0,27,0,54,0,45,0,31,0,68,0\n12,0,59,0,46,0,34,0,51,0,16,0\n5,0,67,0,33,0,6,0,42,0,56,0\n25,0,66,0,22,0,61,0,41,0,13,0\n53,0,38,0,17,0,70,0,57,0,26,0\n15,0,48,0,43,0,7,0,24,0,37,0\n16,0,21,0,8,0,34,0,10,0,23,0\n35,0,52,0,9,0,47,0,64,0,45,0\n28,0,69,0,27,0,29,0,2,0,4,0\n49,0,18,0,55,0,1,0,6,0,19,0\n31,0,61,0,46,0,59,0,56,0,14,0\n58,0,39,0,40,0,65,0,67,0,44,0\n30,0,32,0,25,0,33,0,3,0,60,0\n66,0,50,0,62,0,42,0,51,0,63,0\n11,0,12,0,54,0,5,0,41,0,20,0\n36,0,9,0,48,0,68,0,56,0,26,0\n39,1,37,0,28,0,17,1,34,0,69,0\n18,0,10,0,52,0,59,0,65,0,70,0\n35,0,45,0,8,0,62,0,21,0,43,0\n11,0,61,0,27,0,54,0,60,0,23,0\n47,0,53,0,6,0,20,0,64,0,50,0\n14,0,33,0,16,0,55,0,2,0,19,0\n1,0,5,0,66,0,44,0,46,0,32,0\n58,0,22,0,51,0,57,0,29,0,25,0\n40,0,49,0,67,0,4,0,12,0,24,0\n30,0,15,0,38,0,68,0,36,0,13,0\n63,0,41,0,3,0,7,0,31,0,42,0\n14,0,65,0,61,0,70,0,35,0,48,0\n29,0,5,0,17,0,50,0,25,0,52,0\n46,0,62,0,47,0,18,0,2,0,22,0\n21,0,59,0,19,0,68,0,69,0,30,0\n49,0,36,0,28,0,58,0,33,0,45,0\n31,0,32,0,39,0,15,0,42,0,16,0\n60,0,34,0,26,0,40,0,44,0,55,0\n43,0,11,0,6,0,3,0,10,0,51,0\n20,0,54,0,63,0,9,0,37,0,1,0\n27,0,66,0,38,0,8,0,67,0,24,0\n23,0,13,0,57,0,41,0,64,0,4,0\n56,0,7,0,52,0,53,0,12,0,28,0\n62,0,17,0,58,0,43,0,31,0,47,0\n70,0,14,0,45,0,30,0,22,0,5,0\n32,0,34,0,18,0,38,0,20,0,25,0\n4,0,9,0,69,0,8,0,1,0,36,0\n24,0,64,0,3,0,63,0,60,0,21,0\n56,0,15,0,41,0,27,0,50,0,40,0\n57,0,59,0,2,0,66,0,37,0,42,0\n26,0,54,0,35,0,67,0,6,0,16,0\n11,0,51,0,44,0,19,0,48,0,7,0\n29,0,23,0,65,0,49,0,12,0,13,0\n68,0,61,0,53,0,33,0,46,0,39,0\n55,0,36,0,17,0,10,0,63,0,59,0\n56,0,24,0,34,0,1,0,18,0,35,0\n19,0,32,0,5,0,64,0,40,0,57,0\n13,0,47,0,42,0,21,0,27,0,37,0\n70,0,29,0,69,0,11,0,60,0,62,0\n12,0,10,0,44,0,22,0,33,0,9,0\n52,0,38,0,43,0,61,0,55,0,39,0\n4,0,49,0,50,0,66,0,54,0,7,0\n31,0,2,0,28,0,30,0,6,0,48,0\n15,0,14,0,26,0,41,0,8,0,25,0\n3,0,16,0,68,0,58,0,53,0,65,0\n23,0,20,0,45,0,46,0,67,0,51,0\n50,0,69,0,43,0,57,0,34,0,12,0\n55,0,35,0,66,0,36,0,29,0,22,0\n33,0,11,0,48,0,1,0,62,0,39,0\n25,0,70,0,15,0,47,0,28,0,59,0\n45,0,16,0,44,0,24,0,42,0,41,0\n65,0,20,0,30,0,56,0,17,0,27,0\n2,0,37,0,67,0,10,0,60,0,8,0\n58,0,23,0,7,0,54,0,14,0,52,0\n4,0,19,0,46,0,32,0,38,0,6,0\n40,0,13,0,18,0,9,0,3,0,31,0\n61,0,21,0,51,0,26,0,49,0,53,0\n64,0,5,0,2,0,63,0,68,0,39,0\n62,0,57,0,44,0,15,0,27,0,55,0\n41,0,23,0,52,0,33,0,19,0,35,0\n3,0,37,0,30,0,40,0,29,0,16,0\n7,0,9,0,13,0,46,0,70,0,24,0\n60,0,45,0,48,0,59,0,20,0,4,0\n38,0,28,0,26,0,5,0,43,0,65,0\n69,0,10,0,61,0,42,0,25,0,58,0\n14,0,63,0,47,0,34,0,49,0,6,0\n22,0,56,0,8,0,51,0,64,0,54,0\n12,0,1,0,31,0,36,0,21,0,53,0\n18,0,17,0,68,0,66,0,67,0,11,0\n50,0,10,0,13,0,32,0,45,0,28,0\n9,0,16,0,20,0,15,0,49,0,69,0\n60,0,56,0,19,0,43,0,22,0,63,0\n27,0,51,0,35,0,3,0,38,0,5,0\n11,0,42,0,36,0,52,0,46,0,34,0\n66,0,40,0,70,0,54,0,21,0,33,0\n8,0,59,0,29,0,39,0,47,0,41,0\n62,0,24,0,68,0,26,0,32,0,23,0\n4,0,65,0,7,0,55,0,31,0,25,0\n53,0,18,0,57,0,44,0,2,0,14,0\n64,0,30,0,67,0,1,0,48,0,50,0\n17,0,37,0,6,0,61,0,12,0,58,0\n22,0,68,0,42,0,40,0,63,0,28,0\n43,0,25,0,24,0,54,0,36,0,19,0\n10,0,33,0,2,0,38,0,34,0,29,0\n65,0,9,0,39,0,14,0,21,0,66,0\n52,0,51,0,6,0,69,0,67,0,13,0\n17,0,41,0,11,0,55,0,32,0,48,0\n8,0,46,0,20,0,70,0,3,0,44,0\n1,0,58,0,26,0,45,0,27,0,59,0\n12,0,64,0,7,0,30,0,62,0,61,0\n53,0,15,0,37,0,5,0,4,0,23,0\n16,0,60,0,57,0,47,0,56,0,18,0\n31,0,49,0,8,0,35,0,50,0,11,0\n46,0,40,0,54,0,10,0,17,0,48,0\n67,0,21,0,29,0,32,0,7,0,59,0\n43,0,42,0,14,0,13,0,64,0,1,0\n63,0,33,0,65,0,15,0,45,0,57,0\n28,0,23,0,6,0,44,0,60,0,9,0\n55,0,3,0,56,0,66,0,69,0,47,0\n35,0,68,0,25,0,37,0,20,0,12,0\n39,0,53,0,34,0,27,0,19,0,62,0\n70,0,30,0,2,0,51,0,41,0,49,0\n22,0,24,0,26,0,52,0,31,0,4,0\n36,0,50,0,5,0,18,0,16,0,61,0\n38,0,21,0,13,0,58,0,56,0,11,0\n19,0,10,0,45,0,12,0,15,0,66,0\n48,0,25,0,46,0,49,0,57,0,63,0\n65,0,32,0,47,0,54,0,8,0,69,0\n3,0,40,0,1,0,61,0,23,0,2,0\n67,0,9,0,59,0,29,0,43,0,53,0\n42,0,30,0,39,0,4,0,18,0,26,0\n62,0,41,0,34,0,5,0,6,0,58,0\n22,0,31,0,44,0,38,0,37,0,64,0\n70,0,27,0,7,0,36,0,35,0,16,0\n24,0,51,0,20,0,28,0,33,0,55,0\n68,0,52,0,60,0,14,0,50,0,17,0\n66,0,63,0,23,0,43,0,58,0,30,0\n59,0,62,0,49,0,56,0,44,0,38,0\n34,0,3,0,15,0,48,0,67,0,22,0\n69,0,33,0,64,0,26,0,5,0,7,0\n18,0,54,0,39,0,28,0,13,0,35,0\n4,0,51,0,47,0,14,0,11,0,68,0\n1,0,57,0,21,0,52,0,16,0,17,0\n29,0,31,0,10,0,19,0,20,0,61,0\n32,0,42,0,12,0,55,0,70,0,53,0\n24,0,50,0,9,0,2,0,27,0,25,0\n46,0,41,0,36,0,65,0,60,0,37,0\n6,0,8,0,39,0,40,0,45,0,17,0\n"
  },
  {
    "path": "schedules/70_14.csv",
    "content": "67,0,26,0,8,0,44,0,10,0,36,0\n40,0,62,0,59,0,42,0,48,0,34,0\n17,0,30,0,38,0,66,0,11,0,15,0\n31,0,32,0,57,0,21,0,20,0,24,0\n25,0,12,0,41,0,50,0,68,0,27,0\n55,0,49,0,70,0,22,0,18,0,3,0\n2,0,51,0,29,0,60,0,35,0,43,0\n47,0,61,0,14,0,28,0,63,0,37,0\n13,0,56,0,33,0,58,0,4,0,7,0\n46,0,1,0,5,0,9,0,39,0,23,0\n54,0,16,0,6,0,53,0,64,0,19,0\n45,0,69,0,36,0,65,0,52,0,48,0\n41,0,50,0,28,0,66,0,20,0,22,0\n61,0,44,0,4,0,18,0,11,0,51,0\n35,0,1,0,23,0,26,0,43,0,21,0\n15,0,39,0,63,0,13,0,10,0,31,0\n6,0,19,0,3,0,62,0,65,0,56,0\n27,0,34,0,30,0,52,0,14,0,16,0\n12,0,57,0,7,0,45,0,53,0,29,0\n55,0,42,0,9,0,17,0,60,0,70,0\n64,0,67,0,37,0,24,0,5,0,33,0\n68,0,59,0,69,0,49,0,47,0,32,0\n25,0,8,0,58,0,54,0,2,0,38,0\n40,0,21,0,29,0,46,0,16,0,66,0\n12,1,9,0,27,0,4,1,35,0,39,0\n48,1,7,0,44,0,28,1,15,0,55,0\n41,0,65,0,33,0,23,0,31,0,60,0\n32,0,51,0,34,0,22,0,58,0,56,0\n24,0,61,0,38,0,69,0,19,0,40,0\n46,0,53,0,42,0,30,0,50,0,43,0\n20,0,37,0,62,0,52,0,8,0,10,0\n54,0,11,0,70,0,47,0,13,0,63,0\n26,0,45,0,1,0,49,0,25,0,67,0\n2,0,18,0,68,0,6,0,5,0,14,0\n59,0,36,0,17,0,3,0,64,0,57,0\n62,0,53,0,10,0,55,0,21,0,60,0\n11,0,23,0,40,0,48,0,58,0,31,0\n29,0,25,0,34,0,37,0,24,0,49,0\n5,0,56,0,41,0,30,0,61,0,13,0\n28,0,9,0,26,0,68,0,6,0,7,0\n8,0,36,0,54,0,50,0,12,0,32,0\n46,0,69,0,38,0,27,0,63,0,4,0\n66,0,65,0,3,0,64,0,35,0,42,0\n43,0,39,0,16,0,45,0,15,0,18,0\n59,0,51,0,14,0,33,0,70,0,67,0\n57,0,47,0,1,0,22,0,19,0,52,0\n20,0,2,0,23,0,17,0,44,0,13,0\n63,0,49,0,21,0,41,0,64,0,8,0\n68,0,31,0,4,0,43,0,48,0,66,0\n5,0,28,0,16,0,62,0,32,0,33,0\n52,0,12,0,34,0,19,0,7,0,18,0\n14,0,40,0,46,0,44,0,57,0,15,0\n50,0,45,0,35,0,59,0,56,0,38,0\n67,0,22,0,61,0,29,0,58,0,11,0\n54,0,9,0,25,0,20,0,3,0,51,0\n55,0,39,0,24,0,36,0,65,0,2,0\n1,0,70,0,10,0,30,0,53,0,6,0\n27,0,69,0,37,0,26,0,42,0,17,0\n60,0,8,0,29,0,47,0,35,0,28,0\n15,0,61,0,49,0,23,0,67,0,50,0\n31,0,43,0,64,0,14,0,19,0,32,0\n21,0,52,0,6,0,51,0,12,0,38,0\n17,0,56,0,11,0,46,0,36,0,41,0\n65,0,27,0,44,0,9,0,58,0,53,0\n20,0,47,0,42,0,55,0,45,0,5,0\n18,0,66,0,13,0,34,0,59,0,26,0\n4,0,2,0,37,0,57,0,60,0,54,0\n70,0,48,0,68,0,7,0,24,0,10,0\n16,0,63,0,30,0,62,0,22,0,25,0\n33,0,3,0,40,0,1,0,39,0,69,0\n28,0,67,0,20,0,65,0,38,0,34,0\n45,0,52,0,66,0,14,0,60,0,41,0\n10,0,19,0,51,0,47,0,2,0,27,0\n5,0,8,0,59,0,31,0,17,0,6,0\n44,0,55,0,16,0,56,0,1,0,12,0\n64,0,62,0,13,0,69,0,22,0,53,0\n48,0,50,0,39,0,70,0,35,0,29,0\n15,0,7,0,25,0,4,0,32,0,36,0\n42,0,24,0,54,0,61,0,46,0,18,0\n37,0,58,0,23,0,3,0,68,0,63,0\n11,0,26,0,49,0,40,0,57,0,43,0\n33,0,21,0,50,0,30,0,9,0,45,0\n66,0,25,0,69,0,8,0,12,0,6,0\n22,0,44,0,47,0,17,0,52,0,24,0\n14,0,13,0,38,0,1,0,3,0,29,0\n43,0,63,0,36,0,5,0,27,0,20,0\n33,0,48,0,9,0,26,0,54,0,19,0\n60,0,58,0,39,0,57,0,16,0,59,0\n34,0,21,0,2,0,42,0,68,0,15,0\n51,0,30,0,7,0,23,0,49,0,62,0\n18,0,64,0,65,0,41,0,10,0,40,0\n53,0,28,0,31,0,56,0,67,0,46,0\n55,0,32,0,35,0,11,0,37,0,61,0\n70,0,5,0,22,0,4,0,21,0,19,0\n48,0,6,0,36,0,13,0,16,0,42,0\n57,0,30,0,24,0,7,0,8,0,43,0\n9,0,60,0,10,0,38,0,40,0,31,0\n17,0,51,0,61,0,39,0,14,0,26,0\n2,0,56,0,15,0,63,0,69,0,33,0\n53,0,4,0,47,0,66,0,34,0,35,0\n32,0,70,0,3,0,41,0,27,0,29,0\n64,0,50,0,11,0,37,0,1,0,18,0\n44,0,28,0,52,0,23,0,25,0,59,0\n62,0,68,0,55,0,67,0,54,0,45,0\n20,0,58,0,65,0,46,0,12,0,49,0\n17,0,41,0,63,0,40,0,7,0,35,0\n11,0,53,0,3,0,33,0,15,0,8,0\n43,0,38,0,44,0,34,0,39,0,37,0\n23,0,16,0,24,0,66,0,54,0,10,0\n21,0,9,0,47,0,48,0,64,0,2,0\n62,0,36,0,5,0,14,0,29,0,49,0\n18,0,56,0,60,0,25,0,1,0,20,0\n13,0,26,0,32,0,12,0,65,0,30,0\n46,0,19,0,59,0,69,0,55,0,51,0\n58,0,52,0,67,0,4,0,50,0,70,0\n22,0,27,0,31,0,45,0,6,0,61,0\n42,0,57,0,18,0,28,0,68,0,33,0\n9,0,49,0,66,0,37,0,32,0,56,0\n63,0,14,0,25,0,48,0,55,0,53,0\n4,0,15,0,30,0,20,0,29,0,59,0\n35,0,13,0,6,0,46,0,44,0,24,0\n26,0,57,0,38,0,70,0,41,0,62,0\n19,0,45,0,2,0,23,0,36,0,3,0\n69,0,50,0,60,0,34,0,5,0,11,0\n52,0,27,0,39,0,28,0,21,0,64,0\n42,0,31,0,8,0,16,0,1,0,51,0\n61,0,40,0,12,0,67,0,47,0,7,0\n54,0,22,0,17,0,43,0,68,0,65,0\n58,0,35,0,57,0,10,0,25,0,5,0\n56,0,6,0,49,0,11,0,21,0,39,0\n4,0,8,0,14,0,23,0,42,0,41,0\n50,0,7,0,16,0,47,0,3,0,37,0\n69,0,29,0,30,0,44,0,31,0,54,0\n60,0,22,0,48,0,67,0,38,0,27,0\n15,0,24,0,19,0,58,0,45,0,28,0\n32,0,40,0,17,0,52,0,53,0,13,0\n1,0,61,0,65,0,68,0,51,0,36,0\n34,0,10,0,55,0,12,0,33,0,66,0\n18,0,59,0,43,0,62,0,63,0,9,0\n20,0,46,0,64,0,26,0,70,0,2,0\n48,0,32,0,54,0,60,0,49,0,44,0\n19,0,13,0,39,0,68,0,8,0,30,0\n7,0,14,0,11,0,25,0,65,0,21,0\n37,0,22,0,12,0,59,0,31,0,15,0\n45,0,70,0,51,0,69,0,28,0,17,0\n33,0,16,0,64,0,35,0,20,0,61,0\n10,0,29,0,42,0,9,0,52,0,56,0\n4,0,1,0,66,0,24,0,62,0,2,0\n53,0,23,0,18,0,38,0,47,0,36,0\n55,0,40,0,27,0,57,0,50,0,5,0\n6,0,41,0,26,0,63,0,34,0,58,0\n67,0,3,0,10,0,43,0,46,0,32,0\n54,0,35,0,56,0,15,0,22,0,14,0\n23,0,47,0,12,0,42,0,39,0,62,0\n28,0,49,0,4,0,17,0,16,0,2,0\n31,0,52,0,29,0,26,0,18,0,55,0\n66,0,7,0,59,0,1,0,27,0,11,0\n41,0,48,0,24,0,51,0,53,0,37,0\n43,0,20,0,33,0,6,0,40,0,25,0\n38,0,58,0,68,0,64,0,30,0,36,0\n46,0,34,0,45,0,70,0,61,0,8,0\n21,0,67,0,57,0,69,0,9,0,13,0\n60,0,65,0,19,0,44,0,50,0,63,0\n3,0,12,0,28,0,5,0,4,0,48,0\n"
  },
  {
    "path": "schedules/70_2.csv",
    "content": "29,0,28,0,6,0,22,0,5,0,50,0\n12,0,48,0,58,0,15,0,47,0,43,0\n19,0,55,0,68,0,11,0,57,0,3,0\n60,0,59,0,27,0,64,0,30,0,2,0\n70,0,14,0,63,0,40,0,24,0,1,0\n4,0,34,0,38,0,23,0,25,0,41,0\n67,0,44,0,13,0,37,0,45,0,39,0\n26,0,33,0,61,0,49,0,56,0,69,0\n36,0,20,0,62,0,51,0,10,0,17,0\n65,0,35,0,46,0,54,0,42,0,32,0\n8,0,31,0,66,0,7,0,16,0,18,0\n52,0,9,0,40,0,53,0,21,0,6,0\n29,0,33,0,37,0,34,0,11,0,63,0\n3,0,43,0,14,0,20,0,50,0,4,0\n41,0,42,0,68,0,10,0,44,0,2,0\n67,0,30,0,70,0,22,0,8,0,26,0\n7,0,17,0,5,0,12,0,54,0,53,0\n49,0,36,0,1,0,60,0,32,0,9,0\n21,0,66,0,47,0,38,0,13,0,55,0\n62,0,16,0,52,0,58,0,23,0,28,0\n35,0,39,0,56,0,15,0,19,0,24,0\n27,0,25,0,18,0,69,0,45,0,65,0\n57,0,31,0,51,0,46,0,48,0,64,0\n61,0,47,1,41,1,59,0,21,1,38,1\n"
  },
  {
    "path": "schedules/70_3.csv",
    "content": "52,0,38,0,46,0,60,0,5,0,32,0\n20,0,61,0,62,0,48,0,6,0,51,0\n67,0,33,0,9,0,28,0,1,0,19,0\n4,0,25,0,13,0,50,0,37,0,10,0\n26,0,66,0,36,0,68,0,56,0,31,0\n14,0,21,0,16,0,44,0,29,0,43,0\n30,0,11,0,12,0,70,0,57,0,27,0\n18,0,54,0,15,0,45,0,59,0,22,0\n49,0,8,0,39,0,3,0,47,0,65,0\n34,0,53,0,63,0,7,0,58,0,17,0\n42,0,69,0,23,0,2,0,55,0,24,0\n41,0,64,0,27,0,40,0,35,0,51,0\n59,0,1,0,43,0,66,0,48,0,50,0\n14,0,22,0,4,0,8,0,30,0,61,0\n25,0,18,0,34,0,33,0,60,0,11,0\n45,0,28,0,7,0,21,0,49,0,52,0\n58,0,40,0,31,0,24,0,32,0,67,0\n62,0,65,0,56,0,37,0,23,0,41,0\n29,0,26,0,70,0,69,0,3,0,9,0\n10,0,55,0,19,0,15,0,5,0,63,0\n68,0,6,0,42,0,39,0,13,0,64,0\n20,0,47,0,17,0,16,0,46,0,12,0\n53,0,57,0,36,0,54,0,44,0,38,0\n35,0,56,0,50,0,2,0,34,0,49,0\n70,0,43,0,31,0,41,0,4,0,28,0\n24,0,60,0,68,0,45,0,30,0,1,0\n66,0,67,0,17,0,14,0,64,0,65,0\n59,0,37,0,61,0,26,0,42,0,63,0\n47,0,10,0,44,0,11,0,69,0,32,0\n8,0,51,0,7,0,19,0,29,0,38,0\n3,0,53,0,13,0,52,0,15,0,12,0\n35,0,21,0,54,0,58,0,20,0,33,0\n57,0,2,0,5,0,25,0,40,0,62,0\n48,0,55,0,39,0,18,0,16,0,27,0\n46,0,6,0,22,0,23,0,9,0,36,0\n"
  },
  {
    "path": "schedules/70_4.csv",
    "content": "69,0,24,0,30,0,42,0,54,0,19,0\n43,0,70,0,53,0,64,0,28,0,9,0\n40,0,7,0,67,0,8,0,48,0,2,0\n41,0,60,0,37,0,15,0,20,0,31,0\n22,0,46,0,16,0,25,0,52,0,55,0\n63,0,1,0,21,0,34,0,23,0,11,0\n5,0,29,0,3,0,32,0,44,0,13,0\n57,0,27,0,45,0,39,0,17,0,51,0\n59,0,58,0,18,0,65,0,56,0,10,0\n35,0,14,0,33,0,38,0,12,0,4,0\n62,0,26,0,68,0,50,0,36,0,61,0\n6,0,47,0,20,0,66,0,49,0,23,0\n8,0,27,0,44,0,31,0,24,0,55,0\n2,0,64,0,58,0,22,0,51,0,37,0\n59,0,17,0,11,0,30,0,52,0,28,0\n19,0,65,0,34,0,46,0,33,0,39,0\n38,0,42,0,61,0,67,0,13,0,15,0\n32,0,62,0,57,0,1,0,18,0,40,0\n3,0,41,0,43,0,45,0,36,0,14,0\n70,0,21,0,4,0,29,0,26,0,69,0\n56,0,47,0,9,0,25,0,7,0,12,0\n5,0,48,0,35,0,53,0,68,0,66,0\n60,0,49,0,50,0,16,0,10,0,54,0\n63,0,61,0,46,0,6,0,58,0,41,0\n43,1,15,0,18,0,22,1,69,0,33,0\n1,0,39,0,56,0,8,0,37,0,29,0\n24,0,17,0,32,0,36,0,35,0,47,0\n31,0,13,0,62,0,30,0,66,0,16,0\n2,0,68,0,44,0,54,0,70,0,25,0\n5,0,23,0,57,0,50,0,64,0,4,0\n55,0,59,0,48,0,6,0,9,0,19,0\n11,0,49,0,51,0,26,0,65,0,14,0\n10,0,12,0,34,0,67,0,3,0,53,0\n28,0,27,0,7,0,38,0,60,0,21,0\n45,0,20,0,40,0,63,0,52,0,42,0\n13,0,24,0,70,0,59,0,41,0,57,0\n48,0,54,0,11,0,43,0,47,0,29,0\n51,0,15,0,68,0,4,0,34,0,55,0\n33,0,56,0,2,0,53,0,62,0,60,0\n7,0,52,0,37,0,65,0,44,0,50,0\n14,0,66,0,21,0,8,0,46,0,9,0\n3,0,35,0,30,0,40,0,27,0,22,0\n38,0,25,0,64,0,39,0,10,0,63,0\n28,0,12,0,58,0,45,0,49,0,32,0\n16,0,69,0,61,0,5,0,1,0,20,0\n19,0,36,0,31,0,18,0,23,0,67,0\n26,0,42,0,22,0,6,0,17,0,43,0\n"
  },
  {
    "path": "schedules/70_5.csv",
    "content": "11,0,31,0,43,0,7,0,51,0,64,0\n53,0,32,0,49,0,8,0,24,0,50,0\n61,0,41,0,65,0,22,0,13,0,2,0\n35,0,48,0,47,0,67,0,52,0,66,0\n3,0,19,0,18,0,33,0,55,0,40,0\n5,0,6,0,39,0,37,0,9,0,38,0\n12,0,54,0,1,0,44,0,27,0,29,0\n59,0,15,0,16,0,60,0,57,0,69,0\n20,0,26,0,4,0,10,0,25,0,17,0\n45,0,28,0,34,0,63,0,62,0,58,0\n42,0,30,0,56,0,14,0,36,0,21,0\n46,0,23,0,66,0,68,0,70,0,6,0\n8,0,16,0,37,0,1,0,67,0,2,0\n17,0,61,0,60,0,31,0,54,0,3,0\n43,0,26,0,57,0,40,0,65,0,12,0\n49,0,4,0,29,0,36,0,48,0,18,0\n52,0,19,0,23,0,28,0,69,0,53,0\n35,0,55,0,63,0,13,0,51,0,14,0\n64,0,70,0,45,0,39,0,22,0,15,0\n5,0,56,0,24,0,44,0,68,0,59,0\n38,0,10,0,11,0,47,0,21,0,41,0\n9,0,33,0,27,0,32,0,20,0,34,0\n50,0,25,0,58,0,7,0,46,0,30,0\n42,0,40,0,66,0,62,0,60,0,49,0\n26,1,48,0,14,0,6,1,59,0,1,0\n52,1,68,0,41,0,64,1,63,0,3,0\n4,0,69,0,27,0,70,0,55,0,37,0\n65,0,51,0,58,0,33,0,24,0,23,0\n17,0,44,0,50,0,42,0,19,0,67,0\n25,0,36,0,45,0,11,0,9,0,13,0\n8,0,22,0,21,0,7,0,57,0,54,0\n39,0,18,0,32,0,47,0,56,0,61,0\n15,0,62,0,38,0,35,0,20,0,12,0\n31,0,5,0,2,0,28,0,46,0,29,0\n16,0,10,0,53,0,34,0,43,0,30,0\n60,0,13,0,1,0,52,0,33,0,21,0\n36,0,44,0,39,0,58,0,66,0,3,0\n47,0,49,0,51,0,68,0,19,0,26,0\n24,0,17,0,55,0,46,0,57,0,38,0\n41,0,14,0,15,0,40,0,31,0,32,0\n5,0,67,0,30,0,54,0,65,0,64,0\n7,0,12,0,56,0,4,0,16,0,45,0\n8,0,23,0,27,0,10,0,62,0,48,0\n50,0,2,0,6,0,69,0,34,0,11,0\n29,0,9,0,42,0,53,0,35,0,61,0\n37,0,22,0,18,0,25,0,63,0,59,0\n28,0,20,0,67,0,70,0,43,0,14,0\n52,0,40,0,51,0,17,0,5,0,16,0\n34,0,12,0,19,0,48,0,31,0,24,0\n46,0,33,0,54,0,15,0,47,0,53,0\n32,0,44,0,30,0,45,0,6,0,35,0\n10,0,64,0,57,0,13,0,56,0,37,0\n63,0,7,0,36,0,26,0,61,0,23,0\n25,0,69,0,21,0,43,0,39,0,62,0\n70,0,9,0,60,0,18,0,41,0,50,0\n11,0,55,0,65,0,8,0,66,0,20,0\n22,0,1,0,28,0,42,0,4,0,68,0\n59,0,49,0,3,0,38,0,27,0,2,0\n29,0,26,0,52,0,58,0,6,0,64,0\n"
  },
  {
    "path": "schedules/70_6.csv",
    "content": "15,0,16,0,9,0,70,0,11,0,47,0\n63,0,28,0,20,0,37,0,24,0,52,0\n5,0,39,0,31,0,49,0,27,0,17,0\n57,0,68,0,66,0,58,0,56,0,1,0\n69,0,22,0,51,0,43,0,8,0,45,0\n64,0,60,0,50,0,35,0,62,0,59,0\n14,0,3,0,4,0,54,0,53,0,65,0\n26,0,2,0,10,0,7,0,41,0,55,0\n36,0,34,0,67,0,6,0,42,0,46,0\n44,0,32,0,21,0,19,0,25,0,40,0\n18,0,13,0,61,0,23,0,12,0,29,0\n38,0,33,0,68,0,48,0,30,0,50,0\n35,0,52,0,43,0,17,0,10,0,57,0\n2,0,56,0,49,0,6,0,28,0,45,0\n22,0,60,0,24,0,25,0,9,0,34,0\n54,0,29,0,36,0,40,0,66,0,7,0\n51,0,46,0,15,0,19,0,26,0,5,0\n70,0,30,0,31,0,13,0,20,0,65,0\n47,0,21,0,59,0,12,0,53,0,48,0\n27,0,55,0,42,0,64,0,33,0,16,0\n18,0,44,0,3,0,38,0,39,0,37,0\n4,0,63,0,8,0,41,0,11,0,32,0\n61,0,58,0,67,0,69,0,14,0,62,0\n23,0,9,0,49,0,1,0,51,0,59,0\n45,0,48,0,27,0,57,0,13,0,54,0\n16,0,7,0,68,0,60,0,18,0,17,0\n12,0,25,0,20,0,4,0,10,0,39,0\n64,0,37,0,36,0,8,0,56,0,19,0\n31,0,6,0,63,0,1,0,33,0,61,0\n65,0,21,0,69,0,35,0,23,0,46,0\n30,0,14,0,24,0,41,0,42,0,44,0\n62,0,28,0,66,0,47,0,26,0,3,0\n40,0,11,0,5,0,22,0,2,0,52,0\n43,0,53,0,38,0,15,0,67,0,55,0\n70,0,58,0,32,0,50,0,34,0,29,0\n61,0,30,0,16,0,57,0,4,0,36,0\n42,0,65,0,19,0,48,0,18,0,66,0\n39,0,6,0,64,0,13,0,24,0,11,0\n3,0,20,0,40,0,27,0,15,0,59,0\n45,0,34,0,26,0,23,0,52,0,53,0\n54,0,51,0,47,0,31,0,68,0,25,0\n10,0,56,0,44,0,60,0,70,0,69,0\n50,0,12,0,41,0,37,0,67,0,49,0\n43,0,2,0,29,0,62,0,21,0,33,0\n1,0,46,0,7,0,32,0,14,0,22,0\n35,0,28,0,8,0,38,0,9,0,5,0\n58,0,55,0,40,0,63,0,17,0,51,0\n24,0,50,0,10,0,61,0,27,0,66,0\n53,0,41,0,62,0,13,0,16,0,56,0\n31,0,11,0,3,0,48,0,34,0,7,0\n29,0,15,0,52,0,44,0,64,0,49,0\n46,0,30,0,8,0,18,0,59,0,25,0\n19,0,4,0,17,0,33,0,69,0,28,0\n21,0,60,0,14,0,63,0,57,0,38,0\n5,0,23,0,36,0,20,0,43,0,47,0\n54,0,12,0,26,0,22,0,6,0,58,0\n68,0,32,0,65,0,39,0,2,0,67,0\n70,0,1,0,42,0,35,0,37,0,45,0\n9,0,56,0,18,0,55,0,50,0,21,0\n57,0,33,0,47,0,44,0,7,0,8,0\n38,0,62,0,17,0,23,0,24,0,54,0\n61,0,48,0,52,0,60,0,51,0,32,0\n35,0,49,0,20,0,14,0,11,0,26,0\n25,0,6,0,69,0,55,0,29,0,3,0\n15,0,22,0,42,0,10,0,31,0,28,0\n70,0,4,0,67,0,64,0,66,0,5,0\n27,0,63,0,53,0,2,0,19,0,30,0\n16,0,34,0,43,0,65,0,1,0,12,0\n39,0,41,0,59,0,58,0,36,0,45,0\n40,0,13,0,37,0,68,0,9,0,46,0\n"
  },
  {
    "path": "schedules/70_7.csv",
    "content": "52,0,3,0,11,0,37,0,39,0,8,0\n22,0,35,0,46,0,12,0,63,0,10,0\n6,0,49,0,58,0,62,0,24,0,61,0\n25,0,54,0,55,0,29,0,31,0,47,0\n64,0,28,0,7,0,38,0,40,0,14,0\n20,0,18,0,57,0,41,0,56,0,2,0\n42,0,21,0,9,0,32,0,69,0,1,0\n43,0,4,0,19,0,34,0,30,0,36,0\n44,0,26,0,68,0,65,0,15,0,60,0\n33,0,13,0,70,0,27,0,23,0,5,0\n16,0,48,0,51,0,67,0,59,0,17,0\n53,0,45,0,29,0,50,0,66,0,32,0\n41,0,19,0,12,0,40,0,8,0,6,0\n56,0,3,0,14,0,49,0,43,0,1,0\n2,0,30,0,39,0,61,0,55,0,44,0\n17,0,60,0,70,0,20,0,58,0,31,0\n65,0,50,0,13,0,46,0,54,0,57,0\n10,0,64,0,66,0,36,0,48,0,26,0\n37,0,15,0,38,0,25,0,51,0,42,0\n7,0,47,0,22,0,11,0,5,0,69,0\n59,0,23,0,34,0,63,0,21,0,62,0\n27,0,45,0,24,0,28,0,4,0,67,0\n68,0,53,0,16,0,18,0,52,0,9,0\n35,0,61,0,31,0,33,0,38,0,8,0\n37,1,2,0,60,0,1,1,64,0,12,0\n6,0,17,0,5,0,10,0,25,0,57,0\n45,0,69,0,40,0,46,0,20,0,51,0\n50,0,59,0,27,0,41,0,11,0,26,0\n29,0,43,0,52,0,33,0,44,0,7,0\n32,0,67,0,36,0,35,0,54,0,62,0\n19,0,39,0,23,0,22,0,15,0,16,0\n56,0,21,0,66,0,70,0,24,0,68,0\n65,0,18,0,28,0,49,0,55,0,34,0\n30,0,3,0,42,0,13,0,53,0,58,0\n48,0,47,0,9,0,4,0,14,0,63,0\n10,0,38,0,16,0,54,0,20,0,43,0\n2,0,7,0,15,0,27,0,46,0,62,0\n12,0,23,0,32,0,28,0,31,0,68,0\n67,0,50,0,69,0,60,0,18,0,61,0\n37,0,34,0,41,0,33,0,47,0,17,0\n24,0,65,0,11,0,1,0,36,0,25,0\n5,0,48,0,40,0,56,0,55,0,58,0\n59,0,13,0,44,0,22,0,66,0,4,0\n29,0,64,0,57,0,9,0,19,0,3,0\n63,0,26,0,6,0,39,0,45,0,42,0\n30,0,49,0,51,0,35,0,70,0,52,0\n8,0,14,0,5,0,21,0,53,0,67,0\n4,0,37,0,31,0,69,0,16,0,65,0\n32,0,40,0,60,0,24,0,59,0,2,0\n47,0,28,0,1,0,10,0,19,0,44,0\n52,0,58,0,63,0,64,0,15,0,41,0\n21,0,29,0,17,0,49,0,39,0,46,0\n43,0,25,0,35,0,68,0,13,0,45,0\n66,0,9,0,20,0,61,0,7,0,23,0\n11,0,56,0,51,0,53,0,6,0,54,0\n8,0,62,0,18,0,48,0,70,0,42,0\n26,0,30,0,33,0,57,0,14,0,12,0\n22,0,27,0,55,0,38,0,3,0,36,0\n50,0,5,0,1,0,34,0,20,0,52,0\n64,0,44,0,37,0,24,0,53,0,23,0\n61,0,10,0,4,0,68,0,41,0,29,0\n33,0,54,0,45,0,18,0,58,0,59,0\n14,0,66,0,42,0,16,0,11,0,2,0\n12,0,38,0,70,0,65,0,47,0,67,0\n46,0,8,0,25,0,32,0,56,0,30,0\n15,0,3,0,6,0,28,0,35,0,21,0\n9,0,40,0,43,0,17,0,26,0,22,0\n63,0,36,0,31,0,49,0,7,0,50,0\n34,0,69,0,39,0,48,0,57,0,27,0\n51,0,62,0,60,0,19,0,55,0,13,0\n4,0,20,0,11,0,33,0,21,0,64,0\n17,0,61,0,14,0,52,0,65,0,32,0\n54,0,66,0,63,0,40,0,30,0,37,0\n48,0,22,0,68,0,6,0,50,0,2,0\n41,0,39,0,25,0,70,0,28,0,9,0\n1,0,8,0,58,0,27,0,51,0,29,0\n57,0,23,0,36,0,42,0,47,0,60,0\n67,0,56,0,34,0,10,0,15,0,13,0\n62,0,16,0,12,0,45,0,3,0,44,0\n69,0,49,0,53,0,59,0,19,0,38,0\n24,0,46,0,31,0,5,0,43,0,18,0\n55,0,35,0,37,0,7,0,26,0,1,0\n"
  },
  {
    "path": "schedules/70_8.csv",
    "content": "47,0,52,0,4,0,62,0,16,0,53,0\n24,0,61,0,42,0,5,0,25,0,43,0\n59,0,57,0,70,0,58,0,20,0,66,0\n50,0,60,0,29,0,11,0,65,0,14,0\n21,0,28,0,64,0,68,0,26,0,13,0\n45,0,56,0,22,0,41,0,32,0,40,0\n17,0,46,0,37,0,49,0,7,0,8,0\n34,0,36,0,63,0,6,0,27,0,35,0\n23,0,31,0,33,0,39,0,55,0,2,0\n15,0,51,0,54,0,67,0,19,0,38,0\n48,0,44,0,1,0,10,0,12,0,9,0\n69,0,30,0,52,0,3,0,18,0,24,0\n40,0,43,0,63,0,62,0,59,0,14,0\n53,0,36,0,20,0,45,0,26,0,17,0\n65,0,34,0,68,0,54,0,32,0,39,0\n15,0,5,0,23,0,41,0,13,0,48,0\n67,0,66,0,18,0,37,0,55,0,10,0\n50,0,57,0,56,0,16,0,51,0,33,0\n21,0,3,0,6,0,7,0,61,0,1,0\n22,0,38,0,35,0,47,0,44,0,60,0\n11,0,30,0,8,0,9,0,64,0,70,0\n4,0,27,0,25,0,49,0,69,0,19,0\n29,0,12,0,31,0,42,0,46,0,58,0\n2,0,34,0,62,0,28,0,50,0,20,0\n33,1,45,0,40,0,38,1,37,0,1,0\n5,1,57,0,9,0,68,1,6,0,17,0\n13,0,4,0,66,0,30,0,54,0,7,0\n3,0,11,0,16,0,22,0,31,0,63,0\n53,0,15,0,69,0,2,0,60,0,21,0\n49,0,47,0,14,0,70,0,55,0,51,0\n36,0,23,0,46,0,10,0,24,0,65,0\n35,0,52,0,58,0,67,0,25,0,26,0\n12,0,41,0,59,0,61,0,18,0,28,0\n42,0,56,0,27,0,44,0,39,0,8,0\n32,0,43,0,19,0,29,0,64,0,48,0\n55,0,16,0,60,0,36,0,40,0,54,0\n20,0,35,0,1,0,46,0,68,0,69,0\n58,0,18,0,53,0,5,0,49,0,11,0\n15,0,3,0,56,0,59,0,65,0,9,0\n42,0,70,0,38,0,34,0,52,0,21,0\n41,0,7,0,19,0,2,0,10,0,26,0\n67,0,44,0,57,0,4,0,28,0,23,0\n66,0,14,0,64,0,39,0,45,0,6,0\n8,0,24,0,51,0,29,0,62,0,22,0\n32,0,50,0,37,0,63,0,61,0,13,0\n27,0,17,0,33,0,43,0,30,0,12,0\n47,0,25,0,59,0,31,0,48,0,21,0\n42,0,68,0,40,0,11,0,6,0,23,0\n9,0,46,0,18,0,62,0,45,0,19,0\n52,0,55,0,56,0,7,0,28,0,5,0\n26,0,15,0,57,0,22,0,27,0,37,0\n53,0,44,0,61,0,51,0,65,0,31,0\n13,0,43,0,69,0,47,0,67,0,36,0\n4,0,38,0,14,0,17,0,32,0,58,0\n66,0,8,0,12,0,2,0,35,0,3,0\n70,0,29,0,10,0,16,0,54,0,25,0\n63,0,39,0,41,0,30,0,60,0,20,0\n49,0,33,0,48,0,64,0,34,0,24,0\n50,0,31,0,43,0,1,0,23,0,52,0\n38,0,36,0,11,0,56,0,62,0,61,0\n45,0,10,0,27,0,58,0,51,0,68,0\n13,0,16,0,2,0,46,0,44,0,14,0\n67,0,33,0,59,0,8,0,32,0,60,0\n24,0,40,0,70,0,39,0,17,0,35,0\n25,0,3,0,64,0,41,0,37,0,53,0\n26,0,18,0,54,0,50,0,48,0,42,0\n7,0,12,0,69,0,57,0,63,0,65,0\n6,0,30,0,49,0,28,0,15,0,29,0\n21,0,9,0,20,0,22,0,55,0,4,0\n5,0,1,0,19,0,66,0,34,0,47,0\n62,0,26,0,32,0,44,0,3,0,70,0\n11,0,7,0,39,0,43,0,67,0,45,0\n49,0,61,0,2,0,52,0,40,0,57,0\n16,0,27,0,21,0,35,0,23,0,18,0\n51,0,48,0,28,0,46,0,66,0,63,0\n68,0,55,0,19,0,50,0,53,0,59,0\n8,0,13,0,65,0,25,0,38,0,20,0\n42,0,22,0,30,0,36,0,14,0,1,0\n5,0,10,0,64,0,15,0,4,0,31,0\n33,0,58,0,54,0,47,0,9,0,41,0\n60,0,12,0,6,0,37,0,56,0,24,0\n17,0,29,0,23,0,69,0,34,0,59,0\n55,0,13,0,35,0,57,0,42,0,45,0\n7,0,25,0,40,0,68,0,15,0,18,0\n28,0,39,0,10,0,3,0,47,0,38,0\n52,0,32,0,11,0,12,0,20,0,19,0\n44,0,41,0,49,0,36,0,50,0,66,0\n6,0,22,0,46,0,53,0,70,0,33,0\n62,0,37,0,65,0,30,0,21,0,5,0\n67,0,24,0,9,0,27,0,31,0,14,0\n8,0,48,0,58,0,69,0,61,0,16,0\n17,0,1,0,54,0,56,0,2,0,64,0\n60,0,26,0,34,0,4,0,43,0,51,0\n63,0,38,0,5,0,29,0,33,0,68,0\n"
  },
  {
    "path": "schedules/70_9.csv",
    "content": "68,0,58,0,43,0,22,0,12,0,61,0\n21,0,8,0,60,0,33,0,1,0,47,0\n66,0,20,0,36,0,31,0,38,0,26,0\n9,0,7,0,2,0,41,0,18,0,55,0\n32,0,67,0,25,0,70,0,27,0,63,0\n64,0,45,0,5,0,15,0,30,0,35,0\n37,0,16,0,23,0,57,0,17,0,53,0\n6,0,56,0,59,0,29,0,34,0,51,0\n24,0,52,0,48,0,13,0,11,0,10,0\n40,0,46,0,49,0,42,0,14,0,19,0\n44,0,28,0,4,0,69,0,50,0,65,0\n39,0,62,0,15,0,54,0,3,0,37,0\n29,0,58,0,20,0,2,0,45,0,57,0\n12,0,34,0,63,0,16,0,36,0,24,0\n49,0,18,0,17,0,5,0,43,0,11,0\n41,0,14,0,50,0,56,0,61,0,32,0\n55,0,52,0,62,0,8,0,25,0,46,0\n48,0,51,0,9,0,21,0,4,0,22,0\n53,0,70,0,1,0,42,0,64,0,66,0\n44,0,59,0,23,0,40,0,33,0,26,0\n68,0,7,0,31,0,65,0,13,0,3,0\n54,0,69,0,30,0,19,0,47,0,67,0\n10,0,39,0,6,0,60,0,28,0,27,0\n38,0,21,0,55,0,35,0,24,0,29,0\n18,0,26,0,12,0,42,0,52,0,50,0\n53,0,20,0,34,0,65,0,22,0,62,0\n41,0,36,0,33,0,58,0,15,0,19,0\n64,0,23,0,32,0,44,0,60,0,46,0\n70,0,49,0,47,0,4,0,6,0,68,0\n69,0,66,0,10,0,45,0,7,0,16,0\n14,0,2,0,3,0,35,0,48,0,28,0\n54,0,56,0,9,0,1,0,25,0,17,0\n30,0,61,0,59,0,13,0,38,0,63,0\n67,0,11,0,40,0,39,0,57,0,43,0\n5,0,27,0,31,0,51,0,8,0,37,0\n19,0,68,0,10,0,26,0,32,0,29,0\n3,0,66,0,23,0,12,0,25,0,4,0\n63,0,47,0,22,0,45,0,44,0,17,0\n11,0,6,0,30,0,21,0,58,0,46,0\n35,0,41,0,31,0,1,0,59,0,16,0\n70,0,51,0,2,0,15,0,40,0,24,0\n56,0,13,0,42,0,62,0,36,0,27,0\n5,0,52,0,61,0,34,0,67,0,69,0\n38,0,14,0,65,0,64,0,18,0,8,0\n53,0,28,0,55,0,33,0,43,0,54,0\n57,0,37,0,60,0,50,0,7,0,48,0\n49,0,39,0,13,0,9,0,20,0,12,0\n5,0,26,0,42,0,16,0,6,0,25,0\n27,0,68,0,35,0,69,0,18,0,23,0\n41,0,28,0,47,0,64,0,40,0,36,0\n55,0,31,0,17,0,60,0,67,0,58,0\n54,0,48,0,46,0,20,0,24,0,61,0\n33,0,34,0,39,0,2,0,38,0,4,0\n7,0,32,0,22,0,1,0,49,0,11,0\n3,0,19,0,45,0,8,0,56,0,53,0\n10,0,57,0,21,0,65,0,70,0,59,0\n44,0,14,0,66,0,51,0,62,0,30,0\n37,0,29,0,63,0,52,0,9,0,43,0\n50,0,40,0,17,0,15,0,13,0,6,0\n33,0,38,0,46,0,56,0,5,0,7,0\n2,0,54,0,26,0,49,0,27,0,45,0\n1,0,57,0,24,0,62,0,68,0,69,0\n61,0,31,0,34,0,9,0,28,0,19,0\n15,0,12,0,10,0,44,0,53,0,21,0\n30,0,3,0,43,0,60,0,41,0,70,0\n4,0,29,0,14,0,67,0,22,0,36,0\n50,0,11,0,25,0,20,0,8,0,35,0\n52,0,51,0,64,0,39,0,32,0,16,0\n18,0,37,0,59,0,66,0,58,0,47,0\n63,0,23,0,55,0,48,0,42,0,65,0\n43,0,1,0,27,0,34,0,46,0,15,0\n28,0,29,0,62,0,26,0,11,0,60,0\n45,0,9,0,24,0,33,0,14,0,6,0\n44,0,16,0,67,0,13,0,2,0,18,0\n3,0,38,0,58,0,10,0,51,0,49,0\n36,0,35,0,70,0,61,0,37,0,7,0\n57,0,8,0,4,0,54,0,63,0,41,0\n68,0,40,0,52,0,56,0,66,0,21,0\n32,0,47,0,5,0,65,0,12,0,55,0\n69,0,25,0,48,0,53,0,64,0,31,0\n50,0,59,0,19,0,39,0,22,0,23,0\n30,0,42,0,33,0,17,0,20,0,10,0\n16,0,11,0,9,0,38,0,15,0,68,0\n67,0,49,0,37,0,24,0,28,0,56,0\n43,0,62,0,4,0,31,0,32,0,45,0\n66,0,22,0,6,0,54,0,55,0,13,0\n60,0,40,0,53,0,5,0,63,0,18,0\n17,0,21,0,64,0,26,0,61,0,3,0\n36,0,1,0,65,0,30,0,2,0,50,0\n52,0,7,0,20,0,23,0,47,0,14,0\n27,0,57,0,51,0,35,0,12,0,19,0\n69,0,42,0,46,0,29,0,39,0,41,0\n58,0,70,0,8,0,44,0,34,0,48,0\n25,0,45,0,60,0,59,0,68,0,36,0\n14,0,31,0,54,0,10,0,23,0,5,0\n56,0,19,0,63,0,11,0,2,0,64,0\n46,0,35,0,65,0,9,0,66,0,67,0\n48,0,12,0,38,0,62,0,17,0,41,0\n44,0,20,0,3,0,1,0,52,0,6,0\n27,0,4,0,61,0,40,0,55,0,30,0\n22,0,15,0,18,0,28,0,57,0,25,0\n24,0,39,0,47,0,53,0,26,0,58,0\n33,0,70,0,16,0,49,0,29,0,50,0\n69,0,32,0,13,0,34,0,37,0,21,0\n42,0,8,0,43,0,51,0,7,0,59,0\n"
  },
  {
    "path": "schedules/71_1.csv",
    "content": "44,0,2,0,59,0,30,0,15,0,31,0\n7,0,64,0,46,0,43,0,23,0,21,0\n54,0,70,0,65,0,66,0,71,0,36,0\n60,0,63,0,20,0,26,0,40,0,37,0\n42,0,9,0,35,0,19,0,32,0,39,0\n29,0,62,0,18,0,45,0,67,0,11,0\n41,0,49,0,22,0,51,0,58,0,5,0\n3,0,56,0,14,0,52,0,24,0,28,0\n17,0,10,0,55,0,13,0,47,0,1,0\n12,0,16,0,68,0,38,0,8,0,61,0\n27,0,50,0,48,0,6,0,34,0,53,0\n57,0,69,0,25,0,4,0,33,0,70,1\n"
  },
  {
    "path": "schedules/71_10.csv",
    "content": "18,0,22,0,20,0,70,0,19,0,29,0\n31,0,43,0,53,0,68,0,27,0,56,0\n21,0,60,0,23,0,52,0,45,0,2,0\n41,0,33,0,26,0,38,0,51,0,63,0\n54,0,71,0,10,0,4,0,62,0,39,0\n40,0,5,0,34,0,64,0,57,0,30,0\n3,0,14,0,61,0,7,0,47,0,46,0\n49,0,16,0,9,0,8,0,50,0,55,0\n59,0,44,0,13,0,12,0,28,0,32,0\n42,0,1,0,36,0,35,0,66,0,37,0\n15,0,67,0,48,0,25,0,17,0,69,0\n11,0,24,0,3,0,58,0,65,0,6,0\n54,0,53,0,45,0,14,0,19,0,63,0\n47,0,23,0,32,0,41,0,50,0,34,0\n37,0,68,0,71,0,46,0,55,0,21,0\n49,0,26,0,61,0,66,0,59,0,67,0\n2,0,62,0,18,0,57,0,31,0,48,0\n13,0,58,0,4,0,40,0,35,0,20,0\n69,0,6,0,30,0,36,0,12,0,60,0\n39,0,7,0,1,0,24,0,70,0,15,0\n25,0,9,0,10,0,65,0,5,0,56,0\n28,0,17,0,43,0,33,0,8,0,42,0\n64,0,51,0,22,0,11,0,52,0,27,0\n29,0,16,0,69,0,44,0,38,0,35,0\n2,1,53,0,49,0,61,1,18,0,32,0\n13,1,37,0,21,0,34,1,58,0,9,0\n41,0,55,0,40,0,1,0,67,0,6,0\n31,0,7,0,19,0,51,0,59,0,25,0\n20,0,26,0,44,0,15,0,47,0,10,0\n45,0,65,0,27,0,54,0,66,0,8,0\n3,0,64,0,62,0,42,0,68,0,38,0\n52,0,4,0,33,0,12,0,56,0,30,0\n46,0,48,0,63,0,16,0,36,0,39,0\n14,0,28,0,22,0,17,0,23,0,5,0\n29,0,43,0,24,0,57,0,60,0,71,0\n11,0,70,0,44,0,50,0,37,0,53,0\n30,0,58,0,7,0,62,0,10,0,8,0\n56,0,51,0,15,0,32,0,64,0,54,0\n42,0,34,0,6,0,59,0,4,0,49,0\n1,0,18,0,65,0,28,0,21,0,26,0\n29,0,11,0,46,0,31,0,12,0,67,0\n24,0,69,0,61,0,19,0,33,0,55,0\n36,0,25,0,14,0,16,0,57,0,68,0\n60,0,27,0,5,0,41,0,39,0,20,0\n35,0,45,0,50,0,22,0,71,0,2,0\n52,0,40,0,70,0,17,0,3,0,63,0\n66,0,43,0,38,0,48,0,9,0,47,0\n23,0,8,0,67,0,13,0,36,0,18,0\n55,0,57,0,61,0,44,0,27,0,4,0\n37,0,45,0,41,0,7,0,49,0,28,0\n12,0,65,0,3,0,22,0,15,0,34,0\n19,0,38,0,48,0,10,0,60,0,40,0\n50,0,68,0,29,0,51,0,58,0,66,0\n11,0,2,0,5,0,24,0,56,0,63,0\n39,0,35,0,43,0,52,0,21,0,25,0\n59,0,30,0,33,0,71,0,23,0,70,0\n26,0,54,0,42,0,32,0,69,0,31,0\n20,0,17,0,9,0,46,0,6,0,62,0\n53,0,1,0,47,0,16,0,13,0,64,0\n14,0,8,0,4,0,41,0,29,0,48,0\n43,0,3,0,59,0,18,0,44,0,45,0\n35,0,33,0,57,0,67,0,10,0,32,0\n68,0,19,0,15,0,11,0,30,0,28,0\n16,0,40,0,22,0,37,0,26,0,62,0\n71,0,36,0,53,0,58,0,38,0,17,0\n31,0,23,0,20,0,24,0,64,0,39,0\n47,0,5,0,54,0,49,0,6,0,21,0\n14,0,27,0,51,0,70,0,9,0,13,0\n66,0,7,0,34,0,60,0,56,0,55,0\n1,0,46,0,2,0,52,0,69,0,65,0\n12,0,61,0,63,0,42,0,50,0,25,0\n59,0,21,0,15,0,41,0,57,0,36,0\n45,0,62,0,32,0,5,0,37,0,67,0\n28,0,55,0,66,0,70,0,58,0,31,0\n68,0,46,0,52,0,13,0,49,0,19,0\n53,0,69,0,51,0,23,0,4,0,3,0\n12,0,17,0,24,0,10,0,27,0,26,0\n50,0,7,0,16,0,30,0,43,0,65,0\n63,0,8,0,47,0,22,0,35,0,60,0\n14,0,9,0,42,0,44,0,39,0,40,0\n11,0,25,0,34,0,54,0,18,0,38,0\n56,0,48,0,71,0,61,0,1,0,20,0\n2,0,6,0,33,0,64,0,29,0,7,0\n66,0,24,0,22,0,13,0,30,0,41,0\n59,0,8,0,5,0,46,0,51,0,40,0\n21,0,32,0,17,0,19,0,4,0,16,0\n44,0,49,0,65,0,35,0,70,0,48,0\n37,0,64,0,69,0,43,0,10,0,63,0\n60,0,61,0,68,0,9,0,54,0,1,0\n26,0,25,0,3,0,29,0,55,0,23,0\n67,0,58,0,42,0,27,0,2,0,15,0\n36,0,11,0,62,0,33,0,45,0,47,0\n34,0,31,0,18,0,71,0,52,0,14,0\n56,0,38,0,28,0,39,0,6,0,50,0\n57,0,12,0,21,0,20,0,53,0,8,0\n66,0,5,0,63,0,15,0,23,0,43,0\n44,0,33,0,58,0,25,0,22,0,1,0\n4,0,70,0,64,0,46,0,45,0,26,0\n65,0,19,0,40,0,31,0,47,0,36,0\n10,0,29,0,52,0,41,0,42,0,53,0\n27,0,6,0,35,0,34,0,48,0,68,0\n51,0,30,0,18,0,61,0,37,0,17,0\n39,0,57,0,13,0,11,0,49,0,69,0\n59,0,56,0,50,0,24,0,60,0,62,0\n38,0,55,0,20,0,14,0,2,0,32,0\n71,0,9,0,28,0,67,0,3,0,16,0\n54,0,23,0,68,0,12,0,7,0,44,0\n70,0,36,0,8,0,52,0,5,0,61,0\n18,0,57,0,58,0,42,0,46,0,56,0\n4,0,25,0,47,0,37,0,24,0,2,0\n28,0,67,0,63,0,34,0,51,0,20,0\n22,0,69,0,10,0,66,0,14,0,21,0\n48,0,13,0,50,0,33,0,54,0,3,0\n12,0,41,0,19,0,64,0,9,0,35,0\n65,0,55,0,39,0,53,0,59,0,17,0\n6,0,38,0,16,0,45,0,31,0,15,0\n27,0,62,0,30,0,1,0,49,0,29,0\n7,0,60,0,32,0,11,0,71,0,40,0\n26,0,2,0,13,0,43,0,61,0,34,0\n"
  },
  {
    "path": "schedules/71_11.csv",
    "content": "30,0,46,0,18,0,59,0,47,0,35,0\n27,0,26,0,45,0,68,0,17,0,70,0\n4,0,60,0,64,0,40,0,9,0,63,0\n49,0,36,0,71,0,19,0,33,0,20,0\n13,0,3,0,7,0,6,0,56,0,11,0\n65,0,8,0,39,0,32,0,37,0,52,0\n62,0,48,0,43,0,34,0,38,0,12,0\n28,0,1,0,50,0,67,0,24,0,53,0\n2,0,66,0,14,0,61,0,54,0,22,0\n41,0,29,0,55,0,25,0,44,0,5,0\n21,0,58,0,15,0,31,0,69,0,57,0\n16,0,23,0,35,0,10,0,51,0,42,0\n40,0,17,0,11,0,49,0,46,0,43,0\n54,0,39,0,34,0,18,0,64,0,33,0\n22,0,56,0,55,0,70,0,37,0,62,0\n58,0,47,0,24,0,63,0,13,0,2,0\n31,0,68,0,61,0,42,0,8,0,12,0\n52,0,3,0,69,0,67,0,5,0,26,0\n36,0,21,0,53,0,65,0,10,0,15,0\n51,0,7,0,50,0,60,0,29,0,59,0\n38,0,4,0,27,0,41,0,20,0,16,0\n9,0,66,0,30,0,45,0,19,0,44,0\n32,0,25,0,28,0,23,0,6,0,71,0\n57,0,1,0,11,0,48,0,14,0,36,0\n49,1,59,0,70,0,3,1,42,0,29,0\n64,1,40,0,68,0,41,1,52,0,58,0\n66,1,61,0,10,0,63,0,18,0,62,0\n8,0,56,0,24,0,55,0,17,0,30,0\n51,0,27,0,34,0,71,0,65,0,5,0\n22,0,33,0,47,0,31,0,48,0,26,0\n9,0,6,0,16,0,43,0,15,0,50,0\n2,0,69,0,44,0,60,0,35,0,38,0\n57,0,12,0,45,0,7,0,1,0,25,0\n13,0,23,0,19,0,14,0,37,0,53,0\n39,0,46,0,20,0,21,0,67,0,28,0\n54,0,32,0,48,0,4,0,3,0,68,0\n33,0,65,0,11,0,59,0,55,0,2,0\n8,0,35,0,29,0,57,0,64,0,15,0\n12,0,14,0,58,0,9,0,53,0,41,0\n45,0,24,0,37,0,5,0,49,0,47,0\n13,0,67,0,56,0,16,0,34,0,60,0\n10,0,25,0,54,0,19,0,42,0,52,0\n70,0,43,0,71,0,44,0,21,0,61,0\n66,0,51,0,31,0,1,0,38,0,6,0\n22,0,50,0,69,0,46,0,23,0,17,0\n27,0,40,0,36,0,39,0,30,0,32,0\n18,0,26,0,7,0,63,0,20,0,28,0\n4,0,67,0,29,0,62,0,71,0,12,0\n19,0,68,0,14,0,6,0,34,0,59,0\n21,0,17,0,35,0,25,0,66,0,48,0\n27,0,11,0,37,0,44,0,10,0,50,0\n7,0,36,0,45,0,8,0,64,0,69,0\n31,0,20,0,70,0,52,0,46,0,24,0\n26,0,61,0,55,0,40,0,15,0,23,0\n22,0,9,0,28,0,57,0,49,0,3,0\n16,0,51,0,63,0,30,0,33,0,53,0\n65,0,62,0,47,0,54,0,60,0,41,0\n18,0,32,0,38,0,58,0,13,0,5,0\n1,0,2,0,42,0,56,0,4,0,39,0\n3,0,37,0,20,0,43,0,31,0,35,0\n53,0,7,0,64,0,70,0,61,0,48,0\n62,0,24,0,16,0,14,0,69,0,40,0\n59,0,33,0,10,0,66,0,67,0,45,0\n63,0,57,0,50,0,38,0,19,0,39,0\n54,0,49,0,12,0,51,0,32,0,60,0\n42,0,11,0,41,0,15,0,71,0,28,0\n56,0,26,0,30,0,29,0,58,0,25,0\n44,0,22,0,17,0,1,0,65,0,18,0\n4,0,13,0,6,0,46,0,8,0,27,0\n9,0,55,0,34,0,21,0,52,0,47,0\n23,0,43,0,5,0,2,0,36,0,68,0\n66,0,54,0,71,0,7,0,57,0,24,0\n26,0,19,0,32,0,64,0,62,0,1,0\n49,0,61,0,56,0,48,0,65,0,50,0\n6,0,44,0,47,0,42,0,40,0,53,0\n8,0,58,0,38,0,23,0,70,0,33,0\n46,0,51,0,68,0,55,0,37,0,18,0\n25,0,69,0,43,0,13,0,59,0,39,0\n2,0,21,0,41,0,29,0,17,0,63,0\n28,0,10,0,45,0,34,0,4,0,31,0\n5,0,60,0,20,0,15,0,14,0,30,0\n12,0,16,0,52,0,36,0,3,0,22,0\n35,0,9,0,27,0,11,0,67,0,61,0\n39,0,26,0,66,0,71,0,46,0,13,0\n7,0,10,0,47,0,68,0,65,0,43,0\n14,0,55,0,20,0,50,0,45,0,64,0\n22,0,32,0,15,0,38,0,24,0,59,0\n58,0,51,0,62,0,17,0,8,0,28,0\n34,0,63,0,52,0,49,0,1,0,35,0\n67,0,70,0,6,0,57,0,36,0,41,0\n40,0,3,0,25,0,18,0,2,0,27,0\n5,0,19,0,4,0,33,0,21,0,60,0\n53,0,16,0,29,0,11,0,31,0,54,0\n48,0,30,0,42,0,69,0,37,0,9,0\n23,0,44,0,63,0,56,0,12,0,20,0\n17,0,71,0,38,0,3,0,10,0,55,0\n6,0,35,0,45,0,58,0,22,0,39,0\n47,0,25,0,50,0,70,0,36,0,4,0\n42,0,21,0,64,0,24,0,11,0,51,0\n67,0,30,0,31,0,2,0,23,0,7,0\n59,0,53,0,5,0,57,0,9,0,62,0\n60,0,18,0,14,0,26,0,8,0,43,0\n65,0,40,0,37,0,29,0,12,0,66,0\n28,0,48,0,52,0,13,0,44,0,16,0\n56,0,68,0,1,0,15,0,33,0,49,0\n32,0,41,0,61,0,34,0,69,0,46,0\n54,0,19,0,43,0,27,0,67,0,22,0\n29,0,18,0,24,0,9,0,23,0,36,0\n10,0,12,0,64,0,28,0,5,0,6,0\n70,0,65,0,57,0,40,0,13,0,20,0\n8,0,25,0,34,0,3,0,66,0,50,0\n17,0,33,0,42,0,14,0,7,0,32,0\n15,0,46,0,48,0,45,0,2,0,51,0\n1,0,47,0,60,0,61,0,71,0,27,0\n58,0,37,0,26,0,16,0,21,0,59,0\n39,0,49,0,63,0,44,0,31,0,55,0\n62,0,38,0,30,0,52,0,68,0,11,0\n35,0,69,0,4,0,53,0,56,0,19,0\n41,0,13,0,43,0,54,0,1,0,45,0\n46,0,65,0,64,0,16,0,25,0,33,0\n42,0,36,0,60,0,66,0,55,0,58,0\n49,0,21,0,62,0,6,0,27,0,30,0\n52,0,17,0,57,0,61,0,4,0,37,0\n39,0,41,0,24,0,7,0,48,0,19,0\n44,0,3,0,67,0,47,0,14,0,51,0\n12,0,31,0,5,0,35,0,26,0,50,0\n15,0,69,0,11,0,34,0,18,0,70,0\n53,0,63,0,71,0,68,0,22,0,8,0\n2,0,9,0,29,0,32,0,20,0,10,0\n28,0,59,0,54,0,40,0,56,0,38,0\n23,0,3,0,64,0,49,0,41,0,66,0\n"
  },
  {
    "path": "schedules/71_12.csv",
    "content": "21,0,63,0,62,0,11,0,64,0,17,0\n2,0,69,0,34,0,58,0,18,0,9,0\n28,0,14,0,41,0,6,0,7,0,8,0\n36,0,10,0,56,0,43,0,25,0,51,0\n48,0,1,0,15,0,37,0,42,0,16,0\n60,0,44,0,57,0,35,0,49,0,67,0\n40,0,32,0,65,0,19,0,47,0,71,0\n23,0,55,0,38,0,53,0,70,0,45,0\n31,0,5,0,29,0,20,0,4,0,33,0\n46,0,39,0,61,0,50,0,22,0,68,0\n66,0,54,0,30,0,24,0,26,0,13,0\n52,0,12,0,59,0,27,0,3,0,11,0\n65,0,21,0,70,0,57,0,8,0,56,0\n6,0,45,0,15,0,71,0,29,0,36,0\n34,0,61,0,16,0,64,0,25,0,49,0\n38,0,18,0,47,0,14,0,26,0,42,0\n41,0,68,0,58,0,63,0,44,0,53,0\n1,0,2,0,28,0,59,0,50,0,40,0\n32,0,17,0,3,0,10,0,33,0,9,0\n13,0,31,0,22,0,48,0,60,0,52,0\n43,0,24,0,67,0,46,0,23,0,62,0\n55,0,27,0,7,0,66,0,5,0,37,0\n35,0,51,0,69,0,54,0,20,0,12,0\n4,0,30,0,28,0,39,0,19,0,41,0\n53,0,22,0,64,0,49,0,33,0,2,0\n34,0,56,0,26,0,40,0,13,0,3,0\n67,0,59,0,47,0,15,0,5,0,61,0\n20,0,65,0,60,0,7,0,16,0,11,0\n35,0,45,0,58,0,32,0,68,0,21,0\n24,0,19,0,27,0,31,0,70,0,51,0\n71,0,55,0,46,0,42,0,17,0,69,0\n50,0,8,0,29,0,66,0,63,0,52,0\n10,0,54,0,62,0,4,0,57,0,9,0\n30,0,43,0,6,0,12,0,1,0,38,0\n23,0,44,0,25,0,18,0,37,0,48,0\n39,0,14,0,58,0,36,0,33,0,64,0\n42,0,24,0,7,0,50,0,53,0,19,0\n68,0,54,0,51,0,67,0,55,0,60,0\n63,0,3,0,35,0,65,0,30,0,1,0\n12,0,9,0,32,0,40,0,22,0,23,0\n56,0,52,0,47,0,36,0,46,0,20,0\n70,0,49,0,26,0,59,0,39,0,62,0\n31,0,16,0,44,0,71,0,21,0,28,0\n38,0,34,0,48,0,69,0,41,0,5,0\n18,0,11,0,61,0,66,0,43,0,15,0\n37,0,13,0,45,0,2,0,10,0,6,0\n17,0,8,0,14,0,4,0,27,0,25,0\n57,0,53,0,46,0,29,0,60,0,12,0\n36,0,16,0,70,0,26,0,9,0,50,0\n59,0,5,0,49,0,58,0,63,0,51,0\n39,0,1,0,68,0,34,0,10,0,47,0\n18,0,40,0,67,0,31,0,8,0,27,0\n2,0,15,0,25,0,52,0,21,0,54,0\n17,0,61,0,4,0,23,0,45,0,30,0\n69,0,29,0,24,0,28,0,64,0,13,0\n44,0,66,0,48,0,14,0,65,0,62,0\n37,0,43,0,20,0,41,0,57,0,32,0\n42,0,33,0,6,0,56,0,35,0,11,0\n19,0,55,0,22,0,38,0,3,0,71,0\n7,0,39,0,12,0,31,0,63,0,25,0\n48,0,51,0,65,0,15,0,17,0,34,0\n23,0,57,0,52,0,14,0,1,0,5,0\n30,0,70,0,58,0,67,0,20,0,42,0\n33,0,40,0,26,0,21,0,4,0,55,0\n46,0,18,0,54,0,10,0,19,0,11,0\n22,0,16,0,45,0,43,0,7,0,35,0\n59,0,6,0,9,0,60,0,53,0,24,0\n38,0,49,0,61,0,8,0,13,0,32,0\n44,0,41,0,56,0,29,0,27,0,2,0\n36,0,3,0,68,0,28,0,69,0,66,0\n50,0,37,0,71,0,64,0,47,0,62,0\n9,0,25,0,5,0,42,0,65,0,45,0\n46,0,8,0,16,0,54,0,58,0,55,0\n56,0,12,0,67,0,1,0,49,0,19,0\n39,0,24,0,2,0,48,0,32,0,35,0\n60,0,71,0,26,0,52,0,20,0,61,0\n6,0,29,0,62,0,3,0,23,0,34,0\n11,0,4,0,50,0,22,0,69,0,44,0\n66,0,64,0,10,0,40,0,70,0,41,0\n15,0,18,0,36,0,7,0,33,0,30,0\n13,0,59,0,21,0,14,0,68,0,43,0\n53,0,17,0,51,0,47,0,31,0,37,0\n57,0,38,0,27,0,28,0,63,0,16,0\n10,0,8,0,35,0,71,0,5,0,23,0\n61,0,12,0,58,0,56,0,48,0,24,0\n15,0,4,0,3,0,60,0,25,0,70,0\n9,0,46,0,7,0,13,0,1,0,44,0\n22,0,42,0,41,0,36,0,65,0,59,0\n33,0,63,0,27,0,45,0,69,0,47,0\n17,0,43,0,38,0,54,0,40,0,39,0\n64,0,50,0,18,0,57,0,51,0,6,0\n31,0,30,0,55,0,11,0,14,0,2,0\n53,0,21,0,67,0,66,0,34,0,20,0\n19,0,37,0,68,0,29,0,52,0,49,0\n28,0,32,0,25,0,26,0,62,0,5,0\n3,0,59,0,57,0,44,0,39,0,17,0\n51,0,23,0,11,0,71,0,41,0,7,0\n58,0,2,0,66,0,6,0,4,0,47,0\n20,0,22,0,1,0,27,0,18,0,68,0\n56,0,31,0,64,0,15,0,32,0,38,0\n14,0,49,0,45,0,24,0,40,0,46,0\n62,0,60,0,69,0,19,0,21,0,30,0\n29,0,10,0,63,0,67,0,48,0,16,0\n33,0,65,0,28,0,70,0,61,0,13,0\n43,0,52,0,36,0,53,0,34,0,55,0\n35,0,12,0,26,0,8,0,9,0,37,0\n50,0,42,0,21,0,54,0,27,0,23,0\n58,0,25,0,47,0,30,0,22,0,29,0\n31,0,66,0,38,0,10,0,51,0,46,0\n19,0,63,0,59,0,55,0,20,0,6,0\n33,0,8,0,11,0,16,0,24,0,1,0\n13,0,50,0,17,0,35,0,41,0,18,0\n54,0,53,0,37,0,5,0,28,0,56,0\n71,0,14,0,44,0,70,0,34,0,12,0\n26,0,7,0,15,0,68,0,2,0,57,0\n32,0,45,0,39,0,52,0,69,0,65,0\n61,0,60,0,40,0,36,0,62,0,42,0\n43,0,3,0,48,0,67,0,64,0,4,0\n9,0,47,0,28,0,49,0,18,0,55,0\n16,0,68,0,5,0,12,0,6,0,17,0\n24,0,20,0,44,0,15,0,22,0,10,0\n36,0,23,0,19,0,13,0,2,0,63,0\n4,0,52,0,62,0,42,0,35,0,38,0\n67,0,69,0,39,0,14,0,56,0,37,0\n66,0,25,0,71,0,33,0,60,0,43,0\n45,0,3,0,50,0,31,0,49,0,58,0\n27,0,64,0,65,0,30,0,46,0,26,0\n54,0,32,0,7,0,59,0,34,0,29,0\n53,0,48,0,40,0,11,0,70,0,57,0\n21,0,1,0,9,0,41,0,61,0,51,0\n8,0,68,0,42,0,43,0,2,0,31,0\n15,0,13,0,55,0,62,0,12,0,50,0\n37,0,65,0,46,0,4,0,59,0,18,0\n63,0,34,0,57,0,66,0,56,0,22,0\n23,0,17,0,10,0,69,0,58,0,26,0\n33,0,5,0,52,0,40,0,44,0,30,0\n20,0,47,0,41,0,25,0,24,0,3,0\n29,0,11,0,67,0,9,0,38,0,39,0\n16,0,19,0,35,0,53,0,14,0,61,0\n49,0,48,0,7,0,27,0,21,0,6,0\n32,0,70,0,71,0,54,0,36,0,1,0\n51,0,60,0,64,0,45,0,28,0,8,0\n"
  },
  {
    "path": "schedules/71_13.csv",
    "content": "71,0,68,0,32,0,17,0,69,0,7,0\n8,0,24,0,12,0,59,0,10,0,48,0\n55,0,1,0,37,0,9,0,16,0,40,0\n44,0,35,0,42,0,26,0,4,0,5,0\n60,0,63,0,29,0,6,0,62,0,58,0\n28,0,61,0,25,0,19,0,39,0,21,0\n47,0,15,0,18,0,2,0,57,0,53,0\n56,0,23,0,13,0,33,0,67,0,14,0\n66,0,20,0,52,0,50,0,70,0,36,0\n31,0,64,0,65,0,3,0,41,0,11,0\n27,0,34,0,43,0,22,0,46,0,51,0\n30,0,54,0,38,0,49,0,45,0,59,0\n69,0,48,0,18,0,40,0,44,0,56,0\n20,0,15,0,23,0,4,0,28,0,9,0\n12,0,5,0,13,0,41,0,2,0,47,0\n19,0,58,0,53,0,37,0,8,0,35,0\n26,0,54,0,67,0,10,0,65,0,32,0\n30,0,21,0,11,0,46,0,7,0,60,0\n43,0,3,0,68,0,55,0,62,0,38,0\n50,0,27,0,17,0,61,0,31,0,45,0\n14,0,42,0,34,0,36,0,24,0,63,0\n1,0,57,0,22,0,33,0,29,0,25,0\n52,0,70,0,49,0,6,0,39,0,71,0\n64,0,16,0,47,0,66,0,51,0,28,0\n12,1,65,0,27,0,60,0,19,0,40,0\n41,0,21,0,62,0,44,0,24,0,23,0\n15,0,2,0,56,0,8,0,17,0,42,0\n46,0,35,0,67,0,50,0,61,0,18,0\n14,0,29,0,4,0,48,0,16,0,25,0\n3,0,5,0,30,0,36,0,69,0,57,0\n51,0,55,0,59,0,63,0,20,0,49,0\n39,0,64,0,32,0,38,0,58,0,34,0\n43,0,53,0,7,0,31,0,1,0,6,0\n71,0,45,0,52,0,26,0,13,0,9,0\n70,0,68,0,66,0,22,0,10,0,37,0\n11,0,54,0,27,0,33,0,2,0,63,0\n51,0,36,0,16,0,41,0,65,0,60,0\n62,0,49,0,8,0,67,0,34,0,5,0\n52,0,19,0,48,0,30,0,29,0,43,0\n47,0,59,0,58,0,22,0,61,0,17,0\n21,0,66,0,37,0,38,0,26,0,15,0\n40,0,7,0,28,0,4,0,44,0,53,0\n23,0,45,0,39,0,10,0,55,0,69,0\n68,0,57,0,42,0,13,0,20,0,32,0\n25,0,31,0,12,0,71,0,18,0,64,0\n70,0,33,0,46,0,14,0,9,0,24,0\n1,0,3,0,50,0,11,0,6,0,56,0\n35,0,36,0,28,0,54,0,43,0,45,0\n23,0,40,0,62,0,22,0,26,0,2,0\n63,0,52,0,41,0,69,0,8,0,61,0\n16,0,38,0,39,0,18,0,27,0,4,0\n67,0,9,0,12,0,3,0,25,0,66,0\n37,0,31,0,49,0,21,0,46,0,47,0\n57,0,51,0,71,0,55,0,42,0,48,0\n68,0,7,0,34,0,5,0,54,0,50,0\n15,0,33,0,11,0,30,0,10,0,58,0\n60,0,13,0,70,0,64,0,59,0,56,0\n24,0,65,0,35,0,32,0,29,0,1,0\n44,0,20,0,6,0,17,0,14,0,19,0\n21,0,48,0,63,0,53,0,39,0,68,0\n50,0,2,0,8,0,23,0,30,0,9,0\n22,0,52,0,40,0,3,0,64,0,28,0\n66,0,12,0,29,0,42,0,69,0,49,0\n36,0,17,0,56,0,37,0,38,0,4,0\n70,0,18,0,14,0,41,0,58,0,5,0\n10,0,1,0,54,0,20,0,60,0,61,0\n31,0,46,0,57,0,62,0,16,0,35,0\n47,0,51,0,6,0,25,0,11,0,32,0\n71,0,43,0,44,0,59,0,15,0,67,0\n45,0,53,0,33,0,34,0,65,0,19,0\n26,0,55,0,7,0,24,0,13,0,27,0\n61,0,58,0,49,0,57,0,40,0,4,0\n31,0,68,0,22,0,9,0,56,0,29,0\n30,0,16,0,32,0,23,0,43,0,70,0\n33,0,51,0,50,0,39,0,44,0,37,0\n24,0,69,0,59,0,15,0,65,0,6,0\n19,0,41,0,1,0,54,0,3,0,42,0\n45,0,20,0,62,0,71,0,12,0,11,0\n14,0,10,0,27,0,34,0,52,0,47,0\n17,0,66,0,55,0,35,0,60,0,18,0\n28,0,8,0,63,0,13,0,7,0,38,0\n2,0,21,0,36,0,67,0,64,0,48,0\n46,0,26,0,53,0,25,0,5,0,56,0\n39,0,40,0,50,0,57,0,41,0,24,0\n47,0,68,0,11,0,42,0,23,0,52,0\n19,0,35,0,31,0,15,0,34,0,13,0\n58,0,20,0,48,0,3,0,67,0,7,0\n70,0,25,0,44,0,8,0,65,0,45,0\n36,0,33,0,26,0,12,0,63,0,16,0\n54,0,59,0,6,0,46,0,55,0,64,0\n66,0,69,0,5,0,1,0,27,0,28,0\n43,0,9,0,17,0,21,0,49,0,10,0\n4,0,2,0,32,0,22,0,60,0,14,0\n51,0,61,0,38,0,71,0,53,0,29,0\n37,0,18,0,20,0,62,0,30,0,34,0\n54,0,69,0,25,0,31,0,50,0,16,0\n6,0,5,0,63,0,48,0,66,0,23,0\n35,0,49,0,41,0,27,0,68,0,33,0\n60,0,26,0,57,0,70,0,53,0,9,0\n45,0,56,0,7,0,52,0,2,0,39,0\n19,0,10,0,46,0,71,0,38,0,1,0\n44,0,13,0,3,0,61,0,37,0,32,0\n4,0,24,0,64,0,43,0,47,0,8,0\n14,0,12,0,30,0,40,0,17,0,51,0\n42,0,58,0,22,0,65,0,21,0,55,0\n11,0,67,0,18,0,29,0,59,0,28,0\n62,0,15,0,25,0,36,0,7,0,49,0\n8,0,34,0,44,0,68,0,60,0,16,0\n47,0,4,0,63,0,19,0,71,0,50,0\n20,0,65,0,56,0,35,0,27,0,6,0\n40,0,2,0,31,0,59,0,66,0,33,0\n70,0,42,0,61,0,62,0,43,0,28,0\n64,0,45,0,10,0,57,0,37,0,14,0\n5,0,38,0,9,0,24,0,58,0,11,0\n39,0,48,0,41,0,15,0,54,0,22,0\n67,0,53,0,32,0,46,0,12,0,52,0\n3,0,36,0,29,0,26,0,23,0,17,0\n1,0,21,0,13,0,51,0,18,0,30,0\n69,0,38,0,11,0,55,0,14,0,35,0\n54,0,39,0,9,0,62,0,47,0,19,0\n60,0,25,0,52,0,33,0,5,0,20,0\n28,0,32,0,26,0,31,0,8,0,48,0\n61,0,71,0,24,0,56,0,30,0,68,0\n59,0,53,0,27,0,42,0,36,0,10,0\n55,0,50,0,29,0,12,0,21,0,15,0\n2,0,23,0,49,0,44,0,58,0,1,0\n17,0,46,0,34,0,41,0,40,0,66,0\n3,0,6,0,22,0,16,0,45,0,13,0\n4,0,51,0,7,0,70,0,67,0,69,0\n43,0,37,0,65,0,57,0,63,0,18,0\n64,0,14,0,26,0,1,0,68,0,15,0\n32,0,56,0,19,0,66,0,36,0,62,0\n50,0,10,0,60,0,38,0,28,0,49,0\n40,0,48,0,29,0,45,0,70,0,47,0\n24,0,16,0,22,0,20,0,11,0,53,0\n35,0,23,0,61,0,64,0,12,0,7,0\n31,0,67,0,44,0,55,0,63,0,30,0\n37,0,34,0,41,0,2,0,59,0,25,0\n27,0,57,0,3,0,71,0,21,0,8,0\n17,0,65,0,5,0,39,0,43,0,13,0\n46,0,58,0,54,0,52,0,51,0,69,0\n9,0,18,0,33,0,6,0,42,0,4,0\n45,0,60,0,1,0,41,0,68,0,67,0\n12,0,55,0,34,0,70,0,56,0,28,0\n61,0,30,0,7,0,66,0,65,0,14,0\n29,0,39,0,8,0,46,0,20,0,36,0\n40,0,58,0,13,0,25,0,43,0,50,0\n37,0,42,0,71,0,23,0,31,0,54,0\n15,0,9,0,64,0,27,0,32,0,63,0\n24,0,10,0,2,0,35,0,51,0,3,0\n69,0,62,0,33,0,17,0,53,0,47,0\n18,0,49,0,19,0,26,0,11,0,48,0\n16,0,59,0,4,0,52,0,5,0,21,0\n38,0,57,0,6,0,44,0,22,0,12,0\n"
  },
  {
    "path": "schedules/71_14.csv",
    "content": "44,0,56,0,68,0,45,0,28,0,53,0\n13,0,48,0,15,0,18,0,27,0,57,0\n4,0,65,0,46,0,32,0,66,0,17,0\n69,0,41,0,8,0,23,0,31,0,38,0\n55,0,43,0,22,0,33,0,19,0,21,0\n30,0,47,0,42,0,40,0,36,0,35,0\n62,0,7,0,60,0,34,0,63,0,58,0\n39,0,12,0,1,0,70,0,16,0,37,0\n52,0,59,0,10,0,29,0,9,0,26,0\n3,0,14,0,6,0,64,0,50,0,61,0\n25,0,5,0,71,0,51,0,24,0,54,0\n20,0,2,0,67,0,49,0,11,0,60,0\n12,0,56,0,53,0,23,0,48,0,7,0\n10,0,63,0,62,0,65,0,39,0,66,0\n30,0,22,0,16,0,46,0,43,0,18,0\n26,0,35,0,31,0,14,0,29,0,15,0\n71,0,59,0,69,0,52,0,41,0,40,0\n33,0,34,0,6,0,47,0,1,0,68,0\n45,0,9,0,13,0,55,0,4,0,25,0\n61,0,49,0,19,0,44,0,27,0,24,0\n11,0,2,0,8,0,58,0,70,0,32,0\n20,0,50,0,38,0,57,0,36,0,64,0\n51,0,37,0,21,0,54,0,42,0,3,0\n67,0,5,0,22,0,28,0,17,0,31,0\n1,1,60,0,66,0,65,1,55,0,48,0\n8,0,7,0,27,0,29,0,6,0,68,0\n24,0,71,0,64,0,69,0,32,0,33,0\n40,0,39,0,10,0,34,0,20,0,43,0\n3,0,17,0,38,0,25,0,19,0,11,0\n4,0,35,0,58,0,50,0,37,0,12,0\n36,0,56,0,67,0,5,0,15,0,61,0\n53,0,42,0,51,0,57,0,14,0,9,0\n13,0,70,0,52,0,30,0,62,0,41,0\n59,0,47,0,28,0,16,0,23,0,2,0\n45,0,18,0,26,0,63,0,44,0,21,0\n46,0,49,0,39,0,54,0,6,0,56,0\n37,0,67,0,3,0,20,0,29,0,71,0\n53,0,41,0,11,0,64,0,66,0,22,0\n33,0,70,0,14,0,23,0,65,0,27,0\n2,0,61,0,52,0,21,0,42,0,12,0\n16,0,32,0,36,0,60,0,25,0,26,0\n34,0,24,0,1,0,28,0,46,0,35,0\n44,0,43,0,15,0,9,0,69,0,48,0\n63,0,59,0,19,0,47,0,31,0,4,0\n5,0,38,0,54,0,62,0,55,0,18,0\n40,0,68,0,51,0,13,0,57,0,17,0\n45,0,58,0,50,0,10,0,30,0,49,0\n7,0,56,0,22,0,8,0,52,0,67,0\n37,0,1,0,48,0,4,0,59,0,21,0\n2,0,42,0,44,0,38,0,29,0,70,0\n6,0,32,0,19,0,12,0,35,0,60,0\n17,0,65,0,30,0,15,0,16,0,3,0\n50,0,62,0,47,0,71,0,8,0,43,0\n34,0,14,0,10,0,69,0,7,0,18,0\n27,0,11,0,54,0,63,0,13,0,53,0\n55,0,61,0,26,0,28,0,49,0,51,0\n45,0,57,0,31,0,24,0,58,0,36,0\n68,0,41,0,64,0,39,0,5,0,9,0\n20,0,23,0,33,0,25,0,40,0,66,0\n16,0,50,0,44,0,46,0,2,0,13,0\n37,0,17,0,43,0,61,0,14,0,60,0\n4,0,34,0,19,0,70,0,56,0,71,0\n39,0,69,0,24,0,1,0,36,0,3,0\n54,0,66,0,30,0,26,0,59,0,64,0\n28,0,27,0,29,0,41,0,12,0,25,0\n35,0,38,0,9,0,7,0,65,0,49,0\n31,0,18,0,67,0,33,0,51,0,45,0\n6,0,62,0,57,0,11,0,22,0,23,0\n46,0,8,0,53,0,20,0,63,0,15,0\n5,0,48,0,47,0,32,0,42,0,52,0\n40,0,21,0,55,0,10,0,68,0,58,0\n36,0,66,0,14,0,67,0,19,0,9,0\n44,0,61,0,70,0,71,0,31,0,7,0\n25,0,33,0,27,0,35,0,2,0,30,0\n12,0,48,0,59,0,69,0,17,0,50,0\n63,0,41,0,28,0,51,0,58,0,6,0\n54,0,49,0,62,0,43,0,52,0,68,0\n13,0,18,0,24,0,65,0,20,0,56,0\n42,0,16,0,64,0,34,0,8,0,45,0\n26,0,11,0,57,0,4,0,37,0,5,0\n3,0,47,0,23,0,10,0,15,0,55,0\n22,0,53,0,1,0,38,0,40,0,60,0\n32,0,21,0,46,0,39,0,29,0,36,0\n54,0,35,0,20,0,44,0,41,0,45,0\n14,0,27,0,69,0,11,0,56,0,58,0\n71,0,65,0,52,0,57,0,66,0,61,0\n8,0,15,0,30,0,51,0,48,0,4,0\n59,0,13,0,16,0,7,0,19,0,5,0\n29,0,55,0,31,0,50,0,39,0,53,0\n28,0,64,0,12,0,47,0,60,0,10,0\n38,0,43,0,32,0,68,0,23,0,46,0\n2,0,40,0,18,0,9,0,24,0,37,0\n42,0,49,0,17,0,63,0,33,0,1,0\n62,0,25,0,70,0,6,0,67,0,21,0\n26,0,3,0,66,0,22,0,34,0,12,0\n61,0,47,0,45,0,11,0,38,0,46,0\n10,0,57,0,48,0,16,0,54,0,31,0\n52,0,39,0,20,0,51,0,17,0,27,0\n2,0,55,0,63,0,71,0,35,0,1,0\n29,0,23,0,49,0,13,0,34,0,64,0\n50,0,22,0,70,0,14,0,25,0,24,0\n53,0,6,0,37,0,30,0,5,0,36,0\n44,0,40,0,3,0,32,0,62,0,4,0\n42,0,19,0,68,0,26,0,67,0,69,0\n65,0,60,0,15,0,41,0,21,0,7,0\n33,0,9,0,18,0,58,0,8,0,28,0\n56,0,43,0,57,0,59,0,35,0,25,0\n14,0,31,0,12,0,13,0,1,0,62,0\n10,0,46,0,26,0,53,0,71,0,27,0\n67,0,4,0,24,0,41,0,16,0,6,0\n19,0,30,0,58,0,20,0,5,0,68,0\n37,0,33,0,39,0,7,0,38,0,44,0\n43,0,64,0,21,0,17,0,56,0,55,0\n51,0,3,0,70,0,59,0,18,0,49,0\n28,0,15,0,42,0,66,0,11,0,50,0\n69,0,54,0,34,0,22,0,2,0,65,0\n32,0,48,0,40,0,29,0,61,0,63,0\n52,0,45,0,23,0,36,0,8,0,60,0\n47,0,21,0,24,0,9,0,44,0,17,0\n68,0,35,0,16,0,64,0,70,0,31,0\n7,0,28,0,20,0,43,0,4,0,42,0\n38,0,33,0,26,0,50,0,6,0,48,0\n59,0,32,0,55,0,34,0,67,0,27,0\n22,0,51,0,36,0,65,0,10,0,12,0\n15,0,23,0,1,0,52,0,54,0,19,0\n58,0,18,0,61,0,47,0,25,0,53,0\n41,0,66,0,13,0,2,0,45,0,37,0\n71,0,40,0,49,0,14,0,39,0,8,0\n5,0,60,0,69,0,46,0,62,0,29,0\n63,0,56,0,9,0,30,0,3,0,57,0\n11,0,36,0,6,0,59,0,44,0,34,0\n17,0,35,0,67,0,53,0,10,0,23,0\n68,0,50,0,27,0,47,0,70,0,66,0\n43,0,58,0,60,0,26,0,13,0,42,0\n9,0,4,0,61,0,39,0,54,0,22,0\n38,0,21,0,15,0,16,0,63,0,71,0\n25,0,8,0,37,0,65,0,19,0,69,0\n7,0,52,0,30,0,24,0,11,0,55,0\n29,0,32,0,64,0,1,0,18,0,51,0\n5,0,40,0,31,0,2,0,56,0,3,0\n28,0,14,0,62,0,48,0,20,0,45,0\n41,0,57,0,46,0,49,0,33,0,12,0\n27,0,60,0,59,0,4,0,38,0,10,0\n1,0,65,0,58,0,67,0,30,0,44,0\n53,0,26,0,70,0,69,0,47,0,13,0\n31,0,63,0,25,0,37,0,64,0,52,0\n56,0,16,0,29,0,61,0,33,0,62,0\n39,0,57,0,51,0,19,0,28,0,2,0\n41,0,42,0,14,0,55,0,3,0,46,0\n20,0,9,0,21,0,32,0,50,0,34,0\n45,0,12,0,15,0,40,0,43,0,6,0\n11,0,68,0,71,0,48,0,35,0,22,0\n8,0,23,0,66,0,24,0,49,0,5,0\n7,0,17,0,36,0,54,0,18,0,28,0\n56,0,61,0,10,0,41,0,26,0,1,0\n6,0,20,0,69,0,9,0,16,0,55,0\n46,0,48,0,19,0,40,0,64,0,58,0\n65,0,11,0,34,0,31,0,51,0,43,0\n49,0,22,0,37,0,32,0,47,0,15,0\n29,0,60,0,17,0,70,0,54,0,57,0\n4,0,2,0,33,0,62,0,36,0,53,0\n52,0,44,0,66,0,30,0,38,0,14,0\n25,0,18,0,23,0,42,0,39,0,71,0\n27,0,13,0,35,0,21,0,8,0,3,0\n63,0,12,0,24,0,67,0,68,0,59,0\n50,0,7,0,1,0,45,0,5,0,65,0\n"
  },
  {
    "path": "schedules/71_2.csv",
    "content": "62,0,61,0,27,0,39,0,50,0,29,0\n7,0,34,0,3,0,67,0,40,0,57,0\n36,0,42,0,48,0,71,0,17,0,43,0\n11,0,10,0,5,0,65,0,58,0,12,0\n22,0,41,0,19,0,59,0,4,0,45,0\n25,0,2,0,28,0,13,0,53,0,9,0\n52,0,60,0,20,0,26,0,23,0,46,0\n49,0,31,0,68,0,21,0,51,0,30,0\n38,0,66,0,8,0,14,0,47,0,54,0\n1,0,18,0,55,0,33,0,44,0,56,0\n24,0,6,0,35,0,32,0,63,0,37,0\n15,0,69,0,70,0,64,0,16,0,53,0\n11,0,68,0,29,0,34,0,9,0,22,0\n50,0,57,0,23,0,47,0,48,0,25,0\n21,0,26,0,42,0,27,0,58,0,54,0\n6,0,65,0,20,0,7,0,62,0,43,0\n70,0,19,0,12,0,61,0,49,0,37,0\n33,0,60,0,28,0,67,0,5,0,38,0\n63,0,14,0,4,0,31,0,39,0,55,0\n3,0,45,0,18,0,36,0,15,0,2,0\n17,0,10,0,40,0,30,0,69,0,1,0\n44,0,59,0,66,0,24,0,51,0,52,0\n32,0,46,0,56,0,71,0,41,0,64,0\n16,0,13,0,61,1,35,0,8,0,11,1\n"
  },
  {
    "path": "schedules/71_3.csv",
    "content": "54,0,15,0,41,0,19,0,52,0,55,0\n33,0,45,0,21,0,34,0,22,0,63,0\n24,0,14,0,66,0,37,0,65,0,42,0\n68,0,13,0,67,0,28,0,71,0,29,0\n12,0,26,0,58,0,17,0,36,0,44,0\n64,0,48,0,69,0,23,0,40,0,51,0\n9,0,47,0,2,0,61,0,53,0,20,0\n8,0,30,0,32,0,31,0,62,0,25,0\n6,0,49,0,60,0,4,0,43,0,39,0\n50,0,7,0,27,0,10,0,35,0,38,0\n18,0,59,0,5,0,56,0,3,0,70,0\n1,0,16,0,11,0,46,0,57,0,21,0\n26,1,40,0,22,0,15,1,24,0,29,0\n34,1,43,0,36,0,20,0,41,0,8,0\n4,0,37,0,10,0,68,0,54,0,47,0\n38,0,18,0,39,0,32,0,2,0,42,0\n25,0,5,0,58,0,7,0,67,0,66,0\n6,0,46,0,33,0,59,0,27,0,62,0\n3,0,17,0,14,0,13,0,9,0,51,0\n1,0,44,0,60,0,70,0,53,0,69,0\n45,0,35,0,16,0,56,0,48,0,55,0\n71,0,65,0,23,0,19,0,49,0,30,0\n28,0,12,0,52,0,11,0,61,0,64,0\n57,0,63,0,29,0,31,0,50,0,37,0\n54,0,53,0,32,0,21,0,58,0,14,0\n7,0,47,0,6,0,18,0,48,0,26,0\n22,0,2,0,43,0,3,0,44,0,16,0\n30,0,67,0,56,0,4,0,69,0,15,0\n64,0,33,0,55,0,1,0,39,0,24,0\n17,0,8,0,71,0,46,0,60,0,63,0\n68,0,11,0,31,0,49,0,66,0,34,0\n51,0,25,0,41,0,38,0,12,0,57,0\n28,0,70,0,23,0,45,0,9,0,27,0\n59,0,52,0,50,0,65,0,36,0,13,0\n19,0,20,0,40,0,35,0,5,0,42,0\n62,0,61,0,15,0,10,0,26,0,34,0\n"
  },
  {
    "path": "schedules/71_4.csv",
    "content": "63,0,50,0,69,0,33,0,55,0,24,0\n20,0,61,0,34,0,11,0,7,0,1,0\n57,0,14,0,60,0,43,0,59,0,67,0\n38,0,46,0,71,0,58,0,10,0,12,0\n6,0,23,0,48,0,26,0,35,0,47,0\n70,0,39,0,45,0,29,0,36,0,18,0\n27,0,52,0,64,0,13,0,8,0,51,0\n9,0,66,0,22,0,16,0,30,0,19,0\n49,0,25,0,31,0,37,0,41,0,40,0\n28,0,42,0,4,0,3,0,62,0,17,0\n68,0,56,0,32,0,53,0,54,0,65,0\n44,0,2,0,15,0,5,0,21,0,64,0\n24,0,8,0,61,0,35,0,19,0,60,0\n25,0,30,0,52,0,46,0,36,0,69,0\n62,0,51,0,10,0,34,0,31,0,63,0\n68,0,40,0,11,0,22,0,39,0,67,0\n12,0,29,0,16,0,23,0,41,0,2,0\n18,0,54,0,14,0,33,0,4,0,71,0\n47,0,55,0,66,0,56,0,70,0,13,0\n5,0,65,0,50,0,20,0,3,0,38,0\n57,0,26,0,9,0,32,0,42,0,44,0\n37,0,53,0,59,0,1,0,6,0,27,0\n15,0,17,0,7,0,45,0,49,0,58,0\n28,0,43,0,24,0,21,0,48,0,70,0\n30,1,67,0,18,0,2,1,31,0,8,0\n39,1,51,0,9,0,47,1,60,0,25,0\n37,0,44,0,52,0,71,0,23,0,61,0\n54,0,12,0,59,0,40,0,45,0,50,0\n55,0,27,0,62,0,7,0,57,0,5,0\n64,0,1,0,58,0,65,0,66,0,63,0\n26,0,36,0,4,0,56,0,22,0,49,0\n43,0,42,0,33,0,68,0,20,0,6,0\n38,0,32,0,19,0,28,0,11,0,14,0\n48,0,46,0,3,0,53,0,29,0,15,0\n69,0,21,0,41,0,13,0,10,0,35,0\n16,0,36,0,67,0,34,0,17,0,44,0\n25,0,56,0,71,0,20,0,59,0,2,0\n61,0,45,0,22,0,28,0,33,0,27,0\n55,0,51,0,40,0,15,0,4,0,1,0\n6,0,65,0,70,0,12,0,52,0,57,0\n7,0,46,0,39,0,41,0,66,0,26,0\n11,0,42,0,16,0,5,0,47,0,24,0\n49,0,30,0,60,0,32,0,63,0,29,0\n53,0,13,0,34,0,18,0,19,0,50,0\n69,0,8,0,37,0,68,0,17,0,48,0\n3,0,21,0,31,0,9,0,58,0,23,0\n35,0,38,0,43,0,64,0,62,0,54,0\n10,0,2,0,47,0,14,0,30,0,39,0\n"
  },
  {
    "path": "schedules/71_5.csv",
    "content": "3,0,25,0,28,0,37,0,43,0,69,0\n33,0,2,0,65,0,45,0,11,0,55,0\n68,0,70,0,26,0,12,0,18,0,5,0\n15,0,61,0,49,0,29,0,13,0,20,0\n31,0,36,0,27,0,16,0,30,0,10,0\n17,0,21,0,40,0,35,0,56,0,44,0\n53,0,66,0,60,0,7,0,23,0,57,0\n48,0,4,0,19,0,24,0,32,0,34,0\n63,0,14,0,41,0,67,0,52,0,54,0\n51,0,38,0,9,0,47,0,62,0,42,0\n8,0,46,0,64,0,22,0,50,0,1,0\n58,0,39,0,59,0,71,0,6,0,31,0\n53,0,69,0,11,0,30,0,19,0,17,0\n66,0,3,0,10,0,13,0,48,0,55,0\n26,0,52,0,9,0,40,0,16,0,20,0\n51,0,65,0,23,0,24,0,8,0,28,0\n54,0,21,0,34,0,64,0,68,0,61,0\n32,0,38,0,37,0,12,0,36,0,33,0\n14,0,57,0,49,0,56,0,50,0,59,0\n60,0,4,0,47,0,71,0,67,0,5,0\n63,0,6,0,1,0,62,0,44,0,70,0\n2,0,7,0,43,0,22,0,41,0,58,0\n27,0,29,0,35,0,25,0,39,0,46,0\n15,0,45,0,32,0,18,0,42,0,14,0\n40,1,24,0,55,0,38,1,53,0,49,0\n11,1,26,0,31,0,63,1,28,0,21,0\n54,0,62,0,8,0,13,1,4,0,57,0\n71,0,12,0,29,0,69,0,41,0,66,0\n37,0,42,0,58,0,68,0,46,0,52,0\n23,0,61,0,35,0,16,0,19,0,18,0\n2,0,64,0,67,0,36,0,6,0,3,0\n33,0,59,0,34,0,9,0,70,0,60,0\n48,0,47,0,30,0,44,0,7,0,45,0\n39,0,17,0,51,0,43,0,1,0,15,0\n22,0,5,0,20,0,56,0,27,0,65,0\n25,0,50,0,24,0,10,0,2,0,63,0\n8,0,41,0,16,0,21,0,3,0,32,0\n64,0,37,0,60,0,45,0,49,0,26,0\n55,0,9,0,6,0,46,0,7,0,54,0\n14,0,29,0,62,0,34,0,11,0,43,0\n57,0,70,0,15,0,27,0,58,0,40,0\n59,0,67,0,30,0,61,0,38,0,22,0\n71,0,44,0,42,0,28,0,20,0,10,0\n69,0,33,0,13,0,35,0,51,0,5,0\n4,0,1,0,12,0,23,0,25,0,31,0\n47,0,19,0,39,0,50,0,65,0,66,0\n56,0,53,0,18,0,48,0,36,0,52,0\n68,0,20,0,3,0,17,0,59,0,63,0\n44,0,14,0,46,0,26,0,69,0,38,0\n11,0,27,0,41,0,51,0,49,0,4,0\n71,0,57,0,25,0,30,0,55,0,21,0\n18,0,43,0,64,0,31,0,13,0,65,0\n48,0,42,0,50,0,17,0,23,0,6,0\n45,0,34,0,67,0,53,0,8,0,12,0\n10,0,54,0,40,0,5,0,37,0,39,0\n61,0,58,0,36,0,24,0,1,0,9,0\n29,0,56,0,16,0,47,0,70,0,2,0\n66,0,22,0,68,0,32,0,35,0,28,0\n52,0,7,0,33,0,15,0,19,0,62,0\n38,0,11,0,13,0,60,0,40,0,63,0\n"
  },
  {
    "path": "schedules/71_6.csv",
    "content": "10,0,3,0,25,0,2,0,4,0,31,0\n23,0,20,0,35,0,54,0,42,0,28,0\n56,0,18,0,6,0,27,0,32,0,66,0\n49,0,68,0,48,0,67,0,58,0,17,0\n9,0,46,0,38,0,62,0,1,0,7,0\n60,0,61,0,12,0,39,0,41,0,53,0\n11,0,24,0,33,0,40,0,50,0,43,0\n15,0,59,0,64,0,57,0,44,0,30,0\n55,0,8,0,69,0,52,0,21,0,34,0\n63,0,29,0,71,0,13,0,47,0,51,0\n5,0,65,0,14,0,45,0,26,0,16,0\n36,0,19,0,70,0,37,0,22,0,3,0\n11,0,42,0,7,0,17,0,56,0,53,0\n58,0,39,0,44,0,32,0,31,0,24,0\n59,0,67,0,1,0,34,0,28,0,13,0\n10,0,41,0,63,0,45,0,18,0,35,0\n12,0,64,0,4,0,19,0,66,0,43,0\n16,0,51,0,62,0,69,0,68,0,33,0\n8,0,20,0,47,0,46,0,36,0,15,0\n9,0,40,0,52,0,48,0,54,0,26,0\n21,0,61,0,22,0,57,0,50,0,25,0\n27,0,29,0,23,0,70,0,2,0,14,0\n6,0,60,0,38,0,30,0,49,0,65,0\n37,0,71,0,17,0,55,0,5,0,10,0\n1,0,45,0,3,0,43,0,8,0,54,0\n40,0,58,0,20,0,7,0,64,0,41,0\n67,0,31,0,19,0,50,0,52,0,62,0\n36,0,39,0,16,0,38,0,66,0,57,0\n46,0,14,0,60,0,4,0,48,0,59,0\n69,0,53,0,5,0,24,0,27,0,28,0\n35,0,9,0,34,0,47,0,49,0,70,0\n51,0,2,0,42,0,18,0,30,0,61,0\n55,0,12,0,15,0,32,0,11,0,29,0\n22,0,13,0,44,0,23,0,33,0,6,0\n56,0,21,0,63,0,65,0,68,0,37,0\n26,0,25,0,43,0,71,0,70,0,69,0\n67,0,10,0,36,0,9,0,53,0,51,0\n57,0,11,0,28,0,60,0,8,0,31,0\n49,0,46,0,50,0,12,0,42,0,44,0\n41,0,65,0,48,0,27,0,19,0,13,0\n54,0,63,0,2,0,5,0,15,0,33,0\n14,0,32,0,52,0,1,0,61,0,68,0\n20,0,34,0,25,0,24,0,56,0,38,0\n55,0,66,0,3,0,35,0,7,0,26,0\n4,0,71,0,21,0,23,0,39,0,30,0\n47,0,62,0,45,0,6,0,40,0,59,0\n29,0,16,0,17,0,64,0,22,0,18,0\n37,0,13,0,53,0,58,0,52,0,38,0\n50,0,56,0,28,0,48,0,36,0,55,0\n66,0,33,0,67,0,8,0,25,0,14,0\n4,0,68,0,5,0,11,0,6,0,35,0\n43,0,39,0,59,0,65,0,20,0,2,0\n41,0,69,0,30,0,3,0,9,0,29,0\n57,0,26,0,23,0,62,0,63,0,32,0\n22,0,58,0,15,0,1,0,60,0,51,0\n24,0,37,0,18,0,12,0,47,0,7,0\n45,0,64,0,31,0,27,0,71,0,49,0\n34,0,40,0,19,0,61,0,44,0,17,0\n70,0,21,0,54,0,46,0,16,0,10,0\n42,0,52,0,36,0,63,0,6,0,25,0\n18,0,13,0,50,0,39,0,68,0,8,0\n23,0,58,0,45,0,12,0,9,0,56,0\n41,0,22,0,66,0,5,0,31,0,59,0\n7,0,54,0,29,0,61,0,4,0,65,0\n14,0,62,0,49,0,21,0,3,0,53,0\n32,0,17,0,30,0,28,0,43,0,46,0\n48,0,51,0,44,0,20,0,70,0,11,0\n42,0,37,0,57,0,69,0,1,0,40,0\n55,0,47,0,38,0,2,0,67,0,64,0\n24,0,19,0,35,0,15,0,16,0,71,0\n33,0,27,0,60,0,34,0,26,0,10,0\n"
  },
  {
    "path": "schedules/71_7.csv",
    "content": "54,0,12,0,65,0,21,0,11,0,47,0\n67,0,14,0,59,0,10,0,69,0,2,0\n26,0,43,0,27,0,56,0,39,0,7,0\n15,0,57,0,8,0,63,0,16,0,50,0\n29,0,66,0,38,0,40,0,30,0,9,0\n19,0,24,0,18,0,28,0,5,0,58,0\n61,0,53,0,46,0,44,0,37,0,60,0\n35,0,20,0,23,0,62,0,49,0,4,0\n25,0,51,0,1,0,71,0,42,0,34,0\n36,0,33,0,48,0,17,0,70,0,6,0\n55,0,32,0,64,0,41,0,68,0,22,0\n31,0,3,0,13,0,45,0,52,0,7,0\n4,0,37,0,24,0,2,0,54,0,26,0\n56,0,62,0,28,0,59,0,44,0,40,0\n30,0,15,0,20,0,33,0,27,0,71,0\n17,0,23,0,68,0,46,0,11,0,34,0\n67,0,58,0,1,0,12,0,8,0,61,0\n47,0,14,0,50,0,51,0,64,0,18,0\n39,0,35,0,45,0,66,0,16,0,36,0\n10,0,60,0,31,0,38,0,49,0,41,0\n43,0,5,0,25,0,65,0,70,0,9,0\n3,0,69,0,42,0,32,0,48,0,53,0\n19,0,22,0,13,0,21,0,29,0,57,0\n6,0,63,0,40,0,55,0,52,0,23,0\n64,1,10,0,4,0,18,0,61,0,39,0\n28,0,30,0,54,0,45,0,8,0,41,0\n37,0,34,0,3,0,35,0,5,0,14,0\n42,0,26,0,65,0,20,0,22,0,31,0\n48,0,15,0,52,0,43,0,11,0,19,0\n56,0,53,0,57,0,67,0,24,0,68,0\n38,0,32,0,21,0,25,0,33,0,46,0\n60,0,12,0,71,0,6,0,66,0,2,0\n63,0,69,0,70,0,13,0,62,0,47,0\n59,0,9,0,7,0,58,0,16,0,49,0\n27,0,44,0,51,0,55,0,36,0,29,0\n1,0,17,0,38,0,50,0,43,0,20,0\n33,0,4,0,5,0,11,0,40,0,67,0\n68,0,39,0,47,0,48,0,25,0,28,0\n41,0,12,0,57,0,42,0,59,0,37,0\n14,0,45,0,61,0,32,0,6,0,29,0\n15,0,44,0,22,0,58,0,23,0,66,0\n8,0,2,0,13,0,49,0,18,0,56,0\n69,0,64,0,31,0,34,0,19,0,27,0\n9,0,50,0,60,0,55,0,3,0,54,0\n30,0,7,0,21,0,36,0,1,0,63,0\n10,0,53,0,71,0,26,0,35,0,70,0\n16,0,65,0,51,0,17,0,52,0,24,0\n46,0,48,0,18,0,62,0,31,0,57,0\n47,0,20,0,44,0,9,0,32,0,67,0\n11,0,22,0,56,0,45,0,37,0,25,0\n6,0,49,0,54,0,5,0,69,0,1,0\n2,0,38,0,70,0,51,0,39,0,3,0\n63,0,41,0,19,0,65,0,71,0,4,0\n40,0,42,0,58,0,50,0,46,0,35,0\n7,0,66,0,33,0,14,0,68,0,10,0\n62,0,17,0,59,0,55,0,30,0,53,0\n21,0,28,0,16,0,27,0,23,0,61,0\n12,0,64,0,36,0,24,0,15,0,13,0\n52,0,29,0,8,0,60,0,26,0,34,0\n43,0,33,0,37,0,63,0,58,0,31,0\n20,0,6,0,46,0,3,0,56,0,41,0\n17,0,49,0,39,0,19,0,42,0,14,0\n64,0,5,0,2,0,44,0,45,0,48,0\n68,0,13,0,51,0,59,0,54,0,35,0\n26,0,30,0,25,0,57,0,23,0,69,0\n1,0,18,0,40,0,60,0,15,0,32,0\n7,0,50,0,67,0,28,0,34,0,65,0\n16,0,29,0,47,0,53,0,43,0,4,0\n10,0,27,0,9,0,12,0,22,0,52,0\n55,0,70,0,66,0,21,0,8,0,24,0\n61,0,11,0,71,0,36,0,38,0,62,0\n3,0,68,0,18,0,44,0,65,0,30,0\n69,0,29,0,41,0,50,0,33,0,39,0\n53,0,19,0,12,0,51,0,7,0,23,0\n28,0,4,0,32,0,66,0,17,0,57,0\n67,0,42,0,62,0,64,0,6,0,16,0\n14,0,25,0,58,0,13,0,60,0,27,0\n11,0,2,0,31,0,35,0,1,0,9,0\n48,0,49,0,40,0,71,0,21,0,37,0\n43,0,36,0,59,0,46,0,22,0,8,0\n15,0,5,0,55,0,38,0,47,0,26,0\n34,0,24,0,45,0,63,0,20,0,10,0\n70,0,56,0,52,0,54,0,61,0,64,0\n"
  },
  {
    "path": "schedules/71_8.csv",
    "content": "28,0,58,0,7,0,38,0,29,0,48,0\n27,0,57,0,53,0,1,0,55,0,40,0\n46,0,26,0,23,0,24,0,18,0,56,0\n52,0,42,0,35,0,54,0,13,0,12,0\n62,0,68,0,8,0,3,0,51,0,32,0\n61,0,22,0,4,0,9,0,50,0,10,0\n44,0,34,0,65,0,39,0,66,0,20,0\n19,0,25,0,21,0,47,0,11,0,43,0\n64,0,33,0,59,0,30,0,15,0,16,0\n63,0,45,0,6,0,37,0,71,0,70,0\n14,0,49,0,60,0,36,0,69,0,17,0\n31,0,41,0,67,0,2,0,5,0,26,0\n58,0,24,0,8,0,21,0,61,0,40,0\n50,0,64,0,3,0,52,0,65,0,1,0\n29,0,18,0,63,0,43,0,39,0,33,0\n32,0,19,0,27,0,54,0,36,0,6,0\n14,0,11,0,53,0,62,0,10,0,16,0\n69,0,38,0,2,0,25,0,66,0,55,0\n34,0,17,0,42,0,28,0,68,0,30,0\n60,0,15,0,47,0,37,0,23,0,7,0\n31,0,13,0,71,0,44,0,22,0,46,0\n49,0,56,0,41,0,35,0,48,0,51,0\n12,0,45,0,59,0,4,0,57,0,67,0\n20,0,70,0,16,0,5,0,9,0,55,0\n1,1,29,0,17,0,23,1,10,0,19,0\n14,0,28,0,66,0,52,0,27,0,8,0\n44,0,6,0,50,0,42,0,24,0,25,0\n3,0,26,0,48,0,12,0,39,0,22,0\n30,0,65,0,71,0,41,0,36,0,61,0\n15,0,67,0,63,0,38,0,20,0,51,0\n43,0,56,0,13,0,62,0,37,0,34,0\n7,0,49,0,9,0,59,0,11,0,40,0\n5,0,21,0,32,0,64,0,18,0,57,0\n35,0,47,0,69,0,4,0,46,0,70,0\n54,0,33,0,53,0,31,0,60,0,58,0\n68,0,45,0,24,0,2,0,10,0,20,0\n37,0,17,0,44,0,3,0,55,0,41,0\n36,0,5,0,65,0,13,0,63,0,11,0\n35,0,19,0,38,0,14,0,40,0,34,0\n67,0,27,0,9,0,29,0,69,0,62,0\n22,0,30,0,51,0,52,0,23,0,57,0\n6,0,1,0,60,0,46,0,59,0,48,0\n12,0,33,0,47,0,2,0,8,0,49,0\n54,0,31,0,18,0,66,0,15,0,68,0\n43,0,26,0,70,0,53,0,28,0,50,0\n61,0,64,0,7,0,56,0,25,0,45,0\n16,0,42,0,39,0,58,0,32,0,4,0\n21,0,38,0,9,0,71,0,12,0,17,0\n3,0,47,0,40,0,30,0,10,0,6,0\n62,0,54,0,63,0,57,0,28,0,41,0\n8,0,69,0,56,0,19,0,20,0,31,0\n66,0,61,0,59,0,29,0,42,0,26,0\n7,0,2,0,36,0,44,0,1,0,18,0\n71,0,55,0,39,0,49,0,24,0,15,0\n35,0,60,0,43,0,65,0,22,0,45,0\n52,0,53,0,37,0,46,0,25,0,5,0\n33,0,13,0,51,0,4,0,27,0,21,0\n32,0,11,0,48,0,34,0,50,0,67,0\n68,0,23,0,70,0,64,0,14,0,58,0\n20,0,29,0,22,0,16,0,49,0,54,0\n2,0,46,0,63,0,3,0,19,0,42,0\n28,0,37,0,10,0,69,0,21,0,59,0\n38,0,27,0,44,0,30,0,56,0,11,0\n4,0,34,0,41,0,53,0,7,0,24,0\n47,0,55,0,67,0,33,0,68,0,52,0\n12,0,14,0,1,0,15,0,32,0,43,0\n40,0,71,0,62,0,66,0,60,0,64,0\n23,0,8,0,5,0,39,0,35,0,50,0\n25,0,70,0,48,0,31,0,57,0,65,0\n9,0,45,0,26,0,36,0,58,0,51,0\n16,0,61,0,6,0,17,0,18,0,13,0\n10,0,64,0,44,0,43,0,49,0,67,0\n21,0,30,0,66,0,63,0,35,0,7,0\n29,0,56,0,40,0,52,0,32,0,70,0\n15,0,41,0,46,0,50,0,45,0,27,0\n26,0,57,0,71,0,16,0,8,0,34,0\n48,0,37,0,20,0,33,0,14,0,61,0\n12,0,23,0,31,0,6,0,55,0,11,0\n3,0,18,0,4,0,25,0,60,0,28,0\n59,0,17,0,58,0,2,0,62,0,65,0\n51,0,1,0,69,0,5,0,24,0,54,0\n36,0,38,0,42,0,22,0,53,0,47,0\n68,0,19,0,39,0,13,0,9,0,41,0\n57,0,11,0,15,0,3,0,35,0,61,0\n70,0,34,0,10,0,18,0,27,0,12,0\n66,0,5,0,48,0,4,0,17,0,43,0\n67,0,25,0,22,0,1,0,58,0,63,0\n32,0,31,0,24,0,28,0,47,0,9,0\n8,0,55,0,36,0,46,0,64,0,29,0\n33,0,40,0,69,0,23,0,42,0,65,0\n16,0,50,0,56,0,21,0,68,0,60,0\n7,0,62,0,52,0,26,0,20,0,6,0\n53,0,19,0,51,0,44,0,59,0,71,0\n39,0,30,0,54,0,2,0,14,0,37,0\n13,0,49,0,1,0,45,0,38,0,23,0\n"
  },
  {
    "path": "schedules/71_9.csv",
    "content": "50,0,36,0,19,0,20,0,47,0,5,0\n51,0,59,0,23,0,30,0,12,0,27,0\n58,0,29,0,54,0,43,0,38,0,61,0\n56,0,4,0,26,0,68,0,41,0,66,0\n13,0,53,0,44,0,52,0,42,0,28,0\n21,0,3,0,37,0,22,0,63,0,16,0\n2,0,33,0,67,0,10,0,34,0,60,0\n57,0,49,0,71,0,6,0,32,0,18,0\n69,0,62,0,64,0,55,0,17,0,31,0\n65,0,8,0,24,0,7,0,14,0,48,0\n39,0,40,0,11,0,1,0,46,0,15,0\n9,0,70,0,35,0,45,0,25,0,10,0\n3,0,13,0,6,0,50,0,43,0,60,0\n31,0,22,0,66,0,61,0,41,0,51,0\n12,0,33,0,21,0,62,0,54,0,32,0\n34,0,14,0,30,0,15,0,5,0,68,0\n69,0,25,0,38,0,49,0,44,0,63,0\n8,0,19,0,11,0,28,0,2,0,17,0\n56,0,47,0,40,0,37,0,9,0,67,0\n4,0,1,0,59,0,45,0,53,0,36,0\n55,0,18,0,46,0,52,0,7,0,16,0\n42,0,57,0,27,0,26,0,65,0,48,0\n35,0,24,0,71,0,20,0,39,0,29,0\n23,0,64,0,60,0,70,0,58,0,47,0\n67,1,53,0,31,0,14,1,6,0,15,0\n51,1,11,0,4,0,18,0,37,0,34,0\n13,0,25,0,1,0,66,0,30,0,57,0\n27,0,36,0,46,0,29,0,8,0,49,0\n58,0,19,0,24,0,32,0,35,0,69,0\n22,0,20,0,2,0,43,0,9,0,12,0\n10,0,39,0,61,0,5,0,63,0,56,0\n23,0,48,0,33,0,40,0,44,0,16,0\n21,0,28,0,7,0,38,0,71,0,26,0\n64,0,41,0,3,0,59,0,54,0,42,0\n68,0,45,0,65,0,62,0,52,0,50,0\n17,0,70,0,29,0,55,0,6,0,51,0\n18,0,44,0,67,0,22,0,39,0,36,0\n63,0,46,0,60,0,14,0,28,0,66,0\n9,0,34,0,61,0,30,0,19,0,26,0\n41,0,15,0,47,0,8,0,71,0,62,0\n31,0,52,0,35,0,4,0,33,0,3,0\n5,0,17,0,7,0,37,0,58,0,42,0\n57,0,24,0,54,0,11,0,59,0,56,0\n20,0,25,0,53,0,32,0,65,0,23,0\n69,0,27,0,16,0,68,0,2,0,13,0\n55,0,49,0,45,0,43,0,21,0,40,0\n70,0,50,0,12,0,48,0,1,0,38,0\n64,0,57,0,36,0,10,0,51,0,52,0\n60,0,25,0,41,0,61,0,15,0,7,0\n58,0,6,0,63,0,8,0,33,0,22,0\n27,0,55,0,20,0,3,0,66,0,44,0\n1,0,43,0,14,0,35,0,26,0,62,0\n45,0,64,0,12,0,46,0,34,0,24,0\n30,0,70,0,38,0,53,0,2,0,11,0\n31,0,50,0,32,0,16,0,9,0,56,0\n19,0,68,0,21,0,23,0,42,0,67,0\n4,0,28,0,47,0,49,0,54,0,39,0\n5,0,59,0,65,0,69,0,40,0,71,0\n10,0,37,0,48,0,13,0,18,0,29,0\n17,0,66,0,36,0,33,0,9,0,38,0\n25,0,43,0,68,0,21,0,46,0,31,0\n1,0,22,0,61,0,42,0,47,0,24,0\n40,0,32,0,63,0,70,0,41,0,34,0\n50,0,2,0,44,0,57,0,4,0,14,0\n51,0,48,0,45,0,54,0,55,0,19,0\n5,0,29,0,26,0,64,0,13,0,49,0\n23,0,28,0,16,0,15,0,35,0,17,0\n71,0,67,0,11,0,52,0,58,0,27,0\n10,0,62,0,20,0,59,0,6,0,7,0\n56,0,30,0,69,0,8,0,18,0,3,0\n12,0,60,0,37,0,53,0,39,0,65,0\n42,0,15,0,2,0,45,0,29,0,32,0\n22,0,35,0,64,0,27,0,50,0,11,0\n66,0,16,0,54,0,5,0,67,0,70,0\n24,0,17,0,44,0,10,0,30,0,41,0\n18,0,58,0,26,0,12,0,31,0,40,0\n53,0,7,0,34,0,47,0,69,0,57,0\n39,0,33,0,59,0,55,0,25,0,14,0\n46,0,38,0,6,0,65,0,19,0,3,0\n13,0,61,0,8,0,23,0,4,0,21,0\n9,0,63,0,51,0,71,0,1,0,68,0\n48,0,49,0,52,0,56,0,20,0,60,0\n43,0,62,0,30,0,28,0,36,0,37,0\n47,0,32,0,14,0,17,0,3,0,45,0\n42,0,16,0,6,0,25,0,11,0,12,0\n10,0,54,0,26,0,46,0,50,0,71,0\n24,0,38,0,5,0,27,0,60,0,31,0\n56,0,15,0,13,0,51,0,65,0,36,0\n68,0,9,0,59,0,58,0,44,0,48,0\n66,0,52,0,39,0,21,0,8,0,34,0\n67,0,43,0,63,0,4,0,64,0,7,0\n29,0,62,0,40,0,53,0,22,0,19,0\n61,0,70,0,33,0,69,0,20,0,28,0\n18,0,49,0,1,0,23,0,41,0,2,0\n55,0,37,0,68,0,57,0,35,0,38,0\n56,0,54,0,34,0,27,0,17,0,25,0\n12,0,52,0,15,0,66,0,47,0,43,0\n8,0,51,0,16,0,60,0,59,0,26,0\n18,0,5,0,9,0,24,0,53,0,21,0\n57,0,3,0,39,0,70,0,62,0,23,0\n7,0,41,0,67,0,33,0,29,0,50,0\n44,0,19,0,14,0,37,0,64,0,71,0\n35,0,36,0,2,0,6,0,40,0,61,0\n65,0,10,0,28,0,1,0,58,0,55,0\n63,0,31,0,11,0,20,0,45,0,13,0\n32,0,4,0,48,0,30,0,46,0,22,0\n42,0,14,0,51,0,49,0,69,0,67,0\n"
  },
  {
    "path": "schedules/72_1.csv",
    "content": "38,0,56,0,25,0,7,0,62,0,12,0\n5,0,36,0,34,0,24,0,35,0,30,0\n16,0,9,0,45,0,26,0,11,0,69,0\n44,0,13,0,51,0,33,0,49,0,39,0\n60,0,37,0,63,0,40,0,17,0,72,0\n61,0,20,0,1,0,14,0,58,0,6,0\n4,0,68,0,48,0,71,0,18,0,28,0\n41,0,65,0,70,0,52,0,47,0,3,0\n2,0,8,0,27,0,29,0,43,0,64,0\n10,0,67,0,42,0,21,0,46,0,23,0\n53,0,59,0,15,0,19,0,57,0,66,0\n31,0,54,0,32,0,50,0,55,0,22,0\n"
  },
  {
    "path": "schedules/72_10.csv",
    "content": "22,0,51,0,71,0,55,0,21,0,19,0\n34,0,16,0,20,0,56,0,12,0,9,0\n11,0,33,0,66,0,64,0,2,0,63,0\n14,0,41,0,62,0,70,0,61,0,28,0\n43,0,18,0,25,0,4,0,57,0,5,0\n46,0,60,0,68,0,26,0,8,0,44,0\n58,0,54,0,53,0,13,0,29,0,17,0\n1,0,39,0,59,0,40,0,52,0,47,0\n37,0,24,0,67,0,6,0,38,0,42,0\n30,0,31,0,50,0,36,0,32,0,7,0\n48,0,72,0,35,0,3,0,45,0,27,0\n49,0,15,0,65,0,69,0,23,0,10,0\n4,0,62,0,8,0,63,0,5,0,11,0\n60,0,21,0,56,0,17,0,40,0,18,0\n28,0,1,0,52,0,20,0,67,0,57,0\n38,0,64,0,39,0,36,0,22,0,54,0\n42,0,47,0,2,0,12,0,58,0,71,0\n9,0,48,0,66,0,15,0,19,0,37,0\n7,0,34,0,6,0,27,0,72,0,59,0\n24,0,3,0,65,0,70,0,44,0,14,0\n61,0,30,0,53,0,33,0,25,0,35,0\n29,0,16,0,49,0,46,0,31,0,55,0\n13,0,26,0,68,0,45,0,10,0,43,0\n69,0,41,0,51,0,50,0,32,0,23,0\n56,0,59,0,4,0,67,0,64,0,42,0\n40,0,70,0,5,0,20,0,58,0,15,0\n6,0,48,0,17,0,71,0,14,0,36,0\n22,0,34,0,31,0,18,0,53,0,60,0\n55,0,10,0,33,0,47,0,7,0,35,0\n11,0,26,0,27,0,41,0,25,0,16,0\n9,0,49,0,50,0,54,0,62,0,68,0\n2,0,8,0,1,0,45,0,65,0,37,0\n57,0,23,0,44,0,61,0,39,0,12,0\n52,0,51,0,32,0,72,0,66,0,24,0\n69,0,63,0,43,0,28,0,19,0,29,0\n38,0,13,0,21,0,3,0,46,0,30,0\n54,0,27,0,60,0,20,0,71,0,62,0\n64,0,47,0,53,0,50,0,45,0,8,0\n2,0,67,0,18,0,61,0,40,0,23,0\n26,0,56,0,70,0,55,0,39,0,6,0\n42,0,25,0,9,0,14,0,17,0,10,0\n37,0,69,0,7,0,44,0,13,0,41,0\n52,0,15,0,43,0,3,0,38,0,34,0\n36,0,35,0,16,0,63,0,21,0,59,0\n46,0,19,0,12,0,5,0,32,0,1,0\n4,0,28,0,72,0,49,0,22,0,66,0\n31,0,58,0,33,0,51,0,57,0,24,0\n65,0,11,0,30,0,68,0,48,0,29,0\n40,0,71,0,50,0,3,0,37,0,26,0\n21,0,14,0,39,0,43,0,27,0,53,0\n36,0,42,0,69,0,46,0,5,0,34,0\n35,0,54,0,6,0,19,0,8,0,52,0\n58,0,38,0,63,0,61,0,9,0,72,0\n33,0,65,0,64,0,49,0,41,0,18,0\n20,0,51,0,29,0,7,0,2,0,4,0\n68,0,16,0,17,0,15,0,32,0,47,0\n30,0,60,0,12,0,55,0,24,0,28,0\n45,0,66,0,1,0,23,0,56,0,25,0\n48,0,57,0,31,0,59,0,44,0,62,0\n10,0,13,0,70,0,11,0,67,0,22,0\n52,0,5,0,26,0,64,0,7,0,9,0\n54,0,37,0,20,0,47,0,18,0,16,0\n65,0,38,0,32,0,28,0,35,0,71,0\n30,0,24,0,49,0,41,0,39,0,34,0\n6,0,44,0,40,0,51,0,63,0,53,0\n29,0,8,0,3,0,56,0,36,0,33,0\n58,0,45,0,19,0,62,0,10,0,67,0\n17,0,46,0,23,0,11,0,43,0,72,0\n57,0,42,0,21,0,2,0,48,0,70,0\n27,0,31,0,4,0,15,0,61,0,1,0\n25,0,12,0,68,0,22,0,59,0,69,0\n66,0,14,0,13,0,50,0,55,0,60,0\n71,0,44,0,45,0,16,0,33,0,5,0\n11,0,3,0,23,0,20,0,6,0,30,0\n32,0,9,0,62,0,40,0,39,0,8,0\n27,0,29,0,10,0,64,0,37,0,57,0\n61,0,56,0,43,0,48,0,22,0,7,0\n47,0,67,0,72,0,31,0,69,0,21,0\n12,0,54,0,41,0,35,0,15,0,66,0\n53,0,59,0,50,0,38,0,70,0,24,0\n17,0,34,0,26,0,28,0,13,0,51,0\n58,0,14,0,65,0,52,0,4,0,46,0\n55,0,63,0,68,0,42,0,1,0,18,0\n2,0,60,0,36,0,19,0,49,0,25,0\n23,0,22,0,27,0,8,0,31,0,9,0\n5,0,66,0,61,0,10,0,6,0,59,0\n48,0,40,0,28,0,16,0,64,0,13,0\n37,0,46,0,43,0,51,0,35,0,70,0\n67,0,54,0,34,0,14,0,33,0,63,0\n21,0,24,0,71,0,7,0,68,0,1,0\n62,0,2,0,56,0,30,0,52,0,69,0\n18,0,32,0,55,0,36,0,44,0,58,0\n15,0,72,0,39,0,29,0,50,0,25,0\n12,0,38,0,45,0,49,0,17,0,11,0\n19,0,53,0,20,0,42,0,26,0,65,0\n41,0,57,0,60,0,3,0,47,0,4,0\n66,0,7,0,16,0,70,0,8,0,69,0\n67,0,52,0,27,0,30,0,68,0,44,0\n1,0,25,0,6,0,34,0,64,0,58,0\n39,0,35,0,11,0,71,0,18,0,31,0\n40,0,29,0,14,0,38,0,22,0,5,0\n23,0,47,0,24,0,13,0,19,0,4,0\n72,0,62,0,37,0,36,0,12,0,53,0\n46,0,28,0,10,0,54,0,50,0,2,0\n20,0,63,0,17,0,48,0,55,0,41,0\n3,0,15,0,42,0,51,0,61,0,45,0\n9,0,33,0,59,0,43,0,60,0,65,0\n49,0,56,0,57,0,32,0,21,0,26,0\n19,0,14,0,64,0,31,0,68,0,72,0\n52,0,70,0,18,0,12,0,13,0,27,0\n22,0,2,0,16,0,41,0,6,0,24,0\n47,0,44,0,29,0,62,0,34,0,66,0\n43,0,8,0,35,0,58,0,42,0,50,0\n1,0,38,0,51,0,10,0,60,0,48,0\n36,0,30,0,4,0,26,0,45,0,9,0\n59,0,20,0,25,0,63,0,49,0,32,0\n23,0,5,0,28,0,33,0,21,0,37,0\n71,0,15,0,57,0,53,0,56,0,46,0\n11,0,61,0,55,0,69,0,40,0,54,0\n3,0,39,0,7,0,67,0,65,0,17,0\n"
  },
  {
    "path": "schedules/72_11.csv",
    "content": "66,0,22,0,10,0,32,0,27,0,63,0\n69,0,4,0,18,0,23,0,19,0,59,0\n49,0,41,0,52,0,6,0,26,0,48,0\n44,0,71,0,31,0,42,0,47,0,7,0\n17,0,58,0,13,0,43,0,61,0,14,0\n9,0,70,0,72,0,8,0,54,0,45,0\n64,0,15,0,38,0,24,0,16,0,20,0\n21,0,12,0,60,0,46,0,53,0,35,0\n39,0,28,0,50,0,57,0,11,0,5,0\n36,0,34,0,33,0,2,0,65,0,29,0\n56,0,55,0,37,0,62,0,25,0,67,0\n1,0,3,0,51,0,30,0,68,0,40,0\n27,0,45,0,18,0,20,0,47,0,49,0\n8,0,70,0,23,0,12,0,52,0,43,0\n54,0,16,0,69,0,58,0,14,0,31,0\n60,0,32,0,34,0,33,0,6,0,9,0\n21,0,4,0,37,0,24,0,2,0,7,0\n57,0,29,0,62,0,67,0,64,0,68,0\n5,0,50,0,17,0,51,0,36,0,53,0\n15,0,25,0,42,0,26,0,72,0,22,0\n40,0,35,0,39,0,59,0,48,0,10,0\n55,0,13,0,46,0,71,0,41,0,30,0\n65,0,28,0,56,0,19,0,63,0,38,0\n66,0,44,0,1,0,61,0,3,0,11,0\n34,0,6,0,67,0,47,0,68,0,17,0\n23,0,16,0,14,0,22,0,49,0,57,0\n5,0,18,0,32,0,48,0,70,0,21,0\n60,0,13,0,25,0,51,0,2,0,52,0\n65,0,7,0,41,0,69,0,72,0,27,0\n28,0,30,0,59,0,12,0,9,0,44,0\n29,0,58,0,42,0,4,0,38,0,66,0\n64,0,50,0,1,0,55,0,8,0,63,0\n40,0,53,0,61,0,26,0,71,0,37,0\n35,0,33,0,3,0,39,0,62,0,54,0\n15,0,11,0,24,0,31,0,45,0,10,0\n36,0,43,0,20,0,56,0,46,0,19,0\n47,0,14,0,66,0,5,0,65,0,59,0\n2,0,55,0,23,0,29,0,72,0,68,0\n53,0,58,0,12,0,57,0,1,0,25,0\n52,0,39,0,63,0,37,0,16,0,7,0\n38,0,10,0,30,0,8,0,61,0,18,0\n64,0,36,0,9,0,49,0,27,0,71,0\n21,0,42,0,56,0,11,0,54,0,6,0\n41,0,19,0,70,0,60,0,3,0,24,0\n45,0,69,0,32,0,26,0,44,0,62,0\n50,0,15,0,33,0,67,0,43,0,46,0\n48,0,20,0,40,0,17,0,28,0,22,0\n35,0,51,0,13,0,31,0,4,0,34,0\n23,0,63,0,54,0,36,0,47,0,25,0\n14,0,52,0,24,0,18,0,55,0,66,0\n71,0,45,0,19,0,1,0,5,0,38,0\n16,0,67,0,2,0,53,0,9,0,10,0\n61,0,46,0,30,0,22,0,70,0,64,0\n8,0,65,0,4,0,6,0,20,0,3,0\n62,0,60,0,72,0,49,0,40,0,50,0\n56,0,26,0,29,0,17,0,12,0,31,0\n35,0,68,0,44,0,37,0,41,0,58,0\n27,0,48,0,7,0,33,0,51,0,11,0\n28,0,21,0,32,0,13,0,15,0,39,0\n43,0,34,0,42,0,69,0,59,0,57,0\n19,0,62,0,14,0,2,0,6,0,47,0\n20,0,72,0,12,0,16,0,5,0,61,0\n54,0,17,0,52,0,44,0,64,0,30,0\n33,0,53,0,68,0,40,0,63,0,66,0\n51,0,15,0,27,0,35,0,56,0,23,0\n36,0,48,0,57,0,8,0,59,0,13,0\n32,0,7,0,25,0,45,0,50,0,41,0\n37,0,11,0,69,0,60,0,70,0,38,0\n67,0,49,0,1,0,65,0,24,0,42,0\n4,0,9,0,55,0,22,0,31,0,39,0\n10,0,34,0,26,0,46,0,58,0,21,0\n29,0,3,0,43,0,28,0,71,0,18,0\n2,0,57,0,20,0,7,0,54,0,66,0\n38,0,68,0,59,0,70,0,27,0,52,0\n19,0,16,0,36,0,40,0,32,0,11,0\n9,0,1,0,24,0,50,0,35,0,69,0\n33,0,13,0,23,0,45,0,56,0,44,0\n3,0,4,0,49,0,5,0,15,0,55,0\n28,0,72,0,34,0,26,0,64,0,14,0\n41,0,42,0,17,0,62,0,10,0,8,0\n71,0,43,0,21,0,25,0,30,0,65,0\n6,0,53,0,39,0,29,0,51,0,61,0\n63,0,18,0,22,0,60,0,67,0,58,0\n47,0,31,0,48,0,46,0,37,0,12,0\n7,0,56,0,36,0,9,0,68,0,14,0\n4,0,50,0,10,0,33,0,52,0,28,0\n26,0,43,0,49,0,44,0,38,0,54,0\n53,0,57,0,30,0,41,0,15,0,6,0\n61,0,35,0,45,0,19,0,55,0,42,0\n27,0,37,0,60,0,13,0,29,0,1,0\n69,0,51,0,47,0,21,0,22,0,8,0\n2,0,11,0,18,0,64,0,12,0,32,0\n25,0,59,0,3,0,16,0,17,0,46,0\n63,0,5,0,20,0,24,0,34,0,62,0\n67,0,65,0,23,0,40,0,70,0,31,0\n66,0,71,0,58,0,72,0,39,0,48,0\n30,0,19,0,49,0,33,0,7,0,29,0\n10,0,64,0,41,0,43,0,56,0,47,0\n54,0,55,0,59,0,28,0,53,0,60,0\n6,0,22,0,68,0,13,0,24,0,12,0\n40,0,46,0,5,0,52,0,69,0,42,0\n38,0,35,0,8,0,14,0,67,0,32,0\n63,0,36,0,31,0,72,0,3,0,21,0\n20,0,66,0,11,0,23,0,26,0,9,0\n61,0,1,0,62,0,4,0,16,0,48,0\n44,0,25,0,27,0,39,0,34,0,18,0\n50,0,2,0,71,0,15,0,58,0,70,0\n57,0,51,0,17,0,37,0,45,0,65,0\n13,0,47,0,38,0,7,0,53,0,3,0\n46,0,8,0,69,0,49,0,28,0,66,0\n31,0,59,0,1,0,41,0,33,0,20,0\n67,0,24,0,26,0,39,0,36,0,30,0\n25,0,22,0,54,0,5,0,10,0,29,0\n52,0,56,0,32,0,61,0,57,0,71,0\n65,0,62,0,68,0,18,0,60,0,15,0\n11,0,63,0,72,0,17,0,35,0,4,0\n37,0,14,0,42,0,27,0,12,0,50,0\n21,0,19,0,9,0,64,0,23,0,48,0\n70,0,55,0,16,0,34,0,44,0,51,0\n40,0,45,0,6,0,2,0,43,0,58,0\n49,0,61,0,31,0,25,0,68,0,28,0\n62,0,22,0,11,0,52,0,65,0,53,0\n71,0,67,0,12,0,41,0,54,0,4,0\n13,0,37,0,64,0,69,0,33,0,10,0\n9,0,51,0,18,0,42,0,63,0,46,0\n7,0,70,0,6,0,36,0,55,0,1,0\n3,0,48,0,30,0,56,0,50,0,34,0\n58,0,72,0,24,0,47,0,32,0,59,0\n26,0,57,0,8,0,5,0,27,0,19,0\n16,0,43,0,45,0,35,0,21,0,66,0\n60,0,39,0,2,0,17,0,38,0,23,0\n44,0,40,0,29,0,20,0,14,0,15,0\n"
  },
  {
    "path": "schedules/72_12.csv",
    "content": "65,0,55,0,60,0,41,0,13,0,51,0\n36,0,45,0,34,0,5,0,32,0,43,0\n52,0,30,0,20,0,18,0,49,0,59,0\n29,0,33,0,66,0,9,0,62,0,50,0\n53,0,22,0,68,0,40,0,17,0,44,0\n15,0,2,0,1,0,28,0,3,0,11,0\n25,0,58,0,10,0,54,0,19,0,47,0\n46,0,67,0,23,0,70,0,39,0,57,0\n8,0,72,0,12,0,21,0,37,0,42,0\n7,0,27,0,14,0,16,0,26,0,31,0\n56,0,64,0,4,0,48,0,38,0,61,0\n69,0,24,0,6,0,35,0,71,0,63,0\n25,0,9,0,19,0,34,0,41,0,22,0\n30,0,57,0,32,0,52,0,43,0,1,0\n44,0,21,0,36,0,18,0,39,0,2,0\n29,0,31,0,8,0,66,0,55,0,5,0\n4,0,17,0,53,0,65,0,28,0,7,0\n6,0,61,0,68,0,50,0,11,0,42,0\n27,0,49,0,45,0,24,0,33,0,35,0\n63,0,14,0,64,0,58,0,13,0,67,0\n38,0,20,0,40,0,37,0,10,0,16,0\n54,0,59,0,23,0,12,0,69,0,26,0\n51,0,72,0,62,0,3,0,56,0,46,0\n71,0,47,0,15,0,48,0,70,0,60,0\n19,0,28,0,4,0,39,0,55,0,30,0\n22,0,21,0,5,0,1,0,35,0,50,0\n41,0,29,0,16,0,17,0,24,0,49,0\n66,0,14,0,25,0,59,0,40,0,32,0\n37,0,57,0,61,0,2,0,58,0,6,0\n43,0,64,0,62,0,63,0,7,0,60,0\n15,0,27,0,67,0,56,0,54,0,52,0\n47,0,68,0,13,0,18,0,12,0,46,0\n36,0,48,0,69,0,8,0,33,0,10,0\n34,0,26,0,72,0,53,0,70,0,20,0\n51,0,9,0,44,0,45,0,42,0,71,0\n31,0,11,0,65,0,23,0,3,0,38,0\n66,0,56,0,30,0,6,0,22,0,7,0\n16,0,62,0,59,0,58,0,39,0,47,0\n4,0,33,0,69,0,12,0,25,0,57,0\n5,0,28,0,61,0,20,0,54,0,10,0\n67,0,19,0,1,0,68,0,26,0,51,0\n36,0,55,0,32,0,53,0,50,0,65,0\n34,0,8,0,60,0,23,0,24,0,11,0\n46,0,45,0,48,0,2,0,14,0,17,0\n35,0,52,0,9,0,43,0,31,0,72,0\n63,0,49,0,40,0,38,0,15,0,44,0\n41,0,3,0,42,0,21,0,18,0,71,0\n37,0,29,0,70,0,27,0,13,0,64,0\n16,0,56,0,22,0,23,0,32,0,33,0\n55,0,53,0,10,0,2,0,67,0,24,0\n48,0,25,0,11,0,62,0,30,0,36,0\n60,0,1,0,61,0,69,0,72,0,45,0\n47,0,50,0,41,0,57,0,31,0,44,0\n5,0,6,0,63,0,68,0,28,0,70,0\n18,0,3,0,29,0,35,0,26,0,8,0\n37,0,19,0,34,0,49,0,52,0,4,0\n43,0,14,0,71,0,27,0,20,0,39,0\n59,0,64,0,46,0,65,0,42,0,15,0\n9,0,13,0,40,0,7,0,21,0,54,0\n58,0,17,0,66,0,51,0,12,0,38,0\n18,0,50,0,10,0,63,0,56,0,45,0\n26,0,48,0,67,0,31,0,37,0,5,0\n71,0,23,0,55,0,72,0,49,0,14,0\n65,0,20,0,19,0,62,0,24,0,44,0\n40,0,8,0,3,0,64,0,30,0,41,0\n32,0,2,0,11,0,12,0,4,0,29,0\n54,0,9,0,53,0,6,0,59,0,1,0\n33,0,52,0,28,0,61,0,66,0,47,0\n60,0,16,0,15,0,36,0,35,0,57,0\n43,0,70,0,21,0,17,0,25,0,51,0\n38,0,22,0,69,0,46,0,68,0,7,0\n42,0,39,0,13,0,27,0,34,0,58,0\n72,0,59,0,2,0,41,0,67,0,6,0\n5,0,4,0,47,0,64,0,9,0,23,0\n62,0,8,0,49,0,32,0,54,0,31,0\n45,0,11,0,43,0,66,0,53,0,48,0\n65,0,14,0,18,0,19,0,10,0,57,0\n50,0,17,0,15,0,69,0,13,0,20,0\n39,0,51,0,3,0,37,0,52,0,22,0\n35,0,34,0,12,0,56,0,44,0,55,0\n26,0,63,0,46,0,16,0,30,0,61,0\n21,0,25,0,38,0,28,0,27,0,60,0\n24,0,40,0,1,0,70,0,42,0,33,0\n71,0,29,0,7,0,68,0,58,0,36,0\n20,0,4,0,31,0,6,0,13,0,45,0\n44,0,64,0,54,0,11,0,72,0,17,0\n50,0,30,0,51,0,35,0,16,0,14,0\n60,0,25,0,3,0,9,0,12,0,61,0\n21,0,39,0,56,0,26,0,53,0,49,0\n7,0,59,0,33,0,46,0,10,0,34,0\n63,0,70,0,8,0,52,0,19,0,2,0\n32,0,41,0,58,0,68,0,5,0,15,0\n66,0,62,0,65,0,71,0,37,0,69,0\n28,0,40,0,67,0,29,0,36,0,23,0\n18,0,47,0,43,0,38,0,55,0,1,0\n24,0,27,0,42,0,22,0,48,0,57,0\n60,0,10,0,30,0,31,0,34,0,17,0\n70,0,11,0,7,0,39,0,41,0,14,0\n32,0,51,0,49,0,2,0,69,0,64,0\n65,0,23,0,26,0,52,0,45,0,58,0\n15,0,8,0,55,0,68,0,16,0,9,0\n27,0,18,0,62,0,72,0,40,0,5,0\n46,0,24,0,37,0,50,0,25,0,54,0\n33,0,57,0,53,0,71,0,3,0,20,0\n38,0,35,0,6,0,48,0,12,0,19,0\n1,0,66,0,21,0,4,0,36,0,63,0\n22,0,47,0,44,0,61,0,67,0,29,0\n59,0,42,0,56,0,28,0,13,0,43,0\n58,0,70,0,18,0,69,0,9,0,31,0\n5,0,50,0,46,0,52,0,40,0,60,0\n35,0,25,0,2,0,23,0,7,0,20,0\n49,0,39,0,6,0,8,0,1,0,65,0\n10,0,22,0,26,0,71,0,11,0,4,0\n13,0,16,0,48,0,66,0,3,0,44,0\n29,0,57,0,14,0,63,0,54,0,34,0\n42,0,17,0,38,0,62,0,67,0,33,0\n24,0,72,0,32,0,28,0,59,0,51,0\n61,0,64,0,45,0,19,0,21,0,55,0\n68,0,41,0,37,0,36,0,56,0,43,0\n12,0,47,0,27,0,15,0,53,0,30,0\n13,0,2,0,71,0,1,0,5,0,16,0\n20,0,9,0,34,0,63,0,65,0,48,0\n18,0,54,0,67,0,66,0,60,0,32,0\n50,0,19,0,23,0,7,0,3,0,17,0\n45,0,41,0,35,0,28,0,37,0,62,0\n24,0,51,0,36,0,38,0,47,0,30,0\n69,0,14,0,52,0,29,0,42,0,53,0\n10,0,43,0,12,0,70,0,22,0,49,0\n39,0,33,0,31,0,72,0,68,0,64,0\n56,0,58,0,57,0,11,0,40,0,21,0\n4,0,44,0,61,0,27,0,59,0,8,0\n6,0,26,0,55,0,15,0,25,0,46,0\n17,0,35,0,13,0,47,0,32,0,9,0\n30,0,22,0,54,0,70,0,2,0,65,0\n53,0,36,0,31,0,42,0,19,0,63,0\n49,0,69,0,16,0,67,0,11,0,5,0\n28,0,71,0,12,0,64,0,8,0,50,0\n61,0,34,0,51,0,40,0,18,0,15,0\n60,0,44,0,43,0,58,0,33,0,26,0\n23,0,21,0,52,0,6,0,10,0,62,0\n20,0,1,0,41,0,27,0,46,0,66,0\n38,0,39,0,72,0,29,0,25,0,45,0\n68,0,24,0,56,0,4,0,14,0,3,0\n55,0,57,0,7,0,37,0,59,0,48,0\n"
  },
  {
    "path": "schedules/72_13.csv",
    "content": "19,0,33,0,70,0,63,0,44,0,9,0\n51,0,17,0,3,0,38,0,32,0,39,0\n64,0,48,0,61,0,10,0,22,0,52,0\n36,0,25,0,24,0,27,0,23,0,54,0\n57,0,47,0,59,0,7,0,58,0,21,0\n20,0,12,0,56,0,45,0,41,0,8,0\n2,0,43,0,60,0,72,0,50,0,65,0\n68,0,42,0,11,0,67,0,69,0,34,0\n28,0,29,0,15,0,53,0,40,0,31,0\n1,0,35,0,62,0,66,0,49,0,30,0\n37,0,14,0,13,0,16,0,6,0,18,0\n55,0,4,0,26,0,71,0,5,0,46,0\n51,0,54,0,2,0,33,0,7,0,8,0\n11,0,60,0,22,0,3,0,45,0,56,0\n31,0,47,0,72,0,42,0,38,0,64,0\n44,0,49,0,53,0,65,0,25,0,41,0\n68,0,15,0,70,0,66,0,58,0,1,0\n19,0,18,0,55,0,27,0,67,0,29,0\n34,0,40,0,30,0,17,0,14,0,24,0\n57,0,61,0,5,0,20,0,50,0,63,0\n6,0,10,0,12,0,28,0,39,0,43,0\n52,0,36,0,48,0,26,0,9,0,13,0\n32,0,37,0,23,0,21,0,62,0,71,0\n69,0,35,0,59,0,16,0,46,0,4,0\n55,0,31,0,15,0,25,0,34,0,22,0\n66,0,70,0,17,0,2,0,64,0,29,0\n43,0,5,0,27,0,7,0,61,0,60,0\n51,0,48,0,50,0,42,0,19,0,14,0\n58,0,36,0,54,0,67,0,62,0,65,0\n37,0,21,0,63,0,52,0,56,0,30,0\n9,0,72,0,11,0,1,0,32,0,4,0\n44,0,47,0,20,0,13,0,3,0,59,0\n71,0,57,0,33,0,39,0,41,0,53,0\n18,0,10,0,40,0,45,0,26,0,69,0\n8,0,6,0,28,0,23,0,35,0,46,0\n24,0,38,0,49,0,12,0,68,0,16,0\n7,0,19,0,36,0,15,0,37,0,66,0\n58,0,9,0,42,0,63,0,17,0,29,0\n30,0,11,0,32,0,13,0,39,0,50,0\n4,0,33,0,10,0,25,0,70,0,60,0\n21,0,53,0,27,0,35,0,72,0,5,0\n26,0,14,0,28,0,22,0,54,0,59,0\n51,0,56,0,46,0,43,0,47,0,68,0\n44,0,48,0,57,0,71,0,12,0,49,0\n41,0,3,0,40,0,67,0,64,0,8,0\n55,0,45,0,1,0,31,0,62,0,24,0\n18,0,38,0,69,0,65,0,61,0,23,0\n2,0,34,0,6,0,16,0,20,0,52,0\n29,0,60,0,68,0,14,0,30,0,36,0\n28,0,63,0,66,0,21,0,44,0,13,0\n59,0,25,0,17,0,72,0,37,0,8,0\n41,0,26,0,22,0,51,0,7,0,1,0\n45,0,23,0,53,0,61,0,47,0,70,0\n43,0,16,0,38,0,15,0,32,0,67,0\n31,0,18,0,20,0,58,0,48,0,11,0\n4,0,49,0,56,0,39,0,40,0,55,0\n10,0,27,0,69,0,52,0,57,0,2,0\n35,0,12,0,19,0,54,0,42,0,3,0\n24,0,65,0,5,0,71,0,6,0,9,0\n62,0,50,0,46,0,64,0,34,0,33,0\n61,0,16,0,58,0,66,0,44,0,26,0\n25,0,40,0,28,0,11,0,38,0,51,0\n52,0,29,0,53,0,32,0,22,0,20,0\n15,0,60,0,18,0,57,0,42,0,39,0\n56,0,65,0,27,0,59,0,71,0,19,0\n10,0,72,0,62,0,41,0,46,0,68,0\n24,0,13,0,7,0,64,0,31,0,14,0\n55,0,67,0,54,0,63,0,6,0,47,0\n33,0,43,0,1,0,21,0,48,0,17,0\n9,0,50,0,45,0,37,0,35,0,49,0\n30,0,70,0,5,0,36,0,8,0,69,0\n34,0,12,0,3,0,4,0,23,0,2,0\n68,0,26,0,64,0,19,0,27,0,20,0\n32,0,40,0,52,0,60,0,57,0,66,0\n17,0,22,0,62,0,25,0,18,0,47,0\n46,0,9,0,53,0,38,0,21,0,45,0\n8,0,14,0,15,0,24,0,55,0,44,0\n28,0,67,0,13,0,33,0,72,0,61,0\n23,0,49,0,42,0,54,0,56,0,10,0\n34,0,7,0,65,0,35,0,48,0,30,0\n43,0,41,0,37,0,70,0,31,0,11,0\n69,0,4,0,5,0,58,0,6,0,51,0\n50,0,16,0,71,0,29,0,1,0,3,0\n36,0,59,0,63,0,2,0,12,0,39,0\n25,0,56,0,33,0,14,0,32,0,61,0\n49,0,13,0,17,0,60,0,23,0,26,0\n20,0,38,0,66,0,10,0,37,0,55,0\n8,0,44,0,51,0,9,0,52,0,62,0\n16,0,21,0,30,0,41,0,70,0,54,0\n4,0,18,0,59,0,53,0,36,0,50,0\n64,0,45,0,39,0,34,0,28,0,58,0\n65,0,6,0,29,0,7,0,57,0,11,0\n68,0,67,0,71,0,31,0,35,0,2,0\n42,0,12,0,47,0,5,0,1,0,40,0\n46,0,48,0,27,0,63,0,3,0,15,0\n22,0,24,0,69,0,43,0,19,0,72,0\n55,0,64,0,51,0,21,0,60,0,36,0\n4,0,37,0,62,0,61,0,13,0,29,0\n9,0,41,0,66,0,18,0,54,0,34,0\n52,0,12,0,8,0,31,0,49,0,58,0\n14,0,1,0,65,0,10,0,5,0,3,0\n63,0,7,0,43,0,68,0,25,0,53,0\n44,0,72,0,67,0,23,0,39,0,20,0\n59,0,32,0,46,0,70,0,24,0,42,0\n38,0,33,0,22,0,30,0,27,0,6,0\n45,0,57,0,40,0,19,0,48,0,16,0\n11,0,2,0,47,0,35,0,26,0,15,0\n71,0,56,0,17,0,69,0,28,0,50,0\n63,0,67,0,4,0,7,0,64,0,10,0\n43,0,31,0,3,0,36,0,9,0,18,0\n39,0,54,0,1,0,61,0,27,0,37,0\n8,0,42,0,25,0,16,0,57,0,53,0\n33,0,47,0,46,0,49,0,19,0,52,0\n29,0,44,0,5,0,38,0,56,0,34,0\n30,0,15,0,72,0,12,0,45,0,51,0\n35,0,13,0,71,0,70,0,40,0,22,0\n23,0,58,0,41,0,50,0,2,0,55,0\n65,0,26,0,20,0,28,0,24,0,32,0\n6,0,60,0,48,0,62,0,68,0,59,0\n66,0,14,0,21,0,69,0,11,0,17,0\n31,0,30,0,42,0,44,0,10,0,19,0\n49,0,70,0,34,0,18,0,67,0,51,0\n35,0,36,0,56,0,57,0,38,0,1,0\n61,0,46,0,2,0,9,0,40,0,29,0\n64,0,37,0,22,0,33,0,65,0,68,0\n52,0,23,0,5,0,59,0,11,0,45,0\n48,0,24,0,66,0,41,0,28,0,4,0\n20,0,13,0,54,0,15,0,71,0,43,0\n16,0,17,0,39,0,62,0,55,0,7,0\n3,0,50,0,21,0,26,0,6,0,25,0\n69,0,32,0,60,0,53,0,63,0,12,0\n58,0,47,0,8,0,27,0,72,0,14,0\n57,0,30,0,51,0,31,0,59,0,67,0\n65,0,45,0,71,0,33,0,66,0,42,0\n61,0,41,0,19,0,36,0,17,0,5,0\n44,0,54,0,40,0,18,0,50,0,68,0\n38,0,62,0,2,0,21,0,22,0,4,0\n27,0,7,0,12,0,11,0,20,0,46,0\n52,0,72,0,28,0,70,0,55,0,3,0\n63,0,14,0,35,0,43,0,49,0,26,0\n64,0,9,0,15,0,23,0,6,0,56,0\n25,0,39,0,69,0,29,0,48,0,47,0\n58,0,53,0,60,0,37,0,16,0,24,0\n10,0,34,0,1,0,13,0,8,0,32,0\n3,0,57,0,68,0,30,0,61,0,55,0\n52,0,27,0,31,0,65,0,17,0,4,0\n67,0,14,0,50,0,66,0,12,0,46,0\n70,0,72,0,26,0,15,0,56,0,62,0\n37,0,7,0,45,0,43,0,69,0,44,0\n49,0,9,0,16,0,28,0,5,0,22,0\n21,0,20,0,6,0,36,0,42,0,40,0\n63,0,11,0,18,0,71,0,8,0,24,0\n23,0,10,0,29,0,35,0,33,0,51,0\n41,0,59,0,34,0,47,0,38,0,60,0\n54,0,32,0,64,0,53,0,48,0,2,0\n39,0,19,0,58,0,25,0,1,0,13,0\n"
  },
  {
    "path": "schedules/72_14.csv",
    "content": "48,0,50,0,9,0,67,0,39,0,20,0\n55,0,7,0,27,0,18,0,38,0,61,0\n23,0,47,0,69,0,63,0,13,0,2,0\n64,0,71,0,6,0,46,0,36,0,68,0\n70,0,49,0,24,0,44,0,3,0,58,0\n41,0,72,0,21,0,35,0,40,0,16,0\n53,0,1,0,28,0,25,0,62,0,32,0\n56,0,11,0,5,0,22,0,15,0,8,0\n54,0,17,0,52,0,12,0,33,0,31,0\n66,0,4,0,14,0,42,0,37,0,26,0\n19,0,34,0,59,0,60,0,45,0,30,0\n57,0,65,0,51,0,10,0,29,0,43,0\n68,0,32,0,49,0,21,0,2,0,70,0\n48,0,38,0,71,0,72,0,6,0,3,0\n25,0,31,0,1,0,55,0,23,0,9,0\n26,0,50,0,8,0,12,0,17,0,64,0\n47,0,41,0,39,0,19,0,52,0,69,0\n65,0,29,0,37,0,16,0,27,0,5,0\n61,0,10,0,45,0,58,0,56,0,62,0\n4,0,42,0,34,0,24,0,7,0,43,0\n22,0,36,0,67,0,33,0,28,0,44,0\n66,0,60,0,63,0,46,0,40,0,18,0\n13,0,53,0,11,0,35,0,14,0,51,0\n59,0,30,0,54,0,57,0,15,0,20,0\n1,0,16,0,17,0,47,0,71,0,61,0\n65,0,50,0,49,0,32,0,37,0,41,0\n22,0,3,0,7,0,19,0,8,0,68,0\n55,0,18,0,62,0,5,0,48,0,34,0\n56,0,72,0,60,0,9,0,6,0,4,0\n43,0,14,0,20,0,25,0,44,0,52,0\n2,0,39,0,51,0,38,0,64,0,33,0\n54,0,57,0,69,0,63,0,46,0,35,0\n45,0,24,0,40,0,23,0,27,0,15,0\n59,0,31,0,70,0,28,0,10,0,13,0\n26,0,11,0,36,0,42,0,21,0,30,0\n67,0,12,0,58,0,29,0,66,0,53,0\n64,0,47,0,5,0,61,0,3,0,41,0\n8,0,14,0,9,0,65,0,63,0,54,0\n72,0,25,0,39,0,17,0,24,0,34,0\n32,0,51,0,40,0,59,0,20,0,71,0\n21,0,7,0,45,0,13,0,69,0,48,0\n10,0,33,0,15,0,16,0,26,0,6,0\n29,0,30,0,19,0,38,0,49,0,1,0\n58,0,52,0,11,0,55,0,46,0,4,0\n62,0,66,0,37,0,36,0,35,0,70,0\n60,0,27,0,2,0,53,0,22,0,43,0\n42,0,12,0,28,0,56,0,57,0,23,0\n18,0,31,0,68,0,67,0,44,0,50,0\n17,0,26,0,9,0,38,0,41,0,45,0\n63,0,29,0,55,0,20,0,21,0,64,0\n52,0,47,0,32,0,10,0,58,0,66,0\n54,0,24,0,15,0,61,0,72,0,37,0\n12,0,70,0,23,0,8,0,43,0,30,0\n44,0,68,0,4,0,5,0,28,0,62,0\n71,0,39,0,42,0,13,0,18,0,49,0\n1,0,7,0,33,0,46,0,50,0,59,0\n22,0,40,0,65,0,53,0,34,0,31,0\n36,0,69,0,16,0,14,0,11,0,27,0\n2,0,19,0,35,0,56,0,48,0,6,0\n3,0,25,0,51,0,60,0,57,0,67,0\n41,0,8,0,18,0,72,0,29,0,58,0\n43,0,1,0,45,0,66,0,64,0,68,0\n13,0,55,0,22,0,15,0,30,0,9,0\n42,0,40,0,10,0,50,0,69,0,28,0\n35,0,4,0,53,0,20,0,31,0,36,0\n3,0,47,0,38,0,54,0,67,0,56,0\n7,0,2,0,46,0,25,0,5,0,70,0\n14,0,71,0,32,0,19,0,24,0,57,0\n62,0,39,0,27,0,6,0,12,0,51,0\n33,0,34,0,21,0,11,0,65,0,23,0\n16,0,63,0,49,0,26,0,52,0,59,0\n44,0,48,0,37,0,60,0,61,0,17,0\n66,0,3,0,8,0,55,0,20,0,2,0\n4,0,57,0,58,0,50,0,22,0,1,0\n6,0,7,0,70,0,12,0,47,0,40,0\n38,0,31,0,13,0,64,0,24,0,11,0\n45,0,72,0,67,0,49,0,5,0,21,0\n36,0,65,0,61,0,39,0,59,0,18,0\n42,0,43,0,19,0,9,0,62,0,16,0\n60,0,37,0,69,0,29,0,33,0,32,0\n26,0,34,0,41,0,51,0,56,0,44,0\n15,0,28,0,63,0,53,0,17,0,71,0\n52,0,46,0,14,0,68,0,30,0,48,0\n25,0,10,0,23,0,54,0,27,0,35,0\n67,0,21,0,11,0,61,0,57,0,43,0\n60,0,39,0,8,0,16,0,45,0,42,0\n33,0,13,0,50,0,55,0,19,0,49,0\n20,0,51,0,22,0,24,0,37,0,6,0\n63,0,34,0,69,0,3,0,4,0,12,0\n5,0,59,0,2,0,9,0,71,0,52,0\n54,0,7,0,40,0,26,0,1,0,32,0\n29,0,35,0,47,0,44,0,15,0,36,0\n68,0,17,0,72,0,10,0,53,0,70,0\n28,0,23,0,64,0,14,0,18,0,58,0\n30,0,38,0,62,0,48,0,65,0,25,0\n27,0,66,0,46,0,41,0,31,0,56,0\n37,0,21,0,40,0,39,0,3,0,19,0\n15,0,35,0,67,0,1,0,2,0,42,0\n53,0,26,0,57,0,13,0,52,0,8,0\n18,0,45,0,54,0,70,0,22,0,11,0\n6,0,14,0,61,0,32,0,50,0,34,0\n23,0,59,0,68,0,41,0,4,0,29,0\n17,0,33,0,62,0,71,0,30,0,27,0\n28,0,48,0,24,0,16,0,47,0,66,0\n58,0,31,0,43,0,38,0,5,0,63,0\n56,0,20,0,10,0,7,0,64,0,60,0\n36,0,9,0,25,0,49,0,69,0,51,0\n12,0,46,0,44,0,65,0,72,0,55,0\n18,0,30,0,53,0,6,0,41,0,54,0\n22,0,52,0,24,0,62,0,21,0,50,0\n5,0,43,0,33,0,1,0,47,0,14,0\n10,0,11,0,59,0,48,0,40,0,67,0\n25,0,34,0,64,0,37,0,71,0,15,0\n16,0,3,0,29,0,46,0,9,0,45,0\n70,0,19,0,61,0,51,0,4,0,31,0\n13,0,32,0,44,0,12,0,8,0,27,0\n72,0,23,0,49,0,66,0,7,0,57,0\n20,0,38,0,58,0,68,0,69,0,42,0\n55,0,60,0,28,0,26,0,35,0,39,0\n36,0,63,0,17,0,56,0,2,0,65,0\n9,0,18,0,47,0,51,0,53,0,24,0\n16,0,64,0,67,0,70,0,27,0,32,0\n5,0,40,0,4,0,57,0,25,0,33,0\n29,0,20,0,12,0,42,0,22,0,61,0\n46,0,8,0,38,0,10,0,35,0,34,0\n55,0,59,0,21,0,17,0,56,0,14,0\n45,0,37,0,28,0,41,0,30,0,2,0\n58,0,68,0,39,0,26,0,54,0,19,0\n3,0,1,0,36,0,43,0,13,0,72,0\n6,0,63,0,50,0,66,0,44,0,11,0\n7,0,23,0,71,0,60,0,52,0,65,0\n31,0,69,0,15,0,62,0,49,0,48,0\n16,0,4,0,20,0,12,0,2,0,18,0\n9,0,27,0,34,0,47,0,68,0,21,0\n59,0,38,0,35,0,64,0,14,0,22,0\n53,0,46,0,56,0,39,0,24,0,33,0\n55,0,54,0,50,0,51,0,36,0,45,0\n26,0,62,0,15,0,3,0,23,0,67,0\n8,0,61,0,29,0,66,0,71,0,25,0\n5,0,44,0,19,0,17,0,10,0,69,0\n13,0,30,0,65,0,58,0,40,0,60,0\n48,0,70,0,41,0,63,0,1,0,57,0\n6,0,43,0,28,0,37,0,7,0,49,0\n31,0,72,0,52,0,11,0,42,0,32,0\n35,0,25,0,12,0,33,0,68,0,45,0\n24,0,55,0,8,0,59,0,69,0,67,0\n4,0,60,0,71,0,54,0,21,0,38,0\n15,0,70,0,66,0,39,0,65,0,14,0\n13,0,1,0,56,0,18,0,37,0,10,0\n17,0,41,0,57,0,34,0,58,0,6,0\n16,0,51,0,30,0,7,0,63,0,44,0\n48,0,32,0,22,0,36,0,23,0,43,0\n27,0,19,0,53,0,5,0,3,0,42,0\n9,0,64,0,61,0,40,0,28,0,52,0\n72,0,2,0,26,0,50,0,29,0,31,0\n49,0,11,0,46,0,62,0,20,0,47,0\n66,0,54,0,34,0,16,0,59,0,13,0\n15,0,48,0,21,0,8,0,51,0,58,0\n3,0,35,0,32,0,4,0,18,0,17,0\n14,0,42,0,25,0,10,0,41,0,22,0\n12,0,52,0,1,0,24,0,60,0,36,0\n45,0,44,0,49,0,40,0,38,0,53,0\n33,0,61,0,27,0,63,0,72,0,9,0\n64,0,2,0,29,0,11,0,62,0,7,0\n20,0,65,0,46,0,19,0,67,0,28,0\n30,0,39,0,6,0,5,0,31,0,23,0\n71,0,50,0,56,0,69,0,70,0,43,0\n47,0,57,0,37,0,26,0,55,0,68,0\n"
  },
  {
    "path": "schedules/72_2.csv",
    "content": "52,0,15,0,46,0,5,0,61,0,70,0\n63,0,34,0,56,0,21,0,43,0,47,0\n16,0,18,0,39,0,55,0,59,0,14,0\n41,0,64,0,22,0,26,0,51,0,44,0\n45,0,40,0,20,0,31,0,60,0,32,0\n37,0,6,0,58,0,48,0,50,0,62,0\n2,0,68,0,69,0,24,0,67,0,42,0\n71,0,4,0,53,0,33,0,72,0,25,0\n65,0,27,0,35,0,38,0,54,0,13,0\n10,0,23,0,11,0,36,0,8,0,19,0\n3,0,9,0,30,0,7,0,28,0,49,0\n12,0,1,0,17,0,66,0,29,0,57,0\n61,0,32,0,50,0,55,0,68,0,21,0\n33,0,24,0,46,0,39,0,22,0,34,0\n38,0,18,0,62,0,67,0,45,0,56,0\n5,0,26,0,53,0,23,0,35,0,6,0\n2,0,58,0,8,0,27,0,16,0,52,0\n31,0,44,0,14,0,4,0,30,0,17,0\n72,0,47,0,40,0,70,0,7,0,11,0\n29,0,20,0,3,0,71,0,41,0,65,0\n59,0,28,0,51,0,66,0,10,0,63,0\n60,0,15,0,42,0,37,0,1,0,54,0\n13,0,57,0,48,0,19,0,69,0,9,0\n43,0,25,0,36,0,49,0,64,0,12,0\n"
  },
  {
    "path": "schedules/72_3.csv",
    "content": "9,0,40,0,18,0,16,0,51,0,45,0\n71,0,60,0,34,0,47,0,43,0,65,0\n70,0,39,0,22,0,20,0,15,0,11,0\n66,0,13,0,48,0,14,0,21,0,54,0\n32,0,33,0,46,0,42,0,23,0,1,0\n50,0,56,0,67,0,2,0,61,0,72,0\n68,0,63,0,5,0,30,0,24,0,8,0\n38,0,37,0,59,0,69,0,19,0,10,0\n36,0,27,0,17,0,7,0,64,0,3,0\n58,0,31,0,6,0,12,0,57,0,26,0\n52,0,4,0,55,0,62,0,35,0,41,0\n28,0,29,0,53,0,25,0,49,0,44,0\n30,0,20,0,33,0,65,0,48,0,40,0\n9,0,70,0,47,0,59,0,5,0,61,0\n14,0,43,0,17,0,16,0,39,0,63,0\n24,0,72,0,23,0,15,0,27,0,51,0\n4,0,45,0,36,0,13,0,50,0,58,0\n25,0,41,0,69,0,60,0,68,0,54,0\n62,0,1,0,7,0,28,0,57,0,66,0\n34,0,53,0,31,0,18,0,67,0,35,0\n12,0,44,0,37,0,52,0,21,0,46,0\n8,0,10,0,64,0,6,0,55,0,71,0\n29,0,26,0,2,0,11,0,38,0,32,0\n49,0,19,0,3,0,42,0,22,0,56,0\n16,0,59,0,62,0,13,0,23,0,68,0\n54,0,57,0,50,0,17,0,70,0,40,0\n14,0,4,0,15,0,7,0,30,0,46,0\n51,0,35,0,5,0,20,0,25,0,21,0\n52,0,61,0,38,0,34,0,39,0,66,0\n48,0,2,0,45,0,28,0,69,0,43,0\n47,0,49,0,32,0,6,0,63,0,67,0\n27,0,10,0,22,0,58,0,29,0,9,0\n18,0,41,0,19,0,12,0,8,0,33,0\n44,0,55,0,11,0,3,0,31,0,60,0\n1,0,24,0,56,0,53,0,64,0,65,0\n72,0,26,0,71,0,36,0,37,0,42,0\n"
  },
  {
    "path": "schedules/72_4.csv",
    "content": "11,0,8,0,38,0,22,0,54,0,36,0\n6,0,23,0,39,0,21,0,32,0,53,0\n68,0,33,0,49,0,24,0,64,0,19,0\n47,0,41,0,12,0,2,0,67,0,46,0\n48,0,70,0,28,0,65,0,25,0,72,0\n63,0,13,0,30,0,4,0,45,0,66,0\n16,0,58,0,37,0,57,0,29,0,56,0\n14,0,17,0,31,0,15,0,34,0,1,0\n7,0,18,0,62,0,42,0,50,0,5,0\n43,0,40,0,55,0,27,0,69,0,9,0\n71,0,20,0,61,0,35,0,3,0,10,0\n52,0,26,0,51,0,60,0,59,0,44,0\n53,0,36,0,41,0,58,0,48,0,19,0\n66,0,23,0,72,0,67,0,29,0,24,0\n54,0,65,0,46,0,18,0,14,0,57,0\n4,0,55,0,7,0,16,0,33,0,17,0\n64,0,5,0,11,0,15,0,30,0,37,0\n62,0,3,0,60,0,6,0,43,0,25,0\n13,0,52,0,56,0,20,0,69,0,47,0\n12,0,32,0,45,0,28,0,26,0,10,0\n1,0,50,0,22,0,61,0,59,0,39,0\n34,0,42,0,9,0,63,0,49,0,44,0\n70,0,2,0,27,0,8,0,51,0,71,0\n35,0,31,0,21,0,68,0,40,0,38,0\n14,0,69,0,3,0,67,0,11,0,16,0\n43,0,65,0,53,0,4,0,15,0,20,0\n10,0,56,0,72,0,60,0,33,0,39,0\n23,0,26,0,34,0,18,0,36,0,64,0\n52,0,19,0,17,0,8,0,66,0,42,0\n40,0,61,0,63,0,6,0,5,0,2,0\n48,0,37,0,46,0,9,0,32,0,38,0\n24,0,1,0,35,0,70,0,41,0,7,0\n22,0,44,0,27,0,31,0,62,0,28,0\n71,0,25,0,47,0,57,0,59,0,45,0\n58,0,12,0,68,0,13,0,54,0,55,0\n21,0,29,0,30,0,51,0,50,0,49,0\n14,0,42,0,20,0,40,0,48,0,26,0\n8,0,9,0,1,0,5,0,60,0,23,0\n64,0,22,0,16,0,72,0,6,0,35,0\n38,0,3,0,15,0,33,0,47,0,70,0\n66,0,39,0,65,0,12,0,7,0,27,0\n59,0,4,0,69,0,37,0,49,0,41,0\n57,0,67,0,61,0,13,0,28,0,21,0\n46,0,19,0,43,0,56,0,31,0,11,0\n45,0,18,0,29,0,17,0,68,0,44,0\n24,0,32,0,58,0,51,0,34,0,25,0\n71,0,36,0,50,0,55,0,63,0,52,0\n54,0,62,0,2,0,10,0,30,0,53,0\n"
  },
  {
    "path": "schedules/72_5.csv",
    "content": "59,0,6,0,15,0,51,0,70,0,47,0\n22,0,20,0,25,0,68,0,24,0,33,0\n28,0,67,0,44,0,53,0,31,0,50,0\n27,0,63,0,16,0,13,0,72,0,10,0\n35,0,42,0,48,0,38,0,1,0,18,0\n12,0,37,0,32,0,34,0,62,0,2,0\n58,0,11,0,57,0,30,0,17,0,7,0\n36,0,54,0,29,0,71,0,9,0,8,0\n41,0,52,0,3,0,5,0,39,0,4,0\n14,0,19,0,23,0,55,0,40,0,56,0\n26,0,49,0,60,0,65,0,45,0,64,0\n21,0,46,0,61,0,69,0,43,0,66,0\n38,0,70,0,2,0,10,0,53,0,25,0\n59,0,37,0,35,0,16,0,29,0,33,0\n1,0,27,0,68,0,58,0,15,0,3,0\n4,0,9,0,11,0,51,0,44,0,62,0\n65,0,63,0,31,0,55,0,20,0,30,0\n41,0,24,0,26,0,7,0,23,0,54,0\n8,0,60,0,42,0,13,0,14,0,69,0\n50,0,21,0,34,0,64,0,19,0,72,0\n71,0,61,0,47,0,12,0,52,0,28,0\n5,0,17,0,48,0,43,0,40,0,45,0\n6,0,32,0,56,0,46,0,39,0,67,0\n49,0,66,0,57,0,18,0,36,0,22,0\n10,0,37,0,15,0,65,0,11,0,24,0\n23,0,58,0,4,0,64,0,25,0,31,0\n53,0,21,0,71,0,51,0,16,0,14,0\n19,0,54,0,3,0,30,0,43,0,47,0\n72,0,33,0,41,0,32,0,9,0,48,0\n38,0,36,0,20,0,6,0,7,0,60,0\n1,0,45,0,39,0,62,0,8,0,61,0\n26,0,42,0,40,0,52,0,66,0,2,0\n29,0,44,0,55,0,17,0,49,0,27,0\n69,0,63,0,50,0,12,0,56,0,22,0\n34,0,67,0,59,0,5,0,18,0,68,0\n70,0,57,0,28,0,35,0,13,0,46,0\n62,0,48,0,65,0,7,0,19,0,25,0\n45,0,14,0,72,0,52,0,37,0,20,0\n40,0,38,0,30,0,32,0,29,0,4,0\n31,0,12,0,6,0,27,0,41,0,66,0\n15,0,17,0,39,0,9,0,34,0,22,0\n51,0,63,0,35,0,36,0,23,0,3,0\n60,0,54,0,10,0,67,0,57,0,21,0\n64,0,55,0,18,0,11,0,46,0,71,0\n47,0,13,0,5,0,1,0,26,0,53,0\n28,0,2,0,69,0,59,0,49,0,24,0\n16,0,56,0,68,0,8,0,44,0,43,0\n58,0,70,0,61,0,50,0,33,0,42,0\n12,0,14,0,35,0,54,0,4,0,15,0\n20,0,66,0,10,0,17,0,32,0,19,0\n27,0,22,0,5,0,60,0,23,0,46,0\n72,0,18,0,69,0,62,0,47,0,31,0\n39,0,44,0,65,0,38,0,59,0,71,0\n9,0,24,0,53,0,57,0,42,0,45,0\n2,0,33,0,67,0,63,0,11,0,8,0\n3,0,7,0,61,0,56,0,64,0,13,0\n16,0,52,0,30,0,48,0,70,0,34,0\n50,0,6,0,40,0,49,0,68,0,37,0\n41,0,55,0,25,0,1,0,36,0,21,0\n43,0,28,0,51,0,29,0,26,0,58,0\n"
  },
  {
    "path": "schedules/72_6.csv",
    "content": "40,0,35,0,57,0,68,0,28,0,54,0\n45,0,69,0,47,0,16,0,23,0,29,0\n32,0,50,0,52,0,34,0,7,0,64,0\n49,0,58,0,24,0,44,0,8,0,26,0\n10,0,25,0,43,0,72,0,18,0,15,0\n51,0,37,0,61,0,48,0,41,0,6,0\n70,0,4,0,2,0,13,0,56,0,12,0\n67,0,14,0,65,0,22,0,33,0,59,0\n42,0,63,0,71,0,27,0,46,0,62,0\n36,0,38,0,17,0,9,0,66,0,19,0\n39,0,20,0,30,0,55,0,5,0,53,0\n21,0,60,0,1,0,31,0,11,0,3,0\n69,0,34,0,8,0,61,0,2,0,28,0\n51,0,43,0,22,0,29,0,24,0,40,0\n54,0,12,0,32,0,6,0,25,0,49,0\n67,0,48,0,44,0,10,0,50,0,19,0\n23,0,42,0,65,0,13,0,36,0,35,0\n59,0,70,0,21,0,7,0,5,0,72,0\n15,0,14,0,66,0,1,0,46,0,64,0\n56,0,55,0,11,0,17,0,71,0,16,0\n18,0,41,0,62,0,30,0,38,0,45,0\n57,0,33,0,47,0,63,0,53,0,60,0\n68,0,27,0,31,0,26,0,39,0,4,0\n52,0,9,0,3,0,20,0,37,0,58,0\n7,0,69,0,48,0,46,0,36,0,49,0\n28,0,5,0,25,0,44,0,56,0,29,0\n34,0,35,0,30,0,71,0,70,0,43,0\n53,0,50,0,11,0,6,0,24,0,62,0\n10,0,13,0,33,0,66,0,61,0,39,0\n38,0,63,0,64,0,58,0,31,0,59,0\n54,0,37,0,27,0,67,0,18,0,23,0\n2,0,41,0,65,0,47,0,68,0,3,0\n16,0,20,0,51,0,21,0,26,0,15,0\n60,0,32,0,40,0,14,0,55,0,9,0\n17,0,12,0,72,0,57,0,1,0,22,0\n4,0,8,0,19,0,45,0,42,0,52,0\n54,0,36,0,10,0,29,0,11,0,64,0\n46,0,3,0,70,0,50,0,39,0,28,0\n5,0,24,0,16,0,35,0,63,0,67,0\n23,0,26,0,48,0,2,0,53,0,43,0\n72,0,27,0,58,0,41,0,34,0,33,0\n4,0,32,0,20,0,69,0,65,0,57,0\n56,0,49,0,1,0,59,0,18,0,19,0\n52,0,12,0,44,0,40,0,21,0,71,0\n31,0,13,0,6,0,45,0,14,0,17,0\n55,0,38,0,22,0,25,0,8,0,37,0\n7,0,9,0,61,0,15,0,47,0,62,0\n42,0,68,0,66,0,60,0,51,0,30,0\n4,0,24,0,48,0,54,0,34,0,1,0\n43,0,67,0,39,0,41,0,64,0,21,0\n40,0,45,0,26,0,72,0,56,0,65,0\n20,0,14,0,25,0,50,0,36,0,63,0\n44,0,61,0,18,0,22,0,32,0,31,0\n29,0,2,0,66,0,58,0,71,0,57,0\n59,0,47,0,37,0,11,0,28,0,42,0\n55,0,62,0,49,0,52,0,35,0,10,0\n8,0,13,0,30,0,16,0,9,0,46,0\n70,0,60,0,19,0,27,0,69,0,6,0\n17,0,5,0,15,0,23,0,68,0,33,0\n53,0,51,0,12,0,3,0,7,0,38,0\n28,0,22,0,71,0,20,0,45,0,48,0\n40,0,41,0,66,0,4,0,49,0,63,0\n31,0,47,0,72,0,30,0,52,0,54,0\n50,0,21,0,29,0,18,0,13,0,55,0\n61,0,64,0,17,0,25,0,24,0,70,0\n11,0,46,0,58,0,65,0,5,0,19,0\n7,0,27,0,35,0,2,0,44,0,14,0\n42,0,3,0,6,0,67,0,56,0,15,0\n57,0,62,0,39,0,23,0,51,0,8,0\n68,0,69,0,9,0,59,0,10,0,53,0\n36,0,34,0,26,0,60,0,12,0,37,0\n1,0,38,0,43,0,16,0,32,0,33,0\n"
  },
  {
    "path": "schedules/72_7.csv",
    "content": "27,0,34,0,63,0,15,0,59,0,14,0\n35,0,5,0,25,0,8,0,70,0,20,0\n43,0,30,0,36,0,53,0,28,0,6,0\n10,0,21,0,40,0,33,0,55,0,45,0\n31,0,66,0,62,0,52,0,26,0,32,0\n41,0,51,0,64,0,72,0,7,0,60,0\n46,0,23,0,67,0,49,0,39,0,4,0\n47,0,17,0,69,0,24,0,22,0,42,0\n13,0,61,0,18,0,48,0,54,0,3,0\n58,0,16,0,37,0,9,0,12,0,1,0\n50,0,68,0,65,0,2,0,19,0,57,0\n71,0,38,0,44,0,11,0,29,0,56,0\n25,0,41,0,43,0,27,0,55,0,66,0\n33,0,28,0,46,0,35,0,47,0,63,0\n14,0,52,0,70,0,22,0,72,0,13,0\n42,0,34,0,31,0,45,0,16,0,67,0\n7,0,62,0,1,0,50,0,48,0,40,0\n9,0,49,0,18,0,38,0,36,0,15,0\n20,0,58,0,29,0,65,0,4,0,32,0\n64,0,44,0,19,0,10,0,53,0,69,0\n5,0,37,0,6,0,3,0,17,0,51,0\n11,0,59,0,54,0,60,0,8,0,68,0\n57,0,12,0,30,0,56,0,39,0,61,0\n26,0,24,0,2,0,71,0,23,0,21,0\n16,0,32,0,13,0,49,0,43,0,33,0\n65,0,15,0,10,0,35,0,66,0,72,0\n40,0,20,0,36,0,31,0,47,0,51,0\n60,0,1,0,70,0,69,0,63,0,6,0\n62,0,56,0,19,0,58,0,54,0,34,0\n8,0,17,0,18,0,71,0,28,0,67,0\n29,0,61,0,9,0,26,0,46,0,42,0\n4,0,52,0,24,0,11,0,55,0,50,0\n53,0,21,0,22,0,48,0,39,0,68,0\n37,0,64,0,30,0,38,0,25,0,59,0\n44,0,41,0,12,0,2,0,3,0,14,0\n7,0,45,0,27,0,5,0,57,0,23,0\n56,0,46,0,72,0,1,0,36,0,32,0\n54,0,71,0,35,0,42,0,6,0,40,0\n22,0,29,0,15,0,60,0,62,0,33,0\n34,0,55,0,9,0,51,0,53,0,8,0\n44,0,47,0,67,0,37,0,61,0,68,0\n3,0,50,0,16,0,20,0,23,0,64,0\n52,0,12,0,21,0,17,0,27,0,19,0\n26,0,43,0,48,0,70,0,38,0,4,0\n45,0,63,0,41,0,49,0,30,0,24,0\n14,0,11,0,31,0,5,0,69,0,65,0\n28,0,57,0,59,0,66,0,13,0,58,0\n7,0,10,0,39,0,25,0,18,0,2,0\n15,0,68,0,42,0,52,0,64,0,56,0\n33,0,6,0,26,0,72,0,50,0,67,0\n17,0,1,0,55,0,29,0,30,0,54,0\n8,0,38,0,46,0,41,0,31,0,21,0\n9,0,57,0,3,0,69,0,40,0,43,0\n48,0,71,0,16,0,25,0,36,0,14,0\n28,0,11,0,23,0,19,0,70,0,37,0\n39,0,51,0,63,0,62,0,65,0,44,0\n12,0,49,0,66,0,34,0,7,0,20,0\n27,0,58,0,18,0,35,0,60,0,24,0\n2,0,47,0,13,0,45,0,53,0,4,0\n32,0,61,0,59,0,10,0,22,0,5,0\n25,0,3,0,67,0,11,0,21,0,1,0\n33,0,48,0,42,0,44,0,57,0,8,0\n52,0,39,0,54,0,20,0,28,0,41,0\n23,0,69,0,72,0,12,0,55,0,62,0\n60,0,36,0,26,0,13,0,37,0,65,0\n71,0,66,0,50,0,22,0,46,0,30,0\n16,0,5,0,4,0,63,0,19,0,18,0\n35,0,51,0,14,0,45,0,38,0,32,0\n6,0,9,0,56,0,59,0,7,0,47,0\n24,0,68,0,34,0,43,0,10,0,29,0\n70,0,49,0,27,0,40,0,2,0,64,0\n53,0,31,0,61,0,15,0,58,0,17,0\n57,0,1,0,22,0,41,0,26,0,18,0\n20,0,19,0,60,0,67,0,14,0,55,0\n37,0,4,0,69,0,7,0,21,0,35,0\n28,0,10,0,50,0,42,0,51,0,12,0\n63,0,23,0,40,0,56,0,13,0,25,0\n59,0,65,0,53,0,52,0,49,0,71,0\n38,0,2,0,6,0,61,0,16,0,62,0\n36,0,45,0,3,0,8,0,66,0,29,0\n17,0,64,0,32,0,34,0,48,0,11,0\n43,0,47,0,72,0,58,0,39,0,5,0\n15,0,54,0,70,0,46,0,24,0,44,0\n31,0,33,0,68,0,9,0,30,0,27,0\n"
  },
  {
    "path": "schedules/72_8.csv",
    "content": "3,0,38,0,39,0,10,0,20,0,66,0\n50,0,14,0,69,0,33,0,24,0,54,0\n18,0,70,0,63,0,45,0,16,0,15,0\n31,0,65,0,34,0,29,0,4,0,60,0\n48,0,28,0,43,0,11,0,68,0,61,0\n12,0,32,0,47,0,2,0,37,0,41,0\n9,0,26,0,42,0,8,0,46,0,19,0\n53,0,7,0,27,0,36,0,62,0,51,0\n1,0,59,0,23,0,5,0,44,0,30,0\n57,0,6,0,52,0,58,0,56,0,64,0\n13,0,21,0,67,0,22,0,72,0,55,0\n35,0,71,0,17,0,40,0,25,0,49,0\n43,0,41,0,29,0,20,0,70,0,24,0\n46,0,4,0,16,0,39,0,2,0,53,0\n8,0,38,0,45,0,37,0,11,0,14,0\n9,0,36,0,50,0,57,0,48,0,18,0\n32,0,23,0,34,0,33,0,13,0,52,0\n3,0,22,0,64,0,42,0,17,0,40,0\n59,0,55,0,61,0,7,0,26,0,58,0\n62,0,10,0,69,0,12,0,1,0,65,0\n5,0,71,0,67,0,47,0,60,0,56,0\n72,0,44,0,35,0,31,0,27,0,28,0\n25,0,51,0,66,0,21,0,30,0,63,0\n68,0,54,0,15,0,49,0,6,0,19,0\n55,0,52,0,17,0,38,0,2,0,36,0\n13,0,64,0,24,0,53,0,61,0,10,0\n23,0,48,0,37,0,16,0,60,0,22,0\n62,0,3,0,7,0,9,0,71,0,8,0\n12,0,34,0,42,0,18,0,14,0,5,0\n26,0,21,0,31,0,39,0,15,0,69,0\n66,0,58,0,68,0,44,0,29,0,40,0\n27,0,65,0,57,0,70,0,25,0,19,0\n30,0,50,0,4,0,32,0,11,0,49,0\n67,0,35,0,43,0,1,0,51,0,6,0\n33,0,47,0,46,0,28,0,45,0,20,0\n63,0,59,0,56,0,72,0,54,0,41,0\n9,0,64,0,16,0,24,0,44,0,38,0\n55,0,70,0,53,0,48,0,34,0,71,0\n50,0,42,0,29,0,27,0,37,0,39,0\n51,0,49,0,8,0,5,0,58,0,13,0\n30,0,61,0,17,0,62,0,31,0,12,0\n22,0,46,0,66,0,43,0,18,0,65,0\n68,0,14,0,32,0,59,0,67,0,10,0\n41,0,26,0,28,0,57,0,1,0,4,0\n47,0,7,0,21,0,52,0,54,0,35,0\n33,0,40,0,11,0,6,0,63,0,2,0\n36,0,56,0,25,0,20,0,15,0,23,0\n72,0,60,0,69,0,45,0,3,0,19,0\n64,0,12,0,46,0,70,0,68,0,50,0\n13,0,57,0,31,0,14,0,43,0,16,0\n37,0,5,0,54,0,26,0,17,0,66,0\n34,0,27,0,6,0,10,0,21,0,8,0\n41,0,39,0,25,0,33,0,18,0,55,0\n11,0,53,0,29,0,23,0,3,0,52,0\n30,0,60,0,58,0,2,0,9,0,28,0\n56,0,1,0,19,0,4,0,24,0,40,0\n15,0,61,0,42,0,47,0,38,0,72,0\n7,0,49,0,63,0,67,0,69,0,48,0\n44,0,51,0,71,0,45,0,36,0,65,0\n32,0,20,0,59,0,22,0,62,0,35,0\n14,0,17,0,70,0,23,0,6,0,28,0\n1,0,54,0,11,0,27,0,60,0,55,0\n47,0,18,0,13,0,4,0,68,0,3,0\n34,0,37,0,69,0,61,0,9,0,25,0\n26,0,72,0,33,0,10,0,30,0,36,0\n51,0,31,0,40,0,32,0,24,0,46,0\n67,0,20,0,12,0,16,0,58,0,19,0\n65,0,50,0,38,0,35,0,56,0,53,0\n2,0,49,0,71,0,64,0,66,0,59,0\n29,0,57,0,15,0,22,0,7,0,5,0\n44,0,63,0,39,0,43,0,8,0,52,0\n45,0,62,0,48,0,42,0,41,0,21,0\n51,0,9,0,20,0,72,0,11,0,12,0\n18,0,16,0,56,0,26,0,32,0,27,0\n28,0,40,0,37,0,65,0,13,0,59,0\n38,0,30,0,6,0,29,0,69,0,71,0\n36,0,39,0,49,0,47,0,34,0,22,0\n52,0,19,0,66,0,50,0,31,0,48,0\n45,0,23,0,10,0,7,0,2,0,43,0\n53,0,67,0,8,0,15,0,17,0,41,0\n4,0,5,0,25,0,64,0,14,0,62,0\n58,0,21,0,33,0,3,0,70,0,1,0\n55,0,68,0,24,0,42,0,63,0,35,0\n44,0,54,0,60,0,57,0,61,0,46,0\n37,0,19,0,10,0,18,0,71,0,28,0\n66,0,45,0,9,0,67,0,27,0,23,0\n7,0,65,0,72,0,6,0,32,0,39,0\n1,0,2,0,64,0,48,0,29,0,8,0\n55,0,43,0,62,0,50,0,47,0,40,0\n49,0,56,0,21,0,44,0,12,0,33,0\n14,0,46,0,3,0,35,0,15,0,30,0\n54,0,58,0,25,0,42,0,53,0,31,0\n20,0,13,0,38,0,63,0,60,0,26,0\n4,0,70,0,22,0,51,0,61,0,52,0\n36,0,69,0,41,0,16,0,68,0,5,0\n24,0,57,0,17,0,11,0,34,0,59,0\n"
  },
  {
    "path": "schedules/72_9.csv",
    "content": "34,0,39,0,53,0,20,0,51,0,46,0\n59,0,69,0,27,0,38,0,11,0,65,0\n40,0,17,0,19,0,29,0,12,0,58,0\n4,0,36,0,23,0,44,0,2,0,66,0\n32,0,57,0,35,0,16,0,22,0,55,0\n60,0,13,0,48,0,63,0,25,0,64,0\n15,0,43,0,9,0,31,0,26,0,5,0\n56,0,24,0,30,0,1,0,50,0,7,0\n10,0,18,0,14,0,28,0,52,0,47,0\n41,0,49,0,68,0,42,0,70,0,67,0\n62,0,21,0,33,0,72,0,3,0,6,0\n61,0,45,0,37,0,71,0,54,0,8,0\n58,0,51,0,11,0,2,0,64,0,55,0\n57,0,39,0,31,0,56,0,25,0,13,0\n10,0,53,0,69,0,66,0,43,0,35,0\n59,0,48,0,20,0,24,0,18,0,40,0\n41,0,29,0,63,0,72,0,22,0,34,0\n7,0,6,0,12,0,36,0,46,0,68,0\n50,0,3,0,8,0,23,0,26,0,9,0\n16,0,30,0,44,0,70,0,54,0,21,0\n37,0,62,0,49,0,52,0,15,0,33,0\n5,0,71,0,47,0,17,0,27,0,42,0\n65,0,67,0,32,0,1,0,45,0,28,0\n19,0,38,0,14,0,61,0,4,0,60,0\n18,0,63,0,26,0,12,0,57,0,11,0\n3,0,34,0,2,0,13,0,30,0,31,0\n50,0,46,0,59,0,41,0,37,0,35,0\n53,0,54,0,55,0,33,0,56,0,42,0\n58,0,28,0,44,0,62,0,43,0,8,0\n40,0,51,0,72,0,14,0,49,0,71,0\n45,0,20,0,27,0,19,0,10,0,21,0\n64,0,1,0,70,0,23,0,52,0,5,0\n22,0,47,0,7,0,60,0,15,0,69,0\n66,0,68,0,4,0,17,0,24,0,32,0\n38,0,29,0,39,0,48,0,65,0,6,0\n16,0,36,0,25,0,61,0,67,0,9,0\n40,0,45,0,55,0,46,0,44,0,31,0\n52,0,70,0,58,0,26,0,20,0,13,0\n56,0,12,0,22,0,21,0,23,0,2,0\n27,0,32,0,64,0,53,0,30,0,49,0\n57,0,1,0,71,0,3,0,48,0,41,0\n14,0,7,0,29,0,62,0,67,0,66,0\n61,0,35,0,47,0,34,0,6,0,28,0\n8,0,60,0,38,0,16,0,68,0,5,0\n39,0,63,0,33,0,17,0,43,0,59,0\n37,0,10,0,9,0,19,0,65,0,4,0\n51,0,42,0,24,0,69,0,36,0,18,0\n54,0,25,0,11,0,50,0,15,0,72,0\n56,0,66,0,3,0,52,0,67,0,27,0\n5,0,61,0,2,0,53,0,57,0,62,0\n12,0,31,0,64,0,33,0,14,0,8,0\n30,0,55,0,28,0,39,0,37,0,60,0\n1,0,17,0,6,0,44,0,69,0,20,0\n59,0,72,0,42,0,10,0,23,0,13,0\n16,0,15,0,4,0,41,0,45,0,51,0\n26,0,24,0,49,0,34,0,65,0,29,0\n58,0,46,0,18,0,22,0,9,0,54,0\n11,0,36,0,48,0,70,0,19,0,35,0\n71,0,43,0,38,0,32,0,25,0,7,0\n40,0,21,0,68,0,47,0,50,0,63,0\n52,0,20,0,37,0,12,0,16,0,42,0\n27,0,15,0,13,0,44,0,24,0,8,0\n66,0,60,0,54,0,41,0,59,0,6,0\n46,0,56,0,28,0,29,0,64,0,5,0\n17,0,11,0,22,0,31,0,62,0,10,0\n48,0,21,0,69,0,4,0,58,0,49,0\n32,0,34,0,18,0,50,0,19,0,33,0\n30,0,23,0,67,0,40,0,57,0,43,0\n35,0,2,0,71,0,9,0,39,0,1,0\n63,0,65,0,70,0,51,0,61,0,7,0\n14,0,53,0,25,0,26,0,45,0,68,0\n47,0,3,0,55,0,38,0,72,0,36,0\n5,0,24,0,12,0,10,0,58,0,41,0\n50,0,6,0,4,0,13,0,22,0,67,0\n16,0,62,0,34,0,56,0,59,0,71,0\n31,0,61,0,23,0,18,0,29,0,27,0\n7,0,35,0,45,0,33,0,40,0,64,0\n25,0,20,0,49,0,8,0,66,0,55,0\n72,0,52,0,19,0,44,0,68,0,39,0\n21,0,11,0,1,0,60,0,36,0,53,0\n54,0,69,0,2,0,3,0,32,0,63,0\n17,0,14,0,65,0,57,0,30,0,46,0\n15,0,28,0,42,0,9,0,38,0,70,0\n51,0,43,0,26,0,47,0,37,0,48,0\n7,0,8,0,49,0,18,0,35,0,39,0\n5,0,19,0,67,0,55,0,59,0,21,0\n53,0,52,0,31,0,71,0,6,0,24,0\n29,0,60,0,16,0,2,0,10,0,50,0\n25,0,42,0,44,0,3,0,22,0,65,0\n64,0,68,0,34,0,57,0,69,0,37,0\n47,0,12,0,13,0,62,0,32,0,45,0\n43,0,4,0,70,0,72,0,46,0,27,0\n66,0,26,0,40,0,38,0,61,0,1,0\n15,0,56,0,36,0,58,0,63,0,14,0\n9,0,41,0,33,0,20,0,30,0,11,0\n54,0,23,0,17,0,48,0,51,0,28,0\n57,0,29,0,59,0,53,0,44,0,47,0\n46,0,19,0,43,0,16,0,24,0,3,0\n72,0,13,0,65,0,5,0,66,0,18,0\n50,0,71,0,69,0,12,0,55,0,70,0\n52,0,8,0,22,0,36,0,40,0,34,0\n33,0,51,0,1,0,27,0,58,0,25,0\n64,0,62,0,39,0,42,0,54,0,4,0\n63,0,67,0,35,0,31,0,20,0,38,0\n23,0,32,0,37,0,11,0,14,0,6,0\n60,0,17,0,9,0,45,0,49,0,56,0\n2,0,26,0,41,0,7,0,28,0,21,0\n48,0,68,0,10,0,15,0,30,0,61,0\n"
  },
  {
    "path": "schedules/73_1.csv",
    "content": "19,0,44,0,67,0,62,0,12,0,61,0\n63,0,36,0,32,0,42,0,23,0,11,0\n18,0,30,0,34,0,60,0,4,0,31,0\n40,0,54,0,55,0,38,0,65,0,51,0\n69,0,17,0,46,0,71,0,37,0,45,0\n70,0,26,0,57,0,1,0,2,0,29,0\n59,0,52,0,10,0,16,0,25,0,7,0\n41,0,53,0,13,0,28,0,68,0,39,0\n72,0,35,0,21,0,3,0,64,0,5,0\n6,0,58,0,48,0,15,0,20,0,50,0\n14,0,66,0,43,0,22,0,27,0,49,0\n33,0,8,0,73,0,9,0,24,0,56,0\n47,0,34,1,57,1,16,1,31,1,52,1\n"
  },
  {
    "path": "schedules/73_10.csv",
    "content": "11,0,65,0,41,0,16,0,58,0,20,0\n69,0,52,0,56,0,5,0,68,0,33,0\n28,0,47,0,54,0,39,0,36,0,43,0\n71,0,50,0,64,0,45,0,23,0,63,0\n42,0,73,0,29,0,67,0,49,0,25,0\n9,0,4,0,3,0,72,0,31,0,62,0\n14,0,51,0,2,0,8,0,38,0,32,0\n48,0,40,0,18,0,70,0,10,0,24,0\n1,0,66,0,15,0,60,0,22,0,34,0\n55,0,61,0,13,0,12,0,17,0,7,0\n44,0,26,0,19,0,53,0,37,0,30,0\n35,0,21,0,46,0,59,0,27,0,57,0\n6,0,16,0,52,0,45,0,64,0,43,0\n31,0,56,0,3,0,2,0,47,0,63,0\n71,0,14,0,10,0,4,0,67,0,41,0\n55,0,34,0,38,0,28,0,25,0,18,0\n5,0,30,0,17,0,70,0,65,0,23,0\n22,0,7,0,58,0,57,0,62,0,29,0\n69,0,37,0,6,0,21,0,32,0,66,0\n73,0,26,0,40,0,9,0,39,0,50,0\n1,0,46,0,27,0,12,0,48,0,13,0\n59,0,44,0,72,0,54,0,68,0,20,0\n61,0,11,0,8,0,60,0,42,0,53,0\n35,0,36,0,49,0,19,0,24,0,33,0\n51,0,23,0,16,0,15,0,55,0,3,0\n45,1,62,0,34,0,41,1,32,0,56,0\n5,0,2,0,12,0,43,0,18,0,10,0\n30,0,58,0,73,0,52,0,72,0,27,0\n39,0,20,0,70,0,64,0,13,0,42,0\n71,0,49,0,8,0,36,0,37,0,46,0\n44,0,67,0,7,0,35,0,69,0,1,0\n33,0,22,0,21,0,9,0,38,0,61,0\n14,0,54,0,63,0,57,0,6,0,26,0\n29,0,66,0,53,0,31,0,24,0,68,0\n65,0,51,0,25,0,4,0,60,0,48,0\n28,0,15,0,40,0,19,0,11,0,59,0\n50,0,42,0,69,0,47,0,17,0,72,0\n46,0,38,0,70,0,44,0,43,0,58,0\n62,0,52,0,12,0,49,0,54,0,21,0\n10,0,27,0,37,0,56,0,55,0,68,0\n3,0,1,0,20,0,36,0,32,0,30,0\n59,0,9,0,22,0,18,0,53,0,23,0\n24,0,63,0,15,0,73,0,41,0,17,0\n60,0,45,0,11,0,2,0,13,0,35,0\n57,0,64,0,66,0,47,0,4,0,8,0\n61,0,51,0,31,0,34,0,67,0,19,0\n26,0,48,0,16,0,28,0,71,0,29,0\n6,0,33,0,25,0,39,0,65,0,40,0\n14,0,5,0,46,0,7,0,50,0,15,0\n42,0,62,0,18,0,52,0,36,0,44,0\n66,0,59,0,13,0,64,0,41,0,38,0\n69,0,57,0,2,0,61,0,53,0,73,0\n1,0,49,0,63,0,72,0,55,0,11,0\n65,0,45,0,12,0,51,0,37,0,28,0\n39,0,60,0,47,0,71,0,19,0,5,0\n29,0,10,0,20,0,35,0,6,0,50,0\n16,0,27,0,33,0,14,0,31,0,70,0\n32,0,67,0,54,0,30,0,9,0,48,0\n23,0,43,0,68,0,8,0,25,0,7,0\n40,0,21,0,3,0,34,0,58,0,17,0\n24,0,56,0,5,0,4,0,26,0,22,0\n18,0,46,0,72,0,51,0,39,0,35,0\n2,0,59,0,64,0,29,0,1,0,33,0\n15,0,47,0,49,0,61,0,32,0,44,0\n28,0,8,0,62,0,27,0,50,0,63,0\n45,0,17,0,68,0,9,0,58,0,67,0\n10,0,31,0,38,0,26,0,11,0,69,0\n70,0,36,0,41,0,56,0,53,0,21,0\n42,0,6,0,4,0,22,0,23,0,48,0\n40,0,60,0,37,0,7,0,52,0,20,0\n19,0,14,0,73,0,43,0,65,0,55,0\n30,0,12,0,57,0,16,0,66,0,34,0\n13,0,54,0,24,0,71,0,3,0,25,0\n41,0,68,0,44,0,11,0,50,0,32,0\n6,0,18,0,17,0,31,0,8,0,1,0\n27,0,4,0,53,0,33,0,15,0,20,0\n7,0,9,0,64,0,65,0,56,0,49,0\n21,0,67,0,73,0,16,0,60,0,28,0\n34,0,26,0,71,0,58,0,2,0,42,0\n59,0,3,0,14,0,39,0,37,0,12,0\n36,0,38,0,25,0,45,0,5,0,57,0\n22,0,52,0,51,0,10,0,63,0,13,0\n23,0,19,0,54,0,69,0,29,0,46,0\n61,0,43,0,48,0,72,0,35,0,66,0\n55,0,30,0,47,0,24,0,62,0,40,0\n70,0,7,0,6,0,73,0,59,0,71,0\n9,0,28,0,41,0,5,0,42,0,1,0\n65,0,44,0,8,0,26,0,3,0,10,0\n25,0,22,0,32,0,64,0,19,0,17,0\n12,0,72,0,38,0,29,0,15,0,56,0\n63,0,36,0,48,0,40,0,69,0,16,0\n66,0,61,0,33,0,58,0,62,0,51,0\n45,0,21,0,24,0,20,0,31,0,46,0\n43,0,67,0,37,0,13,0,57,0,50,0\n30,0,60,0,68,0,14,0,49,0,18,0\n34,0,27,0,11,0,52,0,23,0,47,0\n70,0,55,0,35,0,2,0,4,0,54,0\n53,0,62,0,1,0,39,0,16,0,38,0\n33,0,72,0,42,0,19,0,7,0,10,0\n15,0,25,0,58,0,37,0,31,0,63,0\n26,0,36,0,64,0,61,0,12,0,68,0\n13,0,47,0,29,0,65,0,21,0,14,0\n50,0,49,0,4,0,34,0,69,0,59,0\n28,0,23,0,32,0,57,0,70,0,60,0\n9,0,52,0,8,0,48,0,20,0,55,0\n67,0,53,0,5,0,6,0,46,0,3,0\n43,0,22,0,35,0,41,0,30,0,51,0\n17,0,24,0,39,0,27,0,2,0,44,0\n18,0,56,0,71,0,73,0,66,0,11,0\n54,0,40,0,61,0,45,0,14,0,1,0\n25,0,50,0,19,0,52,0,21,0,70,0\n72,0,4,0,58,0,36,0,13,0,28,0\n35,0,68,0,65,0,63,0,38,0,42,0\n55,0,29,0,60,0,33,0,41,0,3,0\n64,0,34,0,44,0,5,0,73,0,48,0\n39,0,69,0,8,0,45,0,30,0,15,0\n23,0,20,0,59,0,67,0,56,0,62,0\n11,0,57,0,24,0,9,0,51,0,6,0\n31,0,32,0,71,0,12,0,43,0,40,0\n10,0,66,0,49,0,53,0,54,0,17,0\n16,0,2,0,37,0,46,0,22,0,47,0\n27,0,7,0,45,0,18,0,26,0,41,0\n"
  },
  {
    "path": "schedules/73_11.csv",
    "content": "2,0,69,0,66,0,24,0,21,0,19,0\n28,0,23,0,6,0,41,0,7,0,9,0\n14,0,44,0,49,0,1,0,35,0,25,0\n8,0,17,0,48,0,33,0,29,0,32,0\n22,0,52,0,57,0,67,0,18,0,13,0\n64,0,62,0,55,0,37,0,53,0,40,0\n43,0,38,0,11,0,70,0,5,0,59,0\n42,0,31,0,4,0,60,0,12,0,46,0\n36,0,72,0,30,0,51,0,16,0,58,0\n3,0,39,0,54,0,10,0,65,0,20,0\n15,0,26,0,45,0,27,0,50,0,68,0\n63,0,73,0,61,0,56,0,47,0,34,0\n9,0,59,0,19,0,71,0,40,0,49,0\n29,0,41,0,35,0,21,0,38,0,31,0\n17,0,70,0,6,0,14,0,55,0,18,0\n10,0,46,0,52,0,60,0,36,0,37,0\n20,0,15,0,68,0,25,0,33,0,51,0\n48,0,39,0,66,0,3,0,61,0,64,0\n12,0,7,0,65,0,44,0,58,0,72,0\n27,0,16,0,73,0,69,0,1,0,24,0\n56,0,45,0,2,0,8,0,28,0,57,0\n23,0,53,0,26,0,47,0,22,0,11,0\n62,0,54,0,13,0,43,0,34,0,32,0\n67,0,71,0,30,0,50,0,4,0,63,0\n5,0,6,0,35,0,42,0,33,0,36,0\n27,0,46,0,7,0,20,1,66,0,14,0\n40,0,38,0,2,0,15,0,52,0,48,0\n22,0,26,0,1,0,28,0,61,0,70,0\n32,0,56,0,39,0,12,0,16,0,53,0\n10,0,64,0,8,0,51,0,50,0,59,0\n72,0,57,0,49,0,11,0,54,0,42,0\n3,0,31,0,30,0,24,0,5,0,9,0\n65,0,73,0,13,0,37,0,23,0,4,0\n62,0,34,0,44,0,71,0,18,0,69,0\n41,0,63,0,58,0,43,0,17,0,55,0\n21,0,29,0,47,0,25,0,60,0,45,0\n19,0,68,0,33,0,67,0,54,0,10,0\n27,0,8,0,40,0,72,0,70,0,3,0\n11,0,13,0,20,0,12,0,28,0,36,0\n71,0,9,0,56,0,69,0,65,0,35,0\n66,0,53,0,57,0,34,0,41,0,4,0\n42,0,16,0,55,0,22,0,2,0,25,0\n23,0,31,0,60,0,59,0,39,0,17,0\n52,0,73,0,14,0,58,0,26,0,21,0\n44,0,19,0,18,0,43,0,64,0,29,0\n15,0,67,0,37,0,32,0,5,0,1,0\n45,0,6,0,46,0,62,0,30,0,49,0\n38,0,63,0,7,0,68,0,51,0,61,0\n50,0,24,0,65,0,47,0,48,0,40,0\n26,0,13,0,41,0,9,0,42,0,10,0\n73,0,53,0,33,0,72,0,2,0,60,0\n66,0,12,0,70,0,15,0,23,0,35,0\n37,0,18,0,43,0,56,0,49,0,27,0\n71,0,8,0,22,0,1,0,20,0,31,0\n62,0,58,0,36,0,19,0,3,0,63,0\n51,0,28,0,48,0,44,0,16,0,67,0\n25,0,50,0,17,0,57,0,38,0,46,0\n68,0,24,0,47,0,6,0,4,0,39,0\n61,0,59,0,55,0,29,0,52,0,69,0\n64,0,5,0,34,0,32,0,14,0,45,0\n54,0,7,0,21,0,30,0,11,0,56,0\n44,0,63,0,2,0,31,0,27,0,10,0\n25,0,12,0,58,0,71,0,48,0,70,0\n43,0,42,0,39,0,50,0,1,0,33,0\n4,0,9,0,8,0,18,0,15,0,16,0\n72,0,35,0,20,0,47,0,41,0,19,0\n40,0,26,0,29,0,54,0,6,0,36,0\n67,0,59,0,57,0,64,0,73,0,7,0\n69,0,11,0,37,0,66,0,22,0,45,0\n62,0,14,0,38,0,24,0,28,0,13,0\n68,0,3,0,53,0,46,0,21,0,17,0\n32,0,65,0,49,0,52,0,61,0,30,0\n60,0,51,0,34,0,5,0,23,0,55,0\n70,0,44,0,33,0,20,0,73,0,9,0\n31,0,11,0,6,0,15,0,64,0,69,0\n63,0,37,0,39,0,14,0,48,0,19,0\n35,0,68,0,12,0,62,0,59,0,2,0\n25,0,41,0,54,0,36,0,52,0,50,0\n58,0,28,0,5,0,4,0,10,0,40,0\n24,0,34,0,17,0,7,0,49,0,22,0\n42,0,51,0,32,0,18,0,21,0,66,0\n3,0,27,0,67,0,30,0,23,0,29,0\n72,0,56,0,1,0,55,0,45,0,38,0\n16,0,43,0,57,0,65,0,26,0,60,0\n61,0,47,0,71,0,46,0,8,0,13,0\n53,0,50,0,19,0,31,0,7,0,70,0\n4,0,64,0,49,0,41,0,2,0,20,0\n18,0,42,0,48,0,40,0,73,0,68,0\n72,0,10,0,21,0,22,0,15,0,62,0\n27,0,60,0,28,0,32,0,54,0,35,0\n36,0,47,0,65,0,67,0,17,0,66,0\n57,0,58,0,9,0,39,0,46,0,1,0\n52,0,59,0,3,0,56,0,6,0,44,0\n24,0,71,0,55,0,33,0,23,0,11,0\n61,0,43,0,14,0,16,0,30,0,45,0\n26,0,34,0,12,0,8,0,37,0,38,0\n25,0,69,0,13,0,63,0,53,0,5,0\n51,0,39,0,35,0,29,0,73,0,17,0\n52,0,72,0,28,0,68,0,31,0,64,0\n33,0,22,0,46,0,41,0,65,0,44,0\n9,0,14,0,1,0,11,0,32,0,2,0\n30,0,15,0,55,0,26,0,57,0,19,0\n40,0,21,0,60,0,67,0,61,0,12,0\n18,0,8,0,49,0,58,0,53,0,38,0\n47,0,7,0,37,0,3,0,71,0,42,0\n63,0,45,0,51,0,54,0,70,0,24,0\n10,0,25,0,16,0,6,0,66,0,34,0\n5,0,20,0,50,0,56,0,62,0,29,0\n48,0,69,0,4,0,36,0,23,0,43,0\n59,0,27,0,64,0,13,0,58,0,22,0\n18,0,1,0,30,0,47,0,33,0,12,0\n15,0,44,0,61,0,17,0,53,0,54,0\n19,0,32,0,31,0,25,0,73,0,38,0\n50,0,2,0,6,0,72,0,37,0,5,0\n23,0,52,0,16,0,46,0,20,0,63,0\n60,0,70,0,56,0,68,0,13,0,49,0\n65,0,59,0,29,0,28,0,14,0,42,0\n21,0,34,0,9,0,48,0,27,0,36,0\n45,0,40,0,41,0,39,0,71,0,7,0\n55,0,66,0,11,0,8,0,67,0,43,0\n3,0,69,0,62,0,51,0,4,0,26,0\n35,0,10,0,37,0,24,0,57,0,61,0\n22,0,17,0,5,0,52,0,19,0,12,0\n15,0,36,0,31,0,65,0,56,0,14,0\n47,0,38,0,54,0,9,0,64,0,16,0\n21,0,20,0,33,0,63,0,34,0,40,0\n60,0,68,0,41,0,8,0,30,0,69,0\n48,0,29,0,1,0,66,0,13,0,7,0\n23,0,32,0,70,0,10,0,44,0,57,0\n46,0,18,0,24,0,59,0,72,0,26,0\n73,0,50,0,49,0,55,0,3,0,28,0\n39,0,11,0,25,0,4,0,62,0,27,0\n51,0,2,0,53,0,71,0,6,0,43,0\n58,0,67,0,20,0,35,0,42,0,45,0\n"
  },
  {
    "path": "schedules/73_12.csv",
    "content": "55,0,33,0,21,0,19,0,39,0,45,0\n7,0,37,0,4,0,29,0,26,0,61,0\n36,0,10,0,65,0,24,0,68,0,72,0\n38,0,14,0,31,0,43,0,54,0,30,0\n46,0,50,0,20,0,34,0,41,0,8,0\n42,0,16,0,13,0,64,0,27,0,71,0\n23,0,51,0,48,0,2,0,32,0,59,0\n49,0,60,0,63,0,9,0,47,0,58,0\n6,0,17,0,56,0,57,0,28,0,35,0\n70,0,12,0,22,0,11,0,25,0,69,0\n73,0,15,0,67,0,40,0,5,0,1,0\n3,0,44,0,62,0,18,0,52,0,53,0\n66,0,2,0,45,0,54,0,16,0,65,0\n29,0,72,0,30,0,20,0,9,0,71,0\n63,0,37,0,32,0,4,0,34,0,13,0\n8,0,26,0,11,0,31,0,33,0,56,0\n43,0,24,0,58,0,21,0,1,0,46,0\n67,0,14,0,42,0,68,0,55,0,23,0\n41,0,70,0,15,0,64,0,18,0,47,0\n27,0,44,0,38,0,25,0,10,0,57,0\n17,0,53,0,35,0,48,0,39,0,59,0\n5,0,50,0,69,0,49,0,51,0,62,0\n73,0,22,0,36,0,66,0,61,0,60,0\n40,0,19,0,12,0,28,0,7,0,3,0\n52,0,30,0,64,0,6,0,46,0,32,0\n42,0,29,0,24,0,2,0,43,0,31,0\n34,0,44,0,17,0,11,0,16,0,4,0\n50,0,13,0,26,0,14,0,59,0,54,0\n56,0,8,0,62,0,70,0,36,0,48,0\n49,0,37,0,67,0,12,0,20,0,57,0\n27,0,40,0,66,0,51,0,21,0,47,0\n33,0,61,0,25,0,58,0,23,0,72,0\n45,0,15,0,68,0,63,0,35,0,22,0\n73,0,41,0,7,0,65,0,38,0,6,0\n28,0,9,0,69,0,39,0,53,0,5,0\n19,0,52,0,60,0,71,0,18,0,1,0\n3,0,55,0,13,0,10,0,11,0,51,0\n58,0,59,0,70,0,31,0,34,0,67,0\n25,0,62,0,22,0,46,0,2,0,42,0\n16,0,33,0,40,0,68,0,43,0,50,0\n39,0,47,0,37,0,6,0,54,0,24,0\n29,0,35,0,27,0,1,0,49,0,19,0\n9,0,7,0,57,0,64,0,44,0,21,0\n53,0,23,0,10,0,45,0,4,0,8,0\n5,0,66,0,12,0,52,0,63,0,55,0\n32,0,69,0,72,0,38,0,18,0,28,0\n41,0,17,0,3,0,71,0,73,0,26,0\n15,0,61,0,56,0,60,0,65,0,30,0\n14,0,36,0,21,0,20,0,48,0,25,0\n34,0,64,0,7,0,33,0,47,0,54,0\n46,0,70,0,43,0,5,0,19,0,10,0\n16,0,58,0,63,0,37,0,38,0,53,0\n72,0,6,0,66,0,59,0,31,0,3,0\n17,0,24,0,12,0,32,0,61,0,42,0\n57,0,18,0,30,0,26,0,51,0,22,0\n41,0,23,0,13,0,69,0,52,0,35,0\n20,0,65,0,45,0,1,0,50,0,62,0\n73,0,68,0,9,0,2,0,56,0,27,0\n67,0,4,0,71,0,36,0,39,0,15,0\n28,0,14,0,49,0,11,0,44,0,60,0\n8,0,48,0,30,0,40,0,55,0,29,0\n69,0,54,0,26,0,72,0,63,0,21,0\n20,0,35,0,16,0,70,0,24,0,7,0\n34,0,45,0,62,0,38,0,9,0,12,0\n64,0,39,0,1,0,10,0,31,0,22,0\n46,0,23,0,18,0,73,0,49,0,17,0\n40,0,65,0,56,0,14,0,4,0,25,0\n8,0,37,0,44,0,5,0,51,0,42,0\n59,0,29,0,15,0,3,0,52,0,33,0\n32,0,67,0,11,0,43,0,27,0,60,0\n47,0,50,0,55,0,53,0,61,0,71,0\n41,0,28,0,58,0,48,0,68,0,66,0\n2,0,6,0,57,0,13,0,36,0,19,0\n45,0,18,0,42,0,5,0,14,0,56,0\n17,0,10,0,52,0,21,0,65,0,22,0\n51,0,24,0,38,0,49,0,70,0,26,0\n35,0,73,0,47,0,44,0,12,0,50,0\n32,0,64,0,58,0,3,0,72,0,20,0\n13,0,6,0,53,0,29,0,25,0,34,0\n28,0,59,0,27,0,43,0,4,0,61,0\n46,0,39,0,11,0,40,0,57,0,48,0\n9,0,54,0,15,0,23,0,16,0,8,0\n7,0,31,0,1,0,55,0,36,0,69,0\n71,0,66,0,19,0,37,0,68,0,62,0\n33,0,30,0,63,0,41,0,67,0,2,0\n60,0,29,0,51,0,72,0,45,0,17,0\n13,0,20,0,38,0,56,0,44,0,39,0\n21,0,35,0,11,0,42,0,73,0,8,0\n36,0,7,0,26,0,58,0,27,0,15,0\n54,0,4,0,48,0,49,0,12,0,18,0\n1,0,70,0,65,0,37,0,28,0,33,0\n66,0,50,0,10,0,30,0,25,0,9,0\n43,0,62,0,59,0,41,0,57,0,55,0\n2,0,34,0,63,0,61,0,3,0,14,0\n40,0,24,0,53,0,64,0,60,0,23,0\n16,0,52,0,47,0,67,0,69,0,19,0\n68,0,32,0,22,0,6,0,5,0,31,0\n71,0,36,0,12,0,46,0,51,0,33,0\n39,0,38,0,58,0,15,0,50,0,42,0\n66,0,49,0,43,0,7,0,17,0,8,0\n53,0,30,0,70,0,13,0,73,0,72,0\n28,0,55,0,64,0,52,0,2,0,37,0\n25,0,47,0,26,0,45,0,32,0,35,0\n3,0,65,0,48,0,20,0,23,0,22,0\n68,0,57,0,19,0,24,0,34,0,69,0\n1,0,4,0,6,0,9,0,46,0,14,0\n21,0,61,0,62,0,56,0,67,0,16,0\n71,0,40,0,31,0,63,0,44,0,18,0\n59,0,41,0,10,0,11,0,29,0,54,0\n27,0,5,0,55,0,60,0,35,0,33,0\n51,0,20,0,68,0,43,0,15,0,53,0\n45,0,30,0,3,0,24,0,49,0,36,0\n32,0,73,0,39,0,62,0,16,0,14,0\n56,0,12,0,72,0,23,0,1,0,66,0\n54,0,2,0,44,0,17,0,58,0,69,0\n8,0,64,0,19,0,25,0,59,0,63,0\n10,0,40,0,42,0,26,0,6,0,41,0\n60,0,9,0,4,0,57,0,52,0,70,0\n11,0,5,0,34,0,65,0,71,0,7,0\n31,0,61,0,47,0,21,0,13,0,48,0\n38,0,22,0,46,0,67,0,29,0,28,0\n27,0,18,0,36,0,37,0,50,0,23,0\n53,0,54,0,19,0,30,0,56,0,32,0\n63,0,6,0,14,0,70,0,62,0,17,0\n44,0,43,0,26,0,39,0,65,0,12,0\n42,0,69,0,20,0,40,0,60,0,59,0\n5,0,16,0,3,0,1,0,57,0,47,0\n35,0,67,0,18,0,29,0,66,0,64,0\n25,0,21,0,2,0,49,0,41,0,71,0\n52,0,8,0,68,0,38,0,11,0,61,0\n31,0,15,0,46,0,37,0,45,0,27,0\n34,0,51,0,58,0,10,0,73,0,28,0\n72,0,50,0,4,0,7,0,22,0,55,0\n9,0,24,0,48,0,33,0,13,0,67,0\n43,0,36,0,5,0,26,0,64,0,53,0\n59,0,23,0,11,0,30,0,62,0,47,0\n69,0,56,0,70,0,3,0,46,0,27,0\n61,0,45,0,1,0,41,0,32,0,44,0\n14,0,57,0,71,0,8,0,58,0,35,0\n50,0,16,0,60,0,6,0,10,0,48,0\n49,0,72,0,34,0,52,0,39,0,42,0\n19,0,37,0,9,0,22,0,17,0,40,0\n25,0,55,0,54,0,24,0,15,0,28,0\n21,0,12,0,7,0,18,0,68,0,13,0\n63,0,29,0,31,0,73,0,65,0,51,0\n2,0,33,0,20,0,66,0,4,0,38,0\n"
  },
  {
    "path": "schedules/73_13.csv",
    "content": "23,0,67,0,17,0,64,0,30,0,14,0\n46,0,66,0,12,0,15,0,38,0,32,0\n61,0,22,0,50,0,9,0,71,0,63,0\n18,0,40,0,56,0,62,0,52,0,7,0\n13,0,28,0,33,0,59,0,4,0,73,0\n31,0,2,0,37,0,11,0,43,0,68,0\n54,0,42,0,45,0,57,0,26,0,36,0\n70,0,27,0,6,0,29,0,5,0,10,0\n65,0,24,0,19,0,39,0,3,0,25,0\n58,0,20,0,1,0,8,0,41,0,60,0\n49,0,53,0,16,0,69,0,44,0,72,0\n55,0,35,0,51,0,34,0,21,0,48,0\n13,0,67,0,43,0,47,0,36,0,18,0\n31,0,5,0,12,0,4,0,22,0,23,0\n70,0,14,0,33,0,54,0,2,0,40,0\n52,0,37,0,9,0,60,0,27,0,3,0\n38,0,26,0,61,0,65,0,8,0,11,0\n48,0,71,0,57,0,68,0,28,0,39,0\n47,0,7,0,66,0,34,0,42,0,41,0\n73,0,10,0,25,0,59,0,50,0,21,0\n6,0,53,0,19,0,62,0,16,0,58,0\n45,0,32,0,72,0,17,0,51,0,20,0\n55,0,1,0,15,0,30,0,56,0,69,0\n24,0,35,0,64,0,46,0,29,0,44,0\n49,0,54,0,38,0,63,0,43,0,3,0\n10,1,66,0,60,0,23,1,47,0,33,0\n18,1,39,0,7,0,16,1,59,0,61,0\n2,1,50,0,27,0,57,0,62,0,32,0\n25,0,1,0,37,0,5,0,13,0,51,0\n71,0,21,0,44,0,40,0,15,0,42,0\n69,0,8,0,26,0,36,0,24,0,6,0\n73,0,53,0,20,0,68,0,22,0,52,0\n48,0,9,0,65,0,45,0,34,0,30,0\n46,0,70,0,67,0,4,0,63,0,17,0\n29,0,72,0,14,0,56,0,28,0,31,0\n49,0,41,0,19,0,12,0,35,0,11,0\n58,0,39,0,10,0,64,0,55,0,42,0\n6,0,69,0,2,0,52,0,13,0,38,0\n36,0,68,0,7,0,5,0,65,0,33,0\n32,0,17,0,53,0,60,0,23,0,1,0\n45,0,46,0,31,0,66,0,16,0,8,0\n28,0,22,0,44,0,37,0,19,0,34,0\n61,0,41,0,4,0,73,0,55,0,57,0\n43,0,70,0,64,0,62,0,3,0,30,0\n25,0,54,0,14,0,12,0,18,0,48,0\n24,0,15,0,26,0,49,0,9,0,67,0\n56,0,72,0,20,0,35,0,71,0,27,0\n29,0,59,0,51,0,58,0,40,0,63,0\n21,0,11,0,19,0,50,0,47,0,52,0\n57,0,28,0,1,0,64,0,38,0,33,0\n68,0,10,0,8,0,4,0,42,0,13,0\n73,0,43,0,66,0,24,0,60,0,70,0\n67,0,2,0,39,0,41,0,45,0,56,0\n14,0,5,0,46,0,34,0,49,0,61,0\n30,0,72,0,27,0,50,0,11,0,6,0\n17,0,26,0,16,0,48,0,25,0,62,0\n29,0,18,0,69,0,7,0,22,0,37,0\n35,0,40,0,59,0,23,0,54,0,15,0\n9,0,32,0,31,0,53,0,36,0,21,0\n63,0,44,0,12,0,71,0,55,0,20,0\n47,0,3,0,65,0,51,0,58,0,72,0\n60,0,67,0,11,0,16,0,28,0,10,0\n29,0,1,0,39,0,50,0,46,0,73,0\n54,0,68,0,62,0,34,0,69,0,23,0\n27,0,26,0,42,0,31,0,33,0,18,0\n52,0,6,0,63,0,15,0,37,0,41,0\n55,0,14,0,43,0,25,0,19,0,7,0\n3,0,17,0,21,0,12,0,2,0,57,0\n4,0,65,0,20,0,53,0,9,0,56,0\n22,0,58,0,24,0,35,0,45,0,38,0\n13,0,48,0,59,0,70,0,49,0,71,0\n5,0,8,0,47,0,32,0,64,0,44,0\n51,0,61,0,40,0,36,0,30,0,66,0\n3,0,42,0,23,0,6,0,46,0,60,0\n25,0,34,0,63,0,2,0,73,0,72,0\n31,0,43,0,10,0,56,0,17,0,65,0\n53,0,7,0,26,0,28,0,50,0,35,0\n71,0,18,0,32,0,11,0,64,0,1,0\n62,0,39,0,9,0,29,0,12,0,37,0\n5,0,55,0,52,0,54,0,24,0,51,0\n15,0,20,0,45,0,13,0,47,0,70,0\n44,0,33,0,19,0,61,0,69,0,48,0\n49,0,27,0,4,0,40,0,38,0,16,0\n58,0,59,0,8,0,57,0,67,0,14,0\n36,0,41,0,22,0,68,0,21,0,30,0\n66,0,62,0,28,0,65,0,52,0,1,0\n63,0,5,0,15,0,45,0,18,0,53,0\n23,0,50,0,9,0,69,0,43,0,51,0\n72,0,13,0,60,0,61,0,54,0,29,0\n56,0,73,0,11,0,8,0,44,0,3,0\n25,0,35,0,4,0,6,0,47,0,30,0\n36,0,34,0,31,0,19,0,70,0,57,0\n37,0,42,0,38,0,20,0,40,0,67,0\n33,0,41,0,16,0,71,0,24,0,17,0\n39,0,27,0,14,0,66,0,21,0,22,0\n49,0,2,0,48,0,7,0,64,0,58,0\n68,0,59,0,46,0,12,0,55,0,26,0\n10,0,56,0,6,0,32,0,54,0,19,0\n28,0,42,0,20,0,5,0,50,0,43,0\n16,0,31,0,70,0,61,0,35,0,1,0\n11,0,53,0,57,0,66,0,40,0,25,0\n65,0,51,0,22,0,2,0,41,0,64,0\n7,0,46,0,34,0,44,0,13,0,27,0\n8,0,33,0,62,0,39,0,72,0,15,0\n3,0,69,0,45,0,14,0,59,0,32,0\n71,0,30,0,38,0,26,0,52,0,10,0\n18,0,24,0,63,0,21,0,4,0,60,0\n23,0,36,0,12,0,58,0,73,0,37,0\n47,0,17,0,49,0,29,0,9,0,68,0\n55,0,67,0,22,0,48,0,72,0,6,0\n34,0,64,0,3,0,31,0,15,0,53,0\n10,0,40,0,32,0,43,0,41,0,26,0\n59,0,30,0,19,0,46,0,20,0,2,0\n11,0,24,0,4,0,14,0,7,0,1,0\n51,0,44,0,36,0,39,0,38,0,60,0\n49,0,56,0,33,0,50,0,45,0,37,0\n29,0,47,0,48,0,52,0,23,0,57,0\n5,0,35,0,66,0,67,0,73,0,71,0\n25,0,68,0,18,0,9,0,70,0,8,0\n54,0,69,0,21,0,27,0,58,0,61,0\n63,0,65,0,13,0,12,0,16,0,42,0\n17,0,62,0,36,0,55,0,28,0,49,0\n24,0,38,0,34,0,56,0,37,0,59,0\n47,0,53,0,2,0,39,0,73,0,26,0\n19,0,40,0,72,0,5,0,68,0,1,0\n45,0,44,0,23,0,21,0,25,0,27,0\n11,0,70,0,52,0,22,0,42,0,33,0\n57,0,41,0,10,0,69,0,46,0,9,0\n71,0,51,0,12,0,67,0,31,0,6,0\n20,0,60,0,35,0,62,0,14,0,65,0\n28,0,7,0,8,0,30,0,63,0,54,0\n15,0,61,0,64,0,48,0,43,0,4,0\n58,0,13,0,18,0,50,0,17,0,66,0\n32,0,16,0,3,0,55,0,29,0,33,0\n70,0,23,0,41,0,44,0,56,0,26,0\n37,0,14,0,51,0,53,0,10,0,42,0\n12,0,27,0,28,0,24,0,8,0,2,0\n11,0,62,0,61,0,68,0,67,0,45,0\n57,0,69,0,35,0,20,0,5,0,18,0\n3,0,29,0,4,0,25,0,71,0,36,0\n58,0,52,0,30,0,34,0,32,0,39,0\n40,0,50,0,60,0,31,0,55,0,48,0\n6,0,21,0,1,0,65,0,59,0,49,0\n47,0,54,0,43,0,16,0,46,0,22,0\n38,0,7,0,73,0,17,0,19,0,15,0\n13,0,66,0,9,0,64,0,72,0,63,0\n67,0,42,0,56,0,28,0,25,0,69,0\n33,0,61,0,39,0,20,0,10,0,23,0\n41,0,27,0,18,0,3,0,48,0,53,0\n55,0,32,0,37,0,70,0,65,0,35,0\n50,0,16,0,68,0,15,0,36,0,14,0\n2,0,43,0,21,0,71,0,29,0,8,0\n73,0,9,0,5,0,46,0,11,0,58,0\n52,0,60,0,64,0,45,0,12,0,7,0\n44,0,6,0,34,0,1,0,40,0,17,0\n22,0,30,0,57,0,49,0,24,0,13,0\n4,0,54,0,26,0,66,0,51,0,19,0\n38,0,63,0,59,0,31,0,47,0,62,0\n72,0,23,0,16,0,10,0,18,0,2,0\n"
  },
  {
    "path": "schedules/73_14.csv",
    "content": "25,0,7,0,72,0,30,0,4,0,34,0\n46,0,39,0,55,0,70,0,31,0,62,0\n53,0,43,0,42,0,18,0,37,0,2,0\n19,0,23,0,54,0,61,0,16,0,1,0\n38,0,35,0,47,0,59,0,13,0,27,0\n33,0,24,0,63,0,20,0,67,0,12,0\n3,0,71,0,58,0,64,0,50,0,28,0\n69,0,44,0,6,0,45,0,48,0,32,0\n65,0,5,0,41,0,22,0,15,0,26,0\n49,0,9,0,8,0,73,0,36,0,57,0\n17,0,14,0,11,0,51,0,66,0,10,0\n29,0,52,0,60,0,21,0,68,0,40,0\n56,0,30,0,62,0,34,0,1,0,27,0\n47,0,64,0,2,0,46,0,45,0,18,0\n61,0,63,0,71,0,43,0,37,0,3,0\n53,0,8,0,15,0,12,0,28,0,58,0\n50,0,31,0,17,0,20,0,42,0,57,0\n54,0,51,0,32,0,35,0,7,0,60,0\n69,0,21,0,14,0,26,0,16,0,33,0\n36,0,55,0,66,0,22,0,29,0,59,0\n73,0,10,0,23,0,70,0,65,0,40,0\n25,0,38,0,68,0,11,0,5,0,72,0\n41,0,13,0,44,0,52,0,39,0,67,0\n56,0,49,0,48,0,4,0,24,0,19,0\n6,0,71,0,34,0,9,0,15,0,43,0\n32,1,33,0,21,0,57,1,2,0,51,0\n47,1,36,0,18,0,31,1,45,0,30,0\n22,0,14,0,20,0,58,0,46,0,23,0\n55,0,28,0,17,0,73,0,61,0,13,0\n40,0,11,0,35,0,37,0,5,0,29,0\n16,0,52,0,56,0,67,0,42,0,7,0\n26,0,59,0,39,0,53,0,49,0,54,0\n27,0,3,0,6,0,68,0,24,0,65,0\n70,0,64,0,63,0,44,0,9,0,25,0\n66,0,38,0,1,0,48,0,41,0,8,0\n10,0,72,0,12,0,69,0,60,0,50,0\n19,0,62,0,28,0,4,0,5,0,57,0\n71,0,17,0,18,0,47,0,16,0,23,0\n35,0,26,0,42,0,45,0,34,0,14,0\n37,0,44,0,30,0,58,0,22,0,49,0\n53,0,7,0,70,0,36,0,48,0,6,0\n1,0,8,0,25,0,52,0,32,0,50,0\n15,0,10,0,13,0,54,0,66,0,73,0\n63,0,56,0,21,0,69,0,61,0,46,0\n19,0,9,0,67,0,2,0,68,0,72,0\n62,0,29,0,27,0,20,0,31,0,51,0\n3,0,41,0,60,0,59,0,11,0,4,0\n38,0,65,0,55,0,64,0,43,0,12,0\n39,0,33,0,14,0,24,0,40,0,48,0\n44,0,63,0,54,0,30,0,50,0,53,0\n21,0,36,0,25,0,1,0,37,0,67,0\n31,0,15,0,34,0,22,0,61,0,52,0\n59,0,58,0,51,0,45,0,73,0,3,0\n16,0,12,0,57,0,46,0,29,0,64,0\n41,0,69,0,42,0,71,0,40,0,19,0\n72,0,62,0,13,0,26,0,8,0,6,0\n55,0,4,0,43,0,35,0,10,0,39,0\n5,0,24,0,2,0,7,0,66,0,47,0\n18,0,20,0,32,0,11,0,9,0,38,0\n23,0,70,0,27,0,60,0,28,0,49,0\n56,0,68,0,33,0,65,0,17,0,53,0\n61,0,64,0,72,0,51,0,41,0,6,0\n73,0,62,0,71,0,22,0,25,0,63,0\n19,0,12,0,52,0,47,0,59,0,31,0\n4,0,32,0,37,0,16,0,58,0,14,0\n48,0,5,0,30,0,42,0,46,0,13,0\n44,0,28,0,20,0,7,0,34,0,26,0\n21,0,8,0,43,0,17,0,24,0,70,0\n10,0,29,0,1,0,2,0,3,0,33,0\n9,0,36,0,40,0,38,0,54,0,56,0\n11,0,60,0,68,0,45,0,15,0,55,0\n57,0,23,0,39,0,66,0,27,0,67,0\n35,0,49,0,50,0,69,0,18,0,65,0\n34,0,70,0,59,0,13,0,24,0,16,0\n48,0,4,0,53,0,51,0,5,0,21,0\n19,0,29,0,8,0,46,0,9,0,30,0\n42,0,60,0,62,0,44,0,64,0,38,0\n7,0,73,0,58,0,11,0,39,0,2,0\n61,0,12,0,47,0,49,0,14,0,25,0\n50,0,40,0,43,0,67,0,36,0,28,0\n45,0,37,0,69,0,66,0,65,0,20,0\n32,0,72,0,15,0,10,0,17,0,56,0\n33,0,23,0,35,0,63,0,6,0,31,0\n52,0,1,0,26,0,71,0,57,0,55,0\n27,0,18,0,68,0,22,0,54,0,41,0\n3,0,64,0,30,0,40,0,53,0,47,0\n50,0,65,0,61,0,48,0,29,0,7,0\n16,0,32,0,28,0,72,0,49,0,45,0\n36,0,19,0,33,0,35,0,15,0,62,0\n25,0,24,0,57,0,44,0,55,0,23,0\n9,0,41,0,68,0,10,0,59,0,37,0\n2,0,14,0,31,0,8,0,34,0,5,0\n69,0,4,0,54,0,43,0,17,0,52,0\n58,0,27,0,26,0,12,0,42,0,63,0\n70,0,71,0,20,0,56,0,11,0,66,0\n73,0,1,0,46,0,60,0,67,0,18,0\n39,0,22,0,6,0,3,0,21,0,38,0\n51,0,23,0,50,0,13,0,68,0,34,0\n54,0,37,0,48,0,2,0,55,0,62,0\n41,0,72,0,43,0,29,0,47,0,58,0\n61,0,20,0,40,0,70,0,8,0,32,0\n73,0,11,0,30,0,24,0,35,0,69,0\n22,0,60,0,65,0,39,0,16,0,19,0\n64,0,31,0,7,0,17,0,59,0,21,0\n3,0,15,0,36,0,42,0,44,0,66,0\n4,0,6,0,67,0,18,0,12,0,26,0\n57,0,56,0,28,0,51,0,14,0,38,0\n5,0,13,0,1,0,45,0,9,0,63,0\n27,0,53,0,25,0,71,0,10,0,46,0\n49,0,52,0,73,0,33,0,43,0,54,0\n44,0,3,0,34,0,19,0,41,0,17,0\n30,0,67,0,26,0,61,0,11,0,31,0\n55,0,40,0,18,0,72,0,58,0,21,0\n60,0,64,0,23,0,5,0,36,0,69,0\n20,0,68,0,35,0,25,0,48,0,71,0\n10,0,6,0,16,0,63,0,47,0,39,0\n24,0,66,0,53,0,32,0,62,0,9,0\n45,0,56,0,22,0,12,0,8,0,33,0\n50,0,70,0,37,0,27,0,4,0,52,0\n7,0,46,0,2,0,15,0,38,0,49,0\n1,0,59,0,42,0,28,0,65,0,51,0\n29,0,57,0,18,0,14,0,13,0,60,0\n44,0,24,0,31,0,71,0,72,0,54,0\n34,0,22,0,67,0,64,0,32,0,53,0\n50,0,6,0,5,0,56,0,73,0,55,0\n16,0,36,0,11,0,48,0,27,0,9,0\n70,0,69,0,58,0,47,0,1,0,68,0\n66,0,13,0,4,0,61,0,33,0,42,0\n43,0,65,0,59,0,14,0,46,0,62,0\n57,0,21,0,49,0,20,0,3,0,10,0\n7,0,12,0,17,0,35,0,37,0,41,0\n38,0,2,0,45,0,23,0,52,0,30,0\n51,0,8,0,40,0,15,0,19,0,63,0\n29,0,28,0,26,0,39,0,25,0,32,0\n9,0,31,0,55,0,65,0,14,0,4,0\n44,0,59,0,18,0,61,0,56,0,27,0\n41,0,47,0,49,0,50,0,62,0,21,0\n38,0,58,0,37,0,33,0,34,0,73,0\n13,0,11,0,20,0,1,0,19,0,43,0\n10,0,48,0,26,0,22,0,64,0,40,0\n54,0,45,0,42,0,72,0,70,0,29,0\n17,0,60,0,2,0,30,0,25,0,6,0\n66,0,46,0,63,0,52,0,28,0,68,0\n24,0,15,0,7,0,53,0,69,0,57,0\n67,0,8,0,16,0,5,0,3,0,35,0\n51,0,39,0,12,0,36,0,23,0,71,0\n21,0,47,0,65,0,34,0,11,0,54,0\n40,0,31,0,49,0,17,0,13,0,6,0\n66,0,60,0,25,0,56,0,58,0,43,0\n27,0,7,0,33,0,19,0,55,0,64,0\n48,0,72,0,14,0,52,0,53,0,3,0\n67,0,45,0,61,0,10,0,62,0,38,0\n2,0,63,0,32,0,41,0,36,0,59,0\n57,0,70,0,30,0,5,0,12,0,71,0\n51,0,46,0,37,0,50,0,26,0,24,0\n69,0,68,0,39,0,8,0,18,0,42,0\n4,0,73,0,15,0,20,0,23,0,29,0\n28,0,1,0,9,0,44,0,22,0,35,0\n16,0,25,0,45,0,53,0,31,0,41,0\n43,0,5,0,32,0,27,0,21,0,30,0\n11,0,57,0,46,0,33,0,6,0,72,0\n48,0,66,0,34,0,18,0,63,0,49,0\n58,0,24,0,52,0,10,0,65,0,36,0\n28,0,35,0,61,0,47,0,20,0,60,0\n12,0,40,0,73,0,44,0,68,0,16,0\n51,0,22,0,55,0,67,0,69,0,2,0\n15,0,14,0,59,0,1,0,39,0,50,0\n64,0,71,0,4,0,13,0,8,0,54,0\n17,0,38,0,29,0,70,0,26,0,19,0\n3,0,42,0,9,0,7,0,62,0,23,0\n56,0,32,0,47,0,37,0,57,0,31,0\n"
  },
  {
    "path": "schedules/73_2.csv",
    "content": "19,0,7,0,71,0,49,0,26,0,45,0\n24,0,4,0,1,0,52,0,40,0,20,0\n3,0,6,0,27,0,48,0,72,0,37,0\n22,0,67,0,14,0,65,0,42,0,66,0\n59,0,25,0,23,0,28,0,33,0,10,0\n17,0,8,0,32,0,46,0,68,0,43,0\n53,0,16,0,63,0,70,0,29,0,55,0\n50,0,64,0,21,0,38,0,41,0,12,0\n58,0,57,0,31,0,62,0,69,0,35,0\n39,0,18,0,51,0,13,0,44,0,61,0\n30,0,2,0,11,0,34,0,56,0,73,0\n15,0,47,0,54,0,9,0,36,0,5,0\n60,0,48,0,28,0,26,0,46,0,4,0\n32,0,65,0,49,0,6,0,52,0,41,0\n37,0,43,0,20,0,12,0,45,0,42,0\n38,0,71,0,63,0,22,0,59,0,62,0\n33,0,13,0,34,0,24,0,19,0,64,0\n29,0,11,0,57,0,27,0,51,0,68,0\n10,0,31,0,53,0,1,0,30,0,17,0\n73,0,5,0,18,0,25,0,21,0,58,0\n15,0,44,0,56,0,66,0,8,0,72,0\n47,0,69,0,61,0,14,0,70,0,2,0\n60,0,36,0,67,0,50,0,16,0,3,0\n40,0,55,0,23,0,39,0,7,0,54,0\n35,0,32,1,59,1,9,0,13,1,49,1\n"
  },
  {
    "path": "schedules/73_3.csv",
    "content": "62,0,21,0,43,0,69,0,46,0,53,0\n60,0,39,0,56,0,33,0,64,0,63,0\n29,0,31,0,18,0,7,0,51,0,55,0\n68,0,23,0,61,0,3,0,50,0,13,0\n71,0,14,0,20,0,8,0,67,0,65,0\n12,0,35,0,66,0,19,0,37,0,22,0\n48,0,32,0,30,0,54,0,27,0,70,0\n47,0,44,0,2,0,45,0,28,0,36,0\n17,0,57,0,58,0,10,0,11,0,72,0\n4,0,6,0,15,0,16,0,9,0,5,0\n42,0,59,0,25,0,34,0,40,0,1,0\n26,0,52,0,73,0,24,0,38,0,49,0\n41,0,71,0,18,0,66,0,32,0,43,0\n35,1,51,0,54,0,33,1,53,0,44,0\n27,1,10,0,8,0,29,0,19,0,45,0\n55,0,50,0,9,0,57,0,46,0,47,0\n1,0,39,0,5,0,22,0,68,0,30,0\n26,0,2,0,69,0,59,0,23,0,60,0\n70,0,6,0,67,0,25,0,73,0,11,0\n56,0,42,0,16,0,49,0,12,0,62,0\n65,0,17,0,36,0,4,0,24,0,13,0\n72,0,48,0,63,0,61,0,34,0,15,0\n7,0,38,0,37,0,41,0,64,0,21,0\n40,0,52,0,28,0,31,0,58,0,14,0\n3,0,27,0,43,0,20,0,57,0,39,0\n53,0,10,0,23,0,25,0,16,0,55,0\n33,0,12,0,45,0,26,0,18,0,17,0\n35,0,13,0,60,0,8,0,5,0,73,0\n24,0,7,0,9,0,67,0,22,0,72,0\n19,0,63,0,70,0,62,0,38,0,59,0\n51,0,30,0,3,0,56,0,2,0,52,0\n1,0,69,0,41,0,14,0,48,0,6,0\n4,0,47,0,58,0,21,0,29,0,54,0\n15,0,50,0,71,0,42,0,44,0,31,0\n46,0,28,0,20,0,68,0,64,0,66,0\n61,0,49,0,32,0,40,0,37,0,36,0\n34,0,11,0,33,0,65,0,35,0,27,0\n"
  },
  {
    "path": "schedules/73_4.csv",
    "content": "19,0,51,0,54,0,3,0,48,0,34,0\n70,0,40,0,32,0,23,0,56,0,33,0\n4,0,42,0,64,0,22,0,49,0,71,0\n45,0,31,0,16,0,73,0,5,0,72,0\n8,0,67,0,41,0,47,0,14,0,43,0\n13,0,66,0,65,0,53,0,10,0,9,0\n38,0,50,0,27,0,26,0,62,0,39,0\n24,0,11,0,30,0,17,0,60,0,44,0\n59,0,12,0,61,0,63,0,21,0,15,0\n29,0,69,0,46,0,52,0,68,0,6,0\n35,0,20,0,7,0,55,0,28,0,57,0\n18,0,2,0,58,0,37,0,25,0,36,0\n1,0,14,0,50,0,3,0,9,0,72,0\n17,0,31,0,47,0,23,0,39,0,66,0\n4,0,15,0,33,0,16,0,30,0,62,0\n22,0,56,0,63,0,11,0,53,0,41,0\n5,0,40,0,48,0,8,0,7,0,61,0\n28,0,52,0,25,0,65,0,59,0,27,0\n42,0,1,0,44,0,2,0,29,0,38,0\n71,0,51,0,68,0,20,0,21,0,37,0\n60,0,34,0,6,0,43,0,70,0,10,0\n67,0,18,0,57,0,13,0,24,0,19,0\n55,0,26,0,36,0,49,0,46,0,45,0\n12,0,69,0,35,0,58,0,73,0,32,0\n54,0,38,0,15,0,64,0,11,0,28,0\n8,1,66,0,16,0,21,1,56,0,42,0\n34,0,20,0,63,0,1,0,27,0,47,0\n2,0,50,0,65,0,31,0,60,0,67,0\n6,0,23,0,53,0,55,0,25,0,71,0\n5,0,62,0,3,0,59,0,24,0,58,0\n4,0,44,0,26,0,18,0,12,0,68,0\n70,0,45,0,7,0,69,0,54,0,39,0\n30,0,36,0,57,0,29,0,51,0,32,0\n43,0,37,0,22,0,35,0,40,0,13,0\n41,0,72,0,10,0,33,0,64,0,17,0\n52,0,9,0,19,0,49,0,73,0,61,0\n14,0,48,0,60,0,46,0,28,0,62,0\n8,0,63,0,3,0,70,0,2,0,68,0\n32,0,55,0,59,0,67,0,38,0,66,0\n36,0,40,0,21,0,6,0,1,0,4,0\n11,0,13,0,33,0,45,0,71,0,58,0\n30,0,73,0,20,0,22,0,26,0,65,0\n53,0,47,0,61,0,16,0,50,0,69,0\n39,0,72,0,46,0,42,0,18,0,35,0\n57,0,9,0,41,0,15,0,48,0,25,0\n23,0,10,0,37,0,19,0,5,0,44,0\n56,0,54,0,27,0,31,0,24,0,43,0\n64,0,12,0,51,0,14,0,52,0,7,0\n34,0,49,0,21,0,29,0,17,0,8,0\n"
  },
  {
    "path": "schedules/73_5.csv",
    "content": "18,0,23,0,68,0,31,0,25,0,72,0\n37,0,2,0,47,0,46,0,48,0,26,0\n36,0,8,0,59,0,27,0,4,0,52,0\n14,0,1,0,70,0,73,0,49,0,5,0\n41,0,38,0,28,0,16,0,22,0,45,0\n54,0,21,0,67,0,11,0,58,0,40,0\n15,0,64,0,61,0,6,0,44,0,20,0\n63,0,55,0,42,0,10,0,7,0,35,0\n39,0,56,0,17,0,32,0,53,0,62,0\n29,0,24,0,34,0,13,0,66,0,60,0\n3,0,57,0,50,0,30,0,19,0,71,0\n12,0,9,0,51,0,69,0,43,0,33,0\n65,0,49,0,25,0,61,0,58,0,46,0\n6,0,27,0,21,0,63,0,47,0,14,0\n11,0,7,0,15,0,52,0,28,0,53,0\n39,0,18,0,54,0,20,0,35,0,38,0\n19,0,10,0,62,0,64,0,45,0,29,0\n5,0,4,0,3,0,31,0,2,0,12,0\n33,0,59,0,42,0,67,0,32,0,30,0\n43,0,1,0,40,0,36,0,24,0,23,0\n48,0,69,0,34,0,70,0,16,0,56,0\n26,0,22,0,73,0,44,0,71,0,13,0\n68,0,9,0,17,0,57,0,66,0,37,0\n60,0,72,0,55,0,50,0,8,0,51,0\n65,0,47,0,5,0,41,0,53,0,18,0\n10,1,36,0,30,0,38,0,15,0,21,0\n70,0,32,0,45,0,52,0,12,0,61,0\n14,0,35,0,56,0,44,0,24,0,3,0\n20,0,25,0,43,0,27,0,2,0,66,0\n49,0,63,0,60,0,67,0,48,0,9,0\n33,0,64,0,26,0,34,0,55,0,68,0\n73,0,46,0,50,0,41,0,54,0,42,0\n71,0,7,0,16,0,17,0,51,0,6,0\n59,0,31,0,22,0,11,0,1,0,19,0\n28,0,37,0,13,0,23,0,65,0,8,0\n40,0,69,0,57,0,29,0,39,0,72,0\n4,0,62,0,14,0,58,0,68,0,20,0\n67,0,52,0,10,0,5,0,46,0,34,0\n45,0,53,0,54,0,25,0,33,0,24,0\n51,0,18,0,49,0,26,0,15,0,19,0\n27,0,7,0,64,0,38,0,3,0,1,0\n66,0,23,0,44,0,30,0,47,0,39,0\n2,0,50,0,40,0,28,0,63,0,59,0\n70,0,29,0,65,0,17,0,42,0,4,0\n12,0,37,0,60,0,11,0,56,0,73,0\n58,0,31,0,6,0,41,0,57,0,8,0\n13,0,16,0,32,0,9,0,36,0,72,0\n48,0,43,0,62,0,71,0,55,0,21,0\n35,0,69,0,5,0,22,0,61,0,23,0\n30,0,34,0,45,0,65,0,51,0,27,0\n73,0,33,0,19,0,4,0,63,0,38,0\n47,0,56,0,28,0,49,0,54,0,31,0\n72,0,58,0,44,0,59,0,17,0,10,0\n53,0,64,0,36,0,12,0,50,0,67,0\n18,0,11,0,46,0,43,0,57,0,16,0\n68,0,41,0,24,0,39,0,70,0,21,0\n6,0,35,0,2,0,1,0,62,0,9,0\n66,0,26,0,14,0,7,0,8,0,32,0\n52,0,20,0,55,0,22,0,29,0,37,0\n15,0,25,0,71,0,69,0,42,0,60,0\n3,0,61,0,48,0,13,0,40,0,10,0\n"
  },
  {
    "path": "schedules/73_6.csv",
    "content": "29,0,12,0,18,0,36,0,58,0,27,0\n5,0,65,0,25,0,38,0,44,0,43,0\n16,0,22,0,19,0,47,0,3,0,24,0\n50,0,17,0,61,0,33,0,32,0,55,0\n7,0,52,0,1,0,42,0,56,0,31,0\n21,0,40,0,63,0,45,0,64,0,15,0\n59,0,68,0,28,0,35,0,2,0,71,0\n30,0,39,0,4,0,57,0,48,0,49,0\n13,0,60,0,11,0,53,0,46,0,10,0\n62,0,6,0,41,0,37,0,69,0,67,0\n20,0,72,0,54,0,70,0,9,0,51,0\n8,0,73,0,14,0,23,0,26,0,66,0\n34,0,35,0,38,0,19,0,61,0,42,0\n63,0,49,0,59,0,18,0,52,0,65,0\n10,0,27,0,30,0,24,0,5,0,21,0\n68,0,47,0,32,0,45,0,1,0,58,0\n44,0,51,0,22,0,53,0,6,0,50,0\n41,0,23,0,56,0,25,0,29,0,46,0\n8,0,40,0,33,0,28,0,60,0,9,0\n34,0,66,0,4,0,20,0,3,0,64,0\n73,0,71,0,13,0,7,0,54,0,12,0\n43,0,11,0,62,0,55,0,31,0,39,0\n26,0,36,0,16,0,37,0,48,0,15,0\n2,0,14,0,17,0,72,0,69,0,57,0\n67,0,18,0,1,0,70,0,33,0,19,0\n64,0,65,0,24,0,41,0,9,0,32,0\n10,0,47,0,42,0,20,0,63,0,6,0\n35,0,44,0,66,0,11,0,49,0,12,0\n4,0,73,0,25,0,51,0,40,0,58,0\n16,0,39,0,5,0,23,0,53,0,71,0\n61,0,45,0,22,0,13,0,30,0,69,0\n46,0,52,0,26,0,43,0,57,0,54,0\n56,0,3,0,38,0,14,0,50,0,36,0\n29,0,59,0,72,0,37,0,8,0,21,0\n27,0,55,0,48,0,7,0,67,0,2,0\n70,0,15,0,68,0,60,0,62,0,34,0\n28,0,31,0,65,0,17,0,22,0,10,0\n44,0,30,0,46,0,20,0,16,0,18,0\n57,0,13,0,24,0,1,0,6,0,25,0\n58,0,64,0,72,0,35,0,39,0,50,0\n61,0,49,0,40,0,3,0,26,0,67,0\n15,0,53,0,47,0,56,0,33,0,59,0\n36,0,2,0,41,0,21,0,66,0,52,0\n29,0,7,0,38,0,17,0,70,0,4,0\n51,0,37,0,43,0,27,0,68,0,14,0\n28,0,45,0,48,0,62,0,73,0,42,0\n23,0,69,0,9,0,12,0,31,0,34,0\n32,0,11,0,63,0,8,0,5,0,54,0\n55,0,71,0,26,0,60,0,19,0,6,0\n10,0,44,0,39,0,15,0,2,0,3,0\n20,0,14,0,49,0,29,0,22,0,1,0\n65,0,33,0,57,0,27,0,35,0,16,0\n37,0,23,0,64,0,7,0,61,0,28,0\n50,0,12,0,46,0,5,0,45,0,70,0\n17,0,53,0,9,0,43,0,73,0,18,0\n21,0,67,0,42,0,32,0,4,0,60,0\n25,0,69,0,54,0,59,0,36,0,55,0\n30,0,71,0,58,0,63,0,62,0,66,0\n47,0,51,0,8,0,52,0,38,0,13,0\n31,0,41,0,19,0,48,0,72,0,68,0\n34,0,24,0,17,0,40,0,11,0,56,0\n5,0,1,0,37,0,9,0,35,0,4,0\n64,0,46,0,6,0,73,0,2,0,49,0\n58,0,14,0,60,0,44,0,61,0,59,0\n25,0,52,0,15,0,67,0,12,0,30,0\n27,0,70,0,71,0,41,0,42,0,8,0\n7,0,32,0,66,0,43,0,10,0,40,0\n18,0,34,0,57,0,50,0,21,0,47,0\n38,0,54,0,68,0,22,0,39,0,33,0\n48,0,3,0,11,0,69,0,51,0,65,0\n19,0,36,0,62,0,13,0,20,0,23,0\n16,0,56,0,55,0,28,0,63,0,72,0\n31,0,53,0,45,0,26,0,29,0,24,0\n"
  },
  {
    "path": "schedules/73_7.csv",
    "content": "71,0,39,0,53,0,37,0,4,0,29,0\n24,0,43,0,10,0,58,0,46,0,11,0\n50,0,3,0,35,0,70,0,57,0,19,0\n13,0,7,0,15,0,55,0,18,0,48,0\n66,0,28,0,67,0,33,0,61,0,40,0\n60,0,6,0,62,0,44,0,32,0,56,0\n14,0,5,0,41,0,25,0,26,0,22,0\n72,0,30,0,36,0,49,0,21,0,51,0\n73,0,42,0,8,0,52,0,20,0,27,0\n16,0,12,0,17,0,45,0,34,0,69,0\n2,0,1,0,68,0,47,0,64,0,23,0\n54,0,31,0,59,0,9,0,65,0,63,0\n40,0,70,0,10,0,38,0,55,0,71,0\n35,0,7,0,22,0,39,0,46,0,28,0\n30,0,15,0,8,0,66,0,3,0,60,0\n4,0,62,0,19,0,61,0,17,0,43,0\n18,0,24,0,33,0,73,0,23,0,57,0\n11,0,47,0,25,0,32,0,63,0,48,0\n49,0,42,0,12,0,2,0,54,0,5,0\n51,0,37,0,68,0,34,0,59,0,41,0\n56,0,26,0,31,0,38,0,27,0,64,0\n29,0,65,0,72,0,6,0,50,0,20,0\n67,0,53,0,21,0,14,0,52,0,45,0\n69,0,58,0,1,0,36,0,9,0,13,0\n44,0,8,0,11,0,16,0,61,0,2,0\n10,1,73,0,3,0,37,1,7,0,5,0\n28,1,43,0,71,0,60,1,23,0,12,0\n20,1,49,0,57,0,59,0,46,0,66,0\n50,0,15,0,39,0,54,0,62,0,14,0\n21,0,18,0,47,0,27,0,19,0,69,0\n13,0,63,0,30,0,52,0,26,0,4,0\n38,0,45,0,25,0,36,0,68,0,29,0\n70,0,16,0,41,0,58,0,6,0,67,0\n56,0,17,0,42,0,9,0,72,0,53,0\n48,0,35,0,51,0,24,0,1,0,31,0\n64,0,34,0,40,0,32,0,22,0,65,0\n44,0,37,0,52,0,33,0,55,0,47,0\n28,0,59,0,73,0,4,0,21,0,50,0\n60,0,67,0,38,0,39,0,11,0,13,0\n18,0,61,0,70,0,53,0,25,0,46,0\n9,0,6,0,23,0,15,0,5,0,51,0\n58,0,72,0,7,0,31,0,40,0,62,0\n42,0,29,0,34,0,35,0,26,0,44,0\n63,0,22,0,3,0,17,0,33,0,1,0\n14,0,49,0,68,0,32,0,69,0,8,0\n19,0,24,0,54,0,45,0,30,0,71,0\n36,0,27,0,66,0,65,0,12,0,55,0\n20,0,48,0,43,0,41,0,2,0,56,0\n57,0,10,0,29,0,16,0,64,0,13,0\n51,0,26,0,11,0,40,0,18,0,3,0\n9,0,8,0,4,0,22,0,47,0,67,0\n32,0,17,0,46,0,54,0,52,0,38,0\n14,0,23,0,59,0,44,0,19,0,7,0\n20,0,5,0,31,0,39,0,34,0,36,0\n6,0,55,0,45,0,57,0,43,0,42,0\n35,0,71,0,64,0,73,0,25,0,66,0\n70,0,63,0,2,0,72,0,28,0,15,0\n65,0,49,0,53,0,48,0,60,0,58,0\n41,0,61,0,21,0,12,0,10,0,1,0\n62,0,33,0,27,0,16,0,30,0,68,0\n56,0,37,0,69,0,24,0,50,0,67,0\n14,0,38,0,34,0,66,0,6,0,18,0\n25,0,54,0,40,0,8,0,43,0,13,0\n31,0,22,0,53,0,19,0,11,0,73,0\n36,0,3,0,32,0,23,0,42,0,41,0\n33,0,39,0,26,0,12,0,59,0,70,0\n56,0,47,0,10,0,35,0,30,0,17,0\n29,0,48,0,69,0,62,0,28,0,52,0\n1,0,16,0,65,0,37,0,15,0,46,0\n55,0,64,0,5,0,24,0,72,0,60,0\n44,0,63,0,20,0,71,0,68,0,21,0\n7,0,45,0,9,0,49,0,61,0,50,0\n58,0,4,0,2,0,27,0,57,0,51,0\n36,0,17,0,59,0,6,0,40,0,48,0\n13,0,23,0,62,0,37,0,22,0,70,0\n46,0,60,0,33,0,31,0,42,0,14,0\n28,0,19,0,5,0,38,0,1,0,8,0\n26,0,20,0,55,0,54,0,69,0,53,0\n44,0,67,0,27,0,10,0,49,0,25,0\n61,0,57,0,47,0,71,0,34,0,15,0\n52,0,66,0,11,0,68,0,56,0,7,0\n65,0,24,0,2,0,3,0,39,0,21,0\n41,0,18,0,72,0,35,0,45,0,4,0\n12,0,32,0,73,0,29,0,30,0,58,0\n64,0,51,0,50,0,16,0,43,0,63,0\n9,0,37,0,28,0,10,0,60,0,20,0\n"
  },
  {
    "path": "schedules/73_8.csv",
    "content": "69,0,28,0,56,0,13,0,73,0,50,0\n14,0,51,0,18,0,58,0,48,0,60,0\n63,0,43,0,34,0,68,0,46,0,64,0\n39,0,10,0,53,0,62,0,55,0,9,0\n36,0,29,0,8,0,32,0,52,0,3,0\n30,0,44,0,19,0,20,0,4,0,41,0\n40,0,2,0,42,0,47,0,6,0,17,0\n1,0,38,0,49,0,35,0,70,0,37,0\n21,0,25,0,31,0,57,0,66,0,72,0\n5,0,45,0,23,0,22,0,16,0,54,0\n65,0,15,0,59,0,67,0,26,0,27,0\n11,0,12,0,71,0,33,0,61,0,7,0\n24,0,17,0,32,0,10,0,4,0,18,0\n49,0,9,0,40,0,20,0,73,0,51,0\n58,0,46,0,50,0,72,0,55,0,3,0\n13,0,21,0,16,0,41,0,60,0,53,0\n26,0,43,0,14,0,47,0,70,0,31,0\n45,0,2,0,68,0,15,0,7,0,1,0\n36,0,61,0,28,0,66,0,19,0,54,0\n11,0,52,0,39,0,34,0,30,0,67,0\n56,0,64,0,6,0,65,0,22,0,12,0\n35,0,25,0,62,0,23,0,29,0,63,0\n5,0,69,0,27,0,33,0,24,0,48,0\n42,0,71,0,44,0,57,0,8,0,37,0\n38,0,46,0,66,0,59,0,14,0,45,0\n36,1,70,0,10,0,11,1,68,0,51,0\n26,1,9,0,72,0,2,1,7,0,16,0\n22,0,18,0,21,0,28,0,15,0,63,0\n49,0,23,0,67,0,69,0,19,0,53,0\n3,0,1,0,62,0,31,0,12,0,42,0\n47,0,50,0,4,0,52,0,33,0,25,0\n40,0,13,0,55,0,44,0,54,0,35,0\n56,0,58,0,59,0,39,0,5,0,20,0\n30,0,37,0,73,0,24,0,61,0,6,0\n29,0,34,0,65,0,71,0,60,0,17,0\n57,0,32,0,27,0,38,0,43,0,41,0\n48,0,4,0,2,0,64,0,8,0,49,0\n22,0,66,0,50,0,42,0,51,0,19,0\n36,0,31,0,16,0,40,0,33,0,59,0\n5,0,25,0,13,0,30,0,70,0,18,0\n73,0,58,0,44,0,65,0,53,0,45,0\n24,0,71,0,35,0,47,0,3,0,39,0\n26,0,20,0,48,0,28,0,32,0,1,0\n38,0,8,0,6,0,55,0,63,0,11,0\n64,0,7,0,52,0,21,0,37,0,10,0\n23,0,34,0,61,0,57,0,15,0,14,0\n67,0,56,0,43,0,72,0,62,0,17,0\n54,0,9,0,60,0,46,0,12,0,27,0\n41,0,68,0,39,0,29,0,69,0,26,0\n45,0,22,0,49,0,11,0,32,0,13,0\n66,0,44,0,64,0,70,0,3,0,16,0\n35,0,2,0,19,0,31,0,73,0,52,0\n17,0,7,0,38,0,61,0,48,0,50,0\n63,0,67,0,12,0,40,0,57,0,58,0\n60,0,4,0,59,0,23,0,55,0,37,0\n6,0,15,0,36,0,71,0,62,0,69,0\n51,0,46,0,65,0,1,0,25,0,24,0\n5,0,28,0,8,0,14,0,9,0,41,0\n47,0,72,0,20,0,10,0,34,0,27,0\n53,0,42,0,33,0,56,0,18,0,68,0\n29,0,54,0,30,0,21,0,43,0,49,0\n67,0,22,0,60,0,2,0,61,0,3,0\n51,0,69,0,17,0,11,0,35,0,64,0\n65,0,52,0,57,0,62,0,70,0,28,0\n24,0,8,0,40,0,34,0,26,0,50,0\n4,0,71,0,27,0,5,0,73,0,66,0\n43,0,55,0,20,0,42,0,45,0,25,0\n37,0,39,0,12,0,36,0,14,0,13,0\n9,0,68,0,47,0,32,0,21,0,44,0\n19,0,48,0,10,0,6,0,46,0,16,0\n41,0,18,0,7,0,31,0,23,0,56,0\n53,0,72,0,1,0,30,0,59,0,63,0\n33,0,15,0,29,0,54,0,38,0,58,0\n67,0,24,0,14,0,42,0,36,0,64,0\n62,0,68,0,61,0,8,0,13,0,27,0\n45,0,70,0,39,0,40,0,4,0,21,0\n10,0,3,0,56,0,26,0,49,0,25,0\n55,0,73,0,41,0,22,0,48,0,34,0\n31,0,63,0,54,0,50,0,65,0,20,0\n69,0,12,0,18,0,2,0,44,0,59,0\n32,0,60,0,33,0,72,0,6,0,35,0\n30,0,16,0,51,0,28,0,71,0,38,0\n37,0,19,0,15,0,43,0,11,0,5,0\n57,0,53,0,47,0,29,0,7,0,46,0\n17,0,1,0,52,0,58,0,9,0,23,0\n66,0,24,0,55,0,68,0,12,0,49,0\n14,0,20,0,21,0,33,0,62,0,2,0\n70,0,32,0,42,0,69,0,61,0,63,0\n11,0,40,0,72,0,65,0,18,0,48,0\n57,0,59,0,13,0,19,0,64,0,47,0\n52,0,60,0,26,0,44,0,5,0,38,0\n58,0,36,0,7,0,22,0,43,0,4,0\n29,0,28,0,27,0,45,0,37,0,31,0\n34,0,3,0,54,0,6,0,51,0,53,0\n25,0,16,0,17,0,8,0,39,0,73,0\n50,0,1,0,71,0,41,0,67,0,10,0\n35,0,66,0,15,0,56,0,9,0,30,0\n23,0,11,0,2,0,46,0,36,0,26,0\n"
  },
  {
    "path": "schedules/73_9.csv",
    "content": "7,0,59,0,3,0,1,0,72,0,73,0\n48,0,61,0,37,0,16,0,56,0,9,0\n54,0,28,0,41,0,45,0,24,0,68,0\n55,0,36,0,58,0,43,0,42,0,40,0\n52,0,67,0,69,0,32,0,11,0,30,0\n70,0,2,0,71,0,13,0,49,0,63,0\n18,0,29,0,47,0,14,0,8,0,17,0\n66,0,20,0,4,0,22,0,5,0,12,0\n19,0,34,0,65,0,57,0,15,0,26,0\n38,0,60,0,35,0,46,0,25,0,44,0\n50,0,10,0,21,0,39,0,64,0,53,0\n62,0,31,0,27,0,6,0,23,0,51,0\n33,0,18,0,40,0,1,0,54,0,70,0\n11,0,45,0,29,0,42,0,3,0,48,0\n17,0,67,0,9,0,66,0,63,0,58,0\n34,0,68,0,56,0,32,0,22,0,73,0\n16,0,65,0,53,0,13,0,72,0,38,0\n46,0,43,0,24,0,49,0,26,0,31,0\n5,0,64,0,35,0,55,0,62,0,33,0\n15,0,4,0,8,0,69,0,2,0,6,0\n30,0,50,0,23,0,60,0,59,0,36,0\n7,0,39,0,19,0,12,0,27,0,71,0\n52,0,25,0,51,0,47,0,61,0,28,0\n57,0,37,0,44,0,41,0,21,0,14,0\n20,0,54,0,46,0,10,0,3,0,55,0\n70,1,62,0,49,0,15,1,29,0,56,0\n9,1,13,0,31,0,64,0,8,0,30,0\n17,0,40,0,68,0,39,0,23,0,4,0\n5,0,2,0,67,0,65,0,7,0,47,0\n27,0,36,0,41,0,66,0,48,0,73,0\n1,0,12,0,63,0,42,0,50,0,25,0\n57,0,51,0,71,0,22,0,35,0,11,0\n53,0,14,0,6,0,24,0,20,0,19,0\n16,0,44,0,33,0,34,0,45,0,52,0\n72,0,61,0,10,0,58,0,18,0,60,0\n26,0,59,0,38,0,69,0,21,0,28,0\n43,0,37,0,3,0,32,0,8,0,7,0\n66,0,47,0,64,0,4,0,71,0,40,0\n49,0,65,0,35,0,48,0,39,0,30,0\n25,0,6,0,5,0,54,0,16,0,36,0\n56,0,60,0,63,0,11,0,24,0,27,0\n52,0,55,0,72,0,22,0,17,0,2,0\n9,0,51,0,45,0,21,0,19,0,18,0\n67,0,38,0,70,0,43,0,59,0,68,0\n61,0,26,0,32,0,29,0,50,0,44,0\n42,0,57,0,73,0,13,0,62,0,28,0\n1,0,10,0,69,0,31,0,14,0,34,0\n15,0,33,0,23,0,12,0,41,0,20,0\n53,0,58,0,47,0,46,0,37,0,45,0\n65,0,68,0,3,0,18,0,66,0,36,0\n7,0,54,0,22,0,38,0,50,0,63,0\n39,0,2,0,25,0,9,0,59,0,24,0\n5,0,71,0,49,0,14,0,69,0,60,0\n28,0,17,0,64,0,15,0,48,0,1,0\n34,0,62,0,37,0,20,0,72,0,70,0\n32,0,58,0,12,0,57,0,31,0,16,0\n33,0,21,0,13,0,11,0,43,0,10,0\n44,0,51,0,27,0,55,0,4,0,67,0\n8,0,41,0,26,0,40,0,53,0,61,0\n19,0,42,0,56,0,35,0,23,0,52,0\n29,0,30,0,73,0,6,0,46,0,71,0\n15,0,32,0,18,0,5,0,63,0,59,0\n47,0,48,0,2,0,21,0,62,0,12,0\n68,0,44,0,36,0,31,0,37,0,10,0\n9,0,69,0,43,0,54,0,27,0,72,0\n51,0,20,0,39,0,66,0,56,0,38,0\n42,0,64,0,6,0,60,0,70,0,57,0\n46,0,33,0,28,0,8,0,67,0,19,0\n3,0,16,0,22,0,30,0,40,0,24,0\n49,0,7,0,53,0,25,0,17,0,34,0\n58,0,52,0,29,0,65,0,41,0,4,0\n61,0,23,0,1,0,45,0,35,0,13,0\n11,0,73,0,14,0,26,0,55,0,50,0\n8,0,62,0,20,0,71,0,39,0,44,0\n10,0,18,0,27,0,2,0,42,0,38,0\n19,0,31,0,22,0,3,0,47,0,25,0\n30,0,43,0,58,0,15,0,53,0,51,0\n12,0,24,0,67,0,29,0,34,0,61,0\n41,0,32,0,49,0,1,0,21,0,6,0\n55,0,23,0,46,0,16,0,70,0,69,0\n72,0,68,0,50,0,48,0,5,0,57,0\n4,0,73,0,60,0,33,0,65,0,37,0\n56,0,13,0,59,0,54,0,40,0,14,0\n9,0,11,0,36,0,35,0,7,0,28,0\n45,0,26,0,66,0,52,0,63,0,64,0\n17,0,3,0,41,0,62,0,51,0,69,0\n55,0,48,0,68,0,25,0,71,0,53,0\n44,0,1,0,19,0,5,0,43,0,39,0\n21,0,22,0,8,0,27,0,70,0,58,0\n40,0,2,0,28,0,20,0,60,0,32,0\n7,0,14,0,42,0,33,0,30,0,66,0\n34,0,13,0,4,0,46,0,50,0,9,0\n11,0,37,0,6,0,61,0,17,0,59,0\n45,0,12,0,10,0,26,0,65,0,56,0\n35,0,63,0,15,0,29,0,72,0,31,0\n24,0,57,0,38,0,23,0,47,0,36,0\n73,0,64,0,16,0,67,0,18,0,49,0\n52,0,1,0,53,0,54,0,62,0,9,0\n40,0,6,0,48,0,7,0,69,0,44,0\n32,0,14,0,46,0,42,0,65,0,51,0\n70,0,10,0,30,0,25,0,4,0,45,0\n13,0,60,0,17,0,3,0,12,0,26,0\n72,0,71,0,36,0,56,0,33,0,67,0\n66,0,15,0,50,0,37,0,24,0,55,0\n29,0,28,0,23,0,18,0,43,0,22,0\n31,0,38,0,21,0,73,0,61,0,5,0\n59,0,27,0,52,0,20,0,49,0,57,0\n63,0,16,0,8,0,19,0,35,0,68,0\n34,0,54,0,11,0,58,0,64,0,2,0\n39,0,70,0,9,0,47,0,41,0,15,0\n"
  },
  {
    "path": "schedules/74_1.csv",
    "content": "29,0,45,0,19,0,49,0,63,0,58,0\n57,0,6,0,54,0,46,0,55,0,66,0\n18,0,69,0,40,0,32,0,68,0,71,0\n14,0,38,0,50,0,34,0,15,0,51,0\n37,0,10,0,2,0,21,0,61,0,16,0\n3,0,35,0,36,0,22,0,30,0,73,0\n64,0,70,0,43,0,17,0,60,0,41,0\n48,0,47,0,28,0,26,0,5,0,20,0\n25,0,31,0,8,0,65,0,56,0,13,0\n27,0,11,0,72,0,59,0,23,0,42,0\n4,0,7,0,74,0,9,0,12,0,44,0\n24,0,67,0,33,0,52,0,62,0,1,0\n53,0,36,1,18,1,39,0,30,1,6,1\n"
  },
  {
    "path": "schedules/74_10.csv",
    "content": "37,0,49,0,70,0,69,0,73,0,38,0\n62,0,60,0,30,0,45,0,33,0,65,0\n44,0,57,0,66,0,51,0,32,0,11,0\n59,0,9,0,58,0,68,0,43,0,55,0\n31,0,72,0,74,0,14,0,39,0,48,0\n25,0,24,0,16,0,20,0,71,0,15,0\n7,0,42,0,35,0,19,0,2,0,17,0\n29,0,46,0,27,0,21,0,54,0,3,0\n63,0,26,0,41,0,23,0,52,0,67,0\n36,0,13,0,53,0,12,0,5,0,4,0\n18,0,1,0,8,0,10,0,64,0,40,0\n56,0,50,0,22,0,28,0,34,0,6,0\n47,0,32,0,66,0,61,0,19,0,20,0\n69,0,2,0,39,0,58,0,43,0,24,0\n74,0,55,0,37,0,16,0,67,0,30,0\n70,0,46,0,36,0,72,0,35,0,65,0\n53,0,29,0,10,0,27,0,59,0,49,0\n48,0,23,0,8,0,56,0,38,0,71,0\n40,0,45,0,5,0,42,0,52,0,6,0\n9,0,21,0,62,0,13,0,7,0,34,0\n11,0,26,0,47,0,28,0,68,0,60,0\n57,0,25,0,54,0,44,0,31,0,73,0\n3,0,1,0,14,0,63,0,17,0,22,0\n33,0,18,0,50,0,41,0,15,0,4,0\n64,0,12,0,30,0,51,0,61,0,48,0\n34,1,10,0,19,0,36,1,43,0,5,0\n60,1,65,0,21,0,40,1,74,0,32,0\n37,0,44,0,53,0,8,0,45,0,20,0\n29,0,31,0,70,0,71,0,2,0,6,0\n50,0,49,0,15,0,55,0,57,0,3,0\n73,0,25,0,51,0,9,0,26,0,22,0\n4,0,17,0,11,0,72,0,58,0,63,0\n69,0,16,0,68,0,35,0,41,0,62,0\n14,0,59,0,61,0,38,0,7,0,33,0\n52,0,12,0,1,0,66,0,24,0,46,0\n67,0,13,0,54,0,64,0,56,0,47,0\n23,0,18,0,28,0,39,0,42,0,27,0\n49,0,58,0,5,0,60,0,51,0,74,0\n40,0,57,0,72,0,29,0,68,0,19,0\n4,0,6,0,30,0,8,0,69,0,9,0\n73,0,63,0,59,0,35,0,71,0,12,0\n46,0,10,0,38,0,50,0,13,0,66,0\n61,0,24,0,17,0,21,0,28,0,26,0\n42,0,48,0,11,0,54,0,62,0,15,0\n2,0,22,0,55,0,23,0,65,0,44,0\n25,0,37,0,39,0,1,0,32,0,7,0\n43,0,47,0,3,0,52,0,36,0,45,0\n18,0,70,0,56,0,14,0,53,0,16,0\n34,0,20,0,27,0,31,0,41,0,64,0\n33,0,8,0,10,0,67,0,12,0,21,0\n19,0,63,0,15,0,46,0,9,0,60,0\n35,0,39,0,55,0,40,0,13,0,38,0\n57,0,37,0,71,0,36,0,28,0,72,0\n32,0,58,0,53,0,54,0,30,0,23,0\n59,0,52,0,4,0,27,0,51,0,31,0\n6,0,33,0,16,0,26,0,48,0,1,0\n22,0,43,0,61,0,41,0,74,0,70,0\n7,0,56,0,3,0,20,0,11,0,69,0\n24,0,67,0,42,0,49,0,34,0,44,0\n73,0,68,0,66,0,14,0,65,0,17,0\n18,0,5,0,25,0,47,0,62,0,2,0\n64,0,45,0,35,0,29,0,50,0,58,0\n28,0,51,0,33,0,43,0,46,0,13,0\n55,0,7,0,54,0,4,0,71,0,10,0\n16,0,34,0,72,0,8,0,61,0,52,0\n56,0,20,0,59,0,17,0,60,0,70,0\n65,0,19,0,25,0,49,0,48,0,63,0\n26,0,64,0,62,0,2,0,53,0,66,0\n38,0,21,0,22,0,45,0,31,0,18,0\n15,0,40,0,29,0,23,0,14,0,69,0\n50,0,1,0,73,0,36,0,32,0,42,0\n3,0,39,0,68,0,30,0,44,0,5,0\n9,0,47,0,12,0,11,0,37,0,41,0\n67,0,74,0,27,0,6,0,57,0,24,0\n16,0,43,0,60,0,66,0,21,0,64,0\n17,0,55,0,34,0,25,0,29,0,33,0\n52,0,20,0,13,0,14,0,2,0,49,0\n51,0,45,0,39,0,8,0,70,0,19,0\n47,0,22,0,15,0,30,0,72,0,10,0\n48,0,28,0,40,0,53,0,41,0,73,0\n11,0,61,0,31,0,67,0,50,0,5,0\n6,0,62,0,23,0,37,0,46,0,59,0\n42,0,9,0,38,0,24,0,32,0,3,0\n36,0,63,0,69,0,18,0,68,0,54,0\n4,0,35,0,74,0,56,0,26,0,44,0\n7,0,65,0,12,0,58,0,27,0,57,0\n71,0,30,0,53,0,1,0,34,0,11,0\n66,0,48,0,22,0,67,0,39,0,59,0\n19,0,23,0,16,0,13,0,3,0,31,0\n36,0,14,0,62,0,55,0,8,0,24,0\n64,0,72,0,5,0,35,0,33,0,9,0\n6,0,32,0,49,0,17,0,18,0,12,0\n41,0,1,0,57,0,54,0,60,0,38,0\n7,0,47,0,27,0,40,0,44,0,70,0\n61,0,15,0,2,0,73,0,45,0,56,0\n28,0,10,0,52,0,74,0,25,0,69,0\n51,0,21,0,20,0,63,0,50,0,68,0\n29,0,42,0,43,0,65,0,37,0,4,0\n46,0,26,0,32,0,71,0,58,0,8,0\n54,0,11,0,33,0,22,0,16,0,40,0\n41,0,6,0,44,0,19,0,36,0,64,0\n23,0,49,0,45,0,66,0,7,0,72,0\n3,0,60,0,27,0,25,0,35,0,61,0\n52,0,57,0,70,0,4,0,48,0,21,0\n14,0,67,0,58,0,28,0,1,0,9,0\n24,0,37,0,10,0,63,0,31,0,56,0\n69,0,55,0,53,0,51,0,47,0,42,0\n30,0,18,0,38,0,73,0,20,0,29,0\n17,0,71,0,50,0,39,0,43,0,62,0\n12,0,68,0,46,0,34,0,74,0,2,0\n65,0,13,0,5,0,59,0,15,0,26,0\n14,0,11,0,45,0,35,0,32,0,10,0\n19,0,1,0,72,0,27,0,55,0,56,0\n41,0,30,0,66,0,25,0,70,0,42,0\n38,0,6,0,58,0,47,0,21,0,53,0\n4,0,60,0,73,0,24,0,34,0,23,0\n40,0,26,0,31,0,12,0,43,0,49,0\n36,0,20,0,9,0,74,0,39,0,33,0\n8,0,59,0,2,0,28,0,54,0,50,0\n68,0,15,0,7,0,52,0,22,0,64,0\n17,0,5,0,69,0,57,0,46,0,16,0\n51,0,71,0,3,0,65,0,18,0,67,0\n63,0,44,0,29,0,61,0,13,0,62,0\n48,0,34,0,60,0,37,0,36,0,40,0\n"
  },
  {
    "path": "schedules/74_11.csv",
    "content": "48,0,72,0,44,0,24,0,57,0,26,0\n32,0,17,0,21,0,29,0,1,0,62,0\n63,0,55,0,65,0,10,0,56,0,34,0\n39,0,66,0,11,0,58,0,25,0,53,0\n49,0,41,0,35,0,8,0,31,0,64,0\n7,0,51,0,68,0,12,0,45,0,61,0\n13,0,18,0,2,0,36,0,15,0,47,0\n38,0,23,0,16,0,4,0,20,0,6,0\n46,0,9,0,40,0,3,0,33,0,60,0\n70,0,43,0,19,0,27,0,52,0,67,0\n42,0,59,0,5,0,69,0,54,0,73,0\n74,0,30,0,28,0,14,0,50,0,71,0\n37,0,13,0,51,0,22,0,53,0,64,0\n62,0,15,0,10,0,16,0,68,0,1,0\n4,0,8,0,9,0,56,0,48,0,65,0\n7,0,52,0,26,0,46,0,29,0,38,0\n73,0,61,0,44,0,23,0,31,0,63,0\n58,0,50,0,45,0,47,0,49,0,19,0\n21,0,69,0,57,0,37,0,28,0,66,0\n74,0,33,0,11,0,67,0,17,0,59,0\n35,0,43,0,30,0,54,0,42,0,60,0\n71,0,41,0,3,0,70,0,6,0,55,0\n24,0,39,0,12,0,36,0,40,0,34,0\n14,0,5,0,20,0,72,0,18,0,25,0\n27,0,22,0,7,0,2,0,32,0,50,0\n38,1,19,0,1,0,29,1,44,0,59,0\n43,0,47,0,48,0,64,0,33,0,66,0\n15,0,57,0,74,0,58,0,70,0,65,0\n8,0,40,0,53,0,73,0,26,0,10,0\n62,0,25,0,51,0,63,0,35,0,36,0\n54,0,20,0,71,0,37,0,39,0,2,0\n69,0,30,0,31,0,16,0,55,0,67,0\n52,0,45,0,72,0,23,0,18,0,3,0\n56,0,60,0,6,0,49,0,28,0,32,0\n24,0,68,0,42,0,4,0,41,0,11,0\n27,0,34,0,61,0,5,0,9,0,22,0\n21,0,14,0,12,0,13,0,17,0,46,0\n40,0,35,0,59,0,30,0,58,0,7,0\n70,0,54,0,38,0,72,0,36,0,50,0\n3,0,2,0,47,0,51,0,74,0,44,0\n66,0,19,0,73,0,65,0,71,0,60,0\n25,0,33,0,52,0,27,0,6,0,37,0\n62,0,14,0,22,0,10,0,23,0,11,0\n45,0,18,0,24,0,55,0,17,0,9,0\n69,0,28,0,1,0,41,0,61,0,8,0\n46,0,57,0,68,0,42,0,32,0,31,0\n29,0,13,0,39,0,43,0,16,0,56,0\n63,0,21,0,49,0,48,0,53,0,5,0\n64,0,20,0,26,0,15,0,67,0,12,0\n4,0,73,0,62,0,34,0,3,0,50,0\n58,0,71,0,44,0,33,0,69,0,18,0\n38,0,17,0,25,0,57,0,10,0,61,0\n54,0,23,0,29,0,8,0,47,0,24,0\n13,0,42,0,45,0,59,0,74,0,27,0\n6,0,67,0,14,0,48,0,40,0,1,0\n64,0,7,0,72,0,9,0,39,0,63,0\n37,0,65,0,36,0,49,0,11,0,30,0\n20,0,68,0,35,0,53,0,56,0,21,0\n15,0,55,0,22,0,4,0,46,0,43,0\n5,0,2,0,34,0,28,0,52,0,41,0\n66,0,60,0,26,0,70,0,16,0,51,0\n32,0,19,0,59,0,12,0,31,0,25,0\n1,0,18,0,74,0,38,0,37,0,7,0\n71,0,8,0,68,0,13,0,72,0,67,0\n6,0,48,0,50,0,65,0,39,0,69,0\n15,0,4,0,40,0,29,0,21,0,52,0\n22,0,51,0,35,0,49,0,24,0,73,0\n60,0,46,0,11,0,44,0,10,0,45,0\n64,0,70,0,36,0,23,0,5,0,19,0\n9,0,47,0,28,0,62,0,53,0,43,0\n57,0,12,0,41,0,33,0,63,0,54,0\n31,0,16,0,58,0,14,0,27,0,2,0\n56,0,30,0,3,0,17,0,34,0,66,0\n55,0,26,0,32,0,20,0,61,0,42,0\n50,0,37,0,44,0,40,0,13,0,68,0\n36,0,4,0,10,0,71,0,45,0,35,0\n6,0,11,0,59,0,8,0,51,0,15,0\n72,0,19,0,74,0,21,0,73,0,28,0\n12,0,3,0,43,0,5,0,57,0,1,0\n54,0,39,0,67,0,66,0,18,0,46,0\n34,0,31,0,65,0,69,0,47,0,7,0\n60,0,20,0,17,0,48,0,22,0,58,0\n2,0,56,0,64,0,62,0,42,0,38,0\n55,0,23,0,25,0,16,0,49,0,33,0\n32,0,63,0,14,0,70,0,24,0,52,0\n41,0,27,0,30,0,29,0,61,0,53,0\n9,0,21,0,31,0,26,0,71,0,6,0\n40,0,44,0,43,0,20,0,65,0,51,0\n3,0,48,0,38,0,11,0,13,0,35,0\n42,0,34,0,23,0,60,0,1,0,58,0\n17,0,47,0,39,0,68,0,70,0,73,0\n46,0,25,0,61,0,50,0,64,0,74,0\n62,0,49,0,52,0,26,0,30,0,54,0\n4,0,12,0,63,0,27,0,18,0,28,0\n57,0,55,0,36,0,59,0,14,0,8,0\n24,0,7,0,15,0,69,0,19,0,53,0\n37,0,29,0,9,0,10,0,67,0,2,0\n16,0,66,0,45,0,32,0,5,0,41,0\n72,0,56,0,1,0,22,0,33,0,31,0\n58,0,40,0,51,0,28,0,13,0,54,0\n23,0,73,0,36,0,48,0,46,0,27,0\n47,0,52,0,50,0,57,0,59,0,60,0\n55,0,11,0,29,0,70,0,12,0,9,0\n10,0,64,0,30,0,74,0,20,0,24,0\n7,0,5,0,49,0,17,0,71,0,4,0\n38,0,65,0,53,0,62,0,45,0,67,0\n44,0,56,0,18,0,41,0,16,0,21,0\n43,0,2,0,25,0,26,0,69,0,68,0\n61,0,66,0,6,0,14,0,35,0,72,0\n33,0,15,0,37,0,34,0,32,0,8,0\n39,0,22,0,3,0,63,0,19,0,42,0\n65,0,13,0,5,0,1,0,24,0,46,0\n59,0,70,0,49,0,62,0,40,0,18,0\n58,0,28,0,68,0,38,0,64,0,55,0\n41,0,53,0,31,0,36,0,74,0,60,0\n51,0,67,0,71,0,23,0,56,0,57,0\n63,0,73,0,50,0,43,0,6,0,29,0\n33,0,4,0,61,0,11,0,2,0,19,0\n48,0,16,0,42,0,72,0,37,0,12,0\n25,0,14,0,54,0,44,0,15,0,34,0\n45,0,39,0,8,0,22,0,21,0,30,0\n69,0,17,0,35,0,32,0,9,0,52,0\n27,0,10,0,20,0,3,0,7,0,66,0\n26,0,56,0,63,0,47,0,74,0,58,0\n71,0,24,0,16,0,59,0,61,0,43,0\n6,0,1,0,53,0,4,0,64,0,54,0\n60,0,5,0,31,0,15,0,38,0,39,0\n28,0,65,0,29,0,68,0,22,0,25,0\n46,0,34,0,45,0,2,0,35,0,70,0\n26,0,50,0,17,0,23,0,37,0,41,0\n11,0,47,0,27,0,72,0,55,0,40,0\n62,0,8,0,66,0,12,0,52,0,44,0\n33,0,67,0,21,0,7,0,42,0,36,0\n9,0,57,0,73,0,13,0,20,0,30,0\n32,0,10,0,18,0,19,0,48,0,51,0\n49,0,69,0,38,0,3,0,14,0,29,0\n"
  },
  {
    "path": "schedules/74_12.csv",
    "content": "67,0,14,0,47,0,50,0,42,0,49,0\n23,0,29,0,60,0,28,0,38,0,51,0\n11,0,27,0,39,0,55,0,43,0,74,0\n34,0,1,0,18,0,40,0,62,0,52,0\n41,0,37,0,3,0,56,0,33,0,61,0\n65,0,58,0,16,0,2,0,69,0,25,0\n7,0,24,0,30,0,20,0,54,0,48,0\n70,0,46,0,26,0,8,0,22,0,73,0\n17,0,15,0,13,0,31,0,19,0,53,0\n12,0,57,0,5,0,45,0,72,0,36,0\n4,0,9,0,10,0,21,0,44,0,66,0\n68,0,59,0,6,0,63,0,32,0,71,0\n35,0,20,0,27,0,64,0,67,0,33,0\n73,0,1,0,43,0,29,0,51,0,47,0\n28,0,53,0,34,0,49,0,2,0,74,0\n15,0,38,0,41,0,24,0,12,0,55,0\n5,0,9,0,14,0,19,0,56,0,11,0\n4,0,39,0,42,0,32,0,46,0,59,0\n64,0,40,0,35,0,26,0,6,0,54,0\n52,0,65,0,44,0,63,0,23,0,22,0\n66,0,31,0,72,0,8,0,3,0,36,0\n45,0,71,0,48,0,60,0,61,0,18,0\n57,0,70,0,37,0,13,0,16,0,68,0\n30,0,69,0,58,0,21,0,17,0,7,0\n25,0,10,0,24,0,62,0,50,0,5,0\n52,0,12,0,41,0,27,0,6,0,73,0\n14,0,15,0,33,0,8,0,4,0,2,0\n39,0,48,0,19,0,65,0,29,0,56,0\n55,0,35,0,68,0,45,0,46,0,28,0\n37,0,38,0,40,0,49,0,31,0,30,0\n43,0,25,0,18,0,23,0,42,0,74,0\n36,0,9,0,21,0,70,0,71,0,34,0\n53,0,58,0,54,0,10,0,51,0,11,0\n22,0,69,0,3,0,59,0,64,0,57,0\n50,0,60,0,7,0,1,0,66,0,63,0\n17,0,20,0,67,0,62,0,32,0,61,0\n44,0,13,0,47,0,72,0,26,0,16,0\n38,0,52,0,70,0,14,0,39,0,25,0\n2,0,54,0,43,0,41,0,8,0,19,0\n64,0,55,0,5,0,53,0,23,0,73,0\n11,0,45,0,63,0,37,0,22,0,24,0\n29,0,32,0,6,0,57,0,18,0,69,0\n28,0,27,0,13,0,3,0,58,0,40,0\n31,0,51,0,21,0,65,0,7,0,67,0\n49,0,56,0,71,0,12,0,10,0,42,0\n16,0,50,0,61,0,4,0,72,0,35,0\n17,0,59,0,74,0,9,0,1,0,44,0\n20,0,62,0,15,0,66,0,48,0,46,0\n26,0,60,0,34,0,33,0,30,0,68,0\n36,0,25,0,7,0,47,0,28,0,39,0\n41,0,65,0,71,0,40,0,5,0,45,0\n72,0,32,0,73,0,21,0,38,0,54,0\n9,0,13,0,42,0,52,0,61,0,2,0\n4,0,58,0,1,0,12,0,37,0,20,0\n56,0,22,0,53,0,33,0,43,0,16,0\n64,0,50,0,19,0,62,0,36,0,68,0\n69,0,44,0,51,0,27,0,15,0,34,0\n63,0,55,0,57,0,30,0,66,0,70,0\n14,0,74,0,10,0,35,0,60,0,67,0\n59,0,24,0,47,0,18,0,8,0,31,0\n48,0,23,0,3,0,49,0,17,0,26,0\n11,0,6,0,33,0,29,0,46,0,16,0\n50,0,25,0,15,0,54,0,27,0,45,0\n28,0,69,0,71,0,52,0,43,0,20,0\n35,0,56,0,5,0,1,0,13,0,30,0\n58,0,38,0,18,0,64,0,61,0,44,0\n49,0,66,0,8,0,41,0,68,0,32,0\n46,0,55,0,21,0,14,0,51,0,37,0\n12,0,29,0,26,0,34,0,9,0,7,0\n73,0,10,0,48,0,19,0,59,0,42,0\n36,0,6,0,31,0,4,0,74,0,22,0\n23,0,2,0,72,0,70,0,11,0,62,0\n39,0,67,0,57,0,53,0,40,0,63,0\n17,0,24,0,3,0,65,0,47,0,60,0\n33,0,45,0,44,0,1,0,52,0,21,0\n34,0,50,0,59,0,41,0,64,0,28,0\n38,0,4,0,69,0,13,0,74,0,48,0\n22,0,43,0,32,0,55,0,10,0,7,0\n61,0,11,0,30,0,39,0,12,0,8,0\n49,0,36,0,65,0,60,0,58,0,73,0\n67,0,6,0,56,0,24,0,70,0,15,0\n17,0,40,0,14,0,20,0,68,0,51,0\n9,0,19,0,46,0,72,0,25,0,3,0\n26,0,5,0,27,0,2,0,18,0,63,0\n66,0,23,0,47,0,53,0,71,0,37,0\n31,0,62,0,29,0,16,0,42,0,54,0\n57,0,11,0,21,0,35,0,52,0,59,0\n24,0,6,0,49,0,51,0,13,0,39,0\n33,0,70,0,74,0,32,0,65,0,50,0\n1,0,28,0,68,0,9,0,15,0,22,0\n66,0,12,0,2,0,17,0,64,0,48,0\n67,0,45,0,4,0,19,0,23,0,34,0\n58,0,42,0,8,0,3,0,38,0,5,0\n37,0,60,0,62,0,43,0,53,0,69,0\n56,0,54,0,36,0,44,0,26,0,55,0\n25,0,73,0,20,0,63,0,31,0,35,0\n72,0,29,0,14,0,27,0,30,0,71,0\n46,0,61,0,47,0,40,0,10,0,57,0\n18,0,16,0,52,0,7,0,41,0,49,0\n34,0,48,0,22,0,39,0,37,0,5,0\n67,0,38,0,59,0,26,0,43,0,58,0\n63,0,8,0,50,0,69,0,9,0,56,0\n33,0,25,0,55,0,71,0,17,0,6,0\n70,0,64,0,27,0,46,0,1,0,31,0\n4,0,68,0,47,0,29,0,41,0,11,0\n15,0,54,0,12,0,23,0,57,0,65,0\n74,0,44,0,73,0,14,0,61,0,7,0\n19,0,21,0,40,0,16,0,60,0,66,0\n51,0,62,0,30,0,3,0,32,0,45,0\n2,0,13,0,20,0,18,0,10,0,36,0\n42,0,53,0,72,0,35,0,24,0,28,0\n29,0,8,0,52,0,37,0,55,0,67,0\n74,0,46,0,68,0,58,0,56,0,23,0\n60,0,27,0,49,0,4,0,26,0,57,0\n5,0,70,0,7,0,59,0,15,0,40,0\n30,0,32,0,64,0,25,0,11,0,44,0\n66,0,43,0,61,0,34,0,24,0,54,0\n69,0,62,0,13,0,33,0,73,0,47,0\n2,0,71,0,39,0,50,0,3,0,1,0\n19,0,12,0,35,0,51,0,22,0,18,0\n45,0,42,0,65,0,20,0,6,0,9,0\n41,0,53,0,36,0,21,0,48,0,14,0\n10,0,28,0,16,0,63,0,17,0,38,0\n31,0,23,0,59,0,72,0,34,0,56,0\n52,0,54,0,7,0,70,0,4,0,3,0\n13,0,11,0,73,0,67,0,25,0,66,0\n61,0,1,0,19,0,55,0,69,0,49,0\n57,0,9,0,71,0,62,0,41,0,58,0\n30,0,18,0,65,0,46,0,53,0,50,0\n24,0,40,0,2,0,21,0,22,0,29,0\n31,0,14,0,26,0,12,0,28,0,32,0\n72,0,63,0,51,0,33,0,42,0,48,0\n37,0,43,0,15,0,17,0,35,0,36,0\n27,0,68,0,38,0,6,0,47,0,5,0\n8,0,16,0,74,0,64,0,10,0,45,0\n44,0,20,0,41,0,39,0,60,0,53,0\n46,0,54,0,22,0,13,0,71,0,67,0\n51,0,49,0,61,0,25,0,59,0,30,0\n17,0,29,0,58,0,50,0,70,0,35,0\n18,0,42,0,3,0,11,0,15,0,55,0\n32,0,37,0,48,0,40,0,27,0,9,0\n20,0,5,0,66,0,26,0,74,0,52,0\n10,0,68,0,72,0,65,0,39,0,69,0\n45,0,2,0,60,0,73,0,56,0,31,0\n24,0,1,0,23,0,16,0,14,0,36,0\n33,0,57,0,34,0,7,0,19,0,38,0\n62,0,8,0,28,0,6,0,44,0,4,0\n64,0,12,0,63,0,47,0,21,0,43,0\n"
  },
  {
    "path": "schedules/74_13.csv",
    "content": "1,0,54,0,51,0,23,0,47,0,69,0\n55,0,37,0,33,0,31,0,3,0,24,0\n48,0,19,0,52,0,72,0,30,0,16,0\n56,0,4,0,67,0,53,0,9,0,38,0\n44,0,11,0,8,0,50,0,32,0,57,0\n46,0,43,0,28,0,6,0,41,0,71,0\n60,0,42,0,68,0,13,0,65,0,73,0\n63,0,29,0,20,0,12,0,35,0,74,0\n21,0,66,0,62,0,10,0,25,0,40,0\n34,0,61,0,58,0,59,0,64,0,36,0\n17,0,39,0,2,0,14,0,22,0,45,0\n27,0,7,0,5,0,70,0,49,0,26,0\n18,0,50,0,69,0,15,0,32,0,13,0\n38,0,72,0,46,0,3,0,65,0,28,0\n31,0,19,0,68,0,4,0,12,0,23,0\n37,0,1,0,56,0,8,0,58,0,20,0\n22,0,40,0,59,0,6,0,52,0,35,0\n47,0,7,0,57,0,74,0,34,0,42,0\n11,0,41,0,54,0,30,0,49,0,64,0\n21,0,36,0,17,0,63,0,39,0,55,0\n45,0,51,0,53,0,71,0,15,0,48,0\n43,0,9,0,62,0,70,0,73,0,24,0\n29,0,10,0,27,0,61,0,2,0,14,0\n44,0,33,0,5,0,18,0,66,0,60,0\n16,0,26,0,37,0,25,0,67,0,13,0\n34,1,1,0,32,0,65,1,68,0,41,0\n45,1,3,0,4,0,12,1,58,0,15,0\n40,0,9,0,30,0,71,0,47,0,39,0\n2,0,73,0,69,0,74,0,53,0,23,0\n46,0,22,0,48,0,36,0,7,0,62,0\n25,0,59,0,26,0,33,0,14,0,50,0\n66,0,67,0,63,0,72,0,49,0,27,0\n6,0,17,0,42,0,61,0,20,0,31,0\n35,0,28,0,44,0,54,0,16,0,55,0\n10,0,60,0,8,0,52,0,70,0,51,0\n11,0,24,0,5,0,19,0,56,0,21,0\n18,0,43,0,64,0,38,0,29,0,57,0\n13,0,62,0,69,0,12,0,3,0,47,0\n74,0,65,0,4,0,61,0,40,0,27,0\n48,0,35,0,17,0,26,0,58,0,44,0\n34,0,9,0,23,0,14,0,28,0,42,0\n19,0,6,0,32,0,67,0,39,0,46,0\n50,0,38,0,41,0,5,0,60,0,21,0\n49,0,57,0,36,0,51,0,2,0,20,0\n24,0,68,0,37,0,16,0,11,0,29,0\n55,0,66,0,64,0,71,0,53,0,8,0\n45,0,52,0,1,0,63,0,33,0,73,0\n70,0,18,0,56,0,30,0,59,0,54,0\n31,0,72,0,10,0,22,0,15,0,43,0\n7,0,61,0,65,0,25,0,20,0,23,0\n50,0,35,0,49,0,39,0,48,0,37,0\n2,0,36,0,68,0,28,0,60,0,17,0\n12,0,73,0,52,0,26,0,46,0,27,0\n33,0,6,0,74,0,34,0,38,0,4,0\n15,0,70,0,59,0,16,0,21,0,42,0\n3,0,13,0,55,0,14,0,51,0,66,0\n30,0,10,0,44,0,45,0,64,0,9,0\n25,0,72,0,71,0,57,0,56,0,69,0\n29,0,41,0,58,0,7,0,67,0,22,0\n62,0,40,0,11,0,1,0,53,0,18,0\n19,0,8,0,5,0,54,0,47,0,43,0\n63,0,24,0,28,0,31,0,32,0,26,0\n23,0,49,0,45,0,52,0,55,0,38,0\n74,0,21,0,71,0,72,0,44,0,12,0\n3,0,48,0,50,0,10,0,61,0,56,0\n14,0,68,0,64,0,7,0,20,0,18,0\n11,0,69,0,51,0,70,0,22,0,6,0\n1,0,24,0,46,0,57,0,39,0,60,0\n33,0,19,0,29,0,32,0,62,0,42,0\n2,0,58,0,66,0,30,0,65,0,43,0\n59,0,37,0,73,0,4,0,17,0,5,0\n54,0,53,0,40,0,63,0,34,0,13,0\n47,0,35,0,15,0,27,0,41,0,67,0\n25,0,16,0,36,0,9,0,31,0,8,0\n61,0,26,0,50,0,46,0,68,0,51,0\n7,0,3,0,30,0,1,0,6,0,65,0\n10,0,73,0,39,0,12,0,28,0,18,0\n32,0,45,0,74,0,37,0,70,0,66,0\n57,0,63,0,19,0,60,0,59,0,13,0\n54,0,71,0,14,0,41,0,62,0,16,0\n56,0,34,0,64,0,31,0,2,0,52,0\n58,0,38,0,49,0,69,0,44,0,24,0\n55,0,15,0,67,0,20,0,40,0,5,0\n35,0,43,0,8,0,42,0,4,0,53,0\n22,0,23,0,36,0,72,0,47,0,33,0\n17,0,9,0,29,0,11,0,27,0,21,0\n25,0,2,0,70,0,48,0,6,0,18,0\n31,0,28,0,38,0,1,0,13,0,30,0\n67,0,59,0,24,0,65,0,51,0,44,0\n71,0,61,0,62,0,49,0,34,0,37,0\n32,0,36,0,53,0,12,0,45,0,5,0\n20,0,52,0,33,0,39,0,43,0,11,0\n23,0,16,0,57,0,10,0,3,0,17,0\n66,0,56,0,15,0,35,0,73,0,29,0\n50,0,72,0,54,0,7,0,9,0,26,0\n19,0,27,0,74,0,25,0,58,0,22,0\n8,0,42,0,41,0,68,0,40,0,69,0\n14,0,60,0,4,0,48,0,64,0,21,0\n47,0,55,0,11,0,46,0,63,0,10,0\n35,0,5,0,18,0,17,0,34,0,24,0\n66,0,54,0,44,0,61,0,15,0,1,0\n6,0,39,0,49,0,56,0,13,0,74,0\n23,0,31,0,62,0,27,0,50,0,59,0\n9,0,60,0,3,0,32,0,22,0,20,0\n58,0,47,0,4,0,71,0,29,0,52,0\n72,0,19,0,26,0,2,0,8,0,40,0\n42,0,63,0,65,0,51,0,64,0,16,0\n48,0,38,0,25,0,55,0,41,0,12,0\n73,0,14,0,67,0,36,0,30,0,69,0\n21,0,46,0,7,0,43,0,45,0,37,0\n57,0,70,0,68,0,33,0,53,0,28,0\n61,0,74,0,3,0,18,0,19,0,9,0\n58,0,71,0,42,0,26,0,5,0,10,0\n39,0,32,0,35,0,62,0,64,0,2,0\n41,0,20,0,34,0,72,0,73,0,51,0\n14,0,21,0,65,0,47,0,31,0,49,0\n27,0,60,0,16,0,7,0,53,0,6,0\n40,0,15,0,50,0,24,0,36,0,38,0\n59,0,28,0,69,0,45,0,11,0,66,0\n13,0,23,0,46,0,70,0,8,0,29,0\n56,0,63,0,25,0,43,0,68,0,44,0\n55,0,30,0,22,0,4,0,57,0,37,0\n48,0,67,0,12,0,1,0,33,0,17,0\n52,0,74,0,36,0,54,0,24,0,42,0\n69,0,49,0,65,0,35,0,10,0,9,0\n61,0,53,0,70,0,58,0,14,0,39,0\n38,0,7,0,2,0,71,0,63,0,11,0\n30,0,5,0,51,0,29,0,68,0,25,0\n64,0,13,0,27,0,46,0,33,0,56,0\n17,0,47,0,37,0,60,0,15,0,19,0\n40,0,57,0,31,0,73,0,48,0,54,0\n34,0,12,0,66,0,22,0,16,0,50,0\n28,0,20,0,26,0,4,0,62,0,44,0\n72,0,1,0,43,0,32,0,59,0,55,0\n3,0,18,0,21,0,67,0,8,0,52,0\n45,0,41,0,63,0,6,0,23,0,56,0\n7,0,35,0,14,0,19,0,73,0,38,0\n70,0,33,0,30,0,17,0,15,0,49,0\n31,0,16,0,69,0,5,0,61,0,46,0\n29,0,55,0,43,0,34,0,60,0,26,0\n13,0,11,0,18,0,36,0,4,0,72,0\n6,0,37,0,40,0,64,0,23,0,44,0\n45,0,54,0,39,0,3,0,25,0,42,0\n9,0,2,0,12,0,41,0,52,0,59,0\n20,0,47,0,24,0,28,0,48,0,66,0\n53,0,22,0,65,0,1,0,71,0,50,0\n27,0,58,0,32,0,51,0,21,0,57,0\n67,0,10,0,62,0,8,0,68,0,74,0\n17,0,16,0,14,0,40,0,56,0,43,0\n44,0,41,0,70,0,31,0,36,0,29,0\n30,0,48,0,34,0,69,0,63,0,3,0\n72,0,22,0,13,0,24,0,61,0,45,0\n39,0,26,0,38,0,59,0,47,0,66,0\n42,0,12,0,51,0,2,0,37,0,18,0\n5,0,15,0,52,0,62,0,65,0,57,0\n49,0,20,0,21,0,46,0,53,0,19,0\n23,0,60,0,71,0,67,0,11,0,35,0\n68,0,9,0,73,0,6,0,55,0,58,0\n28,0,1,0,64,0,74,0,25,0,50,0\n4,0,32,0,33,0,54,0,10,0,7,0\n8,0,34,0,45,0,27,0,65,0,12,0\n"
  },
  {
    "path": "schedules/74_14.csv",
    "content": "43,0,72,0,15,0,7,0,57,0,16,0\n2,0,21,0,27,0,46,0,60,0,41,0\n42,0,54,0,48,0,22,0,44,0,11,0\n39,0,14,0,74,0,9,0,34,0,25,0\n68,0,69,0,35,0,50,0,19,0,5,0\n1,0,28,0,3,0,55,0,45,0,6,0\n62,0,61,0,58,0,36,0,13,0,31,0\n49,0,20,0,8,0,51,0,40,0,37,0\n70,0,67,0,65,0,71,0,33,0,53,0\n38,0,59,0,32,0,4,0,47,0,29,0\n12,0,64,0,56,0,17,0,10,0,30,0\n66,0,63,0,52,0,18,0,24,0,73,0\n26,0,7,0,61,0,23,0,19,0,2,0\n35,0,9,0,27,0,8,0,72,0,21,0\n71,0,41,0,36,0,20,0,28,0,45,0\n5,0,49,0,58,0,11,0,3,0,46,0\n70,0,62,0,4,0,44,0,30,0,12,0\n31,0,15,0,55,0,39,0,17,0,60,0\n14,0,37,0,68,0,73,0,43,0,67,0\n13,0,59,0,26,0,6,0,18,0,42,0\n54,0,1,0,50,0,66,0,23,0,56,0\n69,0,51,0,16,0,34,0,48,0,10,0\n53,0,63,0,22,0,64,0,38,0,29,0\n74,0,33,0,65,0,32,0,52,0,24,0\n40,0,25,0,2,0,57,0,47,0,71,0\n68,1,62,0,11,0,9,1,21,0,26,0\n54,0,72,0,5,0,49,0,19,0,4,0\n37,0,18,0,59,0,12,0,3,0,50,0\n23,0,69,0,38,0,31,0,42,0,73,0\n14,0,48,0,13,0,24,0,15,0,65,0\n55,0,30,0,74,0,41,0,61,0,53,0\n67,0,46,0,47,0,10,0,35,0,57,0\n58,0,52,0,27,0,40,0,7,0,28,0\n20,0,70,0,51,0,6,0,22,0,43,0\n33,0,64,0,17,0,29,0,16,0,66,0\n56,0,44,0,34,0,45,0,60,0,32,0\n63,0,36,0,1,0,8,0,39,0,25,0\n4,0,71,0,48,0,35,0,73,0,55,0\n38,0,54,0,18,0,69,0,40,0,41,0\n51,0,31,0,3,0,24,0,21,0,11,0\n33,0,50,0,29,0,10,0,58,0,43,0\n56,0,46,0,32,0,9,0,37,0,13,0\n17,0,8,0,47,0,5,0,45,0,22,0\n68,0,64,0,36,0,74,0,23,0,27,0\n19,0,62,0,28,0,65,0,25,0,53,0\n60,0,57,0,59,0,52,0,34,0,70,0\n66,0,12,0,42,0,63,0,61,0,15,0\n6,0,7,0,2,0,30,0,39,0,20,0\n14,0,67,0,44,0,16,0,1,0,49,0\n72,0,47,0,74,0,26,0,56,0,48,0\n51,0,65,0,35,0,37,0,62,0,25,0\n22,0,40,0,13,0,34,0,23,0,68,0\n28,0,5,0,61,0,73,0,21,0,59,0\n4,0,60,0,55,0,10,0,8,0,66,0\n27,0,31,0,54,0,15,0,20,0,6,0\n24,0,1,0,53,0,49,0,71,0,43,0\n46,0,57,0,30,0,3,0,63,0,16,0\n11,0,32,0,7,0,45,0,18,0,64,0\n19,0,41,0,39,0,29,0,70,0,17,0\n38,0,52,0,67,0,72,0,26,0,58,0\n2,0,14,0,33,0,44,0,69,0,36,0\n50,0,42,0,22,0,9,0,12,0,28,0\n10,0,49,0,40,0,59,0,48,0,6,0\n57,0,37,0,55,0,31,0,5,0,64,0\n20,0,53,0,18,0,35,0,39,0,56,0\n41,0,15,0,23,0,51,0,4,0,63,0\n72,0,52,0,29,0,46,0,73,0,2,0\n17,0,13,0,74,0,44,0,1,0,27,0\n38,0,14,0,71,0,3,0,32,0,54,0\n19,0,25,0,11,0,33,0,12,0,60,0\n26,0,24,0,16,0,8,0,70,0,50,0\n42,0,65,0,45,0,68,0,58,0,30,0\n21,0,47,0,61,0,69,0,34,0,43,0\n9,0,36,0,62,0,7,0,66,0,67,0\n44,0,57,0,28,0,18,0,29,0,23,0\n74,0,19,0,46,0,55,0,38,0,20,0\n4,0,11,0,6,0,63,0,37,0,50,0\n42,0,10,0,1,0,2,0,5,0,32,0\n58,0,73,0,64,0,70,0,21,0,25,0\n51,0,47,0,45,0,27,0,39,0,67,0\n48,0,12,0,62,0,60,0,68,0,71,0\n66,0,41,0,31,0,59,0,14,0,65,0\n3,0,53,0,9,0,69,0,52,0,15,0\n16,0,56,0,43,0,36,0,40,0,26,0\n24,0,30,0,72,0,54,0,17,0,22,0\n7,0,34,0,13,0,49,0,35,0,33,0\n8,0,6,0,27,0,61,0,67,0,42,0\n28,0,68,0,39,0,4,0,57,0,14,0\n73,0,44,0,15,0,65,0,41,0,50,0\n47,0,43,0,20,0,55,0,64,0,9,0\n1,0,70,0,23,0,62,0,10,0,72,0\n25,0,5,0,7,0,24,0,13,0,38,0\n49,0,46,0,63,0,45,0,33,0,31,0\n32,0,21,0,66,0,30,0,52,0,40,0\n16,0,58,0,18,0,19,0,60,0,22,0\n26,0,54,0,34,0,12,0,36,0,53,0\n37,0,3,0,48,0,2,0,17,0,61,0\n59,0,35,0,71,0,11,0,51,0,74,0\n29,0,8,0,7,0,69,0,56,0,14,0\n64,0,46,0,4,0,65,0,40,0,1,0\n22,0,27,0,41,0,62,0,33,0,5,0\n72,0,49,0,70,0,32,0,42,0,68,0\n17,0,43,0,24,0,28,0,18,0,34,0\n25,0,38,0,50,0,2,0,67,0,48,0\n37,0,39,0,15,0,69,0,26,0,74,0\n60,0,53,0,30,0,59,0,23,0,47,0\n10,0,71,0,9,0,19,0,63,0,31,0\n36,0,21,0,6,0,56,0,29,0,55,0\n20,0,35,0,66,0,3,0,58,0,44,0\n73,0,13,0,57,0,11,0,12,0,8,0\n52,0,45,0,16,0,54,0,61,0,51,0\n24,0,40,0,62,0,39,0,47,0,42,0\n60,0,74,0,18,0,4,0,5,0,67,0\n56,0,68,0,33,0,28,0,15,0,38,0\n44,0,64,0,41,0,72,0,46,0,34,0\n48,0,43,0,70,0,13,0,3,0,66,0\n9,0,23,0,58,0,71,0,16,0,6,0\n17,0,25,0,20,0,61,0,59,0,69,0\n54,0,52,0,21,0,37,0,19,0,8,0\n26,0,1,0,31,0,22,0,35,0,30,0\n50,0,73,0,32,0,36,0,57,0,51,0\n12,0,29,0,10,0,7,0,27,0,65,0\n45,0,11,0,2,0,14,0,55,0,53,0\n49,0,69,0,60,0,63,0,28,0,64,0\n46,0,23,0,43,0,74,0,8,0,59,0\n22,0,67,0,24,0,56,0,21,0,15,0\n18,0,30,0,13,0,51,0,71,0,72,0\n54,0,65,0,73,0,47,0,33,0,1,0\n45,0,9,0,40,0,70,0,2,0,12,0\n39,0,66,0,61,0,11,0,49,0,38,0\n44,0,63,0,10,0,58,0,36,0,37,0\n5,0,17,0,52,0,35,0,6,0,14,0\n3,0,41,0,7,0,68,0,26,0,25,0\n32,0,34,0,55,0,27,0,62,0,50,0\n53,0,4,0,16,0,20,0,29,0,31,0\n42,0,57,0,23,0,19,0,48,0,45,0\n67,0,59,0,64,0,13,0,39,0,54,0\n15,0,11,0,30,0,36,0,38,0,10,0\n2,0,18,0,22,0,6,0,49,0,74,0\n71,0,66,0,73,0,27,0,46,0,26,0\n16,0,61,0,44,0,68,0,47,0,24,0\n20,0,34,0,63,0,48,0,5,0,65,0\n25,0,42,0,56,0,52,0,43,0,4,0\n33,0,40,0,19,0,62,0,3,0,14,0\n41,0,29,0,9,0,1,0,37,0,60,0\n8,0,31,0,35,0,28,0,32,0,70,0\n72,0,69,0,12,0,58,0,55,0,51,0\n57,0,50,0,21,0,53,0,17,0,7,0\n63,0,68,0,2,0,56,0,59,0,54,0\n6,0,38,0,73,0,62,0,64,0,16,0\n47,0,34,0,19,0,15,0,1,0,66,0\n14,0,61,0,25,0,46,0,70,0,18,0\n43,0,12,0,39,0,35,0,23,0,5,0\n71,0,31,0,22,0,7,0,52,0,44,0\n27,0,69,0,30,0,57,0,49,0,24,0\n65,0,60,0,36,0,42,0,72,0,3,0\n50,0,10,0,45,0,13,0,20,0,21,0\n8,0,53,0,32,0,48,0,58,0,41,0\n11,0,29,0,28,0,67,0,40,0,74,0\n26,0,51,0,33,0,17,0,4,0,9,0\n37,0,38,0,34,0,55,0,71,0,70,0\n43,0,14,0,19,0,56,0,27,0,63,0\n31,0,6,0,69,0,68,0,72,0,66,0\n47,0,36,0,49,0,41,0,52,0,12,0\n3,0,39,0,10,0,22,0,73,0,74,0\n57,0,58,0,65,0,61,0,9,0,1,0\n11,0,17,0,67,0,20,0,32,0,23,0\n26,0,5,0,55,0,25,0,54,0,44,0\n42,0,7,0,51,0,46,0,53,0,37,0\n29,0,15,0,59,0,62,0,8,0,45,0\n40,0,64,0,60,0,24,0,50,0,35,0\n4,0,28,0,21,0,16,0,13,0,2,0\n48,0,18,0,68,0,30,0,33,0,9,0\n"
  },
  {
    "path": "schedules/74_2.csv",
    "content": "59,0,24,0,13,0,47,0,33,0,7,0\n46,0,12,0,35,0,19,0,49,0,10,0\n9,0,74,0,2,0,69,0,37,0,50,0\n5,0,61,0,55,0,48,0,73,0,57,0\n65,0,62,0,17,0,56,0,28,0,42,0\n53,0,54,0,3,0,16,0,64,0,66,0\n4,0,67,0,6,0,40,0,71,0,21,0\n30,0,41,0,15,0,32,0,29,0,38,0\n20,0,60,0,27,0,58,0,25,0,31,0\n63,0,18,0,52,0,34,0,36,0,8,0\n39,0,26,0,11,0,23,0,51,0,45,0\n72,0,1,0,44,0,70,0,22,0,14,0\n68,0,54,0,48,0,43,0,50,0,17,0\n47,0,56,0,49,0,5,0,53,0,67,0\n37,0,40,0,58,0,16,0,65,0,59,0\n7,0,71,0,10,0,62,0,38,0,18,0\n45,0,36,0,9,0,42,0,64,0,35,0\n70,0,33,0,73,0,39,0,74,0,30,0\n29,0,66,0,19,0,27,0,24,0,55,0\n34,0,28,0,61,0,25,0,68,0,6,0\n60,0,1,0,57,0,2,0,15,0,8,0\n51,0,63,0,46,0,13,0,72,0,21,0\n31,0,41,0,14,0,12,0,26,0,4,0\n22,0,43,0,69,0,20,0,3,0,23,0\n32,0,11,0,9,1,52,0,44,0,55,1\n"
  },
  {
    "path": "schedules/74_3.csv",
    "content": "69,0,61,0,53,0,12,0,13,0,8,0\n50,0,41,0,39,0,9,0,67,0,20,0\n65,0,31,0,72,0,26,0,14,0,2,0\n37,0,24,0,4,0,21,0,16,0,56,0\n45,0,55,0,38,0,52,0,60,0,23,0\n6,0,46,0,40,0,5,0,59,0,44,0\n58,0,36,0,51,0,1,0,19,0,3,0\n48,0,7,0,74,0,10,0,43,0,70,0\n30,0,27,0,73,0,11,0,54,0,64,0\n17,0,66,0,18,0,63,0,22,0,35,0\n33,0,25,0,28,0,34,0,32,0,49,0\n62,0,47,0,68,0,29,0,71,0,15,0\n42,0,58,0,13,0,57,0,46,0,4,0\n51,0,45,0,10,0,14,0,24,0,41,0\n44,0,20,0,54,0,74,0,65,0,8,0\n53,0,21,0,5,0,7,0,60,0,18,0\n28,0,39,0,70,0,73,0,19,0,37,0\n22,0,2,0,32,0,36,0,29,0,48,0\n50,0,38,0,27,0,17,0,56,0,31,0\n69,0,67,0,49,0,1,0,68,0,30,0\n9,0,57,0,43,0,71,0,63,0,40,0\n15,0,33,0,26,0,61,0,66,0,23,0\n72,0,64,0,16,0,25,0,12,0,42,0\n59,0,52,0,3,0,35,0,47,0,11,0\n62,0,34,0,56,0,55,0,6,0,10,0\n20,0,60,0,17,0,51,0,69,0,28,0\n36,0,73,0,71,0,44,0,4,0,67,0\n61,0,14,0,63,0,27,0,39,0,5,0\n19,0,23,0,30,0,21,0,22,0,9,0\n48,0,3,0,8,0,66,0,50,0,42,0\n1,0,7,0,12,0,2,0,45,0,33,0\n70,0,11,0,6,0,24,0,58,0,65,0\n59,0,26,0,34,0,57,0,18,0,68,0\n55,0,15,0,49,0,40,0,64,0,74,0\n29,0,35,0,41,0,38,0,43,0,25,0\n37,0,52,0,46,0,72,0,53,0,62,0\n16,0,54,0,13,0,32,0,31,0,47,0\n"
  },
  {
    "path": "schedules/74_4.csv",
    "content": "13,0,64,0,70,0,42,0,63,0,34,0\n6,0,43,0,7,0,8,0,48,0,14,0\n47,0,19,0,69,0,18,0,38,0,56,0\n9,0,49,0,36,0,33,0,73,0,26,0\n17,0,4,0,51,0,28,0,3,0,67,0\n10,0,71,0,35,0,57,0,46,0,53,0\n54,0,29,0,1,0,50,0,16,0,37,0\n60,0,65,0,62,0,23,0,27,0,61,0\n39,0,11,0,55,0,45,0,20,0,31,0\n32,0,59,0,66,0,40,0,5,0,2,0\n30,0,58,0,44,0,24,0,22,0,72,0\n74,0,15,0,21,0,12,0,25,0,52,0\n41,0,26,0,3,0,68,0,43,0,70,0\n42,0,61,0,46,0,4,0,38,0,73,0\n28,0,7,0,23,0,39,0,18,0,37,0\n9,0,40,0,63,0,54,0,6,0,20,0\n64,0,71,0,29,0,66,0,31,0,30,0\n52,0,8,0,19,0,2,0,53,0,51,0\n13,0,72,0,57,0,25,0,50,0,59,0\n55,0,14,0,27,0,32,0,21,0,1,0\n48,0,68,0,24,0,17,0,11,0,12,0\n41,0,44,0,45,0,56,0,33,0,15,0\n67,0,5,0,47,0,49,0,65,0,35,0\n60,0,16,0,74,0,58,0,34,0,10,0\n22,0,62,0,57,0,69,0,36,0,63,0\n2,1,18,0,71,0,4,1,14,0,54,0\n72,1,73,0,70,0,7,1,55,0,29,0\n40,0,51,0,46,0,64,0,21,0,39,0\n23,0,12,0,20,0,30,0,3,0,47,0\n15,0,48,0,1,0,60,0,42,0,26,0\n69,0,33,0,66,0,65,0,11,0,8,0\n17,0,6,0,52,0,16,0,61,0,45,0\n67,0,19,0,37,0,22,0,9,0,10,0\n28,0,5,0,13,0,44,0,68,0,36,0\n32,0,25,0,53,0,31,0,58,0,41,0\n62,0,24,0,34,0,49,0,50,0,38,0\n35,0,56,0,59,0,74,0,27,0,43,0\n61,0,70,0,54,0,47,0,51,0,15,0\n20,0,67,0,2,0,48,0,29,0,46,0\n45,0,4,0,68,0,8,0,64,0,60,0\n10,0,72,0,41,0,52,0,40,0,65,0\n49,0,57,0,58,0,1,0,7,0,19,0\n50,0,53,0,30,0,21,0,36,0,17,0\n3,0,27,0,18,0,13,0,33,0,22,0\n63,0,23,0,35,0,32,0,24,0,73,0\n12,0,34,0,66,0,55,0,43,0,28,0\n11,0,42,0,74,0,44,0,71,0,6,0\n25,0,56,0,26,0,62,0,37,0,5,0\n38,0,39,0,16,0,14,0,59,0,9,0\n31,0,2,0,7,0,69,0,4,0,72,0\n"
  },
  {
    "path": "schedules/74_5.csv",
    "content": "66,0,53,0,32,0,38,0,46,0,37,0\n4,0,3,0,16,0,45,0,60,0,67,0\n28,0,7,0,24,0,17,0,14,0,19,0\n68,0,50,0,70,0,29,0,41,0,12,0\n64,0,9,0,59,0,63,0,48,0,72,0\n20,0,51,0,56,0,35,0,52,0,31,0\n49,0,15,0,42,0,54,0,55,0,8,0\n10,0,36,0,47,0,39,0,61,0,33,0\n13,0,18,0,23,0,26,0,25,0,6,0\n34,0,1,0,43,0,22,0,21,0,65,0\n11,0,5,0,57,0,71,0,73,0,74,0\n27,0,62,0,2,0,58,0,40,0,30,0\n69,0,29,0,17,0,44,0,59,0,38,0\n61,0,55,0,72,0,66,0,68,0,4,0\n70,0,3,0,49,0,14,0,23,0,56,0\n6,0,24,0,9,0,16,0,37,0,21,0\n19,0,52,0,65,0,41,0,48,0,71,0\n1,0,58,0,64,0,18,0,45,0,11,0\n40,0,12,0,46,0,5,0,15,0,63,0\n54,0,50,0,67,0,73,0,35,0,47,0\n51,0,60,0,43,0,33,0,57,0,28,0\n22,0,25,0,69,0,8,0,30,0,20,0\n13,0,74,0,42,0,10,0,27,0,53,0\n36,0,2,0,34,0,44,0,31,0,32,0\n7,0,39,0,4,0,26,0,62,0,46,0\n1,1,6,0,72,0,19,1,67,0,70,0\n5,0,18,0,49,0,68,0,52,0,24,0\n73,0,29,0,30,0,21,0,3,0,64,0\n48,0,45,0,38,0,10,0,43,0,8,0\n61,0,40,0,31,0,13,0,14,0,54,0\n44,0,66,0,57,0,20,0,15,0,26,0\n53,0,33,0,71,0,59,0,2,0,25,0\n35,0,22,0,32,0,27,0,11,0,60,0\n28,0,9,0,12,0,42,0,36,0,69,0\n63,0,37,0,74,0,34,0,50,0,7,0\n17,0,39,0,58,0,56,0,41,0,55,0\n47,0,65,0,16,0,51,0,62,0,23,0\n14,0,44,0,5,0,53,0,1,0,8,0\n22,0,2,0,48,0,57,0,24,0,13,0\n33,0,26,0,67,0,42,0,64,0,52,0\n29,0,27,0,37,0,36,0,49,0,43,0\n19,0,20,0,21,0,50,0,40,0,32,0\n65,0,38,0,55,0,9,0,70,0,60,0\n11,0,23,0,39,0,72,0,54,0,69,0\n59,0,74,0,15,0,16,0,61,0,35,0\n4,0,34,0,18,0,12,0,47,0,17,0\n51,0,3,0,46,0,41,0,10,0,25,0\n71,0,6,0,45,0,7,0,56,0,30,0\n73,0,68,0,58,0,28,0,31,0,63,0\n66,0,8,0,33,0,62,0,29,0,9,0\n64,0,37,0,70,0,22,0,61,0,44,0\n5,0,23,0,35,0,19,0,2,0,42,0\n40,0,26,0,34,0,49,0,69,0,51,0\n50,0,30,0,55,0,1,0,46,0,36,0\n67,0,27,0,25,0,48,0,39,0,28,0\n15,0,11,0,41,0,4,0,24,0,43,0\n60,0,63,0,17,0,20,0,13,0,71,0\n16,0,54,0,52,0,57,0,38,0,58,0\n68,0,14,0,45,0,32,0,74,0,47,0\n72,0,31,0,21,0,18,0,7,0,53,0\n59,0,66,0,6,0,3,0,12,0,65,0\n56,0,10,0,1,0,73,0,62,0,19,0\n"
  },
  {
    "path": "schedules/74_6.csv",
    "content": "1,0,68,0,38,0,8,0,4,0,56,0\n57,0,62,0,7,0,3,0,26,0,9,0\n49,0,15,0,11,0,20,0,17,0,2,0\n10,0,42,0,18,0,6,0,46,0,63,0\n71,0,41,0,66,0,50,0,22,0,31,0\n67,0,47,0,72,0,37,0,40,0,23,0\n14,0,27,0,24,0,53,0,52,0,30,0\n25,0,28,0,16,0,44,0,48,0,70,0\n60,0,64,0,54,0,73,0,51,0,36,0\n74,0,61,0,21,0,32,0,39,0,45,0\n58,0,19,0,35,0,29,0,34,0,5,0\n59,0,12,0,33,0,55,0,69,0,43,0\n13,0,52,0,49,0,65,0,46,0,4,0\n22,0,56,0,6,0,72,0,24,0,57,0\n15,0,14,0,48,0,7,0,8,0,67,0\n63,0,23,0,54,0,9,0,25,0,68,0\n70,0,36,0,62,0,11,0,19,0,42,0\n20,0,3,0,51,0,35,0,66,0,74,0\n32,0,40,0,18,0,73,0,59,0,5,0\n2,0,39,0,31,0,33,0,38,0,60,0\n43,0,41,0,47,0,10,0,61,0,29,0\n53,0,16,0,45,0,69,0,13,0,17,0\n64,0,50,0,65,0,58,0,26,0,30,0\n37,0,34,0,1,0,27,0,28,0,12,0\n21,0,55,0,63,0,44,0,71,0,24,0\n56,0,9,0,19,0,48,0,2,0,74,0\n67,0,33,0,35,0,25,0,11,0,46,0\n22,0,60,0,20,0,52,0,5,0,7,0\n3,0,45,0,64,0,14,0,23,0,38,0\n43,0,53,0,66,0,8,0,39,0,18,0\n27,0,17,0,68,0,71,0,70,0,57,0\n26,0,37,0,16,0,42,0,61,0,73,0\n41,0,72,0,65,0,15,0,59,0,1,0\n29,0,55,0,51,0,13,0,40,0,50,0\n10,0,21,0,34,0,54,0,49,0,62,0\n30,0,31,0,32,0,12,0,44,0,4,0\n69,0,58,0,28,0,47,0,36,0,6,0\n46,0,71,0,39,0,16,0,64,0,7,0\n5,0,25,0,26,0,56,0,45,0,15,0\n61,0,17,0,72,0,3,0,63,0,60,0\n23,0,59,0,8,0,2,0,57,0,29,0\n51,0,65,0,19,0,10,0,32,0,68,0\n27,0,13,0,44,0,22,0,62,0,47,0\n11,0,69,0,50,0,21,0,18,0,1,0\n42,0,40,0,52,0,54,0,38,0,66,0\n53,0,6,0,70,0,33,0,41,0,34,0\n20,0,48,0,31,0,58,0,24,0,43,0\n36,0,74,0,37,0,4,0,14,0,55,0\n30,0,28,0,9,0,35,0,49,0,73,0\n67,0,16,0,60,0,12,0,21,0,57,0\n56,0,44,0,39,0,59,0,11,0,3,0\n22,0,26,0,29,0,1,0,54,0,17,0\n23,0,62,0,41,0,20,0,32,0,69,0\n38,0,74,0,5,0,50,0,47,0,46,0\n58,0,63,0,7,0,49,0,51,0,27,0\n34,0,68,0,13,0,36,0,30,0,48,0\n25,0,55,0,64,0,8,0,31,0,6,0\n52,0,2,0,43,0,45,0,37,0,35,0\n15,0,12,0,40,0,53,0,71,0,19,0\n4,0,18,0,33,0,24,0,28,0,61,0\n70,0,14,0,73,0,66,0,72,0,10,0\n65,0,42,0,5,0,67,0,9,0,17,0\n21,0,8,0,46,0,3,0,27,0,41,0\n50,0,49,0,36,0,32,0,43,0,56,0\n62,0,31,0,52,0,15,0,63,0,16,0\n20,0,38,0,71,0,59,0,37,0,25,0\n26,0,44,0,40,0,68,0,69,0,60,0\n66,0,45,0,67,0,19,0,55,0,28,0\n30,0,22,0,10,0,74,0,33,0,23,0\n61,0,54,0,7,0,12,0,70,0,35,0\n34,0,14,0,57,0,18,0,51,0,47,0\n4,0,11,0,58,0,72,0,53,0,9,0\n24,0,13,0,1,0,64,0,2,0,42,0\n73,0,29,0,6,0,65,0,48,0,39,0\n"
  },
  {
    "path": "schedules/74_7.csv",
    "content": "64,0,55,0,57,0,35,0,38,0,28,0\n22,0,37,0,59,0,13,0,60,0,17,0\n8,0,7,0,33,0,41,0,24,0,61,0\n15,0,31,0,9,0,70,0,40,0,29,0\n63,0,66,0,42,0,5,0,52,0,49,0\n53,0,44,0,71,0,50,0,32,0,74,0\n20,0,45,0,21,0,73,0,19,0,68,0\n43,0,18,0,11,0,65,0,51,0,6,0\n25,0,3,0,62,0,34,0,10,0,72,0\n14,0,54,0,69,0,56,0,4,0,30,0\n47,0,26,0,36,0,58,0,48,0,2,0\n12,0,46,0,1,0,16,0,27,0,39,0\n23,0,35,0,61,0,67,0,70,0,22,0\n31,0,24,0,59,0,18,0,42,0,53,0\n33,0,51,0,19,0,50,0,37,0,5,0\n57,0,52,0,65,0,72,0,44,0,60,0\n71,0,63,0,9,0,25,0,6,0,45,0\n7,0,58,0,40,0,1,0,14,0,20,0\n73,0,16,0,3,0,11,0,69,0,55,0\n21,0,2,0,29,0,38,0,39,0,54,0\n28,0,13,0,46,0,26,0,10,0,15,0\n8,0,30,0,62,0,12,0,67,0,36,0\n66,0,27,0,32,0,56,0,17,0,43,0\n68,0,41,0,4,0,47,0,74,0,23,0\n48,0,34,0,50,0,49,0,64,0,45,0\n35,1,52,0,6,0,31,1,3,0,58,0\n33,1,42,0,2,0,71,1,1,0,10,0\n5,0,30,0,61,0,53,0,60,0,11,0\n18,0,15,0,54,0,19,0,27,0,57,0\n46,0,29,0,67,0,41,0,51,0,55,0\n20,0,28,0,48,0,32,0,4,0,65,0\n63,0,24,0,56,0,62,0,39,0,68,0\n49,0,47,0,43,0,37,0,16,0,9,0\n14,0,36,0,74,0,72,0,64,0,22,0\n13,0,38,0,12,0,66,0,69,0,40,0\n17,0,70,0,21,0,34,0,26,0,7,0\n25,0,8,0,44,0,23,0,59,0,73,0\n1,0,29,0,45,0,56,0,61,0,65,0\n62,0,32,0,57,0,33,0,58,0,46,0\n30,0,37,0,28,0,63,0,3,0,18,0\n16,0,67,0,14,0,48,0,19,0,71,0\n39,0,17,0,69,0,42,0,64,0,47,0\n21,0,40,0,35,0,53,0,27,0,8,0\n50,0,7,0,23,0,13,0,43,0,72,0\n24,0,52,0,10,0,20,0,38,0,74,0\n54,0,5,0,26,0,12,0,25,0,31,0\n73,0,41,0,34,0,36,0,60,0,15,0\n9,0,51,0,22,0,68,0,44,0,66,0\n49,0,11,0,2,0,70,0,59,0,4,0\n6,0,50,0,17,0,55,0,1,0,30,0\n65,0,3,0,67,0,27,0,7,0,47,0\n56,0,72,0,42,0,26,0,20,0,8,0\n36,0,69,0,28,0,43,0,29,0,24,0\n53,0,48,0,15,0,37,0,62,0,66,0\n33,0,10,0,40,0,11,0,63,0,54,0\n64,0,12,0,73,0,70,0,71,0,18,0\n4,0,38,0,16,0,61,0,6,0,44,0\n35,0,59,0,68,0,34,0,14,0,5,0\n41,0,25,0,22,0,32,0,52,0,21,0\n60,0,23,0,46,0,19,0,9,0,2,0\n74,0,58,0,55,0,13,0,49,0,31,0\n39,0,51,0,70,0,57,0,45,0,36,0\n33,0,48,0,12,0,3,0,56,0,44,0\n63,0,27,0,64,0,4,0,29,0,26,0\n71,0,59,0,52,0,62,0,28,0,54,0\n72,0,5,0,6,0,46,0,47,0,24,0\n58,0,19,0,41,0,53,0,65,0,17,0\n45,0,31,0,37,0,38,0,11,0,67,0\n73,0,13,0,61,0,42,0,57,0,14,0\n30,0,10,0,51,0,21,0,23,0,49,0\n32,0,1,0,34,0,8,0,69,0,9,0\n39,0,74,0,66,0,35,0,7,0,18,0\n55,0,20,0,2,0,43,0,15,0,22,0\n50,0,60,0,40,0,25,0,68,0,16,0\n47,0,53,0,70,0,52,0,33,0,14,0\n17,0,49,0,72,0,54,0,67,0,73,0\n1,0,63,0,31,0,48,0,21,0,57,0\n10,0,19,0,32,0,12,0,29,0,35,0\n44,0,39,0,11,0,13,0,20,0,41,0\n58,0,27,0,25,0,69,0,61,0,51,0\n26,0,3,0,24,0,66,0,23,0,71,0\n22,0,6,0,42,0,34,0,40,0,28,0\n36,0,56,0,18,0,38,0,46,0,50,0\n45,0,30,0,74,0,15,0,16,0,59,0\n68,0,8,0,65,0,2,0,64,0,37,0\n7,0,62,0,4,0,5,0,9,0,55,0\n60,0,35,0,71,0,43,0,31,0,33,0\n"
  },
  {
    "path": "schedules/74_8.csv",
    "content": "67,0,55,0,48,0,37,0,74,0,73,0\n71,0,44,0,11,0,30,0,42,0,31,0\n36,0,56,0,47,0,26,0,12,0,33,0\n66,0,45,0,57,0,43,0,68,0,25,0\n50,0,16,0,10,0,2,0,29,0,70,0\n21,0,15,0,19,0,34,0,60,0,39,0\n4,0,52,0,24,0,46,0,32,0,8,0\n64,0,13,0,65,0,28,0,41,0,51,0\n59,0,38,0,18,0,58,0,63,0,35,0\n6,0,40,0,1,0,22,0,3,0,53,0\n17,0,20,0,14,0,5,0,61,0,54,0\n49,0,62,0,23,0,9,0,7,0,69,0\n27,0,74,0,32,0,72,0,71,0,2,0\n30,0,15,0,66,0,47,0,52,0,55,0\n12,0,63,0,51,0,45,0,70,0,34,0\n29,0,19,0,8,0,38,0,44,0,26,0\n68,0,58,0,67,0,17,0,65,0,1,0\n61,0,33,0,35,0,25,0,6,0,62,0\n56,0,28,0,14,0,22,0,11,0,60,0\n5,0,13,0,50,0,42,0,49,0,37,0\n40,0,21,0,4,0,41,0,31,0,23,0\n54,0,39,0,27,0,59,0,48,0,43,0\n16,0,64,0,53,0,46,0,69,0,73,0\n3,0,20,0,57,0,24,0,7,0,36,0\n18,0,9,0,61,0,72,0,10,0,8,0\n26,1,62,0,42,0,74,1,70,0,28,0\n23,0,50,0,19,0,14,0,71,0,68,0\n48,0,45,0,29,0,17,0,35,0,52,0\n63,0,31,0,54,0,22,0,46,0,13,0\n60,0,12,0,4,0,16,0,49,0,44,0\n34,0,53,0,57,0,27,0,65,0,33,0\n36,0,43,0,38,0,55,0,10,0,69,0\n21,0,47,0,5,0,32,0,1,0,51,0\n67,0,3,0,39,0,56,0,18,0,30,0\n24,0,66,0,73,0,59,0,6,0,41,0\n58,0,9,0,2,0,25,0,11,0,20,0\n40,0,15,0,72,0,37,0,7,0,64,0\n12,0,61,0,69,0,68,0,29,0,27,0\n43,0,47,0,8,0,49,0,70,0,53,0\n54,0,1,0,74,0,56,0,45,0,38,0\n62,0,73,0,60,0,10,0,71,0,17,0\n23,0,42,0,6,0,36,0,63,0,16,0\n13,0,21,0,44,0,55,0,35,0,20,0\n33,0,51,0,52,0,67,0,72,0,19,0\n41,0,39,0,26,0,57,0,5,0,2,0\n37,0,4,0,34,0,9,0,22,0,30,0\n65,0,31,0,25,0,7,0,48,0,14,0\n18,0,28,0,40,0,50,0,46,0,66,0\n11,0,3,0,32,0,59,0,15,0,64,0\n24,0,71,0,53,0,58,0,61,0,21,0\n41,0,67,0,69,0,47,0,45,0,44,0\n51,0,35,0,9,0,54,0,26,0,73,0\n33,0,1,0,7,0,8,0,13,0,60,0\n36,0,72,0,31,0,17,0,34,0,50,0\n3,0,52,0,27,0,5,0,28,0,23,0\n12,0,46,0,37,0,19,0,20,0,43,0\n2,0,42,0,68,0,18,0,4,0,55,0\n58,0,10,0,64,0,48,0,56,0,66,0\n70,0,22,0,25,0,24,0,38,0,15,0\n49,0,14,0,32,0,40,0,63,0,30,0\n11,0,6,0,74,0,39,0,29,0,65,0\n59,0,16,0,1,0,57,0,62,0,72,0\n45,0,5,0,7,0,28,0,19,0,55,0\n46,0,42,0,60,0,26,0,35,0,67,0\n54,0,25,0,36,0,18,0,53,0,52,0\n17,0,63,0,43,0,24,0,44,0,56,0\n29,0,30,0,33,0,64,0,20,0,23,0\n27,0,37,0,8,0,21,0,62,0,11,0\n58,0,6,0,69,0,51,0,50,0,4,0\n13,0,74,0,14,0,57,0,9,0,12,0\n49,0,22,0,15,0,2,0,73,0,65,0\n39,0,70,0,31,0,32,0,66,0,61,0\n10,0,59,0,34,0,40,0,68,0,47,0\n48,0,38,0,71,0,3,0,16,0,41,0\n46,0,36,0,44,0,5,0,58,0,62,0\n63,0,55,0,25,0,60,0,64,0,26,0\n33,0,43,0,22,0,21,0,74,0,52,0\n18,0,51,0,31,0,29,0,24,0,49,0\n20,0,8,0,45,0,50,0,73,0,39,0\n2,0,34,0,69,0,66,0,54,0,3,0\n15,0,14,0,27,0,1,0,10,0,41,0\n68,0,9,0,28,0,48,0,53,0,32,0\n56,0,70,0,37,0,6,0,71,0,57,0\n17,0,59,0,47,0,42,0,4,0,19,0\n65,0,35,0,12,0,72,0,23,0,30,0\n38,0,61,0,11,0,67,0,40,0,13,0\n7,0,26,0,34,0,16,0,58,0,43,0\n68,0,64,0,5,0,8,0,31,0,74,0\n46,0,71,0,55,0,33,0,39,0,49,0\n32,0,22,0,41,0,20,0,18,0,62,0\n24,0,2,0,45,0,37,0,14,0,60,0\n19,0,17,0,25,0,3,0,69,0,13,0\n57,0,23,0,44,0,48,0,15,0,61,0\n21,0,10,0,67,0,12,0,54,0,6,0\n72,0,73,0,28,0,47,0,29,0,63,0\n42,0,7,0,38,0,51,0,66,0,27,0\n4,0,1,0,35,0,11,0,36,0,70,0\n65,0,16,0,56,0,9,0,52,0,40,0\n30,0,53,0,26,0,59,0,50,0,74,0\n"
  },
  {
    "path": "schedules/74_9.csv",
    "content": "59,0,19,0,52,0,56,0,7,0,49,0\n60,0,34,0,27,0,55,0,44,0,69,0\n28,0,24,0,72,0,39,0,33,0,35,0\n61,0,16,0,62,0,37,0,46,0,41,0\n43,0,64,0,5,0,2,0,68,0,66,0\n22,0,32,0,42,0,65,0,38,0,36,0\n11,0,21,0,48,0,8,0,9,0,70,0\n13,0,18,0,40,0,23,0,45,0,57,0\n1,0,53,0,54,0,63,0,12,0,6,0\n17,0,3,0,47,0,51,0,67,0,14,0\n25,0,26,0,74,0,20,0,31,0,4,0\n29,0,58,0,71,0,15,0,50,0,73,0\n10,0,66,0,35,0,30,0,44,0,8,0\n21,0,72,0,43,0,41,0,16,0,56,0\n42,0,33,0,37,0,59,0,69,0,9,0\n5,0,27,0,51,0,1,0,19,0,38,0\n52,0,7,0,47,0,60,0,32,0,23,0\n48,0,71,0,36,0,74,0,13,0,53,0\n62,0,24,0,31,0,45,0,3,0,29,0\n58,0,57,0,12,0,20,0,17,0,10,0\n55,0,40,0,26,0,6,0,15,0,14,0\n70,0,39,0,49,0,68,0,67,0,34,0\n50,0,18,0,22,0,28,0,30,0,63,0\n2,0,61,0,65,0,54,0,73,0,4,0\n46,0,11,0,1,0,64,0,25,0,23,0\n16,0,13,0,19,0,33,0,60,0,17,0\n20,0,44,0,62,0,8,0,43,0,71,0\n10,0,68,0,14,0,37,0,72,0,31,0\n9,0,66,0,74,0,27,0,3,0,50,0\n4,0,41,0,59,0,12,0,28,0,32,0\n15,0,7,0,39,0,46,0,36,0,21,0\n6,0,54,0,65,0,18,0,64,0,35,0\n49,0,34,0,26,0,22,0,73,0,24,0\n47,0,70,0,40,0,61,0,53,0,56,0\n52,0,11,0,51,0,58,0,2,0,42,0\n25,0,38,0,67,0,45,0,55,0,30,0\n29,0,57,0,48,0,5,0,63,0,69,0\n13,0,20,0,28,0,15,0,66,0,27,0\n9,0,36,0,44,0,12,0,26,0,16,0\n56,0,3,0,35,0,37,0,60,0,1,0\n42,0,61,0,8,0,50,0,6,0,17,0\n31,0,45,0,22,0,54,0,32,0,51,0\n48,0,25,0,7,0,40,0,62,0,68,0\n10,0,33,0,71,0,21,0,18,0,52,0\n49,0,24,0,63,0,58,0,43,0,55,0\n57,0,47,0,64,0,72,0,38,0,4,0\n46,0,67,0,19,0,73,0,53,0,69,0\n65,0,30,0,14,0,59,0,34,0,11,0\n70,0,23,0,2,0,41,0,29,0,74,0\n5,0,54,0,44,0,39,0,56,0,50,0\n31,0,60,0,66,0,61,0,40,0,12,0\n37,0,49,0,27,0,4,0,45,0,48,0\n1,0,42,0,20,0,21,0,73,0,62,0\n46,0,34,0,32,0,17,0,57,0,43,0\n36,0,11,0,35,0,63,0,19,0,47,0\n8,0,59,0,26,0,13,0,2,0,67,0\n3,0,41,0,33,0,5,0,25,0,58,0\n16,0,39,0,74,0,10,0,38,0,6,0\n69,0,71,0,14,0,22,0,64,0,70,0\n72,0,18,0,7,0,51,0,29,0,9,0\n30,0,68,0,24,0,53,0,15,0,52,0\n55,0,23,0,56,0,28,0,65,0,62,0\n59,0,35,0,58,0,21,0,27,0,40,0\n32,0,2,0,6,0,44,0,37,0,19,0\n71,0,38,0,12,0,11,0,49,0,3,0\n50,0,41,0,60,0,26,0,48,0,39,0\n29,0,52,0,4,0,13,0,34,0,66,0\n63,0,15,0,25,0,65,0,10,0,51,0\n47,0,68,0,54,0,46,0,42,0,28,0\n73,0,17,0,72,0,22,0,55,0,74,0\n57,0,36,0,30,0,33,0,1,0,61,0\n31,0,5,0,7,0,18,0,70,0,67,0\n53,0,45,0,64,0,20,0,43,0,9,0\n24,0,23,0,14,0,8,0,16,0,69,0\n50,0,29,0,21,0,32,0,49,0,65,0\n52,0,46,0,73,0,38,0,44,0,48,0\n28,0,1,0,25,0,71,0,2,0,34,0\n13,0,30,0,12,0,47,0,37,0,5,0\n55,0,9,0,19,0,39,0,31,0,57,0\n10,0,24,0,41,0,27,0,42,0,64,0\n66,0,45,0,70,0,6,0,36,0,72,0\n68,0,69,0,20,0,61,0,51,0,35,0\n8,0,3,0,7,0,16,0,22,0,4,0\n43,0,15,0,60,0,59,0,23,0,54,0\n56,0,17,0,11,0,26,0,53,0,18,0\n62,0,33,0,74,0,67,0,63,0,40,0\n14,0,55,0,1,0,58,0,48,0,66,0\n69,0,6,0,49,0,31,0,41,0,13,0\n73,0,37,0,12,0,39,0,64,0,8,0\n60,0,72,0,65,0,46,0,5,0,20,0\n4,0,51,0,36,0,24,0,56,0,59,0\n3,0,18,0,42,0,19,0,26,0,43,0\n23,0,63,0,22,0,44,0,21,0,68,0\n28,0,67,0,61,0,10,0,29,0,11,0\n52,0,54,0,16,0,25,0,57,0,27,0\n34,0,9,0,45,0,74,0,58,0,47,0\n38,0,17,0,15,0,35,0,62,0,70,0\n53,0,2,0,50,0,33,0,14,0,7,0\n40,0,32,0,19,0,71,0,30,0,72,0\n56,0,12,0,67,0,48,0,42,0,23,0\n61,0,64,0,55,0,3,0,13,0,21,0\n60,0,57,0,44,0,24,0,11,0,74,0\n51,0,58,0,73,0,16,0,70,0,28,0\n5,0,35,0,45,0,14,0,26,0,52,0\n34,0,38,0,40,0,54,0,20,0,41,0\n18,0,4,0,32,0,1,0,68,0,15,0\n39,0,53,0,22,0,59,0,29,0,25,0\n30,0,9,0,6,0,49,0,2,0,46,0\n8,0,65,0,27,0,31,0,33,0,47,0\n37,0,66,0,17,0,63,0,7,0,71,0\n62,0,69,0,43,0,50,0,36,0,10,0\n"
  },
  {
    "path": "schedules/75_1.csv",
    "content": "23,0,50,0,1,0,12,0,73,0,40,0\n17,0,49,0,14,0,18,0,2,0,53,0\n44,0,54,0,36,0,46,0,37,0,30,0\n63,0,41,0,55,0,38,0,66,0,57,0\n16,0,75,0,32,0,35,0,64,0,21,0\n56,0,31,0,72,0,5,0,45,0,10,0\n61,0,58,0,59,0,48,0,68,0,27,0\n52,0,26,0,39,0,7,0,43,0,6,0\n19,0,51,0,70,0,20,0,33,0,28,0\n25,0,71,0,4,0,9,0,34,0,62,0\n42,0,67,0,15,0,65,0,24,0,8,0\n22,0,11,0,47,0,74,0,69,0,3,0\n13,0,60,0,56,1,29,0,1,1,75,1\n"
  },
  {
    "path": "schedules/75_10.csv",
    "content": "34,0,16,0,32,0,72,0,46,0,33,0\n5,0,24,0,60,0,37,0,36,0,47,0\n11,0,7,0,1,0,75,0,19,0,38,0\n57,0,62,0,41,0,2,0,14,0,73,0\n10,0,25,0,66,0,21,0,70,0,55,0\n50,0,67,0,4,0,20,0,53,0,22,0\n9,0,26,0,35,0,3,0,48,0,15,0\n74,0,64,0,71,0,43,0,44,0,30,0\n18,0,29,0,68,0,54,0,31,0,13,0\n52,0,17,0,39,0,28,0,51,0,61,0\n58,0,63,0,27,0,8,0,42,0,40,0\n69,0,59,0,65,0,49,0,23,0,56,0\n12,0,6,0,20,0,45,0,2,0,1,0\n72,0,26,0,25,0,38,0,43,0,67,0\n53,0,31,0,62,0,35,0,74,0,11,0\n9,0,37,0,32,0,50,0,29,0,75,0\n28,0,48,0,27,0,71,0,33,0,10,0\n23,0,64,0,47,0,21,0,57,0,42,0\n7,0,54,0,39,0,24,0,14,0,22,0\n16,0,8,0,44,0,69,0,68,0,51,0\n19,0,56,0,34,0,66,0,40,0,41,0\n49,0,63,0,15,0,18,0,12,0,17,0\n13,0,65,0,58,0,60,0,70,0,3,0\n46,0,45,0,36,0,61,0,55,0,4,0\n30,0,52,0,6,0,73,0,5,0,59,0\n48,0,23,0,37,0,62,0,8,0,54,0\n72,0,75,0,47,0,35,0,56,0,39,0\n42,0,71,0,31,0,69,0,50,0,2,0\n14,0,29,0,26,0,12,0,10,0,65,0\n13,0,21,0,40,0,49,0,24,0,74,0\n4,0,1,0,53,0,52,0,16,0,57,0\n11,0,5,0,3,0,45,0,25,0,43,0\n20,0,38,0,41,0,17,0,32,0,64,0\n15,0,9,0,66,0,58,0,30,0,68,0\n19,0,22,0,51,0,73,0,33,0,18,0\n27,0,60,0,44,0,34,0,28,0,55,0\n63,0,36,0,59,0,67,0,46,0,7,0\n61,0,70,0,56,0,6,0,48,0,53,0\n16,0,35,0,45,0,10,0,54,0,17,0\n49,0,58,0,62,0,47,0,43,0,32,0\n21,0,51,0,3,0,4,0,2,0,31,0\n69,0,30,0,74,0,33,0,60,0,1,0\n67,0,39,0,42,0,55,0,9,0,73,0\n18,0,27,0,61,0,41,0,25,0,37,0\n57,0,34,0,24,0,38,0,52,0,12,0\n50,0,23,0,13,0,28,0,7,0,15,0\n72,0,68,0,5,0,63,0,65,0,19,0\n71,0,29,0,6,0,22,0,46,0,66,0\n36,0,70,0,75,0,64,0,8,0,14,0\n59,0,20,0,40,0,11,0,26,0,44,0\n53,0,12,0,51,0,21,0,32,0,60,0\n43,0,35,0,50,0,24,0,4,0,18,0\n2,0,48,0,47,0,38,0,13,0,68,0\n56,0,5,0,57,0,3,0,17,0,46,0\n37,0,67,0,69,0,28,0,14,0,30,0\n26,0,1,0,55,0,63,0,71,0,41,0\n73,0,40,0,64,0,65,0,15,0,45,0\n16,0,61,0,75,0,66,0,59,0,31,0\n9,0,11,0,10,0,23,0,34,0,36,0\n58,0,19,0,74,0,20,0,27,0,39,0\n6,0,33,0,8,0,7,0,29,0,62,0\n44,0,49,0,70,0,42,0,72,0,54,0\n25,0,3,0,14,0,52,0,22,0,64,0\n4,0,73,0,60,0,68,0,71,0,59,0\n61,0,32,0,10,0,43,0,13,0,1,0\n75,0,55,0,17,0,34,0,53,0,69,0\n21,0,28,0,47,0,18,0,11,0,6,0\n48,0,42,0,51,0,20,0,65,0,7,0\n40,0,2,0,29,0,23,0,72,0,39,0\n67,0,5,0,12,0,66,0,62,0,44,0\n54,0,33,0,36,0,25,0,31,0,57,0\n49,0,35,0,38,0,37,0,22,0,58,0\n30,0,26,0,50,0,27,0,56,0,16,0\n8,0,46,0,15,0,74,0,41,0,52,0\n9,0,63,0,70,0,24,0,19,0,45,0\n11,0,69,0,12,0,48,0,64,0,39,0\n4,0,59,0,28,0,29,0,47,0,25,0\n40,0,6,0,55,0,38,0,51,0,54,0\n14,0,60,0,18,0,66,0,17,0,72,0\n10,0,41,0,22,0,20,0,5,0,31,0\n33,0,23,0,24,0,58,0,61,0,67,0\n53,0,46,0,2,0,49,0,30,0,9,0\n7,0,43,0,27,0,57,0,68,0,70,0\n44,0,32,0,52,0,19,0,35,0,36,0\n73,0,37,0,63,0,3,0,74,0,16,0\n75,0,62,0,45,0,13,0,26,0,42,0\n21,0,65,0,34,0,50,0,1,0,8,0\n71,0,56,0,67,0,15,0,51,0,11,0\n5,0,55,0,48,0,58,0,64,0,18,0\n68,0,22,0,12,0,61,0,72,0,40,0\n29,0,73,0,69,0,20,0,70,0,35,0\n45,0,66,0,57,0,74,0,32,0,28,0\n24,0,46,0,65,0,53,0,27,0,75,0\n43,0,34,0,15,0,6,0,54,0,59,0\n62,0,13,0,10,0,30,0,63,0,4,0\n2,0,52,0,7,0,26,0,37,0,60,0\n36,0,3,0,50,0,39,0,49,0,41,0\n23,0,8,0,25,0,71,0,16,0,19,0\n42,0,38,0,14,0,56,0,21,0,33,0\n9,0,31,0,17,0,44,0,1,0,47,0\n6,0,64,0,35,0,67,0,13,0,27,0\n24,0,28,0,54,0,26,0,32,0,5,0\n72,0,58,0,69,0,41,0,7,0,4,0\n29,0,60,0,57,0,19,0,61,0,49,0\n38,0,10,0,53,0,18,0,3,0,8,0\n43,0,42,0,22,0,36,0,12,0,16,0\n71,0,21,0,17,0,37,0,75,0,40,0\n25,0,46,0,44,0,1,0,23,0,73,0\n31,0,30,0,47,0,48,0,34,0,45,0\n20,0,62,0,52,0,68,0,56,0,55,0\n63,0,66,0,11,0,65,0,33,0,2,0\n74,0,14,0,59,0,50,0,9,0,51,0\n39,0,15,0,4,0,70,0,38,0,5,0\n37,0,57,0,72,0,6,0,10,0,42,0\n16,0,48,0,41,0,29,0,67,0,21,0\n3,0,75,0,30,0,28,0,23,0,12,0\n73,0,13,0,17,0,36,0,27,0,11,0\n1,0,51,0,49,0,64,0,66,0,24,0\n74,0,68,0,7,0,34,0,25,0,35,0\n65,0,54,0,61,0,9,0,20,0,71,0\n46,0,18,0,19,0,26,0,69,0,62,0\n22,0,2,0,8,0,55,0,59,0,32,0\n39,0,31,0,43,0,60,0,63,0,56,0\n70,0,50,0,33,0,40,0,52,0,47,0\n45,0,44,0,53,0,14,0,15,0,58,0\n"
  },
  {
    "path": "schedules/75_11.csv",
    "content": "23,0,74,0,5,0,17,0,35,0,43,0\n34,0,64,0,3,0,40,0,26,0,38,0\n13,0,20,0,57,0,2,0,37,0,61,0\n36,0,69,0,48,0,9,0,6,0,42,0\n28,0,27,0,66,0,65,0,59,0,58,0\n16,0,7,0,21,0,46,0,62,0,53,0\n67,0,50,0,22,0,8,0,55,0,25,0\n52,0,4,0,70,0,14,0,45,0,19,0\n10,0,47,0,60,0,44,0,68,0,54,0\n18,0,24,0,63,0,51,0,12,0,56,0\n15,0,29,0,75,0,32,0,30,0,49,0\n39,0,41,0,33,0,11,0,31,0,1,0\n72,0,71,0,3,0,73,0,58,0,22,0\n26,0,36,0,14,0,8,0,37,0,16,0\n4,0,74,0,69,0,55,0,61,0,67,0\n25,0,57,0,68,0,46,0,64,0,27,0\n42,0,40,0,29,0,56,0,20,0,66,0\n21,0,65,0,31,0,24,0,13,0,34,0\n12,0,60,0,73,0,23,0,1,0,39,0\n49,0,5,0,6,0,10,0,71,0,38,0\n18,0,19,0,33,0,35,0,15,0,28,0\n7,0,62,0,50,0,48,0,30,0,44,0\n59,0,70,0,2,0,52,0,43,0,9,0\n45,0,53,0,41,0,72,0,75,0,47,0\n51,0,32,0,63,0,54,0,17,0,11,0\n8,1,24,0,68,0,73,1,23,0,38,0\n1,0,29,0,64,0,31,1,55,0,16,0\n56,0,25,0,60,0,3,0,48,0,5,0\n49,0,28,0,34,0,46,0,6,0,14,0\n18,0,7,0,67,0,42,0,72,0,59,0\n54,0,58,0,74,0,21,0,20,0,50,0\n13,0,52,0,69,0,41,0,71,0,51,0\n61,0,35,0,70,0,47,0,27,0,12,0\n26,0,30,0,43,0,66,0,19,0,11,0\n22,0,75,0,9,0,10,0,62,0,57,0\n40,0,44,0,2,0,45,0,33,0,37,0\n63,0,53,0,17,0,4,0,65,0,15,0\n36,0,5,0,72,0,39,0,32,0,55,0\n52,0,51,0,61,0,3,0,1,0,50,0\n38,0,27,0,20,0,31,0,19,0,7,0\n59,0,68,0,13,0,62,0,54,0,12,0\n29,0,10,0,14,0,74,0,26,0,18,0\n30,0,56,0,70,0,16,0,22,0,71,0\n43,0,46,0,28,0,32,0,37,0,53,0\n65,0,67,0,23,0,49,0,41,0,9,0\n39,0,48,0,15,0,45,0,64,0,8,0\n58,0,44,0,63,0,34,0,75,0,36,0\n33,0,25,0,66,0,69,0,47,0,73,0\n6,0,2,0,11,0,60,0,35,0,24,0\n42,0,4,0,17,0,57,0,21,0,40,0\n55,0,62,0,5,0,26,0,70,0,65,0\n71,0,28,0,53,0,20,0,64,0,12,0\n45,0,61,0,50,0,16,0,68,0,43,0\n49,0,33,0,8,0,7,0,13,0,51,0\n22,0,15,0,27,0,34,0,14,0,2,0\n38,0,35,0,41,0,25,0,42,0,63,0\n46,0,17,0,60,0,18,0,66,0,69,0\n21,0,72,0,30,0,36,0,23,0,52,0\n9,0,58,0,37,0,47,0,56,0,31,0\n11,0,40,0,73,0,59,0,57,0,75,0\n39,0,19,0,67,0,10,0,32,0,24,0\n44,0,6,0,29,0,3,0,4,0,54,0\n48,0,74,0,71,0,1,0,68,0,63,0\n34,0,45,0,30,0,60,0,28,0,55,0\n35,0,2,0,64,0,8,0,7,0,17,0\n9,0,61,0,66,0,21,0,15,0,5,0\n59,0,23,0,31,0,14,0,50,0,69,0\n24,0,6,0,26,0,53,0,57,0,33,0\n74,0,32,0,19,0,25,0,41,0,13,0\n18,0,29,0,62,0,58,0,67,0,52,0\n22,0,10,0,1,0,40,0,46,0,4,0\n49,0,54,0,73,0,48,0,37,0,70,0\n36,0,20,0,47,0,11,0,65,0,51,0\n42,0,3,0,75,0,39,0,16,0,12,0\n56,0,38,0,72,0,43,0,44,0,27,0\n6,0,31,0,62,0,25,0,17,0,61,0\n32,0,71,0,40,0,7,0,9,0,14,0\n49,0,59,0,19,0,60,0,8,0,63,0\n53,0,48,0,23,0,29,0,22,0,11,0\n67,0,47,0,4,0,64,0,30,0,5,0\n69,0,15,0,38,0,58,0,20,0,1,0\n43,0,41,0,57,0,54,0,36,0,55,0\n50,0,42,0,10,0,2,0,33,0,27,0\n37,0,65,0,34,0,72,0,12,0,74,0\n16,0,52,0,44,0,24,0,28,0,73,0\n56,0,35,0,46,0,45,0,26,0,13,0\n75,0,39,0,66,0,51,0,68,0,70,0\n21,0,3,0,8,0,18,0,32,0,47,0\n10,0,59,0,48,0,17,0,30,0,20,0\n41,0,40,0,14,0,62,0,43,0,60,0\n36,0,1,0,24,0,27,0,49,0,72,0\n55,0,12,0,45,0,38,0,9,0,11,0\n56,0,52,0,64,0,54,0,75,0,33,0\n18,0,37,0,57,0,34,0,71,0,50,0\n66,0,67,0,31,0,53,0,35,0,3,0\n5,0,51,0,42,0,19,0,44,0,22,0\n16,0,25,0,26,0,4,0,23,0,58,0\n39,0,2,0,65,0,61,0,69,0,46,0\n15,0,7,0,73,0,13,0,28,0,74,0\n6,0,21,0,68,0,70,0,29,0,63,0\n27,0,17,0,37,0,67,0,3,0,60,0\n45,0,1,0,62,0,36,0,42,0,53,0\n58,0,12,0,33,0,41,0,8,0,5,0\n61,0,23,0,19,0,34,0,59,0,56,0\n50,0,4,0,55,0,24,0,7,0,66,0\n63,0,11,0,72,0,69,0,64,0,28,0\n68,0,31,0,40,0,49,0,52,0,26,0\n14,0,35,0,20,0,21,0,73,0,44,0\n6,0,13,0,43,0,39,0,47,0,22,0\n9,0,46,0,51,0,74,0,30,0,29,0\n75,0,2,0,25,0,71,0,54,0,18,0\n16,0,32,0,38,0,57,0,48,0,65,0\n15,0,70,0,3,0,10,0,41,0,7,0\n17,0,49,0,14,0,11,0,58,0,56,0\n34,0,20,0,4,0,35,0,62,0,39,0\n21,0,26,0,12,0,43,0,67,0,51,0\n24,0,45,0,27,0,29,0,5,0,69,0\n64,0,32,0,65,0,18,0,59,0,44,0\n46,0,71,0,42,0,15,0,23,0,47,0\n36,0,70,0,38,0,33,0,50,0,28,0\n16,0,9,0,10,0,63,0,13,0,66,0\n55,0,19,0,73,0,53,0,68,0,2,0\n1,0,30,0,75,0,6,0,37,0,25,0\n54,0,48,0,8,0,72,0,40,0,61,0\n22,0,74,0,57,0,31,0,52,0,60,0\n35,0,47,0,71,0,36,0,29,0,59,0\n13,0,64,0,58,0,70,0,24,0,42,0\n55,0,20,0,46,0,3,0,63,0,33,0\n56,0,23,0,62,0,15,0,32,0,2,0\n43,0,8,0,73,0,34,0,69,0,10,0\n11,0,37,0,7,0,5,0,52,0,68,0\n75,0,51,0,28,0,4,0,48,0,31,0\n60,0,22,0,26,0,21,0,61,0,38,0\n41,0,18,0,27,0,40,0,6,0,16,0\n9,0,12,0,17,0,72,0,19,0,50,0\n44,0,53,0,49,0,74,0,25,0,39,0\n57,0,66,0,54,0,1,0,67,0,14,0\n65,0,30,0,8,0,45,0,73,0,31,0\n"
  },
  {
    "path": "schedules/75_12.csv",
    "content": "42,0,6,0,32,0,57,0,28,0,23,0\n26,0,18,0,73,0,25,0,63,0,29,0\n10,0,70,0,38,0,61,0,15,0,7,0\n27,0,33,0,48,0,14,0,8,0,67,0\n4,0,5,0,17,0,60,0,52,0,66,0\n47,0,65,0,72,0,39,0,62,0,59,0\n36,0,75,0,50,0,13,0,51,0,31,0\n54,0,16,0,68,0,37,0,58,0,21,0\n55,0,46,0,53,0,20,0,64,0,69,0\n12,0,44,0,24,0,34,0,19,0,2,0\n22,0,56,0,11,0,9,0,43,0,1,0\n41,0,3,0,71,0,45,0,30,0,74,0\n40,0,35,0,52,0,49,0,61,0,33,0\n28,0,51,0,72,0,37,0,48,0,10,0\n13,0,62,0,73,0,15,0,42,0,66,0\n46,0,27,0,39,0,32,0,34,0,55,0\n75,0,24,0,53,0,16,0,56,0,26,0\n54,0,63,0,2,0,36,0,5,0,11,0\n58,0,18,0,40,0,59,0,38,0,57,0\n3,0,64,0,1,0,60,0,14,0,4,0\n44,0,68,0,43,0,17,0,41,0,25,0\n12,0,49,0,29,0,6,0,67,0,50,0\n69,0,19,0,31,0,30,0,22,0,65,0\n21,0,35,0,9,0,45,0,71,0,7,0\n74,0,23,0,70,0,8,0,47,0,20,0\n5,0,46,0,32,0,33,0,73,0,75,0\n38,0,62,0,14,0,55,0,17,0,10,0\n13,0,67,0,15,0,59,0,16,0,11,0\n68,0,1,0,18,0,51,0,69,0,42,0\n36,0,41,0,60,0,35,0,29,0,6,0\n37,0,43,0,40,0,2,0,3,0,50,0\n26,0,27,0,47,0,9,0,28,0,12,0\n64,0,71,0,66,0,25,0,19,0,20,0\n53,0,45,0,54,0,39,0,23,0,31,0\n24,0,57,0,34,0,30,0,7,0,49,0\n70,0,56,0,65,0,63,0,48,0,21,0\n4,0,44,0,74,0,58,0,61,0,72,0\n8,0,22,0,15,0,52,0,17,0,12,0\n64,0,19,0,36,0,40,0,67,0,47,0\n14,0,6,0,39,0,73,0,37,0,66,0\n28,0,18,0,16,0,34,0,5,0,7,0\n20,0,41,0,59,0,33,0,51,0,54,0\n50,0,61,0,9,0,53,0,63,0,60,0\n49,0,11,0,75,0,30,0,27,0,62,0\n24,0,22,0,45,0,74,0,32,0,25,0\n31,0,46,0,10,0,56,0,57,0,4,0\n1,0,69,0,44,0,29,0,23,0,48,0\n8,0,2,0,71,0,58,0,65,0,26,0\n43,0,55,0,52,0,21,0,70,0,42,0\n38,0,35,0,13,0,72,0,3,0,68,0\n20,0,51,0,73,0,40,0,34,0,11,0\n74,0,15,0,59,0,56,0,28,0,64,0\n60,0,32,0,22,0,54,0,47,0,10,0\n67,0,39,0,5,0,71,0,44,0,58,0\n7,0,65,0,23,0,17,0,27,0,50,0\n57,0,33,0,3,0,36,0,62,0,48,0\n69,0,52,0,25,0,16,0,38,0,72,0\n41,0,21,0,8,0,31,0,53,0,61,0\n75,0,13,0,66,0,24,0,35,0,63,0\n26,0,12,0,30,0,14,0,70,0,68,0\n49,0,55,0,4,0,18,0,9,0,2,0\n43,0,19,0,45,0,6,0,46,0,1,0\n37,0,29,0,7,0,42,0,11,0,71,0\n48,0,34,0,50,0,64,0,58,0,38,0\n32,0,63,0,59,0,44,0,52,0,20,0\n57,0,60,0,21,0,25,0,75,0,15,0\n56,0,5,0,62,0,23,0,26,0,68,0\n74,0,2,0,39,0,1,0,27,0,13,0\n6,0,72,0,9,0,31,0,24,0,8,0\n41,0,67,0,73,0,22,0,28,0,55,0\n29,0,70,0,69,0,54,0,40,0,4,0\n10,0,33,0,18,0,3,0,19,0,12,0\n51,0,35,0,47,0,46,0,30,0,17,0\n53,0,37,0,49,0,43,0,65,0,66,0\n14,0,61,0,36,0,16,0,45,0,42,0\n64,0,74,0,57,0,38,0,73,0,9,0\n69,0,60,0,7,0,32,0,2,0,56,0\n54,0,71,0,12,0,75,0,72,0,1,0\n29,0,52,0,30,0,10,0,58,0,28,0\n46,0,67,0,65,0,41,0,15,0,24,0\n3,0,42,0,31,0,5,0,27,0,59,0\n22,0,34,0,6,0,48,0,35,0,53,0\n20,0,62,0,26,0,61,0,39,0,43,0\n13,0,23,0,25,0,49,0,70,0,51,0\n4,0,8,0,68,0,45,0,11,0,47,0\n50,0,55,0,33,0,16,0,44,0,66,0\n37,0,36,0,17,0,21,0,18,0,19,0\n14,0,42,0,27,0,63,0,40,0,22,0\n69,0,6,0,61,0,75,0,59,0,34,0\n20,0,5,0,29,0,65,0,13,0,9,0\n35,0,25,0,58,0,31,0,15,0,12,0\n28,0,66,0,8,0,46,0,54,0,3,0\n38,0,4,0,19,0,51,0,32,0,53,0\n68,0,55,0,40,0,24,0,7,0,48,0\n72,0,30,0,71,0,33,0,36,0,43,0\n1,0,50,0,47,0,57,0,26,0,41,0\n10,0,44,0,21,0,73,0,74,0,49,0\n60,0,56,0,45,0,67,0,37,0,62,0\n11,0,23,0,2,0,14,0,18,0,52,0\n70,0,63,0,17,0,39,0,64,0,16,0\n59,0,58,0,43,0,27,0,24,0,66,0\n3,0,32,0,61,0,25,0,65,0,1,0\n55,0,42,0,38,0,6,0,30,0,54,0\n28,0,21,0,50,0,35,0,62,0,4,0\n23,0,60,0,9,0,72,0,73,0,19,0\n47,0,16,0,48,0,71,0,20,0,31,0\n53,0,70,0,2,0,67,0,10,0,68,0\n26,0,33,0,17,0,69,0,45,0,49,0\n74,0,11,0,63,0,12,0,46,0,57,0\n75,0,41,0,37,0,7,0,64,0,52,0\n51,0,14,0,34,0,29,0,13,0,56,0\n22,0,44,0,39,0,36,0,8,0,18,0\n15,0,40,0,72,0,5,0,55,0,71,0\n16,0,43,0,67,0,35,0,32,0,23,0\n30,0,25,0,9,0,59,0,2,0,48,0\n54,0,62,0,52,0,53,0,74,0,19,0\n14,0,69,0,73,0,50,0,7,0,20,0\n24,0,29,0,38,0,33,0,47,0,21,0\n56,0,40,0,66,0,41,0,12,0,18,0\n31,0,37,0,26,0,44,0,46,0,13,0\n51,0,61,0,57,0,64,0,22,0,5,0\n27,0,34,0,15,0,1,0,45,0,36,0\n63,0,39,0,68,0,28,0,60,0,49,0\n42,0,8,0,65,0,10,0,4,0,75,0\n11,0,58,0,17,0,70,0,3,0,6,0\n54,0,72,0,25,0,50,0,14,0,46,0\n61,0,16,0,2,0,29,0,57,0,19,0\n7,0,13,0,33,0,53,0,43,0,47,0\n20,0,49,0,56,0,38,0,36,0,22,0\n40,0,65,0,31,0,34,0,74,0,60,0\n10,0,12,0,51,0,55,0,45,0,39,0\n6,0,64,0,27,0,44,0,18,0,62,0\n24,0,42,0,28,0,71,0,17,0,69,0\n11,0,48,0,26,0,66,0,21,0,32,0\n3,0,67,0,9,0,68,0,52,0,75,0\n37,0,30,0,4,0,15,0,63,0,23,0\n59,0,35,0,1,0,8,0,70,0,73,0\n58,0,5,0,19,0,41,0,49,0,14,0\n42,0,50,0,25,0,39,0,56,0,33,0\n28,0,45,0,38,0,44,0,65,0,11,0\n74,0,3,0,7,0,6,0,51,0,26,0\n32,0,31,0,29,0,64,0,15,0,68,0\n30,0,1,0,8,0,40,0,16,0,62,0\n47,0,58,0,23,0,63,0,75,0,55,0\n48,0,43,0,13,0,54,0,61,0,18,0\n12,0,36,0,73,0,24,0,4,0,52,0\n10,0,35,0,5,0,69,0,37,0,27,0\n71,0,60,0,46,0,59,0,22,0,53,0\n17,0,20,0,21,0,2,0,72,0,67,0\n34,0,41,0,66,0,70,0,57,0,9,0\n"
  },
  {
    "path": "schedules/75_13.csv",
    "content": "41,0,67,0,14,0,16,0,45,0,30,0\n64,0,13,0,54,0,56,0,1,0,31,0\n43,0,70,0,3,0,73,0,36,0,48,0\n23,0,37,0,10,0,52,0,25,0,55,0\n19,0,35,0,72,0,17,0,66,0,34,0\n33,0,74,0,75,0,29,0,8,0,11,0\n42,0,50,0,47,0,68,0,62,0,26,0\n63,0,40,0,28,0,61,0,5,0,12,0\n32,0,15,0,58,0,6,0,53,0,9,0\n49,0,65,0,51,0,7,0,20,0,4,0\n38,0,46,0,24,0,44,0,18,0,27,0\n71,0,39,0,59,0,22,0,69,0,57,0\n60,0,3,0,34,0,2,0,21,0,29,0\n56,0,33,0,68,0,72,0,5,0,70,0\n53,0,63,0,47,0,37,0,55,0,66,0\n35,0,61,0,6,0,25,0,26,0,48,0\n4,0,51,0,11,0,17,0,1,0,32,0\n57,0,30,0,52,0,73,0,65,0,46,0\n13,0,23,0,19,0,12,0,22,0,44,0\n27,0,39,0,2,0,64,0,67,0,15,0\n18,0,7,0,45,0,42,0,28,0,60,0\n58,0,71,0,41,0,10,0,36,0,50,0\n75,0,24,0,20,0,69,0,43,0,49,0\n9,0,31,0,8,0,14,0,40,0,59,0\n74,0,62,0,54,0,21,0,16,0,38,0\n17,1,3,0,6,0,66,1,30,0,27,0\n12,1,11,0,64,0,5,0,60,0,47,0\n36,0,44,0,63,0,45,0,26,0,39,0\n65,0,34,0,19,0,67,0,75,0,71,0\n33,0,10,0,48,0,15,0,37,0,24,0\n1,0,22,0,2,0,72,0,61,0,74,0\n16,0,25,0,42,0,56,0,9,0,69,0\n51,0,55,0,70,0,18,0,54,0,57,0\n50,0,23,0,21,0,49,0,32,0,4,0\n38,0,35,0,40,0,43,0,52,0,58,0\n73,0,29,0,68,0,31,0,7,0,59,0\n20,0,53,0,46,0,41,0,28,0,8,0\n13,0,14,0,37,0,62,0,71,0,27,0\n64,0,24,0,48,0,12,0,25,0,72,0\n36,0,45,0,69,0,1,0,9,0,65,0\n11,0,63,0,56,0,50,0,18,0,6,0\n4,0,54,0,44,0,74,0,43,0,30,0\n2,0,23,0,61,0,29,0,70,0,41,0\n31,0,52,0,66,0,49,0,22,0,8,0\n16,0,14,0,33,0,26,0,7,0,57,0\n3,0,40,0,58,0,39,0,62,0,17,0\n13,0,10,0,46,0,32,0,68,0,47,0\n21,0,67,0,51,0,28,0,35,0,73,0\n60,0,15,0,20,0,55,0,59,0,19,0\n5,0,34,0,75,0,42,0,38,0,53,0\n6,0,71,0,57,0,24,0,4,0,8,0\n50,0,22,0,25,0,40,0,45,0,70,0\n29,0,44,0,17,0,16,0,52,0,56,0\n69,0,7,0,12,0,58,0,47,0,67,0\n35,0,18,0,64,0,14,0,15,0,62,0\n59,0,60,0,66,0,32,0,43,0,36,0\n27,0,61,0,46,0,9,0,2,0,51,0\n26,0,73,0,72,0,23,0,28,0,75,0\n49,0,54,0,37,0,3,0,5,0,68,0\n21,0,33,0,1,0,63,0,65,0,10,0\n38,0,19,0,48,0,53,0,31,0,30,0\n74,0,42,0,39,0,20,0,55,0,41,0\n11,0,34,0,15,0,13,0,25,0,36,0\n47,0,28,0,44,0,59,0,6,0,70,0\n18,0,8,0,16,0,73,0,3,0,9,0\n10,0,72,0,60,0,40,0,27,0,4,0\n48,0,23,0,32,0,75,0,14,0,54,0\n42,0,17,0,20,0,31,0,33,0,71,0\n46,0,22,0,45,0,58,0,55,0,24,0\n68,0,52,0,21,0,19,0,11,0,61,0\n35,0,29,0,30,0,50,0,37,0,1,0\n26,0,66,0,2,0,65,0,56,0,38,0\n57,0,53,0,62,0,12,0,49,0,67,0\n64,0,34,0,7,0,69,0,63,0,74,0\n43,0,39,0,41,0,51,0,13,0,5,0\n14,0,3,0,36,0,46,0,72,0,28,0\n16,0,71,0,73,0,6,0,40,0,55,0\n45,0,56,0,59,0,27,0,52,0,48,0\n31,0,60,0,62,0,23,0,24,0,65,0\n63,0,42,0,75,0,2,0,15,0,17,0\n25,0,8,0,74,0,47,0,12,0,21,0\n9,0,49,0,68,0,34,0,44,0,41,0\n43,0,22,0,54,0,53,0,11,0,7,0\n32,0,18,0,30,0,39,0,33,0,61,0\n1,0,51,0,26,0,19,0,37,0,58,0\n4,0,29,0,38,0,69,0,13,0,35,0\n67,0,70,0,66,0,20,0,10,0,64,0\n57,0,5,0,25,0,50,0,44,0,75,0\n49,0,62,0,7,0,56,0,36,0,55,0\n65,0,17,0,74,0,28,0,14,0,43,0\n58,0,51,0,34,0,8,0,59,0,33,0\n72,0,41,0,23,0,15,0,38,0,63,0\n21,0,18,0,69,0,22,0,48,0,68,0\n53,0,71,0,1,0,3,0,39,0,47,0\n57,0,61,0,10,0,42,0,35,0,54,0\n31,0,16,0,13,0,70,0,60,0,30,0\n46,0,52,0,40,0,4,0,26,0,64,0\n67,0,5,0,29,0,24,0,66,0,9,0\n11,0,50,0,27,0,73,0,20,0,19,0\n32,0,12,0,6,0,37,0,45,0,2,0\n71,0,25,0,65,0,72,0,63,0,58,0\n75,0,55,0,3,0,33,0,44,0,51,0\n59,0,46,0,69,0,53,0,17,0,13,0\n47,0,22,0,15,0,30,0,28,0,5,0\n9,0,35,0,16,0,11,0,49,0,20,0\n56,0,12,0,39,0,73,0,10,0,38,0\n24,0,50,0,52,0,34,0,54,0,2,0\n66,0,57,0,43,0,68,0,45,0,23,0\n36,0,4,0,62,0,61,0,31,0,29,0\n19,0,8,0,32,0,70,0,64,0,42,0\n41,0,27,0,7,0,40,0,21,0,48,0\n74,0,37,0,26,0,60,0,18,0,67,0\n1,0,14,0,5,0,6,0,34,0,20,0\n16,0,65,0,44,0,10,0,51,0,53,0\n56,0,4,0,47,0,58,0,45,0,75,0\n39,0,28,0,31,0,25,0,66,0,35,0\n19,0,3,0,24,0,13,0,7,0,61,0\n69,0,27,0,60,0,63,0,54,0,52,0\n22,0,73,0,40,0,42,0,36,0,37,0\n55,0,30,0,14,0,2,0,11,0,68,0\n38,0,17,0,9,0,57,0,64,0,21,0\n59,0,72,0,32,0,62,0,18,0,41,0\n49,0,26,0,70,0,15,0,71,0,29,0\n74,0,23,0,12,0,6,0,46,0,33,0\n43,0,48,0,50,0,8,0,1,0,67,0\n66,0,42,0,61,0,11,0,14,0,44,0\n31,0,58,0,5,0,57,0,2,0,55,0\n65,0,22,0,27,0,34,0,16,0,32,0\n54,0,72,0,20,0,47,0,29,0,26,0\n69,0,10,0,25,0,62,0,30,0,19,0\n52,0,12,0,4,0,3,0,41,0,15,0\n9,0,37,0,7,0,70,0,50,0,17,0\n45,0,28,0,38,0,40,0,33,0,49,0\n36,0,67,0,68,0,75,0,6,0,64,0\n48,0,56,0,60,0,71,0,51,0,46,0\n8,0,63,0,73,0,13,0,24,0,74,0\n59,0,18,0,53,0,35,0,1,0,23,0\n43,0,21,0,42,0,39,0,72,0,16,0\n11,0,26,0,41,0,3,0,31,0,69,0\n55,0,17,0,68,0,38,0,67,0,25,0\n57,0,4,0,28,0,48,0,62,0,34,0\n10,0,14,0,6,0,22,0,60,0,51,0\n65,0,2,0,36,0,23,0,18,0,47,0\n43,0,20,0,8,0,37,0,61,0,56,0\n49,0,29,0,46,0,39,0,19,0,63,0\n7,0,70,0,35,0,27,0,1,0,12,0\n32,0,5,0,9,0,52,0,74,0,71,0\n13,0,59,0,50,0,64,0,33,0,66,0\n40,0,24,0,30,0,21,0,75,0,53,0\n45,0,15,0,44,0,58,0,73,0,54,0\n47,0,61,0,41,0,60,0,57,0,19,0\n55,0,43,0,12,0,34,0,29,0,27,0\n67,0,9,0,63,0,22,0,3,0,38,0\n70,0,39,0,37,0,59,0,11,0,65,0\n1,0,66,0,75,0,16,0,62,0,46,0\n6,0,52,0,13,0,21,0,72,0,7,0\n36,0,26,0,5,0,17,0,10,0,8,0\n31,0,15,0,51,0,74,0,50,0,45,0\n24,0,28,0,68,0,32,0,56,0,35,0\n44,0,40,0,2,0,20,0,48,0,69,0\n64,0,30,0,58,0,23,0,49,0,42,0\n73,0,53,0,33,0,25,0,14,0,4,0\n71,0,54,0,17,0,18,0,66,0,12,0\n"
  },
  {
    "path": "schedules/75_14.csv",
    "content": "65,0,34,0,7,0,67,0,35,0,68,0\n53,0,8,0,42,0,45,0,43,0,16,0\n63,0,36,0,17,0,61,0,3,0,52,0\n44,0,21,0,30,0,46,0,47,0,49,0\n38,0,56,0,5,0,37,0,58,0,55,0\n31,0,50,0,48,0,51,0,26,0,59,0\n64,0,70,0,14,0,24,0,25,0,39,0\n22,0,74,0,32,0,41,0,60,0,11,0\n15,0,29,0,23,0,19,0,4,0,13,0\n10,0,27,0,71,0,54,0,12,0,2,0\n75,0,33,0,6,0,73,0,62,0,20,0\n57,0,69,0,18,0,66,0,1,0,72,0\n28,0,9,0,14,0,40,0,63,0,50,0\n68,0,22,0,48,0,16,0,49,0,37,0\n19,0,29,0,30,0,42,0,21,0,59,0\n17,0,54,0,64,0,56,0,51,0,15,0\n70,0,46,0,11,0,45,0,71,0,75,0\n6,0,3,0,41,0,55,0,43,0,39,0\n53,0,28,0,72,0,35,0,23,0,60,0\n36,0,12,0,62,0,58,0,74,0,57,0\n13,0,34,0,20,0,8,0,24,0,65,0\n40,0,1,0,18,0,32,0,25,0,10,0\n38,0,26,0,66,0,52,0,67,0,9,0\n4,0,61,0,44,0,69,0,27,0,73,0\n31,0,47,0,2,0,7,0,5,0,33,0\n51,0,12,0,23,0,75,0,55,0,21,0\n14,0,6,0,59,0,54,0,57,0,49,0\n28,0,36,0,74,0,1,0,53,0,48,0\n15,0,8,0,35,0,62,0,41,0,25,0\n63,0,72,0,38,0,46,0,71,0,24,0\n37,0,70,0,9,0,4,0,31,0,69,0\n68,0,33,0,58,0,50,0,11,0,39,0\n27,0,64,0,47,0,26,0,32,0,20,0\n45,0,60,0,18,0,29,0,44,0,65,0\n52,0,19,0,16,0,40,0,10,0,2,0\n73,0,30,0,7,0,43,0,13,0,17,0\n42,0,5,0,3,0,66,0,34,0,56,0\n22,0,67,0,15,0,61,0,46,0,59,0\n26,0,62,0,1,0,14,0,68,0,23,0\n39,0,53,0,36,0,37,0,29,0,12,0\n2,0,55,0,35,0,8,0,18,0,64,0\n25,0,73,0,38,0,54,0,60,0,7,0\n58,0,63,0,43,0,47,0,72,0,69,0\n41,0,66,0,30,0,19,0,51,0,44,0\n33,0,45,0,65,0,56,0,10,0,9,0\n4,0,40,0,70,0,75,0,74,0,17,0\n27,0,49,0,52,0,34,0,28,0,31,0\n21,0,20,0,11,0,61,0,16,0,5,0\n48,0,6,0,71,0,67,0,3,0,50,0\n57,0,32,0,42,0,24,0,22,0,13,0\n43,0,60,0,12,0,46,0,19,0,18,0\n55,0,47,0,41,0,17,0,2,0,14,0\n10,0,31,0,75,0,44,0,53,0,34,0\n8,0,51,0,27,0,69,0,38,0,9,0\n71,0,73,0,58,0,30,0,28,0,68,0\n61,0,49,0,50,0,64,0,32,0,7,0\n23,0,42,0,13,0,16,0,39,0,74,0\n26,0,25,0,72,0,56,0,6,0,4,0\n48,0,54,0,40,0,45,0,20,0,3,0\n52,0,70,0,57,0,67,0,11,0,29,0\n63,0,35,0,1,0,21,0,15,0,37,0\n66,0,24,0,5,0,59,0,62,0,33,0\n65,0,22,0,75,0,36,0,50,0,47,0\n32,0,6,0,58,0,17,0,19,0,53,0\n46,0,9,0,7,0,20,0,23,0,54,0\n31,0,72,0,44,0,42,0,40,0,11,0\n15,0,63,0,16,0,57,0,30,0,34,0\n14,0,62,0,10,0,51,0,67,0,43,0\n26,0,45,0,28,0,22,0,2,0,3,0\n60,0,37,0,13,0,27,0,12,0,59,0\n8,0,39,0,69,0,71,0,18,0,21,0\n5,0,48,0,64,0,29,0,1,0,4,0\n66,0,52,0,25,0,74,0,55,0,65,0\n68,0,24,0,73,0,36,0,41,0,56,0\n49,0,33,0,35,0,38,0,61,0,70,0\n30,0,72,0,46,0,62,0,27,0,15,0\n6,0,37,0,45,0,75,0,13,0,14,0\n12,0,11,0,10,0,42,0,7,0,69,0\n52,0,8,0,60,0,50,0,4,0,66,0\n55,0,36,0,20,0,32,0,31,0,19,0\n63,0,51,0,2,0,53,0,29,0,49,0\n3,0,25,0,70,0,68,0,44,0,38,0\n35,0,41,0,58,0,48,0,57,0,26,0\n17,0,59,0,47,0,18,0,34,0,23,0\n1,0,43,0,71,0,61,0,40,0,22,0\n24,0,56,0,33,0,28,0,21,0,16,0\n64,0,67,0,73,0,9,0,5,0,74,0\n54,0,39,0,32,0,65,0,69,0,2,0\n62,0,42,0,46,0,25,0,55,0,49,0\n38,0,45,0,15,0,12,0,48,0,66,0\n13,0,6,0,68,0,47,0,18,0,63,0\n14,0,56,0,20,0,23,0,71,0,52,0\n21,0,53,0,31,0,73,0,41,0,57,0\n3,0,7,0,75,0,19,0,27,0,1,0\n60,0,59,0,9,0,40,0,8,0,58,0\n51,0,61,0,11,0,65,0,28,0,37,0\n67,0,24,0,36,0,4,0,30,0,35,0\n44,0,16,0,54,0,74,0,26,0,29,0\n50,0,5,0,22,0,10,0,70,0,17,0\n72,0,43,0,34,0,39,0,64,0,33,0\n69,0,59,0,41,0,45,0,56,0,23,0\n19,0,11,0,73,0,14,0,25,0,48,0\n65,0,61,0,31,0,38,0,62,0,30,0\n16,0,18,0,42,0,9,0,58,0,51,0\n71,0,3,0,29,0,32,0,35,0,47,0\n49,0,15,0,28,0,36,0,5,0,75,0\n68,0,52,0,74,0,43,0,21,0,6,0\n17,0,40,0,39,0,53,0,24,0,27,0\n2,0,1,0,34,0,70,0,20,0,60,0\n67,0,57,0,55,0,50,0,37,0,44,0\n66,0,13,0,46,0,64,0,10,0,26,0\n33,0,4,0,12,0,63,0,22,0,54,0\n7,0,72,0,51,0,8,0,36,0,45,0\n62,0,35,0,43,0,11,0,27,0,9,0\n39,0,49,0,71,0,1,0,52,0,65,0\n20,0,15,0,53,0,68,0,42,0,50,0\n74,0,19,0,56,0,61,0,34,0,47,0\n46,0,44,0,69,0,48,0,33,0,13,0\n67,0,12,0,28,0,8,0,32,0,17,0\n60,0,25,0,40,0,26,0,5,0,63,0\n64,0,2,0,30,0,38,0,57,0,75,0\n18,0,29,0,66,0,37,0,41,0,7,0\n3,0,54,0,4,0,21,0,58,0,14,0\n10,0,22,0,23,0,31,0,6,0,24,0\n73,0,16,0,55,0,59,0,72,0,70,0\n5,0,17,0,71,0,9,0,19,0,42,0\n47,0,48,0,51,0,12,0,52,0,34,0\n29,0,8,0,57,0,27,0,46,0,56,0\n50,0,21,0,26,0,43,0,38,0,18,0\n3,0,62,0,53,0,22,0,64,0,4,0\n33,0,37,0,2,0,23,0,25,0,30,0\n15,0,6,0,65,0,28,0,7,0,40,0\n44,0,74,0,20,0,14,0,35,0,72,0\n59,0,63,0,66,0,32,0,36,0,70,0\n11,0,24,0,55,0,54,0,73,0,1,0\n67,0,69,0,75,0,68,0,60,0,16,0\n58,0,10,0,13,0,49,0,41,0,31,0\n39,0,61,0,57,0,45,0,5,0,51,0\n12,0,3,0,30,0,25,0,9,0,6,0\n43,0,22,0,56,0,70,0,35,0,48,0\n19,0,23,0,64,0,63,0,65,0,11,0\n69,0,55,0,29,0,15,0,26,0,73,0\n42,0,27,0,14,0,18,0,33,0,36,0\n7,0,24,0,44,0,53,0,52,0,58,0\n40,0,62,0,67,0,2,0,21,0,13,0\n32,0,68,0,49,0,45,0,72,0,4,0\n17,0,37,0,31,0,74,0,71,0,60,0\n16,0,34,0,41,0,1,0,46,0,50,0\n75,0,54,0,47,0,61,0,8,0,66,0\n39,0,10,0,59,0,28,0,38,0,20,0\n27,0,48,0,58,0,65,0,70,0,23,0\n53,0,13,0,18,0,56,0,3,0,49,0\n24,0,45,0,29,0,31,0,25,0,67,0\n32,0,12,0,46,0,52,0,5,0,73,0\n40,0,74,0,33,0,51,0,68,0,55,0\n57,0,37,0,4,0,20,0,47,0,43,0\n7,0,8,0,26,0,39,0,63,0,30,0\n35,0,11,0,16,0,6,0,66,0,17,0\n22,0,69,0,34,0,14,0,36,0,38,0\n28,0,50,0,54,0,19,0,62,0,72,0\n9,0,61,0,1,0,59,0,2,0,44,0\n60,0,21,0,10,0,64,0,15,0,71,0\n41,0,75,0,27,0,42,0,63,0,67,0\n23,0,49,0,66,0,43,0,40,0,73,0\n25,0,29,0,34,0,20,0,58,0,22,0\n17,0,65,0,26,0,57,0,33,0,53,0\n45,0,54,0,52,0,30,0,18,0,5,0\n60,0,61,0,36,0,6,0,55,0,10,0\n51,0,38,0,35,0,13,0,1,0,11,0\n28,0,47,0,70,0,42,0,41,0,64,0\n4,0,14,0,71,0,16,0,59,0,7,0\n24,0,74,0,2,0,3,0,69,0,15,0\n9,0,48,0,21,0,32,0,75,0,72,0\n19,0,37,0,68,0,46,0,8,0,31,0\n62,0,56,0,50,0,44,0,39,0,12,0\n"
  },
  {
    "path": "schedules/75_2.csv",
    "content": "1,0,36,0,32,0,45,0,66,0,41,0\n33,0,23,0,61,0,65,0,37,0,35,0\n7,0,16,0,59,0,20,0,72,0,55,0\n67,0,34,0,19,0,60,0,46,0,58,0\n62,0,53,0,8,0,29,0,6,0,75,0\n24,0,12,0,49,0,31,0,47,0,13,0\n63,0,25,0,70,0,11,0,74,0,57,0\n52,0,14,0,15,0,40,0,44,0,54,0\n22,0,42,0,2,0,50,0,28,0,26,0\n73,0,30,0,68,0,51,0,64,0,27,0\n38,0,17,0,9,0,10,0,18,0,43,0\n71,0,3,0,21,0,39,0,48,0,69,0\n56,0,4,0,55,0,5,0,53,0,31,0\n72,0,41,0,46,0,54,0,74,0,12,0\n59,0,11,0,23,0,34,0,47,0,32,0\n73,0,28,0,24,0,36,0,25,0,8,0\n18,0,50,0,7,0,63,0,33,0,30,0\n57,0,45,0,48,0,43,0,49,0,64,0\n39,0,6,0,13,0,4,0,2,0,68,0\n16,0,9,0,27,0,22,0,40,0,67,0\n10,0,37,0,75,0,66,0,52,0,60,0\n51,0,21,0,44,0,70,0,29,0,65,0\n20,0,71,0,19,0,14,0,42,0,56,0\n1,0,5,0,38,0,58,0,3,0,61,0\n26,0,15,0,35,0,69,0,17,0,62,0\n"
  },
  {
    "path": "schedules/75_3.csv",
    "content": "17,0,49,0,61,0,44,0,60,0,22,0\n45,0,38,0,3,0,26,0,2,0,27,0\n71,0,74,0,15,0,69,0,51,0,55,0\n75,0,24,0,6,0,72,0,8,0,41,0\n56,0,63,0,14,0,11,0,70,0,12,0\n65,0,4,0,52,0,23,0,28,0,57,0\n67,0,31,0,73,0,50,0,20,0,25,0\n19,0,64,0,13,0,54,0,1,0,7,0\n53,0,10,0,21,0,35,0,36,0,62,0\n37,0,48,0,16,0,18,0,34,0,40,0\n66,0,42,0,39,0,46,0,9,0,29,0\n30,0,59,0,5,0,33,0,47,0,32,0\n43,0,22,0,23,0,58,0,68,0,50,0\n1,1,69,0,26,0,20,1,17,0,57,0\n25,0,60,0,55,0,10,1,24,0,3,0\n62,0,54,0,2,0,31,0,11,0,71,0\n4,0,49,0,67,0,38,0,6,0,35,0\n53,0,14,0,18,0,51,0,59,0,39,0\n33,0,41,0,42,0,37,0,52,0,64,0\n66,0,70,0,72,0,5,0,7,0,15,0\n44,0,30,0,43,0,46,0,63,0,34,0\n75,0,19,0,9,0,28,0,56,0,32,0\n29,0,45,0,36,0,48,0,13,0,73,0\n27,0,68,0,47,0,12,0,16,0,61,0\n58,0,40,0,8,0,74,0,21,0,65,0\n11,0,33,0,7,0,53,0,49,0,25,0\n2,0,57,0,6,0,10,0,14,0,64,0\n20,0,9,0,3,0,59,0,22,0,4,0\n39,0,26,0,73,0,23,0,62,0,24,0\n15,0,12,0,1,0,75,0,52,0,45,0\n34,0,8,0,29,0,5,0,54,0,69,0\n41,0,32,0,48,0,67,0,21,0,66,0\n51,0,27,0,37,0,60,0,58,0,63,0\n46,0,50,0,35,0,16,0,55,0,19,0\n36,0,70,0,61,0,38,0,74,0,30,0\n17,0,28,0,68,0,18,0,42,0,71,0\n56,0,31,0,65,0,13,0,43,0,47,0\n44,0,72,0,20,0,40,0,1,0,10,0\n"
  },
  {
    "path": "schedules/75_4.csv",
    "content": "12,0,49,0,69,0,62,0,71,0,39,0\n28,0,11,0,42,0,31,0,38,0,22,0\n40,0,66,0,32,0,43,0,8,0,16,0\n46,0,2,0,17,0,60,0,6,0,4,0\n25,0,29,0,52,0,20,0,74,0,10,0\n36,0,44,0,73,0,14,0,72,0,57,0\n19,0,24,0,26,0,30,0,33,0,9,0\n70,0,48,0,47,0,45,0,58,0,55,0\n35,0,67,0,1,0,13,0,61,0,56,0\n50,0,27,0,34,0,5,0,64,0,21,0\n65,0,15,0,41,0,23,0,54,0,63,0\n7,0,18,0,51,0,59,0,68,0,37,0\n3,0,53,0,60,0,75,0,32,0,36,0\n10,0,73,0,4,0,12,0,48,0,11,0\n71,0,9,0,72,0,31,0,67,0,46,0\n38,0,30,0,39,0,50,0,61,0,20,0\n52,0,42,0,41,0,57,0,8,0,70,0\n22,0,15,0,24,0,59,0,5,0,49,0\n19,0,56,0,34,0,16,0,65,0,7,0\n35,0,37,0,75,0,66,0,47,0,69,0\n68,0,74,0,14,0,62,0,26,0,64,0\n18,0,53,0,45,0,2,0,21,0,23,0\n43,0,63,0,1,0,3,0,6,0,55,0\n51,0,28,0,17,0,58,0,25,0,44,0\n33,0,29,0,40,0,54,0,13,0,27,0\n32,0,11,0,61,0,37,0,46,0,34,0\n36,0,24,0,42,0,4,0,65,0,50,0\n57,0,5,0,23,0,74,0,19,0,35,0\n38,0,62,0,6,0,75,0,67,0,48,0\n56,0,64,0,31,0,18,0,15,0,52,0\n43,0,20,0,47,0,73,0,13,0,28,0\n72,0,33,0,21,0,41,0,58,0,60,0\n68,0,63,0,39,0,29,0,70,0,9,0\n16,0,14,0,27,0,3,0,10,0,17,0\n69,0,25,0,59,0,26,0,40,0,45,0\n30,0,7,0,49,0,2,0,55,0,44,0\n22,0,54,0,71,0,53,0,66,0,1,0\n12,0,8,0,46,0,51,0,75,0,65,0\n50,0,73,0,62,0,29,0,18,0,32,0\n63,0,5,0,13,0,52,0,14,0,11,0\n56,0,48,0,27,0,69,0,28,0,60,0\n35,0,55,0,20,0,42,0,33,0,15,0\n37,0,44,0,74,0,41,0,53,0,24,0\n9,0,61,0,6,0,66,0,7,0,45,0\n40,0,51,0,10,0,38,0,23,0,34,0\n19,0,12,0,54,0,70,0,25,0,43,0\n16,0,22,0,4,0,30,0,67,0,64,0\n59,0,2,0,3,0,72,0,39,0,47,0\n31,0,58,0,49,0,68,0,1,0,57,0\n8,0,21,0,17,0,26,0,36,0,71,0\n"
  },
  {
    "path": "schedules/75_5.csv",
    "content": "21,0,20,0,10,0,1,0,44,0,65,0\n36,0,8,0,48,0,9,0,61,0,6,0\n72,0,50,0,75,0,18,0,62,0,68,0\n71,0,70,0,16,0,73,0,57,0,59,0\n7,0,54,0,2,0,55,0,39,0,43,0\n42,0,3,0,32,0,66,0,12,0,13,0\n47,0,38,0,56,0,24,0,15,0,34,0\n33,0,41,0,64,0,45,0,63,0,46,0\n35,0,30,0,4,0,51,0,53,0,67,0\n19,0,31,0,5,0,25,0,26,0,60,0\n69,0,74,0,37,0,52,0,22,0,23,0\n40,0,27,0,29,0,17,0,14,0,49,0\n58,0,11,0,70,0,28,0,75,0,34,0\n7,0,13,0,24,0,72,0,8,0,20,0\n38,0,65,0,57,0,39,0,35,0,18,0\n26,0,50,0,73,0,66,0,2,0,4,0\n15,0,12,0,52,0,31,0,71,0,63,0\n37,0,14,0,46,0,9,0,47,0,32,0\n5,0,53,0,17,0,3,0,55,0,6,0\n58,0,22,0,61,0,45,0,19,0,54,0\n28,0,68,0,1,0,48,0,74,0,29,0\n43,0,44,0,67,0,64,0,16,0,49,0\n59,0,30,0,60,0,21,0,27,0,69,0\n36,0,10,0,40,0,56,0,41,0,11,0\n23,0,25,0,51,0,62,0,42,0,33,0\n7,1,63,0,9,0,75,1,5,0,38,0\n14,1,22,0,48,0,71,0,3,0,50,0\n68,0,17,0,24,0,46,0,19,0,2,0\n57,0,13,0,27,0,52,0,4,0,61,0\n53,0,34,0,72,0,66,0,45,0,40,0\n42,0,47,0,73,0,31,0,41,0,28,0\n25,0,55,0,65,0,11,0,59,0,37,0\n39,0,15,0,69,0,51,0,10,0,49,0\n16,0,58,0,35,0,20,0,26,0,32,0\n21,0,67,0,29,0,70,0,12,0,36,0\n33,0,8,0,60,0,54,0,44,0,56,0\n1,0,6,0,64,0,23,0,30,0,18,0\n62,0,43,0,19,0,74,0,14,0,65,0\n51,0,45,0,48,0,11,0,47,0,2,0\n3,0,31,0,75,0,37,0,40,0,39,0\n57,0,9,0,66,0,22,0,17,0,67,0\n68,0,41,0,44,0,7,0,71,0,69,0\n60,0,4,0,70,0,42,0,64,0,38,0\n13,0,43,0,59,0,1,0,5,0,58,0\n49,0,6,0,54,0,63,0,32,0,72,0\n74,0,20,0,33,0,34,0,36,0,55,0\n56,0,52,0,26,0,53,0,21,0,18,0\n8,0,73,0,62,0,27,0,35,0,15,0\n10,0,24,0,29,0,30,0,61,0,25,0\n23,0,46,0,16,0,28,0,12,0,50,0\n14,0,54,0,66,0,64,0,68,0,59,0\n32,0,19,0,1,0,4,0,75,0,41,0\n52,0,2,0,49,0,65,0,5,0,33,0\n3,0,18,0,60,0,45,0,73,0,7,0\n9,0,40,0,15,0,55,0,58,0,21,0\n12,0,22,0,53,0,43,0,25,0,38,0\n20,0,30,0,57,0,37,0,62,0,48,0\n34,0,44,0,61,0,50,0,31,0,51,0\n17,0,28,0,71,0,10,0,72,0,35,0\n39,0,63,0,74,0,47,0,8,0,70,0\n67,0,11,0,23,0,26,0,27,0,24,0\n13,0,6,0,56,0,69,0,29,0,46,0\n36,0,42,0,75,0,16,0,7,0,14,0\n"
  },
  {
    "path": "schedules/75_6.csv",
    "content": "64,0,57,0,20,0,2,0,7,0,53,0\n17,0,62,0,19,0,75,0,42,0,15,0\n22,0,10,0,56,0,16,0,24,0,38,0\n33,0,49,0,71,0,55,0,59,0,18,0\n58,0,54,0,73,0,47,0,52,0,27,0\n74,0,70,0,36,0,29,0,28,0,48,0\n14,0,35,0,34,0,67,0,4,0,13,0\n61,0,32,0,46,0,26,0,3,0,37,0\n30,0,1,0,45,0,25,0,72,0,41,0\n63,0,60,0,69,0,51,0,44,0,40,0\n5,0,31,0,66,0,12,0,50,0,11,0\n68,0,65,0,8,0,21,0,43,0,39,0\n23,0,15,0,20,0,9,0,6,0,59,0\n16,0,17,0,48,0,58,0,34,0,61,0\n75,0,35,0,38,0,49,0,70,0,64,0\n44,0,3,0,29,0,53,0,27,0,10,0\n72,0,36,0,11,0,46,0,4,0,19,0\n32,0,54,0,21,0,28,0,66,0,40,0\n1,0,62,0,51,0,57,0,8,0,23,0\n22,0,68,0,14,0,63,0,9,0,41,0\n42,0,60,0,33,0,5,0,30,0,24,0\n39,0,50,0,25,0,67,0,73,0,71,0\n55,0,12,0,47,0,6,0,7,0,74,0\n13,0,26,0,69,0,43,0,31,0,45,0\n18,0,2,0,52,0,37,0,65,0,56,0\n41,0,64,0,16,0,46,0,54,0,23,0\n3,0,30,0,58,0,11,0,68,0,51,0\n17,0,28,0,71,0,35,0,10,0,72,0\n21,0,47,0,9,0,70,0,50,0,62,0\n53,0,6,0,4,0,24,0,39,0,31,0\n34,0,12,0,40,0,1,0,20,0,18,0\n44,0,45,0,8,0,56,0,7,0,66,0\n5,0,52,0,75,0,36,0,13,0,32,0\n19,0,57,0,65,0,14,0,29,0,69,0\n2,0,43,0,63,0,25,0,15,0,49,0\n61,0,60,0,59,0,74,0,73,0,38,0\n22,0,37,0,55,0,42,0,67,0,27,0\n26,0,48,0,23,0,33,0,53,0,35,0\n24,0,44,0,13,0,50,0,1,0,54,0\n7,0,32,0,51,0,16,0,31,0,70,0\n62,0,18,0,6,0,68,0,25,0,69,0\n71,0,52,0,43,0,12,0,38,0,14,0\n11,0,17,0,49,0,73,0,22,0,8,0\n55,0,63,0,57,0,3,0,39,0,36,0\n60,0,29,0,41,0,58,0,21,0,56,0\n40,0,26,0,47,0,72,0,42,0,2,0\n74,0,10,0,15,0,34,0,33,0,37,0\n4,0,61,0,5,0,65,0,45,0,20,0\n75,0,30,0,46,0,59,0,67,0,28,0\n66,0,64,0,27,0,19,0,48,0,9,0\n58,0,23,0,25,0,36,0,12,0,44,0\n16,0,72,0,50,0,57,0,60,0,52,0\n68,0,31,0,37,0,49,0,47,0,1,0\n13,0,38,0,62,0,33,0,40,0,65,0\n70,0,59,0,69,0,56,0,54,0,5,0\n74,0,4,0,21,0,22,0,64,0,30,0\n8,0,10,0,20,0,32,0,41,0,19,0\n28,0,15,0,14,0,27,0,61,0,39,0\n24,0,2,0,45,0,46,0,17,0,55,0\n29,0,11,0,35,0,6,0,42,0,63,0\n26,0,73,0,9,0,51,0,34,0,75,0\n67,0,43,0,7,0,18,0,48,0,3,0\n53,0,66,0,1,0,71,0,22,0,70,0\n56,0,72,0,12,0,64,0,68,0,61,0\n25,0,14,0,31,0,54,0,20,0,60,0\n35,0,47,0,65,0,15,0,30,0,16,0\n73,0,37,0,40,0,23,0,24,0,19,0\n51,0,36,0,59,0,45,0,10,0,21,0\n42,0,69,0,3,0,52,0,74,0,66,0\n9,0,38,0,39,0,2,0,11,0,32,0\n5,0,49,0,67,0,29,0,62,0,26,0\n4,0,27,0,7,0,33,0,17,0,50,0\n75,0,18,0,8,0,58,0,53,0,63,0\n6,0,48,0,46,0,57,0,71,0,13,0\n43,0,28,0,41,0,34,0,44,0,55,0\n"
  },
  {
    "path": "schedules/75_7.csv",
    "content": "75,0,1,0,20,0,67,0,39,0,69,0\n4,0,32,0,56,0,53,0,42,0,9,0\n17,0,33,0,12,0,73,0,48,0,41,0\n51,0,59,0,46,0,74,0,36,0,21,0\n52,0,43,0,23,0,28,0,37,0,30,0\n26,0,55,0,22,0,45,0,11,0,72,0\n3,0,58,0,60,0,47,0,66,0,44,0\n34,0,27,0,63,0,31,0,14,0,10,0\n35,0,7,0,25,0,65,0,57,0,38,0\n40,0,6,0,8,0,64,0,49,0,5,0\n29,0,2,0,61,0,16,0,24,0,18,0\n70,0,50,0,13,0,62,0,68,0,54,0\n71,0,19,0,45,0,15,0,33,0,28,0\n72,0,3,0,4,0,74,0,41,0,27,0\n53,0,35,0,11,0,75,0,59,0,34,0\n65,0,30,0,5,0,48,0,26,0,56,0\n51,0,29,0,6,0,31,0,25,0,43,0\n2,0,13,0,40,0,58,0,39,0,10,0\n66,0,54,0,19,0,14,0,16,0,73,0\n38,0,46,0,70,0,63,0,55,0,9,0\n61,0,62,0,1,0,15,0,7,0,23,0\n50,0,69,0,22,0,64,0,12,0,47,0\n8,0,42,0,18,0,67,0,44,0,36,0\n20,0,32,0,21,0,52,0,57,0,60,0\n68,0,71,0,24,0,37,0,49,0,17,0\n28,1,2,0,66,0,48,1,75,0,25,0\n34,0,72,0,16,0,6,1,23,0,13,0\n26,0,74,0,58,0,70,0,73,0,29,0\n22,0,18,0,38,0,30,0,41,0,51,0\n44,0,31,0,20,0,7,0,4,0,54,0\n35,0,21,0,12,0,56,0,67,0,55,0\n11,0,61,0,42,0,71,0,60,0,64,0\n59,0,10,0,9,0,45,0,8,0,50,0\n40,0,15,0,65,0,52,0,68,0,36,0\n27,0,43,0,49,0,1,0,19,0,53,0\n47,0,33,0,39,0,37,0,32,0,46,0\n14,0,57,0,5,0,62,0,69,0,24,0\n63,0,21,0,28,0,17,0,3,0,42,0\n64,0,25,0,13,0,20,0,55,0,41,0\n71,0,50,0,36,0,23,0,26,0,4,0\n58,0,16,0,53,0,48,0,67,0,45,0\n34,0,47,0,2,0,56,0,54,0,52,0\n75,0,57,0,12,0,6,0,37,0,70,0\n31,0,1,0,9,0,11,0,33,0,3,0\n29,0,68,0,32,0,44,0,69,0,27,0\n24,0,65,0,51,0,60,0,19,0,10,0\n62,0,63,0,72,0,18,0,59,0,40,0\n5,0,43,0,74,0,66,0,61,0,38,0\n73,0,15,0,22,0,39,0,49,0,35,0\n30,0,14,0,7,0,17,0,8,0,46,0\n23,0,47,0,31,0,42,0,55,0,75,0\n44,0,9,0,71,0,65,0,21,0,34,0\n25,0,36,0,28,0,27,0,11,0,16,0\n18,0,48,0,74,0,19,0,32,0,13,0\n6,0,35,0,41,0,52,0,63,0,24,0\n57,0,30,0,68,0,45,0,64,0,1,0\n49,0,70,0,66,0,33,0,56,0,20,0\n26,0,39,0,8,0,3,0,43,0,12,0\n67,0,14,0,4,0,61,0,59,0,22,0\n37,0,29,0,10,0,38,0,62,0,53,0\n73,0,50,0,60,0,2,0,72,0,46,0\n17,0,54,0,51,0,58,0,5,0,15,0\n7,0,69,0,48,0,40,0,70,0,71,0\n56,0,28,0,39,0,31,0,68,0,74,0\n9,0,26,0,6,0,20,0,27,0,61,0\n53,0,66,0,8,0,57,0,63,0,22,0\n42,0,52,0,10,0,1,0,12,0,72,0\n18,0,37,0,34,0,15,0,25,0,50,0\n47,0,11,0,5,0,7,0,19,0,21,0\n73,0,3,0,36,0,45,0,13,0,24,0\n33,0,64,0,44,0,51,0,2,0,14,0\n60,0,23,0,38,0,67,0,40,0,17,0\n41,0,75,0,65,0,16,0,62,0,32,0\n54,0,55,0,49,0,30,0,59,0,29,0\n46,0,43,0,69,0,4,0,58,0,35,0\n66,0,11,0,10,0,6,0,68,0,18,0\n14,0,25,0,39,0,21,0,53,0,70,0\n23,0,27,0,45,0,5,0,2,0,12,0\n24,0,64,0,48,0,15,0,31,0,38,0\n20,0,62,0,73,0,34,0,51,0,28,0\n67,0,30,0,74,0,71,0,63,0,47,0\n46,0,44,0,52,0,49,0,75,0,26,0\n17,0,56,0,1,0,29,0,13,0,22,0\n41,0,57,0,19,0,9,0,58,0,36,0\n37,0,69,0,72,0,54,0,8,0,65,0\n42,0,16,0,59,0,43,0,7,0,33,0\n61,0,32,0,40,0,35,0,3,0,50,0\n55,0,60,0,48,0,4,0,28,0,6,0\n"
  },
  {
    "path": "schedules/75_8.csv",
    "content": "61,0,25,0,12,0,52,0,56,0,71,0\n15,0,49,0,46,0,64,0,9,0,33,0\n4,0,59,0,68,0,1,0,5,0,69,0\n42,0,67,0,23,0,58,0,44,0,6,0\n55,0,16,0,37,0,21,0,48,0,32,0\n75,0,26,0,43,0,39,0,29,0,41,0\n66,0,14,0,20,0,72,0,54,0,62,0\n50,0,51,0,30,0,31,0,70,0,53,0\n34,0,19,0,8,0,57,0,13,0,45,0\n2,0,18,0,17,0,60,0,73,0,63,0\n11,0,47,0,24,0,28,0,38,0,65,0\n74,0,7,0,3,0,35,0,36,0,40,0\n22,0,61,0,20,0,10,0,27,0,44,0\n23,0,46,0,43,0,37,0,4,0,25,0\n72,0,21,0,12,0,49,0,19,0,6,0\n66,0,8,0,70,0,52,0,33,0,17,0\n18,0,68,0,71,0,39,0,16,0,51,0\n38,0,62,0,57,0,63,0,48,0,7,0\n56,0,40,0,42,0,24,0,26,0,69,0\n60,0,29,0,54,0,28,0,3,0,50,0\n2,0,53,0,15,0,1,0,75,0,27,0\n67,0,65,0,5,0,22,0,74,0,13,0\n10,0,31,0,45,0,58,0,64,0,35,0\n30,0,32,0,9,0,11,0,59,0,14,0\n73,0,36,0,34,0,41,0,47,0,55,0\n72,0,8,0,24,0,7,0,4,0,50,0\n69,0,39,0,48,0,23,0,6,0,28,0\n71,0,65,0,62,0,19,0,60,0,15,0\n5,0,35,0,49,0,29,0,37,0,38,0\n2,0,52,0,11,0,74,0,31,0,44,0\n42,0,1,0,25,0,70,0,32,0,34,0\n67,0,33,0,21,0,30,0,61,0,75,0\n41,0,17,0,27,0,68,0,40,0,45,0\n64,0,47,0,18,0,56,0,3,0,20,0\n57,0,10,0,55,0,43,0,59,0,54,0\n46,0,12,0,58,0,14,0,22,0,53,0\n13,0,51,0,73,0,66,0,9,0,26,0\n63,0,36,0,49,0,16,0,24,0,28,0\n71,0,44,0,69,0,34,0,30,0,37,0\n5,0,2,0,7,0,20,0,41,0,32,0\n31,0,56,0,65,0,75,0,57,0,68,0\n29,0,4,0,14,0,18,0,27,0,42,0\n3,0,39,0,45,0,55,0,62,0,53,0\n64,0,59,0,22,0,40,0,73,0,52,0\n43,0,38,0,72,0,67,0,51,0,15,0\n54,0,6,0,74,0,25,0,47,0,8,0\n12,0,10,0,13,0,36,0,33,0,48,0\n19,0,16,0,17,0,50,0,23,0,9,0\n58,0,26,0,11,0,60,0,70,0,21,0\n35,0,1,0,61,0,63,0,66,0,46,0\n65,0,20,0,42,0,49,0,51,0,59,0\n32,0,43,0,31,0,3,0,27,0,24,0\n75,0,38,0,69,0,74,0,64,0,55,0\n41,0,28,0,62,0,30,0,8,0,12,0\n71,0,73,0,45,0,54,0,23,0,11,0\n72,0,16,0,47,0,10,0,29,0,46,0\n44,0,17,0,26,0,4,0,35,0,48,0\n18,0,36,0,53,0,6,0,57,0,52,0\n67,0,63,0,40,0,70,0,14,0,19,0\n15,0,34,0,56,0,50,0,66,0,5,0\n39,0,60,0,33,0,1,0,22,0,7,0\n61,0,37,0,58,0,68,0,13,0,2,0\n9,0,21,0,27,0,25,0,69,0,35,0\n73,0,4,0,75,0,16,0,12,0,3,0\n54,0,30,0,52,0,19,0,46,0,38,0\n74,0,29,0,48,0,53,0,20,0,34,0\n28,0,33,0,55,0,31,0,5,0,40,0\n37,0,64,0,11,0,72,0,42,0,63,0\n9,0,22,0,68,0,47,0,71,0,43,0\n26,0,57,0,50,0,49,0,2,0,67,0\n10,0,1,0,56,0,62,0,17,0,6,0\n39,0,61,0,32,0,36,0,8,0,65,0\n60,0,58,0,59,0,25,0,66,0,41,0\n44,0,14,0,7,0,45,0,21,0,51,0\n13,0,70,0,24,0,18,0,15,0,23,0\n68,0,50,0,20,0,33,0,73,0,38,0\n71,0,6,0,46,0,55,0,27,0,26,0\n11,0,4,0,62,0,40,0,61,0,34,0\n48,0,52,0,3,0,72,0,65,0,58,0\n53,0,67,0,59,0,47,0,7,0,37,0\n23,0,51,0,8,0,60,0,2,0,64,0\n49,0,14,0,69,0,17,0,31,0,13,0\n66,0,32,0,28,0,19,0,18,0,75,0\n15,0,41,0,35,0,22,0,42,0,54,0\n39,0,30,0,25,0,63,0,5,0,10,0\n45,0,56,0,70,0,43,0,74,0,16,0\n44,0,9,0,1,0,57,0,24,0,12,0\n36,0,21,0,59,0,29,0,17,0,71,0\n47,0,50,0,32,0,62,0,58,0,69,0\n41,0,46,0,18,0,48,0,31,0,67,0\n25,0,3,0,19,0,51,0,33,0,11,0\n42,0,60,0,5,0,16,0,61,0,53,0\n66,0,6,0,22,0,45,0,30,0,24,0\n29,0,55,0,63,0,44,0,68,0,8,0\n10,0,23,0,75,0,34,0,52,0,49,0\n40,0,43,0,13,0,20,0,21,0,1,0\n2,0,38,0,9,0,36,0,4,0,56,0\n64,0,27,0,7,0,12,0,54,0,65,0\n15,0,74,0,37,0,28,0,26,0,14,0\n70,0,35,0,57,0,39,0,73,0,72,0\n"
  },
  {
    "path": "schedules/75_9.csv",
    "content": "51,0,28,0,18,0,69,0,75,0,24,0\n35,0,1,0,53,0,72,0,19,0,25,0\n48,0,27,0,3,0,37,0,59,0,44,0\n60,0,46,0,26,0,23,0,39,0,61,0\n6,0,21,0,2,0,30,0,7,0,45,0\n63,0,14,0,52,0,5,0,32,0,71,0\n56,0,8,0,41,0,67,0,29,0,50,0\n55,0,66,0,9,0,22,0,73,0,65,0\n64,0,4,0,43,0,62,0,10,0,70,0\n16,0,57,0,68,0,42,0,31,0,47,0\n74,0,12,0,49,0,40,0,58,0,33,0\n15,0,20,0,11,0,34,0,36,0,13,0\n17,0,54,0,37,0,38,0,18,0,56,0\n23,0,53,0,67,0,29,0,45,0,63,0\n48,0,22,0,52,0,19,0,50,0,4,0\n73,0,59,0,57,0,51,0,46,0,32,0\n44,0,58,0,8,0,62,0,7,0,42,0\n10,0,26,0,16,0,21,0,9,0,35,0\n13,0,5,0,75,0,30,0,17,0,68,0\n38,0,27,0,60,0,74,0,72,0,34,0\n43,0,1,0,20,0,2,0,31,0,69,0\n71,0,15,0,24,0,12,0,55,0,41,0\n70,0,54,0,40,0,14,0,11,0,61,0\n28,0,25,0,66,0,36,0,49,0,64,0\n6,0,39,0,33,0,47,0,3,0,65,0\n13,1,73,0,58,0,26,1,67,0,37,0\n29,1,52,0,21,0,27,0,35,0,31,0\n34,0,30,0,24,0,48,0,53,0,10,0\n75,0,61,0,15,0,1,0,44,0,45,0\n50,0,18,0,11,0,23,0,32,0,62,0\n25,0,57,0,74,0,65,0,43,0,17,0\n56,0,55,0,16,0,36,0,33,0,7,0\n20,0,70,0,63,0,47,0,12,0,28,0\n39,0,38,0,51,0,41,0,64,0,68,0\n49,0,9,0,42,0,19,0,14,0,6,0\n22,0,2,0,71,0,54,0,46,0,8,0\n72,0,40,0,4,0,59,0,5,0,66,0\n69,0,60,0,29,0,3,0,11,0,52,0\n61,0,55,0,53,0,20,0,21,0,57,0\n13,0,37,0,10,0,25,0,32,0,31,0\n62,0,45,0,24,0,74,0,56,0,73,0\n22,0,23,0,75,0,47,0,14,0,27,0\n28,0,67,0,19,0,59,0,39,0,7,0\n30,0,66,0,3,0,8,0,70,0,15,0\n17,0,58,0,46,0,36,0,4,0,41,0\n49,0,71,0,65,0,60,0,1,0,51,0\n33,0,48,0,35,0,5,0,54,0,42,0\n26,0,18,0,12,0,2,0,68,0,72,0\n34,0,69,0,16,0,6,0,50,0,64,0\n43,0,44,0,40,0,9,0,63,0,38,0\n75,0,36,0,19,0,3,0,21,0,74,0\n47,0,25,0,10,0,61,0,51,0,8,0\n45,0,31,0,56,0,11,0,66,0,58,0\n42,0,72,0,37,0,46,0,15,0,65,0\n67,0,62,0,71,0,27,0,30,0,20,0\n69,0,50,0,26,0,59,0,63,0,17,0\n54,0,4,0,23,0,16,0,1,0,24,0\n39,0,41,0,49,0,43,0,5,0,22,0\n35,0,73,0,44,0,33,0,2,0,70,0\n13,0,7,0,38,0,53,0,52,0,12,0\n9,0,57,0,40,0,29,0,64,0,18,0\n28,0,32,0,48,0,6,0,60,0,55,0\n68,0,14,0,46,0,34,0,1,0,62,0\n74,0,23,0,8,0,20,0,49,0,69,0\n63,0,31,0,33,0,22,0,59,0,24,0\n53,0,42,0,3,0,66,0,26,0,51,0\n58,0,2,0,15,0,57,0,50,0,38,0\n11,0,55,0,35,0,17,0,64,0,67,0\n25,0,21,0,14,0,41,0,18,0,44,0\n47,0,40,0,19,0,13,0,45,0,60,0\n27,0,36,0,12,0,10,0,5,0,6,0\n29,0,56,0,65,0,68,0,28,0,4,0\n43,0,52,0,73,0,16,0,48,0,61,0\n34,0,70,0,75,0,37,0,71,0,7,0\n30,0,39,0,32,0,72,0,54,0,9,0\n62,0,66,0,41,0,57,0,60,0,63,0\n45,0,59,0,42,0,22,0,18,0,10,0\n5,0,46,0,20,0,26,0,19,0,56,0\n3,0,55,0,2,0,40,0,23,0,68,0\n27,0,15,0,4,0,33,0,69,0,53,0\n1,0,39,0,13,0,48,0,58,0,21,0\n61,0,28,0,74,0,30,0,9,0,37,0\n65,0,64,0,8,0,75,0,12,0,31,0\n67,0,36,0,54,0,44,0,52,0,47,0\n50,0,24,0,14,0,72,0,7,0,43,0\n38,0,73,0,25,0,71,0,11,0,6,0\n32,0,29,0,17,0,70,0,16,0,49,0\n35,0,51,0,19,0,34,0,23,0,58,0\n62,0,21,0,22,0,40,0,37,0,15,0\n33,0,68,0,52,0,66,0,10,0,46,0\n13,0,18,0,27,0,8,0,55,0,43,0\n7,0,64,0,47,0,74,0,26,0,48,0\n17,0,31,0,72,0,73,0,3,0,28,0\n30,0,44,0,11,0,4,0,51,0,49,0\n32,0,6,0,54,0,41,0,75,0,53,0\n45,0,71,0,69,0,36,0,35,0,57,0\n65,0,20,0,59,0,16,0,38,0,14,0\n29,0,1,0,61,0,42,0,12,0,50,0\n60,0,9,0,5,0,24,0,67,0,70,0\n34,0,39,0,56,0,2,0,25,0,63,0\n49,0,31,0,48,0,15,0,62,0,26,0\n23,0,33,0,71,0,28,0,21,0,43,0\n41,0,7,0,10,0,69,0,40,0,73,0\n30,0,47,0,29,0,38,0,46,0,55,0\n72,0,70,0,51,0,74,0,22,0,13,0\n17,0,34,0,9,0,8,0,52,0,45,0\n42,0,1,0,64,0,27,0,56,0,32,0\n59,0,60,0,68,0,25,0,54,0,58,0\n53,0,2,0,5,0,16,0,11,0,37,0\n12,0,3,0,4,0,57,0,14,0,67,0\n36,0,65,0,63,0,61,0,18,0,19,0\n75,0,50,0,20,0,35,0,39,0,66,0\n6,0,44,0,26,0,24,0,13,0,29,0\n"
  },
  {
    "path": "schedules/76_1.csv",
    "content": "36,0,43,0,19,0,57,0,54,0,47,0\n20,0,37,0,35,0,7,0,46,0,16,0\n55,0,31,0,12,0,45,0,63,0,27,0\n29,0,24,0,61,0,8,0,30,0,14,0\n34,0,40,0,66,0,22,0,76,0,42,0\n67,0,10,0,23,0,41,0,2,0,56,0\n32,0,6,0,39,0,71,0,9,0,4,0\n65,0,50,0,18,0,38,0,21,0,60,0\n15,0,51,0,74,0,62,0,28,0,3,0\n17,0,72,0,25,0,1,0,75,0,68,0\n58,0,69,0,26,0,13,0,49,0,5,0\n59,0,44,0,52,0,53,0,33,0,64,0\n70,0,73,0,6,1,48,0,11,0,4,1\n"
  },
  {
    "path": "schedules/76_10.csv",
    "content": "43,0,31,0,25,0,13,0,4,0,55,0\n32,0,18,0,63,0,75,0,1,0,45,0\n21,0,33,0,52,0,68,0,41,0,8,0\n59,0,58,0,60,0,37,0,53,0,40,0\n15,0,49,0,34,0,71,0,11,0,24,0\n10,0,2,0,70,0,30,0,74,0,73,0\n62,0,65,0,14,0,3,0,17,0,54,0\n22,0,28,0,20,0,57,0,27,0,67,0\n47,0,36,0,46,0,7,0,26,0,35,0\n51,0,66,0,44,0,5,0,6,0,23,0\n29,0,42,0,69,0,48,0,76,0,12,0\n16,0,72,0,9,0,56,0,38,0,64,0\n19,0,39,0,30,0,61,0,50,0,54,0\n31,0,75,0,37,0,14,0,2,0,20,0\n17,0,74,0,45,0,4,0,36,0,15,0\n55,0,1,0,22,0,34,0,65,0,44,0\n25,0,28,0,27,0,52,0,12,0,6,0\n73,0,9,0,41,0,66,0,43,0,58,0\n5,0,35,0,70,0,11,0,29,0,18,0\n56,0,26,0,68,0,67,0,59,0,32,0\n47,0,49,0,21,0,33,0,64,0,50,0\n48,0,57,0,8,0,13,0,7,0,60,0\n76,0,40,0,38,0,46,0,23,0,3,0\n39,0,71,0,69,0,63,0,10,0,53,0\n62,0,72,0,24,0,42,0,51,0,19,0\n61,0,25,0,18,0,16,0,20,0,41,0\n59,1,9,0,30,0,29,1,31,0,35,0\n32,0,60,0,66,0,36,0,49,0,12,0\n76,0,13,0,27,0,1,0,47,0,2,0\n45,0,68,0,50,0,65,0,43,0,38,0\n6,0,42,0,39,0,70,0,14,0,56,0\n26,0,3,0,8,0,28,0,16,0,24,0\n67,0,72,0,54,0,58,0,10,0,44,0\n51,0,53,0,11,0,61,0,73,0,46,0\n69,0,52,0,55,0,15,0,23,0,7,0\n75,0,17,0,71,0,40,0,22,0,64,0\n34,0,19,0,5,0,21,0,4,0,57,0\n63,0,48,0,74,0,33,0,37,0,62,0\n49,0,1,0,72,0,30,0,29,0,43,0\n25,0,50,0,46,0,8,0,58,0,14,0\n15,0,11,0,68,0,66,0,20,0,76,0\n35,0,42,0,52,0,38,0,32,0,2,0\n61,0,75,0,6,0,26,0,55,0,21,0\n65,0,67,0,7,0,5,0,63,0,40,0\n13,0,56,0,74,0,51,0,22,0,18,0\n9,0,23,0,54,0,17,0,53,0,27,0\n62,0,31,0,39,0,45,0,60,0,16,0\n34,0,48,0,64,0,10,0,3,0,36,0\n71,0,4,0,73,0,33,0,28,0,44,0\n70,0,19,0,41,0,37,0,47,0,69,0\n24,0,12,0,14,0,57,0,59,0,74,0\n63,0,21,0,35,0,25,0,15,0,54,0\n18,0,62,0,5,0,55,0,49,0,39,0\n29,0,68,0,2,0,51,0,34,0,40,0\n16,0,30,0,42,0,46,0,53,0,71,0\n7,0,27,0,4,0,66,0,64,0,37,0\n33,0,36,0,57,0,76,0,31,0,6,0\n23,0,72,0,22,0,45,0,48,0,26,0\n8,0,43,0,32,0,65,0,70,0,61,0\n28,0,10,0,75,0,24,0,50,0,9,0\n56,0,12,0,20,0,47,0,58,0,17,0\n60,0,1,0,38,0,41,0,67,0,69,0\n11,0,44,0,59,0,52,0,19,0,13,0\n3,0,21,0,42,0,73,0,27,0,18,0\n43,0,26,0,2,0,64,0,15,0,62,0\n50,0,53,0,34,0,32,0,31,0,72,0\n58,0,33,0,29,0,65,0,75,0,39,0\n1,0,6,0,24,0,7,0,68,0,17,0\n37,0,25,0,57,0,54,0,51,0,56,0\n76,0,19,0,67,0,74,0,35,0,8,0\n20,0,44,0,46,0,49,0,48,0,9,0\n38,0,30,0,55,0,36,0,28,0,11,0\n5,0,10,0,71,0,14,0,13,0,41,0\n66,0,70,0,3,0,22,0,63,0,52,0\n23,0,60,0,47,0,4,0,59,0,61,0\n73,0,45,0,40,0,69,0,16,0,12,0\n18,0,50,0,37,0,76,0,17,0,34,0\n32,0,64,0,58,0,28,0,19,0,74,0\n67,0,26,0,31,0,51,0,49,0,41,0\n7,0,36,0,14,0,44,0,72,0,21,0\n66,0,38,0,48,0,59,0,8,0,39,0\n27,0,75,0,24,0,73,0,60,0,5,0\n23,0,13,0,12,0,30,0,63,0,68,0\n4,0,65,0,35,0,20,0,42,0,10,0\n2,0,54,0,6,0,43,0,16,0,11,0\n15,0,9,0,70,0,1,0,40,0,57,0\n45,0,53,0,47,0,3,0,25,0,55,0\n61,0,62,0,52,0,29,0,71,0,56,0\n69,0,22,0,24,0,33,0,46,0,32,0\n51,0,20,0,26,0,34,0,63,0,8,0\n11,0,65,0,30,0,37,0,21,0,48,0\n41,0,7,0,59,0,42,0,15,0,28,0\n36,0,73,0,23,0,1,0,25,0,39,0\n17,0,49,0,10,0,52,0,57,0,16,0\n12,0,2,0,67,0,18,0,33,0,9,0\n64,0,19,0,60,0,55,0,46,0,68,0\n76,0,61,0,58,0,14,0,45,0,22,0\n4,0,74,0,6,0,29,0,50,0,3,0\n44,0,43,0,69,0,56,0,27,0,35,0\n13,0,66,0,72,0,75,0,70,0,62,0\n71,0,38,0,54,0,47,0,31,0,5,0\n40,0,26,0,18,0,53,0,57,0,19,0\n65,0,76,0,59,0,64,0,25,0,49,0\n39,0,14,0,52,0,4,0,51,0,30,0\n61,0,7,0,16,0,34,0,74,0,33,0\n29,0,45,0,37,0,13,0,24,0,67,0\n27,0,68,0,31,0,70,0,58,0,48,0\n20,0,21,0,32,0,23,0,43,0,71,0\n11,0,3,0,63,0,9,0,60,0,42,0\n1,0,66,0,56,0,28,0,54,0,46,0\n36,0,22,0,50,0,5,0,69,0,2,0\n12,0,53,0,44,0,38,0,15,0,75,0\n10,0,73,0,8,0,47,0,62,0,6,0\n35,0,55,0,41,0,17,0,72,0,40,0\n68,0,65,0,74,0,39,0,26,0,9,0\n70,0,51,0,28,0,60,0,21,0,76,0\n14,0,63,0,16,0,29,0,32,0,27,0\n13,0,64,0,42,0,34,0,69,0,58,0\n4,0,49,0,53,0,2,0,56,0,8,0\n38,0,22,0,19,0,25,0,10,0,7,0\n30,0,33,0,17,0,45,0,5,0,59,0\n3,0,37,0,12,0,35,0,71,0,1,0\n6,0,15,0,46,0,47,0,72,0,18,0\n44,0,61,0,40,0,66,0,24,0,31,0\n48,0,36,0,43,0,52,0,67,0,75,0\n41,0,57,0,11,0,62,0,23,0,50,0\n54,0,55,0,59,0,20,0,73,0,29,0\n"
  },
  {
    "path": "schedules/76_11.csv",
    "content": "31,0,39,0,4,0,54,0,76,0,2,0\n26,0,36,0,48,0,47,0,34,0,37,0\n12,0,38,0,63,0,62,0,15,0,50,0\n22,0,5,0,40,0,41,0,35,0,9,0\n3,0,73,0,53,0,23,0,46,0,66,0\n8,0,58,0,52,0,19,0,33,0,56,0\n16,0,64,0,57,0,27,0,6,0,24,0\n28,0,67,0,30,0,70,0,43,0,18,0\n69,0,71,0,32,0,20,0,14,0,1,0\n42,0,13,0,25,0,72,0,21,0,55,0\n49,0,65,0,10,0,60,0,61,0,68,0\n11,0,17,0,74,0,75,0,29,0,45,0\n51,0,44,0,66,0,7,0,59,0,62,0\n50,0,35,0,28,0,3,0,31,0,52,0\n20,0,47,0,27,0,41,0,12,0,56,0\n1,0,70,0,55,0,22,0,15,0,48,0\n36,0,68,0,42,0,16,0,19,0,58,0\n71,0,40,0,61,0,17,0,4,0,13,0\n54,0,43,0,64,0,8,0,25,0,73,0\n5,0,11,0,6,0,37,0,51,0,23,0\n45,0,38,0,49,0,44,0,26,0,57,0\n65,0,33,0,60,0,75,0,18,0,39,0\n24,0,74,0,2,0,9,0,63,0,69,0\n34,0,67,0,32,0,53,0,59,0,21,0\n29,0,14,0,7,0,76,0,46,0,10,0\n72,0,37,0,12,0,30,0,23,0,71,0\n13,1,40,0,47,0,73,1,45,0,42,0\n56,1,25,0,27,0,51,1,1,0,38,0\n2,0,44,0,18,0,35,0,61,0,70,0\n49,0,57,0,63,0,19,0,67,0,53,0\n7,0,8,0,9,0,6,0,65,0,52,0\n41,0,24,0,39,0,17,0,3,0,59,0\n22,0,32,0,29,0,68,0,64,0,33,0\n4,0,69,0,46,0,21,0,62,0,36,0\n75,0,30,0,14,0,34,0,5,0,31,0\n54,0,10,0,11,0,15,0,72,0,28,0\n20,0,58,0,48,0,66,0,50,0,60,0\n16,0,76,0,43,0,55,0,26,0,74,0\n51,0,70,0,71,0,38,0,57,0,9,0\n49,0,46,0,59,0,42,0,69,0,8,0\n56,0,7,0,23,0,39,0,63,0,68,0\n35,0,1,0,37,0,13,0,45,0,19,0\n29,0,52,0,62,0,30,0,73,0,47,0\n32,0,66,0,41,0,2,0,16,0,65,0\n6,0,17,0,60,0,25,0,36,0,74,0\n20,0,28,0,64,0,53,0,15,0,14,0\n21,0,40,0,48,0,11,0,12,0,18,0\n3,0,44,0,27,0,75,0,43,0,4,0\n72,0,58,0,26,0,22,0,31,0,24,0\n33,0,50,0,61,0,67,0,76,0,5,0\n10,0,55,0,6,0,54,0,34,0,35,0\n2,0,14,0,62,0,68,0,53,0,17,0\n69,0,28,0,12,0,60,0,39,0,51,0\n66,0,49,0,64,0,70,0,75,0,36,0\n31,0,18,0,38,0,32,0,13,0,46,0\n73,0,59,0,43,0,37,0,20,0,22,0\n45,0,67,0,33,0,7,0,55,0,16,0\n21,0,9,0,65,0,50,0,27,0,23,0\n41,0,74,0,52,0,10,0,48,0,57,0\n34,0,15,0,3,0,61,0,42,0,56,0\n47,0,72,0,63,0,4,0,8,0,76,0\n26,0,54,0,1,0,44,0,40,0,30,0\n5,0,71,0,19,0,25,0,29,0,24,0\n58,0,73,0,70,0,11,0,69,0,16,0\n74,0,18,0,50,0,14,0,37,0,49,0\n38,0,22,0,35,0,34,0,28,0,23,0\n60,0,41,0,31,0,64,0,63,0,62,0\n6,0,68,0,72,0,21,0,45,0,43,0\n19,0,46,0,20,0,2,0,55,0,40,0\n67,0,13,0,29,0,36,0,8,0,12,0\n42,0,24,0,7,0,48,0,32,0,75,0\n9,0,39,0,61,0,58,0,30,0,53,0\n76,0,11,0,27,0,52,0,44,0,71,0\n57,0,4,0,65,0,1,0,5,0,59,0\n15,0,54,0,25,0,66,0,47,0,33,0\n51,0,3,0,56,0,10,0,26,0,17,0\n7,0,34,0,19,0,72,0,70,0,41,0\n61,0,38,0,8,0,20,0,68,0,74,0\n12,0,76,0,60,0,22,0,45,0,46,0\n35,0,73,0,2,0,24,0,50,0,36,0\n69,0,23,0,47,0,66,0,43,0,31,0\n25,0,37,0,75,0,58,0,57,0,40,0\n30,0,4,0,6,0,56,0,49,0,32,0\n63,0,59,0,14,0,48,0,54,0,3,0\n5,0,13,0,26,0,52,0,28,0,53,0\n71,0,33,0,18,0,51,0,64,0,42,0\n9,0,17,0,15,0,44,0,16,0,21,0\n39,0,67,0,10,0,27,0,62,0,1,0\n11,0,29,0,31,0,65,0,55,0,56,0\n38,0,76,0,7,0,36,0,40,0,37,0\n52,0,45,0,25,0,59,0,4,0,23,0\n32,0,70,0,5,0,26,0,60,0,3,0\n51,0,28,0,49,0,58,0,2,0,21,0\n15,0,73,0,68,0,71,0,39,0,6,0\n65,0,19,0,48,0,64,0,17,0,69,0\n33,0,27,0,53,0,35,0,74,0,72,0\n66,0,30,0,13,0,63,0,22,0,10,0\n46,0,67,0,75,0,54,0,20,0,9,0\n57,0,34,0,8,0,16,0,62,0,18,0\n50,0,41,0,1,0,61,0,29,0,43,0\n24,0,44,0,55,0,12,0,47,0,14,0\n11,0,4,0,53,0,42,0,38,0,33,0\n76,0,28,0,74,0,32,0,73,0,19,0\n36,0,51,0,45,0,65,0,15,0,30,0\n21,0,37,0,54,0,52,0,60,0,16,0\n22,0,71,0,2,0,3,0,7,0,67,0\n18,0,59,0,68,0,1,0,47,0,9,0\n10,0,12,0,44,0,64,0,58,0,5,0\n55,0,23,0,75,0,26,0,41,0,8,0\n66,0,42,0,57,0,14,0,35,0,56,0\n50,0,72,0,46,0,17,0,70,0,39,0\n13,0,62,0,24,0,11,0,49,0,20,0\n43,0,69,0,40,0,34,0,63,0,29,0\n27,0,31,0,61,0,48,0,25,0,6,0\n36,0,44,0,1,0,8,0,33,0,28,0\n45,0,2,0,56,0,5,0,54,0,18,0\n59,0,50,0,47,0,71,0,75,0,10,0\n14,0,19,0,41,0,11,0,26,0,67,0\n64,0,39,0,55,0,66,0,38,0,52,0\n61,0,21,0,57,0,73,0,7,0,31,0\n30,0,69,0,68,0,76,0,35,0,25,0\n37,0,63,0,70,0,42,0,27,0,32,0\n58,0,34,0,46,0,65,0,13,0,74,0\n48,0,16,0,53,0,4,0,22,0,51,0\n72,0,62,0,20,0,29,0,3,0,6,0\n15,0,23,0,43,0,40,0,60,0,24,0\n17,0,12,0,33,0,49,0,9,0,31,0\n73,0,21,0,69,0,41,0,38,0,5,0\n39,0,34,0,25,0,11,0,32,0,44,0\n52,0,51,0,75,0,46,0,61,0,63,0\n56,0,10,0,8,0,45,0,53,0,70,0\n54,0,22,0,62,0,50,0,19,0,42,0\n49,0,16,0,35,0,71,0,47,0,65,0\n9,0,14,0,48,0,72,0,43,0,13,0\n74,0,30,0,3,0,64,0,7,0,40,0\n58,0,15,0,29,0,27,0,59,0,2,0\n55,0,68,0,37,0,24,0,4,0,28,0\n17,0,36,0,20,0,18,0,57,0,23,0\n76,0,6,0,26,0,12,0,1,0,66,0\n60,0,13,0,56,0,67,0,73,0,51,0\n"
  },
  {
    "path": "schedules/76_12.csv",
    "content": "49,0,28,0,36,0,76,0,74,0,1,0\n56,0,41,0,14,0,55,0,11,0,23,0\n47,0,73,0,59,0,42,0,17,0,43,0\n7,0,57,0,34,0,69,0,71,0,9,0\n48,0,53,0,19,0,24,0,27,0,15,0\n21,0,70,0,33,0,62,0,12,0,22,0\n38,0,18,0,29,0,58,0,4,0,63,0\n30,0,72,0,13,0,31,0,26,0,37,0\n2,0,45,0,75,0,3,0,68,0,46,0\n16,0,5,0,35,0,64,0,65,0,40,0\n52,0,25,0,66,0,10,0,50,0,20,0\n61,0,67,0,51,0,60,0,6,0,32,0\n44,0,8,0,36,0,54,0,39,0,57,0\n23,0,33,0,9,0,18,0,73,0,70,0\n31,0,30,0,14,0,7,0,21,0,2,0\n3,0,41,0,1,0,71,0,16,0,27,0\n47,0,74,0,50,0,40,0,34,0,38,0\n48,0,42,0,22,0,52,0,43,0,45,0\n69,0,64,0,12,0,68,0,56,0,54,0\n35,0,46,0,29,0,53,0,39,0,60,0\n51,0,76,0,26,0,66,0,75,0,8,0\n61,0,65,0,37,0,17,0,10,0,11,0\n25,0,32,0,63,0,15,0,44,0,72,0\n5,0,4,0,62,0,59,0,49,0,24,0\n19,0,58,0,28,0,67,0,13,0,20,0\n55,0,14,0,22,0,6,0,16,0,9,0\n8,0,76,0,46,0,56,0,70,0,47,0\n52,0,12,0,17,0,30,0,23,0,74,0\n10,0,29,0,60,0,54,0,21,0,15,0\n31,0,53,0,51,0,4,0,61,0,68,0\n27,0,40,0,5,0,36,0,13,0,32,0\n50,0,72,0,28,0,24,0,43,0,2,0\n39,0,41,0,59,0,26,0,19,0,73,0\n20,0,75,0,42,0,37,0,7,0,49,0\n25,0,38,0,65,0,6,0,3,0,69,0\n11,0,44,0,33,0,1,0,48,0,34,0\n45,0,57,0,67,0,64,0,63,0,62,0\n71,0,66,0,55,0,18,0,58,0,35,0\n26,0,28,0,9,0,52,0,36,0,60,0\n13,0,23,0,43,0,7,0,29,0,39,0\n50,0,61,0,41,0,30,0,69,0,42,0\n56,0,3,0,33,0,15,0,37,0,53,0\n75,0,48,0,49,0,34,0,65,0,67,0\n14,0,40,0,54,0,66,0,19,0,62,0\n57,0,32,0,12,0,24,0,55,0,47,0\n35,0,11,0,74,0,22,0,59,0,58,0\n18,0,25,0,21,0,64,0,76,0,70,0\n20,0,38,0,2,0,51,0,27,0,44,0\n17,0,71,0,5,0,31,0,63,0,6,0\n4,0,1,0,16,0,10,0,46,0,73,0\n72,0,8,0,40,0,68,0,45,0,14,0\n50,0,13,0,58,0,56,0,61,0,48,0\n36,0,69,0,24,0,11,0,75,0,22,0\n27,0,26,0,65,0,42,0,9,0,54,0\n35,0,2,0,17,0,15,0,12,0,20,0\n44,0,46,0,70,0,19,0,5,0,6,0\n7,0,3,0,72,0,64,0,41,0,47,0\n21,0,53,0,34,0,73,0,57,0,28,0\n68,0,59,0,29,0,10,0,71,0,67,0\n18,0,63,0,16,0,8,0,49,0,30,0\n38,0,32,0,1,0,23,0,45,0,66,0\n4,0,76,0,33,0,43,0,60,0,55,0\n51,0,39,0,74,0,37,0,62,0,25,0\n31,0,7,0,73,0,52,0,58,0,40,0\n34,0,17,0,56,0,67,0,35,0,72,0\n44,0,64,0,49,0,14,0,50,0,53,0\n24,0,65,0,46,0,41,0,23,0,21,0\n11,0,54,0,76,0,3,0,13,0,63,0\n20,0,74,0,61,0,39,0,26,0,55,0\n6,0,30,0,75,0,66,0,29,0,33,0\n52,0,47,0,62,0,25,0,4,0,27,0\n71,0,15,0,59,0,36,0,38,0,12,0\n43,0,10,0,19,0,8,0,9,0,51,0\n28,0,42,0,16,0,32,0,70,0,68,0\n22,0,2,0,37,0,1,0,57,0,5,0\n60,0,18,0,69,0,48,0,45,0,31,0\n27,0,50,0,39,0,14,0,63,0,75,0\n46,0,67,0,26,0,33,0,38,0,24,0\n65,0,53,0,62,0,8,0,7,0,12,0\n68,0,15,0,73,0,49,0,11,0,61,0\n23,0,51,0,35,0,5,0,28,0,44,0\n42,0,72,0,10,0,57,0,3,0,74,0\n29,0,31,0,76,0,20,0,41,0,9,0\n43,0,16,0,66,0,21,0,36,0,56,0\n55,0,45,0,25,0,59,0,34,0,13,0\n18,0,71,0,19,0,52,0,32,0,22,0\n70,0,17,0,60,0,1,0,58,0,64,0\n47,0,2,0,4,0,69,0,37,0,54,0\n48,0,6,0,20,0,30,0,40,0,57,0\n15,0,39,0,66,0,31,0,28,0,65,0\n8,0,56,0,29,0,42,0,74,0,5,0\n22,0,67,0,24,0,76,0,27,0,7,0\n73,0,17,0,41,0,25,0,51,0,36,0\n49,0,69,0,58,0,46,0,32,0,33,0\n12,0,6,0,18,0,50,0,43,0,37,0\n64,0,30,0,45,0,4,0,11,0,19,0\n3,0,21,0,38,0,61,0,34,0,52,0\n10,0,55,0,2,0,40,0,53,0,70,0\n47,0,9,0,68,0,63,0,35,0,1,0\n72,0,16,0,54,0,59,0,48,0,23,0\n13,0,62,0,44,0,75,0,71,0,60,0\n14,0,25,0,58,0,26,0,12,0,5,0\n34,0,32,0,11,0,43,0,8,0,20,0\n55,0,27,0,3,0,50,0,73,0,29,0\n39,0,6,0,4,0,42,0,21,0,1,0\n22,0,54,0,66,0,46,0,17,0,49,0\n19,0,7,0,9,0,72,0,68,0,38,0\n26,0,62,0,48,0,53,0,76,0,2,0\n56,0,24,0,10,0,60,0,63,0,30,0\n71,0,64,0,13,0,33,0,65,0,51,0\n18,0,40,0,59,0,44,0,57,0,41,0\n47,0,75,0,61,0,23,0,14,0,28,0\n37,0,45,0,35,0,36,0,31,0,70,0\n15,0,69,0,52,0,16,0,74,0,67,0\n30,0,5,0,68,0,34,0,39,0,76,0\n22,0,56,0,20,0,73,0,4,0,38,0\n7,0,51,0,54,0,18,0,50,0,11,0\n40,0,42,0,61,0,71,0,25,0,24,0\n23,0,64,0,10,0,62,0,36,0,6,0\n31,0,12,0,60,0,49,0,3,0,19,0\n55,0,8,0,69,0,28,0,17,0,27,0\n57,0,15,0,13,0,46,0,1,0,14,0\n52,0,63,0,2,0,41,0,35,0,33,0\n16,0,26,0,44,0,47,0,45,0,29,0\n67,0,70,0,58,0,43,0,72,0,65,0\n74,0,21,0,32,0,9,0,75,0,53,0\n59,0,37,0,64,0,48,0,66,0,28,0\n34,0,20,0,46,0,18,0,42,0,62,0\n15,0,31,0,23,0,8,0,50,0,22,0\n49,0,27,0,6,0,26,0,56,0,35,0\n1,0,69,0,40,0,51,0,12,0,29,0\n54,0,70,0,43,0,41,0,38,0,75,0\n37,0,63,0,21,0,7,0,55,0,59,0\n76,0,19,0,57,0,33,0,61,0,16,0\n30,0,53,0,11,0,25,0,9,0,67,0\n32,0,14,0,3,0,17,0,4,0,48,0\n52,0,44,0,74,0,13,0,68,0,24,0\n58,0,45,0,71,0,10,0,39,0,47,0\n66,0,60,0,73,0,2,0,72,0,5,0\n36,0,50,0,57,0,65,0,29,0,19,0\n62,0,11,0,38,0,55,0,31,0,42,0\n43,0,64,0,27,0,30,0,46,0,61,0\n8,0,1,0,6,0,59,0,52,0,75,0\n54,0,24,0,34,0,16,0,58,0,37,0\n35,0,70,0,10,0,32,0,69,0,26,0\n23,0,63,0,22,0,28,0,25,0,60,0\n65,0,71,0,76,0,74,0,14,0,73,0\n36,0,68,0,53,0,20,0,18,0,72,0\n17,0,33,0,7,0,56,0,44,0,45,0\n4,0,67,0,12,0,41,0,13,0,66,0\n48,0,15,0,47,0,21,0,51,0,5,0\n49,0,39,0,9,0,40,0,2,0,3,0\n"
  },
  {
    "path": "schedules/76_13.csv",
    "content": "4,0,20,0,17,0,6,0,56,0,8,0\n5,0,36,0,46,0,75,0,16,0,21,0\n37,0,66,0,38,0,35,0,25,0,43,0\n76,0,40,0,67,0,7,0,52,0,14,0\n11,0,12,0,58,0,41,0,23,0,65,0\n45,0,71,0,61,0,48,0,30,0,50,0\n51,0,27,0,73,0,57,0,54,0,10,0\n28,0,3,0,26,0,15,0,29,0,44,0\n74,0,49,0,62,0,1,0,22,0,69,0\n63,0,24,0,32,0,34,0,9,0,47,0\n13,0,39,0,55,0,19,0,68,0,64,0\n70,0,31,0,2,0,18,0,42,0,33,0\n60,0,59,0,54,0,53,0,72,0,38,0\n43,0,15,0,5,0,67,0,61,0,11,0\n57,0,37,0,29,0,16,0,56,0,49,0\n75,0,69,0,45,0,34,0,27,0,7,0\n50,0,22,0,52,0,58,0,19,0,8,0\n1,0,46,0,13,0,66,0,47,0,65,0\n70,0,6,0,63,0,44,0,60,0,68,0\n26,0,41,0,55,0,40,0,17,0,24,0\n42,0,48,0,14,0,35,0,28,0,39,0\n30,0,64,0,31,0,25,0,59,0,4,0\n9,0,10,0,76,0,74,0,20,0,23,0\n71,0,3,0,21,0,62,0,33,0,51,0\n12,0,72,0,36,0,53,0,32,0,2,0\n73,0,61,0,1,0,18,0,55,0,52,0\n7,1,15,0,41,0,42,1,8,0,39,0\n4,0,24,0,75,0,22,0,70,0,66,0\n9,0,56,0,19,0,38,0,31,0,45,0\n48,0,54,0,51,0,26,0,13,0,50,0\n14,0,16,0,43,0,71,0,2,0,63,0\n30,0,10,0,18,0,58,0,3,0,37,0\n40,0,72,0,46,0,49,0,57,0,5,0\n6,0,33,0,74,0,29,0,73,0,36,0\n53,0,59,0,11,0,25,0,68,0,67,0\n65,0,20,0,60,0,17,0,34,0,35,0\n44,0,23,0,32,0,27,0,64,0,21,0\n76,0,12,0,47,0,62,0,28,0,69,0\n61,0,41,0,66,0,22,0,2,0,54,0\n70,0,46,0,7,0,58,0,71,0,13,0\n45,0,14,0,1,0,33,0,38,0,11,0\n51,0,17,0,67,0,74,0,63,0,25,0\n10,0,26,0,42,0,50,0,65,0,5,0\n72,0,6,0,52,0,37,0,15,0,27,0\n40,0,73,0,34,0,4,0,76,0,53,0\n32,0,8,0,49,0,24,0,16,0,28,0\n57,0,23,0,35,0,47,0,31,0,59,0\n69,0,9,0,64,0,18,0,21,0,43,0\n3,0,12,0,60,0,48,0,55,0,19,0\n75,0,29,0,68,0,30,0,20,0,62,0\n39,0,44,0,5,0,56,0,36,0,2,0\n71,0,15,0,38,0,4,0,41,0,34,0\n45,0,42,0,28,0,63,0,26,0,52,0\n27,0,24,0,10,0,61,0,21,0,14,0\n53,0,18,0,48,0,46,0,51,0,23,0\n59,0,70,0,12,0,9,0,22,0,20,0\n69,0,31,0,54,0,44,0,6,0,17,0\n56,0,40,0,66,0,58,0,68,0,36,0\n7,0,29,0,62,0,60,0,64,0,73,0\n65,0,25,0,37,0,33,0,19,0,47,0\n57,0,55,0,43,0,75,0,50,0,32,0\n74,0,8,0,1,0,35,0,13,0,72,0\n49,0,30,0,76,0,11,0,39,0,16,0\n67,0,71,0,54,0,3,0,22,0,42,0\n9,0,4,0,68,0,29,0,27,0,14,0\n37,0,46,0,31,0,7,0,73,0,20,0\n21,0,47,0,48,0,34,0,56,0,52,0\n51,0,15,0,35,0,12,0,43,0,45,0\n58,0,17,0,32,0,19,0,75,0,11,0\n23,0,6,0,24,0,76,0,5,0,13,0\n62,0,18,0,44,0,38,0,59,0,65,0\n74,0,53,0,3,0,61,0,26,0,49,0\n67,0,16,0,50,0,70,0,33,0,69,0\n25,0,28,0,36,0,41,0,60,0,57,0\n30,0,72,0,39,0,63,0,55,0,66,0\n40,0,8,0,2,0,10,0,1,0,64,0\n73,0,18,0,68,0,5,0,12,0,71,0\n54,0,58,0,15,0,24,0,20,0,29,0\n34,0,6,0,26,0,7,0,43,0,11,0\n53,0,35,0,33,0,9,0,44,0,75,0\n46,0,25,0,56,0,76,0,3,0,50,0\n22,0,38,0,8,0,40,0,65,0,55,0\n74,0,59,0,37,0,41,0,45,0,21,0\n27,0,63,0,57,0,2,0,48,0,66,0\n70,0,10,0,52,0,39,0,49,0,17,0\n64,0,51,0,61,0,47,0,36,0,42,0\n19,0,62,0,23,0,28,0,4,0,72,0\n32,0,16,0,60,0,67,0,1,0,31,0\n30,0,13,0,41,0,14,0,69,0,73,0\n43,0,27,0,56,0,8,0,7,0,53,0\n52,0,24,0,11,0,74,0,46,0,2,0\n49,0,20,0,63,0,38,0,36,0,50,0\n71,0,25,0,44,0,58,0,61,0,55,0\n40,0,18,0,47,0,45,0,16,0,54,0\n22,0,31,0,72,0,10,0,34,0,68,0\n37,0,33,0,17,0,28,0,64,0,13,0\n69,0,15,0,39,0,62,0,9,0,57,0\n6,0,1,0,19,0,67,0,59,0,14,0\n60,0,21,0,42,0,12,0,4,0,26,0\n5,0,35,0,66,0,32,0,70,0,3,0\n76,0,75,0,51,0,65,0,48,0,29,0\n23,0,38,0,34,0,30,0,7,0,61,0\n9,0,52,0,49,0,54,0,25,0,13,0\n36,0,62,0,11,0,27,0,50,0,31,0\n10,0,15,0,22,0,64,0,63,0,46,0\n14,0,58,0,60,0,42,0,57,0,74,0\n45,0,4,0,3,0,39,0,68,0,65,0\n44,0,76,0,20,0,71,0,51,0,19,0\n2,0,21,0,28,0,40,0,35,0,6,0\n5,0,55,0,32,0,37,0,69,0,53,0\n17,0,16,0,48,0,73,0,66,0,59,0\n72,0,70,0,29,0,41,0,43,0,47,0\n1,0,33,0,56,0,12,0,30,0,24,0\n67,0,75,0,8,0,26,0,18,0,23,0\n19,0,27,0,65,0,71,0,35,0,49,0\n55,0,11,0,22,0,21,0,13,0,57,0\n5,0,64,0,14,0,66,0,60,0,52,0\n69,0,2,0,34,0,28,0,29,0,58,0\n3,0,41,0,1,0,63,0,53,0,31,0\n17,0,68,0,42,0,18,0,76,0,46,0\n59,0,20,0,33,0,7,0,32,0,40,0\n47,0,8,0,30,0,48,0,74,0,44,0\n36,0,54,0,23,0,62,0,37,0,43,0\n10,0,25,0,75,0,15,0,12,0,16,0\n24,0,51,0,50,0,39,0,38,0,6,0\n72,0,56,0,61,0,26,0,73,0,70,0\n4,0,67,0,55,0,9,0,45,0,46,0\n47,0,22,0,28,0,30,0,53,0,27,0\n14,0,8,0,20,0,3,0,5,0,62,0\n13,0,42,0,69,0,59,0,15,0,75,0\n16,0,68,0,66,0,74,0,51,0,34,0\n38,0,61,0,17,0,32,0,29,0,12,0\n45,0,35,0,58,0,6,0,64,0,49,0\n54,0,39,0,7,0,21,0,1,0,25,0\n52,0,33,0,44,0,10,0,43,0,4,0\n56,0,50,0,41,0,9,0,18,0,60,0\n36,0,67,0,65,0,72,0,48,0,24,0\n26,0,2,0,57,0,71,0,37,0,76,0\n63,0,73,0,19,0,11,0,23,0,40,0\n31,0,21,0,29,0,70,0,45,0,8,0\n58,0,4,0,5,0,51,0,1,0,59,0\n35,0,41,0,68,0,16,0,52,0,61,0\n7,0,50,0,47,0,15,0,36,0,17,0\n26,0,39,0,14,0,32,0,46,0,22,0\n48,0,20,0,64,0,69,0,11,0,72,0\n62,0,71,0,53,0,66,0,6,0,10,0\n43,0,65,0,28,0,56,0,74,0,31,0\n57,0,19,0,30,0,70,0,42,0,24,0\n27,0,13,0,18,0,25,0,60,0,40,0\n63,0,76,0,23,0,54,0,33,0,55,0\n38,0,9,0,73,0,3,0,75,0,2,0\n34,0,37,0,49,0,67,0,44,0,12,0\n48,0,26,0,43,0,68,0,20,0,1,0\n50,0,29,0,64,0,53,0,14,0,65,0\n61,0,46,0,19,0,69,0,41,0,8,0\n18,0,7,0,24,0,35,0,4,0,63,0\n32,0,25,0,42,0,73,0,62,0,56,0\n11,0,70,0,9,0,28,0,51,0,37,0\n55,0,34,0,59,0,36,0,49,0,10,0\n23,0,45,0,2,0,60,0,17,0,22,0\n39,0,71,0,74,0,75,0,54,0,40,0\n52,0,57,0,12,0,3,0,30,0,6,0\n47,0,38,0,27,0,33,0,67,0,5,0\n58,0,66,0,31,0,76,0,21,0,15,0\n13,0,16,0,7,0,72,0,44,0,42,0\n"
  },
  {
    "path": "schedules/76_14.csv",
    "content": "42,0,67,0,49,0,65,0,55,0,36,0\n17,0,35,0,58,0,25,0,71,0,73,0\n22,0,6,0,34,0,57,0,52,0,47,0\n15,0,18,0,72,0,28,0,7,0,12,0\n32,0,2,0,21,0,43,0,59,0,19,0\n4,0,62,0,53,0,13,0,3,0,23,0\n20,0,68,0,63,0,51,0,8,0,70,0\n60,0,30,0,37,0,41,0,46,0,40,0\n45,0,9,0,54,0,29,0,33,0,5,0\n38,0,31,0,69,0,26,0,75,0,24,0\n27,0,74,0,76,0,1,0,14,0,44,0\n10,0,48,0,50,0,16,0,61,0,11,0\n39,0,56,0,67,0,64,0,66,0,58,0\n57,0,20,0,59,0,52,0,41,0,30,0\n46,0,54,0,34,0,8,0,25,0,18,0\n28,0,62,0,36,0,26,0,63,0,69,0\n37,0,2,0,44,0,73,0,9,0,32,0\n22,0,38,0,72,0,27,0,21,0,15,0\n4,0,24,0,64,0,6,0,61,0,33,0\n45,0,13,0,1,0,16,0,60,0,65,0\n43,0,70,0,12,0,66,0,23,0,76,0\n53,0,5,0,14,0,19,0,75,0,68,0\n40,0,49,0,47,0,39,0,17,0,48,0\n3,0,56,0,51,0,11,0,31,0,42,0\n35,0,29,0,10,0,7,0,74,0,55,0\n71,0,44,0,21,0,50,0,67,0,26,0\n28,1,61,0,43,0,59,1,58,0,9,0\n53,1,60,0,36,0,37,1,27,0,34,0\n70,0,32,0,66,0,24,0,5,0,62,0\n15,0,51,0,40,0,57,0,14,0,13,0\n48,0,16,0,4,0,35,0,22,0,56,0\n41,0,47,0,31,0,72,0,49,0,10,0\n52,0,3,0,64,0,68,0,1,0,65,0\n42,0,39,0,8,0,29,0,50,0,25,0\n12,0,75,0,71,0,30,0,18,0,74,0\n20,0,11,0,6,0,54,0,2,0,69,0\n7,0,63,0,46,0,76,0,19,0,45,0\n33,0,38,0,23,0,73,0,17,0,55,0\n66,0,72,0,26,0,14,0,59,0,16,0\n25,0,27,0,13,0,3,0,48,0,70,0\n41,0,32,0,8,0,40,0,35,0,42,0\n12,0,9,0,39,0,6,0,57,0,75,0\n58,0,24,0,54,0,4,0,50,0,37,0\n36,0,76,0,7,0,53,0,11,0,33,0\n19,0,47,0,61,0,60,0,20,0,71,0\n64,0,49,0,45,0,44,0,15,0,23,0\n31,0,46,0,29,0,22,0,68,0,62,0\n18,0,38,0,34,0,63,0,56,0,10,0\n21,0,30,0,55,0,51,0,28,0,1,0\n65,0,69,0,73,0,43,0,5,0,74,0\n67,0,52,0,16,0,2,0,17,0,76,0\n32,0,26,0,60,0,3,0,8,0,6,0\n23,0,41,0,24,0,36,0,22,0,58,0\n59,0,33,0,70,0,18,0,11,0,49,0\n35,0,27,0,75,0,57,0,64,0,42,0\n29,0,13,0,30,0,5,0,44,0,61,0\n50,0,55,0,47,0,43,0,66,0,62,0\n15,0,1,0,74,0,67,0,53,0,25,0\n38,0,7,0,68,0,37,0,39,0,65,0\n51,0,19,0,10,0,73,0,12,0,48,0\n71,0,17,0,9,0,31,0,54,0,21,0\n28,0,52,0,20,0,4,0,14,0,46,0\n72,0,45,0,40,0,34,0,56,0,69,0\n63,0,18,0,61,0,2,0,23,0,67,0\n29,0,53,0,49,0,24,0,27,0,16,0\n19,0,64,0,62,0,22,0,37,0,51,0\n15,0,35,0,68,0,17,0,54,0,26,0\n44,0,41,0,58,0,4,0,3,0,28,0\n10,0,6,0,38,0,72,0,5,0,76,0\n1,0,50,0,57,0,46,0,69,0,32,0\n55,0,39,0,14,0,2,0,34,0,45,0\n42,0,71,0,65,0,48,0,66,0,33,0\n52,0,21,0,74,0,11,0,63,0,13,0\n12,0,25,0,20,0,60,0,9,0,40,0\n36,0,56,0,70,0,43,0,75,0,30,0\n47,0,59,0,73,0,7,0,8,0,31,0\n27,0,68,0,55,0,18,0,19,0,58,0\n39,0,23,0,16,0,71,0,57,0,5,0\n61,0,1,0,2,0,38,0,26,0,51,0\n33,0,41,0,35,0,67,0,14,0,63,0\n42,0,43,0,3,0,24,0,20,0,72,0\n64,0,8,0,37,0,12,0,74,0,31,0\n9,0,4,0,76,0,47,0,30,0,62,0\n73,0,11,0,40,0,45,0,66,0,15,0\n59,0,56,0,60,0,69,0,29,0,70,0\n7,0,44,0,48,0,34,0,52,0,36,0\n54,0,13,0,6,0,28,0,46,0,49,0\n75,0,10,0,22,0,17,0,50,0,32,0\n25,0,65,0,61,0,53,0,21,0,12,0\n55,0,3,0,5,0,15,0,8,0,71,0\n19,0,29,0,39,0,35,0,4,0,18,0\n72,0,48,0,1,0,20,0,37,0,70,0\n46,0,24,0,11,0,47,0,27,0,9,0\n74,0,58,0,75,0,40,0,16,0,33,0\n28,0,13,0,2,0,50,0,7,0,64,0\n14,0,76,0,42,0,60,0,22,0,73,0\n34,0,32,0,30,0,49,0,68,0,17,0\n25,0,62,0,56,0,59,0,52,0,44,0\n26,0,10,0,57,0,54,0,43,0,53,0\n41,0,38,0,67,0,45,0,69,0,51,0\n31,0,66,0,6,0,21,0,23,0,63,0\n65,0,22,0,18,0,36,0,9,0,8,0\n7,0,1,0,42,0,12,0,4,0,5,0\n20,0,73,0,64,0,34,0,29,0,16,0\n3,0,2,0,14,0,54,0,56,0,47,0\n33,0,44,0,46,0,24,0,10,0,39,0\n21,0,76,0,25,0,27,0,51,0,32,0\n58,0,48,0,45,0,26,0,30,0,53,0\n60,0,69,0,52,0,49,0,23,0,35,0\n17,0,62,0,63,0,72,0,11,0,65,0\n75,0,37,0,59,0,67,0,13,0,55,0\n31,0,57,0,28,0,36,0,61,0,66,0\n19,0,15,0,41,0,74,0,70,0,50,0\n38,0,71,0,43,0,40,0,6,0,68,0\n26,0,7,0,29,0,25,0,23,0,30,0\n65,0,53,0,35,0,22,0,46,0,2,0\n63,0,44,0,60,0,59,0,48,0,54,0\n58,0,55,0,69,0,14,0,64,0,9,0\n49,0,50,0,75,0,1,0,3,0,73,0\n37,0,61,0,17,0,8,0,27,0,43,0\n70,0,67,0,40,0,52,0,10,0,31,0\n34,0,13,0,24,0,41,0,71,0,76,0\n74,0,11,0,19,0,39,0,72,0,57,0\n36,0,51,0,16,0,4,0,32,0,15,0\n18,0,45,0,62,0,6,0,21,0,42,0\n47,0,68,0,33,0,28,0,5,0,56,0\n66,0,12,0,50,0,20,0,38,0,44,0\n31,0,37,0,43,0,35,0,52,0,25,0\n30,0,67,0,22,0,11,0,54,0,39,0\n73,0,72,0,70,0,61,0,4,0,55,0\n63,0,3,0,24,0,7,0,14,0,17,0\n71,0,64,0,16,0,46,0,18,0,59,0\n5,0,2,0,68,0,41,0,27,0,12,0\n66,0,69,0,9,0,15,0,10,0,53,0\n47,0,28,0,76,0,74,0,42,0,45,0\n21,0,75,0,65,0,60,0,58,0,34,0\n40,0,36,0,29,0,19,0,1,0,6,0\n57,0,62,0,8,0,49,0,48,0,38,0\n26,0,56,0,23,0,13,0,20,0,32,0\n51,0,72,0,35,0,33,0,9,0,50,0\n3,0,61,0,54,0,39,0,69,0,76,0\n59,0,30,0,31,0,34,0,65,0,15,0\n17,0,5,0,66,0,60,0,18,0,1,0\n4,0,2,0,42,0,37,0,45,0,10,0\n56,0,21,0,68,0,73,0,36,0,24,0\n48,0,14,0,74,0,6,0,43,0,46,0\n23,0,29,0,8,0,28,0,41,0,75,0\n57,0,27,0,7,0,67,0,20,0,62,0\n33,0,25,0,19,0,16,0,13,0,38,0\n26,0,11,0,22,0,44,0,40,0,55,0\n51,0,12,0,52,0,58,0,49,0,71,0\n53,0,32,0,64,0,70,0,47,0,63,0\n46,0,36,0,45,0,3,0,59,0,17,0\n5,0,10,0,20,0,35,0,28,0,21,0\n27,0,6,0,30,0,56,0,16,0,73,0\n23,0,9,0,1,0,34,0,42,0,19,0\n22,0,49,0,66,0,75,0,7,0,61,0\n54,0,51,0,50,0,40,0,74,0,53,0\n4,0,71,0,69,0,63,0,37,0,25,0\n44,0,26,0,70,0,65,0,38,0,47,0\n14,0,32,0,11,0,12,0,29,0,67,0\n2,0,15,0,57,0,24,0,60,0,33,0\n43,0,39,0,52,0,41,0,64,0,48,0\n58,0,8,0,68,0,62,0,72,0,13,0\n76,0,18,0,53,0,55,0,31,0,20,0\n74,0,34,0,9,0,3,0,38,0,66,0\n50,0,23,0,27,0,59,0,65,0,10,0\n33,0,71,0,28,0,1,0,22,0,32,0\n56,0,6,0,17,0,51,0,41,0,7,0\n16,0,62,0,70,0,14,0,61,0,40,0\n46,0,37,0,76,0,21,0,26,0,49,0\n13,0,12,0,18,0,69,0,47,0,35,0\n4,0,11,0,67,0,68,0,60,0,43,0\n24,0,19,0,52,0,45,0,8,0,75,0\n55,0,42,0,63,0,44,0,57,0,30,0\n5,0,54,0,25,0,72,0,36,0,64,0\n15,0,48,0,31,0,2,0,29,0,58,0\n73,0,28,0,37,0,39,0,59,0,53,0\n"
  },
  {
    "path": "schedules/76_2.csv",
    "content": "22,0,70,0,52,0,21,0,32,0,15,0\n35,0,20,0,72,0,48,0,2,0,17,0\n49,0,68,0,76,0,24,0,38,0,37,0\n57,0,27,0,14,0,19,0,41,0,10,0\n12,0,62,0,8,0,29,0,4,0,31,0\n40,0,69,0,26,0,5,0,61,0,25,0\n36,0,1,0,67,0,46,0,30,0,34,0\n56,0,74,0,71,0,60,0,53,0,39,0\n66,0,28,0,59,0,55,0,45,0,18,0\n44,0,73,0,47,0,9,0,42,0,54,0\n13,0,58,0,43,0,16,0,33,0,23,0\n7,0,64,0,51,0,6,0,75,0,65,0\n11,0,63,0,36,0,3,0,50,0,40,0\n10,0,5,0,21,0,56,0,2,0,8,0\n4,0,69,0,41,0,67,0,70,0,74,0\n39,0,30,0,18,0,19,0,68,0,29,0\n66,0,48,0,60,0,26,0,14,0,47,0\n23,0,17,0,1,0,6,0,24,0,73,0\n71,0,63,0,25,0,27,0,62,0,20,0\n42,0,13,0,55,0,32,0,51,0,11,0\n65,0,54,0,33,0,49,0,22,0,12,0\n9,0,46,0,3,0,16,0,38,0,72,0\n37,0,31,0,61,0,35,0,28,0,64,0\n59,0,34,0,50,0,52,0,75,0,76,0\n53,0,44,0,45,0,43,0,57,0,15,0\n7,0,18,1,73,1,58,0,30,1,1,1\n"
  },
  {
    "path": "schedules/76_3.csv",
    "content": "63,0,40,0,49,0,50,0,47,0,72,0\n32,0,67,0,30,0,48,0,51,0,75,0\n33,0,34,0,13,0,5,0,19,0,3,0\n57,0,58,0,17,0,70,0,12,0,24,0\n68,0,31,0,76,0,52,0,42,0,16,0\n22,0,9,0,62,0,46,0,54,0,10,0\n21,0,43,0,74,0,8,0,2,0,23,0\n38,0,53,0,7,0,15,0,39,0,20,0\n29,0,35,0,56,0,26,0,14,0,4,0\n6,0,61,0,28,0,59,0,66,0,45,0\n1,0,60,0,18,0,69,0,65,0,55,0\n25,0,71,0,73,0,27,0,64,0,37,0\n36,0,11,0,32,0,41,0,44,0,50,0\n40,0,23,0,24,0,38,0,13,0,9,0\n5,0,53,0,56,0,58,0,46,0,30,0\n42,0,62,0,20,0,19,0,4,0,67,0\n2,0,55,0,75,0,31,0,39,0,6,0\n54,0,59,0,27,0,74,0,68,0,14,0\n35,0,65,0,22,0,37,0,3,0,28,0\n51,0,76,0,41,0,15,0,64,0,43,0\n52,0,10,0,45,0,47,0,12,0,34,0\n48,0,8,0,57,0,63,0,11,0,60,0\n26,0,61,0,49,0,70,0,7,0,71,0\n21,0,16,0,44,0,72,0,17,0,1,0\n66,0,33,0,18,0,36,0,25,0,29,0\n69,0,32,0,20,0,73,0,56,0,28,0\n4,0,47,0,68,0,55,0,23,0,58,0\n59,0,50,0,39,0,51,0,34,0,60,0\n65,0,54,0,26,0,76,0,53,0,57,0\n72,0,41,0,9,0,6,0,35,0,5,0\n63,0,37,0,21,0,10,0,61,0,18,0\n64,0,8,0,13,0,22,0,29,0,42,0\n7,0,44,0,12,0,25,0,48,0,40,0\n1,0,11,0,30,0,33,0,43,0,49,0\n71,0,17,0,15,0,66,0,74,0,52,0\n70,0,19,0,46,0,69,0,31,0,36,0\n3,0,24,0,75,0,45,0,62,0,27,0\n14,0,67,0,2,0,38,0,73,0,16,0\n"
  },
  {
    "path": "schedules/76_4.csv",
    "content": "22,0,25,0,62,0,67,0,49,0,1,0\n14,0,76,0,10,0,41,0,30,0,35,0\n63,0,42,0,11,0,5,0,46,0,21,0\n73,0,16,0,45,0,28,0,59,0,44,0\n26,0,20,0,15,0,70,0,55,0,72,0\n64,0,34,0,53,0,60,0,3,0,40,0\n50,0,12,0,19,0,51,0,7,0,18,0\n31,0,52,0,65,0,57,0,47,0,56,0\n8,0,74,0,9,0,2,0,23,0,33,0\n37,0,17,0,66,0,4,0,43,0,54,0\n29,0,75,0,61,0,48,0,58,0,24,0\n39,0,38,0,71,0,6,0,69,0,68,0\n13,0,32,0,30,0,36,0,27,0,44,0\n76,0,34,0,31,0,49,0,20,0,7,0\n72,0,12,0,35,0,67,0,74,0,63,0\n56,0,54,0,26,0,62,0,46,0,73,0\n28,0,57,0,19,0,64,0,42,0,23,0\n14,0,8,0,1,0,75,0,38,0,50,0\n2,0,32,0,22,0,24,0,18,0,6,0\n51,0,60,0,11,0,45,0,66,0,52,0\n25,0,4,0,21,0,55,0,61,0,68,0\n33,0,53,0,47,0,58,0,17,0,10,0\n40,0,39,0,36,0,41,0,5,0,15,0\n3,0,13,0,48,0,16,0,69,0,37,0\n70,0,43,0,65,0,71,0,9,0,29,0\n27,0,2,0,46,0,59,0,49,0,64,0\n22,1,74,0,68,0,54,1,76,0,51,0\n20,0,44,0,58,0,14,0,52,0,62,0\n75,0,41,0,53,0,56,0,19,0,25,0\n12,0,69,0,36,0,60,0,8,0,61,0\n57,0,73,0,37,0,55,0,39,0,11,0\n47,0,18,0,5,0,28,0,9,0,34,0\n4,0,70,0,50,0,13,0,63,0,31,0\n15,0,1,0,3,0,43,0,24,0,30,0\n59,0,72,0,48,0,32,0,65,0,66,0\n7,0,67,0,40,0,10,0,23,0,38,0\n29,0,16,0,6,0,35,0,42,0,17,0\n26,0,71,0,27,0,45,0,33,0,21,0\n20,0,61,0,41,0,57,0,22,0,50,0\n75,0,51,0,43,0,62,0,2,0,47,0\n28,0,58,0,13,0,76,0,39,0,72,0\n67,0,11,0,31,0,9,0,3,0,14,0\n73,0,24,0,52,0,7,0,25,0,69,0\n38,0,21,0,35,0,54,0,36,0,19,0\n6,0,10,0,8,0,48,0,45,0,46,0\n30,0,23,0,59,0,53,0,5,0,4,0\n16,0,55,0,40,0,32,0,12,0,71,0\n56,0,66,0,64,0,33,0,44,0,63,0\n37,0,18,0,74,0,29,0,1,0,26,0\n49,0,60,0,68,0,65,0,17,0,15,0\n34,0,42,0,22,0,70,0,27,0,54,0\n"
  },
  {
    "path": "schedules/76_5.csv",
    "content": "28,0,62,0,55,0,39,0,3,0,11,0\n13,0,33,0,25,0,69,0,34,0,52,0\n65,0,9,0,57,0,6,0,71,0,32,0\n27,0,26,0,45,0,74,0,8,0,14,0\n64,0,35,0,7,0,37,0,5,0,44,0\n46,0,42,0,70,0,18,0,58,0,75,0\n53,0,4,0,49,0,23,0,56,0,61,0\n63,0,2,0,16,0,17,0,29,0,40,0\n51,0,36,0,72,0,15,0,30,0,41,0\n12,0,73,0,20,0,47,0,59,0,68,0\n67,0,10,0,19,0,54,0,24,0,60,0\n22,0,38,0,76,0,66,0,43,0,31,0\n50,0,48,0,6,0,1,0,21,0,58,0\n26,0,70,0,29,0,5,0,34,0,65,0\n35,0,2,0,8,0,11,0,4,0,36,0\n56,0,7,0,12,0,27,0,46,0,55,0\n44,0,28,0,74,0,67,0,68,0,33,0\n15,0,61,0,43,0,9,0,39,0,13,0\n1,0,14,0,37,0,66,0,10,0,42,0\n69,0,24,0,17,0,71,0,51,0,48,0\n73,0,32,0,41,0,25,0,62,0,19,0\n53,0,54,0,3,0,63,0,20,0,31,0\n75,0,45,0,49,0,30,0,76,0,40,0\n18,0,50,0,38,0,52,0,72,0,57,0\n23,0,60,0,22,0,64,0,47,0,21,0\n16,0,43,0,70,0,59,0,69,0,8,0\n74,1,46,0,32,0,48,1,10,0,15,0\n29,1,44,0,14,0,25,1,51,0,61,0\n34,0,56,0,66,0,28,0,40,0,54,0\n4,0,30,0,27,0,3,0,73,0,65,0\n76,0,37,0,67,0,62,0,21,0,18,0\n9,0,35,0,72,0,47,0,19,0,42,0\n31,0,16,0,49,0,64,0,36,0,50,0\n55,0,17,0,59,0,60,0,33,0,6,0\n57,0,2,0,13,0,41,0,75,0,23,0\n71,0,20,0,52,0,26,0,7,0,22,0\n11,0,12,0,1,0,63,0,24,0,38,0\n68,0,45,0,39,0,58,0,53,0,5,0\n30,0,61,0,21,0,31,0,28,0,70,0\n56,0,18,0,3,0,6,0,74,0,69,0\n55,0,41,0,66,0,35,0,16,0,67,0\n48,0,75,0,59,0,4,0,7,0,34,0\n19,0,20,0,65,0,38,0,44,0,2,0\n51,0,37,0,26,0,39,0,32,0,49,0\n23,0,9,0,52,0,17,0,10,0,45,0\n58,0,33,0,8,0,76,0,12,0,72,0\n64,0,40,0,11,0,46,0,25,0,71,0\n36,0,42,0,5,0,24,0,62,0,43,0\n29,0,53,0,47,0,27,0,57,0,1,0\n14,0,15,0,60,0,68,0,50,0,63,0\n13,0,54,0,17,0,22,0,73,0,35,0\n58,0,61,0,74,0,20,0,16,0,34,0\n38,0,33,0,71,0,37,0,41,0,45,0\n18,0,39,0,25,0,66,0,23,0,24,0\n64,0,67,0,30,0,48,0,26,0,57,0\n53,0,65,0,21,0,43,0,11,0,14,0\n3,0,1,0,68,0,13,0,19,0,51,0\n62,0,49,0,6,0,72,0,54,0,29,0\n40,0,7,0,31,0,73,0,60,0,8,0\n47,0,15,0,52,0,75,0,56,0,44,0\n5,0,59,0,46,0,28,0,9,0,2,0\n63,0,76,0,27,0,36,0,32,0,70,0\n69,0,10,0,4,0,22,0,50,0,12,0\n42,0,74,0,25,0,55,0,48,0,29,0\n"
  },
  {
    "path": "schedules/76_6.csv",
    "content": "50,0,61,0,39,0,37,0,5,0,16,0\n2,0,68,0,25,0,47,0,29,0,57,0\n62,0,21,0,18,0,38,0,3,0,74,0\n24,0,41,0,66,0,65,0,60,0,72,0\n64,0,69,0,58,0,6,0,35,0,34,0\n59,0,17,0,71,0,27,0,22,0,33,0\n30,0,63,0,42,0,46,0,44,0,36,0\n56,0,20,0,15,0,52,0,53,0,13,0\n54,0,76,0,75,0,45,0,9,0,11,0\n55,0,8,0,73,0,51,0,32,0,12,0\n43,0,19,0,7,0,4,0,14,0,10,0\n70,0,67,0,31,0,23,0,49,0,1,0\n40,0,26,0,57,0,28,0,48,0,17,0\n42,0,27,0,5,0,24,0,21,0,34,0\n22,0,69,0,65,0,9,0,38,0,47,0\n53,0,66,0,33,0,50,0,74,0,44,0\n29,0,4,0,45,0,59,0,41,0,51,0\n35,0,63,0,56,0,39,0,43,0,11,0\n48,0,31,0,15,0,55,0,3,0,75,0\n28,0,10,0,20,0,32,0,6,0,67,0\n19,0,72,0,2,0,62,0,58,0,26,0\n61,0,54,0,23,0,36,0,64,0,71,0\n37,0,68,0,30,0,8,0,70,0,52,0\n73,0,7,0,49,0,16,0,60,0,18,0\n13,0,14,0,12,0,40,0,76,0,1,0\n46,0,43,0,45,0,25,0,53,0,31,0\n42,0,51,0,48,0,39,0,72,0,69,0\n63,0,47,0,50,0,27,0,64,0,75,0\n15,0,37,0,36,0,62,0,67,0,57,0\n9,0,17,0,16,0,52,0,34,0,41,0\n44,0,38,0,73,0,19,0,68,0,40,0\n65,0,5,0,32,0,7,0,59,0,35,0\n61,0,6,0,76,0,22,0,46,0,60,0\n54,0,30,0,4,0,25,0,33,0,56,0\n71,0,70,0,11,0,18,0,66,0,12,0\n74,0,55,0,29,0,58,0,1,0,10,0\n14,0,21,0,8,0,20,0,49,0,26,0\n2,0,3,0,23,0,28,0,24,0,13,0\n32,0,52,0,61,0,31,0,38,0,63,0\n27,0,39,0,6,0,40,0,7,0,30,0\n12,0,16,0,59,0,43,0,57,0,54,0\n18,0,10,0,9,0,48,0,33,0,46,0\n50,0,36,0,19,0,20,0,41,0,70,0\n53,0,47,0,4,0,21,0,23,0,55,0\n35,0,26,0,1,0,37,0,66,0,73,0\n74,0,51,0,11,0,2,0,65,0,15,0\n76,0,58,0,67,0,8,0,42,0,56,0\n34,0,14,0,22,0,68,0,28,0,75,0\n60,0,62,0,64,0,13,0,45,0,5,0\n25,0,49,0,44,0,69,0,71,0,24,0\n72,0,17,0,70,0,3,0,29,0,61,0\n48,0,38,0,20,0,59,0,11,0,30,0\n52,0,55,0,18,0,42,0,6,0,57,0\n15,0,4,0,28,0,50,0,9,0,8,0\n39,0,46,0,13,0,34,0,54,0,66,0\n56,0,37,0,40,0,2,0,10,0,49,0\n26,0,60,0,27,0,29,0,69,0,23,0\n41,0,68,0,3,0,43,0,76,0,71,0\n75,0,25,0,1,0,17,0,5,0,51,0\n12,0,33,0,72,0,67,0,47,0,7,0\n53,0,65,0,62,0,14,0,63,0,73,0\n24,0,74,0,22,0,35,0,19,0,31,0\n45,0,16,0,58,0,32,0,21,0,36,0\n44,0,70,0,39,0,64,0,4,0,2,0\n38,0,49,0,55,0,66,0,27,0,43,0\n6,0,37,0,41,0,48,0,13,0,25,0\n10,0,51,0,34,0,47,0,60,0,71,0\n42,0,33,0,20,0,61,0,35,0,75,0\n26,0,45,0,67,0,68,0,24,0,63,0\n7,0,28,0,69,0,11,0,62,0,52,0\n40,0,18,0,53,0,29,0,54,0,22,0\n21,0,46,0,19,0,17,0,15,0,12,0\n44,0,5,0,9,0,58,0,31,0,14,0\n57,0,32,0,50,0,76,0,23,0,30,0\n74,0,72,0,59,0,56,0,36,0,73,0\n1,0,64,0,3,0,8,0,65,0,16,0\n"
  },
  {
    "path": "schedules/76_7.csv",
    "content": "18,0,76,0,54,0,68,0,51,0,41,0\n74,0,71,0,58,0,56,0,20,0,66,0\n13,0,14,0,40,0,8,0,27,0,24,0\n31,0,10,0,4,0,42,0,17,0,34,0\n35,0,19,0,46,0,47,0,59,0,9,0\n12,0,2,0,62,0,60,0,36,0,64,0\n57,0,25,0,44,0,72,0,52,0,55,0\n53,0,43,0,6,0,33,0,21,0,26,0\n70,0,49,0,3,0,65,0,29,0,32,0\n73,0,63,0,37,0,23,0,67,0,75,0\n1,0,48,0,38,0,61,0,30,0,7,0\n16,0,28,0,39,0,15,0,5,0,45,0\n50,0,69,0,9,0,11,0,22,0,74,0\n72,0,66,0,46,0,13,0,17,0,53,0\n51,0,2,0,65,0,6,0,27,0,56,0\n33,0,29,0,25,0,42,0,19,0,14,0\n49,0,60,0,68,0,23,0,30,0,44,0\n47,0,16,0,8,0,57,0,36,0,70,0\n67,0,34,0,41,0,38,0,40,0,28,0\n4,0,71,0,15,0,50,0,35,0,61,0\n12,0,59,0,54,0,43,0,31,0,69,0\n32,0,58,0,37,0,48,0,22,0,21,0\n20,0,26,0,1,0,63,0,10,0,45,0\n3,0,62,0,52,0,24,0,5,0,18,0\n11,0,55,0,7,0,73,0,39,0,64,0\n76,0,13,0,44,0,75,0,38,0,9,0\n54,1,35,0,36,0,34,1,53,0,65,0\n61,0,46,0,32,0,31,0,60,0,8,0\n57,0,20,0,37,0,33,0,12,0,28,0\n45,0,59,0,58,0,25,0,62,0,68,0\n64,0,56,0,18,0,19,0,72,0,67,0\n5,0,47,0,73,0,22,0,4,0,2,0\n48,0,63,0,24,0,70,0,42,0,50,0\n30,0,66,0,51,0,11,0,75,0,29,0\n41,0,16,0,7,0,52,0,74,0,43,0\n39,0,6,0,1,0,49,0,40,0,69,0\n76,0,71,0,55,0,27,0,26,0,17,0\n3,0,14,0,15,0,21,0,23,0,10,0\n25,0,9,0,53,0,63,0,32,0,12,0\n59,0,36,0,44,0,56,0,73,0,28,0\n8,0,19,0,22,0,62,0,54,0,30,0\n42,0,5,0,74,0,37,0,1,0,35,0\n26,0,68,0,7,0,29,0,67,0,24,0\n6,0,23,0,52,0,4,0,64,0,38,0\n51,0,60,0,13,0,34,0,55,0,15,0\n65,0,39,0,14,0,41,0,17,0,61,0\n49,0,48,0,43,0,18,0,46,0,20,0\n75,0,10,0,27,0,47,0,69,0,58,0\n21,0,40,0,45,0,57,0,66,0,76,0\n72,0,2,0,50,0,16,0,31,0,3,0\n11,0,33,0,38,0,70,0,71,0,59,0\n24,0,6,0,12,0,19,0,74,0,34,0\n5,0,54,0,56,0,55,0,46,0,29,0\n42,0,22,0,52,0,13,0,68,0,28,0\n4,0,62,0,69,0,7,0,66,0,63,0\n30,0,39,0,47,0,32,0,20,0,76,0\n14,0,57,0,73,0,31,0,18,0,71,0\n41,0,27,0,60,0,11,0,25,0,35,0\n75,0,17,0,3,0,33,0,45,0,36,0\n37,0,16,0,53,0,61,0,44,0,10,0\n51,0,70,0,43,0,9,0,1,0,64,0\n40,0,65,0,26,0,23,0,48,0,72,0\n15,0,2,0,67,0,49,0,58,0,8,0\n21,0,29,0,18,0,50,0,59,0,39,0\n11,0,31,0,5,0,6,0,36,0,63,0\n27,0,61,0,73,0,74,0,3,0,54,0\n38,0,25,0,24,0,69,0,46,0,37,0\n44,0,17,0,40,0,47,0,51,0,7,0\n64,0,75,0,57,0,49,0,35,0,22,0\n65,0,12,0,42,0,58,0,16,0,76,0\n34,0,56,0,50,0,43,0,45,0,8,0\n53,0,30,0,55,0,14,0,4,0,67,0\n23,0,20,0,62,0,41,0,13,0,70,0\n9,0,33,0,10,0,48,0,68,0,2,0\n28,0,21,0,72,0,1,0,71,0,60,0\n19,0,26,0,66,0,32,0,15,0,52,0\n74,0,64,0,31,0,25,0,47,0,65,0\n29,0,17,0,22,0,38,0,16,0,63,0\n76,0,34,0,49,0,14,0,7,0,5,0\n59,0,8,0,4,0,51,0,48,0,3,0\n42,0,60,0,20,0,40,0,75,0,54,0\n18,0,30,0,35,0,26,0,2,0,28,0\n21,0,70,0,52,0,12,0,27,0,46,0\n69,0,41,0,45,0,53,0,19,0,73,0\n32,0,71,0,10,0,67,0,6,0,13,0\n43,0,72,0,15,0,37,0,62,0,11,0\n68,0,1,0,36,0,50,0,66,0,55,0\n23,0,56,0,61,0,24,0,9,0,57,0\n58,0,33,0,34,0,44,0,39,0,54,0\n"
  },
  {
    "path": "schedules/76_8.csv",
    "content": "33,0,60,0,50,0,26,0,64,0,76,0\n38,0,47,0,10,0,15,0,27,0,73,0\n75,0,36,0,46,0,29,0,74,0,25,0\n52,0,31,0,40,0,45,0,13,0,57,0\n4,0,32,0,12,0,20,0,5,0,18,0\n70,0,65,0,68,0,63,0,66,0,55,0\n1,0,9,0,30,0,24,0,2,0,62,0\n17,0,54,0,22,0,51,0,67,0,53,0\n28,0,61,0,59,0,48,0,3,0,39,0\n6,0,49,0,8,0,11,0,43,0,72,0\n7,0,37,0,19,0,41,0,21,0,44,0\n23,0,34,0,69,0,42,0,71,0,56,0\n16,0,14,0,65,0,58,0,35,0,73,0\n31,0,15,0,66,0,22,0,46,0,12,0\n64,0,55,0,28,0,5,0,57,0,24,0\n68,0,39,0,30,0,13,0,10,0,75,0\n9,0,63,0,27,0,32,0,25,0,33,0\n70,0,67,0,76,0,6,0,69,0,29,0\n23,0,72,0,54,0,14,0,60,0,4,0\n38,0,58,0,52,0,1,0,59,0,21,0\n20,0,7,0,51,0,48,0,42,0,43,0\n41,0,11,0,17,0,26,0,2,0,16,0\n74,0,47,0,53,0,49,0,61,0,40,0\n44,0,34,0,62,0,45,0,8,0,3,0\n35,0,50,0,56,0,37,0,36,0,18,0\n71,0,6,0,22,0,19,0,55,0,60,0\n38,1,7,0,75,0,4,1,70,0,9,0\n69,1,57,0,11,0,48,1,73,0,25,0\n21,0,63,0,13,0,74,0,16,0,72,0\n76,0,10,0,59,0,46,0,49,0,44,0\n39,0,45,0,42,0,66,0,18,0,67,0\n65,0,8,0,36,0,20,0,30,0,33,0\n12,0,27,0,43,0,28,0,34,0,2,0\n14,0,71,0,3,0,29,0,53,0,50,0\n37,0,23,0,40,0,64,0,17,0,1,0\n62,0,32,0,31,0,19,0,54,0,47,0\n26,0,5,0,52,0,35,0,68,0,61,0\n51,0,24,0,58,0,41,0,15,0,56,0\n6,0,57,0,38,0,74,0,2,0,66,0\n50,0,42,0,16,0,27,0,75,0,22,0\n73,0,55,0,21,0,17,0,48,0,12,0\n4,0,67,0,25,0,34,0,1,0,31,0\n64,0,69,0,45,0,59,0,63,0,54,0\n15,0,43,0,35,0,70,0,23,0,30,0\n53,0,44,0,32,0,36,0,68,0,11,0\n7,0,24,0,33,0,52,0,10,0,3,0\n5,0,40,0,46,0,58,0,39,0,71,0\n49,0,28,0,19,0,13,0,18,0,14,0\n41,0,62,0,20,0,29,0,61,0,60,0\n26,0,72,0,47,0,37,0,51,0,65,0\n76,0,9,0,53,0,8,0,56,0,57,0\n31,0,17,0,27,0,6,0,59,0,30,0\n15,0,50,0,21,0,54,0,40,0,11,0\n66,0,64,0,7,0,32,0,34,0,73,0\n75,0,5,0,1,0,63,0,41,0,3,0\n74,0,70,0,42,0,4,0,24,0,37,0\n55,0,25,0,18,0,8,0,10,0,26,0\n52,0,16,0,39,0,36,0,76,0,47,0\n60,0,46,0,45,0,28,0,9,0,51,0\n33,0,72,0,35,0,62,0,38,0,71,0\n20,0,23,0,19,0,58,0,67,0,68,0\n13,0,61,0,69,0,65,0,12,0,44,0\n49,0,48,0,2,0,22,0,56,0,29,0\n14,0,21,0,66,0,43,0,75,0,26,0\n36,0,10,0,34,0,41,0,6,0,54,0\n70,0,57,0,46,0,72,0,50,0,1,0\n74,0,18,0,15,0,64,0,71,0,52,0\n68,0,16,0,8,0,24,0,12,0,60,0\n49,0,3,0,32,0,51,0,35,0,69,0\n25,0,2,0,5,0,7,0,45,0,23,0\n42,0,30,0,55,0,76,0,38,0,61,0\n44,0,40,0,67,0,14,0,27,0,48,0\n29,0,59,0,43,0,9,0,65,0,19,0\n37,0,11,0,62,0,22,0,28,0,58,0\n63,0,73,0,20,0,53,0,39,0,31,0\n13,0,56,0,4,0,17,0,33,0,47,0\n18,0,60,0,57,0,30,0,34,0,21,0\n24,0,49,0,71,0,36,0,67,0,26,0\n9,0,12,0,55,0,54,0,74,0,35,0\n16,0,19,0,3,0,40,0,70,0,25,0\n38,0,29,0,44,0,31,0,51,0,5,0\n13,0,2,0,37,0,76,0,15,0,32,0\n47,0,48,0,63,0,50,0,58,0,8,0\n22,0,10,0,1,0,45,0,43,0,61,0\n33,0,28,0,53,0,66,0,41,0,23,0\n75,0,52,0,17,0,20,0,69,0,72,0\n27,0,65,0,56,0,7,0,39,0,11,0\n62,0,64,0,6,0,42,0,14,0,46,0\n73,0,59,0,2,0,68,0,4,0,50,0\n13,0,58,0,43,0,36,0,55,0,3,0\n48,0,35,0,76,0,45,0,19,0,24,0\n66,0,54,0,71,0,1,0,20,0,16,0\n74,0,28,0,26,0,7,0,31,0,69,0\n63,0,37,0,12,0,67,0,57,0,10,0\n68,0,22,0,34,0,38,0,9,0,40,0\n27,0,4,0,51,0,53,0,52,0,62,0\n17,0,65,0,60,0,42,0,15,0,49,0\n29,0,39,0,8,0,21,0,32,0,23,0\n59,0,47,0,11,0,70,0,14,0,5,0\n72,0,30,0,56,0,64,0,44,0,25,0\n33,0,73,0,61,0,6,0,18,0,75,0\n41,0,38,0,69,0,46,0,4,0,48,0\n"
  },
  {
    "path": "schedules/76_9.csv",
    "content": "45,0,49,0,76,0,57,0,75,0,64,0\n10,0,74,0,63,0,53,0,48,0,23,0\n20,0,36,0,14,0,8,0,7,0,31,0\n34,0,35,0,59,0,40,0,5,0,62,0\n38,0,54,0,25,0,42,0,52,0,4,0\n29,0,69,0,17,0,65,0,15,0,37,0\n18,0,50,0,9,0,41,0,30,0,55,0\n47,0,39,0,2,0,16,0,61,0,13,0\n58,0,6,0,73,0,28,0,33,0,32,0\n67,0,3,0,24,0,68,0,71,0,11,0\n43,0,60,0,22,0,1,0,51,0,26,0\n46,0,70,0,72,0,21,0,19,0,27,0\n66,0,44,0,29,0,56,0,12,0,53,0\n8,0,16,0,69,0,55,0,40,0,42,0\n9,0,5,0,48,0,28,0,20,0,15,0\n52,0,24,0,41,0,33,0,35,0,7,0\n39,0,11,0,75,0,62,0,25,0,65,0\n37,0,23,0,72,0,6,0,59,0,1,0\n12,0,74,0,47,0,45,0,68,0,26,0\n27,0,32,0,10,0,60,0,44,0,17,0\n71,0,50,0,58,0,38,0,22,0,76,0\n2,0,3,0,14,0,19,0,73,0,64,0\n30,0,31,0,66,0,43,0,63,0,34,0\n4,0,61,0,70,0,57,0,46,0,36,0\n13,0,56,0,51,0,54,0,21,0,49,0\n67,0,42,0,32,0,18,0,20,0,59,0\n5,0,15,0,38,0,75,0,55,0,33,0\n25,0,53,0,40,0,14,0,71,0,9,0\n12,0,41,0,28,0,11,0,1,0,60,0\n73,0,65,0,45,0,63,0,36,0,44,0\n68,0,64,0,48,0,51,0,4,0,58,0\n29,0,8,0,21,0,24,0,6,0,39,0\n13,0,7,0,30,0,69,0,72,0,56,0\n19,0,54,0,17,0,61,0,74,0,43,0\n50,0,34,0,37,0,16,0,27,0,49,0\n10,0,35,0,22,0,76,0,70,0,66,0\n62,0,2,0,23,0,46,0,26,0,18,0\n67,0,57,0,31,0,52,0,3,0,47,0\n11,0,55,0,72,0,42,0,29,0,58,0\n51,0,75,0,30,0,6,0,41,0,71,0\n19,0,68,0,8,0,50,0,5,0,44,0\n40,0,20,0,43,0,64,0,27,0,13,0\n1,0,35,0,4,0,73,0,18,0,74,0\n61,0,32,0,62,0,3,0,63,0,49,0\n56,0,76,0,24,0,36,0,47,0,60,0\n54,0,45,0,59,0,53,0,39,0,46,0\n33,0,48,0,57,0,14,0,69,0,66,0\n31,0,26,0,70,0,28,0,38,0,65,0\n2,0,21,0,37,0,22,0,9,0,67,0\n7,0,16,0,23,0,17,0,25,0,12,0\n52,0,15,0,19,0,34,0,10,0,58,0\n42,0,53,0,60,0,36,0,68,0,35,0\n5,0,51,0,24,0,61,0,18,0,27,0\n28,0,55,0,66,0,75,0,47,0,54,0\n1,0,63,0,14,0,56,0,70,0,29,0\n25,0,76,0,30,0,48,0,37,0,32,0\n39,0,41,0,3,0,23,0,38,0,20,0\n40,0,44,0,49,0,15,0,46,0,67,0\n64,0,22,0,31,0,62,0,6,0,69,0\n21,0,71,0,26,0,4,0,59,0,16,0\n33,0,65,0,13,0,12,0,10,0,8,0\n45,0,7,0,11,0,50,0,43,0,2,0\n72,0,34,0,9,0,74,0,17,0,57,0\n52,0,68,0,56,0,73,0,23,0,40,0\n42,0,64,0,5,0,32,0,47,0,70,0\n14,0,75,0,44,0,4,0,37,0,24,0\n49,0,60,0,71,0,31,0,19,0,55,0\n36,0,50,0,1,0,21,0,15,0,62,0\n46,0,6,0,17,0,12,0,48,0,3,0\n76,0,33,0,2,0,74,0,59,0,28,0\n16,0,73,0,38,0,66,0,43,0,72,0\n29,0,51,0,20,0,45,0,25,0,35,0\n58,0,63,0,27,0,9,0,69,0,39,0\n57,0,11,0,18,0,10,0,54,0,13,0\n65,0,41,0,7,0,34,0,53,0,22,0\n26,0,52,0,67,0,8,0,30,0,61,0\n66,0,42,0,59,0,17,0,24,0,50,0\n38,0,71,0,32,0,36,0,29,0,2,0\n9,0,62,0,3,0,33,0,43,0,4,0\n25,0,18,0,28,0,44,0,21,0,64,0\n73,0,55,0,57,0,39,0,51,0,7,0\n48,0,47,0,8,0,75,0,1,0,34,0\n41,0,61,0,68,0,37,0,31,0,10,0\n74,0,56,0,16,0,46,0,58,0,20,0\n53,0,69,0,49,0,11,0,26,0,5,0\n15,0,63,0,72,0,12,0,54,0,76,0\n65,0,35,0,14,0,6,0,27,0,67,0\n23,0,70,0,60,0,30,0,40,0,45,0\n22,0,19,0,75,0,52,0,13,0,36,0\n10,0,39,0,43,0,42,0,56,0,71,0\n31,0,1,0,46,0,9,0,24,0,32,0\n11,0,37,0,63,0,51,0,38,0,8,0\n73,0,61,0,12,0,21,0,69,0,20,0\n26,0,7,0,58,0,3,0,35,0,54,0\n34,0,4,0,13,0,23,0,29,0,76,0\n18,0,40,0,47,0,17,0,33,0,49,0\n50,0,64,0,60,0,48,0,65,0,72,0\n68,0,16,0,15,0,14,0,22,0,45,0\n53,0,62,0,27,0,28,0,57,0,30,0\n6,0,55,0,44,0,52,0,2,0,70,0\n25,0,67,0,5,0,41,0,66,0,74,0\n59,0,38,0,29,0,19,0,47,0,7,0\n75,0,26,0,20,0,50,0,10,0,40,0\n37,0,46,0,35,0,71,0,63,0,13,0\n57,0,43,0,21,0,32,0,68,0,65,0\n62,0,24,0,54,0,48,0,70,0,73,0\n74,0,34,0,69,0,51,0,44,0,3,0\n52,0,28,0,22,0,39,0,72,0,49,0\n27,0,1,0,33,0,42,0,45,0,31,0\n36,0,12,0,30,0,58,0,5,0,14,0\n18,0,53,0,6,0,19,0,16,0,76,0\n64,0,9,0,61,0,11,0,66,0,23,0\n55,0,17,0,4,0,56,0,67,0,41,0\n60,0,15,0,8,0,59,0,2,0,25,0\n"
  },
  {
    "path": "schedules/77_1.csv",
    "content": "44,0,57,0,11,0,22,0,23,0,72,0\n20,0,75,0,1,0,40,0,62,0,76,0\n64,0,51,0,17,0,73,0,3,0,70,0\n41,0,46,0,47,0,42,0,19,0,31,0\n69,0,8,0,14,0,29,0,32,0,26,0\n53,0,15,0,4,0,59,0,39,0,66,0\n16,0,56,0,25,0,68,0,2,0,9,0\n49,0,58,0,55,0,28,0,54,0,50,0\n5,0,74,0,63,0,48,0,43,0,6,0\n61,0,18,0,21,0,12,0,67,0,38,0\n52,0,33,0,60,0,24,0,13,0,37,0\n34,0,35,0,30,0,36,0,10,0,65,0\n27,0,77,0,45,0,71,0,7,0,11,1\n"
  },
  {
    "path": "schedules/77_10.csv",
    "content": "76,0,43,0,7,0,4,0,77,0,18,0\n65,0,1,0,45,0,60,0,48,0,35,0\n23,0,9,0,29,0,24,0,73,0,36,0\n32,0,25,0,50,0,56,0,52,0,49,0\n71,0,63,0,11,0,40,0,19,0,61,0\n64,0,37,0,30,0,10,0,31,0,67,0\n6,0,72,0,54,0,47,0,20,0,13,0\n44,0,41,0,5,0,17,0,14,0,59,0\n74,0,68,0,34,0,21,0,3,0,8,0\n66,0,69,0,2,0,51,0,57,0,15,0\n26,0,39,0,16,0,58,0,75,0,28,0\n55,0,46,0,12,0,62,0,27,0,33,0\n22,0,53,0,70,0,38,0,42,0,6,0\n60,0,18,0,71,0,25,0,52,0,64,0\n11,0,76,0,10,0,54,0,50,0,41,0\n2,0,77,0,36,0,74,0,45,0,37,0\n47,0,26,0,43,0,19,0,48,0,15,0\n29,0,57,0,35,0,23,0,72,0,62,0\n20,0,32,0,55,0,59,0,58,0,9,0\n27,0,69,0,44,0,21,0,42,0,28,0\n5,0,34,0,67,0,70,0,12,0,1,0\n51,0,13,0,22,0,63,0,73,0,30,0\n31,0,3,0,49,0,53,0,65,0,40,0\n7,0,39,0,17,0,56,0,66,0,16,0\n46,0,4,0,8,0,75,0,61,0,24,0\n38,0,68,0,77,0,33,0,14,0,11,0\n72,1,37,0,50,0,60,1,44,0,54,0\n10,1,27,0,1,0,2,1,22,0,71,0\n52,0,36,0,12,0,26,0,3,0,69,0\n41,0,9,0,45,0,25,0,7,0,40,0\n64,0,35,0,17,0,21,0,51,0,43,0\n68,0,48,0,18,0,38,0,24,0,49,0\n53,0,15,0,55,0,75,0,73,0,34,0\n74,0,65,0,23,0,67,0,76,0,14,0\n33,0,47,0,59,0,29,0,30,0,4,0\n57,0,70,0,13,0,8,0,56,0,58,0\n31,0,20,0,63,0,62,0,39,0,66,0\n46,0,19,0,28,0,5,0,6,0,32,0\n61,0,42,0,12,0,16,0,48,0,37,0\n53,0,67,0,51,0,50,0,68,0,7,0\n59,0,22,0,34,0,11,0,65,0,18,0\n15,0,45,0,58,0,38,0,21,0,29,0\n10,0,23,0,49,0,70,0,33,0,63,0\n24,0,60,0,14,0,39,0,69,0,32,0\n26,0,4,0,72,0,27,0,66,0,25,0\n46,0,77,0,3,0,41,0,35,0,42,0\n74,0,52,0,30,0,55,0,43,0,6,0\n5,0,76,0,71,0,36,0,56,0,20,0\n47,0,75,0,62,0,17,0,2,0,40,0\n61,0,8,0,28,0,54,0,73,0,31,0\n19,0,1,0,9,0,44,0,64,0,57,0\n16,0,14,0,50,0,13,0,21,0,18,0\n55,0,37,0,39,0,25,0,29,0,70,0\n26,0,7,0,74,0,46,0,65,0,59,0\n17,0,60,0,34,0,58,0,67,0,36,0\n32,0,66,0,40,0,22,0,48,0,61,0\n6,0,4,0,56,0,3,0,64,0,62,0\n71,0,28,0,15,0,12,0,68,0,41,0\n43,0,75,0,63,0,31,0,1,0,76,0\n20,0,19,0,38,0,2,0,23,0,30,0\n11,0,51,0,42,0,9,0,49,0,47,0\n16,0,27,0,73,0,54,0,35,0,52,0\n33,0,8,0,53,0,69,0,72,0,5,0\n13,0,45,0,77,0,44,0,24,0,10,0\n57,0,14,0,62,0,37,0,7,0,71,0\n50,0,40,0,64,0,26,0,46,0,2,0\n36,0,17,0,4,0,55,0,19,0,31,0\n23,0,56,0,60,0,28,0,47,0,27,0\n32,0,76,0,51,0,16,0,70,0,38,0\n39,0,9,0,52,0,33,0,34,0,13,0\n25,0,8,0,59,0,77,0,12,0,63,0\n10,0,58,0,22,0,3,0,35,0,15,0\n24,0,57,0,21,0,54,0,65,0,5,0\n74,0,29,0,48,0,11,0,20,0,53,0\n73,0,72,0,42,0,67,0,43,0,45,0\n69,0,61,0,41,0,6,0,1,0,49,0\n30,0,75,0,18,0,66,0,44,0,68,0\n40,0,38,0,35,0,4,0,37,0,34,0\n54,0,51,0,56,0,55,0,77,0,22,0\n5,0,63,0,29,0,50,0,27,0,3,0\n25,0,28,0,62,0,10,0,36,0,43,0\n14,0,19,0,7,0,58,0,73,0,49,0\n24,0,2,0,67,0,53,0,16,0,41,0\n65,0,9,0,12,0,72,0,30,0,17,0\n52,0,13,0,68,0,59,0,61,0,76,0\n44,0,31,0,70,0,15,0,74,0,60,0\n18,0,26,0,32,0,33,0,42,0,57,0\n47,0,8,0,6,0,71,0,45,0,66,0\n1,0,46,0,21,0,39,0,11,0,23,0\n69,0,75,0,64,0,20,0,48,0,7,0\n24,0,30,0,27,0,76,0,62,0,34,0\n43,0,14,0,53,0,10,0,9,0,61,0\n38,0,73,0,44,0,56,0,26,0,63,0\n65,0,19,0,52,0,8,0,37,0,51,0\n12,0,4,0,54,0,39,0,2,0,42,0\n40,0,1,0,74,0,72,0,18,0,28,0\n6,0,58,0,77,0,23,0,50,0,48,0\n45,0,70,0,3,0,59,0,71,0,69,0\n13,0,64,0,15,0,32,0,11,0,17,0\n21,0,67,0,66,0,49,0,29,0,55,0\n25,0,31,0,35,0,68,0,5,0,47,0\n75,0,41,0,33,0,36,0,60,0,22,0\n57,0,20,0,34,0,46,0,16,0,10,0\n23,0,71,0,44,0,7,0,53,0,4,0\n30,0,56,0,1,0,54,0,26,0,14,0\n66,0,65,0,73,0,70,0,64,0,77,0\n21,0,2,0,48,0,28,0,63,0,9,0\n33,0,35,0,19,0,50,0,24,0,31,0\n67,0,3,0,55,0,18,0,38,0,47,0\n39,0,49,0,15,0,36,0,59,0,72,0\n62,0,61,0,58,0,5,0,74,0,51,0\n46,0,76,0,22,0,17,0,25,0,69,0\n27,0,37,0,41,0,13,0,32,0,43,0\n57,0,52,0,75,0,12,0,45,0,11,0\n60,0,16,0,29,0,6,0,40,0,68,0\n20,0,42,0,50,0,8,0,14,0,15,0\n48,0,56,0,34,0,72,0,31,0,51,0\n3,0,25,0,33,0,2,0,44,0,61,0\n10,0,69,0,73,0,4,0,32,0,74,0\n63,0,47,0,58,0,41,0,46,0,52,0\n21,0,12,0,76,0,19,0,53,0,60,0\n27,0,40,0,67,0,39,0,57,0,77,0\n36,0,11,0,28,0,70,0,30,0,35,0\n49,0,64,0,16,0,22,0,5,0,45,0\n71,0,42,0,13,0,29,0,75,0,65,0\n17,0,24,0,68,0,1,0,20,0,37,0\n62,0,6,0,18,0,26,0,9,0,8,0\n59,0,54,0,43,0,66,0,38,0,23,0\n7,0,72,0,2,0,55,0,60,0,10,0\n"
  },
  {
    "path": "schedules/77_11.csv",
    "content": "67,0,50,0,24,0,8,0,14,0,42,0\n71,0,9,0,5,0,72,0,12,0,30,0\n13,0,56,0,35,0,68,0,58,0,59,0\n4,0,19,0,53,0,48,0,16,0,31,0\n1,0,73,0,61,0,47,0,49,0,52,0\n34,0,27,0,32,0,65,0,63,0,54,0\n23,0,6,0,38,0,57,0,51,0,44,0\n20,0,25,0,22,0,7,0,21,0,43,0\n33,0,36,0,60,0,64,0,15,0,66,0\n18,0,28,0,26,0,29,0,74,0,2,0\n37,0,76,0,62,0,55,0,11,0,17,0\n3,0,46,0,70,0,39,0,69,0,40,0\n75,0,77,0,54,0,41,0,45,0,10,0\n67,0,6,0,43,0,31,0,65,0,12,0\n44,0,52,0,63,0,13,0,59,0,5,0\n34,0,49,0,66,0,25,0,68,0,24,0\n33,0,32,0,64,0,55,0,50,0,18,0\n16,0,36,0,11,0,30,0,56,0,2,0\n39,0,27,0,20,0,23,0,53,0,73,0\n69,0,14,0,37,0,45,0,9,0,19,0\n46,0,8,0,1,0,76,0,74,0,41,0\n42,0,58,0,77,0,61,0,51,0,29,0\n40,0,62,0,7,0,26,0,47,0,71,0\n28,0,17,0,22,0,60,0,57,0,35,0\n70,0,10,0,21,0,48,0,15,0,38,0\n3,0,4,0,18,0,75,0,72,0,67,0\n13,1,73,0,9,0,25,1,8,0,36,0\n64,1,29,0,30,0,31,1,59,0,14,0\n65,1,39,0,55,0,74,0,24,0,51,0\n50,0,54,0,71,0,49,0,1,0,22,0\n17,0,53,0,63,0,70,0,41,0,58,0\n2,0,60,0,52,0,10,0,48,0,43,0\n20,0,4,0,62,0,28,0,5,0,35,0\n38,0,33,0,27,0,46,0,37,0,42,0\n44,0,61,0,34,0,76,0,15,0,45,0\n47,0,69,0,72,0,21,0,68,0,16,0\n23,0,40,0,11,0,7,0,77,0,6,0\n57,0,66,0,26,0,3,0,56,0,32,0\n75,0,19,0,36,0,12,0,55,0,52,0\n59,0,4,0,64,0,17,0,54,0,43,0\n67,0,5,0,61,0,27,0,22,0,10,0\n44,0,25,0,58,0,46,0,18,0,39,0\n51,0,15,0,68,0,7,0,9,0,37,0\n31,0,29,0,33,0,34,0,71,0,73,0\n77,0,24,0,57,0,70,0,53,0,62,0\n47,0,13,0,3,0,11,0,20,0,60,0\n65,0,56,0,49,0,38,0,2,0,14,0\n45,0,23,0,48,0,50,0,30,0,74,0\n35,0,72,0,16,0,32,0,40,0,8,0\n42,0,12,0,28,0,1,0,69,0,26,0\n76,0,66,0,63,0,75,0,21,0,6,0\n41,0,20,0,18,0,19,0,61,0,71,0\n9,0,36,0,47,0,58,0,38,0,49,0\n55,0,14,0,77,0,3,0,2,0,31,0\n62,0,29,0,43,0,16,0,15,0,33,0\n12,0,34,0,64,0,37,0,8,0,53,0\n73,0,59,0,60,0,4,0,46,0,6,0\n51,0,72,0,70,0,50,0,27,0,76,0\n68,0,11,0,52,0,41,0,57,0,65,0\n48,0,21,0,13,0,39,0,75,0,5,0\n40,0,42,0,22,0,66,0,44,0,30,0\n69,0,54,0,74,0,67,0,56,0,17,0\n45,0,35,0,63,0,24,0,7,0,1,0\n19,0,10,0,25,0,23,0,28,0,32,0\n59,0,50,0,16,0,26,0,20,0,34,0\n72,0,38,0,46,0,31,0,61,0,62,0\n47,0,30,0,57,0,76,0,64,0,39,0\n48,0,75,0,22,0,11,0,42,0,65,0\n27,0,41,0,6,0,29,0,36,0,21,0\n32,0,43,0,13,0,69,0,77,0,49,0\n26,0,53,0,60,0,35,0,67,0,9,0\n14,0,33,0,45,0,70,0,68,0,5,0\n58,0,40,0,15,0,25,0,55,0,1,0\n56,0,54,0,24,0,52,0,18,0,23,0\n37,0,28,0,71,0,73,0,63,0,3,0\n74,0,4,0,12,0,7,0,44,0,10,0\n2,0,66,0,8,0,19,0,17,0,51,0\n49,0,62,0,41,0,48,0,67,0,76,0\n42,0,45,0,57,0,20,0,21,0,55,0\n69,0,25,0,61,0,35,0,6,0,33,0\n40,0,68,0,73,0,75,0,50,0,43,0\n60,0,74,0,18,0,63,0,77,0,36,0\n37,0,58,0,26,0,30,0,65,0,4,0\n39,0,38,0,7,0,34,0,19,0,59,0\n5,0,46,0,51,0,53,0,47,0,54,0\n22,0,64,0,3,0,10,0,16,0,29,0\n27,0,15,0,8,0,28,0,52,0,56,0\n24,0,2,0,17,0,44,0,13,0,71,0\n32,0,11,0,31,0,70,0,1,0,9,0\n12,0,14,0,66,0,72,0,23,0,20,0\n19,0,73,0,67,0,57,0,58,0,76,0\n16,0,6,0,39,0,42,0,68,0,54,0\n65,0,62,0,5,0,60,0,50,0,69,0\n45,0,22,0,47,0,8,0,18,0,63,0\n51,0,49,0,31,0,33,0,10,0,40,0\n21,0,52,0,17,0,34,0,46,0,77,0\n32,0,48,0,12,0,3,0,24,0,61,0\n56,0,44,0,72,0,43,0,25,0,37,0\n53,0,14,0,11,0,74,0,15,0,71,0\n1,0,29,0,66,0,13,0,4,0,38,0\n55,0,28,0,9,0,59,0,41,0,23,0\n35,0,2,0,75,0,70,0,30,0,27,0\n26,0,7,0,48,0,64,0,36,0,46,0\n51,0,25,0,12,0,63,0,62,0,16,0\n49,0,5,0,18,0,37,0,31,0,57,0\n10,0,50,0,8,0,11,0,39,0,66,0\n77,0,76,0,4,0,33,0,22,0,9,0\n30,0,3,0,17,0,27,0,68,0,1,0\n67,0,21,0,53,0,2,0,32,0,59,0\n7,0,65,0,61,0,55,0,73,0,54,0\n70,0,56,0,42,0,41,0,60,0,34,0\n52,0,20,0,38,0,74,0,40,0,64,0\n71,0,45,0,43,0,58,0,28,0,36,0\n26,0,19,0,72,0,15,0,13,0,6,0\n23,0,69,0,24,0,75,0,47,0,29,0\n44,0,14,0,21,0,35,0,11,0,73,0\n57,0,50,0,63,0,61,0,4,0,2,0\n30,0,31,0,8,0,60,0,25,0,54,0\n58,0,52,0,16,0,33,0,7,0,66,0\n55,0,37,0,13,0,67,0,70,0,22,0\n59,0,27,0,51,0,69,0,48,0,71,0\n5,0,41,0,43,0,26,0,24,0,38,0\n28,0,65,0,1,0,77,0,72,0,53,0\n39,0,56,0,29,0,45,0,12,0,40,0\n18,0,6,0,10,0,9,0,14,0,17,0\n76,0,23,0,35,0,42,0,36,0,3,0\n75,0,20,0,15,0,49,0,46,0,32,0\n68,0,74,0,44,0,62,0,19,0,64,0\n34,0,43,0,55,0,47,0,27,0,66,0\n25,0,70,0,71,0,4,0,67,0,52,0\n1,0,16,0,37,0,39,0,61,0,60,0\n30,0,69,0,38,0,7,0,53,0,18,0\n17,0,33,0,8,0,21,0,26,0,65,0\n64,0,42,0,49,0,63,0,11,0,19,0\n54,0,40,0,76,0,14,0,13,0,28,0\n47,0,15,0,31,0,41,0,50,0,35,0\n29,0,9,0,77,0,20,0,48,0,44,0\n2,0,46,0,68,0,12,0,23,0,22,0\n24,0,36,0,59,0,10,0,72,0,57,0\n73,0,32,0,75,0,51,0,62,0,56,0\n74,0,6,0,5,0,34,0,58,0,3,0\n13,0,64,0,65,0,45,0,25,0,31,0\n"
  },
  {
    "path": "schedules/77_12.csv",
    "content": "24,0,49,0,65,0,14,0,37,0,39,0\n55,0,31,0,66,0,56,0,61,0,21,0\n72,0,50,0,38,0,4,0,33,0,45,0\n76,0,7,0,35,0,22,0,12,0,19,0\n73,0,36,0,11,0,48,0,43,0,18,0\n6,0,77,0,60,0,32,0,59,0,40,0\n17,0,67,0,16,0,34,0,62,0,68,0\n64,0,27,0,1,0,30,0,42,0,41,0\n54,0,46,0,25,0,75,0,47,0,74,0\n23,0,10,0,5,0,20,0,8,0,3,0\n2,0,51,0,53,0,44,0,15,0,28,0\n26,0,52,0,71,0,63,0,70,0,57,0\n29,0,58,0,9,0,69,0,13,0,6,0\n50,0,30,0,12,0,36,0,59,0,38,0\n11,0,4,0,66,0,34,0,42,0,76,0\n61,0,39,0,62,0,45,0,64,0,25,0\n55,0,43,0,2,0,72,0,35,0,14,0\n52,0,56,0,16,0,22,0,32,0,77,0\n13,0,58,0,75,0,51,0,73,0,20,0\n8,0,19,0,26,0,37,0,74,0,40,0\n3,0,1,0,69,0,15,0,17,0,48,0\n23,0,29,0,33,0,18,0,46,0,70,0\n44,0,67,0,9,0,24,0,63,0,10,0\n68,0,54,0,28,0,7,0,5,0,21,0\n71,0,60,0,41,0,49,0,53,0,31,0\n27,0,57,0,35,0,47,0,65,0,40,0\n48,0,37,0,34,0,50,0,13,0,64,0\n14,0,8,0,61,0,11,0,69,0,52,0\n45,0,22,0,74,0,1,0,43,0,15,0\n42,0,24,0,59,0,29,0,19,0,51,0\n10,0,21,0,39,0,23,0,72,0,58,0\n47,0,12,0,20,0,68,0,56,0,9,0\n76,0,49,0,3,0,25,0,27,0,55,0\n6,0,28,0,70,0,62,0,18,0,31,0\n16,0,4,0,30,0,71,0,75,0,44,0\n63,0,32,0,65,0,73,0,53,0,54,0\n46,0,7,0,66,0,38,0,67,0,57,0\n60,0,2,0,26,0,33,0,41,0,17,0\n5,0,29,0,14,0,77,0,36,0,45,0\n68,0,64,0,49,0,58,0,76,0,70,0\n39,0,15,0,20,0,21,0,71,0,27,0\n31,0,32,0,44,0,3,0,34,0,74,0\n50,0,1,0,11,0,51,0,54,0,35,0\n37,0,17,0,63,0,59,0,25,0,66,0\n9,0,18,0,4,0,55,0,57,0,77,0\n19,0,69,0,43,0,13,0,5,0,16,0\n75,0,67,0,23,0,2,0,40,0,12,0\n10,0,73,0,30,0,46,0,61,0,28,0\n56,0,33,0,36,0,62,0,41,0,8,0\n48,0,65,0,42,0,38,0,22,0,60,0\n47,0,53,0,7,0,72,0,24,0,52,0\n6,0,25,0,4,0,26,0,20,0,14,0\n23,0,40,0,31,0,45,0,76,0,9,0\n59,0,57,0,21,0,73,0,1,0,2,0\n75,0,77,0,18,0,34,0,8,0,49,0\n13,0,41,0,36,0,61,0,65,0,16,0\n52,0,60,0,66,0,28,0,74,0,35,0\n48,0,5,0,62,0,32,0,7,0,24,0\n17,0,10,0,19,0,64,0,12,0,54,0\n27,0,38,0,37,0,69,0,70,0,67,0\n50,0,3,0,44,0,29,0,47,0,39,0\n63,0,72,0,15,0,11,0,56,0,46,0\n42,0,53,0,43,0,33,0,55,0,58,0\n6,0,26,0,22,0,68,0,51,0,30,0\n62,0,74,0,59,0,71,0,9,0,65,0\n73,0,14,0,64,0,20,0,67,0,31,0\n36,0,7,0,2,0,39,0,4,0,69,0\n46,0,5,0,12,0,52,0,48,0,13,0\n54,0,72,0,34,0,70,0,29,0,60,0\n6,0,53,0,8,0,50,0,17,0,76,0\n55,0,21,0,15,0,30,0,33,0,19,0\n1,0,75,0,26,0,66,0,10,0,32,0\n57,0,44,0,24,0,11,0,41,0,23,0\n68,0,58,0,22,0,18,0,63,0,40,0\n51,0,38,0,3,0,37,0,43,0,56,0\n71,0,77,0,42,0,61,0,25,0,47,0\n45,0,35,0,16,0,28,0,27,0,49,0\n14,0,70,0,9,0,30,0,60,0,75,0\n36,0,29,0,74,0,11,0,53,0,17,0\n34,0,58,0,59,0,24,0,26,0,15,0\n55,0,54,0,56,0,39,0,52,0,73,0\n77,0,2,0,33,0,65,0,22,0,64,0\n46,0,21,0,76,0,37,0,62,0,44,0\n40,0,51,0,66,0,5,0,3,0,41,0\n61,0,48,0,72,0,57,0,6,0,20,0\n43,0,4,0,47,0,8,0,28,0,12,0\n42,0,27,0,63,0,7,0,23,0,49,0\n71,0,68,0,69,0,45,0,32,0,19,0\n67,0,1,0,25,0,50,0,16,0,18,0\n13,0,10,0,31,0,35,0,38,0,53,0\n64,0,52,0,40,0,72,0,36,0,44,0\n24,0,34,0,46,0,43,0,20,0,65,0\n58,0,30,0,7,0,11,0,77,0,3,0\n9,0,12,0,6,0,66,0,49,0,33,0\n41,0,69,0,18,0,76,0,59,0,54,0\n39,0,1,0,63,0,38,0,47,0,31,0\n21,0,32,0,8,0,29,0,42,0,67,0\n4,0,51,0,74,0,73,0,70,0,16,0\n19,0,48,0,60,0,23,0,25,0,56,0\n62,0,75,0,35,0,68,0,15,0,61,0\n26,0,17,0,28,0,55,0,71,0,13,0\n50,0,57,0,14,0,5,0,27,0,22,0\n37,0,45,0,47,0,10,0,2,0,18,0\n42,0,21,0,3,0,69,0,36,0,63,0\n52,0,34,0,41,0,25,0,9,0,38,0\n51,0,16,0,8,0,46,0,39,0,60,0\n70,0,20,0,77,0,53,0,1,0,19,0\n6,0,11,0,75,0,5,0,55,0,64,0\n76,0,48,0,33,0,10,0,35,0,29,0\n59,0,23,0,13,0,68,0,14,0,66,0\n24,0,30,0,2,0,50,0,31,0,74,0\n22,0,17,0,54,0,37,0,4,0,61,0\n49,0,15,0,57,0,32,0,28,0,43,0\n72,0,73,0,26,0,12,0,62,0,27,0\n44,0,56,0,65,0,67,0,7,0,45,0\n58,0,40,0,38,0,71,0,16,0,14,0\n77,0,74,0,68,0,55,0,41,0,10,0\n4,0,3,0,64,0,53,0,46,0,9,0\n34,0,51,0,61,0,63,0,19,0,2,0\n18,0,32,0,39,0,17,0,30,0,35,0\n23,0,15,0,73,0,6,0,37,0,7,0\n43,0,40,0,29,0,52,0,1,0,62,0\n58,0,27,0,8,0,66,0,48,0,44,0\n72,0,31,0,42,0,59,0,65,0,5,0\n47,0,54,0,49,0,36,0,26,0,67,0\n12,0,70,0,25,0,22,0,21,0,11,0\n28,0,60,0,69,0,20,0,50,0,75,0\n56,0,57,0,45,0,13,0,76,0,24,0\n71,0,1,0,7,0,33,0,34,0,14,0\n17,0,46,0,43,0,27,0,77,0,31,0\n18,0,52,0,65,0,3,0,19,0,6,0\n38,0,49,0,61,0,44,0,68,0,29,0\n64,0,51,0,62,0,69,0,54,0,23,0\n21,0,45,0,75,0,48,0,53,0,26,0\n36,0,66,0,22,0,24,0,73,0,71,0\n55,0,37,0,12,0,57,0,60,0,16,0\n67,0,33,0,28,0,59,0,39,0,11,0\n13,0,9,0,8,0,2,0,15,0,25,0\n20,0,76,0,5,0,30,0,74,0,63,0\n35,0,32,0,47,0,58,0,4,0,41,0\n56,0,70,0,10,0,50,0,40,0,42,0\n72,0,57,0,19,0,75,0,17,0,49,0\n33,0,68,0,11,0,52,0,31,0,37,0\n55,0,59,0,45,0,64,0,7,0,8,0\n2,0,20,0,16,0,29,0,66,0,54,0\n36,0,65,0,25,0,28,0,58,0,1,0\n53,0,30,0,69,0,40,0,34,0,56,0\n62,0,22,0,70,0,13,0,3,0,47,0\n61,0,32,0,50,0,43,0,23,0,9,0\n73,0,44,0,46,0,42,0,26,0,35,0\n63,0,41,0,14,0,12,0,48,0,39,0\n71,0,76,0,67,0,51,0,72,0,77,0\n74,0,24,0,38,0,6,0,18,0,21,0\n10,0,15,0,27,0,4,0,5,0,60,0\n"
  },
  {
    "path": "schedules/77_13.csv",
    "content": "16,0,56,0,68,0,45,0,43,0,22,0\n64,0,70,0,17,0,3,0,61,0,1,0\n27,0,9,0,42,0,2,0,20,0,63,0\n28,0,65,0,53,0,6,0,18,0,49,0\n69,0,50,0,48,0,19,0,33,0,71,0\n30,0,77,0,38,0,51,0,62,0,29,0\n32,0,11,0,47,0,10,0,25,0,73,0\n57,0,41,0,58,0,31,0,44,0,35,0\n59,0,21,0,24,0,5,0,67,0,66,0\n55,0,36,0,14,0,15,0,60,0,52,0\n54,0,75,0,13,0,4,0,39,0,76,0\n12,0,37,0,23,0,8,0,7,0,74,0\n72,0,40,0,46,0,26,0,34,0,45,0\n73,0,65,0,31,0,38,0,69,0,56,0\n2,0,62,0,32,0,35,0,63,0,67,0\n28,0,47,0,48,0,51,0,24,0,57,0\n10,0,60,0,71,0,5,0,16,0,13,0\n21,0,1,0,4,0,9,0,74,0,58,0\n46,0,43,0,77,0,18,0,23,0,52,0\n30,0,66,0,7,0,76,0,54,0,25,0\n42,0,55,0,12,0,72,0,61,0,75,0\n17,0,44,0,20,0,8,0,29,0,14,0\n19,0,15,0,34,0,64,0,53,0,11,0\n33,0,39,0,3,0,36,0,22,0,40,0\n49,0,26,0,37,0,70,0,27,0,50,0\n41,0,68,0,4,0,6,0,59,0,46,0\n69,1,58,0,67,0,75,0,7,0,77,0\n32,0,56,0,54,0,5,0,8,0,18,0\n62,0,48,0,42,0,29,0,45,0,64,0\n52,0,11,0,76,0,40,0,21,0,16,0\n38,0,70,0,33,0,63,0,60,0,14,0\n1,0,19,0,28,0,26,0,23,0,30,0\n57,0,31,0,49,0,3,0,12,0,2,0\n6,0,55,0,9,0,10,0,24,0,50,0\n51,0,72,0,68,0,17,0,53,0,41,0\n71,0,20,0,37,0,61,0,34,0,65,0\n59,0,44,0,36,0,22,0,13,0,47,0\n35,0,15,0,43,0,66,0,73,0,39,0\n74,0,19,0,45,0,27,0,25,0,5,0\n8,0,67,0,10,0,70,0,76,0,57,0\n69,0,55,0,68,0,51,0,21,0,23,0\n16,0,46,0,75,0,9,0,37,0,28,0\n63,0,44,0,61,0,7,0,1,0,31,0\n60,0,56,0,26,0,41,0,52,0,39,0\n53,0,48,0,33,0,12,0,20,0,59,0\n43,0,25,0,36,0,42,0,6,0,64,0\n18,0,71,0,47,0,11,0,4,0,66,0\n30,0,74,0,40,0,50,0,73,0,2,0\n15,0,58,0,65,0,29,0,3,0,32,0\n22,0,62,0,24,0,54,0,14,0,72,0\n38,0,35,0,49,0,77,0,13,0,34,0\n27,0,33,0,10,0,17,0,46,0,7,0\n5,0,36,0,4,0,28,0,63,0,66,0\n18,0,73,0,20,0,23,0,64,0,41,0\n44,0,11,0,8,0,68,0,50,0,74,0\n31,0,19,0,61,0,60,0,32,0,6,0\n15,0,22,0,72,0,57,0,2,0,25,0\n77,0,3,0,58,0,48,0,14,0,13,0\n9,0,43,0,12,0,30,0,70,0,62,0\n42,0,52,0,51,0,54,0,49,0,1,0\n55,0,67,0,38,0,37,0,39,0,47,0\n29,0,16,0,71,0,21,0,53,0,27,0\n75,0,59,0,56,0,24,0,35,0,40,0\n69,0,45,0,65,0,76,0,26,0,17,0\n34,0,62,0,25,0,10,0,3,0,28,0\n9,0,33,0,13,0,68,0,8,0,73,0\n58,0,6,0,72,0,20,0,23,0,11,0\n54,0,41,0,50,0,15,0,61,0,29,0\n5,0,53,0,31,0,77,0,55,0,22,0\n70,0,75,0,35,0,52,0,65,0,30,0\n39,0,57,0,18,0,21,0,74,0,63,0\n36,0,1,0,37,0,48,0,45,0,49,0\n12,0,27,0,76,0,38,0,24,0,43,0\n26,0,44,0,64,0,67,0,16,0,4,0\n14,0,32,0,17,0,40,0,71,0,59,0\n66,0,2,0,60,0,46,0,34,0,69,0\n7,0,51,0,47,0,56,0,42,0,19,0\n74,0,70,0,48,0,55,0,41,0,31,0\n30,0,13,0,24,0,37,0,63,0,11,0\n4,0,77,0,20,0,15,0,10,0,16,0\n76,0,35,0,5,0,29,0,9,0,36,0\n61,0,2,0,59,0,38,0,18,0,45,0\n71,0,3,0,6,0,7,0,39,0,54,0\n21,0,57,0,46,0,14,0,42,0,50,0\n34,0,52,0,28,0,32,0,68,0,12,0\n73,0,17,0,56,0,67,0,19,0,62,0\n26,0,25,0,40,0,58,0,60,0,51,0\n22,0,69,0,66,0,49,0,64,0,8,0\n1,0,47,0,27,0,72,0,65,0,33,0\n43,0,23,0,70,0,44,0,53,0,75,0\n9,0,71,0,7,0,15,0,74,0,59,0\n30,0,67,0,46,0,20,0,36,0,31,0\n55,0,2,0,13,0,54,0,19,0,16,0\n42,0,24,0,68,0,3,0,18,0,26,0\n10,0,64,0,65,0,58,0,12,0,39,0\n21,0,25,0,45,0,32,0,41,0,77,0\n76,0,23,0,50,0,63,0,56,0,22,0\n34,0,51,0,75,0,73,0,27,0,14,0\n29,0,57,0,69,0,52,0,37,0,4,0\n61,0,49,0,62,0,47,0,44,0,5,0\n43,0,8,0,53,0,1,0,40,0,60,0\n38,0,72,0,17,0,6,0,66,0,48,0\n28,0,11,0,31,0,33,0,35,0,42,0\n65,0,23,0,3,0,67,0,59,0,9,0\n19,0,26,0,73,0,71,0,57,0,77,0\n58,0,45,0,5,0,47,0,30,0,50,0\n61,0,14,0,25,0,69,0,53,0,4,0\n41,0,63,0,7,0,49,0,34,0,43,0\n6,0,39,0,40,0,27,0,62,0,16,0\n2,0,64,0,1,0,76,0,55,0,24,0\n28,0,46,0,29,0,11,0,56,0,70,0\n8,0,21,0,72,0,36,0,75,0,10,0\n37,0,60,0,54,0,68,0,17,0,35,0\n74,0,32,0,20,0,51,0,22,0,38,0\n52,0,48,0,44,0,18,0,33,0,66,0\n13,0,12,0,40,0,15,0,41,0,1,0\n28,0,67,0,43,0,61,0,71,0,50,0\n65,0,2,0,7,0,11,0,21,0,36,0\n58,0,23,0,16,0,54,0,62,0,57,0\n39,0,20,0,29,0,68,0,49,0,25,0\n8,0,38,0,63,0,46,0,3,0,19,0\n60,0,77,0,76,0,72,0,9,0,47,0\n12,0,14,0,22,0,35,0,6,0,26,0\n34,0,56,0,44,0,48,0,55,0,30,0\n51,0,70,0,45,0,4,0,33,0,24,0\n32,0,53,0,66,0,42,0,13,0,37,0\n74,0,64,0,5,0,52,0,75,0,17,0\n27,0,18,0,15,0,10,0,69,0,31,0\n73,0,54,0,63,0,59,0,72,0,28,0\n41,0,19,0,14,0,65,0,76,0,9,0\n39,0,46,0,8,0,61,0,77,0,48,0\n29,0,4,0,22,0,34,0,1,0,67,0\n21,0,70,0,13,0,56,0,47,0,6,0\n5,0,51,0,37,0,15,0,2,0,44,0\n49,0,33,0,11,0,32,0,43,0,55,0\n52,0,73,0,45,0,20,0,3,0,7,0\n31,0,66,0,62,0,26,0,75,0,68,0\n35,0,69,0,74,0,10,0,40,0,42,0\n50,0,18,0,12,0,17,0,25,0,16,0\n59,0,60,0,27,0,30,0,57,0,64,0\n53,0,71,0,24,0,36,0,58,0,38,0\n41,0,47,0,2,0,23,0,14,0,28,0\n75,0,66,0,19,0,20,0,22,0,1,0\n3,0,74,0,13,0,72,0,69,0,43,0\n37,0,62,0,15,0,33,0,76,0,21,0\n59,0,18,0,7,0,55,0,29,0,26,0\n6,0,45,0,24,0,60,0,44,0,73,0\n35,0,32,0,64,0,46,0,53,0,50,0\n34,0,39,0,5,0,58,0,42,0,70,0\n68,0,10,0,63,0,67,0,71,0,48,0\n49,0,4,0,30,0,8,0,40,0,17,0\n57,0,61,0,16,0,36,0,65,0,51,0\n25,0,9,0,23,0,31,0,38,0,52,0\n77,0,12,0,56,0,11,0,27,0,54,0\n13,0,29,0,6,0,2,0,75,0,33,0\n67,0,26,0,47,0,74,0,34,0,53,0\n42,0,73,0,76,0,48,0,4,0,60,0\n41,0,30,0,16,0,69,0,24,0,32,0\n18,0,36,0,72,0,70,0,37,0,19,0\n64,0,40,0,38,0,57,0,68,0,7,0\n63,0,25,0,77,0,65,0,55,0,44,0\n31,0,54,0,17,0,21,0,43,0,20,0\n23,0,35,0,8,0,15,0,71,0,45,0\n9,0,14,0,10,0,49,0,56,0,66,0\n27,0,22,0,52,0,61,0,58,0,28,0\n11,0,50,0,1,0,59,0,62,0,39,0\n3,0,51,0,69,0,46,0,5,0,12,0\n"
  },
  {
    "path": "schedules/77_14.csv",
    "content": "23,0,19,0,31,0,49,0,34,0,8,0\n51,0,77,0,74,0,64,0,20,0,9,0\n6,0,56,0,25,0,47,0,15,0,13,0\n71,0,70,0,12,0,55,0,10,0,21,0\n69,0,27,0,32,0,37,0,61,0,3,0\n1,0,75,0,65,0,66,0,62,0,38,0\n36,0,11,0,72,0,60,0,7,0,48,0\n29,0,59,0,17,0,52,0,46,0,40,0\n68,0,45,0,67,0,24,0,43,0,76,0\n2,0,22,0,28,0,33,0,53,0,39,0\n54,0,35,0,73,0,4,0,16,0,63,0\n58,0,41,0,26,0,5,0,18,0,42,0\n57,0,44,0,30,0,14,0,50,0,64,0\n37,0,60,0,47,0,46,0,3,0,13,0\n27,0,59,0,24,0,51,0,34,0,71,0\n48,0,6,0,55,0,76,0,17,0,2,0\n69,0,38,0,31,0,28,0,54,0,20,0\n22,0,10,0,62,0,23,0,67,0,11,0\n16,0,18,0,14,0,19,0,39,0,66,0\n50,0,58,0,4,0,25,0,70,0,68,0\n21,0,63,0,32,0,8,0,26,0,74,0\n40,0,45,0,35,0,72,0,44,0,1,0\n30,0,5,0,9,0,42,0,75,0,49,0\n61,0,56,0,65,0,33,0,12,0,41,0\n73,0,15,0,36,0,52,0,53,0,77,0\n29,0,43,0,55,0,57,0,7,0,69,0\n59,1,23,0,16,0,47,1,14,0,58,0\n10,0,19,0,70,0,2,0,37,0,44,0\n18,0,67,0,72,0,25,0,9,0,63,0\n41,0,60,0,24,0,49,0,74,0,64,0\n66,0,51,0,13,0,50,0,61,0,77,0\n36,0,34,0,12,0,45,0,5,0,57,0\n33,0,29,0,76,0,6,0,31,0,35,0\n38,0,26,0,54,0,62,0,43,0,8,0\n40,0,15,0,75,0,71,0,4,0,73,0\n42,0,3,0,1,0,17,0,39,0,11,0\n48,0,27,0,65,0,53,0,21,0,28,0\n56,0,68,0,22,0,52,0,30,0,32,0\n46,0,7,0,9,0,20,0,34,0,58,0\n62,0,41,0,70,0,16,0,51,0,29,0\n61,0,63,0,19,0,77,0,64,0,69,0\n50,0,17,0,26,0,74,0,45,0,33,0\n67,0,55,0,57,0,48,0,40,0,18,0\n8,0,60,0,53,0,10,0,65,0,59,0\n22,0,66,0,27,0,56,0,42,0,54,0\n46,0,38,0,25,0,23,0,44,0,76,0\n6,0,73,0,5,0,37,0,24,0,14,0\n39,0,21,0,15,0,35,0,68,0,75,0\n4,0,11,0,3,0,72,0,28,0,49,0\n71,0,52,0,1,0,20,0,7,0,47,0\n32,0,2,0,12,0,36,0,13,0,31,0\n43,0,40,0,61,0,30,0,58,0,65,0\n6,0,23,0,53,0,66,0,69,0,74,0\n16,0,44,0,68,0,34,0,48,0,9,0\n29,0,63,0,8,0,37,0,76,0,11,0\n38,0,5,0,15,0,10,0,39,0,50,0\n57,0,54,0,1,0,60,0,21,0,77,0\n3,0,24,0,18,0,56,0,70,0,31,0\n26,0,4,0,32,0,64,0,71,0,27,0\n28,0,41,0,45,0,55,0,25,0,52,0\n20,0,30,0,13,0,67,0,35,0,36,0\n73,0,62,0,42,0,2,0,7,0,33,0\n51,0,49,0,14,0,43,0,12,0,47,0\n19,0,59,0,72,0,75,0,17,0,22,0\n46,0,31,0,8,0,16,0,1,0,50,0\n5,0,58,0,32,0,6,0,65,0,11,0\n39,0,4,0,13,0,29,0,34,0,69,0\n20,0,57,0,76,0,73,0,53,0,41,0\n66,0,21,0,37,0,62,0,9,0,45,0\n24,0,25,0,54,0,75,0,19,0,36,0\n44,0,3,0,27,0,23,0,52,0,12,0\n77,0,35,0,55,0,68,0,59,0,26,0\n56,0,30,0,71,0,46,0,51,0,72,0\n48,0,43,0,74,0,42,0,47,0,10,0\n17,0,28,0,64,0,15,0,67,0,2,0\n63,0,40,0,14,0,60,0,33,0,38,0\n7,0,22,0,49,0,61,0,18,0,70,0\n66,0,4,0,9,0,57,0,31,0,41,0\n6,0,76,0,13,0,30,0,59,0,3,0\n8,0,65,0,16,0,44,0,56,0,20,0\n43,0,64,0,52,0,75,0,53,0,37,0\n47,0,50,0,36,0,62,0,63,0,17,0\n54,0,11,0,70,0,45,0,39,0,71,0\n42,0,38,0,61,0,24,0,55,0,72,0\n77,0,1,0,34,0,10,0,29,0,28,0\n33,0,49,0,58,0,15,0,74,0,27,0\n46,0,35,0,2,0,14,0,25,0,32,0\n67,0,48,0,19,0,73,0,12,0,26,0\n40,0,51,0,22,0,69,0,21,0,5,0\n7,0,68,0,37,0,60,0,23,0,18,0\n41,0,9,0,59,0,43,0,63,0,28,0\n75,0,76,0,77,0,47,0,16,0,27,0\n33,0,71,0,3,0,66,0,8,0,36,0\n39,0,62,0,72,0,57,0,74,0,13,0\n65,0,45,0,19,0,4,0,46,0,42,0\n38,0,17,0,7,0,51,0,12,0,68,0\n18,0,64,0,10,0,52,0,21,0,6,0\n60,0,73,0,31,0,58,0,25,0,22,0\n2,0,50,0,53,0,34,0,11,0,40,0\n69,0,26,0,70,0,15,0,1,0,30,0\n44,0,14,0,61,0,67,0,54,0,29,0\n48,0,20,0,35,0,49,0,56,0,5,0\n32,0,55,0,39,0,23,0,24,0,77,0\n36,0,6,0,60,0,16,0,19,0,38,0\n65,0,31,0,63,0,10,0,57,0,27,0\n34,0,25,0,28,0,37,0,74,0,42,0\n14,0,62,0,4,0,44,0,53,0,58,0\n71,0,49,0,59,0,2,0,56,0,1,0\n40,0,70,0,72,0,66,0,64,0,76,0\n17,0,48,0,15,0,24,0,32,0,20,0\n8,0,75,0,30,0,7,0,18,0,41,0\n46,0,12,0,67,0,33,0,69,0,54,0\n51,0,52,0,11,0,13,0,26,0,35,0\n45,0,61,0,21,0,73,0,23,0,47,0\n9,0,43,0,50,0,55,0,22,0,3,0\n29,0,68,0,66,0,5,0,59,0,36,0\n65,0,34,0,18,0,76,0,15,0,14,0\n37,0,33,0,64,0,54,0,48,0,71,0\n42,0,53,0,12,0,60,0,35,0,32,0\n49,0,63,0,45,0,40,0,39,0,58,0\n67,0,50,0,41,0,1,0,23,0,27,0\n13,0,24,0,28,0,16,0,26,0,7,0\n61,0,9,0,52,0,6,0,8,0,70,0\n10,0,68,0,74,0,69,0,56,0,73,0\n5,0,43,0,77,0,44,0,46,0,17,0\n2,0,21,0,47,0,4,0,38,0,72,0\n11,0,62,0,31,0,55,0,19,0,30,0\n29,0,3,0,57,0,51,0,75,0,25,0\n20,0,36,0,14,0,22,0,26,0,42,0\n23,0,13,0,54,0,70,0,65,0,9,0\n10,0,58,0,69,0,24,0,35,0,17,0\n4,0,52,0,8,0,60,0,5,0,67,0\n53,0,7,0,76,0,19,0,50,0,56,0\n30,0,66,0,12,0,15,0,63,0,34,0\n28,0,27,0,68,0,62,0,47,0,40,0\n2,0,64,0,57,0,16,0,45,0,3,0\n25,0,59,0,21,0,11,0,20,0,33,0\n46,0,74,0,75,0,61,0,31,0,55,0\n77,0,71,0,22,0,41,0,48,0,38,0\n44,0,39,0,49,0,6,0,51,0,37,0\n1,0,73,0,18,0,43,0,72,0,32,0\n29,0,50,0,52,0,2,0,65,0,24,0\n23,0,5,0,33,0,30,0,76,0,28,0\n25,0,8,0,64,0,27,0,12,0,62,0\n34,0,55,0,17,0,22,0,60,0,54,0\n48,0,10,0,16,0,59,0,4,0,61,0\n41,0,11,0,21,0,15,0,46,0,6,0\n71,0,42,0,31,0,68,0,63,0,53,0\n20,0,45,0,43,0,13,0,19,0,29,0\n72,0,69,0,75,0,77,0,14,0,70,0\n32,0,44,0,7,0,49,0,57,0,66,0\n37,0,58,0,73,0,36,0,1,0,51,0\n18,0,35,0,74,0,40,0,38,0,3,0\n47,0,56,0,39,0,9,0,26,0,67,0\n42,0,23,0,29,0,15,0,64,0,59,0\n43,0,34,0,16,0,33,0,52,0,72,0\n17,0,49,0,53,0,8,0,21,0,13,0\n10,0,41,0,6,0,50,0,54,0,68,0\n20,0,60,0,62,0,18,0,32,0,45,0\n77,0,56,0,26,0,40,0,31,0,37,0\n30,0,73,0,11,0,9,0,27,0,38,0\n47,0,55,0,69,0,65,0,44,0,36,0\n35,0,19,0,71,0,28,0,57,0,61,0\n1,0,22,0,76,0,4,0,12,0,24,0\n67,0,58,0,74,0,2,0,75,0,66,0\n70,0,3,0,51,0,63,0,46,0,48,0\n5,0,14,0,39,0,7,0,25,0,31,0\n54,0,53,0,16,0,29,0,49,0,30,0\n33,0,40,0,19,0,32,0,10,0,9,0\n37,0,15,0,57,0,59,0,38,0,22,0\n76,0,52,0,42,0,69,0,62,0,71,0\n35,0,34,0,70,0,17,0,47,0,41,0\n27,0,63,0,13,0,1,0,55,0,5,0\n20,0,75,0,12,0,6,0,72,0,50,0\n74,0,56,0,23,0,43,0,36,0,4,0\n65,0,46,0,64,0,73,0,39,0,68,0\n58,0,7,0,21,0,67,0,77,0,3,0\n48,0,28,0,51,0,14,0,8,0,45,0\n25,0,2,0,60,0,26,0,61,0,66,0\n44,0,24,0,47,0,18,0,11,0,59,0\n"
  },
  {
    "path": "schedules/77_2.csv",
    "content": "41,0,43,0,5,0,18,0,27,0,2,0\n37,0,50,0,64,0,52,0,71,0,38,0\n63,0,29,0,46,0,76,0,30,0,62,0\n31,0,11,0,1,0,34,0,3,0,59,0\n61,0,58,0,55,0,56,0,36,0,53,0\n33,0,70,0,14,0,73,0,6,0,39,0\n17,0,8,0,57,0,20,0,40,0,22,0\n24,0,45,0,74,0,12,0,10,0,72,0\n44,0,51,0,47,0,4,0,19,0,23,0\n65,0,68,0,49,0,15,0,42,0,9,0\n28,0,13,0,26,0,25,0,48,0,66,0\n35,0,69,0,7,0,21,0,67,0,32,0\n16,0,75,0,60,0,77,0,54,0,38,0\n6,0,53,0,20,0,1,0,64,0,18,0\n62,0,56,0,2,0,11,0,19,0,24,0\n33,0,27,0,22,0,44,0,12,0,30,0\n59,0,5,0,48,0,65,0,70,0,55,0\n9,0,3,0,29,0,35,0,50,0,45,0\n36,0,69,0,43,0,60,0,51,0,13,0\n76,0,7,0,66,0,74,0,77,0,41,0\n15,0,25,0,57,0,47,0,54,0,14,0\n23,0,67,0,10,0,26,0,49,0,63,0\n34,0,73,0,32,0,17,0,52,0,46,0\n72,0,4,0,8,0,58,0,71,0,75,0\n21,0,68,0,40,0,37,0,31,0,16,0\n42,0,28,0,69,1,39,0,61,0,60,1\n"
  },
  {
    "path": "schedules/77_3.csv",
    "content": "37,0,35,0,8,0,47,0,36,0,26,0\n25,0,72,0,16,0,76,0,61,0,71,0\n62,0,77,0,58,0,14,0,23,0,59,0\n2,0,33,0,60,0,46,0,53,0,39,0\n41,0,13,0,50,0,4,0,69,0,68,0\n75,0,18,0,51,0,55,0,34,0,67,0\n54,0,10,0,21,0,17,0,49,0,11,0\n29,0,15,0,27,0,38,0,12,0,44,0\n20,0,6,0,5,0,28,0,43,0,22,0\n40,0,42,0,45,0,64,0,70,0,32,0\n24,0,30,0,52,0,1,0,48,0,9,0\n56,0,31,0,63,0,57,0,7,0,73,0\n19,0,3,0,66,0,65,0,74,0,13,0\n11,1,2,0,34,0,23,1,37,0,29,0\n67,1,53,0,4,0,16,0,44,0,8,0\n71,0,10,0,58,0,42,0,12,0,6,0\n75,0,59,0,41,0,47,0,60,0,20,0\n7,0,5,0,48,0,50,0,39,0,14,0\n31,0,62,0,36,0,19,0,38,0,32,0\n76,0,54,0,64,0,24,0,27,0,35,0\n70,0,21,0,69,0,73,0,3,0,52,0\n30,0,22,0,77,0,61,0,40,0,56,0\n26,0,55,0,65,0,25,0,33,0,68,0\n66,0,9,0,17,0,28,0,15,0,51,0\n18,0,72,0,46,0,1,0,43,0,63,0\n74,0,49,0,20,0,45,0,57,0,62,0\n14,0,21,0,6,0,34,0,19,0,60,0\n59,0,39,0,52,0,56,0,29,0,54,0\n27,0,67,0,32,0,69,0,2,0,7,0\n9,0,11,0,22,0,13,0,58,0,64,0\n47,0,73,0,10,0,18,0,61,0,48,0\n3,0,24,0,16,0,31,0,46,0,55,0\n1,0,71,0,40,0,51,0,23,0,65,0\n49,0,26,0,50,0,66,0,53,0,63,0\n76,0,28,0,70,0,74,0,8,0,33,0\n68,0,43,0,38,0,42,0,75,0,35,0\n4,0,37,0,45,0,77,0,25,0,15,0\n57,0,5,0,17,0,36,0,30,0,44,0\n41,0,12,0,23,0,72,0,11,0,67,0\n"
  },
  {
    "path": "schedules/77_4.csv",
    "content": "2,0,18,0,16,0,45,0,55,0,31,0\n53,0,11,0,19,0,34,0,17,0,59,0\n58,0,29,0,70,0,4,0,8,0,36,0\n42,0,74,0,57,0,25,0,50,0,39,0\n66,0,24,0,3,0,51,0,35,0,77,0\n6,0,13,0,5,0,44,0,75,0,63,0\n41,0,48,0,43,0,46,0,14,0,23,0\n22,0,49,0,38,0,68,0,10,0,67,0\n72,0,62,0,30,0,33,0,69,0,32,0\n7,0,26,0,54,0,47,0,61,0,52,0\n60,0,73,0,56,0,27,0,64,0,76,0\n40,0,1,0,28,0,65,0,12,0,20,0\n15,0,71,0,59,0,9,0,37,0,21,0\n25,0,36,0,19,0,35,0,68,0,13,0\n42,0,5,0,18,0,11,0,69,0,41,0\n6,0,49,0,32,0,46,0,52,0,74,0\n63,0,39,0,61,0,38,0,53,0,66,0\n26,0,27,0,67,0,28,0,57,0,8,0\n56,0,30,0,23,0,45,0,10,0,7,0\n1,0,64,0,3,0,33,0,14,0,29,0\n37,0,51,0,12,0,16,0,75,0,43,0\n71,0,55,0,4,0,47,0,65,0,17,0\n62,0,9,0,40,0,77,0,70,0,73,0\n50,0,20,0,54,0,58,0,72,0,21,0\n60,0,31,0,22,0,24,0,44,0,48,0\n76,0,34,0,52,0,15,0,2,0,10,0\n68,1,59,0,23,0,8,1,42,0,33,0\n63,1,36,0,17,0,30,1,49,0,18,0\n29,0,12,0,67,0,56,0,71,0,32,0\n58,0,69,0,14,0,26,0,53,0,51,0\n21,0,27,0,77,0,4,0,31,0,13,0\n37,0,3,0,54,0,62,0,76,0,22,0\n15,0,50,0,44,0,16,0,70,0,19,0\n24,0,38,0,75,0,74,0,28,0,45,0\n47,0,43,0,2,0,1,0,73,0,35,0\n40,0,46,0,64,0,39,0,5,0,72,0\n25,0,7,0,9,0,55,0,41,0,66,0\n11,0,61,0,65,0,6,0,57,0,60,0\n20,0,48,0,70,0,34,0,71,0,30,0\n58,0,10,0,62,0,24,0,27,0,19,0\n75,0,77,0,53,0,2,0,42,0,56,0\n68,0,45,0,43,0,50,0,40,0,26,0\n51,0,23,0,52,0,25,0,63,0,22,0\n17,0,8,0,46,0,37,0,1,0,61,0\n4,0,74,0,34,0,72,0,41,0,67,0\n38,0,76,0,7,0,29,0,44,0,18,0\n73,0,11,0,28,0,55,0,54,0,15,0\n57,0,14,0,47,0,13,0,16,0,49,0\n66,0,31,0,32,0,59,0,65,0,64,0\n21,0,35,0,69,0,48,0,6,0,39,0\n60,0,20,0,33,0,9,0,36,0,5,0\n12,0,68,0,63,0,3,0,8,0,30,0\n"
  },
  {
    "path": "schedules/77_5.csv",
    "content": "26,0,72,0,27,0,1,0,9,0,14,0\n37,0,51,0,71,0,49,0,8,0,41,0\n32,0,13,0,47,0,70,0,62,0,60,0\n34,0,11,0,25,0,53,0,35,0,69,0\n15,0,19,0,54,0,23,0,65,0,30,0\n66,0,45,0,2,0,46,0,22,0,38,0\n63,0,10,0,18,0,33,0,44,0,59,0\n50,0,12,0,39,0,67,0,4,0,17,0\n57,0,5,0,43,0,55,0,68,0,16,0\n64,0,24,0,36,0,74,0,52,0,73,0\n31,0,61,0,48,0,29,0,56,0,40,0\n76,0,28,0,6,0,75,0,58,0,21,0\n7,0,3,0,20,0,42,0,77,0,27,0\n69,0,45,0,4,0,1,0,37,0,59,0\n57,0,15,0,14,0,32,0,44,0,12,0\n24,0,2,0,55,0,50,0,13,0,34,0\n64,0,26,0,51,0,46,0,19,0,48,0\n49,0,56,0,22,0,58,0,18,0,5,0\n42,0,41,0,73,0,66,0,75,0,67,0\n9,0,35,0,39,0,6,0,47,0,77,0\n31,0,16,0,25,0,38,0,36,0,60,0\n30,0,71,0,63,0,11,0,52,0,7,0\n23,0,76,0,33,0,61,0,20,0,17,0\n40,0,62,0,21,0,65,0,53,0,43,0\n72,0,3,0,70,0,74,0,54,0,10,0\n8,0,68,0,9,0,29,0,28,0,22,0\n38,1,57,0,42,0,13,1,26,0,56,0\n19,1,12,0,55,0,59,1,35,0,36,0\n77,1,23,0,75,0,63,0,45,0,34,0\n40,0,46,0,69,0,30,0,39,0,49,0\n72,0,5,0,15,0,50,0,71,0,76,0\n62,0,54,0,24,0,16,0,6,0,27,0\n25,0,33,0,32,0,66,0,21,0,3,0\n58,0,47,0,4,0,20,0,53,0,68,0\n17,0,1,0,44,0,64,0,8,0,2,0\n70,0,28,0,37,0,31,0,73,0,18,0\n7,0,65,0,14,0,10,0,48,0,67,0\n51,0,43,0,74,0,61,0,60,0,11,0\n29,0,41,0,50,0,52,0,69,0,32,0\n63,0,53,0,36,0,5,0,3,0,39,0\n19,0,72,0,66,0,24,0,4,0,49,0\n9,0,45,0,30,0,58,0,13,0,64,0\n26,0,37,0,75,0,54,0,7,0,44,0\n67,0,18,0,25,0,61,0,47,0,2,0\n51,0,59,0,65,0,17,0,28,0,52,0\n55,0,20,0,56,0,1,0,10,0,62,0\n6,0,40,0,38,0,15,0,70,0,34,0\n35,0,74,0,27,0,71,0,57,0,33,0\n60,0,22,0,48,0,41,0,77,0,76,0\n29,0,11,0,16,0,73,0,46,0,12,0\n14,0,68,0,23,0,21,0,42,0,31,0\n8,0,54,0,32,0,43,0,39,0,59,0\n38,0,50,0,28,0,10,0,64,0,47,0\n74,0,7,0,62,0,5,0,9,0,19,0\n6,0,44,0,22,0,65,0,69,0,36,0\n77,0,2,0,56,0,16,0,30,0,33,0\n13,0,73,0,76,0,25,0,51,0,27,0\n53,0,52,0,55,0,8,0,66,0,23,0\n17,0,42,0,49,0,29,0,70,0,63,0\n58,0,34,0,67,0,72,0,31,0,43,0\n18,0,1,0,48,0,15,0,75,0,11,0\n60,0,46,0,24,0,20,0,57,0,37,0\n71,0,61,0,21,0,45,0,26,0,12,0\n4,0,41,0,35,0,14,0,40,0,3,0\n68,0,13,0,59,0,38,0,19,0,77,0\n"
  },
  {
    "path": "schedules/77_6.csv",
    "content": "71,0,11,0,67,0,29,0,19,0,25,0\n26,0,16,0,64,0,65,0,69,0,51,0\n47,0,8,0,76,0,48,0,54,0,40,0\n10,0,17,0,68,0,63,0,62,0,43,0\n18,0,52,0,4,0,20,0,37,0,72,0\n9,0,74,0,3,0,32,0,31,0,35,0\n44,0,6,0,36,0,56,0,21,0,70,0\n61,0,73,0,38,0,34,0,39,0,46,0\n12,0,30,0,22,0,49,0,27,0,58,0\n59,0,7,0,41,0,23,0,66,0,24,0\n28,0,50,0,5,0,53,0,15,0,75,0\n45,0,77,0,57,0,60,0,13,0,1,0\n55,0,14,0,33,0,42,0,2,0,68,0\n21,0,11,0,20,0,40,0,3,0,73,0\n35,0,56,0,65,0,38,0,27,0,18,0\n76,0,32,0,24,0,61,0,43,0,52,0\n49,0,25,0,46,0,26,0,63,0,47,0\n75,0,41,0,37,0,30,0,10,0,51,0\n72,0,22,0,59,0,33,0,45,0,67,0\n62,0,42,0,6,0,71,0,66,0,64,0\n17,0,23,0,53,0,29,0,14,0,13,0\n36,0,58,0,19,0,16,0,1,0,5,0\n44,0,31,0,12,0,50,0,7,0,8,0\n48,0,39,0,60,0,9,0,4,0,28,0\n34,0,74,0,69,0,55,0,57,0,15,0\n77,0,70,0,41,0,54,0,2,0,3,0\n38,0,52,0,64,0,75,0,68,0,47,0\n61,0,40,0,25,0,51,0,62,0,5,0\n22,0,46,0,8,0,36,0,11,0,14,0\n24,0,31,0,19,0,27,0,17,0,21,0\n9,0,29,0,57,0,10,0,73,0,50,0\n35,0,66,0,13,0,4,0,43,0,69,0\n6,0,49,0,48,0,77,0,72,0,74,0\n56,0,33,0,54,0,20,0,28,0,71,0\n70,0,37,0,34,0,45,0,76,0,58,0\n2,0,65,0,67,0,15,0,12,0,23,0\n55,0,18,0,1,0,63,0,59,0,39,0\n26,0,44,0,42,0,32,0,53,0,30,0\n60,0,7,0,14,0,16,0,61,0,3,0\n66,0,27,0,9,0,36,0,52,0,40,0\n20,0,49,0,68,0,57,0,19,0,41,0\n37,0,47,0,13,0,62,0,11,0,56,0\n63,0,21,0,15,0,29,0,72,0,76,0\n67,0,10,0,64,0,18,0,32,0,58,0\n51,0,42,0,28,0,70,0,12,0,17,0\n71,0,73,0,48,0,75,0,59,0,26,0\n45,0,30,0,16,0,39,0,50,0,6,0\n1,0,38,0,4,0,54,0,31,0,53,0\n24,0,44,0,2,0,22,0,74,0,25,0\n33,0,65,0,8,0,43,0,60,0,34,0\n5,0,35,0,46,0,55,0,77,0,7,0\n23,0,36,0,63,0,69,0,42,0,61,0\n14,0,39,0,47,0,71,0,10,0,15,0\n72,0,66,0,75,0,19,0,3,0,56,0\n74,0,11,0,26,0,45,0,12,0,41,0\n51,0,33,0,27,0,44,0,76,0,57,0\n54,0,73,0,5,0,32,0,17,0,37,0\n2,0,29,0,38,0,6,0,60,0,59,0\n20,0,34,0,50,0,35,0,1,0,22,0\n58,0,4,0,62,0,65,0,7,0,21,0\n30,0,13,0,31,0,46,0,64,0,48,0\n52,0,67,0,55,0,8,0,49,0,28,0\n40,0,18,0,69,0,70,0,53,0,24,0\n23,0,25,0,16,0,9,0,77,0,68,0\n43,0,50,0,19,0,74,0,42,0,59,0\n75,0,6,0,54,0,65,0,57,0,11,0\n22,0,63,0,56,0,41,0,31,0,5,0\n12,0,55,0,66,0,29,0,20,0,47,0\n3,0,15,0,49,0,51,0,38,0,24,0\n27,0,32,0,2,0,4,0,34,0,16,0\n61,0,68,0,70,0,71,0,8,0,13,0\n73,0,35,0,58,0,60,0,72,0,44,0\n30,0,14,0,69,0,9,0,67,0,76,0\n26,0,43,0,77,0,39,0,37,0,36,0\n21,0,10,0,53,0,52,0,25,0,48,0\n17,0,1,0,64,0,33,0,7,0,40,0\n28,0,45,0,62,0,18,0,46,0,23,0\n"
  },
  {
    "path": "schedules/77_7.csv",
    "content": "35,0,10,0,50,0,73,0,36,0,43,0\n9,0,16,0,44,0,15,0,12,0,57,0\n27,0,72,0,41,0,77,0,71,0,56,0\n65,0,42,0,5,0,8,0,59,0,60,0\n23,0,53,0,3,0,6,0,20,0,18,0\n13,0,33,0,21,0,47,0,66,0,25,0\n70,0,75,0,40,0,64,0,28,0,17,0\n14,0,2,0,4,0,74,0,22,0,34,0\n69,0,19,0,38,0,31,0,29,0,26,0\n7,0,58,0,63,0,49,0,48,0,68,0\n54,0,51,0,24,0,30,0,37,0,55,0\n62,0,32,0,45,0,1,0,39,0,52,0\n76,0,11,0,46,0,61,0,67,0,18,0\n50,0,28,0,20,0,2,0,12,0,59,0\n47,0,70,0,74,0,6,0,44,0,77,0\n26,0,73,0,9,0,68,0,71,0,75,0\n16,0,25,0,40,0,23,0,36,0,65,0\n33,0,19,0,39,0,4,0,48,0,35,0\n8,0,31,0,22,0,55,0,45,0,10,0\n11,0,60,0,1,0,27,0,34,0,21,0\n30,0,72,0,67,0,52,0,63,0,38,0\n37,0,5,0,69,0,14,0,53,0,32,0\n46,0,13,0,3,0,41,0,7,0,43,0\n29,0,54,0,62,0,15,0,76,0,17,0\n57,0,58,0,42,0,66,0,24,0,64,0\n61,0,56,0,23,0,51,0,49,0,22,0\n63,1,60,0,25,0,19,0,71,0,10,0\n8,0,21,0,74,0,67,0,53,0,9,0\n28,0,65,0,6,0,11,0,41,0,37,0\n13,0,15,0,73,0,18,0,70,0,39,0\n50,0,46,0,55,0,5,0,26,0,40,0\n14,0,59,0,30,0,16,0,76,0,7,0\n62,0,77,0,66,0,51,0,20,0,34,0\n56,0,64,0,52,0,4,0,29,0,43,0\n27,0,45,0,75,0,69,0,33,0,44,0\n38,0,61,0,35,0,58,0,3,0,54,0\n31,0,1,0,36,0,57,0,48,0,47,0\n72,0,17,0,42,0,68,0,32,0,2,0\n12,0,18,0,8,0,49,0,24,0,14,0\n76,0,21,0,28,0,4,0,77,0,55,0\n10,0,39,0,34,0,7,0,9,0,5,0\n74,0,66,0,73,0,41,0,63,0,69,0\n27,0,59,0,62,0,46,0,22,0,58,0\n15,0,52,0,37,0,31,0,61,0,25,0\n32,0,47,0,35,0,40,0,60,0,49,0\n26,0,12,0,36,0,6,0,54,0,67,0\n23,0,44,0,24,0,29,0,13,0,72,0\n71,0,11,0,64,0,16,0,50,0,3,0\n53,0,48,0,2,0,75,0,51,0,65,0\n38,0,68,0,43,0,57,0,70,0,33,0\n17,0,56,0,1,0,20,0,19,0,30,0\n42,0,4,0,25,0,45,0,18,0,26,0\n59,0,10,0,72,0,49,0,54,0,21,0\n76,0,34,0,71,0,52,0,58,0,40,0\n39,0,29,0,75,0,12,0,61,0,55,0\n7,0,50,0,32,0,23,0,27,0,38,0\n51,0,16,0,31,0,74,0,13,0,35,0\n47,0,43,0,53,0,62,0,42,0,11,0\n63,0,17,0,77,0,37,0,22,0,57,0\n64,0,20,0,41,0,15,0,36,0,8,0\n2,0,19,0,6,0,24,0,45,0,73,0\n9,0,69,0,48,0,70,0,46,0,30,0\n66,0,67,0,44,0,65,0,68,0,1,0\n3,0,14,0,33,0,60,0,28,0,56,0\n5,0,77,0,18,0,16,0,38,0,75,0\n63,0,26,0,51,0,32,0,11,0,59,0\n61,0,4,0,71,0,7,0,36,0,24,0\n34,0,17,0,6,0,13,0,48,0,50,0\n19,0,55,0,9,0,65,0,72,0,62,0\n57,0,23,0,60,0,46,0,74,0,52,0\n66,0,8,0,27,0,76,0,2,0,35,0\n21,0,40,0,14,0,41,0,44,0,39,0\n37,0,20,0,33,0,73,0,29,0,42,0\n68,0,30,0,15,0,47,0,3,0,10,0\n22,0,54,0,1,0,25,0,64,0,69,0\n49,0,5,0,67,0,31,0,43,0,28,0\n12,0,70,0,45,0,58,0,56,0,53,0\n52,0,51,0,7,0,18,0,17,0,21,0\n57,0,32,0,13,0,61,0,19,0,8,0\n10,0,24,0,40,0,33,0,11,0,74,0\n48,0,22,0,73,0,38,0,76,0,44,0\n69,0,20,0,4,0,60,0,16,0,72,0\n65,0,39,0,43,0,30,0,26,0,27,0\n54,0,63,0,75,0,56,0,31,0,50,0\n49,0,70,0,1,0,42,0,3,0,55,0\n59,0,64,0,45,0,77,0,35,0,9,0\n41,0,5,0,68,0,25,0,12,0,62,0\n46,0,6,0,71,0,14,0,66,0,15,0\n58,0,23,0,47,0,67,0,2,0,37,0\n29,0,34,0,36,0,28,0,53,0,63,0\n"
  },
  {
    "path": "schedules/77_8.csv",
    "content": "63,0,2,0,51,0,48,0,57,0,19,0\n36,0,45,0,77,0,42,0,41,0,3,0\n62,0,1,0,67,0,17,0,76,0,4,0\n18,0,29,0,58,0,5,0,49,0,28,0\n38,0,16,0,24,0,55,0,54,0,22,0\n34,0,32,0,11,0,46,0,66,0,60,0\n20,0,37,0,6,0,44,0,70,0,64,0\n15,0,53,0,74,0,21,0,25,0,56,0\n40,0,33,0,14,0,9,0,43,0,23,0\n72,0,8,0,7,0,52,0,31,0,10,0\n73,0,13,0,26,0,30,0,35,0,27,0\n50,0,75,0,59,0,12,0,61,0,71,0\n47,0,69,0,65,0,68,0,39,0,58,0\n6,0,5,0,57,0,46,0,67,0,3,0\n40,0,45,0,56,0,18,0,51,0,32,0\n44,0,43,0,74,0,62,0,49,0,7,0\n26,0,1,0,28,0,48,0,36,0,72,0\n73,0,25,0,54,0,8,0,29,0,33,0\n20,0,75,0,65,0,42,0,38,0,11,0\n47,0,35,0,15,0,60,0,77,0,19,0\n61,0,41,0,76,0,21,0,55,0,23,0\n4,0,63,0,31,0,24,0,59,0,14,0\n71,0,37,0,22,0,30,0,66,0,10,0\n27,0,39,0,52,0,50,0,64,0,17,0\n16,0,53,0,34,0,68,0,9,0,70,0\n2,0,13,0,20,0,12,0,69,0,1,0\n54,1,19,0,67,0,40,1,26,0,41,0\n4,0,3,0,21,0,32,0,44,0,28,0\n11,0,24,0,35,0,29,0,36,0,7,0\n6,0,23,0,71,0,47,0,63,0,25,0\n9,0,27,0,48,0,76,0,49,0,45,0\n68,0,22,0,77,0,61,0,2,0,5,0\n74,0,8,0,60,0,39,0,13,0,51,0\n10,0,15,0,17,0,33,0,57,0,34,0\n62,0,64,0,65,0,12,0,73,0,16,0\n52,0,70,0,18,0,66,0,14,0,69,0\n30,0,75,0,43,0,53,0,55,0,31,0\n37,0,58,0,38,0,72,0,59,0,56,0\n42,0,44,0,2,0,46,0,50,0,54,0\n34,0,39,0,48,0,4,0,25,0,77,0\n64,0,33,0,32,0,5,0,63,0,41,0\n70,0,11,0,12,0,17,0,74,0,22,0\n14,0,15,0,61,0,8,0,6,0,30,0\n65,0,56,0,13,0,67,0,28,0,31,0\n7,0,16,0,76,0,57,0,59,0,20,0\n68,0,66,0,72,0,24,0,27,0,75,0\n21,0,45,0,29,0,47,0,43,0,37,0\n46,0,40,0,62,0,36,0,38,0,52,0\n9,0,60,0,69,0,3,0,10,0,26,0\n1,0,51,0,55,0,58,0,35,0,71,0\n42,0,19,0,73,0,53,0,18,0,23,0\n49,0,25,0,11,0,50,0,14,0,72,0\n30,0,21,0,7,0,64,0,67,0,48,0\n68,0,46,0,12,0,31,0,15,0,45,0\n13,0,54,0,36,0,4,0,9,0,75,0\n37,0,35,0,3,0,40,0,8,0,65,0\n76,0,33,0,47,0,44,0,18,0,38,0\n28,0,24,0,57,0,23,0,69,0,41,0\n19,0,22,0,1,0,34,0,6,0,50,0\n17,0,59,0,51,0,53,0,5,0,26,0\n39,0,20,0,62,0,29,0,56,0,63,0\n49,0,55,0,70,0,73,0,2,0,60,0\n77,0,52,0,43,0,71,0,32,0,16,0\n42,0,61,0,27,0,10,0,74,0,58,0\n66,0,57,0,35,0,25,0,44,0,9,0\n40,0,75,0,28,0,15,0,22,0,64,0\n62,0,48,0,54,0,53,0,11,0,47,0\n37,0,36,0,73,0,51,0,76,0,69,0\n63,0,3,0,72,0,16,0,13,0,17,0\n18,0,61,0,60,0,43,0,65,0,1,0\n23,0,30,0,5,0,34,0,38,0,12,0\n31,0,27,0,6,0,33,0,2,0,21,0\n56,0,42,0,70,0,8,0,24,0,71,0\n50,0,58,0,26,0,7,0,66,0,77,0\n19,0,52,0,4,0,45,0,55,0,20,0\n29,0,74,0,14,0,32,0,68,0,67,0\n41,0,10,0,46,0,59,0,39,0,49,0\n17,0,38,0,9,0,28,0,6,0,73,0\n2,0,25,0,3,0,18,0,75,0,62,0\n69,0,54,0,72,0,34,0,21,0,35,0\n27,0,60,0,4,0,71,0,40,0,7,0\n57,0,31,0,32,0,42,0,47,0,22,0\n77,0,51,0,70,0,29,0,46,0,65,0\n33,0,67,0,53,0,49,0,20,0,61,0\n19,0,12,0,24,0,76,0,43,0,58,0\n48,0,41,0,68,0,13,0,52,0,37,0\n59,0,23,0,66,0,64,0,1,0,8,0\n36,0,10,0,5,0,56,0,16,0,14,0\n39,0,44,0,55,0,15,0,11,0,26,0\n30,0,50,0,45,0,63,0,74,0,28,0\n25,0,69,0,38,0,19,0,7,0,61,0\n9,0,12,0,47,0,67,0,51,0,52,0\n6,0,66,0,76,0,29,0,42,0,40,0\n58,0,14,0,64,0,57,0,54,0,60,0\n36,0,59,0,18,0,34,0,55,0,27,0\n46,0,22,0,8,0,63,0,26,0,43,0\n13,0,50,0,21,0,70,0,10,0,62,0\n11,0,33,0,56,0,30,0,68,0,3,0\n41,0,16,0,35,0,4,0,2,0,74,0\n71,0,53,0,72,0,44,0,45,0,65,0\n32,0,15,0,24,0,48,0,73,0,20,0\n49,0,23,0,17,0,37,0,77,0,75,0\n31,0,5,0,54,0,39,0,1,0,40,0\n"
  },
  {
    "path": "schedules/77_9.csv",
    "content": "23,0,28,0,3,0,63,0,19,0,39,0\n40,0,34,0,10,0,5,0,20,0,7,0\n4,0,13,0,22,0,49,0,59,0,51,0\n64,0,26,0,36,0,2,0,48,0,8,0\n17,0,56,0,45,0,46,0,47,0,71,0\n66,0,11,0,33,0,29,0,43,0,41,0\n24,0,30,0,32,0,68,0,76,0,35,0\n69,0,44,0,16,0,21,0,31,0,57,0\n77,0,6,0,53,0,52,0,15,0,58,0\n9,0,75,0,37,0,54,0,55,0,38,0\n70,0,42,0,12,0,1,0,27,0,14,0\n60,0,74,0,18,0,61,0,62,0,72,0\n65,0,50,0,46,0,67,0,25,0,73,0\n26,0,47,0,66,0,76,0,33,0,39,0\n8,0,7,0,52,0,44,0,29,0,22,0\n31,0,75,0,58,0,40,0,13,0,23,0\n38,0,35,0,5,0,77,0,56,0,11,0\n74,0,27,0,34,0,55,0,2,0,17,0\n12,0,53,0,63,0,64,0,24,0,72,0\n6,0,70,0,25,0,16,0,4,0,45,0\n42,0,65,0,62,0,21,0,37,0,48,0\n19,0,71,0,61,0,57,0,41,0,54,0\n32,0,18,0,1,0,49,0,67,0,9,0\n28,0,30,0,51,0,60,0,69,0,50,0\n15,0,43,0,3,0,59,0,73,0,10,0\n14,0,68,0,17,0,20,0,36,0,53,0\n42,1,21,0,72,0,77,1,13,0,39,0\n6,1,76,0,62,0,7,0,55,0,41,0\n40,0,35,0,48,0,9,0,45,0,33,0\n29,0,46,0,38,0,26,0,58,0,1,0\n11,0,70,0,15,0,74,0,19,0,50,0\n61,0,66,0,73,0,24,0,69,0,34,0\n57,0,52,0,68,0,25,0,60,0,37,0\n54,0,14,0,63,0,47,0,5,0,51,0\n8,0,32,0,43,0,23,0,4,0,71,0\n30,0,27,0,3,0,64,0,31,0,49,0\n56,0,36,0,67,0,12,0,16,0,22,0\n20,0,65,0,44,0,59,0,18,0,28,0\n10,0,75,0,6,0,2,0,33,0,61,0\n13,0,50,0,45,0,38,0,34,0,14,0\n42,0,58,0,74,0,68,0,66,0,8,0\n47,0,72,0,15,0,49,0,69,0,7,0\n35,0,26,0,25,0,3,0,12,0,62,0\n44,0,64,0,67,0,41,0,51,0,77,0\n19,0,75,0,43,0,30,0,65,0,52,0\n11,0,24,0,48,0,23,0,17,0,18,0\n5,0,70,0,55,0,20,0,39,0,32,0\n63,0,59,0,1,0,56,0,60,0,57,0\n4,0,21,0,73,0,29,0,36,0,40,0\n37,0,27,0,71,0,76,0,10,0,16,0\n46,0,2,0,54,0,22,0,53,0,31,0\n28,0,13,0,7,0,9,0,25,0,17,0\n62,0,33,0,24,0,20,0,38,0,15,0\n45,0,5,0,44,0,42,0,61,0,30,0\n29,0,60,0,34,0,14,0,32,0,6,0\n49,0,63,0,40,0,70,0,8,0,37,0\n48,0,22,0,69,0,71,0,55,0,77,0\n12,0,52,0,23,0,47,0,41,0,74,0\n72,0,59,0,31,0,66,0,75,0,36,0\n21,0,67,0,28,0,54,0,68,0,10,0\n39,0,16,0,43,0,9,0,46,0,64,0\n51,0,19,0,1,0,27,0,35,0,73,0\n57,0,4,0,3,0,2,0,11,0,65,0\n56,0,58,0,53,0,18,0,50,0,76,0\n26,0,55,0,13,0,44,0,60,0,71,0\n48,0,41,0,14,0,22,0,74,0,28,0\n66,0,21,0,9,0,6,0,30,0,12,0\n72,0,51,0,33,0,25,0,52,0,34,0\n36,0,24,0,3,0,46,0,1,0,5,0\n38,0,10,0,4,0,18,0,42,0,63,0\n26,0,56,0,68,0,70,0,69,0,75,0\n37,0,50,0,43,0,20,0,31,0,77,0\n29,0,49,0,57,0,45,0,62,0,23,0\n54,0,65,0,35,0,17,0,39,0,15,0\n64,0,19,0,76,0,59,0,67,0,40,0\n2,0,32,0,73,0,16,0,7,0,58,0\n27,0,8,0,11,0,47,0,53,0,61,0\n55,0,6,0,24,0,28,0,43,0,56,0\n23,0,14,0,46,0,77,0,66,0,4,0\n29,0,48,0,12,0,51,0,57,0,15,0\n9,0,22,0,76,0,3,0,65,0,34,0\n17,0,41,0,30,0,72,0,40,0,38,0\n74,0,73,0,37,0,53,0,5,0,26,0\n33,0,44,0,36,0,63,0,27,0,32,0\n61,0,59,0,16,0,50,0,68,0,49,0\n71,0,42,0,20,0,75,0,7,0,67,0\n52,0,35,0,18,0,64,0,70,0,13,0\n47,0,45,0,60,0,21,0,2,0,19,0\n39,0,31,0,1,0,10,0,25,0,8,0\n69,0,58,0,62,0,11,0,54,0,43,0\n55,0,61,0,23,0,15,0,30,0,36,0\n22,0,57,0,40,0,50,0,32,0,42,0\n71,0,65,0,28,0,64,0,29,0,5,0\n44,0,72,0,27,0,6,0,46,0,48,0\n49,0,76,0,25,0,14,0,75,0,74,0\n41,0,20,0,60,0,4,0,58,0,35,0\n70,0,77,0,10,0,9,0,62,0,47,0\n17,0,66,0,1,0,52,0,16,0,63,0\n7,0,26,0,51,0,21,0,45,0,11,0\n69,0,39,0,2,0,59,0,37,0,24,0\n54,0,8,0,33,0,13,0,73,0,56,0\n18,0,31,0,34,0,12,0,19,0,68,0\n38,0,67,0,60,0,53,0,3,0,70,0\n55,0,16,0,29,0,10,0,72,0,35,0\n61,0,32,0,77,0,26,0,65,0,17,0\n5,0,25,0,23,0,27,0,59,0,21,0\n52,0,46,0,11,0,76,0,42,0,28,0\n6,0,68,0,73,0,22,0,63,0,62,0\n9,0,51,0,74,0,71,0,24,0,31,0\n20,0,66,0,49,0,56,0,48,0,54,0\n53,0,39,0,57,0,43,0,34,0,7,0\n64,0,75,0,47,0,1,0,4,0,50,0\n8,0,41,0,69,0,45,0,18,0,3,0\n37,0,58,0,30,0,67,0,33,0,14,0\n15,0,40,0,12,0,38,0,2,0,44,0\n36,0,19,0,77,0,13,0,42,0,6,0\n"
  },
  {
    "path": "schedules/78_1.csv",
    "content": "69,0,35,0,28,0,38,0,55,0,43,0\n62,0,58,0,57,0,7,0,18,0,31,0\n29,0,46,0,67,0,59,0,50,0,2,0\n14,0,70,0,8,0,22,0,49,0,75,0\n13,0,54,0,27,0,68,0,24,0,52,0\n19,0,65,0,76,0,41,0,42,0,77,0\n44,0,4,0,47,0,9,0,39,0,40,0\n36,0,63,0,53,0,34,0,64,0,23,0\n51,0,6,0,30,0,74,0,72,0,15,0\n37,0,5,0,20,0,33,0,25,0,66,0\n17,0,56,0,45,0,1,0,60,0,10,0\n32,0,21,0,11,0,73,0,71,0,16,0\n78,0,48,0,12,0,3,0,26,0,61,0\n"
  },
  {
    "path": "schedules/78_10.csv",
    "content": "11,0,35,0,57,0,72,0,42,0,2,0\n8,0,22,0,59,0,75,0,51,0,47,0\n44,0,31,0,70,0,34,0,32,0,46,0\n16,0,36,0,71,0,39,0,30,0,78,0\n1,0,62,0,67,0,77,0,54,0,14,0\n18,0,69,0,12,0,24,0,19,0,50,0\n20,0,48,0,43,0,5,0,29,0,27,0\n64,0,45,0,73,0,74,0,60,0,6,0\n53,0,17,0,28,0,49,0,68,0,15,0\n58,0,52,0,9,0,13,0,41,0,76,0\n40,0,65,0,63,0,33,0,26,0,37,0\n61,0,25,0,4,0,38,0,10,0,7,0\n23,0,66,0,56,0,55,0,21,0,3,0\n59,0,14,0,24,0,36,0,46,0,43,0\n78,0,72,0,6,0,31,0,19,0,54,0\n1,0,68,0,75,0,35,0,50,0,44,0\n34,0,29,0,62,0,58,0,57,0,73,0\n40,0,52,0,17,0,60,0,18,0,8,0\n26,0,48,0,61,0,16,0,69,0,49,0\n67,0,45,0,25,0,41,0,32,0,22,0\n71,0,38,0,64,0,66,0,65,0,42,0\n11,0,27,0,21,0,53,0,10,0,74,0\n77,0,15,0,56,0,13,0,4,0,39,0\n23,0,47,0,2,0,76,0,5,0,33,0\n55,0,37,0,28,0,20,0,3,0,30,0\n70,0,12,0,9,0,7,0,51,0,63,0\n49,0,43,0,19,0,58,0,25,0,40,0\n72,0,24,0,16,0,75,0,38,0,52,0\n57,0,44,0,18,0,53,0,65,0,48,0\n62,0,8,0,27,0,34,0,61,0,21,0\n47,0,46,0,74,0,13,0,68,0,66,0\n4,0,78,0,29,0,28,0,1,0,33,0\n23,0,50,0,30,0,11,0,32,0,14,0\n55,0,39,0,54,0,17,0,45,0,12,0\n69,0,2,0,41,0,73,0,56,0,59,0\n20,0,42,0,15,0,63,0,22,0,70,0\n5,0,10,0,67,0,9,0,6,0,71,0\n7,0,37,0,76,0,35,0,60,0,31,0\n3,0,36,0,64,0,77,0,26,0,51,0\n40,0,28,0,24,0,58,0,44,0,21,0\n38,0,57,0,30,0,27,0,78,0,47,0\n46,0,56,0,12,0,1,0,61,0,23,0\n70,0,25,0,48,0,73,0,11,0,54,0\n63,0,41,0,6,0,66,0,17,0,16,0\n53,0,34,0,59,0,52,0,39,0,7,0\n32,0,74,0,5,0,75,0,15,0,26,0\n69,0,65,0,55,0,36,0,35,0,29,0\n13,0,20,0,50,0,64,0,72,0,67,0\n43,0,71,0,3,0,60,0,2,0,4,0\n14,0,31,0,51,0,33,0,10,0,49,0\n19,0,42,0,8,0,76,0,77,0,45,0\n22,0,37,0,68,0,9,0,62,0,18,0\n28,0,39,0,66,0,75,0,48,0,24,0\n47,0,6,0,25,0,52,0,65,0,29,0\n74,0,70,0,36,0,1,0,17,0,38,0\n58,0,3,0,15,0,72,0,61,0,27,0\n49,0,73,0,67,0,63,0,35,0,30,0\n59,0,45,0,11,0,44,0,20,0,56,0\n8,0,57,0,37,0,5,0,41,0,12,0\n13,0,18,0,43,0,42,0,55,0,33,0\n31,0,62,0,71,0,23,0,53,0,64,0\n26,0,22,0,21,0,78,0,7,0,46,0\n40,0,50,0,76,0,4,0,54,0,51,0\n34,0,19,0,9,0,2,0,14,0,16,0\n32,0,77,0,10,0,68,0,69,0,60,0\n5,0,63,0,52,0,61,0,11,0,28,0\n49,0,42,0,39,0,41,0,27,0,44,0\n1,0,45,0,47,0,3,0,53,0,37,0\n35,0,24,0,71,0,26,0,8,0,56,0\n48,0,76,0,78,0,62,0,50,0,74,0\n73,0,66,0,15,0,31,0,36,0,9,0\n30,0,34,0,40,0,12,0,64,0,22,0\n4,0,14,0,69,0,6,0,57,0,75,0\n38,0,2,0,20,0,58,0,77,0,18,0\n10,0,13,0,19,0,32,0,17,0,59,0\n51,0,60,0,46,0,25,0,72,0,55,0\n29,0,16,0,33,0,67,0,21,0,70,0\n23,0,43,0,65,0,7,0,68,0,54,0\n27,0,50,0,71,0,28,0,9,0,45,0\n41,0,62,0,11,0,47,0,24,0,15,0\n49,0,2,0,56,0,52,0,37,0,36,0\n26,0,20,0,6,0,34,0,42,0,12,0\n3,0,25,0,75,0,17,0,63,0,76,0\n77,0,61,0,30,0,31,0,33,0,48,0\n43,0,1,0,72,0,10,0,69,0,39,0\n68,0,59,0,64,0,70,0,57,0,4,0\n54,0,58,0,16,0,35,0,5,0,46,0\n66,0,51,0,78,0,67,0,18,0,23,0\n32,0,53,0,38,0,55,0,40,0,73,0\n22,0,60,0,13,0,19,0,65,0,21,0\n7,0,44,0,29,0,14,0,74,0,8,0\n50,0,34,0,77,0,63,0,47,0,43,0\n68,0,12,0,27,0,31,0,2,0,25,0\n70,0,72,0,45,0,62,0,49,0,5,0\n28,0,76,0,56,0,64,0,18,0,16,0\n46,0,57,0,33,0,6,0,15,0,36,0\n51,0,58,0,32,0,39,0,21,0,37,0\n9,0,42,0,59,0,60,0,1,0,40,0\n78,0,17,0,65,0,24,0,61,0,20,0\n7,0,13,0,75,0,29,0,71,0,11,0\n44,0,52,0,23,0,10,0,26,0,73,0\n54,0,66,0,30,0,8,0,69,0,53,0\n14,0,35,0,22,0,38,0,48,0,3,0\n74,0,19,0,4,0,41,0,67,0,55,0\n16,0,31,0,21,0,43,0,45,0,57,0\n61,0,39,0,6,0,18,0,70,0,40,0\n49,0,77,0,9,0,46,0,11,0,65,0\n7,0,33,0,27,0,72,0,32,0,56,0\n15,0,29,0,76,0,26,0,30,0,59,0\n73,0,5,0,13,0,51,0,24,0,1,0\n3,0,8,0,41,0,68,0,38,0,50,0\n67,0,53,0,60,0,12,0,75,0,36,0\n54,0,2,0,10,0,28,0,22,0,74,0\n19,0,66,0,52,0,20,0,62,0,35,0\n42,0,17,0,4,0,48,0,23,0,34,0\n44,0,69,0,64,0,25,0,37,0,78,0\n55,0,47,0,58,0,14,0,71,0,63,0\n68,0,11,0,33,0,39,0,76,0,73,0\n24,0,7,0,32,0,6,0,49,0,3,0\n12,0,28,0,65,0,72,0,74,0,59,0\n60,0,26,0,57,0,61,0,50,0,66,0\n10,0,30,0,75,0,46,0,62,0,42,0\n44,0,67,0,51,0,43,0,52,0,15,0\n37,0,40,0,14,0,13,0,27,0,16,0\n78,0,77,0,35,0,53,0,70,0,41,0\n29,0,38,0,63,0,45,0,23,0,19,0\n48,0,55,0,1,0,2,0,8,0,64,0\n31,0,5,0,58,0,56,0,22,0,17,0\n21,0,69,0,47,0,9,0,4,0,20,0\n34,0,18,0,36,0,71,0,54,0,25,0\n"
  },
  {
    "path": "schedules/78_11.csv",
    "content": "7,0,40,0,15,0,14,0,49,0,9,0\n21,0,38,0,6,0,74,0,47,0,57,0\n4,0,61,0,76,0,41,0,68,0,29,0\n43,0,63,0,67,0,44,0,65,0,17,0\n32,0,52,0,35,0,26,0,33,0,1,0\n24,0,73,0,22,0,77,0,71,0,27,0\n19,0,60,0,56,0,69,0,18,0,53,0\n37,0,20,0,42,0,78,0,58,0,39,0\n75,0,10,0,50,0,59,0,55,0,72,0\n51,0,11,0,8,0,30,0,62,0,3,0\n16,0,54,0,13,0,31,0,12,0,48,0\n34,0,23,0,2,0,66,0,46,0,36,0\n64,0,25,0,28,0,5,0,70,0,45,0\n21,0,9,0,24,0,56,0,49,0,35,0\n32,0,44,0,40,0,71,0,61,0,58,0\n47,0,63,0,33,0,77,0,39,0,19,0\n59,0,74,0,53,0,65,0,55,0,62,0\n60,0,38,0,30,0,54,0,6,0,68,0\n73,0,12,0,42,0,75,0,18,0,8,0\n14,0,11,0,76,0,72,0,22,0,43,0\n31,0,51,0,26,0,78,0,64,0,41,0\n46,0,5,0,57,0,7,0,10,0,1,0\n52,0,2,0,37,0,23,0,67,0,28,0\n70,0,4,0,27,0,36,0,45,0,16,0\n25,0,50,0,29,0,69,0,48,0,15,0\n34,0,3,0,66,0,13,0,20,0,17,0\n12,0,18,0,60,0,40,0,72,0,62,0\n59,0,19,0,78,0,32,0,54,0,76,0\n24,0,11,0,39,0,46,0,74,0,41,0\n21,0,43,0,68,0,10,0,33,0,2,0\n49,0,51,0,65,0,57,0,37,0,38,0\n31,0,45,0,9,0,63,0,42,0,1,0\n73,0,70,0,3,0,52,0,22,0,29,0\n71,0,8,0,16,0,67,0,14,0,53,0\n36,0,77,0,56,0,50,0,13,0,15,0\n55,0,44,0,47,0,7,0,4,0,48,0\n64,0,30,0,17,0,23,0,61,0,27,0\n35,0,34,0,20,0,5,0,28,0,69,0\n26,0,6,0,66,0,58,0,25,0,75,0\n41,0,10,0,21,0,70,0,62,0,54,0\n38,0,19,0,71,0,8,0,52,0,12,0\n68,0,65,0,14,0,24,0,49,0,1,0\n33,0,67,0,15,0,46,0,45,0,59,0\n27,0,53,0,50,0,13,0,76,0,39,0\n60,0,31,0,55,0,73,0,57,0,23,0\n78,0,47,0,16,0,9,0,34,0,75,0\n22,0,5,0,40,0,66,0,4,0,69,0\n58,0,11,0,64,0,35,0,77,0,18,0\n74,0,25,0,17,0,7,0,56,0,37,0\n20,0,32,0,43,0,63,0,48,0,30,0\n42,0,44,0,36,0,29,0,28,0,51,0\n2,0,72,0,6,0,3,0,26,0,61,0\n34,0,50,0,1,0,60,0,41,0,67,0\n59,0,38,0,23,0,24,0,5,0,4,0\n76,0,8,0,78,0,64,0,33,0,40,0\n27,0,25,0,11,0,68,0,52,0,47,0\n18,0,37,0,13,0,75,0,46,0,63,0\n74,0,14,0,30,0,42,0,19,0,29,0\n31,0,49,0,44,0,56,0,22,0,6,0\n45,0,77,0,54,0,7,0,43,0,66,0\n28,0,53,0,26,0,17,0,10,0,9,0\n55,0,51,0,21,0,61,0,20,0,15,0\n35,0,48,0,65,0,72,0,71,0,70,0\n39,0,3,0,36,0,57,0,12,0,58,0\n62,0,16,0,32,0,2,0,73,0,69,0\n14,0,31,0,18,0,38,0,25,0,34,0\n41,0,22,0,59,0,13,0,52,0,30,0\n8,0,43,0,29,0,24,0,47,0,26,0\n20,0,33,0,7,0,60,0,61,0,11,0\n45,0,72,0,37,0,53,0,21,0,44,0\n3,0,23,0,63,0,68,0,74,0,15,0\n16,0,35,0,17,0,55,0,40,0,54,0\n1,0,48,0,9,0,27,0,58,0,6,0\n77,0,69,0,70,0,67,0,75,0,51,0\n39,0,46,0,28,0,4,0,71,0,32,0\n73,0,10,0,19,0,65,0,36,0,64,0\n66,0,62,0,57,0,56,0,76,0,42,0\n78,0,12,0,2,0,5,0,49,0,50,0\n33,0,17,0,24,0,44,0,30,0,18,0\n58,0,7,0,72,0,68,0,31,0,8,0\n41,0,37,0,43,0,3,0,59,0,27,0\n9,0,38,0,13,0,32,0,55,0,70,0\n53,0,46,0,1,0,22,0,47,0,51,0\n75,0,15,0,4,0,19,0,62,0,61,0\n77,0,48,0,60,0,42,0,35,0,2,0\n69,0,10,0,23,0,14,0,12,0,6,0\n40,0,36,0,49,0,20,0,25,0,67,0\n74,0,76,0,45,0,26,0,73,0,34,0\n63,0,54,0,57,0,50,0,11,0,71,0\n52,0,65,0,28,0,66,0,78,0,21,0\n16,0,56,0,29,0,64,0,5,0,39,0\n17,0,41,0,72,0,77,0,15,0,32,0\n44,0,1,0,62,0,13,0,19,0,23,0\n25,0,3,0,8,0,9,0,60,0,46,0\n76,0,36,0,35,0,47,0,31,0,37,0\n58,0,54,0,4,0,2,0,49,0,74,0\n51,0,12,0,27,0,34,0,33,0,55,0\n75,0,20,0,68,0,45,0,71,0,56,0\n5,0,67,0,73,0,14,0,21,0,39,0\n69,0,64,0,52,0,43,0,42,0,57,0\n59,0,66,0,29,0,16,0,38,0,11,0\n28,0,40,0,6,0,24,0,53,0,63,0\n65,0,30,0,70,0,7,0,50,0,26,0\n78,0,18,0,61,0,22,0,48,0,10,0\n2,0,1,0,71,0,55,0,25,0,76,0\n74,0,60,0,51,0,17,0,5,0,31,0\n64,0,42,0,67,0,4,0,72,0,13,0\n75,0,14,0,35,0,57,0,44,0,41,0\n32,0,12,0,24,0,11,0,66,0,37,0\n26,0,68,0,46,0,21,0,59,0,36,0\n54,0,9,0,61,0,77,0,65,0,23,0\n22,0,33,0,19,0,16,0,28,0,50,0\n7,0,27,0,63,0,69,0,29,0,78,0\n56,0,53,0,58,0,43,0,73,0,38,0\n52,0,48,0,39,0,62,0,34,0,49,0\n70,0,20,0,8,0,6,0,18,0,15,0\n45,0,47,0,30,0,10,0,3,0,40,0\n37,0,77,0,26,0,60,0,4,0,14,0\n67,0,55,0,9,0,19,0,68,0,66,0\n78,0,13,0,25,0,57,0,24,0,72,0\n75,0,2,0,64,0,22,0,7,0,38,0\n12,0,61,0,50,0,35,0,74,0,43,0\n46,0,29,0,62,0,20,0,31,0,65,0\n63,0,10,0,58,0,76,0,16,0,51,0\n23,0,11,0,48,0,39,0,45,0,40,0\n36,0,5,0,18,0,3,0,54,0,52,0\n34,0,27,0,44,0,21,0,8,0,32,0\n33,0,49,0,69,0,53,0,41,0,70,0\n73,0,15,0,56,0,1,0,30,0,28,0\n42,0,71,0,17,0,6,0,59,0,47,0\n57,0,77,0,68,0,12,0,16,0,37,0\n45,0,55,0,13,0,29,0,60,0,58,0\n22,0,75,0,39,0,25,0,54,0,65,0\n10,0,20,0,52,0,44,0,74,0,9,0\n40,0,41,0,31,0,21,0,19,0,2,0\n76,0,7,0,3,0,67,0,24,0,48,0\n49,0,72,0,66,0,30,0,46,0,27,0\n6,0,4,0,73,0,78,0,35,0,33,0\n28,0,71,0,43,0,23,0,51,0,18,0\n62,0,50,0,14,0,47,0,32,0,64,0\n1,0,69,0,36,0,8,0,17,0,38,0\n61,0,59,0,63,0,34,0,70,0,56,0\n26,0,15,0,5,0,53,0,42,0,11,0\n"
  },
  {
    "path": "schedules/78_12.csv",
    "content": "14,0,77,0,46,0,9,0,11,0,47,0\n27,0,67,0,69,0,64,0,51,0,29,0\n2,0,32,0,16,0,37,0,45,0,23,0\n54,0,4,0,49,0,73,0,52,0,57,0\n43,0,39,0,13,0,36,0,26,0,58,0\n3,0,5,0,76,0,7,0,28,0,59,0\n15,0,31,0,34,0,48,0,50,0,65,0\n18,0,71,0,78,0,66,0,63,0,22,0\n42,0,60,0,41,0,55,0,17,0,56,0\n44,0,33,0,62,0,20,0,38,0,75,0\n72,0,68,0,19,0,74,0,30,0,53,0\n10,0,40,0,1,0,8,0,12,0,25,0\n21,0,70,0,61,0,24,0,6,0,35,0\n39,0,64,0,50,0,11,0,32,0,52,0\n9,0,13,0,73,0,27,0,34,0,78,0\n7,0,49,0,2,0,31,0,55,0,29,0\n65,0,3,0,51,0,4,0,18,0,36,0\n77,0,56,0,72,0,57,0,45,0,19,0\n60,0,16,0,8,0,76,0,54,0,33,0\n40,0,30,0,68,0,42,0,43,0,75,0\n62,0,6,0,63,0,5,0,58,0,12,0\n67,0,26,0,70,0,14,0,23,0,38,0\n28,0,1,0,48,0,20,0,41,0,66,0\n59,0,35,0,22,0,69,0,46,0,15,0\n47,0,24,0,74,0,25,0,17,0,10,0\n21,0,44,0,53,0,61,0,37,0,71,0\n9,0,3,0,42,0,33,0,39,0,49,0\n5,0,18,0,73,0,36,0,31,0,68,0\n60,0,14,0,7,0,63,0,72,0,34,0\n8,0,20,0,51,0,16,0,64,0,65,0\n13,0,46,0,67,0,52,0,4,0,75,0\n74,0,23,0,32,0,48,0,66,0,59,0\n15,0,57,0,76,0,17,0,24,0,78,0\n54,0,29,0,10,0,70,0,19,0,53,0\n43,0,21,0,2,0,12,0,22,0,77,0\n11,0,28,0,45,0,58,0,38,0,61,0\n1,0,69,0,71,0,56,0,30,0,6,0\n25,0,35,0,50,0,62,0,41,0,27,0\n47,0,26,0,40,0,44,0,55,0,37,0\n46,0,23,0,34,0,39,0,20,0,68,0\n3,0,75,0,66,0,24,0,72,0,65,0\n76,0,52,0,42,0,18,0,10,0,48,0\n64,0,7,0,45,0,9,0,57,0,22,0\n33,0,16,0,73,0,59,0,63,0,77,0\n13,0,6,0,60,0,11,0,41,0,53,0\n71,0,67,0,31,0,47,0,58,0,25,0\n44,0,1,0,32,0,17,0,70,0,62,0\n37,0,26,0,12,0,5,0,15,0,51,0\n54,0,30,0,36,0,28,0,74,0,2,0\n29,0,4,0,56,0,61,0,8,0,50,0\n55,0,43,0,27,0,69,0,14,0,21,0\n78,0,49,0,38,0,40,0,19,0,35,0\n6,0,47,0,20,0,3,0,73,0,22,0\n45,0,24,0,31,0,59,0,33,0,52,0\n13,0,25,0,42,0,12,0,16,0,46,0\n18,0,39,0,62,0,57,0,67,0,37,0\n15,0,4,0,71,0,23,0,29,0,60,0\n32,0,36,0,9,0,72,0,8,0,26,0\n53,0,49,0,1,0,28,0,14,0,27,0\n34,0,66,0,54,0,40,0,17,0,69,0\n50,0,38,0,30,0,21,0,10,0,5,0\n77,0,70,0,43,0,78,0,7,0,51,0\n19,0,2,0,48,0,58,0,11,0,75,0\n63,0,74,0,55,0,61,0,65,0,35,0\n68,0,41,0,56,0,76,0,64,0,44,0\n25,0,20,0,49,0,32,0,15,0,60,0\n17,0,27,0,23,0,52,0,12,0,3,0\n26,0,66,0,6,0,42,0,59,0,34,0\n53,0,8,0,5,0,69,0,77,0,39,0\n21,0,48,0,11,0,47,0,57,0,33,0\n22,0,40,0,54,0,62,0,29,0,72,0\n75,0,73,0,70,0,56,0,28,0,64,0\n78,0,30,0,16,0,14,0,36,0,67,0\n58,0,2,0,4,0,9,0,44,0,35,0\n18,0,24,0,19,0,1,0,55,0,50,0\n71,0,38,0,41,0,7,0,74,0,37,0\n68,0,76,0,51,0,61,0,13,0,31,0\n10,0,63,0,65,0,43,0,46,0,45,0\n64,0,11,0,25,0,21,0,49,0,26,0\n42,0,56,0,27,0,77,0,32,0,54,0\n66,0,53,0,23,0,73,0,35,0,30,0\n28,0,69,0,72,0,16,0,44,0,18,0\n37,0,29,0,52,0,36,0,12,0,20,0\n59,0,51,0,24,0,7,0,19,0,47,0\n45,0,17,0,76,0,71,0,14,0,50,0\n60,0,61,0,43,0,3,0,48,0,62,0\n9,0,15,0,68,0,67,0,1,0,63,0\n75,0,34,0,74,0,55,0,22,0,8,0\n57,0,2,0,65,0,5,0,13,0,70,0\n33,0,58,0,41,0,40,0,46,0,78,0\n39,0,6,0,31,0,4,0,10,0,38,0\n17,0,11,0,36,0,56,0,7,0,20,0\n24,0,73,0,69,0,71,0,45,0,26,0\n54,0,47,0,61,0,49,0,23,0,18,0\n35,0,3,0,37,0,1,0,34,0,76,0\n12,0,59,0,21,0,65,0,60,0,9,0\n44,0,8,0,41,0,67,0,19,0,43,0\n55,0,6,0,72,0,39,0,15,0,28,0\n31,0,63,0,75,0,74,0,57,0,27,0\n14,0,32,0,10,0,40,0,13,0,51,0\n53,0,78,0,62,0,42,0,64,0,2,0\n50,0,16,0,52,0,58,0,22,0,70,0\n66,0,38,0,25,0,4,0,68,0,77,0\n48,0,29,0,33,0,46,0,5,0,30,0\n37,0,17,0,59,0,43,0,72,0,49,0\n44,0,54,0,7,0,6,0,21,0,65,0\n47,0,35,0,36,0,45,0,60,0,75,0\n20,0,15,0,18,0,10,0,56,0,13,0\n28,0,57,0,50,0,26,0,42,0,23,0\n12,0,41,0,9,0,70,0,31,0,69,0\n66,0,77,0,55,0,58,0,29,0,67,0\n27,0,19,0,16,0,40,0,61,0,39,0\n46,0,76,0,73,0,38,0,2,0,1,0\n11,0,34,0,30,0,62,0,32,0,24,0\n25,0,22,0,48,0,53,0,63,0,51,0\n52,0,8,0,78,0,3,0,71,0,68,0\n14,0,33,0,5,0,4,0,64,0,74,0\n29,0,75,0,6,0,18,0,9,0,17,0\n39,0,27,0,70,0,66,0,47,0,60,0\n72,0,10,0,58,0,73,0,41,0,21,0\n1,0,31,0,11,0,43,0,23,0,54,0\n20,0,59,0,57,0,55,0,30,0,2,0\n37,0,65,0,69,0,78,0,28,0,77,0\n19,0,14,0,4,0,62,0,15,0,22,0\n67,0,33,0,12,0,32,0,76,0,53,0\n61,0,56,0,5,0,52,0,34,0,25,0\n45,0,50,0,40,0,13,0,74,0,3,0\n64,0,8,0,63,0,24,0,42,0,38,0\n46,0,36,0,51,0,71,0,44,0,49,0\n48,0,26,0,7,0,35,0,68,0,16,0\n30,0,60,0,22,0,37,0,9,0,31,0\n70,0,18,0,59,0,4,0,11,0,27,0\n73,0,61,0,77,0,41,0,14,0,15,0\n65,0,40,0,58,0,56,0,23,0,76,0\n28,0,17,0,8,0,63,0,2,0,13,0\n1,0,52,0,74,0,21,0,42,0,51,0\n35,0,5,0,20,0,67,0,54,0,24,0\n75,0,49,0,50,0,69,0,7,0,53,0\n12,0,64,0,34,0,71,0,47,0,72,0\n39,0,25,0,44,0,78,0,48,0,45,0\n57,0,66,0,29,0,38,0,16,0,43,0\n32,0,19,0,26,0,6,0,46,0,3,0\n36,0,55,0,62,0,33,0,10,0,68,0\n65,0,67,0,22,0,42,0,11,0,73,0\n7,0,15,0,58,0,30,0,8,0,27,0\n18,0,52,0,2,0,34,0,40,0,41,0\n47,0,69,0,4,0,63,0,76,0,20,0\n59,0,75,0,72,0,1,0,78,0,61,0\n28,0,71,0,35,0,57,0,43,0,32,0\n36,0,64,0,23,0,6,0,25,0,19,0\n33,0,37,0,46,0,56,0,70,0,50,0\n3,0,53,0,17,0,16,0,31,0,21,0\n55,0,38,0,13,0,48,0,9,0,54,0\n10,0,74,0,77,0,60,0,44,0,26,0\n68,0,24,0,14,0,12,0,39,0,29,0\n51,0,45,0,49,0,66,0,62,0,5,0\n"
  },
  {
    "path": "schedules/78_13.csv",
    "content": "4,0,43,0,20,0,2,0,39,0,67,0\n55,0,28,0,64,0,29,0,30,0,8,0\n72,0,69,0,62,0,42,0,41,0,65,0\n21,0,38,0,71,0,52,0,47,0,16,0\n77,0,53,0,51,0,25,0,6,0,73,0\n12,0,78,0,50,0,74,0,9,0,40,0\n44,0,27,0,35,0,24,0,57,0,49,0\n56,0,66,0,10,0,31,0,14,0,70,0\n18,0,32,0,59,0,45,0,33,0,19,0\n63,0,75,0,46,0,48,0,7,0,23,0\n61,0,58,0,37,0,3,0,26,0,5,0\n11,0,76,0,60,0,36,0,34,0,1,0\n15,0,13,0,68,0,54,0,17,0,22,0\n41,0,24,0,12,0,40,0,57,0,52,0\n50,0,21,0,31,0,30,0,65,0,4,0\n18,0,28,0,2,0,73,0,62,0,44,0\n6,0,71,0,55,0,70,0,48,0,42,0\n74,0,56,0,19,0,77,0,26,0,16,0\n37,0,47,0,9,0,51,0,75,0,64,0\n33,0,15,0,66,0,20,0,61,0,53,0\n29,0,46,0,67,0,10,0,17,0,1,0\n43,0,54,0,72,0,32,0,63,0,11,0\n22,0,3,0,7,0,25,0,27,0,34,0\n76,0,23,0,39,0,60,0,14,0,38,0\n36,0,8,0,13,0,78,0,49,0,59,0\n35,0,58,0,5,0,68,0,45,0,69,0\n26,0,24,0,6,0,41,0,31,0,15,0\n40,0,29,0,65,0,33,0,47,0,67,0\n63,0,64,0,18,0,20,0,55,0,74,0\n34,0,77,0,70,0,12,0,52,0,30,0\n48,0,46,0,9,0,43,0,21,0,62,0\n10,0,19,0,72,0,44,0,51,0,13,0\n57,0,45,0,37,0,14,0,39,0,25,0\n68,0,54,0,7,0,56,0,1,0,3,0\n59,0,16,0,76,0,66,0,4,0,28,0\n32,0,78,0,27,0,60,0,5,0,2,0\n50,0,17,0,61,0,23,0,35,0,11,0\n42,0,58,0,22,0,8,0,73,0,38,0\n49,0,36,0,75,0,69,0,71,0,53,0\n18,0,30,0,10,0,12,0,39,0,9,0\n14,0,33,0,77,0,55,0,43,0,13,0\n25,0,19,0,3,0,21,0,74,0,1,0\n70,0,78,0,28,0,54,0,46,0,65,0\n4,0,51,0,35,0,34,0,26,0,63,0\n59,0,31,0,8,0,68,0,23,0,29,0\n71,0,52,0,73,0,62,0,37,0,50,0\n38,0,56,0,44,0,6,0,64,0,40,0\n72,0,57,0,47,0,15,0,61,0,45,0\n2,0,41,0,27,0,53,0,48,0,36,0\n69,0,7,0,58,0,24,0,67,0,76,0\n49,0,32,0,60,0,75,0,22,0,66,0\n16,0,11,0,17,0,20,0,42,0,5,0\n70,0,43,0,1,0,31,0,37,0,35,0\n64,0,14,0,26,0,28,0,12,0,65,0\n57,0,23,0,50,0,51,0,54,0,18,0\n8,0,33,0,2,0,34,0,74,0,6,0\n68,0,62,0,41,0,13,0,45,0,7,0\n22,0,10,0,60,0,71,0,77,0,72,0\n36,0,66,0,11,0,29,0,24,0,73,0\n78,0,75,0,55,0,4,0,21,0,44,0\n25,0,15,0,5,0,76,0,46,0,42,0\n38,0,59,0,30,0,27,0,61,0,67,0\n63,0,48,0,69,0,17,0,32,0,52,0\n39,0,19,0,16,0,3,0,40,0,53,0\n58,0,20,0,9,0,49,0,56,0,47,0\n66,0,26,0,50,0,1,0,2,0,7,0\n74,0,11,0,51,0,70,0,22,0,45,0\n57,0,31,0,64,0,46,0,60,0,36,0\n34,0,24,0,75,0,61,0,10,0,78,0\n71,0,12,0,67,0,8,0,63,0,35,0\n37,0,72,0,6,0,30,0,19,0,76,0\n52,0,43,0,23,0,28,0,44,0,15,0\n55,0,54,0,21,0,59,0,41,0,58,0\n39,0,27,0,4,0,56,0,33,0,62,0\n69,0,47,0,42,0,18,0,68,0,53,0\n5,0,14,0,49,0,77,0,48,0,40,0\n25,0,20,0,17,0,9,0,73,0,65,0\n16,0,3,0,38,0,29,0,32,0,13,0\n61,0,52,0,22,0,36,0,64,0,7,0\n58,0,43,0,66,0,57,0,41,0,71,0\n67,0,6,0,59,0,75,0,62,0,74,0\n39,0,55,0,11,0,10,0,68,0,26,0\n14,0,47,0,4,0,19,0,24,0,54,0\n63,0,5,0,45,0,50,0,30,0,33,0\n1,0,38,0,49,0,78,0,15,0,2,0\n21,0,25,0,29,0,69,0,70,0,18,0\n56,0,46,0,16,0,73,0,72,0,35,0\n23,0,77,0,32,0,20,0,65,0,34,0\n40,0,51,0,31,0,27,0,42,0,28,0\n60,0,13,0,17,0,12,0,37,0,53,0\n3,0,9,0,8,0,44,0,48,0,76,0\n64,0,67,0,68,0,71,0,14,0,2,0\n22,0,57,0,63,0,6,0,29,0,78,0\n70,0,15,0,38,0,50,0,19,0,75,0\n74,0,52,0,65,0,58,0,10,0,39,0\n47,0,40,0,62,0,31,0,1,0,11,0\n30,0,34,0,23,0,16,0,13,0,49,0\n24,0,56,0,51,0,48,0,43,0,59,0\n8,0,46,0,55,0,69,0,37,0,32,0\n4,0,61,0,60,0,41,0,25,0,28,0\n54,0,5,0,44,0,20,0,66,0,12,0\n9,0,17,0,18,0,26,0,72,0,27,0\n3,0,35,0,45,0,42,0,77,0,36,0\n53,0,33,0,73,0,76,0,21,0,7,0\n15,0,30,0,75,0,2,0,56,0,65,0\n50,0,43,0,47,0,16,0,22,0,55,0\n63,0,28,0,13,0,24,0,25,0,58,0\n20,0,14,0,46,0,41,0,52,0,1,0\n44,0,29,0,18,0,71,0,34,0,61,0\n17,0,39,0,5,0,36,0,59,0,51,0\n68,0,37,0,48,0,74,0,66,0,78,0\n57,0,69,0,33,0,38,0,11,0,26,0\n53,0,32,0,45,0,10,0,4,0,64,0\n35,0,42,0,6,0,9,0,7,0,60,0\n72,0,70,0,12,0,23,0,3,0,62,0\n77,0,21,0,8,0,40,0,27,0,54,0\n31,0,76,0,73,0,19,0,67,0,49,0\n63,0,65,0,1,0,22,0,44,0,59,0\n17,0,33,0,28,0,56,0,57,0,75,0\n50,0,53,0,34,0,58,0,14,0,48,0\n35,0,78,0,30,0,47,0,10,0,41,0\n24,0,7,0,15,0,70,0,39,0,32,0\n74,0,43,0,64,0,42,0,21,0,13,0\n73,0,23,0,19,0,5,0,55,0,27,0\n6,0,54,0,11,0,16,0,37,0,25,0\n26,0,71,0,29,0,76,0,40,0,45,0\n2,0,69,0,31,0,9,0,77,0,61,0\n68,0,49,0,51,0,4,0,46,0,12,0\n20,0,62,0,8,0,72,0,66,0,38,0\n3,0,52,0,36,0,18,0,67,0,60,0\n1,0,73,0,48,0,70,0,13,0,64,0\n7,0,59,0,42,0,37,0,44,0,14,0\n29,0,74,0,35,0,54,0,23,0,53,0\n10,0,50,0,27,0,28,0,69,0,6,0\n39,0,41,0,22,0,9,0,63,0,19,0\n61,0,62,0,76,0,68,0,20,0,77,0\n30,0,3,0,49,0,43,0,57,0,17,0\n60,0,45,0,34,0,15,0,56,0,55,0\n2,0,4,0,52,0,8,0,11,0,47,0\n67,0,26,0,51,0,66,0,32,0,21,0\n71,0,65,0,24,0,46,0,38,0,5,0\n16,0,18,0,33,0,78,0,31,0,58,0\n12,0,40,0,36,0,25,0,72,0,75,0\n28,0,48,0,29,0,19,0,35,0,20,0\n73,0,34,0,54,0,39,0,69,0,43,0\n44,0,74,0,41,0,17,0,76,0,47,0\n21,0,10,0,2,0,37,0,23,0,22,0\n61,0,26,0,42,0,52,0,49,0,63,0\n70,0,53,0,56,0,8,0,57,0,67,0\n78,0,77,0,24,0,50,0,64,0,72,0\n32,0,36,0,25,0,30,0,14,0,62,0\n1,0,27,0,46,0,45,0,58,0,75,0\n5,0,12,0,7,0,55,0,31,0,38,0\n71,0,11,0,9,0,3,0,59,0,15,0\n68,0,16,0,60,0,51,0,65,0,33,0\n66,0,40,0,13,0,6,0,18,0,4,0\n37,0,41,0,49,0,56,0,29,0,50,0\n42,0,67,0,25,0,78,0,26,0,23,0\n19,0,34,0,58,0,64,0,17,0,62,0\n22,0,2,0,76,0,35,0,24,0,55,0\n38,0,48,0,54,0,45,0,31,0,10,0\n7,0,65,0,61,0,51,0,8,0,43,0\n12,0,63,0,15,0,27,0,16,0,21,0\n40,0,20,0,30,0,60,0,59,0,69,0\n74,0,73,0,57,0,4,0,71,0,32,0\n13,0,39,0,77,0,47,0,66,0,46,0\n14,0,75,0,6,0,18,0,3,0,11,0\n44,0,9,0,70,0,36,0,33,0,68,0\n53,0,72,0,1,0,28,0,52,0,5,0\n"
  },
  {
    "path": "schedules/78_14.csv",
    "content": "32,0,25,0,64,0,69,0,20,0,50,0\n9,0,26,0,37,0,67,0,14,0,36,0\n48,0,27,0,8,0,2,0,63,0,45,0\n16,0,51,0,17,0,34,0,75,0,77,0\n74,0,49,0,31,0,43,0,21,0,5,0\n55,0,52,0,13,0,30,0,18,0,12,0\n41,0,56,0,19,0,76,0,47,0,70,0\n42,0,78,0,15,0,68,0,10,0,22,0\n58,0,1,0,39,0,54,0,57,0,29,0\n72,0,11,0,46,0,71,0,59,0,66,0\n7,0,62,0,23,0,61,0,60,0,4,0\n40,0,3,0,65,0,53,0,38,0,33,0\n24,0,44,0,73,0,35,0,28,0,6,0\n52,0,30,0,41,0,25,0,36,0,48,0\n45,0,37,0,18,0,22,0,74,0,43,0\n16,0,54,0,77,0,20,0,19,0,10,0\n68,0,8,0,58,0,76,0,75,0,56,0\n64,0,21,0,13,0,63,0,51,0,39,0\n50,0,55,0,60,0,49,0,2,0,11,0\n78,0,9,0,46,0,12,0,53,0,23,0\n70,0,29,0,72,0,69,0,28,0,67,0\n14,0,26,0,71,0,31,0,24,0,65,0\n34,0,32,0,38,0,4,0,47,0,73,0\n42,0,40,0,66,0,44,0,61,0,6,0\n3,0,59,0,57,0,5,0,1,0,7,0\n15,0,17,0,35,0,33,0,62,0,27,0\n37,0,77,0,76,0,53,0,25,0,49,0\n52,0,9,0,20,0,23,0,74,0,63,0\n30,0,48,0,67,0,46,0,60,0,64,0\n70,0,41,0,28,0,50,0,34,0,8,0\n21,0,73,0,65,0,69,0,44,0,56,0\n31,0,16,0,47,0,57,0,22,0,7,0\n33,0,39,0,54,0,2,0,59,0,61,0\n38,0,26,0,11,0,13,0,45,0,68,0\n36,0,62,0,10,0,58,0,3,0,12,0\n24,0,1,0,35,0,66,0,78,0,51,0\n71,0,27,0,4,0,19,0,75,0,40,0\n6,0,55,0,32,0,42,0,43,0,29,0\n18,0,5,0,17,0,14,0,72,0,15,0\n67,0,33,0,74,0,7,0,8,0,69,0\n23,0,65,0,61,0,76,0,16,0,41,0\n3,0,26,0,56,0,63,0,22,0,25,0\n45,0,34,0,10,0,39,0,46,0,49,0\n36,0,68,0,66,0,73,0,31,0,62,0\n12,0,47,0,2,0,44,0,77,0,4,0\n21,0,55,0,14,0,78,0,37,0,27,0\n32,0,58,0,19,0,30,0,5,0,64,0\n18,0,28,0,42,0,48,0,17,0,71,0\n15,0,13,0,75,0,29,0,35,0,59,0\n51,0,20,0,53,0,57,0,72,0,52,0\n9,0,38,0,6,0,11,0,50,0,1,0\n60,0,43,0,24,0,70,0,40,0,54,0\n77,0,49,0,3,0,61,0,78,0,73,0\n32,0,10,0,12,0,45,0,27,0,56,0\n48,0,23,0,31,0,44,0,37,0,19,0\n25,0,34,0,5,0,65,0,35,0,68,0\n69,0,26,0,52,0,29,0,2,0,75,0\n64,0,53,0,58,0,42,0,55,0,7,0\n30,0,38,0,39,0,74,0,70,0,16,0\n72,0,66,0,8,0,9,0,33,0,13,0\n41,0,22,0,54,0,15,0,51,0,6,0\n46,0,47,0,28,0,62,0,43,0,14,0\n24,0,63,0,11,0,67,0,4,0,18,0\n71,0,1,0,60,0,36,0,21,0,20,0\n17,0,40,0,57,0,59,0,50,0,76,0\n25,0,38,0,29,0,31,0,78,0,34,0\n73,0,45,0,9,0,70,0,58,0,42,0\n2,0,74,0,68,0,10,0,6,0,65,0\n5,0,61,0,27,0,46,0,69,0,51,0\n54,0,4,0,43,0,30,0,35,0,72,0\n53,0,1,0,8,0,23,0,26,0,18,0\n62,0,24,0,59,0,22,0,64,0,77,0\n17,0,39,0,36,0,44,0,11,0,60,0\n12,0,28,0,48,0,33,0,32,0,76,0\n56,0,37,0,40,0,7,0,19,0,52,0\n75,0,55,0,66,0,47,0,20,0,67,0\n16,0,15,0,50,0,3,0,21,0,63,0\n71,0,41,0,13,0,49,0,14,0,57,0\n2,0,38,0,43,0,5,0,23,0,42,0\n29,0,27,0,64,0,18,0,9,0,44,0\n62,0,12,0,65,0,59,0,1,0,54,0\n11,0,33,0,22,0,19,0,34,0,53,0\n40,0,8,0,28,0,47,0,30,0,77,0\n72,0,17,0,67,0,21,0,6,0,68,0\n36,0,73,0,75,0,48,0,24,0,61,0\n13,0,4,0,51,0,10,0,37,0,3,0\n57,0,35,0,69,0,60,0,56,0,63,0\n76,0,58,0,20,0,41,0,46,0,31,0\n55,0,15,0,25,0,70,0,39,0,71,0\n26,0,49,0,78,0,74,0,32,0,7,0\n52,0,16,0,66,0,45,0,50,0,14,0\n72,0,28,0,54,0,38,0,27,0,36,0\n68,0,17,0,43,0,8,0,64,0,3,0\n69,0,21,0,75,0,11,0,10,0,42,0\n6,0,59,0,20,0,56,0,48,0,34,0\n61,0,47,0,13,0,15,0,9,0,65,0\n71,0,63,0,77,0,1,0,37,0,32,0\n51,0,25,0,14,0,40,0,45,0,60,0\n67,0,70,0,2,0,31,0,53,0,18,0\n33,0,23,0,16,0,49,0,55,0,58,0\n19,0,74,0,12,0,24,0,66,0,29,0\n44,0,50,0,57,0,4,0,22,0,30,0\n46,0,7,0,76,0,73,0,35,0,52,0\n62,0,5,0,78,0,41,0,26,0,39,0\n3,0,69,0,45,0,34,0,71,0,6,0\n1,0,25,0,31,0,28,0,75,0,11,0\n47,0,59,0,58,0,51,0,67,0,42,0\n23,0,14,0,56,0,64,0,54,0,74,0\n66,0,27,0,49,0,53,0,48,0,57,0\n4,0,68,0,33,0,70,0,36,0,43,0\n65,0,46,0,50,0,78,0,77,0,55,0\n44,0,12,0,15,0,60,0,38,0,19,0\n63,0,30,0,76,0,10,0,7,0,72,0\n37,0,21,0,2,0,41,0,20,0,24,0\n18,0,13,0,73,0,40,0,62,0,16,0\n9,0,39,0,35,0,26,0,17,0,32,0\n61,0,22,0,8,0,5,0,29,0,52,0\n4,0,42,0,14,0,67,0,1,0,49,0\n78,0,65,0,58,0,15,0,43,0,48,0\n76,0,44,0,54,0,55,0,34,0,74,0\n60,0,75,0,53,0,33,0,41,0,6,0\n18,0,63,0,20,0,51,0,68,0,28,0\n36,0,23,0,19,0,59,0,32,0,45,0\n30,0,56,0,29,0,3,0,66,0,17,0\n9,0,8,0,10,0,22,0,40,0,31,0\n11,0,61,0,70,0,27,0,12,0,26,0\n37,0,47,0,7,0,50,0,72,0,5,0\n25,0,57,0,21,0,62,0,38,0,46,0\n64,0,35,0,2,0,16,0,71,0,73,0\n24,0,77,0,52,0,13,0,39,0,69,0\n29,0,14,0,44,0,53,0,68,0,59,0\n63,0,6,0,78,0,36,0,76,0,18,0\n31,0,45,0,4,0,41,0,61,0,17,0\n22,0,65,0,75,0,72,0,49,0,32,0\n19,0,55,0,3,0,26,0,28,0,21,0\n7,0,12,0,9,0,25,0,54,0,2,0\n64,0,57,0,1,0,52,0,10,0,70,0\n42,0,16,0,60,0,24,0,8,0,46,0\n27,0,40,0,67,0,13,0,34,0,20,0\n23,0,51,0,73,0,33,0,15,0,30,0\n39,0,50,0,48,0,56,0,62,0,71,0\n66,0,69,0,38,0,58,0,37,0,43,0\n11,0,77,0,74,0,35,0,47,0,5,0\n64,0,72,0,44,0,45,0,78,0,41,0\n68,0,24,0,32,0,61,0,55,0,57,0\n6,0,25,0,7,0,19,0,8,0,14,0\n20,0,26,0,4,0,15,0,46,0,18,0\n50,0,67,0,3,0,23,0,27,0,39,0\n36,0,56,0,31,0,16,0,49,0,69,0\n51,0,74,0,29,0,48,0,11,0,65,0\n35,0,12,0,21,0,40,0,2,0,58,0\n5,0,22,0,28,0,13,0,66,0,60,0\n73,0,63,0,53,0,54,0,17,0,47,0\n59,0,10,0,33,0,38,0,71,0,52,0\n70,0,30,0,62,0,37,0,42,0,75,0\n34,0,43,0,76,0,9,0,1,0,77,0\n46,0,44,0,32,0,51,0,11,0,3,0\n39,0,4,0,19,0,18,0,8,0,65,0\n29,0,36,0,22,0,14,0,35,0,20,0\n74,0,5,0,41,0,73,0,55,0,40,0\n49,0,47,0,38,0,6,0,64,0,24,0\n10,0,2,0,78,0,66,0,28,0,62,0\n45,0,76,0,57,0,67,0,15,0,37,0\n31,0,75,0,50,0,12,0,63,0,54,0\n42,0,56,0,1,0,72,0,33,0,77,0\n68,0,69,0,71,0,9,0,53,0,30,0\n43,0,59,0,27,0,26,0,16,0,25,0\n52,0,61,0,34,0,58,0,21,0,60,0\n70,0,7,0,48,0,17,0,23,0,13,0\n40,0,74,0,15,0,28,0,36,0,64,0\n73,0,20,0,37,0,8,0,11,0,12,0\n75,0,35,0,41,0,38,0,14,0,3,0\n62,0,51,0,45,0,29,0,76,0,9,0\n42,0,6,0,77,0,31,0,26,0,57,0\n53,0,61,0,43,0,56,0,10,0,50,0\n17,0,46,0,19,0,1,0,13,0,2,0\n58,0,72,0,23,0,39,0,24,0,25,0\n5,0,67,0,71,0,44,0,78,0,16,0\n48,0,22,0,59,0,4,0,55,0,69,0\n66,0,70,0,34,0,63,0,7,0,65,0\n33,0,21,0,18,0,32,0,54,0,30,0\n60,0,52,0,49,0,27,0,68,0,47,0\n"
  },
  {
    "path": "schedules/78_2.csv",
    "content": "7,0,4,0,48,0,15,0,31,0,17,0\n1,0,50,0,5,0,62,0,24,0,40,0\n66,0,70,0,45,0,67,0,10,0,20,0\n49,0,60,0,26,0,36,0,39,0,78,0\n75,0,69,0,35,0,77,0,28,0,33,0\n68,0,38,0,18,0,44,0,55,0,21,0\n3,0,73,0,37,0,52,0,8,0,23,0\n47,0,30,0,6,0,2,0,12,0,34,0\n13,0,58,0,54,0,61,0,43,0,72,0\n46,0,71,0,22,0,57,0,27,0,53,0\n74,0,11,0,32,0,51,0,16,0,63,0\n76,0,19,0,29,0,59,0,56,0,41,0\n65,0,42,0,64,0,9,0,14,0,25,0\n52,0,40,0,31,0,60,0,35,0,70,0\n24,0,7,0,8,0,47,0,26,0,38,0\n10,0,15,0,55,0,36,0,72,0,23,0\n28,0,5,0,2,0,37,0,57,0,58,0\n44,0,32,0,61,0,49,0,73,0,71,0\n21,0,77,0,67,0,54,0,53,0,29,0\n16,0,9,0,39,0,19,0,46,0,66,0\n62,0,3,0,59,0,74,0,4,0,30,0\n41,0,48,0,42,0,27,0,45,0,13,0\n20,0,14,0,56,0,63,0,1,0,6,0\n64,0,12,0,50,0,18,0,22,0,69,0\n51,0,34,0,33,0,78,0,65,0,76,0\n25,0,75,0,17,0,68,0,43,0,11,0\n"
  },
  {
    "path": "schedules/78_3.csv",
    "content": "55,0,7,0,30,0,22,0,67,0,14,0\n73,0,21,0,42,0,2,0,71,0,58,0\n29,0,13,0,74,0,59,0,19,0,54,0\n4,0,49,0,1,0,63,0,61,0,17,0\n64,0,8,0,43,0,28,0,76,0,9,0\n36,0,23,0,31,0,6,0,78,0,15,0\n51,0,47,0,33,0,12,0,68,0,62,0\n39,0,40,0,25,0,52,0,45,0,72,0\n77,0,50,0,41,0,3,0,69,0,32,0\n35,0,44,0,16,0,34,0,70,0,65,0\n10,0,46,0,66,0,75,0,48,0,60,0\n5,0,20,0,57,0,37,0,11,0,26,0\n18,0,56,0,38,0,53,0,24,0,27,0\n28,0,71,0,74,0,30,0,51,0,36,0\n14,0,73,0,9,0,19,0,45,0,47,0\n52,0,22,0,42,0,17,0,50,0,15,0\n65,0,6,0,3,0,25,0,4,0,8,0\n35,0,2,0,60,0,39,0,49,0,55,0\n58,0,59,0,26,0,63,0,68,0,76,0\n46,0,70,0,56,0,20,0,78,0,77,0\n12,0,54,0,38,0,69,0,16,0,66,0\n67,0,34,0,31,0,53,0,5,0,72,0\n43,0,13,0,21,0,48,0,27,0,44,0\n62,0,37,0,61,0,41,0,40,0,7,0\n64,0,24,0,23,0,75,0,33,0,11,0\n32,0,57,0,10,0,29,0,1,0,18,0\n74,0,26,0,47,0,25,0,42,0,49,0\n76,0,6,0,45,0,55,0,46,0,54,0\n20,0,53,0,4,0,71,0,15,0,9,0\n50,0,72,0,19,0,2,0,16,0,36,0\n12,0,3,0,7,0,31,0,56,0,35,0\n60,0,24,0,61,0,78,0,13,0,8,0\n5,0,43,0,51,0,10,0,52,0,14,0\n66,0,30,0,34,0,64,0,1,0,21,0\n18,0,48,0,11,0,73,0,39,0,22,0\n28,0,69,0,17,0,57,0,59,0,40,0\n63,0,75,0,77,0,62,0,65,0,29,0\n27,0,33,0,37,0,58,0,32,0,70,0\n68,0,44,0,41,0,38,0,23,0,67,0\n"
  },
  {
    "path": "schedules/78_4.csv",
    "content": "13,0,33,0,59,0,31,0,2,0,6,0\n71,0,70,0,73,0,26,0,48,0,16,0\n68,0,65,0,50,0,32,0,63,0,60,0\n17,0,47,0,67,0,66,0,77,0,52,0\n22,0,75,0,37,0,19,0,44,0,76,0\n21,0,29,0,34,0,35,0,53,0,42,0\n40,0,62,0,55,0,10,0,1,0,45,0\n15,0,69,0,11,0,36,0,41,0,23,0\n64,0,9,0,4,0,72,0,54,0,18,0\n56,0,5,0,24,0,51,0,38,0,7,0\n61,0,46,0,39,0,74,0,3,0,58,0\n30,0,43,0,12,0,57,0,14,0,25,0\n8,0,20,0,28,0,78,0,49,0,27,0\n77,0,31,0,63,0,21,0,40,0,48,0\n29,0,13,0,50,0,55,0,52,0,44,0\n73,0,41,0,33,0,65,0,19,0,18,0\n60,0,66,0,75,0,11,0,59,0,38,0\n72,0,62,0,2,0,16,0,69,0,24,0\n9,0,1,0,15,0,17,0,6,0,7,0\n20,0,51,0,23,0,39,0,4,0,12,0\n34,0,74,0,45,0,43,0,70,0,56,0\n58,0,78,0,26,0,25,0,35,0,76,0\n32,0,37,0,27,0,46,0,5,0,36,0\n22,0,8,0,64,0,14,0,68,0,67,0\n54,0,47,0,3,0,28,0,30,0,53,0\n42,0,61,0,49,0,10,0,57,0,71,0\n48,0,72,0,52,0,39,0,65,0,7,0\n43,0,16,0,21,0,17,0,75,0,23,0\n76,0,31,0,74,0,12,0,29,0,24,0\n55,0,26,0,11,0,9,0,20,0,33,0\n18,0,46,0,66,0,8,0,50,0,69,0\n36,0,68,0,51,0,53,0,2,0,58,0\n10,0,60,0,35,0,22,0,70,0,3,0\n14,0,6,0,49,0,63,0,54,0,44,0\n67,0,19,0,42,0,4,0,28,0,38,0\n15,0,71,0,5,0,25,0,40,0,34,0\n56,0,32,0,77,0,1,0,13,0,61,0\n57,0,62,0,37,0,41,0,78,0,47,0\n45,0,30,0,73,0,64,0,59,0,27,0\n24,0,35,0,17,0,55,0,48,0,36,0\n49,0,52,0,9,0,2,0,60,0,46,0\n10,0,8,0,65,0,4,0,74,0,11,0\n12,0,28,0,44,0,66,0,34,0,68,0\n6,0,3,0,38,0,16,0,32,0,29,0\n42,0,25,0,39,0,47,0,1,0,33,0\n14,0,40,0,20,0,59,0,37,0,18,0\n13,0,76,0,72,0,15,0,30,0,51,0\n69,0,58,0,7,0,71,0,43,0,67,0\n27,0,50,0,31,0,62,0,23,0,70,0\n21,0,78,0,54,0,22,0,73,0,61,0\n63,0,19,0,57,0,64,0,56,0,26,0\n41,0,53,0,45,0,75,0,77,0,5,0\n"
  },
  {
    "path": "schedules/78_5.csv",
    "content": "9,0,44,0,33,0,40,0,3,0,63,0\n41,0,31,0,8,0,42,0,35,0,36,0\n65,0,53,0,27,0,61,0,37,0,78,0\n4,0,5,0,50,0,16,0,73,0,60,0\n39,0,1,0,64,0,6,0,11,0,72,0\n62,0,13,0,77,0,19,0,29,0,7,0\n59,0,46,0,18,0,20,0,21,0,24,0\n58,0,74,0,68,0,57,0,75,0,52,0\n38,0,22,0,34,0,47,0,56,0,45,0\n51,0,54,0,67,0,55,0,32,0,70,0\n43,0,30,0,17,0,10,0,48,0,2,0\n12,0,76,0,71,0,26,0,15,0,66,0\n69,0,28,0,23,0,25,0,49,0,14,0\n73,0,18,0,65,0,3,0,42,0,62,0\n46,0,31,0,27,0,52,0,64,0,13,0\n57,0,33,0,61,0,50,0,36,0,56,0\n41,0,53,0,34,0,20,0,58,0,55,0\n38,0,51,0,77,0,40,0,30,0,5,0\n60,0,45,0,54,0,11,0,66,0,24,0\n26,0,70,0,49,0,1,0,43,0,9,0\n6,0,63,0,14,0,7,0,68,0,16,0\n22,0,32,0,15,0,59,0,10,0,28,0\n17,0,72,0,75,0,76,0,47,0,19,0\n29,0,78,0,48,0,8,0,69,0,39,0\n67,0,2,0,12,0,23,0,21,0,37,0\n44,0,71,0,74,0,35,0,25,0,4,0\n33,0,62,0,43,0,51,0,60,0,27,0\n20,0,14,0,9,0,30,0,61,0,31,0\n11,0,18,0,63,0,50,0,55,0,15,0\n5,0,76,0,1,0,56,0,41,0,28,0\n46,0,42,0,22,0,17,0,29,0,26,0\n19,0,57,0,73,0,32,0,49,0,12,0\n75,0,39,0,35,0,65,0,40,0,7,0\n23,0,16,0,45,0,71,0,8,0,53,0\n59,0,3,0,78,0,58,0,4,0,13,0\n21,0,52,0,48,0,54,0,6,0,38,0\n72,0,24,0,37,0,74,0,10,0,70,0\n47,0,69,0,68,0,67,0,66,0,44,0\n25,0,36,0,34,0,77,0,64,0,2,0\n7,0,17,0,28,0,9,0,12,0,51,0\n32,0,62,0,11,0,14,0,46,0,75,0\n31,0,40,0,56,0,16,0,78,0,26,0\n42,0,21,0,50,0,39,0,53,0,13,0\n30,0,54,0,74,0,23,0,63,0,73,0\n48,0,45,0,58,0,27,0,72,0,35,0\n66,0,64,0,8,0,33,0,37,0,59,0\n69,0,70,0,76,0,18,0,34,0,4,0\n38,0,61,0,41,0,44,0,19,0,43,0\n6,0,24,0,47,0,36,0,71,0,65,0\n20,0,49,0,52,0,77,0,67,0,22,0\n60,0,57,0,2,0,3,0,1,0,15,0\n68,0,5,0,55,0,29,0,10,0,25,0\n12,0,64,0,35,0,62,0,50,0,54,0\n17,0,70,0,40,0,27,0,14,0,21,0\n66,0,78,0,73,0,41,0,72,0,46,0\n13,0,26,0,36,0,32,0,18,0,38,0\n16,0,19,0,30,0,34,0,33,0,65,0\n69,0,20,0,1,0,51,0,63,0,45,0\n42,0,60,0,55,0,74,0,61,0,76,0\n58,0,2,0,49,0,8,0,7,0,5,0\n77,0,23,0,44,0,15,0,48,0,24,0\n25,0,56,0,59,0,9,0,75,0,6,0\n29,0,31,0,4,0,28,0,57,0,67,0\n3,0,10,0,52,0,53,0,47,0,11,0\n37,0,43,0,22,0,68,0,39,0,71,0\n"
  },
  {
    "path": "schedules/78_6.csv",
    "content": "25,0,29,0,7,0,27,0,12,0,78,0\n74,0,33,0,34,0,17,0,60,0,51,0\n77,0,46,0,43,0,67,0,24,0,15,0\n18,0,41,0,35,0,75,0,50,0,63,0\n2,0,47,0,22,0,54,0,9,0,59,0\n31,0,45,0,11,0,30,0,57,0,73,0\n69,0,48,0,70,0,65,0,58,0,55,0\n21,0,40,0,72,0,32,0,5,0,42,0\n53,0,14,0,39,0,56,0,64,0,61,0\n19,0,62,0,1,0,76,0,28,0,38,0\n52,0,16,0,68,0,4,0,66,0,20,0\n26,0,8,0,3,0,36,0,49,0,37,0\n10,0,6,0,23,0,71,0,44,0,13,0\n9,0,34,0,75,0,24,0,58,0,25,0\n47,0,17,0,30,0,35,0,40,0,43,0\n70,0,50,0,15,0,59,0,57,0,61,0\n2,0,42,0,28,0,11,0,53,0,60,0\n14,0,78,0,41,0,22,0,31,0,33,0\n32,0,68,0,76,0,26,0,45,0,46,0\n23,0,54,0,27,0,18,0,37,0,19,0\n8,0,12,0,10,0,77,0,63,0,66,0\n67,0,4,0,51,0,3,0,62,0,72,0\n39,0,44,0,74,0,16,0,69,0,21,0\n71,0,55,0,56,0,7,0,5,0,38,0\n20,0,29,0,48,0,6,0,1,0,49,0\n13,0,73,0,36,0,64,0,65,0,52,0\n26,0,31,0,75,0,42,0,27,0,15,0\n2,0,19,0,41,0,61,0,12,0,40,0\n54,0,57,0,62,0,25,0,77,0,17,0\n50,0,45,0,66,0,51,0,53,0,22,0\n37,0,55,0,32,0,47,0,24,0,16,0\n44,0,35,0,1,0,56,0,8,0,34,0\n23,0,58,0,60,0,73,0,68,0,29,0\n38,0,64,0,20,0,78,0,69,0,10,0\n6,0,5,0,36,0,63,0,76,0,67,0\n39,0,9,0,30,0,28,0,4,0,65,0\n46,0,71,0,33,0,70,0,21,0,3,0\n7,0,49,0,11,0,43,0,14,0,52,0\n74,0,59,0,13,0,18,0,48,0,72,0\n66,0,15,0,73,0,44,0,25,0,19,0\n69,0,68,0,53,0,41,0,37,0,1,0\n24,0,54,0,61,0,36,0,29,0,38,0\n51,0,10,0,65,0,35,0,42,0,76,0\n4,0,6,0,21,0,75,0,8,0,22,0\n17,0,50,0,20,0,14,0,2,0,3,0\n60,0,71,0,18,0,32,0,43,0,39,0\n23,0,74,0,78,0,45,0,63,0,49,0\n55,0,72,0,30,0,33,0,77,0,52,0\n40,0,11,0,64,0,26,0,9,0,62,0\n7,0,16,0,13,0,67,0,34,0,70,0\n27,0,47,0,57,0,48,0,56,0,28,0\n5,0,46,0,59,0,58,0,31,0,12,0\n18,0,65,0,22,0,17,0,68,0,61,0\n42,0,37,0,25,0,45,0,14,0,71,0\n53,0,15,0,49,0,10,0,32,0,4,0\n64,0,43,0,3,0,74,0,41,0,29,0\n77,0,69,0,75,0,60,0,19,0,13,0\n27,0,16,0,76,0,8,0,72,0,2,0\n35,0,55,0,66,0,78,0,59,0,28,0\n12,0,6,0,11,0,54,0,50,0,56,0\n40,0,7,0,58,0,44,0,36,0,57,0\n48,0,51,0,52,0,23,0,46,0,9,0\n67,0,38,0,33,0,47,0,39,0,73,0\n70,0,24,0,26,0,5,0,1,0,30,0\n62,0,63,0,34,0,21,0,20,0,31,0\n18,0,3,0,28,0,10,0,25,0,16,0\n54,0,8,0,15,0,14,0,74,0,55,0\n36,0,32,0,17,0,69,0,66,0,11,0\n76,0,56,0,77,0,40,0,23,0,59,0\n71,0,78,0,57,0,67,0,2,0,75,0\n44,0,72,0,49,0,41,0,9,0,70,0\n21,0,19,0,47,0,26,0,29,0,65,0\n68,0,63,0,30,0,64,0,51,0,7,0\n73,0,20,0,53,0,35,0,27,0,46,0\n58,0,42,0,1,0,50,0,33,0,13,0\n43,0,45,0,61,0,4,0,34,0,5,0\n12,0,24,0,22,0,62,0,48,0,39,0\n60,0,37,0,52,0,38,0,6,0,31,0\n"
  },
  {
    "path": "schedules/78_7.csv",
    "content": "8,0,37,0,10,0,62,0,57,0,15,0\n76,0,5,0,73,0,56,0,25,0,39,0\n66,0,74,0,70,0,52,0,42,0,60,0\n36,0,75,0,49,0,59,0,67,0,29,0\n26,0,77,0,47,0,33,0,9,0,24,0\n13,0,12,0,23,0,11,0,55,0,43,0\n68,0,2,0,28,0,41,0,51,0,50,0\n6,0,61,0,32,0,18,0,19,0,78,0\n40,0,16,0,14,0,30,0,54,0,48,0\n1,0,63,0,7,0,53,0,34,0,35,0\n3,0,71,0,38,0,17,0,58,0,44,0\n21,0,20,0,69,0,72,0,4,0,22,0\n31,0,46,0,27,0,64,0,65,0,45,0\n11,0,28,0,24,0,73,0,60,0,75,0\n36,0,33,0,10,0,32,0,41,0,42,0\n51,0,6,0,57,0,16,0,26,0,12,0\n13,0,9,0,1,0,40,0,25,0,74,0\n55,0,61,0,58,0,59,0,66,0,15,0\n62,0,29,0,35,0,50,0,23,0,44,0\n37,0,17,0,31,0,72,0,53,0,48,0\n69,0,63,0,18,0,68,0,70,0,49,0\n30,0,45,0,21,0,67,0,8,0,5,0\n22,0,54,0,39,0,77,0,3,0,64,0\n2,0,71,0,65,0,14,0,7,0,20,0\n43,0,4,0,78,0,56,0,52,0,46,0\n19,0,27,0,47,0,76,0,34,0,38,0\n75,0,42,0,40,0,31,0,23,0,26,0\n1,0,24,0,69,0,58,0,16,0,62,0\n68,0,59,0,74,0,48,0,5,0,32,0\n49,0,50,0,15,0,30,0,6,0,64,0\n18,0,25,0,17,0,21,0,12,0,65,0\n41,0,57,0,35,0,77,0,45,0,70,0\n72,0,7,0,60,0,8,0,56,0,19,0\n36,0,55,0,63,0,3,0,2,0,27,0\n39,0,29,0,28,0,71,0,4,0,13,0\n47,0,14,0,52,0,11,0,22,0,61,0\n51,0,53,0,20,0,73,0,38,0,78,0\n67,0,33,0,34,0,37,0,46,0,66,0\n43,0,44,0,10,0,54,0,9,0,76,0\n30,0,56,0,74,0,12,0,77,0,75,0\n48,0,64,0,70,0,23,0,2,0,58,0\n40,0,41,0,72,0,71,0,27,0,24,0\n16,0,32,0,3,0,45,0,47,0,4,0\n55,0,14,0,60,0,18,0,38,0,57,0\n8,0,6,0,20,0,1,0,52,0,28,0\n19,0,9,0,31,0,67,0,11,0,35,0\n78,0,66,0,5,0,10,0,22,0,50,0\n26,0,36,0,76,0,37,0,13,0,7,0\n54,0,29,0,61,0,17,0,69,0,46,0\n39,0,15,0,42,0,68,0,53,0,21,0\n62,0,65,0,73,0,49,0,43,0,34,0\n63,0,44,0,59,0,33,0,51,0,25,0\n70,0,67,0,72,0,12,0,32,0,1,0\n18,0,35,0,47,0,5,0,40,0,28,0\n26,0,48,0,19,0,55,0,10,0,71,0\n66,0,16,0,17,0,75,0,64,0,76,0\n3,0,24,0,68,0,57,0,29,0,20,0\n34,0,13,0,77,0,8,0,2,0,78,0\n11,0,56,0,50,0,58,0,65,0,42,0\n25,0,23,0,52,0,69,0,27,0,15,0\n46,0,51,0,21,0,36,0,14,0,9,0\n60,0,22,0,53,0,6,0,62,0,59,0\n4,0,31,0,41,0,54,0,63,0,73,0\n49,0,44,0,45,0,61,0,74,0,37,0\n38,0,43,0,39,0,7,0,30,0,33,0\n40,0,58,0,18,0,77,0,10,0,29,0\n5,0,19,0,75,0,65,0,70,0,15,0\n14,0,67,0,28,0,69,0,78,0,42,0\n72,0,13,0,64,0,51,0,47,0,62,0\n25,0,8,0,32,0,53,0,24,0,54,0\n56,0,23,0,71,0,66,0,45,0,36,0\n33,0,27,0,4,0,35,0,6,0,17,0\n61,0,60,0,20,0,43,0,63,0,26,0\n52,0,59,0,37,0,30,0,9,0,2,0\n57,0,74,0,34,0,31,0,39,0,50,0\n55,0,7,0,73,0,16,0,68,0,44,0\n12,0,46,0,48,0,41,0,22,0,38,0\n49,0,76,0,1,0,3,0,21,0,11,0\n58,0,45,0,19,0,13,0,14,0,53,0\n4,0,24,0,23,0,51,0,67,0,10,0\n6,0,2,0,43,0,69,0,47,0,75,0\n29,0,42,0,9,0,63,0,5,0,72,0\n15,0,32,0,56,0,20,0,40,0,34,0\n50,0,77,0,71,0,37,0,60,0,16,0\n52,0,12,0,68,0,31,0,33,0,76,0\n66,0,11,0,48,0,39,0,18,0,44,0\n65,0,1,0,78,0,55,0,41,0,30,0\n8,0,70,0,73,0,46,0,59,0,3,0\n38,0,35,0,61,0,25,0,64,0,36,0\n17,0,57,0,22,0,49,0,28,0,7,0\n21,0,54,0,62,0,27,0,26,0,74,0\n"
  },
  {
    "path": "schedules/78_8.csv",
    "content": "58,0,17,0,66,0,67,0,73,0,64,0\n35,0,70,0,54,0,36,0,19,0,21,0\n27,0,76,0,23,0,40,0,13,0,41,0\n1,0,10,0,46,0,55,0,72,0,62,0\n22,0,50,0,61,0,65,0,28,0,20,0\n33,0,7,0,12,0,25,0,42,0,78,0\n6,0,43,0,52,0,75,0,8,0,26,0\n38,0,14,0,71,0,51,0,39,0,34,0\n60,0,49,0,44,0,37,0,68,0,9,0\n18,0,74,0,31,0,5,0,30,0,63,0\n29,0,16,0,47,0,59,0,11,0,48,0\n32,0,53,0,69,0,45,0,15,0,77,0\n4,0,2,0,56,0,24,0,3,0,57,0\n17,0,54,0,75,0,12,0,1,0,66,0\n43,0,36,0,10,0,25,0,40,0,22,0\n64,0,8,0,68,0,61,0,27,0,42,0\n6,0,72,0,9,0,14,0,21,0,63,0\n26,0,60,0,38,0,16,0,28,0,73,0\n46,0,39,0,15,0,59,0,33,0,20,0\n44,0,23,0,7,0,18,0,2,0,52,0\n74,0,56,0,13,0,45,0,62,0,70,0\n30,0,3,0,29,0,51,0,35,0,49,0\n77,0,48,0,31,0,65,0,76,0,24,0\n69,0,11,0,37,0,67,0,19,0,34,0\n41,0,78,0,57,0,71,0,32,0,55,0\n4,0,47,0,58,0,50,0,5,0,53,0\n46,0,14,0,22,0,42,0,60,0,54,0\n20,0,45,0,40,0,63,0,2,0,68,0\n7,0,26,0,61,0,17,0,49,0,74,0\n62,0,33,0,77,0,35,0,38,0,43,0\n9,0,12,0,70,0,8,0,18,0,67,0\n34,0,36,0,23,0,78,0,24,0,29,0\n3,0,52,0,41,0,66,0,47,0,69,0\n71,0,6,0,10,0,16,0,15,0,58,0\n64,0,72,0,56,0,51,0,25,0,32,0\n50,0,27,0,30,0,57,0,37,0,48,0\n44,0,11,0,28,0,31,0,55,0,53,0\n19,0,39,0,13,0,75,0,65,0,4,0\n76,0,5,0,73,0,1,0,59,0,21,0\n34,0,40,0,24,0,42,0,49,0,62,0\n8,0,17,0,3,0,33,0,23,0,10,0\n14,0,61,0,78,0,47,0,70,0,15,0\n56,0,54,0,52,0,71,0,30,0,77,0\n67,0,51,0,27,0,36,0,60,0,74,0\n41,0,39,0,37,0,72,0,31,0,58,0\n53,0,73,0,35,0,20,0,75,0,57,0\n16,0,44,0,4,0,46,0,45,0,43,0\n65,0,7,0,1,0,63,0,69,0,64,0\n59,0,66,0,76,0,50,0,55,0,18,0\n68,0,29,0,21,0,13,0,28,0,32,0\n19,0,48,0,9,0,12,0,26,0,22,0\n25,0,5,0,6,0,11,0,38,0,2,0\n31,0,70,0,57,0,10,0,52,0,34,0\n56,0,33,0,53,0,16,0,60,0,41,0\n4,0,42,0,36,0,63,0,72,0,75,0\n8,0,65,0,58,0,59,0,62,0,78,0\n3,0,20,0,18,0,29,0,27,0,77,0\n35,0,68,0,69,0,17,0,76,0,46,0\n55,0,47,0,54,0,25,0,37,0,74,0\n22,0,15,0,13,0,38,0,24,0,66,0\n48,0,5,0,67,0,7,0,39,0,32,0\n61,0,71,0,51,0,23,0,11,0,9,0\n28,0,43,0,2,0,19,0,14,0,1,0\n30,0,40,0,26,0,64,0,44,0,21,0\n73,0,50,0,49,0,12,0,45,0,6,0\n34,0,25,0,8,0,16,0,77,0,46,0\n74,0,58,0,3,0,75,0,38,0,76,0\n59,0,24,0,32,0,17,0,27,0,70,0\n72,0,60,0,18,0,71,0,69,0,57,0\n43,0,47,0,31,0,7,0,13,0,9,0\n28,0,40,0,35,0,5,0,66,0,37,0\n73,0,29,0,44,0,39,0,56,0,61,0\n55,0,68,0,26,0,14,0,36,0,33,0\n49,0,12,0,52,0,10,0,11,0,64,0\n20,0,78,0,4,0,6,0,54,0,48,0\n1,0,23,0,45,0,67,0,22,0,30,0\n63,0,19,0,62,0,15,0,50,0,41,0\n51,0,21,0,65,0,42,0,2,0,53,0\n7,0,58,0,57,0,40,0,9,0,46,0\n77,0,5,0,75,0,70,0,16,0,68,0\n61,0,34,0,13,0,55,0,3,0,60,0\n28,0,27,0,33,0,47,0,72,0,52,0\n36,0,67,0,69,0,20,0,49,0,56,0\n59,0,63,0,37,0,12,0,23,0,43,0\n38,0,21,0,41,0,8,0,48,0,45,0\n18,0,15,0,11,0,35,0,4,0,1,0\n17,0,31,0,42,0,50,0,71,0,29,0\n24,0,30,0,25,0,65,0,73,0,14,0\n10,0,51,0,78,0,19,0,44,0,66,0\n39,0,53,0,64,0,22,0,6,0,74,0\n26,0,62,0,76,0,2,0,54,0,32,0\n72,0,40,0,67,0,61,0,3,0,59,0\n12,0,55,0,21,0,27,0,4,0,7,0\n47,0,38,0,46,0,31,0,56,0,23,0\n16,0,13,0,50,0,52,0,14,0,35,0\n5,0,65,0,15,0,44,0,36,0,17,0\n69,0,42,0,70,0,73,0,43,0,58,0\n64,0,29,0,45,0,57,0,19,0,76,0\n66,0,48,0,53,0,25,0,68,0,71,0\n49,0,54,0,63,0,39,0,8,0,28,0\n32,0,18,0,22,0,34,0,33,0,6,0\n20,0,1,0,37,0,26,0,51,0,24,0\n62,0,75,0,30,0,78,0,60,0,11,0\n41,0,2,0,74,0,9,0,10,0,77,0\n"
  },
  {
    "path": "schedules/78_9.csv",
    "content": "30,0,46,0,10,0,5,0,50,0,66,0\n11,0,28,0,4,0,36,0,61,0,70,0\n49,0,26,0,18,0,68,0,65,0,77,0\n54,0,52,0,56,0,25,0,64,0,37,0\n3,0,6,0,51,0,21,0,27,0,1,0\n45,0,73,0,19,0,29,0,41,0,42,0\n24,0,9,0,22,0,53,0,43,0,13,0\n59,0,2,0,38,0,44,0,17,0,48,0\n15,0,16,0,32,0,47,0,57,0,71,0\n33,0,78,0,63,0,60,0,39,0,40,0\n67,0,58,0,12,0,76,0,14,0,75,0\n35,0,7,0,69,0,23,0,20,0,8,0\n72,0,31,0,62,0,74,0,34,0,55,0\n26,0,66,0,53,0,36,0,54,0,19,0\n65,0,5,0,42,0,59,0,70,0,25,0\n24,0,28,0,50,0,57,0,52,0,44,0\n43,0,29,0,39,0,68,0,71,0,6,0\n63,0,58,0,77,0,16,0,27,0,37,0\n73,0,38,0,3,0,56,0,7,0,22,0\n40,0,1,0,49,0,12,0,10,0,74,0\n8,0,48,0,34,0,30,0,32,0,60,0\n67,0,17,0,20,0,61,0,51,0,62,0\n64,0,55,0,41,0,75,0,23,0,78,0\n47,0,76,0,2,0,9,0,31,0,21,0\n15,0,14,0,11,0,33,0,18,0,69,0\n46,0,4,0,45,0,72,0,35,0,13,0\n25,0,74,0,27,0,39,0,36,0,7,0\n16,0,56,0,50,0,49,0,48,0,12,0\n34,0,63,0,24,0,20,0,38,0,6,0\n68,0,70,0,62,0,52,0,10,0,3,0\n30,0,61,0,22,0,57,0,75,0,65,0\n5,0,8,0,26,0,55,0,17,0,33,0\n11,0,66,0,35,0,43,0,15,0,44,0\n32,0,14,0,1,0,29,0,4,0,2,0\n31,0,64,0,23,0,45,0,71,0,77,0\n46,0,60,0,9,0,69,0,54,0,41,0\n42,0,47,0,18,0,37,0,53,0,67,0\n13,0,40,0,21,0,28,0,73,0,58,0\n51,0,76,0,78,0,72,0,19,0,59,0\n65,0,52,0,74,0,16,0,8,0,11,0\n25,0,48,0,62,0,35,0,75,0,22,0\n10,0,44,0,63,0,61,0,7,0,14,0\n43,0,49,0,50,0,41,0,2,0,3,0\n15,0,5,0,60,0,24,0,1,0,45,0\n34,0,54,0,18,0,40,0,29,0,70,0\n47,0,17,0,58,0,36,0,23,0,46,0\n37,0,73,0,72,0,9,0,71,0,26,0\n33,0,28,0,51,0,42,0,31,0,68,0\n32,0,76,0,67,0,66,0,38,0,27,0\n20,0,57,0,77,0,21,0,53,0,78,0\n39,0,56,0,69,0,55,0,4,0,59,0\n19,0,6,0,13,0,30,0,64,0,12,0\n70,0,49,0,75,0,15,0,63,0,46,0\n37,0,41,0,22,0,5,0,40,0,14,0\n34,0,16,0,45,0,44,0,3,0,9,0\n1,0,8,0,50,0,76,0,68,0,11,0\n21,0,36,0,60,0,52,0,18,0,67,0\n38,0,69,0,58,0,61,0,26,0,25,0\n55,0,27,0,19,0,10,0,28,0,35,0\n39,0,64,0,17,0,72,0,32,0,24,0\n42,0,71,0,66,0,62,0,4,0,7,0\n77,0,43,0,47,0,48,0,13,0,51,0\n59,0,54,0,31,0,30,0,20,0,73,0\n57,0,56,0,74,0,23,0,2,0,6,0\n53,0,33,0,29,0,12,0,65,0,78,0\n41,0,67,0,8,0,15,0,28,0,25,0\n44,0,32,0,18,0,46,0,22,0,19,0\n7,0,40,0,76,0,26,0,35,0,52,0\n42,0,75,0,11,0,39,0,34,0,77,0\n49,0,9,0,51,0,38,0,30,0,70,0\n73,0,55,0,14,0,66,0,6,0,47,0\n53,0,61,0,59,0,23,0,1,0,16,0\n65,0,62,0,64,0,63,0,21,0,50,0\n13,0,74,0,71,0,48,0,54,0,33,0\n17,0,43,0,78,0,27,0,45,0,56,0\n36,0,3,0,20,0,29,0,72,0,5,0\n2,0,12,0,37,0,69,0,24,0,68,0\n4,0,57,0,60,0,10,0,58,0,31,0\n59,0,40,0,6,0,9,0,8,0,77,0\n26,0,1,0,46,0,67,0,64,0,22,0\n70,0,23,0,21,0,66,0,48,0,19,0\n32,0,52,0,61,0,78,0,13,0,42,0\n18,0,45,0,39,0,20,0,76,0,28,0\n71,0,2,0,72,0,11,0,53,0,63,0\n51,0,34,0,65,0,58,0,41,0,56,0\n12,0,62,0,55,0,54,0,43,0,57,0\n27,0,69,0,44,0,5,0,31,0,49,0\n3,0,30,0,4,0,25,0,24,0,47,0\n35,0,17,0,68,0,60,0,74,0,14,0\n50,0,29,0,15,0,7,0,38,0,37,0\n33,0,10,0,36,0,16,0,75,0,73,0\n72,0,41,0,6,0,18,0,61,0,48,0\n66,0,52,0,12,0,22,0,59,0,63,0\n57,0,31,0,51,0,39,0,46,0,8,0\n25,0,55,0,13,0,20,0,1,0,44,0\n5,0,19,0,62,0,9,0,58,0,11,0\n24,0,29,0,67,0,56,0,35,0,77,0\n33,0,34,0,7,0,49,0,47,0,64,0\n78,0,38,0,68,0,16,0,54,0,4,0\n28,0,14,0,23,0,43,0,3,0,26,0\n69,0,10,0,17,0,76,0,65,0,71,0\n21,0,75,0,37,0,45,0,74,0,32,0\n70,0,53,0,27,0,73,0,50,0,60,0\n2,0,30,0,40,0,42,0,15,0,36,0\n12,0,5,0,61,0,39,0,47,0,35,0\n78,0,8,0,49,0,18,0,62,0,24,0\n52,0,77,0,46,0,14,0,38,0,19,0\n9,0,57,0,66,0,17,0,25,0,29,0\n41,0,11,0,20,0,26,0,32,0,10,0\n75,0,60,0,59,0,3,0,28,0,71,0\n53,0,68,0,48,0,55,0,45,0,40,0\n54,0,22,0,42,0,58,0,6,0,50,0\n76,0,15,0,27,0,4,0,34,0,23,0\n70,0,7,0,16,0,67,0,2,0,13,0\n36,0,65,0,43,0,37,0,31,0,1,0\n74,0,64,0,63,0,51,0,73,0,69,0\n56,0,44,0,30,0,72,0,21,0,33,0\n"
  },
  {
    "path": "schedules/79_1.csv",
    "content": "5,0,32,0,79,0,60,0,18,0,76,0\n62,0,69,0,70,0,16,0,64,0,63,0\n31,0,6,0,36,0,54,0,34,0,9,0\n71,0,78,0,7,0,21,0,41,0,26,0\n55,0,12,0,45,0,37,0,22,0,25,0\n57,0,65,0,74,0,48,0,67,0,15,0\n28,0,13,0,4,0,49,0,8,0,11,0\n39,0,29,0,33,0,17,0,46,0,50,0\n38,0,51,0,66,0,73,0,52,0,40,0\n14,0,56,0,53,0,23,0,10,0,61,0\n2,0,35,0,58,0,77,0,43,0,47,0\n59,0,24,0,42,0,30,0,1,0,75,0\n68,0,27,0,44,0,3,0,19,0,20,0\n72,0,36,1,71,1,6,1,7,1,15,1\n"
  },
  {
    "path": "schedules/79_10.csv",
    "content": "23,0,11,0,19,0,45,0,64,0,40,0\n58,0,60,0,10,0,49,0,8,0,24,0\n20,0,55,0,38,0,42,0,63,0,53,0\n76,0,43,0,50,0,32,0,75,0,72,0\n51,0,15,0,33,0,28,0,46,0,78,0\n71,0,9,0,61,0,22,0,67,0,56,0\n54,0,69,0,77,0,26,0,14,0,34,0\n35,0,16,0,44,0,36,0,52,0,18,0\n7,0,25,0,4,0,41,0,47,0,5,0\n73,0,57,0,30,0,39,0,48,0,65,0\n29,0,59,0,79,0,62,0,68,0,21,0\n27,0,13,0,12,0,31,0,37,0,3,0\n74,0,17,0,2,0,66,0,1,0,6,0\n70,0,77,0,45,0,20,0,71,0,75,0\n23,0,72,0,49,0,69,0,55,0,35,0\n19,0,47,0,44,0,76,0,38,0,46,0\n67,0,39,0,7,0,4,0,53,0,33,0\n22,0,10,0,65,0,50,0,21,0,51,0\n37,0,18,0,40,0,32,0,25,0,63,0\n62,0,31,0,6,0,48,0,28,0,34,0\n27,0,57,0,79,0,74,0,52,0,5,0\n8,0,17,0,9,0,68,0,43,0,13,0\n42,0,73,0,1,0,61,0,54,0,15,0\n60,0,2,0,29,0,58,0,26,0,11,0\n3,0,78,0,64,0,30,0,16,0,70,0\n36,0,24,0,14,0,66,0,41,0,56,0\n12,0,53,0,39,0,59,0,72,0,22,0\n48,1,37,0,67,0,74,1,75,0,49,0\n13,0,28,0,63,0,52,0,21,0,35,0\n61,0,77,0,79,0,51,0,23,0,25,0\n65,0,27,0,15,0,17,0,34,0,4,0\n9,0,7,0,76,0,64,0,54,0,60,0\n55,0,46,0,29,0,6,0,45,0,8,0\n11,0,36,0,5,0,68,0,12,0,32,0\n30,0,20,0,31,0,69,0,10,0,2,0\n43,0,58,0,41,0,70,0,33,0,62,0\n1,0,40,0,3,0,59,0,42,0,57,0\n16,0,71,0,26,0,47,0,24,0,73,0\n78,0,56,0,14,0,18,0,38,0,19,0\n44,0,50,0,49,0,66,0,28,0,79,0\n51,0,75,0,54,0,35,0,27,0,68,0\n11,0,46,0,31,0,36,0,17,0,77,0\n13,0,41,0,76,0,39,0,15,0,74,0\n30,0,33,0,25,0,9,0,60,0,12,0\n48,0,20,0,47,0,37,0,72,0,29,0\n2,0,55,0,16,0,40,0,10,0,67,0\n71,0,58,0,21,0,53,0,7,0,19,0\n8,0,23,0,66,0,4,0,73,0,78,0\n38,0,24,0,3,0,34,0,22,0,43,0\n14,0,59,0,63,0,57,0,64,0,6,0\n5,0,50,0,70,0,18,0,61,0,62,0\n52,0,32,0,69,0,1,0,56,0,65,0\n44,0,26,0,48,0,45,0,42,0,25,0\n9,0,2,0,15,0,72,0,19,0,36,0\n20,0,51,0,67,0,11,0,13,0,66,0\n34,0,74,0,53,0,35,0,41,0,8,0\n30,0,22,0,68,0,76,0,49,0,77,0\n38,0,50,0,6,0,39,0,60,0,27,0\n32,0,55,0,7,0,62,0,3,0,73,0\n52,0,64,0,4,0,26,0,10,0,43,0\n69,0,21,0,37,0,5,0,78,0,61,0\n44,0,31,0,63,0,33,0,1,0,71,0\n12,0,57,0,18,0,58,0,46,0,23,0\n75,0,29,0,40,0,17,0,24,0,79,0\n14,0,28,0,47,0,42,0,65,0,70,0\n54,0,56,0,59,0,16,0,45,0,50,0\n53,0,64,0,49,0,27,0,73,0,25,0\n78,0,32,0,62,0,39,0,77,0,2,0\n38,0,37,0,11,0,41,0,1,0,9,0\n18,0,60,0,48,0,55,0,71,0,34,0\n24,0,23,0,76,0,6,0,5,0,63,0\n15,0,70,0,22,0,29,0,26,0,31,0\n21,0,17,0,33,0,54,0,20,0,14,0\n19,0,16,0,12,0,74,0,28,0,69,0\n4,0,44,0,61,0,13,0,40,0,72,0\n58,0,75,0,52,0,59,0,30,0,51,0\n35,0,66,0,47,0,43,0,45,0,57,0\n67,0,79,0,3,0,36,0,8,0,65,0\n46,0,10,0,56,0,7,0,68,0,42,0\n14,0,22,0,23,0,15,0,48,0,32,0\n76,0,28,0,2,0,27,0,18,0,71,0\n54,0,11,0,62,0,53,0,24,0,78,0\n40,0,9,0,26,0,20,0,74,0,50,0\n69,0,73,0,75,0,47,0,60,0,13,0\n41,0,12,0,51,0,55,0,44,0,17,0\n36,0,61,0,43,0,65,0,59,0,7,0\n68,0,25,0,39,0,63,0,66,0,58,0\n6,0,77,0,35,0,56,0,4,0,3,0\n1,0,29,0,5,0,19,0,10,0,49,0\n57,0,46,0,34,0,21,0,70,0,67,0\n72,0,31,0,45,0,38,0,30,0,79,0\n42,0,33,0,8,0,16,0,52,0,37,0\n69,0,65,0,71,0,64,0,62,0,15,0\n28,0,73,0,36,0,22,0,58,0,40,0\n20,0,23,0,27,0,43,0,56,0,44,0\n11,0,10,0,59,0,63,0,74,0,47,0\n75,0,21,0,39,0,49,0,18,0,9,0\n19,0,4,0,70,0,55,0,12,0,54,0\n72,0,8,0,16,0,51,0,7,0,14,0\n41,0,68,0,61,0,31,0,78,0,57,0\n50,0,46,0,25,0,2,0,24,0,52,0\n66,0,42,0,34,0,32,0,29,0,30,0\n64,0,35,0,48,0,38,0,33,0,77,0\n76,0,53,0,26,0,37,0,1,0,79,0\n60,0,3,0,45,0,5,0,67,0,17,0\n6,0,72,0,65,0,13,0,58,0,16,0\n39,0,43,0,71,0,69,0,51,0,40,0\n56,0,57,0,15,0,75,0,11,0,8,0\n49,0,78,0,20,0,36,0,34,0,47,0\n41,0,74,0,64,0,32,0,21,0,42,0\n48,0,54,0,79,0,2,0,12,0,63,0\n67,0,25,0,59,0,35,0,76,0,31,0\n22,0,62,0,37,0,46,0,4,0,60,0\n53,0,77,0,73,0,29,0,9,0,44,0\n19,0,66,0,61,0,26,0,33,0,3,0\n5,0,13,0,55,0,30,0,14,0,50,0\n70,0,52,0,38,0,7,0,17,0,23,0\n68,0,24,0,45,0,27,0,28,0,1,0\n18,0,6,0,15,0,10,0,20,0,79,0\n16,0,21,0,48,0,76,0,11,0,4,0\n56,0,60,0,40,0,51,0,31,0,53,0\n26,0,72,0,63,0,65,0,67,0,41,0\n3,0,25,0,74,0,71,0,29,0,54,0\n64,0,34,0,5,0,75,0,44,0,2,0\n32,0,13,0,24,0,57,0,33,0,55,0\n45,0,14,0,52,0,62,0,49,0,12,0\n8,0,28,0,10,0,38,0,61,0,39,0\n6,0,30,0,43,0,37,0,19,0,73,0\n7,0,1,0,47,0,22,0,77,0,18,0\n66,0,46,0,27,0,69,0,9,0,59,0\n58,0,42,0,17,0,78,0,35,0,50,0\n36,0,68,0,74,0,23,0,70,0,48,0\n"
  },
  {
    "path": "schedules/79_11.csv",
    "content": "54,0,57,0,52,0,59,0,32,0,26,0\n44,0,5,0,19,0,34,0,45,0,28,0\n49,0,25,0,47,0,70,0,10,0,40,0\n37,0,20,0,61,0,72,0,27,0,18,0\n55,0,77,0,71,0,29,0,33,0,12,0\n62,0,2,0,56,0,11,0,3,0,43,0\n50,0,23,0,1,0,74,0,42,0,68,0\n60,0,51,0,31,0,64,0,15,0,75,0\n24,0,79,0,22,0,38,0,16,0,36,0\n48,0,6,0,67,0,35,0,69,0,14,0\n65,0,39,0,9,0,17,0,8,0,21,0\n66,0,41,0,7,0,78,0,13,0,63,0\n4,0,73,0,76,0,58,0,53,0,46,0\n30,0,11,0,23,0,10,0,12,0,19,0\n49,0,71,0,2,0,59,0,5,0,72,0\n47,0,79,0,34,0,77,0,18,0,57,0\n36,0,56,0,67,0,37,0,52,0,1,0\n54,0,29,0,61,0,51,0,48,0,70,0\n38,0,28,0,35,0,21,0,31,0,74,0\n45,0,58,0,6,0,32,0,40,0,13,0\n66,0,69,0,27,0,3,0,73,0,15,0\n42,0,7,0,55,0,53,0,44,0,75,0\n14,0,33,0,62,0,4,0,9,0,17,0\n25,0,20,0,60,0,8,0,22,0,30,0\n64,0,41,0,24,0,39,0,68,0,76,0\n50,0,16,0,43,0,78,0,65,0,46,0\n26,0,56,0,74,0,63,0,10,0,5,0\n3,0,70,0,19,0,79,1,6,0,59,0\n66,0,57,0,40,0,44,0,29,0,23,0\n55,0,4,0,67,0,72,0,7,0,49,0\n48,0,60,0,42,0,34,0,71,0,38,0\n35,0,37,0,62,0,64,0,12,0,73,0\n14,0,54,0,1,0,20,0,11,0,15,0\n8,0,45,0,75,0,24,0,77,0,69,0\n31,0,68,0,46,0,63,0,30,0,9,0\n17,0,33,0,27,0,36,0,78,0,58,0\n21,0,76,0,13,0,51,0,52,0,26,0\n18,0,43,0,53,0,32,0,41,0,25,0\n2,0,50,0,61,0,16,0,39,0,28,0\n22,0,47,0,72,0,65,0,11,0,74,0\n29,0,10,0,37,0,79,0,20,0,75,0\n30,0,56,0,24,0,57,0,49,0,15,0\n70,0,34,0,69,0,23,0,9,0,71,0\n64,0,4,0,40,0,27,0,55,0,54,0\n53,0,68,0,59,0,38,0,12,0,17,0\n77,0,36,0,76,0,6,0,66,0,43,0\n7,0,18,0,51,0,14,0,52,0,5,0\n28,0,32,0,63,0,60,0,62,0,67,0\n31,0,45,0,26,0,41,0,22,0,50,0\n21,0,39,0,42,0,3,0,25,0,16,0\n35,0,44,0,13,0,46,0,47,0,1,0\n33,0,78,0,19,0,8,0,73,0,61,0\n65,0,48,0,75,0,2,0,58,0,79,0\n29,0,11,0,17,0,18,0,76,0,69,0\n27,0,34,0,63,0,28,0,6,0,49,0\n72,0,14,0,70,0,68,0,26,0,24,0\n3,0,37,0,55,0,23,0,5,0,25,0\n12,0,44,0,4,0,50,0,60,0,21,0\n56,0,31,0,39,0,36,0,71,0,47,0\n22,0,35,0,78,0,9,0,42,0,54,0\n58,0,43,0,8,0,57,0,74,0,61,0\n51,0,10,0,46,0,41,0,53,0,67,0\n16,0,59,0,40,0,48,0,15,0,7,0\n32,0,1,0,64,0,33,0,2,0,66,0\n65,0,62,0,52,0,38,0,19,0,45,0\n20,0,30,0,73,0,77,0,13,0,39,0\n26,0,78,0,4,0,35,0,56,0,79,0\n6,0,21,0,23,0,61,0,24,0,60,0\n28,0,12,0,46,0,18,0,75,0,70,0\n42,0,11,0,8,0,67,0,59,0,27,0\n66,0,15,0,71,0,53,0,74,0,25,0\n62,0,31,0,1,0,40,0,5,0,65,0\n32,0,34,0,3,0,29,0,64,0,22,0\n73,0,17,0,57,0,45,0,2,0,10,0\n30,0,58,0,50,0,47,0,7,0,14,0\n44,0,49,0,38,0,77,0,51,0,37,0\n41,0,48,0,9,0,19,0,36,0,72,0\n20,0,69,0,68,0,16,0,55,0,52,0\n76,0,63,0,43,0,33,0,54,0,13,0\n46,0,15,0,79,0,8,0,62,0,6,0\n60,0,5,0,35,0,53,0,27,0,39,0\n17,0,40,0,3,0,50,0,71,0,57,0\n58,0,34,0,21,0,66,0,30,0,67,0\n9,0,12,0,26,0,25,0,1,0,61,0\n74,0,10,0,36,0,16,0,64,0,44,0\n49,0,33,0,23,0,48,0,18,0,45,0\n70,0,77,0,52,0,11,0,31,0,4,0\n7,0,19,0,29,0,56,0,43,0,68,0\n51,0,24,0,65,0,37,0,42,0,63,0\n59,0,13,0,73,0,55,0,22,0,28,0\n47,0,38,0,54,0,2,0,69,0,41,0\n72,0,32,0,78,0,75,0,14,0,76,0\n20,0,57,0,64,0,5,0,48,0,46,0\n8,0,53,0,49,0,36,0,26,0,3,0\n66,0,39,0,12,0,43,0,31,0,67,0\n6,0,50,0,42,0,33,0,10,0,52,0\n17,0,15,0,22,0,70,0,63,0,44,0\n41,0,54,0,79,0,21,0,71,0,73,0\n47,0,51,0,16,0,45,0,9,0,55,0\n59,0,74,0,20,0,40,0,78,0,62,0\n32,0,27,0,23,0,38,0,7,0,30,0\n29,0,1,0,4,0,58,0,28,0,24,0\n69,0,25,0,56,0,77,0,65,0,72,0\n60,0,19,0,18,0,2,0,35,0,76,0\n11,0,61,0,13,0,34,0,75,0,68,0\n14,0,10,0,22,0,37,0,46,0,39,0\n52,0,12,0,49,0,78,0,64,0,47,0\n66,0,70,0,45,0,42,0,20,0,38,0\n1,0,43,0,59,0,79,0,51,0,23,0\n53,0,69,0,65,0,57,0,28,0,33,0\n18,0,36,0,21,0,55,0,62,0,15,0\n31,0,72,0,13,0,27,0,29,0,60,0\n14,0,34,0,16,0,8,0,56,0,54,0\n74,0,2,0,9,0,37,0,7,0,6,0\n5,0,32,0,11,0,24,0,73,0,50,0\n75,0,3,0,61,0,35,0,30,0,41,0\n77,0,40,0,19,0,67,0,26,0,17,0\n44,0,25,0,71,0,4,0,58,0,68,0\n76,0,48,0,55,0,63,0,1,0,39,0\n12,0,42,0,57,0,49,0,14,0,13,0\n6,0,18,0,65,0,54,0,53,0,66,0\n45,0,7,0,46,0,60,0,36,0,11,0\n52,0,74,0,41,0,79,0,70,0,27,0\n56,0,75,0,47,0,59,0,21,0,33,0\n51,0,22,0,40,0,19,0,4,0,2,0\n58,0,23,0,35,0,62,0,16,0,72,0\n28,0,15,0,43,0,71,0,64,0,26,0\n67,0,3,0,9,0,44,0,20,0,76,0\n73,0,63,0,38,0,50,0,25,0,29,0\n10,0,78,0,69,0,31,0,34,0,24,0\n68,0,8,0,77,0,37,0,48,0,32,0\n17,0,5,0,36,0,61,0,30,0,42,0\n39,0,19,0,75,0,54,0,49,0,74,0\n57,0,16,0,6,0,11,0,1,0,41,0\n2,0,27,0,26,0,46,0,66,0,55,0\n7,0,76,0,71,0,35,0,65,0,20,0\n64,0,50,0,67,0,22,0,56,0,18,0\n79,0,72,0,33,0,12,0,51,0,34,0\n38,0,15,0,5,0,10,0,58,0,9,0\n48,0,25,0,24,0,13,0,17,0,62,0\n28,0,68,0,60,0,47,0,3,0,77,0\n78,0,53,0,45,0,29,0,70,0,21,0\n8,0,63,0,52,0,40,0,23,0,73,0\n30,0,37,0,59,0,4,0,69,0,43,0\n14,0,32,0,44,0,61,0,31,0,79,0\n"
  },
  {
    "path": "schedules/79_12.csv",
    "content": "31,0,77,0,33,0,17,0,24,0,7,0\n28,0,29,0,62,0,57,0,56,0,79,0\n53,0,66,0,61,0,68,0,63,0,10,0\n47,0,12,0,58,0,26,0,52,0,49,0\n3,0,4,0,14,0,27,0,23,0,78,0\n64,0,36,0,69,0,30,0,73,0,15,0\n8,0,42,0,55,0,19,0,51,0,13,0\n16,0,46,0,39,0,22,0,5,0,65,0\n67,0,9,0,54,0,37,0,50,0,20,0\n18,0,48,0,44,0,75,0,60,0,21,0\n74,0,11,0,41,0,45,0,38,0,71,0\n72,0,59,0,34,0,2,0,6,0,40,0\n43,0,35,0,1,0,76,0,25,0,70,0\n24,0,49,0,28,0,32,0,66,0,29,0\n64,0,68,0,73,0,46,0,23,0,12,0\n79,0,47,0,20,0,36,0,33,0,55,0\n13,0,39,0,52,0,78,0,31,0,18,0\n61,0,60,0,19,0,58,0,67,0,4,0\n54,0,2,0,75,0,74,0,53,0,3,0\n37,0,56,0,35,0,48,0,26,0,65,0\n32,0,50,0,34,0,21,0,71,0,1,0\n15,0,57,0,70,0,44,0,42,0,11,0\n41,0,5,0,43,0,62,0,40,0,30,0\n38,0,69,0,72,0,10,0,25,0,14,0\n76,0,7,0,51,0,27,0,59,0,16,0\n45,0,6,0,22,0,9,0,77,0,17,0\n63,0,75,0,47,0,8,0,39,0,73,0\n23,0,18,0,79,0,50,0,2,0,53,0\n29,0,61,0,34,0,36,0,42,0,48,0\n35,0,40,0,54,0,67,0,46,0,15,0\n21,0,38,0,25,0,26,0,19,0,24,0\n44,0,14,0,51,0,62,0,58,0,33,0\n10,0,72,0,11,0,22,0,55,0,9,0\n12,0,1,0,37,0,74,0,57,0,17,0\n70,0,77,0,3,0,5,0,64,0,20,0\n59,0,4,0,49,0,31,0,56,0,43,0\n41,0,6,0,63,0,28,0,78,0,69,0\n7,0,13,0,16,0,71,0,60,0,66,0\n32,0,30,0,68,0,8,0,27,0,65,0\n52,0,76,0,46,0,45,0,50,0,29,0\n40,0,42,0,24,0,47,0,37,0,73,0\n51,0,12,0,10,0,15,0,79,0,48,0\n77,0,43,0,36,0,54,0,38,0,53,0\n75,0,26,0,55,0,70,0,28,0,31,0\n25,0,63,0,56,0,58,0,13,0,57,0\n23,0,5,0,1,0,33,0,61,0,6,0\n62,0,76,0,22,0,7,0,34,0,74,0\n78,0,8,0,60,0,11,0,2,0,21,0\n66,0,19,0,65,0,3,0,44,0,69,0\n14,0,16,0,67,0,9,0,30,0,18,0\n68,0,41,0,49,0,35,0,4,0,39,0\n59,0,17,0,64,0,71,0,27,0,20,0\n72,0,32,0,54,0,52,0,45,0,75,0\n50,0,7,0,73,0,61,0,38,0,28,0\n58,0,29,0,6,0,31,0,13,0,10,0\n34,0,77,0,60,0,56,0,12,0,3,0\n8,0,11,0,66,0,37,0,43,0,33,0\n62,0,2,0,24,0,22,0,48,0,69,0\n9,0,1,0,46,0,19,0,27,0,47,0\n35,0,79,0,76,0,30,0,71,0,44,0\n15,0,65,0,21,0,17,0,49,0,25,0\n45,0,78,0,26,0,59,0,18,0,5,0\n23,0,64,0,16,0,55,0,41,0,57,0\n4,0,70,0,51,0,72,0,63,0,36,0\n42,0,67,0,74,0,68,0,52,0,14,0\n39,0,40,0,20,0,32,0,53,0,12,0\n9,0,35,0,8,0,3,0,73,0,29,0\n33,0,27,0,50,0,62,0,19,0,10,0\n25,0,59,0,71,0,18,0,47,0,28,0\n15,0,78,0,55,0,61,0,7,0,43,0\n34,0,37,0,31,0,79,0,45,0,16,0\n5,0,72,0,2,0,66,0,68,0,57,0\n32,0,4,0,64,0,38,0,44,0,26,0\n69,0,39,0,49,0,60,0,1,0,51,0\n46,0,17,0,53,0,13,0,30,0,74,0\n14,0,70,0,54,0,24,0,41,0,56,0\n65,0,11,0,75,0,77,0,23,0,40,0\n76,0,48,0,63,0,6,0,67,0,36,0\n22,0,20,0,21,0,42,0,52,0,58,0\n50,0,55,0,43,0,68,0,35,0,34,0\n9,0,3,0,32,0,61,0,62,0,59,0\n44,0,8,0,10,0,78,0,5,0,74,0\n46,0,26,0,70,0,79,0,7,0,66,0\n17,0,19,0,41,0,72,0,60,0,73,0\n27,0,24,0,39,0,45,0,36,0,2,0\n13,0,33,0,23,0,54,0,49,0,76,0\n30,0,75,0,51,0,4,0,25,0,37,0\n67,0,69,0,77,0,21,0,57,0,47,0\n38,0,18,0,14,0,12,0,29,0,63,0\n1,0,58,0,56,0,16,0,53,0,11,0\n71,0,52,0,64,0,6,0,65,0,42,0\n48,0,31,0,20,0,28,0,40,0,15,0\n22,0,27,0,36,0,35,0,66,0,23,0\n24,0,79,0,68,0,13,0,60,0,9,0\n45,0,55,0,67,0,25,0,2,0,73,0\n29,0,59,0,57,0,39,0,19,0,70,0\n18,0,32,0,17,0,11,0,69,0,34,0\n74,0,16,0,49,0,3,0,72,0,78,0\n15,0,75,0,5,0,76,0,58,0,14,0\n48,0,7,0,4,0,54,0,65,0,47,0\n33,0,28,0,21,0,53,0,37,0,64,0\n40,0,10,0,1,0,8,0,52,0,77,0\n61,0,26,0,56,0,71,0,22,0,51,0\n44,0,63,0,43,0,20,0,46,0,41,0\n6,0,31,0,30,0,12,0,50,0,42,0\n62,0,68,0,78,0,38,0,17,0,70,0\n79,0,59,0,73,0,65,0,74,0,14,0\n66,0,34,0,58,0,54,0,39,0,64,0\n52,0,69,0,57,0,7,0,75,0,9,0\n45,0,28,0,51,0,10,0,21,0,35,0\n22,0,2,0,16,0,43,0,47,0,29,0\n6,0,25,0,18,0,40,0,27,0,4,0\n42,0,60,0,53,0,5,0,76,0,55,0\n48,0,30,0,38,0,33,0,1,0,3,0\n13,0,15,0,11,0,41,0,26,0,50,0\n77,0,63,0,19,0,37,0,71,0,32,0\n56,0,72,0,44,0,23,0,31,0,67,0\n36,0,49,0,12,0,8,0,46,0,62,0\n20,0,61,0,75,0,24,0,35,0,16,0\n60,0,29,0,74,0,40,0,51,0,64,0\n58,0,5,0,28,0,2,0,17,0,4,0\n53,0,73,0,33,0,34,0,52,0,70,0\n25,0,42,0,30,0,32,0,7,0,78,0\n48,0,71,0,43,0,23,0,72,0,39,0\n63,0,26,0,54,0,1,0,55,0,62,0\n11,0,20,0,19,0,6,0,14,0,49,0\n77,0,21,0,41,0,61,0,79,0,27,0\n8,0,67,0,13,0,22,0,59,0,38,0\n46,0,10,0,3,0,37,0,24,0,18,0\n47,0,45,0,56,0,15,0,68,0,44,0\n76,0,12,0,31,0,66,0,9,0,69,0\n65,0,57,0,40,0,36,0,50,0,78,0\n60,0,33,0,35,0,32,0,74,0,63,0\n19,0,6,0,64,0,79,0,75,0,43,0\n53,0,27,0,26,0,67,0,72,0,29,0\n7,0,18,0,2,0,20,0,1,0,49,0\n37,0,52,0,5,0,38,0,15,0,34,0\n45,0,23,0,58,0,8,0,30,0,69,0\n39,0,56,0,17,0,61,0,10,0,42,0\n66,0,46,0,14,0,25,0,48,0,77,0\n71,0,57,0,31,0,73,0,22,0,54,0\n9,0,47,0,51,0,70,0,65,0,41,0\n76,0,3,0,36,0,68,0,28,0,11,0\n21,0,4,0,13,0,12,0,62,0,16,0\n24,0,50,0,59,0,55,0,44,0,58,0\n23,0,30,0,20,0,34,0,10,0,26,0\n18,0,42,0,15,0,33,0,72,0,66,0\n5,0,27,0,73,0,48,0,56,0,49,0\n60,0,65,0,43,0,1,0,45,0,14,0\n25,0,7,0,8,0,9,0,41,0,53,0\n38,0,57,0,32,0,6,0,51,0,46,0\n29,0,21,0,69,0,59,0,54,0,68,0\n78,0,71,0,12,0,75,0,24,0,67,0\n74,0,50,0,39,0,55,0,77,0,4,0\n70,0,61,0,37,0,76,0,2,0,13,0\n47,0,11,0,62,0,35,0,64,0,31,0\n19,0,52,0,44,0,36,0,16,0,28,0\n40,0,79,0,3,0,63,0,22,0,17,0\n"
  },
  {
    "path": "schedules/79_13.csv",
    "content": "50,0,68,0,62,0,63,0,24,0,57,0\n72,0,17,0,60,0,42,0,67,0,61,0\n71,0,44,0,38,0,19,0,23,0,45,0\n70,0,75,0,21,0,40,0,13,0,25,0\n47,0,49,0,34,0,43,0,59,0,11,0\n16,0,12,0,30,0,65,0,6,0,27,0\n36,0,51,0,9,0,55,0,20,0,26,0\n10,0,8,0,78,0,52,0,22,0,35,0\n41,0,31,0,7,0,28,0,2,0,74,0\n48,0,66,0,46,0,73,0,64,0,18,0\n69,0,58,0,1,0,76,0,4,0,32,0\n33,0,53,0,39,0,5,0,56,0,14,0\n79,0,3,0,77,0,54,0,15,0,37,0\n29,0,38,0,25,0,43,0,55,0,27,0\n45,0,47,0,10,0,75,0,6,0,24,0\n62,0,60,0,22,0,34,0,65,0,26,0\n18,0,41,0,46,0,68,0,52,0,17,0\n30,0,20,0,21,0,73,0,49,0,67,0\n7,0,35,0,33,0,58,0,59,0,72,0\n13,0,32,0,5,0,31,0,44,0,54,0\n56,0,2,0,3,0,64,0,50,0,40,0\n4,0,12,0,19,0,42,0,70,0,77,0\n71,0,53,0,16,0,79,0,78,0,29,0\n69,0,15,0,57,0,39,0,48,0,36,0\n66,0,37,0,23,0,51,0,8,0,11,0\n61,0,14,0,28,0,76,0,63,0,9,0\n1,0,59,0,27,0,74,0,73,0,44,0\n33,1,2,0,60,0,43,1,10,0,52,0\n54,1,18,0,45,0,40,1,58,0,21,0\n62,1,70,0,16,0,50,0,5,0,7,0\n3,0,72,0,57,0,69,0,78,0,75,0\n41,0,4,0,30,0,56,0,47,0,23,0\n34,0,6,0,35,0,66,0,61,0,29,0\n38,0,65,0,14,0,74,0,20,0,8,0\n17,0,25,0,63,0,11,0,53,0,32,0\n26,0,71,0,37,0,31,0,48,0,1,0\n19,0,79,0,67,0,9,0,39,0,22,0\n49,0,55,0,28,0,13,0,68,0,12,0\n76,0,77,0,51,0,46,0,36,0,64,0\n24,0,42,0,78,0,15,0,44,0,2,0\n61,0,20,0,75,0,50,0,8,0,27,0\n14,0,16,0,47,0,23,0,69,0,62,0\n34,0,57,0,11,0,30,0,7,0,71,0\n41,0,17,0,26,0,19,0,3,0,29,0\n33,0,6,0,52,0,73,0,48,0,13,0\n10,0,32,0,28,0,36,0,67,0,70,0\n37,0,24,0,25,0,76,0,12,0,5,0\n18,0,55,0,66,0,72,0,39,0,79,0\n64,0,42,0,54,0,9,0,38,0,31,0\n58,0,51,0,22,0,49,0,77,0,60,0\n35,0,43,0,45,0,68,0,1,0,74,0\n4,0,56,0,63,0,65,0,21,0,59,0\n15,0,46,0,7,0,53,0,40,0,29,0\n76,0,27,0,67,0,34,0,52,0,48,0\n17,0,69,0,19,0,30,0,55,0,13,0\n75,0,42,0,73,0,5,0,26,0,79,0\n41,0,10,0,16,0,61,0,11,0,77,0\n50,0,66,0,12,0,44,0,60,0,43,0\n3,0,62,0,32,0,8,0,56,0,72,0\n31,0,24,0,59,0,51,0,70,0,14,0\n28,0,40,0,15,0,6,0,23,0,58,0\n53,0,22,0,21,0,64,0,47,0,68,0\n36,0,38,0,33,0,37,0,63,0,35,0\n39,0,74,0,71,0,54,0,4,0,25,0\n78,0,2,0,18,0,49,0,1,0,20,0\n65,0,57,0,9,0,45,0,46,0,32,0\n43,0,3,0,61,0,19,0,59,0,51,0\n70,0,13,0,10,0,29,0,41,0,58,0\n52,0,55,0,40,0,44,0,47,0,30,0\n75,0,76,0,66,0,7,0,77,0,17,0\n31,0,67,0,68,0,62,0,25,0,15,0\n73,0,36,0,50,0,23,0,54,0,53,0\n63,0,6,0,48,0,22,0,2,0,1,0\n28,0,65,0,42,0,18,0,35,0,69,0\n24,0,49,0,64,0,37,0,16,0,39,0\n38,0,5,0,20,0,60,0,46,0,71,0\n45,0,12,0,34,0,33,0,79,0,56,0\n21,0,9,0,74,0,72,0,11,0,78,0\n26,0,4,0,27,0,14,0,57,0,8,0\n48,0,53,0,43,0,61,0,32,0,55,0\n30,0,29,0,50,0,1,0,18,0,42,0\n36,0,23,0,59,0,39,0,52,0,75,0\n40,0,5,0,67,0,64,0,65,0,63,0\n7,0,19,0,10,0,69,0,49,0,37,0\n17,0,78,0,73,0,51,0,62,0,12,0\n9,0,77,0,27,0,13,0,35,0,56,0\n20,0,54,0,72,0,24,0,34,0,4,0\n71,0,2,0,8,0,70,0,33,0,68,0\n41,0,79,0,14,0,6,0,44,0,57,0\n11,0,45,0,16,0,31,0,22,0,66,0\n3,0,76,0,15,0,47,0,60,0,21,0\n25,0,46,0,74,0,58,0,26,0,28,0\n38,0,7,0,12,0,67,0,9,0,1,0\n56,0,42,0,52,0,20,0,37,0,43,0\n73,0,72,0,40,0,10,0,71,0,68,0\n61,0,24,0,8,0,18,0,13,0,79,0\n62,0,49,0,36,0,41,0,45,0,27,0\n47,0,4,0,51,0,48,0,35,0,5,0\n59,0,22,0,25,0,54,0,30,0,2,0\n58,0,34,0,14,0,3,0,64,0,17,0\n31,0,57,0,29,0,69,0,77,0,21,0\n39,0,6,0,50,0,78,0,26,0,38,0\n75,0,53,0,65,0,28,0,44,0,66,0\n63,0,55,0,23,0,74,0,70,0,76,0\n32,0,33,0,15,0,16,0,19,0,46,0\n11,0,27,0,79,0,60,0,40,0,68,0\n71,0,52,0,5,0,49,0,3,0,9,0\n48,0,45,0,24,0,29,0,17,0,43,0\n13,0,22,0,64,0,57,0,50,0,35,0\n53,0,30,0,62,0,37,0,4,0,10,0\n2,0,31,0,61,0,55,0,38,0,75,0\n78,0,21,0,66,0,33,0,23,0,42,0\n77,0,74,0,26,0,20,0,32,0,47,0\n16,0,56,0,54,0,18,0,76,0,28,0\n63,0,34,0,51,0,41,0,15,0,12,0\n14,0,72,0,36,0,1,0,19,0,60,0\n8,0,46,0,69,0,59,0,67,0,6,0\n11,0,44,0,65,0,58,0,70,0,39,0\n25,0,73,0,23,0,7,0,3,0,22,0\n30,0,32,0,52,0,21,0,24,0,38,0\n18,0,9,0,29,0,75,0,62,0,4,0\n47,0,17,0,42,0,33,0,27,0,71,0\n43,0,78,0,34,0,28,0,77,0,36,0\n59,0,15,0,55,0,20,0,57,0,10,0\n12,0,54,0,35,0,46,0,11,0,14,0\n64,0,1,0,41,0,25,0,65,0,79,0\n6,0,70,0,49,0,53,0,76,0,72,0\n68,0,26,0,44,0,61,0,7,0,56,0\n19,0,73,0,58,0,31,0,63,0,8,0\n50,0,74,0,60,0,40,0,37,0,48,0\n13,0,39,0,67,0,16,0,51,0,2,0\n69,0,5,0,59,0,66,0,45,0,15,0\n29,0,28,0,20,0,22,0,11,0,33,0\n17,0,27,0,70,0,6,0,54,0,78,0\n21,0,55,0,35,0,41,0,62,0,71,0\n18,0,44,0,10,0,34,0,3,0,25,0\n4,0,31,0,46,0,49,0,79,0,50,0\n14,0,68,0,32,0,37,0,75,0,51,0\n63,0,60,0,30,0,45,0,7,0,39,0\n12,0,74,0,23,0,64,0,61,0,69,0\n57,0,73,0,76,0,19,0,38,0,43,0\n47,0,72,0,65,0,2,0,13,0,36,0\n40,0,56,0,26,0,66,0,24,0,67,0\n52,0,8,0,1,0,5,0,77,0,53,0\n58,0,48,0,68,0,9,0,16,0,42,0\n79,0,28,0,7,0,50,0,21,0,51,0\n71,0,22,0,32,0,18,0,15,0,14,0\n39,0,63,0,43,0,31,0,27,0,10,0\n61,0,33,0,74,0,36,0,3,0,30,0\n13,0,46,0,37,0,45,0,4,0,78,0\n1,0,54,0,70,0,47,0,57,0,66,0\n75,0,19,0,64,0,62,0,65,0,52,0\n9,0,60,0,24,0,41,0,73,0,69,0\n11,0,56,0,6,0,55,0,5,0,42,0\n77,0,20,0,23,0,48,0,25,0,72,0\n38,0,8,0,40,0,16,0,34,0,17,0\n59,0,26,0,2,0,53,0,12,0,58,0\n44,0,49,0,76,0,67,0,29,0,35,0\n79,0,15,0,75,0,30,0,74,0,43,0\n51,0,68,0,54,0,10,0,65,0,33,0\n64,0,6,0,71,0,24,0,7,0,36,0\n61,0,39,0,1,0,46,0,21,0,62,0\n11,0,3,0,66,0,13,0,4,0,38,0\n58,0,18,0,5,0,27,0,23,0,57,0\n76,0,22,0,42,0,41,0,59,0,40,0\n52,0,72,0,44,0,63,0,26,0,16,0\n70,0,2,0,37,0,9,0,73,0,34,0\n60,0,35,0,20,0,31,0,53,0,17,0\n48,0,19,0,56,0,78,0,25,0,49,0\n77,0,67,0,45,0,14,0,55,0,50,0\n32,0,8,0,29,0,28,0,12,0,47,0\n69,0,43,0,40,0,33,0,54,0,62,0\n"
  },
  {
    "path": "schedules/79_14.csv",
    "content": "75,0,33,0,39,0,25,0,26,0,6,0\n52,0,28,0,24,0,60,0,36,0,40,0\n31,0,8,0,11,0,78,0,37,0,57,0\n13,0,61,0,47,0,48,0,66,0,19,0\n73,0,23,0,14,0,12,0,5,0,4,0\n45,0,68,0,15,0,32,0,30,0,44,0\n63,0,74,0,71,0,64,0,1,0,72,0\n9,0,51,0,3,0,43,0,10,0,69,0\n27,0,77,0,34,0,54,0,56,0,7,0\n16,0,49,0,50,0,29,0,53,0,22,0\n79,0,70,0,21,0,42,0,35,0,62,0\n38,0,65,0,67,0,59,0,55,0,46,0\n58,0,76,0,41,0,20,0,2,0,18,0\n17,0,15,0,8,0,31,0,24,0,68,0\n40,0,72,0,66,0,45,0,4,0,9,0\n39,0,60,0,1,0,3,0,11,0,43,0\n26,0,10,0,61,0,73,0,49,0,36,0\n79,0,30,0,63,0,13,0,27,0,22,0\n28,0,74,0,56,0,33,0,48,0,42,0\n29,0,52,0,58,0,38,0,47,0,14,0\n19,0,76,0,75,0,7,0,35,0,17,0\n18,0,25,0,64,0,12,0,67,0,37,0\n71,0,65,0,44,0,50,0,6,0,5,0\n41,0,54,0,78,0,62,0,23,0,46,0\n2,0,21,0,59,0,77,0,51,0,55,0\n69,0,34,0,57,0,53,0,32,0,16,0\n20,0,72,0,29,0,70,0,22,0,39,0\n33,1,30,0,35,0,43,1,74,0,7,0\n25,1,66,0,37,0,47,1,36,0,79,0\n19,0,26,0,60,0,27,0,5,0,64,0\n56,0,41,0,11,0,45,0,71,0,24,0\n77,0,38,0,62,0,31,0,12,0,3,0\n14,0,10,0,34,0,63,0,48,0,6,0\n67,0,42,0,58,0,57,0,73,0,40,0\n61,0,54,0,75,0,51,0,4,0,68,0\n44,0,28,0,16,0,20,0,21,0,23,0\n2,0,17,0,13,0,52,0,69,0,65,0\n46,0,15,0,9,0,50,0,76,0,55,0\n18,0,70,0,8,0,49,0,59,0,32,0\n1,0,38,0,12,0,53,0,78,0,7,0\n3,0,73,0,33,0,66,0,24,0,14,0\n47,0,60,0,41,0,68,0,30,0,74,0\n57,0,48,0,29,0,51,0,6,0,62,0\n56,0,34,0,64,0,39,0,69,0,36,0\n11,0,55,0,17,0,28,0,22,0,61,0\n50,0,9,0,32,0,31,0,67,0,19,0\n49,0,37,0,42,0,13,0,45,0,59,0\n35,0,20,0,77,0,23,0,10,0,4,0\n53,0,44,0,5,0,54,0,72,0,76,0\n18,0,75,0,27,0,65,0,1,0,21,0\n40,0,2,0,79,0,8,0,43,0,71,0\n52,0,63,0,46,0,16,0,58,0,26,0\n15,0,70,0,69,0,25,0,78,0,28,0\n59,0,73,0,42,0,68,0,34,0,3,0\n20,0,17,0,24,0,12,0,74,0,50,0\n31,0,4,0,55,0,49,0,60,0,48,0\n36,0,29,0,75,0,54,0,11,0,30,0\n43,0,23,0,22,0,27,0,37,0,38,0\n44,0,64,0,61,0,18,0,57,0,52,0\n19,0,63,0,1,0,25,0,21,0,40,0\n6,0,77,0,32,0,79,0,26,0,78,0\n66,0,53,0,33,0,70,0,2,0,46,0\n16,0,76,0,45,0,39,0,10,0,65,0\n67,0,47,0,35,0,15,0,56,0,72,0\n51,0,8,0,7,0,41,0,5,0,14,0\n13,0,71,0,62,0,9,0,58,0,36,0\n54,0,59,0,69,0,20,0,73,0,74,0\n23,0,64,0,50,0,30,0,55,0,34,0\n18,0,4,0,78,0,27,0,63,0,29,0\n45,0,43,0,77,0,53,0,57,0,76,0\n11,0,46,0,65,0,15,0,42,0,25,0\n41,0,8,0,22,0,56,0,26,0,44,0\n39,0,12,0,40,0,66,0,51,0,35,0\n14,0,16,0,62,0,61,0,17,0,1,0\n24,0,7,0,72,0,58,0,48,0,32,0\n38,0,60,0,71,0,37,0,19,0,21,0\n5,0,70,0,28,0,13,0,10,0,67,0\n33,0,52,0,68,0,9,0,49,0,79,0\n3,0,2,0,6,0,75,0,31,0,47,0\n51,0,76,0,25,0,66,0,74,0,34,0\n39,0,59,0,41,0,53,0,17,0,63,0\n42,0,4,0,16,0,8,0,24,0,78,0\n20,0,48,0,27,0,36,0,71,0,15,0\n43,0,58,0,50,0,70,0,56,0,61,0\n64,0,57,0,46,0,10,0,79,0,1,0\n6,0,12,0,21,0,52,0,3,0,30,0\n40,0,55,0,54,0,18,0,13,0,31,0\n26,0,22,0,45,0,68,0,47,0,19,0\n9,0,67,0,44,0,14,0,2,0,49,0\n60,0,75,0,69,0,23,0,29,0,77,0\n37,0,65,0,7,0,62,0,73,0,28,0\n5,0,72,0,32,0,11,0,38,0,33,0\n35,0,43,0,4,0,59,0,6,0,64,0\n3,0,27,0,70,0,41,0,17,0,57,0\n47,0,55,0,20,0,63,0,42,0,51,0\n67,0,78,0,61,0,21,0,76,0,24,0\n12,0,48,0,2,0,19,0,45,0,29,0\n31,0,30,0,56,0,10,0,25,0,16,0\n11,0,32,0,66,0,52,0,54,0,23,0\n68,0,72,0,69,0,18,0,14,0,37,0\n26,0,73,0,46,0,71,0,35,0,9,0\n49,0,33,0,13,0,15,0,1,0,77,0\n5,0,60,0,22,0,7,0,62,0,39,0\n65,0,58,0,74,0,8,0,44,0,36,0\n38,0,28,0,79,0,75,0,34,0,50,0\n53,0,30,0,25,0,40,0,4,0,3,0\n16,0,64,0,68,0,27,0,2,0,66,0\n19,0,78,0,11,0,67,0,20,0,56,0\n21,0,48,0,54,0,17,0,26,0,43,0\n12,0,59,0,57,0,13,0,60,0,72,0\n22,0,71,0,51,0,33,0,65,0,76,0\n73,0,70,0,9,0,28,0,77,0,63,0\n49,0,52,0,38,0,42,0,74,0,39,0\n35,0,34,0,24,0,29,0,44,0,1,0\n58,0,8,0,53,0,75,0,55,0,6,0\n31,0,45,0,37,0,61,0,46,0,5,0\n50,0,40,0,62,0,47,0,69,0,32,0\n7,0,14,0,79,0,23,0,36,0,18,0\n15,0,10,0,21,0,41,0,72,0,2,0\n63,0,49,0,26,0,12,0,56,0,76,0\n43,0,78,0,13,0,39,0,44,0,68,0\n35,0,57,0,25,0,20,0,54,0,38,0\n60,0,65,0,8,0,33,0,34,0,61,0\n31,0,52,0,51,0,73,0,27,0,67,0\n32,0,18,0,42,0,71,0,14,0,30,0\n15,0,7,0,29,0,37,0,40,0,17,0\n22,0,6,0,66,0,41,0,69,0,1,0\n24,0,5,0,48,0,59,0,9,0,75,0\n46,0,79,0,4,0,70,0,11,0,47,0\n58,0,23,0,28,0,3,0,45,0,64,0\n53,0,55,0,19,0,62,0,10,0,74,0\n36,0,16,0,72,0,77,0,50,0,68,0\n38,0,17,0,30,0,2,0,56,0,51,0\n73,0,22,0,63,0,15,0,32,0,60,0\n13,0,25,0,20,0,29,0,8,0,61,0\n9,0,21,0,7,0,11,0,57,0,4,0\n44,0,45,0,69,0,70,0,31,0,33,0\n39,0,28,0,27,0,46,0,12,0,14,0\n6,0,19,0,24,0,49,0,77,0,18,0\n42,0,79,0,64,0,53,0,48,0,41,0\n65,0,3,0,78,0,74,0,40,0,26,0\n67,0,62,0,34,0,66,0,75,0,43,0\n55,0,71,0,5,0,16,0,52,0,35,0\n36,0,1,0,76,0,59,0,23,0,47,0\n37,0,10,0,50,0,54,0,58,0,39,0\n18,0,45,0,51,0,9,0,25,0,60,0\n6,0,29,0,56,0,68,0,46,0,28,0\n61,0,20,0,53,0,32,0,7,0,27,0\n31,0,79,0,43,0,72,0,12,0,65,0\n41,0,74,0,13,0,73,0,75,0,16,0\n70,0,62,0,76,0,38,0,24,0,64,0\n36,0,33,0,19,0,23,0,57,0,55,0\n42,0,10,0,71,0,17,0,66,0,44,0\n59,0,14,0,26,0,15,0,11,0,40,0\n67,0,48,0,77,0,30,0,58,0,22,0\n5,0,49,0,34,0,21,0,78,0,47,0\n37,0,1,0,4,0,2,0,50,0,52,0\n8,0,69,0,3,0,54,0,63,0,35,0\n55,0,36,0,41,0,32,0,43,0,12,0\n23,0,60,0,61,0,42,0,6,0,72,0\n14,0,9,0,56,0,65,0,53,0,70,0\n76,0,59,0,66,0,29,0,28,0,31,0\n68,0,17,0,5,0,25,0,58,0,77,0\n64,0,37,0,30,0,20,0,1,0,33,0\n50,0,21,0,73,0,48,0,8,0,45,0\n39,0,47,0,4,0,69,0,71,0,67,0\n3,0,19,0,54,0,79,0,15,0,16,0\n40,0,78,0,52,0,75,0,10,0,22,0\n2,0,24,0,26,0,13,0,7,0,57,0\n18,0,44,0,63,0,38,0,46,0,51,0\n35,0,74,0,49,0,27,0,11,0,62,0\n34,0,1,0,31,0,20,0,41,0,70,0\n65,0,29,0,47,0,21,0,64,0,77,0\n43,0,30,0,39,0,28,0,8,0,19,0\n22,0,54,0,12,0,61,0,42,0,9,0\n59,0,58,0,10,0,33,0,69,0,79,0\n56,0,32,0,46,0,5,0,13,0,3,0\n55,0,27,0,25,0,72,0,73,0,44,0\n75,0,57,0,63,0,66,0,49,0,71,0\n17,0,36,0,74,0,45,0,67,0,6,0\n48,0,68,0,11,0,76,0,40,0,38,0\n35,0,78,0,2,0,50,0,14,0,60,0\n23,0,26,0,37,0,24,0,51,0,53,0\n15,0,62,0,18,0,52,0,34,0,4,0\n7,0,33,0,25,0,16,0,43,0,47,0\n"
  },
  {
    "path": "schedules/79_2.csv",
    "content": "48,0,70,0,64,0,15,0,24,0,16,0\n6,0,43,0,65,0,68,0,9,0,58,0\n67,0,3,0,62,0,8,0,12,0,21,0\n54,0,39,0,51,0,18,0,36,0,19,0\n27,0,44,0,45,0,61,0,30,0,53,0\n49,0,28,0,32,0,20,0,26,0,35,0\n2,0,55,0,22,0,34,0,50,0,4,0\n25,0,23,0,74,0,71,0,77,0,5,0\n33,0,38,0,42,0,10,0,7,0,41,0\n56,0,1,0,78,0,57,0,76,0,47,0\n52,0,79,0,66,0,69,0,17,0,60,0\n46,0,37,0,29,0,31,0,63,0,59,0\n40,0,72,0,11,0,14,0,73,0,13,0\n75,0,20,0,61,0,58,0,15,0,51,0\n65,0,49,0,21,0,74,0,2,0,53,0\n35,0,50,0,43,0,38,0,27,0,24,0\n19,0,22,0,10,0,6,0,32,0,67,0\n66,0,56,0,64,0,3,0,42,0,44,0\n16,0,9,0,69,0,54,0,12,0,47,0\n14,0,68,0,33,0,46,0,76,0,23,0\n29,0,45,0,28,0,75,0,11,0,25,0\n8,0,13,0,39,0,55,0,30,0,37,0\n34,0,31,0,5,0,40,0,1,0,70,0\n4,0,18,0,17,0,63,0,62,0,71,0\n72,0,59,0,41,0,78,0,60,0,77,0\n57,0,26,0,7,0,73,0,79,0,48,0\n36,0,21,1,15,1,52,0,43,1,67,1\n"
  },
  {
    "path": "schedules/79_3.csv",
    "content": "31,0,72,0,33,0,26,0,30,0,50,0\n17,0,13,0,32,0,63,0,27,0,14,0\n8,0,78,0,74,0,40,0,53,0,1,0\n59,0,68,0,20,0,58,0,41,0,10,0\n39,0,29,0,12,0,65,0,3,0,54,0\n64,0,44,0,66,0,19,0,49,0,24,0\n57,0,70,0,55,0,42,0,18,0,15,0\n51,0,2,0,23,0,52,0,75,0,47,0\n21,0,73,0,56,0,9,0,77,0,5,0\n37,0,25,0,7,0,71,0,16,0,34,0\n46,0,28,0,76,0,11,0,38,0,62,0\n36,0,45,0,48,0,43,0,22,0,6,0\n35,0,67,0,60,0,4,0,79,0,69,0\n61,0,31,0,59,0,32,0,39,0,78,0\n42,1,41,0,19,0,75,1,13,0,12,0\n44,1,53,0,26,0,29,0,70,0,2,0\n54,0,16,0,63,0,1,0,50,0,20,0\n58,0,56,0,18,0,8,0,17,0,25,0\n10,0,9,0,24,0,76,0,52,0,3,0\n22,0,35,0,47,0,30,0,7,0,57,0\n71,0,27,0,11,0,77,0,36,0,68,0\n64,0,14,0,55,0,37,0,60,0,48,0\n43,0,40,0,49,0,62,0,73,0,67,0\n72,0,4,0,66,0,23,0,46,0,34,0\n38,0,5,0,69,0,33,0,65,0,15,0\n79,0,61,0,74,0,45,0,51,0,28,0\n6,0,58,0,75,0,21,0,32,0,7,0\n12,0,50,0,22,0,70,0,8,0,52,0\n10,0,36,0,1,0,64,0,39,0,35,0\n29,0,60,0,63,0,42,0,56,0,49,0\n34,0,78,0,54,0,43,0,57,0,24,0\n15,0,11,0,20,0,9,0,44,0,31,0\n26,0,3,0,71,0,47,0,66,0,14,0\n62,0,5,0,25,0,74,0,6,0,19,0\n48,0,65,0,21,0,46,0,79,0,68,0\n37,0,73,0,76,0,18,0,69,0,27,0\n30,0,51,0,13,0,38,0,59,0,4,0\n2,0,17,0,41,0,16,0,61,0,33,0\n45,0,23,0,77,0,53,0,67,0,55,0\n28,0,40,0,75,0,72,0,42,0,44,0\n"
  },
  {
    "path": "schedules/79_4.csv",
    "content": "14,0,75,0,5,0,43,0,39,0,31,0\n28,0,47,0,9,0,37,0,24,0,1,0\n35,0,30,0,71,0,11,0,58,0,55,0\n66,0,52,0,62,0,50,0,25,0,51,0\n63,0,15,0,38,0,78,0,77,0,49,0\n18,0,53,0,4,0,72,0,45,0,12,0\n59,0,2,0,64,0,26,0,67,0,76,0\n73,0,42,0,7,0,46,0,6,0,70,0\n61,0,65,0,19,0,69,0,17,0,41,0\n3,0,68,0,57,0,8,0,60,0,10,0\n33,0,29,0,21,0,32,0,36,0,16,0\n40,0,22,0,34,0,44,0,13,0,48,0\n27,0,20,0,79,0,23,0,54,0,56,0\n11,0,47,0,31,0,74,0,51,0,49,0\n58,0,26,0,50,0,4,0,1,0,38,0\n18,0,15,0,62,0,71,0,19,0,5,0\n76,0,9,0,17,0,25,0,70,0,35,0\n75,0,8,0,64,0,77,0,52,0,69,0\n6,0,44,0,36,0,12,0,30,0,65,0\n45,0,32,0,57,0,73,0,67,0,23,0\n72,0,74,0,55,0,20,0,10,0,37,0\n22,0,59,0,54,0,33,0,61,0,68,0\n21,0,53,0,48,0,14,0,63,0,3,0\n29,0,56,0,78,0,60,0,46,0,13,0\n43,0,79,0,28,0,66,0,41,0,40,0\n42,0,24,0,2,0,27,0,16,0,34,0\n39,0,17,0,11,0,7,0,23,0,62,0\n9,1,8,0,45,0,51,1,19,0,55,0\n76,0,74,0,4,0,30,0,68,0,32,0\n20,0,15,0,6,0,59,0,14,0,58,0\n12,0,22,0,67,0,56,0,77,0,3,0\n1,0,18,0,70,0,78,0,54,0,66,0\n27,0,10,0,73,0,40,0,63,0,31,0\n44,0,7,0,69,0,28,0,60,0,49,0\n25,0,36,0,5,0,34,0,47,0,64,0\n52,0,42,0,71,0,38,0,43,0,33,0\n2,0,29,0,37,0,53,0,57,0,79,0\n13,0,61,0,72,0,50,0,21,0,75,0\n41,0,16,0,39,0,35,0,26,0,48,0\n46,0,24,0,3,0,65,0,15,0,32,0\n68,0,31,0,66,0,44,0,17,0,67,0\n12,0,23,0,78,0,5,0,59,0,9,0\n55,0,49,0,14,0,52,0,22,0,4,0\n51,0,58,0,7,0,18,0,64,0,57,0\n37,0,21,0,25,0,45,0,40,0,54,0\n63,0,50,0,19,0,42,0,36,0,39,0\n56,0,35,0,65,0,2,0,62,0,8,0\n26,0,60,0,77,0,24,0,61,0,20,0\n28,0,70,0,16,0,53,0,11,0,38,0\n27,0,1,0,48,0,76,0,72,0,33,0\n73,0,69,0,47,0,13,0,71,0,79,0\n75,0,6,0,34,0,29,0,74,0,41,0\n46,0,43,0,51,0,30,0,10,0,9,0\n"
  },
  {
    "path": "schedules/79_5.csv",
    "content": "43,0,53,0,70,0,63,0,18,0,16,0\n49,0,4,0,22,0,6,0,40,0,23,0\n7,0,42,0,19,0,64,0,35,0,71,0\n55,0,51,0,62,0,1,0,59,0,65,0\n47,0,60,0,5,0,39,0,52,0,29,0\n78,0,24,0,57,0,68,0,11,0,61,0\n79,0,72,0,44,0,41,0,14,0,69,0\n20,0,10,0,67,0,15,0,54,0,17,0\n31,0,50,0,33,0,27,0,37,0,2,0\n30,0,3,0,76,0,25,0,58,0,46,0\n32,0,66,0,38,0,73,0,56,0,9,0\n45,0,21,0,13,0,36,0,12,0,34,0\n48,0,8,0,77,0,75,0,28,0,74,0\n26,0,61,0,19,0,70,0,51,0,4,0\n68,0,67,0,39,0,40,0,42,0,62,0\n63,0,59,0,31,0,41,0,35,0,20,0\n52,0,54,0,33,0,53,0,57,0,30,0\n29,0,7,0,46,0,24,0,32,0,69,0\n36,0,76,0,71,0,43,0,72,0,55,0\n47,0,65,0,34,0,78,0,9,0,18,0\n17,0,14,0,74,0,73,0,6,0,16,0\n2,0,21,0,77,0,26,0,22,0,3,0\n12,0,8,0,58,0,10,0,64,0,50,0\n49,0,75,0,27,0,13,0,60,0,15,0\n37,0,66,0,5,0,23,0,79,0,25,0\n56,0,44,0,28,0,45,0,11,0,1,0\n48,0,40,0,72,0,38,0,59,0,61,0\n46,1,4,0,42,0,63,0,54,0,55,0\n69,0,17,0,78,0,51,0,39,0,53,0\n50,0,62,0,22,0,70,0,57,0,47,0\n8,0,32,0,30,0,36,0,26,0,49,0\n18,0,74,0,24,0,20,0,64,0,60,0\n35,0,6,0,13,0,67,0,3,0,1,0\n68,0,58,0,16,0,29,0,34,0,38,0\n28,0,66,0,65,0,21,0,33,0,7,0\n43,0,25,0,44,0,52,0,31,0,48,0\n14,0,19,0,9,0,76,0,37,0,45,0\n41,0,27,0,23,0,77,0,71,0,12,0\n10,0,73,0,5,0,11,0,2,0,75,0\n79,0,15,0,26,0,56,0,78,0,42,0\n13,0,69,0,30,0,4,0,16,0,62,0\n64,0,66,0,70,0,17,0,40,0,29,0\n60,0,54,0,35,0,61,0,28,0,58,0\n8,0,63,0,6,0,44,0,76,0,47,0\n20,0,14,0,55,0,38,0,21,0,27,0\n3,0,34,0,51,0,43,0,24,0,33,0\n59,0,49,0,10,0,53,0,19,0,74,0\n48,0,32,0,12,0,57,0,2,0,65,0\n67,0,25,0,45,0,41,0,22,0,73,0\n11,0,36,0,37,0,15,0,39,0,77,0\n46,0,23,0,68,0,52,0,50,0,72,0\n1,0,9,0,71,0,79,0,75,0,31,0\n18,0,56,0,3,0,5,0,7,0,14,0\n69,0,64,0,61,0,43,0,47,0,27,0\n2,0,40,0,53,0,60,0,55,0,44,0\n16,0,24,0,76,0,12,0,42,0,49,0\n33,0,62,0,45,0,6,0,32,0,10,0\n70,0,37,0,73,0,46,0,78,0,48,0\n11,0,52,0,59,0,67,0,34,0,79,0\n51,0,28,0,25,0,20,0,9,0,50,0\n72,0,39,0,4,0,58,0,66,0,31,0\n63,0,65,0,38,0,36,0,74,0,22,0\n26,0,29,0,54,0,18,0,71,0,13,0\n75,0,57,0,23,0,56,0,21,0,35,0\n7,0,17,0,1,0,77,0,68,0,30,0\n41,0,19,0,46,0,15,0,8,0,5,0\n"
  },
  {
    "path": "schedules/79_6.csv",
    "content": "51,0,3,0,71,0,47,0,46,0,28,0\n32,0,66,0,68,0,11,0,26,0,24,0\n69,0,17,0,58,0,7,0,35,0,4,0\n6,0,40,0,13,0,30,0,2,0,22,0\n62,0,48,0,75,0,25,0,64,0,5,0\n38,0,77,0,52,0,36,0,76,0,57,0\n12,0,33,0,70,0,44,0,60,0,49,0\n59,0,27,0,53,0,10,0,67,0,43,0\n9,0,73,0,74,0,14,0,31,0,29,0\n41,0,20,0,78,0,1,0,65,0,55,0\n61,0,15,0,23,0,18,0,63,0,56,0\n37,0,79,0,45,0,39,0,72,0,34,0\n16,0,54,0,50,0,42,0,8,0,19,0\n21,0,7,0,11,0,49,0,71,0,52,0\n10,0,4,0,28,0,64,0,57,0,44,0\n76,0,43,0,62,0,46,0,2,0,68,0\n1,0,13,0,17,0,32,0,51,0,60,0\n65,0,36,0,40,0,69,0,33,0,15,0\n22,0,79,0,63,0,35,0,26,0,14,0\n72,0,47,0,53,0,54,0,58,0,78,0\n34,0,41,0,30,0,77,0,59,0,73,0\n42,0,18,0,25,0,24,0,70,0,74,0\n29,0,38,0,19,0,21,0,37,0,75,0\n56,0,50,0,31,0,45,0,6,0,48,0\n66,0,20,0,61,0,39,0,3,0,9,0\n8,0,12,0,23,0,27,0,55,0,5,0\n67,0,64,0,65,0,16,0,63,0,60,0\n15,0,78,0,4,0,43,0,71,0,79,0\n11,0,46,0,77,0,22,0,44,0,1,0\n19,0,68,0,40,0,72,0,25,0,52,0\n18,0,31,0,33,0,62,0,51,0,34,0\n69,0,24,0,6,0,21,0,14,0,28,0\n13,0,49,0,66,0,29,0,10,0,23,0\n2,0,39,0,75,0,73,0,17,0,42,0\n3,0,7,0,30,0,55,0,70,0,48,0\n50,0,61,0,59,0,47,0,35,0,38,0\n56,0,53,0,26,0,16,0,9,0,12,0\n74,0,57,0,20,0,58,0,37,0,8,0\n36,0,32,0,5,0,67,0,45,0,41,0\n76,0,54,0,33,0,27,0,13,0,25,0\n65,0,44,0,17,0,43,0,19,0,66,0\n14,0,75,0,49,0,78,0,34,0,46,0\n22,0,52,0,4,0,60,0,29,0,18,0\n68,0,38,0,1,0,39,0,30,0,12,0\n15,0,26,0,3,0,59,0,8,0,6,0\n56,0,21,0,79,0,32,0,70,0,62,0\n58,0,28,0,48,0,77,0,42,0,27,0\n24,0,76,0,72,0,7,0,31,0,23,0\n37,0,35,0,10,0,41,0,16,0,51,0\n63,0,57,0,55,0,45,0,9,0,47,0\n73,0,50,0,71,0,20,0,64,0,36,0\n67,0,69,0,2,0,61,0,11,0,54,0\n5,0,53,0,34,0,40,0,74,0,4,0\n52,0,26,0,27,0,70,0,17,0,78,0\n44,0,79,0,6,0,68,0,7,0,75,0\n19,0,41,0,12,0,22,0,28,0,62,0\n43,0,51,0,29,0,42,0,56,0,57,0\n10,0,33,0,77,0,47,0,24,0,20,0\n64,0,8,0,45,0,13,0,18,0,35,0\n76,0,9,0,67,0,50,0,15,0,21,0\n46,0,39,0,55,0,31,0,25,0,69,0\n59,0,48,0,60,0,74,0,72,0,36,0\n61,0,49,0,37,0,30,0,65,0,5,0\n73,0,32,0,38,0,40,0,63,0,54,0\n58,0,1,0,2,0,66,0,71,0,16,0\n14,0,11,0,23,0,53,0,3,0,41,0\n28,0,75,0,35,0,52,0,67,0,20,0\n39,0,15,0,7,0,77,0,62,0,29,0\n48,0,46,0,13,0,9,0,4,0,19,0\n22,0,21,0,45,0,61,0,17,0,10,0\n63,0,27,0,51,0,72,0,69,0,30,0\n1,0,43,0,5,0,50,0,26,0,33,0\n32,0,74,0,16,0,23,0,78,0,6,0\n54,0,55,0,71,0,44,0,59,0,24,0\n18,0,57,0,68,0,49,0,53,0,73,0\n8,0,56,0,47,0,14,0,65,0,76,0\n42,0,60,0,31,0,66,0,37,0,40,0\n11,0,70,0,34,0,38,0,64,0,58,0\n36,0,12,0,25,0,79,0,2,0,3,0\n"
  },
  {
    "path": "schedules/79_7.csv",
    "content": "37,0,77,0,66,0,79,0,39,0,60,0\n73,0,16,0,41,0,24,0,33,0,50,0\n13,0,44,0,26,0,10,0,19,0,23,0\n55,0,35,0,3,0,7,0,48,0,32,0\n43,0,75,0,12,0,76,0,31,0,2,0\n65,0,49,0,67,0,18,0,74,0,34,0\n59,0,9,0,64,0,15,0,1,0,47,0\n42,0,46,0,69,0,71,0,58,0,53,0\n4,0,36,0,30,0,51,0,45,0,5,0\n27,0,38,0,57,0,63,0,61,0,62,0\n11,0,78,0,20,0,17,0,22,0,56,0\n40,0,14,0,72,0,68,0,70,0,25,0\n52,0,6,0,28,0,29,0,21,0,54,0\n8,0,67,0,79,0,43,0,32,0,59,0\n26,0,42,0,48,0,12,0,34,0,41,0\n65,0,75,0,10,0,9,0,16,0,69,0\n50,0,74,0,19,0,53,0,77,0,38,0\n47,0,39,0,62,0,78,0,3,0,36,0\n63,0,68,0,17,0,31,0,73,0,64,0\n23,0,24,0,49,0,30,0,6,0,72,0\n21,0,22,0,66,0,44,0,51,0,33,0\n37,0,35,0,70,0,15,0,5,0,27,0\n11,0,7,0,8,0,4,0,29,0,46,0\n56,0,45,0,71,0,76,0,40,0,57,0\n55,0,52,0,58,0,1,0,2,0,13,0\n25,0,60,0,61,0,20,0,28,0,18,0\n14,0,42,0,32,0,54,0,77,0,49,0\n30,1,21,0,41,0,3,1,65,0,19,0\n69,1,15,0,67,0,63,1,23,0,51,0\n33,1,9,0,72,0,34,0,17,0,79,0\n74,0,24,0,31,0,37,0,46,0,40,0\n57,0,2,0,5,0,7,0,50,0,78,0\n27,0,66,0,6,0,12,0,58,0,64,0\n60,0,56,0,75,0,14,0,62,0,59,0\n25,0,39,0,55,0,10,0,4,0,22,0\n68,0,53,0,44,0,52,0,8,0,20,0\n18,0,35,0,73,0,43,0,54,0,13,0\n16,0,26,0,45,0,28,0,11,0,47,0\n1,0,71,0,29,0,48,0,70,0,61,0\n38,0,9,0,32,0,76,0,36,0,21,0\n33,0,60,0,19,0,2,0,46,0,15,0\n79,0,12,0,23,0,62,0,7,0,74,0\n57,0,10,0,72,0,52,0,3,0,66,0\n31,0,77,0,65,0,4,0,58,0,20,0\n28,0,42,0,56,0,5,0,39,0,68,0\n27,0,17,0,18,0,29,0,14,0,45,0\n76,0,64,0,61,0,30,0,44,0,34,0\n48,0,11,0,43,0,36,0,50,0,49,0\n69,0,8,0,73,0,55,0,47,0,40,0\n13,0,6,0,37,0,59,0,16,0,71,0\n26,0,25,0,51,0,24,0,1,0,38,0\n70,0,78,0,54,0,75,0,53,0,63,0\n35,0,41,0,46,0,67,0,22,0,45,0\n14,0,33,0,39,0,61,0,65,0,7,0\n58,0,36,0,68,0,10,0,74,0,29,0\n57,0,15,0,34,0,69,0,28,0,31,0\n19,0,47,0,76,0,66,0,49,0,17,0\n60,0,23,0,52,0,73,0,38,0,71,0\n6,0,70,0,51,0,55,0,43,0,9,0\n77,0,56,0,2,0,25,0,64,0,3,0\n53,0,18,0,59,0,26,0,30,0,40,0\n41,0,54,0,62,0,37,0,11,0,72,0\n13,0,22,0,24,0,32,0,75,0,27,0\n44,0,78,0,79,0,35,0,4,0,42,0\n50,0,21,0,1,0,12,0,8,0,63,0\n20,0,16,0,48,0,5,0,67,0,66,0\n25,0,58,0,33,0,57,0,23,0,43,0\n70,0,65,0,17,0,60,0,36,0,26,0\n55,0,54,0,38,0,68,0,30,0,15,0\n32,0,10,0,62,0,64,0,28,0,71,0\n76,0,22,0,7,0,53,0,37,0,73,0\n52,0,4,0,49,0,69,0,12,0,59,0\n41,0,5,0,63,0,29,0,77,0,47,0\n34,0,8,0,51,0,19,0,78,0,14,0\n1,0,46,0,72,0,56,0,16,0,18,0\n50,0,31,0,3,0,42,0,13,0,67,0\n11,0,40,0,61,0,35,0,6,0,75,0\n2,0,45,0,20,0,79,0,24,0,21,0\n48,0,74,0,9,0,44,0,27,0,39,0\n69,0,68,0,7,0,41,0,60,0,43,0\n19,0,64,0,36,0,54,0,57,0,22,0\n30,0,77,0,62,0,16,0,70,0,52,0\n4,0,28,0,3,0,23,0,17,0,1,0\n56,0,33,0,49,0,8,0,35,0,31,0\n14,0,76,0,20,0,63,0,55,0,26,0\n53,0,47,0,27,0,21,0,67,0,10,0\n65,0,46,0,79,0,48,0,6,0,25,0\n29,0,38,0,40,0,13,0,39,0,34,0\n45,0,58,0,50,0,72,0,44,0,75,0\n71,0,5,0,12,0,9,0,18,0,24,0\n74,0,59,0,2,0,11,0,42,0,51,0\n66,0,73,0,15,0,61,0,78,0,32,0\n37,0,30,0,63,0,3,0,69,0,33,0\n"
  },
  {
    "path": "schedules/79_8.csv",
    "content": "62,0,44,0,1,0,57,0,61,0,67,0\n64,0,52,0,38,0,56,0,11,0,55,0\n24,0,9,0,48,0,17,0,66,0,34,0\n14,0,68,0,6,0,40,0,70,0,19,0\n69,0,65,0,37,0,5,0,32,0,25,0\n35,0,73,0,71,0,26,0,63,0,2,0\n8,0,7,0,20,0,29,0,16,0,59,0\n43,0,30,0,60,0,31,0,28,0,51,0\n53,0,45,0,79,0,36,0,21,0,72,0\n15,0,13,0,42,0,50,0,74,0,41,0\n47,0,23,0,3,0,54,0,75,0,27,0\n77,0,78,0,33,0,22,0,49,0,46,0\n4,0,58,0,18,0,12,0,39,0,10,0\n76,0,24,0,26,0,70,0,38,0,69,0\n7,0,2,0,66,0,67,0,19,0,32,0\n28,0,55,0,5,0,9,0,45,0,68,0\n65,0,20,0,52,0,48,0,21,0,13,0\n35,0,72,0,62,0,64,0,75,0,16,0\n40,0,56,0,74,0,71,0,79,0,54,0\n49,0,4,0,50,0,14,0,3,0,57,0\n39,0,73,0,47,0,6,0,22,0,51,0\n42,0,77,0,1,0,76,0,53,0,30,0\n60,0,37,0,12,0,8,0,36,0,15,0\n11,0,61,0,31,0,33,0,10,0,23,0\n29,0,41,0,17,0,44,0,63,0,18,0\n25,0,58,0,34,0,59,0,27,0,78,0\n46,0,50,0,64,0,43,0,40,0,69,0\n57,1,35,0,51,0,19,1,9,0,20,0\n30,1,4,0,32,0,79,1,52,0,62,0\n45,0,66,0,26,0,3,0,1,0,8,0\n16,0,33,0,12,0,47,0,71,0,53,0\n22,0,28,0,48,0,14,0,63,0,42,0\n21,0,41,0,55,0,25,0,31,0,49,0\n75,0,76,0,29,0,60,0,78,0,67,0\n77,0,70,0,72,0,74,0,61,0,65,0\n43,0,59,0,38,0,17,0,15,0,10,0\n54,0,13,0,5,0,11,0,7,0,58,0\n6,0,24,0,27,0,46,0,36,0,56,0\n34,0,18,0,68,0,73,0,44,0,23,0\n2,0,16,0,28,0,39,0,37,0,41,0\n32,0,51,0,63,0,1,0,33,0,50,0\n61,0,60,0,52,0,66,0,53,0,40,0\n19,0,8,0,48,0,72,0,49,0,38,0\n11,0,69,0,12,0,3,0,59,0,74,0\n13,0,9,0,29,0,62,0,77,0,6,0\n30,0,47,0,7,0,17,0,46,0,14,0\n21,0,57,0,58,0,68,0,2,0,24,0\n15,0,78,0,64,0,39,0,65,0,79,0\n10,0,54,0,67,0,45,0,35,0,34,0\n73,0,4,0,37,0,76,0,43,0,56,0\n71,0,27,0,20,0,42,0,55,0,18,0\n44,0,70,0,5,0,31,0,22,0,75,0\n36,0,23,0,9,0,25,0,26,0,52,0\n57,0,72,0,40,0,29,0,47,0,11,0\n41,0,32,0,64,0,58,0,14,0,77,0\n62,0,45,0,19,0,24,0,12,0,63,0\n3,0,39,0,43,0,61,0,13,0,68,0\n67,0,18,0,33,0,74,0,30,0,38,0\n31,0,59,0,46,0,79,0,42,0,37,0\n70,0,48,0,1,0,78,0,7,0,4,0\n6,0,28,0,25,0,15,0,76,0,71,0\n17,0,50,0,21,0,27,0,35,0,22,0\n73,0,66,0,69,0,49,0,54,0,36,0\n23,0,56,0,5,0,2,0,60,0,20,0\n53,0,34,0,51,0,65,0,8,0,75,0\n10,0,55,0,16,0,26,0,44,0,30,0\n33,0,45,0,59,0,41,0,40,0,48,0\n1,0,9,0,14,0,38,0,71,0,39,0\n31,0,18,0,15,0,3,0,52,0,24,0\n17,0,64,0,73,0,12,0,13,0,70,0\n67,0,72,0,23,0,28,0,50,0,58,0\n25,0,51,0,29,0,54,0,68,0,46,0\n76,0,79,0,10,0,22,0,8,0,2,0\n63,0,61,0,36,0,55,0,34,0,4,0\n49,0,27,0,62,0,53,0,5,0,26,0\n74,0,44,0,66,0,20,0,47,0,37,0\n77,0,75,0,19,0,56,0,69,0,21,0\n78,0,42,0,43,0,11,0,16,0,32,0\n65,0,57,0,6,0,35,0,7,0,60,0\n68,0,67,0,71,0,48,0,31,0,64,0\n76,0,59,0,61,0,9,0,18,0,50,0\n54,0,22,0,30,0,24,0,72,0,41,0\n40,0,20,0,15,0,62,0,73,0,58,0\n12,0,79,0,29,0,23,0,28,0,49,0\n10,0,3,0,53,0,19,0,37,0,78,0\n74,0,6,0,75,0,55,0,1,0,43,0\n46,0,11,0,4,0,2,0,45,0,65,0\n7,0,26,0,39,0,21,0,34,0,42,0\n77,0,52,0,16,0,51,0,5,0,17,0\n66,0,63,0,56,0,70,0,57,0,25,0\n47,0,36,0,32,0,38,0,13,0,35,0\n14,0,8,0,27,0,69,0,44,0,33,0\n60,0,19,0,54,0,1,0,59,0,64,0\n49,0,2,0,30,0,61,0,15,0,75,0\n41,0,26,0,20,0,67,0,6,0,79,0\n74,0,53,0,29,0,31,0,4,0,17,0\n24,0,37,0,51,0,7,0,55,0,23,0\n32,0,34,0,46,0,76,0,12,0,57,0\n68,0,8,0,56,0,47,0,78,0,50,0\n71,0,58,0,22,0,45,0,52,0,69,0\n39,0,11,0,35,0,44,0,77,0,48,0\n21,0,5,0,14,0,18,0,43,0,66,0\n63,0,38,0,40,0,27,0,16,0,65,0\n33,0,3,0,36,0,28,0,62,0,70,0\n72,0,42,0,10,0,73,0,9,0,60,0\n13,0,57,0,30,0,25,0,19,0,79,0\n"
  },
  {
    "path": "schedules/79_9.csv",
    "content": "51,0,12,0,30,0,48,0,6,0,71,0\n34,0,10,0,32,0,27,0,37,0,72,0\n7,0,62,0,22,0,43,0,57,0,31,0\n38,0,58,0,14,0,50,0,19,0,18,0\n41,0,35,0,45,0,68,0,69,0,40,0\n9,0,1,0,25,0,74,0,55,0,77,0\n36,0,61,0,24,0,46,0,70,0,23,0\n21,0,44,0,20,0,78,0,2,0,49,0\n66,0,53,0,5,0,15,0,75,0,56,0\n3,0,52,0,67,0,26,0,8,0,13,0\n28,0,54,0,76,0,60,0,47,0,4,0\n33,0,29,0,11,0,63,0,16,0,73,0\n39,0,64,0,59,0,42,0,17,0,79,0\n65,0,24,0,10,0,9,0,43,0,48,0\n72,0,38,0,70,0,21,0,6,0,45,0\n55,0,5,0,57,0,71,0,40,0,2,0\n20,0,46,0,69,0,67,0,26,0,75,0\n53,0,1,0,44,0,60,0,31,0,62,0\n54,0,33,0,56,0,77,0,51,0,35,0\n50,0,32,0,66,0,42,0,16,0,36,0\n7,0,64,0,19,0,3,0,30,0,41,0\n49,0,29,0,79,0,22,0,13,0,14,0\n11,0,76,0,61,0,18,0,68,0,59,0\n4,0,23,0,37,0,12,0,65,0,25,0\n27,0,63,0,58,0,47,0,15,0,17,0\n52,0,8,0,34,0,73,0,78,0,28,0\n74,0,36,0,6,0,39,0,67,0,35,0\n60,1,46,0,44,0,33,1,5,0,42,0\n45,1,56,0,70,0,10,0,3,0,20,0\n51,0,7,0,13,0,1,0,2,0,38,0\n29,0,50,0,31,0,24,0,54,0,37,0\n41,0,77,0,57,0,12,0,16,0,53,0\n58,0,52,0,79,0,66,0,63,0,61,0\n11,0,32,0,17,0,30,0,65,0,21,0\n69,0,39,0,27,0,55,0,73,0,43,0\n22,0,64,0,40,0,78,0,18,0,23,0\n62,0,74,0,15,0,8,0,76,0,48,0\n25,0,19,0,26,0,47,0,59,0,71,0\n75,0,28,0,68,0,72,0,14,0,9,0\n49,0,66,0,67,0,4,0,34,0,38,0\n20,0,11,0,1,0,58,0,36,0,12,0\n57,0,39,0,52,0,29,0,44,0,32,0\n10,0,79,0,45,0,73,0,50,0,51,0\n22,0,5,0,65,0,61,0,35,0,8,0\n31,0,70,0,64,0,77,0,47,0,48,0\n15,0,16,0,2,0,26,0,30,0,43,0\n49,0,59,0,4,0,9,0,56,0,6,0\n24,0,27,0,25,0,76,0,75,0,21,0\n33,0,18,0,53,0,17,0,13,0,74,0\n71,0,78,0,3,0,62,0,72,0,69,0\n54,0,42,0,68,0,34,0,7,0,23,0\n63,0,41,0,60,0,14,0,46,0,37,0\n19,0,28,0,38,0,40,0,55,0,44,0\n35,0,79,0,16,0,67,0,1,0,10,0\n75,0,51,0,31,0,39,0,8,0,58,0\n17,0,2,0,76,0,61,0,29,0,56,0\n13,0,64,0,5,0,69,0,6,0,11,0\n50,0,21,0,22,0,3,0,77,0,68,0\n71,0,37,0,52,0,42,0,7,0,15,0\n78,0,19,0,65,0,46,0,45,0,57,0\n70,0,18,0,43,0,60,0,25,0,66,0\n55,0,72,0,23,0,59,0,63,0,30,0\n41,0,32,0,12,0,49,0,28,0,24,0\n34,0,9,0,47,0,62,0,40,0,33,0\n73,0,48,0,26,0,36,0,4,0,53,0\n20,0,14,0,74,0,54,0,27,0,71,0\n46,0,16,0,22,0,76,0,39,0,6,0\n37,0,67,0,7,0,58,0,70,0,5,0\n30,0,66,0,8,0,68,0,29,0,1,0\n77,0,17,0,24,0,69,0,60,0,38,0\n59,0,43,0,3,0,12,0,34,0,75,0\n63,0,62,0,13,0,45,0,28,0,36,0\n61,0,4,0,50,0,57,0,74,0,64,0\n2,0,48,0,54,0,79,0,32,0,78,0\n18,0,73,0,65,0,47,0,44,0,72,0\n15,0,23,0,35,0,9,0,41,0,20,0\n40,0,56,0,31,0,11,0,25,0,14,0\n42,0,21,0,26,0,10,0,33,0,55,0\n51,0,27,0,49,0,52,0,53,0,19,0\n13,0,30,0,34,0,39,0,50,0,60,0\n45,0,2,0,77,0,37,0,75,0,59,0\n12,0,67,0,44,0,66,0,17,0,22,0\n41,0,5,0,73,0,18,0,54,0,62,0\n72,0,8,0,79,0,7,0,20,0,24,0\n78,0,33,0,4,0,31,0,68,0,15,0\n26,0,6,0,1,0,57,0,27,0,61,0\n16,0,48,0,56,0,58,0,23,0,19,0\n63,0,76,0,71,0,38,0,64,0,9,0\n14,0,47,0,36,0,21,0,69,0,52,0\n46,0,29,0,53,0,25,0,28,0,10,0\n42,0,35,0,55,0,11,0,49,0,70,0\n51,0,43,0,40,0,3,0,74,0,32,0\n65,0,6,0,2,0,66,0,41,0,33,0\n20,0,75,0,4,0,19,0,62,0,17,0\n1,0,71,0,45,0,22,0,34,0,24,0\n21,0,9,0,60,0,56,0,79,0,57,0\n14,0,76,0,73,0,67,0,77,0,23,0\n25,0,15,0,54,0,64,0,44,0,36,0\n12,0,47,0,39,0,78,0,10,0,61,0\n59,0,70,0,69,0,65,0,51,0,28,0\n7,0,40,0,26,0,50,0,63,0,49,0\n43,0,38,0,37,0,11,0,53,0,8,0\n3,0,35,0,29,0,48,0,27,0,18,0\n52,0,16,0,72,0,31,0,74,0,5,0\n32,0,55,0,68,0,13,0,58,0,46,0\n30,0,47,0,56,0,42,0,24,0,67,0\n12,0,19,0,69,0,76,0,33,0,79,0\n21,0,59,0,40,0,1,0,15,0,73,0\n70,0,8,0,17,0,50,0,41,0,71,0\n75,0,10,0,60,0,22,0,36,0,38,0\n57,0,23,0,28,0,3,0,11,0,66,0\n29,0,5,0,77,0,45,0,43,0,4,0\n62,0,37,0,68,0,51,0,16,0,64,0\n58,0,34,0,74,0,65,0,44,0,26,0\n9,0,30,0,54,0,27,0,46,0,52,0\n25,0,72,0,42,0,13,0,2,0,35,0\n18,0,63,0,20,0,32,0,39,0,31,0\n6,0,78,0,14,0,53,0,55,0,7,0\n61,0,48,0,60,0,49,0,33,0,45,0\n"
  },
  {
    "path": "schedules/7_1.csv",
    "content": "5,0,4,0,3,0,6,0,7,0,1,0\n2,0,6,1,7,1,1,1,3,1,4,1\n"
  },
  {
    "path": "schedules/7_10.csv",
    "content": "6,0,1,0,5,0,7,0,4,0,3,0\n2,0,3,0,1,0,7,0,6,0,5,0\n5,0,7,0,2,0,4,0,6,0,1,0\n7,0,4,1,1,0,3,1,2,0,6,0\n6,0,4,0,2,0,7,0,5,0,3,0\n2,0,4,0,5,0,3,0,1,0,6,0\n3,0,1,0,5,0,4,0,2,0,7,0\n1,0,7,0,4,0,3,0,5,0,2,0\n4,0,3,0,6,0,2,0,1,0,7,0\n6,0,2,0,7,0,5,0,3,0,4,0\n5,0,6,0,4,0,1,0,3,0,2,0\n6,0,7,0,3,0,1,0,5,0,4,0\n"
  },
  {
    "path": "schedules/7_11.csv",
    "content": "4,0,5,0,2,0,7,0,1,0,6,0\n1,0,4,0,3,0,5,0,2,0,7,0\n7,0,1,0,3,0,2,0,6,0,5,0\n2,0,6,0,4,1,3,0,5,0,7,0\n6,0,1,0,5,0,4,0,3,0,7,0\n1,0,2,0,4,0,6,0,3,0,5,0\n4,0,7,0,6,0,3,0,2,0,1,0\n3,0,5,0,4,0,7,0,2,0,1,0\n1,0,7,0,2,0,6,0,4,0,3,0\n2,0,3,0,5,0,6,0,4,0,1,0\n6,0,5,0,1,0,7,0,4,0,2,0\n7,0,5,0,4,0,3,0,6,0,2,0\n3,0,7,0,6,0,5,0,1,0,4,0\n"
  },
  {
    "path": "schedules/7_12.csv",
    "content": "3,0,6,0,2,0,7,0,4,0,1,0\n4,0,2,0,7,0,1,0,3,0,5,0\n3,0,4,0,6,0,5,0,2,0,7,0\n4,0,1,0,3,0,6,0,2,0,5,0\n5,0,1,0,4,0,6,0,7,0,3,0\n1,0,6,0,7,0,3,0,5,0,2,0\n6,0,7,0,5,0,4,0,2,0,1,0\n1,0,5,0,6,0,7,0,3,0,4,0\n7,0,2,0,1,0,4,0,6,0,3,0\n2,0,3,0,7,0,5,0,6,0,4,0\n2,0,4,0,6,0,1,0,5,0,3,0\n2,0,5,0,4,0,7,0,1,0,6,0\n2,0,3,0,1,0,5,0,7,0,4,0\n3,0,7,0,5,0,6,0,1,0,2,0\n"
  },
  {
    "path": "schedules/7_13.csv",
    "content": "7,0,3,0,4,0,2,0,1,0,6,0\n5,0,1,0,7,0,6,0,3,0,4,0\n3,0,2,0,4,0,5,0,6,0,1,0\n7,1,2,1,6,1,5,1,1,1,3,0\n5,0,7,0,3,0,2,0,4,0,1,0\n6,0,4,0,1,0,7,0,5,0,2,0\n5,0,3,0,6,0,7,0,2,0,4,0\n2,0,6,0,5,0,1,0,7,0,3,0\n3,0,1,0,2,0,4,0,7,0,5,0\n4,0,5,0,2,0,6,0,7,0,3,0\n4,0,1,0,7,0,2,0,5,0,6,0\n6,0,3,0,2,0,1,0,4,0,5,0\n1,0,7,0,6,0,3,0,4,0,5,0\n4,0,6,0,7,0,1,0,3,0,2,0\n1,0,2,0,7,0,4,0,6,0,5,0\n3,0,5,0,1,0,7,0,2,0,6,0\n"
  },
  {
    "path": "schedules/7_14.csv",
    "content": "5,0,3,0,7,0,6,0,4,0,1,0\n5,0,4,0,7,0,2,0,3,0,6,0\n2,0,6,0,5,0,4,0,7,0,1,0\n4,0,2,1,3,1,1,1,7,0,6,1\n2,0,1,0,4,0,3,0,6,0,5,0\n3,0,7,0,1,0,2,0,5,0,4,0\n6,0,1,0,5,0,3,0,2,0,7,0\n1,0,2,0,3,0,4,0,7,0,5,0\n6,0,2,0,4,0,3,0,1,0,5,0\n6,0,4,0,3,0,2,0,5,0,7,0\n7,0,4,0,3,0,1,0,6,0,2,0\n5,0,1,0,2,0,7,0,3,0,6,0\n4,0,6,0,7,0,1,0,5,0,3,0\n7,0,2,0,1,0,5,0,4,0,6,0\n6,0,5,0,1,0,3,0,2,0,4,0\n7,0,6,0,2,0,1,0,3,0,4,0\n5,0,3,0,2,0,7,0,1,0,6,0\n"
  },
  {
    "path": "schedules/7_2.csv",
    "content": "7,0,5,0,3,0,4,0,6,0,1,0\n2,0,4,0,7,0,3,0,1,0,5,0\n6,0,7,1,5,1,1,1,2,0,3,1\n"
  },
  {
    "path": "schedules/7_3.csv",
    "content": "4,0,2,0,7,0,6,0,5,0,3,0\n1,0,6,0,4,0,7,0,5,0,3,0\n2,0,3,0,5,0,1,0,7,0,6,0\n6,1,1,0,2,0,5,1,4,0,3,1\n"
  },
  {
    "path": "schedules/7_4.csv",
    "content": "3,0,1,0,7,0,6,0,5,0,2,0\n7,0,6,0,4,0,5,0,3,0,1,0\n3,0,2,0,6,0,4,0,7,0,5,0\n5,0,4,0,3,0,7,0,2,0,1,0\n2,0,4,0,5,1,1,0,6,0,7,1\n"
  },
  {
    "path": "schedules/7_5.csv",
    "content": "6,0,2,0,3,0,1,0,4,0,7,0\n3,0,1,0,5,0,4,0,6,0,2,0\n5,0,1,0,6,0,7,0,4,0,3,0\n1,0,2,0,4,0,5,0,7,0,6,0\n3,0,5,0,4,0,2,0,7,0,1,0\n7,0,5,0,2,0,6,0,3,0,1,1\n"
  },
  {
    "path": "schedules/7_6.csv",
    "content": "3,0,2,0,5,0,4,0,1,0,7,0\n2,0,7,0,6,0,3,0,1,0,5,0\n1,0,3,0,6,0,5,0,2,0,4,0\n6,0,5,0,4,0,7,0,3,0,2,0\n7,0,4,0,3,0,1,0,6,0,2,0\n5,0,7,0,1,0,4,0,6,0,3,0\n2,0,4,0,1,0,6,0,5,0,7,0\n"
  },
  {
    "path": "schedules/7_7.csv",
    "content": "4,0,7,0,1,0,5,0,2,0,3,0\n1,0,6,0,3,0,7,0,4,0,2,0\n6,0,2,0,4,0,5,0,7,0,1,0\n6,1,3,1,4,1,5,1,7,1,2,0\n3,0,1,0,2,0,5,0,6,0,7,0\n7,0,3,0,6,0,1,0,4,0,5,0\n4,0,3,0,5,0,2,0,1,0,6,0\n1,0,5,0,6,0,3,0,4,0,7,0\n2,0,5,0,7,0,6,0,3,0,4,0\n"
  },
  {
    "path": "schedules/7_8.csv",
    "content": "3,0,5,0,7,0,1,0,6,0,2,0\n1,0,4,0,7,0,3,0,5,0,6,0\n2,0,1,0,5,0,4,0,7,0,6,0\n3,1,4,1,5,0,7,0,1,1,2,1\n2,0,6,0,7,0,4,0,3,0,1,0\n4,0,2,0,3,0,6,0,5,0,1,0\n2,0,6,0,3,0,5,0,7,0,4,0\n6,0,1,0,4,0,7,0,3,0,2,0\n1,0,7,0,3,0,5,0,4,0,2,0\n6,0,3,0,4,0,5,0,2,0,1,0\n"
  },
  {
    "path": "schedules/7_9.csv",
    "content": "5,0,6,0,7,0,2,0,4,0,1,0\n1,0,7,0,6,0,3,0,5,0,4,0\n3,0,7,0,4,0,2,0,6,0,5,0\n5,0,1,1,3,1,2,1,6,0,4,0\n3,0,1,0,6,0,7,0,5,0,2,0\n2,0,7,0,3,0,4,0,1,0,6,0\n1,0,3,0,2,0,7,0,5,0,4,0\n1,0,2,0,5,0,6,0,3,0,7,0\n4,0,3,0,5,0,7,0,2,0,1,0\n4,0,1,0,7,0,6,0,2,0,3,0\n6,0,4,0,2,0,5,0,3,0,1,0\n"
  },
  {
    "path": "schedules/80_1.csv",
    "content": "72,0,60,0,19,0,73,0,13,0,64,0\n38,0,69,0,45,0,61,0,4,0,25,0\n22,0,23,0,18,0,8,0,34,0,21,0\n42,0,52,0,1,0,44,0,39,0,17,0\n5,0,49,0,14,0,74,0,16,0,62,0\n56,0,59,0,3,0,71,0,70,0,15,0\n77,0,26,0,9,0,20,0,33,0,29,0\n76,0,50,0,57,0,32,0,53,0,24,0\n65,0,51,0,79,0,35,0,6,0,31,0\n2,0,43,0,40,0,12,0,80,0,47,0\n36,0,48,0,58,0,68,0,30,0,41,0\n54,0,27,0,10,0,55,0,11,0,28,0\n7,0,67,0,75,0,66,0,46,0,63,0\n37,0,74,1,73,1,78,0,56,1,4,1\n"
  },
  {
    "path": "schedules/80_10.csv",
    "content": "62,0,56,0,51,0,47,0,3,0,9,0\n2,0,59,0,34,0,27,0,63,0,44,0\n68,0,52,0,61,0,64,0,26,0,31,0\n8,0,12,0,5,0,29,0,33,0,32,0\n7,0,4,0,60,0,40,0,50,0,1,0\n55,0,17,0,35,0,73,0,19,0,80,0\n10,0,57,0,46,0,11,0,65,0,22,0\n43,0,79,0,78,0,24,0,38,0,71,0\n6,0,70,0,76,0,25,0,41,0,45,0\n16,0,74,0,53,0,49,0,48,0,54,0\n14,0,72,0,20,0,23,0,69,0,13,0\n39,0,67,0,18,0,15,0,36,0,58,0\n21,0,37,0,42,0,30,0,66,0,28,0\n75,0,60,0,55,0,77,0,64,0,29,0\n32,0,1,0,52,0,51,0,19,0,59,0\n17,0,6,0,10,0,47,0,61,0,24,0\n79,0,34,0,76,0,26,0,35,0,7,0\n40,0,22,0,48,0,2,0,20,0,50,0\n56,0,78,0,45,0,54,0,57,0,8,0\n43,0,23,0,65,0,58,0,18,0,30,0\n41,0,71,0,75,0,74,0,15,0,21,0\n77,0,69,0,39,0,38,0,66,0,62,0\n37,0,27,0,49,0,70,0,80,0,36,0\n3,0,46,0,16,0,63,0,13,0,28,0\n73,0,42,0,72,0,12,0,44,0,67,0\n9,0,11,0,4,0,25,0,5,0,31,0\n33,0,53,0,43,0,14,0,68,0,1,0\n32,1,15,0,60,0,35,1,48,0,76,0\n21,1,30,0,19,0,50,1,69,0,24,0\n57,0,80,0,26,0,6,0,36,0,62,0\n61,0,70,0,79,0,20,0,18,0,16,0\n8,0,34,0,72,0,51,0,64,0,66,0\n11,0,56,0,28,0,7,0,49,0,59,0\n29,0,25,0,47,0,14,0,58,0,40,0\n52,0,13,0,78,0,44,0,53,0,9,0\n17,0,33,0,74,0,77,0,63,0,4,0\n45,0,65,0,31,0,42,0,39,0,2,0\n12,0,55,0,71,0,37,0,22,0,41,0\n23,0,3,0,67,0,10,0,38,0,68,0\n75,0,5,0,54,0,73,0,46,0,27,0\n49,0,61,0,57,0,58,0,79,0,21,0\n26,0,56,0,24,0,13,0,50,0,14,0\n8,0,6,0,16,0,19,0,4,0,18,0\n45,0,15,0,20,0,11,0,33,0,51,0\n28,0,1,0,2,0,77,0,41,0,36,0\n10,0,31,0,66,0,63,0,12,0,35,0\n65,0,64,0,53,0,67,0,17,0,40,0\n43,0,48,0,55,0,5,0,34,0,69,0\n23,0,52,0,44,0,46,0,39,0,71,0\n73,0,76,0,3,0,47,0,30,0,37,0\n27,0,29,0,60,0,74,0,72,0,78,0\n70,0,68,0,22,0,54,0,59,0,62,0\n80,0,25,0,75,0,32,0,38,0,7,0\n42,0,66,0,50,0,9,0,57,0,41,0\n35,0,58,0,13,0,45,0,51,0,4,0\n19,0,46,0,77,0,43,0,67,0,49,0\n14,0,36,0,52,0,55,0,76,0,21,0\n31,0,40,0,24,0,37,0,8,0,74,0\n39,0,53,0,29,0,30,0,22,0,61,0\n7,0,72,0,18,0,54,0,47,0,71,0\n80,0,15,0,28,0,78,0,5,0,1,0\n64,0,32,0,11,0,23,0,16,0,62,0\n34,0,20,0,17,0,25,0,56,0,42,0\n44,0,10,0,2,0,60,0,69,0,70,0\n79,0,33,0,59,0,75,0,3,0,6,0\n63,0,73,0,65,0,68,0,9,0,48,0\n38,0,27,0,47,0,26,0,12,0,4,0\n53,0,77,0,58,0,76,0,72,0,50,0\n67,0,21,0,51,0,22,0,5,0,16,0\n13,0,36,0,42,0,11,0,29,0,35,0\n32,0,34,0,40,0,71,0,28,0,70,0\n44,0,62,0,57,0,43,0,31,0,20,0\n63,0,7,0,30,0,78,0,41,0,14,0\n6,0,66,0,1,0,74,0,56,0,65,0\n23,0,19,0,68,0,2,0,79,0,25,0\n3,0,10,0,8,0,15,0,27,0,55,0\n64,0,18,0,73,0,45,0,59,0,69,0\n37,0,12,0,38,0,46,0,61,0,48,0\n9,0,26,0,49,0,75,0,39,0,17,0\n54,0,33,0,80,0,60,0,52,0,24,0\n78,0,6,0,31,0,72,0,32,0,67,0\n71,0,25,0,62,0,65,0,16,0,50,0\n7,0,70,0,53,0,5,0,42,0,19,0\n64,0,35,0,15,0,57,0,27,0,30,0\n37,0,77,0,59,0,8,0,79,0,14,0\n48,0,21,0,29,0,1,0,26,0,23,0\n38,0,46,0,20,0,9,0,45,0,55,0\n54,0,69,0,11,0,51,0,12,0,17,0\n41,0,24,0,39,0,34,0,4,0,3,0\n49,0,33,0,2,0,18,0,13,0,66,0\n68,0,40,0,76,0,56,0,44,0,75,0\n47,0,63,0,22,0,60,0,43,0,36,0\n28,0,52,0,74,0,58,0,73,0,10,0\n80,0,9,0,67,0,61,0,14,0,71,0\n65,0,26,0,78,0,51,0,70,0,77,0\n54,0,29,0,16,0,38,0,41,0,34,0\n15,0,62,0,24,0,12,0,2,0,53,0\n1,0,69,0,35,0,37,0,39,0,25,0\n22,0,56,0,76,0,33,0,31,0,18,0\n27,0,50,0,28,0,6,0,11,0,68,0\n40,0,64,0,49,0,63,0,10,0,42,0\n7,0,17,0,45,0,43,0,52,0,3,0\n36,0,8,0,61,0,73,0,23,0,60,0\n80,0,72,0,4,0,21,0,46,0,59,0\n13,0,47,0,19,0,75,0,48,0,57,0\n44,0,55,0,30,0,79,0,74,0,32,0\n5,0,58,0,26,0,66,0,20,0,71,0\n31,0,15,0,50,0,70,0,49,0,29,0\n56,0,35,0,41,0,52,0,53,0,67,0\n22,0,1,0,38,0,76,0,42,0,8,0\n7,0,21,0,69,0,33,0,65,0,27,0\n13,0,54,0,39,0,40,0,77,0,6,0\n61,0,73,0,4,0,2,0,32,0,43,0\n66,0,47,0,14,0,45,0,44,0,16,0\n18,0,57,0,51,0,55,0,24,0,68,0\n79,0,62,0,17,0,28,0,46,0,60,0\n37,0,19,0,3,0,78,0,64,0,20,0\n9,0,12,0,59,0,23,0,74,0,34,0\n5,0,72,0,30,0,25,0,36,0,10,0\n75,0,58,0,11,0,63,0,80,0,48,0\n49,0,41,0,44,0,35,0,65,0,8,0\n14,0,33,0,73,0,57,0,40,0,38,0\n46,0,51,0,2,0,7,0,29,0,6,0\n69,0,79,0,42,0,52,0,4,0,15,0\n13,0,70,0,12,0,43,0,64,0,21,0\n25,0,18,0,32,0,53,0,26,0,60,0\n45,0,50,0,63,0,37,0,5,0,23,0\n24,0,19,0,22,0,9,0,72,0,28,0\n74,0,39,0,20,0,80,0,47,0,68,0\n48,0,77,0,71,0,10,0,56,0,27,0\n55,0,66,0,78,0,11,0,76,0,61,0\n59,0,16,0,36,0,31,0,58,0,17,0\n75,0,30,0,67,0,62,0,34,0,1,0\n3,0,32,0,21,0,54,0,35,0,50,0\n"
  },
  {
    "path": "schedules/80_11.csv",
    "content": "62,0,54,0,1,0,37,0,14,0,30,0\n47,0,58,0,33,0,69,0,22,0,71,0\n12,0,75,0,50,0,9,0,66,0,43,0\n19,0,70,0,10,0,20,0,3,0,52,0\n36,0,53,0,21,0,80,0,6,0,76,0\n63,0,51,0,4,0,7,0,45,0,40,0\n57,0,29,0,77,0,18,0,38,0,56,0\n13,0,32,0,61,0,42,0,27,0,46,0\n15,0,65,0,78,0,17,0,64,0,26,0\n16,0,55,0,59,0,39,0,49,0,23,0\n2,0,72,0,74,0,24,0,79,0,5,0\n67,0,25,0,31,0,44,0,73,0,48,0\n35,0,60,0,41,0,11,0,34,0,68,0\n28,0,57,0,43,0,8,0,40,0,19,0\n4,0,69,0,3,0,9,0,46,0,54,0\n17,0,21,0,29,0,52,0,33,0,32,0\n42,0,53,0,51,0,15,0,71,0,12,0\n13,0,24,0,37,0,23,0,70,0,80,0\n79,0,65,0,30,0,58,0,76,0,59,0\n35,0,73,0,50,0,5,0,36,0,41,0\n60,0,10,0,25,0,47,0,38,0,75,0\n7,0,56,0,66,0,64,0,27,0,20,0\n39,0,74,0,61,0,26,0,6,0,14,0\n78,0,55,0,44,0,2,0,63,0,11,0\n68,0,1,0,31,0,72,0,62,0,22,0\n48,0,67,0,45,0,28,0,18,0,16,0\n49,0,8,0,53,0,77,0,34,0,30,0\n51,1,38,0,13,0,37,1,69,0,65,0\n5,0,17,0,7,0,71,0,21,0,60,0\n79,0,64,0,3,0,12,0,57,0,41,0\n19,0,4,0,56,0,78,0,14,0,80,0\n31,0,63,0,22,0,29,0,46,0,23,0\n26,0,70,0,11,0,66,0,72,0,16,0\n54,0,68,0,42,0,49,0,44,0,25,0\n76,0,50,0,62,0,33,0,77,0,67,0\n61,0,2,0,36,0,45,0,59,0,43,0\n27,0,47,0,10,0,55,0,1,0,28,0\n40,0,6,0,35,0,75,0,32,0,48,0\n15,0,34,0,24,0,39,0,9,0,52,0\n74,0,20,0,18,0,8,0,58,0,73,0\n53,0,14,0,69,0,23,0,42,0,72,0\n71,0,63,0,79,0,13,0,49,0,77,0\n21,0,37,0,54,0,16,0,60,0,19,0\n36,0,66,0,29,0,78,0,46,0,41,0\n68,0,80,0,28,0,61,0,75,0,5,0\n34,0,3,0,17,0,43,0,11,0,47,0\n31,0,7,0,57,0,74,0,65,0,35,0\n2,0,33,0,8,0,48,0,1,0,38,0\n44,0,45,0,64,0,62,0,24,0,32,0\n20,0,9,0,25,0,40,0,59,0,22,0\n12,0,56,0,10,0,30,0,67,0,39,0\n58,0,50,0,52,0,55,0,51,0,26,0\n15,0,73,0,18,0,27,0,6,0,4,0\n76,0,41,0,61,0,70,0,72,0,7,0\n71,0,48,0,34,0,19,0,66,0,23,0\n1,0,43,0,35,0,42,0,16,0,77,0\n37,0,53,0,64,0,2,0,40,0,68,0\n9,0,32,0,59,0,56,0,5,0,67,0\n62,0,58,0,46,0,10,0,17,0,80,0\n47,0,4,0,30,0,57,0,44,0,26,0\n15,0,39,0,28,0,25,0,63,0,76,0\n70,0,3,0,6,0,22,0,8,0,79,0\n60,0,18,0,12,0,20,0,13,0,55,0\n38,0,29,0,45,0,49,0,50,0,11,0\n75,0,36,0,74,0,27,0,69,0,52,0\n31,0,21,0,14,0,78,0,51,0,24,0\n54,0,73,0,43,0,65,0,33,0,53,0\n47,0,15,0,48,0,41,0,62,0,37,0\n16,0,57,0,76,0,68,0,32,0,10,0\n6,0,5,0,55,0,64,0,30,0,19,0\n28,0,72,0,44,0,58,0,9,0,49,0\n23,0,25,0,45,0,52,0,17,0,35,0\n42,0,60,0,40,0,78,0,50,0,70,0\n59,0,3,0,80,0,38,0,14,0,33,0\n65,0,67,0,63,0,8,0,75,0,24,0\n20,0,71,0,7,0,11,0,1,0,36,0\n79,0,18,0,66,0,31,0,61,0,54,0\n77,0,27,0,22,0,26,0,12,0,21,0\n51,0,34,0,46,0,56,0,74,0,73,0\n69,0,2,0,13,0,29,0,39,0,4,0\n50,0,9,0,16,0,64,0,47,0,80,0\n5,0,58,0,63,0,38,0,42,0,6,0\n72,0,57,0,33,0,60,0,45,0,15,0\n8,0,10,0,59,0,53,0,66,0,41,0\n19,0,49,0,24,0,1,0,12,0,32,0\n62,0,34,0,23,0,21,0,40,0,61,0\n26,0,2,0,65,0,56,0,46,0,25,0\n18,0,17,0,39,0,79,0,75,0,44,0\n77,0,20,0,54,0,27,0,78,0,48,0\n73,0,71,0,52,0,14,0,28,0,35,0\n7,0,67,0,37,0,69,0,55,0,29,0\n30,0,31,0,51,0,13,0,36,0,3,0\n76,0,22,0,11,0,74,0,4,0,43,0\n68,0,21,0,38,0,70,0,66,0,15,0\n40,0,44,0,33,0,16,0,56,0,79,0\n34,0,78,0,26,0,5,0,10,0,18,0\n19,0,48,0,61,0,50,0,53,0,17,0\n72,0,37,0,52,0,46,0,39,0,20,0\n27,0,8,0,41,0,45,0,80,0,31,0\n75,0,22,0,49,0,14,0,2,0,57,0\n36,0,58,0,32,0,25,0,77,0,4,0\n6,0,64,0,1,0,51,0,60,0,67,0\n11,0,29,0,28,0,65,0,12,0,42,0\n47,0,13,0,59,0,24,0,35,0,54,0\n62,0,30,0,70,0,69,0,43,0,63,0\n71,0,9,0,55,0,76,0,74,0,68,0\n23,0,7,0,16,0,73,0,3,0,2,0\n22,0,17,0,56,0,49,0,37,0,36,0\n48,0,46,0,53,0,5,0,57,0,1,0\n4,0,52,0,42,0,8,0,31,0,64,0\n80,0,79,0,11,0,32,0,15,0,51,0\n14,0,44,0,65,0,20,0,34,0,41,0\n55,0,70,0,75,0,77,0,45,0,71,0\n26,0,38,0,54,0,24,0,28,0,7,0\n78,0,12,0,68,0,6,0,69,0,59,0\n29,0,13,0,74,0,19,0,25,0,62,0\n3,0,72,0,30,0,18,0,21,0,50,0\n27,0,60,0,23,0,67,0,43,0,58,0\n9,0,33,0,35,0,10,0,61,0,63,0\n76,0,47,0,39,0,66,0,73,0,40,0\n37,0,32,0,31,0,53,0,26,0,75,0\n41,0,69,0,24,0,77,0,55,0,17,0\n6,0,52,0,11,0,13,0,56,0,57,0\n25,0,14,0,8,0,5,0,16,0,12,0\n64,0,59,0,46,0,28,0,70,0,21,0\n67,0,71,0,4,0,72,0,61,0,38,0\n62,0,49,0,40,0,65,0,27,0,3,0\n45,0,66,0,78,0,1,0,74,0,58,0\n19,0,51,0,20,0,35,0,2,0,76,0\n47,0,36,0,18,0,68,0,63,0,23,0\n73,0,60,0,79,0,29,0,9,0,30,0\n80,0,43,0,42,0,7,0,48,0,39,0\n10,0,15,0,50,0,54,0,22,0,44,0\n33,0,28,0,12,0,34,0,37,0,4,0\n61,0,56,0,1,0,3,0,55,0,25,0\n75,0,77,0,19,0,11,0,59,0,72,0\n49,0,35,0,69,0,18,0,76,0,64,0\n9,0,73,0,38,0,78,0,62,0,52,0\n16,0,27,0,24,0,29,0,51,0,71,0\n45,0,46,0,21,0,53,0,79,0,47,0\n30,0,41,0,23,0,42,0,74,0,33,0\n17,0,20,0,2,0,6,0,50,0,31,0\n65,0,39,0,66,0,22,0,32,0,60,0\n80,0,34,0,57,0,54,0,63,0,70,0\n15,0,40,0,26,0,36,0,67,0,8,0\n14,0,48,0,68,0,58,0,7,0,13,0\n5,0,43,0,51,0,10,0,44,0,37,0\n"
  },
  {
    "path": "schedules/80_12.csv",
    "content": "29,0,45,0,5,0,35,0,19,0,24,0\n73,0,56,0,42,0,3,0,27,0,46,0\n74,0,37,0,34,0,60,0,18,0,68,0\n21,0,57,0,54,0,25,0,8,0,50,0\n43,0,53,0,38,0,65,0,69,0,51,0\n63,0,52,0,2,0,16,0,36,0,77,0\n41,0,1,0,70,0,79,0,58,0,22,0\n10,0,20,0,14,0,49,0,4,0,7,0\n67,0,62,0,72,0,17,0,26,0,44,0\n11,0,76,0,39,0,66,0,31,0,28,0\n75,0,23,0,13,0,55,0,32,0,64,0\n33,0,40,0,48,0,61,0,15,0,78,0\n59,0,9,0,6,0,47,0,12,0,80,0\n71,0,22,0,50,0,30,0,34,0,24,0\n45,0,60,0,7,0,8,0,56,0,79,0\n72,0,1,0,35,0,67,0,77,0,57,0\n38,0,19,0,58,0,31,0,68,0,14,0\n73,0,32,0,23,0,25,0,10,0,53,0\n15,0,51,0,42,0,63,0,13,0,11,0\n36,0,54,0,55,0,47,0,3,0,44,0\n18,0,46,0,65,0,59,0,26,0,48,0\n49,0,33,0,21,0,5,0,62,0,30,0\n61,0,28,0,75,0,2,0,20,0,71,0\n78,0,64,0,12,0,29,0,70,0,37,0\n16,0,74,0,39,0,17,0,9,0,4,0\n41,0,43,0,52,0,6,0,76,0,66,0\n27,0,69,0,58,0,80,0,40,0,45,0\n14,0,42,0,36,0,24,0,57,0,65,0\n31,0,77,0,62,0,47,0,51,0,23,0\n3,0,28,0,7,0,19,0,26,0,32,0\n30,0,37,0,59,0,38,0,1,0,44,0\n61,0,34,0,17,0,13,0,25,0,46,0\n78,0,8,0,67,0,2,0,73,0,49,0\n41,0,60,0,33,0,12,0,11,0,71,0\n5,0,16,0,22,0,18,0,43,0,72,0\n63,0,80,0,20,0,39,0,66,0,21,0\n70,0,35,0,55,0,69,0,40,0,74,0\n48,0,27,0,9,0,76,0,64,0,52,0\n29,0,79,0,10,0,54,0,56,0,75,0\n53,0,50,0,68,0,6,0,4,0,15,0\n46,0,24,0,37,0,7,0,62,0,41,0\n30,0,2,0,57,0,47,0,13,0,45,0\n26,0,34,0,77,0,20,0,21,0,78,0\n69,0,59,0,61,0,31,0,74,0,63,0\n73,0,66,0,60,0,38,0,55,0,72,0\n71,0,1,0,36,0,29,0,27,0,32,0\n8,0,43,0,11,0,17,0,75,0,50,0\n5,0,15,0,9,0,70,0,3,0,10,0\n80,0,64,0,22,0,44,0,25,0,65,0\n23,0,56,0,40,0,12,0,28,0,4,0\n79,0,68,0,35,0,51,0,52,0,49,0\n53,0,18,0,42,0,33,0,14,0,76,0\n67,0,39,0,54,0,19,0,48,0,6,0\n16,0,24,0,55,0,58,0,34,0,59,0\n13,0,3,0,66,0,75,0,21,0,1,0\n64,0,25,0,9,0,77,0,60,0,43,0\n31,0,22,0,4,0,15,0,57,0,46,0\n44,0,2,0,11,0,27,0,35,0,12,0\n53,0,71,0,47,0,72,0,79,0,63,0\n32,0,56,0,51,0,48,0,14,0,17,0\n74,0,20,0,76,0,8,0,52,0,29,0\n65,0,26,0,58,0,37,0,54,0,33,0\n67,0,16,0,7,0,70,0,23,0,30,0\n68,0,36,0,49,0,39,0,18,0,40,0\n50,0,80,0,41,0,45,0,10,0,19,0\n69,0,28,0,38,0,5,0,42,0,78,0\n61,0,62,0,64,0,6,0,73,0,11,0\n47,0,35,0,74,0,56,0,22,0,25,0\n54,0,72,0,24,0,43,0,31,0,27,0\n29,0,48,0,34,0,53,0,2,0,7,0\n13,0,26,0,40,0,14,0,16,0,60,0\n58,0,44,0,70,0,20,0,52,0,50,0\n66,0,79,0,23,0,33,0,59,0,68,0\n28,0,80,0,62,0,1,0,18,0,15,0\n6,0,77,0,46,0,38,0,49,0,75,0\n30,0,61,0,41,0,9,0,32,0,42,0\n4,0,78,0,69,0,76,0,36,0,67,0\n51,0,8,0,45,0,3,0,39,0,71,0\n57,0,37,0,63,0,5,0,17,0,73,0\n19,0,65,0,12,0,21,0,55,0,10,0\n43,0,80,0,14,0,2,0,23,0,35,0\n68,0,38,0,24,0,64,0,56,0,16,0\n28,0,25,0,48,0,41,0,72,0,49,0\n52,0,42,0,4,0,75,0,22,0,26,0\n30,0,9,0,46,0,54,0,53,0,11,0\n79,0,3,0,18,0,67,0,31,0,20,0\n77,0,73,0,51,0,29,0,50,0,69,0\n34,0,15,0,19,0,27,0,66,0,47,0\n71,0,40,0,5,0,65,0,6,0,74,0\n17,0,70,0,33,0,21,0,36,0,45,0\n63,0,62,0,12,0,8,0,32,0,58,0\n37,0,13,0,60,0,59,0,76,0,10,0\n78,0,7,0,44,0,61,0,39,0,1,0\n57,0,68,0,29,0,55,0,11,0,67,0\n46,0,49,0,16,0,66,0,69,0,80,0\n47,0,20,0,34,0,40,0,43,0,42,0\n70,0,18,0,75,0,25,0,24,0,51,0\n38,0,17,0,52,0,28,0,71,0,54,0\n37,0,9,0,36,0,72,0,23,0,45,0\n4,0,10,0,8,0,1,0,33,0,64,0\n57,0,7,0,55,0,78,0,62,0,53,0\n59,0,32,0,31,0,5,0,2,0,50,0\n56,0,13,0,39,0,41,0,77,0,65,0\n3,0,48,0,30,0,58,0,60,0,35,0\n27,0,21,0,14,0,6,0,22,0,61,0\n73,0,15,0,76,0,12,0,26,0,79,0\n63,0,44,0,33,0,74,0,19,0,75,0\n71,0,67,0,24,0,40,0,66,0,9,0\n38,0,45,0,32,0,4,0,18,0,47,0\n1,0,50,0,65,0,46,0,2,0,68,0\n64,0,58,0,49,0,17,0,42,0,7,0\n53,0,8,0,36,0,5,0,41,0,35,0\n27,0,77,0,55,0,37,0,79,0,48,0\n56,0,15,0,74,0,73,0,43,0,21,0\n54,0,23,0,22,0,60,0,69,0,20,0\n12,0,39,0,31,0,34,0,62,0,13,0\n6,0,63,0,25,0,29,0,30,0,28,0\n44,0,10,0,57,0,51,0,26,0,16,0\n72,0,76,0,70,0,3,0,80,0,61,0\n19,0,14,0,52,0,78,0,59,0,11,0\n15,0,66,0,35,0,65,0,42,0,37,0\n47,0,69,0,75,0,41,0,68,0,17,0\n67,0,22,0,27,0,38,0,7,0,12,0\n28,0,74,0,45,0,53,0,64,0,31,0\n58,0,18,0,21,0,2,0,29,0,9,0\n76,0,40,0,77,0,54,0,32,0,44,0\n52,0,46,0,39,0,33,0,55,0,25,0\n26,0,80,0,8,0,13,0,48,0,24,0\n30,0,6,0,72,0,19,0,51,0,4,0\n50,0,78,0,14,0,63,0,60,0,3,0\n23,0,49,0,59,0,70,0,57,0,71,0\n43,0,61,0,79,0,62,0,36,0,10,0\n5,0,20,0,56,0,16,0,11,0,1,0\n73,0,65,0,45,0,34,0,75,0,52,0\n7,0,31,0,33,0,77,0,80,0,68,0\n72,0,69,0,2,0,15,0,64,0,39,0\n51,0,21,0,60,0,67,0,28,0,47,0\n41,0,6,0,18,0,63,0,78,0,23,0\n43,0,46,0,32,0,8,0,37,0,19,0\n54,0,25,0,1,0,16,0,12,0,42,0\n40,0,3,0,17,0,22,0,29,0,59,0\n57,0,53,0,66,0,61,0,58,0,56,0\n14,0,55,0,73,0,30,0,20,0,36,0\n49,0,26,0,27,0,74,0,9,0,50,0\n5,0,4,0,24,0,13,0,44,0,79,0\n11,0,48,0,10,0,34,0,38,0,70,0\n71,0,76,0,19,0,62,0,35,0,16,0\n64,0,51,0,2,0,41,0,40,0,54,0\n52,0,53,0,56,0,67,0,80,0,37,0\n7,0,75,0,25,0,59,0,15,0,36,0\n28,0,68,0,9,0,22,0,8,0,73,0\n47,0,39,0,29,0,14,0,5,0,61,0\n1,0,55,0,26,0,43,0,63,0,45,0\n17,0,12,0,30,0,66,0,18,0,77,0\n72,0,78,0,10,0,58,0,74,0,46,0\n49,0,11,0,24,0,3,0,23,0,76,0\n13,0,20,0,35,0,38,0,33,0,50,0\n32,0,79,0,6,0,34,0,69,0,57,0\n62,0,4,0,70,0,27,0,60,0,65,0\n31,0,71,0,44,0,48,0,42,0,21,0\n"
  },
  {
    "path": "schedules/80_13.csv",
    "content": "42,0,14,0,21,0,3,0,75,0,15,0\n18,0,74,0,61,0,36,0,1,0,39,0\n17,0,2,0,30,0,66,0,20,0,33,0\n68,0,41,0,55,0,53,0,78,0,54,0\n46,0,23,0,5,0,25,0,38,0,48,0\n32,0,22,0,12,0,80,0,47,0,29,0\n43,0,44,0,60,0,9,0,51,0,4,0\n11,0,6,0,72,0,52,0,7,0,24,0\n26,0,28,0,40,0,10,0,27,0,59,0\n62,0,57,0,50,0,77,0,64,0,69,0\n76,0,34,0,31,0,37,0,35,0,73,0\n79,0,70,0,63,0,16,0,49,0,67,0\n8,0,65,0,13,0,19,0,56,0,58,0\n71,0,5,0,21,0,45,0,17,0,12,0\n14,0,6,0,7,0,9,0,38,0,29,0\n80,0,24,0,41,0,74,0,25,0,10,0\n47,0,39,0,60,0,15,0,42,0,66,0\n53,0,69,0,36,0,32,0,31,0,37,0\n11,0,59,0,73,0,67,0,78,0,23,0\n57,0,68,0,20,0,27,0,65,0,46,0\n62,0,4,0,35,0,19,0,40,0,1,0\n70,0,52,0,77,0,58,0,30,0,26,0\n75,0,22,0,51,0,63,0,72,0,55,0\n54,0,50,0,61,0,49,0,8,0,43,0\n64,0,76,0,18,0,79,0,48,0,56,0\n28,0,2,0,44,0,34,0,45,0,16,0\n3,0,33,0,67,0,71,0,13,0,38,0\n37,1,46,0,9,0,5,1,1,0,73,0\n68,1,17,0,29,0,4,1,11,0,41,0\n60,0,80,0,40,0,78,0,36,0,21,0\n66,0,55,0,69,0,61,0,49,0,52,0\n59,0,57,0,53,0,42,0,24,0,22,0\n63,0,39,0,7,0,64,0,65,0,62,0\n45,0,8,0,6,0,33,0,32,0,23,0\n16,0,76,0,54,0,3,0,50,0,74,0\n34,0,47,0,25,0,71,0,75,0,14,0\n35,0,30,0,51,0,26,0,10,0,13,0\n18,0,56,0,44,0,15,0,70,0,31,0\n19,0,77,0,12,0,79,0,2,0,27,0\n48,0,72,0,58,0,28,0,20,0,43,0\n39,0,57,0,73,0,60,0,7,0,41,0\n63,0,45,0,11,0,42,0,55,0,46,0\n36,0,67,0,66,0,9,0,54,0,24,0\n53,0,26,0,6,0,5,0,76,0,62,0\n31,0,64,0,74,0,78,0,17,0,34,0\n65,0,29,0,79,0,51,0,47,0,2,0\n72,0,4,0,23,0,70,0,71,0,27,0\n25,0,52,0,3,0,40,0,37,0,18,0\n61,0,32,0,38,0,35,0,21,0,58,0\n68,0,75,0,16,0,69,0,59,0,20,0\n15,0,8,0,30,0,43,0,48,0,80,0\n77,0,44,0,1,0,10,0,12,0,28,0\n14,0,19,0,22,0,56,0,50,0,33,0\n49,0,27,0,47,0,13,0,45,0,5,0\n42,0,65,0,3,0,55,0,26,0,73,0\n36,0,58,0,41,0,7,0,2,0,23,0\n17,0,35,0,67,0,18,0,62,0,75,0\n29,0,78,0,37,0,16,0,48,0,24,0\n63,0,77,0,80,0,59,0,34,0,4,0\n79,0,60,0,1,0,8,0,33,0,52,0\n30,0,38,0,31,0,39,0,54,0,22,0\n51,0,57,0,32,0,76,0,19,0,28,0\n49,0,71,0,74,0,56,0,9,0,11,0\n15,0,43,0,14,0,10,0,6,0,68,0\n70,0,21,0,12,0,50,0,53,0,66,0\n44,0,40,0,46,0,69,0,72,0,13,0\n20,0,64,0,26,0,61,0,25,0,67,0\n77,0,41,0,75,0,80,0,8,0,36,0\n52,0,47,0,59,0,7,0,57,0,54,0\n30,0,78,0,9,0,28,0,3,0,5,0\n1,0,27,0,58,0,16,0,31,0,11,0\n74,0,42,0,33,0,66,0,4,0,29,0\n37,0,60,0,53,0,56,0,65,0,23,0\n45,0,72,0,18,0,12,0,14,0,61,0\n32,0,62,0,10,0,70,0,46,0,25,0\n43,0,69,0,22,0,64,0,71,0,2,0\n35,0,24,0,79,0,55,0,44,0,50,0\n48,0,6,0,17,0,19,0,73,0,49,0\n63,0,20,0,15,0,76,0,40,0,38,0\n34,0,51,0,13,0,68,0,21,0,39,0\n72,0,80,0,14,0,31,0,60,0,57,0\n54,0,33,0,29,0,58,0,10,0,46,0\n67,0,74,0,65,0,27,0,43,0,12,0\n9,0,16,0,77,0,22,0,25,0,35,0\n44,0,61,0,62,0,30,0,37,0,47,0\n42,0,70,0,40,0,38,0,8,0,2,0\n11,0,75,0,48,0,13,0,32,0,79,0\n56,0,1,0,66,0,34,0,6,0,3,0\n63,0,19,0,5,0,69,0,21,0,41,0\n55,0,17,0,76,0,59,0,39,0,23,0\n53,0,24,0,20,0,28,0,18,0,51,0\n52,0,73,0,36,0,64,0,68,0,45,0\n26,0,7,0,50,0,71,0,4,0,78,0\n49,0,29,0,77,0,15,0,65,0,72,0\n67,0,42,0,48,0,34,0,10,0,1,0\n13,0,54,0,62,0,2,0,61,0,60,0\n44,0,58,0,5,0,76,0,75,0,74,0\n35,0,23,0,28,0,69,0,80,0,33,0\n68,0,36,0,3,0,57,0,70,0,47,0\n39,0,8,0,53,0,45,0,9,0,26,0\n49,0,51,0,6,0,71,0,59,0,37,0\n56,0,30,0,24,0,12,0,16,0,63,0\n17,0,73,0,18,0,27,0,50,0,38,0\n7,0,31,0,55,0,43,0,25,0,19,0\n79,0,15,0,22,0,78,0,66,0,46,0\n32,0,4,0,20,0,14,0,41,0,52,0\n64,0,11,0,47,0,40,0,21,0,77,0\n33,0,75,0,35,0,68,0,49,0,53,0\n65,0,24,0,71,0,61,0,5,0,70,0\n27,0,16,0,42,0,54,0,6,0,80,0\n2,0,63,0,10,0,17,0,9,0,57,0\n7,0,29,0,69,0,18,0,34,0,8,0\n78,0,45,0,25,0,76,0,1,0,13,0\n43,0,46,0,79,0,41,0,56,0,39,0\n23,0,74,0,51,0,40,0,62,0,14,0\n67,0,21,0,28,0,31,0,52,0,22,0\n30,0,32,0,66,0,73,0,72,0,50,0\n4,0,12,0,60,0,3,0,11,0,20,0\n37,0,19,0,26,0,15,0,58,0,64,0\n55,0,38,0,59,0,36,0,48,0,44,0\n7,0,80,0,1,0,5,0,79,0,68,0\n33,0,27,0,61,0,41,0,63,0,51,0\n78,0,47,0,22,0,70,0,6,0,18,0\n46,0,35,0,52,0,17,0,43,0,74,0\n24,0,45,0,4,0,75,0,31,0,65,0\n67,0,71,0,76,0,77,0,66,0,60,0\n36,0,12,0,42,0,25,0,49,0,58,0\n19,0,39,0,50,0,44,0,20,0,23,0\n54,0,2,0,26,0,14,0,37,0,48,0\n38,0,34,0,53,0,11,0,30,0,57,0\n64,0,59,0,13,0,32,0,15,0,9,0\n16,0,10,0,72,0,8,0,62,0,21,0\n56,0,28,0,55,0,40,0,29,0,73,0\n3,0,80,0,58,0,69,0,51,0,17,0\n60,0,19,0,18,0,68,0,74,0,63,0\n7,0,33,0,43,0,24,0,76,0,77,0\n52,0,39,0,5,0,14,0,35,0,2,0\n65,0,49,0,78,0,44,0,25,0,30,0\n34,0,11,0,27,0,36,0,15,0,62,0\n73,0,48,0,4,0,61,0,53,0,47,0\n56,0,69,0,32,0,42,0,20,0,54,0\n9,0,70,0,59,0,79,0,72,0,37,0\n57,0,21,0,75,0,29,0,1,0,26,0\n45,0,40,0,41,0,67,0,50,0,22,0\n38,0,6,0,28,0,55,0,64,0,12,0\n31,0,10,0,8,0,71,0,3,0,46,0\n66,0,13,0,43,0,16,0,23,0,18,0\n2,0,80,0,11,0,76,0,73,0,61,0\n78,0,77,0,51,0,42,0,52,0,56,0\n54,0,25,0,15,0,35,0,53,0,72,0\n62,0,9,0,41,0,48,0,68,0,65,0\n57,0,19,0,29,0,67,0,5,0,30,0\n28,0,46,0,39,0,4,0,6,0,36,0\n33,0,16,0,71,0,32,0,40,0,55,0\n8,0,70,0,37,0,74,0,20,0,27,0\n23,0,21,0,3,0,44,0,49,0,7,0\n50,0,12,0,13,0,63,0,31,0,59,0\n24,0,58,0,17,0,47,0,1,0,14,0\n10,0,64,0,38,0,75,0,45,0,66,0\n69,0,34,0,79,0,60,0,26,0,22,0\n25,0,2,0,4,0,67,0,56,0,51,0\n71,0,15,0,55,0,30,0,62,0,74,0\n5,0,65,0,37,0,18,0,33,0,11,0\n70,0,48,0,3,0,39,0,77,0,35,0\n7,0,68,0,13,0,17,0,42,0,28,0\n76,0,47,0,72,0,19,0,16,0,41,0\n50,0,45,0,59,0,60,0,29,0,58,0\n75,0,34,0,23,0,54,0,52,0,12,0\n20,0,10,0,73,0,22,0,36,0,63,0\n64,0,46,0,14,0,80,0,53,0,44,0\n27,0,9,0,21,0,24,0,78,0,69,0\n6,0,31,0,40,0,61,0,79,0,57,0\n1,0,49,0,38,0,26,0,32,0,43,0\n66,0,37,0,68,0,8,0,5,0,4,0\n"
  },
  {
    "path": "schedules/80_14.csv",
    "content": "4,0,58,0,34,0,19,0,24,0,54,0\n52,0,5,0,13,0,64,0,71,0,40,0\n76,0,68,0,50,0,78,0,72,0,55,0\n18,0,10,0,29,0,59,0,69,0,80,0\n8,0,9,0,12,0,25,0,38,0,75,0\n77,0,1,0,26,0,37,0,3,0,53,0\n48,0,14,0,22,0,49,0,44,0,21,0\n35,0,62,0,65,0,30,0,73,0,6,0\n2,0,33,0,43,0,15,0,57,0,60,0\n23,0,16,0,36,0,46,0,79,0,41,0\n39,0,28,0,56,0,45,0,47,0,42,0\n66,0,11,0,7,0,31,0,63,0,17,0\n67,0,27,0,74,0,32,0,20,0,70,0\n61,0,49,0,68,0,51,0,5,0,18,0\n69,0,9,0,75,0,53,0,35,0,54,0\n62,0,24,0,15,0,52,0,8,0,55,0\n2,0,46,0,76,0,12,0,26,0,58,0\n42,0,10,0,72,0,3,0,77,0,79,0\n6,0,37,0,21,0,45,0,78,0,4,0\n17,0,23,0,47,0,31,0,67,0,59,0\n33,0,40,0,16,0,27,0,19,0,48,0\n80,0,41,0,63,0,64,0,74,0,43,0\n73,0,25,0,71,0,57,0,22,0,34,0\n60,0,56,0,29,0,14,0,30,0,61,0\n11,0,28,0,20,0,50,0,51,0,65,0\n70,0,1,0,39,0,7,0,13,0,36,0\n32,0,44,0,79,0,38,0,66,0,23,0\n19,1,59,0,78,0,42,1,8,0,31,0\n35,0,46,0,37,0,48,0,53,0,15,0\n3,0,27,0,52,0,47,0,49,0,25,0\n68,0,40,0,69,0,63,0,9,0,74,0\n28,0,58,0,61,0,43,0,55,0,62,0\n13,0,72,0,17,0,57,0,6,0,14,0\n45,0,50,0,24,0,71,0,65,0,21,0\n76,0,32,0,33,0,56,0,41,0,1,0\n30,0,34,0,77,0,38,0,22,0,70,0\n36,0,39,0,12,0,44,0,67,0,29,0\n60,0,16,0,54,0,66,0,64,0,10,0\n51,0,80,0,2,0,73,0,5,0,7,0\n4,0,26,0,11,0,18,0,75,0,20,0\n52,0,24,0,14,0,19,0,68,0,28,0\n58,0,8,0,79,0,37,0,74,0,49,0\n9,0,47,0,1,0,43,0,17,0,6,0\n25,0,69,0,77,0,50,0,15,0,32,0\n71,0,45,0,33,0,31,0,12,0,76,0\n61,0,54,0,70,0,23,0,80,0,39,0\n63,0,53,0,57,0,30,0,4,0,64,0\n44,0,56,0,40,0,16,0,21,0,55,0\n26,0,59,0,5,0,65,0,72,0,48,0\n62,0,75,0,27,0,10,0,51,0,36,0\n2,0,11,0,35,0,78,0,34,0,66,0\n60,0,13,0,18,0,41,0,3,0,73,0\n22,0,7,0,46,0,20,0,42,0,67,0\n38,0,61,0,6,0,29,0,76,0,19,0\n1,0,30,0,57,0,50,0,55,0,47,0\n24,0,70,0,12,0,16,0,49,0,72,0\n14,0,74,0,53,0,45,0,25,0,5,0\n34,0,15,0,21,0,56,0,51,0,79,0\n43,0,48,0,73,0,11,0,78,0,36,0\n71,0,41,0,35,0,28,0,10,0,7,0\n60,0,31,0,32,0,26,0,62,0,54,0\n39,0,44,0,20,0,59,0,3,0,2,0\n22,0,67,0,65,0,29,0,9,0,68,0\n8,0,69,0,23,0,66,0,27,0,13,0\n58,0,75,0,33,0,77,0,18,0,64,0\n80,0,38,0,40,0,4,0,42,0,37,0\n46,0,63,0,45,0,17,0,52,0,35,0\n6,0,79,0,36,0,60,0,53,0,50,0\n21,0,62,0,74,0,26,0,7,0,49,0\n65,0,47,0,10,0,34,0,61,0,12,0\n15,0,72,0,19,0,23,0,11,0,43,0\n64,0,44,0,69,0,8,0,76,0,1,0\n3,0,16,0,67,0,58,0,57,0,29,0\n51,0,17,0,9,0,55,0,56,0,70,0\n73,0,78,0,42,0,54,0,5,0,33,0\n75,0,37,0,59,0,24,0,27,0,28,0\n32,0,46,0,80,0,14,0,13,0,68,0\n77,0,38,0,63,0,71,0,20,0,48,0\n31,0,18,0,4,0,2,0,22,0,25,0\n41,0,66,0,30,0,52,0,40,0,39,0\n64,0,26,0,70,0,44,0,35,0,47,0\n56,0,50,0,3,0,17,0,74,0,73,0\n37,0,43,0,16,0,5,0,75,0,76,0\n21,0,45,0,27,0,11,0,13,0,54,0\n72,0,51,0,53,0,32,0,71,0,58,0\n59,0,55,0,25,0,7,0,80,0,6,0\n38,0,10,0,78,0,18,0,63,0,14,0\n28,0,8,0,36,0,2,0,77,0,40,0\n20,0,30,0,31,0,61,0,48,0,24,0\n39,0,4,0,68,0,49,0,79,0,33,0\n66,0,15,0,42,0,1,0,29,0,34,0\n60,0,22,0,9,0,23,0,52,0,12,0\n19,0,62,0,57,0,46,0,65,0,69,0\n67,0,26,0,51,0,41,0,38,0,64,0\n53,0,77,0,59,0,21,0,40,0,73,0\n78,0,13,0,25,0,75,0,10,0,30,0\n31,0,44,0,55,0,72,0,63,0,4,0\n42,0,80,0,14,0,50,0,66,0,58,0\n7,0,29,0,39,0,28,0,43,0,34,0\n2,0,48,0,79,0,56,0,52,0,69,0\n71,0,57,0,9,0,41,0,49,0,62,0\n70,0,60,0,19,0,37,0,67,0,18,0\n46,0,47,0,3,0,8,0,11,0,5,0\n23,0,6,0,24,0,74,0,36,0,33,0\n54,0,12,0,20,0,68,0,35,0,1,0\n61,0,22,0,16,0,45,0,32,0,17,0\n27,0,65,0,7,0,15,0,76,0,78,0\n13,0,57,0,50,0,31,0,26,0,38,0\n21,0,72,0,80,0,28,0,60,0,69,0\n2,0,39,0,30,0,19,0,77,0,9,0\n25,0,18,0,23,0,62,0,48,0,37,0\n56,0,49,0,59,0,64,0,54,0,46,0\n55,0,10,0,74,0,52,0,11,0,53,0\n3,0,40,0,43,0,22,0,12,0,32,0\n75,0,47,0,61,0,63,0,33,0,1,0\n29,0,20,0,5,0,70,0,17,0,79,0\n66,0,35,0,6,0,24,0,71,0,51,0\n73,0,68,0,8,0,16,0,15,0,45,0\n41,0,65,0,44,0,42,0,58,0,27,0\n4,0,36,0,67,0,14,0,76,0,34,0\n23,0,32,0,53,0,78,0,57,0,39,0\n77,0,55,0,48,0,31,0,43,0,13,0\n64,0,37,0,29,0,62,0,11,0,72,0\n74,0,12,0,18,0,54,0,21,0,30,0\n6,0,68,0,70,0,66,0,2,0,75,0\n5,0,63,0,22,0,15,0,41,0,28,0\n27,0,80,0,36,0,19,0,56,0,71,0\n47,0,40,0,58,0,73,0,20,0,38,0\n1,0,49,0,45,0,67,0,10,0,60,0\n17,0,25,0,65,0,51,0,44,0,33,0\n59,0,34,0,52,0,26,0,69,0,16,0\n35,0,50,0,4,0,61,0,3,0,8,0\n79,0,7,0,76,0,9,0,46,0,24,0\n14,0,71,0,11,0,42,0,23,0,30,0\n64,0,73,0,55,0,66,0,37,0,12,0\n41,0,19,0,45,0,78,0,20,0,47,0\n31,0,48,0,40,0,65,0,80,0,1,0\n38,0,52,0,32,0,28,0,5,0,6,0\n18,0,72,0,22,0,27,0,35,0,56,0\n74,0,50,0,75,0,44,0,34,0,46,0\n3,0,14,0,36,0,9,0,59,0,15,0\n25,0,7,0,58,0,60,0,26,0,68,0\n21,0,10,0,8,0,33,0,70,0,57,0\n49,0,24,0,13,0,61,0,2,0,29,0\n76,0,16,0,51,0,77,0,39,0,62,0\n43,0,63,0,54,0,79,0,67,0,53,0\n17,0,4,0,12,0,42,0,69,0,41,0\n31,0,37,0,28,0,44,0,9,0,30,0\n14,0,73,0,19,0,27,0,55,0,26,0\n66,0,33,0,22,0,50,0,72,0,36,0\n65,0,23,0,64,0,21,0,7,0,32,0\n61,0,11,0,76,0,70,0,25,0,40,0\n57,0,79,0,5,0,59,0,35,0,58,0\n1,0,42,0,53,0,18,0,2,0,16,0\n48,0,17,0,75,0,60,0,39,0,71,0\n74,0,54,0,47,0,29,0,13,0,15,0\n62,0,38,0,3,0,80,0,45,0,68,0\n34,0,6,0,49,0,63,0,20,0,8,0\n78,0,67,0,69,0,56,0,77,0,24,0\n46,0,10,0,52,0,51,0,4,0,43,0\n25,0,50,0,9,0,64,0,19,0,16,0\n58,0,70,0,11,0,59,0,1,0,22,0\n76,0,42,0,55,0,60,0,74,0,35,0\n47,0,41,0,21,0,37,0,2,0,68,0\n33,0,53,0,62,0,20,0,34,0,13,0\n71,0,26,0,44,0,79,0,61,0,78,0\n14,0,45,0,72,0,75,0,7,0,40,0\n23,0,54,0,48,0,51,0,3,0,6,0\n38,0,49,0,69,0,36,0,65,0,43,0\n10,0,73,0,63,0,24,0,39,0,32,0\n66,0,28,0,57,0,46,0,18,0,56,0\n27,0,29,0,12,0,4,0,77,0,5,0\n30,0,15,0,8,0,17,0,80,0,67,0\n52,0,21,0,78,0,31,0,58,0,1,0\n79,0,55,0,19,0,75,0,22,0,3,0\n2,0,71,0,74,0,16,0,65,0,14,0\n49,0,35,0,43,0,50,0,59,0,42,0\n38,0,46,0,72,0,25,0,39,0,54,0\n53,0,66,0,4,0,7,0,62,0,47,0\n64,0,34,0,9,0,17,0,27,0,61,0\n41,0,8,0,32,0,48,0,29,0,30,0\n28,0,70,0,67,0,69,0,73,0,33,0\n60,0,24,0,80,0,77,0,11,0,44,0\n26,0,15,0,18,0,40,0,6,0,45,0\n52,0,57,0,20,0,76,0,37,0,36,0\n5,0,56,0,68,0,23,0,10,0,31,0\n51,0,13,0,19,0,12,0,63,0,42,0\n"
  },
  {
    "path": "schedules/80_2.csv",
    "content": "37,0,33,0,19,0,76,0,63,0,68,0\n4,0,34,0,59,0,49,0,43,0,64,0\n78,0,13,0,24,0,54,0,44,0,6,0\n46,0,28,0,69,0,27,0,2,0,32,0\n48,0,18,0,16,0,8,0,12,0,73,0\n67,0,15,0,14,0,74,0,65,0,77,0\n40,0,39,0,42,0,7,0,22,0,51,0\n26,0,10,0,11,0,61,0,71,0,79,0\n72,0,29,0,56,0,80,0,62,0,23,0\n30,0,52,0,47,0,20,0,58,0,53,0\n70,0,57,0,5,0,31,0,21,0,66,0\n55,0,75,0,1,0,35,0,3,0,36,0\n60,0,9,0,38,0,41,0,25,0,17,0\n45,0,12,0,28,0,50,0,39,0,15,0\n8,0,2,0,74,0,37,0,49,0,40,0\n18,0,69,0,22,0,13,0,71,0,72,0\n32,0,63,0,53,0,10,0,48,0,54,0\n19,0,44,0,27,0,31,0,56,0,52,0\n64,0,36,0,73,0,51,0,29,0,67,0\n68,0,60,0,70,0,78,0,26,0,55,0\n76,0,5,0,1,0,11,0,14,0,62,0\n77,0,25,0,35,0,24,0,43,0,47,0\n45,0,17,0,65,0,30,0,80,0,46,0\n6,0,38,0,61,0,20,0,4,0,57,0\n3,0,41,0,50,0,34,0,23,0,42,0\n9,0,66,0,33,0,16,0,59,0,58,0\n79,0,21,0,32,1,75,0,7,0,2,1\n"
  },
  {
    "path": "schedules/80_3.csv",
    "content": "76,0,3,0,28,0,27,0,52,0,63,0\n30,0,66,0,7,0,21,0,55,0,43,0\n41,0,73,0,60,0,15,0,71,0,23,0\n62,0,75,0,46,0,74,0,29,0,12,0\n53,0,45,0,49,0,79,0,68,0,32,0\n26,0,56,0,8,0,47,0,67,0,35,0\n14,0,65,0,78,0,2,0,37,0,69,0\n31,0,58,0,51,0,80,0,11,0,36,0\n42,0,25,0,57,0,48,0,34,0,1,0\n64,0,9,0,44,0,18,0,20,0,16,0\n38,0,5,0,4,0,10,0,13,0,50,0\n22,0,17,0,39,0,40,0,59,0,54,0\n77,0,19,0,70,0,61,0,72,0,24,0\n33,0,21,0,27,0,6,0,78,0,12,0\n37,0,55,0,53,0,75,0,28,0,31,0\n79,0,2,0,35,0,76,0,23,0,62,0\n14,0,41,0,48,0,7,0,26,0,51,0\n10,0,9,0,65,0,45,0,60,0,74,0\n18,0,50,0,49,0,57,0,46,0,17,0\n67,0,43,0,16,0,70,0,29,0,38,0\n1,0,77,0,52,0,15,0,56,0,39,0\n44,0,69,0,5,0,34,0,72,0,30,0\n13,0,54,0,19,0,8,0,6,0,58,0\n40,0,42,0,32,0,66,0,73,0,11,0\n61,0,25,0,59,0,3,0,71,0,47,0\n63,0,24,0,80,0,4,0,20,0,22,0\n36,0,68,0,10,0,33,0,64,0,46,0\n48,0,23,0,18,0,37,0,74,0,52,0\n21,0,57,0,72,0,38,0,2,0,41,0\n34,0,60,0,51,0,77,0,67,0,6,0\n11,0,27,0,7,0,39,0,53,0,8,0\n47,0,70,0,66,0,65,0,28,0,44,0\n71,0,9,0,32,0,4,0,69,0,35,0\n31,0,19,0,33,0,3,0,42,0,56,0\n58,0,15,0,61,0,62,0,20,0,17,0\n80,0,64,0,75,0,14,0,49,0,40,0\n22,0,5,0,29,0,25,0,76,0,36,0\n12,0,43,0,68,0,73,0,54,0,24,0\n16,0,30,0,45,0,63,0,1,0,50,0\n79,0,78,0,13,0,59,0,55,0,26,0\n"
  },
  {
    "path": "schedules/80_4.csv",
    "content": "75,0,27,0,78,0,20,0,7,0,25,0\n59,0,54,0,14,0,42,0,56,0,31,0\n2,0,51,0,12,0,18,0,43,0,36,0\n23,0,49,0,52,0,53,0,33,0,39,0\n48,0,63,0,57,0,50,0,24,0,17,0\n62,0,32,0,47,0,4,0,13,0,70,0\n65,0,11,0,5,0,76,0,77,0,68,0\n3,0,26,0,66,0,40,0,79,0,37,0\n74,0,16,0,8,0,41,0,55,0,9,0\n72,0,60,0,69,0,45,0,15,0,30,0\n64,0,21,0,80,0,10,0,67,0,19,0\n28,0,58,0,22,0,61,0,38,0,29,0\n35,0,73,0,6,0,1,0,46,0,44,0\n34,0,17,0,14,0,71,0,68,0,25,0\n57,0,53,0,77,0,54,0,66,0,62,0\n76,0,48,0,42,0,79,0,52,0,2,0\n15,0,36,0,40,0,39,0,70,0,27,0\n56,0,13,0,3,0,51,0,74,0,21,0\n9,0,10,0,37,0,32,0,11,0,60,0\n80,0,12,0,44,0,24,0,16,0,26,0\n71,0,29,0,7,0,18,0,30,0,6,0\n65,0,49,0,72,0,31,0,22,0,19,0\n47,0,8,0,33,0,1,0,61,0,64,0\n5,0,50,0,78,0,46,0,34,0,58,0\n55,0,45,0,28,0,59,0,63,0,73,0\n43,0,4,0,35,0,69,0,38,0,20,0\n41,0,67,0,56,0,75,0,23,0,62,0\n13,1,37,0,16,0,76,1,30,0,17,0\n14,1,19,0,26,0,53,1,7,0,60,0\n42,0,68,0,1,0,66,0,32,0,80,0\n61,0,9,0,40,0,25,0,72,0,48,0\n70,0,28,0,54,0,12,0,49,0,6,0\n22,0,74,0,44,0,34,0,10,0,4,0\n79,0,21,0,35,0,50,0,39,0,29,0\n27,0,46,0,55,0,52,0,43,0,47,0\n45,0,57,0,38,0,5,0,51,0,75,0\n31,0,23,0,73,0,36,0,69,0,77,0\n58,0,63,0,8,0,11,0,18,0,20,0\n24,0,41,0,59,0,64,0,78,0,65,0\n2,0,15,0,67,0,71,0,33,0,3,0\n70,0,17,0,1,0,22,0,21,0,53,0\n39,0,46,0,7,0,56,0,9,0,76,0\n30,0,5,0,10,0,47,0,79,0,28,0\n77,0,13,0,38,0,60,0,44,0,27,0\n11,0,62,0,12,0,35,0,74,0,14,0\n24,0,61,0,69,0,34,0,42,0,49,0\n52,0,25,0,59,0,67,0,51,0,50,0\n20,0,41,0,37,0,36,0,72,0,71,0\n31,0,55,0,26,0,4,0,58,0,57,0\n64,0,66,0,2,0,16,0,45,0,23,0\n43,0,6,0,33,0,80,0,63,0,65,0\n68,0,29,0,73,0,78,0,40,0,8,0\n48,0,32,0,19,0,75,0,3,0,54,0\n18,0,13,0,14,0,15,0,76,0,53,0\n"
  },
  {
    "path": "schedules/80_5.csv",
    "content": "10,0,27,0,74,0,38,0,69,0,61,0\n40,0,70,0,4,0,46,0,75,0,51,0\n65,0,66,0,13,0,35,0,60,0,34,0\n11,0,47,0,18,0,50,0,80,0,39,0\n42,0,6,0,79,0,14,0,72,0,21,0\n49,0,9,0,57,0,22,0,59,0,25,0\n52,0,5,0,78,0,37,0,19,0,53,0\n15,0,63,0,26,0,20,0,30,0,1,0\n45,0,55,0,29,0,41,0,56,0,32,0\n68,0,76,0,71,0,28,0,64,0,44,0\n24,0,31,0,12,0,43,0,33,0,62,0\n54,0,36,0,58,0,16,0,48,0,2,0\n3,0,7,0,67,0,77,0,17,0,8,0\n73,0,80,0,21,0,23,0,59,0,52,0\n30,0,9,0,79,0,53,0,40,0,50,0\n13,0,14,0,69,0,19,0,4,0,49,0\n22,0,60,0,55,0,20,0,76,0,11,0\n65,0,56,0,57,0,39,0,10,0,43,0\n66,0,74,0,28,0,51,0,12,0,78,0\n31,0,77,0,75,0,37,0,68,0,58,0\n27,0,33,0,34,0,7,0,18,0,15,0\n35,0,17,0,46,0,36,0,62,0,25,0\n44,0,8,0,38,0,70,0,47,0,41,0\n6,0,61,0,2,0,71,0,5,0,32,0\n42,0,67,0,64,0,16,0,1,0,45,0\n29,0,63,0,48,0,73,0,3,0,24,0\n26,0,23,0,76,0,54,0,72,0,57,0\n21,1,4,0,33,0,30,1,74,0,11,0\n36,0,49,0,20,0,65,0,79,0,12,0\n43,0,27,0,53,0,51,0,55,0,8,0\n69,0,2,0,40,0,25,0,52,0,44,0\n59,0,62,0,56,0,1,0,77,0,47,0\n37,0,35,0,80,0,42,0,71,0,15,0\n17,0,58,0,61,0,13,0,28,0,39,0\n14,0,50,0,5,0,68,0,45,0,63,0\n16,0,78,0,3,0,26,0,9,0,6,0\n10,0,23,0,19,0,7,0,64,0,29,0\n48,0,60,0,32,0,70,0,31,0,18,0\n41,0,22,0,46,0,73,0,54,0,66,0\n38,0,24,0,34,0,72,0,67,0,75,0\n30,0,77,0,28,0,57,0,27,0,36,0\n51,0,79,0,62,0,11,0,37,0,61,0\n50,0,4,0,52,0,42,0,55,0,12,0\n16,0,21,0,20,0,56,0,68,0,13,0\n17,0,1,0,71,0,9,0,60,0,19,0\n15,0,40,0,64,0,14,0,22,0,3,0\n43,0,72,0,41,0,48,0,59,0,69,0\n32,0,76,0,73,0,78,0,39,0,33,0\n44,0,45,0,35,0,6,0,24,0,23,0\n70,0,29,0,34,0,54,0,74,0,80,0\n47,0,26,0,67,0,5,0,49,0,58,0\n75,0,66,0,8,0,10,0,18,0,25,0\n2,0,7,0,53,0,65,0,38,0,31,0\n63,0,19,0,43,0,46,0,28,0,79,0\n41,0,64,0,52,0,33,0,20,0,9,0\n78,0,15,0,68,0,57,0,55,0,17,0\n37,0,50,0,44,0,34,0,21,0,48,0\n59,0,39,0,45,0,4,0,71,0,27,0\n42,0,49,0,32,0,77,0,23,0,66,0\n3,0,30,0,31,0,5,0,10,0,76,0\n18,0,58,0,6,0,65,0,63,0,69,0\n62,0,53,0,72,0,74,0,73,0,16,0\n47,0,12,0,14,0,75,0,29,0,61,0\n80,0,51,0,22,0,13,0,67,0,36,0\n70,0,56,0,25,0,24,0,7,0,26,0\n54,0,40,0,1,0,11,0,35,0,38,0\n46,0,8,0,21,0,2,0,60,0,30,0\n"
  },
  {
    "path": "schedules/80_6.csv",
    "content": "62,0,17,0,70,0,56,0,16,0,13,0\n50,0,5,0,21,0,37,0,61,0,45,0\n72,0,38,0,8,0,36,0,9,0,4,0\n64,0,22,0,34,0,44,0,49,0,30,0\n59,0,39,0,48,0,32,0,69,0,74,0\n78,0,25,0,14,0,41,0,53,0,11,0\n19,0,46,0,60,0,28,0,33,0,57,0\n76,0,6,0,43,0,77,0,65,0,68,0\n71,0,27,0,73,0,18,0,35,0,67,0\n3,0,7,0,66,0,51,0,75,0,80,0\n26,0,15,0,40,0,2,0,12,0,58,0\n52,0,31,0,55,0,54,0,24,0,47,0\n42,0,20,0,23,0,10,0,63,0,79,0\n29,0,33,0,45,0,1,0,11,0,16,0\n21,0,6,0,69,0,72,0,22,0,25,0\n60,0,73,0,37,0,39,0,70,0,53,0\n46,0,4,0,56,0,48,0,68,0,67,0\n44,0,32,0,26,0,3,0,19,0,35,0\n59,0,49,0,54,0,58,0,17,0,80,0\n41,0,30,0,57,0,24,0,71,0,75,0\n28,0,52,0,40,0,13,0,20,0,34,0\n51,0,61,0,8,0,2,0,74,0,31,0\n12,0,79,0,43,0,36,0,27,0,78,0\n66,0,63,0,50,0,76,0,38,0,29,0\n1,0,77,0,42,0,18,0,5,0,55,0\n14,0,65,0,9,0,47,0,10,0,64,0\n15,0,62,0,44,0,7,0,23,0,67,0\n26,0,25,0,48,0,20,0,57,0,73,0\n2,0,4,0,16,0,71,0,32,0,6,0\n13,0,61,0,53,0,27,0,59,0,22,0\n21,0,54,0,51,0,19,0,34,0,29,0\n18,0,12,0,68,0,60,0,75,0,45,0\n74,0,72,0,65,0,66,0,49,0,1,0\n70,0,78,0,23,0,46,0,58,0,55,0\n39,0,41,0,40,0,35,0,76,0,62,0\n64,0,33,0,3,0,42,0,52,0,38,0\n15,0,56,0,10,0,8,0,50,0,43,0\n9,0,28,0,77,0,24,0,79,0,80,0\n69,0,30,0,5,0,14,0,31,0,17,0\n36,0,47,0,11,0,37,0,7,0,63,0\n29,0,78,0,49,0,13,0,6,0,48,0\n60,0,59,0,2,0,25,0,1,0,67,0\n58,0,62,0,52,0,4,0,21,0,57,0\n22,0,33,0,12,0,65,0,41,0,70,0\n19,0,53,0,76,0,20,0,8,0,24,0\n46,0,50,0,27,0,9,0,69,0,26,0\n31,0,36,0,10,0,44,0,75,0,77,0\n5,0,47,0,23,0,68,0,28,0,38,0\n63,0,80,0,56,0,64,0,40,0,18,0\n42,0,32,0,7,0,43,0,14,0,61,0\n74,0,3,0,55,0,71,0,79,0,11,0\n73,0,17,0,34,0,15,0,66,0,45,0\n35,0,16,0,72,0,54,0,30,0,37,0\n51,0,4,0,25,0,39,0,12,0,50,0\n67,0,70,0,38,0,20,0,49,0,21,0\n8,0,18,0,44,0,59,0,52,0,46,0\n78,0,24,0,5,0,62,0,60,0,64,0\n41,0,1,0,19,0,9,0,56,0,31,0\n58,0,48,0,63,0,43,0,71,0,34,0\n7,0,29,0,68,0,10,0,22,0,55,0\n74,0,36,0,35,0,6,0,23,0,80,0\n13,0,45,0,76,0,72,0,2,0,42,0\n66,0,53,0,30,0,26,0,79,0,47,0\n37,0,51,0,77,0,27,0,17,0,33,0\n28,0,39,0,16,0,14,0,15,0,3,0\n69,0,61,0,11,0,65,0,57,0,40,0\n73,0,75,0,63,0,54,0,32,0,5,0\n25,0,58,0,18,0,38,0,10,0,19,0\n20,0,31,0,35,0,4,0,78,0,7,0\n80,0,60,0,47,0,72,0,44,0,29,0\n36,0,64,0,21,0,2,0,53,0,48,0\n22,0,45,0,14,0,51,0,62,0,26,0\n57,0,37,0,59,0,9,0,12,0,23,0\n68,0,74,0,27,0,70,0,40,0,30,0\n13,0,1,0,24,0,73,0,43,0,3,0\n61,0,71,0,15,0,76,0,46,0,54,0\n79,0,17,0,65,0,50,0,32,0,52,0\n75,0,56,0,33,0,39,0,49,0,55,0\n16,0,34,0,67,0,77,0,69,0,41,0\n8,0,6,0,66,0,42,0,28,0,11,0\n"
  },
  {
    "path": "schedules/80_7.csv",
    "content": "30,0,72,0,55,0,56,0,59,0,80,0\n29,0,26,0,42,0,36,0,79,0,24,0\n37,0,14,0,47,0,41,0,49,0,28,0\n70,0,22,0,23,0,4,0,10,0,51,0\n48,0,60,0,15,0,2,0,78,0,54,0\n11,0,46,0,16,0,53,0,18,0,58,0\n71,0,77,0,38,0,57,0,31,0,27,0\n34,0,50,0,6,0,17,0,63,0,3,0\n52,0,32,0,33,0,65,0,69,0,12,0\n13,0,74,0,45,0,62,0,8,0,61,0\n19,0,76,0,43,0,35,0,73,0,75,0\n64,0,39,0,67,0,66,0,21,0,25,0\n68,0,1,0,5,0,44,0,20,0,9,0\n7,0,23,0,41,0,40,0,60,0,59,0\n63,0,38,0,22,0,55,0,2,0,42,0\n10,0,30,0,36,0,14,0,17,0,46,0\n4,0,8,0,79,0,32,0,58,0,72,0\n45,0,75,0,69,0,71,0,70,0,37,0\n78,0,25,0,27,0,19,0,51,0,47,0\n73,0,6,0,11,0,31,0,13,0,1,0\n54,0,18,0,9,0,33,0,35,0,67,0\n80,0,21,0,20,0,29,0,52,0,49,0\n62,0,64,0,68,0,3,0,28,0,26,0\n66,0,77,0,53,0,34,0,76,0,12,0\n5,0,24,0,50,0,56,0,39,0,15,0\n44,0,16,0,74,0,57,0,7,0,43,0\n61,0,65,0,11,0,40,0,48,0,51,0\n67,1,4,0,73,0,79,1,38,0,46,0\n23,1,19,0,45,0,2,1,22,0,6,0\n80,0,32,0,25,0,60,0,31,0,26,0\n36,0,49,0,58,0,1,0,62,0,69,0\n55,0,71,0,54,0,50,0,20,0,64,0\n59,0,14,0,5,0,43,0,29,0,34,0\n33,0,56,0,61,0,68,0,41,0,77,0\n9,0,12,0,17,0,16,0,47,0,15,0\n28,0,7,0,70,0,72,0,27,0,24,0\n35,0,53,0,52,0,13,0,10,0,78,0\n3,0,74,0,40,0,21,0,42,0,75,0\n63,0,65,0,37,0,44,0,39,0,76,0\n18,0,66,0,30,0,8,0,48,0,57,0\n38,0,60,0,45,0,11,0,34,0,36,0\n73,0,32,0,68,0,23,0,49,0,50,0\n58,0,12,0,31,0,5,0,28,0,61,0\n72,0,69,0,29,0,51,0,77,0,35,0\n33,0,2,0,43,0,1,0,17,0,40,0\n39,0,3,0,14,0,79,0,54,0,13,0\n24,0,66,0,55,0,44,0,46,0,52,0\n10,0,21,0,37,0,56,0,16,0,27,0\n8,0,78,0,26,0,9,0,65,0,59,0\n42,0,20,0,67,0,30,0,76,0,47,0\n63,0,15,0,70,0,19,0,74,0,18,0\n62,0,7,0,71,0,6,0,48,0,25,0\n53,0,57,0,4,0,80,0,41,0,64,0\n22,0,28,0,17,0,75,0,66,0,79,0\n51,0,49,0,3,0,33,0,45,0,55,0\n46,0,23,0,1,0,21,0,65,0,72,0\n39,0,40,0,38,0,68,0,20,0,16,0\n27,0,43,0,26,0,52,0,11,0,15,0\n34,0,25,0,24,0,10,0,74,0,58,0\n77,0,4,0,30,0,19,0,9,0,7,0\n78,0,57,0,6,0,75,0,32,0,5,0\n36,0,18,0,41,0,76,0,2,0,71,0\n56,0,53,0,48,0,73,0,14,0,69,0\n54,0,31,0,47,0,62,0,29,0,63,0\n59,0,61,0,35,0,64,0,22,0,37,0\n13,0,12,0,50,0,42,0,60,0,70,0\n8,0,67,0,11,0,44,0,80,0,77,0\n15,0,23,0,33,0,75,0,30,0,20,0\n5,0,10,0,26,0,45,0,40,0,18,0\n1,0,32,0,28,0,19,0,39,0,71,0\n56,0,7,0,58,0,38,0,65,0,66,0\n3,0,2,0,59,0,73,0,25,0,52,0\n46,0,51,0,57,0,37,0,54,0,12,0\n44,0,48,0,36,0,50,0,22,0,47,0\n31,0,41,0,34,0,35,0,8,0,70,0\n17,0,67,0,69,0,24,0,78,0,68,0\n49,0,13,0,64,0,63,0,72,0,16,0\n4,0,60,0,76,0,29,0,74,0,27,0\n9,0,80,0,42,0,6,0,61,0,14,0\n79,0,21,0,62,0,43,0,55,0,53,0\n12,0,20,0,48,0,10,0,59,0,19,0\n5,0,66,0,3,0,36,0,37,0,23,0\n47,0,58,0,35,0,68,0,15,0,57,0\n72,0,22,0,40,0,52,0,67,0,31,0\n41,0,54,0,44,0,73,0,17,0,45,0\n28,0,16,0,50,0,69,0,80,0,2,0\n64,0,65,0,79,0,77,0,60,0,6,0\n9,0,56,0,75,0,46,0,25,0,49,0\n74,0,1,0,26,0,30,0,38,0,53,0\n11,0,42,0,62,0,33,0,39,0,70,0\n18,0,29,0,13,0,7,0,55,0,32,0\n76,0,51,0,14,0,8,0,21,0,24,0\n63,0,71,0,61,0,4,0,78,0,43,0\n27,0,79,0,2,0,34,0,67,0,23,0\n"
  },
  {
    "path": "schedules/80_8.csv",
    "content": "55,0,43,0,54,0,80,0,46,0,72,0\n4,0,19,0,60,0,28,0,17,0,49,0\n37,0,13,0,18,0,12,0,51,0,38,0\n11,0,8,0,16,0,76,0,77,0,75,0\n32,0,71,0,20,0,3,0,63,0,52,0\n5,0,41,0,56,0,31,0,45,0,61,0\n48,0,39,0,34,0,66,0,68,0,10,0\n59,0,33,0,2,0,6,0,1,0,14,0\n42,0,27,0,26,0,69,0,58,0,21,0\n70,0,50,0,29,0,15,0,23,0,24,0\n53,0,22,0,30,0,62,0,36,0,44,0\n65,0,35,0,40,0,25,0,79,0,78,0\n7,0,67,0,74,0,47,0,64,0,57,0\n9,0,45,0,20,0,73,0,34,0,4,0\n75,0,59,0,37,0,3,0,72,0,49,0\n13,0,5,0,14,0,76,0,58,0,32,0\n2,0,28,0,80,0,10,0,50,0,61,0\n38,0,46,0,53,0,77,0,17,0,70,0\n19,0,40,0,15,0,54,0,39,0,6,0\n30,0,29,0,71,0,21,0,65,0,57,0\n42,0,74,0,63,0,9,0,44,0,66,0\n8,0,55,0,47,0,31,0,78,0,60,0\n52,0,35,0,26,0,51,0,22,0,43,0\n48,0,79,0,41,0,11,0,1,0,12,0\n64,0,69,0,33,0,23,0,18,0,73,0\n24,0,62,0,56,0,27,0,67,0,25,0\n68,0,36,0,28,0,7,0,16,0,71,0\n74,1,37,0,32,0,34,1,30,0,54,0\n61,0,17,0,39,0,21,0,14,0,75,0\n31,0,53,0,66,0,29,0,59,0,43,0\n4,0,35,0,38,0,47,0,1,0,42,0\n72,0,33,0,44,0,76,0,57,0,20,0\n13,0,26,0,50,0,55,0,73,0,48,0\n51,0,46,0,27,0,40,0,16,0,41,0\n60,0,3,0,9,0,80,0,69,0,12,0\n64,0,45,0,79,0,8,0,63,0,24,0\n18,0,36,0,15,0,49,0,2,0,67,0\n70,0,62,0,58,0,65,0,11,0,6,0\n23,0,7,0,22,0,25,0,5,0,10,0\n52,0,68,0,77,0,19,0,78,0,56,0\n71,0,73,0,35,0,41,0,34,0,17,0\n31,0,3,0,50,0,33,0,21,0,16,0\n39,0,59,0,12,0,64,0,55,0,42,0\n45,0,1,0,75,0,60,0,36,0,32,0\n66,0,80,0,11,0,18,0,40,0,57,0\n23,0,51,0,72,0,58,0,53,0,47,0\n38,0,76,0,49,0,9,0,68,0,29,0\n5,0,70,0,37,0,44,0,2,0,52,0\n48,0,27,0,8,0,19,0,22,0,20,0\n74,0,26,0,54,0,28,0,24,0,65,0\n63,0,15,0,7,0,62,0,61,0,13,0\n43,0,6,0,30,0,77,0,69,0,25,0\n14,0,56,0,10,0,79,0,4,0,46,0\n78,0,39,0,23,0,67,0,80,0,71,0\n70,0,36,0,76,0,64,0,21,0,40,0\n44,0,34,0,3,0,1,0,55,0,27,0\n8,0,49,0,51,0,50,0,5,0,54,0\n31,0,35,0,72,0,2,0,13,0,68,0\n24,0,73,0,57,0,75,0,42,0,53,0\n43,0,58,0,74,0,20,0,10,0,60,0\n59,0,18,0,9,0,77,0,41,0,62,0\n12,0,25,0,26,0,19,0,45,0,46,0\n56,0,32,0,33,0,48,0,28,0,47,0\n69,0,4,0,29,0,37,0,11,0,63,0\n65,0,17,0,16,0,66,0,52,0,15,0\n61,0,6,0,67,0,38,0,79,0,22,0\n78,0,30,0,75,0,14,0,7,0,51,0\n58,0,44,0,24,0,18,0,31,0,39,0\n1,0,62,0,76,0,19,0,73,0,74,0\n47,0,70,0,10,0,13,0,71,0,12,0\n27,0,54,0,57,0,45,0,68,0,59,0\n20,0,49,0,53,0,69,0,35,0,56,0\n77,0,66,0,2,0,23,0,3,0,79,0\n4,0,16,0,61,0,64,0,78,0,43,0\n36,0,41,0,38,0,55,0,63,0,65,0\n48,0,60,0,6,0,7,0,37,0,46,0\n11,0,17,0,30,0,33,0,26,0,5,0\n80,0,32,0,34,0,42,0,22,0,29,0\n25,0,21,0,15,0,8,0,28,0,72,0\n40,0,14,0,52,0,9,0,50,0,67,0\n49,0,79,0,31,0,27,0,71,0,74,0\n16,0,19,0,55,0,57,0,35,0,70,0\n75,0,54,0,2,0,48,0,62,0,69,0\n46,0,20,0,66,0,30,0,13,0,24,0\n42,0,65,0,10,0,18,0,3,0,76,0\n23,0,11,0,21,0,43,0,32,0,38,0\n64,0,56,0,15,0,34,0,60,0,26,0\n9,0,7,0,8,0,33,0,39,0,53,0\n12,0,78,0,72,0,5,0,6,0,63,0\n45,0,17,0,40,0,22,0,37,0,58,0\n77,0,67,0,51,0,1,0,29,0,28,0\n41,0,25,0,68,0,50,0,44,0,4,0\n61,0,47,0,73,0,36,0,52,0,59,0\n14,0,62,0,49,0,80,0,26,0,16,0\n54,0,11,0,42,0,31,0,7,0,20,0\n63,0,76,0,60,0,27,0,35,0,23,0\n57,0,3,0,22,0,13,0,56,0,39,0\n33,0,78,0,45,0,10,0,15,0,38,0\n18,0,17,0,55,0,68,0,6,0,74,0\n19,0,50,0,47,0,75,0,34,0,79,0\n64,0,28,0,58,0,30,0,52,0,41,0\n32,0,25,0,61,0,66,0,51,0,70,0\n1,0,43,0,24,0,71,0,37,0,9,0\n21,0,48,0,80,0,5,0,4,0,53,0\n59,0,65,0,69,0,44,0,46,0,67,0\n12,0,29,0,2,0,73,0,8,0,40,0\n77,0,14,0,34,0,36,0,72,0,74,0\n"
  },
  {
    "path": "schedules/80_9.csv",
    "content": "35,0,22,0,73,0,80,0,34,0,60,0\n28,0,41,0,8,0,12,0,64,0,10,0\n49,0,58,0,72,0,47,0,21,0,17,0\n45,0,78,0,29,0,14,0,4,0,31,0\n62,0,32,0,57,0,55,0,18,0,79,0\n15,0,56,0,67,0,44,0,52,0,76,0\n43,0,25,0,9,0,59,0,71,0,50,0\n24,0,30,0,11,0,36,0,7,0,51,0\n61,0,63,0,66,0,74,0,42,0,16,0\n46,0,20,0,37,0,6,0,3,0,1,0\n19,0,26,0,39,0,27,0,48,0,33,0\n69,0,68,0,54,0,5,0,65,0,13,0\n23,0,53,0,77,0,2,0,38,0,40,0\n70,0,29,0,56,0,75,0,10,0,25,0\n52,0,59,0,7,0,47,0,45,0,79,0\n14,0,11,0,55,0,73,0,76,0,49,0\n50,0,6,0,16,0,28,0,22,0,78,0\n60,0,42,0,9,0,58,0,1,0,36,0\n69,0,13,0,20,0,61,0,26,0,44,0\n4,0,66,0,38,0,51,0,71,0,62,0\n12,0,3,0,77,0,39,0,35,0,72,0\n68,0,23,0,27,0,75,0,43,0,41,0\n19,0,64,0,31,0,32,0,24,0,53,0\n15,0,33,0,2,0,54,0,70,0,37,0\n48,0,34,0,5,0,57,0,8,0,74,0\n65,0,67,0,21,0,30,0,17,0,46,0\n18,0,40,0,4,0,63,0,80,0,11,0\n51,0,13,0,1,0,72,0,79,0,29,0\n78,0,12,0,73,0,44,0,71,0,7,0\n60,0,28,0,68,0,52,0,24,0,39,0\n53,0,76,0,26,0,70,0,41,0,66,0\n6,0,38,0,69,0,8,0,25,0,49,0\n9,0,55,0,22,0,64,0,2,0,48,0\n23,0,62,0,36,0,33,0,65,0,59,0\n80,0,58,0,5,0,10,0,27,0,15,0\n57,0,17,0,77,0,14,0,63,0,20,0\n75,0,74,0,35,0,50,0,21,0,45,0\n32,0,30,0,40,0,61,0,43,0,3,0\n18,0,16,0,34,0,67,0,19,0,37,0\n56,0,47,0,54,0,46,0,31,0,42,0\n2,0,59,0,6,0,13,0,24,0,73,0\n64,0,58,0,7,0,68,0,26,0,62,0\n41,0,22,0,17,0,11,0,33,0,39,0\n35,0,79,0,15,0,9,0,4,0,69,0\n40,0,70,0,44,0,72,0,57,0,36,0\n25,0,3,0,60,0,55,0,74,0,5,0\n71,0,49,0,1,0,54,0,61,0,53,0\n14,0,75,0,48,0,52,0,16,0,46,0\n43,0,21,0,10,0,19,0,77,0,66,0\n12,0,47,0,50,0,67,0,32,0,63,0\n20,0,80,0,51,0,78,0,23,0,8,0\n45,0,27,0,37,0,56,0,76,0,30,0\n42,0,34,0,65,0,29,0,18,0,38,0\n28,0,72,0,11,0,31,0,9,0,62,0\n14,0,5,0,46,0,33,0,40,0,7,0\n52,0,1,0,43,0,73,0,57,0,69,0\n39,0,71,0,63,0,58,0,70,0,55,0\n41,0,51,0,25,0,54,0,44,0,3,0\n6,0,36,0,13,0,80,0,47,0,19,0\n20,0,76,0,48,0,24,0,38,0,50,0\n23,0,49,0,56,0,35,0,16,0,64,0\n27,0,30,0,31,0,66,0,12,0,18,0\n10,0,34,0,2,0,45,0,17,0,68,0\n61,0,21,0,15,0,59,0,60,0,29,0\n67,0,42,0,78,0,53,0,8,0,79,0\n77,0,65,0,26,0,28,0,37,0,74,0\n22,0,4,0,44,0,75,0,32,0,58,0\n40,0,62,0,24,0,41,0,56,0,1,0\n6,0,9,0,66,0,18,0,57,0,33,0\n73,0,70,0,45,0,64,0,20,0,38,0\n16,0,43,0,51,0,76,0,60,0,2,0\n35,0,17,0,36,0,78,0,5,0,52,0\n13,0,50,0,15,0,46,0,8,0,77,0\n29,0,54,0,7,0,55,0,39,0,67,0\n61,0,65,0,79,0,19,0,25,0,12,0\n71,0,34,0,14,0,32,0,27,0,21,0\n63,0,72,0,22,0,26,0,10,0,23,0\n28,0,3,0,80,0,48,0,42,0,49,0\n30,0,68,0,74,0,47,0,53,0,4,0\n37,0,75,0,69,0,11,0,31,0,59,0\n8,0,73,0,58,0,16,0,77,0,29,0\n13,0,38,0,41,0,35,0,7,0,60,0\n39,0,25,0,40,0,21,0,62,0,76,0\n18,0,36,0,20,0,22,0,15,0,71,0\n44,0,28,0,45,0,63,0,19,0,1,0\n4,0,48,0,12,0,56,0,17,0,53,0\n33,0,42,0,10,0,69,0,55,0,30,0\n67,0,5,0,68,0,49,0,51,0,70,0\n11,0,64,0,57,0,27,0,61,0,50,0\n52,0,74,0,54,0,59,0,32,0,80,0\n31,0,43,0,79,0,26,0,6,0,34,0\n78,0,75,0,66,0,65,0,3,0,2,0\n24,0,14,0,37,0,47,0,9,0,23,0\n46,0,71,0,60,0,72,0,19,0,69,0\n18,0,21,0,41,0,56,0,73,0,48,0\n8,0,63,0,76,0,68,0,35,0,1,0\n32,0,64,0,33,0,13,0,25,0,42,0\n16,0,30,0,38,0,11,0,44,0,5,0\n62,0,77,0,67,0,45,0,61,0,22,0\n39,0,2,0,74,0,14,0,36,0,79,0\n10,0,51,0,58,0,65,0,31,0,40,0\n23,0,28,0,50,0,66,0,17,0,29,0\n3,0,27,0,52,0,4,0,6,0,70,0\n24,0,47,0,55,0,34,0,75,0,15,0\n59,0,57,0,78,0,46,0,26,0,49,0\n72,0,53,0,80,0,37,0,7,0,43,0\n54,0,12,0,21,0,9,0,20,0,16,0\n48,0,77,0,1,0,25,0,11,0,67,0\n32,0,56,0,14,0,69,0,28,0,51,0\n42,0,2,0,19,0,52,0,50,0,62,0\n79,0,33,0,3,0,38,0,68,0,71,0\n10,0,76,0,47,0,61,0,78,0,18,0\n7,0,74,0,31,0,70,0,23,0,22,0\n80,0,45,0,24,0,57,0,12,0,58,0\n63,0,29,0,46,0,64,0,36,0,43,0\n30,0,8,0,26,0,75,0,54,0,60,0\n73,0,39,0,66,0,15,0,5,0,37,0\n9,0,17,0,49,0,40,0,13,0,27,0\n53,0,55,0,44,0,65,0,35,0,6,0\n59,0,4,0,72,0,41,0,20,0,34,0\n"
  },
  {
    "path": "schedules/81_1.csv",
    "content": "4,0,19,0,77,0,53,0,69,0,24,0\n58,0,11,0,61,0,57,0,16,0,37,0\n17,0,56,0,6,0,35,0,62,0,76,0\n14,0,33,0,72,0,38,0,70,0,42,0\n49,0,67,0,47,0,36,0,55,0,43,0\n3,0,60,0,68,0,2,0,30,0,80,0\n5,0,15,0,22,0,10,0,50,0,73,0\n18,0,9,0,34,0,66,0,32,0,21,0\n74,0,20,0,48,0,44,0,27,0,1,0\n52,0,63,0,64,0,31,0,12,0,26,0\n59,0,75,0,45,0,29,0,25,0,41,0\n65,0,8,0,40,0,71,0,46,0,28,0\n23,0,13,0,51,0,81,0,54,0,39,0\n78,0,79,0,33,1,7,0,15,1,62,1\n"
  },
  {
    "path": "schedules/81_10.csv",
    "content": "53,0,61,0,81,0,26,0,34,0,18,0\n42,0,33,0,8,0,2,0,59,0,74,0\n73,0,79,0,32,0,6,0,43,0,11,0\n28,0,15,0,48,0,67,0,46,0,69,0\n21,0,62,0,9,0,20,0,44,0,75,0\n40,0,54,0,77,0,25,0,7,0,13,0\n57,0,71,0,63,0,30,0,35,0,19,0\n72,0,68,0,31,0,1,0,38,0,58,0\n65,0,24,0,41,0,27,0,23,0,3,0\n12,0,4,0,47,0,50,0,49,0,37,0\n70,0,64,0,80,0,60,0,36,0,66,0\n14,0,10,0,16,0,55,0,22,0,52,0\n76,0,5,0,39,0,51,0,29,0,45,0\n78,0,17,0,44,0,56,0,73,0,69,0\n62,0,26,0,20,0,58,0,35,0,79,0\n54,0,3,0,43,0,2,0,63,0,61,0\n49,0,68,0,81,0,75,0,42,0,30,0\n71,0,66,0,4,0,48,0,72,0,34,0\n53,0,6,0,52,0,24,0,11,0,13,0\n76,0,1,0,7,0,64,0,39,0,14,0\n47,0,38,0,57,0,28,0,41,0,60,0\n56,0,18,0,59,0,16,0,46,0,23,0\n15,0,55,0,50,0,74,0,31,0,27,0\n65,0,9,0,67,0,8,0,5,0,80,0\n78,0,12,0,36,0,40,0,22,0,32,0\n29,0,37,0,19,0,25,0,51,0,17,0\n77,0,45,0,21,0,33,0,70,0,10,0\n72,0,2,0,44,0,63,0,13,0,14,0\n38,0,20,0,69,0,24,0,61,0,66,0\n31,0,76,0,34,0,75,0,79,0,57,0\n56,0,53,0,5,0,35,0,7,0,42,0\n55,0,41,0,48,0,26,0,12,0,80,0\n18,0,17,0,30,0,50,0,58,0,32,0\n8,0,10,0,27,0,54,0,46,0,49,0\n37,0,36,0,77,0,21,0,68,0,73,0\n16,0,51,0,78,0,25,0,47,0,9,0\n28,0,71,0,45,0,81,0,23,0,22,0\n62,0,1,0,4,0,52,0,65,0,40,0\n64,0,67,0,29,0,74,0,6,0,70,0\n33,0,15,0,3,0,39,0,19,0,11,0\n60,0,59,0,50,0,43,0,48,0,56,0\n38,0,44,0,55,0,37,0,76,0,35,0\n69,0,79,0,21,0,80,0,25,0,72,0\n77,0,24,0,57,0,8,0,61,0,78,0\n2,0,9,0,30,0,1,0,53,0,22,0\n32,0,28,0,42,0,27,0,51,0,66,0\n31,0,17,0,70,0,12,0,81,0,40,0\n75,0,73,0,33,0,7,0,52,0,18,0\n64,0,23,0,15,0,5,0,68,0,62,0\n10,0,39,0,54,0,47,0,6,0,71,0\n11,0,59,0,4,0,63,0,29,0,20,0\n74,0,13,0,65,0,46,0,45,0,34,0\n14,0,26,0,49,0,60,0,3,0,16,0\n41,0,58,0,43,0,67,0,19,0,36,0\n25,0,50,0,24,0,81,0,80,0,2,0\n70,0,9,0,48,0,32,0,37,0,68,0\n55,0,57,0,53,0,33,0,64,0,51,0\n7,0,23,0,79,0,78,0,4,0,10,0\n45,0,61,0,59,0,1,0,73,0,15,0\n20,0,72,0,52,0,77,0,17,0,39,0\n13,0,60,0,19,0,18,0,69,0,5,0\n31,0,71,0,8,0,44,0,26,0,29,0\n66,0,6,0,28,0,30,0,62,0,16,0\n12,0,42,0,58,0,65,0,11,0,54,0\n49,0,22,0,43,0,38,0,34,0,21,0\n46,0,63,0,74,0,41,0,75,0,40,0\n56,0,67,0,27,0,14,0,36,0,76,0\n3,0,35,0,32,0,47,0,72,0,23,0\n13,0,64,0,81,0,4,0,9,0,73,0\n25,0,5,0,66,0,26,0,59,0,10,0\n65,0,61,0,28,0,7,0,55,0,70,0\n22,0,18,0,11,0,62,0,37,0,57,0\n79,0,68,0,19,0,50,0,40,0,45,0\n34,0,39,0,56,0,58,0,63,0,80,0\n78,0,21,0,41,0,15,0,2,0,29,0\n20,0,14,0,6,0,8,0,51,0,12,0\n38,0,46,0,43,0,3,0,71,0,1,0\n69,0,47,0,76,0,52,0,42,0,74,0\n17,0,24,0,35,0,31,0,49,0,67,0\n16,0,77,0,75,0,48,0,27,0,53,0\n33,0,36,0,30,0,60,0,44,0,54,0\n65,0,15,0,57,0,26,0,56,0,32,0\n78,0,20,0,11,0,55,0,19,0,81,0\n79,0,29,0,9,0,14,0,23,0,28,0\n40,0,3,0,37,0,69,0,59,0,34,0\n42,0,13,0,62,0,50,0,71,0,70,0\n48,0,8,0,73,0,38,0,25,0,39,0\n5,0,27,0,33,0,80,0,47,0,30,0\n68,0,43,0,10,0,53,0,74,0,17,0\n45,0,7,0,58,0,44,0,41,0,16,0\n22,0,72,0,75,0,64,0,24,0,54,0\n52,0,46,0,36,0,51,0,2,0,35,0\n67,0,12,0,1,0,18,0,77,0,66,0\n60,0,4,0,21,0,61,0,6,0,31,0\n63,0,49,0,23,0,76,0,33,0,48,0\n40,0,42,0,10,0,20,0,73,0,57,0\n69,0,30,0,7,0,43,0,62,0,29,0\n26,0,38,0,45,0,9,0,27,0,17,0\n35,0,80,0,14,0,78,0,54,0,74,0\n53,0,37,0,2,0,39,0,79,0,67,0\n75,0,55,0,58,0,13,0,8,0,66,0\n19,0,22,0,77,0,4,0,31,0,46,0\n61,0,64,0,25,0,32,0,41,0,71,0\n51,0,24,0,60,0,21,0,1,0,63,0\n81,0,6,0,65,0,72,0,59,0,76,0\n49,0,47,0,70,0,44,0,18,0,15,0\n56,0,12,0,52,0,28,0,68,0,3,0\n34,0,36,0,11,0,50,0,16,0,5,0\n67,0,30,0,54,0,45,0,55,0,4,0\n78,0,27,0,75,0,43,0,37,0,39,0\n40,0,71,0,58,0,33,0,14,0,24,0\n32,0,8,0,23,0,19,0,21,0,53,0\n47,0,66,0,2,0,73,0,31,0,65,0\n51,0,13,0,38,0,10,0,81,0,56,0\n76,0,11,0,50,0,77,0,28,0,26,0\n49,0,74,0,1,0,36,0,20,0,5,0\n15,0,17,0,63,0,16,0,64,0,79,0\n80,0,68,0,7,0,57,0,3,0,59,0\n35,0,18,0,6,0,9,0,69,0,41,0\n22,0,61,0,44,0,42,0,29,0,48,0\n46,0,60,0,25,0,12,0,72,0,62,0\n70,0,19,0,26,0,52,0,34,0,54,0\n2,0,40,0,39,0,28,0,49,0,55,0\n16,0,20,0,31,0,13,0,43,0,33,0\n59,0,79,0,81,0,36,0,21,0,47,0\n5,0,32,0,75,0,38,0,4,0,14,0\n51,0,69,0,63,0,71,0,65,0,77,0\n66,0,9,0,50,0,7,0,57,0,46,0\n74,0,72,0,37,0,56,0,61,0,62,0\n80,0,42,0,23,0,17,0,6,0,1,0\n45,0,18,0,3,0,48,0,78,0,64,0\n52,0,29,0,73,0,60,0,58,0,53,0\n41,0,11,0,35,0,22,0,70,0,8,0\n27,0,25,0,34,0,68,0,67,0,44,0\n24,0,12,0,10,0,15,0,76,0,30,0\n"
  },
  {
    "path": "schedules/81_11.csv",
    "content": "1,0,67,0,81,0,36,0,35,0,16,0\n10,0,63,0,17,0,79,0,5,0,48,0\n43,0,73,0,30,0,28,0,25,0,12,0\n80,0,55,0,27,0,52,0,76,0,14,0\n34,0,3,0,75,0,57,0,22,0,50,0\n69,0,29,0,61,0,24,0,45,0,33,0\n68,0,78,0,77,0,62,0,49,0,38,0\n32,0,66,0,11,0,53,0,72,0,20,0\n42,0,6,0,15,0,37,0,65,0,51,0\n31,0,44,0,4,0,70,0,58,0,18,0\n13,0,46,0,60,0,41,0,54,0,8,0\n39,0,47,0,71,0,9,0,64,0,74,0\n7,0,23,0,59,0,21,0,56,0,40,0\n19,0,2,0,22,0,26,0,52,0,35,0\n11,0,24,0,79,0,73,0,50,0,55,0\n81,0,10,0,45,0,15,0,25,0,3,0\n30,0,18,0,78,0,80,0,69,0,63,0\n12,0,4,0,48,0,6,0,14,0,54,0\n64,0,51,0,61,0,75,0,1,0,43,0\n72,0,39,0,37,0,16,0,62,0,17,0\n20,0,28,0,34,0,23,0,41,0,31,0\n13,0,9,0,56,0,65,0,32,0,2,0\n33,0,40,0,5,0,26,0,21,0,38,0\n53,0,71,0,70,0,29,0,8,0,76,0\n57,0,77,0,46,0,44,0,59,0,27,0\n74,0,47,0,68,0,58,0,60,0,19,0\n49,0,42,0,66,0,7,0,36,0,67,0\n10,1,4,0,37,0,28,1,43,0,78,0\n80,0,31,0,39,0,51,1,48,0,25,0\n15,0,32,0,17,0,34,0,14,0,30,0\n61,0,3,0,12,0,35,0,21,0,29,0\n24,0,46,0,73,0,52,0,71,0,6,0\n38,0,27,0,23,0,79,0,8,0,19,0\n2,0,75,0,41,0,68,0,11,0,63,0\n36,0,5,0,9,0,72,0,18,0,7,0\n81,0,59,0,60,0,64,0,33,0,65,0\n22,0,49,0,53,0,54,0,47,0,62,0\n1,0,58,0,42,0,69,0,57,0,40,0\n20,0,55,0,26,0,45,0,70,0,13,0\n16,0,50,0,76,0,77,0,66,0,44,0\n56,0,67,0,3,0,74,0,43,0,31,0\n19,0,11,0,71,0,28,0,7,0,48,0\n65,0,75,0,73,0,80,0,4,0,23,0\n78,0,64,0,27,0,32,0,36,0,29,0\n17,0,60,0,57,0,15,0,49,0,21,0\n8,0,47,0,72,0,68,0,35,0,51,0\n41,0,69,0,45,0,70,0,66,0,37,0\n56,0,10,0,18,0,55,0,24,0,77,0\n40,0,16,0,54,0,14,0,9,0,20,0\n1,0,12,0,2,0,62,0,58,0,5,0\n38,0,52,0,63,0,61,0,44,0,39,0\n50,0,81,0,26,0,46,0,30,0,42,0\n6,0,67,0,33,0,13,0,34,0,53,0\n79,0,25,0,74,0,22,0,59,0,76,0\n43,0,60,0,48,0,77,0,32,0,45,0\n18,0,35,0,54,0,75,0,17,0,37,0\n16,0,7,0,64,0,69,0,68,0,73,0\n1,0,8,0,44,0,55,0,15,0,78,0\n21,0,20,0,58,0,27,0,81,0,71,0\n52,0,5,0,19,0,53,0,51,0,56,0\n3,0,79,0,4,0,30,0,2,0,66,0\n36,0,47,0,14,0,46,0,63,0,28,0\n76,0,11,0,33,0,22,0,39,0,42,0\n31,0,50,0,62,0,61,0,13,0,23,0\n12,0,67,0,57,0,41,0,26,0,24,0\n9,0,49,0,6,0,80,0,10,0,59,0\n74,0,34,0,29,0,38,0,72,0,65,0\n70,0,25,0,2,0,40,0,60,0,7,0\n21,0,3,0,53,0,37,0,55,0,36,0\n76,0,20,0,63,0,43,0,19,0,15,0\n42,0,61,0,56,0,16,0,27,0,47,0\n17,0,68,0,28,0,22,0,24,0,1,0\n33,0,31,0,77,0,78,0,12,0,52,0\n59,0,54,0,58,0,73,0,26,0,34,0\n72,0,13,0,75,0,79,0,46,0,69,0\n81,0,40,0,11,0,8,0,6,0,74,0\n25,0,49,0,29,0,14,0,41,0,4,0\n51,0,32,0,18,0,50,0,45,0,39,0\n23,0,66,0,65,0,5,0,71,0,10,0\n62,0,44,0,9,0,67,0,48,0,30,0\n57,0,70,0,64,0,35,0,80,0,38,0\n27,0,7,0,63,0,33,0,37,0,34,0\n15,0,26,0,77,0,69,0,47,0,75,0\n28,0,13,0,52,0,81,0,3,0,49,0\n20,0,79,0,39,0,60,0,12,0,56,0\n2,0,53,0,24,0,23,0,14,0,78,0\n18,0,6,0,61,0,67,0,76,0,68,0\n25,0,9,0,35,0,66,0,5,0,46,0\n1,0,64,0,50,0,19,0,70,0,72,0\n22,0,65,0,55,0,48,0,41,0,40,0\n45,0,8,0,59,0,16,0,58,0,30,0\n10,0,21,0,42,0,54,0,73,0,29,0\n71,0,44,0,43,0,80,0,17,0,11,0\n57,0,36,0,51,0,74,0,62,0,4,0\n32,0,38,0,79,0,31,0,37,0,7,0\n72,0,60,0,67,0,28,0,27,0,6,0\n1,0,18,0,48,0,33,0,49,0,56,0\n15,0,5,0,41,0,39,0,59,0,24,0\n47,0,70,0,22,0,78,0,16,0,10,0\n21,0,68,0,50,0,25,0,63,0,65,0\n20,0,73,0,17,0,36,0,74,0,2,0\n45,0,42,0,38,0,46,0,4,0,53,0\n35,0,31,0,69,0,55,0,71,0,62,0\n14,0,61,0,19,0,57,0,81,0,66,0\n58,0,75,0,29,0,9,0,52,0,43,0\n76,0,34,0,51,0,13,0,40,0,12,0\n30,0,54,0,11,0,77,0,23,0,64,0\n8,0,32,0,26,0,80,0,44,0,3,0\n2,0,38,0,59,0,28,0,10,0,1,0\n72,0,45,0,22,0,73,0,56,0,63,0\n15,0,71,0,33,0,70,0,79,0,36,0\n62,0,18,0,66,0,27,0,43,0,21,0\n69,0,9,0,17,0,53,0,81,0,76,0\n74,0,5,0,30,0,54,0,75,0,55,0\n80,0,37,0,40,0,50,0,12,0,47,0\n46,0,11,0,78,0,3,0,65,0,58,0\n29,0,26,0,16,0,31,0,51,0,60,0\n34,0,48,0,49,0,61,0,24,0,8,0\n23,0,57,0,19,0,32,0,25,0,6,0\n14,0,68,0,44,0,39,0,35,0,13,0\n52,0,20,0,64,0,67,0,42,0,4,0\n41,0,7,0,74,0,77,0,50,0,53,0\n59,0,43,0,36,0,69,0,2,0,54,0\n12,0,16,0,38,0,18,0,15,0,11,0\n73,0,62,0,48,0,70,0,29,0,81,0\n49,0,63,0,23,0,51,0,58,0,55,0\n66,0,26,0,78,0,6,0,17,0,56,0\n46,0,40,0,67,0,19,0,10,0,39,0\n35,0,28,0,41,0,32,0,27,0,76,0\n80,0,33,0,68,0,3,0,5,0,20,0\n31,0,14,0,72,0,42,0,75,0,8,0\n9,0,77,0,79,0,21,0,34,0,1,0\n52,0,7,0,65,0,45,0,47,0,57,0\n4,0,22,0,30,0,71,0,60,0,61,0\n25,0,37,0,24,0,44,0,64,0,13,0\n29,0,28,0,66,0,40,0,18,0,63,0\n39,0,51,0,27,0,54,0,70,0,3,0\n23,0,16,0,74,0,46,0,12,0,49,0\n41,0,43,0,55,0,81,0,9,0,33,0\n32,0,47,0,73,0,69,0,5,0,67,0\n7,0,58,0,80,0,15,0,22,0,61,0\n57,0,10,0,52,0,72,0,68,0,30,0\n37,0,14,0,26,0,65,0,1,0,71,0\n60,0,24,0,76,0,36,0,75,0,38,0\n77,0,8,0,13,0,19,0,17,0,4,0\n35,0,50,0,48,0,20,0,59,0,78,0\n56,0,34,0,62,0,25,0,11,0,42,0\n2,0,21,0,6,0,45,0,64,0,31,0\n53,0,44,0,28,0,79,0,10,0,51,0\n"
  },
  {
    "path": "schedules/81_12.csv",
    "content": "68,0,58,0,64,0,81,0,35,0,23,0\n55,0,57,0,16,0,61,0,19,0,28,0\n21,0,67,0,42,0,78,0,4,0,47,0\n3,0,46,0,1,0,65,0,6,0,71,0\n8,0,50,0,41,0,62,0,77,0,17,0\n34,0,18,0,29,0,72,0,75,0,40,0\n26,0,66,0,10,0,54,0,73,0,36,0\n51,0,48,0,80,0,38,0,45,0,56,0\n14,0,7,0,11,0,43,0,52,0,30,0\n5,0,20,0,59,0,9,0,49,0,60,0\n53,0,33,0,32,0,2,0,76,0,22,0\n31,0,70,0,15,0,27,0,69,0,74,0\n12,0,63,0,44,0,13,0,25,0,24,0\n79,0,37,0,16,0,39,0,75,0,66,0\n23,0,73,0,10,0,57,0,80,0,38,0\n35,0,36,0,64,0,14,0,3,0,19,0\n30,0,81,0,18,0,5,0,62,0,8,0\n78,0,51,0,41,0,65,0,7,0,2,0\n61,0,70,0,11,0,1,0,9,0,29,0\n20,0,43,0,46,0,32,0,40,0,69,0\n27,0,17,0,71,0,56,0,6,0,63,0\n34,0,60,0,47,0,74,0,24,0,49,0\n68,0,25,0,55,0,33,0,42,0,26,0\n77,0,22,0,31,0,52,0,44,0,39,0\n54,0,67,0,53,0,15,0,59,0,48,0\n50,0,45,0,79,0,13,0,76,0,21,0\n12,0,37,0,58,0,72,0,4,0,28,0\n46,0,80,0,78,0,18,0,35,0,63,0\n1,0,64,0,32,0,30,0,49,0,10,0\n26,0,9,0,69,0,2,0,8,0,16,0\n47,0,75,0,27,0,44,0,55,0,73,0\n68,0,5,0,65,0,54,0,19,0,70,0\n43,0,56,0,15,0,21,0,25,0,61,0\n42,0,52,0,36,0,48,0,60,0,76,0\n4,0,12,0,59,0,51,0,3,0,7,0\n50,0,31,0,20,0,66,0,22,0,58,0\n71,0,34,0,79,0,62,0,11,0,33,0\n28,0,81,0,39,0,40,0,74,0,17,0\n67,0,6,0,45,0,37,0,57,0,77,0\n24,0,53,0,38,0,13,0,14,0,29,0\n23,0,41,0,44,0,72,0,32,0,16,0\n2,0,12,0,60,0,47,0,15,0,35,0\n56,0,26,0,51,0,70,0,50,0,30,0\n3,0,48,0,33,0,58,0,43,0,73,0\n4,0,54,0,52,0,34,0,9,0,55,0\n18,0,36,0,61,0,17,0,68,0,31,0\n13,0,19,0,62,0,42,0,37,0,20,0\n29,0,81,0,40,0,80,0,27,0,6,0\n74,0,66,0,71,0,72,0,57,0,7,0\n63,0,69,0,10,0,53,0,65,0,45,0\n78,0,24,0,23,0,75,0,77,0,11,0\n28,0,79,0,21,0,22,0,8,0,64,0\n14,0,49,0,25,0,46,0,41,0,67,0\n1,0,5,0,39,0,76,0,38,0,59,0\n68,0,32,0,60,0,37,0,2,0,27,0\n12,0,56,0,66,0,42,0,81,0,19,0\n40,0,9,0,53,0,44,0,71,0,58,0\n74,0,20,0,61,0,10,0,50,0,52,0\n64,0,33,0,24,0,17,0,4,0,45,0\n72,0,15,0,8,0,75,0,73,0,14,0\n13,0,26,0,47,0,46,0,23,0,39,0\n25,0,80,0,34,0,1,0,69,0,59,0\n16,0,77,0,76,0,3,0,18,0,11,0\n63,0,7,0,29,0,48,0,28,0,62,0\n6,0,54,0,38,0,41,0,43,0,31,0\n65,0,51,0,35,0,22,0,67,0,55,0\n79,0,70,0,78,0,49,0,57,0,36,0\n5,0,30,0,33,0,21,0,74,0,53,0\n4,0,60,0,75,0,80,0,50,0,68,0\n59,0,52,0,14,0,26,0,27,0,1,0\n69,0,48,0,44,0,64,0,66,0,11,0\n41,0,56,0,25,0,18,0,9,0,13,0\n20,0,17,0,38,0,34,0,12,0,15,0\n28,0,35,0,73,0,70,0,77,0,65,0\n21,0,6,0,2,0,62,0,54,0,72,0\n81,0,78,0,37,0,10,0,43,0,22,0\n30,0,55,0,29,0,57,0,79,0,76,0\n8,0,42,0,40,0,3,0,49,0,23,0\n63,0,32,0,31,0,5,0,67,0,19,0\n16,0,36,0,24,0,46,0,51,0,71,0\n39,0,58,0,47,0,45,0,61,0,7,0\n48,0,9,0,6,0,74,0,12,0,14,0\n43,0,18,0,50,0,59,0,44,0,65,0\n70,0,25,0,57,0,53,0,64,0,62,0\n69,0,3,0,22,0,56,0,30,0,68,0\n19,0,76,0,49,0,72,0,80,0,26,0\n42,0,2,0,79,0,34,0,5,0,77,0\n54,0,17,0,58,0,78,0,29,0,32,0\n46,0,75,0,52,0,28,0,33,0,38,0\n35,0,13,0,7,0,16,0,73,0,21,0\n63,0,4,0,55,0,36,0,15,0,39,0\n27,0,45,0,41,0,8,0,20,0,66,0\n61,0,1,0,23,0,67,0,37,0,24,0\n40,0,11,0,10,0,31,0,51,0,60,0\n71,0,76,0,14,0,47,0,81,0,25,0\n12,0,65,0,29,0,74,0,26,0,64,0\n57,0,50,0,75,0,32,0,3,0,54,0\n5,0,43,0,17,0,16,0,4,0,35,0\n52,0,34,0,56,0,8,0,78,0,39,0\n19,0,6,0,69,0,18,0,7,0,23,0\n10,0,13,0,27,0,62,0,58,0,67,0\n47,0,80,0,70,0,37,0,41,0,11,0\n2,0,77,0,66,0,38,0,63,0,49,0\n9,0,68,0,24,0,21,0,48,0,31,0\n1,0,73,0,33,0,40,0,36,0,20,0\n81,0,60,0,79,0,51,0,53,0,61,0\n28,0,71,0,42,0,15,0,30,0,44,0\n45,0,22,0,72,0,59,0,55,0,46,0\n39,0,62,0,43,0,64,0,12,0,80,0\n57,0,63,0,26,0,58,0,69,0,41,0\n76,0,10,0,67,0,6,0,8,0,68,0\n11,0,13,0,20,0,17,0,75,0,21,0\n19,0,9,0,33,0,27,0,78,0,50,0\n70,0,49,0,2,0,81,0,16,0,31,0\n14,0,32,0,36,0,45,0,28,0,34,0\n44,0,72,0,1,0,54,0,79,0,51,0\n74,0,22,0,42,0,18,0,24,0,73,0\n52,0,29,0,15,0,47,0,3,0,5,0\n77,0,53,0,46,0,56,0,55,0,7,0\n37,0,59,0,23,0,71,0,48,0,35,0\n30,0,65,0,38,0,40,0,4,0,25,0\n60,0,61,0,6,0,66,0,13,0,33,0\n21,0,44,0,26,0,34,0,81,0,57,0\n51,0,63,0,39,0,54,0,14,0,20,0\n10,0,32,0,9,0,18,0,79,0,15,0\n45,0,55,0,77,0,1,0,68,0,74,0\n73,0,64,0,19,0,71,0,52,0,41,0\n27,0,5,0,38,0,50,0,7,0,37,0\n40,0,16,0,30,0,78,0,12,0,67,0\n22,0,65,0,48,0,61,0,8,0,47,0\n17,0,72,0,70,0,43,0,42,0,60,0\n24,0,3,0,28,0,53,0,80,0,66,0\n49,0,62,0,75,0,76,0,35,0,69,0\n4,0,31,0,23,0,46,0,56,0,29,0\n58,0,36,0,11,0,25,0,2,0,59,0\n30,0,34,0,37,0,81,0,9,0,63,0\n68,0,16,0,20,0,79,0,6,0,47,0\n55,0,40,0,50,0,48,0,41,0,70,0\n5,0,14,0,57,0,33,0,80,0,65,0\n49,0,13,0,22,0,71,0,43,0,54,0\n61,0,3,0,62,0,38,0,44,0,78,0\n56,0,39,0,72,0,10,0,35,0,24,0\n59,0,32,0,77,0,69,0,12,0,21,0\n7,0,27,0,31,0,75,0,42,0,64,0\n51,0,66,0,17,0,52,0,23,0,53,0\n74,0,11,0,8,0,36,0,4,0,46,0\n45,0,19,0,2,0,73,0,29,0,25,0\n1,0,67,0,60,0,26,0,28,0,18,0\n15,0,76,0,62,0,58,0,65,0,24,0\n56,0,59,0,16,0,63,0,79,0,33,0\n80,0,7,0,9,0,13,0,32,0,55,0\n54,0,47,0,37,0,40,0,64,0,77,0\n66,0,3,0,21,0,14,0,10,0,70,0\n29,0,53,0,41,0,39,0,68,0,42,0\n25,0,74,0,43,0,51,0,23,0,27,0\n18,0,44,0,4,0,2,0,48,0,20,0\n36,0,81,0,72,0,67,0,52,0,69,0\n73,0,76,0,46,0,61,0,34,0,17,0\n11,0,15,0,28,0,50,0,6,0,49,0\n19,0,38,0,58,0,22,0,30,0,60,0\n8,0,35,0,12,0,1,0,57,0,31,0\n71,0,75,0,78,0,26,0,5,0,45,0\n"
  },
  {
    "path": "schedules/81_13.csv",
    "content": "67,0,58,0,51,0,57,0,13,0,12,0\n4,0,48,0,64,0,31,0,21,0,71,0\n65,0,38,0,81,0,54,0,69,0,80,0\n55,0,6,0,24,0,61,0,60,0,18,0\n41,0,76,0,62,0,34,0,53,0,56,0\n14,0,43,0,37,0,78,0,36,0,8,0\n39,0,49,0,7,0,20,0,40,0,5,0\n26,0,66,0,17,0,35,0,46,0,9,0\n75,0,2,0,70,0,19,0,44,0,73,0\n3,0,42,0,15,0,74,0,47,0,29,0\n1,0,72,0,22,0,33,0,10,0,23,0\n77,0,79,0,59,0,50,0,30,0,27,0\n52,0,11,0,16,0,68,0,45,0,28,0\n25,0,32,0,8,0,63,0,39,0,24,0\n36,0,58,0,66,0,34,0,64,0,80,0\n81,0,55,0,78,0,65,0,71,0,73,0\n17,0,75,0,60,0,47,0,41,0,7,0\n56,0,46,0,12,0,14,0,3,0,31,0\n38,0,43,0,40,0,79,0,2,0,30,0\n23,0,61,0,42,0,4,0,5,0,59,0\n35,0,69,0,53,0,37,0,72,0,70,0\n57,0,50,0,19,0,21,0,16,0,20,0\n63,0,74,0,22,0,62,0,18,0,33,0\n67,0,9,0,52,0,6,0,11,0,25,0\n51,0,45,0,32,0,68,0,10,0,1,0\n49,0,77,0,28,0,76,0,15,0,44,0\n13,0,27,0,29,0,48,0,26,0,54,0\n65,1,30,0,42,0,7,1,72,0,38,0\n46,1,36,0,21,0,58,0,5,0,79,0\n74,0,12,0,64,0,40,0,4,0,17,0\n59,0,69,0,23,0,18,0,14,0,80,0\n71,0,33,0,50,0,73,0,70,0,62,0\n34,0,44,0,39,0,16,0,45,0,81,0\n3,0,26,0,27,0,25,0,78,0,1,0\n35,0,63,0,68,0,57,0,29,0,6,0\n47,0,24,0,19,0,76,0,66,0,11,0\n54,0,61,0,32,0,75,0,56,0,28,0\n67,0,15,0,37,0,20,0,55,0,60,0\n48,0,52,0,22,0,51,0,43,0,53,0\n8,0,41,0,10,0,13,0,31,0,77,0\n9,0,2,0,78,0,49,0,62,0,45,0\n68,0,72,0,73,0,26,0,12,0,58,0\n70,0,30,0,38,0,36,0,47,0,25,0\n71,0,29,0,76,0,69,0,44,0,40,0\n19,0,80,0,28,0,67,0,33,0,55,0\n6,0,56,0,16,0,64,0,81,0,27,0\n31,0,39,0,43,0,74,0,51,0,23,0\n20,0,77,0,1,0,61,0,35,0,2,0\n4,0,41,0,79,0,3,0,11,0,37,0\n54,0,22,0,7,0,24,0,9,0,14,0\n75,0,13,0,59,0,34,0,49,0,46,0\n5,0,53,0,8,0,18,0,57,0,15,0\n60,0,66,0,10,0,63,0,48,0,42,0\n50,0,21,0,52,0,32,0,65,0,17,0\n47,0,62,0,28,0,35,0,39,0,27,0\n69,0,56,0,36,0,4,0,74,0,73,0\n58,0,7,0,81,0,77,0,33,0,22,0\n37,0,29,0,19,0,64,0,59,0,61,0\n5,0,44,0,38,0,6,0,53,0,1,0\n2,0,24,0,23,0,63,0,46,0,79,0\n75,0,40,0,10,0,78,0,67,0,57,0\n43,0,34,0,68,0,15,0,60,0,65,0\n17,0,14,0,45,0,80,0,30,0,13,0\n71,0,41,0,20,0,66,0,52,0,18,0\n16,0,26,0,51,0,8,0,3,0,49,0\n32,0,21,0,76,0,42,0,72,0,9,0\n70,0,48,0,55,0,11,0,12,0,54,0\n50,0,31,0,81,0,25,0,53,0,75,0\n62,0,36,0,39,0,10,0,15,0,6,0\n28,0,64,0,57,0,73,0,47,0,23,0\n67,0,2,0,65,0,22,0,66,0,56,0\n37,0,46,0,27,0,49,0,71,0,51,0\n7,0,8,0,63,0,35,0,19,0,58,0\n44,0,79,0,32,0,33,0,74,0,14,0\n4,0,1,0,80,0,70,0,40,0,60,0\n21,0,43,0,55,0,16,0,25,0,13,0\n18,0,42,0,11,0,77,0,54,0,34,0\n48,0,61,0,72,0,50,0,41,0,78,0\n9,0,5,0,30,0,29,0,52,0,31,0\n17,0,68,0,24,0,20,0,3,0,69,0\n76,0,45,0,12,0,59,0,38,0,26,0\n47,0,27,0,80,0,10,0,44,0,53,0\n63,0,56,0,21,0,7,0,43,0,75,0\n23,0,14,0,67,0,71,0,16,0,35,0\n51,0,62,0,77,0,65,0,19,0,4,0\n29,0,39,0,58,0,50,0,60,0,2,0\n37,0,54,0,73,0,30,0,52,0,34,0\n6,0,20,0,46,0,76,0,72,0,8,0\n49,0,70,0,31,0,42,0,68,0,79,0\n26,0,11,0,22,0,36,0,17,0,61,0\n40,0,57,0,55,0,41,0,33,0,45,0\n78,0,12,0,5,0,25,0,69,0,66,0\n28,0,59,0,81,0,48,0,24,0,74,0\n13,0,64,0,18,0,1,0,32,0,3,0\n9,0,15,0,39,0,38,0,56,0,58,0\n6,0,51,0,73,0,21,0,77,0,80,0\n72,0,79,0,53,0,67,0,17,0,29,0\n52,0,10,0,4,0,7,0,55,0,46,0\n22,0,69,0,49,0,30,0,41,0,60,0\n59,0,31,0,33,0,11,0,20,0,78,0\n28,0,66,0,23,0,13,0,8,0,62,0\n14,0,38,0,34,0,68,0,27,0,48,0\n43,0,74,0,57,0,19,0,1,0,61,0\n37,0,65,0,44,0,42,0,24,0,12,0\n2,0,15,0,25,0,64,0,35,0,54,0\n50,0,70,0,5,0,81,0,63,0,76,0\n47,0,40,0,16,0,26,0,18,0,32,0\n36,0,71,0,3,0,75,0,45,0,9,0\n78,0,60,0,62,0,46,0,52,0,38,0\n1,0,79,0,8,0,68,0,59,0,56,0\n41,0,6,0,37,0,58,0,65,0,74,0\n67,0,49,0,53,0,54,0,21,0,39,0\n29,0,66,0,30,0,57,0,81,0,23,0\n73,0,5,0,80,0,43,0,11,0,35,0\n25,0,42,0,40,0,28,0,48,0,20,0\n32,0,22,0,36,0,44,0,55,0,31,0\n69,0,24,0,26,0,33,0,75,0,64,0\n16,0,12,0,77,0,47,0,9,0,63,0\n51,0,2,0,27,0,72,0,18,0,17,0\n45,0,50,0,4,0,15,0,19,0,14,0\n61,0,71,0,70,0,34,0,13,0,7,0\n3,0,10,0,58,0,76,0,59,0,40,0\n73,0,41,0,48,0,32,0,46,0,5,0\n64,0,44,0,11,0,43,0,62,0,30,0\n33,0,53,0,60,0,36,0,12,0,9,0\n55,0,23,0,49,0,6,0,17,0,38,0\n81,0,20,0,29,0,21,0,51,0,14,0\n61,0,15,0,69,0,63,0,27,0,52,0\n54,0,79,0,65,0,26,0,10,0,71,0\n80,0,3,0,2,0,7,0,31,0,28,0\n78,0,13,0,68,0,22,0,39,0,19,0\n47,0,42,0,45,0,50,0,67,0,8,0\n76,0,75,0,1,0,16,0,37,0,66,0\n18,0,4,0,34,0,72,0,35,0,25,0\n74,0,77,0,56,0,70,0,24,0,57,0\n44,0,26,0,21,0,15,0,23,0,41,0\n71,0,59,0,12,0,2,0,6,0,32,0\n68,0,19,0,46,0,40,0,53,0,36,0\n60,0,38,0,64,0,28,0,51,0,5,0\n61,0,33,0,66,0,30,0,3,0,39,0\n50,0,34,0,9,0,69,0,55,0,8,0\n11,0,65,0,1,0,14,0,63,0,49,0\n25,0,10,0,37,0,56,0,29,0,73,0\n48,0,18,0,67,0,17,0,76,0,7,0\n45,0,70,0,20,0,27,0,22,0,43,0\n42,0,35,0,13,0,52,0,79,0,81,0\n62,0,72,0,31,0,57,0,54,0,47,0\n78,0,80,0,58,0,16,0,24,0,4,0\n75,0,74,0,66,0,77,0,68,0,55,0\n5,0,26,0,33,0,37,0,2,0,56,0\n60,0,32,0,34,0,3,0,23,0,19,0\n71,0,46,0,30,0,28,0,21,0,1,0\n13,0,40,0,73,0,53,0,65,0,63,0\n59,0,25,0,17,0,44,0,57,0,62,0\n20,0,79,0,47,0,48,0,6,0,69,0\n4,0,29,0,11,0,16,0,22,0,38,0\n14,0,52,0,72,0,77,0,39,0,75,0\n8,0,12,0,15,0,61,0,80,0,81,0\n7,0,78,0,35,0,51,0,76,0,54,0\n31,0,42,0,74,0,58,0,45,0,27,0\n49,0,18,0,24,0,36,0,50,0,43,0\n9,0,64,0,41,0,10,0,70,0,67,0\n63,0,20,0,32,0,4,0,26,0,30,0\n11,0,60,0,56,0,44,0,72,0,13,0\n68,0,39,0,57,0,48,0,37,0,80,0\n73,0,16,0,15,0,59,0,66,0,7,0\n76,0,23,0,27,0,52,0,33,0,65,0\n3,0,54,0,46,0,77,0,6,0,43,0\n34,0,17,0,71,0,31,0,24,0,5,0\n69,0,51,0,47,0,58,0,61,0,40,0\n19,0,78,0,18,0,79,0,9,0,28,0\n1,0,81,0,62,0,36,0,41,0,67,0\n75,0,38,0,21,0,70,0,8,0,22,0\n35,0,74,0,10,0,50,0,12,0,49,0\n14,0,55,0,53,0,2,0,64,0,42,0\n29,0,25,0,7,0,45,0,65,0,46,0\n"
  },
  {
    "path": "schedules/81_14.csv",
    "content": "55,0,24,0,10,0,37,0,19,0,56,0\n67,0,33,0,41,0,69,0,32,0,3,0\n21,0,17,0,46,0,63,0,48,0,22,0\n23,0,74,0,2,0,62,0,36,0,76,0\n29,0,15,0,26,0,53,0,61,0,72,0\n11,0,7,0,81,0,52,0,43,0,6,0\n71,0,59,0,1,0,73,0,42,0,12,0\n64,0,30,0,39,0,20,0,60,0,16,0\n49,0,54,0,77,0,18,0,45,0,8,0\n28,0,4,0,31,0,70,0,44,0,40,0\n50,0,14,0,78,0,68,0,38,0,79,0\n27,0,66,0,47,0,5,0,57,0,35,0\n75,0,9,0,65,0,80,0,25,0,34,0\n51,0,13,0,22,0,58,0,24,0,19,0\n61,0,63,0,30,0,2,0,81,0,32,0\n60,0,67,0,17,0,36,0,53,0,49,0\n7,0,40,0,29,0,73,0,37,0,39,0\n6,0,15,0,1,0,62,0,14,0,46,0\n72,0,74,0,11,0,21,0,68,0,59,0\n77,0,27,0,34,0,33,0,38,0,48,0\n28,0,75,0,76,0,10,0,42,0,8,0\n31,0,58,0,9,0,20,0,5,0,47,0\n16,0,79,0,25,0,71,0,54,0,66,0\n80,0,50,0,52,0,56,0,41,0,51,0\n3,0,13,0,43,0,4,0,78,0,26,0\n69,0,70,0,57,0,64,0,12,0,18,0\n23,0,65,0,44,0,45,0,35,0,55,0\n61,0,29,0,39,0,77,0,46,0,6,0\n58,0,36,0,2,0,11,0,34,0,28,0\n79,0,10,0,76,0,32,0,47,0,17,0\n59,0,30,0,60,0,62,0,50,0,27,0\n51,0,20,0,37,0,14,0,74,0,3,0\n5,0,15,0,70,0,22,0,68,0,25,0\n4,0,38,0,66,0,52,0,73,0,63,0\n43,0,1,0,69,0,55,0,13,0,65,0\n81,0,54,0,64,0,44,0,72,0,75,0\n49,0,42,0,9,0,7,0,48,0,26,0\n67,0,80,0,53,0,21,0,57,0,45,0\n41,0,78,0,35,0,16,0,24,0,18,0\n40,0,8,0,12,0,23,0,33,0,19,0\n56,0,31,0,11,0,71,0,60,0,34,0\n59,0,17,0,73,0,70,0,3,0,77,0\n29,0,32,0,52,0,27,0,15,0,36,0\n46,0,75,0,66,0,68,0,37,0,2,0\n53,0,22,0,5,0,54,0,4,0,7,0\n47,0,21,0,72,0,65,0,78,0,1,0\n30,0,62,0,41,0,45,0,43,0,12,0\n74,0,42,0,6,0,38,0,56,0,49,0\n23,0,24,0,63,0,20,0,64,0,80,0\n57,0,48,0,28,0,13,0,69,0,31,0\n35,0,10,0,18,0,33,0,9,0,14,0\n26,0,40,0,39,0,81,0,51,0,79,0\n76,0,16,0,71,0,44,0,19,0,67,0\n25,0,58,0,8,0,55,0,50,0,61,0\n70,0,41,0,68,0,6,0,49,0,21,0\n12,0,47,0,37,0,54,0,15,0,60,0\n38,0,23,0,45,0,29,0,66,0,69,0\n62,0,13,0,1,0,80,0,17,0,10,0\n48,0,73,0,43,0,14,0,24,0,28,0\n33,0,4,0,32,0,81,0,16,0,65,0\n36,0,19,0,39,0,75,0,59,0,31,0\n5,0,9,0,61,0,74,0,67,0,40,0\n51,0,27,0,58,0,64,0,53,0,78,0\n55,0,34,0,42,0,52,0,46,0,57,0\n8,0,56,0,22,0,30,0,35,0,2,0\n76,0,25,0,44,0,11,0,63,0,3,0\n18,0,7,0,50,0,79,0,20,0,72,0\n26,0,71,0,47,0,77,0,80,0,23,0\n49,0,24,0,62,0,65,0,29,0,4,0\n70,0,38,0,54,0,1,0,67,0,58,0\n75,0,34,0,14,0,69,0,5,0,59,0\n21,0,36,0,12,0,81,0,9,0,66,0\n2,0,43,0,61,0,73,0,31,0,19,0\n40,0,3,0,50,0,45,0,16,0,22,0\n68,0,17,0,63,0,71,0,18,0,27,0\n6,0,79,0,64,0,42,0,13,0,33,0\n10,0,7,0,28,0,15,0,51,0,30,0\n8,0,32,0,57,0,78,0,37,0,48,0\n20,0,25,0,39,0,35,0,52,0,76,0\n74,0,41,0,55,0,77,0,11,0,53,0\n26,0,72,0,46,0,56,0,60,0,44,0\n27,0,49,0,12,0,73,0,75,0,47,0\n3,0,36,0,68,0,64,0,58,0,42,0\n54,0,51,0,18,0,21,0,34,0,61,0\n16,0,7,0,78,0,17,0,14,0,23,0\n38,0,15,0,62,0,13,0,9,0,20,0\n32,0,19,0,35,0,28,0,80,0,74,0\n33,0,22,0,66,0,55,0,31,0,71,0\n59,0,43,0,56,0,29,0,67,0,63,0\n2,0,40,0,10,0,70,0,26,0,6,0\n79,0,57,0,41,0,44,0,30,0,46,0\n60,0,5,0,50,0,24,0,52,0,1,0\n69,0,65,0,11,0,53,0,39,0,8,0\n48,0,76,0,72,0,4,0,37,0,45,0\n77,0,25,0,19,0,81,0,62,0,42,0\n31,0,22,0,34,0,80,0,29,0,16,0\n6,0,35,0,58,0,32,0,75,0,67,0\n49,0,73,0,78,0,44,0,33,0,10,0\n71,0,70,0,20,0,51,0,43,0,60,0\n26,0,61,0,57,0,50,0,36,0,65,0\n41,0,59,0,15,0,55,0,54,0,40,0\n45,0,27,0,13,0,7,0,2,0,21,0\n79,0,9,0,63,0,28,0,53,0,37,0\n4,0,5,0,72,0,46,0,38,0,8,0\n11,0,17,0,25,0,24,0,30,0,12,0\n56,0,66,0,14,0,76,0,64,0,77,0\n68,0,39,0,48,0,3,0,1,0,23,0\n52,0,74,0,81,0,69,0,47,0,18,0\n33,0,78,0,45,0,59,0,22,0,20,0\n7,0,75,0,70,0,62,0,61,0,16,0\n65,0,79,0,60,0,2,0,67,0,15,0\n17,0,26,0,28,0,25,0,38,0,55,0\n51,0,12,0,53,0,49,0,46,0,35,0\n32,0,77,0,42,0,31,0,50,0,72,0\n13,0,73,0,18,0,23,0,11,0,5,0\n48,0,80,0,21,0,40,0,30,0,52,0\n6,0,69,0,56,0,4,0,36,0,47,0\n66,0,74,0,10,0,58,0,39,0,43,0\n14,0,29,0,71,0,3,0,8,0,54,0\n1,0,34,0,68,0,81,0,24,0,44,0\n63,0,64,0,57,0,9,0,19,0,41,0\n37,0,76,0,55,0,27,0,5,0,78,0\n48,0,16,0,51,0,38,0,59,0,2,0\n52,0,33,0,56,0,17,0,53,0,70,0\n73,0,36,0,69,0,35,0,79,0,22,0\n62,0,66,0,11,0,14,0,26,0,32,0\n4,0,21,0,77,0,15,0,25,0,12,0\n8,0,19,0,29,0,68,0,9,0,60,0\n61,0,20,0,67,0,72,0,10,0,41,0\n24,0,74,0,13,0,3,0,75,0,45,0\n37,0,50,0,57,0,28,0,81,0,23,0\n64,0,49,0,47,0,34,0,43,0,40,0\n71,0,63,0,46,0,58,0,7,0,65,0\n44,0,39,0,54,0,42,0,27,0,80,0\n30,0,6,0,18,0,31,0,1,0,76,0\n32,0,51,0,55,0,73,0,9,0,4,0\n53,0,26,0,56,0,68,0,5,0,16,0\n25,0,28,0,78,0,45,0,60,0,41,0\n67,0,22,0,52,0,12,0,77,0,14,0\n19,0,61,0,74,0,48,0,79,0,17,0\n11,0,33,0,43,0,75,0,54,0,23,0\n31,0,3,0,81,0,27,0,10,0,46,0\n18,0,42,0,44,0,40,0,65,0,66,0\n2,0,20,0,1,0,29,0,57,0,49,0\n58,0,80,0,59,0,7,0,8,0,6,0\n35,0,47,0,39,0,70,0,63,0,13,0\n72,0,24,0,38,0,36,0,30,0,71,0\n62,0,21,0,37,0,69,0,76,0,34,0\n15,0,46,0,73,0,50,0,64,0,74,0\n51,0,45,0,17,0,43,0,5,0,42,0\n60,0,55,0,75,0,18,0,32,0,48,0\n33,0,58,0,57,0,56,0,7,0,25,0\n3,0,78,0,12,0,61,0,31,0,6,0\n36,0,16,0,63,0,77,0,1,0,10,0\n52,0,65,0,20,0,28,0,54,0,68,0\n23,0,72,0,27,0,9,0,22,0,70,0\n69,0,19,0,71,0,15,0,49,0,50,0\n24,0,64,0,37,0,67,0,26,0,21,0\n4,0,14,0,2,0,39,0,41,0,80,0\n35,0,81,0,40,0,11,0,38,0,29,0\n53,0,13,0,34,0,76,0,66,0,30,0\n44,0,79,0,47,0,8,0,62,0,59,0\n16,0,6,0,3,0,28,0,55,0,72,0\n73,0,56,0,65,0,12,0,48,0,20,0\n63,0,31,0,25,0,67,0,49,0,51,0\n42,0,4,0,60,0,58,0,23,0,61,0\n45,0,19,0,1,0,26,0,27,0,52,0\n78,0,54,0,30,0,9,0,74,0,69,0\n21,0,5,0,75,0,29,0,79,0,50,0\n46,0,24,0,76,0,59,0,33,0,70,0\n62,0,35,0,77,0,40,0,68,0,57,0\n8,0,15,0,17,0,34,0,66,0,41,0\n53,0,81,0,14,0,2,0,13,0,71,0\n7,0,22,0,64,0,11,0,47,0,10,0\n80,0,37,0,44,0,18,0,43,0,36,0\n32,0,38,0,21,0,39,0,56,0,12,0\n16,0,49,0,23,0,58,0,79,0,52,0\n68,0,72,0,33,0,63,0,51,0,62,0\n20,0,40,0,4,0,27,0,17,0,75,0\n9,0,59,0,28,0,1,0,61,0,66,0\n10,0,48,0,6,0,35,0,54,0,50,0\n42,0,31,0,65,0,41,0,13,0,37,0\n45,0,64,0,5,0,71,0,39,0,32,0\n38,0,22,0,60,0,43,0,76,0,57,0\n67,0,34,0,8,0,26,0,74,0,73,0\n18,0,19,0,53,0,25,0,47,0,3,0\n80,0,46,0,81,0,15,0,11,0,78,0\n30,0,70,0,14,0,36,0,29,0,55,0\n69,0,44,0,7,0,77,0,24,0,2,0\n"
  },
  {
    "path": "schedules/81_2.csv",
    "content": "8,0,5,0,33,0,27,0,15,0,43,0\n3,0,46,0,12,0,75,0,31,0,67,0\n62,0,50,0,76,0,49,0,54,0,57,0\n30,0,37,0,58,0,23,0,81,0,71,0\n11,0,25,0,56,0,35,0,22,0,38,0\n55,0,69,0,74,0,32,0,2,0,51,0\n60,0,61,0,52,0,73,0,20,0,47,0\n39,0,63,0,36,0,65,0,77,0,9,0\n7,0,14,0,16,0,72,0,80,0,68,0\n19,0,79,0,10,0,34,0,17,0,45,0\n1,0,42,0,48,0,64,0,41,0,24,0\n66,0,6,0,26,0,59,0,70,0,40,0\n78,0,21,0,4,0,28,0,13,0,53,0\n44,0,18,0,20,0,29,0,76,0,43,0\n9,0,61,0,57,0,56,0,12,0,37,0\n71,0,77,0,67,0,69,0,33,0,60,0\n81,0,32,0,5,0,62,0,79,0,7,0\n30,0,49,0,16,0,63,0,42,0,3,0\n26,0,17,0,1,0,52,0,8,0,58,0\n68,0,64,0,47,0,10,0,65,0,70,0\n35,0,45,0,44,0,23,0,24,0,4,0\n73,0,22,0,53,0,40,0,36,0,48,0\n59,0,28,0,27,0,46,0,11,0,50,0\n29,0,80,0,21,0,19,0,55,0,6,0\n38,0,14,0,39,0,18,0,78,0,51,0\n34,0,54,0,2,0,31,0,25,0,66,0\n13,0,72,0,75,0,41,0,74,0,15,0\n"
  },
  {
    "path": "schedules/81_3.csv",
    "content": "2,0,9,0,57,0,70,0,6,0,43,0\n26,0,65,0,76,0,42,0,22,0,78,0\n72,0,17,0,58,0,69,0,10,0,18,0\n63,0,59,0,48,0,21,0,27,0,25,0\n52,0,61,0,37,0,66,0,54,0,47,0\n40,0,79,0,34,0,23,0,50,0,20,0\n77,0,13,0,36,0,19,0,16,0,14,0\n24,0,51,0,33,0,45,0,7,0,64,0\n41,0,32,0,5,0,46,0,1,0,44,0\n28,0,11,0,49,0,31,0,12,0,38,0\n75,0,3,0,56,0,4,0,55,0,73,0\n15,0,62,0,67,0,30,0,81,0,35,0\n68,0,60,0,80,0,53,0,39,0,71,0\n29,0,8,0,22,0,74,0,58,0,40,0\n51,1,50,0,21,0,9,1,65,0,66,0\n23,1,26,0,16,0,6,0,64,0,46,0\n43,0,37,0,14,0,11,0,25,0,41,0\n54,0,38,0,76,0,5,0,79,0,45,0\n24,0,55,0,35,0,31,0,52,0,42,0\n18,0,20,0,13,0,3,0,59,0,60,0\n7,0,72,0,48,0,62,0,57,0,61,0\n67,0,8,0,77,0,73,0,63,0,28,0\n68,0,10,0,44,0,70,0,12,0,36,0\n69,0,32,0,49,0,27,0,80,0,74,0\n39,0,19,0,47,0,75,0,30,0,29,0\n56,0,15,0,33,0,53,0,2,0,17,0\n1,0,71,0,34,0,81,0,78,0,4,0\n16,0,48,0,60,0,55,0,51,0,11,0\n73,0,14,0,46,0,40,0,65,0,61,0\n43,0,31,0,58,0,20,0,5,0,21,0\n22,0,9,0,79,0,62,0,37,0,49,0\n75,0,38,0,35,0,68,0,63,0,69,0\n13,0,7,0,52,0,23,0,29,0,15,0\n57,0,44,0,54,0,24,0,30,0,26,0\n74,0,39,0,25,0,76,0,1,0,56,0\n6,0,4,0,12,0,42,0,8,0,33,0\n81,0,47,0,28,0,72,0,50,0,36,0\n53,0,78,0,45,0,19,0,32,0,10,0\n27,0,41,0,17,0,3,0,67,0,70,0\n64,0,66,0,2,0,59,0,80,0,34,0\n71,0,51,0,23,0,77,0,18,0,9,0\n"
  },
  {
    "path": "schedules/81_4.csv",
    "content": "18,0,42,0,58,0,2,0,38,0,49,0\n73,0,29,0,36,0,12,0,80,0,70,0\n47,0,71,0,60,0,7,0,8,0,37,0\n35,0,56,0,54,0,25,0,61,0,3,0\n67,0,24,0,15,0,63,0,77,0,45,0\n51,0,68,0,69,0,62,0,20,0,72,0\n81,0,6,0,33,0,74,0,64,0,9,0\n11,0,16,0,32,0,30,0,52,0,1,0\n14,0,13,0,22,0,10,0,28,0,17,0\n43,0,78,0,55,0,46,0,31,0,48,0\n19,0,41,0,76,0,21,0,57,0,23,0\n5,0,59,0,65,0,53,0,40,0,26,0\n44,0,39,0,27,0,4,0,66,0,79,0\n50,0,75,0,2,0,34,0,33,0,36,0\n16,0,69,0,63,0,9,0,58,0,25,0\n77,0,60,0,81,0,11,0,54,0,38,0\n62,0,45,0,48,0,47,0,35,0,22,0\n3,0,17,0,42,0,76,0,1,0,55,0\n5,0,31,0,21,0,51,0,14,0,74,0\n46,0,20,0,10,0,73,0,44,0,40,0\n61,0,53,0,78,0,70,0,68,0,32,0\n23,0,7,0,28,0,52,0,66,0,34,0\n26,0,29,0,15,0,75,0,49,0,39,0\n13,0,80,0,72,0,71,0,41,0,67,0\n18,0,50,0,43,0,79,0,57,0,65,0\n4,0,24,0,8,0,6,0,19,0,56,0\n12,0,27,0,37,0,64,0,30,0,59,0\n40,0,61,0,1,0,22,0,81,0,21,0\n47,0,9,0,66,0,11,0,3,0,73,0\n48,0,36,0,53,0,7,0,16,0,54,0\n39,0,14,0,45,0,41,0,20,0,78,0\n68,0,71,0,34,0,18,0,15,0,74,0\n55,0,57,0,8,0,28,0,75,0,51,0\n44,0,38,0,35,0,13,0,69,0,65,0\n49,0,12,0,67,0,50,0,56,0,52,0\n70,0,30,0,31,0,10,0,76,0,58,0\n25,0,27,0,5,0,80,0,24,0,60,0\n64,0,46,0,79,0,29,0,17,0,19,0\n77,0,6,0,62,0,23,0,2,0,37,0\n63,0,33,0,32,0,26,0,72,0,43,0\n59,0,4,0,48,0,42,0,69,0,75,0\n7,0,51,0,22,0,73,0,49,0,65,0\n56,0,55,0,58,0,36,0,14,0,81,0\n45,0,8,0,66,0,18,0,30,0,5,0\n41,0,34,0,64,0,24,0,44,0,53,0\n20,0,70,0,19,0,27,0,15,0,11,0\n17,0,54,0,52,0,6,0,21,0,26,0\n16,0,57,0,60,0,78,0,59,0,72,0\n3,0,63,0,79,0,40,0,31,0,37,0\n23,0,13,0,29,0,33,0,68,0,25,0\n38,0,1,0,43,0,10,0,62,0,4,0\n80,0,50,0,39,0,46,0,42,0,32,0\n74,0,2,0,47,0,61,0,67,0,76,0\n35,0,9,0,28,0,71,0,12,0,77,0\n"
  },
  {
    "path": "schedules/81_5.csv",
    "content": "76,0,19,0,72,0,12,0,39,0,54,0\n68,0,32,0,56,0,20,0,5,0,47,0\n50,0,79,0,3,0,69,0,13,0,35,0\n11,0,53,0,4,0,63,0,21,0,75,0\n43,0,31,0,18,0,33,0,16,0,73,0\n23,0,52,0,14,0,34,0,26,0,44,0\n25,0,70,0,40,0,58,0,45,0,27,0\n22,0,24,0,29,0,57,0,49,0,8,0\n41,0,6,0,17,0,61,0,60,0,59,0\n38,0,71,0,64,0,2,0,7,0,67,0\n9,0,74,0,48,0,37,0,55,0,51,0\n36,0,80,0,46,0,78,0,30,0,81,0\n62,0,10,0,77,0,28,0,65,0,15,0\n42,0,1,0,32,0,66,0,73,0,50,0\n16,0,70,0,5,0,19,0,79,0,44,0\n3,0,14,0,56,0,40,0,21,0,43,0\n69,0,58,0,60,0,11,0,8,0,23,0\n76,0,24,0,67,0,61,0,52,0,4,0\n30,0,53,0,27,0,26,0,31,0,29,0\n63,0,17,0,33,0,62,0,25,0,38,0\n57,0,55,0,7,0,41,0,66,0,10,0\n39,0,59,0,2,0,75,0,48,0,77,0\n80,0,12,0,64,0,74,0,20,0,42,0\n47,0,49,0,54,0,6,0,36,0,51,0\n68,0,15,0,1,0,81,0,35,0,18,0\n46,0,13,0,37,0,34,0,28,0,72,0\n22,0,45,0,78,0,71,0,65,0,9,0\n30,1,25,0,5,0,11,1,76,0,10,0\n40,1,66,0,60,0,79,0,39,0,52,0\n80,0,61,0,73,0,21,0,8,0,55,0\n48,0,31,0,56,0,24,0,12,0,62,0\n15,0,54,0,53,0,38,0,23,0,70,0\n17,0,49,0,81,0,19,0,7,0,3,0\n29,0,46,0,9,0,1,0,6,0,69,0\n45,0,43,0,50,0,74,0,34,0,2,0\n36,0,57,0,75,0,68,0,14,0,16,0\n78,0,77,0,33,0,37,0,41,0,44,0\n27,0,51,0,67,0,65,0,35,0,20,0\n72,0,59,0,4,0,64,0,32,0,22,0\n18,0,71,0,28,0,58,0,42,0,63,0\n26,0,47,0,7,0,13,0,11,0,80,0\n62,0,23,0,49,0,79,0,73,0,76,0\n25,0,21,0,54,0,50,0,68,0,46,0\n33,0,6,0,66,0,14,0,19,0,8,0\n41,0,5,0,67,0,69,0,39,0,74,0\n35,0,10,0,12,0,53,0,45,0,16,0\n18,0,75,0,55,0,56,0,78,0,29,0\n20,0,9,0,44,0,40,0,36,0,72,0\n51,0,52,0,38,0,31,0,59,0,58,0\n24,0,1,0,37,0,3,0,64,0,70,0\n63,0,60,0,34,0,32,0,48,0,15,0\n28,0,2,0,81,0,61,0,26,0,22,0\n57,0,47,0,4,0,77,0,27,0,71,0\n42,0,13,0,65,0,30,0,43,0,17,0\n39,0,20,0,29,0,23,0,10,0,21,0\n59,0,50,0,62,0,18,0,53,0,80,0\n7,0,69,0,73,0,75,0,70,0,72,0\n34,0,38,0,19,0,24,0,68,0,78,0\n35,0,2,0,66,0,11,0,37,0,36,0\n76,0,26,0,51,0,40,0,77,0,1,0\n45,0,30,0,48,0,3,0,47,0,41,0\n44,0,74,0,71,0,56,0,54,0,60,0\n25,0,14,0,15,0,49,0,4,0,42,0\n58,0,81,0,12,0,67,0,13,0,9,0\n63,0,43,0,22,0,27,0,5,0,46,0\n8,0,52,0,16,0,28,0,17,0,64,0\n79,0,65,0,32,0,55,0,31,0,6,0\n61,0,30,0,40,0,57,0,33,0,11,0\n"
  },
  {
    "path": "schedules/81_6.csv",
    "content": "32,0,52,0,51,0,30,0,15,0,26,0\n55,0,41,0,16,0,31,0,46,0,19,0\n71,0,80,0,23,0,54,0,60,0,67,0\n7,0,22,0,47,0,35,0,78,0,5,0\n20,0,39,0,48,0,58,0,18,0,69,0\n40,0,70,0,12,0,63,0,61,0,33,0\n4,0,62,0,17,0,34,0,50,0,24,0\n45,0,73,0,57,0,66,0,28,0,3,0\n59,0,75,0,25,0,29,0,38,0,79,0\n68,0,77,0,72,0,6,0,81,0,74,0\n56,0,36,0,43,0,13,0,44,0,1,0\n21,0,49,0,65,0,8,0,14,0,42,0\n64,0,11,0,10,0,37,0,27,0,53,0\n76,0,2,0,31,0,9,0,80,0,39,0\n28,0,46,0,18,0,22,0,26,0,62,0\n78,0,34,0,54,0,58,0,16,0,12,0\n72,0,17,0,61,0,7,0,48,0,55,0\n73,0,23,0,44,0,47,0,63,0,29,0\n6,0,14,0,5,0,32,0,36,0,70,0\n75,0,15,0,56,0,45,0,65,0,37,0\n60,0,19,0,3,0,49,0,53,0,68,0\n24,0,27,0,59,0,43,0,41,0,57,0\n66,0,10,0,4,0,42,0,79,0,76,0\n67,0,77,0,64,0,2,0,69,0,50,0\n51,0,71,0,9,0,35,0,21,0,25,0\n11,0,33,0,81,0,13,0,52,0,20,0\n8,0,30,0,38,0,1,0,74,0,40,0\n6,0,60,0,18,0,75,0,73,0,31,0\n62,0,54,0,49,0,47,0,39,0,15,0\n3,0,79,0,46,0,12,0,37,0,44,0\n78,0,17,0,29,0,67,0,66,0,36,0\n45,0,21,0,43,0,4,0,77,0,63,0\n53,0,28,0,65,0,59,0,32,0,71,0\n69,0,25,0,8,0,55,0,33,0,24,0\n76,0,41,0,48,0,5,0,1,0,51,0\n34,0,40,0,7,0,23,0,27,0,56,0\n16,0,57,0,72,0,13,0,30,0,2,0\n74,0,70,0,9,0,11,0,42,0,26,0\n58,0,10,0,50,0,81,0,19,0,35,0\n68,0,22,0,61,0,64,0,14,0,52,0\n80,0,38,0,63,0,20,0,62,0,32,0\n33,0,67,0,18,0,41,0,45,0,79,0\n49,0,51,0,31,0,37,0,69,0,4,0\n60,0,13,0,40,0,17,0,15,0,76,0\n47,0,12,0,77,0,56,0,53,0,25,0\n43,0,71,0,42,0,5,0,50,0,75,0\n72,0,46,0,27,0,21,0,1,0,66,0\n8,0,58,0,68,0,2,0,11,0,23,0\n64,0,65,0,55,0,70,0,20,0,78,0\n14,0,81,0,26,0,7,0,38,0,57,0\n35,0,30,0,3,0,29,0,80,0,24,0\n22,0,54,0,9,0,6,0,19,0,44,0\n48,0,59,0,36,0,73,0,52,0,16,0\n34,0,74,0,39,0,61,0,10,0,28,0\n33,0,58,0,77,0,60,0,27,0,62,0\n78,0,15,0,69,0,71,0,63,0,72,0\n1,0,47,0,26,0,50,0,55,0,68,0\n49,0,20,0,30,0,23,0,75,0,41,0\n29,0,6,0,7,0,46,0,42,0,2,0\n37,0,35,0,66,0,48,0,40,0,43,0\n56,0,81,0,31,0,79,0,54,0,61,0\n59,0,19,0,80,0,70,0,17,0,8,0\n44,0,24,0,28,0,14,0,67,0,51,0\n39,0,5,0,52,0,57,0,12,0,4,0\n16,0,45,0,25,0,74,0,32,0,64,0\n34,0,53,0,21,0,36,0,38,0,22,0\n3,0,13,0,10,0,9,0,65,0,18,0\n11,0,73,0,61,0,76,0,78,0,77,0\n19,0,23,0,79,0,26,0,43,0,69,0\n50,0,14,0,60,0,72,0,29,0,20,0\n37,0,58,0,42,0,67,0,30,0,59,0\n80,0,12,0,75,0,51,0,7,0,64,0\n38,0,52,0,24,0,46,0,45,0,47,0\n53,0,74,0,13,0,62,0,5,0,66,0\n63,0,6,0,11,0,3,0,25,0,48,0\n4,0,27,0,9,0,8,0,36,0,28,0\n2,0,44,0,55,0,34,0,71,0,18,0\n56,0,70,0,16,0,22,0,49,0,76,0\n33,0,54,0,1,0,65,0,35,0,17,0\n32,0,39,0,41,0,81,0,40,0,73,0\n68,0,15,0,57,0,31,0,21,0,10,0\n"
  },
  {
    "path": "schedules/81_7.csv",
    "content": "79,0,70,0,39,0,43,0,38,0,3,0\n77,0,72,0,1,0,21,0,71,0,23,0\n9,0,31,0,80,0,55,0,61,0,11,0\n29,0,32,0,73,0,78,0,7,0,44,0\n47,0,5,0,48,0,75,0,56,0,65,0\n8,0,33,0,66,0,59,0,18,0,37,0\n60,0,28,0,25,0,35,0,52,0,14,0\n81,0,45,0,13,0,30,0,57,0,36,0\n69,0,4,0,40,0,20,0,19,0,62,0\n68,0,41,0,26,0,67,0,50,0,24,0\n46,0,16,0,49,0,51,0,58,0,2,0\n53,0,27,0,12,0,64,0,10,0,54,0\n15,0,42,0,34,0,76,0,6,0,74,0\n63,0,17,0,78,0,22,0,61,0,18,0\n47,0,45,0,31,0,60,0,1,0,38,0\n52,0,43,0,9,0,44,0,36,0,77,0\n81,0,62,0,25,0,59,0,5,0,41,0\n35,0,72,0,51,0,29,0,48,0,4,0\n73,0,65,0,68,0,70,0,19,0,27,0\n8,0,14,0,55,0,40,0,34,0,53,0\n23,0,67,0,22,0,15,0,57,0,64,0\n42,0,10,0,24,0,16,0,11,0,20,0\n50,0,56,0,21,0,32,0,76,0,2,0\n3,0,6,0,7,0,26,0,63,0,30,0\n37,0,58,0,17,0,69,0,13,0,12,0\n39,0,75,0,28,0,74,0,46,0,33,0\n49,0,71,0,54,0,66,0,80,0,79,0\n31,1,18,0,34,0,27,1,57,0,43,0\n25,1,47,0,36,0,24,0,70,0,4,0\n81,0,50,0,9,0,51,0,22,0,1,0\n11,0,59,0,26,0,2,0,44,0,35,0\n19,0,58,0,10,0,77,0,8,0,7,0\n45,0,56,0,67,0,20,0,52,0,72,0\n23,0,39,0,78,0,69,0,5,0,80,0\n61,0,38,0,74,0,66,0,12,0,29,0\n60,0,30,0,55,0,64,0,21,0,65,0\n48,0,46,0,37,0,68,0,79,0,40,0\n63,0,13,0,76,0,54,0,41,0,16,0\n33,0,32,0,17,0,15,0,14,0,49,0\n42,0,71,0,28,0,3,0,62,0,73,0\n53,0,75,0,44,0,6,0,4,0,31,0\n47,0,20,0,23,0,35,0,61,0,7,0\n22,0,80,0,65,0,12,0,34,0,26,0\n66,0,30,0,1,0,67,0,2,0,27,0\n81,0,60,0,78,0,76,0,43,0,48,0\n15,0,58,0,54,0,68,0,72,0,39,0\n14,0,29,0,13,0,70,0,10,0,71,0\n59,0,57,0,16,0,9,0,32,0,3,0\n63,0,52,0,53,0,5,0,33,0,38,0\n79,0,56,0,19,0,42,0,17,0,25,0\n28,0,37,0,64,0,45,0,51,0,41,0\n8,0,6,0,21,0,69,0,46,0,73,0\n77,0,62,0,24,0,55,0,18,0,75,0\n36,0,11,0,40,0,74,0,50,0,49,0\n16,0,7,0,39,0,14,0,66,0,81,0\n59,0,10,0,67,0,48,0,34,0,63,0\n80,0,3,0,44,0,1,0,13,0,33,0\n60,0,5,0,2,0,15,0,61,0,19,0\n20,0,31,0,70,0,30,0,17,0,46,0\n76,0,24,0,12,0,73,0,45,0,23,0\n22,0,56,0,58,0,36,0,55,0,28,0\n77,0,51,0,74,0,57,0,78,0,68,0\n29,0,52,0,26,0,47,0,49,0,37,0\n65,0,35,0,42,0,40,0,32,0,18,0\n38,0,11,0,27,0,21,0,41,0,4,0\n71,0,43,0,69,0,25,0,53,0,50,0\n79,0,64,0,75,0,8,0,72,0,9,0\n6,0,54,0,2,0,62,0,36,0,17,0\n7,0,59,0,15,0,70,0,28,0,1,0\n76,0,77,0,46,0,14,0,67,0,47,0\n73,0,57,0,40,0,39,0,26,0,56,0\n66,0,34,0,23,0,19,0,11,0,51,0\n35,0,27,0,3,0,69,0,24,0,22,0\n74,0,53,0,41,0,9,0,60,0,58,0\n25,0,44,0,54,0,48,0,21,0,45,0\n33,0,72,0,62,0,10,0,31,0,65,0\n32,0,37,0,20,0,63,0,80,0,75,0\n78,0,52,0,30,0,8,0,71,0,12,0\n43,0,61,0,68,0,42,0,13,0,4,0\n5,0,50,0,29,0,55,0,16,0,79,0\n6,0,18,0,38,0,64,0,49,0,81,0\n1,0,76,0,35,0,17,0,53,0,39,0\n48,0,19,0,36,0,14,0,31,0,3,0\n63,0,73,0,25,0,11,0,15,0,77,0\n44,0,30,0,41,0,47,0,10,0,22,0\n37,0,70,0,67,0,9,0,42,0,78,0\n61,0,62,0,27,0,58,0,79,0,52,0\n45,0,55,0,46,0,66,0,43,0,26,0\n57,0,69,0,65,0,54,0,28,0,38,0\n49,0,21,0,12,0,20,0,59,0,68,0\n18,0,72,0,80,0,50,0,60,0,7,0\n2,0,75,0,40,0,81,0,29,0,23,0\n32,0,71,0,24,0,5,0,6,0,51,0\n16,0,4,0,34,0,56,0,33,0,64,0\n13,0,74,0,31,0,8,0,27,0,25,0\n"
  },
  {
    "path": "schedules/81_8.csv",
    "content": "55,0,4,0,19,0,45,0,73,0,44,0\n63,0,53,0,23,0,71,0,10,0,32,0\n42,0,46,0,58,0,75,0,16,0,64,0\n39,0,26,0,25,0,14,0,18,0,37,0\n77,0,67,0,38,0,22,0,9,0,17,0\n62,0,66,0,5,0,80,0,30,0,51,0\n54,0,76,0,8,0,81,0,79,0,61,0\n57,0,41,0,12,0,60,0,74,0,3,0\n69,0,49,0,34,0,29,0,33,0,35,0\n11,0,2,0,15,0,68,0,59,0,1,0\n65,0,28,0,52,0,20,0,78,0,13,0\n27,0,72,0,6,0,40,0,7,0,47,0\n70,0,36,0,48,0,56,0,31,0,21,0\n43,0,24,0,19,0,50,0,79,0,9,0\n5,0,71,0,41,0,25,0,75,0,73,0\n35,0,54,0,74,0,26,0,51,0,55,0\n45,0,10,0,33,0,1,0,77,0,12,0\n17,0,32,0,66,0,46,0,28,0,39,0\n64,0,30,0,18,0,4,0,15,0,7,0\n27,0,11,0,3,0,63,0,48,0,14,0\n20,0,59,0,43,0,72,0,58,0,31,0\n24,0,16,0,68,0,36,0,61,0,34,0\n80,0,37,0,65,0,81,0,22,0,49,0\n8,0,53,0,44,0,2,0,50,0,21,0\n60,0,78,0,42,0,70,0,6,0,38,0\n57,0,76,0,47,0,69,0,62,0,52,0\n29,0,40,0,13,0,56,0,23,0,67,0\n58,0,3,0,17,0,5,0,10,0,26,0\n61,0,72,0,48,0,46,0,71,0,55,0\n28,0,79,0,18,0,16,0,12,0,63,0\n21,0,7,0,24,0,33,0,65,0,66,0\n70,0,77,0,35,0,11,0,81,0,4,0\n36,0,22,0,20,0,75,0,47,0,39,0\n78,0,50,0,80,0,23,0,41,0,1,0\n40,0,9,0,31,0,54,0,57,0,30,0\n49,0,73,0,68,0,62,0,14,0,42,0\n29,0,64,0,2,0,27,0,52,0,19,0\n51,0,45,0,53,0,76,0,38,0,43,0\n32,0,60,0,59,0,69,0,44,0,13,0\n15,0,25,0,6,0,34,0,67,0,8,0\n37,0,74,0,50,0,56,0,61,0,75,0\n79,0,11,0,10,0,36,0,7,0,55,0\n3,0,1,0,39,0,49,0,9,0,21,0\n72,0,14,0,4,0,22,0,29,0,66,0\n24,0,54,0,5,0,78,0,64,0,53,0\n81,0,33,0,19,0,71,0,38,0,20,0\n13,0,73,0,8,0,57,0,17,0,63,0\n42,0,44,0,76,0,67,0,48,0,26,0\n23,0,46,0,59,0,47,0,65,0,70,0\n31,0,34,0,37,0,12,0,27,0,62,0\n51,0,60,0,56,0,52,0,58,0,15,0\n35,0,30,0,16,0,43,0,25,0,32,0\n2,0,45,0,28,0,41,0,69,0,40,0\n18,0,68,0,74,0,6,0,80,0,77,0\n5,0,44,0,38,0,11,0,57,0,49,0\n14,0,1,0,67,0,64,0,81,0,47,0\n13,0,34,0,70,0,71,0,3,0,50,0\n60,0,66,0,53,0,27,0,79,0,26,0\n21,0,4,0,37,0,63,0,76,0,59,0\n40,0,12,0,15,0,32,0,55,0,20,0\n52,0,22,0,41,0,7,0,16,0,54,0\n39,0,30,0,72,0,8,0,24,0,77,0\n25,0,74,0,48,0,19,0,65,0,58,0\n9,0,10,0,61,0,29,0,80,0,28,0\n62,0,75,0,6,0,17,0,33,0,2,0\n45,0,35,0,78,0,46,0,56,0,68,0\n51,0,31,0,42,0,18,0,23,0,69,0\n73,0,36,0,40,0,43,0,3,0,66,0\n50,0,32,0,14,0,5,0,76,0,77,0\n13,0,79,0,47,0,49,0,74,0,15,0\n80,0,21,0,12,0,38,0,72,0,26,0\n54,0,71,0,4,0,39,0,58,0,2,0\n29,0,24,0,20,0,45,0,70,0,25,0\n34,0,18,0,48,0,57,0,75,0,59,0\n78,0,81,0,36,0,44,0,62,0,9,0\n31,0,1,0,7,0,35,0,53,0,17,0\n61,0,63,0,30,0,41,0,19,0,42,0\n10,0,67,0,46,0,73,0,52,0,37,0\n27,0,8,0,68,0,22,0,28,0,51,0\n33,0,55,0,23,0,43,0,64,0,60,0\n56,0,16,0,69,0,65,0,11,0,6,0\n9,0,47,0,45,0,34,0,32,0,58,0\n13,0,80,0,7,0,2,0,25,0,76,0\n49,0,71,0,17,0,36,0,12,0,30,0\n15,0,38,0,63,0,39,0,35,0,50,0\n20,0,44,0,66,0,68,0,37,0,54,0\n1,0,60,0,4,0,24,0,48,0,40,0\n61,0,21,0,64,0,69,0,22,0,73,0\n31,0,65,0,79,0,41,0,29,0,77,0\n14,0,57,0,16,0,51,0,10,0,78,0\n56,0,81,0,55,0,18,0,27,0,5,0\n62,0,43,0,8,0,74,0,46,0,11,0\n3,0,59,0,42,0,33,0,53,0,52,0\n75,0,70,0,19,0,28,0,72,0,67,0\n23,0,26,0,61,0,6,0,49,0,20,0\n7,0,38,0,29,0,68,0,32,0,48,0\n71,0,22,0,15,0,31,0,76,0,78,0\n51,0,64,0,65,0,34,0,17,0,40,0\n18,0,47,0,43,0,21,0,10,0,54,0\n69,0,46,0,79,0,4,0,3,0,80,0\n2,0,36,0,5,0,67,0,60,0,35,0\n6,0,55,0,41,0,37,0,13,0,24,0\n66,0,81,0,57,0,45,0,50,0,42,0\n63,0,52,0,25,0,44,0,1,0,72,0\n73,0,11,0,58,0,53,0,30,0,28,0\n26,0,62,0,77,0,56,0,59,0,19,0\n33,0,27,0,39,0,16,0,70,0,74,0\n75,0,12,0,23,0,8,0,9,0,14,0\n"
  },
  {
    "path": "schedules/81_9.csv",
    "content": "64,0,76,0,29,0,6,0,18,0,20,0\n15,0,11,0,30,0,58,0,74,0,38,0\n21,0,34,0,23,0,42,0,1,0,72,0\n63,0,25,0,12,0,43,0,51,0,31,0\n50,0,17,0,56,0,67,0,41,0,9,0\n4,0,70,0,78,0,61,0,60,0,26,0\n54,0,16,0,14,0,27,0,55,0,48,0\n73,0,59,0,57,0,3,0,47,0,65,0\n40,0,13,0,53,0,46,0,77,0,8,0\n75,0,49,0,36,0,10,0,52,0,79,0\n7,0,22,0,62,0,33,0,35,0,45,0\n68,0,69,0,71,0,39,0,80,0,66,0\n19,0,32,0,81,0,37,0,5,0,24,0\n2,0,44,0,61,0,28,0,15,0,25,0\n72,0,70,0,55,0,67,0,76,0,58,0\n42,0,16,0,20,0,78,0,50,0,65,0\n14,0,36,0,21,0,29,0,23,0,12,0\n34,0,59,0,27,0,53,0,18,0,22,0\n63,0,66,0,45,0,48,0,3,0,8,0\n47,0,11,0,33,0,77,0,71,0,5,0\n24,0,7,0,38,0,75,0,9,0,44,0\n31,0,26,0,64,0,32,0,68,0,17,0\n35,0,79,0,19,0,2,0,51,0,4,0\n46,0,60,0,43,0,62,0,39,0,73,0\n30,0,56,0,80,0,57,0,37,0,6,0\n41,0,54,0,40,0,49,0,28,0,1,0\n69,0,52,0,81,0,74,0,13,0,10,0\n48,1,20,0,44,0,33,1,59,0,23,0\n38,1,45,0,36,0,34,0,26,0,16,0\n61,0,9,0,42,0,5,0,14,0,68,0\n21,0,25,0,53,0,62,0,50,0,64,0\n7,0,56,0,4,0,39,0,27,0,43,0\n58,0,28,0,79,0,12,0,22,0,24,0\n46,0,75,0,6,0,51,0,81,0,66,0\n67,0,13,0,69,0,54,0,57,0,31,0\n37,0,35,0,18,0,1,0,60,0,8,0\n73,0,52,0,3,0,76,0,11,0,19,0\n80,0,49,0,65,0,17,0,77,0,55,0\n63,0,74,0,71,0,70,0,41,0,29,0\n72,0,30,0,32,0,10,0,40,0,2,0\n47,0,4,0,53,0,15,0,78,0,12,0\n23,0,24,0,43,0,68,0,57,0,16,0\n66,0,62,0,56,0,18,0,54,0,58,0\n61,0,67,0,20,0,8,0,34,0,75,0\n31,0,37,0,28,0,77,0,45,0,50,0\n69,0,3,0,1,0,7,0,29,0,14,0\n38,0,71,0,2,0,13,0,60,0,17,0\n80,0,27,0,44,0,40,0,11,0,78,0\n15,0,33,0,26,0,19,0,72,0,46,0\n21,0,5,0,73,0,30,0,79,0,41,0\n63,0,35,0,47,0,76,0,65,0,81,0\n59,0,32,0,6,0,70,0,49,0,52,0\n25,0,9,0,36,0,55,0,22,0,74,0\n48,0,64,0,39,0,51,0,10,0,42,0\n80,0,29,0,13,0,16,0,75,0,56,0\n62,0,77,0,24,0,3,0,67,0,15,0\n57,0,19,0,20,0,12,0,60,0,7,0\n79,0,71,0,65,0,72,0,50,0,44,0\n26,0,37,0,27,0,66,0,23,0,73,0\n76,0,63,0,2,0,69,0,21,0,59,0\n54,0,10,0,1,0,17,0,61,0,22,0\n58,0,32,0,51,0,47,0,45,0,41,0\n64,0,6,0,8,0,43,0,9,0,11,0\n5,0,55,0,18,0,46,0,4,0,52,0\n49,0,78,0,68,0,25,0,38,0,81,0\n31,0,48,0,36,0,53,0,35,0,70,0\n34,0,39,0,33,0,74,0,40,0,14,0\n30,0,28,0,60,0,42,0,7,0,66,0\n50,0,27,0,1,0,63,0,13,0,24,0\n44,0,51,0,22,0,67,0,32,0,29,0\n57,0,11,0,18,0,79,0,21,0,26,0\n10,0,38,0,47,0,80,0,23,0,46,0\n15,0,81,0,45,0,54,0,43,0,59,0\n53,0,72,0,61,0,9,0,3,0,49,0\n58,0,17,0,20,0,35,0,14,0,52,0\n39,0,76,0,41,0,36,0,16,0,37,0\n42,0,6,0,25,0,4,0,73,0,40,0\n74,0,19,0,8,0,65,0,28,0,56,0\n70,0,75,0,2,0,33,0,68,0,77,0\n64,0,12,0,5,0,69,0,48,0,34,0\n30,0,71,0,78,0,55,0,31,0,62,0\n52,0,24,0,26,0,51,0,53,0,80,0\n79,0,18,0,13,0,7,0,47,0,67,0\n60,0,40,0,22,0,63,0,15,0,23,0\n58,0,57,0,46,0,36,0,42,0,44,0\n17,0,66,0,33,0,25,0,59,0,29,0\n39,0,77,0,61,0,38,0,6,0,21,0\n49,0,69,0,72,0,56,0,11,0,35,0\n3,0,37,0,68,0,20,0,55,0,34,0\n48,0,78,0,43,0,74,0,75,0,1,0\n50,0,12,0,16,0,73,0,2,0,32,0\n8,0,4,0,41,0,81,0,14,0,31,0\n70,0,65,0,19,0,64,0,30,0,54,0\n45,0,10,0,9,0,76,0,27,0,71,0\n28,0,5,0,72,0,62,0,80,0,63,0\n26,0,39,0,3,0,58,0,25,0,13,0\n47,0,40,0,17,0,36,0,69,0,24,0\n48,0,50,0,23,0,7,0,61,0,52,0\n32,0,55,0,42,0,81,0,56,0,53,0\n12,0,35,0,59,0,46,0,30,0,68,0\n75,0,14,0,73,0,71,0,64,0,15,0\n60,0,31,0,65,0,10,0,6,0,33,0\n54,0,77,0,76,0,79,0,34,0,43,0\n1,0,5,0,11,0,20,0,2,0,45,0\n62,0,27,0,29,0,38,0,8,0,57,0\n37,0,4,0,74,0,21,0,49,0,44,0\n51,0,28,0,16,0,9,0,18,0,70,0\n78,0,67,0,22,0,41,0,66,0,19,0\n7,0,81,0,58,0,40,0,64,0,61,0\n24,0,46,0,25,0,56,0,48,0,71,0\n23,0,79,0,45,0,17,0,69,0,53,0\n39,0,54,0,55,0,11,0,63,0,75,0\n38,0,3,0,59,0,50,0,5,0,31,0\n60,0,52,0,77,0,29,0,68,0,72,0\n73,0,13,0,51,0,78,0,36,0,33,0\n34,0,35,0,66,0,57,0,9,0,32,0\n14,0,43,0,22,0,37,0,65,0,2,0\n8,0,44,0,76,0,49,0,26,0,30,0\n42,0,74,0,41,0,18,0,80,0,12,0\n10,0,27,0,15,0,20,0,21,0,70,0\n6,0,62,0,16,0,47,0,1,0,19,0\n67,0,48,0,38,0,4,0,28,0,33,0\n"
  },
  {
    "path": "schedules/82_1.csv",
    "content": "62,0,79,0,27,0,15,0,35,0,3,0\n9,0,82,0,20,0,26,0,44,0,21,0\n19,0,77,0,55,0,74,0,61,0,63,0\n25,0,58,0,34,0,11,0,30,0,73,0\n5,0,10,0,57,0,70,0,23,0,40,0\n69,0,38,0,51,0,7,0,17,0,24,0\n6,0,42,0,75,0,72,0,80,0,54,0\n46,0,32,0,67,0,4,0,12,0,52,0\n45,0,68,0,81,0,39,0,14,0,78,0\n76,0,64,0,18,0,28,0,71,0,33,0\n60,0,13,0,29,0,47,0,8,0,48,0\n49,0,59,0,31,0,66,0,65,0,43,0\n41,0,16,0,36,0,37,0,1,0,22,0\n2,0,50,0,24,1,56,0,53,0,25,1\n"
  },
  {
    "path": "schedules/82_10.csv",
    "content": "75,0,68,0,32,0,71,0,73,0,79,0\n21,0,28,0,54,0,66,0,46,0,57,0\n48,0,58,0,72,0,61,0,15,0,52,0\n59,0,55,0,4,0,3,0,7,0,76,0\n42,0,18,0,37,0,67,0,82,0,20,0\n78,0,31,0,51,0,69,0,8,0,77,0\n63,0,35,0,12,0,19,0,44,0,47,0\n56,0,11,0,26,0,27,0,9,0,70,0\n33,0,38,0,6,0,5,0,39,0,17,0\n60,0,50,0,24,0,62,0,1,0,49,0\n80,0,2,0,10,0,53,0,74,0,41,0\n13,0,36,0,65,0,30,0,43,0,14,0\n22,0,40,0,16,0,29,0,81,0,25,0\n64,0,45,0,28,0,34,0,23,0,37,0\n55,0,61,0,26,0,18,0,54,0,73,0\n79,0,27,0,52,0,5,0,42,0,38,0\n57,0,21,0,3,0,35,0,32,0,56,0\n53,0,66,0,24,0,82,0,44,0,76,0\n13,0,80,0,39,0,68,0,36,0,70,0\n72,0,1,0,22,0,16,0,74,0,77,0\n58,0,43,0,59,0,62,0,6,0,11,0\n19,0,2,0,60,0,78,0,30,0,81,0\n25,0,67,0,48,0,75,0,8,0,49,0\n29,0,9,0,23,0,10,0,12,0,69,0\n47,0,51,0,34,0,46,0,14,0,33,0\n71,0,50,0,4,0,65,0,45,0,40,0\n64,0,17,0,7,0,63,0,41,0,20,0\n15,0,32,0,36,0,31,0,42,0,55,0\n22,1,74,0,59,0,52,1,57,0,26,0\n27,0,43,0,60,0,28,0,8,0,72,0\n10,0,81,0,21,0,67,0,6,0,77,0\n33,0,23,0,13,0,75,0,24,0,58,0\n48,0,9,0,5,0,68,0,50,0,44,0\n51,0,73,0,66,0,30,0,4,0,29,0\n7,0,38,0,40,0,54,0,1,0,19,0\n71,0,53,0,15,0,3,0,34,0,39,0\n46,0,47,0,37,0,62,0,25,0,80,0\n70,0,18,0,79,0,2,0,16,0,63,0\n78,0,76,0,20,0,56,0,41,0,14,0\n45,0,61,0,49,0,17,0,12,0,31,0\n11,0,82,0,64,0,65,0,35,0,69,0\n77,0,40,0,68,0,30,0,57,0,58,0\n1,0,52,0,81,0,54,0,4,0,32,0\n71,0,22,0,67,0,60,0,23,0,55,0\n46,0,63,0,29,0,43,0,53,0,38,0\n73,0,15,0,37,0,2,0,21,0,8,0\n45,0,36,0,78,0,66,0,26,0,48,0\n44,0,56,0,69,0,33,0,62,0,28,0\n49,0,11,0,3,0,80,0,64,0,5,0\n47,0,27,0,13,0,74,0,6,0,82,0\n70,0,17,0,51,0,24,0,42,0,35,0\n65,0,16,0,9,0,75,0,7,0,39,0\n19,0,41,0,34,0,31,0,18,0,72,0\n79,0,61,0,25,0,14,0,76,0,10,0\n50,0,59,0,8,0,20,0,12,0,71,0\n67,0,80,0,30,0,29,0,45,0,15,0\n62,0,2,0,27,0,40,0,23,0,32,0\n33,0,55,0,78,0,68,0,35,0,49,0\n28,0,82,0,39,0,77,0,73,0,81,0\n43,0,56,0,24,0,52,0,7,0,19,0\n58,0,60,0,74,0,18,0,17,0,66,0\n72,0,25,0,20,0,12,0,9,0,51,0\n65,0,54,0,5,0,36,0,59,0,10,0\n53,0,79,0,75,0,64,0,1,0,21,0\n61,0,46,0,22,0,6,0,70,0,41,0\n31,0,14,0,37,0,44,0,48,0,3,0\n57,0,76,0,42,0,13,0,50,0,34,0\n26,0,16,0,38,0,11,0,4,0,47,0\n63,0,68,0,73,0,69,0,60,0,45,0\n77,0,33,0,66,0,80,0,23,0,20,0\n29,0,82,0,72,0,49,0,79,0,59,0\n28,0,36,0,74,0,71,0,19,0,70,0\n21,0,9,0,14,0,17,0,62,0,55,0\n6,0,57,0,12,0,7,0,37,0,2,0\n42,0,13,0,8,0,61,0,81,0,11,0\n46,0,30,0,1,0,48,0,35,0,10,0\n18,0,76,0,40,0,75,0,3,0,51,0\n53,0,69,0,54,0,16,0,50,0,25,0\n31,0,47,0,58,0,65,0,56,0,22,0\n44,0,39,0,67,0,43,0,41,0,52,0\n38,0,27,0,4,0,64,0,15,0,78,0\n34,0,63,0,32,0,5,0,24,0,26,0\n19,0,42,0,59,0,9,0,45,0,46,0\n20,0,70,0,48,0,82,0,62,0,57,0\n6,0,29,0,76,0,11,0,54,0,33,0\n17,0,81,0,72,0,36,0,53,0,37,0\n74,0,50,0,61,0,79,0,56,0,67,0\n10,0,39,0,60,0,13,0,40,0,64,0\n8,0,23,0,44,0,7,0,18,0,26,0\n4,0,77,0,35,0,14,0,2,0,24,0\n63,0,71,0,25,0,1,0,15,0,31,0\n5,0,69,0,55,0,47,0,75,0,30,0\n68,0,41,0,12,0,27,0,66,0,16,0\n80,0,28,0,32,0,58,0,38,0,51,0\n49,0,34,0,43,0,22,0,21,0,73,0\n3,0,52,0,6,0,65,0,78,0,23,0\n62,0,45,0,7,0,13,0,53,0,72,0\n10,0,25,0,4,0,17,0,56,0,82,0\n20,0,40,0,55,0,74,0,46,0,11,0\n47,0,68,0,29,0,64,0,8,0,24,0\n30,0,9,0,71,0,79,0,37,0,54,0\n35,0,34,0,66,0,50,0,81,0,43,0\n39,0,18,0,59,0,32,0,48,0,69,0\n15,0,41,0,26,0,49,0,19,0,51,0\n21,0,16,0,76,0,52,0,31,0,60,0\n61,0,33,0,3,0,63,0,27,0,36,0\n75,0,22,0,5,0,28,0,2,0,78,0\n73,0,38,0,14,0,58,0,67,0,12,0\n42,0,1,0,65,0,57,0,80,0,44,0\n77,0,64,0,30,0,70,0,59,0,25,0\n43,0,7,0,15,0,10,0,18,0,50,0\n16,0,56,0,6,0,45,0,55,0,8,0\n3,0,69,0,13,0,26,0,20,0,79,0\n23,0,54,0,39,0,63,0,49,0,74,0\n11,0,17,0,52,0,34,0,68,0,28,0\n73,0,24,0,80,0,31,0,9,0,40,0\n47,0,72,0,70,0,32,0,66,0,67,0\n12,0,48,0,42,0,4,0,21,0,33,0\n65,0,41,0,77,0,60,0,37,0,29,0\n62,0,36,0,35,0,22,0,76,0,38,0\n75,0,14,0,19,0,27,0,53,0,57,0\n2,0,51,0,5,0,61,0,1,0,82,0\n81,0,58,0,44,0,78,0,46,0,71,0\n31,0,30,0,11,0,39,0,50,0,72,0\n45,0,32,0,43,0,25,0,33,0,74,0\n24,0,55,0,79,0,12,0,28,0,65,0\n68,0,22,0,62,0,3,0,10,0,42,0\n35,0,60,0,75,0,54,0,20,0,15,0\n49,0,53,0,52,0,47,0,77,0,18,0\n6,0,44,0,64,0,16,0,36,0,51,0\n80,0,19,0,82,0,61,0,23,0,21,0\n17,0,73,0,78,0,1,0,13,0,59,0\n34,0,2,0,71,0,48,0,38,0,56,0\n8,0,4,0,57,0,9,0,58,0,41,0\n67,0,76,0,46,0,27,0,69,0,26,0\n70,0,14,0,81,0,7,0,29,0,5,0\n66,0,40,0,52,0,37,0,63,0,22,0\n"
  },
  {
    "path": "schedules/82_11.csv",
    "content": "9,0,15,0,22,0,14,0,50,0,55,0\n17,0,3,0,58,0,4,0,82,0,54,0\n47,0,41,0,64,0,42,0,20,0,30,0\n18,0,16,0,65,0,13,0,43,0,80,0\n56,0,11,0,33,0,45,0,51,0,69,0\n81,0,23,0,35,0,72,0,57,0,70,0\n78,0,63,0,29,0,67,0,37,0,27,0\n74,0,5,0,73,0,19,0,61,0,60,0\n7,0,38,0,52,0,31,0,10,0,62,0\n36,0,24,0,12,0,48,0,26,0,75,0\n66,0,76,0,39,0,59,0,71,0,1,0\n32,0,40,0,49,0,46,0,25,0,6,0\n34,0,77,0,44,0,79,0,28,0,21,0\n8,0,68,0,50,0,53,0,2,0,69,0\n64,0,17,0,5,0,14,0,80,0,56,0\n55,0,37,0,11,0,19,0,81,0,38,0\n30,0,54,0,22,0,78,0,74,0,57,0\n43,0,72,0,52,0,3,0,60,0,29,0\n20,0,71,0,15,0,40,0,24,0,58,0\n41,0,51,0,13,0,62,0,44,0,49,0\n8,0,76,0,36,0,34,0,82,0,32,0\n53,0,28,0,47,0,25,0,21,0,63,0\n33,0,6,0,75,0,9,0,70,0,16,0\n18,0,68,0,48,0,35,0,10,0,39,0\n26,0,59,0,73,0,79,0,7,0,2,0\n42,0,31,0,65,0,67,0,46,0,61,0\n27,0,4,0,77,0,66,0,45,0,23,0\n12,0,49,0,71,0,1,0,43,0,60,0\n38,1,5,0,20,0,53,1,82,0,22,0\n56,1,29,0,19,0,13,1,25,0,76,0\n70,0,78,0,28,0,14,0,58,0,8,0\n59,0,50,0,24,0,63,0,62,0,11,0\n34,0,21,0,61,0,17,0,69,0,48,0\n74,0,79,0,36,0,68,0,23,0,80,0\n35,0,42,0,7,0,40,0,3,0,33,0\n1,0,37,0,30,0,6,0,31,0,44,0\n41,0,27,0,10,0,57,0,9,0,73,0\n75,0,12,0,55,0,32,0,65,0,2,0\n81,0,66,0,26,0,46,0,18,0,47,0\n64,0,16,0,52,0,54,0,77,0,45,0\n51,0,67,0,39,0,72,0,4,0,15,0\n33,0,35,0,53,0,60,0,34,0,24,0\n22,0,70,0,13,0,79,0,42,0,37,0\n56,0,43,0,73,0,28,0,82,0,57,0\n30,0,8,0,59,0,38,0,65,0,48,0\n14,0,81,0,6,0,7,0,41,0,36,0\n62,0,46,0,64,0,55,0,76,0,23,0\n68,0,11,0,21,0,27,0,54,0,20,0\n3,0,32,0,77,0,71,0,9,0,19,0\n10,0,26,0,69,0,16,0,4,0,78,0\n80,0,72,0,25,0,44,0,66,0,75,0\n67,0,12,0,40,0,17,0,52,0,74,0\n15,0,2,0,63,0,1,0,45,0,61,0\n29,0,50,0,39,0,58,0,5,0,49,0\n51,0,18,0,27,0,31,0,47,0,59,0\n6,0,30,0,62,0,53,0,11,0,43,0\n79,0,60,0,65,0,64,0,81,0,4,0\n57,0,55,0,13,0,20,0,36,0,3,0\n34,0,37,0,25,0,68,0,52,0,71,0\n19,0,54,0,48,0,8,0,33,0,15,0\n17,0,82,0,23,0,26,0,50,0,41,0\n22,0,1,0,47,0,56,0,75,0,35,0\n77,0,51,0,58,0,74,0,2,0,46,0\n80,0,42,0,10,0,29,0,12,0,21,0\n28,0,61,0,49,0,38,0,16,0,66,0\n63,0,72,0,69,0,14,0,76,0,31,0\n73,0,70,0,44,0,40,0,39,0,78,0\n67,0,7,0,9,0,18,0,45,0,5,0\n24,0,30,0,27,0,32,0,79,0,56,0\n71,0,35,0,74,0,55,0,65,0,17,0\n57,0,58,0,6,0,26,0,34,0,42,0\n37,0,48,0,82,0,80,0,49,0,51,0\n75,0,20,0,4,0,29,0,28,0,62,0\n13,0,68,0,59,0,14,0,40,0,23,0\n45,0,46,0,38,0,36,0,44,0,69,0\n9,0,2,0,3,0,78,0,11,0,24,0\n16,0,1,0,7,0,53,0,19,0,72,0\n50,0,67,0,60,0,77,0,47,0,70,0\n8,0,12,0,64,0,25,0,73,0,31,0\n10,0,61,0,81,0,76,0,54,0,43,0\n41,0,22,0,39,0,33,0,52,0,21,0\n66,0,18,0,63,0,5,0,15,0,32,0\n26,0,65,0,49,0,34,0,3,0,56,0\n57,0,75,0,69,0,71,0,13,0,7,0\n14,0,27,0,38,0,6,0,80,0,60,0\n53,0,42,0,9,0,59,0,4,0,51,0\n45,0,79,0,55,0,25,0,10,0,58,0\n17,0,43,0,31,0,19,0,39,0,47,0\n76,0,5,0,30,0,52,0,35,0,70,0\n15,0,44,0,68,0,12,0,82,0,16,0\n11,0,64,0,66,0,48,0,67,0,8,0\n63,0,73,0,40,0,77,0,22,0,36,0\n28,0,54,0,24,0,41,0,37,0,46,0\n78,0,20,0,72,0,32,0,50,0,61,0\n23,0,33,0,74,0,18,0,29,0,2,0\n81,0,21,0,5,0,1,0,62,0,3,0\n34,0,30,0,39,0,13,0,45,0,9,0\n47,0,11,0,57,0,79,0,14,0,82,0\n58,0,56,0,76,0,38,0,68,0,67,0\n24,0,41,0,48,0,77,0,43,0,25,0\n80,0,78,0,52,0,63,0,59,0,19,0\n8,0,61,0,29,0,26,0,44,0,71,0\n7,0,81,0,28,0,27,0,12,0,22,0\n31,0,23,0,49,0,54,0,75,0,53,0\n33,0,46,0,1,0,4,0,73,0,50,0\n65,0,66,0,10,0,6,0,51,0,20,0\n74,0,32,0,69,0,42,0,15,0,62,0\n37,0,36,0,2,0,17,0,35,0,16,0\n60,0,72,0,40,0,55,0,18,0,21,0\n70,0,38,0,61,0,64,0,29,0,24,0\n56,0,44,0,9,0,63,0,52,0,81,0\n19,0,75,0,34,0,27,0,50,0,46,0\n4,0,31,0,13,0,5,0,77,0,68,0\n62,0,66,0,79,0,78,0,33,0,12,0\n35,0,58,0,80,0,32,0,41,0,11,0\n57,0,53,0,76,0,65,0,37,0,40,0\n54,0,1,0,55,0,51,0,26,0,70,0\n43,0,67,0,16,0,22,0,59,0,20,0\n60,0,25,0,15,0,7,0,30,0,17,0\n2,0,47,0,42,0,28,0,10,0,72,0\n64,0,82,0,36,0,69,0,39,0,18,0\n23,0,6,0,48,0,3,0,71,0,73,0\n14,0,21,0,45,0,8,0,74,0,49,0\n53,0,80,0,26,0,33,0,77,0,81,0\n4,0,52,0,61,0,13,0,11,0,27,0\n34,0,31,0,29,0,40,0,41,0,66,0\n46,0,56,0,15,0,70,0,59,0,10,0\n57,0,32,0,18,0,38,0,1,0,28,0\n60,0,20,0,2,0,44,0,48,0,76,0\n45,0,17,0,22,0,6,0,24,0,72,0\n49,0,7,0,63,0,42,0,55,0,68,0\n71,0,78,0,82,0,35,0,64,0,21,0\n75,0,79,0,51,0,5,0,43,0,8,0\n23,0,19,0,69,0,30,0,58,0,12,0\n3,0,50,0,25,0,74,0,16,0,39,0\n9,0,47,0,54,0,36,0,62,0,65,0\n67,0,14,0,18,0,73,0,37,0,53,0\n59,0,49,0,77,0,57,0,61,0,17,0\n60,0,28,0,45,0,31,0,26,0,68,0\n35,0,46,0,48,0,29,0,79,0,13,0\n44,0,32,0,10,0,22,0,64,0,23,0\n3,0,38,0,76,0,75,0,15,0,41,0\n36,0,25,0,11,0,42,0,5,0,78,0\n37,0,54,0,50,0,7,0,66,0,56,0\n52,0,6,0,55,0,8,0,47,0,24,0\n70,0,4,0,43,0,63,0,34,0,74,0\n19,0,62,0,14,0,2,0,71,0,67,0\n21,0,16,0,73,0,30,0,81,0,51,0\n40,0,80,0,20,0,9,0,1,0,69,0\n58,0,27,0,82,0,72,0,65,0,33,0\n12,0,38,0,56,0,39,0,53,0,13,0\n"
  },
  {
    "path": "schedules/82_12.csv",
    "content": "78,0,37,0,35,0,40,0,21,0,64,0\n36,0,34,0,63,0,33,0,7,0,60,0\n48,0,18,0,17,0,31,0,62,0,19,0\n55,0,41,0,53,0,16,0,42,0,38,0\n11,0,52,0,51,0,81,0,39,0,72,0\n28,0,4,0,5,0,1,0,30,0,12,0\n67,0,71,0,14,0,27,0,80,0,43,0\n69,0,6,0,66,0,26,0,13,0,56,0\n57,0,73,0,77,0,45,0,29,0,76,0\n15,0,10,0,54,0,8,0,44,0,68,0\n9,0,23,0,70,0,50,0,24,0,47,0\n22,0,74,0,59,0,65,0,61,0,49,0\n20,0,82,0,25,0,32,0,58,0,79,0\n3,0,2,0,11,0,75,0,46,0,18,0\n51,0,31,0,66,0,69,0,71,0,19,0\n27,0,60,0,76,0,64,0,13,0,81,0\n34,0,45,0,17,0,15,0,56,0,37,0\n24,0,78,0,43,0,1,0,35,0,42,0\n7,0,53,0,30,0,40,0,29,0,74,0\n41,0,14,0,21,0,79,0,6,0,55,0\n68,0,2,0,25,0,57,0,65,0,47,0\n10,0,50,0,77,0,52,0,32,0,62,0\n5,0,39,0,58,0,3,0,23,0,80,0\n82,0,46,0,59,0,70,0,8,0,4,0\n73,0,54,0,28,0,20,0,36,0,48,0\n12,0,22,0,72,0,16,0,63,0,26,0\n75,0,49,0,38,0,9,0,67,0,61,0\n33,0,57,0,37,0,44,0,66,0,60,0\n76,0,62,0,7,0,78,0,15,0,79,0\n10,0,34,0,13,0,5,0,14,0,31,0\n80,0,17,0,29,0,41,0,27,0,4,0\n6,0,58,0,46,0,45,0,24,0,64,0\n3,0,16,0,71,0,8,0,32,0,2,0\n55,0,81,0,30,0,18,0,26,0,20,0\n22,0,50,0,69,0,11,0,38,0,54,0\n61,0,33,0,47,0,82,0,51,0,48,0\n53,0,68,0,28,0,43,0,73,0,49,0\n40,0,65,0,63,0,9,0,52,0,1,0\n75,0,39,0,19,0,59,0,12,0,42,0\n21,0,70,0,25,0,44,0,67,0,74,0\n56,0,23,0,72,0,77,0,35,0,36,0\n66,0,27,0,10,0,22,0,30,0,3,0\n51,0,26,0,38,0,58,0,34,0,7,0\n14,0,8,0,81,0,49,0,57,0,24,0\n33,0,50,0,64,0,2,0,4,0,29,0\n19,0,13,0,6,0,11,0,78,0,65,0\n55,0,46,0,67,0,31,0,47,0,52,0\n48,0,72,0,35,0,44,0,76,0,32,0\n39,0,61,0,71,0,45,0,37,0,73,0\n20,0,79,0,56,0,5,0,63,0,53,0\n43,0,25,0,60,0,12,0,21,0,54,0\n77,0,80,0,69,0,59,0,1,0,36,0\n15,0,18,0,62,0,82,0,70,0,41,0\n23,0,42,0,17,0,68,0,9,0,40,0\n28,0,75,0,13,0,16,0,74,0,33,0\n45,0,3,0,47,0,31,0,38,0,35,0\n24,0,4,0,44,0,34,0,20,0,19,0\n50,0,43,0,21,0,63,0,61,0,57,0\n26,0,78,0,46,0,39,0,53,0,60,0\n81,0,58,0,29,0,54,0,72,0,66,0\n32,0,56,0,41,0,11,0,68,0,12,0\n23,0,15,0,55,0,27,0,28,0,65,0\n1,0,74,0,79,0,67,0,64,0,10,0\n59,0,37,0,18,0,5,0,36,0,76,0\n48,0,6,0,75,0,52,0,30,0,69,0\n82,0,8,0,16,0,7,0,9,0,80,0\n2,0,73,0,62,0,51,0,25,0,42,0\n71,0,49,0,22,0,17,0,70,0,77,0\n40,0,39,0,20,0,14,0,15,0,50,0\n74,0,31,0,78,0,57,0,32,0,27,0\n19,0,55,0,1,0,58,0,56,0,68,0\n67,0,4,0,48,0,45,0,11,0,63,0\n5,0,7,0,64,0,43,0,81,0,61,0\n10,0,72,0,25,0,60,0,28,0,6,0\n69,0,24,0,42,0,37,0,52,0,3,0\n34,0,8,0,51,0,53,0,65,0,21,0\n70,0,49,0,54,0,40,0,2,0,80,0\n47,0,36,0,75,0,41,0,66,0,17,0\n35,0,79,0,73,0,18,0,16,0,22,0\n26,0,9,0,29,0,62,0,59,0,14,0\n38,0,76,0,30,0,23,0,71,0,33,0\n12,0,82,0,77,0,44,0,13,0,46,0\n7,0,65,0,45,0,11,0,42,0,21,0\n4,0,3,0,40,0,60,0,55,0,51,0\n64,0,19,0,70,0,72,0,34,0,5,0\n28,0,18,0,63,0,24,0,61,0,66,0\n14,0,52,0,29,0,56,0,47,0,16,0\n53,0,36,0,67,0,71,0,10,0,58,0\n33,0,79,0,68,0,26,0,81,0,77,0\n59,0,44,0,50,0,78,0,6,0,17,0\n82,0,30,0,43,0,31,0,2,0,39,0\n80,0,22,0,75,0,25,0,15,0,48,0\n57,0,38,0,62,0,13,0,1,0,20,0\n32,0,49,0,37,0,23,0,46,0,54,0\n8,0,69,0,27,0,12,0,73,0,76,0\n35,0,9,0,51,0,74,0,41,0,5,0\n71,0,64,0,56,0,47,0,7,0,59,0\n10,0,33,0,29,0,21,0,17,0,24,0\n26,0,43,0,45,0,44,0,75,0,40,0\n62,0,13,0,53,0,3,0,72,0,67,0\n61,0,28,0,32,0,34,0,42,0,80,0\n25,0,49,0,76,0,39,0,66,0,55,0\n27,0,58,0,12,0,50,0,79,0,48,0\n15,0,69,0,9,0,35,0,46,0,2,0\n36,0,22,0,19,0,52,0,57,0,82,0\n14,0,38,0,65,0,4,0,81,0,37,0\n41,0,78,0,54,0,63,0,77,0,30,0\n11,0,1,0,31,0,73,0,70,0,60,0\n8,0,18,0,6,0,23,0,74,0,20,0\n16,0,50,0,5,0,68,0,66,0,45,0\n76,0,21,0,47,0,28,0,26,0,49,0\n56,0,57,0,34,0,46,0,79,0,27,0\n32,0,67,0,19,0,69,0,39,0,29,0\n9,0,2,0,81,0,37,0,48,0,10,0\n11,0,14,0,17,0,1,0,53,0,82,0\n62,0,55,0,61,0,36,0,8,0,12,0\n52,0,74,0,58,0,78,0,73,0,4,0\n44,0,42,0,54,0,18,0,64,0,51,0\n65,0,43,0,20,0,33,0,70,0,3,0\n40,0,16,0,31,0,25,0,77,0,6,0\n68,0,63,0,35,0,59,0,80,0,30,0\n23,0,60,0,13,0,22,0,7,0,41,0\n24,0,71,0,38,0,15,0,72,0,75,0\n37,0,47,0,26,0,11,0,19,0,8,0\n82,0,28,0,45,0,78,0,69,0,81,0\n33,0,52,0,53,0,27,0,5,0,54,0\n48,0,77,0,74,0,43,0,3,0,34,0\n16,0,12,0,20,0,17,0,51,0,67,0\n44,0,41,0,61,0,76,0,58,0,40,0\n30,0,60,0,56,0,49,0,50,0,42,0\n31,0,32,0,21,0,22,0,24,0,15,0\n39,0,70,0,68,0,36,0,38,0,6,0\n64,0,73,0,14,0,63,0,23,0,75,0\n80,0,46,0,66,0,72,0,62,0,65,0\n59,0,57,0,35,0,7,0,55,0,10,0\n18,0,9,0,13,0,25,0,71,0,4,0\n1,0,29,0,61,0,2,0,79,0,44,0\n76,0,3,0,74,0,82,0,56,0,54,0\n8,0,17,0,30,0,58,0,43,0,11,0\n42,0,6,0,15,0,5,0,67,0,33,0\n12,0,32,0,66,0,38,0,53,0,64,0\n39,0,24,0,65,0,48,0,41,0,60,0\n52,0,59,0,20,0,23,0,45,0,25,0\n79,0,36,0,31,0,78,0,9,0,49,0\n2,0,7,0,19,0,28,0,77,0,14,0\n47,0,40,0,72,0,57,0,69,0,18,0\n63,0,37,0,51,0,13,0,29,0,55,0\n80,0,35,0,81,0,50,0,73,0,46,0\n27,0,75,0,16,0,70,0,1,0,10,0\n34,0,21,0,22,0,71,0,62,0,68,0\n4,0,61,0,23,0,26,0,53,0,31,0\n32,0,60,0,45,0,14,0,30,0,9,0\n54,0,3,0,39,0,17,0,79,0,57,0\n40,0,5,0,56,0,38,0,48,0,8,0\n73,0,66,0,59,0,67,0,82,0,24,0\n58,0,65,0,70,0,35,0,28,0,29,0\n44,0,11,0,64,0,49,0,36,0,16,0\n37,0,34,0,1,0,41,0,25,0,50,0\n77,0,42,0,72,0,27,0,20,0,21,0\n51,0,46,0,76,0,43,0,6,0,22,0\n68,0,4,0,7,0,69,0,62,0,75,0\n12,0,78,0,10,0,33,0,18,0,80,0\n15,0,63,0,74,0,47,0,81,0,19,0\n52,0,55,0,26,0,2,0,13,0,71,0\n"
  },
  {
    "path": "schedules/82_13.csv",
    "content": "81,0,40,0,66,0,23,0,26,0,21,0\n11,0,29,0,69,0,46,0,82,0,31,0\n48,0,70,0,30,0,22,0,41,0,51,0\n79,0,73,0,35,0,76,0,38,0,14,0\n32,0,59,0,63,0,33,0,10,0,5,0\n9,0,12,0,36,0,16,0,74,0,25,0\n58,0,50,0,65,0,17,0,56,0,45,0\n47,0,39,0,4,0,6,0,55,0,37,0\n49,0,54,0,15,0,57,0,53,0,52,0\n8,0,2,0,42,0,43,0,13,0,34,0\n18,0,72,0,28,0,19,0,24,0,60,0\n75,0,67,0,61,0,7,0,20,0,71,0\n27,0,62,0,3,0,44,0,77,0,64,0\n1,0,80,0,76,0,78,0,68,0,59,0\n21,0,74,0,65,0,30,0,16,0,39,0\n31,0,45,0,12,0,73,0,70,0,51,0\n41,0,32,0,17,0,40,0,11,0,53,0\n6,0,60,0,2,0,66,0,57,0,36,0\n48,0,19,0,55,0,7,0,58,0,29,0\n75,0,64,0,22,0,14,0,8,0,72,0\n20,0,54,0,43,0,82,0,79,0,9,0\n50,0,18,0,4,0,80,0,27,0,5,0\n71,0,46,0,15,0,1,0,62,0,26,0\n38,0,37,0,28,0,77,0,56,0,81,0\n25,0,78,0,52,0,10,0,24,0,44,0\n34,0,49,0,61,0,23,0,67,0,13,0\n63,0,3,0,69,0,42,0,68,0,47,0\n35,0,58,0,82,0,33,0,16,0,31,0\n75,1,9,0,55,0,21,1,73,0,64,0\n15,0,8,0,6,0,72,0,54,0,29,0\n77,0,19,0,18,0,71,0,22,0,57,0\n11,0,62,0,52,0,66,0,45,0,80,0\n76,0,10,0,27,0,70,0,23,0,34,0\n60,0,53,0,5,0,65,0,51,0,42,0\n20,0,39,0,49,0,35,0,41,0,12,0\n7,0,40,0,14,0,25,0,3,0,1,0\n36,0,59,0,74,0,63,0,28,0,17,0\n33,0,38,0,47,0,78,0,50,0,13,0\n24,0,26,0,32,0,68,0,2,0,37,0\n30,0,61,0,44,0,46,0,4,0,43,0\n56,0,79,0,67,0,69,0,48,0,81,0\n39,0,8,0,76,0,19,0,9,0,15,0\n25,0,6,0,34,0,75,0,51,0,21,0\n74,0,41,0,23,0,1,0,72,0,57,0\n40,0,65,0,64,0,38,0,36,0,42,0\n27,0,78,0,7,0,32,0,60,0,82,0\n37,0,10,0,16,0,71,0,31,0,55,0\n69,0,49,0,70,0,4,0,66,0,48,0\n62,0,12,0,50,0,28,0,67,0,52,0\n68,0,45,0,79,0,61,0,18,0,29,0\n17,0,44,0,54,0,77,0,80,0,14,0\n47,0,20,0,59,0,30,0,81,0,58,0\n22,0,2,0,13,0,5,0,11,0,3,0\n26,0,63,0,43,0,35,0,56,0,24,0\n33,0,46,0,21,0,73,0,53,0,4,0\n42,0,31,0,78,0,66,0,41,0,75,0\n61,0,79,0,51,0,16,0,50,0,27,0\n62,0,48,0,44,0,8,0,74,0,38,0\n30,0,72,0,71,0,32,0,76,0,36,0\n49,0,2,0,65,0,28,0,58,0,10,0\n5,0,39,0,23,0,67,0,68,0,54,0\n69,0,24,0,47,0,12,0,40,0,60,0\n7,0,22,0,6,0,81,0,43,0,17,0\n56,0,73,0,80,0,1,0,29,0,34,0\n26,0,77,0,53,0,55,0,11,0,59,0\n46,0,18,0,57,0,37,0,9,0,35,0\n82,0,19,0,14,0,70,0,13,0,63,0\n45,0,3,0,33,0,15,0,20,0,25,0\n52,0,68,0,60,0,64,0,58,0,41,0\n16,0,24,0,21,0,54,0,47,0,7,0\n73,0,71,0,44,0,69,0,28,0,42,0\n80,0,31,0,32,0,49,0,79,0,8,0\n6,0,4,0,57,0,38,0,59,0,22,0\n36,0,13,0,35,0,62,0,75,0,53,0\n76,0,20,0,66,0,25,0,50,0,48,0\n67,0,78,0,65,0,46,0,63,0,2,0\n11,0,56,0,23,0,15,0,55,0,12,0\n17,0,14,0,29,0,51,0,26,0,10,0\n19,0,74,0,43,0,40,0,52,0,33,0\n77,0,72,0,61,0,5,0,70,0,9,0\n27,0,64,0,81,0,39,0,45,0,1,0\n34,0,82,0,3,0,30,0,37,0,18,0\n50,0,44,0,67,0,31,0,6,0,73,0\n23,0,80,0,22,0,28,0,53,0,20,0\n32,0,7,0,69,0,59,0,51,0,15,0\n12,0,29,0,46,0,76,0,54,0,42,0\n17,0,49,0,11,0,60,0,38,0,16,0\n10,0,40,0,68,0,13,0,9,0,45,0\n43,0,55,0,3,0,66,0,72,0,65,0\n1,0,52,0,21,0,82,0,77,0,36,0\n19,0,33,0,81,0,27,0,2,0,61,0\n64,0,70,0,79,0,74,0,78,0,71,0\n63,0,41,0,25,0,62,0,37,0,4,0\n56,0,75,0,5,0,30,0,24,0,57,0\n58,0,48,0,39,0,18,0,26,0,14,0\n47,0,35,0,46,0,34,0,8,0,28,0\n9,0,50,0,42,0,49,0,82,0,59,0\n38,0,13,0,17,0,69,0,20,0,27,0\n22,0,54,0,45,0,67,0,32,0,55,0\n15,0,63,0,37,0,2,0,40,0,79,0\n52,0,81,0,10,0,57,0,76,0,3,0\n41,0,44,0,7,0,65,0,18,0,23,0\n26,0,5,0,31,0,1,0,12,0,19,0\n33,0,75,0,30,0,29,0,60,0,62,0\n16,0,58,0,8,0,24,0,77,0,6,0\n14,0,11,0,34,0,71,0,68,0,4,0\n36,0,80,0,64,0,51,0,43,0,48,0\n53,0,66,0,35,0,61,0,47,0,74,0\n72,0,70,0,56,0,25,0,39,0,21,0\n73,0,37,0,45,0,78,0,5,0,49,0\n60,0,44,0,13,0,12,0,63,0,76,0\n1,0,33,0,69,0,22,0,18,0,55,0\n9,0,77,0,62,0,32,0,6,0,65,0\n10,0,20,0,50,0,42,0,24,0,11,0\n64,0,30,0,68,0,2,0,7,0,35,0\n54,0,48,0,21,0,3,0,61,0,59,0\n16,0,57,0,29,0,70,0,67,0,43,0\n72,0,58,0,53,0,40,0,78,0,34,0\n79,0,25,0,38,0,23,0,46,0,19,0\n51,0,8,0,71,0,4,0,56,0,52,0\n81,0,31,0,14,0,74,0,80,0,15,0\n41,0,36,0,27,0,26,0,47,0,73,0\n82,0,75,0,28,0,39,0,17,0,66,0\n37,0,48,0,11,0,33,0,44,0,35,0\n12,0,34,0,57,0,64,0,32,0,50,0\n76,0,25,0,43,0,69,0,58,0,5,0\n38,0,24,0,2,0,21,0,53,0,45,0\n74,0,13,0,4,0,77,0,15,0,7,0\n22,0,72,0,63,0,29,0,52,0,27,0\n55,0,80,0,81,0,46,0,70,0,36,0\n8,0,73,0,68,0,10,0,17,0,60,0\n62,0,23,0,6,0,82,0,26,0,78,0\n75,0,20,0,18,0,40,0,49,0,16,0\n1,0,42,0,66,0,30,0,19,0,79,0\n3,0,51,0,47,0,9,0,39,0,67,0\n56,0,28,0,61,0,14,0,59,0,41,0\n71,0,65,0,25,0,31,0,54,0,13,0\n5,0,36,0,52,0,33,0,7,0,11,0\n77,0,60,0,45,0,34,0,48,0,46,0\n53,0,16,0,81,0,50,0,63,0,8,0\n29,0,26,0,22,0,64,0,49,0,74,0\n67,0,17,0,21,0,37,0,19,0,78,0\n28,0,70,0,1,0,75,0,3,0,38,0\n41,0,24,0,82,0,71,0,76,0,79,0\n4,0,2,0,31,0,72,0,9,0,23,0\n51,0,57,0,55,0,44,0,68,0,20,0\n62,0,32,0,39,0,43,0,61,0,69,0\n12,0,14,0,10,0,66,0,30,0,6,0\n15,0,27,0,35,0,58,0,42,0,80,0\n59,0,56,0,54,0,40,0,18,0,73,0\n65,0,19,0,76,0,47,0,11,0,75,0\n24,0,17,0,4,0,64,0,1,0,67,0\n79,0,13,0,5,0,55,0,60,0,21,0\n34,0,39,0,36,0,44,0,31,0,22,0\n16,0,28,0,9,0,30,0,45,0,26,0\n70,0,57,0,42,0,33,0,62,0,8,0\n74,0,50,0,2,0,54,0,69,0,41,0\n32,0,35,0,78,0,81,0,29,0,25,0\n51,0,58,0,77,0,63,0,23,0,73,0\n3,0,6,0,40,0,71,0,61,0,80,0\n66,0,7,0,49,0,56,0,46,0,27,0\n59,0,37,0,52,0,20,0,14,0,65,0\n15,0,38,0,18,0,10,0,47,0,43,0\n12,0,53,0,68,0,48,0,72,0,82,0\n41,0,9,0,29,0,5,0,81,0,44,0\n45,0,23,0,69,0,75,0,36,0,8,0\n21,0,71,0,70,0,60,0,50,0,35,0\n78,0,1,0,58,0,54,0,11,0,51,0\n46,0,66,0,59,0,24,0,64,0,13,0\n30,0,25,0,2,0,52,0,17,0,18,0\n10,0,53,0,7,0,77,0,39,0,79,0\n16,0,56,0,19,0,4,0,32,0,3,0\n42,0,20,0,37,0,6,0,76,0,74,0\n34,0,47,0,55,0,62,0,14,0,49,0\n67,0,38,0,26,0,33,0,72,0,80,0\n63,0,40,0,31,0,48,0,57,0,28,0\n82,0,73,0,15,0,61,0,22,0,65,0\n43,0,68,0,75,0,12,0,27,0,21,0\n"
  },
  {
    "path": "schedules/82_14.csv",
    "content": "80,0,44,0,12,0,79,0,34,0,7,0\n32,0,54,0,70,0,56,0,65,0,51,0\n76,0,71,0,53,0,52,0,3,0,47,0\n8,0,23,0,6,0,36,0,64,0,77,0\n82,0,31,0,55,0,26,0,19,0,69,0\n75,0,41,0,73,0,40,0,60,0,9,0\n81,0,11,0,2,0,15,0,59,0,1,0\n72,0,49,0,46,0,28,0,10,0,35,0\n39,0,43,0,42,0,13,0,57,0,17,0\n22,0,74,0,62,0,63,0,18,0,61,0\n20,0,45,0,68,0,5,0,37,0,67,0\n25,0,30,0,38,0,29,0,33,0,21,0\n48,0,66,0,14,0,58,0,24,0,4,0\n78,0,50,0,77,0,16,0,27,0,80,0\n49,0,60,0,44,0,69,0,31,0,56,0\n70,0,47,0,17,0,2,0,73,0,8,0\n13,0,52,0,6,0,9,0,61,0,46,0\n12,0,41,0,62,0,45,0,1,0,72,0\n43,0,10,0,5,0,29,0,63,0,71,0\n14,0,28,0,19,0,23,0,54,0,22,0\n66,0,79,0,21,0,68,0,40,0,50,0\n3,0,37,0,64,0,42,0,33,0,4,0\n53,0,67,0,18,0,48,0,75,0,55,0\n11,0,27,0,51,0,20,0,36,0,30,0\n32,0,16,0,26,0,25,0,35,0,59,0\n24,0,76,0,7,0,57,0,78,0,82,0\n39,0,81,0,58,0,34,0,74,0,38,0\n15,0,28,0,23,0,65,0,71,0,17,0\n33,1,70,0,69,0,45,1,21,0,10,0\n48,1,19,0,2,0,13,1,64,0,5,0\n72,0,4,0,77,0,68,0,53,0,30,0\n11,0,36,0,62,0,43,0,44,0,25,0\n49,0,57,0,80,0,60,0,63,0,54,0\n74,0,82,0,50,0,42,0,81,0,73,0\n40,0,20,0,65,0,26,0,24,0,3,0\n6,0,27,0,7,0,47,0,59,0,58,0\n52,0,38,0,12,0,75,0,67,0,32,0\n31,0,79,0,39,0,8,0,61,0,66,0\n18,0,1,0,46,0,56,0,76,0,16,0\n29,0,55,0,51,0,14,0,41,0,35,0\n9,0,34,0,78,0,37,0,22,0,15,0\n10,0,77,0,20,0,74,0,44,0,19,0\n7,0,4,0,60,0,23,0,50,0,13,0\n59,0,73,0,64,0,68,0,52,0,69,0\n45,0,75,0,2,0,57,0,71,0,42,0\n54,0,81,0,79,0,58,0,76,0,46,0\n21,0,53,0,65,0,36,0,41,0,1,0\n3,0,11,0,9,0,39,0,14,0,12,0\n27,0,30,0,63,0,15,0,67,0,40,0\n70,0,6,0,55,0,49,0,78,0,62,0\n48,0,17,0,31,0,35,0,51,0,33,0\n56,0,37,0,43,0,26,0,22,0,8,0\n24,0,47,0,66,0,28,0,29,0,16,0\n80,0,72,0,5,0,82,0,32,0,18,0\n25,0,34,0,68,0,38,0,61,0,3,0\n14,0,54,0,45,0,60,0,53,0,13,0\n55,0,44,0,30,0,59,0,81,0,65,0\n35,0,76,0,48,0,39,0,15,0,36,0\n46,0,12,0,78,0,33,0,62,0,43,0\n58,0,9,0,64,0,29,0,70,0,40,0\n10,0,8,0,31,0,50,0,75,0,80,0\n56,0,26,0,52,0,5,0,16,0,51,0\n23,0,25,0,11,0,73,0,66,0,34,0\n2,0,61,0,41,0,69,0,20,0,82,0\n72,0,79,0,71,0,27,0,67,0,19,0\n32,0,63,0,77,0,42,0,28,0,18,0\n47,0,49,0,37,0,57,0,21,0,74,0\n4,0,17,0,1,0,22,0,6,0,38,0\n7,0,59,0,8,0,24,0,5,0,33,0\n56,0,23,0,80,0,35,0,81,0,3,0\n78,0,53,0,58,0,61,0,44,0,51,0\n68,0,31,0,54,0,71,0,41,0,82,0\n34,0,52,0,29,0,36,0,26,0,72,0\n57,0,65,0,16,0,13,0,9,0,62,0\n6,0,10,0,40,0,42,0,55,0,22,0\n49,0,18,0,45,0,30,0,39,0,50,0\n12,0,4,0,69,0,25,0,28,0,27,0\n75,0,1,0,79,0,14,0,47,0,15,0\n74,0,24,0,73,0,32,0,43,0,76,0\n37,0,77,0,48,0,63,0,70,0,11,0\n17,0,21,0,7,0,46,0,19,0,20,0\n64,0,66,0,2,0,60,0,67,0,38,0\n36,0,3,0,10,0,31,0,58,0,13,0\n68,0,39,0,80,0,28,0,52,0,44,0\n33,0,6,0,61,0,75,0,29,0,27,0\n73,0,45,0,26,0,8,0,4,0,14,0\n63,0,43,0,16,0,41,0,30,0,23,0\n19,0,76,0,18,0,51,0,34,0,59,0\n40,0,53,0,17,0,82,0,12,0,5,0\n66,0,77,0,1,0,71,0,54,0,49,0\n74,0,15,0,9,0,7,0,64,0,69,0\n47,0,60,0,32,0,20,0,81,0,62,0\n38,0,70,0,42,0,79,0,24,0,11,0\n22,0,2,0,56,0,48,0,21,0,72,0\n25,0,46,0,37,0,65,0,55,0,50,0\n35,0,57,0,8,0,78,0,67,0,10,0\n49,0,23,0,51,0,12,0,68,0,29,0\n80,0,13,0,71,0,59,0,74,0,40,0\n60,0,82,0,34,0,43,0,27,0,1,0\n33,0,77,0,26,0,73,0,39,0,61,0\n56,0,42,0,63,0,36,0,7,0,53,0\n47,0,11,0,46,0,32,0,22,0,19,0\n72,0,15,0,16,0,45,0,70,0,44,0\n31,0,66,0,35,0,52,0,14,0,65,0\n24,0,81,0,67,0,6,0,69,0,21,0\n57,0,5,0,54,0,79,0,4,0,55,0\n58,0,62,0,75,0,76,0,2,0,37,0\n50,0,28,0,20,0,9,0,48,0,38,0\n78,0,18,0,25,0,41,0,17,0,64,0\n30,0,70,0,59,0,3,0,74,0,23,0\n15,0,26,0,68,0,80,0,36,0,47,0\n14,0,67,0,34,0,16,0,49,0,33,0\n29,0,60,0,8,0,82,0,65,0,22,0\n10,0,53,0,51,0,37,0,27,0,39,0\n35,0,62,0,38,0,73,0,71,0,7,0\n61,0,32,0,79,0,45,0,55,0,17,0\n3,0,57,0,41,0,44,0,46,0,77,0\n66,0,69,0,76,0,6,0,30,0,5,0\n24,0,72,0,75,0,54,0,64,0,11,0\n9,0,43,0,18,0,4,0,81,0,31,0\n2,0,28,0,78,0,25,0,40,0,56,0\n13,0,12,0,63,0,21,0,58,0,20,0\n1,0,52,0,19,0,42,0,48,0,50,0\n82,0,38,0,15,0,77,0,51,0,14,0\n16,0,68,0,62,0,69,0,8,0,39,0\n64,0,34,0,30,0,55,0,47,0,71,0\n3,0,43,0,17,0,7,0,72,0,54,0\n81,0,33,0,22,0,53,0,41,0,79,0\n73,0,20,0,76,0,29,0,80,0,31,0\n58,0,35,0,63,0,19,0,25,0,45,0\n48,0,24,0,59,0,10,0,56,0,12,0\n60,0,18,0,21,0,78,0,52,0,11,0\n37,0,32,0,23,0,1,0,13,0,40,0\n9,0,27,0,42,0,49,0,66,0,26,0\n36,0,61,0,5,0,70,0,57,0,28,0\n67,0,4,0,74,0,75,0,46,0,65,0\n44,0,6,0,35,0,2,0,50,0,63,0\n3,0,30,0,29,0,8,0,19,0,62,0\n14,0,10,0,17,0,81,0,64,0,68,0\n33,0,40,0,38,0,47,0,72,0,18,0\n48,0,69,0,53,0,26,0,79,0,23,0\n32,0,56,0,57,0,15,0,66,0,58,0\n41,0,20,0,4,0,39,0,70,0,34,0\n75,0,21,0,51,0,80,0,45,0,43,0\n36,0,52,0,74,0,55,0,54,0,2,0\n82,0,46,0,42,0,59,0,44,0,9,0\n60,0,71,0,61,0,37,0,24,0,16,0\n11,0,12,0,65,0,50,0,76,0,6,0\n1,0,5,0,28,0,78,0,27,0,73,0\n67,0,22,0,31,0,7,0,77,0,13,0\n49,0,8,0,15,0,25,0,53,0,20,0\n47,0,39,0,56,0,43,0,55,0,23,0\n32,0,68,0,33,0,2,0,9,0,57,0\n79,0,37,0,82,0,30,0,35,0,52,0\n71,0,40,0,36,0,46,0,69,0,14,0\n54,0,73,0,19,0,12,0,18,0,6,0\n59,0,67,0,28,0,31,0,62,0,1,0\n13,0,41,0,70,0,26,0,38,0,76,0\n74,0,42,0,72,0,51,0,60,0,25,0\n4,0,61,0,16,0,80,0,11,0,10,0\n3,0,44,0,21,0,64,0,48,0,27,0\n50,0,24,0,29,0,34,0,17,0,63,0\n7,0,22,0,78,0,66,0,45,0,81,0\n58,0,65,0,5,0,75,0,49,0,77,0\n33,0,52,0,67,0,70,0,15,0,43,0\n30,0,26,0,46,0,2,0,60,0,12,0\n76,0,61,0,80,0,42,0,14,0,23,0\n6,0,16,0,64,0,53,0,31,0,32,0\n27,0,13,0,44,0,18,0,35,0,24,0\n69,0,59,0,38,0,78,0,37,0,54,0\n81,0,51,0,19,0,40,0,4,0,49,0\n45,0,47,0,62,0,17,0,77,0,9,0\n25,0,22,0,21,0,71,0,39,0,5,0\n1,0,29,0,48,0,68,0,74,0,7,0\n75,0,63,0,36,0,82,0,3,0,66,0\n56,0,73,0,79,0,65,0,10,0,34,0\n58,0,41,0,55,0,8,0,11,0,28,0\n72,0,50,0,14,0,20,0,57,0,59,0\n27,0,31,0,23,0,38,0,45,0,46,0\n62,0,15,0,42,0,5,0,21,0,4,0\n67,0,54,0,48,0,61,0,25,0,47,0\n19,0,53,0,33,0,66,0,74,0,80,0\n35,0,69,0,40,0,34,0,77,0,43,0\n29,0,39,0,13,0,75,0,81,0,56,0\n44,0,36,0,37,0,17,0,73,0,49,0\n3,0,28,0,51,0,79,0,60,0,6,0\n30,0,7,0,10,0,52,0,32,0,41,0\n8,0,55,0,63,0,9,0,72,0,76,0\n65,0,78,0,24,0,18,0,2,0,68,0\n64,0,57,0,22,0,16,0,20,0,12,0\n50,0,71,0,1,0,26,0,58,0,70,0\n82,0,45,0,13,0,11,0,33,0,48,0\n"
  },
  {
    "path": "schedules/82_2.csv",
    "content": "16,0,80,0,12,0,45,0,29,0,7,0\n50,0,71,0,26,0,14,0,61,0,18,0\n40,0,27,0,17,0,13,0,51,0,35,0\n15,0,56,0,31,0,62,0,67,0,28,0\n74,0,58,0,77,0,23,0,37,0,2,0\n21,0,36,0,34,0,73,0,33,0,3,0\n24,0,72,0,48,0,38,0,75,0,76,0\n68,0,20,0,32,0,57,0,6,0,82,0\n10,0,44,0,11,0,5,0,19,0,4,0\n53,0,52,0,81,0,79,0,66,0,8,0\n47,0,9,0,25,0,41,0,70,0,1,0\n64,0,30,0,43,0,49,0,60,0,69,0\n65,0,63,0,42,0,22,0,46,0,54,0\n59,0,78,0,36,0,39,0,55,0,72,0\n33,0,7,0,61,0,75,0,68,0,17,0\n4,0,26,0,6,0,40,0,15,0,24,0\n45,0,2,0,56,0,66,0,44,0,50,0\n62,0,13,0,14,0,81,0,76,0,12,0\n1,0,18,0,5,0,64,0,21,0,58,0\n23,0,49,0,35,0,32,0,22,0,41,0\n70,0,63,0,8,0,29,0,31,0,48,0\n69,0,19,0,16,0,47,0,53,0,42,0\n55,0,79,0,82,0,10,0,37,0,27,0\n73,0,39,0,67,0,25,0,65,0,80,0\n78,0,28,0,60,0,52,0,11,0,3,0\n43,0,57,0,46,0,59,0,9,0,77,0\n74,0,38,0,20,0,30,0,34,0,71,0\n54,0,49,1,8,1,51,0,66,1,44,1\n"
  },
  {
    "path": "schedules/82_3.csv",
    "content": "42,0,81,0,56,0,2,0,58,0,73,0\n60,0,64,0,28,0,18,0,16,0,27,0\n69,0,43,0,45,0,72,0,31,0,19,0\n22,0,6,0,10,0,54,0,7,0,8,0\n41,0,23,0,51,0,5,0,52,0,66,0\n12,0,1,0,82,0,67,0,79,0,36,0\n34,0,14,0,39,0,3,0,4,0,53,0\n78,0,15,0,32,0,74,0,20,0,77,0\n71,0,9,0,33,0,37,0,13,0,30,0\n24,0,61,0,11,0,38,0,48,0,68,0\n63,0,46,0,57,0,47,0,59,0,62,0\n17,0,26,0,80,0,44,0,25,0,70,0\n21,0,50,0,29,0,40,0,75,0,35,0\n55,0,49,0,8,0,76,0,65,0,39,0\n3,0,43,0,2,0,51,0,60,0,20,0\n18,0,22,0,5,0,82,0,45,0,56,0\n52,0,37,0,58,0,79,0,6,0,32,0\n27,0,36,0,4,0,15,0,24,0,57,0\n11,0,28,0,31,0,9,0,67,0,73,0\n78,0,70,0,71,0,63,0,75,0,69,0\n54,0,53,0,12,0,50,0,42,0,68,0\n1,0,46,0,33,0,61,0,80,0,49,0\n65,0,40,0,13,0,64,0,47,0,74,0\n38,0,29,0,44,0,77,0,30,0,14,0\n62,0,26,0,76,0,34,0,41,0,21,0\n66,0,25,0,19,0,59,0,7,0,81,0\n48,0,16,0,72,0,55,0,10,0,23,0\n35,0,69,0,82,0,17,0,15,0,39,0\n70,0,79,0,53,0,57,0,43,0,49,0\n13,0,3,0,8,0,1,0,50,0,24,0\n80,0,47,0,37,0,4,0,54,0,60,0\n58,0,20,0,75,0,76,0,9,0,64,0\n25,0,36,0,68,0,28,0,33,0,29,0\n62,0,18,0,19,0,14,0,71,0,12,0\n17,0,2,0,74,0,45,0,66,0,55,0\n10,0,52,0,65,0,78,0,81,0,31,0\n41,0,22,0,30,0,11,0,42,0,72,0\n6,0,63,0,67,0,21,0,44,0,48,0\n77,0,51,0,56,0,46,0,26,0,35,0\n23,0,59,0,27,0,32,0,73,0,61,0\n16,0,7,0,38,0,5,0,34,0,40,0\n"
  },
  {
    "path": "schedules/82_4.csv",
    "content": "6,0,23,0,24,0,72,0,29,0,73,0\n28,0,5,0,76,0,56,0,59,0,4,0\n11,0,48,0,22,0,30,0,36,0,15,0\n20,0,57,0,77,0,8,0,67,0,38,0\n46,0,25,0,71,0,41,0,16,0,68,0\n44,0,74,0,27,0,32,0,43,0,13,0\n64,0,31,0,35,0,2,0,37,0,52,0\n7,0,9,0,80,0,21,0,60,0,58,0\n81,0,62,0,19,0,50,0,66,0,3,0\n39,0,47,0,82,0,65,0,75,0,61,0\n63,0,42,0,40,0,51,0,18,0,33,0\n78,0,34,0,14,0,53,0,26,0,70,0\n12,0,10,0,1,0,45,0,17,0,54,0\n49,0,55,0,56,0,79,0,69,0,52,0\n76,0,7,0,38,0,30,0,73,0,16,0\n31,0,67,0,13,0,50,0,68,0,28,0\n47,0,66,0,44,0,46,0,35,0,8,0\n60,0,51,0,4,0,72,0,3,0,57,0\n2,0,15,0,70,0,6,0,9,0,75,0\n71,0,77,0,17,0,63,0,74,0,23,0\n10,0,69,0,36,0,14,0,20,0,33,0\n24,0,32,0,45,0,49,0,81,0,48,0\n82,0,79,0,26,0,25,0,21,0,64,0\n78,0,11,0,27,0,1,0,5,0,29,0\n53,0,61,0,22,0,55,0,54,0,40,0\n39,0,37,0,58,0,42,0,43,0,59,0\n18,0,65,0,41,0,19,0,34,0,80,0\n12,0,23,0,20,0,62,0,31,0,7,0\n50,1,45,0,52,0,4,1,6,0,47,0\n81,0,28,0,73,0,74,0,82,0,57,0\n15,0,21,0,68,0,14,0,17,0,76,0\n25,0,35,0,61,0,38,0,27,0,70,0\n10,0,32,0,53,0,58,0,11,0,51,0\n46,0,43,0,75,0,64,0,34,0,69,0\n79,0,16,0,13,0,80,0,42,0,1,0\n41,0,2,0,36,0,40,0,77,0,49,0\n33,0,62,0,30,0,78,0,37,0,60,0\n12,0,3,0,8,0,24,0,26,0,65,0\n5,0,55,0,66,0,9,0,39,0,63,0\n67,0,19,0,22,0,71,0,29,0,56,0\n54,0,59,0,72,0,48,0,44,0,18,0\n34,0,61,0,17,0,79,0,11,0,7,0\n20,0,75,0,73,0,51,0,13,0,52,0\n4,0,74,0,37,0,10,0,16,0,70,0\n41,0,64,0,60,0,15,0,27,0,24,0\n58,0,49,0,6,0,65,0,1,0,68,0\n36,0,42,0,5,0,12,0,81,0,67,0\n9,0,46,0,29,0,76,0,53,0,50,0\n43,0,54,0,57,0,56,0,33,0,47,0\n39,0,62,0,72,0,69,0,22,0,21,0\n63,0,8,0,25,0,19,0,2,0,48,0\n26,0,23,0,59,0,40,0,66,0,45,0\n80,0,3,0,31,0,78,0,77,0,44,0\n71,0,55,0,18,0,30,0,35,0,28,0\n38,0,82,0,50,0,32,0,14,0,4,0\n"
  },
  {
    "path": "schedules/82_5.csv",
    "content": "14,0,2,0,60,0,1,0,42,0,35,0\n73,0,55,0,23,0,51,0,3,0,72,0\n15,0,21,0,30,0,46,0,22,0,24,0\n76,0,4,0,61,0,39,0,70,0,8,0\n34,0,68,0,71,0,40,0,69,0,82,0\n7,0,57,0,62,0,50,0,12,0,79,0\n29,0,13,0,47,0,58,0,56,0,44,0\n45,0,6,0,18,0,31,0,17,0,9,0\n43,0,63,0,75,0,77,0,25,0,59,0\n64,0,74,0,33,0,19,0,78,0,27,0\n67,0,41,0,52,0,53,0,11,0,26,0\n28,0,38,0,81,0,5,0,66,0,16,0\n10,0,80,0,20,0,54,0,36,0,49,0\n37,0,65,0,4,0,32,0,48,0,42,0\n9,0,23,0,79,0,61,0,34,0,24,0\n56,0,72,0,25,0,21,0,68,0,7,0\n17,0,22,0,39,0,63,0,12,0,60,0\n77,0,76,0,51,0,13,0,71,0,1,0\n5,0,30,0,47,0,18,0,43,0,19,0\n67,0,38,0,35,0,70,0,62,0,58,0\n49,0,14,0,50,0,45,0,40,0,81,0\n53,0,55,0,20,0,6,0,29,0,16,0\n11,0,8,0,10,0,64,0,69,0,15,0\n44,0,54,0,74,0,2,0,31,0,28,0\n3,0,26,0,27,0,48,0,75,0,57,0\n46,0,36,0,52,0,32,0,59,0,33,0\n66,0,41,0,65,0,82,0,73,0,80,0\n78,0,68,0,50,0,37,0,51,0,30,0\n61,1,1,0,25,0,47,1,67,0,20,0\n42,1,64,0,79,0,53,1,81,0,13,0\n10,0,58,0,4,0,55,0,7,0,5,0\n6,0,60,0,19,0,38,0,21,0,26,0\n14,0,23,0,22,0,27,0,18,0,59,0\n62,0,45,0,63,0,76,0,74,0,73,0\n43,0,66,0,31,0,49,0,52,0,48,0\n65,0,40,0,28,0,8,0,33,0,35,0\n82,0,75,0,32,0,15,0,16,0,56,0\n54,0,29,0,39,0,34,0,77,0,57,0\n12,0,24,0,44,0,3,0,11,0,37,0\n9,0,71,0,36,0,70,0,41,0,78,0\n46,0,80,0,69,0,72,0,17,0,2,0\n20,0,42,0,43,0,73,0,7,0,27,0\n76,0,81,0,35,0,23,0,30,0,25,0\n13,0,32,0,40,0,26,0,74,0,10,0\n59,0,48,0,8,0,19,0,55,0,68,0\n5,0,31,0,37,0,39,0,67,0,79,0\n61,0,78,0,11,0,18,0,38,0,63,0\n64,0,29,0,51,0,52,0,62,0,65,0\n3,0,1,0,17,0,36,0,15,0,66,0\n69,0,53,0,50,0,54,0,9,0,58,0\n28,0,71,0,21,0,14,0,47,0,80,0\n16,0,41,0,49,0,2,0,4,0,22,0\n77,0,45,0,82,0,72,0,44,0,60,0\n56,0,24,0,57,0,70,0,6,0,33,0\n34,0,12,0,78,0,46,0,75,0,42,0\n76,0,59,0,38,0,29,0,40,0,7,0\n54,0,68,0,32,0,62,0,43,0,17,0\n63,0,79,0,8,0,30,0,20,0,3,0\n41,0,69,0,21,0,61,0,74,0,37,0\n49,0,39,0,27,0,47,0,72,0,35,0\n19,0,81,0,31,0,71,0,4,0,57,0\n33,0,15,0,53,0,80,0,25,0,34,0\n16,0,9,0,14,0,51,0,67,0,44,0\n2,0,73,0,11,0,58,0,6,0,48,0\n46,0,60,0,56,0,66,0,50,0,23,0\n82,0,64,0,26,0,12,0,1,0,55,0\n65,0,5,0,36,0,13,0,45,0,24,0\n52,0,70,0,18,0,10,0,75,0,28,0\n77,0,61,0,42,0,22,0,47,0,53,0\n"
  },
  {
    "path": "schedules/82_6.csv",
    "content": "25,0,32,0,26,0,79,0,65,0,36,0\n59,0,78,0,29,0,69,0,4,0,43,0\n52,0,72,0,20,0,54,0,55,0,33,0\n24,0,49,0,81,0,8,0,12,0,51,0\n28,0,15,0,64,0,57,0,56,0,62,0\n5,0,30,0,60,0,6,0,53,0,44,0\n73,0,11,0,48,0,23,0,75,0,47,0\n70,0,71,0,58,0,63,0,19,0,31,0\n21,0,3,0,42,0,18,0,22,0,66,0\n76,0,1,0,13,0,10,0,41,0,7,0\n46,0,50,0,38,0,34,0,61,0,77,0\n39,0,35,0,16,0,45,0,17,0,40,0\n14,0,67,0,80,0,82,0,2,0,74,0\n27,0,68,0,5,0,9,0,37,0,33,0\n65,0,23,0,63,0,64,0,53,0,72,0\n18,0,59,0,32,0,54,0,73,0,62,0\n29,0,24,0,42,0,1,0,60,0,58,0\n41,0,56,0,47,0,31,0,77,0,21,0\n12,0,22,0,79,0,78,0,10,0,71,0\n38,0,7,0,6,0,35,0,80,0,49,0\n4,0,8,0,20,0,34,0,28,0,74,0\n45,0,14,0,44,0,76,0,70,0,43,0\n57,0,37,0,2,0,50,0,17,0,81,0\n46,0,36,0,52,0,11,0,27,0,66,0\n51,0,55,0,69,0,48,0,9,0,19,0\n13,0,30,0,16,0,25,0,68,0,75,0\n61,0,3,0,39,0,15,0,67,0,26,0\n40,0,18,0,34,0,82,0,29,0,10,0\n22,0,44,0,24,0,41,0,23,0,20,0\n56,0,53,0,8,0,73,0,78,0,35,0\n58,0,32,0,21,0,14,0,12,0,27,0\n5,0,43,0,42,0,55,0,63,0,57,0\n52,0,75,0,6,0,37,0,59,0,71,0\n61,0,49,0,25,0,72,0,69,0,2,0\n80,0,54,0,64,0,50,0,11,0,45,0\n66,0,19,0,15,0,7,0,60,0,17,0\n47,0,79,0,39,0,68,0,82,0,81,0\n16,0,4,0,26,0,70,0,51,0,77,0\n48,0,40,0,31,0,1,0,36,0,67,0\n65,0,9,0,76,0,30,0,28,0,38,0\n74,0,33,0,3,0,46,0,13,0,62,0\n80,0,61,0,56,0,24,0,5,0,52,0\n44,0,27,0,71,0,34,0,42,0,35,0\n20,0,57,0,75,0,58,0,7,0,79,0\n66,0,55,0,37,0,77,0,45,0,32,0\n18,0,51,0,67,0,63,0,78,0,41,0\n30,0,14,0,19,0,49,0,23,0,54,0\n72,0,68,0,1,0,6,0,22,0,62,0\n50,0,13,0,69,0,65,0,21,0,40,0\n82,0,76,0,4,0,11,0,25,0,12,0\n29,0,81,0,70,0,53,0,3,0,38,0\n9,0,74,0,31,0,16,0,15,0,43,0\n10,0,46,0,73,0,2,0,39,0,64,0\n33,0,8,0,36,0,59,0,60,0,47,0\n28,0,17,0,42,0,48,0,26,0,52,0\n35,0,77,0,57,0,18,0,65,0,68,0\n22,0,11,0,67,0,49,0,56,0,32,0\n71,0,1,0,69,0,80,0,20,0,30,0\n41,0,34,0,70,0,37,0,79,0,15,0\n66,0,40,0,73,0,74,0,38,0,12,0\n50,0,19,0,62,0,4,0,24,0,47,0\n17,0,75,0,10,0,44,0,55,0,36,0\n31,0,53,0,2,0,28,0,59,0,13,0\n29,0,33,0,51,0,76,0,61,0,64,0\n45,0,26,0,78,0,72,0,60,0,27,0\n43,0,82,0,23,0,8,0,3,0,6,0\n63,0,7,0,25,0,14,0,9,0,46,0\n16,0,21,0,54,0,81,0,5,0,48,0\n58,0,65,0,49,0,39,0,4,0,66,0\n38,0,10,0,68,0,24,0,11,0,69,0\n53,0,47,0,17,0,76,0,32,0,80,0\n59,0,77,0,12,0,72,0,42,0,30,0\n34,0,75,0,64,0,26,0,43,0,19,0\n36,0,2,0,9,0,6,0,20,0,78,0\n55,0,62,0,7,0,70,0,8,0,40,0\n60,0,52,0,41,0,73,0,57,0,3,0\n31,0,5,0,39,0,51,0,14,0,22,0\n79,0,54,0,27,0,13,0,29,0,67,0\n50,0,18,0,44,0,33,0,56,0,16,0\n28,0,1,0,63,0,61,0,21,0,37,0\n81,0,74,0,23,0,35,0,58,0,25,0\n71,0,15,0,82,0,46,0,48,0,45,0\n"
  },
  {
    "path": "schedules/82_7.csv",
    "content": "9,0,80,0,23,0,49,0,50,0,45,0\n35,0,3,0,43,0,76,0,56,0,73,0\n14,0,48,0,42,0,38,0,7,0,16,0\n59,0,33,0,63,0,12,0,69,0,18,0\n22,0,81,0,72,0,8,0,41,0,32,0\n79,0,4,0,31,0,17,0,67,0,29,0\n47,0,37,0,78,0,6,0,64,0,82,0\n19,0,62,0,44,0,28,0,51,0,36,0\n20,0,10,0,1,0,77,0,13,0,34,0\n21,0,40,0,11,0,65,0,2,0,25,0\n57,0,39,0,26,0,74,0,27,0,71,0\n53,0,60,0,75,0,54,0,15,0,68,0\n61,0,30,0,5,0,46,0,70,0,24,0\n66,0,58,0,67,0,55,0,52,0,45,0\n63,0,73,0,6,0,19,0,4,0,22,0\n64,0,50,0,18,0,14,0,56,0,36,0\n51,0,38,0,20,0,25,0,17,0,76,0\n9,0,81,0,47,0,57,0,16,0,40,0\n39,0,13,0,80,0,35,0,8,0,42,0\n61,0,74,0,32,0,31,0,60,0,59,0\n10,0,62,0,71,0,68,0,24,0,29,0\n54,0,70,0,7,0,72,0,33,0,82,0\n28,0,58,0,5,0,37,0,43,0,69,0\n44,0,27,0,49,0,21,0,1,0,55,0\n30,0,2,0,15,0,3,0,41,0,66,0\n12,0,77,0,26,0,53,0,48,0,65,0\n34,0,46,0,52,0,79,0,23,0,11,0\n78,0,73,0,24,0,75,0,39,0,38,0\n42,1,51,0,54,0,57,1,29,0,61,0\n5,0,25,0,33,0,81,0,71,0,56,0\n82,0,13,0,43,0,59,0,22,0,21,0\n72,0,76,0,14,0,49,0,58,0,62,0\n67,0,80,0,40,0,19,0,68,0,12,0\n74,0,3,0,11,0,28,0,17,0,9,0\n20,0,52,0,60,0,6,0,27,0,70,0\n8,0,2,0,75,0,64,0,10,0,26,0\n36,0,15,0,48,0,31,0,23,0,63,0\n37,0,45,0,16,0,35,0,1,0,41,0\n7,0,65,0,69,0,30,0,47,0,34,0\n79,0,55,0,32,0,53,0,78,0,50,0\n46,0,18,0,66,0,4,0,77,0,44,0\n19,0,13,0,38,0,61,0,27,0,72,0\n57,0,11,0,5,0,6,0,75,0,59,0\n81,0,28,0,15,0,42,0,49,0,52,0\n41,0,23,0,20,0,12,0,54,0,39,0\n30,0,51,0,64,0,33,0,43,0,67,0\n55,0,7,0,74,0,35,0,40,0,24,0\n21,0,14,0,77,0,45,0,31,0,3,0\n79,0,58,0,18,0,9,0,71,0,1,0\n17,0,10,0,56,0,65,0,82,0,60,0\n34,0,63,0,29,0,25,0,50,0,8,0\n69,0,53,0,22,0,80,0,46,0,16,0\n70,0,73,0,66,0,68,0,36,0,37,0\n2,0,48,0,4,0,32,0,62,0,47,0\n76,0,44,0,42,0,78,0,26,0,23,0\n75,0,18,0,72,0,31,0,51,0,40,0\n21,0,17,0,12,0,24,0,64,0,58,0\n71,0,14,0,52,0,30,0,13,0,63,0\n28,0,41,0,27,0,59,0,10,0,53,0\n36,0,16,0,25,0,79,0,43,0,39,0\n50,0,69,0,73,0,82,0,61,0,2,0\n81,0,4,0,1,0,3,0,80,0,54,0\n37,0,22,0,65,0,62,0,33,0,57,0\n68,0,46,0,32,0,38,0,6,0,49,0\n67,0,77,0,76,0,74,0,8,0,5,0\n60,0,78,0,35,0,48,0,66,0,11,0\n34,0,9,0,19,0,26,0,15,0,55,0\n45,0,56,0,44,0,29,0,20,0,7,0\n47,0,50,0,42,0,70,0,43,0,12,0\n17,0,2,0,59,0,52,0,1,0,72,0\n31,0,39,0,6,0,81,0,30,0,10,0\n28,0,68,0,4,0,16,0,23,0,21,0\n35,0,82,0,27,0,5,0,63,0,62,0\n79,0,37,0,61,0,8,0,14,0,40,0\n75,0,19,0,3,0,20,0,46,0,33,0\n36,0,38,0,11,0,71,0,47,0,77,0\n45,0,13,0,57,0,15,0,69,0,25,0\n80,0,41,0,29,0,55,0,76,0,48,0\n32,0,65,0,54,0,64,0,44,0,9,0\n60,0,26,0,7,0,73,0,18,0,67,0\n70,0,22,0,58,0,34,0,74,0,78,0\n49,0,53,0,56,0,66,0,51,0,24,0\n72,0,50,0,71,0,20,0,37,0,4,0\n31,0,68,0,69,0,27,0,11,0,42,0\n23,0,55,0,17,0,57,0,43,0,77,0\n29,0,35,0,33,0,28,0,14,0,32,0\n40,0,1,0,62,0,60,0,39,0,46,0\n70,0,59,0,8,0,38,0,44,0,15,0\n52,0,24,0,16,0,19,0,18,0,65,0\n7,0,12,0,78,0,51,0,2,0,13,0\n47,0,66,0,54,0,10,0,79,0,74,0\n64,0,48,0,3,0,49,0,5,0,22,0\n9,0,67,0,56,0,75,0,63,0,41,0\n61,0,25,0,6,0,58,0,26,0,80,0\n34,0,82,0,45,0,76,0,81,0,36,0\n21,0,53,0,57,0,73,0,30,0,42,0\n"
  },
  {
    "path": "schedules/82_8.csv",
    "content": "20,0,77,0,35,0,5,0,58,0,81,0\n2,0,69,0,51,0,47,0,45,0,13,0\n23,0,74,0,60,0,40,0,22,0,11,0\n26,0,37,0,8,0,71,0,41,0,19,0\n33,0,59,0,65,0,12,0,24,0,57,0\n18,0,28,0,80,0,1,0,76,0,73,0\n78,0,44,0,10,0,31,0,66,0,21,0\n6,0,75,0,42,0,53,0,64,0,63,0\n55,0,49,0,68,0,15,0,16,0,50,0\n36,0,30,0,25,0,32,0,72,0,9,0\n14,0,27,0,54,0,79,0,52,0,38,0\n17,0,29,0,67,0,48,0,43,0,4,0\n46,0,39,0,7,0,61,0,70,0,3,0\n62,0,34,0,45,0,82,0,56,0,11,0\n35,0,13,0,76,0,10,0,75,0,19,0\n41,0,40,0,80,0,50,0,65,0,47,0\n25,0,15,0,51,0,12,0,23,0,66,0\n60,0,53,0,59,0,44,0,37,0,14,0\n18,0,5,0,26,0,48,0,68,0,30,0\n7,0,58,0,78,0,57,0,8,0,28,0\n62,0,9,0,64,0,74,0,29,0,39,0\n73,0,56,0,24,0,27,0,55,0,43,0\n72,0,1,0,81,0,69,0,31,0,16,0\n3,0,32,0,20,0,2,0,21,0,42,0\n49,0,61,0,82,0,63,0,17,0,52,0\n6,0,46,0,38,0,77,0,4,0,34,0\n22,0,70,0,79,0,33,0,71,0,67,0\n54,0,47,0,57,0,36,0,39,0,60,0\n64,1,8,0,10,0,59,1,48,0,73,0\n7,1,23,0,44,0,81,1,27,0,29,0\n72,0,19,0,50,0,58,0,14,0,45,0\n66,0,3,0,52,0,5,0,28,0,56,0\n49,0,43,0,76,0,12,0,20,0,30,0\n11,0,79,0,68,0,4,0,35,0,80,0\n6,0,13,0,65,0,18,0,70,0,21,0\n16,0,32,0,51,0,74,0,82,0,71,0\n33,0,2,0,53,0,54,0,25,0,62,0\n42,0,41,0,15,0,61,0,1,0,34,0\n40,0,38,0,67,0,26,0,69,0,75,0\n36,0,55,0,37,0,46,0,78,0,17,0\n24,0,77,0,31,0,22,0,63,0,9,0\n28,0,29,0,30,0,50,0,35,0,6,0\n72,0,74,0,3,0,73,0,49,0,47,0\n45,0,16,0,79,0,43,0,64,0,44,0\n27,0,61,0,33,0,60,0,19,0,81,0\n52,0,80,0,53,0,15,0,10,0,39,0\n12,0,21,0,14,0,41,0,69,0,7,0\n68,0,78,0,67,0,24,0,1,0,23,0\n66,0,75,0,8,0,77,0,65,0,2,0\n59,0,71,0,76,0,31,0,11,0,5,0\n34,0,54,0,9,0,37,0,20,0,13,0\n46,0,58,0,22,0,42,0,25,0,48,0\n32,0,17,0,57,0,38,0,18,0,56,0\n63,0,4,0,40,0,55,0,62,0,51,0\n82,0,26,0,14,0,36,0,70,0,15,0\n30,0,7,0,74,0,77,0,53,0,19,0\n67,0,5,0,6,0,12,0,72,0,27,0\n13,0,43,0,8,0,3,0,81,0,80,0\n73,0,29,0,2,0,71,0,78,0,61,0\n79,0,42,0,59,0,39,0,17,0,28,0\n65,0,10,0,11,0,49,0,46,0,69,0\n9,0,1,0,38,0,58,0,51,0,60,0\n40,0,36,0,48,0,24,0,66,0,20,0\n23,0,37,0,57,0,35,0,64,0,82,0\n31,0,25,0,63,0,18,0,34,0,50,0\n68,0,76,0,41,0,52,0,70,0,44,0\n56,0,47,0,4,0,75,0,33,0,16,0\n22,0,26,0,55,0,54,0,45,0,32,0\n21,0,71,0,27,0,62,0,28,0,46,0\n19,0,20,0,39,0,51,0,67,0,65,0\n37,0,5,0,24,0,49,0,79,0,2,0\n57,0,1,0,14,0,40,0,43,0,77,0\n73,0,42,0,81,0,66,0,9,0,68,0\n38,0,7,0,10,0,82,0,30,0,47,0\n70,0,54,0,69,0,80,0,56,0,78,0\n4,0,60,0,15,0,13,0,32,0,64,0\n62,0,72,0,18,0,44,0,8,0,22,0\n34,0,55,0,53,0,29,0,76,0,33,0\n61,0,26,0,21,0,16,0,35,0,25,0\n52,0,50,0,12,0,75,0,48,0,11,0\n58,0,63,0,74,0,36,0,41,0,59,0\n3,0,31,0,17,0,45,0,6,0,23,0\n32,0,39,0,43,0,69,0,37,0,68,0\n49,0,18,0,78,0,77,0,27,0,42,0\n64,0,66,0,46,0,67,0,54,0,76,0\n70,0,2,0,34,0,72,0,55,0,57,0\n82,0,53,0,50,0,79,0,8,0,9,0\n13,0,73,0,33,0,7,0,26,0,63,0\n22,0,30,0,81,0,41,0,51,0,17,0\n74,0,28,0,31,0,75,0,61,0,20,0\n40,0,56,0,19,0,15,0,6,0,59,0\n62,0,16,0,48,0,14,0,80,0,23,0\n44,0,36,0,71,0,3,0,12,0,38,0\n29,0,11,0,24,0,58,0,21,0,47,0\n5,0,1,0,4,0,10,0,25,0,45,0\n52,0,35,0,43,0,60,0,65,0,78,0\n67,0,31,0,32,0,41,0,73,0,53,0\n33,0,77,0,51,0,28,0,64,0,68,0\n61,0,69,0,66,0,59,0,62,0,50,0\n82,0,81,0,12,0,40,0,18,0,54,0\n16,0,9,0,17,0,11,0,2,0,7,0\n45,0,24,0,70,0,38,0,74,0,42,0\n76,0,65,0,27,0,4,0,3,0,37,0\n29,0,10,0,20,0,26,0,72,0,60,0\n34,0,21,0,80,0,19,0,22,0,36,0\n25,0,14,0,6,0,8,0,49,0,39,0\n75,0,44,0,57,0,15,0,5,0,46,0\n79,0,58,0,23,0,56,0,30,0,13,0\n48,0,47,0,71,0,1,0,63,0,35,0\n55,0,64,0,7,0,52,0,59,0,81,0\n"
  },
  {
    "path": "schedules/82_9.csv",
    "content": "65,0,12,0,80,0,42,0,66,0,13,0\n78,0,39,0,7,0,6,0,61,0,19,0\n28,0,33,0,2,0,31,0,54,0,40,0\n15,0,36,0,67,0,30,0,21,0,1,0\n24,0,58,0,29,0,8,0,17,0,9,0\n52,0,75,0,10,0,14,0,5,0,71,0\n48,0,22,0,25,0,76,0,64,0,59,0\n11,0,68,0,45,0,81,0,41,0,37,0\n50,0,23,0,69,0,18,0,74,0,32,0\n49,0,27,0,72,0,20,0,34,0,53,0\n51,0,77,0,43,0,79,0,46,0,35,0\n55,0,70,0,57,0,16,0,82,0,4,0\n47,0,73,0,62,0,38,0,63,0,26,0\n60,0,3,0,78,0,44,0,56,0,80,0\n48,0,36,0,19,0,58,0,14,0,68,0\n42,0,15,0,18,0,24,0,52,0,2,0\n61,0,12,0,20,0,21,0,54,0,75,0\n59,0,17,0,40,0,6,0,79,0,49,0\n45,0,71,0,74,0,43,0,9,0,76,0\n73,0,8,0,16,0,30,0,46,0,65,0\n34,0,55,0,13,0,63,0,77,0,10,0\n27,0,5,0,51,0,64,0,50,0,38,0\n37,0,47,0,31,0,44,0,23,0,25,0\n33,0,70,0,29,0,26,0,60,0,11,0\n56,0,69,0,62,0,4,0,72,0,41,0\n28,0,3,0,22,0,35,0,82,0,67,0\n66,0,7,0,1,0,81,0,57,0,53,0\n32,0,49,0,9,0,39,0,75,0,68,0\n50,0,76,0,46,0,13,0,2,0,21,0\n18,0,19,0,34,0,44,0,16,0,17,0\n45,0,42,0,38,0,60,0,10,0,30,0\n72,0,64,0,63,0,33,0,71,0,80,0\n59,0,52,0,74,0,51,0,47,0,54,0\n82,0,37,0,24,0,26,0,27,0,36,0\n35,0,5,0,81,0,25,0,62,0,58,0\n48,0,69,0,73,0,29,0,79,0,61,0\n39,0,22,0,56,0,12,0,57,0,15,0\n14,0,70,0,6,0,8,0,1,0,23,0\n53,0,43,0,28,0,20,0,55,0,78,0\n40,0,11,0,77,0,66,0,3,0,4,0\n41,0,67,0,31,0,65,0,32,0,7,0\n19,0,52,0,21,0,33,0,49,0,25,0\n79,0,44,0,30,0,72,0,54,0,76,0\n81,0,15,0,80,0,17,0,26,0,50,0\n9,0,1,0,51,0,10,0,22,0,69,0\n46,0,48,0,42,0,34,0,57,0,62,0\n58,0,61,0,47,0,70,0,56,0,77,0\n4,0,29,0,18,0,38,0,78,0,37,0\n55,0,60,0,40,0,75,0,36,0,41,0\n16,0,14,0,67,0,27,0,66,0,74,0\n23,0,65,0,59,0,24,0,63,0,43,0\n8,0,68,0,7,0,12,0,28,0,5,0\n35,0,13,0,64,0,39,0,31,0,11,0\n32,0,6,0,2,0,82,0,45,0,20,0\n73,0,3,0,54,0,71,0,53,0,15,0\n77,0,17,0,33,0,30,0,69,0,37,0\n42,0,78,0,22,0,41,0,16,0,47,0\n18,0,81,0,75,0,65,0,48,0,70,0\n14,0,79,0,56,0,50,0,9,0,63,0\n68,0,21,0,64,0,24,0,4,0,34,0\n74,0,40,0,26,0,7,0,25,0,45,0\n1,0,76,0,5,0,73,0,11,0,82,0\n44,0,71,0,39,0,55,0,51,0,29,0\n28,0,46,0,60,0,52,0,61,0,27,0\n57,0,8,0,49,0,80,0,43,0,36,0\n23,0,12,0,72,0,2,0,10,0,35,0\n38,0,53,0,6,0,13,0,67,0,58,0\n20,0,62,0,19,0,59,0,3,0,31,0\n32,0,30,0,63,0,66,0,78,0,48,0\n22,0,21,0,65,0,14,0,55,0,45,0\n47,0,68,0,79,0,82,0,60,0,71,0\n64,0,52,0,16,0,43,0,7,0,56,0\n1,0,49,0,4,0,42,0,50,0,54,0\n8,0,27,0,35,0,15,0,44,0,69,0\n6,0,41,0,25,0,28,0,80,0,34,0\n19,0,13,0,40,0,72,0,29,0,5,0\n11,0,61,0,38,0,23,0,20,0,57,0\n31,0,9,0,77,0,18,0,53,0,26,0\n81,0,74,0,33,0,10,0,3,0,36,0\n59,0,37,0,46,0,32,0,58,0,12,0\n17,0,75,0,67,0,2,0,73,0,51,0\n62,0,66,0,70,0,39,0,76,0,24,0\n4,0,5,0,43,0,15,0,47,0,6,0\n23,0,71,0,56,0,48,0,40,0,21,0\n25,0,13,0,27,0,18,0,1,0,79,0\n10,0,28,0,26,0,49,0,44,0,64,0\n30,0,58,0,7,0,80,0,55,0,11,0\n35,0,57,0,50,0,68,0,78,0,59,0\n66,0,82,0,51,0,61,0,8,0,31,0\n3,0,29,0,63,0,16,0,45,0,75,0\n54,0,67,0,24,0,46,0,19,0,81,0\n14,0,34,0,76,0,33,0,12,0,69,0\n70,0,17,0,22,0,72,0,38,0,74,0\n53,0,37,0,60,0,65,0,62,0,2,0\n41,0,77,0,39,0,20,0,52,0,73,0\n36,0,9,0,61,0,32,0,42,0,25,0\n80,0,48,0,35,0,1,0,47,0,45,0\n54,0,66,0,68,0,55,0,56,0,18,0\n76,0,51,0,26,0,3,0,23,0,58,0\n15,0,14,0,38,0,49,0,46,0,78,0\n13,0,75,0,24,0,57,0,30,0,28,0\n12,0,41,0,29,0,82,0,74,0,64,0\n8,0,60,0,72,0,67,0,59,0,77,0\n2,0,4,0,27,0,71,0,19,0,22,0\n5,0,16,0,79,0,39,0,33,0,53,0\n65,0,50,0,44,0,52,0,36,0,6,0\n21,0,32,0,62,0,17,0,43,0,11,0\n73,0,9,0,37,0,34,0,70,0,7,0\n20,0,63,0,69,0,81,0,42,0,40,0\n31,0,29,0,80,0,10,0,68,0,46,0\n61,0,71,0,35,0,18,0,41,0,49,0\n79,0,45,0,15,0,58,0,64,0,66,0\n74,0,57,0,44,0,5,0,77,0,2,0\n32,0,55,0,1,0,52,0,72,0,3,0\n54,0,26,0,34,0,8,0,75,0,22,0\n20,0,25,0,24,0,51,0,14,0,60,0\n38,0,21,0,59,0,16,0,81,0,9,0\n11,0,65,0,28,0,47,0,69,0,19,0\n56,0,31,0,6,0,27,0,42,0,73,0\n70,0,53,0,30,0,12,0,50,0,40,0\n17,0,36,0,7,0,63,0,4,0,76,0\n78,0,23,0,82,0,33,0,13,0,62,0\n10,0,37,0,43,0,67,0,39,0,48,0\n"
  },
  {
    "path": "schedules/83_1.csv",
    "content": "48,0,72,0,65,0,81,0,10,0,58,0\n11,0,24,0,28,0,6,0,39,0,17,0\n66,0,2,0,9,0,75,0,7,0,74,0\n73,0,71,0,77,0,40,0,41,0,67,0\n34,0,20,0,61,0,52,0,16,0,60,0\n63,0,23,0,21,0,14,0,64,0,30,0\n69,0,56,0,27,0,55,0,45,0,32,0\n47,0,38,0,3,0,5,0,36,0,13,0\n83,0,18,0,78,0,53,0,79,0,12,0\n1,0,51,0,15,0,26,0,50,0,70,0\n33,0,4,0,44,0,31,0,42,0,54,0\n19,0,76,0,35,0,59,0,46,0,8,0\n57,0,68,0,80,0,37,0,29,0,43,0\n82,0,49,0,22,0,25,0,62,0,73,1\n"
  },
  {
    "path": "schedules/83_10.csv",
    "content": "68,0,48,0,64,0,22,0,59,0,83,0\n67,0,57,0,26,0,35,0,46,0,8,0\n65,0,34,0,42,0,38,0,25,0,43,0\n21,0,19,0,44,0,23,0,33,0,17,0\n66,0,63,0,24,0,78,0,79,0,71,0\n2,0,60,0,13,0,6,0,20,0,29,0\n27,0,4,0,15,0,11,0,5,0,7,0\n49,0,73,0,40,0,70,0,18,0,80,0\n39,0,56,0,74,0,54,0,82,0,36,0\n53,0,47,0,52,0,41,0,81,0,76,0\n72,0,12,0,3,0,61,0,77,0,9,0\n55,0,75,0,16,0,50,0,10,0,58,0\n30,0,32,0,51,0,62,0,1,0,28,0\n14,0,45,0,69,0,31,0,37,0,7,0\n21,0,13,0,26,0,79,0,18,0,59,0\n73,0,42,0,54,0,6,0,8,0,4,0\n63,0,2,0,53,0,23,0,57,0,39,0\n64,0,80,0,33,0,34,0,78,0,61,0\n9,0,11,0,48,0,55,0,17,0,67,0\n47,0,40,0,82,0,58,0,51,0,68,0\n65,0,71,0,29,0,70,0,52,0,32,0\n50,0,83,0,24,0,31,0,72,0,1,0\n12,0,10,0,20,0,41,0,35,0,43,0\n56,0,16,0,37,0,28,0,15,0,25,0\n46,0,45,0,5,0,49,0,74,0,22,0\n38,0,19,0,81,0,76,0,30,0,14,0\n44,0,69,0,77,0,66,0,60,0,36,0\n3,0,75,0,21,0,62,0,27,0,40,0\n72,1,13,0,42,0,82,1,52,0,78,0\n58,1,39,0,8,0,59,1,9,0,71,0\n51,0,6,0,17,0,12,0,65,0,18,0\n10,0,22,0,54,0,63,0,11,0,70,0\n68,0,56,0,7,0,23,0,38,0,50,0\n67,0,31,0,32,0,33,0,49,0,60,0\n26,0,77,0,1,0,25,0,81,0,80,0\n3,0,29,0,14,0,64,0,55,0,53,0\n41,0,19,0,46,0,36,0,16,0,27,0\n62,0,2,0,73,0,37,0,44,0,35,0\n30,0,20,0,75,0,34,0,45,0,15,0\n79,0,66,0,28,0,74,0,48,0,76,0\n61,0,83,0,4,0,43,0,69,0,24,0\n47,0,57,0,31,0,5,0,54,0,12,0\n82,0,6,0,71,0,50,0,21,0,80,0\n78,0,51,0,65,0,10,0,53,0,77,0\n11,0,64,0,46,0,13,0,1,0,58,0\n60,0,20,0,39,0,30,0,37,0,18,0\n33,0,32,0,74,0,27,0,14,0,8,0\n70,0,19,0,35,0,4,0,28,0,75,0\n25,0,61,0,36,0,48,0,57,0,52,0\n16,0,72,0,66,0,67,0,45,0,43,0\n62,0,17,0,22,0,42,0,81,0,24,0\n40,0,55,0,7,0,26,0,41,0,44,0\n34,0,79,0,3,0,2,0,56,0,47,0\n76,0,59,0,69,0,15,0,73,0,23,0\n49,0,83,0,63,0,9,0,29,0,38,0\n68,0,1,0,21,0,5,0,20,0,52,0\n53,0,45,0,48,0,54,0,50,0,33,0\n4,0,25,0,17,0,10,0,46,0,30,0\n26,0,75,0,71,0,11,0,72,0,60,0\n37,0,70,0,66,0,51,0,13,0,8,0\n22,0,6,0,76,0,31,0,40,0,39,0\n23,0,58,0,49,0,24,0,34,0,35,0\n77,0,19,0,62,0,68,0,29,0,74,0\n2,0,14,0,42,0,83,0,41,0,67,0\n47,0,64,0,7,0,65,0,36,0,73,0\n18,0,27,0,9,0,69,0,82,0,28,0\n5,0,81,0,55,0,43,0,56,0,63,0\n38,0,15,0,78,0,57,0,3,0,44,0\n32,0,12,0,59,0,79,0,80,0,16,0\n61,0,8,0,11,0,49,0,20,0,50,0\n1,0,70,0,14,0,60,0,34,0,17,0\n7,0,22,0,58,0,25,0,53,0,66,0\n18,0,36,0,76,0,29,0,75,0,42,0\n71,0,30,0,43,0,31,0,2,0,64,0\n41,0,15,0,24,0,65,0,74,0,6,0\n40,0,28,0,38,0,54,0,46,0,13,0\n26,0,5,0,10,0,48,0,61,0,82,0\n27,0,35,0,56,0,45,0,77,0,59,0\n73,0,79,0,57,0,72,0,33,0,68,0\n21,0,32,0,37,0,78,0,81,0,9,0\n44,0,16,0,52,0,4,0,63,0,47,0\n12,0,83,0,23,0,39,0,55,0,62,0\n80,0,69,0,67,0,51,0,3,0,19,0\n46,0,48,0,24,0,2,0,7,0,70,0\n53,0,42,0,17,0,71,0,28,0,61,0\n75,0,66,0,59,0,31,0,14,0,65,0\n56,0,78,0,8,0,58,0,18,0,41,0\n34,0,81,0,27,0,72,0,10,0,6,0\n50,0,60,0,62,0,57,0,40,0,9,0\n22,0,29,0,82,0,1,0,33,0,15,0\n76,0,16,0,54,0,68,0,49,0,26,0\n5,0,37,0,67,0,77,0,23,0,79,0\n12,0,30,0,44,0,13,0,11,0,3,0\n69,0,74,0,35,0,64,0,63,0,21,0\n20,0,83,0,25,0,19,0,32,0,47,0\n80,0,38,0,36,0,4,0,55,0,45,0\n52,0,39,0,43,0,73,0,51,0,46,0\n81,0,15,0,66,0,18,0,2,0,50,0\n61,0,67,0,7,0,78,0,59,0,1,0\n28,0,10,0,41,0,23,0,3,0,60,0\n33,0,58,0,30,0,63,0,42,0,6,0\n71,0,35,0,5,0,76,0,13,0,83,0\n70,0,12,0,34,0,68,0,69,0,36,0\n49,0,65,0,4,0,48,0,62,0,56,0\n75,0,53,0,9,0,80,0,74,0,73,0\n82,0,31,0,8,0,55,0,44,0,25,0\n52,0,11,0,79,0,19,0,45,0,40,0\n43,0,17,0,27,0,47,0,22,0,37,0\n57,0,51,0,77,0,20,0,16,0,14,0\n39,0,24,0,38,0,26,0,32,0,64,0\n72,0,29,0,30,0,54,0,21,0,7,0\n6,0,58,0,53,0,62,0,67,0,36,0\n13,0,31,0,61,0,63,0,73,0,41,0\n9,0,79,0,68,0,44,0,65,0,46,0\n33,0,10,0,40,0,66,0,83,0,56,0\n3,0,76,0,45,0,43,0,70,0,82,0\n50,0,64,0,37,0,42,0,12,0,19,0\n54,0,59,0,55,0,20,0,69,0,81,0\n25,0,11,0,14,0,21,0,5,0,24,0\n23,0,74,0,26,0,22,0,51,0,4,0\n72,0,80,0,28,0,8,0,29,0,47,0\n34,0,1,0,18,0,57,0,16,0,71,0\n60,0,78,0,35,0,27,0,39,0,48,0\n52,0,17,0,2,0,75,0,38,0,49,0\n32,0,77,0,63,0,15,0,46,0,82,0\n3,0,65,0,81,0,83,0,58,0,45,0\n31,0,70,0,9,0,20,0,26,0,42,0\n33,0,59,0,36,0,10,0,24,0,37,0\n44,0,72,0,76,0,64,0,51,0,56,0\n23,0,8,0,48,0,16,0,40,0,30,0\n43,0,13,0,49,0,57,0,7,0,19,0\n6,0,60,0,47,0,61,0,66,0,38,0\n73,0,78,0,50,0,17,0,29,0,5,0\n18,0,11,0,68,0,53,0,35,0,32,0\n41,0,39,0,1,0,69,0,75,0,79,0\n62,0,80,0,54,0,15,0,14,0,52,0\n55,0,28,0,34,0,21,0,22,0,77,0\n67,0,71,0,25,0,12,0,74,0,27,0\n4,0,82,0,58,0,2,0,72,0,59,0\n"
  },
  {
    "path": "schedules/83_11.csv",
    "content": "46,0,57,0,35,0,56,0,77,0,26,0\n31,0,83,0,68,0,75,0,45,0,2,0\n65,0,6,0,78,0,14,0,7,0,5,0\n51,0,64,0,27,0,8,0,22,0,47,0\n62,0,48,0,72,0,20,0,82,0,55,0\n66,0,1,0,25,0,33,0,11,0,21,0\n29,0,49,0,36,0,4,0,39,0,38,0\n19,0,52,0,69,0,37,0,67,0,16,0\n70,0,81,0,17,0,71,0,79,0,9,0\n42,0,54,0,58,0,24,0,76,0,13,0\n80,0,23,0,41,0,30,0,32,0,73,0\n40,0,50,0,74,0,15,0,12,0,34,0\n44,0,60,0,18,0,3,0,10,0,61,0\n43,0,28,0,63,0,59,0,53,0,48,0\n14,0,26,0,62,0,31,0,11,0,47,0\n55,0,38,0,5,0,22,0,17,0,1,0\n72,0,52,0,24,0,45,0,9,0,4,0\n46,0,7,0,71,0,19,0,27,0,83,0\n41,0,15,0,8,0,70,0,56,0,25,0\n16,0,75,0,49,0,66,0,18,0,73,0\n12,0,60,0,58,0,28,0,57,0,78,0\n67,0,30,0,40,0,79,0,64,0,76,0\n65,0,10,0,37,0,21,0,43,0,80,0\n29,0,54,0,6,0,33,0,35,0,82,0\n34,0,20,0,68,0,32,0,23,0,44,0\n42,0,61,0,2,0,77,0,53,0,51,0\n3,0,69,0,50,0,63,0,13,0,39,0\n59,0,74,0,8,0,81,0,36,0,48,0\n57,1,45,0,49,0,9,1,11,0,28,0\n71,1,26,0,72,0,5,1,41,0,37,0\n76,1,35,0,38,0,83,0,73,0,25,0\n32,0,16,0,55,0,27,0,58,0,21,0\n12,0,17,0,23,0,6,0,67,0,43,0\n50,0,44,0,14,0,24,0,22,0,77,0\n29,0,70,0,20,0,78,0,2,0,18,0\n47,0,46,0,60,0,59,0,34,0,81,0\n31,0,61,0,19,0,33,0,63,0,36,0\n30,0,64,0,15,0,13,0,4,0,10,0\n39,0,53,0,54,0,1,0,74,0,75,0\n69,0,42,0,62,0,68,0,66,0,40,0\n82,0,79,0,3,0,7,0,56,0,80,0\n65,0,71,0,41,0,51,0,52,0,50,0\n22,0,44,0,43,0,29,0,16,0,83,0\n18,0,37,0,24,0,31,0,12,0,55,0\n45,0,10,0,32,0,19,0,17,0,76,0\n23,0,1,0,9,0,63,0,46,0,64,0\n2,0,66,0,81,0,27,0,57,0,67,0\n36,0,6,0,26,0,40,0,80,0,75,0\n30,0,39,0,62,0,53,0,28,0,8,0\n51,0,4,0,5,0,11,0,60,0,56,0\n61,0,79,0,49,0,58,0,35,0,69,0\n52,0,68,0,59,0,70,0,14,0,21,0\n25,0,65,0,74,0,82,0,77,0,42,0\n54,0,47,0,72,0,15,0,73,0,7,0\n34,0,33,0,78,0,48,0,13,0,3,0\n20,0,30,0,75,0,38,0,57,0,17,0\n76,0,63,0,56,0,6,0,55,0,2,0\n11,0,64,0,35,0,41,0,36,0,44,0\n9,0,50,0,29,0,58,0,32,0,59,0\n74,0,27,0,45,0,80,0,4,0,62,0\n47,0,82,0,18,0,69,0,71,0,1,0\n13,0,40,0,37,0,61,0,7,0,70,0\n8,0,33,0,23,0,24,0,78,0,49,0\n21,0,20,0,73,0,42,0,22,0,26,0\n28,0,34,0,25,0,81,0,52,0,5,0\n72,0,83,0,66,0,19,0,3,0,65,0\n15,0,14,0,67,0,53,0,46,0,38,0\n77,0,60,0,43,0,54,0,79,0,31,0\n16,0,51,0,48,0,68,0,39,0,12,0\n10,0,33,0,57,0,7,0,59,0,55,0\n18,0,40,0,23,0,4,0,22,0,58,0\n36,0,42,0,45,0,37,0,30,0,47,0\n3,0,52,0,74,0,26,0,49,0,32,0\n73,0,53,0,5,0,24,0,70,0,50,0\n76,0,25,0,72,0,43,0,69,0,27,0\n78,0,15,0,35,0,16,0,9,0,65,0\n62,0,83,0,11,0,81,0,21,0,61,0\n12,0,54,0,56,0,34,0,71,0,14,0\n75,0,29,0,67,0,41,0,10,0,63,0\n79,0,80,0,38,0,48,0,2,0,44,0\n77,0,1,0,19,0,8,0,68,0,13,0\n31,0,51,0,46,0,28,0,17,0,82,0\n66,0,39,0,20,0,60,0,64,0,6,0\n21,0,69,0,18,0,33,0,9,0,74,0\n57,0,26,0,4,0,50,0,16,0,54,0\n40,0,55,0,53,0,47,0,83,0,52,0\n63,0,44,0,7,0,25,0,45,0,15,0\n36,0,78,0,77,0,76,0,73,0,81,0\n65,0,13,0,49,0,75,0,12,0,46,0\n38,0,51,0,82,0,23,0,70,0,19,0\n1,0,20,0,61,0,30,0,34,0,43,0\n31,0,48,0,22,0,66,0,56,0,10,0\n41,0,28,0,24,0,27,0,6,0,79,0\n17,0,8,0,80,0,14,0,29,0,60,0\n71,0,58,0,67,0,42,0,11,0,3,0\n68,0,35,0,32,0,39,0,37,0,72,0\n59,0,2,0,5,0,64,0,62,0,54,0\n51,0,76,0,45,0,34,0,26,0,18,0\n57,0,16,0,47,0,61,0,74,0,23,0\n81,0,22,0,41,0,12,0,4,0,19,0\n75,0,28,0,69,0,15,0,77,0,55,0\n66,0,43,0,14,0,58,0,30,0,82,0\n25,0,9,0,53,0,3,0,20,0,37,0\n39,0,70,0,5,0,42,0,31,0,80,0\n40,0,21,0,48,0,71,0,49,0,35,0\n56,0,64,0,17,0,78,0,83,0,50,0\n52,0,62,0,79,0,1,0,29,0,10,0\n60,0,7,0,2,0,32,0,36,0,24,0\n73,0,27,0,68,0,63,0,11,0,65,0\n13,0,6,0,59,0,72,0,38,0,67,0\n33,0,44,0,76,0,8,0,46,0,37,0\n34,0,21,0,82,0,75,0,4,0,53,0\n69,0,12,0,45,0,3,0,5,0,23,0\n83,0,42,0,14,0,18,0,41,0,57,0\n16,0,10,0,24,0,1,0,40,0,81,0\n47,0,77,0,63,0,49,0,39,0,17,0\n48,0,65,0,70,0,26,0,67,0,60,0\n66,0,61,0,55,0,8,0,54,0,9,0\n28,0,33,0,71,0,38,0,32,0,64,0\n68,0,30,0,50,0,29,0,25,0,7,0\n46,0,22,0,11,0,72,0,78,0,79,0\n2,0,13,0,43,0,52,0,35,0,73,0\n6,0,31,0,58,0,74,0,44,0,51,0\n19,0,15,0,80,0,59,0,62,0,20,0\n56,0,27,0,18,0,36,0,23,0,53,0\n4,0,32,0,83,0,69,0,14,0,48,0\n61,0,76,0,28,0,65,0,29,0,66,0\n42,0,81,0,79,0,72,0,33,0,50,0\n73,0,11,0,2,0,40,0,8,0,82,0\n58,0,38,0,10,0,68,0,5,0,26,0\n37,0,64,0,80,0,34,0,49,0,63,0\n56,0,21,0,67,0,20,0,47,0,24,0\n36,0,3,0,57,0,15,0,51,0,1,0\n31,0,13,0,71,0,25,0,59,0,16,0\n78,0,27,0,17,0,52,0,54,0,44,0\n75,0,19,0,60,0,30,0,35,0,74,0\n9,0,7,0,39,0,43,0,62,0,41,0\n70,0,55,0,22,0,45,0,6,0,46,0\n12,0,33,0,53,0,77,0,72,0,80,0\n83,0,8,0,5,0,79,0,63,0,20,0\n57,0,64,0,73,0,31,0,29,0,69,0\n67,0,49,0,10,0,51,0,25,0,54,0\n59,0,1,0,4,0,78,0,76,0,42,0\n58,0,17,0,34,0,62,0,36,0,65,0\n24,0,71,0,55,0,74,0,43,0,68,0\n40,0,9,0,19,0,44,0,56,0,28,0\n15,0,82,0,26,0,61,0,39,0,27,0\n41,0,46,0,16,0,60,0,45,0,38,0\n50,0,75,0,81,0,23,0,37,0,14,0\n21,0,6,0,22,0,30,0,2,0,3,0\n70,0,32,0,12,0,35,0,66,0,47,0\n77,0,11,0,7,0,48,0,18,0,52,0\n13,0,9,0,5,0,57,0,71,0,76,0\n"
  },
  {
    "path": "schedules/83_12.csv",
    "content": "81,0,65,0,17,0,76,0,44,0,26,0\n83,0,58,0,39,0,29,0,60,0,7,0\n52,0,49,0,79,0,40,0,50,0,63,0\n33,0,31,0,41,0,27,0,30,0,47,0\n43,0,14,0,46,0,70,0,23,0,9,0\n77,0,4,0,11,0,3,0,8,0,55,0\n16,0,57,0,15,0,82,0,18,0,56,0\n34,0,61,0,1,0,62,0,20,0,53,0\n64,0,51,0,72,0,78,0,73,0,2,0\n59,0,37,0,66,0,54,0,22,0,19,0\n74,0,71,0,69,0,25,0,68,0,35,0\n6,0,48,0,12,0,67,0,13,0,45,0\n10,0,28,0,5,0,36,0,42,0,80,0\n38,0,32,0,75,0,24,0,21,0,7,0\n44,0,23,0,56,0,33,0,79,0,61,0\n83,0,9,0,27,0,62,0,3,0,81,0\n29,0,1,0,50,0,54,0,14,0,72,0\n15,0,69,0,39,0,34,0,66,0,70,0\n8,0,60,0,6,0,30,0,49,0,71,0\n55,0,35,0,36,0,59,0,65,0,67,0\n19,0,51,0,10,0,25,0,47,0,75,0\n73,0,63,0,4,0,16,0,21,0,5,0\n24,0,11,0,45,0,64,0,31,0,18,0\n46,0,2,0,28,0,77,0,17,0,48,0\n41,0,37,0,26,0,52,0,38,0,12,0\n57,0,32,0,53,0,80,0,78,0,22,0\n40,0,58,0,20,0,13,0,74,0,42,0\n82,0,68,0,36,0,76,0,43,0,51,0\n5,0,67,0,71,0,39,0,9,0,19,0\n64,0,60,0,30,0,1,0,63,0,59,0\n16,0,23,0,18,0,49,0,27,0,75,0\n72,0,3,0,29,0,44,0,66,0,24,0\n47,0,7,0,35,0,2,0,14,0,17,0\n53,0,52,0,81,0,45,0,10,0,31,0\n61,0,50,0,11,0,69,0,73,0,48,0\n82,0,65,0,37,0,78,0,41,0,58,0\n79,0,38,0,80,0,13,0,43,0,15,0\n40,0,6,0,26,0,83,0,32,0,46,0\n22,0,25,0,33,0,77,0,62,0,42,0\n56,0,20,0,28,0,4,0,55,0,54,0\n8,0,34,0,21,0,76,0,68,0,74,0\n12,0,70,0,5,0,57,0,47,0,60,0\n14,0,63,0,44,0,39,0,11,0,78,0\n36,0,15,0,1,0,45,0,9,0,73,0\n66,0,65,0,69,0,31,0,13,0,32,0\n77,0,18,0,40,0,29,0,30,0,37,0\n80,0,27,0,26,0,67,0,56,0,64,0\n23,0,17,0,20,0,21,0,51,0,50,0\n43,0,58,0,4,0,25,0,59,0,12,0\n10,0,7,0,70,0,62,0,68,0,49,0\n19,0,24,0,74,0,82,0,46,0,79,0\n53,0,16,0,72,0,81,0,41,0,35,0\n2,0,48,0,55,0,33,0,52,0,76,0\n28,0,6,0,3,0,38,0,22,0,34,0\n42,0,71,0,61,0,57,0,75,0,54,0\n8,0,14,0,56,0,83,0,25,0,21,0\n70,0,80,0,77,0,51,0,45,0,40,0\n79,0,27,0,7,0,20,0,59,0,29,0\n18,0,62,0,69,0,78,0,26,0,36,0\n24,0,15,0,49,0,48,0,81,0,5,0\n12,0,3,0,30,0,55,0,39,0,32,0\n38,0,46,0,16,0,58,0,31,0,71,0\n10,0,41,0,57,0,9,0,1,0,44,0\n11,0,68,0,17,0,6,0,72,0,37,0\n50,0,67,0,66,0,74,0,33,0,4,0\n13,0,19,0,76,0,35,0,61,0,60,0\n54,0,52,0,82,0,34,0,75,0,64,0\n23,0,2,0,53,0,63,0,65,0,8,0\n83,0,73,0,47,0,43,0,28,0,42,0\n22,0,39,0,62,0,46,0,56,0,41,0\n79,0,81,0,51,0,58,0,69,0,57,0\n77,0,26,0,59,0,15,0,10,0,14,0\n20,0,55,0,49,0,80,0,37,0,31,0\n54,0,25,0,48,0,30,0,44,0,16,0\n27,0,32,0,63,0,17,0,36,0,34,0\n28,0,68,0,60,0,24,0,67,0,53,0\n64,0,71,0,73,0,40,0,29,0,76,0\n6,0,66,0,5,0,23,0,78,0,52,0\n12,0,7,0,22,0,11,0,74,0,9,0\n8,0,43,0,18,0,72,0,19,0,33,0\n1,0,75,0,2,0,13,0,83,0,50,0\n3,0,82,0,35,0,70,0,21,0,42,0\n47,0,45,0,4,0,38,0,61,0,65,0\n60,0,17,0,41,0,40,0,54,0,15,0\n66,0,39,0,49,0,77,0,57,0,36,0\n25,0,11,0,76,0,28,0,23,0,79,0\n33,0,7,0,53,0,5,0,64,0,46,0\n24,0,12,0,34,0,2,0,16,0,10,0\n9,0,37,0,8,0,42,0,35,0,48,0\n52,0,13,0,21,0,47,0,71,0,62,0\n72,0,83,0,67,0,63,0,38,0,69,0\n43,0,81,0,29,0,78,0,4,0,32,0\n65,0,50,0,44,0,51,0,56,0,6,0\n30,0,82,0,22,0,45,0,20,0,14,0\n68,0,80,0,59,0,61,0,3,0,18,0\n70,0,55,0,26,0,75,0,73,0,58,0\n31,0,27,0,19,0,74,0,1,0,28,0\n77,0,79,0,12,0,53,0,71,0,83,0\n64,0,8,0,25,0,39,0,57,0,38,0\n47,0,34,0,81,0,40,0,67,0,11,0\n13,0,17,0,56,0,49,0,82,0,29,0\n78,0,45,0,69,0,33,0,59,0,3,0\n42,0,23,0,24,0,26,0,30,0,4,0\n1,0,66,0,21,0,58,0,80,0,46,0\n41,0,6,0,18,0,63,0,55,0,7,0\n20,0,2,0,32,0,19,0,70,0,73,0\n74,0,52,0,61,0,16,0,36,0,14,0\n35,0,75,0,43,0,5,0,62,0,44,0\n15,0,37,0,76,0,50,0,10,0,27,0\n51,0,31,0,48,0,72,0,60,0,22,0\n54,0,9,0,77,0,68,0,65,0,58,0\n69,0,40,0,1,0,12,0,23,0,8,0\n25,0,63,0,56,0,7,0,81,0,45,0\n49,0,59,0,61,0,41,0,67,0,32,0\n80,0,33,0,71,0,82,0,24,0,17,0\n37,0,3,0,74,0,57,0,43,0,2,0\n48,0,39,0,50,0,18,0,47,0,26,0\n22,0,75,0,42,0,65,0,79,0,15,0\n30,0,9,0,13,0,64,0,28,0,16,0\n60,0,34,0,78,0,35,0,38,0,73,0\n27,0,52,0,68,0,44,0,46,0,4,0\n10,0,6,0,76,0,70,0,72,0,20,0\n21,0,54,0,29,0,11,0,36,0,53,0\n62,0,51,0,55,0,19,0,66,0,14,0\n83,0,31,0,26,0,5,0,61,0,82,0\n25,0,67,0,58,0,3,0,15,0,2,0\n47,0,78,0,42,0,1,0,77,0,56,0\n73,0,44,0,13,0,7,0,23,0,59,0\n63,0,48,0,71,0,10,0,80,0,65,0\n9,0,4,0,38,0,76,0,53,0,18,0\n74,0,39,0,45,0,72,0,75,0,28,0\n11,0,83,0,54,0,51,0,35,0,49,0\n64,0,68,0,81,0,66,0,20,0,12,0\n8,0,24,0,36,0,50,0,70,0,41,0\n62,0,29,0,46,0,60,0,16,0,37,0\n22,0,27,0,43,0,55,0,40,0,21,0\n30,0,57,0,19,0,17,0,69,0,52,0\n31,0,5,0,14,0,32,0,79,0,34,0\n33,0,73,0,54,0,6,0,39,0,80,0\n26,0,3,0,51,0,1,0,71,0,7,0\n82,0,28,0,59,0,8,0,81,0,50,0\n46,0,49,0,65,0,61,0,72,0,12,0\n78,0,13,0,24,0,55,0,27,0,25,0\n52,0,16,0,67,0,20,0,43,0,77,0\n10,0,18,0,83,0,66,0,17,0,22,0\n32,0,70,0,56,0,53,0,74,0,48,0\n42,0,34,0,29,0,45,0,19,0,41,0\n58,0,76,0,62,0,5,0,30,0,11,0\n40,0,14,0,75,0,38,0,33,0,68,0\n35,0,57,0,31,0,23,0,15,0,63,0\n69,0,37,0,44,0,64,0,47,0,21,0\n79,0,4,0,60,0,2,0,36,0,6,0\n9,0,72,0,82,0,32,0,52,0,25,0\n67,0,54,0,46,0,10,0,8,0,13,0\n80,0,30,0,50,0,7,0,83,0,34,0\n38,0,55,0,5,0,29,0,51,0,74,0\n16,0,59,0,42,0,17,0,53,0,39,0\n56,0,75,0,76,0,69,0,77,0,41,0\n64,0,23,0,36,0,3,0,19,0,48,0\n20,0,9,0,33,0,11,0,60,0,26,0\n73,0,14,0,68,0,57,0,65,0,27,0\n45,0,2,0,49,0,43,0,66,0,71,0\n81,0,70,0,1,0,37,0,18,0,79,0\n61,0,47,0,63,0,24,0,22,0,58,0\n44,0,78,0,21,0,12,0,28,0,15,0\n40,0,35,0,62,0,31,0,6,0,4,0\n"
  },
  {
    "path": "schedules/83_13.csv",
    "content": "48,0,20,0,73,0,38,0,42,0,2,0\n33,0,25,0,7,0,71,0,78,0,70,0\n80,0,69,0,21,0,61,0,51,0,12,0\n67,0,10,0,57,0,54,0,36,0,4,0\n24,0,83,0,32,0,74,0,9,0,6,0\n75,0,39,0,59,0,52,0,64,0,45,0\n55,0,77,0,15,0,44,0,72,0,76,0\n27,0,81,0,47,0,14,0,29,0,79,0\n50,0,58,0,82,0,23,0,34,0,8,0\n19,0,13,0,40,0,18,0,49,0,41,0\n56,0,17,0,22,0,63,0,68,0,46,0\n43,0,26,0,60,0,11,0,1,0,35,0\n30,0,65,0,3,0,31,0,28,0,53,0\n62,0,37,0,59,0,5,0,66,0,16,0\n33,0,10,0,24,0,73,0,51,0,38,0\n72,0,78,0,7,0,32,0,75,0,8,0\n25,0,54,0,19,0,79,0,82,0,9,0\n74,0,15,0,13,0,2,0,12,0,4,0\n1,0,48,0,63,0,68,0,83,0,49,0\n20,0,60,0,57,0,55,0,3,0,45,0\n11,0,69,0,52,0,30,0,5,0,34,0\n43,0,17,0,23,0,37,0,22,0,47,0\n21,0,81,0,62,0,70,0,77,0,41,0\n46,0,16,0,58,0,28,0,26,0,67,0\n44,0,35,0,65,0,39,0,36,0,56,0\n61,0,71,0,64,0,31,0,76,0,27,0\n53,0,66,0,6,0,18,0,50,0,29,0\n40,0,42,0,5,0,14,0,80,0,8,0\n74,1,68,0,82,0,69,0,79,0,57,0\n47,0,41,0,1,0,38,0,20,0,59,0\n32,0,15,0,73,0,75,0,34,0,11,0\n26,0,49,0,21,0,78,0,54,0,28,0\n76,0,2,0,52,0,51,0,4,0,63,0\n45,0,25,0,44,0,58,0,6,0,62,0\n43,0,14,0,42,0,33,0,56,0,53,0\n9,0,13,0,65,0,16,0,67,0,17,0\n23,0,31,0,24,0,18,0,55,0,81,0\n72,0,10,0,30,0,60,0,83,0,61,0\n7,0,3,0,12,0,37,0,48,0,64,0\n70,0,80,0,29,0,71,0,39,0,19,0\n22,0,77,0,40,0,46,0,36,0,66,0\n27,0,35,0,73,0,50,0,69,0,78,0\n68,0,47,0,42,0,52,0,44,0,67,0\n76,0,59,0,1,0,6,0,13,0,82,0\n63,0,16,0,65,0,74,0,23,0,25,0\n17,0,31,0,81,0,57,0,15,0,58,0\n37,0,29,0,30,0,24,0,56,0,41,0\n11,0,8,0,18,0,45,0,12,0,38,0\n51,0,79,0,80,0,62,0,72,0,26,0\n14,0,64,0,36,0,19,0,2,0,32,0\n40,0,71,0,46,0,21,0,3,0,34,0\n83,0,22,0,39,0,7,0,53,0,54,0\n55,0,70,0,9,0,35,0,43,0,49,0\n61,0,75,0,50,0,5,0,20,0,77,0\n33,0,66,0,28,0,4,0,60,0,27,0\n10,0,8,0,37,0,48,0,79,0,13,0\n30,0,2,0,78,0,6,0,67,0,81,0\n14,0,16,0,3,0,51,0,15,0,1,0\n39,0,76,0,46,0,42,0,59,0,11,0\n52,0,53,0,73,0,21,0,35,0,17,0\n32,0,80,0,58,0,83,0,38,0,54,0\n40,0,9,0,66,0,50,0,65,0,47,0\n45,0,19,0,27,0,31,0,43,0,77,0\n36,0,34,0,28,0,24,0,68,0,75,0\n71,0,7,0,62,0,4,0,55,0,69,0\n63,0,82,0,70,0,64,0,18,0,72,0\n44,0,22,0,74,0,20,0,49,0,29,0\n60,0,10,0,25,0,56,0,26,0,5,0\n23,0,48,0,12,0,57,0,33,0,41,0\n61,0,53,0,46,0,81,0,45,0,79,0\n9,0,75,0,77,0,31,0,37,0,38,0\n27,0,67,0,58,0,11,0,19,0,51,0\n15,0,69,0,62,0,6,0,63,0,47,0\n13,0,55,0,8,0,64,0,39,0,30,0\n54,0,50,0,40,0,7,0,16,0,60,0\n17,0,78,0,34,0,76,0,3,0,70,0\n36,0,83,0,52,0,33,0,23,0,26,0\n12,0,73,0,49,0,25,0,66,0,59,0\n43,0,61,0,32,0,2,0,82,0,44,0\n35,0,24,0,4,0,20,0,14,0,22,0\n21,0,18,0,5,0,56,0,48,0,74,0\n72,0,29,0,57,0,1,0,28,0,42,0\n41,0,68,0,10,0,80,0,71,0,65,0\n77,0,64,0,6,0,40,0,51,0,33,0\n54,0,31,0,12,0,73,0,47,0,46,0\n53,0,70,0,62,0,38,0,23,0,27,0\n82,0,4,0,14,0,26,0,75,0,37,0\n50,0,83,0,74,0,17,0,19,0,55,0\n28,0,5,0,8,0,43,0,63,0,9,0\n16,0,41,0,34,0,35,0,56,0,72,0\n2,0,66,0,61,0,39,0,3,0,68,0\n71,0,69,0,42,0,60,0,24,0,22,0\n48,0,25,0,81,0,36,0,76,0,11,0\n78,0,10,0,59,0,44,0,18,0,58,0\n13,0,67,0,20,0,80,0,15,0,7,0\n45,0,65,0,57,0,29,0,32,0,21,0\n1,0,49,0,79,0,30,0,52,0,77,0\n41,0,3,0,9,0,4,0,73,0,62,0\n60,0,50,0,63,0,82,0,12,0,46,0\n61,0,56,0,42,0,36,0,70,0,75,0\n31,0,39,0,6,0,17,0,48,0,14,0\n83,0,64,0,8,0,20,0,66,0,34,0\n80,0,55,0,11,0,29,0,78,0,16,0\n24,0,74,0,7,0,47,0,58,0,52,0\n54,0,71,0,44,0,1,0,53,0,13,0\n23,0,49,0,32,0,69,0,51,0,35,0\n28,0,59,0,79,0,2,0,22,0,33,0\n67,0,18,0,76,0,37,0,57,0,43,0\n15,0,25,0,68,0,27,0,10,0,21,0\n81,0,38,0,72,0,19,0,5,0,65,0\n26,0,45,0,70,0,30,0,40,0,73,0\n13,0,24,0,14,0,78,0,61,0,62,0\n80,0,64,0,60,0,44,0,9,0,23,0\n29,0,3,0,47,0,77,0,58,0,36,0\n7,0,41,0,35,0,6,0,79,0,42,0\n4,0,8,0,56,0,49,0,31,0,11,0\n57,0,1,0,34,0,27,0,25,0,39,0\n2,0,15,0,18,0,54,0,30,0,22,0\n20,0,63,0,33,0,21,0,46,0,65,0\n51,0,37,0,32,0,71,0,50,0,28,0\n66,0,55,0,82,0,10,0,52,0,48,0\n59,0,74,0,67,0,72,0,53,0,40,0\n68,0,12,0,16,0,75,0,81,0,43,0\n38,0,19,0,69,0,17,0,76,0,26,0\n83,0,5,0,70,0,45,0,47,0,4,0\n65,0,78,0,56,0,64,0,62,0,1,0\n20,0,79,0,31,0,60,0,32,0,34,0\n46,0,9,0,2,0,29,0,52,0,7,0\n24,0,27,0,48,0,80,0,44,0,63,0\n67,0,75,0,54,0,33,0,55,0,59,0\n43,0,21,0,72,0,50,0,13,0,36,0\n37,0,25,0,40,0,83,0,69,0,53,0\n26,0,38,0,11,0,57,0,61,0,74,0\n22,0,16,0,19,0,6,0,8,0,3,0\n39,0,23,0,77,0,10,0,28,0,15,0\n42,0,49,0,30,0,5,0,12,0,17,0\n73,0,18,0,14,0,76,0,68,0,58,0\n66,0,71,0,45,0,81,0,35,0,82,0\n51,0,75,0,47,0,41,0,60,0,53,0\n56,0,27,0,32,0,40,0,55,0,52,0\n44,0,11,0,83,0,2,0,21,0,31,0\n4,0,15,0,78,0,19,0,46,0,48,0\n43,0,38,0,3,0,30,0,25,0,79,0\n20,0,69,0,9,0,72,0,58,0,39,0\n34,0,18,0,59,0,65,0,7,0,14,0\n6,0,33,0,49,0,61,0,37,0,80,0\n57,0,71,0,16,0,63,0,77,0,73,0\n36,0,17,0,82,0,28,0,41,0,62,0\n1,0,66,0,23,0,67,0,24,0,45,0\n54,0,51,0,68,0,70,0,74,0,8,0\n35,0,12,0,76,0,10,0,5,0,29,0\n81,0,50,0,26,0,42,0,13,0,64,0\n22,0,48,0,58,0,27,0,75,0,65,0\n77,0,80,0,57,0,7,0,2,0,56,0\n38,0,53,0,36,0,60,0,78,0,49,0\n71,0,23,0,30,0,59,0,9,0,14,0\n33,0,1,0,39,0,74,0,32,0,18,0\n76,0,54,0,45,0,52,0,72,0,3,0\n4,0,16,0,21,0,24,0,82,0,64,0\n67,0,47,0,35,0,8,0,25,0,61,0\n5,0,51,0,31,0,22,0,13,0,68,0\n41,0,73,0,29,0,83,0,43,0,15,0\n70,0,69,0,6,0,46,0,11,0,10,0\n37,0,34,0,55,0,42,0,81,0,63,0\n44,0,79,0,26,0,50,0,66,0,17,0\n62,0,12,0,19,0,28,0,20,0,40,0\n49,0,72,0,2,0,24,0,71,0,47,0\n38,0,21,0,60,0,39,0,14,0,67,0\n45,0,22,0,51,0,9,0,48,0,78,0\n74,0,43,0,36,0,59,0,80,0,31,0\n3,0,18,0,42,0,83,0,27,0,16,0\n63,0,5,0,53,0,66,0,41,0,32,0\n75,0,46,0,13,0,25,0,35,0,57,0\n17,0,4,0,58,0,1,0,40,0,61,0\n52,0,79,0,37,0,15,0,70,0,65,0\n29,0,76,0,33,0,8,0,62,0,50,0\n19,0,30,0,82,0,44,0,73,0,7,0\n56,0,11,0,6,0,20,0,54,0,23,0\n34,0,77,0,68,0,55,0,12,0,26,0\n81,0,28,0,64,0,10,0,69,0,74,0\n"
  },
  {
    "path": "schedules/83_14.csv",
    "content": "17,0,83,0,10,0,66,0,22,0,8,0\n82,0,2,0,72,0,30,0,53,0,62,0\n27,0,18,0,45,0,39,0,70,0,51,0\n50,0,55,0,11,0,38,0,9,0,26,0\n49,0,42,0,52,0,4,0,23,0,65,0\n43,0,14,0,61,0,71,0,47,0,6,0\n29,0,34,0,54,0,37,0,76,0,3,0\n73,0,25,0,1,0,40,0,48,0,7,0\n75,0,64,0,36,0,44,0,81,0,19,0\n21,0,56,0,78,0,74,0,60,0,80,0\n33,0,13,0,35,0,57,0,12,0,46,0\n20,0,67,0,32,0,5,0,63,0,15,0\n68,0,16,0,28,0,69,0,77,0,58,0\n41,0,79,0,24,0,31,0,59,0,61,0\n1,0,62,0,83,0,26,0,23,0,37,0\n52,0,18,0,36,0,34,0,53,0,66,0\n60,0,7,0,8,0,45,0,54,0,19,0\n40,0,30,0,72,0,81,0,13,0,64,0\n4,0,9,0,43,0,35,0,73,0,63,0\n33,0,17,0,65,0,76,0,20,0,16,0\n56,0,15,0,58,0,51,0,27,0,22,0\n74,0,49,0,31,0,75,0,28,0,11,0\n80,0,29,0,79,0,70,0,47,0,25,0\n39,0,32,0,77,0,14,0,82,0,12,0\n78,0,57,0,59,0,44,0,10,0,5,0\n2,0,48,0,42,0,50,0,69,0,6,0\n46,0,24,0,71,0,3,0,38,0,21,0\n68,0,55,0,13,0,41,0,67,0,76,0\n43,1,23,0,66,0,61,1,51,0,60,0\n9,0,8,0,36,0,30,0,49,0,1,0\n53,0,17,0,56,0,32,0,79,0,35,0\n4,0,20,0,12,0,25,0,16,0,83,0\n15,0,37,0,59,0,77,0,48,0,82,0\n22,0,6,0,63,0,81,0,11,0,40,0\n47,0,38,0,46,0,45,0,2,0,70,0\n41,0,44,0,26,0,28,0,74,0,33,0\n65,0,31,0,21,0,18,0,50,0,72,0\n80,0,68,0,54,0,14,0,42,0,5,0\n3,0,69,0,24,0,78,0,19,0,39,0\n57,0,52,0,67,0,29,0,62,0,73,0\n58,0,27,0,75,0,55,0,64,0,10,0\n7,0,34,0,70,0,71,0,15,0,35,0\n25,0,53,0,59,0,33,0,22,0,49,0\n60,0,18,0,46,0,79,0,77,0,26,0\n45,0,23,0,12,0,17,0,80,0,41,0\n6,0,19,0,5,0,65,0,37,0,74,0\n54,0,51,0,30,0,31,0,69,0,83,0\n36,0,67,0,43,0,58,0,8,0,40,0\n3,0,28,0,81,0,4,0,14,0,38,0\n1,0,57,0,16,0,61,0,68,0,75,0\n78,0,2,0,34,0,13,0,39,0,63,0\n76,0,55,0,44,0,42,0,72,0,24,0\n11,0,10,0,21,0,7,0,52,0,62,0\n20,0,56,0,9,0,71,0,29,0,48,0\n47,0,73,0,32,0,66,0,50,0,27,0\n64,0,67,0,69,0,82,0,38,0,33,0\n1,0,74,0,15,0,18,0,3,0,49,0\n16,0,22,0,81,0,37,0,79,0,78,0\n58,0,46,0,42,0,17,0,31,0,34,0\n77,0,2,0,4,0,19,0,10,0,61,0\n6,0,68,0,83,0,36,0,56,0,70,0\n8,0,51,0,72,0,7,0,41,0,29,0\n32,0,21,0,64,0,9,0,57,0,54,0\n50,0,63,0,12,0,60,0,82,0,24,0\n13,0,5,0,27,0,53,0,71,0,26,0\n65,0,62,0,20,0,59,0,45,0,66,0\n25,0,39,0,14,0,73,0,75,0,23,0\n30,0,11,0,76,0,47,0,43,0,44,0\n28,0,55,0,40,0,35,0,80,0,52,0\n48,0,79,0,18,0,64,0,68,0,29,0\n37,0,50,0,4,0,78,0,67,0,24,0\n17,0,69,0,82,0,34,0,36,0,61,0\n60,0,81,0,5,0,9,0,2,0,33,0\n41,0,66,0,21,0,39,0,1,0,58,0\n10,0,26,0,31,0,65,0,53,0,32,0\n46,0,56,0,19,0,59,0,11,0,14,0\n28,0,35,0,7,0,22,0,48,0,47,0\n73,0,52,0,74,0,77,0,54,0,20,0\n23,0,30,0,8,0,6,0,55,0,15,0\n44,0,16,0,42,0,70,0,13,0,40,0\n12,0,62,0,51,0,76,0,75,0,71,0\n27,0,38,0,63,0,72,0,80,0,49,0\n25,0,3,0,57,0,83,0,43,0,45,0\n2,0,59,0,18,0,58,0,4,0,67,0\n11,0,22,0,24,0,68,0,65,0,34,0\n31,0,20,0,7,0,55,0,39,0,37,0\n66,0,29,0,16,0,14,0,53,0,54,0\n61,0,9,0,82,0,46,0,13,0,28,0\n38,0,15,0,60,0,40,0,17,0,73,0\n12,0,26,0,72,0,45,0,36,0,78,0\n62,0,80,0,43,0,79,0,74,0,69,0\n8,0,70,0,44,0,3,0,32,0,33,0\n63,0,10,0,75,0,30,0,48,0,41,0\n77,0,25,0,27,0,6,0,35,0,21,0\n56,0,83,0,64,0,5,0,52,0,76,0\n23,0,57,0,49,0,71,0,81,0,50,0\n19,0,42,0,51,0,47,0,1,0,82,0\n13,0,4,0,78,0,54,0,17,0,66,0\n37,0,70,0,20,0,58,0,26,0,11,0\n80,0,22,0,40,0,18,0,32,0,62,0\n33,0,21,0,63,0,73,0,3,0,36,0\n38,0,31,0,77,0,48,0,76,0,8,0\n5,0,41,0,50,0,15,0,46,0,69,0\n30,0,34,0,57,0,19,0,27,0,28,0\n7,0,53,0,39,0,42,0,81,0,67,0\n72,0,59,0,9,0,47,0,23,0,68,0\n49,0,10,0,56,0,43,0,12,0,16,0\n24,0,1,0,52,0,6,0,2,0,25,0\n83,0,75,0,44,0,60,0,65,0,29,0\n51,0,35,0,55,0,74,0,61,0,64,0\n14,0,71,0,30,0,45,0,79,0,22,0\n26,0,66,0,73,0,19,0,80,0,76,0\n8,0,21,0,47,0,20,0,81,0,78,0\n9,0,3,0,27,0,59,0,40,0,12,0\n49,0,17,0,70,0,48,0,5,0,24,0\n23,0,11,0,69,0,18,0,57,0,53,0\n75,0,51,0,13,0,32,0,4,0,6,0\n62,0,61,0,58,0,38,0,44,0,7,0\n25,0,71,0,82,0,68,0,74,0,10,0\n35,0,42,0,65,0,41,0,14,0,36,0\n15,0,39,0,33,0,43,0,29,0,52,0\n1,0,50,0,56,0,28,0,72,0,54,0\n45,0,63,0,60,0,64,0,16,0,31,0\n83,0,55,0,67,0,34,0,77,0,46,0\n2,0,37,0,44,0,79,0,49,0,51,0\n5,0,12,0,61,0,18,0,30,0,21,0\n6,0,26,0,80,0,17,0,57,0,7,0\n65,0,14,0,69,0,25,0,58,0,13,0\n15,0,78,0,73,0,75,0,56,0,42,0\n35,0,47,0,10,0,3,0,31,0,1,0\n76,0,45,0,68,0,63,0,53,0,4,0\n22,0,82,0,54,0,20,0,23,0,2,0\n79,0,67,0,33,0,27,0,11,0,83,0\n64,0,50,0,34,0,8,0,43,0,59,0\n41,0,70,0,77,0,9,0,81,0,62,0\n29,0,74,0,46,0,66,0,40,0,24,0\n48,0,19,0,32,0,52,0,16,0,72,0\n37,0,28,0,71,0,60,0,55,0,36,0\n38,0,51,0,53,0,39,0,65,0,12,0\n54,0,49,0,58,0,82,0,79,0,57,0\n33,0,76,0,14,0,78,0,7,0,1,0\n35,0,81,0,61,0,80,0,15,0,83,0\n34,0,47,0,40,0,75,0,26,0,21,0\n74,0,27,0,62,0,13,0,42,0,8,0\n3,0,20,0,68,0,30,0,50,0,60,0\n18,0,17,0,19,0,56,0,55,0,63,0\n6,0,67,0,44,0,31,0,9,0,66,0\n59,0,41,0,16,0,71,0,52,0,38,0\n25,0,43,0,22,0,77,0,5,0,72,0\n48,0,23,0,39,0,4,0,36,0,46,0\n37,0,45,0,29,0,10,0,32,0,69,0\n64,0,70,0,11,0,28,0,2,0,73,0\n24,0,35,0,75,0,8,0,18,0,20,0\n33,0,6,0,54,0,55,0,62,0,47,0\n53,0,49,0,40,0,78,0,61,0,41,0\n7,0,63,0,77,0,44,0,13,0,50,0\n80,0,16,0,48,0,67,0,51,0,34,0\n17,0,39,0,74,0,72,0,57,0,37,0\n65,0,70,0,66,0,82,0,43,0,64,0\n38,0,28,0,79,0,10,0,42,0,23,0\n69,0,76,0,81,0,27,0,52,0,46,0\n59,0,30,0,36,0,60,0,32,0,25,0\n19,0,29,0,1,0,22,0,31,0,12,0\n4,0,45,0,3,0,56,0,5,0,11,0\n9,0,71,0,73,0,58,0,83,0,24,0\n26,0,14,0,68,0,2,0,15,0,21,0\n74,0,23,0,54,0,63,0,70,0,67,0\n79,0,72,0,61,0,75,0,34,0,20,0\n81,0,43,0,51,0,59,0,17,0,28,0\n38,0,18,0,66,0,37,0,33,0,30,0\n52,0,64,0,22,0,3,0,47,0,42,0\n65,0,11,0,80,0,71,0,77,0,1,0\n48,0,83,0,78,0,2,0,55,0,32,0\n68,0,73,0,69,0,44,0,35,0,12,0\n60,0,31,0,4,0,14,0,57,0,62,0\n25,0,26,0,46,0,8,0,56,0,16,0\n45,0,6,0,13,0,29,0,49,0,21,0\n82,0,5,0,36,0,24,0,7,0,27,0\n39,0,76,0,10,0,9,0,40,0,15,0\n53,0,41,0,58,0,50,0,19,0,83,0\n12,0,34,0,48,0,66,0,74,0,81,0\n32,0,17,0,71,0,28,0,1,0,67,0\n42,0,61,0,37,0,25,0,63,0,8,0\n59,0,29,0,35,0,26,0,30,0,78,0\n62,0,38,0,75,0,43,0,68,0,5,0\n36,0,15,0,72,0,16,0,11,0,54,0\n24,0,14,0,50,0,10,0,33,0,51,0\n55,0,70,0,22,0,4,0,21,0,69,0\n79,0,52,0,3,0,9,0,13,0,7,0\n47,0,58,0,76,0,60,0,39,0,49,0\n80,0,53,0,46,0,44,0,64,0,20,0\n65,0,40,0,77,0,2,0,56,0,57,0\n41,0,82,0,45,0,73,0,6,0,18,0\n31,0,19,0,43,0,23,0,27,0,61,0\n"
  },
  {
    "path": "schedules/83_2.csv",
    "content": "33,0,71,0,68,0,62,0,67,0,15,0\n17,0,41,0,5,0,4,0,61,0,57,0\n24,0,31,0,42,0,28,0,72,0,19,0\n1,0,73,0,69,0,29,0,65,0,56,0\n12,0,8,0,9,0,37,0,82,0,16,0\n30,0,10,0,21,0,63,0,83,0,34,0\n50,0,6,0,54,0,39,0,26,0,18,0\n47,0,36,0,43,0,66,0,52,0,38,0\n7,0,40,0,27,0,46,0,2,0,60,0\n59,0,80,0,51,0,23,0,13,0,58,0\n53,0,77,0,49,0,48,0,75,0,70,0\n11,0,32,0,64,0,55,0,25,0,79,0\n74,0,44,0,22,0,14,0,81,0,35,0\n20,0,76,0,3,0,78,0,45,0,6,0\n38,0,54,0,83,0,24,0,41,0,8,0\n40,0,18,0,52,0,19,0,9,0,68,0\n23,0,21,0,43,0,7,0,73,0,4,0\n61,0,26,0,31,0,27,0,37,0,53,0\n66,0,75,0,39,0,32,0,29,0,67,0\n17,0,58,0,82,0,47,0,62,0,30,0\n81,0,55,0,36,0,77,0,71,0,59,0\n16,0,34,0,78,0,70,0,74,0,42,0\n25,0,56,0,48,0,33,0,80,0,5,0\n65,0,15,0,2,0,63,0,44,0,12,0\n14,0,79,0,1,0,49,0,46,0,76,0\n20,0,57,0,35,0,50,0,51,0,60,0\n45,0,69,0,28,0,11,0,10,0,22,0\n13,0,72,0,62,1,64,0,3,0,27,1\n"
  },
  {
    "path": "schedules/83_3.csv",
    "content": "76,0,27,0,38,0,71,0,61,0,39,0\n45,0,67,0,28,0,66,0,51,0,79,0\n36,0,6,0,37,0,73,0,52,0,1,0\n69,0,81,0,46,0,63,0,47,0,42,0\n10,0,78,0,59,0,21,0,34,0,82,0\n75,0,24,0,33,0,40,0,43,0,11,0\n25,0,4,0,18,0,29,0,74,0,80,0\n3,0,70,0,48,0,55,0,17,0,62,0\n60,0,49,0,5,0,77,0,31,0,35,0\n20,0,68,0,9,0,30,0,19,0,8,0\n14,0,64,0,16,0,7,0,12,0,53,0\n58,0,41,0,15,0,13,0,50,0,2,0\n44,0,22,0,56,0,83,0,32,0,54,0\n65,0,72,0,26,0,57,0,23,0,47,0\n46,1,55,0,73,0,61,1,25,0,45,0\n60,1,27,0,59,0,69,0,33,0,6,0\n71,0,42,0,5,0,68,0,24,0,67,0\n28,0,7,0,80,0,39,0,35,0,3,0\n43,0,4,0,50,0,19,0,38,0,36,0\n11,0,63,0,48,0,58,0,12,0,8,0\n29,0,17,0,82,0,16,0,49,0,32,0\n31,0,64,0,76,0,65,0,34,0,44,0\n26,0,70,0,77,0,22,0,9,0,41,0\n74,0,57,0,66,0,20,0,78,0,81,0\n18,0,1,0,53,0,56,0,72,0,10,0\n15,0,79,0,54,0,30,0,14,0,52,0\n2,0,40,0,62,0,21,0,37,0,23,0\n83,0,51,0,48,0,13,0,75,0,7,0\n29,0,31,0,43,0,58,0,42,0,61,0\n24,0,8,0,39,0,46,0,59,0,26,0\n34,0,12,0,20,0,50,0,60,0,80,0\n78,0,41,0,36,0,17,0,76,0,45,0\n54,0,9,0,53,0,28,0,33,0,71,0\n6,0,2,0,30,0,32,0,18,0,81,0\n10,0,52,0,35,0,4,0,40,0,22,0\n21,0,19,0,55,0,72,0,66,0,5,0\n47,0,13,0,74,0,16,0,3,0,77,0\n56,0,73,0,65,0,68,0,51,0,14,0\n27,0,75,0,1,0,25,0,57,0,70,0\n62,0,83,0,82,0,64,0,67,0,63,0\n49,0,69,0,37,0,15,0,11,0,38,0\n23,0,44,0,61,0,79,0,46,0,60,0\n"
  },
  {
    "path": "schedules/83_4.csv",
    "content": "40,0,28,0,80,0,12,0,36,0,72,0\n50,0,29,0,34,0,62,0,53,0,63,0\n69,0,16,0,52,0,27,0,21,0,41,0\n33,0,60,0,39,0,59,0,67,0,5,0\n19,0,3,0,64,0,54,0,83,0,57,0\n77,0,74,0,25,0,32,0,10,0,65,0\n14,0,2,0,71,0,7,0,17,0,78,0\n42,0,20,0,56,0,30,0,46,0,13,0\n66,0,1,0,38,0,68,0,61,0,47,0\n58,0,23,0,26,0,70,0,49,0,48,0\n51,0,79,0,35,0,18,0,73,0,75,0\n22,0,4,0,31,0,55,0,76,0,15,0\n37,0,45,0,81,0,24,0,11,0,6,0\n43,0,44,0,53,0,8,0,82,0,9,0\n52,0,50,0,30,0,3,0,40,0,77,0\n32,0,59,0,38,0,72,0,16,0,2,0\n61,0,10,0,20,0,58,0,28,0,64,0\n25,0,39,0,75,0,78,0,62,0,70,0\n55,0,41,0,36,0,60,0,29,0,14,0\n80,0,65,0,7,0,34,0,66,0,79,0\n48,0,21,0,54,0,22,0,8,0,6,0\n11,0,31,0,82,0,71,0,69,0,47,0\n17,0,18,0,57,0,45,0,43,0,63,0\n56,0,27,0,49,0,81,0,5,0,15,0\n4,0,12,0,9,0,19,0,46,0,67,0\n24,0,26,0,35,0,33,0,74,0,68,0\n42,0,37,0,83,0,23,0,73,0,1,0\n13,0,51,0,16,0,44,0,76,0,77,0\n2,1,20,0,48,0,36,1,3,0,79,0\n25,1,41,0,59,0,8,1,61,0,17,0\n47,0,63,0,60,0,54,0,27,0,28,0\n75,0,49,0,71,0,9,0,40,0,21,0\n70,0,14,0,67,0,24,0,38,0,31,0\n82,0,18,0,34,0,37,0,10,0,33,0\n53,0,69,0,57,0,13,0,80,0,4,0\n83,0,76,0,43,0,39,0,29,0,11,0\n44,0,68,0,73,0,50,0,15,0,32,0\n22,0,74,0,42,0,51,0,52,0,66,0\n65,0,30,0,58,0,5,0,12,0,45,0\n62,0,19,0,55,0,6,0,35,0,1,0\n78,0,72,0,46,0,26,0,81,0,64,0\n7,0,23,0,8,0,56,0,24,0,77,0\n80,0,11,0,3,0,16,0,49,0,63,0\n71,0,39,0,38,0,41,0,18,0,4,0\n17,0,50,0,13,0,82,0,48,0,28,0\n76,0,68,0,2,0,58,0,60,0,75,0\n57,0,33,0,6,0,25,0,52,0,20,0\n53,0,81,0,61,0,83,0,35,0,36,0\n12,0,37,0,64,0,66,0,56,0,29,0\n78,0,32,0,27,0,55,0,30,0,43,0\n70,0,5,0,21,0,19,0,42,0,7,0\n54,0,40,0,1,0,44,0,46,0,65,0\n26,0,62,0,45,0,73,0,22,0,14,0\n72,0,23,0,67,0,69,0,74,0,79,0\n15,0,9,0,47,0,59,0,51,0,10,0\n31,0,2,0,8,0,34,0,36,0,25,0\n"
  },
  {
    "path": "schedules/83_5.csv",
    "content": "60,0,35,0,37,0,25,0,63,0,36,0\n3,0,51,0,72,0,15,0,18,0,20,0\n77,0,43,0,81,0,8,0,12,0,4,0\n55,0,67,0,49,0,19,0,27,0,50,0\n5,0,13,0,70,0,46,0,68,0,80,0\n10,0,26,0,75,0,73,0,34,0,17,0\n38,0,16,0,79,0,31,0,82,0,71,0\n30,0,32,0,14,0,83,0,40,0,42,0\n33,0,53,0,22,0,74,0,44,0,47,0\n69,0,6,0,59,0,29,0,21,0,52,0\n65,0,78,0,11,0,61,0,58,0,64,0\n1,0,28,0,39,0,9,0,23,0,62,0\n56,0,7,0,41,0,66,0,54,0,76,0\n45,0,24,0,48,0,57,0,2,0,15,0\n72,0,77,0,82,0,83,0,27,0,5,0\n31,0,17,0,63,0,74,0,8,0,67,0\n80,0,18,0,55,0,53,0,30,0,38,0\n46,0,49,0,21,0,40,0,81,0,60,0\n44,0,61,0,42,0,68,0,59,0,3,0\n16,0,50,0,58,0,20,0,39,0,47,0\n76,0,52,0,10,0,37,0,2,0,70,0\n56,0,36,0,51,0,73,0,24,0,69,0\n11,0,34,0,32,0,35,0,12,0,28,0\n66,0,6,0,64,0,45,0,4,0,75,0\n62,0,54,0,22,0,19,0,48,0,29,0\n26,0,25,0,71,0,78,0,13,0,1,0\n33,0,23,0,57,0,65,0,7,0,43,0\n41,0,9,0,37,0,14,0,79,0,53,0\n18,1,27,0,17,0,69,1,42,0,60,0\n5,1,59,0,28,0,74,1,38,0,56,0\n73,0,82,0,61,0,2,1,55,0,35,0\n4,0,80,0,48,0,10,0,47,0,36,0\n66,0,34,0,39,0,13,0,29,0,72,0\n1,0,68,0,24,0,22,0,64,0,81,0\n43,0,54,0,14,0,51,0,58,0,21,0\n3,0,19,0,25,0,12,0,9,0,31,0\n57,0,46,0,26,0,32,0,52,0,41,0\n33,0,62,0,76,0,6,0,50,0,30,0\n23,0,71,0,40,0,11,0,77,0,45,0\n15,0,67,0,83,0,70,0,75,0,16,0\n8,0,20,0,79,0,49,0,44,0,65,0\n63,0,78,0,69,0,7,0,34,0,53,0\n28,0,42,0,25,0,51,0,55,0,64,0\n36,0,38,0,1,0,2,0,32,0,43,0\n81,0,80,0,72,0,59,0,76,0,31,0\n27,0,73,0,29,0,14,0,11,0,46,0\n23,0,16,0,68,0,19,0,26,0,35,0\n12,0,50,0,83,0,79,0,17,0,57,0\n49,0,82,0,56,0,37,0,45,0,39,0\n15,0,21,0,65,0,22,0,63,0,10,0\n47,0,30,0,9,0,5,0,75,0,52,0\n71,0,70,0,18,0,54,0,4,0,44,0\n41,0,60,0,77,0,33,0,58,0,48,0\n61,0,7,0,13,0,6,0,67,0,20,0\n78,0,8,0,62,0,66,0,40,0,24,0\n74,0,79,0,35,0,3,0,80,0,43,0\n76,0,19,0,45,0,36,0,46,0,65,0\n11,0,30,0,69,0,81,0,57,0,82,0\n51,0,12,0,53,0,5,0,49,0,1,0\n83,0,55,0,44,0,23,0,63,0,29,0\n75,0,72,0,2,0,25,0,7,0,68,0\n67,0,18,0,34,0,33,0,40,0,56,0\n4,0,21,0,74,0,61,0,62,0,16,0\n70,0,48,0,39,0,3,0,6,0,17,0\n47,0,31,0,26,0,77,0,37,0,24,0\n50,0,66,0,52,0,14,0,15,0,28,0\n27,0,9,0,32,0,22,0,8,0,71,0\n59,0,54,0,64,0,10,0,60,0,13,0\n73,0,20,0,42,0,78,0,38,0,41,0\n58,0,69,0,5,0,18,0,74,0,2,0\n"
  },
  {
    "path": "schedules/83_6.csv",
    "content": "19,0,80,0,12,0,16,0,1,0,67,0\n79,0,35,0,83,0,53,0,61,0,64,0\n71,0,52,0,37,0,22,0,18,0,50,0\n69,0,26,0,68,0,32,0,57,0,76,0\n70,0,45,0,49,0,30,0,38,0,66,0\n78,0,27,0,77,0,56,0,7,0,24,0\n34,0,46,0,75,0,41,0,13,0,20,0\n15,0,25,0,73,0,59,0,6,0,60,0\n33,0,82,0,40,0,17,0,14,0,65,0\n48,0,63,0,36,0,23,0,55,0,44,0\n8,0,28,0,72,0,54,0,62,0,9,0\n2,0,29,0,5,0,31,0,58,0,43,0\n21,0,11,0,74,0,3,0,4,0,42,0\n81,0,47,0,51,0,39,0,10,0,76,0\n45,0,7,0,69,0,50,0,59,0,83,0\n60,0,37,0,67,0,79,0,32,0,75,0\n40,0,41,0,73,0,27,0,38,0,64,0\n56,0,35,0,57,0,36,0,15,0,46,0\n18,0,26,0,53,0,19,0,63,0,70,0\n30,0,11,0,13,0,29,0,55,0,54,0\n65,0,48,0,34,0,71,0,78,0,81,0\n42,0,6,0,17,0,8,0,12,0,10,0\n68,0,80,0,5,0,9,0,47,0,22,0\n66,0,74,0,58,0,82,0,62,0,77,0\n31,0,20,0,28,0,1,0,3,0,14,0\n61,0,43,0,33,0,4,0,16,0,39,0\n72,0,52,0,21,0,23,0,49,0,24,0\n51,0,44,0,65,0,2,0,25,0,19,0\n76,0,60,0,50,0,40,0,55,0,56,0\n38,0,29,0,42,0,35,0,34,0,37,0\n63,0,67,0,15,0,78,0,58,0,83,0\n66,0,54,0,41,0,69,0,79,0,6,0\n16,0,30,0,71,0,36,0,9,0,7,0\n77,0,73,0,39,0,11,0,52,0,75,0\n62,0,68,0,44,0,18,0,61,0,46,0\n8,0,45,0,14,0,47,0,48,0,4,0\n5,0,24,0,1,0,64,0,82,0,10,0\n13,0,2,0,81,0,70,0,33,0,72,0\n21,0,22,0,32,0,25,0,20,0,53,0\n57,0,59,0,31,0,49,0,17,0,51,0\n23,0,28,0,12,0,74,0,26,0,27,0\n3,0,80,0,65,0,43,0,46,0,50,0\n67,0,48,0,30,0,35,0,41,0,77,0\n69,0,34,0,9,0,63,0,60,0,82,0\n7,0,64,0,47,0,6,0,18,0,75,0\n16,0,14,0,37,0,5,0,66,0,73,0\n15,0,2,0,55,0,4,0,68,0,52,0\n22,0,54,0,61,0,38,0,81,0,23,0\n70,0,21,0,39,0,8,0,58,0,27,0\n83,0,33,0,62,0,26,0,80,0,29,0\n51,0,3,0,32,0,72,0,12,0,36,0\n57,0,25,0,79,0,78,0,28,0,45,0\n56,0,10,0,43,0,11,0,49,0,20,0\n13,0,42,0,40,0,31,0,24,0,19,0\n71,0,59,0,74,0,53,0,44,0,1,0\n17,0,35,0,16,0,76,0,21,0,63,0\n83,0,39,0,54,0,48,0,60,0,46,0\n36,0,29,0,64,0,68,0,14,0,81,0\n33,0,3,0,77,0,5,0,15,0,45,0\n27,0,79,0,4,0,30,0,22,0,51,0\n50,0,82,0,25,0,67,0,42,0,72,0\n47,0,59,0,19,0,52,0,28,0,34,0\n7,0,49,0,44,0,37,0,26,0,8,0\n78,0,20,0,18,0,23,0,69,0,2,0\n75,0,40,0,9,0,57,0,1,0,66,0\n24,0,70,0,12,0,76,0,41,0,65,0\n6,0,11,0,38,0,80,0,71,0,58,0\n13,0,62,0,53,0,56,0,17,0,73,0\n55,0,32,0,31,0,10,0,61,0,74,0\n43,0,15,0,72,0,26,0,30,0,14,0\n50,0,78,0,54,0,21,0,51,0,5,0\n7,0,23,0,46,0,29,0,79,0,40,0\n37,0,65,0,63,0,20,0,39,0,59,0\n76,0,49,0,1,0,42,0,77,0,22,0\n60,0,16,0,58,0,52,0,45,0,13,0\n11,0,53,0,47,0,41,0,57,0,2,0\n6,0,3,0,55,0,83,0,27,0,9,0\n19,0,35,0,66,0,32,0,71,0,43,0\n61,0,56,0,75,0,82,0,48,0,12,0\n38,0,4,0,10,0,69,0,36,0,62,0\n64,0,67,0,28,0,70,0,17,0,44,0\n81,0,18,0,8,0,31,0,73,0,80,0\n24,0,25,0,34,0,74,0,68,0,33,0\n"
  },
  {
    "path": "schedules/83_7.csv",
    "content": "59,0,70,0,36,0,26,0,11,0,24,0\n60,0,22,0,41,0,21,0,29,0,66,0\n4,0,43,0,37,0,53,0,14,0,28,0\n80,0,32,0,47,0,23,0,48,0,83,0\n40,0,16,0,17,0,62,0,3,0,68,0\n79,0,61,0,54,0,46,0,12,0,56,0\n78,0,72,0,49,0,52,0,63,0,42,0\n5,0,44,0,30,0,8,0,81,0,67,0\n75,0,7,0,33,0,65,0,77,0,82,0\n39,0,27,0,51,0,2,0,10,0,31,0\n20,0,34,0,64,0,35,0,58,0,76,0\n74,0,69,0,45,0,9,0,1,0,50,0\n15,0,73,0,13,0,18,0,6,0,38,0\n19,0,55,0,57,0,71,0,25,0,52,0\n24,0,17,0,8,0,47,0,22,0,78,0\n56,0,5,0,65,0,16,0,42,0,41,0\n82,0,68,0,29,0,44,0,43,0,2,0\n46,0,23,0,26,0,7,0,81,0,20,0\n50,0,11,0,49,0,75,0,61,0,14,0\n73,0,70,0,62,0,79,0,66,0,35,0\n63,0,34,0,9,0,38,0,31,0,32,0\n33,0,58,0,59,0,72,0,1,0,48,0\n37,0,39,0,80,0,54,0,6,0,30,0\n36,0,10,0,4,0,18,0,77,0,57,0\n74,0,51,0,76,0,19,0,28,0,3,0\n45,0,53,0,13,0,71,0,60,0,64,0\n67,0,21,0,83,0,12,0,15,0,55,0\n69,0,25,0,35,0,27,0,40,0,63,0\n1,0,46,0,78,0,75,1,73,0,41,0\n14,0,16,0,26,0,2,0,34,0,33,0\n61,0,32,0,10,0,5,0,82,0,22,0\n3,0,29,0,9,0,20,0,56,0,39,0\n72,0,68,0,66,0,8,0,13,0,11,0\n17,0,77,0,30,0,23,0,42,0,45,0\n57,0,31,0,12,0,24,0,64,0,74,0\n38,0,52,0,69,0,81,0,62,0,53,0\n21,0,71,0,76,0,59,0,4,0,27,0\n50,0,18,0,54,0,44,0,47,0,25,0\n7,0,83,0,79,0,6,0,51,0,43,0\n70,0,37,0,67,0,19,0,60,0,58,0\n55,0,40,0,49,0,36,0,65,0,80,0\n15,0,48,0,63,0,28,0,57,0,66,0\n81,0,13,0,78,0,29,0,16,0,74,0\n3,0,14,0,31,0,22,0,69,0,42,0\n75,0,52,0,68,0,30,0,26,0,64,0\n59,0,8,0,46,0,10,0,45,0,43,0\n50,0,41,0,27,0,38,0,82,0,79,0\n6,0,65,0,12,0,9,0,60,0,76,0\n71,0,40,0,34,0,61,0,73,0,83,0\n53,0,19,0,77,0,15,0,80,0,56,0\n70,0,48,0,2,0,20,0,55,0,18,0\n11,0,44,0,4,0,17,0,1,0,32,0\n49,0,33,0,28,0,39,0,67,0,47,0\n24,0,25,0,7,0,62,0,21,0,58,0\n35,0,51,0,54,0,23,0,36,0,5,0\n72,0,22,0,12,0,37,0,75,0,40,0\n14,0,64,0,29,0,80,0,10,0,73,0\n81,0,76,0,56,0,70,0,45,0,83,0\n38,0,65,0,66,0,71,0,3,0,30,0\n4,0,26,0,42,0,13,0,47,0,9,0\n34,0,77,0,60,0,39,0,44,0,24,0\n19,0,68,0,48,0,27,0,61,0,78,0\n55,0,43,0,63,0,54,0,17,0,58,0\n79,0,23,0,1,0,25,0,67,0,31,0\n18,0,11,0,46,0,33,0,74,0,37,0\n82,0,69,0,57,0,16,0,49,0,20,0\n15,0,32,0,72,0,41,0,62,0,51,0\n5,0,52,0,28,0,59,0,2,0,7,0\n6,0,8,0,21,0,53,0,36,0,50,0\n35,0,83,0,19,0,39,0,13,0,65,0\n43,0,47,0,27,0,1,0,70,0,64,0\n77,0,22,0,79,0,81,0,9,0,11,0\n73,0,24,0,63,0,4,0,56,0,30,0\n82,0,51,0,66,0,80,0,58,0,45,0\n25,0,60,0,15,0,5,0,68,0,49,0\n71,0,32,0,29,0,26,0,28,0,12,0\n35,0,46,0,3,0,2,0,50,0,72,0\n18,0,61,0,31,0,16,0,8,0,7,0\n52,0,67,0,41,0,36,0,76,0,14,0\n42,0,38,0,44,0,57,0,37,0,59,0\n75,0,21,0,10,0,69,0,17,0,48,0\n54,0,53,0,20,0,40,0,78,0,33,0\n74,0,62,0,6,0,23,0,34,0,55,0\n2,0,4,0,12,0,66,0,81,0,25,0\n56,0,47,0,11,0,35,0,71,0,82,0\n27,0,28,0,36,0,60,0,30,0,46,0\n1,0,29,0,65,0,15,0,61,0,37,0\n9,0,75,0,43,0,19,0,16,0,24,0\n14,0,58,0,83,0,38,0,77,0,78,0\n64,0,18,0,59,0,79,0,32,0,3,0\n76,0,55,0,73,0,33,0,69,0,8,0\n44,0,74,0,10,0,49,0,53,0,41,0\n40,0,50,0,13,0,51,0,48,0,52,0\n70,0,23,0,39,0,68,0,63,0,21,0\n45,0,7,0,22,0,57,0,54,0,34,0\n6,0,26,0,31,0,17,0,72,0,5,0\n42,0,20,0,62,0,80,0,67,0,75,0\n"
  },
  {
    "path": "schedules/83_8.csv",
    "content": "13,0,75,0,80,0,25,0,79,0,74,0\n66,0,34,0,77,0,18,0,30,0,27,0\n3,0,24,0,32,0,38,0,11,0,2,0\n49,0,1,0,61,0,9,0,55,0,71,0\n14,0,33,0,78,0,7,0,5,0,35,0\n63,0,8,0,15,0,50,0,67,0,37,0\n31,0,51,0,44,0,36,0,82,0,64,0\n40,0,73,0,42,0,6,0,43,0,58,0\n81,0,62,0,52,0,69,0,60,0,83,0\n29,0,21,0,53,0,56,0,70,0,39,0\n12,0,76,0,17,0,19,0,65,0,41,0\n4,0,57,0,22,0,59,0,23,0,20,0\n68,0,46,0,10,0,45,0,47,0,28,0\n54,0,72,0,26,0,48,0,16,0,15,0\n9,0,35,0,32,0,80,0,37,0,51,0\n30,0,61,0,42,0,7,0,60,0,3,0\n43,0,74,0,33,0,21,0,11,0,27,0\n55,0,66,0,17,0,31,0,2,0,29,0\n13,0,24,0,36,0,49,0,34,0,69,0\n50,0,19,0,59,0,45,0,81,0,1,0\n56,0,75,0,22,0,28,0,63,0,65,0\n12,0,40,0,68,0,78,0,53,0,62,0\n39,0,16,0,64,0,76,0,52,0,20,0\n5,0,41,0,57,0,71,0,72,0,70,0\n46,0,48,0,14,0,23,0,77,0,38,0\n54,0,8,0,4,0,58,0,18,0,83,0\n26,0,82,0,47,0,79,0,67,0,6,0\n25,0,44,0,34,0,73,0,10,0,32,0\n30,1,21,0,59,0,24,1,55,0,35,0\n33,0,12,0,66,0,60,0,64,0,22,0\n70,0,50,0,28,0,16,0,80,0,36,0\n65,0,7,0,37,0,38,0,68,0,13,0\n49,0,72,0,4,0,56,0,78,0,76,0\n79,0,41,0,58,0,53,0,61,0,14,0\n74,0,26,0,73,0,18,0,71,0,19,0\n52,0,17,0,15,0,10,0,5,0,23,0\n48,0,40,0,2,0,82,0,20,0,75,0\n43,0,69,0,51,0,8,0,29,0,46,0\n77,0,47,0,54,0,31,0,81,0,42,0\n27,0,67,0,57,0,44,0,39,0,1,0\n11,0,6,0,25,0,63,0,62,0,45,0\n83,0,9,0,50,0,3,0,76,0,74,0\n53,0,73,0,23,0,55,0,36,0,65,0\n10,0,2,0,60,0,18,0,78,0,41,0\n8,0,71,0,34,0,80,0,14,0,59,0\n33,0,37,0,30,0,70,0,54,0,52,0\n43,0,5,0,38,0,19,0,47,0,56,0\n35,0,77,0,22,0,1,0,82,0,58,0\n51,0,11,0,79,0,83,0,42,0,57,0\n61,0,21,0,12,0,13,0,26,0,31,0\n15,0,6,0,39,0,32,0,69,0,68,0\n75,0,7,0,45,0,24,0,72,0,64,0\n25,0,28,0,4,0,67,0,29,0,40,0\n20,0,44,0,17,0,46,0,9,0,62,0\n81,0,3,0,48,0,66,0,63,0,49,0\n27,0,71,0,51,0,16,0,47,0,22,0\n43,0,23,0,35,0,79,0,34,0,54,0\n82,0,39,0,18,0,37,0,42,0,5,0\n10,0,38,0,74,0,12,0,72,0,6,0\n76,0,36,0,2,0,21,0,1,0,25,0\n64,0,30,0,13,0,50,0,41,0,73,0\n68,0,9,0,29,0,26,0,81,0,58,0\n46,0,49,0,83,0,70,0,65,0,59,0\n15,0,55,0,78,0,44,0,3,0,75,0\n40,0,32,0,27,0,52,0,63,0,14,0\n45,0,56,0,31,0,16,0,33,0,57,0\n61,0,19,0,62,0,77,0,67,0,24,0\n4,0,48,0,60,0,80,0,17,0,11,0\n20,0,53,0,28,0,66,0,7,0,8,0\n69,0,70,0,23,0,12,0,1,0,42,0\n49,0,29,0,74,0,37,0,44,0,47,0\n63,0,21,0,54,0,38,0,41,0,51,0\n82,0,32,0,13,0,76,0,33,0,81,0\n67,0,71,0,56,0,2,0,46,0,64,0\n68,0,61,0,36,0,83,0,75,0,17,0\n35,0,31,0,18,0,6,0,52,0,28,0\n59,0,16,0,58,0,66,0,5,0,62,0\n72,0,65,0,80,0,69,0,30,0,40,0\n79,0,73,0,7,0,27,0,9,0,15,0\n11,0,19,0,20,0,55,0,10,0,14,0\n34,0,26,0,3,0,39,0,4,0,45,0\n50,0,43,0,60,0,77,0,57,0,53,0\n48,0,78,0,24,0,22,0,25,0,8,0\n58,0,71,0,63,0,23,0,31,0,76,0\n41,0,16,0,37,0,75,0,6,0,81,0\n44,0,42,0,28,0,2,0,59,0,72,0\n14,0,62,0,1,0,30,0,51,0,74,0\n52,0,34,0,19,0,46,0,7,0,82,0\n50,0,47,0,55,0,33,0,4,0,69,0\n20,0,25,0,60,0,68,0,27,0,56,0\n83,0,10,0,80,0,53,0,26,0,24,0\n66,0,36,0,9,0,54,0,57,0,78,0\n5,0,65,0,29,0,61,0,48,0,32,0\n67,0,35,0,11,0,73,0,49,0,12,0\n3,0,64,0,40,0,21,0,77,0,8,0\n18,0,70,0,45,0,15,0,43,0,13,0\n79,0,38,0,81,0,39,0,22,0,17,0\n23,0,72,0,33,0,19,0,25,0,51,0\n24,0,52,0,71,0,66,0,44,0,68,0\n6,0,80,0,46,0,27,0,5,0,54,0\n12,0,30,0,56,0,32,0,58,0,36,0\n57,0,65,0,26,0,2,0,8,0,35,0\n37,0,78,0,64,0,34,0,28,0,61,0\n47,0,14,0,76,0,73,0,75,0,60,0\n83,0,38,0,1,0,20,0,15,0,29,0\n77,0,13,0,63,0,10,0,39,0,9,0\n22,0,7,0,31,0,11,0,40,0,70,0\n79,0,18,0,21,0,62,0,49,0,50,0\n69,0,53,0,17,0,67,0,3,0,59,0\n55,0,45,0,42,0,74,0,41,0,48,0\n82,0,16,0,24,0,43,0,4,0,30,0\n"
  },
  {
    "path": "schedules/83_9.csv",
    "content": "78,0,57,0,32,0,34,0,47,0,45,0\n63,0,56,0,2,0,55,0,3,0,27,0\n74,0,51,0,70,0,66,0,67,0,4,0\n23,0,29,0,72,0,75,0,12,0,28,0\n48,0,61,0,58,0,17,0,52,0,26,0\n73,0,6,0,8,0,68,0,50,0,19,0\n62,0,49,0,15,0,77,0,79,0,5,0\n1,0,35,0,81,0,10,0,33,0,43,0\n14,0,13,0,60,0,83,0,9,0,40,0\n18,0,38,0,36,0,71,0,46,0,44,0\n37,0,39,0,41,0,22,0,64,0,69,0\n65,0,11,0,42,0,54,0,82,0,53,0\n25,0,80,0,76,0,31,0,30,0,24,0\n59,0,16,0,7,0,20,0,21,0,75,0\n67,0,43,0,48,0,50,0,49,0,78,0\n5,0,56,0,66,0,1,0,58,0,32,0\n15,0,27,0,19,0,23,0,4,0,17,0\n6,0,77,0,60,0,41,0,51,0,26,0\n12,0,11,0,55,0,74,0,46,0,13,0\n57,0,64,0,40,0,54,0,29,0,8,0\n73,0,76,0,44,0,22,0,45,0,7,0\n69,0,33,0,47,0,14,0,82,0,28,0\n21,0,3,0,10,0,31,0,72,0,36,0\n16,0,18,0,2,0,52,0,68,0,65,0\n34,0,63,0,42,0,25,0,38,0,79,0\n30,0,62,0,70,0,35,0,53,0,20,0\n39,0,83,0,71,0,24,0,59,0,61,0\n80,0,81,0,5,0,37,0,9,0,17,0\n73,1,48,0,46,0,15,1,8,0,47,0\n12,1,26,0,21,0,4,0,11,0,64,0\n57,0,75,0,52,0,10,0,50,0,14,0\n29,0,55,0,41,0,76,0,82,0,34,0\n78,0,40,0,16,0,6,0,25,0,70,0\n49,0,58,0,83,0,19,0,65,0,63,0\n81,0,36,0,79,0,2,0,39,0,67,0\n1,0,23,0,61,0,80,0,13,0,20,0\n24,0,60,0,22,0,3,0,66,0,62,0\n27,0,51,0,72,0,45,0,37,0,71,0\n74,0,33,0,9,0,38,0,31,0,68,0\n30,0,44,0,43,0,42,0,56,0,59,0\n7,0,35,0,54,0,69,0,18,0,77,0\n28,0,32,0,4,0,53,0,48,0,16,0\n50,0,39,0,58,0,29,0,47,0,11,0\n17,0,34,0,83,0,75,0,67,0,22,0\n8,0,52,0,78,0,51,0,80,0,55,0\n65,0,71,0,57,0,33,0,60,0,79,0\n20,0,37,0,38,0,2,0,40,0,76,0\n62,0,42,0,7,0,41,0,81,0,12,0\n59,0,5,0,28,0,73,0,10,0,13,0\n44,0,35,0,25,0,3,0,19,0,64,0\n54,0,66,0,9,0,6,0,45,0,15,0\n43,0,69,0,27,0,18,0,61,0,74,0\n1,0,36,0,26,0,30,0,63,0,82,0\n70,0,68,0,49,0,46,0,32,0,72,0\n77,0,23,0,14,0,53,0,21,0,24,0\n31,0,60,0,67,0,56,0,28,0,7,0\n83,0,20,0,8,0,41,0,79,0,44,0\n48,0,33,0,54,0,12,0,5,0,3,0\n25,0,4,0,62,0,13,0,29,0,71,0\n61,0,10,0,6,0,37,0,11,0,63,0\n47,0,30,0,75,0,55,0,19,0,18,0\n26,0,74,0,22,0,15,0,65,0,78,0\n46,0,56,0,24,0,52,0,9,0,35,0\n53,0,34,0,68,0,58,0,81,0,69,0\n72,0,80,0,38,0,59,0,57,0,66,0\n76,0,16,0,77,0,36,0,43,0,64,0\n32,0,50,0,82,0,31,0,51,0,40,0\n45,0,2,0,21,0,1,0,17,0,70,0\n14,0,73,0,39,0,27,0,42,0,49,0\n23,0,74,0,52,0,7,0,37,0,60,0\n3,0,53,0,41,0,9,0,78,0,61,0\n46,0,22,0,79,0,4,0,59,0,54,0\n43,0,12,0,47,0,68,0,83,0,26,0\n72,0,63,0,50,0,77,0,81,0,44,0\n32,0,17,0,55,0,25,0,10,0,65,0\n82,0,64,0,24,0,75,0,5,0,70,0\n36,0,28,0,45,0,42,0,80,0,19,0\n38,0,48,0,29,0,27,0,6,0,35,0\n11,0,1,0,16,0,57,0,69,0,49,0\n23,0,18,0,56,0,62,0,39,0,40,0\n33,0,51,0,30,0,73,0,58,0,2,0\n20,0,34,0,31,0,71,0,14,0,66,0\n76,0,67,0,8,0,15,0,13,0,21,0\n19,0,9,0,10,0,77,0,22,0,70,0\n64,0,53,0,80,0,7,0,50,0,46,0\n44,0,24,0,6,0,57,0,55,0,28,0\n47,0,74,0,41,0,72,0,54,0,1,0\n65,0,51,0,69,0,36,0,56,0,48,0\n20,0,81,0,18,0,60,0,4,0,49,0\n2,0,42,0,31,0,5,0,29,0,61,0\n66,0,43,0,25,0,73,0,23,0,11,0\n79,0,13,0,82,0,27,0,78,0,58,0\n68,0,3,0,75,0,40,0,15,0,71,0\n17,0,59,0,14,0,76,0,63,0,35,0\n37,0,33,0,26,0,16,0,67,0,34,0\n62,0,52,0,21,0,38,0,32,0,83,0\n45,0,12,0,30,0,39,0,8,0,10,0\n61,0,54,0,73,0,81,0,70,0,55,0\n79,0,29,0,1,0,18,0,51,0,24,0\n68,0,80,0,11,0,60,0,48,0,44,0\n36,0,7,0,13,0,49,0,17,0,47,0\n71,0,53,0,19,0,26,0,76,0,56,0\n40,0,77,0,42,0,4,0,33,0,52,0\n9,0,82,0,43,0,39,0,72,0,20,0\n8,0,58,0,22,0,14,0,16,0,38,0\n65,0,66,0,28,0,21,0,30,0,37,0\n46,0,5,0,27,0,41,0,57,0,25,0\n3,0,59,0,6,0,67,0,23,0,32,0\n12,0,50,0,15,0,2,0,35,0,34,0\n31,0,78,0,63,0,62,0,69,0,75,0\n45,0,64,0,29,0,74,0,83,0,81,0\n71,0,10,0,60,0,16,0,42,0,47,0\n14,0,79,0,7,0,48,0,30,0,72,0\n77,0,17,0,57,0,56,0,82,0,73,0\n19,0,37,0,54,0,13,0,43,0,24,0\n67,0,12,0,65,0,9,0,27,0,44,0\n52,0,15,0,70,0,31,0,11,0,59,0\n2,0,49,0,74,0,8,0,53,0,25,0\n5,0,22,0,68,0,23,0,36,0,55,0\n66,0,78,0,83,0,76,0,33,0,46,0\n35,0,58,0,41,0,40,0,21,0,80,0\n4,0,39,0,75,0,1,0,6,0,38,0\n3,0,20,0,69,0,50,0,45,0,26,0\n51,0,64,0,28,0,61,0,62,0,34,0\n18,0,32,0,15,0,63,0,73,0,12,0\n"
  },
  {
    "path": "schedules/84_1.csv",
    "content": "38,0,45,0,69,0,80,0,8,0,37,0\n49,0,64,0,59,0,84,0,48,0,30,0\n74,0,70,0,27,0,17,0,5,0,24,0\n41,0,20,0,4,0,46,0,13,0,58,0\n25,0,14,0,54,0,60,0,18,0,50,0\n73,0,47,0,28,0,53,0,29,0,79,0\n63,0,62,0,23,0,57,0,11,0,82,0\n40,0,81,0,55,0,61,0,75,0,2,0\n7,0,32,0,15,0,83,0,10,0,12,0\n3,0,42,0,16,0,72,0,33,0,19,0\n9,0,1,0,44,0,51,0,34,0,43,0\n67,0,66,0,76,0,39,0,77,0,22,0\n78,0,56,0,52,0,6,0,65,0,71,0\n35,0,68,0,31,0,21,0,36,0,26,0\n"
  },
  {
    "path": "schedules/84_10.csv",
    "content": "70,0,35,0,33,0,53,0,36,0,80,0\n64,0,41,0,56,0,2,0,51,0,43,0\n81,0,19,0,73,0,44,0,69,0,49,0\n84,0,71,0,32,0,40,0,58,0,13,0\n7,0,45,0,42,0,12,0,4,0,77,0\n37,0,65,0,75,0,38,0,61,0,78,0\n50,0,25,0,66,0,63,0,52,0,47,0\n23,0,68,0,21,0,83,0,1,0,72,0\n5,0,20,0,29,0,57,0,16,0,28,0\n48,0,3,0,9,0,55,0,60,0,74,0\n30,0,15,0,17,0,18,0,67,0,11,0\n76,0,39,0,62,0,6,0,59,0,22,0\n24,0,26,0,10,0,34,0,46,0,79,0\n31,0,14,0,82,0,54,0,8,0,27,0\n40,0,51,0,68,0,36,0,38,0,42,0\n52,0,65,0,44,0,5,0,84,0,33,0\n55,0,49,0,75,0,16,0,32,0,23,0\n18,0,35,0,83,0,13,0,61,0,41,0\n72,0,6,0,69,0,20,0,56,0,80,0\n9,0,71,0,50,0,4,0,39,0,11,0\n31,0,1,0,67,0,22,0,73,0,3,0\n66,0,37,0,74,0,2,0,46,0,27,0\n7,0,60,0,8,0,24,0,47,0,76,0\n12,0,59,0,25,0,57,0,79,0,21,0\n17,0,54,0,81,0,48,0,10,0,53,0\n15,0,78,0,43,0,34,0,77,0,28,0\n64,0,14,0,29,0,62,0,26,0,30,0\n19,0,82,0,70,0,58,0,63,0,45,0\n3,0,71,0,35,0,16,0,68,0,65,0\n39,0,46,0,80,0,52,0,83,0,75,0\n32,0,5,0,67,0,74,0,50,0,76,0\n33,0,57,0,27,0,41,0,73,0,24,0\n69,0,37,0,34,0,23,0,22,0,48,0\n8,0,55,0,30,0,40,0,12,0,1,0\n59,0,54,0,7,0,51,0,19,0,20,0\n64,0,13,0,21,0,78,0,9,0,63,0\n45,0,66,0,61,0,17,0,44,0,43,0\n29,0,4,0,72,0,31,0,84,0,38,0\n26,0,2,0,47,0,18,0,49,0,77,0\n36,0,15,0,14,0,82,0,6,0,10,0\n11,0,79,0,58,0,28,0,56,0,53,0\n25,0,70,0,81,0,60,0,42,0,62,0\n22,0,40,0,8,0,50,0,20,0,46,0\n66,0,76,0,9,0,33,0,30,0,75,0\n63,0,12,0,29,0,67,0,48,0,35,0\n18,0,55,0,68,0,21,0,37,0,73,0\n38,0,24,0,5,0,17,0,19,0,13,0\n44,0,7,0,41,0,34,0,72,0,82,0\n56,0,4,0,59,0,78,0,10,0,74,0\n39,0,53,0,2,0,25,0,31,0,32,0\n49,0,14,0,84,0,43,0,70,0,79,0\n15,0,52,0,60,0,51,0,45,0,26,0\n81,0,28,0,47,0,71,0,80,0,6,0\n11,0,16,0,61,0,1,0,27,0,62,0\n42,0,23,0,54,0,65,0,57,0,64,0\n77,0,69,0,83,0,58,0,36,0,3,0\n55,0,76,0,20,0,34,0,17,0,63,0\n70,0,5,0,73,0,12,0,46,0,9,0\n52,0,14,0,72,0,59,0,35,0,37,0\n30,0,21,0,38,0,60,0,49,0,39,0\n15,0,84,0,74,0,16,0,7,0,80,0\n4,0,79,0,19,0,8,0,68,0,75,0\n42,0,53,0,71,0,18,0,10,0,29,0\n2,0,6,0,23,0,58,0,24,0,61,0\n78,0,3,0,11,0,57,0,47,0,44,0\n48,0,77,0,66,0,62,0,41,0,31,0\n22,0,56,0,54,0,28,0,13,0,26,0\n36,0,64,0,27,0,45,0,81,0,50,0\n43,0,40,0,83,0,65,0,67,0,25,0\n82,0,51,0,1,0,33,0,69,0,32,0\n63,0,60,0,2,0,5,0,72,0,10,0\n12,0,24,0,34,0,11,0,49,0,59,0\n74,0,77,0,79,0,71,0,23,0,52,0\n3,0,15,0,13,0,70,0,20,0,66,0\n80,0,9,0,61,0,22,0,68,0,14,0\n53,0,40,0,41,0,76,0,78,0,45,0\n7,0,28,0,69,0,64,0,35,0,31,0\n16,0,30,0,37,0,25,0,6,0,19,0\n38,0,62,0,33,0,54,0,18,0,50,0\n39,0,84,0,42,0,82,0,55,0,56,0\n58,0,21,0,47,0,46,0,51,0,67,0\n17,0,65,0,8,0,36,0,73,0,29,0\n27,0,83,0,48,0,44,0,32,0,4,0\n57,0,43,0,75,0,26,0,81,0,1,0\n78,0,16,0,60,0,79,0,66,0,69,0\n11,0,54,0,6,0,77,0,5,0,40,0\n22,0,25,0,74,0,35,0,45,0,84,0\n39,0,28,0,19,0,33,0,67,0,23,0\n14,0,63,0,51,0,24,0,65,0,18,0\n55,0,2,0,83,0,59,0,70,0,29,0\n31,0,12,0,13,0,62,0,47,0,15,0\n80,0,10,0,50,0,43,0,37,0,3,0\n27,0,20,0,26,0,53,0,9,0,38,0\n73,0,44,0,82,0,64,0,75,0,71,0\n49,0,46,0,76,0,68,0,48,0,42,0\n56,0,21,0,34,0,81,0,32,0,8,0\n1,0,58,0,41,0,52,0,4,0,17,0\n57,0,36,0,61,0,30,0,7,0,72,0\n18,0,6,0,78,0,23,0,31,0,70,0\n80,0,25,0,29,0,51,0,27,0,77,0\n62,0,10,0,19,0,83,0,84,0,28,0\n45,0,48,0,20,0,47,0,75,0,14,0\n68,0,60,0,44,0,13,0,50,0,59,0\n58,0,5,0,81,0,39,0,35,0,66,0\n76,0,4,0,3,0,61,0,52,0,21,0\n16,0,82,0,12,0,17,0,26,0,40,0\n69,0,30,0,65,0,74,0,46,0,41,0\n33,0,43,0,22,0,55,0,7,0,11,0\n32,0,72,0,73,0,15,0,42,0,79,0\n36,0,34,0,67,0,9,0,54,0,2,0\n63,0,57,0,71,0,38,0,8,0,56,0\n53,0,49,0,24,0,37,0,1,0,64,0\n75,0,18,0,59,0,84,0,3,0,27,0\n70,0,10,0,47,0,68,0,69,0,39,0\n78,0,46,0,23,0,7,0,25,0,17,0\n31,0,11,0,26,0,21,0,80,0,65,0\n77,0,16,0,13,0,76,0,72,0,81,0\n58,0,44,0,74,0,54,0,43,0,12,0\n30,0,79,0,82,0,5,0,22,0,83,0\n32,0,63,0,28,0,37,0,41,0,36,0\n50,0,42,0,1,0,35,0,2,0,19,0\n53,0,67,0,55,0,4,0,66,0,14,0\n45,0,38,0,52,0,6,0,34,0,73,0\n51,0,62,0,9,0,8,0,49,0,57,0\n64,0,61,0,60,0,71,0,33,0,20,0\n40,0,56,0,24,0,48,0,15,0,29,0\n47,0,59,0,23,0,5,0,43,0,36,0\n19,0,41,0,72,0,3,0,12,0,39,0\n18,0,80,0,79,0,44,0,1,0,76,0\n17,0,75,0,50,0,21,0,70,0,28,0\n13,0,65,0,27,0,7,0,6,0,49,0\n84,0,77,0,46,0,53,0,61,0,63,0\n33,0,26,0,42,0,37,0,58,0,8,0\n69,0,25,0,71,0,15,0,54,0,55,0\n51,0,48,0,73,0,2,0,30,0,78,0\n38,0,10,0,22,0,66,0,32,0,64,0\n57,0,35,0,34,0,40,0,60,0,4,0\n24,0,20,0,67,0,62,0,52,0,82,0\n81,0,68,0,29,0,11,0,14,0,74,0\n9,0,45,0,31,0,83,0,16,0,56,0\n"
  },
  {
    "path": "schedules/84_11.csv",
    "content": "28,0,66,0,33,0,23,0,46,0,16,0\n12,0,15,0,59,0,54,0,37,0,48,0\n52,0,77,0,32,0,56,0,8,0,10,0\n5,0,64,0,43,0,41,0,75,0,71,0\n67,0,36,0,35,0,80,0,84,0,47,0\n50,0,76,0,27,0,2,0,13,0,3,0\n38,0,53,0,19,0,29,0,18,0,81,0\n14,0,62,0,74,0,61,0,21,0,42,0\n39,0,1,0,45,0,57,0,83,0,51,0\n69,0,63,0,25,0,9,0,7,0,40,0\n79,0,24,0,20,0,17,0,65,0,30,0\n44,0,22,0,72,0,49,0,58,0,11,0\n31,0,26,0,4,0,60,0,68,0,73,0\n55,0,34,0,6,0,78,0,70,0,82,0\n35,0,18,0,23,0,5,0,2,0,62,0\n50,0,16,0,57,0,74,0,15,0,53,0\n56,0,75,0,9,0,27,0,67,0,12,0\n65,0,42,0,25,0,76,0,52,0,81,0\n11,0,43,0,80,0,30,0,77,0,63,0\n46,0,21,0,3,0,24,0,54,0,29,0\n6,0,64,0,39,0,10,0,47,0,28,0\n44,0,73,0,4,0,17,0,45,0,20,0\n61,0,59,0,49,0,26,0,69,0,13,0\n37,0,33,0,19,0,40,0,84,0,34,0\n70,0,68,0,7,0,38,0,1,0,41,0\n36,0,8,0,58,0,31,0,78,0,48,0\n51,0,22,0,82,0,71,0,79,0,60,0\n66,0,72,0,83,0,32,0,55,0,14,0\n21,0,53,0,56,0,23,0,63,0,64,0\n73,0,9,0,18,0,30,0,59,0,10,0\n49,0,40,0,54,0,57,0,4,0,43,0\n42,0,33,0,5,0,12,0,70,0,50,0\n13,0,77,0,46,0,25,0,47,0,34,0\n82,0,35,0,20,0,16,0,39,0,31,0\n45,0,38,0,66,0,22,0,78,0,27,0\n2,0,36,0,74,0,81,0,26,0,11,0\n44,0,48,0,84,0,55,0,79,0,75,0\n17,0,72,0,28,0,69,0,52,0,19,0\n14,0,67,0,65,0,7,0,15,0,71,0\n3,0,80,0,41,0,61,0,32,0,6,0\n29,0,83,0,76,0,8,0,68,0,51,0\n37,0,62,0,1,0,60,0,58,0,24,0\n22,0,77,0,12,0,64,0,74,0,26,0\n44,0,34,0,79,0,53,0,31,0,43,0\n78,0,69,0,56,0,73,0,54,0,2,0\n70,0,14,0,23,0,19,0,59,0,36,0\n75,0,45,0,52,0,66,0,82,0,47,0\n5,0,57,0,32,0,11,0,29,0,25,0\n18,0,7,0,72,0,48,0,24,0,80,0\n55,0,15,0,4,0,33,0,62,0,76,0\n16,0,3,0,71,0,1,0,49,0,42,0\n58,0,21,0,81,0,51,0,40,0,27,0\n6,0,20,0,68,0,9,0,84,0,67,0\n8,0,50,0,35,0,65,0,46,0,61,0\n10,0,60,0,83,0,41,0,17,0,13,0\n37,0,38,0,63,0,28,0,39,0,30,0\n64,0,7,0,73,0,52,0,36,0,44,0\n26,0,79,0,76,0,72,0,32,0,16,0\n2,0,15,0,34,0,59,0,55,0,21,0\n3,0,74,0,25,0,18,0,4,0,66,0\n43,0,8,0,1,0,33,0,6,0,22,0\n23,0,20,0,84,0,29,0,77,0,50,0\n51,0,31,0,67,0,41,0,19,0,54,0\n57,0,68,0,63,0,82,0,14,0,27,0\n47,0,65,0,9,0,83,0,38,0,58,0\n62,0,10,0,70,0,46,0,69,0,71,0\n49,0,48,0,30,0,56,0,60,0,42,0\n53,0,24,0,13,0,80,0,39,0,5,0\n45,0,11,0,12,0,28,0,40,0,61,0\n17,0,78,0,37,0,81,0,35,0,75,0\n26,0,44,0,33,0,25,0,6,0,54,0\n27,0,47,0,32,0,18,0,19,0,43,0\n50,0,31,0,62,0,64,0,72,0,38,0\n46,0,84,0,30,0,76,0,41,0,57,0\n51,0,16,0,55,0,9,0,5,0,63,0\n29,0,48,0,82,0,67,0,74,0,28,0\n75,0,24,0,10,0,34,0,68,0,61,0\n12,0,1,0,69,0,35,0,4,0,14,0\n77,0,42,0,45,0,58,0,79,0,2,0\n81,0,71,0,73,0,13,0,23,0,15,0\n65,0,53,0,37,0,56,0,70,0,22,0\n52,0,60,0,40,0,39,0,36,0,3,0\n21,0,78,0,80,0,20,0,49,0,83,0\n8,0,7,0,11,0,59,0,17,0,66,0\n34,0,64,0,69,0,68,0,48,0,32,0\n29,0,61,0,2,0,63,0,44,0,1,0\n58,0,19,0,10,0,50,0,79,0,4,0\n62,0,13,0,16,0,12,0,6,0,56,0\n70,0,28,0,65,0,73,0,77,0,75,0\n54,0,81,0,27,0,80,0,60,0,20,0\n43,0,42,0,7,0,15,0,35,0,83,0\n66,0,37,0,71,0,26,0,9,0,57,0\n84,0,25,0,41,0,59,0,72,0,45,0\n46,0,36,0,51,0,53,0,17,0,82,0\n3,0,30,0,78,0,74,0,47,0,5,0\n38,0,24,0,40,0,23,0,55,0,8,0\n67,0,21,0,22,0,18,0,39,0,76,0\n11,0,52,0,14,0,31,0,49,0,33,0\n54,0,61,0,15,0,9,0,79,0,28,0\n27,0,1,0,26,0,84,0,65,0,10,0\n20,0,34,0,63,0,62,0,36,0,66,0\n5,0,83,0,56,0,44,0,81,0,59,0\n17,0,12,0,38,0,80,0,25,0,71,0\n69,0,47,0,41,0,8,0,21,0,57,0\n6,0,14,0,77,0,24,0,51,0,18,0\n75,0,29,0,16,0,40,0,4,0,30,0\n82,0,23,0,31,0,76,0,3,0,37,0\n19,0,49,0,35,0,64,0,55,0,45,0\n22,0,43,0,50,0,48,0,52,0,73,0\n32,0,70,0,74,0,58,0,13,0,7,0\n67,0,33,0,72,0,2,0,60,0,53,0\n42,0,39,0,78,0,46,0,68,0,11,0\n14,0,84,0,17,0,16,0,5,0,34,0\n8,0,24,0,71,0,28,0,27,0,44,0\n41,0,9,0,49,0,62,0,82,0,81,0\n79,0,19,0,73,0,66,0,80,0,1,0\n36,0,76,0,61,0,43,0,38,0,56,0\n55,0,57,0,58,0,20,0,12,0,3,0\n21,0,4,0,52,0,67,0,77,0,37,0\n83,0,68,0,54,0,40,0,74,0,50,0\n48,0,11,0,53,0,6,0,10,0,35,0\n15,0,46,0,60,0,18,0,75,0,69,0\n30,0,51,0,64,0,70,0,25,0,2,0\n32,0,13,0,65,0,45,0,63,0,33,0\n26,0,39,0,72,0,23,0,7,0,78,0\n22,0,47,0,59,0,42,0,29,0,31,0\n66,0,67,0,24,0,12,0,43,0,81,0\n76,0,58,0,6,0,5,0,61,0,73,0\n82,0,60,0,11,0,21,0,84,0,38,0\n50,0,55,0,25,0,28,0,1,0,36,0\n63,0,48,0,71,0,19,0,46,0,83,0\n18,0,79,0,57,0,64,0,78,0,13,0\n74,0,69,0,23,0,65,0,44,0,51,0\n30,0,32,0,54,0,62,0,22,0,35,0\n77,0,59,0,7,0,75,0,33,0,3,0\n41,0,68,0,2,0,16,0,37,0,52,0\n10,0,31,0,80,0,15,0,45,0,56,0\n17,0,27,0,39,0,70,0,29,0,49,0\n47,0,53,0,40,0,20,0,14,0,26,0\n4,0,9,0,34,0,42,0,8,0,72,0\n58,0,18,0,61,0,71,0,54,0,84,0\n73,0,3,0,51,0,67,0,11,0,38,0\n21,0,44,0,13,0,66,0,68,0,19,0\n6,0,30,0,81,0,45,0,50,0,7,0\n16,0,78,0,28,0,65,0,59,0,60,0\n56,0,29,0,79,0,33,0,41,0,14,0\n17,0,76,0,1,0,64,0,9,0,48,0\n46,0,10,0,43,0,74,0,37,0,20,0\n62,0,49,0,75,0,8,0,25,0,53,0\n2,0,39,0,47,0,4,0,32,0,12,0\n35,0,26,0,63,0,52,0,24,0,70,0\n83,0,23,0,80,0,34,0,57,0,22,0\n55,0,31,0,36,0,42,0,27,0,69,0\n72,0,40,0,5,0,15,0,82,0,77,0\n"
  },
  {
    "path": "schedules/84_12.csv",
    "content": "35,0,71,0,76,0,66,0,64,0,19,0\n53,0,3,0,6,0,17,0,41,0,12,0\n44,0,60,0,37,0,48,0,24,0,20,0\n28,0,1,0,11,0,29,0,4,0,50,0\n33,0,38,0,79,0,31,0,81,0,47,0\n56,0,45,0,18,0,68,0,7,0,69,0\n32,0,26,0,34,0,2,0,16,0,21,0\n74,0,22,0,57,0,59,0,55,0,14,0\n9,0,42,0,75,0,73,0,5,0,51,0\n63,0,13,0,52,0,8,0,40,0,36,0\n39,0,65,0,49,0,72,0,54,0,67,0\n84,0,77,0,23,0,61,0,58,0,62,0\n15,0,78,0,80,0,70,0,43,0,25,0\n83,0,82,0,30,0,46,0,10,0,27,0\n31,0,14,0,45,0,28,0,29,0,26,0\n57,0,37,0,47,0,71,0,34,0,69,0\n5,0,20,0,11,0,33,0,32,0,68,0\n56,0,6,0,76,0,51,0,13,0,24,0\n84,0,62,0,53,0,67,0,1,0,64,0\n48,0,16,0,22,0,15,0,58,0,42,0\n72,0,50,0,61,0,46,0,70,0,63,0\n43,0,82,0,74,0,81,0,18,0,8,0\n65,0,60,0,52,0,3,0,80,0,10,0\n21,0,17,0,25,0,83,0,75,0,12,0\n38,0,36,0,30,0,19,0,49,0,59,0\n54,0,78,0,23,0,4,0,44,0,73,0\n66,0,9,0,79,0,40,0,77,0,2,0\n55,0,7,0,27,0,41,0,35,0,39,0\n15,0,20,0,8,0,57,0,62,0,11,0\n6,0,65,0,67,0,68,0,37,0,70,0\n47,0,60,0,21,0,28,0,13,0,72,0\n81,0,45,0,50,0,51,0,58,0,10,0\n1,0,25,0,23,0,32,0,76,0,22,0\n9,0,19,0,29,0,56,0,82,0,84,0\n74,0,64,0,42,0,31,0,36,0,80,0\n5,0,83,0,61,0,79,0,71,0,39,0\n59,0,53,0,48,0,77,0,7,0,63,0\n78,0,75,0,34,0,66,0,55,0,46,0\n26,0,44,0,52,0,27,0,17,0,73,0\n41,0,24,0,38,0,54,0,40,0,69,0\n49,0,3,0,35,0,16,0,43,0,33,0\n2,0,4,0,14,0,30,0,18,0,12,0\n79,0,67,0,23,0,28,0,71,0,42,0\n9,0,31,0,72,0,6,0,25,0,22,0\n5,0,59,0,60,0,58,0,29,0,82,0\n37,0,13,0,75,0,52,0,50,0,77,0\n55,0,57,0,40,0,36,0,21,0,45,0\n10,0,64,0,39,0,24,0,44,0,16,0\n83,0,34,0,73,0,18,0,35,0,48,0\n70,0,69,0,30,0,11,0,84,0,81,0\n19,0,2,0,3,0,7,0,62,0,74,0\n32,0,51,0,27,0,49,0,78,0,61,0\n33,0,4,0,56,0,66,0,26,0,41,0\n1,0,68,0,63,0,17,0,47,0,43,0\n14,0,53,0,76,0,80,0,20,0,54,0\n65,0,46,0,15,0,8,0,12,0,38,0\n25,0,40,0,31,0,35,0,60,0,50,0\n52,0,37,0,55,0,16,0,28,0,30,0\n57,0,6,0,82,0,2,0,23,0,49,0\n22,0,26,0,24,0,5,0,78,0,3,0\n47,0,74,0,84,0,32,0,77,0,39,0\n56,0,44,0,75,0,53,0,61,0,70,0\n1,0,7,0,42,0,46,0,14,0,34,0\n41,0,10,0,68,0,79,0,48,0,64,0\n73,0,20,0,36,0,65,0,43,0,29,0\n13,0,80,0,9,0,11,0,38,0,18,0\n33,0,72,0,66,0,69,0,51,0,83,0\n81,0,15,0,63,0,21,0,19,0,4,0\n8,0,67,0,76,0,17,0,59,0,45,0\n54,0,58,0,12,0,27,0,71,0,62,0\n37,0,24,0,7,0,79,0,42,0,82,0\n65,0,26,0,75,0,23,0,30,0,47,0\n64,0,18,0,2,0,70,0,60,0,55,0\n61,0,20,0,10,0,6,0,13,0,1,0\n46,0,25,0,33,0,53,0,39,0,73,0\n4,0,34,0,40,0,76,0,43,0,84,0\n68,0,50,0,49,0,71,0,78,0,8,0\n17,0,62,0,48,0,31,0,66,0,28,0\n3,0,58,0,9,0,83,0,63,0,57,0\n69,0,12,0,22,0,36,0,44,0,19,0\n38,0,14,0,52,0,72,0,32,0,56,0\n81,0,27,0,80,0,16,0,29,0,67,0\n21,0,15,0,51,0,5,0,54,0,74,0\n59,0,77,0,41,0,35,0,45,0,11,0\n10,0,82,0,28,0,40,0,75,0,33,0\n53,0,25,0,42,0,68,0,55,0,4,0\n23,0,36,0,39,0,70,0,3,0,34,0\n57,0,32,0,30,0,13,0,64,0,7,0\n29,0,37,0,62,0,38,0,44,0,76,0\n47,0,5,0,12,0,52,0,74,0,66,0\n50,0,59,0,31,0,16,0,56,0,65,0\n18,0,78,0,21,0,6,0,79,0,58,0\n46,0,71,0,45,0,24,0,9,0,43,0\n35,0,72,0,17,0,81,0,20,0,2,0\n63,0,26,0,84,0,51,0,11,0,54,0\n69,0,48,0,19,0,67,0,14,0,61,0\n8,0,22,0,80,0,77,0,27,0,83,0\n60,0,15,0,73,0,41,0,49,0,1,0\n64,0,58,0,50,0,82,0,38,0,4,0\n16,0,46,0,13,0,68,0,5,0,62,0\n40,0,78,0,20,0,12,0,74,0,56,0\n32,0,31,0,54,0,18,0,10,0,37,0\n28,0,61,0,35,0,76,0,9,0,65,0\n17,0,70,0,79,0,30,0,51,0,22,0\n21,0,48,0,73,0,47,0,80,0,45,0\n11,0,34,0,49,0,24,0,81,0,53,0\n69,0,52,0,43,0,26,0,59,0,25,0\n27,0,84,0,75,0,36,0,57,0,72,0\n71,0,3,0,55,0,15,0,1,0,77,0\n66,0,29,0,63,0,39,0,42,0,6,0\n19,0,7,0,8,0,23,0,33,0,60,0\n83,0,14,0,44,0,41,0,67,0,2,0\n62,0,80,0,51,0,34,0,22,0,82,0\n26,0,10,0,49,0,12,0,9,0,70,0\n61,0,24,0,27,0,18,0,59,0,74,0\n64,0,77,0,28,0,56,0,69,0,15,0\n68,0,58,0,72,0,40,0,30,0,3,0\n7,0,66,0,38,0,43,0,21,0,20,0\n13,0,71,0,41,0,81,0,65,0,25,0\n32,0,60,0,67,0,76,0,55,0,73,0\n4,0,5,0,36,0,6,0,35,0,14,0\n83,0,47,0,19,0,78,0,31,0,53,0\n2,0,11,0,46,0,48,0,23,0,52,0\n45,0,44,0,1,0,33,0,42,0,63,0\n57,0,84,0,39,0,17,0,50,0,37,0\n54,0,8,0,16,0,29,0,79,0,75,0\n67,0,74,0,30,0,9,0,41,0,34,0\n3,0,73,0,81,0,61,0,64,0,59,0\n70,0,27,0,40,0,4,0,47,0,20,0\n10,0,77,0,43,0,19,0,5,0,72,0\n42,0,62,0,69,0,65,0,32,0,21,0\n36,0,11,0,56,0,71,0,17,0,60,0\n58,0,80,0,26,0,46,0,49,0,37,0\n18,0,16,0,14,0,84,0,8,0,25,0\n78,0,38,0,28,0,63,0,2,0,39,0\n75,0,31,0,76,0,44,0,15,0,7,0\n6,0,54,0,55,0,33,0,48,0,50,0\n13,0,45,0,22,0,82,0,66,0,53,0\n12,0,68,0,23,0,29,0,24,0,83,0\n35,0,57,0,1,0,52,0,79,0,51,0\n17,0,4,0,69,0,9,0,60,0,46,0\n40,0,14,0,11,0,37,0,78,0,64,0\n28,0,84,0,7,0,80,0,5,0,49,0\n2,0,56,0,10,0,42,0,47,0,8,0\n71,0,6,0,73,0,16,0,38,0,74,0\n53,0,30,0,43,0,50,0,39,0,62,0\n65,0,19,0,79,0,34,0,27,0,45,0\n36,0,77,0,51,0,44,0,68,0,25,0\n41,0,18,0,72,0,57,0,26,0,76,0\n70,0,66,0,24,0,58,0,1,0,31,0\n59,0,15,0,54,0,13,0,23,0,83,0\n21,0,29,0,61,0,33,0,52,0,22,0\n48,0,12,0,32,0,35,0,81,0,75,0\n63,0,82,0,3,0,20,0,55,0,67,0\n8,0,56,0,5,0,73,0,30,0,37,0\n74,0,53,0,79,0,60,0,72,0,26,0\n77,0,70,0,42,0,17,0,57,0,38,0\n50,0,47,0,54,0,36,0,9,0,7,0\n2,0,33,0,24,0,84,0,65,0,22,0\n71,0,59,0,44,0,40,0,32,0,80,0\n51,0,46,0,29,0,13,0,18,0,3,0\n25,0,64,0,34,0,63,0,27,0,6,0\n16,0,76,0,1,0,48,0,82,0,78,0\n69,0,21,0,67,0,35,0,10,0,23,0\n43,0,12,0,55,0,31,0,61,0,11,0\n41,0,58,0,19,0,75,0,28,0,20,0\n4,0,49,0,62,0,83,0,52,0,45,0\n39,0,66,0,81,0,15,0,14,0,68,0\n"
  },
  {
    "path": "schedules/84_13.csv",
    "content": "45,0,3,0,11,0,8,0,81,0,59,0\n39,0,24,0,12,0,33,0,32,0,30,0\n50,0,19,0,61,0,14,0,60,0,35,0\n21,0,72,0,16,0,58,0,7,0,75,0\n27,0,40,0,78,0,48,0,18,0,53,0\n65,0,80,0,84,0,74,0,47,0,63,0\n6,0,31,0,82,0,57,0,55,0,38,0\n15,0,77,0,2,0,22,0,9,0,36,0\n71,0,41,0,52,0,66,0,43,0,34,0\n4,0,10,0,76,0,68,0,67,0,73,0\n28,0,26,0,1,0,42,0,20,0,17,0\n56,0,79,0,70,0,83,0,37,0,29,0\n69,0,54,0,46,0,62,0,5,0,64,0\n49,0,44,0,51,0,23,0,25,0,13,0\n63,0,57,0,2,0,24,0,72,0,81,0\n34,0,52,0,12,0,27,0,45,0,58,0\n33,0,50,0,22,0,16,0,8,0,11,0\n35,0,7,0,17,0,55,0,84,0,42,0\n36,0,79,0,20,0,74,0,56,0,38,0\n59,0,69,0,15,0,28,0,4,0,60,0\n6,0,65,0,78,0,70,0,73,0,54,0\n1,0,67,0,39,0,64,0,51,0,23,0\n30,0,49,0,83,0,37,0,19,0,44,0\n32,0,82,0,48,0,43,0,47,0,5,0\n41,0,77,0,31,0,25,0,75,0,10,0\n71,0,9,0,46,0,40,0,61,0,3,0\n68,0,80,0,26,0,29,0,18,0,13,0\n21,0,14,0,62,0,76,0,53,0,66,0\n79,0,54,0,24,0,20,0,59,0,34,0\n51,0,60,0,67,0,81,0,17,0,57,0\n32,0,4,0,27,0,1,0,37,0,49,0\n55,0,10,0,58,0,63,0,48,0,70,0\n40,0,30,0,22,0,84,0,35,0,5,0\n12,0,41,0,9,0,19,0,11,0,71,0\n3,0,69,0,13,0,16,0,45,0,66,0\n74,0,25,0,73,0,50,0,46,0,29,0\n52,0,53,0,44,0,38,0,65,0,76,0\n42,0,62,0,82,0,61,0,78,0,77,0\n14,0,68,0,64,0,33,0,75,0,6,0\n28,0,83,0,2,0,43,0,7,0,80,0\n26,0,56,0,31,0,39,0,15,0,8,0\n18,0,21,0,36,0,47,0,72,0,23,0\n70,0,58,0,57,0,50,0,35,0,54,0\n69,0,25,0,40,0,52,0,59,0,37,0\n76,0,17,0,22,0,78,0,79,0,3,0\n9,0,34,0,27,0,6,0,30,0,42,0\n1,0,11,0,43,0,80,0,53,0,75,0\n56,0,64,0,60,0,63,0,12,0,13,0\n5,0,41,0,36,0,4,0,84,0,73,0\n45,0,72,0,39,0,67,0,44,0,61,0\n29,0,8,0,47,0,14,0,55,0,2,0\n24,0,7,0,18,0,38,0,19,0,46,0\n81,0,65,0,82,0,10,0,28,0,21,0\n77,0,71,0,62,0,20,0,16,0,49,0\n32,0,23,0,83,0,48,0,68,0,31,0\n51,0,74,0,66,0,26,0,15,0,33,0\n3,0,17,0,60,0,5,0,30,0,52,0\n75,0,84,0,11,0,1,0,56,0,54,0\n72,0,50,0,55,0,46,0,59,0,64,0\n24,0,13,0,58,0,22,0,14,0,65,0\n71,0,21,0,29,0,57,0,39,0,36,0\n38,0,37,0,18,0,34,0,10,0,8,0\n26,0,83,0,47,0,78,0,33,0,41,0\n6,0,74,0,43,0,61,0,23,0,4,0\n81,0,68,0,7,0,62,0,48,0,9,0\n82,0,40,0,49,0,42,0,73,0,51,0\n53,0,69,0,16,0,63,0,35,0,15,0\n12,0,79,0,66,0,28,0,77,0,25,0\n70,0,31,0,19,0,80,0,45,0,67,0\n44,0,76,0,27,0,2,0,20,0,32,0\n33,0,56,0,47,0,46,0,23,0,10,0\n21,0,64,0,34,0,3,0,83,0,84,0\n42,0,13,0,41,0,37,0,74,0,62,0\n18,0,55,0,39,0,69,0,22,0,60,0\n71,0,73,0,30,0,54,0,26,0,72,0\n40,0,36,0,7,0,70,0,66,0,67,0\n65,0,9,0,57,0,8,0,32,0,79,0\n53,0,45,0,4,0,24,0,2,0,25,0\n15,0,52,0,49,0,14,0,11,0,82,0\n38,0,1,0,31,0,78,0,50,0,12,0\n17,0,61,0,80,0,58,0,68,0,44,0\n48,0,51,0,28,0,75,0,35,0,76,0\n63,0,77,0,19,0,59,0,43,0,27,0\n81,0,6,0,16,0,5,0,29,0,20,0\n8,0,23,0,30,0,69,0,71,0,70,0\n74,0,11,0,55,0,67,0,21,0,32,0\n1,0,62,0,15,0,57,0,25,0,47,0\n50,0,79,0,10,0,39,0,2,0,40,0\n49,0,24,0,78,0,36,0,80,0,52,0\n53,0,59,0,51,0,56,0,41,0,22,0\n37,0,7,0,64,0,26,0,5,0,77,0\n81,0,43,0,73,0,44,0,12,0,35,0\n34,0,13,0,19,0,82,0,17,0,72,0\n46,0,83,0,61,0,65,0,16,0,27,0\n28,0,20,0,45,0,48,0,14,0,33,0\n54,0,29,0,60,0,31,0,9,0,76,0\n75,0,4,0,42,0,58,0,3,0,38,0\n84,0,66,0,63,0,6,0,68,0,18,0\n78,0,56,0,59,0,7,0,71,0,44,0\n23,0,52,0,26,0,35,0,62,0,79,0\n25,0,67,0,16,0,30,0,82,0,47,0\n53,0,32,0,36,0,69,0,34,0,81,0\n76,0,39,0,14,0,46,0,74,0,77,0\n58,0,43,0,50,0,24,0,51,0,9,0\n70,0,13,0,80,0,5,0,15,0,38,0\n18,0,4,0,20,0,64,0,11,0,57,0\n75,0,2,0,22,0,6,0,60,0,49,0\n65,0,31,0,33,0,37,0,72,0,40,0\n29,0,42,0,63,0,21,0,48,0,45,0\n1,0,3,0,66,0,55,0,19,0,73,0\n84,0,17,0,10,0,83,0,12,0,27,0\n8,0,28,0,41,0,61,0,68,0,54,0\n58,0,35,0,78,0,20,0,11,0,39,0\n49,0,76,0,69,0,9,0,7,0,56,0\n43,0,30,0,36,0,57,0,31,0,13,0\n48,0,46,0,81,0,22,0,4,0,38,0\n73,0,29,0,52,0,75,0,32,0,19,0\n53,0,72,0,60,0,83,0,80,0,66,0\n33,0,63,0,44,0,82,0,79,0,1,0\n27,0,10,0,5,0,71,0,51,0,14,0\n26,0,61,0,37,0,24,0,55,0,3,0\n16,0,68,0,2,0,70,0,74,0,34,0\n40,0,67,0,59,0,62,0,6,0,12,0\n23,0,50,0,84,0,42,0,28,0,15,0\n41,0,25,0,64,0,8,0,65,0,21,0\n18,0,45,0,47,0,54,0,17,0,77,0\n19,0,49,0,36,0,79,0,58,0,76,0\n32,0,72,0,10,0,26,0,3,0,22,0\n68,0,37,0,39,0,73,0,53,0,57,0\n80,0,12,0,2,0,46,0,20,0,82,0\n75,0,55,0,78,0,74,0,23,0,27,0\n35,0,25,0,81,0,83,0,6,0,71,0\n62,0,84,0,51,0,45,0,8,0,31,0\n18,0,9,0,59,0,70,0,16,0,1,0\n38,0,64,0,47,0,66,0,30,0,28,0\n63,0,61,0,5,0,11,0,50,0,44,0\n42,0,43,0,14,0,56,0,69,0,67,0\n48,0,7,0,77,0,60,0,34,0,65,0\n24,0,15,0,17,0,40,0,41,0,29,0\n4,0,21,0,54,0,52,0,13,0,33,0\n57,0,16,0,32,0,19,0,78,0,84,0\n9,0,35,0,82,0,45,0,64,0,36,0\n74,0,8,0,76,0,83,0,5,0,72,0\n46,0,26,0,12,0,49,0,70,0,53,0\n6,0,3,0,25,0,56,0,11,0,48,0\n66,0,59,0,17,0,65,0,39,0,75,0\n1,0,61,0,71,0,7,0,79,0,13,0\n20,0,50,0,27,0,69,0,41,0,68,0\n10,0,44,0,62,0,29,0,24,0,28,0\n60,0,38,0,40,0,54,0,23,0,43,0\n42,0,18,0,33,0,55,0,81,0,52,0\n30,0,77,0,14,0,80,0,4,0,51,0\n2,0,67,0,37,0,15,0,21,0,58,0\n63,0,22,0,73,0,34,0,31,0,47,0\n82,0,75,0,83,0,26,0,50,0,9,0\n5,0,45,0,57,0,66,0,41,0,49,0\n70,0,20,0,84,0,43,0,60,0,25,0\n72,0,11,0,38,0,29,0,62,0,27,0\n80,0,16,0,44,0,40,0,55,0,4,0\n64,0,13,0,10,0,32,0,59,0,76,0\n34,0,79,0,30,0,81,0,78,0,15,0\n74,0,31,0,28,0,71,0,53,0,58,0\n68,0,24,0,56,0,1,0,21,0,77,0\n37,0,46,0,8,0,36,0,6,0,17,0\n35,0,67,0,33,0,18,0,65,0,3,0\n22,0,47,0,12,0,52,0,61,0,42,0\n48,0,19,0,54,0,2,0,51,0,69,0\n23,0,39,0,73,0,63,0,7,0,14,0\n83,0,55,0,34,0,13,0,11,0,40,0\n27,0,31,0,79,0,64,0,24,0,16,0\n32,0,46,0,58,0,41,0,60,0,30,0\n15,0,45,0,74,0,6,0,10,0,1,0\n47,0,81,0,71,0,37,0,76,0,50,0\n65,0,72,0,68,0,43,0,51,0,78,0\n5,0,4,0,33,0,19,0,53,0,42,0\n8,0,66,0,75,0,20,0,63,0,67,0\n29,0,57,0,3,0,77,0,12,0,69,0\n14,0,54,0,44,0,26,0,36,0,48,0\n73,0,62,0,56,0,17,0,18,0,2,0\n23,0,22,0,7,0,82,0,25,0,80,0\n61,0,35,0,38,0,21,0,49,0,59,0\n9,0,39,0,70,0,52,0,84,0,28,0\n"
  },
  {
    "path": "schedules/84_14.csv",
    "content": "30,0,56,0,62,0,79,0,9,0,83,0\n20,0,5,0,47,0,29,0,4,0,82,0\n44,0,50,0,57,0,73,0,46,0,13,0\n64,0,23,0,17,0,15,0,63,0,48,0\n68,0,51,0,76,0,80,0,49,0,84,0\n40,0,45,0,16,0,55,0,18,0,42,0\n2,0,43,0,27,0,37,0,75,0,25,0\n14,0,67,0,24,0,81,0,6,0,38,0\n34,0,31,0,70,0,72,0,22,0,32,0\n60,0,12,0,19,0,35,0,36,0,8,0\n71,0,78,0,74,0,28,0,69,0,11,0\n52,0,65,0,59,0,66,0,3,0,1,0\n26,0,53,0,33,0,39,0,7,0,77,0\n10,0,61,0,58,0,54,0,41,0,21,0\n20,0,42,0,49,0,81,0,57,0,37,0\n80,0,56,0,22,0,64,0,18,0,72,0\n8,0,25,0,48,0,55,0,38,0,83,0\n31,0,43,0,35,0,84,0,69,0,78,0\n34,0,51,0,17,0,12,0,11,0,65,0\n19,0,75,0,76,0,44,0,79,0,52,0\n74,0,28,0,54,0,39,0,13,0,59,0\n60,0,82,0,9,0,2,0,45,0,14,0\n67,0,29,0,61,0,53,0,50,0,30,0\n63,0,7,0,24,0,21,0,4,0,62,0\n32,0,3,0,46,0,16,0,23,0,26,0\n33,0,40,0,15,0,6,0,27,0,10,0\n36,0,68,0,73,0,47,0,70,0,66,0\n41,0,71,0,58,0,77,0,1,0,5,0\n76,0,25,0,65,0,12,0,20,0,18,0\n43,0,11,0,39,0,67,0,9,0,22,0\n80,0,74,0,38,0,79,0,35,0,34,0\n78,0,21,0,32,0,55,0,17,0,57,0\n61,0,49,0,44,0,45,0,15,0,24,0\n84,0,2,0,66,0,30,0,46,0,42,0\n19,0,51,0,81,0,83,0,77,0,64,0\n4,0,56,0,73,0,59,0,62,0,37,0\n53,0,41,0,82,0,23,0,54,0,40,0\n33,0,50,0,75,0,70,0,71,0,16,0\n31,0,14,0,36,0,63,0,3,0,58,0\n6,0,5,0,26,0,28,0,60,0,47,0\n52,0,13,0,8,0,27,0,72,0,68,0\n7,0,10,0,29,0,1,0,48,0,69,0\n30,0,43,0,4,0,55,0,76,0,46,0\n61,0,84,0,21,0,82,0,67,0,19,0\n11,0,59,0,45,0,35,0,15,0,77,0\n33,0,37,0,49,0,12,0,58,0,17,0\n44,0,14,0,54,0,36,0,28,0,22,0\n6,0,47,0,34,0,75,0,42,0,62,0\n81,0,56,0,72,0,68,0,78,0,7,0\n5,0,29,0,16,0,39,0,27,0,8,0\n74,0,26,0,64,0,70,0,1,0,9,0\n52,0,51,0,32,0,2,0,63,0,50,0\n31,0,24,0,13,0,25,0,73,0,40,0\n38,0,79,0,3,0,20,0,41,0,66,0\n65,0,80,0,69,0,57,0,48,0,53,0\n83,0,60,0,23,0,10,0,18,0,71,0\n58,0,72,0,55,0,11,0,42,0,6,0\n39,0,1,0,54,0,34,0,4,0,49,0\n45,0,64,0,36,0,76,0,5,0,32,0\n28,0,26,0,15,0,67,0,56,0,8,0\n81,0,75,0,74,0,25,0,61,0,3,0\n80,0,2,0,12,0,44,0,77,0,21,0\n19,0,53,0,46,0,22,0,71,0,31,0\n70,0,10,0,79,0,65,0,84,0,13,0\n9,0,69,0,23,0,73,0,16,0,20,0\n40,0,83,0,29,0,66,0,78,0,37,0\n14,0,41,0,51,0,52,0,47,0,7,0\n48,0,24,0,50,0,27,0,30,0,60,0\n17,0,33,0,62,0,82,0,43,0,38,0\n68,0,63,0,57,0,35,0,59,0,18,0\n53,0,79,0,58,0,34,0,28,0,25,0\n2,0,26,0,81,0,19,0,69,0,5,0\n6,0,49,0,9,0,21,0,13,0,29,0\n70,0,4,0,11,0,31,0,3,0,40,0\n56,0,78,0,61,0,76,0,48,0,42,0\n16,0,38,0,52,0,23,0,43,0,36,0\n15,0,50,0,55,0,41,0,22,0,74,0\n39,0,51,0,30,0,75,0,18,0,82,0\n59,0,47,0,10,0,37,0,71,0,24,0\n44,0,27,0,83,0,32,0,68,0,67,0\n7,0,20,0,80,0,8,0,17,0,73,0\n66,0,35,0,45,0,1,0,14,0,33,0\n54,0,62,0,12,0,84,0,64,0,57,0\n72,0,77,0,60,0,65,0,63,0,46,0\n13,0,6,0,41,0,16,0,19,0,30,0\n10,0,11,0,37,0,26,0,76,0,50,0\n53,0,2,0,39,0,59,0,78,0,36,0\n79,0,7,0,18,0,82,0,32,0,70,0\n31,0,4,0,33,0,51,0,8,0,61,0\n42,0,28,0,23,0,68,0,25,0,1,0\n20,0,71,0,62,0,67,0,52,0,48,0\n55,0,5,0,9,0,44,0,17,0,66,0\n77,0,24,0,84,0,57,0,56,0,14,0\n75,0,46,0,40,0,83,0,35,0,80,0\n15,0,21,0,27,0,65,0,34,0,81,0\n64,0,12,0,43,0,58,0,29,0,74,0\n63,0,22,0,60,0,49,0,69,0,38,0\n54,0,3,0,72,0,47,0,73,0,45,0\n18,0,1,0,67,0,33,0,2,0,13,0\n37,0,77,0,48,0,16,0,79,0,84,0\n78,0,4,0,35,0,52,0,41,0,70,0\n10,0,57,0,82,0,31,0,68,0,6,0\n42,0,25,0,53,0,51,0,9,0,15,0\n80,0,23,0,66,0,22,0,58,0,62,0\n19,0,73,0,3,0,55,0,49,0,63,0\n54,0,8,0,5,0,24,0,11,0,74,0\n40,0,21,0,59,0,60,0,43,0,76,0\n29,0,14,0,75,0,17,0,72,0,26,0\n39,0,12,0,71,0,32,0,81,0,30,0\n36,0,7,0,69,0,46,0,61,0,64,0\n65,0,27,0,47,0,44,0,38,0,56,0\n50,0,83,0,28,0,45,0,20,0,34,0\n68,0,9,0,24,0,33,0,3,0,78,0\n2,0,31,0,62,0,74,0,76,0,49,0\n1,0,11,0,73,0,48,0,43,0,19,0\n79,0,57,0,22,0,60,0,51,0,5,0\n15,0,13,0,61,0,14,0,66,0,71,0\n67,0,81,0,16,0,63,0,47,0,80,0\n64,0,8,0,65,0,40,0,35,0,6,0\n42,0,50,0,41,0,82,0,21,0,69,0\n12,0,46,0,28,0,10,0,52,0,75,0\n34,0,44,0,30,0,23,0,7,0,37,0\n58,0,25,0,45,0,70,0,39,0,56,0\n20,0,38,0,72,0,59,0,32,0,53,0\n77,0,54,0,18,0,29,0,55,0,27,0\n36,0,84,0,17,0,26,0,83,0,4,0\n1,0,16,0,60,0,62,0,68,0,61,0\n81,0,76,0,63,0,9,0,8,0,41,0\n65,0,23,0,75,0,5,0,50,0,31,0\n49,0,66,0,48,0,25,0,70,0,6,0\n39,0,37,0,64,0,24,0,38,0,46,0\n34,0,19,0,57,0,10,0,56,0,33,0\n20,0,35,0,58,0,26,0,55,0,44,0\n4,0,53,0,22,0,27,0,45,0,12,0\n43,0,83,0,7,0,15,0,54,0,2,0\n79,0,69,0,17,0,67,0,72,0,59,0\n13,0,36,0,82,0,77,0,78,0,11,0\n18,0,74,0,21,0,14,0,52,0,73,0\n32,0,40,0,47,0,84,0,28,0,30,0\n29,0,71,0,3,0,42,0,80,0,51,0\n26,0,68,0,20,0,12,0,31,0,41,0\n48,0,46,0,33,0,81,0,58,0,54,0\n67,0,34,0,76,0,66,0,24,0,16,0\n55,0,60,0,69,0,13,0,75,0,56,0\n78,0,8,0,79,0,21,0,23,0,45,0\n22,0,25,0,44,0,6,0,84,0,59,0\n77,0,49,0,52,0,40,0,9,0,30,0\n18,0,37,0,51,0,72,0,15,0,36,0\n82,0,63,0,83,0,27,0,1,0,74,0\n28,0,57,0,71,0,7,0,4,0,38,0\n65,0,42,0,70,0,80,0,14,0,43,0\n35,0,5,0,39,0,50,0,73,0,61,0\n47,0,62,0,29,0,11,0,32,0,19,0\n17,0,10,0,2,0,64,0,53,0,3,0\n55,0,34,0,59,0,46,0,51,0,26,0\n1,0,36,0,21,0,20,0,75,0,22,0\n57,0,67,0,41,0,48,0,45,0,74,0\n82,0,56,0,71,0,12,0,63,0,16,0\n9,0,27,0,38,0,58,0,31,0,7,0\n44,0,19,0,62,0,72,0,39,0,40,0\n14,0,42,0,68,0,4,0,79,0,64,0\n76,0,47,0,17,0,35,0,13,0,23,0\n32,0,69,0,25,0,54,0,33,0,65,0\n5,0,30,0,78,0,15,0,10,0,80,0\n18,0,43,0,66,0,49,0,50,0,8,0\n6,0,77,0,3,0,37,0,83,0,61,0\n70,0,73,0,24,0,28,0,2,0,29,0\n84,0,11,0,81,0,60,0,52,0,53,0\n9,0,71,0,48,0,40,0,34,0,36,0\n65,0,38,0,68,0,45,0,26,0,19,0\n7,0,12,0,13,0,42,0,59,0,5,0\n64,0,21,0,66,0,47,0,39,0,31,0\n50,0,46,0,78,0,14,0,25,0,62,0\n22,0,73,0,83,0,77,0,76,0,33,0\n30,0,8,0,58,0,57,0,3,0,69,0\n6,0,28,0,1,0,18,0,17,0,81,0\n32,0,55,0,80,0,52,0,82,0,24,0\n44,0,72,0,16,0,4,0,10,0,74,0\n15,0,75,0,84,0,20,0,63,0,29,0\n61,0,11,0,27,0,2,0,23,0,79,0\n60,0,70,0,37,0,54,0,51,0,67,0\n35,0,41,0,56,0,53,0,43,0,49,0\n30,0,31,0,45,0,62,0,36,0,81,0\n83,0,17,0,52,0,39,0,69,0,24,0\n50,0,4,0,59,0,9,0,19,0,80,0\n42,0,8,0,66,0,77,0,10,0,32,0\n16,0,55,0,22,0,7,0,2,0,65,0\n70,0,38,0,54,0,76,0,12,0,15,0\n25,0,29,0,33,0,44,0,60,0,41,0\n48,0,72,0,82,0,28,0,35,0,3,0\n53,0,68,0,37,0,5,0,21,0,14,0\n73,0,84,0,26,0,71,0,27,0,64,0\n18,0,13,0,63,0,34,0,43,0,61,0\n6,0,74,0,51,0,56,0,20,0,23,0\n67,0,75,0,47,0,58,0,49,0,78,0\n1,0,57,0,46,0,40,0,79,0,11,0\n"
  },
  {
    "path": "schedules/84_2.csv",
    "content": "60,0,45,0,48,0,68,0,61,0,33,0\n80,0,13,0,77,0,58,0,73,0,17,0\n18,0,43,0,5,0,21,0,57,0,82,0\n26,0,4,0,53,0,72,0,49,0,56,0\n25,0,62,0,19,0,39,0,71,0,7,0\n46,0,40,0,32,0,10,0,38,0,3,0\n11,0,70,0,42,0,24,0,65,0,14,0\n84,0,22,0,1,0,29,0,44,0,16,0\n75,0,35,0,41,0,67,0,20,0,30,0\n9,0,47,0,76,0,28,0,6,0,64,0\n23,0,52,0,36,0,74,0,51,0,78,0\n55,0,34,0,83,0,69,0,31,0,27,0\n81,0,2,0,63,0,54,0,66,0,12,0\n37,0,59,0,8,0,50,0,15,0,79,0\n38,0,56,0,62,0,22,0,77,0,11,0\n53,0,7,0,60,0,84,0,80,0,18,0\n6,0,58,0,3,0,71,0,57,0,30,0\n40,0,14,0,61,0,36,0,4,0,35,0\n55,0,17,0,65,0,33,0,52,0,76,0\n24,0,31,0,9,0,41,0,45,0,16,0\n79,0,12,0,44,0,82,0,83,0,68,0\n25,0,64,0,50,0,32,0,66,0,70,0\n27,0,49,0,51,0,59,0,54,0,73,0\n20,0,39,0,5,0,69,0,42,0,23,0\n34,0,1,0,15,0,26,0,10,0,47,0\n74,0,72,0,8,0,43,0,63,0,75,0\n13,0,28,0,78,0,81,0,37,0,48,0\n67,0,21,0,29,0,19,0,46,0,2,0\n"
  },
  {
    "path": "schedules/84_3.csv",
    "content": "29,0,83,0,18,0,81,0,5,0,9,0\n28,0,33,0,53,0,77,0,35,0,58,0\n84,0,60,0,69,0,26,0,51,0,65,0\n43,0,73,0,38,0,34,0,74,0,14,0\n72,0,11,0,10,0,7,0,3,0,40,0\n78,0,63,0,16,0,49,0,30,0,64,0\n1,0,55,0,36,0,39,0,71,0,32,0\n48,0,15,0,23,0,67,0,12,0,80,0\n45,0,6,0,20,0,17,0,25,0,62,0\n27,0,47,0,61,0,52,0,76,0,82,0\n31,0,79,0,68,0,54,0,42,0,50,0\n46,0,21,0,57,0,41,0,4,0,24,0\n70,0,19,0,59,0,13,0,66,0,8,0\n37,0,2,0,56,0,22,0,44,0,75,0\n63,0,58,0,39,0,14,0,15,0,84,0\n34,0,62,0,3,0,69,0,28,0,18,0\n17,0,73,0,80,0,82,0,11,0,83,0\n68,0,78,0,40,0,33,0,48,0,52,0\n24,0,5,0,1,0,67,0,60,0,10,0\n32,0,47,0,77,0,65,0,43,0,6,0\n57,0,22,0,30,0,29,0,70,0,55,0\n46,0,2,0,8,0,45,0,36,0,42,0\n76,0,64,0,54,0,21,0,38,0,66,0\n9,0,44,0,19,0,61,0,53,0,72,0\n7,0,41,0,49,0,75,0,59,0,31,0\n12,0,74,0,50,0,16,0,25,0,56,0\n35,0,51,0,23,0,79,0,20,0,27,0\n81,0,4,0,26,0,13,0,71,0,37,0\n33,0,5,0,80,0,70,0,32,0,69,0\n21,0,8,0,15,0,29,0,77,0,11,0\n40,0,65,0,53,0,18,0,76,0,63,0\n48,0,42,0,39,0,57,0,66,0,43,0\n59,0,9,0,82,0,1,0,45,0,22,0\n10,0,19,0,58,0,17,0,78,0,23,0\n81,0,72,0,74,0,47,0,64,0,68,0\n3,0,16,0,13,0,2,0,20,0,31,0\n41,0,61,0,25,0,35,0,73,0,26,0\n44,0,49,0,27,0,4,0,50,0,28,0\n24,0,71,0,79,0,30,0,56,0,62,0\n36,0,38,0,37,0,84,0,7,0,83,0\n54,0,34,0,67,0,55,0,75,0,51,0\n52,0,12,0,60,0,6,0,46,0,14,0\n"
  },
  {
    "path": "schedules/84_4.csv",
    "content": "18,0,22,0,43,0,75,0,50,0,81,0\n14,0,53,0,68,0,11,0,55,0,84,0\n5,0,19,0,15,0,42,0,58,0,36,0\n52,0,73,0,41,0,17,0,34,0,67,0\n46,0,51,0,24,0,26,0,38,0,72,0\n57,0,12,0,3,0,44,0,30,0,64,0\n82,0,8,0,76,0,74,0,61,0,66,0\n47,0,25,0,35,0,56,0,69,0,65,0\n13,0,27,0,23,0,32,0,10,0,49,0\n20,0,7,0,1,0,80,0,62,0,9,0\n54,0,16,0,31,0,71,0,78,0,83,0\n6,0,33,0,48,0,63,0,40,0,77,0\n59,0,4,0,28,0,70,0,79,0,2,0\n37,0,39,0,29,0,60,0,45,0,21,0\n58,0,51,0,3,0,84,0,69,0,8,0\n34,0,50,0,49,0,64,0,53,0,38,0\n7,0,15,0,65,0,73,0,76,0,23,0\n61,0,18,0,30,0,62,0,35,0,41,0\n36,0,33,0,11,0,25,0,17,0,9,0\n52,0,16,0,42,0,12,0,66,0,81,0\n21,0,4,0,44,0,46,0,54,0,43,0\n37,0,14,0,56,0,19,0,72,0,74,0\n77,0,29,0,22,0,78,0,59,0,80,0\n48,0,5,0,27,0,79,0,83,0,47,0\n82,0,71,0,75,0,70,0,60,0,13,0\n32,0,63,0,2,0,24,0,39,0,67,0\n45,0,28,0,10,0,55,0,1,0,40,0\n31,0,26,0,57,0,68,0,6,0,20,0\n50,0,17,0,44,0,61,0,15,0,16,0\n7,0,58,0,21,0,33,0,34,0,59,0\n30,0,66,0,38,0,14,0,48,0,29,0\n13,0,83,0,64,0,43,0,8,0,80,0\n42,0,62,0,49,0,76,0,39,0,11,0\n77,0,74,0,73,0,24,0,36,0,71,0\n60,0,53,0,28,0,35,0,31,0,46,0\n52,0,19,0,40,0,57,0,69,0,32,0\n70,0,47,0,72,0,81,0,63,0,68,0\n54,0,26,0,1,0,3,0,41,0,2,0\n78,0,84,0,9,0,45,0,23,0,5,0\n82,0,27,0,56,0,18,0,20,0,51,0\n65,0,67,0,55,0,75,0,4,0,6,0\n10,0,79,0,12,0,25,0,22,0,37,0\n69,0,11,0,73,0,16,0,28,0,29,0\n62,0,48,0,24,0,44,0,60,0,19,0\n33,0,68,0,41,0,71,0,49,0,15,0\n40,0,80,0,23,0,31,0,58,0,72,0\n84,0,30,0,76,0,50,0,1,0,83,0\n39,0,35,0,78,0,27,0,8,0,4,0\n9,0,61,0,6,0,22,0,51,0,13,0\n17,0,46,0,81,0,10,0,56,0,2,0\n42,0,43,0,79,0,3,0,63,0,82,0\n25,0,66,0,67,0,64,0,7,0,70,0\n47,0,53,0,26,0,52,0,37,0,18,0\n45,0,34,0,75,0,14,0,36,0,57,0\n32,0,59,0,55,0,20,0,54,0,74,0\n65,0,38,0,21,0,77,0,5,0,12,0\n"
  },
  {
    "path": "schedules/84_5.csv",
    "content": "8,0,12,0,42,0,49,0,56,0,32,0\n75,0,72,0,20,0,67,0,58,0,29,0\n41,0,28,0,21,0,45,0,7,0,77,0\n34,0,81,0,9,0,36,0,2,0,22,0\n47,0,74,0,61,0,64,0,71,0,65,0\n16,0,69,0,5,0,54,0,25,0,76,0\n52,0,73,0,15,0,68,0,48,0,43,0\n14,0,79,0,30,0,50,0,33,0,13,0\n53,0,35,0,83,0,23,0,46,0,19,0\n24,0,63,0,17,0,10,0,27,0,11,0\n78,0,66,0,38,0,62,0,39,0,70,0\n55,0,82,0,59,0,57,0,26,0,4,0\n80,0,18,0,51,0,37,0,84,0,1,0\n60,0,40,0,6,0,3,0,44,0,31,0\n14,0,52,0,8,0,74,0,22,0,75,0\n36,0,30,0,28,0,69,0,71,0,73,0\n56,0,20,0,27,0,64,0,54,0,21,0\n47,0,53,0,43,0,24,0,2,0,32,0\n42,0,26,0,66,0,41,0,63,0,34,0\n17,0,25,0,67,0,49,0,7,0,82,0\n72,0,55,0,5,0,46,0,44,0,9,0\n76,0,68,0,3,0,77,0,80,0,61,0\n57,0,38,0,23,0,33,0,84,0,60,0\n1,0,70,0,4,0,50,0,10,0,83,0\n29,0,15,0,62,0,35,0,12,0,51,0\n13,0,11,0,65,0,6,0,37,0,16,0\n48,0,78,0,18,0,40,0,79,0,81,0\n59,0,58,0,19,0,45,0,31,0,39,0\n5,0,56,0,24,0,80,0,74,0,28,0\n64,0,42,0,72,0,38,0,7,0,14,0\n44,0,52,0,67,0,27,0,50,0,76,0\n3,0,23,0,49,0,1,0,29,0,30,0\n6,0,22,0,51,0,53,0,71,0,70,0\n46,0,20,0,26,0,25,0,12,0,18,0\n77,0,13,0,39,0,47,0,8,0,81,0\n41,0,61,0,31,0,36,0,79,0,55,0\n2,0,35,0,57,0,66,0,68,0,11,0\n45,0,15,0,40,0,63,0,9,0,82,0\n60,0,32,0,37,0,83,0,48,0,34,0\n84,0,69,0,10,0,62,0,65,0,58,0\n54,0,19,0,78,0,4,0,43,0,75,0\n33,0,16,0,73,0,17,0,59,0,21,0\n24,0,23,0,70,0,41,0,81,0,20,0\n6,0,49,0,80,0,38,0,52,0,47,0\n50,0,29,0,36,0,8,0,18,0,64,0\n44,0,25,0,30,0,35,0,39,0,37,0\n32,0,7,0,10,0,3,0,15,0,22,0\n84,0,74,0,82,0,72,0,77,0,53,0\n75,0,62,0,63,0,79,0,56,0,16,0\n71,0,67,0,19,0,13,0,66,0,55,0\n46,0,34,0,54,0,73,0,31,0,57,0\n17,0,9,0,14,0,60,0,12,0,65,0\n45,0,48,0,2,0,69,0,4,0,27,0\n61,0,59,0,42,0,11,0,28,0,51,0\n76,0,33,0,40,0,1,0,43,0,26,0\n21,0,58,0,68,0,78,0,83,0,5,0\n16,0,70,0,77,0,52,0,32,0,19,0\n15,0,66,0,36,0,25,0,24,0,72,0\n55,0,53,0,65,0,3,0,18,0,56,0\n10,0,54,0,45,0,38,0,67,0,30,0\n50,0,41,0,80,0,62,0,59,0,60,0\n1,0,9,0,31,0,74,0,20,0,35,0\n27,0,22,0,46,0,58,0,49,0,40,0\n28,0,48,0,64,0,23,0,6,0,75,0\n44,0,33,0,61,0,2,0,82,0,78,0\n57,0,43,0,81,0,5,0,42,0,17,0\n4,0,71,0,11,0,39,0,21,0,34,0\n29,0,68,0,37,0,47,0,14,0,26,0\n12,0,84,0,63,0,76,0,13,0,73,0\n79,0,51,0,7,0,8,0,83,0,69,0\n"
  },
  {
    "path": "schedules/84_6.csv",
    "content": "25,0,39,0,48,0,31,0,7,0,66,0\n37,0,29,0,65,0,61,0,82,0,54,0\n58,0,80,0,24,0,53,0,28,0,14,0\n40,0,45,0,4,0,15,0,8,0,68,0\n18,0,34,0,2,0,33,0,30,0,38,0\n73,0,52,0,69,0,43,0,6,0,83,0\n41,0,9,0,42,0,59,0,3,0,13,0\n17,0,63,0,19,0,76,0,49,0,16,0\n1,0,55,0,56,0,22,0,67,0,35,0\n71,0,60,0,12,0,47,0,51,0,32,0\n27,0,26,0,50,0,84,0,81,0,79,0\n77,0,44,0,64,0,10,0,62,0,70,0\n5,0,36,0,75,0,11,0,21,0,72,0\n20,0,46,0,74,0,78,0,57,0,23,0\n24,0,68,0,7,0,19,0,65,0,41,0\n54,0,53,0,67,0,52,0,4,0,66,0\n28,0,76,0,13,0,61,0,12,0,56,0\n30,0,71,0,43,0,17,0,3,0,40,0\n31,0,47,0,29,0,64,0,69,0,34,0\n36,0,32,0,15,0,26,0,58,0,82,0\n8,0,62,0,20,0,6,0,63,0,1,0\n23,0,50,0,21,0,10,0,35,0,25,0\n79,0,78,0,11,0,9,0,22,0,33,0\n51,0,48,0,14,0,18,0,77,0,59,0\n39,0,38,0,37,0,60,0,74,0,70,0\n55,0,49,0,84,0,42,0,73,0,75,0\n83,0,45,0,72,0,80,0,46,0,81,0\n5,0,2,0,16,0,44,0,27,0,57,0\n13,0,8,0,34,0,26,0,54,0,17,0\n20,0,71,0,64,0,66,0,15,0,28,0\n82,0,18,0,52,0,68,0,23,0,56,0\n50,0,14,0,22,0,47,0,43,0,61,0\n25,0,6,0,37,0,51,0,40,0,24,0\n70,0,36,0,30,0,9,0,65,0,69,0\n67,0,77,0,79,0,29,0,19,0,46,0\n62,0,5,0,81,0,41,0,39,0,55,0\n84,0,44,0,80,0,35,0,31,0,4,0\n78,0,83,0,59,0,49,0,10,0,2,0\n1,0,75,0,33,0,74,0,16,0,45,0\n27,0,72,0,7,0,76,0,32,0,38,0\n63,0,11,0,42,0,57,0,53,0,60,0\n58,0,48,0,21,0,73,0,3,0,12,0\n28,0,68,0,30,0,26,0,22,0,39,0\n46,0,40,0,56,0,70,0,5,0,54,0\n77,0,65,0,81,0,2,0,43,0,25,0\n20,0,35,0,82,0,33,0,69,0,19,0\n76,0,66,0,50,0,29,0,9,0,1,0\n60,0,23,0,67,0,84,0,24,0,62,0\n72,0,4,0,41,0,37,0,64,0,58,0\n32,0,74,0,83,0,21,0,42,0,44,0\n53,0,73,0,16,0,18,0,47,0,7,0\n57,0,52,0,3,0,75,0,10,0,8,0\n49,0,6,0,61,0,27,0,48,0,11,0\n45,0,13,0,79,0,31,0,71,0,14,0\n78,0,55,0,63,0,34,0,51,0,36,0\n80,0,15,0,38,0,59,0,17,0,12,0\n24,0,29,0,26,0,43,0,56,0,74,0\n54,0,30,0,73,0,41,0,77,0,60,0\n76,0,64,0,18,0,57,0,81,0,35,0\n39,0,33,0,52,0,50,0,46,0,32,0\n22,0,31,0,72,0,70,0,8,0,19,0\n65,0,51,0,10,0,20,0,58,0,84,0\n82,0,28,0,44,0,49,0,45,0,38,0\n16,0,36,0,13,0,83,0,48,0,67,0\n42,0,17,0,4,0,1,0,25,0,79,0\n27,0,69,0,63,0,37,0,21,0,59,0\n53,0,61,0,15,0,78,0,5,0,3,0\n62,0,40,0,47,0,80,0,9,0,75,0\n7,0,23,0,11,0,71,0,55,0,2,0\n66,0,14,0,68,0,34,0,12,0,6,0\n41,0,31,0,49,0,20,0,18,0,67,0\n56,0,32,0,57,0,17,0,73,0,45,0\n84,0,43,0,48,0,37,0,33,0,28,0\n46,0,65,0,22,0,76,0,44,0,53,0\n9,0,83,0,82,0,64,0,63,0,24,0\n80,0,70,0,3,0,11,0,26,0,51,0\n12,0,27,0,10,0,40,0,55,0,74,0\n8,0,5,0,58,0,69,0,50,0,7,0\n23,0,1,0,77,0,72,0,34,0,39,0\n81,0,4,0,29,0,21,0,14,0,30,0\n60,0,78,0,35,0,66,0,13,0,75,0\n6,0,19,0,2,0,15,0,47,0,42,0\n59,0,62,0,61,0,52,0,79,0,36,0\n54,0,25,0,71,0,68,0,16,0,38,0\n"
  },
  {
    "path": "schedules/84_7.csv",
    "content": "53,0,52,0,45,0,64,0,74,0,37,0\n77,0,22,0,1,0,67,0,33,0,75,0\n10,0,14,0,48,0,4,0,49,0,62,0\n61,0,57,0,82,0,56,0,36,0,17,0\n65,0,7,0,39,0,30,0,19,0,68,0\n40,0,5,0,23,0,43,0,60,0,78,0\n71,0,63,0,27,0,25,0,84,0,55,0\n81,0,9,0,13,0,18,0,70,0,47,0\n44,0,51,0,28,0,3,0,32,0,54,0\n59,0,72,0,42,0,79,0,8,0,20,0\n80,0,29,0,76,0,26,0,34,0,35,0\n73,0,11,0,12,0,24,0,2,0,15,0\n16,0,83,0,41,0,50,0,31,0,46,0\n21,0,6,0,58,0,38,0,69,0,66,0\n61,0,23,0,65,0,55,0,45,0,9,0\n18,0,44,0,60,0,53,0,25,0,48,0\n77,0,4,0,20,0,56,0,54,0,39,0\n7,0,10,0,59,0,29,0,5,0,51,0\n24,0,17,0,81,0,40,0,30,0,62,0\n52,0,63,0,57,0,32,0,33,0,26,0\n72,0,74,0,50,0,12,0,66,0,49,0\n58,0,15,0,83,0,28,0,79,0,71,0\n64,0,78,0,8,0,35,0,16,0,21,0\n41,0,3,0,2,0,75,0,34,0,70,0\n76,0,38,0,14,0,22,0,82,0,42,0\n73,0,67,0,68,0,37,0,84,0,69,0\n1,0,19,0,46,0,11,0,80,0,13,0\n31,0,6,0,47,0,43,0,36,0,27,0\n60,0,65,0,33,0,4,0,12,0,58,0\n49,0,26,0,56,0,40,0,9,0,44,0\n15,0,77,0,53,0,81,0,23,0,72,0\n66,0,2,0,64,0,32,0,55,0,76,0\n52,0,39,0,42,0,78,0,61,0,34,0\n13,0,71,0,17,0,5,0,54,0,50,0\n8,0,62,0,69,0,83,0,19,0,47,0\n27,0,57,0,22,0,21,0,68,0,59,0\n70,0,16,0,80,0,6,0,48,0,63,0\n82,0,46,0,67,0,20,0,3,0,35,0\n51,0,43,0,25,0,1,0,41,0,24,0\n10,0,38,0,11,0,37,0,30,0,79,0\n74,0,73,0,36,0,14,0,29,0,75,0\n31,0,84,0,28,0,7,0,18,0,45,0\n40,0,42,0,4,0,53,0,50,0,2,0\n54,0,48,0,26,0,61,0,47,0,15,0\n77,0,80,0,9,0,27,0,60,0,52,0\n51,0,56,0,63,0,69,0,22,0,13,0\n66,0,59,0,34,0,71,0,65,0,67,0\n64,0,72,0,1,0,3,0,6,0,73,0\n29,0,81,0,68,0,38,0,78,0,31,0\n36,0,49,0,25,0,45,0,58,0,39,0\n79,0,75,0,32,0,62,0,82,0,84,0\n14,0,5,0,21,0,30,0,41,0,18,0\n19,0,12,0,16,0,76,0,37,0,44,0\n24,0,74,0,8,0,10,0,46,0,55,0\n43,0,33,0,17,0,70,0,20,0,28,0\n7,0,23,0,35,0,57,0,83,0,11,0\n66,0,40,0,61,0,77,0,63,0,73,0\n62,0,36,0,54,0,80,0,67,0,38,0\n84,0,64,0,34,0,15,0,22,0,5,0\n31,0,59,0,1,0,14,0,60,0,2,0\n55,0,30,0,44,0,52,0,13,0,72,0\n50,0,3,0,24,0,76,0,79,0,68,0\n70,0,11,0,8,0,65,0,27,0,49,0\n12,0,75,0,39,0,81,0,83,0,51,0\n28,0,25,0,26,0,21,0,4,0,23,0\n74,0,69,0,16,0,71,0,43,0,57,0\n32,0,18,0,35,0,17,0,10,0,19,0\n47,0,37,0,78,0,58,0,7,0,20,0\n6,0,41,0,33,0,82,0,53,0,9,0\n42,0,48,0,46,0,56,0,45,0,29,0\n44,0,81,0,36,0,84,0,1,0,8,0\n64,0,13,0,75,0,65,0,40,0,28,0\n16,0,54,0,52,0,23,0,59,0,73,0\n76,0,10,0,69,0,15,0,70,0,39,0\n19,0,78,0,71,0,51,0,77,0,2,0\n38,0,47,0,35,0,41,0,49,0,63,0\n29,0,66,0,24,0,4,0,82,0,18,0\n5,0,3,0,37,0,33,0,42,0,83,0\n22,0,58,0,9,0,48,0,31,0,17,0\n43,0,53,0,46,0,62,0,61,0,21,0\n45,0,30,0,20,0,27,0,26,0,50,0\n14,0,79,0,55,0,57,0,80,0,12,0\n72,0,32,0,68,0,11,0,25,0,34,0\n60,0,74,0,7,0,56,0,67,0,6,0\n73,0,41,0,65,0,44,0,42,0,10,0\n75,0,18,0,52,0,76,0,8,0,71,0\n84,0,29,0,47,0,53,0,17,0,16,0\n26,0,38,0,3,0,77,0,13,0,59,0\n30,0,49,0,80,0,23,0,33,0,69,0\n28,0,50,0,55,0,19,0,22,0,36,0\n57,0,37,0,25,0,70,0,66,0,46,0\n51,0,45,0,68,0,6,0,15,0,40,0\n1,0,82,0,78,0,74,0,48,0,27,0\n39,0,62,0,5,0,2,0,72,0,35,0\n56,0,58,0,43,0,14,0,11,0,81,0\n21,0,34,0,12,0,7,0,9,0,54,0\n32,0,83,0,20,0,60,0,24,0,61,0\n63,0,4,0,67,0,64,0,79,0,31,0\n"
  },
  {
    "path": "schedules/84_8.csv",
    "content": "6,0,13,0,30,0,53,0,47,0,67,0\n24,0,81,0,22,0,49,0,77,0,25,0\n80,0,37,0,46,0,19,0,41,0,42,0\n84,0,28,0,44,0,74,0,16,0,31,0\n14,0,68,0,2,0,66,0,70,0,39,0\n5,0,62,0,69,0,38,0,9,0,76,0\n1,0,63,0,54,0,27,0,4,0,55,0\n60,0,71,0,61,0,7,0,35,0,73,0\n82,0,72,0,59,0,48,0,52,0,78,0\n26,0,45,0,33,0,83,0,20,0,75,0\n8,0,23,0,56,0,12,0,65,0,51,0\n50,0,79,0,57,0,58,0,32,0,21,0\n17,0,29,0,10,0,64,0,36,0,3,0\n40,0,11,0,34,0,43,0,18,0,15,0\n47,0,4,0,46,0,69,0,7,0,14,0\n60,0,62,0,16,0,63,0,59,0,25,0\n20,0,48,0,5,0,42,0,2,0,35,0\n74,0,71,0,27,0,67,0,83,0,37,0\n61,0,80,0,1,0,75,0,76,0,13,0\n82,0,38,0,58,0,51,0,81,0,41,0\n79,0,39,0,44,0,53,0,23,0,33,0\n73,0,72,0,36,0,30,0,57,0,18,0\n28,0,66,0,45,0,9,0,43,0,65,0\n21,0,19,0,34,0,31,0,6,0,29,0\n64,0,55,0,49,0,84,0,26,0,11,0\n3,0,78,0,12,0,24,0,50,0,40,0\n22,0,32,0,68,0,54,0,8,0,17,0\n52,0,56,0,70,0,15,0,10,0,77,0\n16,0,2,0,71,0,41,0,79,0,1,0\n76,0,25,0,67,0,4,0,57,0,65,0\n42,0,83,0,59,0,7,0,31,0,13,0\n64,0,60,0,53,0,72,0,46,0,45,0\n38,0,30,0,35,0,40,0,75,0,21,0\n47,0,29,0,8,0,18,0,5,0,84,0\n58,0,36,0,62,0,24,0,26,0,34,0\n51,0,49,0,9,0,44,0,10,0,48,0\n3,0,69,0,15,0,39,0,80,0,32,0\n14,0,52,0,54,0,37,0,12,0,61,0\n68,0,20,0,27,0,43,0,81,0,23,0\n56,0,73,0,50,0,19,0,55,0,22,0\n6,0,17,0,11,0,70,0,78,0,28,0\n33,0,82,0,66,0,74,0,77,0,63,0\n2,0,4,0,84,0,13,0,45,0,24,0\n69,0,67,0,10,0,35,0,16,0,8,0\n65,0,52,0,18,0,38,0,1,0,42,0\n14,0,48,0,43,0,3,0,53,0,58,0\n64,0,20,0,15,0,41,0,22,0,59,0\n31,0,81,0,39,0,46,0,71,0,30,0\n75,0,34,0,44,0,66,0,56,0,37,0\n57,0,9,0,60,0,74,0,80,0,54,0\n72,0,6,0,26,0,63,0,50,0,5,0\n73,0,70,0,51,0,32,0,33,0,25,0\n79,0,76,0,77,0,78,0,36,0,19,0\n17,0,40,0,49,0,61,0,27,0,82,0\n23,0,11,0,47,0,83,0,62,0,21,0\n55,0,7,0,29,0,68,0,28,0,12,0\n57,0,66,0,15,0,84,0,1,0,48,0\n75,0,43,0,41,0,31,0,60,0,8,0\n65,0,33,0,30,0,64,0,34,0,54,0\n4,0,73,0,9,0,20,0,37,0,53,0\n51,0,24,0,19,0,59,0,14,0,35,0\n46,0,78,0,2,0,44,0,38,0,32,0\n77,0,29,0,61,0,50,0,11,0,67,0\n76,0,63,0,58,0,28,0,47,0,71,0\n62,0,7,0,40,0,22,0,72,0,70,0\n36,0,74,0,49,0,69,0,52,0,23,0\n21,0,42,0,17,0,81,0,26,0,56,0\n6,0,25,0,79,0,45,0,68,0,80,0\n10,0,18,0,13,0,39,0,12,0,27,0\n5,0,83,0,55,0,3,0,82,0,16,0\n31,0,11,0,54,0,66,0,53,0,76,0\n1,0,64,0,35,0,44,0,62,0,50,0\n22,0,37,0,51,0,29,0,2,0,30,0\n70,0,42,0,71,0,57,0,69,0,24,0\n61,0,68,0,58,0,15,0,33,0,78,0\n32,0,20,0,56,0,14,0,6,0,60,0\n83,0,17,0,77,0,43,0,38,0,72,0\n13,0,48,0,19,0,65,0,81,0,74,0\n21,0,16,0,80,0,4,0,12,0,49,0\n39,0,84,0,7,0,36,0,82,0,75,0\n25,0,41,0,28,0,34,0,10,0,5,0\n47,0,27,0,26,0,59,0,79,0,3,0\n8,0,45,0,52,0,63,0,73,0,40,0\n18,0,9,0,67,0,55,0,23,0,46,0\n11,0,74,0,56,0,1,0,30,0,58,0\n83,0,12,0,69,0,6,0,22,0,48,0\n39,0,43,0,19,0,4,0,64,0,61,0\n35,0,36,0,41,0,70,0,54,0,13,0\n44,0,72,0,21,0,71,0,3,0,20,0\n53,0,75,0,5,0,77,0,57,0,68,0\n59,0,50,0,34,0,8,0,46,0,49,0\n63,0,65,0,14,0,10,0,84,0,80,0\n28,0,40,0,67,0,81,0,33,0,60,0\n38,0,24,0,16,0,47,0,66,0,73,0\n2,0,23,0,31,0,82,0,26,0,15,0\n7,0,32,0,18,0,76,0,45,0,37,0\n55,0,51,0,62,0,79,0,17,0,52,0\n42,0,78,0,29,0,27,0,25,0,9,0\n59,0,4,0,71,0,56,0,36,0,5,0\n43,0,70,0,12,0,30,0,44,0,63,0\n41,0,65,0,24,0,11,0,72,0,68,0\n23,0,64,0,58,0,77,0,6,0,40,0\n38,0,48,0,50,0,7,0,80,0,33,0\n16,0,13,0,46,0,20,0,17,0,57,0\n35,0,26,0,66,0,32,0,52,0,29,0\n25,0,82,0,53,0,19,0,18,0,69,0\n34,0,67,0,1,0,51,0,45,0,39,0\n31,0,47,0,37,0,10,0,78,0,55,0\n8,0,3,0,81,0,9,0,61,0,2,0\n83,0,79,0,54,0,28,0,49,0,73,0\n15,0,14,0,75,0,74,0,42,0,62,0\n22,0,84,0,76,0,27,0,60,0,21,0\n"
  },
  {
    "path": "schedules/84_9.csv",
    "content": "63,0,60,0,2,0,47,0,22,0,65,0\n43,0,83,0,4,0,64,0,10,0,5,0\n29,0,79,0,68,0,19,0,51,0,32,0\n61,0,12,0,69,0,30,0,9,0,46,0\n71,0,80,0,53,0,55,0,58,0,24,0\n6,0,62,0,36,0,35,0,45,0,76,0\n18,0,44,0,37,0,26,0,20,0,25,0\n56,0,57,0,48,0,42,0,75,0,81,0\n40,0,8,0,11,0,13,0,38,0,33,0\n31,0,16,0,15,0,50,0,28,0,70,0\n39,0,82,0,3,0,49,0,1,0,67,0\n78,0,72,0,66,0,41,0,7,0,17,0\n84,0,73,0,14,0,34,0,52,0,23,0\n77,0,54,0,27,0,74,0,21,0,59,0\n25,0,47,0,75,0,6,0,61,0,5,0\n76,0,20,0,65,0,12,0,53,0,11,0\n2,0,31,0,37,0,42,0,68,0,64,0\n32,0,4,0,39,0,69,0,63,0,71,0\n58,0,33,0,45,0,67,0,44,0,19,0\n13,0,9,0,52,0,26,0,82,0,16,0\n40,0,74,0,50,0,10,0,57,0,84,0\n81,0,23,0,29,0,62,0,78,0,27,0\n46,0,8,0,73,0,41,0,3,0,56,0\n54,0,38,0,43,0,51,0,15,0,66,0\n35,0,72,0,34,0,18,0,80,0,60,0\n22,0,17,0,14,0,1,0,59,0,48,0\n28,0,7,0,49,0,21,0,83,0,55,0\n24,0,77,0,30,0,70,0,79,0,36,0\n76,0,57,0,23,0,37,0,71,0,33,0\n27,0,25,0,3,0,69,0,2,0,19,0\n50,0,78,0,42,0,13,0,6,0,20,0\n75,0,74,0,63,0,44,0,8,0,29,0\n41,0,67,0,47,0,14,0,80,0,9,0\n52,0,55,0,15,0,39,0,12,0,22,0\n1,0,40,0,7,0,43,0,18,0,79,0\n54,0,72,0,84,0,82,0,5,0,68,0\n24,0,60,0,56,0,38,0,49,0,26,0\n35,0,70,0,58,0,73,0,4,0,17,0\n21,0,53,0,16,0,45,0,34,0,46,0\n66,0,31,0,61,0,36,0,32,0,83,0\n62,0,10,0,65,0,48,0,28,0,77,0\n81,0,11,0,30,0,64,0,59,0,51,0\n5,0,71,0,14,0,15,0,44,0,2,0\n69,0,41,0,55,0,50,0,79,0,76,0\n42,0,43,0,33,0,84,0,27,0,63,0\n49,0,8,0,20,0,80,0,19,0,54,0\n68,0,52,0,17,0,36,0,53,0,60,0\n24,0,62,0,21,0,72,0,22,0,75,0\n57,0,29,0,70,0,11,0,9,0,6,0\n81,0,47,0,39,0,73,0,28,0,66,0\n25,0,58,0,59,0,31,0,78,0,46,0\n74,0,12,0,64,0,16,0,7,0,67,0\n65,0,1,0,34,0,32,0,56,0,13,0\n18,0,51,0,23,0,45,0,82,0,10,0\n30,0,38,0,83,0,37,0,48,0,35,0\n40,0,77,0,26,0,4,0,61,0,3,0\n11,0,49,0,44,0,66,0,52,0,62,0\n5,0,81,0,70,0,41,0,21,0,60,0\n9,0,64,0,31,0,39,0,79,0,8,0\n57,0,24,0,78,0,54,0,63,0,73,0\n16,0,1,0,72,0,10,0,71,0,29,0\n42,0,51,0,74,0,32,0,58,0,76,0\n47,0,59,0,53,0,50,0,3,0,33,0\n30,0,80,0,15,0,65,0,82,0,7,0\n68,0,45,0,20,0,69,0,83,0,40,0\n61,0,19,0,22,0,28,0,37,0,34,0\n43,0,6,0,23,0,56,0,2,0,77,0\n13,0,4,0,48,0,12,0,25,0,36,0\n75,0,18,0,67,0,84,0,17,0,38,0\n26,0,46,0,35,0,55,0,27,0,14,0\n21,0,78,0,33,0,74,0,1,0,52,0\n83,0,58,0,65,0,54,0,41,0,29,0\n32,0,73,0,45,0,7,0,11,0,37,0\n28,0,59,0,2,0,9,0,20,0,24,0\n39,0,72,0,51,0,13,0,77,0,61,0\n48,0,84,0,80,0,6,0,16,0,44,0\n68,0,23,0,50,0,35,0,22,0,38,0\n40,0,70,0,76,0,64,0,14,0,75,0\n36,0,46,0,19,0,15,0,18,0,47,0\n8,0,66,0,12,0,42,0,71,0,82,0\n27,0,30,0,4,0,53,0,56,0,31,0\n49,0,10,0,69,0,34,0,81,0,17,0\n26,0,5,0,3,0,79,0,63,0,62,0\n55,0,25,0,60,0,57,0,67,0,43,0\n61,0,29,0,76,0,52,0,24,0,7,0\n6,0,37,0,14,0,72,0,74,0,65,0\n12,0,28,0,35,0,40,0,41,0,51,0\n50,0,36,0,21,0,44,0,39,0,56,0\n33,0,77,0,22,0,18,0,32,0,64,0\n10,0,68,0,9,0,66,0,63,0,58,0\n16,0,81,0,3,0,38,0,20,0,55,0\n26,0,69,0,48,0,43,0,53,0,73,0\n83,0,75,0,15,0,27,0,60,0,11,0\n49,0,79,0,71,0,25,0,84,0,45,0\n34,0,70,0,2,0,78,0,8,0,67,0\n17,0,5,0,31,0,46,0,13,0,80,0\n30,0,47,0,42,0,23,0,1,0,54,0\n19,0,82,0,59,0,62,0,4,0,57,0\n18,0,41,0,24,0,74,0,68,0,48,0\n27,0,56,0,22,0,66,0,76,0,16,0\n84,0,64,0,20,0,15,0,29,0,35,0\n34,0,36,0,11,0,3,0,58,0,43,0\n26,0,45,0,12,0,2,0,50,0,72,0\n54,0,46,0,71,0,40,0,67,0,81,0\n63,0,77,0,1,0,53,0,19,0,83,0\n14,0,78,0,79,0,61,0,10,0,60,0\n8,0,55,0,51,0,17,0,47,0,37,0\n52,0,28,0,32,0,30,0,57,0,5,0\n49,0,9,0,65,0,75,0,33,0,4,0\n13,0,7,0,59,0,44,0,69,0,23,0\n62,0,42,0,70,0,25,0,80,0,39,0\n82,0,73,0,6,0,21,0,38,0,31,0\n61,0,64,0,48,0,27,0,50,0,58,0\n37,0,60,0,46,0,66,0,84,0,1,0\n67,0,26,0,10,0,76,0,30,0,68,0\n4,0,16,0,79,0,54,0,11,0,2,0\n36,0,7,0,22,0,71,0,20,0,51,0\n28,0,29,0,13,0,45,0,14,0,43,0\n19,0,9,0,56,0,5,0,78,0,55,0\n63,0,52,0,38,0,59,0,72,0,70,0\n21,0,18,0,65,0,69,0,57,0,8,0\n6,0,17,0,39,0,24,0,83,0,33,0\n62,0,44,0,31,0,34,0,47,0,40,0\n32,0,75,0,80,0,3,0,23,0,12,0\n74,0,53,0,82,0,35,0,81,0,25,0\n73,0,41,0,15,0,42,0,77,0,49,0\n"
  },
  {
    "path": "schedules/85_1.csv",
    "content": "75,0,85,0,3,0,76,0,54,0,25,0\n61,0,80,0,32,0,16,0,73,0,40,0\n71,0,74,0,56,0,24,0,29,0,33,0\n43,0,63,0,72,0,6,0,37,0,58,0\n23,0,50,0,48,0,52,0,53,0,84,0\n66,0,28,0,26,0,7,0,31,0,27,0\n22,0,11,0,68,0,60,0,5,0,83,0\n17,0,65,0,49,0,55,0,42,0,67,0\n70,0,77,0,2,0,45,0,62,0,13,0\n1,0,21,0,20,0,35,0,8,0,41,0\n47,0,4,0,19,0,82,0,57,0,10,0\n39,0,46,0,36,0,51,0,15,0,12,0\n30,0,34,0,69,0,78,0,59,0,44,0\n38,0,81,0,79,0,9,0,64,0,14,0\n18,0,71,1,6,1,74,1,72,1,27,1\n"
  },
  {
    "path": "schedules/85_10.csv",
    "content": "79,0,64,0,84,0,46,0,58,0,57,0\n36,0,70,0,21,0,56,0,74,0,81,0\n45,0,23,0,14,0,77,0,65,0,9,0\n8,0,67,0,19,0,2,0,38,0,6,0\n33,0,20,0,5,0,68,0,60,0,41,0\n32,0,82,0,27,0,54,0,30,0,25,0\n1,0,3,0,12,0,76,0,43,0,66,0\n59,0,47,0,72,0,17,0,50,0,80,0\n34,0,69,0,71,0,31,0,48,0,10,0\n15,0,37,0,35,0,83,0,16,0,78,0\n13,0,24,0,26,0,22,0,39,0,4,0\n51,0,85,0,29,0,63,0,42,0,73,0\n55,0,61,0,49,0,62,0,11,0,52,0\n18,0,40,0,75,0,44,0,28,0,53,0\n7,0,58,0,76,0,72,0,8,0,45,0\n80,0,81,0,12,0,10,0,9,0,32,0\n15,0,54,0,66,0,41,0,38,0,69,0\n6,0,37,0,31,0,82,0,56,0,5,0\n1,0,34,0,73,0,47,0,20,0,42,0\n64,0,52,0,30,0,13,0,23,0,51,0\n77,0,21,0,28,0,68,0,63,0,35,0\n36,0,4,0,18,0,46,0,16,0,25,0\n29,0,53,0,78,0,48,0,65,0,60,0\n40,0,57,0,24,0,74,0,59,0,55,0\n85,0,39,0,62,0,83,0,50,0,3,0\n11,0,7,0,22,0,75,0,84,0,27,0\n19,0,49,0,14,0,61,0,44,0,26,0\n33,0,70,0,79,0,2,0,17,0,71,0\n43,0,51,0,9,0,67,0,31,0,4,0\n1,1,54,0,28,0,45,1,10,0,6,0\n8,0,30,0,47,0,74,0,60,0,69,0\n64,0,66,0,80,0,21,0,20,0,62,0\n56,0,34,0,65,0,22,0,27,0,3,0\n48,0,40,0,81,0,14,0,37,0,39,0\n5,0,42,0,75,0,76,0,77,0,50,0\n55,0,82,0,83,0,17,0,49,0,16,0\n44,0,68,0,25,0,73,0,59,0,71,0\n38,0,52,0,53,0,24,0,12,0,79,0\n29,0,33,0,19,0,78,0,58,0,36,0\n26,0,72,0,63,0,84,0,23,0,70,0\n7,0,41,0,35,0,46,0,43,0,61,0\n57,0,2,0,32,0,85,0,18,0,15,0\n67,0,13,0,83,0,11,0,48,0,54,0\n21,0,65,0,25,0,55,0,8,0,31,0\n77,0,24,0,17,0,66,0,73,0,81,0\n20,0,51,0,59,0,22,0,49,0,79,0\n84,0,12,0,50,0,45,0,69,0,78,0\n27,0,39,0,23,0,71,0,5,0,47,0\n85,0,10,0,82,0,14,0,36,0,52,0\n72,0,67,0,42,0,46,0,53,0,15,0\n6,0,75,0,58,0,9,0,34,0,70,0\n2,0,35,0,33,0,30,0,11,0,44,0\n60,0,1,0,16,0,57,0,61,0,13,0\n26,0,28,0,74,0,3,0,29,0,64,0\n40,0,63,0,32,0,41,0,76,0,19,0\n68,0,37,0,38,0,4,0,7,0,62,0\n56,0,80,0,8,0,18,0,43,0,49,0\n22,0,21,0,10,0,50,0,67,0,78,0\n23,0,31,0,11,0,20,0,17,0,15,0\n13,0,2,0,82,0,72,0,34,0,77,0\n27,0,55,0,6,0,85,0,35,0,60,0\n83,0,53,0,63,0,9,0,64,0,25,0\n61,0,79,0,68,0,29,0,81,0,76,0\n43,0,44,0,36,0,24,0,45,0,32,0\n14,0,58,0,38,0,28,0,80,0,16,0\n5,0,51,0,69,0,46,0,3,0,40,0\n52,0,39,0,41,0,7,0,74,0,42,0\n18,0,48,0,33,0,12,0,47,0,26,0\n71,0,37,0,65,0,75,0,19,0,66,0\n59,0,56,0,62,0,1,0,84,0,30,0\n4,0,57,0,73,0,70,0,54,0,49,0\n45,0,63,0,20,0,82,0,81,0,15,0\n3,0,13,0,14,0,32,0,68,0,8,0\n51,0,6,0,61,0,36,0,80,0,53,0\n46,0,76,0,17,0,78,0,28,0,27,0\n24,0,9,0,11,0,37,0,41,0,47,0\n66,0,84,0,52,0,29,0,34,0,5,0\n60,0,26,0,50,0,40,0,73,0,31,0\n62,0,43,0,10,0,39,0,58,0,2,0\n54,0,77,0,57,0,56,0,12,0,44,0\n22,0,71,0,1,0,72,0,55,0,38,0\n69,0,19,0,42,0,4,0,21,0,59,0\n74,0,48,0,25,0,23,0,35,0,79,0\n67,0,16,0,64,0,85,0,33,0,75,0\n65,0,18,0,30,0,70,0,7,0,83,0\n3,0,15,0,9,0,13,0,27,0,36,0\n31,0,45,0,34,0,62,0,80,0,57,0\n20,0,2,0,53,0,84,0,55,0,14,0\n60,0,51,0,37,0,21,0,54,0,58,0\n59,0,28,0,8,0,23,0,82,0,66,0\n12,0,4,0,29,0,35,0,39,0,17,0\n56,0,83,0,33,0,10,0,76,0,73,0\n85,0,5,0,22,0,44,0,19,0,7,0\n77,0,67,0,32,0,69,0,79,0,26,0\n71,0,64,0,61,0,42,0,24,0,18,0\n78,0,40,0,47,0,70,0,25,0,38,0\n1,0,74,0,46,0,11,0,63,0,50,0\n48,0,72,0,75,0,30,0,49,0,68,0\n16,0,81,0,43,0,52,0,65,0,6,0\n41,0,57,0,29,0,10,0,8,0,23,0\n4,0,28,0,60,0,83,0,32,0,34,0\n24,0,62,0,19,0,51,0,77,0,27,0\n84,0,76,0,36,0,71,0,67,0,35,0\n11,0,78,0,82,0,39,0,79,0,18,0\n45,0,38,0,49,0,21,0,33,0,3,0\n40,0,66,0,16,0,68,0,56,0,42,0\n2,0,52,0,9,0,46,0,26,0,59,0\n17,0,14,0,63,0,22,0,30,0,43,0\n61,0,70,0,50,0,48,0,13,0,20,0\n47,0,31,0,54,0,53,0,7,0,81,0\n6,0,72,0,44,0,69,0,37,0,64,0\n80,0,41,0,65,0,1,0,25,0,85,0\n73,0,74,0,58,0,12,0,5,0,15,0\n55,0,79,0,3,0,75,0,4,0,10,0\n45,0,26,0,71,0,51,0,56,0,11,0\n84,0,38,0,42,0,82,0,9,0,60,0\n19,0,50,0,68,0,83,0,52,0,57,0\n53,0,70,0,22,0,16,0,8,0,77,0\n31,0,66,0,72,0,61,0,39,0,33,0\n73,0,27,0,43,0,48,0,59,0,64,0\n49,0,15,0,6,0,40,0,29,0,7,0\n76,0,69,0,35,0,18,0,14,0,20,0\n85,0,30,0,46,0,34,0,21,0,12,0\n55,0,44,0,41,0,47,0,67,0,58,0\n23,0,36,0,32,0,1,0,37,0,2,0\n78,0,75,0,54,0,63,0,24,0,80,0\n81,0,25,0,28,0,62,0,5,0,13,0\n74,0,61,0,10,0,65,0,17,0,84,0\n4,0,71,0,77,0,15,0,40,0,52,0\n76,0,60,0,12,0,70,0,64,0,11,0\n16,0,21,0,27,0,72,0,79,0,41,0\n47,0,45,0,46,0,83,0,14,0,66,0\n82,0,26,0,53,0,1,0,58,0,35,0\n9,0,39,0,7,0,20,0,57,0,28,0\n85,0,13,0,31,0,74,0,49,0,75,0\n34,0,78,0,8,0,51,0,44,0,81,0\n69,0,24,0,25,0,2,0,29,0,56,0\n22,0,62,0,42,0,32,0,6,0,48,0\n50,0,23,0,55,0,33,0,43,0,54,0\n80,0,3,0,73,0,37,0,19,0,30,0\n36,0,59,0,5,0,38,0,65,0,63,0\n68,0,17,0,1,0,18,0,67,0,45,0\n"
  },
  {
    "path": "schedules/85_11.csv",
    "content": "52,0,45,0,26,0,82,0,56,0,13,0\n60,0,51,0,49,0,66,0,50,0,79,0\n23,0,80,0,37,0,73,0,47,0,62,0\n44,0,78,0,17,0,6,0,61,0,42,0\n77,0,39,0,54,0,9,0,38,0,31,0\n12,0,46,0,58,0,76,0,29,0,25,0\n59,0,43,0,40,0,84,0,30,0,32,0\n22,0,75,0,70,0,5,0,35,0,2,0\n71,0,24,0,10,0,3,0,67,0,55,0\n20,0,7,0,48,0,81,0,16,0,41,0\n65,0,83,0,68,0,11,0,53,0,63,0\n15,0,4,0,36,0,28,0,33,0,74,0\n72,0,34,0,21,0,19,0,8,0,18,0\n14,0,1,0,85,0,27,0,64,0,57,0\n76,0,61,0,82,0,69,0,80,0,84,0\n67,0,73,0,70,0,9,0,17,0,26,0\n35,0,52,0,6,0,25,0,40,0,81,0\n45,0,65,0,71,0,58,0,60,0,16,0\n75,0,39,0,48,0,83,0,51,0,15,0\n62,0,30,0,22,0,72,0,46,0,50,0\n29,0,42,0,79,0,54,0,8,0,74,0\n3,0,5,0,13,0,41,0,14,0,53,0\n55,0,33,0,77,0,47,0,18,0,27,0\n78,0,2,0,57,0,43,0,23,0,68,0\n20,0,24,0,56,0,11,0,38,0,32,0\n28,0,31,0,69,0,59,0,85,0,49,0\n64,0,63,0,12,0,21,0,37,0,10,0\n36,0,1,0,66,0,19,0,44,0,7,0\n4,0,84,0,35,0,34,0,42,0,60,0\n52,1,18,0,30,0,58,0,61,0,14,0\n65,0,82,0,46,0,40,0,27,0,75,0\n70,0,41,0,55,0,23,0,83,0,74,0\n5,0,9,0,78,0,62,0,20,0,31,0\n63,0,50,0,28,0,24,0,73,0,29,0\n8,0,71,0,51,0,13,0,36,0,47,0\n66,0,17,0,85,0,15,0,56,0,76,0\n16,0,64,0,3,0,4,0,77,0,68,0\n80,0,49,0,54,0,12,0,72,0,57,0\n26,0,6,0,7,0,34,0,10,0,48,0\n53,0,19,0,39,0,37,0,11,0,45,0\n69,0,25,0,2,0,67,0,32,0,21,0\n43,0,79,0,44,0,38,0,33,0,81,0\n59,0,1,0,9,0,22,0,74,0,13,0\n61,0,29,0,8,0,20,0,3,0,75,0\n40,0,58,0,42,0,14,0,31,0,73,0\n84,0,66,0,26,0,24,0,64,0,52,0\n18,0,70,0,85,0,39,0,63,0,45,0\n68,0,51,0,5,0,76,0,67,0,34,0\n49,0,10,0,81,0,11,0,2,0,82,0\n44,0,72,0,35,0,43,0,65,0,47,0\n30,0,48,0,54,0,71,0,19,0,78,0\n38,0,60,0,59,0,37,0,6,0,46,0\n57,0,16,0,33,0,25,0,17,0,50,0\n23,0,1,0,77,0,12,0,79,0,15,0\n27,0,28,0,53,0,7,0,32,0,41,0\n55,0,83,0,21,0,56,0,62,0,4,0\n69,0,22,0,52,0,36,0,80,0,42,0\n24,0,2,0,13,0,40,0,44,0,76,0\n6,0,8,0,66,0,30,0,39,0,68,0\n14,0,81,0,74,0,72,0,63,0,78,0\n19,0,49,0,50,0,70,0,77,0,65,0\n57,0,41,0,73,0,45,0,34,0,38,0\n9,0,56,0,12,0,7,0,18,0,75,0\n48,0,37,0,82,0,29,0,85,0,22,0\n62,0,16,0,67,0,61,0,1,0,28,0\n21,0,69,0,15,0,3,0,43,0,46,0\n64,0,32,0,51,0,55,0,80,0,17,0\n47,0,20,0,54,0,60,0,53,0,26,0\n83,0,58,0,27,0,84,0,36,0,10,0\n25,0,59,0,4,0,71,0,79,0,5,0\n31,0,11,0,23,0,33,0,35,0,48,0\n52,0,74,0,39,0,34,0,49,0,62,0\n13,0,7,0,66,0,46,0,57,0,70,0\n15,0,18,0,78,0,41,0,29,0,40,0\n69,0,9,0,16,0,6,0,2,0,55,0\n45,0,60,0,24,0,61,0,81,0,21,0\n28,0,37,0,84,0,65,0,5,0,54,0\n3,0,27,0,36,0,59,0,35,0,17,0\n38,0,47,0,50,0,4,0,1,0,58,0\n33,0,68,0,42,0,19,0,82,0,12,0\n8,0,31,0,80,0,26,0,63,0,43,0\n23,0,25,0,72,0,51,0,20,0,10,0\n79,0,64,0,67,0,56,0,53,0,22,0\n76,0,32,0,14,0,11,0,75,0,71,0\n77,0,44,0,73,0,85,0,30,0,83,0\n17,0,46,0,52,0,47,0,5,0,48,0\n34,0,12,0,55,0,78,0,28,0,36,0\n21,0,7,0,74,0,40,0,68,0,50,0\n63,0,2,0,61,0,38,0,15,0,13,0\n6,0,67,0,20,0,4,0,80,0,82,0\n14,0,69,0,19,0,24,0,39,0,79,0\n25,0,45,0,84,0,44,0,75,0,1,0\n8,0,26,0,11,0,16,0,23,0,18,0\n57,0,10,0,65,0,56,0,59,0,81,0\n70,0,72,0,27,0,60,0,31,0,29,0\n71,0,49,0,3,0,37,0,83,0,42,0\n66,0,22,0,32,0,33,0,54,0,73,0\n62,0,43,0,58,0,77,0,51,0,53,0\n76,0,35,0,64,0,30,0,41,0,9,0\n84,0,67,0,74,0,85,0,20,0,46,0\n34,0,16,0,15,0,14,0,44,0,80,0\n61,0,13,0,55,0,25,0,31,0,65,0\n2,0,50,0,45,0,8,0,48,0,27,0\n56,0,40,0,39,0,3,0,28,0,22,0\n81,0,17,0,18,0,68,0,62,0,71,0\n33,0,60,0,63,0,9,0,58,0,52,0\n35,0,77,0,21,0,37,0,66,0,78,0\n5,0,49,0,38,0,23,0,64,0,36,0\n29,0,57,0,32,0,26,0,4,0,19,0\n24,0,51,0,82,0,59,0,54,0,7,0\n11,0,12,0,30,0,69,0,47,0,70,0\n41,0,42,0,75,0,43,0,10,0,85,0\n53,0,73,0,6,0,72,0,1,0,76,0\n83,0,80,0,46,0,79,0,45,0,35,0\n23,0,34,0,20,0,63,0,71,0,40,0\n60,0,74,0,65,0,18,0,48,0,22,0\n64,0,29,0,33,0,62,0,2,0,7,0\n5,0,58,0,82,0,55,0,66,0,44,0\n75,0,8,0,4,0,78,0,69,0,49,0\n27,0,11,0,73,0,13,0,21,0,6,0\n17,0,83,0,56,0,1,0,54,0,43,0\n81,0,30,0,26,0,3,0,12,0,51,0\n10,0,76,0,19,0,38,0,52,0,28,0\n72,0,77,0,67,0,59,0,41,0,39,0\n42,0,24,0,53,0,57,0,9,0,15,0\n31,0,32,0,36,0,37,0,50,0,16,0\n68,0,25,0,47,0,84,0,70,0,14,0\n85,0,79,0,55,0,61,0,34,0,11,0\n20,0,43,0,22,0,27,0,49,0,12,0\n71,0,35,0,1,0,69,0,26,0,33,0\n51,0,63,0,41,0,6,0,19,0,56,0\n29,0,45,0,5,0,30,0,10,0,17,0\n23,0,59,0,75,0,53,0,50,0,52,0\n28,0,46,0,42,0,77,0,81,0,2,0\n15,0,73,0,25,0,64,0,8,0,60,0\n40,0,4,0,72,0,66,0,61,0,48,0\n84,0,79,0,31,0,3,0,18,0,57,0\n78,0,7,0,39,0,80,0,58,0,13,0\n47,0,74,0,16,0,83,0,76,0,24,0\n14,0,9,0,82,0,21,0,38,0,65,0\n62,0,85,0,36,0,70,0,54,0,32,0\n44,0,37,0,29,0,67,0,68,0,52,0\n40,0,60,0,11,0,77,0,17,0,5,0\n31,0,6,0,71,0,15,0,84,0,22,0\n63,0,48,0,56,0,49,0,30,0,25,0\n3,0,2,0,19,0,58,0,73,0,74,0\n80,0,33,0,41,0,65,0,24,0,8,0\n54,0,27,0,13,0,69,0,23,0,4,0\n43,0,37,0,7,0,14,0,55,0,45,0\n62,0,76,0,70,0,20,0,59,0,42,0\n61,0,10,0,46,0,1,0,39,0,32,0\n79,0,26,0,68,0,36,0,72,0,9,0\n18,0,50,0,83,0,64,0,78,0,82,0\n53,0,85,0,38,0,16,0,12,0,35,0\n34,0,47,0,75,0,67,0,66,0,81,0\n57,0,28,0,21,0,51,0,44,0,52,0\n"
  },
  {
    "path": "schedules/85_12.csv",
    "content": "58,0,18,0,31,0,33,0,4,0,70,0\n28,0,79,0,82,0,68,0,36,0,32,0\n20,0,22,0,2,0,39,0,57,0,65,0\n5,0,21,0,71,0,48,0,50,0,14,0\n73,0,8,0,24,0,81,0,38,0,40,0\n74,0,45,0,6,0,13,0,27,0,1,0\n51,0,64,0,26,0,16,0,78,0,17,0\n66,0,47,0,77,0,44,0,10,0,29,0\n46,0,49,0,80,0,34,0,84,0,83,0\n72,0,23,0,7,0,53,0,67,0,41,0\n12,0,85,0,59,0,52,0,42,0,56,0\n9,0,37,0,69,0,11,0,19,0,54,0\n43,0,62,0,55,0,3,0,60,0,75,0\n25,0,30,0,35,0,63,0,15,0,76,0\n61,0,10,0,33,0,64,0,21,0,2,0\n17,0,51,0,45,0,8,0,70,0,34,0\n44,0,41,0,58,0,20,0,82,0,48,0\n78,0,46,0,38,0,7,0,68,0,85,0\n56,0,28,0,39,0,52,0,23,0,83,0\n65,0,47,0,81,0,5,0,74,0,60,0\n6,0,75,0,29,0,19,0,12,0,79,0\n73,0,49,0,14,0,61,0,43,0,27,0\n26,0,1,0,62,0,50,0,37,0,76,0\n11,0,63,0,59,0,57,0,32,0,80,0\n3,0,31,0,16,0,24,0,22,0,69,0\n18,0,66,0,13,0,72,0,25,0,71,0\n35,0,67,0,77,0,53,0,9,0,36,0\n15,0,30,0,84,0,42,0,40,0,54,0\n55,0,23,0,45,0,4,0,46,0,64,0\n8,0,76,0,12,0,43,0,41,0,5,0\n26,0,65,0,27,0,7,0,57,0,70,0\n73,0,62,0,85,0,58,0,10,0,80,0\n24,0,48,0,3,0,2,0,18,0,47,0\n31,0,28,0,63,0,82,0,53,0,37,0\n50,0,30,0,11,0,34,0,56,0,74,0\n71,0,38,0,42,0,9,0,75,0,16,0\n13,0,32,0,83,0,19,0,69,0,15,0\n77,0,14,0,84,0,60,0,35,0,72,0\n4,0,78,0,40,0,81,0,79,0,66,0\n68,0,54,0,22,0,25,0,21,0,6,0\n1,0,67,0,49,0,44,0,17,0,39,0\n36,0,33,0,52,0,55,0,29,0,20,0\n51,0,61,0,18,0,59,0,30,0,38,0\n71,0,53,0,23,0,26,0,73,0,69,0\n27,0,63,0,82,0,9,0,12,0,60,0\n5,0,37,0,2,0,78,0,13,0,58,0\n48,0,54,0,84,0,65,0,32,0,75,0\n57,0,85,0,1,0,24,0,68,0,70,0\n22,0,42,0,44,0,83,0,4,0,28,0\n35,0,45,0,49,0,59,0,33,0,31,0\n72,0,21,0,36,0,51,0,47,0,43,0\n50,0,3,0,8,0,10,0,77,0,19,0\n17,0,40,0,46,0,29,0,76,0,56,0\n20,0,11,0,64,0,67,0,6,0,81,0\n7,0,61,0,39,0,15,0,25,0,55,0\n80,0,74,0,16,0,79,0,14,0,52,0\n62,0,41,0,24,0,34,0,66,0,27,0\n49,0,63,0,65,0,18,0,36,0,85,0\n68,0,28,0,60,0,73,0,9,0,30,0\n29,0,1,0,5,0,35,0,23,0,3,0\n40,0,12,0,31,0,51,0,44,0,71,0\n17,0,13,0,20,0,11,0,84,0,47,0\n55,0,22,0,59,0,54,0,50,0,78,0\n62,0,33,0,14,0,69,0,77,0,57,0\n82,0,41,0,10,0,83,0,61,0,74,0\n32,0,37,0,66,0,75,0,7,0,45,0\n2,0,52,0,6,0,72,0,76,0,38,0\n46,0,19,0,16,0,53,0,21,0,81,0\n80,0,25,0,8,0,4,0,26,0,48,0\n79,0,56,0,70,0,15,0,67,0,64,0\n43,0,34,0,68,0,39,0,58,0,42,0\n3,0,41,0,51,0,28,0,49,0,13,0\n35,0,73,0,83,0,54,0,12,0,57,0\n40,0,30,0,7,0,52,0,82,0,77,0\n32,0,84,0,38,0,74,0,31,0,62,0\n18,0,10,0,37,0,6,0,55,0,14,0\n81,0,72,0,63,0,33,0,75,0,56,0\n25,0,69,0,76,0,29,0,64,0,65,0\n27,0,67,0,79,0,5,0,22,0,46,0\n59,0,26,0,34,0,2,0,4,0,36,0\n39,0,53,0,43,0,78,0,70,0,71,0\n60,0,50,0,85,0,44,0,20,0,8,0\n45,0,15,0,21,0,9,0,24,0,17,0\n19,0,61,0,42,0,47,0,1,0,80,0\n58,0,48,0,66,0,23,0,11,0,16,0\n74,0,67,0,68,0,33,0,63,0,12,0\n29,0,81,0,83,0,7,0,18,0,62,0\n75,0,55,0,31,0,25,0,57,0,5,0\n70,0,73,0,37,0,22,0,82,0,35,0\n84,0,59,0,44,0,71,0,6,0,24,0\n78,0,30,0,52,0,19,0,41,0,21,0\n54,0,80,0,53,0,56,0,8,0,51,0\n13,0,77,0,4,0,28,0,43,0,65,0\n20,0,23,0,10,0,16,0,34,0,15,0\n85,0,17,0,66,0,60,0,69,0,61,0\n58,0,79,0,50,0,47,0,45,0,38,0\n48,0,49,0,36,0,42,0,76,0,46,0\n26,0,9,0,39,0,64,0,72,0,3,0\n11,0,32,0,2,0,40,0,27,0,14,0\n1,0,56,0,77,0,18,0,25,0,41,0\n23,0,44,0,78,0,65,0,80,0,33,0\n29,0,34,0,60,0,13,0,21,0,57,0\n54,0,85,0,67,0,28,0,16,0,62,0\n81,0,50,0,70,0,49,0,84,0,12,0\n43,0,83,0,20,0,79,0,24,0,37,0\n10,0,22,0,40,0,26,0,63,0,45,0\n46,0,15,0,74,0,73,0,2,0,59,0\n19,0,17,0,58,0,36,0,31,0,14,0\n7,0,32,0,55,0,9,0,51,0,1,0\n42,0,53,0,6,0,5,0,3,0,61,0\n27,0,75,0,8,0,30,0,69,0,39,0\n47,0,4,0,72,0,71,0,11,0,76,0\n64,0,48,0,68,0,52,0,66,0,35,0\n38,0,29,0,43,0,82,0,67,0,26,0\n34,0,25,0,23,0,74,0,44,0,37,0\n54,0,41,0,60,0,31,0,46,0,2,0\n36,0,63,0,61,0,84,0,3,0,78,0\n20,0,65,0,79,0,42,0,51,0,73,0\n75,0,83,0,59,0,40,0,70,0,77,0\n9,0,47,0,64,0,30,0,62,0,49,0\n12,0,69,0,21,0,72,0,28,0,58,0\n56,0,19,0,48,0,27,0,55,0,68,0\n82,0,45,0,5,0,39,0,85,0,11,0\n35,0,24,0,80,0,17,0,50,0,6,0\n33,0,76,0,16,0,8,0,13,0,7,0\n57,0,14,0,18,0,66,0,15,0,53,0\n52,0,71,0,10,0,22,0,81,0,32,0\n4,0,38,0,69,0,1,0,20,0,63,0\n2,0,19,0,51,0,67,0,84,0,25,0\n5,0,68,0,72,0,83,0,45,0,62,0\n65,0,3,0,70,0,80,0,40,0,61,0\n79,0,16,0,55,0,11,0,77,0,49,0\n24,0,14,0,30,0,13,0,12,0,46,0\n9,0,48,0,74,0,85,0,53,0,22,0\n33,0,1,0,54,0,66,0,10,0,43,0\n44,0,18,0,35,0,21,0,75,0,26,0\n34,0,73,0,31,0,6,0,47,0,78,0\n4,0,50,0,39,0,32,0,41,0,29,0\n36,0,15,0,56,0,38,0,37,0,60,0\n57,0,81,0,59,0,23,0,28,0,17,0\n7,0,82,0,71,0,42,0,8,0,64,0\n52,0,76,0,54,0,27,0,58,0,53,0\n13,0,26,0,35,0,83,0,85,0,55,0\n5,0,70,0,9,0,66,0,20,0,25,0\n16,0,45,0,84,0,73,0,18,0,43,0\n37,0,47,0,12,0,80,0,77,0,39,0\n38,0,6,0,34,0,33,0,28,0,48,0\n71,0,17,0,65,0,68,0,41,0,30,0\n76,0,32,0,58,0,61,0,81,0,44,0\n2,0,8,0,62,0,63,0,79,0,23,0\n51,0,75,0,11,0,46,0,52,0,1,0\n10,0,69,0,78,0,60,0,24,0,67,0\n15,0,42,0,29,0,27,0,72,0,31,0\n40,0,57,0,64,0,50,0,36,0,74,0\n3,0,14,0,21,0,59,0,56,0,82,0\n4,0,19,0,22,0,49,0,7,0,5,0\n70,0,66,0,44,0,30,0,2,0,55,0\n11,0,1,0,53,0,62,0,12,0,65,0\n46,0,61,0,28,0,35,0,71,0,20,0\n9,0,68,0,76,0,84,0,18,0,29,0\n42,0,74,0,77,0,26,0,58,0,24,0\n39,0,79,0,72,0,10,0,59,0,48,0\n25,0,27,0,17,0,83,0,38,0,3,0\n41,0,36,0,69,0,81,0,45,0,80,0\n21,0,85,0,43,0,40,0,19,0,23,0\n37,0,78,0,57,0,8,0,49,0,52,0\n67,0,75,0,73,0,31,0,50,0,13,0\n34,0,7,0,64,0,14,0,63,0,54,0\n6,0,56,0,60,0,16,0,32,0,4,0\n82,0,33,0,47,0,51,0,15,0,22,0\n"
  },
  {
    "path": "schedules/85_13.csv",
    "content": "3,0,84,0,11,0,58,0,65,0,34,0\n14,0,57,0,52,0,46,0,1,0,29,0\n40,0,28,0,13,0,66,0,80,0,60,0\n43,0,54,0,15,0,33,0,4,0,48,0\n44,0,26,0,31,0,37,0,18,0,7,0\n55,0,50,0,53,0,64,0,78,0,30,0\n82,0,36,0,81,0,61,0,47,0,67,0\n69,0,25,0,68,0,77,0,74,0,75,0\n16,0,41,0,23,0,73,0,12,0,19,0\n21,0,8,0,56,0,51,0,70,0,2,0\n24,0,38,0,71,0,6,0,22,0,5,0\n49,0,59,0,62,0,9,0,63,0,32,0\n85,0,17,0,42,0,20,0,39,0,27,0\n35,0,79,0,83,0,72,0,10,0,76,0\n45,0,60,0,57,0,64,0,43,0,7,0\n54,0,28,0,14,0,34,0,3,0,77,0\n29,0,12,0,51,0,33,0,37,0,11,0\n56,0,36,0,61,0,46,0,52,0,24,0\n67,0,50,0,48,0,58,0,75,0,32,0\n26,0,78,0,25,0,23,0,39,0,6,0\n27,0,15,0,8,0,31,0,69,0,81,0\n35,0,2,0,76,0,44,0,59,0,47,0\n30,0,42,0,1,0,83,0,41,0,9,0\n55,0,68,0,84,0,71,0,45,0,13,0\n62,0,53,0,20,0,70,0,72,0,22,0\n85,0,63,0,21,0,65,0,38,0,66,0\n10,0,73,0,5,0,17,0,4,0,40,0\n79,0,19,0,16,0,82,0,74,0,18,0\n80,0,67,0,75,0,49,0,61,0,14,0\n46,1,44,0,12,0,76,1,43,0,42,0\n6,1,47,0,33,0,3,1,39,0,55,0\n31,1,37,0,53,0,41,0,48,0,58,0\n28,0,69,0,78,0,7,0,51,0,54,0\n20,0,25,0,71,0,81,0,40,0,59,0\n11,0,63,0,82,0,15,0,83,0,22,0\n60,0,27,0,68,0,52,0,5,0,21,0\n35,0,34,0,26,0,32,0,19,0,24,0\n57,0,18,0,16,0,85,0,23,0,2,0\n65,0,9,0,80,0,79,0,10,0,56,0\n64,0,73,0,1,0,8,0,72,0,74,0\n4,0,66,0,30,0,49,0,77,0,45,0\n17,0,13,0,29,0,36,0,62,0,38,0\n50,0,70,0,63,0,84,0,33,0,40,0\n21,0,32,0,43,0,82,0,71,0,28,0\n20,0,67,0,18,0,52,0,15,0,76,0\n78,0,39,0,34,0,56,0,35,0,68,0\n44,0,22,0,2,0,3,0,48,0,9,0\n4,0,59,0,10,0,16,0,27,0,7,0\n83,0,46,0,30,0,8,0,54,0,62,0\n60,0,84,0,53,0,61,0,17,0,38,0\n80,0,57,0,77,0,12,0,31,0,24,0\n79,0,36,0,58,0,5,0,26,0,64,0\n49,0,6,0,41,0,65,0,47,0,50,0\n55,0,70,0,81,0,74,0,66,0,14,0\n45,0,73,0,85,0,25,0,11,0,1,0\n69,0,72,0,42,0,37,0,29,0,23,0\n19,0,75,0,53,0,51,0,13,0,83,0\n38,0,68,0,15,0,2,0,3,0,7,0\n56,0,63,0,71,0,31,0,67,0,17,0\n77,0,48,0,84,0,18,0,26,0,10,0\n46,0,14,0,8,0,60,0,50,0,35,0\n58,0,22,0,49,0,43,0,85,0,74,0\n20,0,21,0,47,0,24,0,78,0,73,0\n23,0,51,0,34,0,80,0,62,0,55,0\n54,0,30,0,59,0,70,0,42,0,57,0\n72,0,37,0,81,0,16,0,9,0,36,0\n27,0,52,0,32,0,11,0,79,0,41,0\n66,0,33,0,64,0,25,0,76,0,65,0\n28,0,39,0,75,0,45,0,29,0,44,0\n61,0,40,0,6,0,1,0,69,0,19,0\n12,0,4,0,5,0,13,0,82,0,3,0\n68,0,7,0,22,0,17,0,23,0,47,0\n18,0,51,0,72,0,67,0,46,0,59,0\n9,0,77,0,58,0,71,0,60,0,15,0\n42,0,36,0,11,0,53,0,8,0,66,0\n39,0,38,0,30,0,75,0,10,0,52,0\n80,0,79,0,48,0,21,0,81,0,57,0\n44,0,78,0,41,0,85,0,69,0,40,0\n82,0,76,0,73,0,62,0,24,0,14,0\n37,0,43,0,63,0,25,0,34,0,74,0\n16,0,5,0,50,0,45,0,83,0,56,0\n1,0,28,0,6,0,35,0,12,0,54,0\n33,0,26,0,70,0,49,0,13,0,27,0\n32,0,20,0,84,0,19,0,31,0,64,0\n29,0,65,0,4,0,61,0,55,0,2,0\n40,0,51,0,46,0,82,0,85,0,48,0\n69,0,9,0,38,0,67,0,73,0,43,0\n81,0,77,0,79,0,44,0,83,0,53,0\n3,0,74,0,23,0,17,0,59,0,35,0\n15,0,16,0,12,0,30,0,26,0,71,0\n66,0,31,0,52,0,62,0,78,0,10,0\n41,0,47,0,36,0,75,0,34,0,57,0\n65,0,18,0,32,0,70,0,45,0,14,0\n84,0,7,0,5,0,2,0,39,0,11,0\n28,0,64,0,49,0,24,0,68,0,42,0\n22,0,19,0,29,0,76,0,50,0,8,0\n37,0,58,0,56,0,6,0,27,0,55,0\n25,0,54,0,61,0,13,0,21,0,72,0\n63,0,1,0,60,0,80,0,4,0,20,0\n33,0,17,0,41,0,66,0,46,0,26,0\n85,0,7,0,31,0,9,0,70,0,75,0\n48,0,65,0,73,0,83,0,68,0,59,0\n12,0,8,0,47,0,18,0,14,0,84,0\n53,0,71,0,27,0,49,0,29,0,35,0\n15,0,62,0,74,0,40,0,42,0,56,0\n19,0,72,0,52,0,4,0,28,0,55,0\n6,0,64,0,21,0,67,0,13,0,11,0\n10,0,45,0,3,0,69,0,63,0,36,0\n22,0,16,0,38,0,80,0,33,0,34,0\n58,0,60,0,82,0,54,0,81,0,23,0\n51,0,57,0,61,0,5,0,76,0,44,0\n77,0,32,0,37,0,20,0,78,0,43,0\n25,0,24,0,2,0,50,0,79,0,30,0\n1,0,31,0,15,0,39,0,59,0,53,0\n14,0,4,0,68,0,26,0,9,0,11,0\n48,0,52,0,36,0,7,0,12,0,49,0\n54,0,75,0,73,0,71,0,66,0,84,0\n67,0,40,0,55,0,22,0,27,0,57,0\n65,0,82,0,8,0,44,0,38,0,37,0\n46,0,42,0,10,0,45,0,58,0,21,0\n23,0,70,0,61,0,34,0,28,0,50,0\n69,0,33,0,35,0,20,0,5,0,79,0\n47,0,64,0,2,0,51,0,77,0,63,0\n83,0,32,0,74,0,29,0,6,0,60,0\n24,0,13,0,76,0,16,0,78,0,1,0\n43,0,39,0,72,0,80,0,41,0,18,0\n19,0,17,0,3,0,30,0,85,0,81,0\n56,0,62,0,82,0,25,0,84,0,57,0\n10,0,53,0,67,0,68,0,12,0,33,0\n38,0,14,0,35,0,64,0,40,0,15,0\n42,0,45,0,79,0,47,0,31,0,34,0\n66,0,20,0,83,0,61,0,9,0,74,0\n4,0,58,0,24,0,51,0,8,0,39,0\n13,0,50,0,77,0,27,0,48,0,72,0\n29,0,3,0,41,0,60,0,56,0,25,0\n19,0,11,0,71,0,2,0,80,0,46,0\n36,0,32,0,30,0,65,0,23,0,69,0\n54,0,76,0,63,0,73,0,55,0,26,0\n85,0,5,0,37,0,28,0,59,0,52,0\n17,0,70,0,6,0,43,0,44,0,16,0\n78,0,22,0,18,0,81,0,75,0,49,0\n62,0,21,0,33,0,1,0,7,0,77,0\n74,0,24,0,67,0,11,0,48,0,53,0\n23,0,13,0,8,0,15,0,10,0,20,0\n32,0,79,0,40,0,3,0,12,0,61,0\n60,0,55,0,85,0,35,0,36,0,31,0\n70,0,52,0,71,0,83,0,47,0,25,0\n69,0,22,0,59,0,4,0,64,0,56,0\n75,0,65,0,78,0,43,0,5,0,46,0\n51,0,14,0,42,0,6,0,63,0,16,0\n68,0,66,0,39,0,57,0,37,0,19,0\n28,0,81,0,2,0,26,0,62,0,41,0\n27,0,50,0,38,0,1,0,18,0,54,0\n7,0,80,0,29,0,30,0,58,0,73,0\n76,0,17,0,45,0,21,0,9,0,82,0\n34,0,49,0,84,0,72,0,44,0,15,0\n6,0,59,0,77,0,22,0,8,0,52,0\n56,0,23,0,43,0,53,0,79,0,14,0\n71,0,64,0,61,0,37,0,41,0,10,0\n1,0,20,0,26,0,65,0,51,0,3,0\n11,0,24,0,55,0,75,0,60,0,62,0\n40,0,31,0,29,0,54,0,68,0,16,0\n27,0,28,0,9,0,84,0,47,0,46,0\n33,0,73,0,2,0,42,0,81,0,32,0\n45,0,48,0,19,0,38,0,78,0,70,0\n7,0,72,0,34,0,82,0,66,0,5,0\n25,0,85,0,44,0,4,0,83,0,67,0\n69,0,12,0,57,0,49,0,17,0,21,0\n30,0,13,0,18,0,63,0,58,0,35,0\n39,0,50,0,80,0,36,0,74,0,76,0\n10,0,11,0,43,0,20,0,54,0,55,0\n46,0,60,0,70,0,37,0,79,0,1,0\n24,0,40,0,75,0,72,0,33,0,23,0\n9,0,44,0,34,0,52,0,29,0,64,0\n19,0,7,0,65,0,77,0,67,0,42,0\n5,0,13,0,31,0,30,0,14,0,22,0\n76,0,81,0,56,0,38,0,28,0,85,0\n18,0,6,0,3,0,73,0,53,0,57,0\n80,0,26,0,59,0,69,0,50,0,82,0\n78,0,2,0,83,0,12,0,58,0,27,0\n66,0,62,0,48,0,39,0,71,0,16,0\n15,0,51,0,47,0,17,0,25,0,32,0\n35,0,21,0,74,0,36,0,4,0,84,0\n41,0,8,0,61,0,45,0,63,0,68,0\n49,0,76,0,3,0,46,0,6,0,31,0\n"
  },
  {
    "path": "schedules/85_14.csv",
    "content": "42,0,61,0,55,0,80,0,76,0,9,0\n34,0,67,0,29,0,36,0,31,0,21,0\n38,0,16,0,3,0,64,0,18,0,4,0\n27,0,14,0,49,0,71,0,63,0,8,0\n52,0,47,0,69,0,5,0,40,0,37,0\n28,0,19,0,48,0,59,0,23,0,84,0\n17,0,43,0,6,0,12,0,50,0,74,0\n62,0,81,0,54,0,85,0,13,0,77,0\n39,0,57,0,82,0,2,0,25,0,7,0\n53,0,73,0,41,0,45,0,20,0,10,0\n30,0,60,0,65,0,46,0,44,0,35,0\n56,0,70,0,11,0,72,0,15,0,78,0\n1,0,26,0,32,0,68,0,75,0,33,0\n51,0,66,0,22,0,24,0,58,0,83,0\n79,0,38,0,67,0,61,0,28,0,85,0\n25,0,9,0,14,0,16,0,81,0,21,0\n4,0,34,0,42,0,63,0,52,0,19,0\n30,0,3,0,59,0,27,0,69,0,39,0\n76,0,41,0,82,0,77,0,5,0,70,0\n35,0,1,0,73,0,23,0,55,0,15,0\n6,0,51,0,75,0,57,0,18,0,72,0\n71,0,54,0,56,0,31,0,33,0,17,0\n13,0,68,0,47,0,22,0,10,0,36,0\n79,0,8,0,44,0,40,0,24,0,43,0\n65,0,12,0,7,0,66,0,60,0,32,0\n46,0,45,0,37,0,62,0,49,0,58,0\n74,0,2,0,84,0,29,0,80,0,53,0\n83,0,78,0,48,0,20,0,26,0,50,0\n11,0,81,0,57,0,64,0,33,0,63,0\n16,1,18,0,52,0,22,1,76,0,14,0\n27,1,43,0,51,0,38,1,9,0,34,0\n1,0,67,0,59,0,35,0,72,0,66,0\n79,0,47,0,45,0,15,0,46,0,75,0\n17,0,32,0,4,0,44,0,10,0,41,0\n28,0,37,0,50,0,55,0,24,0,31,0\n53,0,2,0,26,0,30,0,23,0,70,0\n58,0,54,0,80,0,11,0,3,0,25,0\n78,0,71,0,65,0,13,0,82,0,19,0\n64,0,40,0,83,0,84,0,60,0,39,0\n62,0,8,0,48,0,5,0,29,0,6,0\n69,0,49,0,85,0,42,0,77,0,73,0\n56,0,68,0,20,0,7,0,21,0,74,0\n12,0,61,0,23,0,36,0,75,0,52,0\n11,0,34,0,30,0,10,0,57,0,79,0\n50,0,72,0,76,0,26,0,27,0,81,0\n64,0,43,0,31,0,65,0,59,0,41,0\n15,0,40,0,58,0,67,0,17,0,82,0\n3,0,66,0,78,0,49,0,47,0,6,0\n28,0,77,0,39,0,18,0,9,0,20,0\n36,0,53,0,83,0,85,0,38,0,44,0\n21,0,8,0,84,0,62,0,32,0,22,0\n33,0,69,0,42,0,14,0,48,0,4,0\n13,0,5,0,63,0,80,0,70,0,73,0\n16,0,29,0,25,0,56,0,55,0,60,0\n19,0,24,0,12,0,35,0,54,0,45,0\n2,0,46,0,71,0,61,0,37,0,68,0\n1,0,74,0,85,0,51,0,7,0,47,0\n9,0,58,0,59,0,38,0,26,0,41,0\n17,0,72,0,22,0,48,0,53,0,57,0\n67,0,80,0,10,0,18,0,8,0,65,0\n44,0,39,0,75,0,34,0,82,0,55,0\n13,0,21,0,52,0,28,0,6,0,45,0\n40,0,76,0,4,0,68,0,2,0,23,0\n77,0,12,0,63,0,51,0,1,0,3,0\n14,0,36,0,62,0,83,0,54,0,79,0\n19,0,20,0,29,0,43,0,69,0,30,0\n84,0,37,0,25,0,27,0,33,0,15,0\n31,0,61,0,32,0,5,0,78,0,81,0\n66,0,46,0,7,0,73,0,11,0,71,0\n35,0,42,0,50,0,56,0,64,0,16,0\n24,0,74,0,70,0,49,0,60,0,59,0\n8,0,38,0,14,0,72,0,82,0,45,0\n10,0,69,0,19,0,6,0,2,0,58,0\n65,0,52,0,55,0,54,0,3,0,33,0\n41,0,83,0,29,0,80,0,1,0,81,0\n37,0,76,0,32,0,51,0,13,0,48,0\n31,0,73,0,78,0,30,0,62,0,42,0\n17,0,63,0,85,0,24,0,16,0,23,0\n57,0,74,0,36,0,9,0,27,0,66,0\n7,0,35,0,28,0,70,0,75,0,40,0\n5,0,11,0,12,0,71,0,67,0,26,0\n84,0,15,0,47,0,20,0,49,0,44,0\n22,0,4,0,77,0,56,0,43,0,39,0\n60,0,68,0,50,0,61,0,34,0,18,0\n25,0,21,0,64,0,79,0,53,0,46,0\n76,0,17,0,54,0,8,0,45,0,1,0\n52,0,85,0,33,0,19,0,66,0,70,0\n40,0,38,0,63,0,78,0,13,0,55,0\n49,0,10,0,12,0,27,0,80,0,62,0\n43,0,47,0,2,0,67,0,11,0,83,0\n60,0,20,0,3,0,57,0,5,0,14,0\n58,0,39,0,79,0,31,0,42,0,68,0\n32,0,82,0,9,0,69,0,35,0,53,0\n50,0,25,0,65,0,73,0,4,0,51,0\n48,0,64,0,22,0,61,0,75,0,74,0\n46,0,26,0,34,0,84,0,56,0,28,0\n81,0,36,0,30,0,6,0,59,0,16,0\n44,0,72,0,23,0,37,0,7,0,29,0\n21,0,24,0,18,0,71,0,41,0,15,0\n77,0,8,0,33,0,38,0,2,0,35,0\n63,0,66,0,54,0,50,0,53,0,82,0\n31,0,45,0,3,0,40,0,74,0,9,0\n78,0,76,0,56,0,64,0,85,0,12,0\n28,0,57,0,62,0,80,0,43,0,4,0\n81,0,42,0,51,0,70,0,36,0,46,0\n13,0,83,0,34,0,23,0,5,0,25,0\n84,0,41,0,69,0,79,0,11,0,52,0\n59,0,37,0,20,0,75,0,29,0,65,0\n15,0,22,0,61,0,30,0,6,0,7,0\n14,0,18,0,44,0,1,0,58,0,48,0\n32,0,73,0,49,0,39,0,16,0,67,0\n24,0,71,0,60,0,26,0,10,0,47,0\n77,0,27,0,17,0,68,0,55,0,19,0\n72,0,69,0,36,0,21,0,50,0,63,0\n59,0,2,0,45,0,51,0,34,0,78,0\n4,0,9,0,75,0,13,0,66,0,15,0\n20,0,79,0,62,0,52,0,82,0,56,0\n40,0,46,0,31,0,33,0,18,0,22,0\n64,0,6,0,23,0,80,0,71,0,32,0\n16,0,5,0,74,0,44,0,28,0,54,0\n57,0,73,0,68,0,47,0,35,0,83,0\n58,0,85,0,84,0,72,0,65,0,43,0\n55,0,49,0,48,0,30,0,12,0,21,0\n11,0,76,0,38,0,60,0,17,0,37,0\n26,0,24,0,77,0,42,0,39,0,29,0\n70,0,1,0,10,0,61,0,67,0,25,0\n8,0,19,0,53,0,7,0,3,0,81,0\n27,0,41,0,28,0,14,0,73,0,2,0\n82,0,63,0,16,0,46,0,74,0,83,0\n56,0,45,0,18,0,32,0,36,0,23,0\n52,0,5,0,30,0,58,0,38,0,65,0\n15,0,29,0,26,0,54,0,40,0,57,0\n33,0,9,0,61,0,72,0,47,0,62,0\n80,0,48,0,31,0,85,0,60,0,19,0\n6,0,1,0,4,0,11,0,20,0,24,0\n55,0,39,0,50,0,10,0,84,0,14,0\n70,0,22,0,3,0,34,0,37,0,79,0\n71,0,25,0,44,0,59,0,77,0,76,0\n21,0,17,0,35,0,27,0,78,0,7,0\n41,0,13,0,42,0,66,0,12,0,8,0\n75,0,81,0,53,0,68,0,49,0,43,0\n67,0,51,0,23,0,69,0,64,0,62,0\n5,0,19,0,9,0,1,0,46,0,50,0\n84,0,55,0,45,0,70,0,85,0,57,0\n63,0,2,0,56,0,38,0,6,0,48,0\n3,0,28,0,32,0,30,0,29,0,17,0\n61,0,20,0,66,0,26,0,25,0,40,0\n18,0,42,0,7,0,13,0,54,0,59,0\n47,0,33,0,39,0,53,0,58,0,21,0\n74,0,34,0,64,0,15,0,8,0,69,0\n67,0,27,0,68,0,52,0,44,0,60,0\n83,0,75,0,43,0,10,0,31,0,76,0\n79,0,80,0,78,0,77,0,72,0,16,0\n65,0,14,0,51,0,22,0,11,0,49,0\n41,0,4,0,35,0,36,0,71,0,37,0\n24,0,81,0,82,0,12,0,73,0,84,0\n38,0,25,0,18,0,62,0,74,0,19,0\n55,0,7,0,53,0,5,0,42,0,67,0\n6,0,70,0,8,0,44,0,47,0,31,0\n48,0,60,0,63,0,9,0,79,0,43,0\n11,0,59,0,15,0,77,0,32,0,50,0\n29,0,40,0,56,0,51,0,71,0,10,0\n54,0,21,0,85,0,75,0,30,0,2,0\n46,0,68,0,72,0,41,0,12,0,3,0\n36,0,82,0,49,0,1,0,64,0,28,0\n17,0,73,0,26,0,52,0,22,0,80,0\n83,0,61,0,45,0,4,0,27,0,65,0\n23,0,37,0,78,0,39,0,14,0,66,0\n33,0,24,0,57,0,13,0,16,0,69,0\n58,0,20,0,35,0,81,0,34,0,76,0\n72,0,42,0,71,0,25,0,32,0,43,0\n67,0,6,0,9,0,54,0,68,0,84,0\n15,0,62,0,52,0,59,0,53,0,63,0\n82,0,27,0,46,0,4,0,85,0,29,0\n37,0,12,0,70,0,73,0,18,0,83,0\n23,0,21,0,1,0,31,0,38,0,57,0\n7,0,79,0,50,0,49,0,33,0,76,0\n69,0,81,0,45,0,44,0,22,0,26,0\n16,0,48,0,65,0,47,0,40,0,41,0\n58,0,78,0,60,0,8,0,75,0,28,0\n2,0,36,0,51,0,17,0,20,0,55,0\n74,0,13,0,35,0,61,0,11,0,39,0\n30,0,80,0,14,0,56,0,34,0,24,0\n10,0,5,0,66,0,77,0,64,0,19,0\n26,0,43,0,23,0,3,0,82,0,21,0\n25,0,85,0,59,0,12,0,9,0,22,0\n50,0,54,0,38,0,46,0,47,0,32,0\n55,0,4,0,79,0,8,0,58,0,81,0\n11,0,75,0,27,0,40,0,16,0,42,0\n49,0,72,0,13,0,2,0,31,0,60,0\n7,0,64,0,36,0,52,0,24,0,48,0\n29,0,84,0,18,0,78,0,63,0,35,0\n41,0,57,0,30,0,74,0,76,0,67,0\n68,0,15,0,10,0,28,0,69,0,66,0\n19,0,3,0,44,0,56,0,73,0,61,0\n53,0,6,0,77,0,37,0,14,0,83,0\n39,0,80,0,5,0,51,0,45,0,33,0\n34,0,70,0,62,0,1,0,17,0,65,0\n71,0,16,0,27,0,20,0,22,0,38,0\n"
  },
  {
    "path": "schedules/85_2.csv",
    "content": "22,0,57,0,44,0,72,0,8,0,30,0\n3,0,33,0,63,0,17,0,47,0,20,0\n12,0,54,0,26,0,28,0,36,0,65,0\n80,0,68,0,52,0,15,0,13,0,25,0\n41,0,10,0,14,0,56,0,59,0,40,0\n35,0,84,0,49,0,7,0,50,0,78,0\n60,0,61,0,1,0,81,0,4,0,58,0\n76,0,85,0,64,0,73,0,27,0,79,0\n6,0,69,0,74,0,37,0,34,0,32,0\n23,0,48,0,51,0,46,0,82,0,39,0\n67,0,19,0,43,0,71,0,5,0,62,0\n83,0,55,0,70,0,29,0,53,0,2,0\n66,0,42,0,45,0,18,0,38,0,31,0\n9,0,16,0,21,0,77,0,75,0,11,0\n13,0,85,0,58,0,24,0,20,0,57,0\n32,0,14,0,28,0,76,0,22,0,68,0\n73,0,39,0,37,0,60,0,54,0,40,0\n27,0,15,0,7,0,6,0,65,0,10,0\n19,0,55,0,30,0,49,0,4,0,63,0\n56,0,47,0,72,0,31,0,83,0,74,0\n71,0,41,0,75,0,33,0,45,0,23,0\n38,0,25,0,9,0,78,0,48,0,12,0\n2,0,5,0,42,0,51,0,35,0,1,0\n64,0,46,0,36,0,16,0,53,0,62,0\n70,0,52,0,17,0,82,0,43,0,44,0\n34,0,29,0,81,0,84,0,26,0,11,0\n59,0,77,0,50,0,69,0,66,0,67,0\n21,0,8,0,24,0,80,0,61,0,18,0\n79,0,72,1,40,1,3,0,19,1,32,1\n"
  },
  {
    "path": "schedules/85_3.csv",
    "content": "85,0,44,0,39,0,22,0,21,0,70,0\n74,0,42,0,12,0,55,0,1,0,36,0\n19,0,30,0,50,0,2,0,40,0,80,0\n11,0,51,0,79,0,17,0,10,0,35,0\n59,0,66,0,78,0,31,0,5,0,60,0\n62,0,18,0,20,0,34,0,75,0,6,0\n64,0,15,0,72,0,4,0,49,0,26,0\n41,0,37,0,38,0,63,0,52,0,54,0\n71,0,68,0,13,0,77,0,69,0,14,0\n61,0,32,0,7,0,25,0,45,0,43,0\n29,0,46,0,67,0,9,0,33,0,57,0\n56,0,27,0,81,0,8,0,83,0,84,0\n73,0,23,0,82,0,24,0,3,0,65,0\n48,0,47,0,58,0,16,0,53,0,28,0\n76,0,31,0,22,0,54,0,17,0,12,0\n85,1,41,0,80,0,14,1,79,0,4,0\n59,1,35,0,45,0,39,0,68,0,6,0\n63,0,67,0,62,0,71,0,74,0,43,0\n83,0,7,0,13,0,1,0,60,0,26,0\n61,0,36,0,24,0,38,0,19,0,49,0\n18,0,69,0,21,0,48,0,37,0,51,0\n5,0,15,0,25,0,47,0,73,0,56,0\n34,0,33,0,16,0,30,0,78,0,84,0\n40,0,81,0,65,0,46,0,32,0,53,0\n3,0,11,0,29,0,8,0,44,0,72,0\n23,0,75,0,28,0,9,0,70,0,55,0\n20,0,77,0,10,0,50,0,52,0,58,0\n2,0,42,0,66,0,76,0,64,0,27,0\n57,0,43,0,35,0,82,0,38,0,48,0\n1,0,45,0,14,0,31,0,15,0,16,0\n51,0,85,0,47,0,74,0,83,0,40,0\n26,0,54,0,84,0,80,0,62,0,5,0\n28,0,60,0,4,0,81,0,3,0,19,0\n46,0,58,0,12,0,23,0,59,0,69,0\n8,0,78,0,55,0,52,0,22,0,18,0\n82,0,2,0,9,0,11,0,39,0,61,0\n68,0,30,0,63,0,72,0,27,0,24,0\n6,0,33,0,13,0,66,0,73,0,79,0\n10,0,64,0,34,0,71,0,21,0,29,0\n32,0,76,0,70,0,67,0,77,0,49,0\n75,0,41,0,57,0,25,0,44,0,42,0\n50,0,36,0,56,0,7,0,37,0,65,0\n53,0,17,0,14,0,20,0,85,0,59,0\n"
  },
  {
    "path": "schedules/85_4.csv",
    "content": "42,0,31,0,46,0,5,0,53,0,56,0\n7,0,1,0,82,0,18,0,45,0,70,0\n39,0,80,0,10,0,40,0,2,0,62,0\n60,0,78,0,38,0,34,0,24,0,36,0\n55,0,4,0,16,0,28,0,32,0,85,0\n30,0,41,0,72,0,19,0,64,0,37,0\n57,0,20,0,15,0,83,0,81,0,52,0\n43,0,61,0,84,0,68,0,9,0,12,0\n27,0,26,0,77,0,63,0,76,0,13,0\n48,0,29,0,69,0,75,0,22,0,17,0\n21,0,47,0,33,0,51,0,79,0,14,0\n66,0,54,0,65,0,67,0,11,0,58,0\n50,0,74,0,44,0,49,0,3,0,6,0\n73,0,35,0,23,0,25,0,8,0,59,0\n84,0,2,0,20,0,71,0,64,0,24,0\n19,0,16,0,80,0,81,0,31,0,43,0\n61,0,72,0,52,0,46,0,76,0,70,0\n12,0,69,0,33,0,13,0,7,0,4,0\n32,0,62,0,45,0,75,0,77,0,11,0\n78,0,17,0,5,0,27,0,58,0,41,0\n82,0,28,0,38,0,25,0,15,0,39,0\n55,0,48,0,79,0,42,0,50,0,73,0\n40,0,71,0,49,0,53,0,57,0,37,0\n51,0,68,0,54,0,35,0,36,0,56,0\n63,0,8,0,74,0,47,0,9,0,85,0\n34,0,83,0,59,0,10,0,44,0,66,0\n1,0,67,0,23,0,29,0,3,0,26,0\n18,0,6,0,14,0,65,0,22,0,30,0\n21,0,39,0,43,0,60,0,4,0,27,0\n64,1,70,0,75,0,33,1,78,0,53,0\n76,0,5,0,11,0,79,0,19,0,49,0\n15,0,17,0,80,0,51,0,73,0,71,0\n40,0,9,0,46,0,54,0,59,0,69,0\n10,0,29,0,57,0,74,0,45,0,68,0\n47,0,7,0,37,0,65,0,32,0,31,0\n13,0,56,0,30,0,60,0,28,0,48,0\n35,0,63,0,67,0,16,0,44,0,18,0\n22,0,77,0,12,0,23,0,24,0,42,0\n81,0,3,0,82,0,14,0,85,0,34,0\n38,0,2,0,58,0,52,0,21,0,1,0\n62,0,26,0,50,0,72,0,8,0,84,0\n25,0,83,0,41,0,61,0,55,0,36,0\n6,0,66,0,47,0,20,0,80,0,70,0\n18,0,28,0,51,0,69,0,37,0,76,0\n45,0,64,0,23,0,16,0,65,0,39,0\n9,0,71,0,60,0,77,0,35,0,33,0\n12,0,19,0,34,0,54,0,57,0,48,0\n52,0,53,0,22,0,13,0,67,0,59,0\n75,0,50,0,5,0,63,0,83,0,21,0\n3,0,8,0,7,0,66,0,55,0,27,0\n49,0,32,0,68,0,30,0,20,0,46,0\n25,0,58,0,24,0,72,0,43,0,79,0\n29,0,14,0,36,0,44,0,42,0,2,0\n41,0,40,0,73,0,38,0,81,0,74,0\n11,0,85,0,31,0,78,0,1,0,84,0\n6,0,10,0,4,0,82,0,17,0,26,0\n61,0,56,0,64,0,62,0,15,0,33,0\n"
  },
  {
    "path": "schedules/85_5.csv",
    "content": "71,0,50,0,78,0,4,0,82,0,27,0\n19,0,64,0,63,0,54,0,35,0,47,0\n65,0,16,0,10,0,18,0,84,0,31,0\n7,0,21,0,72,0,85,0,9,0,42,0\n83,0,68,0,48,0,29,0,56,0,39,0\n20,0,57,0,24,0,28,0,14,0,55,0\n22,0,59,0,34,0,36,0,26,0,1,0\n17,0,25,0,79,0,33,0,12,0,3,0\n2,0,37,0,44,0,69,0,15,0,32,0\n49,0,23,0,62,0,81,0,41,0,70,0\n45,0,11,0,74,0,5,0,53,0,58,0\n43,0,8,0,66,0,75,0,80,0,46,0\n52,0,67,0,76,0,30,0,61,0,40,0\n51,0,73,0,6,0,77,0,38,0,13,0\n60,0,84,0,35,0,1,0,79,0,9,0\n47,0,42,0,69,0,57,0,29,0,59,0\n31,0,33,0,50,0,24,0,7,0,62,0\n49,0,16,0,20,0,12,0,78,0,22,0\n85,0,80,0,10,0,56,0,36,0,44,0\n74,0,71,0,68,0,63,0,28,0,17,0\n21,0,18,0,5,0,43,0,76,0,81,0\n82,0,58,0,15,0,48,0,64,0,60,0\n61,0,25,0,53,0,13,0,27,0,72,0\n67,0,73,0,26,0,8,0,19,0,55,0\n39,0,41,0,11,0,77,0,4,0,52,0\n83,0,46,0,70,0,38,0,37,0,65,0\n32,0,75,0,54,0,6,0,34,0,23,0\n51,0,40,0,14,0,45,0,3,0,66,0\n30,0,68,0,57,0,2,0,60,0,62,0\n7,1,44,0,64,0,71,0,20,0,18,0\n13,0,29,0,19,0,81,0,31,0,12,0\n27,0,15,0,77,0,59,0,9,0,67,0\n47,0,41,0,78,0,10,0,1,0,37,0\n63,0,11,0,75,0,25,0,73,0,76,0\n52,0,72,0,34,0,3,0,83,0,84,0\n66,0,50,0,21,0,79,0,28,0,61,0\n51,0,2,0,58,0,80,0,26,0,23,0\n70,0,6,0,55,0,5,0,36,0,16,0\n30,0,42,0,43,0,33,0,65,0,48,0\n14,0,39,0,35,0,22,0,8,0,74,0\n32,0,56,0,40,0,53,0,38,0,82,0\n85,0,54,0,69,0,45,0,46,0,4,0\n49,0,17,0,9,0,24,0,52,0,66,0\n77,0,20,0,72,0,50,0,10,0,19,0\n62,0,27,0,83,0,51,0,21,0,64,0\n80,0,59,0,33,0,37,0,11,0,6,0\n34,0,28,0,65,0,5,0,7,0,8,0\n58,0,38,0,12,0,63,0,57,0,39,0\n31,0,48,0,22,0,47,0,61,0,71,0\n30,0,55,0,82,0,49,0,1,0,25,0\n3,0,13,0,26,0,60,0,56,0,43,0\n70,0,24,0,69,0,40,0,78,0,73,0\n46,0,23,0,35,0,53,0,44,0,68,0\n42,0,79,0,81,0,54,0,14,0,16,0\n36,0,84,0,4,0,29,0,76,0,15,0\n74,0,67,0,41,0,85,0,2,0,75,0\n17,0,32,0,39,0,45,0,18,0,30,0\n26,0,7,0,48,0,27,0,38,0,11,0\n56,0,65,0,78,0,72,0,63,0,62,0\n33,0,60,0,10,0,23,0,83,0,22,0\n28,0,44,0,9,0,47,0,82,0,51,0\n29,0,52,0,43,0,50,0,54,0,25,0\n14,0,84,0,61,0,49,0,69,0,64,0\n21,0,12,0,70,0,74,0,34,0,15,0\n42,0,1,0,13,0,80,0,20,0,40,0\n73,0,37,0,31,0,68,0,66,0,36,0\n3,0,18,0,24,0,46,0,6,0,67,0\n4,0,75,0,81,0,58,0,55,0,35,0\n8,0,57,0,53,0,17,0,41,0,16,0\n77,0,5,0,71,0,79,0,85,0,32,0\n45,0,2,0,76,0,59,0,19,0,7,0\n"
  },
  {
    "path": "schedules/85_6.csv",
    "content": "23,0,31,0,63,0,60,0,17,0,34,0\n7,0,11,0,64,0,70,0,47,0,5,0\n59,0,27,0,80,0,52,0,54,0,8,0\n77,0,65,0,39,0,4,0,1,0,55,0\n84,0,32,0,46,0,85,0,18,0,40,0\n62,0,20,0,42,0,71,0,22,0,50,0\n28,0,16,0,66,0,25,0,43,0,36,0\n75,0,35,0,6,0,57,0,79,0,56,0\n82,0,72,0,14,0,12,0,61,0,19,0\n13,0,37,0,10,0,74,0,73,0,58,0\n44,0,45,0,29,0,49,0,38,0,83,0\n67,0,53,0,21,0,9,0,81,0,76,0\n69,0,48,0,26,0,24,0,78,0,68,0\n33,0,2,0,51,0,30,0,15,0,41,0\n3,0,77,0,63,0,27,0,5,0,22,0\n1,0,7,0,14,0,85,0,59,0,20,0\n74,0,17,0,43,0,46,0,72,0,47,0\n25,0,29,0,6,0,84,0,23,0,61,0\n66,0,58,0,38,0,39,0,34,0,79,0\n68,0,52,0,32,0,36,0,50,0,67,0\n48,0,60,0,55,0,82,0,2,0,9,0\n53,0,10,0,62,0,24,0,11,0,35,0\n37,0,26,0,33,0,64,0,80,0,75,0\n4,0,45,0,40,0,13,0,56,0,78,0\n3,0,49,0,81,0,19,0,15,0,8,0\n71,0,16,0,69,0,44,0,41,0,54,0\n83,0,30,0,31,0,18,0,76,0,28,0\n12,0,42,0,51,0,70,0,65,0,73,0\n57,0,50,0,46,0,21,0,82,0,39,0\n79,0,14,0,64,0,17,0,22,0,29,0\n72,0,45,0,60,0,33,0,1,0,25,0\n78,0,85,0,9,0,77,0,52,0,61,0\n19,0,24,0,34,0,71,0,56,0,80,0\n55,0,6,0,68,0,58,0,49,0,16,0\n43,0,23,0,27,0,37,0,69,0,67,0\n81,0,54,0,51,0,47,0,83,0,36,0\n13,0,38,0,28,0,84,0,3,0,48,0\n65,0,32,0,63,0,59,0,35,0,76,0\n21,0,11,0,44,0,2,0,18,0,74,0\n7,0,41,0,53,0,73,0,31,0,75,0\n12,0,15,0,57,0,5,0,20,0,4,0\n8,0,70,0,30,0,66,0,62,0,26,0\n40,0,23,0,55,0,10,0,42,0,52,0\n50,0,85,0,51,0,80,0,38,0,72,0\n79,0,36,0,82,0,71,0,27,0,49,0\n16,0,9,0,11,0,13,0,63,0,29,0\n61,0,28,0,75,0,2,0,58,0,59,0\n20,0,17,0,25,0,81,0,78,0,37,0\n4,0,19,0,18,0,7,0,6,0,26,0\n34,0,47,0,22,0,69,0,53,0,8,0\n1,0,3,0,44,0,24,0,76,0,12,0\n68,0,30,0,35,0,84,0,77,0,21,0\n57,0,42,0,54,0,43,0,33,0,31,0\n46,0,60,0,66,0,65,0,41,0,56,0\n62,0,48,0,73,0,5,0,32,0,45,0\n10,0,70,0,39,0,67,0,14,0,83,0\n64,0,74,0,36,0,40,0,15,0,61,0\n9,0,25,0,58,0,44,0,51,0,7,0\n26,0,52,0,1,0,17,0,35,0,13,0\n38,0,81,0,75,0,27,0,55,0,12,0\n49,0,76,0,57,0,37,0,77,0,66,0\n11,0,59,0,41,0,34,0,68,0,45,0\n84,0,83,0,20,0,43,0,19,0,53,0\n23,0,50,0,73,0,79,0,28,0,33,0\n65,0,21,0,69,0,62,0,31,0,14,0\n60,0,54,0,78,0,30,0,64,0,32,0\n2,0,8,0,5,0,6,0,46,0,71,0\n70,0,29,0,40,0,80,0,3,0,82,0\n15,0,22,0,18,0,16,0,10,0,72,0\n56,0,39,0,48,0,47,0,42,0,85,0\n67,0,74,0,63,0,24,0,4,0,66,0\n45,0,28,0,17,0,7,0,27,0,65,0\n9,0,1,0,36,0,19,0,57,0,62,0\n31,0,79,0,77,0,51,0,13,0,32,0\n37,0,52,0,70,0,6,0,60,0,21,0\n33,0,10,0,59,0,69,0,3,0,46,0\n5,0,61,0,56,0,50,0,30,0,49,0\n85,0,8,0,24,0,83,0,23,0,64,0\n12,0,25,0,53,0,54,0,40,0,63,0\n34,0,84,0,26,0,15,0,55,0,44,0\n14,0,73,0,47,0,16,0,38,0,2,0\n78,0,72,0,41,0,42,0,67,0,29,0\n58,0,22,0,80,0,11,0,4,0,48,0\n74,0,76,0,68,0,20,0,82,0,75,0\n71,0,35,0,18,0,39,0,81,0,43,0\n"
  },
  {
    "path": "schedules/85_7.csv",
    "content": "65,0,8,0,9,0,14,0,66,0,29,0\n80,0,2,0,55,0,1,0,13,0,17,0\n24,0,37,0,39,0,69,0,74,0,51,0\n50,0,56,0,32,0,63,0,33,0,25,0\n58,0,42,0,62,0,27,0,46,0,71,0\n12,0,11,0,35,0,64,0,16,0,26,0\n70,0,6,0,45,0,4,0,78,0,47,0\n72,0,3,0,19,0,21,0,67,0,61,0\n59,0,43,0,83,0,36,0,28,0,77,0\n15,0,84,0,44,0,60,0,5,0,79,0\n68,0,30,0,52,0,49,0,57,0,75,0\n48,0,85,0,41,0,54,0,7,0,10,0\n18,0,38,0,23,0,73,0,22,0,76,0\n81,0,53,0,82,0,34,0,31,0,20,0\n40,0,14,0,78,0,37,0,19,0,27,0\n42,0,36,0,50,0,16,0,2,0,9,0\n74,0,6,0,28,0,60,0,3,0,11,0\n43,0,47,0,49,0,29,0,55,0,35,0\n48,0,1,0,33,0,44,0,67,0,69,0\n61,0,73,0,46,0,45,0,63,0,75,0\n84,0,64,0,20,0,68,0,23,0,41,0\n18,0,81,0,65,0,72,0,56,0,58,0\n5,0,76,0,4,0,83,0,52,0,80,0\n62,0,82,0,10,0,22,0,13,0,24,0\n21,0,51,0,66,0,70,0,85,0,17,0\n54,0,34,0,26,0,15,0,40,0,32,0\n57,0,53,0,79,0,59,0,38,0,12,0\n7,0,8,0,77,0,30,0,71,0,39,0\n31,0,28,0,47,0,25,0,69,0,75,0\n1,1,61,0,20,0,16,1,65,0,74,0\n82,1,48,0,35,0,6,1,80,0,56,0\n63,0,52,0,14,0,43,1,41,0,60,0\n21,0,27,0,83,0,81,0,50,0,54,0\n17,0,78,0,3,0,68,0,44,0,22,0\n23,0,67,0,30,0,12,0,2,0,24,0\n58,0,79,0,19,0,11,0,34,0,70,0\n26,0,57,0,77,0,73,0,42,0,66,0\n76,0,40,0,33,0,85,0,45,0,31,0\n7,0,15,0,62,0,72,0,4,0,53,0\n9,0,10,0,71,0,49,0,5,0,32,0\n46,0,59,0,18,0,51,0,84,0,29,0\n64,0,37,0,55,0,38,0,8,0,36,0\n25,0,13,0,48,0,39,0,43,0,11,0\n22,0,67,0,41,0,80,0,70,0,28,0\n74,0,47,0,81,0,14,0,30,0,33,0\n50,0,15,0,73,0,82,0,52,0,65,0\n75,0,23,0,6,0,83,0,32,0,79,0\n56,0,51,0,16,0,68,0,27,0,31,0\n24,0,5,0,45,0,72,0,55,0,26,0\n21,0,63,0,29,0,7,0,57,0,1,0\n60,0,12,0,8,0,40,0,61,0,62,0\n20,0,44,0,2,0,4,0,10,0,58,0\n53,0,69,0,54,0,77,0,78,0,46,0\n36,0,39,0,34,0,18,0,49,0,66,0\n9,0,85,0,3,0,25,0,59,0,64,0\n37,0,35,0,42,0,13,0,84,0,76,0\n19,0,71,0,43,0,17,0,38,0,74,0\n31,0,55,0,41,0,6,0,57,0,61,0\n83,0,68,0,12,0,82,0,29,0,72,0\n11,0,15,0,2,0,56,0,14,0,22,0\n27,0,18,0,77,0,20,0,79,0,33,0\n7,0,80,0,51,0,36,0,78,0,75,0\n49,0,37,0,50,0,3,0,62,0,48,0\n44,0,16,0,34,0,85,0,23,0,71,0\n46,0,40,0,10,0,28,0,64,0,81,0\n69,0,13,0,45,0,21,0,8,0,58,0\n4,0,84,0,25,0,19,0,73,0,1,0\n39,0,38,0,54,0,9,0,35,0,60,0\n76,0,53,0,65,0,26,0,30,0,70,0\n63,0,59,0,67,0,17,0,42,0,5,0\n24,0,32,0,66,0,52,0,47,0,3,0\n61,0,29,0,33,0,37,0,10,0,80,0\n69,0,49,0,79,0,16,0,41,0,81,0\n27,0,45,0,7,0,28,0,12,0,34,0\n4,0,40,0,82,0,11,0,23,0,57,0\n74,0,77,0,9,0,75,0,55,0,84,0\n78,0,60,0,42,0,83,0,1,0,18,0\n51,0,13,0,64,0,63,0,30,0,15,0\n36,0,17,0,31,0,65,0,48,0,24,0\n66,0,20,0,72,0,43,0,76,0,46,0\n52,0,85,0,38,0,26,0,67,0,56,0\n32,0,22,0,19,0,59,0,8,0,35,0\n68,0,47,0,50,0,39,0,5,0,58,0\n53,0,21,0,71,0,73,0,2,0,6,0\n25,0,70,0,14,0,54,0,62,0,44,0\n17,0,23,0,61,0,7,0,81,0,9,0\n10,0,65,0,3,0,43,0,51,0,45,0\n34,0,29,0,74,0,78,0,41,0,76,0\n82,0,60,0,75,0,66,0,27,0,59,0\n39,0,16,0,55,0,32,0,4,0,67,0\n85,0,80,0,57,0,50,0,69,0,20,0\n14,0,1,0,58,0,35,0,53,0,24,0\n25,0,6,0,12,0,49,0,15,0,77,0\n33,0,26,0,46,0,36,0,68,0,19,0\n73,0,56,0,30,0,44,0,83,0,37,0\n84,0,11,0,62,0,63,0,47,0,38,0\n31,0,52,0,22,0,64,0,42,0,21,0\n54,0,28,0,13,0,79,0,72,0,71,0\n2,0,70,0,5,0,48,0,18,0,40,0\n8,0,1,0,82,0,16,0,6,0,43,0\n"
  },
  {
    "path": "schedules/85_8.csv",
    "content": "33,0,71,0,63,0,37,0,5,0,77,0\n81,0,44,0,16,0,67,0,49,0,43,0\n41,0,32,0,58,0,55,0,7,0,40,0\n31,0,27,0,10,0,76,0,53,0,61,0\n4,0,47,0,68,0,57,0,66,0,85,0\n79,0,39,0,3,0,74,0,18,0,21,0\n75,0,26,0,38,0,25,0,1,0,69,0\n22,0,56,0,24,0,80,0,65,0,84,0\n8,0,6,0,23,0,14,0,35,0,12,0\n2,0,29,0,70,0,52,0,17,0,20,0\n13,0,54,0,59,0,78,0,50,0,28,0\n51,0,45,0,83,0,60,0,48,0,73,0\n42,0,30,0,46,0,82,0,62,0,72,0\n19,0,64,0,9,0,36,0,15,0,34,0\n11,0,49,0,76,0,32,0,3,0,33,0\n18,0,85,0,63,0,69,0,67,0,53,0\n16,0,7,0,70,0,39,0,23,0,77,0\n22,0,28,0,1,0,8,0,61,0,29,0\n84,0,81,0,51,0,52,0,26,0,59,0\n71,0,65,0,74,0,6,0,43,0,47,0\n57,0,79,0,62,0,40,0,36,0,44,0\n54,0,34,0,20,0,56,0,31,0,30,0\n35,0,66,0,9,0,10,0,50,0,75,0\n46,0,27,0,78,0,11,0,2,0,83,0\n25,0,41,0,72,0,68,0,45,0,64,0\n21,0,38,0,17,0,15,0,42,0,24,0\n14,0,80,0,55,0,13,0,4,0,48,0\n58,0,19,0,82,0,60,0,37,0,12,0\n5,0,16,0,36,0,73,0,3,0,1,0\n23,1,59,0,74,0,66,1,30,0,33,0\n34,1,69,0,70,0,27,1,84,0,35,0\n9,0,51,0,44,0,6,0,85,0,25,0\n26,0,2,0,43,0,64,0,57,0,8,0\n68,0,14,0,29,0,24,0,71,0,79,0\n18,0,62,0,12,0,41,0,56,0,83,0\n75,0,81,0,4,0,17,0,82,0,28,0\n61,0,5,0,48,0,50,0,52,0,58,0\n80,0,47,0,39,0,63,0,10,0,49,0\n53,0,19,0,40,0,20,0,46,0,38,0\n15,0,60,0,55,0,22,0,54,0,72,0\n13,0,73,0,7,0,67,0,37,0,76,0\n78,0,45,0,31,0,21,0,32,0,77,0\n65,0,42,0,68,0,11,0,70,0,81,0\n85,0,83,0,14,0,17,0,36,0,50,0\n29,0,82,0,44,0,56,0,5,0,39,0\n26,0,3,0,48,0,66,0,19,0,41,0\n60,0,18,0,59,0,75,0,43,0,80,0\n28,0,64,0,84,0,49,0,40,0,37,0\n51,0,32,0,46,0,8,0,13,0,10,0\n74,0,53,0,45,0,34,0,4,0,12,0\n2,0,73,0,30,0,79,0,15,0,47,0\n72,0,21,0,57,0,1,0,27,0,58,0\n7,0,33,0,61,0,25,0,54,0,65,0\n52,0,71,0,69,0,23,0,42,0,78,0\n24,0,55,0,67,0,20,0,77,0,6,0\n62,0,63,0,31,0,35,0,38,0,11,0\n22,0,16,0,41,0,76,0,9,0,46,0\n17,0,39,0,13,0,26,0,30,0,68,0\n70,0,37,0,59,0,3,0,56,0,57,0\n15,0,1,0,66,0,14,0,43,0,45,0\n83,0,61,0,84,0,4,0,23,0,44,0\n21,0,85,0,49,0,55,0,75,0,5,0\n52,0,11,0,12,0,7,0,47,0,28,0\n72,0,10,0,38,0,36,0,78,0,18,0\n20,0,65,0,50,0,60,0,32,0,69,0\n25,0,82,0,71,0,22,0,31,0,2,0\n63,0,74,0,24,0,16,0,27,0,19,0\n35,0,48,0,29,0,64,0,42,0,76,0\n73,0,8,0,77,0,9,0,62,0,54,0\n80,0,6,0,53,0,79,0,81,0,58,0\n33,0,34,0,1,0,51,0,67,0,40,0\n39,0,69,0,66,0,55,0,12,0,61,0\n20,0,82,0,10,0,59,0,7,0,83,0\n31,0,26,0,46,0,65,0,37,0,85,0\n4,0,43,0,38,0,32,0,27,0,29,0\n30,0,70,0,50,0,49,0,45,0,24,0\n23,0,56,0,76,0,79,0,75,0,19,0\n8,0,34,0,11,0,71,0,21,0,48,0\n73,0,81,0,57,0,78,0,63,0,41,0\n60,0,42,0,13,0,36,0,6,0,33,0\n54,0,47,0,51,0,58,0,16,0,14,0\n68,0,5,0,62,0,53,0,84,0,2,0\n52,0,40,0,15,0,25,0,18,0,35,0\n3,0,80,0,67,0,9,0,28,0,72,0\n17,0,77,0,22,0,74,0,44,0,64,0\n27,0,65,0,12,0,59,0,79,0,48,0\n49,0,4,0,60,0,1,0,71,0,46,0\n43,0,36,0,76,0,63,0,70,0,51,0\n2,0,14,0,75,0,34,0,41,0,39,0\n55,0,25,0,37,0,62,0,47,0,81,0\n68,0,21,0,67,0,10,0,54,0,23,0\n84,0,73,0,50,0,33,0,82,0,38,0\n17,0,7,0,5,0,19,0,8,0,80,0\n32,0,24,0,72,0,52,0,53,0,66,0\n28,0,57,0,77,0,15,0,83,0,69,0\n35,0,58,0,78,0,30,0,3,0,44,0\n40,0,9,0,29,0,13,0,31,0,74,0\n22,0,42,0,45,0,18,0,26,0,20,0\n61,0,56,0,64,0,85,0,16,0,11,0\n6,0,54,0,1,0,63,0,48,0,84,0\n53,0,36,0,82,0,23,0,65,0,49,0\n8,0,66,0,76,0,38,0,81,0,60,0\n59,0,67,0,35,0,46,0,47,0,5,0\n27,0,3,0,77,0,75,0,68,0,51,0\n30,0,52,0,21,0,22,0,43,0,19,0\n25,0,57,0,32,0,16,0,42,0,34,0\n69,0,56,0,4,0,2,0,72,0,7,0\n55,0,11,0,79,0,9,0,45,0,17,0\n6,0,15,0,37,0,41,0,29,0,50,0\n61,0,20,0,78,0,62,0,14,0,74,0\n28,0,10,0,26,0,33,0,44,0,70,0\n12,0,80,0,40,0,85,0,71,0,73,0\n83,0,39,0,64,0,31,0,58,0,24,0\n13,0,23,0,34,0,18,0,66,0,27,0\n"
  },
  {
    "path": "schedules/85_9.csv",
    "content": "15,0,23,0,67,0,8,0,3,0,78,0\n35,0,5,0,21,0,33,0,49,0,85,0\n34,0,58,0,4,0,17,0,73,0,37,0\n84,0,7,0,26,0,36,0,69,0,42,0\n40,0,56,0,48,0,75,0,43,0,83,0\n46,0,25,0,63,0,32,0,65,0,76,0\n22,0,79,0,47,0,50,0,80,0,18,0\n39,0,13,0,11,0,51,0,60,0,2,0\n53,0,70,0,1,0,72,0,45,0,74,0\n77,0,57,0,27,0,44,0,41,0,10,0\n14,0,6,0,55,0,38,0,62,0,31,0\n81,0,61,0,28,0,19,0,20,0,54,0\n29,0,24,0,71,0,9,0,82,0,30,0\n68,0,12,0,64,0,52,0,59,0,66,0\n16,0,15,0,26,0,17,0,46,0,22,0\n69,0,3,0,47,0,70,0,51,0,56,0\n5,0,45,0,8,0,80,0,58,0,41,0\n57,0,37,0,34,0,67,0,2,0,38,0\n55,0,53,0,78,0,18,0,77,0,28,0\n4,0,25,0,79,0,13,0,33,0,14,0\n31,0,76,0,83,0,24,0,60,0,66,0\n30,0,44,0,54,0,40,0,1,0,59,0\n62,0,32,0,68,0,61,0,48,0,11,0\n85,0,6,0,65,0,12,0,20,0,73,0\n35,0,23,0,42,0,72,0,39,0,19,0\n71,0,27,0,74,0,43,0,63,0,84,0\n50,0,16,0,82,0,49,0,64,0,10,0\n21,0,7,0,75,0,81,0,52,0,29,0\n9,0,46,0,57,0,36,0,55,0,45,0\n54,1,62,0,24,0,80,1,79,0,37,0\n38,1,1,0,17,0,76,0,11,0,12,0\n83,0,47,0,32,0,26,0,44,0,58,0\n40,0,39,0,67,0,33,0,27,0,61,0\n77,0,48,0,85,0,84,0,70,0,34,0\n19,0,22,0,64,0,43,0,78,0,21,0\n23,0,73,0,7,0,16,0,5,0,9,0\n42,0,49,0,25,0,3,0,41,0,28,0\n66,0,74,0,6,0,36,0,82,0,51,0\n60,0,65,0,81,0,14,0,53,0,50,0\n30,0,56,0,8,0,68,0,4,0,35,0\n13,0,10,0,63,0,15,0,52,0,72,0\n20,0,69,0,59,0,29,0,18,0,31,0\n71,0,2,0,1,0,75,0,22,0,33,0\n25,0,54,0,9,0,64,0,48,0,57,0\n78,0,42,0,70,0,66,0,73,0,61,0\n16,0,74,0,21,0,40,0,14,0,77,0\n53,0,67,0,56,0,62,0,49,0,76,0\n38,0,39,0,46,0,81,0,41,0,83,0\n52,0,45,0,4,0,6,0,24,0,84,0\n71,0,11,0,10,0,47,0,5,0,55,0\n27,0,20,0,51,0,75,0,80,0,68,0\n65,0,26,0,59,0,13,0,3,0,19,0\n34,0,44,0,28,0,15,0,31,0,7,0\n12,0,2,0,79,0,82,0,69,0,60,0\n23,0,37,0,36,0,30,0,18,0,32,0\n43,0,50,0,17,0,8,0,72,0,85,0\n58,0,35,0,40,0,29,0,63,0,62,0\n22,0,54,0,76,0,5,0,27,0,70,0\n26,0,78,0,52,0,49,0,57,0,74,0\n53,0,38,0,51,0,48,0,10,0,4,0\n81,0,31,0,82,0,73,0,1,0,68,0\n21,0,83,0,6,0,37,0,71,0,15,0\n14,0,18,0,8,0,19,0,9,0,84,0\n23,0,44,0,2,0,25,0,29,0,85,0\n12,0,67,0,13,0,46,0,58,0,42,0\n50,0,11,0,33,0,28,0,7,0,59,0\n17,0,56,0,24,0,64,0,41,0,63,0\n79,0,3,0,36,0,20,0,16,0,43,0\n60,0,61,0,72,0,80,0,34,0,55,0\n65,0,75,0,77,0,47,0,30,0,39,0\n35,0,32,0,45,0,66,0,69,0,27,0\n9,0,51,0,76,0,40,0,15,0,85,0\n29,0,50,0,83,0,57,0,13,0,70,0\n10,0,17,0,6,0,78,0,54,0,2,0\n26,0,38,0,56,0,20,0,82,0,25,0\n55,0,33,0,84,0,3,0,64,0,23,0\n28,0,47,0,73,0,8,0,48,0,74,0\n37,0,75,0,60,0,44,0,46,0,35,0\n66,0,30,0,34,0,21,0,79,0,53,0\n62,0,18,0,16,0,45,0,39,0,12,0\n63,0,36,0,5,0,81,0,67,0,68,0\n58,0,7,0,1,0,77,0,24,0,19,0\n43,0,80,0,14,0,59,0,42,0,32,0\n41,0,71,0,52,0,69,0,61,0,65,0\n72,0,49,0,22,0,31,0,11,0,4,0\n20,0,70,0,33,0,60,0,30,0,10,0\n84,0,28,0,17,0,79,0,51,0,35,0\n81,0,13,0,76,0,6,0,23,0,48,0\n19,0,34,0,83,0,5,0,62,0,74,0\n47,0,25,0,27,0,53,0,37,0,59,0\n80,0,9,0,12,0,63,0,26,0,21,0\n41,0,55,0,85,0,67,0,32,0,1,0\n29,0,49,0,46,0,8,0,66,0,77,0\n36,0,73,0,52,0,14,0,39,0,22,0\n4,0,18,0,64,0,7,0,2,0,40,0\n43,0,15,0,68,0,54,0,69,0,58,0\n45,0,61,0,38,0,50,0,75,0,3,0\n78,0,11,0,72,0,24,0,44,0,65,0\n56,0,31,0,57,0,71,0,16,0,42,0\n82,0,46,0,85,0,27,0,28,0,62,0\n8,0,37,0,22,0,51,0,81,0,12,0\n47,0,20,0,35,0,34,0,1,0,13,0\n80,0,69,0,76,0,73,0,64,0,30,0\n84,0,40,0,60,0,38,0,25,0,5,0\n54,0,33,0,72,0,36,0,83,0,77,0\n59,0,10,0,61,0,23,0,56,0,74,0\n63,0,45,0,48,0,79,0,78,0,7,0\n58,0,3,0,82,0,18,0,57,0,21,0\n31,0,32,0,2,0,50,0,9,0,52,0\n41,0,16,0,19,0,6,0,11,0,53,0\n66,0,44,0,67,0,4,0,39,0,71,0\n49,0,70,0,24,0,14,0,75,0,15,0\n29,0,42,0,55,0,68,0,65,0,17,0\n43,0,10,0,37,0,26,0,28,0,76,0\n64,0,36,0,13,0,27,0,8,0,38,0\n21,0,73,0,60,0,32,0,56,0,54,0\n31,0,30,0,58,0,78,0,51,0,25,0\n11,0,80,0,82,0,83,0,35,0,67,0\n19,0,52,0,70,0,79,0,40,0,46,0\n59,0,63,0,75,0,16,0,4,0,55,0\n1,0,18,0,61,0,49,0,43,0,6,0\n2,0,20,0,77,0,15,0,45,0,42,0\n3,0,74,0,68,0,85,0,22,0,24,0\n81,0,72,0,62,0,47,0,57,0,84,0\n12,0,41,0,50,0,23,0,34,0,71,0\n33,0,9,0,69,0,53,0,44,0,17,0\n5,0,39,0,48,0,14,0,29,0,26,0\n66,0,65,0,80,0,7,0,54,0,38,0\n"
  },
  {
    "path": "schedules/86_1.csv",
    "content": "15,0,12,0,52,0,56,0,33,0,50,0\n25,0,46,0,40,0,64,0,38,0,54,0\n68,0,58,0,35,0,37,0,85,0,48,0\n28,0,1,0,32,0,26,0,42,0,65,0\n74,0,69,0,43,0,13,0,45,0,75,0\n72,0,41,0,82,0,76,0,31,0,20,0\n61,0,18,0,57,0,44,0,10,0,19,0\n51,0,17,0,9,0,80,0,70,0,3,0\n7,0,27,0,73,0,39,0,67,0,62,0\n16,0,59,0,78,0,83,0,47,0,24,0\n77,0,29,0,8,0,63,0,11,0,5,0\n6,0,66,0,84,0,30,0,23,0,60,0\n71,0,49,0,79,0,81,0,36,0,53,0\n4,0,14,0,22,0,21,0,55,0,86,0\n2,0,20,1,10,1,34,0,1,1,33,1\n"
  },
  {
    "path": "schedules/86_10.csv",
    "content": "86,0,6,0,61,0,10,0,58,0,4,0\n62,0,5,0,17,0,42,0,22,0,85,0\n49,0,52,0,54,0,30,0,3,0,24,0\n68,0,28,0,81,0,46,0,63,0,18,0\n65,0,16,0,31,0,64,0,40,0,14,0\n25,0,77,0,15,0,1,0,70,0,45,0\n57,0,71,0,76,0,83,0,44,0,9,0\n84,0,51,0,33,0,34,0,82,0,38,0\n8,0,41,0,35,0,26,0,27,0,13,0\n47,0,66,0,79,0,72,0,69,0,74,0\n55,0,2,0,48,0,19,0,75,0,67,0\n21,0,39,0,32,0,53,0,43,0,37,0\n60,0,23,0,59,0,7,0,73,0,36,0\n56,0,29,0,20,0,80,0,12,0,50,0\n78,0,38,0,64,0,11,0,28,0,71,0\n84,0,6,0,14,0,77,0,57,0,30,0\n42,0,33,0,69,0,58,0,49,0,41,0\n51,0,55,0,16,0,74,0,52,0,35,0\n31,0,66,0,43,0,13,0,17,0,70,0\n53,0,75,0,34,0,22,0,23,0,26,0\n50,0,60,0,3,0,44,0,19,0,40,0\n76,0,82,0,81,0,37,0,72,0,8,0\n21,0,4,0,86,0,47,0,45,0,59,0\n27,0,36,0,78,0,5,0,63,0,79,0\n83,0,24,0,12,0,61,0,39,0,48,0\n85,0,65,0,68,0,2,0,56,0,25,0\n1,0,62,0,15,0,18,0,7,0,20,0\n54,0,73,0,11,0,67,0,10,0,29,0\n80,0,46,0,14,0,9,0,32,0,52,0\n6,1,72,0,21,0,8,1,70,0,49,0\n3,1,4,0,5,0,55,1,57,0,82,0\n13,0,19,0,22,0,36,0,74,0,77,0\n59,0,85,0,78,0,47,0,53,0,61,0\n23,0,43,0,27,0,76,0,62,0,2,0\n65,0,10,0,51,0,83,0,20,0,79,0\n45,0,80,0,7,0,41,0,71,0,16,0\n63,0,44,0,38,0,12,0,35,0,30,0\n34,0,9,0,39,0,58,0,60,0,25,0\n84,0,68,0,29,0,31,0,24,0,67,0\n33,0,26,0,37,0,56,0,73,0,18,0\n64,0,1,0,11,0,50,0,66,0,46,0\n75,0,48,0,28,0,54,0,42,0,15,0\n32,0,81,0,40,0,17,0,69,0,86,0\n62,0,38,0,10,0,57,0,16,0,53,0\n36,0,30,0,4,0,78,0,8,0,43,0\n23,0,58,0,72,0,24,0,68,0,35,0\n59,0,3,0,14,0,71,0,79,0,22,0\n19,0,61,0,18,0,49,0,29,0,64,0\n13,0,63,0,83,0,47,0,80,0,15,0\n66,0,77,0,7,0,9,0,56,0,86,0\n42,0,41,0,44,0,31,0,55,0,81,0\n51,0,48,0,45,0,11,0,37,0,60,0\n75,0,20,0,70,0,5,0,33,0,32,0\n39,0,82,0,65,0,69,0,54,0,46,0\n52,0,67,0,27,0,25,0,50,0,6,0\n12,0,76,0,17,0,21,0,84,0,26,0\n28,0,85,0,74,0,73,0,34,0,40,0\n1,0,58,0,36,0,2,0,44,0,80,0\n86,0,8,0,19,0,51,0,31,0,57,0\n81,0,71,0,47,0,49,0,60,0,66,0\n29,0,45,0,32,0,82,0,23,0,78,0\n9,0,68,0,64,0,75,0,59,0,30,0\n72,0,63,0,61,0,37,0,20,0,3,0\n77,0,50,0,26,0,48,0,85,0,38,0\n42,0,76,0,46,0,4,0,67,0,53,0\n33,0,13,0,14,0,28,0,62,0,55,0\n1,0,73,0,22,0,41,0,52,0,21,0\n74,0,34,0,12,0,6,0,70,0,65,0\n18,0,17,0,83,0,25,0,35,0,54,0\n10,0,40,0,79,0,43,0,24,0,56,0\n16,0,2,0,15,0,39,0,84,0,5,0\n69,0,27,0,68,0,11,0,7,0,61,0\n58,0,76,0,77,0,51,0,32,0,28,0\n67,0,26,0,60,0,82,0,80,0,64,0\n72,0,13,0,34,0,29,0,42,0,71,0\n44,0,66,0,62,0,4,0,52,0,75,0\n57,0,78,0,20,0,40,0,21,0,35,0\n24,0,8,0,50,0,53,0,65,0,45,0\n59,0,56,0,70,0,83,0,19,0,46,0\n30,0,7,0,22,0,55,0,10,0,39,0\n63,0,25,0,73,0,43,0,69,0,16,0\n48,0,31,0,5,0,47,0,18,0,6,0\n15,0,14,0,23,0,74,0,11,0,17,0\n41,0,2,0,37,0,79,0,9,0,38,0\n86,0,27,0,49,0,54,0,1,0,84,0\n33,0,3,0,12,0,81,0,85,0,36,0\n75,0,39,0,46,0,71,0,40,0,51,0\n8,0,61,0,80,0,77,0,73,0,42,0\n6,0,29,0,28,0,20,0,44,0,22,0\n69,0,23,0,5,0,83,0,60,0,30,0\n65,0,58,0,48,0,76,0,7,0,78,0\n79,0,49,0,19,0,16,0,26,0,32,0\n34,0,3,0,11,0,86,0,43,0,35,0\n45,0,85,0,52,0,84,0,18,0,13,0\n55,0,37,0,70,0,68,0,36,0,10,0\n53,0,12,0,25,0,66,0,72,0,2,0\n24,0,64,0,4,0,41,0,33,0,15,0\n82,0,14,0,31,0,21,0,56,0,27,0\n54,0,74,0,57,0,63,0,50,0,59,0\n47,0,67,0,38,0,1,0,17,0,9,0\n62,0,45,0,39,0,81,0,6,0,73,0\n18,0,70,0,86,0,42,0,23,0,79,0\n13,0,30,0,53,0,58,0,16,0,20,0\n8,0,52,0,71,0,48,0,68,0,33,0\n11,0,75,0,41,0,12,0,82,0,77,0\n40,0,4,0,55,0,83,0,27,0,29,0\n78,0,37,0,46,0,17,0,24,0,57,0\n85,0,67,0,72,0,43,0,7,0,51,0\n54,0,19,0,80,0,81,0,34,0,14,0\n26,0,9,0,5,0,28,0,1,0,65,0\n64,0,21,0,74,0,25,0,10,0,44,0\n84,0,47,0,60,0,3,0,56,0,62,0\n76,0,69,0,38,0,31,0,59,0,36,0\n66,0,35,0,22,0,32,0,15,0,61,0\n50,0,49,0,55,0,2,0,63,0,17,0\n57,0,18,0,58,0,12,0,27,0,75,0\n29,0,1,0,79,0,8,0,39,0,85,0\n52,0,81,0,7,0,5,0,64,0,34,0\n43,0,42,0,84,0,9,0,20,0,19,0\n83,0,36,0,28,0,41,0,45,0,72,0\n25,0,24,0,22,0,11,0,26,0,86,0\n78,0,10,0,2,0,77,0,3,0,31,0\n6,0,63,0,40,0,66,0,76,0,23,0\n56,0,54,0,32,0,38,0,4,0,13,0\n30,0,71,0,74,0,67,0,62,0,82,0\n50,0,51,0,73,0,14,0,68,0,47,0\n49,0,44,0,59,0,37,0,65,0,15,0\n35,0,70,0,53,0,80,0,69,0,48,0\n61,0,46,0,16,0,60,0,21,0,33,0\n77,0,20,0,39,0,31,0,52,0,23,0\n12,0,9,0,40,0,22,0,8,0,54,0\n24,0,71,0,32,0,18,0,36,0,55,0\n73,0,27,0,17,0,72,0,64,0,3,0\n56,0,67,0,44,0,78,0,45,0,34,0\n79,0,7,0,37,0,84,0,25,0,28,0\n53,0,1,0,83,0,13,0,6,0,68,0\n63,0,11,0,21,0,19,0,62,0,58,0\n74,0,38,0,80,0,49,0,5,0,46,0\n57,0,47,0,43,0,65,0,29,0,33,0\n51,0,81,0,2,0,70,0,26,0,4,0\n82,0,16,0,66,0,42,0,59,0,48,0\n60,0,35,0,10,0,75,0,85,0,14,0\n30,0,86,0,41,0,76,0,50,0,61,0\n15,0,6,0,3,0,69,0,8,0,55,0\n"
  },
  {
    "path": "schedules/86_11.csv",
    "content": "84,0,44,0,21,0,48,0,29,0,7,0\n54,0,12,0,78,0,5,0,77,0,75,0\n20,0,76,0,56,0,11,0,52,0,86,0\n65,0,24,0,32,0,13,0,71,0,28,0\n34,0,51,0,15,0,27,0,19,0,59,0\n43,0,45,0,30,0,80,0,47,0,58,0\n50,0,64,0,2,0,22,0,8,0,70,0\n85,0,67,0,79,0,62,0,73,0,10,0\n17,0,26,0,83,0,69,0,82,0,38,0\n40,0,9,0,60,0,1,0,4,0,61,0\n39,0,37,0,49,0,46,0,3,0,25,0\n42,0,68,0,53,0,66,0,41,0,72,0\n81,0,23,0,35,0,31,0,55,0,36,0\n14,0,63,0,57,0,6,0,16,0,18,0\n74,0,24,0,86,0,33,0,8,0,10,0\n44,0,38,0,50,0,47,0,65,0,13,0\n51,0,80,0,61,0,28,0,84,0,64,0\n59,0,76,0,45,0,7,0,5,0,83,0\n3,0,52,0,48,0,62,0,19,0,46,0\n36,0,71,0,41,0,9,0,49,0,58,0\n81,0,22,0,15,0,53,0,26,0,60,0\n42,0,63,0,20,0,35,0,25,0,67,0\n72,0,31,0,85,0,11,0,54,0,40,0\n34,0,39,0,69,0,30,0,79,0,78,0\n68,0,21,0,70,0,77,0,14,0,55,0\n66,0,6,0,27,0,43,0,56,0,74,0\n57,0,2,0,75,0,73,0,23,0,17,0\n12,0,82,0,4,0,33,0,32,0,16,0\n29,0,1,0,42,0,18,0,37,0,65,0\n61,1,8,0,19,0,63,1,47,0,11,0\n13,0,3,0,5,0,80,0,9,0,31,0\n60,0,76,0,44,0,85,0,78,0,45,0\n24,0,58,0,79,0,56,0,46,0,15,0\n68,0,10,0,23,0,7,0,52,0,69,0\n27,0,48,0,75,0,26,0,49,0,67,0\n71,0,55,0,30,0,22,0,29,0,59,0\n84,0,86,0,1,0,73,0,16,0,77,0\n62,0,41,0,50,0,6,0,34,0,33,0\n83,0,72,0,4,0,28,0,18,0,35,0\n14,0,17,0,81,0,43,0,32,0,64,0\n2,0,54,0,82,0,53,0,39,0,74,0\n12,0,36,0,25,0,38,0,66,0,70,0\n20,0,51,0,57,0,40,0,37,0,21,0\n47,0,61,0,75,0,69,0,22,0,76,0\n65,0,19,0,1,0,56,0,55,0,41,0\n35,0,13,0,58,0,27,0,77,0,52,0\n85,0,80,0,83,0,6,0,81,0,32,0\n64,0,14,0,74,0,11,0,53,0,44,0\n60,0,23,0,28,0,39,0,63,0,50,0\n51,0,46,0,54,0,29,0,86,0,9,0\n72,0,59,0,78,0,57,0,25,0,10,0\n17,0,45,0,18,0,34,0,68,0,84,0\n42,0,8,0,40,0,79,0,71,0,62,0\n5,0,36,0,48,0,4,0,24,0,73,0\n21,0,26,0,43,0,12,0,31,0,2,0\n67,0,38,0,7,0,82,0,3,0,15,0\n70,0,33,0,30,0,20,0,49,0,66,0\n16,0,47,0,41,0,37,0,74,0,23,0\n68,0,83,0,50,0,11,0,78,0,51,0\n53,0,29,0,27,0,80,0,62,0,63,0\n32,0,75,0,14,0,36,0,84,0,56,0\n4,0,46,0,2,0,34,0,10,0,81,0\n67,0,18,0,8,0,39,0,13,0,17,0\n59,0,70,0,35,0,61,0,24,0,60,0\n58,0,12,0,7,0,69,0,40,0,64,0\n9,0,37,0,28,0,30,0,19,0,26,0\n33,0,15,0,48,0,1,0,76,0,43,0\n57,0,49,0,5,0,38,0,86,0,85,0\n77,0,31,0,20,0,22,0,65,0,79,0\n42,0,73,0,6,0,82,0,45,0,55,0\n44,0,66,0,25,0,16,0,54,0,52,0\n3,0,21,0,74,0,71,0,72,0,60,0\n24,0,78,0,36,0,63,0,64,0,19,0\n41,0,61,0,10,0,12,0,18,0,30,0\n49,0,15,0,85,0,50,0,17,0,29,0\n33,0,39,0,9,0,57,0,68,0,81,0\n37,0,86,0,53,0,34,0,67,0,48,0\n73,0,59,0,52,0,14,0,8,0,80,0\n65,0,26,0,45,0,51,0,23,0,70,0\n1,0,13,0,7,0,72,0,20,0,2,0\n16,0,62,0,31,0,83,0,56,0,47,0\n79,0,43,0,11,0,35,0,75,0,3,0\n44,0,55,0,40,0,32,0,27,0,5,0\n82,0,77,0,46,0,28,0,66,0,69,0\n58,0,38,0,22,0,21,0,54,0,42,0\n84,0,71,0,4,0,76,0,6,0,25,0\n49,0,13,0,81,0,45,0,63,0,1,0\n31,0,50,0,52,0,18,0,59,0,74,0\n86,0,62,0,23,0,61,0,15,0,12,0\n9,0,17,0,16,0,7,0,53,0,35,0\n39,0,77,0,29,0,27,0,72,0,24,0\n54,0,48,0,30,0,83,0,70,0,57,0\n33,0,69,0,67,0,14,0,71,0,51,0\n40,0,20,0,75,0,38,0,68,0,6,0\n55,0,76,0,26,0,58,0,34,0,3,0\n21,0,64,0,66,0,47,0,4,0,85,0\n46,0,84,0,43,0,65,0,8,0,78,0\n22,0,11,0,73,0,37,0,32,0,10,0\n28,0,44,0,56,0,2,0,42,0,36,0\n25,0,80,0,82,0,41,0,60,0,79,0\n19,0,18,0,69,0,5,0,53,0,20,0\n62,0,49,0,54,0,59,0,24,0,68,0\n45,0,71,0,64,0,75,0,16,0,15,0\n72,0,6,0,9,0,12,0,8,0,48,0\n3,0,40,0,84,0,66,0,63,0,83,0\n61,0,33,0,37,0,44,0,58,0,31,0\n78,0,86,0,70,0,4,0,17,0,42,0\n29,0,5,0,47,0,2,0,60,0,14,0\n56,0,73,0,51,0,39,0,38,0,35,0\n80,0,26,0,10,0,77,0,76,0,50,0\n27,0,1,0,11,0,30,0,36,0,21,0\n22,0,32,0,41,0,67,0,46,0,57,0\n79,0,28,0,7,0,55,0,74,0,81,0\n13,0,23,0,19,0,85,0,43,0,25,0\n52,0,34,0,72,0,65,0,82,0,61,0\n14,0,58,0,83,0,20,0,12,0,39,0\n51,0,76,0,38,0,31,0,8,0,60,0\n84,0,10,0,47,0,42,0,35,0,49,0\n78,0,44,0,18,0,9,0,73,0,15,0\n77,0,74,0,30,0,75,0,4,0,63,0\n11,0,69,0,55,0,48,0,16,0,13,0\n25,0,62,0,28,0,17,0,22,0,1,0\n67,0,54,0,65,0,36,0,40,0,80,0\n50,0,34,0,43,0,24,0,7,0,57,0\n52,0,26,0,6,0,79,0,64,0,5,0\n32,0,19,0,66,0,2,0,45,0,86,0\n71,0,85,0,68,0,37,0,82,0,27,0\n33,0,46,0,23,0,53,0,21,0,59,0\n81,0,56,0,29,0,3,0,41,0,70,0\n83,0,13,0,15,0,36,0,61,0,74,0\n20,0,38,0,16,0,80,0,28,0,34,0\n57,0,55,0,60,0,49,0,52,0,12,0\n47,0,7,0,42,0,26,0,32,0,39,0\n65,0,25,0,31,0,14,0,86,0,30,0\n11,0,59,0,77,0,9,0,67,0,2,0\n6,0,17,0,3,0,44,0,51,0,24,0\n18,0,56,0,48,0,23,0,40,0,82,0\n69,0,63,0,43,0,73,0,54,0,41,0\n70,0,5,0,10,0,1,0,58,0,71,0\n4,0,79,0,53,0,27,0,45,0,50,0\n64,0,35,0,68,0,76,0,46,0,29,0\n8,0,62,0,37,0,81,0,66,0,75,0\n22,0,85,0,19,0,72,0,33,0,84,0\n21,0,7,0,61,0,78,0,56,0,25,0\n40,0,86,0,41,0,13,0,26,0,59,0\n83,0,34,0,71,0,77,0,44,0,23,0\n36,0,10,0,16,0,39,0,51,0,43,0\n65,0,12,0,73,0,47,0,68,0,3,0\n4,0,57,0,80,0,42,0,15,0,11,0\n2,0,63,0,38,0,37,0,79,0,72,0\n18,0,60,0,27,0,33,0,64,0,54,0\n67,0,31,0,29,0,58,0,19,0,6,0\n24,0,53,0,1,0,52,0,85,0,75,0\n32,0,74,0,9,0,70,0,76,0,62,0\n30,0,5,0,82,0,81,0,50,0,84,0\n35,0,22,0,14,0,78,0,66,0,48,0\n69,0,49,0,45,0,21,0,28,0,8,0\n17,0,46,0,63,0,55,0,20,0,61,0\n"
  },
  {
    "path": "schedules/86_12.csv",
    "content": "13,0,65,0,15,0,32,0,8,0,36,0\n54,0,16,0,83,0,28,0,69,0,4,0\n75,0,44,0,27,0,42,0,66,0,58,0\n79,0,40,0,45,0,84,0,7,0,72,0\n37,0,62,0,67,0,78,0,43,0,53,0\n71,0,9,0,47,0,74,0,22,0,33,0\n46,0,86,0,30,0,17,0,52,0,3,0\n19,0,10,0,60,0,82,0,35,0,57,0\n29,0,51,0,64,0,41,0,81,0,80,0\n21,0,1,0,34,0,38,0,20,0,26,0\n12,0,5,0,25,0,31,0,85,0,50,0\n14,0,49,0,6,0,23,0,76,0,2,0\n61,0,59,0,70,0,55,0,68,0,73,0\n77,0,48,0,56,0,39,0,18,0,24,0\n63,0,22,0,44,0,11,0,40,0,69,0\n47,0,75,0,52,0,15,0,62,0,7,0\n80,0,8,0,4,0,67,0,19,0,3,0\n10,0,20,0,43,0,5,0,60,0,64,0\n53,0,83,0,57,0,49,0,17,0,66,0\n65,0,85,0,54,0,29,0,70,0,9,0\n84,0,28,0,18,0,59,0,14,0,51,0\n68,0,13,0,31,0,86,0,38,0,6,0\n82,0,39,0,63,0,78,0,74,0,55,0\n71,0,11,0,76,0,35,0,26,0,2,0\n72,0,12,0,23,0,24,0,30,0,56,0\n41,0,25,0,46,0,1,0,36,0,42,0\n79,0,50,0,16,0,21,0,48,0,61,0\n32,0,58,0,33,0,34,0,37,0,73,0\n81,0,27,0,53,0,77,0,45,0,8,0\n74,0,75,0,6,0,59,0,69,0,5,0\n39,0,78,0,19,0,2,0,65,0,20,0\n22,0,28,0,80,0,70,0,66,0,31,0\n55,0,47,0,10,0,41,0,85,0,26,0\n76,0,52,0,72,0,16,0,68,0,51,0\n82,0,25,0,83,0,61,0,13,0,23,0\n57,0,30,0,50,0,15,0,44,0,77,0\n24,0,4,0,86,0,36,0,81,0,33,0\n62,0,18,0,58,0,49,0,21,0,32,0\n79,0,46,0,29,0,63,0,11,0,60,0\n3,0,38,0,43,0,84,0,56,0,54,0\n27,0,40,0,67,0,1,0,73,0,14,0\n35,0,45,0,42,0,64,0,37,0,12,0\n48,0,17,0,9,0,71,0,34,0,7,0\n10,0,83,0,65,0,15,0,74,0,68,0\n78,0,57,0,18,0,69,0,86,0,81,0\n51,0,36,0,63,0,47,0,49,0,50,0\n62,0,11,0,72,0,6,0,66,0,25,0\n19,0,32,0,26,0,46,0,27,0,43,0\n23,0,41,0,39,0,67,0,33,0,79,0\n53,0,24,0,58,0,2,0,5,0,1,0\n21,0,35,0,7,0,70,0,42,0,3,0\n31,0,59,0,22,0,76,0,8,0,60,0\n38,0,17,0,56,0,64,0,82,0,28,0\n85,0,77,0,71,0,16,0,73,0,80,0\n34,0,55,0,54,0,30,0,12,0,13,0\n4,0,20,0,75,0,61,0,45,0,84,0\n44,0,52,0,9,0,14,0,37,0,29,0\n48,0,23,0,78,0,40,0,15,0,46,0\n51,0,53,0,6,0,32,0,10,0,24,0\n68,0,36,0,7,0,60,0,62,0,21,0\n65,0,42,0,72,0,82,0,81,0,47,0\n64,0,74,0,73,0,76,0,31,0,54,0\n70,0,33,0,38,0,5,0,67,0,77,0\n86,0,26,0,56,0,45,0,22,0,14,0\n11,0,59,0,50,0,17,0,43,0,39,0\n28,0,48,0,29,0,27,0,19,0,25,0\n8,0,84,0,34,0,16,0,18,0,2,0\n71,0,69,0,66,0,55,0,3,0,20,0\n83,0,37,0,30,0,80,0,75,0,63,0\n13,0,85,0,40,0,58,0,57,0,79,0\n9,0,49,0,1,0,12,0,52,0,4,0\n44,0,35,0,6,0,41,0,61,0,54,0\n77,0,50,0,62,0,26,0,23,0,29,0\n74,0,53,0,8,0,14,0,46,0,34,0\n66,0,67,0,16,0,10,0,36,0,56,0\n47,0,18,0,64,0,19,0,11,0,5,0\n69,0,32,0,76,0,25,0,60,0,81,0\n9,0,55,0,80,0,75,0,38,0,72,0\n68,0,42,0,2,0,85,0,28,0,63,0\n71,0,1,0,39,0,86,0,83,0,70,0\n61,0,43,0,30,0,41,0,40,0,58,0\n21,0,59,0,45,0,52,0,65,0,57,0\n17,0,7,0,24,0,27,0,4,0,78,0\n82,0,84,0,12,0,44,0,33,0,48,0\n22,0,3,0,13,0,20,0,73,0,51,0\n79,0,49,0,15,0,35,0,31,0,37,0\n23,0,60,0,28,0,71,0,75,0,86,0\n61,0,42,0,10,0,56,0,76,0,9,0\n58,0,14,0,19,0,83,0,11,0,38,0\n70,0,16,0,81,0,62,0,46,0,6,0\n77,0,4,0,66,0,63,0,25,0,65,0\n84,0,5,0,73,0,30,0,36,0,39,0\n40,0,24,0,82,0,34,0,59,0,3,0\n7,0,51,0,67,0,69,0,26,0,12,0\n37,0,54,0,57,0,8,0,47,0,68,0\n15,0,29,0,45,0,17,0,2,0,55,0\n41,0,22,0,18,0,27,0,72,0,50,0\n20,0,52,0,74,0,80,0,48,0,32,0\n1,0,44,0,43,0,35,0,49,0,13,0\n31,0,33,0,53,0,78,0,85,0,21,0\n64,0,36,0,75,0,79,0,26,0,3,0\n68,0,46,0,66,0,67,0,9,0,24,0\n15,0,60,0,58,0,39,0,56,0,6,0\n12,0,57,0,61,0,71,0,63,0,38,0\n5,0,45,0,70,0,32,0,82,0,41,0\n35,0,30,0,34,0,50,0,65,0,28,0\n7,0,25,0,55,0,44,0,53,0,18,0\n69,0,72,0,48,0,13,0,64,0,14,0\n29,0,20,0,8,0,40,0,83,0,33,0\n77,0,52,0,84,0,10,0,31,0,11,0\n85,0,81,0,59,0,23,0,1,0,37,0\n86,0,47,0,79,0,27,0,80,0,76,0\n54,0,62,0,19,0,42,0,17,0,22,0\n51,0,74,0,2,0,21,0,43,0,4,0\n49,0,16,0,60,0,78,0,73,0,38,0\n58,0,65,0,46,0,71,0,50,0,64,0\n72,0,24,0,20,0,67,0,15,0,28,0\n5,0,68,0,56,0,81,0,34,0,44,0\n63,0,1,0,30,0,6,0,8,0,7,0\n40,0,53,0,47,0,35,0,39,0,52,0\n12,0,2,0,3,0,59,0,77,0,83,0\n54,0,33,0,14,0,25,0,80,0,10,0\n66,0,36,0,43,0,45,0,85,0,48,0\n4,0,73,0,26,0,79,0,42,0,18,0\n70,0,76,0,78,0,75,0,19,0,13,0\n22,0,86,0,29,0,74,0,61,0,49,0\n11,0,55,0,32,0,16,0,23,0,57,0\n37,0,41,0,17,0,21,0,69,0,84,0\n82,0,51,0,9,0,27,0,31,0,62,0\n40,0,39,0,81,0,54,0,28,0,66,0\n6,0,45,0,67,0,18,0,83,0,50,0\n78,0,8,0,52,0,71,0,79,0,25,0\n12,0,74,0,10,0,72,0,58,0,70,0\n76,0,4,0,59,0,29,0,30,0,53,0\n5,0,24,0,13,0,16,0,42,0,37,0\n46,0,85,0,38,0,75,0,35,0,51,0\n2,0,32,0,64,0,9,0,7,0,86,0\n41,0,14,0,31,0,20,0,57,0,62,0\n33,0,3,0,49,0,68,0,48,0,11,0\n1,0,69,0,15,0,61,0,34,0,19,0\n55,0,36,0,82,0,22,0,43,0,77,0\n27,0,21,0,73,0,56,0,23,0,63,0\n80,0,17,0,26,0,44,0,65,0,60,0\n84,0,78,0,66,0,47,0,35,0,29,0\n2,0,38,0,81,0,10,0,30,0,79,0\n49,0,7,0,59,0,5,0,54,0,46,0\n24,0,50,0,8,0,69,0,70,0,52,0\n67,0,25,0,34,0,57,0,64,0,22,0\n37,0,19,0,6,0,71,0,40,0,36,0\n1,0,28,0,62,0,45,0,3,0,74,0\n9,0,26,0,63,0,84,0,13,0,41,0\n11,0,73,0,15,0,21,0,86,0,12,0\n47,0,76,0,17,0,58,0,77,0,20,0\n31,0,4,0,32,0,44,0,72,0,56,0\n80,0,18,0,68,0,53,0,82,0,23,0\n60,0,42,0,48,0,83,0,55,0,51,0\n43,0,16,0,33,0,75,0,14,0,65,0\n27,0,61,0,69,0,85,0,39,0,49,0\n13,0,57,0,38,0,29,0,74,0,7,0\n63,0,3,0,81,0,22,0,52,0,58,0\n30,0,71,0,31,0,47,0,32,0,67,0\n54,0,86,0,20,0,37,0,50,0,82,0\n19,0,77,0,23,0,45,0,34,0,51,0\n11,0,56,0,42,0,78,0,80,0,1,0\n70,0,25,0,26,0,15,0,16,0,59,0\n27,0,64,0,55,0,4,0,40,0,68,0\n76,0,85,0,83,0,62,0,84,0,24,0\n79,0,43,0,28,0,9,0,6,0,12,0\n39,0,44,0,21,0,8,0,46,0,10,0\n35,0,14,0,72,0,5,0,36,0,17,0\n61,0,60,0,2,0,18,0,66,0,33,0\n73,0,41,0,65,0,53,0,75,0,48,0\n"
  },
  {
    "path": "schedules/86_13.csv",
    "content": "11,0,24,0,22,0,17,0,30,0,86,0\n82,0,12,0,16,0,27,0,58,0,47,0\n74,0,77,0,26,0,68,0,85,0,28,0\n81,0,29,0,15,0,67,0,79,0,25,0\n18,0,34,0,50,0,3,0,2,0,57,0\n19,0,60,0,69,0,37,0,71,0,44,0\n33,0,75,0,21,0,32,0,59,0,42,0\n1,0,36,0,62,0,46,0,39,0,20,0\n41,0,66,0,64,0,43,0,7,0,10,0\n45,0,13,0,70,0,54,0,14,0,23,0\n53,0,35,0,65,0,63,0,9,0,48,0\n72,0,76,0,49,0,4,0,52,0,78,0\n61,0,84,0,40,0,8,0,51,0,31,0\n38,0,80,0,55,0,83,0,6,0,56,0\n73,0,2,0,58,0,5,0,20,0,37,0\n69,0,67,0,39,0,24,0,77,0,10,0\n60,0,50,0,45,0,41,0,19,0,62,0\n48,0,74,0,68,0,33,0,81,0,54,0\n71,0,34,0,27,0,49,0,59,0,11,0\n17,0,78,0,64,0,79,0,46,0,23,0\n35,0,55,0,4,0,15,0,14,0,66,0\n31,0,36,0,85,0,29,0,8,0,73,0\n53,0,16,0,13,0,6,0,7,0,75,0\n65,0,86,0,82,0,61,0,3,0,1,0\n30,0,83,0,12,0,25,0,26,0,52,0\n32,0,84,0,47,0,18,0,22,0,76,0\n9,0,38,0,28,0,70,0,40,0,5,0\n57,0,72,0,80,0,44,0,42,0,63,0\n51,0,56,0,46,0,43,0,21,0,71,0\n41,1,34,0,14,0,37,1,69,0,74,0\n11,1,66,0,1,0,75,1,78,0,53,0\n35,0,73,0,26,0,61,0,45,0,33,0\n52,0,59,0,54,0,82,0,62,0,15,0\n85,0,58,0,19,0,67,0,64,0,38,0\n29,0,76,0,60,0,28,0,48,0,13,0\n57,0,9,0,7,0,20,0,8,0,12,0\n40,0,25,0,30,0,56,0,10,0,36,0\n31,0,5,0,32,0,17,0,39,0,80,0\n55,0,84,0,23,0,50,0,63,0,21,0\n27,0,44,0,68,0,2,0,43,0,22,0\n18,0,49,0,16,0,77,0,81,0,86,0\n6,0,47,0,65,0,83,0,24,0,72,0\n79,0,4,0,51,0,3,0,42,0,70,0\n8,0,7,0,82,0,37,0,34,0,38,0\n14,0,5,0,30,0,60,0,57,0,67,0\n17,0,23,0,58,0,26,0,80,0,59,0\n43,0,35,0,50,0,13,0,32,0,40,0\n27,0,61,0,81,0,9,0,85,0,62,0\n77,0,6,0,44,0,46,0,15,0,12,0\n52,0,1,0,10,0,63,0,18,0,4,0\n64,0,86,0,71,0,70,0,65,0,76,0\n66,0,74,0,45,0,36,0,47,0,3,0\n16,0,39,0,54,0,72,0,56,0,41,0\n48,0,73,0,69,0,21,0,79,0,84,0\n28,0,51,0,25,0,49,0,55,0,24,0\n20,0,19,0,83,0,33,0,22,0,53,0\n2,0,42,0,68,0,11,0,31,0,29,0\n75,0,40,0,65,0,78,0,81,0,80,0\n52,0,32,0,57,0,10,0,6,0,23,0\n59,0,47,0,39,0,30,0,38,0,70,0\n15,0,1,0,67,0,73,0,71,0,41,0\n13,0,64,0,24,0,44,0,12,0,74,0\n54,0,26,0,46,0,35,0,8,0,76,0\n72,0,2,0,82,0,48,0,36,0,19,0\n61,0,21,0,78,0,29,0,22,0,34,0\n14,0,20,0,79,0,50,0,25,0,11,0\n69,0,5,0,45,0,86,0,49,0,51,0\n85,0,33,0,43,0,55,0,17,0,16,0\n37,0,62,0,42,0,28,0,66,0,18,0\n75,0,27,0,56,0,7,0,68,0,63,0\n60,0,84,0,3,0,53,0,58,0,77,0\n31,0,9,0,34,0,83,0,4,0,54,0\n57,0,25,0,38,0,71,0,13,0,46,0\n35,0,32,0,11,0,52,0,67,0,8,0\n86,0,10,0,73,0,50,0,12,0,59,0\n48,0,41,0,18,0,85,0,61,0,80,0\n2,0,24,0,56,0,75,0,45,0,1,0\n81,0,6,0,84,0,3,0,20,0,64,0\n4,0,65,0,36,0,27,0,23,0,28,0\n22,0,66,0,49,0,40,0,74,0,60,0\n78,0,16,0,76,0,55,0,42,0,30,0\n70,0,69,0,31,0,58,0,7,0,33,0\n19,0,15,0,21,0,47,0,9,0,17,0\n82,0,63,0,29,0,77,0,43,0,83,0\n72,0,37,0,39,0,79,0,26,0,53,0\n62,0,14,0,44,0,68,0,51,0,5,0\n65,0,85,0,54,0,84,0,2,0,66,0\n74,0,41,0,20,0,23,0,35,0,38,0\n73,0,80,0,36,0,3,0,13,0,49,0\n52,0,12,0,48,0,55,0,71,0,45,0\n59,0,81,0,19,0,43,0,8,0,1,0\n37,0,30,0,61,0,64,0,77,0,32,0\n60,0,31,0,86,0,72,0,27,0,67,0\n68,0,18,0,83,0,16,0,69,0,15,0\n28,0,22,0,79,0,75,0,34,0,10,0\n4,0,29,0,39,0,46,0,7,0,40,0\n42,0,50,0,14,0,5,0,9,0,6,0\n62,0,70,0,24,0,21,0,11,0,26,0\n56,0,58,0,78,0,76,0,57,0,51,0\n17,0,53,0,63,0,82,0,47,0,25,0\n33,0,38,0,41,0,44,0,18,0,2,0\n80,0,22,0,8,0,64,0,28,0,72,0\n66,0,65,0,13,0,77,0,34,0,52,0\n9,0,42,0,23,0,43,0,30,0,73,0\n26,0,75,0,86,0,29,0,19,0,14,0\n51,0,36,0,83,0,81,0,37,0,48,0\n6,0,68,0,57,0,35,0,61,0,39,0\n16,0,3,0,67,0,59,0,25,0,70,0\n11,0,4,0,44,0,45,0,84,0,82,0\n56,0,74,0,15,0,50,0,31,0,78,0\n33,0,79,0,1,0,7,0,49,0,60,0\n12,0,76,0,40,0,69,0,62,0,17,0\n63,0,71,0,24,0,32,0,20,0,58,0\n5,0,46,0,10,0,85,0,47,0,55,0\n27,0,21,0,57,0,54,0,53,0,28,0\n82,0,51,0,39,0,22,0,65,0,64,0\n34,0,42,0,25,0,84,0,26,0,68,0\n66,0,9,0,67,0,33,0,23,0,56,0\n14,0,52,0,80,0,29,0,7,0,16,0\n43,0,78,0,32,0,48,0,86,0,38,0\n81,0,2,0,46,0,69,0,30,0,63,0\n41,0,3,0,50,0,24,0,27,0,76,0\n1,0,70,0,85,0,45,0,37,0,6,0\n35,0,79,0,59,0,12,0,19,0,31,0\n49,0,8,0,44,0,47,0,53,0,62,0\n71,0,77,0,4,0,5,0,21,0,74,0\n20,0,61,0,15,0,13,0,72,0,10,0\n58,0,83,0,40,0,11,0,73,0,54,0\n60,0,55,0,75,0,17,0,18,0,36,0\n25,0,45,0,64,0,32,0,69,0,9,0\n22,0,38,0,26,0,16,0,1,0,50,0\n67,0,47,0,12,0,2,0,28,0,80,0\n77,0,7,0,42,0,35,0,62,0,48,0\n33,0,46,0,14,0,27,0,15,0,3,0\n44,0,52,0,70,0,56,0,40,0,34,0\n55,0,13,0,5,0,41,0,65,0,8,0\n86,0,85,0,20,0,4,0,60,0,82,0\n17,0,51,0,29,0,74,0,6,0,30,0\n11,0,63,0,78,0,19,0,73,0,39,0\n10,0,53,0,76,0,31,0,81,0,23,0\n54,0,43,0,36,0,24,0,79,0,18,0\n49,0,83,0,84,0,59,0,75,0,57,0\n71,0,58,0,66,0,72,0,68,0,61,0\n37,0,67,0,65,0,21,0,16,0,40,0\n50,0,33,0,77,0,47,0,51,0,52,0\n26,0,82,0,28,0,41,0,6,0,78,0\n27,0,17,0,8,0,20,0,48,0,70,0\n32,0,62,0,79,0,74,0,2,0,55,0\n86,0,34,0,53,0,46,0,36,0,42,0\n15,0,31,0,38,0,45,0,49,0,63,0\n43,0,72,0,3,0,11,0,12,0,75,0\n1,0,9,0,29,0,57,0,66,0,44,0\n59,0,4,0,22,0,56,0,69,0,13,0\n71,0,85,0,23,0,39,0,14,0,83,0\n73,0,24,0,60,0,81,0,64,0,35,0\n61,0,25,0,7,0,54,0,5,0,76,0\n10,0,68,0,80,0,19,0,37,0,84,0\n30,0,21,0,45,0,18,0,58,0,72,0\n53,0,29,0,12,0,41,0,51,0,32,0\n31,0,49,0,46,0,50,0,66,0,82,0\n77,0,9,0,59,0,55,0,36,0,22,0\n56,0,42,0,26,0,20,0,65,0,60,0\n69,0,11,0,7,0,15,0,85,0,57,0\n23,0,62,0,5,0,34,0,24,0,16,0\n40,0,47,0,48,0,14,0,1,0,64,0\n10,0,83,0,78,0,70,0,35,0,2,0\n27,0,73,0,6,0,19,0,25,0,18,0\n75,0,43,0,67,0,61,0,4,0,74,0\n21,0,38,0,3,0,39,0,52,0,68,0\n37,0,63,0,8,0,76,0,33,0,86,0\n79,0,54,0,71,0,80,0,44,0,30,0\n81,0,28,0,17,0,13,0,58,0,84,0\n15,0,24,0,40,0,60,0,42,0,85,0\n64,0,51,0,19,0,57,0,31,0,16,0\n18,0,74,0,59,0,46,0,11,0,65,0\n39,0,48,0,25,0,50,0,75,0,4,0\n33,0,36,0,37,0,78,0,12,0,5,0\n8,0,72,0,23,0,77,0,69,0,29,0\n13,0,21,0,41,0,66,0,86,0,79,0\n76,0,34,0,20,0,80,0,45,0,43,0\n55,0,70,0,32,0,82,0,73,0,68,0\n2,0,7,0,47,0,26,0,71,0,81,0\n67,0,63,0,6,0,22,0,54,0,62,0\n35,0,84,0,30,0,38,0,1,0,27,0\n56,0,53,0,49,0,14,0,58,0,10,0\n28,0,3,0,44,0,17,0,61,0,83,0\n52,0,41,0,11,0,9,0,37,0,75,0\n"
  },
  {
    "path": "schedules/86_14.csv",
    "content": "7,0,78,0,52,0,18,0,83,0,32,0\n61,0,85,0,5,0,33,0,44,0,25,0\n60,0,48,0,29,0,58,0,68,0,8,0\n42,0,66,0,40,0,50,0,71,0,30,0\n82,0,70,0,79,0,10,0,53,0,59,0\n17,0,84,0,39,0,14,0,45,0,69,0\n63,0,16,0,12,0,34,0,75,0,80,0\n6,0,51,0,86,0,26,0,3,0,57,0\n76,0,56,0,9,0,62,0,81,0,77,0\n23,0,20,0,49,0,74,0,2,0,55,0\n13,0,54,0,65,0,46,0,21,0,19,0\n22,0,35,0,41,0,43,0,73,0,1,0\n37,0,72,0,38,0,67,0,11,0,47,0\n15,0,31,0,64,0,27,0,36,0,28,0\n4,0,60,0,57,0,24,0,34,0,53,0\n75,0,6,0,82,0,39,0,62,0,71,0\n14,0,78,0,74,0,66,0,48,0,2,0\n80,0,13,0,44,0,76,0,52,0,42,0\n5,0,58,0,69,0,21,0,20,0,1,0\n72,0,50,0,54,0,35,0,45,0,30,0\n47,0,85,0,46,0,56,0,41,0,51,0\n22,0,77,0,67,0,28,0,24,0,49,0\n59,0,9,0,17,0,37,0,36,0,63,0\n16,0,26,0,8,0,43,0,84,0,11,0\n10,0,33,0,15,0,83,0,29,0,38,0\n19,0,23,0,31,0,18,0,25,0,61,0\n40,0,79,0,86,0,27,0,4,0,32,0\n68,0,64,0,55,0,7,0,65,0,12,0\n81,0,73,0,21,0,3,0,70,0,74,0\n51,1,85,0,80,0,72,1,58,0,22,0\n43,0,44,0,16,0,67,0,60,0,1,0\n33,0,36,0,38,0,6,0,24,0,2,0\n23,0,28,0,56,0,82,0,42,0,48,0\n49,0,13,0,45,0,83,0,57,0,66,0\n20,0,52,0,31,0,79,0,65,0,29,0\n63,0,7,0,71,0,5,0,37,0,41,0\n18,0,77,0,73,0,10,0,39,0,26,0\n64,0,81,0,61,0,47,0,15,0,54,0\n19,0,62,0,55,0,14,0,4,0,30,0\n76,0,25,0,59,0,40,0,11,0,27,0\n53,0,69,0,68,0,35,0,8,0,86,0\n46,0,50,0,34,0,32,0,17,0,70,0\n84,0,3,0,78,0,75,0,9,0,12,0\n33,0,16,0,7,0,58,0,51,0,49,0\n38,0,45,0,52,0,43,0,5,0,82,0\n67,0,37,0,13,0,54,0,56,0,4,0\n1,0,28,0,18,0,72,0,63,0,20,0\n19,0,27,0,2,0,44,0,8,0,53,0\n41,0,83,0,24,0,50,0,17,0,81,0\n36,0,75,0,60,0,42,0,23,0,14,0\n6,0,22,0,64,0,29,0,59,0,86,0\n10,0,85,0,65,0,76,0,74,0,34,0\n15,0,77,0,11,0,32,0,21,0,84,0\n48,0,39,0,73,0,40,0,80,0,30,0\n62,0,3,0,46,0,78,0,61,0,68,0\n35,0,12,0,70,0,26,0,31,0,66,0\n25,0,57,0,79,0,69,0,47,0,9,0\n55,0,24,0,59,0,71,0,45,0,16,0\n14,0,38,0,86,0,7,0,49,0,72,0\n23,0,8,0,27,0,22,0,50,0,52,0\n21,0,48,0,51,0,17,0,10,0,44,0\n18,0,43,0,41,0,77,0,75,0,2,0\n26,0,78,0,82,0,81,0,33,0,65,0\n12,0,76,0,66,0,20,0,73,0,69,0\n3,0,30,0,25,0,15,0,37,0,60,0\n31,0,80,0,71,0,57,0,53,0,47,0\n68,0,63,0,11,0,54,0,61,0,39,0\n32,0,67,0,85,0,42,0,29,0,19,0\n70,0,4,0,58,0,84,0,83,0,64,0\n55,0,46,0,79,0,28,0,6,0,5,0\n40,0,36,0,9,0,35,0,56,0,74,0\n62,0,34,0,33,0,1,0,13,0,59,0\n77,0,37,0,30,0,51,0,45,0,31,0\n54,0,27,0,20,0,10,0,57,0,16,0\n69,0,26,0,7,0,2,0,80,0,82,0\n68,0,67,0,71,0,84,0,18,0,85,0\n86,0,42,0,41,0,11,0,83,0,65,0\n22,0,25,0,21,0,63,0,6,0,81,0\n46,0,72,0,48,0,43,0,64,0,62,0\n4,0,40,0,5,0,36,0,78,0,49,0\n9,0,29,0,53,0,66,0,23,0,44,0\n38,0,12,0,74,0,32,0,60,0,79,0\n1,0,34,0,15,0,73,0,14,0,52,0\n56,0,47,0,8,0,55,0,17,0,75,0\n61,0,28,0,3,0,13,0,70,0,50,0\n58,0,35,0,39,0,76,0,24,0,19,0\n80,0,43,0,36,0,37,0,86,0,81,0\n82,0,83,0,53,0,85,0,20,0,16,0\n84,0,22,0,46,0,74,0,7,0,79,0\n40,0,49,0,64,0,44,0,69,0,41,0\n6,0,65,0,8,0,54,0,32,0,5,0\n14,0,29,0,72,0,13,0,71,0,12,0\n57,0,38,0,56,0,50,0,18,0,58,0\n27,0,33,0,42,0,77,0,63,0,48,0\n52,0,23,0,10,0,3,0,11,0,19,0\n28,0,47,0,4,0,60,0,66,0,39,0\n68,0,21,0,34,0,45,0,9,0,2,0\n17,0,1,0,78,0,76,0,30,0,70,0\n35,0,51,0,67,0,15,0,62,0,59,0\n73,0,31,0,55,0,25,0,75,0,24,0\n26,0,58,0,79,0,61,0,42,0,37,0\n57,0,81,0,84,0,44,0,48,0,38,0\n13,0,56,0,39,0,5,0,23,0,7,0\n34,0,66,0,14,0,41,0,33,0,11,0\n36,0,8,0,76,0,82,0,18,0,46,0\n2,0,83,0,12,0,47,0,27,0,1,0\n68,0,20,0,24,0,30,0,43,0,32,0\n74,0,29,0,80,0,77,0,54,0,25,0\n60,0,52,0,86,0,67,0,61,0,70,0\n40,0,59,0,75,0,21,0,28,0,72,0\n45,0,65,0,26,0,4,0,22,0,9,0\n50,0,51,0,19,0,64,0,73,0,71,0\n85,0,53,0,62,0,3,0,10,0,69,0\n6,0,17,0,31,0,16,0,49,0,15,0\n78,0,35,0,44,0,55,0,63,0,58,0\n7,0,36,0,61,0,34,0,77,0,20,0\n24,0,47,0,18,0,84,0,70,0,29,0\n14,0,28,0,9,0,8,0,83,0,54,0\n21,0,38,0,30,0,71,0,23,0,26,0\n1,0,66,0,81,0,68,0,10,0,40,0\n5,0,3,0,2,0,64,0,67,0,16,0\n59,0,60,0,35,0,46,0,80,0,65,0\n37,0,49,0,73,0,78,0,62,0,27,0\n41,0,45,0,12,0,6,0,52,0,48,0\n74,0,57,0,15,0,63,0,19,0,82,0\n39,0,85,0,50,0,43,0,86,0,55,0\n32,0,33,0,76,0,53,0,56,0,22,0\n75,0,11,0,13,0,79,0,69,0,51,0\n17,0,42,0,4,0,72,0,31,0,25,0\n60,0,70,0,44,0,7,0,54,0,62,0\n34,0,48,0,47,0,24,0,5,0,26,0\n63,0,41,0,78,0,38,0,67,0,23,0\n16,0,82,0,37,0,29,0,21,0,50,0\n19,0,1,0,84,0,49,0,55,0,3,0\n59,0,11,0,2,0,85,0,13,0,9,0\n76,0,75,0,14,0,68,0,86,0,45,0\n80,0,17,0,79,0,66,0,18,0,33,0\n10,0,27,0,25,0,56,0,65,0,71,0\n12,0,58,0,32,0,81,0,39,0,36,0\n53,0,15,0,46,0,72,0,77,0,40,0\n74,0,52,0,8,0,4,0,51,0,64,0\n20,0,61,0,57,0,42,0,73,0,22,0\n69,0,43,0,6,0,28,0,83,0,31,0\n30,0,85,0,44,0,35,0,75,0,47,0\n66,0,54,0,3,0,18,0,56,0,59,0\n5,0,9,0,27,0,70,0,41,0,80,0\n15,0,32,0,63,0,55,0,13,0,26,0\n39,0,76,0,29,0,79,0,49,0,48,0\n10,0,4,0,11,0,57,0,12,0,50,0\n7,0,25,0,43,0,78,0,21,0,53,0\n33,0,45,0,20,0,8,0,67,0,40,0\n86,0,58,0,71,0,2,0,31,0,46,0\n61,0,14,0,24,0,82,0,51,0,72,0\n77,0,69,0,1,0,64,0,23,0,60,0\n62,0,16,0,17,0,38,0,81,0,28,0\n83,0,19,0,35,0,34,0,22,0,37,0\n73,0,84,0,30,0,36,0,52,0,65,0\n74,0,42,0,44,0,68,0,6,0,15,0\n71,0,43,0,76,0,33,0,3,0,4,0\n9,0,48,0,50,0,75,0,20,0,7,0\n26,0,21,0,18,0,27,0,14,0,60,0\n81,0,31,0,8,0,85,0,66,0,63,0\n13,0,64,0,10,0,24,0,80,0,78,0\n54,0,86,0,82,0,55,0,84,0,34,0\n83,0,30,0,74,0,67,0,59,0,5,0\n28,0,45,0,53,0,73,0,11,0,58,0\n56,0,29,0,32,0,61,0,1,0,51,0\n40,0,62,0,65,0,47,0,16,0,23,0\n37,0,25,0,46,0,52,0,49,0,12,0\n42,0,70,0,38,0,22,0,69,0,39,0\n35,0,17,0,2,0,77,0,6,0,57,0\n72,0,41,0,79,0,36,0,68,0,19,0\n71,0,33,0,48,0,31,0,60,0,9,0\n83,0,61,0,55,0,21,0,80,0,76,0\n50,0,20,0,59,0,14,0,44,0,81,0\n47,0,58,0,45,0,27,0,13,0,74,0\n75,0,49,0,54,0,53,0,26,0,52,0\n65,0,51,0,15,0,12,0,43,0,39,0\n6,0,11,0,72,0,70,0,78,0,56,0\n18,0,34,0,63,0,30,0,69,0,64,0\n10,0,2,0,28,0,84,0,35,0,25,0\n8,0,29,0,62,0,41,0,57,0,36,0\n32,0,40,0,22,0,17,0,82,0,3,0\n1,0,7,0,24,0,79,0,42,0,85,0\n5,0,77,0,16,0,66,0,86,0,19,0\n73,0,67,0,4,0,68,0,46,0,23,0\n37,0,75,0,53,0,38,0,65,0,61,0\n45,0,78,0,50,0,80,0,20,0,15,0\n39,0,57,0,21,0,72,0,52,0,33,0\n49,0,14,0,63,0,10,0,56,0,43,0\n2,0,54,0,60,0,40,0,51,0,76,0\n74,0,26,0,11,0,31,0,62,0,41,0\n18,0,81,0,42,0,46,0,5,0,35,0\n70,0,66,0,64,0,38,0,85,0,55,0\n69,0,32,0,48,0,4,0,37,0,59,0\n13,0,36,0,22,0,16,0,25,0,68,0\n7,0,19,0,73,0,47,0,29,0,17,0\n30,0,86,0,24,0,12,0,44,0,28,0\n83,0,3,0,71,0,79,0,8,0,77,0\n1,0,82,0,58,0,6,0,9,0,67,0\n23,0,84,0,51,0,34,0,27,0,72,0\n"
  },
  {
    "path": "schedules/86_2.csv",
    "content": "38,0,53,0,84,0,42,0,29,0,41,0\n24,0,21,0,58,0,25,0,16,0,33,0\n81,0,56,0,48,0,74,0,30,0,60,0\n35,0,36,0,70,0,39,0,32,0,52,0\n12,0,44,0,85,0,55,0,73,0,37,0\n11,0,22,0,75,0,31,0,3,0,72,0\n27,0,2,0,63,0,47,0,80,0,71,0\n62,0,14,0,5,0,23,0,26,0,68,0\n17,0,79,0,6,0,49,0,18,0,7,0\n50,0,86,0,34,0,54,0,61,0,45,0\n69,0,4,0,40,0,43,0,82,0,66,0\n67,0,1,0,57,0,46,0,10,0,83,0\n15,0,13,0,20,0,9,0,28,0,76,0\n78,0,51,0,59,0,65,0,8,0,77,0\n64,0,32,0,75,0,19,0,44,0,62,0\n31,0,21,0,37,0,68,0,17,0,63,0\n58,0,23,0,80,0,56,0,34,0,84,0\n61,0,18,0,66,0,12,0,48,0,36,0\n45,0,39,0,41,0,5,0,1,0,85,0\n25,0,76,0,3,0,49,0,4,0,53,0\n52,0,24,0,71,0,77,0,82,0,67,0\n83,0,60,0,26,0,19,0,69,0,55,0\n7,0,59,0,11,0,20,0,27,0,38,0\n73,0,30,0,9,0,64,0,2,0,79,0\n47,0,43,0,54,0,74,0,8,0,35,0\n46,0,16,0,28,0,78,0,70,0,50,0\n10,0,33,0,65,0,13,0,29,0,86,0\n42,0,40,0,57,0,81,0,15,0,22,0\n6,0,72,0,41,1,14,0,51,0,44,1\n"
  },
  {
    "path": "schedules/86_3.csv",
    "content": "48,0,6,0,26,0,9,0,52,0,29,0\n8,0,25,0,57,0,61,0,1,0,31,0\n59,0,5,0,32,0,82,0,16,0,30,0\n37,0,62,0,80,0,70,0,33,0,36,0\n20,0,67,0,56,0,28,0,55,0,81,0\n41,0,72,0,49,0,21,0,12,0,17,0\n83,0,3,0,7,0,47,0,85,0,4,0\n18,0,44,0,63,0,10,0,75,0,74,0\n11,0,23,0,38,0,24,0,86,0,66,0\n40,0,34,0,43,0,60,0,46,0,78,0\n19,0,77,0,22,0,58,0,14,0,54,0\n73,0,15,0,51,0,27,0,76,0,35,0\n39,0,53,0,2,0,84,0,71,0,79,0\n13,0,68,0,50,0,65,0,42,0,45,0\n64,0,81,0,7,0,69,0,8,0,5,0\n9,0,74,0,66,0,62,0,41,0,1,0\n43,0,10,0,37,0,56,0,12,0,6,0\n70,0,4,0,60,0,72,0,26,0,14,0\n86,0,85,0,29,0,57,0,63,0,80,0\n82,0,21,0,79,0,46,0,20,0,48,0\n31,0,33,0,68,0,19,0,73,0,40,0\n35,0,78,0,38,0,71,0,17,0,83,0\n76,0,52,0,45,0,55,0,69,0,77,0\n67,0,59,0,50,0,64,0,22,0,84,0\n49,0,36,0,47,0,42,0,75,0,16,0\n58,0,13,0,2,0,15,0,11,0,25,0\n61,0,18,0,24,0,30,0,28,0,3,0\n65,0,34,0,27,0,23,0,53,0,44,0\n51,0,54,0,60,0,39,0,32,0,33,0\n29,0,55,0,62,0,73,0,38,0,14,0\n86,0,84,0,19,0,48,0,10,0,78,0\n22,0,81,0,37,0,57,0,79,0,49,0\n25,0,45,0,21,0,80,0,66,0,59,0\n76,0,16,0,28,0,72,0,43,0,7,0\n63,0,71,0,6,0,41,0,23,0,69,0\n85,0,15,0,8,0,26,0,40,0,20,0\n18,0,9,0,12,0,13,0,51,0,47,0\n42,0,35,0,3,0,67,0,70,0,34,0\n58,0,52,0,17,0,50,0,61,0,27,0\n77,0,74,0,32,0,64,0,65,0,2,0\n30,0,1,0,11,0,4,0,44,0,54,0\n82,0,75,0,83,0,31,0,39,0,24,0\n5,0,53,0,46,0,56,0,68,0,36,0\n"
  },
  {
    "path": "schedules/86_4.csv",
    "content": "67,0,27,0,39,0,36,0,11,0,32,0\n81,0,16,0,47,0,61,0,8,0,17,0\n44,0,20,0,12,0,80,0,41,0,37,0\n62,0,48,0,72,0,63,0,23,0,59,0\n78,0,70,0,76,0,50,0,51,0,66,0\n4,0,85,0,56,0,68,0,55,0,38,0\n9,0,15,0,86,0,43,0,5,0,54,0\n83,0,14,0,10,0,29,0,7,0,45,0\n74,0,75,0,31,0,3,0,53,0,30,0\n65,0,6,0,77,0,19,0,58,0,82,0\n18,0,49,0,34,0,2,0,60,0,64,0\n42,0,71,0,69,0,40,0,52,0,73,0\n35,0,24,0,57,0,84,0,21,0,22,0\n28,0,26,0,79,0,13,0,1,0,33,0\n25,0,17,0,59,0,46,0,7,0,85,0\n83,0,32,0,72,0,70,0,81,0,12,0\n51,0,8,0,55,0,67,0,43,0,41,0\n3,0,54,0,80,0,27,0,64,0,77,0\n76,0,9,0,71,0,29,0,62,0,56,0\n15,0,47,0,40,0,19,0,35,0,48,0\n6,0,21,0,18,0,74,0,69,0,4,0\n63,0,22,0,53,0,60,0,52,0,68,0\n33,0,45,0,49,0,16,0,30,0,86,0\n13,0,36,0,65,0,50,0,2,0,25,0\n66,0,26,0,39,0,20,0,84,0,46,0\n38,0,58,0,28,0,31,0,73,0,57,0\n75,0,11,0,42,0,78,0,44,0,14,0\n34,0,82,0,5,0,24,0,79,0,10,0\n37,0,1,0,21,0,61,0,23,0,77,0\n33,1,52,0,55,0,83,1,18,0,48,0\n2,1,30,0,40,0,67,1,17,0,76,0\n8,0,85,0,53,0,6,0,39,0,13,0\n69,0,62,0,7,0,81,0,54,0,57,0\n35,0,16,0,80,0,63,0,32,0,14,0\n84,0,11,0,65,0,43,0,71,0,3,0\n68,0,31,0,86,0,10,0,66,0,23,0\n78,0,29,0,4,0,36,0,79,0,72,0\n5,0,47,0,1,0,64,0,38,0,20,0\n49,0,44,0,82,0,74,0,15,0,46,0\n60,0,41,0,61,0,42,0,70,0,25,0\n37,0,73,0,19,0,9,0,51,0,26,0\n59,0,12,0,24,0,45,0,28,0,56,0\n22,0,50,0,75,0,34,0,27,0,58,0\n66,0,3,0,67,0,57,0,29,0,48,0\n77,0,33,0,40,0,8,0,31,0,36,0\n35,0,64,0,79,0,81,0,85,0,44,0\n53,0,41,0,18,0,1,0,86,0,84,0\n72,0,60,0,38,0,65,0,17,0,14,0\n61,0,28,0,46,0,9,0,69,0,83,0\n19,0,2,0,12,0,27,0,68,0,16,0\n37,0,59,0,13,0,70,0,4,0,5,0\n52,0,23,0,50,0,15,0,7,0,6,0\n43,0,58,0,45,0,76,0,80,0,47,0\n22,0,56,0,51,0,49,0,54,0,11,0\n30,0,78,0,73,0,21,0,39,0,34,0\n26,0,74,0,25,0,24,0,71,0,63,0\n10,0,20,0,32,0,55,0,75,0,62,0\n82,0,33,0,2,0,42,0,83,0,67,0\n"
  },
  {
    "path": "schedules/86_5.csv",
    "content": "84,0,11,0,23,0,80,0,37,0,38,0\n57,0,13,0,40,0,43,0,77,0,74,0\n75,0,81,0,30,0,71,0,16,0,10,0\n46,0,63,0,33,0,76,0,36,0,72,0\n5,0,62,0,29,0,65,0,45,0,7,0\n55,0,15,0,79,0,61,0,69,0,58,0\n26,0,82,0,50,0,20,0,67,0,53,0\n12,0,60,0,8,0,1,0,44,0,31,0\n47,0,85,0,19,0,3,0,52,0,21,0\n27,0,34,0,25,0,73,0,24,0,35,0\n22,0,56,0,4,0,48,0,70,0,64,0\n18,0,78,0,59,0,2,0,86,0,54,0\n32,0,14,0,28,0,68,0,9,0,83,0\n51,0,6,0,49,0,41,0,39,0,42,0\n17,0,77,0,71,0,66,0,79,0,29,0\n13,0,44,0,47,0,46,0,84,0,50,0\n61,0,33,0,12,0,37,0,75,0,7,0\n81,0,60,0,36,0,38,0,22,0,3,0\n2,0,67,0,15,0,63,0,70,0,16,0\n52,0,76,0,68,0,62,0,78,0,48,0\n83,0,31,0,30,0,11,0,86,0,53,0\n59,0,72,0,65,0,26,0,57,0,55,0\n42,0,85,0,10,0,32,0,23,0,82,0\n39,0,20,0,69,0,25,0,64,0,5,0\n66,0,14,0,74,0,18,0,51,0,24,0\n43,0,6,0,19,0,45,0,17,0,34,0\n58,0,54,0,28,0,41,0,8,0,35,0\n9,0,1,0,40,0,27,0,56,0,21,0\n73,0,49,0,62,0,4,0,80,0,63,0\n59,1,70,0,29,0,52,1,30,0,44,0\n12,0,67,0,36,0,65,0,13,0,86,0\n47,0,57,0,75,0,51,0,83,0,23,0\n20,0,46,0,7,0,74,0,3,0,71,0\n82,0,33,0,35,0,84,0,43,0,31,0\n76,0,79,0,40,0,10,0,18,0,38,0\n78,0,66,0,41,0,22,0,16,0,19,0\n37,0,9,0,24,0,58,0,53,0,39,0\n85,0,4,0,27,0,26,0,68,0,2,0\n64,0,17,0,60,0,28,0,15,0,21,0\n34,0,5,0,61,0,77,0,49,0,48,0\n1,0,55,0,6,0,25,0,11,0,14,0\n54,0,69,0,42,0,73,0,72,0,56,0\n80,0,50,0,45,0,8,0,81,0,32,0\n16,0,46,0,57,0,79,0,35,0,62,0\n7,0,68,0,84,0,59,0,67,0,40,0\n44,0,21,0,43,0,63,0,83,0,66,0\n23,0,34,0,64,0,78,0,12,0,9,0\n18,0,82,0,37,0,5,0,55,0,60,0\n65,0,25,0,3,0,76,0,54,0,31,0\n80,0,56,0,24,0,85,0,36,0,6,0\n74,0,42,0,81,0,48,0,33,0,1,0\n53,0,22,0,10,0,69,0,52,0,49,0\n15,0,77,0,75,0,8,0,14,0,19,0\n73,0,70,0,58,0,13,0,26,0,71,0\n29,0,50,0,72,0,4,0,28,0,11,0\n17,0,32,0,38,0,27,0,86,0,39,0\n45,0,47,0,61,0,41,0,2,0,30,0\n51,0,35,0,1,0,20,0,37,0,76,0\n48,0,23,0,63,0,60,0,40,0,6,0\n5,0,67,0,31,0,14,0,42,0,52,0\n13,0,3,0,80,0,79,0,75,0,78,0\n58,0,49,0,43,0,59,0,85,0,50,0\n38,0,8,0,69,0,29,0,33,0,24,0\n54,0,26,0,32,0,47,0,7,0,22,0\n30,0,39,0,36,0,68,0,57,0,18,0\n53,0,28,0,51,0,55,0,81,0,77,0\n56,0,71,0,41,0,11,0,44,0,34,0\n74,0,25,0,9,0,70,0,62,0,17,0\n2,0,84,0,65,0,64,0,73,0,66,0\n20,0,10,0,27,0,72,0,12,0,19,0\n21,0,86,0,16,0,61,0,4,0,82,0\n45,0,15,0,52,0,46,0,83,0,59,0\n"
  },
  {
    "path": "schedules/86_6.csv",
    "content": "8,0,65,0,31,0,49,0,69,0,15,0\n23,0,81,0,79,0,74,0,39,0,27,0\n17,0,67,0,55,0,9,0,28,0,11,0\n59,0,34,0,14,0,50,0,18,0,21,0\n76,0,66,0,84,0,20,0,64,0,52,0\n46,0,16,0,1,0,32,0,22,0,62,0\n29,0,10,0,3,0,45,0,78,0,48,0\n41,0,24,0,83,0,75,0,4,0,70,0\n72,0,38,0,63,0,5,0,85,0,6,0\n40,0,7,0,53,0,58,0,57,0,77,0\n19,0,73,0,35,0,37,0,25,0,71,0\n80,0,54,0,42,0,68,0,36,0,13,0\n2,0,56,0,61,0,82,0,26,0,33,0\n47,0,30,0,44,0,43,0,12,0,60,0\n86,0,70,0,76,0,51,0,22,0,49,0\n74,0,9,0,3,0,59,0,24,0,52,0\n21,0,67,0,31,0,81,0,48,0,63,0\n58,0,35,0,46,0,17,0,18,0,5,0\n62,0,50,0,19,0,68,0,39,0,57,0\n4,0,36,0,11,0,29,0,71,0,16,0\n79,0,30,0,56,0,84,0,53,0,8,0\n82,0,54,0,86,0,12,0,15,0,66,0\n75,0,20,0,43,0,14,0,42,0,26,0\n85,0,64,0,69,0,61,0,34,0,10,0\n73,0,44,0,80,0,23,0,28,0,32,0\n60,0,65,0,27,0,77,0,55,0,45,0\n37,0,33,0,40,0,41,0,72,0,78,0\n47,0,7,0,83,0,2,0,38,0,51,0\n13,0,1,0,58,0,25,0,6,0,29,0\n19,0,20,0,81,0,24,0,49,0,36,0\n9,0,56,0,31,0,76,0,39,0,85,0\n86,0,69,0,59,0,75,0,63,0,11,0\n48,0,71,0,74,0,54,0,17,0,77,0\n14,0,64,0,68,0,46,0,78,0,73,0\n4,0,38,0,40,0,8,0,82,0,3,0\n84,0,45,0,57,0,12,0,72,0,67,0\n1,0,15,0,27,0,37,0,47,0,18,0\n10,0,52,0,80,0,60,0,41,0,51,0\n66,0,7,0,79,0,55,0,44,0,6,0\n43,0,23,0,2,0,34,0,62,0,35,0\n32,0,83,0,30,0,50,0,42,0,61,0\n53,0,33,0,13,0,70,0,16,0,5,0\n65,0,26,0,25,0,22,0,21,0,28,0\n15,0,24,0,68,0,56,0,38,0,17,0\n49,0,41,0,58,0,54,0,9,0,14,0\n84,0,46,0,69,0,19,0,44,0,40,0\n39,0,43,0,55,0,48,0,80,0,72,0\n7,0,23,0,36,0,67,0,30,0,3,0\n64,0,12,0,62,0,63,0,79,0,4,0\n70,0,77,0,32,0,18,0,11,0,2,0\n60,0,59,0,71,0,1,0,82,0,76,0\n57,0,51,0,29,0,31,0,61,0,75,0\n10,0,35,0,42,0,6,0,65,0,33,0\n27,0,28,0,50,0,8,0,20,0,16,0\n74,0,78,0,26,0,47,0,53,0,86,0\n5,0,22,0,37,0,34,0,66,0,81,0\n13,0,52,0,73,0,83,0,45,0,21,0\n85,0,2,0,44,0,25,0,54,0,59,0\n38,0,61,0,60,0,46,0,70,0,79,0\n75,0,71,0,84,0,3,0,33,0,39,0\n36,0,41,0,6,0,15,0,64,0,50,0\n9,0,69,0,29,0,53,0,80,0,20,0\n49,0,28,0,18,0,56,0,74,0,40,0\n47,0,8,0,22,0,67,0,58,0,73,0\n1,0,21,0,66,0,19,0,23,0,11,0\n25,0,51,0,77,0,81,0,4,0,14,0\n30,0,86,0,13,0,85,0,57,0,35,0\n37,0,45,0,17,0,26,0,31,0,62,0\n10,0,63,0,83,0,43,0,68,0,76,0\n5,0,55,0,82,0,32,0,24,0,78,0\n16,0,48,0,34,0,65,0,52,0,12,0\n42,0,72,0,29,0,7,0,27,0,56,0\n33,0,47,0,77,0,46,0,36,0,9,0\n67,0,51,0,54,0,79,0,40,0,1,0\n45,0,81,0,70,0,30,0,64,0,71,0\n19,0,6,0,18,0,3,0,61,0,86,0\n5,0,57,0,80,0,59,0,26,0,15,0\n78,0,39,0,63,0,28,0,34,0,58,0\n25,0,42,0,24,0,84,0,16,0,31,0\n85,0,68,0,37,0,20,0,65,0,23,0\n14,0,17,0,8,0,66,0,83,0,60,0\n4,0,32,0,52,0,43,0,7,0,69,0\n21,0,75,0,55,0,74,0,10,0,38,0\n72,0,62,0,11,0,49,0,44,0,13,0\n48,0,22,0,82,0,27,0,41,0,35,0\n76,0,53,0,12,0,2,0,73,0,50,0\n"
  },
  {
    "path": "schedules/86_7.csv",
    "content": "10,0,70,0,52,0,69,0,3,0,71,0\n48,0,43,0,23,0,49,0,59,0,37,0\n79,0,45,0,2,0,7,0,39,0,17,0\n34,0,75,0,58,0,27,0,41,0,8,0\n80,0,14,0,81,0,11,0,55,0,74,0\n25,0,60,0,20,0,5,0,21,0,51,0\n12,0,31,0,86,0,36,0,65,0,6,0\n54,0,38,0,40,0,68,0,72,0,85,0\n26,0,47,0,22,0,42,0,28,0,77,0\n1,0,13,0,63,0,62,0,73,0,9,0\n76,0,56,0,66,0,4,0,19,0,64,0\n44,0,18,0,67,0,33,0,30,0,53,0\n83,0,84,0,29,0,50,0,82,0,46,0\n57,0,61,0,16,0,32,0,35,0,78,0\n24,0,55,0,41,0,15,0,12,0,54,0\n28,0,37,0,51,0,39,0,34,0,52,0\n42,0,25,0,10,0,58,0,1,0,48,0\n64,0,81,0,21,0,27,0,2,0,26,0\n17,0,63,0,4,0,38,0,30,0,36,0\n74,0,7,0,70,0,46,0,31,0,72,0\n66,0,73,0,23,0,53,0,69,0,83,0\n15,0,20,0,56,0,67,0,16,0,84,0\n29,0,62,0,78,0,59,0,18,0,77,0\n40,0,9,0,5,0,19,0,22,0,43,0\n61,0,3,0,82,0,11,0,60,0,76,0\n71,0,79,0,8,0,44,0,57,0,49,0\n13,0,45,0,68,0,65,0,50,0,14,0\n86,0,85,0,24,0,80,0,35,0,33,0\n32,0,6,0,4,0,47,0,75,0,67,0\n38,1,34,0,2,0,16,1,70,0,42,0\n83,1,22,0,18,0,74,1,20,0,48,0\n12,0,56,0,25,0,52,0,23,0,26,0\n15,0,8,0,9,0,28,0,21,0,7,0\n66,0,17,0,44,0,5,0,78,0,1,0\n57,0,68,0,60,0,86,0,55,0,62,0\n36,0,47,0,3,0,29,0,79,0,24,0\n14,0,19,0,53,0,37,0,75,0,46,0\n84,0,65,0,81,0,40,0,76,0,41,0\n54,0,39,0,64,0,13,0,82,0,33,0\n73,0,77,0,43,0,58,0,80,0,61,0\n27,0,30,0,50,0,6,0,71,0,85,0\n35,0,63,0,10,0,49,0,72,0,45,0\n69,0,51,0,11,0,59,0,32,0,31,0\n16,0,24,0,18,0,25,0,9,0,46,0\n21,0,38,0,67,0,41,0,78,0,3,0\n36,0,62,0,39,0,66,0,20,0,40,0\n22,0,81,0,57,0,13,0,75,0,56,0\n85,0,52,0,79,0,58,0,53,0,4,0\n1,0,19,0,77,0,50,0,72,0,86,0\n6,0,26,0,11,0,43,0,45,0,83,0\n33,0,12,0,61,0,47,0,49,0,27,0\n59,0,74,0,35,0,44,0,28,0,73,0\n8,0,68,0,80,0,82,0,69,0,63,0\n30,0,14,0,31,0,60,0,10,0,34,0\n48,0,55,0,76,0,51,0,71,0,2,0\n37,0,54,0,84,0,17,0,32,0,70,0\n5,0,15,0,65,0,23,0,42,0,29,0\n7,0,22,0,61,0,64,0,25,0,85,0\n58,0,9,0,50,0,56,0,35,0,38,0\n72,0,53,0,8,0,81,0,6,0,78,0\n28,0,40,0,83,0,31,0,79,0,80,0\n13,0,59,0,16,0,86,0,30,0,66,0\n19,0,34,0,62,0,84,0,48,0,21,0\n2,0,75,0,54,0,44,0,29,0,69,0\n37,0,7,0,65,0,55,0,3,0,4,0\n47,0,15,0,73,0,52,0,60,0,18,0\n51,0,70,0,33,0,26,0,63,0,57,0\n36,0,42,0,49,0,76,0,67,0,74,0\n82,0,71,0,32,0,23,0,77,0,45,0\n41,0,5,0,46,0,10,0,11,0,39,0\n1,0,20,0,27,0,43,0,68,0,24,0\n64,0,14,0,3,0,17,0,12,0,9,0\n73,0,4,0,40,0,2,0,8,0,50,0\n69,0,78,0,60,0,85,0,56,0,65,0\n80,0,13,0,49,0,84,0,7,0,6,0\n55,0,29,0,26,0,38,0,61,0,19,0\n72,0,37,0,82,0,30,0,15,0,79,0\n47,0,21,0,74,0,1,0,53,0,54,0\n17,0,31,0,71,0,81,0,58,0,62,0\n63,0,77,0,52,0,5,0,48,0,16,0\n44,0,64,0,32,0,86,0,10,0,43,0\n57,0,46,0,20,0,28,0,76,0,45,0\n42,0,75,0,83,0,51,0,68,0,12,0\n41,0,25,0,36,0,59,0,14,0,33,0\n24,0,11,0,34,0,22,0,67,0,66,0\n27,0,35,0,23,0,39,0,70,0,18,0\n49,0,50,0,53,0,5,0,62,0,3,0\n32,0,30,0,58,0,74,0,2,0,65,0\n28,0,16,0,85,0,55,0,1,0,82,0\n45,0,69,0,48,0,81,0,38,0,47,0\n41,0,6,0,19,0,73,0,42,0,79,0\n24,0,52,0,21,0,61,0,13,0,83,0\n26,0,31,0,66,0,18,0,37,0,8,0\n43,0,75,0,71,0,36,0,84,0,35,0\n7,0,12,0,59,0,34,0,20,0,63,0\n56,0,33,0,17,0,40,0,77,0,10,0\n68,0,44,0,70,0,15,0,25,0,11,0\n39,0,72,0,67,0,29,0,14,0,57,0\n78,0,27,0,9,0,80,0,76,0,54,0\n46,0,86,0,4,0,22,0,23,0,51,0\n60,0,38,0,83,0,64,0,16,0,74,0\n"
  },
  {
    "path": "schedules/86_8.csv",
    "content": "36,0,22,0,55,0,67,0,54,0,82,0\n80,0,7,0,20,0,47,0,72,0,59,0\n8,0,48,0,35,0,15,0,4,0,18,0\n65,0,19,0,30,0,28,0,76,0,33,0\n5,0,58,0,60,0,6,0,50,0,66,0\n39,0,38,0,64,0,83,0,62,0,45,0\n51,0,10,0,49,0,26,0,73,0,12,0\n71,0,74,0,25,0,56,0,9,0,85,0\n68,0,16,0,46,0,43,0,14,0,70,0\n75,0,61,0,27,0,69,0,29,0,42,0\n84,0,21,0,1,0,3,0,86,0,53,0\n37,0,23,0,24,0,2,0,40,0,57,0\n17,0,34,0,77,0,13,0,78,0,11,0\n32,0,79,0,63,0,81,0,41,0,31,0\n44,0,82,0,85,0,52,0,30,0,45,0\n38,0,18,0,54,0,46,0,60,0,26,0\n27,0,62,0,35,0,10,0,22,0,6,0\n80,0,70,0,66,0,1,0,4,0,19,0\n43,0,76,0,39,0,75,0,3,0,73,0\n34,0,7,0,61,0,5,0,71,0,86,0\n83,0,68,0,69,0,65,0,17,0,58,0\n81,0,11,0,56,0,48,0,55,0,57,0\n15,0,78,0,42,0,72,0,23,0,25,0\n84,0,16,0,49,0,20,0,77,0,37,0\n52,0,31,0,51,0,40,0,53,0,74,0\n21,0,41,0,2,0,59,0,29,0,9,0\n50,0,8,0,14,0,32,0,44,0,67,0\n24,0,33,0,64,0,36,0,79,0,13,0\n28,0,47,0,56,0,12,0,63,0,75,0\n39,1,71,0,35,0,82,1,17,0,42,0\n4,0,73,0,5,0,37,0,54,0,25,0\n30,0,18,0,10,0,23,0,58,0,74,0\n26,0,48,0,31,0,16,0,34,0,85,0\n53,0,77,0,69,0,19,0,57,0,8,0\n3,0,29,0,83,0,49,0,40,0,14,0\n13,0,51,0,72,0,32,0,84,0,28,0\n67,0,76,0,66,0,68,0,47,0,27,0\n11,0,65,0,2,0,7,0,45,0,50,0\n20,0,41,0,44,0,55,0,1,0,64,0\n38,0,86,0,33,0,59,0,70,0,63,0\n15,0,60,0,24,0,80,0,12,0,22,0\n52,0,78,0,9,0,62,0,79,0,46,0\n6,0,36,0,61,0,43,0,81,0,21,0\n54,0,72,0,66,0,56,0,8,0,34,0\n4,0,57,0,47,0,83,0,71,0,16,0\n65,0,29,0,37,0,10,0,48,0,64,0\n73,0,63,0,18,0,42,0,7,0,84,0\n45,0,51,0,14,0,60,0,27,0,77,0\n50,0,85,0,53,0,46,0,20,0,33,0\n49,0,17,0,67,0,43,0,25,0,52,0\n61,0,19,0,55,0,39,0,23,0,12,0\n69,0,2,0,79,0,6,0,30,0,1,0\n13,0,41,0,35,0,76,0,80,0,40,0\n86,0,28,0,9,0,15,0,81,0,26,0\n21,0,22,0,78,0,58,0,38,0,31,0\n68,0,59,0,62,0,3,0,24,0,44,0\n11,0,75,0,74,0,82,0,5,0,32,0\n70,0,23,0,56,0,36,0,65,0,20,0\n37,0,79,0,18,0,43,0,50,0,51,0\n66,0,45,0,42,0,33,0,16,0,41,0\n1,0,72,0,52,0,14,0,63,0,35,0\n19,0,26,0,29,0,6,0,7,0,17,0\n58,0,13,0,67,0,57,0,61,0,3,0\n47,0,73,0,15,0,82,0,62,0,2,0\n11,0,31,0,49,0,46,0,69,0,24,0\n8,0,25,0,39,0,36,0,68,0,10,0\n78,0,48,0,71,0,84,0,76,0,44,0\n77,0,80,0,9,0,38,0,30,0,5,0\n70,0,75,0,34,0,53,0,81,0,22,0\n28,0,55,0,85,0,60,0,4,0,21,0\n40,0,32,0,64,0,54,0,27,0,86,0\n59,0,12,0,42,0,83,0,74,0,79,0\n50,0,23,0,26,0,69,0,52,0,47,0\n14,0,71,0,36,0,41,0,37,0,19,0\n29,0,24,0,20,0,63,0,51,0,66,0\n72,0,10,0,5,0,44,0,17,0,2,0\n21,0,76,0,62,0,49,0,70,0,57,0\n6,0,40,0,73,0,55,0,38,0,16,0\n46,0,65,0,15,0,84,0,34,0,39,0\n12,0,3,0,81,0,77,0,33,0,35,0\n45,0,32,0,53,0,4,0,58,0,9,0\n85,0,22,0,64,0,61,0,8,0,11,0\n18,0,25,0,80,0,27,0,82,0,83,0\n7,0,54,0,68,0,74,0,78,0,28,0\n30,0,43,0,56,0,13,0,31,0,86,0\n48,0,75,0,1,0,60,0,59,0,67,0\n50,0,29,0,15,0,77,0,55,0,71,0\n42,0,62,0,14,0,65,0,53,0,5,0\n47,0,17,0,3,0,38,0,37,0,85,0\n44,0,40,0,25,0,79,0,19,0,21,0\n24,0,34,0,76,0,18,0,32,0,6,0\n31,0,12,0,27,0,20,0,8,0,9,0\n16,0,39,0,81,0,1,0,51,0,7,0\n69,0,70,0,67,0,64,0,35,0,78,0\n45,0,56,0,84,0,61,0,59,0,10,0\n74,0,4,0,22,0,26,0,2,0,13,0\n73,0,83,0,52,0,48,0,28,0,36,0\n43,0,54,0,63,0,80,0,58,0,11,0\n41,0,46,0,57,0,75,0,30,0,72,0\n49,0,82,0,33,0,23,0,68,0,60,0\n86,0,65,0,79,0,66,0,85,0,35,0\n7,0,69,0,14,0,56,0,38,0,15,0\n39,0,5,0,47,0,18,0,78,0,29,0\n77,0,59,0,4,0,76,0,31,0,64,0\n27,0,58,0,1,0,24,0,28,0,71,0\n2,0,19,0,16,0,75,0,54,0,52,0\n36,0,12,0,30,0,11,0,84,0,40,0\n6,0,82,0,70,0,51,0,3,0,41,0\n33,0,10,0,83,0,67,0,21,0,34,0\n23,0,17,0,46,0,32,0,73,0,66,0\n53,0,37,0,26,0,61,0,80,0,68,0\n44,0,43,0,57,0,42,0,22,0,9,0\n60,0,25,0,62,0,81,0,20,0,13,0\n55,0,45,0,8,0,63,0,74,0,49,0\n86,0,72,0,82,0,48,0,50,0,39,0\n"
  },
  {
    "path": "schedules/86_9.csv",
    "content": "6,0,31,0,76,0,82,0,73,0,70,0\n15,0,46,0,22,0,44,0,59,0,41,0\n66,0,71,0,81,0,21,0,14,0,65,0\n54,0,84,0,32,0,47,0,16,0,79,0\n50,0,56,0,58,0,57,0,18,0,74,0\n78,0,4,0,30,0,67,0,85,0,28,0\n12,0,35,0,52,0,68,0,63,0,20,0\n11,0,75,0,55,0,53,0,5,0,80,0\n36,0,13,0,60,0,19,0,37,0,48,0\n1,0,26,0,24,0,69,0,17,0,40,0\n23,0,49,0,2,0,33,0,51,0,38,0\n10,0,27,0,9,0,86,0,42,0,45,0\n25,0,7,0,29,0,8,0,34,0,72,0\n3,0,77,0,64,0,83,0,62,0,43,0\n39,0,85,0,84,0,61,0,73,0,56,0\n80,0,21,0,59,0,78,0,60,0,32,0\n6,0,47,0,53,0,15,0,20,0,24,0\n82,0,4,0,5,0,48,0,69,0,74,0\n17,0,75,0,28,0,13,0,51,0,66,0\n31,0,33,0,67,0,10,0,46,0,79,0\n14,0,34,0,41,0,3,0,9,0,54,0\n19,0,12,0,43,0,40,0,25,0,81,0\n63,0,65,0,83,0,45,0,29,0,26,0\n76,0,30,0,44,0,77,0,18,0,2,0\n38,0,62,0,8,0,42,0,50,0,36,0\n23,0,58,0,11,0,68,0,86,0,1,0\n27,0,22,0,7,0,49,0,35,0,57,0\n70,0,64,0,52,0,71,0,61,0,16,0\n37,0,39,0,20,0,72,0,55,0,9,0\n3,0,59,0,73,0,48,0,29,0,24,0\n51,0,5,0,56,0,78,0,81,0,6,0\n60,0,47,0,83,0,25,0,75,0,85,0\n15,0,80,0,30,0,84,0,38,0,58,0\n32,0,18,0,45,0,1,0,34,0,49,0\n61,0,42,0,7,0,28,0,12,0,31,0\n22,0,36,0,77,0,11,0,54,0,71,0\n52,0,17,0,46,0,19,0,2,0,14,0\n44,0,66,0,50,0,70,0,63,0,55,0\n43,0,8,0,79,0,76,0,68,0,69,0\n23,0,57,0,53,0,26,0,10,0,4,0\n35,0,62,0,13,0,33,0,41,0,39,0\n86,0,21,0,40,0,64,0,72,0,74,0\n27,0,82,0,16,0,67,0,37,0,65,0\n42,0,34,0,73,0,15,0,83,0,71,0\n29,0,60,0,55,0,14,0,31,0,47,0\n85,0,70,0,77,0,8,0,9,0,1,0\n18,0,78,0,84,0,36,0,23,0,25,0\n32,0,50,0,35,0,5,0,61,0,24,0\n4,0,79,0,45,0,51,0,22,0,80,0\n58,0,63,0,39,0,21,0,69,0,7,0\n54,0,86,0,57,0,59,0,82,0,20,0\n53,0,19,0,68,0,66,0,37,0,33,0\n16,0,49,0,81,0,44,0,13,0,26,0\n65,0,6,0,30,0,46,0,40,0,62,0\n28,0,38,0,10,0,11,0,74,0,52,0\n41,0,76,0,48,0,17,0,64,0,27,0\n12,0,72,0,3,0,75,0,56,0,2,0\n43,0,18,0,24,0,67,0,42,0,39,0\n29,0,23,0,80,0,77,0,69,0,35,0\n68,0,44,0,78,0,14,0,83,0,82,0\n1,0,55,0,61,0,59,0,25,0,33,0\n85,0,16,0,86,0,36,0,6,0,66,0\n81,0,45,0,48,0,52,0,15,0,54,0\n41,0,28,0,73,0,40,0,50,0,60,0\n71,0,51,0,10,0,37,0,7,0,3,0\n64,0,63,0,75,0,84,0,22,0,31,0\n65,0,4,0,2,0,58,0,43,0,32,0\n21,0,56,0,11,0,47,0,19,0,62,0\n67,0,57,0,5,0,76,0,38,0,72,0\n17,0,49,0,9,0,30,0,12,0,53,0\n70,0,79,0,34,0,27,0,26,0,20,0\n46,0,8,0,71,0,74,0,13,0,23,0\n33,0,36,0,69,0,64,0,28,0,15,0\n48,0,16,0,1,0,51,0,31,0,83,0\n66,0,47,0,58,0,82,0,77,0,52,0\n43,0,45,0,10,0,72,0,35,0,44,0\n9,0,65,0,38,0,22,0,6,0,60,0\n14,0,56,0,26,0,30,0,25,0,86,0\n27,0,24,0,46,0,84,0,55,0,4,0\n7,0,13,0,67,0,61,0,2,0,20,0\n3,0,53,0,8,0,63,0,81,0,32,0\n79,0,73,0,18,0,62,0,12,0,5,0\n57,0,42,0,41,0,21,0,70,0,75,0\n11,0,40,0,29,0,17,0,78,0,37,0\n74,0,34,0,59,0,76,0,19,0,85,0\n80,0,50,0,68,0,39,0,49,0,54,0\n31,0,25,0,15,0,66,0,9,0,4,0\n83,0,72,0,61,0,81,0,36,0,30,0\n60,0,71,0,5,0,43,0,1,0,84,0\n48,0,63,0,77,0,86,0,28,0,46,0\n37,0,22,0,21,0,8,0,73,0,23,0\n58,0,35,0,6,0,79,0,3,0,17,0\n32,0,29,0,62,0,27,0,68,0,75,0\n2,0,74,0,47,0,70,0,39,0,78,0\n55,0,69,0,12,0,45,0,57,0,16,0\n80,0,14,0,20,0,51,0,42,0,64,0\n26,0,85,0,52,0,18,0,7,0,33,0\n24,0,82,0,19,0,49,0,10,0,41,0\n67,0,40,0,56,0,44,0,34,0,53,0\n59,0,65,0,76,0,50,0,13,0,11,0\n54,0,61,0,21,0,38,0,4,0,3,0\n2,0,15,0,39,0,60,0,8,0,57,0\n74,0,25,0,20,0,45,0,73,0,77,0\n26,0,48,0,72,0,42,0,22,0,58,0\n86,0,35,0,78,0,71,0,19,0,55,0\n37,0,24,0,62,0,44,0,31,0,85,0\n64,0,34,0,68,0,13,0,30,0,47,0\n69,0,66,0,83,0,18,0,11,0,27,0\n38,0,7,0,81,0,79,0,75,0,82,0\n50,0,51,0,53,0,46,0,29,0,43,0\n70,0,28,0,23,0,5,0,54,0,65,0\n40,0,84,0,49,0,9,0,52,0,59,0\n67,0,1,0,36,0,12,0,6,0,41,0\n17,0,33,0,63,0,56,0,16,0,80,0\n14,0,76,0,77,0,32,0,10,0,39,0\n79,0,78,0,57,0,66,0,61,0,48,0\n22,0,69,0,86,0,81,0,34,0,50,0\n82,0,11,0,25,0,35,0,64,0,2,0\n85,0,42,0,13,0,5,0,40,0,3,0\n60,0,70,0,62,0,45,0,7,0,53,0\n9,0,33,0,75,0,24,0,58,0,71,0\n15,0,84,0,12,0,29,0,76,0,21,0\n14,0,37,0,74,0,49,0,43,0,63,0\n56,0,38,0,20,0,46,0,1,0,83,0\n54,0,67,0,51,0,26,0,55,0,8,0\n30,0,32,0,31,0,52,0,23,0,41,0\n10,0,17,0,47,0,65,0,36,0,73,0\n44,0,6,0,19,0,28,0,27,0,80,0\n16,0,72,0,18,0,68,0,59,0,4,0\n"
  },
  {
    "path": "schedules/87_1.csv",
    "content": "30,0,56,0,20,0,38,0,37,0,42,0\n73,0,66,0,71,0,21,0,16,0,61,0\n8,0,19,0,83,0,54,0,5,0,60,0\n22,0,25,0,82,0,39,0,81,0,50,0\n41,0,58,0,32,0,3,0,29,0,70,0\n9,0,87,0,17,0,45,0,85,0,65,0\n48,0,44,0,79,0,75,0,49,0,4,0\n13,0,11,0,2,0,15,0,18,0,40,0\n62,0,68,0,51,0,46,0,12,0,23,0\n27,0,10,0,84,0,24,0,26,0,35,0\n47,0,1,0,28,0,64,0,52,0,80,0\n14,0,72,0,43,0,76,0,34,0,57,0\n55,0,86,0,6,0,67,0,31,0,53,0\n77,0,69,0,36,0,59,0,63,0,74,0\n33,0,7,0,65,1,78,0,73,1,82,1\n"
  },
  {
    "path": "schedules/87_10.csv",
    "content": "8,0,10,0,66,0,33,0,7,0,34,0\n50,0,2,0,48,0,45,0,4,0,75,0\n70,0,32,0,72,0,12,0,51,0,46,0\n79,0,21,0,59,0,17,0,49,0,40,0\n27,0,37,0,24,0,86,0,62,0,1,0\n29,0,44,0,42,0,85,0,6,0,67,0\n84,0,26,0,78,0,64,0,73,0,11,0\n65,0,57,0,87,0,56,0,69,0,22,0\n23,0,71,0,47,0,55,0,9,0,76,0\n15,0,60,0,18,0,36,0,68,0,35,0\n16,0,30,0,14,0,82,0,38,0,31,0\n19,0,63,0,5,0,58,0,41,0,77,0\n3,0,39,0,81,0,20,0,53,0,13,0\n61,0,43,0,52,0,83,0,54,0,80,0\n25,0,78,0,1,0,28,0,74,0,44,0\n84,0,56,0,79,0,51,0,34,0,50,0\n24,0,55,0,64,0,7,0,45,0,49,0\n47,0,22,0,6,0,26,0,60,0,32,0\n46,0,21,0,36,0,19,0,10,0,14,0\n38,0,85,0,66,0,70,0,3,0,17,0\n16,0,77,0,33,0,86,0,4,0,71,0\n43,0,9,0,74,0,39,0,58,0,48,0\n62,0,42,0,65,0,13,0,11,0,5,0\n63,0,76,0,8,0,27,0,83,0,25,0\n41,0,54,0,73,0,15,0,40,0,69,0\n52,0,23,0,35,0,37,0,31,0,75,0\n87,0,53,0,18,0,61,0,82,0,72,0\n59,0,12,0,68,0,20,0,29,0,30,0\n80,0,81,0,28,0,2,0,67,0,57,0\n1,0,34,0,5,0,85,0,26,0,49,0\n10,0,27,0,77,0,65,0,78,0,9,0\n14,0,66,0,32,0,83,0,48,0,71,0\n35,0,44,0,62,0,43,0,17,0,47,0\n64,0,76,0,40,0,3,0,36,0,51,0\n53,0,86,0,56,0,23,0,60,0,58,0\n13,0,25,0,82,0,41,0,68,0,2,0\n12,0,61,0,42,0,75,0,73,0,50,0\n31,0,46,0,4,0,15,0,63,0,67,0\n39,0,6,0,24,0,57,0,59,0,8,0\n69,0,28,0,19,0,84,0,29,0,72,0\n79,0,87,0,30,0,33,0,54,0,11,0\n20,0,80,0,38,0,22,0,7,0,37,0\n18,0,70,0,81,0,21,0,55,0,74,0\n45,0,1,0,42,0,16,0,52,0,58,0\n41,0,66,0,49,0,61,0,36,0,4,0\n75,0,76,0,10,0,26,0,39,0,53,0\n63,0,44,0,84,0,13,0,24,0,14,0\n34,0,12,0,9,0,83,0,2,0,46,0\n6,0,51,0,5,0,28,0,30,0,27,0\n19,0,74,0,73,0,86,0,47,0,38,0\n22,0,82,0,55,0,62,0,50,0,52,0\n37,0,11,0,71,0,59,0,15,0,70,0\n56,0,21,0,20,0,85,0,33,0,45,0\n72,0,23,0,80,0,79,0,65,0,8,0\n68,0,67,0,54,0,48,0,78,0,17,0\n77,0,25,0,81,0,40,0,87,0,35,0\n57,0,3,0,16,0,60,0,29,0,43,0\n7,0,64,0,31,0,69,0,32,0,18,0\n83,0,30,0,5,0,75,0,22,0,44,0\n51,0,63,0,53,0,42,0,49,0,37,0\n62,0,73,0,85,0,4,0,80,0,10,0\n34,0,39,0,41,0,21,0,78,0,23,0\n9,0,70,0,86,0,40,0,67,0,14,0\n45,0,57,0,35,0,54,0,27,0,84,0\n77,0,8,0,47,0,64,0,52,0,20,0\n26,0,68,0,69,0,58,0,24,0,3,0\n46,0,13,0,74,0,56,0,66,0,50,0\n43,0,12,0,36,0,82,0,79,0,7,0\n18,0,1,0,17,0,71,0,2,0,29,0\n28,0,32,0,59,0,76,0,16,0,87,0\n60,0,72,0,11,0,55,0,31,0,25,0\n15,0,6,0,38,0,65,0,81,0,48,0\n61,0,33,0,37,0,19,0,68,0,64,0\n3,0,46,0,86,0,30,0,78,0,42,0\n23,0,77,0,66,0,51,0,54,0,62,0\n56,0,85,0,7,0,40,0,52,0,39,0\n67,0,8,0,43,0,84,0,21,0,22,0\n72,0,36,0,2,0,44,0,26,0,59,0\n18,0,20,0,50,0,24,0,11,0,76,0\n83,0,19,0,87,0,13,0,1,0,55,0\n61,0,10,0,6,0,70,0,25,0,16,0\n69,0,27,0,33,0,81,0,60,0,49,0\n48,0,47,0,12,0,31,0,57,0,41,0\n17,0,15,0,53,0,80,0,45,0,14,0\n58,0,28,0,38,0,34,0,35,0,4,0\n79,0,9,0,5,0,73,0,29,0,32,0\n82,0,75,0,65,0,71,0,63,0,74,0\n86,0,39,0,83,0,11,0,36,0,6,0\n49,0,70,0,44,0,50,0,19,0,23,0\n68,0,27,0,31,0,42,0,22,0,66,0\n13,0,40,0,80,0,12,0,78,0,60,0\n59,0,58,0,33,0,84,0,25,0,46,0\n4,0,55,0,32,0,53,0,35,0,30,0\n24,0,75,0,81,0,72,0,85,0,54,0\n57,0,7,0,15,0,9,0,61,0,21,0\n17,0,16,0,34,0,65,0,20,0,73,0\n48,0,79,0,3,0,62,0,18,0,63,0\n51,0,8,0,29,0,41,0,14,0,74,0\n2,0,38,0,52,0,87,0,64,0,5,0\n56,0,10,0,67,0,82,0,47,0,1,0\n76,0,37,0,69,0,77,0,43,0,45,0\n71,0,13,0,54,0,26,0,28,0,31,0\n24,0,19,0,16,0,53,0,66,0,78,0\n62,0,83,0,49,0,15,0,84,0,39,0\n32,0,58,0,61,0,85,0,11,0,81,0\n74,0,33,0,52,0,12,0,6,0,3,0\n65,0,7,0,35,0,67,0,50,0,59,0\n47,0,4,0,25,0,21,0,5,0,69,0\n14,0,57,0,18,0,73,0,34,0,37,0\n43,0,2,0,51,0,20,0,86,0,55,0\n22,0,72,0,40,0,63,0,23,0,1,0\n82,0,29,0,64,0,80,0,46,0,27,0\n26,0,48,0,70,0,56,0,30,0,77,0\n42,0,60,0,41,0,38,0,79,0,76,0\n17,0,75,0,9,0,36,0,28,0,8,0\n71,0,68,0,87,0,10,0,44,0,45,0\n78,0,50,0,43,0,33,0,15,0,5,0\n21,0,85,0,35,0,16,0,13,0,51,0\n14,0,7,0,47,0,27,0,3,0,72,0\n63,0,26,0,86,0,52,0,66,0,57,0\n73,0,49,0,30,0,58,0,76,0,2,0\n22,0,11,0,74,0,77,0,34,0,53,0\n32,0,10,0,83,0,23,0,42,0,17,0\n20,0,71,0,67,0,61,0,79,0,69,0\n48,0,46,0,60,0,8,0,44,0,37,0\n54,0,4,0,64,0,65,0,1,0,12,0\n84,0,55,0,40,0,68,0,75,0,6,0\n45,0,9,0,59,0,81,0,82,0,19,0\n36,0,25,0,29,0,56,0,62,0,38,0\n87,0,31,0,80,0,41,0,70,0,24,0\n28,0,39,0,42,0,18,0,47,0,33,0\n49,0,72,0,20,0,74,0,57,0,10,0\n76,0,78,0,22,0,14,0,35,0,61,0\n15,0,34,0,75,0,32,0,86,0,13,0\n46,0,79,0,1,0,6,0,7,0,77,0\n55,0,3,0,54,0,56,0,59,0,5,0\n58,0,21,0,66,0,29,0,65,0,37,0\n36,0,23,0,85,0,48,0,87,0,27,0\n50,0,25,0,17,0,30,0,39,0,64,0\n51,0,4,0,60,0,24,0,83,0,82,0\n52,0,41,0,71,0,84,0,53,0,81,0\n28,0,73,0,68,0,70,0,63,0,43,0\n45,0,26,0,38,0,18,0,67,0,12,0\n44,0,11,0,69,0,80,0,9,0,16,0\n40,0,62,0,31,0,8,0,19,0,2,0\n"
  },
  {
    "path": "schedules/87_11.csv",
    "content": "43,0,24,0,70,0,52,0,47,0,5,0\n23,0,86,0,82,0,68,0,41,0,81,0\n57,0,53,0,39,0,78,0,73,0,45,0\n38,0,46,0,22,0,15,0,36,0,79,0\n55,0,50,0,59,0,27,0,65,0,16,0\n42,0,25,0,51,0,7,0,54,0,13,0\n3,0,18,0,49,0,83,0,58,0,61,0\n34,0,17,0,2,0,85,0,69,0,8,0\n4,0,77,0,56,0,72,0,30,0,76,0\n66,0,26,0,19,0,20,0,35,0,48,0\n62,0,12,0,1,0,9,0,11,0,60,0\n21,0,44,0,37,0,67,0,33,0,10,0\n29,0,74,0,87,0,84,0,64,0,31,0\n71,0,80,0,63,0,75,0,14,0,32,0\n40,0,28,0,70,0,6,0,42,0,34,0\n3,0,69,0,77,0,27,0,41,0,39,0\n55,0,45,0,61,0,24,0,20,0,82,0\n13,0,68,0,76,0,38,0,85,0,59,0\n60,0,19,0,44,0,73,0,72,0,8,0\n84,0,57,0,7,0,21,0,17,0,11,0\n48,0,9,0,46,0,56,0,74,0,33,0\n16,0,2,0,31,0,71,0,1,0,49,0\n50,0,32,0,52,0,87,0,53,0,51,0\n64,0,35,0,12,0,81,0,78,0,86,0\n62,0,4,0,29,0,18,0,43,0,75,0\n80,0,6,0,25,0,66,0,22,0,58,0\n37,0,47,0,26,0,14,0,5,0,15,0\n23,0,65,0,36,0,10,0,30,0,40,0\n79,0,67,0,63,0,83,0,28,0,54,0\n8,1,9,0,20,0,42,1,85,0,52,0\n74,1,3,0,1,0,38,0,17,0,44,0\n71,0,62,0,35,0,13,0,50,0,39,0\n25,0,56,0,68,0,18,0,60,0,45,0\n4,0,15,0,69,0,51,0,49,0,82,0\n46,0,55,0,87,0,76,0,14,0,70,0\n83,0,22,0,34,0,5,0,86,0,7,0\n53,0,19,0,48,0,10,0,47,0,80,0\n31,0,24,0,75,0,40,0,57,0,81,0\n78,0,32,0,58,0,79,0,27,0,37,0\n30,0,29,0,41,0,12,0,67,0,59,0\n64,0,77,0,73,0,28,0,26,0,16,0\n21,0,6,0,72,0,54,0,63,0,23,0\n65,0,11,0,33,0,61,0,2,0,43,0\n84,0,36,0,14,0,66,0,4,0,68,0\n8,0,55,0,38,0,80,0,49,0,57,0\n79,0,31,0,45,0,50,0,62,0,76,0\n83,0,32,0,29,0,42,0,69,0,40,0\n67,0,74,0,15,0,7,0,75,0,16,0\n12,0,28,0,82,0,37,0,85,0,46,0\n24,0,64,0,13,0,58,0,44,0,2,0\n65,0,53,0,21,0,35,0,77,0,18,0\n43,0,63,0,26,0,59,0,10,0,56,0\n22,0,70,0,73,0,61,0,30,0,84,0\n39,0,48,0,72,0,36,0,11,0,25,0\n20,0,5,0,81,0,17,0,27,0,6,0\n78,0,66,0,54,0,1,0,41,0,52,0\n60,0,34,0,51,0,23,0,47,0,71,0\n87,0,3,0,86,0,9,0,19,0,33,0\n38,0,58,0,7,0,4,0,12,0,10,0\n8,0,77,0,65,0,13,0,70,0,75,0\n53,0,42,0,59,0,62,0,36,0,24,0\n48,0,22,0,63,0,69,0,57,0,37,0\n52,0,55,0,44,0,83,0,26,0,17,0\n23,0,5,0,56,0,29,0,28,0,66,0\n33,0,31,0,20,0,68,0,64,0,72,0\n82,0,47,0,73,0,74,0,54,0,40,0\n86,0,27,0,76,0,2,0,25,0,71,0\n21,0,81,0,34,0,1,0,45,0,43,0\n51,0,18,0,67,0,46,0,78,0,84,0\n39,0,79,0,80,0,87,0,16,0,60,0\n85,0,30,0,11,0,49,0,6,0,19,0\n15,0,61,0,9,0,35,0,32,0,41,0\n14,0,50,0,42,0,3,0,22,0,64,0\n2,0,48,0,54,0,12,0,55,0,77,0\n62,0,68,0,37,0,52,0,65,0,7,0\n58,0,45,0,75,0,31,0,17,0,23,0\n33,0,53,0,18,0,16,0,38,0,66,0\n83,0,43,0,4,0,19,0,71,0,46,0\n35,0,5,0,60,0,82,0,84,0,67,0\n9,0,59,0,40,0,21,0,80,0,78,0\n6,0,56,0,47,0,13,0,32,0,3,0\n10,0,49,0,20,0,28,0,87,0,25,0\n85,0,57,0,86,0,79,0,14,0,44,0\n69,0,61,0,81,0,50,0,26,0,72,0\n74,0,24,0,30,0,34,0,27,0,15,0\n41,0,11,0,8,0,73,0,76,0,36,0\n70,0,29,0,1,0,63,0,51,0,39,0\n77,0,45,0,19,0,59,0,22,0,5,0\n10,0,6,0,75,0,16,0,52,0,84,0\n65,0,60,0,67,0,58,0,48,0,14,0\n61,0,42,0,78,0,31,0,47,0,38,0\n17,0,24,0,37,0,50,0,9,0,25,0\n81,0,11,0,71,0,87,0,44,0,56,0\n18,0,82,0,76,0,64,0,63,0,30,0\n41,0,28,0,4,0,53,0,2,0,26,0\n36,0,27,0,54,0,80,0,35,0,43,0\n68,0,8,0,15,0,21,0,12,0,3,0\n66,0,72,0,40,0,86,0,55,0,51,0\n13,0,79,0,49,0,34,0,33,0,29,0\n70,0,23,0,74,0,57,0,62,0,83,0\n46,0,7,0,20,0,1,0,69,0,73,0\n85,0,32,0,10,0,39,0,18,0,22,0\n48,0,6,0,38,0,24,0,71,0,41,0\n30,0,31,0,60,0,54,0,3,0,53,0\n15,0,76,0,55,0,44,0,43,0,78,0\n17,0,12,0,16,0,82,0,42,0,72,0\n83,0,59,0,87,0,37,0,66,0,8,0\n45,0,14,0,11,0,74,0,51,0,28,0\n58,0,86,0,36,0,50,0,77,0,29,0\n21,0,69,0,64,0,70,0,79,0,19,0\n75,0,49,0,26,0,39,0,9,0,68,0\n20,0,2,0,84,0,62,0,40,0,56,0\n80,0,34,0,65,0,67,0,4,0,73,0\n57,0,33,0,5,0,1,0,25,0,32,0\n7,0,81,0,35,0,63,0,85,0,47,0\n23,0,27,0,52,0,61,0,46,0,13,0\n18,0,15,0,59,0,31,0,70,0,86,0\n69,0,68,0,58,0,71,0,53,0,74,0\n40,0,64,0,49,0,45,0,41,0,37,0\n22,0,16,0,76,0,29,0,9,0,54,0\n84,0,25,0,79,0,12,0,26,0,65,0\n8,0,1,0,83,0,35,0,82,0,6,0\n61,0,87,0,47,0,36,0,21,0,75,0\n42,0,10,0,27,0,57,0,66,0,60,0\n5,0,80,0,46,0,44,0,72,0,62,0\n63,0,78,0,34,0,77,0,11,0,20,0\n13,0,67,0,52,0,4,0,55,0,81,0\n19,0,39,0,24,0,14,0,17,0,56,0\n32,0,28,0,7,0,30,0,43,0,48,0\n50,0,73,0,85,0,38,0,23,0,33,0\n51,0,3,0,35,0,2,0,79,0,59,0\n6,0,36,0,44,0,69,0,12,0,31,0\n75,0,53,0,25,0,11,0,34,0,82,0\n62,0,61,0,16,0,86,0,63,0,4,0\n81,0,39,0,54,0,58,0,19,0,15,0\n49,0,66,0,17,0,32,0,67,0,76,0\n71,0,9,0,10,0,55,0,73,0,5,0\n51,0,56,0,85,0,83,0,65,0,64,0\n74,0,41,0,22,0,21,0,13,0,20,0\n23,0,43,0,84,0,42,0,77,0,37,0\n52,0,14,0,72,0,38,0,2,0,29,0\n57,0,30,0,47,0,68,0,50,0,46,0\n1,0,27,0,18,0,87,0,48,0,40,0\n78,0,60,0,8,0,24,0,28,0,33,0\n45,0,3,0,7,0,26,0,80,0,70,0\n32,0,36,0,31,0,55,0,19,0,34,0\n59,0,44,0,39,0,20,0,4,0,23,0\n83,0,72,0,13,0,53,0,84,0,15,0\n17,0,54,0,10,0,64,0,46,0,62,0\n52,0,21,0,73,0,48,0,49,0,42,0\n66,0,50,0,2,0,63,0,74,0,60,0\n43,0,5,0,41,0,87,0,58,0,85,0\n16,0,25,0,81,0,30,0,8,0,14,0\n9,0,67,0,47,0,6,0,45,0,57,0\n40,0,77,0,79,0,61,0,7,0,68,0\n51,0,27,0,33,0,75,0,12,0,22,0\n28,0,1,0,80,0,24,0,76,0,69,0\n78,0,29,0,82,0,65,0,3,0,71,0\n37,0,70,0,38,0,11,0,56,0,35,0\n26,0,42,0,74,0,86,0,18,0,8,0\n"
  },
  {
    "path": "schedules/87_12.csv",
    "content": "83,0,32,0,82,0,15,0,74,0,86,0\n17,0,78,0,24,0,85,0,63,0,29,0\n71,0,20,0,46,0,64,0,58,0,72,0\n33,0,16,0,6,0,77,0,26,0,87,0\n7,0,53,0,3,0,23,0,14,0,38,0\n35,0,12,0,68,0,45,0,9,0,36,0\n5,0,42,0,52,0,70,0,67,0,4,0\n54,0,25,0,13,0,22,0,41,0,56,0\n21,0,47,0,19,0,79,0,28,0,30,0\n1,0,62,0,50,0,37,0,8,0,31,0\n59,0,76,0,11,0,18,0,34,0,2,0\n73,0,61,0,48,0,81,0,51,0,27,0\n84,0,55,0,44,0,40,0,39,0,10,0\n57,0,80,0,75,0,69,0,60,0,43,0\n49,0,66,0,41,0,65,0,36,0,5,0\n26,0,17,0,83,0,54,0,64,0,3,0\n15,0,9,0,47,0,52,0,38,0,24,0\n79,0,76,0,12,0,20,0,23,0,1,0\n67,0,53,0,28,0,68,0,74,0,50,0\n63,0,71,0,37,0,30,0,11,0,48,0\n2,0,4,0,10,0,43,0,58,0,39,0\n65,0,13,0,62,0,44,0,82,0,80,0\n21,0,56,0,73,0,72,0,35,0,69,0\n49,0,87,0,25,0,34,0,84,0,29,0\n18,0,42,0,16,0,45,0,27,0,22,0\n6,0,61,0,77,0,55,0,19,0,7,0\n32,0,31,0,70,0,60,0,40,0,51,0\n81,0,86,0,46,0,78,0,57,0,59,0\n75,0,66,0,14,0,85,0,33,0,8,0\n38,0,10,0,80,0,48,0,24,0,67,0\n28,0,4,0,29,0,13,0,71,0,11,0\n64,0,43,0,53,0,49,0,42,0,9,0\n18,0,47,0,3,0,69,0,20,0,74,0\n39,0,87,0,27,0,12,0,31,0,41,0\n73,0,60,0,59,0,37,0,25,0,15,0\n78,0,62,0,32,0,23,0,5,0,55,0\n33,0,72,0,14,0,65,0,30,0,6,0\n75,0,45,0,19,0,54,0,46,0,17,0\n56,0,85,0,36,0,82,0,61,0,81,0\n50,0,77,0,8,0,51,0,21,0,84,0\n26,0,22,0,66,0,57,0,52,0,7,0\n58,0,40,0,83,0,34,0,68,0,79,0\n1,0,44,0,86,0,16,0,35,0,2,0\n63,0,70,0,12,0,76,0,73,0,10,0\n28,0,3,0,25,0,62,0,15,0,42,0\n31,0,11,0,81,0,6,0,53,0,5,0\n20,0,67,0,43,0,65,0,46,0,21,0\n41,0,84,0,17,0,51,0,7,0,72,0\n36,0,34,0,38,0,22,0,32,0,54,0\n13,0,57,0,30,0,45,0,23,0,68,0\n24,0,26,0,39,0,8,0,18,0,70,0\n71,0,52,0,60,0,16,0,79,0,85,0\n14,0,58,0,80,0,86,0,76,0,64,0\n69,0,50,0,75,0,61,0,29,0,66,0\n83,0,55,0,33,0,56,0,59,0,48,0\n77,0,63,0,35,0,47,0,49,0,40,0\n4,0,19,0,82,0,2,0,1,0,27,0\n74,0,87,0,78,0,37,0,9,0,44,0\n62,0,16,0,38,0,41,0,81,0,20,0\n7,0,64,0,65,0,8,0,79,0,24,0\n14,0,61,0,5,0,84,0,57,0,18,0\n15,0,75,0,23,0,39,0,67,0,21,0\n36,0,51,0,6,0,63,0,3,0,86,0\n13,0,40,0,73,0,66,0,17,0,2,0\n1,0,42,0,77,0,60,0,83,0,78,0\n34,0,30,0,27,0,53,0,55,0,70,0\n49,0,76,0,50,0,4,0,54,0,48,0\n31,0,58,0,28,0,44,0,85,0,59,0\n56,0,46,0,19,0,47,0,87,0,68,0\n37,0,22,0,43,0,35,0,71,0,32,0\n33,0,29,0,74,0,52,0,12,0,45,0\n9,0,11,0,26,0,69,0,10,0,82,0\n80,0,72,0,53,0,25,0,1,0,36,0\n84,0,30,0,54,0,16,0,86,0,67,0\n57,0,85,0,73,0,8,0,20,0,34,0\n24,0,51,0,44,0,76,0,4,0,83,0\n58,0,35,0,23,0,19,0,18,0,17,0\n21,0,38,0,2,0,60,0,33,0,63,0\n68,0,32,0,48,0,6,0,69,0,66,0\n13,0,7,0,59,0,78,0,50,0,12,0\n5,0,56,0,82,0,64,0,37,0,39,0\n55,0,22,0,9,0,28,0,72,0,81,0\n61,0,87,0,15,0,79,0,11,0,70,0\n77,0,52,0,10,0,75,0,65,0,3,0\n29,0,40,0,42,0,46,0,41,0,80,0\n26,0,74,0,27,0,71,0,49,0,62,0\n31,0,47,0,25,0,43,0,45,0,14,0\n67,0,51,0,34,0,64,0,56,0,12,0\n69,0,28,0,23,0,16,0,8,0,83,0\n70,0,24,0,60,0,55,0,66,0,35,0\n3,0,57,0,2,0,48,0,21,0,87,0\n82,0,77,0,29,0,44,0,22,0,53,0\n17,0,49,0,39,0,11,0,86,0,52,0\n80,0,74,0,45,0,59,0,84,0,6,0\n5,0,43,0,19,0,85,0,38,0,26,0\n79,0,31,0,72,0,13,0,63,0,4,0\n14,0,15,0,27,0,78,0,1,0,10,0\n20,0,7,0,30,0,25,0,32,0,75,0\n42,0,65,0,71,0,47,0,54,0,73,0\n37,0,76,0,46,0,61,0,41,0,9,0\n40,0,62,0,36,0,33,0,50,0,58,0\n68,0,18,0,64,0,81,0,77,0,43,0\n72,0,8,0,11,0,44,0,74,0,60,0\n45,0,49,0,69,0,2,0,55,0,15,0\n17,0,38,0,20,0,87,0,28,0,80,0\n73,0,75,0,16,0,5,0,3,0,79,0\n13,0,52,0,41,0,34,0,19,0,63,0\n24,0,42,0,27,0,23,0,50,0,56,0\n33,0,86,0,10,0,37,0,68,0,53,0\n65,0,29,0,32,0,57,0,26,0,1,0\n70,0,48,0,84,0,78,0,58,0,47,0\n6,0,85,0,4,0,62,0,25,0,46,0\n61,0,21,0,76,0,31,0,71,0,22,0\n81,0,35,0,36,0,83,0,30,0,14,0\n7,0,12,0,67,0,40,0,18,0,82,0\n54,0,51,0,9,0,59,0,66,0,39,0\n11,0,3,0,41,0,55,0,50,0,43,0\n26,0,56,0,63,0,53,0,75,0,58,0\n25,0,79,0,65,0,78,0,38,0,69,0\n48,0,19,0,16,0,64,0,31,0,74,0\n84,0,15,0,5,0,29,0,76,0,35,0\n10,0,36,0,8,0,87,0,13,0,42,0\n22,0,24,0,40,0,30,0,1,0,59,0\n47,0,85,0,23,0,33,0,51,0,80,0\n83,0,18,0,73,0,21,0,52,0,32,0\n2,0,54,0,62,0,72,0,61,0,12,0\n45,0,81,0,44,0,7,0,70,0,49,0\n60,0,34,0,39,0,28,0,46,0,14,0\n86,0,20,0,4,0,9,0,77,0,66,0\n37,0,57,0,67,0,27,0,17,0,6,0\n68,0,71,0,84,0,82,0,75,0,24,0\n1,0,38,0,55,0,13,0,74,0,18,0\n41,0,64,0,10,0,32,0,61,0,30,0\n40,0,44,0,25,0,23,0,26,0,48,0\n53,0,63,0,59,0,69,0,62,0,87,0\n86,0,22,0,50,0,47,0,60,0,65,0\n79,0,35,0,39,0,42,0,57,0,33,0\n72,0,45,0,37,0,85,0,83,0,77,0\n17,0,4,0,8,0,12,0,15,0,81,0\n27,0,43,0,52,0,36,0,28,0,76,0\n58,0,46,0,82,0,49,0,16,0,51,0\n78,0,34,0,80,0,66,0,3,0,31,0\n67,0,9,0,14,0,19,0,71,0,73,0\n6,0,2,0,20,0,56,0,29,0,70,0\n7,0,54,0,68,0,11,0,21,0,5,0\n13,0,81,0,39,0,47,0,37,0,24,0\n86,0,28,0,35,0,41,0,75,0,26,0\n48,0,18,0,44,0,36,0,15,0,46,0\n30,0,69,0,33,0,76,0,31,0,42,0\n3,0,45,0,78,0,8,0,71,0,40,0\n65,0,61,0,17,0,34,0,16,0,53,0\n85,0,50,0,67,0,2,0,9,0,25,0\n20,0,63,0,84,0,27,0,19,0,83,0\n72,0,70,0,59,0,43,0,38,0,29,0\n12,0,49,0,77,0,32,0,80,0,79,0\n87,0,60,0,1,0,5,0,54,0,58,0\n6,0,11,0,64,0,23,0,22,0,73,0\n57,0,10,0,56,0,74,0,7,0,4,0\n51,0,62,0,55,0,52,0,68,0,14,0\n21,0,66,0,34,0,82,0,42,0,26,0\n19,0,29,0,8,0,43,0,48,0,86,0\n85,0,9,0,27,0,32,0,3,0,13,0\n28,0,33,0,49,0,1,0,67,0,61,0\n81,0,76,0,87,0,75,0,40,0,72,0\n60,0,23,0,64,0,84,0,4,0,36,0\n41,0,47,0,59,0,10,0,44,0,6,0\n24,0,74,0,2,0,5,0,46,0,77,0\n80,0,16,0,15,0,7,0,63,0,50,0\n55,0,58,0,21,0,65,0,12,0,37,0\n38,0,25,0,71,0,83,0,57,0,39,0\n52,0,35,0,54,0,82,0,31,0,20,0\n30,0,53,0,18,0,78,0,51,0,73,0\n22,0,69,0,68,0,17,0,14,0,70,0\n66,0,79,0,56,0,11,0,45,0,62,0\n"
  },
  {
    "path": "schedules/87_13.csv",
    "content": "43,0,4,0,84,0,23,0,31,0,10,0\n52,0,71,0,37,0,62,0,83,0,17,0\n82,0,49,0,28,0,56,0,20,0,60,0\n66,0,51,0,44,0,75,0,80,0,38,0\n21,0,79,0,54,0,9,0,25,0,59,0\n13,0,12,0,70,0,77,0,65,0,34,0\n72,0,48,0,6,0,22,0,1,0,63,0\n14,0,69,0,24,0,68,0,64,0,39,0\n42,0,19,0,46,0,36,0,78,0,27,0\n50,0,3,0,53,0,11,0,15,0,5,0\n41,0,57,0,81,0,85,0,76,0,16,0\n26,0,45,0,40,0,8,0,55,0,7,0\n86,0,67,0,33,0,30,0,35,0,29,0\n32,0,2,0,18,0,61,0,87,0,58,0\n73,0,62,0,68,0,47,0,74,0,25,0\n6,0,69,0,70,0,31,0,12,0,28,0\n11,0,49,0,77,0,43,0,42,0,51,0\n63,0,24,0,50,0,57,0,3,0,17,0\n79,0,64,0,56,0,83,0,36,0,80,0\n53,0,15,0,60,0,34,0,14,0,67,0\n76,0,39,0,45,0,18,0,44,0,72,0\n58,0,27,0,32,0,33,0,75,0,55,0\n23,0,47,0,66,0,52,0,40,0,59,0\n22,0,38,0,35,0,8,0,37,0,73,0\n30,0,86,0,61,0,16,0,48,0,7,0\n10,0,9,0,19,0,85,0,82,0,26,0\n41,0,1,0,84,0,21,0,46,0,81,0\n74,0,20,0,65,0,71,0,2,0,29,0\n54,0,4,0,5,0,13,0,78,0,87,0\n27,1,70,0,66,0,39,1,32,0,50,0\n80,1,17,0,49,0,8,0,31,0,76,0\n11,0,30,0,18,0,62,0,63,0,69,0\n82,0,77,0,15,0,33,0,16,0,22,0\n83,0,61,0,34,0,86,0,10,0,81,0\n48,0,68,0,43,0,41,0,6,0,75,0\n65,0,37,0,25,0,5,0,26,0,67,0\n42,0,56,0,84,0,71,0,24,0,47,0\n14,0,38,0,36,0,23,0,7,0,3,0\n55,0,87,0,59,0,46,0,60,0,85,0\n51,0,35,0,20,0,53,0,1,0,58,0\n40,0,79,0,78,0,13,0,2,0,44,0\n52,0,21,0,28,0,74,0,19,0,64,0\n73,0,29,0,57,0,9,0,54,0,72,0\n4,0,12,0,30,0,45,0,75,0,15,0\n62,0,33,0,81,0,6,0,39,0,65,0\n66,0,34,0,56,0,27,0,7,0,22,0\n35,0,77,0,10,0,63,0,47,0,17,0\n38,0,32,0,48,0,60,0,24,0,11,0\n67,0,79,0,68,0,71,0,85,0,23,0\n44,0,64,0,26,0,20,0,73,0,61,0\n86,0,52,0,2,0,31,0,46,0,50,0\n70,0,18,0,36,0,37,0,29,0,59,0\n25,0,43,0,5,0,57,0,82,0,83,0\n72,0,3,0,51,0,4,0,16,0,42,0\n53,0,45,0,9,0,69,0,84,0,19,0\n8,0,49,0,12,0,21,0,58,0,78,0\n80,0,74,0,41,0,13,0,55,0,14,0\n76,0,1,0,28,0,40,0,54,0,87,0\n33,0,31,0,59,0,56,0,75,0,11,0\n20,0,5,0,18,0,47,0,30,0,81,0\n26,0,42,0,39,0,17,0,2,0,48,0\n79,0,46,0,9,0,70,0,38,0,3,0\n19,0,85,0,29,0,66,0,6,0,24,0\n72,0,78,0,50,0,55,0,43,0,64,0\n27,0,60,0,54,0,62,0,45,0,51,0\n83,0,22,0,67,0,13,0,69,0,49,0\n35,0,15,0,44,0,21,0,41,0,65,0\n36,0,82,0,34,0,80,0,84,0,40,0\n1,0,10,0,73,0,71,0,68,0,76,0\n8,0,61,0,16,0,53,0,28,0,23,0\n12,0,74,0,77,0,57,0,87,0,7,0\n58,0,37,0,63,0,4,0,25,0,52,0\n14,0,32,0,22,0,86,0,47,0,54,0\n55,0,50,0,42,0,30,0,79,0,44,0\n17,0,59,0,64,0,34,0,62,0,6,0\n76,0,78,0,84,0,85,0,66,0,33,0\n81,0,36,0,24,0,2,0,28,0,67,0\n72,0,65,0,75,0,20,0,83,0,8,0\n9,0,68,0,87,0,31,0,15,0,49,0\n27,0,23,0,48,0,57,0,13,0,18,0\n86,0,71,0,14,0,63,0,51,0,5,0\n52,0,16,0,19,0,38,0,56,0,12,0\n46,0,45,0,32,0,35,0,73,0,82,0\n43,0,3,0,37,0,1,0,74,0,61,0\n25,0,40,0,69,0,60,0,70,0,41,0\n53,0,39,0,29,0,4,0,7,0,10,0\n80,0,77,0,58,0,11,0,21,0,26,0\n65,0,87,0,85,0,17,0,42,0,14,0\n15,0,28,0,22,0,78,0,71,0,51,0\n35,0,79,0,5,0,72,0,34,0,24,0\n49,0,44,0,74,0,59,0,12,0,32,0\n45,0,31,0,70,0,67,0,64,0,16,0\n38,0,4,0,57,0,20,0,62,0,55,0\n75,0,73,0,69,0,13,0,50,0,10,0\n43,0,7,0,47,0,58,0,60,0,76,0\n26,0,53,0,41,0,66,0,18,0,86,0\n63,0,8,0,25,0,1,0,36,0,33,0\n6,0,61,0,84,0,54,0,80,0,52,0\n29,0,23,0,40,0,81,0,3,0,39,0\n27,0,2,0,30,0,37,0,82,0,21,0\n11,0,68,0,19,0,83,0,77,0,46,0\n9,0,56,0,78,0,48,0,35,0,62,0\n74,0,71,0,50,0,45,0,38,0,34,0\n15,0,69,0,1,0,47,0,57,0,26,0\n52,0,41,0,7,0,33,0,51,0,79,0\n16,0,80,0,20,0,10,0,24,0,87,0\n55,0,76,0,23,0,22,0,2,0,12,0\n36,0,5,0,21,0,85,0,6,0,43,0\n8,0,48,0,28,0,3,0,68,0,32,0\n14,0,18,0,61,0,25,0,75,0,84,0\n70,0,83,0,56,0,44,0,53,0,17,0\n81,0,82,0,58,0,59,0,72,0,42,0\n64,0,13,0,63,0,29,0,49,0,46,0\n11,0,73,0,67,0,27,0,40,0,4,0\n9,0,86,0,60,0,37,0,77,0,39,0\n31,0,54,0,65,0,30,0,19,0,66,0\n1,0,78,0,14,0,45,0,24,0,16,0\n80,0,57,0,44,0,22,0,53,0,71,0\n72,0,87,0,33,0,69,0,26,0,36,0\n2,0,83,0,84,0,41,0,12,0,48,0\n55,0,81,0,68,0,35,0,70,0,63,0\n58,0,17,0,28,0,73,0,79,0,86,0\n65,0,32,0,40,0,10,0,51,0,56,0\n38,0,31,0,21,0,61,0,47,0,29,0\n25,0,77,0,6,0,49,0,4,0,50,0\n85,0,64,0,54,0,7,0,37,0,11,0\n15,0,30,0,59,0,27,0,8,0,19,0\n62,0,66,0,39,0,3,0,82,0,20,0\n23,0,75,0,46,0,74,0,5,0,76,0\n34,0,18,0,43,0,52,0,9,0,67,0\n13,0,60,0,21,0,42,0,57,0,68,0\n35,0,41,0,49,0,61,0,36,0,50,0\n24,0,33,0,2,0,70,0,73,0,4,0\n64,0,10,0,78,0,27,0,38,0,81,0\n83,0,58,0,55,0,15,0,66,0,54,0\n5,0,17,0,39,0,84,0,51,0,32,0\n29,0,26,0,8,0,85,0,56,0,74,0\n45,0,52,0,3,0,76,0,86,0,13,0\n71,0,7,0,12,0,18,0,6,0,46,0\n37,0,75,0,47,0,79,0,16,0,53,0\n23,0,65,0,60,0,11,0,1,0,9,0\n44,0,40,0,63,0,87,0,43,0,19,0\n25,0,20,0,31,0,34,0,42,0,22,0\n30,0,72,0,62,0,77,0,14,0,28,0\n82,0,80,0,59,0,69,0,67,0,48,0\n18,0,24,0,51,0,55,0,74,0,6,0\n52,0,36,0,73,0,39,0,15,0,57,0\n64,0,3,0,4,0,60,0,12,0,35,0\n81,0,71,0,26,0,54,0,49,0,43,0\n16,0,44,0,29,0,68,0,5,0,84,0\n40,0,21,0,33,0,31,0,53,0,83,0\n80,0,46,0,47,0,25,0,72,0,28,0\n75,0,67,0,7,0,19,0,62,0,1,0\n23,0,34,0,78,0,30,0,32,0,37,0\n76,0,38,0,61,0,42,0,69,0,65,0\n48,0,22,0,85,0,50,0,70,0,58,0\n41,0,13,0,27,0,9,0,20,0,17,0\n59,0,45,0,56,0,77,0,63,0,2,0\n66,0,11,0,8,0,14,0,79,0,10,0\n86,0,82,0,75,0,87,0,64,0,71,0\n47,0,55,0,34,0,49,0,33,0,3,0\n6,0,60,0,31,0,26,0,78,0,73,0\n4,0,22,0,36,0,68,0,65,0,18,0\n85,0,32,0,13,0,38,0,25,0,30,0\n7,0,42,0,63,0,9,0,28,0,80,0\n79,0,61,0,27,0,40,0,5,0,77,0\n67,0,17,0,10,0,72,0,21,0,12,0\n59,0,50,0,51,0,76,0,29,0,83,0\n19,0,57,0,20,0,84,0,86,0,11,0\n16,0,69,0,35,0,74,0,2,0,66,0\n44,0,14,0,70,0,52,0,1,0,82,0\n39,0,46,0,54,0,8,0,53,0,43,0\n37,0,15,0,87,0,81,0,48,0,56,0\n24,0,62,0,41,0,58,0,45,0,23,0\n3,0,80,0,73,0,49,0,30,0,65,0\n26,0,79,0,76,0,63,0,32,0,4,0\n13,0,38,0,28,0,59,0,84,0,35,0\n74,0,33,0,10,0,60,0,5,0,19,0\n25,0,11,0,71,0,55,0,16,0,39,0\n17,0,7,0,69,0,81,0,75,0,78,0\n22,0,87,0,47,0,29,0,41,0,45,0\n72,0,53,0,27,0,52,0,24,0,68,0\n86,0,42,0,62,0,43,0,70,0,15,0\n56,0,82,0,50,0,21,0,18,0,23,0\n48,0,77,0,31,0,44,0,54,0,36,0\n37,0,6,0,12,0,40,0,20,0,14,0\n66,0,58,0,9,0,67,0,46,0,61,0\n2,0,51,0,57,0,8,0,34,0,64,0\n85,0,83,0,39,0,1,0,27,0,80,0\n"
  },
  {
    "path": "schedules/87_14.csv",
    "content": "14,0,35,0,3,0,74,0,16,0,42,0\n70,0,44,0,32,0,25,0,65,0,55,0\n6,0,28,0,19,0,80,0,23,0,68,0\n41,0,82,0,12,0,61,0,84,0,60,0\n71,0,77,0,10,0,11,0,29,0,24,0\n15,0,34,0,18,0,50,0,45,0,39,0\n73,0,1,0,33,0,72,0,30,0,86,0\n21,0,63,0,58,0,78,0,38,0,51,0\n87,0,75,0,27,0,31,0,57,0,43,0\n85,0,40,0,64,0,66,0,4,0,54,0\n52,0,22,0,56,0,37,0,13,0,79,0\n26,0,49,0,59,0,8,0,76,0,81,0\n47,0,67,0,17,0,5,0,48,0,83,0\n20,0,53,0,69,0,62,0,7,0,46,0\n36,0,2,0,41,0,9,0,14,0,38,0\n65,0,10,0,84,0,27,0,15,0,23,0\n87,0,34,0,6,0,42,0,30,0,51,0\n11,0,52,0,86,0,74,0,82,0,21,0\n37,0,24,0,3,0,59,0,40,0,61,0\n19,0,13,0,48,0,55,0,64,0,45,0\n54,0,69,0,16,0,26,0,28,0,31,0\n43,0,77,0,66,0,46,0,76,0,73,0\n79,0,68,0,9,0,50,0,44,0,25,0\n53,0,4,0,12,0,5,0,29,0,72,0\n78,0,81,0,20,0,8,0,22,0,32,0\n2,0,63,0,7,0,17,0,33,0,85,0\n71,0,58,0,1,0,35,0,49,0,75,0\n80,0,36,0,56,0,83,0,47,0,39,0\n57,0,18,0,62,0,67,0,70,0,60,0\n50,0,6,0,14,0,82,0,73,0,11,0\n40,0,38,0,19,0,74,0,48,0,51,0\n87,0,32,0,76,0,21,0,13,0,24,0\n79,0,63,0,5,0,55,0,69,0,30,0\n10,0,86,0,28,0,12,0,71,0,59,0\n3,0,53,0,68,0,84,0,58,0,52,0\n44,0,4,0,45,0,37,0,31,0,15,0\n20,0,64,0,65,0,9,0,56,0,57,0\n62,0,16,0,23,0,43,0,8,0,47,0\n26,0,36,0,18,0,77,0,2,0,75,0\n61,0,42,0,85,0,60,0,49,0,83,0\n80,0,35,0,46,0,33,0,22,0,41,0\n29,0,81,0,66,0,70,0,17,0,27,0\n54,0,72,0,78,0,67,0,39,0,34,0\n7,0,1,0,28,0,25,0,48,0,38,0\n62,0,73,0,12,0,58,0,59,0,13,0\n74,0,76,0,10,0,75,0,84,0,6,0\n65,0,79,0,51,0,4,0,47,0,82,0\n80,0,43,0,55,0,2,0,68,0,49,0\n83,0,35,0,57,0,40,0,29,0,50,0\n31,0,33,0,67,0,19,0,36,0,53,0\n7,0,72,0,81,0,23,0,78,0,64,0\n26,0,3,0,71,0,37,0,66,0,20,0\n70,0,21,0,39,0,16,0,22,0,9,0\n27,0,5,0,41,0,77,0,32,0,85,0\n15,0,25,0,11,0,69,0,42,0,87,0\n34,0,24,0,17,0,56,0,86,0,46,0\n63,0,52,0,1,0,45,0,60,0,14,0\n18,0,30,0,61,0,54,0,44,0,8,0\n62,0,82,0,68,0,57,0,71,0,38,0\n6,0,70,0,66,0,20,0,67,0,35,0\n81,0,40,0,5,0,73,0,16,0,79,0\n12,0,78,0,55,0,87,0,37,0,47,0\n49,0,19,0,34,0,7,0,29,0,32,0\n33,0,60,0,76,0,11,0,4,0,23,0\n69,0,61,0,75,0,21,0,56,0,45,0\n48,0,50,0,72,0,3,0,22,0,65,0\n52,0,54,0,85,0,43,0,24,0,15,0\n13,0,41,0,26,0,42,0,18,0,86,0\n8,0,74,0,77,0,28,0,83,0,63,0\n80,0,53,0,64,0,14,0,51,0,59,0\n39,0,46,0,84,0,31,0,2,0,58,0\n30,0,17,0,36,0,10,0,27,0,25,0\n9,0,44,0,71,0,1,0,5,0,60,0\n20,0,70,0,48,0,43,0,50,0,33,0\n7,0,76,0,38,0,65,0,15,0,47,0\n37,0,55,0,16,0,41,0,75,0,83,0\n63,0,53,0,11,0,61,0,23,0,34,0\n24,0,59,0,86,0,22,0,69,0,2,0\n51,0,85,0,26,0,57,0,32,0,36,0\n84,0,72,0,77,0,44,0,17,0,14,0\n39,0,87,0,4,0,81,0,35,0,62,0\n30,0,73,0,54,0,68,0,74,0,45,0\n21,0,31,0,6,0,1,0,18,0,56,0\n58,0,42,0,66,0,8,0,10,0,79,0\n40,0,9,0,27,0,13,0,78,0,28,0\n12,0,19,0,3,0,49,0,82,0,46,0\n52,0,29,0,80,0,64,0,25,0,67,0\n35,0,23,0,38,0,26,0,83,0,17,0\n74,0,5,0,30,0,43,0,37,0,60,0\n81,0,57,0,51,0,14,0,71,0,61,0\n68,0,11,0,59,0,72,0,85,0,39,0\n47,0,73,0,24,0,1,0,20,0,75,0\n69,0,84,0,66,0,18,0,19,0,87,0\n56,0,33,0,4,0,52,0,77,0,49,0\n21,0,10,0,48,0,46,0,41,0,53,0\n82,0,31,0,7,0,9,0,8,0,55,0\n67,0,22,0,50,0,28,0,76,0,42,0\n6,0,16,0,32,0,15,0,12,0,63,0\n64,0,2,0,27,0,3,0,44,0,62,0\n45,0,29,0,79,0,78,0,36,0,65,0\n34,0,40,0,86,0,58,0,70,0,80,0\n25,0,54,0,51,0,13,0,84,0,23,0\n82,0,85,0,1,0,10,0,81,0,53,0\n49,0,31,0,39,0,24,0,38,0,20,0\n17,0,57,0,61,0,55,0,73,0,28,0\n18,0,75,0,9,0,14,0,32,0,33,0\n3,0,59,0,29,0,15,0,60,0,79,0\n6,0,76,0,41,0,83,0,69,0,64,0\n46,0,8,0,16,0,71,0,52,0,45,0\n70,0,50,0,2,0,47,0,74,0,13,0\n63,0,44,0,36,0,80,0,48,0,87,0\n56,0,12,0,30,0,11,0,40,0,67,0\n78,0,5,0,66,0,62,0,86,0,25,0\n26,0,27,0,22,0,68,0,58,0,7,0\n43,0,21,0,42,0,72,0,4,0,19,0\n65,0,77,0,34,0,37,0,54,0,35,0\n73,0,51,0,3,0,31,0,70,0,76,0\n85,0,74,0,55,0,29,0,69,0,39,0\n20,0,60,0,87,0,40,0,2,0,10,0\n66,0,8,0,75,0,38,0,53,0,13,0\n15,0,58,0,46,0,36,0,61,0,5,0\n71,0,63,0,84,0,56,0,72,0,26,0\n86,0,43,0,79,0,77,0,7,0,67,0\n83,0,22,0,1,0,34,0,62,0,54,0\n14,0,23,0,25,0,21,0,49,0,12,0\n41,0,57,0,78,0,52,0,6,0,44,0\n9,0,65,0,24,0,19,0,81,0,30,0\n32,0,4,0,37,0,80,0,17,0,50,0\n45,0,82,0,33,0,59,0,42,0,27,0\n47,0,64,0,11,0,35,0,28,0,18,0\n16,0,68,0,56,0,48,0,66,0,60,0\n49,0,54,0,23,0,69,0,5,0,70,0\n85,0,21,0,83,0,20,0,79,0,84,0\n74,0,53,0,25,0,77,0,57,0,24,0\n51,0,43,0,75,0,12,0,22,0,44,0\n59,0,55,0,72,0,36,0,6,0,40,0\n33,0,35,0,7,0,31,0,10,0,61,0\n47,0,2,0,30,0,82,0,52,0,32,0\n28,0,38,0,4,0,34,0,46,0,3,0\n48,0,42,0,73,0,27,0,71,0,39,0\n87,0,50,0,86,0,8,0,64,0,19,0\n58,0,29,0,76,0,14,0,16,0,41,0\n80,0,15,0,45,0,62,0,9,0,26,0\n13,0,17,0,65,0,78,0,1,0,11,0\n37,0,67,0,18,0,81,0,63,0,68,0\n74,0,32,0,34,0,31,0,59,0,66,0\n47,0,33,0,44,0,40,0,71,0,69,0\n55,0,42,0,2,0,73,0,53,0,23,0\n60,0,27,0,24,0,51,0,72,0,35,0\n45,0,38,0,10,0,22,0,5,0,57,0\n41,0,43,0,58,0,65,0,56,0,28,0\n7,0,80,0,21,0,81,0,54,0,3,0\n6,0,48,0,61,0,77,0,29,0,87,0\n83,0,15,0,4,0,86,0,75,0,68,0\n79,0,64,0,50,0,39,0,1,0,12,0\n19,0,46,0,14,0,70,0,26,0,78,0\n25,0,9,0,52,0,76,0,18,0,63,0\n13,0,67,0,82,0,17,0,16,0,20,0\n36,0,37,0,84,0,8,0,49,0,11,0\n62,0,31,0,77,0,85,0,30,0,23,0\n68,0,29,0,28,0,87,0,33,0,51,0\n74,0,71,0,22,0,61,0,64,0,15,0\n60,0,65,0,26,0,21,0,73,0,34,0\n69,0,58,0,10,0,9,0,4,0,48,0\n76,0,5,0,44,0,35,0,19,0,56,0\n1,0,32,0,67,0,40,0,37,0,46,0\n36,0,42,0,12,0,24,0,18,0,7,0\n50,0,16,0,78,0,85,0,84,0,38,0\n49,0,47,0,86,0,6,0,53,0,27,0\n45,0,11,0,83,0,81,0,2,0,43,0\n14,0,52,0,55,0,20,0,54,0,59,0\n75,0,72,0,82,0,80,0,25,0,66,0\n39,0,57,0,13,0,63,0,30,0,3,0\n62,0,70,0,8,0,17,0,79,0,41,0\n64,0,42,0,22,0,31,0,84,0,32,0\n9,0,46,0,23,0,37,0,74,0,29,0\n26,0,48,0,81,0,6,0,5,0,12,0\n87,0,14,0,67,0,71,0,85,0,65,0\n55,0,66,0,15,0,2,0,51,0,1,0\n77,0,30,0,4,0,59,0,16,0,7,0\n45,0,25,0,73,0,47,0,41,0,3,0\n13,0,8,0,69,0,34,0,80,0,57,0\n63,0,70,0,35,0,21,0,28,0,36,0\n24,0,33,0,83,0,58,0,44,0,82,0\n79,0,72,0,38,0,86,0,61,0,76,0\n60,0,56,0,53,0,27,0,50,0,54,0\n62,0,39,0,40,0,19,0,52,0,75,0\n78,0,17,0,10,0,43,0,18,0,49,0\n68,0,20,0,5,0,11,0,34,0,41,0\n21,0,2,0,8,0,67,0,12,0,29,0\n37,0,44,0,28,0,73,0,7,0,85,0\n24,0,71,0,25,0,55,0,4,0,6,0\n60,0,38,0,64,0,77,0,70,0,33,0\n83,0,56,0,62,0,3,0,32,0,72,0\n59,0,75,0,46,0,63,0,65,0,42,0\n13,0,31,0,14,0,68,0,10,0,47,0\n84,0,51,0,49,0,9,0,86,0,45,0\n20,0,18,0,27,0,74,0,80,0,79,0\n22,0,76,0,17,0,53,0,40,0,87,0\n43,0,61,0,39,0,69,0,1,0,26,0\n48,0,35,0,15,0,82,0,30,0,78,0\n11,0,54,0,57,0,19,0,16,0,58,0\n36,0,81,0,23,0,66,0,50,0,52,0\n"
  },
  {
    "path": "schedules/87_2.csv",
    "content": "43,0,5,0,59,0,80,0,29,0,28,0\n46,0,70,0,86,0,42,0,52,0,58,0\n50,0,49,0,2,0,33,0,12,0,85,0\n22,0,18,0,78,0,38,0,36,0,61,0\n83,0,35,0,9,0,1,0,62,0,7,0\n37,0,21,0,19,0,23,0,79,0,16,0\n47,0,13,0,71,0,30,0,72,0,63,0\n81,0,17,0,65,0,55,0,24,0,69,0\n41,0,48,0,73,0,40,0,3,0,51,0\n27,0,45,0,66,0,44,0,32,0,75,0\n64,0,15,0,74,0,87,0,56,0,57,0\n4,0,84,0,6,0,39,0,14,0,8,0\n20,0,67,0,11,0,26,0,60,0,68,0\n25,0,82,0,53,0,77,0,54,0,34,0\n76,0,31,0,33,0,10,0,69,0,43,0\n29,0,1,0,61,0,17,0,72,0,46,0\n45,0,36,0,16,0,86,0,41,0,2,0\n85,0,63,0,37,0,15,0,5,0,62,0\n6,0,18,0,55,0,49,0,70,0,80,0\n39,0,11,0,13,0,22,0,79,0,83,0\n51,0,34,0,87,0,7,0,58,0,71,0\n84,0,68,0,12,0,27,0,53,0,19,0\n75,0,76,0,73,0,64,0,59,0,25,0\n52,0,56,0,40,0,35,0,81,0,66,0\n8,0,60,0,30,0,77,0,44,0,74,0\n24,0,31,0,3,0,38,0,4,0,20,0\n28,0,9,0,32,0,78,0,21,0,82,0\n10,0,23,0,14,0,67,0,54,0,65,0\n42,0,47,0,26,0,50,0,48,0,57,0\n"
  },
  {
    "path": "schedules/87_3.csv",
    "content": "73,0,36,0,17,0,4,0,62,0,52,0\n87,0,57,0,49,0,43,0,24,0,27,0\n38,0,35,0,18,0,66,0,15,0,61,0\n20,0,74,0,65,0,13,0,75,0,50,0\n28,0,67,0,1,0,14,0,48,0,5,0\n71,0,23,0,11,0,79,0,7,0,70,0\n3,0,53,0,82,0,44,0,12,0,72,0\n40,0,51,0,37,0,69,0,45,0,39,0\n29,0,8,0,84,0,22,0,81,0,41,0\n2,0,54,0,64,0,25,0,19,0,10,0\n47,0,63,0,78,0,6,0,83,0,80,0\n55,0,16,0,32,0,77,0,56,0,26,0\n33,0,34,0,59,0,42,0,60,0,86,0\n85,0,46,0,68,0,31,0,21,0,58,0\n30,0,9,0,1,0,76,0,23,0,65,0\n12,1,75,0,41,0,57,1,69,0,71,0\n39,1,5,0,20,0,87,0,11,0,8,0\n72,0,52,0,19,0,79,0,13,0,63,0\n10,0,22,0,14,0,43,0,80,0,82,0\n77,0,61,0,54,0,3,0,37,0,48,0\n17,0,38,0,86,0,16,0,47,0,68,0\n33,0,58,0,64,0,9,0,32,0,18,0\n4,0,76,0,6,0,2,0,26,0,46,0\n56,0,27,0,35,0,62,0,34,0,30,0\n15,0,28,0,45,0,74,0,60,0,83,0\n44,0,70,0,73,0,49,0,21,0,29,0\n50,0,51,0,31,0,84,0,36,0,55,0\n42,0,53,0,7,0,25,0,66,0,67,0\n24,0,85,0,40,0,59,0,78,0,81,0\n5,0,77,0,10,0,17,0,72,0,76,0\n69,0,68,0,52,0,2,0,3,0,35,0\n39,0,16,0,9,0,82,0,54,0,74,0\n4,0,41,0,79,0,87,0,37,0,86,0\n46,0,70,0,48,0,22,0,51,0,38,0\n12,0,80,0,49,0,28,0,18,0,19,0\n83,0,23,0,67,0,64,0,50,0,57,0\n42,0,62,0,29,0,13,0,78,0,1,0\n47,0,65,0,43,0,59,0,84,0,71,0\n81,0,75,0,60,0,55,0,14,0,27,0\n7,0,34,0,26,0,36,0,24,0,15,0\n30,0,20,0,58,0,53,0,40,0,73,0\n56,0,11,0,85,0,6,0,61,0,33,0\n25,0,31,0,44,0,63,0,45,0,8,0\n32,0,66,0,57,0,21,0,12,0,39,0\n"
  },
  {
    "path": "schedules/87_4.csv",
    "content": "42,0,75,0,46,0,28,0,87,0,17,0\n68,0,59,0,11,0,25,0,22,0,33,0\n81,0,85,0,66,0,45,0,53,0,37,0\n12,0,41,0,6,0,82,0,34,0,69,0\n50,0,77,0,16,0,30,0,60,0,14,0\n1,0,23,0,76,0,49,0,65,0,27,0\n83,0,9,0,13,0,73,0,56,0,51,0\n80,0,4,0,3,0,24,0,47,0,19,0\n2,0,36,0,5,0,58,0,72,0,78,0\n64,0,35,0,84,0,18,0,48,0,52,0\n31,0,21,0,10,0,38,0,40,0,7,0\n61,0,15,0,63,0,26,0,67,0,32,0\n55,0,43,0,57,0,86,0,74,0,20,0\n8,0,71,0,44,0,79,0,29,0,62,0\n70,0,14,0,23,0,39,0,54,0,33,0\n51,0,60,0,69,0,19,0,45,0,59,0\n25,0,53,0,84,0,83,0,76,0,3,0\n48,0,17,0,58,0,4,0,12,0,9,0\n68,0,36,0,75,0,27,0,73,0,85,0\n18,0,74,0,50,0,65,0,41,0,56,0\n67,0,40,0,64,0,49,0,79,0,77,0\n39,0,28,0,26,0,22,0,31,0,2,0\n70,0,46,0,71,0,20,0,21,0,81,0\n86,0,5,0,29,0,42,0,32,0,37,0\n35,0,62,0,38,0,6,0,15,0,43,0\n7,0,13,0,87,0,55,0,34,0,30,0\n72,0,11,0,82,0,61,0,80,0,66,0\n52,0,24,0,57,0,44,0,16,0,63,0\n47,0,10,0,78,0,1,0,54,0,8,0\n33,0,83,0,50,0,69,0,79,0,48,0\n81,0,17,0,67,0,68,0,76,0,31,0\n85,0,19,0,9,0,25,0,77,0,62,0\n36,0,70,0,59,0,3,0,7,0,86,0\n74,0,49,0,35,0,14,0,71,0,72,0\n23,0,2,0,38,0,60,0,87,0,63,0\n73,0,65,0,80,0,43,0,52,0,54,0\n55,0,42,0,47,0,51,0,12,0,84,0\n32,0,82,0,24,0,10,0,27,0,46,0\n6,0,21,0,45,0,64,0,57,0,29,0\n58,0,34,0,66,0,20,0,8,0,26,0\n22,0,53,0,30,0,61,0,4,0,56,0\n37,0,78,0,28,0,13,0,18,0,16,0\n5,0,40,0,1,0,11,0,41,0,75,0\n44,0,39,0,19,0,15,0,87,0,84,0\n42,0,77,0,65,0,35,0,70,0,68,0\n21,0,52,0,82,0,67,0,47,0,85,0\n62,0,74,0,63,0,12,0,80,0,83,0\n48,0,56,0,34,0,59,0,81,0,29,0\n49,0,43,0,7,0,46,0,60,0,78,0\n73,0,4,0,86,0,2,0,11,0,10,0\n32,0,33,0,30,0,44,0,18,0,1,0\n15,0,51,0,14,0,40,0,57,0,25,0\n27,0,26,0,17,0,6,0,5,0,53,0\n61,0,39,0,8,0,50,0,45,0,36,0\n69,0,31,0,71,0,37,0,3,0,9,0\n20,0,72,0,75,0,13,0,24,0,76,0\n41,0,79,0,22,0,66,0,16,0,23,0\n28,0,54,0,55,0,38,0,58,0,64,0\n"
  },
  {
    "path": "schedules/87_5.csv",
    "content": "61,0,7,0,65,0,21,0,50,0,23,0\n60,0,77,0,26,0,19,0,8,0,13,0\n25,0,78,0,2,0,34,0,35,0,6,0\n36,0,86,0,49,0,10,0,68,0,12,0\n47,0,84,0,75,0,31,0,44,0,82,0\n28,0,1,0,87,0,29,0,42,0,40,0\n81,0,11,0,76,0,46,0,17,0,72,0\n83,0,51,0,41,0,43,0,16,0,85,0\n48,0,58,0,71,0,79,0,22,0,38,0\n15,0,69,0,54,0,57,0,53,0,32,0\n4,0,73,0,63,0,14,0,20,0,70,0\n9,0,52,0,64,0,66,0,62,0,55,0\n74,0,5,0,30,0,24,0,18,0,67,0\n39,0,80,0,37,0,3,0,33,0,27,0\n59,0,29,0,86,0,56,0,45,0,44,0\n50,0,2,0,85,0,81,0,22,0,42,0\n21,0,35,0,16,0,15,0,87,0,10,0\n49,0,40,0,71,0,77,0,32,0,51,0\n68,0,57,0,60,0,17,0,6,0,83,0\n53,0,36,0,64,0,13,0,14,0,84,0\n12,0,63,0,72,0,54,0,9,0,47,0\n33,0,4,0,31,0,59,0,11,0,55,0\n38,0,27,0,78,0,66,0,82,0,18,0\n28,0,23,0,43,0,25,0,45,0,52,0\n58,0,62,0,3,0,41,0,5,0,34,0\n24,0,61,0,76,0,56,0,80,0,20,0\n79,0,70,0,7,0,30,0,19,0,75,0\n48,0,46,0,37,0,65,0,67,0,26,0\n69,0,8,0,73,0,74,0,1,0,39,0\n18,1,6,0,59,0,21,1,71,0,13,0\n68,0,14,0,51,0,42,1,31,0,15,0\n43,0,40,0,44,0,53,0,62,0,78,0\n61,0,66,0,5,0,86,0,11,0,25,0\n47,0,77,0,29,0,70,0,24,0,34,0\n33,0,45,0,63,0,10,0,7,0,84,0\n55,0,54,0,46,0,8,0,38,0,75,0\n17,0,64,0,67,0,1,0,80,0,16,0\n35,0,36,0,32,0,65,0,79,0,28,0\n56,0,50,0,19,0,83,0,3,0,74,0\n22,0,76,0,12,0,41,0,4,0,57,0\n37,0,20,0,52,0,87,0,85,0,69,0\n39,0,81,0,9,0,82,0,58,0,60,0\n30,0,72,0,2,0,48,0,27,0,49,0\n73,0,23,0,66,0,26,0,59,0,40,0\n80,0,44,0,10,0,8,0,70,0,51,0\n78,0,7,0,56,0,36,0,5,0,42,0\n4,0,21,0,45,0,54,0,62,0,67,0\n20,0,57,0,77,0,35,0,50,0,75,0\n84,0,17,0,12,0,85,0,32,0,58,0\n22,0,9,0,28,0,74,0,37,0,53,0\n19,0,82,0,6,0,72,0,23,0,1,0\n34,0,52,0,15,0,27,0,76,0,71,0\n13,0,24,0,49,0,38,0,16,0,73,0\n79,0,46,0,86,0,31,0,39,0,63,0\n3,0,68,0,48,0,61,0,69,0,43,0\n25,0,55,0,83,0,65,0,30,0,81,0\n11,0,18,0,14,0,60,0,2,0,29,0\n41,0,26,0,87,0,64,0,33,0,47,0\n74,0,57,0,23,0,58,0,36,0,44,0\n42,0,6,0,80,0,49,0,84,0,66,0\n38,0,53,0,85,0,19,0,10,0,76,0\n70,0,3,0,13,0,78,0,54,0,1,0\n51,0,27,0,81,0,63,0,75,0,28,0\n55,0,35,0,5,0,45,0,22,0,39,0\n11,0,79,0,43,0,34,0,21,0,37,0\n31,0,72,0,40,0,20,0,18,0,65,0\n33,0,62,0,12,0,46,0,30,0,60,0\n83,0,87,0,24,0,4,0,2,0,32,0\n14,0,67,0,47,0,7,0,86,0,69,0\n56,0,8,0,41,0,71,0,17,0,25,0\n64,0,15,0,82,0,77,0,59,0,61,0\n16,0,26,0,29,0,50,0,68,0,52,0\n73,0,18,0,42,0,9,0,48,0,21,0\n"
  },
  {
    "path": "schedules/87_6.csv",
    "content": "81,0,70,0,26,0,30,0,52,0,17,0\n22,0,62,0,59,0,34,0,57,0,6,0\n8,0,60,0,5,0,3,0,56,0,85,0\n73,0,10,0,76,0,21,0,40,0,12,0\n61,0,24,0,13,0,19,0,41,0,49,0\n43,0,58,0,28,0,55,0,64,0,69,0\n32,0,65,0,53,0,72,0,4,0,83,0\n27,0,29,0,84,0,79,0,39,0,16,0\n82,0,33,0,51,0,77,0,54,0,63,0\n45,0,11,0,78,0,7,0,37,0,15,0\n66,0,44,0,50,0,36,0,80,0,18,0\n75,0,71,0,67,0,86,0,74,0,31,0\n2,0,38,0,23,0,47,0,1,0,9,0\n35,0,48,0,14,0,42,0,68,0,87,0\n20,0,25,0,81,0,46,0,65,0,24,0\n56,0,72,0,19,0,70,0,29,0,57,0\n83,0,54,0,61,0,10,0,64,0,37,0\n59,0,12,0,80,0,82,0,85,0,28,0\n62,0,77,0,3,0,39,0,36,0,74,0\n1,0,67,0,49,0,32,0,43,0,5,0\n7,0,4,0,16,0,23,0,48,0,17,0\n27,0,51,0,11,0,58,0,40,0,68,0\n53,0,60,0,20,0,84,0,87,0,45,0\n14,0,73,0,52,0,50,0,86,0,15,0\n35,0,71,0,30,0,8,0,18,0,38,0\n2,0,79,0,33,0,13,0,76,0,6,0\n63,0,9,0,66,0,69,0,46,0,22,0\n41,0,21,0,75,0,25,0,47,0,78,0\n55,0,44,0,34,0,26,0,31,0,42,0\n23,0,82,0,39,0,49,0,70,0,60,0\n68,0,4,0,84,0,54,0,56,0,67,0\n53,0,28,0,14,0,10,0,1,0,51,0\n6,0,71,0,40,0,19,0,80,0,87,0\n12,0,8,0,52,0,62,0,13,0,66,0\n47,0,69,0,50,0,7,0,79,0,81,0\n83,0,36,0,45,0,31,0,48,0,22,0\n64,0,5,0,18,0,15,0,27,0,24,0\n76,0,17,0,20,0,42,0,3,0,9,0\n61,0,34,0,32,0,21,0,33,0,38,0\n43,0,44,0,65,0,16,0,11,0,59,0\n41,0,74,0,30,0,29,0,37,0,55,0\n73,0,25,0,85,0,63,0,2,0,72,0\n46,0,57,0,77,0,35,0,86,0,78,0\n58,0,26,0,45,0,75,0,13,0,4,0\n80,0,83,0,24,0,23,0,52,0,51,0\n34,0,66,0,60,0,7,0,27,0,67,0\n47,0,20,0,54,0,32,0,70,0,36,0\n56,0,16,0,76,0,62,0,31,0,14,0\n68,0,53,0,55,0,63,0,19,0,59,0\n49,0,57,0,50,0,84,0,30,0,21,0\n15,0,41,0,10,0,43,0,2,0,71,0\n33,0,74,0,9,0,81,0,35,0,28,0\n46,0,39,0,75,0,17,0,12,0,61,0\n6,0,1,0,85,0,44,0,58,0,78,0\n42,0,29,0,8,0,25,0,69,0,11,0\n26,0,87,0,73,0,38,0,77,0,5,0\n65,0,37,0,40,0,18,0,48,0,3,0\n86,0,72,0,64,0,82,0,79,0,22,0\n54,0,43,0,19,0,62,0,9,0,7,0\n16,0,67,0,12,0,24,0,35,0,45,0\n78,0,49,0,81,0,55,0,66,0,2,0\n39,0,31,0,58,0,50,0,63,0,20,0\n38,0,69,0,51,0,44,0,17,0,84,0\n3,0,21,0,14,0,46,0,6,0,11,0\n74,0,80,0,48,0,64,0,32,0,13,0\n10,0,4,0,79,0,25,0,5,0,57,0\n52,0,22,0,40,0,56,0,41,0,28,0\n87,0,23,0,75,0,18,0,72,0,34,0\n76,0,15,0,70,0,83,0,85,0,77,0\n29,0,59,0,36,0,73,0,71,0,33,0\n47,0,37,0,8,0,82,0,53,0,26,0\n86,0,68,0,61,0,60,0,1,0,65,0\n42,0,30,0,2,0,27,0,45,0,80,0\n17,0,35,0,55,0,50,0,11,0,56,0\n7,0,32,0,18,0,51,0,22,0,12,0\n85,0,64,0,19,0,23,0,81,0,21,0\n44,0,54,0,57,0,73,0,75,0,48,0\n69,0,70,0,16,0,41,0,34,0,5,0\n82,0,87,0,66,0,58,0,10,0,65,0\n27,0,38,0,63,0,52,0,6,0,4,0\n47,0,3,0,15,0,67,0,30,0,61,0\n1,0,74,0,59,0,25,0,76,0,84,0\n39,0,43,0,33,0,14,0,78,0,8,0\n31,0,77,0,9,0,53,0,13,0,40,0\n62,0,42,0,71,0,24,0,79,0,60,0\n36,0,46,0,72,0,49,0,37,0,68,0\n26,0,86,0,28,0,29,0,20,0,83,0\n"
  },
  {
    "path": "schedules/87_7.csv",
    "content": "20,0,54,0,9,0,81,0,2,0,25,0\n77,0,42,0,57,0,16,0,60,0,1,0\n62,0,15,0,64,0,32,0,22,0,39,0\n71,0,72,0,67,0,41,0,58,0,45,0\n50,0,8,0,6,0,74,0,49,0,11,0\n38,0,29,0,61,0,59,0,3,0,43,0\n23,0,7,0,30,0,31,0,65,0,36,0\n46,0,10,0,63,0,44,0,28,0,83,0\n33,0,69,0,35,0,80,0,12,0,48,0\n53,0,40,0,24,0,13,0,56,0,5,0\n14,0,55,0,75,0,18,0,78,0,21,0\n19,0,70,0,47,0,52,0,27,0,68,0\n79,0,85,0,51,0,87,0,34,0,37,0\n82,0,17,0,73,0,84,0,26,0,86,0\n66,0,4,0,74,0,76,0,61,0,9,0\n64,0,80,0,43,0,8,0,77,0,58,0\n1,0,10,0,32,0,69,0,71,0,56,0\n13,0,12,0,67,0,55,0,49,0,20,0\n31,0,41,0,47,0,44,0,81,0,11,0\n21,0,57,0,63,0,35,0,34,0,30,0\n78,0,40,0,72,0,33,0,73,0,70,0\n23,0,24,0,15,0,27,0,84,0,51,0\n14,0,87,0,83,0,19,0,86,0,62,0\n66,0,59,0,25,0,26,0,37,0,65,0\n29,0,6,0,28,0,36,0,54,0,5,0\n75,0,42,0,17,0,4,0,38,0,48,0\n53,0,45,0,76,0,46,0,16,0,52,0\n18,0,39,0,60,0,7,0,2,0,79,0\n85,0,3,0,82,0,50,0,22,0,68,0\n31,1,84,0,34,0,13,1,10,0,64,0\n25,1,27,0,8,0,61,0,1,0,40,0\n56,0,14,0,81,0,72,0,6,0,15,0\n37,0,5,0,41,0,74,0,30,0,77,0\n70,0,55,0,86,0,38,0,76,0,65,0\n9,0,60,0,71,0,49,0,24,0,75,0\n20,0,58,0,79,0,48,0,73,0,22,0\n36,0,44,0,26,0,3,0,69,0,45,0\n57,0,29,0,46,0,80,0,17,0,62,0\n32,0,33,0,68,0,53,0,63,0,59,0\n4,0,7,0,47,0,12,0,82,0,43,0\n39,0,87,0,16,0,21,0,66,0,54,0\n52,0,83,0,11,0,51,0,42,0,18,0\n19,0,2,0,67,0,28,0,78,0,50,0\n35,0,85,0,44,0,23,0,5,0,9,0\n73,0,64,0,37,0,45,0,38,0,60,0\n25,0,34,0,62,0,55,0,6,0,77,0\n65,0,24,0,47,0,48,0,72,0,46,0\n30,0,3,0,27,0,80,0,87,0,81,0\n83,0,4,0,1,0,20,0,70,0,31,0\n63,0,29,0,79,0,8,0,41,0,56,0\n39,0,58,0,68,0,86,0,75,0,23,0\n51,0,22,0,76,0,2,0,71,0,57,0\n42,0,53,0,43,0,78,0,49,0,84,0\n54,0,67,0,26,0,35,0,32,0,14,0\n36,0,50,0,18,0,66,0,33,0,10,0\n74,0,59,0,12,0,28,0,16,0,40,0\n11,0,17,0,61,0,7,0,85,0,19,0\n69,0,52,0,15,0,21,0,82,0,13,0\n5,0,22,0,34,0,60,0,72,0,86,0\n25,0,76,0,78,0,68,0,56,0,80,0\n44,0,71,0,79,0,70,0,62,0,42,0\n9,0,31,0,50,0,46,0,43,0,26,0\n57,0,41,0,38,0,14,0,66,0,12,0\n16,0,83,0,49,0,73,0,47,0,35,0\n45,0,27,0,48,0,13,0,11,0,28,0\n3,0,63,0,18,0,37,0,17,0,1,0\n81,0,69,0,53,0,64,0,23,0,61,0\n52,0,84,0,7,0,58,0,59,0,54,0\n2,0,82,0,40,0,55,0,32,0,29,0\n77,0,36,0,24,0,39,0,85,0,4,0\n10,0,51,0,21,0,19,0,65,0,74,0\n20,0,8,0,33,0,87,0,15,0,75,0\n30,0,6,0,68,0,67,0,17,0,79,0\n16,0,34,0,80,0,70,0,9,0,14,0\n78,0,11,0,46,0,37,0,69,0,22,0\n81,0,76,0,42,0,28,0,58,0,82,0\n5,0,84,0,39,0,25,0,83,0,50,0\n7,0,21,0,32,0,24,0,73,0,44,0\n56,0,66,0,31,0,45,0,19,0,77,0\n1,0,35,0,2,0,38,0,13,0,36,0\n43,0,74,0,27,0,57,0,33,0,67,0\n18,0,86,0,4,0,29,0,15,0,30,0\n49,0,62,0,48,0,85,0,59,0,41,0\n87,0,72,0,12,0,26,0,61,0,63,0\n23,0,55,0,60,0,10,0,8,0,52,0\n51,0,54,0,75,0,47,0,53,0,3,0\n65,0,6,0,64,0,40,0,71,0,20,0\n50,0,13,0,37,0,32,0,81,0,16,0\n73,0,11,0,39,0,9,0,29,0,67,0\n21,0,70,0,58,0,25,0,46,0,36,0\n26,0,28,0,33,0,7,0,1,0,22,0\n2,0,8,0,45,0,24,0,12,0,30,0\n62,0,68,0,60,0,31,0,69,0,51,0\n65,0,17,0,77,0,44,0,15,0,53,0\n38,0,83,0,82,0,54,0,34,0,78,0\n59,0,72,0,75,0,76,0,27,0,35,0\n48,0,86,0,40,0,52,0,66,0,43,0\n6,0,3,0,19,0,84,0,4,0,41,0\n20,0,14,0,74,0,63,0,23,0,42,0\n47,0,56,0,57,0,64,0,87,0,55,0\n5,0,61,0,49,0,80,0,79,0,10,0\n85,0,13,0,25,0,18,0,71,0,31,0\n"
  },
  {
    "path": "schedules/87_8.csv",
    "content": "45,0,55,0,27,0,50,0,82,0,51,0\n30,0,78,0,19,0,87,0,61,0,65,0\n85,0,11,0,79,0,17,0,13,0,72,0\n86,0,29,0,68,0,43,0,7,0,73,0\n75,0,71,0,49,0,62,0,41,0,20,0\n25,0,21,0,15,0,2,0,76,0,44,0\n81,0,58,0,9,0,37,0,5,0,46,0\n31,0,28,0,4,0,60,0,6,0,1,0\n23,0,84,0,14,0,52,0,67,0,48,0\n18,0,40,0,24,0,63,0,70,0,83,0\n34,0,80,0,8,0,56,0,35,0,10,0\n26,0,3,0,39,0,22,0,64,0,77,0\n42,0,38,0,66,0,12,0,32,0,69,0\n57,0,16,0,54,0,59,0,53,0,36,0\n47,0,33,0,41,0,74,0,87,0,51,0\n55,0,65,0,9,0,29,0,25,0,72,0\n6,0,48,0,20,0,82,0,70,0,68,0\n61,0,5,0,13,0,18,0,27,0,43,0\n35,0,24,0,76,0,11,0,22,0,30,0\n12,0,14,0,86,0,1,0,3,0,71,0\n56,0,7,0,52,0,78,0,28,0,81,0\n2,0,63,0,37,0,8,0,4,0,54,0\n60,0,73,0,83,0,45,0,39,0,79,0\n75,0,74,0,59,0,46,0,23,0,64,0\n10,0,58,0,17,0,69,0,67,0,57,0\n50,0,40,0,47,0,19,0,42,0,16,0\n15,0,84,0,53,0,38,0,49,0,33,0\n85,0,77,0,21,0,34,0,32,0,36,0\n66,0,31,0,62,0,44,0,80,0,26,0\n30,0,8,0,20,0,83,0,5,0,55,0\n86,0,11,0,74,0,54,0,18,0,39,0\n43,0,24,0,78,0,9,0,4,0,14,0\n52,0,64,0,57,0,63,0,25,0,47,0\n70,0,79,0,42,0,2,0,87,0,23,0\n41,0,67,0,13,0,82,0,56,0,38,0\n21,0,62,0,53,0,6,0,51,0,7,0\n45,0,80,0,12,0,65,0,77,0,58,0\n66,0,28,0,76,0,29,0,85,0,10,0\n27,0,31,0,69,0,49,0,59,0,40,0\n33,0,44,0,16,0,35,0,46,0,73,0\n1,0,19,0,75,0,34,0,17,0,68,0\n36,0,84,0,37,0,61,0,50,0,26,0\n32,0,81,0,71,0,60,0,48,0,22,0\n3,0,72,0,83,0,15,0,62,0,57,0\n64,0,87,0,38,0,20,0,21,0,58,0\n39,0,51,0,25,0,12,0,78,0,10,0\n54,0,45,0,6,0,56,0,66,0,30,0\n46,0,28,0,41,0,27,0,19,0,24,0\n43,0,67,0,33,0,50,0,75,0,65,0\n2,0,26,0,34,0,86,0,52,0,59,0\n1,0,32,0,74,0,63,0,53,0,80,0\n5,0,36,0,22,0,70,0,72,0,31,0\n15,0,77,0,13,0,8,0,68,0,14,0\n35,0,18,0,17,0,37,0,42,0,60,0\n48,0,9,0,49,0,47,0,85,0,73,0\n79,0,82,0,76,0,7,0,84,0,69,0\n71,0,61,0,4,0,16,0,23,0,55,0\n40,0,44,0,3,0,81,0,29,0,11,0\n62,0,86,0,27,0,36,0,56,0,25,0\n52,0,20,0,77,0,74,0,66,0,43,0\n65,0,21,0,68,0,5,0,60,0,24,0\n50,0,22,0,18,0,2,0,41,0,1,0\n32,0,46,0,10,0,7,0,13,0,54,0\n42,0,48,0,53,0,4,0,58,0,30,0\n14,0,70,0,49,0,19,0,37,0,29,0\n72,0,39,0,76,0,33,0,6,0,23,0\n8,0,75,0,61,0,45,0,9,0,57,0\n55,0,78,0,73,0,26,0,15,0,67,0\n81,0,87,0,85,0,80,0,83,0,69,0\n51,0,17,0,63,0,3,0,84,0,16,0\n82,0,64,0,31,0,11,0,71,0,34,0\n47,0,44,0,59,0,12,0,79,0,28,0\n35,0,7,0,36,0,40,0,38,0,14,0\n42,0,29,0,54,0,77,0,75,0,24,0\n23,0,10,0,22,0,9,0,15,0,27,0\n13,0,65,0,83,0,48,0,74,0,76,0\n26,0,68,0,18,0,49,0,30,0,81,0\n63,0,66,0,41,0,58,0,61,0,86,0\n19,0,11,0,62,0,12,0,33,0,8,0\n57,0,79,0,56,0,31,0,46,0,21,0\n52,0,69,0,37,0,1,0,72,0,16,0\n51,0,28,0,40,0,5,0,67,0,71,0\n78,0,32,0,47,0,3,0,45,0,20,0\n25,0,87,0,73,0,53,0,82,0,17,0\n35,0,2,0,85,0,6,0,64,0,55,0\n80,0,59,0,60,0,70,0,43,0,84,0\n34,0,50,0,38,0,4,0,44,0,39,0\n23,0,49,0,1,0,13,0,21,0,66,0\n7,0,37,0,27,0,57,0,77,0,11,0\n74,0,81,0,16,0,24,0,62,0,79,0\n58,0,76,0,56,0,18,0,47,0,75,0\n45,0,72,0,26,0,46,0,87,0,40,0\n59,0,61,0,51,0,68,0,83,0,32,0\n5,0,4,0,29,0,80,0,52,0,17,0\n71,0,6,0,10,0,19,0,73,0,38,0\n14,0,82,0,44,0,65,0,42,0,85,0\n30,0,63,0,39,0,28,0,15,0,36,0\n33,0,69,0,9,0,60,0,3,0,2,0\n78,0,8,0,64,0,53,0,70,0,50,0\n84,0,20,0,54,0,22,0,34,0,25,0\n12,0,55,0,43,0,41,0,48,0,31,0\n86,0,67,0,72,0,35,0,21,0,81,0\n65,0,51,0,57,0,4,0,18,0,66,0\n87,0,44,0,6,0,13,0,52,0,75,0\n69,0,23,0,45,0,62,0,63,0,29,0\n58,0,71,0,68,0,2,0,78,0,36,0\n11,0,73,0,50,0,14,0,59,0,20,0\n17,0,32,0,30,0,64,0,41,0,9,0\n1,0,27,0,70,0,67,0,76,0,54,0\n7,0,55,0,42,0,49,0,74,0,3,0\n22,0,80,0,46,0,86,0,47,0,82,0\n40,0,60,0,15,0,61,0,34,0,12,0\n25,0,38,0,43,0,16,0,28,0,8,0\n24,0,56,0,53,0,85,0,37,0,39,0\n77,0,83,0,19,0,84,0,31,0,35,0\n10,0,5,0,48,0,26,0,79,0,33,0\n"
  },
  {
    "path": "schedules/87_9.csv",
    "content": "38,0,1,0,40,0,70,0,33,0,66,0\n35,0,9,0,6,0,8,0,32,0,49,0\n63,0,30,0,44,0,53,0,7,0,69,0\n25,0,61,0,64,0,39,0,77,0,82,0\n79,0,12,0,75,0,14,0,17,0,20,0\n5,0,85,0,84,0,19,0,4,0,52,0\n58,0,37,0,15,0,68,0,23,0,86,0\n50,0,80,0,43,0,60,0,27,0,48,0\n34,0,47,0,87,0,65,0,29,0,18,0\n71,0,28,0,3,0,57,0,2,0,83,0\n78,0,10,0,59,0,42,0,67,0,62,0\n72,0,54,0,73,0,31,0,22,0,36,0\n55,0,24,0,16,0,26,0,21,0,56,0\n45,0,46,0,11,0,74,0,13,0,81,0\n41,0,51,0,79,0,76,0,6,0,84,0\n39,0,52,0,23,0,50,0,35,0,87,0\n69,0,70,0,4,0,48,0,68,0,83,0\n57,0,65,0,43,0,63,0,77,0,58,0\n59,0,86,0,80,0,31,0,14,0,28,0\n27,0,19,0,64,0,34,0,73,0,9,0\n53,0,82,0,46,0,21,0,10,0,8,0\n22,0,76,0,40,0,47,0,44,0,45,0\n49,0,60,0,51,0,75,0,33,0,74,0\n81,0,42,0,1,0,56,0,37,0,32,0\n2,0,72,0,24,0,29,0,62,0,13,0\n38,0,61,0,55,0,54,0,71,0,78,0\n11,0,30,0,3,0,5,0,26,0,17,0\n67,0,25,0,41,0,12,0,85,0,7,0\n20,0,18,0,36,0,16,0,15,0,66,0\n43,1,14,0,40,0,83,1,39,0,51,0\n10,0,81,0,48,0,35,1,58,0,34,0\n84,0,73,0,28,0,75,0,37,0,87,0\n2,0,53,0,27,0,55,0,23,0,79,0\n4,0,17,0,21,0,9,0,80,0,54,0\n72,0,60,0,77,0,70,0,47,0,41,0\n16,0,46,0,85,0,33,0,30,0,68,0\n6,0,18,0,26,0,57,0,67,0,1,0\n82,0,29,0,71,0,49,0,59,0,76,0\n66,0,69,0,45,0,65,0,19,0,3,0\n42,0,12,0,63,0,38,0,22,0,24,0\n74,0,32,0,5,0,20,0,31,0,61,0\n36,0,8,0,62,0,11,0,7,0,50,0\n15,0,56,0,86,0,78,0,64,0,52,0\n13,0,83,0,16,0,25,0,44,0,10,0\n60,0,23,0,67,0,76,0,9,0,81,0\n54,0,84,0,45,0,2,0,18,0,49,0\n37,0,59,0,69,0,12,0,40,0,26,0\n70,0,30,0,61,0,29,0,22,0,57,0\n7,0,82,0,65,0,38,0,27,0,32,0\n85,0,31,0,56,0,34,0,11,0,71,0\n39,0,20,0,4,0,3,0,58,0,42,0\n72,0,6,0,17,0,25,0,52,0,66,0\n21,0,44,0,19,0,15,0,33,0,50,0\n53,0,78,0,77,0,75,0,24,0,36,0\n35,0,80,0,5,0,79,0,1,0,13,0\n86,0,73,0,62,0,41,0,43,0,46,0\n55,0,68,0,14,0,8,0,87,0,74,0\n51,0,28,0,47,0,63,0,64,0,48,0\n34,0,38,0,4,0,45,0,72,0,23,0\n83,0,84,0,58,0,9,0,11,0,33,0\n52,0,57,0,31,0,21,0,69,0,27,0\n70,0,15,0,25,0,59,0,81,0,2,0\n5,0,12,0,36,0,6,0,71,0,10,0\n35,0,86,0,76,0,77,0,3,0,7,0\n1,0,14,0,62,0,64,0,85,0,60,0\n13,0,48,0,8,0,18,0,30,0,41,0\n20,0,63,0,80,0,82,0,78,0,40,0\n87,0,51,0,66,0,61,0,56,0,46,0\n65,0,79,0,68,0,67,0,44,0,24,0\n39,0,32,0,73,0,53,0,47,0,26,0\n55,0,22,0,19,0,17,0,49,0,37,0\n16,0,29,0,28,0,50,0,74,0,42,0\n54,0,43,0,1,0,75,0,11,0,69,0\n33,0,48,0,36,0,86,0,45,0,82,0\n30,0,27,0,10,0,15,0,76,0,14,0\n85,0,87,0,21,0,2,0,77,0,40,0\n20,0,38,0,52,0,13,0,47,0,67,0\n70,0,37,0,9,0,53,0,31,0,71,0\n42,0,60,0,26,0,83,0,79,0,46,0\n80,0,49,0,61,0,16,0,23,0,73,0\n68,0,57,0,34,0,17,0,62,0,84,0\n8,0,81,0,78,0,43,0,22,0,28,0\n12,0,35,0,29,0,51,0,44,0,54,0\n50,0,75,0,25,0,4,0,56,0,65,0\n19,0,39,0,7,0,6,0,74,0,59,0\n24,0,41,0,64,0,66,0,5,0,58,0\n63,0,3,0,32,0,55,0,18,0,72,0\n85,0,49,0,27,0,42,0,86,0,70,0\n83,0,77,0,31,0,17,0,15,0,38,0\n44,0,52,0,2,0,36,0,1,0,46,0\n78,0,45,0,25,0,51,0,68,0,73,0\n34,0,74,0,53,0,43,0,12,0,4,0\n60,0,24,0,59,0,84,0,20,0,35,0\n82,0,66,0,9,0,28,0,55,0,62,0\n16,0,57,0,76,0,48,0,72,0,19,0\n32,0,79,0,11,0,63,0,10,0,87,0\n41,0,71,0,26,0,81,0,65,0,80,0\n47,0,33,0,61,0,14,0,37,0,7,0\n13,0,40,0,54,0,64,0,3,0,23,0\n58,0,67,0,8,0,69,0,29,0,56,0\n22,0,75,0,21,0,39,0,5,0,18,0\n50,0,6,0,73,0,30,0,38,0,2,0\n66,0,76,0,83,0,34,0,78,0,32,0\n44,0,55,0,77,0,11,0,28,0,4,0\n15,0,61,0,63,0,35,0,85,0,45,0\n47,0,23,0,74,0,82,0,24,0,1,0\n41,0,69,0,36,0,14,0,9,0,42,0\n46,0,18,0,17,0,59,0,27,0,58,0\n81,0,68,0,49,0,50,0,53,0,52,0\n31,0,12,0,65,0,60,0,16,0,39,0\n7,0,56,0,13,0,70,0,84,0,43,0\n40,0,48,0,75,0,71,0,79,0,19,0\n6,0,22,0,3,0,80,0,87,0,62,0\n26,0,64,0,33,0,20,0,29,0,10,0\n54,0,57,0,8,0,5,0,86,0,25,0\n72,0,67,0,21,0,37,0,51,0,30,0\n50,0,76,0,55,0,58,0,1,0,12,0\n82,0,56,0,18,0,83,0,73,0,60,0\n47,0,66,0,42,0,43,0,68,0,31,0\n53,0,35,0,11,0,22,0,41,0,16,0\n77,0,9,0,79,0,52,0,45,0,59,0\n75,0,44,0,6,0,86,0,61,0,34,0\n71,0,62,0,23,0,69,0,25,0,20,0\n2,0,33,0,17,0,39,0,63,0,8,0\n74,0,37,0,54,0,85,0,65,0,48,0\n29,0,38,0,81,0,84,0,3,0,21,0\n10,0,7,0,51,0,24,0,57,0,80,0\n26,0,87,0,27,0,4,0,13,0,78,0\n14,0,32,0,67,0,19,0,70,0,46,0\n28,0,49,0,5,0,72,0,15,0,40,0\n36,0,64,0,43,0,30,0,83,0,35,0\n"
  },
  {
    "path": "schedules/88_1.csv",
    "content": "28,0,26,0,57,0,42,0,7,0,37,0\n67,0,79,0,66,0,23,0,49,0,45,0\n86,0,3,0,12,0,83,0,68,0,5,0\n34,0,47,0,30,0,61,0,74,0,18,0\n81,0,69,0,8,0,84,0,77,0,63,0\n50,0,65,0,87,0,56,0,29,0,15,0\n80,0,75,0,11,0,60,0,14,0,73,0\n10,0,31,0,76,0,40,0,64,0,39,0\n36,0,44,0,62,0,20,0,78,0,2,0\n6,0,48,0,24,0,25,0,22,0,4,0\n16,0,27,0,58,0,85,0,88,0,33,0\n1,0,9,0,55,0,54,0,59,0,17,0\n70,0,71,0,72,0,13,0,19,0,51,0\n52,0,35,0,82,0,32,0,46,0,43,0\n21,0,41,0,37,1,53,0,38,0,18,1\n"
  },
  {
    "path": "schedules/88_10.csv",
    "content": "57,0,12,0,85,0,75,0,65,0,71,0\n87,0,28,0,62,0,27,0,5,0,84,0\n8,0,22,0,3,0,4,0,78,0,2,0\n9,0,32,0,18,0,61,0,51,0,72,0\n46,0,33,0,67,0,80,0,83,0,74,0\n17,0,48,0,24,0,20,0,23,0,49,0\n19,0,86,0,25,0,47,0,79,0,44,0\n56,0,30,0,50,0,34,0,11,0,42,0\n59,0,15,0,77,0,35,0,53,0,55,0\n88,0,21,0,76,0,63,0,73,0,58,0\n45,0,31,0,69,0,13,0,39,0,38,0\n26,0,7,0,1,0,6,0,40,0,82,0\n60,0,54,0,36,0,68,0,10,0,43,0\n70,0,52,0,64,0,29,0,66,0,41,0\n81,0,14,0,44,0,37,0,16,0,61,0\n20,0,72,0,84,0,85,0,53,0,25,0\n51,0,86,0,3,0,46,0,12,0,59,0\n24,0,69,0,5,0,30,0,2,0,58,0\n62,0,1,0,80,0,50,0,71,0,76,0\n74,0,18,0,87,0,54,0,17,0,65,0\n41,0,11,0,73,0,75,0,38,0,9,0\n55,0,37,0,83,0,82,0,57,0,31,0\n79,0,42,0,88,0,23,0,8,0,40,0\n56,0,68,0,22,0,52,0,33,0,14,0\n78,0,27,0,63,0,70,0,43,0,47,0\n45,0,66,0,26,0,4,0,16,0,67,0\n48,0,64,0,6,0,28,0,35,0,32,0\n81,0,21,0,36,0,39,0,7,0,15,0\n60,0,49,0,29,0,13,0,77,0,19,0\n34,0,44,0,74,0,10,0,69,0,23,0\n46,1,71,0,14,0,11,1,58,0,17,0\n53,0,82,0,43,0,50,0,52,0,24,0\n87,0,75,0,59,0,30,0,66,0,1,0\n85,0,48,0,45,0,61,0,54,0,78,0\n21,0,55,0,5,0,12,0,18,0,67,0\n8,0,35,0,65,0,72,0,37,0,29,0\n26,0,47,0,13,0,41,0,68,0,62,0\n81,0,32,0,80,0,57,0,63,0,84,0\n51,0,88,0,15,0,34,0,4,0,6,0\n16,0,83,0,22,0,49,0,25,0,36,0\n79,0,60,0,9,0,7,0,28,0,76,0\n56,0,39,0,3,0,20,0,73,0,19,0\n70,0,77,0,38,0,2,0,42,0,33,0\n27,0,40,0,64,0,31,0,86,0,10,0\n59,0,81,0,68,0,11,0,23,0,62,0\n48,0,41,0,14,0,63,0,87,0,50,0\n55,0,66,0,36,0,17,0,44,0,85,0\n46,0,69,0,52,0,37,0,54,0,21,0\n78,0,9,0,20,0,5,0,60,0,83,0\n4,0,28,0,80,0,19,0,75,0,53,0\n43,0,56,0,2,0,79,0,45,0,64,0\n6,0,76,0,77,0,72,0,31,0,22,0\n74,0,35,0,40,0,30,0,12,0,38,0\n70,0,13,0,88,0,25,0,57,0,24,0\n29,0,16,0,86,0,34,0,73,0,82,0\n10,0,58,0,15,0,26,0,61,0,65,0\n67,0,49,0,1,0,27,0,51,0,39,0\n42,0,47,0,71,0,3,0,7,0,32,0\n33,0,84,0,6,0,18,0,8,0,11,0\n40,0,63,0,20,0,69,0,4,0,55,0\n37,0,70,0,59,0,85,0,5,0,56,0\n28,0,30,0,43,0,81,0,41,0,72,0\n52,0,35,0,2,0,87,0,34,0,83,0\n10,0,12,0,77,0,16,0,79,0,50,0\n14,0,57,0,67,0,9,0,54,0,47,0\n8,0,25,0,64,0,1,0,58,0,38,0\n65,0,88,0,32,0,33,0,62,0,60,0\n61,0,22,0,46,0,27,0,23,0,13,0\n68,0,49,0,73,0,45,0,71,0,53,0\n75,0,78,0,51,0,7,0,17,0,29,0\n24,0,39,0,18,0,80,0,86,0,26,0\n84,0,74,0,19,0,36,0,42,0,31,0\n15,0,3,0,82,0,44,0,76,0,48,0\n66,0,33,0,35,0,21,0,50,0,57,0\n4,0,79,0,38,0,59,0,61,0,52,0\n65,0,40,0,28,0,83,0,11,0,70,0\n7,0,16,0,72,0,69,0,27,0,58,0\n41,0,56,0,10,0,49,0,78,0,46,0\n8,0,85,0,71,0,77,0,26,0,43,0\n25,0,23,0,87,0,15,0,73,0,29,0\n21,0,13,0,6,0,20,0,44,0,80,0\n22,0,47,0,30,0,82,0,64,0,18,0\n54,0,76,0,34,0,32,0,19,0,55,0\n1,0,3,0,24,0,60,0,81,0,74,0\n53,0,66,0,39,0,5,0,42,0,14,0\n75,0,68,0,86,0,67,0,48,0,31,0\n45,0,12,0,9,0,84,0,88,0,17,0\n37,0,62,0,63,0,36,0,2,0,51,0\n49,0,11,0,80,0,85,0,79,0,15,0\n61,0,69,0,82,0,8,0,70,0,87,0\n50,0,60,0,78,0,72,0,23,0,26,0\n29,0,58,0,40,0,54,0,3,0,33,0\n55,0,52,0,25,0,71,0,6,0,39,0\n27,0,9,0,19,0,68,0,65,0,21,0\n16,0,17,0,30,0,53,0,62,0,13,0\n5,0,51,0,47,0,45,0,10,0,81,0\n14,0,36,0,34,0,64,0,77,0,67,0\n28,0,18,0,2,0,31,0,59,0,88,0\n24,0,41,0,4,0,76,0,84,0,35,0\n43,0,20,0,7,0,57,0,74,0,22,0\n63,0,38,0,83,0,66,0,56,0,86,0\n12,0,48,0,42,0,1,0,73,0,37,0\n44,0,32,0,5,0,46,0,75,0,8,0\n87,0,53,0,11,0,26,0,21,0,3,0\n50,0,2,0,40,0,9,0,81,0,13,0\n41,0,23,0,31,0,33,0,85,0,16,0\n45,0,30,0,65,0,77,0,52,0,80,0\n18,0,57,0,76,0,69,0,36,0,56,0\n70,0,20,0,35,0,86,0,14,0,1,0\n46,0,72,0,19,0,66,0,48,0,88,0\n63,0,15,0,71,0,24,0,67,0,22,0\n58,0,79,0,55,0,74,0,51,0,68,0\n39,0,17,0,4,0,32,0,10,0,83,0\n84,0,54,0,7,0,64,0,59,0,73,0\n75,0,27,0,25,0,42,0,82,0,60,0\n6,0,61,0,62,0,43,0,29,0,12,0\n37,0,38,0,49,0,34,0,28,0,47,0\n78,0,1,0,57,0,44,0,11,0,52,0\n87,0,19,0,51,0,71,0,40,0,33,0\n74,0,39,0,76,0,85,0,2,0,68,0\n7,0,14,0,10,0,88,0,41,0,55,0\n81,0,25,0,4,0,18,0,77,0,46,0\n61,0,31,0,17,0,50,0,3,0,5,0\n65,0,42,0,86,0,49,0,43,0,69,0\n44,0,26,0,63,0,12,0,28,0,54,0\n83,0,62,0,75,0,15,0,64,0,72,0\n24,0,47,0,21,0,16,0,8,0,56,0\n73,0,79,0,67,0,6,0,70,0,30,0\n36,0,80,0,23,0,9,0,35,0,82,0\n60,0,38,0,34,0,53,0,48,0,22,0\n84,0,13,0,58,0,78,0,37,0,66,0\n59,0,29,0,27,0,32,0,20,0,45,0\n1,0,69,0,17,0,15,0,19,0,41,0\n68,0,64,0,42,0,4,0,57,0,46,0\n11,0,61,0,88,0,39,0,77,0,47,0\n10,0,28,0,67,0,62,0,52,0,3,0\n12,0,53,0,8,0,83,0,81,0,76,0\n50,0,70,0,54,0,75,0,22,0,49,0\n82,0,23,0,84,0,38,0,65,0,51,0\n45,0,86,0,58,0,36,0,87,0,6,0\n33,0,37,0,26,0,27,0,20,0,79,0\n66,0,34,0,5,0,43,0,25,0,80,0\n21,0,32,0,31,0,30,0,14,0,78,0\n7,0,85,0,13,0,35,0,63,0,18,0\n71,0,9,0,74,0,56,0,48,0,29,0\n73,0,72,0,44,0,40,0,59,0,24,0\n16,0,2,0,46,0,55,0,60,0,11,0\n"
  },
  {
    "path": "schedules/88_11.csv",
    "content": "84,0,26,0,79,0,32,0,42,0,20,0\n31,0,38,0,28,0,24,0,29,0,74,0\n10,0,37,0,23,0,62,0,77,0,72,0\n16,0,53,0,69,0,18,0,86,0,64,0\n76,0,82,0,66,0,63,0,36,0,70,0\n52,0,58,0,34,0,22,0,65,0,80,0\n39,0,71,0,21,0,57,0,59,0,1,0\n51,0,45,0,46,0,14,0,67,0,4,0\n19,0,25,0,9,0,75,0,73,0,85,0\n78,0,40,0,49,0,41,0,35,0,56,0\n43,0,68,0,17,0,5,0,87,0,61,0\n50,0,15,0,8,0,81,0,88,0,6,0\n13,0,60,0,47,0,44,0,54,0,2,0\n48,0,3,0,83,0,30,0,7,0,27,0\n11,0,55,0,57,0,12,0,33,0,22,0\n26,0,76,0,77,0,71,0,52,0,64,0\n67,0,10,0,36,0,16,0,78,0,24,0\n70,0,49,0,32,0,43,0,51,0,59,0\n19,0,15,0,28,0,40,0,87,0,42,0\n86,0,61,0,9,0,34,0,82,0,37,0\n81,0,75,0,47,0,17,0,21,0,83,0\n45,0,3,0,39,0,72,0,58,0,2,0\n1,0,73,0,66,0,23,0,79,0,68,0\n35,0,60,0,14,0,29,0,11,0,8,0\n6,0,41,0,55,0,84,0,74,0,18,0\n31,0,27,0,12,0,63,0,54,0,38,0\n69,0,88,0,30,0,85,0,20,0,65,0\n46,0,53,0,56,0,44,0,33,0,62,0\n7,0,80,0,25,0,5,0,50,0,13,0\n4,0,24,0,22,0,48,0,47,0,40,0\n11,1,73,0,32,0,76,1,10,0,21,0\n29,1,51,0,86,0,59,1,3,0,75,0\n12,0,18,0,34,0,49,0,64,0,67,0\n8,0,63,0,28,0,37,0,2,0,79,0\n52,0,15,0,66,0,30,0,54,0,72,0\n16,0,87,0,41,0,85,0,83,0,1,0\n45,0,44,0,61,0,57,0,36,0,80,0\n39,0,7,0,65,0,62,0,84,0,70,0\n23,0,71,0,9,0,42,0,46,0,48,0\n82,0,78,0,20,0,25,0,60,0,6,0\n53,0,33,0,17,0,77,0,19,0,13,0\n43,0,88,0,27,0,56,0,74,0,4,0\n14,0,68,0,50,0,38,0,55,0,26,0\n81,0,35,0,5,0,58,0,31,0,69,0\n45,0,54,0,37,0,32,0,75,0,84,0\n64,0,34,0,42,0,39,0,10,0,11,0\n67,0,29,0,66,0,15,0,57,0,85,0\n6,0,80,0,16,0,51,0,63,0,19,0\n17,0,74,0,65,0,82,0,9,0,79,0\n61,0,8,0,47,0,59,0,41,0,77,0\n68,0,58,0,46,0,49,0,28,0,20,0\n3,0,25,0,4,0,18,0,26,0,44,0\n13,0,38,0,23,0,21,0,69,0,43,0\n76,0,53,0,22,0,31,0,50,0,78,0\n70,0,33,0,73,0,27,0,60,0,40,0\n52,0,5,0,36,0,56,0,83,0,86,0\n24,0,71,0,2,0,55,0,35,0,30,0\n12,0,88,0,72,0,14,0,7,0,87,0\n81,0,62,0,25,0,48,0,1,0,61,0\n15,0,20,0,34,0,41,0,43,0,45,0\n49,0,22,0,69,0,19,0,37,0,3,0\n57,0,29,0,16,0,73,0,65,0,42,0\n63,0,39,0,23,0,67,0,26,0,83,0\n64,0,2,0,59,0,50,0,84,0,66,0\n35,0,82,0,68,0,47,0,51,0,53,0\n60,0,30,0,1,0,12,0,4,0,77,0\n55,0,72,0,13,0,32,0,81,0,78,0\n40,0,88,0,7,0,17,0,54,0,71,0\n38,0,87,0,62,0,9,0,52,0,6,0\n48,0,75,0,10,0,18,0,76,0,28,0\n36,0,74,0,33,0,21,0,58,0,8,0\n31,0,80,0,56,0,85,0,79,0,11,0\n5,0,44,0,86,0,24,0,14,0,70,0\n27,0,22,0,61,0,46,0,29,0,13,0\n41,0,42,0,72,0,68,0,25,0,69,0\n23,0,52,0,55,0,47,0,16,0,49,0\n66,0,28,0,83,0,65,0,32,0,60,0\n51,0,48,0,84,0,88,0,38,0,78,0\n73,0,3,0,77,0,67,0,6,0,54,0\n43,0,81,0,19,0,24,0,59,0,76,0\n4,0,20,0,79,0,62,0,71,0,5,0\n70,0,11,0,74,0,26,0,30,0,37,0\n21,0,86,0,40,0,12,0,63,0,45,0\n85,0,10,0,34,0,8,0,17,0,46,0\n2,0,36,0,15,0,14,0,31,0,53,0\n80,0,64,0,1,0,75,0,35,0,33,0\n44,0,87,0,50,0,27,0,39,0,82,0\n57,0,18,0,58,0,56,0,7,0,9,0\n59,0,69,0,83,0,78,0,54,0,4,0\n51,0,67,0,62,0,40,0,74,0,76,0\n5,0,41,0,21,0,28,0,22,0,88,0\n20,0,53,0,81,0,11,0,3,0,23,0\n52,0,86,0,85,0,48,0,43,0,60,0\n26,0,75,0,72,0,27,0,34,0,36,0\n87,0,30,0,79,0,38,0,45,0,33,0\n64,0,56,0,24,0,82,0,13,0,73,0\n55,0,42,0,8,0,63,0,7,0,1,0\n29,0,50,0,19,0,10,0,70,0,57,0\n58,0,32,0,35,0,16,0,17,0,44,0\n46,0,25,0,47,0,39,0,6,0,31,0\n84,0,14,0,77,0,9,0,49,0,66,0\n71,0,68,0,15,0,37,0,80,0,18,0\n12,0,65,0,76,0,2,0,61,0,56,0\n59,0,7,0,34,0,60,0,74,0,23,0\n8,0,41,0,70,0,53,0,72,0,67,0\n81,0,27,0,42,0,85,0,45,0,22,0\n21,0,13,0,31,0,87,0,20,0,51,0\n47,0,44,0,88,0,1,0,38,0,19,0\n84,0,16,0,28,0,33,0,25,0,43,0\n37,0,14,0,52,0,4,0,39,0,73,0\n54,0,62,0,18,0,24,0,11,0,35,0\n5,0,17,0,63,0,64,0,15,0,3,0\n65,0,40,0,68,0,75,0,50,0,77,0\n58,0,82,0,36,0,29,0,48,0,12,0\n61,0,69,0,6,0,79,0,55,0,66,0\n57,0,26,0,86,0,78,0,46,0,30,0\n2,0,83,0,49,0,9,0,80,0,10,0\n71,0,4,0,85,0,32,0,53,0,38,0\n70,0,35,0,88,0,34,0,13,0,45,0\n59,0,21,0,15,0,68,0,16,0,62,0\n72,0,1,0,11,0,51,0,28,0,5,0\n7,0,79,0,64,0,22,0,47,0,36,0\n14,0,42,0,6,0,76,0,30,0,33,0\n20,0,55,0,83,0,44,0,40,0,37,0\n9,0,54,0,39,0,41,0,29,0,81,0\n66,0,43,0,80,0,46,0,12,0,3,0\n49,0,82,0,75,0,8,0,57,0,31,0\n78,0,61,0,63,0,52,0,50,0,74,0\n87,0,25,0,77,0,86,0,24,0,58,0\n17,0,73,0,48,0,2,0,69,0,26,0\n84,0,10,0,56,0,71,0,67,0,60,0\n65,0,19,0,27,0,32,0,23,0,18,0\n37,0,46,0,38,0,59,0,42,0,36,0\n16,0,40,0,81,0,80,0,82,0,14,0\n11,0,30,0,63,0,43,0,44,0,75,0\n79,0,49,0,76,0,86,0,15,0,39,0\n85,0,6,0,12,0,26,0,13,0,28,0\n74,0,73,0,72,0,47,0,71,0,83,0\n64,0,55,0,54,0,65,0,51,0,25,0\n33,0,2,0,52,0,68,0,7,0,67,0\n21,0,60,0,9,0,24,0,53,0,50,0\n45,0,8,0,48,0,5,0,66,0,19,0\n3,0,10,0,31,0,41,0,88,0,61,0\n57,0,84,0,4,0,87,0,35,0,23,0\n32,0,56,0,77,0,34,0,69,0,29,0\n22,0,17,0,18,0,20,0,70,0,1,0\n78,0,62,0,14,0,58,0,27,0,47,0\n63,0,33,0,86,0,81,0,71,0,65,0\n72,0,60,0,38,0,76,0,46,0,16,0\n59,0,67,0,80,0,55,0,88,0,53,0\n11,0,31,0,83,0,84,0,68,0,19,0\n7,0,29,0,4,0,6,0,21,0,49,0\n40,0,43,0,32,0,36,0,1,0,9,0\n5,0,78,0,18,0,2,0,82,0,42,0\n24,0,37,0,66,0,41,0,27,0,17,0\n48,0,20,0,74,0,39,0,77,0,35,0\n30,0,62,0,50,0,28,0,34,0,73,0\n85,0,23,0,64,0,61,0,58,0,70,0\n54,0,22,0,26,0,8,0,56,0,87,0\n75,0,13,0,57,0,52,0,79,0,3,0\n44,0,51,0,69,0,10,0,12,0,15,0\n45,0,76,0,29,0,25,0,11,0,59,0\n"
  },
  {
    "path": "schedules/88_12.csv",
    "content": "12,0,61,0,8,0,10,0,49,0,45,0\n24,0,80,0,66,0,79,0,33,0,78,0\n83,0,71,0,4,0,11,0,18,0,32,0\n29,0,36,0,30,0,69,0,62,0,68,0\n55,0,42,0,63,0,40,0,37,0,84,0\n17,0,46,0,27,0,72,0,1,0,50,0\n51,0,59,0,22,0,7,0,77,0,41,0\n19,0,26,0,53,0,88,0,16,0,57,0\n47,0,76,0,82,0,44,0,28,0,20,0\n52,0,14,0,86,0,64,0,25,0,81,0\n58,0,9,0,34,0,15,0,60,0,85,0\n35,0,73,0,23,0,6,0,74,0,70,0\n5,0,48,0,13,0,67,0,87,0,31,0\n21,0,39,0,56,0,75,0,2,0,43,0\n54,0,38,0,50,0,3,0,65,0,18,0\n44,0,57,0,84,0,17,0,59,0,69,0\n42,0,83,0,68,0,72,0,12,0,25,0\n40,0,19,0,85,0,66,0,36,0,49,0\n22,0,79,0,37,0,15,0,70,0,20,0\n67,0,8,0,1,0,74,0,76,0,28,0\n53,0,45,0,4,0,78,0,35,0,87,0\n27,0,30,0,71,0,64,0,16,0,2,0\n24,0,86,0,77,0,23,0,13,0,82,0\n60,0,32,0,21,0,29,0,51,0,54,0\n26,0,46,0,6,0,56,0,58,0,41,0\n7,0,48,0,38,0,80,0,43,0,61,0\n33,0,10,0,5,0,3,0,14,0,62,0\n81,0,75,0,9,0,65,0,55,0,11,0\n39,0,88,0,73,0,52,0,47,0,31,0\n63,0,17,0,45,0,34,0,64,0,36,0\n78,0,19,0,69,0,20,0,72,0,86,0\n28,0,32,0,49,0,35,0,25,0,46,0\n12,0,30,0,84,0,4,0,77,0,18,0\n60,0,74,0,26,0,71,0,3,0,24,0\n54,0,83,0,66,0,13,0,70,0,51,0\n44,0,31,0,1,0,79,0,15,0,61,0\n40,0,43,0,56,0,87,0,11,0,10,0\n47,0,37,0,16,0,75,0,48,0,82,0\n53,0,7,0,39,0,42,0,50,0,5,0\n33,0,27,0,63,0,9,0,38,0,6,0\n57,0,21,0,85,0,8,0,73,0,80,0\n62,0,41,0,22,0,76,0,23,0,55,0\n34,0,88,0,59,0,81,0,14,0,29,0\n68,0,52,0,2,0,65,0,58,0,67,0\n75,0,87,0,51,0,46,0,84,0,74,0\n15,0,16,0,5,0,10,0,83,0,17,0\n33,0,86,0,40,0,47,0,7,0,4,0\n61,0,25,0,57,0,37,0,18,0,56,0\n35,0,11,0,30,0,3,0,31,0,63,0\n62,0,64,0,49,0,54,0,1,0,42,0\n80,0,32,0,55,0,19,0,59,0,67,0\n23,0,71,0,68,0,38,0,52,0,78,0\n36,0,6,0,81,0,22,0,53,0,60,0\n85,0,50,0,13,0,26,0,29,0,44,0\n76,0,66,0,48,0,12,0,73,0,58,0\n45,0,2,0,41,0,9,0,79,0,82,0\n39,0,72,0,70,0,28,0,24,0,34,0\n77,0,69,0,27,0,21,0,65,0,14,0\n88,0,20,0,68,0,43,0,8,0,46,0\n59,0,78,0,18,0,6,0,47,0,64,0\n13,0,80,0,40,0,1,0,30,0,32,0\n60,0,84,0,49,0,31,0,38,0,53,0\n57,0,10,0,58,0,54,0,44,0,7,0\n15,0,36,0,56,0,48,0,16,0,24,0\n12,0,39,0,74,0,65,0,79,0,62,0\n52,0,82,0,34,0,22,0,35,0,26,0\n81,0,66,0,5,0,21,0,9,0,72,0\n42,0,37,0,11,0,85,0,45,0,77,0\n20,0,69,0,50,0,33,0,55,0,83,0\n14,0,61,0,41,0,19,0,71,0,17,0\n2,0,87,0,4,0,29,0,23,0,8,0\n86,0,73,0,51,0,3,0,27,0,28,0\n67,0,25,0,88,0,63,0,75,0,70,0\n43,0,30,0,79,0,76,0,26,0,65,0\n59,0,1,0,82,0,68,0,85,0,39,0\n44,0,60,0,78,0,12,0,16,0,40,0\n62,0,35,0,19,0,58,0,21,0,83,0\n17,0,77,0,81,0,20,0,48,0,32,0\n74,0,80,0,72,0,4,0,55,0,49,0\n18,0,45,0,14,0,73,0,46,0,31,0\n3,0,57,0,23,0,75,0,66,0,34,0\n24,0,9,0,53,0,25,0,43,0,54,0\n50,0,63,0,64,0,87,0,15,0,41,0\n10,0,29,0,47,0,67,0,70,0,27,0\n76,0,42,0,22,0,38,0,56,0,71,0\n7,0,8,0,52,0,6,0,69,0,13,0\n28,0,51,0,11,0,88,0,5,0,61,0\n33,0,2,0,84,0,37,0,36,0,86,0\n43,0,32,0,85,0,45,0,23,0,72,0\n4,0,20,0,41,0,60,0,54,0,39,0\n73,0,26,0,64,0,9,0,77,0,10,0\n74,0,19,0,31,0,27,0,56,0,68,0\n17,0,29,0,75,0,18,0,35,0,66,0\n8,0,38,0,11,0,24,0,15,0,62,0\n55,0,36,0,79,0,52,0,87,0,28,0\n80,0,69,0,58,0,22,0,82,0,5,0\n65,0,44,0,37,0,88,0,6,0,71,0\n30,0,50,0,61,0,70,0,86,0,59,0\n67,0,3,0,46,0,53,0,12,0,57,0\n14,0,47,0,2,0,63,0,49,0,83,0\n51,0,48,0,34,0,42,0,78,0,40,0\n25,0,84,0,16,0,21,0,1,0,7,0\n81,0,33,0,68,0,76,0,13,0,15,0\n39,0,44,0,18,0,22,0,9,0,80,0\n20,0,71,0,74,0,58,0,45,0,86,0\n3,0,38,0,79,0,88,0,64,0,32,0\n31,0,72,0,75,0,54,0,77,0,8,0\n14,0,55,0,17,0,85,0,56,0,53,0\n82,0,70,0,21,0,36,0,46,0,78,0\n5,0,47,0,69,0,23,0,19,0,37,0\n29,0,12,0,11,0,52,0,33,0,41,0\n25,0,65,0,34,0,10,0,13,0,4,0\n42,0,61,0,87,0,66,0,16,0,6,0\n84,0,50,0,73,0,40,0,2,0,24,0\n60,0,7,0,83,0,67,0,30,0,28,0\n81,0,62,0,63,0,51,0,57,0,26,0\n76,0,49,0,35,0,59,0,48,0,27,0\n43,0,29,0,77,0,1,0,55,0,71,0\n12,0,36,0,23,0,20,0,31,0,80,0\n44,0,53,0,32,0,68,0,34,0,86,0\n42,0,88,0,33,0,82,0,73,0,17,0\n64,0,28,0,65,0,56,0,84,0,66,0\n67,0,11,0,54,0,50,0,78,0,22,0\n46,0,19,0,10,0,39,0,30,0,38,0\n35,0,47,0,57,0,61,0,72,0,60,0\n26,0,15,0,7,0,45,0,27,0,75,0\n41,0,21,0,13,0,74,0,40,0,18,0\n59,0,63,0,4,0,52,0,5,0,43,0\n2,0,85,0,6,0,76,0,25,0,62,0\n70,0,3,0,8,0,48,0,9,0,14,0\n37,0,83,0,1,0,87,0,81,0,24,0\n79,0,58,0,16,0,69,0,51,0,49,0\n36,0,32,0,31,0,47,0,26,0,42,0\n64,0,75,0,13,0,19,0,12,0,22,0\n28,0,40,0,77,0,38,0,57,0,68,0\n15,0,66,0,43,0,82,0,30,0,25,0\n88,0,78,0,10,0,85,0,74,0,41,0\n18,0,55,0,86,0,8,0,5,0,60,0\n53,0,1,0,11,0,2,0,73,0,69,0\n56,0,70,0,62,0,49,0,52,0,44,0\n24,0,65,0,20,0,14,0,35,0,51,0\n39,0,58,0,27,0,81,0,3,0,61,0\n67,0,7,0,17,0,23,0,79,0,21,0\n45,0,48,0,29,0,84,0,6,0,83,0\n87,0,72,0,54,0,33,0,59,0,71,0\n16,0,76,0,46,0,80,0,34,0,63,0\n4,0,9,0,66,0,50,0,37,0,68,0\n40,0,65,0,82,0,8,0,53,0,64,0\n61,0,52,0,24,0,75,0,30,0,42,0\n70,0,2,0,55,0,7,0,12,0,32,0\n57,0,60,0,79,0,27,0,13,0,11,0\n6,0,49,0,87,0,26,0,17,0,39,0\n69,0,16,0,35,0,85,0,81,0,67,0\n56,0,74,0,77,0,54,0,5,0,34,0\n46,0,15,0,80,0,71,0,84,0,47,0\n50,0,45,0,33,0,19,0,25,0,51,0\n4,0,21,0,22,0,1,0,14,0,88,0\n31,0,76,0,9,0,86,0,83,0,78,0\n73,0,41,0,3,0,36,0,44,0,43,0\n38,0,28,0,37,0,58,0,59,0,29,0\n18,0,48,0,23,0,10,0,63,0,72,0\n20,0,13,0,34,0,62,0,84,0,61,0\n19,0,87,0,70,0,65,0,42,0,60,0\n74,0,15,0,14,0,32,0,2,0,57,0\n45,0,54,0,81,0,30,0,68,0,80,0\n51,0,56,0,12,0,9,0,1,0,47,0\n73,0,85,0,71,0,79,0,75,0,5,0\n38,0,67,0,72,0,37,0,26,0,41,0\n27,0,66,0,52,0,18,0,53,0,20,0\n17,0,76,0,3,0,69,0,4,0,40,0\n28,0,86,0,62,0,22,0,43,0,16,0\n35,0,36,0,58,0,50,0,88,0,77,0\n24,0,31,0,6,0,10,0,21,0,55,0\n25,0,83,0,23,0,8,0,39,0,59,0\n49,0,78,0,82,0,63,0,29,0,7,0\n44,0,48,0,46,0,33,0,11,0,64,0\n"
  },
  {
    "path": "schedules/88_13.csv",
    "content": "56,0,18,0,14,0,48,0,53,0,88,0\n10,0,63,0,42,0,2,0,13,0,37,0\n47,0,35,0,6,0,85,0,22,0,58,0\n9,0,16,0,23,0,39,0,62,0,41,0\n12,0,71,0,24,0,74,0,64,0,51,0\n77,0,45,0,43,0,86,0,7,0,11,0\n79,0,55,0,19,0,25,0,81,0,26,0\n44,0,59,0,76,0,32,0,73,0,84,0\n8,0,61,0,66,0,40,0,34,0,30,0\n20,0,4,0,49,0,5,0,1,0,31,0\n72,0,70,0,50,0,60,0,54,0,3,0\n17,0,29,0,75,0,67,0,36,0,78,0\n33,0,69,0,28,0,57,0,82,0,21,0\n68,0,15,0,46,0,80,0,27,0,65,0\n87,0,83,0,26,0,38,0,52,0,2,0\n43,0,61,0,84,0,9,0,51,0,73,0\n35,0,58,0,62,0,10,0,4,0,77,0\n49,0,37,0,5,0,72,0,24,0,14,0\n48,0,41,0,74,0,40,0,39,0,42,0\n8,0,54,0,29,0,18,0,45,0,33,0\n64,0,85,0,82,0,55,0,46,0,30,0\n50,0,32,0,38,0,28,0,25,0,13,0\n19,0,70,0,81,0,22,0,71,0,88,0\n23,0,15,0,6,0,66,0,21,0,36,0\n76,0,53,0,31,0,3,0,57,0,87,0\n56,0,7,0,44,0,59,0,83,0,17,0\n60,0,52,0,34,0,69,0,80,0,16,0\n86,0,20,0,78,0,68,0,63,0,79,0\n47,0,1,0,65,0,67,0,27,0,11,0\n75,0,42,0,8,0,12,0,9,0,19,0\n46,1,4,0,51,0,37,1,54,0,88,0\n53,0,26,0,28,0,40,0,71,0,23,0\n77,0,66,0,17,0,49,0,22,0,55,0\n39,0,76,0,13,0,82,0,62,0,43,0\n41,0,70,0,29,0,32,0,10,0,31,0\n18,0,24,0,44,0,52,0,3,0,85,0\n2,0,67,0,68,0,33,0,57,0,58,0\n47,0,25,0,80,0,59,0,21,0,78,0\n72,0,45,0,1,0,16,0,15,0,87,0\n60,0,7,0,65,0,61,0,36,0,79,0\n48,0,14,0,30,0,35,0,27,0,63,0\n83,0,5,0,73,0,69,0,74,0,50,0\n81,0,34,0,86,0,84,0,20,0,12,0\n38,0,75,0,56,0,11,0,6,0,64,0\n3,0,2,0,23,0,51,0,8,0,59,0\n28,0,44,0,71,0,49,0,47,0,68,0\n26,0,7,0,55,0,70,0,21,0,9,0\n17,0,58,0,82,0,25,0,40,0,14,0\n1,0,29,0,33,0,52,0,5,0,63,0\n53,0,45,0,46,0,19,0,78,0,10,0\n6,0,79,0,88,0,12,0,73,0,16,0\n32,0,36,0,11,0,34,0,37,0,74,0\n31,0,83,0,43,0,24,0,42,0,15,0\n84,0,85,0,38,0,77,0,65,0,48,0\n72,0,60,0,66,0,67,0,20,0,13,0\n56,0,35,0,64,0,61,0,50,0,76,0\n39,0,22,0,69,0,87,0,27,0,54,0\n41,0,4,0,80,0,81,0,57,0,18,0\n30,0,86,0,68,0,62,0,75,0,70,0\n43,0,6,0,52,0,25,0,53,0,34,0\n14,0,51,0,42,0,44,0,36,0,45,0\n79,0,10,0,9,0,38,0,1,0,66,0\n47,0,77,0,76,0,33,0,37,0,8,0\n15,0,84,0,82,0,88,0,2,0,5,0\n73,0,21,0,17,0,85,0,81,0,11,0\n59,0,46,0,63,0,72,0,74,0,61,0\n12,0,31,0,50,0,80,0,22,0,67,0\n64,0,26,0,3,0,49,0,41,0,86,0\n48,0,28,0,83,0,78,0,54,0,62,0\n23,0,27,0,60,0,18,0,29,0,19,0\n65,0,16,0,57,0,56,0,58,0,20,0\n13,0,69,0,7,0,75,0,40,0,35,0\n32,0,24,0,55,0,71,0,30,0,87,0\n39,0,53,0,50,0,4,0,63,0,85,0\n67,0,42,0,73,0,26,0,82,0,5,0\n49,0,17,0,8,0,70,0,74,0,43,0\n61,0,3,0,10,0,33,0,14,0,27,0\n23,0,31,0,22,0,68,0,76,0,45,0\n66,0,35,0,57,0,36,0,16,0,59,0\n20,0,47,0,81,0,54,0,75,0,30,0\n78,0,41,0,7,0,84,0,6,0,69,0\n15,0,21,0,71,0,62,0,52,0,44,0\n40,0,32,0,56,0,77,0,80,0,79,0\n38,0,25,0,39,0,12,0,29,0,46,0\n13,0,64,0,18,0,34,0,51,0,87,0\n2,0,65,0,19,0,72,0,28,0,4,0\n86,0,88,0,55,0,1,0,83,0,37,0\n11,0,9,0,48,0,60,0,58,0,24,0\n14,0,26,0,84,0,74,0,62,0,47,0\n85,0,75,0,49,0,42,0,61,0,23,0\n45,0,52,0,32,0,20,0,39,0,43,0\n29,0,30,0,50,0,7,0,21,0,51,0\n72,0,22,0,8,0,41,0,38,0,73,0\n31,0,27,0,40,0,2,0,6,0,44,0\n9,0,17,0,57,0,71,0,86,0,46,0\n59,0,37,0,87,0,28,0,15,0,81,0\n80,0,48,0,13,0,16,0,33,0,55,0\n68,0,34,0,70,0,77,0,53,0,5,0\n82,0,54,0,24,0,1,0,79,0,35,0\n69,0,12,0,64,0,65,0,18,0,10,0\n66,0,11,0,78,0,3,0,4,0,88,0\n83,0,63,0,76,0,19,0,58,0,36,0\n67,0,60,0,37,0,56,0,25,0,23,0\n55,0,72,0,2,0,29,0,44,0,43,0\n81,0,41,0,61,0,68,0,74,0,52,0\n62,0,49,0,79,0,8,0,46,0,57,0\n59,0,50,0,34,0,26,0,27,0,9,0\n82,0,66,0,45,0,53,0,65,0,12,0\n16,0,40,0,21,0,75,0,3,0,83,0\n85,0,78,0,69,0,56,0,1,0,70,0\n14,0,36,0,4,0,38,0,28,0,86,0\n39,0,31,0,7,0,73,0,47,0,64,0\n42,0,35,0,5,0,18,0,60,0,32,0\n58,0,80,0,54,0,19,0,17,0,84,0\n11,0,15,0,51,0,22,0,20,0,76,0\n77,0,88,0,13,0,25,0,30,0,24,0\n48,0,71,0,63,0,6,0,67,0,10,0\n87,0,4,0,44,0,33,0,70,0,12,0\n2,0,36,0,49,0,69,0,47,0,53,0\n64,0,27,0,81,0,16,0,43,0,78,0\n8,0,56,0,52,0,31,0,66,0,84,0\n26,0,39,0,51,0,65,0,17,0,35,0\n73,0,60,0,46,0,77,0,41,0,21,0\n61,0,88,0,62,0,6,0,32,0,72,0\n85,0,14,0,79,0,29,0,83,0,13,0\n30,0,3,0,37,0,80,0,9,0,5,0\n19,0,48,0,34,0,68,0,1,0,82,0\n20,0,33,0,42,0,71,0,59,0,7,0\n40,0,38,0,67,0,18,0,55,0,76,0\n74,0,15,0,86,0,58,0,23,0,50,0\n22,0,63,0,45,0,28,0,24,0,57,0\n25,0,54,0,10,0,87,0,11,0,75,0\n36,0,52,0,12,0,30,0,72,0,78,0\n47,0,3,0,29,0,81,0,48,0,56,0\n8,0,21,0,68,0,32,0,14,0,64,0\n38,0,53,0,80,0,1,0,7,0,42,0\n70,0,71,0,37,0,50,0,82,0,65,0\n63,0,51,0,77,0,26,0,31,0,69,0\n39,0,88,0,10,0,86,0,44,0,57,0\n40,0,84,0,11,0,33,0,49,0,46,0\n74,0,67,0,79,0,22,0,2,0,9,0\n27,0,55,0,4,0,23,0,24,0,73,0\n25,0,41,0,87,0,20,0,83,0,35,0\n28,0,58,0,18,0,75,0,66,0,43,0\n59,0,62,0,6,0,17,0,60,0,45,0\n16,0,85,0,34,0,54,0,76,0,15,0\n61,0,5,0,57,0,13,0,19,0,47,0\n78,0,52,0,80,0,49,0,82,0,10,0\n23,0,36,0,1,0,70,0,46,0,40,0\n20,0,55,0,74,0,53,0,3,0,35,0\n68,0,18,0,72,0,11,0,79,0,39,0\n43,0,88,0,87,0,50,0,48,0,67,0\n34,0,76,0,24,0,14,0,17,0,41,0\n56,0,5,0,45,0,75,0,71,0,27,0\n37,0,58,0,12,0,85,0,26,0,62,0\n22,0,21,0,44,0,61,0,4,0,13,0\n19,0,31,0,30,0,38,0,59,0,69,0\n9,0,65,0,33,0,6,0,81,0,83,0\n60,0,25,0,63,0,15,0,7,0,8,0\n28,0,29,0,16,0,84,0,42,0,77,0\n32,0,54,0,2,0,64,0,66,0,86,0\n73,0,75,0,52,0,51,0,37,0,48,0\n46,0,35,0,78,0,34,0,67,0,44,0\n27,0,21,0,58,0,31,0,79,0,72,0\n80,0,26,0,36,0,45,0,88,0,85,0\n68,0,13,0,87,0,56,0,9,0,49,0\n1,0,12,0,61,0,28,0,17,0,3,0\n33,0,64,0,77,0,14,0,19,0,15,0\n2,0,84,0,39,0,55,0,60,0,71,0\n82,0,74,0,16,0,18,0,4,0,7,0\n6,0,20,0,24,0,8,0,10,0,50,0\n25,0,76,0,62,0,81,0,42,0,69,0\n86,0,53,0,40,0,73,0,22,0,29,0\n65,0,43,0,5,0,59,0,41,0,54,0\n57,0,23,0,11,0,30,0,32,0,83,0\n70,0,38,0,51,0,47,0,63,0,66,0\n9,0,77,0,75,0,72,0,82,0,44,0\n18,0,78,0,71,0,31,0,37,0,61,0\n69,0,79,0,4,0,15,0,45,0,48,0\n27,0,74,0,88,0,28,0,52,0,76,0\n81,0,46,0,1,0,58,0,13,0,8,0\n3,0,84,0,36,0,25,0,22,0,64,0\n17,0,5,0,33,0,23,0,35,0,38,0\n11,0,53,0,30,0,50,0,26,0,16,0\n86,0,87,0,42,0,34,0,65,0,21,0\n54,0,63,0,49,0,56,0,12,0,55,0\n67,0,19,0,51,0,85,0,32,0,41,0\n24,0,59,0,70,0,29,0,39,0,6,0\n14,0,62,0,73,0,80,0,20,0,2,0\n47,0,57,0,10,0,40,0,60,0,43,0\n83,0,7,0,46,0,66,0,68,0,37,0\n"
  },
  {
    "path": "schedules/88_14.csv",
    "content": "81,0,27,0,43,0,2,0,9,0,63,0\n11,0,5,0,13,0,49,0,77,0,6,0\n65,0,41,0,64,0,85,0,8,0,70,0\n26,0,83,0,82,0,54,0,1,0,29,0\n48,0,7,0,28,0,47,0,42,0,74,0\n40,0,37,0,38,0,14,0,53,0,66,0\n12,0,31,0,57,0,58,0,33,0,32,0\n46,0,20,0,4,0,87,0,69,0,86,0\n39,0,84,0,35,0,17,0,61,0,78,0\n68,0,3,0,75,0,15,0,34,0,51,0\n67,0,21,0,72,0,62,0,36,0,76,0\n71,0,59,0,10,0,23,0,60,0,30,0\n18,0,50,0,22,0,16,0,25,0,73,0\n80,0,52,0,44,0,24,0,55,0,79,0\n19,0,88,0,29,0,56,0,45,0,7,0\n6,0,69,0,84,0,47,0,83,0,12,0\n51,0,4,0,27,0,26,0,54,0,31,0\n37,0,1,0,15,0,77,0,41,0,36,0\n65,0,78,0,58,0,40,0,10,0,82,0\n23,0,34,0,70,0,18,0,74,0,11,0\n16,0,71,0,9,0,48,0,32,0,68,0\n50,0,45,0,75,0,59,0,2,0,14,0\n8,0,22,0,13,0,33,0,24,0,46,0\n79,0,49,0,62,0,3,0,28,0,35,0\n85,0,39,0,5,0,81,0,25,0,57,0\n73,0,63,0,19,0,86,0,38,0,61,0\n17,0,53,0,44,0,67,0,42,0,88,0\n72,0,52,0,20,0,64,0,80,0,21,0\n60,0,87,0,43,0,66,0,30,0,55,0\n56,0,70,0,11,0,76,0,84,0,78,0\n14,1,29,0,9,0,68,1,59,0,6,0\n23,1,22,0,7,0,85,1,83,0,62,0\n16,0,28,0,37,0,69,0,8,0,27,0\n71,0,67,0,53,0,74,0,82,0,75,0\n24,0,19,0,4,0,15,0,42,0,50,0\n26,0,36,0,47,0,87,0,52,0,34,0\n58,0,38,0,60,0,64,0,88,0,76,0\n3,0,44,0,32,0,81,0,21,0,41,0\n35,0,63,0,18,0,51,0,65,0,80,0\n20,0,43,0,39,0,13,0,56,0,73,0\n54,0,79,0,86,0,5,0,40,0,25,0\n30,0,49,0,12,0,2,0,46,0,1,0\n55,0,77,0,48,0,17,0,33,0,31,0\n45,0,61,0,10,0,66,0,57,0,72,0\n64,0,44,0,6,0,71,0,87,0,78,0\n28,0,80,0,4,0,81,0,53,0,23,0\n11,0,76,0,69,0,68,0,73,0,24,0\n9,0,83,0,67,0,38,0,88,0,18,0\n16,0,62,0,19,0,59,0,12,0,63,0\n14,0,77,0,56,0,30,0,74,0,32,0\n52,0,1,0,75,0,31,0,8,0,5,0\n10,0,49,0,84,0,7,0,20,0,54,0\n36,0,58,0,43,0,86,0,42,0,70,0\n48,0,57,0,21,0,79,0,35,0,29,0\n60,0,82,0,72,0,22,0,34,0,85,0\n2,0,47,0,51,0,13,0,39,0,40,0\n55,0,46,0,41,0,50,0,27,0,61,0\n3,0,17,0,25,0,37,0,26,0,45,0\n66,0,15,0,81,0,33,0,65,0,88,0\n63,0,77,0,23,0,67,0,56,0,54,0\n9,0,53,0,73,0,57,0,49,0,24,0\n83,0,5,0,72,0,71,0,14,0,19,0\n8,0,39,0,42,0,68,0,38,0,30,0\n46,0,78,0,34,0,4,0,21,0,32,0\n44,0,62,0,58,0,18,0,84,0,75,0\n61,0,6,0,74,0,80,0,43,0,37,0\n52,0,12,0,45,0,82,0,70,0,15,0\n51,0,41,0,25,0,69,0,33,0,59,0\n28,0,50,0,40,0,36,0,35,0,64,0\n31,0,22,0,66,0,47,0,29,0,3,0\n2,0,7,0,65,0,48,0,60,0,11,0\n85,0,79,0,76,0,17,0,87,0,1,0\n16,0,10,0,26,0,86,0,13,0,55,0\n20,0,56,0,5,0,27,0,68,0,67,0\n25,0,80,0,9,0,12,0,77,0,78,0\n36,0,23,0,51,0,19,0,49,0,64,0\n40,0,15,0,84,0,28,0,34,0,29,0\n54,0,24,0,35,0,58,0,71,0,41,0\n81,0,17,0,46,0,60,0,73,0,14,0\n79,0,22,0,45,0,55,0,18,0,53,0\n33,0,74,0,2,0,61,0,83,0,65,0\n87,0,75,0,37,0,16,0,39,0,7,0\n26,0,11,0,20,0,66,0,62,0,50,0\n52,0,27,0,76,0,59,0,3,0,48,0\n21,0,88,0,13,0,30,0,86,0,85,0\n32,0,1,0,6,0,72,0,38,0,70,0\n47,0,4,0,8,0,43,0,44,0,57,0\n42,0,82,0,69,0,10,0,63,0,31,0\n55,0,37,0,67,0,34,0,35,0,2,0\n11,0,46,0,12,0,75,0,28,0,41,0\n9,0,68,0,33,0,7,0,52,0,64,0\n29,0,59,0,53,0,86,0,18,0,78,0\n24,0,72,0,1,0,3,0,88,0,84,0\n20,0,85,0,45,0,43,0,6,0,40,0\n57,0,32,0,42,0,60,0,80,0,27,0\n5,0,30,0,61,0,26,0,69,0,23,0\n8,0,14,0,82,0,79,0,13,0,36,0\n19,0,70,0,81,0,10,0,77,0,47,0\n50,0,63,0,16,0,58,0,49,0,21,0\n54,0,39,0,73,0,48,0,44,0,66,0\n76,0,71,0,65,0,25,0,4,0,62,0\n17,0,22,0,38,0,87,0,74,0,51,0\n56,0,83,0,60,0,31,0,15,0,35,0\n29,0,55,0,33,0,23,0,20,0,32,0\n36,0,75,0,30,0,78,0,85,0,9,0\n5,0,59,0,45,0,42,0,37,0,11,0\n54,0,21,0,16,0,14,0,61,0,70,0\n41,0,76,0,13,0,63,0,7,0,57,0\n17,0,40,0,18,0,72,0,3,0,4,0\n27,0,24,0,66,0,82,0,77,0,64,0\n67,0,26,0,2,0,84,0,80,0,22,0\n62,0,53,0,48,0,34,0,8,0,83,0\n50,0,65,0,68,0,44,0,38,0,12,0\n58,0,56,0,69,0,81,0,79,0,6,0\n46,0,74,0,25,0,52,0,19,0,10,0\n88,0,1,0,51,0,73,0,43,0,28,0\n15,0,86,0,49,0,47,0,39,0,31,0\n87,0,29,0,63,0,71,0,3,0,2,0\n7,0,85,0,66,0,32,0,24,0,59,0\n34,0,9,0,54,0,13,0,17,0,50,0\n60,0,68,0,20,0,37,0,78,0,79,0\n21,0,8,0,38,0,40,0,81,0,11,0\n16,0,77,0,43,0,46,0,26,0,76,0\n61,0,58,0,42,0,52,0,22,0,51,0\n44,0,28,0,86,0,56,0,30,0,72,0\n35,0,87,0,10,0,12,0,15,0,14,0\n47,0,33,0,49,0,82,0,4,0,71,0\n62,0,55,0,74,0,69,0,1,0,57,0\n88,0,83,0,25,0,70,0,27,0,36,0\n67,0,65,0,39,0,53,0,19,0,6,0\n5,0,75,0,64,0,48,0,80,0,18,0\n41,0,31,0,73,0,23,0,84,0,45,0\n3,0,8,0,61,0,9,0,12,0,20,0\n49,0,56,0,42,0,26,0,33,0,85,0\n40,0,14,0,57,0,71,0,1,0,44,0\n4,0,76,0,37,0,10,0,28,0,83,0\n74,0,77,0,72,0,87,0,58,0,39,0\n7,0,53,0,35,0,70,0,5,0,46,0\n11,0,43,0,21,0,19,0,82,0,17,0\n64,0,48,0,63,0,15,0,22,0,25,0\n66,0,78,0,88,0,23,0,16,0,41,0\n34,0,47,0,27,0,79,0,73,0,65,0\n86,0,62,0,80,0,45,0,51,0,68,0\n38,0,36,0,59,0,55,0,31,0,84,0\n81,0,30,0,50,0,29,0,67,0,52,0\n69,0,18,0,32,0,13,0,54,0,2,0\n24,0,6,0,70,0,60,0,75,0,4,0\n87,0,76,0,33,0,19,0,40,0,9,0\n11,0,35,0,27,0,10,0,22,0,1,0\n49,0,68,0,72,0,41,0,43,0,83,0\n55,0,15,0,78,0,5,0,73,0,74,0\n80,0,8,0,58,0,17,0,59,0,66,0\n32,0,53,0,84,0,63,0,52,0,25,0\n60,0,29,0,36,0,62,0,69,0,39,0\n64,0,81,0,34,0,42,0,45,0,16,0\n57,0,13,0,6,0,3,0,23,0,50,0\n54,0,82,0,47,0,75,0,38,0,56,0\n86,0,48,0,14,0,24,0,67,0,12,0\n71,0,88,0,7,0,79,0,26,0,61,0\n85,0,21,0,2,0,77,0,28,0,51,0\n30,0,46,0,31,0,37,0,18,0,65,0\n44,0,70,0,9,0,20,0,19,0,22,0\n32,0,80,0,39,0,83,0,1,0,50,0\n10,0,41,0,34,0,5,0,38,0,43,0\n48,0,6,0,23,0,82,0,84,0,86,0\n63,0,26,0,14,0,8,0,60,0,78,0\n36,0,66,0,2,0,53,0,76,0,68,0\n77,0,75,0,73,0,42,0,40,0,29,0\n31,0,24,0,25,0,61,0,81,0,20,0\n13,0,35,0,49,0,74,0,45,0,44,0\n64,0,62,0,59,0,88,0,46,0,47,0\n69,0,7,0,15,0,72,0,17,0,27,0\n12,0,71,0,18,0,37,0,56,0,21,0\n79,0,33,0,51,0,11,0,16,0,30,0\n3,0,85,0,67,0,4,0,55,0,58,0\n28,0,65,0,87,0,57,0,54,0,52,0\n25,0,1,0,19,0,66,0,60,0,13,0\n73,0,61,0,82,0,32,0,5,0,62,0\n34,0,14,0,31,0,76,0,7,0,80,0\n38,0,15,0,26,0,46,0,23,0,44,0\n50,0,37,0,70,0,51,0,48,0,72,0\n12,0,74,0,29,0,64,0,4,0,85,0\n54,0,78,0,28,0,43,0,33,0,22,0\n41,0,53,0,47,0,58,0,30,0,20,0\n55,0,40,0,88,0,68,0,63,0,11,0\n27,0,87,0,84,0,49,0,18,0,81,0\n86,0,52,0,8,0,71,0,77,0,35,0\n67,0,45,0,69,0,9,0,21,0,39,0\n24,0,56,0,3,0,36,0,65,0,16,0\n79,0,57,0,83,0,75,0,42,0,59,0\n17,0,6,0,41,0,2,0,10,0,62,0\n15,0,68,0,19,0,26,0,53,0,58,0\n44,0,11,0,61,0,85,0,29,0,27,0\n60,0,86,0,40,0,52,0,74,0,50,0\n71,0,84,0,66,0,9,0,51,0,46,0\n38,0,78,0,14,0,69,0,49,0,48,0\n75,0,72,0,23,0,35,0,25,0,65,0\n2,0,57,0,20,0,88,0,16,0,82,0\n10,0,73,0,80,0,33,0,21,0,3,0\n36,0,22,0,12,0,5,0,7,0,81,0\n17,0,30,0,45,0,63,0,83,0,24,0\n76,0,54,0,42,0,6,0,8,0,55,0\n77,0,1,0,59,0,34,0,4,0,56,0\n43,0,79,0,32,0,39,0,64,0,37,0\n31,0,13,0,87,0,67,0,70,0,28,0\n18,0,14,0,23,0,47,0,68,0,85,0\n"
  },
  {
    "path": "schedules/88_2.csv",
    "content": "36,0,72,0,30,0,53,0,22,0,84,0\n68,0,25,0,69,0,16,0,37,0,24,0\n45,0,42,0,75,0,11,0,57,0,10,0\n48,0,79,0,23,0,26,0,9,0,13,0\n64,0,46,0,32,0,81,0,63,0,73,0\n83,0,1,0,6,0,18,0,87,0,86,0\n40,0,54,0,27,0,55,0,44,0,17,0\n4,0,29,0,38,0,34,0,59,0,66,0\n20,0,51,0,3,0,71,0,52,0,8,0\n43,0,80,0,85,0,41,0,35,0,49,0\n14,0,19,0,74,0,82,0,7,0,67,0\n31,0,2,0,70,0,33,0,76,0,78,0\n88,0,28,0,21,0,39,0,12,0,77,0\n56,0,65,0,15,0,61,0,5,0,47,0\n50,0,58,0,34,0,60,0,62,0,57,0\n16,0,4,0,72,0,81,0,6,0,54,0\n75,0,84,0,46,0,43,0,83,0,51,0\n74,0,24,0,32,0,42,0,3,0,38,0\n10,0,35,0,82,0,76,0,8,0,36,0\n78,0,52,0,25,0,30,0,49,0,28,0\n41,0,20,0,61,0,14,0,44,0,21,0\n62,0,29,0,23,0,5,0,85,0,88,0\n55,0,48,0,73,0,70,0,45,0,15,0\n53,0,66,0,77,0,50,0,79,0,87,0\n13,0,18,0,40,0,37,0,2,0,39,0\n71,0,11,0,33,0,26,0,58,0,12,0\n63,0,56,0,9,0,22,0,80,0,1,0\n7,0,59,0,60,0,27,0,86,0,69,0\n17,0,68,0,67,0,65,0,31,0,64,0\n47,0,57,1,48,1,19,0,32,1,25,1\n"
  },
  {
    "path": "schedules/88_3.csv",
    "content": "13,0,72,0,77,0,18,0,32,0,78,0\n3,0,6,0,68,0,50,0,11,0,70,0\n22,0,24,0,23,0,4,0,88,0,74,0\n34,0,2,0,1,0,82,0,83,0,49,0\n63,0,31,0,59,0,66,0,75,0,42,0\n62,0,5,0,37,0,87,0,86,0,8,0\n27,0,52,0,71,0,41,0,84,0,58,0\n9,0,30,0,43,0,10,0,61,0,29,0\n81,0,25,0,73,0,39,0,36,0,64,0\n7,0,26,0,54,0,16,0,55,0,46,0\n21,0,28,0,12,0,48,0,14,0,85,0\n33,0,45,0,51,0,57,0,65,0,69,0\n17,0,19,0,40,0,44,0,79,0,38,0\n80,0,47,0,56,0,76,0,35,0,53,0\n67,0,15,0,4,0,20,0,60,0,75,0\n31,0,71,0,13,0,30,0,3,0,5,0\n55,0,83,0,74,0,27,0,72,0,29,0\n84,0,26,0,78,0,81,0,88,0,12,0\n9,0,82,0,87,0,65,0,39,0,54,0\n25,0,66,0,50,0,32,0,19,0,33,0\n11,0,85,0,42,0,2,0,58,0,47,0\n53,0,20,0,8,0,69,0,59,0,24,0\n44,0,35,0,60,0,68,0,7,0,62,0\n70,0,67,0,48,0,1,0,16,0,51,0\n22,0,18,0,80,0,73,0,52,0,14,0\n77,0,56,0,34,0,37,0,17,0,46,0\n10,0,23,0,57,0,21,0,15,0,64,0\n6,0,61,0,76,0,38,0,86,0,63,0\n36,0,43,0,49,0,28,0,45,0,40,0\n79,0,50,0,2,0,41,0,30,0,74,0\n48,0,4,0,68,0,72,0,26,0,9,0\n78,0,69,0,29,0,11,0,1,0,22,0\n55,0,70,0,81,0,44,0,33,0,31,0\n59,0,10,0,14,0,25,0,27,0,77,0\n8,0,16,0,83,0,60,0,6,0,23,0\n52,0,88,0,82,0,3,0,63,0,28,0\n51,0,39,0,24,0,49,0,56,0,62,0\n35,0,40,0,67,0,42,0,34,0,84,0\n86,0,41,0,7,0,53,0,57,0,19,0\n46,0,66,0,20,0,12,0,64,0,43,0\n76,0,79,0,75,0,73,0,45,0,13,0\n17,0,87,0,32,0,71,0,85,0,80,0\n47,0,65,0,37,0,18,0,21,0,61,0\n5,0,36,0,58,0,38,0,15,0,54,0\n"
  },
  {
    "path": "schedules/88_4.csv",
    "content": "30,0,21,0,32,0,17,0,24,0,65,0\n9,0,8,0,73,0,12,0,33,0,58,0\n6,0,38,0,66,0,69,0,76,0,72,0\n40,0,29,0,45,0,59,0,71,0,51,0\n42,0,63,0,43,0,67,0,64,0,61,0\n56,0,16,0,54,0,78,0,46,0,15,0\n53,0,20,0,44,0,82,0,48,0,47,0\n11,0,22,0,14,0,79,0,49,0,1,0\n35,0,85,0,23,0,28,0,60,0,2,0\n34,0,41,0,74,0,39,0,81,0,31,0\n62,0,55,0,80,0,68,0,13,0,5,0\n70,0,10,0,84,0,37,0,88,0,26,0\n27,0,86,0,25,0,75,0,7,0,77,0\n4,0,87,0,19,0,3,0,83,0,52,0\n36,0,18,0,44,0,50,0,57,0,42,0\n22,0,82,0,21,0,38,0,8,0,46,0\n20,0,23,0,76,0,79,0,71,0,65,0\n31,0,2,0,51,0,55,0,33,0,64,0\n28,0,49,0,47,0,24,0,40,0,15,0\n81,0,60,0,7,0,70,0,73,0,29,0\n83,0,86,0,53,0,61,0,37,0,72,0\n59,0,18,0,14,0,62,0,66,0,34,0\n52,0,10,0,27,0,56,0,80,0,32,0\n12,0,3,0,67,0,17,0,88,0,11,0\n69,0,75,0,50,0,74,0,58,0,5,0\n77,0,54,0,39,0,57,0,63,0,4,0\n87,0,30,0,36,0,13,0,85,0,6,0\n19,0,43,0,26,0,35,0,16,0,68,0\n25,0,78,0,84,0,9,0,45,0,41,0\n1,0,10,0,72,0,48,0,42,0,23,0\n49,1,17,0,38,0,53,1,64,0,18,0\n55,0,65,0,40,0,50,0,11,0,66,0\n34,0,75,0,24,0,56,0,83,0,73,0\n69,0,37,0,3,0,28,0,8,0,36,0\n5,0,51,0,4,0,81,0,16,0,82,0\n67,0,52,0,26,0,47,0,79,0,41,0\n60,0,57,0,22,0,31,0,27,0,6,0\n46,0,33,0,86,0,76,0,43,0,45,0\n19,0,48,0,30,0,71,0,61,0,88,0\n15,0,70,0,62,0,25,0,85,0,39,0\n54,0,2,0,80,0,20,0,87,0,29,0\n13,0,59,0,1,0,21,0,9,0,77,0\n68,0,12,0,14,0,7,0,74,0,78,0\n58,0,84,0,35,0,63,0,44,0,32,0\n33,0,28,0,83,0,50,0,38,0,67,0\n45,0,72,0,82,0,27,0,65,0,49,0\n88,0,85,0,8,0,47,0,55,0,34,0\n73,0,64,0,23,0,80,0,39,0,36,0\n61,0,79,0,21,0,6,0,3,0,54,0\n57,0,9,0,15,0,52,0,53,0,7,0\n4,0,69,0,31,0,40,0,35,0,62,0\n13,0,51,0,74,0,18,0,26,0,76,0\n41,0,68,0,77,0,70,0,42,0,46,0\n56,0,71,0,5,0,44,0,60,0,14,0\n78,0,17,0,66,0,10,0,86,0,20,0\n24,0,16,0,63,0,22,0,59,0,48,0\n37,0,11,0,29,0,58,0,25,0,30,0\n12,0,2,0,81,0,19,0,1,0,84,0\n43,0,75,0,49,0,87,0,32,0,53,0\n"
  },
  {
    "path": "schedules/88_5.csv",
    "content": "18,0,75,0,17,0,59,0,34,0,49,0\n40,0,58,0,73,0,52,0,21,0,7,0\n54,0,16,0,38,0,26,0,77,0,80,0\n19,0,81,0,74,0,1,0,86,0,68,0\n84,0,43,0,37,0,47,0,2,0,11,0\n10,0,65,0,70,0,57,0,12,0,32,0\n53,0,78,0,69,0,30,0,9,0,42,0\n6,0,3,0,22,0,76,0,62,0,4,0\n79,0,25,0,13,0,27,0,31,0,14,0\n63,0,66,0,33,0,60,0,29,0,56,0\n67,0,23,0,28,0,82,0,85,0,51,0\n20,0,15,0,87,0,83,0,24,0,5,0\n45,0,61,0,39,0,71,0,41,0,36,0\n88,0,64,0,44,0,8,0,72,0,48,0\n55,0,50,0,65,0,46,0,35,0,17,0\n86,0,16,0,52,0,78,0,10,0,75,0\n4,0,56,0,25,0,11,0,77,0,73,0\n27,0,7,0,26,0,84,0,53,0,74,0\n5,0,58,0,28,0,29,0,19,0,43,0\n40,0,2,0,67,0,22,0,71,0,38,0\n24,0,39,0,18,0,69,0,81,0,80,0\n85,0,60,0,14,0,37,0,45,0,55,0\n42,0,41,0,57,0,20,0,59,0,6,0\n8,0,9,0,31,0,21,0,70,0,33,0\n36,0,66,0,3,0,12,0,79,0,50,0\n83,0,82,0,49,0,88,0,13,0,61,0\n48,0,30,0,62,0,68,0,87,0,46,0\n1,0,76,0,63,0,35,0,15,0,72,0\n34,0,47,0,32,0,44,0,51,0,54,0\n23,0,5,0,69,0,64,0,7,0,56,0\n19,1,75,0,4,0,9,1,39,0,55,0\n17,1,8,0,52,0,26,1,67,0,24,0\n3,0,11,0,53,0,20,0,86,0,65,0\n41,0,62,0,27,0,28,0,78,0,83,0\n63,0,73,0,42,0,36,0,22,0,48,0\n6,0,44,0,25,0,50,0,37,0,18,0\n16,0,35,0,32,0,61,0,87,0,58,0\n12,0,21,0,15,0,23,0,80,0,14,0\n77,0,79,0,72,0,43,0,40,0,82,0\n60,0,68,0,54,0,10,0,84,0,31,0\n51,0,2,0,59,0,70,0,64,0,29,0\n1,0,33,0,71,0,46,0,88,0,85,0\n38,0,66,0,49,0,81,0,30,0,47,0\n45,0,57,0,13,0,76,0,34,0,74,0\n44,0,83,0,14,0,63,0,11,0,17,0\n16,0,55,0,82,0,62,0,7,0,18,0\n50,0,31,0,28,0,26,0,4,0,32,0\n80,0,59,0,61,0,22,0,9,0,86,0\n48,0,2,0,56,0,1,0,10,0,27,0\n64,0,36,0,21,0,67,0,65,0,30,0\n19,0,54,0,85,0,87,0,76,0,79,0\n46,0,43,0,24,0,42,0,60,0,70,0\n37,0,72,0,49,0,69,0,51,0,73,0\n84,0,34,0,12,0,41,0,38,0,58,0\n47,0,88,0,39,0,40,0,20,0,23,0\n57,0,68,0,29,0,3,0,8,0,71,0\n5,0,52,0,6,0,53,0,13,0,66,0\n77,0,45,0,78,0,15,0,33,0,81,0\n75,0,35,0,64,0,25,0,74,0,24,0\n27,0,11,0,30,0,80,0,32,0,55,0\n56,0,86,0,84,0,14,0,62,0,70,0\n4,0,48,0,34,0,40,0,65,0,37,0\n29,0,17,0,1,0,47,0,16,0,79,0\n9,0,73,0,57,0,28,0,66,0,44,0\n26,0,41,0,5,0,21,0,85,0,72,0\n42,0,50,0,33,0,83,0,75,0,67,0\n60,0,71,0,77,0,19,0,35,0,53,0\n18,0,22,0,46,0,78,0,23,0,31,0\n61,0,69,0,15,0,38,0,52,0,68,0\n63,0,2,0,7,0,54,0,13,0,39,0\n45,0,58,0,10,0,59,0,82,0,3,0\n74,0,87,0,12,0,49,0,8,0,6,0\n76,0,20,0,81,0,51,0,43,0,25,0\n88,0,19,0,17,0,36,0,9,0,26,0\n"
  },
  {
    "path": "schedules/88_6.csv",
    "content": "55,0,10,0,31,0,34,0,19,0,88,0\n14,0,82,0,54,0,57,0,61,0,63,0\n15,0,7,0,9,0,29,0,26,0,8,0\n44,0,2,0,1,0,46,0,45,0,84,0\n79,0,86,0,33,0,20,0,81,0,51,0\n21,0,60,0,36,0,47,0,5,0,16,0\n22,0,12,0,11,0,28,0,6,0,52,0\n49,0,71,0,50,0,48,0,77,0,72,0\n27,0,13,0,37,0,30,0,23,0,66,0\n70,0,17,0,43,0,40,0,25,0,59,0\n62,0,24,0,76,0,42,0,67,0,87,0\n4,0,73,0,78,0,64,0,3,0,83,0\n75,0,65,0,68,0,35,0,38,0,41,0\n53,0,56,0,80,0,39,0,18,0,32,0\n69,0,85,0,33,0,58,0,74,0,54,0\n60,0,88,0,51,0,45,0,71,0,28,0\n16,0,63,0,23,0,34,0,72,0,44,0\n84,0,52,0,19,0,82,0,43,0,50,0\n78,0,30,0,77,0,7,0,21,0,86,0\n6,0,75,0,2,0,20,0,15,0,40,0\n68,0,32,0,8,0,66,0,76,0,57,0\n31,0,18,0,9,0,64,0,42,0,79,0\n24,0,56,0,65,0,22,0,1,0,26,0\n41,0,59,0,67,0,36,0,49,0,80,0\n39,0,4,0,5,0,61,0,10,0,25,0\n87,0,83,0,74,0,53,0,17,0,46,0\n70,0,29,0,38,0,69,0,3,0,13,0\n58,0,14,0,37,0,73,0,47,0,12,0\n62,0,48,0,55,0,35,0,11,0,81,0\n27,0,50,0,32,0,85,0,79,0,28,0\n45,0,68,0,19,0,63,0,9,0,6,0\n57,0,26,0,59,0,78,0,88,0,39,0\n65,0,30,0,74,0,84,0,36,0,10,0\n44,0,18,0,24,0,29,0,61,0,60,0\n42,0,82,0,37,0,77,0,20,0,4,0\n81,0,12,0,53,0,2,0,69,0,8,0\n64,0,80,0,40,0,87,0,21,0,52,0\n11,0,27,0,47,0,15,0,34,0,70,0\n5,0,72,0,13,0,33,0,62,0,83,0\n51,0,35,0,43,0,22,0,49,0,58,0\n7,0,14,0,85,0,23,0,67,0,75,0\n86,0,25,0,54,0,1,0,3,0,55,0\n46,0,16,0,48,0,73,0,41,0,66,0\n31,0,56,0,76,0,71,0,38,0,17,0\n53,0,6,0,50,0,37,0,70,0,26,0\n78,0,9,0,34,0,20,0,60,0,52,0\n84,0,13,0,21,0,61,0,68,0,42,0\n69,0,14,0,5,0,87,0,22,0,79,0\n11,0,39,0,45,0,3,0,72,0,24,0\n36,0,77,0,66,0,44,0,83,0,28,0\n8,0,75,0,25,0,46,0,80,0,27,0\n29,0,65,0,23,0,55,0,59,0,32,0\n15,0,17,0,54,0,10,0,81,0,67,0\n47,0,7,0,2,0,48,0,33,0,43,0\n35,0,88,0,16,0,56,0,85,0,82,0\n57,0,18,0,38,0,74,0,19,0,40,0\n1,0,63,0,12,0,31,0,4,0,51,0\n71,0,64,0,41,0,30,0,58,0,62,0\n86,0,73,0,6,0,49,0,76,0,29,0\n52,0,67,0,69,0,39,0,65,0,66,0\n3,0,22,0,23,0,9,0,17,0,33,0\n11,0,68,0,77,0,14,0,10,0,59,0\n87,0,20,0,84,0,18,0,70,0,85,0\n40,0,1,0,36,0,13,0,78,0,81,0\n60,0,41,0,63,0,74,0,8,0,56,0\n58,0,48,0,88,0,21,0,53,0,38,0\n43,0,83,0,34,0,45,0,80,0,86,0\n72,0,64,0,76,0,51,0,27,0,19,0\n32,0,82,0,46,0,12,0,5,0,30,0\n49,0,7,0,61,0,62,0,31,0,16,0\n73,0,79,0,71,0,24,0,55,0,15,0\n28,0,25,0,35,0,2,0,37,0,57,0\n26,0,47,0,75,0,54,0,44,0,4,0\n42,0,34,0,8,0,50,0,1,0,14,0\n67,0,20,0,63,0,83,0,21,0,27,0\n81,0,39,0,74,0,6,0,82,0,64,0\n85,0,40,0,5,0,65,0,53,0,31,0\n46,0,62,0,15,0,23,0,77,0,69,0\n79,0,56,0,3,0,48,0,36,0,37,0\n88,0,49,0,66,0,25,0,84,0,11,0\n59,0,22,0,4,0,16,0,76,0,18,0\n35,0,26,0,19,0,86,0,42,0,60,0\n43,0,10,0,57,0,71,0,12,0,13,0\n61,0,28,0,58,0,70,0,78,0,75,0\n32,0,38,0,51,0,7,0,54,0,24,0\n55,0,44,0,80,0,68,0,33,0,50,0\n52,0,29,0,17,0,45,0,41,0,47,0\n30,0,9,0,72,0,73,0,87,0,2,0\n"
  },
  {
    "path": "schedules/88_7.csv",
    "content": "52,0,76,0,16,0,38,0,34,0,24,0\n59,0,45,0,2,0,18,0,15,0,71,0\n75,0,65,0,72,0,23,0,60,0,58,0\n30,0,79,0,50,0,12,0,55,0,66,0\n21,0,35,0,77,0,64,0,39,0,57,0\n33,0,51,0,27,0,68,0,69,0,5,0\n32,0,10,0,84,0,62,0,14,0,46,0\n7,0,17,0,37,0,40,0,3,0,6,0\n36,0,22,0,43,0,9,0,61,0,11,0\n53,0,44,0,25,0,28,0,67,0,20,0\n82,0,83,0,4,0,74,0,47,0,26,0\n73,0,29,0,1,0,86,0,70,0,19,0\n80,0,54,0,81,0,42,0,63,0,78,0\n41,0,88,0,31,0,56,0,85,0,8,0\n49,0,13,0,66,0,48,0,87,0,64,0\n35,0,3,0,10,0,68,0,52,0,18,0\n16,0,43,0,39,0,51,0,25,0,55,0\n2,0,47,0,57,0,50,0,27,0,40,0\n59,0,46,0,33,0,11,0,67,0,29,0\n4,0,71,0,78,0,37,0,73,0,23,0\n83,0,53,0,62,0,88,0,38,0,7,0\n84,0,58,0,56,0,42,0,36,0,70,0\n63,0,14,0,79,0,49,0,26,0,65,0\n82,0,80,0,30,0,28,0,61,0,32,0\n13,0,60,0,76,0,6,0,20,0,77,0\n86,0,21,0,24,0,44,0,85,0,81,0\n45,0,5,0,48,0,54,0,41,0,12,0\n15,0,74,0,8,0,22,0,72,0,87,0\n9,0,19,0,34,0,75,0,69,0,17,0\n1,0,16,0,71,0,31,0,62,0,67,0\n59,1,64,0,3,0,78,1,79,0,61,0\n56,0,63,0,47,0,43,0,7,0,46,0\n39,0,40,0,30,0,84,0,13,0,11,0\n18,0,38,0,5,0,6,0,36,0,73,0\n23,0,12,0,49,0,22,0,81,0,57,0\n51,0,74,0,85,0,45,0,10,0,75,0\n87,0,86,0,76,0,14,0,42,0,83,0\n25,0,54,0,52,0,27,0,60,0,37,0\n33,0,31,0,32,0,26,0,72,0,9,0\n82,0,69,0,55,0,29,0,44,0,77,0\n68,0,2,0,48,0,88,0,21,0,4,0\n19,0,41,0,66,0,65,0,20,0,35,0\n50,0,80,0,70,0,53,0,8,0,34,0\n58,0,24,0,15,0,1,0,17,0,28,0\n75,0,62,0,22,0,52,0,59,0,63,0\n64,0,7,0,84,0,60,0,5,0,74,0\n23,0,30,0,46,0,54,0,18,0,85,0\n67,0,42,0,68,0,49,0,82,0,6,0\n71,0,81,0,26,0,25,0,29,0,13,0\n80,0,87,0,37,0,16,0,21,0,79,0\n24,0,66,0,45,0,72,0,69,0,70,0\n28,0,57,0,14,0,9,0,4,0,41,0\n38,0,77,0,58,0,50,0,19,0,32,0\n1,0,83,0,40,0,20,0,10,0,56,0\n53,0,17,0,35,0,36,0,33,0,55,0\n43,0,44,0,78,0,88,0,27,0,34,0\n12,0,2,0,51,0,65,0,3,0,86,0\n76,0,11,0,15,0,31,0,73,0,48,0\n47,0,61,0,29,0,8,0,39,0,6,0\n32,0,68,0,81,0,41,0,59,0,37,0\n50,0,42,0,45,0,62,0,13,0,4,0\n71,0,52,0,66,0,80,0,84,0,85,0\n21,0,43,0,74,0,53,0,1,0,49,0\n78,0,87,0,26,0,60,0,17,0,57,0\n86,0,18,0,40,0,31,0,79,0,22,0\n16,0,12,0,11,0,69,0,56,0,14,0\n73,0,10,0,7,0,24,0,77,0,33,0\n65,0,70,0,9,0,82,0,64,0,54,0\n61,0,51,0,48,0,23,0,44,0,35,0\n72,0,28,0,55,0,76,0,19,0,46,0\n8,0,75,0,20,0,38,0,30,0,27,0\n3,0,25,0,88,0,36,0,47,0,15,0\n5,0,67,0,63,0,2,0,39,0,83,0\n34,0,4,0,6,0,58,0,87,0,33,0\n37,0,49,0,62,0,9,0,56,0,24,0\n14,0,66,0,82,0,53,0,78,0,22,0\n60,0,68,0,12,0,1,0,46,0,80,0\n55,0,27,0,21,0,59,0,31,0,23,0\n36,0,65,0,16,0,32,0,40,0,74,0\n84,0,29,0,54,0,3,0,50,0,83,0\n69,0,85,0,20,0,64,0,15,0,63,0\n67,0,81,0,35,0,76,0,43,0,75,0\n48,0,34,0,42,0,28,0,47,0,18,0\n11,0,44,0,79,0,7,0,19,0,45,0\n52,0,88,0,26,0,39,0,73,0,58,0\n17,0,72,0,38,0,61,0,25,0,2,0\n77,0,70,0,41,0,51,0,30,0,71,0\n57,0,8,0,10,0,86,0,5,0,13,0\n53,0,9,0,6,0,15,0,27,0,84,0\n69,0,4,0,59,0,76,0,36,0,80,0\n85,0,65,0,47,0,11,0,1,0,78,0\n22,0,37,0,46,0,26,0,42,0,35,0\n28,0,60,0,73,0,45,0,81,0,3,0\n32,0,7,0,29,0,2,0,49,0,75,0\n57,0,83,0,70,0,16,0,33,0,44,0\n50,0,72,0,88,0,18,0,63,0,51,0\n23,0,38,0,41,0,87,0,82,0,10,0\n21,0,13,0,67,0,12,0,17,0,52,0\n34,0,40,0,61,0,77,0,66,0,5,0\n79,0,24,0,54,0,20,0,71,0,43,0\n74,0,31,0,25,0,19,0,30,0,14,0\n8,0,55,0,64,0,68,0,62,0,58,0\n56,0,39,0,78,0,86,0,48,0,59,0\n"
  },
  {
    "path": "schedules/88_8.csv",
    "content": "50,0,38,0,81,0,82,0,28,0,45,0\n39,0,48,0,24,0,42,0,78,0,72,0\n2,0,87,0,71,0,37,0,25,0,12,0\n88,0,75,0,64,0,47,0,1,0,3,0\n74,0,15,0,79,0,55,0,84,0,16,0\n63,0,9,0,51,0,19,0,23,0,4,0\n5,0,40,0,77,0,11,0,57,0,13,0\n52,0,14,0,34,0,35,0,20,0,61,0\n60,0,18,0,27,0,17,0,73,0,54,0\n86,0,56,0,6,0,29,0,69,0,33,0\n62,0,26,0,30,0,49,0,41,0,83,0\n46,0,7,0,44,0,80,0,66,0,68,0\n65,0,32,0,43,0,22,0,31,0,85,0\n10,0,53,0,76,0,21,0,8,0,67,0\n36,0,58,0,1,0,59,0,70,0,84,0\n28,0,64,0,14,0,73,0,77,0,72,0\n61,0,33,0,16,0,12,0,24,0,3,0\n56,0,34,0,4,0,48,0,49,0,38,0\n18,0,55,0,6,0,46,0,75,0,87,0\n63,0,83,0,69,0,47,0,57,0,31,0\n85,0,23,0,76,0,11,0,42,0,26,0\n65,0,44,0,88,0,13,0,52,0,71,0\n78,0,53,0,59,0,2,0,81,0,51,0\n86,0,5,0,32,0,30,0,50,0,8,0\n29,0,45,0,68,0,54,0,20,0,40,0\n70,0,80,0,43,0,37,0,62,0,74,0\n15,0,58,0,25,0,10,0,17,0,9,0\n22,0,27,0,35,0,82,0,67,0,7,0\n39,0,66,0,36,0,60,0,79,0,21,0\n19,0,59,0,3,0,41,0,18,0,28,0\n5,1,33,0,47,0,38,1,52,0,51,0\n63,1,50,0,31,0,12,1,72,0,29,0\n69,0,70,0,42,0,40,0,65,0,14,0\n1,0,54,0,11,0,44,0,30,0,24,0\n61,0,10,0,77,0,46,0,74,0,88,0\n9,0,49,0,35,0,84,0,37,0,21,0\n39,0,58,0,67,0,34,0,64,0,13,0\n73,0,4,0,79,0,62,0,7,0,76,0\n53,0,75,0,85,0,41,0,68,0,71,0\n23,0,81,0,87,0,27,0,66,0,32,0\n57,0,48,0,55,0,8,0,2,0,36,0\n45,0,17,0,78,0,16,0,86,0,22,0\n15,0,83,0,20,0,6,0,43,0,82,0\n26,0,19,0,60,0,25,0,80,0,56,0\n11,0,14,0,33,0,50,0,39,0,18,0\n10,0,5,0,42,0,35,0,64,0,79,0\n72,0,68,0,69,0,3,0,76,0,32,0\n52,0,27,0,37,0,55,0,31,0,53,0\n58,0,12,0,54,0,62,0,75,0,65,0\n85,0,44,0,84,0,28,0,83,0,4,0\n59,0,57,0,20,0,88,0,86,0,60,0\n82,0,77,0,29,0,71,0,51,0,36,0\n66,0,6,0,22,0,30,0,48,0,70,0\n56,0,73,0,21,0,23,0,78,0,74,0\n19,0,2,0,49,0,15,0,1,0,46,0\n26,0,24,0,38,0,67,0,43,0,87,0\n9,0,41,0,16,0,40,0,34,0,47,0\n8,0,81,0,13,0,80,0,17,0,63,0\n45,0,25,0,36,0,61,0,7,0,64,0\n37,0,32,0,51,0,48,0,44,0,58,0\n82,0,33,0,31,0,21,0,59,0,42,0\n29,0,65,0,84,0,30,0,73,0,53,0\n2,0,86,0,24,0,14,0,75,0,10,0\n28,0,67,0,74,0,6,0,9,0,68,0\n71,0,39,0,76,0,35,0,81,0,54,0\n11,0,60,0,62,0,38,0,22,0,69,0\n63,0,72,0,16,0,87,0,70,0,52,0\n25,0,83,0,34,0,5,0,88,0,23,0\n85,0,8,0,40,0,79,0,56,0,46,0\n57,0,1,0,41,0,80,0,27,0,4,0\n77,0,12,0,7,0,26,0,18,0,15,0\n55,0,45,0,47,0,19,0,43,0,13,0\n20,0,3,0,66,0,49,0,78,0,50,0\n17,0,21,0,6,0,61,0,44,0,62,0\n9,0,48,0,60,0,87,0,65,0,83,0\n84,0,33,0,22,0,81,0,68,0,64,0\n69,0,52,0,30,0,39,0,85,0,10,0\n8,0,70,0,54,0,28,0,15,0,31,0\n4,0,59,0,29,0,26,0,5,0,55,0\n7,0,40,0,74,0,2,0,58,0,50,0\n56,0,20,0,13,0,53,0,1,0,12,0\n75,0,42,0,16,0,77,0,38,0,80,0\n61,0,71,0,23,0,72,0,57,0,49,0\n19,0,36,0,17,0,76,0,24,0,34,0\n46,0,35,0,41,0,45,0,32,0,73,0\n18,0,82,0,47,0,86,0,66,0,25,0\n43,0,79,0,51,0,14,0,27,0,3,0\n11,0,67,0,88,0,78,0,63,0,37,0\n13,0,75,0,30,0,33,0,74,0,4,0\n23,0,64,0,50,0,69,0,59,0,54,0\n5,0,72,0,80,0,20,0,9,0,85,0\n73,0,22,0,12,0,44,0,8,0,19,0\n52,0,28,0,24,0,7,0,32,0,29,0\n66,0,15,0,65,0,56,0,51,0,35,0\n17,0,70,0,49,0,39,0,77,0,55,0\n14,0,62,0,46,0,57,0,67,0,25,0\n78,0,1,0,43,0,40,0,76,0,60,0\n37,0,42,0,47,0,81,0,36,0,6,0\n21,0,71,0,63,0,58,0,26,0,27,0\n18,0,68,0,31,0,2,0,16,0,88,0\n38,0,61,0,83,0,86,0,53,0,79,0\n87,0,3,0,34,0,11,0,10,0,45,0\n84,0,48,0,12,0,41,0,82,0,17,0\n49,0,67,0,60,0,44,0,5,0,75,0\n24,0,37,0,73,0,85,0,57,0,50,0\n25,0,13,0,27,0,29,0,70,0,76,0\n18,0,74,0,20,0,42,0,63,0,22,0\n80,0,88,0,36,0,28,0,35,0,69,0\n81,0,26,0,79,0,1,0,34,0,65,0\n38,0,64,0,19,0,31,0,40,0,66,0\n3,0,77,0,2,0,21,0,83,0,52,0\n68,0,8,0,87,0,14,0,58,0,4,0\n46,0,43,0,30,0,71,0,59,0,16,0\n7,0,51,0,41,0,55,0,11,0,86,0\n72,0,10,0,84,0,47,0,56,0,62,0\n82,0,78,0,32,0,9,0,54,0,61,0\n23,0,53,0,15,0,48,0,33,0,45,0\n39,0,5,0,12,0,6,0,38,0,63,0\n"
  },
  {
    "path": "schedules/88_9.csv",
    "content": "78,0,18,0,51,0,24,0,35,0,34,0\n55,0,53,0,39,0,44,0,60,0,50,0\n22,0,12,0,21,0,10,0,6,0,13,0\n42,0,75,0,40,0,8,0,62,0,11,0\n3,0,32,0,29,0,65,0,67,0,45,0\n43,0,68,0,31,0,59,0,74,0,48,0\n17,0,82,0,80,0,86,0,79,0,87,0\n30,0,61,0,20,0,38,0,36,0,77,0\n4,0,7,0,28,0,69,0,58,0,64,0\n52,0,15,0,23,0,25,0,33,0,72,0\n5,0,37,0,57,0,84,0,2,0,19,0\n85,0,71,0,83,0,27,0,16,0,14,0\n49,0,9,0,73,0,66,0,41,0,88,0\n70,0,56,0,47,0,1,0,26,0,46,0\n63,0,54,0,51,0,81,0,76,0,43,0\n87,0,24,0,74,0,69,0,38,0,55,0\n35,0,25,0,45,0,79,0,62,0,31,0\n59,0,60,0,12,0,29,0,58,0,61,0\n8,0,23,0,34,0,85,0,28,0,67,0\n2,0,72,0,36,0,39,0,65,0,13,0\n49,0,86,0,11,0,47,0,37,0,83,0\n81,0,88,0,1,0,18,0,22,0,71,0\n44,0,27,0,10,0,3,0,64,0,40,0\n76,0,48,0,30,0,80,0,4,0,42,0\n75,0,50,0,15,0,46,0,63,0,84,0\n6,0,57,0,32,0,9,0,70,0,7,0\n73,0,14,0,33,0,26,0,78,0,19,0\n68,0,5,0,17,0,20,0,66,0,54,0\n53,0,56,0,77,0,52,0,16,0,82,0\n21,0,23,0,81,0,41,0,35,0,69,0\n40,0,88,0,24,0,4,0,86,0,85,0\n83,0,29,0,62,0,15,0,22,0,48,0\n49,0,34,0,1,0,44,0,36,0,79,0\n18,0,9,0,67,0,12,0,31,0,26,0\n14,0,10,0,30,0,59,0,2,0,51,0\n37,0,64,0,16,0,76,0,73,0,68,0\n8,0,43,0,50,0,27,0,58,0,52,0\n3,0,75,0,17,0,33,0,38,0,60,0\n80,0,55,0,72,0,57,0,11,0,21,0\n65,0,46,0,41,0,74,0,6,0,54,0\n39,0,70,0,82,0,78,0,66,0,42,0\n28,0,87,0,84,0,20,0,56,0,71,0\n19,0,63,0,25,0,61,0,53,0,32,0\n47,0,77,0,7,0,13,0,45,0,5,0\n16,0,22,0,34,0,75,0,9,0,2,0\n36,0,31,0,80,0,60,0,24,0,27,0\n4,0,38,0,81,0,68,0,11,0,67,0\n50,0,18,0,48,0,3,0,6,0,14,0\n28,0,21,0,1,0,30,0,39,0,54,0\n12,0,37,0,65,0,87,0,42,0,63,0\n77,0,59,0,35,0,73,0,44,0,8,0\n20,0,88,0,29,0,82,0,47,0,72,0\n26,0,71,0,49,0,45,0,23,0,51,0\n79,0,19,0,7,0,40,0,43,0,46,0\n33,0,66,0,83,0,69,0,53,0,57,0\n5,0,85,0,76,0,10,0,41,0,52,0\n78,0,15,0,56,0,64,0,61,0,55,0\n13,0,58,0,32,0,17,0,62,0,74,0\n25,0,70,0,22,0,86,0,84,0,65,0\n87,0,36,0,54,0,11,0,50,0,45,0\n23,0,68,0,7,0,18,0,30,0,60,0\n6,0,31,0,47,0,73,0,75,0,69,0\n38,0,82,0,14,0,43,0,28,0,12,0\n83,0,55,0,46,0,51,0,9,0,5,0\n74,0,44,0,2,0,81,0,29,0,42,0\n86,0,20,0,13,0,57,0,27,0,35,0\n10,0,26,0,64,0,48,0,63,0,72,0\n79,0,41,0,61,0,16,0,24,0,70,0\n76,0,21,0,25,0,58,0,78,0,88,0\n19,0,77,0,3,0,34,0,39,0,71,0\n40,0,84,0,52,0,80,0,67,0,66,0\n8,0,1,0,15,0,17,0,53,0,37,0\n4,0,56,0,33,0,49,0,59,0,32,0\n62,0,9,0,87,0,85,0,30,0,81,0\n45,0,75,0,44,0,41,0,20,0,48,0\n28,0,63,0,16,0,60,0,31,0,5,0\n3,0,26,0,74,0,36,0,22,0,82,0\n50,0,65,0,51,0,79,0,57,0,68,0\n19,0,52,0,71,0,70,0,55,0,13,0\n42,0,27,0,56,0,73,0,38,0,23,0\n66,0,4,0,47,0,21,0,8,0,2,0\n69,0,78,0,86,0,77,0,1,0,10,0\n67,0,58,0,49,0,15,0,24,0,39,0\n11,0,29,0,35,0,33,0,34,0,64,0\n18,0,85,0,37,0,43,0,72,0,32,0\n59,0,83,0,40,0,6,0,17,0,25,0\n80,0,61,0,76,0,46,0,14,0,62,0\n12,0,84,0,54,0,7,0,53,0,88,0\n26,0,81,0,16,0,20,0,3,0,8,0\n68,0,41,0,2,0,77,0,58,0,55,0\n51,0,31,0,87,0,29,0,21,0,70,0\n52,0,57,0,78,0,44,0,30,0,11,0\n36,0,64,0,42,0,85,0,19,0,17,0\n74,0,15,0,76,0,28,0,40,0,86,0\n75,0,65,0,53,0,71,0,43,0,35,0\n69,0,27,0,25,0,18,0,46,0,49,0\n61,0,1,0,6,0,4,0,84,0,82,0\n79,0,10,0,67,0,47,0,33,0,54,0\n34,0,72,0,62,0,59,0,66,0,7,0\n39,0,88,0,63,0,83,0,23,0,80,0\n22,0,45,0,60,0,56,0,37,0,14,0\n5,0,50,0,24,0,12,0,32,0,73,0\n9,0,38,0,78,0,48,0,13,0,53,0\n17,0,35,0,61,0,28,0,52,0,2,0\n55,0,47,0,42,0,84,0,16,0,43,0\n6,0,77,0,64,0,31,0,49,0,81,0\n30,0,40,0,63,0,58,0,34,0,70,0\n67,0,27,0,76,0,87,0,22,0,7,0\n75,0,24,0,66,0,37,0,25,0,29,0\n9,0,69,0,44,0,54,0,80,0,56,0\n13,0,79,0,60,0,15,0,73,0,4,0\n62,0,71,0,41,0,82,0,50,0,33,0\n5,0,11,0,23,0,14,0,65,0,1,0\n32,0,8,0,36,0,48,0,51,0,88,0\n3,0,46,0,86,0,12,0,68,0,72,0\n26,0,59,0,38,0,85,0,57,0,39,0\n74,0,10,0,45,0,83,0,19,0,18,0\n20,0,79,0,42,0,21,0,9,0,52,0\n60,0,2,0,54,0,40,0,49,0,78,0\n37,0,27,0,33,0,28,0,77,0,65,0\n43,0,70,0,62,0,36,0,23,0,4,0\n5,0,69,0,88,0,30,0,15,0,3,0\n32,0,41,0,63,0,22,0,38,0,47,0\n13,0,84,0,68,0,26,0,83,0,24,0\n58,0,66,0,31,0,14,0,44,0,87,0\n19,0,67,0,72,0,35,0,50,0,1,0\n73,0,86,0,7,0,21,0,61,0,71,0\n12,0,51,0,85,0,56,0,74,0,75,0\n57,0,82,0,34,0,10,0,81,0,25,0\n59,0,64,0,53,0,20,0,18,0,80,0\n8,0,55,0,6,0,76,0,45,0,29,0\n48,0,46,0,16,0,11,0,39,0,17,0\n"
  },
  {
    "path": "schedules/89_1.csv",
    "content": "82,0,88,0,40,0,64,0,85,0,33,0\n78,0,77,0,36,0,84,0,42,0,72,0\n60,0,49,0,7,0,44,0,53,0,1,0\n2,0,26,0,69,0,46,0,75,0,11,0\n31,0,55,0,83,0,4,0,81,0,48,0\n8,0,52,0,74,0,35,0,61,0,39,0\n79,0,12,0,47,0,73,0,30,0,9,0\n45,0,5,0,70,0,50,0,66,0,37,0\n86,0,15,0,67,0,63,0,58,0,56,0\n24,0,6,0,21,0,20,0,13,0,28,0\n65,0,87,0,34,0,18,0,19,0,3,0\n22,0,32,0,17,0,62,0,51,0,23,0\n29,0,14,0,68,0,54,0,10,0,38,0\n89,0,27,0,25,0,43,0,16,0,41,0\n76,0,59,0,57,0,71,0,80,0,75,1\n"
  },
  {
    "path": "schedules/89_10.csv",
    "content": "52,0,21,0,72,0,2,0,77,0,56,0\n74,0,17,0,71,0,28,0,24,0,14,0\n88,0,73,0,57,0,23,0,82,0,1,0\n80,0,53,0,79,0,67,0,49,0,87,0\n25,0,12,0,66,0,37,0,69,0,33,0\n83,0,81,0,75,0,31,0,51,0,27,0\n85,0,58,0,38,0,41,0,20,0,36,0\n54,0,43,0,62,0,60,0,48,0,4,0\n63,0,15,0,32,0,9,0,13,0,11,0\n42,0,5,0,45,0,16,0,10,0,34,0\n18,0,65,0,29,0,68,0,84,0,6,0\n47,0,26,0,44,0,50,0,64,0,61,0\n40,0,39,0,7,0,86,0,76,0,19,0\n46,0,22,0,8,0,55,0,35,0,89,0\n3,0,30,0,36,0,78,0,59,0,70,0\n62,0,51,0,9,0,71,0,12,0,58,0\n10,0,28,0,1,0,83,0,72,0,43,0\n57,0,32,0,16,0,85,0,81,0,68,0\n67,0,61,0,14,0,18,0,45,0,60,0\n75,0,76,0,33,0,65,0,11,0,41,0\n37,0,19,0,56,0,31,0,26,0,74,0\n30,0,7,0,50,0,21,0,24,0,42,0\n5,0,40,0,64,0,8,0,80,0,17,0\n79,0,88,0,20,0,78,0,34,0,15,0\n39,0,2,0,4,0,84,0,46,0,25,0\n77,0,48,0,44,0,13,0,70,0,55,0\n82,0,69,0,47,0,53,0,89,0,27,0\n23,0,3,0,52,0,6,0,49,0,22,0\n38,0,59,0,86,0,87,0,66,0,63,0\n73,0,35,0,58,0,54,0,29,0,7,0\n21,1,17,0,31,0,60,1,11,0,1,0\n76,1,24,0,64,0,5,1,81,0,67,0\n68,0,80,0,46,0,10,0,41,0,71,0\n2,0,40,0,74,0,18,0,30,0,32,0\n82,0,19,0,14,0,15,0,77,0,3,0\n83,0,37,0,70,0,49,0,88,0,38,0\n43,0,69,0,9,0,65,0,52,0,57,0\n48,0,87,0,16,0,26,0,89,0,33,0\n13,0,50,0,12,0,73,0,53,0,59,0\n75,0,66,0,42,0,79,0,36,0,35,0\n29,0,23,0,27,0,45,0,72,0,44,0\n62,0,56,0,85,0,8,0,34,0,39,0\n86,0,6,0,61,0,51,0,55,0,25,0\n63,0,22,0,54,0,20,0,84,0,47,0\n28,0,78,0,11,0,4,0,64,0,89,0\n73,0,67,0,65,0,37,0,3,0,71,0\n79,0,26,0,46,0,58,0,82,0,18,0\n35,0,2,0,27,0,80,0,70,0,14,0\n42,0,19,0,60,0,69,0,81,0,49,0\n13,0,75,0,72,0,6,0,7,0,17,0\n10,0,77,0,88,0,50,0,86,0,85,0\n74,0,20,0,4,0,8,0,57,0,33,0\n83,0,44,0,66,0,68,0,78,0,9,0\n22,0,45,0,84,0,51,0,38,0,30,0\n52,0,5,0,15,0,87,0,54,0,39,0\n28,0,31,0,25,0,53,0,62,0,76,0\n36,0,32,0,12,0,43,0,55,0,47,0\n63,0,16,0,29,0,1,0,40,0,56,0\n61,0,23,0,34,0,24,0,41,0,59,0\n21,0,11,0,6,0,48,0,19,0,66,0\n4,0,45,0,75,0,86,0,82,0,37,0\n49,0,68,0,13,0,30,0,58,0,5,0\n81,0,53,0,35,0,38,0,17,0,26,0\n57,0,14,0,7,0,83,0,36,0,22,0\n60,0,15,0,51,0,8,0,10,0,65,0\n89,0,71,0,32,0,52,0,42,0,70,0\n44,0,16,0,39,0,79,0,74,0,12,0\n34,0,1,0,3,0,48,0,2,0,9,0\n80,0,54,0,59,0,25,0,76,0,77,0\n62,0,55,0,23,0,33,0,18,0,78,0\n28,0,63,0,50,0,67,0,69,0,85,0\n31,0,73,0,84,0,61,0,40,0,72,0\n64,0,41,0,43,0,29,0,21,0,88,0\n56,0,87,0,27,0,20,0,46,0,24,0\n47,0,60,0,70,0,39,0,75,0,9,0\n15,0,71,0,59,0,45,0,35,0,49,0\n76,0,51,0,17,0,16,0,23,0,2,0\n6,0,69,0,83,0,77,0,62,0,79,0\n25,0,67,0,48,0,5,0,22,0,32,0\n18,0,54,0,41,0,37,0,57,0,53,0\n27,0,3,0,68,0,7,0,8,0,43,0\n47,0,56,0,24,0,80,0,38,0,55,0\n50,0,46,0,11,0,74,0,81,0,34,0\n19,0,30,0,20,0,44,0,28,0,73,0\n33,0,1,0,64,0,36,0,84,0,86,0\n29,0,87,0,10,0,13,0,82,0,31,0\n4,0,40,0,26,0,52,0,88,0,66,0\n21,0,58,0,61,0,89,0,65,0,63,0\n42,0,72,0,78,0,85,0,14,0,12,0\n16,0,25,0,71,0,27,0,11,0,18,0\n59,0,17,0,46,0,19,0,62,0,47,0\n28,0,33,0,38,0,3,0,32,0,60,0\n9,0,8,0,53,0,29,0,86,0,24,0\n82,0,6,0,10,0,30,0,64,0,54,0\n69,0,2,0,45,0,55,0,7,0,31,0\n65,0,49,0,39,0,66,0,14,0,1,0\n4,0,12,0,83,0,56,0,41,0,15,0\n21,0,44,0,67,0,40,0,36,0,34,0\n70,0,72,0,79,0,57,0,5,0,63,0\n76,0,81,0,13,0,52,0,20,0,61,0\n77,0,73,0,22,0,78,0,26,0,43,0\n89,0,23,0,85,0,84,0,75,0,80,0\n68,0,87,0,37,0,35,0,50,0,51,0\n42,0,58,0,88,0,74,0,48,0,27,0\n33,0,66,0,29,0,47,0,15,0,2,0\n34,0,53,0,19,0,71,0,63,0,83,0\n10,0,20,0,11,0,3,0,67,0,12,0\n7,0,70,0,61,0,16,0,64,0,62,0\n14,0,81,0,41,0,73,0,86,0,89,0\n55,0,49,0,26,0,57,0,75,0,28,0\n87,0,17,0,85,0,43,0,30,0,25,0\n36,0,50,0,82,0,9,0,80,0,72,0\n76,0,8,0,1,0,44,0,42,0,6,0\n35,0,38,0,18,0,21,0,13,0,39,0\n60,0,59,0,37,0,79,0,22,0,68,0\n51,0,40,0,48,0,78,0,69,0,46,0\n74,0,24,0,58,0,52,0,45,0,77,0\n65,0,31,0,23,0,54,0,32,0,4,0\n56,0,84,0,9,0,88,0,5,0,28,0\n15,0,76,0,55,0,73,0,70,0,85,0\n7,0,49,0,63,0,33,0,44,0,82,0\n11,0,8,0,26,0,2,0,83,0,59,0\n46,0,6,0,43,0,16,0,14,0,53,0\n86,0,30,0,34,0,27,0,52,0,60,0\n87,0,71,0,22,0,4,0,81,0,21,0\n74,0,69,0,41,0,35,0,84,0,3,0\n48,0,36,0,56,0,10,0,61,0,17,0\n37,0,47,0,13,0,42,0,23,0,40,0\n18,0,5,0,89,0,77,0,20,0,51,0\n67,0,78,0,57,0,58,0,39,0,31,0\n12,0,24,0,1,0,68,0,75,0,54,0\n88,0,80,0,45,0,32,0,66,0,62,0\n50,0,79,0,25,0,38,0,29,0,19,0\n65,0,72,0,53,0,64,0,22,0,74,0\n34,0,82,0,84,0,76,0,70,0,43,0\n27,0,21,0,9,0,73,0,49,0,10,0\n28,0,36,0,77,0,87,0,23,0,8,0\n60,0,89,0,57,0,40,0,6,0,12,0\n58,0,32,0,59,0,69,0,56,0,44,0\n41,0,51,0,80,0,7,0,1,0,26,0\n33,0,54,0,71,0,79,0,13,0,85,0\n78,0,38,0,61,0,2,0,75,0,5,0\n35,0,24,0,72,0,19,0,4,0,16,0\n81,0,88,0,3,0,25,0,18,0,47,0\n39,0,55,0,30,0,29,0,37,0,11,0\n64,0,14,0,52,0,31,0,63,0,48,0\n45,0,65,0,20,0,17,0,83,0,50,0\n86,0,15,0,68,0,42,0,62,0,67,0\n66,0,21,0,5,0,46,0,60,0,76,0\n"
  },
  {
    "path": "schedules/89_11.csv",
    "content": "45,0,54,0,24,0,8,0,88,0,49,0\n42,0,86,0,34,0,3,0,23,0,28,0\n18,0,48,0,84,0,31,0,25,0,12,0\n63,0,21,0,59,0,13,0,57,0,56,0\n72,0,10,0,19,0,66,0,55,0,43,0\n30,0,9,0,27,0,36,0,26,0,85,0\n81,0,35,0,80,0,53,0,76,0,40,0\n5,0,60,0,70,0,82,0,17,0,75,0\n47,0,38,0,22,0,7,0,87,0,78,0\n46,0,37,0,62,0,33,0,6,0,65,0\n79,0,29,0,61,0,74,0,14,0,15,0\n58,0,77,0,41,0,52,0,51,0,20,0\n16,0,32,0,89,0,73,0,68,0,39,0\n67,0,11,0,4,0,1,0,71,0,64,0\n69,0,50,0,2,0,83,0,44,0,81,0\n21,0,7,0,85,0,54,0,43,0,5,0\n66,0,78,0,40,0,28,0,53,0,18,0\n9,0,79,0,33,0,60,0,22,0,86,0\n58,0,84,0,24,0,19,0,76,0,63,0\n57,0,25,0,20,0,35,0,38,0,26,0\n59,0,89,0,75,0,51,0,6,0,10,0\n27,0,31,0,1,0,3,0,68,0,72,0\n50,0,34,0,32,0,8,0,70,0,61,0\n17,0,42,0,15,0,71,0,39,0,80,0\n74,0,64,0,52,0,88,0,12,0,36,0\n13,0,47,0,37,0,69,0,45,0,44,0\n83,0,48,0,87,0,46,0,23,0,11,0\n82,0,56,0,2,0,41,0,67,0,73,0\n16,0,30,0,55,0,49,0,29,0,62,0\n77,0,65,0,66,0,4,0,14,0,21,0\n85,1,28,0,71,0,59,1,70,0,1,0\n31,1,64,0,33,0,42,1,78,0,27,0\n50,1,18,0,63,0,79,0,51,0,47,0\n25,0,26,0,54,0,44,0,39,0,19,0\n6,0,32,0,76,0,48,0,9,0,5,0\n68,0,38,0,10,0,24,0,60,0,30,0\n89,0,52,0,13,0,87,0,29,0,86,0\n41,0,17,0,8,0,22,0,16,0,62,0\n40,0,65,0,34,0,12,0,45,0,67,0\n73,0,55,0,58,0,23,0,74,0,35,0\n81,0,49,0,4,0,46,0,57,0,72,0\n7,0,20,0,36,0,15,0,2,0,37,0\n3,0,83,0,53,0,61,0,56,0,88,0\n14,0,75,0,69,0,11,0,84,0,80,0\n77,0,43,0,48,0,82,0,78,0,71,0\n39,0,76,0,64,0,21,0,41,0,45,0\n63,0,52,0,44,0,17,0,23,0,30,0\n42,0,35,0,9,0,4,0,19,0,12,0\n66,0,31,0,51,0,60,0,54,0,87,0\n1,0,74,0,16,0,53,0,20,0,33,0\n6,0,67,0,88,0,14,0,26,0,22,0\n69,0,72,0,25,0,79,0,34,0,89,0\n85,0,37,0,55,0,2,0,24,0,57,0\n50,0,80,0,3,0,82,0,49,0,10,0\n32,0,11,0,38,0,59,0,43,0,15,0\n28,0,73,0,36,0,13,0,62,0,84,0\n47,0,75,0,68,0,61,0,46,0,77,0\n81,0,29,0,5,0,18,0,83,0,65,0\n8,0,7,0,27,0,86,0,58,0,56,0\n40,0,79,0,48,0,70,0,52,0,85,0\n88,0,2,0,41,0,17,0,89,0,35,0\n69,0,42,0,64,0,51,0,43,0,16,0\n36,0,78,0,19,0,49,0,11,0,39,0\n62,0,75,0,63,0,1,0,54,0,38,0\n59,0,26,0,34,0,5,0,24,0,68,0\n10,0,61,0,84,0,65,0,44,0,22,0\n55,0,47,0,40,0,3,0,20,0,4,0\n31,0,32,0,77,0,74,0,83,0,57,0\n70,0,81,0,73,0,9,0,25,0,7,0\n15,0,12,0,66,0,6,0,27,0,82,0\n58,0,71,0,53,0,46,0,50,0,86,0\n8,0,72,0,18,0,13,0,14,0,33,0\n87,0,28,0,80,0,30,0,21,0,67,0\n23,0,29,0,60,0,76,0,37,0,56,0\n45,0,75,0,3,0,22,0,36,0,32,0\n70,0,78,0,83,0,41,0,55,0,63,0\n1,0,52,0,69,0,27,0,61,0,59,0\n86,0,44,0,73,0,31,0,5,0,11,0\n62,0,79,0,7,0,42,0,26,0,66,0\n14,0,64,0,82,0,35,0,13,0,10,0\n77,0,12,0,49,0,85,0,76,0,38,0\n72,0,54,0,56,0,9,0,80,0,15,0\n51,0,45,0,29,0,28,0,57,0,33,0\n20,0,30,0,8,0,81,0,6,0,71,0\n58,0,37,0,17,0,68,0,67,0,25,0\n39,0,47,0,24,0,48,0,53,0,65,0\n23,0,40,0,21,0,50,0,16,0,88,0\n60,0,74,0,18,0,19,0,46,0,89,0\n4,0,87,0,43,0,34,0,84,0,2,0\n83,0,66,0,63,0,64,0,85,0,86,0\n79,0,20,0,78,0,45,0,80,0,5,0\n68,0,14,0,76,0,28,0,15,0,44,0\n67,0,48,0,36,0,54,0,55,0,61,0\n70,0,51,0,82,0,11,0,53,0,24,0\n46,0,3,0,17,0,19,0,59,0,77,0\n13,0,7,0,60,0,88,0,32,0,65,0\n18,0,30,0,75,0,42,0,37,0,73,0\n49,0,34,0,35,0,21,0,33,0,56,0\n23,0,89,0,1,0,43,0,81,0,22,0\n4,0,6,0,38,0,50,0,27,0,74,0\n57,0,87,0,62,0,58,0,39,0,12,0\n41,0,10,0,9,0,69,0,40,0,31,0\n16,0,26,0,84,0,47,0,52,0,72,0\n25,0,2,0,63,0,8,0,71,0,29,0\n70,0,56,0,19,0,20,0,64,0,68,0\n83,0,36,0,80,0,7,0,24,0,89,0\n23,0,44,0,78,0,4,0,75,0,32,0\n13,0,34,0,81,0,48,0,66,0,74,0\n31,0,82,0,61,0,30,0,45,0,58,0\n88,0,18,0,86,0,76,0,72,0,62,0\n41,0,12,0,5,0,1,0,37,0,50,0\n8,0,39,0,85,0,60,0,3,0,69,0\n87,0,26,0,33,0,15,0,40,0,77,0\n65,0,35,0,67,0,59,0,79,0,16,0\n46,0,51,0,22,0,21,0,55,0,25,0\n11,0,27,0,17,0,28,0,54,0,10,0\n29,0,6,0,43,0,49,0,73,0,47,0\n53,0,14,0,57,0,9,0,52,0,2,0\n42,0,71,0,89,0,84,0,38,0,56,0\n30,0,88,0,5,0,33,0,39,0,66,0\n68,0,61,0,85,0,87,0,81,0,41,0\n4,0,37,0,26,0,86,0,51,0,48,0\n11,0,16,0,12,0,7,0,63,0,3,0\n70,0,46,0,43,0,80,0,13,0,67,0\n50,0,62,0,24,0,25,0,78,0,14,0\n49,0,40,0,38,0,17,0,64,0,32,0\n58,0,28,0,59,0,47,0,60,0,2,0\n21,0,74,0,42,0,45,0,9,0,72,0\n77,0,27,0,84,0,35,0,53,0,29,0\n57,0,44,0,36,0,71,0,18,0,34,0\n55,0,52,0,65,0,75,0,31,0,15,0\n54,0,22,0,82,0,69,0,20,0,76,0\n83,0,79,0,73,0,1,0,10,0,8,0\n19,0,23,0,51,0,6,0,13,0,85,0\n56,0,45,0,11,0,25,0,66,0,50,0\n9,0,78,0,84,0,88,0,59,0,37,0\n16,0,86,0,14,0,38,0,36,0,81,0\n33,0,24,0,71,0,41,0,32,0,52,0\n53,0,15,0,54,0,34,0,30,0,64,0\n73,0,72,0,48,0,20,0,60,0,63,0\n23,0,2,0,61,0,49,0,18,0,26,0\n5,0,55,0,67,0,77,0,89,0,8,0\n12,0,80,0,22,0,4,0,29,0,68,0\n62,0,21,0,19,0,47,0,83,0,82,0\n42,0,1,0,44,0,40,0,46,0,58,0\n76,0,43,0,57,0,79,0,27,0,75,0\n31,0,7,0,28,0,35,0,69,0,6,0\n74,0,65,0,3,0,70,0,17,0,87,0\n39,0,81,0,37,0,10,0,77,0,63,0\n64,0,8,0,80,0,48,0,59,0,23,0\n15,0,25,0,60,0,83,0,16,0,4,0\n88,0,11,0,85,0,29,0,34,0,58,0\n32,0,14,0,56,0,26,0,55,0,1,0\n89,0,66,0,20,0,31,0,9,0,46,0\n57,0,50,0,67,0,30,0,84,0,7,0\n12,0,61,0,86,0,17,0,21,0,78,0\n6,0,68,0,54,0,65,0,2,0,42,0\n53,0,75,0,13,0,79,0,41,0,49,0\n45,0,87,0,71,0,19,0,27,0,73,0\n69,0,51,0,74,0,40,0,62,0,5,0\n76,0,10,0,33,0,70,0,36,0,47,0\n43,0,35,0,3,0,44,0,18,0,24,0\n39,0,28,0,52,0,72,0,82,0,38,0\n22,0,85,0,31,0,59,0,42,0,50,0\n"
  },
  {
    "path": "schedules/89_12.csv",
    "content": "63,0,35,0,62,0,10,0,81,0,84,0\n66,0,25,0,20,0,53,0,43,0,57,0\n30,0,86,0,46,0,39,0,16,0,73,0\n80,0,82,0,85,0,87,0,79,0,89,0\n18,0,8,0,29,0,74,0,49,0,68,0\n7,0,6,0,64,0,13,0,70,0,4,0\n17,0,21,0,28,0,33,0,41,0,36,0\n3,0,65,0,56,0,22,0,72,0,59,0\n19,0,69,0,31,0,42,0,15,0,54,0\n34,0,38,0,11,0,48,0,2,0,9,0\n76,0,47,0,37,0,52,0,1,0,67,0\n61,0,26,0,32,0,45,0,75,0,27,0\n58,0,14,0,77,0,12,0,71,0,78,0\n23,0,51,0,50,0,83,0,24,0,40,0\n44,0,60,0,88,0,55,0,5,0,20,0\n13,0,62,0,33,0,18,0,69,0,85,0\n87,0,43,0,84,0,22,0,38,0,64,0\n72,0,48,0,39,0,31,0,79,0,17,0\n3,0,67,0,89,0,32,0,19,0,30,0\n61,0,81,0,71,0,66,0,28,0,8,0\n10,0,51,0,42,0,50,0,11,0,78,0\n75,0,23,0,9,0,14,0,53,0,76,0\n4,0,47,0,54,0,29,0,55,0,16,0\n65,0,26,0,68,0,2,0,63,0,5,0\n83,0,1,0,49,0,56,0,7,0,57,0\n70,0,12,0,73,0,59,0,24,0,15,0\n82,0,44,0,27,0,25,0,35,0,36,0\n34,0,45,0,40,0,58,0,74,0,60,0\n46,0,52,0,41,0,6,0,77,0,88,0\n86,0,21,0,19,0,37,0,80,0,14,0\n22,0,2,0,13,0,8,0,20,0,78,0\n79,0,57,0,62,0,76,0,3,0,38,0\n7,0,63,0,61,0,32,0,47,0,48,0\n4,0,50,0,31,0,84,0,44,0,23,0\n16,0,83,0,5,0,36,0,45,0,81,0\n56,0,64,0,40,0,17,0,42,0,24,0\n10,0,52,0,82,0,66,0,59,0,27,0\n74,0,28,0,77,0,15,0,85,0,1,0\n68,0,33,0,73,0,9,0,37,0,54,0\n80,0,39,0,89,0,49,0,41,0,35,0\n69,0,6,0,72,0,43,0,60,0,12,0\n65,0,25,0,58,0,86,0,29,0,88,0\n46,0,87,0,67,0,11,0,70,0,53,0\n34,0,71,0,30,0,51,0,21,0,26,0\n75,0,55,0,59,0,18,0,78,0,48,0\n15,0,17,0,16,0,38,0,61,0,13,0\n8,0,64,0,83,0,33,0,39,0,14,0\n68,0,54,0,24,0,32,0,82,0,72,0\n52,0,23,0,57,0,85,0,60,0,65,0\n7,0,77,0,81,0,40,0,9,0,87,0\n79,0,70,0,22,0,19,0,25,0,1,0\n29,0,63,0,42,0,66,0,71,0,6,0\n67,0,21,0,35,0,50,0,56,0,55,0\n18,0,76,0,44,0,46,0,34,0,73,0\n37,0,36,0,12,0,84,0,88,0,53,0\n20,0,30,0,45,0,31,0,11,0,49,0\n69,0,5,0,51,0,89,0,75,0,58,0\n47,0,2,0,27,0,62,0,86,0,28,0\n10,0,41,0,3,0,4,0,43,0,74,0\n26,0,38,0,55,0,80,0,40,0,66,0\n25,0,71,0,73,0,87,0,50,0,32,0\n9,0,85,0,78,0,56,0,16,0,82,0\n65,0,84,0,39,0,76,0,21,0,61,0\n5,0,19,0,23,0,57,0,33,0,12,0\n46,0,31,0,15,0,8,0,7,0,67,0\n22,0,42,0,34,0,75,0,86,0,52,0\n53,0,27,0,72,0,41,0,88,0,45,0\n89,0,47,0,43,0,18,0,17,0,11,0\n79,0,68,0,83,0,69,0,10,0,44,0\n74,0,63,0,70,0,62,0,51,0,49,0\n1,0,36,0,4,0,2,0,58,0,24,0\n37,0,48,0,20,0,80,0,77,0,29,0\n81,0,26,0,14,0,3,0,6,0,59,0\n60,0,35,0,54,0,13,0,30,0,28,0\n64,0,65,0,12,0,50,0,16,0,89,0\n56,0,27,0,46,0,55,0,33,0,19,0\n11,0,44,0,43,0,49,0,52,0,71,0\n78,0,24,0,5,0,17,0,84,0,67,0\n38,0,8,0,85,0,70,0,42,0,21,0\n86,0,3,0,25,0,45,0,51,0,48,0\n13,0,73,0,53,0,47,0,40,0,81,0\n62,0,36,0,7,0,68,0,66,0,34,0\n82,0,58,0,15,0,30,0,14,0,22,0\n60,0,59,0,2,0,37,0,39,0,83,0\n63,0,88,0,1,0,80,0,4,0,9,0\n61,0,18,0,57,0,87,0,77,0,54,0\n41,0,29,0,69,0,23,0,26,0,64,0\n32,0,10,0,76,0,31,0,6,0,28,0\n75,0,79,0,72,0,20,0,74,0,35,0\n66,0,49,0,85,0,58,0,19,0,48,0\n25,0,30,0,84,0,52,0,7,0,2,0\n11,0,40,0,65,0,62,0,82,0,12,0\n36,0,55,0,42,0,77,0,39,0,3,0\n14,0,43,0,34,0,67,0,27,0,4,0\n86,0,45,0,15,0,63,0,23,0,87,0\n28,0,61,0,53,0,79,0,56,0,51,0\n41,0,54,0,76,0,83,0,70,0,78,0\n44,0,72,0,24,0,9,0,21,0,47,0\n46,0,89,0,29,0,75,0,1,0,81,0\n68,0,69,0,71,0,59,0,20,0,38,0\n74,0,22,0,37,0,50,0,5,0,13,0\n31,0,60,0,26,0,18,0,73,0,64,0\n17,0,8,0,6,0,80,0,35,0,57,0\n32,0,33,0,16,0,88,0,10,0,34,0\n51,0,28,0,14,0,55,0,65,0,7,0\n77,0,2,0,66,0,23,0,67,0,79,0\n29,0,38,0,19,0,36,0,11,0,83,0\n30,0,48,0,87,0,27,0,68,0,12,0\n21,0,5,0,82,0,64,0,49,0,3,0\n59,0,84,0,13,0,41,0,57,0,9,0\n69,0,35,0,47,0,22,0,88,0,46,0\n81,0,43,0,70,0,78,0,32,0,39,0\n71,0,86,0,89,0,31,0,24,0,74,0\n15,0,50,0,75,0,60,0,80,0,33,0\n52,0,16,0,53,0,18,0,26,0,58,0\n62,0,20,0,73,0,61,0,6,0,1,0\n85,0,42,0,4,0,37,0,72,0,25,0\n54,0,45,0,44,0,56,0,17,0,10,0\n8,0,40,0,30,0,63,0,76,0,36,0\n78,0,74,0,21,0,66,0,7,0,69,0\n32,0,3,0,9,0,29,0,35,0,15,0\n2,0,57,0,16,0,31,0,27,0,71,0\n20,0,34,0,50,0,39,0,47,0,19,0\n88,0,14,0,89,0,38,0,73,0,60,0\n54,0,80,0,81,0,52,0,12,0,51,0\n77,0,17,0,45,0,59,0,62,0,76,0\n56,0,84,0,58,0,8,0,68,0,43,0\n23,0,18,0,70,0,28,0,82,0,37,0\n79,0,42,0,49,0,87,0,33,0,65,0\n1,0,53,0,10,0,5,0,48,0,64,0\n46,0,24,0,63,0,25,0,41,0,61,0\n67,0,6,0,22,0,85,0,44,0,40,0\n72,0,86,0,55,0,75,0,83,0,13,0\n4,0,26,0,88,0,11,0,56,0,76,0\n47,0,66,0,50,0,9,0,70,0,45,0\n17,0,60,0,7,0,29,0,2,0,82,0\n84,0,18,0,33,0,1,0,3,0,71,0\n24,0,28,0,52,0,87,0,39,0,69,0\n64,0,32,0,51,0,85,0,46,0,20,0\n12,0,49,0,75,0,25,0,10,0,67,0\n81,0,58,0,55,0,31,0,57,0,37,0\n4,0,8,0,59,0,86,0,79,0,5,0\n19,0,22,0,40,0,41,0,16,0,68,0\n78,0,15,0,36,0,89,0,26,0,72,0\n23,0,83,0,34,0,80,0,43,0,30,0\n62,0,14,0,48,0,42,0,13,0,44,0\n11,0,77,0,21,0,73,0,27,0,63,0\n74,0,6,0,38,0,65,0,53,0,54,0\n61,0,31,0,52,0,35,0,70,0,5,0\n76,0,50,0,49,0,69,0,81,0,86,0\n85,0,3,0,68,0,17,0,75,0,88,0\n18,0,45,0,80,0,22,0,24,0,29,0\n66,0,39,0,13,0,56,0,89,0,32,0\n87,0,10,0,72,0,46,0,19,0,2,0\n37,0,64,0,78,0,63,0,44,0,57,0\n1,0,65,0,73,0,34,0,8,0,41,0\n7,0,21,0,27,0,58,0,23,0,6,0\n35,0,28,0,59,0,40,0,43,0,42,0\n33,0,51,0,38,0,47,0,82,0,77,0\n71,0,83,0,62,0,4,0,53,0,15,0\n60,0,16,0,14,0,25,0,79,0,11,0\n74,0,55,0,9,0,61,0,12,0,30,0\n48,0,54,0,67,0,20,0,26,0,84,0\n73,0,32,0,49,0,36,0,22,0,23,0\n28,0,57,0,68,0,46,0,45,0,21,0\n80,0,2,0,56,0,70,0,3,0,69,0\n59,0,87,0,51,0,31,0,1,0,44,0\n40,0,39,0,29,0,85,0,27,0,5,0\n12,0,41,0,18,0,7,0,38,0,42,0\n53,0,33,0,35,0,4,0,86,0,78,0\n48,0,74,0,88,0,82,0,81,0,83,0\n13,0,43,0,19,0,77,0,76,0,26,0\n55,0,6,0,79,0,84,0,34,0,15,0\n58,0,11,0,67,0,61,0,64,0,72,0\n20,0,52,0,17,0,63,0,50,0,14,0\n75,0,66,0,37,0,16,0,30,0,24,0\n25,0,9,0,8,0,62,0,89,0,54,0\n60,0,36,0,71,0,65,0,10,0,47,0\n"
  },
  {
    "path": "schedules/89_13.csv",
    "content": "12,0,67,0,33,0,8,0,77,0,17,0\n5,0,76,0,86,0,34,0,10,0,53,0\n23,0,47,0,55,0,20,0,51,0,11,0\n85,0,15,0,13,0,42,0,24,0,22,0\n72,0,39,0,89,0,32,0,2,0,63,0\n57,0,71,0,35,0,73,0,59,0,56,0\n61,0,16,0,84,0,70,0,78,0,27,0\n66,0,14,0,28,0,30,0,18,0,87,0\n40,0,62,0,54,0,75,0,44,0,21,0\n58,0,9,0,7,0,25,0,64,0,43,0\n46,0,36,0,80,0,49,0,6,0,41,0\n4,0,88,0,82,0,65,0,50,0,83,0\n74,0,3,0,38,0,60,0,81,0,37,0\n19,0,48,0,29,0,45,0,1,0,52,0\n26,0,79,0,31,0,68,0,69,0,73,0\n87,0,62,0,63,0,56,0,23,0,5,0\n57,0,51,0,10,0,12,0,64,0,54,0\n44,0,85,0,53,0,67,0,49,0,36,0\n4,0,18,0,80,0,84,0,55,0,72,0\n20,0,81,0,46,0,9,0,89,0,66,0\n15,0,86,0,27,0,60,0,2,0,40,0\n28,0,42,0,41,0,71,0,82,0,61,0\n65,0,3,0,8,0,69,0,50,0,48,0\n43,0,22,0,75,0,31,0,33,0,52,0\n17,0,7,0,68,0,14,0,34,0,38,0\n29,0,11,0,39,0,16,0,83,0,13,0\n37,0,6,0,78,0,76,0,25,0,88,0\n26,0,21,0,24,0,1,0,77,0,30,0\n58,0,32,0,70,0,45,0,35,0,47,0\n59,0,19,0,50,0,79,0,74,0,23,0\n85,1,42,0,89,0,55,0,5,0,43,0\n48,0,56,0,10,0,27,0,20,0,9,0\n11,0,31,0,46,0,28,0,86,0,17,0\n84,0,76,0,83,0,3,0,64,0,40,0\n15,0,66,0,80,0,67,0,13,0,88,0\n37,0,41,0,62,0,60,0,1,0,26,0\n71,0,33,0,7,0,30,0,36,0,54,0\n19,0,79,0,75,0,29,0,22,0,57,0\n45,0,58,0,14,0,34,0,2,0,39,0\n44,0,59,0,87,0,61,0,47,0,38,0\n4,0,70,0,21,0,12,0,18,0,53,0\n81,0,73,0,82,0,63,0,78,0,77,0\n24,0,68,0,72,0,65,0,49,0,74,0\n52,0,8,0,25,0,16,0,35,0,51,0\n6,0,62,0,13,0,32,0,69,0,7,0\n89,0,14,0,1,0,9,0,28,0,83,0\n48,0,31,0,85,0,84,0,40,0,33,0\n59,0,54,0,26,0,80,0,17,0,22,0\n81,0,29,0,43,0,70,0,87,0,36,0\n71,0,76,0,45,0,67,0,11,0,27,0\n78,0,86,0,46,0,75,0,42,0,12,0\n58,0,66,0,63,0,69,0,74,0,4,0\n55,0,25,0,38,0,57,0,82,0,30,0\n41,0,72,0,44,0,88,0,52,0,56,0\n21,0,5,0,34,0,16,0,2,0,49,0\n65,0,47,0,77,0,37,0,61,0,79,0\n68,0,19,0,10,0,18,0,3,0,15,0\n23,0,64,0,73,0,6,0,8,0,53,0\n50,0,51,0,39,0,20,0,60,0,35,0\n24,0,69,0,83,0,32,0,36,0,12,0\n84,0,1,0,41,0,13,0,86,0,66,0\n70,0,22,0,62,0,25,0,78,0,11,0\n56,0,42,0,21,0,52,0,17,0,58,0\n67,0,30,0,29,0,61,0,31,0,2,0\n49,0,73,0,47,0,89,0,27,0,19,0\n63,0,65,0,64,0,46,0,45,0,38,0\n32,0,18,0,51,0,77,0,74,0,76,0\n50,0,6,0,75,0,26,0,71,0,9,0\n23,0,48,0,60,0,88,0,57,0,14,0\n59,0,55,0,37,0,53,0,39,0,68,0\n20,0,40,0,28,0,8,0,34,0,43,0\n3,0,5,0,80,0,44,0,35,0,24,0\n4,0,15,0,87,0,33,0,54,0,79,0\n72,0,82,0,85,0,7,0,16,0,10,0\n17,0,62,0,61,0,81,0,9,0,50,0\n88,0,11,0,36,0,21,0,63,0,31,0\n32,0,23,0,52,0,12,0,27,0,38,0\n34,0,89,0,57,0,84,0,37,0,71,0\n18,0,65,0,25,0,13,0,40,0,29,0\n77,0,60,0,83,0,42,0,59,0,6,0\n41,0,24,0,4,0,87,0,73,0,48,0\n68,0,35,0,81,0,75,0,85,0,30,0\n14,0,43,0,69,0,15,0,51,0,72,0\n79,0,78,0,67,0,5,0,39,0,64,0\n47,0,54,0,53,0,56,0,3,0,2,0\n22,0,86,0,45,0,82,0,20,0,74,0\n1,0,8,0,7,0,46,0,70,0,44,0\n10,0,49,0,26,0,55,0,66,0,33,0\n80,0,76,0,16,0,58,0,28,0,19,0\n6,0,34,0,61,0,35,0,12,0,15,0\n39,0,17,0,65,0,23,0,30,0,43,0\n9,0,69,0,53,0,38,0,11,0,41,0\n27,0,74,0,56,0,4,0,29,0,14,0\n20,0,24,0,52,0,82,0,37,0,7,0\n5,0,59,0,40,0,26,0,88,0,46,0\n80,0,75,0,10,0,1,0,79,0,32,0\n19,0,60,0,45,0,25,0,84,0,44,0\n66,0,73,0,2,0,42,0,62,0,48,0\n51,0,47,0,71,0,85,0,78,0,83,0\n16,0,68,0,77,0,89,0,36,0,86,0\n49,0,58,0,31,0,13,0,50,0,63,0\n21,0,87,0,33,0,55,0,57,0,76,0\n3,0,67,0,54,0,70,0,72,0,28,0\n18,0,64,0,8,0,22,0,81,0,15,0\n5,0,84,0,74,0,17,0,6,0,69,0\n38,0,35,0,40,0,10,0,78,0,1,0\n37,0,19,0,2,0,83,0,46,0,4,0\n34,0,77,0,27,0,50,0,62,0,11,0\n60,0,30,0,24,0,9,0,79,0,29,0\n12,0,31,0,56,0,82,0,76,0,39,0\n16,0,43,0,32,0,3,0,71,0,88,0\n85,0,8,0,87,0,58,0,89,0,26,0\n22,0,61,0,66,0,53,0,51,0,7,0\n20,0,18,0,57,0,41,0,67,0,63,0\n25,0,49,0,54,0,86,0,81,0,59,0\n28,0,36,0,73,0,55,0,45,0,75,0\n48,0,47,0,72,0,21,0,13,0,64,0\n42,0,68,0,23,0,80,0,33,0,44,0\n14,0,52,0,6,0,70,0,65,0,10,0\n32,0,56,0,30,0,40,0,19,0,34,0\n67,0,60,0,4,0,78,0,7,0,89,0\n20,0,77,0,85,0,29,0,69,0,54,0\n35,0,83,0,2,0,43,0,41,0,76,0\n74,0,11,0,8,0,75,0,49,0,84,0\n1,0,42,0,64,0,87,0,31,0,27,0\n55,0,17,0,70,0,79,0,71,0,13,0\n66,0,68,0,36,0,47,0,57,0,52,0\n5,0,9,0,12,0,22,0,72,0,65,0\n82,0,3,0,46,0,62,0,15,0,23,0\n38,0,51,0,44,0,73,0,16,0,58,0\n53,0,25,0,26,0,28,0,63,0,48,0\n14,0,86,0,50,0,80,0,37,0,21,0\n18,0,45,0,24,0,33,0,59,0,61,0\n81,0,88,0,42,0,39,0,19,0,47,0\n69,0,49,0,71,0,60,0,87,0,52,0\n32,0,5,0,66,0,64,0,31,0,70,0\n22,0,10,0,2,0,44,0,77,0,36,0\n82,0,9,0,13,0,8,0,54,0,68,0\n58,0,48,0,37,0,30,0,72,0,11,0\n4,0,33,0,51,0,38,0,62,0,28,0\n50,0,46,0,89,0,24,0,25,0,56,0\n12,0,84,0,79,0,81,0,14,0,7,0\n53,0,61,0,40,0,74,0,80,0,39,0\n43,0,57,0,27,0,26,0,86,0,6,0\n1,0,88,0,73,0,17,0,85,0,18,0\n34,0,35,0,63,0,67,0,55,0,83,0\n20,0,75,0,76,0,16,0,65,0,15,0\n45,0,78,0,59,0,21,0,41,0,3,0\n29,0,64,0,28,0,23,0,37,0,49,0\n89,0,12,0,10,0,31,0,74,0,62,0\n70,0,81,0,56,0,80,0,48,0,51,0\n84,0,50,0,88,0,68,0,87,0,22,0\n82,0,11,0,40,0,2,0,79,0,6,0\n39,0,71,0,18,0,24,0,38,0,8,0\n44,0,78,0,13,0,14,0,20,0,26,0\n77,0,43,0,21,0,19,0,66,0,23,0\n36,0,60,0,17,0,76,0,61,0,72,0\n16,0,9,0,42,0,45,0,4,0,57,0\n29,0,46,0,53,0,33,0,35,0,32,0\n63,0,52,0,30,0,3,0,86,0,85,0\n65,0,55,0,27,0,58,0,41,0,54,0\n69,0,59,0,25,0,75,0,34,0,1,0\n15,0,47,0,83,0,5,0,73,0,7,0\n67,0,38,0,84,0,36,0,56,0,43,0\n64,0,71,0,2,0,68,0,20,0,80,0\n17,0,40,0,57,0,89,0,24,0,70,0\n45,0,30,0,88,0,4,0,10,0,8,0\n37,0,27,0,13,0,51,0,63,0,19,0\n87,0,34,0,72,0,53,0,65,0,78,0\n52,0,61,0,74,0,73,0,54,0,46,0\n12,0,11,0,85,0,59,0,60,0,66,0\n58,0,83,0,23,0,81,0,26,0,67,0\n55,0,32,0,15,0,9,0,44,0,86,0\n62,0,49,0,79,0,31,0,18,0,35,0\n29,0,7,0,42,0,3,0,76,0,50,0\n39,0,28,0,22,0,21,0,48,0,6,0\n14,0,41,0,77,0,75,0,25,0,5,0\n69,0,33,0,1,0,16,0,82,0,47,0\n37,0,40,0,87,0,17,0,45,0,12,0\n9,0,70,0,2,0,85,0,23,0,59,0\n44,0,81,0,31,0,71,0,4,0,34,0\n7,0,65,0,35,0,26,0,11,0,19,0\n50,0,52,0,15,0,28,0,84,0,53,0\n63,0,54,0,76,0,62,0,24,0,14,0\n51,0,6,0,67,0,68,0,1,0,29,0\n75,0,86,0,33,0,89,0,64,0,88,0\n60,0,46,0,13,0,73,0,10,0,43,0\n39,0,58,0,3,0,77,0,57,0,49,0\n38,0,72,0,79,0,83,0,42,0,66,0\n82,0,18,0,36,0,5,0,48,0,27,0\n16,0,74,0,22,0,30,0,47,0,41,0\n69,0,78,0,8,0,55,0,56,0,80,0\n20,0,25,0,61,0,32,0,21,0,85,0\n"
  },
  {
    "path": "schedules/89_14.csv",
    "content": "89,0,45,0,37,0,51,0,21,0,56,0\n59,0,1,0,57,0,67,0,8,0,53,0\n81,0,7,0,11,0,88,0,39,0,43,0\n69,0,79,0,6,0,46,0,15,0,50,0\n77,0,2,0,61,0,31,0,49,0,9,0\n5,0,42,0,30,0,73,0,24,0,75,0\n34,0,23,0,26,0,64,0,44,0,32,0\n87,0,22,0,16,0,52,0,85,0,48,0\n76,0,17,0,72,0,78,0,38,0,33,0\n35,0,40,0,68,0,28,0,63,0,19,0\n65,0,80,0,10,0,41,0,14,0,60,0\n74,0,83,0,86,0,54,0,20,0,58,0\n27,0,13,0,82,0,70,0,55,0,18,0\n12,0,36,0,29,0,84,0,47,0,25,0\n4,0,62,0,66,0,71,0,3,0,59,0\n6,0,24,0,9,0,57,0,37,0,85,0\n8,0,40,0,49,0,34,0,67,0,42,0\n15,0,72,0,63,0,5,0,88,0,89,0\n16,0,21,0,20,0,30,0,77,0,64,0\n52,0,44,0,18,0,86,0,10,0,7,0\n27,0,2,0,51,0,35,0,29,0,39,0\n23,0,22,0,38,0,83,0,3,0,12,0\n19,0,14,0,36,0,78,0,87,0,41,0\n56,0,60,0,11,0,1,0,55,0,47,0\n46,0,28,0,66,0,74,0,43,0,17,0\n62,0,25,0,31,0,4,0,26,0,70,0\n65,0,81,0,33,0,69,0,58,0,53,0\n84,0,79,0,82,0,80,0,75,0,54,0\n32,0,48,0,71,0,45,0,68,0,61,0\n13,0,50,0,85,0,73,0,76,0,51,0\n55,1,56,0,88,0,35,1,23,0,30,0\n10,0,2,0,46,0,36,0,59,0,78,0\n8,0,5,0,25,0,31,0,11,0,66,0\n70,0,52,0,81,0,29,0,44,0,67,0\n79,0,80,0,39,0,62,0,20,0,37,0\n38,0,26,0,61,0,28,0,24,0,74,0\n12,0,71,0,58,0,50,0,64,0,18,0\n7,0,60,0,40,0,89,0,73,0,4,0\n16,0,68,0,15,0,84,0,41,0,83,0\n33,0,3,0,27,0,82,0,65,0,49,0\n21,0,32,0,34,0,63,0,69,0,87,0\n6,0,17,0,77,0,75,0,86,0,45,0\n13,0,1,0,19,0,48,0,72,0,14,0\n53,0,57,0,43,0,54,0,76,0,47,0\n9,0,42,0,88,0,22,0,12,0,79,0\n80,0,70,0,50,0,8,0,78,0,74,0\n3,0,67,0,39,0,10,0,73,0,41,0\n62,0,85,0,64,0,81,0,60,0,61,0\n37,0,77,0,83,0,5,0,7,0,44,0\n51,0,15,0,1,0,38,0,82,0,25,0\n71,0,72,0,27,0,56,0,57,0,36,0\n18,0,33,0,32,0,75,0,66,0,30,0\n42,0,58,0,46,0,89,0,13,0,63,0\n54,0,29,0,14,0,69,0,11,0,26,0\n84,0,52,0,53,0,21,0,19,0,9,0\n48,0,47,0,2,0,6,0,28,0,4,0\n87,0,43,0,86,0,45,0,65,0,23,0\n49,0,34,0,17,0,68,0,59,0,24,0\n20,0,31,0,55,0,40,0,22,0,76,0\n35,0,82,0,57,0,16,0,46,0,62,0\n60,0,73,0,1,0,66,0,58,0,78,0\n3,0,69,0,30,0,79,0,72,0,52,0\n84,0,56,0,54,0,38,0,70,0,42,0\n65,0,8,0,63,0,77,0,23,0,85,0\n11,0,51,0,44,0,41,0,61,0,27,0\n86,0,59,0,55,0,80,0,48,0,33,0\n29,0,21,0,49,0,13,0,5,0,71,0\n32,0,50,0,24,0,53,0,2,0,7,0\n75,0,31,0,68,0,43,0,37,0,10,0\n4,0,14,0,74,0,22,0,17,0,81,0\n9,0,40,0,18,0,45,0,15,0,87,0\n26,0,89,0,76,0,16,0,47,0,67,0\n25,0,39,0,28,0,83,0,34,0,19,0\n20,0,35,0,36,0,88,0,6,0,12,0\n64,0,78,0,80,0,55,0,77,0,69,0\n7,0,84,0,31,0,30,0,57,0,65,0\n72,0,58,0,23,0,49,0,4,0,51,0\n41,0,75,0,15,0,29,0,59,0,74,0\n50,0,48,0,73,0,44,0,62,0,21,0\n85,0,9,0,68,0,11,0,38,0,86,0\n27,0,16,0,54,0,32,0,25,0,14,0\n33,0,22,0,20,0,26,0,63,0,2,0\n24,0,17,0,18,0,47,0,81,0,88,0\n34,0,10,0,40,0,5,0,82,0,1,0\n36,0,89,0,3,0,37,0,19,0,8,0\n79,0,28,0,60,0,67,0,45,0,76,0\n43,0,70,0,35,0,71,0,53,0,83,0\n56,0,13,0,46,0,64,0,12,0,87,0\n66,0,42,0,61,0,39,0,6,0,52,0\n23,0,16,0,41,0,15,0,24,0,20,0\n9,0,77,0,58,0,10,0,62,0,27,0\n19,0,17,0,85,0,54,0,31,0,2,0\n75,0,3,0,28,0,50,0,14,0,51,0\n82,0,8,0,30,0,43,0,81,0,48,0\n83,0,67,0,21,0,18,0,72,0,46,0\n68,0,89,0,57,0,64,0,49,0,73,0\n66,0,44,0,53,0,12,0,40,0,38,0\n35,0,5,0,61,0,79,0,87,0,33,0\n74,0,42,0,39,0,71,0,65,0,55,0\n52,0,37,0,59,0,84,0,26,0,60,0\n86,0,36,0,4,0,63,0,70,0,32,0\n76,0,1,0,56,0,80,0,6,0,29,0\n78,0,22,0,7,0,11,0,13,0,25,0\n45,0,88,0,24,0,47,0,34,0,69,0\n87,0,50,0,27,0,68,0,17,0,67,0\n73,0,30,0,14,0,8,0,15,0,35,0\n46,0,38,0,60,0,31,0,42,0,81,0\n2,0,41,0,52,0,77,0,75,0,72,0\n4,0,83,0,64,0,53,0,37,0,76,0\n7,0,33,0,29,0,62,0,23,0,9,0\n36,0,34,0,61,0,3,0,13,0,26,0\n6,0,16,0,11,0,71,0,40,0,63,0\n22,0,57,0,66,0,21,0,69,0,10,0\n43,0,49,0,20,0,56,0,48,0,18,0\n45,0,25,0,85,0,80,0,55,0,44,0\n70,0,59,0,79,0,58,0,39,0,19,0\n12,0,78,0,47,0,51,0,5,0,74,0\n32,0,28,0,54,0,65,0,89,0,1,0\n88,0,84,0,76,0,86,0,82,0,71,0\n83,0,73,0,63,0,27,0,17,0,52,0\n41,0,30,0,6,0,13,0,38,0,4,0\n87,0,8,0,55,0,75,0,29,0,53,0\n40,0,80,0,58,0,24,0,7,0,43,0\n47,0,59,0,42,0,44,0,35,0,72,0\n9,0,45,0,50,0,26,0,65,0,16,0\n66,0,12,0,49,0,86,0,14,0,37,0\n10,0,33,0,64,0,11,0,15,0,70,0\n34,0,51,0,18,0,77,0,79,0,57,0\n56,0,25,0,78,0,61,0,88,0,21,0\n28,0,85,0,1,0,46,0,3,0,84,0\n39,0,22,0,68,0,82,0,36,0,60,0\n48,0,74,0,23,0,2,0,67,0,69,0\n5,0,20,0,19,0,81,0,62,0,32,0\n54,0,89,0,12,0,31,0,33,0,24,0\n58,0,52,0,11,0,35,0,80,0,76,0\n79,0,63,0,55,0,41,0,43,0,59,0\n86,0,73,0,61,0,29,0,16,0,34,0\n50,0,30,0,49,0,36,0,22,0,1,0\n38,0,45,0,14,0,64,0,39,0,2,0\n65,0,68,0,37,0,72,0,62,0,40,0\n44,0,4,0,75,0,78,0,67,0,9,0\n71,0,28,0,69,0,20,0,8,0,13,0\n27,0,89,0,77,0,66,0,48,0,84,0\n17,0,88,0,60,0,70,0,51,0,57,0\n82,0,21,0,6,0,74,0,19,0,26,0\n56,0,10,0,42,0,32,0,83,0,85,0\n47,0,7,0,87,0,3,0,31,0,15,0\n46,0,53,0,25,0,18,0,5,0,23,0\n81,0,71,0,35,0,54,0,9,0,34,0\n63,0,76,0,24,0,8,0,44,0,39,0\n12,0,30,0,17,0,11,0,80,0,61,0\n62,0,43,0,69,0,84,0,89,0,86,0\n13,0,74,0,45,0,57,0,52,0,33,0\n51,0,60,0,59,0,87,0,6,0,83,0\n85,0,67,0,55,0,14,0,5,0,58,0\n37,0,78,0,15,0,27,0,32,0,20,0\n40,0,66,0,56,0,50,0,81,0,26,0\n1,0,88,0,3,0,2,0,68,0,42,0\n29,0,19,0,77,0,4,0,46,0,22,0\n21,0,70,0,75,0,7,0,16,0,49,0\n65,0,38,0,48,0,25,0,10,0,79,0\n47,0,64,0,23,0,82,0,73,0,54,0\n72,0,41,0,31,0,18,0,28,0,53,0\n36,0,27,0,69,0,40,0,85,0,43,0\n83,0,57,0,2,0,61,0,55,0,89,0\n76,0,5,0,32,0,74,0,9,0,3,0\n67,0,71,0,19,0,80,0,86,0,15,0\n70,0,65,0,22,0,46,0,6,0,34,0\n38,0,62,0,8,0,49,0,52,0,47,0\n82,0,72,0,29,0,66,0,45,0,60,0\n25,0,44,0,58,0,68,0,87,0,30,0\n10,0,39,0,84,0,17,0,23,0,13,0\n31,0,48,0,63,0,75,0,64,0,56,0\n81,0,18,0,78,0,37,0,28,0,16,0\n7,0,26,0,41,0,35,0,12,0,1,0\n21,0,33,0,14,0,42,0,24,0,51,0\n53,0,79,0,73,0,36,0,11,0,77,0\n4,0,54,0,59,0,20,0,50,0,88,0\n58,0,84,0,8,0,32,0,22,0,72,0\n64,0,25,0,29,0,17,0,40,0,3,0\n18,0,89,0,6,0,68,0,55,0,23,0\n37,0,71,0,47,0,46,0,41,0,85,0\n43,0,44,0,16,0,2,0,33,0,60,0\n70,0,87,0,24,0,1,0,77,0,66,0\n14,0,9,0,82,0,73,0,20,0,56,0\n74,0,52,0,80,0,27,0,31,0,34,0\n67,0,51,0,62,0,30,0,54,0,63,0\n38,0,76,0,69,0,75,0,7,0,36,0\n57,0,39,0,15,0,4,0,12,0,48,0\n26,0,10,0,49,0,53,0,88,0,19,0\n5,0,21,0,11,0,65,0,28,0,59,0\n35,0,42,0,86,0,61,0,50,0,78,0\n13,0,83,0,81,0,45,0,79,0,1,0\n18,0,3,0,63,0,70,0,60,0,9,0\n64,0,72,0,43,0,6,0,74,0,44,0\n15,0,54,0,55,0,66,0,36,0,52,0\n47,0,77,0,33,0,40,0,39,0,14,0\n5,0,41,0,69,0,17,0,56,0,82,0\n26,0,46,0,51,0,8,0,7,0,68,0\n67,0,31,0,13,0,16,0,35,0,32,0\n73,0,87,0,80,0,28,0,38,0,88,0\n34,0,11,0,48,0,50,0,58,0,37,0\n81,0,23,0,12,0,21,0,76,0,59,0\n45,0,53,0,62,0,42,0,22,0,27,0\n75,0,65,0,19,0,57,0,61,0,20,0\n78,0,29,0,85,0,79,0,83,0,49,0\n2,0,71,0,89,0,25,0,86,0,30,0\n4,0,10,0,55,0,24,0,84,0,35,0\n"
  },
  {
    "path": "schedules/89_2.csv",
    "content": "42,0,74,0,71,0,38,0,28,0,47,0\n88,0,89,0,17,0,12,0,85,0,25,0\n73,0,45,0,48,0,22,0,78,0,5,0\n18,0,3,0,63,0,41,0,55,0,52,0\n54,0,19,0,32,0,24,0,21,0,43,0\n29,0,6,0,83,0,68,0,33,0,81,0\n26,0,8,0,69,0,56,0,36,0,34,0\n20,0,37,0,77,0,1,0,31,0,30,0\n59,0,23,0,79,0,49,0,9,0,62,0\n40,0,46,0,2,0,51,0,53,0,10,0\n70,0,84,0,15,0,60,0,61,0,65,0\n13,0,4,0,27,0,72,0,58,0,86,0\n57,0,50,0,87,0,67,0,44,0,66,0\n64,0,7,0,16,0,75,0,82,0,76,0\n35,0,14,0,36,0,80,0,39,0,11,0\n38,0,62,0,30,0,6,0,3,0,34,0\n55,0,43,0,47,0,25,0,48,0,83,0\n28,0,68,0,9,0,46,0,32,0,63,0\n33,0,61,0,89,0,23,0,19,0,69,0\n85,0,40,0,81,0,87,0,13,0,8,0\n10,0,50,0,41,0,27,0,71,0,77,0\n67,0,31,0,65,0,39,0,26,0,7,0\n72,0,53,0,5,0,80,0,44,0,88,0\n73,0,86,0,24,0,79,0,16,0,15,0\n22,0,4,0,49,0,14,0,75,0,29,0\n58,0,76,0,52,0,2,0,45,0,21,0\n42,0,11,0,64,0,70,0,1,0,59,0\n66,0,37,0,54,0,35,0,84,0,74,0\n82,0,12,0,56,0,57,0,20,0,60,0\n51,0,18,0,23,1,78,0,17,0,6,1\n"
  },
  {
    "path": "schedules/89_3.csv",
    "content": "7,0,25,0,40,0,59,0,46,0,70,0\n50,0,72,0,61,0,38,0,54,0,58,0\n65,0,85,0,48,0,35,0,17,0,22,0\n10,0,88,0,69,0,12,0,14,0,76,0\n84,0,81,0,27,0,24,0,47,0,1,0\n21,0,78,0,77,0,86,0,73,0,64,0\n89,0,33,0,2,0,80,0,37,0,63,0\n26,0,57,0,82,0,74,0,36,0,32,0\n45,0,28,0,83,0,49,0,87,0,56,0\n3,0,34,0,5,0,29,0,43,0,31,0\n8,0,55,0,9,0,15,0,44,0,23,0\n52,0,42,0,18,0,66,0,4,0,30,0\n16,0,51,0,13,0,62,0,68,0,71,0\n19,0,41,0,67,0,11,0,39,0,53,0\n79,0,6,0,60,0,75,0,20,0,57,0\n77,1,61,0,12,0,80,1,45,0,48,0\n72,1,85,0,26,0,3,0,73,0,46,0\n31,0,65,0,84,0,63,0,59,0,82,0\n56,0,22,0,30,0,86,0,69,0,81,0\n54,0,71,0,36,0,21,0,42,0,17,0\n23,0,52,0,50,0,25,0,27,0,19,0\n83,0,15,0,14,0,58,0,67,0,64,0\n79,0,44,0,51,0,76,0,47,0,40,0\n68,0,5,0,39,0,88,0,2,0,1,0\n11,0,6,0,62,0,74,0,66,0,10,0\n33,0,29,0,60,0,7,0,53,0,24,0\n78,0,16,0,38,0,75,0,18,0,8,0\n43,0,32,0,13,0,9,0,87,0,20,0\n89,0,28,0,55,0,34,0,41,0,4,0\n37,0,70,0,21,0,35,0,49,0,69,0\n56,0,27,0,3,0,67,0,48,0,2,0\n62,0,30,0,80,0,79,0,39,0,36,0\n54,0,74,0,64,0,33,0,45,0,22,0\n58,0,16,0,66,0,60,0,85,0,82,0\n46,0,32,0,10,0,5,0,44,0,77,0\n23,0,29,0,40,0,28,0,13,0,65,0\n75,0,19,0,76,0,84,0,72,0,89,0\n59,0,4,0,49,0,61,0,1,0,6,0\n15,0,87,0,63,0,25,0,78,0,41,0\n7,0,20,0,73,0,38,0,68,0,42,0\n70,0,43,0,24,0,57,0,17,0,14,0\n86,0,18,0,47,0,50,0,34,0,11,0\n35,0,8,0,71,0,81,0,26,0,52,0\n53,0,9,0,31,0,12,0,37,0,51,0\n88,0,83,0,80,0,55,0,77,0,72,0\n"
  },
  {
    "path": "schedules/89_4.csv",
    "content": "73,0,50,0,76,0,67,0,2,0,80,0\n44,0,36,0,68,0,40,0,57,0,54,0\n18,0,23,0,28,0,49,0,65,0,22,0\n66,0,7,0,41,0,13,0,5,0,77,0\n17,0,38,0,46,0,26,0,85,0,79,0\n35,0,58,0,42,0,15,0,11,0,24,0\n8,0,64,0,81,0,72,0,4,0,74,0\n27,0,87,0,29,0,47,0,14,0,51,0\n75,0,71,0,32,0,10,0,89,0,25,0\n9,0,39,0,43,0,88,0,60,0,34,0\n56,0,20,0,48,0,86,0,70,0,3,0\n21,0,30,0,31,0,83,0,84,0,63,0\n12,0,62,0,37,0,55,0,33,0,52,0\n45,0,61,0,82,0,16,0,6,0,59,0\n78,0,69,0,1,0,53,0,19,0,8,0\n36,0,5,0,65,0,38,0,42,0,87,0\n73,0,47,0,34,0,64,0,23,0,75,0\n40,0,15,0,72,0,29,0,9,0,76,0\n10,0,86,0,67,0,18,0,31,0,68,0\n26,0,12,0,77,0,83,0,28,0,20,0\n56,0,57,0,43,0,46,0,33,0,7,0\n17,0,16,0,88,0,41,0,44,0,70,0\n82,0,49,0,74,0,69,0,71,0,79,0\n22,0,78,0,32,0,52,0,61,0,84,0\n13,0,37,0,51,0,54,0,39,0,21,0\n1,0,6,0,14,0,55,0,35,0,80,0\n53,0,85,0,24,0,48,0,45,0,66,0\n89,0,60,0,58,0,59,0,50,0,4,0\n25,0,63,0,3,0,11,0,62,0,2,0\n19,0,30,0,10,0,81,0,27,0,73,0\n52,1,69,0,83,0,16,1,5,0,47,0\n20,1,42,0,49,0,75,1,44,0,43,0\n70,0,29,0,77,0,64,0,67,0,22,0\n34,0,8,0,36,0,76,0,71,0,66,0\n41,0,89,0,84,0,12,0,46,0,87,0\n61,0,18,0,55,0,53,0,74,0,57,0\n4,0,27,0,56,0,63,0,17,0,23,0\n45,0,11,0,13,0,32,0,80,0,60,0\n33,0,48,0,40,0,25,0,21,0,1,0\n35,0,19,0,54,0,28,0,86,0,38,0\n72,0,59,0,24,0,79,0,30,0,78,0\n85,0,9,0,62,0,31,0,50,0,65,0\n2,0,58,0,68,0,81,0,51,0,88,0\n14,0,7,0,26,0,15,0,37,0,82,0\n39,0,3,0,46,0,6,0,75,0,69,0\n33,0,11,0,87,0,44,0,18,0,83,0\n21,0,38,0,71,0,29,0,53,0,20,0\n22,0,79,0,63,0,19,0,60,0,42,0\n16,0,24,0,76,0,57,0,62,0,49,0\n17,0,48,0,68,0,34,0,30,0,12,0\n25,0,72,0,65,0,26,0,35,0,66,0\n80,0,77,0,52,0,8,0,58,0,43,0\n5,0,10,0,88,0,56,0,61,0,54,0\n4,0,31,0,28,0,3,0,13,0,78,0\n70,0,84,0,6,0,73,0,37,0,40,0\n59,0,2,0,74,0,47,0,32,0,39,0\n82,0,85,0,64,0,1,0,27,0,89,0\n15,0,50,0,23,0,51,0,41,0,36,0\n55,0,9,0,81,0,86,0,45,0,7,0\n67,0,52,0,20,0,14,0,16,0,75,0\n"
  },
  {
    "path": "schedules/89_5.csv",
    "content": "66,0,23,0,65,0,63,0,88,0,33,0\n54,0,11,0,55,0,2,0,29,0,51,0\n59,0,43,0,4,0,1,0,52,0,12,0\n15,0,83,0,46,0,18,0,21,0,79,0\n85,0,28,0,22,0,26,0,19,0,87,0\n13,0,50,0,76,0,82,0,24,0,30,0\n72,0,39,0,58,0,81,0,20,0,78,0\n60,0,49,0,89,0,3,0,80,0,32,0\n71,0,86,0,16,0,36,0,48,0,35,0\n34,0,27,0,38,0,7,0,70,0,77,0\n37,0,14,0,25,0,40,0,64,0,61,0\n84,0,56,0,68,0,73,0,9,0,17,0\n75,0,6,0,69,0,44,0,8,0,62,0\n57,0,45,0,41,0,74,0,67,0,10,0\n53,0,42,0,81,0,31,0,47,0,5,0\n51,0,89,0,58,0,26,0,83,0,33,0\n77,0,32,0,18,0,72,0,22,0,59,0\n82,0,78,0,65,0,3,0,61,0,38,0\n4,0,2,0,21,0,66,0,28,0,17,0\n50,0,62,0,64,0,71,0,56,0,15,0\n44,0,86,0,40,0,24,0,84,0,54,0\n52,0,5,0,9,0,16,0,41,0,87,0\n37,0,76,0,27,0,63,0,39,0,68,0\n7,0,48,0,29,0,49,0,19,0,12,0\n67,0,6,0,14,0,53,0,80,0,46,0\n73,0,88,0,45,0,55,0,1,0,75,0\n79,0,10,0,30,0,70,0,47,0,35,0\n57,0,36,0,34,0,20,0,43,0,25,0\n74,0,31,0,23,0,85,0,13,0,69,0\n8,0,60,0,52,0,42,0,11,0,86,0\n84,1,19,0,21,0,81,1,64,0,41,0\n71,1,39,0,33,0,18,1,5,0,6,0\n22,0,44,0,38,0,4,1,48,0,14,0\n83,0,10,0,17,0,63,0,82,0,29,0\n32,0,35,0,61,0,20,0,68,0,75,0\n77,0,43,0,62,0,65,0,9,0,37,0\n50,0,67,0,87,0,47,0,8,0,23,0\n16,0,46,0,57,0,76,0,26,0,88,0\n24,0,27,0,80,0,11,0,66,0,25,0\n59,0,49,0,31,0,55,0,40,0,34,0\n79,0,28,0,1,0,54,0,74,0,53,0\n3,0,13,0,73,0,15,0,42,0,2,0\n89,0,70,0,12,0,36,0,85,0,78,0\n72,0,30,0,7,0,45,0,56,0,51,0\n69,0,60,0,17,0,58,0,88,0,18,0\n82,0,19,0,47,0,71,0,44,0,57,0\n62,0,5,0,25,0,83,0,49,0,23,0\n39,0,64,0,75,0,9,0,86,0,34,0\n1,0,3,0,40,0,77,0,81,0,76,0\n26,0,59,0,54,0,6,0,48,0,37,0\n65,0,70,0,42,0,20,0,67,0,51,0\n41,0,12,0,22,0,53,0,73,0,60,0\n33,0,11,0,15,0,61,0,30,0,28,0\n36,0,31,0,63,0,7,0,80,0,52,0\n38,0,74,0,43,0,46,0,89,0,84,0\n35,0,55,0,56,0,85,0,27,0,14,0\n66,0,32,0,13,0,10,0,78,0,8,0\n45,0,29,0,58,0,4,0,79,0,87,0\n16,0,21,0,68,0,69,0,72,0,50,0\n24,0,9,0,48,0,2,0,57,0,33,0\n25,0,77,0,67,0,19,0,60,0,75,0\n12,0,26,0,81,0,17,0,62,0,80,0\n64,0,46,0,63,0,47,0,1,0,49,0\n74,0,71,0,3,0,34,0,83,0,30,0\n35,0,65,0,4,0,89,0,54,0,39,0\n11,0,18,0,20,0,76,0,38,0,31,0\n24,0,37,0,36,0,58,0,55,0,23,0\n2,0,88,0,5,0,84,0,14,0,72,0\n28,0,68,0,41,0,7,0,13,0,40,0\n87,0,69,0,53,0,56,0,70,0,66,0\n21,0,29,0,86,0,32,0,27,0,6,0\n79,0,42,0,78,0,16,0,22,0,43,0\n85,0,8,0,82,0,59,0,15,0,45,0\n10,0,61,0,52,0,44,0,50,0,73,0\n51,0,84,0,18,0,81,0,71,0,4,0\n"
  },
  {
    "path": "schedules/89_6.csv",
    "content": "17,0,37,0,77,0,16,0,22,0,19,0\n23,0,1,0,64,0,62,0,13,0,14,0\n79,0,71,0,32,0,5,0,85,0,84,0\n61,0,29,0,46,0,33,0,6,0,56,0\n47,0,75,0,81,0,15,0,59,0,82,0\n30,0,28,0,10,0,20,0,55,0,25,0\n4,0,87,0,53,0,66,0,31,0,34,0\n69,0,67,0,52,0,18,0,50,0,24,0\n49,0,3,0,76,0,88,0,21,0,9,0\n27,0,78,0,2,0,44,0,11,0,89,0\n63,0,83,0,65,0,68,0,40,0,39,0\n72,0,38,0,41,0,70,0,43,0,57,0\n86,0,51,0,45,0,12,0,48,0,8,0\n26,0,58,0,80,0,35,0,7,0,54,0\n42,0,60,0,36,0,74,0,73,0,22,0\n18,0,75,0,4,0,25,0,9,0,33,0\n13,0,88,0,19,0,44,0,29,0,66,0\n31,0,32,0,24,0,2,0,83,0,21,0\n79,0,69,0,27,0,63,0,46,0,15,0\n30,0,78,0,23,0,86,0,71,0,81,0\n12,0,82,0,65,0,43,0,62,0,54,0\n16,0,80,0,70,0,56,0,5,0,53,0\n11,0,26,0,87,0,73,0,67,0,6,0\n36,0,34,0,58,0,85,0,1,0,47,0\n20,0,14,0,59,0,49,0,57,0,50,0\n55,0,52,0,64,0,72,0,3,0,48,0\n84,0,38,0,68,0,37,0,8,0,74,0\n35,0,76,0,45,0,40,0,42,0,10,0\n60,0,7,0,77,0,51,0,61,0,41,0\n89,0,28,0,26,0,39,0,17,0,70,0\n4,0,44,0,54,0,1,0,73,0,30,0\n12,0,79,0,2,0,88,0,75,0,34,0\n46,0,14,0,22,0,83,0,25,0,11,0\n16,0,31,0,64,0,67,0,36,0,57,0\n74,0,49,0,5,0,24,0,82,0,86,0\n13,0,40,0,72,0,77,0,59,0,69,0\n41,0,85,0,39,0,42,0,33,0,52,0\n28,0,87,0,56,0,18,0,47,0,68,0\n66,0,17,0,3,0,10,0,84,0,61,0\n65,0,27,0,8,0,20,0,35,0,32,0\n76,0,15,0,50,0,37,0,89,0,55,0\n71,0,48,0,62,0,38,0,7,0,53,0\n29,0,60,0,9,0,45,0,23,0,58,0\n21,0,19,0,6,0,43,0,80,0,78,0\n81,0,51,0,11,0,63,0,42,0,16,0\n39,0,86,0,61,0,13,0,2,0,22,0\n1,0,56,0,40,0,82,0,41,0,8,0\n36,0,84,0,55,0,35,0,12,0,4,0\n14,0,53,0,18,0,77,0,3,0,65,0\n68,0,7,0,23,0,31,0,52,0,46,0\n73,0,25,0,45,0,85,0,50,0,27,0\n87,0,59,0,76,0,80,0,32,0,17,0\n9,0,72,0,30,0,26,0,15,0,74,0\n33,0,88,0,89,0,64,0,51,0,69,0\n29,0,70,0,24,0,78,0,20,0,54,0\n43,0,66,0,63,0,37,0,71,0,75,0\n19,0,62,0,83,0,60,0,79,0,28,0\n5,0,48,0,81,0,21,0,57,0,58,0\n38,0,47,0,10,0,67,0,49,0,44,0\n6,0,18,0,7,0,34,0,59,0,39,0\n12,0,9,0,22,0,50,0,32,0,64,0\n69,0,84,0,20,0,26,0,82,0,16,0\n37,0,46,0,88,0,45,0,41,0,65,0\n70,0,23,0,79,0,3,0,8,0,87,0\n57,0,28,0,66,0,78,0,52,0,51,0\n75,0,86,0,35,0,17,0,53,0,44,0\n11,0,19,0,40,0,30,0,36,0,5,0\n67,0,34,0,54,0,27,0,71,0,74,0\n47,0,6,0,83,0,4,0,77,0,76,0\n25,0,1,0,21,0,29,0,89,0,42,0\n33,0,73,0,15,0,38,0,13,0,80,0\n62,0,58,0,49,0,72,0,61,0,63,0\n14,0,2,0,68,0,55,0,81,0,60,0\n48,0,43,0,85,0,10,0,31,0,56,0\n24,0,46,0,57,0,40,0,9,0,71,0\n51,0,50,0,39,0,5,0,4,0,23,0\n11,0,84,0,41,0,86,0,64,0,18,0\n80,0,8,0,29,0,69,0,83,0,30,0\n13,0,37,0,53,0,20,0,36,0,79,0\n88,0,22,0,67,0,70,0,62,0,59,0\n82,0,58,0,77,0,33,0,68,0,10,0\n89,0,85,0,72,0,75,0,54,0,6,0\n43,0,44,0,7,0,28,0,3,0,81,0\n74,0,63,0,78,0,1,0,48,0,35,0\n26,0,45,0,32,0,47,0,55,0,66,0\n52,0,56,0,21,0,65,0,60,0,17,0\n61,0,34,0,73,0,16,0,24,0,76,0\n25,0,15,0,49,0,87,0,2,0,19,0\n31,0,12,0,42,0,14,0,27,0,38,0\n"
  },
  {
    "path": "schedules/89_7.csv",
    "content": "71,0,65,0,38,0,9,0,72,0,64,0\n79,0,44,0,2,0,39,0,7,0,61,0\n84,0,47,0,68,0,48,0,37,0,28,0\n88,0,41,0,6,0,23,0,52,0,25,0\n58,0,42,0,86,0,31,0,49,0,85,0\n34,0,30,0,29,0,54,0,51,0,46,0\n3,0,74,0,26,0,10,0,50,0,4,0\n77,0,43,0,73,0,13,0,36,0,45,0\n11,0,63,0,53,0,33,0,35,0,60,0\n83,0,75,0,19,0,14,0,78,0,16,0\n69,0,1,0,87,0,18,0,5,0,27,0\n59,0,40,0,24,0,22,0,8,0,17,0\n15,0,12,0,81,0,57,0,82,0,66,0\n20,0,67,0,56,0,70,0,76,0,62,0\n21,0,32,0,89,0,80,0,55,0,39,0\n49,0,73,0,7,0,33,0,46,0,23,0\n53,0,85,0,37,0,30,0,52,0,50,0\n88,0,31,0,44,0,5,0,64,0,75,0\n45,0,42,0,68,0,10,0,14,0,11,0\n40,0,57,0,60,0,36,0,69,0,74,0\n22,0,27,0,71,0,43,0,56,0,15,0\n6,0,67,0,72,0,81,0,21,0,79,0\n13,0,17,0,76,0,89,0,29,0,86,0\n18,0,34,0,26,0,55,0,47,0,20,0\n54,0,25,0,80,0,82,0,4,0,9,0\n70,0,78,0,8,0,77,0,51,0,61,0\n38,0,83,0,24,0,3,0,84,0,2,0\n32,0,28,0,19,0,87,0,35,0,12,0\n48,0,1,0,59,0,65,0,62,0,63,0\n66,0,16,0,69,0,58,0,41,0,73,0\n39,1,10,0,64,0,46,0,18,0,56,0\n34,0,23,0,57,0,72,0,53,0,31,0\n22,0,11,0,86,0,36,0,80,0,50,0\n45,0,61,0,55,0,38,0,5,0,82,0\n87,0,25,0,51,0,13,0,37,0,83,0\n4,0,60,0,59,0,75,0,68,0,12,0\n74,0,88,0,17,0,20,0,2,0,54,0\n3,0,66,0,6,0,63,0,9,0,89,0\n27,0,29,0,40,0,52,0,48,0,79,0\n65,0,84,0,85,0,15,0,76,0,78,0\n62,0,21,0,42,0,26,0,7,0,35,0\n41,0,1,0,14,0,32,0,70,0,81,0\n16,0,49,0,30,0,24,0,77,0,71,0\n8,0,28,0,33,0,58,0,67,0,44,0\n47,0,43,0,50,0,19,0,66,0,60,0\n56,0,55,0,31,0,69,0,51,0,68,0\n63,0,2,0,46,0,72,0,5,0,25,0\n76,0,22,0,82,0,73,0,88,0,26,0\n54,0,14,0,53,0,21,0,87,0,64,0\n65,0,12,0,13,0,70,0,34,0,27,0\n62,0,8,0,18,0,57,0,84,0,86,0\n45,0,35,0,49,0,3,0,1,0,39,0\n52,0,81,0,80,0,28,0,20,0,83,0\n74,0,58,0,24,0,61,0,23,0,19,0\n10,0,77,0,9,0,32,0,29,0,37,0\n75,0,67,0,47,0,7,0,30,0,40,0\n33,0,48,0,78,0,4,0,41,0,36,0\n16,0,17,0,85,0,43,0,6,0,11,0\n44,0,89,0,38,0,15,0,59,0,42,0\n71,0,46,0,55,0,79,0,8,0,66,0\n82,0,21,0,2,0,31,0,18,0,28,0\n52,0,3,0,69,0,77,0,62,0,22,0\n53,0,19,0,29,0,65,0,49,0,68,0\n74,0,86,0,35,0,64,0,67,0,37,0\n24,0,7,0,36,0,20,0,85,0,9,0\n25,0,60,0,14,0,38,0,39,0,34,0\n80,0,15,0,70,0,30,0,87,0,73,0\n26,0,5,0,83,0,79,0,58,0,59,0\n13,0,72,0,78,0,56,0,40,0,54,0\n51,0,44,0,12,0,47,0,16,0,10,0\n81,0,43,0,61,0,48,0,89,0,88,0\n23,0,11,0,4,0,32,0,71,0,76,0\n84,0,6,0,50,0,33,0,27,0,45,0\n57,0,63,0,17,0,42,0,75,0,41,0\n1,0,52,0,15,0,2,0,34,0,86,0\n72,0,55,0,3,0,70,0,85,0,60,0\n46,0,22,0,21,0,44,0,19,0,37,0\n78,0,38,0,31,0,73,0,47,0,29,0\n32,0,83,0,48,0,8,0,82,0,69,0\n50,0,7,0,81,0,16,0,18,0,65,0\n63,0,36,0,51,0,28,0,23,0,14,0\n4,0,62,0,13,0,53,0,24,0,66,0\n9,0,26,0,33,0,56,0,1,0,17,0\n59,0,45,0,80,0,88,0,67,0,71,0\n12,0,39,0,5,0,74,0,42,0,30,0\n11,0,75,0,79,0,54,0,49,0,84,0\n10,0,87,0,61,0,20,0,57,0,6,0\n77,0,41,0,64,0,27,0,68,0,89,0\n35,0,76,0,40,0,43,0,25,0,58,0\n9,0,31,0,50,0,15,0,14,0,8,0\n52,0,26,0,16,0,46,0,13,0,38,0\n62,0,85,0,39,0,71,0,19,0,51,0\n79,0,47,0,69,0,88,0,70,0,86,0\n6,0,34,0,5,0,49,0,22,0,78,0\n60,0,64,0,32,0,42,0,84,0,61,0\n56,0,11,0,58,0,77,0,21,0,12,0\n27,0,81,0,36,0,53,0,44,0,17,0\n4,0,18,0,83,0,63,0,40,0,45,0\n48,0,35,0,23,0,80,0,10,0,75,0\n41,0,2,0,43,0,29,0,67,0,55,0\n57,0,33,0,30,0,65,0,3,0,25,0\n68,0,66,0,7,0,87,0,74,0,76,0\n73,0,54,0,28,0,89,0,24,0,1,0\n20,0,37,0,82,0,59,0,72,0,39,0\n"
  },
  {
    "path": "schedules/89_8.csv",
    "content": "10,0,49,0,33,0,27,0,78,0,61,0\n89,0,34,0,50,0,73,0,48,0,17,0\n85,0,83,0,84,0,70,0,22,0,39,0\n25,0,86,0,72,0,7,0,18,0,52,0\n5,0,11,0,23,0,46,0,26,0,41,0\n79,0,13,0,87,0,35,0,21,0,67,0\n64,0,38,0,65,0,16,0,36,0,47,0\n14,0,71,0,68,0,62,0,24,0,1,0\n54,0,37,0,42,0,20,0,77,0,74,0\n58,0,59,0,6,0,51,0,44,0,55,0\n80,0,30,0,63,0,28,0,31,0,45,0\n9,0,75,0,81,0,76,0,40,0,12,0\n57,0,88,0,82,0,32,0,4,0,56,0\n66,0,8,0,19,0,60,0,15,0,3,0\n69,0,29,0,53,0,43,0,2,0,7,0\n5,0,24,0,16,0,72,0,79,0,48,0\n18,0,84,0,44,0,74,0,27,0,87,0\n17,0,13,0,6,0,61,0,47,0,80,0\n52,0,67,0,64,0,23,0,55,0,45,0\n39,0,57,0,49,0,77,0,9,0,68,0\n10,0,73,0,15,0,42,0,22,0,30,0\n65,0,40,0,88,0,31,0,46,0,85,0\n76,0,43,0,78,0,58,0,62,0,4,0\n56,0,59,0,81,0,8,0,26,0,36,0\n53,0,41,0,63,0,19,0,86,0,14,0\n12,0,37,0,89,0,21,0,28,0,33,0\n70,0,75,0,11,0,2,0,51,0,20,0\n71,0,50,0,3,0,32,0,54,0,29,0\n69,0,82,0,83,0,60,0,25,0,38,0\n35,0,34,0,57,0,66,0,1,0,61,0\n36,1,46,0,45,0,62,1,79,0,10,0\n53,0,48,0,77,0,26,0,6,0,67,0\n27,0,23,0,65,0,58,0,80,0,39,0\n55,0,14,0,85,0,9,0,5,0,13,0\n16,0,44,0,41,0,75,0,37,0,8,0\n21,0,60,0,84,0,63,0,81,0,4,0\n25,0,17,0,66,0,64,0,12,0,56,0\n71,0,86,0,31,0,15,0,33,0,2,0\n7,0,28,0,35,0,40,0,42,0,70,0\n47,0,74,0,11,0,49,0,83,0,3,0\n30,0,29,0,76,0,68,0,52,0,87,0\n24,0,38,0,89,0,54,0,59,0,88,0\n69,0,73,0,1,0,19,0,78,0,20,0\n32,0,51,0,22,0,34,0,43,0,72,0\n18,0,66,0,37,0,50,0,82,0,46,0\n40,0,58,0,84,0,10,0,48,0,57,0\n9,0,44,0,11,0,63,0,42,0,56,0\n60,0,33,0,29,0,80,0,26,0,14,0\n15,0,27,0,54,0,85,0,21,0,25,0\n88,0,68,0,19,0,16,0,17,0,55,0\n38,0,71,0,74,0,13,0,53,0,75,0\n87,0,5,0,28,0,83,0,32,0,59,0\n36,0,4,0,34,0,67,0,86,0,49,0\n43,0,18,0,35,0,39,0,73,0,6,0\n70,0,64,0,81,0,69,0,30,0,50,0\n20,0,31,0,23,0,22,0,8,0,24,0\n79,0,12,0,78,0,7,0,3,0,51,0\n62,0,65,0,61,0,89,0,82,0,52,0\n41,0,72,0,2,0,77,0,47,0,76,0\n1,0,32,0,17,0,45,0,44,0,33,0\n56,0,49,0,53,0,58,0,21,0,18,0\n73,0,86,0,87,0,70,0,38,0,55,0\n46,0,80,0,20,0,81,0,67,0,25,0\n7,0,6,0,27,0,8,0,57,0,83,0\n14,0,31,0,39,0,3,0,36,0,82,0\n16,0,51,0,89,0,71,0,60,0,76,0\n24,0,43,0,30,0,11,0,65,0,84,0\n4,0,68,0,13,0,48,0,28,0,54,0\n45,0,42,0,59,0,78,0,29,0,66,0\n37,0,52,0,19,0,34,0,2,0,40,0\n26,0,1,0,88,0,50,0,10,0,75,0\n77,0,22,0,63,0,69,0,12,0,5,0\n72,0,62,0,74,0,85,0,35,0,23,0\n79,0,64,0,41,0,15,0,9,0,61,0\n47,0,70,0,46,0,68,0,89,0,53,0\n39,0,7,0,71,0,4,0,87,0,66,0\n84,0,73,0,54,0,49,0,52,0,16,0\n45,0,21,0,34,0,76,0,38,0,6,0\n25,0,59,0,13,0,10,0,11,0,77,0\n28,0,27,0,22,0,3,0,1,0,81,0\n19,0,42,0,31,0,57,0,75,0,72,0\n9,0,33,0,62,0,69,0,67,0,88,0\n60,0,2,0,50,0,65,0,44,0,5,0\n85,0,58,0,32,0,41,0,36,0,12,0\n40,0,18,0,26,0,78,0,24,0,64,0\n15,0,47,0,23,0,51,0,48,0,63,0\n82,0,20,0,86,0,17,0,35,0,29,0\n80,0,55,0,8,0,79,0,43,0,74,0\n61,0,14,0,37,0,30,0,83,0,56,0\n81,0,7,0,44,0,31,0,68,0,34,0\n52,0,36,0,70,0,66,0,88,0,5,0\n6,0,60,0,64,0,87,0,49,0,62,0\n22,0,21,0,2,0,16,0,57,0,26,0\n47,0,28,0,50,0,9,0,19,0,58,0\n10,0,69,0,76,0,74,0,39,0,17,0\n72,0,8,0,30,0,89,0,40,0,4,0\n20,0,14,0,65,0,59,0,79,0,18,0\n43,0,45,0,82,0,27,0,12,0,71,0\n23,0,32,0,61,0,25,0,42,0,53,0\n77,0,46,0,56,0,38,0,15,0,29,0\n83,0,41,0,55,0,54,0,33,0,35,0\n13,0,51,0,1,0,37,0,84,0,86,0\n24,0,67,0,3,0,73,0,63,0,75,0\n78,0,80,0,48,0,11,0,85,0,87,0\n8,0,62,0,12,0,18,0,47,0,34,0\n70,0,57,0,17,0,23,0,59,0,71,0\n29,0,4,0,9,0,74,0,6,0,65,0\n79,0,19,0,38,0,44,0,22,0,49,0\n83,0,26,0,15,0,13,0,58,0,89,0\n36,0,73,0,72,0,68,0,60,0,37,0\n5,0,30,0,67,0,54,0,82,0,1,0\n3,0,76,0,53,0,64,0,20,0,85,0\n24,0,80,0,10,0,7,0,41,0,56,0\n61,0,51,0,77,0,50,0,21,0,31,0\n66,0,16,0,28,0,69,0,14,0,11,0\n25,0,2,0,35,0,45,0,88,0,84,0\n75,0,78,0,32,0,86,0,39,0,46,0\n52,0,43,0,48,0,33,0,81,0,42,0\n55,0,40,0,36,0,63,0,27,0,62,0\n"
  },
  {
    "path": "schedules/89_9.csv",
    "content": "4,0,26,0,43,0,12,0,1,0,85,0\n9,0,56,0,48,0,75,0,76,0,83,0\n3,0,8,0,78,0,13,0,37,0,14,0\n41,0,16,0,88,0,72,0,47,0,62,0\n57,0,65,0,66,0,28,0,70,0,33,0\n64,0,60,0,50,0,11,0,15,0,45,0\n55,0,82,0,40,0,34,0,29,0,30,0\n59,0,31,0,81,0,17,0,46,0,20,0\n21,0,44,0,18,0,24,0,73,0,87,0\n23,0,10,0,36,0,5,0,74,0,35,0\n2,0,54,0,86,0,32,0,79,0,71,0\n6,0,53,0,38,0,68,0,63,0,89,0\n84,0,25,0,77,0,42,0,39,0,27,0\n80,0,19,0,58,0,7,0,61,0,52,0\n67,0,69,0,49,0,51,0,22,0,34,0\n64,0,29,0,18,0,66,0,13,0,46,0\n78,0,21,0,74,0,16,0,81,0,82,0\n57,0,40,0,5,0,9,0,20,0,44,0\n56,0,32,0,41,0,31,0,6,0,8,0\n24,0,59,0,39,0,14,0,36,0,75,0\n25,0,72,0,68,0,58,0,7,0,60,0\n38,0,11,0,84,0,87,0,43,0,52,0\n12,0,77,0,35,0,54,0,80,0,62,0\n70,0,51,0,83,0,61,0,45,0,53,0\n71,0,30,0,89,0,17,0,10,0,22,0\n27,0,48,0,47,0,26,0,28,0,50,0\n4,0,73,0,2,0,23,0,55,0,69,0\n33,0,19,0,85,0,37,0,67,0,88,0\n49,0,42,0,76,0,63,0,79,0,1,0\n86,0,3,0,39,0,15,0,65,0,82,0\n53,1,62,0,25,0,52,1,81,0,64,0\n71,1,34,0,7,0,31,0,77,0,83,0\n78,0,47,0,46,0,30,0,12,0,6,0\n24,0,50,0,66,0,10,0,41,0,2,0\n26,0,70,0,36,0,69,0,38,0,29,0\n37,0,40,0,4,0,80,0,76,0,51,0\n45,0,32,0,17,0,88,0,73,0,3,0\n58,0,57,0,35,0,18,0,67,0,86,0\n9,0,55,0,84,0,60,0,21,0,65,0\n87,0,79,0,61,0,75,0,74,0,68,0\n14,0,56,0,20,0,19,0,42,0,11,0\n54,0,23,0,48,0,85,0,8,0,49,0\n5,0,1,0,27,0,59,0,89,0,16,0\n13,0,22,0,44,0,15,0,72,0,33,0\n63,0,28,0,88,0,43,0,24,0,35,0\n4,0,25,0,70,0,50,0,67,0,31,0\n65,0,62,0,45,0,78,0,26,0,68,0\n29,0,21,0,75,0,19,0,47,0,10,0\n30,0,58,0,42,0,9,0,51,0,2,0\n79,0,55,0,27,0,11,0,3,0,36,0\n48,0,71,0,64,0,84,0,57,0,59,0\n8,0,52,0,74,0,77,0,15,0,63,0\n22,0,61,0,20,0,85,0,86,0,38,0\n80,0,73,0,14,0,60,0,41,0,5,0\n54,0,56,0,17,0,72,0,34,0,53,0\n1,0,32,0,28,0,13,0,82,0,7,0\n33,0,81,0,43,0,18,0,23,0,89,0\n12,0,83,0,40,0,49,0,87,0,39,0\n6,0,66,0,69,0,44,0,37,0,16,0\n76,0,24,0,26,0,46,0,11,0,22,0\n51,0,73,0,38,0,48,0,15,0,62,0\n42,0,67,0,3,0,21,0,59,0,68,0\n27,0,70,0,8,0,72,0,75,0,82,0\n31,0,86,0,5,0,64,0,63,0,30,0\n89,0,85,0,14,0,47,0,52,0,2,0\n81,0,44,0,49,0,71,0,36,0,45,0\n12,0,20,0,10,0,69,0,13,0,76,0\n57,0,41,0,87,0,78,0,4,0,34,0\n74,0,83,0,28,0,19,0,84,0,54,0\n17,0,37,0,50,0,7,0,55,0,18,0\n9,0,1,0,88,0,25,0,80,0,23,0\n66,0,39,0,60,0,43,0,53,0,56,0\n33,0,46,0,16,0,61,0,32,0,40,0\n6,0,29,0,65,0,77,0,79,0,58,0\n35,0,48,0,14,0,4,0,22,0,21,0\n76,0,44,0,34,0,2,0,8,0,19,0\n75,0,15,0,85,0,42,0,55,0,78,0\n30,0,81,0,11,0,7,0,88,0,70,0\n80,0,10,0,53,0,18,0,3,0,28,0\n52,0,16,0,25,0,17,0,57,0,36,0\n39,0,58,0,63,0,41,0,46,0,69,0\n6,0,40,0,71,0,74,0,1,0,24,0\n9,0,68,0,49,0,77,0,73,0,43,0\n47,0,82,0,83,0,23,0,66,0,38,0\n72,0,61,0,67,0,12,0,84,0,89,0\n37,0,29,0,45,0,87,0,31,0,54,0\n56,0,79,0,50,0,62,0,5,0,33,0\n35,0,27,0,32,0,64,0,20,0,65,0\n26,0,13,0,59,0,60,0,51,0,86,0\n16,0,19,0,15,0,4,0,9,0,24,0\n46,0,44,0,52,0,10,0,83,0,1,0\n17,0,41,0,12,0,68,0,23,0,28,0\n47,0,63,0,11,0,25,0,37,0,71,0\n58,0,22,0,84,0,66,0,8,0,45,0\n79,0,72,0,38,0,31,0,40,0,78,0\n34,0,85,0,80,0,50,0,32,0,39,0\n30,0,60,0,75,0,35,0,33,0,69,0\n55,0,81,0,61,0,26,0,5,0,6,0\n27,0,62,0,14,0,76,0,57,0,29,0\n65,0,67,0,13,0,36,0,48,0,53,0\n7,0,43,0,51,0,54,0,20,0,3,0\n86,0,21,0,87,0,88,0,56,0,77,0\n73,0,64,0,89,0,70,0,74,0,42,0\n18,0,82,0,2,0,59,0,49,0,25,0\n32,0,5,0,52,0,12,0,24,0,37,0\n78,0,28,0,61,0,71,0,44,0,29,0\n1,0,31,0,68,0,48,0,55,0,19,0\n63,0,75,0,3,0,84,0,50,0,81,0\n53,0,85,0,87,0,7,0,46,0,27,0\n67,0,11,0,10,0,8,0,73,0,39,0\n15,0,59,0,6,0,76,0,54,0,35,0\n88,0,69,0,79,0,83,0,64,0,14,0\n42,0,41,0,65,0,40,0,18,0,22,0\n49,0,4,0,58,0,38,0,74,0,56,0\n45,0,47,0,33,0,34,0,86,0,9,0\n72,0,23,0,26,0,30,0,21,0,57,0\n82,0,62,0,36,0,89,0,20,0,60,0\n2,0,13,0,80,0,70,0,16,0,43,0\n51,0,77,0,5,0,66,0,17,0,75,0\n19,0,12,0,22,0,81,0,73,0,27,0\n64,0,37,0,3,0,1,0,56,0,61,0\n55,0,46,0,28,0,25,0,8,0,38,0\n53,0,59,0,23,0,44,0,32,0,58,0\n18,0,69,0,54,0,62,0,9,0,11,0\n39,0,68,0,88,0,13,0,52,0,4,0\n78,0,7,0,89,0,49,0,66,0,86,0\n71,0,87,0,51,0,50,0,16,0,65,0\n43,0,15,0,17,0,40,0,14,0,67,0\n63,0,36,0,83,0,33,0,80,0,21,0\n76,0,77,0,45,0,30,0,85,0,41,0\n20,0,74,0,29,0,2,0,48,0,72,0\n24,0,31,0,60,0,42,0,47,0,57,0\n34,0,84,0,10,0,6,0,70,0,79,0\n82,0,35,0,52,0,26,0,53,0,71,0\n"
  },
  {
    "path": "schedules/8_1.csv",
    "content": "2,0,4,0,8,0,5,0,3,0,1,0\n7,0,2,1,1,1,6,0,3,1,4,1\n"
  },
  {
    "path": "schedules/8_10.csv",
    "content": "6,0,7,0,5,0,2,0,1,0,8,0\n3,0,2,0,6,0,5,0,4,0,1,0\n8,0,5,0,4,0,1,0,3,0,7,0\n2,0,7,1,4,1,6,1,8,1,3,0\n7,0,8,0,1,0,4,0,5,0,2,0\n3,0,7,0,5,0,6,0,2,0,4,0\n3,0,5,0,8,0,1,0,6,0,7,0\n8,0,1,0,2,0,6,0,3,0,4,0\n5,0,6,0,1,0,2,0,8,0,3,0\n8,0,4,0,6,0,7,0,2,0,5,0\n4,0,7,0,2,0,1,0,3,0,5,0\n4,0,1,0,3,0,7,0,8,0,6,0\n6,0,1,0,2,0,8,0,4,0,7,0\n3,0,4,0,7,0,5,0,6,0,8,0\n"
  },
  {
    "path": "schedules/8_11.csv",
    "content": "8,0,6,0,1,0,7,0,2,0,5,0\n3,0,5,0,2,0,4,0,1,0,8,0\n2,0,6,0,4,0,8,0,3,0,7,0\n3,1,6,0,4,0,5,1,1,0,7,0\n3,0,4,0,1,0,2,0,8,0,6,0\n5,0,3,0,6,0,7,0,4,0,2,0\n7,0,1,0,6,0,3,0,8,0,5,0\n5,0,7,0,4,0,2,0,8,0,1,0\n5,0,2,0,8,0,3,0,7,0,4,0\n1,0,7,0,5,0,6,0,2,0,3,0\n8,0,6,0,7,0,1,0,4,0,2,0\n4,0,3,0,8,0,6,0,5,0,1,0\n8,0,2,0,7,0,1,0,5,0,3,0\n4,0,5,0,8,0,6,0,7,0,3,0\n2,0,1,0,3,0,6,0,4,0,5,0\n"
  },
  {
    "path": "schedules/8_12.csv",
    "content": "2,0,5,0,8,0,4,0,3,0,7,0\n3,0,1,0,7,0,6,0,2,0,4,0\n8,0,3,0,6,0,5,0,1,0,7,0\n4,0,6,0,5,0,1,0,8,0,2,0\n7,0,1,0,8,0,2,0,3,0,5,0\n3,0,8,0,6,0,4,0,5,0,2,0\n1,0,2,0,4,0,7,0,6,0,5,0\n3,0,1,0,4,0,8,0,7,0,6,0\n5,0,7,0,3,0,4,0,6,0,2,0\n1,0,7,0,2,0,8,0,4,0,3,0\n5,0,4,0,8,0,1,0,6,0,3,0\n2,0,7,0,6,0,5,0,8,0,1,0\n3,0,2,0,5,0,8,0,4,0,1,0\n7,0,8,0,4,0,6,0,5,0,1,0\n6,0,4,0,7,0,3,0,2,0,8,0\n6,0,5,0,1,0,2,0,7,0,3,0\n"
  },
  {
    "path": "schedules/8_13.csv",
    "content": "6,0,4,0,2,0,5,0,3,0,7,0\n1,0,2,0,6,0,4,0,8,0,5,0\n7,0,1,0,6,0,4,0,8,0,3,0\n1,1,3,0,5,1,7,1,2,1,8,0\n3,0,5,0,1,0,7,0,6,0,2,0\n7,0,5,0,4,0,8,0,3,0,6,0\n1,0,4,0,3,0,2,0,8,0,5,0\n1,0,2,0,8,0,6,0,7,0,4,0\n1,0,2,0,5,0,7,0,6,0,4,0\n3,0,5,0,6,0,8,0,7,0,1,0\n8,0,3,0,7,0,2,0,4,0,1,0\n3,0,6,0,8,0,5,0,4,0,2,0\n5,0,7,0,2,0,4,0,1,0,8,0\n6,0,5,0,4,0,3,0,1,0,7,0\n8,0,6,0,5,0,3,0,2,0,7,0\n4,0,8,0,1,0,2,0,6,0,3,0\n2,0,4,0,3,0,5,0,1,0,7,0\n2,0,7,0,8,0,6,0,1,0,5,0\n"
  },
  {
    "path": "schedules/8_14.csv",
    "content": "5,0,7,0,6,0,2,0,8,0,1,0\n4,0,8,0,5,0,3,0,1,0,7,0\n2,0,3,0,5,0,4,0,6,0,7,0\n4,1,1,0,6,0,3,0,2,1,8,0\n5,0,4,0,1,0,3,0,7,0,6,0\n2,0,5,0,7,0,8,0,1,0,3,0\n4,0,2,0,3,0,6,0,8,0,5,0\n1,0,6,0,2,0,4,0,7,0,8,0\n6,0,3,0,4,0,5,0,2,0,1,0\n8,0,6,0,2,0,7,0,5,0,3,0\n8,0,7,0,5,0,4,0,1,0,6,0\n7,0,3,0,1,0,8,0,4,0,2,0\n3,0,2,0,4,0,8,0,5,0,1,0\n7,0,2,0,8,0,6,0,4,0,5,0\n7,0,1,0,4,0,6,0,3,0,2,0\n6,0,8,0,7,0,1,0,5,0,3,0\n1,0,4,0,8,0,2,0,5,0,6,0\n3,0,6,0,8,0,7,0,2,0,4,0\n5,0,3,0,4,0,1,0,7,0,2,0\n"
  },
  {
    "path": "schedules/8_2.csv",
    "content": "3,0,6,0,7,0,8,0,4,0,1,0\n2,0,1,0,3,0,6,0,5,0,4,0\n5,0,8,0,3,1,7,0,2,0,4,1\n"
  },
  {
    "path": "schedules/8_3.csv",
    "content": "7,0,6,0,5,0,1,0,4,0,8,0\n6,0,2,0,1,0,3,0,7,0,4,0\n4,0,5,0,2,0,8,0,3,0,6,0\n5,0,1,0,3,0,2,0,8,0,7,0\n"
  },
  {
    "path": "schedules/8_4.csv",
    "content": "6,0,7,0,4,0,5,0,8,0,1,0\n3,0,1,0,4,0,7,0,2,0,5,0\n2,0,6,0,1,0,7,0,3,0,8,0\n5,1,6,1,8,0,4,1,2,1,3,0\n4,0,2,0,5,0,1,0,6,0,7,0\n3,0,5,0,6,0,8,0,4,0,2,0\n"
  },
  {
    "path": "schedules/8_5.csv",
    "content": "5,0,8,0,2,0,4,0,7,0,6,0\n4,0,5,0,1,0,3,0,8,0,6,0\n6,0,1,0,2,0,7,0,3,0,5,0\n3,0,8,1,4,0,7,1,2,0,1,0\n2,0,4,0,3,0,8,0,7,0,5,0\n6,0,2,0,7,0,1,0,4,0,8,0\n5,0,6,0,8,0,1,0,3,0,7,0\n"
  },
  {
    "path": "schedules/8_6.csv",
    "content": "8,0,6,0,3,0,5,0,7,0,1,0\n4,0,5,0,6,0,2,0,8,0,7,0\n3,0,5,0,1,0,4,0,2,0,7,0\n3,0,2,0,4,0,8,0,1,0,6,0\n5,0,4,0,8,0,1,0,3,0,6,0\n2,0,1,0,4,0,7,0,8,0,5,0\n7,0,3,0,8,0,6,0,2,0,5,0\n6,0,7,0,2,0,1,0,4,0,3,0\n"
  },
  {
    "path": "schedules/8_7.csv",
    "content": "5,0,6,0,8,0,3,0,2,0,1,0\n8,0,4,0,2,0,6,0,1,0,7,0\n5,0,6,0,3,0,4,0,7,0,8,0\n3,0,2,1,7,1,1,1,4,1,5,0\n6,0,2,0,4,0,8,0,3,0,5,0\n2,0,5,0,7,0,1,0,4,0,6,0\n1,0,8,0,2,0,7,0,3,0,4,0\n1,0,5,0,7,0,8,0,6,0,3,0\n7,0,8,0,1,0,4,0,5,0,2,0\n3,0,1,0,4,0,2,0,7,0,6,0\n"
  },
  {
    "path": "schedules/8_8.csv",
    "content": "8,0,4,0,3,0,6,0,5,0,1,0\n1,0,8,0,7,0,2,0,5,0,6,0\n7,0,2,0,6,0,5,0,3,0,4,0\n7,1,1,0,3,0,8,0,4,0,2,1\n3,0,8,0,5,0,2,0,7,0,1,0\n4,0,5,0,2,0,6,0,1,0,8,0\n1,0,6,0,4,0,3,0,7,0,2,0\n4,0,6,0,3,0,5,0,8,0,7,0\n7,0,4,0,5,0,2,0,3,0,8,0\n1,0,2,0,5,0,6,0,7,0,4,0\n3,0,6,0,7,0,8,0,1,0,2,0\n"
  },
  {
    "path": "schedules/8_9.csv",
    "content": "8,0,4,0,6,0,3,0,1,0,5,0\n2,0,1,0,8,0,7,0,5,0,6,0\n7,0,2,0,1,0,3,0,5,0,4,0\n3,0,8,0,7,0,6,0,4,0,2,0\n6,0,7,0,3,0,5,0,2,0,1,0\n8,0,5,0,2,0,4,0,3,0,1,0\n5,0,8,0,4,0,7,0,6,0,2,0\n1,0,7,0,4,0,8,0,6,0,3,0\n1,0,3,0,6,0,5,0,7,0,8,0\n2,0,3,0,5,0,4,0,8,0,7,0\n6,0,1,0,5,0,4,0,2,0,3,0\n2,0,4,0,7,0,1,0,6,0,8,0\n"
  },
  {
    "path": "schedules/90_1.csv",
    "content": "50,0,62,0,63,0,58,0,61,0,46,0\n9,0,54,0,4,0,25,0,11,0,53,0\n80,0,55,0,78,0,87,0,74,0,22,0\n2,0,30,0,34,0,90,0,86,0,27,0\n28,0,13,0,12,0,52,0,36,0,3,0\n82,0,14,0,33,0,29,0,7,0,47,0\n15,0,69,0,6,0,20,0,19,0,49,0\n17,0,39,0,88,0,57,0,72,0,75,0\n65,0,68,0,41,0,89,0,26,0,73,0\n43,0,76,0,31,0,32,0,60,0,24,0\n5,0,56,0,51,0,40,0,77,0,70,0\n79,0,18,0,8,0,45,0,21,0,16,0\n85,0,81,0,38,0,10,0,59,0,44,0\n1,0,42,0,64,0,66,0,84,0,71,0\n67,0,48,0,23,0,35,0,37,0,83,0\n"
  },
  {
    "path": "schedules/90_10.csv",
    "content": "82,0,54,0,1,0,73,0,36,0,79,0\n15,0,37,0,21,0,76,0,80,0,27,0\n52,0,60,0,63,0,11,0,53,0,81,0\n87,0,61,0,89,0,22,0,49,0,59,0\n74,0,67,0,50,0,23,0,57,0,19,0\n71,0,68,0,46,0,41,0,2,0,13,0\n5,0,35,0,8,0,40,0,20,0,66,0\n64,0,31,0,17,0,39,0,51,0,26,0\n32,0,24,0,70,0,18,0,65,0,75,0\n4,0,7,0,28,0,29,0,86,0,3,0\n34,0,47,0,45,0,55,0,43,0,58,0\n42,0,56,0,38,0,72,0,90,0,83,0\n48,0,10,0,77,0,25,0,84,0,85,0\n16,0,9,0,62,0,33,0,69,0,12,0\n78,0,30,0,6,0,88,0,44,0,14,0\n64,0,27,0,73,0,5,0,81,0,59,0\n18,0,46,0,57,0,51,0,31,0,22,0\n36,0,87,0,60,0,2,0,21,0,70,0\n34,0,79,0,67,0,53,0,4,0,32,0\n40,0,3,0,75,0,47,0,68,0,39,0\n37,0,23,0,28,0,26,0,10,0,20,0\n8,0,65,0,63,0,9,0,42,0,85,0\n50,0,48,0,12,0,29,0,78,0,43,0\n7,0,17,0,44,0,56,0,52,0,74,0\n62,0,66,0,72,0,89,0,84,0,19,0\n83,0,25,0,80,0,16,0,61,0,54,0\n58,0,38,0,33,0,41,0,6,0,15,0\n86,0,13,0,88,0,35,0,1,0,24,0\n14,0,55,0,11,0,69,0,49,0,77,0\n30,0,71,0,45,0,76,0,82,0,90,0\n50,0,51,0,2,0,32,0,9,0,73,0\n42,0,5,0,29,0,67,0,31,0,10,0\n20,0,19,0,78,0,60,0,65,0,56,0\n57,0,59,0,26,0,34,0,12,0,80,0\n25,0,18,0,23,0,47,0,36,0,15,0\n22,0,85,0,58,0,79,0,70,0,28,0\n83,0,41,0,24,0,81,0,48,0,8,0\n40,0,64,0,11,0,86,0,89,0,30,0\n27,0,69,0,52,0,75,0,61,0,84,0\n87,0,88,0,55,0,7,0,76,0,33,0\n21,0,54,0,46,0,72,0,77,0,45,0\n90,0,43,0,53,0,74,0,1,0,16,0\n14,0,68,0,38,0,17,0,63,0,82,0\n49,0,13,0,66,0,37,0,4,0,39,0\n44,0,6,0,3,0,62,0,35,0,71,0\n30,0,29,0,70,0,34,0,23,0,83,0\n69,0,36,0,28,0,31,0,40,0,59,0\n89,0,9,0,15,0,75,0,55,0,57,0\n76,0,20,0,41,0,25,0,12,0,32,0\n16,0,77,0,2,0,27,0,88,0,8,0\n5,0,47,0,33,0,51,0,63,0,56,0\n18,0,78,0,82,0,58,0,13,0,64,0\n21,0,65,0,6,0,11,0,67,0,7,0\n22,0,1,0,66,0,17,0,50,0,10,0\n71,0,72,0,86,0,74,0,79,0,49,0\n68,0,26,0,43,0,84,0,35,0,73,0\n90,0,54,0,87,0,37,0,52,0,85,0\n24,0,45,0,62,0,60,0,4,0,14,0\n53,0,48,0,44,0,38,0,39,0,80,0\n46,0,3,0,81,0,61,0,19,0,42,0\n47,0,82,0,28,0,27,0,65,0,41,0\n70,0,56,0,1,0,89,0,12,0,77,0\n71,0,64,0,20,0,63,0,69,0,7,0\n83,0,18,0,10,0,68,0,11,0,76,0\n43,0,17,0,6,0,57,0,72,0,25,0\n40,0,22,0,8,0,54,0,34,0,62,0\n73,0,55,0,78,0,85,0,86,0,80,0\n66,0,81,0,90,0,67,0,14,0,36,0\n87,0,84,0,51,0,15,0,3,0,42,0\n9,0,60,0,74,0,61,0,58,0,39,0\n48,0,31,0,2,0,75,0,35,0,4,0\n44,0,59,0,16,0,46,0,50,0,37,0\n49,0,53,0,23,0,88,0,5,0,21,0\n38,0,52,0,32,0,13,0,29,0,45,0\n79,0,26,0,30,0,19,0,24,0,33,0\n62,0,63,0,73,0,83,0,28,0,66,0\n85,0,1,0,14,0,51,0,15,0,34,0\n57,0,27,0,56,0,71,0,87,0,58,0\n22,0,76,0,84,0,74,0,64,0,2,0\n4,0,61,0,36,0,43,0,77,0,20,0\n70,0,54,0,10,0,47,0,49,0,44,0\n50,0,25,0,65,0,31,0,45,0,89,0\n39,0,11,0,42,0,79,0,35,0,78,0\n9,0,21,0,13,0,26,0,90,0,3,0\n72,0,80,0,5,0,52,0,30,0,41,0\n7,0,53,0,82,0,8,0,18,0,59,0\n19,0,88,0,37,0,48,0,69,0,32,0\n75,0,60,0,17,0,86,0,67,0,33,0\n68,0,6,0,81,0,23,0,12,0,16,0\n55,0,38,0,29,0,46,0,24,0,40,0\n39,0,54,0,56,0,2,0,28,0,15,0\n87,0,25,0,79,0,9,0,66,0,64,0\n3,0,31,0,77,0,34,0,63,0,78,0\n13,0,51,0,43,0,70,0,27,0,11,0\n69,0,22,0,26,0,53,0,45,0,42,0\n57,0,86,0,52,0,14,0,48,0,47,0\n37,0,41,0,35,0,18,0,67,0,62,0\n85,0,75,0,21,0,50,0,16,0,71,0\n8,0,60,0,72,0,10,0,12,0,55,0\n6,0,24,0,74,0,80,0,49,0,20,0\n81,0,36,0,84,0,30,0,7,0,38,0\n58,0,59,0,19,0,76,0,29,0,17,0\n65,0,40,0,73,0,61,0,23,0,33,0\n89,0,82,0,4,0,88,0,46,0,83,0\n32,0,5,0,68,0,90,0,44,0,1,0\n57,0,78,0,54,0,41,0,69,0,66,0\n15,0,31,0,56,0,53,0,13,0,10,0\n47,0,64,0,77,0,42,0,50,0,60,0\n2,0,85,0,62,0,20,0,11,0,30,0\n16,0,29,0,14,0,39,0,18,0,87,0\n80,0,7,0,35,0,19,0,70,0,63,0\n82,0,22,0,81,0,86,0,37,0,9,0\n67,0,12,0,88,0,73,0,52,0,3,0\n89,0,71,0,33,0,32,0,43,0,8,0\n40,0,76,0,51,0,4,0,72,0,44,0\n45,0,79,0,75,0,83,0,6,0,59,0\n27,0,49,0,1,0,25,0,38,0,26,0\n90,0,58,0,46,0,23,0,24,0,84,0\n28,0,61,0,21,0,55,0,5,0,17,0\n68,0,34,0,74,0,36,0,65,0,48,0\n47,0,60,0,35,0,22,0,16,0,30,0\n12,0,37,0,73,0,42,0,14,0,71,0\n77,0,80,0,62,0,87,0,32,0,82,0\n33,0,44,0,13,0,72,0,85,0,81,0\n49,0,7,0,45,0,9,0,78,0,40,0\n52,0,58,0,83,0,20,0,31,0,1,0\n84,0,4,0,41,0,53,0,70,0,17,0\n64,0,10,0,57,0,65,0,88,0,38,0\n51,0,29,0,69,0,25,0,74,0,21,0\n67,0,89,0,27,0,24,0,54,0,63,0\n79,0,50,0,15,0,61,0,8,0,68,0\n34,0,19,0,11,0,75,0,90,0,28,0\n66,0,55,0,18,0,48,0,6,0,26,0\n59,0,43,0,23,0,2,0,56,0,3,0\n36,0,86,0,39,0,5,0,46,0,76,0\n40,0,80,0,4,0,1,0,81,0,71,0\n65,0,83,0,12,0,49,0,51,0,58,0\n52,0,10,0,33,0,82,0,21,0,35,0\n79,0,20,0,44,0,57,0,29,0,84,0\n72,0,53,0,24,0,28,0,78,0,68,0\n47,0,61,0,32,0,85,0,7,0,66,0\n13,0,25,0,42,0,74,0,55,0,59,0\n41,0,19,0,39,0,73,0,22,0,77,0\n63,0,46,0,30,0,43,0,75,0,87,0\n23,0,31,0,76,0,14,0,54,0,9,0\n11,0,8,0,3,0,17,0,45,0,37,0\n67,0,16,0,48,0,64,0,70,0,15,0\n18,0,86,0,2,0,69,0,34,0,38,0\n88,0,56,0,26,0,50,0,62,0,36,0\n27,0,5,0,90,0,6,0,60,0,89,0\n"
  },
  {
    "path": "schedules/90_11.csv",
    "content": "28,0,23,0,51,0,50,0,42,0,39,0\n24,0,6,0,87,0,37,0,21,0,10,0\n85,0,46,0,38,0,54,0,72,0,77,0\n4,0,11,0,60,0,16,0,45,0,53,0\n48,0,75,0,41,0,40,0,2,0,84,0\n79,0,43,0,64,0,88,0,5,0,17,0\n56,0,19,0,68,0,31,0,76,0,90,0\n69,0,86,0,80,0,71,0,65,0,14,0\n61,0,78,0,27,0,35,0,58,0,34,0\n47,0,3,0,55,0,7,0,1,0,32,0\n13,0,62,0,49,0,20,0,26,0,52,0\n70,0,83,0,63,0,22,0,30,0,25,0\n12,0,36,0,66,0,44,0,29,0,81,0\n15,0,59,0,74,0,89,0,73,0,18,0\n9,0,67,0,82,0,8,0,57,0,33,0\n77,0,39,0,64,0,87,0,10,0,45,0\n54,0,43,0,90,0,34,0,37,0,80,0\n14,0,21,0,5,0,28,0,31,0,60,0\n3,0,17,0,48,0,51,0,58,0,53,0\n84,0,26,0,47,0,27,0,6,0,46,0\n30,0,20,0,23,0,61,0,32,0,56,0\n1,0,18,0,52,0,42,0,19,0,22,0\n8,0,4,0,85,0,69,0,59,0,44,0\n81,0,74,0,65,0,33,0,15,0,79,0\n49,0,76,0,40,0,66,0,50,0,67,0\n62,0,29,0,82,0,11,0,55,0,73,0\n41,0,71,0,57,0,89,0,12,0,83,0\n68,0,25,0,2,0,86,0,16,0,78,0\n38,0,75,0,70,0,9,0,35,0,13,0\n7,0,36,0,63,0,88,0,72,0,24,0\n45,0,3,0,85,0,18,0,27,0,43,0\n44,0,52,0,54,0,51,0,26,0,15,0\n49,0,84,0,14,0,74,0,90,0,4,0\n62,0,46,0,76,0,21,0,79,0,42,0\n37,0,66,0,1,0,82,0,71,0,60,0\n20,0,53,0,50,0,86,0,83,0,64,0\n69,0,11,0,12,0,23,0,75,0,33,0\n25,0,65,0,34,0,32,0,48,0,13,0\n5,0,9,0,72,0,61,0,41,0,10,0\n81,0,73,0,31,0,30,0,40,0,16,0\n7,0,88,0,39,0,68,0,89,0,80,0\n24,0,78,0,35,0,59,0,22,0,55,0\n57,0,58,0,70,0,87,0,36,0,2,0\n29,0,56,0,8,0,38,0,63,0,17,0\n6,0,47,0,19,0,28,0,67,0,77,0\n26,0,83,0,37,0,75,0,1,0,15,0\n52,0,34,0,76,0,3,0,82,0,41,0\n65,0,40,0,21,0,9,0,54,0,23,0\n90,0,30,0,12,0,5,0,85,0,39,0\n10,0,46,0,18,0,68,0,35,0,49,0\n86,0,88,0,33,0,48,0,62,0,45,0\n16,0,87,0,63,0,43,0,53,0,59,0\n56,0,73,0,67,0,69,0,14,0,22,0\n25,0,7,0,61,0,29,0,57,0,79,0\n64,0,51,0,74,0,71,0,58,0,47,0\n17,0,20,0,77,0,70,0,89,0,27,0\n84,0,11,0,50,0,13,0,19,0,72,0\n28,0,24,0,4,0,32,0,66,0,38,0\n8,0,2,0,55,0,81,0,60,0,6,0\n44,0,78,0,36,0,31,0,80,0,42,0\n39,0,83,0,33,0,56,0,34,0,49,0\n48,0,35,0,5,0,69,0,87,0,29,0\n16,0,62,0,79,0,58,0,9,0,1,0\n10,0,59,0,68,0,12,0,47,0,22,0\n30,0,17,0,71,0,54,0,18,0,84,0\n38,0,25,0,64,0,21,0,82,0,26,0\n40,0,15,0,77,0,61,0,11,0,63,0\n74,0,44,0,50,0,27,0,7,0,60,0\n19,0,51,0,37,0,36,0,14,0,13,0\n78,0,66,0,55,0,65,0,88,0,41,0\n89,0,32,0,72,0,53,0,8,0,31,0\n73,0,42,0,6,0,70,0,85,0,80,0\n67,0,75,0,2,0,24,0,90,0,3,0\n43,0,76,0,86,0,4,0,52,0,23,0\n57,0,81,0,28,0,46,0,45,0,20,0\n61,0,84,0,21,0,68,0,83,0,44,0\n35,0,82,0,79,0,30,0,60,0,50,0\n77,0,66,0,48,0,56,0,74,0,16,0\n69,0,51,0,63,0,31,0,10,0,34,0\n59,0,5,0,27,0,54,0,36,0,33,0\n39,0,1,0,53,0,38,0,29,0,67,0\n32,0,40,0,4,0,37,0,89,0,64,0\n62,0,18,0,23,0,24,0,47,0,41,0\n45,0,6,0,65,0,90,0,52,0,72,0\n57,0,55,0,85,0,86,0,15,0,13,0\n75,0,22,0,49,0,81,0,87,0,17,0\n14,0,78,0,70,0,7,0,8,0,46,0\n26,0,71,0,42,0,2,0,20,0,43,0\n12,0,9,0,73,0,19,0,3,0,88,0\n28,0,58,0,80,0,11,0,25,0,76,0\n47,0,51,0,79,0,66,0,83,0,69,0\n4,0,21,0,63,0,36,0,48,0,67,0\n64,0,24,0,57,0,84,0,65,0,1,0\n29,0,32,0,33,0,50,0,10,0,85,0\n38,0,14,0,89,0,81,0,61,0,55,0\n27,0,41,0,86,0,87,0,90,0,13,0\n30,0,53,0,68,0,74,0,62,0,6,0\n7,0,17,0,52,0,37,0,28,0,73,0\n16,0,26,0,80,0,8,0,12,0,35,0\n2,0,76,0,59,0,88,0,34,0,44,0\n54,0,56,0,42,0,75,0,45,0,25,0\n9,0,60,0,43,0,78,0,77,0,49,0\n23,0,15,0,70,0,82,0,19,0,5,0\n39,0,72,0,58,0,40,0,20,0,18,0\n31,0,11,0,22,0,3,0,46,0,71,0\n87,0,68,0,61,0,51,0,67,0,85,0\n41,0,80,0,14,0,64,0,1,0,63,0\n16,0,38,0,50,0,69,0,36,0,52,0\n45,0,55,0,56,0,12,0,74,0,21,0\n42,0,33,0,84,0,7,0,77,0,35,0\n37,0,44,0,6,0,62,0,5,0,57,0\n90,0,18,0,81,0,78,0,82,0,48,0\n8,0,10,0,3,0,65,0,4,0,20,0\n28,0,89,0,29,0,43,0,30,0,75,0\n13,0,66,0,88,0,23,0,58,0,31,0\n49,0,73,0,2,0,47,0,53,0,54,0\n34,0,40,0,46,0,19,0,17,0,24,0\n11,0,86,0,79,0,39,0,70,0,26,0\n15,0,72,0,60,0,71,0,25,0,59,0\n32,0,27,0,9,0,83,0,22,0,76,0\n7,0,87,0,12,0,38,0,65,0,18,0\n80,0,5,0,81,0,84,0,51,0,52,0\n13,0,44,0,3,0,45,0,63,0,29,0\n21,0,90,0,58,0,77,0,73,0,50,0\n82,0,31,0,4,0,47,0,17,0,61,0\n89,0,35,0,36,0,56,0,6,0,86,0\n10,0,60,0,78,0,75,0,57,0,19,0\n37,0,22,0,53,0,28,0,85,0,41,0\n16,0,70,0,71,0,76,0,24,0,33,0\n15,0,46,0,2,0,30,0,9,0,66,0\n34,0,72,0,26,0,67,0,23,0,55,0\n8,0,27,0,49,0,64,0,42,0,11,0\n83,0,43,0,62,0,39,0,59,0,40,0\n48,0,14,0,54,0,32,0,68,0,79,0\n20,0,88,0,1,0,74,0,25,0,69,0\n28,0,50,0,78,0,3,0,56,0,87,0\n90,0,22,0,65,0,89,0,44,0,16,0\n53,0,13,0,33,0,47,0,21,0,80,0\n75,0,46,0,86,0,73,0,5,0,63,0\n26,0,58,0,19,0,81,0,41,0,4,0\n43,0,67,0,12,0,84,0,70,0,64,0\n51,0,77,0,18,0,76,0,37,0,55,0\n17,0,42,0,57,0,66,0,68,0,72,0\n71,0,38,0,10,0,27,0,23,0,79,0\n34,0,30,0,45,0,1,0,36,0,8,0\n32,0,6,0,88,0,82,0,15,0,49,0\n35,0,25,0,85,0,14,0,40,0,62,0\n48,0,7,0,20,0,9,0,11,0,59,0\n29,0,74,0,52,0,83,0,2,0,31,0\n61,0,69,0,54,0,60,0,24,0,39,0\n55,0,33,0,58,0,68,0,37,0,63,0\n47,0,72,0,64,0,44,0,76,0,75,0\n17,0,45,0,89,0,78,0,26,0,67,0\n71,0,18,0,56,0,4,0,13,0,5,0\n25,0,23,0,87,0,8,0,84,0,73,0\n19,0,21,0,32,0,43,0,66,0,35,0\n85,0,81,0,9,0,74,0,11,0,34,0\n41,0,15,0,36,0,20,0,39,0,14,0\n80,0,48,0,30,0,38,0,57,0,27,0\n22,0,61,0,50,0,65,0,2,0,62,0\n10,0,69,0,82,0,40,0,42,0,86,0\n54,0,83,0,16,0,3,0,6,0,7,0\n29,0,60,0,88,0,46,0,51,0,90,0\n24,0,53,0,52,0,12,0,77,0,79,0\n1,0,31,0,59,0,49,0,28,0,70,0\n"
  },
  {
    "path": "schedules/90_12.csv",
    "content": "75,0,63,0,76,0,44,0,82,0,73,0\n6,0,69,0,43,0,50,0,70,0,21,0\n53,0,27,0,72,0,4,0,19,0,16,0\n14,0,80,0,20,0,56,0,7,0,57,0\n52,0,45,0,25,0,89,0,71,0,24,0\n36,0,54,0,67,0,42,0,66,0,49,0\n30,0,41,0,68,0,46,0,9,0,29,0\n90,0,12,0,58,0,55,0,86,0,83,0\n34,0,61,0,84,0,2,0,60,0,1,0\n17,0,88,0,39,0,18,0,87,0,28,0\n10,0,51,0,78,0,5,0,47,0,81,0\n15,0,22,0,23,0,38,0,11,0,40,0\n32,0,31,0,35,0,26,0,64,0,79,0\n74,0,85,0,33,0,37,0,3,0,77,0\n65,0,8,0,48,0,13,0,62,0,59,0\n46,0,54,0,58,0,75,0,14,0,25,0\n82,0,50,0,27,0,24,0,68,0,80,0\n52,0,4,0,30,0,86,0,34,0,28,0\n49,0,6,0,9,0,12,0,5,0,17,0\n57,0,89,0,40,0,63,0,81,0,19,0\n32,0,72,0,71,0,22,0,2,0,83,0\n85,0,77,0,18,0,23,0,45,0,10,0\n67,0,70,0,48,0,55,0,7,0,33,0\n36,0,60,0,90,0,74,0,76,0,88,0\n16,0,65,0,78,0,21,0,8,0,3,0\n38,0,73,0,20,0,26,0,13,0,51,0\n61,0,69,0,53,0,15,0,64,0,87,0\n39,0,37,0,44,0,79,0,42,0,59,0\n56,0,35,0,29,0,84,0,1,0,66,0\n47,0,11,0,43,0,41,0,62,0,31,0\n52,0,75,0,68,0,81,0,70,0,2,0\n24,0,58,0,72,0,77,0,5,0,60,0\n28,0,7,0,3,0,54,0,27,0,9,0\n85,0,30,0,6,0,19,0,71,0,26,0\n63,0,22,0,8,0,4,0,17,0,20,0\n37,0,64,0,21,0,46,0,73,0,90,0\n12,0,50,0,42,0,29,0,32,0,84,0\n61,0,51,0,43,0,33,0,40,0,36,0\n83,0,87,0,65,0,47,0,66,0,38,0\n79,0,45,0,76,0,34,0,56,0,15,0\n62,0,55,0,82,0,53,0,25,0,57,0\n11,0,16,0,86,0,48,0,88,0,1,0\n39,0,67,0,13,0,35,0,23,0,78,0\n44,0,80,0,41,0,69,0,89,0,10,0\n59,0,49,0,18,0,31,0,14,0,74,0\n68,0,19,0,21,0,36,0,5,0,20,0\n77,0,27,0,66,0,70,0,22,0,12,0\n34,0,42,0,52,0,9,0,63,0,38,0\n72,0,17,0,46,0,7,0,82,0,43,0\n24,0,26,0,37,0,28,0,47,0,75,0\n51,0,23,0,50,0,90,0,8,0,79,0\n81,0,83,0,84,0,69,0,45,0,48,0\n85,0,76,0,2,0,57,0,41,0,67,0\n87,0,89,0,16,0,54,0,59,0,35,0\n49,0,58,0,3,0,88,0,15,0,40,0\n25,0,62,0,56,0,6,0,78,0,74,0\n30,0,64,0,1,0,55,0,44,0,13,0\n18,0,32,0,80,0,73,0,4,0,61,0\n86,0,29,0,33,0,11,0,10,0,31,0\n71,0,14,0,60,0,53,0,65,0,39,0\n7,0,19,0,8,0,82,0,34,0,66,0\n69,0,47,0,20,0,76,0,12,0,52,0\n81,0,17,0,16,0,79,0,46,0,85,0\n83,0,28,0,59,0,6,0,15,0,41,0\n56,0,2,0,37,0,63,0,55,0,50,0\n23,0,3,0,32,0,36,0,87,0,24,0\n9,0,44,0,11,0,21,0,77,0,49,0\n53,0,45,0,58,0,78,0,26,0,29,0\n90,0,18,0,13,0,60,0,68,0,40,0\n27,0,74,0,51,0,75,0,10,0,67,0\n48,0,25,0,35,0,42,0,73,0,72,0\n14,0,38,0,39,0,86,0,43,0,4,0\n61,0,31,0,88,0,22,0,30,0,89,0\n33,0,71,0,5,0,57,0,64,0,84,0\n65,0,54,0,62,0,1,0,80,0,70,0\n7,0,81,0,24,0,21,0,76,0,16,0\n17,0,29,0,44,0,52,0,47,0,23,0\n12,0,60,0,3,0,63,0,26,0,82,0\n28,0,74,0,56,0,46,0,32,0,69,0\n37,0,83,0,67,0,36,0,25,0,8,0\n15,0,48,0,2,0,39,0,77,0,51,0\n41,0,35,0,42,0,27,0,58,0,55,0\n86,0,64,0,62,0,50,0,18,0,89,0\n6,0,57,0,38,0,72,0,31,0,90,0\n68,0,34,0,71,0,43,0,49,0,10,0\n66,0,79,0,20,0,33,0,53,0,80,0\n40,0,1,0,5,0,14,0,30,0,87,0\n19,0,61,0,54,0,45,0,13,0,11,0\n9,0,78,0,70,0,4,0,88,0,59,0\n84,0,73,0,75,0,65,0,22,0,85,0\n15,0,81,0,62,0,12,0,37,0,32,0\n21,0,74,0,52,0,35,0,47,0,57,0\n28,0,71,0,82,0,90,0,48,0,44,0\n23,0,72,0,41,0,68,0,64,0,66,0\n49,0,39,0,16,0,33,0,30,0,83,0\n79,0,5,0,63,0,86,0,27,0,25,0\n31,0,67,0,4,0,60,0,50,0,45,0\n14,0,26,0,8,0,61,0,77,0,42,0\n29,0,59,0,2,0,20,0,43,0,3,0\n55,0,54,0,78,0,34,0,22,0,40,0\n17,0,1,0,36,0,38,0,75,0,89,0\n51,0,18,0,70,0,24,0,9,0,19,0\n10,0,87,0,7,0,58,0,6,0,73,0\n84,0,80,0,65,0,76,0,11,0,46,0\n69,0,13,0,56,0,85,0,53,0,88,0\n50,0,81,0,74,0,72,0,44,0,61,0\n28,0,12,0,45,0,14,0,68,0,35,0\n33,0,78,0,32,0,52,0,90,0,27,0\n1,0,23,0,82,0,49,0,37,0,4,0\n83,0,21,0,31,0,51,0,54,0,63,0\n60,0,42,0,87,0,15,0,20,0,89,0\n57,0,55,0,75,0,16,0,29,0,18,0\n13,0,6,0,2,0,80,0,47,0,86,0\n9,0,48,0,64,0,66,0,85,0,58,0\n77,0,36,0,59,0,46,0,7,0,71,0\n30,0,19,0,43,0,25,0,65,0,69,0\n34,0,5,0,73,0,67,0,3,0,11,0\n88,0,38,0,79,0,84,0,62,0,24,0\n76,0,39,0,22,0,10,0,53,0,8,0\n40,0,26,0,56,0,41,0,70,0,17,0\n89,0,23,0,60,0,21,0,32,0,75,0\n63,0,58,0,1,0,28,0,80,0,72,0\n4,0,6,0,35,0,44,0,81,0,33,0\n55,0,87,0,45,0,65,0,74,0,9,0\n12,0,68,0,25,0,11,0,85,0,59,0\n77,0,73,0,50,0,47,0,19,0,88,0\n36,0,34,0,27,0,39,0,64,0,31,0\n76,0,66,0,17,0,14,0,3,0,13,0\n26,0,15,0,16,0,90,0,43,0,84,0\n61,0,10,0,46,0,57,0,83,0,70,0\n49,0,48,0,52,0,22,0,56,0,79,0\n82,0,20,0,42,0,30,0,18,0,78,0\n53,0,41,0,86,0,7,0,37,0,51,0\n8,0,54,0,2,0,38,0,24,0,5,0\n40,0,71,0,62,0,67,0,29,0,69,0\n63,0,88,0,66,0,39,0,32,0,6,0\n19,0,31,0,75,0,80,0,87,0,12,0\n34,0,21,0,13,0,59,0,33,0,58,0\n72,0,47,0,55,0,15,0,85,0,36,0\n70,0,25,0,84,0,23,0,28,0,20,0\n11,0,89,0,83,0,14,0,82,0,79,0\n18,0,7,0,26,0,65,0,52,0,81,0\n3,0,57,0,51,0,1,0,69,0,42,0\n17,0,53,0,48,0,74,0,2,0,68,0\n9,0,41,0,73,0,50,0,71,0,78,0\n29,0,49,0,27,0,37,0,61,0,38,0\n10,0,24,0,30,0,56,0,90,0,67,0\n4,0,77,0,64,0,54,0,43,0,76,0\n46,0,40,0,8,0,86,0,35,0,60,0\n22,0,16,0,5,0,62,0,45,0,44,0\n65,0,88,0,12,0,72,0,51,0,34,0\n36,0,11,0,6,0,18,0,53,0,52,0\n7,0,39,0,89,0,68,0,55,0,84,0\n73,0,23,0,14,0,2,0,69,0,27,0\n58,0,47,0,79,0,30,0,70,0,3,0\n75,0,4,0,42,0,61,0,56,0,71,0\n24,0,46,0,78,0,48,0,63,0,31,0\n59,0,66,0,22,0,57,0,50,0,26,0\n64,0,40,0,20,0,83,0,74,0,16,0\n81,0,77,0,29,0,13,0,28,0,5,0\n87,0,38,0,82,0,45,0,33,0,41,0\n19,0,76,0,90,0,49,0,35,0,62,0\n44,0,86,0,8,0,54,0,85,0,32,0\n1,0,15,0,21,0,10,0,17,0,25,0\n37,0,80,0,43,0,60,0,9,0,67,0\n27,0,12,0,89,0,48,0,18,0,56,0\n57,0,4,0,79,0,68,0,36,0,65,0\n24,0,22,0,14,0,6,0,64,0,29,0\n46,0,55,0,5,0,52,0,26,0,88,0\n75,0,3,0,45,0,39,0,62,0,20,0\n70,0,63,0,13,0,11,0,87,0,71,0\n41,0,25,0,32,0,77,0,16,0,34,0\n33,0,43,0,9,0,83,0,76,0,23,0\n19,0,10,0,40,0,28,0,42,0,2,0\n47,0,53,0,90,0,1,0,81,0,59,0\n74,0,73,0,80,0,30,0,8,0,15,0\n35,0,85,0,38,0,61,0,50,0,7,0\n86,0,84,0,67,0,21,0,72,0,82,0\n69,0,54,0,31,0,37,0,17,0,58,0\n60,0,78,0,66,0,49,0,44,0,51,0\n"
  },
  {
    "path": "schedules/90_13.csv",
    "content": "17,0,27,0,59,0,85,0,90,0,76,0\n22,0,10,0,77,0,44,0,78,0,13,0\n18,0,71,0,46,0,54,0,29,0,65,0\n42,0,24,0,68,0,1,0,35,0,51,0\n67,0,7,0,72,0,53,0,33,0,19,0\n74,0,87,0,15,0,6,0,75,0,88,0\n39,0,3,0,23,0,69,0,40,0,56,0\n2,0,32,0,83,0,16,0,9,0,81,0\n49,0,86,0,63,0,84,0,34,0,37,0\n41,0,31,0,89,0,20,0,11,0,58,0\n30,0,47,0,73,0,21,0,48,0,45,0\n28,0,70,0,61,0,60,0,62,0,38,0\n66,0,8,0,14,0,36,0,50,0,82,0\n64,0,79,0,12,0,26,0,57,0,52,0\n55,0,80,0,25,0,5,0,4,0,43,0\n3,0,72,0,40,0,71,0,1,0,78,0\n68,0,29,0,18,0,6,0,85,0,7,0\n33,0,35,0,32,0,31,0,69,0,65,0\n21,0,90,0,86,0,83,0,51,0,39,0\n2,0,19,0,48,0,54,0,11,0,59,0\n44,0,23,0,87,0,82,0,74,0,58,0\n63,0,12,0,42,0,16,0,28,0,36,0\n60,0,17,0,25,0,52,0,56,0,20,0\n38,0,55,0,8,0,37,0,73,0,88,0\n22,0,66,0,41,0,4,0,45,0,34,0\n30,0,89,0,84,0,10,0,76,0,43,0\n81,0,5,0,26,0,70,0,9,0,15,0\n53,0,64,0,24,0,80,0,14,0,79,0\n61,0,50,0,27,0,47,0,77,0,67,0\n57,0,75,0,46,0,62,0,49,0,13,0\n78,0,21,0,20,0,69,0,28,0,82,0\n40,0,52,0,74,0,11,0,63,0,83,0\n16,0,7,0,4,0,48,0,3,0,86,0\n35,0,22,0,72,0,87,0,73,0,36,0\n29,0,90,0,2,0,41,0,88,0,44,0\n60,0,14,0,58,0,34,0,55,0,81,0\n45,0,23,0,33,0,38,0,77,0,80,0\n85,0,26,0,39,0,75,0,30,0,31,0\n53,0,13,0,25,0,61,0,1,0,54,0\n43,0,65,0,57,0,27,0,15,0,8,0\n37,0,46,0,66,0,51,0,56,0,64,0\n18,0,10,0,70,0,49,0,12,0,17,0\n5,0,50,0,76,0,32,0,24,0,6,0\n68,0,79,0,47,0,89,0,9,0,19,0\n67,0,84,0,59,0,42,0,71,0,62,0\n29,0,33,0,3,0,20,0,14,0,87,0\n39,0,34,0,38,0,72,0,4,0,52,0\n36,0,41,0,81,0,44,0,57,0,86,0\n15,0,37,0,21,0,58,0,27,0,22,0\n28,0,85,0,35,0,64,0,40,0,10,0\n51,0,78,0,48,0,23,0,5,0,70,0\n13,0,17,0,9,0,73,0,50,0,12,0\n1,0,60,0,46,0,43,0,32,0,80,0\n2,0,6,0,84,0,47,0,66,0,90,0\n68,0,45,0,88,0,16,0,25,0,67,0\n59,0,79,0,30,0,83,0,54,0,74,0\n62,0,89,0,56,0,65,0,19,0,24,0\n31,0,82,0,53,0,55,0,49,0,71,0\n63,0,7,0,75,0,69,0,8,0,61,0\n26,0,42,0,11,0,77,0,76,0,18,0\n41,0,5,0,12,0,72,0,14,0,46,0\n34,0,48,0,60,0,3,0,38,0,64,0\n73,0,15,0,43,0,20,0,23,0,16,0\n78,0,36,0,68,0,58,0,80,0,17,0\n56,0,29,0,47,0,67,0,54,0,57,0\n10,0,31,0,50,0,25,0,90,0,70,0\n45,0,49,0,87,0,21,0,7,0,59,0\n35,0,8,0,44,0,18,0,33,0,9,0\n85,0,83,0,61,0,65,0,42,0,55,0\n62,0,30,0,88,0,53,0,11,0,77,0\n28,0,32,0,89,0,37,0,74,0,39,0\n66,0,75,0,52,0,27,0,1,0,86,0\n40,0,82,0,24,0,26,0,22,0,2,0\n71,0,81,0,76,0,79,0,63,0,51,0\n6,0,19,0,4,0,13,0,84,0,69,0\n44,0,3,0,16,0,72,0,47,0,17,0\n33,0,46,0,42,0,9,0,58,0,10,0\n55,0,54,0,7,0,77,0,62,0,35,0\n70,0,57,0,73,0,83,0,80,0,34,0\n49,0,48,0,5,0,39,0,20,0,88,0\n43,0,31,0,52,0,21,0,61,0,14,0\n38,0,53,0,50,0,29,0,86,0,59,0\n56,0,12,0,1,0,6,0,82,0,27,0\n79,0,85,0,25,0,66,0,84,0,32,0\n8,0,36,0,74,0,60,0,24,0,4,0\n37,0,76,0,23,0,2,0,75,0,68,0\n40,0,51,0,19,0,45,0,18,0,15,0\n30,0,22,0,69,0,89,0,81,0,64,0\n67,0,26,0,41,0,78,0,65,0,63,0\n87,0,90,0,11,0,28,0,13,0,71,0\n6,0,20,0,34,0,53,0,9,0,35,0\n83,0,79,0,58,0,7,0,38,0,43,0\n39,0,73,0,59,0,44,0,24,0,12,0\n32,0,21,0,76,0,4,0,29,0,57,0\n45,0,5,0,56,0,85,0,31,0,36,0\n77,0,1,0,82,0,37,0,89,0,16,0\n55,0,48,0,69,0,26,0,17,0,50,0\n66,0,49,0,65,0,3,0,28,0,30,0\n23,0,19,0,67,0,52,0,8,0,87,0\n54,0,15,0,90,0,80,0,72,0,42,0\n60,0,41,0,40,0,88,0,84,0,33,0\n71,0,2,0,61,0,86,0,46,0,78,0\n11,0,51,0,14,0,75,0,25,0,10,0\n63,0,74,0,62,0,47,0,18,0,22,0\n27,0,13,0,64,0,81,0,70,0,68,0\n29,0,38,0,69,0,65,0,9,0,82,0\n50,0,37,0,44,0,43,0,85,0,87,0\n12,0,6,0,80,0,31,0,48,0,67,0\n58,0,16,0,40,0,30,0,52,0,90,0\n7,0,23,0,57,0,71,0,89,0,60,0\n17,0,24,0,54,0,84,0,41,0,83,0\n51,0,75,0,20,0,79,0,55,0,22,0\n66,0,39,0,11,0,70,0,47,0,33,0\n2,0,34,0,28,0,13,0,18,0,8,0\n77,0,63,0,32,0,53,0,49,0,72,0\n86,0,88,0,61,0,76,0,64,0,19,0\n15,0,4,0,25,0,46,0,35,0,59,0\n27,0,10,0,3,0,45,0,74,0,26,0\n68,0,1,0,62,0,5,0,36,0,21,0\n81,0,14,0,56,0,42,0,73,0,78,0\n65,0,75,0,37,0,90,0,12,0,60,0\n85,0,71,0,52,0,9,0,48,0,41,0\n55,0,23,0,24,0,13,0,30,0,29,0\n47,0,88,0,34,0,51,0,31,0,7,0\n82,0,17,0,86,0,35,0,79,0,15,0\n26,0,72,0,58,0,28,0,25,0,83,0\n27,0,5,0,16,0,18,0,61,0,84,0\n87,0,77,0,39,0,68,0,57,0,14,0\n10,0,54,0,56,0,63,0,38,0,4,0\n70,0,76,0,36,0,40,0,73,0,32,0\n78,0,49,0,59,0,43,0,33,0,64,0\n80,0,74,0,53,0,81,0,21,0,66,0\n20,0,62,0,19,0,50,0,2,0,1,0\n69,0,11,0,46,0,67,0,44,0,45,0\n22,0,89,0,6,0,8,0,3,0,42,0\n71,0,83,0,15,0,35,0,12,0,47,0\n9,0,28,0,86,0,56,0,77,0,31,0\n25,0,48,0,24,0,57,0,63,0,87,0\n75,0,55,0,84,0,72,0,70,0,59,0\n13,0,76,0,38,0,74,0,14,0,41,0\n62,0,73,0,26,0,58,0,29,0,66,0\n43,0,90,0,69,0,68,0,53,0,5,0\n27,0,20,0,65,0,40,0,44,0,80,0\n17,0,64,0,2,0,89,0,67,0,4,0\n7,0,52,0,32,0,42,0,54,0,82,0\n45,0,60,0,8,0,39,0,78,0,79,0\n61,0,51,0,33,0,36,0,30,0,6,0\n21,0,10,0,46,0,19,0,34,0,16,0\n50,0,88,0,3,0,18,0,81,0,37,0\n85,0,49,0,11,0,1,0,23,0,22,0\n43,0,40,0,48,0,75,0,77,0,29,0\n66,0,67,0,28,0,55,0,76,0,15,0\n65,0,59,0,47,0,13,0,5,0,58,0\n12,0,14,0,32,0,84,0,86,0,45,0\n9,0,4,0,64,0,62,0,7,0,90,0\n44,0,89,0,51,0,26,0,53,0,56,0\n73,0,3,0,74,0,2,0,25,0,33,0\n20,0,81,0,8,0,72,0,54,0,85,0\n42,0,21,0,22,0,88,0,23,0,17,0\n10,0,80,0,82,0,41,0,61,0,39,0\n31,0,18,0,34,0,1,0,87,0,79,0\n70,0,71,0,6,0,37,0,52,0,24,0\n60,0,68,0,30,0,63,0,50,0,46,0\n16,0,35,0,78,0,11,0,38,0,57,0\n19,0,69,0,36,0,49,0,27,0,83,0\n8,0,77,0,84,0,74,0,20,0,64,0\n76,0,53,0,4,0,23,0,47,0,85,0\n54,0,44,0,33,0,28,0,21,0,75,0\n43,0,82,0,67,0,73,0,51,0,10,0\n72,0,24,0,13,0,66,0,31,0,88,0\n1,0,65,0,17,0,39,0,63,0,45,0\n15,0,11,0,61,0,32,0,68,0,34,0\n57,0,18,0,58,0,86,0,69,0,70,0\n3,0,9,0,52,0,36,0,55,0,59,0\n90,0,27,0,78,0,46,0,48,0,89,0\n6,0,81,0,38,0,40,0,25,0,62,0\n26,0,80,0,71,0,22,0,14,0,19,0\n35,0,83,0,5,0,37,0,29,0,60,0\n42,0,16,0,50,0,41,0,79,0,49,0\n7,0,87,0,56,0,2,0,30,0,12,0\n63,0,33,0,13,0,15,0,85,0,82,0\n4,0,84,0,73,0,68,0,28,0,52,0\n9,0,75,0,67,0,21,0,3,0,24,0\n57,0,69,0,1,0,10,0,59,0,88,0\n89,0,36,0,18,0,71,0,38,0,25,0\n14,0,44,0,83,0,48,0,62,0,8,0\n31,0,76,0,39,0,16,0,22,0,46,0\n90,0,35,0,58,0,74,0,61,0,56,0\n51,0,49,0,29,0,60,0,11,0,27,0\n47,0,41,0,64,0,55,0,32,0,87,0\n80,0,20,0,37,0,26,0,30,0,7,0\n86,0,79,0,72,0,65,0,6,0,23,0\n19,0,77,0,81,0,66,0,5,0,17,0\n34,0,54,0,12,0,40,0,50,0,78,0\n70,0,45,0,42,0,2,0,43,0,53,0\n"
  },
  {
    "path": "schedules/90_14.csv",
    "content": "7,0,8,0,36,0,54,0,29,0,71,0\n78,0,90,0,74,0,65,0,10,0,9,0\n69,0,59,0,41,0,52,0,62,0,86,0\n27,0,46,0,33,0,85,0,13,0,53,0\n60,0,30,0,58,0,37,0,42,0,11,0\n20,0,72,0,50,0,77,0,80,0,83,0\n24,0,56,0,55,0,31,0,21,0,70,0\n63,0,23,0,22,0,81,0,6,0,73,0\n2,0,49,0,64,0,87,0,12,0,68,0\n4,0,67,0,25,0,3,0,76,0,16,0\n18,0,82,0,43,0,28,0,75,0,35,0\n32,0,15,0,39,0,1,0,84,0,26,0\n44,0,45,0,57,0,38,0,66,0,79,0\n89,0,14,0,88,0,34,0,61,0,48,0\n19,0,51,0,5,0,47,0,40,0,17,0\n41,0,20,0,70,0,27,0,30,0,90,0\n12,0,74,0,86,0,54,0,52,0,53,0\n67,0,24,0,42,0,10,0,46,0,50,0\n78,0,72,0,82,0,11,0,87,0,59,0\n76,0,62,0,63,0,39,0,64,0,26,0\n29,0,6,0,85,0,69,0,68,0,35,0\n88,0,80,0,81,0,71,0,1,0,49,0\n60,0,66,0,2,0,77,0,73,0,34,0\n51,0,13,0,84,0,23,0,79,0,16,0\n58,0,75,0,17,0,44,0,65,0,31,0\n56,0,15,0,57,0,5,0,89,0,83,0\n55,0,25,0,47,0,43,0,38,0,61,0\n32,0,37,0,14,0,33,0,8,0,4,0\n40,0,48,0,19,0,22,0,28,0,18,0\n7,0,9,0,3,0,21,0,45,0,36,0\n12,0,1,0,82,0,67,0,60,0,41,0\n64,0,90,0,80,0,13,0,42,0,66,0\n10,0,79,0,34,0,54,0,75,0,70,0\n59,0,77,0,24,0,88,0,58,0,84,0\n55,0,11,0,68,0,57,0,71,0,17,0\n89,0,44,0,76,0,37,0,27,0,86,0\n74,0,38,0,31,0,28,0,73,0,51,0\n50,0,40,0,23,0,48,0,4,0,43,0\n56,0,85,0,16,0,7,0,63,0,14,0\n53,0,22,0,69,0,21,0,20,0,87,0\n52,0,72,0,45,0,39,0,6,0,49,0\n36,0,35,0,61,0,78,0,46,0,32,0\n2,0,26,0,8,0,83,0,9,0,18,0\n33,0,5,0,81,0,19,0,65,0,25,0\n62,0,29,0,47,0,15,0,3,0,30,0\n27,0,28,0,60,0,66,0,51,0,50,0\n84,0,11,0,44,0,67,0,63,0,74,0\n1,0,48,0,20,0,68,0,13,0,31,0\n39,0,52,0,77,0,90,0,57,0,89,0\n56,0,23,0,58,0,32,0,64,0,54,0\n73,0,83,0,40,0,14,0,78,0,79,0\n46,0,69,0,9,0,5,0,88,0,22,0\n65,0,38,0,6,0,2,0,18,0,4,0\n25,0,3,0,17,0,72,0,10,0,12,0\n80,0,24,0,7,0,35,0,81,0,30,0\n19,0,75,0,36,0,41,0,55,0,37,0\n76,0,29,0,21,0,82,0,61,0,33,0\n71,0,59,0,45,0,85,0,42,0,34,0\n49,0,62,0,8,0,47,0,53,0,70,0\n26,0,87,0,15,0,16,0,43,0,86,0\n88,0,6,0,31,0,14,0,50,0,64,0\n56,0,11,0,40,0,13,0,3,0,44,0\n10,0,30,0,38,0,52,0,83,0,63,0\n37,0,39,0,78,0,2,0,54,0,25,0\n58,0,90,0,76,0,69,0,84,0,55,0\n79,0,42,0,27,0,24,0,22,0,4,0\n17,0,41,0,74,0,46,0,77,0,61,0\n70,0,36,0,86,0,45,0,67,0,1,0\n26,0,65,0,53,0,60,0,80,0,47,0\n23,0,8,0,20,0,21,0,28,0,15,0\n51,0,35,0,33,0,59,0,57,0,48,0\n34,0,87,0,18,0,7,0,81,0,85,0\n43,0,9,0,89,0,49,0,73,0,29,0\n66,0,75,0,68,0,5,0,72,0,62,0\n19,0,71,0,12,0,82,0,16,0,32,0\n4,0,17,0,63,0,83,0,78,0,1,0\n14,0,3,0,46,0,90,0,60,0,65,0\n25,0,22,0,20,0,36,0,64,0,44,0\n55,0,40,0,79,0,59,0,33,0,80,0\n58,0,10,0,48,0,85,0,86,0,8,0\n18,0,37,0,29,0,23,0,57,0,52,0\n26,0,24,0,47,0,2,0,45,0,73,0\n49,0,50,0,82,0,5,0,74,0,7,0\n27,0,67,0,38,0,35,0,56,0,72,0\n54,0,41,0,28,0,88,0,42,0,16,0\n51,0,87,0,62,0,34,0,9,0,76,0\n30,0,21,0,43,0,68,0,84,0,19,0\n61,0,31,0,39,0,53,0,15,0,71,0\n13,0,75,0,81,0,12,0,69,0,77,0\n32,0,6,0,11,0,89,0,66,0,70,0\n49,0,60,0,3,0,48,0,78,0,22,0\n55,0,45,0,63,0,27,0,65,0,82,0\n52,0,14,0,44,0,26,0,50,0,41,0\n4,0,9,0,72,0,20,0,57,0,58,0\n76,0,10,0,19,0,2,0,59,0,88,0\n71,0,42,0,73,0,62,0,33,0,15,0\n17,0,39,0,7,0,37,0,38,0,13,0\n5,0,6,0,87,0,79,0,32,0,8,0\n35,0,16,0,70,0,21,0,64,0,74,0\n68,0,80,0,86,0,34,0,23,0,24,0\n53,0,25,0,28,0,56,0,29,0,90,0\n40,0,89,0,31,0,84,0,81,0,36,0\n85,0,61,0,47,0,77,0,75,0,67,0\n1,0,30,0,54,0,69,0,51,0,18,0\n66,0,11,0,83,0,46,0,43,0,12,0\n87,0,71,0,82,0,44,0,37,0,6,0\n49,0,32,0,57,0,17,0,59,0,14,0\n64,0,72,0,79,0,15,0,48,0,41,0\n58,0,62,0,78,0,45,0,20,0,33,0\n8,0,89,0,60,0,25,0,24,0,35,0\n74,0,56,0,42,0,76,0,68,0,47,0\n34,0,28,0,67,0,55,0,9,0,13,0\n19,0,3,0,21,0,63,0,66,0,80,0\n30,0,46,0,86,0,75,0,39,0,40,0\n5,0,29,0,77,0,31,0,1,0,16,0\n52,0,27,0,61,0,2,0,43,0,81,0\n23,0,83,0,65,0,88,0,7,0,69,0\n51,0,54,0,4,0,26,0,90,0,11,0\n22,0,38,0,70,0,50,0,12,0,85,0\n36,0,53,0,73,0,84,0,10,0,18,0\n37,0,15,0,25,0,21,0,67,0,59,0\n8,0,48,0,80,0,45,0,56,0,17,0\n57,0,28,0,78,0,24,0,6,0,62,0\n41,0,63,0,29,0,40,0,87,0,2,0\n60,0,52,0,71,0,75,0,9,0,64,0\n11,0,51,0,14,0,20,0,86,0,81,0\n32,0,76,0,61,0,30,0,13,0,50,0\n88,0,47,0,73,0,69,0,70,0,4,0\n31,0,43,0,90,0,22,0,7,0,72,0\n36,0,33,0,85,0,39,0,44,0,74,0\n27,0,16,0,18,0,68,0,83,0,3,0\n35,0,77,0,79,0,12,0,65,0,49,0\n84,0,89,0,38,0,54,0,10,0,66,0\n55,0,1,0,5,0,23,0,42,0,53,0\n34,0,26,0,46,0,82,0,19,0,58,0\n45,0,88,0,50,0,37,0,51,0,56,0\n7,0,2,0,6,0,60,0,73,0,86,0\n70,0,76,0,28,0,81,0,17,0,52,0\n69,0,8,0,57,0,61,0,40,0,63,0\n33,0,77,0,30,0,22,0,87,0,9,0\n62,0,12,0,18,0,4,0,80,0,44,0\n64,0,24,0,65,0,1,0,29,0,11,0\n78,0,84,0,16,0,47,0,27,0,34,0\n3,0,54,0,43,0,5,0,46,0,85,0\n83,0,32,0,59,0,90,0,75,0,53,0\n10,0,67,0,35,0,58,0,41,0,39,0\n71,0,14,0,13,0,72,0,89,0,21,0\n15,0,82,0,79,0,38,0,36,0,68,0\n19,0,31,0,23,0,25,0,49,0,42,0\n74,0,48,0,26,0,20,0,55,0,66,0\n86,0,63,0,18,0,17,0,50,0,33,0\n37,0,84,0,2,0,80,0,46,0,70,0\n59,0,3,0,61,0,87,0,28,0,1,0\n69,0,24,0,16,0,39,0,43,0,56,0\n12,0,58,0,9,0,6,0,14,0,27,0\n35,0,13,0,83,0,47,0,22,0,71,0\n54,0,81,0,65,0,44,0,68,0,72,0\n23,0,85,0,10,0,31,0,82,0,62,0\n30,0,66,0,26,0,36,0,88,0,25,0\n75,0,4,0,5,0,45,0,89,0,74,0\n49,0,11,0,15,0,34,0,90,0,40,0\n64,0,53,0,57,0,67,0,19,0,7,0\n21,0,48,0,32,0,73,0,41,0,52,0\n77,0,42,0,55,0,78,0,8,0,51,0\n29,0,20,0,38,0,79,0,60,0,76,0\n9,0,44,0,47,0,23,0,59,0,1,0\n22,0,66,0,17,0,82,0,24,0,14,0\n6,0,84,0,33,0,56,0,75,0,26,0\n2,0,28,0,80,0,58,0,5,0,15,0\n18,0,89,0,50,0,64,0,16,0,46,0\n35,0,53,0,34,0,72,0,3,0,37,0\n41,0,85,0,21,0,51,0,83,0,49,0\n39,0,73,0,27,0,11,0,19,0,8,0\n65,0,36,0,43,0,76,0,13,0,57,0\n12,0,78,0,45,0,29,0,30,0,31,0\n79,0,74,0,71,0,69,0,25,0,86,0\n7,0,10,0,68,0,55,0,4,0,61,0\n48,0,77,0,70,0,42,0,54,0,63,0\n40,0,81,0,32,0,38,0,62,0,60,0\n20,0,90,0,52,0,87,0,67,0,88,0\n75,0,33,0,16,0,3,0,2,0,23,0\n47,0,21,0,50,0,11,0,58,0,36,0\n59,0,30,0,34,0,56,0,8,0,6,0\n84,0,9,0,85,0,86,0,65,0,41,0\n82,0,64,0,4,0,51,0,53,0,43,0\n57,0,31,0,54,0,76,0,27,0,80,0\n45,0,68,0,25,0,28,0,77,0,14,0\n73,0,5,0,90,0,44,0,61,0,12,0\n71,0,24,0,46,0,38,0,48,0,63,0\n66,0,40,0,15,0,7,0,52,0,35,0\n72,0,81,0,42,0,32,0,29,0,74,0\n1,0,10,0,37,0,20,0,49,0,26,0\n62,0,79,0,22,0,89,0,67,0,17,0\n13,0,78,0,69,0,70,0,19,0,18,0\n83,0,39,0,88,0,55,0,60,0,87,0\n53,0,16,0,61,0,45,0,11,0,9,0\n12,0,59,0,75,0,24,0,48,0,36,0\n34,0,64,0,86,0,5,0,38,0,21,0\n3,0,50,0,81,0,73,0,84,0,57,0\n37,0,65,0,20,0,40,0,43,0,42,0\n46,0,44,0,15,0,10,0,77,0,6,0\n69,0,49,0,67,0,33,0,26,0,28,0\n7,0,1,0,62,0,58,0,74,0,27,0\n70,0,83,0,56,0,82,0,29,0,39,0\n41,0,76,0,66,0,71,0,78,0,23,0\n90,0,2,0,17,0,89,0,85,0,30,0\n60,0,13,0,4,0,52,0,8,0,31,0\n72,0,88,0,63,0,18,0,79,0,47,0\n51,0,68,0,22,0,25,0,80,0,32,0\n14,0,35,0,87,0,55,0,54,0,19,0\n"
  },
  {
    "path": "schedules/90_2.csv",
    "content": "85,0,23,0,31,0,9,0,22,0,74,0\n57,0,48,0,25,0,56,0,46,0,79,0\n30,0,21,0,60,0,10,0,6,0,4,0\n86,0,81,0,24,0,42,0,65,0,29,0\n20,0,58,0,88,0,70,0,72,0,3,0\n33,0,82,0,84,0,61,0,66,0,49,0\n39,0,90,0,50,0,1,0,44,0,16,0\n27,0,15,0,19,0,18,0,64,0,37,0\n52,0,78,0,68,0,14,0,67,0,34,0\n38,0,32,0,40,0,75,0,8,0,36,0\n28,0,35,0,87,0,51,0,12,0,80,0\n7,0,73,0,77,0,55,0,11,0,71,0\n41,0,83,0,17,0,47,0,53,0,54,0\n76,0,45,0,26,0,63,0,59,0,62,0\n13,0,43,0,2,0,89,0,69,0,5,0\n72,0,74,0,1,0,24,0,48,0,60,0\n34,0,85,0,18,0,57,0,33,0,81,0\n19,0,9,0,82,0,38,0,29,0,88,0\n6,0,15,0,46,0,67,0,39,0,58,0\n73,0,64,0,3,0,78,0,36,0,87,0\n75,0,70,0,71,0,23,0,35,0,41,0\n63,0,53,0,84,0,50,0,65,0,4,0\n56,0,61,0,47,0,43,0,59,0,44,0\n54,0,21,0,5,0,28,0,86,0,25,0\n80,0,66,0,55,0,68,0,26,0,37,0\n42,0,31,0,8,0,77,0,83,0,76,0\n14,0,79,0,10,0,32,0,27,0,13,0\n69,0,22,0,45,0,17,0,16,0,40,0\n11,0,89,0,62,0,30,0,20,0,51,0\n12,0,7,0,49,0,90,0,2,0,52,0\n"
  },
  {
    "path": "schedules/90_3.csv",
    "content": "27,0,34,0,19,0,55,0,39,0,84,0\n47,0,11,0,73,0,13,0,23,0,35,0\n44,0,51,0,29,0,82,0,12,0,22,0\n8,0,41,0,37,0,5,0,38,0,71,0\n58,0,53,0,49,0,20,0,16,0,76,0\n15,0,61,0,18,0,69,0,25,0,85,0\n31,0,88,0,80,0,66,0,40,0,77,0\n52,0,14,0,48,0,81,0,9,0,54,0\n24,0,63,0,87,0,45,0,74,0,89,0\n28,0,59,0,62,0,46,0,83,0,21,0\n2,0,50,0,6,0,57,0,36,0,70,0\n10,0,68,0,60,0,78,0,65,0,67,0\n90,0,75,0,32,0,86,0,26,0,17,0\n64,0,42,0,1,0,72,0,79,0,4,0\n56,0,30,0,43,0,3,0,7,0,33,0\n81,0,34,0,31,0,51,0,69,0,58,0\n29,0,18,0,5,0,48,0,73,0,63,0\n71,0,15,0,45,0,35,0,59,0,52,0\n19,0,12,0,53,0,9,0,47,0,89,0\n65,0,74,0,38,0,88,0,27,0,23,0\n46,0,86,0,20,0,55,0,25,0,14,0\n13,0,49,0,39,0,66,0,2,0,37,0\n60,0,75,0,22,0,21,0,3,0,41,0\n85,0,76,0,70,0,68,0,4,0,56,0\n26,0,84,0,61,0,7,0,83,0,42,0\n8,0,72,0,40,0,30,0,78,0,87,0\n6,0,82,0,17,0,43,0,16,0,67,0\n64,0,57,0,44,0,24,0,80,0,28,0\n36,0,11,0,32,0,77,0,62,0,1,0\n79,0,90,0,54,0,10,0,50,0,33,0\n58,0,66,0,3,0,19,0,29,0,14,0\n70,0,69,0,39,0,52,0,74,0,46,0\n26,0,63,0,55,0,65,0,9,0,49,0\n7,0,59,0,73,0,22,0,34,0,53,0\n89,0,76,0,86,0,27,0,8,0,2,0\n37,0,88,0,81,0,61,0,64,0,75,0\n21,0,25,0,67,0,38,0,11,0,12,0\n47,0,83,0,51,0,17,0,87,0,18,0\n35,0,31,0,33,0,60,0,44,0,32,0\n72,0,24,0,77,0,84,0,6,0,71,0\n16,0,41,0,85,0,36,0,28,0,54,0\n20,0,40,0,23,0,68,0,79,0,15,0\n5,0,42,0,43,0,57,0,90,0,62,0\n1,0,56,0,78,0,82,0,45,0,50,0\n4,0,48,0,80,0,13,0,10,0,30,0\n"
  },
  {
    "path": "schedules/90_4.csv",
    "content": "69,0,30,0,77,0,5,0,48,0,67,0\n59,0,90,0,47,0,45,0,7,0,79,0\n15,0,28,0,87,0,61,0,4,0,83,0\n11,0,42,0,56,0,3,0,34,0,19,0\n52,0,85,0,29,0,12,0,22,0,51,0\n71,0,24,0,35,0,66,0,9,0,31,0\n49,0,81,0,18,0,75,0,6,0,55,0\n86,0,16,0,89,0,13,0,14,0,36,0\n72,0,39,0,82,0,2,0,44,0,84,0\n65,0,57,0,32,0,64,0,58,0,20,0\n50,0,80,0,53,0,26,0,33,0,41,0\n68,0,27,0,10,0,54,0,8,0,21,0\n76,0,40,0,25,0,60,0,62,0,37,0\n23,0,1,0,38,0,17,0,88,0,78,0\n43,0,63,0,73,0,46,0,70,0,74,0\n56,0,14,0,87,0,81,0,67,0,90,0\n61,0,79,0,66,0,11,0,52,0,86,0\n65,0,42,0,18,0,44,0,13,0,59,0\n51,0,32,0,53,0,31,0,30,0,82,0\n20,0,16,0,48,0,34,0,71,0,39,0\n24,0,55,0,7,0,80,0,10,0,72,0\n76,0,83,0,50,0,22,0,19,0,47,0\n62,0,29,0,77,0,35,0,63,0,57,0\n3,0,54,0,33,0,12,0,17,0,58,0\n4,0,64,0,21,0,25,0,73,0,23,0\n26,0,36,0,85,0,28,0,1,0,43,0\n70,0,8,0,37,0,15,0,2,0,78,0\n49,0,45,0,40,0,38,0,89,0,46,0\n68,0,74,0,41,0,6,0,69,0,88,0\n27,0,60,0,5,0,9,0,84,0,75,0\n44,0,87,0,79,0,77,0,16,0,55,0\n67,0,50,0,13,0,20,0,31,0,61,0\n19,0,58,0,59,0,21,0,35,0,52,0\n57,0,43,0,24,0,42,0,47,0,33,0\n37,0,82,0,10,0,23,0,29,0,11,0\n26,0,22,0,32,0,18,0,71,0,8,0\n14,0,3,0,25,0,45,0,41,0,65,0\n12,0,1,0,49,0,68,0,63,0,60,0\n75,0,46,0,78,0,66,0,53,0,62,0\n64,0,38,0,9,0,72,0,76,0,30,0\n27,0,83,0,6,0,2,0,34,0,40,0\n80,0,84,0,88,0,73,0,28,0,86,0\n5,0,74,0,4,0,36,0,7,0,56,0\n70,0,51,0,54,0,39,0,90,0,69,0\n17,0,15,0,89,0,48,0,85,0,81,0\n20,0,82,0,77,0,12,0,24,0,14,0\n33,0,52,0,46,0,55,0,1,0,32,0\n61,0,75,0,22,0,30,0,63,0,37,0\n66,0,34,0,18,0,87,0,50,0,29,0\n67,0,40,0,8,0,79,0,72,0,42,0\n86,0,5,0,6,0,76,0,59,0,43,0\n78,0,44,0,36,0,25,0,35,0,68,0\n71,0,7,0,21,0,41,0,83,0,81,0\n31,0,84,0,70,0,10,0,64,0,17,0\n13,0,9,0,26,0,49,0,54,0,57,0\n45,0,60,0,39,0,85,0,58,0,56,0\n16,0,88,0,2,0,90,0,4,0,3,0\n69,0,11,0,47,0,89,0,53,0,73,0\n62,0,19,0,48,0,65,0,38,0,28,0\n23,0,15,0,74,0,27,0,80,0,51,0\n"
  },
  {
    "path": "schedules/90_5.csv",
    "content": "86,0,60,0,87,0,84,0,36,0,63,0\n70,0,82,0,44,0,47,0,27,0,42,0\n34,0,72,0,49,0,12,0,50,0,64,0\n14,0,52,0,73,0,24,0,13,0,16,0\n3,0,35,0,69,0,45,0,74,0,65,0\n81,0,39,0,59,0,80,0,46,0,18,0\n26,0,43,0,68,0,22,0,8,0,29,0\n90,0,55,0,71,0,77,0,88,0,78,0\n9,0,58,0,67,0,53,0,41,0,54,0\n48,0,28,0,21,0,83,0,17,0,33,0\n15,0,32,0,51,0,11,0,75,0,5,0\n76,0,20,0,66,0,10,0,31,0,85,0\n6,0,7,0,4,0,37,0,57,0,19,0\n79,0,89,0,23,0,30,0,38,0,1,0\n2,0,40,0,56,0,62,0,25,0,61,0\n12,0,65,0,87,0,88,0,80,0,22,0\n27,0,58,0,16,0,26,0,46,0,72,0\n8,0,47,0,9,0,17,0,45,0,39,0\n44,0,68,0,83,0,74,0,86,0,77,0\n70,0,36,0,78,0,14,0,31,0,35,0\n84,0,90,0,13,0,69,0,76,0,67,0\n64,0,38,0,10,0,6,0,75,0,43,0\n15,0,1,0,28,0,56,0,41,0,34,0\n81,0,23,0,49,0,37,0,48,0,51,0\n40,0,11,0,60,0,4,0,18,0,42,0\n66,0,25,0,63,0,89,0,3,0,24,0\n79,0,54,0,33,0,71,0,32,0,62,0\n50,0,21,0,61,0,7,0,52,0,20,0\n82,0,19,0,55,0,59,0,5,0,73,0\n29,0,85,0,30,0,57,0,53,0,2,0\n83,0,72,0,87,0,15,0,69,0,47,0\n14,0,48,0,27,0,39,0,76,0,65,0\n26,0,17,0,80,0,11,0,10,0,1,0\n89,0,49,0,44,0,8,0,58,0,60,0\n75,0,37,0,22,0,90,0,31,0,28,0\n38,0,32,0,4,0,78,0,86,0,16,0\n67,0,63,0,61,0,6,0,55,0,74,0\n54,0,40,0,12,0,19,0,52,0,45,0\n29,0,77,0,41,0,36,0,51,0,33,0\n59,0,53,0,62,0,3,0,13,0,21,0\n34,0,2,0,70,0,5,0,7,0,18,0\n35,0,71,0,30,0,66,0,50,0,81,0\n57,0,56,0,24,0,82,0,43,0,46,0\n88,0,25,0,42,0,68,0,23,0,20,0\n84,0,9,0,79,0,85,0,64,0,73,0\n8,0,15,0,86,0,12,0,14,0,67,0\n36,0,11,0,22,0,55,0,83,0,39,0\n19,0,16,0,65,0,89,0,29,0,62,0\n78,0,45,0,75,0,49,0,1,0,61,0\n6,0,18,0,41,0,90,0,44,0,30,0\n5,0,48,0,13,0,63,0,54,0,72,0\n57,0,50,0,23,0,26,0,70,0,87,0\n74,0,40,0,66,0,59,0,34,0,84,0\n58,0,33,0,25,0,80,0,4,0,85,0\n73,0,37,0,46,0,21,0,10,0,2,0\n53,0,76,0,38,0,35,0,68,0,24,0\n32,0,20,0,27,0,17,0,60,0,3,0\n31,0,77,0,7,0,82,0,79,0,81,0\n43,0,71,0,69,0,42,0,9,0,28,0\n52,0,64,0,47,0,88,0,51,0,56,0\n34,0,39,0,57,0,67,0,44,0,75,0\n16,0,85,0,5,0,83,0,40,0,1,0\n10,0,90,0,36,0,65,0,8,0,25,0\n37,0,14,0,62,0,30,0,58,0,84,0\n29,0,24,0,11,0,61,0,23,0,59,0\n46,0,55,0,7,0,49,0,15,0,53,0\n19,0,3,0,42,0,41,0,79,0,87,0\n45,0,72,0,88,0,86,0,33,0,82,0\n71,0,31,0,74,0,27,0,2,0,13,0\n26,0,78,0,56,0,12,0,21,0,66,0\n77,0,52,0,80,0,32,0,69,0,48,0\n51,0,38,0,50,0,60,0,9,0,22,0\n76,0,89,0,17,0,4,0,64,0,81,0\n68,0,6,0,73,0,28,0,70,0,54,0\n43,0,18,0,63,0,47,0,20,0,35,0\n"
  },
  {
    "path": "schedules/90_6.csv",
    "content": "45,0,3,0,22,0,51,0,18,0,56,0\n11,0,61,0,30,0,40,0,4,0,72,0\n14,0,84,0,60,0,33,0,39,0,32,0\n25,0,81,0,10,0,73,0,75,0,21,0\n6,0,57,0,34,0,86,0,12,0,47,0\n2,0,9,0,37,0,42,0,76,0,68,0\n19,0,90,0,27,0,16,0,55,0,8,0\n85,0,88,0,70,0,28,0,44,0,53,0\n64,0,59,0,1,0,46,0,17,0,49,0\n7,0,82,0,69,0,5,0,65,0,13,0\n29,0,41,0,26,0,35,0,66,0,79,0\n38,0,52,0,74,0,80,0,50,0,83,0\n58,0,23,0,63,0,43,0,89,0,15,0\n24,0,31,0,54,0,20,0,71,0,48,0\n67,0,77,0,36,0,62,0,87,0,78,0\n32,0,40,0,16,0,9,0,28,0,45,0\n46,0,12,0,72,0,70,0,10,0,84,0\n44,0,6,0,73,0,14,0,2,0,49,0\n90,0,68,0,39,0,86,0,85,0,51,0\n59,0,55,0,3,0,82,0,41,0,53,0\n8,0,66,0,23,0,57,0,56,0,69,0\n43,0,11,0,74,0,18,0,24,0,17,0\n87,0,35,0,47,0,19,0,21,0,42,0\n4,0,80,0,81,0,89,0,67,0,54,0\n36,0,26,0,88,0,52,0,25,0,7,0\n33,0,50,0,20,0,78,0,75,0,64,0\n76,0,62,0,15,0,65,0,83,0,71,0\n5,0,37,0,79,0,1,0,58,0,77,0\n22,0,61,0,13,0,63,0,34,0,48,0\n60,0,27,0,38,0,31,0,29,0,30,0\n72,0,56,0,82,0,6,0,19,0,39,0\n12,0,41,0,85,0,67,0,32,0,8,0\n14,0,11,0,46,0,55,0,87,0,45,0\n35,0,78,0,81,0,23,0,86,0,18,0\n68,0,49,0,16,0,54,0,74,0,15,0\n43,0,51,0,7,0,80,0,76,0,79,0\n52,0,48,0,73,0,65,0,4,0,37,0\n61,0,53,0,1,0,60,0,47,0,50,0\n59,0,62,0,31,0,58,0,34,0,25,0\n77,0,22,0,69,0,88,0,42,0,30,0\n13,0,40,0,83,0,66,0,24,0,33,0\n63,0,29,0,75,0,5,0,3,0,90,0\n9,0,26,0,64,0,44,0,10,0,27,0\n2,0,38,0,70,0,20,0,21,0,57,0\n84,0,71,0,17,0,89,0,28,0,36,0\n67,0,68,0,56,0,7,0,48,0,60,0\n45,0,52,0,86,0,49,0,82,0,8,0\n16,0,41,0,69,0,39,0,1,0,81,0\n87,0,15,0,13,0,4,0,50,0,51,0\n18,0,29,0,19,0,88,0,40,0,58,0\n63,0,80,0,32,0,53,0,62,0,11,0\n64,0,76,0,73,0,30,0,24,0,12,0\n70,0,14,0,65,0,77,0,66,0,27,0\n44,0,46,0,54,0,5,0,47,0,38,0\n85,0,37,0,21,0,59,0,83,0,84,0\n6,0,20,0,35,0,36,0,61,0,90,0\n23,0,34,0,17,0,26,0,75,0,2,0\n74,0,10,0,28,0,33,0,55,0,31,0\n71,0,25,0,72,0,43,0,9,0,22,0\n89,0,79,0,42,0,78,0,3,0,57,0\n48,0,11,0,81,0,70,0,64,0,8,0\n65,0,56,0,86,0,32,0,38,0,24,0\n30,0,68,0,84,0,87,0,44,0,41,0\n49,0,47,0,36,0,37,0,40,0,51,0\n27,0,80,0,82,0,73,0,88,0,17,0\n76,0,45,0,75,0,74,0,1,0,6,0\n25,0,55,0,77,0,12,0,61,0,15,0\n83,0,18,0,57,0,9,0,14,0,31,0\n78,0,60,0,28,0,90,0,43,0,69,0\n7,0,66,0,54,0,42,0,63,0,10,0\n50,0,62,0,16,0,29,0,46,0,23,0\n2,0,4,0,79,0,85,0,19,0,22,0\n71,0,34,0,33,0,53,0,52,0,35,0\n89,0,39,0,5,0,20,0,59,0,26,0\n13,0,21,0,3,0,58,0,72,0,67,0\n41,0,47,0,31,0,15,0,88,0,45,0\n78,0,17,0,40,0,76,0,38,0,25,0\n56,0,83,0,44,0,36,0,11,0,12,0\n63,0,87,0,24,0,57,0,82,0,37,0\n14,0,42,0,61,0,74,0,64,0,85,0\n30,0,65,0,9,0,81,0,53,0,90,0\n89,0,22,0,10,0,52,0,16,0,60,0\n5,0,62,0,73,0,70,0,43,0,68,0\n46,0,19,0,20,0,28,0,80,0,34,0\n50,0,32,0,18,0,72,0,69,0,79,0\n48,0,26,0,86,0,1,0,33,0,3,0\n54,0,8,0,6,0,77,0,13,0,29,0\n55,0,58,0,75,0,7,0,35,0,84,0\n66,0,71,0,51,0,59,0,67,0,2,0\n39,0,49,0,4,0,23,0,27,0,21,0\n"
  },
  {
    "path": "schedules/90_7.csv",
    "content": "70,0,6,0,77,0,69,0,31,0,34,0\n8,0,62,0,83,0,45,0,57,0,43,0\n19,0,9,0,71,0,30,0,64,0,72,0\n14,0,59,0,54,0,22,0,66,0,32,0\n78,0,90,0,1,0,52,0,44,0,60,0\n42,0,68,0,84,0,61,0,2,0,55,0\n3,0,40,0,23,0,4,0,10,0,11,0\n16,0,7,0,39,0,82,0,87,0,49,0\n20,0,46,0,38,0,74,0,88,0,73,0\n85,0,47,0,15,0,41,0,5,0,58,0\n12,0,18,0,56,0,17,0,79,0,76,0\n63,0,50,0,75,0,25,0,48,0,37,0\n89,0,33,0,28,0,51,0,26,0,36,0\n29,0,21,0,35,0,13,0,81,0,67,0\n53,0,86,0,80,0,24,0,65,0,27,0\n60,0,7,0,71,0,55,0,59,0,3,0\n74,0,68,0,10,0,54,0,30,0,6,0\n32,0,69,0,52,0,57,0,20,0,4,0\n2,0,18,0,40,0,39,0,85,0,38,0\n37,0,66,0,42,0,1,0,87,0,56,0\n77,0,17,0,5,0,22,0,62,0,75,0\n41,0,79,0,46,0,16,0,70,0,33,0\n81,0,78,0,73,0,65,0,31,0,8,0\n25,0,14,0,61,0,86,0,47,0,64,0\n58,0,28,0,12,0,35,0,49,0,50,0\n21,0,26,0,88,0,27,0,11,0,34,0\n48,0,44,0,9,0,23,0,83,0,53,0\n63,0,36,0,72,0,43,0,80,0,67,0\n13,0,15,0,76,0,82,0,89,0,19,0\n29,0,24,0,51,0,90,0,45,0,84,0\n55,0,79,0,73,0,39,0,37,0,62,0\n6,0,33,0,25,0,71,0,1,0,4,0\n2,0,81,0,64,0,22,0,10,0,52,0\n30,0,60,0,57,0,42,0,28,0,16,0\n44,0,35,0,54,0,20,0,75,0,70,0\n58,0,9,0,3,0,56,0,38,0,61,0\n53,0,77,0,41,0,66,0,63,0,19,0\n85,0,34,0,24,0,78,0,13,0,68,0\n5,0,48,0,29,0,88,0,72,0,82,0\n46,0,69,0,12,0,51,0,67,0,87,0\n47,0,31,0,80,0,45,0,89,0,21,0\n59,0,17,0,65,0,40,0,83,0,74,0\n23,0,8,0,27,0,7,0,32,0,15,0\n86,0,49,0,43,0,76,0,84,0,26,0\n18,0,11,0,50,0,90,0,36,0,14,0\n41,0,52,0,24,0,61,0,71,0,39,0\n64,0,70,0,53,0,62,0,3,0,68,0\n57,0,38,0,25,0,78,0,67,0,77,0\n60,0,5,0,87,0,34,0,73,0,10,0\n83,0,22,0,30,0,88,0,37,0,89,0\n79,0,4,0,66,0,29,0,44,0,28,0\n9,0,27,0,42,0,63,0,54,0,46,0\n43,0,85,0,48,0,14,0,56,0,35,0\n72,0,26,0,15,0,90,0,2,0,65,0\n45,0,76,0,1,0,11,0,7,0,75,0\n74,0,13,0,31,0,33,0,23,0,12,0\n84,0,80,0,50,0,16,0,81,0,32,0\n19,0,36,0,49,0,47,0,40,0,69,0\n82,0,58,0,55,0,8,0,17,0,6,0\n21,0,86,0,59,0,51,0,18,0,20,0\n87,0,27,0,79,0,89,0,85,0,77,0\n37,0,24,0,4,0,5,0,38,0,70,0\n65,0,43,0,11,0,25,0,30,0,29,0\n2,0,67,0,60,0,9,0,76,0,33,0\n12,0,45,0,32,0,48,0,41,0,73,0\n90,0,35,0,22,0,80,0,7,0,68,0\n82,0,28,0,47,0,56,0,83,0,52,0\n6,0,23,0,66,0,50,0,78,0,21,0\n16,0,54,0,61,0,18,0,69,0,26,0\n81,0,86,0,17,0,88,0,44,0,3,0\n63,0,13,0,10,0,57,0,55,0,49,0\n74,0,19,0,34,0,8,0,14,0,1,0\n62,0,20,0,42,0,15,0,31,0,71,0\n51,0,75,0,72,0,58,0,53,0,40,0\n39,0,59,0,64,0,36,0,46,0,84,0\n38,0,41,0,23,0,80,0,60,0,29,0\n83,0,35,0,2,0,24,0,25,0,69,0\n90,0,85,0,82,0,9,0,73,0,86,0\n27,0,70,0,18,0,81,0,43,0,28,0\n1,0,89,0,5,0,65,0,12,0,63,0\n20,0,37,0,16,0,76,0,47,0,6,0\n67,0,88,0,31,0,32,0,55,0,19,0\n34,0,39,0,57,0,3,0,75,0,66,0\n50,0,30,0,52,0,7,0,26,0,46,0\n84,0,13,0,40,0,62,0,44,0,14,0\n42,0,22,0,48,0,11,0,74,0,58,0\n36,0,15,0,61,0,78,0,10,0,79,0\n45,0,68,0,33,0,72,0,56,0,59,0\n8,0,51,0,49,0,77,0,4,0,64,0\n71,0,87,0,21,0,53,0,17,0,54,0\n82,0,12,0,75,0,60,0,43,0,24,0\n3,0,46,0,31,0,28,0,25,0,5,0\n38,0,76,0,30,0,34,0,35,0,63,0\n73,0,84,0,67,0,66,0,18,0,52,0\n62,0,19,0,11,0,61,0,6,0,81,0\n65,0,39,0,14,0,70,0,23,0,42,0\n88,0,57,0,47,0,68,0,51,0,9,0\n72,0,1,0,54,0,79,0,83,0,86,0\n44,0,36,0,7,0,74,0,41,0,21,0\n69,0,10,0,33,0,50,0,8,0,85,0\n80,0,26,0,17,0,48,0,64,0,20,0\n53,0,56,0,89,0,49,0,32,0,90,0\n29,0,22,0,55,0,87,0,15,0,40,0\n58,0,37,0,77,0,45,0,71,0,13,0\n78,0,4,0,16,0,27,0,59,0,2,0\n"
  },
  {
    "path": "schedules/90_8.csv",
    "content": "62,0,7,0,1,0,5,0,29,0,86,0\n52,0,70,0,77,0,27,0,89,0,3,0\n73,0,63,0,69,0,20,0,11,0,43,0\n58,0,12,0,68,0,41,0,8,0,67,0\n21,0,18,0,76,0,84,0,44,0,28,0\n75,0,80,0,17,0,55,0,40,0,46,0\n31,0,49,0,33,0,83,0,71,0,36,0\n88,0,13,0,60,0,39,0,74,0,2,0\n72,0,19,0,42,0,37,0,34,0,23,0\n48,0,32,0,53,0,54,0,38,0,26,0\n56,0,82,0,45,0,51,0,9,0,24,0\n6,0,85,0,4,0,15,0,81,0,30,0\n66,0,35,0,61,0,22,0,14,0,10,0\n64,0,25,0,65,0,79,0,78,0,59,0\n16,0,87,0,50,0,57,0,90,0,47,0\n71,0,41,0,52,0,7,0,39,0,75,0\n20,0,44,0,70,0,13,0,80,0,8,0\n38,0,62,0,67,0,28,0,43,0,46,0\n23,0,40,0,74,0,49,0,18,0,3,0\n9,0,76,0,11,0,4,0,58,0,26,0\n2,0,36,0,73,0,19,0,55,0,10,0\n48,0,60,0,81,0,35,0,33,0,79,0\n53,0,27,0,17,0,50,0,15,0,84,0\n47,0,37,0,59,0,1,0,88,0,77,0\n65,0,24,0,16,0,68,0,5,0,61,0\n31,0,82,0,30,0,89,0,25,0,72,0\n85,0,54,0,45,0,22,0,69,0,90,0\n51,0,63,0,83,0,57,0,64,0,86,0\n66,0,42,0,78,0,21,0,12,0,87,0\n6,0,34,0,14,0,32,0,29,0,56,0\n70,0,75,0,2,0,18,0,62,0,35,0\n58,0,55,0,50,0,38,0,1,0,60,0\n88,0,73,0,7,0,68,0,44,0,46,0\n41,0,36,0,37,0,13,0,30,0,27,0\n53,0,5,0,28,0,79,0,90,0,31,0\n47,0,80,0,45,0,64,0,19,0,4,0\n83,0,84,0,77,0,12,0,16,0,20,0\n49,0,54,0,52,0,66,0,17,0,43,0\n56,0,69,0,86,0,72,0,81,0,40,0\n51,0,32,0,71,0,87,0,89,0,10,0\n33,0,25,0,34,0,22,0,63,0,76,0\n3,0,14,0,59,0,24,0,42,0,11,0\n39,0,15,0,8,0,9,0,78,0,57,0\n23,0,65,0,48,0,85,0,21,0,29,0\n67,0,82,0,61,0,74,0,6,0,26,0\n18,0,43,0,79,0,16,0,7,0,27,0\n49,0,55,0,41,0,47,0,56,0,62,0\n71,0,28,0,81,0,2,0,45,0,12,0\n68,0,60,0,64,0,77,0,76,0,75,0\n4,0,46,0,13,0,54,0,10,0,1,0\n88,0,83,0,22,0,38,0,87,0,40,0\n65,0,9,0,20,0,33,0,53,0,86,0\n58,0,29,0,31,0,42,0,74,0,35,0\n8,0,90,0,89,0,84,0,6,0,48,0\n14,0,82,0,78,0,63,0,80,0,37,0\n70,0,73,0,26,0,57,0,23,0,17,0\n50,0,59,0,19,0,69,0,51,0,30,0\n61,0,44,0,11,0,36,0,85,0,34,0\n72,0,5,0,3,0,67,0,39,0,66,0\n15,0,21,0,32,0,24,0,25,0,52,0\n10,0,7,0,64,0,28,0,9,0,49,0\n1,0,83,0,56,0,75,0,79,0,74,0\n55,0,22,0,37,0,6,0,65,0,31,0\n89,0,60,0,29,0,16,0,53,0,80,0\n69,0,23,0,76,0,47,0,14,0,13,0\n70,0,68,0,90,0,82,0,33,0,42,0\n54,0,67,0,40,0,11,0,78,0,2,0\n71,0,43,0,24,0,85,0,72,0,84,0\n88,0,66,0,36,0,25,0,50,0,18,0\n46,0,77,0,26,0,19,0,21,0,8,0\n39,0,62,0,51,0,58,0,20,0,61,0\n15,0,87,0,41,0,86,0,59,0,35,0\n34,0,30,0,48,0,73,0,45,0,52,0\n81,0,5,0,57,0,27,0,32,0,44,0\n63,0,12,0,3,0,38,0,17,0,4,0\n7,0,84,0,54,0,65,0,80,0,56,0\n72,0,11,0,79,0,70,0,88,0,55,0\n53,0,49,0,46,0,78,0,24,0,76,0\n62,0,74,0,50,0,8,0,37,0,64,0\n39,0,6,0,42,0,86,0,28,0,47,0\n51,0,2,0,1,0,85,0,31,0,41,0\n16,0,58,0,34,0,21,0,81,0,82,0\n44,0,10,0,48,0,77,0,15,0,67,0\n14,0,33,0,5,0,40,0,73,0,4,0\n38,0,35,0,89,0,68,0,36,0,20,0\n13,0,57,0,25,0,3,0,45,0,61,0\n26,0,52,0,18,0,60,0,87,0,69,0\n59,0,66,0,27,0,23,0,63,0,71,0\n17,0,90,0,29,0,9,0,30,0,83,0\n43,0,75,0,12,0,22,0,32,0,19,0\n76,0,56,0,88,0,16,0,10,0,8,0\n53,0,81,0,51,0,7,0,37,0,70,0\n74,0,86,0,55,0,78,0,34,0,68,0\n85,0,38,0,77,0,25,0,14,0,39,0\n64,0,84,0,73,0,58,0,87,0,3,0\n50,0,11,0,65,0,71,0,46,0,82,0\n33,0,27,0,69,0,21,0,61,0,2,0\n57,0,42,0,43,0,48,0,4,0,41,0\n26,0,59,0,90,0,72,0,20,0,49,0\n47,0,24,0,63,0,36,0,29,0,75,0\n6,0,35,0,80,0,52,0,23,0,12,0\n22,0,89,0,9,0,79,0,13,0,67,0\n17,0,44,0,31,0,45,0,60,0,62,0\n18,0,19,0,15,0,5,0,54,0,83,0\n28,0,40,0,1,0,66,0,32,0,30,0\n78,0,10,0,3,0,85,0,50,0,33,0\n55,0,69,0,8,0,42,0,25,0,71,0\n2,0,49,0,38,0,34,0,57,0,65,0\n43,0,87,0,82,0,77,0,23,0,53,0\n81,0,90,0,41,0,80,0,73,0,76,0\n29,0,64,0,20,0,27,0,88,0,67,0\n72,0,21,0,13,0,63,0,62,0,68,0\n86,0,75,0,4,0,89,0,44,0,66,0\n84,0,19,0,40,0,52,0,31,0,61,0\n74,0,28,0,17,0,48,0,51,0,36,0\n39,0,79,0,24,0,54,0,37,0,12,0\n30,0,46,0,22,0,18,0,58,0,56,0\n32,0,47,0,35,0,83,0,11,0,7,0\n16,0,15,0,26,0,14,0,1,0,45,0\n9,0,6,0,5,0,70,0,60,0,59,0\n"
  },
  {
    "path": "schedules/90_9.csv",
    "content": "16,0,68,0,67,0,7,0,44,0,64,0\n71,0,2,0,47,0,28,0,11,0,26,0\n34,0,78,0,61,0,53,0,65,0,8,0\n73,0,69,0,32,0,36,0,77,0,39,0\n90,0,37,0,20,0,18,0,55,0,74,0\n89,0,79,0,10,0,40,0,14,0,5,0\n38,0,86,0,50,0,66,0,75,0,72,0\n3,0,13,0,30,0,80,0,81,0,19,0\n45,0,63,0,85,0,9,0,83,0,31,0\n48,0,52,0,51,0,54,0,59,0,12,0\n23,0,15,0,76,0,22,0,56,0,27,0\n42,0,84,0,6,0,33,0,87,0,57,0\n35,0,60,0,43,0,24,0,21,0,62,0\n82,0,17,0,41,0,4,0,29,0,70,0\n88,0,58,0,25,0,1,0,49,0,46,0\n77,0,55,0,66,0,34,0,2,0,14,0\n63,0,75,0,7,0,20,0,53,0,69,0\n64,0,73,0,48,0,47,0,90,0,79,0\n56,0,10,0,18,0,71,0,38,0,81,0\n44,0,51,0,84,0,31,0,76,0,72,0\n36,0,40,0,87,0,13,0,74,0,65,0\n67,0,43,0,61,0,50,0,57,0,30,0\n70,0,86,0,60,0,16,0,25,0,28,0\n78,0,62,0,9,0,59,0,11,0,58,0\n3,0,6,0,85,0,49,0,29,0,39,0\n45,0,19,0,8,0,21,0,89,0,23,0\n52,0,5,0,46,0,33,0,35,0,41,0\n54,0,24,0,15,0,17,0,37,0,88,0\n4,0,80,0,27,0,83,0,68,0,32,0\n26,0,42,0,1,0,22,0,12,0,82,0\n90,0,56,0,57,0,75,0,40,0,60,0\n14,0,16,0,84,0,73,0,62,0,81,0\n70,0,44,0,66,0,65,0,69,0,71,0\n20,0,59,0,89,0,28,0,76,0,39,0\n6,0,13,0,47,0,41,0,78,0,50,0\n21,0,10,0,37,0,30,0,72,0,9,0\n8,0,55,0,36,0,83,0,49,0,17,0\n38,0,23,0,35,0,85,0,4,0,12,0\n74,0,1,0,2,0,45,0,80,0,54,0\n11,0,53,0,25,0,48,0,22,0,5,0\n26,0,88,0,43,0,64,0,19,0,34,0\n82,0,18,0,63,0,67,0,33,0,27,0\n31,0,7,0,32,0,86,0,61,0,3,0\n52,0,68,0,42,0,58,0,24,0,29,0\n46,0,51,0,77,0,15,0,79,0,87,0\n59,0,75,0,37,0,83,0,65,0,81,0\n4,0,72,0,71,0,14,0,6,0,45,0\n44,0,10,0,12,0,62,0,50,0,53,0\n17,0,60,0,22,0,9,0,84,0,19,0\n66,0,26,0,27,0,13,0,25,0,8,0\n48,0,69,0,61,0,16,0,23,0,49,0\n30,0,89,0,31,0,42,0,70,0,38,0\n57,0,64,0,32,0,82,0,74,0,51,0\n1,0,56,0,20,0,11,0,3,0,52,0\n18,0,5,0,78,0,2,0,43,0,15,0\n33,0,29,0,40,0,88,0,55,0,7,0\n39,0,54,0,86,0,47,0,46,0,34,0\n80,0,76,0,35,0,58,0,36,0,79,0\n87,0,63,0,41,0,68,0,21,0,73,0\n85,0,77,0,28,0,67,0,24,0,90,0\n53,0,64,0,49,0,60,0,45,0,38,0\n22,0,65,0,10,0,52,0,32,0,6,0\n20,0,83,0,44,0,19,0,61,0,42,0\n14,0,13,0,9,0,29,0,18,0,69,0\n71,0,33,0,25,0,17,0,34,0,51,0\n35,0,55,0,15,0,26,0,86,0,59,0\n62,0,36,0,47,0,1,0,27,0,31,0\n56,0,84,0,80,0,37,0,67,0,89,0\n50,0,87,0,4,0,24,0,2,0,7,0\n66,0,41,0,23,0,3,0,28,0,43,0\n74,0,58,0,16,0,63,0,30,0,5,0\n54,0,79,0,85,0,82,0,21,0,75,0\n68,0,90,0,39,0,78,0,88,0,70,0\n57,0,72,0,11,0,12,0,73,0,46,0\n8,0,48,0,76,0,81,0,40,0,77,0\n80,0,33,0,47,0,59,0,61,0,22,0\n15,0,50,0,36,0,9,0,71,0,64,0\n31,0,25,0,29,0,23,0,87,0,37,0\n56,0,5,0,24,0,13,0,86,0,51,0\n74,0,42,0,67,0,10,0,35,0,66,0\n17,0,43,0,39,0,44,0,75,0,45,0\n21,0,34,0,12,0,3,0,16,0,90,0\n70,0,63,0,1,0,8,0,14,0,57,0\n81,0,32,0,2,0,79,0,20,0,60,0\n73,0,4,0,49,0,26,0,78,0,89,0\n77,0,83,0,52,0,53,0,72,0,18,0\n62,0,69,0,19,0,28,0,54,0,40,0\n84,0,58,0,27,0,85,0,7,0,41,0\n38,0,46,0,55,0,48,0,68,0,6,0\n11,0,88,0,30,0,82,0,65,0,76,0\n16,0,57,0,45,0,36,0,22,0,37,0\n13,0,59,0,17,0,21,0,32,0,42,0\n67,0,70,0,81,0,23,0,47,0,5,0\n29,0,50,0,79,0,56,0,26,0,63,0\n64,0,78,0,33,0,72,0,1,0,24,0\n12,0,49,0,43,0,84,0,86,0,40,0\n34,0,58,0,28,0,18,0,48,0,44,0\n30,0,71,0,27,0,55,0,53,0,73,0\n80,0,25,0,65,0,41,0,15,0,62,0\n9,0,82,0,38,0,52,0,87,0,39,0\n31,0,8,0,54,0,10,0,20,0,4,0\n68,0,51,0,2,0,89,0,69,0,3,0\n76,0,90,0,7,0,66,0,46,0,83,0\n6,0,75,0,19,0,77,0,35,0,11,0\n14,0,85,0,88,0,61,0,60,0,74,0\n21,0,29,0,36,0,86,0,78,0,48,0\n45,0,50,0,40,0,70,0,58,0,32,0\n72,0,63,0,42,0,15,0,49,0,34,0\n65,0,9,0,33,0,56,0,4,0,43,0\n24,0,82,0,89,0,47,0,55,0,25,0\n39,0,41,0,83,0,51,0,16,0,10,0\n46,0,75,0,22,0,2,0,13,0,67,0\n37,0,38,0,1,0,7,0,73,0,19,0\n17,0,74,0,81,0,52,0,28,0,31,0\n87,0,35,0,8,0,30,0,69,0,64,0\n62,0,5,0,76,0,71,0,57,0,85,0\n77,0,3,0,60,0,44,0,59,0,27,0\n79,0,18,0,61,0,84,0,11,0,68,0\n53,0,54,0,23,0,14,0,26,0,90,0\n12,0,88,0,66,0,20,0,80,0,6,0\n24,0,34,0,9,0,75,0,32,0,41,0\n65,0,73,0,28,0,51,0,45,0,42,0\n81,0,22,0,87,0,43,0,55,0,58,0\n48,0,13,0,37,0,35,0,39,0,71,0\n3,0,47,0,74,0,38,0,25,0,76,0\n69,0,83,0,21,0,1,0,50,0,84,0\n61,0,27,0,90,0,29,0,10,0,2,0\n89,0,64,0,11,0,63,0,66,0,54,0\n15,0,19,0,12,0,31,0,67,0,14,0\n46,0,26,0,16,0,18,0,85,0,17,0\n62,0,20,0,70,0,49,0,77,0,33,0\n86,0,57,0,53,0,4,0,88,0,79,0\n72,0,5,0,60,0,68,0,82,0,8,0\n6,0,7,0,36,0,56,0,30,0,59,0\n52,0,23,0,40,0,44,0,78,0,80,0\n"
  },
  {
    "path": "schedules/91_1.csv",
    "content": "39,0,15,0,11,0,74,0,53,0,8,0\n72,0,35,0,36,0,13,0,18,0,40,0\n59,0,5,0,17,0,45,0,81,0,63,0\n47,0,70,0,90,0,64,0,23,0,60,0\n25,0,12,0,9,0,16,0,57,0,67,0\n14,0,46,0,82,0,21,0,80,0,27,0\n48,0,61,0,24,0,55,0,32,0,22,0\n42,0,89,0,85,0,58,0,91,0,83,0\n20,0,49,0,52,0,86,0,29,0,51,0\n37,0,30,0,44,0,6,0,78,0,69,0\n79,0,41,0,77,0,88,0,76,0,31,0\n28,0,71,0,43,0,4,0,19,0,34,0\n10,0,7,0,66,0,1,0,65,0,84,0\n73,0,2,0,87,0,68,0,38,0,75,0\n50,0,56,0,26,0,62,0,54,0,3,0\n33,0,70,1,80,1,91,1,22,1,32,1\n"
  },
  {
    "path": "schedules/91_10.csv",
    "content": "7,0,68,0,33,0,80,0,59,0,85,0\n13,0,51,0,60,0,44,0,22,0,61,0\n48,0,47,0,73,0,21,0,6,0,14,0\n40,0,58,0,24,0,82,0,78,0,56,0\n50,0,84,0,31,0,4,0,69,0,83,0\n23,0,57,0,20,0,45,0,86,0,77,0\n67,0,74,0,91,0,66,0,28,0,15,0\n62,0,29,0,54,0,17,0,75,0,46,0\n26,0,10,0,41,0,90,0,39,0,89,0\n88,0,37,0,81,0,34,0,76,0,42,0\n16,0,2,0,79,0,8,0,9,0,32,0\n12,0,72,0,3,0,70,0,65,0,55,0\n63,0,36,0,53,0,64,0,1,0,18,0\n30,0,43,0,52,0,11,0,38,0,5,0\n87,0,35,0,27,0,25,0,19,0,49,0\n71,0,59,0,21,0,60,0,17,0,91,0\n61,0,28,0,85,0,57,0,31,0,41,0\n44,0,74,0,29,0,82,0,20,0,34,0\n45,0,6,0,89,0,15,0,56,0,8,0\n14,0,68,0,9,0,42,0,10,0,22,0\n2,0,65,0,51,0,69,0,40,0,67,0\n62,0,64,0,5,0,81,0,66,0,73,0\n47,0,54,0,37,0,53,0,78,0,25,0\n19,0,90,0,48,0,83,0,52,0,1,0\n12,0,46,0,38,0,4,0,79,0,18,0\n58,0,7,0,26,0,88,0,43,0,13,0\n30,0,32,0,77,0,87,0,33,0,55,0\n63,0,70,0,80,0,76,0,11,0,49,0\n50,0,23,0,3,0,27,0,75,0,24,0\n36,0,16,0,35,0,86,0,39,0,71,0\n72,0,53,0,61,0,84,0,40,0,34,0\n10,1,19,0,47,0,60,1,2,0,85,0\n57,0,29,0,1,0,12,0,91,0,22,0\n20,0,69,0,79,0,58,0,6,0,59,0\n43,0,42,0,25,0,44,0,46,0,90,0\n78,0,68,0,81,0,8,0,4,0,63,0\n83,0,45,0,70,0,64,0,7,0,87,0\n24,0,74,0,55,0,37,0,86,0,38,0\n66,0,13,0,65,0,50,0,35,0,33,0\n21,0,56,0,41,0,52,0,54,0,16,0\n17,0,84,0,5,0,32,0,48,0,23,0\n77,0,80,0,89,0,36,0,9,0,31,0\n71,0,82,0,49,0,62,0,3,0,67,0\n28,0,88,0,18,0,14,0,51,0,30,0\n72,0,26,0,76,0,73,0,27,0,15,0\n39,0,75,0,4,0,11,0,19,0,44,0\n66,0,6,0,34,0,7,0,38,0,24,0\n35,0,85,0,58,0,60,0,70,0,29,0\n5,0,90,0,61,0,20,0,47,0,8,0\n80,0,40,0,43,0,16,0,50,0,55,0\n49,0,10,0,2,0,21,0,74,0,12,0\n41,0,79,0,87,0,3,0,63,0,88,0\n62,0,22,0,25,0,36,0,59,0,48,0\n32,0,57,0,89,0,71,0,73,0,75,0\n76,0,84,0,33,0,28,0,9,0,1,0\n37,0,91,0,46,0,64,0,30,0,27,0\n31,0,65,0,14,0,52,0,26,0,81,0\n39,0,13,0,42,0,72,0,23,0,56,0\n78,0,83,0,67,0,53,0,77,0,17,0\n54,0,45,0,18,0,11,0,69,0,82,0\n51,0,68,0,41,0,86,0,15,0,62,0\n80,0,4,0,34,0,57,0,3,0,35,0\n43,0,19,0,61,0,6,0,33,0,71,0\n66,0,1,0,70,0,40,0,79,0,10,0\n58,0,91,0,14,0,25,0,84,0,89,0\n23,0,2,0,76,0,7,0,36,0,52,0\n38,0,83,0,56,0,75,0,63,0,47,0\n29,0,50,0,11,0,42,0,32,0,26,0\n78,0,69,0,16,0,74,0,30,0,48,0\n13,0,15,0,54,0,24,0,85,0,64,0\n86,0,9,0,44,0,88,0,21,0,27,0\n49,0,77,0,18,0,68,0,65,0,90,0\n12,0,39,0,20,0,87,0,51,0,17,0\n73,0,53,0,8,0,28,0,22,0,55,0\n31,0,5,0,59,0,72,0,37,0,82,0\n46,0,81,0,60,0,45,0,67,0,50,0\n43,0,75,0,36,0,34,0,41,0,91,0\n30,0,69,0,57,0,19,0,70,0,15,0\n74,0,88,0,47,0,80,0,71,0,23,0\n38,0,64,0,84,0,65,0,10,0,78,0\n32,0,56,0,7,0,18,0,20,0,25,0\n62,0,42,0,21,0,35,0,83,0,79,0\n22,0,52,0,40,0,89,0,33,0,37,0\n46,0,26,0,3,0,51,0,8,0,77,0\n67,0,44,0,14,0,59,0,54,0,63,0\n76,0,60,0,55,0,39,0,68,0,5,0\n16,0,72,0,28,0,87,0,29,0,81,0\n53,0,82,0,86,0,85,0,4,0,48,0\n45,0,1,0,73,0,61,0,49,0,24,0\n17,0,27,0,31,0,13,0,6,0,2,0\n66,0,12,0,90,0,11,0,58,0,9,0\n51,0,43,0,32,0,64,0,47,0,35,0\n25,0,70,0,8,0,67,0,21,0,33,0\n89,0,3,0,38,0,44,0,68,0,23,0\n14,0,7,0,71,0,5,0,69,0,29,0\n22,0,54,0,65,0,86,0,80,0,30,0\n88,0,46,0,83,0,20,0,73,0,36,0\n57,0,63,0,6,0,72,0,10,0,50,0\n17,0,76,0,74,0,85,0,90,0,40,0\n55,0,27,0,79,0,11,0,78,0,61,0\n15,0,58,0,39,0,77,0,37,0,1,0\n56,0,48,0,60,0,26,0,28,0,12,0\n91,0,4,0,87,0,52,0,62,0,9,0\n24,0,18,0,19,0,42,0,31,0,16,0\n45,0,82,0,75,0,66,0,2,0,84,0\n59,0,49,0,41,0,13,0,81,0,53,0\n34,0,83,0,5,0,89,0,51,0,54,0\n10,0,29,0,67,0,76,0,61,0,86,0\n78,0,20,0,85,0,43,0,14,0,3,0\n30,0,36,0,47,0,40,0,68,0,12,0\n37,0,73,0,35,0,9,0,17,0,7,0\n15,0,22,0,11,0,87,0,23,0,21,0\n25,0,4,0,26,0,45,0,71,0,55,0\n59,0,24,0,28,0,46,0,70,0,2,0\n8,0,48,0,49,0,44,0,91,0,31,0\n38,0,63,0,13,0,16,0,62,0,90,0\n77,0,52,0,69,0,66,0,88,0,72,0\n53,0,57,0,33,0,74,0,27,0,58,0\n79,0,64,0,34,0,19,0,50,0,56,0\n1,0,41,0,32,0,82,0,60,0,65,0\n81,0,18,0,80,0,39,0,6,0,84,0\n42,0,59,0,61,0,75,0,30,0,26,0\n40,0,15,0,29,0,3,0,25,0,31,0\n14,0,16,0,23,0,83,0,37,0,12,0\n89,0,21,0,4,0,66,0,76,0,43,0\n62,0,44,0,28,0,47,0,7,0,77,0\n9,0,33,0,64,0,20,0,49,0,72,0\n8,0,19,0,38,0,17,0,88,0,82,0\n71,0,52,0,51,0,53,0,10,0,24,0\n48,0,42,0,67,0,27,0,80,0,41,0\n6,0,75,0,5,0,22,0,70,0,78,0\n50,0,73,0,86,0,2,0,18,0,58,0\n85,0,39,0,63,0,45,0,32,0,34,0\n60,0,36,0,79,0,54,0,84,0,57,0\n74,0,87,0,68,0,46,0,13,0,1,0\n69,0,90,0,55,0,81,0,35,0,56,0\n65,0,11,0,7,0,91,0,16,0,53,0\n83,0,27,0,71,0,41,0,8,0,66,0\n6,0,40,0,4,0,5,0,42,0,49,0\n78,0,23,0,73,0,29,0,51,0,59,0\n15,0,17,0,10,0,18,0,44,0,33,0\n77,0,25,0,64,0,75,0,76,0,12,0\n30,0,1,0,50,0,62,0,89,0,85,0\n34,0,55,0,2,0,90,0,60,0,14,0\n86,0,3,0,91,0,13,0,69,0,32,0\n84,0,26,0,22,0,35,0,74,0,63,0\n37,0,87,0,56,0,36,0,61,0,65,0\n72,0,67,0,24,0,68,0,43,0,79,0\n48,0,81,0,9,0,38,0,54,0,70,0\n82,0,52,0,46,0,47,0,39,0,57,0\n58,0,45,0,21,0,19,0,28,0,80,0\n31,0,11,0,10,0,88,0,20,0,60,0\n"
  },
  {
    "path": "schedules/91_11.csv",
    "content": "66,0,28,0,91,0,8,0,6,0,60,0\n48,0,15,0,49,0,86,0,42,0,81,0\n18,0,11,0,57,0,1,0,7,0,53,0\n50,0,24,0,67,0,55,0,87,0,64,0\n13,0,25,0,85,0,82,0,56,0,32,0\n27,0,9,0,43,0,37,0,79,0,39,0\n35,0,47,0,44,0,63,0,29,0,40,0\n12,0,70,0,76,0,77,0,21,0,34,0\n74,0,54,0,65,0,61,0,71,0,51,0\n2,0,90,0,33,0,22,0,17,0,23,0\n14,0,4,0,41,0,38,0,31,0,83,0\n46,0,68,0,73,0,88,0,20,0,72,0\n58,0,36,0,84,0,78,0,30,0,3,0\n89,0,16,0,5,0,62,0,19,0,52,0\n10,0,45,0,69,0,80,0,59,0,75,0\n26,0,40,0,64,0,53,0,42,0,8,0\n70,0,29,0,15,0,71,0,25,0,24,0\n48,0,85,0,91,0,74,0,21,0,2,0\n90,0,18,0,86,0,35,0,6,0,14,0\n27,0,81,0,4,0,67,0,23,0,73,0\n41,0,11,0,12,0,54,0,37,0,58,0\n7,0,63,0,52,0,87,0,38,0,56,0\n75,0,19,0,3,0,82,0,65,0,83,0\n26,0,10,0,39,0,30,0,79,0,46,0\n20,0,55,0,61,0,66,0,45,0,44,0\n36,0,22,0,50,0,89,0,76,0,32,0\n51,0,60,0,17,0,49,0,72,0,69,0\n59,0,47,0,43,0,57,0,88,0,77,0\n31,0,1,0,34,0,33,0,16,0,78,0\n9,0,28,0,5,0,84,0,13,0,68,0\n62,0,91,0,37,0,80,0,24,0,14,0\n73,0,48,0,90,0,19,1,79,0,38,0\n30,0,85,0,11,0,42,0,23,0,75,0\n71,0,6,0,58,0,40,0,7,0,81,0\n32,0,87,0,8,0,21,0,29,0,54,0\n52,0,18,0,44,0,59,0,46,0,65,0\n76,0,20,0,67,0,3,0,25,0,49,0\n69,0,70,0,86,0,31,0,68,0,50,0\n72,0,47,0,61,0,1,0,41,0,89,0\n51,0,53,0,39,0,22,0,13,0,80,0\n55,0,77,0,82,0,84,0,10,0,4,0\n45,0,12,0,78,0,26,0,43,0,74,0\n64,0,35,0,9,0,2,0,16,0,28,0\n83,0,62,0,88,0,60,0,63,0,33,0\n66,0,15,0,34,0,5,0,17,0,57,0\n56,0,20,0,42,0,27,0,36,0,29,0\n68,0,76,0,59,0,71,0,85,0,89,0\n47,0,37,0,31,0,51,0,7,0,67,0\n10,0,38,0,61,0,6,0,11,0,49,0\n23,0,14,0,39,0,1,0,78,0,32,0\n77,0,45,0,40,0,16,0,87,0,73,0\n3,0,9,0,80,0,60,0,50,0,26,0\n5,0,46,0,53,0,2,0,25,0,65,0\n35,0,36,0,15,0,43,0,19,0,55,0\n57,0,90,0,13,0,27,0,52,0,12,0\n30,0,33,0,41,0,91,0,4,0,69,0\n21,0,72,0,84,0,86,0,83,0,56,0\n82,0,81,0,74,0,34,0,64,0,88,0\n54,0,17,0,28,0,48,0,44,0,62,0\n58,0,24,0,79,0,22,0,8,0,75,0\n66,0,63,0,89,0,18,0,70,0,26,0\n1,0,85,0,40,0,36,0,9,0,51,0\n65,0,42,0,35,0,32,0,73,0,37,0\n49,0,5,0,41,0,45,0,27,0,50,0\n53,0,86,0,16,0,38,0,12,0,33,0\n55,0,60,0,56,0,90,0,31,0,71,0\n19,0,81,0,11,0,76,0,84,0,44,0\n7,0,29,0,62,0,15,0,82,0,59,0\n79,0,14,0,87,0,28,0,61,0,88,0\n80,0,21,0,25,0,18,0,43,0,17,0\n77,0,2,0,52,0,30,0,67,0,6,0\n91,0,10,0,58,0,47,0,64,0,13,0\n54,0,70,0,75,0,20,0,39,0,4,0\n23,0,24,0,68,0,74,0,83,0,66,0\n8,0,72,0,78,0,48,0,63,0,57,0\n3,0,46,0,22,0,34,0,69,0,62,0\n36,0,86,0,73,0,41,0,44,0,7,0\n82,0,50,0,28,0,43,0,71,0,33,0\n2,0,81,0,51,0,56,0,14,0,45,0\n79,0,13,0,67,0,16,0,60,0,59,0\n64,0,27,0,32,0,17,0,75,0,26,0\n11,0,15,0,21,0,52,0,68,0,40,0\n55,0,37,0,18,0,77,0,23,0,48,0\n61,0,31,0,57,0,24,0,46,0,19,0\n63,0,42,0,12,0,91,0,84,0,22,0\n25,0,58,0,69,0,39,0,1,0,90,0\n29,0,88,0,66,0,53,0,85,0,10,0\n78,0,4,0,76,0,35,0,72,0,80,0\n6,0,83,0,5,0,54,0,9,0,49,0\n65,0,30,0,34,0,87,0,20,0,47,0\n38,0,74,0,8,0,70,0,3,0,89,0\n71,0,62,0,26,0,41,0,57,0,2,0\n18,0,48,0,61,0,68,0,64,0,43,0\n58,0,75,0,63,0,28,0,67,0,15,0\n60,0,36,0,42,0,25,0,10,0,12,0\n78,0,37,0,29,0,55,0,52,0,86,0\n7,0,46,0,13,0,54,0,45,0,76,0\n1,0,79,0,22,0,21,0,49,0,82,0\n32,0,91,0,53,0,77,0,20,0,81,0\n19,0,51,0,59,0,87,0,66,0,4,0\n65,0,40,0,84,0,88,0,17,0,50,0\n24,0,27,0,44,0,72,0,30,0,38,0\n56,0,73,0,6,0,89,0,69,0,23,0\n31,0,3,0,74,0,5,0,39,0,35,0\n83,0,90,0,16,0,80,0,47,0,85,0\n8,0,33,0,14,0,9,0,34,0,11,0\n70,0,42,0,57,0,58,0,45,0,82,0\n59,0,22,0,28,0,25,0,41,0,78,0\n79,0,71,0,20,0,19,0,77,0,86,0\n88,0,75,0,52,0,54,0,91,0,36,0\n43,0,89,0,60,0,7,0,30,0,84,0\n23,0,10,0,76,0,48,0,40,0,5,0\n24,0,69,0,3,0,81,0,85,0,18,0\n15,0,12,0,31,0,2,0,72,0,9,0\n1,0,29,0,46,0,67,0,74,0,90,0\n66,0,80,0,33,0,49,0,64,0,73,0\n68,0,16,0,56,0,26,0,65,0,14,0\n11,0,27,0,83,0,35,0,70,0,87,0\n21,0,13,0,6,0,37,0,44,0,50,0\n34,0,17,0,63,0,53,0,61,0,4,0\n39,0,38,0,32,0,55,0,62,0,47,0\n8,0,30,0,5,0,51,0,18,0,12,0\n89,0,78,0,75,0,46,0,81,0,90,0\n79,0,66,0,41,0,42,0,84,0,52,0\n80,0,7,0,19,0,22,0,88,0,67,0\n77,0,26,0,69,0,65,0,28,0,11,0\n14,0,2,0,49,0,70,0,13,0,40,0\n85,0,44,0,64,0,60,0,15,0,1,0\n45,0,4,0,9,0,47,0,29,0,48,0\n53,0,59,0,74,0,21,0,27,0,31,0\n39,0,87,0,57,0,86,0,91,0,76,0\n43,0,82,0,16,0,20,0,24,0,6,0\n38,0,23,0,54,0,50,0,34,0,25,0\n17,0,83,0,71,0,36,0,8,0,37,0\n33,0,56,0,35,0,58,0,61,0,68,0\n32,0,63,0,51,0,10,0,73,0,3,0\n62,0,72,0,81,0,55,0,79,0,11,0\n80,0,77,0,64,0,5,0,29,0,14,0\n88,0,48,0,31,0,13,0,89,0,30,0\n40,0,22,0,4,0,20,0,74,0,57,0\n60,0,82,0,27,0,47,0,86,0,54,0\n69,0,53,0,6,0,15,0,78,0,19,0\n21,0,65,0,33,0,36,0,24,0,66,0\n84,0,39,0,73,0,34,0,18,0,71,0\n37,0,10,0,28,0,1,0,70,0,56,0\n49,0,16,0,46,0,8,0,63,0,55,0\n59,0,90,0,50,0,61,0,2,0,42,0\n26,0,51,0,52,0,58,0,76,0,83,0\n17,0,38,0,67,0,45,0,85,0,35,0\n23,0,3,0,72,0,43,0,7,0,91,0\n44,0,9,0,87,0,32,0,41,0,75,0\n25,0,68,0,6,0,12,0,62,0,4,0\n47,0,24,0,22,0,73,0,5,0,11,0\n49,0,29,0,19,0,28,0,39,0,30,0\n21,0,55,0,89,0,14,0,69,0,57,0\n37,0,33,0,84,0,15,0,26,0,46,0\n67,0,83,0,40,0,78,0,61,0,79,0\n54,0,27,0,2,0,80,0,63,0,1,0\n74,0,17,0,41,0,13,0,56,0,77,0\n50,0,62,0,20,0,52,0,58,0,85,0\n71,0,70,0,44,0,91,0,51,0,16,0\n82,0,87,0,72,0,53,0,90,0,36,0\n23,0,12,0,86,0,64,0,3,0,59,0\n75,0,7,0,25,0,48,0,35,0,66,0\n81,0,65,0,43,0,8,0,10,0,31,0\n88,0,38,0,18,0,42,0,76,0,9,0\n34,0,68,0,45,0,32,0,60,0,19,0\n"
  },
  {
    "path": "schedules/91_12.csv",
    "content": "45,0,53,0,38,0,62,0,44,0,68,0\n7,0,49,0,89,0,30,0,34,0,10,0\n28,0,12,0,64,0,77,0,74,0,31,0\n13,0,83,0,78,0,22,0,6,0,82,0\n14,0,32,0,46,0,25,0,90,0,37,0\n39,0,91,0,60,0,11,0,58,0,21,0\n20,0,42,0,65,0,41,0,29,0,35,0\n18,0,70,0,56,0,26,0,57,0,61,0\n47,0,66,0,19,0,76,0,80,0,48,0\n71,0,81,0,3,0,27,0,50,0,23,0\n51,0,8,0,24,0,59,0,36,0,67,0\n5,0,43,0,88,0,9,0,63,0,75,0\n73,0,54,0,87,0,40,0,52,0,84,0\n17,0,72,0,33,0,15,0,79,0,1,0\n55,0,4,0,16,0,69,0,85,0,86,0\n2,0,83,0,74,0,20,0,11,0,26,0\n60,0,35,0,78,0,7,0,47,0,14,0\n44,0,19,0,13,0,49,0,25,0,39,0\n50,0,57,0,6,0,31,0,23,0,21,0\n62,0,43,0,90,0,51,0,41,0,80,0\n64,0,3,0,32,0,56,0,8,0,58,0\n61,0,91,0,79,0,63,0,24,0,67,0\n53,0,66,0,46,0,42,0,28,0,86,0\n75,0,16,0,38,0,55,0,30,0,12,0\n69,0,22,0,9,0,73,0,15,0,34,0\n84,0,59,0,81,0,33,0,40,0,5,0\n76,0,85,0,77,0,29,0,27,0,2,0\n48,0,18,0,65,0,52,0,36,0,82,0\n87,0,10,0,45,0,71,0,70,0,72,0\n88,0,37,0,17,0,68,0,54,0,89,0\n1,0,61,0,32,0,4,0,20,0,60,0\n51,0,19,0,79,0,78,0,91,0,55,0\n46,0,26,0,75,0,14,0,73,0,64,0\n50,0,63,0,42,0,22,0,44,0,33,0\n66,0,15,0,77,0,5,0,67,0,49,0\n58,0,47,0,38,0,83,0,16,0,24,0\n85,0,31,0,48,0,56,0,35,0,43,0\n57,0,71,0,65,0,28,0,72,0,88,0\n80,0,8,0,68,0,1,0,11,0,52,0\n7,0,82,0,69,0,59,0,87,0,76,0\n6,0,81,0,37,0,70,0,36,0,39,0\n40,0,30,0,53,0,18,0,17,0,90,0\n84,0,21,0,27,0,34,0,4,0,41,0\n13,0,10,0,2,0,54,0,3,0,29,0\n23,0,86,0,25,0,45,0,74,0,12,0\n89,0,9,0,14,0,62,0,64,0,72,0\n85,0,46,0,44,0,8,0,77,0,79,0\n58,0,63,0,51,0,69,0,35,0,26,0\n28,0,37,0,73,0,55,0,11,0,24,0\n40,0,87,0,91,0,47,0,56,0,65,0\n16,0,27,0,7,0,32,0,88,0,53,0\n17,0,61,0,43,0,84,0,36,0,10,0\n29,0,31,0,13,0,4,0,18,0,45,0\n78,0,12,0,39,0,66,0,80,0,33,0\n52,0,70,0,57,0,25,0,34,0,2,0\n20,0,54,0,75,0,6,0,59,0,15,0\n67,0,22,0,76,0,89,0,74,0,3,0\n30,0,1,0,62,0,21,0,83,0,19,0\n68,0,48,0,50,0,49,0,41,0,9,0\n42,0,82,0,38,0,71,0,23,0,5,0\n81,0,90,0,29,0,60,0,86,0,87,0\n56,0,69,0,12,0,37,0,27,0,78,0\n16,0,65,0,11,0,13,0,61,0,64,0\n47,0,59,0,32,0,15,0,43,0,31,0\n36,0,46,0,54,0,45,0,58,0,55,0\n89,0,51,0,66,0,6,0,73,0,44,0\n10,0,24,0,19,0,75,0,40,0,57,0\n76,0,91,0,4,0,26,0,62,0,53,0\n7,0,39,0,85,0,5,0,1,0,41,0\n67,0,48,0,30,0,23,0,72,0,2,0\n77,0,83,0,42,0,14,0,63,0,3,0\n33,0,21,0,35,0,74,0,49,0,90,0\n28,0,52,0,9,0,81,0,22,0,79,0\n84,0,86,0,18,0,80,0,71,0,88,0\n70,0,25,0,68,0,82,0,50,0,20,0\n60,0,17,0,34,0,38,0,8,0,13,0\n59,0,45,0,64,0,19,0,53,0,61,0\n15,0,12,0,89,0,2,0,51,0,40,0\n26,0,63,0,36,0,47,0,23,0,10,0\n6,0,11,0,41,0,87,0,33,0,3,0\n37,0,21,0,16,0,48,0,42,0,9,0\n90,0,78,0,4,0,52,0,43,0,49,0\n73,0,76,0,25,0,88,0,81,0,85,0\n44,0,28,0,27,0,54,0,70,0,30,0\n39,0,74,0,69,0,8,0,31,0,71,0\n18,0,62,0,7,0,20,0,46,0,24,0\n82,0,66,0,79,0,75,0,58,0,34,0\n83,0,72,0,50,0,56,0,60,0,29,0\n35,0,55,0,80,0,32,0,17,0,57,0\n86,0,5,0,65,0,68,0,14,0,67,0\n22,0,38,0,84,0,1,0,77,0,91,0\n87,0,64,0,27,0,78,0,36,0,15,0\n47,0,61,0,6,0,12,0,9,0,8,0\n71,0,52,0,20,0,89,0,16,0,13,0\n69,0,11,0,40,0,42,0,62,0,88,0\n48,0,45,0,39,0,51,0,76,0,30,0\n35,0,79,0,23,0,10,0,37,0,83,0\n57,0,60,0,67,0,82,0,53,0,85,0\n3,0,1,0,28,0,86,0,32,0,26,0\n4,0,59,0,73,0,38,0,63,0,72,0\n17,0,2,0,77,0,19,0,50,0,90,0\n22,0,24,0,29,0,80,0,5,0,46,0\n84,0,58,0,49,0,65,0,70,0,31,0\n41,0,14,0,54,0,56,0,66,0,81,0\n91,0,21,0,7,0,75,0,44,0,25,0\n34,0,55,0,74,0,18,0,68,0,43,0\n33,0,13,0,36,0,30,0,28,0,69,0\n72,0,86,0,82,0,37,0,61,0,51,0\n39,0,59,0,3,0,57,0,35,0,62,0\n16,0,78,0,8,0,10,0,50,0,73,0\n24,0,31,0,27,0,90,0,83,0,89,0\n11,0,70,0,23,0,17,0,29,0,66,0\n80,0,40,0,64,0,6,0,7,0,63,0\n41,0,88,0,79,0,4,0,2,0,47,0\n15,0,58,0,74,0,53,0,52,0,44,0\n18,0,49,0,71,0,85,0,75,0,32,0\n54,0,60,0,5,0,48,0,91,0,12,0\n56,0,9,0,55,0,25,0,84,0,67,0\n21,0,20,0,43,0,45,0,22,0,77,0\n38,0,34,0,33,0,76,0,14,0,65,0\n26,0,19,0,68,0,42,0,81,0,87,0\n1,0,47,0,57,0,46,0,51,0,69,0\n36,0,74,0,80,0,72,0,16,0,40,0\n63,0,53,0,89,0,11,0,29,0,8,0\n50,0,66,0,35,0,88,0,91,0,13,0\n59,0,44,0,12,0,41,0,18,0,10,0\n62,0,58,0,28,0,48,0,25,0,78,0\n86,0,76,0,71,0,54,0,64,0,17,0\n55,0,22,0,90,0,65,0,26,0,39,0\n77,0,30,0,4,0,82,0,9,0,81,0\n3,0,19,0,43,0,70,0,46,0,38,0\n67,0,52,0,83,0,5,0,21,0,32,0\n24,0,14,0,23,0,1,0,85,0,87,0\n56,0,68,0,2,0,73,0,7,0,33,0\n49,0,27,0,61,0,6,0,42,0,79,0\n37,0,15,0,75,0,84,0,60,0,45,0\n34,0,31,0,36,0,20,0,91,0,86,0\n8,0,66,0,72,0,35,0,22,0,18,0\n9,0,44,0,11,0,71,0,78,0,59,0\n32,0,38,0,10,0,48,0,69,0,81,0\n25,0,65,0,77,0,53,0,54,0,24,0\n56,0,50,0,89,0,46,0,39,0,4,0\n5,0,63,0,70,0,16,0,76,0,90,0\n58,0,29,0,57,0,43,0,33,0,37,0\n26,0,34,0,1,0,67,0,6,0,45,0\n84,0,23,0,51,0,28,0,20,0,19,0\n31,0,52,0,12,0,17,0,42,0,7,0\n40,0,85,0,21,0,13,0,3,0,68,0\n60,0,64,0,41,0,79,0,49,0,73,0\n14,0,30,0,88,0,61,0,15,0,55,0\n75,0,62,0,82,0,47,0,74,0,27,0\n2,0,87,0,37,0,80,0,83,0,44,0\n11,0,86,0,36,0,22,0,57,0,56,0\n1,0,89,0,59,0,66,0,16,0,25,0\n54,0,18,0,50,0,67,0,7,0,38,0\n70,0,32,0,33,0,51,0,13,0,77,0\n85,0,12,0,6,0,19,0,58,0,65,0\n73,0,88,0,45,0,91,0,3,0,90,0\n69,0,23,0,41,0,75,0,61,0,52,0\n10,0,40,0,60,0,9,0,39,0,27,0\n83,0,4,0,35,0,28,0,15,0,68,0\n72,0,42,0,24,0,78,0,84,0,76,0\n74,0,87,0,63,0,46,0,17,0,48,0\n8,0,30,0,5,0,26,0,31,0,79,0\n49,0,20,0,80,0,53,0,81,0,14,0\n55,0,43,0,82,0,21,0,64,0,2,0\n71,0,29,0,34,0,47,0,62,0,73,0\n6,0,56,0,10,0,38,0,77,0,52,0\n88,0,68,0,23,0,60,0,22,0,59,0\n9,0,19,0,33,0,27,0,86,0,89,0\n70,0,91,0,41,0,32,0,78,0,74,0\n45,0,17,0,25,0,69,0,65,0,83,0\n76,0,44,0,61,0,46,0,40,0,35,0\n8,0,90,0,7,0,57,0,66,0,84,0\n43,0,2,0,28,0,39,0,18,0,16,0\n14,0,79,0,29,0,36,0,21,0,12,0\n20,0,47,0,85,0,37,0,30,0,64,0\n49,0,54,0,72,0,11,0,82,0,3,0\n51,0,87,0,53,0,50,0,5,0,34,0\n67,0,42,0,75,0,4,0,80,0,58,0\n1,0,31,0,81,0,63,0,55,0,62,0\n26,0,15,0,48,0,71,0,13,0,24,0\n"
  },
  {
    "path": "schedules/91_13.csv",
    "content": "69,0,55,0,83,0,48,0,41,0,86,0\n33,0,82,0,9,0,47,0,32,0,43,0\n45,0,42,0,28,0,66,0,61,0,68,0\n12,0,36,0,64,0,74,0,87,0,60,0\n62,0,4,0,81,0,25,0,44,0,57,0\n73,0,18,0,24,0,65,0,50,0,6,0\n29,0,22,0,30,0,40,0,23,0,89,0\n31,0,78,0,54,0,58,0,46,0,84,0\n67,0,51,0,85,0,56,0,75,0,37,0\n79,0,26,0,27,0,11,0,10,0,20,0\n53,0,15,0,90,0,71,0,49,0,17,0\n76,0,91,0,70,0,88,0,13,0,63,0\n19,0,21,0,77,0,14,0,72,0,1,0\n38,0,3,0,80,0,35,0,52,0,59,0\n8,0,5,0,39,0,34,0,7,0,16,0\n57,0,45,0,18,0,2,0,47,0,55,0\n46,0,86,0,9,0,50,0,67,0,87,0\n69,0,66,0,43,0,75,0,40,0,54,0\n79,0,71,0,65,0,44,0,49,0,82,0\n10,0,62,0,30,0,84,0,51,0,29,0\n61,0,33,0,17,0,14,0,23,0,22,0\n76,0,77,0,72,0,31,0,3,0,11,0\n53,0,21,0,5,0,81,0,24,0,36,0\n89,0,13,0,80,0,74,0,27,0,28,0\n41,0,7,0,59,0,91,0,64,0,1,0\n2,0,73,0,70,0,19,0,83,0,52,0\n68,0,25,0,20,0,8,0,56,0,48,0\n88,0,58,0,32,0,39,0,37,0,15,0\n78,0,6,0,42,0,90,0,16,0,35,0\n60,0,63,0,38,0,34,0,85,0,4,0\n12,0,77,0,22,0,26,0,71,0,81,0\n14,1,50,0,62,0,47,1,54,0,66,0\n64,1,46,0,74,0,24,1,57,0,30,0\n52,1,55,0,70,0,11,0,33,0,40,0\n7,0,25,0,86,0,53,0,31,0,29,0\n8,0,68,0,2,0,79,0,88,0,1,0\n39,0,20,0,87,0,3,0,83,0,18,0\n9,0,35,0,56,0,90,0,17,0,45,0\n34,0,89,0,63,0,10,0,43,0,12,0\n44,0,19,0,61,0,26,0,80,0,69,0\n72,0,38,0,6,0,75,0,60,0,82,0\n15,0,42,0,67,0,13,0,36,0,41,0\n59,0,84,0,23,0,32,0,76,0,27,0\n85,0,49,0,91,0,73,0,58,0,5,0\n28,0,78,0,65,0,21,0,48,0,51,0\n37,0,4,0,83,0,16,0,74,0,40,0\n1,0,29,0,11,0,47,0,35,0,50,0\n52,0,71,0,61,0,62,0,39,0,68,0\n38,0,18,0,31,0,43,0,45,0,8,0\n19,0,13,0,30,0,24,0,9,0,20,0\n53,0,67,0,14,0,84,0,2,0,12,0\n79,0,22,0,5,0,63,0,41,0,77,0\n3,0,51,0,81,0,73,0,64,0,69,0\n88,0,65,0,33,0,4,0,10,0,16,0\n60,0,76,0,66,0,48,0,37,0,58,0\n72,0,54,0,15,0,25,0,70,0,27,0\n42,0,21,0,46,0,82,0,80,0,23,0\n36,0,28,0,26,0,86,0,91,0,90,0\n56,0,6,0,87,0,34,0,59,0,57,0\n7,0,85,0,44,0,55,0,17,0,89,0\n32,0,78,0,18,0,49,0,75,0,63,0\n50,0,81,0,64,0,68,0,67,0,16,0\n4,0,9,0,76,0,5,0,52,0,20,0\n60,0,41,0,35,0,19,0,31,0,33,0\n83,0,77,0,47,0,24,0,42,0,88,0\n58,0,90,0,40,0,1,0,62,0,38,0\n80,0,72,0,86,0,57,0,14,0,79,0\n8,0,89,0,51,0,66,0,46,0,53,0\n29,0,70,0,82,0,17,0,59,0,36,0\n45,0,84,0,15,0,26,0,21,0,43,0\n11,0,49,0,2,0,56,0,22,0,7,0\n39,0,27,0,44,0,75,0,78,0,73,0\n3,0,48,0,28,0,30,0,71,0,34,0\n25,0,74,0,6,0,32,0,10,0,55,0\n12,0,37,0,65,0,91,0,54,0,61,0\n13,0,69,0,23,0,85,0,87,0,90,0\n8,0,64,0,18,0,83,0,9,0,72,0\n67,0,59,0,4,0,79,0,51,0,15,0\n76,0,49,0,89,0,47,0,41,0,68,0\n44,0,56,0,42,0,84,0,24,0,70,0\n88,0,21,0,40,0,3,0,46,0,60,0\n5,0,82,0,16,0,30,0,53,0,27,0\n39,0,14,0,43,0,91,0,81,0,6,0\n58,0,10,0,35,0,87,0,61,0,57,0\n48,0,52,0,54,0,77,0,13,0,29,0\n73,0,62,0,37,0,63,0,23,0,86,0\n17,0,31,0,26,0,78,0,1,0,74,0\n34,0,45,0,75,0,80,0,19,0,50,0\n65,0,69,0,22,0,28,0,7,0,55,0\n20,0,2,0,71,0,32,0,38,0,36,0\n12,0,11,0,66,0,25,0,33,0,85,0\n14,0,8,0,70,0,87,0,51,0,27,0\n67,0,10,0,84,0,49,0,52,0,60,0\n35,0,77,0,61,0,4,0,18,0,82,0\n59,0,47,0,40,0,86,0,81,0,58,0\n54,0,17,0,6,0,41,0,30,0,88,0\n24,0,5,0,74,0,48,0,45,0,23,0\n9,0,7,0,50,0,71,0,37,0,42,0\n55,0,29,0,38,0,12,0,39,0,73,0\n69,0,33,0,89,0,20,0,91,0,15,0\n79,0,62,0,34,0,75,0,76,0,21,0\n80,0,64,0,28,0,63,0,25,0,11,0\n16,0,57,0,32,0,22,0,31,0,13,0\n1,0,36,0,53,0,65,0,56,0,83,0\n90,0,2,0,66,0,72,0,46,0,44,0\n85,0,68,0,43,0,3,0,19,0,26,0\n78,0,41,0,27,0,37,0,38,0,9,0\n84,0,48,0,91,0,35,0,17,0,81,0\n20,0,82,0,34,0,45,0,58,0,7,0\n6,0,52,0,86,0,8,0,74,0,15,0\n11,0,57,0,73,0,42,0,59,0,89,0\n28,0,32,0,79,0,53,0,60,0,62,0\n67,0,88,0,25,0,69,0,21,0,18,0\n75,0,16,0,55,0,14,0,46,0,77,0\n49,0,83,0,87,0,76,0,43,0,29,0\n36,0,68,0,40,0,10,0,80,0,85,0\n47,0,30,0,26,0,39,0,66,0,65,0\n3,0,13,0,50,0,2,0,78,0,23,0\n33,0,54,0,56,0,5,0,44,0,64,0\n70,0,4,0,19,0,90,0,12,0,31,0\n1,0,51,0,71,0,24,0,63,0,61,0\n22,0,58,0,20,0,72,0,74,0,67,0\n46,0,41,0,34,0,29,0,25,0,14,0\n40,0,49,0,84,0,9,0,28,0,77,0\n48,0,11,0,16,0,87,0,15,0,75,0\n36,0,43,0,7,0,88,0,66,0,78,0\n42,0,33,0,91,0,79,0,30,0,38,0\n52,0,23,0,81,0,65,0,35,0,89,0\n8,0,27,0,63,0,19,0,47,0,17,0\n51,0,55,0,90,0,82,0,83,0,50,0\n57,0,76,0,39,0,53,0,54,0,85,0\n44,0,60,0,1,0,3,0,22,0,45,0\n73,0,56,0,72,0,4,0,26,0,32,0\n71,0,31,0,62,0,18,0,5,0,80,0\n61,0,12,0,21,0,13,0,6,0,64,0\n37,0,59,0,69,0,10,0,2,0,24,0\n70,0,86,0,77,0,68,0,38,0,65,0\n8,0,58,0,75,0,23,0,41,0,28,0\n81,0,54,0,87,0,55,0,42,0,19,0\n67,0,57,0,63,0,3,0,29,0,90,0\n45,0,30,0,14,0,32,0,83,0,11,0\n72,0,88,0,5,0,84,0,50,0,89,0\n82,0,15,0,85,0,62,0,64,0,22,0\n78,0,16,0,47,0,60,0,71,0,91,0\n46,0,24,0,7,0,33,0,76,0,26,0\n48,0,27,0,4,0,49,0,6,0,36,0\n39,0,31,0,9,0,10,0,59,0,21,0\n20,0,53,0,73,0,43,0,80,0,70,0\n79,0,56,0,69,0,35,0,74,0,66,0\n34,0,18,0,13,0,44,0,68,0,37,0\n40,0,25,0,17,0,61,0,2,0,51,0\n12,0,52,0,75,0,86,0,1,0,30,0\n83,0,29,0,28,0,15,0,33,0,81,0\n32,0,85,0,42,0,48,0,46,0,65,0\n76,0,10,0,19,0,78,0,67,0,82,0\n90,0,54,0,14,0,60,0,20,0,89,0\n80,0,39,0,84,0,8,0,69,0,4,0\n13,0,49,0,59,0,66,0,45,0,72,0\n51,0,35,0,68,0,2,0,43,0,22,0\n12,0,3,0,24,0,41,0,62,0,16,0\n86,0,17,0,44,0,5,0,6,0,11,0\n71,0,27,0,88,0,34,0,55,0,64,0\n38,0,21,0,74,0,61,0,47,0,7,0\n1,0,23,0,57,0,9,0,36,0,70,0\n25,0,37,0,87,0,79,0,77,0,73,0\n50,0,91,0,63,0,56,0,31,0,40,0\n58,0,26,0,53,0,18,0,52,0,42,0\n33,0,16,0,2,0,54,0,80,0,49,0\n11,0,24,0,4,0,78,0,29,0,68,0\n35,0,88,0,44,0,12,0,67,0,28,0\n17,0,83,0,43,0,13,0,46,0,62,0\n55,0,61,0,30,0,72,0,8,0,36,0\n66,0,20,0,41,0,21,0,86,0,57,0\n23,0,32,0,91,0,34,0,77,0,51,0\n45,0,52,0,1,0,87,0,71,0,69,0\n65,0,15,0,40,0,5,0,76,0,14,0\n90,0,75,0,10,0,47,0,73,0,22,0\n85,0,74,0,63,0,53,0,9,0,59,0\n19,0,48,0,64,0,89,0,39,0,79,0\n60,0,27,0,56,0,18,0,81,0,7,0\n25,0,26,0,50,0,58,0,38,0,70,0\n6,0,82,0,3,0,37,0,31,0,84,0\n86,0,34,0,78,0,52,0,33,0,72,0\n36,0,51,0,14,0,45,0,44,0,76,0\n66,0,32,0,80,0,17,0,24,0,67,0\n73,0,54,0,13,0,8,0,35,0,40,0\n75,0,64,0,29,0,65,0,42,0,20,0\n10,0,23,0,47,0,15,0,28,0,56,0\n12,0,83,0,68,0,27,0,57,0,7,0\n22,0,49,0,37,0,46,0,19,0,38,0\n79,0,18,0,84,0,85,0,1,0,16,0\n81,0,74,0,41,0,70,0,11,0,71,0\n48,0,26,0,87,0,88,0,62,0,82,0\n9,0,3,0,55,0,4,0,91,0,53,0\n77,0,60,0,50,0,39,0,30,0,69,0\n5,0,59,0,43,0,61,0,90,0,25,0\n2,0,89,0,58,0,21,0,6,0,63,0\n31,0,47,0,24,0,14,0,64,0,52,0\n"
  },
  {
    "path": "schedules/91_14.csv",
    "content": "32,0,72,0,85,0,61,0,65,0,44,0\n43,0,24,0,1,0,26,0,69,0,17,0\n51,0,66,0,19,0,88,0,22,0,11,0\n78,0,60,0,7,0,13,0,6,0,59,0\n42,0,62,0,46,0,82,0,37,0,18,0\n3,0,8,0,16,0,48,0,79,0,38,0\n31,0,12,0,80,0,58,0,2,0,41,0\n75,0,52,0,91,0,14,0,28,0,39,0\n81,0,53,0,74,0,73,0,63,0,49,0\n55,0,86,0,33,0,36,0,35,0,30,0\n76,0,54,0,84,0,40,0,5,0,90,0\n57,0,68,0,23,0,10,0,29,0,47,0\n87,0,64,0,21,0,25,0,9,0,71,0\n50,0,45,0,77,0,89,0,56,0,4,0\n34,0,67,0,83,0,70,0,20,0,27,0\n15,0,7,0,39,0,2,0,22,0,17,0\n58,0,62,0,49,0,73,0,3,0,28,0\n85,0,41,0,42,0,55,0,11,0,78,0\n86,0,69,0,38,0,59,0,40,0,19,0\n12,0,57,0,65,0,30,0,24,0,53,0\n52,0,64,0,44,0,46,0,29,0,80,0\n47,0,31,0,18,0,81,0,32,0,9,0\n54,0,35,0,20,0,91,0,8,0,21,0\n51,0,43,0,70,0,90,0,60,0,77,0\n14,0,83,0,61,0,71,0,79,0,26,0\n37,0,76,0,48,0,10,0,87,0,67,0\n27,0,36,0,50,0,16,0,45,0,66,0\n89,0,6,0,63,0,34,0,1,0,25,0\n84,0,4,0,88,0,74,0,82,0,33,0\n13,0,72,0,56,0,68,0,5,0,15,0\n23,0,73,0,46,0,75,0,2,0,55,0\n69,1,11,0,29,0,9,1,35,0,28,0\n77,1,61,0,47,0,14,1,86,0,62,0\n83,0,49,0,48,0,58,0,39,0,60,0\n8,0,24,0,36,0,42,0,27,0,32,0\n44,0,70,0,21,0,63,0,76,0,91,0\n80,0,1,0,4,0,59,0,66,0,67,0\n17,0,89,0,5,0,51,0,3,0,57,0\n64,0,34,0,90,0,88,0,72,0,75,0\n65,0,87,0,40,0,68,0,13,0,82,0\n45,0,7,0,71,0,53,0,54,0,41,0\n33,0,56,0,85,0,16,0,26,0,31,0\n10,0,19,0,23,0,6,0,50,0,79,0\n37,0,20,0,81,0,78,0,52,0,12,0\n18,0,38,0,84,0,25,0,22,0,43,0\n15,0,30,0,48,0,74,0,44,0,77,0\n47,0,27,0,89,0,69,0,72,0,80,0\n65,0,68,0,35,0,34,0,60,0,9,0\n71,0,21,0,1,0,46,0,5,0,49,0\n28,0,4,0,82,0,24,0,76,0,73,0\n33,0,7,0,58,0,19,0,61,0,90,0\n67,0,88,0,51,0,57,0,56,0,55,0\n62,0,17,0,79,0,85,0,20,0,45,0\n14,0,59,0,25,0,8,0,12,0,74,0\n64,0,81,0,36,0,11,0,6,0,54,0\n70,0,53,0,2,0,32,0,52,0,38,0\n29,0,83,0,3,0,41,0,22,0,13,0\n50,0,75,0,15,0,91,0,40,0,18,0\n84,0,10,0,26,0,78,0,66,0,86,0\n37,0,42,0,39,0,43,0,16,0,23,0\n30,0,87,0,69,0,63,0,31,0,45,0\n49,0,9,0,56,0,33,0,76,0,17,0\n67,0,72,0,25,0,19,0,7,0,28,0\n74,0,71,0,38,0,34,0,47,0,81,0\n82,0,22,0,29,0,14,0,1,0,36,0\n2,0,90,0,79,0,44,0,18,0,41,0\n24,0,88,0,55,0,20,0,68,0,58,0\n52,0,77,0,83,0,40,0,8,0,66,0\n57,0,26,0,54,0,70,0,50,0,46,0\n16,0,86,0,80,0,11,0,15,0,53,0\n87,0,39,0,32,0,3,0,84,0,35,0\n75,0,6,0,78,0,27,0,62,0,5,0\n31,0,48,0,91,0,65,0,37,0,89,0\n63,0,51,0,85,0,4,0,10,0,13,0\n42,0,59,0,43,0,21,0,73,0,30,0\n12,0,23,0,60,0,61,0,64,0,40,0\n26,0,70,0,67,0,29,0,9,0,8,0\n68,0,80,0,33,0,83,0,50,0,22,0\n47,0,28,0,2,0,87,0,79,0,1,0\n55,0,5,0,16,0,82,0,7,0,81,0\n89,0,41,0,75,0,35,0,37,0,24,0\n18,0,53,0,27,0,13,0,48,0,39,0\n91,0,90,0,57,0,73,0,69,0,71,0\n60,0,59,0,21,0,88,0,36,0,85,0\n3,0,54,0,72,0,30,0,56,0,52,0\n34,0,45,0,49,0,61,0,43,0,84,0\n58,0,66,0,63,0,38,0,78,0,51,0\n11,0,74,0,10,0,65,0,62,0,32,0\n6,0,19,0,46,0,76,0,12,0,77,0\n17,0,44,0,23,0,31,0,25,0,86,0\n64,0,15,0,14,0,20,0,4,0,42,0\n69,0,67,0,5,0,36,0,79,0,39,0\n73,0,89,0,70,0,40,0,13,0,33,0\n1,0,3,0,53,0,8,0,37,0,85,0\n16,0,91,0,83,0,9,0,78,0,88,0\n80,0,30,0,58,0,18,0,21,0,10,0\n77,0,27,0,55,0,71,0,22,0,65,0\n75,0,47,0,59,0,61,0,11,0,45,0\n54,0,82,0,62,0,32,0,25,0,19,0\n90,0,17,0,51,0,12,0,42,0,50,0\n64,0,57,0,7,0,52,0,48,0,34,0\n35,0,86,0,63,0,43,0,56,0,46,0\n31,0,84,0,20,0,76,0,29,0,60,0\n15,0,41,0,74,0,28,0,6,0,26,0\n44,0,49,0,68,0,14,0,4,0,38,0\n66,0,87,0,24,0,72,0,23,0,81,0\n2,0,37,0,61,0,5,0,9,0,30,0\n82,0,55,0,10,0,17,0,70,0,59,0\n75,0,22,0,16,0,54,0,67,0,58,0\n63,0,40,0,48,0,80,0,11,0,42,0\n27,0,79,0,86,0,31,0,51,0,21,0\n15,0,71,0,89,0,43,0,85,0,19,0\n25,0,78,0,39,0,68,0,4,0,46,0\n26,0,44,0,81,0,20,0,69,0,7,0\n13,0,83,0,28,0,64,0,32,0,84,0\n66,0,18,0,56,0,8,0,47,0,73,0\n6,0,45,0,91,0,24,0,33,0,52,0\n74,0,76,0,34,0,2,0,3,0,36,0\n77,0,29,0,65,0,49,0,87,0,38,0\n57,0,72,0,60,0,1,0,41,0,62,0\n88,0,90,0,35,0,14,0,23,0,53,0\n12,0,9,0,75,0,50,0,86,0,7,0\n28,0,10,0,81,0,22,0,27,0,46,0\n47,0,21,0,78,0,82,0,67,0,17,0\n69,0,8,0,32,0,51,0,33,0,37,0\n52,0,36,0,5,0,19,0,63,0,83,0\n15,0,79,0,42,0,58,0,89,0,76,0\n26,0,65,0,45,0,64,0,2,0,73,0\n35,0,13,0,16,0,90,0,1,0,74,0\n4,0,12,0,40,0,72,0,71,0,91,0\n3,0,66,0,55,0,60,0,44,0,14,0\n61,0,20,0,6,0,43,0,87,0,57,0\n31,0,77,0,62,0,59,0,53,0,68,0\n34,0,29,0,85,0,54,0,24,0,18,0\n23,0,84,0,49,0,70,0,41,0,48,0\n38,0,11,0,39,0,50,0,88,0,30,0\n25,0,80,0,90,0,56,0,65,0,81,0\n58,0,8,0,22,0,82,0,72,0,45,0\n91,0,19,0,13,0,47,0,42,0,55,0\n9,0,43,0,40,0,46,0,79,0,3,0\n57,0,76,0,14,0,16,0,63,0,64,0\n10,0,78,0,15,0,61,0,87,0,31,0\n1,0,44,0,73,0,84,0,68,0,51,0\n33,0,39,0,69,0,41,0,34,0,66,0\n50,0,59,0,85,0,2,0,35,0,49,0\n28,0,37,0,86,0,70,0,54,0,80,0\n25,0,11,0,56,0,27,0,52,0,60,0\n77,0,88,0,5,0,32,0,12,0,26,0\n36,0,74,0,67,0,89,0,23,0,18,0\n24,0,38,0,62,0,83,0,21,0,7,0\n53,0,4,0,17,0,29,0,30,0,6,0\n71,0,48,0,51,0,20,0,75,0,33,0\n49,0,19,0,31,0,8,0,57,0,13,0\n14,0,10,0,43,0,9,0,72,0,1,0\n68,0,3,0,81,0,86,0,42,0,64,0\n27,0,63,0,39,0,82,0,85,0,12,0\n35,0,77,0,73,0,37,0,36,0,25,0\n45,0,5,0,38,0,80,0,55,0,18,0\n74,0,70,0,40,0,24,0,56,0,7,0\n46,0,90,0,32,0,20,0,67,0,15,0\n58,0,26,0,87,0,17,0,91,0,11,0\n2,0,54,0,29,0,61,0,48,0,66,0\n71,0,23,0,30,0,28,0,78,0,62,0\n21,0,6,0,16,0,65,0,69,0,84,0\n52,0,88,0,76,0,41,0,47,0,50,0\n53,0,34,0,89,0,83,0,59,0,44,0\n4,0,22,0,79,0,75,0,60,0,70,0\n3,0,24,0,45,0,63,0,10,0,90,0\n20,0,18,0,11,0,77,0,33,0,1,0\n9,0,31,0,64,0,39,0,55,0,74,0\n30,0,32,0,7,0,91,0,66,0,49,0\n38,0,17,0,42,0,61,0,28,0,27,0\n69,0,36,0,12,0,68,0,62,0,48,0\n73,0,78,0,50,0,14,0,34,0,72,0\n58,0,79,0,25,0,53,0,13,0,37,0\n8,0,88,0,6,0,71,0,44,0,80,0\n43,0,65,0,4,0,83,0,54,0,47,0\n19,0,21,0,56,0,29,0,75,0,81,0\n23,0,35,0,82,0,52,0,15,0,51,0\n41,0,87,0,5,0,86,0,67,0,85,0\n22,0,59,0,57,0,40,0,76,0,26,0\n60,0,16,0,84,0,46,0,89,0,2,0\n78,0,18,0,70,0,53,0,69,0,64,0\n12,0,68,0,66,0,45,0,74,0,79,0\n55,0,48,0,9,0,24,0,4,0,90,0\n50,0,29,0,32,0,43,0,71,0,58,0\n88,0,54,0,73,0,15,0,3,0,27,0\n62,0,61,0,13,0,35,0,67,0,81,0\n42,0,33,0,28,0,5,0,44,0,57,0\n8,0,52,0,39,0,10,0,89,0,86,0\n46,0,14,0,7,0,31,0,65,0,11,0\n17,0,60,0,63,0,37,0,77,0,23,0\n84,0,41,0,91,0,59,0,36,0,56,0\n2,0,82,0,21,0,6,0,72,0,83,0\n40,0,20,0,47,0,25,0,49,0,16,0\n26,0,34,0,51,0,19,0,87,0,80,0\n1,0,85,0,76,0,75,0,30,0,38,0\n22,0,52,0,9,0,44,0,12,0,62,0\n71,0,66,0,70,0,31,0,35,0,42,0\n60,0,50,0,54,0,78,0,74,0,69,0\n27,0,10,0,41,0,91,0,64,0,5,0\n59,0,72,0,33,0,63,0,29,0,79,0\n67,0,13,0,2,0,14,0,24,0,77,0\n55,0,34,0,40,0,32,0,28,0,21,0\n81,0,11,0,8,0,57,0,15,0,84,0\n76,0,61,0,25,0,39,0,83,0,51,0\n82,0,20,0,89,0,56,0,53,0,38,0\n86,0,1,0,46,0,88,0,45,0,48,0\n80,0,36,0,43,0,7,0,87,0,75,0\n26,0,4,0,18,0,3,0,65,0,23,0\n30,0,19,0,17,0,73,0,16,0,68,0\n6,0,22,0,37,0,47,0,49,0,90,0\n58,0,9,0,14,0,85,0,69,0,77,0\n"
  },
  {
    "path": "schedules/91_2.csv",
    "content": "80,0,25,0,51,0,35,0,4,0,7,0\n10,0,24,0,83,0,87,0,62,0,59,0\n19,0,14,0,33,0,45,0,90,0,12,0\n88,0,44,0,17,0,21,0,86,0,69,0\n77,0,18,0,37,0,91,0,61,0,3,0\n55,0,81,0,34,0,49,0,78,0,31,0\n56,0,65,0,85,0,27,0,47,0,52,0\n89,0,79,0,23,0,63,0,30,0,26,0\n46,0,74,0,16,0,73,0,22,0,57,0\n8,0,68,0,67,0,66,0,50,0,42,0\n6,0,75,0,13,0,72,0,71,0,40,0\n82,0,64,0,76,0,54,0,9,0,1,0\n5,0,84,0,32,0,60,0,29,0,48,0\n41,0,15,0,2,0,11,0,39,0,20,0\n70,0,38,0,28,0,36,0,58,0,43,0\n53,0,49,0,90,0,89,0,17,0,37,0\n61,0,22,0,44,0,85,0,31,0,19,0\n63,0,66,0,45,0,24,0,73,0,88,0\n57,0,59,0,78,0,3,0,14,0,75,0\n52,0,10,0,86,0,54,0,46,0,6,0\n81,0,23,0,87,0,74,0,77,0,76,0\n69,0,27,0,26,0,4,0,48,0,2,0\n28,0,47,0,21,0,20,0,25,0,33,0\n38,0,12,0,51,0,68,0,64,0,65,0\n1,0,35,0,83,0,84,0,15,0,36,0\n8,0,62,0,43,0,30,0,11,0,32,0\n39,0,50,0,7,0,72,0,70,0,55,0\n58,0,67,0,41,0,18,0,53,0,40,0\n34,0,9,0,91,0,5,0,79,0,13,0\n71,0,80,0,60,0,42,0,82,0,56,0\n29,0,69,1,20,1,16,0,85,1,86,1\n"
  },
  {
    "path": "schedules/91_3.csv",
    "content": "88,0,23,0,72,0,51,0,15,0,78,0\n30,0,16,0,22,0,27,0,45,0,36,0\n73,0,12,0,10,0,84,0,86,0,8,0\n83,0,1,0,54,0,6,0,42,0,18,0\n25,0,35,0,3,0,61,0,33,0,59,0\n67,0,89,0,39,0,53,0,82,0,55,0\n85,0,17,0,87,0,58,0,62,0,4,0\n90,0,74,0,2,0,13,0,60,0,24,0\n43,0,34,0,80,0,79,0,56,0,32,0\n29,0,41,0,71,0,66,0,14,0,49,0\n64,0,19,0,50,0,44,0,37,0,75,0\n52,0,65,0,91,0,77,0,63,0,57,0\n46,0,28,0,70,0,81,0,9,0,21,0\n38,0,31,0,47,0,26,0,20,0,11,0\n68,0,48,0,69,0,5,0,40,0,7,0\n76,0,74,0,61,0,54,0,39,0,73,0\n15,1,8,0,85,0,6,1,53,0,56,0\n89,1,13,0,79,0,23,0,59,0,66,0\n2,0,72,0,58,0,25,0,19,0,82,0\n84,0,22,0,24,0,49,0,65,0,88,0\n14,0,77,0,87,0,16,0,46,0,67,0\n12,0,34,0,52,0,20,0,17,0,64,0\n32,0,28,0,91,0,47,0,29,0,44,0\n62,0,48,0,42,0,80,0,35,0,37,0\n5,0,10,0,63,0,26,0,9,0,76,0\n81,0,90,0,27,0,18,0,38,0,51,0\n55,0,57,0,40,0,31,0,78,0,45,0\n70,0,71,0,4,0,50,0,30,0,68,0\n83,0,41,0,11,0,75,0,43,0,3,0\n21,0,1,0,36,0,86,0,7,0,60,0\n33,0,23,0,82,0,69,0,32,0,85,0\n42,0,56,0,84,0,2,0,89,0,17,0\n64,0,15,0,26,0,39,0,28,0,13,0\n73,0,66,0,37,0,58,0,46,0,52,0\n6,0,65,0,78,0,48,0,19,0,38,0\n80,0,51,0,63,0,54,0,22,0,67,0\n3,0,55,0,87,0,71,0,12,0,79,0\n7,0,9,0,29,0,61,0,34,0,83,0\n47,0,45,0,59,0,90,0,1,0,69,0\n10,0,4,0,75,0,21,0,35,0,72,0\n16,0,53,0,76,0,68,0,11,0,24,0\n33,0,36,0,49,0,5,0,74,0,50,0\n14,0,86,0,18,0,30,0,57,0,25,0\n60,0,43,0,44,0,8,0,31,0,27,0\n77,0,81,0,20,0,62,0,88,0,41,0\n91,0,40,0,15,0,70,0,6,0,89,0\n"
  },
  {
    "path": "schedules/91_4.csv",
    "content": "56,0,57,0,53,0,12,0,45,0,30,0\n11,0,91,0,9,0,73,0,8,0,55,0\n59,0,86,0,42,0,70,0,40,0,22,0\n21,0,36,0,46,0,26,0,90,0,15,0\n31,0,72,0,82,0,47,0,51,0,37,0\n79,0,74,0,33,0,3,0,20,0,16,0\n54,0,88,0,24,0,41,0,60,0,28,0\n25,0,63,0,14,0,18,0,64,0,66,0\n67,0,76,0,13,0,69,0,43,0,61,0\n27,0,39,0,23,0,10,0,68,0,44,0\n71,0,87,0,19,0,84,0,4,0,6,0\n80,0,49,0,83,0,65,0,38,0,17,0\n62,0,50,0,85,0,58,0,2,0,1,0\n34,0,77,0,89,0,35,0,78,0,48,0\n75,0,81,0,7,0,32,0,29,0,52,0\n5,0,33,0,21,0,28,0,63,0,9,0\n36,0,13,0,82,0,16,0,22,0,11,0\n56,0,8,0,72,0,54,0,42,0,26,0\n27,0,40,0,90,0,76,0,79,0,30,0\n20,0,14,0,44,0,55,0,43,0,65,0\n38,0,73,0,45,0,4,0,64,0,59,0\n60,0,67,0,58,0,77,0,84,0,46,0\n31,0,53,0,32,0,80,0,71,0,10,0\n50,0,24,0,48,0,52,0,12,0,87,0\n69,0,17,0,7,0,47,0,19,0,66,0\n78,0,37,0,1,0,5,0,61,0,86,0\n49,0,89,0,3,0,2,0,39,0,29,0\n35,0,68,0,83,0,6,0,75,0,85,0\n81,0,74,0,18,0,34,0,51,0,88,0\n41,0,57,0,23,0,70,0,62,0,91,0\n15,0,79,0,59,0,25,0,82,0,84,0\n36,1,65,0,28,0,48,1,67,0,32,0\n17,0,10,0,20,0,60,0,72,0,63,0\n73,0,71,0,40,0,14,0,56,0,61,0\n38,0,29,0,58,0,30,0,31,0,44,0\n11,0,43,0,85,0,33,0,7,0,86,0\n16,0,77,0,69,0,81,0,37,0,24,0\n45,0,75,0,76,0,89,0,41,0,42,0\n21,0,70,0,52,0,6,0,2,0,51,0\n91,0,64,0,78,0,50,0,3,0,27,0\n46,0,4,0,5,0,74,0,35,0,55,0\n62,0,19,0,90,0,18,0,68,0,80,0\n15,0,23,0,8,0,53,0,1,0,13,0\n22,0,66,0,88,0,12,0,9,0,83,0\n47,0,34,0,87,0,54,0,57,0,39,0\n26,0,25,0,61,0,49,0,48,0,41,0\n10,0,33,0,84,0,89,0,69,0,14,0\n70,0,17,0,37,0,85,0,64,0,56,0\n58,0,4,0,78,0,72,0,76,0,11,0\n60,0,31,0,59,0,35,0,3,0,21,0\n51,0,8,0,86,0,36,0,71,0,62,0\n2,0,18,0,42,0,27,0,9,0,38,0\n16,0,65,0,66,0,40,0,34,0,52,0\n45,0,55,0,6,0,67,0,22,0,81,0\n43,0,73,0,39,0,77,0,82,0,5,0\n79,0,47,0,12,0,32,0,49,0,68,0\n26,0,44,0,74,0,50,0,53,0,19,0\n25,0,83,0,1,0,24,0,90,0,29,0\n91,0,28,0,30,0,87,0,15,0,75,0\n20,0,13,0,88,0,57,0,46,0,7,0\n54,0,63,0,36,0,23,0,80,0,48,0\n"
  },
  {
    "path": "schedules/91_5.csv",
    "content": "55,0,82,0,83,0,8,0,88,0,68,0\n43,0,72,0,91,0,54,0,73,0,26,0\n52,0,50,0,9,0,84,0,34,0,42,0\n89,0,39,0,23,0,56,0,64,0,81,0\n48,0,71,0,44,0,2,0,38,0,27,0\n24,0,40,0,74,0,28,0,78,0,10,0\n75,0,35,0,30,0,53,0,29,0,13,0\n87,0,15,0,14,0,70,0,16,0,62,0\n25,0,65,0,46,0,85,0,1,0,86,0\n21,0,37,0,59,0,77,0,79,0,45,0\n6,0,49,0,63,0,67,0,7,0,5,0\n18,0,3,0,60,0,69,0,20,0,19,0\n33,0,11,0,32,0,41,0,76,0,80,0\n90,0,4,0,36,0,12,0,31,0,22,0\n58,0,61,0,47,0,57,0,17,0,66,0\n51,0,55,0,40,0,35,0,54,0,56,0\n84,0,14,0,73,0,64,0,38,0,68,0\n72,0,87,0,81,0,30,0,45,0,44,0\n85,0,42,0,23,0,8,0,74,0,71,0\n27,0,89,0,34,0,83,0,46,0,75,0\n16,0,13,0,80,0,37,0,49,0,3,0\n67,0,28,0,39,0,62,0,52,0,11,0\n79,0,53,0,36,0,76,0,82,0,47,0\n78,0,29,0,12,0,63,0,48,0,1,0\n26,0,20,0,22,0,9,0,7,0,25,0\n10,0,15,0,69,0,61,0,21,0,31,0\n66,0,70,0,59,0,90,0,51,0,18,0\n41,0,6,0,2,0,65,0,24,0,43,0\n86,0,17,0,60,0,32,0,4,0,88,0\n91,0,58,0,5,0,33,0,50,0,77,0\n57,0,37,0,44,0,19,0,53,0,40,0\n34,0,35,0,74,0,73,1,82,0,3,0\n64,0,83,0,47,0,49,0,42,0,22,0\n11,0,81,0,71,0,7,0,46,0,84,0\n80,0,39,0,1,0,87,0,61,0,9,0\n13,0,14,0,48,0,23,0,66,0,69,0\n63,0,45,0,70,0,86,0,89,0,55,0\n85,0,17,0,12,0,75,0,91,0,59,0\n60,0,68,0,90,0,72,0,57,0,24,0\n78,0,36,0,6,0,26,0,51,0,32,0\n79,0,10,0,19,0,5,0,41,0,8,0\n67,0,50,0,56,0,29,0,15,0,27,0\n21,0,43,0,25,0,30,0,28,0,88,0\n2,0,16,0,76,0,18,0,4,0,58,0\n38,0,65,0,31,0,52,0,20,0,77,0\n33,0,54,0,45,0,62,0,17,0,9,0\n90,0,40,0,84,0,85,0,48,0,89,0\n69,0,1,0,51,0,47,0,68,0,34,0\n80,0,57,0,5,0,73,0,12,0,83,0\n44,0,64,0,3,0,46,0,79,0,32,0\n50,0,19,0,88,0,71,0,14,0,6,0\n87,0,74,0,49,0,4,0,91,0,29,0\n78,0,82,0,27,0,13,0,39,0,21,0\n62,0,72,0,31,0,42,0,7,0,76,0\n33,0,18,0,22,0,43,0,37,0,81,0\n8,0,26,0,63,0,65,0,28,0,53,0\n59,0,61,0,38,0,35,0,86,0,11,0\n36,0,77,0,30,0,41,0,16,0,54,0\n25,0,24,0,58,0,15,0,23,0,55,0\n75,0,66,0,60,0,56,0,10,0,52,0\n20,0,67,0,46,0,70,0,2,0,91,0\n62,0,4,0,40,0,27,0,73,0,6,0\n89,0,1,0,7,0,82,0,44,0,14,0\n71,0,64,0,65,0,80,0,78,0,72,0\n22,0,48,0,76,0,50,0,39,0,3,0\n18,0,54,0,83,0,74,0,61,0,84,0\n29,0,8,0,9,0,69,0,58,0,90,0\n42,0,24,0,66,0,21,0,38,0,16,0\n49,0,19,0,56,0,36,0,17,0,25,0\n26,0,70,0,31,0,33,0,30,0,79,0\n52,0,53,0,5,0,81,0,55,0,59,0\n32,0,28,0,68,0,45,0,12,0,15,0\n51,0,86,0,10,0,13,0,87,0,57,0\n85,0,35,0,43,0,67,0,60,0,77,0\n88,0,23,0,37,0,34,0,41,0,20,0\n47,0,11,0,73,0,75,0,63,0,2,0\n"
  },
  {
    "path": "schedules/91_6.csv",
    "content": "32,0,75,0,19,0,14,0,24,0,66,0\n65,0,82,0,26,0,1,0,13,0,67,0\n79,0,87,0,74,0,61,0,44,0,45,0\n48,0,90,0,69,0,46,0,3,0,10,0\n86,0,83,0,31,0,81,0,53,0,36,0\n2,0,21,0,12,0,20,0,23,0,4,0\n11,0,63,0,55,0,70,0,91,0,7,0\n47,0,22,0,88,0,76,0,38,0,33,0\n8,0,16,0,51,0,73,0,9,0,64,0\n62,0,72,0,57,0,27,0,34,0,78,0\n15,0,18,0,77,0,85,0,5,0,52,0\n30,0,56,0,71,0,42,0,54,0,80,0\n59,0,35,0,40,0,29,0,43,0,17,0\n50,0,41,0,28,0,39,0,60,0,49,0\n68,0,37,0,89,0,84,0,25,0,6,0\n58,0,91,0,88,0,83,0,74,0,32,0\n55,0,21,0,45,0,31,0,22,0,13,0\n19,0,38,0,72,0,4,0,46,0,82,0\n85,0,78,0,73,0,7,0,87,0,66,0\n75,0,9,0,52,0,30,0,70,0,69,0\n34,0,42,0,44,0,81,0,63,0,26,0\n51,0,59,0,33,0,61,0,41,0,36,0\n8,0,24,0,71,0,25,0,17,0,10,0\n58,0,80,0,90,0,29,0,47,0,49,0\n40,0,23,0,76,0,14,0,3,0,62,0\n57,0,89,0,20,0,39,0,43,0,18,0\n79,0,28,0,67,0,15,0,68,0,54,0\n27,0,2,0,60,0,35,0,86,0,16,0\n11,0,12,0,84,0,65,0,64,0,50,0\n77,0,6,0,56,0,53,0,1,0,48,0\n5,0,32,0,36,0,37,0,34,0,73,0\n81,0,70,0,45,0,51,0,85,0,47,0\n26,0,61,0,17,0,55,0,72,0,66,0\n4,0,52,0,31,0,58,0,62,0,42,0\n40,0,79,0,19,0,83,0,57,0,90,0\n16,0,76,0,46,0,78,0,68,0,13,0\n15,0,82,0,27,0,7,0,71,0,44,0\n69,0,11,0,77,0,87,0,35,0,49,0\n59,0,48,0,39,0,38,0,23,0,37,0\n64,0,67,0,43,0,3,0,74,0,56,0\n60,0,84,0,1,0,20,0,5,0,75,0\n50,0,91,0,22,0,2,0,8,0,89,0\n65,0,30,0,63,0,86,0,24,0,6,0\n88,0,25,0,9,0,54,0,14,0,18,0\n53,0,10,0,33,0,12,0,28,0,80,0\n41,0,21,0,83,0,29,0,34,0,71,0\n4,0,36,0,49,0,27,0,55,0,68,0\n43,0,62,0,66,0,11,0,51,0,48,0\n7,0,16,0,67,0,17,0,84,0,81,0\n60,0,23,0,13,0,19,0,69,0,85,0\n75,0,57,0,74,0,77,0,26,0,76,0\n37,0,78,0,31,0,18,0,30,0,40,0\n39,0,3,0,22,0,63,0,25,0,80,0\n86,0,89,0,12,0,59,0,9,0,79,0\n46,0,70,0,8,0,28,0,20,0,32,0\n10,0,38,0,58,0,41,0,56,0,44,0\n73,0,50,0,42,0,88,0,21,0,6,0\n47,0,24,0,54,0,2,0,53,0,72,0\n35,0,61,0,14,0,5,0,64,0,82,0\n90,0,15,0,91,0,87,0,33,0,65,0\n45,0,29,0,11,0,52,0,1,0,36,0\n81,0,77,0,13,0,27,0,37,0,12,0\n86,0,28,0,51,0,74,0,34,0,40,0\n41,0,76,0,70,0,19,0,84,0,48,0\n3,0,66,0,30,0,8,0,83,0,4,0\n73,0,18,0,10,0,60,0,67,0,59,0\n61,0,49,0,63,0,23,0,53,0,78,0\n17,0,46,0,21,0,44,0,91,0,80,0\n33,0,68,0,24,0,85,0,50,0,58,0\n6,0,69,0,79,0,26,0,14,0,22,0\n29,0,38,0,15,0,31,0,2,0,25,0\n89,0,64,0,88,0,90,0,75,0,55,0\n82,0,20,0,54,0,62,0,16,0,45,0\n65,0,32,0,35,0,71,0,52,0,57,0\n39,0,56,0,5,0,47,0,7,0,9,0\n1,0,43,0,72,0,42,0,87,0,8,0\n86,0,4,0,13,0,61,0,10,0,50,0\n18,0,33,0,34,0,11,0,19,0,6,0\n31,0,44,0,60,0,3,0,77,0,70,0\n48,0,29,0,14,0,73,0,91,0,28,0\n55,0,78,0,83,0,24,0,15,0,12,0\n36,0,26,0,54,0,58,0,89,0,23,0\n39,0,35,0,76,0,30,0,51,0,90,0\n25,0,47,0,52,0,16,0,43,0,79,0\n80,0,37,0,20,0,9,0,67,0,72,0\n5,0,63,0,38,0,21,0,66,0,27,0\n74,0,84,0,22,0,46,0,71,0,59,0\n81,0,87,0,82,0,40,0,75,0,41,0\n42,0,64,0,53,0,69,0,45,0,32,0\n85,0,17,0,65,0,62,0,56,0,49,0\n7,0,68,0,1,0,57,0,88,0,2,0\n"
  },
  {
    "path": "schedules/91_7.csv",
    "content": "15,0,82,0,89,0,13,0,76,0,49,0\n21,0,5,0,45,0,62,0,72,0,63,0\n2,0,81,0,66,0,37,0,40,0,22,0\n59,0,70,0,79,0,9,0,80,0,16,0\n54,0,58,0,77,0,27,0,19,0,6,0\n25,0,26,0,3,0,86,0,12,0,75,0\n50,0,87,0,39,0,88,0,43,0,17,0\n57,0,38,0,67,0,61,0,55,0,23,0\n46,0,71,0,31,0,83,0,10,0,64,0\n47,0,73,0,28,0,91,0,65,0,32,0\n20,0,41,0,56,0,44,0,29,0,53,0\n34,0,35,0,74,0,7,0,68,0,48,0\n90,0,11,0,85,0,4,0,69,0,42,0\n30,0,24,0,8,0,1,0,84,0,51,0\n33,0,52,0,18,0,36,0,78,0,60,0\n14,0,88,0,70,0,5,0,25,0,67,0\n26,0,72,0,83,0,89,0,39,0,59,0\n62,0,91,0,3,0,38,0,79,0,17,0\n64,0,41,0,12,0,13,0,61,0,73,0\n76,0,43,0,20,0,75,0,32,0,68,0\n49,0,65,0,42,0,66,0,23,0,29,0\n50,0,40,0,44,0,57,0,31,0,77,0\n45,0,87,0,84,0,56,0,82,0,74,0\n80,0,18,0,6,0,35,0,85,0,15,0\n33,0,28,0,21,0,46,0,69,0,22,0\n24,0,4,0,48,0,37,0,36,0,71,0\n55,0,53,0,8,0,2,0,58,0,47,0\n7,0,1,0,60,0,54,0,10,0,81,0\n52,0,86,0,51,0,14,0,9,0,11,0\n78,0,63,0,16,0,27,0,34,0,30,0\n19,0,5,0,68,0,90,0,41,0,59,0\n75,1,89,0,45,0,42,1,38,0,80,0\n18,1,32,0,21,0,77,1,29,0,79,0\n65,0,64,0,26,0,74,1,76,0,50,0\n17,0,83,0,55,0,84,0,49,0,25,0\n15,0,91,0,40,0,71,0,54,0,20,0\n3,0,57,0,2,0,70,0,6,0,60,0\n12,0,9,0,88,0,78,0,48,0,28,0\n81,0,34,0,85,0,86,0,24,0,53,0\n69,0,63,0,37,0,13,0,1,0,52,0\n4,0,82,0,31,0,33,0,67,0,47,0\n90,0,43,0,16,0,44,0,66,0,51,0\n14,0,10,0,62,0,56,0,19,0,30,0\n87,0,72,0,11,0,61,0,35,0,27,0\n46,0,7,0,23,0,8,0,73,0,39,0\n36,0,22,0,65,0,58,0,57,0,15,0\n79,0,41,0,71,0,2,0,25,0,42,0\n28,0,83,0,1,0,68,0,45,0,77,0\n76,0,40,0,29,0,3,0,85,0,67,0\n49,0,91,0,53,0,33,0,80,0,63,0\n62,0,84,0,12,0,54,0,31,0,34,0\n66,0,86,0,87,0,70,0,19,0,4,0\n21,0,13,0,11,0,74,0,10,0,39,0\n48,0,55,0,59,0,6,0,14,0,43,0\n51,0,60,0,75,0,37,0,50,0,73,0\n24,0,78,0,22,0,5,0,61,0,7,0\n17,0,47,0,9,0,64,0,69,0,30,0\n23,0,32,0,72,0,90,0,52,0,58,0\n8,0,38,0,44,0,81,0,27,0,26,0\n18,0,20,0,46,0,88,0,16,0,82,0\n35,0,89,0,54,0,56,0,36,0,66,0\n76,0,25,0,33,0,34,0,77,0,87,0\n19,0,39,0,75,0,31,0,1,0,48,0\n63,0,10,0,43,0,65,0,24,0,41,0\n80,0,13,0,78,0,17,0,86,0,57,0\n64,0,22,0,6,0,42,0,84,0,72,0\n11,0,29,0,59,0,38,0,60,0,12,0\n62,0,85,0,2,0,20,0,51,0,83,0\n15,0,68,0,88,0,21,0,55,0,44,0\n50,0,18,0,58,0,4,0,3,0,7,0\n79,0,30,0,73,0,67,0,49,0,52,0\n9,0,71,0,61,0,82,0,26,0,53,0\n36,0,28,0,74,0,8,0,5,0,40,0\n27,0,37,0,56,0,90,0,91,0,46,0\n81,0,35,0,69,0,45,0,32,0,70,0\n23,0,16,0,47,0,14,0,89,0,24,0\n66,0,85,0,33,0,39,0,68,0,12,0\n41,0,77,0,38,0,7,0,15,0,84,0\n83,0,44,0,76,0,18,0,63,0,54,0\n73,0,48,0,42,0,87,0,21,0,3,0\n31,0,88,0,29,0,2,0,74,0,80,0\n6,0,30,0,11,0,25,0,36,0,53,0\n34,0,1,0,32,0,50,0,9,0,49,0\n22,0,4,0,59,0,91,0,10,0,23,0\n82,0,57,0,27,0,52,0,62,0,43,0\n65,0,51,0,46,0,55,0,13,0,45,0\n17,0,40,0,61,0,90,0,70,0,89,0\n5,0,56,0,75,0,16,0,81,0,64,0\n71,0,14,0,72,0,69,0,78,0,8,0\n37,0,79,0,35,0,19,0,26,0,47,0\n67,0,58,0,86,0,60,0,20,0,28,0\n25,0,66,0,24,0,15,0,74,0,59,0\n53,0,27,0,73,0,22,0,1,0,18,0\n2,0,44,0,7,0,91,0,87,0,30,0\n12,0,10,0,17,0,51,0,77,0,82,0\n65,0,39,0,6,0,4,0,62,0,16,0\n8,0,52,0,61,0,75,0,88,0,85,0\n63,0,3,0,19,0,71,0,11,0,32,0\n35,0,13,0,42,0,58,0,83,0,40,0\n70,0,38,0,50,0,20,0,72,0,33,0\n31,0,60,0,68,0,69,0,23,0,56,0\n55,0,64,0,89,0,28,0,34,0,29,0\n47,0,36,0,80,0,41,0,76,0,81,0\n48,0,54,0,46,0,86,0,5,0,79,0\n43,0,78,0,84,0,21,0,67,0,37,0\n45,0,49,0,57,0,14,0,26,0,90,0\n42,0,77,0,74,0,9,0,75,0,18,0\n"
  },
  {
    "path": "schedules/91_8.csv",
    "content": "57,0,64,0,47,0,20,0,32,0,35,0\n3,0,23,0,60,0,8,0,65,0,45,0\n44,0,75,0,62,0,49,0,31,0,11,0\n91,0,16,0,6,0,80,0,9,0,86,0\n76,0,40,0,39,0,88,0,21,0,25,0\n41,0,24,0,83,0,58,0,69,0,79,0\n70,0,15,0,22,0,68,0,84,0,87,0\n37,0,34,0,1,0,78,0,90,0,14,0\n26,0,52,0,2,0,50,0,42,0,18,0\n54,0,56,0,67,0,63,0,82,0,53,0\n29,0,36,0,7,0,19,0,72,0,10,0\n12,0,77,0,66,0,74,0,73,0,59,0\n4,0,55,0,17,0,27,0,85,0,81,0\n28,0,48,0,61,0,89,0,5,0,33,0\n51,0,38,0,30,0,46,0,13,0,43,0\n58,0,45,0,91,0,71,0,87,0,37,0\n1,0,41,0,8,0,39,0,57,0,31,0\n78,0,16,0,11,0,76,0,24,0,2,0\n52,0,44,0,3,0,19,0,54,0,15,0\n40,0,70,0,66,0,80,0,63,0,14,0\n4,0,22,0,64,0,86,0,18,0,21,0\n74,0,27,0,67,0,10,0,32,0,75,0\n82,0,34,0,83,0,48,0,43,0,12,0\n33,0,46,0,55,0,69,0,20,0,29,0\n62,0,85,0,53,0,79,0,65,0,42,0\n35,0,84,0,51,0,60,0,77,0,17,0\n59,0,6,0,36,0,90,0,89,0,71,0\n13,0,72,0,9,0,28,0,47,0,56,0\n5,0,23,0,38,0,26,0,68,0,25,0\n7,0,88,0,61,0,73,0,81,0,50,0\n30,0,54,0,27,0,49,0,24,0,86,0\n43,1,2,0,20,0,74,1,70,0,19,0\n15,1,64,0,29,0,14,1,67,0,76,0\n10,0,58,0,40,0,33,0,3,0,16,0\n36,0,75,0,12,0,39,0,42,0,37,0\n82,0,69,0,66,0,4,0,51,0,52,0\n90,0,35,0,65,0,87,0,13,0,5,0\n11,0,32,0,81,0,25,0,34,0,28,0\n48,0,17,0,26,0,79,0,46,0,49,0\n63,0,59,0,47,0,45,0,31,0,50,0\n71,0,62,0,9,0,84,0,57,0,7,0\n60,0,1,0,73,0,85,0,68,0,6,0\n55,0,23,0,30,0,80,0,53,0,21,0\n56,0,83,0,89,0,22,0,78,0,38,0\n77,0,91,0,44,0,72,0,8,0,61,0\n18,0,41,0,54,0,88,0,28,0,37,0\n74,0,81,0,39,0,52,0,90,0,64,0\n34,0,65,0,46,0,15,0,16,0,31,0\n26,0,3,0,69,0,35,0,36,0,11,0\n86,0,48,0,32,0,68,0,59,0,2,0\n45,0,17,0,82,0,9,0,70,0,29,0\n10,0,12,0,76,0,79,0,4,0,47,0\n40,0,49,0,22,0,23,0,7,0,77,0\n89,0,25,0,30,0,84,0,19,0,63,0\n71,0,42,0,61,0,13,0,60,0,24,0\n62,0,33,0,1,0,67,0,88,0,72,0\n57,0,80,0,51,0,44,0,83,0,5,0\n50,0,14,0,38,0,6,0,55,0,75,0\n18,0,20,0,73,0,91,0,78,0,53,0\n58,0,8,0,56,0,66,0,43,0,85,0\n87,0,41,0,29,0,27,0,21,0,2,0\n11,0,70,0,59,0,64,0,30,0,37,0\n34,0,23,0,35,0,4,0,89,0,39,0\n84,0,47,0,46,0,3,0,82,0,61,0\n12,0,71,0,65,0,40,0,44,0,67,0\n75,0,86,0,79,0,15,0,25,0,51,0\n69,0,22,0,90,0,10,0,57,0,91,0\n49,0,78,0,81,0,6,0,13,0,66,0\n53,0,19,0,48,0,76,0,27,0,60,0\n18,0,74,0,80,0,87,0,31,0,17,0\n24,0,50,0,21,0,56,0,5,0,1,0\n54,0,77,0,85,0,38,0,33,0,45,0\n20,0,63,0,68,0,58,0,62,0,28,0\n43,0,88,0,36,0,9,0,52,0,55,0\n72,0,26,0,16,0,14,0,73,0,41,0\n32,0,8,0,42,0,83,0,7,0,30,0\n71,0,11,0,19,0,22,0,66,0,79,0\n13,0,34,0,27,0,80,0,69,0,59,0\n31,0,37,0,56,0,23,0,10,0,61,0\n21,0,89,0,15,0,60,0,91,0,12,0\n18,0,76,0,35,0,70,0,81,0,1,0\n53,0,90,0,4,0,58,0,88,0,38,0\n87,0,9,0,39,0,63,0,51,0,26,0\n8,0,48,0,14,0,36,0,20,0,84,0\n67,0,49,0,45,0,42,0,16,0,55,0\n50,0,86,0,43,0,28,0,29,0,44,0\n32,0,24,0,52,0,40,0,46,0,85,0\n82,0,7,0,33,0,75,0,2,0,64,0\n17,0,73,0,25,0,54,0,47,0,83,0\n3,0,6,0,77,0,62,0,5,0,41,0\n68,0,78,0,72,0,57,0,74,0,65,0\n21,0,63,0,61,0,36,0,38,0,34,0\n1,0,27,0,15,0,26,0,20,0,71,0\n59,0,58,0,14,0,44,0,60,0,81,0\n88,0,85,0,51,0,29,0,91,0,49,0\n31,0,53,0,86,0,84,0,33,0,52,0\n2,0,80,0,35,0,56,0,45,0,12,0\n9,0,25,0,41,0,46,0,66,0,42,0\n68,0,76,0,37,0,83,0,55,0,3,0\n72,0,32,0,6,0,43,0,54,0,22,0\n74,0,40,0,5,0,8,0,4,0,11,0\n19,0,16,0,23,0,75,0,17,0,90,0\n70,0,65,0,7,0,24,0,48,0,47,0\n89,0,57,0,79,0,82,0,18,0,77,0\n10,0,87,0,78,0,62,0,64,0,50,0\n28,0,39,0,69,0,73,0,30,0,67,0\n13,0,63,0,85,0,76,0,41,0,15,0\n81,0,12,0,72,0,3,0,86,0,20,0\n22,0,36,0,44,0,53,0,74,0,25,0\n49,0,2,0,14,0,9,0,83,0,4,0\n43,0,7,0,21,0,68,0,16,0,35,0\n47,0,77,0,88,0,26,0,34,0,19,0\n18,0,46,0,11,0,90,0,27,0,56,0\n38,0,39,0,60,0,82,0,32,0,62,0\n57,0,33,0,24,0,23,0,87,0,59,0\n13,0,79,0,84,0,91,0,40,0,55,0\n37,0,50,0,67,0,89,0,17,0,66,0\n64,0,42,0,69,0,1,0,54,0,48,0\n75,0,73,0,58,0,65,0,80,0,52,0\n30,0,31,0,5,0,78,0,71,0,29,0\n6,0,28,0,10,0,8,0,51,0,70,0\n45,0,43,0,14,0,61,0,74,0,15,0\n"
  },
  {
    "path": "schedules/91_9.csv",
    "content": "29,0,86,0,73,0,9,0,24,0,70,0\n39,0,8,0,2,0,22,0,25,0,90,0\n79,0,68,0,62,0,45,0,35,0,77,0\n18,0,51,0,80,0,14,0,28,0,44,0\n72,0,16,0,46,0,36,0,65,0,66,0\n38,0,78,0,17,0,48,0,10,0,15,0\n60,0,83,0,89,0,1,0,84,0,23,0\n55,0,64,0,43,0,11,0,5,0,49,0\n13,0,56,0,87,0,34,0,6,0,57,0\n42,0,91,0,30,0,21,0,85,0,50,0\n53,0,76,0,20,0,12,0,37,0,58,0\n71,0,59,0,81,0,69,0,4,0,19,0\n67,0,88,0,33,0,74,0,26,0,31,0\n63,0,75,0,32,0,3,0,61,0,41,0\n47,0,40,0,52,0,7,0,54,0,82,0\n84,0,51,0,68,0,27,0,25,0,55,0\n5,0,13,0,24,0,10,0,89,0,16,0\n57,0,66,0,42,0,29,0,77,0,28,0\n34,0,18,0,36,0,35,0,90,0,17,0\n81,0,14,0,91,0,39,0,1,0,43,0\n31,0,76,0,86,0,59,0,44,0,78,0\n12,0,74,0,85,0,64,0,79,0,38,0\n37,0,56,0,67,0,48,0,4,0,8,0\n65,0,41,0,88,0,70,0,71,0,54,0\n69,0,6,0,61,0,30,0,45,0,52,0\n15,0,11,0,20,0,21,0,72,0,63,0\n7,0,80,0,87,0,73,0,3,0,19,0\n2,0,23,0,75,0,82,0,9,0,27,0\n33,0,62,0,58,0,46,0,40,0,83,0\n22,0,60,0,50,0,53,0,47,0,49,0\n26,0,39,0,4,0,32,0,85,0,24,0\n86,1,71,0,14,0,66,1,79,0,25,0\n52,1,70,0,36,0,28,0,13,0,68,0\n41,0,64,0,21,0,45,0,8,0,44,0\n56,0,76,0,7,0,61,0,43,0,84,0\n67,0,30,0,75,0,87,0,89,0,65,0\n91,0,51,0,35,0,82,0,78,0,46,0\n60,0,20,0,69,0,55,0,80,0,33,0\n74,0,22,0,1,0,34,0,73,0,10,0\n19,0,32,0,23,0,29,0,15,0,58,0\n77,0,90,0,72,0,47,0,5,0,83,0\n37,0,62,0,49,0,17,0,63,0,26,0\n9,0,54,0,12,0,48,0,57,0,59,0\n16,0,40,0,3,0,11,0,31,0,27,0\n38,0,6,0,18,0,42,0,53,0,81,0\n50,0,46,0,28,0,2,0,88,0,79,0\n41,0,52,0,35,0,55,0,89,0,4,0\n76,0,10,0,32,0,14,0,70,0,85,0\n8,0,74,0,71,0,83,0,61,0,36,0\n80,0,47,0,65,0,86,0,21,0,34,0\n69,0,22,0,44,0,15,0,66,0,13,0\n19,0,64,0,48,0,75,0,25,0,33,0\n7,0,81,0,77,0,67,0,16,0,63,0\n43,0,27,0,6,0,72,0,58,0,54,0\n57,0,20,0,24,0,51,0,38,0,31,0\n40,0,78,0,5,0,30,0,68,0,53,0\n87,0,91,0,49,0,12,0,18,0,23,0\n29,0,84,0,50,0,39,0,3,0,17,0\n1,0,37,0,9,0,90,0,45,0,88,0\n73,0,11,0,82,0,59,0,60,0,26,0\n42,0,62,0,16,0,56,0,2,0,64,0\n27,0,19,0,74,0,77,0,13,0,41,0\n63,0,52,0,33,0,85,0,51,0,58,0\n78,0,43,0,83,0,22,0,32,0,79,0\n40,0,8,0,75,0,91,0,69,0,38,0\n46,0,12,0,17,0,44,0,5,0,4,0\n76,0,55,0,36,0,81,0,47,0,29,0\n72,0,61,0,82,0,37,0,18,0,86,0\n28,0,15,0,26,0,53,0,7,0,1,0\n21,0,90,0,70,0,57,0,3,0,62,0\n30,0,25,0,59,0,24,0,56,0,23,0\n67,0,45,0,54,0,80,0,10,0,50,0\n48,0,11,0,42,0,34,0,89,0,14,0\n20,0,39,0,49,0,88,0,73,0,66,0\n68,0,60,0,6,0,65,0,2,0,31,0\n35,0,87,0,5,0,84,0,9,0,71,0\n41,0,22,0,7,0,38,0,46,0,29,0\n3,0,85,0,77,0,82,0,55,0,1,0\n27,0,79,0,59,0,70,0,53,0,61,0\n17,0,33,0,16,0,8,0,30,0,54,0\n83,0,52,0,12,0,26,0,56,0,14,0\n73,0,28,0,21,0,37,0,75,0,78,0\n39,0,58,0,68,0,18,0,48,0,69,0\n89,0,13,0,71,0,31,0,80,0,91,0\n45,0,42,0,4,0,15,0,86,0,84,0\n10,0,57,0,2,0,49,0,19,0,35,0\n90,0,74,0,65,0,23,0,76,0,51,0\n20,0,47,0,9,0,64,0,67,0,6,0\n43,0,63,0,34,0,66,0,24,0,60,0\n25,0,11,0,88,0,36,0,87,0,62,0\n44,0,32,0,40,0,81,0,72,0,50,0\n59,0,28,0,41,0,5,0,33,0,91,0\n75,0,77,0,70,0,80,0,52,0,17,0\n46,0,86,0,53,0,39,0,71,0,10,0\n61,0,55,0,73,0,48,0,2,0,13,0\n30,0,64,0,83,0,35,0,37,0,29,0\n8,0,23,0,14,0,7,0,78,0,20,0\n16,0,15,0,82,0,49,0,74,0,6,0\n84,0,65,0,85,0,22,0,57,0,81,0\n26,0,36,0,40,0,19,0,43,0,45,0\n79,0,90,0,58,0,24,0,42,0,44,0\n51,0,72,0,4,0,3,0,60,0,88,0\n50,0,9,0,89,0,63,0,25,0,76,0\n1,0,47,0,56,0,18,0,32,0,11,0\n34,0,12,0,62,0,67,0,27,0,69,0\n21,0,38,0,54,0,87,0,68,0,66,0\n31,0,5,0,37,0,23,0,52,0,22,0\n64,0,77,0,84,0,40,0,73,0,14,0\n86,0,17,0,43,0,20,0,28,0,85,0\n13,0,3,0,26,0,35,0,65,0,8,0\n39,0,78,0,45,0,60,0,16,0,57,0\n9,0,51,0,10,0,83,0,7,0,11,0\n49,0,27,0,29,0,80,0,4,0,90,0\n82,0,34,0,25,0,81,0,41,0,58,0\n88,0,47,0,15,0,68,0,59,0,89,0\n53,0,54,0,44,0,91,0,56,0,36,0\n18,0,67,0,19,0,79,0,55,0,21,0\n76,0,2,0,1,0,72,0,33,0,87,0\n6,0,24,0,50,0,71,0,12,0,75,0\n66,0,32,0,48,0,62,0,30,0,74,0\n31,0,70,0,69,0,46,0,42,0,63,0\n38,0,58,0,26,0,61,0,9,0,77,0\n25,0,65,0,29,0,20,0,10,0,40,0\n81,0,13,0,86,0,60,0,64,0,54,0\n35,0,73,0,44,0,47,0,43,0,16,0\n39,0,5,0,79,0,15,0,56,0,51,0\n57,0,4,0,83,0,76,0,75,0,18,0\n66,0,85,0,62,0,41,0,6,0,78,0\n48,0,24,0,27,0,21,0,52,0,88,0\n23,0,45,0,34,0,71,0,28,0,72,0\n12,0,61,0,68,0,42,0,22,0,33,0\n70,0,84,0,91,0,11,0,37,0,19,0\n82,0,80,0,63,0,30,0,36,0,38,0\n89,0,7,0,2,0,17,0,74,0,69,0\n87,0,55,0,53,0,32,0,90,0,31,0\n59,0,46,0,3,0,14,0,49,0,67,0\n1,0,50,0,66,0,8,0,86,0,52,0\n"
  },
  {
    "path": "schedules/92_1.csv",
    "content": "34,0,45,0,57,0,15,0,10,0,62,0\n21,0,22,0,59,0,91,0,85,0,55,0\n24,0,50,0,49,0,36,0,61,0,54,0\n46,0,2,0,5,0,30,0,69,0,90,0\n70,0,44,0,32,0,67,0,48,0,53,0\n23,0,26,0,8,0,84,0,74,0,89,0\n65,0,6,0,17,0,19,0,27,0,72,0\n75,0,76,0,71,0,47,0,88,0,43,0\n86,0,80,0,56,0,40,0,92,0,33,0\n28,0,7,0,68,0,42,0,4,0,52,0\n38,0,16,0,3,0,73,0,63,0,79,0\n12,0,87,0,64,0,39,0,82,0,29,0\n58,0,78,0,18,0,9,0,35,0,1,0\n25,0,83,0,60,0,20,0,41,0,77,0\n51,0,66,0,14,0,31,0,81,0,13,0\n11,0,23,1,53,1,37,0,85,1,62,1\n"
  },
  {
    "path": "schedules/92_10.csv",
    "content": "43,0,21,0,87,0,37,0,68,0,27,0\n16,0,80,0,78,0,47,0,66,0,35,0\n2,0,74,0,50,0,8,0,79,0,63,0\n84,0,23,0,86,0,36,0,76,0,49,0\n25,0,28,0,64,0,70,0,89,0,90,0\n39,0,29,0,88,0,92,0,62,0,67,0\n60,0,32,0,82,0,61,0,26,0,45,0\n38,0,14,0,6,0,58,0,54,0,34,0\n13,0,15,0,10,0,11,0,30,0,51,0\n44,0,42,0,18,0,19,0,55,0,73,0\n65,0,1,0,85,0,72,0,40,0,7,0\n52,0,59,0,48,0,71,0,24,0,12,0\n81,0,31,0,9,0,91,0,77,0,22,0\n4,0,83,0,75,0,57,0,41,0,17,0\n53,0,20,0,56,0,3,0,69,0,33,0\n5,0,36,0,82,0,46,0,87,0,50,0\n28,0,8,0,15,0,10,0,68,0,67,0\n30,0,61,0,63,0,86,0,64,0,38,0\n51,0,47,0,6,0,39,0,1,0,25,0\n89,0,62,0,72,0,11,0,55,0,35,0\n44,0,9,0,66,0,27,0,32,0,14,0\n37,0,88,0,40,0,60,0,75,0,84,0\n70,0,92,0,78,0,79,0,91,0,76,0\n73,0,17,0,43,0,5,0,24,0,57,0\n77,0,46,0,69,0,80,0,18,0,34,0\n71,0,7,0,45,0,49,0,31,0,20,0\n90,0,81,0,21,0,3,0,23,0,54,0\n52,0,2,0,56,0,26,0,19,0,83,0\n13,0,16,0,29,0,59,0,53,0,65,0\n22,0,42,0,4,0,12,0,33,0,74,0\n85,0,41,0,25,0,48,0,58,0,91,0\n6,1,86,0,1,0,88,1,87,0,32,0\n28,1,27,0,34,0,73,1,92,0,84,0\n68,0,7,0,57,0,80,0,76,0,44,0\n81,0,15,0,46,0,38,0,62,0,69,0\n71,0,60,0,50,0,55,0,14,0,10,0\n17,0,82,0,53,0,90,0,35,0,79,0\n36,0,39,0,31,0,66,0,4,0,52,0\n63,0,16,0,37,0,70,0,85,0,22,0\n40,0,2,0,49,0,24,0,58,0,11,0\n23,0,75,0,19,0,33,0,30,0,29,0\n72,0,3,0,13,0,42,0,64,0,43,0\n67,0,9,0,12,0,47,0,65,0,83,0\n48,0,74,0,54,0,89,0,20,0,26,0\n59,0,51,0,8,0,45,0,56,0,77,0\n41,0,5,0,78,0,18,0,21,0,61,0\n15,0,87,0,34,0,22,0,17,0,44,0\n60,0,24,0,4,0,16,0,25,0,62,0\n52,0,30,0,69,0,50,0,32,0,35,0\n49,0,19,0,37,0,39,0,76,0,64,0\n29,0,42,0,86,0,14,0,68,0,31,0\n46,0,57,0,10,0,90,0,40,0,6,0\n75,0,79,0,56,0,9,0,28,0,48,0\n88,0,12,0,89,0,81,0,78,0,8,0\n20,0,23,0,82,0,47,0,59,0,85,0\n67,0,72,0,91,0,74,0,27,0,36,0\n18,0,55,0,53,0,7,0,61,0,1,0\n70,0,71,0,3,0,5,0,84,0,58,0\n2,0,80,0,54,0,41,0,73,0,65,0\n38,0,43,0,11,0,66,0,83,0,51,0\n92,0,77,0,26,0,63,0,21,0,13,0\n33,0,25,0,78,0,45,0,46,0,44,0\n52,0,42,0,75,0,82,0,15,0,6,0\n76,0,31,0,17,0,27,0,85,0,62,0\n59,0,91,0,1,0,89,0,57,0,34,0\n49,0,29,0,4,0,72,0,56,0,50,0\n55,0,8,0,90,0,9,0,80,0,24,0\n16,0,3,0,79,0,41,0,11,0,23,0\n36,0,61,0,54,0,51,0,12,0,37,0\n38,0,2,0,32,0,84,0,10,0,39,0\n86,0,58,0,47,0,69,0,28,0,60,0\n68,0,33,0,48,0,70,0,88,0,13,0\n74,0,63,0,45,0,43,0,14,0,19,0\n92,0,64,0,20,0,18,0,65,0,22,0\n77,0,87,0,40,0,30,0,71,0,66,0\n35,0,7,0,21,0,73,0,83,0,67,0\n53,0,26,0,80,0,5,0,81,0,49,0\n79,0,39,0,54,0,16,0,75,0,55,0\n51,0,85,0,78,0,2,0,29,0,28,0\n23,0,31,0,8,0,69,0,57,0,61,0\n24,0,47,0,13,0,74,0,3,0,46,0\n91,0,12,0,56,0,63,0,6,0,68,0\n43,0,60,0,90,0,44,0,20,0,77,0\n83,0,48,0,1,0,37,0,15,0,92,0\n89,0,45,0,17,0,40,0,42,0,9,0\n67,0,34,0,32,0,81,0,71,0,64,0\n26,0,59,0,70,0,38,0,87,0,72,0\n14,0,84,0,30,0,52,0,53,0,41,0\n27,0,22,0,7,0,86,0,5,0,25,0\n10,0,33,0,58,0,35,0,18,0,36,0\n76,0,62,0,66,0,65,0,50,0,21,0\n11,0,73,0,82,0,88,0,4,0,19,0\n23,0,92,0,2,0,89,0,60,0,42,0\n83,0,49,0,13,0,85,0,69,0,79,0\n80,0,48,0,38,0,28,0,31,0,16,0\n44,0,47,0,40,0,52,0,63,0,54,0\n68,0,17,0,61,0,25,0,20,0,84,0\n18,0,39,0,59,0,86,0,74,0,81,0\n77,0,64,0,35,0,6,0,36,0,41,0\n87,0,67,0,14,0,3,0,51,0,4,0\n70,0,21,0,30,0,82,0,57,0,55,0\n32,0,33,0,90,0,37,0,5,0,72,0\n19,0,66,0,24,0,1,0,12,0,10,0\n53,0,50,0,58,0,45,0,15,0,88,0\n7,0,9,0,62,0,78,0,34,0,43,0\n22,0,73,0,75,0,46,0,71,0,76,0\n26,0,91,0,11,0,65,0,8,0,29,0\n56,0,85,0,64,0,27,0,60,0,80,0\n70,0,44,0,39,0,41,0,61,0,40,0\n51,0,48,0,18,0,82,0,49,0,63,0\n6,0,31,0,84,0,33,0,59,0,67,0\n45,0,79,0,81,0,21,0,24,0,72,0\n19,0,50,0,9,0,13,0,38,0,25,0\n35,0,15,0,4,0,43,0,2,0,86,0\n42,0,69,0,76,0,26,0,10,0,29,0\n88,0,52,0,34,0,20,0,16,0,5,0\n89,0,73,0,68,0,47,0,30,0,36,0\n65,0,71,0,11,0,56,0,17,0,90,0\n14,0,62,0,3,0,12,0,77,0,75,0\n57,0,92,0,74,0,58,0,7,0,32,0\n54,0,27,0,83,0,8,0,22,0,1,0\n28,0,55,0,46,0,91,0,37,0,66,0\n53,0,87,0,24,0,78,0,23,0,64,0\n41,0,49,0,10,0,88,0,59,0,9,0\n52,0,29,0,60,0,73,0,70,0,81,0\n51,0,50,0,16,0,86,0,44,0,89,0\n72,0,30,0,34,0,39,0,2,0,48,0\n5,0,65,0,69,0,75,0,74,0,68,0\n22,0,90,0,76,0,45,0,38,0,67,0\n7,0,66,0,6,0,3,0,17,0,63,0\n57,0,35,0,19,0,54,0,85,0,87,0\n27,0,61,0,11,0,42,0,47,0,77,0\n84,0,4,0,79,0,46,0,18,0,1,0\n33,0,62,0,71,0,26,0,82,0,28,0\n58,0,23,0,37,0,78,0,56,0,13,0\n92,0,36,0,25,0,8,0,43,0,53,0\n20,0,83,0,91,0,14,0,80,0,40,0\n21,0,12,0,55,0,31,0,15,0,32,0\n67,0,66,0,69,0,44,0,2,0,59,0\n85,0,61,0,88,0,74,0,30,0,90,0\n6,0,5,0,76,0,9,0,11,0,4,0\n87,0,89,0,41,0,7,0,46,0,52,0\n22,0,57,0,28,0,13,0,39,0,60,0\n86,0,10,0,73,0,37,0,62,0,79,0\n54,0,19,0,77,0,58,0,17,0,78,0\n64,0,16,0,1,0,14,0,21,0,33,0\n29,0,63,0,36,0,80,0,15,0,71,0\n32,0,24,0,91,0,51,0,42,0,20,0\n3,0,65,0,25,0,83,0,82,0,31,0\n81,0,55,0,84,0,43,0,56,0,48,0\n8,0,45,0,47,0,70,0,75,0,34,0\n40,0,27,0,26,0,18,0,23,0,50,0\n12,0,38,0,68,0,49,0,92,0,35,0\n72,0,6,0,28,0,53,0,88,0,73,0\n"
  },
  {
    "path": "schedules/92_11.csv",
    "content": "92,0,40,0,24,0,53,0,49,0,60,0\n48,0,83,0,28,0,69,0,12,0,55,0\n37,0,32,0,31,0,42,0,34,0,54,0\n67,0,16,0,7,0,35,0,23,0,75,0\n15,0,52,0,78,0,58,0,72,0,80,0\n30,0,85,0,39,0,9,0,81,0,18,0\n4,0,57,0,25,0,63,0,87,0,71,0\n14,0,68,0,33,0,74,0,2,0,47,0\n44,0,73,0,29,0,13,0,43,0,26,0\n65,0,19,0,84,0,82,0,51,0,6,0\n45,0,11,0,36,0,38,0,79,0,66,0\n20,0,10,0,86,0,27,0,5,0,62,0\n61,0,59,0,70,0,76,0,41,0,22,0\n90,0,21,0,8,0,77,0,3,0,1,0\n64,0,17,0,88,0,50,0,46,0,91,0\n56,0,78,0,40,0,89,0,12,0,16,0\n54,0,15,0,33,0,4,0,35,0,55,0\n14,0,37,0,26,0,65,0,72,0,30,0\n63,0,6,0,75,0,83,0,60,0,13,0\n5,0,92,0,38,0,47,0,19,0,58,0\n45,0,42,0,2,0,39,0,76,0,20,0\n34,0,1,0,61,0,52,0,81,0,79,0\n66,0,84,0,91,0,18,0,7,0,43,0\n53,0,68,0,87,0,86,0,85,0,29,0\n56,0,77,0,73,0,71,0,24,0,67,0\n31,0,90,0,27,0,44,0,50,0,57,0\n21,0,74,0,62,0,17,0,69,0,48,0\n46,0,41,0,82,0,89,0,10,0,36,0\n3,0,9,0,23,0,51,0,64,0,32,0\n25,0,8,0,59,0,28,0,80,0,70,0\n88,0,11,0,72,0,22,0,49,0,6,0\n30,1,14,0,16,0,61,1,13,0,66,0\n26,0,39,0,4,0,86,0,52,0,83,0\n47,0,77,0,57,0,54,0,40,0,37,0\n55,0,1,0,60,0,76,0,56,0,17,0\n20,0,79,0,90,0,71,0,85,0,19,0\n34,0,15,0,44,0,41,0,87,0,84,0\n69,0,58,0,74,0,50,0,70,0,3,0\n29,0,78,0,46,0,28,0,32,0,67,0\n91,0,12,0,25,0,11,0,73,0,62,0\n43,0,42,0,35,0,27,0,81,0,89,0\n65,0,24,0,59,0,18,0,68,0,45,0\n10,0,88,0,80,0,33,0,31,0,51,0\n8,0,48,0,75,0,92,0,22,0,9,0\n36,0,5,0,49,0,21,0,23,0,63,0\n64,0,7,0,2,0,38,0,82,0,53,0\n17,0,3,0,41,0,71,0,13,0,30,0\n47,0,39,0,69,0,79,0,72,0,56,0\n37,0,74,0,19,0,26,0,12,0,61,0\n4,0,58,0,60,0,68,0,66,0,42,0\n91,0,54,0,59,0,1,0,16,0,10,0\n20,0,88,0,27,0,67,0,8,0,52,0\n84,0,46,0,24,0,25,0,21,0,33,0\n77,0,75,0,44,0,78,0,76,0,51,0\n18,0,36,0,70,0,57,0,64,0,86,0\n49,0,81,0,82,0,73,0,48,0,31,0\n38,0,23,0,45,0,62,0,87,0,83,0\n80,0,32,0,63,0,55,0,43,0,2,0\n50,0,35,0,40,0,6,0,14,0,29,0\n22,0,34,0,90,0,53,0,9,0,65,0\n5,0,7,0,85,0,15,0,28,0,11,0\n89,0,61,0,71,0,92,0,68,0,88,0\n52,0,60,0,37,0,25,0,64,0,69,0\n1,0,8,0,39,0,74,0,49,0,51,0\n46,0,70,0,38,0,30,0,73,0,42,0\n87,0,76,0,10,0,48,0,43,0,72,0\n16,0,54,0,24,0,19,0,3,0,2,0\n84,0,63,0,40,0,17,0,27,0,58,0\n18,0,12,0,20,0,90,0,41,0,75,0\n15,0,66,0,77,0,23,0,26,0,6,0\n62,0,80,0,34,0,57,0,92,0,67,0\n85,0,31,0,55,0,14,0,22,0,47,0\n91,0,36,0,33,0,28,0,65,0,44,0\n86,0,4,0,9,0,89,0,7,0,59,0\n11,0,56,0,5,0,32,0,13,0,35,0\n78,0,21,0,81,0,50,0,53,0,45,0\n29,0,83,0,27,0,79,0,82,0,37,0\n51,0,17,0,68,0,25,0,15,0,20,0\n60,0,16,0,70,0,88,0,48,0,39,0\n47,0,24,0,6,0,42,0,80,0,90,0\n49,0,84,0,55,0,52,0,75,0,71,0\n22,0,43,0,65,0,38,0,57,0,3,0\n11,0,31,0,87,0,46,0,74,0,9,0\n85,0,10,0,73,0,78,0,64,0,63,0\n28,0,53,0,56,0,4,0,61,0,19,0\n41,0,1,0,7,0,62,0,29,0,33,0\n21,0,35,0,76,0,30,0,34,0,86,0\n13,0,59,0,92,0,36,0,81,0,69,0\n45,0,91,0,26,0,5,0,40,0,2,0\n89,0,72,0,67,0,44,0,83,0,66,0\n12,0,54,0,23,0,8,0,79,0,50,0\n14,0,32,0,18,0,82,0,77,0,58,0\n74,0,43,0,75,0,24,0,85,0,4,0\n61,0,20,0,55,0,57,0,7,0,39,0\n28,0,86,0,17,0,47,0,73,0,16,0\n62,0,71,0,31,0,36,0,78,0,6,0\n51,0,90,0,81,0,87,0,37,0,5,0\n1,0,44,0,19,0,64,0,35,0,45,0\n27,0,69,0,80,0,66,0,76,0,9,0\n10,0,50,0,18,0,67,0,2,0,60,0\n59,0,46,0,3,0,72,0,26,0,92,0\n13,0,34,0,33,0,38,0,89,0,49,0\n52,0,63,0,54,0,70,0,68,0,11,0\n30,0,77,0,53,0,25,0,58,0,79,0\n41,0,83,0,32,0,40,0,65,0,8,0\n22,0,82,0,56,0,15,0,91,0,21,0\n23,0,88,0,29,0,42,0,48,0,84,0\n12,0,43,0,9,0,14,0,36,0,60,0\n51,0,73,0,61,0,27,0,47,0,45,0\n28,0,20,0,50,0,26,0,1,0,24,0\n38,0,86,0,72,0,81,0,54,0,75,0\n18,0,3,0,62,0,63,0,33,0,37,0\n79,0,4,0,65,0,10,0,35,0,17,0\n83,0,46,0,7,0,56,0,90,0,49,0\n5,0,66,0,41,0,55,0,88,0,74,0\n69,0,14,0,23,0,91,0,34,0,78,0\n67,0,13,0,15,0,31,0,70,0,19,0\n52,0,12,0,42,0,77,0,87,0,22,0\n82,0,92,0,76,0,25,0,16,0,85,0\n39,0,53,0,32,0,59,0,84,0,44,0\n89,0,2,0,8,0,29,0,30,0,11,0\n71,0,80,0,68,0,64,0,40,0,21,0\n48,0,6,0,45,0,58,0,57,0,56,0\n74,0,38,0,28,0,63,0,18,0,35,0\n14,0,79,0,62,0,46,0,15,0,75,0\n86,0,55,0,70,0,91,0,51,0,24,0\n83,0,19,0,50,0,7,0,77,0,34,0\n10,0,49,0,44,0,61,0,25,0,9,0\n2,0,66,0,78,0,17,0,90,0,59,0\n85,0,13,0,64,0,8,0,84,0,72,0\n37,0,58,0,29,0,22,0,16,0,71,0\n67,0,33,0,81,0,40,0,76,0,36,0\n30,0,52,0,31,0,23,0,43,0,5,0\n89,0,87,0,21,0,20,0,47,0,60,0\n27,0,42,0,11,0,65,0,1,0,92,0\n6,0,68,0,3,0,12,0,39,0,82,0\n48,0,54,0,26,0,80,0,41,0,53,0\n57,0,32,0,73,0,88,0,4,0,69,0\n13,0,77,0,55,0,46,0,45,0,10,0\n61,0,36,0,29,0,58,0,90,0,15,0\n72,0,19,0,25,0,40,0,23,0,18,0\n63,0,8,0,86,0,44,0,56,0,14,0\n79,0,42,0,74,0,49,0,59,0,67,0\n65,0,7,0,71,0,70,0,81,0,12,0\n60,0,3,0,27,0,28,0,34,0,85,0\n64,0,22,0,66,0,87,0,54,0,39,0\n2,0,57,0,21,0,41,0,52,0,51,0\n82,0,35,0,24,0,88,0,78,0,9,0\n91,0,30,0,6,0,32,0,20,0,92,0\n62,0,50,0,76,0,47,0,4,0,84,0\n43,0,53,0,83,0,17,0,11,0,33,0\n26,0,69,0,38,0,31,0,16,0,68,0\n1,0,89,0,73,0,75,0,80,0,37,0\n48,0,71,0,34,0,5,0,46,0,8,0\n42,0,10,0,81,0,66,0,14,0,3,0\n74,0,25,0,65,0,29,0,54,0,56,0\n87,0,19,0,49,0,78,0,27,0,30,0\n79,0,51,0,13,0,28,0,40,0,22,0\n23,0,60,0,82,0,11,0,86,0,61,0\n47,0,26,0,17,0,36,0,32,0,7,0\n88,0,21,0,58,0,12,0,44,0,85,0\n92,0,70,0,77,0,31,0,2,0,4,0\n63,0,48,0,15,0,89,0,24,0,50,0\n41,0,67,0,39,0,37,0,38,0,91,0\n84,0,16,0,35,0,20,0,83,0,80,0\n76,0,52,0,6,0,18,0,53,0,73,0\n43,0,90,0,64,0,59,0,62,0,55,0\n9,0,72,0,57,0,5,0,1,0,68,0\n33,0,69,0,30,0,45,0,75,0,61,0\n"
  },
  {
    "path": "schedules/92_12.csv",
    "content": "63,0,31,0,43,0,23,0,60,0,88,0\n10,0,29,0,81,0,42,0,52,0,13,0\n46,0,71,0,40,0,16,0,41,0,90,0\n36,0,4,0,37,0,35,0,58,0,38,0\n50,0,11,0,57,0,44,0,76,0,7,0\n54,0,64,0,6,0,79,0,9,0,67,0\n21,0,39,0,80,0,33,0,19,0,70,0\n3,0,15,0,22,0,83,0,51,0,18,0\n78,0,77,0,30,0,17,0,24,0,75,0\n68,0,69,0,8,0,28,0,55,0,91,0\n82,0,61,0,49,0,85,0,1,0,89,0\n47,0,56,0,87,0,20,0,14,0,34,0\n62,0,72,0,66,0,12,0,32,0,2,0\n84,0,27,0,53,0,74,0,26,0,65,0\n25,0,86,0,5,0,59,0,45,0,92,0\n48,0,88,0,43,0,73,0,19,0,44,0\n41,0,35,0,3,0,39,0,13,0,7,0\n38,0,23,0,55,0,76,0,30,0,21,0\n89,0,52,0,4,0,9,0,69,0,60,0\n78,0,42,0,16,0,70,0,54,0,34,0\n87,0,71,0,29,0,62,0,31,0,64,0\n80,0,47,0,90,0,49,0,68,0,28,0\n67,0,83,0,53,0,50,0,40,0,59,0\n65,0,20,0,85,0,11,0,46,0,18,0\n36,0,22,0,92,0,24,0,8,0,66,0\n61,0,25,0,51,0,73,0,74,0,2,0\n27,0,63,0,81,0,86,0,17,0,48,0\n26,0,5,0,57,0,32,0,79,0,77,0\n56,0,58,0,1,0,33,0,10,0,72,0\n84,0,15,0,75,0,6,0,91,0,37,0\n45,0,12,0,55,0,82,0,14,0,43,0\n85,0,69,0,34,0,23,0,64,0,53,0\n83,0,78,0,41,0,88,0,36,0,76,0\n74,0,9,0,44,0,39,0,46,0,67,0\n3,0,59,0,16,0,65,0,90,0,81,0\n18,0,62,0,48,0,49,0,13,0,57,0\n10,0,51,0,35,0,8,0,89,0,32,0\n50,0,37,0,19,0,72,0,42,0,77,0\n58,0,79,0,45,0,22,0,29,0,40,0\n31,0,52,0,2,0,56,0,27,0,30,0\n14,0,25,0,66,0,26,0,70,0,1,0\n54,0,71,0,82,0,75,0,63,0,47,0\n61,0,80,0,91,0,86,0,20,0,11,0\n60,0,24,0,28,0,7,0,21,0,84,0\n12,0,33,0,17,0,5,0,6,0,4,0\n38,0,87,0,68,0,92,0,73,0,15,0\n69,0,65,0,51,0,29,0,36,0,39,0\n2,0,72,0,19,0,83,0,64,0,81,0\n23,0,14,0,89,0,58,0,18,0,74,0\n54,0,45,0,26,0,49,0,37,0,52,0\n77,0,59,0,22,0,34,0,71,0,55,0\n42,0,76,0,27,0,24,0,47,0,44,0\n9,0,12,0,70,0,91,0,56,0,41,0\n40,0,90,0,73,0,30,0,5,0,35,0\n79,0,62,0,63,0,15,0,50,0,61,0\n75,0,38,0,20,0,84,0,3,0,25,0\n16,0,80,0,87,0,57,0,60,0,17,0\n10,0,21,0,82,0,68,0,53,0,46,0\n1,0,48,0,67,0,92,0,28,0,78,0\n32,0,11,0,6,0,43,0,13,0,8,0\n66,0,4,0,7,0,85,0,86,0,31,0\n33,0,74,0,37,0,88,0,22,0,47,0\n45,0,90,0,23,0,15,0,2,0,70,0\n81,0,40,0,14,0,9,0,76,0,75,0\n18,0,55,0,50,0,87,0,36,0,5,0\n39,0,73,0,52,0,71,0,58,0,12,0\n91,0,42,0,30,0,1,0,60,0,3,0\n46,0,43,0,72,0,57,0,89,0,38,0\n10,0,92,0,26,0,6,0,7,0,61,0\n88,0,20,0,28,0,32,0,27,0,29,0\n62,0,19,0,11,0,53,0,4,0,59,0\n83,0,69,0,86,0,54,0,84,0,56,0\n85,0,79,0,68,0,16,0,48,0,24,0\n67,0,63,0,66,0,41,0,49,0,33,0\n34,0,44,0,13,0,82,0,51,0,17,0\n65,0,25,0,64,0,77,0,8,0,80,0\n21,0,35,0,74,0,31,0,78,0,50,0\n28,0,72,0,70,0,71,0,6,0,92,0\n47,0,55,0,81,0,45,0,62,0,4,0\n15,0,86,0,42,0,88,0,46,0,12,0\n75,0,18,0,19,0,9,0,32,0,90,0\n52,0,5,0,68,0,84,0,41,0,66,0\n61,0,38,0,33,0,40,0,44,0,69,0\n16,0,51,0,1,0,20,0,24,0,23,0\n17,0,35,0,79,0,56,0,82,0,65,0\n64,0,80,0,57,0,59,0,10,0,37,0\n13,0,30,0,83,0,25,0,89,0,21,0\n29,0,7,0,8,0,53,0,73,0,49,0\n27,0,67,0,58,0,3,0,43,0,34,0\n36,0,77,0,26,0,48,0,31,0,91,0\n22,0,87,0,76,0,54,0,85,0,63,0\n39,0,78,0,11,0,2,0,60,0,14,0\n38,0,28,0,17,0,51,0,19,0,45,0\n6,0,90,0,57,0,86,0,47,0,52,0\n82,0,20,0,89,0,92,0,42,0,64,0\n5,0,74,0,13,0,15,0,16,0,72,0\n1,0,55,0,65,0,88,0,9,0,40,0\n43,0,7,0,81,0,71,0,30,0,66,0\n76,0,12,0,10,0,49,0,69,0,25,0\n59,0,60,0,54,0,18,0,41,0,27,0\n53,0,91,0,2,0,35,0,14,0,63,0\n48,0,56,0,50,0,39,0,22,0,23,0\n34,0,73,0,33,0,75,0,36,0,46,0\n58,0,68,0,32,0,31,0,61,0,83,0\n77,0,70,0,24,0,87,0,11,0,67,0\n80,0,3,0,4,0,78,0,26,0,29,0\n37,0,21,0,8,0,85,0,62,0,44,0\n84,0,30,0,47,0,79,0,19,0,16,0\n27,0,49,0,40,0,64,0,51,0,91,0\n66,0,50,0,20,0,54,0,10,0,15,0\n6,0,13,0,2,0,1,0,59,0,36,0\n60,0,61,0,65,0,48,0,75,0,12,0\n70,0,73,0,83,0,77,0,52,0,82,0\n4,0,18,0,35,0,68,0,42,0,43,0\n80,0,85,0,71,0,56,0,5,0,38,0\n46,0,32,0,7,0,78,0,45,0,87,0\n8,0,39,0,34,0,90,0,26,0,76,0\n22,0,25,0,67,0,31,0,72,0,14,0\n17,0,92,0,21,0,58,0,84,0,88,0\n53,0,89,0,79,0,28,0,81,0,44,0\n86,0,23,0,33,0,62,0,9,0,3,0\n74,0,57,0,24,0,29,0,63,0,55,0\n69,0,41,0,1,0,37,0,11,0,15,0\n46,0,4,0,48,0,5,0,51,0,54,0\n71,0,60,0,26,0,19,0,83,0,20,0\n78,0,8,0,40,0,66,0,56,0,18,0\n32,0,31,0,76,0,17,0,73,0,59,0\n88,0,77,0,68,0,58,0,81,0,6,0\n12,0,23,0,13,0,67,0,84,0,80,0\n47,0,36,0,25,0,85,0,53,0,43,0\n90,0,70,0,79,0,55,0,27,0,10,0\n64,0,3,0,21,0,52,0,63,0,11,0\n44,0,75,0,22,0,86,0,35,0,87,0\n50,0,33,0,91,0,45,0,16,0,89,0\n49,0,24,0,34,0,72,0,65,0,38,0\n62,0,42,0,69,0,7,0,14,0,74,0\n28,0,61,0,30,0,41,0,39,0,57,0\n2,0,37,0,9,0,29,0,92,0,82,0\n51,0,56,0,76,0,60,0,67,0,68,0\n54,0,36,0,3,0,17,0,25,0,40,0\n44,0,32,0,53,0,80,0,15,0,52,0\n11,0,45,0,85,0,73,0,27,0,75,0\n38,0,18,0,16,0,26,0,6,0,88,0\n65,0,66,0,13,0,19,0,91,0,87,0\n35,0,59,0,70,0,47,0,72,0,69,0\n46,0,14,0,29,0,50,0,92,0,30,0\n82,0,24,0,58,0,90,0,62,0,5,0\n1,0,7,0,34,0,21,0,79,0,12,0\n63,0,28,0,74,0,83,0,4,0,10,0\n8,0,42,0,2,0,57,0,71,0,33,0\n9,0,84,0,78,0,43,0,61,0,22,0\n55,0,86,0,41,0,89,0,64,0,48,0\n81,0,39,0,49,0,37,0,20,0,31,0\n23,0,29,0,44,0,77,0,66,0,91,0\n87,0,88,0,72,0,53,0,30,0,51,0\n47,0,68,0,40,0,26,0,11,0,12,0\n45,0,6,0,24,0,80,0,83,0,34,0\n14,0,76,0,5,0,10,0,3,0,19,0\n85,0,9,0,50,0,58,0,13,0,28,0\n84,0,36,0,90,0,32,0,42,0,63,0\n60,0,82,0,86,0,74,0,8,0,38,0\n48,0,15,0,27,0,25,0,71,0,35,0\n39,0,43,0,62,0,1,0,77,0,54,0\n92,0,57,0,23,0,41,0,4,0,75,0\n79,0,33,0,52,0,20,0,59,0,78,0\n49,0,64,0,17,0,70,0,22,0,46,0\n73,0,18,0,21,0,69,0,67,0,81,0\n37,0,56,0,7,0,16,0,55,0,61,0\n31,0,89,0,5,0,2,0,65,0,47,0\n15,0,19,0,28,0,86,0,40,0,34,0\n27,0,12,0,14,0,83,0,77,0,38,0\n91,0,88,0,82,0,39,0,4,0,25,0\n20,0,30,0,63,0,44,0,68,0,45,0\n10,0,11,0,71,0,9,0,17,0,23,0\n85,0,81,0,51,0,70,0,57,0,78,0\n64,0,72,0,29,0,90,0,61,0,18,0\n31,0,53,0,54,0,33,0,55,0,13,0\n74,0,56,0,92,0,32,0,49,0,3,0\n24,0,26,0,2,0,50,0,43,0,69,0\n52,0,16,0,75,0,36,0,62,0,67,0\n59,0,8,0,48,0,58,0,7,0,87,0\n76,0,46,0,84,0,35,0,1,0,80,0\n41,0,42,0,22,0,21,0,6,0,65,0\n89,0,73,0,60,0,66,0,37,0,79,0\n"
  },
  {
    "path": "schedules/92_13.csv",
    "content": "85,0,57,0,2,0,26,0,82,0,88,0\n92,0,11,0,18,0,51,0,9,0,75,0\n56,0,36,0,91,0,68,0,35,0,10,0\n19,0,12,0,6,0,44,0,61,0,49,0\n3,0,1,0,8,0,33,0,58,0,74,0\n50,0,42,0,69,0,39,0,87,0,66,0\n17,0,23,0,62,0,52,0,84,0,27,0\n77,0,73,0,90,0,48,0,64,0,41,0\n43,0,29,0,63,0,89,0,5,0,79,0\n25,0,24,0,15,0,37,0,86,0,38,0\n54,0,21,0,65,0,60,0,81,0,47,0\n71,0,16,0,20,0,78,0,80,0,76,0\n30,0,45,0,53,0,59,0,31,0,67,0\n55,0,28,0,4,0,14,0,70,0,46,0\n34,0,22,0,72,0,83,0,7,0,13,0\n40,0,82,0,36,0,32,0,44,0,18,0\n91,0,27,0,85,0,50,0,39,0,63,0\n23,0,12,0,77,0,57,0,25,0,29,0\n2,0,69,0,58,0,17,0,48,0,11,0\n76,0,73,0,21,0,3,0,61,0,43,0\n33,0,10,0,53,0,20,0,92,0,86,0\n9,0,15,0,52,0,88,0,67,0,46,0\n1,0,42,0,78,0,8,0,60,0,35,0\n54,0,83,0,51,0,40,0,49,0,59,0\n56,0,68,0,81,0,24,0,87,0,45,0\n4,0,79,0,37,0,72,0,64,0,16,0\n5,0,74,0,6,0,66,0,62,0,30,0\n47,0,19,0,22,0,28,0,34,0,90,0\n7,0,70,0,71,0,26,0,75,0,84,0\n14,0,31,0,65,0,41,0,38,0,89,0\n13,0,80,0,10,0,55,0,32,0,15,0\n77,1,25,0,83,0,61,1,2,0,36,0\n68,1,18,0,60,0,20,1,23,0,85,0\n12,0,76,0,63,0,51,0,56,0,58,0\n87,0,53,0,1,0,11,0,72,0,6,0\n19,0,66,0,73,0,46,0,78,0,40,0\n59,0,9,0,82,0,43,0,70,0,16,0\n21,0,48,0,5,0,71,0,39,0,65,0\n3,0,55,0,47,0,49,0,7,0,4,0\n28,0,8,0,57,0,41,0,79,0,52,0\n62,0,26,0,67,0,37,0,13,0,29,0\n32,0,69,0,14,0,84,0,30,0,35,0\n80,0,38,0,44,0,64,0,27,0,42,0\n88,0,24,0,31,0,74,0,92,0,22,0\n91,0,89,0,34,0,86,0,45,0,54,0\n90,0,75,0,50,0,17,0,81,0,33,0\n68,0,72,0,66,0,65,0,18,0,12,0\n28,0,7,0,15,0,53,0,76,0,16,0\n48,0,3,0,39,0,57,0,61,0,13,0\n9,0,73,0,14,0,32,0,49,0,79,0\n55,0,63,0,11,0,67,0,77,0,42,0\n59,0,41,0,2,0,22,0,21,0,24,0\n43,0,88,0,91,0,62,0,40,0,1,0\n34,0,70,0,30,0,81,0,80,0,27,0\n84,0,25,0,51,0,89,0,45,0,60,0\n37,0,6,0,54,0,20,0,8,0,69,0\n33,0,56,0,75,0,26,0,19,0,83,0\n86,0,47,0,87,0,31,0,52,0,58,0\n74,0,64,0,10,0,29,0,78,0,50,0\n23,0,90,0,46,0,82,0,71,0,44,0\n38,0,5,0,35,0,17,0,85,0,4,0\n92,0,7,0,61,0,36,0,63,0,65,0\n18,0,73,0,67,0,16,0,34,0,60,0\n9,0,1,0,80,0,37,0,57,0,21,0\n43,0,30,0,26,0,28,0,45,0,41,0\n89,0,47,0,32,0,83,0,27,0,8,0\n25,0,42,0,20,0,13,0,81,0,52,0\n22,0,46,0,62,0,39,0,68,0,33,0\n48,0,75,0,85,0,66,0,59,0,15,0\n51,0,88,0,10,0,6,0,71,0,4,0\n50,0,72,0,3,0,36,0,19,0,23,0\n44,0,79,0,29,0,53,0,56,0,2,0\n5,0,82,0,91,0,92,0,84,0,38,0\n11,0,35,0,86,0,76,0,64,0,40,0\n31,0,55,0,78,0,90,0,12,0,69,0\n49,0,77,0,70,0,87,0,74,0,17,0\n54,0,58,0,7,0,14,0,24,0,18,0\n8,0,22,0,51,0,57,0,43,0,65,0\n60,0,27,0,36,0,15,0,41,0,33,0\n72,0,45,0,20,0,32,0,71,0,73,0\n13,0,63,0,68,0,88,0,38,0,16,0\n44,0,91,0,47,0,67,0,3,0,11,0\n69,0,37,0,89,0,53,0,52,0,21,0\n85,0,56,0,40,0,84,0,55,0,61,0\n17,0,29,0,90,0,42,0,83,0,92,0\n79,0,78,0,30,0,48,0,25,0,87,0\n81,0,6,0,77,0,59,0,14,0,58,0\n28,0,66,0,70,0,10,0,49,0,31,0\n26,0,46,0,35,0,34,0,62,0,80,0\n1,0,64,0,82,0,39,0,24,0,19,0\n74,0,4,0,76,0,2,0,86,0,75,0\n50,0,23,0,9,0,12,0,54,0,5,0\n15,0,83,0,85,0,73,0,69,0,65,0\n29,0,48,0,16,0,52,0,55,0,36,0\n11,0,89,0,27,0,68,0,71,0,79,0\n31,0,40,0,3,0,37,0,42,0,81,0\n46,0,30,0,57,0,38,0,18,0,56,0\n60,0,49,0,63,0,82,0,90,0,22,0\n7,0,74,0,59,0,19,0,91,0,35,0\n41,0,20,0,87,0,75,0,62,0,12,0\n70,0,8,0,67,0,21,0,72,0,25,0\n39,0,43,0,84,0,80,0,50,0,86,0\n28,0,2,0,13,0,64,0,5,0,45,0\n1,0,10,0,4,0,77,0,54,0,44,0\n32,0,34,0,23,0,6,0,58,0,92,0\n17,0,14,0,61,0,78,0,26,0,53,0\n24,0,9,0,33,0,51,0,47,0,66,0\n76,0,27,0,49,0,88,0,37,0,48,0\n65,0,11,0,62,0,25,0,73,0,82,0\n86,0,79,0,8,0,12,0,60,0,46,0\n56,0,20,0,52,0,5,0,70,0,40,0\n39,0,16,0,2,0,35,0,3,0,89,0\n19,0,41,0,84,0,42,0,58,0,29,0\n32,0,26,0,81,0,22,0,91,0,64,0\n66,0,67,0,54,0,36,0,68,0,43,0\n61,0,18,0,63,0,80,0,87,0,4,0\n88,0,74,0,13,0,53,0,90,0,83,0\n45,0,33,0,38,0,76,0,69,0,77,0\n23,0,59,0,71,0,55,0,34,0,1,0\n50,0,15,0,92,0,30,0,72,0,47,0\n31,0,7,0,44,0,17,0,51,0,57,0\n24,0,75,0,78,0,6,0,28,0,9,0\n21,0,14,0,16,0,85,0,10,0,22,0\n60,0,37,0,66,0,61,0,11,0,32,0\n65,0,53,0,42,0,49,0,91,0,46,0\n52,0,83,0,12,0,80,0,54,0,82,0\n38,0,40,0,74,0,26,0,48,0,89,0\n33,0,88,0,35,0,70,0,18,0,29,0\n57,0,92,0,68,0,55,0,64,0,59,0\n50,0,84,0,24,0,67,0,79,0,20,0\n7,0,78,0,21,0,56,0,77,0,27,0\n87,0,2,0,14,0,47,0,43,0,23,0\n10,0,39,0,34,0,75,0,31,0,8,0\n81,0,44,0,72,0,5,0,41,0,76,0\n13,0,6,0,86,0,9,0,36,0,85,0\n71,0,51,0,3,0,62,0,28,0,69,0\n17,0,45,0,25,0,15,0,63,0,1,0\n90,0,19,0,58,0,30,0,4,0,73,0\n52,0,57,0,22,0,61,0,50,0,35,0\n83,0,79,0,18,0,38,0,21,0,55,0\n39,0,11,0,88,0,20,0,14,0,7,0\n84,0,31,0,56,0,54,0,72,0,2,0\n85,0,46,0,74,0,37,0,41,0,67,0\n27,0,40,0,29,0,6,0,65,0,24,0\n5,0,47,0,69,0,25,0,26,0,10,0\n70,0,86,0,76,0,68,0,1,0,19,0\n60,0,80,0,58,0,75,0,36,0,28,0\n51,0,42,0,32,0,48,0,53,0,34,0\n64,0,30,0,63,0,33,0,23,0,49,0\n82,0,81,0,43,0,78,0,4,0,15,0\n59,0,89,0,17,0,12,0,13,0,73,0\n16,0,62,0,44,0,66,0,45,0,92,0\n87,0,90,0,8,0,9,0,3,0,91,0\n71,0,84,0,37,0,77,0,18,0,22,0\n70,0,69,0,57,0,24,0,60,0,2,0\n1,0,32,0,28,0,65,0,56,0,67,0\n83,0,29,0,31,0,50,0,76,0,46,0\n4,0,34,0,21,0,68,0,74,0,20,0\n61,0,42,0,88,0,89,0,75,0,23,0\n44,0,48,0,78,0,63,0,54,0,62,0\n87,0,26,0,36,0,73,0,39,0,59,0\n64,0,6,0,33,0,52,0,7,0,43,0\n66,0,25,0,27,0,90,0,14,0,3,0\n11,0,16,0,15,0,8,0,5,0,19,0\n81,0,12,0,35,0,47,0,53,0,71,0\n10,0,38,0,58,0,72,0,40,0,9,0\n80,0,77,0,45,0,79,0,92,0,85,0\n51,0,55,0,30,0,17,0,86,0,82,0\n49,0,41,0,18,0,13,0,91,0,69,0\n65,0,76,0,52,0,84,0,34,0,78,0\n2,0,37,0,73,0,50,0,6,0,68,0\n20,0,5,0,3,0,83,0,59,0,46,0\n11,0,54,0,57,0,32,0,63,0,74,0\n22,0,61,0,81,0,38,0,1,0,29,0\n23,0,45,0,40,0,7,0,8,0,80,0\n70,0,39,0,79,0,90,0,15,0,51,0\n53,0,9,0,60,0,4,0,77,0,62,0\n75,0,58,0,82,0,21,0,35,0,13,0\n17,0,66,0,41,0,88,0,47,0,56,0\n49,0,26,0,72,0,86,0,16,0,24,0\n42,0,85,0,43,0,10,0,12,0,30,0\n33,0,89,0,55,0,28,0,87,0,44,0\n92,0,67,0,19,0,48,0,27,0,14,0\n64,0,36,0,25,0,31,0,71,0,91,0\n59,0,84,0,18,0,11,0,78,0,90,0\n5,0,53,0,22,0,70,0,80,0,73,0\n68,0,52,0,29,0,32,0,3,0,75,0\n69,0,61,0,79,0,47,0,74,0,82,0\n86,0,26,0,21,0,66,0,23,0,63,0\n13,0,77,0,24,0,44,0,30,0,8,0\n55,0,35,0,72,0,43,0,27,0,20,0\n60,0,83,0,4,0,6,0,48,0,91,0\n67,0,9,0,49,0,2,0,81,0,7,0\n12,0,38,0,87,0,34,0,88,0,36,0\n71,0,14,0,57,0,40,0,33,0,42,0\n56,0,89,0,62,0,64,0,85,0,58,0\n16,0,46,0,41,0,1,0,50,0,51,0\n92,0,28,0,76,0,25,0,54,0,39,0\n19,0,45,0,65,0,10,0,37,0,17,0\n15,0,77,0,68,0,31,0,61,0,20,0\n"
  },
  {
    "path": "schedules/92_14.csv",
    "content": "48,0,2,0,88,0,29,0,17,0,43,0\n1,0,92,0,67,0,71,0,79,0,45,0\n6,0,64,0,80,0,90,0,19,0,52,0\n63,0,83,0,42,0,77,0,69,0,50,0\n40,0,5,0,20,0,60,0,18,0,54,0\n27,0,37,0,89,0,85,0,24,0,55,0\n7,0,39,0,15,0,33,0,36,0,78,0\n51,0,86,0,49,0,91,0,57,0,53,0\n25,0,14,0,9,0,65,0,38,0,47,0\n31,0,8,0,81,0,22,0,32,0,87,0\n34,0,28,0,3,0,68,0,44,0,62,0\n4,0,76,0,59,0,10,0,12,0,58,0\n75,0,21,0,82,0,23,0,16,0,26,0\n73,0,35,0,66,0,72,0,13,0,46,0\n30,0,56,0,41,0,74,0,11,0,70,0\n61,0,64,0,79,0,84,0,54,0,7,0\n53,0,39,0,19,0,14,0,42,0,1,0\n24,0,88,0,71,0,8,0,86,0,78,0\n15,0,38,0,32,0,91,0,43,0,6,0\n10,0,92,0,60,0,50,0,90,0,2,0\n68,0,82,0,40,0,89,0,25,0,29,0\n72,0,36,0,87,0,51,0,65,0,34,0\n77,0,17,0,85,0,76,0,75,0,56,0\n13,0,35,0,47,0,37,0,16,0,30,0\n4,0,26,0,12,0,46,0,31,0,55,0\n52,0,83,0,18,0,3,0,73,0,22,0\n58,0,70,0,66,0,27,0,45,0,69,0\n80,0,11,0,63,0,44,0,23,0,5,0\n67,0,41,0,49,0,9,0,81,0,21,0\n62,0,84,0,57,0,74,0,48,0,33,0\n28,0,61,0,85,0,20,0,59,0,88,0\n64,1,10,0,25,0,51,1,42,0,32,0\n39,0,86,0,75,0,30,0,34,0,13,0\n43,0,36,0,24,0,4,0,46,0,68,0\n1,0,17,0,65,0,22,0,37,0,82,0\n72,0,11,0,71,0,38,0,50,0,80,0\n60,0,66,0,76,0,3,0,44,0,81,0\n21,0,91,0,84,0,69,0,47,0,8,0\n7,0,58,0,78,0,62,0,5,0,89,0\n56,0,9,0,83,0,53,0,26,0,48,0\n45,0,74,0,18,0,28,0,12,0,90,0\n92,0,23,0,29,0,54,0,33,0,73,0\n31,0,52,0,27,0,40,0,16,0,57,0\n55,0,67,0,79,0,20,0,15,0,63,0\n2,0,6,0,35,0,14,0,41,0,59,0\n49,0,77,0,19,0,70,0,61,0,87,0\n32,0,7,0,10,0,30,0,44,0,47,0\n11,0,78,0,46,0,21,0,42,0,22,0\n8,0,66,0,28,0,17,0,53,0,38,0\n34,0,5,0,74,0,88,0,25,0,23,0\n29,0,54,0,52,0,26,0,65,0,71,0\n57,0,9,0,24,0,18,0,15,0,69,0\n84,0,35,0,75,0,56,0,36,0,40,0\n39,0,27,0,83,0,67,0,61,0,91,0\n6,0,73,0,55,0,16,0,1,0,81,0\n50,0,12,0,86,0,43,0,87,0,37,0\n70,0,3,0,2,0,64,0,13,0,85,0\n59,0,80,0,49,0,62,0,77,0,82,0\n51,0,20,0,48,0,4,0,92,0,14,0\n41,0,60,0,68,0,76,0,72,0,58,0\n63,0,45,0,90,0,89,0,33,0,19,0\n31,0,91,0,39,0,79,0,29,0,66,0\n10,0,16,0,46,0,61,0,71,0,18,0\n36,0,27,0,65,0,12,0,32,0,78,0\n64,0,43,0,5,0,9,0,75,0,22,0\n49,0,34,0,35,0,74,0,42,0,85,0\n38,0,56,0,69,0,86,0,54,0,81,0\n59,0,72,0,44,0,17,0,4,0,83,0\n47,0,19,0,82,0,51,0,15,0,92,0\n7,0,70,0,13,0,68,0,52,0,55,0\n53,0,76,0,89,0,80,0,84,0,2,0\n48,0,67,0,23,0,8,0,60,0,77,0\n14,0,11,0,26,0,88,0,37,0,79,0\n45,0,41,0,62,0,31,0,63,0,40,0\n58,0,24,0,33,0,6,0,1,0,20,0\n90,0,25,0,3,0,57,0,21,0,50,0\n30,0,87,0,82,0,73,0,28,0,27,0\n44,0,64,0,65,0,92,0,13,0,69,0\n74,0,36,0,29,0,19,0,83,0,38,0\n51,0,70,0,81,0,39,0,35,0,71,0\n78,0,9,0,66,0,80,0,60,0,79,0\n40,0,47,0,53,0,63,0,55,0,34,0\n41,0,6,0,8,0,46,0,7,0,43,0\n84,0,25,0,77,0,11,0,1,0,88,0\n12,0,89,0,59,0,3,0,20,0,16,0\n17,0,18,0,58,0,52,0,67,0,87,0\n26,0,90,0,85,0,24,0,28,0,91,0\n68,0,49,0,73,0,5,0,14,0,48,0\n30,0,61,0,2,0,72,0,57,0,31,0\n86,0,45,0,23,0,22,0,10,0,76,0\n33,0,32,0,37,0,56,0,21,0,4,0\n50,0,75,0,42,0,15,0,54,0,62,0\n8,0,9,0,70,0,44,0,29,0,12,0\n79,0,43,0,27,0,53,0,51,0,25,0\n82,0,63,0,38,0,13,0,78,0,18,0\n80,0,1,0,3,0,87,0,48,0,41,0\n92,0,30,0,36,0,66,0,85,0,16,0\n31,0,14,0,89,0,69,0,52,0,86,0\n91,0,72,0,5,0,19,0,37,0,20,0\n33,0,90,0,40,0,11,0,17,0,49,0\n42,0,61,0,76,0,67,0,56,0,24,0\n32,0,54,0,34,0,77,0,58,0,2,0\n88,0,55,0,10,0,57,0,75,0,83,0\n73,0,21,0,60,0,28,0,71,0,7,0\n68,0,64,0,26,0,35,0,15,0,45,0\n47,0,59,0,74,0,65,0,22,0,46,0\n50,0,4,0,62,0,6,0,23,0,39,0\n81,0,43,0,85,0,84,0,82,0,1,0\n37,0,80,0,42,0,8,0,29,0,3,0\n31,0,86,0,19,0,11,0,58,0,25,0\n69,0,5,0,55,0,48,0,72,0,32,0\n79,0,54,0,17,0,60,0,89,0,83,0\n15,0,40,0,12,0,73,0,51,0,2,0\n35,0,38,0,7,0,76,0,49,0,27,0\n24,0,13,0,53,0,21,0,74,0,77,0\n71,0,14,0,20,0,90,0,75,0,30,0\n92,0,81,0,91,0,59,0,78,0,70,0\n63,0,46,0,87,0,39,0,64,0,56,0\n61,0,52,0,47,0,50,0,66,0,23,0\n84,0,9,0,16,0,45,0,4,0,34,0\n62,0,67,0,65,0,57,0,88,0,68,0\n22,0,41,0,33,0,28,0,36,0,10,0\n44,0,6,0,51,0,26,0,18,0,86,0\n14,0,3,0,7,0,17,0,24,0,40,0\n71,0,55,0,2,0,82,0,25,0,74,0\n37,0,83,0,58,0,92,0,46,0,49,0\n77,0,79,0,52,0,12,0,72,0,47,0\n91,0,45,0,42,0,48,0,30,0,60,0\n39,0,57,0,20,0,38,0,84,0,64,0\n69,0,33,0,67,0,80,0,43,0,73,0\n61,0,15,0,78,0,41,0,34,0,85,0\n81,0,68,0,19,0,9,0,10,0,26,0\n36,0,90,0,23,0,13,0,59,0,87,0\n16,0,29,0,32,0,76,0,28,0,63,0\n21,0,1,0,62,0,5,0,66,0,56,0\n22,0,54,0,44,0,27,0,88,0,6,0\n50,0,53,0,65,0,70,0,35,0,31,0\n4,0,11,0,75,0,89,0,8,0,18,0\n86,0,20,0,64,0,78,0,77,0,73,0\n60,0,40,0,43,0,74,0,37,0,10,0\n79,0,12,0,68,0,23,0,71,0,85,0\n58,0,42,0,38,0,2,0,26,0,83,0\n92,0,63,0,32,0,49,0,52,0,1,0\n6,0,45,0,36,0,5,0,3,0,47,0\n29,0,81,0,27,0,90,0,72,0,62,0\n57,0,11,0,34,0,66,0,7,0,82,0\n16,0,87,0,75,0,44,0,41,0,25,0\n19,0,55,0,8,0,33,0,59,0,35,0\n21,0,65,0,48,0,39,0,76,0,18,0\n46,0,15,0,30,0,88,0,80,0,53,0\n28,0,67,0,4,0,14,0,70,0,54,0\n13,0,56,0,22,0,9,0,89,0,91,0\n50,0,17,0,31,0,51,0,24,0,84,0\n69,0,26,0,1,0,61,0,60,0,12,0\n37,0,62,0,11,0,36,0,64,0,2,0\n79,0,38,0,59,0,87,0,42,0,68,0\n29,0,34,0,10,0,21,0,20,0,27,0\n55,0,23,0,49,0,43,0,39,0,65,0\n71,0,77,0,48,0,66,0,44,0,40,0\n15,0,72,0,14,0,56,0,8,0,16,0\n58,0,88,0,91,0,63,0,35,0,3,0\n22,0,7,0,4,0,50,0,25,0,19,0\n13,0,61,0,5,0,53,0,81,0,33,0\n47,0,57,0,73,0,41,0,24,0,89,0\n90,0,84,0,46,0,70,0,67,0,86,0\n82,0,54,0,76,0,52,0,9,0,74,0\n69,0,28,0,31,0,78,0,6,0,75,0\n51,0,83,0,85,0,45,0,32,0,80,0\n18,0,30,0,55,0,17,0,92,0,62,0\n91,0,2,0,56,0,23,0,65,0,7,0\n15,0,77,0,26,0,10,0,27,0,3,0\n16,0,60,0,24,0,22,0,39,0,38,0\n44,0,89,0,88,0,50,0,36,0,49,0\n8,0,13,0,4,0,1,0,79,0,40,0\n70,0,25,0,48,0,61,0,63,0,6,0\n64,0,35,0,12,0,82,0,83,0,33,0\n66,0,32,0,84,0,19,0,41,0,18,0\n71,0,76,0,73,0,43,0,34,0,31,0\n47,0,87,0,17,0,11,0,69,0,20,0\n52,0,59,0,51,0,67,0,21,0,30,0\n57,0,46,0,29,0,85,0,5,0,75,0\n28,0,9,0,72,0,92,0,86,0,42,0\n54,0,37,0,78,0,90,0,68,0,53,0\n74,0,80,0,14,0,45,0,58,0,81,0\n32,0,89,0,40,0,38,0,70,0,23,0\n73,0,25,0,8,0,62,0,36,0,26,0\n56,0,27,0,60,0,13,0,88,0,19,0\n50,0,18,0,1,0,91,0,34,0,64,0\n85,0,82,0,3,0,67,0,47,0,31,0\n2,0,46,0,21,0,44,0,79,0,20,0\n69,0,90,0,16,0,5,0,51,0,7,0\n76,0,14,0,78,0,55,0,83,0,87,0\n10,0,52,0,48,0,35,0,54,0,11,0\n63,0,71,0,84,0,59,0,37,0,9,0\n24,0,22,0,45,0,72,0,49,0,53,0\n41,0,66,0,15,0,86,0,29,0,4,0\n74,0,92,0,68,0,80,0,75,0,61,0\n77,0,33,0,43,0,58,0,30,0,65,0\n17,0,6,0,81,0,12,0,57,0,42,0\n39,0,46,0,69,0,28,0,2,0,40,0\n91,0,36,0,70,0,10,0,82,0,14,0\n26,0,20,0,13,0,76,0,7,0,50,0\n23,0,1,0,78,0,51,0,3,0,72,0\n53,0,87,0,62,0,4,0,60,0,85,0\n74,0,89,0,16,0,67,0,66,0,64,0\n38,0,5,0,92,0,41,0,77,0,31,0\n75,0,19,0,34,0,48,0,79,0,24,0\n39,0,88,0,9,0,90,0,32,0,73,0\n33,0,42,0,18,0,71,0,27,0,47,0\n28,0,37,0,25,0,52,0,15,0,81,0\n86,0,80,0,21,0,17,0,61,0,35,0\n83,0,65,0,68,0,11,0,84,0,6,0\n8,0,54,0,12,0,63,0,49,0,30,0\n44,0,57,0,43,0,59,0,56,0,45,0\n58,0,22,0,64,0,55,0,29,0,51,0\n"
  },
  {
    "path": "schedules/92_2.csv",
    "content": "27,0,63,0,56,0,26,0,8,0,41,0\n84,0,43,0,7,0,5,0,3,0,79,0\n92,0,57,0,42,0,30,0,4,0,19,0\n65,0,46,0,13,0,58,0,81,0,82,0\n32,0,33,0,78,0,10,0,64,0,71,0\n21,0,59,0,39,0,1,0,29,0,34,0\n75,0,76,0,12,0,40,0,44,0,91,0\n25,0,31,0,18,0,35,0,11,0,86,0\n16,0,9,0,22,0,85,0,69,0,6,0\n51,0,53,0,49,0,61,0,54,0,62,0\n55,0,60,0,83,0,2,0,66,0,52,0\n73,0,77,0,37,0,15,0,80,0,67,0\n23,0,47,0,14,0,72,0,70,0,90,0\n28,0,50,0,88,0,87,0,45,0,38,0\n17,0,48,0,24,0,20,0,68,0,36,0\n89,0,84,0,41,0,74,0,78,0,57,0\n26,0,40,0,11,0,59,0,16,0,92,0\n35,0,64,0,34,0,76,0,56,0,62,0\n10,0,69,0,13,0,39,0,12,0,60,0\n80,0,81,0,30,0,83,0,43,0,1,0\n90,0,5,0,8,0,46,0,44,0,4,0\n66,0,70,0,50,0,49,0,85,0,79,0\n51,0,91,0,6,0,33,0,31,0,36,0\n22,0,20,0,2,0,75,0,27,0,18,0\n14,0,15,0,58,0,28,0,55,0,17,0\n61,0,29,0,19,0,87,0,63,0,24,0\n3,0,48,0,89,0,65,0,42,0,67,0\n45,0,52,0,71,0,53,0,47,0,37,0\n74,0,86,0,72,0,32,0,7,0,21,0\n38,0,54,0,68,0,23,0,73,0,9,0\n88,0,82,0,76,1,25,0,77,0,36,1\n"
  },
  {
    "path": "schedules/92_3.csv",
    "content": "2,0,87,0,49,0,32,0,39,0,51,0\n37,0,38,0,81,0,31,0,8,0,88,0\n73,0,13,0,62,0,90,0,71,0,41,0\n69,0,12,0,35,0,74,0,18,0,27,0\n25,0,46,0,70,0,91,0,65,0,11,0\n66,0,86,0,85,0,43,0,59,0,6,0\n7,0,56,0,40,0,33,0,45,0,44,0\n78,0,48,0,54,0,4,0,28,0,58,0\n22,0,23,0,64,0,52,0,68,0,55,0\n89,0,36,0,9,0,72,0,67,0,10,0\n60,0,50,0,63,0,82,0,1,0,80,0\n42,0,75,0,57,0,30,0,3,0,16,0\n79,0,77,0,19,0,34,0,21,0,20,0\n84,0,14,0,5,0,76,0,47,0,29,0\n26,0,24,0,61,0,15,0,17,0,53,0\n92,0,48,0,86,0,83,0,11,0,13,0\n22,0,71,0,65,0,87,0,38,0,28,0\n70,0,67,0,85,0,18,0,54,0,44,0\n74,0,23,0,50,0,89,0,37,0,40,0\n6,0,45,0,58,0,51,0,80,0,69,0\n82,0,33,0,88,0,25,0,12,0,49,0\n8,0,30,0,62,0,79,0,84,0,91,0\n61,0,76,0,68,0,60,0,59,0,90,0\n42,0,47,0,31,0,78,0,21,0,36,0\n27,0,20,0,73,0,14,0,3,0,43,0\n83,0,66,0,34,0,56,0,64,0,24,0\n10,0,52,0,15,0,75,0,92,0,63,0\n9,0,55,0,26,0,5,0,35,0,41,0\n4,0,46,0,39,0,7,0,57,0,53,0\n32,0,17,0,72,0,29,0,77,0,81,0\n1,0,16,0,59,0,19,0,2,0,13,0\n79,0,78,0,82,0,22,0,86,0,67,0\n28,0,11,0,12,0,30,0,37,0,68,0\n71,0,40,0,20,0,42,0,70,0,76,0\n74,0,51,0,14,0,88,0,21,0,83,0\n64,0,3,0,33,0,92,0,65,0,35,0\n63,0,38,0,18,0,26,0,34,0,73,0\n90,0,32,0,47,0,46,0,58,0,23,0\n36,0,4,0,81,0,52,0,25,0,87,0\n84,0,27,0,53,0,16,0,72,0,50,0\n56,0,75,0,17,0,85,0,48,0,19,0\n43,0,44,0,91,0,57,0,5,0,77,0\n1,0,41,0,66,0,61,0,45,0,89,0\n6,0,8,0,49,0,7,0,9,0,60,0\n24,0,55,0,80,0,62,0,39,0,10,0\n15,0,31,0,29,0,69,0,2,0,54,0\n"
  },
  {
    "path": "schedules/92_4.csv",
    "content": "78,0,90,0,52,0,41,0,57,0,18,0\n53,0,35,0,68,0,12,0,23,0,28,0\n72,0,16,0,51,0,40,0,77,0,33,0\n60,0,59,0,1,0,2,0,46,0,32,0\n22,0,55,0,9,0,66,0,64,0,13,0\n14,0,34,0,87,0,89,0,31,0,73,0\n85,0,80,0,74,0,75,0,3,0,91,0\n67,0,56,0,63,0,26,0,69,0,39,0\n92,0,82,0,47,0,84,0,8,0,83,0\n48,0,42,0,49,0,86,0,70,0,4,0\n37,0,15,0,43,0,71,0,19,0,79,0\n25,0,81,0,58,0,38,0,76,0,65,0\n50,0,54,0,45,0,44,0,20,0,36,0\n7,0,62,0,29,0,11,0,88,0,5,0\n6,0,21,0,27,0,10,0,24,0,17,0\n61,0,75,0,22,0,30,0,46,0,90,0\n26,0,85,0,57,0,82,0,28,0,72,0\n55,0,60,0,42,0,12,0,78,0,51,0\n66,0,39,0,31,0,19,0,68,0,47,0\n71,0,74,0,84,0,32,0,35,0,86,0\n77,0,3,0,2,0,81,0,36,0,37,0\n76,0,5,0,40,0,92,0,15,0,64,0\n44,0,34,0,70,0,67,0,29,0,33,0\n62,0,73,0,63,0,27,0,50,0,16,0\n43,0,4,0,18,0,89,0,58,0,20,0\n1,0,8,0,80,0,25,0,14,0,53,0\n83,0,30,0,38,0,11,0,24,0,45,0\n13,0,23,0,79,0,54,0,61,0,21,0\n65,0,87,0,6,0,59,0,48,0,56,0\n41,0,49,0,7,0,69,0,10,0,9,0\n91,0,88,0,12,0,17,0,52,0,39,0\n57,1,3,0,84,0,16,1,15,0,44,0\n68,1,82,0,71,0,2,1,4,0,62,0\n37,0,75,0,92,0,1,0,72,0,34,0\n38,0,42,0,19,0,77,0,67,0,64,0\n33,0,45,0,61,0,74,0,47,0,43,0\n29,0,30,0,86,0,18,0,56,0,55,0\n81,0,10,0,51,0,14,0,22,0,48,0\n50,0,11,0,40,0,79,0,80,0,9,0\n41,0,24,0,46,0,20,0,87,0,35,0\n90,0,69,0,83,0,58,0,60,0,53,0\n13,0,88,0,59,0,31,0,27,0,25,0\n17,0,26,0,89,0,54,0,49,0,5,0\n65,0,73,0,28,0,78,0,70,0,91,0\n76,0,8,0,32,0,21,0,52,0,66,0\n63,0,7,0,23,0,36,0,85,0,6,0\n9,0,39,0,16,0,42,0,61,0,18,0\n10,0,40,0,46,0,3,0,19,0,86,0\n79,0,2,0,44,0,22,0,38,0,92,0\n74,0,14,0,11,0,12,0,82,0,90,0\n24,0,58,0,47,0,80,0,59,0,71,0\n27,0,28,0,33,0,1,0,55,0,81,0\n8,0,67,0,89,0,15,0,68,0,45,0\n35,0,5,0,56,0,21,0,43,0,57,0\n32,0,64,0,31,0,7,0,48,0,75,0\n30,0,52,0,85,0,13,0,87,0,37,0\n20,0,66,0,77,0,84,0,91,0,63,0\n83,0,72,0,23,0,49,0,50,0,65,0\n53,0,36,0,78,0,26,0,76,0,4,0\n6,0,54,0,41,0,60,0,70,0,62,0\n25,0,17,0,51,0,29,0,69,0,73,0\n34,0,57,0,68,0,88,0,16,0,2,0\n"
  },
  {
    "path": "schedules/92_5.csv",
    "content": "40,0,92,0,26,0,28,0,70,0,58,0\n82,0,13,0,53,0,67,0,19,0,88,0\n23,0,57,0,66,0,76,0,18,0,74,0\n60,0,85,0,84,0,32,0,37,0,11,0\n35,0,65,0,1,0,77,0,90,0,56,0\n63,0,15,0,39,0,6,0,43,0,30,0\n79,0,34,0,75,0,45,0,54,0,59,0\n73,0,52,0,9,0,41,0,55,0,89,0\n50,0,48,0,22,0,46,0,3,0,80,0\n36,0,27,0,29,0,8,0,33,0,81,0\n44,0,10,0,61,0,91,0,7,0,87,0\n42,0,38,0,86,0,5,0,51,0,14,0\n16,0,62,0,12,0,78,0,20,0,17,0\n49,0,71,0,31,0,72,0,69,0,21,0\n25,0,68,0,83,0,4,0,2,0,47,0\n64,0,35,0,57,0,24,0,43,0,53,0\n30,0,88,0,59,0,3,0,76,0,52,0\n81,0,73,0,34,0,82,0,56,0,15,0\n48,0,13,0,85,0,75,0,65,0,28,0\n74,0,5,0,27,0,50,0,19,0,10,0\n17,0,11,0,58,0,9,0,14,0,54,0\n18,0,78,0,21,0,84,0,61,0,39,0\n49,0,60,0,7,0,33,0,40,0,25,0\n20,0,36,0,37,0,87,0,68,0,72,0\n89,0,24,0,92,0,42,0,83,0,91,0\n2,0,62,0,41,0,46,0,71,0,66,0\n1,0,69,0,16,0,4,0,23,0,45,0\n26,0,77,0,8,0,6,0,79,0,86,0\n55,0,44,0,29,0,90,0,70,0,80,0\n38,0,64,0,32,0,63,0,47,0,31,0\n51,0,67,0,52,0,12,0,22,0,65,0\n68,1,88,0,84,0,35,1,5,0,15,0\n33,0,48,0,74,0,87,0,17,0,92,0\n56,0,72,0,13,0,62,0,59,0,25,0\n75,0,83,0,27,0,49,0,82,0,58,0\n40,0,46,0,78,0,57,0,89,0,54,0\n61,0,19,0,24,0,23,0,81,0,37,0\n36,0,6,0,66,0,10,0,38,0,73,0\n22,0,4,0,55,0,64,0,39,0,28,0\n51,0,85,0,79,0,29,0,1,0,21,0\n70,0,50,0,45,0,77,0,47,0,67,0\n18,0,20,0,53,0,26,0,60,0,30,0\n80,0,43,0,7,0,71,0,8,0,11,0\n9,0,69,0,42,0,76,0,32,0,12,0\n2,0,44,0,3,0,63,0,14,0,34,0\n90,0,91,0,41,0,16,0,86,0,31,0\n92,0,72,0,38,0,78,0,52,0,23,0\n62,0,58,0,81,0,10,0,51,0,64,0\n6,0,28,0,88,0,57,0,27,0,37,0\n46,0,67,0,15,0,85,0,18,0,87,0\n5,0,47,0,49,0,13,0,29,0,26,0\n17,0,8,0,82,0,21,0,89,0,50,0\n12,0,24,0,4,0,30,0,77,0,7,0\n70,0,71,0,63,0,79,0,48,0,60,0\n69,0,3,0,84,0,73,0,65,0,74,0\n83,0,11,0,39,0,20,0,35,0,41,0\n32,0,16,0,25,0,55,0,66,0,34,0\n75,0,43,0,31,0,14,0,61,0,56,0\n33,0,54,0,86,0,53,0,68,0,44,0\n9,0,19,0,80,0,2,0,91,0,1,0\n76,0,90,0,45,0,22,0,40,0,36,0\n59,0,71,0,18,0,42,0,64,0,6,0\n28,0,30,0,10,0,8,0,47,0,78,0\n57,0,63,0,51,0,83,0,7,0,69,0\n58,0,37,0,79,0,25,0,5,0,41,0\n65,0,38,0,81,0,20,0,46,0,70,0\n89,0,11,0,67,0,49,0,16,0,74,0\n39,0,14,0,91,0,73,0,68,0,85,0\n4,0,31,0,62,0,9,0,35,0,44,0\n50,0,90,0,75,0,88,0,33,0,24,0\n22,0,54,0,19,0,84,0,29,0,92,0\n21,0,56,0,53,0,12,0,45,0,80,0\n59,0,77,0,15,0,32,0,36,0,2,0\n82,0,3,0,23,0,43,0,40,0,55,0\n87,0,86,0,60,0,76,0,13,0,34,0\n61,0,48,0,26,0,1,0,72,0,27,0\n52,0,66,0,68,0,42,0,17,0,35,0\n"
  },
  {
    "path": "schedules/92_6.csv",
    "content": "18,0,79,0,56,0,3,0,44,0,31,0\n55,0,65,0,58,0,52,0,92,0,74,0\n11,0,76,0,91,0,83,0,10,0,49,0\n43,0,59,0,82,0,87,0,39,0,50,0\n19,0,54,0,70,0,61,0,22,0,14,0\n32,0,69,0,38,0,53,0,84,0,63,0\n33,0,41,0,20,0,89,0,15,0,8,0\n80,0,81,0,9,0,40,0,26,0,34,0\n51,0,16,0,60,0,2,0,71,0,1,0\n77,0,85,0,46,0,73,0,25,0,42,0\n17,0,62,0,64,0,5,0,12,0,4,0\n36,0,88,0,90,0,86,0,28,0,37,0\n47,0,35,0,27,0,45,0,6,0,30,0\n21,0,78,0,13,0,72,0,75,0,29,0\n67,0,7,0,24,0,48,0,68,0,23,0\n57,0,92,0,54,0,66,0,80,0,84,0\n74,0,10,0,60,0,18,0,50,0,38,0\n14,0,42,0,41,0,52,0,16,0,56,0\n12,0,19,0,3,0,26,0,89,0,32,0\n5,0,53,0,76,0,73,0,44,0,82,0\n33,0,31,0,34,0,69,0,83,0,37,0\n51,0,64,0,29,0,20,0,88,0,85,0\n45,0,86,0,68,0,55,0,61,0,21,0\n28,0,2,0,47,0,78,0,43,0,67,0\n49,0,22,0,39,0,9,0,30,0,77,0\n58,0,6,0,71,0,62,0,7,0,11,0\n65,0,4,0,63,0,48,0,40,0,13,0\n46,0,35,0,17,0,24,0,72,0,87,0\n36,0,91,0,23,0,79,0,57,0,27,0\n59,0,70,0,25,0,15,0,66,0,90,0\n8,0,75,0,18,0,81,0,1,0,68,0\n28,0,76,0,50,0,3,0,64,0,61,0\n10,0,12,0,69,0,82,0,21,0,2,0\n42,0,7,0,30,0,78,0,83,0,80,0\n43,0,74,0,73,0,6,0,20,0,86,0\n37,0,72,0,52,0,48,0,54,0,89,0\n62,0,51,0,84,0,33,0,79,0,24,0\n26,0,36,0,22,0,45,0,46,0,63,0\n14,0,23,0,29,0,31,0,9,0,5,0\n15,0,87,0,60,0,13,0,58,0,77,0\n56,0,25,0,27,0,71,0,65,0,81,0\n70,0,85,0,67,0,55,0,8,0,57,0\n49,0,92,0,32,0,16,0,47,0,59,0\n90,0,34,0,38,0,41,0,75,0,17,0\n88,0,1,0,44,0,40,0,35,0,11,0\n4,0,66,0,53,0,39,0,19,0,91,0\n78,0,50,0,12,0,24,0,63,0,54,0\n43,0,31,0,7,0,36,0,13,0,51,0\n5,0,68,0,56,0,77,0,26,0,69,0\n46,0,8,0,28,0,23,0,52,0,83,0\n80,0,61,0,16,0,67,0,37,0,58,0\n62,0,57,0,47,0,10,0,9,0,72,0\n49,0,55,0,81,0,79,0,14,0,88,0\n60,0,29,0,25,0,41,0,39,0,35,0\n74,0,84,0,89,0,59,0,76,0,45,0\n85,0,75,0,86,0,4,0,3,0,33,0\n19,0,11,0,73,0,38,0,15,0,48,0\n18,0,70,0,87,0,32,0,42,0,27,0\n2,0,90,0,6,0,44,0,91,0,65,0\n1,0,82,0,66,0,30,0,34,0,64,0\n92,0,53,0,40,0,71,0,22,0,21,0\n20,0,37,0,50,0,17,0,68,0,25,0\n54,0,47,0,55,0,56,0,7,0,29,0\n8,0,5,0,79,0,63,0,59,0,35,0\n13,0,57,0,41,0,74,0,81,0,46,0\n61,0,42,0,39,0,23,0,11,0,75,0\n73,0,91,0,31,0,62,0,32,0,67,0\n49,0,78,0,51,0,45,0,34,0,19,0\n89,0,27,0,77,0,90,0,92,0,64,0\n71,0,24,0,44,0,10,0,28,0,30,0\n83,0,48,0,17,0,70,0,82,0,84,0\n40,0,15,0,69,0,6,0,72,0,85,0\n80,0,14,0,86,0,2,0,53,0,18,0\n38,0,16,0,20,0,87,0,4,0,26,0\n43,0,65,0,22,0,88,0,60,0,33,0\n66,0,58,0,21,0,9,0,3,0,36,0\n52,0,12,0,29,0,76,0,1,0,67,0\n64,0,75,0,71,0,79,0,37,0,74,0\n34,0,77,0,84,0,8,0,7,0,50,0\n68,0,82,0,63,0,42,0,49,0,28,0\n39,0,15,0,44,0,57,0,32,0,14,0\n30,0,86,0,40,0,51,0,38,0,56,0\n10,0,73,0,33,0,78,0,92,0,17,0\n11,0,45,0,3,0,54,0,20,0,65,0\n72,0,58,0,83,0,43,0,4,0,90,0\n87,0,81,0,69,0,66,0,62,0,22,0\n9,0,88,0,2,0,76,0,41,0,70,0\n23,0,89,0,13,0,35,0,55,0,16,0\n24,0,5,0,1,0,91,0,80,0,21,0\n48,0,6,0,53,0,46,0,31,0,12,0\n18,0,19,0,36,0,52,0,25,0,47,0\n61,0,59,0,26,0,27,0,85,0,60,0\n"
  },
  {
    "path": "schedules/92_7.csv",
    "content": "21,0,79,0,85,0,32,0,14,0,50,0\n60,0,44,0,17,0,87,0,11,0,65,0\n67,0,41,0,86,0,23,0,54,0,40,0\n30,0,58,0,61,0,26,0,73,0,51,0\n48,0,66,0,64,0,24,0,69,0,83,0\n68,0,28,0,15,0,4,0,92,0,49,0\n3,0,70,0,62,0,74,0,53,0,7,0\n43,0,84,0,37,0,39,0,78,0,45,0\n52,0,75,0,29,0,80,0,56,0,71,0\n46,0,33,0,2,0,91,0,27,0,35,0\n22,0,5,0,10,0,63,0,36,0,82,0\n20,0,59,0,81,0,25,0,77,0,90,0\n19,0,1,0,34,0,13,0,76,0,88,0\n9,0,38,0,42,0,18,0,55,0,16,0\n57,0,8,0,47,0,89,0,12,0,72,0\n31,0,44,0,85,0,6,0,62,0,51,0\n69,0,23,0,84,0,4,0,7,0,21,0\n87,0,74,0,80,0,28,0,66,0,78,0\n75,0,91,0,63,0,60,0,64,0,92,0\n39,0,36,0,79,0,40,0,73,0,2,0\n50,0,25,0,26,0,56,0,43,0,22,0\n13,0,10,0,77,0,55,0,27,0,15,0\n42,0,14,0,53,0,47,0,61,0,67,0\n76,0,11,0,5,0,29,0,89,0,70,0\n6,0,81,0,83,0,18,0,1,0,46,0\n71,0,30,0,17,0,72,0,9,0,24,0\n12,0,38,0,68,0,33,0,86,0,88,0\n54,0,19,0,65,0,57,0,16,0,20,0\n58,0,34,0,32,0,52,0,59,0,3,0\n31,0,45,0,35,0,48,0,82,0,8,0\n41,0,90,0,14,0,49,0,37,0,51,0\n79,1,66,0,26,0,91,1,53,0,55,0\n18,1,69,0,92,0,87,1,50,0,73,0\n24,0,29,0,27,0,28,0,47,0,63,0\n42,0,71,0,89,0,83,0,68,0,7,0\n85,0,70,0,78,0,25,0,54,0,15,0\n72,0,62,0,4,0,67,0,65,0,76,0\n32,0,45,0,64,0,56,0,33,0,57,0\n19,0,30,0,12,0,44,0,59,0,10,0\n48,0,2,0,20,0,22,0,17,0,37,0\n61,0,43,0,40,0,6,0,74,0,9,0\n90,0,86,0,82,0,58,0,11,0,1,0\n52,0,36,0,84,0,41,0,8,0,16,0\n80,0,49,0,77,0,21,0,34,0,39,0\n23,0,46,0,31,0,88,0,75,0,5,0\n3,0,35,0,13,0,38,0,60,0,81,0\n83,0,87,0,14,0,57,0,15,0,30,0\n68,0,22,0,32,0,29,0,91,0,44,0\n25,0,92,0,7,0,10,0,45,0,72,0\n59,0,27,0,1,0,70,0,64,0,50,0\n74,0,90,0,55,0,84,0,67,0,2,0\n6,0,69,0,78,0,86,0,20,0,26,0\n18,0,24,0,85,0,19,0,4,0,75,0\n28,0,31,0,9,0,36,0,60,0,89,0\n3,0,17,0,49,0,61,0,82,0,54,0\n80,0,63,0,35,0,88,0,40,0,53,0\n47,0,66,0,62,0,13,0,46,0,16,0\n23,0,51,0,81,0,52,0,11,0,33,0\n76,0,71,0,79,0,77,0,43,0,58,0\n48,0,34,0,41,0,42,0,12,0,65,0\n73,0,5,0,56,0,38,0,21,0,37,0\n8,0,67,0,60,0,39,0,50,0,6,0\n7,0,64,0,22,0,55,0,19,0,28,0\n87,0,26,0,40,0,3,0,68,0,31,0\n13,0,89,0,18,0,63,0,32,0,17,0\n51,0,16,0,88,0,25,0,24,0,2,0\n10,0,57,0,75,0,70,0,69,0,79,0\n52,0,46,0,82,0,77,0,85,0,53,0\n20,0,45,0,1,0,47,0,23,0,49,0\n27,0,14,0,66,0,76,0,38,0,84,0\n54,0,30,0,33,0,5,0,43,0,42,0\n58,0,41,0,21,0,92,0,9,0,29,0\n11,0,39,0,56,0,15,0,74,0,48,0\n73,0,12,0,81,0,80,0,91,0,62,0\n72,0,83,0,36,0,44,0,35,0,90,0\n71,0,61,0,37,0,34,0,86,0,4,0\n65,0,8,0,22,0,78,0,59,0,46,0\n7,0,26,0,57,0,17,0,52,0,1,0\n2,0,63,0,42,0,69,0,85,0,3,0\n33,0,25,0,67,0,9,0,49,0,19,0\n74,0,13,0,5,0,20,0,79,0,64,0\n11,0,54,0,73,0,14,0,10,0,31,0\n91,0,43,0,38,0,23,0,48,0,90,0\n34,0,82,0,29,0,83,0,40,0,84,0\n78,0,51,0,72,0,18,0,56,0,27,0\n37,0,53,0,76,0,68,0,36,0,6,0\n21,0,16,0,28,0,71,0,81,0,44,0\n58,0,15,0,60,0,12,0,45,0,66,0\n59,0,89,0,86,0,62,0,39,0,87,0\n50,0,75,0,77,0,61,0,65,0,35,0\n92,0,24,0,70,0,8,0,80,0,32,0\n55,0,4,0,88,0,30,0,41,0,47,0\n17,0,31,0,29,0,79,0,42,0,90,0\n43,0,46,0,68,0,63,0,51,0,57,0\n72,0,74,0,16,0,73,0,34,0,23,0\n10,0,67,0,20,0,71,0,66,0,3,0\n91,0,28,0,40,0,69,0,11,0,37,0\n54,0,84,0,35,0,1,0,22,0,12,0\n62,0,8,0,18,0,15,0,64,0,21,0\n19,0,48,0,70,0,47,0,87,0,77,0\n61,0,59,0,60,0,33,0,85,0,80,0\n55,0,56,0,44,0,76,0,86,0,24,0\n38,0,6,0,49,0,58,0,7,0,75,0\n89,0,53,0,2,0,81,0,78,0,30,0\n50,0,45,0,9,0,13,0,4,0,52,0\n27,0,39,0,32,0,25,0,5,0,83,0\n92,0,14,0,65,0,88,0,36,0,26,0\n82,0,79,0,87,0,41,0,91,0,18,0\n"
  },
  {
    "path": "schedules/92_8.csv",
    "content": "35,0,45,0,77,0,31,0,21,0,20,0\n56,0,69,0,70,0,38,0,22,0,10,0\n30,0,64,0,89,0,85,0,88,0,11,0\n6,0,55,0,1,0,42,0,46,0,9,0\n92,0,14,0,39,0,34,0,74,0,16,0\n65,0,52,0,47,0,43,0,3,0,66,0\n84,0,7,0,33,0,59,0,51,0,80,0\n24,0,81,0,27,0,28,0,26,0,23,0\n49,0,25,0,71,0,76,0,17,0,5,0\n86,0,57,0,36,0,12,0,78,0,54,0\n29,0,82,0,37,0,18,0,75,0,15,0\n87,0,19,0,48,0,61,0,73,0,4,0\n44,0,40,0,50,0,53,0,62,0,90,0\n58,0,32,0,72,0,60,0,41,0,8,0\n91,0,83,0,67,0,63,0,79,0,2,0\n68,0,45,0,28,0,13,0,84,0,47,0\n43,0,27,0,9,0,35,0,70,0,74,0\n55,0,65,0,88,0,24,0,12,0,25,0\n17,0,30,0,6,0,22,0,77,0,92,0\n59,0,18,0,42,0,89,0,66,0,21,0\n10,0,49,0,57,0,90,0,51,0,15,0\n36,0,20,0,53,0,16,0,82,0,58,0\n80,0,3,0,34,0,44,0,85,0,61,0\n69,0,31,0,1,0,7,0,78,0,52,0\n54,0,14,0,4,0,60,0,83,0,75,0\n81,0,5,0,19,0,29,0,79,0,8,0\n91,0,86,0,72,0,73,0,50,0,37,0\n67,0,71,0,64,0,13,0,23,0,33,0\n48,0,39,0,56,0,63,0,68,0,41,0\n62,0,32,0,38,0,76,0,11,0,87,0\n26,0,40,0,10,0,2,0,46,0,80,0\n52,1,16,0,35,0,25,1,85,0,28,0\n34,0,21,0,6,0,51,0,65,0,54,0\n8,0,61,0,90,0,12,0,30,0,59,0\n49,0,89,0,55,0,36,0,7,0,44,0\n22,0,74,0,37,0,42,0,88,0,20,0\n33,0,39,0,50,0,45,0,78,0,27,0\n75,0,17,0,79,0,70,0,73,0,68,0\n71,0,46,0,62,0,4,0,72,0,63,0\n5,0,41,0,87,0,15,0,26,0,3,0\n38,0,9,0,81,0,53,0,91,0,66,0\n2,0,82,0,60,0,24,0,13,0,43,0\n31,0,83,0,23,0,56,0,29,0,11,0\n76,0,1,0,86,0,47,0,67,0,14,0\n40,0,77,0,57,0,32,0,48,0,64,0\n69,0,19,0,18,0,92,0,84,0,58,0\n8,0,49,0,4,0,52,0,34,0,37,0\n12,0,75,0,26,0,74,0,62,0,45,0\n25,0,39,0,42,0,30,0,3,0,36,0\n41,0,66,0,51,0,17,0,35,0,24,0\n13,0,50,0,56,0,80,0,88,0,81,0\n61,0,21,0,72,0,47,0,27,0,11,0\n83,0,46,0,48,0,65,0,5,0,22,0\n82,0,7,0,38,0,19,0,86,0,64,0\n85,0,23,0,68,0,60,0,9,0,18,0\n31,0,33,0,89,0,87,0,57,0,16,0\n63,0,58,0,1,0,28,0,73,0,40,0\n54,0,84,0,53,0,55,0,67,0,10,0\n44,0,70,0,91,0,71,0,77,0,14,0\n92,0,32,0,2,0,29,0,59,0,20,0\n90,0,78,0,79,0,6,0,43,0,76,0\n15,0,36,0,25,0,69,0,66,0,72,0\n47,0,4,0,5,0,64,0,51,0,50,0\n37,0,8,0,23,0,39,0,21,0,87,0\n19,0,24,0,1,0,89,0,68,0,34,0\n18,0,61,0,55,0,83,0,35,0,40,0\n63,0,70,0,45,0,16,0,86,0,60,0\n54,0,81,0,22,0,82,0,85,0,71,0\n62,0,80,0,27,0,20,0,6,0,48,0\n56,0,84,0,44,0,9,0,57,0,52,0\n90,0,29,0,73,0,42,0,26,0,38,0\n88,0,43,0,75,0,49,0,69,0,67,0\n13,0,77,0,78,0,59,0,74,0,10,0\n53,0,12,0,17,0,32,0,7,0,28,0\n58,0,65,0,30,0,76,0,91,0,15,0\n41,0,46,0,11,0,79,0,33,0,92,0\n14,0,3,0,51,0,2,0,31,0,68,0\n56,0,66,0,45,0,64,0,55,0,37,0\n23,0,40,0,16,0,5,0,84,0,42,0\n89,0,20,0,70,0,26,0,61,0,39,0\n6,0,57,0,67,0,4,0,24,0,29,0\n88,0,28,0,72,0,77,0,9,0,87,0\n19,0,54,0,76,0,59,0,52,0,63,0\n34,0,43,0,46,0,17,0,58,0,50,0\n25,0,80,0,32,0,90,0,82,0,83,0\n8,0,85,0,74,0,36,0,31,0,38,0\n10,0,27,0,12,0,91,0,3,0,92,0\n22,0,14,0,78,0,49,0,53,0,41,0\n44,0,21,0,86,0,69,0,48,0,13,0\n7,0,11,0,75,0,65,0,2,0,71,0\n47,0,81,0,73,0,33,0,18,0,30,0\n79,0,60,0,15,0,62,0,1,0,35,0\n51,0,16,0,26,0,43,0,55,0,72,0\n63,0,90,0,31,0,66,0,84,0,88,0\n76,0,42,0,68,0,83,0,8,0,27,0\n29,0,41,0,34,0,40,0,25,0,9,0\n14,0,52,0,85,0,32,0,10,0,21,0\n23,0,91,0,49,0,74,0,6,0,19,0\n71,0,28,0,92,0,48,0,36,0,50,0\n67,0,73,0,22,0,45,0,89,0,3,0\n87,0,18,0,65,0,56,0,79,0,86,0\n53,0,11,0,59,0,4,0,15,0,70,0\n17,0,37,0,61,0,2,0,81,0,57,0\n30,0,20,0,60,0,46,0,78,0,44,0\n12,0,5,0,82,0,33,0,77,0,1,0\n69,0,24,0,64,0,39,0,54,0,62,0\n38,0,35,0,80,0,58,0,75,0,47,0\n13,0,8,0,66,0,7,0,40,0,92,0\n16,0,79,0,9,0,32,0,49,0,50,0\n76,0,45,0,48,0,10,0,88,0,23,0\n51,0,74,0,71,0,29,0,86,0,52,0\n4,0,22,0,43,0,25,0,31,0,44,0\n57,0,63,0,26,0,11,0,34,0,82,0\n90,0,17,0,20,0,18,0,54,0,1,0\n84,0,65,0,89,0,81,0,14,0,72,0\n59,0,37,0,3,0,38,0,83,0,28,0\n70,0,24,0,78,0,80,0,21,0,5,0\n36,0,68,0,35,0,91,0,64,0,87,0\n15,0,47,0,39,0,12,0,46,0,19,0\n73,0,85,0,2,0,69,0,77,0,53,0\n27,0,55,0,13,0,41,0,75,0,30,0\n42,0,58,0,7,0,67,0,56,0,62,0\n33,0,60,0,52,0,6,0,61,0,25,0\n"
  },
  {
    "path": "schedules/92_9.csv",
    "content": "72,0,68,0,36,0,5,0,25,0,65,0\n31,0,10,0,17,0,33,0,64,0,89,0\n55,0,52,0,26,0,28,0,35,0,56,0\n7,0,62,0,43,0,90,0,48,0,71,0\n92,0,45,0,29,0,77,0,39,0,66,0\n38,0,42,0,51,0,15,0,1,0,87,0\n27,0,37,0,76,0,13,0,60,0,59,0\n91,0,83,0,24,0,12,0,16,0,14,0\n81,0,78,0,73,0,44,0,80,0,20,0\n19,0,70,0,82,0,69,0,61,0,3,0\n86,0,54,0,21,0,46,0,88,0,84,0\n34,0,75,0,2,0,79,0,4,0,63,0\n53,0,9,0,41,0,30,0,57,0,40,0\n49,0,6,0,50,0,11,0,8,0,22,0\n74,0,85,0,18,0,67,0,32,0,23,0\n58,0,65,0,48,0,47,0,35,0,91,0\n5,0,43,0,44,0,38,0,17,0,56,0\n64,0,26,0,14,0,7,0,59,0,81,0\n90,0,45,0,31,0,52,0,82,0,86,0\n83,0,39,0,13,0,21,0,42,0,2,0\n60,0,63,0,77,0,57,0,1,0,54,0\n30,0,76,0,22,0,70,0,87,0,89,0\n24,0,25,0,73,0,88,0,66,0,55,0\n71,0,10,0,15,0,36,0,47,0,18,0\n19,0,29,0,58,0,84,0,32,0,75,0\n68,0,27,0,8,0,12,0,85,0,61,0\n16,0,11,0,40,0,78,0,79,0,46,0\n6,0,9,0,4,0,67,0,51,0,28,0\n50,0,41,0,23,0,62,0,20,0,34,0\n53,0,80,0,49,0,72,0,37,0,69,0\n92,0,33,0,59,0,74,0,3,0,48,0\n64,0,87,0,60,0,73,0,39,0,52,0\n10,0,25,0,90,0,81,0,70,0,13,0\n1,0,45,0,14,0,68,0,30,0,58,0\n2,0,18,0,40,0,76,0,44,0,77,0\n67,0,43,0,19,0,11,0,15,0,24,0\n56,0,22,0,34,0,51,0,46,0,7,0\n38,0,16,0,41,0,8,0,35,0,82,0\n31,0,54,0,65,0,50,0,29,0,80,0\n28,0,69,0,62,0,78,0,32,0,66,0\n61,0,49,0,89,0,84,0,36,0,91,0\n86,0,85,0,3,0,26,0,57,0,4,0\n27,0,6,0,79,0,20,0,42,0,53,0\n17,0,47,0,92,0,72,0,9,0,21,0\n12,0,55,0,74,0,5,0,75,0,37,0\n83,0,71,0,88,0,33,0,63,0,23,0\n19,0,48,0,51,0,60,0,14,0,10,0\n56,0,65,0,8,0,87,0,45,0,13,0\n70,0,59,0,66,0,46,0,52,0,44,0\n34,0,39,0,11,0,86,0,1,0,32,0\n6,0,35,0,69,0,68,0,81,0,18,0\n21,0,85,0,25,0,16,0,64,0,29,0\n58,0,54,0,67,0,36,0,90,0,40,0\n7,0,4,0,49,0,83,0,20,0,55,0\n23,0,30,0,72,0,91,0,78,0,75,0\n22,0,15,0,33,0,41,0,5,0,2,0\n74,0,79,0,73,0,61,0,31,0,38,0\n76,0,84,0,47,0,53,0,28,0,43,0\n50,0,17,0,63,0,26,0,42,0,82,0\n71,0,77,0,80,0,27,0,9,0,24,0\n57,0,88,0,12,0,92,0,89,0,62,0\n37,0,11,0,29,0,3,0,68,0,51,0\n91,0,8,0,54,0,25,0,7,0,18,0\n21,0,14,0,15,0,65,0,23,0,40,0\n20,0,60,0,70,0,67,0,86,0,56,0\n72,0,43,0,61,0,33,0,52,0,1,0\n53,0,66,0,19,0,81,0,83,0,22,0\n30,0,84,0,39,0,85,0,69,0,31,0\n28,0,89,0,24,0,44,0,13,0,75,0\n48,0,57,0,37,0,38,0,2,0,50,0\n49,0,79,0,35,0,92,0,87,0,90,0\n16,0,32,0,5,0,26,0,45,0,27,0\n77,0,42,0,41,0,47,0,78,0,88,0\n59,0,12,0,36,0,73,0,34,0,17,0\n3,0,55,0,9,0,46,0,64,0,58,0\n10,0,62,0,76,0,63,0,80,0,6,0\n71,0,82,0,81,0,4,0,74,0,29,0\n18,0,70,0,75,0,33,0,39,0,38,0\n23,0,87,0,2,0,31,0,24,0,7,0\n20,0,32,0,22,0,54,0,14,0,72,0\n11,0,44,0,84,0,25,0,92,0,42,0\n13,0,35,0,1,0,19,0,12,0,78,0\n89,0,26,0,77,0,65,0,73,0,51,0\n80,0,40,0,61,0,55,0,45,0,60,0\n17,0,46,0,83,0,85,0,37,0,6,0\n76,0,88,0,9,0,49,0,15,0,48,0\n74,0,36,0,43,0,69,0,41,0,63,0\n47,0,59,0,62,0,5,0,4,0,8,0\n90,0,53,0,56,0,21,0,91,0,68,0\n30,0,3,0,67,0,79,0,71,0,52,0\n50,0,58,0,10,0,16,0,86,0,66,0\n64,0,82,0,28,0,27,0,34,0,57,0\n73,0,33,0,13,0,11,0,85,0,7,0\n23,0,46,0,48,0,89,0,39,0,25,0\n69,0,29,0,12,0,60,0,26,0,22,0\n4,0,35,0,54,0,37,0,15,0,44,0\n19,0,42,0,18,0,55,0,62,0,65,0\n61,0,24,0,32,0,53,0,59,0,63,0\n21,0,78,0,51,0,49,0,31,0,5,0\n28,0,1,0,3,0,83,0,90,0,50,0\n38,0,91,0,34,0,52,0,10,0,9,0\n30,0,27,0,81,0,36,0,56,0,92,0\n45,0,64,0,47,0,74,0,70,0,2,0\n57,0,66,0,20,0,8,0,76,0,17,0\n75,0,86,0,41,0,6,0,71,0,14,0\n88,0,80,0,82,0,58,0,43,0,79,0\n87,0,68,0,16,0,77,0,84,0,67,0\n72,0,39,0,3,0,40,0,62,0,24,0\n78,0,4,0,50,0,25,0,33,0,53,0\n36,0,42,0,35,0,31,0,22,0,9,0\n65,0,63,0,7,0,28,0,12,0,30,0\n56,0,85,0,1,0,2,0,49,0,10,0\n14,0,47,0,44,0,29,0,57,0,55,0\n27,0,75,0,52,0,54,0,48,0,17,0\n21,0,11,0,89,0,20,0,38,0,59,0\n18,0,87,0,37,0,61,0,26,0,88,0\n60,0,5,0,92,0,58,0,71,0,34,0\n23,0,69,0,64,0,77,0,8,0,79,0\n84,0,13,0,51,0,66,0,82,0,40,0\n15,0,74,0,68,0,83,0,80,0,86,0\n16,0,76,0,72,0,73,0,90,0,19,0\n67,0,81,0,46,0,91,0,45,0,41,0\n32,0,6,0,31,0,70,0,43,0,12,0\n36,0,38,0,88,0,14,0,85,0,28,0\n5,0,7,0,53,0,3,0,89,0,35,0\n77,0,56,0,4,0,11,0,61,0,58,0\n82,0,20,0,1,0,37,0,24,0,47,0\n57,0,75,0,69,0,83,0,10,0,59,0\n15,0,52,0,63,0,13,0,16,0,92,0\n71,0,55,0,68,0,50,0,39,0,76,0\n60,0,46,0,32,0,30,0,49,0,42,0\n79,0,62,0,91,0,17,0,29,0,70,0\n87,0,40,0,25,0,6,0,74,0,19,0\n78,0,22,0,90,0,65,0,84,0,27,0\n66,0,48,0,80,0,41,0,64,0,18,0\n26,0,44,0,33,0,21,0,34,0,67,0\n54,0,45,0,73,0,9,0,43,0,23,0\n51,0,8,0,86,0,81,0,72,0,2,0\n"
  },
  {
    "path": "schedules/93_1.csv",
    "content": "22,0,65,0,17,0,69,0,66,0,31,0\n57,0,18,0,14,0,77,0,68,0,63,0\n5,0,84,0,45,0,81,0,80,0,21,0\n60,0,79,0,1,0,43,0,55,0,78,0\n8,0,75,0,6,0,72,0,4,0,50,0\n38,0,47,0,26,0,82,0,48,0,39,0\n27,0,54,0,85,0,52,0,2,0,15,0\n30,0,62,0,23,0,41,0,44,0,90,0\n93,0,83,0,3,0,61,0,13,0,71,0\n51,0,12,0,88,0,64,0,37,0,70,0\n67,0,53,0,34,0,20,0,49,0,28,0\n86,0,7,0,76,0,24,0,59,0,19,0\n58,0,33,0,32,0,89,0,92,0,29,0\n42,0,91,0,35,0,9,0,87,0,46,0\n40,0,10,0,16,0,36,0,25,0,56,0\n73,0,11,0,4,1,74,0,17,1,84,1\n"
  },
  {
    "path": "schedules/93_10.csv",
    "content": "65,0,89,0,48,0,44,0,83,0,27,0\n30,0,39,0,9,0,87,0,2,0,85,0\n23,0,75,0,24,0,53,0,76,0,61,0\n56,0,72,0,45,0,41,0,29,0,37,0\n31,0,36,0,10,0,84,0,38,0,68,0\n16,0,34,0,67,0,50,0,59,0,43,0\n21,0,66,0,18,0,35,0,22,0,57,0\n11,0,52,0,63,0,81,0,26,0,20,0\n90,0,40,0,92,0,6,0,79,0,4,0\n13,0,74,0,19,0,5,0,25,0,64,0\n73,0,58,0,32,0,1,0,86,0,46,0\n14,0,7,0,69,0,3,0,91,0,8,0\n70,0,28,0,51,0,15,0,80,0,17,0\n62,0,78,0,42,0,54,0,71,0,88,0\n33,0,82,0,49,0,93,0,55,0,47,0\n60,0,10,0,53,0,12,0,77,0,21,0\n9,0,16,0,79,0,20,0,29,0,75,0\n84,0,6,0,22,0,52,0,34,0,2,0\n4,0,27,0,59,0,24,0,46,0,68,0\n83,0,1,0,56,0,36,0,8,0,61,0\n39,0,14,0,17,0,38,0,90,0,7,0\n15,0,48,0,5,0,62,0,57,0,43,0\n50,0,72,0,93,0,44,0,88,0,64,0\n81,0,35,0,71,0,40,0,51,0,87,0\n65,0,58,0,28,0,31,0,66,0,85,0\n32,0,55,0,41,0,89,0,63,0,77,0\n37,0,73,0,26,0,23,0,19,0,30,0\n80,0,82,0,42,0,76,0,74,0,12,0\n33,0,45,0,67,0,11,0,3,0,70,0\n91,0,49,0,78,0,18,0,13,0,92,0\n25,0,54,0,86,0,60,0,69,0,47,0\n52,0,79,0,68,0,8,0,44,0,15,0\n20,0,72,0,2,0,35,0,65,0,61,0\n53,0,46,0,48,0,39,0,28,0,50,0\n29,0,55,0,58,0,88,0,27,0,14,0\n93,0,40,0,22,0,5,0,16,0,80,0\n33,0,76,0,7,0,81,0,6,0,56,0\n43,0,26,0,82,0,38,0,92,0,66,0\n91,0,73,0,47,0,36,0,70,0,12,0\n3,0,42,0,9,0,37,0,24,0,60,0\n63,0,13,0,90,0,83,0,23,0,57,0\n87,0,32,0,77,0,69,0,34,0,4,0\n31,0,30,0,71,0,17,0,45,0,59,0\n19,0,54,0,1,0,18,0,84,0,41,0\n86,0,85,0,74,0,49,0,10,0,67,0\n89,0,62,0,51,0,11,0,21,0,64,0\n78,0,44,0,22,0,75,0,25,0,56,0\n38,0,20,0,76,0,73,0,55,0,50,0\n23,0,46,0,65,0,15,0,92,0,33,0\n88,0,5,0,28,0,32,0,61,0,91,0\n72,0,16,0,48,0,42,0,70,0,58,0\n84,0,40,0,82,0,3,0,41,0,68,0\n57,0,12,0,24,0,17,0,6,0,86,0\n18,0,30,0,52,0,93,0,7,0,53,0\n25,0,8,0,34,0,89,0,31,0,80,0\n69,0,51,0,36,0,85,0,59,0,19,0\n54,0,29,0,87,0,26,0,10,0,13,0\n90,0,62,0,77,0,35,0,37,0,47,0\n81,0,79,0,43,0,64,0,1,0,45,0\n74,0,60,0,66,0,83,0,11,0,2,0\n71,0,27,0,75,0,21,0,39,0,49,0\n67,0,78,0,14,0,4,0,63,0,9,0\n88,0,17,0,68,0,53,0,73,0,25,0\n61,0,15,0,55,0,85,0,7,0,34,0\n86,0,76,0,44,0,30,0,92,0,41,0\n54,0,70,0,6,0,31,0,77,0,46,0\n23,0,29,0,52,0,42,0,91,0,89,0\n45,0,74,0,24,0,32,0,38,0,47,0\n36,0,65,0,11,0,71,0,16,0,82,0\n90,0,27,0,50,0,81,0,9,0,19,0\n64,0,39,0,83,0,69,0,49,0,84,0\n40,0,2,0,13,0,48,0,67,0,21,0\n18,0,87,0,20,0,43,0,8,0,58,0\n12,0,33,0,4,0,75,0,66,0,62,0\n3,0,72,0,1,0,22,0,28,0,63,0\n35,0,59,0,14,0,56,0,10,0,5,0\n60,0,57,0,26,0,51,0,79,0,93,0\n37,0,80,0,7,0,78,0,65,0,32,0\n29,0,44,0,11,0,46,0,85,0,38,0\n55,0,81,0,91,0,54,0,74,0,53,0\n86,0,71,0,64,0,23,0,82,0,70,0\n18,0,2,0,15,0,75,0,31,0,40,0\n67,0,61,0,50,0,84,0,92,0,87,0\n9,0,12,0,28,0,43,0,35,0,83,0\n1,0,66,0,24,0,14,0,13,0,93,0\n77,0,80,0,56,0,57,0,49,0,73,0\n33,0,90,0,22,0,58,0,30,0,89,0\n26,0,17,0,4,0,41,0,16,0,21,0\n34,0,36,0,20,0,25,0,39,0,42,0\n60,0,59,0,68,0,72,0,62,0,6,0\n19,0,47,0,88,0,79,0,76,0,3,0\n78,0,48,0,37,0,69,0,10,0,52,0\n5,0,8,0,27,0,63,0,51,0,45,0\n44,0,9,0,57,0,31,0,91,0,1,0\n43,0,80,0,53,0,86,0,2,0,90,0\n84,0,89,0,71,0,73,0,15,0,4,0\n49,0,23,0,87,0,7,0,66,0,36,0\n85,0,64,0,17,0,32,0,60,0,75,0\n58,0,3,0,50,0,74,0,56,0,26,0\n62,0,69,0,20,0,67,0,82,0,28,0\n59,0,21,0,61,0,37,0,93,0,70,0\n5,0,12,0,39,0,52,0,55,0,92,0\n41,0,10,0,22,0,65,0,51,0,88,0\n34,0,45,0,46,0,76,0,35,0,78,0\n18,0,25,0,77,0,81,0,16,0,14,0\n42,0,47,0,30,0,27,0,13,0,6,0\n63,0,79,0,38,0,33,0,48,0,54,0\n11,0,8,0,40,0,19,0,72,0,24,0\n83,0,21,0,7,0,68,0,29,0,50,0\n66,0,70,0,56,0,52,0,32,0,53,0\n73,0,75,0,41,0,87,0,93,0,74,0\n76,0,91,0,64,0,67,0,90,0,65,0\n59,0,9,0,86,0,22,0,55,0,26,0\n47,0,31,0,43,0,4,0,51,0,39,0\n63,0,84,0,80,0,60,0,35,0,44,0\n6,0,88,0,38,0,18,0,71,0,37,0\n92,0,19,0,20,0,45,0,83,0,77,0\n58,0,61,0,49,0,25,0,62,0,40,0\n5,0,81,0,29,0,24,0,2,0,36,0\n85,0,27,0,23,0,16,0,3,0,78,0\n1,0,68,0,11,0,48,0,12,0,34,0\n15,0,54,0,30,0,72,0,82,0,14,0\n46,0,69,0,13,0,17,0,89,0,79,0\n28,0,42,0,57,0,10,0,33,0,8,0\n43,0,93,0,75,0,77,0,65,0,84,0\n58,0,83,0,71,0,47,0,53,0,67,0\n70,0,63,0,18,0,74,0,29,0,62,0\n24,0,92,0,16,0,7,0,51,0,73,0\n6,0,90,0,49,0,41,0,20,0,5,0\n45,0,91,0,85,0,48,0,80,0,26,0\n89,0,61,0,66,0,39,0,3,0,54,0\n21,0,38,0,81,0,42,0,86,0,15,0\n2,0,23,0,88,0,12,0,59,0,8,0\n31,0,60,0,87,0,82,0,27,0,56,0\n72,0,76,0,68,0,9,0,32,0,13,0\n55,0,79,0,30,0,36,0,28,0,78,0\n37,0,64,0,40,0,46,0,14,0,57,0\n10,0,17,0,44,0,19,0,34,0,33,0\n4,0,35,0,25,0,1,0,52,0,50,0\n22,0,69,0,73,0,11,0,43,0,61,0\n74,0,48,0,7,0,20,0,84,0,59,0\n8,0,39,0,41,0,81,0,60,0,70,0\n12,0,32,0,3,0,29,0,90,0,15,0\n67,0,77,0,5,0,30,0,68,0,66,0\n87,0,47,0,57,0,72,0,78,0,89,0\n82,0,51,0,75,0,91,0,83,0,46,0\n26,0,25,0,1,0,27,0,2,0,33,0\n38,0,13,0,65,0,62,0,52,0,19,0\n50,0,24,0,85,0,22,0,79,0,71,0\n55,0,10,0,4,0,18,0,64,0,80,0\n16,0,37,0,76,0,28,0,49,0,54,0\n63,0,56,0,34,0,86,0,40,0,88,0\n14,0,6,0,21,0,45,0,44,0,36,0\n93,0,17,0,11,0,9,0,58,0,23,0\n35,0,92,0,53,0,42,0,31,0,69,0\n"
  },
  {
    "path": "schedules/93_11.csv",
    "content": "9,0,7,0,52,0,84,0,16,0,74,0\n40,0,46,0,35,0,25,0,77,0,36,0\n90,0,83,0,34,0,88,0,79,0,63,0\n75,0,67,0,66,0,60,0,86,0,15,0\n27,0,2,0,12,0,47,0,85,0,6,0\n92,0,41,0,21,0,48,0,89,0,61,0\n80,0,11,0,78,0,13,0,44,0,49,0\n45,0,38,0,32,0,14,0,1,0,3,0\n62,0,58,0,51,0,19,0,59,0,5,0\n28,0,91,0,18,0,10,0,20,0,4,0\n29,0,26,0,33,0,93,0,8,0,39,0\n68,0,69,0,73,0,24,0,81,0,54,0\n30,0,71,0,31,0,65,0,42,0,22,0\n72,0,87,0,57,0,70,0,50,0,23,0\n82,0,43,0,37,0,17,0,64,0,55,0\n76,0,56,0,83,0,53,0,86,0,21,0\n44,0,25,0,41,0,51,0,6,0,84,0\n4,0,60,0,14,0,92,0,79,0,3,0\n15,0,47,0,45,0,8,0,88,0,80,0\n35,0,38,0,62,0,74,0,93,0,46,0\n30,0,42,0,39,0,12,0,28,0,89,0\n2,0,36,0,59,0,73,0,72,0,49,0\n85,0,22,0,87,0,5,0,48,0,24,0\n18,0,82,0,63,0,43,0,31,0,19,0\n52,0,81,0,64,0,34,0,27,0,66,0\n76,0,10,0,9,0,69,0,32,0,33,0\n70,0,78,0,53,0,67,0,17,0,65,0\n91,0,37,0,50,0,23,0,26,0,71,0\n29,0,54,0,7,0,20,0,58,0,77,0\n13,0,56,0,57,0,68,0,1,0,61,0\n40,0,75,0,55,0,11,0,90,0,16,0\n63,1,36,0,74,0,44,1,18,0,80,0\n51,0,86,0,28,0,92,1,2,0,52,0\n66,0,82,0,35,0,76,0,72,0,85,0\n6,0,10,0,39,0,78,0,15,0,64,0\n50,0,31,0,45,0,9,0,79,0,24,0\n89,0,93,0,49,0,54,0,53,0,88,0\n3,0,22,0,23,0,56,0,67,0,25,0\n19,0,12,0,34,0,68,0,40,0,33,0\n90,0,17,0,21,0,77,0,26,0,32,0\n30,0,87,0,29,0,55,0,83,0,62,0\n61,0,65,0,11,0,81,0,59,0,20,0\n73,0,43,0,1,0,91,0,70,0,47,0\n58,0,38,0,48,0,16,0,27,0,4,0\n8,0,7,0,69,0,42,0,14,0,13,0\n5,0,75,0,46,0,84,0,57,0,37,0\n60,0,63,0,2,0,41,0,71,0,64,0\n25,0,50,0,54,0,12,0,74,0,76,0\n26,0,49,0,68,0,31,0,52,0,10,0\n44,0,89,0,79,0,85,0,17,0,62,0\n33,0,20,0,43,0,86,0,92,0,35,0\n29,0,40,0,38,0,22,0,91,0,15,0\n4,0,32,0,81,0,67,0,13,0,83,0\n21,0,24,0,72,0,8,0,75,0,6,0\n5,0,82,0,77,0,60,0,61,0,73,0\n80,0,42,0,9,0,27,0,53,0,19,0\n23,0,14,0,57,0,51,0,30,0,34,0\n16,0,47,0,71,0,78,0,45,0,59,0\n28,0,7,0,70,0,46,0,41,0,90,0\n87,0,36,0,69,0,11,0,3,0,37,0\n84,0,65,0,66,0,58,0,93,0,1,0\n55,0,56,0,88,0,48,0,18,0,39,0\n68,0,6,0,89,0,5,0,43,0,29,0\n42,0,62,0,86,0,50,0,4,0,64,0\n61,0,2,0,32,0,30,0,79,0,19,0\n26,0,15,0,85,0,34,0,53,0,20,0\n21,0,47,0,52,0,38,0,25,0,82,0\n57,0,83,0,17,0,49,0,71,0,69,0\n14,0,91,0,80,0,87,0,59,0,33,0\n24,0,58,0,60,0,55,0,74,0,28,0\n35,0,3,0,27,0,73,0,90,0,78,0\n1,0,67,0,10,0,54,0,46,0,11,0\n81,0,23,0,31,0,7,0,76,0,48,0\n45,0,41,0,8,0,37,0,18,0,22,0\n44,0,92,0,72,0,88,0,65,0,40,0\n51,0,93,0,63,0,75,0,9,0,39,0\n77,0,13,0,70,0,16,0,66,0,12,0\n36,0,56,0,15,0,84,0,14,0,62,0\n34,0,6,0,73,0,74,0,32,0,42,0\n86,0,20,0,3,0,89,0,82,0,57,0\n21,0,23,0,80,0,35,0,31,0,55,0\n91,0,38,0,33,0,79,0,41,0,49,0\n11,0,18,0,85,0,83,0,92,0,50,0\n47,0,10,0,90,0,19,0,37,0,48,0\n76,0,39,0,70,0,27,0,22,0,75,0\n24,0,84,0,12,0,71,0,29,0,67,0\n68,0,65,0,7,0,4,0,66,0,36,0\n40,0,61,0,64,0,69,0,93,0,28,0\n54,0,16,0,59,0,8,0,60,0,44,0\n53,0,30,0,5,0,63,0,25,0,81,0\n26,0,78,0,9,0,77,0,1,0,2,0\n56,0,87,0,51,0,46,0,88,0,43,0\n58,0,17,0,13,0,72,0,45,0,52,0\n20,0,24,0,42,0,62,0,47,0,23,0\n14,0,71,0,74,0,27,0,68,0,86,0\n79,0,6,0,67,0,57,0,18,0,40,0\n8,0,55,0,61,0,3,0,7,0,12,0\n37,0,63,0,73,0,15,0,66,0,11,0\n54,0,85,0,64,0,91,0,9,0,36,0\n60,0,65,0,50,0,51,0,89,0,10,0\n82,0,2,0,13,0,87,0,38,0,39,0\n22,0,48,0,53,0,1,0,35,0,44,0\n16,0,88,0,17,0,5,0,31,0,28,0\n75,0,43,0,26,0,41,0,59,0,83,0\n56,0,92,0,49,0,70,0,58,0,34,0\n90,0,77,0,72,0,81,0,84,0,33,0\n19,0,69,0,29,0,46,0,21,0,45,0\n4,0,52,0,93,0,76,0,30,0,78,0\n25,0,32,0,60,0,80,0,85,0,57,0\n40,0,79,0,39,0,7,0,53,0,47,0\n3,0,16,0,42,0,10,0,2,0,88,0\n11,0,64,0,26,0,18,0,38,0,51,0\n63,0,71,0,6,0,35,0,54,0,56,0\n77,0,49,0,48,0,65,0,62,0,75,0\n37,0,1,0,81,0,86,0,29,0,31,0\n8,0,90,0,36,0,50,0,5,0,52,0\n72,0,41,0,27,0,69,0,55,0,67,0\n59,0,66,0,74,0,17,0,22,0,92,0\n28,0,9,0,25,0,15,0,34,0,43,0\n24,0,70,0,89,0,93,0,32,0,80,0\n45,0,4,0,23,0,33,0,61,0,46,0\n82,0,78,0,83,0,12,0,14,0,58,0\n21,0,84,0,30,0,13,0,91,0,73,0\n19,0,20,0,68,0,76,0,87,0,44,0\n90,0,69,0,53,0,6,0,62,0,60,0\n42,0,18,0,59,0,57,0,66,0,29,0\n88,0,37,0,49,0,9,0,35,0,67,0\n39,0,86,0,25,0,24,0,11,0,17,0\n7,0,1,0,71,0,75,0,89,0,52,0\n51,0,22,0,4,0,80,0,72,0,12,0\n61,0,31,0,34,0,36,0,38,0,83,0\n15,0,81,0,50,0,21,0,70,0,2,0\n32,0,46,0,91,0,82,0,44,0,27,0\n16,0,64,0,19,0,56,0,41,0,20,0\n77,0,74,0,85,0,45,0,43,0,87,0\n93,0,55,0,13,0,10,0,5,0,92,0\n73,0,76,0,65,0,26,0,28,0,14,0\n3,0,47,0,33,0,30,0,58,0,68,0\n40,0,23,0,48,0,63,0,8,0,84,0\n54,0,21,0,37,0,79,0,78,0,42,0\n31,0,89,0,69,0,25,0,4,0,91,0\n15,0,18,0,61,0,49,0,90,0,24,0\n66,0,20,0,32,0,36,0,71,0,39,0\n67,0,44,0,50,0,34,0,93,0,77,0\n22,0,83,0,73,0,64,0,13,0,9,0\n19,0,35,0,6,0,65,0,52,0,3,0\n10,0,58,0,87,0,40,0,41,0,86,0\n48,0,55,0,45,0,51,0,70,0,54,0\n5,0,74,0,11,0,33,0,2,0,56,0\n79,0,29,0,76,0,43,0,16,0,80,0\n84,0,75,0,53,0,92,0,82,0,68,0\n14,0,46,0,72,0,47,0,63,0,26,0\n8,0,57,0,62,0,78,0,28,0,81,0\n59,0,85,0,88,0,7,0,38,0,30,0\n17,0,1,0,27,0,60,0,23,0,12,0\n58,0,44,0,71,0,61,0,9,0,70,0\n5,0,54,0,86,0,65,0,32,0,41,0\n25,0,18,0,93,0,87,0,73,0,16,0\n51,0,20,0,49,0,40,0,3,0,21,0\n47,0,34,0,75,0,29,0,35,0,4,0\n52,0,77,0,68,0,63,0,42,0,91,0\n19,0,78,0,84,0,50,0,22,0,55,0\n92,0,62,0,7,0,45,0,26,0,27,0\n81,0,80,0,38,0,56,0,6,0,17,0\n83,0,8,0,46,0,2,0,66,0,89,0\n14,0,67,0,31,0,85,0,39,0,90,0\n13,0,33,0,28,0,36,0,53,0,37,0\n79,0,74,0,82,0,69,0,23,0,15,0\n11,0,60,0,43,0,48,0,30,0,72,0\n88,0,76,0,24,0,59,0,64,0,1,0\n12,0,63,0,92,0,57,0,10,0,44,0\n"
  },
  {
    "path": "schedules/93_12.csv",
    "content": "54,0,43,0,55,0,59,0,38,0,27,0\n28,0,51,0,60,0,76,0,18,0,15,0\n32,0,71,0,92,0,73,0,79,0,68,0\n17,0,21,0,20,0,42,0,31,0,72,0\n62,0,67,0,11,0,85,0,75,0,46,0\n82,0,66,0,9,0,56,0,70,0,8,0\n36,0,81,0,52,0,47,0,69,0,3,0\n33,0,48,0,87,0,30,0,35,0,5,0\n80,0,57,0,86,0,65,0,2,0,53,0\n74,0,6,0,16,0,58,0,34,0,4,0\n90,0,12,0,40,0,19,0,1,0,64,0\n88,0,22,0,49,0,77,0,39,0,7,0\n25,0,91,0,89,0,83,0,61,0,10,0\n29,0,50,0,26,0,24,0,45,0,63,0\n93,0,84,0,14,0,78,0,23,0,13,0\n41,0,37,0,32,0,44,0,75,0,20,0\n80,0,38,0,73,0,82,0,48,0,76,0\n52,0,30,0,85,0,51,0,58,0,43,0\n86,0,6,0,21,0,71,0,59,0,54,0\n33,0,53,0,74,0,12,0,42,0,77,0\n7,0,92,0,70,0,62,0,40,0,91,0\n60,0,64,0,57,0,17,0,3,0,39,0\n24,0,55,0,15,0,66,0,16,0,14,0\n49,0,89,0,37,0,81,0,35,0,93,0\n63,0,26,0,11,0,27,0,41,0,13,0\n67,0,22,0,90,0,78,0,50,0,4,0\n29,0,10,0,8,0,5,0,46,0,18,0\n36,0,79,0,34,0,44,0,1,0,84,0\n25,0,23,0,9,0,65,0,28,0,31,0\n87,0,69,0,68,0,45,0,56,0,61,0\n2,0,83,0,19,0,47,0,72,0,88,0\n91,0,42,0,54,0,76,0,80,0,71,0\n63,0,93,0,21,0,85,0,53,0,32,0\n27,0,73,0,40,0,20,0,3,0,51,0\n81,0,14,0,67,0,16,0,77,0,62,0\n84,0,39,0,52,0,33,0,15,0,41,0\n58,0,49,0,35,0,11,0,59,0,29,0\n55,0,50,0,7,0,8,0,31,0,6,0\n26,0,87,0,34,0,19,0,92,0,46,0\n82,0,24,0,78,0,69,0,83,0,88,0\n1,0,47,0,13,0,9,0,89,0,60,0\n10,0,57,0,72,0,37,0,12,0,22,0\n43,0,23,0,64,0,68,0,36,0,44,0\n25,0,65,0,38,0,75,0,17,0,70,0\n90,0,5,0,74,0,2,0,28,0,86,0\n66,0,4,0,18,0,45,0,79,0,30,0\n48,0,61,0,52,0,56,0,27,0,19,0\n16,0,29,0,31,0,91,0,93,0,53,0\n14,0,47,0,35,0,21,0,50,0,80,0\n3,0,58,0,33,0,8,0,54,0,1,0\n7,0,71,0,87,0,11,0,83,0,51,0\n64,0,72,0,55,0,70,0,13,0,67,0\n12,0,84,0,81,0,85,0,86,0,73,0\n25,0,37,0,30,0,68,0,24,0,42,0\n61,0,18,0,77,0,78,0,41,0,34,0\n60,0,5,0,56,0,92,0,36,0,22,0\n75,0,82,0,63,0,57,0,90,0,79,0\n76,0,4,0,44,0,59,0,46,0,66,0\n40,0,65,0,43,0,74,0,10,0,88,0\n39,0,45,0,28,0,89,0,48,0,32,0\n69,0,17,0,15,0,9,0,2,0,49,0\n20,0,6,0,38,0,26,0,62,0,23,0\n41,0,42,0,7,0,86,0,72,0,27,0\n29,0,68,0,3,0,67,0,85,0,34,0\n36,0,19,0,90,0,8,0,14,0,71,0\n91,0,64,0,92,0,82,0,37,0,84,0\n51,0,87,0,21,0,57,0,16,0,1,0\n48,0,46,0,25,0,12,0,63,0,55,0\n17,0,76,0,32,0,30,0,10,0,47,0\n74,0,83,0,15,0,56,0,54,0,26,0\n75,0,50,0,23,0,88,0,73,0,66,0\n62,0,45,0,93,0,65,0,52,0,22,0\n44,0,35,0,9,0,38,0,2,0,40,0\n4,0,80,0,33,0,13,0,60,0,49,0\n89,0,79,0,59,0,78,0,5,0,20,0\n69,0,70,0,53,0,11,0,6,0,18,0\n28,0,24,0,81,0,43,0,39,0,61,0\n77,0,31,0,76,0,58,0,82,0,36,0\n15,0,91,0,12,0,67,0,50,0,87,0\n47,0,8,0,62,0,51,0,37,0,86,0\n66,0,83,0,35,0,65,0,63,0,42,0\n64,0,10,0,21,0,56,0,2,0,4,0\n44,0,3,0,74,0,7,0,14,0,89,0\n6,0,13,0,88,0,92,0,85,0,17,0\n78,0,52,0,11,0,60,0,38,0,32,0\n59,0,16,0,26,0,90,0,18,0,68,0\n72,0,61,0,9,0,33,0,73,0,93,0\n79,0,40,0,46,0,24,0,58,0,39,0\n43,0,45,0,71,0,84,0,25,0,49,0\n31,0,69,0,1,0,22,0,41,0,48,0\n77,0,75,0,19,0,30,0,80,0,55,0\n57,0,70,0,20,0,54,0,28,0,29,0\n53,0,5,0,23,0,27,0,34,0,81,0\n56,0,13,0,91,0,65,0,32,0,18,0\n85,0,7,0,37,0,90,0,17,0,61,0\n12,0,4,0,14,0,93,0,51,0,88,0\n92,0,74,0,8,0,38,0,24,0,21,0\n46,0,60,0,16,0,72,0,48,0,83,0\n89,0,26,0,58,0,43,0,22,0,75,0\n82,0,6,0,47,0,87,0,25,0,40,0\n1,0,63,0,29,0,71,0,15,0,81,0\n80,0,42,0,79,0,67,0,52,0,23,0\n68,0,27,0,78,0,35,0,39,0,76,0\n53,0,41,0,84,0,10,0,55,0,9,0\n34,0,31,0,62,0,59,0,57,0,33,0\n45,0,11,0,44,0,5,0,19,0,73,0\n49,0,70,0,30,0,50,0,36,0,86,0\n69,0,54,0,66,0,28,0,64,0,77,0\n3,0,2,0,24,0,20,0,4,0,87,0\n82,0,14,0,65,0,72,0,85,0,71,0\n15,0,90,0,46,0,88,0,80,0,27,0\n39,0,75,0,9,0,74,0,18,0,42,0\n41,0,56,0,81,0,6,0,76,0,59,0\n45,0,10,0,22,0,35,0,23,0,16,0\n78,0,29,0,25,0,7,0,73,0,36,0\n54,0,51,0,5,0,84,0,68,0,17,0\n2,0,26,0,93,0,40,0,60,0,30,0\n32,0,50,0,1,0,53,0,64,0,62,0\n55,0,19,0,37,0,21,0,69,0,79,0\n48,0,66,0,67,0,20,0,58,0,61,0\n70,0,86,0,77,0,44,0,89,0,52,0\n49,0,47,0,38,0,63,0,91,0,57,0\n34,0,13,0,8,0,12,0,43,0,83,0\n92,0,33,0,31,0,3,0,28,0,11,0\n40,0,72,0,84,0,75,0,76,0,29,0\n42,0,36,0,2,0,46,0,32,0,81,0\n25,0,69,0,59,0,1,0,74,0,30,0\n35,0,61,0,4,0,55,0,62,0,82,0\n93,0,5,0,41,0,80,0,24,0,64,0\n63,0,14,0,23,0,37,0,58,0,60,0\n77,0,17,0,8,0,68,0,91,0,48,0\n90,0,73,0,39,0,83,0,21,0,70,0\n6,0,12,0,57,0,66,0,78,0,45,0\n51,0,44,0,67,0,10,0,92,0,49,0\n52,0,71,0,88,0,26,0,28,0,53,0\n79,0,27,0,15,0,85,0,31,0,47,0\n86,0,38,0,19,0,3,0,13,0,22,0\n56,0,33,0,18,0,20,0,7,0,43,0\n65,0,50,0,54,0,89,0,34,0,11,0\n16,0,87,0,80,0,9,0,36,0,63,0\n60,0,72,0,91,0,81,0,55,0,74,0\n32,0,40,0,57,0,8,0,4,0,69,0\n23,0,30,0,83,0,21,0,29,0,41,0\n46,0,73,0,28,0,6,0,77,0,35,0\n59,0,47,0,22,0,84,0,42,0,61,0\n53,0,51,0,13,0,90,0,44,0,48,0\n71,0,27,0,89,0,18,0,38,0,64,0\n93,0,9,0,92,0,19,0,20,0,50,0\n78,0,58,0,15,0,86,0,65,0,68,0\n39,0,66,0,85,0,26,0,1,0,10,0\n76,0,43,0,70,0,5,0,16,0,37,0\n49,0,24,0,62,0,54,0,12,0,31,0\n3,0,79,0,56,0,88,0,11,0,25,0\n52,0,34,0,75,0,87,0,14,0,17,0\n45,0,82,0,67,0,2,0,33,0,7,0\n91,0,73,0,4,0,19,0,41,0,89,0\n65,0,29,0,69,0,90,0,47,0,92,0\n72,0,80,0,26,0,8,0,51,0,78,0\n84,0,43,0,27,0,77,0,57,0,50,0\n61,0,44,0,30,0,12,0,16,0,71,0\n3,0,10,0,59,0,70,0,15,0,63,0\n21,0,58,0,88,0,9,0,5,0,62,0\n55,0,11,0,76,0,2,0,39,0,23,0\n67,0,17,0,24,0,53,0,35,0,56,0\n48,0,79,0,64,0,6,0,33,0,81,0\n85,0,87,0,18,0,25,0,54,0,22,0\n32,0,28,0,42,0,49,0,34,0,82,0\n38,0,7,0,68,0,66,0,93,0,1,0\n46,0,20,0,37,0,52,0,13,0,74,0\n83,0,31,0,86,0,40,0,14,0,45,0\n36,0,60,0,27,0,75,0,10,0,62,0\n30,0,88,0,63,0,67,0,84,0,89,0\n3,0,77,0,65,0,61,0,26,0,21,0\n41,0,2,0,12,0,79,0,70,0,58,0\n90,0,49,0,43,0,72,0,87,0,23,0\n34,0,22,0,24,0,9,0,76,0,64,0\n19,0,66,0,32,0,29,0,74,0,51,0\n11,0,93,0,42,0,57,0,48,0,15,0\n80,0,39,0,31,0,38,0,37,0,56,0\n59,0,53,0,8,0,60,0,45,0,73,0\n28,0,36,0,85,0,83,0,40,0,55,0\n52,0,86,0,35,0,25,0,92,0,4,0\n78,0,47,0,16,0,54,0,46,0,33,0\n44,0,18,0,17,0,50,0,82,0,81,0\n68,0,1,0,20,0,14,0,91,0,6,0\n13,0,7,0,5,0,69,0,71,0,75,0\n"
  },
  {
    "path": "schedules/93_13.csv",
    "content": "63,0,22,0,55,0,74,0,52,0,80,0\n84,0,76,0,12,0,88,0,81,0,21,0\n5,0,86,0,87,0,62,0,77,0,25,0\n68,0,60,0,33,0,53,0,20,0,57,0\n10,0,82,0,19,0,14,0,75,0,15,0\n79,0,73,0,45,0,46,0,41,0,54,0\n7,0,11,0,1,0,34,0,64,0,3,0\n26,0,89,0,65,0,66,0,71,0,2,0\n61,0,72,0,48,0,70,0,67,0,49,0\n42,0,43,0,59,0,56,0,18,0,9,0\n37,0,36,0,69,0,32,0,91,0,35,0\n83,0,23,0,50,0,47,0,39,0,16,0\n17,0,93,0,92,0,6,0,30,0,38,0\n44,0,29,0,85,0,78,0,40,0,31,0\n28,0,27,0,8,0,51,0,58,0,24,0\n13,0,90,0,62,0,4,0,22,0,60,0\n77,0,54,0,67,0,11,0,65,0,25,0\n26,0,87,0,59,0,52,0,72,0,42,0\n2,0,41,0,49,0,63,0,82,0,88,0\n83,0,68,0,14,0,74,0,35,0,76,0\n37,0,91,0,57,0,12,0,89,0,75,0\n16,0,18,0,31,0,33,0,79,0,30,0\n80,0,6,0,47,0,73,0,51,0,7,0\n5,0,27,0,13,0,86,0,17,0,40,0\n1,0,61,0,28,0,21,0,69,0,85,0\n93,0,34,0,70,0,23,0,58,0,19,0\n4,0,48,0,20,0,3,0,39,0,81,0\n92,0,8,0,15,0,78,0,71,0,43,0\n56,0,55,0,64,0,90,0,50,0,45,0\n66,0,29,0,32,0,24,0,10,0,38,0\n36,0,53,0,84,0,46,0,44,0,9,0\n60,1,7,0,89,0,41,1,82,0,86,0\n1,1,80,0,26,0,5,0,11,0,49,0\n59,0,25,0,33,0,21,0,22,0,47,0\n39,0,72,0,85,0,91,0,19,0,2,0\n69,0,15,0,30,0,34,0,83,0,13,0\n90,0,17,0,37,0,87,0,79,0,78,0\n81,0,45,0,75,0,29,0,62,0,42,0\n63,0,73,0,28,0,14,0,48,0,50,0\n88,0,9,0,66,0,35,0,54,0,31,0\n67,0,16,0,40,0,57,0,10,0,8,0\n74,0,38,0,51,0,36,0,58,0,43,0\n24,0,53,0,4,0,18,0,93,0,76,0\n71,0,64,0,12,0,32,0,20,0,61,0\n84,0,56,0,6,0,65,0,68,0,23,0\n3,0,52,0,77,0,27,0,70,0,46,0\n92,0,55,0,48,0,44,0,47,0,79,0\n30,0,21,0,19,0,86,0,9,0,91,0\n16,0,85,0,45,0,80,0,37,0,15,0\n34,0,73,0,33,0,67,0,5,0,42,0\n53,0,66,0,31,0,74,0,4,0,8,0\n59,0,60,0,39,0,12,0,49,0,28,0\n64,0,69,0,84,0,38,0,89,0,40,0\n83,0,63,0,65,0,93,0,62,0,27,0\n61,0,92,0,35,0,2,0,77,0,55,0\n81,0,6,0,10,0,18,0,25,0,26,0\n75,0,52,0,78,0,3,0,88,0,56,0\n58,0,46,0,32,0,41,0,7,0,50,0\n44,0,82,0,22,0,54,0,43,0,70,0\n36,0,71,0,57,0,29,0,72,0,13,0\n76,0,87,0,14,0,20,0,11,0,23,0\n51,0,1,0,17,0,90,0,68,0,24,0\n42,0,34,0,38,0,79,0,53,0,39,0\n27,0,55,0,9,0,4,0,10,0,69,0\n49,0,47,0,81,0,31,0,52,0,89,0\n92,0,74,0,75,0,84,0,41,0,21,0\n25,0,60,0,43,0,80,0,83,0,78,0\n8,0,58,0,33,0,29,0,91,0,63,0\n61,0,86,0,36,0,48,0,11,0,59,0\n46,0,85,0,62,0,56,0,30,0,57,0\n14,0,3,0,20,0,24,0,40,0,72,0\n51,0,32,0,16,0,17,0,70,0,76,0\n28,0,88,0,87,0,7,0,93,0,15,0\n44,0,2,0,5,0,37,0,64,0,18,0\n23,0,1,0,22,0,71,0,77,0,45,0\n35,0,19,0,26,0,12,0,54,0,90,0\n50,0,67,0,66,0,6,0,82,0,68,0\n65,0,73,0,41,0,13,0,8,0,61,0\n55,0,14,0,21,0,42,0,60,0,36,0\n10,0,53,0,91,0,3,0,92,0,49,0\n63,0,24,0,62,0,31,0,70,0,84,0\n87,0,20,0,18,0,28,0,85,0,83,0\n64,0,89,0,15,0,74,0,33,0,17,0\n30,0,51,0,71,0,88,0,45,0,25,0\n26,0,56,0,48,0,29,0,22,0,7,0\n13,0,93,0,35,0,67,0,39,0,75,0\n79,0,72,0,58,0,9,0,40,0,73,0\n12,0,78,0,66,0,16,0,23,0,69,0\n38,0,76,0,37,0,47,0,65,0,1,0\n68,0,34,0,81,0,27,0,43,0,2,0\n11,0,82,0,46,0,5,0,90,0,6,0\n86,0,57,0,50,0,54,0,52,0,4,0\n80,0,19,0,32,0,44,0,77,0,59,0\n25,0,13,0,70,0,53,0,56,0,89,0\n26,0,79,0,36,0,93,0,85,0,8,0\n9,0,10,0,41,0,71,0,28,0,62,0\n69,0,22,0,67,0,87,0,31,0,92,0\n3,0,15,0,29,0,68,0,21,0,39,0\n55,0,76,0,33,0,6,0,40,0,12,0\n82,0,16,0,65,0,58,0,86,0,60,0\n34,0,14,0,7,0,52,0,45,0,66,0\n64,0,91,0,24,0,59,0,83,0,54,0\n4,0,46,0,61,0,17,0,80,0,42,0\n90,0,88,0,11,0,27,0,48,0,37,0\n63,0,43,0,77,0,75,0,20,0,47,0\n72,0,23,0,78,0,5,0,51,0,35,0\n74,0,1,0,30,0,44,0,81,0,73,0\n49,0,18,0,32,0,57,0,84,0,19,0\n2,0,38,0,8,0,50,0,3,0,12,0\n86,0,6,0,24,0,34,0,9,0,22,0\n71,0,68,0,52,0,64,0,16,0,93,0\n83,0,21,0,56,0,11,0,4,0,79,0\n26,0,37,0,43,0,62,0,41,0,53,0\n48,0,35,0,69,0,60,0,46,0,65,0\n74,0,90,0,7,0,10,0,85,0,77,0\n82,0,13,0,55,0,19,0,51,0,18,0\n38,0,57,0,44,0,61,0,76,0,45,0\n40,0,25,0,15,0,63,0,23,0,42,0\n50,0,70,0,36,0,80,0,33,0,87,0\n72,0,66,0,47,0,30,0,27,0,78,0\n39,0,89,0,88,0,1,0,73,0,92,0\n17,0,49,0,54,0,2,0,81,0,14,0\n84,0,29,0,58,0,59,0,67,0,20,0\n91,0,31,0,75,0,32,0,28,0,5,0\n62,0,43,0,6,0,69,0,3,0,19,0\n71,0,34,0,35,0,63,0,21,0,18,0\n37,0,22,0,8,0,46,0,7,0,68,0\n27,0,77,0,42,0,41,0,57,0,76,0\n61,0,89,0,74,0,16,0,24,0,79,0\n60,0,17,0,10,0,88,0,72,0,44,0\n29,0,51,0,20,0,50,0,49,0,93,0\n39,0,31,0,14,0,90,0,86,0,65,0\n73,0,11,0,66,0,52,0,84,0,91,0\n1,0,58,0,54,0,15,0,13,0,48,0\n78,0,25,0,28,0,36,0,2,0,64,0\n70,0,4,0,30,0,38,0,67,0,26,0\n23,0,75,0,53,0,59,0,55,0,85,0\n32,0,45,0,9,0,83,0,92,0,33,0\n80,0,81,0,40,0,87,0,82,0,56,0\n12,0,47,0,42,0,5,0,74,0,68,0\n31,0,61,0,3,0,19,0,37,0,93,0\n60,0,77,0,91,0,15,0,34,0,84,0\n58,0,44,0,18,0,22,0,39,0,66,0\n35,0,7,0,62,0,73,0,20,0,17,0\n38,0,54,0,16,0,28,0,55,0,90,0\n59,0,30,0,50,0,10,0,78,0,89,0\n24,0,23,0,43,0,46,0,48,0,88,0\n41,0,51,0,85,0,11,0,81,0,33,0\n92,0,45,0,5,0,63,0,4,0,36,0\n49,0,27,0,65,0,21,0,64,0,87,0\n8,0,25,0,56,0,72,0,32,0,1,0\n71,0,86,0,79,0,69,0,76,0,75,0\n47,0,83,0,57,0,70,0,26,0,82,0\n2,0,52,0,40,0,53,0,6,0,67,0\n80,0,12,0,29,0,14,0,9,0,13,0\n68,0,38,0,19,0,48,0,78,0,41,0\n44,0,11,0,50,0,15,0,35,0,24,0\n91,0,23,0,18,0,61,0,7,0,27,0\n33,0,5,0,56,0,54,0,93,0,84,0\n79,0,81,0,66,0,64,0,60,0,63,0\n59,0,46,0,34,0,51,0,92,0,65,0\n17,0,25,0,57,0,58,0,3,0,55,0\n39,0,76,0,9,0,26,0,8,0,52,0\n20,0,21,0,2,0,13,0,10,0,45,0\n4,0,75,0,73,0,87,0,70,0,12,0\n16,0,62,0,36,0,49,0,1,0,6,0\n31,0,80,0,90,0,71,0,53,0,72,0\n47,0,88,0,74,0,69,0,86,0,29,0\n67,0,14,0,85,0,89,0,32,0,43,0\n40,0,82,0,77,0,37,0,28,0,30,0\n83,0,22,0,3,0,42,0,84,0,51,0\n92,0,76,0,19,0,50,0,56,0,60,0\n65,0,7,0,78,0,9,0,57,0,81,0\n54,0,10,0,87,0,61,0,39,0,63,0\n12,0,52,0,41,0,36,0,17,0,18,0\n15,0,91,0,27,0,80,0,38,0,79,0\n31,0,44,0,68,0,23,0,25,0,73,0\n11,0,13,0,74,0,46,0,33,0,28,0\n86,0,43,0,67,0,45,0,1,0,55,0\n21,0,93,0,40,0,62,0,66,0,48,0\n69,0,8,0,59,0,70,0,14,0,5,0\n32,0,90,0,4,0,2,0,47,0,58,0\n89,0,6,0,72,0,77,0,75,0,83,0\n42,0,24,0,49,0,71,0,85,0,37,0\n53,0,29,0,64,0,30,0,35,0,82,0\n88,0,20,0,34,0,26,0,16,0,22,0\n46,0,78,0,76,0,55,0,91,0,67,0\n10,0,52,0,79,0,13,0,43,0,65,0\n86,0,8,0,81,0,80,0,23,0,92,0\n41,0,4,0,40,0,90,0,59,0,15,0\n74,0,54,0,18,0,62,0,32,0,68,0\n60,0,2,0,37,0,73,0,38,0,56,0\n45,0,28,0,35,0,47,0,89,0,3,0\n70,0,19,0,42,0,20,0,66,0,1,0\n83,0,5,0,88,0,58,0,61,0,53,0\n48,0,85,0,82,0,12,0,34,0,25,0\n77,0,21,0,51,0,64,0,31,0,26,0\n30,0,7,0,39,0,33,0,36,0,24,0\n50,0,17,0,9,0,22,0,49,0,75,0\n93,0,63,0,11,0,69,0,57,0,72,0\n84,0,44,0,27,0,16,0,14,0,71,0\n87,0,6,0,60,0,29,0,41,0,1,0\n"
  },
  {
    "path": "schedules/93_14.csv",
    "content": "88,0,55,0,72,0,71,0,53,0,93,0\n30,0,14,0,66,0,52,0,26,0,92,0\n15,0,90,0,63,0,65,0,64,0,54,0\n31,0,45,0,3,0,74,0,68,0,83,0\n51,0,1,0,49,0,81,0,77,0,79,0\n44,0,85,0,22,0,47,0,18,0,57,0\n17,0,76,0,2,0,36,0,28,0,43,0\n19,0,6,0,23,0,41,0,5,0,86,0\n21,0,13,0,7,0,29,0,4,0,67,0\n58,0,33,0,48,0,16,0,37,0,25,0\n40,0,61,0,91,0,60,0,56,0,59,0\n87,0,24,0,50,0,42,0,11,0,73,0\n84,0,46,0,89,0,32,0,62,0,80,0\n70,0,78,0,34,0,38,0,12,0,20,0\n27,0,69,0,10,0,75,0,35,0,39,0\n9,0,8,0,77,0,82,0,52,0,72,0\n28,0,55,0,81,0,57,0,21,0,74,0\n85,0,49,0,71,0,45,0,33,0,2,0\n47,0,90,0,13,0,83,0,79,0,48,0\n91,0,1,0,18,0,64,0,36,0,88,0\n29,0,84,0,76,0,15,0,60,0,25,0\n78,0,14,0,65,0,50,0,5,0,4,0\n3,0,44,0,26,0,17,0,12,0,24,0\n51,0,86,0,42,0,62,0,39,0,82,0\n11,0,93,0,80,0,22,0,16,0,70,0\n23,0,37,0,40,0,31,0,73,0,7,0\n59,0,87,0,43,0,75,0,56,0,68,0\n38,0,67,0,41,0,32,0,30,0,69,0\n27,0,61,0,58,0,63,0,9,0,34,0\n35,0,8,0,89,0,53,0,92,0,6,0\n46,0,66,0,20,0,10,0,19,0,54,0\n91,0,82,0,3,0,57,0,50,0,90,0\n39,0,93,0,83,0,4,0,2,0,1,0\n65,0,17,0,48,0,55,0,14,0,70,0\n28,0,13,0,56,0,85,0,86,0,64,0\n75,0,60,0,21,0,32,0,33,0,78,0\n18,0,67,0,23,0,12,0,81,0,62,0\n37,0,69,0,53,0,45,0,47,0,79,0\n80,0,49,0,38,0,52,0,7,0,87,0\n72,0,68,0,54,0,22,0,6,0,74,0\n35,0,63,0,66,0,46,0,44,0,43,0\n73,0,16,0,9,0,88,0,30,0,15,0\n92,0,51,0,58,0,71,0,41,0,29,0\n5,0,34,0,27,0,77,0,42,0,59,0\n76,0,25,0,89,0,61,0,19,0,31,0\n10,0,8,0,11,0,36,0,40,0,26,0\n24,0,1,0,65,0,20,0,84,0,13,0\n4,0,62,0,79,0,75,0,33,0,64,0\n93,0,60,0,7,0,63,0,85,0,54,0\n44,0,38,0,83,0,14,0,16,0,6,0\n88,0,68,0,12,0,28,0,66,0,51,0\n56,0,53,0,5,0,58,0,69,0,80,0\n72,0,57,0,46,0,76,0,67,0,78,0\n52,0,37,0,70,0,74,0,42,0,15,0\n24,0,90,0,30,0,21,0,86,0,89,0\n20,0,73,0,59,0,8,0,92,0,39,0\n10,0,41,0,36,0,31,0,49,0,81,0\n3,0,29,0,2,0,48,0,23,0,61,0\n47,0,50,0,35,0,17,0,9,0,71,0\n45,0,34,0,19,0,91,0,26,0,87,0\n18,0,11,0,43,0,77,0,84,0,55,0\n82,0,22,0,25,0,32,0,40,0,27,0\n74,0,33,0,5,0,51,0,30,0,93,0\n44,0,78,0,79,0,42,0,89,0,52,0\n57,0,81,0,39,0,90,0,75,0,12,0\n63,0,41,0,80,0,72,0,24,0,4,0\n9,0,60,0,67,0,71,0,31,0,48,0\n7,0,50,0,86,0,76,0,61,0,1,0\n55,0,21,0,87,0,3,0,62,0,20,0\n36,0,6,0,25,0,66,0,45,0,65,0\n27,0,22,0,18,0,46,0,73,0,49,0\n54,0,11,0,14,0,69,0,23,0,88,0\n70,0,59,0,40,0,19,0,58,0,28,0\n37,0,84,0,85,0,83,0,26,0,35,0\n32,0,29,0,64,0,8,0,47,0,43,0\n56,0,16,0,82,0,13,0,92,0,34,0\n53,0,68,0,10,0,38,0,15,0,17,0\n77,0,2,0,41,0,91,0,74,0,89,0\n42,0,57,0,30,0,65,0,7,0,36,0\n60,0,61,0,4,0,52,0,22,0,55,0\n80,0,6,0,71,0,1,0,78,0,90,0\n35,0,79,0,18,0,31,0,87,0,93,0\n45,0,12,0,51,0,8,0,50,0,58,0\n73,0,83,0,32,0,28,0,54,0,69,0\n81,0,48,0,59,0,44,0,82,0,15,0\n46,0,3,0,56,0,11,0,37,0,13,0\n49,0,64,0,17,0,34,0,40,0,24,0\n21,0,67,0,39,0,77,0,66,0,85,0\n88,0,86,0,10,0,84,0,27,0,2,0\n72,0,29,0,16,0,75,0,5,0,26,0\n70,0,38,0,25,0,62,0,9,0,92,0\n76,0,20,0,23,0,47,0,63,0,68,0\n19,0,91,0,33,0,14,0,43,0,53,0\n22,0,35,0,1,0,42,0,58,0,90,0\n15,0,89,0,45,0,13,0,55,0,40,0\n93,0,12,0,82,0,46,0,36,0,87,0\n78,0,10,0,49,0,74,0,67,0,3,0\n29,0,88,0,52,0,17,0,81,0,85,0\n32,0,18,0,92,0,2,0,9,0,80,0\n28,0,62,0,23,0,24,0,6,0,60,0\n84,0,71,0,34,0,79,0,66,0,57,0\n38,0,19,0,77,0,65,0,73,0,56,0\n64,0,61,0,47,0,14,0,72,0,51,0\n16,0,31,0,4,0,20,0,27,0,91,0\n50,0,41,0,54,0,37,0,33,0,59,0\n75,0,48,0,44,0,11,0,30,0,76,0\n43,0,63,0,83,0,8,0,5,0,70,0\n86,0,53,0,39,0,25,0,68,0,26,0\n21,0,82,0,6,0,7,0,69,0,17,0\n92,0,35,0,40,0,78,0,62,0,77,0\n15,0,81,0,66,0,80,0,61,0,3,0\n74,0,16,0,47,0,19,0,36,0,24,0\n2,0,56,0,42,0,72,0,33,0,31,0\n59,0,75,0,84,0,45,0,9,0,14,0\n18,0,60,0,71,0,83,0,37,0,65,0\n12,0,53,0,27,0,54,0,13,0,30,0\n32,0,93,0,34,0,50,0,10,0,48,0\n44,0,7,0,8,0,68,0,55,0,41,0\n85,0,4,0,76,0,51,0,90,0,11,0\n64,0,39,0,70,0,46,0,23,0,29,0\n88,0,43,0,89,0,20,0,26,0,22,0\n91,0,58,0,79,0,73,0,38,0,21,0\n86,0,87,0,49,0,63,0,57,0,69,0\n52,0,1,0,67,0,25,0,28,0,5,0\n92,0,33,0,24,0,83,0,27,0,15,0\n80,0,19,0,12,0,35,0,60,0,68,0\n72,0,8,0,62,0,66,0,37,0,48,0\n32,0,71,0,7,0,11,0,77,0,70,0\n31,0,30,0,53,0,34,0,22,0,3,0\n89,0,58,0,26,0,46,0,65,0,4,0\n73,0,43,0,78,0,45,0,41,0,82,0\n14,0,74,0,20,0,18,0,86,0,56,0\n67,0,54,0,47,0,84,0,91,0,39,0\n75,0,13,0,6,0,50,0,49,0,88,0\n17,0,79,0,51,0,25,0,23,0,59,0\n9,0,81,0,76,0,64,0,42,0,93,0\n90,0,87,0,28,0,44,0,29,0,10,0\n38,0,36,0,2,0,63,0,40,0,21,0\n52,0,69,0,85,0,55,0,16,0,1,0\n57,0,20,0,35,0,61,0,5,0,11,0\n14,0,60,0,27,0,43,0,7,0,72,0\n39,0,24,0,48,0,88,0,18,0,45,0\n33,0,86,0,8,0,34,0,65,0,80,0\n81,0,68,0,50,0,70,0,4,0,84,0\n58,0,77,0,3,0,6,0,76,0,47,0\n64,0,30,0,78,0,87,0,83,0,25,0\n56,0,10,0,22,0,21,0,79,0,41,0\n32,0,37,0,61,0,1,0,44,0,92,0\n54,0,31,0,66,0,38,0,29,0,82,0\n57,0,26,0,13,0,2,0,52,0,73,0\n9,0,36,0,90,0,23,0,53,0,55,0\n89,0,51,0,75,0,63,0,67,0,28,0\n49,0,59,0,74,0,16,0,12,0,71,0\n62,0,15,0,69,0,93,0,17,0,19,0\n40,0,5,0,42,0,46,0,85,0,91,0\n83,0,80,0,77,0,10,0,20,0,58,0\n38,0,11,0,60,0,45,0,86,0,81,0\n30,0,1,0,72,0,82,0,70,0,35,0\n57,0,25,0,4,0,54,0,18,0,8,0\n34,0,29,0,37,0,2,0,14,0,24,0\n26,0,55,0,67,0,59,0,64,0,6,0\n66,0,17,0,89,0,16,0,87,0,27,0\n19,0,78,0,13,0,22,0,51,0,9,0\n62,0,71,0,5,0,73,0,76,0,36,0\n92,0,69,0,90,0,46,0,7,0,68,0\n50,0,74,0,32,0,53,0,85,0,79,0\n63,0,91,0,31,0,52,0,48,0,12,0\n43,0,65,0,33,0,3,0,39,0,40,0\n75,0,47,0,88,0,21,0,61,0,42,0\n23,0,84,0,93,0,56,0,49,0,44,0\n15,0,28,0,11,0,41,0,18,0,34,0\n37,0,20,0,5,0,38,0,22,0,64,0\n2,0,16,0,8,0,90,0,35,0,67,0\n51,0,70,0,24,0,60,0,57,0,53,0\n25,0,63,0,13,0,81,0,71,0,14,0\n55,0,91,0,86,0,78,0,29,0,66,0\n36,0,68,0,85,0,48,0,73,0,27,0\n17,0,56,0,58,0,39,0,32,0,49,0\n46,0,80,0,28,0,30,0,79,0,43,0\n12,0,84,0,61,0,6,0,33,0,93,0\n75,0,42,0,19,0,92,0,54,0,3,0\n45,0,23,0,7,0,10,0,89,0,72,0\n74,0,82,0,40,0,4,0,44,0,88,0\n65,0,41,0,87,0,47,0,9,0,1,0\n26,0,69,0,31,0,77,0,15,0,50,0\n83,0,59,0,52,0,62,0,76,0,21,0\n85,0,56,0,24,0,30,0,8,0,81,0\n58,0,68,0,66,0,18,0,13,0,93,0\n5,0,79,0,19,0,39,0,2,0,55,0\n45,0,67,0,92,0,63,0,22,0,17,0\n53,0,48,0,7,0,28,0,78,0,84,0\n10,0,73,0,82,0,70,0,47,0,89,0\n20,0,29,0,33,0,9,0,44,0,69,0\n87,0,6,0,57,0,37,0,4,0,15,0\n65,0,90,0,88,0,32,0,31,0,59,0\n21,0,34,0,26,0,23,0,35,0,51,0\n72,0,25,0,11,0,49,0,91,0,83,0\n62,0,54,0,43,0,16,0,61,0,50,0\n14,0,12,0,40,0,80,0,76,0,42,0\n64,0,27,0,71,0,52,0,3,0,41,0\n60,0,74,0,46,0,38,0,1,0,75,0\n77,0,36,0,44,0,86,0,13,0,70,0\n30,0,63,0,6,0,18,0,29,0,19,0\n47,0,81,0,22,0,33,0,7,0,66,0\n31,0,92,0,85,0,58,0,84,0,72,0\n69,0,59,0,2,0,78,0,24,0,25,0\n65,0,11,0,79,0,82,0,68,0,67,0\n51,0,55,0,76,0,37,0,91,0,10,0\n45,0,1,0,62,0,57,0,56,0,27,0\n14,0,3,0,15,0,35,0,32,0,36,0\n21,0,9,0,49,0,5,0,54,0,89,0\n39,0,28,0,61,0,71,0,87,0,8,0\n77,0,16,0,64,0,12,0,50,0,60,0\n42,0,4,0,48,0,38,0,43,0,23,0\n40,0,52,0,75,0,20,0,86,0,93,0\n83,0,46,0,41,0,53,0,88,0,34,0\n73,0,17,0,26,0,80,0,90,0,74,0\n"
  },
  {
    "path": "schedules/93_2.csv",
    "content": "1,0,93,0,24,0,4,0,80,0,52,0\n2,0,71,0,7,0,25,0,20,0,26,0\n72,0,62,0,16,0,30,0,8,0,5,0\n50,0,17,0,73,0,60,0,57,0,67,0\n34,0,75,0,19,0,35,0,66,0,81,0\n48,0,13,0,59,0,9,0,77,0,55,0\n10,0,46,0,39,0,44,0,3,0,18,0\n82,0,22,0,29,0,78,0,47,0,63,0\n68,0,70,0,54,0,15,0,65,0,43,0\n45,0,76,0,86,0,51,0,74,0,85,0\n37,0,49,0,23,0,31,0,33,0,56,0\n87,0,6,0,88,0,38,0,83,0,61,0\n42,0,64,0,69,0,12,0,11,0,79,0\n41,0,53,0,90,0,40,0,21,0,89,0\n28,0,84,0,27,0,91,0,92,0,32,0\n36,0,80,0,55,0,14,0,58,0,75,0\n18,0,67,0,82,0,93,0,54,0,19,0\n20,0,16,0,70,0,76,0,29,0,24,0\n33,0,35,0,44,0,59,0,51,0,50,0\n60,0,62,0,81,0,87,0,7,0,86,0\n66,0,25,0,42,0,85,0,23,0,39,0\n46,0,30,0,52,0,41,0,34,0,45,0\n3,0,48,0,31,0,27,0,90,0,22,0\n5,0,43,0,57,0,78,0,49,0,88,0\n79,0,63,0,14,0,53,0,6,0,13,0\n1,0,47,0,11,0,37,0,26,0,68,0\n64,0,21,0,17,0,72,0,28,0,74,0\n9,0,32,0,61,0,36,0,15,0,8,0\n71,0,83,0,91,0,89,0,10,0,73,0\n77,0,4,0,92,0,58,0,2,0,69,0\n12,0,38,0,65,0,84,0,40,0,56,0\n"
  },
  {
    "path": "schedules/93_3.csv",
    "content": "85,0,33,0,80,0,36,0,93,0,70,0\n37,0,50,0,38,0,63,0,64,0,75,0\n6,0,53,0,68,0,55,0,4,0,48,0\n42,0,26,0,1,0,20,0,29,0,52,0\n34,0,9,0,72,0,12,0,11,0,27,0\n24,0,45,0,35,0,7,0,8,0,40,0\n44,0,41,0,59,0,83,0,28,0,76,0\n86,0,90,0,54,0,13,0,71,0,77,0\n43,0,5,0,84,0,89,0,31,0,17,0\n18,0,62,0,16,0,79,0,10,0,61,0\n49,0,69,0,15,0,66,0,91,0,60,0\n30,0,87,0,92,0,65,0,32,0,67,0\n46,0,74,0,47,0,73,0,14,0,25,0\n2,0,56,0,57,0,3,0,82,0,51,0\n81,0,19,0,22,0,58,0,78,0,88,0\n39,0,23,0,8,0,21,0,71,0,68,0\n4,1,13,0,29,0,83,1,37,0,5,0\n20,1,43,0,64,0,34,0,54,0,33,0\n70,0,89,0,52,0,16,0,41,0,53,0\n27,0,24,0,28,0,90,0,93,0,50,0\n91,0,63,0,85,0,11,0,87,0,47,0\n72,0,31,0,62,0,82,0,26,0,59,0\n7,0,10,0,57,0,88,0,60,0,92,0\n3,0,81,0,1,0,23,0,55,0,61,0\n9,0,67,0,58,0,46,0,38,0,80,0\n79,0,66,0,21,0,56,0,42,0,19,0\n15,0,76,0,45,0,86,0,25,0,65,0\n14,0,12,0,2,0,49,0,44,0,78,0\n6,0,77,0,22,0,35,0,18,0,30,0\n74,0,51,0,84,0,75,0,39,0,48,0\n17,0,32,0,73,0,36,0,69,0,40,0\n71,0,89,0,27,0,62,0,60,0,1,0\n93,0,87,0,3,0,20,0,58,0,5,0\n80,0,8,0,53,0,91,0,81,0,10,0\n52,0,67,0,85,0,24,0,57,0,83,0\n28,0,82,0,70,0,7,0,13,0,38,0\n4,0,78,0,65,0,35,0,56,0,61,0\n44,0,75,0,86,0,68,0,33,0,42,0\n59,0,23,0,90,0,17,0,74,0,15,0\n18,0,12,0,48,0,73,0,43,0,41,0\n36,0,30,0,11,0,39,0,16,0,46,0\n25,0,92,0,77,0,72,0,21,0,64,0\n66,0,50,0,34,0,6,0,51,0,47,0\n88,0,69,0,37,0,26,0,45,0,2,0\n19,0,55,0,40,0,84,0,49,0,54,0\n9,0,76,0,14,0,79,0,22,0,29,0\n32,0,31,0,83,0,63,0,4,0,20,0\n"
  },
  {
    "path": "schedules/93_4.csv",
    "content": "1,0,26,0,22,0,86,0,10,0,61,0\n12,0,75,0,28,0,48,0,2,0,79,0\n80,0,77,0,66,0,85,0,13,0,25,0\n17,0,18,0,87,0,53,0,39,0,57,0\n43,0,45,0,65,0,78,0,8,0,6,0\n38,0,42,0,51,0,58,0,7,0,5,0\n4,0,32,0,50,0,72,0,56,0,82,0\n11,0,9,0,23,0,29,0,52,0,62,0\n27,0,30,0,59,0,20,0,47,0,74,0\n55,0,64,0,46,0,31,0,41,0,16,0\n3,0,33,0,71,0,91,0,81,0,70,0\n21,0,54,0,36,0,84,0,14,0,60,0\n44,0,49,0,37,0,34,0,15,0,73,0\n68,0,63,0,69,0,76,0,67,0,89,0\n93,0,40,0,24,0,92,0,90,0,83,0\n35,0,7,0,23,0,19,0,88,0,43,0\n65,0,53,0,79,0,52,0,30,0,1,0\n4,0,8,0,2,0,42,0,41,0,87,0\n72,0,31,0,59,0,71,0,38,0,75,0\n39,0,26,0,6,0,66,0,9,0,60,0\n5,0,14,0,33,0,61,0,11,0,77,0\n78,0,89,0,62,0,27,0,22,0,46,0\n81,0,20,0,34,0,76,0,64,0,17,0\n3,0,51,0,29,0,40,0,49,0,10,0\n47,0,88,0,70,0,63,0,90,0,21,0\n56,0,48,0,83,0,67,0,44,0,36,0\n57,0,69,0,50,0,13,0,28,0,54,0\n73,0,92,0,19,0,58,0,55,0,25,0\n74,0,16,0,85,0,91,0,68,0,24,0\n45,0,32,0,84,0,80,0,15,0,93,0\n82,0,86,0,37,0,18,0,35,0,12,0\n77,0,40,0,2,0,76,0,26,0,53,0\n14,0,3,0,63,0,62,0,87,0,34,0\n49,0,8,0,1,0,64,0,38,0,70,0\n13,0,41,0,36,0,89,0,39,0,79,0\n78,0,10,0,30,0,56,0,31,0,21,0\n20,0,5,0,16,0,69,0,92,0,23,0\n15,0,6,0,75,0,47,0,57,0,19,0\n81,0,66,0,51,0,35,0,48,0,74,0\n11,0,83,0,46,0,37,0,32,0,65,0\n24,0,84,0,61,0,7,0,50,0,71,0\n29,0,91,0,60,0,73,0,28,0,27,0\n17,0,82,0,93,0,88,0,9,0,55,0\n52,0,90,0,22,0,54,0,4,0,68,0\n67,0,12,0,42,0,25,0,59,0,43,0\n58,0,86,0,45,0,44,0,85,0,33,0\n80,0,18,0,41,0,72,0,51,0,26,0\n15,0,31,0,39,0,35,0,63,0,11,0\n7,0,64,0,32,0,53,0,69,0,75,0\n38,0,37,0,28,0,19,0,30,0,24,0\n21,0,9,0,87,0,46,0,77,0,74,0\n2,0,83,0,5,0,17,0,3,0,78,0\n70,0,16,0,65,0,50,0,59,0,93,0\n22,0,8,0,76,0,33,0,73,0,56,0\n10,0,36,0,88,0,66,0,58,0,52,0\n72,0,92,0,54,0,12,0,45,0,91,0\n13,0,67,0,14,0,18,0,71,0,1,0\n48,0,85,0,34,0,23,0,40,0,6,0\n60,0,47,0,61,0,62,0,82,0,68,0\n90,0,89,0,55,0,29,0,80,0,42,0\n44,0,79,0,43,0,27,0,81,0,4,0\n25,0,57,0,20,0,49,0,86,0,84,0\n"
  },
  {
    "path": "schedules/93_5.csv",
    "content": "7,0,54,0,87,0,37,0,93,0,46,0\n20,0,40,0,39,0,67,0,52,0,18,0\n86,0,45,0,78,0,36,0,9,0,5,0\n4,0,84,0,15,0,57,0,53,0,6,0\n76,0,2,0,48,0,17,0,55,0,50,0\n61,0,14,0,10,0,42,0,60,0,71,0\n63,0,77,0,35,0,82,0,56,0,44,0\n75,0,62,0,28,0,49,0,91,0,90,0\n58,0,41,0,12,0,8,0,25,0,30,0\n26,0,59,0,73,0,79,0,34,0,68,0\n31,0,72,0,23,0,22,0,29,0,85,0\n43,0,89,0,21,0,13,0,88,0,81,0\n32,0,70,0,51,0,65,0,33,0,66,0\n3,0,16,0,38,0,69,0,11,0,92,0\n47,0,27,0,19,0,1,0,83,0,74,0\n24,0,80,0,9,0,64,0,28,0,6,0\n2,0,45,0,18,0,53,0,62,0,14,0\n49,0,58,0,15,0,52,0,37,0,61,0\n5,0,75,0,42,0,7,0,12,0,17,0\n77,0,57,0,68,0,48,0,72,0,54,0\n40,0,13,0,25,0,33,0,26,0,4,0\n51,0,84,0,81,0,34,0,78,0,22,0\n74,0,50,0,16,0,88,0,85,0,87,0\n19,0,31,0,90,0,32,0,46,0,43,0\n63,0,91,0,59,0,24,0,47,0,38,0\n36,0,27,0,30,0,89,0,3,0,73,0\n92,0,64,0,44,0,76,0,93,0,21,0\n65,0,69,0,1,0,10,0,23,0,56,0\n67,0,41,0,60,0,35,0,29,0,70,0\n66,0,79,0,71,0,55,0,83,0,39,0\n82,0,11,0,80,0,86,0,20,0,8,0\n90,1,54,0,45,0,34,1,4,0,52,0\n63,1,13,0,32,0,58,0,18,0,74,0\n88,0,51,0,37,0,25,0,91,0,77,0\n44,0,38,0,68,0,7,0,43,0,27,0\n1,0,5,0,50,0,3,0,72,0,15,0\n6,0,89,0,16,0,60,0,40,0,65,0\n61,0,78,0,85,0,70,0,69,0,26,0\n9,0,47,0,55,0,22,0,21,0,30,0\n87,0,10,0,84,0,39,0,75,0,11,0\n59,0,81,0,49,0,42,0,83,0,23,0\n28,0,36,0,48,0,82,0,19,0,41,0\n57,0,93,0,71,0,2,0,24,0,35,0\n92,0,17,0,66,0,14,0,8,0,31,0\n33,0,20,0,53,0,46,0,29,0,56,0\n80,0,76,0,73,0,62,0,12,0,67,0\n64,0,86,0,58,0,79,0,85,0,89,0\n63,0,26,0,37,0,50,0,65,0,39,0\n75,0,52,0,88,0,9,0,1,0,38,0\n82,0,81,0,6,0,32,0,61,0,91,0\n21,0,27,0,42,0,90,0,57,0,25,0\n8,0,60,0,43,0,47,0,78,0,18,0\n5,0,22,0,53,0,48,0,10,0,70,0\n67,0,55,0,92,0,4,0,19,0,24,0\n23,0,13,0,93,0,79,0,15,0,62,0\n14,0,46,0,68,0,11,0,35,0,28,0\n72,0,56,0,7,0,41,0,51,0,73,0\n49,0,3,0,12,0,66,0,20,0,84,0\n2,0,74,0,34,0,33,0,80,0,36,0\n76,0,31,0,69,0,59,0,77,0,87,0\n29,0,83,0,17,0,40,0,45,0,64,0\n30,0,54,0,71,0,16,0,44,0,86,0\n6,0,62,0,78,0,63,0,42,0,1,0\n52,0,92,0,53,0,27,0,28,0,81,0\n8,0,35,0,22,0,39,0,7,0,90,0\n55,0,46,0,15,0,26,0,12,0,51,0\n89,0,70,0,93,0,14,0,25,0,47,0\n50,0,67,0,82,0,31,0,58,0,10,0\n91,0,19,0,9,0,57,0,56,0,13,0\n83,0,76,0,34,0,5,0,65,0,20,0\n86,0,17,0,3,0,32,0,68,0,23,0\n24,0,66,0,11,0,43,0,73,0,54,0\n18,0,16,0,33,0,61,0,41,0,21,0\n60,0,72,0,4,0,74,0,49,0,30,0\n44,0,2,0,88,0,84,0,29,0,59,0\n38,0,77,0,85,0,80,0,45,0,71,0\n40,0,79,0,36,0,75,0,69,0,37,0\n64,0,48,0,90,0,87,0,34,0,63,0\n"
  },
  {
    "path": "schedules/93_6.csv",
    "content": "29,0,56,0,72,0,12,0,90,0,57,0\n6,0,82,0,83,0,3,0,33,0,23,0\n45,0,51,0,37,0,77,0,44,0,86,0\n58,0,28,0,79,0,89,0,35,0,20,0\n13,0,24,0,62,0,65,0,93,0,46,0\n9,0,76,0,7,0,59,0,2,0,69,0\n17,0,55,0,14,0,60,0,61,0,38,0\n41,0,80,0,5,0,91,0,19,0,32,0\n84,0,22,0,53,0,73,0,15,0,30,0\n4,0,8,0,74,0,34,0,78,0,48,0\n1,0,39,0,88,0,67,0,87,0,68,0\n36,0,92,0,31,0,21,0,18,0,11,0\n81,0,47,0,49,0,16,0,64,0,27,0\n42,0,54,0,52,0,85,0,26,0,40,0\n70,0,10,0,25,0,50,0,63,0,43,0\n66,0,75,0,61,0,71,0,82,0,62,0\n13,0,41,0,76,0,84,0,29,0,58,0\n86,0,69,0,93,0,22,0,90,0,79,0\n7,0,23,0,53,0,56,0,8,0,55,0\n87,0,19,0,48,0,51,0,46,0,6,0\n3,0,32,0,35,0,39,0,81,0,45,0\n80,0,34,0,65,0,12,0,92,0,28,0\n10,0,73,0,16,0,20,0,17,0,52,0\n83,0,25,0,67,0,54,0,14,0,2,0\n72,0,44,0,70,0,5,0,42,0,1,0\n30,0,57,0,60,0,24,0,75,0,21,0\n18,0,43,0,15,0,9,0,74,0,47,0\n37,0,91,0,63,0,38,0,71,0,4,0\n59,0,50,0,85,0,11,0,49,0,66,0\n27,0,31,0,78,0,33,0,68,0,26,0\n77,0,64,0,36,0,40,0,89,0,88,0\n55,0,82,0,67,0,13,0,19,0,69,0\n62,0,17,0,6,0,84,0,2,0,34,0\n54,0,7,0,58,0,39,0,30,0,48,0\n45,0,20,0,41,0,70,0,75,0,47,0\n51,0,35,0,18,0,25,0,12,0,1,0\n42,0,61,0,79,0,91,0,81,0,57,0\n38,0,8,0,92,0,32,0,73,0,83,0\n77,0,87,0,49,0,21,0,65,0,4,0\n93,0,15,0,3,0,40,0,10,0,80,0\n26,0,89,0,16,0,22,0,59,0,5,0\n88,0,66,0,29,0,43,0,27,0,28,0\n23,0,74,0,71,0,31,0,90,0,24,0\n53,0,37,0,33,0,64,0,52,0,50,0\n56,0,46,0,11,0,9,0,68,0,44,0\n78,0,36,0,86,0,76,0,14,0,63,0\n60,0,85,0,8,0,72,0,77,0,47,0\n42,0,21,0,45,0,80,0,7,0,38,0\n32,0,49,0,57,0,69,0,54,0,51,0\n22,0,3,0,91,0,18,0,70,0,17,0\n24,0,89,0,19,0,92,0,27,0,84,0\n83,0,58,0,52,0,1,0,4,0,31,0\n50,0,65,0,55,0,26,0,35,0,74,0\n93,0,25,0,28,0,73,0,68,0,82,0\n59,0,15,0,63,0,20,0,87,0,23,0\n10,0,48,0,44,0,36,0,41,0,62,0\n34,0,13,0,61,0,9,0,88,0,86,0\n75,0,76,0,72,0,6,0,64,0,11,0\n29,0,2,0,71,0,53,0,60,0,79,0\n46,0,39,0,90,0,5,0,43,0,78,0\n12,0,14,0,30,0,37,0,16,0,85,0\n67,0,33,0,40,0,81,0,56,0,66,0\n21,0,32,0,28,0,47,0,1,0,50,0\n84,0,20,0,68,0,7,0,36,0,74,0\n4,0,27,0,54,0,23,0,35,0,10,0\n61,0,89,0,48,0,72,0,45,0,93,0\n3,0,42,0,64,0,2,0,13,0,8,0\n46,0,69,0,26,0,25,0,58,0,17,0\n88,0,12,0,52,0,82,0,15,0,76,0\n65,0,66,0,90,0,63,0,6,0,60,0\n11,0,40,0,79,0,37,0,70,0,39,0\n77,0,16,0,38,0,31,0,19,0,56,0\n71,0,85,0,51,0,41,0,22,0,55,0\n87,0,78,0,9,0,83,0,24,0,80,0\n75,0,18,0,81,0,86,0,5,0,29,0\n92,0,67,0,91,0,30,0,62,0,59,0\n14,0,43,0,44,0,57,0,53,0,34,0\n33,0,73,0,46,0,49,0,74,0,89,0\n45,0,12,0,84,0,66,0,10,0,79,0\n50,0,36,0,6,0,13,0,54,0,15,0\n60,0,93,0,88,0,58,0,23,0,42,0\n20,0,37,0,80,0,76,0,61,0,31,0\n4,0,68,0,32,0,86,0,85,0,17,0\n8,0,22,0,65,0,27,0,75,0,67,0\n39,0,24,0,53,0,38,0,28,0,18,0\n26,0,73,0,7,0,91,0,29,0,64,0\n1,0,9,0,16,0,57,0,48,0,92,0\n25,0,40,0,71,0,49,0,19,0,78,0\n44,0,47,0,87,0,3,0,55,0,90,0\n30,0,69,0,34,0,56,0,83,0,63,0\n81,0,51,0,82,0,14,0,70,0,59,0\n43,0,2,0,21,0,41,0,52,0,72,0\n5,0,62,0,77,0,35,0,11,0,33,0\n"
  },
  {
    "path": "schedules/93_7.csv",
    "content": "18,0,63,0,6,0,78,0,12,0,32,0\n2,0,47,0,77,0,4,0,64,0,24,0\n66,0,31,0,76,0,87,0,82,0,53,0\n49,0,55,0,16,0,69,0,80,0,60,0\n61,0,68,0,35,0,17,0,39,0,10,0\n36,0,54,0,72,0,30,0,70,0,89,0\n90,0,48,0,81,0,38,0,7,0,71,0\n33,0,21,0,65,0,83,0,26,0,52,0\n91,0,3,0,20,0,75,0,27,0,92,0\n34,0,44,0,51,0,46,0,56,0,73,0\n9,0,85,0,37,0,93,0,84,0,25,0\n13,0,19,0,5,0,15,0,57,0,41,0\n86,0,28,0,11,0,58,0,62,0,14,0\n42,0,67,0,50,0,22,0,59,0,43,0\n1,0,8,0,88,0,40,0,74,0,79,0\n23,0,45,0,36,0,29,0,2,0,48,0\n80,0,26,0,54,0,20,0,6,0,7,0\n69,0,30,0,32,0,76,0,47,0,73,0\n53,0,34,0,61,0,52,0,49,0,9,0\n12,0,60,0,3,0,84,0,4,0,44,0\n70,0,65,0,39,0,56,0,13,0,58,0\n63,0,89,0,33,0,41,0,92,0,50,0\n88,0,14,0,87,0,67,0,91,0,83,0\n81,0,31,0,24,0,21,0,51,0,8,0\n85,0,17,0,74,0,77,0,15,0,71,0\n25,0,1,0,46,0,22,0,28,0,75,0\n90,0,19,0,29,0,11,0,40,0,42,0\n38,0,66,0,5,0,68,0,18,0,72,0\n43,0,62,0,93,0,16,0,45,0,82,0\n64,0,59,0,35,0,55,0,79,0,23,0\n37,0,27,0,57,0,10,0,78,0,86,0\n81,1,33,0,12,0,36,1,39,0,80,0\n91,1,48,0,13,0,76,0,44,0,21,0\n17,0,75,0,32,0,54,0,67,0,8,0\n77,0,19,0,60,0,20,0,30,0,87,0\n73,0,24,0,90,0,66,0,1,0,41,0\n93,0,70,0,28,0,50,0,88,0,34,0\n62,0,18,0,35,0,31,0,9,0,65,0\n6,0,43,0,49,0,14,0,89,0,5,0\n15,0,7,0,16,0,2,0,61,0,79,0\n58,0,64,0,82,0,10,0,83,0,42,0\n56,0,92,0,84,0,11,0,45,0,72,0\n71,0,51,0,47,0,29,0,59,0,37,0\n57,0,69,0,38,0,85,0,23,0,22,0\n52,0,27,0,68,0,74,0,63,0,46,0\n78,0,55,0,25,0,26,0,40,0,4,0\n3,0,86,0,19,0,53,0,21,0,17,0\n62,0,39,0,89,0,90,0,34,0,76,0\n49,0,32,0,65,0,44,0,88,0,20,0\n16,0,8,0,73,0,84,0,18,0,13,0\n50,0,60,0,58,0,35,0,47,0,5,0\n36,0,15,0,56,0,69,0,43,0,28,0\n67,0,2,0,37,0,52,0,38,0,6,0\n33,0,46,0,7,0,57,0,24,0,55,0\n29,0,30,0,91,0,93,0,1,0,63,0\n10,0,66,0,40,0,12,0,59,0,54,0\n75,0,41,0,61,0,70,0,31,0,77,0\n71,0,23,0,4,0,83,0,68,0,11,0\n64,0,74,0,51,0,45,0,25,0,3,0\n72,0,53,0,80,0,14,0,78,0,42,0\n9,0,86,0,22,0,87,0,48,0,92,0\n82,0,81,0,85,0,79,0,27,0,26,0\n35,0,76,0,67,0,57,0,49,0,29,0\n55,0,30,0,34,0,65,0,6,0,66,0\n28,0,16,0,10,0,47,0,89,0,20,0\n77,0,59,0,11,0,46,0,18,0,91,0\n15,0,88,0,54,0,3,0,37,0,33,0\n78,0,17,0,1,0,2,0,51,0,50,0\n23,0,25,0,87,0,61,0,72,0,73,0\n74,0,60,0,83,0,92,0,81,0,53,0\n4,0,58,0,27,0,36,0,38,0,93,0\n63,0,86,0,45,0,13,0,90,0,31,0\n71,0,79,0,69,0,9,0,39,0,42,0\n48,0,43,0,26,0,41,0,8,0,12,0\n84,0,40,0,70,0,22,0,32,0,68,0\n64,0,52,0,7,0,56,0,5,0,62,0\n75,0,44,0,14,0,19,0,24,0,82,0\n85,0,21,0,29,0,80,0,34,0,92,0\n83,0,38,0,78,0,77,0,73,0,89,0\n17,0,6,0,13,0,88,0,81,0,23,0\n1,0,31,0,3,0,16,0,57,0,59,0\n72,0,79,0,10,0,63,0,51,0,49,0\n46,0,71,0,41,0,67,0,20,0,58,0\n39,0,87,0,55,0,43,0,84,0,74,0\n52,0,4,0,54,0,19,0,35,0,48,0\n93,0,18,0,47,0,21,0,22,0,56,0\n69,0,82,0,12,0,70,0,25,0,86,0\n75,0,11,0,2,0,85,0,5,0,76,0\n14,0,8,0,65,0,7,0,68,0,36,0\n42,0,26,0,24,0,91,0,37,0,60,0\n45,0,28,0,32,0,33,0,9,0,66,0\n50,0,40,0,62,0,53,0,27,0,15,0\n30,0,90,0,44,0,80,0,61,0,64,0\n74,0,22,0,29,0,13,0,4,0,72,0\n79,0,67,0,34,0,78,0,19,0,31,0\n58,0,73,0,2,0,81,0,55,0,3,0\n76,0,70,0,52,0,14,0,71,0,1,0\n20,0,43,0,83,0,86,0,24,0,85,0\n36,0,63,0,9,0,16,0,88,0,26,0\n17,0,89,0,57,0,91,0,65,0,40,0\n15,0,39,0,66,0,46,0,93,0,8,0\n6,0,59,0,92,0,62,0,69,0,68,0\n7,0,53,0,25,0,77,0,32,0,35,0\n11,0,44,0,38,0,54,0,47,0,87,0\n27,0,42,0,5,0,48,0,61,0,28,0\n56,0,23,0,80,0,50,0,10,0,75,0\n82,0,18,0,51,0,60,0,33,0,90,0\n37,0,21,0,12,0,45,0,49,0,30,0\n84,0,41,0,81,0,64,0,36,0,91,0\n"
  },
  {
    "path": "schedules/93_8.csv",
    "content": "88,0,39,0,61,0,25,0,37,0,46,0\n20,0,28,0,69,0,5,0,35,0,42,0\n50,0,4,0,26,0,62,0,84,0,71,0\n93,0,87,0,10,0,86,0,48,0,63,0\n19,0,81,0,14,0,68,0,3,0,79,0\n76,0,31,0,32,0,18,0,57,0,40,0\n13,0,92,0,73,0,9,0,11,0,78,0\n54,0,43,0,59,0,12,0,56,0,90,0\n70,0,29,0,8,0,47,0,17,0,60,0\n52,0,72,0,21,0,66,0,89,0,2,0\n27,0,75,0,91,0,6,0,74,0,22,0\n55,0,7,0,16,0,80,0,36,0,49,0\n45,0,44,0,83,0,23,0,64,0,24,0\n67,0,85,0,1,0,77,0,30,0,53,0\n65,0,82,0,41,0,51,0,38,0,15,0\n58,0,34,0,42,0,33,0,31,0,73,0\n78,0,57,0,81,0,62,0,54,0,93,0\n46,0,10,0,2,0,29,0,3,0,76,0\n79,0,40,0,92,0,63,0,25,0,72,0\n91,0,55,0,26,0,59,0,28,0,11,0\n83,0,89,0,69,0,18,0,68,0,39,0\n37,0,17,0,5,0,27,0,14,0,13,0\n65,0,56,0,36,0,20,0,4,0,32,0\n16,0,74,0,41,0,19,0,52,0,67,0\n38,0,30,0,35,0,12,0,33,0,8,0\n9,0,84,0,58,0,61,0,7,0,60,0\n1,0,24,0,75,0,51,0,49,0,71,0\n43,0,34,0,64,0,70,0,85,0,48,0\n87,0,82,0,53,0,45,0,22,0,21,0\n50,0,44,0,86,0,77,0,47,0,90,0\n15,0,23,0,88,0,6,0,80,0,66,0\n31,0,16,0,65,0,2,0,63,0,14,0\n38,0,92,0,28,0,4,0,10,0,83,0\n39,0,12,0,40,0,7,0,11,0,20,0\n9,0,30,0,41,0,59,0,29,0,89,0\n3,0,67,0,32,0,24,0,43,0,17,0\n85,0,81,0,87,0,13,0,71,0,69,0\n77,0,49,0,61,0,62,0,21,0,34,0\n64,0,74,0,72,0,53,0,8,0,90,0\n18,0,47,0,35,0,93,0,88,0,45,0\n51,0,66,0,27,0,19,0,42,0,60,0\n80,0,37,0,54,0,82,0,91,0,84,0\n23,0,73,0,48,0,57,0,55,0,50,0\n75,0,26,0,70,0,76,0,56,0,52,0\n79,0,78,0,15,0,46,0,1,0,44,0\n25,0,5,0,86,0,6,0,36,0,33,0\n22,0,68,0,30,0,58,0,65,0,17,0\n7,0,74,0,29,0,85,0,92,0,88,0\n43,0,53,0,47,0,66,0,41,0,71,0\n80,0,62,0,59,0,19,0,32,0,72,0\n93,0,38,0,24,0,73,0,39,0,91,0\n11,0,90,0,21,0,23,0,37,0,75,0\n34,0,54,0,18,0,50,0,27,0,8,0\n4,0,64,0,69,0,31,0,3,0,1,0\n14,0,60,0,26,0,67,0,89,0,25,0\n44,0,10,0,33,0,16,0,70,0,22,0\n87,0,52,0,79,0,58,0,5,0,77,0\n28,0,13,0,76,0,15,0,48,0,61,0\n35,0,2,0,83,0,49,0,82,0,81,0\n6,0,20,0,46,0,68,0,51,0,57,0\n42,0,9,0,56,0,55,0,86,0,40,0\n84,0,12,0,63,0,78,0,36,0,45,0\n8,0,62,0,39,0,66,0,31,0,92,0\n72,0,4,0,18,0,60,0,44,0,41,0\n65,0,33,0,79,0,67,0,64,0,75,0\n37,0,69,0,73,0,47,0,16,0,30,0\n13,0,38,0,22,0,43,0,89,0,50,0\n7,0,6,0,77,0,48,0,14,0,54,0\n25,0,55,0,52,0,15,0,81,0,10,0\n59,0,36,0,93,0,61,0,51,0,23,0\n58,0,56,0,63,0,49,0,29,0,57,0\n2,0,1,0,17,0,74,0,9,0,87,0\n32,0,5,0,78,0,82,0,26,0,90,0\n40,0,85,0,84,0,24,0,27,0,35,0\n88,0,34,0,3,0,12,0,86,0,28,0\n45,0,71,0,80,0,76,0,42,0,68,0\n19,0,70,0,11,0,83,0,53,0,46,0\n20,0,21,0,13,0,91,0,18,0,67,0\n33,0,41,0,14,0,92,0,61,0,56,0\n15,0,57,0,39,0,77,0,60,0,16,0\n89,0,49,0,4,0,73,0,87,0,90,0\n78,0,66,0,55,0,58,0,74,0,69,0\n22,0,28,0,23,0,84,0,79,0,8,0\n51,0,86,0,81,0,26,0,43,0,72,0\n12,0,46,0,75,0,50,0,31,0,85,0\n88,0,71,0,36,0,38,0,11,0,48,0\n53,0,10,0,37,0,65,0,24,0,42,0\n93,0,3,0,9,0,70,0,82,0,20,0\n68,0,47,0,52,0,32,0,64,0,27,0\n45,0,54,0,2,0,40,0,19,0,30,0\n35,0,29,0,1,0,34,0,80,0,25,0\n21,0,63,0,59,0,83,0,17,0,6,0\n91,0,62,0,76,0,7,0,5,0,44,0\n48,0,56,0,89,0,16,0,84,0,46,0\n23,0,14,0,58,0,12,0,18,0,10,0\n57,0,82,0,42,0,79,0,74,0,13,0\n67,0,31,0,49,0,70,0,38,0,68,0\n55,0,92,0,32,0,75,0,87,0,45,0\n19,0,85,0,22,0,36,0,9,0,26,0\n77,0,51,0,40,0,29,0,28,0,37,0\n6,0,8,0,61,0,4,0,24,0,78,0\n90,0,88,0,17,0,91,0,41,0,69,0\n63,0,80,0,50,0,64,0,81,0,30,0\n33,0,71,0,21,0,7,0,15,0,93,0\n35,0,60,0,62,0,11,0,52,0,3,0\n86,0,2,0,27,0,39,0,59,0,53,0\n25,0,20,0,44,0,66,0,54,0,73,0\n83,0,65,0,47,0,76,0,72,0,34,0\n43,0,1,0,8,0,5,0,10,0,45,0\n48,0,68,0,75,0,4,0,40,0,82,0\n78,0,30,0,87,0,18,0,28,0,56,0\n7,0,32,0,46,0,13,0,41,0,23,0\n92,0,70,0,57,0,37,0,35,0,89,0\n91,0,49,0,53,0,14,0,9,0,50,0\n27,0,58,0,26,0,88,0,16,0,20,0\n12,0,64,0,73,0,22,0,62,0,51,0\n66,0,76,0,59,0,1,0,33,0,81,0\n61,0,71,0,90,0,2,0,55,0,67,0\n24,0,86,0,60,0,80,0,79,0,21,0\n15,0,47,0,3,0,63,0,5,0,85,0\n11,0,77,0,25,0,43,0,74,0,65,0\n38,0,6,0,44,0,69,0,19,0,34,0\n84,0,29,0,31,0,83,0,52,0,93,0\n72,0,54,0,17,0,39,0,36,0,42,0\n"
  },
  {
    "path": "schedules/93_9.csv",
    "content": "17,0,21,0,1,0,40,0,35,0,74,0\n22,0,60,0,68,0,76,0,5,0,71,0\n92,0,52,0,18,0,19,0,26,0,89,0\n83,0,56,0,13,0,79,0,14,0,7,0\n44,0,48,0,69,0,82,0,67,0,34,0\n62,0,3,0,86,0,45,0,75,0,4,0\n57,0,29,0,20,0,15,0,58,0,9,0\n11,0,10,0,24,0,73,0,65,0,41,0\n2,0,93,0,87,0,32,0,59,0,6,0\n63,0,28,0,30,0,64,0,43,0,50,0\n66,0,55,0,85,0,88,0,53,0,47,0\n61,0,81,0,70,0,54,0,12,0,16,0\n8,0,49,0,80,0,36,0,46,0,72,0\n84,0,77,0,39,0,51,0,90,0,27,0\n37,0,25,0,33,0,23,0,91,0,78,0\n31,0,44,0,45,0,38,0,42,0,79,0\n48,0,20,0,56,0,17,0,24,0,5,0\n86,0,93,0,82,0,52,0,65,0,64,0\n28,0,57,0,6,0,21,0,13,0,88,0\n4,0,1,0,87,0,55,0,9,0,12,0\n18,0,34,0,80,0,15,0,47,0,75,0\n76,0,30,0,49,0,14,0,3,0,59,0\n40,0,39,0,26,0,10,0,25,0,71,0\n92,0,36,0,66,0,51,0,33,0,54,0\n63,0,27,0,67,0,81,0,35,0,38,0\n37,0,7,0,43,0,70,0,11,0,60,0\n23,0,31,0,32,0,85,0,16,0,69,0\n91,0,90,0,50,0,19,0,72,0,74,0\n68,0,78,0,73,0,2,0,58,0,84,0\n83,0,8,0,77,0,29,0,61,0,53,0\n62,0,89,0,22,0,41,0,46,0,42,0\n10,1,20,0,33,0,59,1,34,0,64,0\n48,1,57,0,36,0,79,0,39,0,1,0\n15,0,43,0,51,0,4,0,71,0,35,0\n16,0,24,0,66,0,28,0,49,0,67,0\n52,0,6,0,7,0,81,0,75,0,25,0\n31,0,87,0,19,0,3,0,47,0,37,0\n38,0,76,0,72,0,82,0,29,0,78,0\n17,0,22,0,30,0,69,0,55,0,77,0\n27,0,42,0,74,0,80,0,13,0,11,0\n32,0,86,0,12,0,40,0,58,0,56,0\n9,0,18,0,65,0,53,0,62,0,21,0\n73,0,61,0,89,0,91,0,45,0,5,0\n2,0,50,0,60,0,23,0,54,0,88,0\n85,0,84,0,41,0,63,0,44,0,92,0\n26,0,14,0,70,0,8,0,93,0,90,0\n46,0,83,0,67,0,68,0,19,0,64,0\n72,0,34,0,39,0,31,0,7,0,30,0\n78,0,35,0,11,0,69,0,86,0,28,0\n71,0,3,0,36,0,18,0,29,0,32,0\n1,0,82,0,62,0,5,0,47,0,33,0\n42,0,51,0,59,0,25,0,53,0,60,0\n56,0,77,0,38,0,15,0,49,0,87,0\n74,0,9,0,54,0,43,0,45,0,8,0\n26,0,48,0,6,0,65,0,37,0,80,0\n23,0,79,0,40,0,92,0,68,0,75,0\n91,0,21,0,58,0,24,0,85,0,81,0\n16,0,88,0,63,0,14,0,73,0,46,0\n44,0,22,0,93,0,20,0,27,0,83,0\n2,0,4,0,90,0,61,0,41,0,13,0\n55,0,57,0,89,0,76,0,50,0,70,0\n52,0,10,0,12,0,66,0,84,0,17,0\n67,0,51,0,1,0,78,0,45,0,32,0\n82,0,30,0,26,0,9,0,23,0,56,0\n28,0,68,0,34,0,62,0,36,0,87,0\n60,0,33,0,16,0,74,0,48,0,18,0\n69,0,25,0,80,0,92,0,43,0,93,0\n5,0,7,0,41,0,53,0,54,0,15,0\n4,0,64,0,29,0,44,0,37,0,40,0\n46,0,59,0,12,0,77,0,91,0,31,0\n79,0,66,0,11,0,21,0,20,0,63,0\n65,0,38,0,88,0,84,0,19,0,61,0\n47,0,13,0,39,0,76,0,52,0,73,0\n58,0,8,0,24,0,6,0,55,0,71,0\n70,0,86,0,17,0,72,0,2,0,27,0\n14,0,35,0,75,0,85,0,57,0,22,0\n3,0,89,0,81,0,83,0,10,0,90,0\n50,0,49,0,92,0,42,0,48,0,4,0\n29,0,45,0,59,0,63,0,56,0,34,0\n37,0,16,0,21,0,36,0,93,0,30,0\n38,0,41,0,91,0,43,0,18,0,1,0\n25,0,74,0,15,0,61,0,28,0,32,0\n27,0,88,0,78,0,62,0,31,0,71,0\n79,0,73,0,67,0,77,0,70,0,6,0\n81,0,72,0,65,0,60,0,66,0,14,0\n51,0,47,0,20,0,49,0,68,0,26,0\n35,0,76,0,54,0,10,0,46,0,44,0\n11,0,84,0,82,0,40,0,8,0,75,0\n12,0,19,0,2,0,7,0,57,0,69,0\n33,0,83,0,85,0,52,0,50,0,87,0\n80,0,9,0,3,0,22,0,39,0,24,0\n42,0,5,0,90,0,55,0,23,0,86,0\n89,0,13,0,53,0,58,0,17,0,64,0\n27,0,59,0,15,0,66,0,37,0,73,0\n61,0,48,0,93,0,31,0,68,0,63,0\n1,0,70,0,92,0,20,0,46,0,28,0\n75,0,56,0,19,0,21,0,44,0,60,0\n2,0,65,0,25,0,47,0,83,0,49,0\n14,0,50,0,71,0,41,0,80,0,12,0\n62,0,76,0,74,0,67,0,7,0,26,0\n51,0,55,0,40,0,13,0,3,0,16,0\n53,0,43,0,81,0,36,0,82,0,22,0\n52,0,32,0,34,0,24,0,35,0,90,0\n64,0,9,0,10,0,85,0,6,0,78,0\n72,0,11,0,77,0,5,0,57,0,4,0\n18,0,58,0,45,0,39,0,69,0,88,0\n89,0,79,0,86,0,30,0,8,0,33,0\n87,0,84,0,29,0,54,0,91,0,42,0\n17,0,23,0,7,0,38,0,93,0,73,0\n43,0,26,0,21,0,55,0,59,0,61,0\n27,0,16,0,65,0,1,0,50,0,34,0\n35,0,3,0,6,0,92,0,82,0,20,0\n25,0,36,0,70,0,31,0,56,0,4,0\n37,0,52,0,49,0,74,0,88,0,22,0\n58,0,41,0,75,0,83,0,51,0,48,0\n84,0,64,0,69,0,81,0,62,0,79,0\n53,0,40,0,87,0,80,0,90,0,67,0\n78,0,54,0,24,0,57,0,30,0,18,0\n10,0,63,0,91,0,15,0,86,0,60,0\n46,0,5,0,66,0,39,0,2,0,29,0\n23,0,28,0,71,0,44,0,89,0,72,0\n47,0,32,0,14,0,9,0,42,0,77,0\n85,0,68,0,12,0,13,0,8,0,38,0\n19,0,45,0,17,0,76,0,33,0,11,0\n50,0,53,0,67,0,3,0,93,0,84,0\n74,0,69,0,75,0,70,0,65,0,59,0\n15,0,6,0,83,0,30,0,1,0,40,0\n56,0,43,0,10,0,16,0,2,0,62,0\n21,0,73,0,31,0,29,0,86,0,51,0\n90,0,9,0,49,0,7,0,71,0,63,0\n48,0,35,0,12,0,88,0,89,0,25,0\n64,0,92,0,55,0,39,0,91,0,11,0\n61,0,42,0,18,0,85,0,37,0,72,0\n4,0,54,0,82,0,68,0,80,0,17,0\n46,0,13,0,60,0,87,0,24,0,45,0\n36,0,77,0,14,0,78,0,52,0,20,0\n19,0,5,0,28,0,27,0,58,0,79,0\n57,0,32,0,44,0,81,0,26,0,33,0\n8,0,41,0,23,0,34,0,66,0,76,0\n38,0,47,0,59,0,22,0,10,0,48,0\n"
  },
  {
    "path": "schedules/94_1.csv",
    "content": "28,0,62,0,32,0,26,0,88,0,39,0\n89,0,81,0,25,0,37,0,5,0,54,0\n82,0,57,0,31,0,67,0,56,0,94,0\n53,0,47,0,60,0,80,0,43,0,17,0\n18,0,75,0,55,0,63,0,72,0,3,0\n86,0,13,0,41,0,83,0,73,0,76,0\n91,0,8,0,9,0,1,0,35,0,78,0\n29,0,49,0,71,0,51,0,22,0,42,0\n44,0,59,0,85,0,21,0,45,0,65,0\n40,0,87,0,92,0,14,0,50,0,48,0\n70,0,52,0,20,0,61,0,90,0,23,0\n46,0,93,0,74,0,15,0,6,0,10,0\n30,0,2,0,4,0,24,0,7,0,64,0\n68,0,12,0,34,0,69,0,84,0,19,0\n36,0,11,0,27,0,66,0,58,0,33,0\n79,0,77,0,8,1,38,0,16,0,49,1\n"
  },
  {
    "path": "schedules/94_10.csv",
    "content": "38,0,50,0,72,0,54,0,6,0,46,0\n76,0,61,0,3,0,23,0,77,0,49,0\n70,0,78,0,4,0,80,0,62,0,5,0\n37,0,16,0,79,0,53,0,7,0,51,0\n81,0,1,0,45,0,74,0,40,0,15,0\n66,0,29,0,87,0,69,0,90,0,60,0\n14,0,85,0,59,0,28,0,88,0,22,0\n13,0,44,0,31,0,2,0,24,0,83,0\n84,0,36,0,39,0,12,0,26,0,92,0\n35,0,11,0,34,0,32,0,58,0,19,0\n64,0,94,0,43,0,93,0,20,0,17,0\n56,0,9,0,18,0,89,0,10,0,47,0\n75,0,57,0,52,0,68,0,65,0,21,0\n86,0,8,0,25,0,82,0,63,0,27,0\n73,0,55,0,41,0,48,0,42,0,30,0\n91,0,67,0,90,0,33,0,71,0,38,0\n62,0,22,0,83,0,23,0,84,0,51,0\n50,0,5,0,7,0,26,0,19,0,87,0\n20,0,77,0,24,0,53,0,59,0,45,0\n56,0,32,0,92,0,93,0,13,0,29,0\n9,0,79,0,28,0,78,0,66,0,74,0\n34,0,69,0,63,0,4,0,14,0,54,0\n35,0,10,0,43,0,15,0,81,0,6,0\n85,0,27,0,40,0,21,0,41,0,94,0\n16,0,2,0,57,0,48,0,25,0,12,0\n30,0,36,0,18,0,80,0,75,0,82,0\n91,0,88,0,86,0,60,0,17,0,37,0\n49,0,33,0,55,0,31,0,64,0,70,0\n3,0,89,0,11,0,44,0,71,0,68,0\n1,0,47,0,67,0,72,0,42,0,65,0\n58,0,39,0,73,0,8,0,61,0,52,0\n46,0,43,0,78,0,76,0,14,0,24,0\n57,1,84,0,54,0,87,1,85,0,20,0\n22,0,69,0,12,0,30,0,40,0,13,0\n51,0,88,0,21,0,90,0,6,0,4,0\n17,0,80,0,41,0,2,0,75,0,63,0\n10,0,66,0,23,0,34,0,7,0,94,0\n92,0,44,0,81,0,42,0,86,0,50,0\n9,0,27,0,61,0,45,0,19,0,67,0\n38,0,36,0,28,0,31,0,89,0,73,0\n29,0,64,0,16,0,62,0,39,0,15,0\n11,0,26,0,25,0,56,0,65,0,76,0\n82,0,35,0,91,0,5,0,79,0,55,0\n72,0,3,0,52,0,53,0,33,0,8,0\n59,0,18,0,93,0,1,0,83,0,37,0\n32,0,68,0,70,0,46,0,60,0,77,0\n49,0,58,0,47,0,48,0,71,0,74,0\n24,0,41,0,44,0,9,0,84,0,4,0\n69,0,45,0,89,0,75,0,43,0,7,0\n80,0,16,0,92,0,67,0,31,0,21,0\n88,0,65,0,12,0,61,0,55,0,15,0\n36,0,13,0,19,0,72,0,66,0,17,0\n20,0,86,0,56,0,35,0,52,0,87,0\n37,0,62,0,73,0,25,0,85,0,46,0\n5,0,8,0,77,0,50,0,47,0,83,0\n63,0,58,0,60,0,10,0,57,0,22,0\n40,0,82,0,29,0,53,0,71,0,54,0\n68,0,23,0,90,0,18,0,39,0,28,0\n49,0,59,0,48,0,38,0,79,0,34,0\n6,0,74,0,42,0,64,0,2,0,32,0\n30,0,78,0,81,0,27,0,11,0,33,0\n91,0,1,0,93,0,14,0,26,0,3,0\n94,0,51,0,47,0,70,0,76,0,36,0\n86,0,46,0,84,0,7,0,13,0,67,0\n43,0,60,0,44,0,8,0,55,0,19,0\n23,0,40,0,5,0,16,0,58,0,56,0\n87,0,9,0,68,0,59,0,72,0,73,0\n31,0,39,0,77,0,35,0,69,0,65,0\n20,0,42,0,4,0,66,0,49,0,11,0\n62,0,24,0,75,0,93,0,74,0,10,0\n22,0,6,0,3,0,41,0,25,0,70,0\n94,0,1,0,80,0,71,0,28,0,57,0\n85,0,17,0,12,0,45,0,90,0,79,0\n54,0,32,0,26,0,88,0,81,0,48,0\n76,0,83,0,15,0,34,0,27,0,89,0\n53,0,18,0,78,0,63,0,91,0,21,0\n37,0,92,0,52,0,30,0,38,0,64,0\n33,0,14,0,61,0,51,0,29,0,2,0\n82,0,11,0,60,0,50,0,23,0,73,0\n35,0,74,0,67,0,25,0,44,0,93,0\n36,0,55,0,10,0,1,0,68,0,86,0\n72,0,81,0,22,0,39,0,20,0,5,0\n8,0,54,0,76,0,31,0,12,0,59,0\n28,0,69,0,27,0,3,0,70,0,16,0\n47,0,79,0,62,0,32,0,41,0,52,0\n15,0,21,0,14,0,30,0,19,0,56,0\n65,0,85,0,51,0,24,0,91,0,80,0\n82,0,71,0,34,0,2,0,92,0,46,0\n53,0,84,0,89,0,64,0,66,0,61,0\n75,0,87,0,38,0,88,0,78,0,83,0\n37,0,29,0,90,0,42,0,43,0,58,0\n13,0,45,0,63,0,48,0,94,0,50,0\n49,0,6,0,57,0,7,0,9,0,33,0\n4,0,18,0,17,0,40,0,77,0,26,0\n79,0,70,0,15,0,72,0,23,0,8,0\n32,0,25,0,1,0,51,0,31,0,5,0\n61,0,93,0,34,0,21,0,86,0,47,0\n10,0,14,0,38,0,84,0,65,0,16,0\n30,0,66,0,39,0,59,0,3,0,88,0\n29,0,48,0,19,0,80,0,37,0,81,0\n50,0,85,0,71,0,9,0,43,0,36,0\n22,0,92,0,4,0,53,0,27,0,75,0\n2,0,40,0,87,0,55,0,11,0,28,0\n17,0,67,0,6,0,58,0,18,0,24,0\n45,0,57,0,44,0,49,0,73,0,91,0\n46,0,63,0,42,0,52,0,89,0,26,0\n77,0,64,0,54,0,13,0,78,0,90,0\n60,0,33,0,94,0,56,0,62,0,12,0\n82,0,68,0,74,0,76,0,69,0,20,0\n7,0,41,0,72,0,83,0,35,0,71,0\n23,0,65,0,53,0,93,0,48,0,36,0\n27,0,58,0,84,0,55,0,80,0,59,0\n79,0,88,0,18,0,92,0,11,0,43,0\n46,0,87,0,10,0,45,0,4,0,3,0\n52,0,49,0,19,0,22,0,16,0,24,0\n56,0,33,0,34,0,1,0,73,0,77,0\n50,0,89,0,20,0,12,0,37,0,70,0\n31,0,90,0,7,0,61,0,62,0,82,0\n51,0,26,0,38,0,74,0,13,0,41,0\n9,0,94,0,91,0,42,0,2,0,69,0\n21,0,60,0,25,0,81,0,83,0,64,0\n39,0,86,0,32,0,78,0,57,0,40,0\n63,0,15,0,5,0,68,0,67,0,85,0\n47,0,14,0,66,0,54,0,44,0,75,0\n28,0,8,0,35,0,30,0,17,0,29,0\n76,0,71,0,16,0,6,0,73,0,45,0\n80,0,12,0,11,0,77,0,93,0,52,0\n2,0,62,0,20,0,27,0,38,0,1,0\n31,0,3,0,19,0,94,0,84,0,18,0\n74,0,59,0,23,0,86,0,33,0,4,0\n68,0,41,0,42,0,56,0,61,0,78,0\n87,0,21,0,32,0,22,0,43,0,82,0\n25,0,50,0,66,0,58,0,91,0,15,0\n13,0,55,0,53,0,85,0,39,0,47,0\n30,0,79,0,63,0,36,0,44,0,6,0\n37,0,35,0,75,0,76,0,9,0,40,0\n29,0,83,0,67,0,49,0,26,0,10,0\n89,0,24,0,48,0,14,0,5,0,60,0\n46,0,8,0,69,0,81,0,57,0,90,0\n28,0,64,0,51,0,72,0,88,0,34,0\n54,0,65,0,7,0,17,0,70,0,92,0\n73,0,86,0,2,0,15,0,18,0,22,0\n13,0,12,0,27,0,87,0,6,0,91,0\n78,0,45,0,82,0,84,0,35,0,47,0\n61,0,71,0,10,0,25,0,79,0,20,0\n31,0,48,0,52,0,43,0,66,0,40,0\n57,0,3,0,50,0,29,0,75,0,55,0\n94,0,90,0,72,0,32,0,49,0,14,0\n64,0,65,0,80,0,9,0,46,0,23,0\n24,0,88,0,70,0,56,0,1,0,63,0\n16,0,42,0,53,0,34,0,30,0,60,0\n17,0,5,0,59,0,51,0,69,0,44,0\n36,0,8,0,74,0,37,0,21,0,11,0\n85,0,76,0,7,0,38,0,4,0,81,0\n58,0,83,0,26,0,33,0,68,0,92,0\n93,0,54,0,41,0,89,0,39,0,19,0\n62,0,77,0,57,0,28,0,67,0,87,0\n"
  },
  {
    "path": "schedules/94_11.csv",
    "content": "4,0,94,0,2,0,53,0,92,0,87,0\n78,0,74,0,46,0,85,0,37,0,38,0\n3,0,32,0,80,0,59,0,88,0,39,0\n71,0,29,0,72,0,26,0,14,0,61,0\n50,0,47,0,10,0,81,0,27,0,93,0\n86,0,58,0,16,0,55,0,5,0,45,0\n33,0,63,0,7,0,8,0,28,0,15,0\n70,0,89,0,60,0,20,0,51,0,82,0\n43,0,34,0,21,0,19,0,73,0,1,0\n62,0,9,0,75,0,64,0,57,0,31,0\n67,0,83,0,65,0,24,0,13,0,52,0\n6,0,84,0,76,0,77,0,49,0,91,0\n22,0,36,0,41,0,56,0,79,0,35,0\n30,0,42,0,17,0,54,0,12,0,40,0\n66,0,23,0,48,0,18,0,69,0,90,0\n44,0,25,0,92,0,11,0,68,0,46,0\n3,0,89,0,71,0,86,0,73,0,7,0\n28,0,20,0,74,0,16,0,61,0,62,0\n59,0,64,0,65,0,70,0,26,0,2,0\n27,0,63,0,76,0,78,0,24,0,75,0\n72,0,87,0,88,0,10,0,8,0,1,0\n14,0,41,0,91,0,50,0,55,0,67,0\n80,0,17,0,15,0,36,0,83,0,31,0\n85,0,57,0,54,0,60,0,11,0,44,0\n69,0,45,0,33,0,68,0,77,0,30,0\n18,0,52,0,81,0,51,0,19,0,42,0\n53,0,23,0,38,0,82,0,32,0,84,0\n5,0,66,0,13,0,79,0,29,0,34,0\n25,0,40,0,58,0,49,0,43,0,35,0\n39,0,94,0,37,0,21,0,47,0,56,0\n9,0,22,0,90,0,6,0,4,0,12,0\n93,0,60,0,17,0,48,0,41,0,2,0\n11,1,1,0,91,0,89,1,63,0,83,0\n18,1,33,0,92,0,88,1,86,0,85,0\n7,0,84,0,50,0,57,0,19,0,20,0\n24,0,5,0,51,0,72,0,77,0,23,0\n53,0,52,0,3,0,27,0,44,0,28,0\n62,0,14,0,80,0,34,0,37,0,42,0\n21,0,90,0,26,0,78,0,36,0,68,0\n12,0,61,0,81,0,67,0,8,0,35,0\n31,0,73,0,74,0,25,0,30,0,87,0\n43,0,13,0,47,0,16,0,4,0,59,0\n93,0,66,0,55,0,22,0,75,0,46,0\n38,0,58,0,76,0,70,0,39,0,79,0\n29,0,64,0,56,0,40,0,48,0,45,0\n82,0,15,0,54,0,94,0,6,0,10,0\n49,0,71,0,69,0,9,0,65,0,32,0\n37,0,57,0,14,0,5,0,63,0,12,0\n34,0,83,0,27,0,60,0,25,0,84,0\n51,0,74,0,86,0,43,0,41,0,53,0\n67,0,1,0,66,0,59,0,44,0,78,0\n47,0,91,0,62,0,79,0,17,0,3,0\n28,0,11,0,35,0,70,0,19,0,24,0\n39,0,77,0,15,0,26,0,92,0,48,0\n23,0,94,0,49,0,42,0,75,0,50,0\n32,0,36,0,8,0,58,0,52,0,6,0\n93,0,73,0,69,0,16,0,54,0,29,0\n13,0,20,0,31,0,76,0,33,0,10,0\n9,0,2,0,30,0,89,0,56,0,90,0\n4,0,45,0,21,0,65,0,85,0,61,0\n55,0,40,0,88,0,81,0,71,0,82,0\n18,0,68,0,64,0,22,0,87,0,38,0\n72,0,46,0,94,0,7,0,80,0,48,0\n84,0,79,0,1,0,14,0,32,0,15,0\n26,0,27,0,17,0,35,0,57,0,74,0\n73,0,28,0,92,0,67,0,23,0,47,0\n53,0,31,0,78,0,5,0,91,0,69,0\n65,0,86,0,19,0,76,0,30,0,93,0\n2,0,34,0,52,0,11,0,55,0,63,0\n24,0,38,0,29,0,81,0,41,0,33,0\n62,0,87,0,45,0,54,0,71,0,39,0\n51,0,44,0,64,0,37,0,61,0,90,0\n12,0,77,0,22,0,80,0,70,0,16,0\n8,0,46,0,18,0,50,0,3,0,43,0\n6,0,56,0,20,0,85,0,25,0,42,0\n49,0,13,0,88,0,89,0,21,0,7,0\n59,0,10,0,40,0,36,0,60,0,9,0\n68,0,66,0,58,0,83,0,82,0,72,0\n4,0,15,0,38,0,75,0,71,0,11,0\n93,0,35,0,90,0,5,0,1,0,33,0\n29,0,52,0,30,0,78,0,70,0,94,0\n32,0,54,0,18,0,27,0,92,0,31,0\n22,0,65,0,57,0,8,0,42,0,39,0\n3,0,19,0,74,0,56,0,45,0,63,0\n12,0,7,0,10,0,34,0,41,0,23,0\n53,0,13,0,60,0,77,0,64,0,58,0\n82,0,67,0,2,0,62,0,25,0,69,0\n50,0,4,0,88,0,26,0,76,0,66,0\n9,0,61,0,80,0,81,0,68,0,91,0\n46,0,87,0,40,0,21,0,51,0,16,0\n84,0,37,0,73,0,17,0,59,0,72,0\n24,0,48,0,49,0,44,0,20,0,86,0\n55,0,6,0,83,0,28,0,79,0,43,0\n85,0,36,0,47,0,75,0,89,0,14,0\n39,0,10,0,5,0,25,0,52,0,64,0\n41,0,92,0,3,0,82,0,1,0,30,0\n61,0,38,0,56,0,69,0,13,0,50,0\n23,0,60,0,71,0,8,0,74,0,21,0\n84,0,16,0,63,0,35,0,94,0,31,0\n67,0,51,0,15,0,76,0,68,0,29,0\n87,0,49,0,12,0,11,0,93,0,26,0\n86,0,66,0,37,0,6,0,27,0,40,0\n90,0,42,0,28,0,91,0,59,0,58,0\n70,0,44,0,75,0,32,0,43,0,7,0\n33,0,79,0,65,0,18,0,78,0,72,0\n24,0,55,0,17,0,89,0,80,0,4,0\n57,0,53,0,88,0,34,0,47,0,48,0\n46,0,20,0,9,0,36,0,77,0,54,0\n85,0,83,0,19,0,73,0,22,0,62,0\n14,0,81,0,66,0,2,0,45,0,49,0\n86,0,26,0,1,0,56,0,52,0,60,0\n91,0,92,0,32,0,12,0,51,0,13,0\n69,0,67,0,7,0,74,0,64,0,79,0\n6,0,16,0,39,0,33,0,75,0,17,0\n34,0,82,0,93,0,8,0,4,0,31,0\n29,0,43,0,63,0,36,0,65,0,38,0\n72,0,42,0,41,0,27,0,89,0,46,0\n30,0,20,0,14,0,28,0,22,0,88,0\n61,0,19,0,47,0,78,0,87,0,15,0\n58,0,23,0,54,0,3,0,37,0,2,0\n90,0,45,0,25,0,94,0,57,0,24,0\n59,0,81,0,48,0,76,0,5,0,85,0\n11,0,53,0,73,0,80,0,50,0,40,0\n35,0,71,0,77,0,10,0,83,0,44,0\n21,0,70,0,18,0,84,0,9,0,55,0\n68,0,56,0,27,0,62,0,88,0,65,0\n82,0,28,0,75,0,29,0,87,0,86,0\n43,0,52,0,15,0,66,0,12,0,20,0\n22,0,78,0,54,0,49,0,34,0,51,0\n2,0,1,0,85,0,24,0,16,0,7,0\n23,0,19,0,26,0,80,0,25,0,91,0\n8,0,59,0,11,0,94,0,77,0,41,0\n79,0,60,0,42,0,61,0,71,0,31,0\n64,0,3,0,6,0,21,0,93,0,14,0\n68,0,63,0,70,0,17,0,53,0,10,0\n44,0,84,0,58,0,62,0,30,0,4,0\n5,0,40,0,83,0,18,0,47,0,74,0\n48,0,50,0,89,0,67,0,32,0,33,0\n81,0,39,0,90,0,46,0,73,0,13,0\n9,0,92,0,37,0,45,0,38,0,35,0\n76,0,69,0,57,0,72,0,55,0,36,0\n94,0,34,0,87,0,65,0,20,0,91,0\n43,0,56,0,14,0,17,0,23,0,78,0\n59,0,93,0,24,0,58,0,61,0,7,0\n10,0,30,0,85,0,80,0,29,0,49,0\n26,0,62,0,63,0,6,0,41,0,18,0\n44,0,5,0,88,0,42,0,2,0,15,0\n12,0,68,0,31,0,1,0,50,0,39,0\n36,0,27,0,13,0,11,0,51,0,45,0\n25,0,71,0,33,0,53,0,22,0,37,0\n79,0,16,0,82,0,9,0,19,0,48,0\n83,0,70,0,81,0,69,0,3,0,4,0\n28,0,89,0,77,0,66,0,40,0,57,0\n32,0,76,0,35,0,46,0,47,0,60,0\n92,0,75,0,90,0,52,0,74,0,84,0\n38,0,86,0,21,0,72,0,67,0,54,0\n64,0,55,0,78,0,73,0,8,0,20,0\n39,0,91,0,36,0,24,0,30,0,18,0\n82,0,5,0,11,0,17,0,65,0,7,0\n25,0,48,0,27,0,1,0,61,0,70,0\n41,0,68,0,4,0,49,0,37,0,28,0\n31,0,43,0,89,0,26,0,81,0,22,0\n45,0,79,0,46,0,23,0,88,0,52,0\n35,0,59,0,50,0,15,0,86,0,34,0\n19,0,69,0,10,0,92,0,14,0,58,0\n74,0,44,0,72,0,93,0,9,0,13,0\n77,0,42,0,29,0,32,0,63,0,21,0\n3,0,40,0,67,0,90,0,87,0,85,0\n6,0,73,0,2,0,51,0,57,0,38,0\n62,0,55,0,33,0,94,0,60,0,12,0\n8,0,75,0,56,0,53,0,54,0,83,0\n80,0,84,0,64,0,47,0,71,0,66,0\n16,0,11,0,18,0,76,0,89,0,88,0\n"
  },
  {
    "path": "schedules/94_12.csv",
    "content": "93,0,23,0,24,0,39,0,91,0,29,0\n88,0,6,0,11,0,75,0,85,0,59,0\n10,0,62,0,20,0,70,0,14,0,40,0\n35,0,78,0,5,0,94,0,52,0,58,0\n30,0,37,0,50,0,82,0,4,0,53,0\n22,0,9,0,77,0,83,0,79,0,57,0\n1,0,28,0,90,0,54,0,15,0,2,0\n7,0,32,0,76,0,33,0,16,0,80,0\n60,0,45,0,13,0,18,0,43,0,49,0\n41,0,46,0,48,0,86,0,34,0,19,0\n3,0,55,0,72,0,12,0,25,0,71,0\n8,0,92,0,68,0,42,0,38,0,31,0\n21,0,65,0,44,0,89,0,84,0,51,0\n67,0,69,0,64,0,73,0,74,0,47,0\n61,0,87,0,26,0,17,0,63,0,81,0\n56,0,66,0,82,0,36,0,27,0,88,0\n70,0,93,0,15,0,9,0,6,0,78,0\n46,0,4,0,45,0,28,0,29,0,53,0\n24,0,75,0,77,0,54,0,16,0,19,0\n94,0,30,0,2,0,86,0,43,0,60,0\n20,0,52,0,59,0,84,0,91,0,32,0\n25,0,92,0,3,0,5,0,18,0,39,0\n33,0,74,0,50,0,87,0,21,0,51,0\n71,0,90,0,38,0,34,0,56,0,79,0\n85,0,69,0,89,0,42,0,14,0,7,0\n58,0,36,0,22,0,26,0,44,0,13,0\n11,0,61,0,80,0,73,0,65,0,66,0\n72,0,8,0,49,0,76,0,64,0,81,0\n55,0,40,0,63,0,37,0,47,0,23,0\n31,0,1,0,41,0,12,0,10,0,57,0\n27,0,62,0,48,0,83,0,17,0,67,0\n68,0,88,0,53,0,35,0,19,0,20,0\n54,0,56,0,7,0,4,0,70,0,3,0\n25,0,34,0,82,0,42,0,84,0,94,0\n86,0,73,0,14,0,38,0,18,0,77,0\n30,0,69,0,28,0,6,0,26,0,8,0\n91,0,21,0,47,0,80,0,90,0,9,0\n81,0,92,0,71,0,23,0,32,0,65,0\n89,0,55,0,17,0,13,0,41,0,33,0\n58,0,11,0,50,0,1,0,45,0,48,0\n15,0,62,0,29,0,27,0,61,0,72,0\n5,0,57,0,67,0,2,0,68,0,36,0\n49,0,10,0,52,0,24,0,37,0,22,0\n85,0,12,0,60,0,63,0,74,0,78,0\n75,0,51,0,31,0,83,0,66,0,40,0\n43,0,87,0,76,0,35,0,39,0,64,0\n93,0,16,0,59,0,44,0,46,0,79,0\n25,0,6,0,56,0,13,0,20,0,47,0\n9,0,19,0,89,0,32,0,94,0,82,0\n77,0,80,0,42,0,71,0,45,0,62,0\n11,0,30,0,33,0,49,0,57,0,29,0\n61,0,60,0,21,0,67,0,38,0,10,0\n91,0,81,0,22,0,50,0,86,0,88,0\n7,0,90,0,78,0,36,0,48,0,84,0\n51,0,16,0,15,0,58,0,8,0,34,0\n31,0,3,0,64,0,37,0,44,0,14,0\n5,0,59,0,23,0,17,0,76,0,28,0\n92,0,85,0,87,0,40,0,41,0,52,0\n4,0,2,0,69,0,79,0,75,0,93,0\n74,0,18,0,65,0,24,0,35,0,27,0\n63,0,46,0,72,0,70,0,1,0,83,0\n73,0,12,0,43,0,54,0,26,0,68,0\n55,0,39,0,78,0,53,0,66,0,77,0\n32,0,8,0,89,0,50,0,60,0,62,0\n9,0,29,0,17,0,37,0,20,0,58,0\n16,0,40,0,94,0,36,0,11,0,38,0\n10,0,84,0,19,0,64,0,4,0,13,0\n51,0,27,0,2,0,69,0,71,0,41,0\n76,0,65,0,14,0,46,0,90,0,30,0\n18,0,68,0,83,0,85,0,91,0,56,0\n28,0,70,0,55,0,88,0,80,0,24,0\n31,0,79,0,86,0,25,0,15,0,45,0\n44,0,49,0,39,0,82,0,1,0,6,0\n73,0,75,0,7,0,34,0,63,0,87,0\n33,0,59,0,54,0,92,0,35,0,67,0\n66,0,47,0,42,0,12,0,5,0,81,0\n53,0,48,0,43,0,22,0,61,0,93,0\n23,0,21,0,72,0,3,0,52,0,57,0\n26,0,83,0,38,0,74,0,76,0,71,0\n9,0,18,0,30,0,16,0,64,0,55,0\n14,0,49,0,68,0,51,0,94,0,4,0\n39,0,11,0,63,0,31,0,56,0,69,0\n85,0,79,0,1,0,37,0,73,0,84,0\n34,0,35,0,45,0,10,0,60,0,17,0\n44,0,5,0,41,0,7,0,20,0,61,0\n53,0,67,0,52,0,75,0,15,0,80,0\n92,0,72,0,29,0,78,0,28,0,21,0\n32,0,88,0,87,0,42,0,54,0,93,0\n82,0,46,0,62,0,58,0,12,0,74,0\n66,0,8,0,19,0,25,0,22,0,23,0\n36,0,65,0,50,0,43,0,77,0,47,0\n24,0,90,0,6,0,86,0,33,0,27,0\n81,0,70,0,48,0,57,0,59,0,13,0\n91,0,26,0,40,0,89,0,3,0,2,0\n39,0,28,0,68,0,72,0,16,0,60,0\n42,0,73,0,4,0,21,0,55,0,15,0\n84,0,54,0,31,0,74,0,5,0,9,0\n80,0,94,0,10,0,23,0,56,0,30,0\n19,0,14,0,36,0,8,0,87,0,11,0\n34,0,44,0,88,0,78,0,69,0,83,0\n17,0,58,0,71,0,70,0,86,0,53,0\n79,0,3,0,67,0,46,0,24,0,32,0\n81,0,7,0,52,0,25,0,1,0,93,0\n65,0,12,0,40,0,48,0,13,0,49,0\n77,0,20,0,89,0,27,0,76,0,92,0\n47,0,35,0,22,0,62,0,2,0,85,0\n45,0,41,0,64,0,75,0,82,0,90,0\n57,0,51,0,37,0,6,0,61,0,18,0\n63,0,66,0,91,0,38,0,33,0,43,0\n59,0,29,0,56,0,26,0,50,0,19,0\n68,0,32,0,17,0,44,0,10,0,74,0\n67,0,73,0,88,0,49,0,31,0,23,0\n87,0,71,0,13,0,78,0,30,0,20,0\n84,0,16,0,70,0,69,0,92,0,86,0\n85,0,93,0,58,0,64,0,77,0,21,0\n61,0,40,0,82,0,7,0,8,0,35,0\n22,0,6,0,94,0,72,0,45,0,65,0\n48,0,42,0,76,0,2,0,63,0,18,0\n79,0,52,0,50,0,27,0,12,0,28,0\n36,0,33,0,1,0,75,0,9,0,3,0\n80,0,38,0,46,0,39,0,37,0,81,0\n53,0,47,0,60,0,29,0,51,0,54,0\n24,0,41,0,66,0,14,0,26,0,15,0\n43,0,83,0,59,0,90,0,89,0,25,0\n91,0,34,0,5,0,11,0,62,0,4,0\n57,0,93,0,19,0,55,0,65,0,92,0\n13,0,86,0,85,0,76,0,67,0,72,0\n18,0,23,0,79,0,68,0,33,0,58,0\n9,0,44,0,56,0,45,0,8,0,12,0\n22,0,78,0,1,0,17,0,80,0,40,0\n70,0,37,0,36,0,42,0,60,0,41,0\n3,0,15,0,77,0,30,0,88,0,63,0\n64,0,61,0,34,0,89,0,31,0,24,0\n49,0,71,0,35,0,50,0,14,0,75,0\n38,0,27,0,47,0,59,0,4,0,87,0\n83,0,74,0,2,0,11,0,55,0,52,0\n48,0,69,0,21,0,25,0,32,0,53,0\n54,0,91,0,6,0,46,0,66,0,7,0\n26,0,84,0,90,0,57,0,62,0,39,0\n10,0,43,0,29,0,82,0,16,0,5,0\n51,0,28,0,81,0,73,0,94,0,20,0\n61,0,13,0,42,0,1,0,50,0,23,0\n86,0,75,0,78,0,89,0,37,0,68,0\n63,0,4,0,12,0,92,0,36,0,24,0\n38,0,15,0,19,0,18,0,17,0,69,0\n3,0,71,0,7,0,59,0,47,0,58,0\n34,0,27,0,32,0,55,0,85,0,26,0\n87,0,25,0,49,0,70,0,77,0,91,0\n84,0,45,0,14,0,2,0,88,0,33,0\n76,0,94,0,53,0,44,0,57,0,66,0\n67,0,60,0,90,0,82,0,22,0,11,0\n5,0,56,0,72,0,51,0,73,0,93,0\n39,0,20,0,79,0,8,0,65,0,54,0\n43,0,16,0,6,0,52,0,62,0,31,0\n41,0,83,0,35,0,81,0,21,0,30,0\n80,0,74,0,64,0,48,0,29,0,40,0\n28,0,46,0,25,0,9,0,10,0,85,0\n61,0,86,0,58,0,55,0,49,0,36,0\n68,0,76,0,69,0,82,0,24,0,3,0\n92,0,17,0,88,0,50,0,94,0,90,0\n26,0,51,0,79,0,78,0,42,0,11,0\n93,0,31,0,33,0,20,0,71,0,60,0\n37,0,66,0,16,0,45,0,83,0,87,0\n5,0,8,0,64,0,1,0,53,0,91,0\n65,0,62,0,9,0,41,0,59,0,63,0\n89,0,30,0,54,0,48,0,38,0,52,0\n29,0,35,0,32,0,70,0,22,0,73,0\n6,0,80,0,13,0,14,0,34,0,2,0\n84,0,47,0,18,0,72,0,28,0,10,0\n75,0,57,0,23,0,46,0,43,0,27,0\n44,0,81,0,4,0,40,0,77,0,67,0\n39,0,12,0,15,0,19,0,21,0,7,0\n74,0,42,0,16,0,56,0,53,0,90,0\n38,0,78,0,49,0,3,0,41,0,62,0\n29,0,1,0,86,0,87,0,69,0,65,0\n24,0,2,0,25,0,17,0,73,0,30,0\n26,0,82,0,59,0,80,0,31,0,72,0\n63,0,54,0,27,0,68,0,64,0,22,0\n55,0,60,0,75,0,48,0,91,0,44,0\n70,0,52,0,47,0,76,0,19,0,45,0\n46,0,40,0,71,0,88,0,5,0,21,0\n84,0,77,0,12,0,23,0,6,0,35,0\n57,0,14,0,58,0,28,0,32,0,56,0\n89,0,10,0,36,0,81,0,79,0,15,0\n51,0,11,0,7,0,43,0,9,0,92,0\n85,0,4,0,83,0,39,0,61,0,33,0\n94,0,37,0,13,0,93,0,74,0,8,0\n20,0,50,0,66,0,34,0,18,0,67,0\n"
  },
  {
    "path": "schedules/94_13.csv",
    "content": "6,0,35,0,7,0,24,0,55,0,82,0\n76,0,46,0,39,0,91,0,68,0,67,0\n4,0,1,0,59,0,87,0,63,0,80,0\n38,0,58,0,33,0,45,0,8,0,57,0\n20,0,64,0,77,0,50,0,16,0,65,0\n83,0,5,0,79,0,66,0,51,0,93,0\n11,0,3,0,18,0,85,0,27,0,43,0\n72,0,62,0,40,0,2,0,49,0,28,0\n42,0,69,0,17,0,74,0,71,0,25,0\n21,0,78,0,52,0,44,0,73,0,56,0\n15,0,31,0,37,0,60,0,89,0,61,0\n86,0,36,0,23,0,22,0,30,0,32,0\n34,0,54,0,94,0,92,0,84,0,29,0\n19,0,14,0,88,0,41,0,10,0,90,0\n81,0,48,0,47,0,53,0,26,0,9,0\n13,0,12,0,24,0,75,0,70,0,72,0\n65,0,51,0,68,0,57,0,66,0,69,0\n52,0,18,0,79,0,91,0,3,0,71,0\n6,0,1,0,31,0,49,0,56,0,42,0\n93,0,23,0,25,0,67,0,44,0,46,0\n15,0,54,0,38,0,30,0,59,0,85,0\n35,0,8,0,10,0,73,0,77,0,61,0\n27,0,41,0,87,0,40,0,94,0,9,0\n19,0,50,0,22,0,81,0,7,0,4,0\n48,0,2,0,63,0,37,0,70,0,34,0\n83,0,78,0,89,0,76,0,28,0,17,0\n64,0,80,0,5,0,74,0,82,0,53,0\n12,0,88,0,29,0,16,0,21,0,36,0\n90,0,32,0,55,0,13,0,75,0,92,0\n14,0,45,0,33,0,39,0,84,0,43,0\n58,0,62,0,20,0,47,0,86,0,11,0\n60,0,73,0,46,0,26,0,6,0,79,0\n34,1,93,0,8,0,66,1,15,0,1,0\n81,0,87,0,78,0,67,0,38,0,89,0\n42,0,50,0,9,0,5,0,69,0,76,0\n27,0,51,0,71,0,70,0,21,0,31,0\n28,0,35,0,25,0,3,0,37,0,65,0\n49,0,17,0,84,0,12,0,55,0,19,0\n18,0,61,0,16,0,85,0,23,0,75,0\n64,0,44,0,72,0,39,0,63,0,41,0\n86,0,7,0,26,0,68,0,29,0,13,0\n20,0,57,0,43,0,32,0,2,0,82,0\n91,0,56,0,24,0,53,0,92,0,30,0\n10,0,94,0,45,0,4,0,62,0,60,0\n59,0,88,0,74,0,47,0,22,0,58,0\n90,0,33,0,52,0,54,0,11,0,48,0\n40,0,36,0,14,0,80,0,83,0,77,0\n81,0,69,0,31,0,78,0,34,0,3,0\n29,0,23,0,35,0,15,0,87,0,39,0\n57,0,67,0,19,0,27,0,64,0,66,0\n51,0,76,0,12,0,7,0,85,0,8,0\n37,0,4,0,16,0,17,0,6,0,53,0\n1,0,13,0,84,0,61,0,2,0,74,0\n75,0,58,0,46,0,41,0,71,0,56,0\n72,0,80,0,90,0,68,0,9,0,89,0\n20,0,73,0,91,0,59,0,25,0,14,0\n40,0,63,0,38,0,60,0,48,0,86,0\n10,0,82,0,92,0,50,0,18,0,21,0\n70,0,54,0,55,0,45,0,83,0,36,0\n79,0,44,0,49,0,24,0,33,0,22,0\n28,0,94,0,77,0,47,0,32,0,93,0\n5,0,30,0,65,0,26,0,11,0,43,0\n42,0,62,0,39,0,88,0,52,0,57,0\n3,0,6,0,4,0,76,0,14,0,29,0\n73,0,48,0,68,0,64,0,56,0,85,0\n81,0,2,0,80,0,51,0,18,0,58,0\n9,0,83,0,10,0,86,0,1,0,34,0\n8,0,69,0,91,0,84,0,90,0,75,0\n36,0,28,0,47,0,92,0,87,0,21,0\n63,0,25,0,30,0,94,0,16,0,55,0\n24,0,66,0,78,0,74,0,11,0,45,0\n22,0,37,0,41,0,52,0,12,0,5,0\n31,0,71,0,67,0,72,0,77,0,53,0\n32,0,40,0,46,0,35,0,19,0,54,0\n13,0,50,0,44,0,15,0,62,0,17,0\n89,0,23,0,65,0,59,0,33,0,82,0\n26,0,38,0,61,0,27,0,93,0,49,0\n7,0,70,0,43,0,20,0,88,0,79,0\n60,0,8,0,21,0,42,0,30,0,91,0\n81,0,55,0,34,0,68,0,52,0,16,0\n22,0,51,0,94,0,58,0,39,0,48,0\n9,0,41,0,11,0,84,0,4,0,36,0\n37,0,47,0,10,0,78,0,64,0,13,0\n40,0,31,0,29,0,25,0,50,0,45,0\n49,0,74,0,87,0,32,0,65,0,44,0\n71,0,57,0,86,0,5,0,59,0,6,0\n88,0,70,0,33,0,28,0,61,0,80,0\n27,0,89,0,1,0,69,0,79,0,14,0\n53,0,3,0,12,0,23,0,73,0,82,0\n62,0,18,0,26,0,56,0,19,0,83,0\n66,0,46,0,72,0,42,0,38,0,43,0\n54,0,92,0,93,0,63,0,7,0,75,0\n77,0,15,0,76,0,24,0,90,0,20,0\n85,0,35,0,2,0,17,0,60,0,67,0\n11,0,80,0,16,0,10,0,91,0,31,0\n9,0,30,0,51,0,13,0,49,0,37,0\n47,0,41,0,23,0,57,0,1,0,55,0\n50,0,56,0,79,0,59,0,36,0,8,0\n25,0,6,0,21,0,66,0,62,0,61,0\n3,0,84,0,58,0,7,0,44,0,83,0\n70,0,39,0,5,0,46,0,4,0,90,0\n68,0,22,0,17,0,38,0,93,0,87,0\n45,0,82,0,69,0,67,0,86,0,94,0\n77,0,85,0,48,0,89,0,92,0,19,0\n52,0,75,0,60,0,64,0,43,0,28,0\n15,0,2,0,53,0,42,0,27,0,78,0\n14,0,65,0,24,0,54,0,71,0,81,0\n34,0,76,0,40,0,73,0,88,0,18,0\n12,0,74,0,33,0,63,0,35,0,20,0\n26,0,29,0,17,0,32,0,72,0,1,0\n36,0,57,0,13,0,49,0,31,0,46,0\n55,0,69,0,77,0,61,0,22,0,56,0\n47,0,83,0,50,0,41,0,68,0,6,0\n45,0,5,0,2,0,44,0,19,0,91,0\n89,0,87,0,79,0,42,0,58,0,25,0\n75,0,40,0,66,0,10,0,53,0,39,0\n11,0,14,0,7,0,35,0,34,0,60,0\n37,0,81,0,82,0,8,0,88,0,27,0\n72,0,33,0,92,0,3,0,16,0,51,0\n30,0,29,0,64,0,70,0,78,0,62,0\n12,0,48,0,32,0,18,0,15,0,59,0\n28,0,73,0,52,0,24,0,4,0,38,0\n43,0,74,0,76,0,23,0,94,0,71,0\n80,0,85,0,84,0,86,0,65,0,93,0\n90,0,63,0,21,0,20,0,67,0,26,0\n54,0,91,0,39,0,9,0,81,0,77,0\n60,0,57,0,82,0,25,0,22,0,83,0\n7,0,87,0,53,0,41,0,69,0,62,0\n16,0,75,0,49,0,48,0,14,0,35,0\n30,0,45,0,27,0,5,0,47,0,72,0\n2,0,24,0,17,0,36,0,94,0,33,0\n19,0,52,0,1,0,59,0,76,0,70,0\n93,0,18,0,89,0,73,0,74,0,29,0\n26,0,56,0,28,0,10,0,23,0,84,0\n90,0,64,0,12,0,38,0,31,0,79,0\n85,0,32,0,71,0,37,0,66,0,50,0\n9,0,63,0,61,0,65,0,58,0,78,0\n6,0,8,0,92,0,68,0,40,0,11,0\n34,0,43,0,13,0,21,0,80,0,67,0\n55,0,3,0,15,0,86,0,46,0,88,0\n42,0,51,0,44,0,20,0,54,0,4,0\n59,0,39,0,27,0,24,0,16,0,62,0\n90,0,25,0,47,0,2,0,56,0,7,0\n76,0,48,0,84,0,82,0,79,0,72,0\n9,0,31,0,74,0,83,0,85,0,52,0\n60,0,10,0,71,0,29,0,81,0,49,0\n87,0,30,0,19,0,34,0,33,0,6,0\n11,0,77,0,88,0,17,0,75,0,38,0\n45,0,15,0,73,0,37,0,92,0,1,0\n63,0,57,0,18,0,13,0,53,0,28,0\n36,0,61,0,67,0,5,0,3,0,40,0\n51,0,86,0,41,0,26,0,35,0,89,0\n70,0,42,0,22,0,14,0,94,0,68,0\n43,0,78,0,91,0,55,0,93,0,50,0\n20,0,80,0,23,0,66,0,54,0,8,0\n4,0,21,0,58,0,32,0,69,0,64,0\n46,0,65,0,34,0,12,0,44,0,47,0\n73,0,7,0,71,0,33,0,15,0,9,0\n67,0,83,0,59,0,75,0,37,0,29,0\n28,0,11,0,63,0,19,0,51,0,82,0\n13,0,3,0,42,0,45,0,77,0,41,0\n89,0,53,0,70,0,39,0,50,0,49,0\n8,0,5,0,24,0,87,0,48,0,31,0\n58,0,69,0,2,0,10,0,30,0,93,0\n88,0,85,0,62,0,91,0,14,0,32,0\n4,0,68,0,64,0,12,0,1,0,43,0\n21,0,55,0,38,0,79,0,76,0,65,0\n84,0,20,0,46,0,78,0,18,0,22,0\n94,0,66,0,56,0,35,0,81,0,72,0\n57,0,74,0,16,0,40,0,54,0,26,0\n60,0,6,0,90,0,36,0,44,0,80,0\n27,0,17,0,25,0,23,0,92,0,52,0\n61,0,24,0,19,0,86,0,42,0,29,0\n11,0,82,0,93,0,39,0,71,0,13,0\n41,0,64,0,49,0,91,0,15,0,34,0\n22,0,31,0,75,0,62,0,73,0,65,0\n1,0,94,0,85,0,46,0,21,0,33,0\n32,0,74,0,70,0,38,0,10,0,3,0\n14,0,55,0,44,0,8,0,9,0,67,0\n80,0,52,0,30,0,79,0,45,0,63,0\n81,0,61,0,53,0,36,0,20,0,76,0\n51,0,17,0,59,0,43,0,40,0,90,0\n47,0,66,0,89,0,84,0,16,0,60,0\n28,0,68,0,54,0,35,0,27,0,58,0\n25,0,5,0,78,0,6,0,77,0,18,0\n86,0,92,0,83,0,12,0,87,0,2,0\n4,0,56,0,72,0,57,0,37,0,7,0\n26,0,48,0,23,0,69,0,50,0,88,0\n53,0,79,0,8,0,94,0,19,0,13,0\n67,0,65,0,15,0,10,0,52,0,51,0\n73,0,66,0,14,0,47,0,17,0,63,0\n36,0,34,0,38,0,62,0,71,0,35,0\n44,0,20,0,29,0,28,0,55,0,85,0\n49,0,33,0,68,0,75,0,21,0,5,0\n3,0,54,0,64,0,89,0,22,0,2,0\n86,0,91,0,27,0,48,0,4,0,74,0\n69,0,72,0,83,0,46,0,11,0,59,0\n32,0,16,0,39,0,80,0,78,0,7,0\n93,0,56,0,88,0,45,0,9,0,12,0\n25,0,18,0,60,0,24,0,1,0,41,0\n31,0,43,0,92,0,58,0,6,0,76,0\n37,0,42,0,84,0,23,0,40,0,81,0\n50,0,61,0,87,0,90,0,30,0,57,0\n82,0,26,0,34,0,77,0,70,0,66,0\n"
  },
  {
    "path": "schedules/94_14.csv",
    "content": "38,0,37,0,53,0,82,0,58,0,90,0\n73,0,75,0,35,0,36,0,71,0,31,0\n42,0,21,0,78,0,77,0,28,0,88,0\n62,0,51,0,26,0,46,0,32,0,22,0\n1,0,69,0,9,0,79,0,4,0,80,0\n61,0,5,0,43,0,15,0,30,0,67,0\n81,0,84,0,41,0,48,0,10,0,89,0\n6,0,85,0,66,0,23,0,92,0,91,0\n25,0,39,0,56,0,76,0,16,0,47,0\n17,0,12,0,14,0,52,0,94,0,27,0\n2,0,45,0,19,0,72,0,57,0,55,0\n70,0,44,0,93,0,63,0,83,0,24,0\n29,0,60,0,49,0,3,0,40,0,59,0\n13,0,65,0,50,0,87,0,11,0,20,0\n8,0,34,0,54,0,68,0,7,0,33,0\n86,0,74,0,38,0,18,0,64,0,43,0\n31,0,91,0,77,0,58,0,36,0,53,0\n39,0,4,0,46,0,30,0,90,0,6,0\n56,0,10,0,66,0,21,0,27,0,17,0\n94,0,48,0,79,0,45,0,44,0,22,0\n23,0,37,0,9,0,61,0,69,0,89,0\n19,0,42,0,50,0,67,0,93,0,49,0\n34,0,81,0,88,0,82,0,2,0,47,0\n24,0,54,0,84,0,86,0,26,0,11,0\n15,0,51,0,76,0,78,0,52,0,60,0\n71,0,40,0,14,0,13,0,57,0,8,0\n74,0,3,0,70,0,65,0,62,0,5,0\n18,0,32,0,75,0,41,0,55,0,63,0\n92,0,25,0,87,0,35,0,20,0,68,0\n33,0,64,0,72,0,59,0,80,0,83,0\n73,0,28,0,16,0,1,0,12,0,85,0\n29,0,86,0,17,0,7,0,50,0,88,0\n31,1,9,0,67,0,60,1,82,0,10,0\n57,1,78,0,39,0,42,1,94,0,36,0\n48,0,56,0,27,0,11,0,70,0,77,0\n71,0,15,0,32,0,24,0,58,0,66,0\n91,0,65,0,93,0,41,0,44,0,68,0\n43,0,4,0,72,0,25,0,8,0,79,0\n33,0,18,0,52,0,2,0,61,0,3,0\n63,0,1,0,81,0,29,0,46,0,7,0\n21,0,85,0,62,0,59,0,38,0,34,0\n22,0,37,0,28,0,20,0,47,0,23,0\n74,0,69,0,19,0,16,0,35,0,53,0\n30,0,13,0,54,0,83,0,55,0,49,0\n45,0,92,0,51,0,40,0,84,0,76,0\n64,0,73,0,5,0,26,0,14,0,6,0\n12,0,80,0,90,0,89,0,87,0,75,0\n66,0,1,0,43,0,31,0,78,0,3,0\n24,0,33,0,59,0,56,0,41,0,50,0\n17,0,46,0,23,0,34,0,29,0,68,0\n21,0,16,0,52,0,57,0,7,0,4,0\n10,0,85,0,11,0,79,0,49,0,15,0\n44,0,27,0,30,0,84,0,9,0,72,0\n65,0,53,0,28,0,86,0,48,0,71,0\n47,0,6,0,36,0,12,0,38,0,45,0\n77,0,54,0,82,0,19,0,32,0,35,0\n5,0,83,0,8,0,62,0,90,0,92,0\n60,0,20,0,63,0,14,0,69,0,2,0\n76,0,55,0,39,0,81,0,58,0,87,0\n18,0,51,0,25,0,93,0,37,0,94,0\n91,0,64,0,67,0,88,0,22,0,75,0\n74,0,26,0,89,0,70,0,42,0,40,0\n13,0,80,0,45,0,73,0,61,0,17,0\n77,0,49,0,53,0,9,0,66,0,52,0\n32,0,3,0,16,0,38,0,44,0,50,0\n27,0,82,0,59,0,24,0,20,0,8,0\n87,0,28,0,57,0,83,0,10,0,54,0\n92,0,41,0,6,0,1,0,2,0,31,0\n7,0,93,0,56,0,55,0,64,0,90,0\n68,0,79,0,39,0,21,0,12,0,26,0\n42,0,18,0,46,0,15,0,36,0,48,0\n80,0,34,0,23,0,60,0,65,0,51,0\n72,0,86,0,61,0,14,0,76,0,85,0\n35,0,71,0,11,0,30,0,47,0,43,0\n19,0,73,0,91,0,37,0,70,0,81,0\n74,0,25,0,78,0,22,0,29,0,13,0\n40,0,58,0,62,0,67,0,84,0,75,0\n69,0,88,0,4,0,5,0,33,0,94,0\n63,0,17,0,79,0,89,0,59,0,54,0\n32,0,42,0,93,0,87,0,27,0,60,0\n57,0,9,0,2,0,65,0,39,0,85,0\n3,0,82,0,30,0,51,0,68,0,28,0\n31,0,55,0,37,0,11,0,52,0,34,0\n76,0,44,0,8,0,23,0,74,0,1,0\n10,0,50,0,14,0,53,0,45,0,78,0\n48,0,7,0,62,0,58,0,6,0,69,0\n64,0,61,0,40,0,25,0,19,0,81,0\n70,0,66,0,22,0,80,0,18,0,86,0\n67,0,90,0,36,0,33,0,13,0,16,0\n72,0,20,0,15,0,94,0,75,0,38,0\n26,0,4,0,71,0,29,0,77,0,63,0\n91,0,47,0,12,0,49,0,84,0,5,0\n83,0,35,0,89,0,21,0,56,0,88,0\n73,0,41,0,24,0,92,0,46,0,43,0\n76,0,10,0,42,0,8,0,37,0,32,0\n25,0,44,0,86,0,39,0,31,0,30,0\n87,0,82,0,80,0,16,0,6,0,48,0\n61,0,53,0,57,0,1,0,62,0,68,0\n34,0,78,0,79,0,71,0,18,0,67,0\n66,0,72,0,91,0,69,0,12,0,11,0\n27,0,4,0,29,0,85,0,83,0,36,0\n90,0,2,0,28,0,17,0,49,0,70,0\n65,0,33,0,19,0,26,0,75,0,92,0\n63,0,9,0,21,0,43,0,74,0,20,0\n84,0,38,0,23,0,13,0,88,0,73,0\n15,0,55,0,40,0,77,0,50,0,22,0\n3,0,94,0,7,0,89,0,24,0,47,0\n46,0,59,0,93,0,35,0,52,0,14,0\n5,0,60,0,81,0,45,0,54,0,56,0\n64,0,58,0,49,0,51,0,41,0,8,0\n29,0,10,0,44,0,62,0,19,0,6,0\n1,0,25,0,90,0,32,0,12,0,65,0\n84,0,87,0,71,0,21,0,61,0,33,0\n11,0,80,0,63,0,38,0,42,0,92,0\n15,0,7,0,31,0,27,0,76,0,28,0\n73,0,37,0,57,0,66,0,3,0,48,0\n89,0,43,0,13,0,59,0,77,0,2,0\n39,0,64,0,69,0,82,0,40,0,52,0\n55,0,9,0,54,0,24,0,91,0,78,0\n22,0,35,0,18,0,68,0,17,0,81,0\n70,0,88,0,20,0,41,0,4,0,45,0\n94,0,50,0,47,0,26,0,46,0,85,0\n83,0,30,0,75,0,74,0,60,0,53,0\n23,0,67,0,51,0,72,0,36,0,56,0\n86,0,93,0,58,0,5,0,34,0,16,0\n79,0,19,0,84,0,14,0,32,0,31,0\n87,0,43,0,73,0,44,0,49,0,7,0\n22,0,11,0,89,0,57,0,6,0,76,0\n59,0,65,0,70,0,82,0,78,0,69,0\n48,0,35,0,2,0,64,0,38,0,4,0\n74,0,68,0,80,0,52,0,71,0,50,0\n94,0,8,0,56,0,91,0,61,0,28,0\n25,0,36,0,46,0,55,0,5,0,88,0\n42,0,79,0,75,0,51,0,66,0,29,0\n27,0,40,0,63,0,86,0,90,0,3,0\n83,0,41,0,15,0,9,0,34,0,26,0\n92,0,54,0,16,0,53,0,72,0,14,0\n45,0,58,0,21,0,24,0,23,0,30,0\n18,0,60,0,47,0,10,0,77,0,33,0\n62,0,67,0,17,0,39,0,1,0,37,0\n85,0,81,0,93,0,12,0,20,0,13,0\n94,0,55,0,29,0,84,0,80,0,43,0\n5,0,63,0,28,0,64,0,50,0,35,0\n68,0,9,0,38,0,56,0,31,0,70,0\n41,0,22,0,69,0,42,0,71,0,90,0\n7,0,82,0,45,0,66,0,25,0,26,0\n58,0,60,0,44,0,61,0,11,0,46,0\n52,0,77,0,24,0,72,0,1,0,6,0\n81,0,62,0,75,0,23,0,78,0,16,0\n91,0,13,0,3,0,4,0,21,0,86,0\n30,0,93,0,79,0,57,0,92,0,33,0\n18,0,88,0,76,0,65,0,54,0,27,0\n15,0,59,0,53,0,39,0,73,0,51,0\n36,0,8,0,17,0,85,0,87,0,19,0\n49,0,48,0,32,0,89,0,34,0,20,0\n10,0,12,0,37,0,40,0,2,0,74,0\n14,0,67,0,66,0,47,0,83,0,28,0\n42,0,77,0,86,0,94,0,62,0,23,0\n7,0,60,0,61,0,35,0,70,0,79,0\n91,0,75,0,52,0,29,0,38,0,25,0\n76,0,43,0,90,0,50,0,26,0,57,0\n84,0,69,0,15,0,3,0,87,0,56,0\n20,0,39,0,27,0,80,0,5,0,19,0\n33,0,9,0,11,0,40,0,73,0,81,0\n6,0,49,0,21,0,37,0,65,0,46,0\n36,0,2,0,54,0,58,0,59,0,30,0\n47,0,4,0,51,0,41,0,74,0,17,0\n85,0,63,0,67,0,48,0,55,0,53,0\n16,0,22,0,8,0,31,0,83,0,45,0\n89,0,1,0,71,0,93,0,82,0,18,0\n88,0,68,0,72,0,13,0,10,0,32,0\n64,0,92,0,78,0,34,0,44,0,12,0\n24,0,49,0,80,0,14,0,25,0,62,0\n6,0,35,0,59,0,27,0,57,0,86,0\n21,0,5,0,2,0,29,0,75,0,76,0\n67,0,77,0,38,0,46,0,87,0,69,0\n65,0,52,0,56,0,45,0,63,0,42,0\n83,0,70,0,50,0,84,0,1,0,36,0\n88,0,37,0,60,0,72,0,39,0,71,0\n61,0,34,0,10,0,22,0,73,0,4,0\n32,0,11,0,30,0,78,0,7,0,8,0\n90,0,24,0,85,0,74,0,31,0,18,0\n40,0,16,0,20,0,91,0,79,0,43,0\n41,0,94,0,64,0,66,0,54,0,68,0\n81,0,26,0,23,0,3,0,93,0,53,0\n14,0,28,0,55,0,44,0,51,0,89,0\n48,0,12,0,82,0,33,0,15,0,17,0\n92,0,13,0,19,0,58,0,9,0,47,0\n57,0,84,0,34,0,63,0,25,0,69,0\n5,0,71,0,75,0,42,0,85,0,7,0\n46,0,74,0,27,0,39,0,91,0,45,0\n86,0,83,0,68,0,2,0,73,0,78,0\n16,0,94,0,70,0,30,0,10,0,52,0\n44,0,80,0,31,0,59,0,67,0,81,0\n55,0,26,0,38,0,8,0,1,0,60,0\n53,0,4,0,89,0,64,0,24,0,65,0\n50,0,12,0,23,0,18,0,48,0,9,0\n72,0,87,0,35,0,66,0,41,0,40,0\n6,0,88,0,43,0,19,0,51,0,93,0\n28,0,56,0,13,0,37,0,62,0,79,0\n47,0,54,0,29,0,61,0,15,0,90,0\n3,0,17,0,77,0,76,0,20,0,92,0\n11,0,14,0,36,0,21,0,82,0,22,0\n49,0,33,0,74,0,58,0,32,0,57,0\n86,0,85,0,89,0,60,0,25,0,67,0\n1,0,30,0,50,0,91,0,42,0,34,0\n7,0,83,0,52,0,41,0,19,0,23,0\n8,0,2,0,66,0,84,0,93,0,16,0\n55,0,47,0,62,0,27,0,73,0,72,0\n12,0,51,0,31,0,61,0,65,0,77,0\n38,0,48,0,24,0,10,0,79,0,5,0\n22,0,87,0,90,0,59,0,88,0,9,0\n46,0,6,0,70,0,54,0,3,0,71,0\n33,0,45,0,29,0,39,0,28,0,11,0\n53,0,21,0,20,0,18,0,40,0,44,0\n14,0,4,0,68,0,75,0,15,0,37,0\n69,0,32,0,92,0,43,0,81,0,36,0\n58,0,78,0,26,0,56,0,35,0,80,0\n76,0,82,0,94,0,13,0,63,0,49,0\n17,0,31,0,57,0,64,0,60,0,42,0\n"
  },
  {
    "path": "schedules/94_2.csv",
    "content": "33,0,25,0,64,0,31,0,50,0,43,0\n80,0,27,0,72,0,71,0,22,0,92,0\n91,0,29,0,14,0,26,0,11,0,69,0\n16,0,90,0,55,0,86,0,37,0,19,0\n6,0,83,0,87,0,54,0,82,0,42,0\n75,0,30,0,20,0,79,0,51,0,59,0\n1,0,9,0,36,0,88,0,47,0,53,0\n60,0,40,0,34,0,7,0,15,0,68,0\n89,0,21,0,44,0,76,0,74,0,2,0\n12,0,48,0,81,0,45,0,57,0,65,0\n38,0,10,0,32,0,52,0,85,0,4,0\n41,0,63,0,35,0,56,0,78,0,84,0\n49,0,39,0,24,0,66,0,73,0,3,0\n70,0,5,0,23,0,77,0,67,0,61,0\n18,0,93,0,8,0,28,0,46,0,94,0\n13,0,58,0,47,0,62,0,17,0,50,0\n71,0,26,0,54,0,9,0,74,0,37,0\n57,0,29,0,2,0,60,0,33,0,51,0\n22,0,69,0,76,0,20,0,16,0,25,0\n86,0,82,0,64,0,91,0,44,0,27,0\n41,0,3,0,92,0,14,0,59,0,12,0\n24,0,6,0,43,0,78,0,23,0,55,0\n7,0,87,0,65,0,80,0,75,0,93,0\n31,0,5,0,94,0,19,0,81,0,32,0\n30,0,4,0,70,0,83,0,58,0,1,0\n84,0,77,0,42,0,46,0,21,0,36,0\n52,0,68,0,13,0,48,0,88,0,8,0\n45,0,11,0,85,0,73,0,40,0,90,0\n10,0,89,0,28,0,63,0,39,0,62,0\n56,0,17,0,67,0,15,0,38,0,53,0\n72,0,61,0,66,0,34,0,18,0,35,0\n79,0,2,1,50,1,49,0,69,1,14,1\n"
  },
  {
    "path": "schedules/94_3.csv",
    "content": "1,0,25,0,88,0,57,0,43,0,70,0\n79,0,37,0,2,0,34,0,48,0,13,0\n90,0,55,0,40,0,23,0,60,0,11,0\n56,0,69,0,51,0,83,0,4,0,9,0\n19,0,47,0,94,0,68,0,29,0,64,0\n87,0,61,0,31,0,93,0,65,0,16,0\n15,0,74,0,32,0,77,0,3,0,18,0\n22,0,42,0,39,0,54,0,59,0,36,0\n76,0,80,0,12,0,58,0,30,0,6,0\n8,0,82,0,44,0,78,0,66,0,53,0\n81,0,85,0,50,0,71,0,24,0,46,0\n26,0,84,0,20,0,41,0,49,0,63,0\n67,0,75,0,62,0,38,0,72,0,17,0\n27,0,52,0,28,0,73,0,35,0,89,0\n21,0,45,0,10,0,91,0,14,0,7,0\n5,0,92,0,54,0,33,0,86,0,56,0\n59,0,11,0,51,0,3,0,88,0,2,0\n39,0,69,0,31,0,12,0,43,0,15,0\n82,0,79,0,23,0,74,0,42,0,94,0\n48,0,24,0,57,0,66,0,4,0,30,0\n13,0,80,0,93,0,64,0,84,0,9,0\n29,0,76,0,38,0,78,0,60,0,52,0\n46,0,72,0,45,0,16,0,28,0,37,0\n53,0,73,0,58,0,21,0,34,0,17,0\n14,0,71,0,65,0,22,0,44,0,18,0\n33,0,68,0,77,0,40,0,7,0,85,0\n41,0,35,0,19,0,75,0,81,0,70,0\n5,0,50,0,83,0,27,0,26,0,62,0\n89,0,87,0,10,0,67,0,1,0,90,0\n91,0,63,0,86,0,8,0,61,0,32,0\n6,0,25,0,47,0,55,0,20,0,36,0\n49,0,17,0,4,0,92,0,39,0,94,0\n73,0,16,0,48,0,38,0,23,0,3,0\n42,0,57,0,33,0,13,0,45,0,44,0\n15,0,65,0,56,0,41,0,85,0,79,0\n74,0,84,0,21,0,29,0,51,0,81,0\n58,0,68,0,83,0,72,0,31,0,35,0\n80,0,28,0,70,0,5,0,67,0,8,0\n7,0,9,0,88,0,12,0,24,0,82,0\n36,0,87,0,18,0,92,0,52,0,53,0\n19,0,77,0,78,0,6,0,46,0,54,0\n60,0,30,0,89,0,20,0,22,0,86,0\n64,0,14,0,27,0,11,0,75,0,63,0\n62,0,1,0,37,0,55,0,61,0,71,0\n66,0,2,0,91,0,90,0,43,0,47,0\n34,0,93,0,26,0,59,0,10,0,25,0\n40,0,49,0,50,0,76,0,69,0,32,0\n"
  },
  {
    "path": "schedules/94_4.csv",
    "content": "9,0,19,0,88,0,63,0,36,0,51,0\n37,0,70,0,10,0,50,0,28,0,57,0\n59,0,14,0,60,0,93,0,64,0,92,0\n32,0,25,0,35,0,39,0,61,0,24,0\n5,0,33,0,15,0,49,0,73,0,76,0\n66,0,65,0,12,0,68,0,74,0,47,0\n75,0,83,0,90,0,1,0,44,0,21,0\n82,0,80,0,22,0,26,0,54,0,48,0\n31,0,69,0,7,0,46,0,72,0,13,0\n45,0,11,0,94,0,2,0,16,0,34,0\n87,0,27,0,67,0,6,0,78,0,20,0\n85,0,52,0,71,0,23,0,62,0,29,0\n81,0,91,0,18,0,41,0,43,0,58,0\n8,0,55,0,79,0,89,0,40,0,56,0\n84,0,53,0,3,0,30,0,86,0,42,0\n38,0,17,0,14,0,77,0,4,0,15,0\n64,0,66,0,73,0,36,0,37,0,31,0\n44,0,63,0,11,0,7,0,59,0,65,0\n74,0,60,0,27,0,34,0,9,0,35,0\n23,0,10,0,20,0,1,0,61,0,80,0\n68,0,16,0,48,0,46,0,39,0,88,0\n90,0,89,0,51,0,67,0,70,0,18,0\n6,0,5,0,26,0,62,0,8,0,94,0\n86,0,76,0,82,0,17,0,29,0,45,0\n4,0,69,0,42,0,79,0,57,0,19,0\n54,0,55,0,30,0,81,0,33,0,92,0\n58,0,85,0,50,0,75,0,72,0,87,0\n91,0,93,0,83,0,71,0,28,0,24,0\n43,0,56,0,49,0,77,0,52,0,84,0\n21,0,40,0,3,0,25,0,47,0,2,0\n32,0,41,0,53,0,22,0,78,0,12,0\n38,0,64,0,20,0,13,0,44,0,94,0\n82,1,68,0,37,0,67,1,59,0,1,0\n17,0,57,0,61,0,90,0,6,0,92,0\n89,0,27,0,62,0,19,0,16,0,14,0\n60,0,39,0,81,0,87,0,4,0,31,0\n26,0,45,0,52,0,50,0,83,0,15,0\n29,0,25,0,30,0,46,0,34,0,73,0\n9,0,71,0,66,0,7,0,54,0,56,0\n86,0,13,0,41,0,10,0,24,0,21,0\n80,0,70,0,88,0,33,0,40,0,84,0\n28,0,77,0,22,0,58,0,55,0,3,0\n63,0,74,0,78,0,91,0,42,0,8,0\n53,0,79,0,49,0,38,0,11,0,51,0\n12,0,36,0,76,0,85,0,93,0,35,0\n2,0,72,0,65,0,5,0,18,0,32,0\n75,0,47,0,23,0,48,0,43,0,69,0\n71,0,50,0,1,0,39,0,30,0,19,0\n25,0,7,0,87,0,89,0,10,0,83,0\n22,0,46,0,15,0,90,0,40,0,86,0\n77,0,78,0,33,0,60,0,68,0,29,0\n91,0,16,0,6,0,79,0,73,0,3,0\n56,0,64,0,58,0,82,0,63,0,35,0\n61,0,72,0,45,0,74,0,59,0,51,0\n52,0,75,0,80,0,67,0,53,0,66,0\n47,0,54,0,57,0,18,0,14,0,49,0\n8,0,84,0,28,0,41,0,11,0,36,0\n62,0,38,0,12,0,43,0,55,0,37,0\n44,0,23,0,9,0,17,0,26,0,2,0\n69,0,34,0,88,0,32,0,20,0,76,0\n21,0,85,0,94,0,81,0,70,0,65,0\n92,0,24,0,48,0,31,0,42,0,27,0\n93,0,13,0,67,0,4,0,5,0,82,0\n"
  },
  {
    "path": "schedules/94_5.csv",
    "content": "72,0,82,0,55,0,32,0,90,0,24,0\n35,0,20,0,56,0,69,0,7,0,38,0\n16,0,64,0,43,0,30,0,39,0,71,0\n65,0,59,0,15,0,86,0,25,0,74,0\n89,0,12,0,42,0,44,0,10,0,53,0\n83,0,94,0,76,0,85,0,51,0,13,0\n58,0,54,0,92,0,61,0,45,0,91,0\n78,0,57,0,41,0,14,0,93,0,81,0\n40,0,68,0,48,0,2,0,19,0,28,0\n52,0,84,0,49,0,73,0,34,0,77,0\n21,0,5,0,47,0,50,0,31,0,70,0\n37,0,17,0,66,0,60,0,46,0,6,0\n33,0,88,0,1,0,36,0,87,0,80,0\n18,0,29,0,22,0,67,0,79,0,63,0\n75,0,4,0,23,0,11,0,3,0,9,0\n27,0,62,0,32,0,26,0,8,0,12,0\n61,0,2,0,74,0,82,0,13,0,10,0\n56,0,78,0,39,0,42,0,68,0,85,0\n93,0,53,0,55,0,43,0,28,0,38,0\n6,0,94,0,7,0,77,0,25,0,31,0\n34,0,46,0,24,0,40,0,70,0,54,0\n29,0,36,0,15,0,47,0,52,0,69,0\n20,0,80,0,86,0,5,0,76,0,73,0\n90,0,91,0,88,0,11,0,79,0,26,0\n81,0,89,0,87,0,84,0,17,0,64,0\n62,0,41,0,48,0,50,0,37,0,72,0\n19,0,57,0,92,0,44,0,1,0,23,0\n33,0,27,0,66,0,18,0,75,0,35,0\n3,0,30,0,51,0,59,0,58,0,22,0\n71,0,21,0,9,0,49,0,63,0,60,0\n67,0,16,0,65,0,8,0,83,0,14,0\n45,0,13,0,26,0,4,0,20,0,53,0\n38,1,87,0,39,0,54,1,77,0,79,0\n68,1,89,0,61,0,88,1,76,0,55,0\n11,0,56,0,36,0,81,0,72,0,12,0\n64,0,23,0,42,0,91,0,32,0,37,0\n90,0,66,0,22,0,44,0,73,0,48,0\n59,0,57,0,47,0,94,0,34,0,35,0\n6,0,67,0,62,0,21,0,19,0,33,0\n74,0,14,0,24,0,85,0,45,0,9,0\n58,0,4,0,82,0,86,0,16,0,31,0\n71,0,29,0,84,0,5,0,8,0,93,0\n60,0,92,0,41,0,52,0,2,0,43,0\n3,0,28,0,69,0,65,0,78,0,10,0\n46,0,63,0,27,0,80,0,15,0,30,0\n83,0,70,0,75,0,49,0,25,0,17,0\n1,0,7,0,50,0,40,0,51,0,18,0\n91,0,13,0,14,0,87,0,47,0,66,0\n81,0,38,0,34,0,21,0,90,0,76,0\n93,0,20,0,88,0,58,0,12,0,64,0\n44,0,79,0,33,0,68,0,74,0,16,0\n10,0,32,0,86,0,9,0,48,0,67,0\n77,0,3,0,60,0,15,0,56,0,5,0\n26,0,71,0,55,0,92,0,94,0,22,0\n63,0,51,0,17,0,43,0,82,0,62,0\n23,0,18,0,8,0,6,0,72,0,45,0\n31,0,2,0,1,0,75,0,29,0,46,0\n4,0,28,0,80,0,59,0,39,0,24,0\n37,0,69,0,30,0,85,0,25,0,57,0\n73,0,27,0,54,0,19,0,78,0,50,0\n70,0,42,0,84,0,61,0,35,0,11,0\n49,0,40,0,36,0,41,0,65,0,53,0\n83,0,89,0,5,0,52,0,7,0,74,0\n10,0,34,0,51,0,88,0,56,0,23,0\n81,0,68,0,86,0,71,0,3,0,1,0\n44,0,31,0,18,0,20,0,32,0,17,0\n45,0,48,0,57,0,63,0,64,0,55,0\n9,0,38,0,50,0,6,0,12,0,30,0\n46,0,8,0,82,0,91,0,69,0,21,0\n22,0,43,0,14,0,54,0,75,0,36,0\n11,0,76,0,28,0,15,0,41,0,66,0\n77,0,35,0,72,0,89,0,65,0,13,0\n90,0,94,0,52,0,42,0,62,0,4,0\n79,0,37,0,53,0,24,0,92,0,84,0\n85,0,80,0,60,0,19,0,16,0,70,0\n2,0,7,0,47,0,27,0,93,0,49,0\n40,0,26,0,25,0,61,0,78,0,87,0\n73,0,39,0,83,0,33,0,29,0,58,0\n67,0,38,0,68,0,59,0,54,0,88,0\n"
  },
  {
    "path": "schedules/94_6.csv",
    "content": "65,0,40,0,56,0,68,0,52,0,21,0\n3,0,82,0,63,0,25,0,15,0,1,0\n36,0,14,0,12,0,69,0,91,0,73,0\n57,0,31,0,66,0,75,0,20,0,78,0\n27,0,28,0,35,0,4,0,80,0,19,0\n90,0,30,0,81,0,41,0,74,0,62,0\n46,0,94,0,54,0,43,0,72,0,34,0\n83,0,16,0,49,0,5,0,18,0,26,0\n17,0,47,0,45,0,60,0,11,0,53,0\n38,0,85,0,89,0,86,0,7,0,58,0\n88,0,51,0,64,0,37,0,6,0,33,0\n55,0,77,0,23,0,84,0,29,0,44,0\n13,0,87,0,59,0,70,0,76,0,8,0\n9,0,79,0,67,0,48,0,93,0,42,0\n71,0,22,0,50,0,10,0,61,0,92,0\n32,0,39,0,5,0,2,0,24,0,65,0\n78,0,94,0,16,0,68,0,1,0,35,0\n62,0,12,0,43,0,80,0,85,0,17,0\n64,0,75,0,60,0,21,0,28,0,72,0\n7,0,25,0,56,0,90,0,36,0,83,0\n74,0,37,0,69,0,70,0,86,0,23,0\n82,0,89,0,67,0,45,0,59,0,6,0\n30,0,77,0,11,0,20,0,61,0,33,0\n27,0,29,0,41,0,49,0,40,0,24,0\n71,0,55,0,2,0,3,0,4,0,46,0\n13,0,22,0,93,0,52,0,54,0,18,0\n73,0,19,0,48,0,50,0,63,0,47,0\n51,0,32,0,8,0,42,0,66,0,91,0\n39,0,26,0,58,0,31,0,14,0,9,0\n79,0,87,0,53,0,10,0,84,0,57,0\n88,0,38,0,44,0,15,0,34,0,81,0\n76,0,12,0,72,0,92,0,67,0,27,0\n78,0,69,0,30,0,64,0,3,0,89,0\n60,0,24,0,80,0,71,0,83,0,77,0\n43,0,52,0,16,0,70,0,50,0,41,0\n85,0,46,0,59,0,91,0,90,0,23,0\n86,0,20,0,6,0,40,0,39,0,17,0\n84,0,7,0,31,0,37,0,5,0,63,0\n42,0,88,0,21,0,4,0,74,0,73,0\n66,0,45,0,15,0,94,0,28,0,76,0\n44,0,48,0,65,0,51,0,11,0,75,0\n47,0,25,0,57,0,22,0,58,0,81,0\n1,0,55,0,92,0,32,0,33,0,79,0\n93,0,29,0,14,0,19,0,87,0,2,0\n18,0,10,0,34,0,8,0,36,0,82,0\n35,0,26,0,56,0,38,0,53,0,54,0\n62,0,61,0,68,0,9,0,13,0,49,0\n59,0,15,0,20,0,50,0,64,0,12,0\n75,0,86,0,91,0,30,0,80,0,45,0\n72,0,66,0,4,0,69,0,85,0,41,0\n89,0,5,0,76,0,1,0,60,0,74,0\n43,0,24,0,92,0,7,0,14,0,51,0\n33,0,17,0,90,0,84,0,19,0,18,0\n65,0,70,0,25,0,42,0,46,0,26,0\n31,0,83,0,94,0,52,0,62,0,29,0\n36,0,40,0,2,0,81,0,63,0,77,0\n23,0,88,0,13,0,79,0,71,0,27,0\n87,0,67,0,47,0,61,0,16,0,56,0\n55,0,58,0,49,0,10,0,35,0,73,0\n32,0,34,0,21,0,78,0,6,0,53,0\n37,0,38,0,11,0,82,0,93,0,39,0\n9,0,57,0,8,0,54,0,44,0,28,0\n48,0,3,0,70,0,68,0,22,0,66,0\n81,0,4,0,1,0,64,0,31,0,45,0\n79,0,80,0,72,0,74,0,26,0,7,0\n62,0,14,0,33,0,40,0,59,0,25,0\n24,0,36,0,23,0,87,0,89,0,75,0\n51,0,50,0,67,0,58,0,34,0,90,0\n77,0,39,0,18,0,15,0,78,0,42,0\n63,0,17,0,71,0,56,0,49,0,44,0\n19,0,82,0,9,0,21,0,69,0,20,0\n2,0,73,0,53,0,68,0,43,0,8,0\n22,0,29,0,86,0,16,0,65,0,88,0\n47,0,28,0,30,0,37,0,13,0,55,0\n41,0,57,0,46,0,12,0,5,0,38,0\n48,0,84,0,61,0,32,0,54,0,27,0\n3,0,93,0,94,0,60,0,92,0,85,0\n10,0,6,0,76,0,91,0,83,0,11,0\n52,0,44,0,74,0,35,0,66,0,67,0\n9,0,18,0,81,0,43,0,87,0,71,0\n62,0,22,0,51,0,23,0,72,0,56,0\n68,0,28,0,59,0,86,0,24,0,31,0\n45,0,50,0,40,0,88,0,7,0,46,0\n90,0,54,0,39,0,79,0,73,0,70,0\n34,0,4,0,60,0,57,0,16,0,30,0\n27,0,33,0,38,0,47,0,3,0,8,0\n69,0,84,0,92,0,80,0,49,0,2,0\n35,0,89,0,91,0,77,0,93,0,21,0\n63,0,11,0,52,0,78,0,58,0,12,0\n42,0,64,0,17,0,41,0,82,0,94,0\n36,0,37,0,26,0,76,0,32,0,20,0\n15,0,83,0,61,0,65,0,53,0,14,0\n10,0,29,0,1,0,48,0,85,0,13,0\n75,0,6,0,19,0,25,0,5,0,55,0\n"
  },
  {
    "path": "schedules/94_7.csv",
    "content": "49,0,15,0,88,0,1,0,37,0,8,0\n68,0,90,0,3,0,50,0,5,0,12,0\n11,0,51,0,56,0,28,0,39,0,13,0\n53,0,2,0,64,0,78,0,31,0,47,0\n42,0,94,0,77,0,38,0,93,0,35,0\n55,0,26,0,10,0,87,0,84,0,76,0\n66,0,57,0,43,0,74,0,59,0,44,0\n19,0,73,0,86,0,6,0,91,0,32,0\n16,0,18,0,92,0,29,0,27,0,9,0\n45,0,14,0,4,0,34,0,25,0,80,0\n33,0,20,0,7,0,36,0,81,0,61,0\n69,0,60,0,23,0,63,0,52,0,46,0\n89,0,58,0,71,0,54,0,83,0,85,0\n62,0,17,0,65,0,67,0,72,0,21,0\n75,0,82,0,79,0,22,0,70,0,30,0\n24,0,40,0,1,0,41,0,48,0,26,0\n91,0,12,0,84,0,18,0,42,0,66,0\n29,0,34,0,43,0,49,0,56,0,94,0\n19,0,25,0,50,0,53,0,92,0,37,0\n35,0,59,0,69,0,61,0,31,0,45,0\n5,0,7,0,46,0,44,0,4,0,85,0\n28,0,33,0,80,0,74,0,67,0,55,0\n93,0,10,0,58,0,64,0,70,0,52,0\n63,0,57,0,82,0,3,0,39,0,24,0\n9,0,32,0,51,0,8,0,72,0,75,0\n22,0,14,0,11,0,62,0,23,0,89,0\n36,0,79,0,21,0,38,0,47,0,27,0\n90,0,83,0,30,0,13,0,40,0,65,0\n73,0,60,0,41,0,76,0,78,0,71,0\n48,0,68,0,77,0,86,0,15,0,16,0\n17,0,2,0,87,0,88,0,81,0,54,0\n20,0,34,0,84,0,6,0,67,0,44,0\n32,1,29,0,3,0,66,1,10,0,37,0\n52,0,80,0,89,0,56,0,59,0,50,0\n58,0,55,0,51,0,69,0,19,0,79,0\n83,0,24,0,47,0,28,0,75,0,94,0\n18,0,85,0,74,0,31,0,63,0,73,0\n77,0,33,0,76,0,57,0,1,0,23,0\n82,0,7,0,92,0,91,0,65,0,14,0\n8,0,42,0,45,0,20,0,46,0,70,0\n38,0,11,0,64,0,88,0,16,0,4,0\n71,0,35,0,5,0,48,0,2,0,49,0\n6,0,9,0,25,0,17,0,90,0,36,0\n12,0,41,0,22,0,72,0,86,0,81,0\n54,0,26,0,27,0,60,0,93,0,13,0\n61,0,39,0,62,0,40,0,53,0,15,0\n78,0,30,0,68,0,87,0,43,0,21,0\n65,0,55,0,94,0,44,0,3,0,23,0\n88,0,56,0,76,0,83,0,69,0,70,0\n77,0,29,0,74,0,82,0,2,0,89,0\n32,0,48,0,67,0,90,0,47,0,63,0\n1,0,36,0,19,0,84,0,85,0,45,0\n35,0,46,0,54,0,33,0,34,0,37,0\n24,0,79,0,15,0,92,0,52,0,11,0\n10,0,8,0,60,0,18,0,43,0,5,0\n49,0,93,0,78,0,91,0,61,0,17,0\n40,0,22,0,6,0,57,0,51,0,64,0\n73,0,59,0,72,0,28,0,68,0,38,0\n13,0,9,0,41,0,80,0,53,0,42,0\n66,0,86,0,39,0,20,0,87,0,71,0\n31,0,75,0,27,0,7,0,25,0,12,0\n30,0,81,0,50,0,58,0,4,0,62,0\n14,0,21,0,90,0,16,0,26,0,74,0\n92,0,2,0,32,0,69,0,94,0,33,0\n34,0,15,0,83,0,18,0,55,0,93,0\n28,0,44,0,54,0,49,0,63,0,45,0\n3,0,84,0,52,0,13,0,8,0,77,0\n68,0,61,0,57,0,65,0,19,0,60,0\n91,0,89,0,41,0,51,0,10,0,25,0\n47,0,23,0,88,0,39,0,30,0,7,0\n16,0,35,0,67,0,36,0,75,0,58,0\n81,0,48,0,66,0,14,0,6,0,78,0\n26,0,17,0,43,0,50,0,20,0,73,0\n38,0,80,0,70,0,24,0,62,0,86,0\n4,0,12,0,21,0,82,0,56,0,71,0\n46,0,31,0,87,0,9,0,79,0,40,0\n72,0,1,0,5,0,29,0,53,0,11,0\n76,0,85,0,37,0,59,0,64,0,42,0\n27,0,91,0,39,0,22,0,8,0,68,0\n92,0,81,0,74,0,35,0,10,0,47,0\n50,0,55,0,57,0,54,0,36,0,32,0\n93,0,84,0,16,0,65,0,2,0,80,0\n73,0,25,0,23,0,21,0,58,0,49,0\n45,0,67,0,52,0,41,0,43,0,7,0\n9,0,62,0,94,0,78,0,88,0,12,0\n75,0,40,0,56,0,33,0,66,0,5,0\n42,0,4,0,1,0,61,0,79,0,90,0\n26,0,82,0,64,0,72,0,19,0,15,0\n70,0,6,0,13,0,87,0,63,0,89,0\n31,0,44,0,22,0,76,0,29,0,38,0\n71,0,28,0,37,0,14,0,18,0,77,0\n3,0,59,0,20,0,48,0,60,0,11,0\n83,0,51,0,86,0,27,0,46,0,17,0\n30,0,53,0,85,0,34,0,24,0,69,0\n52,0,16,0,47,0,1,0,25,0,66,0\n4,0,15,0,67,0,9,0,23,0,91,0\n63,0,62,0,64,0,35,0,7,0,68,0\n58,0,38,0,13,0,74,0,32,0,5,0\n72,0,33,0,6,0,39,0,50,0,31,0\n42,0,60,0,36,0,22,0,2,0,28,0\n86,0,78,0,44,0,90,0,75,0,89,0\n37,0,69,0,12,0,80,0,11,0,26,0\n18,0,19,0,30,0,41,0,46,0,94,0\n73,0,65,0,79,0,88,0,48,0,34,0\n87,0,8,0,29,0,83,0,14,0,57,0\n10,0,53,0,54,0,56,0,20,0,77,0\n59,0,49,0,81,0,24,0,84,0,51,0\n17,0,70,0,40,0,71,0,3,0,92,0\n43,0,85,0,61,0,82,0,27,0,55,0\n76,0,21,0,32,0,93,0,45,0,66,0\n"
  },
  {
    "path": "schedules/94_8.csv",
    "content": "49,0,13,0,62,0,42,0,79,0,2,0\n5,0,53,0,11,0,89,0,71,0,86,0\n3,0,24,0,82,0,4,0,35,0,48,0\n43,0,85,0,33,0,52,0,7,0,81,0\n56,0,63,0,55,0,77,0,19,0,45,0\n57,0,15,0,47,0,80,0,92,0,39,0\n90,0,1,0,34,0,83,0,6,0,66,0\n32,0,30,0,91,0,25,0,65,0,29,0\n23,0,60,0,88,0,41,0,69,0,50,0\n12,0,68,0,76,0,70,0,27,0,21,0\n94,0,84,0,59,0,74,0,37,0,44,0\n51,0,26,0,20,0,54,0,46,0,18,0\n22,0,87,0,78,0,64,0,9,0,14,0\n17,0,40,0,16,0,38,0,28,0,36,0\n10,0,58,0,8,0,73,0,72,0,93,0\n75,0,61,0,80,0,31,0,67,0,49,0\n5,0,33,0,45,0,6,0,35,0,25,0\n13,0,57,0,48,0,89,0,7,0,66,0\n11,0,15,0,32,0,42,0,76,0,23,0\n70,0,44,0,2,0,34,0,18,0,60,0\n54,0,62,0,30,0,19,0,82,0,53,0\n85,0,69,0,77,0,79,0,17,0,65,0\n16,0,43,0,87,0,63,0,12,0,1,0\n36,0,71,0,39,0,73,0,20,0,90,0\n78,0,31,0,50,0,86,0,10,0,91,0\n93,0,29,0,4,0,61,0,94,0,26,0\n27,0,72,0,92,0,9,0,84,0,88,0\n52,0,64,0,3,0,37,0,8,0,46,0\n40,0,21,0,74,0,22,0,41,0,56,0\n68,0,28,0,59,0,51,0,14,0,81,0\n38,0,24,0,55,0,47,0,67,0,58,0\n75,0,43,0,53,0,83,0,48,0,77,0\n23,1,63,0,65,0,33,1,80,0,71,0\n73,1,70,0,78,0,19,1,6,0,11,0\n86,0,44,0,93,0,54,0,27,0,7,0\n84,0,31,0,17,0,3,0,60,0,89,0\n94,0,45,0,69,0,16,0,57,0,62,0\n42,0,8,0,18,0,29,0,85,0,5,0\n67,0,46,0,91,0,40,0,76,0,81,0\n59,0,22,0,72,0,38,0,32,0,20,0\n14,0,2,0,41,0,1,0,25,0,37,0\n92,0,82,0,58,0,75,0,56,0,13,0\n10,0,83,0,9,0,4,0,47,0,74,0\n39,0,68,0,30,0,87,0,34,0,24,0\n35,0,64,0,36,0,50,0,79,0,61,0\n21,0,49,0,51,0,88,0,66,0,15,0\n26,0,52,0,90,0,55,0,12,0,28,0\n8,0,6,0,22,0,60,0,76,0,62,0\n29,0,69,0,1,0,78,0,48,0,84,0\n73,0,46,0,41,0,82,0,32,0,89,0\n7,0,71,0,4,0,17,0,45,0,14,0\n13,0,38,0,34,0,43,0,86,0,3,0\n27,0,74,0,2,0,23,0,35,0,81,0\n36,0,33,0,37,0,53,0,51,0,92,0\n52,0,75,0,10,0,11,0,16,0,66,0\n25,0,94,0,39,0,28,0,49,0,58,0\n72,0,12,0,47,0,42,0,64,0,54,0\n19,0,40,0,50,0,90,0,93,0,85,0\n20,0,15,0,83,0,61,0,63,0,70,0\n59,0,88,0,79,0,87,0,55,0,80,0\n18,0,21,0,31,0,30,0,57,0,77,0\n91,0,24,0,9,0,44,0,5,0,26,0\n68,0,56,0,48,0,65,0,67,0,36,0\n6,0,23,0,94,0,46,0,10,0,43,0\n2,0,86,0,58,0,52,0,4,0,22,0\n1,0,7,0,8,0,53,0,50,0,38,0\n39,0,35,0,78,0,42,0,63,0,40,0\n11,0,47,0,14,0,34,0,49,0,85,0\n73,0,30,0,81,0,17,0,12,0,80,0\n76,0,29,0,83,0,31,0,88,0,28,0\n55,0,62,0,66,0,32,0,33,0,9,0\n37,0,61,0,60,0,27,0,57,0,65,0\n91,0,41,0,77,0,84,0,70,0,51,0\n54,0,5,0,67,0,21,0,90,0,87,0\n93,0,3,0,59,0,71,0,92,0,16,0\n13,0,24,0,74,0,64,0,69,0,19,0\n44,0,20,0,82,0,45,0,68,0,79,0\n15,0,89,0,25,0,72,0,56,0,18,0\n26,0,17,0,35,0,75,0,32,0,8,0\n57,0,73,0,88,0,53,0,22,0,63,0\n55,0,48,0,50,0,39,0,14,0,76,0\n34,0,33,0,54,0,41,0,94,0,78,0\n67,0,70,0,62,0,1,0,52,0,92,0\n3,0,58,0,6,0,29,0,9,0,12,0\n47,0,61,0,82,0,77,0,7,0,2,0\n16,0,90,0,18,0,68,0,74,0,86,0\n83,0,56,0,60,0,5,0,49,0,59,0\n25,0,85,0,36,0,84,0,13,0,23,0\n46,0,65,0,38,0,87,0,15,0,31,0\n80,0,51,0,24,0,40,0,45,0,72,0\n79,0,81,0,89,0,37,0,10,0,21,0\n64,0,93,0,28,0,75,0,20,0,91,0\n66,0,71,0,42,0,19,0,26,0,27,0\n43,0,11,0,69,0,44,0,4,0,30,0\n32,0,88,0,12,0,56,0,78,0,2,0\n70,0,53,0,23,0,58,0,59,0,17,0\n41,0,67,0,9,0,57,0,86,0,35,0\n14,0,74,0,80,0,52,0,29,0,82,0\n13,0,21,0,65,0,16,0,6,0,39,0\n22,0,49,0,77,0,24,0,37,0,93,0\n51,0,50,0,27,0,87,0,3,0,73,0\n61,0,18,0,40,0,84,0,33,0,11,0\n19,0,44,0,36,0,83,0,46,0,72,0\n20,0,81,0,42,0,92,0,55,0,69,0\n63,0,90,0,76,0,79,0,94,0,7,0\n4,0,91,0,89,0,62,0,38,0,85,0\n25,0,71,0,75,0,54,0,68,0,60,0\n45,0,31,0,66,0,43,0,8,0,47,0\n26,0,1,0,10,0,15,0,64,0,30,0\n28,0,5,0,61,0,48,0,34,0,22,0\n33,0,29,0,17,0,44,0,57,0,56,0\n87,0,84,0,86,0,42,0,6,0,82,0\n80,0,19,0,7,0,20,0,35,0,21,0\n4,0,55,0,37,0,78,0,23,0,16,0\n71,0,83,0,18,0,12,0,69,0,91,0\n25,0,73,0,43,0,59,0,24,0,62,0\n63,0,68,0,89,0,50,0,47,0,26,0\n48,0,49,0,46,0,90,0,70,0,45,0\n77,0,34,0,27,0,58,0,15,0,36,0\n65,0,11,0,81,0,8,0,54,0,88,0\n92,0,76,0,38,0,10,0,41,0,5,0\n66,0,64,0,2,0,94,0,67,0,85,0\n14,0,40,0,53,0,13,0,32,0,60,0\n9,0,51,0,93,0,31,0,52,0,39,0\n30,0,79,0,72,0,74,0,3,0,75,0\n28,0,23,0,19,0,1,0,33,0,73,0\n"
  },
  {
    "path": "schedules/94_9.csv",
    "content": "65,0,56,0,50,0,29,0,14,0,1,0\n33,0,10,0,49,0,43,0,66,0,94,0\n64,0,32,0,35,0,51,0,85,0,7,0\n72,0,42,0,87,0,26,0,6,0,54,0\n77,0,16,0,47,0,22,0,45,0,44,0\n25,0,46,0,18,0,86,0,81,0,78,0\n61,0,31,0,91,0,3,0,12,0,36,0\n21,0,63,0,2,0,90,0,5,0,75,0\n92,0,57,0,74,0,40,0,30,0,82,0\n67,0,11,0,89,0,71,0,8,0,37,0\n84,0,60,0,9,0,73,0,17,0,70,0\n19,0,58,0,41,0,28,0,79,0,15,0\n55,0,23,0,13,0,62,0,39,0,20,0\n69,0,59,0,80,0,68,0,93,0,52,0\n27,0,24,0,48,0,4,0,38,0,76,0\n83,0,34,0,46,0,53,0,88,0,54,0\n22,0,2,0,42,0,12,0,7,0,1,0\n75,0,82,0,36,0,33,0,45,0,51,0\n35,0,84,0,47,0,49,0,86,0,92,0\n58,0,31,0,90,0,10,0,40,0,89,0\n13,0,18,0,11,0,60,0,14,0,87,0\n3,0,66,0,78,0,41,0,29,0,17,0\n65,0,38,0,57,0,39,0,21,0,25,0\n6,0,55,0,77,0,5,0,24,0,80,0\n71,0,9,0,91,0,72,0,68,0,23,0\n76,0,8,0,59,0,63,0,50,0,32,0\n28,0,34,0,48,0,52,0,56,0,26,0\n15,0,81,0,62,0,27,0,83,0,85,0\n19,0,4,0,43,0,67,0,16,0,74,0\n64,0,73,0,53,0,69,0,44,0,20,0\n93,0,88,0,79,0,30,0,61,0,70,0\n94,0,2,0,18,0,37,0,45,0,6,0\n17,0,24,0,68,0,12,0,51,0,25,0\n33,0,5,0,65,0,31,0,42,0,11,0\n28,0,82,0,76,0,71,0,54,0,21,0\n63,0,78,0,85,0,91,0,58,0,87,0\n9,0,59,0,89,0,66,0,15,0,56,0\n50,0,84,0,67,0,46,0,23,0,44,0\n13,0,92,0,72,0,88,0,43,0,22,0\n49,0,83,0,73,0,4,0,29,0,77,0\n93,0,53,0,75,0,38,0,62,0,7,0\n3,0,40,0,14,0,35,0,80,0,81,0\n52,0,30,0,20,0,47,0,10,0,19,0\n16,0,64,0,37,0,61,0,34,0,27,0\n86,0,8,0,41,0,94,0,69,0,57,0\n1,0,79,0,74,0,55,0,60,0,48,0\n90,0,70,0,36,0,39,0,26,0,32,0\n56,0,71,0,58,0,24,0,92,0,83,0\n12,0,11,0,29,0,54,0,15,0,75,0\n93,0,40,0,18,0,73,0,65,0,85,0\n6,0,4,0,88,0,62,0,3,0,84,0\n27,0,14,0,19,0,53,0,59,0,33,0\n61,0,89,0,68,0,47,0,63,0,57,0\n49,0,81,0,60,0,72,0,69,0,51,0\n55,0,67,0,34,0,36,0,2,0,38,0\n20,0,31,0,1,0,87,0,16,0,76,0\n50,0,10,0,80,0,21,0,70,0,13,0\n26,0,43,0,44,0,79,0,86,0,9,0\n39,0,52,0,82,0,94,0,64,0,78,0\n45,0,7,0,91,0,48,0,41,0,5,0\n17,0,23,0,8,0,30,0,35,0,28,0\n37,0,32,0,42,0,77,0,74,0,25,0\n22,0,90,0,69,0,46,0,66,0,24,0\n34,0,71,0,19,0,6,0,60,0,31,0\n70,0,75,0,59,0,67,0,58,0,1,0\n63,0,62,0,36,0,54,0,92,0,14,0\n57,0,83,0,51,0,50,0,9,0,16,0\n84,0,33,0,21,0,12,0,78,0,89,0\n47,0,7,0,55,0,18,0,88,0,27,0\n28,0,68,0,20,0,11,0,81,0,77,0\n23,0,45,0,74,0,52,0,76,0,49,0\n13,0,73,0,66,0,48,0,32,0,86,0\n3,0,26,0,25,0,30,0,53,0,85,0\n43,0,15,0,42,0,91,0,93,0,64,0\n79,0,29,0,87,0,37,0,35,0,90,0\n46,0,5,0,72,0,38,0,82,0,17,0\n2,0,44,0,56,0,39,0,80,0,8,0\n65,0,61,0,22,0,4,0,10,0,41,0\n94,0,9,0,28,0,40,0,36,0,88,0\n34,0,86,0,7,0,58,0,68,0,50,0\n1,0,62,0,33,0,69,0,26,0,71,0\n21,0,6,0,32,0,83,0,30,0,91,0\n47,0,73,0,90,0,54,0,25,0,23,0\n51,0,67,0,78,0,15,0,13,0,77,0\n44,0,93,0,82,0,60,0,63,0,29,0\n85,0,37,0,57,0,14,0,72,0,31,0\n17,0,87,0,59,0,48,0,22,0,49,0\n76,0,70,0,56,0,3,0,43,0,18,0\n16,0,40,0,41,0,52,0,11,0,53,0\n42,0,46,0,94,0,19,0,55,0,75,0\n39,0,35,0,12,0,10,0,5,0,27,0\n45,0,4,0,20,0,89,0,80,0,79,0\n38,0,61,0,92,0,66,0,81,0,8,0\n84,0,64,0,74,0,24,0,2,0,65,0\n1,0,93,0,37,0,78,0,9,0,47,0\n88,0,91,0,26,0,57,0,17,0,76,0\n77,0,85,0,21,0,59,0,34,0,43,0\n22,0,15,0,52,0,55,0,73,0,3,0\n68,0,14,0,90,0,82,0,42,0,48,0\n16,0,75,0,30,0,80,0,49,0,71,0\n39,0,50,0,92,0,87,0,41,0,33,0\n31,0,35,0,54,0,24,0,94,0,67,0\n72,0,29,0,32,0,61,0,18,0,20,0\n7,0,81,0,19,0,56,0,84,0,36,0\n10,0,11,0,38,0,74,0,83,0,69,0\n6,0,27,0,13,0,44,0,65,0,28,0\n40,0,25,0,4,0,5,0,64,0,60,0\n45,0,12,0,46,0,58,0,8,0,62,0\n70,0,23,0,51,0,86,0,2,0,89,0\n53,0,63,0,39,0,66,0,79,0,77,0\n67,0,29,0,48,0,9,0,21,0,92,0\n80,0,41,0,1,0,85,0,84,0,82,0\n24,0,30,0,59,0,73,0,78,0,7,0\n44,0,87,0,57,0,3,0,34,0,75,0\n38,0,22,0,56,0,40,0,33,0,91,0\n50,0,12,0,88,0,90,0,64,0,19,0\n5,0,93,0,89,0,49,0,13,0,26,0\n14,0,15,0,94,0,71,0,47,0,4,0\n52,0,79,0,8,0,83,0,31,0,18,0\n66,0,11,0,55,0,35,0,72,0,70,0\n43,0,54,0,81,0,65,0,37,0,17,0\n69,0,58,0,36,0,76,0,25,0,6,0\n46,0,51,0,27,0,20,0,63,0,74,0\n32,0,68,0,62,0,16,0,60,0,2,0\n28,0,86,0,53,0,45,0,10,0,42,0\n61,0,26,0,77,0,23,0,19,0,82,0\n15,0,88,0,49,0,38,0,44,0,1,0\n73,0,39,0,91,0,34,0,14,0,89,0\n66,0,5,0,57,0,84,0,18,0,71,0\n8,0,48,0,85,0,70,0,6,0,47,0\n63,0,4,0,52,0,7,0,37,0,33,0\n41,0,51,0,30,0,76,0,90,0,62,0\n78,0,36,0,53,0,72,0,74,0,50,0\n24,0,23,0,16,0,81,0,79,0,42,0\n43,0,31,0,29,0,46,0,80,0,28,0\n87,0,10,0,67,0,56,0,64,0,68,0\n86,0,60,0,12,0,65,0,83,0,59,0\n92,0,17,0,45,0,32,0,93,0,55,0\n69,0,2,0,54,0,13,0,61,0,40,0\n94,0,27,0,21,0,11,0,58,0,3,0\n25,0,35,0,9,0,20,0,75,0,22,0\n"
  },
  {
    "path": "schedules/95_1.csv",
    "content": "91,0,79,0,33,0,82,0,43,0,53,0\n55,0,69,0,74,0,52,0,2,0,51,0\n92,0,3,0,62,0,22,0,23,0,4,0\n11,0,85,0,27,0,68,0,94,0,83,0\n76,0,38,0,47,0,30,0,86,0,42,0\n35,0,15,0,46,0,32,0,67,0,6,0\n84,0,60,0,93,0,90,0,88,0,57,0\n8,0,80,0,81,0,36,0,65,0,77,0\n78,0,16,0,63,0,7,0,87,0,45,0\n28,0,14,0,19,0,50,0,41,0,18,0\n64,0,24,0,95,0,1,0,31,0,25,0\n26,0,29,0,75,0,21,0,71,0,20,0\n5,0,48,0,40,0,70,0,17,0,12,0\n13,0,56,0,61,0,66,0,58,0,34,0\n54,0,73,0,9,0,37,0,89,0,49,0\n72,0,59,0,10,0,44,0,39,0,65,1\n"
  },
  {
    "path": "schedules/95_10.csv",
    "content": "3,0,28,0,10,0,36,0,25,0,51,0\n19,0,89,0,15,0,30,0,88,0,31,0\n45,0,29,0,38,0,70,0,50,0,8,0\n37,0,18,0,65,0,76,0,57,0,43,0\n24,0,27,0,73,0,20,0,90,0,14,0\n49,0,83,0,52,0,16,0,61,0,84,0\n33,0,1,0,46,0,78,0,4,0,48,0\n80,0,55,0,69,0,72,0,13,0,2,0\n85,0,82,0,56,0,60,0,26,0,59,0\n87,0,68,0,53,0,12,0,95,0,77,0\n9,0,91,0,23,0,47,0,74,0,63,0\n17,0,32,0,40,0,64,0,58,0,42,0\n93,0,35,0,71,0,54,0,86,0,22,0\n11,0,75,0,67,0,79,0,21,0,39,0\n5,0,7,0,92,0,94,0,34,0,66,0\n62,0,81,0,6,0,41,0,44,0,73,0\n61,0,45,0,15,0,76,0,51,0,26,0\n31,0,3,0,53,0,59,0,46,0,13,0\n48,0,36,0,20,0,23,0,18,0,49,0\n52,0,85,0,42,0,72,0,25,0,9,0\n88,0,54,0,37,0,64,0,2,0,70,0\n40,0,91,0,16,0,39,0,93,0,69,0\n71,0,5,0,75,0,63,0,84,0,1,0\n28,0,82,0,19,0,29,0,24,0,79,0\n34,0,87,0,47,0,43,0,32,0,10,0\n21,0,81,0,22,0,33,0,92,0,12,0\n8,0,56,0,68,0,94,0,65,0,67,0\n77,0,11,0,44,0,30,0,4,0,55,0\n74,0,78,0,62,0,83,0,38,0,14,0\n7,0,90,0,50,0,58,0,95,0,86,0\n27,0,41,0,89,0,57,0,35,0,17,0\n6,0,66,0,48,0,80,0,60,0,19,0\n18,1,2,0,28,0,53,1,40,0,59,0\n16,1,54,0,63,0,92,1,10,0,45,0\n12,0,49,0,37,0,85,0,5,0,13,0\n22,0,36,0,9,0,65,0,73,0,84,0\n75,0,94,0,72,0,78,0,88,0,77,0\n76,0,46,0,71,0,67,0,50,0,52,0\n7,0,33,0,82,0,61,0,57,0,25,0\n43,0,95,0,30,0,81,0,38,0,80,0\n90,0,47,0,29,0,62,0,4,0,17,0\n27,0,68,0,42,0,23,0,15,0,11,0\n69,0,51,0,58,0,31,0,74,0,34,0\n20,0,41,0,79,0,32,0,60,0,93,0\n24,0,35,0,44,0,87,0,83,0,56,0\n8,0,26,0,21,0,55,0,91,0,66,0\n89,0,86,0,6,0,1,0,70,0,39,0\n14,0,43,0,49,0,3,0,64,0,77,0\n38,0,67,0,19,0,40,0,85,0,92,0\n42,0,50,0,5,0,16,0,48,0,82,0\n36,0,31,0,76,0,54,0,90,0,81,0\n65,0,72,0,95,0,28,0,17,0,61,0\n58,0,13,0,94,0,29,0,27,0,52,0\n7,0,93,0,11,0,18,0,63,0,87,0\n32,0,4,0,21,0,45,0,2,0,6,0\n14,0,70,0,59,0,44,0,75,0,9,0\n56,0,53,0,25,0,89,0,80,0,78,0\n10,0,55,0,39,0,71,0,41,0,88,0\n33,0,69,0,73,0,3,0,26,0,68,0\n22,0,57,0,66,0,24,0,30,0,47,0\n84,0,91,0,12,0,15,0,79,0,62,0\n83,0,60,0,23,0,34,0,37,0,46,0\n8,0,51,0,20,0,35,0,1,0,64,0\n74,0,32,0,72,0,86,0,81,0,11,0\n2,0,65,0,16,0,19,0,14,0,87,0\n93,0,44,0,58,0,88,0,82,0,49,0\n92,0,77,0,27,0,76,0,48,0,28,0\n50,0,18,0,33,0,24,0,10,0,89,0\n30,0,71,0,17,0,3,0,78,0,12,0\n54,0,15,0,84,0,59,0,57,0,67,0\n94,0,25,0,70,0,22,0,69,0,53,0\n46,0,91,0,86,0,64,0,41,0,85,0\n34,0,38,0,90,0,26,0,6,0,63,0\n79,0,47,0,55,0,1,0,45,0,31,0\n35,0,61,0,23,0,40,0,4,0,5,0\n80,0,83,0,42,0,73,0,75,0,8,0\n62,0,66,0,52,0,68,0,36,0,37,0\n9,0,29,0,95,0,51,0,60,0,39,0\n13,0,21,0,43,0,7,0,56,0,74,0\n20,0,58,0,77,0,91,0,19,0,10,0\n2,0,25,0,44,0,38,0,17,0,84,0\n18,0,14,0,69,0,32,0,82,0,46,0\n85,0,57,0,53,0,71,0,11,0,6,0\n83,0,3,0,55,0,50,0,27,0,22,0\n31,0,16,0,41,0,65,0,12,0,23,0\n70,0,93,0,81,0,66,0,42,0,61,0\n35,0,26,0,75,0,49,0,29,0,92,0\n36,0,5,0,8,0,43,0,60,0,33,0\n1,0,37,0,87,0,90,0,72,0,67,0\n28,0,4,0,34,0,88,0,9,0,15,0\n86,0,80,0,51,0,62,0,24,0,21,0\n54,0,47,0,40,0,20,0,56,0,52,0\n39,0,59,0,7,0,30,0,48,0,45,0\n79,0,74,0,94,0,76,0,89,0,73,0\n64,0,13,0,78,0,95,0,68,0,63,0\n60,0,57,0,3,0,58,0,16,0,81,0\n77,0,67,0,18,0,6,0,29,0,42,0\n12,0,43,0,28,0,44,0,1,0,66,0\n27,0,86,0,84,0,4,0,26,0,10,0\n83,0,15,0,92,0,20,0,71,0,2,0\n70,0,80,0,90,0,33,0,91,0,11,0\n65,0,52,0,53,0,35,0,74,0,45,0\n78,0,73,0,59,0,19,0,47,0,61,0\n89,0,51,0,14,0,7,0,22,0,85,0\n13,0,23,0,25,0,32,0,75,0,50,0\n72,0,48,0,93,0,31,0,38,0,68,0\n82,0,41,0,30,0,87,0,8,0,76,0\n5,0,55,0,64,0,9,0,62,0,56,0\n95,0,49,0,79,0,54,0,34,0,69,0\n21,0,63,0,88,0,40,0,36,0,46,0\n39,0,24,0,81,0,37,0,17,0,94,0\n19,0,35,0,84,0,18,0,3,0,70,0\n57,0,32,0,77,0,73,0,52,0,51,0\n75,0,60,0,45,0,90,0,22,0,68,0\n71,0,7,0,16,0,72,0,8,0,27,0\n61,0,92,0,50,0,30,0,56,0,91,0\n1,0,62,0,10,0,93,0,23,0,95,0\n14,0,88,0,26,0,80,0,47,0,5,0\n29,0,85,0,65,0,21,0,20,0,44,0\n12,0,4,0,39,0,25,0,54,0,83,0\n76,0,42,0,34,0,86,0,33,0,53,0\n48,0,58,0,63,0,89,0,37,0,55,0\n6,0,17,0,87,0,46,0,74,0,15,0\n9,0,79,0,78,0,49,0,2,0,66,0\n38,0,64,0,24,0,59,0,36,0,69,0\n31,0,11,0,43,0,82,0,40,0,94,0\n41,0,67,0,22,0,28,0,13,0,80,0\n12,0,35,0,72,0,50,0,60,0,14,0\n34,0,81,0,91,0,27,0,25,0,18,0\n62,0,88,0,32,0,8,0,61,0,53,0\n95,0,37,0,74,0,44,0,42,0,92,0\n49,0,4,0,73,0,70,0,71,0,56,0\n90,0,64,0,84,0,93,0,21,0,89,0\n82,0,86,0,77,0,47,0,36,0,15,0\n6,0,59,0,94,0,55,0,16,0,20,0\n45,0,67,0,23,0,43,0,78,0,58,0\n76,0,1,0,17,0,13,0,19,0,9,0\n3,0,24,0,52,0,7,0,75,0,41,0\n54,0,46,0,66,0,51,0,38,0,11,0\n57,0,48,0,40,0,26,0,83,0,79,0\n30,0,10,0,68,0,5,0,2,0,29,0\n31,0,87,0,33,0,28,0,39,0,85,0\n69,0,63,0,89,0,65,0,77,0,81,0\n60,0,44,0,47,0,18,0,71,0,94,0\n50,0,93,0,4,0,53,0,19,0,43,0\n27,0,64,0,61,0,6,0,75,0,12,0\n51,0,23,0,92,0,82,0,72,0,84,0\n16,0,70,0,78,0,15,0,24,0,32,0\n13,0,45,0,14,0,36,0,11,0,34,0\n39,0,22,0,2,0,62,0,76,0,58,0\n26,0,31,0,25,0,95,0,67,0,20,0\n10,0,40,0,80,0,7,0,9,0,37,0\n46,0,49,0,68,0,57,0,55,0,90,0\n48,0,85,0,74,0,54,0,8,0,3,0\n29,0,63,0,56,0,33,0,66,0,41,0\n42,0,30,0,21,0,28,0,69,0,35,0\n65,0,88,0,59,0,91,0,1,0,83,0\n87,0,38,0,79,0,5,0,86,0,52,0\n73,0,18,0,16,0,17,0,53,0,92,0\n"
  },
  {
    "path": "schedules/95_11.csv",
    "content": "35,0,3,0,82,0,6,0,86,0,23,0\n70,0,89,0,21,0,58,0,17,0,30,0\n84,0,31,0,56,0,63,0,9,0,40,0\n32,0,47,0,24,0,80,0,2,0,39,0\n93,0,22,0,65,0,94,0,73,0,81,0\n26,0,88,0,91,0,34,0,69,0,28,0\n68,0,38,0,12,0,44,0,90,0,14,0\n64,0,20,0,41,0,46,0,60,0,87,0\n78,0,19,0,53,0,66,0,7,0,49,0\n36,0,59,0,37,0,10,0,95,0,18,0\n48,0,33,0,1,0,76,0,61,0,79,0\n52,0,57,0,51,0,43,0,27,0,50,0\n15,0,54,0,5,0,71,0,77,0,72,0\n67,0,4,0,83,0,92,0,74,0,8,0\n75,0,85,0,55,0,25,0,11,0,16,0\n45,0,42,0,13,0,29,0,62,0,9,0\n60,0,90,0,17,0,82,0,19,0,80,0\n12,0,22,0,47,0,58,0,6,0,37,0\n14,0,1,0,28,0,86,0,24,0,64,0\n87,0,30,0,26,0,59,0,35,0,7,0\n5,0,40,0,21,0,51,0,53,0,88,0\n57,0,23,0,89,0,95,0,38,0,31,0\n54,0,76,0,68,0,43,0,67,0,3,0\n66,0,92,0,42,0,33,0,52,0,71,0\n65,0,70,0,2,0,16,0,91,0,72,0\n84,0,69,0,79,0,36,0,75,0,50,0\n73,0,39,0,4,0,46,0,18,0,63,0\n56,0,45,0,85,0,48,0,94,0,41,0\n10,0,34,0,32,0,8,0,62,0,93,0\n83,0,81,0,11,0,15,0,78,0,29,0\n49,0,25,0,27,0,77,0,44,0,20,0\n13,0,55,0,54,0,74,0,61,0,59,0\n68,1,7,0,95,0,64,1,17,0,65,0\n72,1,1,0,37,0,21,1,67,0,23,0\n33,1,90,0,46,0,86,0,31,0,69,0\n16,0,4,0,66,0,14,0,30,0,60,0\n24,0,39,0,56,0,10,0,88,0,76,0\n62,0,85,0,81,0,92,0,89,0,26,0\n3,0,41,0,52,0,75,0,93,0,70,0\n29,0,22,0,38,0,35,0,5,0,74,0\n73,0,80,0,57,0,53,0,36,0,9,0\n34,0,18,0,12,0,55,0,83,0,51,0\n63,0,47,0,45,0,78,0,79,0,27,0\n28,0,50,0,15,0,32,0,58,0,25,0\n94,0,13,0,43,0,84,0,6,0,20,0\n40,0,82,0,49,0,42,0,87,0,48,0\n11,0,8,0,71,0,44,0,61,0,2,0\n91,0,19,0,52,0,77,0,64,0,23,0\n93,0,33,0,7,0,22,0,54,0,80,0\n10,0,39,0,55,0,38,0,86,0,60,0\n62,0,72,0,53,0,46,0,75,0,14,0\n90,0,26,0,58,0,66,0,74,0,41,0\n28,0,3,0,20,0,56,0,79,0,37,0\n13,0,82,0,76,0,70,0,5,0,4,0\n36,0,89,0,42,0,1,0,27,0,83,0\n50,0,35,0,77,0,81,0,21,0,47,0\n18,0,2,0,92,0,43,0,30,0,40,0\n84,0,48,0,32,0,65,0,67,0,19,0\n6,0,44,0,88,0,16,0,78,0,95,0\n87,0,57,0,61,0,24,0,34,0,63,0\n25,0,8,0,17,0,59,0,29,0,45,0\n12,0,73,0,69,0,15,0,85,0,49,0\n68,0,9,0,91,0,94,0,71,0,51,0\n31,0,22,0,79,0,11,0,14,0,52,0\n56,0,23,0,75,0,42,0,58,0,43,0\n81,0,74,0,28,0,27,0,82,0,33,0\n32,0,1,0,6,0,53,0,60,0,92,0\n72,0,36,0,78,0,3,0,4,0,38,0\n18,0,16,0,17,0,93,0,50,0,13,0\n89,0,10,0,12,0,67,0,87,0,45,0\n21,0,76,0,41,0,80,0,29,0,91,0\n51,0,85,0,63,0,20,0,90,0,59,0\n34,0,35,0,44,0,54,0,73,0,84,0\n46,0,68,0,15,0,8,0,66,0,47,0\n48,0,5,0,9,0,64,0,55,0,26,0\n62,0,65,0,49,0,30,0,88,0,86,0\n25,0,40,0,95,0,83,0,19,0,61,0\n11,0,77,0,70,0,94,0,57,0,39,0\n37,0,69,0,24,0,7,0,71,0,31,0\n2,0,93,0,63,0,28,0,53,0,23,0\n4,0,91,0,32,0,56,0,12,0,54,0\n84,0,92,0,16,0,22,0,68,0,87,0\n52,0,72,0,80,0,89,0,55,0,20,0\n38,0,6,0,50,0,64,0,62,0,59,0\n61,0,36,0,14,0,43,0,47,0,41,0\n30,0,19,0,8,0,57,0,42,0,85,0\n51,0,78,0,70,0,33,0,69,0,95,0\n24,0,48,0,90,0,13,0,25,0,35,0\n27,0,67,0,7,0,60,0,73,0,11,0\n65,0,83,0,79,0,44,0,5,0,46,0\n1,0,3,0,9,0,18,0,88,0,81,0\n29,0,58,0,94,0,34,0,71,0,40,0\n74,0,76,0,37,0,45,0,77,0,86,0\n26,0,15,0,17,0,31,0,49,0,39,0\n21,0,75,0,2,0,82,0,66,0,10,0\n14,0,20,0,95,0,93,0,42,0,35,0\n72,0,28,0,7,0,48,0,8,0,51,0\n50,0,41,0,30,0,55,0,78,0,67,0\n65,0,3,0,27,0,61,0,92,0,69,0\n60,0,18,0,33,0,57,0,84,0,58,0\n59,0,77,0,22,0,56,0,53,0,89,0\n39,0,29,0,64,0,54,0,79,0,90,0\n80,0,44,0,94,0,23,0,46,0,26,0\n6,0,15,0,21,0,9,0,76,0,34,0\n70,0,38,0,87,0,19,0,1,0,47,0\n88,0,68,0,45,0,82,0,36,0,31,0\n12,0,81,0,86,0,2,0,52,0,25,0\n73,0,71,0,75,0,83,0,13,0,32,0\n4,0,17,0,11,0,24,0,62,0,40,0\n37,0,85,0,5,0,43,0,66,0,91,0\n74,0,49,0,10,0,63,0,16,0,3,0\n41,0,59,0,92,0,34,0,79,0,72,0\n42,0,76,0,47,0,51,0,60,0,65,0\n20,0,23,0,9,0,8,0,22,0,50,0\n93,0,55,0,82,0,1,0,56,0,15,0\n69,0,2,0,58,0,14,0,13,0,87,0\n86,0,44,0,57,0,32,0,7,0,21,0\n6,0,31,0,61,0,28,0,70,0,18,0\n27,0,46,0,54,0,10,0,40,0,85,0\n81,0,95,0,67,0,91,0,75,0,39,0\n78,0,25,0,64,0,74,0,89,0,73,0\n83,0,77,0,24,0,84,0,38,0,66,0\n30,0,71,0,48,0,88,0,17,0,12,0\n35,0,68,0,53,0,52,0,4,0,37,0\n19,0,29,0,63,0,26,0,43,0,33,0\n62,0,16,0,94,0,90,0,36,0,5,0\n49,0,11,0,92,0,45,0,80,0,50,0\n51,0,23,0,10,0,79,0,81,0,13,0\n1,0,95,0,74,0,85,0,34,0,2,0\n66,0,44,0,72,0,40,0,69,0,22,0\n42,0,61,0,17,0,67,0,38,0,46,0\n71,0,14,0,25,0,57,0,65,0,56,0\n73,0,29,0,31,0,75,0,48,0,77,0\n55,0,59,0,19,0,4,0,94,0,21,0\n27,0,88,0,32,0,70,0,37,0,64,0\n60,0,43,0,9,0,28,0,83,0,49,0\n30,0,91,0,90,0,15,0,11,0,3,0\n78,0,87,0,8,0,18,0,86,0,80,0\n20,0,47,0,54,0,45,0,16,0,26,0\n53,0,82,0,41,0,39,0,84,0,12,0\n58,0,63,0,62,0,52,0,76,0,7,0\n89,0,93,0,6,0,5,0,24,0,68,0\n36,0,35,0,32,0,33,0,17,0,85,0\n74,0,31,0,72,0,94,0,42,0,50,0\n30,0,66,0,34,0,64,0,81,0,56,0\n95,0,13,0,46,0,28,0,21,0,11,0\n61,0,86,0,51,0,26,0,4,0,22,0\n14,0,37,0,10,0,48,0,92,0,15,0\n78,0,62,0,83,0,57,0,91,0,82,0\n24,0,70,0,7,0,12,0,20,0,29,0\n63,0,80,0,69,0,77,0,1,0,68,0\n18,0,44,0,89,0,75,0,76,0,19,0\n33,0,3,0,73,0,5,0,2,0,45,0\n39,0,40,0,36,0,8,0,52,0,6,0\n16,0,67,0,79,0,58,0,35,0,27,0\n90,0,87,0,43,0,65,0,53,0,55,0\n38,0,88,0,9,0,54,0,25,0,41,0\n23,0,49,0,71,0,47,0,84,0,59,0\n60,0,85,0,61,0,93,0,29,0,72,0\n56,0,18,0,69,0,74,0,21,0,62,0\n82,0,95,0,22,0,63,0,30,0,32,0\n26,0,73,0,50,0,68,0,10,0,70,0\n77,0,4,0,79,0,2,0,7,0,42,0\n94,0,53,0,67,0,33,0,24,0,15,0\n5,0,20,0,86,0,19,0,11,0,34,0\n92,0,45,0,51,0,64,0,44,0,58,0\n41,0,57,0,81,0,54,0,49,0,37,0\n71,0,43,0,39,0,1,0,35,0,78,0\n8,0,31,0,60,0,13,0,12,0,3,0\n66,0,87,0,25,0,76,0,23,0,36,0\n48,0,46,0,52,0,16,0,9,0,59,0\n14,0,91,0,27,0,55,0,6,0,17,0\n80,0,40,0,75,0,38,0,65,0,28,0\n47,0,88,0,93,0,84,0,89,0,90,0\n83,0,64,0,21,0,68,0,72,0,33,0\n"
  },
  {
    "path": "schedules/95_12.csv",
    "content": "85,0,75,0,90,0,72,0,78,0,13,0\n86,0,32,0,34,0,11,0,57,0,58,0\n77,0,50,0,91,0,2,0,15,0,55,0\n41,0,48,0,80,0,83,0,25,0,94,0\n60,0,47,0,59,0,6,0,35,0,42,0\n67,0,70,0,65,0,20,0,12,0,23,0\n27,0,10,0,24,0,22,0,19,0,39,0\n31,0,36,0,81,0,44,0,93,0,46,0\n8,0,92,0,21,0,69,0,5,0,9,0\n43,0,79,0,53,0,28,0,45,0,18,0\n49,0,66,0,61,0,3,0,30,0,73,0\n16,0,4,0,71,0,7,0,87,0,68,0\n54,0,63,0,52,0,37,0,40,0,29,0\n74,0,62,0,89,0,33,0,1,0,26,0\n84,0,38,0,95,0,64,0,88,0,14,0\n56,0,76,0,82,0,17,0,51,0,48,0\n5,0,94,0,36,0,72,0,32,0,69,0\n19,0,11,0,12,0,6,0,50,0,44,0\n73,0,41,0,47,0,2,0,27,0,92,0\n28,0,49,0,8,0,67,0,87,0,66,0\n79,0,61,0,58,0,63,0,78,0,16,0\n18,0,68,0,90,0,26,0,9,0,39,0\n13,0,29,0,83,0,7,0,89,0,10,0\n38,0,33,0,4,0,22,0,46,0,43,0\n76,0,95,0,23,0,34,0,55,0,60,0\n74,0,37,0,77,0,64,0,70,0,42,0\n35,0,51,0,86,0,80,0,52,0,14,0\n3,0,81,0,54,0,53,0,25,0,17,0\n82,0,65,0,91,0,40,0,1,0,31,0\n71,0,57,0,56,0,62,0,85,0,88,0\n24,0,30,0,45,0,15,0,75,0,84,0\n93,0,20,0,38,0,21,0,59,0,90,0\n29,0,2,0,49,0,23,0,27,0,18,0\n47,0,70,0,36,0,11,0,28,0,78,0\n39,0,76,0,72,0,80,0,4,0,74,0\n13,0,33,0,12,0,94,0,60,0,54,0\n17,0,14,0,5,0,26,0,77,0,66,0\n56,0,41,0,87,0,81,0,43,0,86,0\n42,0,91,0,52,0,61,0,75,0,62,0\n34,0,8,0,68,0,50,0,64,0,25,0\n89,0,3,0,6,0,57,0,24,0,82,0\n65,0,10,0,51,0,55,0,45,0,9,0\n79,0,48,0,1,0,15,0,40,0,32,0\n69,0,44,0,22,0,20,0,37,0,71,0\n31,0,88,0,92,0,35,0,58,0,19,0\n83,0,21,0,67,0,59,0,63,0,30,0\n73,0,16,0,95,0,85,0,53,0,93,0\n84,0,7,0,12,0,46,0,25,0,39,0\n76,0,27,0,66,0,81,0,50,0,89,0\n75,0,5,0,10,0,64,0,33,0,82,0\n14,0,15,0,36,0,4,0,65,0,90,0\n55,0,94,0,52,0,43,0,3,0,56,0\n24,0,35,0,61,0,23,0,11,0,74,0\n57,0,28,0,80,0,38,0,77,0,19,0\n22,0,72,0,68,0,40,0,42,0,95,0\n79,0,71,0,69,0,34,0,59,0,49,0\n88,0,32,0,17,0,29,0,63,0,93,0\n58,0,20,0,83,0,53,0,26,0,47,0\n21,0,84,0,2,0,62,0,67,0,86,0\n85,0,87,0,18,0,51,0,92,0,54,0\n6,0,48,0,31,0,13,0,30,0,8,0\n1,0,44,0,45,0,70,0,16,0,41,0\n37,0,46,0,9,0,73,0,91,0,78,0\n7,0,82,0,72,0,60,0,28,0,65,0\n88,0,23,0,66,0,75,0,11,0,39,0\n40,0,49,0,43,0,25,0,77,0,35,0\n56,0,38,0,29,0,34,0,79,0,5,0\n33,0,81,0,47,0,32,0,95,0,67,0\n83,0,51,0,12,0,8,0,61,0,64,0\n90,0,26,0,6,0,94,0,84,0,1,0\n63,0,92,0,70,0,91,0,3,0,71,0\n86,0,9,0,76,0,13,0,36,0,24,0\n59,0,41,0,7,0,22,0,62,0,53,0\n89,0,42,0,21,0,44,0,78,0,18,0\n17,0,87,0,37,0,2,0,10,0,31,0\n57,0,16,0,60,0,74,0,14,0,46,0\n58,0,30,0,4,0,93,0,27,0,54,0\n68,0,73,0,15,0,80,0,19,0,69,0\n50,0,52,0,85,0,48,0,45,0,20,0\n55,0,90,0,5,0,28,0,81,0,63,0\n53,0,39,0,35,0,64,0,36,0,86,0\n3,0,72,0,9,0,83,0,84,0,23,0\n18,0,8,0,24,0,37,0,95,0,56,0\n91,0,22,0,31,0,74,0,88,0,79,0\n46,0,51,0,60,0,21,0,29,0,11,0\n69,0,40,0,62,0,87,0,12,0,30,0\n94,0,45,0,89,0,49,0,4,0,92,0\n44,0,52,0,65,0,58,0,66,0,68,0\n78,0,43,0,71,0,73,0,32,0,82,0\n20,0,1,0,16,0,77,0,76,0,54,0\n70,0,14,0,19,0,33,0,34,0,7,0\n26,0,67,0,42,0,41,0,85,0,10,0\n27,0,13,0,6,0,17,0,15,0,38,0\n57,0,55,0,48,0,47,0,75,0,93,0\n80,0,25,0,59,0,2,0,50,0,61,0\n88,0,90,0,89,0,3,0,60,0,8,0\n71,0,28,0,64,0,40,0,24,0,46,0\n62,0,77,0,18,0,83,0,31,0,72,0\n16,0,19,0,29,0,86,0,82,0,30,0\n4,0,10,0,73,0,52,0,12,0,81,0\n39,0,17,0,41,0,91,0,79,0,85,0\n5,0,6,0,78,0,74,0,68,0,67,0\n15,0,35,0,33,0,9,0,66,0,56,0\n13,0,1,0,93,0,2,0,42,0,69,0\n87,0,47,0,45,0,23,0,21,0,80,0\n25,0,32,0,58,0,38,0,55,0,51,0\n11,0,63,0,44,0,53,0,14,0,27,0\n50,0,76,0,75,0,92,0,22,0,65,0\n7,0,61,0,57,0,20,0,94,0,95,0\n43,0,36,0,84,0,34,0,70,0,54,0\n26,0,48,0,49,0,37,0,59,0,19,0\n78,0,69,0,17,0,52,0,18,0,4,0\n66,0,33,0,29,0,45,0,72,0,91,0\n6,0,40,0,58,0,21,0,73,0,39,0\n55,0,27,0,83,0,88,0,68,0,82,0\n71,0,11,0,30,0,76,0,64,0,90,0\n31,0,12,0,14,0,89,0,20,0,41,0\n80,0,62,0,16,0,92,0,60,0,81,0\n13,0,46,0,34,0,35,0,87,0,26,0\n59,0,53,0,1,0,57,0,43,0,9,0\n10,0,74,0,54,0,32,0,8,0,93,0\n84,0,25,0,22,0,56,0,63,0,47,0\n15,0,61,0,37,0,7,0,5,0,85,0\n23,0,49,0,42,0,50,0,36,0,51,0\n65,0,77,0,79,0,94,0,24,0,67,0\n2,0,44,0,3,0,28,0,48,0,95,0\n86,0,70,0,60,0,38,0,75,0,31,0\n14,0,30,0,81,0,68,0,71,0,1,0\n18,0,64,0,20,0,13,0,91,0,80,0\n84,0,73,0,74,0,55,0,59,0,29,0\n43,0,89,0,39,0,17,0,61,0,47,0\n66,0,93,0,19,0,62,0,78,0,51,0\n23,0,22,0,8,0,58,0,16,0,85,0\n92,0,52,0,83,0,11,0,42,0,79,0\n87,0,63,0,33,0,38,0,36,0,48,0\n34,0,9,0,75,0,40,0,67,0,44,0\n95,0,10,0,25,0,15,0,28,0,21,0\n26,0,5,0,12,0,45,0,76,0,3,0\n53,0,65,0,56,0,6,0,37,0,32,0\n90,0,77,0,27,0,7,0,86,0,69,0\n2,0,82,0,70,0,57,0,4,0,35,0\n72,0,24,0,54,0,88,0,49,0,41,0\n46,0,50,0,23,0,94,0,18,0,30,0\n63,0,89,0,64,0,9,0,19,0,87,0\n8,0,55,0,42,0,71,0,33,0,17,0\n22,0,66,0,34,0,1,0,80,0,12,0\n81,0,20,0,26,0,39,0,92,0,29,0\n75,0,43,0,74,0,69,0,95,0,51,0\n57,0,93,0,67,0,76,0,91,0,25,0\n6,0,7,0,36,0,88,0,52,0,45,0\n60,0,15,0,78,0,49,0,83,0,44,0\n31,0,73,0,5,0,90,0,24,0,48,0\n56,0,77,0,4,0,61,0,53,0,21,0\n38,0,72,0,11,0,10,0,16,0,68,0\n28,0,32,0,50,0,84,0,35,0,41,0\n54,0,86,0,46,0,65,0,47,0,3,0\n13,0,37,0,82,0,14,0,58,0,62,0\n59,0,85,0,94,0,27,0,40,0,70,0\n2,0,51,0,9,0,79,0,6,0,81,0\n64,0,91,0,23,0,44,0,7,0,43,0\n1,0,95,0,17,0,36,0,83,0,19,0\n52,0,21,0,57,0,33,0,31,0,49,0\n30,0,69,0,55,0,89,0,72,0,35,0\n26,0,28,0,61,0,54,0,22,0,75,0\n11,0,67,0,25,0,45,0,73,0,13,0\n50,0,60,0,58,0,56,0,70,0,10,0\n14,0,93,0,3,0,15,0,87,0,39,0\n29,0,94,0,68,0,47,0,76,0,62,0\n20,0,85,0,24,0,2,0,63,0,66,0\n78,0,84,0,92,0,12,0,77,0,48,0\n38,0,18,0,41,0,65,0,71,0,74,0\n90,0,42,0,32,0,34,0,27,0,16,0\n80,0,53,0,82,0,79,0,46,0,8,0\n88,0,59,0,40,0,5,0,4,0,86,0\n37,0,14,0,67,0,61,0,72,0,55,0\n81,0,75,0,35,0,7,0,21,0,94,0\n76,0,10,0,83,0,70,0,49,0,6,0\n39,0,78,0,54,0,50,0,69,0,31,0\n45,0,64,0,17,0,73,0,57,0,22,0\n9,0,71,0,58,0,95,0,29,0,12,0\n74,0,82,0,25,0,90,0,66,0,92,0\n60,0,19,0,2,0,52,0,43,0,5,0\n88,0,48,0,34,0,16,0,18,0,65,0\n44,0,47,0,85,0,38,0,30,0,1,0\n37,0,86,0,28,0,23,0,33,0,89,0\n32,0,59,0,46,0,77,0,68,0,13,0\n87,0,53,0,91,0,42,0,24,0,84,0\n15,0,63,0,4,0,51,0,41,0,8,0\n3,0,62,0,79,0,36,0,27,0,20,0\n40,0,93,0,11,0,80,0,56,0,26,0\n"
  },
  {
    "path": "schedules/95_13.csv",
    "content": "84,0,90,0,57,0,65,0,70,0,2,0\n35,0,61,0,3,0,34,0,78,0,77,0\n49,0,44,0,95,0,22,0,56,0,75,0\n16,0,87,0,82,0,33,0,23,0,69,0\n7,0,58,0,18,0,25,0,83,0,91,0\n32,0,63,0,31,0,28,0,37,0,21,0\n14,0,54,0,79,0,89,0,36,0,93,0\n46,0,50,0,64,0,67,0,51,0,12,0\n66,0,53,0,27,0,42,0,80,0,55,0\n71,0,4,0,52,0,11,0,15,0,20,0\n17,0,30,0,60,0,6,0,19,0,39,0\n45,0,47,0,41,0,5,0,62,0,48,0\n68,0,8,0,92,0,1,0,72,0,10,0\n29,0,13,0,43,0,24,0,74,0,73,0\n81,0,38,0,94,0,40,0,88,0,26,0\n86,0,76,0,9,0,85,0,59,0,33,0\n77,0,80,0,22,0,90,0,14,0,91,0\n75,0,65,0,37,0,78,0,15,0,87,0\n39,0,42,0,28,0,49,0,4,0,35,0\n27,0,71,0,36,0,51,0,41,0,7,0\n60,0,79,0,53,0,34,0,8,0,64,0\n89,0,12,0,13,0,84,0,44,0,6,0\n74,0,19,0,47,0,92,0,25,0,38,0\n3,0,85,0,46,0,69,0,26,0,30,0\n70,0,61,0,40,0,76,0,21,0,55,0\n57,0,59,0,45,0,67,0,93,0,63,0\n31,0,81,0,72,0,17,0,43,0,82,0\n56,0,32,0,73,0,11,0,10,0,88,0\n9,0,54,0,83,0,95,0,16,0,29,0\n1,0,5,0,24,0,52,0,18,0,86,0\n94,0,20,0,50,0,48,0,2,0,58,0\n23,0,66,0,36,0,62,0,68,0,12,0\n51,1,25,0,33,0,80,0,37,0,13,0\n65,0,67,0,4,0,22,0,76,0,92,0\n91,0,69,0,40,0,75,0,45,0,30,0\n77,0,59,0,89,0,38,0,60,0,41,0\n71,0,8,0,47,0,82,0,93,0,61,0\n1,0,42,0,34,0,83,0,63,0,74,0\n7,0,26,0,70,0,64,0,5,0,44,0\n35,0,90,0,10,0,29,0,27,0,31,0\n87,0,55,0,46,0,54,0,73,0,86,0\n11,0,2,0,6,0,81,0,62,0,9,0\n15,0,3,0,66,0,57,0,17,0,50,0\n24,0,53,0,72,0,28,0,56,0,94,0\n88,0,78,0,18,0,68,0,43,0,49,0\n23,0,19,0,21,0,95,0,58,0,14,0\n84,0,79,0,16,0,20,0,48,0,85,0\n32,0,52,0,89,0,39,0,26,0,82,0\n61,0,47,0,46,0,91,0,36,0,7,0\n44,0,92,0,41,0,35,0,86,0,80,0\n1,0,11,0,93,0,31,0,40,0,13,0\n54,0,15,0,8,0,30,0,33,0,2,0\n83,0,38,0,87,0,28,0,5,0,51,0\n58,0,90,0,62,0,24,0,71,0,60,0\n3,0,74,0,55,0,16,0,88,0,59,0\n14,0,27,0,9,0,43,0,32,0,65,0\n10,0,69,0,63,0,18,0,95,0,81,0\n20,0,53,0,49,0,6,0,76,0,73,0\n56,0,34,0,52,0,19,0,42,0,70,0\n4,0,75,0,66,0,94,0,79,0,67,0\n77,0,68,0,45,0,85,0,37,0,17,0\n72,0,48,0,64,0,23,0,57,0,29,0\n21,0,84,0,25,0,22,0,50,0,39,0\n12,0,15,0,28,0,78,0,91,0,55,0\n83,0,32,0,81,0,44,0,46,0,33,0\n62,0,43,0,20,0,80,0,10,0,89,0\n90,0,13,0,86,0,42,0,95,0,8,0\n14,0,11,0,67,0,34,0,49,0,54,0\n68,0,3,0,9,0,24,0,70,0,75,0\n94,0,29,0,60,0,1,0,7,0,16,0\n50,0,84,0,30,0,74,0,23,0,41,0\n61,0,39,0,92,0,31,0,59,0,12,0\n17,0,69,0,77,0,64,0,58,0,65,0\n71,0,76,0,48,0,63,0,25,0,52,0\n40,0,53,0,36,0,19,0,4,0,87,0\n73,0,51,0,21,0,47,0,26,0,35,0\n18,0,85,0,6,0,22,0,27,0,93,0\n82,0,56,0,57,0,78,0,45,0,38,0\n88,0,72,0,37,0,2,0,5,0,79,0\n49,0,8,0,23,0,66,0,9,0,31,0\n61,0,44,0,60,0,11,0,84,0,42,0\n39,0,15,0,76,0,41,0,62,0,29,0\n67,0,91,0,68,0,19,0,53,0,48,0\n12,0,40,0,32,0,47,0,90,0,16,0\n80,0,81,0,4,0,73,0,93,0,3,0\n36,0,33,0,28,0,75,0,57,0,18,0\n22,0,21,0,70,0,89,0,17,0,27,0\n5,0,43,0,95,0,82,0,46,0,77,0\n34,0,94,0,59,0,37,0,51,0,10,0\n78,0,13,0,30,0,7,0,92,0,79,0\n65,0,6,0,54,0,38,0,71,0,1,0\n58,0,74,0,85,0,52,0,72,0,87,0\n26,0,86,0,14,0,20,0,45,0,66,0\n35,0,69,0,50,0,56,0,63,0,88,0\n25,0,2,0,24,0,55,0,83,0,64,0\n42,0,91,0,3,0,23,0,89,0,76,0\n4,0,40,0,37,0,84,0,17,0,29,0\n67,0,33,0,10,0,30,0,21,0,5,0\n51,0,65,0,95,0,60,0,68,0,31,0\n19,0,71,0,9,0,72,0,77,0,44,0\n86,0,39,0,16,0,43,0,58,0,6,0\n45,0,18,0,79,0,73,0,12,0,70,0\n46,0,2,0,52,0,41,0,13,0,28,0\n8,0,7,0,75,0,34,0,80,0,32,0\n1,0,22,0,88,0,64,0,66,0,61,0\n93,0,92,0,94,0,83,0,69,0,15,0\n27,0,50,0,90,0,26,0,78,0,54,0\n47,0,11,0,24,0,59,0,63,0,53,0\n74,0,82,0,38,0,48,0,49,0,36,0\n57,0,20,0,35,0,81,0,25,0,87,0\n85,0,14,0,62,0,55,0,56,0,13,0\n65,0,34,0,44,0,16,0,18,0,30,0\n4,0,5,0,68,0,61,0,58,0,32,0\n19,0,28,0,31,0,22,0,33,0,79,0\n45,0,64,0,9,0,76,0,52,0,10,0\n69,0,24,0,54,0,72,0,7,0,84,0\n3,0,21,0,38,0,53,0,2,0,86,0\n42,0,27,0,75,0,46,0,93,0,88,0\n80,0,47,0,60,0,49,0,85,0,15,0\n81,0,59,0,78,0,48,0,14,0,23,0\n11,0,70,0,94,0,95,0,35,0,74,0\n66,0,29,0,39,0,77,0,63,0,87,0\n17,0,8,0,56,0,51,0,20,0,91,0\n41,0,12,0,90,0,83,0,43,0,57,0\n25,0,55,0,1,0,26,0,36,0,67,0\n73,0,82,0,92,0,62,0,40,0,6,0\n50,0,89,0,18,0,37,0,71,0,32,0\n31,0,22,0,7,0,3,0,52,0,81,0\n76,0,13,0,68,0,69,0,34,0,38,0\n35,0,5,0,15,0,53,0,84,0,14,0\n93,0,48,0,86,0,28,0,60,0,70,0\n17,0,75,0,33,0,12,0,11,0,74,0\n26,0,65,0,23,0,56,0,61,0,80,0\n41,0,88,0,54,0,4,0,82,0,9,0\n79,0,57,0,27,0,47,0,39,0,44,0\n59,0,20,0,30,0,36,0,83,0,29,0\n6,0,91,0,87,0,10,0,24,0,50,0\n58,0,1,0,51,0,45,0,49,0,89,0\n73,0,2,0,67,0,42,0,71,0,77,0\n21,0,92,0,64,0,94,0,90,0,85,0\n62,0,63,0,16,0,8,0,19,0,46,0\n66,0,95,0,25,0,40,0,78,0,72,0\n37,0,55,0,7,0,43,0,39,0,56,0\n74,0,31,0,54,0,76,0,57,0,5,0\n75,0,41,0,6,0,70,0,14,0,47,0\n28,0,58,0,80,0,9,0,88,0,84,0\n22,0,26,0,48,0,42,0,12,0,10,0\n68,0,11,0,82,0,64,0,27,0,86,0\n29,0,53,0,81,0,45,0,50,0,92,0\n78,0,2,0,17,0,85,0,63,0,36,0\n72,0,66,0,91,0,73,0,60,0,33,0\n34,0,93,0,55,0,90,0,38,0,23,0\n83,0,35,0,37,0,3,0,67,0,8,0\n21,0,71,0,65,0,79,0,49,0,46,0\n43,0,25,0,44,0,69,0,4,0,1,0\n15,0,32,0,51,0,77,0,40,0,24,0\n62,0,87,0,30,0,59,0,95,0,52,0\n20,0,61,0,19,0,13,0,18,0,94,0\n89,0,72,0,73,0,16,0,75,0,50,0\n48,0,29,0,88,0,33,0,6,0,34,0\n7,0,9,0,38,0,35,0,12,0,17,0\n83,0,78,0,80,0,21,0,11,0,39,0\n44,0,70,0,63,0,67,0,82,0,58,0\n14,0,46,0,22,0,40,0,68,0,74,0\n42,0,32,0,87,0,79,0,64,0,3,0\n55,0,84,0,71,0,94,0,45,0,31,0\n89,0,86,0,61,0,25,0,15,0,90,0\n91,0,26,0,49,0,62,0,92,0,57,0\n43,0,23,0,51,0,53,0,54,0,52,0\n10,0,36,0,13,0,65,0,16,0,66,0\n28,0,1,0,77,0,81,0,76,0,30,0\n69,0,8,0,59,0,5,0,19,0,27,0\n2,0,47,0,56,0,4,0,18,0,60,0\n37,0,95,0,93,0,24,0,41,0,20,0\n85,0,87,0,67,0,7,0,89,0,88,0\n73,0,39,0,90,0,48,0,44,0,9,0\n6,0,52,0,80,0,68,0,94,0,57,0\n40,0,63,0,64,0,54,0,13,0,91,0\n14,0,16,0,28,0,17,0,92,0,71,0\n12,0,29,0,49,0,3,0,5,0,25,0\n82,0,75,0,19,0,2,0,61,0,51,0\n74,0,69,0,78,0,60,0,32,0,20,0\n10,0,23,0,77,0,86,0,47,0,83,0\n76,0,59,0,35,0,18,0,72,0,46,0\n38,0,27,0,30,0,66,0,37,0,58,0\n41,0,79,0,95,0,55,0,53,0,26,0\n85,0,70,0,34,0,50,0,4,0,31,0\n42,0,24,0,65,0,8,0,81,0,21,0\n93,0,33,0,84,0,1,0,56,0,62,0\n36,0,43,0,15,0,22,0,45,0,11,0\n49,0,83,0,17,0,87,0,61,0,13,0\n92,0,20,0,12,0,77,0,54,0,60,0\n44,0,51,0,18,0,14,0,3,0,29,0\n55,0,30,0,6,0,32,0,35,0,72,0\n75,0,10,0,85,0,53,0,25,0,82,0\n88,0,70,0,95,0,71,0,39,0,91,0\n81,0,64,0,19,0,66,0,41,0,84,0\n40,0,11,0,89,0,8,0,48,0,28,0\n5,0,63,0,94,0,23,0,73,0,27,0\n42,0,57,0,36,0,37,0,9,0,69,0\n31,0,38,0,80,0,24,0,67,0,46,0\n93,0,26,0,76,0,16,0,2,0,68,0\n74,0,4,0,45,0,90,0,21,0,7,0\n56,0,58,0,79,0,15,0,59,0,1,0\n43,0,52,0,33,0,47,0,65,0,50,0\n62,0,78,0,86,0,34,0,22,0,51,0\n"
  },
  {
    "path": "schedules/95_14.csv",
    "content": "57,0,53,0,50,0,67,0,87,0,25,0\n75,0,43,0,78,0,34,0,18,0,92,0\n23,0,30,0,35,0,81,0,82,0,55,0\n40,0,7,0,37,0,31,0,80,0,48,0\n65,0,8,0,91,0,52,0,62,0,66,0\n70,0,86,0,58,0,19,0,4,0,10,0\n41,0,15,0,49,0,59,0,29,0,2,0\n68,0,51,0,12,0,95,0,84,0,73,0\n79,0,21,0,90,0,27,0,69,0,39,0\n5,0,77,0,24,0,38,0,11,0,64,0\n47,0,1,0,3,0,54,0,20,0,42,0\n45,0,36,0,26,0,72,0,44,0,32,0\n56,0,16,0,46,0,76,0,88,0,9,0\n63,0,14,0,83,0,89,0,74,0,71,0\n94,0,28,0,6,0,61,0,60,0,85,0\n33,0,13,0,93,0,17,0,22,0,8,0\n12,0,27,0,62,0,39,0,67,0,19,0\n57,0,11,0,51,0,58,0,23,0,65,0\n73,0,91,0,1,0,69,0,43,0,77,0\n15,0,38,0,36,0,75,0,81,0,31,0\n21,0,47,0,30,0,78,0,64,0,5,0\n44,0,52,0,14,0,92,0,40,0,10,0\n2,0,3,0,63,0,60,0,50,0,18,0\n34,0,4,0,41,0,26,0,95,0,61,0\n7,0,70,0,35,0,85,0,32,0,83,0\n16,0,13,0,72,0,55,0,59,0,71,0\n25,0,54,0,93,0,84,0,76,0,28,0\n82,0,24,0,68,0,86,0,33,0,79,0\n45,0,37,0,22,0,29,0,74,0,88,0\n20,0,94,0,80,0,56,0,90,0,53,0\n17,0,48,0,9,0,87,0,42,0,89,0\n66,0,6,0,57,0,49,0,46,0,36,0\n1,1,60,0,75,0,41,1,11,0,70,0\n13,0,69,0,14,0,65,0,15,0,64,0\n19,0,84,0,61,0,72,0,3,0,30,0\n33,0,83,0,77,0,34,0,21,0,44,0\n74,0,73,0,32,0,82,0,50,0,31,0\n43,0,62,0,22,0,10,0,80,0,23,0\n51,0,93,0,40,0,27,0,89,0,26,0\n66,0,16,0,28,0,42,0,48,0,35,0\n79,0,53,0,5,0,6,0,55,0,37,0\n46,0,68,0,17,0,52,0,18,0,49,0\n87,0,85,0,8,0,56,0,4,0,54,0\n47,0,2,0,95,0,92,0,25,0,86,0\n94,0,59,0,88,0,58,0,12,0,63,0\n76,0,45,0,71,0,39,0,81,0,24,0\n20,0,90,0,78,0,67,0,7,0,38,0\n91,0,9,0,82,0,29,0,48,0,11,0\n75,0,93,0,55,0,83,0,80,0,69,0\n18,0,64,0,1,0,66,0,33,0,72,0\n32,0,87,0,10,0,79,0,34,0,13,0\n54,0,86,0,3,0,77,0,41,0,23,0\n31,0,47,0,63,0,44,0,27,0,65,0\n53,0,68,0,60,0,61,0,39,0,88,0\n81,0,17,0,40,0,4,0,73,0,78,0\n8,0,38,0,59,0,14,0,26,0,25,0\n84,0,70,0,9,0,62,0,49,0,6,0\n42,0,57,0,74,0,5,0,56,0,12,0\n36,0,71,0,52,0,43,0,21,0,20,0\n46,0,2,0,67,0,51,0,35,0,22,0\n28,0,29,0,90,0,76,0,50,0,30,0\n15,0,16,0,95,0,85,0,19,0,37,0\n58,0,89,0,94,0,24,0,91,0,7,0\n92,0,60,0,31,0,45,0,23,0,8,0\n55,0,65,0,32,0,78,0,48,0,61,0\n9,0,18,0,33,0,27,0,5,0,4,0\n88,0,38,0,44,0,73,0,86,0,43,0\n25,0,56,0,41,0,63,0,35,0,79,0\n34,0,3,0,40,0,11,0,67,0,69,0\n80,0,29,0,13,0,54,0,68,0,74,0\n72,0,7,0,39,0,75,0,47,0,66,0\n14,0,87,0,94,0,95,0,82,0,45,0\n28,0,15,0,17,0,84,0,20,0,24,0\n58,0,52,0,77,0,42,0,76,0,22,0\n70,0,6,0,91,0,51,0,21,0,59,0\n2,0,64,0,92,0,19,0,71,0,57,0\n46,0,85,0,89,0,81,0,10,0,53,0\n12,0,26,0,30,0,1,0,37,0,83,0\n50,0,90,0,62,0,36,0,93,0,16,0\n49,0,61,0,33,0,74,0,40,0,25,0\n67,0,63,0,48,0,15,0,43,0,84,0\n56,0,66,0,69,0,82,0,58,0,44,0\n54,0,32,0,88,0,21,0,24,0,6,0\n72,0,79,0,95,0,76,0,17,0,60,0\n29,0,23,0,4,0,46,0,59,0,7,0\n45,0,20,0,41,0,57,0,13,0,89,0\n51,0,39,0,14,0,16,0,22,0,77,0\n11,0,92,0,42,0,18,0,62,0,53,0\n71,0,86,0,31,0,1,0,30,0,78,0\n27,0,81,0,8,0,70,0,28,0,37,0\n85,0,55,0,3,0,47,0,9,0,93,0\n65,0,36,0,94,0,68,0,2,0,34,0\n75,0,64,0,10,0,91,0,35,0,12,0\n26,0,19,0,73,0,90,0,87,0,5,0\n80,0,38,0,49,0,50,0,52,0,83,0\n67,0,76,0,89,0,21,0,13,0,92,0\n54,0,59,0,14,0,60,0,30,0,56,0\n37,0,27,0,74,0,84,0,86,0,32,0\n23,0,24,0,85,0,63,0,29,0,72,0\n7,0,88,0,77,0,55,0,15,0,8,0\n12,0,18,0,79,0,36,0,91,0,28,0\n44,0,87,0,81,0,51,0,41,0,62,0\n19,0,34,0,22,0,47,0,20,0,49,0\n26,0,16,0,78,0,68,0,43,0,58,0\n61,0,69,0,17,0,50,0,45,0,66,0\n6,0,42,0,82,0,75,0,80,0,4,0\n1,0,5,0,40,0,53,0,2,0,93,0\n48,0,10,0,71,0,94,0,38,0,33,0\n65,0,39,0,11,0,95,0,83,0,46,0\n57,0,9,0,35,0,31,0,90,0,52,0\n73,0,64,0,25,0,70,0,3,0,29,0\n89,0,84,0,88,0,36,0,78,0,79,0\n41,0,37,0,24,0,66,0,85,0,14,0\n81,0,13,0,60,0,91,0,26,0,47,0\n69,0,32,0,76,0,86,0,53,0,51,0\n93,0,48,0,4,0,49,0,19,0,56,0\n11,0,59,0,77,0,28,0,27,0,87,0\n9,0,38,0,92,0,65,0,30,0,7,0\n83,0,68,0,31,0,64,0,6,0,67,0\n23,0,3,0,52,0,74,0,33,0,16,0\n63,0,70,0,10,0,90,0,39,0,42,0\n12,0,20,0,55,0,18,0,25,0,2,0\n1,0,95,0,58,0,50,0,75,0,40,0\n73,0,61,0,62,0,21,0,35,0,15,0\n5,0,43,0,8,0,94,0,45,0,46,0\n17,0,54,0,34,0,71,0,22,0,82,0\n72,0,80,0,28,0,57,0,44,0,91,0\n23,0,60,0,19,0,89,0,32,0,38,0\n36,0,41,0,64,0,7,0,76,0,27,0\n56,0,86,0,63,0,11,0,52,0,26,0\n13,0,78,0,49,0,85,0,77,0,42,0\n29,0,35,0,6,0,87,0,1,0,33,0\n2,0,83,0,58,0,47,0,79,0,45,0\n68,0,22,0,4,0,30,0,69,0,62,0\n46,0,50,0,21,0,14,0,72,0,48,0\n8,0,74,0,51,0,55,0,34,0,9,0\n43,0,12,0,82,0,93,0,61,0,70,0\n66,0,92,0,71,0,15,0,3,0,90,0\n67,0,54,0,53,0,59,0,65,0,17,0\n73,0,10,0,24,0,25,0,16,0,80,0\n39,0,40,0,44,0,37,0,18,0,94,0\n20,0,31,0,88,0,5,0,81,0,95,0\n75,0,84,0,48,0,57,0,26,0,77,0\n19,0,13,0,86,0,46,0,28,0,14,0\n33,0,23,0,78,0,69,0,41,0,12,0\n6,0,56,0,27,0,92,0,50,0,72,0\n55,0,52,0,29,0,58,0,67,0,60,0\n45,0,34,0,16,0,91,0,63,0,64,0\n22,0,53,0,83,0,8,0,24,0,36,0\n54,0,9,0,81,0,43,0,39,0,2,0\n4,0,76,0,11,0,35,0,38,0,84,0\n87,0,65,0,70,0,80,0,18,0,74,0\n10,0,20,0,30,0,40,0,66,0,32,0\n51,0,15,0,31,0,17,0,94,0,47,0\n71,0,44,0,85,0,25,0,68,0,5,0\n89,0,90,0,49,0,82,0,88,0,75,0\n62,0,95,0,21,0,57,0,7,0,3,0\n42,0,37,0,79,0,73,0,59,0,93,0\n61,0,14,0,9,0,1,0,36,0,63,0\n80,0,60,0,8,0,35,0,86,0,64,0\n19,0,43,0,6,0,41,0,65,0,76,0\n84,0,83,0,40,0,23,0,56,0,13,0\n77,0,47,0,28,0,74,0,17,0,10,0\n34,0,5,0,39,0,29,0,15,0,58,0\n69,0,16,0,38,0,32,0,57,0,18,0\n30,0,45,0,75,0,73,0,21,0,67,0\n78,0,94,0,24,0,62,0,46,0,70,0\n92,0,79,0,81,0,12,0,48,0,22,0\n51,0,50,0,85,0,33,0,71,0,20,0\n66,0,42,0,55,0,27,0,95,0,54,0\n89,0,44,0,59,0,90,0,1,0,61,0\n72,0,11,0,25,0,93,0,7,0,68,0\n37,0,2,0,88,0,87,0,52,0,4,0\n26,0,3,0,53,0,31,0,91,0,49,0\n82,0,46,0,41,0,21,0,38,0,58,0\n86,0,15,0,45,0,40,0,9,0,12,0\n29,0,18,0,69,0,8,0,71,0,84,0\n57,0,27,0,22,0,94,0,85,0,73,0\n54,0,48,0,5,0,51,0,36,0,10,0\n39,0,74,0,20,0,93,0,6,0,92,0\n67,0,14,0,47,0,88,0,33,0,11,0\n53,0,95,0,80,0,81,0,77,0,63,0\n87,0,49,0,30,0,7,0,16,0,60,0\n32,0,91,0,90,0,17,0,2,0,55,0\n24,0,35,0,4,0,43,0,3,0,13,0\n59,0,82,0,76,0,68,0,1,0,62,0\n83,0,25,0,78,0,52,0,19,0,72,0\n65,0,56,0,61,0,23,0,37,0,75,0\n42,0,64,0,50,0,44,0,26,0,79,0\n31,0,66,0,70,0,28,0,89,0,34,0\n30,0,80,0,36,0,39,0,33,0,58,0\n71,0,93,0,67,0,41,0,95,0,32,0\n55,0,49,0,27,0,43,0,24,0,14,0\n69,0,63,0,73,0,46,0,92,0,54,0\n18,0,90,0,86,0,83,0,6,0,81,0\n25,0,75,0,13,0,37,0,9,0,62,0\n11,0,21,0,17,0,85,0,12,0,74,0\n10,0,52,0,7,0,34,0,59,0,1,0\n38,0,91,0,72,0,88,0,42,0,15,0\n87,0,84,0,64,0,31,0,61,0,22,0\n50,0,68,0,35,0,19,0,89,0,5,0\n23,0,48,0,2,0,53,0,44,0,70,0\n78,0,56,0,28,0,3,0,51,0,45,0\n82,0,47,0,57,0,40,0,8,0,76,0\n65,0,29,0,26,0,79,0,16,0,20,0\n4,0,66,0,77,0,60,0,94,0,12,0\n25,0,34,0,27,0,88,0,46,0,80,0\n39,0,85,0,59,0,55,0,64,0,31,0\n74,0,81,0,19,0,24,0,69,0,1,0\n75,0,52,0,95,0,44,0,30,0,13,0\n11,0,15,0,18,0,45,0,54,0,89,0\n22,0,93,0,50,0,41,0,78,0,9,0\n36,0,42,0,61,0,67,0,86,0,29,0\n47,0,53,0,38,0,56,0,70,0,68,0\n26,0,84,0,7,0,10,0,2,0,82,0\n32,0,62,0,28,0,83,0,49,0,5,0\n87,0,91,0,76,0,20,0,14,0,23,0\n21,0,63,0,66,0,79,0,51,0,4,0\n60,0,43,0,33,0,37,0,90,0,57,0\n3,0,58,0,73,0,6,0,8,0,48,0\n71,0,35,0,72,0,65,0,77,0,40,0\n17,0,92,0,1,0,94,0,16,0,41,0\n"
  },
  {
    "path": "schedules/95_2.csv",
    "content": "74,0,20,0,29,0,5,0,21,0,80,0\n90,0,67,0,24,0,52,0,43,0,7,0\n85,0,1,0,3,0,30,0,95,0,27,0\n8,0,49,0,87,0,6,0,10,0,71,0\n47,0,17,0,66,0,38,0,44,0,94,0\n61,0,28,0,84,0,9,0,26,0,33,0\n25,0,59,0,81,0,53,0,35,0,23,0\n68,0,76,0,15,0,70,0,62,0,51,0\n57,0,37,0,22,0,64,0,88,0,92,0\n34,0,54,0,16,0,48,0,42,0,55,0\n36,0,41,0,93,0,73,0,56,0,91,0\n32,0,2,0,63,0,18,0,31,0,58,0\n39,0,45,0,19,0,75,0,11,0,77,0\n14,0,46,0,69,0,65,0,72,0,12,0\n78,0,79,0,40,0,60,0,86,0,13,0\n50,0,82,0,4,0,83,0,89,0,59,0\n33,0,35,0,80,0,57,0,71,0,17,0\n21,0,53,0,88,0,47,0,48,0,10,0\n29,0,26,0,30,0,37,0,34,0,81,0\n18,0,20,0,94,0,64,0,27,0,8,0\n9,0,56,0,3,0,19,0,54,0,49,0\n51,0,23,0,5,0,69,0,7,0,45,0\n25,0,95,0,73,0,67,0,46,0,66,0\n58,0,4,0,91,0,65,0,85,0,92,0\n74,0,42,0,52,0,72,0,50,0,41,0\n84,0,12,0,63,0,87,0,78,0,55,0\n2,0,38,0,75,0,90,0,76,0,6,0\n31,0,40,0,93,0,14,0,68,0,77,0\n83,0,36,0,44,0,60,0,32,0,15,0\n39,0,13,0,62,0,1,0,82,0,28,0\n24,0,86,0,70,0,89,0,22,0,16,0\n79,0,43,0,5,1,11,0,61,0,58,1\n"
  },
  {
    "path": "schedules/95_3.csv",
    "content": "34,0,74,0,95,0,65,0,13,0,73,0\n39,0,86,0,64,0,75,0,54,0,19,0\n20,0,79,0,45,0,47,0,59,0,43,0\n46,0,24,0,38,0,31,0,29,0,51,0\n42,0,32,0,3,0,37,0,10,0,63,0\n87,0,21,0,53,0,8,0,16,0,52,0\n14,0,50,0,27,0,18,0,40,0,61,0\n69,0,9,0,25,0,5,0,57,0,26,0\n80,0,4,0,81,0,78,0,72,0,58,0\n84,0,55,0,7,0,88,0,82,0,2,0\n11,0,60,0,85,0,68,0,71,0,35,0\n30,0,91,0,12,0,44,0,90,0,66,0\n49,0,70,0,94,0,23,0,15,0,76,0\n33,0,6,0,17,0,28,0,92,0,62,0\n67,0,77,0,41,0,48,0,56,0,22,0\n93,0,89,0,1,0,83,0,36,0,79,0\n25,1,54,0,47,0,50,1,34,0,29,0\n7,1,65,0,14,0,16,0,57,0,20,0\n31,0,73,0,87,0,86,0,40,0,85,0\n32,0,78,0,88,0,5,0,39,0,27,0\n3,0,8,0,61,0,94,0,12,0,58,0\n72,0,44,0,59,0,92,0,19,0,55,0\n23,0,77,0,82,0,46,0,74,0,91,0\n52,0,69,0,43,0,62,0,30,0,75,0\n83,0,28,0,2,0,48,0,66,0,95,0\n67,0,89,0,63,0,35,0,24,0,4,0\n49,0,21,0,41,0,10,0,13,0,90,0\n37,0,84,0,45,0,70,0,11,0,33,0\n76,0,51,0,71,0,80,0,93,0,9,0\n56,0,68,0,36,0,53,0,26,0,42,0\n18,0,1,0,15,0,38,0,6,0,22,0\n64,0,17,0,52,0,81,0,60,0,32,0\n82,0,62,0,8,0,14,0,25,0,86,0\n74,0,83,0,16,0,61,0,43,0,63,0\n34,0,7,0,10,0,94,0,89,0,72,0\n70,0,46,0,88,0,41,0,69,0,50,0\n79,0,90,0,39,0,58,0,92,0,84,0\n78,0,19,0,36,0,31,0,71,0,45,0\n5,0,28,0,80,0,68,0,1,0,29,0\n95,0,26,0,30,0,47,0,22,0,87,0\n35,0,37,0,12,0,65,0,40,0,9,0\n75,0,59,0,13,0,3,0,38,0,91,0\n56,0,51,0,11,0,54,0,23,0,17,0\n2,0,18,0,60,0,42,0,93,0,77,0\n53,0,66,0,85,0,6,0,49,0,67,0\n57,0,4,0,33,0,15,0,64,0,21,0\n27,0,55,0,73,0,81,0,24,0,20,0\n76,0,48,0,50,0,44,0,25,0,7,0\n"
  },
  {
    "path": "schedules/95_4.csv",
    "content": "51,0,76,0,41,0,39,0,45,0,63,0\n34,0,92,0,69,0,93,0,58,0,26,0\n29,0,25,0,61,0,40,0,47,0,31,0\n18,0,72,0,9,0,7,0,24,0,38,0\n84,0,15,0,65,0,71,0,95,0,83,0\n70,0,23,0,81,0,94,0,33,0,6,0\n3,0,77,0,50,0,57,0,28,0,4,0\n17,0,90,0,56,0,32,0,22,0,87,0\n19,0,12,0,49,0,68,0,46,0,80,0\n11,0,66,0,2,0,53,0,43,0,85,0\n36,0,79,0,73,0,74,0,21,0,5,0\n44,0,27,0,10,0,59,0,54,0,89,0\n13,0,42,0,64,0,37,0,91,0,82,0\n16,0,30,0,86,0,14,0,67,0,1,0\n88,0,75,0,62,0,78,0,52,0,48,0\n55,0,8,0,20,0,35,0,60,0,90,0\n65,0,51,0,31,0,34,0,28,0,46,0\n53,0,83,0,39,0,94,0,24,0,25,0\n22,0,49,0,70,0,29,0,41,0,84,0\n59,0,95,0,57,0,12,0,43,0,23,0\n71,0,85,0,91,0,63,0,40,0,50,0\n82,0,81,0,15,0,36,0,7,0,16,0\n56,0,42,0,74,0,77,0,48,0,92,0\n64,0,11,0,60,0,5,0,93,0,75,0\n52,0,58,0,45,0,54,0,35,0,1,0\n67,0,17,0,9,0,27,0,3,0,20,0\n38,0,87,0,2,0,14,0,6,0,21,0\n32,0,69,0,66,0,18,0,88,0,37,0\n33,0,73,0,10,0,68,0,86,0,8,0\n55,0,47,0,4,0,89,0,79,0,72,0\n61,0,78,0,76,0,26,0,19,0,13,0\n80,0,44,0,63,0,30,0,62,0,34,0\n50,1,60,0,1,0,74,1,23,0,84,0\n43,1,46,0,40,0,27,1,52,0,42,0\n9,0,83,0,93,0,21,0,56,0,59,0\n29,0,35,0,71,0,51,0,69,0,64,0\n87,0,20,0,12,0,58,0,7,0,86,0\n25,0,95,0,3,0,32,0,41,0,85,0\n77,0,81,0,90,0,78,0,11,0,91,0\n62,0,19,0,36,0,65,0,55,0,94,0\n54,0,37,0,26,0,72,0,80,0,33,0\n30,0,89,0,53,0,70,0,68,0,31,0\n82,0,10,0,6,0,49,0,18,0,79,0\n4,0,5,0,48,0,76,0,2,0,16,0\n13,0,88,0,28,0,73,0,44,0,92,0\n15,0,24,0,17,0,45,0,75,0,61,0\n47,0,38,0,8,0,22,0,66,0,67,0\n57,0,14,0,58,0,39,0,64,0,62,0\n74,0,40,0,69,0,95,0,86,0,72,0\n34,0,54,0,55,0,23,0,53,0,9,0\n46,0,83,0,85,0,20,0,29,0,33,0\n43,0,31,0,94,0,77,0,5,0,1,0\n73,0,93,0,63,0,90,0,82,0,25,0\n48,0,11,0,50,0,65,0,17,0,49,0\n13,0,32,0,67,0,2,0,71,0,52,0\n27,0,16,0,37,0,51,0,6,0,8,0\n4,0,59,0,18,0,70,0,91,0,15,0\n21,0,80,0,7,0,10,0,61,0,42,0\n24,0,14,0,56,0,3,0,47,0,81,0\n57,0,68,0,79,0,87,0,92,0,84,0\n35,0,89,0,38,0,88,0,76,0,36,0\n41,0,28,0,75,0,66,0,19,0,30,0\n45,0,60,0,26,0,44,0,22,0,12,0\n39,0,50,0,43,0,78,0,74,0,27,0\n"
  },
  {
    "path": "schedules/95_5.csv",
    "content": "5,0,82,0,20,0,36,0,3,0,48,0\n91,0,37,0,15,0,93,0,23,0,72,0\n2,0,8,0,86,0,39,0,57,0,13,0\n59,0,9,0,78,0,33,0,62,0,85,0\n89,0,65,0,79,0,28,0,53,0,74,0\n32,0,60,0,51,0,7,0,25,0,11,0\n47,0,18,0,43,0,67,0,6,0,16,0\n24,0,49,0,52,0,45,0,87,0,30,0\n35,0,29,0,66,0,88,0,95,0,46,0\n56,0,77,0,83,0,4,0,70,0,34,0\n58,0,19,0,69,0,61,0,38,0,40,0\n31,0,71,0,76,0,81,0,94,0,44,0\n84,0,55,0,10,0,26,0,80,0,54,0\n68,0,63,0,22,0,17,0,75,0,64,0\n90,0,50,0,12,0,14,0,27,0,41,0\n21,0,73,0,79,0,42,0,92,0,1,0\n67,0,46,0,15,0,82,0,33,0,87,0\n18,0,91,0,3,0,78,0,24,0,56,0\n34,0,88,0,62,0,7,0,61,0,30,0\n5,0,83,0,81,0,86,0,52,0,9,0\n11,0,26,0,39,0,72,0,58,0,94,0\n93,0,53,0,75,0,35,0,6,0,45,0\n23,0,71,0,14,0,36,0,54,0,59,0\n89,0,22,0,25,0,70,0,43,0,55,0\n73,0,85,0,51,0,76,0,10,0,8,0\n48,0,13,0,40,0,84,0,60,0,41,0\n44,0,77,0,57,0,42,0,69,0,50,0\n21,0,66,0,16,0,19,0,63,0,4,0\n27,0,28,0,68,0,38,0,49,0,2,0\n20,0,1,0,37,0,65,0,95,0,12,0\n80,0,31,0,17,0,92,0,47,0,74,0\n90,0,64,0,87,0,32,0,29,0,71,0\n86,1,25,0,26,0,35,1,18,0,79,0\n41,1,30,0,93,0,11,1,73,0,5,0\n61,1,84,0,33,0,77,0,8,0,22,0\n56,0,44,0,45,0,21,0,7,0,13,0\n46,0,16,0,89,0,2,0,40,0,72,0\n54,0,38,0,48,0,63,0,15,0,83,0\n76,0,42,0,91,0,9,0,39,0,34,0\n74,0,90,0,94,0,6,0,52,0,78,0\n27,0,4,0,23,0,80,0,1,0,64,0\n82,0,69,0,66,0,43,0,81,0,59,0\n36,0,65,0,17,0,32,0,49,0,58,0\n24,0,28,0,12,0,31,0,29,0,57,0\n60,0,10,0,3,0,53,0,95,0,47,0\n92,0,67,0,51,0,20,0,50,0,55,0\n37,0,85,0,19,0,70,0,75,0,88,0\n62,0,68,0,74,0,14,0,93,0,46,0\n6,0,54,0,4,0,89,0,13,0,11,0\n77,0,45,0,63,0,5,0,90,0,23,0\n69,0,34,0,65,0,78,0,2,0,84,0\n59,0,16,0,57,0,87,0,48,0,25,0\n61,0,47,0,72,0,66,0,12,0,56,0\n21,0,82,0,51,0,30,0,9,0,17,0\n70,0,81,0,7,0,24,0,38,0,41,0\n53,0,19,0,86,0,27,0,29,0,67,0\n42,0,36,0,64,0,31,0,52,0,35,0\n75,0,94,0,92,0,28,0,62,0,10,0\n58,0,1,0,55,0,83,0,60,0,85,0\n49,0,3,0,22,0,76,0,14,0,15,0\n68,0,26,0,50,0,73,0,37,0,71,0\n80,0,33,0,88,0,20,0,79,0,39,0\n95,0,8,0,40,0,32,0,44,0,18,0\n43,0,41,0,74,0,91,0,21,0,57,0\n53,0,17,0,56,0,48,0,11,0,69,0\n2,0,42,0,12,0,51,0,5,0,70,0\n23,0,29,0,61,0,10,0,82,0,16,0\n6,0,7,0,86,0,15,0,1,0,59,0\n78,0,35,0,58,0,28,0,81,0,47,0\n24,0,34,0,14,0,73,0,66,0,13,0\n64,0,39,0,84,0,44,0,19,0,92,0\n95,0,93,0,27,0,36,0,87,0,89,0\n75,0,9,0,80,0,65,0,25,0,72,0\n33,0,63,0,30,0,76,0,55,0,37,0\n18,0,94,0,88,0,4,0,68,0,60,0\n43,0,40,0,31,0,20,0,77,0,26,0\n52,0,8,0,38,0,46,0,3,0,71,0\n79,0,54,0,67,0,22,0,90,0,85,0\n83,0,32,0,45,0,50,0,91,0,62,0\n49,0,35,0,11,0,86,0,41,0,61,0\n"
  },
  {
    "path": "schedules/95_6.csv",
    "content": "48,0,58,0,85,0,35,0,56,0,28,0\n55,0,81,0,13,0,17,0,63,0,87,0\n47,0,66,0,62,0,37,0,15,0,30,0\n9,0,69,0,92,0,40,0,16,0,79,0\n51,0,67,0,60,0,90,0,95,0,88,0\n54,0,18,0,42,0,83,0,45,0,72,0\n50,0,53,0,78,0,20,0,82,0,8,0\n94,0,21,0,91,0,80,0,71,0,84,0\n73,0,23,0,10,0,46,0,52,0,12,0\n89,0,76,0,38,0,31,0,70,0,32,0\n11,0,24,0,65,0,64,0,41,0,27,0\n4,0,7,0,19,0,2,0,36,0,75,0\n29,0,44,0,59,0,93,0,61,0,43,0\n74,0,77,0,14,0,26,0,1,0,33,0\n68,0,25,0,6,0,3,0,5,0,49,0\n86,0,57,0,84,0,34,0,39,0,22,0\n62,0,12,0,91,0,54,0,16,0,13,0\n31,0,51,0,15,0,10,0,92,0,71,0\n76,0,41,0,40,0,20,0,58,0,30,0\n38,0,90,0,64,0,83,0,78,0,28,0\n46,0,67,0,93,0,53,0,17,0,24,0\n21,0,66,0,11,0,29,0,4,0,63,0\n70,0,5,0,75,0,35,0,60,0,45,0\n77,0,9,0,34,0,43,0,49,0,2,0\n18,0,79,0,68,0,95,0,65,0,36,0\n22,0,37,0,44,0,56,0,26,0,72,0\n82,0,1,0,32,0,25,0,85,0,61,0\n7,0,8,0,87,0,3,0,57,0,73,0\n69,0,39,0,14,0,55,0,80,0,88,0\n86,0,19,0,33,0,23,0,47,0,42,0\n50,0,59,0,48,0,52,0,89,0,27,0\n74,0,81,0,46,0,6,0,94,0,29,0\n31,0,64,0,58,0,21,0,17,0,45,0\n22,0,76,0,24,0,79,0,77,0,10,0\n37,0,40,0,95,0,75,0,34,0,78,0\n16,0,49,0,35,0,7,0,32,0,67,0\n43,0,90,0,5,0,54,0,4,0,20,0\n72,0,28,0,69,0,68,0,84,0,1,0\n92,0,3,0,55,0,66,0,38,0,56,0\n88,0,57,0,52,0,6,0,19,0,70,0\n15,0,26,0,91,0,11,0,53,0,87,0\n80,0,48,0,61,0,30,0,86,0,2,0\n94,0,23,0,44,0,18,0,50,0,51,0\n74,0,13,0,25,0,42,0,27,0,9,0\n47,0,73,0,89,0,82,0,65,0,14,0\n83,0,36,0,41,0,60,0,63,0,12,0\n81,0,93,0,71,0,8,0,62,0,85,0\n39,0,33,0,32,0,59,0,3,0,58,0\n54,0,56,0,95,0,7,0,69,0,64,0\n79,0,34,0,11,0,55,0,72,0,19,0\n40,0,52,0,2,0,22,0,31,0,18,0\n91,0,66,0,45,0,61,0,50,0,90,0\n70,0,65,0,48,0,13,0,20,0,1,0\n84,0,30,0,6,0,60,0,24,0,14,0\n16,0,63,0,47,0,94,0,5,0,93,0\n53,0,77,0,4,0,73,0,35,0,59,0\n8,0,49,0,42,0,46,0,38,0,44,0\n62,0,80,0,87,0,68,0,23,0,74,0\n86,0,83,0,10,0,81,0,75,0,21,0\n57,0,28,0,26,0,12,0,43,0,71,0\n89,0,88,0,9,0,15,0,41,0,29,0\n78,0,76,0,39,0,27,0,85,0,67,0\n33,0,37,0,25,0,92,0,36,0,17,0\n51,0,3,0,79,0,82,0,48,0,54,0\n34,0,20,0,18,0,91,0,60,0,38,0\n69,0,63,0,22,0,50,0,19,0,73,0\n64,0,42,0,5,0,40,0,81,0,1,0\n43,0,55,0,83,0,6,0,58,0,62,0\n24,0,86,0,87,0,44,0,89,0,95,0\n12,0,85,0,30,0,94,0,31,0,53,0\n61,0,72,0,13,0,39,0,4,0,8,0\n68,0,11,0,70,0,93,0,92,0,14,0\n25,0,23,0,75,0,41,0,67,0,71,0\n2,0,26,0,78,0,66,0,10,0,88,0\n16,0,21,0,74,0,37,0,76,0,82,0\n56,0,49,0,17,0,57,0,51,0,59,0\n84,0,7,0,46,0,9,0,90,0,33,0\n52,0,45,0,15,0,77,0,65,0,28,0\n29,0,27,0,35,0,47,0,80,0,36,0\n32,0,19,0,30,0,64,0,13,0,68,0\n60,0,92,0,1,0,62,0,53,0,39,0\n85,0,3,0,20,0,2,0,83,0,23,0\n8,0,89,0,26,0,25,0,63,0,79,0\n38,0,67,0,58,0,54,0,11,0,57,0\n95,0,41,0,55,0,21,0,22,0,61,0\n87,0,51,0,42,0,34,0,14,0,76,0\n29,0,49,0,24,0,73,0,33,0,91,0\n93,0,6,0,36,0,77,0,48,0,78,0\n52,0,43,0,35,0,94,0,37,0,69,0\n75,0,90,0,80,0,15,0,32,0,72,0\n17,0,28,0,10,0,70,0,40,0,74,0\n59,0,9,0,82,0,12,0,86,0,45,0\n4,0,65,0,16,0,81,0,50,0,84,0\n27,0,31,0,44,0,7,0,66,0,5,0\n47,0,71,0,18,0,56,0,88,0,46,0\n"
  },
  {
    "path": "schedules/95_7.csv",
    "content": "46,0,49,0,21,0,72,0,1,0,58,0\n90,0,69,0,18,0,86,0,70,0,15,0\n55,0,79,0,94,0,57,0,67,0,14,0\n68,0,77,0,13,0,16,0,41,0,83,0\n5,0,42,0,87,0,65,0,51,0,12,0\n88,0,7,0,82,0,76,0,85,0,17,0\n45,0,44,0,34,0,63,0,59,0,91,0\n4,0,25,0,10,0,66,0,37,0,30,0\n19,0,22,0,61,0,40,0,36,0,89,0\n33,0,24,0,78,0,74,0,50,0,38,0\n6,0,32,0,43,0,81,0,47,0,56,0\n95,0,71,0,93,0,53,0,39,0,20,0\n60,0,52,0,27,0,29,0,62,0,48,0\n64,0,26,0,54,0,11,0,84,0,9,0\n31,0,92,0,23,0,8,0,80,0,35,0\n2,0,3,0,7,0,28,0,75,0,73,0\n68,0,46,0,67,0,85,0,25,0,90,0\n77,0,94,0,70,0,87,0,82,0,78,0\n24,0,65,0,36,0,86,0,55,0,4,0\n79,0,50,0,91,0,93,0,56,0,5,0\n53,0,15,0,41,0,6,0,51,0,29,0\n81,0,16,0,69,0,1,0,63,0,52,0\n57,0,80,0,22,0,54,0,66,0,45,0\n18,0,92,0,37,0,17,0,12,0,71,0\n9,0,43,0,73,0,76,0,31,0,72,0\n88,0,19,0,44,0,95,0,21,0,60,0\n58,0,35,0,42,0,27,0,64,0,40,0\n89,0,8,0,32,0,30,0,84,0,75,0\n14,0,10,0,34,0,13,0,74,0,48,0\n38,0,61,0,23,0,62,0,11,0,3,0\n26,0,59,0,20,0,47,0,83,0,2,0\n39,0,28,0,22,0,49,0,33,0,5,0\n71,0,94,0,41,0,72,1,85,0,86,0\n37,0,77,0,29,0,57,0,44,0,90,0\n40,0,9,0,66,0,24,0,52,0,53,0\n87,0,30,0,1,0,18,0,7,0,6,0\n84,0,92,0,74,0,91,0,73,0,25,0\n68,0,69,0,42,0,79,0,10,0,32,0\n45,0,82,0,51,0,36,0,20,0,11,0\n3,0,83,0,56,0,80,0,48,0,95,0\n88,0,46,0,62,0,33,0,75,0,16,0\n28,0,26,0,58,0,70,0,38,0,43,0\n12,0,78,0,35,0,13,0,47,0,93,0\n49,0,19,0,76,0,59,0,23,0,4,0\n61,0,17,0,15,0,64,0,14,0,31,0\n67,0,54,0,63,0,65,0,8,0,39,0\n2,0,50,0,27,0,21,0,89,0,34,0\n81,0,55,0,74,0,60,0,87,0,68,0\n79,0,51,0,86,0,77,0,22,0,3,0\n18,0,36,0,62,0,94,0,95,0,28,0\n93,0,75,0,38,0,66,0,44,0,41,0\n5,0,85,0,37,0,26,0,80,0,32,0\n1,0,31,0,29,0,84,0,33,0,56,0\n58,0,20,0,30,0,73,0,88,0,90,0\n65,0,45,0,48,0,6,0,92,0,46,0\n13,0,11,0,25,0,8,0,55,0,27,0\n59,0,10,0,72,0,78,0,52,0,17,0\n64,0,81,0,23,0,34,0,71,0,24,0\n21,0,57,0,69,0,40,0,12,0,39,0\n4,0,43,0,2,0,91,0,54,0,60,0\n16,0,67,0,47,0,42,0,15,0,19,0\n63,0,82,0,14,0,49,0,89,0,83,0\n9,0,50,0,70,0,61,0,7,0,35,0\n53,0,65,0,44,0,76,0,32,0,25,0\n74,0,56,0,17,0,26,0,66,0,8,0\n31,0,13,0,5,0,46,0,20,0,38,0\n34,0,78,0,36,0,68,0,6,0,3,0\n91,0,23,0,88,0,28,0,72,0,69,0\n81,0,95,0,73,0,42,0,86,0,37,0\n4,0,47,0,79,0,18,0,21,0,82,0\n87,0,75,0,83,0,67,0,64,0,50,0\n90,0,39,0,60,0,9,0,51,0,59,0\n62,0,80,0,12,0,1,0,19,0,14,0\n27,0,30,0,63,0,71,0,61,0,77,0\n85,0,48,0,53,0,22,0,16,0,70,0\n55,0,29,0,89,0,54,0,58,0,7,0\n11,0,15,0,49,0,92,0,43,0,24,0\n57,0,41,0,35,0,52,0,84,0,2,0\n33,0,93,0,76,0,94,0,45,0,10,0\n40,0,72,0,56,0,82,0,75,0,37,0\n91,0,66,0,21,0,87,0,13,0,3,0\n60,0,73,0,47,0,46,0,80,0,34,0\n51,0,67,0,61,0,26,0,69,0,44,0\n42,0,39,0,25,0,83,0,62,0,31,0\n71,0,55,0,6,0,59,0,38,0,16,0\n28,0,12,0,11,0,41,0,79,0,74,0\n14,0,95,0,84,0,27,0,7,0,5,0\n43,0,86,0,63,0,78,0,29,0,20,0\n90,0,76,0,52,0,54,0,36,0,92,0\n17,0,30,0,53,0,81,0,35,0,94,0\n65,0,1,0,10,0,23,0,9,0,22,0\n89,0,77,0,15,0,88,0,48,0,4,0\n64,0,33,0,70,0,2,0,32,0,19,0\n40,0,50,0,18,0,45,0,85,0,49,0\n93,0,24,0,8,0,57,0,68,0,58,0\n80,0,84,0,16,0,79,0,87,0,44,0\n5,0,76,0,41,0,62,0,63,0,55,0\n95,0,52,0,34,0,82,0,31,0,26,0\n86,0,28,0,60,0,92,0,61,0,53,0\n83,0,51,0,88,0,43,0,1,0,94,0\n13,0,72,0,22,0,2,0,42,0,30,0\n54,0,40,0,6,0,23,0,74,0,20,0\n21,0,24,0,75,0,17,0,29,0,45,0\n38,0,27,0,73,0,18,0,19,0,65,0\n89,0,11,0,37,0,35,0,33,0,68,0\n78,0,46,0,8,0,81,0,9,0,4,0\n32,0,48,0,7,0,57,0,91,0,71,0\n12,0,49,0,66,0,67,0,36,0,70,0\n25,0,93,0,59,0,69,0,64,0,77,0\n10,0,85,0,58,0,56,0,15,0,39,0\n47,0,90,0,3,0,14,0,50,0,72,0\n"
  },
  {
    "path": "schedules/95_8.csv",
    "content": "45,0,3,0,35,0,74,0,75,0,59,0\n66,0,48,0,82,0,58,0,90,0,61,0\n12,0,25,0,37,0,30,0,85,0,27,0\n94,0,70,0,9,0,13,0,57,0,80,0\n54,0,72,0,41,0,44,0,76,0,93,0\n86,0,89,0,39,0,6,0,20,0,73,0\n47,0,55,0,81,0,46,0,77,0,51,0\n22,0,69,0,88,0,87,0,50,0,62,0\n64,0,15,0,49,0,63,0,21,0,92,0\n65,0,79,0,11,0,1,0,42,0,16,0\n56,0,19,0,40,0,7,0,17,0,14,0\n33,0,68,0,10,0,18,0,43,0,83,0\n24,0,53,0,5,0,67,0,91,0,29,0\n28,0,31,0,95,0,52,0,34,0,38,0\n60,0,23,0,2,0,8,0,71,0,36,0\n4,0,32,0,26,0,84,0,78,0,82,0\n64,0,13,0,86,0,76,0,27,0,47,0\n94,0,50,0,51,0,42,0,58,0,92,0\n90,0,89,0,16,0,69,0,19,0,12,0\n77,0,21,0,20,0,9,0,68,0,22,0\n7,0,75,0,67,0,55,0,87,0,33,0\n10,0,40,0,37,0,1,0,73,0,57,0\n53,0,43,0,85,0,14,0,95,0,44,0\n31,0,84,0,54,0,71,0,62,0,80,0\n5,0,18,0,25,0,32,0,45,0,23,0\n61,0,52,0,91,0,60,0,3,0,49,0\n15,0,66,0,88,0,34,0,36,0,4,0\n41,0,56,0,38,0,65,0,74,0,26,0\n24,0,59,0,70,0,93,0,2,0,81,0\n78,0,8,0,63,0,39,0,17,0,79,0\n48,0,30,0,46,0,35,0,11,0,29,0\n6,0,28,0,1,0,72,0,83,0,71,0\n67,1,43,0,51,0,12,1,31,0,45,0\n58,0,3,0,25,0,53,0,10,0,76,0\n15,0,54,0,37,0,75,0,77,0,90,0\n50,0,86,0,61,0,68,0,19,0,32,0\n13,0,74,0,87,0,84,0,2,0,20,0\n47,0,22,0,39,0,59,0,14,0,49,0\n40,0,92,0,30,0,26,0,79,0,95,0\n85,0,16,0,82,0,21,0,34,0,70,0\n88,0,33,0,65,0,78,0,94,0,27,0\n52,0,89,0,29,0,66,0,8,0,81,0\n56,0,73,0,91,0,46,0,93,0,23,0\n36,0,28,0,11,0,63,0,57,0,69,0\n72,0,38,0,60,0,42,0,5,0,7,0\n35,0,4,0,9,0,55,0,83,0,17,0\n6,0,44,0,80,0,64,0,18,0,48,0\n24,0,62,0,68,0,41,0,3,0,37,0\n61,0,33,0,20,0,40,0,59,0,54,0\n47,0,70,0,71,0,65,0,87,0,45,0\n13,0,58,0,81,0,26,0,15,0,91,0\n49,0,89,0,27,0,67,0,56,0,50,0\n22,0,5,0,46,0,19,0,92,0,28,0\n72,0,17,0,52,0,86,0,85,0,36,0\n55,0,73,0,63,0,84,0,42,0,18,0\n4,0,69,0,95,0,8,0,21,0,48,0\n83,0,51,0,82,0,38,0,62,0,25,0\n66,0,24,0,10,0,74,0,64,0,7,0\n34,0,60,0,41,0,35,0,1,0,53,0\n23,0,57,0,14,0,12,0,78,0,76,0\n93,0,75,0,16,0,9,0,6,0,29,0\n94,0,39,0,11,0,44,0,90,0,31,0\n88,0,32,0,79,0,80,0,43,0,2,0\n77,0,73,0,70,0,30,0,28,0,50,0\n92,0,4,0,67,0,65,0,13,0,52,0\n37,0,5,0,95,0,86,0,74,0,71,0\n89,0,91,0,59,0,82,0,87,0,68,0\n26,0,1,0,51,0,3,0,48,0,17,0\n12,0,29,0,58,0,33,0,63,0,41,0\n36,0,25,0,7,0,47,0,21,0,44,0\n62,0,76,0,18,0,46,0,2,0,90,0\n19,0,54,0,53,0,66,0,55,0,11,0\n23,0,69,0,49,0,9,0,79,0,38,0\n64,0,20,0,16,0,60,0,32,0,94,0\n43,0,77,0,78,0,35,0,40,0,6,0\n75,0,30,0,14,0,31,0,88,0,81,0\n8,0,10,0,45,0,61,0,34,0,72,0\n56,0,83,0,42,0,85,0,22,0,24,0\n27,0,57,0,39,0,15,0,84,0,93,0\n80,0,63,0,59,0,53,0,4,0,37,0\n12,0,36,0,62,0,49,0,74,0,70,0\n21,0,79,0,54,0,94,0,52,0,87,0\n17,0,25,0,67,0,16,0,41,0,66,0\n58,0,64,0,1,0,46,0,78,0,31,0\n6,0,76,0,45,0,82,0,55,0,88,0\n50,0,5,0,83,0,11,0,13,0,3,0\n69,0,71,0,92,0,43,0,24,0,20,0\n86,0,35,0,93,0,22,0,80,0,10,0\n72,0,65,0,19,0,30,0,51,0,39,0\n57,0,68,0,56,0,95,0,60,0,47,0\n34,0,27,0,2,0,75,0,48,0,73,0\n40,0,29,0,44,0,32,0,15,0,38,0\n14,0,42,0,26,0,61,0,77,0,89,0\n90,0,85,0,81,0,84,0,33,0,23,0\n8,0,7,0,91,0,28,0,9,0,18,0\n76,0,66,0,20,0,80,0,5,0,49,0\n36,0,82,0,46,0,24,0,54,0,50,0\n93,0,17,0,62,0,95,0,64,0,65,0\n3,0,79,0,55,0,71,0,56,0,34,0\n1,0,2,0,15,0,45,0,30,0,52,0\n40,0,53,0,75,0,12,0,94,0,22,0\n44,0,61,0,23,0,13,0,51,0,63,0\n69,0,78,0,81,0,83,0,41,0,7,0\n48,0,31,0,57,0,16,0,33,0,72,0\n35,0,42,0,8,0,25,0,68,0,70,0\n84,0,21,0,38,0,86,0,14,0,67,0\n29,0,60,0,74,0,39,0,77,0,88,0\n19,0,18,0,87,0,58,0,4,0,27,0\n9,0,73,0,90,0,43,0,59,0,26,0\n47,0,92,0,6,0,11,0,37,0,91,0\n10,0,32,0,85,0,89,0,28,0,51,0\n20,0,55,0,41,0,15,0,23,0,50,0\n71,0,49,0,53,0,81,0,16,0,68,0\n94,0,63,0,93,0,67,0,83,0,48,0\n45,0,21,0,39,0,40,0,66,0,13,0\n57,0,44,0,30,0,86,0,82,0,8,0\n59,0,36,0,77,0,95,0,19,0,1,0\n33,0,74,0,46,0,25,0,79,0,4,0\n87,0,64,0,12,0,61,0,56,0,5,0\n2,0,7,0,58,0,65,0,22,0,37,0\n14,0,80,0,29,0,92,0,73,0,3,0\n17,0,84,0,76,0,60,0,28,0,43,0\n26,0,35,0,31,0,85,0,69,0,18,0\n52,0,32,0,42,0,62,0,27,0,6,0\n90,0,38,0,88,0,10,0,70,0,91,0\n24,0,72,0,78,0,89,0,75,0,11,0\n34,0,9,0,67,0,54,0,47,0,12,0\n"
  },
  {
    "path": "schedules/95_9.csv",
    "content": "77,0,95,0,87,0,88,0,80,0,70,0\n33,0,24,0,48,0,16,0,38,0,6,0\n3,0,27,0,58,0,76,0,63,0,36,0\n42,0,64,0,32,0,90,0,5,0,59,0\n73,0,50,0,15,0,34,0,53,0,82,0\n12,0,84,0,1,0,60,0,37,0,89,0\n17,0,66,0,35,0,56,0,40,0,72,0\n7,0,94,0,23,0,19,0,75,0,54,0\n62,0,26,0,11,0,83,0,65,0,43,0\n8,0,67,0,41,0,21,0,52,0,14,0\n57,0,29,0,69,0,44,0,25,0,45,0\n31,0,91,0,13,0,9,0,22,0,78,0\n71,0,49,0,18,0,10,0,30,0,39,0\n86,0,51,0,93,0,74,0,4,0,46,0\n28,0,61,0,2,0,55,0,47,0,79,0\n85,0,92,0,68,0,81,0,20,0,89,0\n62,0,15,0,66,0,90,0,19,0,3,0\n67,0,76,0,88,0,48,0,23,0,64,0\n29,0,12,0,65,0,95,0,17,0,38,0\n60,0,44,0,63,0,50,0,14,0,40,0\n1,0,82,0,78,0,49,0,11,0,42,0\n83,0,52,0,9,0,51,0,71,0,72,0\n4,0,79,0,87,0,8,0,39,0,69,0\n31,0,25,0,30,0,55,0,27,0,68,0\n33,0,26,0,20,0,13,0,34,0,56,0\n77,0,92,0,22,0,16,0,43,0,7,0\n59,0,57,0,35,0,85,0,94,0,61,0\n47,0,75,0,74,0,37,0,41,0,36,0\n10,0,53,0,84,0,70,0,86,0,54,0\n91,0,6,0,5,0,28,0,46,0,45,0\n24,0,93,0,73,0,18,0,81,0,2,0\n32,0,80,0,49,0,58,0,21,0,25,0\n51,1,60,0,56,0,68,1,67,0,11,0\n7,1,12,0,8,0,55,0,64,0,26,0\n82,0,90,0,83,0,94,0,13,0,69,0\n34,0,14,0,48,0,3,0,61,0,31,0\n4,0,71,0,89,0,16,0,63,0,29,0\n42,0,66,0,20,0,9,0,45,0,75,0\n40,0,27,0,85,0,86,0,88,0,91,0\n22,0,28,0,62,0,50,0,87,0,76,0\n46,0,54,0,52,0,59,0,44,0,79,0\n65,0,10,0,36,0,6,0,2,0,57,0\n32,0,18,0,77,0,74,0,15,0,33,0\n73,0,92,0,35,0,37,0,23,0,80,0\n47,0,5,0,39,0,70,0,43,0,38,0\n30,0,21,0,93,0,1,0,95,0,72,0\n41,0,58,0,78,0,53,0,17,0,24,0\n84,0,81,0,61,0,19,0,63,0,22,0\n62,0,16,0,67,0,55,0,85,0,9,0\n36,0,87,0,82,0,60,0,52,0,25,0\n86,0,79,0,6,0,56,0,15,0,12,0\n28,0,64,0,35,0,65,0,74,0,34,0\n10,0,40,0,3,0,69,0,26,0,92,0\n71,0,77,0,54,0,27,0,73,0,1,0\n50,0,5,0,49,0,7,0,48,0,41,0\n33,0,91,0,81,0,75,0,95,0,44,0\n80,0,47,0,76,0,90,0,45,0,93,0\n57,0,89,0,38,0,51,0,18,0,66,0\n68,0,2,0,78,0,70,0,94,0,14,0\n11,0,17,0,59,0,21,0,84,0,88,0\n29,0,24,0,39,0,19,0,83,0,46,0\n4,0,37,0,30,0,13,0,58,0,43,0\n23,0,53,0,20,0,31,0,32,0,72,0\n42,0,25,0,48,0,8,0,65,0,40,0\n61,0,56,0,50,0,92,0,64,0,1,0\n41,0,95,0,79,0,57,0,76,0,73,0\n67,0,2,0,86,0,34,0,75,0,5,0\n63,0,11,0,85,0,87,0,7,0,93,0\n10,0,55,0,90,0,24,0,21,0,51,0\n46,0,69,0,30,0,60,0,81,0,77,0\n23,0,49,0,9,0,68,0,12,0,3,0\n71,0,22,0,47,0,20,0,58,0,94,0\n66,0,29,0,84,0,78,0,26,0,32,0\n17,0,89,0,74,0,54,0,45,0,43,0\n39,0,52,0,91,0,53,0,42,0,35,0\n19,0,38,0,59,0,31,0,36,0,8,0\n62,0,80,0,27,0,82,0,33,0,4,0\n14,0,88,0,13,0,28,0,15,0,72,0\n37,0,83,0,18,0,6,0,70,0,44,0\n16,0,23,0,58,0,87,0,10,0,1,0\n46,0,50,0,65,0,78,0,85,0,47,0\n92,0,41,0,11,0,25,0,2,0,66,0\n17,0,68,0,75,0,90,0,73,0,39,0\n38,0,40,0,93,0,61,0,20,0,67,0\n81,0,94,0,12,0,52,0,31,0,4,0\n30,0,36,0,15,0,80,0,51,0,5,0\n72,0,37,0,8,0,62,0,54,0,29,0\n69,0,22,0,34,0,32,0,70,0,89,0\n88,0,83,0,55,0,33,0,57,0,49,0\n74,0,48,0,91,0,60,0,79,0,71,0\n84,0,43,0,6,0,42,0,95,0,27,0\n45,0,19,0,82,0,16,0,64,0,18,0\n21,0,63,0,53,0,9,0,28,0,56,0\n86,0,3,0,7,0,44,0,35,0,13,0\n14,0,76,0,24,0,59,0,77,0,26,0\n25,0,1,0,70,0,15,0,85,0,17,0\n61,0,65,0,73,0,30,0,52,0,33,0\n34,0,90,0,92,0,46,0,87,0,57,0\n10,0,93,0,94,0,5,0,8,0,89,0\n54,0,81,0,6,0,82,0,67,0,47,0\n56,0,78,0,55,0,71,0,23,0,36,0\n75,0,21,0,35,0,38,0,27,0,83,0\n51,0,64,0,40,0,77,0,41,0,62,0\n79,0,32,0,88,0,7,0,37,0,9,0\n18,0,14,0,43,0,29,0,91,0,20,0\n11,0,45,0,39,0,58,0,50,0,12,0\n72,0,26,0,19,0,74,0,42,0,80,0\n2,0,60,0,95,0,4,0,22,0,3,0\n44,0,28,0,31,0,24,0,49,0,84,0\n66,0,63,0,86,0,69,0,48,0,59,0\n76,0,16,0,13,0,68,0,53,0,5,0\n15,0,40,0,81,0,21,0,71,0,87,0\n54,0,56,0,83,0,91,0,41,0,32,0\n52,0,7,0,64,0,47,0,17,0,57,0\n45,0,36,0,1,0,79,0,94,0,26,0\n78,0,72,0,43,0,3,0,33,0,67,0\n55,0,6,0,50,0,20,0,77,0,35,0\n85,0,22,0,12,0,73,0,48,0,51,0\n31,0,69,0,42,0,2,0,16,0,37,0\n62,0,86,0,25,0,14,0,39,0,23,0\n75,0,82,0,59,0,58,0,28,0,93,0\n34,0,95,0,8,0,66,0,68,0,24,0\n27,0,29,0,70,0,60,0,92,0,49,0\n44,0,88,0,74,0,53,0,61,0,90,0\n19,0,11,0,9,0,76,0,30,0,89,0\n46,0,80,0,13,0,63,0,10,0,38,0\n18,0,4,0,5,0,84,0,65,0,72,0\n37,0,3,0,45,0,77,0,56,0,85,0\n16,0,20,0,83,0,12,0,28,0,25,0\n33,0,68,0,36,0,50,0,93,0,54,0\n60,0,21,0,73,0,42,0,86,0,47,0\n90,0,26,0,95,0,31,0,35,0,67,0\n9,0,57,0,43,0,81,0,1,0,8,0\n7,0,46,0,70,0,82,0,66,0,76,0\n51,0,63,0,6,0,34,0,78,0,39,0\n10,0,4,0,61,0,91,0,11,0,15,0\n74,0,23,0,40,0,29,0,52,0,2,0\n89,0,53,0,65,0,14,0,49,0,79,0\n18,0,59,0,80,0,41,0,55,0,22,0\n48,0,13,0,19,0,32,0,17,0,27,0\n71,0,75,0,24,0,62,0,92,0,88,0\n38,0,94,0,87,0,44,0,64,0,30,0\n58,0,69,0,68,0,84,0,51,0,7,0\n"
  },
  {
    "path": "schedules/96_1.csv",
    "content": "8,0,32,0,6,0,23,0,62,0,94,0\n12,0,93,0,34,0,11,0,9,0,35,0\n50,0,33,0,13,0,36,0,52,0,53,0\n2,0,51,0,64,0,63,0,26,0,18,0\n91,0,25,0,10,0,37,0,71,0,16,0\n56,0,45,0,38,0,20,0,95,0,49,0\n70,0,69,0,76,0,17,0,83,0,29,0\n72,0,5,0,27,0,89,0,80,0,7,0\n14,0,54,0,30,0,67,0,61,0,92,0\n3,0,78,0,82,0,79,0,65,0,85,0\n57,0,73,0,39,0,60,0,46,0,19,0\n1,0,84,0,59,0,48,0,74,0,28,0\n15,0,88,0,47,0,87,0,41,0,90,0\n24,0,66,0,21,0,40,0,44,0,86,0\n31,0,58,0,4,0,55,0,81,0,77,0\n42,0,75,0,96,0,68,0,43,0,22,0\n"
  },
  {
    "path": "schedules/96_10.csv",
    "content": "82,0,23,0,22,0,34,0,27,0,95,0\n17,0,87,0,47,0,8,0,30,0,74,0\n20,0,37,0,86,0,50,0,45,0,80,0\n14,0,1,0,48,0,92,0,6,0,58,0\n40,0,59,0,72,0,73,0,12,0,67,0\n71,0,43,0,15,0,76,0,85,0,44,0\n94,0,31,0,4,0,79,0,9,0,25,0\n36,0,83,0,57,0,75,0,52,0,78,0\n46,0,7,0,5,0,19,0,18,0,60,0\n96,0,91,0,56,0,13,0,93,0,89,0\n24,0,11,0,54,0,88,0,32,0,81,0\n53,0,26,0,49,0,65,0,68,0,39,0\n90,0,69,0,84,0,28,0,10,0,29,0\n61,0,3,0,16,0,62,0,2,0,35,0\n21,0,55,0,66,0,42,0,38,0,77,0\n63,0,70,0,33,0,64,0,41,0,51,0\n72,0,6,0,4,0,27,0,19,0,85,0\n94,0,80,0,48,0,93,0,31,0,23,0\n44,0,81,0,9,0,59,0,17,0,86,0\n78,0,24,0,34,0,76,0,40,0,26,0\n39,0,52,0,20,0,96,0,79,0,28,0\n65,0,83,0,13,0,14,0,87,0,61,0\n53,0,71,0,75,0,56,0,77,0,29,0\n16,0,36,0,10,0,64,0,18,0,21,0\n73,0,51,0,37,0,60,0,92,0,25,0\n33,0,57,0,49,0,54,0,3,0,69,0\n15,0,32,0,12,0,74,0,5,0,1,0\n67,0,22,0,30,0,62,0,68,0,90,0\n88,0,84,0,45,0,91,0,7,0,66,0\n89,0,50,0,8,0,70,0,58,0,55,0\n47,0,35,0,42,0,82,0,46,0,63,0\n41,0,2,0,95,0,38,0,11,0,43,0\n77,0,83,0,60,0,24,0,59,0,16,0\n78,0,25,0,93,0,28,0,61,0,85,0\n57,0,31,0,71,0,65,0,10,0,1,0\n20,0,68,0,18,0,51,0,6,0,17,0\n96,0,81,0,34,0,53,0,48,0,64,0\n21,0,92,0,8,0,40,0,27,0,75,0\n80,0,39,0,66,0,29,0,62,0,54,0\n69,0,95,0,9,0,45,0,19,0,55,0\n33,0,35,0,50,0,5,0,67,0,52,0\n89,0,88,0,87,0,82,0,44,0,72,0\n32,0,79,0,58,0,3,0,26,0,38,0\n46,0,15,0,41,0,90,0,56,0,23,0\n73,0,13,0,74,0,2,0,94,0,70,0\n12,0,7,0,63,0,36,0,43,0,37,0\n30,0,91,0,14,0,11,0,42,0,76,0\n49,0,84,0,22,0,86,0,4,0,47,0\n80,0,95,0,67,0,17,0,57,0,92,0\n62,0,59,0,85,0,64,0,50,0,75,0\n65,0,34,0,93,0,52,0,19,0,32,0\n68,0,45,0,87,0,1,0,27,0,79,0\n6,0,26,0,28,0,13,0,41,0,81,0\n51,0,31,0,29,0,16,0,74,0,38,0\n21,0,9,0,7,0,20,0,48,0,33,0\n3,0,73,0,11,0,44,0,77,0,47,0\n35,0,72,0,24,0,37,0,66,0,18,0\n2,0,25,0,84,0,71,0,30,0,46,0\n78,0,23,0,4,0,43,0,91,0,8,0\n53,0,60,0,82,0,36,0,69,0,70,0\n40,0,5,0,56,0,49,0,61,0,10,0\n55,0,76,0,96,0,54,0,83,0,63,0\n90,0,89,0,86,0,94,0,12,0,14,0\n22,0,58,0,39,0,88,0,42,0,15,0\n85,0,17,0,77,0,41,0,45,0,48,0\n16,0,27,0,44,0,33,0,46,0,65,0\n92,0,74,0,26,0,84,0,35,0,43,0\n13,0,52,0,18,0,69,0,38,0,23,0\n72,0,62,0,32,0,95,0,49,0,36,0\n40,0,66,0,83,0,51,0,71,0,3,0\n11,0,21,0,68,0,86,0,29,0,82,0\n8,0,28,0,2,0,88,0,14,0,63,0\n25,0,39,0,91,0,57,0,90,0,81,0\n94,0,15,0,60,0,20,0,30,0,75,0\n67,0,96,0,37,0,42,0,31,0,87,0\n78,0,55,0,59,0,6,0,5,0,22,0\n53,0,73,0,10,0,89,0,24,0,79,0\n9,0,50,0,93,0,12,0,54,0,47,0\n1,0,34,0,56,0,7,0,4,0,70,0\n64,0,19,0,76,0,80,0,58,0,61,0\n91,0,38,0,48,0,86,0,83,0,28,0\n13,0,45,0,71,0,8,0,49,0,35,0\n88,0,51,0,94,0,77,0,67,0,26,0\n40,0,14,0,18,0,96,0,33,0,15,0\n32,0,2,0,90,0,59,0,20,0,53,0\n25,0,65,0,22,0,11,0,69,0,72,0\n85,0,42,0,1,0,60,0,89,0,52,0\n6,0,63,0,39,0,34,0,31,0,44,0\n93,0,62,0,87,0,7,0,57,0,55,0\n43,0,54,0,82,0,73,0,16,0,75,0\n68,0,10,0,4,0,74,0,58,0,81,0\n30,0,70,0,27,0,9,0,3,0,80,0\n78,0,12,0,64,0,66,0,17,0,56,0\n5,0,92,0,76,0,36,0,41,0,47,0\n29,0,46,0,24,0,95,0,50,0,61,0\n79,0,37,0,19,0,84,0,21,0,23,0\n7,0,14,0,71,0,39,0,67,0,69,0\n75,0,44,0,1,0,2,0,96,0,51,0\n53,0,58,0,86,0,18,0,43,0,31,0\n52,0,59,0,82,0,80,0,25,0,10,0\n38,0,27,0,88,0,78,0,20,0,35,0\n5,0,89,0,17,0,83,0,62,0,34,0\n90,0,48,0,40,0,4,0,36,0,50,0\n92,0,49,0,81,0,16,0,12,0,23,0\n24,0,41,0,87,0,21,0,3,0,22,0\n15,0,70,0,54,0,68,0,77,0,19,0\n46,0,76,0,8,0,9,0,73,0,6,0\n79,0,63,0,30,0,66,0,13,0,95,0\n72,0,45,0,64,0,93,0,26,0,60,0\n56,0,11,0,74,0,37,0,33,0,28,0\n29,0,65,0,85,0,55,0,47,0,91,0\n61,0,32,0,94,0,57,0,42,0,84,0\n48,0,49,0,24,0,25,0,75,0,67,0\n27,0,77,0,43,0,62,0,81,0,52,0\n10,0,3,0,19,0,96,0,78,0,86,0\n16,0,13,0,88,0,76,0,53,0,1,0\n92,0,66,0,69,0,46,0,34,0,68,0\n73,0,15,0,17,0,50,0,31,0,7,0\n45,0,12,0,33,0,29,0,22,0,2,0\n41,0,32,0,55,0,35,0,40,0,60,0\n95,0,8,0,56,0,20,0,85,0,83,0\n57,0,47,0,51,0,72,0,14,0,23,0\n74,0,79,0,36,0,80,0,71,0,42,0\n30,0,38,0,61,0,4,0,89,0,39,0\n84,0,18,0,70,0,11,0,59,0,93,0\n44,0,58,0,28,0,94,0,21,0,54,0\n63,0,9,0,26,0,5,0,91,0,87,0\n65,0,6,0,37,0,82,0,90,0,64,0\n96,0,43,0,60,0,68,0,50,0,88,0\n76,0,86,0,25,0,33,0,66,0,32,0\n81,0,36,0,3,0,45,0,14,0,56,0\n7,0,10,0,83,0,72,0,30,0,92,0\n34,0,67,0,20,0,74,0,61,0,55,0\n22,0,13,0,44,0,29,0,48,0,57,0\n52,0,70,0,46,0,31,0,21,0,91,0\n93,0,75,0,69,0,35,0,6,0,79,0\n59,0,42,0,54,0,8,0,41,0,65,0\n2,0,23,0,77,0,40,0,87,0,58,0\n1,0,94,0,62,0,78,0,47,0,18,0\n38,0,63,0,19,0,90,0,49,0,17,0\n82,0,85,0,9,0,84,0,39,0,24,0\n89,0,26,0,37,0,95,0,15,0,16,0\n5,0,64,0,71,0,27,0,28,0,73,0\n80,0,4,0,11,0,53,0,12,0,51,0\n31,0,72,0,61,0,8,0,81,0,33,0\n45,0,34,0,57,0,59,0,58,0,30,0\n56,0,52,0,86,0,55,0,88,0,92,0\n40,0,20,0,29,0,93,0,63,0,1,0\n50,0,91,0,49,0,79,0,77,0,82,0\n2,0,47,0,67,0,15,0,6,0,66,0\n75,0,3,0,65,0,84,0,95,0,5,0\n16,0,28,0,68,0,7,0,80,0,32,0\n19,0,43,0,42,0,13,0,51,0,24,0\n74,0,23,0,64,0,44,0,25,0,89,0\n60,0,11,0,90,0,71,0,9,0,78,0\n17,0,53,0,54,0,14,0,22,0,37,0\n21,0,69,0,26,0,4,0,73,0,62,0\n18,0,39,0,27,0,41,0,12,0,83,0\n70,0,87,0,35,0,48,0,76,0,10,0\n36,0,96,0,38,0,85,0,94,0,46,0\n"
  },
  {
    "path": "schedules/96_11.csv",
    "content": "83,0,45,0,21,0,44,0,71,0,92,0\n93,0,10,0,89,0,65,0,85,0,35,0\n74,0,9,0,13,0,73,0,53,0,32,0\n79,0,50,0,58,0,7,0,14,0,20,0\n39,0,84,0,22,0,49,0,56,0,66,0\n36,0,59,0,62,0,54,0,77,0,12,0\n47,0,75,0,18,0,11,0,17,0,4,0\n19,0,31,0,60,0,5,0,82,0,26,0\n57,0,91,0,6,0,51,0,41,0,33,0\n48,0,3,0,64,0,42,0,25,0,37,0\n28,0,76,0,2,0,61,0,8,0,88,0\n86,0,30,0,94,0,80,0,72,0,23,0\n95,0,1,0,46,0,16,0,52,0,40,0\n38,0,70,0,43,0,90,0,55,0,96,0\n69,0,29,0,87,0,68,0,15,0,78,0\n67,0,34,0,63,0,24,0,81,0,27,0\n74,0,91,0,5,0,89,0,39,0,45,0\n9,0,60,0,50,0,57,0,44,0,36,0\n88,0,92,0,7,0,73,0,51,0,10,0\n64,0,12,0,21,0,8,0,32,0,80,0\n37,0,65,0,58,0,82,0,49,0,6,0\n61,0,95,0,26,0,71,0,30,0,38,0\n85,0,96,0,75,0,29,0,46,0,14,0\n62,0,67,0,40,0,3,0,84,0,79,0\n54,0,53,0,42,0,18,0,34,0,16,0\n59,0,86,0,13,0,69,0,4,0,43,0\n27,0,87,0,17,0,2,0,22,0,52,0\n70,0,77,0,11,0,48,0,93,0,28,0\n68,0,47,0,24,0,90,0,35,0,66,0\n72,0,78,0,76,0,41,0,19,0,63,0\n33,0,94,0,31,0,1,0,81,0,56,0\n23,0,20,0,83,0,55,0,15,0,25,0\n84,0,38,0,82,0,92,0,91,0,42,0\n3,0,43,0,73,0,54,0,71,0,29,0\n9,0,17,0,16,0,69,0,59,0,21,0\n57,0,4,0,39,0,67,0,58,0,10,0\n88,0,27,0,86,0,60,0,37,0,79,0\n2,0,72,0,36,0,65,0,46,0,66,0\n18,0,81,0,19,0,45,0,90,0,93,0\n75,0,41,0,23,0,40,0,24,0,74,0\n8,0,1,0,89,0,20,0,30,0,70,0\n77,0,47,0,22,0,76,0,32,0,33,0\n12,0,51,0,96,0,11,0,63,0,5,0\n94,0,64,0,15,0,95,0,35,0,28,0\n87,0,53,0,26,0,25,0,56,0,7,0\n80,0,83,0,6,0,50,0,13,0,34,0\n78,0,44,0,85,0,61,0,55,0,48,0\n52,0,49,0,14,0,62,0,68,0,31,0\n58,0,36,0,3,0,86,0,73,0,91,0\n60,0,39,0,71,0,75,0,93,0,20,0\n65,0,1,0,92,0,47,0,5,0,57,0\n51,0,40,0,19,0,89,0,37,0,4,0\n70,0,29,0,32,0,94,0,42,0,26,0\n90,0,34,0,17,0,28,0,12,0,84,0\n15,0,77,0,2,0,30,0,53,0,63,0\n45,0,78,0,33,0,25,0,59,0,24,0\n64,0,87,0,13,0,16,0,10,0,96,0\n82,0,18,0,8,0,52,0,72,0,50,0\n95,0,76,0,48,0,68,0,14,0,21,0\n55,0,81,0,35,0,88,0,49,0,9,0\n67,0,7,0,66,0,11,0,85,0,69,0\n38,0,56,0,41,0,54,0,27,0,83,0\n61,0,80,0,31,0,79,0,46,0,23,0\n43,0,6,0,74,0,44,0,62,0,22,0\n2,0,12,0,25,0,19,0,10,0,13,0\n59,0,71,0,94,0,87,0,47,0,34,0\n58,0,75,0,90,0,53,0,95,0,21,0\n24,0,48,0,73,0,16,0,8,0,39,0\n72,0,69,0,89,0,26,0,92,0,14,0\n85,0,83,0,88,0,1,0,18,0,70,0\n91,0,7,0,49,0,76,0,93,0,80,0\n62,0,50,0,61,0,15,0,37,0,81,0\n5,0,36,0,55,0,29,0,41,0,17,0\n96,0,79,0,4,0,9,0,68,0,77,0\n78,0,11,0,67,0,38,0,22,0,23,0\n84,0,65,0,33,0,43,0,64,0,60,0\n44,0,30,0,3,0,51,0,82,0,56,0\n20,0,54,0,46,0,86,0,35,0,74,0\n66,0,42,0,52,0,28,0,6,0,63,0\n27,0,57,0,32,0,40,0,45,0,31,0\n41,0,16,0,92,0,49,0,12,0,94,0\n8,0,85,0,10,0,36,0,26,0,81,0\n2,0,5,0,37,0,93,0,83,0,14,0\n84,0,24,0,80,0,55,0,18,0,69,0\n90,0,77,0,25,0,91,0,50,0,29,0\n15,0,60,0,89,0,78,0,21,0,96,0\n44,0,52,0,20,0,47,0,67,0,53,0\n75,0,28,0,22,0,65,0,30,0,59,0\n4,0,74,0,1,0,72,0,48,0,38,0\n34,0,11,0,56,0,76,0,79,0,73,0\n68,0,71,0,42,0,46,0,27,0,19,0\n70,0,86,0,62,0,64,0,66,0,51,0\n82,0,95,0,31,0,43,0,9,0,45,0\n33,0,17,0,54,0,58,0,40,0,63,0\n39,0,87,0,32,0,23,0,6,0,88,0\n57,0,13,0,35,0,7,0,61,0,3,0\n69,0,25,0,30,0,74,0,47,0,49,0\n15,0,14,0,90,0,41,0,80,0,67,0\n84,0,94,0,37,0,20,0,85,0,22,0\n48,0,29,0,53,0,76,0,89,0,62,0\n59,0,73,0,64,0,2,0,31,0,50,0\n96,0,38,0,33,0,18,0,44,0,79,0\n21,0,86,0,24,0,19,0,6,0,1,0\n34,0,75,0,45,0,3,0,70,0,52,0\n10,0,4,0,32,0,5,0,61,0,54,0\n16,0,23,0,28,0,91,0,82,0,27,0\n17,0,8,0,56,0,13,0,93,0,68,0\n72,0,40,0,55,0,7,0,12,0,60,0\n71,0,88,0,95,0,65,0,11,0,36,0\n77,0,81,0,66,0,92,0,87,0,58,0\n43,0,26,0,83,0,63,0,57,0,46,0\n35,0,9,0,42,0,78,0,51,0,39,0\n6,0,69,0,38,0,75,0,2,0,94,0\n5,0,50,0,16,0,76,0,84,0,74,0\n13,0,20,0,29,0,33,0,28,0,27,0\n44,0,41,0,68,0,89,0,32,0,34,0\n4,0,3,0,47,0,95,0,60,0,85,0\n48,0,66,0,15,0,88,0,31,0,17,0\n65,0,61,0,45,0,86,0,87,0,63,0\n21,0,81,0,7,0,39,0,54,0,25,0\n30,0,62,0,14,0,73,0,19,0,55,0\n22,0,93,0,51,0,24,0,72,0,58,0\n8,0,40,0,59,0,83,0,42,0,96,0\n91,0,52,0,12,0,26,0,79,0,35,0\n82,0,53,0,1,0,11,0,10,0,80,0\n23,0,57,0,78,0,64,0,71,0,90,0\n18,0,67,0,49,0,77,0,43,0,36,0\n92,0,46,0,56,0,70,0,9,0,37,0\n88,0,16,0,81,0,47,0,38,0,89,0\n3,0,55,0,50,0,33,0,66,0,87,0\n40,0,5,0,25,0,58,0,68,0,94,0\n83,0,30,0,60,0,17,0,76,0,24,0\n29,0,7,0,2,0,34,0,82,0,4,0\n69,0,54,0,51,0,52,0,23,0,65,0\n45,0,72,0,20,0,64,0,85,0,77,0\n11,0,90,0,46,0,62,0,92,0,8,0\n73,0,95,0,80,0,22,0,57,0,37,0\n35,0,53,0,6,0,84,0,96,0,36,0\n79,0,32,0,19,0,75,0,48,0,43,0\n26,0,70,0,21,0,78,0,49,0,13,0\n14,0,74,0,61,0,56,0,42,0,12,0\n15,0,59,0,27,0,44,0,1,0,39,0\n9,0,28,0,41,0,67,0,93,0,86,0\n31,0,63,0,91,0,10,0,18,0,71,0\n82,0,73,0,89,0,94,0,66,0,83,0\n24,0,62,0,57,0,38,0,85,0,87,0\n92,0,25,0,79,0,95,0,6,0,17,0\n47,0,51,0,13,0,46,0,55,0,45,0\n80,0,43,0,56,0,78,0,20,0,88,0\n39,0,36,0,52,0,64,0,33,0,61,0\n75,0,42,0,5,0,7,0,77,0,86,0\n63,0,44,0,23,0,84,0,14,0,8,0\n40,0,65,0,91,0,15,0,34,0,9,0\n18,0,21,0,22,0,41,0,26,0,2,0\n4,0,72,0,71,0,28,0,81,0,53,0\n68,0,12,0,67,0,70,0,54,0,50,0\n74,0,96,0,93,0,3,0,27,0,31,0\n76,0,35,0,37,0,32,0,69,0,1,0\n49,0,60,0,48,0,10,0,59,0,90,0\n30,0,19,0,58,0,16,0,29,0,11,0\n77,0,52,0,94,0,13,0,24,0,43,0\n34,0,46,0,85,0,21,0,33,0,5,0\n73,0,28,0,18,0,6,0,40,0,78,0\n67,0,56,0,55,0,95,0,89,0,2,0\n82,0,63,0,64,0,74,0,75,0,88,0\n31,0,71,0,37,0,7,0,41,0,8,0\n10,0,79,0,49,0,42,0,15,0,72,0\n11,0,81,0,59,0,68,0,84,0,57,0\n30,0,93,0,27,0,32,0,50,0,92,0\n80,0,16,0,25,0,70,0,44,0,4,0\n29,0,58,0,38,0,35,0,45,0,23,0\n76,0,90,0,87,0,36,0,20,0,51,0\n19,0,53,0,61,0,22,0,3,0,69,0\n14,0,54,0,66,0,1,0,91,0,60,0\n65,0,17,0,26,0,96,0,62,0,39,0\n47,0,9,0,86,0,83,0,48,0,12,0\n"
  },
  {
    "path": "schedules/96_12.csv",
    "content": "44,0,86,0,21,0,83,0,76,0,84,0\n23,0,45,0,24,0,5,0,89,0,49,0\n14,0,22,0,77,0,39,0,74,0,91,0\n16,0,50,0,28,0,34,0,27,0,36,0\n3,0,96,0,41,0,57,0,7,0,70,0\n13,0,20,0,12,0,95,0,4,0,47,0\n75,0,66,0,42,0,53,0,93,0,15,0\n6,0,55,0,38,0,43,0,85,0,37,0\n9,0,51,0,87,0,10,0,73,0,32,0\n46,0,78,0,71,0,59,0,92,0,52,0\n48,0,11,0,72,0,68,0,33,0,63,0\n81,0,79,0,61,0,17,0,58,0,35,0\n65,0,19,0,29,0,2,0,88,0,31,0\n69,0,64,0,54,0,18,0,94,0,62,0\n67,0,1,0,82,0,25,0,56,0,40,0\n30,0,26,0,60,0,90,0,8,0,80,0\n55,0,7,0,36,0,15,0,51,0,89,0\n96,0,24,0,38,0,9,0,84,0,75,0\n45,0,71,0,50,0,86,0,41,0,43,0\n68,0,87,0,35,0,76,0,39,0,66,0\n78,0,47,0,37,0,88,0,42,0,79,0\n28,0,11,0,44,0,5,0,69,0,6,0\n12,0,19,0,54,0,92,0,74,0,17,0\n85,0,64,0,58,0,2,0,13,0,67,0\n83,0,18,0,52,0,40,0,57,0,60,0\n14,0,25,0,21,0,32,0,53,0,33,0\n77,0,1,0,10,0,72,0,70,0,26,0\n93,0,81,0,20,0,29,0,59,0,62,0\n90,0,3,0,61,0,27,0,4,0,56,0\n16,0,22,0,8,0,65,0,49,0,82,0\n95,0,63,0,91,0,46,0,94,0,23,0\n73,0,31,0,48,0,34,0,80,0,30,0\n42,0,12,0,76,0,6,0,24,0,7,0\n60,0,87,0,79,0,43,0,38,0,15,0\n17,0,50,0,51,0,66,0,72,0,37,0\n44,0,2,0,96,0,36,0,32,0,52,0\n9,0,78,0,33,0,26,0,28,0,13,0\n58,0,74,0,90,0,70,0,88,0,62,0\n91,0,35,0,93,0,19,0,95,0,1,0\n82,0,75,0,34,0,18,0,23,0,41,0\n55,0,8,0,69,0,27,0,45,0,57,0\n49,0,64,0,25,0,31,0,77,0,71,0\n73,0,56,0,67,0,92,0,5,0,63,0\n48,0,29,0,80,0,53,0,86,0,22,0\n85,0,21,0,40,0,94,0,20,0,61,0\n39,0,3,0,89,0,46,0,11,0,65,0\n10,0,4,0,68,0,84,0,81,0,16,0\n30,0,14,0,47,0,54,0,83,0,59,0\n28,0,43,0,33,0,51,0,82,0,8,0\n93,0,55,0,88,0,44,0,17,0,25,0\n23,0,56,0,79,0,9,0,13,0,42,0\n64,0,52,0,74,0,91,0,87,0,26,0\n70,0,73,0,24,0,19,0,69,0,22,0\n95,0,45,0,77,0,63,0,60,0,58,0\n29,0,85,0,12,0,84,0,71,0,1,0\n89,0,65,0,27,0,47,0,35,0,80,0\n46,0,72,0,6,0,36,0,21,0,57,0\n94,0,38,0,10,0,41,0,59,0,4,0\n7,0,5,0,34,0,68,0,20,0,53,0\n39,0,75,0,2,0,62,0,83,0,61,0\n15,0,54,0,16,0,96,0,67,0,48,0\n32,0,92,0,30,0,49,0,18,0,3,0\n11,0,37,0,81,0,90,0,86,0,66,0\n40,0,31,0,50,0,76,0,78,0,14,0\n36,0,93,0,87,0,69,0,80,0,71,0\n91,0,56,0,47,0,21,0,60,0,41,0\n17,0,68,0,29,0,45,0,64,0,73,0\n27,0,62,0,43,0,9,0,5,0,72,0\n6,0,83,0,25,0,96,0,13,0,8,0\n34,0,15,0,57,0,54,0,4,0,24,0\n20,0,92,0,65,0,79,0,28,0,1,0\n86,0,58,0,94,0,31,0,16,0,51,0\n50,0,59,0,32,0,90,0,39,0,23,0\n19,0,70,0,18,0,84,0,37,0,48,0\n12,0,14,0,63,0,89,0,66,0,2,0\n35,0,53,0,52,0,3,0,85,0,88,0\n22,0,81,0,33,0,38,0,77,0,40,0\n46,0,61,0,76,0,74,0,30,0,82,0\n75,0,44,0,78,0,10,0,7,0,49,0\n42,0,67,0,95,0,11,0,55,0,26,0\n31,0,36,0,39,0,13,0,92,0,43,0\n45,0,83,0,9,0,25,0,65,0,37,0\n72,0,84,0,87,0,23,0,20,0,8,0\n91,0,59,0,89,0,68,0,88,0,48,0\n3,0,60,0,69,0,81,0,64,0,51,0\n77,0,96,0,85,0,82,0,93,0,27,0\n30,0,41,0,63,0,1,0,24,0,53,0\n17,0,90,0,6,0,2,0,16,0,80,0\n40,0,74,0,47,0,38,0,49,0,28,0\n32,0,75,0,79,0,12,0,11,0,22,0\n26,0,15,0,5,0,50,0,46,0,29,0\n21,0,67,0,4,0,35,0,18,0,44,0\n66,0,94,0,7,0,33,0,52,0,73,0\n55,0,70,0,86,0,54,0,78,0,61,0\n56,0,19,0,76,0,58,0,34,0,10,0\n95,0,57,0,62,0,42,0,71,0,14,0\n49,0,84,0,93,0,28,0,89,0,41,0\n27,0,53,0,59,0,64,0,91,0,37,0\n24,0,11,0,36,0,47,0,8,0,17,0\n23,0,74,0,85,0,48,0,81,0,92,0\n13,0,88,0,82,0,45,0,72,0,94,0\n32,0,61,0,67,0,43,0,77,0,65,0\n70,0,40,0,16,0,29,0,30,0,44,0\n80,0,58,0,5,0,39,0,78,0,21,0\n26,0,31,0,52,0,68,0,79,0,54,0\n2,0,38,0,69,0,56,0,66,0,95,0\n46,0,14,0,7,0,19,0,25,0,86,0\n34,0,62,0,87,0,12,0,55,0,3,0\n57,0,76,0,18,0,1,0,22,0,9,0\n73,0,75,0,60,0,4,0,6,0,50,0\n96,0,20,0,63,0,42,0,90,0,51,0\n10,0,35,0,71,0,15,0,33,0,83,0\n84,0,64,0,82,0,47,0,92,0,11,0\n61,0,8,0,48,0,93,0,52,0,95,0\n41,0,72,0,25,0,79,0,16,0,39,0\n17,0,38,0,62,0,7,0,32,0,26,0\n1,0,80,0,44,0,59,0,3,0,45,0\n49,0,27,0,94,0,60,0,70,0,76,0\n65,0,86,0,2,0,75,0,68,0,18,0\n4,0,23,0,78,0,66,0,96,0,29,0\n22,0,51,0,34,0,6,0,14,0,35,0\n20,0,9,0,71,0,58,0,55,0,30,0\n5,0,36,0,42,0,74,0,83,0,19,0\n89,0,31,0,33,0,67,0,37,0,57,0\n10,0,43,0,50,0,63,0,54,0,85,0\n56,0,53,0,46,0,28,0,12,0,77,0\n69,0,40,0,13,0,90,0,91,0,15,0\n88,0,81,0,24,0,87,0,73,0,21,0\n14,0,1,0,23,0,38,0,61,0,16,0\n27,0,95,0,80,0,18,0,79,0,7,0\n60,0,59,0,84,0,74,0,72,0,35,0\n93,0,66,0,92,0,6,0,45,0,58,0\n20,0,70,0,33,0,36,0,75,0,64,0\n2,0,29,0,57,0,10,0,47,0,51,0\n55,0,83,0,91,0,82,0,31,0,32,0\n44,0,54,0,42,0,9,0,46,0,8,0\n88,0,40,0,37,0,12,0,68,0,41,0\n39,0,86,0,49,0,34,0,69,0,63,0\n28,0,90,0,94,0,24,0,67,0,87,0\n15,0,11,0,78,0,85,0,76,0,73,0\n89,0,43,0,30,0,56,0,17,0,22,0\n21,0,5,0,13,0,3,0,77,0,48,0\n25,0,52,0,50,0,65,0,62,0,4,0\n71,0,19,0,26,0,96,0,53,0,81,0\n75,0,58,0,46,0,1,0,55,0,64,0\n86,0,6,0,88,0,23,0,33,0,27,0\n51,0,74,0,95,0,24,0,44,0,31,0\n47,0,42,0,85,0,18,0,91,0,45,0\n28,0,59,0,22,0,61,0,15,0,63,0\n3,0,82,0,14,0,90,0,29,0,79,0\n80,0,68,0,67,0,62,0,9,0,49,0\n83,0,78,0,12,0,93,0,72,0,38,0\n35,0,56,0,70,0,11,0,50,0,87,0\n21,0,10,0,30,0,69,0,92,0,96,0\n52,0,5,0,41,0,76,0,81,0,17,0\n16,0,89,0,19,0,20,0,60,0,32,0\n66,0,26,0,36,0,57,0,84,0,25,0\n40,0,4,0,48,0,39,0,7,0,43,0\n13,0,73,0,54,0,71,0,65,0,53,0\n77,0,94,0,37,0,8,0,2,0,34,0\n93,0,90,0,47,0,46,0,22,0,31,0\n18,0,72,0,55,0,56,0,14,0,24,0\n3,0,68,0,28,0,23,0,58,0,83,0\n33,0,85,0,17,0,87,0,95,0,49,0\n25,0,38,0,11,0,80,0,61,0,91,0\n44,0,82,0,81,0,50,0,89,0,42,0\n45,0,51,0,84,0,78,0,30,0,67,0\n4,0,92,0,53,0,70,0,9,0,2,0\n71,0,94,0,32,0,6,0,74,0,48,0\n69,0,43,0,26,0,12,0,35,0,16,0\n59,0,57,0,79,0,73,0,86,0,77,0\n34,0,96,0,65,0,40,0,5,0,66,0\n41,0,15,0,8,0,21,0,19,0,64,0\n37,0,27,0,39,0,52,0,20,0,10,0\n29,0,76,0,63,0,75,0,13,0,62,0\n1,0,54,0,7,0,60,0,88,0,36,0\n68,0,22,0,84,0,94,0,50,0,55,0\n95,0,53,0,6,0,89,0,78,0,82,0\n31,0,17,0,59,0,4,0,42,0,69,0\n70,0,66,0,79,0,83,0,46,0,67,0\n57,0,90,0,65,0,48,0,44,0,12,0\n15,0,19,0,23,0,52,0,47,0,77,0\n81,0,91,0,72,0,28,0,75,0,30,0\n36,0,8,0,62,0,86,0,56,0,85,0\n24,0,10,0,74,0,25,0,20,0,3,0\n2,0,32,0,45,0,54,0,40,0,35,0\n88,0,76,0,80,0,43,0,64,0,96,0\n51,0,18,0,71,0,38,0,5,0,39,0\n9,0,7,0,63,0,93,0,16,0,21,0\n61,0,60,0,92,0,34,0,33,0,29,0\n37,0,73,0,49,0,14,0,58,0,26,0\n41,0,87,0,1,0,27,0,13,0,11,0\n"
  },
  {
    "path": "schedules/96_13.csv",
    "content": "6,0,53,0,77,0,94,0,9,0,95,0\n75,0,23,0,58,0,56,0,12,0,30,0\n81,0,62,0,78,0,44,0,40,0,21,0\n10,0,16,0,1,0,60,0,20,0,64,0\n68,0,76,0,15,0,52,0,41,0,70,0\n91,0,33,0,26,0,48,0,67,0,49,0\n55,0,29,0,66,0,47,0,42,0,96,0\n72,0,28,0,35,0,24,0,90,0,85,0\n73,0,34,0,3,0,27,0,22,0,57,0\n39,0,5,0,63,0,82,0,71,0,2,0\n37,0,38,0,4,0,54,0,92,0,11,0\n61,0,8,0,80,0,86,0,50,0,84,0\n7,0,69,0,79,0,25,0,14,0,36,0\n87,0,59,0,31,0,46,0,17,0,32,0\n88,0,74,0,13,0,51,0,89,0,18,0\n93,0,45,0,43,0,65,0,83,0,19,0\n72,0,22,0,47,0,75,0,33,0,78,0\n68,0,66,0,3,0,12,0,55,0,39,0\n60,0,90,0,10,0,6,0,70,0,62,0\n54,0,40,0,82,0,11,0,73,0,16,0\n25,0,71,0,52,0,1,0,8,0,50,0\n58,0,5,0,81,0,15,0,26,0,17,0\n38,0,76,0,89,0,31,0,96,0,20,0\n65,0,48,0,57,0,21,0,13,0,23,0\n34,0,67,0,53,0,88,0,24,0,80,0\n69,0,56,0,61,0,35,0,2,0,94,0\n41,0,19,0,84,0,42,0,87,0,63,0\n43,0,44,0,4,0,32,0,28,0,64,0\n49,0,93,0,9,0,74,0,7,0,27,0\n18,0,91,0,36,0,83,0,77,0,37,0\n59,0,86,0,30,0,92,0,29,0,14,0\n85,0,95,0,46,0,45,0,51,0,79,0\n88,0,20,0,72,0,50,0,55,0,81,0\n25,0,2,0,78,0,6,0,67,0,11,0\n65,0,52,0,16,0,31,0,3,0,71,0\n13,0,38,0,63,0,17,0,61,0,73,0\n96,0,68,0,44,0,87,0,9,0,8,0\n15,0,32,0,12,0,53,0,62,0,91,0\n22,0,48,0,42,0,1,0,18,0,69,0\n41,0,36,0,79,0,4,0,34,0,23,0\n64,0,24,0,95,0,5,0,29,0,57,0\n10,0,27,0,89,0,58,0,43,0,7,0\n93,0,92,0,75,0,51,0,26,0,70,0\n59,0,94,0,54,0,21,0,80,0,74,0\n77,0,84,0,33,0,85,0,19,0,60,0\n49,0,37,0,39,0,90,0,30,0,40,0\n56,0,86,0,45,0,28,0,47,0,66,0\n46,0,82,0,35,0,76,0,14,0,83,0\n34,0,9,0,64,0,15,0,18,0,8,0\n10,0,6,0,79,0,61,0,31,0,67,0\n91,0,23,0,69,0,95,0,27,0,87,0\n22,0,20,0,58,0,59,0,92,0,24,0\n19,0,89,0,80,0,73,0,68,0,36,0\n81,0,96,0,25,0,48,0,52,0,30,0\n51,0,78,0,60,0,39,0,50,0,57,0\n3,0,93,0,88,0,54,0,76,0,56,0\n90,0,16,0,83,0,47,0,44,0,26,0\n75,0,63,0,46,0,7,0,77,0,29,0\n71,0,11,0,35,0,45,0,32,0,62,0\n65,0,38,0,55,0,14,0,86,0,1,0\n17,0,12,0,85,0,2,0,40,0,42,0\n84,0,4,0,70,0,21,0,53,0,66,0\n28,0,74,0,41,0,33,0,37,0,82,0\n5,0,49,0,43,0,72,0,94,0,13,0\n27,0,92,0,23,0,61,0,83,0,25,0\n48,0,31,0,90,0,78,0,8,0,36,0\n50,0,24,0,47,0,54,0,32,0,19,0\n65,0,26,0,67,0,46,0,73,0,62,0\n52,0,88,0,86,0,85,0,9,0,11,0\n93,0,14,0,68,0,60,0,63,0,81,0\n39,0,17,0,16,0,91,0,57,0,41,0\n80,0,82,0,42,0,64,0,49,0,6,0\n22,0,79,0,53,0,35,0,74,0,5,0\n69,0,75,0,15,0,55,0,43,0,13,0\n40,0,84,0,59,0,71,0,95,0,56,0\n77,0,58,0,51,0,96,0,70,0,28,0\n72,0,37,0,10,0,12,0,44,0,34,0\n21,0,2,0,4,0,18,0,3,0,29,0\n66,0,33,0,76,0,87,0,89,0,1,0\n30,0,7,0,94,0,20,0,45,0,38,0\n91,0,48,0,46,0,68,0,47,0,64,0\n50,0,85,0,36,0,13,0,92,0,67,0\n22,0,14,0,71,0,80,0,17,0,93,0\n49,0,31,0,57,0,69,0,28,0,84,0\n35,0,12,0,70,0,27,0,8,0,63,0\n53,0,41,0,37,0,59,0,65,0,43,0\n19,0,18,0,58,0,29,0,6,0,44,0\n42,0,24,0,45,0,10,0,39,0,52,0\n9,0,56,0,81,0,82,0,38,0,79,0\n54,0,66,0,2,0,62,0,51,0,75,0\n96,0,32,0,7,0,16,0,88,0,33,0\n78,0,20,0,34,0,95,0,73,0,86,0\n25,0,87,0,94,0,4,0,40,0,15,0\n11,0,74,0,77,0,90,0,76,0,23,0\n21,0,55,0,61,0,26,0,5,0,89,0\n83,0,60,0,1,0,30,0,72,0,3,0\n36,0,81,0,27,0,24,0,46,0,84,0\n92,0,44,0,35,0,42,0,54,0,31,0\n96,0,67,0,63,0,57,0,75,0,37,0\n85,0,66,0,38,0,93,0,48,0,34,0\n70,0,95,0,13,0,12,0,19,0,25,0\n82,0,29,0,90,0,88,0,45,0,15,0\n56,0,39,0,87,0,7,0,11,0,21,0\n78,0,14,0,64,0,26,0,74,0,3,0\n43,0,61,0,1,0,62,0,80,0,9,0\n6,0,28,0,20,0,83,0,5,0,69,0\n33,0,94,0,18,0,79,0,65,0,91,0\n51,0,72,0,23,0,86,0,68,0,16,0\n4,0,53,0,89,0,30,0,50,0,17,0\n71,0,76,0,41,0,58,0,49,0,47,0\n8,0,59,0,22,0,77,0,2,0,10,0\n55,0,73,0,40,0,52,0,60,0,32,0\n1,0,7,0,67,0,95,0,54,0,81,0\n21,0,6,0,24,0,66,0,43,0,12,0\n79,0,13,0,3,0,90,0,87,0,92,0\n85,0,80,0,44,0,82,0,20,0,91,0\n11,0,64,0,48,0,63,0,51,0,65,0\n61,0,18,0,27,0,28,0,30,0,76,0\n47,0,74,0,25,0,5,0,31,0,68,0\n83,0,88,0,75,0,4,0,10,0,71,0\n2,0,19,0,73,0,46,0,15,0,72,0\n8,0,56,0,60,0,53,0,49,0,29,0\n78,0,69,0,16,0,38,0,59,0,77,0\n26,0,40,0,41,0,50,0,22,0,35,0\n17,0,89,0,84,0,52,0,37,0,23,0\n57,0,36,0,86,0,42,0,62,0,93,0\n45,0,9,0,33,0,58,0,55,0,70,0\n32,0,34,0,94,0,96,0,39,0,14,0\n21,0,31,0,15,0,88,0,95,0,30,0\n29,0,11,0,80,0,81,0,10,0,13,0\n66,0,63,0,83,0,79,0,78,0,49,0\n28,0,50,0,73,0,48,0,59,0,12,0\n71,0,67,0,64,0,38,0,19,0,27,0\n75,0,60,0,25,0,44,0,74,0,89,0\n6,0,1,0,51,0,23,0,56,0,41,0\n9,0,36,0,20,0,35,0,65,0,39,0\n5,0,90,0,86,0,46,0,96,0,4,0\n55,0,62,0,14,0,84,0,16,0,18,0\n70,0,82,0,47,0,24,0,69,0,87,0\n68,0,85,0,32,0,22,0,61,0,37,0\n91,0,93,0,2,0,45,0,34,0,58,0\n3,0,43,0,77,0,42,0,17,0,33,0\n72,0,40,0,8,0,92,0,76,0,7,0\n26,0,57,0,54,0,94,0,53,0,52,0\n29,0,1,0,39,0,59,0,27,0,79,0\n28,0,15,0,23,0,71,0,46,0,20,0\n60,0,44,0,84,0,88,0,38,0,48,0\n61,0,90,0,19,0,22,0,81,0,65,0\n37,0,73,0,58,0,25,0,64,0,66,0\n62,0,82,0,68,0,95,0,34,0,33,0\n87,0,21,0,35,0,67,0,77,0,93,0\n7,0,40,0,57,0,80,0,18,0,47,0\n30,0,41,0,32,0,69,0,8,0,26,0\n51,0,31,0,9,0,4,0,42,0,72,0\n52,0,17,0,92,0,56,0,74,0,78,0\n3,0,24,0,83,0,75,0,86,0,94,0\n11,0,50,0,70,0,43,0,96,0,91,0\n14,0,12,0,5,0,85,0,49,0,54,0\n89,0,6,0,13,0,45,0,16,0,63,0\n53,0,10,0,76,0,36,0,2,0,55,0\n88,0,8,0,62,0,79,0,39,0,58,0\n71,0,21,0,30,0,90,0,42,0,73,0\n29,0,72,0,74,0,67,0,20,0,84,0\n7,0,9,0,83,0,19,0,48,0,17,0\n69,0,50,0,33,0,93,0,46,0,11,0\n65,0,4,0,68,0,24,0,77,0,56,0\n47,0,12,0,92,0,89,0,94,0,64,0\n28,0,86,0,91,0,40,0,10,0,63,0\n16,0,43,0,76,0,5,0,34,0,25,0\n80,0,35,0,3,0,15,0,37,0,51,0\n87,0,55,0,22,0,36,0,54,0,6,0\n44,0,14,0,95,0,41,0,61,0,66,0\n59,0,18,0,57,0,81,0,70,0,85,0\n27,0,96,0,1,0,13,0,78,0,53,0\n2,0,52,0,75,0,38,0,32,0,49,0\n45,0,26,0,82,0,23,0,60,0,31,0\n76,0,63,0,91,0,90,0,69,0,9,0\n37,0,79,0,56,0,48,0,16,0,20,0\n7,0,39,0,84,0,6,0,15,0,92,0\n54,0,29,0,17,0,28,0,65,0,34,0\n30,0,74,0,19,0,66,0,10,0,57,0\n73,0,94,0,24,0,1,0,93,0,44,0\n59,0,13,0,52,0,33,0,35,0,4,0\n8,0,51,0,47,0,14,0,43,0,67,0\n46,0,45,0,49,0,21,0,18,0,22,0\n60,0,12,0,87,0,81,0,83,0,71,0\n27,0,31,0,11,0,41,0,55,0,75,0\n77,0,86,0,32,0,25,0,82,0,89,0\n80,0,95,0,96,0,26,0,2,0,72,0\n53,0,85,0,42,0,58,0,78,0,68,0\n88,0,40,0,70,0,36,0,61,0,64,0\n62,0,38,0,50,0,3,0,23,0,5,0\n34,0,69,0,51,0,19,0,52,0,21,0\n6,0,4,0,81,0,8,0,91,0,73,0\n12,0,29,0,84,0,22,0,16,0,9,0\n65,0,94,0,17,0,82,0,60,0,66,0\n79,0,93,0,15,0,72,0,11,0,89,0\n32,0,14,0,42,0,27,0,20,0,90,0\n28,0,26,0,88,0,68,0,25,0,1,0\n78,0,18,0,23,0,10,0,35,0,54,0\n71,0,50,0,49,0,77,0,55,0,44,0\n59,0,47,0,95,0,36,0,63,0,3,0\n58,0,46,0,38,0,74,0,40,0,43,0\n61,0,87,0,48,0,53,0,75,0,45,0\n56,0,5,0,92,0,57,0,80,0,33,0\n96,0,62,0,64,0,41,0,83,0,85,0\n2,0,31,0,13,0,7,0,24,0,37,0\n67,0,30,0,39,0,76,0,70,0,86,0\n"
  },
  {
    "path": "schedules/96_14.csv",
    "content": "77,0,66,0,62,0,18,0,23,0,25,0\n5,0,50,0,30,0,24,0,12,0,71,0\n29,0,15,0,89,0,83,0,16,0,8,0\n35,0,49,0,57,0,88,0,34,0,20,0\n93,0,75,0,76,0,56,0,47,0,54,0\n82,0,6,0,37,0,17,0,61,0,74,0\n55,0,14,0,7,0,33,0,45,0,32,0\n21,0,19,0,87,0,64,0,81,0,53,0\n51,0,42,0,13,0,1,0,80,0,48,0\n9,0,27,0,28,0,43,0,73,0,44,0\n68,0,26,0,86,0,10,0,38,0,40,0\n39,0,70,0,72,0,41,0,60,0,46,0\n3,0,92,0,69,0,11,0,91,0,79,0\n85,0,67,0,94,0,52,0,78,0,90,0\n22,0,63,0,65,0,59,0,2,0,58,0\n84,0,96,0,95,0,4,0,31,0,36,0\n80,0,83,0,50,0,56,0,53,0,19,0\n16,0,55,0,12,0,49,0,18,0,61,0\n40,0,68,0,64,0,48,0,76,0,30,0\n24,0,93,0,74,0,62,0,72,0,73,0\n92,0,15,0,47,0,82,0,66,0,32,0\n37,0,3,0,20,0,90,0,46,0,81,0\n42,0,2,0,43,0,26,0,7,0,58,0\n96,0,60,0,35,0,77,0,52,0,11,0\n91,0,34,0,71,0,36,0,59,0,9,0\n14,0,29,0,95,0,39,0,88,0,84,0\n33,0,25,0,70,0,38,0,1,0,8,0\n65,0,79,0,41,0,44,0,85,0,89,0\n27,0,21,0,6,0,13,0,94,0,5,0\n86,0,51,0,4,0,57,0,78,0,54,0\n75,0,28,0,22,0,31,0,63,0,67,0\n17,0,10,0,23,0,69,0,87,0,45,0\n9,0,30,0,18,0,93,0,37,0,47,0\n84,0,36,0,49,0,81,0,56,0,82,0\n38,0,88,0,52,0,46,0,53,0,74,0\n14,0,79,0,70,0,72,0,48,0,26,0\n25,0,71,0,21,0,42,0,15,0,35,0\n43,0,50,0,1,0,89,0,5,0,90,0\n24,0,51,0,44,0,58,0,31,0,76,0\n2,0,13,0,57,0,66,0,19,0,45,0\n40,0,27,0,75,0,69,0,60,0,61,0\n78,0,7,0,41,0,63,0,64,0,20,0\n12,0,95,0,91,0,32,0,6,0,67,0\n8,0,80,0,87,0,92,0,62,0,65,0\n22,0,73,0,11,0,10,0,34,0,94,0\n28,0,55,0,86,0,83,0,17,0,3,0\n29,0,59,0,23,0,54,0,68,0,96,0\n77,0,4,0,33,0,16,0,39,0,85,0\n2,0,37,0,48,0,38,0,60,0,31,0\n71,0,30,0,69,0,18,0,41,0,43,0\n89,0,46,0,67,0,7,0,56,0,64,0\n36,0,91,0,13,0,74,0,87,0,5,0\n92,0,49,0,24,0,78,0,14,0,53,0\n61,0,34,0,58,0,73,0,83,0,20,0\n79,0,63,0,51,0,66,0,12,0,40,0\n19,0,16,0,90,0,25,0,68,0,75,0\n17,0,39,0,11,0,8,0,15,0,27,0\n4,0,26,0,82,0,23,0,52,0,80,0\n76,0,72,0,6,0,59,0,35,0,81,0\n85,0,50,0,10,0,70,0,32,0,62,0\n95,0,93,0,94,0,86,0,96,0,65,0\n84,0,9,0,55,0,42,0,22,0,54,0\n45,0,77,0,57,0,1,0,29,0,28,0\n47,0,44,0,3,0,33,0,88,0,21,0\n53,0,79,0,60,0,58,0,8,0,18,0\n2,0,38,0,49,0,27,0,83,0,90,0\n12,0,17,0,48,0,75,0,43,0,80,0\n62,0,78,0,34,0,5,0,76,0,15,0\n19,0,4,0,46,0,63,0,24,0,69,0\n30,0,31,0,94,0,26,0,32,0,87,0\n28,0,61,0,45,0,36,0,93,0,85,0\n66,0,9,0,88,0,96,0,70,0,81,0\n39,0,23,0,35,0,50,0,92,0,91,0\n51,0,16,0,64,0,95,0,3,0,74,0\n73,0,52,0,56,0,33,0,29,0,42,0\n65,0,7,0,71,0,10,0,55,0,57,0\n20,0,13,0,67,0,86,0,44,0,82,0\n6,0,41,0,68,0,22,0,14,0,77,0\n37,0,59,0,1,0,47,0,21,0,84,0\n72,0,25,0,54,0,40,0,89,0,11,0\n45,0,5,0,8,0,35,0,46,0,9,0\n51,0,60,0,94,0,17,0,53,0,88,0\n61,0,2,0,80,0,50,0,76,0,95,0\n56,0,58,0,57,0,69,0,16,0,96,0\n18,0,31,0,73,0,90,0,39,0,64,0\n87,0,28,0,49,0,48,0,41,0,70,0\n85,0,19,0,22,0,7,0,12,0,29,0\n71,0,32,0,3,0,27,0,65,0,54,0\n21,0,67,0,37,0,66,0,89,0,4,0\n59,0,13,0,15,0,40,0,24,0,33,0\n82,0,63,0,91,0,1,0,79,0,68,0\n81,0,44,0,14,0,10,0,93,0,77,0\n43,0,52,0,84,0,34,0,92,0,6,0\n47,0,83,0,26,0,25,0,74,0,78,0\n20,0,62,0,23,0,38,0,11,0,55,0\n42,0,30,0,75,0,72,0,36,0,86,0\n54,0,67,0,70,0,5,0,17,0,19,0\n80,0,58,0,24,0,41,0,3,0,9,0\n53,0,69,0,68,0,35,0,31,0,85,0\n18,0,40,0,87,0,95,0,82,0,88,0\n59,0,90,0,4,0,60,0,7,0,92,0\n81,0,79,0,33,0,83,0,61,0,94,0\n25,0,12,0,57,0,13,0,73,0,37,0\n8,0,64,0,29,0,50,0,44,0,75,0\n21,0,38,0,14,0,63,0,43,0,36,0\n23,0,32,0,46,0,93,0,84,0,51,0\n22,0,72,0,45,0,52,0,76,0,91,0\n89,0,28,0,26,0,39,0,20,0,71,0\n11,0,1,0,66,0,78,0,56,0,6,0\n65,0,42,0,10,0,77,0,49,0,27,0\n96,0,74,0,15,0,2,0,55,0,30,0\n47,0,62,0,48,0,86,0,16,0,34,0\n40,0,36,0,41,0,53,0,33,0,57,0\n83,0,43,0,60,0,24,0,68,0,95,0\n44,0,37,0,64,0,22,0,91,0,80,0\n76,0,29,0,51,0,25,0,87,0,9,0\n73,0,38,0,75,0,82,0,3,0,7,0\n92,0,63,0,18,0,45,0,70,0,6,0\n84,0,35,0,78,0,28,0,90,0,30,0\n52,0,16,0,15,0,81,0,50,0,86,0\n96,0,62,0,67,0,1,0,27,0,26,0\n32,0,17,0,58,0,49,0,71,0,13,0\n61,0,65,0,47,0,72,0,23,0,19,0\n39,0,4,0,5,0,2,0,10,0,11,0\n54,0,77,0,31,0,56,0,94,0,79,0\n66,0,42,0,85,0,8,0,74,0,20,0\n48,0,88,0,59,0,93,0,89,0,55,0\n46,0,14,0,69,0,12,0,34,0,21,0\n63,0,68,0,27,0,57,0,80,0,81,0\n33,0,22,0,86,0,43,0,87,0,96,0\n78,0,75,0,23,0,70,0,95,0,37,0\n44,0,6,0,62,0,60,0,19,0,49,0\n5,0,28,0,79,0,52,0,7,0,51,0\n76,0,84,0,24,0,8,0,10,0,67,0\n58,0,29,0,16,0,59,0,94,0,38,0\n91,0,2,0,93,0,89,0,53,0,25,0\n14,0,90,0,85,0,15,0,56,0,9,0\n34,0,17,0,73,0,77,0,30,0,21,0\n1,0,13,0,18,0,83,0,35,0,4,0\n88,0,32,0,61,0,11,0,42,0,41,0\n48,0,74,0,92,0,54,0,69,0,20,0\n39,0,3,0,40,0,45,0,12,0,47,0\n82,0,31,0,64,0,72,0,71,0,55,0\n66,0,26,0,65,0,36,0,46,0,50,0\n19,0,78,0,10,0,43,0,58,0,33,0\n93,0,7,0,63,0,87,0,27,0,16,0\n67,0,30,0,49,0,80,0,29,0,79,0\n70,0,44,0,61,0,56,0,35,0,68,0\n54,0,52,0,18,0,41,0,24,0,57,0\n83,0,11,0,74,0,84,0,45,0,75,0\n25,0,20,0,76,0,32,0,31,0,21,0\n50,0,96,0,89,0,38,0,69,0,82,0\n90,0,60,0,8,0,47,0,91,0,51,0\n28,0,39,0,34,0,81,0,65,0,13,0\n12,0,15,0,36,0,88,0,23,0,64,0\n42,0,94,0,37,0,62,0,14,0,40,0\n48,0,4,0,55,0,73,0,6,0,9,0\n53,0,66,0,3,0,26,0,59,0,5,0\n86,0,71,0,2,0,92,0,72,0,77,0\n46,0,95,0,85,0,1,0,22,0,17,0\n47,0,11,0,58,0,68,0,7,0,80,0\n74,0,10,0,75,0,18,0,28,0,21,0\n50,0,34,0,54,0,33,0,60,0,63,0\n78,0,32,0,36,0,16,0,79,0,44,0\n15,0,91,0,65,0,61,0,84,0,48,0\n90,0,41,0,82,0,62,0,29,0,93,0\n38,0,81,0,45,0,4,0,64,0,71,0\n2,0,35,0,87,0,73,0,3,0,14,0\n24,0,20,0,89,0,22,0,70,0,94,0\n6,0,57,0,83,0,23,0,42,0,67,0\n53,0,43,0,55,0,66,0,13,0,46,0\n17,0,56,0,31,0,92,0,40,0,5,0\n86,0,76,0,39,0,1,0,88,0,19,0\n96,0,51,0,72,0,37,0,49,0,85,0\n9,0,69,0,8,0,26,0,95,0,77,0\n25,0,52,0,59,0,27,0,12,0,30,0\n54,0,14,0,91,0,58,0,82,0,28,0\n74,0,33,0,18,0,67,0,65,0,68,0\n80,0,36,0,35,0,60,0,32,0,29,0\n50,0,78,0,40,0,93,0,22,0,6,0\n24,0,86,0,90,0,61,0,11,0,21,0\n71,0,16,0,53,0,76,0,73,0,23,0\n72,0,56,0,8,0,4,0,43,0,88,0\n45,0,96,0,39,0,44,0,48,0,25,0\n10,0,92,0,31,0,89,0,19,0,12,0\n1,0,69,0,64,0,52,0,49,0,66,0\n79,0,20,0,9,0,17,0,2,0,84,0\n95,0,81,0,5,0,47,0,38,0,42,0\n63,0,30,0,13,0,3,0,62,0,85,0\n87,0,94,0,46,0,75,0,15,0,57,0\n59,0,70,0,7,0,83,0,77,0,51,0\n34,0,41,0,27,0,26,0,55,0,37,0\n32,0,73,0,40,0,8,0,96,0,19,0\n74,0,31,0,23,0,49,0,86,0,14,0\n33,0,90,0,36,0,89,0,17,0,76,0\n20,0,53,0,29,0,4,0,47,0,6,0\n82,0,68,0,12,0,2,0,9,0,78,0\n54,0,66,0,80,0,16,0,10,0,35,0\n38,0,22,0,57,0,39,0,30,0,79,0\n7,0,1,0,72,0,34,0,18,0,44,0\n21,0,56,0,45,0,51,0,26,0,41,0\n58,0,85,0,27,0,50,0,87,0,84,0\n61,0,46,0,92,0,94,0,28,0,25,0\n81,0,55,0,77,0,91,0,75,0,24,0\n93,0,43,0,3,0,60,0,15,0,67,0\n52,0,95,0,48,0,71,0,63,0,62,0\n11,0,13,0,70,0,59,0,64,0,42,0\n88,0,5,0,83,0,37,0,65,0,69,0\n23,0,45,0,53,0,79,0,34,0,90,0\n9,0,7,0,21,0,49,0,39,0,50,0\n74,0,12,0,41,0,4,0,76,0,94,0\n26,0,81,0,73,0,51,0,54,0,92,0\n27,0,18,0,91,0,29,0,78,0,46,0\n58,0,35,0,25,0,55,0,95,0,67,0\n64,0,47,0,17,0,63,0,96,0,10,0\n6,0,16,0,88,0,85,0,24,0,2,0\n52,0,68,0,89,0,32,0,75,0,13,0\n31,0,59,0,62,0,61,0,57,0,43,0\n82,0,42,0,19,0,37,0,28,0,11,0\n56,0,36,0,3,0,48,0,8,0,22,0\n44,0,40,0,83,0,87,0,71,0,66,0\n30,0,60,0,1,0,14,0,65,0,20,0\n38,0,77,0,5,0,84,0,15,0,72,0\n33,0,69,0,80,0,70,0,93,0,86,0\n"
  },
  {
    "path": "schedules/96_2.csv",
    "content": "61,0,83,0,16,0,19,0,41,0,84,0\n69,0,20,0,62,0,78,0,68,0,66,0\n91,0,10,0,72,0,5,0,80,0,3,0\n15,0,92,0,31,0,90,0,65,0,4,0\n7,0,21,0,71,0,26,0,48,0,39,0\n32,0,76,0,47,0,87,0,55,0,88,0\n46,0,96,0,27,0,60,0,35,0,74,0\n85,0,81,0,44,0,75,0,22,0,33,0\n89,0,64,0,13,0,38,0,29,0,94,0\n57,0,63,0,70,0,6,0,54,0,49,0\n77,0,2,0,73,0,50,0,58,0,11,0\n93,0,53,0,79,0,82,0,43,0,51,0\n40,0,86,0,25,0,18,0,36,0,12,0\n17,0,59,0,37,0,24,0,30,0,14,0\n34,0,23,0,52,0,45,0,8,0,95,0\n42,0,56,0,67,0,9,0,28,0,1,0\n55,0,29,0,74,0,84,0,44,0,31,0\n38,0,41,0,3,0,71,0,78,0,85,0\n61,0,91,0,6,0,77,0,64,0,15,0\n88,0,82,0,66,0,57,0,7,0,90,0\n36,0,39,0,5,0,58,0,4,0,96,0\n14,0,20,0,79,0,72,0,86,0,46,0\n52,0,87,0,13,0,10,0,26,0,73,0\n89,0,75,0,19,0,12,0,28,0,37,0\n16,0,18,0,63,0,76,0,9,0,62,0\n49,0,22,0,8,0,59,0,92,0,51,0\n24,0,81,0,80,0,34,0,83,0,1,0\n45,0,47,0,50,0,67,0,30,0,40,0\n27,0,54,0,68,0,48,0,43,0,23,0\n21,0,33,0,95,0,42,0,2,0,94,0\n32,0,70,0,60,0,53,0,69,0,17,0\n65,0,35,0,25,0,93,0,56,0,11,0\n"
  },
  {
    "path": "schedules/96_3.csv",
    "content": "41,0,49,0,16,0,30,0,95,0,55,0\n86,0,65,0,14,0,23,0,73,0,59,0\n2,0,52,0,36,0,44,0,34,0,71,0\n18,0,85,0,89,0,13,0,54,0,61,0\n60,0,74,0,68,0,77,0,40,0,67,0\n50,0,5,0,22,0,32,0,84,0,1,0\n64,0,47,0,25,0,78,0,33,0,38,0\n27,0,76,0,56,0,58,0,72,0,6,0\n24,0,3,0,10,0,46,0,19,0,35,0\n94,0,80,0,57,0,51,0,29,0,93,0\n42,0,70,0,62,0,15,0,20,0,17,0\n90,0,53,0,45,0,37,0,81,0,7,0\n12,0,39,0,87,0,48,0,43,0,63,0\n92,0,26,0,8,0,9,0,82,0,79,0\n4,0,31,0,28,0,66,0,91,0,96,0\n75,0,21,0,69,0,88,0,11,0,83,0\n35,0,67,0,25,0,61,0,30,0,58,0\n29,0,72,0,24,0,52,0,95,0,32,0\n70,0,6,0,94,0,89,0,68,0,14,0\n73,0,47,0,81,0,17,0,74,0,49,0\n34,0,56,0,16,0,42,0,10,0,18,0\n48,0,40,0,20,0,7,0,86,0,9,0\n65,0,57,0,60,0,45,0,3,0,96,0\n78,0,43,0,66,0,75,0,53,0,41,0\n88,0,77,0,38,0,76,0,8,0,85,0\n36,0,51,0,62,0,1,0,92,0,91,0\n4,0,80,0,59,0,87,0,55,0,22,0\n44,0,46,0,50,0,28,0,23,0,83,0\n71,0,31,0,13,0,93,0,26,0,63,0\n5,0,19,0,79,0,64,0,90,0,21,0\n84,0,69,0,39,0,33,0,2,0,27,0\n82,0,37,0,12,0,54,0,15,0,11,0\n78,0,35,0,74,0,18,0,48,0,52,0\n75,0,92,0,58,0,45,0,16,0,24,0\n34,0,22,0,14,0,62,0,60,0,72,0\n43,0,32,0,49,0,80,0,86,0,67,0\n61,0,65,0,77,0,71,0,47,0,56,0\n63,0,30,0,3,0,79,0,36,0,66,0\n70,0,23,0,96,0,5,0,69,0,25,0\n88,0,84,0,54,0,57,0,7,0,31,0\n87,0,91,0,9,0,64,0,68,0,37,0\n29,0,81,0,19,0,85,0,12,0,33,0\n53,0,15,0,38,0,21,0,59,0,10,0\n20,0,93,0,76,0,50,0,41,0,4,0\n2,0,55,0,26,0,89,0,83,0,73,0\n1,0,46,0,17,0,40,0,8,0,39,0\n27,0,28,0,95,0,11,0,42,0,94,0\n90,0,82,0,13,0,44,0,6,0,51,0\n"
  },
  {
    "path": "schedules/96_4.csv",
    "content": "95,0,20,0,39,0,29,0,56,0,60,0\n55,0,36,0,31,0,45,0,50,0,44,0\n47,0,83,0,4,0,27,0,62,0,54,0\n82,0,13,0,34,0,14,0,23,0,30,0\n5,0,76,0,22,0,63,0,80,0,35,0\n58,0,70,0,87,0,9,0,32,0,88,0\n16,0,17,0,81,0,10,0,72,0,89,0\n42,0,7,0,3,0,90,0,96,0,69,0\n74,0,93,0,92,0,25,0,24,0,15,0\n65,0,91,0,51,0,85,0,26,0,71,0\n33,0,28,0,75,0,84,0,49,0,59,0\n64,0,2,0,94,0,1,0,73,0,41,0\n12,0,38,0,11,0,8,0,48,0,21,0\n77,0,37,0,18,0,78,0,6,0,46,0\n57,0,61,0,68,0,40,0,66,0,67,0\n52,0,43,0,53,0,79,0,19,0,86,0\n81,0,30,0,50,0,56,0,74,0,62,0\n58,0,23,0,83,0,69,0,35,0,29,0\n14,0,54,0,84,0,95,0,55,0,76,0\n32,0,39,0,85,0,36,0,13,0,49,0\n90,0,34,0,38,0,10,0,75,0,93,0\n96,0,88,0,71,0,1,0,31,0,46,0\n60,0,27,0,61,0,92,0,2,0,72,0\n87,0,45,0,7,0,80,0,40,0,41,0\n67,0,63,0,3,0,91,0,94,0,18,0\n16,0,37,0,68,0,4,0,70,0,48,0\n65,0,15,0,86,0,6,0,73,0,59,0\n53,0,47,0,8,0,82,0,64,0,51,0\n17,0,79,0,66,0,20,0,12,0,9,0\n22,0,28,0,24,0,42,0,57,0,52,0\n25,0,89,0,77,0,21,0,19,0,26,0\n78,0,44,0,43,0,11,0,5,0,33,0\n45,0,63,0,30,0,1,0,60,0,90,0\n87,0,96,0,49,0,93,0,27,0,37,0\n2,0,18,0,39,0,75,0,76,0,58,0\n13,0,6,0,40,0,38,0,88,0,50,0\n61,0,62,0,59,0,3,0,95,0,9,0\n91,0,8,0,23,0,31,0,81,0,70,0\n19,0,73,0,92,0,42,0,67,0,83,0\n68,0,89,0,78,0,36,0,22,0,12,0\n21,0,29,0,41,0,72,0,54,0,74,0\n66,0,15,0,56,0,82,0,84,0,80,0\n51,0,94,0,77,0,44,0,34,0,86,0\n20,0,69,0,71,0,47,0,25,0,52,0\n4,0,26,0,5,0,57,0,53,0,14,0\n55,0,17,0,48,0,65,0,32,0,43,0\n79,0,10,0,85,0,33,0,24,0,64,0\n28,0,11,0,46,0,16,0,35,0,7,0\n8,0,1,0,22,0,54,0,18,0,92,0\n90,0,36,0,72,0,91,0,15,0,87,0\n51,0,41,0,93,0,39,0,78,0,23,0\n31,0,86,0,20,0,89,0,13,0,61,0\n74,0,53,0,38,0,68,0,71,0,77,0\n56,0,59,0,70,0,42,0,14,0,2,0\n24,0,66,0,48,0,76,0,45,0,62,0\n75,0,29,0,12,0,47,0,7,0,37,0\n9,0,21,0,33,0,55,0,4,0,46,0\n95,0,69,0,6,0,43,0,30,0,26,0\n82,0,57,0,85,0,94,0,83,0,16,0\n32,0,27,0,44,0,79,0,28,0,40,0\n73,0,84,0,5,0,3,0,17,0,25,0\n52,0,35,0,60,0,96,0,64,0,65,0\n80,0,49,0,58,0,10,0,67,0,50,0\n34,0,11,0,88,0,81,0,63,0,19,0\n"
  },
  {
    "path": "schedules/96_5.csv",
    "content": "64,0,96,0,2,0,55,0,59,0,88,0\n69,0,28,0,32,0,12,0,51,0,95,0\n85,0,35,0,74,0,71,0,3,0,27,0\n1,0,13,0,67,0,43,0,87,0,38,0\n73,0,44,0,81,0,90,0,72,0,22,0\n25,0,36,0,57,0,76,0,34,0,30,0\n84,0,79,0,91,0,93,0,89,0,15,0\n61,0,75,0,14,0,65,0,78,0,40,0\n37,0,46,0,83,0,11,0,52,0,50,0\n6,0,7,0,8,0,19,0,33,0,86,0\n60,0,94,0,70,0,58,0,66,0,39,0\n16,0,9,0,77,0,4,0,42,0,82,0\n92,0,29,0,31,0,41,0,53,0,21,0\n80,0,49,0,56,0,63,0,48,0,18,0\n45,0,26,0,68,0,62,0,17,0,54,0\n20,0,47,0,24,0,5,0,23,0,10,0\n55,0,52,0,1,0,73,0,84,0,3,0\n76,0,87,0,32,0,40,0,22,0,6,0\n35,0,64,0,69,0,13,0,79,0,19,0\n7,0,71,0,30,0,75,0,67,0,91,0\n88,0,51,0,38,0,33,0,83,0,70,0\n9,0,46,0,63,0,85,0,44,0,89,0\n18,0,57,0,86,0,92,0,27,0,59,0\n60,0,74,0,2,0,28,0,68,0,25,0\n66,0,53,0,82,0,10,0,11,0,62,0\n37,0,23,0,48,0,94,0,65,0,54,0\n14,0,41,0,80,0,50,0,15,0,4,0\n20,0,81,0,58,0,77,0,29,0,56,0\n42,0,61,0,72,0,17,0,12,0,31,0\n49,0,47,0,93,0,96,0,43,0,36,0\n95,0,78,0,39,0,21,0,24,0,45,0\n90,0,8,0,34,0,16,0,26,0,5,0\n62,0,79,0,59,0,70,0,73,0,76,0\n88,0,27,0,75,0,10,0,28,0,89,0\n1,0,83,0,15,0,86,0,32,0,63,0\n23,0,30,0,68,0,53,0,56,0,22,0\n51,0,40,0,82,0,29,0,17,0,80,0\n19,0,12,0,65,0,38,0,74,0,92,0\n85,0,47,0,2,0,78,0,58,0,84,0\n94,0,52,0,5,0,42,0,49,0,69,0\n71,0,50,0,55,0,16,0,31,0,39,0\n57,0,21,0,20,0,4,0,87,0,8,0\n95,0,18,0,72,0,26,0,66,0,64,0\n90,0,96,0,48,0,14,0,91,0,13,0\n3,0,24,0,41,0,77,0,37,0,61,0\n67,0,46,0,34,0,93,0,6,0,45,0\n60,0,54,0,11,0,7,0,44,0,36,0\n43,0,81,0,25,0,9,0,35,0,33,0\n5,0,59,0,31,0,82,0,75,0,56,0\n4,0,74,0,22,0,63,0,88,0,62,0\n10,0,17,0,8,0,69,0,39,0,38,0\n90,0,64,0,15,0,12,0,30,0,78,0\n3,0,95,0,13,0,53,0,83,0,47,0\n87,0,16,0,93,0,18,0,52,0,2,0\n28,0,40,0,92,0,34,0,1,0,66,0\n67,0,9,0,26,0,60,0,20,0,49,0\n6,0,35,0,58,0,54,0,61,0,55,0\n70,0,80,0,37,0,42,0,19,0,25,0\n24,0,96,0,79,0,85,0,81,0,51,0\n27,0,50,0,76,0,21,0,72,0,7,0\n29,0,89,0,71,0,43,0,57,0,48,0\n33,0,65,0,91,0,77,0,11,0,68,0\n23,0,86,0,36,0,73,0,14,0,46,0\n44,0,41,0,45,0,84,0,94,0,32,0\n54,0,28,0,22,0,15,0,18,0,8,0\n31,0,49,0,25,0,58,0,1,0,95,0\n83,0,61,0,92,0,5,0,64,0,87,0\n10,0,52,0,72,0,30,0,6,0,74,0\n12,0,88,0,93,0,9,0,24,0,66,0\n77,0,53,0,89,0,7,0,80,0,55,0\n91,0,56,0,40,0,16,0,46,0,57,0\n81,0,38,0,45,0,82,0,60,0,27,0\n19,0,50,0,43,0,17,0,94,0,73,0\n62,0,84,0,69,0,75,0,29,0,96,0\n59,0,33,0,71,0,90,0,41,0,23,0\n76,0,39,0,42,0,65,0,85,0,26,0\n21,0,34,0,37,0,63,0,47,0,79,0\n13,0,32,0,78,0,20,0,70,0,36,0\n14,0,11,0,51,0,2,0,67,0,35,0\n4,0,68,0,44,0,48,0,3,0,86,0\n"
  },
  {
    "path": "schedules/96_6.csv",
    "content": "47,0,63,0,87,0,90,0,46,0,77,0\n24,0,68,0,64,0,50,0,82,0,13,0\n72,0,88,0,23,0,66,0,15,0,43,0\n2,0,53,0,14,0,70,0,33,0,9,0\n85,0,61,0,42,0,96,0,62,0,91,0\n51,0,49,0,26,0,81,0,8,0,32,0\n76,0,69,0,56,0,29,0,12,0,3,0\n95,0,22,0,93,0,30,0,34,0,59,0\n89,0,83,0,20,0,84,0,31,0,74,0\n94,0,39,0,28,0,65,0,52,0,41,0\n78,0,73,0,6,0,19,0,16,0,75,0\n54,0,40,0,10,0,80,0,38,0,79,0\n7,0,25,0,1,0,4,0,21,0,60,0\n35,0,5,0,67,0,27,0,11,0,71,0\n17,0,36,0,18,0,44,0,37,0,92,0\n86,0,45,0,58,0,55,0,48,0,57,0\n49,0,22,0,46,0,23,0,29,0,62,0\n93,0,69,0,41,0,91,0,63,0,14,0\n43,0,2,0,61,0,6,0,77,0,8,0\n15,0,3,0,82,0,26,0,79,0,28,0\n39,0,80,0,47,0,76,0,78,0,84,0\n71,0,13,0,59,0,83,0,25,0,12,0\n35,0,31,0,64,0,73,0,1,0,85,0\n33,0,67,0,48,0,89,0,42,0,90,0\n88,0,5,0,92,0,96,0,34,0,4,0\n68,0,58,0,54,0,94,0,20,0,17,0\n65,0,45,0,60,0,95,0,87,0,37,0\n40,0,16,0,72,0,51,0,24,0,52,0\n50,0,27,0,36,0,70,0,66,0,38,0\n7,0,19,0,81,0,30,0,53,0,86,0\n55,0,11,0,75,0,10,0,21,0,44,0\n32,0,18,0,74,0,9,0,57,0,56,0\n48,0,92,0,62,0,82,0,78,0,71,0\n33,0,96,0,46,0,35,0,58,0,13,0\n17,0,76,0,60,0,89,0,85,0,79,0\n6,0,14,0,4,0,29,0,64,0,45,0\n52,0,80,0,91,0,73,0,5,0,66,0\n24,0,43,0,30,0,54,0,31,0,36,0\n55,0,42,0,41,0,25,0,19,0,34,0\n95,0,63,0,28,0,2,0,12,0,49,0\n3,0,81,0,77,0,94,0,9,0,72,0\n38,0,1,0,87,0,22,0,57,0,75,0\n8,0,50,0,7,0,90,0,18,0,39,0\n27,0,44,0,86,0,61,0,74,0,23,0\n53,0,88,0,10,0,16,0,26,0,83,0\n51,0,56,0,65,0,67,0,68,0,93,0\n37,0,15,0,70,0,84,0,21,0,59,0\n32,0,40,0,20,0,69,0,47,0,11,0\n9,0,96,0,28,0,73,0,43,0,29,0\n12,0,60,0,81,0,64,0,52,0,92,0\n89,0,72,0,4,0,55,0,13,0,78,0\n58,0,71,0,38,0,41,0,6,0,7,0\n80,0,34,0,8,0,74,0,17,0,75,0\n82,0,42,0,5,0,95,0,39,0,31,0\n14,0,25,0,54,0,15,0,18,0,65,0\n84,0,86,0,85,0,56,0,63,0,88,0\n10,0,77,0,91,0,33,0,51,0,22,0\n83,0,87,0,23,0,32,0,70,0,68,0\n35,0,94,0,36,0,53,0,69,0,62,0\n46,0,59,0,26,0,67,0,19,0,45,0\n24,0,37,0,57,0,76,0,11,0,61,0\n79,0,44,0,50,0,47,0,1,0,93,0\n40,0,21,0,3,0,48,0,49,0,27,0\n30,0,66,0,90,0,2,0,20,0,16,0\n92,0,95,0,38,0,14,0,13,0,8,0\n70,0,81,0,29,0,54,0,91,0,89,0\n35,0,74,0,4,0,77,0,42,0,15,0\n52,0,84,0,58,0,36,0,82,0,22,0\n11,0,73,0,51,0,88,0,94,0,59,0\n9,0,69,0,80,0,87,0,85,0,44,0\n83,0,55,0,49,0,33,0,60,0,50,0\n53,0,67,0,34,0,24,0,66,0,28,0\n56,0,23,0,39,0,37,0,48,0,6,0\n17,0,64,0,86,0,46,0,71,0,2,0\n61,0,1,0,90,0,78,0,3,0,41,0\n76,0,93,0,45,0,5,0,7,0,20,0\n27,0,19,0,12,0,47,0,18,0,96,0\n31,0,16,0,21,0,79,0,63,0,57,0\n65,0,62,0,32,0,72,0,10,0,30,0\n75,0,68,0,43,0,40,0,25,0,26,0\n38,0,33,0,74,0,59,0,69,0,81,0\n85,0,23,0,77,0,50,0,95,0,54,0\n49,0,44,0,70,0,88,0,64,0,39,0\n56,0,78,0,66,0,58,0,42,0,14,0\n92,0,28,0,6,0,93,0,86,0,87,0\n8,0,21,0,71,0,22,0,19,0,24,0\n79,0,9,0,52,0,37,0,67,0,83,0\n48,0,11,0,53,0,91,0,65,0,43,0\n34,0,62,0,73,0,76,0,68,0,27,0\n26,0,30,0,84,0,55,0,96,0,1,0\n31,0,41,0,18,0,46,0,4,0,10,0\n12,0,94,0,16,0,80,0,7,0,32,0\n72,0,63,0,29,0,60,0,20,0,61,0\n51,0,75,0,82,0,35,0,89,0,2,0\n57,0,47,0,3,0,36,0,25,0,5,0\n15,0,17,0,13,0,45,0,40,0,90,0\n"
  },
  {
    "path": "schedules/96_7.csv",
    "content": "4,0,75,0,67,0,74,0,2,0,5,0\n65,0,63,0,31,0,42,0,6,0,73,0\n18,0,37,0,34,0,79,0,8,0,57,0\n43,0,16,0,23,0,49,0,38,0,69,0\n81,0,71,0,93,0,54,0,20,0,29,0\n53,0,58,0,94,0,83,0,59,0,72,0\n50,0,91,0,82,0,14,0,39,0,22,0\n13,0,12,0,21,0,17,0,7,0,30,0\n56,0,85,0,33,0,1,0,76,0,61,0\n88,0,44,0,80,0,41,0,11,0,9,0\n62,0,68,0,28,0,40,0,45,0,96,0\n27,0,86,0,48,0,92,0,32,0,55,0\n24,0,46,0,60,0,10,0,84,0,25,0\n19,0,77,0,87,0,26,0,36,0,3,0\n66,0,78,0,90,0,15,0,51,0,47,0\n35,0,89,0,95,0,64,0,70,0,52,0\n91,0,56,0,21,0,59,0,38,0,29,0\n30,0,41,0,1,0,37,0,63,0,2,0\n93,0,83,0,39,0,9,0,61,0,17,0\n42,0,69,0,27,0,18,0,33,0,22,0\n43,0,5,0,54,0,76,0,25,0,79,0\n68,0,36,0,4,0,57,0,10,0,48,0\n84,0,58,0,3,0,45,0,78,0,88,0\n67,0,49,0,46,0,32,0,96,0,89,0\n35,0,19,0,73,0,92,0,66,0,81,0\n12,0,94,0,50,0,64,0,24,0,86,0\n95,0,55,0,6,0,47,0,75,0,77,0\n15,0,7,0,52,0,28,0,80,0,71,0\n51,0,65,0,72,0,70,0,85,0,23,0\n60,0,20,0,82,0,34,0,44,0,13,0\n16,0,11,0,31,0,8,0,62,0,26,0\n87,0,14,0,53,0,74,0,40,0,90,0\n41,0,35,0,25,0,56,0,32,0,93,0\n19,0,9,0,91,0,12,0,1,0,68,0\n30,0,43,0,57,0,61,0,78,0,95,0\n59,0,71,0,64,0,45,0,48,0,69,0\n17,0,73,0,3,0,49,0,15,0,27,0\n13,0,24,0,89,0,51,0,77,0,80,0\n46,0,2,0,55,0,42,0,79,0,94,0\n85,0,14,0,86,0,84,0,8,0,21,0\n6,0,33,0,74,0,28,0,23,0,36,0\n4,0,88,0,66,0,22,0,20,0,53,0\n38,0,11,0,83,0,63,0,5,0,50,0\n10,0,34,0,52,0,39,0,62,0,87,0\n92,0,40,0,18,0,16,0,82,0,47,0\n76,0,81,0,72,0,60,0,67,0,31,0\n75,0,58,0,70,0,37,0,7,0,29,0\n44,0,90,0,26,0,96,0,54,0,65,0\n78,0,80,0,93,0,12,0,46,0,69,0\n15,0,1,0,25,0,53,0,23,0,64,0\n68,0,41,0,61,0,71,0,42,0,21,0\n34,0,59,0,73,0,55,0,74,0,89,0\n14,0,77,0,38,0,33,0,94,0,17,0\n32,0,20,0,30,0,83,0,79,0,31,0\n45,0,50,0,51,0,18,0,52,0,75,0\n39,0,11,0,92,0,49,0,6,0,72,0\n60,0,47,0,35,0,26,0,43,0,48,0\n96,0,81,0,27,0,5,0,91,0,8,0\n84,0,28,0,29,0,4,0,19,0,95,0\n70,0,88,0,16,0,54,0,87,0,2,0\n56,0,82,0,37,0,66,0,10,0,67,0\n24,0,36,0,22,0,44,0,62,0,58,0\n9,0,57,0,7,0,63,0,85,0,90,0\n40,0,13,0,65,0,76,0,86,0,3,0\n31,0,49,0,1,0,18,0,93,0,14,0\n23,0,71,0,47,0,96,0,94,0,11,0\n20,0,50,0,8,0,25,0,89,0,19,0\n60,0,4,0,42,0,51,0,64,0,87,0\n83,0,52,0,37,0,73,0,91,0,16,0\n45,0,12,0,41,0,36,0,54,0,82,0\n92,0,69,0,88,0,77,0,67,0,34,0\n58,0,17,0,26,0,55,0,40,0,85,0\n62,0,76,0,9,0,48,0,46,0,29,0\n66,0,3,0,5,0,21,0,57,0,6,0\n2,0,39,0,27,0,95,0,59,0,65,0\n32,0,81,0,84,0,90,0,75,0,33,0\n63,0,74,0,43,0,80,0,10,0,22,0\n79,0,86,0,61,0,7,0,44,0,53,0\n38,0,13,0,72,0,35,0,78,0,28,0\n24,0,70,0,15,0,30,0,68,0,56,0\n82,0,29,0,1,0,42,0,17,0,88,0\n87,0,21,0,96,0,58,0,92,0,9,0\n14,0,76,0,36,0,11,0,20,0,52,0\n32,0,71,0,39,0,16,0,4,0,77,0\n57,0,59,0,22,0,25,0,81,0,47,0\n61,0,46,0,26,0,64,0,37,0,74,0\n85,0,44,0,89,0,66,0,43,0,45,0\n91,0,28,0,70,0,86,0,18,0,63,0\n19,0,38,0,7,0,65,0,41,0,24,0\n8,0,51,0,35,0,6,0,12,0,67,0\n84,0,68,0,54,0,50,0,34,0,72,0\n31,0,78,0,94,0,56,0,27,0,75,0\n93,0,23,0,48,0,30,0,5,0,73,0\n79,0,40,0,95,0,69,0,15,0,60,0\n80,0,53,0,62,0,3,0,33,0,55,0\n10,0,90,0,49,0,2,0,13,0,83,0\n19,0,17,0,74,0,32,0,76,0,44,0\n47,0,38,0,70,0,45,0,46,0,4,0\n36,0,85,0,25,0,39,0,96,0,37,0\n18,0,7,0,94,0,43,0,6,0,87,0\n42,0,77,0,54,0,35,0,57,0,91,0\n72,0,26,0,75,0,89,0,12,0,15,0\n3,0,34,0,48,0,61,0,28,0,14,0\n56,0,49,0,79,0,50,0,71,0,88,0\n92,0,30,0,59,0,90,0,60,0,62,0\n67,0,23,0,84,0,27,0,80,0,83,0\n10,0,5,0,40,0,51,0,41,0,20,0\n55,0,8,0,64,0,68,0,93,0,22,0\n53,0,9,0,69,0,65,0,82,0,81,0\n95,0,66,0,63,0,58,0,13,0,16,0\n78,0,11,0,21,0,1,0,24,0,73,0\n33,0,2,0,29,0,86,0,52,0,31,0\n"
  },
  {
    "path": "schedules/96_8.csv",
    "content": "47,0,55,0,68,0,90,0,39,0,38,0\n83,0,3,0,58,0,42,0,46,0,84,0\n43,0,59,0,9,0,44,0,48,0,88,0\n16,0,45,0,22,0,66,0,23,0,60,0\n69,0,37,0,2,0,56,0,30,0,70,0\n89,0,14,0,91,0,95,0,33,0,31,0\n35,0,67,0,78,0,96,0,19,0,7,0\n25,0,72,0,10,0,86,0,24,0,8,0\n53,0,85,0,63,0,61,0,76,0,18,0\n82,0,74,0,92,0,27,0,5,0,21,0\n54,0,41,0,57,0,79,0,77,0,52,0\n1,0,15,0,11,0,51,0,81,0,75,0\n32,0,36,0,6,0,29,0,87,0,94,0\n34,0,13,0,71,0,20,0,4,0,73,0\n80,0,93,0,28,0,64,0,62,0,40,0\n12,0,26,0,65,0,49,0,17,0,50,0\n88,0,42,0,76,0,25,0,16,0,91,0\n46,0,61,0,56,0,43,0,23,0,35,0\n58,0,77,0,92,0,8,0,14,0,67,0\n78,0,51,0,54,0,86,0,95,0,90,0\n15,0,52,0,19,0,87,0,70,0,5,0\n30,0,34,0,83,0,85,0,45,0,38,0\n64,0,44,0,73,0,24,0,47,0,81,0\n31,0,29,0,68,0,26,0,80,0,20,0\n74,0,65,0,9,0,37,0,4,0,22,0\n93,0,69,0,82,0,6,0,3,0,55,0\n48,0,33,0,50,0,66,0,53,0,96,0\n79,0,32,0,40,0,27,0,71,0,75,0\n10,0,12,0,28,0,39,0,89,0,57,0\n11,0,62,0,7,0,49,0,21,0,63,0\n2,0,59,0,36,0,72,0,17,0,13,0\n84,0,1,0,18,0,41,0,60,0,94,0\n29,0,74,0,19,0,73,0,85,0,16,0\n35,0,5,0,45,0,20,0,90,0,77,0\n6,0,38,0,70,0,46,0,9,0,51,0\n55,0,8,0,52,0,80,0,22,0,81,0\n96,0,61,0,15,0,47,0,32,0,42,0\n49,0,57,0,64,0,43,0,71,0,37,0\n79,0,31,0,39,0,72,0,30,0,11,0\n82,0,24,0,75,0,65,0,36,0,78,0\n56,0,88,0,26,0,27,0,89,0,93,0\n17,0,87,0,25,0,48,0,18,0,67,0\n23,0,53,0,41,0,58,0,86,0,7,0\n28,0,94,0,69,0,83,0,59,0,33,0\n84,0,91,0,40,0,92,0,4,0,2,0\n14,0,66,0,54,0,13,0,12,0,62,0\n44,0,60,0,68,0,21,0,50,0,76,0\n95,0,1,0,10,0,34,0,63,0,3,0\n71,0,31,0,36,0,88,0,52,0,38,0\n5,0,39,0,8,0,16,0,61,0,64,0\n80,0,96,0,85,0,23,0,57,0,25,0\n45,0,75,0,59,0,26,0,19,0,41,0\n65,0,42,0,40,0,11,0,18,0,56,0\n29,0,13,0,89,0,82,0,15,0,35,0\n27,0,51,0,50,0,73,0,28,0,72,0\n58,0,66,0,43,0,74,0,63,0,69,0\n68,0,83,0,17,0,14,0,7,0,10,0\n24,0,48,0,49,0,22,0,3,0,30,0\n20,0,76,0,6,0,84,0,54,0,67,0\n95,0,93,0,70,0,32,0,92,0,44,0\n53,0,62,0,37,0,91,0,90,0,46,0\n81,0,86,0,79,0,9,0,87,0,60,0\n12,0,21,0,4,0,33,0,55,0,1,0\n47,0,94,0,78,0,34,0,2,0,77,0\n16,0,96,0,11,0,82,0,71,0,59,0\n66,0,57,0,29,0,17,0,75,0,38,0\n45,0,51,0,7,0,8,0,40,0,89,0\n24,0,95,0,28,0,74,0,61,0,68,0\n84,0,90,0,63,0,80,0,70,0,27,0\n67,0,85,0,50,0,93,0,37,0,36,0\n54,0,33,0,73,0,87,0,35,0,42,0\n21,0,3,0,77,0,53,0,65,0,13,0\n30,0,64,0,18,0,46,0,12,0,52,0\n48,0,2,0,58,0,26,0,32,0,1,0\n23,0,76,0,94,0,15,0,79,0,10,0\n39,0,60,0,25,0,34,0,92,0,43,0\n91,0,9,0,41,0,55,0,83,0,78,0\n86,0,56,0,47,0,5,0,4,0,31,0\n22,0,62,0,72,0,6,0,44,0,19,0\n69,0,14,0,20,0,88,0,81,0,49,0\n63,0,65,0,67,0,45,0,29,0,28,0\n38,0,8,0,50,0,2,0,95,0,42,0\n94,0,13,0,52,0,37,0,11,0,48,0\n90,0,1,0,16,0,24,0,79,0,43,0\n36,0,73,0,53,0,92,0,57,0,68,0\n41,0,85,0,70,0,89,0,66,0,47,0\n62,0,32,0,59,0,78,0,30,0,76,0\n27,0,15,0,4,0,6,0,14,0,18,0\n21,0,86,0,88,0,35,0,17,0,64,0\n84,0,56,0,87,0,71,0,7,0,55,0\n12,0,20,0,51,0,3,0,44,0,91,0\n25,0,81,0,26,0,54,0,82,0,83,0\n60,0,33,0,72,0,80,0,75,0,58,0\n22,0,40,0,46,0,5,0,96,0,10,0\n77,0,93,0,23,0,74,0,49,0,39,0\n9,0,34,0,61,0,69,0,19,0,31,0\n70,0,88,0,50,0,57,0,45,0,62,0\n38,0,1,0,14,0,53,0,78,0,87,0\n91,0,8,0,28,0,36,0,56,0,15,0\n2,0,76,0,35,0,66,0,52,0,65,0\n55,0,48,0,42,0,64,0,60,0,51,0\n44,0,90,0,4,0,96,0,94,0,58,0\n81,0,5,0,72,0,23,0,67,0,71,0\n26,0,24,0,85,0,69,0,21,0,40,0\n19,0,27,0,3,0,17,0,11,0,54,0\n74,0,6,0,7,0,33,0,25,0,79,0\n47,0,95,0,43,0,29,0,12,0,84,0\n63,0,31,0,73,0,59,0,22,0,77,0\n83,0,92,0,61,0,75,0,49,0,13,0\n30,0,10,0,9,0,16,0,20,0,93,0\n34,0,89,0,18,0,68,0,37,0,86,0\n80,0,39,0,32,0,41,0,46,0,82,0\n69,0,35,0,4,0,38,0,60,0,62,0\n3,0,78,0,72,0,74,0,15,0,88,0\n79,0,21,0,67,0,56,0,51,0,66,0\n31,0,27,0,44,0,7,0,42,0,1,0\n29,0,5,0,59,0,91,0,50,0,54,0\n71,0,2,0,61,0,93,0,25,0,12,0\n83,0,8,0,20,0,57,0,47,0,48,0\n36,0,96,0,18,0,39,0,26,0,70,0\n89,0,46,0,24,0,92,0,55,0,94,0\n23,0,37,0,14,0,63,0,82,0,40,0\n87,0,22,0,11,0,76,0,28,0,58,0\n80,0,17,0,73,0,95,0,9,0,45,0\n33,0,43,0,30,0,86,0,19,0,65,0\n81,0,90,0,41,0,13,0,6,0,10,0\n49,0,52,0,34,0,16,0,32,0,53,0\n64,0,75,0,68,0,85,0,84,0,77,0\n"
  },
  {
    "path": "schedules/96_9.csv",
    "content": "71,0,70,0,3,0,15,0,38,0,54,0\n96,0,94,0,42,0,48,0,26,0,58,0\n47,0,39,0,51,0,84,0,64,0,22,0\n56,0,68,0,52,0,80,0,16,0,18,0\n95,0,4,0,27,0,92,0,14,0,6,0\n72,0,59,0,90,0,30,0,77,0,45,0\n86,0,37,0,35,0,28,0,55,0,60,0\n78,0,24,0,62,0,69,0,79,0,13,0\n1,0,65,0,67,0,23,0,93,0,85,0\n73,0,61,0,33,0,29,0,2,0,74,0\n36,0,53,0,8,0,50,0,25,0,21,0\n91,0,5,0,11,0,19,0,83,0,34,0\n31,0,10,0,41,0,7,0,89,0,40,0\n75,0,32,0,49,0,9,0,12,0,82,0\n20,0,57,0,63,0,66,0,81,0,43,0\n76,0,17,0,87,0,88,0,44,0,46,0\n15,0,95,0,68,0,72,0,69,0,42,0\n38,0,35,0,24,0,51,0,67,0,74,0\n2,0,79,0,52,0,47,0,26,0,59,0\n1,0,58,0,28,0,92,0,22,0,50,0\n45,0,7,0,18,0,94,0,5,0,54,0\n62,0,12,0,60,0,80,0,36,0,19,0\n13,0,96,0,4,0,75,0,40,0,73,0\n21,0,77,0,39,0,43,0,71,0,17,0\n37,0,76,0,20,0,10,0,14,0,83,0\n56,0,64,0,85,0,82,0,27,0,53,0\n11,0,49,0,89,0,93,0,87,0,30,0\n9,0,31,0,70,0,91,0,81,0,33,0\n84,0,16,0,46,0,61,0,3,0,63,0\n78,0,55,0,32,0,66,0,90,0,23,0\n6,0,44,0,8,0,57,0,65,0,86,0\n34,0,29,0,48,0,25,0,41,0,88,0\n51,0,76,0,42,0,19,0,21,0,52,0\n68,0,5,0,67,0,28,0,27,0,43,0\n64,0,15,0,37,0,75,0,74,0,58,0\n93,0,56,0,22,0,77,0,81,0,7,0\n38,0,92,0,91,0,96,0,16,0,89,0\n32,0,1,0,20,0,62,0,59,0,46,0\n3,0,13,0,6,0,55,0,18,0,11,0\n26,0,85,0,88,0,73,0,66,0,31,0\n53,0,86,0,78,0,9,0,84,0,87,0\n63,0,23,0,49,0,36,0,35,0,44,0\n25,0,45,0,82,0,2,0,57,0,71,0\n30,0,17,0,65,0,47,0,40,0,12,0\n8,0,48,0,14,0,72,0,70,0,80,0\n94,0,34,0,69,0,60,0,4,0,33,0\n54,0,50,0,95,0,24,0,10,0,29,0\n61,0,39,0,90,0,41,0,79,0,83,0\n88,0,53,0,42,0,13,0,16,0,1,0\n31,0,3,0,23,0,21,0,62,0,5,0\n84,0,75,0,85,0,35,0,91,0,77,0\n44,0,58,0,25,0,68,0,30,0,9,0\n73,0,32,0,89,0,65,0,63,0,37,0\n2,0,15,0,60,0,48,0,11,0,67,0\n24,0,8,0,12,0,34,0,76,0,96,0\n41,0,86,0,22,0,72,0,54,0,66,0\n70,0,50,0,57,0,79,0,4,0,49,0\n46,0,47,0,14,0,56,0,45,0,43,0\n38,0,6,0,26,0,7,0,64,0,33,0\n28,0,80,0,94,0,95,0,90,0,51,0\n87,0,82,0,19,0,59,0,10,0,92,0\n40,0,52,0,29,0,81,0,39,0,78,0\n71,0,93,0,69,0,18,0,61,0,20,0\n83,0,55,0,74,0,27,0,36,0,17,0\n3,0,57,0,58,0,32,0,41,0,91,0\n60,0,47,0,25,0,63,0,72,0,1,0\n13,0,21,0,54,0,33,0,85,0,14,0\n66,0,77,0,9,0,50,0,11,0,94,0\n31,0,68,0,90,0,12,0,37,0,38,0\n84,0,24,0,88,0,30,0,5,0,6,0\n43,0,61,0,64,0,35,0,40,0,95,0\n17,0,19,0,75,0,89,0,20,0,8,0\n55,0,59,0,34,0,49,0,51,0,7,0\n28,0,10,0,69,0,74,0,53,0,39,0\n71,0,79,0,92,0,76,0,56,0,73,0\n67,0,42,0,83,0,18,0,44,0,62,0\n48,0,36,0,82,0,81,0,4,0,46,0\n22,0,96,0,87,0,23,0,15,0,52,0\n27,0,16,0,70,0,2,0,65,0,78,0\n80,0,93,0,45,0,26,0,86,0,29,0\n91,0,30,0,94,0,55,0,21,0,61,0\n40,0,54,0,60,0,20,0,58,0,6,0\n9,0,1,0,7,0,90,0,8,0,71,0\n33,0,66,0,84,0,89,0,67,0,95,0\n76,0,5,0,75,0,48,0,53,0,57,0\n18,0,59,0,22,0,37,0,24,0,17,0\n64,0,46,0,11,0,12,0,23,0,41,0\n43,0,29,0,51,0,65,0,15,0,31,0\n52,0,28,0,73,0,82,0,38,0,83,0\n81,0,74,0,86,0,92,0,42,0,49,0\n80,0,44,0,13,0,77,0,10,0,47,0\n36,0,16,0,87,0,69,0,45,0,85,0\n56,0,26,0,25,0,62,0,35,0,70,0\n4,0,68,0,19,0,63,0,39,0,2,0\n96,0,88,0,27,0,72,0,32,0,79,0\n50,0,34,0,93,0,78,0,14,0,3,0\n23,0,43,0,6,0,59,0,48,0,9,0\n7,0,76,0,58,0,82,0,61,0,67,0\n37,0,47,0,95,0,49,0,53,0,91,0\n54,0,90,0,69,0,44,0,92,0,75,0\n28,0,46,0,24,0,40,0,66,0,25,0\n29,0,21,0,83,0,87,0,60,0,56,0\n17,0,64,0,63,0,31,0,52,0,94,0\n62,0,81,0,65,0,68,0,34,0,84,0\n96,0,50,0,41,0,2,0,30,0,20,0\n45,0,74,0,22,0,70,0,13,0,89,0\n51,0,16,0,10,0,32,0,8,0,5,0\n18,0,78,0,72,0,35,0,19,0,73,0\n4,0,71,0,85,0,11,0,42,0,80,0\n33,0,57,0,15,0,55,0,93,0,88,0\n86,0,79,0,14,0,36,0,77,0,38,0\n3,0,27,0,39,0,26,0,1,0,12,0\n82,0,91,0,17,0,50,0,68,0,23,0\n54,0,59,0,53,0,63,0,96,0,83,0\n29,0,58,0,70,0,5,0,47,0,66,0\n60,0,41,0,18,0,76,0,84,0,49,0\n72,0,7,0,62,0,11,0,43,0,16,0\n65,0,35,0,33,0,10,0,52,0,90,0\n81,0,61,0,19,0,15,0,45,0,6,0\n89,0,39,0,56,0,48,0,24,0,86,0\n71,0,36,0,34,0,95,0,31,0,75,0\n44,0,79,0,40,0,94,0,74,0,93,0\n85,0,12,0,25,0,92,0,78,0,51,0\n46,0,37,0,27,0,9,0,57,0,13,0\n67,0,30,0,14,0,26,0,32,0,69,0\n20,0,38,0,21,0,4,0,22,0,88,0\n55,0,1,0,80,0,73,0,87,0,64,0\n77,0,8,0,2,0,28,0,3,0,42,0\n11,0,65,0,59,0,76,0,39,0,36,0\n40,0,90,0,5,0,56,0,50,0,63,0\n92,0,83,0,66,0,93,0,48,0,68,0\n9,0,74,0,47,0,19,0,41,0,85,0\n26,0,78,0,89,0,71,0,60,0,46,0\n12,0,20,0,7,0,95,0,70,0,86,0\n84,0,69,0,82,0,1,0,37,0,29,0\n62,0,51,0,14,0,61,0,17,0,96,0\n30,0,35,0,42,0,31,0,79,0,54,0\n2,0,13,0,38,0,32,0,94,0,87,0\n57,0,21,0,72,0,64,0,28,0,34,0\n75,0,81,0,23,0,10,0,88,0,18,0\n55,0,52,0,4,0,58,0,8,0,45,0\n53,0,33,0,80,0,3,0,43,0,22,0\n15,0,73,0,44,0,91,0,27,0,24,0\n67,0,49,0,77,0,16,0,6,0,25,0\n"
  },
  {
    "path": "schedules/97_1.csv",
    "content": "96,0,17,0,79,0,59,0,22,0,82,0\n2,0,60,0,38,0,32,0,13,0,21,0\n83,0,87,0,25,0,61,0,52,0,85,0\n7,0,28,0,5,0,73,0,16,0,19,0\n23,0,68,0,62,0,80,0,67,0,4,0\n18,0,74,0,94,0,31,0,81,0,78,0\n51,0,15,0,89,0,46,0,75,0,3,0\n71,0,37,0,10,0,39,0,35,0,56,0\n77,0,9,0,27,0,88,0,43,0,49,0\n95,0,45,0,20,0,44,0,55,0,90,0\n76,0,36,0,11,0,26,0,63,0,34,0\n33,0,30,0,42,0,24,0,70,0,57,0\n84,0,66,0,8,0,54,0,1,0,47,0\n92,0,93,0,58,0,29,0,41,0,48,0\n65,0,69,0,86,0,40,0,50,0,97,0\n12,0,64,0,72,0,53,0,6,0,91,0\n14,0,59,1,25,1,19,1,96,1,89,1\n"
  },
  {
    "path": "schedules/97_10.csv",
    "content": "58,0,27,0,9,0,61,0,11,0,6,0\n89,0,77,0,10,0,52,0,91,0,85,0\n57,0,63,0,35,0,45,0,84,0,40,0\n29,0,93,0,21,0,55,0,25,0,95,0\n82,0,34,0,44,0,4,0,46,0,86,0\n88,0,79,0,3,0,60,0,22,0,28,0\n16,0,87,0,26,0,83,0,18,0,33,0\n32,0,49,0,97,0,81,0,71,0,56,0\n48,0,65,0,76,0,12,0,53,0,78,0\n2,0,96,0,37,0,70,0,19,0,73,0\n31,0,72,0,17,0,54,0,74,0,62,0\n94,0,50,0,20,0,42,0,67,0,92,0\n68,0,36,0,23,0,30,0,64,0,47,0\n43,0,15,0,24,0,8,0,80,0,66,0\n14,0,5,0,39,0,38,0,75,0,51,0\n69,0,1,0,90,0,41,0,59,0,13,0\n7,0,57,0,26,0,78,0,71,0,21,0\n95,0,52,0,33,0,97,0,61,0,73,0\n65,0,63,0,10,0,17,0,19,0,34,0\n96,0,54,0,83,0,92,0,81,0,3,0\n4,0,25,0,9,0,53,0,56,0,67,0\n36,0,49,0,88,0,94,0,11,0,55,0\n14,0,62,0,66,0,82,0,77,0,93,0\n39,0,20,0,8,0,90,0,87,0,86,0\n80,0,51,0,91,0,69,0,68,0,75,0\n23,0,18,0,59,0,37,0,42,0,58,0\n27,0,22,0,35,0,15,0,5,0,30,0\n74,0,13,0,64,0,28,0,45,0,16,0\n31,0,60,0,12,0,40,0,6,0,41,0\n43,0,48,0,70,0,29,0,79,0,7,0\n85,0,72,0,32,0,2,0,47,0,46,0\n76,0,1,0,24,0,89,0,50,0,38,0\n84,0,73,0,36,0,44,0,66,0,90,0\n33,1,71,0,59,0,88,1,17,0,80,0\n23,0,57,0,61,0,87,0,4,0,53,0\n92,0,28,0,39,0,78,0,35,0,18,0\n31,0,3,0,69,0,10,0,64,0,95,0\n81,0,91,0,79,0,5,0,65,0,82,0\n37,0,11,0,74,0,26,0,56,0,46,0\n67,0,55,0,40,0,75,0,76,0,22,0\n45,0,60,0,44,0,50,0,43,0,96,0\n12,0,8,0,1,0,27,0,93,0,85,0\n20,0,16,0,29,0,49,0,30,0,54,0\n9,0,68,0,97,0,19,0,72,0,24,0\n84,0,38,0,34,0,52,0,32,0,48,0\n63,0,15,0,21,0,89,0,58,0,62,0\n41,0,47,0,51,0,86,0,25,0,94,0\n83,0,6,0,13,0,70,0,77,0,42,0\n7,0,87,0,76,0,14,0,2,0,45,0\n4,0,37,0,28,0,27,0,65,0,50,0\n66,0,17,0,78,0,40,0,20,0,64,0\n43,0,46,0,92,0,23,0,1,0,75,0\n5,0,18,0,80,0,32,0,11,0,29,0\n19,0,85,0,39,0,36,0,95,0,82,0\n69,0,73,0,94,0,8,0,48,0,54,0\n81,0,21,0,90,0,31,0,68,0,88,0\n86,0,42,0,61,0,10,0,12,0,72,0\n63,0,44,0,70,0,26,0,67,0,14,0\n84,0,22,0,47,0,53,0,6,0,59,0\n96,0,55,0,56,0,51,0,16,0,79,0\n38,0,83,0,74,0,15,0,93,0,97,0\n52,0,30,0,13,0,9,0,60,0,57,0\n3,0,41,0,33,0,89,0,7,0,49,0\n58,0,25,0,2,0,35,0,24,0,77,0\n71,0,91,0,50,0,34,0,62,0,8,0\n28,0,87,0,95,0,44,0,1,0,68,0\n86,0,11,0,48,0,14,0,59,0,21,0\n22,0,80,0,73,0,63,0,85,0,4,0\n78,0,79,0,75,0,31,0,19,0,15,0\n17,0,81,0,42,0,76,0,52,0,16,0\n72,0,18,0,93,0,41,0,84,0,65,0\n97,0,29,0,40,0,77,0,53,0,27,0\n47,0,74,0,12,0,90,0,3,0,9,0\n92,0,34,0,30,0,70,0,66,0,56,0\n51,0,46,0,58,0,36,0,60,0,10,0\n24,0,69,0,55,0,62,0,83,0,7,0\n6,0,71,0,64,0,33,0,35,0,96,0\n38,0,82,0,45,0,26,0,25,0,54,0\n32,0,61,0,89,0,94,0,43,0,13,0\n88,0,91,0,67,0,37,0,39,0,57,0\n49,0,20,0,23,0,2,0,5,0,48,0\n86,0,70,0,75,0,85,0,3,0,84,0\n78,0,4,0,8,0,74,0,30,0,51,0\n47,0,42,0,52,0,11,0,66,0,1,0\n81,0,41,0,77,0,36,0,80,0,28,0\n16,0,90,0,22,0,72,0,14,0,58,0\n46,0,73,0,21,0,79,0,24,0,17,0\n25,0,76,0,27,0,60,0,34,0,18,0\n15,0,49,0,26,0,91,0,6,0,92,0\n97,0,82,0,89,0,96,0,87,0,31,0\n2,0,55,0,65,0,39,0,61,0,59,0\n40,0,56,0,13,0,95,0,7,0,23,0\n12,0,35,0,88,0,83,0,44,0,29,0\n68,0,53,0,43,0,20,0,33,0,63,0\n69,0,67,0,5,0,71,0,45,0,19,0\n9,0,37,0,64,0,38,0,94,0,62,0\n57,0,10,0,93,0,32,0,54,0,50,0\n96,0,41,0,66,0,74,0,75,0,48,0\n24,0,61,0,31,0,49,0,70,0,47,0\n87,0,78,0,58,0,56,0,91,0,73,0\n52,0,83,0,80,0,65,0,25,0,40,0\n97,0,3,0,36,0,26,0,35,0,43,0\n11,0,44,0,8,0,77,0,23,0,76,0\n85,0,14,0,53,0,88,0,13,0,15,0\n5,0,37,0,16,0,63,0,93,0,86,0\n45,0,9,0,46,0,89,0,39,0,22,0\n10,0,71,0,94,0,68,0,18,0,79,0\n62,0,60,0,4,0,20,0,81,0,95,0\n12,0,82,0,32,0,64,0,59,0,51,0\n34,0,33,0,21,0,1,0,67,0,72,0\n92,0,2,0,38,0,57,0,69,0,27,0\n84,0,54,0,7,0,19,0,28,0,42,0\n50,0,6,0,30,0,17,0,90,0,55,0\n29,0,86,0,65,0,13,0,22,0,66,0\n61,0,40,0,91,0,44,0,3,0,16,0\n45,0,11,0,93,0,78,0,70,0,68,0\n64,0,63,0,46,0,49,0,87,0,52,0\n81,0,75,0,35,0,89,0,34,0,59,0\n1,0,4,0,31,0,5,0,83,0,71,0\n76,0,36,0,72,0,69,0,20,0,96,0\n54,0,55,0,85,0,43,0,41,0,9,0\n50,0,47,0,19,0,48,0,58,0,88,0\n10,0,90,0,25,0,97,0,37,0,92,0\n28,0,51,0,53,0,62,0,2,0,26,0\n8,0,6,0,95,0,32,0,67,0,79,0\n18,0,7,0,30,0,12,0,38,0,73,0\n29,0,15,0,94,0,82,0,60,0,17,0\n80,0,27,0,74,0,21,0,84,0,23,0\n42,0,33,0,14,0,56,0,57,0,24,0\n77,0,72,0,48,0,39,0,3,0,4,0\n45,0,83,0,34,0,49,0,85,0,58,0\n89,0,53,0,66,0,55,0,71,0,37,0\n28,0,6,0,46,0,5,0,97,0,76,0\n20,0,35,0,11,0,13,0,31,0,91,0\n36,0,63,0,59,0,29,0,8,0,38,0\n70,0,87,0,51,0,65,0,9,0,15,0\n93,0,30,0,43,0,40,0,81,0,69,0\n68,0,67,0,84,0,2,0,16,0,60,0\n54,0,44,0,79,0,33,0,47,0,39,0\n50,0,7,0,75,0,61,0,25,0,64,0\n26,0,73,0,88,0,41,0,10,0,23,0\n52,0,22,0,24,0,82,0,92,0,74,0\n96,0,14,0,95,0,12,0,80,0,94,0\n27,0,90,0,62,0,42,0,32,0,78,0\n57,0,77,0,17,0,86,0,18,0,1,0\n19,0,56,0,6,0,21,0,3,0,38,0\n70,0,28,0,58,0,55,0,8,0,33,0\n15,0,51,0,20,0,37,0,44,0,7,0\n5,0,66,0,60,0,61,0,85,0,26,0\n11,0,34,0,40,0,87,0,54,0,24,0\n75,0,94,0,83,0,63,0,72,0,30,0\n92,0,4,0,89,0,88,0,84,0,64,0\n79,0,50,0,23,0,69,0,52,0,12,0\n77,0,95,0,71,0,46,0,90,0,65,0\n39,0,68,0,49,0,27,0,96,0,17,0\n18,0,62,0,67,0,13,0,47,0,97,0\n56,0,10,0,82,0,76,0,35,0,80,0\n59,0,16,0,43,0,57,0,25,0,73,0\n91,0,32,0,41,0,53,0,21,0,45,0\n1,0,19,0,74,0,14,0,81,0,29,0\n42,0,93,0,22,0,31,0,36,0,48,0\n86,0,2,0,33,0,9,0,78,0,88,0\n"
  },
  {
    "path": "schedules/97_11.csv",
    "content": "29,0,19,0,65,0,89,0,47,0,45,0\n41,0,66,0,13,0,56,0,73,0,75,0\n4,0,42,0,57,0,2,0,60,0,70,0\n49,0,92,0,48,0,31,0,14,0,72,0\n74,0,27,0,71,0,1,0,28,0,83,0\n96,0,79,0,11,0,39,0,24,0,15,0\n9,0,7,0,88,0,44,0,35,0,38,0\n23,0,95,0,12,0,68,0,26,0,21,0\n63,0,77,0,81,0,52,0,67,0,64,0\n25,0,93,0,22,0,55,0,46,0,82,0\n69,0,43,0,33,0,18,0,40,0,34,0\n84,0,76,0,6,0,53,0,91,0,86,0\n78,0,87,0,10,0,97,0,20,0,16,0\n61,0,90,0,54,0,17,0,50,0,51,0\n36,0,8,0,62,0,32,0,80,0,58,0\n94,0,85,0,3,0,5,0,30,0,59,0\n37,0,77,0,92,0,45,0,4,0,71,0\n14,0,46,0,29,0,64,0,13,0,95,0\n55,0,79,0,7,0,65,0,26,0,41,0\n74,0,25,0,24,0,75,0,47,0,93,0\n88,0,73,0,16,0,83,0,48,0,18,0\n61,0,84,0,39,0,78,0,27,0,63,0\n82,0,10,0,9,0,33,0,54,0,11,0\n67,0,97,0,60,0,38,0,91,0,36,0\n59,0,20,0,42,0,89,0,86,0,90,0\n72,0,52,0,37,0,3,0,53,0,28,0\n31,0,12,0,32,0,57,0,40,0,5,0\n66,0,22,0,51,0,6,0,68,0,8,0\n81,0,1,0,34,0,35,0,62,0,2,0\n23,0,17,0,87,0,69,0,76,0,96,0\n70,0,94,0,58,0,44,0,19,0,50,0\n15,0,21,0,49,0,43,0,56,0,85,0\n30,0,25,0,26,0,80,0,10,0,45,0\n65,1,55,0,86,0,9,0,72,0,64,0\n40,0,54,0,89,0,28,0,63,0,92,0\n27,0,4,0,41,0,97,0,11,0,12,0\n75,0,8,0,79,0,46,0,1,0,37,0\n83,0,51,0,33,0,14,0,60,0,39,0\n42,0,69,0,5,0,66,0,61,0,44,0\n52,0,74,0,62,0,49,0,18,0,22,0\n15,0,48,0,58,0,87,0,68,0,84,0\n93,0,50,0,73,0,36,0,77,0,30,0\n16,0,23,0,24,0,70,0,91,0,56,0\n88,0,95,0,34,0,3,0,80,0,90,0\n20,0,53,0,81,0,85,0,57,0,47,0\n71,0,94,0,76,0,38,0,29,0,82,0\n59,0,13,0,35,0,21,0,32,0,17,0\n96,0,43,0,2,0,31,0,67,0,7,0\n19,0,6,0,83,0,78,0,79,0,62,0\n36,0,44,0,42,0,64,0,75,0,48,0\n5,0,26,0,91,0,58,0,49,0,77,0\n40,0,15,0,60,0,73,0,66,0,25,0\n20,0,24,0,41,0,1,0,95,0,84,0\n74,0,38,0,89,0,55,0,8,0,23,0\n51,0,63,0,69,0,71,0,12,0,9,0\n16,0,65,0,21,0,50,0,53,0,11,0\n90,0,43,0,32,0,47,0,10,0,6,0\n2,0,88,0,33,0,30,0,27,0,22,0\n78,0,37,0,31,0,34,0,76,0,85,0\n59,0,57,0,68,0,67,0,54,0,93,0\n45,0,81,0,72,0,96,0,13,0,94,0\n56,0,4,0,29,0,61,0,87,0,86,0\n92,0,39,0,17,0,97,0,52,0,70,0\n18,0,35,0,82,0,19,0,3,0,14,0\n28,0,46,0,91,0,80,0,7,0,12,0\n63,0,42,0,24,0,32,0,65,0,83,0\n66,0,21,0,27,0,31,0,77,0,10,0\n90,0,44,0,37,0,33,0,73,0,49,0\n50,0,43,0,55,0,76,0,48,0,81,0\n36,0,29,0,96,0,40,0,68,0,20,0\n58,0,85,0,97,0,9,0,74,0,2,0\n54,0,38,0,5,0,52,0,45,0,84,0\n7,0,39,0,19,0,34,0,93,0,23,0\n46,0,57,0,6,0,17,0,16,0,72,0\n3,0,56,0,1,0,92,0,26,0,22,0\n95,0,35,0,78,0,53,0,4,0,75,0\n88,0,28,0,8,0,25,0,60,0,41,0\n67,0,30,0,13,0,70,0,82,0,61,0\n79,0,47,0,87,0,11,0,51,0,59,0\n62,0,15,0,14,0,86,0,69,0,94,0\n80,0,64,0,31,0,89,0,71,0,18,0\n93,0,40,0,27,0,91,0,45,0,21,0\n5,0,46,0,97,0,90,0,19,0,56,0\n58,0,4,0,83,0,43,0,38,0,72,0\n73,0,23,0,53,0,63,0,10,0,1,0\n95,0,8,0,9,0,61,0,57,0,92,0\n13,0,12,0,22,0,85,0,54,0,24,0\n65,0,15,0,51,0,20,0,2,0,37,0\n67,0,17,0,66,0,78,0,28,0,29,0\n14,0,75,0,34,0,11,0,84,0,81,0\n35,0,49,0,30,0,69,0,16,0,55,0\n48,0,86,0,79,0,60,0,80,0,77,0\n25,0,59,0,76,0,18,0,39,0,36,0\n26,0,74,0,87,0,6,0,42,0,94,0\n62,0,41,0,50,0,44,0,68,0,71,0\n70,0,3,0,64,0,47,0,7,0,33,0\n88,0,32,0,89,0,52,0,96,0,82,0\n57,0,73,0,22,0,43,0,84,0,29,0\n19,0,30,0,38,0,37,0,24,0,40,0\n81,0,54,0,65,0,60,0,58,0,78,0\n77,0,23,0,28,0,9,0,13,0,15,0\n36,0,94,0,90,0,53,0,27,0,79,0\n16,0,34,0,44,0,92,0,67,0,74,0\n80,0,76,0,68,0,42,0,35,0,11,0\n97,0,89,0,6,0,1,0,21,0,33,0\n46,0,48,0,69,0,51,0,41,0,10,0\n5,0,18,0,70,0,95,0,96,0,93,0\n25,0,2,0,61,0,49,0,12,0,3,0\n82,0,26,0,86,0,31,0,52,0,75,0\n39,0,45,0,55,0,88,0,62,0,87,0\n91,0,50,0,47,0,4,0,14,0,63,0\n71,0,7,0,72,0,85,0,32,0,66,0\n64,0,17,0,56,0,20,0,83,0,8,0\n59,0,38,0,33,0,46,0,81,0,92,0\n73,0,35,0,67,0,89,0,24,0,27,0\n37,0,11,0,29,0,48,0,25,0,5,0\n41,0,61,0,52,0,6,0,58,0,23,0\n57,0,28,0,70,0,21,0,62,0,55,0\n53,0,14,0,96,0,80,0,22,0,9,0\n1,0,65,0,18,0,85,0,87,0,91,0\n36,0,56,0,50,0,31,0,69,0,88,0\n32,0,68,0,64,0,39,0,74,0,4,0\n71,0,17,0,3,0,42,0,79,0,93,0\n19,0,2,0,10,0,95,0,59,0,72,0\n83,0,45,0,90,0,76,0,7,0,15,0\n51,0,13,0,84,0,40,0,26,0,44,0\n20,0,75,0,60,0,49,0,63,0,94,0\n30,0,34,0,86,0,97,0,54,0,66,0\n16,0,77,0,12,0,82,0,43,0,8,0\n47,0,1,0,68,0,78,0,5,0,88,0\n56,0,42,0,9,0,67,0,18,0,37,0\n55,0,53,0,24,0,33,0,71,0,61,0\n85,0,28,0,38,0,64,0,50,0,79,0\n62,0,4,0,90,0,65,0,31,0,23,0\n80,0,15,0,63,0,74,0,57,0,41,0\n72,0,75,0,40,0,97,0,76,0,22,0\n66,0,95,0,82,0,49,0,83,0,36,0\n25,0,7,0,16,0,86,0,51,0,81,0\n39,0,54,0,26,0,47,0,48,0,35,0\n93,0,10,0,84,0,89,0,12,0,94,0\n91,0,11,0,43,0,30,0,32,0,92,0\n77,0,34,0,59,0,29,0,70,0,6,0\n3,0,21,0,96,0,73,0,58,0,46,0\n20,0,52,0,27,0,19,0,13,0,69,0\n44,0,78,0,2,0,87,0,14,0,8,0\n17,0,45,0,68,0,60,0,24,0,82,0\n97,0,80,0,47,0,83,0,37,0,55,0\n49,0,67,0,10,0,79,0,76,0,88,0\n92,0,35,0,84,0,66,0,23,0,64,0\n61,0,22,0,28,0,59,0,16,0,31,0\n1,0,39,0,94,0,77,0,65,0,40,0\n93,0,29,0,91,0,9,0,81,0,41,0\n44,0,18,0,15,0,54,0,6,0,4,0\n30,0,7,0,21,0,42,0,52,0,14,0\n45,0,70,0,12,0,74,0,20,0,73,0\n43,0,75,0,3,0,62,0,89,0,51,0\n60,0,53,0,87,0,34,0,46,0,32,0\n95,0,56,0,58,0,27,0,25,0,17,0\n2,0,86,0,11,0,13,0,71,0,36,0\n78,0,57,0,69,0,26,0,38,0,90,0\n63,0,85,0,8,0,19,0,96,0,48,0\n5,0,72,0,23,0,50,0,33,0,67,0\n84,0,65,0,14,0,59,0,97,0,88,0\n51,0,92,0,24,0,80,0,29,0,21,0\n44,0,32,0,77,0,3,0,55,0,20,0\n9,0,47,0,52,0,62,0,16,0,66,0\n73,0,31,0,54,0,91,0,95,0,79,0\n64,0,11,0,1,0,58,0,45,0,57,0\n75,0,41,0,90,0,2,0,38,0,39,0\n50,0,40,0,46,0,78,0,74,0,86,0\n83,0,69,0,89,0,85,0,25,0,70,0\n82,0,72,0,27,0,42,0,34,0,15,0\n63,0,71,0,87,0,43,0,35,0,5,0\n76,0,36,0,19,0,28,0,26,0,33,0\n4,0,22,0,48,0,17,0,7,0,94,0\n12,0,60,0,6,0,30,0,96,0,56,0\n18,0,10,0,68,0,61,0,37,0,81,0\n13,0,49,0,93,0,53,0,8,0,65,0\n"
  },
  {
    "path": "schedules/97_12.csv",
    "content": "18,0,15,0,80,0,70,0,22,0,8,0\n88,0,62,0,94,0,9,0,36,0,90,0\n56,0,7,0,6,0,91,0,20,0,5,0\n25,0,68,0,54,0,89,0,30,0,69,0\n31,0,29,0,75,0,41,0,71,0,35,0\n34,0,73,0,67,0,2,0,12,0,10,0\n79,0,93,0,58,0,16,0,3,0,66,0\n21,0,45,0,59,0,49,0,1,0,74,0\n96,0,47,0,13,0,72,0,33,0,63,0\n11,0,44,0,82,0,61,0,84,0,40,0\n87,0,97,0,85,0,92,0,60,0,17,0\n28,0,83,0,24,0,64,0,19,0,32,0\n38,0,77,0,78,0,26,0,76,0,55,0\n4,0,65,0,51,0,81,0,39,0,43,0\n42,0,57,0,37,0,27,0,46,0,52,0\n95,0,14,0,48,0,53,0,86,0,23,0\n50,0,7,0,90,0,33,0,25,0,58,0\n30,0,63,0,74,0,93,0,80,0,62,0\n54,0,92,0,84,0,2,0,18,0,9,0\n15,0,60,0,45,0,19,0,11,0,29,0\n6,0,55,0,97,0,59,0,16,0,28,0\n32,0,3,0,43,0,61,0,88,0,87,0\n52,0,82,0,12,0,71,0,68,0,26,0\n38,0,70,0,17,0,41,0,66,0,34,0\n40,0,48,0,27,0,24,0,75,0,22,0\n85,0,46,0,4,0,69,0,23,0,83,0\n53,0,79,0,81,0,39,0,78,0,1,0\n14,0,13,0,37,0,67,0,96,0,20,0\n64,0,57,0,36,0,65,0,31,0,77,0\n91,0,73,0,86,0,76,0,89,0,44,0\n35,0,72,0,42,0,10,0,94,0,5,0\n56,0,49,0,8,0,47,0,51,0,50,0\n21,0,58,0,82,0,95,0,60,0,30,0\n87,0,68,0,16,0,22,0,2,0,27,0\n93,0,25,0,32,0,39,0,85,0,26,0\n54,0,75,0,33,0,19,0,81,0,14,0\n90,0,1,0,41,0,13,0,83,0,15,0\n9,0,40,0,12,0,3,0,64,0,48,0\n31,0,4,0,66,0,18,0,61,0,42,0\n10,0,96,0,51,0,17,0,36,0,79,0\n71,0,49,0,37,0,77,0,94,0,7,0\n72,0,8,0,45,0,38,0,62,0,52,0\n56,0,34,0,29,0,76,0,46,0,80,0\n86,0,74,0,78,0,35,0,84,0,6,0\n70,0,23,0,63,0,44,0,65,0,55,0\n95,0,59,0,73,0,43,0,57,0,5,0\n24,0,69,0,53,0,20,0,28,0,47,0\n88,0,11,0,97,0,91,0,21,0,67,0\n50,0,77,0,41,0,92,0,89,0,79,0\n15,0,93,0,3,0,4,0,75,0,2,0\n13,0,10,0,76,0,19,0,7,0,51,0\n39,0,49,0,82,0,22,0,42,0,17,0\n46,0,48,0,31,0,8,0,54,0,74,0\n34,0,5,0,18,0,60,0,14,0,33,0\n64,0,95,0,52,0,55,0,1,0,20,0\n91,0,40,0,16,0,85,0,69,0,80,0\n53,0,6,0,32,0,50,0,37,0,36,0\n88,0,86,0,26,0,45,0,58,0,70,0\n38,0,35,0,11,0,90,0,63,0,89,0\n61,0,62,0,83,0,57,0,96,0,68,0\n59,0,67,0,65,0,78,0,94,0,92,0\n28,0,81,0,21,0,71,0,84,0,73,0\n72,0,23,0,97,0,43,0,25,0,27,0\n12,0,29,0,87,0,66,0,30,0,47,0\n44,0,56,0,74,0,24,0,9,0,37,0\n10,0,22,0,1,0,69,0,93,0,91,0\n31,0,11,0,79,0,46,0,55,0,14,0\n38,0,42,0,20,0,68,0,51,0,80,0\n78,0,83,0,2,0,33,0,95,0,49,0\n85,0,63,0,53,0,7,0,81,0,82,0\n13,0,3,0,97,0,35,0,45,0,65,0\n87,0,64,0,84,0,34,0,96,0,25,0\n24,0,29,0,50,0,18,0,72,0,59,0\n23,0,19,0,39,0,8,0,73,0,40,0\n17,0,27,0,5,0,32,0,77,0,58,0\n26,0,61,0,67,0,36,0,15,0,54,0\n57,0,70,0,89,0,6,0,12,0,4,0\n43,0,60,0,9,0,28,0,75,0,66,0\n47,0,71,0,56,0,86,0,90,0,62,0\n44,0,92,0,48,0,88,0,30,0,52,0\n21,0,41,0,94,0,76,0,16,0,64,0\n31,0,50,0,80,0,81,0,23,0,10,0\n68,0,49,0,19,0,5,0,55,0,84,0\n17,0,26,0,25,0,13,0,11,0,46,0\n72,0,89,0,7,0,95,0,61,0,74,0\n67,0,51,0,58,0,57,0,18,0,87,0\n3,0,39,0,54,0,28,0,27,0,86,0\n8,0,43,0,90,0,6,0,2,0,29,0\n97,0,1,0,4,0,44,0,94,0,47,0\n35,0,36,0,52,0,85,0,73,0,33,0\n69,0,77,0,60,0,12,0,62,0,53,0\n59,0,76,0,96,0,32,0,66,0,22,0\n93,0,65,0,88,0,40,0,38,0,41,0\n20,0,63,0,83,0,48,0,21,0,42,0\n14,0,78,0,30,0,15,0,16,0,56,0\n37,0,45,0,75,0,82,0,34,0,92,0\n71,0,9,0,79,0,24,0,70,0,91,0\n13,0,31,0,95,0,6,0,27,0,49,0\n94,0,23,0,85,0,12,0,51,0,54,0\n7,0,80,0,66,0,26,0,2,0,97,0\n38,0,58,0,96,0,69,0,29,0,44,0\n52,0,86,0,61,0,46,0,50,0,93,0\n18,0,41,0,43,0,78,0,11,0,20,0\n28,0,92,0,33,0,42,0,76,0,62,0\n81,0,22,0,35,0,56,0,57,0,25,0\n77,0,67,0,4,0,30,0,19,0,45,0\n84,0,16,0,24,0,63,0,1,0,60,0\n90,0,5,0,82,0,3,0,36,0,70,0\n55,0,40,0,71,0,74,0,10,0,53,0\n73,0,68,0,32,0,79,0,75,0,64,0\n88,0,15,0,47,0,17,0,59,0,37,0\n48,0,39,0,72,0,34,0,91,0,14,0\n89,0,8,0,65,0,9,0,21,0,87,0\n52,0,22,0,11,0,83,0,7,0,54,0\n81,0,25,0,41,0,86,0,42,0,67,0\n49,0,36,0,93,0,18,0,95,0,97,0\n44,0,45,0,2,0,85,0,5,0,31,0\n70,0,33,0,94,0,69,0,43,0,74,0\n75,0,84,0,12,0,56,0,76,0,58,0\n57,0,53,0,80,0,19,0,72,0,17,0\n96,0,27,0,1,0,8,0,35,0,55,0\n87,0,10,0,62,0,59,0,4,0,82,0\n92,0,61,0,39,0,38,0,24,0,21,0\n29,0,16,0,77,0,13,0,23,0,9,0\n91,0,32,0,30,0,60,0,20,0,3,0\n68,0,66,0,83,0,88,0,50,0,14,0\n48,0,51,0,37,0,65,0,90,0,73,0\n47,0,64,0,46,0,15,0,89,0,6,0\n63,0,40,0,79,0,28,0,26,0,34,0\n71,0,22,0,5,0,78,0,43,0,67,0\n56,0,53,0,42,0,97,0,70,0,96,0\n75,0,69,0,86,0,13,0,36,0,8,0\n81,0,2,0,30,0,52,0,94,0,24,0\n84,0,41,0,80,0,87,0,33,0,45,0\n88,0,12,0,92,0,55,0,39,0,31,0\n6,0,62,0,19,0,21,0,25,0,3,0\n95,0,77,0,44,0,54,0,66,0,35,0\n51,0,59,0,89,0,71,0,93,0,83,0\n38,0,74,0,23,0,57,0,79,0,60,0\n90,0,46,0,78,0,40,0,72,0,4,0\n91,0,26,0,27,0,65,0,17,0,29,0\n20,0,9,0,73,0,15,0,82,0,50,0\n61,0,58,0,10,0,85,0,37,0,64,0\n68,0,28,0,18,0,7,0,48,0,1,0\n11,0,34,0,16,0,32,0,49,0,47,0\n76,0,14,0,70,0,63,0,25,0,52,0\n44,0,87,0,36,0,83,0,12,0,79,0\n2,0,46,0,60,0,71,0,88,0,51,0\n89,0,33,0,3,0,31,0,26,0,22,0\n95,0,42,0,84,0,29,0,62,0,73,0\n4,0,64,0,5,0,54,0,53,0,13,0\n85,0,67,0,66,0,56,0,1,0,72,0\n6,0,11,0,39,0,75,0,30,0,96,0\n92,0,58,0,14,0,47,0,80,0,74,0\n23,0,28,0,45,0,61,0,91,0,78,0\n35,0,69,0,9,0,59,0,41,0,7,0\n34,0,90,0,93,0,27,0,20,0,81,0\n8,0,68,0,24,0,10,0,97,0,77,0\n55,0,94,0,57,0,32,0,48,0,82,0\n16,0,19,0,37,0,38,0,86,0,18,0\n43,0,63,0,21,0,17,0,50,0,40,0\n65,0,76,0,25,0,15,0,49,0,53,0\n3,0,95,0,92,0,51,0,11,0,56,0\n73,0,47,0,60,0,7,0,31,0,70,0\n66,0,36,0,89,0,39,0,84,0,52,0\n78,0,58,0,54,0,34,0,24,0,42,0\n59,0,12,0,91,0,8,0,41,0,14,0\n28,0,74,0,96,0,77,0,2,0,85,0\n10,0,50,0,57,0,16,0,75,0,44,0\n29,0,22,0,20,0,79,0,88,0,4,0\n55,0,80,0,30,0,90,0,61,0,13,0\n35,0,19,0,26,0,48,0,49,0,87,0\n69,0,27,0,64,0,63,0,82,0,67,0\n94,0,17,0,43,0,45,0,68,0,86,0\n93,0,76,0,21,0,23,0,5,0,37,0\n83,0,18,0,6,0,72,0,71,0,65,0\n46,0,33,0,1,0,38,0,9,0,32,0\n62,0,15,0,40,0,81,0,97,0,58,0\n4,0,50,0,74,0,11,0,28,0,12,0\n55,0,2,0,25,0,47,0,91,0,36,0\n70,0,16,0,39,0,67,0,87,0,95,0\n60,0,42,0,90,0,44,0,26,0,59,0\n69,0,82,0,19,0,78,0,31,0,56,0\n54,0,49,0,41,0,10,0,63,0,37,0\n27,0,94,0,83,0,84,0,38,0,53,0\n17,0,18,0,30,0,64,0,35,0,23,0\n7,0,24,0,46,0,96,0,93,0,45,0\n65,0,1,0,80,0,89,0,88,0,75,0\n9,0,3,0,76,0,81,0,72,0,68,0\n61,0,22,0,97,0,6,0,14,0,73,0\n66,0,20,0,8,0,57,0,71,0,33,0\n62,0,79,0,13,0,48,0,85,0,43,0\n40,0,5,0,32,0,86,0,92,0,29,0\n15,0,51,0,52,0,77,0,21,0,34,0\n"
  },
  {
    "path": "schedules/97_13.csv",
    "content": "73,0,30,0,38,0,79,0,87,0,24,0\n57,0,63,0,54,0,89,0,3,0,11,0\n27,0,55,0,37,0,4,0,40,0,12,0\n42,0,71,0,91,0,93,0,62,0,65,0\n69,0,32,0,83,0,68,0,14,0,9,0\n44,0,36,0,8,0,35,0,56,0,10,0\n66,0,77,0,76,0,67,0,29,0,25,0\n88,0,53,0,85,0,46,0,33,0,41,0\n34,0,15,0,92,0,1,0,18,0,28,0\n58,0,23,0,26,0,19,0,17,0,70,0\n5,0,45,0,75,0,82,0,21,0,52,0\n61,0,22,0,81,0,7,0,20,0,72,0\n94,0,2,0,50,0,31,0,49,0,6,0\n84,0,59,0,78,0,97,0,60,0,80,0\n86,0,47,0,13,0,64,0,90,0,96,0\n48,0,16,0,95,0,39,0,51,0,74,0\n43,0,37,0,46,0,71,0,30,0,32,0\n65,0,33,0,14,0,23,0,73,0,67,0\n70,0,21,0,89,0,25,0,15,0,38,0\n79,0,35,0,42,0,19,0,22,0,75,0\n94,0,12,0,93,0,58,0,36,0,87,0\n50,0,31,0,97,0,92,0,85,0,81,0\n6,0,44,0,60,0,4,0,11,0,76,0\n18,0,40,0,7,0,95,0,83,0,49,0\n29,0,51,0,53,0,54,0,43,0,72,0\n59,0,57,0,17,0,13,0,28,0,45,0\n69,0,62,0,52,0,66,0,61,0,55,0\n48,0,41,0,10,0,78,0,96,0,63,0\n5,0,68,0,3,0,2,0,90,0,16,0\n91,0,86,0,34,0,8,0,26,0,9,0\n24,0,20,0,80,0,27,0,56,0,74,0\n47,0,82,0,39,0,84,0,88,0,1,0\n64,0,79,0,19,0,77,0,43,0,95,0\n40,1,76,0,13,0,89,1,33,0,94,0\n73,1,7,0,52,0,50,1,53,0,12,0\n93,1,81,0,41,0,30,0,17,0,6,0\n49,0,69,0,87,0,16,0,70,0,42,0\n8,0,68,0,90,0,63,0,29,0,37,0\n83,0,34,0,67,0,62,0,35,0,27,0\n25,0,72,0,55,0,86,0,92,0,32,0\n64,0,61,0,46,0,59,0,28,0,44,0\n22,0,23,0,5,0,91,0,74,0,18,0\n75,0,84,0,31,0,96,0,15,0,14,0\n4,0,2,0,57,0,21,0,1,0,10,0\n60,0,56,0,65,0,47,0,51,0,26,0\n66,0,48,0,11,0,85,0,45,0,24,0\n77,0,80,0,88,0,36,0,3,0,71,0\n9,0,54,0,58,0,82,0,20,0,38,0\n39,0,69,0,13,0,97,0,78,0,34,0\n43,0,83,0,93,0,70,0,8,0,33,0\n15,0,49,0,76,0,32,0,79,0,27,0\n17,0,10,0,7,0,62,0,86,0,89,0\n5,0,72,0,26,0,73,0,4,0,84,0\n1,0,95,0,91,0,85,0,60,0,12,0\n44,0,87,0,96,0,25,0,52,0,40,0\n47,0,29,0,71,0,50,0,58,0,11,0\n18,0,54,0,41,0,42,0,9,0,80,0\n48,0,67,0,22,0,46,0,19,0,82,0\n55,0,16,0,28,0,77,0,81,0,65,0\n24,0,36,0,88,0,37,0,51,0,59,0\n66,0,90,0,56,0,21,0,31,0,78,0\n53,0,68,0,94,0,57,0,30,0,92,0\n45,0,3,0,97,0,20,0,23,0,64,0\n35,0,63,0,14,0,6,0,39,0,61,0\n74,0,38,0,93,0,2,0,75,0,29,0\n26,0,10,0,40,0,43,0,42,0,32,0\n65,0,82,0,70,0,44,0,86,0,27,0\n19,0,91,0,15,0,41,0,36,0,55,0\n37,0,76,0,81,0,69,0,73,0,58,0\n21,0,59,0,34,0,87,0,77,0,50,0\n95,0,22,0,68,0,96,0,66,0,54,0\n9,0,31,0,63,0,17,0,33,0,60,0\n80,0,74,0,35,0,72,0,49,0,30,0\n7,0,1,0,78,0,38,0,8,0,23,0\n2,0,88,0,12,0,45,0,61,0,92,0\n39,0,20,0,90,0,62,0,51,0,57,0\n16,0,6,0,84,0,24,0,67,0,13,0\n14,0,79,0,97,0,46,0,3,0,47,0\n4,0,52,0,83,0,64,0,11,0,94,0\n85,0,5,0,28,0,25,0,75,0,56,0\n48,0,89,0,18,0,53,0,71,0,44,0\n60,0,36,0,7,0,96,0,65,0,43,0\n72,0,66,0,37,0,17,0,42,0,50,0\n21,0,40,0,15,0,23,0,63,0,61,0\n67,0,32,0,91,0,81,0,2,0,87,0\n88,0,57,0,49,0,62,0,9,0,29,0\n68,0,77,0,51,0,4,0,78,0,33,0\n80,0,76,0,39,0,83,0,92,0,46,0\n20,0,12,0,73,0,48,0,34,0,75,0\n11,0,95,0,41,0,14,0,59,0,86,0\n53,0,27,0,3,0,13,0,8,0,22,0\n5,0,47,0,84,0,69,0,94,0,28,0\n52,0,24,0,19,0,1,0,93,0,31,0\n64,0,54,0,30,0,16,0,10,0,85,0\n35,0,82,0,97,0,25,0,90,0,26,0\n38,0,70,0,45,0,56,0,71,0,18,0\n6,0,79,0,74,0,55,0,58,0,89,0\n46,0,49,0,73,0,77,0,92,0,63,0\n75,0,44,0,51,0,7,0,50,0,9,0\n62,0,8,0,59,0,81,0,84,0,12,0\n41,0,66,0,57,0,5,0,87,0,32,0\n17,0,64,0,36,0,42,0,29,0,27,0\n28,0,54,0,21,0,93,0,35,0,24,0\n16,0,71,0,94,0,20,0,60,0,25,0\n90,0,79,0,72,0,10,0,83,0,91,0\n61,0,58,0,4,0,31,0,18,0,43,0\n19,0,74,0,86,0,69,0,40,0,53,0\n23,0,76,0,2,0,82,0,48,0,55,0\n30,0,78,0,45,0,15,0,22,0,3,0\n11,0,13,0,65,0,70,0,1,0,80,0\n26,0,85,0,96,0,89,0,14,0,37,0\n97,0,67,0,56,0,52,0,68,0,88,0\n33,0,34,0,95,0,47,0,6,0,38,0\n39,0,4,0,50,0,8,0,32,0,41,0\n62,0,25,0,46,0,93,0,54,0,60,0\n84,0,18,0,63,0,19,0,76,0,51,0\n77,0,24,0,83,0,57,0,5,0,44,0\n71,0,31,0,22,0,86,0,10,0,23,0\n72,0,96,0,69,0,26,0,11,0,2,0\n81,0,82,0,15,0,56,0,49,0,12,0\n65,0,30,0,88,0,38,0,90,0,40,0\n53,0,78,0,70,0,75,0,47,0,55,0\n14,0,29,0,16,0,45,0,94,0,34,0\n43,0,87,0,6,0,28,0,80,0,68,0\n39,0,85,0,17,0,21,0,79,0,20,0\n58,0,95,0,92,0,36,0,52,0,13,0\n33,0,73,0,1,0,74,0,42,0,3,0\n9,0,61,0,27,0,37,0,97,0,48,0\n67,0,66,0,64,0,91,0,7,0,89,0\n35,0,65,0,51,0,59,0,31,0,69,0\n40,0,56,0,46,0,72,0,34,0,2,0\n44,0,63,0,80,0,22,0,93,0,26,0\n14,0,11,0,38,0,12,0,19,0,16,0\n24,0,62,0,4,0,23,0,53,0,79,0\n47,0,25,0,85,0,83,0,74,0,68,0\n20,0,28,0,27,0,88,0,50,0,95,0\n36,0,9,0,73,0,66,0,21,0,6,0\n5,0,15,0,33,0,59,0,10,0,58,0\n3,0,52,0,49,0,43,0,91,0,39,0\n42,0,45,0,86,0,76,0,30,0,67,0\n75,0,1,0,41,0,61,0,94,0,90,0\n96,0,8,0,55,0,71,0,17,0,97,0\n35,0,81,0,60,0,37,0,57,0,18,0\n64,0,89,0,92,0,87,0,82,0,78,0\n54,0,7,0,48,0,77,0,70,0,84,0\n13,0,32,0,19,0,29,0,21,0,74,0\n47,0,93,0,59,0,26,0,49,0,20,0\n63,0,3,0,67,0,58,0,72,0,85,0\n95,0,65,0,9,0,5,0,4,0,53,0\n79,0,8,0,66,0,16,0,40,0,80,0\n36,0,37,0,75,0,1,0,62,0,45,0\n71,0,33,0,92,0,64,0,35,0,41,0\n10,0,57,0,70,0,61,0,84,0,34,0\n54,0,87,0,13,0,76,0,56,0,14,0\n77,0,90,0,23,0,52,0,81,0,6,0\n25,0,78,0,43,0,27,0,11,0,73,0\n48,0,50,0,60,0,15,0,86,0,68,0\n69,0,46,0,12,0,17,0,18,0,24,0\n30,0,29,0,28,0,91,0,82,0,31,0\n22,0,2,0,51,0,97,0,83,0,89,0\n55,0,94,0,38,0,44,0,42,0,39,0\n32,0,88,0,93,0,7,0,96,0,34,0\n45,0,47,0,81,0,4,0,41,0,63,0\n27,0,92,0,75,0,59,0,23,0,54,0\n40,0,14,0,20,0,70,0,36,0,5,0\n80,0,10,0,25,0,37,0,95,0,69,0\n52,0,50,0,79,0,78,0,57,0,65,0\n49,0,89,0,90,0,19,0,33,0,48,0\n84,0,86,0,46,0,66,0,38,0,35,0\n71,0,82,0,61,0,51,0,13,0,85,0\n31,0,26,0,42,0,83,0,88,0,6,0\n60,0,2,0,8,0,24,0,28,0,58,0\n74,0,15,0,43,0,67,0,44,0,17,0\n12,0,64,0,39,0,9,0,72,0,22,0\n21,0,18,0,11,0,68,0,30,0,62,0\n56,0,96,0,91,0,94,0,77,0,73,0\n32,0,16,0,76,0,1,0,53,0,97,0\n7,0,87,0,55,0,3,0,29,0,35,0\n13,0,71,0,4,0,49,0,75,0,66,0\n78,0,51,0,46,0,40,0,5,0,81,0\n93,0,23,0,85,0,86,0,57,0,43,0\n59,0,42,0,20,0,52,0,63,0,2,0\n38,0,22,0,60,0,69,0,67,0,92,0\n72,0,94,0,70,0,95,0,24,0,82,0\n80,0,62,0,21,0,16,0,96,0,33,0\n32,0,97,0,6,0,54,0,12,0,65,0\n9,0,3,0,10,0,19,0,50,0,25,0\n30,0,47,0,89,0,61,0,8,0,77,0\n26,0,28,0,74,0,7,0,41,0,76,0\n73,0,55,0,14,0,64,0,18,0,88,0\n58,0,84,0,27,0,68,0,45,0,91,0\n29,0,17,0,1,0,56,0,83,0,48,0\n31,0,90,0,44,0,79,0,36,0,34,0\n11,0,53,0,87,0,15,0,37,0,39,0\n21,0,94,0,86,0,51,0,81,0,3,0\n50,0,43,0,63,0,97,0,38,0,5,0\n19,0,4,0,59,0,85,0,30,0,7,0\n10,0,93,0,82,0,18,0,66,0,14,0\n16,0,74,0,58,0,35,0,88,0,78,0\n17,0,61,0,2,0,73,0,80,0,95,0\n24,0,34,0,68,0,55,0,76,0,65,0\n92,0,40,0,6,0,62,0,47,0,48,0\n72,0,89,0,41,0,60,0,27,0,52,0\n25,0,42,0,77,0,12,0,13,0,31,0\n26,0,79,0,1,0,67,0,71,0,54,0\n83,0,53,0,28,0,23,0,49,0,36,0\n37,0,87,0,91,0,20,0,33,0,44,0\n11,0,56,0,32,0,22,0,90,0,84,0\n57,0,8,0,69,0,64,0,15,0,75,0\n96,0,70,0,29,0,39,0,9,0,46,0\n45,0,89,0,50,0,40,0,73,0,93,0\n"
  },
  {
    "path": "schedules/97_14.csv",
    "content": "48,0,92,0,30,0,60,0,66,0,2,0\n89,0,42,0,41,0,23,0,85,0,31,0\n18,0,55,0,37,0,74,0,71,0,7,0\n68,0,56,0,46,0,97,0,96,0,80,0\n62,0,61,0,75,0,22,0,91,0,43,0\n21,0,50,0,29,0,20,0,35,0,65,0\n90,0,44,0,84,0,12,0,79,0,32,0\n34,0,11,0,28,0,13,0,53,0,10,0\n27,0,16,0,78,0,95,0,6,0,88,0\n39,0,47,0,9,0,26,0,94,0,58,0\n93,0,4,0,77,0,5,0,24,0,82,0\n64,0,59,0,15,0,63,0,14,0,49,0\n45,0,81,0,38,0,73,0,1,0,76,0\n25,0,33,0,51,0,40,0,57,0,67,0\n3,0,8,0,70,0,36,0,86,0,52,0\n87,0,19,0,72,0,83,0,54,0,17,0\n69,0,97,0,18,0,35,0,34,0,23,0\n95,0,62,0,16,0,89,0,26,0,46,0\n28,0,92,0,53,0,94,0,85,0,61,0\n30,0,6,0,44,0,5,0,80,0,11,0\n9,0,50,0,71,0,14,0,81,0,91,0\n79,0,76,0,47,0,68,0,48,0,78,0\n7,0,77,0,64,0,20,0,27,0,36,0\n22,0,82,0,32,0,17,0,8,0,45,0\n31,0,21,0,55,0,33,0,60,0,15,0\n4,0,90,0,58,0,2,0,41,0,54,0\n65,0,74,0,83,0,49,0,3,0,10,0\n25,0,93,0,96,0,19,0,37,0,86,0\n24,0,52,0,1,0,51,0,43,0,72,0\n84,0,75,0,57,0,13,0,29,0,63,0\n70,0,88,0,40,0,73,0,69,0,12,0\n38,0,87,0,66,0,39,0,67,0,56,0\n42,0,55,0,35,0,59,0,92,0,95,0\n61,1,71,0,15,0,20,1,82,0,16,0\n80,1,21,0,85,0,11,1,36,0,77,0\n33,0,54,0,8,0,97,0,47,0,10,0\n64,0,51,0,60,0,89,0,78,0,65,0\n3,0,48,0,7,0,72,0,62,0,13,0\n43,0,93,0,94,0,90,0,88,0,74,0\n63,0,91,0,5,0,56,0,18,0,2,0\n39,0,14,0,23,0,53,0,96,0,32,0\n79,0,59,0,73,0,24,0,30,0,83,0\n6,0,58,0,46,0,87,0,34,0,25,0\n28,0,29,0,38,0,69,0,26,0,42,0\n40,0,52,0,49,0,44,0,50,0,45,0\n84,0,67,0,19,0,4,0,81,0,76,0\n17,0,70,0,37,0,31,0,75,0,66,0\n27,0,86,0,12,0,57,0,9,0,68,0\n1,0,41,0,93,0,22,0,39,0,80,0\n77,0,74,0,56,0,47,0,72,0,15,0\n65,0,61,0,54,0,25,0,95,0,24,0\n88,0,42,0,38,0,33,0,64,0,5,0\n92,0,8,0,71,0,21,0,51,0,63,0\n96,0,45,0,16,0,4,0,7,0,87,0\n14,0,46,0,84,0,40,0,85,0,90,0\n78,0,32,0,35,0,94,0,13,0,36,0\n17,0,34,0,86,0,52,0,12,0,67,0\n83,0,31,0,57,0,48,0,22,0,26,0\n6,0,75,0,97,0,1,0,89,0,69,0\n73,0,49,0,20,0,60,0,19,0,9,0\n2,0,44,0,23,0,27,0,28,0,55,0\n91,0,11,0,37,0,76,0,3,0,68,0\n62,0,53,0,50,0,70,0,30,0,58,0\n59,0,10,0,81,0,43,0,18,0,82,0\n79,0,41,0,94,0,66,0,29,0,25,0\n35,0,26,0,17,0,93,0,14,0,74,0\n45,0,69,0,36,0,51,0,48,0,15,0\n73,0,88,0,67,0,47,0,46,0,21,0\n39,0,52,0,95,0,85,0,63,0,77,0\n32,0,2,0,75,0,87,0,64,0,68,0\n16,0,33,0,13,0,92,0,1,0,9,0\n96,0,27,0,72,0,84,0,89,0,5,0\n53,0,79,0,55,0,97,0,49,0,43,0\n4,0,83,0,50,0,78,0,12,0,37,0\n29,0,70,0,54,0,59,0,7,0,44,0\n80,0,81,0,42,0,34,0,40,0,91,0\n10,0,62,0,11,0,31,0,41,0,56,0\n61,0,57,0,8,0,30,0,3,0,23,0\n86,0,6,0,38,0,60,0,71,0,24,0\n76,0,20,0,90,0,66,0,82,0,58,0\n65,0,19,0,28,0,22,0,18,0,75,0\n17,0,79,0,88,0,51,0,9,0,36,0\n12,0,53,0,46,0,59,0,48,0,1,0\n77,0,80,0,16,0,49,0,78,0,70,0\n84,0,72,0,50,0,92,0,41,0,55,0\n93,0,10,0,73,0,89,0,95,0,4,0\n94,0,52,0,7,0,2,0,11,0,38,0\n82,0,63,0,37,0,29,0,86,0,40,0\n22,0,68,0,74,0,20,0,23,0,54,0\n61,0,19,0,91,0,47,0,35,0,6,0\n65,0,90,0,26,0,33,0,30,0,81,0\n31,0,58,0,87,0,8,0,69,0,43,0\n71,0,45,0,67,0,27,0,83,0,56,0\n25,0,13,0,39,0,42,0,44,0,18,0\n57,0,60,0,97,0,5,0,62,0,32,0\n96,0,34,0,21,0,85,0,64,0,76,0\n24,0,15,0,14,0,66,0,28,0,3,0\n38,0,23,0,63,0,46,0,37,0,20,0\n11,0,4,0,40,0,59,0,72,0,75,0\n55,0,12,0,29,0,91,0,93,0,47,0\n87,0,77,0,10,0,84,0,94,0,71,0\n27,0,18,0,92,0,31,0,26,0,36,0\n83,0,62,0,90,0,17,0,13,0,6,0\n67,0,95,0,60,0,50,0,8,0,64,0\n85,0,1,0,45,0,19,0,3,0,79,0\n97,0,21,0,2,0,39,0,81,0,70,0\n14,0,69,0,68,0,52,0,16,0,65,0\n15,0,53,0,89,0,76,0,9,0,44,0\n34,0,66,0,51,0,74,0,61,0,5,0\n33,0,78,0,43,0,41,0,73,0,86,0\n35,0,7,0,58,0,57,0,28,0,56,0\n32,0,48,0,80,0,82,0,96,0,54,0\n24,0,49,0,22,0,30,0,88,0,25,0\n42,0,60,0,47,0,87,0,3,0,27,0\n64,0,19,0,23,0,92,0,90,0,11,0\n59,0,85,0,69,0,13,0,50,0,67,0\n76,0,18,0,83,0,52,0,93,0,46,0\n66,0,1,0,44,0,62,0,78,0,71,0\n72,0,20,0,89,0,53,0,81,0,57,0\n38,0,55,0,43,0,32,0,40,0,21,0\n35,0,24,0,75,0,41,0,12,0,16,0\n88,0,91,0,82,0,7,0,97,0,84,0\n54,0,6,0,45,0,37,0,94,0,33,0\n74,0,9,0,31,0,63,0,80,0,30,0\n77,0,73,0,96,0,17,0,42,0,61,0\n65,0,5,0,39,0,48,0,28,0,79,0\n34,0,49,0,26,0,8,0,56,0,4,0\n15,0,36,0,25,0,29,0,2,0,10,0\n95,0,22,0,51,0,58,0,14,0,86,0\n68,0,84,0,43,0,70,0,35,0,71,0\n83,0,16,0,94,0,55,0,64,0,81,0\n60,0,13,0,7,0,76,0,41,0,63,0\n12,0,96,0,11,0,33,0,18,0,66,0\n52,0,88,0,89,0,54,0,28,0,32,0\n87,0,85,0,37,0,73,0,44,0,57,0\n29,0,4,0,45,0,46,0,17,0,92,0\n30,0,97,0,36,0,95,0,40,0,20,0\n51,0,82,0,69,0,22,0,47,0,56,0\n39,0,31,0,3,0,34,0,50,0,6,0\n67,0,68,0,49,0,72,0,61,0,93,0\n78,0,5,0,59,0,25,0,21,0,58,0\n27,0,24,0,8,0,1,0,74,0,91,0\n65,0,53,0,2,0,19,0,38,0,80,0\n77,0,86,0,15,0,79,0,26,0,62,0\n70,0,9,0,48,0,10,0,42,0,90,0\n75,0,14,0,83,0,23,0,60,0,88,0\n51,0,44,0,3,0,20,0,18,0,31,0\n36,0,33,0,46,0,39,0,82,0,61,0\n73,0,94,0,17,0,68,0,34,0,63,0\n74,0,6,0,59,0,96,0,57,0,41,0\n64,0,97,0,71,0,25,0,47,0,52,0\n2,0,8,0,78,0,53,0,93,0,56,0\n9,0,32,0,87,0,11,0,29,0,24,0\n50,0,79,0,37,0,22,0,16,0,42,0\n69,0,62,0,86,0,21,0,49,0,84,0\n13,0,35,0,27,0,4,0,15,0,38,0\n5,0,14,0,54,0,92,0,76,0,43,0\n10,0,23,0,58,0,81,0,12,0,1,0\n48,0,67,0,75,0,30,0,77,0,55,0\n95,0,28,0,72,0,80,0,45,0,90,0\n85,0,89,0,66,0,91,0,7,0,65,0\n70,0,26,0,41,0,19,0,40,0,51,0\n17,0,2,0,57,0,46,0,50,0,24,0\n44,0,74,0,36,0,97,0,16,0,38,0\n60,0,21,0,69,0,79,0,93,0,54,0\n32,0,10,0,56,0,6,0,76,0,42,0\n43,0,3,0,4,0,77,0,25,0,9,0\n33,0,63,0,90,0,27,0,22,0,53,0\n30,0,72,0,29,0,71,0,34,0,14,0\n40,0,47,0,28,0,83,0,1,0,20,0\n94,0,5,0,31,0,12,0,82,0,19,0\n85,0,8,0,35,0,55,0,88,0,62,0\n65,0,70,0,11,0,15,0,67,0,96,0\n92,0,75,0,81,0,78,0,86,0,7,0\n23,0,48,0,95,0,91,0,87,0,49,0\n61,0,18,0,68,0,45,0,58,0,89,0\n66,0,26,0,13,0,73,0,80,0,64,0\n39,0,37,0,84,0,52,0,59,0,60,0\n4,0,57,0,1,0,14,0,94,0,42,0\n38,0,76,0,25,0,8,0,12,0,62,0\n96,0,44,0,63,0,67,0,43,0,83,0\n31,0,81,0,79,0,35,0,46,0,28,0\n56,0,55,0,90,0,65,0,36,0,24,0\n58,0,97,0,85,0,48,0,27,0,29,0\n86,0,88,0,50,0,18,0,80,0,15,0\n91,0,64,0,41,0,53,0,82,0,17,0\n49,0,13,0,47,0,2,0,89,0,37,0\n66,0,92,0,6,0,68,0,77,0,40,0\n74,0,32,0,33,0,95,0,69,0,19,0\n26,0,54,0,71,0,75,0,11,0,3,0\n23,0,61,0,7,0,84,0,9,0,93,0\n52,0,22,0,30,0,21,0,78,0,87,0\n73,0,16,0,72,0,51,0,39,0,10,0\n5,0,20,0,34,0,45,0,70,0,59,0\n1,0,67,0,29,0,49,0,31,0,90,0\n60,0,81,0,44,0,68,0,88,0,96,0\n36,0,43,0,47,0,57,0,66,0,50,0\n46,0,41,0,77,0,65,0,32,0,8,0\n71,0,80,0,79,0,23,0,62,0,4,0\n12,0,92,0,7,0,6,0,15,0,22,0\n63,0,11,0,16,0,28,0,58,0,93,0\n51,0,73,0,53,0,54,0,35,0,84,0\n55,0,76,0,39,0,30,0,27,0,69,0\n48,0,40,0,18,0,94,0,24,0,64,0\n56,0,33,0,59,0,3,0,17,0,89,0\n83,0,95,0,82,0,70,0,34,0,38,0\n20,0,10,0,9,0,52,0,5,0,75,0\n14,0,97,0,19,0,61,0,13,0,87,0\n78,0,25,0,26,0,91,0,85,0,72,0\n45,0,2,0,42,0,74,0,86,0,21,0\n37,0,36,0,28,0,41,0,67,0,62,0\n49,0,81,0,46,0,11,0,51,0,27,0\n65,0,76,0,59,0,88,0,31,0,71,0\n80,0,89,0,12,0,39,0,43,0,29,0\n20,0,48,0,93,0,6,0,84,0,33,0\n52,0,56,0,70,0,23,0,13,0,79,0\n18,0,57,0,34,0,16,0,60,0,90,0\n82,0,92,0,25,0,73,0,75,0,74,0\n61,0,64,0,69,0,37,0,10,0,72,0\n94,0,19,0,66,0,21,0,95,0,44,0\n40,0,3,0,22,0,2,0,96,0,35,0\n30,0,47,0,86,0,85,0,4,0,32,0\n91,0,58,0,54,0,14,0,38,0,77,0\n63,0,24,0,9,0,45,0,78,0,97,0\n5,0,87,0,1,0,7,0,50,0,26,0\n68,0,15,0,42,0,83,0,8,0,53,0\n17,0,20,0,80,0,55,0,61,0,11,0\n"
  },
  {
    "path": "schedules/97_2.csv",
    "content": "9,0,62,0,37,0,17,0,31,0,90,0\n63,0,56,0,82,0,81,0,45,0,2,0\n46,0,42,0,19,0,40,0,47,0,15,0\n8,0,54,0,33,0,70,0,24,0,43,0\n32,0,91,0,28,0,60,0,69,0,94,0\n3,0,64,0,18,0,11,0,48,0,77,0\n61,0,44,0,87,0,29,0,75,0,89,0\n68,0,51,0,76,0,66,0,84,0,74,0\n16,0,72,0,85,0,38,0,57,0,1,0\n39,0,96,0,4,0,30,0,12,0,26,0\n97,0,78,0,53,0,93,0,95,0,79,0\n35,0,67,0,52,0,20,0,34,0,10,0\n58,0,14,0,65,0,27,0,5,0,73,0\n88,0,49,0,83,0,59,0,80,0,92,0\n7,0,50,0,41,0,6,0,36,0,71,0\n25,0,13,0,22,0,55,0,21,0,23,0\n86,0,19,0,11,0,75,0,57,0,91,0\n62,0,12,0,16,0,87,0,69,0,68,0\n51,0,32,0,77,0,46,0,44,0,43,0\n93,0,10,0,74,0,42,0,54,0,63,0\n14,0,2,0,24,0,34,0,39,0,3,0\n38,0,30,0,27,0,17,0,81,0,48,0\n80,0,45,0,20,0,65,0,41,0,79,0\n73,0,21,0,66,0,89,0,9,0,60,0\n92,0,40,0,52,0,64,0,72,0,33,0\n29,0,7,0,94,0,96,0,88,0,35,0\n6,0,26,0,85,0,22,0,83,0,84,0\n5,0,70,0,4,0,86,0,50,0,97,0\n15,0,1,0,25,0,49,0,67,0,90,0\n23,0,36,0,31,0,28,0,56,0,53,0\n71,0,55,0,76,0,78,0,47,0,61,0\n95,0,58,0,18,0,8,0,59,0,13,0\n82,0,42,1,54,1,37,0,87,1,41,1\n"
  },
  {
    "path": "schedules/97_3.csv",
    "content": "88,0,85,0,58,0,64,0,2,0,46,0\n27,0,42,0,43,0,49,0,74,0,54,0\n51,0,90,0,22,0,15,0,30,0,73,0\n39,0,76,0,53,0,28,0,11,0,37,0\n92,0,84,0,59,0,16,0,77,0,38,0\n36,0,33,0,56,0,40,0,94,0,61,0\n48,0,9,0,69,0,50,0,5,0,52,0\n86,0,71,0,17,0,23,0,8,0,44,0\n62,0,66,0,34,0,93,0,32,0,81,0\n89,0,96,0,57,0,4,0,31,0,70,0\n47,0,41,0,60,0,97,0,12,0,20,0\n25,0,6,0,3,0,19,0,83,0,7,0\n63,0,75,0,72,0,1,0,91,0,45,0\n21,0,65,0,35,0,67,0,78,0,24,0\n55,0,14,0,26,0,10,0,87,0,79,0\n95,0,13,0,68,0,82,0,80,0,29,0\n76,0,8,0,27,0,18,0,22,0,9,0\n17,1,81,0,77,0,46,1,36,0,39,0\n41,1,52,0,16,0,11,0,58,0,96,0\n5,0,30,0,62,0,25,0,47,0,44,0\n15,0,75,0,59,0,66,0,69,0,94,0\n20,0,37,0,1,0,42,0,24,0,90,0\n23,0,93,0,14,0,88,0,21,0,70,0\n4,0,82,0,64,0,55,0,92,0,40,0\n54,0,29,0,32,0,86,0,79,0,19,0\n18,0,31,0,49,0,7,0,84,0,45,0\n2,0,35,0,34,0,97,0,3,0,68,0\n6,0,60,0,33,0,43,0,72,0,89,0\n80,0,85,0,50,0,56,0,78,0,57,0\n67,0,73,0,10,0,53,0,63,0,71,0\n51,0,95,0,83,0,12,0,87,0,38,0\n61,0,13,0,74,0,65,0,91,0,28,0\n48,0,42,0,40,0,26,0,86,0,75,0\n24,0,47,0,22,0,54,0,81,0,52,0\n3,0,29,0,90,0,17,0,14,0,84,0\n64,0,16,0,19,0,15,0,37,0,33,0\n18,0,46,0,56,0,34,0,92,0,21,0\n77,0,44,0,7,0,11,0,35,0,60,0\n72,0,73,0,55,0,95,0,32,0,23,0\n80,0,9,0,71,0,1,0,41,0,4,0\n70,0,38,0,65,0,58,0,26,0,5,0\n79,0,28,0,88,0,51,0,31,0,62,0\n2,0,94,0,20,0,6,0,76,0,63,0\n97,0,13,0,57,0,43,0,39,0,48,0\n87,0,66,0,8,0,53,0,61,0,89,0\n74,0,82,0,83,0,45,0,85,0,96,0\n59,0,78,0,68,0,27,0,25,0,93,0\n10,0,12,0,69,0,49,0,36,0,30,0\n50,0,91,0,46,0,67,0,17,0,41,0\n"
  },
  {
    "path": "schedules/97_4.csv",
    "content": "21,0,88,0,15,0,12,0,79,0,19,0\n33,0,37,0,39,0,16,0,84,0,18,0\n76,0,97,0,66,0,10,0,1,0,90,0\n83,0,34,0,65,0,22,0,56,0,45,0\n85,0,13,0,47,0,95,0,48,0,7,0\n27,0,75,0,51,0,44,0,58,0,61,0\n77,0,69,0,57,0,9,0,26,0,67,0\n93,0,62,0,71,0,80,0,49,0,40,0\n23,0,91,0,59,0,28,0,25,0,70,0\n74,0,30,0,17,0,68,0,92,0,64,0\n60,0,86,0,53,0,50,0,55,0,94,0\n63,0,81,0,8,0,43,0,73,0,5,0\n42,0,89,0,38,0,78,0,2,0,36,0\n31,0,32,0,35,0,4,0,6,0,20,0\n11,0,24,0,14,0,46,0,96,0,52,0\n82,0,3,0,72,0,54,0,87,0,29,0\n41,0,85,0,58,0,49,0,34,0,39,0\n16,0,7,0,23,0,45,0,97,0,64,0\n93,0,83,0,12,0,70,0,30,0,61,0\n13,0,80,0,86,0,21,0,67,0,8,0\n91,0,33,0,57,0,38,0,27,0,50,0\n84,0,79,0,62,0,35,0,75,0,28,0\n6,0,9,0,19,0,59,0,17,0,24,0\n26,0,89,0,68,0,47,0,51,0,3,0\n18,0,74,0,2,0,55,0,52,0,32,0\n37,0,78,0,72,0,63,0,46,0,15,0\n44,0,22,0,90,0,71,0,54,0,31,0\n29,0,36,0,81,0,60,0,66,0,20,0\n87,0,48,0,69,0,5,0,88,0,42,0\n10,0,95,0,4,0,53,0,14,0,77,0\n40,0,11,0,1,0,73,0,65,0,94,0\n92,0,56,0,96,0,82,0,76,0,41,0\n25,0,9,0,75,0,43,0,3,0,7,0\n64,1,52,0,78,0,35,1,70,0,39,0\n79,0,37,0,24,0,38,0,22,0,26,0\n27,0,71,0,20,0,28,0,72,0,13,0\n36,0,97,0,61,0,62,0,48,0,17,0\n42,0,49,0,47,0,18,0,81,0,67,0\n12,0,1,0,5,0,51,0,31,0,14,0\n94,0,32,0,87,0,34,0,80,0,63,0\n56,0,73,0,10,0,69,0,19,0,23,0\n76,0,60,0,54,0,68,0,15,0,4,0\n65,0,89,0,96,0,16,0,21,0,57,0\n90,0,91,0,55,0,85,0,45,0,11,0\n58,0,2,0,84,0,93,0,8,0,77,0\n82,0,43,0,59,0,74,0,53,0,83,0\n41,0,6,0,30,0,40,0,44,0,33,0\n66,0,25,0,46,0,86,0,95,0,88,0\n50,0,29,0,67,0,92,0,32,0,61,0\n94,0,12,0,49,0,13,0,76,0,37,0\n64,0,31,0,15,0,75,0,38,0,69,0\n80,0,18,0,57,0,35,0,36,0,23,0\n17,0,20,0,11,0,10,0,22,0,47,0\n70,0,53,0,68,0,85,0,87,0,19,0\n8,0,45,0,39,0,89,0,79,0,71,0\n81,0,6,0,95,0,55,0,56,0,62,0\n97,0,58,0,96,0,78,0,29,0,91,0\n30,0,65,0,54,0,24,0,2,0,5,0\n92,0,16,0,28,0,34,0,88,0,77,0\n3,0,44,0,73,0,46,0,48,0,59,0\n42,0,86,0,27,0,9,0,82,0,93,0\n50,0,90,0,7,0,74,0,63,0,14,0\n43,0,66,0,84,0,4,0,72,0,41,0\n40,0,25,0,52,0,51,0,21,0,83,0\n26,0,60,0,35,0,1,0,33,0,64,0\n"
  },
  {
    "path": "schedules/97_5.csv",
    "content": "37,0,59,0,7,0,30,0,71,0,89,0\n49,0,47,0,61,0,62,0,11,0,97,0\n48,0,74,0,10,0,88,0,8,0,70,0\n9,0,50,0,34,0,67,0,73,0,46,0\n83,0,91,0,51,0,94,0,72,0,40,0\n20,0,13,0,21,0,69,0,19,0,16,0\n17,0,66,0,14,0,18,0,79,0,36,0\n43,0,96,0,44,0,56,0,84,0,95,0\n6,0,58,0,60,0,68,0,1,0,38,0\n3,0,41,0,81,0,28,0,78,0,33,0\n25,0,35,0,39,0,75,0,15,0,29,0\n12,0,22,0,77,0,31,0,86,0,23,0\n45,0,85,0,52,0,27,0,93,0,32,0\n90,0,92,0,63,0,87,0,80,0,24,0\n4,0,76,0,55,0,26,0,54,0,2,0\n57,0,64,0,42,0,65,0,5,0,53,0\n82,0,8,0,46,0,20,0,59,0,14,0\n33,0,1,0,66,0,48,0,7,0,84,0\n69,0,37,0,56,0,74,0,18,0,25,0\n79,0,41,0,10,0,43,0,89,0,40,0\n32,0,23,0,67,0,15,0,38,0,28,0\n45,0,81,0,88,0,63,0,19,0,22,0\n86,0,62,0,72,0,92,0,85,0,26,0\n11,0,5,0,52,0,29,0,50,0,17,0\n16,0,27,0,94,0,58,0,55,0,9,0\n61,0,30,0,95,0,77,0,60,0,53,0\n91,0,35,0,44,0,82,0,3,0,90,0\n65,0,6,0,47,0,4,0,73,0,12,0\n51,0,36,0,34,0,54,0,75,0,64,0\n71,0,31,0,97,0,24,0,42,0,68,0\n93,0,39,0,87,0,70,0,21,0,49,0\n96,0,76,0,13,0,78,0,80,0,57,0\n2,0,84,0,9,0,83,0,41,0,14,0\n67,0,72,0,88,0,5,1,27,0,66,0\n26,0,8,0,15,0,50,0,33,0,60,0\n38,0,17,0,46,0,37,0,53,0,12,0\n92,0,77,0,51,0,4,0,59,0,81,0\n23,0,75,0,63,0,89,0,58,0,97,0\n19,0,36,0,62,0,55,0,71,0,44,0\n91,0,56,0,47,0,79,0,39,0,64,0\n68,0,52,0,16,0,80,0,28,0,25,0\n74,0,73,0,1,0,86,0,87,0,83,0\n10,0,93,0,95,0,35,0,76,0,22,0\n48,0,57,0,31,0,61,0,21,0,45,0\n78,0,32,0,11,0,42,0,20,0,30,0\n70,0,85,0,24,0,2,0,6,0,3,0\n13,0,29,0,18,0,7,0,90,0,94,0\n40,0,96,0,49,0,82,0,34,0,69,0\n54,0,43,0,97,0,65,0,88,0,9,0\n79,0,59,0,25,0,86,0,63,0,44,0\n15,0,37,0,83,0,66,0,16,0,10,0\n38,0,71,0,14,0,21,0,74,0,92,0\n4,0,67,0,19,0,33,0,75,0,61,0\n28,0,20,0,31,0,60,0,73,0,72,0\n18,0,48,0,87,0,77,0,47,0,5,0\n35,0,8,0,24,0,51,0,41,0,52,0\n6,0,27,0,50,0,7,0,40,0,42,0\n30,0,62,0,43,0,2,0,34,0,57,0\n84,0,12,0,55,0,91,0,32,0,81,0\n54,0,80,0,70,0,69,0,46,0,22,0\n90,0,23,0,68,0,45,0,53,0,36,0\n64,0,26,0,89,0,17,0,96,0,3,0\n39,0,65,0,82,0,94,0,95,0,78,0\n29,0,76,0,49,0,85,0,56,0,58,0\n93,0,1,0,15,0,13,0,11,0,14,0\n24,0,30,0,88,0,44,0,83,0,18,0\n55,0,97,0,87,0,20,0,41,0,67,0\n79,0,5,0,34,0,61,0,92,0,6,0\n81,0,21,0,53,0,50,0,47,0,25,0\n86,0,17,0,32,0,57,0,68,0,9,0\n23,0,60,0,7,0,46,0,39,0,51,0\n29,0,84,0,16,0,62,0,82,0,22,0\n11,0,69,0,4,0,8,0,94,0,89,0\n49,0,2,0,65,0,13,0,37,0,31,0\n78,0,90,0,70,0,27,0,73,0,59,0\n33,0,42,0,45,0,72,0,54,0,35,0\n58,0,77,0,28,0,93,0,66,0,26,0\n40,0,56,0,12,0,52,0,71,0,1,0\n80,0,38,0,64,0,95,0,48,0,19,0\n63,0,3,0,36,0,76,0,74,0,43,0\n85,0,75,0,5,0,91,0,10,0,96,0\n"
  },
  {
    "path": "schedules/97_6.csv",
    "content": "75,0,89,0,11,0,12,0,80,0,1,0\n54,0,81,0,95,0,61,0,62,0,91,0\n17,0,47,0,52,0,4,0,49,0,7,0\n94,0,77,0,67,0,60,0,34,0,3,0\n10,0,32,0,73,0,31,0,86,0,85,0\n22,0,65,0,27,0,90,0,8,0,16,0\n18,0,70,0,41,0,45,0,64,0,68,0\n92,0,23,0,33,0,56,0,5,0,43,0\n66,0,74,0,24,0,26,0,13,0,87,0\n93,0,21,0,25,0,88,0,38,0,29,0\n39,0,59,0,51,0,50,0,57,0,40,0\n30,0,71,0,14,0,84,0,63,0,37,0\n83,0,97,0,78,0,19,0,55,0,79,0\n69,0,42,0,20,0,6,0,35,0,9,0\n36,0,82,0,44,0,48,0,46,0,28,0\n15,0,2,0,76,0,96,0,58,0,72,0\n53,0,8,0,56,0,54,0,94,0,73,0\n68,0,93,0,33,0,67,0,31,0,66,0\n52,0,91,0,75,0,77,0,23,0,32,0\n10,0,50,0,25,0,11,0,63,0,95,0\n85,0,38,0,49,0,74,0,37,0,78,0\n43,0,61,0,35,0,41,0,7,0,30,0\n79,0,46,0,87,0,59,0,14,0,20,0\n45,0,48,0,19,0,51,0,84,0,92,0\n2,0,28,0,34,0,13,0,42,0,27,0\n26,0,81,0,83,0,15,0,1,0,64,0\n88,0,12,0,57,0,36,0,24,0,9,0\n6,0,5,0,90,0,40,0,96,0,21,0\n4,0,18,0,82,0,76,0,60,0,22,0\n47,0,71,0,70,0,55,0,72,0,3,0\n69,0,89,0,29,0,53,0,44,0,65,0\n58,0,16,0,86,0,17,0,80,0,39,0\n62,0,56,0,84,0,97,0,27,0,46,0\n64,0,77,0,14,0,74,0,11,0,51,0\n37,0,81,0,94,0,87,0,10,0,12,0\n42,0,26,0,78,0,33,0,7,0,91,0\n40,0,1,0,82,0,61,0,13,0,68,0\n70,0,21,0,76,0,24,0,34,0,50,0\n8,0,72,0,59,0,28,0,89,0,18,0\n90,0,49,0,15,0,92,0,88,0,54,0\n65,0,4,0,48,0,2,0,35,0,75,0\n71,0,9,0,79,0,62,0,66,0,25,0\n96,0,60,0,73,0,20,0,52,0,55,0\n63,0,23,0,17,0,22,0,41,0,19,0\n67,0,6,0,58,0,85,0,45,0,44,0\n3,0,16,0,95,0,32,0,29,0,5,0\n53,0,80,0,47,0,38,0,97,0,36,0\n57,0,93,0,30,0,83,0,69,0,86,0\n31,0,39,0,65,0,43,0,81,0,13,0\n8,0,48,0,12,0,14,0,33,0,49,0\n20,0,91,0,2,0,25,0,64,0,24,0\n59,0,82,0,56,0,41,0,11,0,42,0\n34,0,58,0,10,0,22,0,88,0,62,0\n60,0,79,0,84,0,23,0,7,0,95,0\n50,0,85,0,97,0,90,0,9,0,3,0\n29,0,40,0,75,0,17,0,87,0,70,0\n5,0,39,0,68,0,44,0,78,0,76,0\n73,0,19,0,37,0,93,0,15,0,18,0\n53,0,57,0,16,0,77,0,71,0,26,0\n55,0,80,0,43,0,74,0,69,0,67,0\n66,0,36,0,89,0,51,0,30,0,4,0\n63,0,38,0,54,0,6,0,28,0,86,0\n45,0,94,0,46,0,83,0,52,0,31,0\n92,0,21,0,72,0,27,0,32,0,61,0\n96,0,1,0,29,0,47,0,35,0,23,0\n7,0,13,0,9,0,93,0,48,0,56,0\n64,0,39,0,19,0,60,0,33,0,10,0\n20,0,74,0,84,0,15,0,44,0,70,0\n25,0,67,0,12,0,82,0,17,0,90,0\n3,0,38,0,76,0,11,0,40,0,81,0\n51,0,86,0,42,0,43,0,46,0,53,0\n69,0,36,0,61,0,77,0,18,0,79,0\n66,0,80,0,50,0,14,0,5,0,2,0\n24,0,16,0,72,0,75,0,63,0,97,0\n52,0,27,0,54,0,26,0,41,0,37,0\n92,0,55,0,35,0,89,0,57,0,58,0\n6,0,59,0,78,0,94,0,22,0,47,0\n49,0,21,0,28,0,30,0,95,0,31,0\n68,0,62,0,96,0,85,0,8,0,4,0\n32,0,65,0,1,0,45,0,71,0,34,0\n87,0,91,0,88,0,73,0,83,0,5,0\n23,0,11,0,46,0,66,0,69,0,70,0\n26,0,17,0,93,0,2,0,97,0,60,0\n64,0,44,0,61,0,38,0,12,0,16,0\n55,0,90,0,75,0,84,0,81,0,59,0\n13,0,49,0,63,0,18,0,35,0,3,0\n77,0,86,0,9,0,82,0,89,0,78,0\n15,0,36,0,7,0,27,0,40,0,94,0\n85,0,52,0,87,0,28,0,51,0,71,0\n95,0,45,0,4,0,72,0,20,0,88,0\n57,0,68,0,48,0,21,0,54,0,43,0\n41,0,34,0,74,0,79,0,53,0,39,0\n73,0,50,0,22,0,30,0,29,0,33,0\n47,0,83,0,32,0,25,0,56,0,58,0\n6,0,76,0,62,0,19,0,80,0,65,0\n31,0,1,0,37,0,8,0,92,0,91,0\n14,0,24,0,42,0,67,0,10,0,96,0\n"
  },
  {
    "path": "schedules/97_7.csv",
    "content": "59,0,94,0,24,0,6,0,71,0,20,0\n55,0,67,0,41,0,65,0,8,0,84,0\n27,0,44,0,35,0,86,0,58,0,39,0\n32,0,46,0,34,0,11,0,52,0,33,0\n92,0,93,0,23,0,96,0,29,0,4,0\n69,0,79,0,53,0,89,0,26,0,76,0\n13,0,22,0,49,0,31,0,78,0,77,0\n45,0,7,0,95,0,72,0,56,0,28,0\n91,0,54,0,42,0,68,0,66,0,73,0\n47,0,21,0,80,0,15,0,75,0,61,0\n40,0,60,0,88,0,63,0,97,0,3,0\n16,0,74,0,64,0,38,0,48,0,87,0\n5,0,10,0,36,0,43,0,51,0,62,0\n12,0,85,0,17,0,25,0,19,0,2,0\n70,0,14,0,1,0,18,0,50,0,81,0\n90,0,83,0,9,0,30,0,57,0,82,0\n37,0,7,0,42,0,34,0,26,0,58,0\n84,0,27,0,23,0,45,0,46,0,21,0\n66,0,97,0,11,0,28,0,13,0,92,0\n96,0,55,0,73,0,77,0,53,0,86,0\n88,0,41,0,48,0,93,0,94,0,51,0\n54,0,67,0,49,0,85,0,20,0,29,0\n95,0,43,0,75,0,39,0,2,0,3,0\n78,0,8,0,1,0,60,0,61,0,6,0\n63,0,9,0,17,0,32,0,44,0,37,0\n59,0,65,0,74,0,47,0,30,0,12,0\n38,0,52,0,40,0,18,0,68,0,36,0\n31,0,33,0,81,0,71,0,87,0,69,0\n62,0,90,0,19,0,15,0,70,0,79,0\n72,0,80,0,35,0,14,0,83,0,5,0\n16,0,10,0,25,0,22,0,89,0,82,0\n76,0,56,0,4,0,91,0,57,0,64,0\n50,0,28,0,43,0,24,0,8,0,27,0\n29,1,32,0,7,0,12,1,53,0,78,0\n41,1,30,0,39,0,68,1,21,0,60,0\n69,1,6,0,11,0,54,0,55,0,3,0\n13,0,74,0,88,0,70,0,17,0,73,0\n19,0,66,0,48,0,31,0,52,0,9,0\n82,0,20,0,23,0,35,0,33,0,26,0\n2,0,34,0,38,0,91,0,49,0,14,0\n76,0,46,0,22,0,81,0,15,0,92,0\n1,0,25,0,64,0,24,0,86,0,90,0\n18,0,10,0,58,0,84,0,4,0,72,0\n45,0,89,0,59,0,50,0,93,0,40,0\n37,0,61,0,36,0,83,0,97,0,85,0\n62,0,56,0,96,0,44,0,87,0,80,0\n77,0,79,0,57,0,71,0,51,0,16,0\n5,0,63,0,42,0,75,0,65,0,94,0\n95,0,47,0,91,0,67,0,22,0,27,0\n60,0,73,0,15,0,23,0,24,0,9,0\n30,0,46,0,13,0,6,0,19,0,18,0\n86,0,70,0,3,0,7,0,8,0,89,0\n38,0,21,0,76,0,43,0,1,0,33,0\n10,0,37,0,49,0,35,0,55,0,48,0\n2,0,44,0,97,0,72,0,82,0,64,0\n29,0,84,0,50,0,83,0,42,0,51,0\n16,0,90,0,69,0,95,0,92,0,88,0\n65,0,20,0,32,0,25,0,36,0,57,0\n81,0,47,0,54,0,56,0,34,0,17,0\n26,0,87,0,14,0,94,0,77,0,52,0\n53,0,59,0,80,0,11,0,39,0,63,0\n61,0,28,0,40,0,12,0,96,0,5,0\n93,0,68,0,58,0,74,0,85,0,78,0\n62,0,45,0,71,0,41,0,75,0,66,0\n4,0,79,0,73,0,67,0,31,0,44,0\n57,0,3,0,72,0,1,0,29,0,48,0\n69,0,24,0,19,0,49,0,36,0,47,0\n20,0,13,0,83,0,76,0,34,0,95,0\n63,0,2,0,84,0,33,0,77,0,70,0\n16,0,39,0,8,0,42,0,56,0,14,0\n82,0,51,0,21,0,52,0,7,0,74,0\n87,0,37,0,5,0,27,0,93,0,54,0\n53,0,61,0,92,0,64,0,41,0,10,0\n30,0,15,0,71,0,32,0,89,0,85,0\n40,0,46,0,67,0,86,0,17,0,66,0\n90,0,28,0,58,0,65,0,80,0,60,0\n81,0,91,0,45,0,6,0,79,0,9,0\n4,0,78,0,25,0,94,0,50,0,62,0\n43,0,68,0,22,0,96,0,97,0,35,0\n75,0,55,0,31,0,26,0,38,0,59,0\n23,0,88,0,76,0,11,0,18,0,12,0\n57,0,84,0,89,0,37,0,19,0,92,0\n52,0,24,0,16,0,53,0,13,0,67,0\n70,0,64,0,58,0,95,0,30,0,54,0\n66,0,29,0,47,0,82,0,5,0,60,0\n74,0,77,0,62,0,42,0,61,0,20,0\n17,0,83,0,33,0,49,0,96,0,45,0\n94,0,36,0,55,0,21,0,81,0,28,0\n15,0,41,0,87,0,4,0,59,0,43,0\n51,0,12,0,72,0,6,0,38,0,63,0\n34,0,65,0,22,0,39,0,40,0,1,0\n31,0,80,0,91,0,32,0,50,0,88,0\n18,0,48,0,85,0,7,0,27,0,69,0\n8,0,79,0,75,0,93,0,25,0,35,0\n97,0,78,0,71,0,73,0,46,0,56,0\n9,0,26,0,11,0,10,0,86,0,2,0\n44,0,3,0,14,0,23,0,68,0,90,0\n96,0,60,0,54,0,89,0,13,0,72,0\n45,0,77,0,39,0,37,0,67,0,12,0\n4,0,52,0,49,0,5,0,30,0,88,0\n18,0,87,0,24,0,21,0,57,0,95,0\n59,0,29,0,35,0,76,0,70,0,16,0\n31,0,93,0,64,0,46,0,62,0,65,0\n27,0,42,0,41,0,25,0,40,0,9,0\n32,0,51,0,14,0,69,0,73,0,28,0\n15,0,68,0,1,0,55,0,7,0,2,0\n34,0,66,0,94,0,90,0,10,0,8,0\n26,0,63,0,78,0,83,0,47,0,48,0\n53,0,22,0,6,0,36,0,23,0,56,0\n11,0,85,0,43,0,84,0,82,0,81,0\n50,0,71,0,19,0,38,0,61,0,44,0\n92,0,3,0,33,0,80,0,79,0,74,0\n20,0,58,0,17,0,91,0,97,0,75,0\n86,0,12,0,41,0,29,0,68,0,69,0\n"
  },
  {
    "path": "schedules/97_8.csv",
    "content": "86,0,91,0,95,0,75,0,41,0,2,0\n43,0,90,0,81,0,42,0,11,0,19,0\n84,0,15,0,16,0,82,0,60,0,96,0\n71,0,56,0,18,0,93,0,76,0,59,0\n97,0,61,0,65,0,23,0,54,0,7,0\n32,0,49,0,72,0,62,0,35,0,57,0\n68,0,48,0,25,0,30,0,50,0,6,0\n58,0,33,0,63,0,87,0,20,0,4,0\n92,0,70,0,67,0,17,0,55,0,12,0\n46,0,3,0,66,0,21,0,94,0,39,0\n31,0,28,0,40,0,73,0,38,0,88,0\n26,0,80,0,5,0,1,0,79,0,14,0\n74,0,27,0,24,0,89,0,10,0,29,0\n44,0,69,0,83,0,37,0,34,0,13,0\n47,0,51,0,9,0,77,0,45,0,85,0\n78,0,36,0,8,0,22,0,64,0,53,0\n52,0,6,0,90,0,57,0,2,0,63,0\n21,0,35,0,95,0,50,0,17,0,7,0\n54,0,93,0,84,0,87,0,31,0,39,0\n20,0,16,0,23,0,49,0,40,0,26,0\n96,0,24,0,5,0,38,0,75,0,43,0\n1,0,74,0,62,0,44,0,25,0,33,0\n65,0,77,0,11,0,27,0,30,0,14,0\n61,0,69,0,85,0,18,0,8,0,82,0\n64,0,72,0,56,0,86,0,29,0,3,0\n83,0,41,0,70,0,51,0,60,0,4,0\n97,0,28,0,52,0,68,0,42,0,47,0\n91,0,71,0,88,0,94,0,55,0,9,0\n48,0,53,0,19,0,37,0,76,0,46,0\n12,0,15,0,81,0,10,0,80,0,22,0\n34,0,36,0,89,0,59,0,45,0,67,0\n66,0,79,0,32,0,58,0,78,0,13,0\n92,0,24,0,84,0,73,0,20,0,61,0\n39,1,86,0,35,0,23,1,83,0,74,0\n90,1,69,0,97,0,64,1,40,0,93,0\n60,0,49,0,18,0,31,0,47,0,43,0\n3,0,62,0,96,0,77,0,52,0,17,0\n44,0,19,0,26,0,75,0,10,0,9,0\n8,0,6,0,95,0,94,0,12,0,14,0\n46,0,82,0,63,0,32,0,65,0,80,0\n37,0,66,0,51,0,33,0,15,0,92,0\n55,0,22,0,42,0,76,0,4,0,34,0\n68,0,56,0,57,0,58,0,53,0,27,0\n54,0,88,0,16,0,89,0,81,0,50,0\n48,0,71,0,78,0,5,0,67,0,41,0\n25,0,11,0,85,0,29,0,28,0,91,0\n2,0,1,0,36,0,21,0,87,0,38,0\n59,0,13,0,30,0,70,0,72,0,7,0\n45,0,73,0,46,0,79,0,83,0,90,0\n39,0,60,0,62,0,37,0,10,0,20,0\n33,0,94,0,47,0,53,0,24,0,26,0\n77,0,50,0,42,0,56,0,61,0,49,0\n68,0,14,0,76,0,44,0,88,0,84,0\n93,0,15,0,67,0,32,0,19,0,8,0\n48,0,2,0,29,0,4,0,35,0,69,0\n34,0,31,0,78,0,12,0,91,0,52,0\n72,0,18,0,17,0,1,0,9,0,66,0\n38,0,92,0,6,0,97,0,86,0,71,0\n82,0,95,0,45,0,27,0,13,0,22,0\n75,0,74,0,80,0,70,0,16,0,85,0\n51,0,73,0,87,0,3,0,55,0,30,0\n89,0,79,0,43,0,57,0,65,0,40,0\n58,0,59,0,81,0,23,0,21,0,28,0\n25,0,96,0,7,0,63,0,36,0,41,0\n5,0,54,0,66,0,64,0,11,0,62,0\n38,0,20,0,35,0,90,0,8,0,44,0\n34,0,47,0,27,0,1,0,15,0,48,0\n13,0,61,0,17,0,19,0,86,0,16,0\n45,0,60,0,3,0,24,0,6,0,88,0\n42,0,65,0,87,0,78,0,92,0,95,0\n58,0,14,0,93,0,51,0,72,0,89,0\n39,0,41,0,55,0,28,0,57,0,80,0\n49,0,69,0,30,0,96,0,81,0,76,0\n54,0,21,0,40,0,63,0,83,0,56,0\n75,0,94,0,22,0,29,0,7,0,18,0\n12,0,11,0,4,0,82,0,59,0,68,0\n43,0,52,0,50,0,46,0,84,0,36,0\n77,0,70,0,26,0,37,0,97,0,91,0\n74,0,53,0,32,0,31,0,2,0,5,0\n64,0,10,0,85,0,33,0,71,0,79,0\n23,0,73,0,9,0,67,0,25,0,60,0\n58,0,42,0,80,0,35,0,40,0,96,0\n30,0,19,0,62,0,22,0,56,0,89,0\n76,0,21,0,27,0,92,0,72,0,16,0\n75,0,4,0,65,0,8,0,84,0,47,0\n63,0,50,0,44,0,15,0,91,0,3,0\n7,0,51,0,34,0,26,0,39,0,2,0\n45,0,20,0,69,0,74,0,41,0,68,0\n24,0,95,0,57,0,66,0,67,0,81,0\n46,0,6,0,33,0,11,0,18,0,55,0\n25,0,79,0,38,0,77,0,53,0,59,0\n83,0,17,0,78,0,93,0,85,0,49,0\n1,0,94,0,43,0,82,0,97,0,73,0\n10,0,28,0,90,0,5,0,87,0,86,0\n31,0,13,0,29,0,71,0,36,0,23,0\n61,0,64,0,12,0,88,0,37,0,32,0\n14,0,52,0,9,0,70,0,48,0,54,0\n4,0,45,0,72,0,50,0,39,0,19,0\n11,0,7,0,79,0,20,0,47,0,67,0\n3,0,89,0,83,0,33,0,76,0,80,0\n75,0,6,0,59,0,78,0,73,0,69,0\n91,0,38,0,17,0,51,0,46,0,42,0\n86,0,55,0,81,0,27,0,93,0,63,0\n5,0,21,0,18,0,57,0,13,0,88,0\n41,0,1,0,64,0,31,0,77,0,35,0\n37,0,2,0,8,0,16,0,24,0,30,0\n84,0,97,0,10,0,34,0,95,0,53,0\n60,0,22,0,66,0,14,0,90,0,85,0\n71,0,32,0,68,0,26,0,96,0,54,0\n65,0,58,0,15,0,25,0,52,0,94,0\n49,0,9,0,28,0,36,0,12,0,74,0\n29,0,40,0,87,0,62,0,61,0,70,0\n92,0,56,0,23,0,43,0,48,0,44,0\n82,0,31,0,20,0,42,0,6,0,72,0\n76,0,63,0,39,0,17,0,79,0,24,0\n88,0,59,0,2,0,47,0,83,0,22,0\n77,0,57,0,4,0,54,0,10,0,78,0\n53,0,89,0,11,0,52,0,71,0,21,0\n13,0,67,0,96,0,90,0,65,0,33,0\n60,0,36,0,75,0,81,0,68,0,61,0\n27,0,51,0,94,0,84,0,62,0,23,0\n19,0,80,0,91,0,92,0,18,0,64,0\n14,0,32,0,7,0,69,0,3,0,28,0\n12,0,35,0,16,0,45,0,25,0,43,0\n86,0,85,0,40,0,30,0,1,0,46,0\n50,0,37,0,38,0,9,0,82,0,93,0\n26,0,74,0,73,0,95,0,58,0,48,0\n41,0,87,0,8,0,56,0,66,0,34,0\n55,0,44,0,29,0,49,0,5,0,97,0\n15,0,39,0,90,0,70,0,23,0,64,0\n"
  },
  {
    "path": "schedules/97_9.csv",
    "content": "61,0,85,0,38,0,32,0,7,0,3,0\n45,0,31,0,4,0,96,0,79,0,24,0\n67,0,86,0,26,0,49,0,55,0,94,0\n92,0,37,0,19,0,64,0,66,0,1,0\n47,0,97,0,75,0,42,0,90,0,13,0\n22,0,91,0,84,0,35,0,73,0,30,0\n48,0,27,0,80,0,33,0,6,0,5,0\n74,0,17,0,21,0,83,0,15,0,20,0\n50,0,59,0,51,0,88,0,10,0,54,0\n12,0,60,0,46,0,28,0,65,0,40,0\n11,0,8,0,70,0,56,0,68,0,53,0\n95,0,57,0,87,0,9,0,63,0,39,0\n72,0,78,0,62,0,23,0,58,0,41,0\n52,0,93,0,71,0,18,0,81,0,43,0\n34,0,14,0,69,0,25,0,2,0,44,0\n82,0,89,0,76,0,77,0,36,0,16,0\n29,0,92,0,91,0,10,0,31,0,85,0\n37,0,22,0,61,0,4,0,86,0,33,0\n12,0,56,0,50,0,67,0,75,0,64,0\n39,0,6,0,32,0,73,0,83,0,65,0\n21,0,40,0,19,0,27,0,30,0,7,0\n68,0,62,0,96,0,60,0,84,0,63,0\n58,0,66,0,55,0,97,0,18,0,57,0\n16,0,17,0,28,0,5,0,34,0,42,0\n74,0,46,0,8,0,80,0,49,0,43,0\n79,0,25,0,78,0,88,0,71,0,89,0\n36,0,23,0,69,0,3,0,81,0,51,0\n15,0,72,0,90,0,26,0,24,0,53,0\n77,0,14,0,70,0,52,0,1,0,48,0\n94,0,44,0,45,0,54,0,38,0,13,0\n47,0,29,0,20,0,9,0,82,0,35,0\n2,0,76,0,95,0,41,0,93,0,11,0\n59,0,68,0,28,0,87,0,33,0,91,0\n67,1,79,0,30,0,42,1,92,0,6,0\n39,1,83,0,31,0,25,0,43,0,19,0\n57,0,50,0,22,0,15,0,80,0,32,0\n96,0,51,0,34,0,66,0,49,0,75,0\n70,0,54,0,23,0,27,0,86,0,17,0\n48,0,60,0,73,0,82,0,26,0,38,0\n5,0,93,0,53,0,12,0,94,0,77,0\n76,0,8,0,64,0,58,0,21,0,4,0\n63,0,13,0,24,0,89,0,2,0,29,0\n88,0,1,0,45,0,85,0,74,0,65,0\n7,0,97,0,71,0,44,0,59,0,37,0\n62,0,3,0,56,0,40,0,14,0,47,0\n55,0,72,0,9,0,11,0,81,0,16,0\n20,0,36,0,41,0,18,0,46,0,84,0\n78,0,69,0,35,0,87,0,61,0,10,0\n52,0,90,0,73,0,95,0,67,0,4,0\n91,0,23,0,89,0,19,0,32,0,49,0\n66,0,33,0,13,0,85,0,21,0,50,0\n30,0,58,0,37,0,60,0,5,0,43,0\n22,0,39,0,24,0,71,0,56,0,54,0\n25,0,57,0,81,0,59,0,38,0,8,0\n1,0,72,0,80,0,36,0,97,0,93,0\n2,0,70,0,3,0,26,0,84,0,83,0\n16,0,86,0,12,0,20,0,92,0,87,0\n28,0,9,0,96,0,15,0,61,0,44,0\n34,0,41,0,77,0,88,0,6,0,47,0\n27,0,94,0,64,0,11,0,29,0,90,0\n53,0,45,0,82,0,40,0,17,0,63,0\n18,0,65,0,7,0,10,0,79,0,75,0\n51,0,52,0,68,0,76,0,46,0,35,0\n14,0,42,0,78,0,74,0,31,0,55,0\n48,0,95,0,66,0,69,0,62,0,16,0\n86,0,96,0,13,0,39,0,8,0,72,0\n24,0,49,0,1,0,60,0,21,0,3,0\n26,0,44,0,88,0,36,0,29,0,57,0\n67,0,38,0,37,0,23,0,53,0,47,0\n63,0,94,0,41,0,19,0,71,0,80,0\n43,0,28,0,7,0,2,0,51,0,22,0\n75,0,61,0,84,0,40,0,5,0,31,0\n78,0,59,0,6,0,52,0,20,0,56,0\n15,0,76,0,10,0,12,0,97,0,48,0\n50,0,62,0,35,0,25,0,65,0,70,0\n18,0,42,0,11,0,91,0,77,0,45,0\n87,0,73,0,74,0,34,0,27,0,79,0\n32,0,30,0,17,0,46,0,9,0,69,0\n83,0,55,0,4,0,68,0,92,0,89,0\n58,0,54,0,90,0,85,0,14,0,93,0\n81,0,33,0,95,0,64,0,82,0,88,0\n52,0,39,0,80,0,53,0,60,0,75,0\n36,0,59,0,47,0,63,0,66,0,61,0\n15,0,56,0,29,0,86,0,38,0,41,0\n77,0,67,0,25,0,13,0,84,0,27,0\n42,0,43,0,21,0,73,0,12,0,23,0\n5,0,3,0,9,0,22,0,68,0,78,0\n50,0,89,0,93,0,30,0,96,0,74,0\n6,0,35,0,95,0,55,0,7,0,45,0\n81,0,46,0,87,0,48,0,54,0,2,0\n20,0,79,0,62,0,28,0,26,0,97,0\n11,0,82,0,32,0,31,0,1,0,34,0\n49,0,17,0,64,0,14,0,57,0,72,0\n18,0,85,0,4,0,19,0,16,0,51,0\n69,0,76,0,90,0,91,0,37,0,70,0\n44,0,92,0,65,0,94,0,58,0,24,0\n33,0,83,0,10,0,8,0,71,0,40,0\n47,0,7,0,87,0,25,0,5,0,96,0\n80,0,21,0,26,0,45,0,89,0,81,0\n2,0,52,0,88,0,27,0,61,0,12,0\n38,0,68,0,43,0,36,0,95,0,17,0\n30,0,41,0,3,0,48,0,4,0,13,0\n66,0,60,0,29,0,72,0,22,0,74,0\n32,0,54,0,16,0,53,0,84,0,97,0\n92,0,71,0,90,0,49,0,77,0,62,0\n65,0,93,0,51,0,56,0,63,0,31,0\n91,0,46,0,82,0,44,0,6,0,86,0\n33,0,34,0,19,0,67,0,76,0,57,0\n85,0,24,0,75,0,70,0,28,0,78,0\n40,0,15,0,64,0,42,0,59,0,35,0\n10,0,20,0,23,0,55,0,1,0,39,0\n11,0,79,0,58,0,83,0,69,0,50,0\n14,0,8,0,9,0,73,0,94,0,37,0\n18,0,31,0,38,0,89,0,87,0,90,0\n12,0,32,0,74,0,26,0,4,0,47,0\n60,0,25,0,97,0,17,0,41,0,91,0\n34,0,71,0,36,0,45,0,70,0,30,0\n19,0,22,0,77,0,96,0,65,0,59,0\n3,0,27,0,44,0,93,0,39,0,16,0\n85,0,48,0,53,0,42,0,57,0,20,0\n61,0,6,0,21,0,51,0,14,0,11,0\n10,0,86,0,84,0,43,0,9,0,64,0\n75,0,33,0,55,0,2,0,15,0,62,0\n1,0,81,0,68,0,58,0,73,0,13,0\n95,0,18,0,37,0,78,0,50,0,29,0\n23,0,5,0,66,0,82,0,79,0,52,0\n72,0,94,0,56,0,46,0,7,0,83,0\n54,0,63,0,8,0,28,0,92,0,35,0\n40,0,67,0,88,0,80,0,69,0,24,0\n49,0,44,0,87,0,76,0,84,0,85,0\n39,0,51,0,97,0,38,0,74,0,77,0\n27,0,43,0,53,0,14,0,4,0,59,0\n71,0,75,0,26,0,1,0,9,0,6,0\n23,0,25,0,64,0,61,0,68,0,93,0\n16,0,41,0,10,0,52,0,45,0,22,0\n42,0,2,0,60,0,19,0,50,0,36,0\n92,0,56,0,5,0,69,0,21,0,18,0\n65,0,48,0,29,0,8,0,17,0,67,0\n81,0,86,0,35,0,79,0,90,0,32,0\n11,0,73,0,49,0,78,0,54,0,33,0\n47,0,30,0,28,0,31,0,72,0,76,0\n24,0,57,0,83,0,62,0,37,0,82,0\n55,0,13,0,34,0,80,0,12,0,91,0\n63,0,88,0,58,0,3,0,15,0,46,0\n70,0,40,0,96,0,94,0,20,0,95,0\n89,0,7,0,42,0,66,0,67,0,39,0\n"
  },
  {
    "path": "schedules/98_1.csv",
    "content": "59,0,72,0,55,0,93,0,40,0,77,0\n7,0,23,0,9,0,1,0,75,0,3,0\n81,0,73,0,74,0,68,0,85,0,38,0\n6,0,83,0,13,0,4,0,56,0,2,0\n11,0,28,0,10,0,84,0,65,0,62,0\n30,0,96,0,52,0,12,0,66,0,33,0\n17,0,31,0,16,0,49,0,37,0,39,0\n41,0,42,0,54,0,53,0,71,0,70,0\n44,0,22,0,78,0,60,0,69,0,79,0\n92,0,5,0,95,0,91,0,58,0,64,0\n21,0,25,0,47,0,82,0,89,0,15,0\n97,0,63,0,27,0,36,0,76,0,88,0\n19,0,14,0,24,0,20,0,80,0,34,0\n67,0,48,0,29,0,32,0,45,0,35,0\n61,0,98,0,94,0,8,0,43,0,57,0\n87,0,86,0,90,0,51,0,50,0,26,0\n46,0,68,1,78,1,18,0,70,1,49,1\n"
  },
  {
    "path": "schedules/98_10.csv",
    "content": "44,0,66,0,27,0,57,0,21,0,98,0\n74,0,76,0,59,0,87,0,8,0,24,0\n36,0,20,0,58,0,37,0,73,0,32,0\n5,0,68,0,71,0,93,0,39,0,89,0\n9,0,30,0,22,0,48,0,79,0,96,0\n64,0,14,0,35,0,53,0,17,0,52,0\n3,0,80,0,67,0,92,0,16,0,72,0\n34,0,26,0,10,0,77,0,2,0,29,0\n43,0,46,0,88,0,28,0,62,0,41,0\n4,0,81,0,31,0,47,0,18,0,61,0\n91,0,78,0,12,0,33,0,45,0,56,0\n63,0,49,0,19,0,82,0,65,0,60,0\n70,0,25,0,50,0,7,0,55,0,94,0\n83,0,15,0,84,0,51,0,40,0,75,0\n86,0,13,0,6,0,54,0,23,0,11,0\n42,0,97,0,1,0,90,0,85,0,69,0\n38,0,53,0,98,0,95,0,10,0,72,0\n29,0,37,0,27,0,8,0,9,0,16,0\n18,0,78,0,26,0,64,0,92,0,73,0\n39,0,77,0,76,0,44,0,30,0,82,0\n60,0,45,0,47,0,58,0,66,0,7,0\n52,0,65,0,55,0,31,0,46,0,48,0\n15,0,6,0,62,0,70,0,24,0,12,0\n84,0,20,0,28,0,71,0,49,0,3,0\n5,0,95,0,54,0,40,0,63,0,61,0\n35,0,57,0,97,0,89,0,74,0,83,0\n69,0,11,0,41,0,51,0,22,0,4,0\n67,0,96,0,23,0,1,0,50,0,56,0\n90,0,79,0,68,0,33,0,2,0,94,0\n32,0,19,0,93,0,42,0,80,0,86,0\n25,0,87,0,81,0,88,0,38,0,36,0\n75,0,21,0,43,0,34,0,13,0,14,0\n91,0,59,0,29,0,17,0,85,0,70,0\n62,1,3,0,95,0,9,1,27,0,35,0\n10,1,57,0,92,0,82,1,58,0,48,0\n28,0,8,0,89,0,26,0,72,0,61,0\n15,0,54,0,79,0,44,0,73,0,49,0\n64,0,98,0,68,0,74,0,96,0,4,0\n90,0,56,0,52,0,71,0,16,0,19,0\n41,0,97,0,24,0,36,0,30,0,66,0\n25,0,60,0,93,0,53,0,43,0,1,0\n23,0,65,0,14,0,37,0,85,0,12,0\n86,0,21,0,40,0,78,0,39,0,7,0\n88,0,11,0,59,0,33,0,50,0,75,0\n87,0,18,0,13,0,20,0,42,0,91,0\n31,0,34,0,45,0,94,0,69,0,6,0\n5,0,84,0,77,0,81,0,80,0,46,0\n47,0,2,0,76,0,51,0,55,0,67,0\n32,0,22,0,38,0,17,0,83,0,63,0\n73,0,28,0,12,0,19,0,74,0,27,0\n37,0,49,0,25,0,40,0,98,0,30,0\n65,0,43,0,4,0,97,0,86,0,59,0\n82,0,75,0,7,0,20,0,41,0,95,0\n16,0,33,0,1,0,15,0,10,0,66,0\n79,0,69,0,56,0,93,0,81,0,26,0\n84,0,31,0,42,0,57,0,50,0,76,0\n80,0,11,0,89,0,87,0,78,0,55,0\n96,0,34,0,36,0,39,0,83,0,60,0\n13,0,35,0,45,0,71,0,64,0,70,0\n14,0,5,0,90,0,44,0,22,0,92,0\n85,0,9,0,53,0,46,0,18,0,2,0\n23,0,21,0,48,0,24,0,29,0,47,0\n51,0,68,0,3,0,8,0,88,0,17,0\n94,0,72,0,62,0,32,0,77,0,54,0\n52,0,61,0,38,0,91,0,67,0,58,0\n63,0,16,0,39,0,6,0,43,0,50,0\n70,0,89,0,81,0,65,0,42,0,30,0\n26,0,90,0,4,0,76,0,12,0,36,0\n41,0,87,0,83,0,5,0,64,0,9,0\n97,0,2,0,78,0,37,0,60,0,44,0\n14,0,24,0,10,0,93,0,27,0,55,0\n71,0,22,0,77,0,21,0,31,0,1,0\n48,0,34,0,73,0,56,0,95,0,66,0\n20,0,17,0,33,0,67,0,25,0,6,0\n54,0,35,0,19,0,59,0,96,0,47,0\n29,0,49,0,18,0,72,0,51,0,45,0\n91,0,53,0,94,0,80,0,63,0,28,0\n46,0,7,0,68,0,57,0,15,0,38,0\n92,0,74,0,61,0,69,0,75,0,23,0\n79,0,40,0,82,0,3,0,52,0,11,0\n86,0,8,0,58,0,84,0,62,0,85,0\n88,0,98,0,39,0,13,0,32,0,31,0\n44,0,10,0,83,0,20,0,43,0,70,0\n19,0,48,0,72,0,2,0,6,0,87,0\n51,0,42,0,9,0,59,0,28,0,60,0\n14,0,78,0,57,0,67,0,49,0,4,0\n64,0,46,0,69,0,95,0,50,0,37,0\n30,0,56,0,21,0,5,0,74,0,38,0\n23,0,53,0,71,0,58,0,26,0,97,0\n24,0,7,0,54,0,22,0,52,0,89,0\n34,0,3,0,47,0,15,0,32,0,90,0\n81,0,85,0,27,0,45,0,63,0,11,0\n77,0,92,0,66,0,25,0,91,0,8,0\n36,0,13,0,1,0,68,0,40,0,62,0\n86,0,16,0,94,0,41,0,61,0,98,0\n12,0,84,0,18,0,35,0,88,0,55,0\n76,0,80,0,65,0,75,0,79,0,17,0\n96,0,73,0,33,0,82,0,29,0,93,0\n59,0,6,0,37,0,90,0,10,0,7,0\n27,0,38,0,69,0,43,0,71,0,47,0\n52,0,26,0,30,0,32,0,45,0,95,0\n50,0,48,0,85,0,89,0,49,0,36,0\n40,0,70,0,77,0,23,0,57,0,19,0\n4,0,46,0,54,0,83,0,21,0,25,0\n65,0,8,0,15,0,94,0,13,0,5,0\n91,0,2,0,73,0,35,0,41,0,31,0\n63,0,97,0,51,0,96,0,20,0,14,0\n55,0,3,0,81,0,53,0,33,0,86,0\n67,0,82,0,18,0,22,0,68,0,34,0\n66,0,39,0,42,0,79,0,64,0,12,0\n1,0,61,0,88,0,9,0,76,0,78,0\n87,0,16,0,28,0,58,0,75,0,93,0\n62,0,56,0,60,0,29,0,98,0,80,0\n17,0,74,0,44,0,72,0,11,0,84,0\n92,0,50,0,2,0,24,0,83,0,71,0\n95,0,36,0,57,0,91,0,6,0,51,0\n22,0,94,0,23,0,43,0,35,0,81,0\n52,0,41,0,96,0,77,0,15,0,42,0\n66,0,37,0,26,0,82,0,86,0,38,0\n75,0,54,0,3,0,39,0,97,0,18,0\n53,0,87,0,40,0,65,0,29,0,90,0\n93,0,74,0,70,0,46,0,34,0,78,0\n12,0,1,0,44,0,8,0,48,0,80,0\n9,0,67,0,98,0,24,0,69,0,84,0\n31,0,11,0,62,0,30,0,14,0,19,0\n58,0,64,0,33,0,72,0,63,0,21,0\n7,0,88,0,4,0,92,0,27,0,56,0\n17,0,13,0,10,0,47,0,49,0,28,0\n79,0,25,0,32,0,59,0,5,0,16,0\n85,0,20,0,61,0,60,0,68,0,55,0\n45,0,89,0,23,0,76,0,73,0,3,0\n83,0,8,0,78,0,82,0,6,0,42,0\n67,0,93,0,95,0,97,0,77,0,11,0\n33,0,84,0,48,0,39,0,14,0,38,0\n96,0,71,0,40,0,66,0,88,0,94,0\n70,0,28,0,86,0,36,0,2,0,22,0\n44,0,63,0,34,0,87,0,7,0,62,0\n29,0,5,0,52,0,4,0,1,0,20,0\n32,0,50,0,35,0,10,0,65,0,51,0\n57,0,64,0,47,0,75,0,85,0,56,0\n92,0,76,0,41,0,53,0,13,0,37,0\n55,0,72,0,30,0,73,0,59,0,69,0\n60,0,16,0,26,0,74,0,31,0,54,0\n21,0,9,0,12,0,68,0,49,0,81,0\n80,0,58,0,15,0,25,0,27,0,18,0\n90,0,17,0,43,0,61,0,24,0,45,0\n46,0,98,0,79,0,91,0,19,0,89,0\n47,0,36,0,94,0,78,0,84,0,52,0\n6,0,4,0,38,0,85,0,3,0,77,0\n67,0,44,0,56,0,35,0,28,0,40,0\n93,0,20,0,65,0,62,0,64,0,22,0\n88,0,49,0,42,0,16,0,34,0,53,0\n75,0,71,0,73,0,60,0,81,0,8,0\n66,0,50,0,72,0,13,0,9,0,90,0\n82,0,61,0,32,0,87,0,70,0,14,0\n10,0,91,0,69,0,76,0,54,0,68,0\n7,0,83,0,48,0,26,0,98,0,11,0\n46,0,51,0,27,0,33,0,30,0,23,0\n63,0,18,0,24,0,37,0,79,0,1,0\n29,0,92,0,89,0,86,0,31,0,95,0\n17,0,19,0,55,0,21,0,97,0,15,0\n2,0,58,0,12,0,5,0,96,0,43,0\n45,0,80,0,39,0,59,0,41,0,57,0\n25,0,62,0,82,0,74,0,9,0,10,0\n"
  },
  {
    "path": "schedules/98_11.csv",
    "content": "75,0,24,0,64,0,54,0,46,0,4,0\n19,0,68,0,67,0,72,0,82,0,60,0\n29,0,11,0,18,0,21,0,97,0,10,0\n49,0,70,0,74,0,96,0,86,0,90,0\n77,0,41,0,59,0,12,0,47,0,55,0\n26,0,84,0,57,0,15,0,8,0,85,0\n6,0,83,0,35,0,43,0,91,0,45,0\n58,0,81,0,14,0,66,0,80,0,76,0\n78,0,23,0,39,0,16,0,40,0,79,0\n50,0,69,0,7,0,71,0,28,0,92,0\n98,0,3,0,33,0,73,0,48,0,22,0\n9,0,13,0,51,0,37,0,52,0,38,0\n93,0,62,0,30,0,65,0,32,0,89,0\n36,0,94,0,87,0,56,0,61,0,63,0\n31,0,2,0,44,0,27,0,42,0,25,0\n88,0,5,0,1,0,20,0,53,0,34,0\n17,0,81,0,86,0,95,0,67,0,43,0\n28,0,80,0,82,0,4,0,21,0,79,0\n50,0,91,0,76,0,54,0,74,0,60,0\n78,0,19,0,9,0,45,0,64,0,97,0\n83,0,24,0,57,0,38,0,65,0,71,0\n36,0,96,0,58,0,77,0,15,0,32,0\n85,0,14,0,37,0,92,0,94,0,2,0\n10,0,90,0,27,0,35,0,48,0,1,0\n42,0,88,0,68,0,12,0,33,0,75,0\n5,0,66,0,3,0,23,0,95,0,69,0\n87,0,41,0,31,0,6,0,11,0,30,0\n26,0,46,0,13,0,40,0,53,0,47,0\n70,0,17,0,55,0,62,0,63,0,44,0\n59,0,56,0,39,0,49,0,34,0,22,0\n61,0,52,0,72,0,84,0,98,0,20,0\n16,0,89,0,51,0,73,0,29,0,7,0\n25,0,93,0,92,0,18,0,8,0,38,0\n23,1,10,0,37,0,83,1,15,0,75,0\n94,0,30,0,50,0,21,0,43,0,9,0\n71,0,3,0,87,0,88,0,78,0,54,0\n85,0,11,0,44,0,69,0,96,0,79,0\n1,0,64,0,36,0,31,0,40,0,76,0\n26,0,33,0,19,0,55,0,28,0,86,0\n51,0,4,0,97,0,58,0,39,0,62,0\n14,0,13,0,59,0,5,0,82,0,48,0\n65,0,35,0,68,0,18,0,49,0,41,0\n63,0,25,0,47,0,84,0,66,0,91,0\n45,0,46,0,72,0,80,0,74,0,56,0\n89,0,42,0,98,0,34,0,81,0,8,0\n73,0,93,0,53,0,67,0,52,0,12,0\n2,0,24,0,95,0,61,0,77,0,29,0\n7,0,60,0,32,0,6,0,17,0,90,0\n16,0,20,0,27,0,70,0,22,0,57,0\n43,0,40,0,92,0,87,0,62,0,10,0\n39,0,86,0,48,0,18,0,94,0,88,0\n82,0,54,0,44,0,85,0,65,0,5,0\n45,0,41,0,36,0,28,0,13,0,42,0\n66,0,73,0,21,0,38,0,49,0,19,0\n52,0,71,0,89,0,56,0,75,0,95,0\n78,0,90,0,84,0,46,0,59,0,29,0\n32,0,11,0,12,0,74,0,9,0,26,0\n98,0,23,0,55,0,24,0,27,0,60,0\n76,0,8,0,61,0,6,0,4,0,68,0\n93,0,20,0,80,0,63,0,97,0,69,0\n31,0,77,0,33,0,50,0,37,0,57,0\n30,0,70,0,15,0,7,0,14,0,67,0\n34,0,35,0,17,0,79,0,3,0,25,0\n72,0,47,0,2,0,58,0,16,0,22,0\n53,0,96,0,81,0,51,0,83,0,64,0\n91,0,75,0,92,0,1,0,98,0,44,0\n73,0,10,0,45,0,84,0,23,0,71,0\n20,0,28,0,78,0,11,0,24,0,43,0\n68,0,54,0,39,0,95,0,9,0,57,0\n69,0,38,0,31,0,32,0,41,0,82,0\n60,0,48,0,49,0,12,0,97,0,25,0\n66,0,79,0,13,0,22,0,8,0,90,0\n30,0,40,0,37,0,58,0,17,0,56,0\n7,0,18,0,4,0,72,0,81,0,27,0\n46,0,61,0,88,0,14,0,35,0,89,0\n87,0,55,0,65,0,51,0,74,0,67,0\n76,0,93,0,59,0,19,0,94,0,70,0\n53,0,21,0,6,0,77,0,63,0,85,0\n34,0,62,0,83,0,26,0,2,0,36,0\n16,0,5,0,64,0,91,0,52,0,33,0\n15,0,42,0,3,0,86,0,50,0,29,0\n47,0,80,0,7,0,1,0,96,0,68,0\n17,0,12,0,31,0,61,0,13,0,78,0\n71,0,74,0,37,0,98,0,66,0,41,0\n73,0,8,0,69,0,60,0,39,0,46,0\n72,0,43,0,79,0,93,0,77,0,49,0\n75,0,82,0,22,0,84,0,55,0,11,0\n85,0,38,0,40,0,33,0,89,0,27,0\n56,0,24,0,76,0,18,0,42,0,51,0\n86,0,1,0,58,0,83,0,14,0,87,0\n36,0,4,0,30,0,10,0,19,0,44,0\n53,0,80,0,65,0,9,0,70,0,3,0\n95,0,34,0,16,0,90,0,63,0,50,0\n26,0,88,0,81,0,91,0,97,0,59,0\n20,0,92,0,29,0,45,0,48,0,67,0\n32,0,57,0,23,0,52,0,64,0,2,0\n96,0,28,0,25,0,6,0,94,0,54,0\n5,0,35,0,62,0,47,0,15,0,21,0\n79,0,38,0,60,0,75,0,86,0,61,0\n41,0,43,0,53,0,27,0,39,0,84,0\n16,0,49,0,69,0,17,0,4,0,42,0\n70,0,58,0,85,0,46,0,10,0,68,0\n13,0,97,0,77,0,1,0,3,0,30,0\n14,0,26,0,63,0,65,0,72,0,64,0\n18,0,83,0,44,0,50,0,73,0,59,0\n28,0,66,0,29,0,5,0,57,0,12,0\n62,0,9,0,67,0,25,0,76,0,98,0\n24,0,82,0,52,0,96,0,8,0,87,0\n20,0,6,0,47,0,37,0,89,0,19,0\n22,0,94,0,95,0,40,0,15,0,45,0\n7,0,54,0,33,0,78,0,2,0,35,0\n11,0,23,0,90,0,92,0,36,0,80,0\n48,0,21,0,32,0,55,0,56,0,81,0\n34,0,31,0,91,0,51,0,71,0,93,0\n74,0,73,0,4,0,88,0,25,0,13,0\n63,0,96,0,76,0,12,0,30,0,38,0\n75,0,49,0,9,0,3,0,20,0,14,0\n29,0,52,0,43,0,47,0,65,0,60,0\n1,0,62,0,28,0,85,0,59,0,72,0\n8,0,97,0,84,0,86,0,36,0,16,0\n79,0,46,0,32,0,92,0,27,0,95,0\n89,0,45,0,24,0,21,0,39,0,26,0\n70,0,88,0,98,0,40,0,50,0,11,0\n74,0,35,0,94,0,23,0,31,0,53,0\n33,0,15,0,18,0,82,0,17,0,71,0\n22,0,68,0,91,0,69,0,37,0,78,0\n87,0,5,0,2,0,81,0,93,0,90,0\n67,0,10,0,64,0,56,0,77,0,66,0\n80,0,61,0,55,0,42,0,54,0,83,0\n34,0,19,0,58,0,48,0,41,0,7,0\n57,0,51,0,40,0,44,0,6,0,14,0\n73,0,75,0,32,0,76,0,43,0,97,0\n39,0,79,0,65,0,47,0,36,0,98,0\n88,0,21,0,31,0,60,0,96,0,16,0\n24,0,12,0,35,0,37,0,81,0,70,0\n50,0,82,0,25,0,56,0,93,0,78,0\n17,0,85,0,29,0,91,0,9,0,87,0\n27,0,52,0,54,0,19,0,69,0,62,0\n10,0,13,0,83,0,20,0,95,0,33,0\n38,0,42,0,23,0,22,0,7,0,46,0\n8,0,71,0,64,0,49,0,80,0,94,0\n72,0,6,0,15,0,55,0,34,0,66,0\n67,0,57,0,63,0,11,0,1,0,4,0\n44,0,77,0,48,0,68,0,84,0,74,0\n51,0,41,0,5,0,26,0,92,0,61,0\n18,0,58,0,90,0,3,0,89,0,28,0\n86,0,53,0,59,0,45,0,30,0,2,0\n95,0,78,0,96,0,14,0,73,0,42,0\n39,0,82,0,91,0,20,0,12,0,10,0\n6,0,81,0,46,0,36,0,49,0,62,0\n23,0,50,0,65,0,1,0,17,0,19,0\n74,0,22,0,97,0,85,0,52,0,83,0\n66,0,48,0,93,0,54,0,11,0,16,0\n41,0,33,0,90,0,24,0,94,0,72,0\n86,0,77,0,40,0,5,0,9,0,71,0\n30,0,80,0,25,0,75,0,26,0,29,0\n27,0,8,0,63,0,58,0,45,0,88,0\n56,0,38,0,98,0,68,0,28,0,53,0\n47,0,67,0,61,0,32,0,44,0,34,0\n87,0,7,0,37,0,76,0,79,0,64,0\n2,0,3,0,84,0,51,0,21,0,70,0\n89,0,92,0,4,0,59,0,15,0,31,0\n55,0,43,0,18,0,57,0,13,0,69,0\n60,0,85,0,36,0,35,0,95,0,93,0\n6,0,22,0,10,0,24,0,80,0,5,0\n82,0,9,0,1,0,46,0,66,0,42,0\n27,0,11,0,65,0,94,0,91,0,73,0\n52,0,28,0,17,0,77,0,39,0,76,0\n14,0,56,0,29,0,62,0,33,0,23,0\n67,0,54,0,79,0,31,0,26,0,58,0\n92,0,84,0,49,0,83,0,88,0,30,0\n19,0,16,0,12,0,18,0,87,0,98,0\n4,0,55,0,78,0,90,0,53,0,37,0\n15,0,44,0,60,0,64,0,20,0,41,0\n57,0,38,0,45,0,81,0,3,0,47,0\n96,0,97,0,50,0,89,0,2,0,13,0\n21,0,34,0,69,0,75,0,74,0,40,0\n51,0,63,0,68,0,32,0,35,0,86,0\n7,0,71,0,25,0,43,0,59,0,61,0\n8,0,72,0,83,0,70,0,48,0,23,0\n"
  },
  {
    "path": "schedules/98_12.csv",
    "content": "83,0,23,0,86,0,72,0,3,0,47,0\n91,0,9,0,85,0,45,0,27,0,19,0\n71,0,40,0,66,0,14,0,98,0,2,0\n87,0,21,0,81,0,54,0,64,0,49,0\n82,0,29,0,53,0,95,0,94,0,80,0\n38,0,6,0,50,0,63,0,61,0,43,0\n65,0,1,0,7,0,58,0,59,0,56,0\n32,0,30,0,89,0,73,0,88,0,42,0\n22,0,11,0,36,0,10,0,93,0,69,0\n68,0,37,0,17,0,90,0,35,0,57,0\n77,0,13,0,16,0,52,0,31,0,55,0\n39,0,96,0,12,0,48,0,8,0,41,0\n26,0,67,0,79,0,25,0,24,0,97,0\n15,0,84,0,92,0,76,0,51,0,18,0\n74,0,75,0,78,0,70,0,44,0,34,0\n28,0,5,0,60,0,4,0,20,0,62,0\n46,0,72,0,11,0,33,0,7,0,6,0\n63,0,64,0,10,0,68,0,23,0,29,0\n56,0,40,0,45,0,88,0,82,0,89,0\n14,0,77,0,65,0,91,0,36,0,8,0\n67,0,32,0,3,0,43,0,16,0,12,0\n47,0,21,0,51,0,19,0,37,0,30,0\n87,0,27,0,93,0,26,0,55,0,59,0\n78,0,98,0,70,0,24,0,80,0,86,0\n92,0,83,0,33,0,96,0,66,0,62,0\n1,0,49,0,79,0,53,0,74,0,15,0\n13,0,5,0,85,0,34,0,50,0,76,0\n57,0,73,0,94,0,28,0,22,0,75,0\n38,0,42,0,84,0,58,0,69,0,60,0\n39,0,2,0,61,0,54,0,17,0,20,0\n95,0,44,0,31,0,4,0,9,0,90,0\n35,0,52,0,48,0,71,0,46,0,25,0\n18,0,41,0,11,0,81,0,97,0,89,0\n43,0,26,0,82,0,98,0,19,0,8,0\n53,0,13,0,88,0,14,0,6,0,16,0\n10,0,37,0,70,0,1,0,96,0,85,0\n7,0,68,0,74,0,60,0,77,0,15,0\n33,0,55,0,30,0,12,0,94,0,56,0\n59,0,22,0,67,0,64,0,5,0,2,0\n80,0,47,0,35,0,39,0,27,0,38,0\n90,0,71,0,34,0,69,0,92,0,63,0\n9,0,20,0,93,0,83,0,81,0,57,0\n23,0,73,0,49,0,46,0,40,0,31,0\n44,0,48,0,54,0,65,0,50,0,28,0\n17,0,58,0,95,0,76,0,86,0,97,0\n79,0,41,0,51,0,75,0,42,0,91,0\n52,0,87,0,45,0,66,0,36,0,3,0\n62,0,32,0,61,0,72,0,84,0,24,0\n29,0,25,0,4,0,18,0,78,0,21,0\n94,0,34,0,15,0,59,0,6,0,35,0\n63,0,12,0,5,0,98,0,31,0,81,0\n67,0,69,0,1,0,83,0,48,0,88,0\n65,0,47,0,71,0,68,0,13,0,11,0\n28,0,73,0,74,0,16,0,37,0,41,0\n23,0,8,0,57,0,92,0,38,0,85,0\n87,0,51,0,96,0,95,0,62,0,56,0\n36,0,79,0,40,0,60,0,27,0,64,0\n91,0,89,0,58,0,70,0,72,0,61,0\n78,0,66,0,76,0,39,0,26,0,22,0\n29,0,43,0,52,0,97,0,53,0,44,0\n14,0,24,0,54,0,46,0,18,0,9,0\n2,0,75,0,50,0,86,0,30,0,3,0\n10,0,84,0,33,0,80,0,20,0,77,0\n90,0,21,0,7,0,32,0,82,0,55,0\n19,0,17,0,25,0,42,0,49,0,4,0\n45,0,61,0,35,0,93,0,65,0,95,0\n6,0,83,0,27,0,71,0,8,0,5,0\n48,0,73,0,59,0,13,0,92,0,72,0\n28,0,12,0,15,0,66,0,69,0,29,0\n1,0,62,0,34,0,57,0,41,0,52,0\n3,0,85,0,14,0,81,0,80,0,58,0\n90,0,89,0,79,0,22,0,98,0,54,0\n42,0,33,0,39,0,74,0,21,0,86,0\n67,0,55,0,60,0,96,0,44,0,91,0\n31,0,88,0,17,0,36,0,37,0,50,0\n23,0,56,0,78,0,97,0,16,0,84,0\n45,0,9,0,64,0,30,0,25,0,7,0\n24,0,68,0,76,0,19,0,87,0,82,0\n75,0,43,0,46,0,2,0,47,0,10,0\n20,0,49,0,18,0,26,0,38,0,32,0\n4,0,93,0,51,0,94,0,63,0,77,0\n70,0,53,0,90,0,11,0,40,0,28,0\n98,0,67,0,58,0,39,0,13,0,62,0\n83,0,21,0,3,0,85,0,84,0,41,0\n25,0,37,0,55,0,23,0,14,0,34,0\n35,0,44,0,36,0,82,0,5,0,1,0\n91,0,22,0,74,0,87,0,71,0,17,0\n24,0,38,0,45,0,29,0,75,0,33,0\n78,0,6,0,60,0,52,0,10,0,73,0\n70,0,77,0,95,0,27,0,54,0,30,0\n15,0,64,0,48,0,42,0,26,0,56,0\n59,0,97,0,57,0,12,0,61,0,4,0\n31,0,19,0,86,0,20,0,89,0,92,0\n11,0,8,0,63,0,32,0,9,0,2,0\n16,0,80,0,50,0,7,0,18,0,66,0\n51,0,43,0,72,0,40,0,65,0,49,0\n68,0,69,0,47,0,93,0,96,0,53,0\n81,0,76,0,46,0,88,0,79,0,94,0\n30,0,26,0,6,0,62,0,23,0,91,0\n37,0,64,0,61,0,82,0,75,0,77,0\n87,0,20,0,42,0,67,0,14,0,73,0\n17,0,52,0,33,0,32,0,19,0,83,0\n29,0,98,0,27,0,11,0,50,0,48,0\n89,0,25,0,74,0,5,0,43,0,95,0\n63,0,18,0,1,0,13,0,60,0,22,0\n7,0,70,0,2,0,88,0,51,0,97,0\n41,0,4,0,86,0,45,0,68,0,46,0\n16,0,76,0,21,0,35,0,69,0,9,0\n65,0,38,0,15,0,81,0,55,0,10,0\n24,0,94,0,90,0,49,0,36,0,58,0\n93,0,80,0,12,0,44,0,79,0,92,0\n96,0,59,0,3,0,71,0,31,0,28,0\n54,0,85,0,57,0,47,0,78,0,40,0\n66,0,72,0,34,0,53,0,8,0,56,0\n39,0,14,0,43,0,84,0,70,0,68,0\n69,0,76,0,98,0,52,0,23,0,4,0\n88,0,95,0,10,0,63,0,41,0,19,0\n97,0,21,0,73,0,5,0,90,0,15,0\n87,0,38,0,83,0,46,0,51,0,44,0\n6,0,91,0,32,0,28,0,1,0,92,0\n27,0,3,0,20,0,94,0,78,0,65,0\n13,0,36,0,81,0,72,0,2,0,29,0\n62,0,54,0,53,0,71,0,59,0,45,0\n79,0,18,0,31,0,47,0,33,0,8,0\n93,0,39,0,37,0,24,0,89,0,7,0\n57,0,84,0,66,0,55,0,64,0,86,0\n80,0,61,0,22,0,49,0,56,0,9,0\n74,0,85,0,30,0,48,0,67,0,82,0\n26,0,50,0,96,0,42,0,35,0,77,0\n16,0,34,0,11,0,60,0,12,0,17,0\n40,0,58,0,32,0,75,0,25,0,15,0\n5,0,68,0,94,0,72,0,79,0,52,0\n69,0,91,0,81,0,13,0,78,0,59,0\n55,0,98,0,45,0,47,0,73,0,18,0\n33,0,64,0,43,0,90,0,93,0,88,0\n29,0,56,0,83,0,74,0,54,0,31,0\n10,0,71,0,9,0,51,0,86,0,39,0\n84,0,28,0,82,0,17,0,46,0,67,0\n42,0,65,0,63,0,85,0,24,0,66,0\n7,0,76,0,40,0,61,0,38,0,48,0\n2,0,77,0,41,0,87,0,25,0,53,0\n89,0,36,0,26,0,21,0,34,0,80,0\n4,0,60,0,97,0,35,0,3,0,92,0\n12,0,23,0,6,0,70,0,19,0,50,0\n37,0,22,0,44,0,27,0,58,0,62,0\n57,0,96,0,49,0,30,0,14,0,11,0\n8,0,1,0,75,0,16,0,95,0,20,0\n86,0,91,0,82,0,15,0,52,0,54,0\n5,0,53,0,7,0,17,0,78,0,63,0\n41,0,32,0,31,0,80,0,64,0,65,0\n56,0,98,0,92,0,68,0,25,0,10,0\n59,0,87,0,90,0,84,0,50,0,47,0\n19,0,77,0,62,0,3,0,38,0,79,0\n60,0,29,0,30,0,93,0,76,0,14,0\n9,0,66,0,94,0,67,0,23,0,89,0\n88,0,8,0,58,0,35,0,28,0,55,0\n72,0,75,0,12,0,71,0,4,0,26,0\n81,0,48,0,22,0,43,0,34,0,45,0\n69,0,44,0,6,0,18,0,39,0,57,0\n13,0,24,0,20,0,11,0,51,0,74,0\n73,0,70,0,85,0,36,0,33,0,61,0\n2,0,16,0,46,0,21,0,27,0,96,0\n40,0,95,0,97,0,37,0,42,0,83,0\n49,0,7,0,8,0,1,0,29,0,84,0\n90,0,3,0,56,0,91,0,53,0,76,0\n31,0,43,0,94,0,41,0,71,0,60,0\n75,0,55,0,68,0,48,0,9,0,6,0\n14,0,63,0,89,0,62,0,82,0,47,0\n85,0,72,0,17,0,44,0,98,0,64,0\n52,0,88,0,24,0,21,0,12,0,22,0\n96,0,58,0,23,0,45,0,20,0,74,0\n81,0,66,0,42,0,27,0,61,0,1,0\n11,0,15,0,4,0,87,0,80,0,37,0\n16,0,10,0,79,0,83,0,59,0,30,0\n19,0,34,0,38,0,2,0,73,0,93,0\n5,0,65,0,46,0,26,0,70,0,69,0\n92,0,49,0,77,0,95,0,78,0,39,0\n54,0,28,0,97,0,33,0,25,0,13,0\n32,0,50,0,51,0,36,0,57,0,67,0\n35,0,18,0,62,0,40,0,86,0,12,0\n47,0,66,0,48,0,21,0,20,0,91,0\n37,0,84,0,56,0,81,0,6,0,79,0\n55,0,80,0,83,0,63,0,45,0,76,0\n15,0,19,0,71,0,16,0,61,0,44,0\n60,0,88,0,39,0,75,0,23,0,65,0\n29,0,41,0,9,0,70,0,59,0,17,0\n4,0,36,0,54,0,7,0,96,0,43,0\n50,0,64,0,69,0,24,0,73,0,8,0\n31,0,78,0,72,0,67,0,93,0,42,0\n95,0,2,0,28,0,85,0,18,0,68,0\n77,0,97,0,46,0,32,0,98,0,34,0\n86,0,1,0,25,0,11,0,94,0,38,0\n14,0,26,0,27,0,90,0,74,0,52,0\n92,0,58,0,30,0,87,0,5,0,40,0\n51,0,53,0,35,0,33,0,22,0,89,0\n82,0,57,0,13,0,3,0,49,0,10,0\n"
  },
  {
    "path": "schedules/98_13.csv",
    "content": "8,0,77,0,81,0,10,0,73,0,54,0\n13,0,35,0,25,0,17,0,51,0,41,0\n88,0,39,0,86,0,79,0,89,0,12,0\n59,0,78,0,87,0,32,0,46,0,74,0\n1,0,53,0,7,0,62,0,82,0,83,0\n63,0,36,0,50,0,57,0,75,0,14,0\n9,0,70,0,91,0,96,0,80,0,95,0\n92,0,30,0,52,0,24,0,20,0,94,0\n18,0,6,0,85,0,33,0,19,0,43,0\n61,0,38,0,44,0,90,0,15,0,66,0\n4,0,2,0,45,0,5,0,72,0,31,0\n28,0,47,0,84,0,34,0,42,0,97,0\n27,0,40,0,22,0,11,0,58,0,64,0\n26,0,65,0,48,0,23,0,68,0,49,0\n55,0,98,0,3,0,76,0,29,0,71,0\n60,0,21,0,69,0,67,0,16,0,37,0\n93,0,70,0,50,0,56,0,78,0,81,0\n77,0,91,0,86,0,32,0,82,0,38,0\n95,0,61,0,43,0,25,0,59,0,7,0\n19,0,41,0,1,0,5,0,28,0,57,0\n8,0,89,0,87,0,45,0,66,0,18,0\n63,0,4,0,12,0,35,0,49,0,52,0\n98,0,53,0,11,0,44,0,72,0,9,0\n80,0,55,0,62,0,22,0,68,0,21,0\n96,0,64,0,48,0,69,0,90,0,13,0\n56,0,51,0,67,0,6,0,88,0,42,0\n2,0,46,0,79,0,29,0,73,0,94,0\n24,0,74,0,76,0,85,0,60,0,23,0\n17,0,75,0,84,0,39,0,71,0,20,0\n93,0,47,0,14,0,31,0,27,0,65,0\n40,0,15,0,33,0,34,0,10,0,83,0\n37,0,58,0,97,0,54,0,3,0,30,0\n26,0,36,0,70,0,92,0,16,0,61,0\n81,1,49,0,55,0,25,1,53,0,78,0\n21,1,82,0,52,0,87,1,9,0,69,0\n62,0,57,0,51,0,76,0,79,0,59,0\n73,0,43,0,48,0,63,0,42,0,44,0\n84,0,80,0,68,0,64,0,4,0,89,0\n56,0,85,0,66,0,40,0,31,0,1,0\n30,0,93,0,34,0,17,0,2,0,19,0\n15,0,74,0,60,0,27,0,28,0,12,0\n35,0,72,0,3,0,47,0,94,0,67,0\n96,0,22,0,20,0,98,0,26,0,14,0\n36,0,46,0,83,0,6,0,39,0,32,0\n54,0,50,0,65,0,38,0,24,0,7,0\n91,0,10,0,29,0,97,0,18,0,41,0\n8,0,75,0,16,0,11,0,13,0,88,0\n92,0,5,0,77,0,33,0,71,0,37,0\n90,0,45,0,23,0,58,0,86,0,95,0\n56,0,94,0,9,0,28,0,87,0,63,0\n3,0,59,0,82,0,17,0,68,0,44,0\n66,0,48,0,47,0,83,0,52,0,39,0\n21,0,19,0,70,0,98,0,46,0,7,0\n25,0,79,0,22,0,38,0,40,0,18,0\n81,0,88,0,97,0,13,0,32,0,49,0\n53,0,51,0,14,0,73,0,37,0,84,0\n36,0,15,0,54,0,69,0,23,0,11,0\n74,0,43,0,86,0,41,0,93,0,92,0\n35,0,42,0,16,0,55,0,77,0,31,0\n29,0,90,0,95,0,50,0,5,0,27,0\n76,0,67,0,20,0,4,0,8,0,91,0\n33,0,6,0,26,0,89,0,30,0,62,0\n34,0,12,0,64,0,71,0,45,0,57,0\n80,0,78,0,85,0,2,0,10,0,65,0\n96,0,1,0,58,0,24,0,75,0,72,0\n61,0,17,0,46,0,60,0,9,0,88,0\n41,0,52,0,14,0,21,0,40,0,23,0\n31,0,18,0,3,0,49,0,82,0,11,0\n37,0,47,0,20,0,7,0,90,0,55,0\n76,0,89,0,54,0,28,0,70,0,35,0\n53,0,19,0,66,0,15,0,86,0,4,0\n5,0,56,0,83,0,80,0,43,0,69,0\n65,0,73,0,13,0,92,0,34,0,32,0\n6,0,58,0,68,0,2,0,77,0,61,0\n75,0,38,0,42,0,97,0,62,0,26,0\n67,0,78,0,22,0,24,0,71,0,48,0\n45,0,1,0,16,0,74,0,50,0,84,0\n63,0,85,0,29,0,30,0,8,0,59,0\n10,0,94,0,44,0,96,0,12,0,25,0\n95,0,93,0,87,0,36,0,79,0,64,0\n27,0,33,0,39,0,98,0,51,0,81,0\n91,0,72,0,52,0,57,0,60,0,6,0\n4,0,34,0,62,0,37,0,23,0,18,0\n61,0,66,0,69,0,76,0,97,0,73,0\n16,0,14,0,54,0,42,0,71,0,80,0\n53,0,28,0,59,0,67,0,65,0,11,0\n15,0,41,0,44,0,89,0,2,0,55,0\n32,0,31,0,24,0,19,0,74,0,29,0\n9,0,43,0,45,0,51,0,10,0,22,0\n17,0,48,0,81,0,94,0,85,0,77,0\n60,0,39,0,5,0,25,0,58,0,93,0\n40,0,46,0,86,0,36,0,3,0,13,0\n64,0,75,0,95,0,47,0,38,0,33,0\n12,0,7,0,84,0,56,0,91,0,26,0\n78,0,82,0,92,0,96,0,72,0,8,0\n49,0,57,0,50,0,30,0,87,0,98,0\n90,0,79,0,68,0,70,0,1,0,63,0\n27,0,88,0,35,0,83,0,20,0,21,0\n81,0,54,0,74,0,67,0,34,0,44,0\n42,0,37,0,40,0,94,0,93,0,59,0\n48,0,60,0,62,0,19,0,95,0,14,0\n22,0,32,0,12,0,5,0,75,0,85,0\n10,0,24,0,4,0,89,0,36,0,82,0\n84,0,8,0,25,0,69,0,65,0,3,0\n90,0,43,0,17,0,31,0,87,0,57,0\n51,0,29,0,72,0,38,0,20,0,70,0\n6,0,73,0,71,0,50,0,86,0,26,0\n11,0,30,0,46,0,91,0,66,0,68,0\n80,0,47,0,1,0,15,0,76,0,88,0\n97,0,63,0,2,0,39,0,21,0,53,0\n64,0,92,0,23,0,35,0,56,0,55,0\n28,0,83,0,78,0,61,0,98,0,18,0\n49,0,27,0,77,0,96,0,9,0,41,0\n79,0,52,0,7,0,33,0,58,0,16,0\n13,0,82,0,6,0,45,0,14,0,25,0\n73,0,40,0,3,0,70,0,4,0,43,0\n15,0,46,0,65,0,95,0,22,0,81,0\n88,0,36,0,62,0,50,0,91,0,2,0\n8,0,23,0,71,0,47,0,51,0,19,0\n72,0,97,0,30,0,48,0,83,0,90,0\n85,0,57,0,21,0,29,0,84,0,61,0\n68,0,75,0,96,0,18,0,74,0,7,0\n38,0,16,0,39,0,87,0,76,0,34,0\n63,0,92,0,17,0,64,0,54,0,5,0\n94,0,35,0,53,0,45,0,80,0,58,0\n41,0,78,0,37,0,66,0,12,0,20,0\n86,0,11,0,60,0,98,0,56,0,10,0\n24,0,13,0,59,0,55,0,9,0,33,0\n69,0,44,0,28,0,31,0,26,0,79,0\n49,0,93,0,89,0,67,0,77,0,1,0\n32,0,27,0,19,0,52,0,42,0,3,0\n64,0,46,0,97,0,8,0,7,0,14,0\n96,0,81,0,38,0,35,0,43,0,84,0\n72,0,63,0,66,0,80,0,51,0,74,0\n98,0,25,0,68,0,88,0,37,0,85,0\n30,0,39,0,55,0,82,0,95,0,40,0\n60,0,47,0,87,0,92,0,44,0,4,0\n48,0,9,0,16,0,86,0,57,0,2,0\n5,0,70,0,11,0,34,0,24,0,6,0\n18,0,77,0,69,0,50,0,59,0,20,0\n54,0,41,0,79,0,75,0,65,0,83,0\n28,0,21,0,91,0,45,0,73,0,93,0\n26,0,17,0,29,0,52,0,78,0,15,0\n62,0,13,0,58,0,12,0,10,0,67,0\n31,0,22,0,33,0,53,0,36,0,76,0\n71,0,94,0,32,0,49,0,56,0,90,0\n1,0,89,0,23,0,61,0,27,0,42,0\n74,0,25,0,9,0,4,0,30,0,47,0\n64,0,81,0,86,0,72,0,59,0,37,0\n87,0,40,0,6,0,48,0,80,0,98,0\n88,0,79,0,34,0,60,0,55,0,26,0\n83,0,3,0,2,0,12,0,14,0,24,0\n66,0,10,0,76,0,21,0,95,0,17,0\n77,0,11,0,43,0,78,0,62,0,39,0\n91,0,73,0,31,0,94,0,75,0,23,0\n8,0,61,0,32,0,50,0,33,0,35,0\n82,0,41,0,90,0,84,0,67,0,54,0\n38,0,85,0,71,0,58,0,36,0,28,0\n44,0,51,0,97,0,46,0,1,0,92,0\n49,0,69,0,7,0,42,0,22,0,29,0\n89,0,63,0,45,0,96,0,19,0,65,0\n18,0,70,0,57,0,53,0,27,0,13,0\n16,0,68,0,20,0,93,0,56,0,15,0\n5,0,74,0,55,0,52,0,11,0,73,0\n12,0,23,0,50,0,17,0,72,0,40,0\n9,0,79,0,4,0,78,0,6,0,54,0\n75,0,80,0,92,0,3,0,81,0,28,0\n51,0,83,0,61,0,64,0,91,0,49,0\n98,0,94,0,8,0,24,0,41,0,95,0\n21,0,31,0,37,0,38,0,48,0,89,0\n20,0,42,0,10,0,46,0,53,0,57,0\n65,0,30,0,84,0,60,0,18,0,35,0\n14,0,88,0,44,0,29,0,77,0,33,0\n59,0,66,0,5,0,16,0,47,0,96,0\n34,0,36,0,52,0,43,0,1,0,68,0\n67,0,25,0,27,0,86,0,87,0,97,0\n26,0,19,0,76,0,58,0,56,0,82,0\n15,0,7,0,13,0,71,0,63,0,93,0\n32,0,69,0,85,0,70,0,45,0,62,0\n2,0,39,0,28,0,22,0,90,0,8,0\n42,0,11,0,21,0,92,0,50,0,83,0\n55,0,54,0,18,0,51,0,48,0,46,0\n10,0,49,0,6,0,64,0,37,0,74,0\n52,0,61,0,86,0,34,0,96,0,31,0\n58,0,29,0,9,0,81,0,66,0,89,0\n84,0,78,0,44,0,5,0,76,0,13,0\n77,0,24,0,56,0,79,0,47,0,45,0\n71,0,12,0,95,0,69,0,53,0,68,0\n3,0,57,0,93,0,88,0,38,0,23,0\n4,0,72,0,39,0,85,0,26,0,41,0\n98,0,63,0,90,0,25,0,16,0,62,0\n1,0,20,0,2,0,60,0,32,0,40,0\n59,0,35,0,91,0,87,0,19,0,22,0\n80,0,27,0,73,0,17,0,7,0,36,0\n94,0,33,0,82,0,70,0,65,0,97,0\n67,0,14,0,30,0,15,0,75,0,43,0\n49,0,18,0,24,0,44,0,21,0,86,0\n5,0,48,0,3,0,79,0,61,0,10,0\n25,0,46,0,76,0,52,0,77,0,50,0\n51,0,95,0,37,0,32,0,11,0,2,0\n47,0,89,0,57,0,78,0,40,0,69,0\n88,0,53,0,96,0,85,0,87,0,54,0\n20,0,97,0,23,0,6,0,63,0,22,0\n45,0,30,0,7,0,81,0,41,0,36,0\n65,0,71,0,72,0,62,0,91,0,27,0\n67,0,68,0,19,0,73,0,39,0,9,0\n94,0,83,0,38,0,4,0,13,0,55,0\n34,0,75,0,98,0,66,0,93,0,35,0\n56,0,70,0,14,0,74,0,8,0,17,0\n29,0,43,0,64,0,28,0,82,0,16,0\n31,0,58,0,15,0,92,0,59,0,84,0\n42,0,90,0,33,0,12,0,80,0,60,0\n26,0,81,0,21,0,1,0,25,0,87,0\n"
  },
  {
    "path": "schedules/98_14.csv",
    "content": "10,0,25,0,86,0,84,0,37,0,15,0\n11,0,9,0,24,0,89,0,51,0,64,0\n54,0,75,0,34,0,21,0,39,0,72,0\n74,0,23,0,93,0,53,0,35,0,81,0\n68,0,73,0,63,0,31,0,16,0,69,0\n6,0,76,0,29,0,48,0,5,0,56,0\n91,0,52,0,50,0,30,0,41,0,18,0\n87,0,38,0,7,0,57,0,2,0,90,0\n13,0,78,0,61,0,27,0,43,0,32,0\n67,0,55,0,22,0,58,0,95,0,17,0\n94,0,12,0,26,0,71,0,80,0,85,0\n14,0,97,0,59,0,1,0,40,0,65,0\n79,0,4,0,19,0,70,0,8,0,28,0\n47,0,83,0,98,0,36,0,49,0,3,0\n60,0,33,0,44,0,20,0,92,0,45,0\n46,0,88,0,62,0,82,0,66,0,42,0\n77,0,68,0,6,0,96,0,54,0,43,0\n78,0,38,0,50,0,23,0,58,0,25,0\n56,0,34,0,91,0,80,0,2,0,35,0\n40,0,26,0,27,0,52,0,89,0,63,0\n21,0,10,0,22,0,24,0,16,0,48,0\n5,0,57,0,93,0,97,0,64,0,8,0\n3,0,11,0,71,0,81,0,59,0,31,0\n90,0,37,0,47,0,28,0,69,0,30,0\n95,0,20,0,32,0,62,0,19,0,53,0\n9,0,46,0,55,0,15,0,98,0,87,0\n39,0,67,0,42,0,70,0,72,0,92,0\n61,0,49,0,75,0,86,0,14,0,73,0\n84,0,18,0,77,0,4,0,76,0,44,0\n66,0,17,0,94,0,74,0,96,0,1,0\n45,0,41,0,85,0,65,0,7,0,88,0\n36,0,60,0,83,0,51,0,12,0,79,0\n13,0,82,0,53,0,29,0,33,0,81,0\n11,1,22,0,93,0,25,1,46,0,19,0\n55,0,26,0,16,0,3,0,2,0,62,0\n97,0,75,0,58,0,9,0,20,0,61,0\n4,0,30,0,15,0,5,0,59,0,34,0\n39,0,44,0,14,0,8,0,94,0,90,0\n85,0,68,0,47,0,48,0,78,0,42,0\n56,0,95,0,23,0,18,0,1,0,7,0\n64,0,43,0,28,0,98,0,29,0,45,0\n6,0,72,0,27,0,79,0,50,0,49,0\n76,0,77,0,21,0,80,0,73,0,33,0\n66,0,57,0,51,0,13,0,41,0,86,0\n88,0,84,0,35,0,24,0,96,0,40,0\n74,0,70,0,12,0,69,0,52,0,10,0\n83,0,67,0,63,0,32,0,37,0,89,0\n38,0,60,0,54,0,71,0,17,0,31,0\n65,0,87,0,82,0,91,0,92,0,36,0\n27,0,44,0,25,0,59,0,9,0,48,0\n11,0,62,0,72,0,4,0,93,0,80,0\n34,0,58,0,77,0,49,0,16,0,8,0\n66,0,2,0,24,0,79,0,23,0,20,0\n46,0,69,0,81,0,85,0,21,0,18,0\n47,0,39,0,52,0,57,0,95,0,33,0\n28,0,10,0,42,0,94,0,56,0,50,0\n97,0,29,0,63,0,15,0,7,0,96,0\n64,0,71,0,78,0,30,0,36,0,88,0\n60,0,19,0,65,0,76,0,43,0,89,0\n70,0,35,0,51,0,14,0,22,0,37,0\n92,0,75,0,74,0,90,0,98,0,32,0\n84,0,83,0,73,0,13,0,26,0,54,0\n40,0,38,0,3,0,61,0,82,0,91,0\n53,0,31,0,1,0,55,0,5,0,45,0\n41,0,12,0,6,0,67,0,86,0,87,0\n17,0,18,0,20,0,68,0,25,0,72,0\n63,0,33,0,2,0,10,0,88,0,59,0\n24,0,36,0,97,0,37,0,56,0,85,0\n52,0,81,0,75,0,92,0,76,0,46,0\n42,0,62,0,98,0,77,0,35,0,22,0\n16,0,51,0,27,0,29,0,65,0,74,0\n40,0,95,0,79,0,90,0,78,0,9,0\n23,0,43,0,61,0,83,0,41,0,8,0\n32,0,87,0,73,0,17,0,47,0,60,0\n30,0,14,0,55,0,7,0,26,0,93,0\n4,0,69,0,21,0,3,0,1,0,13,0\n71,0,53,0,15,0,70,0,19,0,58,0\n45,0,49,0,12,0,84,0,66,0,38,0\n67,0,94,0,64,0,48,0,34,0,31,0\n82,0,50,0,57,0,68,0,54,0,89,0\n91,0,86,0,96,0,39,0,5,0,11,0\n28,0,80,0,24,0,6,0,44,0,75,0\n78,0,98,0,65,0,81,0,26,0,10,0\n17,0,21,0,59,0,20,0,51,0,93,0\n71,0,92,0,90,0,56,0,61,0,55,0\n74,0,33,0,38,0,30,0,83,0,46,0\n42,0,84,0,31,0,27,0,97,0,41,0\n52,0,1,0,68,0,67,0,29,0,2,0\n8,0,15,0,85,0,50,0,76,0,22,0\n25,0,18,0,14,0,12,0,64,0,96,0\n19,0,49,0,69,0,40,0,54,0,5,0\n48,0,77,0,63,0,91,0,60,0,28,0\n47,0,6,0,34,0,70,0,23,0,82,0\n9,0,43,0,66,0,53,0,3,0,80,0\n94,0,36,0,73,0,4,0,57,0,62,0\n39,0,37,0,13,0,87,0,88,0,79,0\n58,0,7,0,44,0,86,0,32,0,35,0\n45,0,72,0,95,0,11,0,16,0,89,0\n5,0,25,0,21,0,83,0,74,0,42,0\n48,0,14,0,8,0,55,0,20,0,69,0\n92,0,85,0,6,0,38,0,59,0,63,0\n67,0,15,0,17,0,65,0,81,0,90,0\n66,0,29,0,34,0,50,0,71,0,40,0\n84,0,30,0,60,0,57,0,75,0,23,0\n44,0,43,0,79,0,52,0,73,0,22,0\n91,0,58,0,37,0,46,0,72,0,93,0\n54,0,70,0,7,0,24,0,61,0,98,0\n3,0,87,0,89,0,97,0,77,0,10,0\n96,0,53,0,47,0,4,0,2,0,51,0\n26,0,36,0,28,0,27,0,39,0,18,0\n68,0,95,0,62,0,56,0,12,0,13,0\n82,0,16,0,45,0,9,0,19,0,86,0\n11,0,49,0,94,0,33,0,78,0,41,0\n64,0,32,0,88,0,80,0,76,0,1,0\n31,0,92,0,83,0,35,0,50,0,20,0\n6,0,93,0,90,0,25,0,66,0,73,0\n24,0,53,0,43,0,38,0,69,0,67,0\n2,0,58,0,84,0,5,0,14,0,85,0\n89,0,61,0,70,0,30,0,62,0,48,0\n29,0,12,0,59,0,72,0,8,0,47,0\n11,0,13,0,65,0,28,0,23,0,44,0\n40,0,16,0,56,0,51,0,39,0,32,0\n37,0,77,0,74,0,45,0,15,0,18,0\n96,0,10,0,78,0,31,0,55,0,76,0\n1,0,63,0,41,0,75,0,22,0,82,0\n33,0,36,0,42,0,17,0,7,0,9,0\n91,0,21,0,19,0,88,0,57,0,98,0\n46,0,3,0,86,0,68,0,94,0,60,0\n54,0,87,0,80,0,27,0,95,0,81,0\n71,0,35,0,49,0,64,0,52,0,4,0\n26,0,79,0,69,0,97,0,34,0,11,0\n32,0,70,0,38,0,5,0,66,0,18,0\n28,0,55,0,59,0,73,0,82,0,67,0\n13,0,76,0,15,0,31,0,36,0,2,0\n1,0,75,0,48,0,37,0,42,0,19,0\n25,0,98,0,41,0,72,0,40,0,53,0\n50,0,14,0,80,0,86,0,63,0,47,0\n30,0,9,0,35,0,39,0,10,0,68,0\n34,0,81,0,51,0,62,0,61,0,44,0\n92,0,52,0,17,0,97,0,88,0,23,0\n29,0,26,0,95,0,49,0,74,0,60,0\n57,0,24,0,78,0,12,0,46,0,77,0\n89,0,71,0,8,0,84,0,91,0,6,0\n79,0,33,0,93,0,56,0,54,0,3,0\n65,0,22,0,4,0,7,0,90,0,83,0\n27,0,94,0,96,0,58,0,21,0,45,0\n87,0,20,0,64,0,16,0,85,0,43,0\n19,0,72,0,44,0,55,0,36,0,10,0\n37,0,9,0,5,0,60,0,50,0,13,0\n53,0,63,0,12,0,39,0,17,0,61,0\n97,0,76,0,2,0,25,0,70,0,49,0\n51,0,26,0,8,0,92,0,48,0,54,0\n46,0,89,0,59,0,23,0,80,0,90,0\n77,0,88,0,27,0,95,0,14,0,75,0\n35,0,21,0,83,0,78,0,66,0,87,0\n52,0,93,0,85,0,98,0,82,0,31,0\n4,0,96,0,56,0,41,0,16,0,38,0\n7,0,22,0,3,0,28,0,84,0,34,0\n42,0,57,0,43,0,58,0,18,0,11,0\n94,0,81,0,32,0,20,0,30,0,6,0\n69,0,33,0,65,0,62,0,86,0,71,0\n40,0,68,0,64,0,74,0,15,0,47,0\n79,0,24,0,73,0,1,0,91,0,29,0\n45,0,80,0,8,0,67,0,51,0,25,0\n17,0,5,0,2,0,44,0,41,0,89,0\n54,0,97,0,16,0,12,0,28,0,78,0\n36,0,48,0,90,0,43,0,84,0,11,0\n13,0,52,0,7,0,94,0,19,0,77,0\n53,0,18,0,9,0,6,0,88,0,83,0\n62,0,23,0,31,0,40,0,21,0,37,0\n92,0,10,0,1,0,27,0,34,0,57,0\n96,0,85,0,50,0,67,0,33,0,32,0\n38,0,29,0,75,0,93,0,55,0,70,0\n24,0,72,0,87,0,15,0,86,0,26,0\n39,0,22,0,20,0,64,0,82,0,49,0\n3,0,63,0,30,0,65,0,95,0,42,0\n66,0,14,0,4,0,91,0,81,0,68,0\n98,0,69,0,56,0,59,0,60,0,58,0\n61,0,35,0,76,0,47,0,45,0,79,0\n74,0,46,0,51,0,73,0,71,0,97,0\n44,0,88,0,2,0,93,0,12,0,50,0\n89,0,55,0,85,0,25,0,34,0,13,0\n18,0,19,0,33,0,24,0,31,0,90,0\n83,0,48,0,86,0,95,0,52,0,96,0\n40,0,81,0,36,0,77,0,1,0,8,0\n20,0,4,0,70,0,9,0,54,0,63,0\n62,0,47,0,59,0,10,0,43,0,75,0\n45,0,69,0,23,0,91,0,42,0,87,0\n60,0,35,0,72,0,38,0,65,0,94,0\n7,0,37,0,73,0,11,0,53,0,27,0\n28,0,32,0,57,0,49,0,15,0,14,0\n80,0,92,0,5,0,78,0,22,0,68,0\n46,0,66,0,56,0,61,0,26,0,64,0\n29,0,39,0,41,0,6,0,3,0,58,0\n74,0,21,0,67,0,82,0,84,0,79,0\n71,0,98,0,30,0,17,0,16,0,76,0\n60,0,25,0,88,0,81,0,47,0,70,0\n1,0,86,0,90,0,53,0,85,0,77,0\n49,0,18,0,48,0,87,0,93,0,63,0\n65,0,55,0,12,0,42,0,40,0,32,0\n80,0,96,0,59,0,61,0,52,0,36,0\n46,0,31,0,7,0,51,0,72,0,43,0\n50,0,23,0,19,0,39,0,26,0,4,0\n11,0,82,0,10,0,14,0,17,0,83,0\n9,0,84,0,69,0,29,0,92,0,94,0\n33,0,37,0,16,0,91,0,44,0,66,0\n76,0,62,0,58,0,74,0,28,0,54,0\n89,0,20,0,15,0,73,0,56,0,78,0\n34,0,8,0,68,0,98,0,38,0,27,0\n45,0,22,0,30,0,6,0,13,0,97,0\n71,0,2,0,41,0,21,0,24,0,95,0\n67,0,5,0,75,0,3,0,57,0,35,0\n79,0,86,0,59,0,64,0,55,0,18,0\n1,0,84,0,70,0,50,0,46,0,16,0\n14,0,52,0,62,0,9,0,85,0,60,0\n31,0,89,0,58,0,4,0,12,0,88,0\n76,0,82,0,26,0,51,0,94,0,37,0\n28,0,25,0,61,0,33,0,68,0,87,0\n96,0,42,0,90,0,24,0,93,0,34,0\n95,0,11,0,15,0,35,0,98,0,6,0\n57,0,44,0,64,0,69,0,40,0,83,0\n72,0,78,0,3,0,63,0,19,0,74,0\n56,0,65,0,8,0,75,0,21,0,53,0\n54,0,23,0,32,0,22,0,29,0,36,0\n91,0,13,0,43,0,97,0,49,0,17,0\n7,0,41,0,80,0,38,0,10,0,79,0\n5,0,47,0,20,0,67,0,27,0,71,0\n39,0,48,0,81,0,45,0,73,0,2,0\n30,0,77,0,25,0,92,0,66,0,11,0\n"
  },
  {
    "path": "schedules/98_2.csv",
    "content": "10,0,70,0,29,0,81,0,13,0,12,0\n16,0,52,0,89,0,53,0,1,0,85,0\n75,0,86,0,11,0,90,0,32,0,66,0\n36,0,82,0,19,0,49,0,69,0,30,0\n5,0,45,0,74,0,50,0,20,0,80,0\n84,0,63,0,78,0,27,0,42,0,94,0\n34,0,59,0,23,0,73,0,25,0,61,0\n97,0,55,0,21,0,60,0,44,0,54,0\n40,0,39,0,68,0,8,0,77,0,7,0\n56,0,98,0,38,0,18,0,62,0,71,0\n67,0,33,0,51,0,31,0,88,0,91,0\n95,0,24,0,48,0,96,0,37,0,46,0\n15,0,72,0,87,0,76,0,58,0,4,0\n28,0,6,0,79,0,93,0,43,0,9,0\n92,0,14,0,41,0,35,0,2,0,26,0\n22,0,17,0,83,0,65,0,64,0,3,0\n57,0,94,0,90,0,47,0,97,0,52,0\n74,0,75,0,12,0,21,0,71,0,36,0\n91,0,11,0,27,0,45,0,61,0,39,0\n7,0,32,0,96,0,53,0,44,0,38,0\n76,0,73,0,20,0,85,0,46,0,29,0\n82,0,70,0,28,0,48,0,5,0,72,0\n13,0,40,0,50,0,18,0,41,0,43,0\n54,0,3,0,88,0,16,0,79,0,62,0\n42,0,77,0,25,0,89,0,19,0,9,0\n67,0,15,0,60,0,98,0,92,0,83,0\n4,0,33,0,84,0,10,0,95,0,6,0\n78,0,47,0,24,0,51,0,56,0,86,0\n37,0,57,0,69,0,66,0,14,0,59,0\n49,0,93,0,58,0,35,0,23,0,22,0\n64,0,2,0,30,0,68,0,87,0,63,0\n8,0,55,0,1,0,17,0,26,0,31,0\n65,0,80,0,79,1,81,0,34,0,96,1\n"
  },
  {
    "path": "schedules/98_3.csv",
    "content": "85,0,37,0,76,0,32,0,38,0,91,0\n28,0,17,0,83,0,49,0,45,0,36,0\n18,0,21,0,29,0,84,0,98,0,75,0\n15,0,33,0,16,0,48,0,34,0,10,0\n82,0,60,0,9,0,39,0,95,0,70,0\n62,0,96,0,93,0,47,0,7,0,57,0\n46,0,23,0,71,0,2,0,63,0,92,0\n53,0,4,0,72,0,30,0,24,0,42,0\n6,0,25,0,87,0,61,0,54,0,65,0\n64,0,89,0,50,0,69,0,14,0,35,0\n3,0,51,0,68,0,94,0,67,0,97,0\n26,0,58,0,81,0,56,0,43,0,8,0\n66,0,40,0,31,0,73,0,59,0,88,0\n44,0,12,0,13,0,20,0,27,0,5,0\n52,0,22,0,78,0,55,0,90,0,86,0\n1,0,11,0,41,0,19,0,80,0,77,0\n74,0,49,0,38,0,79,0,62,0,75,0\n65,0,64,0,39,0,98,0,28,0,37,0\n10,0,14,0,60,0,23,0,53,0,68,0\n84,0,92,0,7,0,4,0,82,0,25,0\n59,0,8,0,2,0,50,0,95,0,85,0\n21,0,45,0,24,0,20,0,73,0,70,0\n57,0,63,0,69,0,3,0,16,0,40,0\n71,0,5,0,30,0,83,0,96,0,87,0\n91,0,46,0,48,0,81,0,54,0,1,0\n78,0,47,0,36,0,15,0,77,0,94,0\n76,0,11,0,55,0,72,0,17,0,89,0\n93,0,26,0,6,0,44,0,34,0,52,0\n66,0,32,0,90,0,35,0,51,0,80,0\n18,0,74,0,86,0,58,0,33,0,12,0\n43,0,61,0,27,0,79,0,22,0,67,0\n42,0,97,0,19,0,9,0,88,0,13,0\n29,0,31,0,49,0,56,0,41,0,71,0\n94,0,25,0,96,0,64,0,95,0,21,0\n48,0,92,0,5,0,28,0,60,0,76,0\n77,0,91,0,3,0,17,0,53,0,2,0\n38,0,20,0,54,0,84,0,68,0,30,0\n80,0,98,0,40,0,74,0,10,0,26,0\n35,0,44,0,59,0,33,0,11,0,70,0\n69,0,22,0,66,0,6,0,62,0,36,0\n24,0,7,0,56,0,34,0,46,0,13,0\n75,0,52,0,47,0,41,0,97,0,37,0\n12,0,39,0,23,0,4,0,45,0,87,0\n8,0,32,0,61,0,86,0,82,0,72,0\n65,0,9,0,79,0,90,0,57,0,15,0\n89,0,42,0,67,0,85,0,81,0,83,0\n88,0,14,0,1,0,78,0,63,0,18,0\n50,0,73,0,51,0,58,0,27,0,29,0\n19,0,93,0,43,0,16,0,55,0,31,0\n"
  },
  {
    "path": "schedules/98_4.csv",
    "content": "79,0,81,0,47,0,22,0,90,0,57,0\n33,0,65,0,66,0,30,0,80,0,63,0\n10,0,94,0,61,0,4,0,45,0,84,0\n97,0,24,0,23,0,72,0,46,0,52,0\n21,0,50,0,64,0,56,0,62,0,6,0\n58,0,71,0,78,0,96,0,2,0,83,0\n88,0,19,0,13,0,92,0,39,0,11,0\n89,0,44,0,35,0,69,0,86,0,82,0\n12,0,59,0,91,0,37,0,41,0,76,0\n93,0,9,0,49,0,7,0,26,0,67,0\n98,0,1,0,54,0,31,0,25,0,36,0\n70,0,48,0,20,0,87,0,14,0,42,0\n55,0,16,0,32,0,5,0,8,0,43,0\n74,0,15,0,75,0,3,0,27,0,51,0\n18,0,73,0,17,0,85,0,40,0,34,0\n29,0,68,0,53,0,77,0,95,0,28,0\n38,0,80,0,46,0,60,0,96,0,59,0\n78,0,82,0,7,0,88,0,21,0,33,0\n62,0,13,0,61,0,37,0,71,0,23,0\n69,0,39,0,64,0,66,0,70,0,31,0\n49,0,56,0,63,0,1,0,10,0,81,0\n36,0,2,0,14,0,26,0,44,0,91,0\n58,0,43,0,65,0,94,0,25,0,92,0\n52,0,67,0,32,0,6,0,51,0,35,0\n89,0,29,0,47,0,38,0,17,0,48,0\n77,0,22,0,34,0,24,0,74,0,30,0\n41,0,11,0,83,0,68,0,15,0,90,0\n54,0,53,0,3,0,8,0,12,0,18,0\n57,0,20,0,45,0,95,0,40,0,75,0\n93,0,85,0,84,0,42,0,97,0,55,0\n76,0,72,0,4,0,73,0,50,0,19,0\n60,0,9,0,5,0,86,0,79,0,87,0\n27,0,28,0,81,0,98,0,16,0,78,0\n22,1,89,0,7,0,70,1,46,0,56,0\n26,1,25,0,35,0,61,1,11,0,38,0\n74,0,6,0,53,0,63,0,43,0,59,0\n14,0,71,0,77,0,41,0,65,0,47,0\n10,0,37,0,33,0,36,0,58,0,3,0\n66,0,83,0,51,0,62,0,1,0,24,0\n86,0,85,0,52,0,95,0,4,0,91,0\n98,0,42,0,13,0,50,0,44,0,5,0\n17,0,97,0,87,0,45,0,64,0,12,0\n20,0,23,0,31,0,88,0,28,0,79,0\n92,0,2,0,49,0,15,0,18,0,21,0\n40,0,76,0,60,0,94,0,39,0,55,0\n19,0,16,0,93,0,82,0,29,0,57,0\n30,0,68,0,75,0,32,0,54,0,48,0\n84,0,67,0,96,0,34,0,90,0,72,0\n8,0,69,0,80,0,73,0,27,0,9,0\n45,0,41,0,51,0,98,0,89,0,26,0\n56,0,59,0,17,0,33,0,71,0,79,0\n66,0,81,0,46,0,53,0,21,0,61,0\n78,0,94,0,5,0,70,0,77,0,85,0\n12,0,74,0,92,0,52,0,10,0,93,0\n91,0,40,0,6,0,42,0,49,0,25,0\n82,0,64,0,63,0,20,0,58,0,84,0\n43,0,38,0,73,0,36,0,39,0,22,0\n28,0,11,0,62,0,47,0,86,0,7,0\n27,0,88,0,96,0,35,0,55,0,54,0\n97,0,4,0,90,0,75,0,9,0,65,0\n31,0,80,0,24,0,16,0,2,0,13,0\n34,0,1,0,95,0,3,0,19,0,48,0\n44,0,8,0,37,0,72,0,60,0,68,0\n30,0,18,0,29,0,23,0,67,0,87,0\n50,0,14,0,57,0,83,0,32,0,69,0\n15,0,22,0,26,0,76,0,70,0,61,0\n"
  },
  {
    "path": "schedules/98_5.csv",
    "content": "60,0,42,0,55,0,87,0,96,0,83,0\n68,0,38,0,12,0,8,0,37,0,36,0\n75,0,67,0,9,0,50,0,78,0,35,0\n69,0,11,0,66,0,81,0,89,0,49,0\n32,0,63,0,34,0,6,0,77,0,39,0\n65,0,98,0,56,0,20,0,41,0,76,0\n31,0,95,0,94,0,92,0,19,0,29,0\n4,0,79,0,18,0,52,0,51,0,73,0\n46,0,47,0,54,0,33,0,62,0,53,0\n45,0,82,0,57,0,27,0,90,0,85,0\n13,0,3,0,10,0,48,0,58,0,84,0\n21,0,16,0,17,0,74,0,91,0,30,0\n44,0,61,0,28,0,86,0,97,0,43,0\n70,0,2,0,93,0,26,0,1,0,80,0\n72,0,59,0,64,0,7,0,25,0,40,0\n88,0,23,0,5,0,71,0,22,0,15,0\n14,0,92,0,53,0,24,0,65,0,68,0\n32,0,8,0,98,0,33,0,81,0,55,0\n19,0,89,0,76,0,63,0,42,0,51,0\n21,0,50,0,96,0,45,0,52,0,20,0\n41,0,37,0,78,0,84,0,4,0,17,0\n61,0,73,0,46,0,94,0,49,0,3,0\n29,0,64,0,38,0,69,0,10,0,44,0\n36,0,48,0,43,0,72,0,15,0,30,0\n58,0,87,0,27,0,24,0,6,0,22,0\n39,0,74,0,71,0,79,0,90,0,67,0\n93,0,40,0,75,0,62,0,82,0,23,0\n28,0,85,0,1,0,91,0,47,0,60,0\n13,0,9,0,86,0,31,0,57,0,56,0\n34,0,97,0,2,0,83,0,88,0,25,0\n66,0,95,0,26,0,16,0,35,0,18,0\n77,0,80,0,7,0,11,0,14,0,5,0\n70,0,12,0,45,0,59,0,54,0,94,0\n74,1,84,0,22,0,98,1,51,0,53,0\n39,0,10,0,36,0,82,0,50,0,17,0\n37,0,6,0,90,0,60,0,69,0,33,0\n75,0,87,0,71,0,89,0,65,0,44,0\n20,0,2,0,91,0,86,0,63,0,58,0\n27,0,64,0,15,0,31,0,96,0,8,0\n21,0,93,0,56,0,73,0,78,0,11,0\n19,0,41,0,81,0,83,0,5,0,9,0\n29,0,62,0,43,0,1,0,3,0,79,0\n97,0,18,0,70,0,38,0,13,0,14,0\n30,0,47,0,26,0,55,0,67,0,40,0\n68,0,23,0,35,0,28,0,72,0,34,0\n42,0,48,0,7,0,52,0,46,0,16,0\n76,0,77,0,25,0,66,0,57,0,54,0\n24,0,49,0,12,0,88,0,95,0,32,0\n4,0,92,0,61,0,85,0,59,0,80,0\n3,0,11,0,27,0,91,0,9,0,71,0\n6,0,96,0,38,0,5,0,84,0,2,0\n78,0,94,0,55,0,65,0,43,0,18,0\n98,0,69,0,72,0,67,0,70,0,17,0\n28,0,56,0,19,0,75,0,16,0,45,0\n8,0,46,0,93,0,66,0,29,0,60,0\n51,0,40,0,31,0,32,0,14,0,41,0\n80,0,79,0,82,0,13,0,95,0,68,0\n37,0,54,0,42,0,64,0,61,0,34,0\n1,0,20,0,77,0,81,0,30,0,12,0\n52,0,49,0,47,0,87,0,15,0,97,0\n10,0,86,0,35,0,25,0,62,0,89,0\n24,0,57,0,33,0,59,0,73,0,74,0\n23,0,4,0,83,0,39,0,7,0,76,0\n63,0,92,0,48,0,90,0,88,0,26,0\n85,0,44,0,36,0,58,0,21,0,53,0\n50,0,91,0,72,0,22,0,46,0,31,0\n20,0,5,0,3,0,34,0,75,0,55,0\n95,0,43,0,40,0,37,0,77,0,71,0\n62,0,67,0,16,0,32,0,64,0,65,0\n1,0,82,0,69,0,97,0,35,0,74,0\n83,0,61,0,79,0,24,0,47,0,56,0\n28,0,59,0,29,0,2,0,49,0,14,0\n87,0,88,0,36,0,98,0,80,0,57,0\n96,0,22,0,33,0,25,0,93,0,48,0\n26,0,45,0,78,0,10,0,42,0,23,0\n30,0,41,0,6,0,94,0,66,0,86,0\n15,0,68,0,84,0,19,0,39,0,44,0\n58,0,73,0,89,0,38,0,50,0,92,0\n7,0,81,0,51,0,13,0,90,0,21,0\n63,0,53,0,17,0,27,0,18,0,12,0\n76,0,52,0,85,0,70,0,8,0,9,0\n11,0,60,0,74,0,4,0,54,0,98,0\n"
  },
  {
    "path": "schedules/98_6.csv",
    "content": "91,0,94,0,44,0,42,0,84,0,35,0\n57,0,5,0,39,0,98,0,71,0,7,0\n65,0,88,0,9,0,32,0,27,0,53,0\n77,0,63,0,49,0,60,0,22,0,59,0\n81,0,78,0,17,0,61,0,24,0,31,0\n62,0,87,0,56,0,2,0,74,0,13,0\n30,0,64,0,95,0,47,0,69,0,90,0\n97,0,1,0,14,0,21,0,15,0,16,0\n67,0,18,0,11,0,29,0,96,0,54,0\n51,0,52,0,19,0,82,0,3,0,85,0\n37,0,46,0,76,0,25,0,50,0,8,0\n75,0,34,0,79,0,4,0,72,0,23,0\n73,0,6,0,80,0,58,0,40,0,10,0\n43,0,41,0,12,0,20,0,83,0,68,0\n92,0,28,0,45,0,86,0,70,0,89,0\n93,0,36,0,33,0,48,0,38,0,66,0\n26,0,77,0,21,0,55,0,98,0,74,0\n61,0,97,0,2,0,71,0,85,0,96,0\n88,0,50,0,29,0,17,0,60,0,30,0\n24,0,72,0,13,0,35,0,49,0,39,0\n54,0,37,0,10,0,23,0,42,0,81,0\n6,0,75,0,16,0,20,0,95,0,65,0\n94,0,80,0,79,0,52,0,8,0,41,0\n56,0,89,0,32,0,93,0,19,0,67,0\n18,0,70,0,66,0,4,0,47,0,78,0\n15,0,36,0,69,0,44,0,59,0,3,0\n51,0,90,0,11,0,62,0,22,0,91,0\n58,0,46,0,68,0,57,0,9,0,63,0\n33,0,27,0,1,0,5,0,87,0,12,0\n31,0,26,0,40,0,7,0,76,0,45,0\n73,0,64,0,38,0,92,0,53,0,55,0\n84,0,82,0,25,0,14,0,28,0,43,0\n86,0,48,0,56,0,34,0,83,0,85,0\n17,0,21,0,2,0,8,0,19,0,36,0\n6,0,81,0,72,0,70,0,90,0,29,0\n98,0,22,0,41,0,35,0,9,0,97,0\n62,0,15,0,32,0,50,0,58,0,24,0\n30,0,46,0,74,0,1,0,79,0,40,0\n3,0,63,0,37,0,31,0,87,0,88,0\n96,0,93,0,49,0,42,0,27,0,28,0\n47,0,59,0,53,0,76,0,16,0,84,0\n7,0,83,0,38,0,52,0,54,0,78,0\n60,0,20,0,94,0,51,0,33,0,92,0\n80,0,18,0,26,0,14,0,86,0,13,0\n55,0,4,0,57,0,69,0,25,0,67,0\n75,0,45,0,71,0,11,0,77,0,12,0\n73,0,66,0,95,0,61,0,34,0,44,0\n5,0,10,0,82,0,89,0,91,0,68,0\n39,0,23,0,48,0,64,0,65,0,43,0\n78,0,29,0,37,0,16,0,79,0,93,0\n49,0,50,0,98,0,6,0,84,0,54,0\n8,0,86,0,47,0,63,0,81,0,97,0\n27,0,59,0,35,0,58,0,92,0,19,0\n14,0,36,0,7,0,56,0,30,0,11,0\n96,0,40,0,52,0,24,0,69,0,12,0\n72,0,18,0,89,0,94,0,88,0,21,0\n90,0,31,0,13,0,75,0,66,0,15,0\n87,0,22,0,71,0,44,0,38,0,25,0\n68,0,3,0,48,0,4,0,77,0,95,0\n28,0,67,0,41,0,26,0,46,0,33,0\n57,0,43,0,34,0,76,0,91,0,60,0\n32,0,74,0,83,0,80,0,51,0,64,0\n23,0,9,0,5,0,2,0,45,0,55,0\n65,0,1,0,70,0,62,0,82,0,73,0\n20,0,42,0,85,0,53,0,17,0,39,0\n10,0,50,0,16,0,61,0,36,0,72,0\n29,0,14,0,48,0,40,0,22,0,94,0\n90,0,77,0,33,0,24,0,84,0,37,0\n96,0,43,0,8,0,95,0,92,0,56,0\n34,0,51,0,59,0,88,0,93,0,71,0\n30,0,87,0,89,0,66,0,57,0,81,0\n91,0,58,0,12,0,7,0,3,0,97,0\n25,0,15,0,19,0,74,0,20,0,18,0\n31,0,49,0,79,0,73,0,32,0,69,0\n17,0,52,0,98,0,27,0,68,0,23,0\n85,0,45,0,67,0,6,0,13,0,38,0\n61,0,83,0,39,0,47,0,9,0,62,0\n41,0,44,0,60,0,21,0,64,0,70,0\n53,0,35,0,82,0,78,0,46,0,75,0\n5,0,54,0,65,0,28,0,80,0,63,0\n42,0,55,0,11,0,76,0,86,0,1,0\n2,0,4,0,88,0,10,0,26,0,43,0\n12,0,29,0,25,0,56,0,59,0,98,0\n79,0,17,0,84,0,15,0,7,0,67,0\n39,0,68,0,33,0,45,0,14,0,74,0\n19,0,87,0,16,0,73,0,96,0,9,0\n71,0,91,0,36,0,40,0,41,0,49,0\n69,0,6,0,35,0,18,0,51,0,5,0\n64,0,13,0,81,0,50,0,34,0,11,0\n22,0,47,0,85,0,80,0,72,0,37,0\n86,0,54,0,20,0,27,0,30,0,61,0\n77,0,76,0,2,0,94,0,66,0,82,0\n97,0,4,0,92,0,65,0,93,0,46,0\n21,0,42,0,62,0,52,0,75,0,63,0\n70,0,10,0,55,0,95,0,83,0,31,0\n24,0,44,0,53,0,48,0,26,0,89,0\n90,0,3,0,38,0,32,0,1,0,57,0\n58,0,23,0,60,0,28,0,8,0,78,0\n"
  },
  {
    "path": "schedules/98_7.csv",
    "content": "45,0,76,0,74,0,64,0,73,0,94,0\n6,0,2,0,17,0,42,0,1,0,43,0\n36,0,57,0,96,0,33,0,27,0,37,0\n18,0,50,0,52,0,60,0,48,0,66,0\n44,0,38,0,68,0,10,0,40,0,67,0\n25,0,58,0,86,0,39,0,61,0,81,0\n75,0,30,0,79,0,65,0,35,0,53,0\n62,0,8,0,16,0,92,0,83,0,11,0\n24,0,93,0,4,0,5,0,9,0,69,0\n55,0,80,0,15,0,23,0,72,0,28,0\n59,0,19,0,13,0,29,0,89,0,20,0\n91,0,3,0,77,0,34,0,41,0,31,0\n21,0,51,0,46,0,95,0,98,0,32,0\n97,0,87,0,7,0,56,0,82,0,88,0\n78,0,54,0,26,0,71,0,84,0,85,0\n49,0,22,0,63,0,12,0,47,0,70,0\n90,0,17,0,37,0,14,0,38,0,62,0\n2,0,28,0,50,0,53,0,33,0,45,0\n59,0,69,0,42,0,92,0,86,0,40,0\n93,0,67,0,75,0,94,0,11,0,20,0\n21,0,39,0,15,0,5,0,89,0,43,0\n31,0,46,0,24,0,36,0,83,0,65,0\n60,0,85,0,23,0,87,0,81,0,29,0\n4,0,41,0,13,0,49,0,66,0,56,0\n88,0,26,0,9,0,58,0,22,0,27,0\n98,0,73,0,7,0,52,0,79,0,96,0\n35,0,25,0,68,0,57,0,3,0,71,0\n18,0,16,0,97,0,51,0,76,0,10,0\n19,0,61,0,44,0,91,0,55,0,64,0\n48,0,84,0,47,0,77,0,82,0,80,0\n90,0,12,0,6,0,8,0,95,0,30,0\n1,0,54,0,72,0,70,0,14,0,34,0\n32,0,63,0,56,0,74,0,78,0,28,0\n38,1,89,0,86,0,45,1,36,0,11,0\n7,1,9,0,50,0,71,1,39,0,37,0\n42,0,10,0,29,0,66,0,26,0,15,0\n46,0,58,0,64,0,96,0,87,0,67,0\n31,0,5,0,85,0,88,0,18,0,19,0\n48,0,94,0,23,0,6,0,79,0,22,0\n80,0,75,0,4,0,61,0,95,0,14,0\n43,0,72,0,84,0,91,0,97,0,30,0\n49,0,74,0,25,0,93,0,53,0,59,0\n20,0,16,0,12,0,57,0,21,0,2,0\n98,0,1,0,76,0,63,0,40,0,62,0\n82,0,27,0,34,0,24,0,68,0,13,0\n32,0,70,0,52,0,35,0,90,0,41,0\n55,0,73,0,92,0,17,0,51,0,3,0\n60,0,8,0,47,0,65,0,54,0,44,0\n81,0,83,0,78,0,69,0,77,0,33,0\n72,0,10,0,11,0,22,0,25,0,96,0\n28,0,20,0,14,0,84,0,9,0,6,0\n53,0,26,0,19,0,98,0,43,0,56,0\n71,0,61,0,49,0,23,0,88,0,24,0\n34,0,35,0,16,0,38,0,48,0,58,0\n31,0,37,0,13,0,93,0,1,0,97,0\n85,0,39,0,30,0,55,0,47,0,57,0\n8,0,40,0,89,0,73,0,66,0,70,0\n59,0,62,0,45,0,27,0,15,0,87,0\n90,0,75,0,44,0,78,0,92,0,82,0\n29,0,41,0,95,0,68,0,64,0,63,0\n2,0,3,0,80,0,18,0,46,0,79,0\n32,0,36,0,50,0,91,0,69,0,54,0\n83,0,51,0,12,0,74,0,7,0,86,0\n76,0,60,0,21,0,67,0,17,0,33,0\n42,0,4,0,81,0,65,0,52,0,94,0\n77,0,22,0,73,0,5,0,20,0,56,0\n57,0,10,0,34,0,90,0,45,0,93,0\n15,0,9,0,11,0,64,0,35,0,78,0\n80,0,92,0,87,0,53,0,1,0,71,0\n88,0,14,0,46,0,48,0,25,0,8,0\n29,0,18,0,96,0,24,0,86,0,91,0\n6,0,72,0,40,0,60,0,3,0,82,0\n65,0,39,0,66,0,95,0,16,0,17,0\n58,0,13,0,44,0,98,0,70,0,28,0\n63,0,7,0,55,0,2,0,26,0,4,0\n37,0,83,0,5,0,59,0,23,0,75,0\n77,0,68,0,36,0,42,0,97,0,12,0\n51,0,79,0,81,0,38,0,50,0,49,0\n33,0,89,0,62,0,61,0,85,0,32,0\n31,0,67,0,74,0,47,0,43,0,69,0\n94,0,54,0,27,0,41,0,21,0,30,0\n19,0,52,0,95,0,84,0,76,0,57,0\n10,0,91,0,87,0,9,0,98,0,17,0\n35,0,40,0,56,0,2,0,29,0,37,0\n45,0,65,0,77,0,25,0,63,0,92,0\n8,0,64,0,72,0,39,0,51,0,13,0\n83,0,79,0,20,0,32,0,34,0,97,0\n14,0,81,0,71,0,36,0,59,0,55,0\n21,0,69,0,70,0,80,0,38,0,26,0\n23,0,84,0,27,0,67,0,89,0,18,0\n90,0,49,0,73,0,19,0,42,0,48,0\n78,0,76,0,61,0,93,0,46,0,68,0\n12,0,58,0,85,0,3,0,24,0,75,0\n47,0,5,0,53,0,6,0,52,0,11,0\n82,0,96,0,54,0,15,0,16,0,4,0\n94,0,62,0,7,0,31,0,60,0,28,0\n43,0,88,0,86,0,44,0,50,0,41,0\n66,0,33,0,30,0,1,0,22,0,74,0\n95,0,55,0,70,0,10,0,27,0,83,0\n63,0,37,0,34,0,61,0,73,0,18,0\n46,0,35,0,42,0,23,0,45,0,13,0\n67,0,65,0,5,0,49,0,57,0,26,0\n91,0,38,0,25,0,85,0,15,0,6,0\n53,0,29,0,54,0,7,0,90,0,77,0\n43,0,3,0,28,0,8,0,81,0,76,0\n86,0,32,0,66,0,14,0,94,0,82,0\n33,0,97,0,11,0,71,0,40,0,19,0\n87,0,89,0,22,0,69,0,68,0,75,0\n62,0,93,0,52,0,36,0,58,0,30,0\n60,0,96,0,92,0,74,0,88,0,39,0\n2,0,48,0,51,0,31,0,9,0,44,0\n24,0,98,0,59,0,16,0,41,0,80,0\n79,0,1,0,78,0,4,0,47,0,21,0\n56,0,17,0,64,0,12,0,84,0,50,0\n20,0,38,0,71,0,72,0,45,0,7,0\n"
  },
  {
    "path": "schedules/98_8.csv",
    "content": "35,0,49,0,47,0,59,0,38,0,50,0\n54,0,95,0,44,0,48,0,63,0,36,0\n27,0,83,0,78,0,15,0,86,0,73,0\n14,0,28,0,77,0,91,0,88,0,30,0\n57,0,98,0,43,0,69,0,3,0,8,0\n53,0,1,0,52,0,92,0,18,0,66,0\n79,0,55,0,45,0,41,0,12,0,93,0\n31,0,67,0,10,0,82,0,97,0,61,0\n33,0,32,0,25,0,51,0,74,0,96,0\n5,0,84,0,21,0,65,0,40,0,70,0\n68,0,11,0,72,0,75,0,62,0,34,0\n16,0,89,0,46,0,6,0,90,0,9,0\n24,0,71,0,2,0,81,0,7,0,4,0\n87,0,94,0,20,0,80,0,23,0,19,0\n13,0,56,0,64,0,22,0,37,0,17,0\n26,0,76,0,42,0,58,0,39,0,60,0\n85,0,66,0,50,0,29,0,10,0,69,0\n18,0,79,0,14,0,27,0,57,0,84,0\n82,0,74,0,59,0,73,0,98,0,62,0\n68,0,67,0,1,0,45,0,90,0,33,0\n4,0,9,0,44,0,31,0,3,0,78,0\n49,0,65,0,11,0,92,0,61,0,28,0\n12,0,70,0,83,0,24,0,89,0,95,0\n77,0,97,0,71,0,76,0,53,0,94,0\n81,0,43,0,37,0,85,0,21,0,51,0\n96,0,86,0,38,0,42,0,34,0,19,0\n5,0,17,0,36,0,26,0,87,0,46,0\n80,0,6,0,41,0,72,0,88,0,32,0\n55,0,48,0,25,0,30,0,13,0,16,0\n29,0,47,0,15,0,93,0,23,0,56,0\n8,0,22,0,20,0,58,0,35,0,91,0\n63,0,52,0,75,0,39,0,2,0,40,0\n7,0,60,0,70,0,64,0,54,0,74,0\n1,1,50,0,34,0,97,1,79,0,98,0\n37,0,53,0,24,0,11,0,33,0,57,0\n72,0,73,0,96,0,14,0,36,0,67,0\n46,0,43,0,13,0,42,0,71,0,83,0\n28,0,48,0,69,0,41,0,90,0,38,0\n87,0,15,0,91,0,66,0,21,0,62,0\n9,0,85,0,35,0,84,0,2,0,94,0\n29,0,40,0,20,0,78,0,64,0,68,0\n26,0,12,0,61,0,18,0,23,0,59,0\n39,0,88,0,22,0,89,0,31,0,25,0\n75,0,6,0,56,0,5,0,77,0,55,0\n93,0,51,0,30,0,52,0,95,0,58,0\n27,0,45,0,4,0,82,0,63,0,60,0\n49,0,80,0,16,0,44,0,86,0,8,0\n3,0,92,0,81,0,54,0,47,0,17,0\n76,0,32,0,19,0,7,0,65,0,10,0\n53,0,48,0,68,0,98,0,2,0,70,0\n13,0,41,0,36,0,91,0,39,0,33,0\n38,0,18,0,22,0,87,0,40,0,11,0\n69,0,94,0,59,0,14,0,42,0,93,0\n95,0,20,0,72,0,27,0,66,0,77,0\n12,0,73,0,8,0,56,0,52,0,97,0\n57,0,23,0,83,0,85,0,45,0,28,0\n32,0,46,0,84,0,34,0,24,0,54,0\n89,0,21,0,55,0,47,0,10,0,78,0\n35,0,31,0,30,0,19,0,81,0,1,0\n61,0,60,0,44,0,6,0,96,0,43,0\n7,0,82,0,25,0,15,0,17,0,80,0\n90,0,86,0,71,0,92,0,5,0,74,0\n3,0,75,0,37,0,49,0,67,0,58,0\n79,0,51,0,88,0,29,0,76,0,9,0\n64,0,63,0,62,0,65,0,50,0,16,0\n4,0,34,0,56,0,26,0,83,0,48,0\n54,0,57,0,52,0,68,0,22,0,21,0\n97,0,70,0,72,0,45,0,46,0,19,0\n55,0,31,0,36,0,43,0,32,0,28,0\n94,0,66,0,86,0,12,0,60,0,13,0\n23,0,77,0,69,0,49,0,78,0,1,0\n92,0,67,0,44,0,24,0,25,0,79,0\n9,0,14,0,47,0,37,0,7,0,41,0\n85,0,88,0,73,0,61,0,64,0,75,0\n33,0,93,0,26,0,20,0,81,0,62,0\n74,0,40,0,42,0,50,0,8,0,27,0\n6,0,30,0,98,0,15,0,18,0,63,0\n11,0,59,0,96,0,4,0,76,0,89,0\n71,0,58,0,17,0,16,0,84,0,10,0\n95,0,29,0,91,0,65,0,90,0,2,0\n38,0,39,0,5,0,80,0,51,0,3,0\n87,0,35,0,64,0,53,0,82,0,32,0\n62,0,47,0,77,0,25,0,43,0,52,0\n1,0,73,0,9,0,28,0,20,0,70,0\n94,0,49,0,31,0,72,0,15,0,26,0\n18,0,37,0,93,0,19,0,83,0,74,0\n54,0,79,0,75,0,4,0,33,0,66,0\n6,0,69,0,2,0,27,0,13,0,76,0\n61,0,24,0,42,0,98,0,80,0,22,0\n45,0,81,0,91,0,40,0,89,0,44,0\n67,0,50,0,78,0,48,0,39,0,46,0\n7,0,35,0,16,0,34,0,12,0,36,0\n90,0,23,0,21,0,11,0,88,0,8,0\n68,0,58,0,63,0,85,0,97,0,5,0\n29,0,14,0,60,0,71,0,38,0,55,0\n84,0,3,0,82,0,30,0,41,0,56,0\n65,0,86,0,51,0,53,0,59,0,17,0\n57,0,10,0,92,0,95,0,87,0,96,0\n69,0,4,0,39,0,20,0,61,0,15,0\n93,0,70,0,76,0,78,0,43,0,91,0\n64,0,21,0,33,0,42,0,72,0,9,0\n36,0,90,0,49,0,40,0,25,0,83,0\n13,0,45,0,7,0,5,0,18,0,62,0\n32,0,73,0,66,0,30,0,38,0,68,0\n28,0,59,0,16,0,97,0,75,0,29,0\n84,0,80,0,50,0,31,0,96,0,52,0\n34,0,47,0,74,0,58,0,53,0,44,0\n8,0,89,0,65,0,87,0,37,0,54,0\n11,0,19,0,48,0,79,0,71,0,6,0\n2,0,51,0,12,0,82,0,57,0,77,0\n46,0,92,0,27,0,88,0,94,0,55,0\n10,0,1,0,56,0,14,0,24,0,63,0\n60,0,17,0,98,0,35,0,23,0,41,0\n85,0,3,0,26,0,22,0,95,0,86,0\n81,0,52,0,83,0,67,0,76,0,64,0\n8,0,38,0,93,0,36,0,9,0,75,0\n54,0,58,0,11,0,69,0,45,0,73,0\n97,0,18,0,32,0,20,0,48,0,47,0\n15,0,88,0,33,0,12,0,71,0,50,0\n34,0,37,0,63,0,55,0,90,0,66,0\n78,0,98,0,28,0,7,0,84,0,72,0\n41,0,95,0,74,0,16,0,1,0,61,0\n3,0,53,0,19,0,60,0,25,0,21,0\n5,0,30,0,10,0,2,0,42,0,23,0\n80,0,26,0,89,0,92,0,13,0,77,0\n27,0,59,0,87,0,31,0,68,0,24,0\n79,0,39,0,43,0,56,0,86,0,35,0\n57,0,17,0,91,0,67,0,94,0,6,0\n96,0,22,0,81,0,29,0,70,0,49,0\n65,0,46,0,14,0,82,0,44,0,85,0\n40,0,62,0,1,0,51,0,4,0,97,0\n"
  },
  {
    "path": "schedules/98_9.csv",
    "content": "72,0,43,0,20,0,48,0,73,0,74,0\n30,0,32,0,66,0,53,0,1,0,6,0\n47,0,38,0,68,0,16,0,87,0,31,0\n80,0,35,0,63,0,19,0,95,0,50,0\n44,0,96,0,88,0,21,0,56,0,79,0\n55,0,51,0,27,0,40,0,33,0,24,0\n23,0,61,0,8,0,54,0,77,0,70,0\n82,0,58,0,85,0,92,0,90,0,62,0\n52,0,29,0,4,0,2,0,7,0,42,0\n49,0,89,0,71,0,13,0,60,0,65,0\n91,0,10,0,17,0,81,0,45,0,98,0\n86,0,26,0,37,0,69,0,94,0,76,0\n12,0,64,0,3,0,14,0,36,0,75,0\n93,0,25,0,59,0,9,0,34,0,22,0\n83,0,28,0,41,0,11,0,78,0,18,0\n97,0,5,0,67,0,39,0,46,0,57,0\n15,0,27,0,50,0,84,0,58,0,79,0\n48,0,77,0,7,0,65,0,63,0,55,0\n32,0,87,0,71,0,54,0,35,0,20,0\n91,0,49,0,85,0,40,0,2,0,53,0\n61,0,30,0,14,0,96,0,29,0,43,0\n19,0,1,0,52,0,36,0,23,0,59,0\n73,0,18,0,81,0,82,0,44,0,60,0\n76,0,13,0,34,0,17,0,39,0,64,0\n95,0,31,0,56,0,89,0,62,0,28,0\n21,0,94,0,67,0,24,0,42,0,16,0\n4,0,78,0,80,0,38,0,98,0,5,0\n74,0,88,0,83,0,86,0,57,0,8,0\n3,0,69,0,70,0,84,0,68,0,6,0\n97,0,33,0,22,0,26,0,10,0,75,0\n41,0,37,0,90,0,12,0,45,0,25,0\n47,0,92,0,93,0,72,0,51,0,15,0\n46,0,11,0,50,0,66,0,9,0,89,0\n36,0,67,0,29,0,27,0,71,0,48,0\n95,0,58,0,23,0,30,0,60,0,94,0\n56,0,76,0,80,0,54,0,55,0,91,0\n74,0,98,0,59,0,2,0,84,0,77,0\n31,0,35,0,5,0,3,0,40,0,34,0\n82,0,79,0,42,0,75,0,78,0,19,0\n68,0,4,0,20,0,64,0,63,0,88,0\n28,0,45,0,65,0,1,0,16,0,8,0\n7,0,14,0,85,0,26,0,73,0,32,0\n13,0,24,0,10,0,41,0,66,0,92,0\n25,0,96,0,51,0,97,0,11,0,70,0\n6,0,39,0,43,0,21,0,86,0,15,0\n12,0,49,0,57,0,17,0,87,0,18,0\n9,0,53,0,38,0,72,0,90,0,52,0\n62,0,44,0,33,0,69,0,93,0,83,0\n61,0,37,0,46,0,47,0,22,0,81,0\n48,0,42,0,34,0,23,0,80,0,26,0\n24,0,60,0,98,0,7,0,54,0,31,0\n13,0,75,0,73,0,30,0,28,0,77,0\n86,0,68,0,78,0,85,0,95,0,65,0\n94,0,74,0,56,0,27,0,49,0,92,0\n41,0,58,0,57,0,96,0,91,0,1,0\n40,0,88,0,82,0,36,0,76,0,50,0\n81,0,63,0,14,0,6,0,51,0,59,0\n15,0,5,0,29,0,55,0,32,0,70,0\n84,0,39,0,33,0,11,0,38,0,37,0\n69,0,53,0,61,0,64,0,19,0,71,0\n62,0,52,0,97,0,12,0,79,0,47,0\n67,0,87,0,25,0,3,0,44,0,66,0\n90,0,4,0,16,0,10,0,46,0,18,0\n35,0,8,0,17,0,93,0,43,0,89,0\n2,0,72,0,45,0,22,0,21,0,83,0\n9,0,36,0,94,0,20,0,78,0,55,0\n6,0,98,0,42,0,28,0,96,0,49,0\n19,0,48,0,84,0,31,0,14,0,86,0\n40,0,64,0,97,0,59,0,92,0,80,0\n11,0,56,0,87,0,52,0,63,0,13,0\n75,0,62,0,91,0,65,0,24,0,25,0\n26,0,60,0,90,0,88,0,27,0,39,0\n3,0,45,0,73,0,89,0,57,0,29,0\n32,0,69,0,47,0,2,0,67,0,82,0\n35,0,16,0,58,0,74,0,33,0,61,0\n76,0,38,0,46,0,43,0,23,0,83,0\n1,0,22,0,70,0,7,0,17,0,71,0\n41,0,50,0,54,0,5,0,68,0,72,0\n21,0,66,0,34,0,37,0,18,0,85,0\n77,0,9,0,4,0,95,0,51,0,79,0\n10,0,44,0,8,0,53,0,15,0,20,0\n30,0,81,0,65,0,93,0,12,0,67,0\n78,0,88,0,89,0,2,0,58,0,87,0\n11,0,31,0,6,0,76,0,27,0,57,0\n47,0,70,0,40,0,56,0,60,0,19,0\n54,0,26,0,46,0,96,0,45,0,52,0\n92,0,33,0,21,0,91,0,7,0,3,0\n68,0,82,0,13,0,35,0,59,0,83,0\n95,0,98,0,64,0,37,0,25,0,32,0\n14,0,53,0,22,0,77,0,80,0,18,0\n79,0,23,0,5,0,90,0,20,0,69,0\n17,0,86,0,51,0,38,0,61,0,62,0\n66,0,72,0,84,0,12,0,55,0,8,0\n93,0,1,0,42,0,39,0,73,0,10,0\n81,0,50,0,71,0,94,0,43,0,34,0\n48,0,75,0,49,0,4,0,41,0,15,0\n36,0,44,0,16,0,85,0,30,0,63,0\n97,0,28,0,9,0,24,0,29,0,74,0\n26,0,89,0,20,0,98,0,70,0,82,0\n21,0,90,0,54,0,17,0,40,0,65,0\n59,0,11,0,95,0,61,0,91,0,88,0\n47,0,86,0,18,0,13,0,3,0,42,0\n79,0,14,0,34,0,33,0,8,0,67,0\n71,0,2,0,37,0,5,0,10,0,6,0\n83,0,94,0,39,0,52,0,85,0,25,0\n1,0,12,0,92,0,46,0,78,0,31,0\n28,0,63,0,72,0,60,0,32,0,76,0\n7,0,75,0,74,0,45,0,23,0,44,0\n77,0,19,0,38,0,93,0,97,0,41,0\n69,0,57,0,24,0,48,0,22,0,50,0\n58,0,49,0,80,0,43,0,51,0,36,0\n87,0,15,0,55,0,62,0,30,0,64,0\n73,0,96,0,35,0,4,0,66,0,27,0\n84,0,29,0,53,0,56,0,16,0,81,0\n9,0,8,0,40,0,68,0,26,0,71,0\n5,0,47,0,25,0,88,0,14,0,1,0\n63,0,54,0,79,0,93,0,37,0,74,0\n61,0,89,0,44,0,72,0,34,0,6,0\n13,0,57,0,94,0,80,0,32,0,90,0\n31,0,52,0,43,0,64,0,77,0,91,0\n3,0,82,0,30,0,17,0,48,0,97,0\n76,0,96,0,78,0,33,0,15,0,81,0\n46,0,51,0,87,0,41,0,84,0,42,0\n39,0,4,0,24,0,58,0,12,0,19,0\n2,0,27,0,86,0,9,0,16,0,75,0\n56,0,83,0,65,0,36,0,98,0,73,0\n66,0,20,0,7,0,38,0,49,0,95,0\n10,0,69,0,55,0,35,0,28,0,21,0\n23,0,92,0,53,0,67,0,11,0,68,0\n45,0,18,0,62,0,70,0,59,0,50,0\n60,0,22,0,64,0,29,0,85,0,41,0\n72,0,42,0,88,0,81,0,97,0,31,0\n24,0,76,0,90,0,1,0,44,0,84,0\n36,0,32,0,89,0,4,0,33,0,86,0\n78,0,30,0,51,0,34,0,56,0,57,0\n73,0,9,0,63,0,5,0,61,0,49,0\n11,0,75,0,98,0,40,0,69,0,43,0\n74,0,70,0,95,0,14,0,52,0,10,0\n19,0,7,0,37,0,13,0,67,0,62,0\n27,0,85,0,77,0,47,0,45,0,20,0\n8,0,21,0,29,0,80,0,87,0,82,0\n58,0,65,0,3,0,46,0,59,0,53,0\n18,0,26,0,15,0,38,0,25,0,35,0\n48,0,12,0,2,0,54,0,28,0,94,0\n16,0,55,0,96,0,93,0,23,0,71,0\n6,0,60,0,92,0,50,0,17,0,83,0\n91,0,39,0,79,0,68,0,22,0,66,0\n"
  },
  {
    "path": "schedules/99_1.csv",
    "content": "69,0,27,0,72,0,25,0,36,0,12,0\n19,0,74,0,28,0,42,0,81,0,64,0\n77,0,85,0,65,0,13,0,41,0,80,0\n76,0,53,0,94,0,86,0,56,0,29,0\n66,0,11,0,33,0,96,0,75,0,93,0\n89,0,70,0,97,0,26,0,50,0,67,0\n60,0,7,0,90,0,63,0,5,0,48,0\n39,0,68,0,44,0,24,0,71,0,1,0\n23,0,34,0,79,0,52,0,16,0,73,0\n87,0,49,0,83,0,45,0,78,0,82,0\n54,0,91,0,4,0,14,0,51,0,6,0\n57,0,15,0,21,0,2,0,20,0,37,0\n17,0,38,0,35,0,84,0,58,0,18,0\n95,0,32,0,47,0,10,0,62,0,40,0\n9,0,92,0,43,0,55,0,59,0,3,0\n98,0,30,0,31,0,61,0,99,0,88,0\n46,0,8,0,65,1,22,0,93,1,85,1\n"
  },
  {
    "path": "schedules/99_10.csv",
    "content": "74,0,59,0,1,0,35,0,83,0,22,0\n34,0,61,0,47,0,38,0,67,0,24,0\n27,0,92,0,85,0,16,0,84,0,71,0\n32,0,55,0,82,0,5,0,65,0,7,0\n87,0,46,0,53,0,45,0,52,0,30,0\n14,0,75,0,81,0,17,0,68,0,77,0\n28,0,2,0,98,0,88,0,44,0,18,0\n15,0,3,0,70,0,86,0,11,0,57,0\n96,0,72,0,51,0,94,0,40,0,39,0\n19,0,36,0,6,0,97,0,89,0,12,0\n13,0,42,0,56,0,29,0,10,0,43,0\n54,0,90,0,93,0,26,0,91,0,66,0\n62,0,64,0,79,0,8,0,49,0,48,0\n63,0,73,0,31,0,95,0,41,0,58,0\n33,0,23,0,25,0,69,0,78,0,76,0\n21,0,37,0,80,0,20,0,99,0,60,0\n50,0,75,0,46,0,9,0,4,0,40,0\n84,0,35,0,87,0,2,0,96,0,47,0\n71,0,7,0,57,0,81,0,45,0,39,0\n83,0,3,0,82,0,14,0,30,0,61,0\n92,0,24,0,22,0,62,0,88,0,77,0\n44,0,86,0,66,0,19,0,67,0,27,0\n23,0,12,0,94,0,48,0,26,0,74,0\n1,0,11,0,36,0,31,0,16,0,28,0\n38,0,79,0,68,0,76,0,52,0,97,0\n89,0,63,0,80,0,53,0,72,0,21,0\n73,0,29,0,4,0,20,0,33,0,59,0\n98,0,32,0,43,0,70,0,8,0,37,0\n91,0,9,0,49,0,42,0,15,0,5,0\n93,0,60,0,41,0,55,0,17,0,10,0\n64,0,50,0,56,0,85,0,78,0,6,0\n18,0,69,0,34,0,54,0,95,0,13,0\n25,0,99,0,65,0,90,0,58,0,51,0\n45,0,75,0,79,0,23,0,82,0,22,0\n62,0,96,0,81,0,31,0,44,0,21,0\n77,0,26,0,19,0,98,0,84,0,76,0\n42,0,74,0,20,0,47,0,36,0,63,0\n29,0,7,0,37,0,12,0,93,0,9,0\n52,0,86,0,78,0,71,0,32,0,72,0\n97,0,61,0,59,0,80,0,54,0,92,0\n58,0,2,0,55,0,91,0,16,0,57,0\n34,0,51,0,83,0,87,0,73,0,10,0\n53,0,85,0,28,0,90,0,4,0,5,0\n6,0,38,0,25,0,60,0,14,0,40,0\n65,0,94,0,88,0,95,0,15,0,56,0\n50,0,67,0,30,0,49,0,17,0,99,0\n18,0,1,0,64,0,43,0,3,0,66,0\n69,0,35,0,41,0,46,0,70,0,68,0\n13,0,11,0,24,0,39,0,48,0,89,0\n33,0,8,0,47,0,27,0,83,0,80,0\n26,0,31,0,79,0,42,0,55,0,92,0\n85,0,45,0,54,0,25,0,74,0,9,0\n76,0,93,0,86,0,75,0,21,0,73,0\n32,0,2,0,14,0,56,0,36,0,90,0\n66,0,97,0,30,0,7,0,95,0,16,0\n38,0,43,0,69,0,82,0,96,0,87,0\n78,0,62,0,67,0,29,0,3,0,35,0\n60,0,65,0,52,0,8,0,13,0,77,0\n41,0,15,0,24,0,64,0,40,0,98,0\n71,0,33,0,58,0,11,0,49,0,94,0\n84,0,5,0,48,0,51,0,18,0,81,0\n46,0,23,0,39,0,6,0,34,0,28,0\n57,0,72,0,10,0,19,0,99,0,59,0\n89,0,22,0,4,0,37,0,44,0,68,0\n70,0,17,0,20,0,53,0,12,0,91,0\n27,0,50,0,63,0,88,0,61,0,1,0\n73,0,15,0,69,0,2,0,79,0,85,0\n31,0,74,0,33,0,97,0,86,0,56,0\n83,0,64,0,81,0,67,0,9,0,58,0\n65,0,71,0,47,0,23,0,14,0,29,0\n80,0,52,0,75,0,43,0,51,0,57,0\n42,0,4,0,6,0,24,0,32,0,35,0\n21,0,18,0,36,0,70,0,7,0,59,0\n54,0,99,0,12,0,82,0,62,0,1,0\n5,0,88,0,30,0,13,0,26,0,40,0\n96,0,76,0,17,0,37,0,46,0,11,0\n53,0,84,0,38,0,50,0,41,0,66,0\n91,0,95,0,44,0,8,0,10,0,25,0\n28,0,27,0,77,0,72,0,3,0,48,0\n60,0,19,0,63,0,68,0,45,0,94,0\n98,0,90,0,22,0,78,0,34,0,55,0\n49,0,61,0,20,0,87,0,16,0,39,0\n92,0,51,0,35,0,89,0,93,0,15,0\n11,0,73,0,67,0,54,0,32,0,88,0\n30,0,9,0,6,0,1,0,41,0,65,0\n2,0,76,0,10,0,7,0,50,0,74,0\n47,0,72,0,13,0,4,0,64,0,70,0\n97,0,60,0,44,0,29,0,57,0,46,0\n23,0,40,0,59,0,56,0,81,0,66,0\n90,0,82,0,68,0,31,0,84,0,20,0\n48,0,99,0,91,0,83,0,36,0,92,0\n5,0,16,0,19,0,52,0,34,0,62,0\n26,0,80,0,28,0,87,0,58,0,24,0\n98,0,79,0,17,0,21,0,71,0,3,0\n53,0,96,0,49,0,75,0,18,0,78,0\n38,0,85,0,8,0,93,0,63,0,22,0\n14,0,94,0,89,0,69,0,27,0,42,0\n12,0,43,0,25,0,86,0,77,0,39,0\n33,0,37,0,55,0,61,0,45,0,95,0\n83,0,6,0,76,0,62,0,13,0,20,0\n32,0,81,0,1,0,47,0,60,0,92,0\n11,0,91,0,30,0,23,0,44,0,51,0\n9,0,56,0,70,0,26,0,73,0,52,0\n46,0,49,0,3,0,84,0,7,0,63,0\n75,0,34,0,24,0,27,0,65,0,31,0\n78,0,77,0,2,0,89,0,5,0,54,0\n82,0,86,0,98,0,80,0,95,0,4,0\n50,0,16,0,29,0,25,0,68,0,15,0\n58,0,37,0,10,0,88,0,48,0,97,0\n39,0,64,0,36,0,33,0,17,0,38,0\n8,0,87,0,18,0,74,0,99,0,55,0\n35,0,45,0,72,0,12,0,14,0,66,0\n57,0,40,0,22,0,53,0,67,0,69,0\n61,0,41,0,42,0,96,0,71,0,90,0\n43,0,94,0,59,0,28,0,93,0,79,0\n85,0,21,0,95,0,19,0,29,0,11,0\n10,0,24,0,54,0,23,0,63,0,70,0\n37,0,36,0,26,0,34,0,50,0,81,0\n84,0,4,0,52,0,55,0,83,0,15,0\n88,0,66,0,89,0,49,0,31,0,76,0\n69,0,56,0,58,0,60,0,98,0,62,0\n91,0,77,0,38,0,71,0,80,0,46,0\n8,0,97,0,39,0,75,0,1,0,5,0\n27,0,21,0,51,0,41,0,45,0,2,0\n85,0,12,0,3,0,87,0,32,0,59,0\n96,0,92,0,68,0,57,0,30,0,64,0\n20,0,40,0,35,0,65,0,86,0,28,0\n13,0,16,0,78,0,73,0,82,0,74,0\n48,0,43,0,17,0,47,0,90,0,19,0\n42,0,18,0,72,0,25,0,67,0,93,0\n33,0,79,0,14,0,44,0,9,0,53,0\n7,0,94,0,22,0,61,0,99,0,6,0\n83,0,21,0,49,0,32,0,38,0,26,0\n34,0,59,0,71,0,60,0,89,0,64,0\n70,0,62,0,66,0,75,0,55,0,85,0\n16,0,56,0,8,0,12,0,24,0,51,0\n17,0,28,0,74,0,52,0,69,0,92,0\n45,0,50,0,98,0,97,0,42,0,11,0\n20,0,46,0,19,0,58,0,14,0,78,0\n84,0,65,0,43,0,33,0,22,0,72,0\n4,0,7,0,48,0,87,0,25,0,1,0\n67,0,10,0,96,0,6,0,15,0,77,0\n44,0,99,0,47,0,41,0,39,0,76,0\n29,0,86,0,81,0,54,0,30,0,79,0\n91,0,68,0,73,0,40,0,18,0,61,0\n95,0,27,0,5,0,36,0,57,0,93,0\n88,0,9,0,90,0,23,0,80,0,35,0\n13,0,53,0,37,0,94,0,31,0,3,0\n63,0,82,0,48,0,2,0,33,0,52,0\n72,0,92,0,11,0,20,0,8,0,7,0\n28,0,25,0,55,0,56,0,19,0,96,0\n12,0,15,0,58,0,30,0,34,0,76,0\n54,0,22,0,64,0,42,0,46,0,21,0\n95,0,67,0,36,0,60,0,79,0,51,0\n47,0,89,0,16,0,18,0,9,0,86,0\n1,0,78,0,40,0,10,0,84,0,45,0\n39,0,74,0,62,0,32,0,27,0,53,0\n71,0,83,0,66,0,68,0,2,0,24,0\n5,0,31,0,99,0,98,0,38,0,35,0\n80,0,3,0,44,0,73,0,65,0,50,0\n61,0,57,0,13,0,85,0,17,0,23,0\n69,0,77,0,90,0,59,0,37,0,49,0\n29,0,41,0,87,0,91,0,75,0,94,0\n82,0,93,0,70,0,6,0,81,0,88,0\n14,0,26,0,97,0,43,0,63,0,4,0\n"
  },
  {
    "path": "schedules/99_11.csv",
    "content": "83,0,87,0,24,0,71,0,8,0,64,0\n50,0,68,0,54,0,37,0,38,0,48,0\n69,0,28,0,42,0,89,0,17,0,9,0\n82,0,55,0,56,0,7,0,21,0,92,0\n62,0,11,0,66,0,76,0,32,0,60,0\n26,0,75,0,63,0,34,0,31,0,61,0\n78,0,53,0,36,0,13,0,18,0,10,0\n59,0,91,0,88,0,47,0,44,0,52,0\n85,0,80,0,20,0,43,0,15,0,6,0\n25,0,81,0,14,0,86,0,45,0,46,0\n1,0,12,0,67,0,51,0,49,0,33,0\n16,0,77,0,29,0,65,0,41,0,27,0\n58,0,5,0,19,0,99,0,97,0,95,0\n35,0,2,0,93,0,39,0,57,0,40,0\n96,0,94,0,72,0,70,0,74,0,73,0\n4,0,22,0,23,0,90,0,98,0,3,0\n79,0,84,0,64,0,30,0,28,0,32,0\n45,0,26,0,8,0,6,0,36,0,88,0\n14,0,67,0,52,0,83,0,53,0,34,0\n76,0,20,0,86,0,21,0,75,0,54,0\n47,0,38,0,95,0,25,0,92,0,41,0\n19,0,12,0,77,0,31,0,55,0,50,0\n58,0,73,0,57,0,16,0,43,0,69,0\n3,0,13,0,80,0,7,0,5,0,40,0\n30,0,63,0,10,0,72,0,22,0,60,0\n9,0,37,0,46,0,87,0,59,0,74,0\n49,0,62,0,99,0,56,0,29,0,44,0\n42,0,33,0,93,0,4,0,71,0,84,0\n85,0,17,0,65,0,68,0,1,0,90,0\n97,0,79,0,15,0,82,0,94,0,91,0\n18,0,24,0,61,0,11,0,39,0,96,0\n2,0,70,0,81,0,66,0,98,0,78,0\n48,0,35,0,27,0,89,0,51,0,23,0\n36,1,46,0,30,0,76,1,80,0,69,0\n21,1,45,0,95,0,49,0,16,0,53,0\n41,0,50,0,75,0,57,0,87,0,99,0\n59,0,83,0,12,0,40,0,62,0,72,0\n94,0,52,0,9,0,19,0,33,0,90,0\n47,0,55,0,68,0,67,0,11,0,74,0\n14,0,98,0,7,0,65,0,18,0,79,0\n88,0,66,0,43,0,82,0,29,0,84,0\n85,0,81,0,5,0,92,0,91,0,24,0\n54,0,10,0,96,0,97,0,23,0,34,0\n56,0,60,0,48,0,26,0,64,0,93,0\n77,0,70,0,4,0,35,0,61,0,58,0\n32,0,22,0,6,0,39,0,13,0,51,0\n78,0,8,0,89,0,1,0,63,0,3,0\n17,0,37,0,20,0,25,0,71,0,2,0\n38,0,27,0,44,0,15,0,42,0,31,0\n28,0,86,0,24,0,73,0,99,0,47,0\n97,0,46,0,83,0,16,0,84,0,65,0\n74,0,36,0,34,0,48,0,79,0,29,0\n68,0,9,0,81,0,56,0,4,0,41,0\n80,0,72,0,53,0,26,0,90,0,66,0\n11,0,50,0,52,0,30,0,93,0,58,0\n75,0,62,0,23,0,82,0,45,0,67,0\n60,0,51,0,20,0,7,0,77,0,87,0\n28,0,61,0,3,0,27,0,59,0,6,0\n44,0,63,0,32,0,17,0,35,0,95,0\n18,0,57,0,43,0,8,0,94,0,22,0\n91,0,78,0,86,0,38,0,19,0,96,0\n15,0,2,0,10,0,5,0,89,0,21,0\n54,0,25,0,49,0,55,0,64,0,42,0\n92,0,71,0,39,0,1,0,69,0,70,0\n98,0,12,0,37,0,73,0,85,0,13,0\n33,0,40,0,31,0,14,0,76,0,88,0\n20,0,81,0,79,0,95,0,27,0,52,0\n7,0,99,0,41,0,22,0,45,0,11,0\n66,0,6,0,23,0,9,0,65,0,91,0\n15,0,96,0,68,0,32,0,36,0,75,0\n43,0,19,0,93,0,49,0,17,0,59,0\n5,0,26,0,83,0,70,0,55,0,86,0\n34,0,56,0,84,0,39,0,25,0,85,0\n4,0,24,0,21,0,46,0,44,0,12,0\n48,0,77,0,13,0,76,0,72,0,92,0\n94,0,98,0,89,0,54,0,88,0,71,0\n74,0,28,0,33,0,53,0,8,0,2,0\n78,0,97,0,47,0,30,0,57,0,62,0\n69,0,64,0,63,0,14,0,38,0,51,0\n1,0,82,0,80,0,37,0,35,0,60,0\n90,0,40,0,73,0,61,0,50,0,10,0\n29,0,58,0,42,0,3,0,67,0,18,0\n31,0,68,0,13,0,16,0,87,0,66,0\n25,0,83,0,9,0,75,0,77,0,22,0\n91,0,49,0,32,0,7,0,46,0,27,0\n39,0,99,0,53,0,76,0,4,0,43,0\n92,0,59,0,36,0,11,0,86,0,84,0\n24,0,45,0,37,0,72,0,15,0,78,0\n21,0,98,0,61,0,69,0,97,0,52,0\n29,0,95,0,70,0,93,0,85,0,23,0\n18,0,51,0,82,0,2,0,31,0,54,0\n55,0,1,0,10,0,94,0,62,0,64,0\n48,0,90,0,88,0,57,0,20,0,42,0\n33,0,16,0,50,0,60,0,3,0,44,0\n71,0,35,0,56,0,74,0,5,0,14,0\n96,0,28,0,80,0,12,0,63,0,81,0\n34,0,65,0,8,0,40,0,47,0,58,0\n41,0,19,0,79,0,26,0,89,0,73,0\n30,0,6,0,38,0,17,0,67,0,87,0\n13,0,61,0,43,0,9,0,24,0,2,0\n7,0,68,0,59,0,23,0,25,0,78,0\n4,0,1,0,36,0,31,0,20,0,97,0\n71,0,55,0,72,0,57,0,85,0,51,0\n64,0,86,0,16,0,35,0,90,0,15,0\n94,0,49,0,21,0,80,0,50,0,34,0\n48,0,53,0,84,0,96,0,98,0,41,0\n46,0,67,0,92,0,88,0,19,0,63,0\n99,0,17,0,60,0,14,0,12,0,27,0\n5,0,38,0,8,0,29,0,52,0,32,0\n33,0,58,0,87,0,26,0,82,0,39,0\n65,0,70,0,11,0,75,0,28,0,10,0\n30,0,45,0,76,0,18,0,74,0,89,0\n73,0,6,0,93,0,81,0,83,0,54,0\n44,0,40,0,69,0,79,0,66,0,22,0\n37,0,95,0,3,0,91,0,77,0,62,0\n42,0,23,0,53,0,56,0,47,0,12,0\n49,0,85,0,2,0,88,0,86,0,97,0\n59,0,58,0,15,0,63,0,48,0,71,0\n99,0,31,0,9,0,8,0,21,0,96,0\n4,0,87,0,32,0,78,0,14,0,94,0\n7,0,24,0,26,0,52,0,10,0,84,0\n75,0,55,0,79,0,13,0,38,0,35,0\n69,0,3,0,82,0,19,0,72,0,81,0\n98,0,60,0,40,0,29,0,68,0,91,0\n16,0,74,0,42,0,62,0,6,0,92,0\n27,0,76,0,34,0,37,0,90,0,93,0\n11,0,54,0,17,0,77,0,46,0,57,0\n45,0,64,0,65,0,39,0,73,0,5,0\n43,0,44,0,30,0,51,0,83,0,41,0\n89,0,67,0,56,0,95,0,61,0,80,0\n18,0,1,0,25,0,66,0,28,0,50,0\n22,0,47,0,70,0,20,0,36,0,33,0\n16,0,40,0,55,0,32,0,48,0,23,0\n9,0,76,0,10,0,71,0,49,0,38,0\n58,0,27,0,86,0,68,0,94,0,53,0\n90,0,21,0,63,0,77,0,79,0,24,0\n17,0,81,0,29,0,13,0,15,0,26,0\n97,0,3,0,51,0,56,0,73,0,11,0\n42,0,60,0,61,0,83,0,45,0,19,0\n65,0,57,0,44,0,96,0,67,0,37,0\n91,0,39,0,12,0,20,0,8,0,30,0\n95,0,72,0,34,0,64,0,18,0,4,0\n14,0,1,0,84,0,75,0,47,0,2,0\n25,0,87,0,98,0,62,0,43,0,5,0\n31,0,22,0,92,0,28,0,35,0,52,0\n74,0,88,0,78,0,93,0,41,0,80,0\n89,0,6,0,46,0,82,0,50,0,70,0\n33,0,69,0,59,0,54,0,99,0,85,0\n66,0,7,0,17,0,36,0,94,0,83,0\n26,0,30,0,71,0,96,0,95,0,40,0\n10,0,8,0,4,0,67,0,48,0,86,0\n79,0,51,0,5,0,16,0,47,0,61,0\n23,0,49,0,14,0,92,0,37,0,58,0\n65,0,52,0,78,0,12,0,74,0,43,0\n73,0,21,0,62,0,68,0,88,0,18,0\n15,0,19,0,22,0,56,0,76,0,1,0\n93,0,46,0,3,0,99,0,66,0,55,0\n75,0,90,0,7,0,39,0,81,0,97,0\n57,0,82,0,28,0,98,0,38,0,36,0\n84,0,27,0,70,0,63,0,9,0,54,0\n87,0,2,0,11,0,42,0,80,0,91,0\n50,0,45,0,20,0,13,0,34,0,59,0\n89,0,53,0,85,0,44,0,77,0,64,0\n35,0,72,0,29,0,6,0,33,0,25,0\n31,0,60,0,41,0,24,0,69,0,32,0\n61,0,49,0,22,0,48,0,78,0,17,0\n83,0,96,0,88,0,58,0,79,0,1,0\n16,0,52,0,18,0,37,0,63,0,70,0\n57,0,15,0,76,0,12,0,84,0,3,0\n40,0,38,0,11,0,81,0,21,0,43,0\n54,0,56,0,90,0,45,0,87,0,28,0\n71,0,6,0,7,0,44,0,34,0,86,0\n20,0,35,0,62,0,53,0,24,0,19,0\n36,0,95,0,2,0,55,0,60,0,65,0\n75,0,5,0,66,0,27,0,30,0,33,0\n32,0,26,0,67,0,9,0,85,0,50,0\n39,0,94,0,47,0,29,0,31,0,46,0\n72,0,97,0,89,0,93,0,68,0,14,0\n91,0,69,0,13,0,4,0,74,0,25,0\n77,0,42,0,73,0,59,0,8,0,82,0\n51,0,92,0,80,0,10,0,98,0,99,0\n64,0,41,0,36,0,23,0,76,0,21,0\n"
  },
  {
    "path": "schedules/99_12.csv",
    "content": "88,0,9,0,16,0,90,0,86,0,30,0\n71,0,7,0,27,0,55,0,37,0,33,0\n96,0,3,0,15,0,17,0,72,0,48,0\n8,0,4,0,77,0,56,0,22,0,31,0\n29,0,81,0,91,0,25,0,53,0,52,0\n47,0,93,0,94,0,18,0,10,0,79,0\n49,0,28,0,46,0,92,0,95,0,45,0\n20,0,63,0,42,0,58,0,75,0,11,0\n54,0,69,0,6,0,41,0,34,0,65,0\n24,0,60,0,21,0,57,0,99,0,44,0\n23,0,40,0,19,0,76,0,68,0,97,0\n74,0,5,0,35,0,36,0,83,0,73,0\n78,0,26,0,87,0,59,0,39,0,80,0\n84,0,38,0,70,0,43,0,1,0,13,0\n14,0,64,0,62,0,50,0,51,0,12,0\n66,0,2,0,89,0,32,0,67,0,98,0\n61,0,85,0,75,0,82,0,31,0,79,0\n45,0,86,0,53,0,77,0,48,0,94,0\n9,0,4,0,27,0,10,0,65,0,17,0\n15,0,91,0,93,0,42,0,30,0,35,0\n23,0,73,0,56,0,44,0,25,0,46,0\n16,0,28,0,20,0,7,0,72,0,84,0\n33,0,96,0,68,0,26,0,12,0,43,0\n51,0,97,0,13,0,87,0,66,0,32,0\n8,0,29,0,58,0,85,0,38,0,50,0\n60,0,1,0,88,0,63,0,24,0,82,0\n47,0,37,0,83,0,19,0,41,0,57,0\n49,0,70,0,52,0,59,0,34,0,2,0\n36,0,69,0,40,0,21,0,98,0,62,0\n90,0,76,0,11,0,78,0,55,0,89,0\n5,0,54,0,14,0,39,0,67,0,3,0\n74,0,99,0,61,0,71,0,18,0,92,0\n6,0,95,0,22,0,81,0,80,0,64,0\n82,0,38,0,10,0,15,0,77,0,44,0\n68,0,72,0,58,0,45,0,32,0,83,0\n27,0,12,0,66,0,49,0,47,0,29,0\n48,0,53,0,42,0,8,0,35,0,59,0\n30,0,26,0,75,0,36,0,70,0,94,0\n73,0,28,0,41,0,91,0,31,0,13,0\n74,0,46,0,23,0,52,0,51,0,4,0\n71,0,22,0,84,0,86,0,88,0,25,0\n50,0,67,0,87,0,37,0,95,0,21,0\n9,0,99,0,69,0,3,0,19,0,2,0\n79,0,92,0,64,0,11,0,60,0,7,0\n57,0,6,0,80,0,43,0,90,0,85,0\n20,0,33,0,1,0,78,0,14,0,40,0\n76,0,98,0,61,0,24,0,54,0,56,0\n89,0,63,0,39,0,34,0,96,0,97,0\n18,0,55,0,5,0,17,0,81,0,16,0\n93,0,65,0,44,0,62,0,68,0,95,0\n38,0,12,0,94,0,22,0,32,0,35,0\n73,0,8,0,19,0,15,0,71,0,66,0\n23,0,6,0,59,0,92,0,88,0,3,0\n79,0,99,0,87,0,46,0,30,0,20,0\n90,0,48,0,37,0,82,0,70,0,91,0\n34,0,47,0,80,0,74,0,21,0,58,0\n86,0,72,0,10,0,40,0,57,0,49,0\n96,0,62,0,60,0,4,0,45,0,5,0\n11,0,43,0,67,0,36,0,9,0,61,0\n77,0,16,0,76,0,69,0,33,0,29,0\n85,0,2,0,81,0,27,0,54,0,13,0\n98,0,65,0,39,0,42,0,50,0,84,0\n1,0,51,0,18,0,89,0,31,0,26,0\n28,0,97,0,78,0,24,0,52,0,64,0\n41,0,63,0,7,0,17,0,56,0,53,0\n83,0,55,0,25,0,75,0,14,0,93,0\n61,0,15,0,47,0,88,0,4,0,95,0\n46,0,62,0,58,0,16,0,66,0,91,0\n13,0,80,0,67,0,99,0,68,0,82,0\n86,0,70,0,9,0,6,0,98,0,44,0\n72,0,65,0,45,0,18,0,35,0,76,0\n24,0,32,0,26,0,52,0,20,0,27,0\n85,0,51,0,94,0,37,0,11,0,40,0\n2,0,31,0,60,0,93,0,33,0,39,0\n64,0,38,0,87,0,53,0,90,0,41,0\n69,0,10,0,25,0,78,0,43,0,8,0\n56,0,1,0,96,0,36,0,49,0,50,0\n48,0,34,0,30,0,12,0,71,0,5,0\n63,0,19,0,84,0,79,0,59,0,55,0\n83,0,17,0,22,0,89,0,92,0,54,0\n97,0,81,0,77,0,57,0,74,0,75,0\n28,0,21,0,14,0,29,0,42,0,23,0\n7,0,47,0,87,0,3,0,73,0,45,0\n25,0,33,0,80,0,98,0,38,0,11,0\n51,0,24,0,72,0,93,0,67,0,70,0\n39,0,86,0,76,0,20,0,64,0,37,0\n82,0,5,0,16,0,2,0,95,0,8,0\n30,0,58,0,78,0,84,0,60,0,17,0\n15,0,62,0,32,0,49,0,99,0,6,0\n83,0,65,0,59,0,81,0,40,0,28,0\n55,0,77,0,73,0,61,0,52,0,1,0\n35,0,31,0,90,0,10,0,19,0,34,0\n91,0,97,0,94,0,50,0,4,0,54,0\n74,0,42,0,44,0,7,0,13,0,96,0\n27,0,18,0,43,0,14,0,23,0,48,0\n71,0,41,0,75,0,66,0,3,0,22,0\n68,0,36,0,29,0,89,0,88,0,79,0\n21,0,92,0,12,0,56,0,63,0,85,0\n46,0,69,0,57,0,9,0,26,0,53,0\n35,0,86,0,51,0,17,0,47,0,33,0\n1,0,93,0,5,0,28,0,58,0,99,0\n61,0,62,0,90,0,13,0,83,0,39,0\n2,0,40,0,45,0,74,0,30,0,64,0\n42,0,94,0,66,0,95,0,24,0,34,0\n14,0,98,0,79,0,81,0,48,0,49,0\n84,0,91,0,3,0,77,0,27,0,80,0\n46,0,29,0,11,0,19,0,22,0,72,0\n52,0,12,0,8,0,75,0,88,0,65,0\n26,0,16,0,56,0,67,0,97,0,10,0\n38,0,59,0,71,0,21,0,96,0,9,0\n18,0,73,0,63,0,4,0,6,0,70,0\n89,0,36,0,57,0,23,0,20,0,87,0\n50,0,32,0,55,0,31,0,69,0,44,0\n41,0,76,0,25,0,85,0,68,0,60,0\n54,0,53,0,78,0,92,0,15,0,37,0\n43,0,82,0,29,0,7,0,94,0,35,0\n79,0,5,0,65,0,80,0,56,0,51,0\n95,0,52,0,71,0,83,0,10,0,98,0\n49,0,90,0,33,0,73,0,84,0,97,0\n72,0,77,0,64,0,99,0,63,0,47,0\n69,0,61,0,81,0,12,0,58,0,89,0\n19,0,39,0,36,0,38,0,18,0,45,0\n34,0,75,0,32,0,23,0,96,0,78,0\n41,0,31,0,70,0,21,0,27,0,25,0\n8,0,9,0,24,0,91,0,40,0,55,0\n48,0,57,0,54,0,13,0,88,0,93,0\n4,0,86,0,11,0,26,0,28,0,3,0\n44,0,17,0,37,0,42,0,2,0,46,0\n14,0,1,0,87,0,15,0,16,0,68,0\n92,0,66,0,82,0,76,0,30,0,50,0\n43,0,6,0,60,0,20,0,53,0,74,0\n7,0,59,0,85,0,22,0,62,0,67,0\n33,0,91,0,10,0,32,0,36,0,63,0\n19,0,78,0,94,0,73,0,61,0,65,0\n3,0,58,0,95,0,29,0,90,0,97,0\n88,0,98,0,35,0,46,0,64,0,96,0\n38,0,75,0,16,0,99,0,48,0,51,0\n80,0,2,0,84,0,12,0,15,0,24,0\n55,0,26,0,41,0,42,0,92,0,5,0\n37,0,13,0,79,0,77,0,9,0,25,0\n47,0,50,0,72,0,23,0,71,0,60,0\n76,0,22,0,4,0,14,0,57,0,34,0\n53,0,27,0,83,0,44,0,67,0,1,0\n89,0,56,0,82,0,28,0,62,0,6,0\n68,0,30,0,21,0,49,0,18,0,54,0\n52,0,7,0,17,0,40,0,39,0,66,0\n93,0,87,0,85,0,69,0,74,0,86,0\n70,0,81,0,45,0,20,0,8,0,11,0\n31,0,43,0,24,0,59,0,37,0,5,0\n65,0,13,0,22,0,26,0,23,0,63,0\n67,0,33,0,15,0,25,0,94,0,57,0\n78,0,71,0,4,0,35,0,2,0,79,0\n46,0,68,0,50,0,61,0,6,0,27,0\n53,0,51,0,55,0,82,0,58,0,49,0\n10,0,80,0,88,0,76,0,62,0,75,0\n95,0,40,0,38,0,60,0,89,0,73,0\n17,0,34,0,99,0,28,0,8,0,85,0\n96,0,52,0,31,0,47,0,30,0,11,0\n97,0,44,0,59,0,45,0,41,0,14,0\n19,0,1,0,21,0,86,0,7,0,81,0\n98,0,43,0,92,0,72,0,87,0,91,0\n70,0,12,0,3,0,42,0,36,0,16,0\n84,0,83,0,18,0,64,0,69,0,66,0\n20,0,32,0,77,0,54,0,90,0,93,0\n29,0,56,0,74,0,39,0,48,0,9,0\n22,0,30,0,28,0,10,0,51,0,61,0\n31,0,49,0,67,0,76,0,17,0,38,0\n24,0,23,0,79,0,86,0,41,0,62,0\n73,0,92,0,27,0,96,0,58,0,57,0\n2,0,97,0,21,0,53,0,11,0,65,0\n4,0,82,0,64,0,33,0,19,0,42,0\n59,0,98,0,18,0,60,0,77,0,12,0\n83,0,88,0,91,0,56,0,99,0,78,0\n66,0,90,0,26,0,74,0,25,0,72,0\n50,0,34,0,3,0,43,0,93,0,81,0\n8,0,80,0,46,0,39,0,1,0,94,0\n7,0,89,0,15,0,75,0,9,0,5,0\n95,0,36,0,84,0,14,0,85,0,32,0\n48,0,20,0,68,0,69,0,55,0,47,0\n52,0,16,0,13,0,45,0,6,0,71,0\n54,0,44,0,29,0,63,0,40,0,87,0\n35,0,23,0,99,0,70,0,37,0,66,0\n2,0,67,0,58,0,86,0,96,0,18,0\n21,0,51,0,39,0,73,0,88,0,43,0\n12,0,78,0,82,0,93,0,41,0,46,0\n65,0,30,0,24,0,77,0,7,0,14,0\n25,0,32,0,48,0,1,0,92,0,4,0\n76,0,36,0,6,0,8,0,97,0,47,0\n53,0,19,0,89,0,16,0,85,0,80,0\n9,0,31,0,63,0,52,0,94,0,83,0\n75,0,59,0,95,0,74,0,33,0,54,0\n69,0,56,0,42,0,72,0,38,0,27,0\n10,0,13,0,3,0,64,0,55,0,60,0\n44,0,49,0,20,0,61,0,91,0,5,0\n90,0,40,0,79,0,15,0,22,0,50,0\n34,0,37,0,45,0,98,0,26,0,29,0\n17,0,28,0,57,0,68,0,71,0,70,0\n11,0,81,0,35,0,87,0,62,0,84,0\n"
  },
  {
    "path": "schedules/99_13.csv",
    "content": "41,0,54,0,53,0,81,0,64,0,19,0\n82,0,38,0,4,0,51,0,1,0,28,0\n24,0,20,0,31,0,79,0,23,0,65,0\n98,0,85,0,48,0,35,0,89,0,68,0\n12,0,2,0,46,0,5,0,77,0,17,0\n97,0,14,0,26,0,3,0,32,0,84,0\n50,0,6,0,18,0,86,0,22,0,21,0\n76,0,58,0,88,0,71,0,47,0,33,0\n67,0,87,0,83,0,90,0,15,0,30,0\n92,0,72,0,55,0,16,0,59,0,40,0\n91,0,94,0,62,0,29,0,73,0,37,0\n7,0,74,0,52,0,45,0,66,0,95,0\n25,0,9,0,13,0,70,0,99,0,39,0\n11,0,80,0,8,0,69,0,56,0,42,0\n36,0,60,0,75,0,57,0,78,0,43,0\n93,0,96,0,10,0,61,0,49,0,34,0\n63,0,27,0,46,0,44,0,38,0,31,0\n71,0,83,0,35,0,18,0,2,0,3,0\n30,0,64,0,26,0,24,0,85,0,12,0\n68,0,54,0,79,0,95,0,91,0,86,0\n21,0,15,0,77,0,66,0,41,0,82,0\n14,0,99,0,40,0,23,0,89,0,6,0\n29,0,32,0,50,0,36,0,42,0,28,0\n61,0,80,0,96,0,59,0,90,0,65,0\n13,0,34,0,58,0,67,0,19,0,62,0\n74,0,22,0,16,0,78,0,8,0,87,0\n33,0,93,0,72,0,20,0,43,0,51,0\n4,0,49,0,63,0,81,0,17,0,47,0\n27,0,97,0,55,0,69,0,9,0,37,0\n11,0,5,0,76,0,73,0,53,0,39,0\n57,0,45,0,88,0,98,0,25,0,94,0\n60,0,44,0,10,0,84,0,70,0,52,0\n92,0,56,0,48,0,7,0,75,0,1,0\n15,1,86,0,80,0,99,1,12,0,13,0\n32,1,74,0,61,0,82,0,40,0,83,0\n65,0,18,0,16,0,41,0,23,0,49,0\n69,0,71,0,50,0,90,0,4,0,24,0\n37,0,85,0,76,0,8,0,51,0,31,0\n59,0,91,0,14,0,2,0,17,0,38,0\n95,0,46,0,26,0,88,0,97,0,67,0\n45,0,44,0,3,0,42,0,68,0,58,0\n9,0,89,0,53,0,79,0,75,0,66,0\n48,0,52,0,36,0,72,0,25,0,81,0\n35,0,94,0,93,0,70,0,56,0,5,0\n47,0,57,0,64,0,22,0,11,0,10,0\n92,0,27,0,29,0,39,0,96,0,34,0\n1,0,60,0,87,0,6,0,19,0,55,0\n30,0,78,0,21,0,63,0,98,0,20,0\n33,0,77,0,62,0,54,0,28,0,84,0\n7,0,73,0,99,0,43,0,97,0,90,0\n53,0,16,0,15,0,51,0,88,0,36,0\n80,0,32,0,23,0,25,0,71,0,5,0\n94,0,41,0,58,0,83,0,85,0,38,0\n11,0,2,0,34,0,31,0,26,0,79,0\n42,0,92,0,12,0,35,0,14,0,55,0\n75,0,18,0,69,0,74,0,46,0,60,0\n87,0,24,0,63,0,45,0,33,0,54,0\n43,0,21,0,10,0,40,0,95,0,62,0\n13,0,3,0,82,0,78,0,50,0,59,0\n81,0,56,0,65,0,98,0,86,0,73,0\n1,0,64,0,76,0,27,0,52,0,68,0\n28,0,66,0,47,0,61,0,48,0,57,0\n39,0,6,0,29,0,17,0,30,0,93,0\n19,0,89,0,20,0,37,0,44,0,49,0\n84,0,22,0,9,0,4,0,7,0,91,0\n8,0,70,0,96,0,67,0,77,0,72,0\n80,0,78,0,54,0,11,0,40,0,58,0\n85,0,56,0,82,0,65,0,99,0,36,0\n64,0,25,0,74,0,62,0,2,0,42,0\n27,0,47,0,41,0,60,0,92,0,53,0\n88,0,93,0,73,0,28,0,87,0,14,0\n39,0,24,0,89,0,46,0,94,0,21,0\n69,0,17,0,3,0,16,0,48,0,9,0\n18,0,95,0,7,0,76,0,96,0,50,0\n77,0,68,0,20,0,26,0,71,0,81,0\n90,0,63,0,55,0,51,0,22,0,5,0\n12,0,45,0,6,0,31,0,4,0,70,0\n10,0,86,0,38,0,67,0,37,0,32,0\n23,0,84,0,35,0,1,0,29,0,72,0\n61,0,91,0,19,0,43,0,75,0,98,0\n15,0,8,0,13,0,33,0,49,0,52,0\n34,0,97,0,66,0,44,0,83,0,59,0\n30,0,79,0,42,0,57,0,96,0,54,0\n58,0,74,0,36,0,63,0,7,0,77,0\n87,0,95,0,89,0,17,0,65,0,71,0\n32,0,46,0,56,0,48,0,53,0,37,0\n72,0,78,0,62,0,26,0,99,0,38,0\n29,0,43,0,91,0,47,0,31,0,12,0\n28,0,64,0,67,0,9,0,92,0,94,0\n60,0,49,0,97,0,22,0,24,0,80,0\n13,0,41,0,75,0,88,0,35,0,30,0\n25,0,85,0,33,0,1,0,61,0,44,0\n21,0,51,0,19,0,3,0,57,0,68,0\n76,0,90,0,2,0,86,0,23,0,45,0\n16,0,10,0,73,0,20,0,66,0,6,0\n70,0,59,0,18,0,4,0,27,0,98,0\n39,0,40,0,79,0,81,0,69,0,14,0\n52,0,55,0,83,0,50,0,11,0,93,0\n82,0,15,0,34,0,8,0,5,0,84,0\n46,0,7,0,41,0,61,0,42,0,71,0\n92,0,51,0,74,0,54,0,30,0,49,0\n97,0,38,0,95,0,29,0,77,0,57,0\n10,0,2,0,53,0,68,0,80,0,99,0\n28,0,17,0,86,0,24,0,25,0,43,0\n1,0,88,0,32,0,91,0,66,0,21,0\n78,0,12,0,40,0,39,0,52,0,65,0\n22,0,69,0,23,0,85,0,93,0,70,0\n20,0,60,0,9,0,35,0,76,0,56,0\n33,0,37,0,81,0,82,0,67,0,18,0\n79,0,45,0,55,0,8,0,62,0,83,0\n90,0,11,0,13,0,72,0,94,0,14,0\n63,0,48,0,15,0,96,0,19,0,26,0\n31,0,5,0,75,0,59,0,87,0,58,0\n89,0,36,0,3,0,73,0,64,0,4,0\n98,0,50,0,47,0,16,0,44,0,34,0\n6,0,51,0,24,0,27,0,84,0,42,0\n92,0,32,0,95,0,33,0,78,0,70,0\n12,0,8,0,21,0,83,0,28,0,53,0\n43,0,1,0,37,0,2,0,39,0,54,0\n67,0,99,0,60,0,29,0,63,0,88,0\n62,0,30,0,18,0,97,0,56,0,52,0\n69,0,57,0,59,0,15,0,89,0,26,0\n96,0,68,0,73,0,47,0,23,0,13,0\n58,0,25,0,14,0,46,0,22,0,35,0\n85,0,50,0,75,0,77,0,93,0,40,0\n27,0,61,0,82,0,11,0,16,0,45,0\n66,0,84,0,86,0,98,0,71,0,55,0\n34,0,36,0,20,0,90,0,41,0,91,0\n76,0,44,0,4,0,10,0,48,0,87,0\n38,0,49,0,79,0,6,0,64,0,7,0\n94,0,19,0,31,0,74,0,80,0,17,0\n65,0,72,0,5,0,3,0,9,0,81,0\n60,0,93,0,28,0,2,0,95,0,15,0\n73,0,52,0,85,0,92,0,88,0,21,0\n66,0,68,0,40,0,56,0,22,0,33,0\n43,0,45,0,77,0,30,0,34,0,69,0\n84,0,58,0,90,0,89,0,12,0,16,0\n75,0,6,0,54,0,76,0,13,0,26,0\n42,0,94,0,20,0,53,0,97,0,4,0\n83,0,72,0,7,0,24,0,98,0,37,0\n36,0,35,0,19,0,11,0,65,0,38,0\n87,0,70,0,41,0,1,0,62,0,80,0\n61,0,8,0,63,0,39,0,18,0,86,0\n29,0,71,0,14,0,49,0,48,0,78,0\n47,0,3,0,67,0,25,0,79,0,27,0\n44,0,5,0,91,0,96,0,64,0,99,0\n23,0,51,0,9,0,10,0,46,0,50,0\n31,0,17,0,57,0,32,0,82,0,55,0\n59,0,81,0,11,0,74,0,88,0,12,0\n22,0,54,0,20,0,69,0,38,0,52,0\n39,0,42,0,26,0,66,0,90,0,60,0\n40,0,86,0,87,0,94,0,48,0,34,0\n65,0,21,0,4,0,75,0,58,0,2,0\n6,0,28,0,78,0,37,0,96,0,35,0\n50,0,5,0,49,0,25,0,41,0,45,0\n31,0,77,0,83,0,1,0,89,0,13,0\n97,0,71,0,82,0,63,0,72,0,10,0\n17,0,68,0,92,0,36,0,84,0,18,0\n55,0,91,0,3,0,74,0,33,0,53,0\n24,0,99,0,16,0,57,0,19,0,76,0\n15,0,43,0,67,0,23,0,56,0,44,0\n85,0,80,0,79,0,29,0,98,0,46,0\n73,0,51,0,70,0,64,0,61,0,59,0\n62,0,27,0,81,0,32,0,7,0,93,0\n14,0,8,0,9,0,47,0,30,0,95,0\n94,0,26,0,12,0,10,0,18,0,1,0\n71,0,28,0,45,0,75,0,39,0,22,0\n77,0,37,0,11,0,87,0,99,0,92,0\n78,0,63,0,25,0,84,0,83,0,56,0\n98,0,96,0,2,0,3,0,41,0,24,0\n54,0,23,0,29,0,55,0,21,0,61,0\n49,0,31,0,73,0,35,0,67,0,69,0\n9,0,47,0,68,0,59,0,62,0,32,0\n65,0,46,0,57,0,72,0,27,0,13,0\n50,0,17,0,15,0,20,0,58,0,64,0\n90,0,53,0,82,0,44,0,40,0,30,0\n19,0,4,0,66,0,85,0,8,0,95,0\n52,0,81,0,51,0,34,0,91,0,80,0\n89,0,70,0,42,0,88,0,38,0,43,0\n14,0,33,0,86,0,7,0,60,0,16,0\n79,0,48,0,76,0,93,0,97,0,74,0\n36,0,5,0,61,0,6,0,62,0,69,0\n72,0,32,0,39,0,22,0,73,0,58,0\n44,0,55,0,78,0,18,0,77,0,24,0\n82,0,49,0,12,0,87,0,68,0,46,0\n29,0,26,0,56,0,51,0,13,0,45,0\n30,0,2,0,84,0,50,0,94,0,81,0\n7,0,10,0,33,0,31,0,89,0,41,0\n4,0,52,0,35,0,43,0,79,0,16,0\n20,0,83,0,99,0,95,0,27,0,75,0\n23,0,88,0,34,0,57,0,9,0,63,0\n80,0,37,0,21,0,64,0,36,0,14,0\n1,0,98,0,17,0,96,0,11,0,74,0\n38,0,66,0,3,0,92,0,90,0,93,0\n91,0,42,0,40,0,15,0,76,0,28,0\n47,0,70,0,97,0,5,0,86,0,19,0\n54,0,48,0,25,0,60,0,8,0,65,0\n71,0,59,0,67,0,53,0,6,0,85,0\n69,0,44,0,72,0,32,0,12,0,41,0\n37,0,22,0,95,0,61,0,16,0,13,0\n87,0,74,0,35,0,26,0,21,0,27,0\n90,0,98,0,31,0,9,0,77,0,52,0\n17,0,42,0,75,0,33,0,34,0,73,0\n18,0,93,0,45,0,47,0,89,0,99,0\n62,0,4,0,51,0,14,0,60,0,96,0\n11,0,3,0,25,0,29,0,15,0,20,0\n30,0,76,0,39,0,55,0,38,0,80,0\n65,0,50,0,66,0,63,0,70,0,67,0\n54,0,5,0,88,0,7,0,78,0,68,0\n2,0,40,0,64,0,97,0,8,0,36,0\n57,0,84,0,53,0,85,0,49,0,86,0\n46,0,81,0,43,0,6,0,92,0,83,0\n56,0,59,0,19,0,28,0,10,0,79,0\n23,0,48,0,24,0,58,0,91,0,82,0\n94,0,1,0,99,0,71,0,15,0,32,0\n"
  },
  {
    "path": "schedules/99_14.csv",
    "content": "67,0,18,0,62,0,37,0,40,0,87,0\n35,0,12,0,28,0,43,0,32,0,25,0\n44,0,6,0,91,0,68,0,30,0,21,0\n59,0,93,0,88,0,74,0,98,0,22,0\n79,0,16,0,24,0,83,0,13,0,39,0\n4,0,94,0,63,0,84,0,92,0,29,0\n15,0,27,0,81,0,1,0,90,0,17,0\n99,0,55,0,11,0,26,0,19,0,48,0\n77,0,65,0,10,0,64,0,31,0,49,0\n36,0,33,0,85,0,69,0,73,0,97,0\n41,0,53,0,80,0,76,0,50,0,96,0\n82,0,56,0,60,0,45,0,58,0,23,0\n2,0,61,0,86,0,66,0,14,0,95,0\n46,0,52,0,34,0,51,0,38,0,78,0\n71,0,20,0,7,0,9,0,57,0,54,0\n75,0,42,0,72,0,47,0,5,0,3,0\n8,0,89,0,74,0,70,0,17,0,21,0\n59,0,13,0,4,0,35,0,91,0,67,0\n87,0,92,0,73,0,29,0,22,0,77,0\n6,0,11,0,32,0,16,0,33,0,90,0\n81,0,84,0,98,0,82,0,50,0,12,0\n25,0,85,0,96,0,79,0,65,0,68,0\n30,0,66,0,80,0,78,0,24,0,36,0\n19,0,93,0,9,0,83,0,38,0,43,0\n41,0,47,0,39,0,31,0,37,0,55,0\n63,0,71,0,14,0,99,0,76,0,70,0\n51,0,27,0,23,0,7,0,10,0,40,0\n56,0,1,0,42,0,60,0,20,0,52,0\n95,0,58,0,69,0,72,0,53,0,64,0\n86,0,89,0,54,0,75,0,34,0,15,0\n18,0,3,0,61,0,28,0,46,0,94,0\n49,0,2,0,97,0,45,0,8,0,48,0\n26,0,44,0,57,0,88,0,5,0,62,0\n82,0,31,0,78,0,74,0,87,0,13,0\n29,0,66,0,83,0,27,0,11,0,47,0\n20,0,55,0,35,0,77,0,96,0,93,0\n7,0,38,0,37,0,14,0,58,0,25,0\n10,0,52,0,63,0,22,0,86,0,71,0\n70,0,75,0,6,0,9,0,60,0,85,0\n17,0,80,0,23,0,97,0,67,0,79,0\n41,0,12,0,54,0,5,0,95,0,33,0\n30,0,73,0,59,0,43,0,72,0,90,0\n26,0,76,0,81,0,2,0,40,0,28,0\n98,0,24,0,65,0,94,0,56,0,51,0\n50,0,64,0,62,0,99,0,46,0,4,0\n91,0,16,0,92,0,3,0,53,0,48,0\n18,0,34,0,45,0,8,0,39,0,69,0\n84,0,21,0,88,0,49,0,61,0,1,0\n19,0,36,0,42,0,15,0,44,0,32,0\n57,0,68,0,63,0,89,0,14,0,23,0\n87,0,97,0,90,0,83,0,41,0,26,0\n20,0,5,0,6,0,37,0,76,0,86,0\n10,0,73,0,25,0,56,0,55,0,80,0\n29,0,50,0,72,0,70,0,66,0,91,0\n43,0,74,0,52,0,48,0,65,0,69,0\n58,0,31,0,40,0,34,0,4,0,30,0\n38,0,85,0,59,0,44,0,49,0,3,0\n78,0,1,0,79,0,12,0,92,0,9,0\n98,0,27,0,77,0,32,0,21,0,18,0\n19,0,33,0,35,0,88,0,8,0,7,0\n99,0,82,0,16,0,54,0,96,0,2,0\n71,0,62,0,75,0,84,0,24,0,68,0\n22,0,60,0,47,0,53,0,94,0,36,0\n39,0,64,0,51,0,28,0,15,0,67,0\n89,0,57,0,61,0,42,0,81,0,13,0\n11,0,93,0,95,0,17,0,45,0,46,0\n92,0,30,0,70,0,18,0,12,0,65,0\n34,0,44,0,55,0,50,0,49,0,27,0\n29,0,96,0,14,0,8,0,3,0,54,0\n5,0,99,0,90,0,52,0,80,0,7,0\n32,0,48,0,4,0,66,0,73,0,60,0\n2,0,58,0,74,0,19,0,68,0,22,0\n28,0,56,0,63,0,13,0,62,0,97,0\n39,0,57,0,10,0,9,0,95,0,21,0\n33,0,17,0,47,0,43,0,61,0,77,0\n83,0,1,0,53,0,59,0,46,0,86,0\n76,0,87,0,45,0,25,0,98,0,64,0\n82,0,6,0,67,0,94,0,93,0,75,0\n79,0,72,0,37,0,81,0,36,0,35,0\n24,0,85,0,11,0,89,0,88,0,20,0\n84,0,69,0,40,0,78,0,41,0,42,0\n26,0,38,0,23,0,91,0,71,0,31,0\n15,0,51,0,97,0,16,0,12,0,14,0\n3,0,83,0,90,0,2,0,57,0,56,0\n13,0,17,0,54,0,52,0,53,0,18,0\n7,0,74,0,32,0,4,0,47,0,1,0\n92,0,25,0,99,0,72,0,34,0,93,0\n89,0,30,0,98,0,62,0,35,0,60,0\n68,0,67,0,45,0,27,0,65,0,5,0\n26,0,94,0,96,0,86,0,77,0,48,0\n38,0,64,0,8,0,75,0,41,0,73,0\n43,0,40,0,15,0,6,0,50,0,24,0\n81,0,95,0,63,0,31,0,85,0,51,0\n21,0,22,0,16,0,76,0,78,0,20,0\n10,0,37,0,88,0,84,0,70,0,42,0\n66,0,39,0,44,0,58,0,46,0,33,0\n36,0,87,0,71,0,91,0,28,0,11,0\n29,0,80,0,79,0,49,0,82,0,19,0\n55,0,9,0,61,0,59,0,23,0,69,0\n7,0,34,0,41,0,3,0,12,0,60,0\n14,0,5,0,45,0,94,0,43,0,1,0\n99,0,53,0,56,0,38,0,81,0,30,0\n4,0,76,0,8,0,83,0,24,0,10,0\n40,0,77,0,89,0,52,0,72,0,16,0\n75,0,58,0,21,0,87,0,46,0,48,0\n18,0,74,0,28,0,44,0,95,0,80,0\n51,0,91,0,22,0,32,0,79,0,55,0\n97,0,54,0,88,0,6,0,66,0,64,0\n31,0,61,0,96,0,70,0,27,0,36,0\n15,0,49,0,93,0,33,0,78,0,63,0\n25,0,19,0,86,0,84,0,73,0,67,0\n29,0,17,0,26,0,85,0,69,0,57,0\n2,0,11,0,13,0,9,0,62,0,42,0\n90,0,37,0,92,0,98,0,68,0,23,0\n39,0,20,0,59,0,50,0,71,0,65,0\n47,0,24,0,18,0,35,0,82,0,14,0\n31,0,7,0,72,0,6,0,28,0,45,0\n70,0,97,0,3,0,30,0,1,0,87,0\n44,0,64,0,96,0,78,0,81,0,52,0\n22,0,46,0,5,0,84,0,48,0,15,0\n32,0,13,0,80,0,34,0,85,0,43,0\n98,0,53,0,57,0,33,0,75,0,79,0\n8,0,60,0,77,0,11,0,37,0,59,0\n12,0,39,0,42,0,23,0,74,0,99,0\n29,0,76,0,90,0,67,0,55,0,95,0\n66,0,94,0,58,0,10,0,93,0,62,0\n4,0,36,0,20,0,63,0,82,0,26,0\n49,0,40,0,9,0,25,0,89,0,47,0\n41,0,17,0,16,0,65,0,86,0,91,0\n69,0,19,0,56,0,54,0,92,0,27,0\n73,0,51,0,35,0,2,0,71,0,21,0\n50,0,38,0,68,0,88,0,61,0,83,0\n95,0,23,0,6,0,77,0,99,0,3,0\n5,0,15,0,87,0,85,0,79,0,8,0\n84,0,57,0,52,0,28,0,24,0,66,0\n30,0,42,0,22,0,9,0,80,0,82,0\n75,0,98,0,97,0,40,0,96,0,34,0\n18,0,16,0,1,0,29,0,36,0,64,0\n12,0,69,0,47,0,71,0,90,0,44,0\n33,0,25,0,74,0,94,0,91,0,20,0\n46,0,67,0,14,0,72,0,26,0,10,0\n86,0,62,0,45,0,55,0,54,0,38,0\n50,0,83,0,31,0,17,0,7,0,73,0\n21,0,19,0,27,0,41,0,63,0,37,0\n65,0,58,0,78,0,35,0,61,0,11,0\n93,0,76,0,89,0,32,0,39,0,56,0\n68,0,53,0,49,0,51,0,70,0,4,0\n2,0,43,0,81,0,92,0,60,0,88,0\n48,0,59,0,71,0,13,0,25,0,29,0\n8,0,20,0,98,0,23,0,46,0,72,0\n80,0,62,0,3,0,15,0,31,0,69,0\n96,0,87,0,99,0,17,0,66,0,10,0\n19,0,77,0,67,0,45,0,12,0,57,0\n86,0,85,0,64,0,47,0,56,0,93,0\n38,0,21,0,28,0,5,0,4,0,42,0\n84,0,2,0,89,0,65,0,36,0,7,0\n51,0,49,0,76,0,54,0,43,0,11,0\n44,0,14,0,83,0,75,0,22,0,35,0\n18,0,58,0,9,0,41,0,97,0,81,0\n73,0,48,0,27,0,78,0,53,0,6,0\n82,0,32,0,95,0,52,0,59,0,92,0\n90,0,88,0,94,0,40,0,79,0,39,0\n24,0,91,0,1,0,61,0,63,0,34,0\n68,0,60,0,70,0,13,0,55,0,33,0\n30,0,50,0,37,0,74,0,26,0,16,0\n23,0,86,0,43,0,44,0,29,0,4,0\n22,0,56,0,96,0,11,0,5,0,18,0\n83,0,28,0,99,0,85,0,58,0,98,0\n36,0,52,0,45,0,21,0,3,0,20,0\n42,0,14,0,76,0,27,0,59,0,87,0\n89,0,17,0,6,0,92,0,19,0,51,0\n54,0,79,0,60,0,47,0,10,0,68,0\n61,0,64,0,48,0,12,0,40,0,80,0\n69,0,38,0,70,0,24,0,67,0,32,0\n35,0,39,0,31,0,84,0,97,0,53,0\n82,0,72,0,1,0,33,0,41,0,62,0\n30,0,94,0,13,0,49,0,7,0,95,0\n78,0,50,0,2,0,75,0,63,0,25,0\n9,0,66,0,77,0,34,0,74,0,90,0\n91,0,15,0,73,0,57,0,93,0,37,0\n81,0,88,0,55,0,71,0,16,0,46,0\n65,0,8,0,47,0,26,0,80,0,6,0\n3,0,43,0,27,0,58,0,84,0,79,0\n41,0,29,0,32,0,20,0,61,0,99,0\n24,0,92,0,21,0,96,0,7,0,33,0\n83,0,36,0,82,0,5,0,51,0,25,0\n86,0,17,0,14,0,28,0,39,0,30,0\n34,0,70,0,94,0,57,0,11,0,64,0\n91,0,77,0,13,0,88,0,69,0,76,0\n75,0,66,0,26,0,59,0,81,0,45,0\n48,0,1,0,9,0,67,0,44,0,98,0\n55,0,10,0,15,0,38,0,18,0,2,0\n60,0,65,0,72,0,90,0,63,0,22,0\n62,0,52,0,23,0,19,0,85,0,50,0\n78,0,95,0,97,0,89,0,4,0,71,0\n54,0,46,0,35,0,74,0,40,0,73,0\n53,0,37,0,12,0,49,0,87,0,56,0\n31,0,93,0,68,0,42,0,8,0,16,0\n33,0,88,0,30,0,45,0,29,0,51,0\n34,0,10,0,48,0,83,0,81,0,20,0\n69,0,79,0,7,0,11,0,75,0,86,0\n3,0,24,0,9,0,17,0,5,0,64,0\n57,0,60,0,4,0,25,0,18,0,27,0\n28,0,78,0,59,0,19,0,70,0,47,0\n52,0,94,0,32,0,23,0,87,0,2,0\n14,0,50,0,13,0,90,0,93,0,21,0\n67,0,31,0,43,0,99,0,89,0,22,0\n37,0,91,0,46,0,82,0,85,0,97,0\n55,0,53,0,65,0,40,0,8,0,44,0\n68,0,41,0,35,0,56,0,15,0,66,0\n71,0,54,0,1,0,58,0,77,0,80,0\n62,0,92,0,74,0,36,0,76,0,61,0\n96,0,12,0,63,0,38,0,6,0,39,0\n42,0,49,0,26,0,73,0,95,0,98,0\n16,0,84,0,87,0,72,0,45,0,9,0\n51,0,47,0,48,0,50,0,18,0,57,0\n97,0,5,0,40,0,60,0,93,0,29,0\n70,0,44,0,79,0,2,0,41,0,20,0\n94,0,99,0,69,0,83,0,68,0,37,0\n46,0,65,0,3,0,19,0,13,0,76,0\n21,0,56,0,33,0,34,0,59,0,31,0\n82,0,77,0,11,0,15,0,53,0,63,0\n75,0,17,0,12,0,58,0,36,0,88,0\n39,0,54,0,25,0,22,0,26,0,61,0\n27,0,16,0,95,0,38,0,35,0,80,0\n32,0,23,0,64,0,84,0,30,0,96,0\n28,0,90,0,73,0,1,0,89,0,10,0\n67,0,66,0,85,0,71,0,42,0,92,0\n49,0,72,0,81,0,86,0,74,0,24,0\n55,0,98,0,6,0,14,0,4,0,52,0\n43,0,78,0,7,0,8,0,91,0,62,0\n"
  },
  {
    "path": "schedules/99_2.csv",
    "content": "19,0,1,0,98,0,96,0,23,0,51,0\n67,0,66,0,83,0,44,0,8,0,45,0\n64,0,77,0,71,0,75,0,35,0,15,0\n26,0,52,0,70,0,24,0,73,0,76,0\n11,0,86,0,18,0,14,0,39,0,65,0\n63,0,25,0,87,0,47,0,82,0,54,0\n33,0,91,0,56,0,20,0,17,0,53,0\n32,0,10,0,78,0,46,0,2,0,36,0\n95,0,5,0,48,0,97,0,61,0,60,0\n57,0,99,0,49,0,68,0,22,0,31,0\n62,0,12,0,90,0,40,0,41,0,37,0\n58,0,34,0,16,0,88,0,38,0,7,0\n4,0,55,0,89,0,92,0,21,0,29,0\n81,0,74,0,84,0,72,0,42,0,28,0\n27,0,93,0,80,0,3,0,94,0,69,0\n79,0,9,0,50,0,6,0,59,0,13,0\n85,0,45,0,53,0,30,0,43,0,95,0\n17,0,97,0,44,0,15,0,78,0,24,0\n37,0,23,0,68,0,70,0,47,0,48,0\n14,0,88,0,33,0,51,0,8,0,64,0\n41,0,38,0,54,0,86,0,35,0,10,0\n28,0,36,0,90,0,16,0,55,0,19,0\n69,0,7,0,65,0,83,0,87,0,91,0\n72,0,29,0,34,0,26,0,59,0,63,0\n92,0,94,0,42,0,11,0,67,0,50,0\n21,0,6,0,80,0,46,0,99,0,18,0\n1,0,12,0,66,0,89,0,27,0,85,0\n60,0,39,0,73,0,98,0,71,0,30,0\n4,0,3,0,82,0,81,0,77,0,61,0\n93,0,40,0,75,0,84,0,49,0,56,0\n20,0,62,0,2,0,74,0,79,0,31,0\n32,0,52,0,96,0,57,0,5,0,13,0\n43,0,22,0,76,0,58,0,9,0,25,0\n"
  },
  {
    "path": "schedules/99_3.csv",
    "content": "24,0,2,0,6,0,41,0,43,0,90,0\n16,0,74,0,42,0,85,0,60,0,20,0\n77,0,64,0,3,0,62,0,19,0,17,0\n70,0,49,0,4,0,14,0,84,0,56,0\n36,0,72,0,59,0,8,0,35,0,98,0\n87,0,71,0,28,0,57,0,54,0,95,0\n91,0,38,0,34,0,7,0,75,0,18,0\n89,0,22,0,55,0,58,0,73,0,86,0\n27,0,11,0,1,0,51,0,50,0,21,0\n52,0,40,0,99,0,23,0,26,0,65,0\n67,0,37,0,96,0,47,0,94,0,81,0\n29,0,53,0,33,0,32,0,76,0,69,0\n45,0,68,0,46,0,80,0,5,0,39,0\n12,0,78,0,88,0,31,0,63,0,83,0\n93,0,48,0,97,0,15,0,9,0,25,0\n10,0,61,0,13,0,79,0,82,0,44,0\n30,0,66,0,74,0,92,0,1,0,14,0\n58,1,54,0,65,0,6,1,38,0,51,0\n40,1,37,0,75,0,27,0,89,0,8,0\n77,0,94,0,50,0,4,0,55,0,69,0\n86,0,7,0,5,0,53,0,72,0,2,0\n90,0,22,0,76,0,87,0,36,0,20,0\n26,0,60,0,25,0,33,0,49,0,68,0\n18,0,39,0,84,0,13,0,83,0,28,0\n41,0,47,0,19,0,42,0,99,0,34,0\n17,0,73,0,63,0,91,0,95,0,92,0\n98,0,15,0,45,0,31,0,23,0,79,0\n57,0,35,0,10,0,67,0,29,0,88,0\n56,0,21,0,3,0,32,0,43,0,96,0\n85,0,11,0,59,0,97,0,78,0,64,0\n62,0,24,0,44,0,52,0,93,0,30,0\n12,0,46,0,9,0,70,0,66,0,82,0\n61,0,71,0,81,0,80,0,16,0,48,0\n68,0,58,0,92,0,27,0,28,0,41,0\n31,0,17,0,25,0,65,0,7,0,76,0\n13,0,86,0,29,0,6,0,75,0,50,0\n72,0,96,0,18,0,42,0,15,0,1,0\n14,0,54,0,36,0,67,0,53,0,11,0\n69,0,19,0,43,0,30,0,35,0,79,0\n77,0,47,0,82,0,33,0,21,0,40,0\n23,0,5,0,12,0,16,0,34,0,64,0\n52,0,73,0,4,0,57,0,2,0,59,0\n88,0,98,0,80,0,90,0,66,0,60,0\n89,0,20,0,63,0,70,0,24,0,61,0\n74,0,48,0,56,0,26,0,91,0,10,0\n62,0,83,0,81,0,85,0,9,0,45,0\n51,0,8,0,94,0,71,0,22,0,32,0\n38,0,78,0,95,0,84,0,46,0,37,0\n99,0,55,0,39,0,3,0,93,0,49,0\n97,0,44,0,6,0,87,0,58,0,40,0\n"
  },
  {
    "path": "schedules/99_4.csv",
    "content": "60,0,63,0,33,0,36,0,17,0,53,0\n37,0,89,0,8,0,34,0,61,0,20,0\n91,0,77,0,14,0,49,0,59,0,19,0\n75,0,21,0,12,0,1,0,3,0,82,0\n6,0,18,0,55,0,85,0,86,0,54,0\n44,0,83,0,96,0,10,0,29,0,23,0\n98,0,27,0,76,0,56,0,7,0,72,0\n66,0,64,0,93,0,26,0,11,0,88,0\n73,0,15,0,79,0,90,0,58,0,9,0\n74,0,2,0,39,0,67,0,32,0,16,0\n31,0,62,0,57,0,71,0,92,0,80,0\n45,0,22,0,65,0,87,0,68,0,43,0\n42,0,13,0,41,0,5,0,84,0,30,0\n70,0,25,0,94,0,50,0,40,0,52,0\n46,0,35,0,95,0,81,0,4,0,38,0\n28,0,47,0,97,0,24,0,48,0,69,0\n78,0,51,0,21,0,99,0,93,0,60,0\n32,0,72,0,53,0,89,0,9,0,11,0\n3,0,26,0,7,0,33,0,49,0,6,0\n8,0,45,0,77,0,73,0,66,0,39,0\n59,0,63,0,5,0,74,0,29,0,55,0\n65,0,84,0,86,0,64,0,37,0,90,0\n35,0,82,0,36,0,27,0,91,0,15,0\n52,0,43,0,10,0,69,0,14,0,42,0\n4,0,48,0,25,0,20,0,79,0,54,0\n17,0,38,0,80,0,88,0,75,0,23,0\n46,0,31,0,99,0,56,0,28,0,96,0\n67,0,41,0,47,0,22,0,70,0,81,0\n58,0,24,0,61,0,68,0,62,0,50,0\n2,0,95,0,98,0,57,0,78,0,12,0\n1,0,71,0,87,0,85,0,30,0,97,0\n76,0,18,0,44,0,40,0,34,0,13,0\n19,0,16,0,83,0,94,0,92,0,51,0\n91,0,17,0,45,0,42,0,48,0,89,0\n5,0,77,0,35,0,60,0,7,0,96,0\n43,0,93,0,70,0,33,0,72,0,37,0\n90,0,6,0,50,0,29,0,39,0,46,0\n28,0,11,0,73,0,95,0,59,0,80,0\n38,0,49,0,54,0,82,0,31,0,22,0\n53,0,34,0,15,0,52,0,75,0,99,0\n64,0,19,0,57,0,67,0,3,0,18,0\n81,0,51,0,14,0,58,0,71,0,65,0\n97,0,68,0,88,0,83,0,2,0,36,0\n27,0,40,0,85,0,10,0,4,0,61,0\n76,0,62,0,1,0,25,0,47,0,55,0\n66,0,23,0,86,0,87,0,92,0,98,0\n16,0,12,0,30,0,69,0,44,0,8,0\n9,0,26,0,20,0,13,0,63,0,24,0\n94,0,21,0,74,0,41,0,56,0,79,0\n78,0,32,0,49,0,84,0,46,0,70,0\n60,0,29,0,81,0,45,0,37,0,82,0\n10,0,59,0,7,0,71,0,54,0,36,0\n6,0,96,0,47,0,19,0,95,0,58,0\n22,0,48,0,99,0,14,0,5,0,62,0\n88,0,16,0,55,0,77,0,42,0,27,0\n24,0,33,0,52,0,57,0,1,0,51,0\n66,0,9,0,17,0,2,0,21,0,44,0\n39,0,56,0,25,0,63,0,97,0,86,0\n15,0,40,0,28,0,12,0,38,0,93,0\n85,0,74,0,92,0,68,0,34,0,73,0\n72,0,20,0,50,0,84,0,80,0,67,0\n43,0,79,0,53,0,35,0,8,0,18,0\n41,0,61,0,87,0,64,0,32,0,75,0\n69,0,4,0,23,0,91,0,78,0,13,0\n90,0,30,0,98,0,11,0,94,0,3,0\n89,0,26,0,65,0,76,0,83,0,31,0\n"
  },
  {
    "path": "schedules/99_5.csv",
    "content": "89,0,66,0,71,0,41,0,20,0,96,0\n5,0,14,0,18,0,55,0,84,0,75,0\n64,0,95,0,62,0,94,0,54,0,60,0\n11,0,32,0,16,0,61,0,87,0,38,0\n36,0,65,0,79,0,30,0,56,0,91,0\n40,0,98,0,8,0,35,0,70,0,52,0\n39,0,99,0,31,0,53,0,45,0,73,0\n10,0,50,0,63,0,58,0,88,0,49,0\n80,0,51,0,81,0,83,0,76,0,82,0\n24,0,19,0,97,0,93,0,47,0,72,0\n44,0,23,0,12,0,43,0,21,0,2,0\n37,0,92,0,59,0,57,0,33,0,3,0\n78,0,15,0,6,0,17,0,46,0,67,0\n68,0,42,0,86,0,26,0,13,0,4,0\n27,0,77,0,90,0,1,0,69,0,48,0\n28,0,85,0,25,0,34,0,9,0,74,0\n22,0,7,0,88,0,29,0,16,0,31,0\n84,0,45,0,60,0,98,0,76,0,58,0\n30,0,35,0,95,0,81,0,38,0,50,0\n2,0,99,0,92,0,51,0,52,0,62,0\n14,0,73,0,17,0,59,0,36,0,12,0\n72,0,71,0,8,0,79,0,63,0,42,0\n67,0,83,0,1,0,86,0,44,0,3,0\n27,0,26,0,78,0,93,0,85,0,21,0\n13,0,37,0,97,0,11,0,46,0,56,0\n20,0,75,0,57,0,29,0,90,0,24,0\n96,0,47,0,74,0,64,0,80,0,22,0\n19,0,9,0,43,0,69,0,5,0,89,0\n23,0,87,0,82,0,65,0,40,0,48,0\n61,0,68,0,54,0,77,0,41,0,28,0\n34,0,39,0,6,0,7,0,55,0,49,0\n18,0,15,0,4,0,53,0,25,0,32,0\n70,0,94,0,91,0,10,0,33,0,66,0\n60,1,52,0,26,0,57,1,67,0,71,0\n78,1,42,0,11,0,20,0,22,0,30,0\n75,0,69,0,21,0,47,0,73,0,16,0\n72,0,5,0,58,0,80,0,44,0,31,0\n29,0,2,0,8,0,36,0,81,0,13,0\n74,0,48,0,45,0,43,0,68,0,6,0\n12,0,84,0,63,0,89,0,37,0,54,0\n50,0,86,0,97,0,90,0,28,0,65,0\n98,0,79,0,46,0,96,0,19,0,99,0\n76,0,7,0,9,0,87,0,70,0,27,0\n35,0,59,0,1,0,34,0,10,0,32,0\n93,0,15,0,92,0,66,0,77,0,23,0\n56,0,17,0,83,0,94,0,18,0,39,0\n55,0,40,0,88,0,24,0,62,0,25,0\n53,0,85,0,14,0,33,0,95,0,82,0\n3,0,49,0,38,0,41,0,51,0,91,0\n64,0,63,0,67,0,61,0,4,0,99,0\n21,0,68,0,81,0,19,0,90,0,84,0\n1,0,60,0,96,0,7,0,28,0,12,0\n2,0,35,0,93,0,69,0,71,0,31,0\n47,0,70,0,65,0,92,0,45,0,83,0\n13,0,44,0,55,0,76,0,57,0,22,0\n80,0,77,0,9,0,62,0,50,0,79,0\n3,0,89,0,32,0,94,0,72,0,36,0\n33,0,38,0,27,0,97,0,25,0,73,0\n87,0,78,0,8,0,74,0,51,0,18,0\n20,0,49,0,4,0,40,0,95,0,37,0\n58,0,52,0,91,0,75,0,34,0,17,0\n24,0,16,0,46,0,30,0,14,0,48,0\n11,0,59,0,54,0,15,0,86,0,82,0\n26,0,5,0,61,0,88,0,66,0,39,0\n42,0,53,0,23,0,10,0,98,0,6,0\n56,0,85,0,41,0,43,0,29,0,64,0\n96,0,36,0,62,0,97,0,35,0,78,0\n25,0,31,0,84,0,13,0,65,0,67,0\n32,0,47,0,79,0,52,0,20,0,55,0\n57,0,34,0,77,0,14,0,72,0,81,0\n18,0,9,0,16,0,90,0,2,0,59,0\n22,0,66,0,1,0,87,0,19,0,45,0\n94,0,76,0,40,0,75,0,12,0,6,0\n33,0,43,0,17,0,49,0,86,0,61,0\n39,0,51,0,63,0,11,0,85,0,60,0\n38,0,56,0,98,0,88,0,68,0,92,0\n21,0,3,0,28,0,80,0,70,0,4,0\n48,0,15,0,91,0,83,0,7,0,42,0\n29,0,30,0,53,0,58,0,54,0,71,0\n41,0,37,0,10,0,24,0,27,0,44,0\n95,0,99,0,74,0,26,0,23,0,89,0\n73,0,93,0,64,0,8,0,5,0,46,0\n82,0,69,0,57,0,50,0,60,0,78,0\n"
  },
  {
    "path": "schedules/99_6.csv",
    "content": "20,0,59,0,35,0,21,0,47,0,51,0\n99,0,33,0,95,0,2,0,85,0,7,0\n3,0,65,0,92,0,77,0,62,0,32,0\n28,0,81,0,83,0,69,0,25,0,52,0\n68,0,73,0,96,0,8,0,72,0,64,0\n34,0,42,0,30,0,67,0,98,0,13,0\n23,0,40,0,16,0,43,0,26,0,41,0\n89,0,37,0,17,0,36,0,61,0,50,0\n29,0,9,0,38,0,48,0,15,0,88,0\n49,0,27,0,22,0,82,0,78,0,46,0\n63,0,86,0,24,0,58,0,71,0,94,0\n1,0,39,0,87,0,66,0,54,0,93,0\n84,0,53,0,76,0,12,0,19,0,11,0\n45,0,80,0,10,0,31,0,60,0,57,0\n91,0,6,0,44,0,4,0,97,0,56,0\n70,0,14,0,18,0,75,0,74,0,55,0\n5,0,90,0,36,0,79,0,81,0,96,0\n13,0,26,0,95,0,77,0,9,0,68,0\n37,0,67,0,94,0,21,0,88,0,46,0\n50,0,52,0,72,0,1,0,42,0,51,0\n8,0,33,0,98,0,24,0,92,0,87,0\n2,0,35,0,31,0,16,0,78,0,63,0\n86,0,99,0,3,0,38,0,91,0,45,0\n4,0,32,0,15,0,74,0,27,0,25,0\n58,0,54,0,75,0,11,0,22,0,61,0\n39,0,10,0,18,0,12,0,97,0,65,0\n55,0,64,0,28,0,43,0,85,0,48,0\n5,0,7,0,30,0,40,0,93,0,47,0\n80,0,23,0,83,0,76,0,90,0,66,0\n71,0,57,0,82,0,44,0,79,0,59,0\n34,0,19,0,29,0,14,0,41,0,20,0\n53,0,6,0,60,0,70,0,89,0,73,0\n62,0,84,0,56,0,69,0,49,0,17,0\n91,0,2,0,22,0,72,0,92,0,13,0\n21,0,78,0,54,0,9,0,50,0,64,0\n88,0,55,0,47,0,39,0,24,0,36,0\n99,0,40,0,83,0,15,0,1,0,63,0\n46,0,80,0,8,0,52,0,26,0,79,0\n44,0,76,0,67,0,31,0,61,0,74,0\n3,0,16,0,58,0,57,0,19,0,68,0\n71,0,51,0,93,0,95,0,90,0,14,0\n60,0,20,0,77,0,28,0,75,0,56,0\n65,0,84,0,59,0,5,0,29,0,86,0\n32,0,23,0,49,0,33,0,48,0,89,0\n82,0,85,0,11,0,81,0,6,0,42,0\n41,0,73,0,12,0,38,0,27,0,62,0\n7,0,45,0,17,0,4,0,18,0,87,0\n66,0,37,0,25,0,30,0,96,0,70,0\n98,0,35,0,10,0,53,0,43,0,94,0\n34,0,69,0,47,0,97,0,77,0,78,0\n52,0,14,0,44,0,60,0,13,0,86,0\n9,0,24,0,72,0,99,0,59,0,16,0\n90,0,63,0,48,0,74,0,3,0,6,0\n62,0,79,0,88,0,40,0,33,0,54,0\n64,0,22,0,19,0,38,0,17,0,80,0\n50,0,30,0,57,0,55,0,92,0,56,0\n25,0,46,0,41,0,76,0,58,0,18,0\n5,0,95,0,53,0,42,0,39,0,15,0\n27,0,8,0,1,0,11,0,37,0,34,0\n65,0,93,0,4,0,23,0,61,0,2,0\n26,0,85,0,21,0,36,0,45,0,73,0\n51,0,43,0,70,0,87,0,83,0,84,0\n97,0,81,0,31,0,94,0,20,0,32,0\n68,0,67,0,35,0,82,0,66,0,69,0\n7,0,96,0,89,0,28,0,12,0,98,0\n71,0,29,0,49,0,10,0,75,0,91,0\n86,0,34,0,48,0,79,0,25,0,22,0\n88,0,77,0,50,0,5,0,76,0,14,0\n40,0,78,0,58,0,65,0,6,0,80,0\n38,0,92,0,42,0,54,0,83,0,44,0\n56,0,59,0,36,0,18,0,95,0,27,0\n13,0,61,0,70,0,16,0,8,0,97,0\n66,0,73,0,98,0,11,0,46,0,4,0\n82,0,31,0,3,0,23,0,17,0,29,0\n57,0,32,0,43,0,39,0,9,0,7,0\n99,0,41,0,55,0,53,0,49,0,96,0\n74,0,51,0,28,0,19,0,91,0,24,0\n2,0,52,0,64,0,30,0,45,0,75,0\n72,0,69,0,12,0,60,0,85,0,94,0\n81,0,21,0,87,0,62,0,71,0,89,0\n37,0,33,0,68,0,93,0,63,0,20,0\n47,0,26,0,90,0,67,0,15,0,10,0\n1,0,6,0,22,0,84,0,35,0,88,0\n41,0,11,0,97,0,83,0,57,0,86,0\n16,0,91,0,54,0,95,0,46,0,32,0\n43,0,31,0,24,0,65,0,27,0,30,0\n60,0,19,0,39,0,82,0,50,0,99,0\n80,0,62,0,36,0,51,0,44,0,53,0\n92,0,66,0,74,0,12,0,34,0,81,0\n56,0,76,0,10,0,21,0,72,0,70,0\n1,0,5,0,38,0,23,0,98,0,20,0\n79,0,63,0,13,0,4,0,69,0,64,0\n61,0,15,0,71,0,84,0,3,0,28,0\n8,0,25,0,85,0,49,0,35,0,40,0\n96,0,14,0,45,0,58,0,47,0,33,0\n17,0,77,0,94,0,55,0,73,0,2,0\n7,0,26,0,75,0,48,0,37,0,59,0\n9,0,52,0,18,0,67,0,89,0,93,0\n78,0,90,0,87,0,68,0,42,0,29,0\n"
  },
  {
    "path": "schedules/99_7.csv",
    "content": "80,0,7,0,38,0,66,0,77,0,33,0\n88,0,3,0,44,0,12,0,61,0,41,0\n27,0,15,0,62,0,45,0,98,0,87,0\n25,0,57,0,21,0,19,0,95,0,17,0\n2,0,49,0,51,0,26,0,79,0,64,0\n65,0,85,0,47,0,39,0,91,0,18,0\n60,0,72,0,71,0,58,0,46,0,59,0\n30,0,37,0,67,0,34,0,55,0,73,0\n16,0,52,0,56,0,81,0,74,0,82,0\n90,0,22,0,40,0,69,0,42,0,32,0\n10,0,83,0,86,0,99,0,50,0,78,0\n97,0,5,0,31,0,92,0,1,0,8,0\n43,0,11,0,24,0,70,0,76,0,9,0\n53,0,29,0,23,0,48,0,89,0,35,0\n20,0,6,0,14,0,28,0,84,0,68,0\n4,0,36,0,63,0,75,0,54,0,96,0\n94,0,66,0,95,0,93,0,13,0,30,0\n34,0,91,0,80,0,49,0,42,0,12,0\n37,0,98,0,61,0,78,0,82,0,2,0\n19,0,92,0,16,0,27,0,40,0,38,0\n46,0,21,0,3,0,51,0,47,0,70,0\n41,0,17,0,29,0,77,0,74,0,85,0\n99,0,7,0,43,0,68,0,73,0,69,0\n1,0,57,0,53,0,54,0,18,0,22,0\n25,0,97,0,64,0,87,0,11,0,20,0\n60,0,52,0,14,0,93,0,23,0,26,0\n28,0,5,0,58,0,48,0,75,0,86,0\n35,0,15,0,32,0,6,0,36,0,9,0\n90,0,89,0,4,0,72,0,76,0,8,0\n24,0,62,0,88,0,50,0,31,0,71,0\n83,0,55,0,13,0,96,0,56,0,33,0\n63,0,45,0,39,0,81,0,67,0,94,0\n44,0,65,0,84,0,10,0,59,0,79,0\n53,1,93,0,91,0,37,1,38,0,74,0\n49,1,54,0,27,0,17,0,61,0,14,0\n46,0,41,0,97,0,80,0,16,0,75,0\n23,0,22,0,82,0,8,0,51,0,6,0\n99,0,21,0,9,0,12,0,4,0,64,0\n90,0,36,0,78,0,95,0,52,0,28,0\n32,0,67,0,3,0,76,0,57,0,87,0\n24,0,33,0,34,0,81,0,48,0,68,0\n30,0,39,0,25,0,10,0,58,0,98,0\n62,0,86,0,40,0,55,0,85,0,7,0\n69,0,1,0,79,0,50,0,60,0,66,0\n2,0,19,0,44,0,35,0,13,0,47,0\n89,0,94,0,70,0,88,0,59,0,83,0\n11,0,26,0,18,0,84,0,45,0,71,0\n29,0,65,0,20,0,5,0,63,0,43,0\n96,0,42,0,77,0,31,0,73,0,72,0\n15,0,92,0,25,0,56,0,24,0,54,0\n48,0,76,0,40,0,21,0,80,0,82,0\n6,0,74,0,79,0,46,0,90,0,86,0\n34,0,38,0,85,0,28,0,1,0,44,0\n36,0,22,0,47,0,37,0,99,0,97,0\n8,0,98,0,64,0,41,0,55,0,94,0\n93,0,18,0,67,0,20,0,19,0,59,0\n70,0,29,0,32,0,78,0,14,0,91,0\n95,0,63,0,51,0,35,0,71,0,92,0\n49,0,13,0,9,0,50,0,16,0,84,0\n65,0,27,0,81,0,12,0,89,0,26,0\n11,0,75,0,42,0,66,0,52,0,15,0\n56,0,31,0,30,0,3,0,53,0,7,0\n96,0,17,0,68,0,58,0,23,0,88,0\n61,0,87,0,5,0,33,0,69,0,72,0\n77,0,43,0,45,0,60,0,2,0,10,0\n73,0,83,0,57,0,39,0,62,0,4,0\n40,0,98,0,59,0,97,0,29,0,49,0\n25,0,35,0,70,0,67,0,1,0,99,0\n71,0,47,0,82,0,79,0,75,0,20,0\n51,0,14,0,76,0,42,0,13,0,38,0\n46,0,95,0,56,0,44,0,23,0,27,0\n18,0,78,0,41,0,81,0,96,0,15,0\n48,0,31,0,55,0,6,0,11,0,10,0\n7,0,21,0,16,0,93,0,89,0,54,0\n73,0,52,0,84,0,5,0,32,0,80,0\n92,0,39,0,28,0,17,0,22,0,60,0\n2,0,12,0,66,0,53,0,87,0,86,0\n64,0,50,0,91,0,45,0,57,0,68,0\n61,0,77,0,19,0,30,0,36,0,62,0\n69,0,94,0,4,0,24,0,26,0,58,0\n74,0,83,0,72,0,34,0,63,0,9,0\n37,0,85,0,33,0,3,0,43,0,90,0\n88,0,8,0,52,0,65,0,67,0,40,0\n95,0,60,0,6,0,96,0,5,0,89,0\n56,0,80,0,93,0,11,0,1,0,47,0\n57,0,42,0,98,0,7,0,79,0,48,0\n86,0,17,0,18,0,30,0,16,0,76,0\n71,0,66,0,70,0,39,0,97,0,61,0\n69,0,9,0,55,0,92,0,14,0,44,0\n68,0,22,0,27,0,74,0,3,0,2,0\n82,0,33,0,4,0,65,0,31,0,46,0\n59,0,8,0,85,0,32,0,63,0,25,0\n99,0,15,0,94,0,20,0,77,0,49,0\n19,0,50,0,51,0,28,0,29,0,37,0\n75,0,83,0,91,0,87,0,23,0,21,0\n64,0,62,0,58,0,35,0,81,0,43,0\n54,0,78,0,72,0,38,0,84,0,88,0\n13,0,73,0,12,0,24,0,90,0,45,0\n26,0,53,0,10,0,41,0,34,0,36,0\n74,0,31,0,76,0,47,0,69,0,95,0\n49,0,82,0,30,0,60,0,85,0,57,0\n77,0,98,0,86,0,52,0,44,0,63,0\n27,0,79,0,5,0,70,0,37,0,18,0\n87,0,99,0,80,0,29,0,71,0,6,0\n92,0,96,0,84,0,3,0,64,0,93,0\n35,0,59,0,16,0,42,0,61,0,24,0\n13,0,43,0,34,0,25,0,88,0,4,0\n72,0,68,0,75,0,40,0,94,0,53,0\n10,0,54,0,23,0,62,0,9,0,28,0\n12,0,14,0,19,0,83,0,22,0,15,0\n58,0,33,0,50,0,21,0,73,0,2,0\n48,0,26,0,78,0,97,0,17,0,67,0\n38,0,89,0,36,0,46,0,39,0,55,0\n1,0,32,0,7,0,51,0,65,0,45,0\n90,0,20,0,66,0,91,0,41,0,56,0\n11,0,81,0,37,0,8,0,53,0,49,0\n"
  },
  {
    "path": "schedules/99_8.csv",
    "content": "82,0,39,0,32,0,1,0,30,0,36,0\n76,0,19,0,59,0,88,0,4,0,16,0\n49,0,6,0,71,0,35,0,58,0,15,0\n41,0,90,0,17,0,63,0,91,0,43,0\n26,0,3,0,52,0,74,0,23,0,56,0\n66,0,25,0,75,0,34,0,22,0,79,0\n37,0,42,0,98,0,12,0,95,0,62,0\n85,0,99,0,69,0,24,0,77,0,47,0\n2,0,81,0,93,0,28,0,33,0,83,0\n27,0,45,0,44,0,48,0,73,0,89,0\n67,0,84,0,96,0,80,0,72,0,10,0\n78,0,92,0,40,0,65,0,7,0,61,0\n68,0,86,0,11,0,97,0,53,0,38,0\n54,0,20,0,18,0,57,0,14,0,94,0\n51,0,64,0,8,0,13,0,60,0,29,0\n9,0,21,0,70,0,55,0,50,0,46,0\n5,0,31,0,36,0,87,0,25,0,59,0\n73,0,15,0,28,0,24,0,19,0,39,0\n82,0,95,0,17,0,99,0,48,0,52,0\n92,0,74,0,71,0,89,0,63,0,47,0\n56,0,65,0,42,0,16,0,79,0,77,0\n96,0,14,0,83,0,6,0,38,0,62,0\n26,0,7,0,84,0,45,0,37,0,49,0\n1,0,23,0,2,0,85,0,41,0,51,0\n53,0,94,0,32,0,13,0,91,0,67,0\n8,0,70,0,80,0,66,0,27,0,30,0\n55,0,97,0,35,0,3,0,31,0,90,0\n46,0,4,0,33,0,87,0,61,0,57,0\n68,0,72,0,98,0,88,0,21,0,5,0\n20,0,10,0,78,0,64,0,9,0,93,0\n12,0,86,0,34,0,40,0,81,0,60,0\n22,0,69,0,58,0,18,0,44,0,29,0\n76,0,50,0,11,0,43,0,54,0,75,0\n30,0,53,0,45,0,59,0,71,0,52,0\n19,0,94,0,80,0,83,0,48,0,41,0\n85,0,27,0,38,0,25,0,91,0,65,0\n16,0,92,0,87,0,26,0,68,0,73,0\n67,0,77,0,9,0,33,0,5,0,39,0\n24,0,21,0,49,0,86,0,42,0,61,0\n46,0,79,0,63,0,10,0,2,0,36,0\n81,0,70,0,11,0,7,0,95,0,18,0\n29,0,72,0,47,0,1,0,50,0,66,0\n57,0,76,0,60,0,89,0,6,0,90,0\n56,0,96,0,8,0,88,0,43,0,37,0\n13,0,98,0,93,0,31,0,69,0,34,0\n62,0,58,0,17,0,84,0,78,0,32,0\n74,0,64,0,22,0,82,0,97,0,15,0\n44,0,54,0,4,0,55,0,99,0,23,0\n28,0,51,0,14,0,35,0,75,0,12,0\n3,0,40,0,49,0,20,0,53,0,19,0\n5,0,24,0,76,0,65,0,29,0,30,0\n50,0,71,0,73,0,25,0,37,0,86,0\n68,0,56,0,91,0,83,0,89,0,18,0\n38,0,81,0,57,0,47,0,17,0,16,0\n26,0,39,0,31,0,2,0,78,0,8,0\n60,0,84,0,97,0,4,0,95,0,9,0\n46,0,34,0,14,0,64,0,90,0,11,0\n7,0,23,0,96,0,93,0,32,0,59,0\n82,0,44,0,43,0,33,0,20,0,21,0\n15,0,72,0,12,0,27,0,79,0,13,0\n80,0,87,0,6,0,22,0,63,0,51,0\n35,0,61,0,74,0,45,0,41,0,62,0\n99,0,94,0,42,0,58,0,70,0,1,0\n28,0,40,0,66,0,69,0,55,0,67,0\n75,0,10,0,88,0,77,0,52,0,92,0\n3,0,48,0,36,0,85,0,98,0,54,0\n89,0,19,0,29,0,21,0,96,0,34,0\n32,0,43,0,2,0,9,0,72,0,57,0\n97,0,20,0,50,0,17,0,26,0,79,0\n12,0,24,0,41,0,56,0,22,0,53,0\n83,0,63,0,25,0,23,0,70,0,15,0\n31,0,30,0,68,0,64,0,94,0,49,0\n27,0,1,0,62,0,71,0,81,0,87,0\n37,0,4,0,82,0,13,0,92,0,11,0\n18,0,84,0,61,0,5,0,48,0,75,0\n78,0,52,0,35,0,44,0,76,0,47,0\n6,0,42,0,91,0,36,0,40,0,8,0\n95,0,90,0,10,0,85,0,16,0,58,0\n55,0,39,0,86,0,80,0,93,0,65,0\n74,0,88,0,69,0,51,0,33,0,54,0\n3,0,59,0,73,0,67,0,99,0,14,0\n77,0,38,0,60,0,98,0,7,0,28,0\n46,0,92,0,56,0,45,0,66,0,31,0\n79,0,68,0,19,0,32,0,81,0,44,0\n23,0,64,0,21,0,47,0,27,0,36,0\n8,0,53,0,63,0,50,0,85,0,61,0\n16,0,5,0,35,0,11,0,93,0,94,0\n82,0,26,0,88,0,71,0,70,0,29,0\n62,0,69,0,48,0,2,0,86,0,76,0\n91,0,22,0,14,0,37,0,77,0,72,0\n83,0,39,0,45,0,90,0,40,0,75,0\n51,0,9,0,30,0,42,0,17,0,3,0\n60,0,46,0,59,0,80,0,54,0,58,0\n18,0,33,0,99,0,25,0,13,0,96,0\n87,0,41,0,89,0,15,0,66,0,65,0\n7,0,52,0,73,0,4,0,6,0,12,0\n55,0,20,0,98,0,84,0,24,0,74,0\n1,0,67,0,95,0,78,0,43,0,38,0\n10,0,57,0,34,0,49,0,28,0,97,0\n50,0,16,0,32,0,83,0,31,0,51,0\n85,0,86,0,22,0,35,0,46,0,17,0\n13,0,40,0,63,0,68,0,76,0,9,0\n94,0,3,0,44,0,72,0,8,0,71,0\n61,0,36,0,69,0,60,0,56,0,19,0\n55,0,87,0,47,0,88,0,79,0,14,0\n33,0,23,0,12,0,30,0,92,0,84,0\n65,0,97,0,67,0,21,0,45,0,81,0\n89,0,28,0,78,0,70,0,53,0,54,0\n43,0,48,0,24,0,26,0,64,0,58,0\n15,0,98,0,52,0,1,0,57,0,11,0\n66,0,20,0,91,0,95,0,96,0,73,0\n49,0,90,0,25,0,93,0,62,0,4,0\n42,0,2,0,80,0,38,0,82,0,75,0\n10,0,27,0,7,0,74,0,99,0,5,0\n18,0,41,0,34,0,59,0,39,0,37,0\n77,0,29,0,23,0,6,0,68,0,17,0\n48,0,70,0,40,0,97,0,56,0,87,0\n88,0,36,0,89,0,35,0,24,0,50,0\n11,0,26,0,44,0,96,0,63,0,60,0\n51,0,71,0,66,0,78,0,21,0,90,0\n94,0,79,0,9,0,98,0,61,0,82,0\n5,0,86,0,1,0,20,0,8,0,4,0\n64,0,67,0,83,0,85,0,42,0,76,0\n99,0,6,0,41,0,28,0,31,0,84,0\n57,0,29,0,75,0,27,0,95,0,55,0\n13,0,14,0,80,0,43,0,52,0,49,0\n45,0,77,0,93,0,19,0,12,0,18,0\n30,0,91,0,54,0,15,0,16,0,7,0\n47,0,33,0,59,0,22,0,10,0,62,0\n58,0,25,0,72,0,39,0,81,0,92,0\n2,0,73,0,65,0,34,0,53,0,74,0\n37,0,32,0,38,0,46,0,69,0,3,0\n"
  },
  {
    "path": "schedules/99_9.csv",
    "content": "68,0,74,0,80,0,56,0,95,0,44,0\n82,0,51,0,84,0,3,0,23,0,52,0\n99,0,73,0,46,0,61,0,48,0,17,0\n66,0,13,0,39,0,60,0,65,0,96,0\n77,0,9,0,86,0,62,0,58,0,29,0\n33,0,91,0,72,0,92,0,87,0,71,0\n21,0,85,0,76,0,19,0,16,0,4,0\n43,0,14,0,28,0,70,0,26,0,59,0\n38,0,88,0,32,0,67,0,25,0,54,0\n93,0,94,0,22,0,20,0,18,0,41,0\n7,0,57,0,2,0,89,0,34,0,42,0\n47,0,10,0,5,0,49,0,98,0,40,0\n45,0,78,0,11,0,30,0,27,0,6,0\n24,0,79,0,36,0,97,0,8,0,81,0\n12,0,31,0,53,0,35,0,37,0,50,0\n90,0,83,0,63,0,55,0,69,0,64,0\n75,0,1,0,51,0,15,0,99,0,91,0\n26,0,16,0,18,0,84,0,33,0,74,0\n43,0,77,0,61,0,39,0,4,0,2,0\n29,0,38,0,92,0,13,0,98,0,57,0\n93,0,85,0,7,0,67,0,45,0,47,0\n65,0,21,0,95,0,94,0,86,0,5,0\n23,0,78,0,31,0,56,0,17,0,9,0\n19,0,24,0,40,0,12,0,69,0,71,0\n1,0,41,0,70,0,25,0,35,0,81,0\n82,0,58,0,28,0,72,0,79,0,66,0\n88,0,22,0,83,0,68,0,59,0,10,0\n3,0,96,0,55,0,54,0,42,0,27,0\n76,0,89,0,30,0,60,0,8,0,44,0\n64,0,32,0,15,0,48,0,50,0,34,0\n52,0,6,0,87,0,49,0,90,0,36,0\n97,0,46,0,53,0,63,0,11,0,20,0\n37,0,80,0,75,0,73,0,14,0,62,0\n38,1,17,0,71,0,35,1,41,0,26,0\n33,1,2,0,99,0,83,0,23,0,25,0\n55,0,9,0,91,0,39,0,70,0,84,0\n67,0,8,0,92,0,77,0,74,0,69,0\n42,0,5,0,76,0,79,0,1,0,31,0\n54,0,43,0,98,0,78,0,93,0,24,0\n32,0,49,0,96,0,29,0,7,0,22,0\n64,0,66,0,56,0,89,0,20,0,6,0\n58,0,44,0,88,0,14,0,48,0,21,0\n94,0,10,0,16,0,73,0,13,0,87,0\n72,0,59,0,62,0,18,0,63,0,34,0\n47,0,50,0,36,0,3,0,30,0,19,0\n90,0,95,0,60,0,51,0,12,0,11,0\n97,0,40,0,37,0,61,0,15,0,86,0\n45,0,57,0,52,0,81,0,80,0,53,0\n65,0,68,0,27,0,4,0,28,0,46,0\n82,0,77,0,38,0,75,0,85,0,44,0\n91,0,8,0,16,0,17,0,25,0,93,0\n56,0,29,0,24,0,10,0,35,0,99,0\n33,0,6,0,5,0,76,0,43,0,73,0\n89,0,63,0,32,0,9,0,79,0,14,0\n64,0,51,0,47,0,94,0,78,0,96,0\n80,0,86,0,70,0,20,0,34,0,88,0\n57,0,62,0,95,0,61,0,66,0,22,0\n50,0,26,0,82,0,39,0,45,0,46,0\n83,0,65,0,92,0,48,0,81,0,7,0\n60,0,71,0,1,0,27,0,37,0,36,0\n41,0,74,0,15,0,54,0,85,0,72,0\n49,0,68,0,12,0,30,0,75,0,18,0\n42,0,19,0,58,0,53,0,90,0,23,0\n4,0,40,0,13,0,52,0,55,0,59,0\n98,0,28,0,67,0,84,0,97,0,21,0\n11,0,69,0,3,0,2,0,31,0,87,0\n96,0,43,0,35,0,91,0,88,0,62,0\n94,0,9,0,71,0,7,0,76,0,66,0\n8,0,39,0,56,0,27,0,86,0,72,0\n46,0,49,0,89,0,25,0,92,0,51,0\n36,0,85,0,26,0,10,0,42,0,20,0\n68,0,23,0,70,0,24,0,57,0,37,0\n4,0,73,0,30,0,53,0,34,0,74,0\n95,0,52,0,69,0,98,0,79,0,41,0\n99,0,97,0,45,0,58,0,32,0,5,0\n54,0,6,0,18,0,48,0,60,0,28,0\n90,0,13,0,81,0,2,0,44,0,47,0\n15,0,84,0,78,0,63,0,22,0,19,0\n64,0,12,0,3,0,65,0,38,0,93,0\n14,0,29,0,61,0,83,0,16,0,31,0\n80,0,59,0,1,0,33,0,82,0,67,0\n87,0,55,0,50,0,77,0,17,0,21,0\n75,0,11,0,34,0,40,0,41,0,58,0\n56,0,60,0,88,0,97,0,52,0,94,0\n73,0,25,0,20,0,57,0,72,0,90,0\n22,0,53,0,9,0,24,0,6,0,26,0\n54,0,62,0,8,0,51,0,71,0,5,0\n16,0,30,0,92,0,42,0,63,0,35,0\n12,0,4,0,48,0,67,0,91,0,89,0\n46,0,1,0,47,0,29,0,23,0,43,0\n49,0,99,0,81,0,50,0,69,0,59,0\n79,0,78,0,77,0,40,0,65,0,70,0\n10,0,39,0,37,0,76,0,74,0,3,0\n33,0,85,0,31,0,68,0,66,0,86,0\n96,0,84,0,87,0,38,0,45,0,14,0\n44,0,27,0,83,0,32,0,93,0,19,0\n17,0,28,0,95,0,75,0,7,0,64,0\n82,0,98,0,2,0,36,0,55,0,15,0\n61,0,11,0,18,0,13,0,80,0,21,0\n52,0,20,0,99,0,9,0,16,0,43,0\n76,0,69,0,58,0,57,0,26,0,47,0\n39,0,33,0,81,0,88,0,78,0,12,0\n59,0,51,0,65,0,87,0,29,0,42,0\n67,0,40,0,30,0,83,0,56,0,46,0\n5,0,72,0,37,0,22,0,17,0,89,0\n34,0,3,0,35,0,8,0,85,0,28,0\n86,0,19,0,14,0,11,0,54,0,1,0\n36,0,44,0,23,0,73,0,18,0,15,0\n79,0,61,0,93,0,90,0,71,0,75,0\n7,0,63,0,13,0,6,0,50,0,68,0\n31,0,27,0,38,0,70,0,21,0,49,0\n97,0,96,0,4,0,92,0,82,0,95,0\n10,0,32,0,84,0,2,0,80,0,41,0\n55,0,48,0,74,0,24,0,62,0,94,0\n98,0,25,0,53,0,64,0,60,0,77,0\n45,0,66,0,29,0,91,0,37,0,18,0\n87,0,86,0,79,0,57,0,83,0,35,0\n93,0,5,0,14,0,36,0,68,0,39,0\n69,0,51,0,34,0,9,0,33,0,27,0\n11,0,72,0,70,0,50,0,96,0,52,0\n6,0,59,0,61,0,32,0,12,0,47,0\n97,0,89,0,71,0,55,0,85,0,65,0\n22,0,42,0,64,0,99,0,67,0,13,0\n75,0,98,0,94,0,4,0,81,0,3,0\n48,0,41,0,8,0,49,0,19,0,82,0\n15,0,90,0,21,0,92,0,56,0,43,0\n45,0,62,0,25,0,28,0,40,0,76,0\n7,0,78,0,16,0,46,0,60,0,80,0\n74,0,20,0,2,0,1,0,58,0,38,0\n26,0,54,0,77,0,91,0,30,0,23,0\n66,0,17,0,84,0,10,0,44,0,53,0\n88,0,24,0,31,0,63,0,95,0,73,0\n18,0,57,0,67,0,14,0,71,0,3,0\n43,0,19,0,81,0,72,0,51,0,32,0\n36,0,65,0,56,0,76,0,34,0,61,0\n68,0,29,0,21,0,52,0,64,0,8,0\n13,0,74,0,35,0,46,0,9,0,75,0\n42,0,50,0,41,0,78,0,91,0,97,0\n10,0,90,0,33,0,70,0,54,0,89,0\n37,0,30,0,69,0,84,0,88,0,93,0\n62,0,47,0,79,0,11,0,38,0,99,0\n17,0,6,0,80,0,4,0,58,0,15,0\n48,0,63,0,23,0,98,0,85,0,96,0\n73,0,66,0,26,0,12,0,92,0,55,0\n83,0,94,0,95,0,77,0,45,0,1,0\n87,0,25,0,27,0,24,0,5,0,82,0\n44,0,20,0,59,0,39,0,7,0,31,0\n86,0,49,0,53,0,2,0,28,0,16,0\n60,0,40,0,35,0,22,0,38,0,33,0\n"
  },
  {
    "path": "schedules/9_1.csv",
    "content": "9,0,6,0,1,0,4,0,2,0,3,0\n8,0,5,0,2,1,7,0,1,1,9,1\n"
  },
  {
    "path": "schedules/9_10.csv",
    "content": "7,0,6,0,9,0,4,0,3,0,2,0\n5,0,7,0,8,0,6,0,9,0,1,0\n3,0,5,0,2,0,8,0,4,0,1,0\n4,0,6,0,5,0,7,0,1,0,3,0\n8,0,5,0,9,0,2,0,7,0,6,0\n1,0,4,0,2,0,9,0,8,0,3,0\n6,0,2,0,8,0,3,0,7,0,4,0\n1,0,5,0,3,0,9,0,2,0,7,0\n1,0,9,0,5,0,6,0,8,0,4,0\n9,0,7,0,4,0,3,0,8,0,5,0\n1,0,6,0,7,0,2,0,4,0,9,0\n2,0,3,0,8,0,5,0,1,0,6,0\n6,0,9,0,3,0,7,0,1,0,8,0\n4,0,3,0,6,0,5,0,2,0,9,0\n8,0,2,0,1,0,4,0,5,0,7,0\n"
  },
  {
    "path": "schedules/9_11.csv",
    "content": "1,0,3,0,2,0,8,0,6,0,7,0\n7,0,9,0,5,0,8,0,4,0,2,0\n4,0,9,0,5,0,6,0,3,0,1,0\n2,0,7,1,1,1,8,0,6,1,5,0\n9,0,8,0,3,0,6,0,5,0,4,0\n7,0,1,0,3,0,2,0,4,0,9,0\n3,0,4,0,8,0,2,0,1,0,5,0\n7,0,6,0,4,0,1,0,5,0,9,0\n7,0,8,0,2,0,9,0,3,0,6,0\n4,0,1,0,6,0,5,0,7,0,8,0\n8,0,2,0,9,0,3,0,7,0,4,0\n1,0,6,0,9,0,5,0,2,0,3,0\n6,0,9,0,2,0,1,0,4,0,8,0\n5,0,8,0,1,0,9,0,7,0,3,0\n3,0,5,0,4,0,6,0,2,0,7,0\n4,0,7,0,1,0,3,0,8,0,6,0\n5,0,2,0,6,0,9,0,1,0,7,0\n"
  },
  {
    "path": "schedules/9_12.csv",
    "content": "6,0,3,0,8,0,7,0,2,0,4,0\n4,0,9,0,5,0,1,0,6,0,7,0\n1,0,5,0,3,0,2,0,9,0,8,0\n7,0,1,0,4,0,2,0,6,0,5,0\n3,0,8,0,7,0,6,0,9,0,1,0\n3,0,2,0,9,0,5,0,8,0,4,0\n9,0,5,0,7,0,4,0,6,0,3,0\n2,0,1,0,5,0,8,0,9,0,6,0\n8,0,7,0,3,0,4,0,2,0,1,0\n6,0,1,0,9,0,3,0,4,0,2,0\n5,0,6,0,8,0,7,0,3,0,9,0\n2,0,5,0,7,0,4,0,8,0,1,0\n6,0,7,0,2,0,1,0,5,0,3,0\n9,0,3,0,4,0,8,0,7,0,1,0\n9,0,4,0,6,0,8,0,2,0,5,0\n9,0,8,0,2,0,7,0,4,0,6,0\n3,0,1,0,2,0,5,0,7,0,9,0\n1,0,4,0,8,0,5,0,3,0,6,0\n"
  },
  {
    "path": "schedules/9_13.csv",
    "content": "6,0,7,0,4,0,1,0,8,0,9,0\n1,0,9,0,5,0,2,0,3,0,4,0\n6,0,3,0,8,0,2,0,7,0,5,0\n8,1,5,1,4,0,1,1,2,0,7,0\n8,0,1,0,3,0,9,0,6,0,2,0\n5,0,7,0,3,0,9,0,4,0,6,0\n5,0,4,0,1,0,8,0,9,0,3,0\n6,0,2,0,5,0,7,0,1,0,9,0\n4,0,2,0,8,0,7,0,3,0,6,0\n7,0,1,0,8,0,3,0,5,0,2,0\n7,0,6,0,9,0,4,0,5,0,8,0\n4,0,9,0,3,0,1,0,6,0,2,0\n9,0,5,0,7,0,1,0,6,0,2,0\n4,0,8,0,6,0,3,0,1,0,5,0\n8,0,2,0,7,0,4,0,3,0,9,0\n8,0,2,0,9,0,1,0,7,0,4,0\n3,0,6,0,1,0,5,0,4,0,7,0\n2,0,9,0,3,0,5,0,8,0,6,0\n9,0,5,0,1,0,3,0,7,0,8,0\n2,0,4,0,1,0,6,0,8,0,5,0\n"
  },
  {
    "path": "schedules/9_14.csv",
    "content": "7,0,4,0,2,0,5,0,1,0,3,0\n9,0,6,0,7,0,8,0,5,0,2,0\n3,0,6,0,1,0,4,0,8,0,9,0\n5,0,9,0,2,0,7,0,4,0,3,0\n8,0,1,0,4,0,6,0,5,0,2,0\n9,0,3,0,1,0,8,0,6,0,7,0\n2,0,7,0,8,0,4,0,1,0,3,0\n9,0,5,0,7,0,6,0,4,0,8,0\n2,0,1,0,6,0,5,0,9,0,3,0\n6,0,9,0,4,0,1,0,7,0,2,0\n8,0,3,0,6,0,5,0,4,0,7,0\n9,0,8,0,1,0,2,0,3,0,5,0\n6,0,8,0,5,0,7,0,2,0,3,0\n4,0,3,0,5,0,1,0,9,0,8,0\n2,0,1,0,4,0,7,0,6,0,9,0\n7,0,9,0,4,0,1,0,8,0,5,0\n3,0,2,0,8,0,6,0,7,0,1,0\n2,0,3,0,9,0,4,0,5,0,6,0\n4,0,8,0,5,0,1,0,2,0,6,0\n3,0,7,0,8,0,9,0,2,0,4,0\n5,0,7,0,1,0,3,0,6,0,9,0\n"
  },
  {
    "path": "schedules/9_2.csv",
    "content": "4,0,3,0,2,0,6,0,7,0,5,0\n1,0,8,0,7,0,2,0,9,0,6,0\n9,0,1,0,3,0,5,0,4,0,8,0\n"
  },
  {
    "path": "schedules/9_3.csv",
    "content": "1,0,2,0,3,0,6,0,7,0,9,0\n8,0,6,0,4,0,5,0,9,0,1,0\n5,0,8,0,2,0,4,0,3,0,7,0\n7,0,1,0,8,0,3,0,5,0,6,0\n9,0,4,0,5,1,2,0,6,1,7,1\n"
  },
  {
    "path": "schedules/9_4.csv",
    "content": "9,0,6,0,2,0,8,0,1,0,7,0\n4,0,8,0,9,0,1,0,5,0,3,0\n6,0,7,0,3,0,2,0,5,0,4,0\n5,0,8,0,6,0,4,0,2,0,1,0\n9,0,3,0,1,0,7,0,4,0,6,0\n3,0,2,0,8,0,7,0,9,0,5,0\n"
  },
  {
    "path": "schedules/9_5.csv",
    "content": "5,0,3,0,4,0,6,0,9,0,1,0\n8,0,1,0,2,0,7,0,9,0,3,0\n8,0,6,0,5,0,4,0,7,0,2,0\n5,1,1,1,9,0,7,0,8,0,4,1\n6,0,2,0,7,0,3,0,1,0,5,0\n9,0,8,0,4,0,2,0,6,0,3,0\n1,0,4,0,6,0,2,0,5,0,9,0\n1,0,5,0,7,0,4,0,3,0,8,0\n"
  },
  {
    "path": "schedules/9_6.csv",
    "content": "3,0,9,0,5,0,8,0,7,0,2,0\n2,0,4,0,6,0,9,0,1,0,8,0\n5,0,3,0,7,0,4,0,1,0,6,0\n9,0,2,0,1,0,7,0,6,0,3,0\n8,0,5,0,1,0,4,0,3,0,9,0\n7,0,6,0,8,0,2,0,5,0,4,0\n1,0,4,0,7,0,5,0,9,0,2,0\n3,0,8,0,4,0,6,0,7,0,9,0\n6,0,8,0,5,0,1,0,2,0,3,0\n"
  },
  {
    "path": "schedules/9_7.csv",
    "content": "9,0,8,0,5,0,3,0,4,0,1,0\n6,0,1,0,3,0,7,0,2,0,4,0\n2,0,9,0,7,0,5,0,6,0,8,0\n3,1,9,1,4,0,2,1,5,0,7,0\n1,0,5,0,6,0,8,0,2,0,3,0\n4,0,8,0,1,0,9,0,7,0,6,0\n5,0,4,0,9,0,6,0,1,0,2,0\n3,0,7,0,5,0,8,0,6,0,4,0\n3,0,7,0,8,0,1,0,9,0,2,0\n2,0,3,0,5,0,7,0,1,0,9,0\n4,0,6,0,2,0,8,0,3,0,9,0\n"
  },
  {
    "path": "schedules/9_8.csv",
    "content": "6,0,7,0,2,0,8,0,9,0,1,0\n5,0,3,0,1,0,7,0,9,0,4,0\n5,0,2,0,8,0,6,0,4,0,3,0\n8,0,3,0,6,0,9,0,7,0,5,0\n2,0,1,0,7,0,5,0,4,0,8,0\n1,0,9,0,6,0,4,0,3,0,2,0\n9,0,2,0,4,0,7,0,6,0,5,0\n3,0,8,0,7,0,4,0,6,0,1,0\n3,0,5,0,9,0,2,0,1,0,8,0\n6,0,5,0,2,0,1,0,7,0,3,0\n4,0,8,0,7,0,9,0,2,0,3,0\n1,0,4,0,5,0,8,0,6,0,9,0\n"
  },
  {
    "path": "schedules/9_9.csv",
    "content": "4,0,1,0,5,0,8,0,7,0,2,0\n3,0,9,0,8,0,6,0,2,0,1,0\n4,0,3,0,9,0,6,0,7,0,5,0\n6,1,9,0,8,0,2,1,3,0,4,1\n1,0,6,0,2,0,7,0,4,0,5,0\n3,0,1,0,7,0,5,0,8,0,9,0\n7,0,4,0,6,0,1,0,8,0,3,0\n2,0,5,0,3,0,9,0,4,0,1,0\n7,0,5,0,8,0,9,0,6,0,2,0\n8,0,2,0,4,0,9,0,7,0,3,0\n1,0,5,0,9,0,6,0,8,0,4,0\n2,0,1,0,7,0,3,0,5,0,6,0\n2,0,9,0,7,0,4,0,6,0,1,0\n8,0,3,0,6,0,5,0,2,0,4,0\n"
  },
  {
    "path": "static/css/alliance_station_display.css",
    "content": "/*\n  Copyright 2014 Team 254. All Rights Reserved.\n  Author: nick@team254.com (Nick Eyre)\n*/\n\nhtml {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  overflow: hidden;\n}\nbody {\n  background-color: #000;\n  font-family: \"FuturaLTBold\";\n  color: #fff;\n}\nbody[data-mode=logo] {\n  background-color: #fff;\n}\nbody[data-mode=fieldReset] {\n  background-color: #0a3;\n}\nbody[data-mode=signalCount] {\n  background-color: #90c;\n}\n\n/* Switching Modes */\n.mode {\n  display: none;\n}\nbody[data-mode=logo] .mode#logo {\n  display: block;\n}\nbody[data-mode=match] .mode#match {\n  display: block;\n}\nbody[data-mode=fieldReset] .mode#fieldReset {\n  display: table;\n}\nbody[data-mode=signalCount] .mode#signalCount {\n  display: table;\n}\nbody[data-mode=timeout] .mode#match {\n  display: block;\n}\n\n/* Logo Mode */\n#logo #logoImg {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  height: 85%;\n  margin: auto auto;\n}\n\n/* Field Reset and Count Modes */\n#fieldReset, #signalCount {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n}\n#fieldReset div, #signalCount div {\n  display: table-cell;\n  vertical-align: middle;\n  text-align: center;\n  font-size: 350px;\n  line-height: 350px;\n}\n\n/* Match Mode */\n#match {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n}\n#match[data-state=WARMUP_PERIOD], #match[data-state=AUTO_PERIOD], #match[data-state=PAUSE_PERIOD],\n#match[data-state=TELEOP_PERIOD], #match[data-state=TIMEOUT_ACTIVE], #match[data-state=POST_TIMEOUT] {\n  background-color: #fff;\n  color: #000;\n}\n#preMatch, #inMatch {\n  display: none;\n}\n#match[data-state=PRE_MATCH] #preMatch, #match[data-state=POST_MATCH] #preMatch {\n  display: block;\n}\n#match[data-state=WARMUP_PERIOD] #inMatch, #match[data-state=AUTO_PERIOD] #inMatch,\n#match[data-state=PAUSE_PERIOD] #inMatch, #match[data-state=TELEOP_PERIOD] #inMatch,\n#match[data-state=TIMEOUT_ACTIVE] #inMatch, #match[data-state=POST_TIMEOUT] #inMatch {\n  display: block;\n}\n\n/* In Match */\n#inMatch .datapoint {\n  display: none;\n  position: absolute;\n  left: 0;\n  right: 0;\n  margin: auto;\n  margin-top: -250px;\n  height: 250px;\n  top: 50%;\n  font-size: 500px;\n  line-height: 500px;\n  text-align: center;\n}\nbody[data-position=left] #inMatch #redScore {\n  display: block;\n  color: #f43;\n}\nbody[data-position=middle] #inMatch #timeRemaining {\n  display: block;\n  font-size: 32vw;\n}\nbody[data-position=right] #inMatch #blueScore {\n  display: block;\n  color: #07f;\n}\n\n/* Pre Match */\n#preMatch #teamNumber {\n  position: absolute;\n  top: 100px;\n  left: 0;\n  right: 0;\n  margin: 0 auto;\n  font-size: 28vw;\n  line-height: 450px;\n  text-align: center;\n}\n#preMatch .databar {\n  position: absolute;\n  bottom: 100px;\n  left: 0;\n  right: 0;\n  margin: 0 auto;\n  height: 200px;\n  line-height: 200px;\n  text-align: center;\n  font-family: \"FuturaLT\";\n  font-size: 120px;\n  color: #fff;\n}\n#preMatch .databar#disabled {\n  font-family: \"FuturaLTBold\";\n  display: none;\n}\n#preMatch sub {\n  font-size: 50px;\n}\n#match[data-status=bypass] #disabled {\n  display: block;\n}\n#match[data-status=bypass] #teamName {\n  display: none;\n}\n[data-alliance-bg=R], [data-status=R] {\n  background-color: #d00;\n}\n[data-alliance-bg=B], [data-status=B] {\n  background-color: #00c;\n}\n#teamRank {\n  background-color: transparent;\n}\n#playoffAllianceInfo {\n  position: absolute;\n  bottom: 20px;\n  left: 0;\n  right: 0;\n  margin: 0 auto;\n  text-align: center;\n  font-family: \"FuturaLT\";\n  font-size: 50px;\n}"
  },
  {
    "path": "static/css/audience_display.css",
    "content": "/*\n  Copyright 2014 Team 254. All Rights Reserved.\n  Author: pat@patfairbank.com (Patrick Fairbank)\n*/\n\nhtml {\n  cursor: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  overflow: hidden;\n}\n#overlayCentering {\n  position: absolute;\n  bottom: -210px;\n  width: 100%;\n  height: 170px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n#matchOverlayContainer {\n  display: flex;\n}\n#matchOverlay {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid #222;\n  color: #222;\n  font-size: 22px;\n}\n#matchOverlayTop {\n  height: 100px;\n  display: flex;\n}\n.playoff-alliance {\n  position: relative;\n  top: 31px;\n  width: 40px;\n  height: 40px;\n  padding: 0 5px;\n  z-index: -1;\n  display: flex;\n  align-items: center;\n  background-color: #fc0;\n  color: #222;\n  border: 1px solid #222;\n  font-size: 15px;\n  font-weight: 200;\n}\n#leftPlayoffAlliance {\n  left: 23px;\n  justify-content: start;\n  border-top-left-radius: 50%;\n  border-bottom-left-radius: 50%;\n  border-right: none;\n}\n#rightPlayoffAlliance {\n  right: 23px;\n  justify-content: end;\n  border-top-right-radius: 50%;\n  border-bottom-right-radius: 50%;\n  border-left: none;\n}\n.teams {\n  width: 70px;\n  height: 100%;\n  display: none;\n  flex-direction: column;\n  justify-content: space-evenly;\n  align-items: center;\n  background-color: #fff;\n  font-family: \"FuturaLT\";\n  font-size: 20px;\n  line-height: 25px;\n}\n.teams div[data-yellow-card=true] {\n  width: 90%;\n  height: 32%;\n  border-radius: 0.2vw;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  background-color: #fc0;\n}\n#leftTeams {\n  border-right: 1px solid #222;\n}\n#rightTeams {\n  border-left: 1px solid #222;\n}\n.reversible-left[data-reversed=false], .reversible-right[data-reversed=true] {\n  background-color: #ff4444;\n}\n.reversible-left[data-reversed=true], .reversible-right[data-reversed=false] {\n  background-color: #2080ff;\n}\n.score {\n  width: 0;\n  height: 100%;\n  display: flex;\n  justify-content: flex-start;\n}\n.score-right {\n  justify-content: flex-end;\n}\n.avatars {\n  min-width: 50px;\n  height: 100%;\n  display: none;\n  flex-direction: column;\n  justify-content: space-evenly;\n  align-items: center;\n}\n.avatar {\n  height: 25px;\n}\n.score-number {\n  width: 130px;\n  height: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  font-family: \"FuturaLTBold\";\n  font-size: 55px;\n  color: #fff;\n  opacity: 0;\n}\n.score-right .score-fields {\n  align-items: flex-end;\n}\n.score-fields {\n  height: 100%;\n  width: 0;\n  display: none;\n  flex-direction: column;\n  justify-content: space-evenly;\n  opacity: 0;\n}\n.score-field {\n  display: flex;\n  flex-direction: row;\n}\n.coral-icon {\n  width: 35px;\n  margin: 0 12px;\n}\n.algae-icon {\n  width: 31px;\n  margin: 0 14px;\n}\n.score-field > div {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  width: 70px;\n  font-family: \"FuturaLTBold\";\n  font-size: 27px;\n  line-height: 27px;\n  color: #fff;\n}\n#matchCircle {\n  position: absolute;\n  top: -25px;\n  border-radius: 50%;\n  width: 150px;\n  height: 150px;\n  background-color: #fff;\n  border: 1px solid #222;\n}\n#logo {\n  position: relative;\n  top: 38px;\n  height: 70px;\n}\n#matchTime {\n  position: relative;\n  top: 17px;\n  height: 60px;\n  color: #222;\n  font-family: \"FuturaLTBold\";\n  font-size: 32px;\n  opacity: 0;\n}\n#eventMatchInfo {\n  height: 0;\n  display: none;\n  justify-content: space-between;\n  z-index: -1;\n  align-items: flex-end;\n  padding: 0 5px;\n  background-color: #444;\n  font-family: \"FuturaLT\";\n  font-size: 15px;\n  line-height: 30px;\n  color: #fff;\n}\n#playoffSeriesStatus {\n  width: 40px;\n  height: 18px;\n  display: none;\n  justify-content: center;\n  align-items: center;\n  background-color: #fc0;\n  color: #222;\n  border: 1px solid #222;\n  border-top: none;\n  border-bottom-left-radius: 3px;\n  border-bottom-right-radius: 3px;\n  font-size: 15px;\n  font-weight: 200;\n}\n#timeoutDetails {\n  position: absolute;\n  bottom: 95px;\n  width: 140px;\n  height: 50px;\n  z-index: -1;\n  padding: 0 20px;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: center;\n  background-color: #fff;\n  color: #222;\n  border: 1px solid #222;\n}\n#timeoutBreakDescription {\n  font-weight: bold;\n  font-size: 20px;\n  opacity: 0;\n}\n#timeoutNextMatch {\n  text-align: center;\n  font-weight: bold;\n  font-size: 14px;\n  opacity: 0;\n}\n#blindsContainer {\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n.blinds {\n  position: fixed;\n  top: 0;\n  background-size: 200%;\n  height: 100%;\n  width: 50%;\n  overflow: hidden;\n}\n.blinds.left {\n  background-position: left;\n  left: -50%;\n}\n.blinds.right {\n  background-position: right;\n  right: -50%;\n}\n.blinds.full {\n  width: 100%;\n  background-position: center;\n  background-size: 100%;\n}\n.blinds.background {\n  background-image: url(\"/static/img/endofmatch-bg.png\");\n}\n.blindsCenter {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  margin: auto auto;\n  border-radius: 50%;\n  width: 310px;\n  height: 310px;\n  background-color: #fff;\n  border: 1px solid #333;\n  box-shadow: 0 0 5px #666;\n  text-align: center;\n  backface-visibility: hidden;\n  -webkit-backface-visibility: hidden;\n  z-index: 2;\n}\n.blindsCenter.full {\n  left: 0;\n  right: 0;\n  transform: rotateY(-180deg);\n}\n.blinds.left .blindsCenter.blank {\n  right: -155px;\n}\n.blinds.full .blindsCenter.blank {\n  right: 0;\n  left: 0;\n}\n.blinds.right .blindsCenter.blank {\n  left: -155px;\n}\n#blindsLogo {\n  position: relative;\n  top: 55px;\n  height: 220px;\n}\n#finalScoreCentering {\n  position: fixed;\n  width: 100%;\n  height: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n#finalScore {\n  width: 1000px;\n  display: flex;\n  flex-direction: column;\n  border: 2px solid #333;\n  opacity: 0;\n}\n.final-score-row {\n  display: flex;\n  flex-direction: row;\n}\n.final-score {\n  width: 50%;\n  height: 200px;\n  line-height: 200px;\n  border-bottom: 2px solid #333;\n  color: #fff;\n  font-family: \"FuturaLTBold\";\n  font-size: 100px;\n  text-align: center;\n  text-shadow: 0 0 3px #333;\n}\n#leftFinalScore {\n  padding-right: 150px;\n}\n#rightFinalScore {\n  padding-left: 150px;\n}\n.final-breakdown {\n  height: 380px;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  background-color: #fff;\n  color: #222;\n  font-family: \"FuturaLT\";\n  font-size: 24px;\n}\n#leftFinalBreakdown {\n  width: 60px;\n  padding-right: 10px;\n  align-items: flex-end;\n}\n#rightFinalBreakdown {\n  width: 60px;\n  padding-left: 10px;\n  align-items: flex-start;\n}\n#centerFinalBreakdown {\n  width: 280px;\n  align-items: center;\n  text-align: center;\n  border-left: 2px solid #333;\n  border-right: 2px solid #333;\n}\n.final-breakdown-teams {\n  flex-grow: 1;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n.final-teams {\n  width: 250px;\n  padding: 20px;\n  border-radius: 20px;\n}\n.final-alliance {\n  margin-top: -10px;\n  margin-bottom: 10px;\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n  color: #fff;\n  font-size: 24px;\n}\n.final-team-row {\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n  align-items: center;\n}\n.final-team-avatar {\n  width: 35px;\n  height: 35px;\n  margin-right: 5px;\n}\n.final-team-number {\n  width: 85px;\n  color: #fff;\n  font-family: \"FuturaLT\";\n  font-size: 32px;\n  line-height: 43px;\n  text-align: center;\n}\n.final-team-card {\n  width: 20px;\n  margin-left: 5px;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n.final-team-card div {\n  display: none;\n}\n.final-team-card div[data-card=yellow], .final-team-card div[data-card=red] {\n  display: inline-block;\n  width: 15px;\n  height: 20px;\n  border-radius: 4px;\n  border: 1px solid #333;\n}\n.final-team-card div[data-card=yellow] {\n  background-color: #da1;\n}\n.final-team-card div[data-card=red] {\n  background-color: #e00;\n}\n.final-team-rank {\n  width: 50px;\n  display: flex;\n  flex-direction: row;\n  justify-content: flex-end;\n}\n.final-team-rank img {\n  width: 15px;\n  margin-right: 3px;\n}\n.final-team-rank div {\n  color: #fff;\n  font-size: 20px;\n}\n.final-destination {\n  margin-top: 10px;\n  width: 200px;\n  height: 45px;\n  border-radius: 5px;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  text-align: center;\n  background-color: #999;\n  font-size: 15px;\n  line-height: 18px;\n}\n.final-destination[data-won=true] {\n  background-color: #fc3;\n}\n#finalEventMatchInfo {\n  height: 60px;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0 25px;\n  font-family: \"FuturaLT\";\n  font-size: 28px;\n  background-color: #444;\n  color: #fff;\n}\n[data-checked=true] {\n  color: #0c0;\n}\n[data-checked=false] {\n  color: #e00;\n}\n.final-footer {\n  float: left;\n  width: 33.3%;\n  white-space: nowrap;\n}\n#finalMatchName {\n  text-align: right;\n}\n#bracket {\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  margin: auto auto;\n  z-index: 1;\n  opacity: 0;\n  text-align: center;\n}\n#bracketSvg {\n  width: 1920px;\n}\n#sponsor {\n  position: fixed;\n  width: 1000px;\n  height: 600px;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  margin: auto auto;\n  border: 2px solid #333;\n  z-index: 1;\n  opacity: 0;\n  background-color: #fff;\n  text-align: center;\n}\n#sponsor .carousel-inner, #sponsor .carousel-item {\n  height: 100%;\n}\n.sponsor-image-container {\n  width: 1000px;\n  height: 500px;\n  display: table-cell;\n  vertical-align: middle;\n}\n#sponsor h1, #sponsor h2 {\n  font-family: \"FuturaLTBold\";\n  margin: 0;\n}\n#sponsor h1 {\n  font-size: 60px;\n  background-color: #444;\n  color: #fff;\n  padding: 0.25em;\n  position: absolute;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  height: 96px;\n}\n#sponsor h2 {\n  font-size: 6em;\n  padding-top: 145px;\n  line-height: 110px;\n}\n#sponsor img {\n  max-width: 800px;\n  max-height: 400px;\n}\n#allianceRankingsCentering {\n  position: absolute;\n  height: 100%;\n  left: 3em;\n  top: 3em;\n}\n#allianceRankings {\n  max-width: 11em;\n  max-height: 92%;\n  display: flex;\n  flex-flow: column wrap;\n  overflow: hidden;\n  background-color: #fff;\n  border: 2px solid #222;\n  font-size: 2em;\n  font-family: \"FuturaLT\";\n}\n.unpicked {\n  width: 5.5em;\n  display: flex;\n  justify-content: start;\n}\n.unpicked-rank {\n  width: 1.8em;\n  text-align: right;\n  color: #999;\n}\n.unpicked-team {\n  margin-left: 0.3em;\n  color: #222;\n}\n#allianceSelectionCentering {\n  position: absolute;\n  height: 100%;\n  top: 3em;\n  right: 3em;\n}\n#allianceSelection {\n  display: table-cell;\n  vertical-align: middle;\n}\n#allianceSelectionTable {\n  background-color: #fff;\n  border: 2px solid #222;\n  text-align: center;\n  font-family: \"FuturaLT\";\n  font-size: 2.6em;\n}\n#allianceSelectionTable tr:nth-child(even) {\n  background-color: #ccc;\n}\n.alliance-cell {\n  padding: 0px 20px;\n  font-family: \"FuturaLT\";\n  color: #999;\n}\n.selection-cell {\n  width: 3.1em;\n  color: #222;\n}\n#lowerThird {\n  display: none;\n  position: absolute;\n  left: -1000px;\n  bottom: 100px;\n  background-color: #fff;\n  border: 1px solid #222;\n  color: #222;\n  font-size: 30px;\n  width: 800px;\n  height: 87px;\n}\n#lowerThirdLogo {\n  margin: 12px 20px;\n  height: 60px;\n  float: left;\n}\n#lowerThirdTop {\n  position: relative;\n  top: 10px;\n  display: none;\n  font-family: \"FuturaLTBold\";\n}\n#lowerThirdBottom {\n  display: none;\n  font-family: \"FuturaLT\";\n  font-size: 23px;\n  position: relative;\n  top: 5px;\n}\n#lowerThirdSingle {\n  display: none;\n  font-family: \"FuturaLTBold\";\n  line-height: 87px;\n}\n"
  },
  {
    "path": "static/css/bracket_display.css",
    "content": "/*\n  Copyright 2022 Team 254. All Rights Reserved.\n  Author: pat@patfairbank.com (Patrick Fairbank)\n*/\n\nhtml {\n  height: 100%;\n  cursor: default;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n}\nbody {\n  height: 100%;\n  background: -moz-linear-gradient(top, #003375 1%, #3C679D 100%); /* FF3.6+ */\n  background: -webkit-linear-gradient(top, #003375 1%, #3C679D 100%); /* Chrome10+,Safari5.1+ */\n  background-repeat: no-repeat;\n  font-family: \"FuturaLT\";\n}\n#column {\n  width: 80%;\n  height: 100%;\n  margin: 0 auto;\n}\n#titlebar {\n  padding: 40px 0px;\n  line-height: 50px;\n  font-size: 40px;\n  font-family: \"FuturaLTBold\";\n  color: #fff;\n  text-transform: uppercase;\n}\n#bracket {\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  margin: auto auto;\n  text-align: center;\n}\n"
  },
  {
    "path": "static/css/cheesy-arena.css",
    "content": "/*\n  Copyright 2014 Team 254. All Rights Reserved.\n  Author: pat@patfairbank.com (Patrick Fairbank)\n*/\n\n/* Bootstrap overrides. */\n.form-control[disabled] {\n  cursor: default;\n}\n.btn[disabled] {\n  color: #000;\n  opacity: 0.2;\n}\n\n/* New styles. */\n@font-face {\n  font-family: \"FuturaLTBold\";\n  src: url(\"fonts/futura-lt-bold.otf\") format(\"opentype\");\n}\n@font-face {\n  font-family: \"FuturaLT\";\n  src: url(\"fonts/futura-lt.otf\") format(\"opentype\");\n}\n.red-text {\n  color: #f00;\n}\n.blue-text {\n  color: #00f;\n}\n.bg-red {\n  background-color: #422 !important;\n}\n.bg-dark-red {\n  background-color: #311 !important;\n}\n.bg-blue {\n  background-color: #192945 !important;\n}\n.bg-dark-blue {\n  background-color: #113 !important;\n}\n.bg-yellow {\n  background-color: #442 !important;\n}\n.bg-green {\n  background-color: #132 !important;\n}\n.col-no-padding {\n  padding-left: 0;\n  padding-right: 0;\n}\n.modal-large {\n  width: 60%;\n}\n.team-number {\n  height: 27px;\n}\n.ds-status, .radio-status, .robot-status, .bypass-status {\n  background-color: #aaa;\n  color: #000;\n  border: 1px solid #999;\n  border-radius: 4px;\n  padding: 0px;\n  width: 60px;\n  height: 27px;\n  line-height: 25px;\n  font-size: 14px;\n  margin: 0 auto;\n}\n.bypass-status {\n  cursor: pointer;\n}\n[data-status-ok=\"true\"], [data-status-ternary=\"2\"] {\n  background-color: #0e8;\n}\n[data-status-ok=\"false\"], [data-status-ternary=\"0\"] {\n  background-color: #e66;\n}\n[data-status-ternary=\"1\"] {\n  background-color: #fc3;\n}\n[data-blink=\"true\"] {\n  background-color: #960;\n}\n.btn-match-play {\n  width: 170px;\n  height: 50px;\n  line-height: 36px;\n  font-size: 16px;\n}\n.btn-match-play-narrow {\n  width: 139px;\n}\n.badge-scoring {\n  background-color: #e66;\n}\n.badge-scoring[data-ready=true] {\n  background-color: #0c6;\n}\n.badge-scoring[data-present=false] {\n  background-color: #666;\n}\n.badge-status {\n  background-color: #e66;\n}\n.badge-status[data-status=BOOTING] {\n  background-color: #f92;\n}\n.badge-status[data-status=CONFIGURING], .badge-status[data-status=DISABLED] {\n  background-color: #08f;\n}\n.badge-status[data-status=ACTIVE] {\n  background-color: #0c6;\n}\n.badge-saved-match {\n  background-color: #666;\n}\n.nowrap {\n  white-space: nowrap;\n}\n.indentwrap p {\n  margin: 8px 0px;\n  padding-left: 20px;\n  text-indent: -20px;\n}\n.btn-logs {\n  width: 60px;\n}\n.btn-lower-third {\n  width: 80px;\n}\ninput[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button {\n  -webkit-appearance: none;\n  margin: 0;\n}\ntd[data-plc-value=\"false\"] {\n  color: #f00;\n}\ntd[data-plc-value=\"true\"] {\n  color: #090;\n}\n.btn-game-sound {\n  width: 190px;\n  text-align: left;\n}\n.btn-purple {\n  background-color: #90c;\n}\n.btn-purple:hover {\n  background-color: #80b;\n}\n.btn-purple[disabled] {\n  background-color: #639;\n}\ninput[data-changed=\"true\"], select[data-changed=\"true\"] {\n  border: 2px solid #f00;\n}\n.match-list {\n  height: 610px;\n  overflow-y: auto;\n}\n.match-list th {\n  position: sticky;\n  top: 0;\n}\n#testMatchSettings {\n  display: none;\n}\n\n/* Placeholder styles for input fields*/\n.col-lg-6 input::placeholder {\n    color: #ff0000; /* Red placeholder text */\n    font-style: italic;\n    opacity: 0.4;\n}\n\n.col-lg-2 input::placeholder {\n    color: #ff0000; /* Red placeholder text */\n    font-style: italic;\n    opacity: 0.4;\n}"
  },
  {
    "path": "static/css/field_monitor_display.css",
    "content": "﻿/*\n  Copyright 2018 Team 254. All Rights Reserved.\n  Author: pat@patfairbank.com (Patrick Fairbank)\n*/\n\nhtml {\n  height: 100%;\n  overflow: hidden;\n}\nbody {\n  height: 100%;\n  font-family: FuturaLTBold;\n  color: #fff;\n  background-color: #333;\n}\n.center {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n.position-row {\n  height: 29%;\n  border-bottom: #333 solid 10px;\n}\n.position-row[data-ds=\"true\"] {\n  height: 31%;\n}\n.position-row[data-ds=\"true\"][data-preMatch=\"false\"] {\n  display: none;\n}\n#matchStatusRow {\n  height: 6%;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  background-color: #333;\n  font-size: 1.5vw;\n  text-transform: uppercase;\n}\n#matchStatusRow[data-ds=\"true\"][data-preMatch=\"false\"] {\n  display: none;\n}\n#eventStatusRow {\n  height: 7%;\n  display: flex;\n  align-items: center;\n  justify-content: space-evenly;\n  background-color: #333;\n  font-size: 1.5vw;\n  text-transform: uppercase;\n}\n#eventStatusRow[data-ds=\"true\"] {\n  display: none;\n}\n#eventStatusRow[data-fta=\"false\"] {\n  display: none;\n}\n.left-position, .right-position {\n  width: 6%;\n  height: 100%;\n  font-size: 6vw;\n}\n.left-position[data-reversed=false], .right-position[data-reversed=true] {\n  background-color: #f44;\n}\n.left-position[data-reversed=true], .right-position[data-reversed=false] {\n  background-color: #2080ff;\n}\n.right-position[data-ds=\"true\"] {\n  display: none;\n}\n.team {\n  width: 44%;\n  height: 100%;\n  background-color: #333;\n  display: flex;\n  flex-direction: column;\n}\n.team-left {\n  border-right: #333 solid 5px;\n}\n.team-right {\n  border-left: #333 solid 5px;\n}\n.team-id {\n  width: 100%;\n  height: 70%;\n  font-size: 9vw;\n}\n.team-id[data-fta=\"true\"] {\n  height: 40%;\n  font-size: 6vw;\n}\n.team-id[data-status=no-link], .team-notes[data-status=no-link] {\n  background-color: #AAA;\n}\n.team-id[data-status=ds-linked], .team-notes[data-status=ds-linked] {\n  background-color: #EDAB33;\n}\n.team-id[data-status=robot-linked], .team-notes[data-status=robot-linked] {\n  background-color: #00ff00;\n  color: #333;\n}\n.team-id[data-status=rio-linked], .team-notes[data-status=rio-linked] {\n  background-color: #00cc00;\n}\n.team-id[data-status=radio-linked], .team-notes[data-status=radio-linked] {\n  background-color: #AA3377;\n}\n.team-id[data-status=wrong-station], .team-notes[data-status=wrong-station] {\n  background-color: #4477AA;\n}\n.team-box-row {\n  display: flex;\n  height: 30%;\n  width: 100%;\n}\n.team-box {\n  width: calc(100% / 6);\n  height: 100%;\n  font-size: 1.8vw;\n  background-color: #333;\n}\n.team-box[data-status-ok=\"true\"] {\n  background-color: #00ff00;\n  color: #333;\n}\n.team-box[data-status-ok=\"false\"] {\n  background-color: #f44;\n}\n.team-box i {\n  margin-right: 0.5vw;\n}\n.team-left[data-ds=\"true\"] {\n  width: 100%;\n}\n.team-notes[data-fta=\"true\"] {\n  height: 40%;\n  display: flex;\n  justify-content: space-between;\n  padding: 0.5vw;\n  font-size: 1vw;\n}\n.team-notes[data-fta=\"false\"] {\n  display: none;\n}\n.team-notes[data-ds=\"true\"] {\n  display: none;\n}\n.team-notes div {\n  width: 96%;\n  height: 96%;\n  white-space: pre;\n}\n.team-right[data-ds=\"true\"] {\n  display: none;\n}\n.team-stats {\n  display: flex;\n  flex-direction: column;\n  justify-content: space-around;\n  font-size: 1vw;\n  font-family: FuturaLT;\n}\n.team-stats-row {\n  display: flex;\n  flex-direction: row;\n  width: 100%;\n  justify-content: center;\n  align-items: center;\n}\n.team-stats-row span {\n  font-family: FuturaLTBold;\n}\ntextarea {\n  width: 96%;\n  height: 96%;\n  background-color: #ccc;\n  color: #000;\n}\n.left-score[data-fta=\"false\"], .right-score[data-fta=\"false\"] {\n  display: none;\n}\n.left-score[data-reversed=false], .right-score[data-reversed=true] {\n  color: #f44;\n}\n.left-score[data-reversed=true], .right-score[data-reversed=false] {\n  color: #2080ff;\n}\n\n"
  },
  {
    "path": "static/css/logo_display.css",
    "content": "/*\n  Copyright 2024 Team 254. All Rights Reserved.\n  Author: pat@patfairbank.com (Patrick Fairbank)\n*/\n\nhtml {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  overflow: hidden;\n  height: 100%;\n}\nbody {\n  width: 100%;\n  height: 100%;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  background-color: #000;\n  font-family: \"FuturaLTBold\";\n  color: #fff;\n}\n#logo #logoImg {\n  height: 35vw;\n}\n#message {\n  margin-top: 5vw;\n  font-size: 3.5vw;\n  line-height: 4.5vw;\n  text-align: center;\n}\n"
  },
  {
    "path": "static/css/placeholder_display.css",
    "content": "/*\n  Copyright 2018 Team 254. All Rights Reserved.\n  Author: pat@patfairbank.com (Patrick Fairbank)\n*/\n\nhtml {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  overflow: hidden;\n}\nbody {\n  background-color: #000;\n  color: #ff0;\n  text-align: center;\n  font-family: \"FuturaLTBold\";\n}\n#displayId {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  margin: auto auto;\n  height: 1px;\n  line-height: 1px;\n  font-size: 500px;\n}\n#displayNickname {\n  position: absolute;\n  bottom: 15%;\n  left: 0;\n  right: 0;\n  margin: auto auto;\n  height: 1px;\n  line-height: 1px;\n  font-size: 75px;\n}\n"
  },
  {
    "path": "static/css/queueing_display.css",
    "content": "/*\n  Copyright 2018 Team 254. All Rights Reserved.\n  Author: pat@patfairbank.com (Patrick Fairbank)\n*/\n\nhtml {\n  height: 100%;\n  cursor: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  overflow: hidden;\n}\nbody {\n  height: 100%;\n  background: -moz-linear-gradient(top, #003375 1%, #3C679D 100%); /* FF3.6+ */\n  background: -webkit-linear-gradient(top, #003375 1%, #3C679D 100%); /* Chrome10+,Safari5.1+ */\n  background-repeat: no-repeat;\n}\n#header {\n  padding: 10px 0px;\n  font-size: 40px;\n  font-family: \"FuturaLTBold\";\n  color: #fff;\n  text-transform: uppercase;\n}\n.card {\n  background-color: #ccc;\n  border: 1px solid #333;\n  padding: 10px;\n  margin-top: 0px;\n  margin-bottom: 15px;\n}\n#matchState, #matchTime {\n  font-size: 25px;\n  color: #666;\n}\n#matchTime {\n  font-weight: bold;\n}\n.red-teams, .blue-teams {\n  font-family: FuturaLTBold;\n  line-height: 48px;\n  font-size: 42px;\n}\n.red-teams {\n  color: #ff4444;\n}\n.blue-teams {\n  color: #2080ff;\n}\n.avatars {\n  line-height: 48px;\n}\n#earlyLateMessage {\n  position: absolute;\n  bottom: 40px;\n  font-size: 25px;\n  font-family: \"FuturaLTBold\";\n  color: #fff;\n  text-align: center;\n  text-transform: uppercase;\n}\n.alliance-container {\n  display: flex;\n  height: 144px;\n  justify-content: space-between;\n  align-items: center;\n}\n.alliance-tall {\n  height: 192px;\n}\n.alliance-number {\n  width: 40px;\n  height: 40px;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  background-color: #fc0;\n  color: #333;\n  border-radius: 50%;\n  border: 1px solid #333;\n  font-size: 25px;\n  font-weight: bold;\n}"
  },
  {
    "path": "static/css/rankings_display.css",
    "content": "/*\n  Copyright 2014 Team 254. All Rights Reserved.\n  Author: nick@team254.com (Nick Eyre)\n  Author: pat@patfairbank.com (Patrick Fairbank)\n*/\n\nhtml {\n  height: 100%;\n  cursor: default;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n}\nbody {\n  height: 100%;\n  background: -moz-linear-gradient(top, #003375 1%, #3C679D 100%); /* FF3.6+ */\n  background: -webkit-linear-gradient(top, #003375 1%, #3C679D 100%); /* Chrome10+,Safari5.1+ */\n  background-repeat: no-repeat;\n  font-family: \"FuturaLT\";\n}\n#column {\n  width: 80%;\n  height: 100%;\n  margin: 0 auto;\n}\n#titlebar {\n  padding: 20px 0px;\n  line-height: 50px;\n  font-size: 40px;\n  font-family: \"FuturaLTBold\";\n  color: #fff;\n  text-transform: uppercase;\n}\n#standings {\n  border-radius: 10px;\n  background-color: #fff;\n  padding: 10px;\n  height: 85%;\n}\n#header {\n  width: 100%;\n  text-align: center;\n  font-size: 15px;\n  font-weight: bold;\n  color: #000;\n  border-bottom: 1px solid #000;\n}\n#container {\n  height: 93%;\n  overflow-y: hidden;\n}\n#footer {\n  text-align: right;\n  font-size: 15px;\n  color: #000;\n  border-top: 1px solid #000;\n}\n.rankings-table {\n  table-layout: fixed;\n  text-align: center;\n  font-size: 17px;\n  color: #000;\n  border-bottom: 3px solid #666;\n  margin: 0;\n}\n.team-field {\n  width: 8%;\n}\n.team-nickname {\n  width: 20%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-align: left;\n}\n.rankings-table > tbody > tr > td {\n  padding-left: 0;\n  padding-right: 0;\n}\n#earlyLateMessage {\n  margin-top: 10px;\n  font-size: 25px;\n  font-family: \"FuturaLTBold\";\n  color: #fff;\n  text-align: center;\n  text-transform: uppercase;\n}\n"
  },
  {
    "path": "static/css/referee_panel.css",
    "content": "/*\n  Copyright 2023 Team 254. All Rights Reserved.\n  Author: pat@patfairbank.com (Patrick Fairbank)\n*/\nhtml {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  overscroll-behavior: none;\n}\nbody {\n  background-color: #222;\n  overscroll-behavior: none;\n}\nh3 {\n  color: #ccc;\n  font-size: 1.5vw;\n}\n.container {\n  padding-top: 1vw;\n  width: 100%;\n  max-width: none;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  color: #fff;\n}\n#matchName {\n  font-size: 2vw;\n}\n#refereePanel {\n  width: 98%;\n  display: flex;\n  flex-direction: row;\n}\n#cards {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n#cards[data-hr=\"false\"] {\n  display: none;\n}\n.alliance-cards {\n  padding: 0.5vw 1vw;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  border: 1px solid #666;\n  border-radius: 1vw;\n}\n#redCards {\n  margin-bottom: 1vw;\n  background-color: #322;\n}\n#blueCards {\n  background-color: #223;\n}\n.team-card {\n  margin: 0.5vw 0;\n  width: 10vw;\n  height: 3.5vw;\n  font-size: 2.5vw;\n  background-color: #444;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  border-radius: 0.2vw;\n}\n.team-card[data-card=\"yellow\"] {\n  background-color: #c90;\n}\n.team-card[data-card=\"red\"] {\n  background-color: #900;\n}\n.team-card[data-old-yellow-card=\"true\"] {\n  border: 0.3vw solid #ff0;\n}\n#scoringStatuses {\n  margin-top: 0.5vw;\n}\n.scoring-status {\n  margin-top: 0.5vw;\n  width: 8vw;\n  padding: 0.2vw 0.5vw;\n  border-radius: 0.5vw;\n  background-color: #e66;\n  font-size: 0.8vw;\n  color: #000;\n}\n.scoring-status[data-ready=true] {\n  background-color: #0c6;\n}\n.scoring-status[data-present=false] {\n  background-color: #666;\n}\n#fouls {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  flex-grow: 1;\n}\n#foulButtons {\n  display: flex;\n  flex-direction: row;\n}\n.foul-button {\n  width: 16vw;\n  height: 6vw;\n  font-size: 3vw;\n  font-weight: bold;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  margin: 0 1vw;\n  border-radius: 1vw;\n}\n.red-foul {\n  background-color: #933;\n}\n.blue-foul {\n  background-color: #26c;\n}\n#foulList {\n  margin: 1vw 0;\n}\n.foul {\n  margin-top: 1vw;\n  height: 4vw;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: center;\n  font-size: 1.8vw;\n  border-radius: 0.5vw;\n}\n.foul > * {\n  margin: 0 1vw;\n}\n.type-button {\n  width: 9vw;\n  height: 3vw;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  background-color: rgba(255, 255, 255, 0.1);\n  border-radius: 0.2vw;\n}\n.team-buttons {\n  display: flex;\n  flex-direction: row;\n}\n.team-button {\n  width: 6vw;\n  height: 3vw;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  border-radius: 0.2vw;\n}\n.team-button[data-selected=\"true\"] {\n  border: solid 0.2vw #fff;\n}\n.rule-select {\n  width: 25vw;\n  height: 3vw;\n  background-color: rgba(0, 0, 0, 0.1);\n  border: 0;\n  border-radius: 0.2vw;\n}\n.rule-select option {\n  background-color: #222;\n  color: #fff;\n}\n.delete-button {\n  width: 6vw;\n  height: 3vw;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  background-color: #444;\n  border-radius: 0.2vw;\n}\n#controlButtons {\n  width: 100%;\n  margin: 1vw 0;\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n}\n#controlButtons[data-hr=\"false\"] {\n  display: none;\n}\n.control-button {\n  width: 20vw;\n  height: 4vw;\n  font-size: 2.2vw;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  margin: 0 1vw;\n  border-radius: 0.2vw;\n  opacity: 0.3;\n}\n.control-button[data-enabled=true] {\n  opacity: 1;\n}\n#volunteerButton {\n  background-color: #90c;\n}\n#resetButton {\n  background-color: #093;\n}\n#commitButton {\n  background-color: #26c;\n}\n\n#scoreSummary {\n  width: 100%;\n  display: flex;\n  gap: 2vw;\n  padding: 1vw 7vw;\n  justify-content: space-evenly;\n  text-align: center;\n}\n#scoreSummary[data-hr=\"false\"] {\n  display: none;\n}\n\n#scoreSummary > div {\n  display: grid;\n  grid-template-columns: repeat(4, 1fr);\n}\n\n#scoreSummary .placeholder {\n  visibility: hidden;\n}\n\n#scoreSummary .wide-row {\n  grid-column: span 3;\n}\n\n#scoreSummary .label {\n  text-align: right;\n  padding: 0 0.2vw;\n}"
  },
  {
    "path": "static/css/scoring_panel.css",
    "content": "/*\n  Copyright 2019 Team 254. All Rights Reserved.\n  Author: pat@patfairbank.com (Patrick Fairbank)\n  Author: ian@yann.io (Ian Thompson)\n\n  Styles for the scoring interface\n*/\n\n/* Color scheme definitions */\n\n:root {\n  /* Evergreen baseline color scheme */\n  --red-100: #fee7e7;\n  --red-200: #fcb1b2;\n  --red-300: #fa7375;\n  --red-400: #ed1c24;\n  --red-500: #ac1117;\n  --red-600: #6f070b;\n  --red-700: #370203;\n\n  --blue-100: #ebf1ff;\n  --blue-200: #c1d6ff;\n  --blue-300: #7aafff;\n  --blue-400: #008bf0;\n  --blue-500: #0066b3;\n  --blue-600: #00447a;\n  --blue-700: #002445;\n\n  --green-100: #cafec5;\n  --green-200: #8cd27c;\n  --green-300: #42c425;\n  --green-400: #32991b;\n  --green-500: #227111;\n  --green-600: #144b08;\n  --green-700: #072802;\n\n  --purple-100: #f8eef7;\n  --purple-200: #e6c3e4;\n  --purple-300: #d391cf;\n  --purple-400: #b366af;\n  --purple-500: #834980;\n  --purple-600: #452e54;\n  --purple-700: #2d152c;\n\n  --gray-100: #f0f1f1;\n  --gray-200: #d4d5d7;\n  --gray-300: #abaeb2;\n  --gray-400: #85888d;\n  --gray-500: #626468;\n  --gray-600: #414245;\n  --gray-700: #222325;\n}\n\n:root {\n  /* Evergreen semantic color scheme */\n  --red-action: var(--red-400);\n  --red-highlight: var(--red-500);\n  --red-inactive: var(--red-200);\n  --red-banner: var(--red-300);\n  --red-overlay-background: var(--red-600);\n  --red-background: var(--red-700);\n\n  --blue-action: var(--blue-400);\n  --blue-highlight: var(--blue-500);\n  --blue-inactive: var(--blue-200);\n  --blue-banner: var(--blue-300);\n  --blue-overlay-background: var(--blue-600);\n  --blue-background: var(--blue-700);\n\n  --green-action: var(--green-400);\n  --green-highlight: var(--green-500);\n  --green-inactive: var(--green-200);\n\n  --auto-action: #fbde0d;\n  --auto-inactive: #fff088;\n\n  --neutral-action: var(--gray-600);\n  --neutral-highlight: var(--gray-700);\n  --neutral-inactive: var(--gray-400);\n\n  --text-active: #fff;\n  --text-active-dark: #000;\n  --text-inactive: var(--gray-100);\n  --text-inactive-dark: var(--gray-300);\n  --interaction-highlight: #abaeb21a;\n}\n\n:root {\n  /* Game-specific color scheme */\n  --coral: var(--gray-100);\n  --coral-auto: var(--auto-action);\n  --reef-pole: var(--purple-400);\n}\n\n/* Specialize color scheme for the current alliance */\n:root [data-alliance=\"red\"] {\n  --alliance-action: var(--red-action);\n  --alliance-highlight: var(--red-highlight);\n  --alliance-inactive: var(--red-inactive);\n  --alliance-banner: var(--red-banner);\n  --alliance-overlay-background: var(--red-overlay-background);\n  --alliance-background: var(--red-background);\n\n  --opponent-action: var(--blue-action);\n  --opponent-highlight: var(--blue-highlight);\n  --opponent-inactive: var(--blue-inactive);\n  --opponent-banner: var(--blue-banner);\n  --opponent-overlay-background: var(--blue-overlay-background);\n  --opponent-background: var(--blue-background);\n}\n\n:root [data-alliance=\"blue\"] {\n  --alliance-action: var(--blue-action);\n  --alliance-highlight: var(--blue-highlight);\n  --alliance-inactive: var(--blue-inactive);\n  --alliance-banner: var(--blue-banner);\n  --alliance-overlay-background: var(--blue-overlay-background);\n  --alliance-background: var(--blue-background);\n\n  --opponent-action: var(--red-action);\n  --opponent-highlight: var(--red-highlight);\n  --opponent-inactive: var(--red-inactive);\n  --opponent-banner: var(--red-banner);\n  --opponent-overlay-background: var(--red-overlay-background);\n  --opponent-background: var(--red-background);\n}\n\n/* Layout Parameters */\n:root {\n  --banner-title-angle: 30deg;\n  --button-border-radius: 8px;\n}\n\nbutton {\n  padding: 0;\n  border: none;\n}\n\nbutton:hover:enabled {\n  cursor: auto;\n}\n\nbutton:enabled:not(:active) {\n  box-shadow: black 0px 4px 4px;\n}\n\nhtml {\n  height: 100%;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n  overscroll-behavior: none;\n}\n\nbody {\n  height: 100%;\n  touch-action: manipulation;\n}\n\n.container {\n  padding: 0;\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  display: flex;\n  flex-direction: column;\n  justify-content: flex-start;\n  align-items: center;\n  background-color: var(--alliance-background);\n  font-family: Helvetica, Arial, sans-serif;\n  line-height: 1.2;\n  text-align: center;\n}\n\nheader {\n  width: 100%;\n  color: var(--text-active-dark);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  font-weight: bold;\n  font-size: 18pt;\n}\n\nheader:has(.banner-title) {\n  background-color: var(--alliance-banner);\n}\n\n.banner-title,\n.banner-placeholder {\n  flex: 1 1 0%;\n}\n\n.screen-title {\n  contain: layout;\n  background-color: #000;\n  width: fit-content;\n  color: var(--text-active);\n  white-space: nowrap;\n  font-weight: normal;\n  z-index: 0;\n  padding: 0 0.5em;\n}\n\n.screen-title::before,\n.screen-title::after {\n  content: '';\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  background-color: black;\n  z-index: -1;\n}\n\n.screen-title::before {\n  left: 0;\n  transform: skewX(var(--banner-title-angle));\n  transform-origin: left bottom;\n}\n\n.screen-title::after {\n  right: 0;\n  transform: skewX(calc(var(--banner-title-angle) * -1));\n  transform-origin: right bottom;\n}\n\nmain {\n  width: 100%;\n  flex: 1;\n  padding-bottom: 10px;\n  display: flex;\n  flex-direction: column;\n}\n\n#top-controls {\n  height: 90px;\n  padding: 10px 0;\n  display: flex;\n  justify-content: space-between;\n}\n\n#auto-controls,\n#endgame-controls {\n  height: 100%;\n  flex: 3 3 0%;\n  padding: 0em 1em;\n  display: flex;\n  justify-content: space-evenly;\n  gap: 1em;\n}\n\n#bottom-controls {\n  padding: 10px 1em;\n  display: flex;\n  justify-content: space-around;\n}\n\n#l1-total {\n  margin-top: 10px;\n  color: var(--text-active);\n  font-size: 18pt;\n  font-weight: bold;\n}\n\n#commit {\n  flex: 1 1 0%;\n  height: 100%;\n  border-radius: var(--button-border-radius);\n  color: var(--text-active);\n  background-color: var(--green-action);\n  font-size: 18pt;\n  font-weight: bold;\n  padding: 0.2em;\n}\n\n#commit:disabled {\n  visibility: hidden;\n}\n\n.team-button {\n  border-radius: var(--button-border-radius);\n  color: var(--text-active);\n  overflow: clip;\n  flex: 1 1 0%;\n  height: 100%;\n  font-size: 16pt;\n\n  --button-top-color: var(--alliance-action);\n  --button-bottom-default-color: var(--neutral-action);\n  --button-bottom-selected-color: var(--alliance-highlight);\n}\n\n.team-button:disabled {\n  --button-top-color: var(--alliance-inactive);\n  --button-bottom-default-color: var(--neutral-inactive);\n  --button-bottom-selected-color: var(--alliance-highlight);\n}\n\n.team-button .team-num {\n  height: 50%;\n  align-content: center;\n  padding: 0 0.2em;\n  background-color: var(--button-top-color);\n}\n\n.team-button .team-text {\n  height: 50%;\n  align-content: center;\n  padding: 0 0.2em;\n  background-color: var(--button-bottom-default-color);\n}\n\n.team-button[data-selected=\"true\"] .team-text {\n  background-color: var(--button-bottom-selected-color);\n}\n\n.reef-image {\n  --l4-coral-display: none;\n  --l4-coral-auto-display: none;\n  --l3-coral-display: none;\n  --l3-coral-auto-display: none;\n  --l2-coral-display: none;\n  --l2-coral-auto-display: none;\n}\n\n[data-l4-scored=\"true\"] .reef-image {\n  --l4-coral-display: auto;\n}\n\n[data-l4-auto-scored=\"true\"] .reef-image {\n  --l4-coral-auto-display: auto;\n}\n\n[data-l3-scored=\"true\"] .reef-image {\n  --l3-coral-display: auto;\n}\n\n[data-l3-auto-scored=\"true\"] .reef-image {\n  --l3-coral-auto-display: auto;\n}\n\n[data-l2-scored=\"true\"] .reef-image {\n  --l2-coral-display: auto;\n}\n\n[data-l2-auto-scored=\"true\"] .reef-image {\n  --l2-coral-auto-display: auto;\n}\n\n#reef-controls {\n  flex: 1 1 0%;\n  contain: layout;\n  display: flex;\n  justify-content: space-evenly;\n  align-items: center;\n  gap: 10px;\n}\n\n#reef-controls-warning {\n  position: absolute;\n  height: 100%;\n  opacity: 0;\n  transition: opacity 0.2s ease-in-out;\n}\n\n[data-scoring-auto=\"true\"][data-in-teleop=\"true\"] #reef-controls-warning {\n  opacity: 1;\n  transition: opacity 0.2s ease-in-out;\n}\n\n.reef-column {\n  height: 100%;\n  flex-grow: 1;\n  max-width: 200px;\n  container-type: size;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n}\n\n.reef-column-contents {\n  contain: layout;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: 10px;\n}\n\n@container (aspect-ratio < 0.25) {\n  .reef-column-contents {\n    aspect-ratio: 1 / 4;\n  }\n}\n\n@container (aspect-ratio >=0.25) {\n  .reef-column-contents {\n    height: 100%;\n  }\n}\n\n.reef-column .reef-image {\n  position: absolute;\n  height: 100%;\n}\n\n.reef-column:nth-of-type(-n + 3) .reef-image {\n  transform: scale(-1, 1);\n}\n\n.reef-column button {\n  width: 100%;\n  flex: 1 1 0%;\n  z-index: 1;\n  background: none;\n}\n\n.reef-column button:enabled {\n  background-color: var(--interaction-highlight);\n}\n\n#edit-auto {\n  flex: 1 1 0%;\n  border-radius: var(--button-border-radius);\n  color: var(--text-active-dark);\n  height: 100%;\n  background-color: var(--auto-action);\n  font-size: 18pt;\n  font-weight: bold;\n  padding: 0.2em;\n}\n\n#edit-auto:disabled {\n  visibility: hidden;\n}\n\n[data-scoring-auto=\"true\"] #edit-auto {\n  background-color: var(--green-action);\n  color: var(--text-active);\n}\n\n.counter-wrapper {\n  flex: 3 3 0%;\n  display: flex;\n  justify-content: center;\n}\n\n.counter {\n  height: 90px;\n  max-width: 400px;\n  width: 100%;\n  margin: 0 10px;\n  border-radius: var(--button-border-radius);\n  overflow: clip;\n  display: flex;\n}\n\n.counter:has(button:enabled) {\n  color: var(--text-active-dark);\n  box-shadow: black 0px 4px 4px;\n}\n\n.counter:not(:has(button:enabled)) {\n  color: var(--text-inactive-dark);\n}\n\n.counter button {\n  flex: 1 1 0%;\n  color: var(--text-active);\n  background-color: var(--alliance-action);\n  font-size: 24pt;\n  font-weight: bold;\n  display: grid;\n  place-items: center;\n  z-index: 1;\n  padding: 0.2em;\n}\n\n.counter button:enabled:not(:active) {\n  box-shadow: black 0px 0px 4px;\n}\n\n.counter button:disabled {\n  background-color: var(--alliance-inactive);\n  color: var(--text-inactive);\n}\n\n.counter-status {\n  flex: 2 2 0%;\n  background-color: #fff;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n}\n\n.counter-label {\n  font-size: 12pt;\n  padding: 0 0.2em 5px 0.2em;\n}\n\n.counter-value {\n  font-weight: bold;\n}\n\n.counter-main-value {\n  font-size: 28pt;\n  transition: font-size 0.2s ease-in-out;\n}\n\n.counter-main-clone {\n  font-size: 0;\n  transition: font-size 0.2s ease-in-out;\n}\n\n.counter-auto-value {\n  font-size: 12pt;\n  transition: font-size 0.2s ease-in-out;\n  font-weight: bold;\n}\n\n.counter-auto-row {\n  background-color: var(--auto-inactive);\n  color: var(--text-inactive-dark);\n  height: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  gap: 0.1em;\n  font-size: 12pt;\n  transition: font-size 0.2s ease-in-out;\n}\n\n[data-scoring-auto=\"true\"] .counter-auto-row,\n[data-scoring-auto=\"true\"] .counter-status:has(.counter-auto-row) .counter-main-value {\n  font-size: 0pt;\n}\n[data-scoring-auto=\"true\"] .counter-auto-value {\n  font-size: 28pt;\n}\n[data-scoring-auto=\"true\"] .counter-main-clone {\n  font-size: 12pt;\n}\n\n.counter:has(button:enabled) .counter-auto-row {\n  background-color: var(--auto-action);\n  color: var(--text-active-dark);\n  box-shadow: black 0px 0px 2px;\n}\n\n#fouls-button {\n  flex: 0.5 0.5 0%;\n  border-radius: var(--button-border-radius);\n  color: var(--text-active-dark);\n  height: 100%;\n  background-color: var(--auto-action);\n  font-size: 18pt;\n  font-weight: bold;\n  padding: 0.2em;\n}\n\n#fouls-button:disabled {\n  color: var(--text-inactive-dark);\n  background-color: var(--auto-inactive);\n}\n\ndialog {\n  padding: 0;\n  border: none;\n  border-radius: 16px;\n  overflow: clip;\n  font-size: 18pt;\n  font-weight: bold;\n  background-color: var(--alliance-overlay-background);\n}\n\n.dialog-container {\n  max-width: 700px;\n  width: 80vw;\n  padding-bottom: 20px;\n  display: flex;\n  flex-direction: column;\n}\n\ndialog::backdrop {\n  background-color: rgba(0, 0, 0, 0.75);\n  -webkit-backdrop-filter: blur(2px);\n  backdrop-filter: blur(2px);\n}\n\n.dialog-banner {\n  padding: 5px;\n  font-size: 24pt;\n  font-weight: bold;\n  background-color: var(--alliance-banner);\n  color: var(--text-active-dark);\n}\n\n#endgame-scoring {\n  padding: 20px;\n  display: flex;\n  gap: 20px;\n}\n\n.endgame-input {\n  flex: 1 1 0%;\n  padding: 10px;\n  background-color: var(--alliance-action);\n  border-radius: 8px;\n  display: flex;\n  flex-direction: column;\n  gap: 16px;\n}\n\n#endgame-dialog button {\n  cursor: auto;\n  height: 68px;\n  border: none;\n  outline: none;\n  border-radius: var(--button-border-radius);\n  background-color: var(--neutral-action);\n  color: var(--text-active);\n  box-shadow: none;\n}\n\n#endgame-dialog button:enabled:not([data-selected=\"true\"]) {\n  box-shadow: black 0px 4px 4px;\n}\n\n#endgame-dialog button[data-selected=\"true\"] {\n  background-color: var(--alliance-highlight);\n}\n\n.dialog-close {\n  padding: 20px;\n  width: 29%;\n  align-self: center;\n  border: none;\n  outline: none;\n  border-radius: var(--button-border-radius);\n  background-color: var(--neutral-action);\n  color: var(--text-active);\n}\n\n#fouls-dialog button {\n  cursor: auto;\n  height: 68px;\n  border-radius: var(--button-border-radius);\n}\n\n#foul-container {\n  display: grid;\n  grid-template-columns: repeat(2, 1fr);\n  align-self: center;\n  gap: 20px;\n  padding: 20px;\n}\n\n#foul-container .foul-button {\n  height: 120px;\n  width: 300px;\n}\n\n.foul-button.red {\n  background-color: var(--red-action);\n}\n.foul-button.blue {\n  background-color: var(--blue-action);\n}\n\n.foul-button-label {\n  font-size: 24pt;\n  font-weight: bold;\n}"
  },
  {
    "path": "static/css/twitch_display.css",
    "content": "/*\n  Copyright 2018 Team 254. All Rights Reserved.\n  Author: pat@patfairbank.com (Patrick Fairbank)\n*/\n\nhtml {\n  overflow: hidden;\n}\nbody {\n  margin: 0;\n  background-color: #000;\n}\n"
  },
  {
    "path": "static/css/wall_display.css",
    "content": "/*\n  Copyright 2023 Team 254. All Rights Reserved.\n  Author: pat@patfairbank.com (Patrick Fairbank)\n*/\n\nhtml {\n  cursor: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  overflow: hidden;\n}\n#overlayCentering {\n  position: absolute;\n  top: -200px;\n  width: 100%;\n  height: 170px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n#matchOverlayContainer {\n  display: flex;\n}\n#matchOverlay {\n  display: flex;\n  flex-direction: column;\n  border: 1px solid #222;\n  color: #222;\n  font-size: 22px;\n}\n#matchOverlayTop {\n  height: 100px;\n  display: flex;\n}\n.playoff-alliance {\n  position: relative;\n  top: 31px;\n  width: 40px;\n  height: 40px;\n  padding: 0 5px;\n  z-index: -1;\n  display: flex;\n  align-items: center;\n  background-color: #fc0;\n  color: #222;\n  border: 1px solid #222;\n  font-size: 15px;\n  font-weight: 200;\n}\n#leftPlayoffAlliance {\n  left: 23px;\n  justify-content: start;\n  border-top-left-radius: 50%;\n  border-bottom-left-radius: 50%;\n  border-right: none;\n}\n#rightPlayoffAlliance {\n  right: 23px;\n  justify-content: end;\n  border-top-right-radius: 50%;\n  border-bottom-right-radius: 50%;\n  border-left: none;\n}\n.teams {\n  width: 70px;\n  height: 100%;\n  display: none;\n  flex-direction: column;\n  justify-content: space-evenly;\n  align-items: center;\n  background-color: #fff;\n  font-family: \"FuturaLT\";\n  font-size: 20px;\n  line-height: 25px;\n}\n.teams div[data-yellow-card=true] {\n  width: 90%;\n  height: 32%;\n  border-radius: 0.2vw;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  background-color: #fc0;\n}\n#leftTeams {\n  border-right: 1px solid #222;\n}\n#rightTeams {\n  border-left: 1px solid #222;\n}\n.reversible-left[data-reversed=false], .reversible-right[data-reversed=true] {\n  background-color: #ff4444;\n}\n.reversible-left[data-reversed=true], .reversible-right[data-reversed=false] {\n  background-color: #2080ff;\n}\n.score {\n  width: 0;\n  height: 100%;\n  display: flex;\n  justify-content: flex-start;\n}\n.score-right {\n  justify-content: flex-end;\n}\n.avatars {\n  min-width: 50px;\n  height: 100%;\n  display: none;\n  flex-direction: column;\n  justify-content: space-evenly;\n  align-items: center;\n}\n.avatar {\n  height: 25px;\n}\n.score-number {\n  width: 130px;\n  height: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  font-family: \"FuturaLTBold\";\n  font-size: 55px;\n  color: #fff;\n  opacity: 0;\n}\n.score-fields {\n  height: 100%;\n  width: 0;\n  display: none;\n  flex-direction: row;\n  justify-content: space-evenly;\n  opacity: 0;\n}\n#matchOverlayAux {\n  display: flex;\n  flex-direction: row;\n  position: absolute;\n  bottom: 175px;\n}\n.score-aux {\n  width: 200px;\n  height: 100px;\n  display: flex;\n  flex-direction: column;\n  justify-content: space-evenly;\n  align-items: flex-start;\n  border-radius: 10px;\n  opacity: 0;\n}\n#leftScoreAux {\n  margin-right: 5px;\n  padding-right: 35px;\n}\n#rightScoreAux {\n  padding-left: 35px;\n  align-items: flex-end;\n}\n.score-field {\n  display: flex;\n  flex-direction: row;\n}\n.coral-icon {\n  width: 35px;\n  margin: 0 25px;\n}\n.algae-icon {\n  width: 31px;\n  margin: 0 27px;\n}\n.score-field > div {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  width: 80px;\n  font-family: \"FuturaLTBold\";\n  font-size: 27px;\n  line-height: 27px;\n  color: #fff;\n}\n#matchCircle {\n  position: absolute;\n  top: -25px;\n  border-radius: 50%;\n  width: 150px;\n  height: 150px;\n  background-color: #fff;\n  border: 1px solid #222;\n}\n#logo {\n  position: relative;\n  top: 38px;\n  height: 70px;\n}\n#matchTime {\n  position: relative;\n  top: 17px;\n  height: 60px;\n  color: #222;\n  font-family: \"FuturaLTBold\";\n  font-size: 32px;\n  opacity: 0;\n}\n#eventMatchInfo {\n  height: 0;\n  display: none;\n  justify-content: space-between;\n  z-index: -1;\n  align-items: flex-end;\n  padding: 0 5px;\n  background-color: #444;\n  font-family: \"FuturaLT\";\n  font-size: 15px;\n  line-height: 30px;\n  color: #fff;\n}\n#playoffSeriesStatus {\n  width: 40px;\n  height: 18px;\n  display: none;\n  justify-content: center;\n  align-items: center;\n  background-color: #fc0;\n  color: #222;\n  border: 1px solid #222;\n  border-top: none;\n  border-bottom-left-radius: 3px;\n  border-bottom-right-radius: 3px;\n  font-size: 15px;\n  font-weight: 200;\n}\n#timeoutDetails {\n  position: absolute;\n  bottom: 95px;\n  width: 140px;\n  height: 50px;\n  z-index: -1;\n  padding: 0 20px;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: center;\n  background-color: #fff;\n  color: #222;\n  border: 1px solid #222;\n}\n#timeoutBreakDescription {\n  font-weight: bold;\n  font-size: 20px;\n  opacity: 0;\n}\n#timeoutNextMatch {\n  text-align: center;\n  font-weight: bold;\n  font-size: 14px;\n  opacity: 0;\n}\n#message {\n  position: absolute;\n  display: none;\n  opacity: 0;\n  top: 130px;\n  font-size: 1.4vw;\n  font-family: \"FuturaLTBold\";\n  color: #fff;\n}\n"
  },
  {
    "path": "static/css/webpage_display.css",
    "content": "/*\n  Copyright 2024 Team 254. All Rights Reserved.\n  Author: pat@patfairbank.com (Patrick Fairbank)\n*/\n\nhtml {\n  overflow: hidden;\n}\nbody {\n  margin: 0;\n  background-color: #000;\n}\n#webpageFrame {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: none;\n}\n"
  },
  {
    "path": "static/js/alliance_selection.js",
    "content": "// Copyright 2024 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side logic for the alliance selection page.\n\nvar websocket;\n\n// Sends a websocket message to set the timer to the given time limit.\nconst setTimer = function (timeLimitInput) {\n  document.getElementById(\"timeLimitSecInput\").value = timeLimitInput.value;\n  websocket.send(\"setTimer\", parseInt(timeLimitInput.value));\n}\n\n// Sends a websocket message to start and show the timer.\nconst startTimer = function () {\n  websocket.send(\"startTimer\");\n};\n\n// Sends a websocket message to hide the timer.\nconst hideTimer = function() {\n  websocket.send(\"hideTimer\");\n}\n\n// Sends a websocket message to stop the timer.\nconst stopTimer = function () {\n  websocket.send(\"stopTimer\");\n}\n\n// Sends a websocket message to restart the timer. \nconst restartTimer = function () {\n  websocket.send(\"restartTimer\");\n};\n\n// Handles a websocket message to update the alliance selection status.\nconst handleAllianceSelection = function (data) {\n  $(\"#timer\").text(getCountdownString(data.TimeRemainingSec));\n};\n\n// Handles a websocket message to update the audience display screen selector.\nconst handleAudienceDisplayMode = function (data) {\n  $(\"input[name=audienceDisplay]:checked\").prop(\"checked\", false);\n  $(\"input[name=audienceDisplay][value=\" + data + \"]\").prop(\"checked\", true);\n};\n\n// Sends a websocket message to change what the audience display is showing.\nconst setAudienceDisplay = function () {\n  websocket.send(\"setAudienceDisplay\", $(\"input[name=audienceDisplay]:checked\").val());\n};\n\n$(function () {\n  // Activate playoff tournament datetime picker.\n  const startTime = moment(new Date()).hour(13).minute(0).second(0);\n  newDateTimePicker(\"startTimePicker\", startTime.toDate());\n\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/alliance_selection/websocket\", {\n    allianceSelection: function (event) {\n      handleAllianceSelection(event.data);\n    },\n    audienceDisplayMode: function (event) {\n      handleAudienceDisplayMode(event.data);\n    },\n  });\n});\n"
  },
  {
    "path": "static/js/alliance_station_display.js",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side methods for the alliance station display.\n\nvar station = \"\";\nvar blinkInterval;\nvar currentScreen = \"blank\";\nvar websocket;\n\n// Handles a websocket message to change which screen is displayed.\nvar handleAllianceStationDisplayMode = function (targetScreen) {\n  currentScreen = targetScreen;\n  if (station === \"\") {\n    // Don't do anything if this screen hasn't been assigned a position yet.\n  } else {\n    var body = $(\"body\");\n    body.attr(\"data-mode\", targetScreen);\n    if (targetScreen === \"timeout\") {\n      body.attr(\"data-position\", \"middle\");\n    } else {\n      switch (station[1]) {\n        case \"1\":\n          body.attr(\"data-position\", \"right\");\n          break;\n        case \"2\":\n          body.attr(\"data-position\", \"middle\");\n          break;\n        case \"3\":\n          body.attr(\"data-position\", \"left\");\n          break;\n      }\n    }\n  }\n};\n\n// Handles a websocket message to update the team to display.\nvar handleMatchLoad = function (data) {\n  if (station !== \"\") {\n    var team = data.Teams[station];\n    if (team) {\n      $(\"#teamNumber\").text(team.Id);\n      $(\"#teamNameText\").attr(\"data-alliance-bg\", station[0]).text(team.Nickname);\n\n      var ranking = data.Rankings[team.Id];\n      if (ranking && data.Match.Type === matchTypeQualification) {\n        $(\"#teamRank\").attr(\"data-alliance-bg\", station[0]).text(ranking);\n      } else {\n        $(\"#teamRank\").attr(\"data-alliance-bg\", station[0]).text(\"\");\n      }\n    } else {\n      $(\"#teamNumber\").text(\"\");\n      $(\"#teamNameText\").attr(\"data-alliance-bg\", station[0]).text(\"\");\n      $(\"#teamRank\").attr(\"data-alliance-bg\", station[0]).text(\"\");\n    }\n\n    // Populate extra alliance info if this is a playoff match.\n    let playoffAlliance = data.Match.PlayoffRedAlliance;\n    let offFieldTeams = data.RedOffFieldTeams;\n    if (station[0] === \"B\") {\n      playoffAlliance = data.Match.PlayoffBlueAlliance;\n      offFieldTeams = data.BlueOffFieldTeams;\n    }\n    if (playoffAlliance > 0) {\n      let playoffAllianceInfo = `Alliance ${playoffAlliance}`;\n      if (offFieldTeams.length) {\n        playoffAllianceInfo += `&emsp; Not on field: ${offFieldTeams.map(team => team.Id).join(\", \")}`;\n      }\n      $(\"#playoffAllianceInfo\").html(playoffAllianceInfo);\n    } else {\n      $(\"#playoffAllianceInfo\").text(\"\");\n    }\n  }\n};\n\n// Handles a websocket message to update the team connection status.\nvar handleArenaStatus = function (data) {\n  stationStatus = data.AllianceStations[station];\n  var blink = false;\n  if (stationStatus && stationStatus.Bypass) {\n    $(\"#match\").attr(\"data-status\", \"bypass\");\n  } else if (stationStatus) {\n    if (!stationStatus.DsConn || !stationStatus.DsConn.DsLinked) {\n      $(\"#match\").attr(\"data-status\", station[0]);\n    } else if (!stationStatus.DsConn.RobotLinked) {\n      blink = true;\n      if (!blinkInterval) {\n        blinkInterval = setInterval(function () {\n          var status = $(\"#match\").attr(\"data-status\");\n          $(\"#match\").attr(\"data-status\", (status === \"\") ? station[0] : \"\");\n        }, 250);\n      }\n    } else {\n      $(\"#match\").attr(\"data-status\", \"\");\n    }\n  }\n\n  if (!blink && blinkInterval) {\n    clearInterval(blinkInterval);\n    blinkInterval = null;\n  }\n};\n\n// Handles a websocket message to update the match time countdown.\nvar handleMatchTime = function (data) {\n  translateMatchTime(data, function (matchState, matchStateText, countdownSec) {\n    if (station[0] === \"N\") {\n      // Pin the state for a non-alliance display to an in-match state, so as to always show time or score.\n      matchState = \"TELEOP_PERIOD\";\n    }\n    var countdownString = String(countdownSec % 60);\n    if (countdownString.length === 1) {\n      countdownString = \"0\" + countdownString;\n    }\n    countdownString = Math.floor(countdownSec / 60) + \":\" + countdownString;\n    $(\"#timeRemaining\").text(countdownString);\n    $(\"#match\").attr(\"data-state\", matchState);\n  });\n};\n\n// Handles a websocket message to update the match score.\nvar handleRealtimeScore = function (data) {\n  $(\"#redScore\").text(\n    data.Red.ScoreSummary.Score - data.Red.ScoreSummary.BargePoints\n  );\n  $(\"#blueScore\").text(\n    data.Blue.ScoreSummary.Score - data.Blue.ScoreSummary.BargePoints\n  );\n};\n\n$(function () {\n  // Read the configuration for this display from the URL query string.\n  var urlParams = new URLSearchParams(window.location.search);\n  station = urlParams.get(\"station\");\n\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/displays/alliance_station/websocket\", {\n    allianceStationDisplayMode: function (event) {\n      handleAllianceStationDisplayMode(event.data);\n    },\n    arenaStatus: function (event) {\n      handleArenaStatus(event.data);\n    },\n    matchLoad: function (event) {\n      handleMatchLoad(event.data);\n    },\n    matchTime: function (event) {\n      handleMatchTime(event.data);\n    },\n    matchTiming: function (event) {\n      handleMatchTiming(event.data);\n    },\n    realtimeScore: function (event) {\n      handleRealtimeScore(event.data);\n    }\n  });\n});\n"
  },
  {
    "path": "static/js/announcer_display.js",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side logic for the announcer display.\n\nvar websocket;\nlet isFirstScorePosted = true;\n\n// Handles a websocket message to hide the score dialog once the next match is being introduced.\nvar handleAudienceDisplayMode = function (targetScreen) {\n  // Hide the final results so that they aren't blocking the current teams when the announcer needs them most.\n  if (targetScreen === \"intro\" || targetScreen === \"match\") {\n    $(\"#matchResult\").modal(\"hide\");\n  }\n};\n\n// Handles a websocket message to update the event status message.\nconst handleEventStatus = function (data) {\n  if (data.CycleTime === \"\") {\n    $(\"#cycleTimeMessage\").text(\"Last cycle time: Unknown\");\n  } else {\n    $(\"#cycleTimeMessage\").text(\"Last cycle time: \" + data.CycleTime);\n  }\n  $(\"#earlyLateMessage\").text(data.EarlyLateMessage);\n};\n\n// Handles a websocket message to update the teams for the current match.\nvar handleMatchLoad = function (data) {\n  $(\"#matchName\").text(data.Match.LongName);\n\n  const teams = $(\"#teams\");\n  teams.empty();\n\n  fetch(\"/displays/announcer/match_load\")\n    .then(response => response.text())\n    .then(html => teams.html(html));\n};\n\n// Handles a websocket message to update the match time countdown.\nvar handleMatchTime = function (data) {\n  translateMatchTime(data, function (matchState, matchStateText, countdownSec) {\n    $(\"#matchState\").text(matchStateText);\n    $(\"#matchTime\").text(getCountdown(data.MatchState, data.MatchTimeSec));\n  });\n};\n\n// Handles a websocket message to update the match score.\nvar handleRealtimeScore = function (data) {\n  $(\"#redScore\").text(data.Red.ScoreSummary.Score - data.Red.ScoreSummary.BargePoints);\n  $(\"#blueScore\").text(data.Blue.ScoreSummary.Score - data.Blue.ScoreSummary.BargePoints);\n};\n\n// Handles a websocket message to populate the final score data.\nvar handleScorePosted = function (data) {\n  if (isFirstScorePosted) {\n    // Don't show the final score dialog when the page is first loaded.\n    isFirstScorePosted = false;\n    return;\n  }\n\n  const matchResult = document.getElementById(\"matchResult\");\n  fetch(\"/displays/announcer/score_posted\")\n    .then(response => response.text())\n    .then(html => {\n      matchResult.innerHTML = html;\n      const modal = new bootstrap.Modal(matchResult);\n      modal.show();\n\n      // Activate tooltips above the foul listings.\n      const tooltipTriggerList = document.querySelectorAll(\"[data-bs-toggle=tooltip]\");\n      const tooltipList = [...tooltipTriggerList].map(element => new bootstrap.Tooltip(element));\n    });\n};\n\n$(function () {\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/displays/announcer/websocket\", {\n    audienceDisplayMode: function (event) {\n      handleAudienceDisplayMode(event.data);\n    },\n    eventStatus: function (event) {\n      handleEventStatus(event.data);\n    },\n    matchLoad: function (event) {\n      handleMatchLoad(event.data);\n    },\n    matchTime: function (event) {\n      handleMatchTime(event.data);\n    },\n    matchTiming: function (event) {\n      handleMatchTiming(event.data);\n    },\n    realtimeScore: function (event) {\n      handleRealtimeScore(event.data);\n    },\n    scorePosted: function (event) {\n      handleScorePosted(event.data);\n    }\n  });\n\n  // Make the score blink.\n  setInterval(function () {\n    var blinkOn = $(\"#savedMatchResult\").attr(\"data-blink\") === \"true\";\n    $(\"#savedMatchResult\").attr(\"data-blink\", !blinkOn);\n  }, 500);\n});\n"
  },
  {
    "path": "static/js/audience_display.js",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n// Author: nick@team254.com (Nick Eyre)\n//\n// Client-side methods for the audience display.\n\nvar websocket;\nlet transitionMap;\nconst transitionQueue = [];\nlet transitionInProgress = false;\nlet currentScreen = \"blank\";\nlet redSide;\nlet blueSide;\nlet currentMatch;\nlet overlayCenteringHideParams;\nlet overlayCenteringShowParams;\nconst allianceSelectionTemplate = Handlebars.compile($(\"#allianceSelectionTemplate\").html());\nconst sponsorImageTemplate = Handlebars.compile($(\"#sponsorImageTemplate\").html());\nconst sponsorTextTemplate = Handlebars.compile($(\"#sponsorTextTemplate\").html());\n\n// Constants for overlay positioning. The CSS is the source of truth for the values that represent initial state.\nconst overlayCenteringTopUp = \"-130px\";\nconst overlayCenteringBottomHideParams = {queue: false, bottom: $(\"#overlayCentering\").css(\"bottom\")};\nconst overlayCenteringBottomShowParams = {queue: false, bottom: \"0px\"};\nconst overlayCenteringTopHideParams = {queue: false, top: overlayCenteringTopUp};\nconst overlayCenteringTopShowParams = {queue: false, top: \"50px\"};\nconst eventMatchInfoDown = \"30px\";\nconst eventMatchInfoUp = $(\"#eventMatchInfo\").css(\"height\");\nconst logoUp = \"20px\";\nconst logoDown = $(\"#logo\").css(\"top\");\nconst scoreIn = $(\".score\").css(\"width\");\nconst scoreMid = \"185px\";\nconst scoreOut = \"370px\";\nconst scoreFieldsOut = \"150px\";\nconst scoreLogoTop = \"-530px\";\nconst bracketLogoTop = \"-780px\";\nconst bracketLogoScale = 0.75;\nconst timeoutDetailsIn = $(\"#timeoutDetails\").css(\"width\");\nconst timeoutDetailsOut = \"570px\";\n\n// Handles a websocket message to change which screen is displayed.\nconst handleAudienceDisplayMode = function (targetScreen) {\n  transitionQueue.push(targetScreen);\n  executeTransitionQueue();\n};\n\n// Sequentially executes all transitions in the queue. Returns without doing anything if another invocation is already\n// in progress.\nconst executeTransitionQueue = function () {\n  if (transitionInProgress) {\n    // There is an existing invocation of this method which will execute all transitions in the queue.\n    return;\n  }\n\n  if (transitionQueue.length > 0) {\n    transitionInProgress = true;\n    const targetScreen = transitionQueue.shift();\n    const callback = function () {\n      // When the current transition is complete, call this method again to invoke the next one in the queue.\n      currentScreen = targetScreen;\n      transitionInProgress = false;\n      setTimeout(executeTransitionQueue, 100);  // A small delay is needed to avoid visual glitches.\n    };\n\n    if (targetScreen === currentScreen) {\n      callback();\n      return;\n    }\n\n    if (targetScreen === \"sponsor\") {\n      initializeSponsorDisplay();\n    }\n\n    let transitions = transitionMap[currentScreen][targetScreen];\n    if (transitions !== undefined) {\n      transitions(callback);\n    } else {\n      // There is no direct transition defined; need to go to the blank screen first.\n      transitionMap[currentScreen][\"blank\"](function () {\n        transitionMap[\"blank\"][targetScreen](callback);\n      });\n    }\n  }\n};\n\n// Handles a websocket message to update the teams for the current match.\nconst handleMatchLoad = function (data) {\n  currentMatch = data.Match;\n  $(`#${redSide}Team1`).text(currentMatch.Red1);\n  $(`#${redSide}Team1`).attr(\"data-yellow-card\", data.Teams[\"R1\"]?.YellowCard);\n  $(`#${redSide}Team2`).text(currentMatch.Red2);\n  $(`#${redSide}Team2`).attr(\"data-yellow-card\", data.Teams[\"R2\"]?.YellowCard);\n  $(`#${redSide}Team3`).text(currentMatch.Red3);\n  $(`#${redSide}Team3`).attr(\"data-yellow-card\", data.Teams[\"R3\"]?.YellowCard);\n  $(`#${redSide}Team1Avatar`).attr(\"src\", getAvatarUrl(currentMatch.Red1));\n  $(`#${redSide}Team2Avatar`).attr(\"src\", getAvatarUrl(currentMatch.Red2));\n  $(`#${redSide}Team3Avatar`).attr(\"src\", getAvatarUrl(currentMatch.Red3));\n  $(`#${blueSide}Team1`).text(currentMatch.Blue1);\n  $(`#${blueSide}Team1`).attr(\"data-yellow-card\", data.Teams[\"B1\"]?.YellowCard);\n  $(`#${blueSide}Team2`).text(currentMatch.Blue2);\n  $(`#${blueSide}Team2`).attr(\"data-yellow-card\", data.Teams[\"B2\"]?.YellowCard);\n  $(`#${blueSide}Team3`).text(currentMatch.Blue3);\n  $(`#${blueSide}Team3`).attr(\"data-yellow-card\", data.Teams[\"B3\"]?.YellowCard);\n  $(`#${blueSide}Team1Avatar`).attr(\"src\", getAvatarUrl(currentMatch.Blue1));\n  $(`#${blueSide}Team2Avatar`).attr(\"src\", getAvatarUrl(currentMatch.Blue2));\n  $(`#${blueSide}Team3Avatar`).attr(\"src\", getAvatarUrl(currentMatch.Blue3));\n\n  // Show alliance numbers if this is a playoff match.\n  if (currentMatch.Type === matchTypePlayoff) {\n    $(`#${redSide}PlayoffAlliance`).text(currentMatch.PlayoffRedAlliance);\n    $(`#${blueSide}PlayoffAlliance`).text(currentMatch.PlayoffBlueAlliance);\n    $(\".playoff-alliance\").show();\n\n    // Show the series status if this playoff round isn't just a single match.\n    if (data.Matchup.NumWinsToAdvance > 1) {\n      $(`#${redSide}PlayoffAllianceWins`).text(data.Matchup.RedAllianceWins);\n      $(`#${blueSide}PlayoffAllianceWins`).text(data.Matchup.BlueAllianceWins);\n      $(\"#playoffSeriesStatus\").css(\"display\", \"flex\");\n    } else {\n      $(\"#playoffSeriesStatus\").hide();\n    }\n  } else {\n    $(`#${redSide}PlayoffAlliance`).text(\"\");\n    $(`#${blueSide}PlayoffAlliance`).text(\"\");\n    $(\".playoff-alliance\").hide();\n    $(\"#playoffSeriesStatus\").hide();\n  }\n\n  let matchName = data.Match.LongName;\n  if (data.Match.NameDetail !== \"\") {\n    matchName += \" &ndash; \" + data.Match.NameDetail;\n  }\n  $(\"#matchName\").html(matchName);\n  $(\"#timeoutNextMatchName\").html(matchName);\n  $(\"#timeoutBreakDescription\").text(data.BreakDescription);\n};\n\n// Handles a websocket message to update the match time countdown.\nconst handleMatchTime = function (data) {\n  translateMatchTime(data, function (matchState, matchStateText, countdownSec) {\n    $(\"#matchTime\").text(getCountdownString(countdownSec));\n  });\n};\n\n// Handles a websocket message to update the match score.\nconst handleRealtimeScore = function (data) {\n  $(`#${redSide}ScoreNumber`).text(data.Red.ScoreSummary.Score - data.Red.ScoreSummary.BargePoints);\n  $(`#${blueSide}ScoreNumber`).text(data.Blue.ScoreSummary.Score - data.Blue.ScoreSummary.BargePoints);\n\n  let redCoral, blueCoral;\n  if (currentMatch.Type === matchTypePlayoff) {\n    redCoral = data.Red.ScoreSummary.NumCoral;\n    blueCoral = data.Blue.ScoreSummary.NumCoral;\n  } else {\n    redCoral = `${data.Red.ScoreSummary.NumCoralLevels}/${data.Red.ScoreSummary.NumCoralLevelsGoal}`;\n    blueCoral = `${data.Blue.ScoreSummary.NumCoralLevels}/${data.Blue.ScoreSummary.NumCoralLevelsGoal}`;\n  }\n  $(`#${redSide}Coral`).text(redCoral);\n  $(`#${redSide}Algae`).text(data.Red.ScoreSummary.NumAlgae);\n  $(`#${blueSide}Coral`).text(blueCoral);\n  $(`#${blueSide}Algae`).text(data.Blue.ScoreSummary.NumAlgae);\n};\n\n// Handles a websocket message to populate the final score data.\nconst handleScorePosted = function (data) {\n  $(`#${redSide}FinalScore`).text(data.RedScoreSummary.Score);\n  $(`#${redSide}FinalAlliance`).text(\"Alliance \" + data.Match.PlayoffRedAlliance);\n  setTeamInfo(redSide, 1, data.Match.Red1, data.RedCards, data.RedRankings);\n  setTeamInfo(redSide, 2, data.Match.Red2, data.RedCards, data.RedRankings);\n  setTeamInfo(redSide, 3, data.Match.Red3, data.RedCards, data.RedRankings);\n  if (data.RedOffFieldTeamIds.length > 0) {\n    setTeamInfo(redSide, 4, data.RedOffFieldTeamIds[0], data.RedCards, data.RedRankings);\n  } else {\n    setTeamInfo(redSide, 4, 0, data.RedCards, data.RedRankings);\n  }\n  $(`#${redSide}FinalLeavePoints`).text(data.RedScoreSummary.LeavePoints);\n  $(`#${redSide}FinalCoralPoints`).text(data.RedScoreSummary.CoralPoints);\n  $(`#${redSide}FinalAlgaePoints`).text(data.RedScoreSummary.AlgaePoints);\n  $(`#${redSide}FinalBargePoints`).text(data.RedScoreSummary.BargePoints);\n  $(`#${redSide}FinalFoulPoints`).text(data.RedScoreSummary.FoulPoints);\n  $(`#${redSide}FinalCoopertitionBonus`).html(\n    data.RedScoreSummary.CoopertitionBonus ? \"&#x2714;\" : \"&#x2718;\"\n  );\n  $(`#${redSide}FinalCoopertitionBonus`).attr(\n    \"data-checked\", data.RedScoreSummary.CoopertitionBonus\n  );\n  $(`#${redSide}FinalAutoBonusRankingPoint`).html(\n    data.RedScoreSummary.AutoBonusRankingPoint ? \"&#x2714;\" : \"&#x2718;\"\n  );\n  $(`#${redSide}FinalAutoBonusRankingPoint`).attr(\n    \"data-checked\", data.RedScoreSummary.AutoBonusRankingPoint\n  );\n  $(`#${redSide}FinalCoralBonusRankingPoint`).html(\n    data.RedScoreSummary.CoralBonusRankingPoint ? \"&#x2714;\" : \"&#x2718;\"\n  );\n  $(`#${redSide}FinalCoralBonusRankingPoint`).attr(\n    \"data-checked\", data.RedScoreSummary.CoralBonusRankingPoint\n  );\n  $(`#${redSide}FinalBargeBonusRankingPoint`).html(\n    data.RedScoreSummary.BargeBonusRankingPoint ? \"&#x2714;\" : \"&#x2718;\"\n  );\n  $(`#${redSide}FinalBargeBonusRankingPoint`).attr(\n    \"data-checked\", data.RedScoreSummary.BargeBonusRankingPoint\n  );\n  $(`#${redSide}FinalRankingPoints`).html(data.RedRankingPoints);\n  $(`#${redSide}FinalWins`).text(data.RedWins);\n  const redFinalDestination = $(`#${redSide}FinalDestination`);\n  redFinalDestination.html(data.RedDestination.replace(\"Advances to \", \"Advances to<br>\"));\n  redFinalDestination.toggle(data.RedDestination !== \"\");\n  redFinalDestination.attr(\"data-won\", data.RedWon);\n\n  $(`#${blueSide}FinalScore`).text(data.BlueScoreSummary.Score);\n  $(`#${blueSide}FinalAlliance`).text(\"Alliance \" + data.Match.PlayoffBlueAlliance);\n  setTeamInfo(blueSide, 1, data.Match.Blue1, data.BlueCards, data.BlueRankings);\n  setTeamInfo(blueSide, 2, data.Match.Blue2, data.BlueCards, data.BlueRankings);\n  setTeamInfo(blueSide, 3, data.Match.Blue3, data.BlueCards, data.BlueRankings);\n  if (data.BlueOffFieldTeamIds.length > 0) {\n    setTeamInfo(blueSide, 4, data.BlueOffFieldTeamIds[0], data.BlueCards, data.BlueRankings);\n  } else {\n    setTeamInfo(blueSide, 4, 0, data.BlueCards, data.BlueRankings);\n  }\n  $(`#${blueSide}FinalLeavePoints`).text(data.BlueScoreSummary.LeavePoints);\n  $(`#${blueSide}FinalCoralPoints`).text(data.BlueScoreSummary.CoralPoints);\n  $(`#${blueSide}FinalAlgaePoints`).text(data.BlueScoreSummary.AlgaePoints);\n  $(`#${blueSide}FinalBargePoints`).text(data.BlueScoreSummary.BargePoints);\n  $(`#${blueSide}FinalFoulPoints`).text(data.BlueScoreSummary.FoulPoints);\n  $(`#${blueSide}FinalCoopertitionBonus`).html(\n    data.BlueScoreSummary.CoopertitionBonus ? \"&#x2714;\" : \"&#x2718;\"\n  );\n  $(`#${blueSide}FinalCoopertitionBonus`).attr(\n    \"data-checked\", data.BlueScoreSummary.CoopertitionBonus\n  );\n  $(`#${blueSide}FinalAutoBonusRankingPoint`).html(\n    data.BlueScoreSummary.AutoBonusRankingPoint ? \"&#x2714;\" : \"&#x2718;\"\n  );\n  $(`#${blueSide}FinalAutoBonusRankingPoint`).attr(\n    \"data-checked\", data.BlueScoreSummary.AutoBonusRankingPoint\n  );\n  $(`#${blueSide}FinalCoralBonusRankingPoint`).html(\n    data.BlueScoreSummary.CoralBonusRankingPoint ? \"&#x2714;\" : \"&#x2718;\"\n  );\n  $(`#${blueSide}FinalCoralBonusRankingPoint`).attr(\n    \"data-checked\", data.BlueScoreSummary.CoralBonusRankingPoint\n  );\n  $(`#${blueSide}FinalBargeBonusRankingPoint`).html(\n    data.BlueScoreSummary.BargeBonusRankingPoint ? \"&#x2714;\" : \"&#x2718;\"\n  );\n  $(`#${blueSide}FinalBargeBonusRankingPoint`).attr(\n    \"data-checked\", data.BlueScoreSummary.BargeBonusRankingPoint\n  );\n  $(`#${blueSide}FinalRankingPoints`).html(data.BlueRankingPoints);\n  $(`#${blueSide}FinalWins`).text(data.BlueWins);\n  const blueFinalDestination = $(`#${blueSide}FinalDestination`);\n  blueFinalDestination.html(data.BlueDestination.replace(\"Advances to \", \"Advances to<br>\"));\n  blueFinalDestination.toggle(data.BlueDestination !== \"\");\n  blueFinalDestination.attr(\"data-won\", data.BlueWon);\n\n  let matchName = data.Match.LongName;\n  if (data.Match.NameDetail !== \"\") {\n    matchName += \" &ndash; \" + data.Match.NameDetail;\n  }\n  $(\"#finalMatchName\").html(matchName);\n\n  // Reload the bracket to reflect any changes.\n  $(\"#bracketSvg\").attr(\"src\", \"/api/bracket/svg?activeMatch=saved&v=\" + new Date().getTime());\n\n  if (data.Match.Type === matchTypePlayoff) {\n    // Hide bonus ranking points and show playoff-only fields.\n    $(\".playoff-hidden-field\").hide();\n    $(\".playoff-only-field\").show();\n  } else {\n    $(\".playoff-hidden-field\").show();\n    $(\".playoff-only-field\").hide();\n  }\n  $(\".coopertition-hidden-field\").toggle(data.CoopertitionEnabled);\n};\n\n// Handles a websocket message to play a sound to signal match start/stop/etc.\nconst handlePlaySound = function (sound) {\n  $(\"audio\").each(function (k, v) {\n    // Stop and reset any sounds that are still playing.\n    v.pause();\n    v.currentTime = 0;\n  });\n  $(\"#sound-\" + sound)[0].play();\n};\n\n// Handles a websocket message to update the alliance selection screen.\nconst handleAllianceSelection = function (data) {\n  const alliances = data.Alliances;\n  const rankedTeams = data.RankedTeams;\n  if (alliances && alliances.length > 0) {\n    const numColumns = alliances[0].TeamIds.length + 1;\n    $.each(alliances, function (k, v) {\n      v.Index = k + 1;\n    });\n    $(\"#allianceSelection\").html(allianceSelectionTemplate({alliances: alliances, numColumns: numColumns}));\n  }\n  if (rankedTeams) {\n    let text = \"\";\n    $.each(rankedTeams, function (i, v) {\n      if (!v.Picked) {\n        text += `<div class=\"unpicked\"><div class=\"unpicked-rank\">${v.Rank}.</div>` +\n          `<div class=\"unpicked-team\">${v.TeamId}</div></div>`;\n      }\n    });\n    $(\"#allianceRankings\").html(text);\n  }\n\n  if (data.ShowTimer) {\n    $(\"#allianceSelectionTimer\").text(getCountdownString(data.TimeRemainingSec));\n  } else {\n    $(\"#allianceSelectionTimer\").html(\"&nbsp;\");\n  }\n};\n\n// Handles a websocket message to populate and/or show/hide a lower third.\nconst handleLowerThird = function (data) {\n  if (data.LowerThird !== null) {\n    if (data.LowerThird.BottomText === \"\") {\n      $(\"#lowerThirdTop\").hide();\n      $(\"#lowerThirdBottom\").hide();\n      $(\"#lowerThirdSingle\").text(data.LowerThird.TopText);\n      $(\"#lowerThirdSingle\").show();\n    } else {\n      $(\"#lowerThirdSingle\").hide();\n      $(\"#lowerThirdTop\").text(data.LowerThird.TopText);\n      $(\"#lowerThirdBottom\").text(data.LowerThird.BottomText);\n      $(\"#lowerThirdTop\").show();\n      $(\"#lowerThirdBottom\").show();\n    }\n  }\n\n  const lowerThirdElement = $(\"#lowerThird\");\n  if (data.ShowLowerThird && !lowerThirdElement.is(\":visible\")) {\n    lowerThirdElement.show();\n    lowerThirdElement.transition({queue: false, left: \"150px\"}, 750, \"ease\");\n  } else if (!data.ShowLowerThird && lowerThirdElement.is(\":visible\")) {\n    lowerThirdElement.transition({queue: false, left: \"-1000px\"}, 1000, \"ease\", function () {\n      lowerThirdElement.hide();\n    });\n  }\n};\n\nconst transitionAllianceSelectionToBlank = function (callback) {\n  $('#allianceSelectionCentering').transition({queue: false, right: \"-60em\"}, 500, \"ease\", callback);\n  $('#allianceRankingsCentering.enabled').transition({queue: false, left: \"-60em\"}, 500, \"ease\");\n};\n\nconst transitionBlankToAllianceSelection = function (callback) {\n  $('#allianceSelectionCentering').css(\"right\", \"-60em\").show();\n  $('#allianceSelectionCentering').transition({queue: false, right: \"3em\"}, 500, \"ease\", callback);\n  $('#allianceRankingsCentering.enabled').css(\"left\", \"-60em\").show();\n  $('#allianceRankingsCentering.enabled').transition({queue: false, left: \"3em\"}, 500, \"ease\");\n};\n\nconst transitionBlankToBracket = function (callback) {\n  transitionBlankToLogo(function () {\n    setTimeout(function () {\n      transitionLogoToBracket(callback);\n    }, 50);\n  });\n};\n\nconst transitionBlankToIntro = function (callback) {\n  $(\"#overlayCentering\").transition(overlayCenteringShowParams, 500, \"ease\", function () {\n    $(\".teams\").css(\"display\", \"flex\");\n    $(\".avatars\").css(\"display\", \"flex\");\n    $(\".avatars\").css(\"opacity\", 1);\n    $(\".score\").transition({queue: false, width: scoreMid}, 500, \"ease\", function () {\n      $(\"#eventMatchInfo\").css(\"display\", \"flex\");\n      $(\"#eventMatchInfo\").transition({queue: false, height: eventMatchInfoDown}, 500, \"ease\", callback);\n    });\n  });\n};\n\nconst transitionBlankToLogo = function (callback) {\n  $(\".blindsCenter.blank\").css({rotateY: \"0deg\"});\n  $(\".blindsCenter.full\").css({rotateY: \"-180deg\"});\n  $(\".blinds.right\").transition({queue: false, right: 0}, 1000, \"ease\");\n  $(\".blinds.left\").transition({queue: false, left: 0}, 1000, \"ease\", function () {\n    $(\".blinds.left\").addClass(\"full\");\n    $(\".blinds.right\").hide();\n    setTimeout(function () {\n      $(\".blindsCenter.blank\").transition({queue: false, rotateY: \"180deg\"}, 500, \"ease\");\n      $(\".blindsCenter.full\").transition({queue: false, rotateY: \"0deg\"}, 500, \"ease\", callback);\n    }, 200);\n  });\n};\n\nconst transitionBlankToLogoLuma = function (callback) {\n  $(\".blindsCenter.blank\").css({rotateY: \"180deg\"});\n  $(\".blindsCenter.full\").transition({queue: false, rotateY: \"0deg\"}, 1000, \"ease\", callback);\n};\n\nconst transitionBlankToMatch = function (callback) {\n  $(\"#overlayCentering\").transition(overlayCenteringShowParams, 500, \"ease\", function () {\n    $(\".teams\").css(\"display\", \"flex\");\n    $(\".score-fields\").css(\"display\", \"flex\");\n    $(\".score-fields\").transition({queue: false, width: scoreFieldsOut}, 500, \"ease\");\n    $(\"#logo\").transition({queue: false, top: logoUp}, 500, \"ease\");\n    $(\".score\").transition({queue: false, width: scoreOut}, 500, \"ease\", function () {\n      $(\"#eventMatchInfo\").css(\"display\", \"flex\");\n      $(\"#eventMatchInfo\").transition({queue: false, height: eventMatchInfoDown}, 500, \"ease\", callback);\n      $(\".score-number\").transition({queue: false, opacity: 1}, 750, \"ease\");\n      $(\"#matchTime\").transition({queue: false, opacity: 1}, 750, \"ease\");\n      $(\".score-fields\").transition({queue: false, opacity: 1}, 750, \"ease\");\n    });\n  });\n};\n\nconst transitionBlankToScore = function (callback) {\n  transitionBlankToLogo(function () {\n    setTimeout(function () {\n      transitionLogoToScore(callback);\n    }, 50);\n  });\n};\n\nconst transitionBlankToSponsor = function (callback) {\n  $(\".blindsCenter.blank\").css({rotateY: \"90deg\"});\n  $(\".blinds.right\").transition({queue: false, right: 0}, 1000, \"ease\");\n  $(\".blinds.left\").transition({queue: false, left: 0}, 1000, \"ease\", function () {\n    $(\".blinds.left\").addClass(\"full\");\n    $(\".blinds.right\").hide();\n    setTimeout(function () {\n      $(\"#sponsor\").show();\n      $(\"#sponsor\").transition({queue: false, opacity: 1}, 1000, \"ease\", callback);\n    }, 200);\n  });\n};\n\nconst transitionBlankToTimeout = function (callback) {\n  $(\"#overlayCentering\").transition(overlayCenteringShowParams, 500, \"ease\", function () {\n    $(\"#timeoutDetails\").transition({queue: false, width: timeoutDetailsOut}, 500, \"ease\");\n    $(\"#logo\").transition({queue: false, top: logoUp}, 500, \"ease\", function () {\n      $(\".timeout-detail\").transition({queue: false, opacity: 1}, 750, \"ease\");\n      $(\"#matchTime\").transition({queue: false, opacity: 1}, 750, \"ease\", callback);\n    });\n  });\n};\n\nconst transitionBracketToBlank = function (callback) {\n  transitionBracketToLogo(function () {\n    transitionLogoToBlank(callback);\n  });\n};\n\nconst transitionBracketToLogo = function (callback) {\n  $(\"#bracket\").transition({queue: false, opacity: 0}, 500, \"ease\", function () {\n    $(\"#bracket\").hide();\n  });\n  $(\".blindsCenter.full\").transition({queue: false, top: 0, scale: 1}, 625, \"ease\", callback);\n};\n\nconst transitionBracketToLogoLuma = function (callback) {\n  transitionBracketToLogo(function () {\n    transitionLogoToLogoLuma(callback);\n  });\n};\n\nconst transitionBracketToScore = function (callback) {\n  $(\".blindsCenter.full\").transition({queue: false, top: scoreLogoTop, scale: 1}, 1000, \"ease\");\n  $(\"#bracket\").transition({queue: false, opacity: 0}, 1000, \"ease\", function () {\n    $(\"#bracket\").hide();\n    $(\"#finalScore\").show();\n    $(\"#finalScore\").transition({queue: false, opacity: 1}, 1000, \"ease\", callback);\n  });\n};\n\nconst transitionBracketToSponsor = function (callback) {\n  transitionBracketToLogo(function () {\n    transitionLogoToSponsor(callback);\n  });\n};\n\nconst transitionIntroToBlank = function (callback) {\n  $(\"#eventMatchInfo\").transition({queue: false, height: eventMatchInfoUp}, 500, \"ease\", function () {\n    $(\"#eventMatchInfo\").hide();\n    $(\".score\").transition({queue: false, width: scoreIn}, 500, \"ease\", function () {\n      $(\".avatars\").css(\"opacity\", 0);\n      $(\".avatars\").hide();\n      $(\".teams\").hide();\n      $(\"#overlayCentering\").transition(overlayCenteringHideParams, 1000, \"ease\", callback);\n    });\n  });\n};\n\nconst transitionIntroToMatch = function (callback) {\n  $(\".avatars\").transition({queue: false, opacity: 0}, 500, \"ease\", function () {\n    $(\".avatars\").hide();\n  });\n  $(\".score-fields\").css(\"display\", \"flex\");\n  $(\".score-fields\").transition({queue: false, width: scoreFieldsOut}, 500, \"ease\");\n  $(\"#logo\").transition({queue: false, top: logoUp}, 500, \"ease\");\n  $(\".score\").transition({queue: false, width: scoreOut}, 500, \"ease\", function () {\n    $(\".score-number\").transition({queue: false, opacity: 1}, 750, \"ease\");\n    $(\"#matchTime\").transition({queue: false, opacity: 1}, 750, \"ease\", callback);\n    $(\".score-fields\").transition({queue: false, opacity: 1}, 750, \"ease\");\n  });\n};\n\nconst transitionIntroToTimeout = function (callback) {\n  $(\"#eventMatchInfo\").transition({queue: false, height: eventMatchInfoUp}, 500, \"ease\", function () {\n    $(\"#eventMatchInfo\").hide();\n    $(\".score\").transition({queue: false, width: scoreIn}, 500, \"ease\", function () {\n      $(\".avatars\").css(\"opacity\", 0);\n      $(\".avatars\").hide();\n      $(\".teams\").hide();\n      $(\"#timeoutDetails\").transition({queue: false, width: timeoutDetailsOut}, 500, \"ease\");\n      $(\"#logo\").transition({queue: false, top: logoUp}, 500, \"ease\", function () {\n        $(\".timeout-detail\").transition({queue: false, opacity: 1}, 750, \"ease\");\n        $(\"#matchTime\").transition({queue: false, opacity: 1}, 750, \"ease\", callback);\n      });\n    });\n  });\n};\n\nconst transitionLogoToBlank = function (callback) {\n  $(\".blindsCenter.blank\").transition({queue: false, rotateY: \"360deg\"}, 500, \"ease\");\n  $(\".blindsCenter.full\").transition({queue: false, rotateY: \"180deg\"}, 500, \"ease\", function () {\n    setTimeout(function () {\n      $(\".blinds.left\").removeClass(\"full\");\n      $(\".blinds.right\").show();\n      $(\".blinds.right\").transition({queue: false, right: \"-50%\"}, 1000, \"ease\");\n      $(\".blinds.left\").transition({queue: false, left: \"-50%\"}, 1000, \"ease\", callback);\n    }, 200);\n  });\n};\n\nconst transitionLogoToBracket = function (callback) {\n  $(\".blindsCenter.full\").transition({queue: false, top: bracketLogoTop, scale: bracketLogoScale}, 625, \"ease\");\n  $(\"#bracket\").show();\n  $(\"#bracket\").transition({queue: false, opacity: 1}, 1000, \"ease\", callback);\n};\n\nconst transitionLogoToLogoLuma = function (callback) {\n  $(\".blinds.left\").removeClass(\"full\");\n  $(\".blinds.right\").show();\n  $(\".blinds.right\").transition({queue: false, right: \"-50%\"}, 1000, \"ease\");\n  $(\".blinds.left\").transition({queue: false, left: \"-50%\"}, 1000, \"ease\", function () {\n    if (callback) {\n      callback();\n    }\n  });\n};\n\nconst transitionLogoToScore = function (callback) {\n  $(\".blindsCenter.full\").transition({queue: false, top: scoreLogoTop}, 625, \"ease\");\n  $(\"#finalScore\").show();\n  $(\"#finalScore\").transition({queue: false, opacity: 1}, 1000, \"ease\", callback);\n};\n\nconst transitionLogoToSponsor = function (callback) {\n  $(\".blindsCenter.full\").transition({queue: false, rotateY: \"90deg\"}, 750, \"ease\", function () {\n    $(\"#sponsor\").show();\n    $(\"#sponsor\").transition({queue: false, opacity: 1}, 1000, \"ease\", callback);\n  });\n};\n\nconst transitionLogoLumaToBlank = function (callback) {\n  $(\".blindsCenter.full\").transition({queue: false, rotateY: \"180deg\"}, 1000, \"ease\", callback);\n};\n\nconst transitionLogoLumaToBracket = function (callback) {\n  transitionLogoLumaToLogo(function () {\n    transitionLogoToBracket(callback);\n  });\n};\n\nconst transitionLogoLumaToLogo = function (callback) {\n  $(\".blinds.right\").transition({queue: false, right: 0}, 1000, \"ease\");\n  $(\".blinds.left\").transition({queue: false, left: 0}, 1000, \"ease\", function () {\n    $(\".blinds.left\").addClass(\"full\");\n    $(\".blinds.right\").hide();\n    if (callback) {\n      callback();\n    }\n  });\n};\n\nconst transitionLogoLumaToScore = function (callback) {\n  transitionLogoLumaToLogo(function () {\n    transitionLogoToScore(callback);\n  });\n};\n\nconst transitionMatchToBlank = function (callback) {\n  $(\"#eventMatchInfo\").transition({queue: false, height: eventMatchInfoUp}, 500, \"ease\");\n  $(\"#matchTime\").transition({queue: false, opacity: 0}, 300, \"linear\");\n  $(\".score-fields\").transition({queue: false, opacity: 0}, 300, \"ease\");\n  $(\".score-number\").transition({queue: false, opacity: 0}, 300, \"linear\", function () {\n    $(\"#eventMatchInfo\").hide();\n    $(\".score-fields\").transition({queue: false, width: 0}, 500, \"ease\");\n    $(\"#logo\").transition({queue: false, top: logoDown}, 500, \"ease\");\n    $(\".score\").transition({queue: false, width: scoreIn}, 500, \"ease\", function () {\n      $(\".teams\").hide();\n      $(\".score-fields\").hide();\n      $(\"#overlayCentering\").transition(overlayCenteringHideParams, 1000, \"ease\", callback);\n    });\n  });\n};\n\nconst transitionMatchToIntro = function (callback) {\n  $(\".score-number\").transition({queue: false, opacity: 0}, 300, \"linear\");\n  $(\".score-fields\").transition({queue: false, opacity: 0}, 300, \"ease\");\n  $(\"#matchTime\").transition({queue: false, opacity: 0}, 300, \"linear\", function () {\n    $(\".score-fields\").transition({queue: false, width: 0}, 500, \"ease\");\n    $(\"#logo\").transition({queue: false, top: logoDown}, 500, \"ease\");\n    $(\".score\").transition({queue: false, width: scoreMid}, 500, \"ease\", function () {\n      $(\".score-fields\").hide();\n      $(\".avatars\").css(\"display\", \"flex\");\n      $(\".avatars\").transition({queue: false, opacity: 1}, 500, \"ease\", callback);\n    });\n  });\n};\n\nconst transitionScoreToBlank = function (callback) {\n  transitionScoreToLogo(function () {\n    transitionLogoToBlank(callback);\n  });\n};\n\nconst transitionScoreToBracket = function (callback) {\n  $(\".blindsCenter.full\").transition({queue: false, top: bracketLogoTop, scale: bracketLogoScale}, 1000, \"ease\");\n  $(\"#finalScore\").transition({queue: false, opacity: 0}, 1000, \"ease\", function () {\n    $(\"#finalScore\").hide();\n    $(\"#bracket\").show();\n    $(\"#bracket\").transition({queue: false, opacity: 1}, 1000, \"ease\", callback);\n  });\n};\n\nconst transitionScoreToLogo = function (callback) {\n  $(\"#finalScore\").transition({queue: false, opacity: 0}, 500, \"ease\", function () {\n    $(\"#finalScore\").hide();\n  });\n  $(\".blindsCenter.full\").transition({queue: false, top: 0}, 625, \"ease\", callback);\n};\n\nconst transitionScoreToLogoLuma = function (callback) {\n  transitionScoreToLogo(function () {\n    transitionLogoToLogoLuma(callback);\n  });\n};\n\nconst transitionScoreToSponsor = function (callback) {\n  transitionScoreToLogo(function () {\n    transitionLogoToSponsor(callback);\n  });\n};\n\nconst transitionSponsorToBlank = function (callback) {\n  $(\"#sponsor\").transition({queue: false, opacity: 0}, 1000, \"ease\", function () {\n    setTimeout(function () {\n      $(\".blinds.left\").removeClass(\"full\");\n      $(\".blinds.right\").show();\n      $(\".blinds.right\").transition({queue: false, right: \"-50%\"}, 1000, \"ease\");\n      $(\".blinds.left\").transition({queue: false, left: \"-50%\"}, 1000, \"ease\", callback);\n      $(\"#sponsor\").hide();\n    }, 200);\n  });\n};\n\nconst transitionSponsorToBracket = function (callback) {\n  transitionSponsorToLogo(function () {\n    transitionLogoToBracket(callback);\n  });\n};\n\nconst transitionSponsorToLogo = function (callback) {\n  $(\"#sponsor\").transition({queue: false, opacity: 0}, 1000, \"ease\", function () {\n    $(\".blindsCenter.full\").transition({queue: false, rotateY: \"0deg\"}, 750, \"ease\", callback);\n    $(\"#sponsor\").hide();\n  });\n};\n\nconst transitionSponsorToScore = function (callback) {\n  transitionSponsorToLogo(function () {\n    transitionLogoToScore(callback);\n  });\n};\n\nconst transitionTimeoutToBlank = function (callback) {\n  $(\".timeout-detail\").transition({queue: false, opacity: 0}, 300, \"linear\");\n  $(\"#matchTime\").transition({queue: false, opacity: 0}, 300, \"linear\", function () {\n    $(\"#timeoutDetails\").transition({queue: false, width: timeoutDetailsIn}, 500, \"ease\");\n    $(\"#logo\").transition({queue: false, top: logoDown}, 500, \"ease\", function () {\n      $(\"#overlayCentering\").transition(overlayCenteringHideParams, 1000, \"ease\", callback);\n    });\n  });\n};\n\nconst transitionTimeoutToIntro = function (callback) {\n  $(\".timeout-detail\").transition({queue: false, opacity: 0}, 300, \"linear\");\n  $(\"#matchTime\").transition({queue: false, opacity: 0}, 300, \"linear\", function () {\n    $(\"#timeoutDetails\").transition({queue: false, width: timeoutDetailsIn}, 500, \"ease\");\n    $(\"#logo\").transition({queue: false, top: logoDown}, 500, \"ease\", function () {\n      $(\".avatars\").css(\"display\", \"flex\");\n      $(\".avatars\").css(\"opacity\", 1);\n      $(\".teams\").css(\"display\", \"flex\");\n      $(\".score\").transition({queue: false, width: scoreMid}, 500, \"ease\", function () {\n        $(\"#eventMatchInfo\").show();\n        $(\"#eventMatchInfo\").transition({queue: false, height: eventMatchInfoDown}, 500, \"ease\", callback);\n      });\n    });\n  });\n};\n\n// Loads sponsor slide data and builds the slideshow HTML.\nconst initializeSponsorDisplay = function () {\n  $.getJSON(\"/api/sponsor_slides\", function (slides) {\n    $(\"#sponsorContainer\").empty();\n\n    // Inject the HTML for each slide into the DOM.\n    $.each(slides, function (index, slide) {\n      slide.DisplayTimeMs = slide.DisplayTimeSec * 1000;\n      slide.First = index === 0;\n\n      let slideHtml;\n      if (slide.Image) {\n        slideHtml = sponsorImageTemplate(slide);\n      } else {\n        slideHtml = sponsorTextTemplate(slide);\n      }\n      $(\"#sponsorContainer\").append(slideHtml);\n    });\n  });\n};\n\nconst getAvatarUrl = function (teamId) {\n  return \"/api/teams/\" + teamId + \"/avatar\";\n};\n\nconst setTeamInfo = function (side, position, teamId, cards, rankings) {\n  const teamNumberElement = $(`#${side}FinalTeam${position}`);\n  teamNumberElement.html(teamId);\n  teamNumberElement.toggle(teamId > 0);\n  const avatarElement = $(`#${side}FinalTeam${position}Avatar`);\n  avatarElement.attr(\"src\", getAvatarUrl(teamId));\n  avatarElement.toggle(teamId > 0);\n\n  const cardElement = $(`#${side}FinalTeam${position}Card`);\n  cardElement.attr(\"data-card\", cards[teamId.toString()] || \"\");\n\n  const ranking = rankings[teamId];\n  let rankIndicator = \"\";\n  let rankNumber = \"\";\n  if (ranking !== undefined && ranking !== null && ranking.Rank !== 0) {\n    rankNumber = ranking.Rank;\n    if (rankNumber > ranking.PreviousRank && ranking.PreviousRank > 0) {\n      rankIndicator = \"rank-down\";\n    } else if (rankNumber < ranking.PreviousRank) {\n      rankIndicator = \"rank-up\";\n    }\n  }\n\n  const rankIndicatorElement = $(`#${side}FinalTeam${position}RankIndicator`);\n  rankIndicatorElement.attr(\"src\", rankIndicator === \"\" ? \"\" : `/static/img/${rankIndicator}.svg`);\n  rankIndicatorElement.toggle(rankIndicator !== \"\" && teamId > 0);\n\n  const rankNumberElement = $(`#${side}FinalTeam${position}RankNumber`);\n  rankNumberElement.text(rankNumber);\n  rankNumberElement.toggle(teamId > 0);\n};\n\n$(function () {\n  // Read the configuration for this display from the URL query string.\n  const urlParams = new URLSearchParams(window.location.search);\n  document.body.style.backgroundColor = urlParams.get(\"background\");\n  const reversed = urlParams.get(\"reversed\");\n  if (reversed === \"true\") {\n    redSide = \"right\";\n    blueSide = \"left\";\n  } else {\n    redSide = \"left\";\n    blueSide = \"right\";\n  }\n  $(\".reversible-left\").attr(\"data-reversed\", reversed);\n  $(\".reversible-right\").attr(\"data-reversed\", reversed);\n  if (urlParams.get(\"overlayLocation\") === \"top\") {\n    overlayCenteringHideParams = overlayCenteringTopHideParams;\n    overlayCenteringShowParams = overlayCenteringTopShowParams;\n    $(\"#overlayCentering\").css(\"top\", overlayCenteringTopUp);\n  } else {\n    overlayCenteringHideParams = overlayCenteringBottomHideParams;\n    overlayCenteringShowParams = overlayCenteringBottomShowParams;\n  }\n\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/displays/audience/websocket\", {\n    allianceSelection: function (event) {\n      handleAllianceSelection(event.data);\n    },\n    audienceDisplayMode: function (event) {\n      handleAudienceDisplayMode(event.data);\n    },\n    lowerThird: function (event) {\n      handleLowerThird(event.data);\n    },\n    matchLoad: function (event) {\n      handleMatchLoad(event.data);\n    },\n    matchTime: function (event) {\n      handleMatchTime(event.data);\n    },\n    matchTiming: function (event) {\n      handleMatchTiming(event.data);\n    },\n    playSound: function (event) {\n      handlePlaySound(event.data);\n    },\n    realtimeScore: function (event) {\n      handleRealtimeScore(event.data);\n    },\n    scorePosted: function (event) {\n      handleScorePosted(event.data);\n    },\n  });\n\n  // Map how to transition from one screen to another. Missing links between screens indicate that first we\n  // must transition to the blank screen and then to the target screen.\n  transitionMap = {\n    allianceSelection: {\n      blank: transitionAllianceSelectionToBlank,\n    },\n    blank: {\n      allianceSelection: transitionBlankToAllianceSelection,\n      bracket: transitionBlankToBracket,\n      intro: transitionBlankToIntro,\n      logo: transitionBlankToLogo,\n      logoLuma: transitionBlankToLogoLuma,\n      match: transitionBlankToMatch,\n      score: transitionBlankToScore,\n      sponsor: transitionBlankToSponsor,\n      timeout: transitionBlankToTimeout,\n    },\n    bracket: {\n      blank: transitionBracketToBlank,\n      logo: transitionBracketToLogo,\n      logoLuma: transitionBracketToLogoLuma,\n      score: transitionBracketToScore,\n      sponsor: transitionBracketToSponsor,\n    },\n    intro: {\n      blank: transitionIntroToBlank,\n      match: transitionIntroToMatch,\n      timeout: transitionIntroToTimeout,\n    },\n    logo: {\n      blank: transitionLogoToBlank,\n      bracket: transitionLogoToBracket,\n      logoLuma: transitionLogoToLogoLuma,\n      score: transitionLogoToScore,\n      sponsor: transitionLogoToSponsor,\n    },\n    logoLuma: {\n      blank: transitionLogoLumaToBlank,\n      bracket: transitionLogoLumaToBracket,\n      logo: transitionLogoLumaToLogo,\n      score: transitionLogoLumaToScore,\n    },\n    match: {\n      blank: transitionMatchToBlank,\n      intro: transitionMatchToIntro,\n    },\n    score: {\n      blank: transitionScoreToBlank,\n      bracket: transitionScoreToBracket,\n      logo: transitionScoreToLogo,\n      logoLuma: transitionScoreToLogoLuma,\n      sponsor: transitionScoreToSponsor,\n    },\n    sponsor: {\n      blank: transitionSponsorToBlank,\n      bracket: transitionSponsorToBracket,\n      logo: transitionSponsorToLogo,\n      score: transitionSponsorToScore,\n    },\n    timeout: {\n      blank: transitionTimeoutToBlank,\n      intro: transitionTimeoutToIntro,\n    },\n  }\n});\n"
  },
  {
    "path": "static/js/bracket_display.js",
    "content": "// Copyright 2022 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side methods for the bracket display.\n\nvar websocket;\n\n// Handles a websocket message to load a new match.\nconst handleMatchLoad = function (data) {\n  fetch(\"/api/bracket/svg?activeMatch=current\")\n    .then(response => response.text())\n    .then(svg => $(\"#bracket\").html(svg));\n};\n\n$(function () {\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/displays/bracket/websocket\", {\n    matchLoad: function (event) {\n      handleMatchLoad(event.data);\n    },\n  });\n});\n"
  },
  {
    "path": "static/js/cheesy-common.js",
    "content": "// Copyright 2024 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Common JavaScript constants and functions used across multiple pages.\n\nconst newDateTimePicker = function (id, defaultTime) {\n  new tempusDominus.TempusDominus(\n    document.getElementById(id),\n    {\n      defaultDate: defaultTime,\n      display: {\n        components: {\n          seconds: true,\n        },\n        icons: {\n          type: \"icons\",\n          time: \"bi bi-clock\",\n          date: \"bi bi-calendar-week\",\n          up: \"bi bi-arrow-up\",\n          down: \"bi bi-arrow-down\",\n          previous: \"bi bi-chevron-left\",\n          next: \"bi bi-chevron-right\",\n          today: \"bi bi-calendar-check\",\n          clear: \"bi bi-trash\",\n          close: \"bi bi-x\",\n        },\n      },\n      localization: {\n        format: \"yyyy-MM-dd hh:mm:ss T\",\n        locale: \"en\",\n      },\n    }\n  );\n};\n"
  },
  {
    "path": "static/js/cheesy-websocket.js",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Shared code for initiating websocket connections back to the server for full-duplex communication.\n\nvar CheesyWebsocket = function (path, events) {\n  var that = this;\n  var protocol = \"ws://\";\n  if (window.location.protocol === \"https:\") {\n    protocol = \"wss://\";\n  }\n  var url = protocol + window.location.hostname;\n  if (window.location.port !== \"\") {\n    url += \":\" + window.location.port;\n  }\n  url += path;\n\n  // Append the page's query string to the websocket URL.\n  url += window.location.search;\n\n  // Insert a default error-handling event if a custom one doesn't already exist.\n  if (!events.hasOwnProperty(\"error\")) {\n    events.error = function (event) {\n      // Data is just an error string.\n      console.log(event.data);\n      alert(event.data);\n    };\n  }\n\n  // Parse the display parameters that will be present in the query string if this is a display.\n  var displayId = new URLSearchParams(window.location.search).get(\"displayId\");\n\n  // Insert an event to allow the server to force-reload the client for any display.\n  events.reload = function (event) {\n    if (event.data === null || event.data === displayId) {\n      location.reload();\n    }\n  };\n\n  // Insert an event to allow reconfiguration if this is a display.\n  if (!events.hasOwnProperty(\"displayConfiguration\")) {\n    events.displayConfiguration = function (event) {\n      var newUrl = event.data;\n\n      // Reload the display if the configuration has changed.\n      if (newUrl !== window.location.pathname + window.location.search) {\n        window.location = newUrl;\n      }\n    };\n  }\n\n  this.connect = function () {\n    this.websocket = $.websocket(url, {\n      open: function () {\n        console.log(\"Websocket connected to the server at \" + url + \".\")\n      },\n      close: function () {\n        console.log(\"Websocket lost connection to the server. Reconnecting in 3 seconds...\");\n        setTimeout(that.connect, 3000);\n      },\n      events: events\n    });\n  };\n\n  this.send = function (type, data) {\n    this.websocket.send(type, data);\n  };\n\n  this.connect();\n};\n"
  },
  {
    "path": "static/js/field_monitor_display.js",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side logic for the field monitor display.\n\nlet websocket;\nlet currentMatchId;\nlet redSide;\nlet blueSide;\nconst lowBatteryThreshold = 8;\nconst highBtuThreshold = 7.0;\n\n\nconst handleArenaStatus = function (data) {\n  // If getting data for the wrong match (e.g. after a server restart), reload the page.\n  if (currentMatchId == null) {\n    currentMatchId = data.MatchId;\n  } else if (currentMatchId !== data.MatchId) {\n    location.reload();\n  }\n\n  $.each(data.AllianceStations, function (station, stationStatus) {\n    // Select the DOM elements corresponding to the team station.\n    let teamElementPrefix;\n    if (station[0] === \"R\") {\n      teamElementPrefix = \"#\" + redSide + \"Team\" + station[1];\n    } else {\n      teamElementPrefix = \"#\" + blueSide + \"Team\" + station[1];\n    }\n    const teamIdElement = $(teamElementPrefix + \"Id\");\n    const teamNotesElement = $(teamElementPrefix + \"Notes\");\n    const teamNotesTextElement = $(teamElementPrefix + \"Notes div\");\n    const teamEthernetElement = $(teamElementPrefix + \"Ethernet\");\n    const teamDsElement = $(teamElementPrefix + \"Ds\");\n    const teamRadioElement = $(teamElementPrefix + \"Radio\");\n    const teamRadioIconElement = $(teamElementPrefix + \"Radio i\");\n    const teamRobotElement = $(teamElementPrefix + \"Robot\");\n    const teamBatteryElement = $(teamElementPrefix + \"Battery\");\n    const teamBypassElement = $(teamElementPrefix + \"Bypass\");\n    const teamStatsElement = $(teamElementPrefix + \"Stats\");\n    const teamBandwidthElement = $(teamElementPrefix + \"Bandwidth\");\n    const teamTripTimeElement = $(teamElementPrefix + \"TripTime\");\n    const teamMissedPacketsElement = $(teamElementPrefix + \"MissedPackets\");\n\n    teamNotesTextElement.attr(\"data-station\", station);\n\n    if (stationStatus.Team) {\n      // Set the team number and status.\n      teamIdElement.text(stationStatus.Team.Id);\n      let status = \"no-link\";\n      if (stationStatus.Bypass) {\n        status = \"\";\n      } else if (stationStatus.DsConn) {\n        if (stationStatus.DsConn.WrongStation) {\n          status = \"wrong-station\";\n        } else if (stationStatus.DsConn.RobotLinked) {\n          status = \"robot-linked\";\n        } else if (stationStatus.DsConn.RioLinked) {\n          status = \"rio-linked\";\n        } else if (stationStatus.DsConn.RadioLinked) {\n          status = \"radio-linked\";\n        } else if (stationStatus.DsConn.DsLinked) {\n          status = \"ds-linked\";\n        }\n      }\n      teamIdElement.attr(\"data-status\", status);\n      teamNotesTextElement.text(stationStatus.Team.FtaNotes);\n      teamNotesElement.attr(\"data-status\", status);\n    } else {\n      // No team is present in this position for this match; blank out the status.\n      teamIdElement.text(\"\");\n      teamNotesTextElement.text(\"\");\n      teamNotesElement.attr(\"data-status\", \"\");\n    }\n\n    // Format the Ethernet status box.\n    teamEthernetElement.attr(\"data-status-ok\", stationStatus.Ethernet ? \"true\" : \"\");\n    if (stationStatus.DsConn && stationStatus.DsConn.DsRobotTripTimeMs > 0) {\n      teamEthernetElement.text(stationStatus.DsConn.DsRobotTripTimeMs);\n    } else {\n      teamEthernetElement.text(\"ETH\");\n    }\n\n    const wifiStatus = stationStatus.WifiStatus;\n    teamRadioIconElement.attr(\"class\", `bi-reception-${wifiStatus.ConnectionQuality}`);\n\n    $(\"#accessPointStatus\").attr(\"data-status\", data.AccessPointStatus);\n    $(\"#switchStatus\").attr(\"data-status\", data.SwitchStatus);\n\n    if (stationStatus.DsConn) {\n      // Format the driver station status box.\n      const dsConn = stationStatus.DsConn;\n      teamDsElement.attr(\"data-status-ok\", dsConn.DsLinked);\n      teamDsElement.text(dsConn.MissedPacketCount);\n\n      // Format the radio status box according to the connection status of the robot radio.\n      const radioOkay = stationStatus.Team && stationStatus.Team.Id === wifiStatus.TeamId &&\n        (wifiStatus.RadioLinked || dsConn.RobotLinked);\n      teamRadioElement.attr(\"data-status-ok\", radioOkay);\n\n      // Format the robot status box.\n      const rioOkay = dsConn.RobotLinked;\n      teamRobotElement.attr(\"data-status-ok\", rioOkay);\n      if (stationStatus.DsConn.SecondsSinceLastRobotLink > 1 && stationStatus.DsConn.SecondsSinceLastRobotLink < 1000) {\n        teamRobotElement.text(stationStatus.DsConn.SecondsSinceLastRobotLink.toFixed());\n      } else {\n        teamRobotElement.text(\"RIO\");\n      }\n      const batteryOkay = dsConn.BatteryVoltage > lowBatteryThreshold && dsConn.RobotLinked;\n      teamBatteryElement.attr(\"data-status-ok\", batteryOkay);\n      teamBatteryElement.text(dsConn.BatteryVoltage.toFixed(1) + \"V\");\n\n      const btuOkay = wifiStatus.MBits < highBtuThreshold && dsConn.RobotLinked;\n      teamStatsElement.attr(\"data-status-ok\", btuOkay);\n      if (wifiStatus.MBits >= 0.01) {\n        teamBandwidthElement.text(wifiStatus.MBits.toFixed(2));\n        teamTripTimeElement.text(dsConn.DsRobotTripTimeMs);\n        teamMissedPacketsElement.text(dsConn.MissedPacketCount);\n      } else {\n        teamBandwidthElement.text(\"-\");\n        teamTripTimeElement.text(\"-\");\n        teamMissedPacketsElement.text(\"-\");\n      }\n    } else {\n      teamDsElement.attr(\"data-status-ok\", \"\");\n      teamDsElement.text(\"DS\");\n      teamRobotElement.attr(\"data-status-ok\", \"\");\n      teamRobotElement.text(\"RIO\");\n      teamBatteryElement.text(\"0.0V\");\n      teamBandwidthElement.text(\"-\");\n      teamTripTimeElement.text(\"-\");\n      teamMissedPacketsElement.text(\"-\");\n\n      // Format the robot status box according to whether the AP is configured with the correct SSID.\n      const expectedTeamId = stationStatus.Team ? stationStatus.Team.Id : 0;\n      if (wifiStatus.TeamId === expectedTeamId) {\n        if (wifiStatus.RadioLinked) {\n          teamRadioElement.attr(\"data-status-ok\", true);\n        } else {\n          teamRadioElement.attr(\"data-status-ok\", \"\");\n        }\n      } else {\n        teamRadioElement.attr(\"data-status-ok\", false);\n      }\n    }\n\n    if (stationStatus.EStop) {\n      teamBypassElement.attr(\"data-status-ok\", false);\n      teamBypassElement.text(\"E-STP\");\n    } else if (stationStatus.AStop) {\n      teamBypassElement.attr(\"data-status-ok\", true);\n      teamBypassElement.text(\"A-STP\");\n    } else if (stationStatus.Bypass) {\n      teamBypassElement.attr(\"data-status-ok\", false);\n      teamBypassElement.text(\"BYP\");\n    } else {\n      teamBypassElement.attr(\"data-status-ok\", true);\n      teamBypassElement.text(\"\");\n    }\n  });\n};\n\n// Handles a websocket message to update the match time countdown.\nconst handleMatchTime = function (data) {\n  translateMatchTime(data, function (matchState, matchStateText, countdownSec) {\n    $(\"#matchState\").text(matchStateText);\n    $(\"#matchTime\").text(countdownSec);\n    if (matchStateText === \"PRE-MATCH\" || matchStateText === \"POST-MATCH\") {\n      $(\".ds-dependent\").attr(\"data-preMatch\", \"true\");\n    } else {\n      $(\".ds-dependent\").attr(\"data-preMatch\", \"false\");\n    }\n  });\n};\n\n// Handles a websocket message to update the match score.\nconst handleRealtimeScore = function (data, reversed) {\n\n  if (reversed === \"true\") {\n    $(\"#rightScore\").text(data.Red.ScoreSummary.Score);\n    $(\"#leftScore\").text(data.Blue.ScoreSummary.Score);\n  } else {\n    $(\"#rightScore\").text(data.Blue.ScoreSummary.Score);\n    $(\"#leftScore\").text(data.Red.ScoreSummary.Score);\n\n  }\n};\n\n// Handles a websocket message to update current match\nconst handleMatchLoad = function (data) {\n  $(\"#matchName\").text(data.Match.LongName);\n};\n\n// Handles a websocket message to update the event status message.\nconst handleEventStatus = function (data) {\n  if (data.CycleTime === \"\") {\n    $(\"#cycleTimeMessage\").text(\"Last cycle time: Unknown\");\n  } else {\n    $(\"#cycleTimeMessage\").text(\"Last cycle time: \" + data.CycleTime);\n  }\n  $(\"#earlyLateMessage\").text(data.EarlyLateMessage);\n};\n\n// Makes the team notes section editable and handles saving edits to the server.\nconst editFtaNotes = function (element) {\n  const teamNotesTextElement = $(element);\n  const textArea = $(\"<textarea />\");\n  textArea.val(teamNotesTextElement.text());\n  teamNotesTextElement.replaceWith(textArea);\n  textArea.focus();\n  textArea.blur(function () {\n    textArea.replaceWith(teamNotesTextElement);\n    if (textArea.val() !== teamNotesTextElement.text()) {\n      websocket.send(\"updateTeamNotes\", {station: teamNotesTextElement.attr(\"data-station\"), notes: textArea.val()});\n    }\n  });\n};\n\n$(function () {\n  // Read the configuration for this display from the URL query string.\n  const urlParams = new URLSearchParams(window.location.search);\n  const reversed = urlParams.get(\"reversed\");\n  if (reversed === \"true\") {\n    redSide = \"right\";\n    blueSide = \"left\";\n  } else {\n    redSide = \"left\";\n    blueSide = \"right\";\n  }\n\n  //Read if display to be used in a Driver Station, ignore FTA flag if so.\n  const driverStation = urlParams.get(\"ds\");\n  if (driverStation === \"true\") {\n    $(\".fta-dependent\").attr(\"data-fta\", \"false\");\n    $(\".ds-dependent\").attr(\"data-ds\", driverStation);\n  } else {\n    $(\".fta-dependent\").attr(\"data-fta\", urlParams.get(\"fta\"));\n    $(\".ds-dependent\").attr(\"data-ds\", driverStation);\n  }\n\n  $(\".reversible-left\").attr(\"data-reversed\", reversed);\n  $(\".reversible-right\").attr(\"data-reversed\", reversed);\n\n\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/displays/field_monitor/websocket\", {\n    arenaStatus: function (event) {\n      handleArenaStatus(event.data);\n    },\n    eventStatus: function (event) {\n      handleEventStatus(event.data);\n    },\n    matchLoad: function (event) {\n      handleMatchLoad(event.data);\n    },\n    matchTiming: function (event) {\n      handleMatchTiming(event.data);\n    },\n    matchTime: function (event) {\n      handleMatchTime(event.data);\n    },\n    realtimeScore: function (event) {\n      handleRealtimeScore(event.data, reversed);\n    },\n  });\n});\n"
  },
  {
    "path": "static/js/lib/handlebars-1.3.0.js",
    "content": "/*!\n\n handlebars v1.3.0\n\nCopyright (C) 2011 by Yehuda Katz\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n@license\n*/\n/* exported Handlebars */\nvar Handlebars = (function() {\n// handlebars/safe-string.js\nvar __module4__ = (function() {\n  \"use strict\";\n  var __exports__;\n  // Build out our basic SafeString type\n  function SafeString(string) {\n    this.string = string;\n  }\n\n  SafeString.prototype.toString = function() {\n    return \"\" + this.string;\n  };\n\n  __exports__ = SafeString;\n  return __exports__;\n})();\n\n// handlebars/utils.js\nvar __module3__ = (function(__dependency1__) {\n  \"use strict\";\n  var __exports__ = {};\n  /*jshint -W004 */\n  var SafeString = __dependency1__;\n\n  var escape = {\n    \"&\": \"&amp;\",\n    \"<\": \"&lt;\",\n    \">\": \"&gt;\",\n    '\"': \"&quot;\",\n    \"'\": \"&#x27;\",\n    \"`\": \"&#x60;\"\n  };\n\n  var badChars = /[&<>\"'`]/g;\n  var possible = /[&<>\"'`]/;\n\n  function escapeChar(chr) {\n    return escape[chr] || \"&amp;\";\n  }\n\n  function extend(obj, value) {\n    for(var key in value) {\n      if(Object.prototype.hasOwnProperty.call(value, key)) {\n        obj[key] = value[key];\n      }\n    }\n  }\n\n  __exports__.extend = extend;var toString = Object.prototype.toString;\n  __exports__.toString = toString;\n  // Sourced from lodash\n  // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n  var isFunction = function(value) {\n    return typeof value === 'function';\n  };\n  // fallback for older versions of Chrome and Safari\n  if (isFunction(/x/)) {\n    isFunction = function(value) {\n      return typeof value === 'function' && toString.call(value) === '[object Function]';\n    };\n  }\n  var isFunction;\n  __exports__.isFunction = isFunction;\n  var isArray = Array.isArray || function(value) {\n    return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false;\n  };\n  __exports__.isArray = isArray;\n\n  function escapeExpression(string) {\n    // don't escape SafeStrings, since they're already safe\n    if (string instanceof SafeString) {\n      return string.toString();\n    } else if (!string && string !== 0) {\n      return \"\";\n    }\n\n    // Force a string conversion as this will be done by the append regardless and\n    // the regex test will do this transparently behind the scenes, causing issues if\n    // an object's to string has escaped characters in it.\n    string = \"\" + string;\n\n    if(!possible.test(string)) { return string; }\n    return string.replace(badChars, escapeChar);\n  }\n\n  __exports__.escapeExpression = escapeExpression;function isEmpty(value) {\n    if (!value && value !== 0) {\n      return true;\n    } else if (isArray(value) && value.length === 0) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  __exports__.isEmpty = isEmpty;\n  return __exports__;\n})(__module4__);\n\n// handlebars/exception.js\nvar __module5__ = (function() {\n  \"use strict\";\n  var __exports__;\n\n  var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];\n\n  function Exception(message, node) {\n    var line;\n    if (node && node.firstLine) {\n      line = node.firstLine;\n\n      message += ' - ' + line + ':' + node.firstColumn;\n    }\n\n    var tmp = Error.prototype.constructor.call(this, message);\n\n    // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n    for (var idx = 0; idx < errorProps.length; idx++) {\n      this[errorProps[idx]] = tmp[errorProps[idx]];\n    }\n\n    if (line) {\n      this.lineNumber = line;\n      this.column = node.firstColumn;\n    }\n  }\n\n  Exception.prototype = new Error();\n\n  __exports__ = Exception;\n  return __exports__;\n})();\n\n// handlebars/base.js\nvar __module2__ = (function(__dependency1__, __dependency2__) {\n  \"use strict\";\n  var __exports__ = {};\n  var Utils = __dependency1__;\n  var Exception = __dependency2__;\n\n  var VERSION = \"1.3.0\";\n  __exports__.VERSION = VERSION;var COMPILER_REVISION = 4;\n  __exports__.COMPILER_REVISION = COMPILER_REVISION;\n  var REVISION_CHANGES = {\n    1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n    2: '== 1.0.0-rc.3',\n    3: '== 1.0.0-rc.4',\n    4: '>= 1.0.0'\n  };\n  __exports__.REVISION_CHANGES = REVISION_CHANGES;\n  var isArray = Utils.isArray,\n      isFunction = Utils.isFunction,\n      toString = Utils.toString,\n      objectType = '[object Object]';\n\n  function HandlebarsEnvironment(helpers, partials) {\n    this.helpers = helpers || {};\n    this.partials = partials || {};\n\n    registerDefaultHelpers(this);\n  }\n\n  __exports__.HandlebarsEnvironment = HandlebarsEnvironment;HandlebarsEnvironment.prototype = {\n    constructor: HandlebarsEnvironment,\n\n    logger: logger,\n    log: log,\n\n    registerHelper: function(name, fn, inverse) {\n      if (toString.call(name) === objectType) {\n        if (inverse || fn) { throw new Exception('Arg not supported with multiple helpers'); }\n        Utils.extend(this.helpers, name);\n      } else {\n        if (inverse) { fn.not = inverse; }\n        this.helpers[name] = fn;\n      }\n    },\n\n    registerPartial: function(name, str) {\n      if (toString.call(name) === objectType) {\n        Utils.extend(this.partials,  name);\n      } else {\n        this.partials[name] = str;\n      }\n    }\n  };\n\n  function registerDefaultHelpers(instance) {\n    instance.registerHelper('helperMissing', function(arg) {\n      if(arguments.length === 2) {\n        return undefined;\n      } else {\n        throw new Exception(\"Missing helper: '\" + arg + \"'\");\n      }\n    });\n\n    instance.registerHelper('blockHelperMissing', function(context, options) {\n      var inverse = options.inverse || function() {}, fn = options.fn;\n\n      if (isFunction(context)) { context = context.call(this); }\n\n      if(context === true) {\n        return fn(this);\n      } else if(context === false || context == null) {\n        return inverse(this);\n      } else if (isArray(context)) {\n        if(context.length > 0) {\n          return instance.helpers.each(context, options);\n        } else {\n          return inverse(this);\n        }\n      } else {\n        return fn(context);\n      }\n    });\n\n    instance.registerHelper('each', function(context, options) {\n      var fn = options.fn, inverse = options.inverse;\n      var i = 0, ret = \"\", data;\n\n      if (isFunction(context)) { context = context.call(this); }\n\n      if (options.data) {\n        data = createFrame(options.data);\n      }\n\n      if(context && typeof context === 'object') {\n        if (isArray(context)) {\n          for(var j = context.length; i<j; i++) {\n            if (data) {\n              data.index = i;\n              data.first = (i === 0);\n              data.last  = (i === (context.length-1));\n            }\n            ret = ret + fn(context[i], { data: data });\n          }\n        } else {\n          for(var key in context) {\n            if(context.hasOwnProperty(key)) {\n              if(data) { \n                data.key = key; \n                data.index = i;\n                data.first = (i === 0);\n              }\n              ret = ret + fn(context[key], {data: data});\n              i++;\n            }\n          }\n        }\n      }\n\n      if(i === 0){\n        ret = inverse(this);\n      }\n\n      return ret;\n    });\n\n    instance.registerHelper('if', function(conditional, options) {\n      if (isFunction(conditional)) { conditional = conditional.call(this); }\n\n      // Default behavior is to render the positive path if the value is truthy and not empty.\n      // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n      // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n      if ((!options.hash.includeZero && !conditional) || Utils.isEmpty(conditional)) {\n        return options.inverse(this);\n      } else {\n        return options.fn(this);\n      }\n    });\n\n    instance.registerHelper('unless', function(conditional, options) {\n      return instance.helpers['if'].call(this, conditional, {fn: options.inverse, inverse: options.fn, hash: options.hash});\n    });\n\n    instance.registerHelper('with', function(context, options) {\n      if (isFunction(context)) { context = context.call(this); }\n\n      if (!Utils.isEmpty(context)) return options.fn(context);\n    });\n\n    instance.registerHelper('log', function(context, options) {\n      var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1;\n      instance.log(level, context);\n    });\n  }\n\n  var logger = {\n    methodMap: { 0: 'debug', 1: 'info', 2: 'warn', 3: 'error' },\n\n    // State enum\n    DEBUG: 0,\n    INFO: 1,\n    WARN: 2,\n    ERROR: 3,\n    level: 3,\n\n    // can be overridden in the host environment\n    log: function(level, obj) {\n      if (logger.level <= level) {\n        var method = logger.methodMap[level];\n        if (typeof console !== 'undefined' && console[method]) {\n          console[method].call(console, obj);\n        }\n      }\n    }\n  };\n  __exports__.logger = logger;\n  function log(level, obj) { logger.log(level, obj); }\n\n  __exports__.log = log;var createFrame = function(object) {\n    var obj = {};\n    Utils.extend(obj, object);\n    return obj;\n  };\n  __exports__.createFrame = createFrame;\n  return __exports__;\n})(__module3__, __module5__);\n\n// handlebars/runtime.js\nvar __module6__ = (function(__dependency1__, __dependency2__, __dependency3__) {\n  \"use strict\";\n  var __exports__ = {};\n  var Utils = __dependency1__;\n  var Exception = __dependency2__;\n  var COMPILER_REVISION = __dependency3__.COMPILER_REVISION;\n  var REVISION_CHANGES = __dependency3__.REVISION_CHANGES;\n\n  function checkRevision(compilerInfo) {\n    var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n        currentRevision = COMPILER_REVISION;\n\n    if (compilerRevision !== currentRevision) {\n      if (compilerRevision < currentRevision) {\n        var runtimeVersions = REVISION_CHANGES[currentRevision],\n            compilerVersions = REVISION_CHANGES[compilerRevision];\n        throw new Exception(\"Template was precompiled with an older version of Handlebars than the current runtime. \"+\n              \"Please update your precompiler to a newer version (\"+runtimeVersions+\") or downgrade your runtime to an older version (\"+compilerVersions+\").\");\n      } else {\n        // Use the embedded version info since the runtime doesn't know about this revision yet\n        throw new Exception(\"Template was precompiled with a newer version of Handlebars than the current runtime. \"+\n              \"Please update your runtime to a newer version (\"+compilerInfo[1]+\").\");\n      }\n    }\n  }\n\n  __exports__.checkRevision = checkRevision;// TODO: Remove this line and break up compilePartial\n\n  function template(templateSpec, env) {\n    if (!env) {\n      throw new Exception(\"No environment passed to template\");\n    }\n\n    // Note: Using env.VM references rather than local var references throughout this section to allow\n    // for external users to override these as psuedo-supported APIs.\n    var invokePartialWrapper = function(partial, name, context, helpers, partials, data) {\n      var result = env.VM.invokePartial.apply(this, arguments);\n      if (result != null) { return result; }\n\n      if (env.compile) {\n        var options = { helpers: helpers, partials: partials, data: data };\n        partials[name] = env.compile(partial, { data: data !== undefined }, env);\n        return partials[name](context, options);\n      } else {\n        throw new Exception(\"The partial \" + name + \" could not be compiled when running in runtime-only mode\");\n      }\n    };\n\n    // Just add water\n    var container = {\n      escapeExpression: Utils.escapeExpression,\n      invokePartial: invokePartialWrapper,\n      programs: [],\n      program: function(i, fn, data) {\n        var programWrapper = this.programs[i];\n        if(data) {\n          programWrapper = program(i, fn, data);\n        } else if (!programWrapper) {\n          programWrapper = this.programs[i] = program(i, fn);\n        }\n        return programWrapper;\n      },\n      merge: function(param, common) {\n        var ret = param || common;\n\n        if (param && common && (param !== common)) {\n          ret = {};\n          Utils.extend(ret, common);\n          Utils.extend(ret, param);\n        }\n        return ret;\n      },\n      programWithDepth: env.VM.programWithDepth,\n      noop: env.VM.noop,\n      compilerInfo: null\n    };\n\n    return function(context, options) {\n      options = options || {};\n      var namespace = options.partial ? options : env,\n          helpers,\n          partials;\n\n      if (!options.partial) {\n        helpers = options.helpers;\n        partials = options.partials;\n      }\n      var result = templateSpec.call(\n            container,\n            namespace, context,\n            helpers,\n            partials,\n            options.data);\n\n      if (!options.partial) {\n        env.VM.checkRevision(container.compilerInfo);\n      }\n\n      return result;\n    };\n  }\n\n  __exports__.template = template;function programWithDepth(i, fn, data /*, $depth */) {\n    var args = Array.prototype.slice.call(arguments, 3);\n\n    var prog = function(context, options) {\n      options = options || {};\n\n      return fn.apply(this, [context, options.data || data].concat(args));\n    };\n    prog.program = i;\n    prog.depth = args.length;\n    return prog;\n  }\n\n  __exports__.programWithDepth = programWithDepth;function program(i, fn, data) {\n    var prog = function(context, options) {\n      options = options || {};\n\n      return fn(context, options.data || data);\n    };\n    prog.program = i;\n    prog.depth = 0;\n    return prog;\n  }\n\n  __exports__.program = program;function invokePartial(partial, name, context, helpers, partials, data) {\n    var options = { partial: true, helpers: helpers, partials: partials, data: data };\n\n    if(partial === undefined) {\n      throw new Exception(\"The partial \" + name + \" could not be found\");\n    } else if(partial instanceof Function) {\n      return partial(context, options);\n    }\n  }\n\n  __exports__.invokePartial = invokePartial;function noop() { return \"\"; }\n\n  __exports__.noop = noop;\n  return __exports__;\n})(__module3__, __module5__, __module2__);\n\n// handlebars.runtime.js\nvar __module1__ = (function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__) {\n  \"use strict\";\n  var __exports__;\n  /*globals Handlebars: true */\n  var base = __dependency1__;\n\n  // Each of these augment the Handlebars object. No need to setup here.\n  // (This is done to easily share code between commonjs and browse envs)\n  var SafeString = __dependency2__;\n  var Exception = __dependency3__;\n  var Utils = __dependency4__;\n  var runtime = __dependency5__;\n\n  // For compatibility and usage outside of module systems, make the Handlebars object a namespace\n  var create = function() {\n    var hb = new base.HandlebarsEnvironment();\n\n    Utils.extend(hb, base);\n    hb.SafeString = SafeString;\n    hb.Exception = Exception;\n    hb.Utils = Utils;\n\n    hb.VM = runtime;\n    hb.template = function(spec) {\n      return runtime.template(spec, hb);\n    };\n\n    return hb;\n  };\n\n  var Handlebars = create();\n  Handlebars.create = create;\n\n  __exports__ = Handlebars;\n  return __exports__;\n})(__module2__, __module4__, __module5__, __module3__, __module6__);\n\n// handlebars/compiler/ast.js\nvar __module7__ = (function(__dependency1__) {\n  \"use strict\";\n  var __exports__;\n  var Exception = __dependency1__;\n\n  function LocationInfo(locInfo){\n    locInfo = locInfo || {};\n    this.firstLine   = locInfo.first_line;\n    this.firstColumn = locInfo.first_column;\n    this.lastColumn  = locInfo.last_column;\n    this.lastLine    = locInfo.last_line;\n  }\n\n  var AST = {\n    ProgramNode: function(statements, inverseStrip, inverse, locInfo) {\n      var inverseLocationInfo, firstInverseNode;\n      if (arguments.length === 3) {\n        locInfo = inverse;\n        inverse = null;\n      } else if (arguments.length === 2) {\n        locInfo = inverseStrip;\n        inverseStrip = null;\n      }\n\n      LocationInfo.call(this, locInfo);\n      this.type = \"program\";\n      this.statements = statements;\n      this.strip = {};\n\n      if(inverse) {\n        firstInverseNode = inverse[0];\n        if (firstInverseNode) {\n          inverseLocationInfo = {\n            first_line: firstInverseNode.firstLine,\n            last_line: firstInverseNode.lastLine,\n            last_column: firstInverseNode.lastColumn,\n            first_column: firstInverseNode.firstColumn\n          };\n          this.inverse = new AST.ProgramNode(inverse, inverseStrip, inverseLocationInfo);\n        } else {\n          this.inverse = new AST.ProgramNode(inverse, inverseStrip);\n        }\n        this.strip.right = inverseStrip.left;\n      } else if (inverseStrip) {\n        this.strip.left = inverseStrip.right;\n      }\n    },\n\n    MustacheNode: function(rawParams, hash, open, strip, locInfo) {\n      LocationInfo.call(this, locInfo);\n      this.type = \"mustache\";\n      this.strip = strip;\n\n      // Open may be a string parsed from the parser or a passed boolean flag\n      if (open != null && open.charAt) {\n        // Must use charAt to support IE pre-10\n        var escapeFlag = open.charAt(3) || open.charAt(2);\n        this.escaped = escapeFlag !== '{' && escapeFlag !== '&';\n      } else {\n        this.escaped = !!open;\n      }\n\n      if (rawParams instanceof AST.SexprNode) {\n        this.sexpr = rawParams;\n      } else {\n        // Support old AST API\n        this.sexpr = new AST.SexprNode(rawParams, hash);\n      }\n\n      this.sexpr.isRoot = true;\n\n      // Support old AST API that stored this info in MustacheNode\n      this.id = this.sexpr.id;\n      this.params = this.sexpr.params;\n      this.hash = this.sexpr.hash;\n      this.eligibleHelper = this.sexpr.eligibleHelper;\n      this.isHelper = this.sexpr.isHelper;\n    },\n\n    SexprNode: function(rawParams, hash, locInfo) {\n      LocationInfo.call(this, locInfo);\n\n      this.type = \"sexpr\";\n      this.hash = hash;\n\n      var id = this.id = rawParams[0];\n      var params = this.params = rawParams.slice(1);\n\n      // a mustache is an eligible helper if:\n      // * its id is simple (a single part, not `this` or `..`)\n      var eligibleHelper = this.eligibleHelper = id.isSimple;\n\n      // a mustache is definitely a helper if:\n      // * it is an eligible helper, and\n      // * it has at least one parameter or hash segment\n      this.isHelper = eligibleHelper && (params.length || hash);\n\n      // if a mustache is an eligible helper but not a definite\n      // helper, it is ambiguous, and will be resolved in a later\n      // pass or at runtime.\n    },\n\n    PartialNode: function(partialName, context, strip, locInfo) {\n      LocationInfo.call(this, locInfo);\n      this.type         = \"partial\";\n      this.partialName  = partialName;\n      this.context      = context;\n      this.strip = strip;\n    },\n\n    BlockNode: function(mustache, program, inverse, close, locInfo) {\n      LocationInfo.call(this, locInfo);\n\n      if(mustache.sexpr.id.original !== close.path.original) {\n        throw new Exception(mustache.sexpr.id.original + \" doesn't match \" + close.path.original, this);\n      }\n\n      this.type = 'block';\n      this.mustache = mustache;\n      this.program  = program;\n      this.inverse  = inverse;\n\n      this.strip = {\n        left: mustache.strip.left,\n        right: close.strip.right\n      };\n\n      (program || inverse).strip.left = mustache.strip.right;\n      (inverse || program).strip.right = close.strip.left;\n\n      if (inverse && !program) {\n        this.isInverse = true;\n      }\n    },\n\n    ContentNode: function(string, locInfo) {\n      LocationInfo.call(this, locInfo);\n      this.type = \"content\";\n      this.string = string;\n    },\n\n    HashNode: function(pairs, locInfo) {\n      LocationInfo.call(this, locInfo);\n      this.type = \"hash\";\n      this.pairs = pairs;\n    },\n\n    IdNode: function(parts, locInfo) {\n      LocationInfo.call(this, locInfo);\n      this.type = \"ID\";\n\n      var original = \"\",\n          dig = [],\n          depth = 0;\n\n      for(var i=0,l=parts.length; i<l; i++) {\n        var part = parts[i].part;\n        original += (parts[i].separator || '') + part;\n\n        if (part === \"..\" || part === \".\" || part === \"this\") {\n          if (dig.length > 0) {\n            throw new Exception(\"Invalid path: \" + original, this);\n          } else if (part === \"..\") {\n            depth++;\n          } else {\n            this.isScoped = true;\n          }\n        } else {\n          dig.push(part);\n        }\n      }\n\n      this.original = original;\n      this.parts    = dig;\n      this.string   = dig.join('.');\n      this.depth    = depth;\n\n      // an ID is simple if it only has one part, and that part is not\n      // `..` or `this`.\n      this.isSimple = parts.length === 1 && !this.isScoped && depth === 0;\n\n      this.stringModeValue = this.string;\n    },\n\n    PartialNameNode: function(name, locInfo) {\n      LocationInfo.call(this, locInfo);\n      this.type = \"PARTIAL_NAME\";\n      this.name = name.original;\n    },\n\n    DataNode: function(id, locInfo) {\n      LocationInfo.call(this, locInfo);\n      this.type = \"DATA\";\n      this.id = id;\n    },\n\n    StringNode: function(string, locInfo) {\n      LocationInfo.call(this, locInfo);\n      this.type = \"STRING\";\n      this.original =\n        this.string =\n        this.stringModeValue = string;\n    },\n\n    IntegerNode: function(integer, locInfo) {\n      LocationInfo.call(this, locInfo);\n      this.type = \"INTEGER\";\n      this.original =\n        this.integer = integer;\n      this.stringModeValue = Number(integer);\n    },\n\n    BooleanNode: function(bool, locInfo) {\n      LocationInfo.call(this, locInfo);\n      this.type = \"BOOLEAN\";\n      this.bool = bool;\n      this.stringModeValue = bool === \"true\";\n    },\n\n    CommentNode: function(comment, locInfo) {\n      LocationInfo.call(this, locInfo);\n      this.type = \"comment\";\n      this.comment = comment;\n    }\n  };\n\n  // Must be exported as an object rather than the root of the module as the jison lexer\n  // most modify the object to operate properly.\n  __exports__ = AST;\n  return __exports__;\n})(__module5__);\n\n// handlebars/compiler/parser.js\nvar __module9__ = (function() {\n  \"use strict\";\n  var __exports__;\n  /* jshint ignore:start */\n  /* Jison generated parser */\n  var handlebars = (function(){\n  var parser = {trace: function trace() { },\n  yy: {},\n  symbols_: {\"error\":2,\"root\":3,\"statements\":4,\"EOF\":5,\"program\":6,\"simpleInverse\":7,\"statement\":8,\"openInverse\":9,\"closeBlock\":10,\"openBlock\":11,\"mustache\":12,\"partial\":13,\"CONTENT\":14,\"COMMENT\":15,\"OPEN_BLOCK\":16,\"sexpr\":17,\"CLOSE\":18,\"OPEN_INVERSE\":19,\"OPEN_ENDBLOCK\":20,\"path\":21,\"OPEN\":22,\"OPEN_UNESCAPED\":23,\"CLOSE_UNESCAPED\":24,\"OPEN_PARTIAL\":25,\"partialName\":26,\"partial_option0\":27,\"sexpr_repetition0\":28,\"sexpr_option0\":29,\"dataName\":30,\"param\":31,\"STRING\":32,\"INTEGER\":33,\"BOOLEAN\":34,\"OPEN_SEXPR\":35,\"CLOSE_SEXPR\":36,\"hash\":37,\"hash_repetition_plus0\":38,\"hashSegment\":39,\"ID\":40,\"EQUALS\":41,\"DATA\":42,\"pathSegments\":43,\"SEP\":44,\"$accept\":0,\"$end\":1},\n  terminals_: {2:\"error\",5:\"EOF\",14:\"CONTENT\",15:\"COMMENT\",16:\"OPEN_BLOCK\",18:\"CLOSE\",19:\"OPEN_INVERSE\",20:\"OPEN_ENDBLOCK\",22:\"OPEN\",23:\"OPEN_UNESCAPED\",24:\"CLOSE_UNESCAPED\",25:\"OPEN_PARTIAL\",32:\"STRING\",33:\"INTEGER\",34:\"BOOLEAN\",35:\"OPEN_SEXPR\",36:\"CLOSE_SEXPR\",40:\"ID\",41:\"EQUALS\",42:\"DATA\",44:\"SEP\"},\n  productions_: [0,[3,2],[3,1],[6,2],[6,3],[6,2],[6,1],[6,1],[6,0],[4,1],[4,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,4],[7,2],[17,3],[17,1],[31,1],[31,1],[31,1],[31,1],[31,1],[31,3],[37,1],[39,3],[26,1],[26,1],[26,1],[30,2],[21,1],[43,3],[43,1],[27,0],[27,1],[28,0],[28,2],[29,0],[29,1],[38,1],[38,2]],\n  performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {\n\n  var $0 = $$.length - 1;\n  switch (yystate) {\n  case 1: return new yy.ProgramNode($$[$0-1], this._$); \n  break;\n  case 2: return new yy.ProgramNode([], this._$); \n  break;\n  case 3:this.$ = new yy.ProgramNode([], $$[$0-1], $$[$0], this._$);\n  break;\n  case 4:this.$ = new yy.ProgramNode($$[$0-2], $$[$0-1], $$[$0], this._$);\n  break;\n  case 5:this.$ = new yy.ProgramNode($$[$0-1], $$[$0], [], this._$);\n  break;\n  case 6:this.$ = new yy.ProgramNode($$[$0], this._$);\n  break;\n  case 7:this.$ = new yy.ProgramNode([], this._$);\n  break;\n  case 8:this.$ = new yy.ProgramNode([], this._$);\n  break;\n  case 9:this.$ = [$$[$0]];\n  break;\n  case 10: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; \n  break;\n  case 11:this.$ = new yy.BlockNode($$[$0-2], $$[$0-1].inverse, $$[$0-1], $$[$0], this._$);\n  break;\n  case 12:this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0-1].inverse, $$[$0], this._$);\n  break;\n  case 13:this.$ = $$[$0];\n  break;\n  case 14:this.$ = $$[$0];\n  break;\n  case 15:this.$ = new yy.ContentNode($$[$0], this._$);\n  break;\n  case 16:this.$ = new yy.CommentNode($$[$0], this._$);\n  break;\n  case 17:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], stripFlags($$[$0-2], $$[$0]), this._$);\n  break;\n  case 18:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], stripFlags($$[$0-2], $$[$0]), this._$);\n  break;\n  case 19:this.$ = {path: $$[$0-1], strip: stripFlags($$[$0-2], $$[$0])};\n  break;\n  case 20:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], stripFlags($$[$0-2], $$[$0]), this._$);\n  break;\n  case 21:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], stripFlags($$[$0-2], $$[$0]), this._$);\n  break;\n  case 22:this.$ = new yy.PartialNode($$[$0-2], $$[$0-1], stripFlags($$[$0-3], $$[$0]), this._$);\n  break;\n  case 23:this.$ = stripFlags($$[$0-1], $$[$0]);\n  break;\n  case 24:this.$ = new yy.SexprNode([$$[$0-2]].concat($$[$0-1]), $$[$0], this._$);\n  break;\n  case 25:this.$ = new yy.SexprNode([$$[$0]], null, this._$);\n  break;\n  case 26:this.$ = $$[$0];\n  break;\n  case 27:this.$ = new yy.StringNode($$[$0], this._$);\n  break;\n  case 28:this.$ = new yy.IntegerNode($$[$0], this._$);\n  break;\n  case 29:this.$ = new yy.BooleanNode($$[$0], this._$);\n  break;\n  case 30:this.$ = $$[$0];\n  break;\n  case 31:$$[$0-1].isHelper = true; this.$ = $$[$0-1];\n  break;\n  case 32:this.$ = new yy.HashNode($$[$0], this._$);\n  break;\n  case 33:this.$ = [$$[$0-2], $$[$0]];\n  break;\n  case 34:this.$ = new yy.PartialNameNode($$[$0], this._$);\n  break;\n  case 35:this.$ = new yy.PartialNameNode(new yy.StringNode($$[$0], this._$), this._$);\n  break;\n  case 36:this.$ = new yy.PartialNameNode(new yy.IntegerNode($$[$0], this._$));\n  break;\n  case 37:this.$ = new yy.DataNode($$[$0], this._$);\n  break;\n  case 38:this.$ = new yy.IdNode($$[$0], this._$);\n  break;\n  case 39: $$[$0-2].push({part: $$[$0], separator: $$[$0-1]}); this.$ = $$[$0-2]; \n  break;\n  case 40:this.$ = [{part: $$[$0]}];\n  break;\n  case 43:this.$ = [];\n  break;\n  case 44:$$[$0-1].push($$[$0]);\n  break;\n  case 47:this.$ = [$$[$0]];\n  break;\n  case 48:$$[$0-1].push($$[$0]);\n  break;\n  }\n  },\n  table: [{3:1,4:2,5:[1,3],8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],25:[1,15]},{1:[3]},{5:[1,16],8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],25:[1,15]},{1:[2,2]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],25:[2,9]},{4:20,6:18,7:19,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,21],20:[2,8],22:[1,13],23:[1,14],25:[1,15]},{4:20,6:22,7:19,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,21],20:[2,8],22:[1,13],23:[1,14],25:[1,15]},{5:[2,13],14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],25:[2,13]},{5:[2,14],14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],25:[2,14]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],25:[2,15]},{5:[2,16],14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],25:[2,16]},{17:23,21:24,30:25,40:[1,28],42:[1,27],43:26},{17:29,21:24,30:25,40:[1,28],42:[1,27],43:26},{17:30,21:24,30:25,40:[1,28],42:[1,27],43:26},{17:31,21:24,30:25,40:[1,28],42:[1,27],43:26},{21:33,26:32,32:[1,34],33:[1,35],40:[1,28],43:26},{1:[2,1]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],25:[2,10]},{10:36,20:[1,37]},{4:38,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,7],22:[1,13],23:[1,14],25:[1,15]},{7:39,8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,21],20:[2,6],22:[1,13],23:[1,14],25:[1,15]},{17:23,18:[1,40],21:24,30:25,40:[1,28],42:[1,27],43:26},{10:41,20:[1,37]},{18:[1,42]},{18:[2,43],24:[2,43],28:43,32:[2,43],33:[2,43],34:[2,43],35:[2,43],36:[2,43],40:[2,43],42:[2,43]},{18:[2,25],24:[2,25],36:[2,25]},{18:[2,38],24:[2,38],32:[2,38],33:[2,38],34:[2,38],35:[2,38],36:[2,38],40:[2,38],42:[2,38],44:[1,44]},{21:45,40:[1,28],43:26},{18:[2,40],24:[2,40],32:[2,40],33:[2,40],34:[2,40],35:[2,40],36:[2,40],40:[2,40],42:[2,40],44:[2,40]},{18:[1,46]},{18:[1,47]},{24:[1,48]},{18:[2,41],21:50,27:49,40:[1,28],43:26},{18:[2,34],40:[2,34]},{18:[2,35],40:[2,35]},{18:[2,36],40:[2,36]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],25:[2,11]},{21:51,40:[1,28],43:26},{8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,3],22:[1,13],23:[1,14],25:[1,15]},{4:52,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,5],22:[1,13],23:[1,14],25:[1,15]},{14:[2,23],15:[2,23],16:[2,23],19:[2,23],20:[2,23],22:[2,23],23:[2,23],25:[2,23]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],25:[2,12]},{14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],25:[2,18]},{18:[2,45],21:56,24:[2,45],29:53,30:60,31:54,32:[1,57],33:[1,58],34:[1,59],35:[1,61],36:[2,45],37:55,38:62,39:63,40:[1,64],42:[1,27],43:26},{40:[1,65]},{18:[2,37],24:[2,37],32:[2,37],33:[2,37],34:[2,37],35:[2,37],36:[2,37],40:[2,37],42:[2,37]},{14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],25:[2,17]},{5:[2,20],14:[2,20],15:[2,20],16:[2,20],19:[2,20],20:[2,20],22:[2,20],23:[2,20],25:[2,20]},{5:[2,21],14:[2,21],15:[2,21],16:[2,21],19:[2,21],20:[2,21],22:[2,21],23:[2,21],25:[2,21]},{18:[1,66]},{18:[2,42]},{18:[1,67]},{8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],25:[1,15]},{18:[2,24],24:[2,24],36:[2,24]},{18:[2,44],24:[2,44],32:[2,44],33:[2,44],34:[2,44],35:[2,44],36:[2,44],40:[2,44],42:[2,44]},{18:[2,46],24:[2,46],36:[2,46]},{18:[2,26],24:[2,26],32:[2,26],33:[2,26],34:[2,26],35:[2,26],36:[2,26],40:[2,26],42:[2,26]},{18:[2,27],24:[2,27],32:[2,27],33:[2,27],34:[2,27],35:[2,27],36:[2,27],40:[2,27],42:[2,27]},{18:[2,28],24:[2,28],32:[2,28],33:[2,28],34:[2,28],35:[2,28],36:[2,28],40:[2,28],42:[2,28]},{18:[2,29],24:[2,29],32:[2,29],33:[2,29],34:[2,29],35:[2,29],36:[2,29],40:[2,29],42:[2,29]},{18:[2,30],24:[2,30],32:[2,30],33:[2,30],34:[2,30],35:[2,30],36:[2,30],40:[2,30],42:[2,30]},{17:68,21:24,30:25,40:[1,28],42:[1,27],43:26},{18:[2,32],24:[2,32],36:[2,32],39:69,40:[1,70]},{18:[2,47],24:[2,47],36:[2,47],40:[2,47]},{18:[2,40],24:[2,40],32:[2,40],33:[2,40],34:[2,40],35:[2,40],36:[2,40],40:[2,40],41:[1,71],42:[2,40],44:[2,40]},{18:[2,39],24:[2,39],32:[2,39],33:[2,39],34:[2,39],35:[2,39],36:[2,39],40:[2,39],42:[2,39],44:[2,39]},{5:[2,22],14:[2,22],15:[2,22],16:[2,22],19:[2,22],20:[2,22],22:[2,22],23:[2,22],25:[2,22]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],25:[2,19]},{36:[1,72]},{18:[2,48],24:[2,48],36:[2,48],40:[2,48]},{41:[1,71]},{21:56,30:60,31:73,32:[1,57],33:[1,58],34:[1,59],35:[1,61],40:[1,28],42:[1,27],43:26},{18:[2,31],24:[2,31],32:[2,31],33:[2,31],34:[2,31],35:[2,31],36:[2,31],40:[2,31],42:[2,31]},{18:[2,33],24:[2,33],36:[2,33],40:[2,33]}],\n  defaultActions: {3:[2,2],16:[2,1],50:[2,42]},\n  parseError: function parseError(str, hash) {\n      throw new Error(str);\n  },\n  parse: function parse(input) {\n      var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n      this.lexer.setInput(input);\n      this.lexer.yy = this.yy;\n      this.yy.lexer = this.lexer;\n      this.yy.parser = this;\n      if (typeof this.lexer.yylloc == \"undefined\")\n          this.lexer.yylloc = {};\n      var yyloc = this.lexer.yylloc;\n      lstack.push(yyloc);\n      var ranges = this.lexer.options && this.lexer.options.ranges;\n      if (typeof this.yy.parseError === \"function\")\n          this.parseError = this.yy.parseError;\n      function popStack(n) {\n          stack.length = stack.length - 2 * n;\n          vstack.length = vstack.length - n;\n          lstack.length = lstack.length - n;\n      }\n      function lex() {\n          var token;\n          token = self.lexer.lex() || 1;\n          if (typeof token !== \"number\") {\n              token = self.symbols_[token] || token;\n          }\n          return token;\n      }\n      var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n      while (true) {\n          state = stack[stack.length - 1];\n          if (this.defaultActions[state]) {\n              action = this.defaultActions[state];\n          } else {\n              if (symbol === null || typeof symbol == \"undefined\") {\n                  symbol = lex();\n              }\n              action = table[state] && table[state][symbol];\n          }\n          if (typeof action === \"undefined\" || !action.length || !action[0]) {\n              var errStr = \"\";\n              if (!recovering) {\n                  expected = [];\n                  for (p in table[state])\n                      if (this.terminals_[p] && p > 2) {\n                          expected.push(\"'\" + this.terminals_[p] + \"'\");\n                      }\n                  if (this.lexer.showPosition) {\n                      errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + this.lexer.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n                  } else {\n                      errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == 1?\"end of input\":\"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n                  }\n                  this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});\n              }\n          }\n          if (action[0] instanceof Array && action.length > 1) {\n              throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n          }\n          switch (action[0]) {\n          case 1:\n              stack.push(symbol);\n              vstack.push(this.lexer.yytext);\n              lstack.push(this.lexer.yylloc);\n              stack.push(action[1]);\n              symbol = null;\n              if (!preErrorSymbol) {\n                  yyleng = this.lexer.yyleng;\n                  yytext = this.lexer.yytext;\n                  yylineno = this.lexer.yylineno;\n                  yyloc = this.lexer.yylloc;\n                  if (recovering > 0)\n                      recovering--;\n              } else {\n                  symbol = preErrorSymbol;\n                  preErrorSymbol = null;\n              }\n              break;\n          case 2:\n              len = this.productions_[action[1]][1];\n              yyval.$ = vstack[vstack.length - len];\n              yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column};\n              if (ranges) {\n                  yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];\n              }\n              r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);\n              if (typeof r !== \"undefined\") {\n                  return r;\n              }\n              if (len) {\n                  stack = stack.slice(0, -1 * len * 2);\n                  vstack = vstack.slice(0, -1 * len);\n                  lstack = lstack.slice(0, -1 * len);\n              }\n              stack.push(this.productions_[action[1]][0]);\n              vstack.push(yyval.$);\n              lstack.push(yyval._$);\n              newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n              stack.push(newState);\n              break;\n          case 3:\n              return true;\n          }\n      }\n      return true;\n  }\n  };\n\n\n  function stripFlags(open, close) {\n    return {\n      left: open.charAt(2) === '~',\n      right: close.charAt(0) === '~' || close.charAt(1) === '~'\n    };\n  }\n\n  /* Jison generated lexer */\n  var lexer = (function(){\n  var lexer = ({EOF:1,\n  parseError:function parseError(str, hash) {\n          if (this.yy.parser) {\n              this.yy.parser.parseError(str, hash);\n          } else {\n              throw new Error(str);\n          }\n      },\n  setInput:function (input) {\n          this._input = input;\n          this._more = this._less = this.done = false;\n          this.yylineno = this.yyleng = 0;\n          this.yytext = this.matched = this.match = '';\n          this.conditionStack = ['INITIAL'];\n          this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};\n          if (this.options.ranges) this.yylloc.range = [0,0];\n          this.offset = 0;\n          return this;\n      },\n  input:function () {\n          var ch = this._input[0];\n          this.yytext += ch;\n          this.yyleng++;\n          this.offset++;\n          this.match += ch;\n          this.matched += ch;\n          var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n          if (lines) {\n              this.yylineno++;\n              this.yylloc.last_line++;\n          } else {\n              this.yylloc.last_column++;\n          }\n          if (this.options.ranges) this.yylloc.range[1]++;\n\n          this._input = this._input.slice(1);\n          return ch;\n      },\n  unput:function (ch) {\n          var len = ch.length;\n          var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n          this._input = ch + this._input;\n          this.yytext = this.yytext.substr(0, this.yytext.length-len-1);\n          //this.yyleng -= len;\n          this.offset -= len;\n          var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n          this.match = this.match.substr(0, this.match.length-1);\n          this.matched = this.matched.substr(0, this.matched.length-1);\n\n          if (lines.length-1) this.yylineno -= lines.length-1;\n          var r = this.yylloc.range;\n\n          this.yylloc = {first_line: this.yylloc.first_line,\n            last_line: this.yylineno+1,\n            first_column: this.yylloc.first_column,\n            last_column: lines ?\n                (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length:\n                this.yylloc.first_column - len\n            };\n\n          if (this.options.ranges) {\n              this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n          }\n          return this;\n      },\n  more:function () {\n          this._more = true;\n          return this;\n      },\n  less:function (n) {\n          this.unput(this.match.slice(n));\n      },\n  pastInput:function () {\n          var past = this.matched.substr(0, this.matched.length - this.match.length);\n          return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n      },\n  upcomingInput:function () {\n          var next = this.match;\n          if (next.length < 20) {\n              next += this._input.substr(0, 20-next.length);\n          }\n          return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\\n/g, \"\");\n      },\n  showPosition:function () {\n          var pre = this.pastInput();\n          var c = new Array(pre.length + 1).join(\"-\");\n          return pre + this.upcomingInput() + \"\\n\" + c+\"^\";\n      },\n  next:function () {\n          if (this.done) {\n              return this.EOF;\n          }\n          if (!this._input) this.done = true;\n\n          var token,\n              match,\n              tempMatch,\n              index,\n              col,\n              lines;\n          if (!this._more) {\n              this.yytext = '';\n              this.match = '';\n          }\n          var rules = this._currentRules();\n          for (var i=0;i < rules.length; i++) {\n              tempMatch = this._input.match(this.rules[rules[i]]);\n              if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n                  match = tempMatch;\n                  index = i;\n                  if (!this.options.flex) break;\n              }\n          }\n          if (match) {\n              lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n              if (lines) this.yylineno += lines.length;\n              this.yylloc = {first_line: this.yylloc.last_line,\n                             last_line: this.yylineno+1,\n                             first_column: this.yylloc.last_column,\n                             last_column: lines ? lines[lines.length-1].length-lines[lines.length-1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length};\n              this.yytext += match[0];\n              this.match += match[0];\n              this.matches = match;\n              this.yyleng = this.yytext.length;\n              if (this.options.ranges) {\n                  this.yylloc.range = [this.offset, this.offset += this.yyleng];\n              }\n              this._more = false;\n              this._input = this._input.slice(match[0].length);\n              this.matched += match[0];\n              token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);\n              if (this.done && this._input) this.done = false;\n              if (token) return token;\n              else return;\n          }\n          if (this._input === \"\") {\n              return this.EOF;\n          } else {\n              return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\\n'+this.showPosition(),\n                      {text: \"\", token: null, line: this.yylineno});\n          }\n      },\n  lex:function lex() {\n          var r = this.next();\n          if (typeof r !== 'undefined') {\n              return r;\n          } else {\n              return this.lex();\n          }\n      },\n  begin:function begin(condition) {\n          this.conditionStack.push(condition);\n      },\n  popState:function popState() {\n          return this.conditionStack.pop();\n      },\n  _currentRules:function _currentRules() {\n          return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;\n      },\n  topState:function () {\n          return this.conditionStack[this.conditionStack.length-2];\n      },\n  pushState:function begin(condition) {\n          this.begin(condition);\n      }});\n  lexer.options = {};\n  lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\n\n\n  function strip(start, end) {\n    return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng-end);\n  }\n\n\n  var YYSTATE=YY_START\n  switch($avoiding_name_collisions) {\n  case 0:\n                                     if(yy_.yytext.slice(-2) === \"\\\\\\\\\") {\n                                       strip(0,1);\n                                       this.begin(\"mu\");\n                                     } else if(yy_.yytext.slice(-1) === \"\\\\\") {\n                                       strip(0,1);\n                                       this.begin(\"emu\");\n                                     } else {\n                                       this.begin(\"mu\");\n                                     }\n                                     if(yy_.yytext) return 14;\n                                   \n  break;\n  case 1:return 14;\n  break;\n  case 2:\n                                     this.popState();\n                                     return 14;\n                                   \n  break;\n  case 3:strip(0,4); this.popState(); return 15;\n  break;\n  case 4:return 35;\n  break;\n  case 5:return 36;\n  break;\n  case 6:return 25;\n  break;\n  case 7:return 16;\n  break;\n  case 8:return 20;\n  break;\n  case 9:return 19;\n  break;\n  case 10:return 19;\n  break;\n  case 11:return 23;\n  break;\n  case 12:return 22;\n  break;\n  case 13:this.popState(); this.begin('com');\n  break;\n  case 14:strip(3,5); this.popState(); return 15;\n  break;\n  case 15:return 22;\n  break;\n  case 16:return 41;\n  break;\n  case 17:return 40;\n  break;\n  case 18:return 40;\n  break;\n  case 19:return 44;\n  break;\n  case 20:// ignore whitespace\n  break;\n  case 21:this.popState(); return 24;\n  break;\n  case 22:this.popState(); return 18;\n  break;\n  case 23:yy_.yytext = strip(1,2).replace(/\\\\\"/g,'\"'); return 32;\n  break;\n  case 24:yy_.yytext = strip(1,2).replace(/\\\\'/g,\"'\"); return 32;\n  break;\n  case 25:return 42;\n  break;\n  case 26:return 34;\n  break;\n  case 27:return 34;\n  break;\n  case 28:return 33;\n  break;\n  case 29:return 40;\n  break;\n  case 30:yy_.yytext = strip(1,2); return 40;\n  break;\n  case 31:return 'INVALID';\n  break;\n  case 32:return 5;\n  break;\n  }\n  };\n  lexer.rules = [/^(?:[^\\x00]*?(?=(\\{\\{)))/,/^(?:[^\\x00]+)/,/^(?:[^\\x00]{2,}?(?=(\\{\\{|\\\\\\{\\{|\\\\\\\\\\{\\{|$)))/,/^(?:[\\s\\S]*?--\\}\\})/,/^(?:\\()/,/^(?:\\))/,/^(?:\\{\\{(~)?>)/,/^(?:\\{\\{(~)?#)/,/^(?:\\{\\{(~)?\\/)/,/^(?:\\{\\{(~)?\\^)/,/^(?:\\{\\{(~)?\\s*else\\b)/,/^(?:\\{\\{(~)?\\{)/,/^(?:\\{\\{(~)?&)/,/^(?:\\{\\{!--)/,/^(?:\\{\\{![\\s\\S]*?\\}\\})/,/^(?:\\{\\{(~)?)/,/^(?:=)/,/^(?:\\.\\.)/,/^(?:\\.(?=([=~}\\s\\/.)])))/,/^(?:[\\/.])/,/^(?:\\s+)/,/^(?:\\}(~)?\\}\\})/,/^(?:(~)?\\}\\})/,/^(?:\"(\\\\[\"]|[^\"])*\")/,/^(?:'(\\\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\\s)])))/,/^(?:false(?=([~}\\s)])))/,/^(?:-?[0-9]+(?=([~}\\s)])))/,/^(?:([^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=([=~}\\s\\/.)]))))/,/^(?:\\[[^\\]]*\\])/,/^(?:.)/,/^(?:$)/];\n  lexer.conditions = {\"mu\":{\"rules\":[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32],\"inclusive\":false},\"emu\":{\"rules\":[2],\"inclusive\":false},\"com\":{\"rules\":[3],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,1,32],\"inclusive\":true}};\n  return lexer;})()\n  parser.lexer = lexer;\n  function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;\n  return new Parser;\n  })();__exports__ = handlebars;\n  /* jshint ignore:end */\n  return __exports__;\n})();\n\n// handlebars/compiler/base.js\nvar __module8__ = (function(__dependency1__, __dependency2__) {\n  \"use strict\";\n  var __exports__ = {};\n  var parser = __dependency1__;\n  var AST = __dependency2__;\n\n  __exports__.parser = parser;\n\n  function parse(input) {\n    // Just return if an already-compile AST was passed in.\n    if(input.constructor === AST.ProgramNode) { return input; }\n\n    parser.yy = AST;\n    return parser.parse(input);\n  }\n\n  __exports__.parse = parse;\n  return __exports__;\n})(__module9__, __module7__);\n\n// handlebars/compiler/compiler.js\nvar __module10__ = (function(__dependency1__) {\n  \"use strict\";\n  var __exports__ = {};\n  var Exception = __dependency1__;\n\n  function Compiler() {}\n\n  __exports__.Compiler = Compiler;// the foundHelper register will disambiguate helper lookup from finding a\n  // function in a context. This is necessary for mustache compatibility, which\n  // requires that context functions in blocks are evaluated by blockHelperMissing,\n  // and then proceed as if the resulting value was provided to blockHelperMissing.\n\n  Compiler.prototype = {\n    compiler: Compiler,\n\n    disassemble: function() {\n      var opcodes = this.opcodes, opcode, out = [], params, param;\n\n      for (var i=0, l=opcodes.length; i<l; i++) {\n        opcode = opcodes[i];\n\n        if (opcode.opcode === 'DECLARE') {\n          out.push(\"DECLARE \" + opcode.name + \"=\" + opcode.value);\n        } else {\n          params = [];\n          for (var j=0; j<opcode.args.length; j++) {\n            param = opcode.args[j];\n            if (typeof param === \"string\") {\n              param = \"\\\"\" + param.replace(\"\\n\", \"\\\\n\") + \"\\\"\";\n            }\n            params.push(param);\n          }\n          out.push(opcode.opcode + \" \" + params.join(\" \"));\n        }\n      }\n\n      return out.join(\"\\n\");\n    },\n\n    equals: function(other) {\n      var len = this.opcodes.length;\n      if (other.opcodes.length !== len) {\n        return false;\n      }\n\n      for (var i = 0; i < len; i++) {\n        var opcode = this.opcodes[i],\n            otherOpcode = other.opcodes[i];\n        if (opcode.opcode !== otherOpcode.opcode || opcode.args.length !== otherOpcode.args.length) {\n          return false;\n        }\n        for (var j = 0; j < opcode.args.length; j++) {\n          if (opcode.args[j] !== otherOpcode.args[j]) {\n            return false;\n          }\n        }\n      }\n\n      len = this.children.length;\n      if (other.children.length !== len) {\n        return false;\n      }\n      for (i = 0; i < len; i++) {\n        if (!this.children[i].equals(other.children[i])) {\n          return false;\n        }\n      }\n\n      return true;\n    },\n\n    guid: 0,\n\n    compile: function(program, options) {\n      this.opcodes = [];\n      this.children = [];\n      this.depths = {list: []};\n      this.options = options;\n\n      // These changes will propagate to the other compiler components\n      var knownHelpers = this.options.knownHelpers;\n      this.options.knownHelpers = {\n        'helperMissing': true,\n        'blockHelperMissing': true,\n        'each': true,\n        'if': true,\n        'unless': true,\n        'with': true,\n        'log': true\n      };\n      if (knownHelpers) {\n        for (var name in knownHelpers) {\n          this.options.knownHelpers[name] = knownHelpers[name];\n        }\n      }\n\n      return this.accept(program);\n    },\n\n    accept: function(node) {\n      var strip = node.strip || {},\n          ret;\n      if (strip.left) {\n        this.opcode('strip');\n      }\n\n      ret = this[node.type](node);\n\n      if (strip.right) {\n        this.opcode('strip');\n      }\n\n      return ret;\n    },\n\n    program: function(program) {\n      var statements = program.statements;\n\n      for(var i=0, l=statements.length; i<l; i++) {\n        this.accept(statements[i]);\n      }\n      this.isSimple = l === 1;\n\n      this.depths.list = this.depths.list.sort(function(a, b) {\n        return a - b;\n      });\n\n      return this;\n    },\n\n    compileProgram: function(program) {\n      var result = new this.compiler().compile(program, this.options);\n      var guid = this.guid++, depth;\n\n      this.usePartial = this.usePartial || result.usePartial;\n\n      this.children[guid] = result;\n\n      for(var i=0, l=result.depths.list.length; i<l; i++) {\n        depth = result.depths.list[i];\n\n        if(depth < 2) { continue; }\n        else { this.addDepth(depth - 1); }\n      }\n\n      return guid;\n    },\n\n    block: function(block) {\n      var mustache = block.mustache,\n          program = block.program,\n          inverse = block.inverse;\n\n      if (program) {\n        program = this.compileProgram(program);\n      }\n\n      if (inverse) {\n        inverse = this.compileProgram(inverse);\n      }\n\n      var sexpr = mustache.sexpr;\n      var type = this.classifySexpr(sexpr);\n\n      if (type === \"helper\") {\n        this.helperSexpr(sexpr, program, inverse);\n      } else if (type === \"simple\") {\n        this.simpleSexpr(sexpr);\n\n        // now that the simple mustache is resolved, we need to\n        // evaluate it by executing `blockHelperMissing`\n        this.opcode('pushProgram', program);\n        this.opcode('pushProgram', inverse);\n        this.opcode('emptyHash');\n        this.opcode('blockValue');\n      } else {\n        this.ambiguousSexpr(sexpr, program, inverse);\n\n        // now that the simple mustache is resolved, we need to\n        // evaluate it by executing `blockHelperMissing`\n        this.opcode('pushProgram', program);\n        this.opcode('pushProgram', inverse);\n        this.opcode('emptyHash');\n        this.opcode('ambiguousBlockValue');\n      }\n\n      this.opcode('append');\n    },\n\n    hash: function(hash) {\n      var pairs = hash.pairs, pair, val;\n\n      this.opcode('pushHash');\n\n      for(var i=0, l=pairs.length; i<l; i++) {\n        pair = pairs[i];\n        val  = pair[1];\n\n        if (this.options.stringParams) {\n          if(val.depth) {\n            this.addDepth(val.depth);\n          }\n          this.opcode('getContext', val.depth || 0);\n          this.opcode('pushStringParam', val.stringModeValue, val.type);\n\n          if (val.type === 'sexpr') {\n            // Subexpressions get evaluated and passed in\n            // in string params mode.\n            this.sexpr(val);\n          }\n        } else {\n          this.accept(val);\n        }\n\n        this.opcode('assignToHash', pair[0]);\n      }\n      this.opcode('popHash');\n    },\n\n    partial: function(partial) {\n      var partialName = partial.partialName;\n      this.usePartial = true;\n\n      if(partial.context) {\n        this.ID(partial.context);\n      } else {\n        this.opcode('push', 'depth0');\n      }\n\n      this.opcode('invokePartial', partialName.name);\n      this.opcode('append');\n    },\n\n    content: function(content) {\n      this.opcode('appendContent', content.string);\n    },\n\n    mustache: function(mustache) {\n      this.sexpr(mustache.sexpr);\n\n      if(mustache.escaped && !this.options.noEscape) {\n        this.opcode('appendEscaped');\n      } else {\n        this.opcode('append');\n      }\n    },\n\n    ambiguousSexpr: function(sexpr, program, inverse) {\n      var id = sexpr.id,\n          name = id.parts[0],\n          isBlock = program != null || inverse != null;\n\n      this.opcode('getContext', id.depth);\n\n      this.opcode('pushProgram', program);\n      this.opcode('pushProgram', inverse);\n\n      this.opcode('invokeAmbiguous', name, isBlock);\n    },\n\n    simpleSexpr: function(sexpr) {\n      var id = sexpr.id;\n\n      if (id.type === 'DATA') {\n        this.DATA(id);\n      } else if (id.parts.length) {\n        this.ID(id);\n      } else {\n        // Simplified ID for `this`\n        this.addDepth(id.depth);\n        this.opcode('getContext', id.depth);\n        this.opcode('pushContext');\n      }\n\n      this.opcode('resolvePossibleLambda');\n    },\n\n    helperSexpr: function(sexpr, program, inverse) {\n      var params = this.setupFullMustacheParams(sexpr, program, inverse),\n          name = sexpr.id.parts[0];\n\n      if (this.options.knownHelpers[name]) {\n        this.opcode('invokeKnownHelper', params.length, name);\n      } else if (this.options.knownHelpersOnly) {\n        throw new Exception(\"You specified knownHelpersOnly, but used the unknown helper \" + name, sexpr);\n      } else {\n        this.opcode('invokeHelper', params.length, name, sexpr.isRoot);\n      }\n    },\n\n    sexpr: function(sexpr) {\n      var type = this.classifySexpr(sexpr);\n\n      if (type === \"simple\") {\n        this.simpleSexpr(sexpr);\n      } else if (type === \"helper\") {\n        this.helperSexpr(sexpr);\n      } else {\n        this.ambiguousSexpr(sexpr);\n      }\n    },\n\n    ID: function(id) {\n      this.addDepth(id.depth);\n      this.opcode('getContext', id.depth);\n\n      var name = id.parts[0];\n      if (!name) {\n        this.opcode('pushContext');\n      } else {\n        this.opcode('lookupOnContext', id.parts[0]);\n      }\n\n      for(var i=1, l=id.parts.length; i<l; i++) {\n        this.opcode('lookup', id.parts[i]);\n      }\n    },\n\n    DATA: function(data) {\n      this.options.data = true;\n      if (data.id.isScoped || data.id.depth) {\n        throw new Exception('Scoped data references are not supported: ' + data.original, data);\n      }\n\n      this.opcode('lookupData');\n      var parts = data.id.parts;\n      for(var i=0, l=parts.length; i<l; i++) {\n        this.opcode('lookup', parts[i]);\n      }\n    },\n\n    STRING: function(string) {\n      this.opcode('pushString', string.string);\n    },\n\n    INTEGER: function(integer) {\n      this.opcode('pushLiteral', integer.integer);\n    },\n\n    BOOLEAN: function(bool) {\n      this.opcode('pushLiteral', bool.bool);\n    },\n\n    comment: function() {},\n\n    // HELPERS\n    opcode: function(name) {\n      this.opcodes.push({ opcode: name, args: [].slice.call(arguments, 1) });\n    },\n\n    declare: function(name, value) {\n      this.opcodes.push({ opcode: 'DECLARE', name: name, value: value });\n    },\n\n    addDepth: function(depth) {\n      if(depth === 0) { return; }\n\n      if(!this.depths[depth]) {\n        this.depths[depth] = true;\n        this.depths.list.push(depth);\n      }\n    },\n\n    classifySexpr: function(sexpr) {\n      var isHelper   = sexpr.isHelper;\n      var isEligible = sexpr.eligibleHelper;\n      var options    = this.options;\n\n      // if ambiguous, we can possibly resolve the ambiguity now\n      if (isEligible && !isHelper) {\n        var name = sexpr.id.parts[0];\n\n        if (options.knownHelpers[name]) {\n          isHelper = true;\n        } else if (options.knownHelpersOnly) {\n          isEligible = false;\n        }\n      }\n\n      if (isHelper) { return \"helper\"; }\n      else if (isEligible) { return \"ambiguous\"; }\n      else { return \"simple\"; }\n    },\n\n    pushParams: function(params) {\n      var i = params.length, param;\n\n      while(i--) {\n        param = params[i];\n\n        if(this.options.stringParams) {\n          if(param.depth) {\n            this.addDepth(param.depth);\n          }\n\n          this.opcode('getContext', param.depth || 0);\n          this.opcode('pushStringParam', param.stringModeValue, param.type);\n\n          if (param.type === 'sexpr') {\n            // Subexpressions get evaluated and passed in\n            // in string params mode.\n            this.sexpr(param);\n          }\n        } else {\n          this[param.type](param);\n        }\n      }\n    },\n\n    setupFullMustacheParams: function(sexpr, program, inverse) {\n      var params = sexpr.params;\n      this.pushParams(params);\n\n      this.opcode('pushProgram', program);\n      this.opcode('pushProgram', inverse);\n\n      if (sexpr.hash) {\n        this.hash(sexpr.hash);\n      } else {\n        this.opcode('emptyHash');\n      }\n\n      return params;\n    }\n  };\n\n  function precompile(input, options, env) {\n    if (input == null || (typeof input !== 'string' && input.constructor !== env.AST.ProgramNode)) {\n      throw new Exception(\"You must pass a string or Handlebars AST to Handlebars.precompile. You passed \" + input);\n    }\n\n    options = options || {};\n    if (!('data' in options)) {\n      options.data = true;\n    }\n\n    var ast = env.parse(input);\n    var environment = new env.Compiler().compile(ast, options);\n    return new env.JavaScriptCompiler().compile(environment, options);\n  }\n\n  __exports__.precompile = precompile;function compile(input, options, env) {\n    if (input == null || (typeof input !== 'string' && input.constructor !== env.AST.ProgramNode)) {\n      throw new Exception(\"You must pass a string or Handlebars AST to Handlebars.compile. You passed \" + input);\n    }\n\n    options = options || {};\n\n    if (!('data' in options)) {\n      options.data = true;\n    }\n\n    var compiled;\n\n    function compileInput() {\n      var ast = env.parse(input);\n      var environment = new env.Compiler().compile(ast, options);\n      var templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true);\n      return env.template(templateSpec);\n    }\n\n    // Template is only compiled on first use and cached after that point.\n    return function(context, options) {\n      if (!compiled) {\n        compiled = compileInput();\n      }\n      return compiled.call(this, context, options);\n    };\n  }\n\n  __exports__.compile = compile;\n  return __exports__;\n})(__module5__);\n\n// handlebars/compiler/javascript-compiler.js\nvar __module11__ = (function(__dependency1__, __dependency2__) {\n  \"use strict\";\n  var __exports__;\n  var COMPILER_REVISION = __dependency1__.COMPILER_REVISION;\n  var REVISION_CHANGES = __dependency1__.REVISION_CHANGES;\n  var log = __dependency1__.log;\n  var Exception = __dependency2__;\n\n  function Literal(value) {\n    this.value = value;\n  }\n\n  function JavaScriptCompiler() {}\n\n  JavaScriptCompiler.prototype = {\n    // PUBLIC API: You can override these methods in a subclass to provide\n    // alternative compiled forms for name lookup and buffering semantics\n    nameLookup: function(parent, name /* , type*/) {\n      var wrap,\n          ret;\n      if (parent.indexOf('depth') === 0) {\n        wrap = true;\n      }\n\n      if (/^[0-9]+$/.test(name)) {\n        ret = parent + \"[\" + name + \"]\";\n      } else if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {\n        ret = parent + \".\" + name;\n      }\n      else {\n        ret = parent + \"['\" + name + \"']\";\n      }\n\n      if (wrap) {\n        return '(' + parent + ' && ' + ret + ')';\n      } else {\n        return ret;\n      }\n    },\n\n    compilerInfo: function() {\n      var revision = COMPILER_REVISION,\n          versions = REVISION_CHANGES[revision];\n      return \"this.compilerInfo = [\"+revision+\",'\"+versions+\"'];\\n\";\n    },\n\n    appendToBuffer: function(string) {\n      if (this.environment.isSimple) {\n        return \"return \" + string + \";\";\n      } else {\n        return {\n          appendToBuffer: true,\n          content: string,\n          toString: function() { return \"buffer += \" + string + \";\"; }\n        };\n      }\n    },\n\n    initializeBuffer: function() {\n      return this.quotedString(\"\");\n    },\n\n    namespace: \"Handlebars\",\n    // END PUBLIC API\n\n    compile: function(environment, options, context, asObject) {\n      this.environment = environment;\n      this.options = options || {};\n\n      log('debug', this.environment.disassemble() + \"\\n\\n\");\n\n      this.name = this.environment.name;\n      this.isChild = !!context;\n      this.context = context || {\n        programs: [],\n        environments: [],\n        aliases: { }\n      };\n\n      this.preamble();\n\n      this.stackSlot = 0;\n      this.stackVars = [];\n      this.registers = { list: [] };\n      this.hashes = [];\n      this.compileStack = [];\n      this.inlineStack = [];\n\n      this.compileChildren(environment, options);\n\n      var opcodes = environment.opcodes, opcode;\n\n      this.i = 0;\n\n      for(var l=opcodes.length; this.i<l; this.i++) {\n        opcode = opcodes[this.i];\n\n        if(opcode.opcode === 'DECLARE') {\n          this[opcode.name] = opcode.value;\n        } else {\n          this[opcode.opcode].apply(this, opcode.args);\n        }\n\n        // Reset the stripNext flag if it was not set by this operation.\n        if (opcode.opcode !== this.stripNext) {\n          this.stripNext = false;\n        }\n      }\n\n      // Flush any trailing content that might be pending.\n      this.pushSource('');\n\n      if (this.stackSlot || this.inlineStack.length || this.compileStack.length) {\n        throw new Exception('Compile completed with content left on stack');\n      }\n\n      return this.createFunctionContext(asObject);\n    },\n\n    preamble: function() {\n      var out = [];\n\n      if (!this.isChild) {\n        var namespace = this.namespace;\n\n        var copies = \"helpers = this.merge(helpers, \" + namespace + \".helpers);\";\n        if (this.environment.usePartial) { copies = copies + \" partials = this.merge(partials, \" + namespace + \".partials);\"; }\n        if (this.options.data) { copies = copies + \" data = data || {};\"; }\n        out.push(copies);\n      } else {\n        out.push('');\n      }\n\n      if (!this.environment.isSimple) {\n        out.push(\", buffer = \" + this.initializeBuffer());\n      } else {\n        out.push(\"\");\n      }\n\n      // track the last context pushed into place to allow skipping the\n      // getContext opcode when it would be a noop\n      this.lastContext = 0;\n      this.source = out;\n    },\n\n    createFunctionContext: function(asObject) {\n      var locals = this.stackVars.concat(this.registers.list);\n\n      if(locals.length > 0) {\n        this.source[1] = this.source[1] + \", \" + locals.join(\", \");\n      }\n\n      // Generate minimizer alias mappings\n      if (!this.isChild) {\n        for (var alias in this.context.aliases) {\n          if (this.context.aliases.hasOwnProperty(alias)) {\n            this.source[1] = this.source[1] + ', ' + alias + '=' + this.context.aliases[alias];\n          }\n        }\n      }\n\n      if (this.source[1]) {\n        this.source[1] = \"var \" + this.source[1].substring(2) + \";\";\n      }\n\n      // Merge children\n      if (!this.isChild) {\n        this.source[1] += '\\n' + this.context.programs.join('\\n') + '\\n';\n      }\n\n      if (!this.environment.isSimple) {\n        this.pushSource(\"return buffer;\");\n      }\n\n      var params = this.isChild ? [\"depth0\", \"data\"] : [\"Handlebars\", \"depth0\", \"helpers\", \"partials\", \"data\"];\n\n      for(var i=0, l=this.environment.depths.list.length; i<l; i++) {\n        params.push(\"depth\" + this.environment.depths.list[i]);\n      }\n\n      // Perform a second pass over the output to merge content when possible\n      var source = this.mergeSource();\n\n      if (!this.isChild) {\n        source = this.compilerInfo()+source;\n      }\n\n      if (asObject) {\n        params.push(source);\n\n        return Function.apply(this, params);\n      } else {\n        var functionSource = 'function ' + (this.name || '') + '(' + params.join(',') + ') {\\n  ' + source + '}';\n        log('debug', functionSource + \"\\n\\n\");\n        return functionSource;\n      }\n    },\n    mergeSource: function() {\n      // WARN: We are not handling the case where buffer is still populated as the source should\n      // not have buffer append operations as their final action.\n      var source = '',\n          buffer;\n      for (var i = 0, len = this.source.length; i < len; i++) {\n        var line = this.source[i];\n        if (line.appendToBuffer) {\n          if (buffer) {\n            buffer = buffer + '\\n    + ' + line.content;\n          } else {\n            buffer = line.content;\n          }\n        } else {\n          if (buffer) {\n            source += 'buffer += ' + buffer + ';\\n  ';\n            buffer = undefined;\n          }\n          source += line + '\\n  ';\n        }\n      }\n      return source;\n    },\n\n    // [blockValue]\n    //\n    // On stack, before: hash, inverse, program, value\n    // On stack, after: return value of blockHelperMissing\n    //\n    // The purpose of this opcode is to take a block of the form\n    // `{{#foo}}...{{/foo}}`, resolve the value of `foo`, and\n    // replace it on the stack with the result of properly\n    // invoking blockHelperMissing.\n    blockValue: function() {\n      this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';\n\n      var params = [\"depth0\"];\n      this.setupParams(0, params);\n\n      this.replaceStack(function(current) {\n        params.splice(1, 0, current);\n        return \"blockHelperMissing.call(\" + params.join(\", \") + \")\";\n      });\n    },\n\n    // [ambiguousBlockValue]\n    //\n    // On stack, before: hash, inverse, program, value\n    // Compiler value, before: lastHelper=value of last found helper, if any\n    // On stack, after, if no lastHelper: same as [blockValue]\n    // On stack, after, if lastHelper: value\n    ambiguousBlockValue: function() {\n      this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';\n\n      var params = [\"depth0\"];\n      this.setupParams(0, params);\n\n      var current = this.topStack();\n      params.splice(1, 0, current);\n\n      this.pushSource(\"if (!\" + this.lastHelper + \") { \" + current + \" = blockHelperMissing.call(\" + params.join(\", \") + \"); }\");\n    },\n\n    // [appendContent]\n    //\n    // On stack, before: ...\n    // On stack, after: ...\n    //\n    // Appends the string value of `content` to the current buffer\n    appendContent: function(content) {\n      if (this.pendingContent) {\n        content = this.pendingContent + content;\n      }\n      if (this.stripNext) {\n        content = content.replace(/^\\s+/, '');\n      }\n\n      this.pendingContent = content;\n    },\n\n    // [strip]\n    //\n    // On stack, before: ...\n    // On stack, after: ...\n    //\n    // Removes any trailing whitespace from the prior content node and flags\n    // the next operation for stripping if it is a content node.\n    strip: function() {\n      if (this.pendingContent) {\n        this.pendingContent = this.pendingContent.replace(/\\s+$/, '');\n      }\n      this.stripNext = 'strip';\n    },\n\n    // [append]\n    //\n    // On stack, before: value, ...\n    // On stack, after: ...\n    //\n    // Coerces `value` to a String and appends it to the current buffer.\n    //\n    // If `value` is truthy, or 0, it is coerced into a string and appended\n    // Otherwise, the empty string is appended\n    append: function() {\n      // Force anything that is inlined onto the stack so we don't have duplication\n      // when we examine local\n      this.flushInline();\n      var local = this.popStack();\n      this.pushSource(\"if(\" + local + \" || \" + local + \" === 0) { \" + this.appendToBuffer(local) + \" }\");\n      if (this.environment.isSimple) {\n        this.pushSource(\"else { \" + this.appendToBuffer(\"''\") + \" }\");\n      }\n    },\n\n    // [appendEscaped]\n    //\n    // On stack, before: value, ...\n    // On stack, after: ...\n    //\n    // Escape `value` and append it to the buffer\n    appendEscaped: function() {\n      this.context.aliases.escapeExpression = 'this.escapeExpression';\n\n      this.pushSource(this.appendToBuffer(\"escapeExpression(\" + this.popStack() + \")\"));\n    },\n\n    // [getContext]\n    //\n    // On stack, before: ...\n    // On stack, after: ...\n    // Compiler value, after: lastContext=depth\n    //\n    // Set the value of the `lastContext` compiler value to the depth\n    getContext: function(depth) {\n      if(this.lastContext !== depth) {\n        this.lastContext = depth;\n      }\n    },\n\n    // [lookupOnContext]\n    //\n    // On stack, before: ...\n    // On stack, after: currentContext[name], ...\n    //\n    // Looks up the value of `name` on the current context and pushes\n    // it onto the stack.\n    lookupOnContext: function(name) {\n      this.push(this.nameLookup('depth' + this.lastContext, name, 'context'));\n    },\n\n    // [pushContext]\n    //\n    // On stack, before: ...\n    // On stack, after: currentContext, ...\n    //\n    // Pushes the value of the current context onto the stack.\n    pushContext: function() {\n      this.pushStackLiteral('depth' + this.lastContext);\n    },\n\n    // [resolvePossibleLambda]\n    //\n    // On stack, before: value, ...\n    // On stack, after: resolved value, ...\n    //\n    // If the `value` is a lambda, replace it on the stack by\n    // the return value of the lambda\n    resolvePossibleLambda: function() {\n      this.context.aliases.functionType = '\"function\"';\n\n      this.replaceStack(function(current) {\n        return \"typeof \" + current + \" === functionType ? \" + current + \".apply(depth0) : \" + current;\n      });\n    },\n\n    // [lookup]\n    //\n    // On stack, before: value, ...\n    // On stack, after: value[name], ...\n    //\n    // Replace the value on the stack with the result of looking\n    // up `name` on `value`\n    lookup: function(name) {\n      this.replaceStack(function(current) {\n        return current + \" == null || \" + current + \" === false ? \" + current + \" : \" + this.nameLookup(current, name, 'context');\n      });\n    },\n\n    // [lookupData]\n    //\n    // On stack, before: ...\n    // On stack, after: data, ...\n    //\n    // Push the data lookup operator\n    lookupData: function() {\n      this.pushStackLiteral('data');\n    },\n\n    // [pushStringParam]\n    //\n    // On stack, before: ...\n    // On stack, after: string, currentContext, ...\n    //\n    // This opcode is designed for use in string mode, which\n    // provides the string value of a parameter along with its\n    // depth rather than resolving it immediately.\n    pushStringParam: function(string, type) {\n      this.pushStackLiteral('depth' + this.lastContext);\n\n      this.pushString(type);\n\n      // If it's a subexpression, the string result\n      // will be pushed after this opcode.\n      if (type !== 'sexpr') {\n        if (typeof string === 'string') {\n          this.pushString(string);\n        } else {\n          this.pushStackLiteral(string);\n        }\n      }\n    },\n\n    emptyHash: function() {\n      this.pushStackLiteral('{}');\n\n      if (this.options.stringParams) {\n        this.push('{}'); // hashContexts\n        this.push('{}'); // hashTypes\n      }\n    },\n    pushHash: function() {\n      if (this.hash) {\n        this.hashes.push(this.hash);\n      }\n      this.hash = {values: [], types: [], contexts: []};\n    },\n    popHash: function() {\n      var hash = this.hash;\n      this.hash = this.hashes.pop();\n\n      if (this.options.stringParams) {\n        this.push('{' + hash.contexts.join(',') + '}');\n        this.push('{' + hash.types.join(',') + '}');\n      }\n\n      this.push('{\\n    ' + hash.values.join(',\\n    ') + '\\n  }');\n    },\n\n    // [pushString]\n    //\n    // On stack, before: ...\n    // On stack, after: quotedString(string), ...\n    //\n    // Push a quoted version of `string` onto the stack\n    pushString: function(string) {\n      this.pushStackLiteral(this.quotedString(string));\n    },\n\n    // [push]\n    //\n    // On stack, before: ...\n    // On stack, after: expr, ...\n    //\n    // Push an expression onto the stack\n    push: function(expr) {\n      this.inlineStack.push(expr);\n      return expr;\n    },\n\n    // [pushLiteral]\n    //\n    // On stack, before: ...\n    // On stack, after: value, ...\n    //\n    // Pushes a value onto the stack. This operation prevents\n    // the compiler from creating a temporary variable to hold\n    // it.\n    pushLiteral: function(value) {\n      this.pushStackLiteral(value);\n    },\n\n    // [pushProgram]\n    //\n    // On stack, before: ...\n    // On stack, after: program(guid), ...\n    //\n    // Push a program expression onto the stack. This takes\n    // a compile-time guid and converts it into a runtime-accessible\n    // expression.\n    pushProgram: function(guid) {\n      if (guid != null) {\n        this.pushStackLiteral(this.programExpression(guid));\n      } else {\n        this.pushStackLiteral(null);\n      }\n    },\n\n    // [invokeHelper]\n    //\n    // On stack, before: hash, inverse, program, params..., ...\n    // On stack, after: result of helper invocation\n    //\n    // Pops off the helper's parameters, invokes the helper,\n    // and pushes the helper's return value onto the stack.\n    //\n    // If the helper is not found, `helperMissing` is called.\n    invokeHelper: function(paramSize, name, isRoot) {\n      this.context.aliases.helperMissing = 'helpers.helperMissing';\n      this.useRegister('helper');\n\n      var helper = this.lastHelper = this.setupHelper(paramSize, name, true);\n      var nonHelper = this.nameLookup('depth' + this.lastContext, name, 'context');\n\n      var lookup = 'helper = ' + helper.name + ' || ' + nonHelper;\n      if (helper.paramsInit) {\n        lookup += ',' + helper.paramsInit;\n      }\n\n      this.push(\n        '('\n          + lookup\n          + ',helper '\n            + '? helper.call(' + helper.callParams + ') '\n            + ': helperMissing.call(' + helper.helperMissingParams + '))');\n\n      // Always flush subexpressions. This is both to prevent the compounding size issue that\n      // occurs when the code has to be duplicated for inlining and also to prevent errors\n      // due to the incorrect options object being passed due to the shared register.\n      if (!isRoot) {\n        this.flushInline();\n      }\n    },\n\n    // [invokeKnownHelper]\n    //\n    // On stack, before: hash, inverse, program, params..., ...\n    // On stack, after: result of helper invocation\n    //\n    // This operation is used when the helper is known to exist,\n    // so a `helperMissing` fallback is not required.\n    invokeKnownHelper: function(paramSize, name) {\n      var helper = this.setupHelper(paramSize, name);\n      this.push(helper.name + \".call(\" + helper.callParams + \")\");\n    },\n\n    // [invokeAmbiguous]\n    //\n    // On stack, before: hash, inverse, program, params..., ...\n    // On stack, after: result of disambiguation\n    //\n    // This operation is used when an expression like `{{foo}}`\n    // is provided, but we don't know at compile-time whether it\n    // is a helper or a path.\n    //\n    // This operation emits more code than the other options,\n    // and can be avoided by passing the `knownHelpers` and\n    // `knownHelpersOnly` flags at compile-time.\n    invokeAmbiguous: function(name, helperCall) {\n      this.context.aliases.functionType = '\"function\"';\n      this.useRegister('helper');\n\n      this.emptyHash();\n      var helper = this.setupHelper(0, name, helperCall);\n\n      var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');\n\n      var nonHelper = this.nameLookup('depth' + this.lastContext, name, 'context');\n      var nextStack = this.nextStack();\n\n      if (helper.paramsInit) {\n        this.pushSource(helper.paramsInit);\n      }\n      this.pushSource('if (helper = ' + helperName + ') { ' + nextStack + ' = helper.call(' + helper.callParams + '); }');\n      this.pushSource('else { helper = ' + nonHelper + '; ' + nextStack + ' = typeof helper === functionType ? helper.call(' + helper.callParams + ') : helper; }');\n    },\n\n    // [invokePartial]\n    //\n    // On stack, before: context, ...\n    // On stack after: result of partial invocation\n    //\n    // This operation pops off a context, invokes a partial with that context,\n    // and pushes the result of the invocation back.\n    invokePartial: function(name) {\n      var params = [this.nameLookup('partials', name, 'partial'), \"'\" + name + \"'\", this.popStack(), \"helpers\", \"partials\"];\n\n      if (this.options.data) {\n        params.push(\"data\");\n      }\n\n      this.context.aliases.self = \"this\";\n      this.push(\"self.invokePartial(\" + params.join(\", \") + \")\");\n    },\n\n    // [assignToHash]\n    //\n    // On stack, before: value, hash, ...\n    // On stack, after: hash, ...\n    //\n    // Pops a value and hash off the stack, assigns `hash[key] = value`\n    // and pushes the hash back onto the stack.\n    assignToHash: function(key) {\n      var value = this.popStack(),\n          context,\n          type;\n\n      if (this.options.stringParams) {\n        type = this.popStack();\n        context = this.popStack();\n      }\n\n      var hash = this.hash;\n      if (context) {\n        hash.contexts.push(\"'\" + key + \"': \" + context);\n      }\n      if (type) {\n        hash.types.push(\"'\" + key + \"': \" + type);\n      }\n      hash.values.push(\"'\" + key + \"': (\" + value + \")\");\n    },\n\n    // HELPERS\n\n    compiler: JavaScriptCompiler,\n\n    compileChildren: function(environment, options) {\n      var children = environment.children, child, compiler;\n\n      for(var i=0, l=children.length; i<l; i++) {\n        child = children[i];\n        compiler = new this.compiler();\n\n        var index = this.matchExistingProgram(child);\n\n        if (index == null) {\n          this.context.programs.push('');     // Placeholder to prevent name conflicts for nested children\n          index = this.context.programs.length;\n          child.index = index;\n          child.name = 'program' + index;\n          this.context.programs[index] = compiler.compile(child, options, this.context);\n          this.context.environments[index] = child;\n        } else {\n          child.index = index;\n          child.name = 'program' + index;\n        }\n      }\n    },\n    matchExistingProgram: function(child) {\n      for (var i = 0, len = this.context.environments.length; i < len; i++) {\n        var environment = this.context.environments[i];\n        if (environment && environment.equals(child)) {\n          return i;\n        }\n      }\n    },\n\n    programExpression: function(guid) {\n      this.context.aliases.self = \"this\";\n\n      if(guid == null) {\n        return \"self.noop\";\n      }\n\n      var child = this.environment.children[guid],\n          depths = child.depths.list, depth;\n\n      var programParams = [child.index, child.name, \"data\"];\n\n      for(var i=0, l = depths.length; i<l; i++) {\n        depth = depths[i];\n\n        if(depth === 1) { programParams.push(\"depth0\"); }\n        else { programParams.push(\"depth\" + (depth - 1)); }\n      }\n\n      return (depths.length === 0 ? \"self.program(\" : \"self.programWithDepth(\") + programParams.join(\", \") + \")\";\n    },\n\n    register: function(name, val) {\n      this.useRegister(name);\n      this.pushSource(name + \" = \" + val + \";\");\n    },\n\n    useRegister: function(name) {\n      if(!this.registers[name]) {\n        this.registers[name] = true;\n        this.registers.list.push(name);\n      }\n    },\n\n    pushStackLiteral: function(item) {\n      return this.push(new Literal(item));\n    },\n\n    pushSource: function(source) {\n      if (this.pendingContent) {\n        this.source.push(this.appendToBuffer(this.quotedString(this.pendingContent)));\n        this.pendingContent = undefined;\n      }\n\n      if (source) {\n        this.source.push(source);\n      }\n    },\n\n    pushStack: function(item) {\n      this.flushInline();\n\n      var stack = this.incrStack();\n      if (item) {\n        this.pushSource(stack + \" = \" + item + \";\");\n      }\n      this.compileStack.push(stack);\n      return stack;\n    },\n\n    replaceStack: function(callback) {\n      var prefix = '',\n          inline = this.isInline(),\n          stack,\n          createdStack,\n          usedLiteral;\n\n      // If we are currently inline then we want to merge the inline statement into the\n      // replacement statement via ','\n      if (inline) {\n        var top = this.popStack(true);\n\n        if (top instanceof Literal) {\n          // Literals do not need to be inlined\n          stack = top.value;\n          usedLiteral = true;\n        } else {\n          // Get or create the current stack name for use by the inline\n          createdStack = !this.stackSlot;\n          var name = !createdStack ? this.topStackName() : this.incrStack();\n\n          prefix = '(' + this.push(name) + ' = ' + top + '),';\n          stack = this.topStack();\n        }\n      } else {\n        stack = this.topStack();\n      }\n\n      var item = callback.call(this, stack);\n\n      if (inline) {\n        if (!usedLiteral) {\n          this.popStack();\n        }\n        if (createdStack) {\n          this.stackSlot--;\n        }\n        this.push('(' + prefix + item + ')');\n      } else {\n        // Prevent modification of the context depth variable. Through replaceStack\n        if (!/^stack/.test(stack)) {\n          stack = this.nextStack();\n        }\n\n        this.pushSource(stack + \" = (\" + prefix + item + \");\");\n      }\n      return stack;\n    },\n\n    nextStack: function() {\n      return this.pushStack();\n    },\n\n    incrStack: function() {\n      this.stackSlot++;\n      if(this.stackSlot > this.stackVars.length) { this.stackVars.push(\"stack\" + this.stackSlot); }\n      return this.topStackName();\n    },\n    topStackName: function() {\n      return \"stack\" + this.stackSlot;\n    },\n    flushInline: function() {\n      var inlineStack = this.inlineStack;\n      if (inlineStack.length) {\n        this.inlineStack = [];\n        for (var i = 0, len = inlineStack.length; i < len; i++) {\n          var entry = inlineStack[i];\n          if (entry instanceof Literal) {\n            this.compileStack.push(entry);\n          } else {\n            this.pushStack(entry);\n          }\n        }\n      }\n    },\n    isInline: function() {\n      return this.inlineStack.length;\n    },\n\n    popStack: function(wrapped) {\n      var inline = this.isInline(),\n          item = (inline ? this.inlineStack : this.compileStack).pop();\n\n      if (!wrapped && (item instanceof Literal)) {\n        return item.value;\n      } else {\n        if (!inline) {\n          if (!this.stackSlot) {\n            throw new Exception('Invalid stack pop');\n          }\n          this.stackSlot--;\n        }\n        return item;\n      }\n    },\n\n    topStack: function(wrapped) {\n      var stack = (this.isInline() ? this.inlineStack : this.compileStack),\n          item = stack[stack.length - 1];\n\n      if (!wrapped && (item instanceof Literal)) {\n        return item.value;\n      } else {\n        return item;\n      }\n    },\n\n    quotedString: function(str) {\n      return '\"' + str\n        .replace(/\\\\/g, '\\\\\\\\')\n        .replace(/\"/g, '\\\\\"')\n        .replace(/\\n/g, '\\\\n')\n        .replace(/\\r/g, '\\\\r')\n        .replace(/\\u2028/g, '\\\\u2028')   // Per Ecma-262 7.3 + 7.8.4\n        .replace(/\\u2029/g, '\\\\u2029') + '\"';\n    },\n\n    setupHelper: function(paramSize, name, missingParams) {\n      var params = [],\n          paramsInit = this.setupParams(paramSize, params, missingParams);\n      var foundHelper = this.nameLookup('helpers', name, 'helper');\n\n      return {\n        params: params,\n        paramsInit: paramsInit,\n        name: foundHelper,\n        callParams: [\"depth0\"].concat(params).join(\", \"),\n        helperMissingParams: missingParams && [\"depth0\", this.quotedString(name)].concat(params).join(\", \")\n      };\n    },\n\n    setupOptions: function(paramSize, params) {\n      var options = [], contexts = [], types = [], param, inverse, program;\n\n      options.push(\"hash:\" + this.popStack());\n\n      if (this.options.stringParams) {\n        options.push(\"hashTypes:\" + this.popStack());\n        options.push(\"hashContexts:\" + this.popStack());\n      }\n\n      inverse = this.popStack();\n      program = this.popStack();\n\n      // Avoid setting fn and inverse if neither are set. This allows\n      // helpers to do a check for `if (options.fn)`\n      if (program || inverse) {\n        if (!program) {\n          this.context.aliases.self = \"this\";\n          program = \"self.noop\";\n        }\n\n        if (!inverse) {\n          this.context.aliases.self = \"this\";\n          inverse = \"self.noop\";\n        }\n\n        options.push(\"inverse:\" + inverse);\n        options.push(\"fn:\" + program);\n      }\n\n      for(var i=0; i<paramSize; i++) {\n        param = this.popStack();\n        params.push(param);\n\n        if(this.options.stringParams) {\n          types.push(this.popStack());\n          contexts.push(this.popStack());\n        }\n      }\n\n      if (this.options.stringParams) {\n        options.push(\"contexts:[\" + contexts.join(\",\") + \"]\");\n        options.push(\"types:[\" + types.join(\",\") + \"]\");\n      }\n\n      if(this.options.data) {\n        options.push(\"data:data\");\n      }\n\n      return options;\n    },\n\n    // the params and contexts arguments are passed in arrays\n    // to fill in\n    setupParams: function(paramSize, params, useRegister) {\n      var options = '{' + this.setupOptions(paramSize, params).join(',') + '}';\n\n      if (useRegister) {\n        this.useRegister('options');\n        params.push('options');\n        return 'options=' + options;\n      } else {\n        params.push(options);\n        return '';\n      }\n    }\n  };\n\n  var reservedWords = (\n    \"break else new var\" +\n    \" case finally return void\" +\n    \" catch for switch while\" +\n    \" continue function this with\" +\n    \" default if throw\" +\n    \" delete in try\" +\n    \" do instanceof typeof\" +\n    \" abstract enum int short\" +\n    \" boolean export interface static\" +\n    \" byte extends long super\" +\n    \" char final native synchronized\" +\n    \" class float package throws\" +\n    \" const goto private transient\" +\n    \" debugger implements protected volatile\" +\n    \" double import public let yield\"\n  ).split(\" \");\n\n  var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};\n\n  for(var i=0, l=reservedWords.length; i<l; i++) {\n    compilerWords[reservedWords[i]] = true;\n  }\n\n  JavaScriptCompiler.isValidJavaScriptVariableName = function(name) {\n    if(!JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name)) {\n      return true;\n    }\n    return false;\n  };\n\n  __exports__ = JavaScriptCompiler;\n  return __exports__;\n})(__module2__, __module5__);\n\n// handlebars.js\nvar __module0__ = (function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__) {\n  \"use strict\";\n  var __exports__;\n  /*globals Handlebars: true */\n  var Handlebars = __dependency1__;\n\n  // Compiler imports\n  var AST = __dependency2__;\n  var Parser = __dependency3__.parser;\n  var parse = __dependency3__.parse;\n  var Compiler = __dependency4__.Compiler;\n  var compile = __dependency4__.compile;\n  var precompile = __dependency4__.precompile;\n  var JavaScriptCompiler = __dependency5__;\n\n  var _create = Handlebars.create;\n  var create = function() {\n    var hb = _create();\n\n    hb.compile = function(input, options) {\n      return compile(input, options, hb);\n    };\n    hb.precompile = function (input, options) {\n      return precompile(input, options, hb);\n    };\n\n    hb.AST = AST;\n    hb.Compiler = Compiler;\n    hb.JavaScriptCompiler = JavaScriptCompiler;\n    hb.Parser = Parser;\n    hb.parse = parse;\n\n    return hb;\n  };\n\n  Handlebars = create();\n  Handlebars.create = create;\n\n  __exports__ = Handlebars;\n  return __exports__;\n})(__module1__, __module7__, __module8__, __module10__, __module11__);\n\n  return __module0__;\n})();\n"
  },
  {
    "path": "static/js/lib/jquery.websocket-0.0.1.js",
    "content": "/*\n * jQuery Web Sockets Plugin v0.0.1\n * http://code.google.com/p/jquery-websocket/\n *\n * This document is licensed as free software under the terms of the\n * MIT License: http://www.opensource.org/licenses/mit-license.php\n * \n * Copyright (c) 2010 by shootaroo (Shotaro Tsubouchi).\n */\n(function($){\n$.extend({\n\twebsocketSettings: {\n\t\topen: function(){},\n\t\tclose: function(){},\n\t\tmessage: function(){},\n\t\toptions: {},\n\t\tevents: {}\n\t},\n\twebsocket: function(url, s) {\n\t\tvar ws = WebSocket ? new WebSocket( url ) : {\n\t\t\tsend: function(m){ return false },\n\t\t\tclose: function(){}\n\t\t};\n\t\tws._settings = $.extend($.websocketSettings, s);\n\t\t$(ws)\n\t\t\t.bind('open', $.websocketSettings.open)\n\t\t\t.bind('close', $.websocketSettings.close)\n\t\t\t.bind('message', $.websocketSettings.message)\n\t\t\t.bind('message', function(e){\n\t\t\t\tvar m = $.evalJSON(e.originalEvent.data);\n\t\t\t\tvar h = $.websocketSettings.events[m.type];\n\t\t\t\tif (h) h.call(this, m);\n\t\t\t});\n\t\tws._send = ws.send;\n\t\tws.send = function(type, data) {\n\t\t\tvar m = {type: type};\n\t\t\tm = $.extend(true, m, $.extend(true, {}, $.websocketSettings.options, m));\n\t\t\tif (data) m['data'] = data;\n\t\t\treturn this._send($.toJSON(m));\n\t\t}\n\t\t$(window).unload(function(){ ws.close(); ws = null });\n\t\treturn ws;\n\t}\n});\n})(jQuery);\n"
  },
  {
    "path": "static/js/logo_display.js",
    "content": "// Copyright 2024 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side logic for the logo display.\n\nvar websocket;\n\n$(function () {\n  // Read the configuration for this display from the URL query string.\n  const urlParams = new URLSearchParams(window.location.search);\n  const message = urlParams.get(\"message\");\n  const messageDiv = $(\"#message\");\n  messageDiv.text(message);\n  messageDiv.toggle(message !== \"\");\n\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/displays/logo/websocket\", {});\n});\n"
  },
  {
    "path": "static/js/lower_thirds.js",
    "content": "// Copyright 2015 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side logic for the lower thirds management interface.\n\nvar websocket;\n\n// Sends a websocket message to save the text for the given lower third.\nvar saveLowerThird = function (button) {\n  websocket.send(\"saveLowerThird\", constructLowerThird(button));\n};\n\n// Sends a websocket message to delete the given lower third.\nvar deleteLowerThird = function (button) {\n  websocket.send(\"deleteLowerThird\", constructLowerThird(button));\n};\n\n// Sends a websocket message to show the given lower third.\nvar showLowerThird = function (button) {\n  websocket.send(\"showLowerThird\", constructLowerThird(button));\n};\n\n// Sends a websocket message to show the given lower third and clear the audence display.\nvar showLowerThirdOnly = function (button) {\n  websocket.send(\"showLowerThird\", constructLowerThird(button));\n  $(\"input[name=audienceDisplay][value=blank]\").prop(\"checked\", true);\n  setAudienceDisplay();\n};\n\n// Sends a websocket message to hide the lower third.\nvar hideLowerThird = function (button) {\n  websocket.send(\"hideLowerThird\", constructLowerThird(button));\n};\n\n// Sends a websocket message to reorder the given the lower third.\nvar reorderLowerThird = function (button, moveUp) {\n  websocket.send(\"reorderLowerThird\", {Id: parseInt(button.form.id.value), MoveUp: moveUp})\n};\n\n// Gathers the lower third info and constructs a JSON object.\nvar constructLowerThird = function (button) {\n  return {\n    Id: parseInt(button.form.id.value), TopText: button.form.topText.value,\n    BottomText: button.form.bottomText.value\n  }\n};\n\n// Handles a websocket message to update the audience display screen selector.\nconst handleAudienceDisplayMode = function (data) {\n  $(\"input[name=audienceDisplay]:checked\").prop(\"checked\", false);\n  $(\"input[name=audienceDisplay][value=\" + data + \"]\").prop(\"checked\", true);\n};\n\n// Sends a websocket message to change what the audience display is showing.\nconst setAudienceDisplay = function () {\n  websocket.send(\"setAudienceDisplay\", $(\"input[name=audienceDisplay]:checked\").val());\n};\n\n$(function () {\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/setup/lower_thirds/websocket\", {\n    audienceDisplayMode: function (event) {\n      handleAudienceDisplayMode(event.data);\n    },\n  });\n});\n"
  },
  {
    "path": "static/js/match_play.js",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side logic for the match play page.\n\nvar websocket;\nlet scoreIsReady;\nlet isReplay;\nconst lowBatteryThreshold = 8;\n\n// Sends a websocket message to load the specified match.\nconst loadMatch = function (matchId) {\n  websocket.send(\"loadMatch\", {matchId: matchId});\n}\n\n// Sends a websocket message to load the results for the specified match into the display buffer.\nconst showResult = function (matchId) {\n  websocket.send(\"showResult\", {matchId: matchId});\n}\n\n// Sends a websocket message to load all teams into their respective alliance stations.\nconst substituteTeams = function (team, position) {\n  const teams = {\n    Red1: getTeamNumber(\"R1\"),\n    Red2: getTeamNumber(\"R2\"),\n    Red3: getTeamNumber(\"R3\"),\n    Blue1: getTeamNumber(\"B1\"),\n    Blue2: getTeamNumber(\"B2\"),\n    Blue3: getTeamNumber(\"B3\"),\n  };\n\n  websocket.send(\"substituteTeams\", teams);\n};\n\n// Sends a websocket message to toggle the bypass status for an alliance station.\nconst toggleBypass = function (station) {\n  websocket.send(\"toggleBypass\", station);\n};\n\n// Sends a websocket message to start the match.\nconst startMatch = function () {\n  websocket.send(\"startMatch\",\n    {muteMatchSounds: $(\"#muteMatchSounds\").prop(\"checked\")});\n};\n\n// Sends a websocket message to abort the match.\nconst abortMatch = function () {\n  websocket.send(\"abortMatch\");\n};\n\n// Sends a websocket message to signal to the volunteers that they may enter the field.\nconst signalVolunteers = function () {\n  websocket.send(\"signalVolunteers\");\n};\n\n// Sends a websocket message to signal to the teams that they may enter the field.\nconst signalReset = function () {\n  websocket.send(\"signalReset\");\n};\n\n// Sends a websocket message to commit the match score and load the next match.\nconst commitResults = function () {\n  websocket.send(\"commitResults\");\n};\n\n// Sends a websocket message to discard the match score and load the next match.\nconst discardResults = function () {\n  websocket.send(\"discardResults\");\n};\n\n// Switches the audience display to the match intro screen.\nconst showOverlay = function () {\n  $(\"input[name=audienceDisplay][value=intro]\").prop(\"checked\", true);\n  setAudienceDisplay();\n  $(\"#showOverlay\").prop(\"disabled\", true);\n}\n\n// Switches the audience display to the final score screen.\nconst showFinalScore = function () {\n  $(\"input[name=audienceDisplay][value=score]\").prop(\"checked\", true);\n  setAudienceDisplay();\n  $(\"#showFinalScore\").prop(\"disabled\", true);\n}\n\n// Sends a websocket message to change what the audience display is showing.\nconst setAudienceDisplay = function () {\n  websocket.send(\"setAudienceDisplay\", $(\"input[name=audienceDisplay]:checked\").val());\n};\n\n// Sends a websocket message to change what the alliance station display is showing.\nconst setAllianceStationDisplay = function () {\n  websocket.send(\"setAllianceStationDisplay\", $(\"input[name=allianceStationDisplay]:checked\").val());\n};\n\n// Sends a websocket message to start the timeout.\nconst startTimeout = function () {\n  const duration = $(\"#timeoutDuration\").val().split(\":\");\n  let durationSec = parseFloat(duration[0]);\n  if (duration.length > 1) {\n    durationSec = durationSec * 60 + parseFloat(duration[1]);\n  }\n  websocket.send(\"startTimeout\", durationSec);\n};\n\nconst confirmCommit = function () {\n  if (isReplay || !scoreIsReady) {\n    // Show the appropriate message(s) in the confirmation dialog.\n    $(\"#confirmCommitReplay\").css(\"display\", isReplay ? \"block\" : \"none\");\n    $(\"#confirmCommitNotReady\").css(\"display\", scoreIsReady ? \"none\" : \"block\");\n    $(\"#confirmCommitResults\").modal(\"show\");\n  } else {\n    commitResults();\n  }\n};\n\n// Sends a websocket message to specify a custom name for the current test match.\nconst setTestMatchName = function () {\n  websocket.send(\"setTestMatchName\", $(\"#testMatchName\").val());\n};\n\n// Returns the integer team number entered into the team number input box for the given station, or 0 if it is empty.\nconst getTeamNumber = function (station) {\n  const teamId = $(`#status${station} .team-number`).val().trim();\n  return teamId ? parseInt(teamId) : 0;\n}\n\n// Handles a websocket message to update the team connection status.\nconst handleArenaStatus = function (data) {\n  // Update the team status view.\n  $.each(data.AllianceStations, function (station, stationStatus) {\n    const wifiStatus = stationStatus.WifiStatus;\n    $(\"#status\" + station + \" .radio-status\").text(wifiStatus.TeamId);\n\n    if (stationStatus.DsConn) {\n      // Format the driver station status box.\n      const dsConn = stationStatus.DsConn;\n      $(\"#status\" + station + \" .ds-status\").attr(\"data-status-ok\", dsConn.DsLinked);\n      if (dsConn.DsLinked) {\n        $(\"#status\" + station + \" .ds-status\").text(wifiStatus.MBits.toFixed(2) + \"Mb\");\n      } else {\n        $(\"#status\" + station + \" .ds-status\").text(\"\");\n      }\n\n      // Format the robot status box.\n      const robotOkay = dsConn.BatteryVoltage > lowBatteryThreshold && dsConn.RobotLinked;\n      $(\"#status\" + station + \" .robot-status\").attr(\"data-status-ok\", robotOkay);\n      if (stationStatus.DsConn.SecondsSinceLastRobotLink > 1 && stationStatus.DsConn.SecondsSinceLastRobotLink < 1000) {\n        $(\"#status\" + station + \" .robot-status\").text(stationStatus.DsConn.SecondsSinceLastRobotLink.toFixed());\n      } else {\n        $(\"#status\" + station + \" .robot-status\").text(dsConn.BatteryVoltage.toFixed(1) + \"V\");\n      }\n    } else {\n      $(\"#status\" + station + \" .ds-status\").attr(\"data-status-ok\", \"\");\n      $(\"#status\" + station + \" .robot-status\").attr(\"data-status-ok\", \"\");\n      $(\"#status\" + station + \" .robot-status\").text(\"\");\n    }\n\n    // Format the radio status box according to whether the AP is configured with the correct SSID and the connection\n    // status of the robot radio.\n    const expectedTeamId = stationStatus.Team ? stationStatus.Team.Id : 0;\n    let radioStatus = 0;\n    if (expectedTeamId === wifiStatus.TeamId) {\n      if (wifiStatus.RadioLinked || stationStatus.DsConn?.RobotLinked) {\n        radioStatus = 2;\n      } else {\n        radioStatus = 1;\n      }\n    }\n    $(`#status${station} .radio-status`).attr(\"data-status-ternary\", radioStatus);\n\n    if (stationStatus.EStop) {\n      $(\"#status\" + station + \" .bypass-status\").attr(\"data-status-ok\", false);\n      $(\"#status\" + station + \" .bypass-status\").text(\"ES\");\n    } else if (stationStatus.AStop) {\n      $(\"#status\" + station + \" .bypass-status\").attr(\"data-status-ok\", true);\n      $(\"#status\" + station + \" .bypass-status\").text(\"AS\");\n    } else if (stationStatus.Bypass) {\n      $(\"#status\" + station + \" .bypass-status\").attr(\"data-status-ok\", false);\n      $(\"#status\" + station + \" .bypass-status\").text(\"B\");\n    } else {\n      $(\"#status\" + station + \" .bypass-status\").attr(\"data-status-ok\", true);\n      $(\"#status\" + station + \" .bypass-status\").text(\"\");\n    }\n  });\n\n  // Enable/disable the buttons based on the current match state.\n  switch (matchStates[data.MatchState]) {\n    case \"PRE_MATCH\":\n      $(\"#startMatch\").prop(\"disabled\", !data.CanStartMatch);\n      $(\"#abortMatch\").prop(\"disabled\", true);\n      $(\"#signalVolunteers\").prop(\"disabled\", false);\n      $(\"#signalReset\").prop(\"disabled\", false);\n      $(\"#fieldResetRadio\").prop(\"disabled\", false);\n      $(\"#commitResults\").prop(\"disabled\", true);\n      $(\"#discardResults\").prop(\"disabled\", true);\n      $(\"#editResults\").prop(\"disabled\", true);\n      $(\"#startTimeout\").prop(\"disabled\", false);\n      break;\n    case \"START_MATCH\":\n    case \"WARMUP_PERIOD\":\n    case \"AUTO_PERIOD\":\n    case \"PAUSE_PERIOD\":\n    case \"TELEOP_PERIOD\":\n      $(\"#showOverlay\").prop(\"disabled\", true);\n      $(\"#introRadio\").prop(\"disabled\", true);\n      $(\"#showFinalScore\").prop(\"disabled\", true);\n      $(\"#scoreRadio\").prop(\"disabled\", true);\n      $(\"#startMatch\").prop(\"disabled\", true);\n      $(\"#abortMatch\").prop(\"disabled\", false);\n      $(\"#signalVolunteers\").prop(\"disabled\", true);\n      $(\"#signalReset\").prop(\"disabled\", true);\n      $(\"#fieldResetRadio\").prop(\"disabled\", true);\n      $(\"#commitResults\").prop(\"disabled\", true);\n      $(\"#discardResults\").prop(\"disabled\", true);\n      $(\"#editResults\").prop(\"disabled\", true);\n      $(\"#startTimeout\").prop(\"disabled\", true);\n      break;\n    case \"POST_MATCH\":\n      $(\"#showOverlay\").prop(\"disabled\", true);\n      $(\"#introRadio\").prop(\"disabled\", true);\n      $(\"#showFinalScore\").prop(\"disabled\", true);\n      $(\"#scoreRadio\").prop(\"disabled\", true);\n      $(\"#startMatch\").prop(\"disabled\", true);\n      $(\"#abortMatch\").prop(\"disabled\", true);\n      $(\"#signalVolunteers\").prop(\"disabled\", false);\n      $(\"#signalReset\").prop(\"disabled\", false);\n      $(\"#fieldResetRadio\").prop(\"disabled\", false);\n      $(\"#commitResults\").prop(\"disabled\", false);\n      $(\"#discardResults\").prop(\"disabled\", false);\n      $(\"#editResults\").prop(\"disabled\", false);\n      $(\"#startTimeout\").prop(\"disabled\", true);\n      break;\n    case \"TIMEOUT_ACTIVE\":\n      $(\"#showOverlay\").prop(\"disabled\", true);\n      $(\"#introRadio\").prop(\"disabled\", true);\n      $(\"#showFinalScore\").prop(\"disabled\", false);\n      $(\"#scoreRadio\").prop(\"disabled\", false);\n      $(\"#startMatch\").prop(\"disabled\", true);\n      $(\"#abortMatch\").prop(\"disabled\", false);\n      $(\"#signalVolunteers\").prop(\"disabled\", true);\n      $(\"#signalReset\").prop(\"disabled\", true);\n      $(\"#fieldResetRadio\").prop(\"disabled\", false);\n      $(\"#commitResults\").prop(\"disabled\", true);\n      $(\"#discardResults\").prop(\"disabled\", true);\n      $(\"#editResults\").prop(\"disabled\", true);\n      $(\"#startTimeout\").prop(\"disabled\", true);\n      break;\n    case \"POST_TIMEOUT\":\n      $(\"#showOverlay\").prop(\"disabled\", false);\n      $(\"#introRadio\").prop(\"disabled\", false);\n      $(\"#showFinalScore\").prop(\"disabled\", false);\n      $(\"#scoreRadio\").prop(\"disabled\", false);\n      $(\"#startMatch\").prop(\"disabled\", true);\n      $(\"#abortMatch\").prop(\"disabled\", true);\n      $(\"#signalVolunteers\").prop(\"disabled\", true);\n      $(\"#signalReset\").prop(\"disabled\", true);\n      $(\"#fieldResetRadio\").prop(\"disabled\", false);\n      $(\"#commitResults\").prop(\"disabled\", true);\n      $(\"#discardResults\").prop(\"disabled\", true);\n      $(\"#editResults\").prop(\"disabled\", true);\n      $(\"#startTimeout\").prop(\"disabled\", true);\n      break;\n  }\n\n  $(\"#accessPointStatus\").attr(\"data-status\", data.AccessPointStatus);\n  $(\"#switchStatus\").attr(\"data-status\", data.SwitchStatus);\n  $(\"#redSCCStatus\").attr(\"data-status\", data.RedSCCStatus);\n  $(\"#blueSCCStatus\").attr(\"data-status\", data.BlueSCCStatus);\n\n  if (data.PlcIsHealthy) {\n    $(\"#plcStatus\").text(\"Connected\");\n    $(\"#plcStatus\").attr(\"data-ready\", true);\n  } else {\n    $(\"#plcStatus\").text(\"Not Connected\");\n    $(\"#plcStatus\").attr(\"data-ready\", false);\n  }\n  $(\"#fieldEStop\").attr(\"data-ready\", !data.FieldEStop);\n  $.each(data.PlcArmorBlockStatuses, function (name, status) {\n    $(\"#plc\" + name + \"Status\").attr(\"data-ready\", status);\n  });\n};\n\n// Handles a websocket message to update the teams for the current match.\nconst handleMatchLoad = function (data) {\n  isReplay = data.IsReplay;\n\n  fetch(\"/match_play/match_load\")\n    .then(response => response.text())\n    .then(html => $(\"#matchListColumn\").html(html));\n\n  $(\"#matchName\").text(data.Match.LongName);\n  $(\"#testMatchName\").val(data.Match.LongName);\n  $(\"#testMatchSettings\").toggle(data.Match.Type === matchTypeTest);\n  $.each(data.Teams, function (station, team) {\n    const teamId = $(`#status${station} .team-number`);\n    teamId.val(team ? team.Id : \"\");\n    teamId.prop(\"disabled\", !data.AllowSubstitution);\n  });\n  $(\"#playoffRedAllianceInfo\").html(formatPlayoffAllianceInfo(data.Match.PlayoffRedAlliance, data.RedOffFieldTeams));\n  $(\"#playoffBlueAllianceInfo\").html(formatPlayoffAllianceInfo(data.Match.PlayoffBlueAlliance, data.BlueOffFieldTeams));\n\n  $(\"#substituteTeams\").prop(\"disabled\", true);\n  $(\"#showOverlay\").prop(\"disabled\", false);\n  $(\"#introRadio\").prop(\"disabled\", false);\n  $(\"#muteMatchSounds\").prop(\"checked\", false);\n}\n\n// Handles a websocket message to update the match time countdown.\nconst handleMatchTime = function (data) {\n  translateMatchTime(data, function (matchState, matchStateText, countdownSec) {\n    $(\"#matchState\").text(matchStateText);\n    $(\"#matchTime\").text(countdownSec);\n  });\n};\n\n// Handles a websocket message to update the match score.\nconst handleRealtimeScore = function (data) {\n  $(\"#redScore\").text(data.Red.ScoreSummary.Score);\n  $(\"#blueScore\").text(data.Blue.ScoreSummary.Score);\n};\n\n// Handles a websocket message to populate the final score data.\nconst handleScorePosted = function (data) {\n  let matchName = data.Match.LongName;\n  if (matchName) {\n    $(\"#showFinalScore\").prop(\"disabled\", false);\n    $(\"#scoreRadio\").prop(\"disabled\", false);\n  } else {\n    matchName = \"None\"\n  }\n  $(\"#savedMatchName\").html(matchName);\n}\n\n// Handles a websocket message to update the audience display screen selector.\nconst handleAudienceDisplayMode = function (data) {\n  $(\"input[name=audienceDisplay]:checked\").prop(\"checked\", false);\n  $(\"input[name=audienceDisplay][value=\" + data + \"]\").prop(\"checked\", true);\n};\n\n// Handles a websocket message to signal whether the referee and scorers have committed after the match.\nconst handleScoringStatus = function (data) {\n  scoreIsReady = data.RefereeScoreReady;\n  for (const status of Object.values(data.PositionStatuses)) {\n    if (!status.Ready) {\n      scoreIsReady = false;\n      break;\n    }\n  }\n  $(\"#refereeScoreStatus\").attr(\"data-ready\", data.RefereeScoreReady);\n  updateScoreStatus(data, \"red_near\", \"#redNearScoreStatus\", \"Red Near\");\n  updateScoreStatus(data, \"red_far\", \"#redFarScoreStatus\", \"Red Far\");\n  updateScoreStatus(data, \"blue_near\", \"#blueNearScoreStatus\", \"Blue Near\");\n  updateScoreStatus(data, \"blue_far\", \"#blueFarScoreStatus\", \"Blue Far\");\n};\n\n// Helper function to update a badge that shows scoring panel commit status.\nconst updateScoreStatus = function (data, position, element, displayName) {\n  const status = data.PositionStatuses[position];\n  $(element).text(`${displayName} ${status.NumPanelsReady}/${status.NumPanels}`);\n  $(element).attr(\"data-present\", status.NumPanels > 0);\n  $(element).attr(\"data-ready\", status.Ready);\n};\n\n// Handles a websocket message to update the alliance station display screen selector.\nconst handleAllianceStationDisplayMode = function (data) {\n  $(\"input[name=allianceStationDisplay]:checked\").prop(\"checked\", false);\n  $(\"input[name=allianceStationDisplay][value=\" + data + \"]\").prop(\"checked\", true);\n};\n\n// Handles a websocket message to update the event status message.\nconst handleEventStatus = function (data) {\n  if (data.CycleTime === \"\") {\n    $(\"#cycleTimeMessage\").text(\"Last cycle time: Unknown\");\n  } else {\n    $(\"#cycleTimeMessage\").text(\"Last cycle time: \" + data.CycleTime);\n  }\n  $(\"#earlyLateMessage\").text(data.EarlyLateMessage);\n};\n\nconst formatPlayoffAllianceInfo = function (allianceNumber, offFieldTeams) {\n  if (allianceNumber === 0) {\n    return \"\";\n  }\n  let allianceInfo = `<b>Alliance ${allianceNumber}</b>`;\n  if (offFieldTeams.length > 0) {\n    allianceInfo += ` (not on field: ${offFieldTeams.map(team => team.Id).join(\", \")})`;\n  }\n  return allianceInfo;\n}\n\n$(function () {\n  // Activate tooltips above the status headers.\n  const tooltipTriggerList = document.querySelectorAll(\"[data-bs-toggle=tooltip]\");\n  const tooltipList = [...tooltipTriggerList].map(element => new bootstrap.Tooltip(element));\n\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/match_play/websocket\", {\n    allianceStationDisplayMode: function (event) {\n      handleAllianceStationDisplayMode(event.data);\n    },\n    arenaStatus: function (event) {\n      handleArenaStatus(event.data);\n    },\n    audienceDisplayMode: function (event) {\n      handleAudienceDisplayMode(event.data);\n    },\n    eventStatus: function (event) {\n      handleEventStatus(event.data);\n    },\n    matchLoad: function (event) {\n      handleMatchLoad(event.data);\n    },\n    matchTime: function (event) {\n      handleMatchTime(event.data);\n    },\n    matchTiming: function (event) {\n      handleMatchTiming(event.data);\n    },\n    realtimeScore: function (event) {\n      handleRealtimeScore(event.data);\n    },\n    scorePosted: function (event) {\n      handleScorePosted(event.data);\n    },\n    scoringStatus: function (event) {\n      handleScoringStatus(event.data);\n    },\n  });\n});\n"
  },
  {
    "path": "static/js/match_review.js",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side methods for editing a match in the match review page.\n\nconst scoreTemplate = Handlebars.compile($(\"#scoreTemplate\").html());\nconst allianceResults = {};\nlet matchResult;\n\n// Hijack the form submission to inject the data in JSON form so that it's easier for the server to parse.\n$(\"form\").submit(function () {\n  updateResults(\"red\");\n  updateResults(\"blue\");\n\n  matchResult.RedScore = allianceResults[\"red\"].score;\n  matchResult.BlueScore = allianceResults[\"blue\"].score;\n  matchResult.RedCards = allianceResults[\"red\"].cards;\n  matchResult.BlueCards = allianceResults[\"blue\"].cards;\n  const matchResultJson = JSON.stringify(matchResult);\n\n  // Inject the JSON data into the form as hidden inputs.\n  $(\"<input />\").attr(\"type\", \"hidden\").attr(\"name\", \"matchResultJson\").attr(\"value\", matchResultJson).appendTo(\"form\");\n\n  return true;\n});\n\n// Draws the match-editing form for one alliance based on the cached result data.\nconst renderResults = function (alliance) {\n  const result = allianceResults[alliance];\n  const scoreContent = scoreTemplate(result);\n  $(`#${alliance}Score`).html(scoreContent);\n\n  // Set the values of the form fields from the JSON results data.\n  getInputElement(alliance, \"AutoTroughNearCoral\").val(result.score.Reef.AutoTroughNear);\n  getInputElement(alliance, \"AutoTroughFarCoral\").val(result.score.Reef.AutoTroughFar);\n  getInputElement(alliance, \"TroughNearCoral\").val(result.score.Reef.TroughNear);\n  getInputElement(alliance, \"TroughFarCoral\").val(result.score.Reef.TroughFar);\n  getInputElement(alliance, \"BargeAlgae\").val(result.score.BargeAlgae);\n  getInputElement(alliance, \"ProcessorAlgae\").val(result.score.ProcessorAlgae);\n\n  for (let i = 0; i < 3; i++) {\n    const i1 = i + 1;\n\n    getInputElement(alliance, `RobotsBypassed${i1}`).prop(\"checked\", result.score.RobotsBypassed[i]);\n    getInputElement(alliance, `LeaveStatuses${i1}`).prop(\"checked\", result.score.LeaveStatuses[i]);\n    getInputElement(alliance, `EndgameStatuses${i1}`, result.score.EndgameStatuses[i]).prop(\"checked\", true);\n\n    for (let j = 0; j < 12; j++) {\n      getInputElement(alliance, `ReefAutoBranchesPipe${i}Branch${j}`).prop(\n        \"checked\", result.score.Reef.AutoBranches[i][j]\n      );\n      getInputElement(alliance, `ReefBranchesPipe${i}Branch${j}`).prop(\"checked\", result.score.Reef.Branches[i][j]);\n    }\n  }\n\n  if (result.score.Fouls != null) {\n    $.each(result.score.Fouls, function (k, v) {\n      getInputElement(alliance, `Foul${k}IsMajor`).prop(\"checked\", v.IsMajor);\n      getInputElement(alliance, `Foul${k}Team`, v.TeamId).prop(\"checked\", true);\n      getSelectElement(alliance, `Foul${k}RuleId`).val(v.RuleId);\n    });\n  }\n\n  if (result.cards != null) {\n    $.each(result.cards, function (k, v) {\n      getInputElement(alliance, `Team${k}Card`, v).prop(\"checked\", true);\n    });\n  }\n};\n\n// Converts the current form values back into JSON structures and caches them.\nconst updateResults = function (alliance) {\n  const result = allianceResults[alliance];\n  const formData = {};\n  $.each($(\"form\").serializeArray(), function (k, v) {\n    formData[v.name] = v.value;\n  });\n\n  result.score.RobotsBypassed = [];\n  result.score.LeaveStatuses = [];\n  result.score.Reef = {\n    AutoBranches: [],\n    Branches: [],\n    AutoTroughNear: parseInt(formData[`${alliance}AutoTroughNearCoral`]),\n    AutoTroughFar: parseInt(formData[`${alliance}AutoTroughFarCoral`]),\n    TroughNear: parseInt(formData[`${alliance}TroughNearCoral`]),\n    TroughFar: parseInt(formData[`${alliance}TroughFarCoral`]),\n  };\n  result.score.BargeAlgae = parseInt(formData[`${alliance}BargeAlgae`]);\n  result.score.ProcessorAlgae = parseInt(formData[`${alliance}ProcessorAlgae`]);\n  result.score.EndgameStatuses = [];\n  for (let i = 0; i < 3; i++) {\n    const i1 = i + 1;\n\n    result.score.RobotsBypassed[i] = formData[`${alliance}RobotsBypassed${i1}`] === \"on\";\n    result.score.LeaveStatuses[i] = formData[`${alliance}LeaveStatuses${i1}`] === \"on\";\n    result.score.EndgameStatuses[i] = parseInt(formData[`${alliance}EndgameStatuses${i1}`]);\n    result.score.Reef.AutoBranches[i] = [];\n    result.score.Reef.Branches[i] = [];\n    for (let j = 0; j < 12; j++) {\n      result.score.Reef.AutoBranches[i][j] = formData[`${alliance}ReefAutoBranchesPipe${i}Branch${j}`] === \"on\";\n      result.score.Reef.Branches[i][j] = formData[`${alliance}ReefBranchesPipe${i}Branch${j}`] === \"on\";\n    }\n  }\n\n  result.score.Fouls = [];\n\n  for (let i = 0; formData[`${alliance}Foul${i}Index`]; i++) {\n    const prefix = `${alliance}Foul${i}`;\n    const foul = {\n      IsMajor: formData[`${prefix}IsMajor`] === \"on\",\n      TeamId: parseInt(formData[`${prefix}Team`]),\n      RuleId: parseInt(formData[`${prefix}RuleId`]),\n    };\n    result.score.Fouls.push(foul);\n  }\n\n  result.cards = {};\n  $.each([result.team1, result.team2, result.team3], function (i, team) {\n    result.cards[team] = formData[`${alliance}Team${team}Card`];\n  });\n};\n\n// Appends a blank foul to the end of the list.\nconst addFoul = function (alliance) {\n  updateResults(alliance);\n  const result = allianceResults[alliance];\n  result.score.Fouls.push({IsMajor: false, TeamId: 0, Rule: 0});\n  renderResults(alliance);\n};\n\n// Removes the given foul from the list.\nconst deleteFoul = function (alliance, index) {\n  updateResults(alliance);\n  const result = allianceResults[alliance];\n  result.score.Fouls.splice(index, 1);\n  renderResults(alliance);\n};\n\n// Returns the form input element having the given parameters.\nconst getInputElement = function (alliance, name, value) {\n  let selector = `input[name=${alliance}${name}]`;\n  if (value !== undefined) {\n    selector += `[value=${value}]`;\n  }\n  return $(selector);\n};\n\n// Returns the form select element having the given parameters.\nconst getSelectElement = function (alliance, name) {\n  const selector = `select[name=${alliance}${name}]`;\n  return $(selector);\n};\n"
  },
  {
    "path": "static/js/match_timing.js",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Shared client-side logic for interpreting match state and timing notifications.\n\n// MatchType enum values.\nconst matchTypeTest = 0;\nconst matchTypePractice = 1;\nconst matchTypeQualification = 2;\nconst matchTypePlayoff = 3;\n\nconst matchStates = {\n  0: \"PRE_MATCH\",\n  1: \"START_MATCH\",\n  2: \"WARMUP_PERIOD\",\n  3: \"AUTO_PERIOD\",\n  4: \"PAUSE_PERIOD\",\n  5: \"TELEOP_PERIOD\",\n  6: \"POST_MATCH\",\n  7: \"TIMEOUT_ACTIVE\",\n  8: \"POST_TIMEOUT\"\n};\nlet matchTiming;\n\n// Handles a websocket message containing the length of each period in the match.\nconst handleMatchTiming = function (data) {\n  matchTiming = data;\n};\n\n// Converts the raw match state and time into a human-readable state and per-period time. Calls the provided\n// callback with the result.\nconst translateMatchTime = function (data, callback) {\n  var matchStateText;\n  switch (matchStates[data.MatchState]) {\n    case \"PRE_MATCH\":\n      matchStateText = \"PRE-MATCH\";\n      break;\n    case \"START_MATCH\":\n    case \"WARMUP_PERIOD\":\n      matchStateText = \"WARMUP\";\n      break;\n    case \"AUTO_PERIOD\":\n      matchStateText = \"AUTONOMOUS\";\n      break;\n    case \"PAUSE_PERIOD\":\n      matchStateText = \"PAUSE\";\n      break;\n    case \"TELEOP_PERIOD\":\n      matchStateText = \"TELEOPERATED\";\n      break;\n    case \"POST_MATCH\":\n      matchStateText = \"POST-MATCH\";\n      break;\n    case \"TIMEOUT_ACTIVE\":\n    case \"POST_TIMEOUT\":\n      matchStateText = \"TIMEOUT\";\n      break;\n  }\n  callback(matchStates[data.MatchState], matchStateText, getCountdown(data.MatchState, data.MatchTimeSec));\n};\n\n// Returns the per-period countdown for the given match state and overall time into the match.\nconst getCountdown = function (matchState, matchTimeSec) {\n  switch (matchStates[matchState]) {\n    case \"PRE_MATCH\":\n    case \"START_MATCH\":\n    case \"WARMUP_PERIOD\":\n      return matchTiming.AutoDurationSec;\n    case \"AUTO_PERIOD\":\n      return matchTiming.WarmupDurationSec + matchTiming.AutoDurationSec - matchTimeSec;\n    case \"TELEOP_PERIOD\":\n      return matchTiming.WarmupDurationSec + matchTiming.AutoDurationSec + matchTiming.TeleopDurationSec +\n        matchTiming.PauseDurationSec - matchTimeSec;\n    case \"TIMEOUT_ACTIVE\":\n      return matchTiming.TimeoutDurationSec - matchTimeSec;\n    default:\n      return 0;\n  }\n};\n\n// Converts the given countdown in seconds to a string with a colon separator and leading zero padding.\nconst getCountdownString = function (countdownSec) {\n  let countdownString = String(countdownSec % 60);\n  if (countdownString.length === 1) {\n    countdownString = \"0\" + countdownString;\n  }\n  return Math.floor(countdownSec / 60) + \":\" + countdownString;\n};\n"
  },
  {
    "path": "static/js/placeholder_display.js",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side logic for the placeholder display.\n\nvar websocket;\n\n$(function () {\n  // Read the configuration for this display from the URL query string.\n  var urlParams = new URLSearchParams(window.location.search);\n  $(\"#displayId\").text(urlParams.get(\"displayId\"));\n  var nickname = urlParams.get(\"nickname\");\n  if (nickname !== null) {\n    $(\"#displayNickname\").text(nickname);\n  }\n\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/display/websocket\", {});\n});\n"
  },
  {
    "path": "static/js/queueing_display.js",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side logic for the queueing display.\n\nvar websocket;\n\n// Handles a websocket message to update the teams for the current match.\nvar handleMatchLoad = function (data) {\n  fetch(\"/displays/queueing/match_load\")\n    .then(response => response.text())\n    .then(html => $(\"#matches\").html(html));\n};\n\n// Handles a websocket message to update the match time countdown.\nvar handleMatchTime = function (data) {\n  translateMatchTime(data, function (matchState, matchStateText, countdownSec) {\n    $(\"#matchState\").text(matchStateText);\n    var countdownString = String(countdownSec % 60);\n    if (countdownString.length === 1) {\n      countdownString = \"0\" + countdownString;\n    }\n    countdownString = Math.floor(countdownSec / 60) + \":\" + countdownString;\n    $(\"#matchTime\").text(countdownString);\n  });\n};\n\n// Handles a websocket message to update the event status message.\nvar handleEventStatus = function (data) {\n  $(\"#earlyLateMessage\").text(data.EarlyLateMessage);\n};\n\n$(function () {\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/displays/queueing/websocket\", {\n    eventStatus: function (event) {\n      handleEventStatus(event.data);\n    },\n    matchLoad: function (event) {\n      handleMatchLoad(event.data);\n    },\n    matchTime: function (event) {\n      handleMatchTime(event.data);\n    },\n    matchTiming: function (event) {\n      handleMatchTiming(event.data);\n    },\n  });\n});\n"
  },
  {
    "path": "static/js/rankings_display.js",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: nick@team254.com (Nick Eyre)\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side methods for the rankings display.\n\nvar websocket;\nvar initialDwellMs = 3000;  // How long the display waits upon initial load before scrolling.\nvar scrollMsPerRow;  // How long in milliseconds it takes to scroll a height of one row.\nvar staticUpdateIntervalMs = 10000;  // How long between updates if not scrolling.\nvar standingsTemplate = Handlebars.compile($(\"#standingsTemplate\").html());\nvar rankingsData;\nvar prevHighestPlayedMatch;\n\n// Loads the JSON rankings data from the event server.\nvar getRankingsData = function (callback) {\n  $.getJSON(\"/api/rankings\", function (data) {\n    rankingsData = data;\n    if (callback) {\n      callback(data);\n    }\n  });\n};\n\n// Updates the rankings in place and initiates scrolling if they are long enough to require it.\nvar updateStaticRankings = function () {\n  getRankingsData(function () {\n    var rankingsHtml = standingsTemplate(rankingsData);\n    $(\"#rankings2\").html(rankingsHtml);\n    $(\"#scroller\").css(\"transform\", \"translate(0px, -2px);\");\n    prevHighestPlayedMatch = rankingsData.HighestPlayedMatch;\n    setHighestPlayedMatch(rankingsData.HighestPlayedMatch);\n    if ($(\"#rankings2\").height() > $(\"#container\").height()) {\n      // Initiate scrolling.\n      setTimeout(cycleRankings, initialDwellMs);\n    } else {\n      // Rankings are too short; just update in place.\n      setTimeout(updateStaticRankings, staticUpdateIntervalMs);\n    }\n  });\n};\n\n// Seamlessly copies the newer table contents to the older one, resets the scrolling, and loads new data.\nvar cycleRankings = function () {\n  // Overwrite the top data with the bottom data and reset the scrolling back up to the top of the top table.\n  $(\"#rankings1\").html($(\"#rankings2\").html());\n  $(\"#scroller\").css({transform: \"translate(0px, -1px);\"});\n\n  // Load new data into the now out-of-sight bottom table.\n  var rankingsHtml = standingsTemplate(rankingsData);\n  $(\"#rankings2\").html(rankingsHtml);\n\n  // Delay updating the \"Standings as of\" message by one cycle because the tables are always one cycle behind\n  // the data loading.\n  setHighestPlayedMatch(prevHighestPlayedMatch);\n  prevHighestPlayedMatch = rankingsData.HighestPlayedMatch;\n\n  if ($(\"#rankings1\").height() > $(\"#container\").height()) {\n    // Kick off another scrolling animation.\n    var scrollDistance = $(\"#rankings1\").height() + parseInt($(\"#rankings1\").css(\"border-bottom-width\"));\n    var scrollTime = scrollMsPerRow * $(\"#rankings1 tr\").length;\n    $(\"#scroller\").transition({y: -scrollDistance}, scrollTime, \"linear\", cycleRankings);\n\n    // Set the data to be reloaded two seconds before the scrolling terminates.\n    var reloadDataTime = Math.max(0, scrollTime - 2000);\n    setTimeout(getRankingsData, reloadDataTime);\n  } else {\n    // The rankings got shorter for whatever reason, so revert to static updating.\n    setTimeout(updateStaticRankings, staticUpdateIntervalMs);\n  }\n};\n\n// Updates the \"Standings as of\" message with the given value, or blanks it out if there is no data yet.\nvar setHighestPlayedMatch = function (highestPlayedMatch) {\n  if (highestPlayedMatch === \"\") {\n    $(\"#highestPlayedMatch\").text(\"\");\n  } else {\n    $(\"#highestPlayedMatch\").text(\"Standings as of \" + highestPlayedMatch);\n  }\n};\n\n// Handles a websocket message to update the event status message.\nvar handleEventStatus = function (data) {\n  $(\"#earlyLateMessage\").text(data.EarlyLateMessage);\n};\n\n$(function () {\n  // Read the configuration for this display from the URL query string.\n  var urlParams = new URLSearchParams(window.location.search);\n  scrollMsPerRow = urlParams.get(\"scrollMsPerRow\");\n\n  // Set up the websocket back to the server. Used only for remote forcing of reloads.\n  websocket = new CheesyWebsocket(\"/displays/rankings/websocket\", {\n    eventStatus: function (event) {\n      handleEventStatus(event.data);\n    },\n  });\n\n  updateStaticRankings();\n});\n"
  },
  {
    "path": "static/js/referee_panel.js",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side logic for the referee interface.\n\nvar websocket;\nlet redFoulsHashCode = 0;\nlet blueFoulsHashCode = 0;\n\n// Sends the foul to the server to add it to the list.\nconst addFoul = function (alliance, isMajor) {\n  websocket.send(\"addFoul\", {Alliance: alliance, IsMajor: isMajor});\n}\n\n// Toggles the foul type between minor and major.\nconst toggleFoulType = function (alliance, index) {\n  websocket.send(\"toggleFoulType\", {Alliance: alliance, Index: index});\n}\n\n// Updates the team that the foul is attributed to.\nconst updateFoulTeam = function (alliance, index, teamId) {\n  websocket.send(\"updateFoulTeam\", {Alliance: alliance, Index: index, TeamId: teamId});\n}\n\n// Updates the rule that the foul is for.\nconst updateFoulRule = function (alliance, index, ruleId) {\n  websocket.send(\"updateFoulRule\", {Alliance: alliance, Index: index, RuleId: ruleId});\n}\n\n// Removes the foul with the given parameters from the list.\nvar deleteFoul = function (alliance, index) {\n  websocket.send(\"deleteFoul\", {Alliance: alliance, Index: index});\n};\n\n// Cycles through no card, yellow card, and red card.\nvar cycleCard = function (cardButton) {\n  var newCard = \"\";\n  if ($(cardButton).attr(\"data-card\") === \"\") {\n    newCard = \"yellow\";\n  } else if ($(cardButton).attr(\"data-card\") === \"yellow\") {\n    newCard = \"red\";\n  }\n  websocket.send(\n    \"card\",\n    {Alliance: $(cardButton).attr(\"data-alliance\"), TeamId: parseInt($(cardButton).attr(\"data-team\")), Card: newCard}\n  );\n  $(cardButton).attr(\"data-card\", newCard);\n};\n\n// Sends a websocket message to signal to the volunteers that they may enter the field.\nvar signalVolunteers = function () {\n  websocket.send(\"signalVolunteers\");\n};\n\n// Sends a websocket message to signal to the teams that they may enter the field.\nvar signalReset = function () {\n  websocket.send(\"signalReset\");\n};\n\n// Signals the scorekeeper that foul entry is complete for this match.\nvar commitMatch = function () {\n  websocket.send(\"commitMatch\");\n};\n\n// Handles a websocket message to update the teams for the current match.\nvar handleMatchLoad = function (data) {\n  $(\"#matchName\").text(data.Match.LongName);\n\n  setTeamCard(\"red\", 1, data.Teams[\"R1\"]);\n  setTeamCard(\"red\", 2, data.Teams[\"R2\"]);\n  setTeamCard(\"red\", 3, data.Teams[\"R3\"]);\n  setTeamCard(\"blue\", 1, data.Teams[\"B1\"]);\n  setTeamCard(\"blue\", 2, data.Teams[\"B2\"]);\n  setTeamCard(\"blue\", 3, data.Teams[\"B3\"]);\n\n  $(\"#redScoreSummary .team-1\").text(data.Teams[\"R1\"].Id);\n  $(\"#redScoreSummary .team-2\").text(data.Teams[\"R2\"].Id);\n  $(\"#redScoreSummary .team-3\").text(data.Teams[\"R3\"].Id);\n  $(\"#blueScoreSummary .team-1\").text(data.Teams[\"B1\"].Id);\n  $(\"#blueScoreSummary .team-2\").text(data.Teams[\"B2\"].Id);\n  $(\"#blueScoreSummary .team-3\").text(data.Teams[\"B3\"].Id);\n};\n\n// Handles a websocket message to update the match status.\nconst handleMatchTime = function (data) {\n  $(\".control-button\").attr(\"data-enabled\", matchStates[data.MatchState] === \"POST_MATCH\");\n};\n\nconst endgameStatusNames = [\n  \"None\",\n  \"Park\",\n  \"Shallow\",\n  \"Deep\",\n];\n\n// Handles a websocket message to update the realtime scoring fields.\nconst handleRealtimeScore = function (data) {\n  for (const [teamId, card] of Object.entries(Object.assign(data.RedCards, data.BlueCards))) {\n    $(`[data-team=\"${teamId}\"]`).attr(\"data-card\", card);\n  }\n\n  const newRedFoulsHashCode = hashObject(data.Red.Score.Fouls);\n  const newBlueFoulsHashCode = hashObject(data.Blue.Score.Fouls);\n  if (newRedFoulsHashCode !== redFoulsHashCode || newBlueFoulsHashCode !== blueFoulsHashCode) {\n    redFoulsHashCode = newRedFoulsHashCode;\n    blueFoulsHashCode = newBlueFoulsHashCode;\n    fetch(\"/panels/referee/foul_list\")\n      .then(response => response.text())\n      .then(svg => $(\"#foulList\").html(svg));\n  }\n\n  for (alliance of [\"red\", \"blue\"]) {\n    let score;\n    if (alliance === \"red\") {\n      score = data.Red.Score;\n    } else {\n      score = data.Blue.Score;\n    }\n\n    let l1_total = score.Reef.TroughNear + score.Reef.TroughFar;\n    let l2_total = score.Reef.Branches[0].filter(Boolean).length;\n    let l3_total = score.Reef.Branches[1].filter(Boolean).length;\n    let l4_total = score.Reef.Branches[2].filter(Boolean).length;\n    let l1_auto_total = score.Reef.AutoTroughNear + score.Reef.AutoTroughFar;\n    let l2_auto_total = score.Reef.AutoBranches[0].filter(Boolean).length;\n    let l3_auto_total = score.Reef.AutoBranches[1].filter(Boolean).length;\n    let l4_auto_total = score.Reef.AutoBranches[2].filter(Boolean).length;\n\n    let scoreRoot = `${alliance}ScoreSummary`;\n    $(`#${scoreRoot} .team-1-leave`).text(score.LeaveStatuses[0] ? \"✓\" : \"❌\");\n    $(`#${scoreRoot} .team-2-leave`).text(score.LeaveStatuses[1] ? \"✓\" : \"❌\");\n    $(`#${scoreRoot} .team-3-leave`).text(score.LeaveStatuses[2] ? \"✓\" : \"❌\");\n    $(`#${scoreRoot} .team-1-endgame`).text(endgameStatusNames[score.EndgameStatuses[0]]);\n    $(`#${scoreRoot} .team-2-endgame`).text(endgameStatusNames[score.EndgameStatuses[1]]);\n    $(`#${scoreRoot} .team-3-endgame`).text(endgameStatusNames[score.EndgameStatuses[2]]);\n    $(`#${scoreRoot} .coral-l1`).text(l1_total);\n    $(`#${scoreRoot} .coral-l2`).text(l2_total);\n    $(`#${scoreRoot} .coral-l3`).text(l3_total);\n    $(`#${scoreRoot} .coral-l4`).text(l4_total);\n    $(`#${scoreRoot} .coral-l1-auto`).text(l1_auto_total);\n    $(`#${scoreRoot} .coral-l2-auto`).text(l2_auto_total);\n    $(`#${scoreRoot} .coral-l3-auto`).text(l3_auto_total);\n    $(`#${scoreRoot} .coral-l4-auto`).text(l4_auto_total);\n    $(`#${scoreRoot} .processor`).text(score.ProcessorAlgae);\n    $(`#${scoreRoot} .barge`).text(score.BargeAlgae);\n  }\n}\n\n// Handles a websocket message to update the scoring commit status.\nconst handleScoringStatus = function (data) {\n  if (data.RefereeScoreReady) {\n    $(\"#commitButton\").attr(\"data-enabled\", false);\n  }\n  updateScoreStatus(data, \"red_near\", \"#redNearScoreStatus\", \"Red Near\");\n  updateScoreStatus(data, \"red_far\", \"#redFarScoreStatus\", \"Red Far\");\n  updateScoreStatus(data, \"blue_near\", \"#blueNearScoreStatus\", \"Blue Near\");\n  updateScoreStatus(data, \"blue_far\", \"#blueFarScoreStatus\", \"Blue Far\");\n}\n\n// Helper function to update a badge that shows scoring panel commit status.\nconst updateScoreStatus = function (data, position, element, displayName) {\n  const status = data.PositionStatuses[position];\n  $(element).text(`${displayName} ${status.NumPanelsReady}/${status.NumPanels}`);\n  $(element).attr(\"data-present\", status.NumPanels > 0);\n  $(element).attr(\"data-ready\", status.Ready);\n};\n\n// Populates the red/yellow card button for a given team.\nconst setTeamCard = function (alliance, position, team) {\n  const cardButton = $(`#${alliance}Team${position}Card`);\n  if (team === null) {\n    cardButton.text(0);\n    cardButton.attr(\"data-team\", 0)\n    cardButton.attr(\"data-old-yellow-card\", \"\");\n  } else {\n    cardButton.text(team.Id);\n    cardButton.attr(\"data-team\", team.Id)\n    cardButton.attr(\"data-old-yellow-card\", team.YellowCard);\n  }\n  cardButton.attr(\"data-card\", \"\");\n}\n\n// Produces a hash code of the given object for use in equality comparisons.\nconst hashObject = function (object) {\n  const s = JSON.stringify(object);\n  let h = 0;\n  for (let i = 0; i < s.length; i++) {\n    h = Math.imul(31, h) + s.charCodeAt(i) | 0;\n  }\n  return h;\n}\n\n$(function () {\n  // Read the configuration for this display from the URL query string.\n  var urlParams = new URLSearchParams(window.location.search);\n  $(\".headRef-dependent\").attr(\"data-hr\", urlParams.get(\"hr\"));\n\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/panels/referee/websocket\", {\n    matchLoad: function (event) {\n      handleMatchLoad(event.data);\n    },\n    matchTime: function (event) {\n      handleMatchTime(event.data);\n    },\n    realtimeScore: function (event) {\n      handleRealtimeScore(event.data);\n    },\n    scoringStatus: function (event) {\n      handleScoringStatus(event.data);\n    },\n  });\n});\n"
  },
  {
    "path": "static/js/scoring_panel.js",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n// Author: ian@yann.io (Ian Thompson)\n//\n// Client-side logic for the scoring interface.\n\nvar websocket;\nlet alliance;\nlet nearSide;\nlet committed = false;\n\n// True when scoring controls in general should be available\nlet scoringAvailable = false;\n// True when the commit button should be available\nlet commitAvailable = false;\n// True when teleop-only scoring controls should be available\nlet inTeleop = false;\n// True when post-auto and in edit auto mode\nlet editingAuto = false;\n\nlet localFoulCounts = {\n  \"red-minor\": 0,\n  \"blue-minor\": 0,\n  \"red-major\": 0,\n  \"blue-major\": 0,\n}\n\n// Handle controls to open/close the endgame dialog\nconst endgameDialog = $(\"#endgame-dialog\")[0];\nconst showEndgameDialog = function () {\n  endgameDialog.showModal();\n}\nconst closeEndgameDialog = function () {\n  endgameDialog.close();\n}\nconst closeEndgameDialogIfOutside = function (event) {\n  if (event.target === endgameDialog) {\n    closeEndgameDialog();\n  }\n}\n\nconst foulsDialog = $(\"#fouls-dialog\")[0];\nconst showFoulsDialog = function () {\n  foulsDialog.showModal();\n}\nconst closeFoulsDialog = function () {\n  foulsDialog.close();\n}\nconst closeFoulsDialogIfOutside = function (event) {\n  if (event.target === foulsDialog) {\n    closeFoulsDialog();\n  }\n}\n\n// Handles a websocket message to update the teams for the current match.\nconst handleMatchLoad = function (data) {\n  $(\"#matchName\").text(data.Match.LongName);\n  if (alliance === \"red\") {\n    $(\".team-1 .team-num\").text(data.Match.Red1);\n    $(\".team-2 .team-num\").text(data.Match.Red2);\n    $(\".team-3 .team-num\").text(data.Match.Red3);\n  } else {\n    $(\".team-1 .team-num\").text(data.Match.Blue1);\n    $(\".team-2 .team-num\").text(data.Match.Blue2);\n    $(\".team-3 .team-num\").text(data.Match.Blue3);\n  }\n};\n\nconst renderLocalFoulCounts = function () {\n  for (const foulType in localFoulCounts) {\n    const count = localFoulCounts[foulType];\n    $(`#foul-${foulType} .fouls-local`).text(count);\n  }\n}\n\nconst resetFoulCounts = function () {\n  localFoulCounts[\"red-minor\"] = 0;\n  localFoulCounts[\"blue-minor\"] = 0;\n  localFoulCounts[\"red-major\"] = 0;\n  localFoulCounts[\"blue-major\"] = 0;\n  renderLocalFoulCounts();\n}\n\nconst addFoul = function (alliance, isMajor) {\n  const foulType = `${alliance}-${isMajor ? \"major\" : \"minor\"}`;\n  localFoulCounts[foulType] += 1;\n  websocket.send(\"addFoul\", {Alliance: alliance, IsMajor: isMajor});\n  renderLocalFoulCounts();\n}\n\n// Handles a websocket message to update the match status.\nconst handleMatchTime = function (data) {\n  switch (matchStates[data.MatchState]) {\n    case \"AUTO_PERIOD\":\n    case \"PAUSE_PERIOD\":\n      scoringAvailable = true;\n      commitAvailable = false;\n      inTeleop = false;\n      editingAuto = false;\n      committed = false;\n      break;\n    case \"TELEOP_PERIOD\":\n      scoringAvailable = true;\n      commitAvailable = false;\n      inTeleop = true;\n      committed = false;\n      break;\n    case \"POST_MATCH\":\n      if (!committed) {\n        scoringAvailable = true;\n        commitAvailable = true;\n        inTeleop = true;\n      }\n      break;\n    default:\n      scoringAvailable = false;\n      commitAvailable = false;\n      inTeleop = false;\n      editingAuto = false;\n      committed = false;\n      resetFoulCounts();\n  }\n  updateUIMode();\n};\n\n// Switch in and out of autonomous editing mode\nconst toggleEditAuto = function () {\n  editingAuto = !editingAuto;\n  updateUIMode();\n}\n\n// Clear any local ephemeral state that is not maintained by the server\nconst resetLocalState = function () {\n  committed = false;\n  editingAuto = false;\n  updateUIMode();\n}\n\n// Refresh which UI controls are enabled/disabled\nconst updateUIMode = function () {\n  $(\".scoring-button\").prop('disabled', !scoringAvailable);\n  $(\".scoring-teleop-button\").prop('disabled', !(inTeleop && scoringAvailable));\n  $(\"#commit\").prop('disabled', !commitAvailable);\n  $(\"#edit-auto\").prop('disabled', !(inTeleop && scoringAvailable));\n  $(\".container\").attr(\"data-scoring-auto\", (!inTeleop || editingAuto) && scoringAvailable);\n  $(\".container\").attr(\"data-in-teleop\", inTeleop && scoringAvailable);\n  $(\"#edit-auto\").text(editingAuto ? \"Save Auto\" : \"Edit Auto\");\n}\n\nconst endgameStatusNames = [\n  \"None\",\n  \"Park\",\n  \"Shallow\",\n  \"Deep\",\n];\n\n// Handles a websocket message to update the realtime scoring fields.\nconst handleRealtimeScore = function (data) {\n  let realtimeScore;\n  if (alliance === \"red\") {\n    realtimeScore = data.Red;\n  } else {\n    realtimeScore = data.Blue;\n  }\n  const score = realtimeScore.Score;\n\n  for (let i = 0; i < 3; i++) {\n    const i1 = i + 1;\n    $(`#auto-status-${i1} > .team-text`).text(score.LeaveStatuses[i] ? \"Leave\" : \"None\");\n    $(`#auto-status-${i1}`).attr(\"data-selected\", score.LeaveStatuses[i]);\n    $(`#endgame-status-${i1} > .team-text`).text(endgameStatusNames[score.EndgameStatuses[i]]);\n    $(`#endgame-status-${i1}`).attr(\"data-selected\", endgameStatusNames[score.EndgameStatuses[i]] != \"None\");\n    for (let j = 0; j < endgameStatusNames.length; j++) {\n      $(`#endgame-input-${i1} .endgame-${j}`).attr(\"data-selected\", j == score.EndgameStatuses[i]);\n    }\n  }\n\n  for (let i = 0; i < 12; i++) {\n    const i1 = i + 1;\n    for (let j = 0; j < 3; j++) {\n      const j2 = j + 2;\n      $(`#reef-column-${i1}`).attr(`data-l${j2}-scored`, score.Reef.Branches[j][i]);\n      $(`#reef-column-${i1}`).attr(`data-l${j2}-auto-scored`, score.Reef.AutoBranches[j][i]);\n    }\n  }\n\n  const l1Total = score.Reef.TroughNear + score.Reef.TroughFar;\n  $(\"#l1-total-count\").text(l1Total);\n  \n  $(`#barge .counter-value`).text(score.BargeAlgae);\n  $(`#processor .counter-value`).text(score.ProcessorAlgae);\n\n  if (nearSide) {\n    $(`#trough .counter-value`).text(score.Reef.TroughNear);\n    $(`#trough .counter-auto-value`).text(score.Reef.AutoTroughNear);\n  } else {\n    $(`#trough .counter-value`).text(score.Reef.TroughFar);\n    $(`#trough .counter-auto-value`).text(score.Reef.AutoTroughFar);\n  }\n\n  redFouls = data.Red.Score.Fouls || [];\n  blueFouls = data.Blue.Score.Fouls || [];\n  $(`#foul-blue-minor .fouls-global`).text(blueFouls.filter(foul => !foul.IsMajor).length)\n  $(`#foul-blue-major .fouls-global`).text(blueFouls.filter(foul => foul.IsMajor).length)\n  $(`#foul-red-minor .fouls-global`).text(redFouls.filter(foul => !foul.IsMajor).length)\n  $(`#foul-red-major .fouls-global`).text(redFouls.filter(foul => foul.IsMajor).length)\n};\n\n// Websocket message senders for various buttons\nconst handleCounterClick = function (command, adjustment) {\n  websocket.send(command, {\n    Adjustment: adjustment,\n    Current: true,\n    Autonomous: !inTeleop || editingAuto,\n    NearSide: nearSide\n  });\n}\nconst handleLeaveClick = function (teamPosition) {\n  websocket.send(\"leave\", {TeamPosition: teamPosition});\n}\nconst handleEndgameClick = function (teamPosition, endgameStatus) {\n  websocket.send(\"endgame\", {TeamPosition: teamPosition, EndgameStatus: endgameStatus});\n}\nconst handleReefClick = function (reefPosition, reefLevel) {\n  websocket.send(\"reef\", {\n    ReefPosition: reefPosition,\n    ReefLevel: reefLevel,\n    Current: !editingAuto,\n    Autonomous: !inTeleop || editingAuto,\n    NearSide: nearSide\n  });\n}\n\n// Sends a websocket message to indicate that the score for this alliance is ready.\nconst commitMatchScore = function () {\n  websocket.send(\"commitMatch\");\n\n  committed = true;\n  scoringAvailable = false;\n  commitAvailable = false;\n  inTeleop = false;\n  editingAuto = false;\n  updateUIMode();\n};\n\n$(function () {\n  position = window.location.href.split(\"/\").slice(-1)[0];\n  [alliance, side] = position.split(\"_\");\n  $(\".container\").attr(\"data-alliance\", alliance);\n  nearSide = side === \"near\";\n  resetLocalState();\n\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/panels/scoring/\" + position + \"/websocket\", {\n    matchLoad: function (event) {\n      handleMatchLoad(event.data);\n    },\n    matchTime: function (event) {\n      handleMatchTime(event.data);\n    },\n    realtimeScore: function (event) {\n      handleRealtimeScore(event.data);\n    },\n    resetLocalState: function (event) {\n      resetLocalState();\n    },\n  });\n});\n"
  },
  {
    "path": "static/js/setup_displays.js",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side logic for the display configuration page.\n\nvar displayTemplate = Handlebars.compile($(\"#displayTemplate\").html());\nvar websocket;\nvar fieldsChanged = false;\n\nvar configureDisplay = function (displayId) {\n  // Convert configuration string into map.\n  var configurationMap = {}\n  $.each($(\"#displayConfiguration\" + displayId).val().split(\"&\"), function (index, param) {\n    var keyValuePair = param.split(\"=\");\n    configurationMap[keyValuePair[0]] = keyValuePair[1];\n  });\n\n  fieldsChanged = false;\n  websocket.send(\"configureDisplay\", {\n    Id: displayId,\n    Nickname: $(\"#displayNickname\" + displayId).val(),\n    Type: parseInt($(\"#displayType\" + displayId).val()),\n    Configuration: configurationMap\n  });\n};\n\nvar undoChanges = function () {\n  window.location.reload();\n};\n\nvar reloadDisplay = function (displayId) {\n  websocket.send(\"reloadDisplay\", displayId);\n};\n\nvar reloadAllDisplays = function () {\n  websocket.send(\"reloadAllDisplays\");\n};\n\n// Register that an input element has been modified by the user to avoid overwriting with a server update.\nvar markChanged = function (element) {\n  fieldsChanged = true;\n  element.setAttribute(\"data-changed\", true);\n};\n\n// Handles a websocket message to refresh the display list.\nvar handleDisplayConfiguration = function (data) {\n  if (fieldsChanged) {\n    // Don't overwrite anything if the user has made unsaved changes.\n    return;\n  }\n\n  $(\"#displayContainer\").empty();\n\n  $.each(data, function (displayId, display) {\n    var displayRow = displayTemplate(display);\n    $(\"#displayContainer\").append(displayRow);\n    $(\"#displayNickname\" + displayId).val(display.DisplayConfiguration.Nickname);\n    $(\"#displayType\" + displayId).val(display.DisplayConfiguration.Type);\n\n    // Convert configuration map to query string format.\n    var configurationString = $.map(Object.entries(display.DisplayConfiguration.Configuration), function (entry) {\n      return entry.join(\"=\");\n    }).join(\"&\");\n    $(\"#displayConfiguration\" + displayId).val(configurationString);\n  });\n};\n\n$(function () {\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/setup/displays/websocket\", {\n    displayConfiguration: function (event) {\n      handleDisplayConfiguration(event.data);\n    }\n  });\n});\n"
  },
  {
    "path": "static/js/setup_field_testing.js",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side logic for the Field Testing page.\n\nvar websocket;\n\n// Sends a websocket message to play a given game sound on the audience display.\nvar playSound = function (sound) {\n  websocket.send(\"playSound\", sound);\n};\n\n// Handles a websocket message to update the PLC IO status.\nvar handlePlcIoChange = function (data) {\n  $.each(data.Inputs, function (index, input) {\n    $(\"#input\" + index).text(input)\n    $(\"#input\" + index).attr(\"data-plc-value\", input);\n  });\n\n  $.each(data.Registers, function (index, register) {\n    $(\"#register\" + index).text(register)\n  });\n\n  $.each(data.Coils, function (index, coil) {\n    $(\"#coil\" + index).text(coil)\n    $(\"#coil\" + index).attr(\"data-plc-value\", coil);\n  });\n};\n\n$(function () {\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/setup/field_testing/websocket\", {\n    plcIoChange: function (event) {\n      handlePlcIoChange(event.data);\n    }\n  });\n});\n"
  },
  {
    "path": "static/js/setup_schedule.js",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side methods for the schedule generation page.\n\nvar blockTemplate = Handlebars.compile($(\"#blockTemplate\").html());\nvar blockMatches = {};\n\n// Adds a new scheduling block to the page.\nvar addBlock = function (startTime, numMatches, matchSpacingSec) {\n  var lastBlockNumber = getLastBlockNumber();\n  if (!startTime) {\n    if ($.isEmptyObject(blockMatches)) {\n      matchSpacingSec = 360;\n      startTime = moment().add(1, \"hour\").startOf(\"hour\");\n    } else {\n      // Start the next block where the last one left off and use the same spacing.\n      var lastStartTime = moment($(\"#startTime\" + lastBlockNumber).val(), \"YYYY-MM-DD hh:mm:ss A\");\n      var lastNumMatches = blockMatches[lastBlockNumber];\n      matchSpacingSec = getMatchSpacingSec(lastBlockNumber);\n      startTime = moment(lastStartTime + lastNumMatches * matchSpacingSec * 1000);\n    }\n    numMatches = 10;\n  }\n  var endTime = moment(startTime + numMatches * matchSpacingSec * 1000);\n  lastBlockNumber += 1;\n  var matchSpacingMinSec = moment(matchSpacingSec * 1000).format(\"m:ss\");\n  var block = blockTemplate({blockNumber: lastBlockNumber, matchSpacingMinSec: matchSpacingMinSec});\n  $(\"#blockContainer\").append(block);\n  newDateTimePicker(\"startTimePicker\" + lastBlockNumber, startTime.toDate());\n  newDateTimePicker(\"endTimePicker\" + lastBlockNumber, endTime.toDate());\n  updateBlock(lastBlockNumber);\n};\n\n// Updates the per-block and global schedule statistics.\nvar updateBlock = function (blockNumber) {\n  var startTime = moment($(\"#startTime\" + blockNumber).val(), \"YYYY-MM-DD hh:mm:ss A\");\n  var endTime = moment($(\"#endTime\" + blockNumber).val(), \"YYYY-MM-DD hh:mm:ss A\");\n  var matchSpacingSec = getMatchSpacingSec(blockNumber);\n  var numMatches = Math.floor((endTime - startTime) / matchSpacingSec / 1000);\n  var actualEndTime = moment(startTime + numMatches * matchSpacingSec * 1000).format(\"hh:mm:ss A\");\n  blockMatches[blockNumber] = numMatches;\n  if (matchSpacingSec === \"\" || isNaN(numMatches) || numMatches <= 0) {\n    numMatches = \"\";\n    actualEndTime = \"\";\n    blockMatches[blockNumber] = 0;\n  }\n  $(\"#numMatches\" + blockNumber).text(numMatches);\n  $(\"#actualEndTime\" + blockNumber).text(actualEndTime);\n\n  updateStats();\n};\n\nvar updateStats = function () {\n  // Update total number of matches.\n  var totalNumMatches = 0;\n  $.each(blockMatches, function (k, v) {\n    totalNumMatches += v;\n  });\n  var matchesPerTeam = Math.floor(totalNumMatches * 6 / numTeams);\n  var numExcessMatches = totalNumMatches - Math.ceil(matchesPerTeam * numTeams / 6);\n  var nextLevelMatches = Math.ceil((matchesPerTeam + 1) * numTeams / 6) - totalNumMatches;\n  $(\"#totalNumMatches\").text(totalNumMatches);\n  $(\"#matchesPerTeam\").text(matchesPerTeam);\n  $(\"#numExcessMatches\").text(numExcessMatches);\n  $(\"#nextLevelMatches\").text(nextLevelMatches);\n};\n\nvar deleteBlock = function (blockNumber) {\n  delete blockMatches[blockNumber];\n  $(\"#block\" + blockNumber).remove();\n  updateStats();\n};\n\n// Dynamically generates and posts a form containing the schedule blocks to the server for population.\nvar generateSchedule = function () {\n  var form = $(\"#scheduleForm\");\n  form.attr(\"method\", \"POST\");\n  form.attr(\"action\", \"/setup/schedule/generate\");\n  var addField = function (name, value) {\n    var field = $(document.createElement(\"input\"));\n    field.attr(\"type\", \"hidden\");\n    field.attr(\"name\", name);\n    field.attr(\"value\", value);\n    form.append(field);\n  };\n  var i = 0;\n  $.each(blockMatches, function (k, v) {\n    addField(\"startTime\" + i, $(\"#startTime\" + k).val());\n    addField(\"numMatches\" + i, $(\"#numMatches\" + k).text());\n    addField(\"matchSpacingSec\" + i, getMatchSpacingSec(k));\n    i++;\n  });\n  addField(\"numScheduleBlocks\", i);\n  form.submit();\n};\n\n// Parses the min:sec match spacing field for the given block and returns the number of seconds.\nvar getMatchSpacingSec = function (blockNumber) {\n  var matchSpacingMinSec = $(\"#matchSpacingMinSec\" + blockNumber).val().split(\":\");\n  return parseInt(matchSpacingMinSec[0]) * 60 + parseInt(matchSpacingMinSec[1]);\n};\n\nvar getLastBlockNumber = function () {\n  var max = 0;\n  $.each(blockMatches, function (k, v) {\n    var number = parseInt(k);\n    if (number > max) {\n      max = number;\n    }\n  });\n  return max;\n};\n"
  },
  {
    "path": "static/js/twitch_display.js",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side logic for the Twitch stream display.\n\nvar websocket;\n\n$(function () {\n  // Read the configuration for this display from the URL query string.\n  var urlParams = new URLSearchParams(window.location.search);\n\n  // Embed the video stream.\n  new Twitch.Embed(\"twitchEmbed\", {\n    channel: urlParams.get(\"channel\"),\n    width: window.innerWidth,\n    height: window.innerHeight,\n    layout: \"video\"\n  });\n\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/displays/twitch/websocket\", {});\n});\n"
  },
  {
    "path": "static/js/wall_display.js",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side methods for the wall display.\n\nvar websocket;\nlet transitionMap;\nconst transitionQueue = [];\nlet transitionInProgress = false;\nlet currentScreen = \"blank\";\nlet redSide;\nlet blueSide;\nlet currentMatch;\nlet messageText = \"\";\nlet hasMessage = false;\n\n// Constants for overlay positioning. The CSS is the source of truth for the values that represent initial state.\nconst eventMatchInfoDown = \"30px\";\nconst eventMatchInfoUp = $(\"#eventMatchInfo\").css(\"height\");\nconst logoUp = \"20px\";\nconst logoDown = $(\"#logo\").css(\"top\");\nconst scoreIn = $(\".score\").css(\"width\");\nconst scoreMid = \"185px\";\nconst scoreOut = \"250px\";\nconst scoreFieldsOut = \"25px\";\nconst overlayTopOffset = 110;\nconst timeoutDetailsIn = $(\"#timeoutDetails\").css(\"width\");\nconst timeoutDetailsOut = \"570px\";\n\n// Handles a websocket message to change which screen is displayed.\nconst handleAudienceDisplayMode = function (targetScreen) {\n  if (targetScreen === \"logoLuma\") {\n    targetScreen = \"logo\";\n  }\n  if (\n    targetScreen !== \"intro\" &&\n    targetScreen !== \"match\" &&\n    targetScreen !== \"timeout\" &&\n    targetScreen !== \"logo\"\n  ) {\n    targetScreen = \"blank\";\n  }\n\n  transitionQueue.push(targetScreen);\n  executeTransitionQueue();\n};\n\n// Sequentially executes all transitions in the queue. Returns without doing anything if another invocation is already\n// in progress.\nconst executeTransitionQueue = function () {\n  if (transitionInProgress) {\n    // There is an existing invocation of this method which will execute all transitions in the queue.\n    return;\n  }\n\n  if (transitionQueue.length > 0) {\n    transitionInProgress = true;\n    const targetScreen = transitionQueue.shift();\n    const callback = function () {\n      // When the current transition is complete, call this method again to invoke the next one in the queue.\n      currentScreen = targetScreen;\n      transitionInProgress = false;\n      setTimeout(executeTransitionQueue, 100);  // A small delay is needed to avoid visual glitches.\n    };\n\n    if (targetScreen === currentScreen) {\n      callback();\n      return;\n    }\n\n    let transitions = transitionMap[currentScreen][targetScreen];\n    if (transitions !== undefined) {\n      transitions(callback);\n    } else {\n      // There is no direct transition defined; need to go to the blank screen first.\n      transitionMap[currentScreen][\"blank\"](function () {\n        transitionMap[\"blank\"][targetScreen](callback);\n      });\n    }\n  }\n};\n\n// Handles a websocket message to update the teams for the current match.\nconst handleMatchLoad = function (data) {\n  currentMatch = data.Match;\n  $(`#${redSide}Team1`).text(currentMatch.Red1);\n  $(`#${redSide}Team1`).attr(\"data-yellow-card\", data.Teams[\"R1\"]?.YellowCard);\n  $(`#${redSide}Team2`).text(currentMatch.Red2);\n  $(`#${redSide}Team2`).attr(\"data-yellow-card\", data.Teams[\"R2\"]?.YellowCard);\n  $(`#${redSide}Team3`).text(currentMatch.Red3);\n  $(`#${redSide}Team3`).attr(\"data-yellow-card\", data.Teams[\"R3\"]?.YellowCard);\n  $(`#${redSide}Team1Avatar`).attr(\"src\", getAvatarUrl(currentMatch.Red1));\n  $(`#${redSide}Team2Avatar`).attr(\"src\", getAvatarUrl(currentMatch.Red2));\n  $(`#${redSide}Team3Avatar`).attr(\"src\", getAvatarUrl(currentMatch.Red3));\n  $(`#${blueSide}Team1`).text(currentMatch.Blue1);\n  $(`#${blueSide}Team1`).attr(\"data-yellow-card\", data.Teams[\"B1\"]?.YellowCard);\n  $(`#${blueSide}Team2`).text(currentMatch.Blue2);\n  $(`#${blueSide}Team2`).attr(\"data-yellow-card\", data.Teams[\"B2\"]?.YellowCard);\n  $(`#${blueSide}Team3`).text(currentMatch.Blue3);\n  $(`#${blueSide}Team3`).attr(\"data-yellow-card\", data.Teams[\"B3\"]?.YellowCard);\n  $(`#${blueSide}Team1Avatar`).attr(\"src\", getAvatarUrl(currentMatch.Blue1));\n  $(`#${blueSide}Team2Avatar`).attr(\"src\", getAvatarUrl(currentMatch.Blue2));\n  $(`#${blueSide}Team3Avatar`).attr(\"src\", getAvatarUrl(currentMatch.Blue3));\n\n  // Show alliance numbers if this is a playoff match.\n  if (currentMatch.Type === matchTypePlayoff) {\n    $(\"#\" + redSide + \"PlayoffAlliance\").text(currentMatch.PlayoffRedAlliance);\n    $(\"#\" + blueSide + \"PlayoffAlliance\").text(currentMatch.PlayoffBlueAlliance);\n    $(\".playoff-alliance\").show();\n\n    // Show the series status if this playoff round isn't just a single match.\n    if (data.Matchup.NumWinsToAdvance > 1) {\n      $(\"#\" + redSide + \"PlayoffAllianceWins\").text(data.Matchup.RedAllianceWins);\n      $(\"#\" + blueSide + \"PlayoffAllianceWins\").text(data.Matchup.BlueAllianceWins);\n      $(\"#playoffSeriesStatus\").css(\"display\", \"flex\");\n    } else {\n      $(\"#playoffSeriesStatus\").hide();\n    }\n  } else {\n    $(\"#\" + redSide + \"PlayoffAlliance\").text(\"\");\n    $(\"#\" + blueSide + \"PlayoffAlliance\").text(\"\");\n    $(\".playoff-alliance\").hide();\n    $(\"#playoffSeriesStatus\").hide();\n  }\n\n  let matchName = data.Match.LongName;\n  if (data.Match.NameDetail !== \"\") {\n    matchName += \" &ndash; \" + data.Match.NameDetail;\n  }\n  $(\"#matchName\").html(matchName);\n  $(\"#timeoutNextMatchName\").html(matchName);\n  $(\"#timeoutBreakDescription\").text(data.BreakDescription);\n};\n\n// Handles a websocket message to update the match time countdown.\nconst handleMatchTime = function (data) {\n  translateMatchTime(data, function (matchState, matchStateText, countdownSec) {\n    $(\"#matchTime\").text(getCountdownString(countdownSec));\n  });\n};\n\n// Handles a websocket message to update the match score.\nconst handleRealtimeScore = function (data) {\n  $(`#${redSide}ScoreNumber`).text(data.Red.ScoreSummary.Score - data.Red.ScoreSummary.BargePoints);\n  $(`#${blueSide}ScoreNumber`).text(data.Blue.ScoreSummary.Score - data.Blue.ScoreSummary.BargePoints);\n\n  let redCoral, blueCoral;\n  if (currentMatch.Type === matchTypePlayoff) {\n    redCoral = data.Red.ScoreSummary.NumCoral;\n    blueCoral = data.Blue.ScoreSummary.NumCoral;\n  } else {\n    redCoral = `${data.Red.ScoreSummary.NumCoralLevels}/${data.Red.ScoreSummary.NumCoralLevelsGoal}`;\n    blueCoral = `${data.Blue.ScoreSummary.NumCoralLevels}/${data.Blue.ScoreSummary.NumCoralLevelsGoal}`;\n  }\n  $(`#${redSide}Coral`).text(redCoral);\n  $(`#${redSide}Algae`).text(data.Red.ScoreSummary.NumAlgae);\n  $(`#${blueSide}Coral`).text(blueCoral);\n  $(`#${blueSide}Algae`).text(data.Blue.ScoreSummary.NumAlgae);\n};\n\nconst transitionBlankToIntro = function (callback) {\n  hideMessage(function () {\n    $(\".teams\").css(\"display\", \"flex\");\n    $(\".avatars\").css(\"display\", \"flex\");\n    $(\".avatars\").css(\"opacity\", 1);\n    $(\".score\").transition({queue: false, width: scoreMid}, 500, \"ease\", function () {\n      $(\"#eventMatchInfo\").css(\"display\", \"flex\");\n      $(\"#eventMatchInfo\").transition({queue: false, height: eventMatchInfoDown}, 500, \"ease\", callback);\n    });\n  });\n};\n\nconst transitionBlankToLogo = function (callback) {\n  showMessage(callback);\n}\n\nconst transitionBlankToMatch = function (callback) {\n  hideMessage(function () {\n    $(\".teams\").css(\"display\", \"flex\");\n    $(\".score-fields\").css(\"display\", \"flex\");\n    $(\".score-fields\").transition({queue: false, width: scoreFieldsOut}, 500, \"ease\");\n    $(\"#logo\").transition({queue: false, top: logoUp}, 500, \"ease\");\n    $(\".score\").transition({queue: false, width: scoreOut}, 500, \"ease\", function () {\n      $(\"#eventMatchInfo\").css(\"display\", \"flex\");\n      $(\"#eventMatchInfo\").transition({queue: false, height: eventMatchInfoDown}, 500, \"ease\", callback);\n      $(\".score-number\").transition({queue: false, opacity: 1}, 750, \"ease\");\n      $(\"#matchTime\").transition({queue: false, opacity: 1}, 750, \"ease\");\n      $(\".score-fields\").transition({queue: false, opacity: 1}, 750, \"ease\");\n      $(\".score-aux\").transition({queue: false, opacity: 1}, 750, \"ease\");\n    });\n  });\n};\n\nconst transitionBlankToTimeout = function (callback) {\n  hideMessage(function () {\n    $(\"#timeoutDetails\").transition({queue: false, width: timeoutDetailsOut}, 500, \"ease\");\n    $(\"#logo\").transition({queue: false, top: logoUp}, 500, \"ease\", function () {\n      $(\".timeout-detail\").transition({queue: false, opacity: 1}, 750, \"ease\");\n      $(\"#matchTime\").transition({queue: false, opacity: 1}, 750, \"ease\", callback);\n    });\n  });\n};\n\nconst transitionIntroToBlank = function (callback) {\n  $(\"#eventMatchInfo\").transition({queue: false, height: eventMatchInfoUp}, 500, \"ease\", function () {\n    $(\"#eventMatchInfo\").hide();\n    $(\".score\").transition({queue: false, width: scoreIn}, 500, \"ease\", function () {\n      $(\".avatars\").css(\"opacity\", 0);\n      $(\".avatars\").hide();\n      $(\".teams\").hide();\n      showMessage(callback);\n    });\n  });\n};\n\nconst transitionIntroToMatch = function (callback) {\n  $(\".avatars\").transition({queue: false, opacity: 0}, 500, \"ease\", function () {\n    $(\".avatars\").hide();\n  });\n  $(\".score-fields\").css(\"display\", \"flex\");\n  $(\".score-fields\").transition({queue: false, width: scoreFieldsOut}, 500, \"ease\");\n  $(\"#logo\").transition({queue: false, top: logoUp}, 500, \"ease\");\n  $(\".score\").transition({queue: false, width: scoreOut}, 500, \"ease\", function () {\n    $(\".score-number\").transition({queue: false, opacity: 1}, 750, \"ease\");\n    $(\"#matchTime\").transition({queue: false, opacity: 1}, 750, \"ease\", callback);\n    $(\".score-fields\").transition({queue: false, opacity: 1}, 750, \"ease\");\n    $(\".score-aux\").transition({queue: false, opacity: 1}, 750, \"ease\");\n  });\n};\n\nconst transitionIntroToTimeout = function (callback) {\n  $(\"#eventMatchInfo\").transition({queue: false, height: eventMatchInfoUp}, 500, \"ease\", function () {\n    $(\"#eventMatchInfo\").hide();\n    $(\".score\").transition({queue: false, width: scoreIn}, 500, \"ease\", function () {\n      $(\".avatars\").css(\"opacity\", 0);\n      $(\".avatars\").hide();\n      $(\".teams\").hide();\n      $(\"#timeoutDetails\").transition({queue: false, width: timeoutDetailsOut}, 500, \"ease\");\n      $(\"#logo\").transition({queue: false, top: logoUp}, 500, \"ease\", function () {\n        $(\".timeout-detail\").transition({queue: false, opacity: 1}, 750, \"ease\");\n        $(\"#matchTime\").transition({queue: false, opacity: 1}, 750, \"ease\", callback);\n      });\n    });\n  });\n};\n\nconst transitionLogoToBlank = function (callback) {\n  showMessage(callback);\n}\n\nconst transitionMatchToBlank = function (callback) {\n  $(\"#eventMatchInfo\").transition({queue: false, height: eventMatchInfoUp}, 500, \"ease\");\n  $(\"#matchTime\").transition({queue: false, opacity: 0}, 300, \"linear\");\n  $(\".score-fields\").transition({queue: false, opacity: 0}, 300, \"ease\");\n  $(\".score-aux\").transition({queue: false, opacity: 0}, 750, \"ease\");\n  $(\".score-number\").transition({queue: false, opacity: 0}, 300, \"linear\", function () {\n    $(\"#eventMatchInfo\").hide();\n    $(\".score-fields\").transition({queue: false, width: 0}, 500, \"ease\");\n    $(\"#logo\").transition({queue: false, top: logoDown}, 500, \"ease\");\n    $(\".score\").transition({queue: false, width: scoreIn}, 500, \"ease\", function () {\n      $(\".teams\").hide();\n      $(\".score-fields\").hide();\n      showMessage(callback);\n    });\n  });\n};\n\nconst transitionMatchToIntro = function (callback) {\n  $(\".score-number\").transition({queue: false, opacity: 0}, 300, \"linear\");\n  $(\".score-fields\").transition({queue: false, opacity: 0}, 300, \"ease\");\n  $(\".score-aux\").transition({queue: false, opacity: 0}, 750, \"ease\");\n  $(\"#matchTime\").transition({queue: false, opacity: 0}, 300, \"linear\", function () {\n    $(\".score-fields\").transition({queue: false, width: 0}, 500, \"ease\");\n    $(\"#logo\").transition({queue: false, top: logoDown}, 500, \"ease\");\n    $(\".score\").transition({queue: false, width: scoreMid}, 500, \"ease\", function () {\n      $(\".score-fields\").hide();\n      $(\".avatars\").css(\"display\", \"flex\");\n      $(\".avatars\").transition({queue: false, opacity: 1}, 500, \"ease\", callback);\n    });\n  });\n};\n\nconst transitionTimeoutToBlank = function (callback) {\n  $(\".timeout-detail\").transition({queue: false, opacity: 0}, 300, \"linear\");\n  $(\"#matchTime\").transition({queue: false, opacity: 0}, 300, \"linear\", function () {\n    $(\"#timeoutDetails\").transition({queue: false, width: timeoutDetailsIn}, 500, \"ease\");\n    $(\"#logo\").transition({queue: false, top: logoDown}, 500, \"ease\", function () {\n      showMessage(callback);\n    });\n  });\n};\n\nconst transitionTimeoutToIntro = function (callback) {\n  $(\".timeout-detail\").transition({queue: false, opacity: 0}, 300, \"linear\");\n  $(\"#matchTime\").transition({queue: false, opacity: 0}, 300, \"linear\", function () {\n    $(\"#timeoutDetails\").transition({queue: false, width: timeoutDetailsIn}, 500, \"ease\");\n    $(\"#logo\").transition({queue: false, top: logoDown}, 500, \"ease\", function () {\n      $(\".avatars\").css(\"display\", \"flex\");\n      $(\".avatars\").css(\"opacity\", 1);\n      $(\".teams\").css(\"display\", \"flex\");\n      $(\".score\").transition({queue: false, width: scoreMid}, 500, \"ease\", function () {\n        $(\"#eventMatchInfo\").show();\n        $(\"#eventMatchInfo\").transition({queue: false, height: eventMatchInfoDown}, 500, \"ease\", callback);\n      });\n    });\n  });\n};\n\nconst showMessage = function (callback) {\n  if (!hasMessage) {\n    if (callback) {\n      callback();\n    }\n    return;\n  }\n  $(\"#message\").show();\n  $(\"#message\").transition({queue: false, opacity: 1}, 750, \"ease\", callback);\n};\n\nconst hideMessage = function (callback) {\n  if (!hasMessage) {\n    if (callback) {\n      callback();\n    }\n    return;\n  }\n  $(\"#message\").transition({queue: false, opacity: 0}, 750, \"ease\", function () {\n    $(\"#message\").hide();\n    if (callback) {\n      callback();\n    }\n  });\n};\n\nconst getAvatarUrl = function (teamId) {\n  return \"/api/teams/\" + teamId + \"/avatar\";\n};\n\n$(function () {\n  // Read the configuration for this display from the URL query string.\n  const urlParams = new URLSearchParams(window.location.search);\n  document.body.style.backgroundColor = urlParams.get(\"background\");\n  const reversed = urlParams.get(\"reversed\");\n  if (reversed === \"true\") {\n    redSide = \"right\";\n    blueSide = \"left\";\n  } else {\n    redSide = \"left\";\n    blueSide = \"right\";\n  }\n  $(\".reversible-left\").attr(\"data-reversed\", reversed);\n  $(\".reversible-right\").attr(\"data-reversed\", reversed);\n\n  // Adjust position and size of display contents.\n  const overlayCentering = $(\"#overlayCentering\");\n  overlayCentering.css(\"top\", parseInt(urlParams.get(\"topSpacingPx\")) + overlayTopOffset + \"px\");\n  overlayCentering.css(\"transform\", `scale(${urlParams.get(\"zoomFactor\")})`);\n\n  messageText = urlParams.get(\"message\") || \"\";\n  hasMessage = messageText !== \"\";\n  const messageDiv = $(\"#message\");\n  messageDiv.text(messageText);\n  messageDiv.toggle(hasMessage);\n  if (hasMessage) {\n    showMessage();\n  }\n\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/displays/wall/websocket\", {\n    allianceSelection: function (event) {\n      handleAllianceSelection(event.data);\n    },\n    audienceDisplayMode: function (event) {\n      handleAudienceDisplayMode(event.data);\n    },\n    matchLoad: function (event) {\n      handleMatchLoad(event.data);\n    },\n    matchTime: function (event) {\n      handleMatchTime(event.data);\n    },\n    matchTiming: function (event) {\n      handleMatchTiming(event.data);\n    },\n    realtimeScore: function (event) {\n      handleRealtimeScore(event.data);\n    },\n  });\n\n  // Map how to transition from one screen to another. Missing links between screens indicate that first we\n  // must transition to the blank screen and then to the target screen.\n  transitionMap = {\n    blank: {\n      intro: transitionBlankToIntro,\n      logo: transitionBlankToLogo,\n      match: transitionBlankToMatch,\n      timeout: transitionBlankToTimeout,\n    },\n    intro: {\n      blank: transitionIntroToBlank,\n      match: transitionIntroToMatch,\n      timeout: transitionIntroToTimeout,\n    },\n    logo: {\n      blank: transitionLogoToBlank,\n    },\n    match: {\n      blank: transitionMatchToBlank,\n      intro: transitionMatchToIntro,\n    },\n    timeout: {\n      blank: transitionTimeoutToBlank,\n      intro: transitionTimeoutToIntro,\n    },\n  }\n});\n"
  },
  {
    "path": "static/js/webpage_display.js",
    "content": "// Copyright 2024 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Client-side logic for the web page display.\n\nvar websocket;\n\n$(function () {\n  // Read the configuration for this display from the URL query string.\n  const urlParams = new URLSearchParams(window.location.search);\n  $(\"#webpageFrame\").attr(\"src\", urlParams.get(\"url\"));\n\n  // Set up the websocket back to the server.\n  websocket = new CheesyWebsocket(\"/displays/webpage/websocket\", {});\n});\n"
  },
  {
    "path": "static/manifest/blue_far_scoring.manifest",
    "content": "{\n  \"name\": \"Blue Far Scoring\",\n  \"icons\": [\n    {\n      \"src\": \"/static/img/panel-icon.png\",\n      \"type\": \"image/png\",\n      \"sizes\": \"512x512\"\n    }\n  ],\n  \"scope\": \"/panels/scoring/blue_far\",\n  \"start_url\": \"/panels/scoring/blue_far\",\n  \"display\": \"standalone\",\n  \"orientation\": \"landscape\"\n}\n"
  },
  {
    "path": "static/manifest/blue_near_scoring.manifest",
    "content": "{\n  \"name\": \"Blue Near Scoring\",\n  \"icons\": [\n    {\n      \"src\": \"/static/img/panel-icon.png\",\n      \"type\": \"image/png\",\n      \"sizes\": \"512x512\"\n    }\n  ],\n  \"scope\": \"/panels/scoring/blue_near\",\n  \"start_url\": \"/panels/scoring/blue_near\",\n  \"display\": \"standalone\",\n  \"orientation\": \"landscape\"\n}\n"
  },
  {
    "path": "static/manifest/red_far_scoring.manifest",
    "content": "{\n  \"name\": \"Red Far Scoring\",\n  \"icons\": [\n    {\n      \"src\": \"/static/img/panel-icon.png\",\n      \"type\": \"image/png\",\n      \"sizes\": \"512x512\"\n    }\n  ],\n  \"scope\": \"/panels/scoring/red_far\",\n  \"start_url\": \"/panels/scoring/red_far\",\n  \"display\": \"standalone\",\n  \"orientation\": \"landscape\"\n}\n"
  },
  {
    "path": "static/manifest/red_near_scoring.manifest",
    "content": "{\n  \"name\": \"Red Near Scoring\",\n  \"icons\": [\n    {\n      \"src\": \"/static/img/panel-icon.png\",\n      \"type\": \"image/png\",\n      \"sizes\": \"512x512\"\n    }\n  ],\n  \"scope\": \"/panels/scoring/red_near\",\n  \"start_url\": \"/panels/scoring/red_near\",\n  \"display\": \"standalone\",\n  \"orientation\": \"landscape\"\n}\n"
  },
  {
    "path": "static/manifest/referee.manifest",
    "content": "{\n  \"name\": \"Referee\",\n  \"icons\": [\n    {\n      \"src\": \"/static/img/panel-icon.png\",\n      \"type\": \"image/png\",\n      \"sizes\": \"512x512\"\n    }\n  ],\n  \"scope\": \"/panels/referee\",\n  \"start_url\": \"/panels/referee\",\n  \"display\": \"standalone\",\n  \"orientation\": \"landscape\"\n}\n"
  },
  {
    "path": "switch_config.txt",
    "content": "! Baseline configuration for the Catalyst 3500-series switch. Load this into the switch prior to configuring\n! Cheesy Arena to connect to it. Default password is 1234Five.\n!\n!\n! Last configuration change at 13:18:54 UTC Sat Sep 28 2019\n! NVRAM config last updated at 13:18:57 UTC Sat Sep 28 2019\n!\nversion 15.0\nno service pad\nservice timestamps debug datetime msec\nservice timestamps log datetime msec\nno service password-encryption\n!\nhostname ChezySwitch\n!\nboot-start-marker\nboot-end-marker\n!\n!\nenable secret 5 $1$kKSW$fCMwnMdYvXui1TulfyYHN/\n!\nno aaa new-model\nsystem mtu routing 1500\nip routing\n!\nip dhcp excluded-address 10.0.100.1 10.0.100.125\nip dhcp excluded-address 10.0.100.200 10.0.100.225\n!\nip dhcp pool dhcppool\n network 10.0.100.0 255.255.255.0\n domain-name team254.com\n dns-server 8.8.8.8 8.8.4.4\n default-router 10.0.100.3\n lease 7\n!\n!\nip route 0.0.0.0 0.0.0.0 10.0.100.1\nip route 10.0.0.0 255.0.0.0 Null0\n!\n!\n!\n!\n!\n!\n!\nlldp run\n!\n!\n!\n!\n!\nspanning-tree mode pvst\nspanning-tree portfast default\nspanning-tree extend system-id\n!\nvlan internal allocation policy ascending\n!\n!\n!\ninterface GigabitEthernet0/1\n switchport trunk encapsulation dot1q\n switchport trunk native vlan 100\n switchport mode trunk\n!\ninterface GigabitEthernet0/2\n switchport trunk encapsulation dot1q\n switchport trunk native vlan 100\n switchport mode trunk\n!\ninterface GigabitEthernet0/3\n switchport trunk encapsulation dot1q\n switchport trunk native vlan 100\n switchport mode trunk\n!\ninterface GigabitEthernet0/4\n switchport trunk encapsulation dot1q\n switchport trunk native vlan 100\n switchport mode trunk\n!\ninterface GigabitEthernet0/5\n switchport trunk encapsulation dot1q\n switchport trunk native vlan 100\n switchport mode trunk\n!\ninterface GigabitEthernet0/6\n switchport trunk encapsulation dot1q\n switchport trunk native vlan 100\n switchport mode trunk\n!\ninterface GigabitEthernet0/7\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/8\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/9\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/10\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/11\n switchport access vlan 10\n switchport mode access\n!\ninterface GigabitEthernet0/12\n switchport access vlan 40\n switchport mode access\n!\ninterface GigabitEthernet0/13\n switchport access vlan 20\n switchport mode access\n!\ninterface GigabitEthernet0/14\n switchport access vlan 50\n switchport mode access\n!\ninterface GigabitEthernet0/15\n switchport access vlan 30\n switchport mode access\n!\ninterface GigabitEthernet0/16\n switchport access vlan 60\n switchport mode access\n!\ninterface GigabitEthernet0/17\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/18\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/19\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/20\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/21\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/22\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/23\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/24\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/25\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/26\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/27\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/28\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/29\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/30\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/31\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/32\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/33\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/34\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/35\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/36\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/37\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/38\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/39\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/40\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/41\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/42\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/43\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/44\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/45\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/46\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/47\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/48\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/49\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/50\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/51\n switchport access vlan 100\n switchport mode access\n!\ninterface GigabitEthernet0/52\n switchport access vlan 100\n switchport mode access\n!\ninterface Vlan1\n ip address 10.0.0.3 255.255.255.0\n!\ninterface Vlan10\n ip address 10.0.1.4 255.255.255.0\n ip access-group DS-FMS in\n!\ninterface Vlan20\n ip address 10.0.2.4 255.255.255.0\n ip access-group DS-FMS in\n!\ninterface Vlan30\n ip address 10.0.3.4 255.255.255.0\n ip access-group DS-FMS in\n!\ninterface Vlan40\n ip address 10.0.4.4 255.255.255.0\n ip access-group DS-FMS in\n!\ninterface Vlan50\n ip address 10.0.5.4 255.255.255.0\n ip access-group DS-FMS in\n!\ninterface Vlan60\n ip address 10.0.6.4 255.255.255.0\n ip access-group DS-FMS in\n!\ninterface Vlan100\n ip address 10.0.100.3 255.255.255.0\n!\nip classless\nip http server\nip http secure-server\n!\n!\n!\nip access-list extended DS-FMS\n permit udp any 10.0.100.0 0.0.0.255 eq 1160\n permit tcp any 10.0.100.0 0.0.0.255 eq 1750\n permit icmp any 10.0.100.0 0.0.0.255\n permit icmp any 10.0.0.4 0.255.255.0\n permit udp any any eq bootpc\n permit udp any any eq bootps\n!\nsnmp-server community 1234Five RO\n!\nvstack\n!\nline con 0\n exec-timeout 0 0\nline vty 0 4\n password 1234Five\n login\nline vty 5 15\n password 1234Five\n login\n!\nend\n"
  },
  {
    "path": "templates/alliance_selection.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for controlling the alliance selection process.\n*/}}\n{{define \"title\"}}Alliance Selection{{end}}\n{{define \"body\"}}\n<div class=\"row\">\n  {{if .ErrorMessage}}\n  <div class=\"alert alert-dismissible alert-danger\">\n    <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"alert\"></button>\n    {{.ErrorMessage}}\n  </div>\n  {{end}}\n  {{if len .Alliances | eq 0}}\n  <div class=\"col-lg-3\">\n    <form action=\"/alliance_selection/start\" method=\"POST\">\n      <legend>Alliance Selection</legend>\n      <button type=\"submit\" class=\"btn btn-primary\">Start Alliance Selection</button>\n    </form>\n  </div>\n  {{else}}\n  <div class=\"col-lg-3\">\n    <legend>Alliance Selection</legend>\n    <div class=\"mb-2\">\n      <button type=\"submit\" class=\"btn btn-primary\" form=\"alliancesForm\">Update</button>\n    </div>\n    <div class=\"mb-2\">\n      <button type=\"button\" class=\"btn btn-warning\" onclick=\"$('#confirmResetAllianceSelection').modal('show');\">\n        Reset Alliance Selection\n      </button>\n    </div>\n    <div>\n      <button type=\"button\" class=\"btn btn-danger\" onclick=\"$('#confirmFinalizeAllianceSelection').modal('show');\">\n        Finalize Alliance Selection\n      </button>\n    </div>\n    <div class=\"card card-body bg-body-tertiary mt-4\">\n      <legend>Audience Display</legend>\n      {{template \"audience_display_radio_buttons\"}}\n    </div>\n  </div>\n  <div class=\"col-lg-5\">\n    <form id=\"alliancesForm\" action=\"\" method=\"POST\">\n      <table class=\"table table-striped table-hover\">\n        <thead>\n          <tr>\n            <th>Alliance #</th>\n            <th>Captain</th>\n            <th>Pick 1</th>\n            <th>Pick 2</th>\n            {{if (index .Alliances 0).TeamIds | len | eq 4}}\n            <th>Pick 3</th>\n            {{end}}\n          </tr>\n        </thead>\n        <tbody>\n          {{range $i, $alliance := .Alliances}}\n          <tr>\n            <td class=\"col-lg-2\">{{add $i 1}}</td>\n            {{range $j, $allianceTeamId := $alliance.TeamIds}}\n            {{if eq $allianceTeamId 0}}\n            <td class=\"col-lg-2\">\n              <input type=\"text\" class=\"form-control input-sm\" name=\"selection{{$i}}_{{$j}}\" value=\"\" {{if and (eq $i\n                $.NextRow) (eq $j $.NextCol)}}autofocus{{end}} oninput=\"$(this).parent().addClass('has-warning');\"/>\n            </td>\n            {{else}}\n            <td class=\"col-lg-2\">\n              <input type=\"text\" class=\"form-control input-sm\" name=\"selection{{$i}}_{{$j}}\" value=\"{{$allianceTeamId}}\"\n                oninput=\"$(this).parent().addClass('has-warning');\"/>\n            </td>\n            {{end}}\n            {{end}}\n          </tr>\n          {{end}}\n        </tbody>\n      </table>\n      Press <kbd>Enter</kbd> after each pick is confirmed\n      <div class=\"card card-body bg-body-secondary mt-4\">\n        <div class=\"row\">\n          <div class=\"col-lg-8\">\n            <legend>Timer</legend>\n          </div>\n          <div class=\"col-lg-4 text-end\">\n            <legend id=\"timer\"></legend>\n          </div>\n        </div>\n        <div class=\"row\">\n          <label class=\"col-lg-4 control-label\">Duration</label>\n          <div class=\"col-lg-8\">\n            <label>\n              <input type=\"radio\" name=\"timeLimitSec\" value=\"45\" onclick=\"setTimer(this);\">\n              45 seconds (1st round)\n            </label>\n            <label>\n              <input type=\"radio\" name=\"timeLimitSec\" value=\"90\" onclick=\"setTimer(this);\">\n              90 seconds (2nd+ round)\n            </label>\n            <label>\n              <input type=\"radio\" name=\"timeLimitSec\" value=\"120\" onclick=\"setTimer(this);\">\n              120 seconds (between rounds)\n            </label>\n            <input type=\"text\" class=\"form-control mt-2\" id=\"timeLimitSecInput\" name=\"timeLimitSec\"\n              value=\"{{.TimeLimitSec}}\" onblur=\"setTimer(this);\">\n          </div>\n        </div>\n        <div class=\"mt-3 row justify-content-center\">\n          <div class=\"col-lg-8 gap-3 d-flex justify-content-center\">\n            <button type=\"button\" class=\"btn btn-success\" onclick=\"startTimer();\">Start</button>\n            <button type=\"button\" class=\"btn btn-warning\" onclick=\"stopTimer();\">Pause</button>\n            <button type=\"button\" class=\"btn btn-danger\" onclick=\"restartTimer();\">Reset</button>\n          </div>\n        </div>\n        <div class=\"mt-5 row justify-content-center\">\n          <div class=\"col-lg-8 text-center\">\n            <button type=\"button\" class=\"btn btn-secondary\" onclick=\"hideTimer();\">Hide</button>\n          </div>\n        </div>\n      </div>\n    </form>\n  </div>\n  <div class=\"col-lg-2\">\n    <table class=\"table table-striped table-hover\">\n      <thead>\n        <tr>\n          <th>Rank</th>\n          <th>Team</th>\n        </tr>\n      </thead>\n      <tbody>\n        {{range $team := .RankedTeams}}\n        {{if not $team.Picked}}\n        <tr>\n          <td>{{$team.Rank}}</td>\n          <td>{{$team.TeamId}}</td>\n        </tr>\n        {{end}}\n        {{end}}\n      </tbody>\n    </table>\n  </div>\n  {{end}}\n</div>\n<div id=\"confirmResetAllianceSelection\" class=\"modal\" style=\"top: 20%;\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-header\">\n        <h4 class=\"modal-title\">Confirm</h4>\n        <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"></button>\n      </div>\n      <div class=\"modal-body\">\n        <p>Are you sure you want to reset the alliance selection process?</p>\n      </div>\n      <div class=\"modal-footer\">\n        <form class=\"form-horizontal\" action=\"/alliance_selection/reset\" method=\"POST\">\n          <button type=\"button\" class=\"btn btn-secondary\" data-bs-dismiss=\"modal\">Cancel</button>\n          <button type=\"submit\" class=\"btn btn-danger\">Reset Alliance Selection</button>\n        </form>\n      </div>\n    </div>\n  </div>\n</div>\n<div id=\"confirmFinalizeAllianceSelection\" class=\"modal modal-lg\" style=\"top: 20%;\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-header\">\n        <h4 class=\"modal-title\">Confirm</h4>\n        <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"></button>\n      </div>\n      <form class=\"form-horizontal\" action=\"/alliance_selection/finalize\" method=\"POST\">\n        <div class=\"modal-body\">\n          <p>Are you sure you want to finalize the alliance selection process?</p>\n          <div class=\"row mt-4\">\n            <label class=\"col-lg-6 control-label\">Playoff Round Start Time</label>\n            <div class=\"col-lg-6\">\n              <div class=\"input-group\" id=\"startTimePicker\">\n                <input type=\"text\" class=\"form-control\" name=\"startTime\"/>\n                <span class=\"input-group-text\"><i class=\"bi-calendar-week\"></i></span>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"modal-footer\">\n          <button type=\"button\" class=\"btn btn-secondary\" data-bs-dismiss=\"modal\">Cancel</button>\n          <button type=\"submit\" class=\"btn btn-danger\">Finalize Alliance Selection</button>\n        </div>\n      </form>\n    </div>\n  </div>\n</div>\n{{end}}\n{{define \"script\"}}\n<script src=\"/static/js/match_timing.js\"></script>\n<script src=\"/static/js/alliance_selection.js\"></script>\n<script>\n  $(function () {\n    var startTime = moment(new Date()).hour(13).minute(0).second(0);\n    newDateTimePicker(\"startTimePicker\", startTime.toDate());\n  });\n</script>\n{{end}}\n"
  },
  {
    "path": "templates/alliance_station_display.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nDisplay shown on the screens above each driver station.\n*/}}\n<!DOCTYPE html>\n<html>\n  <head>\n    <title>Alliance Station Display - {{.EventSettings.Name}} - Cheesy Arena </title>\n    <link rel=\"shortcut icon\" href=\"/static/img/favicon.ico\">\n    <link rel=\"stylesheet\" href=\"/static/css/lib/bootstrap.min.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/cheesy-arena.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/alliance_station_display.css\"/>\n  </head>\n  <body>\n    <div id=\"match\" class=\"mode\">\n      <div id=\"preMatch\">\n        <div id=\"teamNumber\"></div>\n        <div id=\"teamName\" class=\"databar\">\n          <span id=\"teamNameText\"></span> <sub id=\"teamRank\"></sub>\n        </div>\n        <div id=\"disabled\" class=\"databar\">DISABLED</div>\n        <div id=\"playoffAllianceInfo\"></div>\n      </div>\n      <div id=\"inMatch\">\n        <div id=\"redScore\" class=\"datapoint\"></div>\n        <div id=\"blueScore\" class=\"datapoint\"></div>\n        <div id=\"timeRemaining\" class=\"datapoint\"></div>\n      </div>\n    </div>\n    <div id=\"logo\" class=\"mode\">\n      <img id=\"logoImg\" src=\"/static/img/alliance-station-logo.png\" alt=\"logo\"/>\n    </div>\n    <div id=\"fieldReset\" class=\"mode\">\n      <div>FIELD<br/>RESET</div>\n    </div>\n    <div id=\"signalCount\" class=\"mode\">\n      <div>COUNT</div>\n    </div>\n    <script src=\"/static/js/lib/jquery.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.json-2.4.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.websocket-0.0.1.js\"></script>\n    <script src=\"/static/js/cheesy-websocket.js\"></script>\n    <script src=\"/static/js/match_timing.js\"></script>\n    <script src=\"/static/js/alliance_station_display.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "templates/announcer_display.html",
    "content": "{{define \"title\"}}Announcer Display{{end}}\n{{define \"body\"}}\n<h3 id=\"matchName\" class=\"mt-4\"></h3>\n<div class=\"row card card-body border-0\">\n  <div class=\"row\">\n    <div class=\"col-sm-2\"><h4>Team #</h4></div>\n    <div class=\"col-sm-4\"><h4>Nickname</h4></div>\n    <div class=\"col-sm-2\"><h4>School</h4></div>\n    <div class=\"col-sm-3\"><h4>Location</h4></div>\n    <div class=\"col-sm-1\"><h4>Rank</h4></div>\n  </div>\n</div>\n<div id=\"teams\"></div>\n<div class=\"row justify-content-center mt-3 mb-3\">\n  <div id=\"matchState\" class=\"col-sm-2 card card-body bg-body-tertiary text-center\">&nbsp;</div>\n  <div id=\"matchTime\" class=\"col-sm-2 card card-body bg-body-tertiary text-center\">&nbsp;</div>\n  <div id=\"redScore\" class=\"col-sm-2 card card-body bg-red text-center\">&nbsp;</div>\n  <div id=\"blueScore\" class=\"col-sm-2 card card-body bg-blue text-center\">&nbsp;</div>\n</div>\n<div class=\"row justify-content-center\">\n  <div id=\"cycleTimeMessage\" class=\"col-lg-4\"></div>\n  <div id=\"earlyLateMessage\" class=\"col-lg-4 text-end\"></div>\n</div>\n<div id=\"matchResult\" class=\"modal\" style=\"top: 5%;\"></div>\n{{end}}\n{{define \"head\"}}\n{{end}}\n{{define \"script\"}}\n<script src=\"/static/js/match_timing.js\"></script>\n<script src=\"/static/js/announcer_display.js\"></script>\n{{end}}\n"
  },
  {
    "path": "templates/announcer_display_match_load.html",
    "content": "{{define \"announcer_display_match_load\"}}\n<div class=\"row card card-body bg-red\">\n  {{if eq .Match.Type playoffMatch}}\n  <h4><b>Alliance {{.Match.PlayoffRedAlliance}}</b></h4>\n  {{end}}\n  {{template \"team\" dict \"alliance\" \"red\" \"team\" (index .Teams \"R1\") \"rankings\" .Rankings}}\n  {{template \"team\" dict \"alliance\" \"red\" \"team\" (index .Teams \"R2\") \"rankings\" .Rankings}}\n  {{template \"team\" dict \"alliance\" \"red\" \"team\" (index .Teams \"R3\") \"rankings\" .Rankings}}\n  {{range $team := .RedOffFieldTeams}}\n  {{template \"team\" dict \"alliance\" \"red\" \"team\" $team \"rankings\" $.Rankings \"isOffField\" true}}\n  {{end}}\n</div>\n<div class=\"row card card-body bg-blue\">\n  {{if eq .Match.Type playoffMatch}}\n  <h4><b>Alliance {{.Match.PlayoffBlueAlliance}}</b></h4>\n  {{end}}\n  {{template \"team\" dict \"alliance\" \"blue\" \"team\" (index .Teams \"B1\") \"rankings\" .Rankings}}\n  {{template \"team\" dict \"alliance\" \"blue\" \"team\" (index .Teams \"B2\") \"rankings\" .Rankings}}\n  {{template \"team\" dict \"alliance\" \"blue\" \"team\" (index .Teams \"B3\") \"rankings\" .Rankings}}\n  {{range $team := .BlueOffFieldTeams}}\n  {{template \"team\" dict \"alliance\" \"blue\" \"team\" $team \"rankings\" $.Rankings \"isOffField\" true}}\n  {{end}}\n</div>\n{{end}}\n{{define \"team\"}}\n<div class=\"row\">\n  {{if .team}}\n  <div class=\"col-sm-2\">\n    <h2><b>{{.team.Id}}</b>{{if .isOffField}}<span style=\"font-size: 0.5em;\"> (not on field)</span>{{end}}</h2>\n  </div>\n  <div class=\"col-sm-4\"><h2>{{.team.Nickname}}</h2></div>\n  <div class=\"col-sm-2\"><h5>{{.team.SchoolName}}</h5></div>\n  <div class=\"col-sm-3\">\n    <div><h5>{{.team.City}}, {{.team.StateProv}}, {{.team.Country}}</h5></div>\n  </div>\n  <div class=\"col-sm-1\">\n    <div class=\"row\">\n      <div class=\"col-sm-6\">{{if index .rankings (itoa .team.Id)}}{{index .rankings (itoa .team.Id)}}{{end}}</div>\n      <div class=\"col-sm-6\">\n        <button type=\"button\" class=\"btn btn-secondary btn-sm\" onclick=\"$('#team{{.team.Id}}Details').modal('show');\">\n          More\n        </button>\n      </div>\n    </div>\n  </div>\n  <div id=\"team{{.team.Id}}Details\" class=\"modal\">\n    <div class=\"modal-dialog\">\n      <div class=\"modal-content\">\n        <div class=\"modal-header\">\n          <h4 class=\"modal-title\">Team {{.team.Id}}</span></h4>\n          <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"></button>\n        </div>\n        <div class=\"modal-body\">\n          <div class=\"mb-3\"><b>Rookie Year:</b> {{.team.RookieYear}}</div>\n          <div class=\"mb-3\"><b>Robot Name:</b> {{.team.RobotName}}</div>\n          <div class=\"mb-1\"><b>Recent Accomplishments:</b></div>\n          <div>{{.team.Accomplishments}}</div>\n        </div>\n        <div class=\"modal-footer\">\n          <button type=\"button\" class=\"btn btn-secondary\" data-bs-dismiss=\"modal\">Close</button>\n        </div>\n      </div>\n    </div>\n  </div>\n  {{else}}\n  <div class=\"col-sm-12\"><h3><b>No team present</b></h3></div>\n  {{end}}\n</div>\n{{end}}\n"
  },
  {
    "path": "templates/announcer_display_score_posted.html",
    "content": "{{define \"announcer_display_score_posted\"}}\n<div class=\"modal-dialog modal-xl\">\n  <div class=\"modal-content\">\n    <div class=\"modal-header\" id=\"savedMatchResult\">\n      <h4 class=\"modal-title\">Final Results &ndash; {{.Match.LongName}}</span></h4>\n      <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"></button>\n    </div>\n    <div class=\"modal-body row\">\n      <div class=\"col-sm-6\">\n        <div class=\"card card-body bg-red\">\n          {{template \"alliance_match_result\" dict \"summary\" .RedScoreSummary \"fouls\" .RedFouls \"cards\" .RedCards\n          \"rankings\" .RedRankings \"rulesViolated\" .RulesViolated \"rankingPoints\" .RedRankingPoints\n          \"matchType\" .Match.Type}}\n        </div>\n      </div>\n      <div class=\"col-sm-6\">\n        <div class=\"card card-body bg-blue\">\n          {{template \"alliance_match_result\" dict \"summary\" .BlueScoreSummary \"fouls\" .BlueFouls \"cards\" .BlueCards\n          \"rankings\" .BlueRankings \"rulesViolated\" .RulesViolated \"rankingPoints\" .BlueRankingPoints\n          \"matchType\" .Match.Type}}\n        </div>\n      </div>\n    </div>\n    <div class=\"modal-footer\">\n      <button type=\"button\" class=\"btn btn-secondary\" data-bs-dismiss=\"modal\">Close</button>\n    </div>\n  </div>\n</div>\n{{end}}\n{{define \"alliance_match_result\"}}\n<h4>Score</h4>\n<div class=\"row justify-content-center\">\n  <div class=\"col-sm-6\">Auto Leave Points</div>\n  <div class=\"col-sm-4\">{{.summary.LeavePoints}}</div>\n</div>\n<div class=\"row justify-content-center\">\n  <div class=\"col-sm-6\">Coral Points</div>\n  <div class=\"col-sm-4\">{{.summary.CoralPoints}}</div>\n</div>\n<div class=\"row justify-content-center\">\n  <div class=\"col-sm-6\">Algae Points</div>\n  <div class=\"col-sm-4\">{{.summary.AlgaePoints}}</div>\n</div>\n<div class=\"row justify-content-center\">\n  <div class=\"col-sm-6\">Barge Points</div>\n  <div class=\"col-sm-4\">{{.summary.BargePoints}}</div>\n</div>\n<div class=\"row justify-content-center\">\n  <div class=\"col-sm-6\">Foul Points</div>\n  <div class=\"col-sm-4\">{{.summary.FoulPoints}}</div>\n</div>\n{{if ne .matchType playoffMatch}}\n<div class=\"row justify-content-center\">\n  <div class=\"col-sm-6\">Auto Bonus RP</div>\n  <div class=\"col-sm-4\">{{if .summary.AutoBonusRankingPoint}}Yes{{else}}No{{end}}</div>\n</div>\n<div class=\"row justify-content-center\">\n  <div class=\"col-sm-6\">Coral Bonus RP</div>\n  <div class=\"col-sm-4\">{{if .summary.CoralBonusRankingPoint}}Yes{{else}}No{{end}}</div>\n</div>\n<div class=\"row justify-content-center\">\n  <div class=\"col-sm-6\">Barge Bonus RP</div>\n  <div class=\"col-sm-4\">{{if .summary.BargeBonusRankingPoint}}Yes{{else}}No{{end}}</div>\n</div>\n{{end}}\n<div class=\"row justify-content-center mt-3\">\n  <div class=\"col-sm-6\"><b>Final Score</b></div>\n  <div class=\"col-sm-4\"><b>{{.summary.Score}}</b></div>\n</div>\n{{if ne .matchType playoffMatch}}\n<div class=\"row justify-content-center\">\n  <div class=\"col-sm-6\"><b>Ranking Points</b></div>\n  <div class=\"col-sm-4\"><b>{{.rankingPoints}}</b></div>\n</div>\n{{end}}\n<h4 class=\"mt-3\">Fouls</h4>\n{{range $foul := .fouls}}\n<div class=\"row justify-content-center\">\n  <div class=\"col-sm-4\">\n    {{if and (index $.rulesViolated $foul.RuleId) (index $.rulesViolated $foul.RuleId).IsRankingPoint}}\n    {{if $foul.IsMajor}}Major{{else}}Minor{{end}} Foul + RP\n    {{else}}\n    {{if $foul.IsMajor}}Major{{else}}Minor{{end}} Foul\n    {{end}}\n  </div>\n  <div class=\"col-sm-3\">Team {{$foul.TeamId}}</div>\n  <div class=\"col-sm-3\" data-bs-toggle=\"tooltip\"\n    {{if index $.rulesViolated $foul.RuleId}}title=\"{{(index $.rulesViolated $foul.RuleId).Description}}\" {{end}}>\n    {{if index $.rulesViolated $foul.RuleId}}{{(index $.rulesViolated $foul.RuleId).RuleNumber}}{{end}}\n  </div>\n</div>\n{{end}}\n<h4 class=\"mt-3\">Cards</h4>\n{{range $team, $card := .cards}}\n{{if $card}}\n<div class=\"row justify-content-center\">\n  <div class=\"col-sm-6\">Team {{$team}}</div>\n  <div class=\"col-sm-4\" style=\"text-transform: capitalize;\">{{$card}}</div>\n</div>\n{{end}}\n{{end}}\n<h4 class=\"mt-3\">Rankings</h4>\n{{range $team, $ranking := .rankings}}\n{{if and $team $ranking}}\n<div class=\"row justify-content-center\">\n  <div class=\"col-sm-6\">Team {{$team}}</div>\n  <div class=\"col-sm-4\">\n    {{$ranking.Rank}}\n    {{if and (gt $ranking.Rank $ranking.PreviousRank) (gt $ranking.PreviousRank 0)}}\n    &#11015;\n    {{else if lt $ranking.Rank $ranking.PreviousRank}}\n    &#11014;\n    {{end}}\n    {{if gt $ranking.PreviousRank 0}}\n    (was {{$ranking.PreviousRank}})\n    {{end}}\n  </div>\n</div>\n{{end}}\n{{end}}\n{{end}}\n"
  },
  {
    "path": "templates/audience_display.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nDisplay shown on the audience screen overlayed over the video.\n*/}}\n<!DOCTYPE html>\n<html>\n  <head>\n    <title>Audience Display - {{.EventSettings.Name}} - Cheesy Arena </title>\n    <link rel=\"shortcut icon\" href=\"/static/img/favicon.ico\">\n    <link rel=\"stylesheet\" href=\"/static/css/lib/bootstrap.min.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/lib/bootstrap-icons.min.css\">\n    <link rel=\"stylesheet\" href=\"/static/css/cheesy-arena.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/audience_display.css\"/>\n  </head>\n  <body>\n    <div id=\"overlayCentering\">\n      <div id=\"matchOverlayContainer\">\n        <div class=\"playoff-alliance\" id=\"leftPlayoffAlliance\"></div>\n        <div id=\"matchOverlay\">\n          <div id=\"matchOverlayTop\">\n            <div class=\"teams\" id=\"leftTeams\">\n              <div id=\"leftTeam1\"></div>\n              <div id=\"leftTeam2\"></div>\n              <div id=\"leftTeam3\"></div>\n            </div>\n            <div class=\"score reversible-left\">\n              <div class=\"avatars\">\n                <img class=\"avatar\" id=\"leftTeam1Avatar\" src=\"\"/>\n                <img class=\"avatar\" id=\"leftTeam2Avatar\" src=\"\"/>\n                <img class=\"avatar\" id=\"leftTeam3Avatar\" src=\"\"/>\n              </div>\n              <div class=\"score-fields\">\n                <div class=\"score-field\">\n                  <img class=\"coral-icon\" src=\"/static/img/coral.png\"/>\n                  <div id=\"leftCoral\"></div>\n                </div>\n                <div class=\"score-field\">\n                  <img class=\"algae-icon\" src=\"/static/img/algae.png\"/>\n                  <div id=\"leftAlgae\"></div>\n                </div>\n              </div>\n              <div class=\"score-number\" id=\"leftScoreNumber\"></div>\n            </div>\n            <div class=\"score score-right reversible-right\">\n              <div class=\"score-number\" id=\"rightScoreNumber\"></div>\n              <div class=\"score-fields\">\n                <div class=\"score-field\">\n                  <div id=\"rightCoral\"></div>\n                  <img class=\"coral-icon\" src=\"/static/img/coral.png\"/>\n                </div>\n                <div class=\"score-field\">\n                  <div id=\"rightAlgae\"></div>\n                  <img class=\"algae-icon\" src=\"/static/img/algae.png\"/>\n                </div>\n              </div>\n              <div class=\"avatars\">\n                <img class=\"avatar\" id=\"rightTeam1Avatar\" src=\"\"/>\n                <img class=\"avatar\" id=\"rightTeam2Avatar\" src=\"\"/>\n                <img class=\"avatar\" id=\"rightTeam3Avatar\" src=\"\"/>\n              </div>\n            </div>\n            <div class=\"teams\" id=\"rightTeams\">\n              <div id=\"rightTeam1\"></div>\n              <div id=\"rightTeam2\"></div>\n              <div id=\"rightTeam3\"></div>\n            </div>\n          </div>\n          <div id=\"eventMatchInfo\">\n            <span>{{.EventSettings.Name}}</span>\n            <span id=\"matchName\"></span>\n          </div>\n        </div>\n        <div class=\"playoff-alliance\" id=\"rightPlayoffAlliance\"></div>\n      </div>\n      <div id=\"playoffSeriesStatus\">\n        <span id=\"leftPlayoffAllianceWins\"></span>&nbsp;-&nbsp;<span id=\"rightPlayoffAllianceWins\"></span>\n      </div>\n      <div class=\"text-center\" id=\"matchCircle\">\n        <img id=\"logo\" src=\"/static/img/game-logo.png\" alt=\"logo\"/>\n        <div id=\"matchTime\"></div>\n      </div>\n      <div id=\"timeoutDetails\">\n        <div class=\"timeout-detail\" id=\"timeoutBreakDescription\"></div>\n        <div class=\"timeout-detail\" id=\"timeoutNextMatch\">\n          Next Up:<br/>\n          <span id=\"timeoutNextMatchName\"></span>\n        </div>\n      </div>\n    </div>\n    <div id=\"blindsContainer\">\n      <div class=\"blinds right background\">\n        <div class=\"blindsCenter blank\"></div>\n      </div>\n      <div class=\"blinds left background\">\n        <div class=\"blindsCenter blank\"></div>\n      </div>\n      <div class=\"blindsCenter full\">\n        <img id=\"blindsLogo\" src=\"/static/img/blinds-logo.png\" alt=\"logo\"/>\n      </div>\n      <div id=\"finalScoreCentering\">\n        <div id=\"finalScore\">\n          <div class=\"final-score-row\">\n            <div class=\"final-score reversible-left\" id=\"leftFinalScore\"></div>\n            <div class=\"final-score reversible-right\" id=\"rightFinalScore\"></div>\n          </div>\n          <div class=\"final-score-row\">\n            <div class=\"final-breakdown final-breakdown-teams\">\n              <div class=\"final-teams reversible-left\">\n                <div class=\"final-alliance playoff-only-field\" id=\"leftFinalAlliance\"></div>\n                {{range $i := seq 4}}\n                <div class=\"final-team-row\">\n                  <img class=\"final-team-avatar\" id=\"leftFinalTeam{{$i}}Avatar\" src=\"\"/>\n                  <div class=\"final-team-number\" id=\"leftFinalTeam{{$i}}\"></div>\n                  <div class=\"final-team-card\">\n                    <div id=\"leftFinalTeam{{$i}}Card\"></div>\n                  </div>\n                  <div class=\"final-team-rank playoff-hidden-field\">\n                    <img id=\"leftFinalTeam{{$i}}RankIndicator\" src=\"\"/>\n                    <div id=\"leftFinalTeam{{$i}}RankNumber\"></div>\n                  </div>\n                </div>\n                {{end}}\n              </div>\n              <div class=\"playoff-only-field\">\n                <div class=\"final-destination\" id=\"leftFinalDestination\"></div>\n              </div>\n            </div>\n            <div class=\"final-breakdown\" id=\"leftFinalBreakdown\">\n              <div id=\"leftFinalLeavePoints\"></div>\n              <div id=\"leftFinalCoralPoints\"></div>\n              <div id=\"leftFinalAlgaePoints\"></div>\n              <div id=\"leftFinalBargePoints\"></div>\n              <div id=\"leftFinalFoulPoints\"></div>\n              <div class=\"playoff-hidden-field\">\n                <div class=\"coopertition-hidden-field\" id=\"leftFinalCoopertitionBonus\"></div>\n                <div id=\"leftFinalAutoBonusRankingPoint\"></div>\n                <div id=\"leftFinalCoralBonusRankingPoint\"></div>\n                <div id=\"leftFinalBargeBonusRankingPoint\"></div>\n                <div id=\"leftFinalRankingPoints\"></div>\n              </div>\n              <div class=\"playoff-only-field\">\n                <div>&nbsp;</div>\n                <div id=\"leftFinalWins\"></div>\n              </div>\n            </div>\n            <div class=\"final-breakdown\" id=\"centerFinalBreakdown\">\n              <div>Leave</div>\n              <div>Coral</div>\n              <div>Algae</div>\n              <div>Barge</div>\n              <div>Foul</div>\n              <div class=\"playoff-hidden-field\">\n                <div class=\"coopertition-hidden-field\">Coopertition Bonus</div>\n                <div>Auto Bonus</div>\n                <div>Coral Bonus</div>\n                <div>Barge Bonus</div>\n                <div>Ranking Points</div>\n              </div>\n              <div class=\"playoff-only-field\">\n                <div>&nbsp;</div>\n                <div>Wins</div>\n              </div>\n            </div>\n            <div class=\"final-breakdown\" id=\"rightFinalBreakdown\">\n              <div id=\"rightFinalLeavePoints\"></div>\n              <div id=\"rightFinalCoralPoints\"></div>\n              <div id=\"rightFinalAlgaePoints\"></div>\n              <div id=\"rightFinalBargePoints\"></div>\n              <div id=\"rightFinalFoulPoints\"></div>\n              <div class=\"playoff-hidden-field\">\n                <div class=\"coopertition-hidden-field\" id=\"rightFinalCoopertitionBonus\"></div>\n                <div id=\"rightFinalAutoBonusRankingPoint\"></div>\n                <div id=\"rightFinalCoralBonusRankingPoint\"></div>\n                <div id=\"rightFinalBargeBonusRankingPoint\"></div>\n                <div id=\"rightFinalRankingPoints\"></div>\n              </div>\n              <div class=\"playoff-only-field\">\n                <div>&nbsp;</div>\n                <div id=\"rightFinalWins\"></div>\n              </div>\n            </div>\n            <div class=\"final-breakdown final-breakdown-teams\">\n              <div class=\"final-teams reversible-right\">\n                <div class=\"final-alliance playoff-only-field\" id=\"rightFinalAlliance\"></div>\n                {{range $i := seq 4}}\n                <div class=\"final-team-row\">\n                  <img class=\"final-team-avatar\" id=\"rightFinalTeam{{$i}}Avatar\" src=\"\"/>\n                  <div class=\"final-team-number\" id=\"rightFinalTeam{{$i}}\"></div>\n                  <div class=\"final-team-card\">\n                    <div id=\"rightFinalTeam{{$i}}Card\"></div>\n                  </div>\n                  <div class=\"final-team-rank playoff-hidden-field\">\n                    <img id=\"rightFinalTeam{{$i}}RankIndicator\" src=\"\"/>\n                    <div id=\"rightFinalTeam{{$i}}RankNumber\"></div>\n                  </div>\n                </div>\n                {{end}}\n              </div>\n              <div class=\"playoff-only-field\">\n                <div class=\"final-destination\" id=\"rightFinalDestination\"></div>\n              </div>\n            </div>\n          </div>\n          <div class=\"final-score-row\" id=\"finalEventMatchInfo\">\n            <div class=\"final-footer\">{{.EventSettings.Name}}</div>\n            <div class=\"final-footer\" id=\"finalMatchName\">&nbsp;</div>\n          </div>\n        </div>\n      </div>\n      <div id=\"bracket\">\n        <img id=\"bracketSvg\" src=\"\"/>\n      </div>\n      <div id=\"sponsor\" class=\"carousel slide\" data-bs-ride=\"carousel\">\n        <div class=\"carousel-inner\" id=\"sponsorContainer\">\n        </div>\n      </div>\n    </div>\n    <div id=\"allianceSelectionCentering\" style=\"display: none;\">\n      <div id=\"allianceSelection\"></div>\n    </div>\n    <div id=\"allianceRankingsCentering\" {{if .SelectionShowUnpickedTeams}}class=\"enabled\" {{end}}\n      style=\"display: none;\">\n      <div id=\"allianceRankings\"></div>\n    </div>\n    <div id=\"lowerThird\">\n      <img id=\"lowerThirdLogo\" src=\"/static/img/lower-third-logo.png\" alt=\"logo\"/>\n      <div id=\"lowerThirdTop\"></div>\n      <div id=\"lowerThirdBottom\"></div>\n      <div id=\"lowerThirdSingle\"></div>\n    </div>\n    <script id=\"allianceSelectionTemplate\" type=\"text/x-handlebars-template\">\n      <table id=\"allianceSelectionTable\">\n        {{\"{{#each alliances}}\"}}\n        <tr>\n          <td class=\"alliance-cell\">{{\"{{Index}}\"}}</td>\n          {{\"{{#each this.TeamIds}}\"}}\n          <td class=\"selection-cell\">{{\"{{#if this}}\"}}{{\"{{this}}\"}}{{\"{{/if}}\"}}</td>\n          {{\"{{/each}}\"}}\n        </tr>\n        {{\"{{/each}}\"}}\n        <tr>\n          <td id=\"allianceSelectionTimer\" colspan=\"{{\"{{numColumns}}\"}}\"></td>\n        </tr>\n      </table>\n    </script>\n    <script id=\"sponsorImageTemplate\" type=\"text/x-handlebars-template\">\n      <div class=\"carousel-item{{\"{{#if First}}\"}} active{{\"{{/if}}\"}}\" data-bs-interval=\"{{\"{{DisplayTimeMs}}\"}}\">\n      <div class=\"sponsor-image-container\">\n        <img src=\"/static/img/sponsors/{{\"{{Image}}\"}}\" />\n      </div>\n      <h1>{{\"{{Subtitle}}\"}}</h1>\n      </div>\n    </script>\n    <script id=\"sponsorTextTemplate\" type=\"text/x-handlebars-template\">\n      <div class=\"carousel-item{{\"{{#if First}}\"}} active{{\"{{/if}}\"}}\" data-bs-interval=\"{{\"{{DisplayTimeMs}}\"}}\">\n      <h2>{{\"{{Line1}}\"}}<br/>{{\"{{Line2}}\"}}</h2>\n      <h1>{{\"{{Subtitle}}\"}}</h1>\n      </div>\n    </script>\n    {{range $sound := .MatchSounds}}\n    <audio id=\"sound-{{$sound.Name}}\" src=\"/static/audio/{{$sound.Name}}.{{$sound.FileExtension}}\" preload=\"auto\">\n    </audio>\n    {{end}}\n    <script src=\"/static/js/lib/jquery.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.json-2.4.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.websocket-0.0.1.js\"></script>\n    <script src=\"/static/js/lib/jquery.transit.min.js\"></script>\n    <script src=\"/static/js/lib/handlebars-1.3.0.js\"></script>\n    <script src=\"/static/js/lib/bootstrap.bundle.min.js\"></script>\n    <script src=\"/static/js/cheesy-websocket.js\"></script>\n    <script src=\"/static/js/match_timing.js\"></script>\n    <script src=\"/static/js/audience_display.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "templates/audience_display_radio_buttons.html",
    "content": "{{define \"audience_display_radio_buttons\"}}\n<div class=\"row\">\n  <div>\n    <label>\n      <input type=\"radio\" name=\"audienceDisplay\" value=\"blank\" onclick=\"setAudienceDisplay();\">\n      Blank\n    </label>\n  </div>\n  <div>\n    <label>\n      <input type=\"radio\" name=\"audienceDisplay\" value=\"intro\" onclick=\"setAudienceDisplay();\" id=\"introRadio\">\n      Match Intro\n    </label>\n  </div>\n  <div>\n    <label>\n      <input type=\"radio\" name=\"audienceDisplay\" value=\"match\" onclick=\"setAudienceDisplay();\">\n      Match Play\n    </label>\n  </div>\n  <div>\n    <label>\n      <input type=\"radio\" name=\"audienceDisplay\" value=\"score\" onclick=\"setAudienceDisplay();\" id=\"scoreRadio\">\n      Final Score\n    </label>\n  </div>\n  <div>\n    <label>\n      <input type=\"radio\" name=\"audienceDisplay\" value=\"bracket\" onclick=\"setAudienceDisplay();\">\n      Bracket\n    </label>\n  </div>\n  <div>\n    <label>\n      <input type=\"radio\" name=\"audienceDisplay\" value=\"logo\" onclick=\"setAudienceDisplay();\">\n      Logo With BG\n    </label>\n  </div>\n  <div>\n    <label>\n      <input type=\"radio\" name=\"audienceDisplay\" value=\"logoLuma\" onclick=\"setAudienceDisplay();\">\n      Logo Without BG\n    </label>\n  </div>\n  <div>\n    <label>\n      <input type=\"radio\" name=\"audienceDisplay\" value=\"sponsor\" onclick=\"setAudienceDisplay();\">\n      Sponsor Reel\n    </label>\n  </div>\n  <div>\n    <label>\n      <input type=\"radio\" name=\"audienceDisplay\" value=\"allianceSelection\" onclick=\"setAudienceDisplay();\">\n      Alliance Selection\n    </label>\n  </div>\n  <div>\n    <label>\n      <input type=\"radio\" name=\"audienceDisplay\" value=\"timeout\" onclick=\"setAudienceDisplay();\">\n      Timeout\n    </label>\n  </div>\n</div>\n{{end}}\n"
  },
  {
    "path": "templates/backups.csv",
    "content": "Rank,Called,TeamId,RankingPoints\n{{range $ranking := .}}{{$ranking.Rank}},{{$ranking.Called}},{{$ranking.TeamId}},{{$ranking.RankingPoints}}\n{{end}}\n"
  },
  {
    "path": "templates/base.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nBase template used by most pages to include common resources and optionally render the top bar.\n*/}}\n{{define \"base\"}}\n<!DOCTYPE html>\n<html lang=\"en\" data-bs-theme=\"dark\">\n  <head>\n    {{template \"head_common\" .}}\n  </head>\n  <body>\n    <nav class=\"navbar navbar-expand-lg bg-body-tertiary\">\n      <div class=\"container\">\n        <a class=\"navbar-brand\" href=\"/\">Cheesy Arena</a>\n        <ul class=\"navbar-nav me-auto\">\n          <li class=\"nav-item dropdown\">\n            <a href=\"#\" class=\"nav-link\" data-bs-toggle=\"dropdown\" role=\"button\">Setup</a>\n            <div class=\"dropdown-menu\">\n              <a class=\"dropdown-item\" href=\"/setup/settings\">Settings</a>\n              <a class=\"dropdown-item\" href=\"/setup/teams\">Team List</a>\n              <a class=\"dropdown-item\" href=\"/setup/schedule\">Match Scheduling</a>\n              <a class=\"dropdown-item\" href=\"/setup/judging\">Judge Scheduling</a>\n              <a class=\"dropdown-item\" href=\"/setup/awards\">Awards</a>\n              <a class=\"dropdown-item\" href=\"/setup/lower_thirds\">Lower Thirds</a>\n              <a class=\"dropdown-item\" href=\"/setup/sponsor_slides\">Sponsor Slides</a>\n              <a class=\"dropdown-item\" href=\"/setup/breaks\">Scheduled Breaks</a>\n              <a class=\"dropdown-item\" href=\"/setup/displays\">Display Configuration</a>\n              <a class=\"dropdown-item\" href=\"/setup/field_testing\">Field Testing</a>\n            </div>\n          </li>\n          <li class=\"nav-item dropdown\">\n            <a href=\"#\" class=\"nav-link\" data-bs-toggle=\"dropdown\" role=\"button\">Run</a>\n            <div class=\"dropdown-menu\">\n              <a class=\"dropdown-item\" href=\"/match_play\">Match Play</a>\n              <a class=\"dropdown-item\" href=\"/match_review\">Match Review</a>\n              <a class=\"dropdown-item\" href=\"/match_logs\">Match Logs</a>\n              <a class=\"dropdown-item\" href=\"/alliance_selection\">Alliance Selection</a>\n            </div>\n          </li>\n          <li class=\"nav-item dropdown\">\n            <a href=\"#\" class=\"nav-link\" data-bs-toggle=\"dropdown\" role=\"button\">Panel</a>\n            <div class=\"dropdown-menu\">\n              <a class=\"dropdown-item\" href=\"/panels/referee\">Head Referee</a>\n              <a class=\"dropdown-item\" href=\"/panels/referee?hr=false\">Referee</a>\n              <div class=\"dropdown-divider\"></div>\n              <div class=\"dropdown-header\">Scoring</div>\n              <a class=\"dropdown-item\" href=\"/panels/scoring/red_near\">Red Near</a>\n              <a class=\"dropdown-item\" href=\"/panels/scoring/red_far\">Red Far</a>\n              <a class=\"dropdown-item\" href=\"/panels/scoring/blue_near\">Blue Near</a>\n              <a class=\"dropdown-item\" href=\"/panels/scoring/blue_far\">Blue Far</a>\n            </div>\n          </li>\n          <li class=\"nav-item dropdown\">\n            <a href=\"#\" class=\"nav-link\" data-bs-toggle=\"dropdown\" role=\"button\">Report</a>\n            <div class=\"dropdown-menu\">\n              <div class=\"dropdown-header\">PDF Reports</div>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/pdf/teams\">Team List</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/pdf/schedule/practice\">Practice Schedule</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/pdf/schedule/qualification\">Qualification\n                Schedule</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/pdf/schedule/playoff\">Playoff Schedule</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/pdf/judging_schedule\">Judging Schedule</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/pdf/rankings\">Standings</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/pdf/alliances\">Playoff Alliances</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/pdf/bracket\">Playoff Bracket</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/pdf/backups\">Backup Teams</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/pdf/coupons\">Playoff Alliance Coupons</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/pdf/teams?showHasConnected=true\">Team Connection\n                Status</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/pdf/cycle/practice\">Practice Cycle Report</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/pdf/cycle/qualification\">Qualification Cycle\n                Report</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/pdf/cycle/playoff\">Playoff Cycle Report</a>\n              <div class=\"dropdown-divider\"></div>\n              <div class=\"dropdown-header\">CSV Data Export</div>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/csv/teams\">Team List</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/csv/fta\">FTA Report</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/csv/schedule/practice\">Practice Schedule</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/csv/schedule/qualification\">Qualification\n                Schedule</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/csv/schedule/playoff\">Playoff Schedule</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/csv/rankings\">Standings</a>\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/csv/backups\">Backup Teams</a>\n              {{if .EventSettings.NetworkSecurityEnabled}}\n              <a class=\"dropdown-item\" target=\"_blank\" href=\"/reports/csv/wpa_keys\">WPA Keys</a>\n              {{end}}\n            </div>\n          </li>\n          <li class=\"nav-item dropdown\">\n            <a href=\"#\" class=\"nav-link\" data-bs-toggle=\"dropdown\" role=\"button\">Display</a>\n            <div class=\"dropdown-menu\">\n              <a class=\"dropdown-item\" href=\"/display\">Placeholder</a>\n              <a class=\"dropdown-item\" href=\"/displays/announcer\">Announcer</a>\n              <a class=\"dropdown-item\" href=\"/displays/audience\">Audience</a>\n              <a class=\"dropdown-item\" href=\"/displays/bracket\">Bracket</a>\n              <a class=\"dropdown-item\" href=\"/displays/field_monitor\">Field Monitor</a>\n              <a class=\"dropdown-item\" href=\"/displays/field_monitor?fta=true\">Field Monitor (FTA)</a>\n              <a class=\"dropdown-item\" href=\"/displays/field_monitor?ds=true&reversed=true\">Field Monitor (Blue DS)</a>\n              <a class=\"dropdown-item\" href=\"/displays/field_monitor?ds=true&reversed=false\">Field Monitor (Red DS)</a>\n              <a class=\"dropdown-item\" href=\"/displays/logo\">Logo</a>\n              <a class=\"dropdown-item\" href=\"/displays/queueing\">Queueing</a>\n              <a class=\"dropdown-item\" href=\"/displays/rankings\">Standings</a>\n              <a class=\"dropdown-item\" href=\"/displays/wall\">Wall</a>\n              <a class=\"dropdown-item\" href=\"/displays/webpage\">Web Page</a>\n              <div class=\"dropdown-divider\"></div>\n              <div class=\"dropdown-header\">Alliance Station</div>\n              <a class=\"dropdown-item\" href=\"/displays/alliance_station?station=R1\">Red 1</a>\n              <a class=\"dropdown-item\" href=\"/displays/alliance_station?station=R2\">Red 2</a>\n              <a class=\"dropdown-item\" href=\"/displays/alliance_station?station=R3\">Red 3</a>\n              <a class=\"dropdown-item\" href=\"/displays/alliance_station?station=B1\">Blue 1</a>\n              <a class=\"dropdown-item\" href=\"/displays/alliance_station?station=B2\">Blue 2</a>\n              <a class=\"dropdown-item\" href=\"/displays/alliance_station?station=B3\">Blue 3</a>\n              <a class=\"dropdown-item\" href=\"/displays/alliance_station?station=N2\">Clock</a>\n              <a class=\"dropdown-item\" href=\"/displays/alliance_station?station=N3\">Red Score</a>\n              <a class=\"dropdown-item\" href=\"/displays/alliance_station?station=N1\">Blue Score</a>\n            </div>\n          </li>\n        </ul>\n        <ul class=\"navbar-nav ms-auto\">\n          <li class=\"navbar-item\">\n            <a class=\"nav-link\" href=\"#\" onclick=\"$('#aboutPage').modal('show');\">About</a>\n          </li>\n        </ul>\n      </div>\n    </nav>\n    <div class=\"container mt-4\">\n      {{template \"body\" .}}\n    </div>\n    <div id=\"aboutPage\" class=\"modal\" style=\"top: 20%;\">\n      <div class=\"modal-dialog\">\n        <div class=\"modal-content\">\n          <div class=\"modal-header\">\n            <h4 class=\"modal-title\">About Cheesy Arena</h4>\n            <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"></button>\n          </div>\n          <div class=\"modal-body\">\n            <p>A field management system that just works.</p>\n            <p>Copyright &copy; 2014-2025 Team 254. All Rights Reserved.</p>\n            <p><a href=\"https://github.com/Team254/cheesy-arena\">https://github.com/Team254/cheesy-arena</a></p>\n          </div>\n          <div class=\"modal-footer\">\n            <button type=\"button\" class=\"btn btn-secondary\" data-bs-dismiss=\"modal\">Close</button>\n          </div>\n        </div>\n      </div>\n    </div>\n    {{template \"script_common\" .}}\n    {{template \"script\" .}}\n  </body>\n</html>\n{{end}}\n\n{{define \"base_no_navbar\"}}\n<!DOCTYPE html>\n<html lang=\"en\" data-bs-theme=\"dark\">\n  <head>\n    {{template \"head_common\" .}}\n    {{template \"head\" .}}\n  </head>\n  <body>\n    <div class=\"container\">\n      {{template \"body\" .}}\n    </div>\n    {{template \"script_common\" .}}\n    {{template \"script\" .}}\n  </body>\n</html>\n{{end}}\n\n{{define \"head_common\"}}\n<title>{{template \"title\" .}} - {{.EventSettings.Name}} - Cheesy Arena</title>\n<meta name=\"mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\">\n<link rel=\"shortcut icon\" href=\"/static/img/favicon.ico\">\n<link href=\"/static/css/lib/bootstrap.min.css\" rel=\"stylesheet\">\n<link href=\"/static/css/lib/bootstrap-icons.min.css\" rel=\"stylesheet\">\n<link href=\"/static/css/lib/tempus-dominus.min.css\" rel=\"stylesheet\">\n<link href=\"/static/css/cheesy-arena.css\" rel=\"stylesheet\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n{{end}}\n\n{{define \"script_common\"}}\n<script src=\"/static/js/lib/jquery.min.js\"></script>\n<script src=\"/static/js/lib/jquery.json-2.4.min.js\"></script>\n<script src=\"/static/js/lib/jquery.websocket-0.0.1.js\"></script>\n<script src=\"/static/js/lib/bootstrap.bundle.min.js\"></script>\n<script src=\"/static/js/lib/moment.min.js\"></script>\n<script src=\"/static/js/lib/handlebars-1.3.0.js\"></script>\n<script src=\"/static/js/lib/popper.min.js\"></script>\n<script src=\"/static/js/lib/tempus-dominus.min.js\"></script>\n<script src=\"/static/js/cheesy-common.js\"></script>\n<script src=\"/static/js/cheesy-websocket.js\"></script>\n{{end}}\n"
  },
  {
    "path": "templates/bracket_display.html",
    "content": "{{/*\nCopyright 2022 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nDisplay for showing the playoff bracket.\n*/}}\n<!DOCTYPE html>\n<html>\n  <head>\n    <title>Bracket Display - {{.EventSettings.Name}} - Cheesy Arena </title>\n    <link rel=\"shortcut icon\" href=\"/static/img/favicon.ico\">\n    <link rel=\"stylesheet\" href=\"/static/css/lib/bootstrap.min.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/cheesy-arena.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/bracket_display.css\"/>\n  </head>\n  <body>\n    <div id=\"column\">\n      <div id=\"titlebar\" class=\"row justify-content-between\">\n        <div class=\"col-lg-4 text-start\">Playoff Bracket</div>\n        <div class=\"col-lg-4 text-end\">{{.EventSettings.Name}}</div>\n      </div>\n      <div id=\"bracket\"></div>\n    </div>\n    <script src=\"/static/js/lib/jquery.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.json-2.4.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.websocket-0.0.1.js\"></script>\n    <script src=\"/static/js/cheesy-websocket.js\"></script>\n    <script src=\"/static/js/bracket_display.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "templates/bracket_report.html",
    "content": "<html>\n  <head>\n    <title>Bracket Report</title>\n    <style>\n      @page {\n        margin: 0;\n        size: landscape;\n      }\n\n      #bracket {\n        position: fixed;\n        width: 1920px;\n        top: -60px;\n        left: -250px;\n        scale: 0.75;\n      }\n    </style>\n  </head>\n  <body>\n    <div id=\"bracket\">\n      <div>{{.}}</div>\n    </div>\n    <script>\n      window.print();\n    </script>\n  </body>\n</html>\n"
  },
  {
    "path": "templates/edit_match_result.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for manually editing the result for a match.\n*/}}\n{{define \"title\"}}Edit Match Results{{end}}\n{{define \"body\"}}\n<div class=\"row\">\n  <div class=\"card card-body bg-body-tertiary\">\n    <form method=\"POST\">\n      <fieldset>\n        <legend>Edit {{.Match.LongName}} Results</legend>\n        <div id=\"redScore\"></div>\n        <div id=\"blueScore\"></div>\n        <div class=\"row\">\n          <div class=\"text-center col-lg-12\">\n            <a href=\"{{if .IsCurrentMatch}}/match_play{{else}}/match_review{{end}}\">\n              <button type=\"button\" class=\"btn btn-secondary\">Cancel</button>\n            </a>\n            <button type=\"submit\" class=\"btn btn-primary\">Save</button>\n          </div>\n        </div>\n      </fieldset>\n    </form>\n  </div>\n</div>\n<div id=\"scoreTemplate\" style=\"display: none;\">\n  <div class=\"card card-body bg-{{\"{{alliance}}\"}} mb-3\">\n  <fieldset>\n    <legend>Autonomous</legend>\n    <h6 class=\"fw-bold mb-2\">Bypassed</h6>\n    <div class=\"row mb-3\">\n      {{range $i := seq 3}}\n      <div class=\"col-lg-2\">\n        <label class=\"control-label\">Team {{\"{{team\"}}{{$i}}{{\"}}\"}}</label>\n        <input type=\"checkbox\" class=\"ms-3\" name=\"{{\"{{alliance}}\"}}RobotsBypassed{{$i}}\">\n      </div>\n      {{end}}\n    </div>\n    <h6 class=\"fw-bold mb-2\">Leave</h6>\n    <div class=\"row mb-3\">\n      {{range $i := seq 3}}\n      <div class=\"col-lg-2\">\n        <label class=\"control-label\">Team {{\"{{team\"}}{{$i}}{{\"}}\"}}</label>\n        <input type=\"checkbox\" class=\"ms-3\" name=\"{{\"{{alliance}}\"}}LeaveStatuses{{$i}}\">\n      </div>\n      {{end}}\n    </div>\n  </fieldset>\n  <fieldset>\n    <legend>Reef</legend>\n    <div class=\"row mb-2\">\n      <div class=\"col-lg-1\"></div>\n      <div class=\"row col-lg-11\">\n        <label class=\"col-lg-1 control-label\">A</label>\n        <label class=\"col-lg-1 control-label\">B</label>\n        <label class=\"col-lg-1 control-label\">C</label>\n        <label class=\"col-lg-1 control-label\">D</label>\n        <label class=\"col-lg-1 control-label\">E</label>\n        <label class=\"col-lg-1 control-label\">F</label>\n        <label class=\"col-lg-1 control-label\">G</label>\n        <label class=\"col-lg-1 control-label\">H</label>\n        <label class=\"col-lg-1 control-label\">I</label>\n        <label class=\"col-lg-1 control-label\">J</label>\n        <label class=\"col-lg-1 control-label\">K</label>\n        <label class=\"col-lg-1 control-label\">L</label>\n      </div>\n    </div>\n    {{template \"reefPipe\" dict \"pipe\" 2 \"pipeName\" \"Level 4\"}}\n    {{template \"reefPipe\" dict \"pipe\" 1 \"pipeName\" \"Level 3\"}}\n    {{template \"reefPipe\" dict \"pipe\" 0 \"pipeName\" \"Level 2\"}}\n    <div class=\"row mb-3\">\n      <label class=\"col-lg-1 control-label\">Level 1</label>\n      <label class=\"col-lg-1 text-end\">Auto Near:</label>\n      <div class=\"col-lg-1\">\n        <input type=\"text\" class=\"form-control input-sm\" name=\"{{\"{{alliance}}\"}}AutoTroughNearCoral\">\n      </div>\n      <label class=\"col-lg-1 text-end\">Auto Far:</label>\n      <div class=\"col-lg-1\">\n        <input type=\"text\" class=\"form-control input-sm\" name=\"{{\"{{alliance}}\"}}AutoTroughFarCoral\">\n      </div>\n      <label class=\"col-lg-1 text-end\"> Near:</label>\n      <div class=\"col-lg-1\">\n        <input type=\"text\" class=\"form-control input-sm\" name=\"{{\"{{alliance}}\"}}TroughNearCoral\">\n      </div>\n      <label class=\"col-lg-1 text-end\"> Far:</label>\n      <div class=\"col-lg-1\">\n        <input type=\"text\" class=\"form-control input-sm\" name=\"{{\"{{alliance}}\"}}TroughFarCoral\">\n      </div>\n    </div>\n  </fieldset>\n  <fieldset>\n    <legend>Algae</legend>\n    <div class=\"row\">\n      <label class=\"col-lg-1 text-end\">Barge:</label>\n      <div class=\"col-lg-1\">\n        <input type=\"text\" class=\"form-control input-sm\" name=\"{{\"{{alliance}}\"}}BargeAlgae\">\n      </div>\n      <label class=\"col-lg-1 text-end\">Processor:</label>\n      <div class=\"col-lg-1\">\n        <input type=\"text\" class=\"form-control input-sm\" name=\"{{\"{{alliance}}\"}}ProcessorAlgae\">\n      </div>\n    </div>\n  </fieldset>\n  <fieldset>\n    <legend>Endgame</legend>\n    <div class=\"mb-3\">\n      {{range $i := seq 3}}\n      <div class=\"row mb-2\">\n        <label class=\"col-lg-1 control-label\">Team {{\"{{team\"}}{{$i}}{{\"}}\"}}</label>\n        <div class=\"col-lg-1\">\n          <input type=\"radio\" name=\"{{\"{{alliance}}\"}}EndgameStatuses{{$i}}\" value=\"0\"> None\n        </div>\n        <div class=\"col-lg-2\">\n          <input type=\"radio\" name=\"{{\"{{alliance}}\"}}EndgameStatuses{{$i}}\" value=\"1\"> Parked\n        </div>\n        <div class=\"col-lg-2\">\n          <input type=\"radio\" name=\"{{\"{{alliance}}\"}}EndgameStatuses{{$i}}\" value=\"2\"> Shallow Cage\n        </div>\n        <div class=\"col-lg-2\">\n          <input type=\"radio\" name=\"{{\"{{alliance}}\"}}EndgameStatuses{{$i}}\" value=\"3\"> Deep Cage\n        </div>\n      </div>\n      {{end}}\n    </div>\n  </fieldset>\n  <fieldset>\n    <legend>Fouls</legend>\n    {{\"{{#each score.Fouls}}\"}}\n    <input type=\"hidden\" class=\"input-sm\" name=\"{{\"{{../alliance}}\"}}Foul{{\"{{@index}}\"}}Index\"\n    value=\"{{\"{{@index}}\"}}\">\n    <div class=\"card card-body bg-dark-{{\"{{../alliance}}\"}} mb-2\">\n    <button type=\"button\" class=\"btn-close\" onclick=\"deleteFoul('{{\"{{../alliance}}\"}}', {{\"{{@index}}\"}});\">\n    </button>\n    <br/>\n    <div class=\"row mb-3\">\n      <label class=\"col-lg-2 control-label\">Is Major?</label>\n      <div class=\"col-lg-3\">\n        <input type=\"checkbox\" class=\"input-sm\" name=\"{{\"{{../alliance}}\"}}Foul{{\"{{@index}}\"}}IsMajor\">\n      </div>\n    </div>\n    <div class=\"row mb-3\">\n      <label class=\"col-lg-2 control-label\">Team</label>\n      <div class=\"col-lg-8\">\n        <div class=\"row\">\n          <div class=\"col-lg-2\">\n            <label>\n              <input type=\"radio\" name=\"{{\"{{../alliance}}\"}}Foul{{\"{{@index}}\"}}Team\" value=\"{{\"{{../team1}}\"}}\">\n              Team {{\"{{../team1}}\"}}\n            </label>\n          </div>\n          <div class=\"col-lg-2\">\n            <label>\n              <input type=\"radio\" name=\"{{\"{{../alliance}}\"}}Foul{{\"{{@index}}\"}}Team\" value=\"{{\"{{../team2}}\"}}\">\n              Team {{\"{{../team2}}\"}}\n            </label>\n          </div>\n          <div class=\"col-lg-2\">\n            <label>\n              <input type=\"radio\" name=\"{{\"{{../alliance}}\"}}Foul{{\"{{@index}}\"}}Team\" value=\"{{\"{{../team3}}\"}}\">\n              Team {{\"{{../team3}}\"}}\n            </label>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"row mb-3\">\n      <label class=\"col-lg-2 control-label\">Rule</label>\n      <div class=\"col-lg-9\">\n        <select class=\"form-control\" name=\"{{\"{{../alliance}}\"}}Foul{{\"{{@index}}\"}}RuleId\">\n        {{range $rule := .Rules}}\n        <option value=\"{{$rule.Id}}\">{{$rule.RuleNumber}}\n          [{{if $rule.IsRankingPoint}}{{if $rule.IsMajor}}Major{{else}}Minor{{end}} Foul + RP\n          {{else}}{{if $rule.IsMajor}}Major{{else}}Minor{{end}} Foul{{end}}]: {{$rule.Description}}\n        </option>\n        {{end}}\n        </select>\n      </div>\n    </div>\n</div>\n{{\"{{/each}}\"}}\n<button type=\"button\" class=\"btn btn-secondary btn-sm\" onclick=\"addFoul('{{\"{{alliance}}\"}}');\">\nAdd Foul\n</button>\n<br/><br/>\n</fieldset>\n<fieldset>\n  <legend>Cards</legend>\n  {{range $i := seq 3}}\n  <div class=\"row mb-3\">\n    <label class=\"col-lg-2 control-label\">Team {{\"{{team\"}}{{$i}}{{\"}}\"}}</label>\n    <div class=\"col-lg-8\">\n      <div class=\"row\">\n        <div class=\"col-lg-2\">\n          <label>\n            <input type=\"radio\" name=\"{{\"{{alliance}}\"}}Team{{\"{{team\"}}{{$i}}{{\"}}\"}}Card\" value=\"\" checked>\n            None\n          </label>\n        </div>\n        <div class=\"col-lg-2\">\n          <label>\n            <input type=\"radio\" name=\"{{\"{{alliance}}\"}}Team{{\"{{team\"}}{{$i}}{{\"}}\"}}Card\" value=\"yellow\">\n            Yellow\n          </label>\n        </div>\n        <div class=\"col-lg-2\">\n          <label>\n            <input type=\"radio\" name=\"{{\"{{alliance}}\"}}Team{{\"{{team\"}}{{$i}}{{\"}}\"}}Card\" value=\"red\">\n            Red\n          </label>\n        </div>\n        <div class=\"col-lg-2\">\n          <label>\n            <input type=\"radio\" name=\"{{\"{{alliance}}\"}}Team{{\"{{team\"}}{{$i}}{{\"}}\"}}Card\" value=\"dq\">\n            DQ\n          </label>\n        </div>\n      </div>\n    </div>\n  </div>\n  {{end}}\n</fieldset>\n</div>\n</div>\n{{end}}\n{{define \"script\"}}\n<script src=\"/static/js/match_review.js\"></script>\n<script>\n  <!-- @formatter:off -->\n  var matchId = {{.Match.Id}};\n  matchResult = jQuery.parseJSON('{{.MatchResultJson}}');\n  allianceResults[\"red\"] = {\n    alliance: \"red\",\n    team1: {{.Match.Red1}},\n    team2: {{.Match.Red2}},\n    team3: {{.Match.Red3}},\n    score: matchResult.RedScore,\n    cards: matchResult.RedCards,\n  };\n  allianceResults[\"blue\"] = {\n    alliance: \"blue\",\n    team1: {{.Match.Blue1}},\n    team2: {{.Match.Blue2}},\n    team3: {{.Match.Blue3}},\n    score: matchResult.BlueScore,\n    cards: matchResult.BlueCards,\n  };\n  renderResults(\"red\");\n  renderResults(\"blue\");\n  <!-- @formatter:on -->\n</script>\n{{end}}\n{{define \"reefPipe\"}}\n<div class=\"row\">\n  <label class=\"col-lg-1\">{{.pipeName}}</label>\n  <div class=\"row col-lg-11\">\n    {{range $i := seq 12}}\n    {{template \"reefBranch\" dict \"pipe\" $.pipe \"level\" (add $i -1)}}\n    {{end}}\n  </div>\n</div>\n<br/>\n{{end}}\n{{define \"reefBranch\"}}\n<div class=\"col-lg-1\">\n  <input type=\"checkbox\" class=\"\" name=\"{{\"{{alliance}}\"}}ReefAutoBranchesPipe{{.pipe}}Branch{{.level}}\"\n  id=\"{{\"{{alliance}}\"}}AutoPipe{{.pipe}}Branch{{.level}}\">\n  <label for=\"{{\"{{alliance}}\"}}AutoPipe{{.pipe}}Branch{{.level}}\">Auto</label>\n  <br/>\n  <input type=\"checkbox\" class=\"\" name=\"{{\"{{alliance}}\"}}ReefBranchesPipe{{.pipe}}Branch{{.level}}\"\n  id=\"{{\"{{alliance}}\"}}Pipe{{.pipe}}Branch{{.level}}\">\n  <label for=\"{{\"{{alliance}}\"}}Pipe{{.pipe}}Branch{{.level}}\">Overall</label>\n</div>\n{{end}}\n"
  },
  {
    "path": "templates/edit_team.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for editing team data.\n*/}}\n{{define \"title\"}}Edit Team{{end}}\n{{define \"body\"}}\n<div class=\"row justify-content-center\">\n  <div class=\"col-lg-6\">\n    <div class=\"card card-body bg-body-tertiary\">\n      <form class=\"form-horizontal\" action=\"/setup/teams/{{.Team.Id}}/edit\" method=\"POST\">\n        <fieldset>\n          <legend>Edit Team {{.Team.Id}}</legend>\n          <div class=\"row mb-3\">\n            <label class=\"col-lg-3 control-label\">Name</label>\n            <div class=\"col-lg-9\">\n              <textarea class=\"form-control\" rows=\"5\" name=\"name\">{{.Team.Name}}</textarea>\n            </div>\n          </div>\n          <div class=\"row mb-3\">\n            <label class=\"col-lg-3 control-label\">Nickname</label>\n            <div class=\"col-lg-9\">\n              <input type=\"text\" class=\"form-control\" name=\"nickname\" value=\"{{.Team.Nickname}}\">\n            </div>\n          </div>\n          <div class=\"row mb-3\">\n            <label class=\"col-lg-3 control-label\">School Name</label>\n            <div class=\"col-lg-9\">\n              <input type=\"text\" class=\"form-control\" name=\"schoolName\" value=\"{{.Team.SchoolName}}\">\n            </div>\n          </div>\n          <div class=\"row mb-3\">\n            <label class=\"col-lg-3 control-label\">City</label>\n            <div class=\"col-lg-9\">\n              <input type=\"text\" class=\"form-control\" name=\"city\" value=\"{{.Team.City}}\">\n            </div>\n          </div>\n          <div class=\"row mb-3\">\n            <label class=\"col-lg-3 control-label\">State/Province</label>\n            <div class=\"col-lg-9\">\n              <input type=\"text\" class=\"form-control\" name=\"stateProv\" value=\"{{.Team.StateProv}}\">\n            </div>\n          </div>\n          <div class=\"row mb-3\">\n            <label class=\"col-lg-3 control-label\">Country</label>\n            <div class=\"col-lg-9\">\n              <input type=\"text\" class=\"form-control\" name=\"country\" value=\"{{.Team.Country}}\">\n            </div>\n          </div>\n          <div class=\"row mb-3\">\n            <label class=\"col-lg-3 control-label\">Rookie Year</label>\n            <div class=\"col-lg-9\">\n              <input type=\"text\" class=\"form-control\" name=\"rookieYear\" value=\"{{.Team.RookieYear}}\">\n            </div>\n          </div>\n          <div class=\"row mb-3\">\n            <label class=\"col-lg-3 control-label\">Robot Name</label>\n            <div class=\"col-lg-9\">\n              <input type=\"text\" class=\"form-control\" name=\"robotName\" value=\"{{.Team.RobotName}}\">\n            </div>\n          </div>\n          <div class=\"row mb-3\">\n            <label class=\"col-lg-3 control-label\">Recent Accomplishments</label>\n            <div class=\"col-lg-9\">\n              <textarea class=\"form-control\" rows=\"5\" name=\"accomplishments\">{{.Team.Accomplishments}}</textarea>\n            </div>\n          </div>\n          <div class=\"row mb-3\">\n            <label class=\"col-lg-5 control-label\" for=\"hasConnected\">Has Connected to Field?</label>\n            <div class=\"col-lg-1 checkbox\">\n              <input type=\"checkbox\" id=\"hasConnected\" name=\"hasConnected\" {{if .Team.HasConnected}} checked{{end}}/>\n            </div>\n          </div>\n          {{if .EventSettings.NetworkSecurityEnabled}}\n          <div class=\"row mb-3\">\n            <label class=\"col-lg-3 control-label\">WPA Key</label>\n            <div class=\"col-lg-9\">\n              <input type=\"text\" class=\"form-control\" name=\"wpaKey\" value=\"{{.Team.WpaKey}}\">\n            </div>\n          </div>\n          {{end}}\n          <div class=\"row justify-content-center\">\n            <div class=\"col-md-auto\">\n              <a href=\"/setup/teams\">\n                <button type=\"button\" class=\"btn btn-secondary\">Cancel</button>\n              </a>\n              <button type=\"submit\" class=\"btn btn-primary\">Save</button>\n            </div>\n          </div>\n        </fieldset>\n      </form>\n    </div>\n  </div>\n</div>\n{{end}}\n{{define \"script\"}}{{end}}\n"
  },
  {
    "path": "templates/field_monitor_display.html",
    "content": "{{/*\nCopyright 2018 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nDisplay showing robot connection status.\n*/}}\n<!DOCTYPE html>\n<html>\n\n  <head>\n    <title>Field Monitor - {{.EventSettings.Name}} - Cheesy Arena</title>\n    <meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n    <meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\">\n    <meta name=\"viewport\" content=\"width=device-width, maximum-scale=1.0, user-scalable=no\"/>\n    <link rel=\"shortcut icon\" href=\"/static/img/favicon.ico\">\n    <link rel=\"stylesheet\" href=\"/static/css/lib/bootstrap.min.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/lib/bootstrap-icons.min.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/cheesy-arena.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/field_monitor_display.css\"/>\n  </head>\n\n  <body>\n    <div id=\"matchStatusRow\" class=\"ds-dependent\">\n      {{if .EventSettings.NetworkSecurityEnabled}}\n      <div id=\"matchName\" class=\"text-start\" style=\"width: 20%; padding-left: 1%;\"></div>\n      <div id=\"fieldConnection\" style=\"width: 25%; padding-left: 1%;\">\n        <span class=\"badge badge-status\" id=\"accessPointStatus\"><i class=\"bi bi-wifi\"></i> Access Point\n        </span>\n        <span class=\"badge badge-status\" id=\"switchStatus\"> <i class=\"bi bi-hdd-network\"></i> Switch</span>\n      </div>\n      {{end}}\n      {{if not .EventSettings.NetworkSecurityEnabled}}\n      <div id=\"matchName\" class=\"text-start\" style=\"width: 45%; padding-left: 1%;\"></div>\n      {{end}}\n      <div id=\"matchTime\" class=\"text-center\" style=\"width: 10%;\"></div>\n      <div id=\"matchState\" class=\"text-end\" style=\"width: 45%; padding-right: 1%;\"></div>\n    </div>\n    {{template \"row\" dict \"leftPosition\" \"1\" \"rightPosition\" \"3\"}}\n    {{template \"row\" dict \"leftPosition\" \"2\" \"rightPosition\" \"2\"}}\n    {{template \"row\" dict \"leftPosition\" \"3\" \"rightPosition\" \"1\"}}\n    <div id=\"eventStatusRow\" class=\"ds-dependent\">\n      <div id=\"leftScore\" class=\"fta-dependent ds-dependent left-score text-center reversible-left\"\n        style=\"width:8%; vertical-align:middle;\"></div>\n      <div id=\"cycleTimeMessage\" class=\"text-center ds-dependent\" style=\"width: 46%;\"></div>\n      <div id=\"earlyLateMessage\" class=\"text-center ds-dependent\" style=\"width: 38%;\"></div>\n      <div id=\"rightScore\" class=\"right-score ds-dependent text-center fta-dependent reversible-right \"\n        style=\"width: 8%;\"></div>\n    </div>\n  </body>\n  <script src=\"/static/js/lib/jquery.min.js\"></script>\n  <script src=\"/static/js/lib/jquery.json-2.4.min.js\"></script>\n  <script src=\"/static/js/lib/jquery.websocket-0.0.1.js\"></script>\n  <script src=\"/static/js/cheesy-websocket.js\"></script>\n  <script src=\"/static/js/lib/jquery.transit.min.js\"></script>\n  <script src=\"/static/js/lib/bootstrap.bundle.min.js\"></script>\n  <script src=\"/static/js/match_timing.js\"></script>\n  <script src=\"/static/js/field_monitor_display.js\"></script>\n\n</html>\n\n{{define \"row\"}}\n<div class=\"position-row center ds-dependent\">\n  <div class=\"left-position center reversible-left\">{{.leftPosition}}</div>\n  {{template \"team\" dict \"side\" \"left\" \"position\" .leftPosition}}\n  {{template \"team\" dict \"side\" \"right\" \"position\" .rightPosition}}\n  <div class=\"right-position center ds-dependent reversible-right\">{{.rightPosition}}</div>\n</div>\n{{end}}\n\n{{define \"team\"}}\n<div id=\"{{.side}}Team{{.position}}\" class=\"team team-{{.side}} ds-dependent\">\n  <div id=\"{{.side}}Team{{.position}}Id\" class=\"team-id center fta-dependent\"></div>\n  <div id=\"{{.side}}Team{{.position}}Notes\" class=\"team-notes fta-dependent\" title=\"FTA Notes\">\n    <i class=\"bi-chat-left-fill\"></i>\n    <div onclick=\"editFtaNotes(this);\"></div>\n  </div>\n  <div class=\"team-box-row\">\n    <div id=\"{{.side}}Team{{.position}}Ethernet\" class=\"team-box center\"\n      title=\"Driver Station Ethernet Connected&#10;Trip Time (ms)\">ETH\n    </div>\n    <div id=\"{{.side}}Team{{.position}}Ds\" class=\"team-box center\"\n      title=\"Driver Station Software Running&#10;Missed Packets\">DS\n    </div>\n    <div id=\"{{.side}}Team{{.position}}Radio\" class=\"team-box center\"><i></i></div>\n    <div id=\"{{.side}}Team{{.position}}Robot\" class=\"team-box center\" title=\"Seconds Since Last Connected\"></div>\n    <div id=\"{{.side}}Team{{.position}}Battery\" class=\"team-box center\"></div>\n    <div id=\"{{.side}}Team{{.position}}Stats\" class=\"team-box center team-stats\"\n      title=\"Team bandwidth (Mbits/s), trip time (ms), and missed packet count\">\n      <div class=\"team-stats-row\">\n        <div class=\"team-bandwidth\">BWU <span id=\"{{.side}}Team{{.position}}Bandwidth\"></span></div>\n      </div>\n      <div class=\"team-stats-row\">\n        <div class=\"team-trip-time\">TT <span id=\"{{.side}}Team{{.position}}TripTime\"></span></div>&nbsp;&nbsp;\n      </div>\n      <div class=\"team-stats-row\">\n        <div class=\"team-missed-packets\">MP <span id=\"{{.side}}Team{{.position}}MissedPackets\"></span></div>\n      </div>\n    </div>\n    <div id=\"{{.side}}Team{{.position}}Bypass\" class=\"team-box center\" title=\"Emergency-Stopped or Bypassed\"></div>\n  </div>\n</div>\n{{end}}\n"
  },
  {
    "path": "templates/fta.csv",
    "content": "Number,HasConnected,FtaNotes\n{{range $team := .}}{{$team.Id}},{{$team.HasConnected}},{{$team.FtaNotes}}\n{{end}},,\n"
  },
  {
    "path": "templates/index.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nRoot page and entry point to Cheesy Arena.\n*/}}\n{{define \"title\"}}Home{{end}}\n{{define \"body\"}}\n<div class=\"p-5 mt-5 bg-body-tertiary rounded-3\">\n  <h2 class=\"mb-4\">Welcome to Cheesy Arena.</h2>\n  <p>Use the navigation bar at the top to configure the event, play and score matches, view and print reports, or launch\n    displays.</p>\n  <p>For ad-hoc match control for testing or scrimmaging, go directly to <a href=\"/match_play\">Match Play</a>.</p>\n</div>\n{{end}}\n{{define \"script\"}}{{end}}\n"
  },
  {
    "path": "templates/login.html",
    "content": "{{/*\nCopyright 2018 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for authenticating with the server.\n*/}}\n{{define \"title\"}}Log In{{end}}\n{{define \"body\"}}\n<div class=\"row justify-content-center\">\n  <div class=\"col-lg-4\">\n    {{if .ErrorMessage}}\n    <div class=\"alert alert-dismissible alert-danger\">\n      <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"alert\"></button>\n      {{.ErrorMessage}}\n    </div>\n    {{end}}\n    <div class=\"card card-body bg-body-tertiary\">\n      <form method=\"POST\">\n        <legend>Log In</legend>\n        <div class=\"row mb-3\">\n          <label class=\"col-lg-4 control-label\">Username</label>\n          <div class=\"col-lg-8\">\n            <input type=\"text\" class=\"form-control\" name=\"username\" autofocus/>\n          </div>\n        </div>\n        <div class=\"row mb-3\">\n          <label class=\"col-lg-4 control-label\">Password</label>\n          <div class=\"col-lg-8\">\n            <input type=\"password\" class=\"form-control\" name=\"password\"/>\n          </div>\n        </div>\n        <div class=\"row justify-content-center\">\n          <div class=\"col-lg-3\">\n            <button type=\"submit\" class=\"btn btn-primary\">Log In</button>\n          </div>\n        </div>\n      </form>\n    </div>\n  </div>\n</div>\n{{end}}\n{{define \"script\"}}\n{{end}}\n"
  },
  {
    "path": "templates/logo_display.html",
    "content": "{{/*\nCopyright 2024 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nDisplay to show a static logo and configurable message.\n*/}}\n<!DOCTYPE html>\n<html>\n  <head>\n    <title>Logo Display - {{.EventSettings.Name}} - Cheesy Arena </title>\n    <link rel=\"shortcut icon\" href=\"/static/img/favicon.ico\">\n    <link rel=\"stylesheet\" href=\"/static/css/lib/bootstrap.min.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/cheesy-arena.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/logo_display.css\"/>\n  </head>\n  <body>\n    <div id=\"logo\">\n      <img id=\"logoImg\" src=\"/static/img/alliance-station-logo.png\" alt=\"logo\"/>\n    </div>\n    <div id=\"message\"></div>\n    <script src=\"/static/js/lib/jquery.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.json-2.4.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.websocket-0.0.1.js\"></script>\n    <script src=\"/static/js/cheesy-websocket.js\"></script>\n    <script src=\"/static/js/match_timing.js\"></script>\n    <script src=\"/static/js/logo_display.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "templates/match_logs.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for listing matches and their logs.\n*/}}\n{{define \"title\"}}Match Logs{{end}}\n{{define \"body\"}}\n<div class=\"row\">\n  <ul class=\"nav nav-tabs\">\n    <li>\n      <a href=\"#Practice\" class=\"nav-link{{if eq .CurrentMatchType practiceMatch }} active{{end}}\" data-bs-toggle=\"tab\">\n        Practice\n      </a>\n    </li>\n    <li>\n      <a href=\"#Qualification\" class=\"nav-link{{if eq .CurrentMatchType qualificationMatch }} active{{end}}\"\n        data-bs-toggle=\"tab\">\n        Qualification\n      </a>\n    </li>\n    <li>\n      <a href=\"#Playoff\" class=\"nav-link{{if eq .CurrentMatchType playoffMatch }} active{{end}}\" data-bs-toggle=\"tab\">\n        Playoff\n      </a>\n    </li>\n  </ul>\n  <div class=\"tab-content\">\n    {{range $type, $matches := .MatchesByType}}\n    <div class=\"tab-pane {{if eq $.CurrentMatchType $type }} active{{end}}\" id=\"{{$type}}\">\n      <table class=\"table table-striped table-hover \">\n        <thead>\n          <tr>\n            <th>Match</th>\n            <th>Time</th>\n            <th class=\"text-center\">Red Alliance</th>\n            <th class=\"text-center\">Blue Alliance</th>\n          </tr>\n        </thead>\n        <tbody>\n          {{range $match := $matches}}\n          <tr>\n            <td class=\"bg-{{$match.ColorClass}}\">{{$match.ShortName}}</td>\n            <td class=\"bg-{{$match.ColorClass}}\">{{$match.Time}}</td>\n            <td class=\"bg-{{$match.ColorClass}} text-center\">\n              <a href=\"/match_logs/{{$match.Id}}/R1/log\" target=\"_blank\"><b class=\"btn btn-danger btn-sm btn-logs\">\n                {{index $match.RedTeams 0}}\n              </b></a>\n              <a href=\"/match_logs/{{$match.Id}}/R2/log\" target=\"_blank\"><b class=\"btn btn-danger btn-sm btn-logs\">\n                {{index $match.RedTeams 1}}\n              </b></a>\n              <a href=\"/match_logs/{{$match.Id}}/R3/log\" target=\"_blank\"><b class=\"btn btn-danger btn-sm btn-logs\">\n                {{index $match.RedTeams 2}}\n              </b></a>\n            </td>\n            <td class=\"bg-{{$match.ColorClass}} text-center\">\n              <a href=\"/match_logs/{{$match.Id}}/B1/log\" target=\"_blank\"><b class=\"btn btn-primary btn-sm btn-logs\">\n                {{index $match.BlueTeams 0}}\n              </b></a>\n              <a href=\"/match_logs/{{$match.Id}}/B2/log\" target=\"_blank\"><b class=\"btn btn-primary btn-sm btn-logs\">\n                {{index $match.BlueTeams 1}}\n              </b></a>\n              <a href=\"/match_logs/{{$match.Id}}/B3/log\" target=\"_blank\"><b class=\"btn btn-primary btn-sm btn-logs\">\n                {{index $match.BlueTeams 2}}\n              </b></a>\n            </td>\n          </tr>\n          {{end}}\n        </tbody>\n      </table>\n    </div>\n    {{end}}\n  </div>\n</div>\n{{end}}\n{{define \"script\"}}\n{{end}}\n"
  },
  {
    "path": "templates/match_play.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for controlling match play and viewing team connection and field status.\n*/}}\n{{define \"title\"}}Match Play{{end}}\n{{define \"body\"}}\n<div class=\"row\">\n  <div class=\"col-lg-4\" id=\"matchListColumn\"></div>\n  <div class=\"col-lg-8\">\n    <div class=\"row text-center mb-2\">\n      <div id=\"matchName\" class=\"col-lg-3 card card-body bg-body-tertiary\"\n        style=\"text-transform: uppercase;\">&nbsp;\n      </div>\n      <div id=\"matchState\" class=\"col-lg-3 card card-body bg-body-tertiary\">&nbsp;</div>\n      <div id=\"matchTime\" class=\"col-lg-2 card card-body bg-body-tertiary\">&nbsp;</div>\n      <div id=\"redScore\" class=\"col-lg-2 card card-body bg-red\">&nbsp;</div>\n      <div id=\"blueScore\" class=\"col-lg-2 card card-body bg-blue\">&nbsp;</div>\n    </div>\n    <div class=\"row text-center\">\n      <div class=\"col-lg-6 card card-body bg-blue mb-2\">\n        <div class=\"row mb-3\">\n          <div class=\"col-lg-4\">Blue Teams</div>\n          <div class=\"col-lg-2\" data-bs-toggle=\"tooltip\" title=\"Driver Station Status\">DS</div>\n          <div class=\"col-lg-2\" data-bs-toggle=\"tooltip\" title=\"Radio Status\">Rad</div>\n          <div class=\"col-lg-2\" data-bs-toggle=\"tooltip\" title=\"Robot Status\">Rbt</div>\n          <div class=\"col-lg-2\" data-bs-toggle=\"tooltip\" title=\"Bypass/Disable\">Byp</div>\n        </div>\n        {{template \"matchPlayTeam\" dict \"color\" \"B\" \"position\" 1}}\n        {{template \"matchPlayTeam\" dict \"color\" \"B\" \"position\" 2}}\n        {{template \"matchPlayTeam\" dict \"color\" \"B\" \"position\" 3}}\n        <div id=\"playoffBlueAllianceInfo\"></div>\n      </div>\n      <div class=\"col-lg-6 card card-body bg-red mb-2\">\n        <div class=\"row mb-3\">\n          <div class=\"col-lg-4\">Red Teams</div>\n          <div class=\"col-lg-2\" data-bs-toggle=\"tooltip\" title=\"Driver Station Status\">DS</div>\n          <div class=\"col-lg-2\" data-bs-toggle=\"tooltip\" title=\"Radio Status\">Rad</div>\n          <div class=\"col-lg-2\" data-bs-toggle=\"tooltip\" title=\"Robot Status\">Rbt</div>\n          <div class=\"col-lg-2\" data-bs-toggle=\"tooltip\" title=\"Bypass/Disable\">Byp</div>\n        </div>\n        {{template \"matchPlayTeam\" dict \"color\" \"R\" \"position\" 3}}\n        {{template \"matchPlayTeam\" dict \"color\" \"R\" \"position\" 2}}\n        {{template \"matchPlayTeam\" dict \"color\" \"R\" \"position\" 1}}\n        <div id=\"playoffRedAllianceInfo\"></div>\n      </div>\n    </div>\n    <div class=\"row justify-content-center mt-1\">\n      <button type=\"button\" id=\"showOverlay\" class=\"btn btn-info btn-match-play ms-1\"\n        onclick=\"showOverlay();\" disabled>\n        Show Overlay\n      </button>\n      <button type=\"button\" id=\"startMatch\" class=\"btn btn-success btn-match-play ms-1\"\n        onclick=\"startMatch();\" disabled>\n        Start Match\n      </button>\n      <button type=\"button\" id=\"commitResults\" class=\"btn btn-primary btn-match-play ms-1\"\n        onclick=\"confirmCommit();\" disabled>\n        Commit Results\n      </button>\n      <button type=\"button\" id=\"showFinalScore\" class=\"btn btn-info btn-match-play ms-1\"\n        onclick=\"showFinalScore();\" disabled>\n        Show Final Score\n      </button>\n    </div>\n    <div class=\"row justify-content-center mt-1\">\n      <button type=\"button\" id=\"substituteTeams\" class=\"btn btn-primary btn-match-play btn-match-play-narrow ms-1\"\n        onclick=\"substituteTeams();\" disabled>\n        Substitute\n      </button>\n      <button type=\"button\" id=\"abortMatch\" class=\"btn btn-danger btn-match-play btn-match-play-narrow ms-1\"\n        onclick=\"abortMatch();\" disabled>\n        Abort Match\n      </button>\n      <button type=\"button\" id=\"discardResults\" class=\"btn btn-warning btn-match-play btn-match-play-narrow ms-1\"\n        onclick=\"$('#confirmDiscardResults').modal('show');\" disabled>\n        Discard Results\n      </button>\n      <button type=\"button\" id=\"editResults\" class=\"btn btn-secondary btn-match-play btn-match-play-narrow ms-1\"\n        onclick=\"window.location = '/match_review/current/edit';\" disabled>\n        Edit Results\n      </button>\n      <button type=\"button\" id=\"signalVolunteers\" class=\"btn btn-purple btn-match-play btn-match-play-narrow ms-1\"\n        onclick=\"signalVolunteers();\" disabled>\n        Signal Count\n      </button>\n      <button type=\"button\" id=\"signalReset\" class=\"btn btn-success btn-match-play btn-match-play-narrow ms-1\"\n        onclick=\"signalReset();\" disabled>\n        Signal Reset\n      </button>\n    </div>\n    <div class=\"card card-body bg-body-tertiary mt-3\">\n      <div class=\"row\">\n        <div class=\"col-lg-3\">\n          <h6>Scoring</h6>\n          <p><span class=\"badge badge-scoring\" id=\"refereeScoreStatus\">Referee</span><br/>\n            <span class=\"badge badge-scoring\" id=\"redNearScoreStatus\"></span><br/>\n            <span class=\"badge badge-scoring\" id=\"redFarScoreStatus\"></span><br/>\n            <span class=\"badge badge-scoring\" id=\"blueNearScoreStatus\"></span><br/>\n            <span class=\"badge badge-scoring\" id=\"blueFarScoreStatus\"></span></p>\n          {{if .EventSettings.NetworkSecurityEnabled}}\n          <h6>Network Status</h6>\n          <p>\n            <span class=\"badge badge-status\" id=\"accessPointStatus\">Access Point</span><br/>\n            <span class=\"badge badge-status\" id=\"switchStatus\">Switch</span>\n            {{if .EventSettings.SCCManagementEnabled}}\n            <br/>\n            <span class=\"badge badge-status\" id=\"redSCCStatus\">Red SCC</span><br/>\n            <span class=\"badge badge-status\" id=\"blueSCCStatus\">Blue SCC</span>\n            {{end}}\n          </p>\n          {{end}}\n          {{if .PlcIsEnabled}}\n          <h6>PLC Status</h6>\n          <p>\n            <span class=\"badge badge-scoring\" id=\"plcStatus\"></span>\n            <span class=\"badge badge-scoring\" id=\"fieldEStop\">E-Stop</span><br/>\n            {{range $name, $status := .PlcArmorBlockStatuses}}\n            <span class=\"badge badge-scoring\" id=\"plc{{$name}}Status\">{{$name}}</span>\n            {{end}}\n          </p>\n          {{end}}\n        </div>\n        <div class=\"col-lg-3\">\n          <h6>Audience Display</h6>\n          {{template \"audience_display_radio_buttons\"}}\n        </div>\n        <div class=\"col-lg-3\">\n          <h6>Alliance Station Display</h6>\n          <div>\n            <div>\n              <label>\n                <input type=\"radio\" name=\"allianceStationDisplay\" value=\"blank\"\n                  onclick=\"setAllianceStationDisplay();\"> Blank\n              </label>\n            </div>\n            <div>\n              <label>\n                <input type=\"radio\" name=\"allianceStationDisplay\" value=\"match\"\n                  onclick=\"setAllianceStationDisplay();\"> Match\n              </label>\n            </div>\n            <div>\n              <label>\n                <input type=\"radio\" name=\"allianceStationDisplay\" value=\"logo\"\n                  onclick=\"setAllianceStationDisplay();\"> Logo\n              </label>\n            </div>\n            <div>\n              <label>\n                <input type=\"radio\" name=\"allianceStationDisplay\" value=\"timeout\"\n                  onclick=\"setAllianceStationDisplay();\"> Timeout\n              </label>\n            </div>\n            <div>\n              <label>\n                <input type=\"radio\" name=\"allianceStationDisplay\" value=\"fieldReset\"\n                  onclick=\"setAllianceStationDisplay();\" id=\"fieldResetRadio\"> Field Reset\n              </label>\n            </div>\n            <div>\n              <label>\n                <input type=\"radio\" name=\"allianceStationDisplay\" value=\"signalCount\"\n                  onclick=\"setAllianceStationDisplay();\" id=\"fieldResetRadio\"> Signal Count\n              </label>\n            </div>\n          </div>\n          <h6 class=\"mt-4\">Shown Match Result</h6>\n          <span class=\"badge badge-saved-match\" id=\"savedMatchName\">None</span>\n          &nbsp;\n          <b class=\"btn btn-primary btn-sm\" onclick=\"showResult(0);\">Clear</b>\n        </div>\n        <div class=\"col-lg-3\">\n          <h6>Match Sounds</h6>\n          <div class=\"checkbox\">\n            <label>\n              <input type=\"checkbox\" id=\"muteMatchSounds\">\n              Mute\n            </label>\n          </div>\n          <h6 class=\"mt-4\">Timeout</h6>\n          <input type=\"text\" id=\"timeoutDuration\" size=\"4\" value=\"8:00\"/>\n          <button type=\"button\" id=\"startTimeout\" class=\"btn btn-primary btn-sm\" onclick=\"startTimeout();\">\n            Start\n          </button>\n          <div id=\"testMatchSettings\">\n            <br/><br/>\n            <p>Match Name</p>\n            <input type=\"text\" id=\"testMatchName\" size=\"16\" onblur=\"setTestMatchName();\"/>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"row justify-content-center mt-3\">\n      <div id=\"cycleTimeMessage\" class=\"col-lg-6\"></div>\n      <div id=\"earlyLateMessage\" class=\"col-lg-4 text-end\"></div>\n    </div>\n  </div>\n</div>\n<div id=\"confirmCommitResults\" class=\"modal\" style=\"top: 20%;\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-header\">\n        <h4 class=\"modal-title\">Confirm</h4>\n        <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"></button>\n      </div>\n      <div class=\"modal-body\">\n        <p id=\"confirmCommitReplay\">This is a replay. Are you sure you want to overwrite the previous results?</p>\n        <p id=\"confirmCommitNotReady\">Not all scoring sources are ready yet. Are you sure you want to\n          commit the results?</p>\n      </div>\n      <div class=\"modal-footer\">\n        <form class=\"form-horizontal\" action=\"/setup/teams/clear\" method=\"POST\">\n          <button type=\"button\" class=\"btn btn-secondary\" data-bs-dismiss=\"modal\">Cancel</button>\n          <button type=\"button\" class=\"btn btn-danger\" onclick=\"commitResults();\" data-bs-dismiss=\"modal\">\n            Commit Results\n          </button>\n        </form>\n      </div>\n    </div>\n  </div>\n</div>\n<div id=\"confirmDiscardResults\" class=\"modal\" style=\"top: 20%;\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-header\">\n        <h4 class=\"modal-title\">Confirm</h4>\n        <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"></button>\n      </div>\n      <div class=\"modal-body\">\n        <p>Are you sure you want to discard the results for this match?</p>\n      </div>\n      <div class=\"modal-footer\">\n        <form class=\"form-horizontal\" action=\"/setup/teams/clear\" method=\"POST\">\n          <button type=\"button\" class=\"btn btn-secondary\" data-bs-dismiss=\"modal\">Cancel</button>\n          <button type=\"button\" class=\"btn btn-danger\" onclick=\"discardResults();\" data-bs-dismiss=\"modal\">\n            Discard Results\n          </button>\n        </form>\n      </div>\n    </div>\n  </div>\n</div>\n{{end}}\n{{define \"script\"}}\n<script src=\"/static/js/match_timing.js\"></script>\n<script src=\"/static/js/match_play.js\"></script>\n{{end}}\n{{define \"matchPlayTeam\"}}\n<div class=\"row mb-2\" id=\"status{{.color}}{{.position}}\">\n  <div class=\"col-lg-1\">{{.position}}</div>\n  <div class=\"col-lg-3\">\n    <input type=\"number\" class=\"team-number form-control\"\n      onchange=\"$('#substituteTeams').prop('disabled', false);\">\n  </div>\n  <div class=\"col-lg-2 col-no-padding\">\n    <div class=\"ds-status\" data-bs-toggle=\"tooltip\" title=\"Bandwidth Consumed\"></div>\n  </div>\n  <div class=\"col-lg-2 col-no-padding\">\n    <div class=\"radio-status\" data-bs-toggle=\"tooltip\" title=\"AP SSID\"></div>\n  </div>\n  <div class=\"col-lg-2 col-no-padding\">\n    <div class=\"robot-status\" data-bs-toggle=\"tooltip\" title=\"Battery / Time Since Link Lost\"></div>\n  </div>\n  <div class=\"col-lg-2 col-no-padding\">\n    <div class=\"bypass-status\" onclick=\"toggleBypass('{{.color}}{{.position}}');\"></div>\n  </div>\n</div>\n{{end}}\n"
  },
  {
    "path": "templates/match_play_match_load.html",
    "content": "<b class=\"btn btn-primary\" onclick=\"loadMatch(0);\">Load Test Match</b>\n<ul class=\"nav nav-tabs mt-4\">\n  <li>\n    <a href=\"#Practice\" class=\"nav-link{{if eq .CurrentMatchType practiceMatch }} active{{end}}\" data-bs-toggle=\"tab\">\n      Practice\n    </a>\n  </li>\n  <li>\n    <a href=\"#Qualification\" class=\"nav-link{{if eq .CurrentMatchType qualificationMatch }} active{{end}}\"\n      data-bs-toggle=\"tab\">\n      Qualification\n    </a>\n  </li>\n  <li>\n    <a href=\"#Playoff\" class=\"nav-link{{if eq .CurrentMatchType playoffMatch }} active{{end}}\" data-bs-toggle=\"tab\">\n      Playoff\n    </a>\n  </li>\n</ul>\n<div class=\"tab-content\">\n  {{range $type, $matches := .MatchesByType}}\n  <div class=\"match-list tab-pane {{if eq $.CurrentMatchType $type}} active{{end}}\" id=\"{{$type}}\">\n    <table class=\"table table-striped table-hover\">\n      <thead>\n        <tr>\n          <th>Match</th>\n          <th>Time</th>\n          <th>Action</th>\n        </tr>\n      </thead>\n      <tbody>\n        {{range $match := $matches}}\n        <tr>\n          <td class=\"bg-{{$match.ColorClass}}\">{{$match.ShortName}}</td>\n          <td class=\"bg-{{$match.ColorClass}}\">{{$match.Time}}</td>\n          <td class=\"bg-{{$match.ColorClass}} nowrap\">\n            <b class=\"btn btn-primary btn-sm\" onclick=\"loadMatch({{$match.Id}});\">Load</b>\n            {{if ne $match.Status matchScheduled}}\n            <b class=\"btn btn-primary btn-sm\" onclick=\"showResult({{$match.Id}});\">Show Result</b>\n            {{end}}\n          </td>\n        </tr>\n        {{end}}\n      </tbody>\n    </table>\n  </div>\n  {{end}}\n</div>\n"
  },
  {
    "path": "templates/match_review.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for listing matches and their results.\n*/}}\n{{define \"title\"}}Match Review{{end}}\n{{define \"body\"}}\n<div class=\"row\">\n  <ul class=\"nav nav-tabs\">\n    <li>\n      <a href=\"#Practice\" class=\"nav-link{{if eq .CurrentMatchType practiceMatch }} active{{end}}\" data-bs-toggle=\"tab\">\n        Practice\n      </a>\n    </li>\n    <li>\n      <a href=\"#Qualification\" class=\"nav-link{{if eq .CurrentMatchType qualificationMatch }} active{{end}}\"\n        data-bs-toggle=\"tab\">\n        Qualification\n      </a>\n    </li>\n    <li>\n      <a href=\"#Playoff\" class=\"nav-link{{if eq .CurrentMatchType playoffMatch }} active{{end}}\" data-bs-toggle=\"tab\">\n        Playoff\n      </a>\n    </li>\n  </ul>\n  <div class=\"tab-content\">\n    {{range $type, $matches := .MatchesByType}}\n    <div class=\"tab-pane {{if eq $.CurrentMatchType $type }} active{{end}}\" id=\"{{$type}}\">\n      <table class=\"table table-striped table-hover \">\n        <thead>\n          <tr>\n            <th>Match</th>\n            <th>Time</th>\n            <th class=\"text-center\">Red Alliance</th>\n            <th class=\"text-center\">Blue Alliance</th>\n            <th class=\"text-center\">Red Score</th>\n            <th class=\"text-center\">Blue Score</th>\n            <th class=\"text-center\">Action</th>\n          </tr>\n        </thead>\n        <tbody>\n          {{range $m := $matches}}\n          <tr>\n            <td class=\"bg-{{$m.ColorClass}}\">{{$m.ShortName}}</td>\n            <td class=\"bg-{{$m.ColorClass}}\">{{$m.Time}}</td>\n            <td class=\"bg-{{$m.ColorClass}} text-center red-text\">\n              {{index $m.RedTeams 0}}, {{index $m.RedTeams 1}}, {{index $m.RedTeams 2}}\n            </td>\n            <td class=\"bg-{{$m.ColorClass}} text-center blue-text\">\n              {{index $m.BlueTeams 0}}, {{index $m.BlueTeams 1}}, {{index $m.BlueTeams 2}}\n            </td>\n            <td class=\"bg-{{$m.ColorClass}} text-center red-text\">{{if $m.IsComplete}}{{$m.RedScore}}{{end}}</td>\n            <td class=\"bg-{{$m.ColorClass}} text-center blue-text\">{{if $m.IsComplete}}{{$m.BlueScore}}{{end}}</td>\n            <td class=\"bg-{{$m.ColorClass}} text-center nowrap\">\n              <a href=\"/match_review/{{$m.Id}}/edit\"><b class=\"btn btn-primary btn-sm\">Edit</b></a>\n            </td>\n          </tr>\n          {{end}}\n        </tbody>\n      </table>\n    </div>\n    {{end}}\n  </div>\n</div>\n{{end}}\n{{define \"script\"}}\n{{end}}\n"
  },
  {
    "path": "templates/placeholder_display.html",
    "content": "{{/*\nCopyright 2018 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nPlaceholder display shown until configured by the server.\n*/}}\n<!DOCTYPE html>\n<html>\n  <head>\n    <title>Placeholder Display - {{.EventSettings.Name}} - Cheesy Arena </title>\n    <link rel=\"shortcut icon\" href=\"/static/img/favicon.ico\">\n    <link rel=\"stylesheet\" href=\"/static/css/cheesy-arena.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/placeholder_display.css\"/>\n  </head>\n  <body>\n    <div id=\"displayId\"></div>\n    <div id=\"displayNickname\"></div>\n    <script src=\"/static/js/lib/jquery.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.json-2.4.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.websocket-0.0.1.js\"></script>\n    <script src=\"/static/js/cheesy-websocket.js\"></script>\n    <script src=\"/static/js/placeholder_display.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "templates/queueing_display.html",
    "content": "{{/*\nCopyright 2018 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nDisplay that shows upcoming matches and timing information.\n*/}}\n<!DOCTYPE html>\n<html>\n  <head>\n    <title>Queueing Display - {{.EventSettings.Name}} - Cheesy Arena</title>\n    <link rel=\"shortcut icon\" href=\"/static/img/favicon.ico\">\n    <link rel=\"stylesheet\" href=\"/static/css/lib/bootstrap.min.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/cheesy-arena.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/queueing_display.css\"/>\n  </head>\n  <body>\n    <div id=\"header\" class=\"row justify-content-center\">\n      <div class=\"col-lg-5\">Match Queue</div>\n      <div class=\"col-lg-5 text-end\">{{.EventSettings.Name}}</div>\n    </div>\n    <div id=\"matches\"></div>\n    <div class=\"row justify-content-center\">\n      <div id=\"earlyLateMessage\" class=\"col-lg-10\"></div>\n    </div>\n  </body>\n  <script src=\"/static/js/lib/jquery.min.js\"></script>\n  <script src=\"/static/js/lib/jquery.json-2.4.min.js\"></script>\n  <script src=\"/static/js/lib/jquery.websocket-0.0.1.js\"></script>\n  <script src=\"/static/js/lib/jquery.transit.min.js\"></script>\n  <script src=\"/static/js/lib/bootstrap.bundle.min.js\"></script>\n  <script src=\"/static/js/cheesy-websocket.js\"></script>\n  <script src=\"/static/js/match_timing.js\"></script>\n  <script src=\"/static/js/queueing_display.js\"></script>\n</html>\n"
  },
  {
    "path": "templates/queueing_display_match_load.html",
    "content": "{{range $i, $match := .Matches}}\n<div class=\"row justify-content-center\">\n  <div class=\"col-lg-10\">\n    <div class=\"card card-body\">\n      <div class=\"row\">\n        <div class=\"col-lg-6\">\n          <div class=\"row\">\n            <div class=\"col-lg-4 ps-4\">\n              <h1 class=\"mt-2\">\n                {{if eq $i 0}}\n                On Field\n                {{else if eq $i 1}}\n                On Deck\n                {{else if eq $i 2}}\n                Up In 2\n                {{else if eq $i 3}}\n                Up In 3\n                {{else if eq $i 4}}\n                Up In 4\n                {{end}}\n              </h1>\n            </div>\n            <div class=\"col-lg-3\">\n              <h1 class=\"mt-2\">{{$match.ShortName}}</h1>\n            </div>\n            <div class=\"col-lg-5\">\n              <h1 class=\"mt-2\">{{$match.Time.Local.Format \"3:04 PM\"}}</h1>\n            </div>\n          </div>\n          {{if eq $i 0}}\n          <div class=\"row mt-3\">\n            <div id=\"matchState\" class=\"col-lg-4 ps-4\"></div>\n            <div id=\"matchTime\" class=\"col-lg-3\"></div>\n          </div>\n          {{end}}\n        </div>\n        <div class=\"col-lg-1 avatars text-end\">\n          <img class=\"avatar\" src=\"/api/teams/{{$match.Red1}}/avatar\"/><br/>\n          <img class=\"avatar\" src=\"/api/teams/{{$match.Red2}}/avatar\"/><br/>\n          <img class=\"avatar\" src=\"/api/teams/{{$match.Red3}}/avatar\"/>\n        </div>\n        <div class=\"col-lg-2 red-teams\">\n          {{if $match.Red1}}\n          <div class=\"row\">\n            <div class=\"col-lg-8\">\n              {{$match.Red1}}<br/>{{$match.Red2}}<br/>{{$match.Red3}}\n              {{range $team := (index $.RedOffFieldTeams $i) }}\n              <br/>{{$team}}\n              {{end}}\n            </div>\n            <div class=\"col-lg-4\">\n              {{if $match.PlayoffRedAlliance}}\n              <div class=\"alliance-container{{if (index $.RedOffFieldTeams $i)}} alliance-tall{{end}}\">\n                <div class=\"alliance-number\">{{$match.PlayoffRedAlliance}}</div>\n              </div>\n              {{end}}\n            </div>\n          </div>\n          {{end}}\n        </div>\n        <div class=\"col-lg-2 blue-teams text-end\">\n          {{if $match.Blue1}}\n          <div class=\"row\">\n            <div class=\"col-lg-4\">\n              {{if $match.PlayoffBlueAlliance}}\n              <div class=\"alliance-container{{if (index $.BlueOffFieldTeams $i)}} alliance-tall{{end}}\">\n                <div></div>\n                <div class=\"alliance-number\">{{$match.PlayoffBlueAlliance}}</div>\n              </div>\n              {{end}}\n            </div>\n            <div class=\"col-lg-8\">\n              {{$match.Blue1}}<br/>{{$match.Blue2}}<br/>{{$match.Blue3}}\n              {{range $team := (index $.BlueOffFieldTeams $i) }}\n              <br/>{{$team}}\n              {{end}}\n            </div>\n          </div>\n          {{end}}\n        </div>\n        <div class=\"col-lg-1 avatars\">\n          <img class=\"avatar\" src=\"/api/teams/{{$match.Blue1}}/avatar\"/><br/>\n          <img class=\"avatar\" src=\"/api/teams/{{$match.Blue2}}/avatar\"/><br/>\n          <img class=\"avatar\" src=\"/api/teams/{{$match.Blue3}}/avatar\"/>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n{{end}}\n"
  },
  {
    "path": "templates/rankings.csv",
    "content": "Rank,TeamId,RankingPoints,CoopertitionPoints,MatchPoints,AutoPoints,BargePoints,Wins,Losses,Ties,Disqualifications,Played\n{{range $ranking := .}}{{$ranking.Rank}},{{$ranking.TeamId}},{{$ranking.RankingPoints}},{{$ranking.CoopertitionPoints}},{{$ranking.MatchPoints}},{{$ranking.AutoPoints}},{{$ranking.BargePoints}},{{$ranking.Wins}},{{$ranking.Losses}},{{$ranking.Ties}},{{$ranking.Disqualifications}},{{$ranking.Played}}\n{{end}}\n"
  },
  {
    "path": "templates/rankings_display.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: nick@team254.com (Nick Eyre)\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nDisplay for showing team rankings.\n*/}}\n<!DOCTYPE html>\n<html>\n  <head>\n    <title>Standings Display - {{.EventSettings.Name}} - Cheesy Arena </title>\n    <link rel=\"shortcut icon\" href=\"/static/img/favicon.ico\">\n    <link rel=\"stylesheet\" href=\"/static/css/lib/bootstrap.min.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/cheesy-arena.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/rankings_display.css\"/>\n  </head>\n  <body>\n    <div id=\"column\">\n      <div id=\"titlebar\" class=\"row justify-content-between\">\n        <div class=\"col-lg-4 text-start\">Team Standings</div>\n        <div class=\"col-lg-4 text-end\">{{.EventSettings.Name}}</div>\n      </div>\n      <div id=\"standings\">\n        <table id=\"header\">\n          <tr>\n            <td class=\"team-field\">Rank</td>\n            <td class=\"team-field\">Team</td>\n            <td class=\"team-nickname\">Name</td>\n            <td class=\"team-field\">RP</td>\n            <td class=\"team-field\">Coop</td>\n            <td class=\"team-field\">Match</td>\n            <td class=\"team-field\">Auto</td>\n            <td class=\"team-field\">Barge</td>\n            <td class=\"team-field\">W-L-T</td>\n            <td class=\"team-field\">DQ</td>\n            <td class=\"team-field\">Played</td>\n          </tr>\n        </table>\n        <div id=\"container\">\n          <div id=\"scroller\">\n            <table id=\"rankings1\" class=\"table table-striped rankings-table\"></table>\n            <table id=\"rankings2\" class=\"table table-striped rankings-table\"></table>\n          </div>\n        </div>\n        <div id=\"footer\">\n          <span id=\"highestPlayedMatch\"></span>\n        </div>\n      </div>\n      <div id=\"earlyLateMessage\"></div>\n    </div>\n    <script id=\"standingsTemplate\" type=\"text/x-handlebars-template\">\n      <tbody>\n        {{\"{{#each Rankings}}\"}}\n        <tr>\n          <td class=\"team-field\">{{\"{{../Iteration}}\"}} {{\"{{this.Rank}}\"}}</td>\n          <td class=\"team-field\">{{\"{{this.TeamId}}\"}}</td>\n          <td class=\"team-nickname\">{{\"{{this.Nickname}}\"}}</td>\n          <td class=\"team-field\">{{\"{{this.RankingPoints}}\"}}</td>\n          <td class=\"team-field\">{{\"{{this.CoopertitionPoints}}\"}}</td>\n          <td class=\"team-field\">{{\"{{this.MatchPoints}}\"}}</td>\n          <td class=\"team-field\">{{\"{{this.AutoPoints}}\"}}</td>\n          <td class=\"team-field\">{{\"{{this.BargePoints}}\"}}</td>\n          <td class=\"team-field\">{{\"{{this.Wins}}\"}}-{{\"{{this.Losses}}\"}}-{{\"{{this.Ties}}\"}}</td>\n          <td class=\"team-field\">{{\"{{this.Disqualifications}}\"}}</td>\n          <td class=\"team-field\">{{\"{{this.Played}}\"}}</td>\n        </tr>\n        {{\"{{/each}}\"}}\n      </tbody>\n    </script>\n    <script src=\"/static/js/lib/handlebars-1.3.0.js\"></script>\n    <script src=\"/static/js/lib/jquery.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.json-2.4.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.websocket-0.0.1.js\"></script>\n    <script src=\"/static/js/lib/jquery.transit.min.js\"></script>\n    <script src=\"/static/js/cheesy-websocket.js\"></script>\n    <script src=\"/static/js/rankings_display.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "templates/referee_panel.html",
    "content": "{{/*\nCopyright 2023 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for entering and tracking fouls and red/yellow cards.\n*/}}\n{{define \"title\"}}Referee Panel{{end}}\n{{define \"body\"}}\n<div id=\"matchName\"></div>\n<div id=\"refereePanel\">\n  <div id=\"cards\" class=\"headRef-dependent\">\n    <h3>Red/Yellow Cards</h3>\n    <div class=\"alliance-cards\" id=\"redCards\">\n      {{range $i := seq 3}}\n      {{template \"teamCard\" dict \"alliance\" \"red\" \"position\" $i}}\n      {{end}}\n    </div>\n    <div class=\"alliance-cards\" id=\"blueCards\">\n      {{range $i := seq 3}}\n      {{template \"teamCard\" dict \"alliance\" \"blue\" \"position\" $i}}\n      {{end}}\n    </div>\n    <div id=\"scoringStatuses\">\n      <div class=\"scoring-status\" id=\"redNearScoreStatus\"></div>\n      <div class=\"scoring-status\" id=\"redFarScoreStatus\"></div>\n      <div class=\"scoring-status\" id=\"blueNearScoreStatus\"></div>\n      <div class=\"scoring-status\" id=\"blueFarScoreStatus\"></div>\n    </div>\n  </div>\n  <div id=\"fouls\">\n    <div id=\"scoreSummary\" class=\"headRef-dependent\">\n      {{template \"scoreSummary\" dict \"id\" \"blueScoreSummary\"}}\n      {{template \"scoreSummary\" dict \"id\" \"redScoreSummary\"}}\n    </div>\n    <h3>Fouls</h3>\n    <div id=\"foulButtons\">\n      <div class=\"foul-button blue-foul\" onclick=\"addFoul('blue', false);\">Blue</div>\n      <div class=\"foul-button blue-foul\" onclick=\"addFoul('blue', true);\">Blue Major</div>\n      <div class=\"foul-button red-foul\" onclick=\"addFoul('red', false);\">Red</div>\n      <div class=\"foul-button red-foul\" onclick=\"addFoul('red', true);\">Red Major</div>\n    </div>\n    <div id=\"foulList\"></div>\n  </div>\n</div>\n<p>Note: Team and rule assignment are optional.</p>\n<div id=\"controlButtons\" class=\"headRef-dependent\">\n  <div class=\"control-button\" id=\"volunteerButton\" onclick=\"signalVolunteers();\">Signal Count</div>\n  <div class=\"control-button\" id=\"resetButton\" onclick=\"signalReset();\">Signal Reset</div>\n  <div class=\"control-button\" id=\"commitButton\" onclick=\"commitMatch();\">Commit Match</div>\n</div>\n{{end}}\n{{define \"head\"}}\n<link rel=\"manifest\" href=\"/static/manifest/referee.manifest\">\n<meta name=\"viewport\" content=\"width=device-width, user-scalable=no\">\n<link href=\"/static/css/referee_panel.css\" rel=\"stylesheet\">\n{{end}}\n{{define \"script\"}}\n<script src=\"/static/js/match_timing.js\"></script>\n<script src=\"/static/js/referee_panel.js\"></script>\n{{end}}\n{{define \"teamCard\"}}\n<div class=\"team-card\" id=\"{{.alliance}}Team{{.position}}Card\" data-alliance=\"{{.alliance}}\" onclick=\"cycleCard(this);\">\n</div>\n{{end}}\n{{define \"scoreSummary\"}}\n<div id=\"{{.id}}\" class=\"scoreSummary\">\n  <div class=\"placeholder\"></div>\n  <div class=\"team-1\">0</div>\n  <div class=\"team-2\">0</div>\n  <div class=\"team-3\">0</div>\n\n  <div class=\"label\">Leave</div>\n  <div class=\"leave-symbol team-1-leave\">❌</div>\n  <div class=\"leave-symbol team-2-leave\">❌</div>\n  <div class=\"leave-symbol team-3-leave\">❌</div>\n\n  <div class=\"label\">Endgame</div>\n  <div class=\"team-1-endgame\">None</div>\n  <div class=\"team-2-endgame\">None</div>\n  <div class=\"team-3-endgame\">None</div>\n\n  <div class=\"label\">Coral</div>\n  <div class=\"wide-row\">\n    <span class=\"coral-l1\">0</span> / <span class=\"coral-l2\">0</span> / <span class=\"coral-l3\">0</span> /\n    <span class=\"coral-l4\">0</span>\n    <br />\n    <span style=\"color: yellow\">\n      <span class=\"coral-l1-auto\">0</span> / <span class=\"coral-l2-auto\">0</span> / <span class=\"coral-l3-auto\">0</span> /\n      <span class=\"coral-l4-auto\">0</span>\n    </span>\n  </div>\n\n  <div class=\"label\">Algae</div>\n  <div class=\"wide-row\">\n    <span class=\"processor\">0</span> / <span class=\"barge\">0</span>\n  </div>\n</div>\n{{end}}"
  },
  {
    "path": "templates/referee_panel_foul_list.html",
    "content": "{{define \"referee_panel_foul_list\"}}\n{{range $i, $foul := .RedFouls}}\n{{template \"foul\" dict \"alliance\" \"red\" \"index\" $i \"foul\" $foul \"match\" $.Match \"rules\" $.Rules}}\n{{end}}\n{{range $i, $foul := .BlueFouls}}\n{{template \"foul\" dict \"alliance\" \"blue\" \"index\" $i \"foul\" $foul \"match\" $.Match \"rules\" $.Rules}}\n{{end}}\n{{end}}\n{{define \"foul\"}}\n<div class=\"foul {{.alliance}}-foul\">\n  <div>{{add .index 1}}</div>\n  <div class=\"type-button\" onclick=\"toggleFoulType('{{.alliance}}', {{.index}});\">\n    {{if .foul.IsMajor}}Major{{else}}Minor{{end}} Foul\n  </div>\n  <div class=\"team-buttons\">\n    {{if eq .alliance \"red\"}}\n    {{template \"teamButton\" dict \"alliance\" .alliance \"index\" .index \"foul\" .foul \"teamId\" .match.Red1}}\n    {{template \"teamButton\" dict \"alliance\" .alliance \"index\" .index \"foul\" .foul \"teamId\" .match.Red2}}\n    {{template \"teamButton\" dict \"alliance\" .alliance \"index\" .index \"foul\" .foul \"teamId\" .match.Red3}}\n    {{else}}\n    {{template \"teamButton\" dict \"alliance\" .alliance \"index\" .index \"foul\" .foul \"teamId\" .match.Blue1}}\n    {{template \"teamButton\" dict \"alliance\" .alliance \"index\" .index \"foul\" .foul \"teamId\" .match.Blue2}}\n    {{template \"teamButton\" dict \"alliance\" .alliance \"index\" .index \"foul\" .foul \"teamId\" .match.Blue3}}\n    {{end}}\n  </div>\n  <select class=\"rule-select\" onchange=\"updateFoulRule('{{.alliance}}', {{.index}}, parseInt(this.value));\">\n    <option value=\"0\" {{if eq $.foul.RuleId 0}} selected{{end}}>No Rule Selected</option>\n    {{range $rule := .rules}}\n    {{if eq $.foul.IsMajor $rule.IsMajor}}\n    <option value=\"{{$rule.Id}}\" {{if eq $.foul.RuleId $rule.Id}} selected{{end}}>{{$rule.RuleNumber}}\n      [{{if $rule.IsRankingPoint}}{{if $rule.IsMajor}}Major{{else}}Minor{{end}} Foul + RP\n      {{else}}{{if $rule.IsMajor}}Major{{else}}Minor{{end}} Foul{{end}}]: {{$rule.Description}}\n    </option>\n    {{end}}\n    {{end}}\n  </select>\n  <div class=\"delete-button\" onclick=\"deleteFoul('{{.alliance}}', {{.index}});\">Delete</div>\n</div>\n{{end}}\n{{define \"teamButton\"}}\n<div class=\"team-button\" {{if eq .foul.TeamId .teamId}} data-selected=\"true\" {{end}}\n  onclick=\"updateFoulTeam('{{.alliance}}', {{.index}}, {{.teamId}})\">\n  {{.teamId}}\n</div>\n{{end}}\n"
  },
  {
    "path": "templates/schedule.csv",
    "content": "Match,Type,Time,Red1,Red1IsSurrogate,Red2,Red2IsSurrogate,Red3,Red3IsSurrogate,Blue1,Blue1IsSurrogate,Blue2,Blue2IsSurrogate,Blue3,Blue3IsSurrogate\n{{range $match := .}}{{$match.ShortName}},{{$match.Type}},{{$match.Time.Local}},{{$match.Red1}},{{$match.Red1IsSurrogate}},{{$match.Red2}},{{$match.Red2IsSurrogate}},{{$match.Red3}},{{$match.Red3IsSurrogate}},{{$match.Blue1}},{{$match.Blue1IsSurrogate}},{{$match.Blue2}},{{$match.Blue2IsSurrogate}},{{$match.Blue3}},{{$match.Blue3IsSurrogate}}\n{{end}}\n"
  },
  {
    "path": "templates/scoring_panel.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\nAuthor: ian@yann.io (Ian Thompson)\n\nUI for entering realtime scores.\n*/}}\n{{define \"title\"}}Scoring Panel{{end}}\n{{define \"body\"}}\n<header id=\"banner\">\n  {{if .Position.ScoresAuto }}\n  <div class=\"banner-title\">Auto</div>\n  {{else}}\n  <div class=\"banner-placeholder\"></div>\n  {{end}}\n  <div class=\"screen-title\">{{.Position.Title}} - <span id=\"matchName\">&nbsp;</span></div>\n  {{if .Position.ScoresEndgame }}\n  <div class=\"banner-title\">Endgame</div>\n  {{else}}\n  <div class=\"banner-placeholder\"></div>\n  {{end}}\n</header>\n<main>\n  <div id=\"top-controls\">\n    <div id=\"auto-controls\">\n      {{if .Position.ScoresAuto}}\n      {{range $i := seq 3}}\n      {{template \"teamButton\" (dict \"id\" (printf \"auto-status-%d\" $i) \"index\" $i \"class\" \"scoring-button\" \"onclick\"\n      (printf \"handleLeaveClick(%d);\" $i))}}\n      {{end}}\n      {{end}}\n    </div>\n    <button id=\"commit\" onclick=\"commitMatchScore();\" ontouchstart disabled>Commit</button>\n    <div id=\"endgame-controls\">\n      {{if .Position.ScoresEndgame}}\n      {{range $i := seq 3}}\n      {{template \"teamButton\" (dict \"id\" (printf \"endgame-status-%d\" $i) \"index\" $i \"class\" \"scoring-teleop-button\"\n      \"onclick\" \"showEndgameDialog();\")}}\n      {{end}}\n      {{end}}\n    </div>\n  </div>\n  <div id=\"reef-controls\">\n    <svg id=\"reef-controls-warning\" viewBox=\"0 0 80 70\">\n      <path stroke-width=\"6\" stroke-linejoin=\"round\" stroke=\"#000000\" fill=\"none\" d=\"M 40,3 3,67 h 74 z\"/>\n      <line x1=\"40\" y1=\"23\" x2=\"40\" y2=\"45\" stroke-width=\"8\" stroke-linecap=\"round\" stroke=\"#000000\"/>\n      <circle fill=\"#000000\" cx=\"40\" cy=\"57\" r=\"4\"/>\n    </svg>\n    {{$baseIndex := .Position.LeftmostReefPole}}\n    {{range $i := seq 6}}\n    {{template \"reefColumn\" (dict \"index\" (add $baseIndex $i))}}\n    {{end}}\n  </div>\n  <div id=\"bottom-controls\">\n    <div class=\"counter-wrapper\">\n      {{if .Position.ScoresBarge}}\n      {{template \"counter\" (dict \"id\" \"barge\" \"label\" \"Barge Algae\")}}\n      {{else if and .Position.ScoresProcessor (not .PlcIsEnabled)}}\n      {{template \"counter\" (dict \"id\" \"processor\" \"label\" \"Processor Algae\")}}\n      {{end}}\n    </div>\n    <button id=\"edit-auto\" onclick=\"toggleEditAuto();\" ontouchstart disabled></button>\n    <div class=\"counter-wrapper\">\n      {{template \"counter\" (dict \"id\" \"trough\" \"label\" \"L1 Coral\" \"has_auto\" true)}}\n    </div>\n    <button id=\"fouls-button\" class=\"scoring-button\" onclick=\"showFoulsDialog();\" ontouchstart disabled>Fouls</button>\n  </div>\n  <div id=\"l1-total\">L1 Coral Total: <span id=\"l1-total-count\">0</span></div>\n</main>\n\n<svg id=\"reef-graphics\" style=\"display:none\">\n  <symbol id=\"coral-indicator\" width=\"30\" height=\"125\" viewBox=\"0 0 30 125\">\n    <rect width=\"30\" height=\"80\" fill=\"var(--coral)\" display=\"var(--current-display)\"/>\n    <g display=\"var(--auto-display)\">\n      <rect width=\"30\" height=\"20\" y=\"85\" fill=\"var(--coral-auto)\"/>\n      <text font-size=\"16pt\" font-weight=\"bold\" text-anchor=\"middle\" fill=\"black\" x=\"15\" y=\"103\">A</text>\n    </g>\n  </symbol>\n\n  <symbol id=\"reef-column\" width=\"120\" height=\"600\" viewBox=\"0 0 120 600\">\n    <style>\n      .l4-coral {\n        --current-display: var(--l4-coral-display);\n        --auto-display: var(--l4-coral-auto-display);\n      }\n\n      .l3-coral {\n        --current-display: var(--l3-coral-display);\n        --auto-display: var(--l3-coral-auto-display);\n      }\n\n      .l2-coral {\n        --current-display: var(--l2-coral-display);\n        --auto-display: var(--l2-coral-auto-display);\n      }\n    </style>\n    <g stroke=\"var(--reef-pole)\" stroke-width=\"12px\" fill=\"none\">\n      <path\n        d=\"m 60,0 v 125 a 24.142136,24.142136 112.5 0 1 -7.071068,17.07107 L 12.071068,182.92893 A 24.142136,24.142136 112.5 0 0 5,200 v 400\"/>\n      <line x1=\"5\" y1=\"355\" x2=\"115\" y2=\"245\"/>\n      <line x1=\"5\" y1=\"555\" x2=\"115\" y2=\"445\"/>\n    </g>\n    <use xlink:href=\"#coral-indicator\" class=\"l4-coral\" x=\"45\" y=\"20\"/>\n    <use xlink:href=\"#coral-indicator\" class=\"l3-coral\" x=\"45\" y=\"240\" transform=\"rotate(45, 60, 300)\"/>\n    <use xlink:href=\"#coral-indicator\" class=\"l2-coral\" x=\"45\" y=\"440\" transform=\"rotate(45, 60, 500)\"/>\n  </symbol>\n</svg>\n\n<dialog id=\"endgame-dialog\" onclick=\"closeEndgameDialogIfOutside(event);\">\n  <div class=\"dialog-container\">\n    <div class=\"dialog-banner\">Endgame Scoring</div>\n    <div id=\"endgame-scoring\">\n      {{range $i := seq 3}}\n      {{template \"endgame-input\" (dict \"id\" (printf \"endgame-input-%d\" $i) \"index\" $i)}}\n      {{end}}\n    </div>\n    <button class=\"dialog-close\" autofocus onclick=\"closeEndgameDialog();\" ontouchstart>Close</button>\n  </div>\n</dialog>\n\n<dialog id=\"fouls-dialog\" onclick=\"closeFoulsDialogIfOutside(event);\">\n  <div class=\"dialog-container\">\n    <div class=\"dialog-banner\">Add Fouls</div>\n    <div id=\"foul-container\">\n      {{template \"foulButton\" (dict \"id\" \"foul-blue-minor\" \"color\" \"blue\" \"label\" \"Blue\" \"isMajor\" false)}}\n      {{template \"foulButton\" (dict \"id\" \"foul-red-minor\" \"color\" \"red\" \"label\" \"Red\" \"isMajor\" false)}}\n      {{template \"foulButton\" (dict \"id\" \"foul-blue-major\" \"color\" \"blue\" \"label\" \"Blue Major\" \"isMajor\" true)}}\n      {{template \"foulButton\" (dict \"id\" \"foul-red-major\" \"color\" \"red\" \"label\" \"Red Major\" \"isMajor\" true)}}\n    </div>\n    <button class=\"dialog-close\" autofocus onclick=\"closeFoulsDialog();\" ontouchstart>Close</button>\n  </div>\n</dialog>\n{{end}}\n\n{{define \"head\"}}\n<link rel=\"manifest\" href=\"/static/manifest/{{.PositionName}}_scoring.manifest\">\n<meta name=\"viewport\" content=\"width=device-width, user-scalable=no\">\n<link href=\"/static/css/scoring_panel.css\" rel=\"stylesheet\">\n{{end}}\n{{define \"script\"}}\n<script src=\"/static/js/match_timing.js\"></script>\n<script src=\"/static/js/scoring_panel.js\"></script>\n{{end}}\n\n{{define \"foulButton\"}}\n<button id=\"{{.id}}\" class=\"foul-button {{.color}}\" ontouchstart onclick=\"addFoul('{{.color}}', {{.isMajor}});\">\n  <div class=\"foul-button-label\">{{.label}}</div>\n  <div class=\"foul-button-counters\">\n    <span class=\"fouls-local\">0</span> / <span class=\"fouls-global\">0</span>\n  </div>\n</button>\n{{end}}\n\n{{define \"teamButton\"}}\n<button id=\"{{.id}}\" class=\"team-button team-{{.index}} {{.class}}\" onclick=\"{{.onclick}}\" ontouchstart disabled>\n  <div class=\"team-num\"></div>\n  <div class=\"team-text\">None</div>\n</button>\n{{end}}\n\n{{define \"counter\"}}\n<div id=\"{{.id}}\" class=\"counter\">\n  <button class=\"counter-decrement scoring-button\" onclick=\"handleCounterClick('{{.id}}', -1);\" ontouchstart disabled>\n    -1\n  </button>\n  <div class=\"counter-status\">\n    {{if .has_auto}}\n    <div class=\"counter-main-clone\">Teleop: <span class=\"counter-value\">0</span></div>\n    <div class=\"counter-auto-row\">Auto: <span class=\"counter-auto-value\">0</span></div>\n    {{end}}\n    <div class=\"counter-value counter-main-value\">0</div>\n    <div class=\"counter-label\">{{.label}}</div>\n  </div>\n  <button class=\"counter-increment scoring-button\" onclick=\"handleCounterClick('{{.id}}', 1);\" ontouchstart disabled>\n    +1\n  </button>\n</div>\n{{end}}\n\n{{define \"reefColumn\"}}\n<div id=\"reef-column-{{.index}}\" class=\"reef-column\">\n  <div class=\"reef-column-contents\">\n    {{ $index := .index }}\n    {{range $i := seq 3}}\n    <button class=\"reef-button scoring-button\" onclick=\"handleReefClick({{$index}}, 5 - {{$i}})\" ontouchstart\n      disabled></button>\n    {{end}}\n    <svg class=\"reef-image\" viewBox=\"0 0 120 600\">\n      <use xlink:href=\"#reef-column\"/>\n    </svg>\n  </div>\n</div>\n{{end}}\n\n{{define \"endgame-input\"}}\n<div id=\"{{.id}}\" class=\"endgame-input team-{{.index}}\">\n  <div class=\"team-num\"></div>\n  {{template \"endgame-input-button\" (dict \"label\" \"Deep\" \"endgameState\" 3 \"index\" .index)}}\n  {{template \"endgame-input-button\" (dict \"label\" \"Shallow\" \"endgameState\" 2 \"index\" .index)}}\n  {{template \"endgame-input-button\" (dict \"label\" \"Park\" \"endgameState\" 1 \"index\" .index)}}\n  {{template \"endgame-input-button\" (dict \"label\" \"None\" \"endgameState\" 0 \"index\" .index)}}\n</div>\n{{end}}\n{{define \"endgame-input-button\"}}\n<button class=\"endgame-input-button endgame-{{.endgameState}}\"\n  onclick=\"handleEndgameClick({{.index}}, {{.endgameState}});\">{{.label}}\n</button>\n{{end}}"
  },
  {
    "path": "templates/setup_awards.html",
    "content": "{{/*\nCopyright 2019 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for configuring the awards.\n*/}}\n{{define \"title\"}}Awards Configuration{{end}}\n{{define \"body\"}}\n<div class=\"row justify-content-center\">\n  <div class=\"col-lg-8\">\n    <div class=\"card card-body bg-body-tertiary\">\n      <legend>Awards Configuration</legend>\n      {{range $award := .Awards}}\n      <form class=\"mt-2\" method=\"POST\">\n        <div class=\"row mb-3\">\n          <div class=\"col-lg-8\">\n            <input type=\"hidden\" name=\"id\" value=\"{{$award.Id}}\"/>\n            <div class=\"row mb-2\">\n              <label class=\"col-sm-5 control-label\">Award Name</label>\n              <div class=\"col-sm-7\">\n                <input type=\"text\" class=\"form-control\" name=\"awardName\" value=\"{{$award.AwardName}}\"\n                  placeholder=\"Safety Award\">\n              </div>\n            </div>\n            <div class=\"row mb-2\">\n              <label class=\"col-sm-5 control-label\">Team Awarded</label>\n              <div class=\"col-sm-7\">\n                <select class=\"form-control\" name=\"teamId\">\n                  <option value=\"0\">No Team</option>\n                  {{range $team := $.Teams}}\n                  <option value=\"{{$team.Id}}\" {{if eq $award.TeamId $team.Id}}}} selected{{end}}>\n                    {{$team.Id}} - {{$team.Nickname}}\n                  </option>\n                  {{end}}\n                </select>\n              </div>\n            </div>\n            <div class=\"row mb-2\">\n              <label class=\"col-sm-5 control-label\">Person Awarded</label>\n              <div class=\"col-sm-7\">\n                <input type=\"text\" class=\"form-control\" name=\"personName\" value=\"{{$award.PersonName}}\">\n              </div>\n            </div>\n          </div>\n          <div class=\"col-lg-4\">\n            <button type=\"submit\" class=\"btn btn-primary btn-lower-third\" name=\"action\" value=\"save\">Save</button>\n            {{if gt $award.Id 0}}\n            <button type=\"submit\" class=\"btn btn-danger btn-lower-third\" name=\"action\" value=\"delete\">\n              Delete\n            </button>\n            {{end}}\n          </div>\n        </div>\n      </form>\n      {{end}}\n      Winner and Finalist awards will be automatically generated once the playoff tournament is complete.\n      {{if .EventSettings.TbaPublishingEnabled}}\n      <br/><br/>\n      <p>Awards are not automatically published to The Blue Alliance. Manually publish them from the Settings tab.</p>\n      {{end}}\n    </div>\n  </div>\n</div>\n{{end}}\n{{define \"script\"}}\n{{end}}\n"
  },
  {
    "path": "templates/setup_breaks.html",
    "content": "{{/*\nCopyright 2024 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for configuring scheduled breaks.\n*/}}\n{{define \"title\"}}Breaks Configuration{{end}}\n{{define \"body\"}}\n<div class=\"row justify-content-center\">\n  <div class=\"col-lg-6\">\n    <div class=\"card card-body bg-body-tertiary\">\n      <legend>Scheduled Break Configuration</legend>\n      {{if not .ScheduledBreaks}}\n      <p>\n        Playoff breaks won't appear here until alliance selection is complete and the playoff tournament is created.\n      </p>\n      {{end}}\n      {{range $i, $scheduledBreak := .ScheduledBreaks}}\n      <form method=\"POST\">\n        <h5>Break #{{add $i 1}}</h5>\n        <input type=\"hidden\" name=\"id\" value=\"{{$scheduledBreak.Id}}\"/>\n        <div class=\"row mb-3\">\n          <div class=\"col-lg-3\">\n            <label class=\"control-label\">Description</label>\n          </div>\n          <div class=\"col-lg-6\">\n            <input type=\"text\" class=\"form-control\" name=\"description\" value=\"{{$scheduledBreak.Description}}\">\n          </div>\n          <div class=\"col-lg-3\">\n            <button type=\"submit\" class=\"btn btn-primary btn-lower-third mb-1\" name=\"action\" value=\"save\">\n              Save\n            </button>\n          </div>\n        </div>\n      </form>\n      {{end}}\n    </div>\n  </div>\n</div>\n{{end}}\n{{define \"script\"}}\n{{end}}\n"
  },
  {
    "path": "templates/setup_displays.html",
    "content": "{{/*\nCopyright 2018 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for configuring the field displays.\n*/}}\n{{define \"title\"}}Display Configuration{{end}}\n{{define \"body\"}}\n<div class=\"row\">\n  <div class=\"col-lg-12\">\n    <legend>Connected Displays</legend>\n    <table class=\"table table-striped table-hover \">\n      <thead>\n        <tr>\n          <th>ID</th>\n          <th># Connected</th>\n          <th>IP Address</th>\n          <th>Nickname</th>\n          <th>Type</th>\n          <th>Configuration</th>\n          <th>Action</th>\n        </tr>\n      </thead>\n      <tbody id=\"displayContainer\"></tbody>\n    </table>\n    <button type=\"button\" class=\"btn btn-danger float-end\" onclick=\"reloadAllDisplays();\">\n      Force Reload of All Displays\n    </button>\n  </div>\n</div>\n\n<script id=\"displayTemplate\" type=\"text/x-handlebars-template\">\n  <tr{{\"{{#unless ConnectionCount}}\"}} class=\"danger\"{{\"{{/unless}}\"}}>\n  <td>{{\"{{DisplayConfiguration.Id}}\"}}</td>\n  <td>{{\"{{ConnectionCount}}\"}}</td>\n  <td>{{\"{{IpAddress}}\"}}</td>\n  <td>\n    <input type=\"text\" id=\"displayNickname{{\"{{DisplayConfiguration.Id}}\"}}\" size=\"30\" oninput=\"markChanged(this);\" />\n  </td>\n  <td>\n    <select id=\"displayType{{\"{{DisplayConfiguration.Id}}\"}}\" onchange=\"markChanged(this);\">\n    {{range $type, $typeName := .DisplayTypeNames}}\n    <option value=\"{{$type}}\">{{$typeName}}</option>\n    {{end}}\n    </select>\n  </td>\n  <td>\n    <input type=\"text\" id=\"displayConfiguration{{\"{{DisplayConfiguration.Id}}\"}}\" size=\"50\"\n      oninput=\"markChanged(this);\" />\n  </td>\n  <td>\n    <button type=\"button\" class=\"btn btn-primary btn-sm\" title=\"Save Changes\"\n      onclick=\"configureDisplay('{{\"{{DisplayConfiguration.Id}}\"}}');\">\n    <i class=\"bi-check-lg\"></i>\n    </button>\n    <button type=\"button\" class=\"btn btn-danger btn-sm\" title=\"Undo Changes\" onclick=\"undoChanges();\">\n      <i class=\"bi-arrow-left\"></i>\n    </button>\n    <button type=\"button\" class=\"btn btn-success btn-sm\" title=\"Reload Display\"\n      onclick=\"reloadDisplay('{{\"{{DisplayConfiguration.Id}}\"}}');\">\n    <i class=\"bi-arrow-clockwise\"></i>\n    </button>\n  </td>\n  </tr>\n</script>\n{{end}}\n{{define \"script\"}}\n<script src=\"/static/js/setup_displays.js\"></script>\n{{end}}\n"
  },
  {
    "path": "templates/setup_field_testing.html",
    "content": "{{/*\nCopyright 2018 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for testing the game sounds and the LEDs and PLC connected to the field.\n*/}}\n{{define \"title\"}}Field Testing{{end}}\n{{define \"body\"}}\n<div class=\"row justify-content-center\">\n  <div class=\"col-lg-3\">\n    <div class=\"card card-body bg-body-tertiary\">\n      <legend>Game Sounds</legend>\n      {{range $sound := .MatchSounds}}\n      <p>\n        <button type=\"button\" class=\"btn btn-sm btn-primary btn-game-sound\" onclick=\"playSound('{{$sound.Name}}');\">\n          <i class=\"bi-play-fill\"></i>&nbsp;&nbsp;{{toUpper $sound.Name}}\n        </button>\n      </p>\n      {{end}}\n    </div>\n  </div>\n  <div class=\"col-lg-8\">\n    <div class=\"card card-body bg-body-tertiary\">\n      <legend>PLC</legend>\n      <div class=\"row\">\n        <div class=\"col-lg-4\">\n          <table class=\"table\">\n            <tr>\n              <th class=\"bg-body-tertiary\" colspan=\"2\">Inputs</th>\n            </tr>\n            {{range $i, $name := .InputNames}}\n            <tr>\n              <td class=\"bg-body-tertiary\">{{$name}}</td>\n              <td class=\"bg-body-tertiary\" id=\"input{{$i}}\" data-plc-value=\"false\"></td>\n            </tr>\n            {{end}}\n          </table>\n        </div>\n        <div class=\"col-lg-4\">\n          <table class=\"table\">\n            <tr>\n              <th class=\"bg-body-tertiary\" colspan=\"2\">Registers</th>\n            </tr>\n            {{range $i, $name := .RegisterNames}}\n            <tr>\n              <td class=\"bg-body-tertiary\">{{$name}}</td>\n              <td class=\"bg-body-tertiary\" id=\"register{{$i}}\"></td>\n            </tr>\n            {{end}}\n          </table>\n        </div>\n        <div class=\"col-lg-4\">\n          <table class=\"table\">\n            <tr>\n              <th class=\"bg-body-tertiary\" colspan=\"2\">Coils</th>\n            </tr>\n            {{range $i, $name := .CoilNames}}\n            <tr>\n              <td class=\"bg-body-tertiary\">{{$name}}</td>\n              <td class=\"bg-body-tertiary\" id=\"coil{{$i}}\" data-plc-value=\"false\"></td>\n            </tr>\n            {{end}}\n          </table>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n{{end}}\n{{define \"script\"}}\n<script src=\"/static/js/setup_field_testing.js\"></script>\n{{end}}\n"
  },
  {
    "path": "templates/setup_judging.html",
    "content": "{{/*\nCopyright 2025 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for generating a judging schedule.\n*/}}\n{{define \"title\"}}Judge Scheduling{{end}}\n{{define \"body\"}}\n<div class=\"row\">\n  <div class=\"col-lg-6\">\n    <h2>Judge Scheduling</h2>\n    <p>Configure and generate a schedule for pit judging visits. The schedule will automatically avoid conflicts with\n      each team's qualification matches.</p>\n\n    {{if .ErrorMessage}}\n    <div class=\"alert alert-danger\">{{.ErrorMessage}}</div>\n    {{end}}\n\n    <div>\n      <form method=\"POST\" action=\"/setup/judging/generate\">\n        <div class=\"row mb-3\">\n          <label for=\"numJudges\" class=\"col-lg-9 form-label\">Number of parallel judge teams</label>\n          <div class=\"col-lg-3\">\n            <input type=\"number\" class=\"form-control\" id=\"numJudges\" name=\"numJudges\" min=\"1\"\n              value=\"{{.JudgingScheduleParams.NumJudges}}\">\n          </div>\n        </div>\n        <div class=\"row mb-3\">\n          <label for=\"durationMinutes\" class=\"col-lg-9 form-label\">Visit duration (minutes)</label>\n          <div class=\"col-lg-3\">\n            <input type=\"number\" class=\"form-control\" id=\"durationMinutes\" name=\"durationMinutes\" min=\"1\"\n              value=\"{{.JudgingScheduleParams.DurationMinutes}}\">\n          </div>\n        </div>\n        <div class=\"row mb-3\">\n          <label for=\"previousSpacingMinutes\" class=\"col-lg-9 form-label\">\n            Minimum spacing after previous match (minutes)\n          </label>\n          <div class=\"col-lg-3\">\n            <input type=\"number\" class=\"form-control\" id=\"previousSpacingMinutes\" name=\"previousSpacingMinutes\" min=\"0\"\n              value=\"{{.JudgingScheduleParams.PreviousSpacingMinutes}}\">\n          </div>\n        </div>\n        <div class=\"row mb-3\">\n          <label for=\"nextSpacingMinutes\" class=\"col-lg-9 form-label\">Minimum spacing before next match\n            (minutes)</label>\n          <div class=\"col-lg-3\">\n            <input type=\"number\" class=\"form-control\" id=\"nextSpacingMinutes\" name=\"nextSpacingMinutes\" min=\"0\"\n              value=\"{{.JudgingScheduleParams.NextSpacingMinutes}}\">\n          </div>\n        </div>\n        <button type=\"submit\" class=\"btn btn-primary\">Generate Schedule</button>\n      </form>\n      {{if .JudgingSlots}}\n      <form method=\"POST\" action=\"/setup/judging/clear\">\n        <button type=\"submit\" class=\"mt-3 btn btn-danger\"\n          onclick=\"return confirm('Are you sure you want to clear the judging schedule?');\">\n          Clear Judging Schedule\n        </button>\n      </form>\n      {{end}}\n    </div>\n  </div>\n\n  <div class=\"col-lg-6\">\n    {{if .JudgingSlots}}\n    <div class=\"card mb-3\">\n      <div class=\"card-body\">\n        <table class=\"table table-striped\">\n          <thead>\n            <tr>\n              <th>Time</th>\n              <th>Team</th>\n              <th>Judge</th>\n              <th>Previous Match</th>\n              <th>Next Match</th>\n            </tr>\n          </thead>\n          <tbody>\n            {{range .JudgingSlots}}\n            <tr>\n              <td>{{.Time.Format \"01/02 3:04 PM\"}}</td>\n              <td>{{.TeamId}}</td>\n              <td>{{.JudgeNumber}}</td>\n              <td>\n                {{if gt .PreviousMatchNumber 0}}\n                #{{.PreviousMatchNumber}} at {{.PreviousMatchTime.Format \"3:04 PM\"}}\n                {{end}}\n              </td>\n              <td>\n                {{if gt .NextMatchNumber 0}}\n                #{{.NextMatchNumber}} at {{.NextMatchTime.Format \"3:04 PM\"}}\n                {{end}}\n              </td>\n            </tr>\n            {{end}}\n          </tbody>\n        </table>\n      </div>\n    </div>\n    {{end}}\n  </div>\n</div>\n{{end}}\n{{define \"script\"}}\n{{end}}\n"
  },
  {
    "path": "templates/setup_lower_thirds.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for configuring audience display lower thirds.\n*/}}\n{{define \"title\"}}Lower Thirds{{end}}\n{{define \"body\"}}\n<div class=\"row justify-content-center\">\n  <div class=\"col-lg-3\">\n    <div class=\"card card-body bg-body-tertiary\">\n      <legend>Audience Display</legend>\n      {{template \"audience_display_radio_buttons\"}}\n    </div>\n  </div>\n  <div class=\"col-lg-6\">\n    <div class=\"card card-body bg-body-tertiary\">\n      <legend>Lower Thirds</legend>\n      {{range $i, $lowerThird := .LowerThirds}}\n      <form>\n        <div class=\"row mt-1 mb-3\">\n          <div class=\"col-lg-6\">\n            <input type=\"hidden\" name=\"id\" value=\"{{$lowerThird.Id}}\"/>\n            <input type=\"text\" class=\"form-control mb-1\" name=\"topText\" value=\"{{$lowerThird.TopText}}\"\n              placeholder=\"Top Text\"/>\n            <input type=\"text\" class=\"form-control\" name=\"bottomText\" value=\"{{$lowerThird.BottomText}}\"\n              placeholder=\"Bottom Text\"/>\n          </div>\n          <div class=\"col-lg-6\">\n            <button type=\"button\" class=\"btn btn-primary btn-lower-third mb-1\" onclick=\"saveLowerThird(this);\">\n              Save\n            </button>\n            <button type=\"button\" class=\"btn btn-success btn-lower-third mb-1\" onclick=\"showLowerThird(this);\">\n              Show\n            </button>\n            <button type=\"button\" class=\"btn btn-primary mb-1\" onclick=\"reorderLowerThird(this, true);\">\n              <i class=\"bi-arrow-up\"></i>\n            </button>\n            <button type=\"button\" class=\"btn btn-success mb-1\" onclick=\"showLowerThirdOnly(this);\">\n              Show Only Thirds\n            </button>\n            <br/>\n            <button type=\"button\" class=\"btn btn-danger btn-lower-third\" onclick=\"deleteLowerThird(this);\">\n              Delete\n            </button>\n            <button type=\"button\" class=\"btn btn-secondary btn-lower-third\" onclick=\"hideLowerThird(this);\">\n              Hide\n            </button>\n            <button type=\"button\" class=\"btn btn-primary\" onclick=\"reorderLowerThird(this, false);\">\n              <i class=\"bi-arrow-down\"></i>\n            </button>\n          </div>\n        </div>\n      </form>\n      {{end}}\n      <form class=\"form-horizontal\">\n        <div class=\"row mb-3\">\n          <div class=\"col-lg-6\">\n            <input type=\"hidden\" name=\"id\" value=\"0\"/>\n            <input type=\"text\" class=\"form-control mb-1\" name=\"topText\" placeholder=\"Top or Solo Text\"/>\n            <input type=\"text\" class=\"form-control\" name=\"bottomText\" placeholder=\"Bottom Text\"/>\n          </div>\n          <div class=\"col-lg-6\">\n            <button type=\"button\" class=\"btn btn-primary btn-lower-third\" name=\"save\" onclick=\"saveLowerThird(this);\">\n              Save\n            </button>\n          </div>\n        </div>\n      </form>\n    </div>\n  </div>\n</div>\n{{end}}\n{{define \"script\"}}\n<script src=\"/static/js/lower_thirds.js\"></script>\n{{end}}\n"
  },
  {
    "path": "templates/setup_schedule.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for generating a match schedule.\n*/}}\n{{define \"title\"}}Match Scheduling{{end}}\n{{define \"body\"}}\n<div class=\"row\">\n  {{if .ErrorMessage}}\n  <div class=\"alert alert-dismissible alert-danger\">\n    <button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button>\n    {{.ErrorMessage}}\n  </div>\n  {{end}}\n  <div class=\"col-lg-5\">\n    <div class=\"card card-body bg-body-tertiary\">\n      <form id=\"scheduleForm\" action=\"/setup/schedule/save?matchType={{.MatchType}}\" method=\"POST\">\n        <fieldset>\n          <legend>Schedule Parameters</legend>\n          <div class=\"row mb-3\">\n            <label class=\"col-lg-5 control-label\">Match Type</label>\n            <div class=\"col-lg-7\">\n              <div class=\"radio\">\n                <label>\n                  <input type=\"radio\" name=\"matchType\" value=\"practice\"\n                    onchange=\"window.location = '/setup/schedule?matchType=practice';\"\n                    {{if eq .MatchType practiceMatch}}checked{{end}}>\n                  Practice\n                </label>\n              </div>\n              <div class=\"radio\">\n                <label>\n                  <input type=\"radio\" name=\"matchType\" value=\"qualification\"\n                    onchange=\"window.location = '/setup/schedule?matchType=qualification';\"\n                    {{if eq .MatchType qualificationMatch}}checked{{end}}>\n                  Qualification\n                </label>\n              </div>\n            </div>\n          </div>\n          <div id=\"blockContainer\"></div>\n          <p>\n            <b>Total match count: <span id=\"totalNumMatches\">0</span></b><br/>\n            <b>Matches per team: <span id=\"matchesPerTeam\">0</span></b><br/>\n            <b>Excess matches: <span id=\"numExcessMatches\">0</span></b><br/>\n            <b>Matches needed for +1 per team: <span id=\"nextLevelMatches\">0</span></b>\n          </p>\n          <div class=\"row\">\n            <div class=\"col-lg-12\">\n              <p>\n                <button type=\"button\" class=\"btn btn-secondary\" onclick=\"addBlock();\">Add Block</button>\n                <button type=\"button\" class=\"btn btn-primary\" onclick=\"generateSchedule();\">\n                  Generate Schedule/Save Blocks\n                </button>\n              </p>\n              <p>\n                <button type=\"submit\" class=\"btn btn-danger\">Save Schedule</button>\n              </p>\n            </div>\n          </div>\n          {{if .EventSettings.TbaPublishingEnabled}}\n          <p>Schedule is not automatically published to The Blue Alliance. Manually publish it from the Settings\n            tab.</p>\n          {{end}}\n        </fieldset>\n      </form>\n    </div>\n  </div>\n  <div class=\"col-lg-5\">\n    <table class=\"table table-striped table-hover \">\n      <thead>\n        <tr>\n          <th>Match</th>\n          <th>Time</th>\n        </tr>\n      </thead>\n      <tbody>\n        {{range $match := .Matches}}\n        <tr>\n          <td>{{$match.LongName}}</td>\n          <td>{{$match.Time}}</td>\n        </tr>\n        {{end}}\n      </tbody>\n    </table>\n  </div>\n  <div class=\"col-lg-2\">\n    <table class=\"table table-striped table-hover \">\n      <thead>\n        <tr>\n          <th>Team</th>\n          <th>First Match</th>\n        </tr>\n      </thead>\n      <tbody>\n        {{range $team, $firstMatch := .TeamFirstMatches}}\n        <tr>\n          <td>{{$team}}</td>\n          <td>{{$firstMatch}}</td>\n        </tr>\n        {{end}}\n      </tbody>\n    </table>\n  </div>\n</div>\n<div id=\"blockTemplate\" style=\"display: none;\">\n  <div class=\"card card-body bg-body-tertiary mb-3\" id=\"block{{\"{{blockNumber}}\"}}\">\n  <div class=\"row justify-content-between mb-3\">\n    <div class=\"col-lg-6\"><b>Block {{\"{{blockNumber}}\"}}</b></div>\n    <div class=\"col-lg-1\">\n      <button class=\"btn-close\" onclick=\"deleteBlock({{\"{{blockNumber}}\"}});\"></button>\n    </div>\n  </div>\n  <div class=\"row mb-3\">\n    <label class=\"col-lg-4 control-label\">Start Time</label>\n    <div class=\"col-lg-8\">\n      <div class=\"input-group\" id=\"startTimePicker{{\"{{blockNumber}}\"}}\"\n      onchange=\"updateBlock({{\"{{blockNumber}}\"}});\">\n      <input type=\"text\" class=\"form-control\" id=\"startTime{{\"{{blockNumber}}\"}}\"\n      onchange=\"updateBlock({{\"{{blockNumber}}\"}});\">\n      <span class=\"input-group-text\"><i class=\"bi-calendar-week\"></i></span>\n    </div>\n  </div>\n</div>\n<div class=\"row mb-3\">\n  <label class=\"col-lg-4 control-label\">End Time</label>\n  <div class=\"col-lg-8\">\n    <div class=\"input-group\" id=\"endTimePicker{{\"{{blockNumber}}\"}}\"\n    onchange=\"updateBlock({{\"{{blockNumber}}\"}});\">\n    <input type=\"text\" class=\"form-control\" id=\"endTime{{\"{{blockNumber}}\"}}\"\n    onchange=\"updateBlock({{\"{{blockNumber}}\"}});\">\n    <span class=\"input-group-text\"><i class=\"bi-calendar-week\"></i></span>\n  </div>\n</div>\n</div>\n<div class=\"row mb-3\">\n  <label class=\"col-lg-4 control-label\">Cycle Time (m:s)</label>\n  <div class=\"col-lg-8\">\n    <input type=\"text\" class=\"form-control input-sm\" id=\"matchSpacingMinSec{{\"{{blockNumber}}\"}}\"\n    value=\"{{\"{{matchSpacingMinSec}}\"}}\" placeholder=\"6:00\" onchange=\"updateBlock({{\"{{blockNumber}}\"}});\">\n  </div>\n</div>\n<div class=\"row mb-3\">\n  <div class=\"col-lg-4\">Match count: <span id=\"numMatches{{\"{{blockNumber}}\"}}\"></span></div>\n  <div class=\"col-lg-8\">Actual end time: <span id=\"actualEndTime{{\"{{blockNumber}}\"}}\"></span></div>\n</div>\n</div>\n</div>\n\n{{end}}\n{{define \"script\"}}\n<!-- @formatter:off -->\n<script>var numTeams = {{.NumTeams}};</script>\n<script src=\"/static/js/setup_schedule.js\"></script>\n<script>\n  {{range $block := .ScheduleBlocks}}\n    addBlock(moment({{$block.StartTime.Unix}} * 1000), {{$block.NumMatches}}, {{$block.MatchSpacingSec}});\n  {{end}}\n  {{if not .ScheduleBlocks}}\n    addBlock();\n  {{end}}\n</script>\n<!-- @formatter:on -->\n{{end}}\n"
  },
  {
    "path": "templates/setup_settings.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for configuring event settings.\n*/}}\n{{define \"title\"}}Settings{{end}}\n{{define \"body\"}}\n<div class=\"row justify-content-center\">\n  {{if .ErrorMessage}}\n  <div class=\"alert alert-danger alert-dismissible\">\n    <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"alert\"></button>\n    {{.ErrorMessage}}\n  </div>\n  {{end}}\n  <div class=\"col-lg-8\">\n    <div class=\"card card-body bg-body-tertiary\">\n      <form method=\"POST\">\n        <ul class=\"nav nav-underline mb-3\" id=\"settingsTabs\" role=\"tablist\">\n          <li class=\"nav-item\">\n            <button class=\"nav-link\" id=\"event-tab\" data-bs-toggle=\"tab\" data-bs-target=\"#event\" role=\"tab\">\n              Event\n            </button>\n          </li>\n          <li class=\"nav-item\">\n            <button class=\"nav-link\" id=\"game-tab\" data-bs-toggle=\"tab\" data-bs-target=\"#game\" type=\"button\" role=\"tab\">\n              Game\n            </button>\n          </li>\n          <li class=\"nav-item\">\n            <button class=\"nav-link\" id=\"field-tab\" data-bs-toggle=\"tab\" data-bs-target=\"#field\" type=\"button\"\n              role=\"tab\">\n              Field\n            </button>\n          </li>\n          <li class=\"nav-item\">\n            <button class=\"nav-link\" id=\"publishing-tab\" data-bs-toggle=\"tab\" data-bs-target=\"#publishing\" type=\"button\"\n              role=\"tab\">\n              Publishing\n            </button>\n          </li>\n          <li class=\"nav-item\">\n            <button class=\"nav-link\" id=\"automation-tab\" data-bs-toggle=\"tab\" data-bs-target=\"#automation\" type=\"button\"\n              role=\"tab\">\n              Automation\n            </button>\n          </li>\n        </ul>\n        <div class=\"tab-content\">\n          <div class=\"tab-pane\" id=\"event\" role=\"tabpanel\">\n            <fieldset class=\"mb-4\">\n              <legend>Event Settings</legend>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Name</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"name\" value=\"{{.Name}}\" placeholder=\"{{.Name}}\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Playoff Type</label>\n                <div class=\"col-lg-6\">\n                  <div class=\"radio\">\n                    <label>\n                      <input type=\"radio\" name=\"playoffType\" value=\"DoubleEliminationPlayoff\"\n                        onclick=\"updateNumPlayoffAlliances(true);\"\n                        {{if eq .PlayoffType 0}}checked{{end}}>\n                      Double-Elimination (8 alliances)\n                    </label>\n                  </div>\n                  <div class=\"radio\">\n                    <label>\n                      <input type=\"radio\" name=\"playoffType\" value=\"SingleEliminationPlayoff\"\n                        onclick=\"updateNumPlayoffAlliances(false);\"\n                        {{if eq .PlayoffType 1}}checked{{end}}>\n                      Single-Elimination (2-16 alliances)\n                    </label>\n                  </div>\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Number of Alliances</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"numPlayoffAlliances\" value=\"{{.NumPlayoffAlliances}}\"\n                    {{if eq .PlayoffType 0}}disabled{{end}}>\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Round 2 Selection Order</label>\n                <div class=\"col-lg-6\">\n                  <div class=\"radio\">\n                    <label>\n                      <input type=\"radio\" name=\"selectionRound2Order\" value=\"F\"\n                        {{if eq .SelectionRound2Order \"F\"}}checked{{end}}>\n                      First to Last\n                    </label>\n                  </div>\n                  <div class=\"radio\">\n                    <label>\n                      <input type=\"radio\" name=\"selectionRound2Order\" value=\"L\"\n                        {{if eq .SelectionRound2Order \"L\"}}checked{{end}}>\n                      Last to First\n                    </label>\n                  </div>\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Round 3 Selection Order</label>\n                <div class=\"col-lg-6\">\n                  <div class=\"radio\">\n                    <label>\n                      <input type=\"radio\" name=\"selectionRound3Order\" value=\"F\"\n                        {{if eq .SelectionRound3Order \"F\"}}checked{{end}}>\n                      First to Last\n                    </label>\n                  </div>\n                  <div class=\"radio\">\n                    <label>\n                      <input type=\"radio\" name=\"selectionRound3Order\" value=\"L\"\n                        {{if eq .SelectionRound3Order \"L\"}}checked{{end}}>\n                      Last to First\n                    </label>\n                  </div>\n                  <div class=\"radio\">\n                    <label>\n                      <input type=\"radio\" name=\"selectionRound3Order\" value=\"\"\n                        {{if eq .SelectionRound3Order \"\"}}checked{{end}}>\n                      None\n                    </label>\n                  </div>\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\" for=\"selectionShowUnpickedTeams\">\n                  Show Unpicked Teams On Overlay\n                </label>\n                <div class=\"col-lg-1 checkbox\">\n                  <input type=\"checkbox\" id=\"selectionShowUnpickedTeams\"\n                    name=\"selectionShowUnpickedTeams\" {{if .SelectionShowUnpickedTeams}} checked{{end}}>\n                </div>\n              </div>\n            </fieldset>\n            <fieldset class=\"mb-4\">\n              <legend>Team Info Download</legend>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\" for=\"tbaDownloadEnabled\">\n                  Enable Team Info Download (From The Blue Alliance)\n                </label>\n                <div class=\"col-lg-1 checkbox\">\n                  <input type=\"checkbox\" id=\"tbaDownloadEnabled\"\n                    name=\"tbaDownloadEnabled\" {{if .TbaDownloadEnabled}} checked{{end}}>\n                </div>\n              </div>\n            </fieldset>\n            <fieldset class=\"mb-4\">\n              <legend>Authentication</legend>\n              <p>Configure password to enable authentication, or leave blank to disable.</p>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Password for 'admin' user</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"password\" class=\"form-control\" name=\"adminPassword\" value=\"{{.AdminPassword}}\">\n                </div>\n              </div>\n            </fieldset>\n            <fieldset>\n              <legend>Database Operations</legend>\n              <div>\n                <a href=\"/setup/db/save\" class=\"btn btn-primary\">Save Copy of Database</a>\n              </div>\n              <div class=\"mt-2\">\n                <button type=\"button\" class=\"btn btn-warning\" onclick=\"$('#uploadDatabase').modal('show');\">\n                  Load Database from Backup\n                </button>\n              </div>\n              <div class=\"mt-2\">\n                <button type=\"button\" class=\"btn btn-danger\" onclick=\"$('#confirmClearDataPlayoff').modal('show');\">\n                  Clear Playoff/Alliance Data\n                </button>\n              </div>\n              <div class=\"mt-2\">\n                <button type=\"button\" class=\"btn btn-danger\"\n                  onclick=\"$('#confirmClearDataQualification').modal('show');\">\n                  Clear Qualification Data\n                </button>\n              </div>\n              <div class=\"mt-2\">\n                <button type=\"button\" class=\"btn btn-danger\" onclick=\"$('#confirmClearDataPractice').modal('show');\">\n                  Clear Practice Data\n                </button>\n              </div>\n            </fieldset>\n          </div>\n          <div class=\"tab-pane\" id=\"game\" role=\"tabpanel\">\n            <fieldset class=\"mb-4\">\n              <legend>Game-Specific</legend>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Autonomous Period Duration<br/>(seconds)</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"autoDurationSec\" value=\"{{.AutoDurationSec}}\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Pause Duration<br/>(seconds)</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"pauseDurationSec\" value=\"{{.PauseDurationSec}}\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Teleoperated Period Duration<br/>(seconds)</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"teleopDurationSec\" value=\"{{.TeleopDurationSec}}\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Warning Remaining Duration<br/>(seconds)</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"warningRemainingDurationSec\"\n                    value=\"{{.WarningRemainingDurationSec}}\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Auto Bonus RP Coral Threshold</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" id=\"autoBonusCoralThreshold\" name=\"autoBonusCoralThreshold\"\n                    value=\"{{.AutoBonusCoralThreshold}}\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Coopertition Bonus Enabled</label>\n                <div class=\"col-lg-1 checkbox\">\n                  <input type=\"checkbox\" id=\"coralBonusCoopEnabled\"\n                    name=\"coralBonusCoopEnabled\" {{if .CoralBonusCoopEnabled}} checked{{end}}>\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Coral Bonus RP Per-Level Threshold</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" id=\"coralBonusPerLevelThreshold\"\n                    name=\"coralBonusPerLevelThreshold\" value=\"{{.CoralBonusPerLevelThreshold}}\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Barge Bonus RP Point Threshold</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" id=\"bargeBonusPointThreshold\" name=\"bargeBonusPointThreshold\"\n                    value=\"{{.BargeBonusPointThreshold}}\">\n                </div>\n              </div>\n              <div class=\"row\">\n                <label class=\"col-lg-6 control-label\">Include Algae Points Towards Barge Bonus</label>\n                <div class=\"col-lg-1 checkbox\">\n                  <input type=\"checkbox\" id=\"includeAlgaeInBargeBonus\"\n                    name=\"includeAlgaeInBargeBonus\" {{if .IncludeAlgaeInBargeBonus}} checked{{end}}>\n                </div>\n              </div>\n            </fieldset>\n          </div>\n          <div class=\"tab-pane\" id=\"field\" role=\"tabpanel\">\n            <fieldset class=\"mb-4\">\n              <legend>Networking</legend>\n              <p>Enable this setting if you have a Vivid-Hosting VH-113 access point and Cisco Catalyst 3500-series\n                switch\n                available, for isolating each team to its own SSID and VLAN.</p>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-8 control-label\"\n                  for=\"networkSecurityEnabled\">Enable advanced network security</label>\n                <div class=\"col-lg-1 checkbox\">\n                  <input type=\"checkbox\" id=\"networkSecurityEnabled\"\n                    name=\"networkSecurityEnabled\" {{if .NetworkSecurityEnabled}} checked{{end}}>\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">AP Address</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"apAddress\" value=\"{{.ApAddress}}\" placeholder=\"10.0.100.2\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">AP API Password</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"password\" class=\"form-control\" name=\"apPassword\" value=\"{{.ApPassword}}\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">AP Channel (6 GHz)</label>\n                <div class=\"col-lg-6\">\n                  <select class=\"form-select\" name=\"apChannel\" value=\"{{.ApChannel}}\">\n                    {{range $i, $j := seq 29}}\n                    <option value=\"{{(add 5 (multiply $i 8))}}\"\n                      {{if eq $.ApChannel (add 5 (multiply $i 8))}} selected{{end}}>\n                      {{(add 5 (multiply $i 8))}}\n                    </option>\n                    {{end}}\n                  </select>\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Switch Address</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"switchAddress\" value=\"{{.SwitchAddress}}\" placeholder=\"10.0.100.3\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Switch Password</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"password\" class=\"form-control\" name=\"switchPassword\" value=\"{{.SwitchPassword}}\">\n                </div>\n              </div>\n            </fieldset>\n            <fieldset class=\"mb-4\">\n              <legend>SCC Switch</legend>\n              <p>Enable this setting if you have an SSH-capable managed switch in your SCCs and want to run commands\n                to disable team ethernet ports while network reconfiguration is in progress. This setting only works\n                if advanced network security is enabled above.</p>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-8 control-label\"\n                  for=\"sccManagementEnabled\">Enable SCC switch management</label>\n                <div class=\"col-lg-1 checkbox\">\n                  <input type=\"checkbox\" id=\"sccManagementEnabled\"\n                    name=\"sccManagementEnabled\" {{if .SCCManagementEnabled}} checked{{end}}>\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Red SCC Address</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"redSCCAddress\" value=\"{{.RedSCCAddress}}\" placeholder=\"10.0.100.48\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Blue SCC Address</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"blueSCCAddress\" value=\"{{.BlueSCCAddress}}\" placeholder=\"10.0.100.49\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">SCC Username</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"sccUsername\" value=\"{{.SCCUsername}}\" placeholder=\"admin\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">SCC Password</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"password\" class=\"form-control\" name=\"sccPassword\" value=\"{{.SCCPassword}}\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">SCC Enable Commands</label>\n                <div class=\"col-lg-6\">\n                  <textarea class=\"form-control\" name=\"sccUpCommands\" rows=\"8\">{{.SCCUpCommands}}</textarea>\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">SCC Disable Commands</label>\n                <div class=\"col-lg-6\">\n                  <textarea class=\"form-control\" name=\"sccDownCommands\" rows=\"8\">{{.SCCDownCommands}}</textarea>\n                </div>\n              </div>\n            </fieldset>\n            <fieldset class=\"mb-4\">\n              <legend>PLC</legend>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">PLC Address</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"plcAddress\" value=\"{{.PlcAddress}}\" placeholder=\"10.0.100.40\">\n                </div>\n              </div>\n            </fieldset>\n            <fieldset class=\"mb-4\">\n              <legend>Team Signs</legend>\n              <p>\n                If you are using a set of the (2024+) official team number / timer signs, enter their two-digit IDs\n                (e.g.\n                51, 52, etc.) here.\n              </p>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Red 1 Sign ID</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"teamSignRed1Id\"\n                    value=\"{{if gt .TeamSignRed1Id 0}}{{.TeamSignRed1Id}}{{end}}\" placeholder=\"51\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Red 2 Sign ID</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"teamSignRed2Id\"\n                    value=\"{{if gt .TeamSignRed2Id 0}}{{.TeamSignRed2Id}}{{end}}\" placeholder=\"52\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Red 3 Sign ID</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"teamSignRed3Id\"\n                    value=\"{{if gt .TeamSignRed3Id 0}}{{.TeamSignRed3Id}}{{end}}\" placeholder=\"53\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Red Timer Sign ID</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"teamSignRedTimerId\"\n                    value=\"{{if gt .TeamSignRedTimerId 0}}{{.TeamSignRedTimerId}}{{end}}\" placeholder=\"50\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Blue 1 Sign ID</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"teamSignBlue1Id\"\n                    value=\"{{if gt .TeamSignBlue1Id 0}}{{.TeamSignBlue1Id}}{{end}}\" placeholder=\"55\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Blue 2 Sign ID</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"teamSignBlue2Id\"\n                    value=\"{{if gt .TeamSignBlue2Id 0}}{{.TeamSignBlue2Id}}{{end}}\" placeholder=\"56\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Blue 3 Sign ID</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"teamSignBlue3Id\"\n                    value=\"{{if gt .TeamSignBlue3Id 0}}{{.TeamSignBlue3Id}}{{end}}\" placeholder=\"57\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Blue Timer Sign ID</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"teamSignBlueTimerId\"\n                    value=\"{{if gt .TeamSignBlueTimerId 0}}{{.TeamSignBlueTimerId}}{{end}}\" placeholder=\"54\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <legend>Driver Station Lite Mode</legend>\n                <p>When enabled, the Driver Station software will prompt teams to allow Cheesy Arena to connect rather\n                  than automatically connecting, and will preserve the ability to use the spacebar for robot\n                  disablement. Consider enabling this setting when physical E-Stop buttons are not present.</p>\n                <label class=\"col-lg-8 control-label\" for=\"useLiteUdpPort\"> Lite Mode </label>\n                <div class=\"col-lg-1 checkbox\">\n                  <input type=\"checkbox\" id=\"useLiteUdpPort\" name=\"useLiteUdpPort\"\n                    {{if .UseLiteUdpPort}} checked{{end}}>\n                </div>\n              </div>\n            </fieldset>\n          </div>\n          <div class=\"tab-pane\" id=\"publishing\" role=\"tabpanel\">\n            <fieldset class=\"mb-4\">\n              <legend>Publishing</legend>\n              <p>Contact The Blue Alliance to obtain an event code and credentials.</p>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-8 control-label\"\n                  for=\"tbaPublishingEnabled\">Enable The Blue Alliance publishing</label>\n                <div class=\"col-lg-1 checkbox\">\n                  <input type=\"checkbox\" id=\"tbaPublishingEnabled\"\n                    name=\"tbaPublishingEnabled\" {{if .TbaPublishingEnabled}} checked{{end}}>\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">TBA Event Code</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"tbaEventCode\" value=\"{{.TbaEventCode}}\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">TBA Auth ID</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"tbaSecretId\" value=\"{{.TbaSecretId}}\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">TBA Secret</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"tbaSecret\" value=\"{{.TbaSecret}}\">\n                </div>\n              </div>\n            </fieldset>\n            <div class=\"col-lg-4\">\n              {{if .TbaPublishingEnabled}}\n              <legend>Publishing Operations</legend>\n              <div>\n                <a href=\"/setup/settings/publish_teams\" class=\"btn btn-primary\">Publish Teams</a>\n              </div>\n              <div class=\"mt-2\">\n                <a href=\"/setup/settings/publish_matches\" class=\"btn btn-primary\">Publish Schedule/Results</a></div>\n              <div class=\"mt-2\">\n                <a href=\"/setup/settings/publish_rankings\" class=\"btn btn-primary\">Publish Standings</a>\n              </div>\n              <div class=\"mt-2\">\n                <a href=\"/setup/settings/publish_alliances\" class=\"btn btn-primary\">Publish Alliances</a>\n              </div>\n              <div class=\"mt-2\">\n                <a href=\"/setup/settings/publish_awards\" class=\"btn btn-primary\">Publish Awards</a>\n              </div>\n              {{end}}\n            </div>\n          </div>\n          <div class=\"tab-pane\" id=\"automation\" role=\"tabpanel\">\n            <fieldset class=\"mb-4\">\n              <legend>Nexus</legend>\n              <p>Automatically populates practice and playoff match lineups from Nexus. Uses the same event code as TBA;\n                configure it above if enabling.</p>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-8 control-label\" for=\"nexusEnabled\">Enable pulling lineup from Nexus</label>\n                <div class=\"col-lg-1 checkbox\">\n                  <input type=\"checkbox\" id=\"nexusEnabled\" name=\"nexusEnabled\" {{if .NexusEnabled}} checked{{end}}>\n                </div>\n              </div>\n            </fieldset>\n            <fieldset class=\"mb-4\">\n              <legend>Match Video Recording</legend>\n              <p>\n                If you are using a Blackmagic HyperDeck device to record match video, enter the device IP address(es)\n                here\n                to have Cheesy Arena automatically start and stop recording for each match. Separate multiple addresses\n                with\n                a comma.\n              </p>\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-6 control-label\">Blackmagic Addresses</label>\n                <div class=\"col-lg-6\">\n                  <input type=\"text\" class=\"form-control\" name=\"blackmagicAddresses\" value=\"{{.BlackmagicAddresses}}\">\n                </div>\n              </div>\n            </fieldset>\n            <fieldset class=\"mb-4\">\n              <legend>BitFocus Companion Integration</legend>\n              <p>\n                If you are using BitFocus Companion for automation, configure the server address/port and button locations (page/row/column)\n                for each event type to automatically trigger button presses during match events. Leave the server address blank to disable\n                the integration.\n              </p>\n\n              <div class=\"row mb-3\">\n                <label class=\"col-lg-3 control-label\">Server Address</label>\n                <div class=\"col-lg-3\">\n                  <input type=\"text\" class=\"form-control\" name=\"companionAddress\" value=\"{{.CompanionAddress}}\" placeholder=\"\">\n                </div>\n                <label class=\"col-lg-2 control-label\">Port</label>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control\" name=\"companionPort\" value=\"{{if .CompanionPort}}{{.CompanionPort}}{{end}}\" placeholder=\"51234\" min=\"0\" max=\"65535\">\n                </div>\n              </div>\n              <div class=\"row mb-3\">\n                <div class=\"col-lg-12\">\n                  <p class=\"text-muted small mb-0\">\n                    <strong>Note:</strong> Enter the IP address and enable the TCP Listener in BitFocus Companion settings.\n                    The default TCP port is 51234. Leave address blank to disable Companion integration.\n                  </p>\n                </div>\n              </div>\n\n              <h5>Event Button Mappings</h5>\n              <p class=\"text-muted\">Configure page/row/column coordinates for each event. <strong>Set Page to 0 to disable a specific event trigger.</strong>\n              Note: Companion uses 0 as a valid row/column number, so only the Page field is used to enable/disable events.</p>\n\n              <div class=\"row mb-2\">\n                <div class=\"col-lg-3\"><strong>Event</strong></div>\n                <div class=\"col-lg-2\"><strong>Page</strong></div>\n                <div class=\"col-lg-2\"><strong>Row</strong></div>\n                <div class=\"col-lg-2\"><strong>Column</strong></div>\n              </div>\n\n\n              <div class=\"row mb-2\">\n                <label class=\"col-lg-3 control-label\">Match Preview</label>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionMatchPreviewPage\" value=\"{{.CompanionMatchPreviewPage}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionMatchPreviewRow\" value=\"{{.CompanionMatchPreviewRow}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionMatchPreviewColumn\" value=\"{{.CompanionMatchPreviewColumn}}\" min=\"0\">\n                </div>\n              </div>\n\n              <div class=\"row mb-2\">\n                <label class=\"col-lg-3 control-label\">Show Overlay</label>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionSetAudiencePage\" value=\"{{.CompanionSetAudiencePage}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionSetAudienceRow\" value=\"{{.CompanionSetAudienceRow}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionSetAudienceColumn\" value=\"{{.CompanionSetAudienceColumn}}\" min=\"0\">\n                </div>\n              </div>\n\n              <div class=\"row mb-2\">\n                <label class=\"col-lg-3 control-label\">Match Start</label>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionMatchStartPage\" value=\"{{.CompanionMatchStartPage}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionMatchStartRow\" value=\"{{.CompanionMatchStartRow}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionMatchStartColumn\" value=\"{{.CompanionMatchStartColumn}}\" min=\"0\">\n                </div>\n              </div>\n\n              <div class=\"row mb-2\">\n                <label class=\"col-lg-3 control-label\">Teleop Start</label>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionTeleopStartPage\" value=\"{{.CompanionTeleopStartPage}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionTeleopStartRow\" value=\"{{.CompanionTeleopStartRow}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionTeleopStartColumn\" value=\"{{.CompanionTeleopStartColumn}}\" min=\"0\">\n                </div>\n              </div>\n\n              <div class=\"row mb-2\">\n                <label class=\"col-lg-3 control-label\">Endgame Start</label>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionEndgameStartPage\" value=\"{{.CompanionEndgameStartPage}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionEndgameStartRow\" value=\"{{.CompanionEndgameStartRow}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionEndgameStartColumn\" value=\"{{.CompanionEndgameStartColumn}}\" min=\"0\">\n                </div>\n              </div>\n\n              <div class=\"row mb-2\">\n                <label class=\"col-lg-3 control-label\">Match End</label>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionMatchEndPage\" value=\"{{.CompanionMatchEndPage}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionMatchEndRow\" value=\"{{.CompanionMatchEndRow}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionMatchEndColumn\" value=\"{{.CompanionMatchEndColumn}}\" min=\"0\">\n                </div>\n              </div>\n\n              <div class=\"row mb-2\">\n                <label class=\"col-lg-3 control-label\">Match Abort</label>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionMatchAbortPage\" value=\"{{.CompanionMatchAbortPage}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionMatchAbortRow\" value=\"{{.CompanionMatchAbortRow}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionMatchAbortColumn\" value=\"{{.CompanionMatchAbortColumn}}\" min=\"0\">\n                </div>\n              </div>\n\n              <div class=\"row mb-2\">\n                <label class=\"col-lg-3 control-label\">Show Final Score</label>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionPostResultPage\" value=\"{{.CompanionPostResultPage}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionPostResultRow\" value=\"{{.CompanionPostResultRow}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionPostResultColumn\" value=\"{{.CompanionPostResultColumn}}\" min=\"0\">\n                </div>\n              </div>\n\n              <div class=\"row mb-2\">\n                <label class=\"col-lg-3 control-label\">Alliance Selection</label>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionAllianceSelectionPage\" value=\"{{.CompanionAllianceSelectionPage}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionAllianceSelectionRow\" value=\"{{.CompanionAllianceSelectionRow}}\" min=\"0\">\n                </div>\n                <div class=\"col-lg-2\">\n                  <input type=\"number\" class=\"form-control form-control-sm\" name=\"companionAllianceSelectionColumn\" value=\"{{.CompanionAllianceSelectionColumn}}\" min=\"0\">\n                </div>\n              </div>\n            </fieldset>\n          </div>\n          <div class=\"row justify-content-center\">\n            <div class=\"col-lg-3 align-items-center\">\n              <button type=\"submit\" class=\"btn btn-primary\">Save All Settings</button>\n            </div>\n          </div>\n      </form>\n    </div>\n  </div>\n</div>\n</div>\n<div id=\"uploadDatabase\" class=\"modal\" style=\"top: 20%;\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-header\">\n        <h4 class=\"modal-title\">Choose Backup File</h4>\n        <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-hidden=\"true\"></button>\n      </div>\n      <form class=\"form-horizontal\" action=\"/setup/db/restore\" enctype=\"multipart/form-data\" method=\"POST\">\n        <div class=\"modal-body\">\n          <p>Select the database file to load from. <b>This will overwrite any existing data.</b></p>\n          <input type=\"file\" name=\"databaseFile\">\n        </div>\n        <div class=\"modal-footer\">\n          <button type=\"button\" class=\"btn btn-primary\" data-bs-dismiss=\"modal\">Cancel</button>\n          <button type=\"submit\" class=\"btn btn-danger\">Load Database from Backup</button>\n        </div>\n      </form>\n    </div>\n  </div>\n</div>\n<div id=\"confirmClearDataPlayoff\" class=\"modal\" style=\"top: 20%;\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-header\">\n        <h4 class=\"modal-title\">Confirm</h4>\n        <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-hidden=\"true\"></button>\n      </div>\n      <div class=\"modal-body\">\n        <p>Are you sure you want to clear all playoff match and alliance selection data?</p>\n        <p>The database will automatically be backed up.</p>\n      </div>\n      <div class=\"modal-footer\">\n        <form class=\"form-horizontal\" action=\"/setup/db/clear/playoff\" method=\"POST\">\n          <button type=\"button\" class=\"btn btn-primary\" data-bs-dismiss=\"modal\">Cancel</button>\n          <button type=\"submit\" class=\"btn btn-danger\">Clear Playoff/Alliance Data</button>\n        </form>\n      </div>\n    </div>\n  </div>\n</div>\n<div id=\"confirmClearDataQualification\" class=\"modal\" style=\"top: 20%;\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-header\">\n        <h4 class=\"modal-title\">Confirm</h4>\n        <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-hidden=\"true\"></button>\n      </div>\n      <div class=\"modal-body\">\n        <p>Are you sure you want to clear all qualification match and ranking data?</p>\n        <p>The database will automatically be backed up.</p>\n      </div>\n      <div class=\"modal-footer\">\n        <form class=\"form-horizontal\" action=\"/setup/db/clear/qualification\" method=\"POST\">\n          <button type=\"button\" class=\"btn btn-primary\" data-bs-dismiss=\"modal\">Cancel</button>\n          <button type=\"submit\" class=\"btn btn-danger\">Clear Qualification Data</button>\n        </form>\n      </div>\n    </div>\n  </div>\n</div>\n<div id=\"confirmClearDataPractice\" class=\"modal\" style=\"top: 20%;\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-header\">\n        <h4 class=\"modal-title\">Confirm</h4>\n        <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-hidden=\"true\"></button>\n      </div>\n      <div class=\"modal-body\">\n        <p>Are you sure you want to clear all practice match data?</p>\n        <p>The database will automatically be backed up.</p>\n      </div>\n      <div class=\"modal-footer\">\n        <form class=\"form-horizontal\" action=\"/setup/db/clear/practice\" method=\"POST\">\n          <button type=\"button\" class=\"btn btn-primary\" data-bs-dismiss=\"modal\">Cancel</button>\n          <button type=\"submit\" class=\"btn btn-danger\">Clear Practice Data</button>\n        </form>\n      </div>\n    </div>\n  </div>\n</div>\n{{end}}\n{{define \"script\"}}\n<script>\n  updateNumPlayoffAlliances = function (isDoubleElimination) {\n    const numPlayoffAlliances = $(\"input[name=numPlayoffAlliances]\");\n    numPlayoffAlliances.prop(\"disabled\", isDoubleElimination);\n    if (isDoubleElimination) {\n      numPlayoffAlliances.val(8);\n    }\n  };\n\n  // Handle initial tab selection based on URL fragment.\n  document.addEventListener(\"DOMContentLoaded\", function () {\n    let hash = window.location.hash;\n    if (!hash) {\n      hash = \"#event\";\n    }\n    const tabTrigger = document.querySelector(`[data-bs-target=\"${hash}\"]`);\n    const tab = new bootstrap.Tab(tabTrigger);\n    tab.show();\n\n    // Update the browser URL when a tab is selected.\n    const tabLinks = document.querySelectorAll(`[data-bs-toggle=\"tab\"]`);\n    tabLinks.forEach(function (tabLink) {\n      tabLink.addEventListener(\"shown.bs.tab\", function (event) {\n        const target = event.target.getAttribute(\"data-bs-target\");\n        if (target) {\n          history.replaceState(null, \"\", target);\n        }\n      });\n    });\n  });\n</script>\n{{end}}\n"
  },
  {
    "path": "templates/setup_sponsor_slides.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for configuring the audience display sponsor roll.\n*/}}\n{{define \"title\"}}Sponsor Slides Configuration{{end}}\n{{define \"body\"}}\n<div class=\"row justify-content-center\">\n  <div class=\"col-lg-8\">\n    <div class=\"card card-body bg-body-tertiary\">\n      <legend>Sponsor Slides Configuration</legend>\n      <p>Place images in /static/img/sponsors/</p>\n      {{range $i, $sponsorSlide := .SponsorSlides}}\n      <form class=\"form-horizontal existing\" action=\"/setup/sponsor_slides\" method=\"POST\">\n        <div class=\"row mb-3\">\n          <div class=\"col-lg-7\">\n            <input type=\"hidden\" name=\"id\" value=\"{{$sponsorSlide.Id}}\"/>\n            <div class=\"row mb-1 imagetoggle\">\n              <label class=\"col-sm-5 control-label\">Image File Name</label>\n              <div class=\"col-sm-7\">\n                <input type=\"text\" class=\"form-control\" name=\"image\" placeholder=\"image.svg\"\n                  value=\"{{$sponsorSlide.Image}}\">\n              </div>\n            </div>\n            <div class=\"row mb-1 d-none imagetoggle\">\n              <label class=\"col-sm-5 control-label\">Line 1 Text</label>\n              <div class=\"col-sm-7\">\n                <input type=\"text\" class=\"form-control\" value=\"{{$sponsorSlide.Line1}}\" name=\"line1\"\n                  placeholder=\"Chezy\">\n              </div>\n            </div>\n            <div class=\"row mb-1 d-none imagetoggle\">\n              <label class=\"col-sm-5 control-label\">Line 2 Text</label>\n              <div class=\"col-sm-7\">\n                <input type=\"text\" class=\"form-control\" value=\"{{$sponsorSlide.Line2}}\" name=\"line2\"\n                  placeholder=\"Industries\">\n              </div>\n            </div>\n            <div class=\"row mb-1\">\n              <label class=\"col-sm-5 control-label\">Subtitle Text</label>\n              <div class=\"col-sm-7\">\n                <input type=\"text\" class=\"form-control\" name=\"subtitle\" value=\"{{$sponsorSlide.Subtitle}}\"\n                  placeholder=\"Gold Sponsor\">\n              </div>\n            </div>\n            <div class=\"row mb-1\">\n              <label class=\"col-sm-5 control-label\">Display Time (s)</label>\n              <div class=\"col-sm-7\">\n                <input type=\"number\" class=\"form-control\" name=\"displayTimeSec\"\n                  value=\"{{$sponsorSlide.DisplayTimeSec}}\" placeholder=\"10\">\n              </div>\n            </div>\n          </div>\n          <div class=\"col-lg-5\">\n            <button type=\"submit\" class=\"btn btn-primary btn-lower-third mb-1\" name=\"action\" value=\"save\">Save</button>\n            {{if lt $i (add (len $.SponsorSlides) -1) }}\n            <button type=\"submit\" class=\"btn btn-primary mb-1\" name=\"action\" value=\"reorderUp\">\n              <i class=\"bi-arrow-up\"></i>\n            </button>\n            <br/>\n            <button type=\"submit\" class=\"btn btn-danger btn-lower-third mb-1\" name=\"action\" value=\"delete\">\n              Delete\n            </button>\n            <button type=\"submit\" class=\"btn btn-primary mb-1\" name=\"action\" value=\"reorderDown\">\n              <i class=\"bi-arrow-down\"></i>\n            </button>\n            {{end}}\n            <br/>\n            <button class=\"btn btn-secondary\" name=\"toggleImage\">Toggle Image/Text</button>\n          </div>\n        </div>\n      </form>\n      {{end}}\n    </div>\n  </div>\n</div>\n{{end}}\n{{define \"script\"}}\n<script type=\"text/javascript\">\n  $(function () {\n    // Set up the toggling between specifying an image and specifying two lines of text.\n    $(\"form.existing\").each(function (index) {\n      if (!$(this).find(\"input[name=image]\").val().length && ($(this).find(\"input[name=line2]\").val().length\n        || $(this).find(\"input[name=line1]\").val().length)) {\n        $(this).find(\".imagetoggle\").toggleClass(\"d-none\");\n      }\n    });\n    $(\"button[name=toggleImage]\").click(function (event) {\n      event.preventDefault();\n      $(this).parents(\"form\").find(\".imagetoggle\").toggleClass(\"d-none\");\n      $(this).parents(\"form\").find(\".imagetoggle input\").val(\"\");\n    });\n  });\n</script>\n{{end}}\n"
  },
  {
    "path": "templates/setup_teams.html",
    "content": "{{/*\nCopyright 2014 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nUI for configuring the team list for an event.\n*/}}\n{{define \"title\"}}Team List{{end}}\n{{define \"body\"}}\n{{if .ShowErrorMessage}}\n<div class=\"alert alert-dismissible alert-danger\">\n  <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"alert\"></button>\n  You can't modify the team list once the qualification schedule has been generated. If you need to change\n  the team list, clear all other data first on the Settings page.\n</div>\n{{end}}\n<div class=\"row\">\n  <div class=\"col-lg-3\">\n    <form action=\"/setup/teams\" method=\"POST\">\n      <fieldset>\n        <legend>Import Teams</legend>\n        {{if not .EventSettings.TbaDownloadEnabled}}\n        <p>To automatically download data about teams, enable TBA Team Info Download on the settings page</p>\n        {{end}}\n        <div class=\"row mb-3\">\n          <textarea class=\"form-control\" rows=\"10\" name=\"teamNumbers\"\n            placeholder=\"One team number per line\"></textarea>\n        </div>\n        <div class=\"row mb-3\">\n          <button type=\"submit\" class=\"btn btn-primary\" onclick=\"$('#loadingFromTba').modal('show');\">Add Teams</button>\n        </div>\n        {{if .EventSettings.TbaDownloadEnabled}}\n        <div class=\"row mb-3\">\n          <a href=\"/setup/teams/refresh\" class=\"btn btn-primary\" onclick=\"$('#loadingFromTba').modal('show');\">\n            Refresh Team Data from TBA\n          </a>\n        </div>\n        {{end}}\n        <div class=\"row mb-3\">\n          <button type=\"button\" class=\"btn btn-danger\" onclick=\"$('#confirmClearTeams').modal('show');\">\n            Clear Team List\n          </button>\n        </div>\n        {{if .EventSettings.NetworkSecurityEnabled}}\n        <div class=\"row mb-3\">\n          <a href=\"/setup/teams/generate_wpa_keys?all=true\" class=\"btn btn-danger\">Generate All WPA Keys</a>\n        </div>\n        <div class=\"row mb-3\">\n          <a href=\"/setup/teams/generate_wpa_keys?all=false\" class=\"btn btn-danger\">Generate Missing WPA Keys</a>\n        </div>\n        {{end}}\n        {{if .EventSettings.TbaPublishingEnabled}}\n        <p>Team list is not automatically published to The Blue Alliance. Manually publish it from the Settings\n          tab.</p>\n        {{end}}\n      </fieldset>\n    </form>\n  </div>\n  <div class=\"col-lg-9\">\n    <table class=\"table table-striped table-hover \">\n      <thead>\n        <tr>\n          <th>#</th>\n          <th>Name</th>\n          <th>Nickname</th>\n          <th>School</th>\n          <th>Location</th>\n          <th>Rookie Year</th>\n          <th>Robot Name</th>\n          <th>Action</th>\n        </tr>\n      </thead>\n      <tbody>\n        {{range $team := .Teams}}\n        <tr>\n          <td>{{$team.Id}}</td>\n          <td>{{$team.Name}}</td>\n          <td>{{$team.Nickname}}</td>\n          <td>{{$team.SchoolName}}</td>\n          <td>{{$team.City}}, {{$team.StateProv}}, {{$team.Country}}</td>\n          <td>{{$team.RookieYear}}</td>\n          <td>{{$team.RobotName}}</td>\n          <td class=\"text-center nowrap\">\n            <form action=\"/setup/teams/{{$team.Id}}/delete\" method=\"POST\">\n              <a href=\"/setup/teams/{{$team.Id}}/edit\">\n                <button type=\"button\" class=\"btn btn-primary btn-sm\">\n                  <i class=\"bi-pencil-square\"></i>\n                </button>\n              </a>\n              <button type=\"submit\" class=\"btn btn-danger btn-sm\">\n                <i class=\"bi-trash\"></i>\n              </button>\n            </form>\n          </td>\n        </tr>\n        {{end}}\n      </tbody>\n    </table>\n    <b>{{len .Teams}} teams</b>\n  </div>\n</div>\n<div id=\"confirmClearTeams\" class=\"modal\" style=\"top: 20%;\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-header\">\n        <h4 class=\"modal-title\">Confirm</h4>\n        <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"></button>\n      </div>\n      <div class=\"modal-body\">\n        <p>Are you sure you want to clear the team list?</p>\n      </div>\n      <div class=\"modal-footer\">\n        <form class=\"form-horizontal\" action=\"/setup/teams/clear\" method=\"POST\">\n          <button type=\"button\" class=\"btn btn-primary\" data-bs-dismiss=\"modal\">Cancel</button>\n          <button type=\"submit\" class=\"btn btn-danger\">Clear Team List</button>\n        </form>\n      </div>\n    </div>\n  </div>\n</div>\n<div id=\"loadingFromTba\" class=\"modal fade\" style=\"top: 20%;\" data-bs-backdrop=\"static\" data-bs-keyboard=\"false\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-header\">\n        <h5 class=\"modal-title\">Downloading Team Data from TBA...<h5>\n      </div>\n      <div class=\"modal-body\">\n        <div class=\"progress\">\n          <div id=\"teamDownloadProgressBar\"\n            class=\"progress-bar progress-bar-striped progress-bar-animated\"\n            role=\"progressbar\"\n            style=\"width: 10%\"\n            aria-valuemin=\"0\"\n            aria-valuemax=\"100\">\n            5%\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n{{end}}\n{{define \"script\"}}\n<script>\n  const teamDownloadProgressBar = $(\"#teamDownloadProgressBar\");\n  $(function updateProgressBar() {\n    $.ajax({\n      url: '/setup/teams/progress',\n      success: function (data) {\n        teamDownloadProgressBar.css(\"width\", `${data}%`);\n        teamDownloadProgressBar.text(`${data}%`);\n      },\n      error: function (error) {\n        console.log(error)\n      },\n      complete: function () {\n        setTimeout(updateProgressBar, 2000)\n      }\n    })\n  })\n</script>\n{{end}}\n"
  },
  {
    "path": "templates/teams.csv",
    "content": "Number,Name,Nickname,SchoolName,City,StateProv,Country,RookieYear,RobotName,HasConnected\n{{range $team := .}}{{$team.Id}},\"{{$team.Name}}\",\"{{$team.Nickname}}\",\"{{$team.SchoolName}}\",\"{{$team.City}}\",\"{{$team.StateProv}}\",\"{{$team.Country}}\",{{$team.RookieYear}},\"{{$team.RobotName}}\",{{$team.HasConnected}}\n{{end}}\n"
  },
  {
    "path": "templates/twitch_display.html",
    "content": "{{/*\nCopyright 2018 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nDisplay to show a configurable Twitch live video stream.\n*/}}\n<!DOCTYPE html>\n<html>\n  <head>\n    <title>Twitch Stream Display - {{.EventSettings.Name}} - Cheesy Arena </title>\n    <link rel=\"shortcut icon\" href=\"/static/img/favicon.ico\">\n    <link rel=\"stylesheet\" href=\"/static/css/twitch_display.css\"/>\n  </head>\n  <body>\n    <div id=\"twitchEmbed\"></div>\n    <script src=\"https://embed.twitch.tv/embed/v1.js\"></script>\n    <script src=\"/static/js/lib/jquery.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.json-2.4.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.websocket-0.0.1.js\"></script>\n    <script src=\"/static/js/cheesy-websocket.js\"></script>\n    <script src=\"/static/js/twitch_display.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "templates/view_match_log.html",
    "content": "{{/*\nCopyright 2024 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nPage showing the logs of a single match for a single team.\n*/}}\n{{define \"title\"}}Match Log - {{.Match.ShortName}} - {{ .MatchLogs.TeamId}} ({{.MatchLogs.AllianceStation}}){{end}}\n{{define \"body\"}}\n<script src=\"https://cdn.jsdelivr.net/npm/chart.js\"></script>\n<h3>Match Log: {{.Match.ShortName}} - {{ .MatchLogs.TeamId}} ({{.MatchLogs.AllianceStation}})</h3>\n<ul id=\"matchTabs\" class=\"nav nav-tabs mt-4\">\n  {{range $logs := .MatchLogs.Logs}}\n  <li>\n    <a href=\"#{{$logs.StartTime}}\" class=\"nav-link{{if eq $logs.StartTime $.FirstMatch }} active{{end}}\"\n      data-bs-toggle=\"tab\">{{$logs.StartTime}}</a>\n  </li>\n  {{end}}\n</ul>\n<div class=\"tab-content\">\n  {{range $logs := .MatchLogs.Logs}}\n  <div class=\"tab-pane {{if eq $.FirstMatch $logs.StartTime}} active{{end}}\" id=\"{{$logs.StartTime}}\">\n\n    <div class=\"mt-3 mb-2 ms-2\">\n      <a href=\"/{{$logs.Filename}}\">Download CSV</a>\n    </div>\n\n    <div style=\"position: relative; height:40vh;\">\n      <canvas id=\"link_chart_{{$logs.StartTime}}\"></canvas>\n    </div>\n\n    <div style=\"position: relative; height:30vh;\">\n      <canvas id=\"voltage_chart_{{$logs.StartTime}}\"></canvas>\n    </div>\n\n    <div style=\"position: relative; height:30vh;\">\n      <canvas id=\"latency_chart_{{$logs.StartTime}}\"></canvas>\n    </div>\n\n    <div style=\"position: relative; height:30vh;\">\n      <canvas id=\"missed_packets_chart_{{$logs.StartTime}}\"></canvas>\n    </div>\n\n    <div style=\"position: relative; height:30vh;\">\n      <canvas id=\"snr_chart_{{$logs.StartTime}}\"></canvas>\n    </div>\n\n    <script>\n      <!-- @formatter:off -->\n        const ctx_link_{{$logs.StartTime}} = document.getElementById(\"link_chart_{{$logs.StartTime}}\");\n        const ctx_voltage_{{$logs.StartTime}} = document.getElementById(\"voltage_chart_{{$logs.StartTime}}\");\n        const ctx_latency_{{$logs.StartTime}} = document.getElementById(\"latency_chart_{{$logs.StartTime}}\");\n        const ctx_missed_packets_{{$logs.StartTime}} = document.getElementById(\"missed_packets_chart_{{$logs.StartTime}}\");\n        const ctx_snr_{{$logs.StartTime}} = document.getElementById(\"snr_chart_{{$logs.StartTime}}\");\n\n        new Chart(ctx_link_{{$logs.StartTime}}, {\n          type: 'line',\n          options: {\n            maintainAspectRatio: false,\n            plugins: {\n              title: {\n                display: true,\n                text: \"Link\"\n              }\n            },\n            scales: {\n              y: {\n                type: 'category',\n                labels: [true, false],\n                stack: 'demo',\n                stackWeight: 0.75,\n                border: {\n                  color: 'rgb(192, 75, 75)'\n                }\n              },\n              y2: {\n                type: 'category',\n                labels: [true, false],\n                offset: true,\n                position: 'left',\n                stack: 'demo',\n                stackWeight: 1,\n                border: {\n                  color: 'rgb(75, 75, 192)'\n                }\n              },\n              y3: {\n                type: 'category',\n                labels: [true, false],\n                offset: true,\n                position: 'left',\n                stack: 'demo',\n                stackWeight: 1,\n                border: {\n                  color: 'rgb(192, 192, 75)'\n                }\n              },\n              y4: {\n                type: 'category',\n                labels: [true, false],\n                offset: true,\n                position: 'left',\n                stack: 'demo',\n                stackWeight: 1,\n                border: {\n                  color: 'rgb(75, 192, 192)'\n                }\n              },\n            }\n          },\n          data: {\n            labels: [{{range $row := $logs.Rows}}{{printf \"%.2f\" $row.MatchTimeSec}},{{end}}],\n            datasets:[\n              {\n                label: 'DS Linked',\n                data: [{{range $row := $logs.Rows}}{{$row.DsLinked}},{{end}}],\n                fill: false,\n                borderColor: 'rgb(192, 75, 75)',\n                tension: 0.1\n              },\n              {\n                label: 'Radio Linked',\n                data: [{{range $row := $logs.Rows}}{{if $row.DsLinked}}{{$row.RadioLinked}}{{else}}false{{end}},{{end}}],\n                fill: false,\n                borderColor: 'rgb(75, 75, 192)',\n                tension: 0.1,\n                yAxisID: 'y2',\n              },\n              {\n                label: 'Rio Linked',\n                data: [{{range $row := $logs.Rows}}{{if and $row.DsLinked $row.RadioLinked}}{{$row.RioLinked}}{{else}}false{{end}},{{end}}],\n                fill: false,\n                borderColor: 'rgb(192, 192, 75)',\n                tension: 0.1,\n                yAxisID: 'y3',\n              },\n              {\n                label: 'Robot Linked',\n                data: [{{range $row := $logs.Rows}}{{if and $row.DsLinked $row.RadioLinked $row.RioLinked}}{{$row.RobotLinked}}{{else}}false{{end}},{{end}}],\n                fill: false,\n                borderColor: 'rgb(75, 192, 192)',\n                tension: 0.1,\n                yAxisID: 'y4',\n              }\n            ]\n          }\n        });\n\n        new Chart(ctx_voltage_{{$logs.StartTime}}, {\n          type: 'line',\n          options: {\n            maintainAspectRatio: false,\n            plugins: {\n              title: {\n                display: true,\n                text: \"Voltage\"\n              }\n            }\n          },\n          data: {\n            labels: [{{range $row := $logs.Rows}}{{printf \"%.2f\" $row.MatchTimeSec}},{{end}}],\n            datasets:[{\n              label: '{{$.MatchLogs.TeamId}}',\n              data: [{{range $row := $logs.Rows}}{{printf \"%.3f\" $row.BatteryVoltage}},{{end}}],\n              fill: false,\n              borderColor: 'rgb(192, 75, 75)',\n              tension: 0.1\n            }]\n          }\n        });\n\n        new Chart(ctx_latency_{{$logs.StartTime}}, {\n          type: 'line',\n          options: {\n            maintainAspectRatio: false,\n            plugins: {\n              title: {\n                display: true,\n                text: \"Latency\"\n              }\n            }\n          },\n          data: {\n            labels: [{{range $row := $logs.Rows}}{{printf \"%.2f\" $row.MatchTimeSec}},{{end}}],\n            datasets:[{\n              label: '{{$.MatchLogs.TeamId}}',\n              data: [{{range $row := $logs.Rows}}{{$row.DsRobotTripTimeMs}},{{end}}],\n              fill: false,\n              tension: 0.1\n            }]\n          }\n        });\n\n        new Chart(missed_packets_chart_{{$logs.StartTime}}, {\n          type: 'line',\n          options: {\n            maintainAspectRatio: false,\n            plugins: {\n              title: {\n                display: true,\n                text: \"Missed Packets\"\n              }\n            }\n          },\n          data: {\n            labels: [{{range $row := $logs.Rows}}{{printf \"%.2f\" $row.MatchTimeSec}},{{end}}],\n            datasets:[{\n              label: '{{$.MatchLogs.TeamId}}',\n              data: [{{range $row := $logs.Rows}}{{$row.MissedPacketCount}},{{end}}],\n              fill: false,\n              borderColor: 'rgb(192, 192, 75)',\n              tension: 0.1\n            }]\n          }\n        });\n\n        new Chart(snr_chart_{{$logs.StartTime}}, {\n          type: 'line',\n          options: {\n            maintainAspectRatio: false,\n            plugins: {\n              title: {\n                display: true,\n                text: \"SNR\"\n              }\n            }\n          },\n          data: {\n            labels: [{{range $row := $logs.Rows}}{{printf \"%.2f\" $row.MatchTimeSec}},{{end}}],\n            datasets:[{\n              label: '{{$.MatchLogs.TeamId}}',\n              data: [{{range $row := $logs.Rows}}{{$row.SignalNoiseRatio}},{{end}}],\n              fill: false,\n              borderColor: 'rgb(75, 192, 192)',\n              tension: 0.1\n            }]\n          }\n        });\n        <!-- @formatter:on -->\n    </script>\n\n    <table class=\"table\">\n      <thead class=\"thead-dark\" style=\"position: sticky; top: 0px;\">\n        <tr>\n          <th>Match Time</th>\n          <th>DS Linked</th>\n          <th>Radio Linked</th>\n          <th>Rio Linked</th>\n          <th>Robot Linked</th>\n          <th>Mode</th>\n          <th>Enabled</th>\n          <th class=\"nowrap\">E-Stop</th>\n          <th class=\"nowrap\">A-Stop</th>\n          <th>Voltage</th>\n          <th>Missed Packets</th>\n          <th>Latency</th>\n          <th>TX Rate</th>\n          <th>RX Rate</th>\n          <th>SNR</th>\n        </tr>\n      </thead>\n      <tbody>\n        {{range $row := $logs.Rows}}\n        <tr>\n          <td class=\"{{if and $row.DsLinked $row.RadioLinked $row.RobotLinked}}bg-green{{else}}bg-red{{end}}\">\n            {{printf \"%.2f\" $row.MatchTimeSec}}\n          </td>\n          <td>{{$row.DsLinked}}</td>\n          <td>{{if $row.DsLinked}}{{$row.RadioLinked}}{{else}}*****{{end}}</td>\n          <td>{{if and $row.DsLinked $row.RadioLinked}}{{$row.RioLinked}}{{else}}*****{{end}}</td>\n          <td>{{if and $row.DsLinked $row.RadioLinked $row.RioLinked}}{{$row.RobotLinked}}{{else}}*****{{end}}</td>\n          <td>{{if $row.Auto}}Auto{{else}}Telop{{end}}</td>\n          <td>{{$row.Enabled}}</td>\n          <td>{{$row.EmergencyStop}}</td>\n          <td>{{$row.AutonomousStop}}</td>\n          <td>{{printf \"%.3f\" $row.BatteryVoltage}}</td>\n          <td>{{$row.MissedPacketCount}}</td>\n          <td>{{$row.DsRobotTripTimeMs}}</td>\n          <td>{{$row.TxRate}}</td>\n          <td>{{$row.RxRate}}</td>\n          <td>{{$row.SignalNoiseRatio}}</td>\n        </tr>\n        {{end}}\n      </tbody>\n    </table>\n  </div>\n  {{end}}\n</div>\n{{end}}\n{{define \"script\"}}\n{{end}}\n"
  },
  {
    "path": "templates/wall_display.html",
    "content": "{{/*\nCopyright 2023 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nDisplay that can be shown on a screen supplemental to one with the audience display overlay.\n*/}}\n<!DOCTYPE html>\n<html>\n  <head>\n    <title>Wall Display - {{.EventSettings.Name}} - Cheesy Arena </title>\n    <link rel=\"shortcut icon\" href=\"/static/img/favicon.ico\">\n    <link rel=\"stylesheet\" href=\"/static/css/lib/bootstrap.min.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/lib/bootstrap-icons.min.css\">\n    <link rel=\"stylesheet\" href=\"/static/css/cheesy-arena.css\"/>\n    <link rel=\"stylesheet\" href=\"/static/css/wall_display.css\"/>\n  </head>\n  <body>\n    <div id=\"overlayCentering\">\n      <div id=\"matchOverlayAux\">\n        <div class=\"score-aux reversible-left\" id=\"leftScoreAux\">\n          <div class=\"score-field\">\n            <img class=\"coral-icon\" src=\"/static/img/coral.png\"/>\n            <div id=\"leftCoral\"></div>\n          </div>\n          <div class=\"score-field\">\n            <img class=\"algae-icon\" src=\"/static/img/algae.png\"/>\n            <div id=\"leftAlgae\"></div>\n          </div>\n        </div>\n        <div class=\"score-aux reversible-right\" id=\"rightScoreAux\">\n          <div class=\"score-field\">\n            <div id=\"rightCoral\"></div>\n            <img class=\"coral-icon\" src=\"/static/img/coral.png\"/>\n          </div>\n          <div class=\"score-field\">\n            <div id=\"rightAlgae\"></div>\n            <img class=\"algae-icon\" src=\"/static/img/algae.png\"/>\n          </div>\n        </div>\n      </div>\n      <div id=\"matchOverlayContainer\">\n        <div class=\"playoff-alliance\" id=\"leftPlayoffAlliance\"></div>\n        <div id=\"matchOverlay\">\n          <div id=\"matchOverlayTop\">\n            <div class=\"teams\" id=\"leftTeams\">\n              <div id=\"leftTeam1\"></div>\n              <div id=\"leftTeam2\"></div>\n              <div id=\"leftTeam3\"></div>\n            </div>\n            <div class=\"score reversible-left\">\n              <div class=\"avatars\">\n                <img class=\"avatar\" id=\"leftTeam1Avatar\" src=\"\"/>\n                <img class=\"avatar\" id=\"leftTeam2Avatar\" src=\"\"/>\n                <img class=\"avatar\" id=\"leftTeam3Avatar\" src=\"\"/>\n              </div>\n              <div class=\"score-fields\"></div>\n              <div class=\"score-number\" id=\"leftScoreNumber\"></div>\n            </div>\n            <div class=\"score score-right reversible-right\">\n              <div class=\"score-number\" id=\"rightScoreNumber\"></div>\n              <div class=\"score-fields\"></div>\n              <div class=\"avatars\">\n                <img class=\"avatar\" id=\"rightTeam1Avatar\" src=\"\"/>\n                <img class=\"avatar\" id=\"rightTeam2Avatar\" src=\"\"/>\n                <img class=\"avatar\" id=\"rightTeam3Avatar\" src=\"\"/>\n              </div>\n            </div>\n            <div class=\"teams\" id=\"rightTeams\">\n              <div id=\"rightTeam1\"></div>\n              <div id=\"rightTeam2\"></div>\n              <div id=\"rightTeam3\"></div>\n            </div>\n          </div>\n          <div id=\"eventMatchInfo\">\n            <span>{{.EventSettings.Name}}</span>\n            <span id=\"matchName\"></span>\n          </div>\n        </div>\n        <div class=\"playoff-alliance\" id=\"rightPlayoffAlliance\"></div>\n      </div>\n      <div id=\"playoffSeriesStatus\">\n        <span id=\"leftPlayoffAllianceWins\"></span>&nbsp;-&nbsp;<span id=\"rightPlayoffAllianceWins\"></span>\n      </div>\n      <div class=\"text-center\" id=\"matchCircle\">\n        <img id=\"logo\" src=\"/static/img/game-logo.png\" alt=\"logo\"/>\n        <div id=\"matchTime\"></div>\n      </div>\n      <div id=\"timeoutDetails\">\n        <div class=\"timeout-detail\" id=\"timeoutBreakDescription\"></div>\n        <div class=\"timeout-detail\" id=\"timeoutNextMatch\">\n          Next Up:<br/>\n          <span id=\"timeoutNextMatchName\"></span>\n        </div>\n      </div>\n      <div id=\"message\"></div>\n    </div>\n    <script src=\"/static/js/lib/jquery.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.json-2.4.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.websocket-0.0.1.js\"></script>\n    <script src=\"/static/js/lib/jquery.transit.min.js\"></script>\n    <script src=\"/static/js/lib/handlebars-1.3.0.js\"></script>\n    <script src=\"/static/js/lib/bootstrap.bundle.min.js\"></script>\n    <script src=\"/static/js/cheesy-websocket.js\"></script>\n    <script src=\"/static/js/match_timing.js\"></script>\n    <script src=\"/static/js/wall_display.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "templates/webpage_display.html",
    "content": "{{/*\nCopyright 2024 Team 254. All Rights Reserved.\nAuthor: pat@patfairbank.com (Patrick Fairbank)\n\nDisplay to show an arbitrary web page.\n*/}}\n<!DOCTYPE html>\n<html>\n  <head>\n    <title>Web Page Display - {{.EventSettings.Name}} - Cheesy Arena </title>\n    <link rel=\"shortcut icon\" href=\"/static/img/favicon.ico\">\n    <link rel=\"stylesheet\" href=\"/static/css/webpage_display.css\"/>\n  </head>\n  <body>\n    <iframe id=\"webpageFrame\"></iframe>\n    <script src=\"/static/js/lib/jquery.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.json-2.4.min.js\"></script>\n    <script src=\"/static/js/lib/jquery.websocket-0.0.1.js\"></script>\n    <script src=\"/static/js/cheesy-websocket.js\"></script>\n    <script src=\"/static/js/webpage_display.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "tournament/awards.go",
    "content": "// Copyright 2019 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Functions for managing awards and their associated lower thirds.\n\npackage tournament\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n)\n\n// Creates or updates the given award, depending on whether or not it already exists.\nfunc CreateOrUpdateAward(database *model.Database, award *model.Award, createIntroLowerThird bool) error {\n\t// Validate the award data.\n\tif award.AwardName == \"\" {\n\t\treturn fmt.Errorf(\"Award name cannot be blank.\")\n\t}\n\tvar team *model.Team\n\tif award.TeamId > 0 {\n\t\tteam, _ = database.GetTeamById(award.TeamId)\n\t\tif team == nil {\n\t\t\treturn fmt.Errorf(\"Team %d is not present at this event.\", award.TeamId)\n\t\t}\n\t}\n\n\tvar err error\n\tif award.Id == 0 {\n\t\terr = database.CreateAward(award)\n\t} else {\n\t\terr = database.UpdateAward(award)\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Create or update associated lower thirds.\n\tawardIntroLowerThird := model.LowerThird{TopText: award.AwardName, AwardId: award.Id}\n\tawardWinnerLowerThird := model.LowerThird{\n\t\tTopText: award.AwardName, BottomText: award.PersonName, AwardId: award.Id,\n\t}\n\tif team != nil {\n\t\tif award.PersonName == \"\" {\n\t\t\tawardWinnerLowerThird.BottomText = fmt.Sprintf(\"Team %d, %s\", team.Id, team.Nickname)\n\t\t} else {\n\t\t\tawardWinnerLowerThird.BottomText = fmt.Sprintf(\n\t\t\t\t\"%s &ndash; Team %d, %s\", award.PersonName, team.Id, team.Nickname,\n\t\t\t)\n\t\t}\n\t}\n\tif awardWinnerLowerThird.BottomText == \"\" {\n\t\tawardWinnerLowerThird.BottomText = \"(No awardee assigned yet)\"\n\t}\n\tlowerThirds, err := database.GetLowerThirdsByAwardId(award.Id)\n\tif err != nil {\n\t\treturn err\n\t}\n\tbottomIndex := 0\n\tif createIntroLowerThird {\n\t\tif err = createOrUpdateAwardLowerThird(database, &awardIntroLowerThird, lowerThirds, 0); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbottomIndex++\n\t}\n\tif err = createOrUpdateAwardLowerThird(database, &awardWinnerLowerThird, lowerThirds, bottomIndex); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Deletes the given award and any associated lower thirds.\nfunc DeleteAward(database *model.Database, awardId int) error {\n\tif err := database.DeleteAward(awardId); err != nil {\n\t\treturn err\n\t}\n\n\t// Delete lower thirds.\n\tlowerThirds, err := database.GetLowerThirdsByAwardId(awardId)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfor _, lowerThird := range lowerThirds {\n\t\tif err = database.DeleteLowerThird(lowerThird.Id); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Generates awards and lower thirds for the tournament winners and finalists.\nfunc CreateOrUpdateWinnerAndFinalistAwards(database *model.Database, winnerAllianceId, finalistAllianceId int) error {\n\tvar winnerAlliance, finalistAlliance *model.Alliance\n\tvar err error\n\tif winnerAlliance, err = database.GetAllianceById(winnerAllianceId); err != nil {\n\t\treturn err\n\t}\n\tif finalistAlliance, err = database.GetAllianceById(finalistAllianceId); err != nil {\n\t\treturn err\n\t}\n\tif winnerAlliance == nil || finalistAlliance == nil {\n\t\treturn fmt.Errorf(\"Winner and/or finalist alliances do not exist.\")\n\t}\n\tif len(winnerAlliance.TeamIds) == 0 || len(finalistAlliance.TeamIds) == 0 {\n\t\treturn fmt.Errorf(\"Winner and/or finalist alliances do not contain teams.\")\n\t}\n\n\t// Clear out any awards that may exist if the final match was scored more than once.\n\twinnerAwards, err := database.GetAwardsByType(model.WinnerAward)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfinalistAwards, err := database.GetAwardsByType(model.FinalistAward)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfor _, award := range append(winnerAwards, finalistAwards...) {\n\t\tif err = DeleteAward(database, award.Id); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Create the finalist awards first since they're usually presented first.\n\tfinalistAward := model.Award{\n\t\tAwardName: \"Finalist\",\n\t\tType:      model.FinalistAward,\n\t\tTeamId:    finalistAlliance.TeamIds[0],\n\t}\n\tif err = CreateOrUpdateAward(database, &finalistAward, true); err != nil {\n\t\treturn err\n\t}\n\tfor _, allianceTeamId := range finalistAlliance.TeamIds[1:] {\n\t\tfinalistAward.Id = 0\n\t\tfinalistAward.TeamId = allianceTeamId\n\t\tif err = CreateOrUpdateAward(database, &finalistAward, false); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Create the winner awards.\n\twinnerAward := model.Award{\n\t\tAwardName: \"Winner\",\n\t\tType:      model.WinnerAward,\n\t\tTeamId:    winnerAlliance.TeamIds[0],\n\t}\n\tif err = CreateOrUpdateAward(database, &winnerAward, true); err != nil {\n\t\treturn err\n\t}\n\tfor _, allianceTeamId := range winnerAlliance.TeamIds[1:] {\n\t\twinnerAward.Id = 0\n\t\twinnerAward.TeamId = allianceTeamId\n\t\tif err = CreateOrUpdateAward(database, &winnerAward, false); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc createOrUpdateAwardLowerThird(\n\tdatabase *model.Database,\n\tlowerThird *model.LowerThird,\n\texistingLowerThirds []model.LowerThird,\n\tindex int,\n) error {\n\tif index < len(existingLowerThirds) {\n\t\tlowerThird.Id = existingLowerThirds[index].Id\n\t\tlowerThird.DisplayOrder = existingLowerThirds[index].DisplayOrder\n\t\treturn database.UpdateLowerThird(lowerThird)\n\t} else {\n\t\tlowerThird.DisplayOrder = database.GetNextLowerThirdDisplayOrder()\n\t\treturn database.CreateLowerThird(lowerThird)\n\t}\n}\n"
  },
  {
    "path": "tournament/awards_test.go",
    "content": "// Copyright 2019 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage tournament\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestCreateOrUpdateAwardWithIntro(t *testing.T) {\n\tdatabase := setupTestDb(t)\n\tdatabase.CreateTeam(&model.Team{Id: 254, Nickname: \"Teh Chezy Pofs\"})\n\n\taward := model.Award{0, model.JudgedAward, \"Safety Award\", 0, \"\"}\n\terr := CreateOrUpdateAward(database, &award, true)\n\tassert.Nil(t, err)\n\taward2, _ := database.GetAwardById(award.Id)\n\tassert.Equal(t, award, *award2)\n\tlowerThirds, _ := database.GetAllLowerThirds()\n\tif assert.Equal(t, 2, len(lowerThirds)) {\n\t\tassert.Equal(t, \"Safety Award\", lowerThirds[0].TopText)\n\t\tassert.Equal(t, \"\", lowerThirds[0].BottomText)\n\t\tassert.Equal(t, \"Safety Award\", lowerThirds[1].TopText)\n\t\tassert.Equal(t, \"(No awardee assigned yet)\", lowerThirds[1].BottomText)\n\t}\n\n\taward.AwardName = \"Saftey Award\"\n\taward.TeamId = 254\n\terr = CreateOrUpdateAward(database, &award, true)\n\tassert.Nil(t, err)\n\taward2, _ = database.GetAwardById(award.Id)\n\tassert.Equal(t, award, *award2)\n\tlowerThirds, _ = database.GetAllLowerThirds()\n\tif assert.Equal(t, 2, len(lowerThirds)) {\n\t\tassert.Equal(t, \"Saftey Award\", lowerThirds[0].TopText)\n\t\tassert.Equal(t, \"\", lowerThirds[0].BottomText)\n\t\tassert.Equal(t, \"Saftey Award\", lowerThirds[1].TopText)\n\t\tassert.Equal(t, \"Team 254, Teh Chezy Pofs\", lowerThirds[1].BottomText)\n\t}\n\n\terr = DeleteAward(database, award.Id)\n\tassert.Nil(t, err)\n\taward2, _ = database.GetAwardById(award.Id)\n\tassert.Nil(t, award2)\n\tlowerThirds, _ = database.GetAllLowerThirds()\n\tassert.Empty(t, lowerThirds)\n}\n\nfunc TestCreateOrUpdateAwardWithoutIntro(t *testing.T) {\n\tdatabase := setupTestDb(t)\n\tdatabase.CreateTeam(&model.Team{Id: 254, Nickname: \"Teh Chezy Pofs\"})\n\totherLowerThird := model.LowerThird{TopText: \"Marco\", BottomText: \"Polo\"}\n\tdatabase.CreateLowerThird(&otherLowerThird)\n\n\taward := model.Award{0, model.WinnerAward, \"Winner\", 0, \"Bob Dorough\"}\n\terr := CreateOrUpdateAward(database, &award, false)\n\tassert.Nil(t, err)\n\taward2, _ := database.GetAwardById(award.Id)\n\tassert.Equal(t, award, *award2)\n\tlowerThirds, _ := database.GetAllLowerThirds()\n\tif assert.Equal(t, 2, len(lowerThirds)) {\n\t\tassert.Equal(t, otherLowerThird, lowerThirds[0])\n\t\tassert.Equal(t, \"Winner\", lowerThirds[1].TopText)\n\t\tassert.Equal(t, \"Bob Dorough\", lowerThirds[1].BottomText)\n\t}\n\n\taward.TeamId = 254\n\terr = CreateOrUpdateAward(database, &award, false)\n\tassert.Nil(t, err)\n\taward2, _ = database.GetAwardById(award.Id)\n\tassert.Equal(t, award, *award2)\n\tlowerThirds, _ = database.GetAllLowerThirds()\n\tif assert.Equal(t, 2, len(lowerThirds)) {\n\t\tassert.Equal(t, otherLowerThird, lowerThirds[0])\n\t\tassert.Equal(t, \"Winner\", lowerThirds[1].TopText)\n\t\tassert.Equal(t, \"Bob Dorough &ndash; Team 254, Teh Chezy Pofs\", lowerThirds[1].BottomText)\n\t}\n\n\terr = DeleteAward(database, award.Id)\n\tassert.Nil(t, err)\n\taward2, _ = database.GetAwardById(award.Id)\n\tassert.Nil(t, award2)\n\tlowerThirds, _ = database.GetAllLowerThirds()\n\tif assert.Equal(t, 1, len(lowerThirds)) {\n\t\tassert.Equal(t, otherLowerThird, lowerThirds[0])\n\t}\n}\n\nfunc TestCreateOrUpdateWinnerAndFinalistAwards(t *testing.T) {\n\tdatabase := setupTestDb(t)\n\tCreateTestAlliances(database, 2)\n\tdatabase.CreateTeam(&model.Team{Id: 101})\n\tdatabase.CreateTeam(&model.Team{Id: 102})\n\tdatabase.CreateTeam(&model.Team{Id: 103})\n\tdatabase.CreateTeam(&model.Team{Id: 104})\n\tdatabase.CreateTeam(&model.Team{Id: 201})\n\tdatabase.CreateTeam(&model.Team{Id: 202})\n\tdatabase.CreateTeam(&model.Team{Id: 203})\n\tdatabase.CreateTeam(&model.Team{Id: 204})\n\n\terr := CreateOrUpdateWinnerAndFinalistAwards(database, 2, 1)\n\tassert.Nil(t, err)\n\tawards, _ := database.GetAllAwards()\n\tif assert.Equal(t, 8, len(awards)) {\n\t\tassert.Equal(t, model.Award{1, model.FinalistAward, \"Finalist\", 101, \"\"}, awards[0])\n\t\tassert.Equal(t, model.Award{2, model.FinalistAward, \"Finalist\", 102, \"\"}, awards[1])\n\t\tassert.Equal(t, model.Award{3, model.FinalistAward, \"Finalist\", 103, \"\"}, awards[2])\n\t\tassert.Equal(t, model.Award{4, model.FinalistAward, \"Finalist\", 104, \"\"}, awards[3])\n\t\tassert.Equal(t, model.Award{5, model.WinnerAward, \"Winner\", 201, \"\"}, awards[4])\n\t\tassert.Equal(t, model.Award{6, model.WinnerAward, \"Winner\", 202, \"\"}, awards[5])\n\t\tassert.Equal(t, model.Award{7, model.WinnerAward, \"Winner\", 203, \"\"}, awards[6])\n\t\tassert.Equal(t, model.Award{8, model.WinnerAward, \"Winner\", 204, \"\"}, awards[7])\n\t}\n\tlowerThirds, _ := database.GetAllLowerThirds()\n\tif assert.Equal(t, 10, len(lowerThirds)) {\n\t\tassert.Equal(t, \"Finalist\", lowerThirds[0].TopText)\n\t\tassert.Equal(t, \"\", lowerThirds[0].BottomText)\n\t\tassert.Equal(t, \"Finalist\", lowerThirds[1].TopText)\n\t\tassert.Equal(t, \"Team 101, \", lowerThirds[1].BottomText)\n\t\tassert.Equal(t, \"Winner\", lowerThirds[5].TopText)\n\t\tassert.Equal(t, \"\", lowerThirds[5].BottomText)\n\t\tassert.Equal(t, \"Winner\", lowerThirds[6].TopText)\n\t\tassert.Equal(t, \"Team 201, \", lowerThirds[6].BottomText)\n\t}\n\n\terr = CreateOrUpdateWinnerAndFinalistAwards(database, 1, 2)\n\tassert.Nil(t, err)\n\tawards, _ = database.GetAllAwards()\n\tif assert.Equal(t, 8, len(awards)) {\n\t\tassert.Equal(t, model.Award{9, model.FinalistAward, \"Finalist\", 201, \"\"}, awards[0])\n\t\tassert.Equal(t, model.Award{10, model.FinalistAward, \"Finalist\", 202, \"\"}, awards[1])\n\t\tassert.Equal(t, model.Award{11, model.FinalistAward, \"Finalist\", 203, \"\"}, awards[2])\n\t\tassert.Equal(t, model.Award{12, model.FinalistAward, \"Finalist\", 204, \"\"}, awards[3])\n\t\tassert.Equal(t, model.Award{13, model.WinnerAward, \"Winner\", 101, \"\"}, awards[4])\n\t\tassert.Equal(t, model.Award{14, model.WinnerAward, \"Winner\", 102, \"\"}, awards[5])\n\t\tassert.Equal(t, model.Award{15, model.WinnerAward, \"Winner\", 103, \"\"}, awards[6])\n\t\tassert.Equal(t, model.Award{16, model.WinnerAward, \"Winner\", 104, \"\"}, awards[7])\n\t}\n\tlowerThirds, _ = database.GetAllLowerThirds()\n\tif assert.Equal(t, 10, len(lowerThirds)) {\n\t\tassert.Equal(t, \"Finalist\", lowerThirds[0].TopText)\n\t\tassert.Equal(t, \"\", lowerThirds[0].BottomText)\n\t\tassert.Equal(t, \"Finalist\", lowerThirds[1].TopText)\n\t\tassert.Equal(t, \"Team 201, \", lowerThirds[1].BottomText)\n\t\tassert.Equal(t, \"Winner\", lowerThirds[5].TopText)\n\t\tassert.Equal(t, \"\", lowerThirds[5].BottomText)\n\t\tassert.Equal(t, \"Winner\", lowerThirds[6].TopText)\n\t\tassert.Equal(t, \"Team 101, \", lowerThirds[6].BottomText)\n\t}\n}\n"
  },
  {
    "path": "tournament/judging_schedule.go",
    "content": "// Copyright 2025 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Logic for creating judging schedules.\n\npackage tournament\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"math/rand\"\n\t\"time\"\n)\n\n// JudgingScheduleParams contains configuration parameters for the judging schedule generation.\ntype JudgingScheduleParams struct {\n\t// NumJudges is the number of judge teams operating in parallel.\n\tNumJudges int\n\n\t// DurationMinutes is the duration of each judging slot in minutes.\n\tDurationMinutes int\n\n\t// PreviousSpacingMinutes is the minimum buffer time in minutes between the start of a team's match and when they\n\t// can be scheduled for judging.\n\tPreviousSpacingMinutes int\n\n\t// NextSpacingMinutes is the minimum buffer time in minutes between the end of a team's judging slot and their next\n\t// scheduled match.\n\tNextSpacingMinutes int\n}\n\n// judgeSchedule represents the schedule of a judge team, with a list of judging slots and the ending time of the last\n// slot.\ntype judgeSchedule struct {\n\tjudgeNumber int\n\tendTime     time.Time\n\tslots       []*model.JudgingSlot\n}\n\n// BuildJudgingSchedule generates a judging schedule based on the given parameters and qualification match schedule.\nfunc BuildJudgingSchedule(database *model.Database, params JudgingScheduleParams) error {\n\tslots, err := database.GetAllJudgingSlots()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error getting judging slots: %v\", err)\n\t}\n\tif len(slots) > 0 {\n\t\treturn fmt.Errorf(\"cannot generate judging schedule: existing judging slots found\")\n\t}\n\n\tteams, err := database.GetAllTeams()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error getting teams: %v\", err)\n\t}\n\tif len(teams) == 0 {\n\t\treturn fmt.Errorf(\"cannot generate judging schedule: no teams present\")\n\t}\n\n\tmatches, err := database.GetMatchesByType(model.Qualification, true)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error getting qualification matches: %v\", err)\n\t}\n\tif len(matches) < 2 {\n\t\treturn fmt.Errorf(\"cannot generate judging schedule: no qualification matches found\")\n\t}\n\n\tscheduleBlocks, err := database.GetScheduleBlocksByMatchType(model.Qualification)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error getting schedule blocks: %v\", err)\n\t}\n\n\t// Create a map of teams to their matches.\n\tteamMatches := createTeamMatchMap(teams, matches)\n\n\t// Assume that the second match is the start time for the judging schedule.\n\tstartTime := matches[1].Time\n\n\t// Initialize judging team schedules.\n\tjudgeSchedules := make([]*judgeSchedule, params.NumJudges)\n\tfor i := 0; i < params.NumJudges; i++ {\n\t\tjudgeSchedules[i] = &judgeSchedule{\n\t\t\tjudgeNumber: i + 1,\n\t\t\tendTime:     startTime,\n\t\t\tslots:       []*model.JudgingSlot{},\n\t\t}\n\t}\n\n\tif params.NumJudges <= 0 {\n\t\treturn fmt.Errorf(\"cannot generate judging schedule: no judges available\")\n\t}\n\n\t// Randomly shuffle the teams to avoid bias in the scheduling.\n\trand.Shuffle(\n\t\tlen(teams), func(i, j int) {\n\t\t\tteams[i], teams[j] = teams[j], teams[i]\n\t\t},\n\t)\n\n\t// Loop until all teams have been scheduled.\n\tscheduledTeams := make(map[int]struct{})\n\tnoProgressCount := 0\n\tmaxNoProgress := len(teams) * params.NumJudges * 5\n\tfor len(scheduledTeams) < len(teams) {\n\t\t// Select the judge with fewest scheduled visits (or first if there are multiple).\n\t\tvar selectedJudge *judgeSchedule\n\t\tfor _, judge := range judgeSchedules {\n\t\t\tif selectedJudge == nil || len(judge.slots) < len(selectedJudge.slots) {\n\t\t\t\tselectedJudge = judge\n\t\t\t}\n\t\t}\n\t\tif selectedJudge == nil {\n\t\t\treturn fmt.Errorf(\"no available judges to schedule\")\n\t\t}\n\n\t\tcandidateTime := selectedJudge.endTime\n\t\tvar selectedSlot *model.JudgingSlot\n\t\tfor _, team := range teams {\n\t\t\tif _, ok := scheduledTeams[team.Id]; ok {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tslot, err := getNextSlotForTeam(team, candidateTime, teamMatches[team.Id], params)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"error finding next slot for team %d: %v\", team.Id, err)\n\t\t\t}\n\t\t\tif selectedSlot == nil || slot.Time.Before(selectedSlot.Time) {\n\t\t\t\tselectedSlot = slot\n\t\t\t}\n\t\t\tif slot.Time == candidateTime {\n\t\t\t\t// The slot perfectly matches the candidate time; no need to evaluate the remaining teams.\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif selectedSlot == nil {\n\t\t\treturn fmt.Errorf(\"no available judging slot found\")\n\t\t}\n\n\t\t// Check the validity of the selected slot with respect to the scheduled breaks.\n\t\tslotEndTime := selectedSlot.Time.Add(time.Duration(params.DurationMinutes) * time.Minute)\n\t\tvalidAssignment := true\n\t\tfor i, block := range scheduleBlocks {\n\t\t\tblockEndTime := block.StartTime.Add(time.Duration(block.NumMatches*block.MatchSpacingSec) * time.Second)\n\t\t\tif selectedSlot.Time.Before(block.StartTime) {\n\t\t\t\t// The slot time falls between blocks; advance the judge's end time to the start of the next block.\n\t\t\t\tselectedJudge.endTime = block.StartTime\n\t\t\t\t// Don't allow a slot to start during a break, but do allow one to end during a break.\n\t\t\t\tvalidAssignment = false\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif selectedSlot.Time.Before(blockEndTime) {\n\t\t\t\t// The slot starts within the block.\n\t\t\t\tif slotEndTime.After(blockEndTime) && i+1 < len(scheduleBlocks) {\n\t\t\t\t\tnextBlockStart := scheduleBlocks[i+1].StartTime\n\t\t\t\t\tif slotEndTime.After(nextBlockStart) {\n\t\t\t\t\t\t// The slot runs into the next block; advance to the next block start.\n\t\t\t\t\t\tselectedJudge.endTime = nextBlockStart\n\t\t\t\t\t\tvalidAssignment = false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !validAssignment {\n\t\t\t// The slot time is invalid; try the next judge.\n\t\t\tnoProgressCount++\n\t\t\tif noProgressCount >= maxNoProgress {\n\t\t\t\tjudgeEndTimes := make([]time.Time, len(judgeSchedules))\n\t\t\t\tfor i, judge := range judgeSchedules {\n\t\t\t\t\tjudgeEndTimes[i] = judge.endTime\n\t\t\t\t}\n\t\t\t\treturn fmt.Errorf(\n\t\t\t\t\t\"cannot generate judging schedule: no progress after %d attempts (scheduled %d/%d, candidate %s, judgeEndTimes %v, params %+v)\",\n\t\t\t\t\tnoProgressCount,\n\t\t\t\t\tlen(scheduledTeams),\n\t\t\t\t\tlen(teams),\n\t\t\t\t\tcandidateTime.Format(time.RFC3339),\n\t\t\t\t\tjudgeEndTimes,\n\t\t\t\t\tparams,\n\t\t\t\t)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// Update the schedule.\n\t\tselectedSlot.JudgeNumber = selectedJudge.judgeNumber\n\t\tselectedJudge.slots = append(selectedJudge.slots, selectedSlot)\n\t\tselectedJudge.endTime = selectedSlot.Time.Add(time.Duration(params.DurationMinutes) * time.Minute)\n\t\tscheduledTeams[selectedSlot.TeamId] = struct{}{}\n\n\t\tif err := database.CreateJudgingSlot(selectedSlot); err != nil {\n\t\t\treturn fmt.Errorf(\"error saving judging slot for team %d: %v\", selectedSlot.TeamId, err)\n\t\t}\n\t\tnoProgressCount = 0\n\t}\n\n\treturn nil\n}\n\n// createTeamMatchMap creates a map of team IDs to their scheduled qualification matches.\nfunc createTeamMatchMap(teams []model.Team, matches []model.Match) map[int][]model.Match {\n\tteamMatches := make(map[int][]model.Match)\n\tfor _, team := range teams {\n\t\tteamMatches[team.Id] = []model.Match{}\n\t}\n\n\tfor _, match := range matches {\n\t\tteamMatches[match.Red1] = append(teamMatches[match.Red1], match)\n\t\tteamMatches[match.Red2] = append(teamMatches[match.Red2], match)\n\t\tteamMatches[match.Red3] = append(teamMatches[match.Red3], match)\n\t\tteamMatches[match.Blue1] = append(teamMatches[match.Blue1], match)\n\t\tteamMatches[match.Blue2] = append(teamMatches[match.Blue2], match)\n\t\tteamMatches[match.Blue3] = append(teamMatches[match.Blue3], match)\n\t}\n\n\treturn teamMatches\n}\n\n// getNextSlotForTeam finds the next available judging slot for a team at or after the given candidate time.\nfunc getNextSlotForTeam(\n\tteam model.Team,\n\tcandidateTime time.Time,\n\tmatches []model.Match,\n\tparams JudgingScheduleParams,\n) (*model.JudgingSlot, error) {\n\tif len(matches) == 0 {\n\t\treturn nil, fmt.Errorf(\"no qualification matches for team\")\n\t}\n\n\tvar previousMatch *model.Match\n\tfor i := range matches {\n\t\tmatch := matches[i]\n\t\tif match.Time.After(candidateTime) {\n\t\t\t// Calculate the spacing between the candidate time and the previous match.\n\t\t\tpreviousSpacingMinutes := float64(params.PreviousSpacingMinutes)\n\t\t\tif previousMatch != nil {\n\t\t\t\tpreviousSpacingMinutes = candidateTime.Sub(previousMatch.Time).Minutes()\n\t\t\t}\n\t\t\tif previousSpacingMinutes < float64(params.PreviousSpacingMinutes) {\n\t\t\t\t// The candidate time is too close to the previous match; adjust it minimally.\n\t\t\t\tcandidateTime = previousMatch.Time.Add(time.Duration(params.PreviousSpacingMinutes) * time.Minute)\n\t\t\t}\n\n\t\t\tnextSpacingMinutes := match.Time.Sub(candidateTime).Minutes() - float64(params.DurationMinutes)\n\t\t\tif nextSpacingMinutes >= float64(params.NextSpacingMinutes) {\n\t\t\t\t// The candidate time is far enough from the next match; schedule the judging slot.\n\t\t\t\tslot := model.JudgingSlot{\n\t\t\t\t\tTime:            candidateTime,\n\t\t\t\t\tTeamId:          team.Id,\n\t\t\t\t\tNextMatchNumber: match.TypeOrder,\n\t\t\t\t\tNextMatchTime:   match.Time,\n\t\t\t\t}\n\t\t\t\tif previousMatch != nil {\n\t\t\t\t\tslot.PreviousMatchNumber = previousMatch.TypeOrder\n\t\t\t\t\tslot.PreviousMatchTime = previousMatch.Time\n\t\t\t\t}\n\t\t\t\treturn &slot, nil\n\t\t\t}\n\n\t\t\t// The candidate time is too close to the next match; continue searching.\n\t\t}\n\t\tpreviousMatch = &matches[i]\n\t}\n\n\t// If we get here, the team can only be scheduled once all matches are complete.\n\tif previousMatch == nil {\n\t\treturn nil, fmt.Errorf(\"no previous match found for team\")\n\t}\n\tminCandidateTime := previousMatch.Time.Add(time.Duration(params.PreviousSpacingMinutes) * time.Minute)\n\tif candidateTime.Before(minCandidateTime) {\n\t\tcandidateTime = minCandidateTime\n\t}\n\tslot := model.JudgingSlot{\n\t\tTime:                candidateTime,\n\t\tTeamId:              team.Id,\n\t\tPreviousMatchNumber: previousMatch.TypeOrder,\n\t\tPreviousMatchTime:   previousMatch.Time,\n\t}\n\treturn &slot, nil\n}\n"
  },
  {
    "path": "tournament/judging_schedule_test.go",
    "content": "// Copyright 2025 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage tournament\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"math/rand\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestBuildJudgingSchedule(t *testing.T) {\n\trand.Seed(0)\n\tdatabase := setupTestDb(t)\n\n\t// Test error when judging slots already exist.\n\tslot := model.JudgingSlot{Time: time.Now(), TeamId: 254, JudgeNumber: 1}\n\tassert.Nil(t, database.CreateJudgingSlot(&slot))\n\tparams := JudgingScheduleParams{\n\t\tNumJudges:              3,\n\t\tDurationMinutes:        23,\n\t\tPreviousSpacingMinutes: 17,\n\t\tNextSpacingMinutes:     14,\n\t}\n\terr := BuildJudgingSchedule(database, params)\n\tassert.Contains(t, err.Error(), \"existing judging slots found\")\n\n\tassert.Nil(t, database.TruncateJudgingSlots())\n\n\t// Test error when no teams present.\n\terr = BuildJudgingSchedule(database, params)\n\tassert.Contains(t, err.Error(), \"no teams present\")\n\n\t// Generate teams to test against.\n\tfor i := 1; i <= 24; i++ {\n\t\tassert.Nil(t, database.CreateTeam(&model.Team{Id: i}))\n\t}\n\tteams, err := database.GetAllTeams()\n\tassert.Nil(t, err)\n\n\t// Test error when no qualification matches found.\n\terr = BuildJudgingSchedule(database, params)\n\tassert.Contains(t, err.Error(), \"no qualification matches found\")\n\n\t// Generate qualification schedule to test against.\n\tscheduleBlocks := []model.ScheduleBlock{\n\t\t{\n\t\t\tMatchType:       model.Qualification,\n\t\t\tStartTime:       time.Date(2025, 4, 1, 9, 0, 0, 0, time.UTC),\n\t\t\tNumMatches:      12,\n\t\t\tMatchSpacingSec: 600,\n\t\t},\n\t\t{\n\t\t\tMatchType:       model.Qualification,\n\t\t\tStartTime:       time.Date(2025, 4, 1, 13, 0, 0, 0, time.UTC),\n\t\t\tNumMatches:      12,\n\t\t\tMatchSpacingSec: 600,\n\t\t},\n\t}\n\tfor _, block := range scheduleBlocks {\n\t\tassert.Nil(t, database.CreateScheduleBlock(&block))\n\t}\n\tmatches, err := BuildRandomSchedule(teams, scheduleBlocks, model.Qualification)\n\tassert.Nil(t, err)\n\tfor _, match := range matches {\n\t\tassert.Nil(t, database.CreateMatch(&match))\n\t}\n\n\terr = BuildJudgingSchedule(database, params)\n\tassert.Nil(t, err)\n\tslots, err := database.GetAllJudgingSlots()\n\tassert.Nil(t, err)\n\tassert.Equal(t, 24, len(slots))\n\tjudgeTeamCounts := make(map[int]int)\n\tfor _, slot := range slots {\n\t\tassert.NotEqual(t, 0, slot.TeamId)\n\t\tassert.NotEqual(t, 0, slot.JudgeNumber)\n\t\tjudgeTeamCounts[slot.JudgeNumber]++\n\n\t\t// Check that the slot is not too close to the previous or next matches.\n\t\tif slot.PreviousMatchNumber > 0 {\n\t\t\tspacing := slot.Time.Sub(slot.PreviousMatchTime).Minutes()\n\t\t\tassert.GreaterOrEqual(t, spacing, float64(params.PreviousSpacingMinutes))\n\t\t}\n\t\tif slot.NextMatchNumber > 0 {\n\t\t\tspacing := slot.NextMatchTime.Sub(slot.Time).Minutes() - float64(params.DurationMinutes)\n\t\t\tassert.GreaterOrEqual(t, spacing, float64(params.NextSpacingMinutes))\n\t\t}\n\n\t\t// Check that the slot is not scheduled during the break.\n\t\tbreakStartTime := scheduleBlocks[0].StartTime.Add(\n\t\t\ttime.Duration(scheduleBlocks[0].NumMatches*scheduleBlocks[0].MatchSpacingSec) * time.Second,\n\t\t)\n\t\tif slot.Time.Before(scheduleBlocks[1].StartTime) {\n\t\t\tassert.True(t, slot.Time.Before(breakStartTime))\n\t\t}\n\t\tif slot.Time.After(breakStartTime) {\n\t\t\tassert.True(t, slot.Time.After(scheduleBlocks[1].StartTime))\n\t\t}\n\t}\n\tif assert.Equal(t, 3, len(judgeTeamCounts)) {\n\t\tassert.Equal(t, 8, judgeTeamCounts[1])\n\t\tassert.Equal(t, 8, judgeTeamCounts[2])\n\t\tassert.Equal(t, 8, judgeTeamCounts[3])\n\t}\n}\n\nfunc TestBuildJudgingScheduleMissingTeamMatches(t *testing.T) {\n\trand.Seed(0)\n\tdatabase := setupTestDb(t)\n\n\tfor i := 1; i <= 6; i++ {\n\t\tassert.Nil(t, database.CreateTeam(&model.Team{Id: i}))\n\t}\n\tteams, err := database.GetAllTeams()\n\tassert.Nil(t, err)\n\n\tscheduleBlocks := []model.ScheduleBlock{\n\t\t{\n\t\t\tMatchType:       model.Qualification,\n\t\t\tStartTime:       time.Date(2025, 4, 1, 9, 0, 0, 0, time.UTC),\n\t\t\tNumMatches:      2,\n\t\t\tMatchSpacingSec: 600,\n\t\t},\n\t}\n\tfor _, block := range scheduleBlocks {\n\t\tassert.Nil(t, database.CreateScheduleBlock(&block))\n\t}\n\n\t// Only include the first three teams in matches to force missing team matches.\n\tfor i := 0; i < 2; i++ {\n\t\tmatch := model.Match{\n\t\t\tType:      model.Qualification,\n\t\t\tTypeOrder: i + 1,\n\t\t\tTime:      scheduleBlocks[0].StartTime.Add(time.Duration(i*scheduleBlocks[0].MatchSpacingSec) * time.Second),\n\t\t\tRed1:      teams[0].Id,\n\t\t\tRed2:      teams[1].Id,\n\t\t\tRed3:      teams[2].Id,\n\t\t\tBlue1:     teams[0].Id,\n\t\t\tBlue2:     teams[1].Id,\n\t\t\tBlue3:     teams[2].Id,\n\t\t}\n\t\tassert.Nil(t, database.CreateMatch(&match))\n\t}\n\n\tparams := JudgingScheduleParams{\n\t\tNumJudges:              2,\n\t\tDurationMinutes:        20,\n\t\tPreviousSpacingMinutes: 15,\n\t\tNextSpacingMinutes:     10,\n\t}\n\terr = BuildJudgingSchedule(database, params)\n\tassert.Contains(t, err.Error(), \"no qualification matches for team\")\n}\n\nfunc TestGetNextSlotForTeamAfterLastMatch(t *testing.T) {\n\tparams := JudgingScheduleParams{\n\t\tNumJudges:              1,\n\t\tDurationMinutes:        20,\n\t\tPreviousSpacingMinutes: 30,\n\t\tNextSpacingMinutes:     10,\n\t}\n\tteam := model.Team{Id: 1}\n\tmatches := []model.Match{\n\t\t{\n\t\t\tType:      model.Qualification,\n\t\t\tTypeOrder: 1,\n\t\t\tTime:      time.Date(2025, 4, 1, 9, 0, 0, 0, time.UTC),\n\t\t\tRed1:      team.Id,\n\t\t},\n\t\t{\n\t\t\tType:      model.Qualification,\n\t\t\tTypeOrder: 2,\n\t\t\tTime:      time.Date(2025, 4, 1, 10, 0, 0, 0, time.UTC),\n\t\t\tRed1:      team.Id,\n\t\t},\n\t}\n\tcandidateTime := time.Date(2025, 4, 1, 11, 0, 0, 0, time.UTC)\n\n\tslot, err := getNextSlotForTeam(team, candidateTime, matches, params)\n\tassert.Nil(t, err)\n\tassert.Equal(t, candidateTime, slot.Time)\n}\n\nfunc TestBuildJudgingScheduleAllowsEndDuringBreak(t *testing.T) {\n\trand.Seed(0)\n\tdatabase := setupTestDb(t)\n\n\tassert.Nil(t, database.CreateTeam(&model.Team{Id: 1}))\n\n\tscheduleBlocks := []model.ScheduleBlock{\n\t\t{\n\t\t\tMatchType:       model.Qualification,\n\t\t\tStartTime:       time.Date(2025, 4, 1, 9, 0, 0, 0, time.UTC),\n\t\t\tNumMatches:      2,\n\t\t\tMatchSpacingSec: 600,\n\t\t},\n\t\t{\n\t\t\tMatchType:       model.Qualification,\n\t\t\tStartTime:       time.Date(2025, 4, 1, 10, 0, 0, 0, time.UTC),\n\t\t\tNumMatches:      1,\n\t\t\tMatchSpacingSec: 600,\n\t\t},\n\t}\n\tfor _, block := range scheduleBlocks {\n\t\tassert.Nil(t, database.CreateScheduleBlock(&block))\n\t}\n\n\tmatches := []model.Match{\n\t\t{\n\t\t\tType:      model.Qualification,\n\t\t\tTypeOrder: 1,\n\t\t\tTime:      scheduleBlocks[0].StartTime,\n\t\t\tRed1:      1,\n\t\t\tRed2:      1,\n\t\t\tRed3:      1,\n\t\t\tBlue1:     1,\n\t\t\tBlue2:     1,\n\t\t\tBlue3:     1,\n\t\t},\n\t\t{\n\t\t\tType:      model.Qualification,\n\t\t\tTypeOrder: 2,\n\t\t\tTime:      scheduleBlocks[0].StartTime.Add(10 * time.Minute),\n\t\t\tRed1:      1,\n\t\t\tRed2:      1,\n\t\t\tRed3:      1,\n\t\t\tBlue1:     1,\n\t\t\tBlue2:     1,\n\t\t\tBlue3:     1,\n\t\t},\n\t\t{\n\t\t\tType:      model.Qualification,\n\t\t\tTypeOrder: 3,\n\t\t\tTime:      scheduleBlocks[1].StartTime,\n\t\t\tRed1:      1,\n\t\t\tRed2:      1,\n\t\t\tRed3:      1,\n\t\t\tBlue1:     1,\n\t\t\tBlue2:     1,\n\t\t\tBlue3:     1,\n\t\t},\n\t}\n\tfor _, match := range matches {\n\t\tassert.Nil(t, database.CreateMatch(&match))\n\t}\n\n\tparams := JudgingScheduleParams{\n\t\tNumJudges:              1,\n\t\tDurationMinutes:        20,\n\t\tPreviousSpacingMinutes: 0,\n\t\tNextSpacingMinutes:     0,\n\t}\n\terr := BuildJudgingSchedule(database, params)\n\tassert.Nil(t, err)\n\n\tslots, err := database.GetAllJudgingSlots()\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 1, len(slots)) {\n\t\tassert.Equal(t, scheduleBlocks[0].StartTime.Add(10*time.Minute), slots[0].Time)\n\t}\n}\n"
  },
  {
    "path": "tournament/qualification_rankings.go",
    "content": "// Copyright 2017 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Functions for calculating the qualification rankings.\n\npackage tournament\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"sort\"\n\t\"strconv\"\n)\n\n// Determines the rankings from the stored match results, and saves them to the database.\nfunc CalculateRankings(database *model.Database, preservePreviousRank bool) (game.Rankings, error) {\n\tmatches, err := database.GetMatchesByType(model.Qualification, false)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\trankings := make(map[int]*game.Ranking)\n\tfor _, match := range matches {\n\t\tif !match.IsComplete() {\n\t\t\tcontinue\n\t\t}\n\t\tmatchResult, err := database.GetMatchResultForMatch(match.Id)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif !match.Red1IsSurrogate {\n\t\t\taddMatchResultToRankings(rankings, match.Red1, matchResult, true)\n\t\t}\n\t\tif !match.Red2IsSurrogate {\n\t\t\taddMatchResultToRankings(rankings, match.Red2, matchResult, true)\n\t\t}\n\t\tif !match.Red3IsSurrogate {\n\t\t\taddMatchResultToRankings(rankings, match.Red3, matchResult, true)\n\t\t}\n\t\tif !match.Blue1IsSurrogate {\n\t\t\taddMatchResultToRankings(rankings, match.Blue1, matchResult, false)\n\t\t}\n\t\tif !match.Blue2IsSurrogate {\n\t\t\taddMatchResultToRankings(rankings, match.Blue2, matchResult, false)\n\t\t}\n\t\tif !match.Blue3IsSurrogate {\n\t\t\taddMatchResultToRankings(rankings, match.Blue3, matchResult, false)\n\t\t}\n\t}\n\n\t// Retrieve old rankings so that we can display changes in rank as a result of this calculation.\n\toldRankings, err := database.GetAllRankings()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\toldRankingsMap := make(map[int]game.Ranking, len(oldRankings))\n\tfor _, ranking := range oldRankings {\n\t\toldRankingsMap[ranking.TeamId] = ranking\n\t}\n\n\tsortedRankings := sortRankings(rankings)\n\tfor rank, ranking := range sortedRankings {\n\t\tsortedRankings[rank].Rank = rank + 1\n\t\tif oldRank, ok := oldRankingsMap[ranking.TeamId]; ok {\n\t\t\tif preservePreviousRank {\n\t\t\t\tsortedRankings[rank].PreviousRank = oldRank.PreviousRank\n\t\t\t} else {\n\t\t\t\tsortedRankings[rank].PreviousRank = oldRank.Rank\n\t\t\t}\n\t\t}\n\t}\n\terr = database.ReplaceAllRankings(sortedRankings)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn sortedRankings, nil\n}\n\n// Checks all the match results for yellow and red cards, and updates the team model accordingly.\nfunc CalculateTeamCards(database *model.Database, matchType model.MatchType) error {\n\tteams, err := database.GetAllTeams()\n\tif err != nil {\n\t\treturn err\n\t}\n\tteamsMap := make(map[string]model.Team)\n\tfor _, team := range teams {\n\t\tteam.YellowCard = false\n\t\tteamsMap[strconv.Itoa(team.Id)] = team\n\t}\n\n\tmatches, err := database.GetMatchesByType(matchType, false)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfor _, match := range matches {\n\t\tif !match.IsComplete() {\n\t\t\tcontinue\n\t\t}\n\t\tmatchResult, err := database.GetMatchResultForMatch(match.Id)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif matchResult == nil {\n\t\t\treturn fmt.Errorf(\"found no match result for match %d\", match.Id)\n\t\t}\n\n\t\t// Mark the team as having a yellow card if they got either a yellow or red in a previous match.\n\t\tfor teamId, card := range matchResult.RedCards {\n\t\t\tif team, ok := teamsMap[teamId]; ok && (card == \"red\" || card == \"yellow\") {\n\t\t\t\tteam.YellowCard = true\n\t\t\t\tteamsMap[teamId] = team\n\t\t\t}\n\t\t}\n\t\tfor teamId, card := range matchResult.BlueCards {\n\t\t\tif team, ok := teamsMap[teamId]; ok && (card == \"red\" || card == \"yellow\") {\n\t\t\t\tteam.YellowCard = true\n\t\t\t\tteamsMap[teamId] = team\n\t\t\t}\n\t\t}\n\t}\n\n\t// Save the teams to the database.\n\tfor _, team := range teamsMap {\n\t\terr = database.UpdateTeam(&team)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Incrementally accounts for the given match result in the set of rankings that are being built.\nfunc addMatchResultToRankings(\n\trankings map[int]*game.Ranking, teamId int, matchResult *model.MatchResult, isRed bool,\n) {\n\tranking := rankings[teamId]\n\tif ranking == nil {\n\t\tranking = &game.Ranking{TeamId: teamId}\n\t\trankings[teamId] = ranking\n\t}\n\n\t// Determine whether the team was disqualified.\n\tvar cards map[string]string\n\tif isRed {\n\t\tcards = matchResult.RedCards\n\t} else {\n\t\tcards = matchResult.BlueCards\n\t}\n\tdisqualified := false\n\tif card, ok := cards[strconv.Itoa(teamId)]; ok && (card == \"red\" || card == \"dq\") {\n\t\tdisqualified = true\n\t}\n\n\tif isRed {\n\t\tranking.AddScoreSummary(matchResult.RedScoreSummary(), matchResult.BlueScoreSummary(), disqualified)\n\t} else {\n\t\tranking.AddScoreSummary(matchResult.BlueScoreSummary(), matchResult.RedScoreSummary(), disqualified)\n\t}\n}\n\nfunc sortRankings(rankings map[int]*game.Ranking) game.Rankings {\n\tvar sortedRankings game.Rankings\n\tfor _, ranking := range rankings {\n\t\tsortedRankings = append(sortedRankings, *ranking)\n\t}\n\tsort.Sort(sortedRankings)\n\treturn sortedRankings\n}\n"
  },
  {
    "path": "tournament/qualification_rankings_test.go",
    "content": "// Copyright 2017 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage tournament\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"math/rand\"\n\t\"testing\"\n)\n\nfunc TestCalculateRankings(t *testing.T) {\n\trand.Seed(1)\n\tdatabase := setupTestDb(t)\n\n\tsetupMatchResultsForRankings(database)\n\tupdatedRankings, err := CalculateRankings(database, false)\n\tassert.Nil(t, err)\n\trankings, err := database.GetAllRankings()\n\tassert.Nil(t, err)\n\tassert.Equal(t, updatedRankings, rankings)\n\tif assert.Equal(t, 6, len(rankings)) {\n\t\tassert.Equal(t, 4, rankings[0].TeamId)\n\t\tassert.Equal(t, 0, rankings[0].PreviousRank)\n\t\tassert.Equal(t, 6, rankings[1].TeamId)\n\t\tassert.Equal(t, 0, rankings[1].PreviousRank)\n\t\tassert.Equal(t, 5, rankings[2].TeamId)\n\t\tassert.Equal(t, 0, rankings[2].PreviousRank)\n\t\tassert.Equal(t, 1, rankings[3].TeamId)\n\t\tassert.Equal(t, 0, rankings[3].PreviousRank)\n\t\tassert.Equal(t, 2, rankings[4].TeamId)\n\t\tassert.Equal(t, 0, rankings[4].PreviousRank)\n\t\tassert.Equal(t, 3, rankings[5].TeamId)\n\t\tassert.Equal(t, 0, rankings[5].PreviousRank)\n\t}\n\n\tpreviousRankings := make(map[int]int)\n\tfor _, ranking := range rankings {\n\t\tfmt.Printf(\"%+v\\n\", ranking)\n\t\tpreviousRankings[ranking.TeamId] = ranking.Rank\n\t}\n\tfmt.Println()\n\n\t// Test after changing a match result.\n\tmatchResult3 := model.BuildTestMatchResult(3, 3)\n\tmatchResult3.RedScore, matchResult3.BlueScore = matchResult3.BlueScore, matchResult3.RedScore\n\terr = database.CreateMatchResult(matchResult3)\n\tassert.Nil(t, err)\n\tupdatedRankings, err = CalculateRankings(database, false)\n\tassert.Nil(t, err)\n\trankings, err = database.GetAllRankings()\n\tassert.Nil(t, err)\n\tassert.Equal(t, updatedRankings, rankings)\n\tif assert.Equal(t, 6, len(rankings)) {\n\t\tassert.Equal(t, 6, rankings[0].TeamId)\n\t\tassert.Equal(t, previousRankings[rankings[0].TeamId], rankings[0].PreviousRank)\n\t\tassert.Equal(t, 5, rankings[1].TeamId)\n\t\tassert.Equal(t, previousRankings[rankings[1].TeamId], rankings[1].PreviousRank)\n\t\tassert.Equal(t, 4, rankings[2].TeamId)\n\t\tassert.Equal(t, previousRankings[rankings[2].TeamId], rankings[2].PreviousRank)\n\t\tassert.Equal(t, 1, rankings[3].TeamId)\n\t\tassert.Equal(t, previousRankings[rankings[3].TeamId], rankings[3].PreviousRank)\n\t\tassert.Equal(t, 2, rankings[4].TeamId)\n\t\tassert.Equal(t, previousRankings[rankings[4].TeamId], rankings[4].PreviousRank)\n\t\tassert.Equal(t, 3, rankings[5].TeamId)\n\t\tassert.Equal(t, previousRankings[rankings[5].TeamId], rankings[5].PreviousRank)\n\t}\n\n\tfor _, ranking := range rankings {\n\t\tfmt.Printf(\"%+v\\n\", ranking)\n\t}\n\tfmt.Println()\n\n\tmatchResult3 = model.BuildTestMatchResult(3, 4)\n\terr = database.CreateMatchResult(matchResult3)\n\tassert.Nil(t, err)\n\tupdatedRankings, err = CalculateRankings(database, true)\n\tassert.Nil(t, err)\n\trankings, err = database.GetAllRankings()\n\tassert.Nil(t, err)\n\tassert.Equal(t, updatedRankings, rankings)\n\tif assert.Equal(t, 6, len(rankings)) {\n\t\tassert.Equal(t, 4, rankings[0].TeamId)\n\t\tassert.Equal(t, previousRankings[rankings[0].TeamId], rankings[0].PreviousRank)\n\t\tassert.Equal(t, 3, rankings[1].TeamId)\n\t\tassert.Equal(t, previousRankings[rankings[1].TeamId], rankings[1].PreviousRank)\n\t\tassert.Equal(t, 6, rankings[2].TeamId)\n\t\tassert.Equal(t, previousRankings[rankings[2].TeamId], rankings[2].PreviousRank)\n\t\tassert.Equal(t, 5, rankings[3].TeamId)\n\t\tassert.Equal(t, previousRankings[rankings[3].TeamId], rankings[3].PreviousRank)\n\t\tassert.Equal(t, 1, rankings[4].TeamId)\n\t\tassert.Equal(t, previousRankings[rankings[4].TeamId], rankings[4].PreviousRank)\n\t\tassert.Equal(t, 2, rankings[5].TeamId)\n\t\tassert.Equal(t, previousRankings[rankings[5].TeamId], rankings[5].PreviousRank)\n\t}\n\n\tfor _, ranking := range rankings {\n\t\tfmt.Printf(\"%+v\\n\", ranking)\n\t}\n\tfmt.Println()\n\n}\n\nfunc TestAddMatchResultToRankingsHandleCards(t *testing.T) {\n\trankings := map[int]*game.Ranking{}\n\tmatchResult := model.BuildTestMatchResult(1, 1)\n\tmatchResult.RedCards = map[string]string{\"1\": \"yellow\", \"2\": \"red\", \"3\": \"dq\"}\n\tmatchResult.BlueCards = map[string]string{\"4\": \"red\", \"5\": \"dq\", \"6\": \"yellow\"}\n\taddMatchResultToRankings(rankings, 1, matchResult, true)\n\taddMatchResultToRankings(rankings, 2, matchResult, true)\n\taddMatchResultToRankings(rankings, 3, matchResult, true)\n\taddMatchResultToRankings(rankings, 4, matchResult, false)\n\taddMatchResultToRankings(rankings, 5, matchResult, false)\n\taddMatchResultToRankings(rankings, 6, matchResult, false)\n\tassert.Equal(t, 0, rankings[1].Disqualifications)\n\tassert.Equal(t, 1, rankings[2].Disqualifications)\n\tassert.Equal(t, 1, rankings[3].Disqualifications)\n\tassert.Equal(t, 1, rankings[4].Disqualifications)\n\tassert.Equal(t, 1, rankings[5].Disqualifications)\n\tassert.Equal(t, 0, rankings[6].Disqualifications)\n}\n\n// Sets up a schedule and results that touches on all possible variables.\nfunc setupMatchResultsForRankings(database *model.Database) {\n\tmatch1 := model.Match{\n\t\tType:      model.Qualification,\n\t\tTypeOrder: 1,\n\t\tRed1:      1,\n\t\tRed2:      2,\n\t\tRed3:      3,\n\t\tBlue1:     4,\n\t\tBlue2:     5,\n\t\tBlue3:     6,\n\t\tStatus:    game.RedWonMatch,\n\t}\n\tdatabase.CreateMatch(&match1)\n\tmatchResult1 := model.BuildTestMatchResult(match1.Id, 1)\n\tmatchResult1.RedCards = map[string]string{\"2\": \"red\"}\n\tdatabase.CreateMatchResult(matchResult1)\n\n\tmatch2 := model.Match{\n\t\tType:             model.Qualification,\n\t\tTypeOrder:        2,\n\t\tRed1:             1,\n\t\tRed2:             3,\n\t\tRed3:             5,\n\t\tBlue1:            2,\n\t\tBlue2:            4,\n\t\tBlue3:            6,\n\t\tStatus:           game.BlueWonMatch,\n\t\tRed2IsSurrogate:  true,\n\t\tBlue3IsSurrogate: true,\n\t}\n\tdatabase.CreateMatch(&match2)\n\tmatchResult2 := model.BuildTestMatchResult(match2.Id, 1)\n\tmatchResult2.BlueScore = matchResult2.RedScore\n\tdatabase.CreateMatchResult(matchResult2)\n\n\tmatch3 := model.Match{\n\t\tType:            model.Qualification,\n\t\tTypeOrder:       3,\n\t\tRed1:            6,\n\t\tRed2:            5,\n\t\tRed3:            4,\n\t\tBlue1:           3,\n\t\tBlue2:           2,\n\t\tBlue3:           1,\n\t\tStatus:          game.TieMatch,\n\t\tRed3IsSurrogate: true,\n\t}\n\tdatabase.CreateMatch(&match3)\n\tmatchResult3 := model.BuildTestMatchResult(match3.Id, 1)\n\tdatabase.CreateMatchResult(matchResult3)\n\tmatchResult3 = model.NewMatchResult()\n\tmatchResult3.MatchId = match3.Id\n\tmatchResult3.PlayNumber = 2\n\tdatabase.CreateMatchResult(matchResult3)\n\n\tmatch4 := model.Match{\n\t\tType:      model.Practice,\n\t\tTypeOrder: 1,\n\t\tRed1:      1,\n\t\tRed2:      2,\n\t\tRed3:      3,\n\t\tBlue1:     4,\n\t\tBlue2:     5,\n\t\tBlue3:     6,\n\t\tStatus:    game.RedWonMatch,\n\t}\n\tdatabase.CreateMatch(&match4)\n\tmatchResult4 := model.BuildTestMatchResult(match4.Id, 1)\n\tdatabase.CreateMatchResult(matchResult4)\n\n\tmatch5 := model.Match{\n\t\tType:      model.Playoff,\n\t\tTypeOrder: 8,\n\t\tRed1:      1,\n\t\tRed2:      2,\n\t\tRed3:      3,\n\t\tBlue1:     4,\n\t\tBlue2:     5,\n\t\tBlue3:     6,\n\t\tStatus:    game.BlueWonMatch,\n\t}\n\tdatabase.CreateMatch(&match5)\n\tmatchResult5 := model.BuildTestMatchResult(match5.Id, 1)\n\tdatabase.CreateMatchResult(matchResult5)\n\n\tmatch6 := model.Match{\n\t\tType:      model.Qualification,\n\t\tTypeOrder: 4,\n\t\tRed1:      7,\n\t\tRed2:      8,\n\t\tRed3:      9,\n\t\tBlue1:     10,\n\t\tBlue2:     11,\n\t\tBlue3:     12,\n\t\tStatus:    game.MatchScheduled,\n\t}\n\tdatabase.CreateMatch(&match6)\n\tmatchResult6 := model.BuildTestMatchResult(match6.Id, 1)\n\tdatabase.CreateMatchResult(matchResult6)\n}\n"
  },
  {
    "path": "tournament/schedule.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Functions for creating practice and qualification match schedules.\n\npackage tournament\n\nimport (\n\t\"encoding/csv\"\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"math\"\n\t\"math/rand\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strconv\"\n\t\"time\"\n)\n\nconst (\n\tschedulesDir  = \"schedules\"\n\tTeamsPerMatch = 6\n)\n\n// Creates a random schedule for the given parameters and returns it as a list of matches.\nfunc BuildRandomSchedule(\n\tteams []model.Team, scheduleBlocks []model.ScheduleBlock, matchType model.MatchType,\n) ([]model.Match, error) {\n\t// Load the anonymized, pre-randomized match schedule for the given number of teams and matches per team.\n\tnumTeams := len(teams)\n\tnumMatches := countMatches(scheduleBlocks)\n\tmatchesPerTeam := int(float32(numMatches*TeamsPerMatch) / float32(numTeams))\n\n\t// Adjust the number of matches to remove any excess from non-perfect block scheduling.\n\tnumMatches = int(math.Ceil(float64(numTeams) * float64(matchesPerTeam) / TeamsPerMatch))\n\n\tfile, err := os.Open(\n\t\tfmt.Sprintf(\"%s/%d_%d.csv\", filepath.Join(model.BaseDir, schedulesDir), numTeams, matchesPerTeam),\n\t)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"No schedule template exists for %d teams and %d matches\", numTeams, matchesPerTeam)\n\t}\n\tdefer file.Close()\n\treader := csv.NewReader(file)\n\tcsvLines, err := reader.ReadAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(csvLines) != numMatches {\n\t\treturn nil, fmt.Errorf(\"Schedule file contains %d matches, expected %d\", len(csvLines), numMatches)\n\t}\n\n\t// Convert string fields from schedule to integers.\n\tanonSchedule := make([][12]int, numMatches)\n\tfor i := 0; i < numMatches; i++ {\n\t\tfor j := 0; j < 12; j++ {\n\t\t\tanonSchedule[i][j], err = strconv.Atoi(csvLines[i][j])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\n\t// Generate a random permutation of the team ordering to fill into the pre-randomized schedule.\n\tteamShuffle := rand.Perm(numTeams)\n\tmatches := make([]model.Match, numMatches)\n\tfor i, anonMatch := range anonSchedule {\n\t\tmatches[i].Type = matchType\n\t\tmatches[i].TypeOrder = i + 1\n\t\tif matchType == model.Practice {\n\t\t\tmatches[i].ShortName = fmt.Sprintf(\"P%d\", i+1)\n\t\t\tmatches[i].LongName = fmt.Sprintf(\"Practice %d\", i+1)\n\t\t\tmatches[i].TbaMatchKey.CompLevel = \"p\"\n\t\t} else if matchType == model.Qualification {\n\t\t\tmatches[i].ShortName = fmt.Sprintf(\"Q%d\", i+1)\n\t\t\tmatches[i].LongName = fmt.Sprintf(\"Qualification %d\", i+1)\n\t\t\tmatches[i].TbaMatchKey.CompLevel = \"qm\"\n\t\t} else {\n\t\t\treturn nil, fmt.Errorf(\"invalid match type %q\", matchType)\n\t\t}\n\t\tmatches[i].Red1 = teams[teamShuffle[anonMatch[0]-1]].Id\n\t\tmatches[i].Red1IsSurrogate = anonMatch[1] == 1\n\t\tmatches[i].Red2 = teams[teamShuffle[anonMatch[2]-1]].Id\n\t\tmatches[i].Red2IsSurrogate = anonMatch[3] == 1\n\t\tmatches[i].Red3 = teams[teamShuffle[anonMatch[4]-1]].Id\n\t\tmatches[i].Red3IsSurrogate = anonMatch[5] == 1\n\t\tmatches[i].Blue1 = teams[teamShuffle[anonMatch[6]-1]].Id\n\t\tmatches[i].Blue1IsSurrogate = anonMatch[7] == 1\n\t\tmatches[i].Blue2 = teams[teamShuffle[anonMatch[8]-1]].Id\n\t\tmatches[i].Blue2IsSurrogate = anonMatch[9] == 1\n\t\tmatches[i].Blue3 = teams[teamShuffle[anonMatch[10]-1]].Id\n\t\tmatches[i].Blue3IsSurrogate = anonMatch[11] == 1\n\t\tmatches[i].TbaMatchKey.MatchNumber = i + 1\n\t}\n\n\t// Fill in the match times.\n\tmatchIndex := 0\n\tfor _, block := range scheduleBlocks {\n\t\tfor i := 0; i < block.NumMatches && matchIndex < numMatches; i++ {\n\t\t\tmatches[matchIndex].Time = block.StartTime.Add(time.Duration(i*block.MatchSpacingSec) * time.Second)\n\t\t\tmatchIndex++\n\t\t}\n\t}\n\n\treturn matches, nil\n}\n\n// Returns the total number of matches that can be run within the given schedule blocks.\nfunc countMatches(scheduleBlocks []model.ScheduleBlock) int {\n\tnumMatches := 0\n\tfor _, block := range scheduleBlocks {\n\t\tnumMatches += block.NumMatches\n\t}\n\treturn numMatches\n}\n"
  },
  {
    "path": "tournament/schedule_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage tournament\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"math/rand\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestMain(m *testing.M) {\n\tos.Exit(m.Run())\n}\n\nfunc TestNonExistentSchedule(t *testing.T) {\n\tteams := make([]model.Team, 5)\n\tscheduleBlocks := []model.ScheduleBlock{{0, model.Test, time.Unix(0, 0).UTC(), 2, 60}}\n\t_, err := BuildRandomSchedule(teams, scheduleBlocks, model.Test)\n\texpectedErr := \"No schedule template exists for 5 teams and 2 matches\"\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, expectedErr, err.Error())\n\t}\n}\n\nfunc TestMalformedSchedule(t *testing.T) {\n\tfilename := fmt.Sprintf(\"%s/5_1.csv\", filepath.Join(model.BaseDir, schedulesDir))\n\tscheduleFile, _ := os.Create(filename)\n\tdefer os.Remove(filename)\n\tscheduleFile.WriteString(\"1,0,2,0,3,0,4,0,5,0,6,0\\n6,0,5,0,4,0,3,0,2,0,1,0\\n\")\n\tscheduleFile.Close()\n\tteams := make([]model.Team, 5)\n\tscheduleBlocks := []model.ScheduleBlock{{0, model.Test, time.Unix(0, 0).UTC(), 1, 60}}\n\t_, err := BuildRandomSchedule(teams, scheduleBlocks, model.Test)\n\texpectedErr := \"Schedule file contains 2 matches, expected 1\"\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, expectedErr, err.Error())\n\t}\n\n\tos.Remove(filename)\n\tscheduleFile, _ = os.Create(filename)\n\tscheduleFile.WriteString(\"1,0,asdf,0,3,0,4,0,5,0,6,0\\n\")\n\tscheduleFile.Close()\n\t_, err = BuildRandomSchedule(teams, scheduleBlocks, model.Test)\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"strconv.Atoi\")\n\t}\n}\n\nfunc TestScheduleTeams(t *testing.T) {\n\trand.Seed(0)\n\n\tnumTeams := 18\n\tteams := make([]model.Team, numTeams)\n\tfor i := 0; i < numTeams; i++ {\n\t\tteams[i].Id = i + 101\n\t}\n\tscheduleBlocks := []model.ScheduleBlock{{0, model.Practice, time.Unix(0, 0).UTC(), 6, 60}}\n\tmatches, err := BuildRandomSchedule(teams, scheduleBlocks, model.Practice)\n\tassert.Nil(t, err)\n\tassertMatch(t, matches[0], model.Practice, 1, 0, \"P1\", \"Practice 1\", \"p\", 115, 111, 108, 109, 116, 117)\n\tassertMatch(t, matches[1], model.Practice, 2, 60, \"P2\", \"Practice 2\", \"p\", 114, 112, 103, 101, 104, 118)\n\tassertMatch(t, matches[2], model.Practice, 3, 120, \"P3\", \"Practice 3\", \"p\", 110, 107, 105, 106, 113, 102)\n\tassertMatch(t, matches[3], model.Practice, 4, 180, \"P4\", \"Practice 4\", \"p\", 112, 108, 109, 101, 111, 103)\n\tassertMatch(t, matches[4], model.Practice, 5, 240, \"P5\", \"Practice 5\", \"p\", 113, 117, 115, 110, 114, 102)\n\tassertMatch(t, matches[5], model.Practice, 6, 300, \"P6\", \"Practice 6\", \"p\", 118, 105, 106, 107, 104, 116)\n\n\t// Check with excess room for matches in the schedule.\n\tscheduleBlocks = []model.ScheduleBlock{{0, model.Practice, time.Unix(0, 0).UTC(), 7, 60}}\n\tmatches, err = BuildRandomSchedule(teams, scheduleBlocks, model.Practice)\n\tassert.Nil(t, err)\n\n\t// Check with qualification matches.\n\trand.Seed(0)\n\tscheduleBlocks = []model.ScheduleBlock{{0, model.Qualification, time.Unix(0, 0).UTC(), 6, 60}}\n\tmatches, err = BuildRandomSchedule(teams, scheduleBlocks, model.Qualification)\n\tassert.Nil(t, err)\n\tassertMatch(t, matches[0], model.Qualification, 1, 0, \"Q1\", \"Qualification 1\", \"qm\", 115, 111, 108, 109, 116, 117)\n\tassertMatch(t, matches[1], model.Qualification, 2, 60, \"Q2\", \"Qualification 2\", \"qm\", 114, 112, 103, 101, 104, 118)\n\tassertMatch(t, matches[2], model.Qualification, 3, 120, \"Q3\", \"Qualification 3\", \"qm\", 110, 107, 105, 106, 113, 102)\n\tassertMatch(t, matches[3], model.Qualification, 4, 180, \"Q4\", \"Qualification 4\", \"qm\", 112, 108, 109, 101, 111, 103)\n\tassertMatch(t, matches[4], model.Qualification, 5, 240, \"Q5\", \"Qualification 5\", \"qm\", 113, 117, 115, 110, 114, 102)\n\tassertMatch(t, matches[5], model.Qualification, 6, 300, \"Q6\", \"Qualification 6\", \"qm\", 118, 105, 106, 107, 104, 116)\n}\n\nfunc TestScheduleTiming(t *testing.T) {\n\tteams := make([]model.Team, 18)\n\tscheduleBlocks := []model.ScheduleBlock{\n\t\t{0, model.Qualification, time.Unix(100, 0).UTC(), 10, 75},\n\t\t{0, model.Qualification, time.Unix(20000, 0).UTC(), 5, 1000},\n\t\t{0, model.Qualification, time.Unix(100000, 0).UTC(), 15, 29},\n\t}\n\tmatches, err := BuildRandomSchedule(teams, scheduleBlocks, model.Qualification)\n\tassert.Nil(t, err)\n\tassert.Equal(t, time.Unix(100, 0).UTC(), matches[0].Time)\n\tassert.Equal(t, time.Unix(775, 0).UTC(), matches[9].Time)\n\tassert.Equal(t, time.Unix(20000, 0).UTC(), matches[10].Time)\n\tassert.Equal(t, time.Unix(24000, 0).UTC(), matches[14].Time)\n\tassert.Equal(t, time.Unix(100000, 0).UTC(), matches[15].Time)\n\tassert.Equal(t, time.Unix(100406, 0).UTC(), matches[29].Time)\n}\n\nfunc TestScheduleSurrogates(t *testing.T) {\n\trand.Seed(0)\n\n\tnumTeams := 38\n\tteams := make([]model.Team, numTeams)\n\tfor i := 0; i < numTeams; i++ {\n\t\tteams[i].Id = i + 101\n\t}\n\tscheduleBlocks := []model.ScheduleBlock{{0, model.Qualification, time.Unix(0, 0).UTC(), 64, 60}}\n\tmatches, _ := BuildRandomSchedule(teams, scheduleBlocks, model.Qualification)\n\tfor i, match := range matches {\n\t\tif i == 13 || i == 14 {\n\t\t\tif !match.Red1IsSurrogate || match.Red2IsSurrogate || match.Red3IsSurrogate ||\n\t\t\t\t!match.Blue1IsSurrogate || match.Blue2IsSurrogate || match.Blue3IsSurrogate {\n\t\t\t\tt.Errorf(\"Surrogates wrong for match %d\", i+1)\n\t\t\t}\n\t\t} else {\n\t\t\tif match.Red1IsSurrogate || match.Red2IsSurrogate || match.Red3IsSurrogate ||\n\t\t\t\tmatch.Blue1IsSurrogate || match.Blue2IsSurrogate || match.Blue3IsSurrogate {\n\t\t\t\tt.Errorf(\"Expected match %d to be free of surrogates\", i+1)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc assertMatch(\n\tt *testing.T,\n\tmatch model.Match,\n\tmatchType model.MatchType,\n\ttypeOrder int,\n\ttimeInSec int64,\n\tshortName, longName, tbaCompLevel string,\n\tred1, red2, red3, blue1, blue2, blue3 int,\n) {\n\tassert.Equal(t, matchType, match.Type)\n\tassert.Equal(t, typeOrder, match.TypeOrder)\n\tassert.Equal(t, time.Unix(timeInSec, 0).UTC(), match.Time)\n\tassert.Equal(t, shortName, match.ShortName)\n\tassert.Equal(t, longName, match.LongName)\n\tassert.Equal(t, \"\", match.NameDetail)\n\tassert.Equal(t, 0, match.PlayoffRedAlliance)\n\tassert.Equal(t, 0, match.PlayoffBlueAlliance)\n\tassert.Equal(t, red1, match.Red1)\n\tassert.Equal(t, red2, match.Red2)\n\tassert.Equal(t, red3, match.Red3)\n\tassert.Equal(t, blue1, match.Blue1)\n\tassert.Equal(t, blue2, match.Blue2)\n\tassert.Equal(t, blue3, match.Blue3)\n\tassert.Equal(t, tbaCompLevel, match.TbaMatchKey.CompLevel)\n\tassert.Equal(t, 0, match.TbaMatchKey.SetNumber)\n\tassert.Equal(t, typeOrder, match.TbaMatchKey.MatchNumber)\n}\n"
  },
  {
    "path": "tournament/test_helpers.go",
    "content": "// Copyright 2017 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Helper methods for use in tests in this package and others.\n\npackage tournament\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"testing\"\n)\n\nfunc CreateTestAlliances(database *model.Database, allianceCount int) {\n\tfor i := 1; i <= allianceCount; i++ {\n\t\talliance := model.Alliance{\n\t\t\tId:      i,\n\t\t\tTeamIds: []int{100*i + 1, 100*i + 2, 100*i + 3, 100*i + 4},\n\t\t\tLineup:  [3]int{100*i + 2, 100*i + 1, 100*i + 3},\n\t\t}\n\t\tdatabase.CreateAlliance(&alliance)\n\t}\n}\n\nfunc setupTestDb(t *testing.T) *model.Database {\n\treturn model.SetupTestDb(t)\n}\n"
  },
  {
    "path": "tunnel",
    "content": "echo \"If prompted for private key password, copy-paste output of ssh-agent then run ssh-add.\"\necho \"Otherwise, tunnel may not recover from network interruption.\"\necho \"Starting tunnel...\"\nautossh -M 9081 -N -R 9080:localhost:8080 cheesyarena@cheesyarena.com\n"
  },
  {
    "path": "tunnel_nginx_config",
    "content": "server {\n  listen 443;\n  server_name cheesyarena.com;\n\n  ssl on;\n  ssl_certificate /etc/letsencrypt/live/cheesyarena.com/fullchain.pem;\n  ssl_certificate_key /etc/letsencrypt/live/cheesyarena.com/privkey.pem;\n  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;\n  ssl_ciphers \"EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH\";\n  ssl_prefer_server_ciphers on;\n\n  location / {\n    return 301 https://$host/display;\n  }\n\n  location /static/ {\n    proxy_pass http://localhost:9080/static/;\n  }\n\n  location /api/ {\n    proxy_pass http://localhost:9080/api/;\n  }\n\n  location ~ ^(/setup)?/display.*/websocket$ {\n    proxy_set_header Host $host;\n    proxy_pass http://localhost:9080$request_uri;\n    proxy_http_version 1.1;\n    proxy_set_header Upgrade $http_upgrade;\n    proxy_set_header Connection \"upgrade\";\n    proxy_set_header X-Real-IP $remote_addr;\n  }\n\n  location ~ ^(/setup)?/display {\n    proxy_pass http://localhost:9080$request_uri;\n  }\n\n  location ~ /.well-known {\n    root /usr/share/nginx/html;\n  }\n}\n"
  },
  {
    "path": "web/alliance_selection.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for conducting the alliance selection process.\n\npackage web\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/tournament\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// Global var to hold configurable time limit for selections. A value of zero disables the timer.\nvar allianceSelectionTimeLimitSec = 45\n\n// Global var to hold the time limit that the current timer was started with\nvar currentAllianceSelectionTimeLimitSec = 0\n\n// The time limit for the break between rounds\nconst allianceSelectionBreakDurationSec = 120\n\n// Global var to hold a ticker used for the alliance selection timer.\nvar allianceSelectionTicker *time.Ticker\n\n// Shows the alliance selection page.\nfunc (web *Web) allianceSelectionGetHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tweb.renderAllianceSelection(w, r, \"\")\n}\n\n// Updates the cache with the latest input from the client.\nfunc (web *Web) allianceSelectionPostHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tif !web.canModifyAllianceSelection() {\n\t\tweb.renderAllianceSelection(w, r, \"Alliance selection has already been finalized.\")\n\t\treturn\n\t}\n\n\t// Reset picked state for each team in preparation for reconstructing it.\n\tfor i := range web.arena.AllianceSelectionRankedTeams {\n\t\tweb.arena.AllianceSelectionRankedTeams[i].Picked = false\n\t}\n\n\t// Iterate through all selections and update the alliances.\n\tfor i, alliance := range web.arena.AllianceSelectionAlliances {\n\t\tfor j := range alliance.TeamIds {\n\t\t\tteamString := r.PostFormValue(fmt.Sprintf(\"selection%d_%d\", i, j))\n\t\t\tif teamString == \"\" {\n\t\t\t\tweb.arena.AllianceSelectionAlliances[i].TeamIds[j] = 0\n\t\t\t} else {\n\t\t\t\tteamId, err := strconv.Atoi(teamString)\n\t\t\t\tif err != nil {\n\t\t\t\t\tweb.renderAllianceSelection(w, r, fmt.Sprintf(\"Invalid team number value '%s'.\", teamString))\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tfound := false\n\t\t\t\tfor k, team := range web.arena.AllianceSelectionRankedTeams {\n\t\t\t\t\tif team.TeamId == teamId {\n\t\t\t\t\t\tif team.Picked {\n\t\t\t\t\t\t\tweb.renderAllianceSelection(\n\t\t\t\t\t\t\t\tw, r, fmt.Sprintf(\"Team %d is already part of an alliance.\", teamId),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfound = true\n\t\t\t\t\t\tweb.arena.AllianceSelectionRankedTeams[k].Picked = true\n\t\t\t\t\t\tweb.arena.AllianceSelectionAlliances[i].TeamIds[j] = teamId\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif !found {\n\t\t\t\t\tweb.renderAllianceSelection(\n\t\t\t\t\t\tw,\n\t\t\t\t\t\tr,\n\t\t\t\t\t\tfmt.Sprintf(\n\t\t\t\t\t\t\t\"Team %d has not played any matches at this event and is ineligible for selection.\", teamId,\n\t\t\t\t\t\t),\n\t\t\t\t\t)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tweb.arena.AllianceSelectionNotifier.Notify()\n\thttp.Redirect(w, r, \"/alliance_selection\", 303)\n}\n\n// Sets up the empty alliances and populates the ranked team list.\nfunc (web *Web) allianceSelectionStartHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tif len(web.arena.AllianceSelectionAlliances) != 0 {\n\t\tweb.renderAllianceSelection(w, r, \"Can't start alliance selection when it is already in progress.\")\n\t\treturn\n\t}\n\tif !web.canModifyAllianceSelection() {\n\t\tweb.renderAllianceSelection(w, r, \"Alliance selection has already been finalized.\")\n\t\treturn\n\t}\n\n\t// Create a blank alliance set matching the event configuration.\n\tweb.arena.AllianceSelectionAlliances = make([]model.Alliance, web.arena.EventSettings.NumPlayoffAlliances)\n\tteamsPerAlliance := 3\n\tif web.arena.EventSettings.SelectionRound3Order != \"\" {\n\t\tteamsPerAlliance = 4\n\t}\n\tfor i := 0; i < web.arena.EventSettings.NumPlayoffAlliances; i++ {\n\t\tweb.arena.AllianceSelectionAlliances[i].Id = i + 1\n\t\tweb.arena.AllianceSelectionAlliances[i].TeamIds = make([]int, teamsPerAlliance)\n\t}\n\n\t// Populate the ranked list of teams.\n\trankings, err := web.arena.Database.GetAllRankings()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tweb.arena.AllianceSelectionRankedTeams = make([]model.AllianceSelectionRankedTeam, len(rankings))\n\tfor i, ranking := range rankings {\n\t\tweb.arena.AllianceSelectionRankedTeams[i] = model.AllianceSelectionRankedTeam{\n\t\t\tRank:   i + 1,\n\t\t\tTeamId: ranking.TeamId,\n\t\t\tPicked: false,\n\t\t}\n\t}\n\n\tweb.arena.AllianceSelectionNotifier.Notify()\n\thttp.Redirect(w, r, \"/alliance_selection\", 303)\n}\n\n// Resets the alliance selection process back to the starting point.\nfunc (web *Web) allianceSelectionResetHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tif !web.canResetAllianceSelection() {\n\t\tweb.renderAllianceSelection(w, r, \"Cannot reset alliance selection; playoff matches have already started.\")\n\t\treturn\n\t}\n\n\t// Delete any playoff matches that were already created (but not played since they would fail the above check).\n\terr := web.deleteMatchDataForType(model.Playoff)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Delete the saved alliances.\n\tif err = web.arena.Database.TruncateAlliances(); err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tweb.arena.AllianceSelectionAlliances = []model.Alliance{}\n\tweb.arena.AllianceSelectionRankedTeams = []model.AllianceSelectionRankedTeam{}\n\tweb.arena.AllianceSelectionNotifier.Notify()\n\thttp.Redirect(w, r, \"/alliance_selection\", 303)\n}\n\n// Saves the selected alliances to the database and generates the first round of playoff matches.\nfunc (web *Web) allianceSelectionFinalizeHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tif !web.canModifyAllianceSelection() {\n\t\tweb.renderAllianceSelection(w, r, \"Alliance selection has already been finalized.\")\n\t\treturn\n\t}\n\n\tlocation, _ := time.LoadLocation(\"Local\")\n\tstartTime, err := time.ParseInLocation(\"2006-01-02 03:04:05 PM\", r.PostFormValue(\"startTime\"), location)\n\tif err != nil {\n\t\tweb.renderAllianceSelection(w, r, \"Must specify a valid start time for the playoff rounds.\")\n\t\treturn\n\t}\n\n\t// Check that all spots are filled.\n\tfor _, alliance := range web.arena.AllianceSelectionAlliances {\n\t\tfor _, allianceTeamId := range alliance.TeamIds {\n\t\t\tif allianceTeamId <= 0 {\n\t\t\t\tweb.renderAllianceSelection(w, r, \"Can't finalize alliance selection until all spots have been filled.\")\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\t// Save alliances to the database.\n\tfor _, alliance := range web.arena.AllianceSelectionAlliances {\n\t\t// Populate the initial lineup according to the tournament rules (alliance captain in the middle, first pick on\n\t\t// the left, second pick on the right).\n\t\talliance.Lineup[0] = alliance.TeamIds[1]\n\t\talliance.Lineup[1] = alliance.TeamIds[0]\n\t\talliance.Lineup[2] = alliance.TeamIds[2]\n\n\t\terr := web.arena.Database.CreateAlliance(&alliance)\n\t\tif err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t}\n\n\t// Generate the first round of playoff matches.\n\tif err = web.arena.CreatePlayoffMatches(startTime); err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Reset yellow cards.\n\terr = tournament.CalculateTeamCards(web.arena.Database, model.Playoff)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Back up the database.\n\terr = web.arena.Database.Backup(web.arena.EventSettings.Name, \"post_alliance_selection\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tif web.arena.EventSettings.TbaPublishingEnabled {\n\t\t// Publish alliances and schedule to The Blue Alliance.\n\t\terr = web.arena.TbaClient.PublishAlliances(web.arena.Database)\n\t\tif err != nil {\n\t\t\tweb.renderAllianceSelection(w, r, fmt.Sprintf(\"Failed to publish alliances: %s\", err.Error()))\n\t\t\treturn\n\t\t}\n\t\terr = web.arena.TbaClient.PublishMatches(web.arena.Database)\n\t\tif err != nil {\n\t\t\tweb.renderAllianceSelection(w, r, fmt.Sprintf(\"Failed to publish matches: %s\", err.Error()))\n\t\t\treturn\n\t\t}\n\t}\n\n\t// Signal displays of the bracket to update themselves.\n\tweb.arena.ScorePostedNotifier.Notify()\n\n\t// Load the first playoff match.\n\tmatches, err := web.arena.Database.GetMatchesByType(model.Playoff, false)\n\tif err == nil && len(matches) > 0 {\n\t\t_ = web.arena.LoadMatch(&matches[0])\n\t}\n\n\thttp.Redirect(w, r, \"/match_play\", 303)\n}\n\n// The websocket endpoint for the alliance selection client to send control commands and receive status updates.\nfunc (web *Web) allianceSelectionWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client, in a separate goroutine.\n\tgo ws.HandleNotifiers(web.arena.AllianceSelectionNotifier, web.arena.AudienceDisplayModeNotifier)\n\n\t// Loop, waiting for commands and responding to them, until the client closes the connection.\n\tfor {\n\t\tmessageType, data, err := ws.Read()\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\t// Client has closed the connection; nothing to do here.\n\t\t\t\treturn\n\t\t\t}\n\t\t\tlog.Println(err)\n\t\t\treturn\n\t\t}\n\n\t\tswitch messageType {\n\t\tcase \"setTimer\":\n\t\t\tif timeLimitSec, ok := data.(float64); ok {\n\t\t\t\tallianceSelectionTimeLimitSec = int(timeLimitSec)\n\t\t\t} else {\n\t\t\t\tws.WriteError(\"Invalid time limit value.\")\n\t\t\t}\n\t\tcase \"startTimer\":\n\t\t\tif allianceSelectionTicker != nil {\n\t\t\t\tallianceSelectionTicker.Stop()\n\t\t\t}\n\t\t\tif web.arena.AllianceSelectionTimeRemainingSec == 0 {\n\t\t\t\tweb.arena.AllianceSelectionTimeRemainingSec = allianceSelectionTimeLimitSec\n\t\t\t\tcurrentAllianceSelectionTimeLimitSec = allianceSelectionTimeLimitSec\n\t\t\t}\n\t\t\tweb.arena.AllianceSelectionShowTimer = true\n\t\t\tweb.arena.AllianceSelectionNotifier.Notify()\n\t\t\tallianceSelectionTicker = time.NewTicker(time.Second)\n\t\t\tgo func() {\n\t\t\t\tfor range allianceSelectionTicker.C {\n\t\t\t\t\tweb.arena.AllianceSelectionTimeRemainingSec--\n\t\t\t\t\tweb.arena.AllianceSelectionNotifier.Notify()\n\n\t\t\t\t\tif web.arena.AllianceSelectionTimeRemainingSec <= 0 {\n\t\t\t\t\t\tallianceSelectionTicker.Stop()\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only play sounds if we are not in a break between rounds\n\t\t\t\t\tif currentAllianceSelectionTimeLimitSec != allianceSelectionBreakDurationSec {\n\t\t\t\t\t\tif web.arena.AllianceSelectionTimeRemainingSec == 5 {\n\t\t\t\t\t\t\tweb.arena.PlaySound(\"pick_clock\")\n\t\t\t\t\t\t} else if web.arena.AllianceSelectionTimeRemainingSec == 0 {\n\t\t\t\t\t\t\tweb.arena.PlaySound(\"pick_clock_expired\")\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}()\n\t\tcase \"stopTimer\":\n\t\t\tif allianceSelectionTicker != nil {\n\t\t\t\tallianceSelectionTicker.Stop()\n\t\t\t}\n\t\t\tweb.arena.AllianceSelectionNotifier.Notify()\n\t\tcase \"restartTimer\":\n\t\t\tweb.arena.AllianceSelectionShowTimer = true\n\t\t\tweb.arena.AllianceSelectionTimeRemainingSec = allianceSelectionTimeLimitSec\n\t\t\tcurrentAllianceSelectionTimeLimitSec = allianceSelectionTimeLimitSec\n\t\t\tweb.arena.AllianceSelectionNotifier.Notify()\n\t\tcase \"hideTimer\":\n\t\t\tif allianceSelectionTicker != nil {\n\t\t\t\tallianceSelectionTicker.Stop()\n\t\t\t}\n\t\t\tweb.arena.AllianceSelectionShowTimer = false\n\t\t\tweb.arena.AllianceSelectionTimeRemainingSec = 0\n\t\t\tweb.arena.AllianceSelectionNotifier.Notify()\n\t\tcase \"setAudienceDisplay\":\n\t\t\tmode, ok := data.(string)\n\t\t\tif !ok {\n\t\t\t\tws.WriteError(fmt.Sprintf(\"Failed to parse '%s' message.\", messageType))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.arena.SetAudienceDisplayMode(mode)\n\t\tdefault:\n\t\t\tws.WriteError(fmt.Sprintf(\"Invalid message type '%s'.\", messageType))\n\t\t}\n\t}\n}\n\nfunc (web *Web) renderAllianceSelection(w http.ResponseWriter, r *http.Request, errorMessage string) {\n\tif len(web.arena.AllianceSelectionAlliances) == 0 {\n\t\t// The application may have been restarted since the alliance selection was conducted; try reloading the\n\t\t// alliances from the DB.\n\t\tvar err error\n\t\tweb.arena.AllianceSelectionAlliances, err = web.arena.Database.GetAllAlliances()\n\t\tif err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t}\n\n\ttemplate, err := web.parseFiles(\n\t\t\"templates/alliance_selection.html\", \"templates/audience_display_radio_buttons.html\", \"templates/base.html\",\n\t)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tnextRow, nextCol := web.determineNextCell()\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tAlliances    []model.Alliance\n\t\tRankedTeams  []model.AllianceSelectionRankedTeam\n\t\tNextRow      int\n\t\tNextCol      int\n\t\tErrorMessage string\n\t\tTimeLimitSec int\n\t}{\n\t\tweb.arena.EventSettings,\n\t\tweb.arena.AllianceSelectionAlliances,\n\t\tweb.arena.AllianceSelectionRankedTeams,\n\t\tnextRow,\n\t\tnextCol,\n\t\terrorMessage,\n\t\tallianceSelectionTimeLimitSec,\n\t}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Returns true if it is safe to change the alliance selection (i.e. no playoff matches exist yet).\nfunc (web *Web) canModifyAllianceSelection() bool {\n\tmatches, err := web.arena.Database.GetMatchesByType(model.Playoff, true)\n\tif err != nil || len(matches) > 0 {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Returns true if it is safe to reset the alliance selection (i.e. no playoff matches have been played yet).\nfunc (web *Web) canResetAllianceSelection() bool {\n\tmatches, err := web.arena.Database.GetMatchesByType(model.Playoff, true)\n\tif err != nil {\n\t\treturn false\n\t}\n\tfor _, match := range matches {\n\t\tif match.IsComplete() {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Returns the row and column of the next alliance selection spot that should have keyboard autofocus.\nfunc (web *Web) determineNextCell() (int, int) {\n\t// Check the first two columns.\n\tfor i, alliance := range web.arena.AllianceSelectionAlliances {\n\t\tif alliance.TeamIds[0] == 0 {\n\t\t\treturn i, 0\n\t\t}\n\t\tif alliance.TeamIds[1] == 0 {\n\t\t\treturn i, 1\n\t\t}\n\t}\n\n\t// Check the third column.\n\tif web.arena.EventSettings.SelectionRound2Order == \"F\" {\n\t\tfor i, alliance := range web.arena.AllianceSelectionAlliances {\n\t\t\tif alliance.TeamIds[2] == 0 {\n\t\t\t\treturn i, 2\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor i := len(web.arena.AllianceSelectionAlliances) - 1; i >= 0; i-- {\n\t\t\tif web.arena.AllianceSelectionAlliances[i].TeamIds[2] == 0 {\n\t\t\t\treturn i, 2\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check the fourth column.\n\tif web.arena.EventSettings.SelectionRound3Order == \"F\" {\n\t\tfor i, alliance := range web.arena.AllianceSelectionAlliances {\n\t\t\tif alliance.TeamIds[3] == 0 {\n\t\t\t\treturn i, 3\n\t\t\t}\n\t\t}\n\t} else if web.arena.EventSettings.SelectionRound3Order == \"L\" {\n\t\tfor i := len(web.arena.AllianceSelectionAlliances) - 1; i >= 0; i-- {\n\t\t\tif web.arena.AllianceSelectionAlliances[i].TeamIds[3] == 0 {\n\t\t\t\treturn i, 3\n\t\t\t}\n\t\t}\n\t}\n\treturn -1, -1\n}\n"
  },
  {
    "path": "web/alliance_selection_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"testing\"\n\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/mitchellh/mapstructure\"\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestAllianceSelection(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tweb.arena.EventSettings.PlayoffType = model.SingleEliminationPlayoff\n\tweb.arena.EventSettings.NumPlayoffAlliances = 15\n\tweb.arena.EventSettings.SelectionRound3Order = \"L\"\n\tfor i := 1; i <= 10; i++ {\n\t\tweb.arena.Database.CreateRanking(&game.Ranking{TeamId: 100 + i, Rank: i})\n\t}\n\n\t// Check that there are no alliance placeholders to start.\n\trecorder := web.getHttpResponse(\"/alliance_selection\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.NotContains(t, recorder.Body.String(), \"Captain\")\n\tassert.NotContains(t, recorder.Body.String(), \">110<\")\n\n\t// Start the alliance selection.\n\trecorder = web.postHttpResponse(\"/alliance_selection/start\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\tif assert.Equal(t, 15, len(web.arena.AllianceSelectionAlliances)) {\n\t\tassert.Equal(t, 4, len(web.arena.AllianceSelectionAlliances[0].TeamIds))\n\t}\n\trecorder = web.getHttpResponse(\"/alliance_selection\")\n\tassert.Contains(t, recorder.Body.String(), \"Captain\")\n\tassert.Contains(t, recorder.Body.String(), \">110<\")\n\n\t// Reset the alliance selection.\n\trecorder = web.postHttpResponse(\"/alliance_selection/reset\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\tassert.NotContains(t, recorder.Body.String(), \"Captain\")\n\tassert.NotContains(t, recorder.Body.String(), \">110<\")\n\tweb.arena.EventSettings.NumPlayoffAlliances = 3\n\tweb.arena.EventSettings.SelectionRound3Order = \"\"\n\trecorder = web.postHttpResponse(\"/alliance_selection/start\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\tif assert.Equal(t, 3, len(web.arena.AllianceSelectionAlliances)) {\n\t\tassert.Equal(t, 3, len(web.arena.AllianceSelectionAlliances[0].TeamIds))\n\t}\n\n\t// Update one team at a time.\n\trecorder = web.postHttpResponse(\"/alliance_selection\", \"selection0_0=110\")\n\tassert.Equal(t, 303, recorder.Code)\n\tassert.Equal(t, 110, web.arena.AllianceSelectionAlliances[0].TeamIds[0])\n\trecorder = web.getHttpResponse(\"/alliance_selection\")\n\tassert.Contains(t, recorder.Body.String(), \"\\\"110\\\"\")\n\tassert.NotContains(t, recorder.Body.String(), \">110<\")\n\n\t// Update multiple teams at a time.\n\trecorder = web.postHttpResponse(\"/alliance_selection\", \"selection0_0=101&selection0_1=102&selection1_0=103\")\n\tassert.Equal(t, 303, recorder.Code)\n\tassert.Equal(t, 101, web.arena.AllianceSelectionAlliances[0].TeamIds[0])\n\tassert.Equal(t, 102, web.arena.AllianceSelectionAlliances[0].TeamIds[1])\n\tassert.Equal(t, 103, web.arena.AllianceSelectionAlliances[1].TeamIds[0])\n\trecorder = web.getHttpResponse(\"/alliance_selection\")\n\tassert.Contains(t, recorder.Body.String(), \">110<\")\n\n\t// Update remainder of teams.\n\trecorder = web.postHttpResponse(\n\t\t\"/alliance_selection\",\n\t\t\"selection0_0=101&selection0_1=102&selection0_2=103&selection1_0=104&selection1_1=105&selection1_2=106&\"+\n\t\t\t\"selection2_0=107&selection2_1=108&selection2_2=109\",\n\t)\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/alliance_selection\")\n\tassert.Contains(t, recorder.Body.String(), \">110<\")\n\n\t// Finalize alliance selection.\n\tweb.arena.Database.CreateTeam(&model.Team{Id: 254, YellowCard: true})\n\trecorder = web.postHttpResponse(\"/alliance_selection/finalize\", \"startTime=2014-01-01 01:00:00 PM\")\n\tassert.Equal(t, 303, recorder.Code)\n\talliances, err := web.arena.Database.GetAllAlliances()\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 3, len(alliances)) {\n\t\tassert.Equal(t, 101, alliances[0].TeamIds[0])\n\t\tassert.Equal(t, 105, alliances[1].TeamIds[1])\n\t\tassert.Equal(t, 109, alliances[2].TeamIds[2])\n\n\t\t// Check that the initial lineup is populated correctly.\n\t\tassert.Equal(t, 102, alliances[0].Lineup[0])\n\t\tassert.Equal(t, 101, alliances[0].Lineup[1])\n\t\tassert.Equal(t, 103, alliances[0].Lineup[2])\n\t}\n\tmatches, err := web.arena.Database.GetMatchesByType(model.Playoff, false)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 16, len(matches))\n\tteam, _ := web.arena.Database.GetTeamById(254)\n\tassert.False(t, team.YellowCard)\n}\n\nfunc TestAllianceSelectionErrors(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tweb.arena.EventSettings.PlayoffType = model.SingleEliminationPlayoff\n\tweb.arena.EventSettings.NumPlayoffAlliances = 2\n\tfor i := 1; i <= 6; i++ {\n\t\tweb.arena.Database.CreateRanking(&game.Ranking{TeamId: 100 + i, Rank: i})\n\t}\n\n\t// Start an alliance selection that is already underway.\n\trecorder := web.postHttpResponse(\"/alliance_selection/start\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.postHttpResponse(\"/alliance_selection/start\", \"\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"already in progress\")\n\n\t// Select invalid teams.\n\trecorder = web.postHttpResponse(\"/alliance_selection\", \"selection0_0=asdf\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Invalid team number\")\n\trecorder = web.postHttpResponse(\"/alliance_selection\", \"selection0_0=100\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"ineligible for selection\")\n\trecorder = web.postHttpResponse(\"/alliance_selection\", \"selection0_0=101&selection1_1=101\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"already part of an alliance\")\n\n\t// Finalize early and without required parameters.\n\trecorder = web.postHttpResponse(\n\t\t\"/alliance_selection/finalize\", \"startTime=2014-01-01 01:00:00 PM&matchSpacingSec=360\",\n\t)\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"until all spots have been filled\")\n\trecorder = web.postHttpResponse(\n\t\t\"/alliance_selection\",\n\t\t\"selection0_0=101&selection0_1=102&selection0_2=103&selection1_0=104&selection1_1=105&selection1_2=106\",\n\t)\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.postHttpResponse(\"/alliance_selection/finalize\", \"startTime=asdf\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"valid start time\")\n\n\t// Finalize for real and check that TBA publishing is triggered.\n\tweb.arena.TbaClient.BaseUrl = \"fakeurl\"\n\tweb.arena.EventSettings.TbaPublishingEnabled = true\n\trecorder = web.postHttpResponse(\"/alliance_selection/finalize\", \"startTime=2014-01-01 01:00:00 PM\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Failed to publish alliances\")\n\n\t// Do other things after finalization.\n\trecorder = web.postHttpResponse(\"/alliance_selection/finalize\", \"startTime=2014-01-01 01:00:00 PM\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"already been finalized\")\n\trecorder = web.postHttpResponse(\"/alliance_selection\", \"selection0_0=asdf\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"already been finalized\")\n\tweb.arena.AllianceSelectionAlliances = []model.Alliance{}\n\tweb.arena.AllianceSelectionRankedTeams = []model.AllianceSelectionRankedTeam{}\n\trecorder = web.postHttpResponse(\"/alliance_selection/start\", \"\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"already been finalized\")\n}\n\nfunc TestAllianceSelectionReset(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tweb.arena.EventSettings.PlayoffType = model.SingleEliminationPlayoff\n\tweb.arena.EventSettings.NumPlayoffAlliances = 2\n\tfor i := 1; i <= 6; i++ {\n\t\tweb.arena.Database.CreateRanking(&game.Ranking{TeamId: 100 + i, Rank: i})\n\t}\n\n\t// Start, populate, and finalize the alliance selection.\n\trecorder := web.postHttpResponse(\"/alliance_selection/start\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.postHttpResponse(\n\t\t\"/alliance_selection\",\n\t\t\"selection0_0=101&selection0_1=102&selection0_2=103&selection1_0=104&selection1_1=105&selection1_2=106\",\n\t)\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.postHttpResponse(\"/alliance_selection/finalize\", \"startTime=2014-01-01 01:00:00 PM\")\n\tassert.Equal(t, 303, recorder.Code)\n\talliances, _ := web.arena.Database.GetAllAlliances()\n\tassert.NotEmpty(t, alliances)\n\tmatches, _ := web.arena.Database.GetMatchesByType(model.Playoff, true)\n\tassert.NotEmpty(t, matches)\n\n\t// Reset the alliance selection before any matches have been played.\n\trecorder = web.postHttpResponse(\"/alliance_selection/reset\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\talliances, _ = web.arena.Database.GetAllAlliances()\n\tassert.Empty(t, alliances)\n\tmatches, _ = web.arena.Database.GetMatchesByType(model.Playoff, true)\n\tassert.Empty(t, matches)\n\n\t// Start, populate, and finalize the alliance selection again.\n\trecorder = web.postHttpResponse(\"/alliance_selection/start\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.postHttpResponse(\n\t\t\"/alliance_selection\",\n\t\t\"selection0_0=101&selection0_1=102&selection0_2=103&selection1_0=104&selection1_1=105&selection1_2=106\",\n\t)\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.postHttpResponse(\"/alliance_selection/finalize\", \"startTime=2014-01-01 01:00:00 PM\")\n\tassert.Equal(t, 303, recorder.Code)\n\talliances, _ = web.arena.Database.GetAllAlliances()\n\tassert.NotEmpty(t, alliances)\n\tmatches, _ = web.arena.Database.GetMatchesByType(model.Playoff, true)\n\tassert.NotEmpty(t, matches)\n\n\t// Mark a match as played and verify that the alliance selection can no longer be reset.\n\tmatches[0].Status = game.RedWonMatch\n\tassert.Nil(t, web.arena.Database.UpdateMatch(&matches[0]))\n\trecorder = web.postHttpResponse(\"/alliance_selection/reset\", \"\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"matches have already started\")\n\talliances, _ = web.arena.Database.GetAllAlliances()\n\tassert.NotEmpty(t, alliances)\n\tmatches, _ = web.arena.Database.GetMatchesByType(model.Playoff, true)\n\tassert.NotEmpty(t, matches)\n}\n\nfunc TestAllianceSelectionAutofocus(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tweb.arena.EventSettings.PlayoffType = model.SingleEliminationPlayoff\n\tweb.arena.EventSettings.NumPlayoffAlliances = 2\n\n\t// Straight draft.\n\tweb.arena.EventSettings.SelectionRound2Order = \"F\"\n\tweb.arena.EventSettings.SelectionRound3Order = \"F\"\n\trecorder := web.postHttpResponse(\"/alliance_selection/start\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\ti, j := web.determineNextCell()\n\tassert.Equal(t, 0, i)\n\tassert.Equal(t, 0, j)\n\tweb.arena.AllianceSelectionAlliances[0].TeamIds[0] = 1\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, 0, i)\n\tassert.Equal(t, 1, j)\n\tweb.arena.AllianceSelectionAlliances[0].TeamIds[1] = 2\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, 1, i)\n\tassert.Equal(t, 0, j)\n\tweb.arena.AllianceSelectionAlliances[1].TeamIds[0] = 3\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, 1, i)\n\tassert.Equal(t, 1, j)\n\tweb.arena.AllianceSelectionAlliances[1].TeamIds[1] = 4\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, 0, i)\n\tassert.Equal(t, 2, j)\n\tweb.arena.AllianceSelectionAlliances[0].TeamIds[2] = 5\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, 1, i)\n\tassert.Equal(t, 2, j)\n\tweb.arena.AllianceSelectionAlliances[1].TeamIds[2] = 6\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, 0, i)\n\tassert.Equal(t, 3, j)\n\tweb.arena.AllianceSelectionAlliances[0].TeamIds[3] = 7\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, 1, i)\n\tassert.Equal(t, 3, j)\n\tweb.arena.AllianceSelectionAlliances[1].TeamIds[3] = 8\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, -1, i)\n\tassert.Equal(t, -1, j)\n\n\t// Double-serpentine draft.\n\tweb.arena.EventSettings.SelectionRound2Order = \"L\"\n\tweb.arena.EventSettings.SelectionRound3Order = \"L\"\n\trecorder = web.postHttpResponse(\"/alliance_selection/reset\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.postHttpResponse(\"/alliance_selection/start\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, 0, i)\n\tassert.Equal(t, 0, j)\n\tweb.arena.AllianceSelectionAlliances[0].TeamIds[0] = 1\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, 0, i)\n\tassert.Equal(t, 1, j)\n\tweb.arena.AllianceSelectionAlliances[0].TeamIds[1] = 2\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, 1, i)\n\tassert.Equal(t, 0, j)\n\tweb.arena.AllianceSelectionAlliances[1].TeamIds[0] = 3\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, 1, i)\n\tassert.Equal(t, 1, j)\n\tweb.arena.AllianceSelectionAlliances[1].TeamIds[1] = 4\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, 1, i)\n\tassert.Equal(t, 2, j)\n\tweb.arena.AllianceSelectionAlliances[1].TeamIds[2] = 5\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, 0, i)\n\tassert.Equal(t, 2, j)\n\tweb.arena.AllianceSelectionAlliances[0].TeamIds[2] = 6\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, 1, i)\n\tassert.Equal(t, 3, j)\n\tweb.arena.AllianceSelectionAlliances[1].TeamIds[3] = 7\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, 0, i)\n\tassert.Equal(t, 3, j)\n\tweb.arena.AllianceSelectionAlliances[0].TeamIds[3] = 8\n\ti, j = web.determineNextCell()\n\tassert.Equal(t, -1, i)\n\tassert.Equal(t, -1, j)\n}\n\nfunc TestAllianceSelectionWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/alliance_selection/websocket\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"allianceSelection\")\n\treadWebsocketType(t, ws, \"audienceDisplayMode\")\n\n\t// Test starting and stopping the timer.\n\tallianceSelectionMessage := struct {\n\t\tShowTimer bool\n\t}{}\n\tws.Write(\"startTimer\", nil)\n\tassert.Nil(t, mapstructure.Decode(readWebsocketType(t, ws, \"allianceSelection\"), &allianceSelectionMessage))\n\tassert.Equal(t, true, allianceSelectionMessage.ShowTimer)\n\tws.Write(\"stopTimer\", nil)\n\tassert.Nil(t, mapstructure.Decode(readWebsocketType(t, ws, \"allianceSelection\"), &allianceSelectionMessage))\n\tassert.Equal(t, true, allianceSelectionMessage.ShowTimer)\n\tws.Write(\"hideTimer\", nil)\n\tassert.Nil(t, mapstructure.Decode(readWebsocketType(t, ws, \"allianceSelection\"), &allianceSelectionMessage))\n\tassert.Equal(t, false, allianceSelectionMessage.ShowTimer)\n\tws.Write(\"restartTimer\", nil)\n\tassert.Nil(t, mapstructure.Decode(readWebsocketType(t, ws, \"allianceSelection\"), &allianceSelectionMessage))\n\tassert.Equal(t, true, allianceSelectionMessage.ShowTimer)\n}\n"
  },
  {
    "path": "web/alliance_station_display.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web handlers for the alliance station display.\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"net/http\"\n)\n\n// Renders the team number and status display shown above each alliance station.\nfunc (web *Web) allianceStationDisplayHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.enforceDisplayConfiguration(w, r, map[string]string{\"station\": \"R1\"}) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/alliance_station_display.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tdata := struct {\n\t\t*model.EventSettings\n\t}{web.arena.EventSettings}\n\terr = template.ExecuteTemplate(w, \"alliance_station_display.html\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for the alliance station display client to receive status updates.\nfunc (web *Web) allianceStationDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tdisplay, err := web.registerDisplay(r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer web.arena.MarkDisplayDisconnected(display.DisplayConfiguration.Id)\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client.\n\tws.HandleNotifiers(\n\t\tdisplay.Notifier,\n\t\tweb.arena.MatchTimingNotifier,\n\t\tweb.arena.AllianceStationDisplayModeNotifier,\n\t\tweb.arena.ArenaStatusNotifier,\n\t\tweb.arena.MatchLoadNotifier,\n\t\tweb.arena.MatchTimeNotifier,\n\t\tweb.arena.RealtimeScoreNotifier,\n\t\tweb.arena.ReloadDisplaysNotifier,\n\t)\n}\n"
  },
  {
    "path": "web/alliance_station_display_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestAllianceStationDisplay(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/displays/alliance_station\")\n\tassert.Equal(t, 302, recorder.Code)\n\tassert.Contains(t, recorder.Header().Get(\"Location\"), \"displayId=100\")\n\tassert.Contains(t, recorder.Header().Get(\"Location\"), \"station=R1\")\n\n\trecorder = web.getHttpResponse(\"/displays/alliance_station?displayId=1&station=B1\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Alliance Station Display - Untitled Event - Cheesy Arena\")\n}\n\nfunc TestAllianceStationDisplayWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/displays/alliance_station/websocket?displayId=1\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"displayConfiguration\")\n\treadWebsocketType(t, ws, \"matchTiming\")\n\treadWebsocketType(t, ws, \"allianceStationDisplayMode\")\n\treadWebsocketType(t, ws, \"arenaStatus\")\n\treadWebsocketType(t, ws, \"matchLoad\")\n\treadWebsocketType(t, ws, \"matchTime\")\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\n\t// Change to a different screen.\n\tweb.arena.AllianceStationDisplayMode = \"logo\"\n\tweb.arena.AllianceStationDisplayModeNotifier.Notify()\n\treadWebsocketType(t, ws, \"allianceStationDisplayMode\")\n\n\t// Run through a match cycle.\n\tweb.arena.MatchLoadNotifier.Notify()\n\treadWebsocketType(t, ws, \"matchLoad\")\n\tweb.arena.AllianceStations[\"R1\"].Bypass = true\n\tweb.arena.AllianceStations[\"R2\"].Bypass = true\n\tweb.arena.AllianceStations[\"R3\"].Bypass = true\n\tweb.arena.AllianceStations[\"B1\"].Bypass = true\n\tweb.arena.AllianceStations[\"B2\"].Bypass = true\n\tweb.arena.AllianceStations[\"B3\"].Bypass = true\n\tweb.arena.StartMatch()\n\tweb.arena.Update()\n\tmessages := readWebsocketMultiple(t, ws, 3)\n\t_, ok := messages[\"matchTime\"]\n\tassert.True(t, ok)\n\tweb.arena.MatchStartTime = time.Now().Add(-time.Duration(game.MatchTiming.WarmupDurationSec) * time.Second)\n\tweb.arena.Update()\n\tmessages = readWebsocketMultiple(t, ws, 2)\n\t_, ok = messages[\"arenaStatus\"]\n\tassert.True(t, ok)\n\t_, ok = messages[\"matchTime\"]\n\tassert.True(t, ok)\n\tweb.arena.RealtimeScoreNotifier.Notify()\n\treadWebsocketType(t, ws, \"realtimeScore\")\n}\n"
  },
  {
    "path": "web/announcer_display.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web handlers for announcer display.\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"net/http\"\n)\n\n// Renders the announcer display which shows team info and scores for the current match.\nfunc (web *Web) announcerDisplayHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.enforceDisplayConfiguration(w, r, nil) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/announcer_display.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tdata := struct {\n\t\t*model.EventSettings\n\t}{web.arena.EventSettings}\n\terr = template.ExecuteTemplate(w, \"base_no_navbar\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Renders a partial template for when a new match is loaded.\nfunc (web *Web) announcerDisplayMatchLoadHandler(w http.ResponseWriter, r *http.Request) {\n\ttemplate, err := web.parseFiles(\"templates/announcer_display_match_load.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\terr = template.ExecuteTemplate(w, \"announcer_display_match_load\", web.arena.GenerateMatchLoadMessage())\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Renders a partial template for when a final score is posted.\nfunc (web *Web) announcerDisplayScorePostedHandler(w http.ResponseWriter, r *http.Request) {\n\ttemplate, err := web.parseFiles(\"templates/announcer_display_score_posted.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\terr = template.ExecuteTemplate(w, \"announcer_display_score_posted\", web.arena.GenerateScorePostedMessage())\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for the announcer display client to send control commands and receive status updates.\nfunc (web *Web) announcerDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tdisplay, err := web.registerDisplay(r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer web.arena.MarkDisplayDisconnected(display.DisplayConfiguration.Id)\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client.\n\tws.HandleNotifiers(\n\t\tdisplay.Notifier,\n\t\tweb.arena.MatchTimingNotifier,\n\t\tweb.arena.AudienceDisplayModeNotifier,\n\t\tweb.arena.EventStatusNotifier,\n\t\tweb.arena.MatchLoadNotifier,\n\t\tweb.arena.MatchTimeNotifier,\n\t\tweb.arena.RealtimeScoreNotifier,\n\t\tweb.arena.ScorePostedNotifier,\n\t\tweb.arena.ReloadDisplaysNotifier,\n\t)\n}\n"
  },
  {
    "path": "web/announcer_display_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestAnnouncerDisplay(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/displays/announcer?displayId=1\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Announcer Display - Untitled Event - Cheesy Arena\")\n}\n\nfunc TestAnnouncerDisplayMatchLoad(t *testing.T) {\n\tweb := setupTestWeb(t)\n\tmatch := model.Match{Type: model.Playoff, Red1: 254, Red2: 1114, Blue3: 2056}\n\tweb.arena.LoadMatch(&match)\n\n\trecorder := web.getHttpResponse(\"/displays/announcer/match_load\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"254\")\n\tassert.Contains(t, recorder.Body.String(), \"1114\")\n\tassert.Contains(t, recorder.Body.String(), \"2056\")\n}\n\nfunc TestAnnouncerDisplayScorePosted(t *testing.T) {\n\tweb := setupTestWeb(t)\n\tmatch := model.Match{Type: model.Qualification, LongName: \"Qual 17\"}\n\tweb.arena.SavedMatch = &match\n\n\trecorder := web.getHttpResponse(\"/displays/announcer/score_posted\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Qual 17\")\n}\n\nfunc TestAnnouncerDisplayWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/displays/announcer/websocket?displayId=1\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"displayConfiguration\")\n\treadWebsocketType(t, ws, \"matchTiming\")\n\treadWebsocketType(t, ws, \"audienceDisplayMode\")\n\treadWebsocketType(t, ws, \"eventStatus\")\n\treadWebsocketType(t, ws, \"matchLoad\")\n\treadWebsocketType(t, ws, \"matchTime\")\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\treadWebsocketType(t, ws, \"scorePosted\")\n\n\tweb.arena.MatchLoadNotifier.Notify()\n\treadWebsocketType(t, ws, \"matchLoad\")\n\tweb.arena.AllianceStations[\"R1\"].Bypass = true\n\tweb.arena.AllianceStations[\"R2\"].Bypass = true\n\tweb.arena.AllianceStations[\"R3\"].Bypass = true\n\tweb.arena.AllianceStations[\"B1\"].Bypass = true\n\tweb.arena.AllianceStations[\"B2\"].Bypass = true\n\tweb.arena.AllianceStations[\"B3\"].Bypass = true\n\tweb.arena.StartMatch()\n\tweb.arena.Update()\n\tmessages := readWebsocketMultiple(t, ws, 3)\n\t_, ok := messages[\"audienceDisplayMode\"]\n\tassert.True(t, ok)\n\t_, ok = messages[\"eventStatus\"]\n\tassert.True(t, ok)\n\t_, ok = messages[\"matchTime\"]\n\tassert.True(t, ok)\n\tweb.arena.RealtimeScoreNotifier.Notify()\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\tweb.arena.ScorePostedNotifier.Notify()\n\treadWebsocketType(t, ws, \"scorePosted\")\n}\n"
  },
  {
    "path": "web/api.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web API for providing JSON-formatted event data.\n\npackage web\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/partner\"\n\t\"github.com/Team254/cheesy-arena/playoff\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"io\"\n\t\"net/http\"\n\t\"os\"\n\t\"strconv\"\n)\n\ntype MatchResultWithSummary struct {\n\tmodel.MatchResult\n\tRedSummary  *game.ScoreSummary\n\tBlueSummary *game.ScoreSummary\n}\n\ntype MatchWithResult struct {\n\tmodel.Match\n\tResult *MatchResultWithSummary\n}\n\ntype RankingWithNickname struct {\n\tgame.Ranking\n\tNickname string\n}\n\ntype allianceMatchup struct {\n\tId                 string\n\tRedAllianceSource  string\n\tBlueAllianceSource string\n\tRedAlliance        *model.Alliance\n\tBlueAlliance       *model.Alliance\n\tIsActive           bool\n\tSeriesLeader       string\n\tSeriesStatus       string\n\tIsComplete         bool\n}\n\n// Generates a JSON dump of the matches and results.\nfunc (web *Web) matchesApiHandler(w http.ResponseWriter, r *http.Request) {\n\tmatchType, err := model.MatchTypeFromString(r.PathValue(\"type\"))\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tmatches, err := web.arena.Database.GetMatchesByType(matchType, false)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tmatchesWithResults := make([]MatchWithResult, len(matches))\n\tfor i, match := range matches {\n\t\tmatchesWithResults[i].Match = match\n\t\tmatchResult, err := web.arena.Database.GetMatchResultForMatch(match.Id)\n\t\tif err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t\tvar matchResultWithSummary *MatchResultWithSummary\n\t\tif matchResult != nil {\n\t\t\tmatchResultWithSummary = &MatchResultWithSummary{MatchResult: *matchResult}\n\t\t\tmatchResultWithSummary.RedSummary = matchResult.RedScoreSummary()\n\t\t\tmatchResultWithSummary.BlueSummary = matchResult.BlueScoreSummary()\n\t\t}\n\t\tmatchesWithResults[i].Result = matchResultWithSummary\n\t}\n\n\tjsonData, err := json.MarshalIndent(matchesWithResults, \"\", \"  \")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tw.Header().Add(\"Content-Type\", \"application/json\")\n\tw.Header().Add(\"Access-Control-Allow-Origin\", \"*\")\n\t_, err = w.Write(jsonData)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Generates a JSON dump of the sponsor slides for use by the audience display.\nfunc (web *Web) sponsorSlidesApiHandler(w http.ResponseWriter, r *http.Request) {\n\tsponsors, err := web.arena.Database.GetAllSponsorSlides()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tif sponsors == nil {\n\t\t// Go marshals an empty slice to null, so explicitly create it so that it appears as an empty JSON array.\n\t\tsponsors = make([]model.SponsorSlide, 0)\n\t}\n\tjsonData, err := json.MarshalIndent(sponsors, \"\", \"  \")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tw.Header().Add(\"Content-Type\", \"application/json\")\n\tw.Header().Add(\"Access-Control-Allow-Origin\", \"*\")\n\t_, err = w.Write(jsonData)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Generates a JSON dump of the qualification rankings, primarily for use by the rankings display.\nfunc (web *Web) rankingsApiHandler(w http.ResponseWriter, r *http.Request) {\n\trankings, err := web.arena.Database.GetAllRankings()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tvar rankingsWithNicknames []RankingWithNickname\n\tif rankings == nil {\n\t\t// Go marshals an empty slice to null, so explicitly create it so that it appears as an empty JSON array.\n\t\trankingsWithNicknames = make([]RankingWithNickname, 0)\n\t} else {\n\t\trankingsWithNicknames = make([]RankingWithNickname, len(rankings))\n\t}\n\n\t// Get team info so that nicknames can be displayed.\n\tteams, err := web.arena.Database.GetAllTeams()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tteamNicknames := make(map[int]string)\n\tfor _, team := range teams {\n\t\tteamNicknames[team.Id] = team.Nickname\n\t}\n\tfor i, ranking := range rankings {\n\t\trankingsWithNicknames[i] = RankingWithNickname{ranking, teamNicknames[ranking.TeamId]}\n\t}\n\n\t// Get the last match scored so we can report that on the display.\n\tmatches, err := web.arena.Database.GetMatchesByType(model.Qualification, false)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tvar highestPlayedMatch model.Match\n\tfor _, match := range matches {\n\t\tif match.IsComplete() {\n\t\t\thighestPlayedMatch = match\n\t\t}\n\t}\n\n\tdata := struct {\n\t\tRankings           []RankingWithNickname\n\t\tHighestPlayedMatch string\n\t}{rankingsWithNicknames, highestPlayedMatch.ShortName}\n\tjsonData, err := json.MarshalIndent(data, \"\", \"  \")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tw.Header().Add(\"Content-Type\", \"application/json\")\n\tw.Header().Add(\"Access-Control-Allow-Origin\", \"*\")\n\t_, err = w.Write(jsonData)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Generates a JSON dump of the alliances.\nfunc (web *Web) alliancesApiHandler(w http.ResponseWriter, r *http.Request) {\n\talliances, err := web.arena.Database.GetAllAlliances()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tjsonData, err := json.MarshalIndent(alliances, \"\", \"  \")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tw.Header().Add(\"Content-Type\", \"application/json\")\n\tw.Header().Add(\"Access-Control-Allow-Origin\", \"*\")\n\t_, err = w.Write(jsonData)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Websocket API for receiving arena status updates.\nfunc (web *Web) arenaWebsocketApiHandler(w http.ResponseWriter, r *http.Request) {\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client.\n\tws.HandleNotifiers(web.arena.MatchTimingNotifier, web.arena.MatchLoadNotifier, web.arena.MatchTimeNotifier)\n}\n\n// Serves the avatar for a given team, or a default if none exists.\nfunc (web *Web) teamAvatarsApiHandler(w http.ResponseWriter, r *http.Request) {\n\tteamId, err := strconv.Atoi(r.PathValue(\"teamId\"))\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tavatarPath := fmt.Sprintf(\"%s/%d.png\", partner.AvatarsDir, teamId)\n\tif _, err := os.Stat(avatarPath); os.IsNotExist(err) {\n\t\tavatarPath = fmt.Sprintf(\"%s/0.png\", partner.AvatarsDir)\n\t}\n\n\thttp.ServeFile(w, r, avatarPath)\n}\n\nfunc (web *Web) bracketSvgApiHandler(w http.ResponseWriter, r *http.Request) {\n\tvar activeMatch *model.Match\n\tif activeMatchValue, ok := r.URL.Query()[\"activeMatch\"]; ok {\n\t\tif activeMatchValue[0] == \"current\" {\n\t\t\tactiveMatch = web.arena.CurrentMatch\n\t\t} else if activeMatchValue[0] == \"saved\" {\n\t\t\tactiveMatch = web.arena.SavedMatch\n\t\t}\n\t}\n\n\tw.Header().Add(\"Content-Type\", \"image/svg+xml\")\n\tw.Header().Add(\"Access-Control-Allow-Origin\", \"*\")\n\tif err := web.generateBracketSvg(w, activeMatch); err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\nfunc (web *Web) generateBracketSvg(w io.Writer, activeMatch *model.Match) error {\n\talliances, err := web.arena.Database.GetAllAlliances()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tmatchups := make(map[string]*allianceMatchup)\n\tif web.arena.PlayoffTournament != nil {\n\t\tfor _, matchGroup := range web.arena.PlayoffTournament.MatchGroups() {\n\t\t\tmatchup, ok := matchGroup.(*playoff.Matchup)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tallianceMatchup := allianceMatchup{\n\t\t\t\tId:                 matchup.Id(),\n\t\t\t\tRedAllianceSource:  matchup.RedAllianceSourceDisplayName(),\n\t\t\t\tBlueAllianceSource: matchup.BlueAllianceSourceDisplayName(),\n\t\t\t\tIsComplete:         matchup.IsComplete(),\n\t\t\t}\n\t\t\tif matchup.RedAllianceId > 0 {\n\t\t\t\tif len(alliances) > 0 {\n\t\t\t\t\tallianceMatchup.RedAlliance = &alliances[matchup.RedAllianceId-1]\n\t\t\t\t} else {\n\t\t\t\t\tallianceMatchup.RedAlliance = &model.Alliance{Id: matchup.RedAllianceId}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif matchup.BlueAllianceId > 0 {\n\t\t\t\tif len(alliances) > 0 {\n\t\t\t\t\tallianceMatchup.BlueAlliance = &alliances[matchup.BlueAllianceId-1]\n\t\t\t\t} else {\n\t\t\t\t\tallianceMatchup.BlueAlliance = &model.Alliance{Id: matchup.BlueAllianceId}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif activeMatch != nil {\n\t\t\t\tallianceMatchup.IsActive = activeMatch.PlayoffMatchGroupId == matchup.Id()\n\t\t\t}\n\t\t\tallianceMatchup.SeriesLeader, allianceMatchup.SeriesStatus = matchup.StatusText()\n\t\t\tmatchups[matchup.Id()] = &allianceMatchup\n\t\t}\n\t}\n\n\tbracketType := \"double\"\n\tnumAlliances := web.arena.EventSettings.NumPlayoffAlliances\n\tif web.arena.EventSettings.PlayoffType == model.SingleEliminationPlayoff {\n\t\tif numAlliances > 8 {\n\t\t\tbracketType = \"16\"\n\t\t} else if numAlliances > 4 {\n\t\t\tbracketType = \"8\"\n\t\t} else if numAlliances > 2 {\n\t\t\tbracketType = \"4\"\n\t\t} else {\n\t\t\tbracketType = \"2\"\n\t\t}\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/bracket.svg\")\n\tif err != nil {\n\t\treturn err\n\t}\n\tdata := struct {\n\t\tBracketType string\n\t\tMatchups    map[string]*allianceMatchup\n\t}{bracketType, matchups}\n\treturn template.ExecuteTemplate(w, \"bracket\", data)\n}\n"
  },
  {
    "path": "web/api_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"encoding/json\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/tournament\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestMatchesApi(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tmatch1 := model.Match{\n\t\tType:             model.Qualification,\n\t\tShortName:        \"Q1\",\n\t\tTime:             time.Unix(0, 0),\n\t\tRed1:             1,\n\t\tRed2:             2,\n\t\tRed3:             3,\n\t\tBlue1:            4,\n\t\tBlue2:            5,\n\t\tBlue3:            6,\n\t\tBlue1IsSurrogate: true,\n\t\tBlue2IsSurrogate: true,\n\t\tBlue3IsSurrogate: true,\n\t}\n\tmatch2 := model.Match{\n\t\tType:            model.Qualification,\n\t\tShortName:       \"Q2\",\n\t\tTime:            time.Unix(600, 0),\n\t\tRed1:            7,\n\t\tRed2:            8,\n\t\tRed3:            9,\n\t\tBlue1:           10,\n\t\tBlue2:           11,\n\t\tBlue3:           12,\n\t\tRed1IsSurrogate: true,\n\t\tRed2IsSurrogate: true,\n\t\tRed3IsSurrogate: true,\n\t}\n\tmatch3 := model.Match{\n\t\tType:      model.Practice,\n\t\tShortName: \"P1\",\n\t\tTime:      time.Now(),\n\t\tRed1:      6,\n\t\tRed2:      5,\n\t\tRed3:      4,\n\t\tBlue1:     3,\n\t\tBlue2:     2,\n\t\tBlue3:     1,\n\t}\n\tweb.arena.Database.CreateMatch(&match1)\n\tweb.arena.Database.CreateMatch(&match2)\n\tweb.arena.Database.CreateMatch(&match3)\n\tmatchResult1 := model.BuildTestMatchResult(match1.Id, 1)\n\tweb.arena.Database.CreateMatchResult(matchResult1)\n\n\trecorder := web.getHttpResponse(\"/api/matches/qualification\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"application/json\", recorder.Header()[\"Content-Type\"][0])\n\tvar matchesData []MatchWithResult\n\terr := json.Unmarshal([]byte(recorder.Body.String()), &matchesData)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 2, len(matchesData)) {\n\t\tassert.Equal(t, match1.Id, matchesData[0].Match.Id)\n\t\tassert.Equal(t, *matchResult1, matchesData[0].Result.MatchResult)\n\t\tassert.Equal(t, match2.Id, matchesData[1].Match.Id)\n\t\tassert.Nil(t, matchesData[1].Result)\n\t}\n}\n\nfunc TestRankingsApi(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\t// Test that empty rankings produces an empty array.\n\trecorder := web.getHttpResponse(\"/api/rankings\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"application/json\", recorder.Header()[\"Content-Type\"][0])\n\trankingsData := struct {\n\t\tRankings           []RankingWithNickname\n\t\tTeamNicknames      map[string]string\n\t\tHighestPlayedMatch string\n\t}{}\n\terr := json.Unmarshal([]byte(recorder.Body.String()), &rankingsData)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 0, len(rankingsData.Rankings))\n\tassert.Equal(t, \"\", rankingsData.HighestPlayedMatch)\n\n\tranking1 := RankingWithNickname{*game.TestRanking2(), \"Simbots\"}\n\tranking2 := RankingWithNickname{*game.TestRanking1(), \"ChezyPof\"}\n\tweb.arena.Database.CreateRanking(&ranking1.Ranking)\n\tweb.arena.Database.CreateRanking(&ranking2.Ranking)\n\tweb.arena.Database.CreateMatch(&model.Match{Type: model.Qualification, ShortName: \"Q29\", Status: game.RedWonMatch})\n\tweb.arena.Database.CreateMatch(&model.Match{Type: model.Qualification, ShortName: \"Q30\"})\n\tweb.arena.Database.CreateTeam(&model.Team{Id: 254, Nickname: \"ChezyPof\"})\n\tweb.arena.Database.CreateTeam(&model.Team{Id: 1114, Nickname: \"Simbots\"})\n\n\trecorder = web.getHttpResponse(\"/api/rankings\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"application/json\", recorder.Header()[\"Content-Type\"][0])\n\terr = json.Unmarshal([]byte(recorder.Body.String()), &rankingsData)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 2, len(rankingsData.Rankings)) {\n\t\tassert.Equal(t, ranking1, rankingsData.Rankings[1])\n\t\tassert.Equal(t, ranking2, rankingsData.Rankings[0])\n\t}\n\tassert.Equal(t, \"Q29\", rankingsData.HighestPlayedMatch)\n}\n\nfunc TestSponsorSlidesApi(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tslide1 := model.SponsorSlide{0, \"subtitle\", \"line1\", \"line2\", \"image\", 2, 1}\n\tslide2 := model.SponsorSlide{0, \"Chezy Sponsaur\", \"Teh\", \"Chezy Pofs\", \"ejface.jpg\", 54, 2}\n\tassert.Nil(t, web.arena.Database.CreateSponsorSlide(&slide1))\n\tassert.Nil(t, web.arena.Database.CreateSponsorSlide(&slide2))\n\n\trecorder := web.getHttpResponse(\"/api/sponsor_slides\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"application/json\", recorder.Header()[\"Content-Type\"][0])\n\tvar sponsorSlides []model.SponsorSlide\n\terr := json.Unmarshal([]byte(recorder.Body.String()), &sponsorSlides)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 2, len(sponsorSlides)) {\n\t\tassert.Equal(t, slide1, sponsorSlides[0])\n\t\tassert.Equal(t, slide2, sponsorSlides[1])\n\t}\n}\n\nfunc TestAlliancesApi(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tmodel.BuildTestAlliances(web.arena.Database)\n\n\trecorder := web.getHttpResponse(\"/api/alliances\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"application/json\", recorder.Header()[\"Content-Type\"][0])\n\tvar alliances []model.Alliance\n\terr := json.Unmarshal([]byte(recorder.Body.String()), &alliances)\n\tassert.Nil(t, err)\n\tif assert.Equal(t, 2, len(alliances)) {\n\t\tif assert.Equal(t, 5, len(alliances[0].TeamIds)) {\n\t\t\tassert.Equal(t, 254, alliances[0].TeamIds[0])\n\t\t\tassert.Equal(t, 469, alliances[0].TeamIds[1])\n\t\t\tassert.Equal(t, 2848, alliances[0].TeamIds[2])\n\t\t\tassert.Equal(t, 74, alliances[0].TeamIds[3])\n\t\t\tassert.Equal(t, 3175, alliances[0].TeamIds[4])\n\t\t}\n\t\tif assert.Equal(t, 3, len(alliances[1].TeamIds)) {\n\t\t\tassert.Equal(t, 1718, alliances[1].TeamIds[0])\n\t\t\tassert.Equal(t, 2451, alliances[1].TeamIds[1])\n\t\t\tassert.Equal(t, 1619, alliances[1].TeamIds[2])\n\t\t}\n\t}\n}\n\nfunc TestArenaWebsocketApi(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/api/arena/websocket\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"matchTiming\")\n\treadWebsocketType(t, ws, \"matchLoad\")\n\treadWebsocketType(t, ws, \"matchTime\")\n}\n\nfunc TestBracketSvgApiDoubleElimination(t *testing.T) {\n\tweb := setupTestWeb(t)\n\tweb.arena.EventSettings.PlayoffType = model.DoubleEliminationPlayoff\n\ttournament.CreateTestAlliances(web.arena.Database, 8)\n\tweb.arena.CreatePlayoffTournament()\n\n\trecorder := web.getHttpResponse(\"/api/bracket/svg\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"image/svg+xml\", recorder.Header()[\"Content-Type\"][0])\n\tassert.Contains(t, recorder.Body.String(), \"Best-of-3\")\n}\n"
  },
  {
    "path": "web/audience_display.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web handlers for audience screen display.\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"net/http\"\n)\n\n// Renders the audience display to be chroma keyed over the video feed.\nfunc (web *Web) audienceDisplayHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.enforceDisplayConfiguration(\n\t\tw,\n\t\tr,\n\t\tmap[string]string{\n\t\t\t\"background\": \"#0f0\", \"reversed\": \"false\",\n\t\t\t\"overlayLocation\": \"bottom\",\n\t\t},\n\t) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/audience_display.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tMatchSounds []*game.MatchSound\n\t}{web.arena.EventSettings, game.MatchSounds}\n\terr = template.ExecuteTemplate(w, \"audience_display.html\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for the audience display client to receive status updates.\nfunc (web *Web) audienceDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tdisplay, err := web.registerDisplay(r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer web.arena.MarkDisplayDisconnected(display.DisplayConfiguration.Id)\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client.\n\tws.HandleNotifiers(\n\t\tdisplay.Notifier,\n\t\tweb.arena.MatchTimingNotifier,\n\t\tweb.arena.AudienceDisplayModeNotifier,\n\t\tweb.arena.MatchLoadNotifier,\n\t\tweb.arena.MatchTimeNotifier,\n\t\tweb.arena.RealtimeScoreNotifier,\n\t\tweb.arena.PlaySoundNotifier,\n\t\tweb.arena.ScorePostedNotifier,\n\t\tweb.arena.AllianceSelectionNotifier,\n\t\tweb.arena.LowerThirdNotifier,\n\t\tweb.arena.ReloadDisplaysNotifier,\n\t)\n}\n"
  },
  {
    "path": "web/audience_display_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestAudienceDisplay(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/displays/audience\")\n\tassert.Equal(t, 302, recorder.Code)\n\tassert.Contains(t, recorder.Header().Get(\"Location\"), \"displayId=100\")\n\tassert.Contains(t, recorder.Header().Get(\"Location\"), \"background=%230f0\")\n\tassert.Contains(t, recorder.Header().Get(\"Location\"), \"reversed=false\")\n\tassert.Contains(t, recorder.Header().Get(\"Location\"), \"overlayLocation=bottom\")\n\n\trecorder = web.getHttpResponse(\n\t\t\"/displays/audience?displayId=1&background=%23000&reversed=false&overlayLocation=top\",\n\t)\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Audience Display - Untitled Event - Cheesy Arena\")\n}\n\nfunc TestAudienceDisplayWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/displays/audience/websocket?displayId=1\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"displayConfiguration\")\n\treadWebsocketType(t, ws, \"matchTiming\")\n\treadWebsocketType(t, ws, \"audienceDisplayMode\")\n\treadWebsocketType(t, ws, \"matchLoad\")\n\treadWebsocketType(t, ws, \"matchTime\")\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\treadWebsocketType(t, ws, \"scorePosted\")\n\treadWebsocketType(t, ws, \"allianceSelection\")\n\treadWebsocketType(t, ws, \"lowerThird\")\n\n\t// Run through a match cycle.\n\tweb.arena.MatchLoadNotifier.Notify()\n\treadWebsocketType(t, ws, \"matchLoad\")\n\tweb.arena.AllianceStations[\"R1\"].Bypass = true\n\tweb.arena.AllianceStations[\"R2\"].Bypass = true\n\tweb.arena.AllianceStations[\"R3\"].Bypass = true\n\tweb.arena.AllianceStations[\"B1\"].Bypass = true\n\tweb.arena.AllianceStations[\"B2\"].Bypass = true\n\tweb.arena.AllianceStations[\"B3\"].Bypass = true\n\tweb.arena.StartMatch()\n\tweb.arena.Update()\n\tweb.arena.Update()\n\tmessages := readWebsocketMultiple(t, ws, 3)\n\tscreen, ok := messages[\"audienceDisplayMode\"]\n\tif assert.True(t, ok) {\n\t\tassert.Equal(t, \"match\", screen)\n\t}\n\tsound, ok := messages[\"playSound\"]\n\tif assert.True(t, ok) {\n\t\tassert.Equal(t, \"start\", sound)\n\t}\n\t_, ok = messages[\"matchTime\"]\n\tassert.True(t, ok)\n\tweb.arena.RealtimeScoreNotifier.Notify()\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\tweb.arena.ScorePostedNotifier.Notify()\n\treadWebsocketType(t, ws, \"scorePosted\")\n\n\t// Test other overlays.\n\tweb.arena.AllianceSelectionNotifier.Notify()\n\treadWebsocketType(t, ws, \"allianceSelection\")\n\tweb.arena.LowerThirdNotifier.Notify()\n\treadWebsocketType(t, ws, \"lowerThird\")\n}\n"
  },
  {
    "path": "web/bracket_display.go",
    "content": "// Copyright 2022 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web handlers for the bracket display.\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"net/http\"\n)\n\n// Renders the display which shows the playoff bracket.\nfunc (web *Web) bracketDisplayHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.enforceDisplayConfiguration(w, r, nil) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/bracket_display.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t}{web.arena.EventSettings}\n\terr = template.ExecuteTemplate(w, \"bracket_display.html\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for the bracket display.\nfunc (web *Web) bracketDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tdisplay, err := web.registerDisplay(r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer web.arena.MarkDisplayDisconnected(display.DisplayConfiguration.Id)\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client.\n\tws.HandleNotifiers(display.Notifier, web.arena.MatchLoadNotifier, web.arena.ReloadDisplaysNotifier)\n}\n"
  },
  {
    "path": "web/bracket_display_test.go",
    "content": "// Copyright 2022 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestBracketDisplay(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/displays/bracket?displayId=1\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Bracket Display - Untitled Event - Cheesy Arena\")\n}\n\nfunc TestBracketDisplayWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/displays/bracket/websocket?displayId=1\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"displayConfiguration\")\n\treadWebsocketType(t, ws, \"matchLoad\")\n}\n"
  },
  {
    "path": "web/display_utils.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Common utility methods for display web routes.\n\npackage web\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/field\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"regexp\"\n\t\"strings\"\n)\n\n// Returns true if the given required parameters are present; otherwise redirects to the defaults and returns false.\nfunc (web *Web) enforceDisplayConfiguration(w http.ResponseWriter, r *http.Request, defaults map[string]string) bool {\n\tallPresent := true\n\tconfiguration := make(map[string]string)\n\n\t// Get display ID and nickname from the query parameters.\n\tvar displayId string\n\tif displayId = r.URL.Query().Get(\"displayId\"); displayId == \"\" {\n\t\tdisplayId = web.arena.NextDisplayId()\n\t\tallPresent = false\n\t}\n\tif nickname := r.URL.Query().Get(\"nickname\"); nickname != \"\" {\n\t\tconfiguration[\"nickname\"] = nickname\n\t}\n\n\t// Get display-specific fields from the query parameters.\n\tif defaults != nil {\n\t\tfor key, defaultValue := range defaults {\n\t\t\tif r.URL.Query().Has(key) {\n\t\t\t\tconfiguration[key] = r.URL.Query().Get(key)\n\t\t\t} else {\n\t\t\t\tconfiguration[key] = defaultValue\n\t\t\t\tallPresent = false\n\t\t\t}\n\t\t}\n\t}\n\n\tif !allPresent {\n\t\tvar builder strings.Builder\n\t\tfor key, value := range configuration {\n\t\t\tbuilder.WriteString(\"&\")\n\t\t\tbuilder.WriteString(url.QueryEscape(key))\n\t\t\tbuilder.WriteString(\"=\")\n\t\t\tbuilder.WriteString(url.QueryEscape(value))\n\t\t}\n\t\thttp.Redirect(w, r, fmt.Sprintf(\"%s?displayId=%s%s\", r.URL.Path, displayId, builder.String()), 302)\n\t}\n\treturn allPresent\n}\n\n// Constructs, registers, and returns the display object for the given incoming websocket request.\nfunc (web *Web) registerDisplay(r *http.Request) (*field.Display, error) {\n\tdisplayConfig, err := field.DisplayFromUrl(r.URL.Path, r.URL.Query())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Extract the source IP address of the request and store it in the display object.\n\tvar ipAddress string\n\tif ipAddress = r.Header.Get(\"X-Real-IP\"); ipAddress == \"\" {\n\t\tipAddress = regexp.MustCompile(\"(.*):\\\\d+$\").FindStringSubmatch(r.RemoteAddr)[1]\n\t}\n\n\treturn web.arena.RegisterDisplay(displayConfig, ipAddress), nil\n}\n"
  },
  {
    "path": "web/field_monitor_display.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web handlers for the field monitor display showing robot connection status.\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"github.com/mitchellh/mapstructure\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n)\n\n// Renders the field monitor display.\nfunc (web *Web) fieldMonitorDisplayHandler(w http.ResponseWriter, r *http.Request) {\n\tif r.URL.Query().Get(\"fta\") == \"true\" && !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tif !web.enforceDisplayConfiguration(w, r, map[string]string{\"ds\": \"false\", \"fta\": \"false\", \"reversed\": \"false\"}) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/field_monitor_display.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t}{web.arena.EventSettings}\n\terr = template.ExecuteTemplate(w, \"field_monitor_display.html\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for the field monitor display client to receive status updates.\nfunc (web *Web) fieldMonitorDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tisFta := r.URL.Query().Get(\"fta\") == \"true\"\n\tif isFta && !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tdisplay, err := web.registerDisplay(r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer web.arena.MarkDisplayDisconnected(display.DisplayConfiguration.Id)\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client, in a separate goroutine.\n\tgo ws.HandleNotifiers(\n\t\tweb.arena.MatchTimingNotifier,\n\t\tdisplay.Notifier,\n\t\tweb.arena.ArenaStatusNotifier,\n\t\tweb.arena.EventStatusNotifier,\n\t\tweb.arena.RealtimeScoreNotifier,\n\t\tweb.arena.MatchTimeNotifier,\n\t\tweb.arena.MatchLoadNotifier,\n\t\tweb.arena.ReloadDisplaysNotifier,\n\t)\n\n\t// Loop, waiting for commands and responding to them, until the client closes the connection.\n\tfor {\n\t\tcommand, data, err := ws.Read()\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\t// Client has closed the connection; nothing to do here.\n\t\t\t\treturn\n\t\t\t}\n\t\t\tlog.Println(err)\n\t\t\treturn\n\t\t}\n\n\t\tif command == \"updateTeamNotes\" {\n\t\t\tif isFta {\n\t\t\t\targs := struct {\n\t\t\t\t\tStation string\n\t\t\t\t\tNotes   string\n\t\t\t\t}{}\n\t\t\t\terr = mapstructure.Decode(data, &args)\n\t\t\t\tif err != nil {\n\t\t\t\t\tws.WriteError(err.Error())\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif allianceStation, ok := web.arena.AllianceStations[args.Station]; ok {\n\t\t\t\t\tif allianceStation.Team != nil {\n\t\t\t\t\t\tallianceStation.Team.FtaNotes = args.Notes\n\t\t\t\t\t\tif err := web.arena.Database.UpdateTeam(allianceStation.Team); err != nil {\n\t\t\t\t\t\t\tws.WriteError(err.Error())\n\t\t\t\t\t\t}\n\t\t\t\t\t\tweb.arena.ArenaStatusNotifier.Notify()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tws.WriteError(\"No team present\")\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tws.WriteError(\"Invalid alliance station\")\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tws.WriteError(\"Must be in FTA mode to update team notes\")\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "web/field_monitor_display_test.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"testing\"\n\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestFieldMonitorDisplay(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/displays/field_monitor?displayId=1&ds=false&fta=true&reversed=false\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Field Monitor - Untitled Event - Cheesy Arena\")\n}\n\nfunc TestFieldMonitorDisplayWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\tweb.arena.Database.CreateTeam(&model.Team{Id: 254})\n\tassert.Nil(t, web.arena.SubstituteTeams(0, 0, 0, 254, 0, 0))\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(\n\t\twsUrl+\"/displays/field_monitor/websocket?displayId=1&ds=false&fta=false\", nil,\n\t)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"matchTiming\")\n\treadWebsocketType(t, ws, \"displayConfiguration\")\n\treadWebsocketType(t, ws, \"arenaStatus\")\n\treadWebsocketType(t, ws, \"eventStatus\")\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\treadWebsocketType(t, ws, \"matchTime\")\n\treadWebsocketType(t, ws, \"matchLoad\")\n\n\t// Should not be able to update team notes.\n\tws.Write(\"updateTeamNotes\", map[string]any{\"station\": \"B1\", \"notes\": \"Bypassed in M1\"})\n\tassert.Contains(t, readWebsocketError(t, ws), \"Must be in FTA mode to update team notes\")\n\tassert.Equal(t, \"\", web.arena.AllianceStations[\"B1\"].Team.FtaNotes)\n}\n\nfunc TestFieldMonitorFtaDisplayWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\tweb.arena.Database.CreateTeam(&model.Team{Id: 254})\n\tassert.Nil(t, web.arena.SubstituteTeams(0, 0, 0, 254, 0, 0))\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(\n\t\twsUrl+\"/displays/field_monitor/websocket?displayId=1&ds=false&fta=true\", nil,\n\t)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"matchTiming\")\n\treadWebsocketType(t, ws, \"displayConfiguration\")\n\treadWebsocketType(t, ws, \"arenaStatus\")\n\treadWebsocketType(t, ws, \"eventStatus\")\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\treadWebsocketType(t, ws, \"matchTime\")\n\treadWebsocketType(t, ws, \"matchLoad\")\n\n\t// Should not be able to update team notes.\n\tws.Write(\"updateTeamNotes\", map[string]any{\"station\": \"B1\", \"notes\": \"Bypassed in M1\"})\n\treadWebsocketType(t, ws, \"arenaStatus\")\n\tassert.Equal(t, \"Bypassed in M1\", web.arena.AllianceStations[\"B1\"].Team.FtaNotes)\n\n\t// Check error scenarios.\n\tws.Write(\"updateTeamNotes\", map[string]any{\"station\": \"N\", \"notes\": \"Bypassed in M2\"})\n\tassert.Contains(t, readWebsocketError(t, ws), \"Invalid alliance station\")\n\tws.Write(\"updateTeamNotes\", map[string]any{\"station\": \"R3\", \"notes\": \"Bypassed in M3\"})\n\tassert.Contains(t, readWebsocketError(t, ws), \"No team present\")\n}\n"
  },
  {
    "path": "web/login.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for authenticating with the server.\n\npackage web\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/google/uuid\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"time\"\n)\n\n// Shows the login form.\nfunc (web *Web) loginHandler(w http.ResponseWriter, r *http.Request) {\n\tweb.renderLogin(w, r, \"\")\n}\n\n// Processes the login request.\nfunc (web *Web) loginPostHandler(w http.ResponseWriter, r *http.Request) {\n\tusername := r.PostFormValue(\"username\")\n\tif err := web.checkAuthPassword(username, r.PostFormValue(\"password\")); err != nil {\n\t\tweb.renderLogin(w, r, err.Error())\n\t\treturn\n\t}\n\n\tsession := model.UserSession{Token: uuid.New().String(), Username: username, CreatedAt: time.Now()}\n\tif err := web.arena.Database.CreateUserSession(&session); err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\thttp.SetCookie(w, &http.Cookie{Name: sessionTokenCookie, Value: session.Token})\n\tredirectUrl := r.URL.Query().Get(\"redirect\")\n\tif redirectUrl == \"\" {\n\t\tredirectUrl = \"/\"\n\t}\n\thttp.Redirect(w, r, redirectUrl, 303)\n}\n\nfunc (web *Web) renderLogin(w http.ResponseWriter, r *http.Request, errorMessage string) {\n\ttemplate, err := web.parseFiles(\"templates/login.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tErrorMessage string\n\t}{web.arena.EventSettings, errorMessage}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Returns true if the given user is authorized for admin operations. Used for HTTP cookie authentication.\nfunc (web *Web) userIsAdmin(w http.ResponseWriter, r *http.Request) bool {\n\tif web.arena.EventSettings.AdminPassword == \"\" {\n\t\t// Disable auth if there is no password configured.\n\t\treturn true\n\t}\n\tsession := web.getUserSessionFromCookie(r)\n\tif session != nil && session.Username == adminUser {\n\t\treturn true\n\t} else {\n\t\tredirect := r.URL.Path\n\t\tif r.URL.RawQuery != \"\" {\n\t\t\tredirect += \"?\" + r.URL.RawQuery\n\t\t}\n\t\thttp.Redirect(w, r, \"/login?redirect=\"+url.QueryEscape(redirect), 307)\n\t\treturn false\n\t}\n}\n\nfunc (web *Web) getUserSessionFromCookie(r *http.Request) *model.UserSession {\n\ttoken, err := r.Cookie(sessionTokenCookie)\n\tif err != nil {\n\t\treturn nil\n\t}\n\tsession, _ := web.arena.Database.GetUserSessionByToken(token.Value)\n\treturn session\n}\n\nfunc (web *Web) checkAuthPassword(user, password string) error {\n\tif user == adminUser && password == web.arena.EventSettings.AdminPassword {\n\t\treturn nil\n\t} else {\n\t\treturn fmt.Errorf(\"Invalid login credentials.\")\n\t}\n}\n"
  },
  {
    "path": "web/login_test.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestLoginDisplay(t *testing.T) {\n\tweb := setupTestWeb(t)\n\tweb.arena.EventSettings.AdminPassword = \"admin\"\n\n\t// Check that hitting a protected page redirects to the login.\n\trecorder := web.getHttpResponse(\"/match_play?p1=v1&p2=v2\")\n\tassert.Equal(t, 307, recorder.Code)\n\tassert.Equal(t, \"/login?redirect=%2Fmatch_play%3Fp1%3Dv1%26p2%3Dv2\", recorder.Header().Get(\"Location\"))\n\n\trecorder = web.getHttpResponse(\"/login?redirect=%2Fmatch_play%3Fp1%3Dv1%26p2%3Dv2\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Log In - Untitled Event - Cheesy Arena\")\n\n\t// Check logging in with the wrong username and right password.\n\trecorder = web.postHttpResponse(\n\t\t\"/login?redirect=%2Fmatch_play%3Fp1%3Dv1%26p2%3Dv2\", \"username=blorpy&password=reader\",\n\t)\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Invalid login credentials.\")\n\n\t// Check logging in with the right username and wrong password.\n\trecorder = web.postHttpResponse(\n\t\t\"/login?redirect=%2Fmatch_play%3Fp1%3Dv1%26p2%3Dv2\", \"username=admin&password=blorpy\",\n\t)\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Invalid login credentials.\")\n\n\t// Check logging in with the right username and password.\n\trecorder = web.postHttpResponse(\n\t\t\"/login?redirect=%2Fmatch_play%3Fp1%3Dv1%26p2%3Dv2\", \"username=admin&password=admin\",\n\t)\n\tassert.Equal(t, 303, recorder.Code)\n\tassert.Equal(t, \"/match_play?p1=v1&p2=v2\", recorder.Header().Get(\"Location\"))\n\tcookie := recorder.Header().Get(\"Set-Cookie\")\n\tassert.Contains(t, cookie, \"session_token=\")\n\n\t// Check that hitting the reader-level protected page works now.\n\trecorder = web.getHttpResponseWithHeaders(\"/match_play?p1=v1&p2=v2\", map[string]string{\"Cookie\": cookie})\n\tassert.Equal(t, 200, recorder.Code)\n}\n"
  },
  {
    "path": "web/logo_display.go",
    "content": "// Copyright 2024 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for a display to show a static logo and configurable message.\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"net/http\"\n)\n\n// Renders the logo view.\nfunc (web *Web) logoDisplayHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.enforceDisplayConfiguration(w, r, map[string]string{\"message\": \"\"}) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/logo_display.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t}{web.arena.EventSettings}\n\terr = template.ExecuteTemplate(w, \"logo_display.html\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for sending configuration commands to the display.\nfunc (web *Web) logoDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tdisplay, err := web.registerDisplay(r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer web.arena.MarkDisplayDisconnected(display.DisplayConfiguration.Id)\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client.\n\tws.HandleNotifiers(display.Notifier, web.arena.ReloadDisplaysNotifier)\n}\n"
  },
  {
    "path": "web/logo_display_test.go",
    "content": "// Copyright 2024 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestLogoDisplay(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/displays/logo?displayId=1&message=\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Logo Display - Untitled Event - Cheesy Arena\")\n}\n\nfunc TestLogoDisplayWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/displays/logo/websocket?displayId=123\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"displayConfiguration\")\n}\n"
  },
  {
    "path": "web/match_logs.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for viewing match logs\n\npackage web\n\nimport (\n\t\"encoding/csv\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strconv\"\n\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n)\n\ntype MatchLogsListItem struct {\n\tId         int\n\tShortName  string\n\tTime       string\n\tRedTeams   []int\n\tBlueTeams  []int\n\tColorClass string\n\tIsComplete bool\n}\n\ntype MatchLogRow struct {\n\tMatchTimeSec      float64\n\tPacketType        int\n\tTeamId            int\n\tAllianceStation   string\n\tDsLinked          bool\n\tRadioLinked       bool\n\tRioLinked         bool\n\tRobotLinked       bool\n\tAuto              bool\n\tEnabled           bool\n\tEmergencyStop     bool\n\tAutonomousStop    bool\n\tBatteryVoltage    float64\n\tMissedPacketCount int\n\tDsRobotTripTimeMs int\n\tTxRate            float64\n\tRxRate            float64\n\tSignalNoiseRatio  int\n}\n\ntype MatchLog struct {\n\tFilename  string\n\tStartTime string\n\tRows      []MatchLogRow\n}\n\ntype MatchLogs struct {\n\tTeamId          int\n\tAllianceStation string\n\tLogs            []MatchLog\n}\n\n// Shows the match Log interface.\nfunc (web *Web) matchLogsHandler(w http.ResponseWriter, r *http.Request) {\n\tpracticeMatches, err := web.buildMatchLogsList(model.Practice)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tqualificationMatches, err := web.buildMatchLogsList(model.Qualification)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tplayoffMatches, err := web.buildMatchLogsList(model.Playoff)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/match_logs.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tmatchesByType := map[model.MatchType][]MatchLogsListItem{\n\t\tmodel.Practice:      practiceMatches,\n\t\tmodel.Qualification: qualificationMatches,\n\t\tmodel.Playoff:       playoffMatches,\n\t}\n\tcurrentMatchType := web.arena.CurrentMatch.Type\n\tif currentMatchType == model.Test {\n\t\tcurrentMatchType = model.Practice\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tMatchesByType    map[model.MatchType][]MatchLogsListItem\n\t\tCurrentMatchType model.MatchType\n\t}{web.arena.EventSettings, matchesByType, currentMatchType}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Shows the page to view a log for a match.\nfunc (web *Web) matchLogsViewGetHandler(w http.ResponseWriter, r *http.Request) {\n\tmatch, matchLogs, _, err := web.getMatchLogFromRequest(r)\n\tfirstMatch := \"0\"\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/view_match_log.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tif len(matchLogs.Logs) > 0 {\n\t\tfirstMatch = matchLogs.Logs[0].StartTime\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tMatch      *model.Match\n\t\tMatchLogs  *MatchLogs\n\t\tFirstMatch string\n\t}{web.arena.EventSettings, match, matchLogs, firstMatch}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Load the match logs for the match referenced in the HTTP query string.\nfunc (web *Web) getMatchLogFromRequest(r *http.Request) (*model.Match, *MatchLogs, bool, error) {\n\tmatchId, _ := strconv.Atoi(r.PathValue(\"matchId\"))\n\tstationId := r.PathValue(\"stationId\")\n\tmatch, err := web.arena.Database.GetMatchById(matchId)\n\n\tlogs := MatchLogs{\n\t\tTeamId:          0,\n\t\tAllianceStation: stationId,\n\t}\n\tif err != nil {\n\t\treturn nil, nil, false, err\n\t}\n\tif match == nil {\n\t\treturn nil, nil, false, fmt.Errorf(\"Error: No such match: %d\", matchId)\n\t}\n\tswitch stationId {\n\tcase \"R1\":\n\t\tlogs.TeamId = match.Red1\n\tcase \"R2\":\n\t\tlogs.TeamId = match.Red2\n\tcase \"R3\":\n\t\tlogs.TeamId = match.Red3\n\tcase \"B1\":\n\t\tlogs.TeamId = match.Blue1\n\tcase \"B2\":\n\t\tlogs.TeamId = match.Blue2\n\tcase \"B3\":\n\t\tlogs.TeamId = match.Blue3\n\t}\n\theaderMap := make(map[string]int)\n\t// rows []MatchLogRow\n\t// Load a csv file.\n\tif logs.TeamId == 0 {\n\t\treturn nil, nil, false, nil\n\t}\n\tvar files []string\n\tfiles, _ = filepath.Glob(\n\t\tfilepath.Join(\".\", \"static\", \"logs\", \"*_*_Match_\"+match.ShortName+\"_\"+strconv.Itoa(logs.TeamId)+\".csv\"),\n\t)\n\tif len(files) == 0 {\n\t\treturn match, &logs, false, nil\n\t}\n\n\tfor _, filename := range files {\n\t\tf, _ := os.Open(filename)\n\t\tdefer f.Close()\n\t\t// Create a new reader.\n\t\treader := csv.NewReader(f)\n\n\t\t// Read row\n\t\theader, _ := reader.Read()\n\n\t\t// Add mapping: Column/property name --> record index\n\t\tfor i, v := range header {\n\t\t\theaderMap[v] = i\n\t\t}\n\t\trecords, _ := reader.ReadAll()\n\n\t\tvar curlog = MatchLog{\n\t\t\tFilename:  filename,\n\t\t\tStartTime: filename[12:26],\n\t\t\tRows:      make([]MatchLogRow, len(records)),\n\t\t}\n\t\tfor i, record := range records {\n\t\t\tvar curRow MatchLogRow\n\t\t\tcurRow.MatchTimeSec, _ = strconv.ParseFloat(record[headerMap[\"matchTimeSec\"]], 64)\n\t\t\tcurRow.PacketType, _ = strconv.Atoi(record[headerMap[\"packetType\"]])\n\t\t\tcurRow.TeamId, _ = strconv.Atoi(record[headerMap[\"teamId\"]])\n\t\t\tcurRow.AllianceStation = record[headerMap[\"allianceStation\"]]\n\t\t\tcurRow.DsLinked, _ = strconv.ParseBool(record[headerMap[\"dsLinked\"]])\n\t\t\tcurRow.RadioLinked, _ = strconv.ParseBool(record[headerMap[\"radioLinked\"]])\n\t\t\tcurRow.RioLinked, _ = strconv.ParseBool(record[headerMap[\"rioLinked\"]])\n\t\t\tcurRow.RobotLinked, _ = strconv.ParseBool(record[headerMap[\"robotLinked\"]])\n\t\t\tcurRow.Auto, _ = strconv.ParseBool(record[headerMap[\"auto\"]])\n\t\t\tcurRow.Enabled, _ = strconv.ParseBool(record[headerMap[\"enabled\"]])\n\t\t\tcurRow.EmergencyStop, _ = strconv.ParseBool(record[headerMap[\"emergencyStop\"]])\n\t\t\tcurRow.AutonomousStop, _ = strconv.ParseBool(record[headerMap[\"autonomousStop\"]])\n\t\t\tcurRow.BatteryVoltage, _ = strconv.ParseFloat(record[headerMap[\"batteryVoltage\"]], 64)\n\t\t\tcurRow.MissedPacketCount, _ = strconv.Atoi(record[headerMap[\"missedPacketCount\"]])\n\t\t\tcurRow.DsRobotTripTimeMs, _ = strconv.Atoi(record[headerMap[\"dsRobotTripTimeMs\"]])\n\t\t\tif len(headerMap) > 13 {\n\n\t\t\t\tcurRow.TxRate, _ = strconv.ParseFloat(record[headerMap[\"txRate\"]], 64)\n\t\t\t\tcurRow.RxRate, _ = strconv.ParseFloat(record[headerMap[\"rxRate\"]], 64)\n\t\t\t\tcurRow.SignalNoiseRatio, _ = strconv.Atoi(record[headerMap[\"signalNoiseRatio\"]])\n\t\t\t} else {\n\t\t\t\tcurRow.TxRate = -1\n\t\t\t\tcurRow.RxRate = -1\n\t\t\t\tcurRow.SignalNoiseRatio = -1\n\t\t\t}\n\n\t\t\t// Create new person and add to persons array\n\t\t\tcurlog.Rows[i] = curRow\n\t\t}\n\n\t\tlogs.Logs = append(logs.Logs, curlog)\n\n\t}\n\treturn match, &logs, false, nil\n}\n\n// Constructs the list of matches to display in the match Logs interface.\nfunc (web *Web) buildMatchLogsList(matchType model.MatchType) ([]MatchLogsListItem, error) {\n\tmatches, err := web.arena.Database.GetMatchesByType(matchType, false)\n\tif err != nil {\n\t\treturn []MatchLogsListItem{}, err\n\t}\n\n\tmatchLogsList := make([]MatchLogsListItem, len(matches))\n\tfor i, match := range matches {\n\t\tmatchLogsList[i].Id = match.Id\n\t\tmatchLogsList[i].ShortName = match.ShortName\n\t\tmatchLogsList[i].Time = match.Time.Local().Format(\"Mon 1/02 03:04 PM\")\n\t\tmatchLogsList[i].RedTeams = []int{match.Red1, match.Red2, match.Red3}\n\t\tmatchLogsList[i].BlueTeams = []int{match.Blue1, match.Blue2, match.Blue3}\n\t\tif err != nil {\n\t\t\treturn []MatchLogsListItem{}, err\n\t\t}\n\t\tswitch match.Status {\n\t\tcase game.RedWonMatch:\n\t\t\tmatchLogsList[i].ColorClass = \"red\"\n\t\t\tmatchLogsList[i].IsComplete = true\n\t\tcase game.BlueWonMatch:\n\t\t\tmatchLogsList[i].ColorClass = \"blue\"\n\t\t\tmatchLogsList[i].IsComplete = true\n\t\tcase game.TieMatch:\n\t\t\tmatchLogsList[i].ColorClass = \"yellow\"\n\t\t\tmatchLogsList[i].IsComplete = true\n\t\tdefault:\n\t\t\tmatchLogsList[i].ColorClass = \"\"\n\t\t\tmatchLogsList[i].IsComplete = false\n\t\t}\n\t}\n\n\treturn matchLogsList, nil\n}\n"
  },
  {
    "path": "web/match_play.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for controlling match play.\n\npackage web\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n\t\"sort\"\n\t\"time\"\n\n\t\"github.com/Team254/cheesy-arena/field\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/tournament\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"github.com/mitchellh/mapstructure\"\n)\n\ntype MatchPlayListItem struct {\n\tId         int\n\tShortName  string\n\tTime       string\n\tStatus     game.MatchStatus\n\tColorClass string\n}\n\ntype MatchPlayList []MatchPlayListItem\n\n// Shows the match play control interface.\nfunc (web *Web) matchPlayHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\n\t\t\"templates/match_play.html\", \"templates/audience_display_radio_buttons.html\", \"templates/base.html\",\n\t)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tPlcIsEnabled          bool\n\t\tPlcArmorBlockStatuses map[string]bool\n\t}{\n\t\tweb.arena.EventSettings,\n\t\tweb.arena.Plc.IsEnabled(),\n\t\tweb.arena.Plc.GetArmorBlockStatuses(),\n\t}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Renders a partial template containing the list of matches.\nfunc (web *Web) matchPlayMatchLoadHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tpracticeMatches, err := web.buildMatchPlayList(model.Practice)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tqualificationMatches, err := web.buildMatchPlayList(model.Qualification)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tplayoffMatches, err := web.buildMatchPlayList(model.Playoff)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tmatchesByType := map[model.MatchType]MatchPlayList{\n\t\tmodel.Practice:      practiceMatches,\n\t\tmodel.Qualification: qualificationMatches,\n\t\tmodel.Playoff:       playoffMatches,\n\t}\n\tcurrentMatchType := web.arena.CurrentMatch.Type\n\tif currentMatchType == model.Test {\n\t\tcurrentMatchType = model.Practice\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/match_play_match_load.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\tMatchesByType    map[model.MatchType]MatchPlayList\n\t\tCurrentMatchType model.MatchType\n\t}{\n\t\tmatchesByType,\n\t\tcurrentMatchType,\n\t}\n\terr = template.ExecuteTemplate(w, \"match_play_match_load.html\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for the match play client to send control commands and receive status updates.\nfunc (web *Web) matchPlayWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client, in a separate goroutine.\n\tgo ws.HandleNotifiers(\n\t\tweb.arena.MatchTimingNotifier,\n\t\tweb.arena.AllianceStationDisplayModeNotifier,\n\t\tweb.arena.ArenaStatusNotifier,\n\t\tweb.arena.AudienceDisplayModeNotifier,\n\t\tweb.arena.EventStatusNotifier,\n\t\tweb.arena.MatchLoadNotifier,\n\t\tweb.arena.MatchTimeNotifier,\n\t\tweb.arena.RealtimeScoreNotifier,\n\t\tweb.arena.ScorePostedNotifier,\n\t\tweb.arena.ScoringStatusNotifier,\n\t)\n\n\t// Loop, waiting for commands and responding to them, until the client closes the connection.\n\tfor {\n\t\tmessageType, data, err := ws.Read()\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\t// Client has closed the connection; nothing to do here.\n\t\t\t\treturn\n\t\t\t}\n\t\t\tlog.Println(err)\n\t\t\treturn\n\t\t}\n\n\t\tswitch messageType {\n\t\tcase \"loadMatch\":\n\t\t\targs := struct {\n\t\t\t\tMatchId int\n\t\t\t}{}\n\t\t\terr = mapstructure.Decode(data, &args)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\terr = web.arena.ResetMatch()\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif args.MatchId == 0 {\n\t\t\t\terr = web.arena.LoadTestMatch()\n\t\t\t} else {\n\t\t\t\tmatch, err := web.arena.Database.GetMatchById(args.MatchId)\n\t\t\t\tif err != nil {\n\t\t\t\t\tws.WriteError(err.Error())\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif match == nil {\n\t\t\t\t\tws.WriteError(fmt.Sprintf(\"invalid match ID %d\", args.MatchId))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\terr = web.arena.LoadMatch(match)\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase \"showResult\":\n\t\t\targs := struct {\n\t\t\t\tMatchId int\n\t\t\t}{}\n\t\t\terr = mapstructure.Decode(data, &args)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif args.MatchId == 0 {\n\t\t\t\t// Load an empty match to effectively clear the buffer.\n\t\t\t\tweb.arena.SavedMatch = &model.Match{}\n\t\t\t\tweb.arena.SavedMatchResult = model.NewMatchResult()\n\t\t\t\tweb.arena.ScorePostedNotifier.Notify()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmatch, err := web.arena.Database.GetMatchById(args.MatchId)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif match == nil {\n\t\t\t\tws.WriteError(fmt.Sprintf(\"invalid match ID %d\", args.MatchId))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmatchResult, err := web.arena.Database.GetMatchResultForMatch(match.Id)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif matchResult == nil {\n\t\t\t\tws.WriteError(fmt.Sprintf(\"No result found for match ID %d.\", args.MatchId))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif match.ShouldUpdateRankings() {\n\t\t\t\tweb.arena.SavedRankings, err = web.arena.Database.GetAllRankings()\n\t\t\t\tif err != nil {\n\t\t\t\t\tws.WriteError(err.Error())\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tweb.arena.SavedRankings = game.Rankings{}\n\t\t\t}\n\t\t\tweb.arena.SavedMatch = match\n\t\t\tweb.arena.SavedMatchResult = matchResult\n\t\t\tweb.arena.ScorePostedNotifier.Notify()\n\t\tcase \"substituteTeams\":\n\t\t\targs := struct {\n\t\t\t\tRed1  int\n\t\t\t\tRed2  int\n\t\t\t\tRed3  int\n\t\t\t\tBlue1 int\n\t\t\t\tBlue2 int\n\t\t\t\tBlue3 int\n\t\t\t}{}\n\t\t\terr = mapstructure.Decode(data, &args)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\terr = web.arena.SubstituteTeams(args.Red1, args.Red2, args.Red3, args.Blue1, args.Blue2, args.Blue3)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase \"toggleBypass\":\n\t\t\tstation, ok := data.(string)\n\t\t\tif !ok {\n\t\t\t\tws.WriteError(fmt.Sprintf(\"Failed to parse '%s' message.\", messageType))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif _, ok := web.arena.AllianceStations[station]; !ok {\n\t\t\t\tws.WriteError(fmt.Sprintf(\"Invalid alliance station '%s'.\", station))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.arena.AllianceStations[station].Bypass = !web.arena.AllianceStations[station].Bypass\n\t\t\tif err = ws.WriteNotifier(web.arena.ArenaStatusNotifier); err != nil {\n\t\t\t\tlog.Println(err)\n\t\t\t}\n\t\tcase \"startMatch\":\n\t\t\targs := struct {\n\t\t\t\tMuteMatchSounds bool\n\t\t\t}{}\n\t\t\terr = mapstructure.Decode(data, &args)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.arena.MuteMatchSounds = args.MuteMatchSounds\n\t\t\terr = web.arena.StartMatch()\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase \"abortMatch\":\n\t\t\terr = web.arena.AbortMatch()\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase \"signalVolunteers\":\n\t\t\tif web.arena.MatchState != field.PostMatch && web.arena.MatchState != field.PreMatch {\n\t\t\t\t// Don't allow clearing the field until the match is over.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.arena.FieldVolunteers = true\n\t\t\tweb.arena.AllianceStationDisplayMode = \"signalCount\"\n\t\t\tweb.arena.AllianceStationDisplayModeNotifier.Notify()\n\t\tcase \"signalReset\":\n\t\t\tif web.arena.MatchState != field.PostMatch && web.arena.MatchState != field.PreMatch {\n\t\t\t\t// Don't allow clearing the field until the match is over.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.arena.FieldVolunteers = false\n\t\t\tweb.arena.FieldReset = true\n\t\t\tweb.arena.AllianceStationDisplayMode = \"fieldReset\"\n\t\t\tweb.arena.AllianceStationDisplayModeNotifier.Notify()\n\t\tcase \"commitResults\":\n\t\t\tif web.arena.MatchState != field.PostMatch {\n\t\t\t\tws.WriteError(\"cannot commit match while it is in progress\")\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\terr = web.commitCurrentMatchScore()\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\terr = web.arena.ResetMatch()\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\terr = web.arena.LoadNextMatch(true)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase \"discardResults\":\n\t\t\terr = web.arena.ResetMatch()\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\terr = web.arena.LoadNextMatch(false)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase \"setAudienceDisplay\":\n\t\t\tmode, ok := data.(string)\n\t\t\tif !ok {\n\t\t\t\tws.WriteError(fmt.Sprintf(\"Failed to parse '%s' message.\", messageType))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.arena.SetAudienceDisplayMode(mode)\n\t\tcase \"setAllianceStationDisplay\":\n\t\t\tmode, ok := data.(string)\n\t\t\tif !ok {\n\t\t\t\tws.WriteError(fmt.Sprintf(\"Failed to parse '%s' message.\", messageType))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.arena.SetAllianceStationDisplayMode(mode)\n\t\tcase \"startTimeout\":\n\t\t\tdurationSec, ok := data.(float64)\n\t\t\tif !ok {\n\t\t\t\tws.WriteError(fmt.Sprintf(\"Failed to parse '%s' message.\", messageType))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\terr = web.arena.StartTimeout(\"Timeout\", int(durationSec))\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase \"setTestMatchName\":\n\t\t\tif web.arena.CurrentMatch.Type != model.Test {\n\t\t\t\t// Don't allow changing the name of a non-test match.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tname, ok := data.(string)\n\t\t\tif !ok {\n\t\t\t\tws.WriteError(fmt.Sprintf(\"Failed to parse '%s' message.\", messageType))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.arena.CurrentMatch.LongName = name\n\t\t\tweb.arena.MatchLoadNotifier.Notify()\n\t\tdefault:\n\t\t\tws.WriteError(fmt.Sprintf(\"Invalid message type '%s'.\", messageType))\n\t\t}\n\t}\n}\n\n// Saves the given match and result to the database, supplanting any previous result for the match.\nfunc (web *Web) commitMatchScore(match *model.Match, matchResult *model.MatchResult, isMatchReviewEdit bool) error {\n\tvar updatedRankings game.Rankings\n\n\tif match.Type == model.Playoff {\n\t\t// Adjust the score if necessary for a playoff DQ.\n\t\tmatchResult.CorrectPlayoffScore()\n\t}\n\n\t// Update the match record.\n\tmatch.ScoreCommittedAt = time.Now()\n\tredScoreSummary := matchResult.RedScoreSummary()\n\tblueScoreSummary := matchResult.BlueScoreSummary()\n\tmatch.Status = game.DetermineMatchStatus(redScoreSummary, blueScoreSummary, match.UseTiebreakCriteria)\n\n\tif match.Type != model.Test {\n\t\tif matchResult.PlayNumber == 0 {\n\t\t\t// Determine the play number for this new match result.\n\t\t\tprevMatchResult, err := web.arena.Database.GetMatchResultForMatch(match.Id)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif prevMatchResult != nil {\n\t\t\t\tmatchResult.PlayNumber = prevMatchResult.PlayNumber + 1\n\t\t\t} else {\n\t\t\t\tmatchResult.PlayNumber = 1\n\t\t\t}\n\n\t\t\t// Save the match result record to the database.\n\t\t\terr = web.arena.Database.CreateMatchResult(matchResult)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\t// We are updating a match result record that already exists.\n\t\t\terr := web.arena.Database.UpdateMatchResult(matchResult)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\terr := web.arena.Database.UpdateMatch(match)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif match.ShouldUpdateCards() {\n\t\t\t// Regenerate the residual yellow cards that teams may carry.\n\t\t\tif err = tournament.CalculateTeamCards(web.arena.Database, match.Type); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tif match.ShouldUpdateRankings() {\n\t\t\t// Recalculate all the rankings.\n\t\t\trankings, err := tournament.CalculateRankings(web.arena.Database, isMatchReviewEdit)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tupdatedRankings = rankings\n\t\t}\n\n\t\tif match.ShouldUpdatePlayoffMatches() {\n\t\t\tif err = web.arena.Database.UpdateAllianceFromMatch(\n\t\t\t\tmatch.PlayoffRedAlliance, [3]int{match.Red1, match.Red2, match.Red3},\n\t\t\t); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err = web.arena.Database.UpdateAllianceFromMatch(\n\t\t\t\tmatch.PlayoffBlueAlliance, [3]int{match.Blue1, match.Blue2, match.Blue3},\n\t\t\t); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Populate any subsequent playoff matches.\n\t\t\tif err = web.arena.UpdatePlayoffTournament(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Generate awards if the tournament is over.\n\t\t\tif web.arena.PlayoffTournament.IsComplete() {\n\t\t\t\twinnerAllianceId := web.arena.PlayoffTournament.WinningAllianceId()\n\t\t\t\tfinalistAllianceId := web.arena.PlayoffTournament.FinalistAllianceId()\n\t\t\t\tif err = tournament.CreateOrUpdateWinnerAndFinalistAwards(\n\t\t\t\t\tweb.arena.Database, winnerAllianceId, finalistAllianceId,\n\t\t\t\t); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif web.arena.EventSettings.TbaPublishingEnabled && match.Type != model.Practice {\n\t\t\t// Publish asynchronously to The Blue Alliance.\n\t\t\tgo func() {\n\t\t\t\tif err = web.arena.TbaClient.PublishMatches(web.arena.Database); err != nil {\n\t\t\t\t\tlog.Printf(\"Failed to publish matches: %s\", err.Error())\n\t\t\t\t}\n\t\t\t\tif match.ShouldUpdateRankings() {\n\t\t\t\t\tif err = web.arena.TbaClient.PublishRankings(web.arena.Database); err != nil {\n\t\t\t\t\t\tlog.Printf(\"Failed to publish rankings: %s\", err.Error())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}()\n\t\t}\n\n\t\t// Back up the database, but don't error out if it fails.\n\t\terr = web.arena.Database.Backup(\n\t\t\tweb.arena.EventSettings.Name, fmt.Sprintf(\"post_%s_match_%s\", match.Type, match.ShortName),\n\t\t)\n\t\tif err != nil {\n\t\t\tlog.Println(err)\n\t\t}\n\t}\n\n\tif !isMatchReviewEdit {\n\t\t// Store the result in the buffer to be shown in the audience display.\n\t\tweb.arena.SavedMatch = match\n\t\tweb.arena.SavedMatchResult = matchResult\n\t\tweb.arena.SavedRankings = updatedRankings\n\t\tweb.arena.ScorePostedNotifier.Notify()\n\t}\n\n\treturn nil\n}\n\nfunc (web *Web) getCurrentMatchResult() *model.MatchResult {\n\treturn &model.MatchResult{\n\t\tMatchId:   web.arena.CurrentMatch.Id,\n\t\tMatchType: web.arena.CurrentMatch.Type,\n\t\tRedScore:  &web.arena.RedRealtimeScore.CurrentScore,\n\t\tBlueScore: &web.arena.BlueRealtimeScore.CurrentScore,\n\t\tRedCards:  web.arena.RedRealtimeScore.Cards,\n\t\tBlueCards: web.arena.BlueRealtimeScore.Cards,\n\t}\n}\n\n// Saves the realtime result as the final score for the match currently loaded into the arena.\nfunc (web *Web) commitCurrentMatchScore() error {\n\treturn web.commitMatchScore(web.arena.CurrentMatch, web.getCurrentMatchResult(), false)\n}\n\n// Helper function to implement the required interface for Sort.\nfunc (list MatchPlayList) Len() int {\n\treturn len(list)\n}\n\n// Helper function to implement the required interface for Sort.\nfunc (list MatchPlayList) Less(i, j int) bool {\n\treturn list[i].Status == game.MatchScheduled && list[j].Status != game.MatchScheduled\n}\n\n// Helper function to implement the required interface for Sort.\nfunc (list MatchPlayList) Swap(i, j int) {\n\tlist[i], list[j] = list[j], list[i]\n}\n\n// Constructs the list of matches to display on the side of the match play interface.\nfunc (web *Web) buildMatchPlayList(matchType model.MatchType) (MatchPlayList, error) {\n\tmatches, err := web.arena.Database.GetMatchesByType(matchType, false)\n\tif err != nil {\n\t\treturn MatchPlayList{}, err\n\t}\n\n\tmatchPlayList := make(MatchPlayList, len(matches))\n\tfor i, match := range matches {\n\t\tmatchPlayList[i].Id = match.Id\n\t\tmatchPlayList[i].ShortName = match.ShortName\n\t\tmatchPlayList[i].Time = match.Time.Local().Format(\"3:04 PM\")\n\t\tmatchPlayList[i].Status = match.Status\n\t\tswitch match.Status {\n\t\tcase game.RedWonMatch:\n\t\t\tmatchPlayList[i].ColorClass = \"red\"\n\t\tcase game.BlueWonMatch:\n\t\t\tmatchPlayList[i].ColorClass = \"blue\"\n\t\tcase game.TieMatch:\n\t\t\tmatchPlayList[i].ColorClass = \"yellow\"\n\t\tdefault:\n\t\t\tmatchPlayList[i].ColorClass = \"\"\n\t\t}\n\t\tif web.arena.CurrentMatch != nil && matchPlayList[i].Id == web.arena.CurrentMatch.Id {\n\t\t\tmatchPlayList[i].ColorClass = \"green\"\n\t\t}\n\t}\n\n\t// Sort the list to put all completed matches at the bottom.\n\tsort.Stable(matchPlayList)\n\n\treturn matchPlayList, nil\n}\n"
  },
  {
    "path": "web/match_play_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"bytes\"\n\t\"github.com/Team254/cheesy-arena/field\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/tournament\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/mitchellh/mapstructure\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"log\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestMatchPlay(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\t// Check that some text near the bottom of the page is present.\n\trecorder := web.getHttpResponse(\"/match_play\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Are you sure you want to discard the results for this match?\")\n}\n\nfunc TestMatchPlayMatchList(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tmatch1 := model.Match{Type: model.Practice, ShortName: \"P1\", Status: game.RedWonMatch}\n\tmatch2 := model.Match{Type: model.Practice, ShortName: \"P2\"}\n\tmatch3 := model.Match{Type: model.Qualification, ShortName: \"Q1\", Status: game.BlueWonMatch}\n\tmatch4 := model.Match{Type: model.Playoff, ShortName: \"SF1-1\", Status: game.TieMatch}\n\tmatch5 := model.Match{Type: model.Playoff, ShortName: \"SF1-2\"}\n\tweb.arena.Database.CreateMatch(&match1)\n\tweb.arena.Database.CreateMatch(&match2)\n\tweb.arena.Database.CreateMatch(&match3)\n\tweb.arena.Database.CreateMatch(&match4)\n\tweb.arena.Database.CreateMatch(&match5)\n\n\t// Check that all matches are listed on the page.\n\trecorder := web.getHttpResponse(\"/match_play/match_load\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"P1\")\n\tassert.Contains(t, recorder.Body.String(), \"P2\")\n\tassert.Contains(t, recorder.Body.String(), \"Q1\")\n\tassert.Contains(t, recorder.Body.String(), \"SF1-1\")\n\tassert.Contains(t, recorder.Body.String(), \"SF1-2\")\n}\n\nfunc TestCommitMatch(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\t// Committing test match should update the stored saved match but not persist anything.\n\tmatch := &model.Match{Id: 0, Type: model.Test, Red1: 101, Red2: 102, Red3: 103, Blue1: 104, Blue2: 105, Blue3: 106}\n\tmatchResult := &model.MatchResult{MatchId: match.Id, RedScore: &game.Score{}, BlueScore: &game.Score{}}\n\tmatchResult.BlueScore.LeaveStatuses[2] = true\n\terr := web.commitMatchScore(match, matchResult, false)\n\tassert.Nil(t, err)\n\tmatchResult, err = web.arena.Database.GetMatchResultForMatch(match.Id)\n\tassert.Nil(t, err)\n\tassert.Nil(t, matchResult)\n\tassert.Equal(t, match, web.arena.SavedMatch)\n\tassert.Equal(t, game.BlueWonMatch, web.arena.SavedMatch.Status)\n\n\t// Committing the same match more than once should create a second match result record.\n\tmatch.Type = model.Qualification\n\tassert.Nil(t, web.arena.Database.CreateMatch(match))\n\tmatchResult = model.NewMatchResult()\n\tmatchResult.MatchId = match.Id\n\tmatchResult.BlueScore = &game.Score{LeaveStatuses: [3]bool{true, false, false}}\n\terr = web.commitMatchScore(match, matchResult, true)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 1, matchResult.PlayNumber)\n\tmatch, _ = web.arena.Database.GetMatchById(1)\n\tassert.Equal(t, game.BlueWonMatch, match.Status)\n\n\tmatchResult = model.NewMatchResult()\n\tmatchResult.MatchId = match.Id\n\tmatchResult.RedScore = &game.Score{LeaveStatuses: [3]bool{true, false, true}}\n\terr = web.commitMatchScore(match, matchResult, true)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 2, matchResult.PlayNumber)\n\tmatch, _ = web.arena.Database.GetMatchById(1)\n\tassert.Equal(t, game.RedWonMatch, match.Status)\n\n\tmatchResult = model.NewMatchResult()\n\tmatchResult.MatchId = match.Id\n\terr = web.commitMatchScore(match, matchResult, true)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 3, matchResult.PlayNumber)\n\tmatch, _ = web.arena.Database.GetMatchById(1)\n\tassert.Equal(t, game.TieMatch, match.Status)\n\n\t// Verify TBA publishing by checking the log for the expected failure messages.\n\tweb.arena.TbaClient.BaseUrl = \"fakeUrl\"\n\tweb.arena.EventSettings.TbaPublishingEnabled = true\n\tvar writer bytes.Buffer\n\tlog.SetOutput(&writer)\n\terr = web.commitMatchScore(match, matchResult, true)\n\tassert.Nil(t, err)\n\ttime.Sleep(time.Millisecond * 100) // Allow some time for the asynchronous publishing to happen.\n\tassert.Contains(t, writer.String(), \"Failed to publish matches\")\n\tassert.Contains(t, writer.String(), \"Failed to publish rankings\")\n}\n\nfunc TestCommitTiebreak(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tmatch := &model.Match{\n\t\tType:                model.Qualification,\n\t\tTypeOrder:           1,\n\t\tRed1:                1,\n\t\tRed2:                2,\n\t\tRed3:                3,\n\t\tBlue1:               4,\n\t\tBlue2:               5,\n\t\tBlue3:               6,\n\t\tUseTiebreakCriteria: false,\n\t}\n\tweb.arena.Database.CreateMatch(match)\n\tmatchResult := &model.MatchResult{\n\t\tMatchId: match.Id,\n\t\t// These should all be fields that aren't part of the tiebreaker.\n\t\tRedScore: &game.Score{\n\t\t\tReef:  game.Reef{TroughFar: 1},\n\t\t\tFouls: []game.Foul{{FoulId: 1, IsMajor: false}, {FoulId: 2, IsMajor: false}},\n\t\t},\n\t\tBlueScore: &game.Score{\n\t\t\tFouls: []game.Foul{{FoulId: 3, IsMajor: false}},\n\t\t},\n\t}\n\n\t// Sanity check that the test scores are equal; they will need to be updated accordingly for each new game.\n\tassert.Equal(\n\t\tt,\n\t\tmatchResult.RedScore.Summarize(matchResult.BlueScore).Score,\n\t\tmatchResult.BlueScore.Summarize(matchResult.RedScore).Score,\n\t)\n\n\terr := web.commitMatchScore(match, matchResult, true)\n\tassert.Nil(t, err)\n\tmatch, _ = web.arena.Database.GetMatchById(1)\n\tassert.Equal(t, game.TieMatch, match.Status)\n\n\t// The match should still be tied since the tiebreaker criteria for a perfect tie are fulfilled.\n\tmatch.UseTiebreakCriteria = true\n\tweb.arena.Database.UpdateMatch(match)\n\terr = web.commitMatchScore(match, matchResult, true)\n\tassert.Nil(t, err)\n\tmatch, _ = web.arena.Database.GetMatchById(1)\n\tassert.Equal(t, game.TieMatch, match.Status)\n\n\t// Change the score to still be equal nominally but trigger the tiebreaker criteria.\n\tmatchResult.BlueScore.ProcessorAlgae = 1\n\tmatchResult.BlueScore.Fouls = []game.Foul{{FoulId: 3, IsMajor: false}, {FoulId: 4, IsMajor: true}}\n\n\t// Sanity check that the test scores are equal; they will need to be updated accordingly for each new game.\n\tassert.Equal(\n\t\tt,\n\t\tmatchResult.RedScore.Summarize(matchResult.BlueScore).Score,\n\t\tmatchResult.BlueScore.Summarize(matchResult.RedScore).Score,\n\t)\n\n\terr = web.commitMatchScore(match, matchResult, true)\n\tassert.Nil(t, err)\n\tmatch, _ = web.arena.Database.GetMatchById(1)\n\tassert.Equal(t, game.RedWonMatch, match.Status)\n\n\t// Swap red and blue and verify that the tie is broken in the other direction.\n\tmatchResult.RedScore, matchResult.BlueScore = matchResult.BlueScore, matchResult.RedScore\n\n\t// Sanity check that the test scores are equal; they will need to be updated accordingly for each new game.\n\tassert.Equal(\n\t\tt,\n\t\tmatchResult.RedScore.Summarize(matchResult.BlueScore).Score,\n\t\tmatchResult.BlueScore.Summarize(matchResult.RedScore).Score,\n\t)\n\n\terr = web.commitMatchScore(match, matchResult, true)\n\tassert.Nil(t, err)\n\tmatch, _ = web.arena.Database.GetMatchById(1)\n\tassert.Equal(t, game.BlueWonMatch, match.Status)\n}\n\nfunc TestCommitCards(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\t// Check that a yellow card sticks with a team.\n\tteam1 := &model.Team{Id: 3}\n\tteam2 := &model.Team{Id: 5}\n\tweb.arena.Database.CreateTeam(team1)\n\tweb.arena.Database.CreateTeam(team2)\n\tmatch := &model.Match{Id: 0, Type: model.Qualification, Red1: 1, Red2: 2, Red3: 3, Blue1: 4, Blue2: 5, Blue3: 6}\n\tassert.Nil(t, web.arena.Database.CreateMatch(match))\n\tmatchResult := model.NewMatchResult()\n\tmatchResult.MatchId = match.Id\n\tmatchResult.RedCards = map[string]string{\"3\": \"yellow\"}\n\tmatchResult.BlueCards = map[string]string{\"5\": \"yellow\"}\n\terr := web.commitMatchScore(match, matchResult, true)\n\tassert.Nil(t, err)\n\tteam1, _ = web.arena.Database.GetTeamById(3)\n\tassert.True(t, team1.YellowCard)\n\tteam2, _ = web.arena.Database.GetTeamById(5)\n\tassert.True(t, team2.YellowCard)\n\n\t// Check that editing a match result removes a yellow card from a team.\n\tmatchResult = model.NewMatchResult()\n\tmatchResult.MatchId = match.Id\n\terr = web.commitMatchScore(match, matchResult, true)\n\tassert.Nil(t, err)\n\tteam1, _ = web.arena.Database.GetTeamById(3)\n\tassert.False(t, team1.YellowCard)\n\tteam2, _ = web.arena.Database.GetTeamById(5)\n\tassert.False(t, team2.YellowCard)\n\n\t// Check that a red card causes a yellow card to stick with a team.\n\tmatchResult = model.NewMatchResult()\n\tmatchResult.MatchId = match.Id\n\tmatchResult.RedCards = map[string]string{\"3\": \"red\"}\n\tmatchResult.BlueCards = map[string]string{\"5\": \"red\"}\n\terr = web.commitMatchScore(match, matchResult, true)\n\tassert.Nil(t, err)\n\tteam1, _ = web.arena.Database.GetTeamById(3)\n\tassert.True(t, team1.YellowCard)\n\tteam2, _ = web.arena.Database.GetTeamById(5)\n\tassert.True(t, team2.YellowCard)\n\n\t// Check that a DQ does not cause a yellow card to stick with a team.\n\tmatchResult = model.NewMatchResult()\n\tmatchResult.MatchId = match.Id\n\tmatchResult.RedCards = map[string]string{\"3\": \"dq\"}\n\tmatchResult.BlueCards = map[string]string{\"5\": \"dq\"}\n\terr = web.commitMatchScore(match, matchResult, true)\n\tassert.Nil(t, err)\n\tteam1, _ = web.arena.Database.GetTeamById(3)\n\tassert.False(t, team1.YellowCard)\n\tteam2, _ = web.arena.Database.GetTeamById(5)\n\tassert.False(t, team2.YellowCard)\n\n\t// Check that a red card in playoffs zeroes out the score.\n\ttournament.CreateTestAlliances(web.arena.Database, 2)\n\tweb.arena.EventSettings.PlayoffType = model.SingleEliminationPlayoff\n\tweb.arena.EventSettings.NumPlayoffAlliances = 2\n\tweb.arena.CreatePlayoffTournament()\n\tweb.arena.CreatePlayoffMatches(time.Now())\n\tmatch.Type = model.Playoff\n\tmatch.PlayoffRedAlliance = 1\n\tmatch.PlayoffBlueAlliance = 2\n\tweb.arena.Database.UpdateMatch(match)\n\tmatchResult = model.BuildTestMatchResult(match.Id, 0)\n\tmatchResult.MatchType = match.Type\n\tmatchResult.RedCards = map[string]string{\"1\": \"red\"}\n\tassert.Nil(t, web.commitMatchScore(match, matchResult, true))\n\tassert.Equal(t, 0, matchResult.RedScoreSummary().Score)\n\tassert.NotEqual(t, 0, matchResult.BlueScoreSummary().Score)\n\n\t// Check that a DQ in playoffs zeroes out the score.\n\tmatchResult.RedCards = map[string]string{}\n\tmatchResult.BlueCards = map[string]string{\"5\": \"dq\"}\n\tassert.Nil(t, web.commitMatchScore(match, matchResult, true))\n\tassert.NotEqual(t, 0, matchResult.RedScoreSummary().Score)\n\tassert.Equal(t, 0, matchResult.BlueScoreSummary().Score)\n}\n\nfunc TestMatchPlayWebsocketCommands(t *testing.T) {\n\tweb := setupTestWeb(t)\n\tweb.arena.Database.CreateTeam(&model.Team{Id: 254})\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/match_play/websocket\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"matchTiming\")\n\treadWebsocketType(t, ws, \"allianceStationDisplayMode\")\n\treadWebsocketType(t, ws, \"arenaStatus\")\n\treadWebsocketType(t, ws, \"audienceDisplayMode\")\n\treadWebsocketType(t, ws, \"eventStatus\")\n\treadWebsocketType(t, ws, \"matchLoad\")\n\treadWebsocketType(t, ws, \"matchTime\")\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\treadWebsocketType(t, ws, \"scorePosted\")\n\treadWebsocketType(t, ws, \"scoringStatus\")\n\n\t// Test that a server-side error is communicated to the client.\n\tws.Write(\"nonexistenttype\", nil)\n\tassert.Contains(t, readWebsocketError(t, ws), \"Invalid message type\")\n\n\t// Test match setup commands.\n\tws.Write(\"substituteTeams\", map[string]int{\"Red1\": 0, \"Red2\": 0, \"Red3\": 0, \"Blue1\": 1, \"Blue2\": 0, \"Blue3\": 0})\n\tassert.Equal(t, readWebsocketError(t, ws), \"Team 1 is not present at the event.\")\n\tws.Write(\"substituteTeams\", map[string]int{\"Red1\": 0, \"Red2\": 0, \"Red3\": 0, \"Blue1\": 254, \"Blue2\": 0, \"Blue3\": 0})\n\treadWebsocketType(t, ws, \"matchLoad\")\n\tassert.Equal(t, 254, web.arena.CurrentMatch.Blue1)\n\tws.Write(\"substituteTeams\", map[string]int{\"Red1\": 0, \"Red2\": 0, \"Red3\": 0, \"Blue1\": 0, \"Blue2\": 0, \"Blue3\": 0})\n\treadWebsocketType(t, ws, \"matchLoad\")\n\tassert.Equal(t, 0, web.arena.CurrentMatch.Blue1)\n\tws.Write(\"toggleBypass\", nil)\n\tassert.Contains(t, readWebsocketError(t, ws), \"Failed to parse\")\n\tws.Write(\"toggleBypass\", \"R4\")\n\tassert.Contains(t, readWebsocketError(t, ws), \"Invalid alliance station\")\n\tws.Write(\"toggleBypass\", \"R3\")\n\treadWebsocketType(t, ws, \"arenaStatus\")\n\tassert.Equal(t, true, web.arena.AllianceStations[\"R3\"].Bypass)\n\tws.Write(\"toggleBypass\", \"R3\")\n\treadWebsocketType(t, ws, \"arenaStatus\")\n\tassert.Equal(t, false, web.arena.AllianceStations[\"R3\"].Bypass)\n\n\t// Go through match flow.\n\tws.Write(\"abortMatch\", nil)\n\tassert.Contains(t, readWebsocketError(t, ws), \"cannot abort match\")\n\tws.Write(\"startMatch\", nil)\n\tassert.Contains(t, readWebsocketError(t, ws), \"cannot start match\")\n\tweb.arena.AllianceStations[\"R1\"].Bypass = true\n\tweb.arena.AllianceStations[\"R2\"].Bypass = true\n\tweb.arena.AllianceStations[\"R3\"].Bypass = true\n\tweb.arena.AllianceStations[\"B1\"].Bypass = true\n\tweb.arena.AllianceStations[\"B2\"].Bypass = true\n\tweb.arena.AllianceStations[\"B3\"].Bypass = true\n\tws.Write(\"startMatch\", nil)\n\treadWebsocketType(t, ws, \"eventStatus\")\n\tassert.Equal(t, field.StartMatch, web.arena.MatchState)\n\tws.Write(\"commitResults\", nil)\n\tassert.Contains(t, readWebsocketError(t, ws), \"cannot commit match while it is in progress\")\n\tws.Write(\"discardResults\", nil)\n\tassert.Contains(t, readWebsocketError(t, ws), \"cannot reset match while it is in progress\")\n\tws.Write(\"abortMatch\", nil)\n\treadWebsocketType(t, ws, \"audienceDisplayMode\")\n\tassert.Equal(t, field.PostMatch, web.arena.MatchState)\n\tweb.arena.RedRealtimeScore.CurrentScore.BargeAlgae = 6\n\tweb.arena.BlueRealtimeScore.CurrentScore.LeaveStatuses = [3]bool{true, false, true}\n\tws.Write(\"commitResults\", nil)\n\treadWebsocketMultiple(t, ws, 5) // scorePosted, matchLoad, realtimeScore, allianceStationDisplayMode, scoringStatus\n\tassert.Equal(t, 6, web.arena.SavedMatchResult.RedScore.BargeAlgae)\n\tassert.Equal(t, [3]bool{true, false, true}, web.arena.SavedMatchResult.BlueScore.LeaveStatuses)\n\tassert.Equal(t, field.PreMatch, web.arena.MatchState)\n\tws.Write(\"discardResults\", nil)\n\treadWebsocketMultiple(t, ws, 4) // matchLoad, realtimeScore, allianceStationDisplayMode, scoringStatus\n\tassert.Equal(t, field.PreMatch, web.arena.MatchState)\n\n\t// Test changing the displays.\n\tws.Write(\"setAudienceDisplay\", \"logo\")\n\treadWebsocketType(t, ws, \"audienceDisplayMode\")\n\tassert.Equal(t, \"logo\", web.arena.AudienceDisplayMode)\n\tws.Write(\"setAllianceStationDisplay\", \"logo\")\n\treadWebsocketType(t, ws, \"allianceStationDisplayMode\")\n\tassert.Equal(t, \"logo\", web.arena.AllianceStationDisplayMode)\n}\n\nfunc TestMatchPlayWebsocketLoadMatch(t *testing.T) {\n\tweb := setupTestWeb(t)\n\ttournament.CreateTestAlliances(web.arena.Database, 8)\n\tweb.arena.CreatePlayoffTournament()\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/match_play/websocket\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketMultiple(t, ws, 10)\n\n\tweb.arena.Database.CreateTeam(&model.Team{Id: 101})\n\tweb.arena.Database.CreateTeam(&model.Team{Id: 102})\n\tweb.arena.Database.CreateTeam(&model.Team{Id: 103})\n\tweb.arena.Database.CreateTeam(&model.Team{Id: 104})\n\tweb.arena.Database.CreateTeam(&model.Team{Id: 105})\n\tweb.arena.Database.CreateTeam(&model.Team{Id: 106})\n\tmatch := model.Match{\n\t\tType:      model.Playoff,\n\t\tShortName: \"QF4-3\",\n\t\tStatus:    game.RedWonMatch,\n\t\tRed1:      101,\n\t\tRed2:      102,\n\t\tRed3:      103,\n\t\tBlue1:     104,\n\t\tBlue2:     105,\n\t\tBlue3:     106,\n\t}\n\tweb.arena.Database.CreateMatch(&match)\n\n\tmatchIdMessage := struct{ MatchId int }{match.Id}\n\tws.Write(\"loadMatch\", matchIdMessage)\n\treadWebsocketType(t, ws, \"matchLoad\")\n\treadWebsocketMultiple(t, ws, 3)\n\tassert.Equal(t, 101, web.arena.CurrentMatch.Red1)\n\tassert.Equal(t, 102, web.arena.CurrentMatch.Red2)\n\tassert.Equal(t, 103, web.arena.CurrentMatch.Red3)\n\tassert.Equal(t, 104, web.arena.CurrentMatch.Blue1)\n\tassert.Equal(t, 105, web.arena.CurrentMatch.Blue2)\n\tassert.Equal(t, 106, web.arena.CurrentMatch.Blue3)\n\n\t// Load a test match.\n\tmatchIdMessage.MatchId = 0\n\tws.Write(\"loadMatch\", matchIdMessage)\n\treadWebsocketType(t, ws, \"matchLoad\")\n\treadWebsocketMultiple(t, ws, 3)\n\tassert.Equal(t, 0, web.arena.CurrentMatch.Red1)\n\tassert.Equal(t, 0, web.arena.CurrentMatch.Red2)\n\tassert.Equal(t, 0, web.arena.CurrentMatch.Red3)\n\tassert.Equal(t, 0, web.arena.CurrentMatch.Blue1)\n\tassert.Equal(t, 0, web.arena.CurrentMatch.Blue2)\n\tassert.Equal(t, 0, web.arena.CurrentMatch.Blue3)\n\n\t// Load a nonexistent match.\n\tmatchIdMessage.MatchId = 254\n\tws.Write(\"loadMatch\", matchIdMessage)\n\tassert.Contains(t, readWebsocketError(t, ws), \"invalid match ID 254\")\n}\n\nfunc TestMatchPlayWebsocketShowAndClearResult(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/match_play/websocket\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketMultiple(t, ws, 10)\n\n\tmatchIdMessage := struct{ MatchId int }{1}\n\tws.Write(\"showResult\", matchIdMessage)\n\tassert.Contains(t, readWebsocketError(t, ws), \"invalid match ID 1\")\n\n\tmatch := model.Match{Type: model.Qualification, ShortName: \"Q1\", Status: game.TieMatch}\n\tweb.arena.Database.CreateMatch(&match)\n\tws.Write(\"showResult\", matchIdMessage)\n\tassert.Contains(t, readWebsocketError(t, ws), \"No result found\")\n\n\tweb.arena.Database.CreateMatchResult(model.BuildTestMatchResult(match.Id, 1))\n\tws.Write(\"showResult\", matchIdMessage)\n\treadWebsocketType(t, ws, \"scorePosted\")\n\tassert.Equal(t, match.Id, web.arena.SavedMatch.Id)\n\tassert.Equal(t, match.Id, web.arena.SavedMatchResult.MatchId)\n\n\tmatchIdMessage.MatchId = 0\n\tws.Write(\"showResult\", matchIdMessage)\n\treadWebsocketType(t, ws, \"scorePosted\")\n\tassert.Equal(t, model.Match{}, *web.arena.SavedMatch)\n\tassert.Equal(t, *model.NewMatchResult(), *web.arena.SavedMatchResult)\n}\n\nfunc TestMatchPlayWebsocketNotifications(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tweb.arena.Database.CreateTeam(&model.Team{Id: 254})\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/match_play/websocket\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketMultiple(t, ws, 10)\n\n\tweb.arena.AllianceStations[\"R1\"].Bypass = true\n\tweb.arena.AllianceStations[\"R2\"].Bypass = true\n\tweb.arena.AllianceStations[\"R3\"].Bypass = true\n\tweb.arena.AllianceStations[\"B1\"].Bypass = true\n\tweb.arena.AllianceStations[\"B2\"].Bypass = true\n\tweb.arena.AllianceStations[\"B3\"].Bypass = true\n\tassert.Nil(t, web.arena.StartMatch())\n\tweb.arena.Update()\n\tmessages := readWebsocketMultiple(t, ws, 5)\n\t_, ok := messages[\"matchTime\"]\n\tassert.True(t, ok)\n\t_, ok = messages[\"audienceDisplayMode\"]\n\tassert.True(t, ok)\n\t_, ok = messages[\"allianceStationDisplayMode\"]\n\tassert.True(t, ok)\n\t_, ok = messages[\"eventStatus\"]\n\tassert.True(t, ok)\n\tweb.arena.MatchStartTime = time.Now().Add(-time.Duration(game.MatchTiming.WarmupDurationSec) * time.Second)\n\tweb.arena.Update()\n\tmessages = readWebsocketMultiple(t, ws, 2)\n\tstatusReceived, matchTime := getStatusMatchTime(t, messages)\n\tassert.Equal(t, true, statusReceived)\n\tassert.Equal(t, field.AutoPeriod, matchTime.MatchState)\n\tassert.Equal(t, 3, matchTime.MatchTimeSec)\n\tweb.arena.ScoringStatusNotifier.Notify()\n\treadWebsocketType(t, ws, \"scoringStatus\")\n\n\t// Should get a tick notification when an integer second threshold is crossed.\n\tweb.arena.MatchStartTime = time.Now().Add(-time.Second - 10*time.Millisecond) // Crossed\n\tweb.arena.Update()\n\terr = mapstructure.Decode(readWebsocketType(t, ws, \"matchTime\"), &matchTime)\n\tassert.Nil(t, err)\n\tassert.Equal(t, field.AutoPeriod, matchTime.MatchState)\n\tassert.Equal(t, 1, matchTime.MatchTimeSec)\n\tweb.arena.MatchStartTime = time.Now().Add(-2*time.Second + 10*time.Millisecond) // Not crossed yet\n\tweb.arena.Update()\n\tweb.arena.MatchStartTime = time.Now().Add(-2*time.Second - 10*time.Millisecond) // Crossed\n\tweb.arena.Update()\n\terr = mapstructure.Decode(readWebsocketType(t, ws, \"matchTime\"), &matchTime)\n\tassert.Nil(t, err)\n\tassert.Equal(t, field.AutoPeriod, matchTime.MatchState)\n\tassert.Equal(t, 2, matchTime.MatchTimeSec)\n\n\t// Check across a match state boundary.\n\tweb.arena.MatchStartTime = time.Now().Add(\n\t\t-time.Duration(game.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec) * time.Second,\n\t)\n\tweb.arena.Update()\n\tstatusReceived, matchTime = readWebsocketStatusMatchTime(t, ws)\n\tassert.Equal(t, true, statusReceived)\n\tassert.Equal(t, field.PausePeriod, matchTime.MatchState)\n\tassert.Equal(t, game.MatchTiming.WarmupDurationSec+game.MatchTiming.AutoDurationSec, matchTime.MatchTimeSec)\n}\n\n// Handles the status and matchTime messages arriving in either order.\nfunc readWebsocketStatusMatchTime(t *testing.T, ws *websocket.Websocket) (bool, field.MatchTimeMessage) {\n\treturn getStatusMatchTime(t, readWebsocketMultiple(t, ws, 2))\n}\n\nfunc getStatusMatchTime(t *testing.T, messages map[string]any) (bool, field.MatchTimeMessage) {\n\t_, statusReceived := messages[\"arenaStatus\"]\n\tmessage, ok := messages[\"matchTime\"]\n\tvar matchTime field.MatchTimeMessage\n\tif assert.True(t, ok) {\n\t\terr := mapstructure.Decode(message, &matchTime)\n\t\tassert.Nil(t, err)\n\t}\n\treturn statusReceived, matchTime\n}\n"
  },
  {
    "path": "web/match_review.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for editing match results.\n\npackage web\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"net/http\"\n\t\"strconv\"\n)\n\ntype MatchReviewListItem struct {\n\tId         int\n\tShortName  string\n\tTime       string\n\tRedTeams   []int\n\tBlueTeams  []int\n\tRedScore   int\n\tBlueScore  int\n\tColorClass string\n\tIsComplete bool\n}\n\n// Shows the match review interface.\nfunc (web *Web) matchReviewHandler(w http.ResponseWriter, r *http.Request) {\n\tpracticeMatches, err := web.buildMatchReviewList(model.Practice)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tqualificationMatches, err := web.buildMatchReviewList(model.Qualification)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tplayoffMatches, err := web.buildMatchReviewList(model.Playoff)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/match_review.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tmatchesByType := map[model.MatchType][]MatchReviewListItem{\n\t\tmodel.Practice:      practiceMatches,\n\t\tmodel.Qualification: qualificationMatches,\n\t\tmodel.Playoff:       playoffMatches,\n\t}\n\tcurrentMatchType := web.arena.CurrentMatch.Type\n\tif currentMatchType == model.Test {\n\t\tcurrentMatchType = model.Practice\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tMatchesByType    map[model.MatchType][]MatchReviewListItem\n\t\tCurrentMatchType model.MatchType\n\t}{web.arena.EventSettings, matchesByType, currentMatchType}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Shows the page to edit the results for a match.\nfunc (web *Web) matchReviewEditGetHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tmatch, matchResult, isCurrent, err := web.getMatchResultFromRequest(r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/edit_match_result.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tmatchResultJson, err := json.Marshal(matchResult)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tMatch           *model.Match\n\t\tMatchResultJson string\n\t\tIsCurrentMatch  bool\n\t\tRules           map[int]*game.Rule\n\t}{web.arena.EventSettings, match, string(matchResultJson), isCurrent, game.GetAllRules()}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Updates the results for a match.\nfunc (web *Web) matchReviewEditPostHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tmatch, _, isCurrent, err := web.getMatchResultFromRequest(r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tvar matchResult model.MatchResult\n\tif err = json.Unmarshal([]byte(r.PostFormValue(\"matchResultJson\")), &matchResult); err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tif matchResult.MatchId != match.Id {\n\t\thandleWebErr(w, fmt.Errorf(\"Error: match ID %d from result does not match expected\", matchResult.MatchId))\n\t\treturn\n\t}\n\n\tif isCurrent {\n\t\t// If editing the current match, just save it back to memory.\n\t\tweb.arena.RedRealtimeScore.CurrentScore = *matchResult.RedScore\n\t\tweb.arena.BlueRealtimeScore.CurrentScore = *matchResult.BlueScore\n\t\tweb.arena.RedRealtimeScore.Cards = matchResult.RedCards\n\t\tweb.arena.BlueRealtimeScore.Cards = matchResult.BlueCards\n\n\t\tweb.arena.RealtimeScoreNotifier.Notify()\n\n\t\thttp.Redirect(w, r, \"/match_play\", 303)\n\t} else {\n\t\terr = web.commitMatchScore(match, &matchResult, true)\n\t\tif err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\n\t\thttp.Redirect(w, r, \"/match_review\", 303)\n\t}\n}\n\n// Load the match result for the match referenced in the HTTP query string.\nfunc (web *Web) getMatchResultFromRequest(r *http.Request) (*model.Match, *model.MatchResult, bool, error) {\n\t// If editing the current match, get it from memory instead of the DB.\n\tif r.PathValue(\"matchId\") == \"current\" {\n\t\treturn web.arena.CurrentMatch, web.getCurrentMatchResult(), true, nil\n\t}\n\n\tmatchId, _ := strconv.Atoi(r.PathValue(\"matchId\"))\n\tmatch, err := web.arena.Database.GetMatchById(matchId)\n\tif err != nil {\n\t\treturn nil, nil, false, err\n\t}\n\tif match == nil {\n\t\treturn nil, nil, false, fmt.Errorf(\"Error: No such match: %d\", matchId)\n\t}\n\tmatchResult, err := web.arena.Database.GetMatchResultForMatch(matchId)\n\tif err != nil {\n\t\treturn nil, nil, false, err\n\t}\n\tif matchResult == nil {\n\t\t// We're scoring a match that hasn't been played yet, but that's okay.\n\t\tmatchResult = model.NewMatchResult()\n\t\tmatchResult.MatchId = matchId\n\t\tmatchResult.MatchType = match.Type\n\t}\n\n\treturn match, matchResult, false, nil\n}\n\n// Constructs the list of matches to display in the match review interface.\nfunc (web *Web) buildMatchReviewList(matchType model.MatchType) ([]MatchReviewListItem, error) {\n\tmatches, err := web.arena.Database.GetMatchesByType(matchType, false)\n\tif err != nil {\n\t\treturn []MatchReviewListItem{}, err\n\t}\n\n\tmatchReviewList := make([]MatchReviewListItem, len(matches))\n\tfor i, match := range matches {\n\t\tmatchReviewList[i].Id = match.Id\n\t\tmatchReviewList[i].ShortName = match.ShortName\n\t\tmatchReviewList[i].Time = match.Time.Local().Format(\"Mon 1/02 03:04 PM\")\n\t\tmatchReviewList[i].RedTeams = []int{match.Red1, match.Red2, match.Red3}\n\t\tmatchReviewList[i].BlueTeams = []int{match.Blue1, match.Blue2, match.Blue3}\n\t\tmatchResult, err := web.arena.Database.GetMatchResultForMatch(match.Id)\n\t\tif err != nil {\n\t\t\treturn []MatchReviewListItem{}, err\n\t\t}\n\t\tif matchResult != nil {\n\t\t\tmatchReviewList[i].RedScore = matchResult.RedScoreSummary().Score\n\t\t\tmatchReviewList[i].BlueScore = matchResult.BlueScoreSummary().Score\n\t\t}\n\t\tswitch match.Status {\n\t\tcase game.RedWonMatch:\n\t\t\tmatchReviewList[i].ColorClass = \"red\"\n\t\t\tmatchReviewList[i].IsComplete = true\n\t\tcase game.BlueWonMatch:\n\t\t\tmatchReviewList[i].ColorClass = \"blue\"\n\t\t\tmatchReviewList[i].IsComplete = true\n\t\tcase game.TieMatch:\n\t\t\tmatchReviewList[i].ColorClass = \"yellow\"\n\t\t\tmatchReviewList[i].IsComplete = true\n\t\tdefault:\n\t\t\tmatchReviewList[i].ColorClass = \"\"\n\t\t\tmatchReviewList[i].IsComplete = false\n\t\t}\n\t}\n\n\treturn matchReviewList, nil\n}\n"
  },
  {
    "path": "web/match_review_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/tournament\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestMatchReview(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tmatch1 := model.Match{Type: model.Practice, ShortName: \"P1\", Status: game.RedWonMatch}\n\tmatch2 := model.Match{Type: model.Practice, ShortName: \"P2\"}\n\tmatch3 := model.Match{Type: model.Qualification, ShortName: \"Q1\", Status: game.BlueWonMatch}\n\tmatch4 := model.Match{Type: model.Playoff, ShortName: \"SF1-1\", Status: game.TieMatch}\n\tmatch5 := model.Match{Type: model.Playoff, ShortName: \"SF1-2\"}\n\tweb.arena.Database.CreateMatch(&match1)\n\tweb.arena.Database.CreateMatch(&match2)\n\tweb.arena.Database.CreateMatch(&match3)\n\tweb.arena.Database.CreateMatch(&match4)\n\tweb.arena.Database.CreateMatch(&match5)\n\n\t// Check that all matches are listed on the page.\n\trecorder := web.getHttpResponse(\"/match_review\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \">P1<\")\n\tassert.Contains(t, recorder.Body.String(), \">P2<\")\n\tassert.Contains(t, recorder.Body.String(), \">Q1<\")\n\tassert.Contains(t, recorder.Body.String(), \">SF1-1<\")\n\tassert.Contains(t, recorder.Body.String(), \">SF1-2<\")\n}\n\nfunc TestMatchReviewEditExistingResult(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\ttournament.CreateTestAlliances(web.arena.Database, 8)\n\tweb.arena.EventSettings.PlayoffType = model.SingleEliminationPlayoff\n\tweb.arena.EventSettings.NumPlayoffAlliances = 8\n\tweb.arena.CreatePlayoffTournament()\n\tweb.arena.CreatePlayoffMatches(time.Now())\n\n\tmatch, _ := web.arena.Database.GetMatchByTypeOrder(model.Playoff, 36)\n\tmatch.Status = game.RedWonMatch\n\tweb.arena.Database.UpdateMatch(match)\n\tmatchResult := model.BuildTestMatchResult(match.Id, 1)\n\tmatchResult.MatchType = match.Type\n\tassert.Nil(t, web.arena.Database.CreateMatchResult(matchResult))\n\n\trecorder := web.getHttpResponse(\"/match_review\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \">QF4-3<\")\n\tassert.Contains(t, recorder.Body.String(), \">94<\")  // The red score\n\tassert.Contains(t, recorder.Body.String(), \">186<\") // The blue score\n\n\t// Check response for non-existent match.\n\trecorder = web.getHttpResponse(fmt.Sprintf(\"/match_review/%d/edit\", 12345))\n\tassert.Equal(t, 500, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"No such match\")\n\n\trecorder = web.getHttpResponse(fmt.Sprintf(\"/match_review/%d/edit\", match.Id))\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \" Quarterfinal 4-3 \")\n\n\t// Update the score to something else.\n\tpostBody := fmt.Sprintf(\n\t\t\"matchResultJson={\\\"MatchId\\\":%d,\\\"RedScore\\\":{\\\"EndgameStatuses\\\":[0,2,1]},\\\"BlueScore\\\":{\"+\n\t\t\t\"\\\"Reef\\\":{\\\"TroughFar\\\":21},\\\"Fouls\\\":[{\\\"TeamId\\\":973,\\\"RuleId\\\":4}]},\"+\n\t\t\t\"\\\"RedCards\\\":{\\\"105\\\":\\\"yellow\\\"},\\\"BlueCards\\\":{}}\",\n\t\tmatch.Id,\n\t)\n\trecorder = web.postHttpResponse(fmt.Sprintf(\"/match_review/%d/edit\", match.Id), postBody)\n\tassert.Equal(t, 303, recorder.Code, recorder.Body.String())\n\n\t// Check for the updated scores back on the match list page.\n\trecorder = web.getHttpResponse(\"/match_review\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \">QF4-3<\")\n\tassert.Contains(t, recorder.Body.String(), \">10<\") // The red score\n\tassert.Contains(t, recorder.Body.String(), \">42<\") // The blue score\n}\n\nfunc TestMatchReviewCreateNewResult(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\ttournament.CreateTestAlliances(web.arena.Database, 8)\n\tweb.arena.EventSettings.PlayoffType = model.SingleEliminationPlayoff\n\tweb.arena.EventSettings.NumPlayoffAlliances = 8\n\tweb.arena.CreatePlayoffTournament()\n\tweb.arena.CreatePlayoffMatches(time.Now())\n\n\tmatch, _ := web.arena.Database.GetMatchByTypeOrder(model.Playoff, 36)\n\tmatch.Status = game.RedWonMatch\n\tweb.arena.Database.UpdateMatch(match)\n\n\trecorder := web.getHttpResponse(\"/match_review\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \">QF4-3<\")\n\tassert.NotContains(t, recorder.Body.String(), \">13<\") // The red score\n\tassert.NotContains(t, recorder.Body.String(), \">10<\") // The blue score\n\n\trecorder = web.getHttpResponse(fmt.Sprintf(\"/match_review/%d/edit\", match.Id))\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \" Quarterfinal 4-3 \")\n\n\t// Update the score to something else.\n\tpostBody := fmt.Sprintf(\n\t\t\"matchResultJson={\\\"MatchId\\\":%d,\\\"RedScore\\\":{\\\"EndgameStatuses\\\":[0,2,1]},\\\"BlueScore\\\":{\"+\n\t\t\t\"\\\"Reef\\\":{\\\"TroughFar\\\":21},\\\"Fouls\\\":[{\\\"TeamId\\\":973,\\\"RuleId\\\":4}]},\"+\n\t\t\t\"\\\"RedCards\\\":{\\\"105\\\":\\\"yellow\\\"},\\\"BlueCards\\\":{}}\",\n\t\tmatch.Id,\n\t)\n\trecorder = web.postHttpResponse(fmt.Sprintf(\"/match_review/%d/edit\", match.Id), postBody)\n\tassert.Equal(t, 303, recorder.Code, recorder.Body.String())\n\n\t// Check for the updated scores back on the match list page.\n\trecorder = web.getHttpResponse(\"/match_review\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \">QF4-3<\")\n\tassert.Contains(t, recorder.Body.String(), \">10<\") // The red score\n\tassert.Contains(t, recorder.Body.String(), \">42<\") // The blue score\n}\n\nfunc TestMatchReviewEditCurrentMatch(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tmatch := model.Match{\n\t\tType:      model.Qualification,\n\t\tLongName:  \"Qualification 352\",\n\t\tShortName: \"Q352\",\n\t\tRed1:      1001,\n\t\tRed2:      1002,\n\t\tRed3:      1003,\n\t\tBlue1:     1004,\n\t\tBlue2:     1005,\n\t\tBlue3:     1006,\n\t}\n\tweb.arena.Database.CreateMatch(&match)\n\tweb.arena.LoadMatch(&match)\n\tassert.Equal(t, match, *web.arena.CurrentMatch)\n\n\trecorder := web.getHttpResponse(\"/match_review/current/edit\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \" Qualification 352 \")\n\n\tpostBody := fmt.Sprintf(\n\t\t\"matchResultJson={\\\"MatchId\\\":%d,\\\"RedScore\\\":{\\\"EndgameStatuses\\\":[0,2,1]},\\\"BlueScore\\\":{\"+\n\t\t\t\"\\\"Reef\\\":{\\\"TroughFar\\\":21},\\\"Fouls\\\":[{\\\"TeamId\\\":973,\\\"RuleId\\\":1}]},\"+\n\t\t\t\"\\\"RedCards\\\":{\\\"105\\\":\\\"yellow\\\"},\\\"BlueCards\\\":{}}\",\n\t\tmatch.Id,\n\t)\n\trecorder = web.postHttpResponse(\"/match_review/current/edit\", postBody)\n\tassert.Equal(t, 303, recorder.Code, recorder.Body.String())\n\tassert.Equal(t, \"/match_play\", recorder.Header().Get(\"Location\"))\n\n\t// Check that the persisted match is still unedited and that the realtime scores have been updated instead.\n\tmatch2, _ := web.arena.Database.GetMatchById(match.Id)\n\tassert.Equal(t, game.MatchScheduled, match2.Status)\n\tassert.Equal(\n\t\tt,\n\t\t[3]game.EndgameStatus{game.EndgameNone, game.EndgameShallowCage, game.EndgameParked},\n\t\tweb.arena.RedRealtimeScore.CurrentScore.EndgameStatuses,\n\t)\n\tassert.Equal(t, 21, web.arena.BlueRealtimeScore.CurrentScore.Reef.TroughFar)\n\tassert.Equal(t, 0, len(web.arena.RedRealtimeScore.CurrentScore.Fouls))\n\tassert.Equal(t, 1, len(web.arena.BlueRealtimeScore.CurrentScore.Fouls))\n\tassert.Equal(t, 1, len(web.arena.RedRealtimeScore.Cards))\n\tassert.Equal(t, 0, len(web.arena.BlueRealtimeScore.Cards))\n}\n"
  },
  {
    "path": "web/placeholder_display.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for a placeholder display to be later configured by the server.\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"net/http\"\n)\n\n// Shows a random ID to visually identify the display so that it can be configured on the server.\nfunc (web *Web) placeholderDisplayHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.enforceDisplayConfiguration(w, r, nil) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/placeholder_display.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t}{web.arena.EventSettings}\n\terr = template.ExecuteTemplate(w, \"placeholder_display.html\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for sending configuration commands to the display.\nfunc (web *Web) placeholderDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tdisplay, err := web.registerDisplay(r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer web.arena.MarkDisplayDisconnected(display.DisplayConfiguration.Id)\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client.\n\tws.HandleNotifiers(display.Notifier, web.arena.ReloadDisplaysNotifier)\n}\n"
  },
  {
    "path": "web/placeholder_display_test.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/field\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestPlaceholderDisplay(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/displays/audience\")\n\tassert.Equal(t, 302, recorder.Code)\n\tassert.Contains(t, recorder.Header().Get(\"Location\"), \"displayId=100\")\n\n\trecorder = web.getHttpResponse(\"/display?displayId=1\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Placeholder Display - Untitled Event - Cheesy Arena\")\n}\n\nfunc TestPlaceholderDisplayWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/display/websocket?displayId=123&nickname=blop&a=b\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"displayConfiguration\")\n\n\tif assert.Contains(t, web.arena.Displays, \"123\") {\n\t\tassert.Equal(t, \"blop\", web.arena.Displays[\"123\"].DisplayConfiguration.Nickname)\n\t\tif assert.Equal(t, 1, len(web.arena.Displays[\"123\"].DisplayConfiguration.Configuration)) {\n\t\t\tassert.Equal(t, \"b\", web.arena.Displays[\"123\"].DisplayConfiguration.Configuration[\"a\"])\n\t\t}\n\t}\n\n\t// Reconfigure the display and verify that the new configuration is received.\n\tdisplayConfig := field.DisplayConfiguration{\n\t\tId:            \"123\",\n\t\tNickname:      \"Alliance\",\n\t\tType:          field.AllianceStationDisplay,\n\t\tConfiguration: map[string]string{\"station\": \"B2\"},\n\t}\n\tweb.arena.UpdateDisplay(displayConfig)\n\treadWebsocketType(t, ws, \"displayConfiguration\")\n}\n"
  },
  {
    "path": "web/queueing_display.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web handlers for queueing display.\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/field\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"net/http\"\n\t\"time\"\n)\n\nconst (\n\tnumNonPlayoffMatchesToShow = 5\n\tnumPlayoffMatchesToShow    = 4\n)\n\n// Renders the queueing display that shows upcoming matches and timing information.\nfunc (web *Web) queueingDisplayHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.enforceDisplayConfiguration(w, r, nil) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/queueing_display.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tdata := struct {\n\t\t*model.EventSettings\n\t}{\n\t\tweb.arena.EventSettings,\n\t}\n\terr = template.ExecuteTemplate(w, \"queueing_display.html\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Renders a partial template containing the list of matches.\nfunc (web *Web) queueingDisplayMatchLoadHandler(w http.ResponseWriter, r *http.Request) {\n\tmatches, err := web.arena.Database.GetMatchesByType(web.arena.CurrentMatch.Type, false)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tnumMatchesToShow := numNonPlayoffMatchesToShow\n\tif web.arena.CurrentMatch.Type == model.Playoff {\n\t\tnumMatchesToShow = numPlayoffMatchesToShow\n\t}\n\n\tvar upcomingMatches []model.Match\n\tvar redOffFieldTeamsByMatch, blueOffFieldTeamsByMatch [][]int\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tfor i, match := range matches {\n\t\tif match.IsComplete() || match.TypeOrder < web.arena.CurrentMatch.TypeOrder {\n\t\t\tcontinue\n\t\t}\n\t\tupcomingMatches = append(upcomingMatches, match)\n\t\tredOffFieldTeams, blueOffFieldTeams, err := web.arena.Database.GetOffFieldTeamIds(&match)\n\t\tif err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t\tredOffFieldTeamsByMatch = append(redOffFieldTeamsByMatch, redOffFieldTeams)\n\t\tblueOffFieldTeamsByMatch = append(blueOffFieldTeamsByMatch, blueOffFieldTeams)\n\n\t\tif len(upcomingMatches) == numMatchesToShow {\n\t\t\tbreak\n\t\t}\n\n\t\t// Don't include any more matches if there is a significant gap before the next one.\n\t\tif i+1 < len(matches) && matches[i+1].Time.Sub(match.Time) > field.MaxMatchGapMin*time.Minute {\n\t\t\tbreak\n\t\t}\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/queueing_display_match_load.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tdata := struct {\n\t\tMatches           []model.Match\n\t\tRedOffFieldTeams  [][]int\n\t\tBlueOffFieldTeams [][]int\n\t}{\n\t\tupcomingMatches,\n\t\tredOffFieldTeamsByMatch,\n\t\tblueOffFieldTeamsByMatch,\n\t}\n\terr = template.ExecuteTemplate(w, \"queueing_display_match_load.html\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for the queueing display to receive updates.\nfunc (web *Web) queueingDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tdisplay, err := web.registerDisplay(r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer web.arena.MarkDisplayDisconnected(display.DisplayConfiguration.Id)\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client.\n\tws.HandleNotifiers(\n\t\tdisplay.Notifier,\n\t\tweb.arena.MatchTimingNotifier,\n\t\tweb.arena.MatchLoadNotifier,\n\t\tweb.arena.MatchTimeNotifier,\n\t\tweb.arena.EventStatusNotifier,\n\t\tweb.arena.ReloadDisplaysNotifier,\n\t)\n}\n"
  },
  {
    "path": "web/queueing_display_test.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestQueueingDisplay(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/displays/queueing?displayId=1\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Queueing Display - Untitled Event - Cheesy Arena\")\n}\n\nfunc TestQueueingDisplayWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/displays/queueing/websocket?displayId=1\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"displayConfiguration\")\n\treadWebsocketType(t, ws, \"matchTiming\")\n\treadWebsocketType(t, ws, \"matchLoad\")\n\treadWebsocketType(t, ws, \"matchTime\")\n\treadWebsocketType(t, ws, \"eventStatus\")\n}\n"
  },
  {
    "path": "web/rankings_display.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web handlers for the rankings display.\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"net/http\"\n)\n\n// Renders the display which shows scrolling rankings.\nfunc (web *Web) rankingsDisplayHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.enforceDisplayConfiguration(w, r, map[string]string{\"scrollMsPerRow\": \"1000\"}) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/rankings_display.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t}{web.arena.EventSettings}\n\terr = template.ExecuteTemplate(w, \"rankings_display.html\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for the rankings display, used only to force reloads remotely.\nfunc (web *Web) rankingsDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tdisplay, err := web.registerDisplay(r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer web.arena.MarkDisplayDisconnected(display.DisplayConfiguration.Id)\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client.\n\tws.HandleNotifiers(display.Notifier, web.arena.EventStatusNotifier, web.arena.ReloadDisplaysNotifier)\n}\n"
  },
  {
    "path": "web/rankings_display_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestRankingsDisplay(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/displays/rankings?displayId=1&scrollMsPerRow=700\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Standings Display - Untitled Event - Cheesy Arena\")\n}\n\nfunc TestRankingsDisplayWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/displays/rankings/websocket?displayId=1\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"displayConfiguration\")\n\treadWebsocketType(t, ws, \"eventStatus\")\n}\n"
  },
  {
    "path": "web/referee_panel.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web handlers for the referee interface.\n\npackage web\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/field\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"github.com/mitchellh/mapstructure\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n\t\"strconv\"\n)\n\n// Renders the referee interface for assigning fouls.\nfunc (web *Web) refereePanelHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/referee_panel.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tdata := struct {\n\t\t*model.EventSettings\n\t}{web.arena.EventSettings}\n\terr = template.ExecuteTemplate(w, \"base_no_navbar\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Renders a partial template for when the foul list is updated.\nfunc (web *Web) refereePanelFoulListHandler(w http.ResponseWriter, r *http.Request) {\n\ttemplate, err := web.parseFiles(\"templates/referee_panel_foul_list.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tdata := struct {\n\t\tMatch     *model.Match\n\t\tRedFouls  []game.Foul\n\t\tBlueFouls []game.Foul\n\t\tRules     map[int]*game.Rule\n\t}{\n\t\tweb.arena.CurrentMatch,\n\t\tweb.arena.RedRealtimeScore.CurrentScore.Fouls,\n\t\tweb.arena.BlueRealtimeScore.CurrentScore.Fouls,\n\t\tgame.GetAllRules(),\n\t}\n\terr = template.ExecuteTemplate(w, \"referee_panel_foul_list\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for the refereee interface client to send control commands and receive status updates.\nfunc (web *Web) refereePanelWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client, in a separate goroutine.\n\tgo ws.HandleNotifiers(\n\t\tweb.arena.MatchLoadNotifier,\n\t\tweb.arena.MatchTimeNotifier,\n\t\tweb.arena.RealtimeScoreNotifier,\n\t\tweb.arena.ScoringStatusNotifier,\n\t\tweb.arena.ReloadDisplaysNotifier,\n\t)\n\n\t// Loop, waiting for commands and responding to them, until the client closes the connection.\n\tfor {\n\t\tmessageType, data, err := ws.Read()\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\t// Client has closed the connection; nothing to do here.\n\t\t\t\treturn\n\t\t\t}\n\t\t\tlog.Println(err)\n\t\t\treturn\n\t\t}\n\n\t\tswitch messageType {\n\t\tcase \"addFoul\":\n\t\t\targs := struct {\n\t\t\t\tAlliance string\n\t\t\t\tIsMajor  bool\n\t\t\t}{}\n\t\t\terr = mapstructure.Decode(data, &args)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Add the foul to the correct alliance's list.\n\t\t\tfoul := game.Foul{FoulId: web.arena.NextFoulId, IsMajor: args.IsMajor}\n\t\t\tweb.arena.NextFoulId++\n\t\t\tif args.Alliance == \"red\" {\n\t\t\t\tweb.arena.RedRealtimeScore.CurrentScore.Fouls =\n\t\t\t\t\tappend(web.arena.RedRealtimeScore.CurrentScore.Fouls, foul)\n\t\t\t} else {\n\t\t\t\tweb.arena.BlueRealtimeScore.CurrentScore.Fouls =\n\t\t\t\t\tappend(web.arena.BlueRealtimeScore.CurrentScore.Fouls, foul)\n\t\t\t}\n\t\t\tweb.arena.RealtimeScoreNotifier.Notify()\n\t\tcase \"toggleFoulType\", \"updateFoulTeam\", \"updateFoulRule\", \"deleteFoul\":\n\t\t\targs := struct {\n\t\t\t\tAlliance string\n\t\t\t\tIndex    int\n\t\t\t\tTeamId   int\n\t\t\t\tRuleId   int\n\t\t\t}{}\n\t\t\terr = mapstructure.Decode(data, &args)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Find the foul in the correct alliance's list.\n\t\t\tvar fouls *[]game.Foul\n\t\t\tif args.Alliance == \"red\" {\n\t\t\t\tfouls = &web.arena.RedRealtimeScore.CurrentScore.Fouls\n\t\t\t} else {\n\t\t\t\tfouls = &web.arena.BlueRealtimeScore.CurrentScore.Fouls\n\t\t\t}\n\t\t\tif args.Index >= 0 && args.Index < len(*fouls) {\n\t\t\t\tswitch messageType {\n\t\t\t\tcase \"toggleFoulType\":\n\t\t\t\t\t(*fouls)[args.Index].IsMajor = !(*fouls)[args.Index].IsMajor\n\t\t\t\t\t(*fouls)[args.Index].RuleId = 0\n\t\t\t\tcase \"deleteFoul\":\n\t\t\t\t\t*fouls = append((*fouls)[:args.Index], (*fouls)[args.Index+1:]...)\n\t\t\t\tcase \"updateFoulTeam\":\n\t\t\t\t\tif (*fouls)[args.Index].TeamId == args.TeamId {\n\t\t\t\t\t\t(*fouls)[args.Index].TeamId = 0\n\t\t\t\t\t} else {\n\t\t\t\t\t\t(*fouls)[args.Index].TeamId = args.TeamId\n\t\t\t\t\t}\n\t\t\t\tcase \"updateFoulRule\":\n\t\t\t\t\t(*fouls)[args.Index].RuleId = args.RuleId\n\t\t\t\t}\n\t\t\t\tweb.arena.RealtimeScoreNotifier.Notify()\n\t\t\t}\n\t\tcase \"card\":\n\t\t\targs := struct {\n\t\t\t\tAlliance string\n\t\t\t\tTeamId   int\n\t\t\t\tCard     string\n\t\t\t}{}\n\t\t\terr = mapstructure.Decode(data, &args)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Set the card in the correct alliance's score.\n\t\t\tvar cards map[string]string\n\t\t\tif args.Alliance == \"red\" {\n\t\t\t\tcards = web.arena.RedRealtimeScore.Cards\n\t\t\t} else {\n\t\t\t\tcards = web.arena.BlueRealtimeScore.Cards\n\t\t\t}\n\t\t\tif web.arena.CurrentMatch.Type == model.Playoff {\n\t\t\t\t// Cards apply to the whole alliance in playoffs.\n\t\t\t\tif args.Alliance == \"red\" {\n\t\t\t\t\tcards[strconv.Itoa(web.arena.CurrentMatch.Red1)] = args.Card\n\t\t\t\t\tcards[strconv.Itoa(web.arena.CurrentMatch.Red2)] = args.Card\n\t\t\t\t\tcards[strconv.Itoa(web.arena.CurrentMatch.Red3)] = args.Card\n\t\t\t\t} else {\n\t\t\t\t\tcards[strconv.Itoa(web.arena.CurrentMatch.Blue1)] = args.Card\n\t\t\t\t\tcards[strconv.Itoa(web.arena.CurrentMatch.Blue2)] = args.Card\n\t\t\t\t\tcards[strconv.Itoa(web.arena.CurrentMatch.Blue3)] = args.Card\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcards[strconv.Itoa(args.TeamId)] = args.Card\n\t\t\t}\n\t\t\tweb.arena.RealtimeScoreNotifier.Notify()\n\t\tcase \"signalVolunteers\":\n\t\t\tif web.arena.MatchState != field.PostMatch {\n\t\t\t\t// Don't allow clearing the field until the match is over.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.arena.FieldVolunteers = true\n\t\t\tweb.arena.AllianceStationDisplayMode = \"signalCount\"\n\t\t\tweb.arena.AllianceStationDisplayModeNotifier.Notify()\n\t\tcase \"signalReset\":\n\t\t\tif web.arena.MatchState != field.PostMatch {\n\t\t\t\t// Don't allow clearing the field until the match is over.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.arena.FieldVolunteers = false\n\t\t\tweb.arena.FieldReset = true\n\t\t\tweb.arena.AllianceStationDisplayMode = \"fieldReset\"\n\t\t\tweb.arena.AllianceStationDisplayModeNotifier.Notify()\n\t\tcase \"commitMatch\":\n\t\t\tif web.arena.MatchState != field.PostMatch {\n\t\t\t\t// Don't allow committing the fouls until the match is over.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.arena.RedRealtimeScore.FoulsCommitted = true\n\t\t\tweb.arena.BlueRealtimeScore.FoulsCommitted = true\n\t\t\tweb.arena.FieldVolunteers = false\n\t\t\tweb.arena.FieldReset = true\n\t\t\tweb.arena.AllianceStationDisplayMode = \"fieldReset\"\n\t\t\tweb.arena.AllianceStationDisplayModeNotifier.Notify()\n\t\t\tweb.arena.ScoringStatusNotifier.Notify()\n\t\tdefault:\n\t\t\tws.WriteError(fmt.Sprintf(\"Invalid message type '%s'.\", messageType))\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "web/referee_panel_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/field\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestRefereePanel(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/panels/referee\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Referee Panel - Untitled Event - Cheesy Arena\")\n}\n\nfunc TestRefereePanelWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/panels/referee/websocket\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"matchLoad\")\n\treadWebsocketType(t, ws, \"matchTime\")\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\treadWebsocketType(t, ws, \"scoringStatus\")\n\n\t// Test foul addition.\n\taddFoulData := struct {\n\t\tAlliance string\n\t\tIsMajor  bool\n\t}{\"red\", true}\n\tws.Write(\"addFoul\", addFoulData)\n\taddFoulData.IsMajor = false\n\tws.Write(\"addFoul\", addFoulData)\n\taddFoulData.Alliance = \"blue\"\n\tws.Write(\"addFoul\", addFoulData)\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\tif assert.Equal(t, 2, len(web.arena.RedRealtimeScore.CurrentScore.Fouls)) {\n\t\tassert.Equal(t, true, web.arena.RedRealtimeScore.CurrentScore.Fouls[0].IsMajor)\n\t\tassert.Equal(t, 0, web.arena.RedRealtimeScore.CurrentScore.Fouls[0].TeamId)\n\t\tassert.Equal(t, 0, web.arena.RedRealtimeScore.CurrentScore.Fouls[0].RuleId)\n\t\tassert.Equal(t, false, web.arena.RedRealtimeScore.CurrentScore.Fouls[1].IsMajor)\n\t\tassert.Equal(t, 0, web.arena.RedRealtimeScore.CurrentScore.Fouls[1].TeamId)\n\t\tassert.Equal(t, 0, web.arena.RedRealtimeScore.CurrentScore.Fouls[1].RuleId)\n\t}\n\tif assert.Equal(t, 1, len(web.arena.BlueRealtimeScore.CurrentScore.Fouls)) {\n\t\tassert.Equal(t, false, web.arena.BlueRealtimeScore.CurrentScore.Fouls[0].IsMajor)\n\t\tassert.Equal(t, 0, web.arena.BlueRealtimeScore.CurrentScore.Fouls[0].TeamId)\n\t\tassert.Equal(t, 0, web.arena.BlueRealtimeScore.CurrentScore.Fouls[0].RuleId)\n\t}\n\tassert.False(t, web.arena.RedRealtimeScore.FoulsCommitted)\n\tassert.False(t, web.arena.BlueRealtimeScore.FoulsCommitted)\n\n\t// Test foul mutation.\n\tmodifyFoulData := struct {\n\t\tAlliance string\n\t\tIndex    int\n\t\tTeamId   int\n\t\tRuleId   int\n\t}{}\n\tmodifyFoulData.Alliance = \"red\"\n\tmodifyFoulData.Index = 1\n\tws.Write(\"toggleFoulType\", modifyFoulData)\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\tassert.Equal(t, true, web.arena.RedRealtimeScore.CurrentScore.Fouls[1].IsMajor)\n\tmodifyFoulData.Index = 0\n\tmodifyFoulData.TeamId = 256\n\tws.Write(\"updateFoulTeam\", modifyFoulData)\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\tassert.Equal(t, 256, web.arena.RedRealtimeScore.CurrentScore.Fouls[0].TeamId)\n\tmodifyFoulData.Alliance = \"blue\"\n\tmodifyFoulData.RuleId = 3\n\tws.Write(\"updateFoulRule\", modifyFoulData)\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\tassert.Equal(t, 3, web.arena.BlueRealtimeScore.CurrentScore.Fouls[0].RuleId)\n\n\t// Test foul deletion.\n\tmodifyFoulData.Alliance = \"blue\"\n\tmodifyFoulData.Index = 0\n\tws.Write(\"deleteFoul\", modifyFoulData)\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\tassert.Equal(t, 0, len(web.arena.BlueRealtimeScore.CurrentScore.Fouls))\n\tmodifyFoulData.Alliance = \"red\"\n\tmodifyFoulData.Index = -1 // Invalid index.\n\tws.Write(\"deleteFoul\", modifyFoulData)\n\tassert.Equal(t, 2, len(web.arena.RedRealtimeScore.CurrentScore.Fouls))\n\tmodifyFoulData.Alliance = \"red\"\n\tmodifyFoulData.Index = 2 // Invalid index.\n\tws.Write(\"deleteFoul\", modifyFoulData)\n\tassert.Equal(t, 2, len(web.arena.RedRealtimeScore.CurrentScore.Fouls))\n\tmodifyFoulData.Index = 1\n\tws.Write(\"deleteFoul\", modifyFoulData)\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\tassert.Equal(t, 1, len(web.arena.RedRealtimeScore.CurrentScore.Fouls))\n\n\t// Test card setting.\n\tcardData := struct {\n\t\tAlliance string\n\t\tTeamId   int\n\t\tCard     string\n\t}{\"red\", 256, \"yellow\"}\n\tws.Write(\"card\", cardData)\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\tcardData.Alliance = \"blue\"\n\tcardData.TeamId = 1680\n\tcardData.Card = \"red\"\n\tws.Write(\"card\", cardData)\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\ttime.Sleep(time.Millisecond * 10) // Allow some time for the command to be processed.\n\tif assert.Equal(t, 1, len(web.arena.RedRealtimeScore.Cards)) {\n\t\tassert.Equal(t, \"yellow\", web.arena.RedRealtimeScore.Cards[\"256\"])\n\t}\n\tif assert.Equal(t, 1, len(web.arena.BlueRealtimeScore.Cards)) {\n\t\tassert.Equal(t, \"red\", web.arena.BlueRealtimeScore.Cards[\"1680\"])\n\t}\n\n\t// Test card setting in a playoff match.\n\tweb.arena.CurrentMatch.Type = model.Playoff\n\tweb.arena.CurrentMatch.Red1 = 256\n\tweb.arena.CurrentMatch.Red2 = 257\n\tweb.arena.CurrentMatch.Red3 = 258\n\tweb.arena.CurrentMatch.Blue1 = 1679\n\tweb.arena.CurrentMatch.Blue2 = 1680\n\tweb.arena.CurrentMatch.Blue3 = 1681\n\tcardData.Card = \"yellow\"\n\tws.Write(\"card\", cardData)\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\tcardData.Alliance = \"red\"\n\tcardData.TeamId = 258\n\tcardData.Card = \"red\"\n\tws.Write(\"card\", cardData)\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\ttime.Sleep(time.Millisecond * 10) // Allow some time for the command to be processed.\n\tif assert.Equal(t, 3, len(web.arena.RedRealtimeScore.Cards)) {\n\t\tassert.Equal(t, \"red\", web.arena.RedRealtimeScore.Cards[\"256\"])\n\t\tassert.Equal(t, \"red\", web.arena.RedRealtimeScore.Cards[\"257\"])\n\t\tassert.Equal(t, \"red\", web.arena.RedRealtimeScore.Cards[\"258\"])\n\t}\n\tif assert.Equal(t, 3, len(web.arena.BlueRealtimeScore.Cards)) {\n\t\tassert.Equal(t, \"yellow\", web.arena.BlueRealtimeScore.Cards[\"1679\"])\n\t\tassert.Equal(t, \"yellow\", web.arena.BlueRealtimeScore.Cards[\"1680\"])\n\t\tassert.Equal(t, \"yellow\", web.arena.BlueRealtimeScore.Cards[\"1681\"])\n\t}\n\n\t// Test field reset and match committing.\n\tweb.arena.MatchState = field.PostMatch\n\tws.Write(\"signalReset\", nil)\n\ttime.Sleep(time.Millisecond * 10)\n\tassert.Equal(t, \"fieldReset\", web.arena.AllianceStationDisplayMode)\n\tassert.False(t, web.arena.RedRealtimeScore.FoulsCommitted)\n\tassert.False(t, web.arena.BlueRealtimeScore.FoulsCommitted)\n\tweb.arena.AllianceStationDisplayMode = \"logo\"\n\tws.Write(\"commitMatch\", nil)\n\treadWebsocketType(t, ws, \"scoringStatus\")\n\tassert.Equal(t, \"fieldReset\", web.arena.AllianceStationDisplayMode)\n\tassert.True(t, web.arena.RedRealtimeScore.FoulsCommitted)\n\tassert.True(t, web.arena.BlueRealtimeScore.FoulsCommitted)\n\n\t// Should refresh the page when the next match is loaded.\n\tweb.arena.MatchLoadNotifier.Notify()\n\treadWebsocketType(t, ws, \"matchLoad\")\n}\n"
  },
  {
    "path": "web/reports.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web handlers for generating CSV and PDF reports.\n\npackage web\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/playoff\"\n\t\"github.com/Team254/cheesy-arena/tournament\"\n\t\"github.com/jung-kurt/gofpdf\"\n\t\"math\"\n\t\"net/http\"\n\t\"sort\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// Generates a CSV-formatted report of the qualification rankings.\nfunc (web *Web) rankingsCsvReportHandler(w http.ResponseWriter, r *http.Request) {\n\trankings, err := web.arena.Database.GetAllRankings()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Don't set the content type as \"text/csv\", as that will trigger an automatic download in the browser.\n\tw.Header().Set(\"Content-Type\", \"text/plain\")\n\ttemplate, err := web.parseFiles(\"templates/rankings.csv\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tvar buf bytes.Buffer\n\terr = template.ExecuteTemplate(&buf, \"rankings.csv\", rankings)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Strip out carriage returns to ensure consistent behavior across platforms.\n\tcleaned := bytes.ReplaceAll(buf.Bytes(), []byte(\"\\r\"), []byte(\"\"))\n\tw.Write(cleaned)\n}\n\n// Generates a PDF-formatted report of the qualification rankings.\nfunc (web *Web) rankingsPdfReportHandler(w http.ResponseWriter, r *http.Request) {\n\trankings, err := web.arena.Database.GetAllRankings()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// The widths of the table columns in mm, stored here so that they can be referenced for each row.\n\tcolWidths := map[string]float64{\n\t\t\"Rank\":   13,\n\t\t\"Team\":   20,\n\t\t\"RP\":     20,\n\t\t\"Coop\":   20,\n\t\t\"Match\":  20,\n\t\t\"Auto\":   20,\n\t\t\"Barge\":  20,\n\t\t\"W-L-T\":  22,\n\t\t\"DQ\":     20,\n\t\t\"Played\": 20,\n\t}\n\trowHeight := 6.5\n\n\tpdf := gofpdf.New(\"P\", \"mm\", \"Letter\", \"font\")\n\tpdf.AddPage()\n\n\t// Render table header row.\n\tpdf.SetFont(\"Arial\", \"B\", 10)\n\tpdf.SetFillColor(220, 220, 220)\n\tpdf.CellFormat(195, rowHeight, \"Team Standings - \"+web.arena.EventSettings.Name, \"\", 1, \"C\", false, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Rank\"], rowHeight, \"Rank\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Team\"], rowHeight, \"Team\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"RP\"], rowHeight, \"RP\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Coop\"], rowHeight, \"Coop\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Match\"], rowHeight, \"Match\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Auto\"], rowHeight, \"Auto\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Barge\"], rowHeight, \"Barge\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"W-L-T\"], rowHeight, \"W-L-T\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"DQ\"], rowHeight, \"DQ\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Played\"], rowHeight, \"Played\", \"1\", 1, \"C\", true, 0, \"\")\n\tfor _, ranking := range rankings {\n\t\t// Render ranking info row.\n\t\tpdf.SetFont(\"Arial\", \"B\", 10)\n\t\tpdf.CellFormat(colWidths[\"Rank\"], rowHeight, strconv.Itoa(ranking.Rank), \"1\", 0, \"C\", false, 0, \"\")\n\t\tpdf.SetFont(\"Arial\", \"\", 10)\n\t\tpdf.CellFormat(colWidths[\"Team\"], rowHeight, strconv.Itoa(ranking.TeamId), \"1\", 0, \"C\", false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"RP\"], rowHeight, strconv.Itoa(ranking.RankingPoints), \"1\", 0, \"C\", false, 0, \"\")\n\t\tpdf.CellFormat(\n\t\t\tcolWidths[\"Coop\"], rowHeight, strconv.Itoa(ranking.CoopertitionPoints), \"1\", 0, \"C\", false, 0, \"\",\n\t\t)\n\t\tpdf.CellFormat(colWidths[\"Match\"], rowHeight, strconv.Itoa(ranking.MatchPoints), \"1\", 0, \"C\", false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Auto\"], rowHeight, strconv.Itoa(ranking.AutoPoints), \"1\", 0, \"C\", false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Barge\"], rowHeight, strconv.Itoa(ranking.BargePoints), \"1\", 0, \"C\", false, 0, \"\")\n\t\trecord := fmt.Sprintf(\"%d-%d-%d\", ranking.Wins, ranking.Losses, ranking.Ties)\n\t\tpdf.CellFormat(colWidths[\"W-L-T\"], rowHeight, record, \"1\", 0, \"C\", false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"DQ\"], rowHeight, strconv.Itoa(ranking.Disqualifications), \"1\", 0, \"C\", false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Played\"], rowHeight, strconv.Itoa(ranking.Played), \"1\", 1, \"C\", false, 0, \"\")\n\t}\n\n\taddTimeGeneratedFooter(pdf)\n\n\t// Write out the PDF file as the HTTP response.\n\tw.Header().Set(\"Content-Type\", \"application/pdf\")\n\terr = pdf.Output(w)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// findBackupTeams takes the list of teams at the event and returns a slice of\n// teams with the teams that are already members of alliances removed. The\n// second returned value is the set of teams that were backups but have already\n// been called back to the field.\n//\n// At events that run 4 team alliances, this will show all of the 3rd picks and\n// remaining teams.\nfunc (web *Web) findBackupTeams(rankings game.Rankings) (game.Rankings, map[int]bool, error) {\n\tvar pruned game.Rankings\n\n\talliances, err := web.arena.Database.GetAllAlliances()\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tif len(alliances) == 0 {\n\t\treturn nil, nil, errors.New(\"backup teams report is unavailable until alliances have been selected\")\n\t}\n\n\tpickedTeams := make(map[int]bool)\n\tpickedBackups := make(map[int]bool)\n\n\tfor _, alliance := range alliances {\n\t\tfor i, allianceTeamId := range alliance.TeamIds {\n\t\t\t// Teams in third in an alliance are backups at events that use 3 team alliances.\n\t\t\tif i == 3 {\n\t\t\t\tpickedBackups[allianceTeamId] = true\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tpickedTeams[allianceTeamId] = true\n\t\t}\n\t}\n\n\tfor _, team := range rankings {\n\t\tif !pickedTeams[team.TeamId] {\n\t\t\tpruned = append(pruned, team)\n\t\t}\n\t}\n\n\treturn pruned, pickedBackups, nil\n}\n\n// Define a backupTeam type so that we can pass the additional \"Called\" field\n// to the CSV template parser.\ntype backupTeam struct {\n\tRank          int\n\tCalled        bool\n\tTeamId        int\n\tRankingPoints int\n}\n\n// Generates a CSV-formatted report of the qualification rankings.\nfunc (web *Web) backupTeamsCsvReportHandler(w http.ResponseWriter, r *http.Request) {\n\trankings, err := web.arena.Database.GetAllRankings()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\trankings, pickedBackups, err := web.findBackupTeams(rankings)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Copy the list of teams that are eligible backups and annotate them with\n\t// whether or not they've been picked already.\n\tvar backupTeams []backupTeam\n\tfor _, r := range rankings {\n\t\tbackupTeams = append(\n\t\t\tbackupTeams, backupTeam{\n\t\t\t\tRank:          r.Rank,\n\t\t\t\tCalled:        pickedBackups[r.TeamId],\n\t\t\t\tTeamId:        r.TeamId,\n\t\t\t\tRankingPoints: r.RankingPoints,\n\t\t\t},\n\t\t)\n\t}\n\n\t// Don't set the content type as \"text/csv\", as that will trigger an automatic download in the browser.\n\tw.Header().Set(\"Content-Type\", \"text/plain\")\n\ttemplate, err := web.parseFiles(\"templates/backups.csv\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tvar buf bytes.Buffer\n\terr = template.ExecuteTemplate(&buf, \"backups.csv\", backupTeams)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Strip out carriage returns to ensure consistent behavior across platforms.\n\tcleaned := bytes.ReplaceAll(buf.Bytes(), []byte(\"\\r\"), []byte(\"\"))\n\tw.Write(cleaned)\n}\n\n// Generates a PDF-formatted report of the backup teams.\nfunc (web *Web) backupsPdfReportHandler(w http.ResponseWriter, r *http.Request) {\n\trankings, err := web.arena.Database.GetAllRankings()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\trankings, pickedBackups, err := web.findBackupTeams(rankings)\n\t_ = pickedBackups\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// The widths of the table columns in mm, stored here so that they can be referenced for each row.\n\tcolWidths := map[string]float64{\"Rank\": 13, \"Called\": 22, \"Team\": 22, \"RP\": 23}\n\trowHeight := 6.5\n\n\tpdf := gofpdf.New(\"P\", \"mm\", \"Letter\", \"font\")\n\tpdf.AddPage()\n\n\t// Render table header row.\n\tpdf.SetFont(\"Arial\", \"B\", 10)\n\tpdf.SetFillColor(220, 220, 220)\n\tpdf.CellFormat(195, rowHeight, \"Backup Teams - \"+web.arena.EventSettings.Name, \"\", 1, \"C\", false, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Rank\"], rowHeight, \"Rank\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Called\"], rowHeight, \"Called?\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Team\"], rowHeight, \"Team\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"RP\"], rowHeight, \"RP\", \"1\", 1, \"C\", true, 0, \"\")\n\tfor _, ranking := range rankings {\n\t\tvar picked string\n\t\tif pickedBackups[ranking.TeamId] {\n\t\t\tpicked = \"Y\"\n\t\t}\n\n\t\tpdf.SetFont(\"Arial\", \"B\", 10)\n\t\tpdf.CellFormat(colWidths[\"Rank\"], rowHeight, strconv.Itoa(ranking.Rank), \"1\", 0, \"C\", false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Called\"], rowHeight, picked, \"1\", 0, \"C\", false, 0, \"\")\n\t\tpdf.SetFont(\"Arial\", \"\", 10)\n\t\tpdf.CellFormat(colWidths[\"Team\"], rowHeight, strconv.Itoa(ranking.TeamId), \"1\", 0, \"C\", false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"RP\"], rowHeight, strconv.Itoa(ranking.RankingPoints), \"1\", 1, \"C\", false, 0, \"\")\n\t}\n\n\taddTimeGeneratedFooter(pdf)\n\n\t// Write out the PDF file as the HTTP response.\n\tw.Header().Set(\"Content-Type\", \"application/pdf\")\n\terr = pdf.Output(w)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Coupon constants used in laying out the playoff alliance coupons.\nconst (\n\t// All units in mm\n\tcHPad       = 5\n\tcVPad       = 5\n\tcWidth      = 95\n\tcHeight     = 60\n\tcSideMargin = 10\n\tcTopMargin  = 10\n\tcImgWidth   = 25\n\tcWOffset    = 5\n)\n\nfunc (web *Web) couponsPdfReportHandler(w http.ResponseWriter, r *http.Request) {\n\tpdf := gofpdf.New(\"P\", \"mm\", \"Letter\", \"font\")\n\tpdf.SetLineWidth(1)\n\n\teventName := web.arena.EventSettings.Name\n\tnumAlliances := web.arena.EventSettings.NumPlayoffAlliances\n\n\tfor page := 0; page < (numAlliances+3)/4; page++ {\n\t\theightAcc := cTopMargin\n\t\tpdf.AddPage()\n\t\tfor i := page * 4; i < page*4+4 && i < numAlliances; i++ {\n\t\t\tpdf.SetFillColor(220, 220, 220)\n\n\t\t\tpdf.RoundedRect(cSideMargin, float64(heightAcc), cWidth, cHeight, 4, \"1234\", \"D\")\n\t\t\tcouponX := cSideMargin + (cWidth * 0.5)\n\t\t\tcouponY := float64(heightAcc) + (cHeight * 0.5)\n\t\t\tdrawCoupon(pdf, eventName, couponX, couponY, i+1, \"VAR Coupon\")\n\n\t\t\tpdf.RoundedRect(cWidth+cHPad+cSideMargin, float64(heightAcc), cWidth, cHeight, 4, \"1234\", \"D\")\n\t\t\tcouponX = cSideMargin + cWidth + cHPad + (cWidth * 0.5)\n\t\t\tcouponY = float64(heightAcc) + (cHeight * 0.5)\n\t\t\theightAcc += cHeight + cVPad\n\t\t\tdrawCoupon(pdf, eventName, couponX, couponY, i+1, \"Backup Coupon\")\n\t\t}\n\t}\n\n\t// Write out the PDF file as the HTTP response.\n\tw.Header().Set(\"Content-Type\", \"application/pdf\")\n\tif err := pdf.Output(w); err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\nfunc drawCoupon(pdf gofpdf.Pdf, eventName string, x float64, y float64, allianceNumber int, text string) {\n\tpdf.SetTextColor(0, 0, 0)\n\tdrawPdfLogo(pdf, x, y, cImgWidth)\n\n\tpdf.SetFont(\"Arial\", \"B\", 24)\n\tdrawCenteredText(pdf, text, x, y+10)\n\n\tpdf.SetFont(\"Arial\", \"\", 14)\n\tdrawCenteredText(pdf, fmt.Sprintf(\"Alliance: %v\", allianceNumber), x, y+20)\n\tdrawEventWatermark(pdf, x, y, eventName)\n}\n\nfunc drawEventWatermark(pdf gofpdf.Pdf, x float64, y float64, name string) {\n\tpdf.SetFont(\"Arial\", \"B\", 11)\n\tpdf.SetTextColor(200, 200, 200)\n\ttextWidth := pdf.GetStringWidth(name)\n\n\t// Left mark\n\tpdf.TransformBegin()\n\tpdf.TransformRotate(90, x, y)\n\tpdf.Text(x-textWidth/2, y-cWidth/2+cWOffset, name)\n\tpdf.TransformEnd()\n\n\t// Right mark\n\tpdf.TransformBegin()\n\tpdf.TransformRotate(270, x, y)\n\tpdf.Text(x-textWidth/2, y-cWidth/2+cWOffset, name)\n\tpdf.TransformEnd()\n}\n\nfunc drawCenteredText(pdf gofpdf.Pdf, txt string, x float64, y float64) {\n\twidth := pdf.GetStringWidth(txt)\n\tpdf.Text(x-(width/2), y, txt)\n}\n\nfunc drawPdfLogo(pdf gofpdf.Pdf, x float64, y float64, width float64) {\n\tpdf.ImageOptions(\n\t\t\"static/img/game-logo.png\",\n\t\tx-(width/2),\n\t\ty-25,\n\t\twidth,\n\t\t0,\n\t\tfalse,\n\t\tgofpdf.ImageOptions{ImageType: \"PNG\", ReadDpi: true},\n\t\t0,\n\t\t\"\",\n\t)\n}\n\n// Generates a CSV-formatted report of the match schedule.\nfunc (web *Web) scheduleCsvReportHandler(w http.ResponseWriter, r *http.Request) {\n\tmatchType, err := model.MatchTypeFromString(r.PathValue(\"type\"))\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tmatches, err := web.arena.Database.GetMatchesByType(matchType, false)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Don't set the content type as \"text/csv\", as that will trigger an automatic download in the browser.\n\tw.Header().Set(\"Content-Type\", \"text/plain\")\n\ttemplate, err := web.parseFiles(\"templates/schedule.csv\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tvar buf bytes.Buffer\n\terr = template.ExecuteTemplate(&buf, \"schedule.csv\", matches)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Strip out carriage returns to ensure consistent behavior across platforms.\n\tcleaned := bytes.ReplaceAll(buf.Bytes(), []byte(\"\\r\"), []byte(\"\"))\n\tw.Write(cleaned)\n}\n\n// Generates a PDF-formatted report of the match schedule.\nfunc (web *Web) schedulePdfReportHandler(w http.ResponseWriter, r *http.Request) {\n\tmatchType, err := model.MatchTypeFromString(r.PathValue(\"type\"))\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tmatches, err := web.arena.Database.GetMatchesByType(matchType, false)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tscheduledBreaks, err := web.arena.Database.GetScheduledBreaksByMatchType(matchType)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tbreakIndex := 0\n\tteams, err := web.arena.Database.GetAllTeams()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tmatchesPerTeam := 0\n\tif len(teams) > 0 {\n\t\tmatchesPerTeam = len(matches) * tournament.TeamsPerMatch / len(teams)\n\t}\n\n\t// The widths of the table columns in mm, stored here so that they can be referenced for each row.\n\tcolWidths := map[string]float64{\"Time\": 35, \"Match\": 40, \"Team\": 20}\n\trowHeight := 6.5\n\n\tpdf := gofpdf.New(\"P\", \"mm\", \"Letter\", \"font\")\n\tpdf.AddPage()\n\n\t// Render table header row.\n\tpdf.SetFont(\"Arial\", \"B\", 10)\n\tpdf.SetFillColor(220, 220, 220)\n\tpdf.CellFormat(195, rowHeight, \"Match Schedule - \"+web.arena.EventSettings.Name, \"\", 1, \"C\", false, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Time\"], rowHeight, \"Time\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Match\"], rowHeight, \"Match\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Team\"], rowHeight, \"Red 1\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Team\"], rowHeight, \"Red 2\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Team\"], rowHeight, \"Red 3\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Team\"], rowHeight, \"Blue 1\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Team\"], rowHeight, \"Blue 2\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Team\"], rowHeight, \"Blue 3\", \"1\", 1, \"C\", true, 0, \"\")\n\tpdf.SetFont(\"Arial\", \"\", 10)\n\tfor _, match := range matches {\n\t\t// Render break if there is one before this match.\n\t\tif breakIndex < len(scheduledBreaks) && scheduledBreaks[breakIndex].TypeOrderBefore == match.TypeOrder {\n\t\t\tscheduledBreak := scheduledBreaks[breakIndex]\n\t\t\tformattedTime := scheduledBreak.Time.Local().Format(\"Mon 1/02 03:04 PM\")\n\t\t\tdescription := fmt.Sprintf(\"%s (%d minutes)\", scheduledBreak.Description, scheduledBreak.DurationSec/60)\n\t\t\tpdf.CellFormat(colWidths[\"Time\"], rowHeight, formattedTime, \"1\", 0, \"C\", false, 0, \"\")\n\t\t\tpdf.CellFormat(colWidths[\"Match\"]+6*colWidths[\"Team\"], rowHeight, description, \"1\", 1, \"C\", false, 0, \"\")\n\t\t\tbreakIndex++\n\t\t}\n\n\t\theight := rowHeight\n\t\tborderStr := \"1\"\n\t\talignStr := \"CM\"\n\t\tsurrogate := false\n\t\tif match.Red1IsSurrogate || match.Red2IsSurrogate || match.Red3IsSurrogate ||\n\t\t\tmatch.Blue1IsSurrogate || match.Blue2IsSurrogate || match.Blue3IsSurrogate {\n\t\t\t// If the match contains surrogates, the row needs to be taller to fit some text beneath team numbers.\n\t\t\theight = 5.0\n\t\t\tborderStr = \"LTR\"\n\t\t\talignStr = \"CB\"\n\t\t\tsurrogate = true\n\t\t}\n\n\t\tformatTeam := func(teamId int) string {\n\t\t\tif teamId == 0 {\n\t\t\t\treturn \"\"\n\t\t\t} else {\n\t\t\t\treturn strconv.Itoa(teamId)\n\t\t\t}\n\t\t}\n\n\t\t// Render match info row.\n\t\tpdf.CellFormat(\n\t\t\tcolWidths[\"Time\"],\n\t\t\theight,\n\t\t\tmatch.Time.Local().Format(\"Mon 1/02 03:04 PM\"),\n\t\t\tborderStr,\n\t\t\t0,\n\t\t\talignStr,\n\t\t\tfalse,\n\t\t\t0,\n\t\t\t\"\",\n\t\t)\n\t\tpdf.CellFormat(colWidths[\"Match\"], height, match.LongName, borderStr, 0, alignStr, false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Team\"], height, formatTeam(match.Red1), borderStr, 0, alignStr, false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Team\"], height, formatTeam(match.Red2), borderStr, 0, alignStr, false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Team\"], height, formatTeam(match.Red3), borderStr, 0, alignStr, false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Team\"], height, formatTeam(match.Blue1), borderStr, 0, alignStr, false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Team\"], height, formatTeam(match.Blue2), borderStr, 0, alignStr, false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Team\"], height, formatTeam(match.Blue3), borderStr, 1, alignStr, false, 0, \"\")\n\t\tif surrogate {\n\t\t\t// Render the text that indicates which teams are surrogates.\n\t\t\theight := 4.0\n\t\t\tpdf.SetFont(\"Arial\", \"\", 8)\n\t\t\tpdf.CellFormat(colWidths[\"Time\"], height, \"\", \"LBR\", 0, \"C\", false, 0, \"\")\n\t\t\tpdf.CellFormat(colWidths[\"Match\"], height, \"\", \"LBR\", 0, \"C\", false, 0, \"\")\n\t\t\tpdf.CellFormat(\n\t\t\t\tcolWidths[\"Team\"], height, surrogateText(match.Red1IsSurrogate), \"LBR\", 0, \"CT\", false, 0, \"\",\n\t\t\t)\n\t\t\tpdf.CellFormat(\n\t\t\t\tcolWidths[\"Team\"], height, surrogateText(match.Red2IsSurrogate), \"LBR\", 0, \"CT\", false, 0, \"\",\n\t\t\t)\n\t\t\tpdf.CellFormat(\n\t\t\t\tcolWidths[\"Team\"], height, surrogateText(match.Red3IsSurrogate), \"LBR\", 0, \"CT\", false, 0, \"\",\n\t\t\t)\n\t\t\tpdf.CellFormat(\n\t\t\t\tcolWidths[\"Team\"], height, surrogateText(match.Blue1IsSurrogate), \"LBR\", 0, \"CT\", false, 0, \"\",\n\t\t\t)\n\t\t\tpdf.CellFormat(\n\t\t\t\tcolWidths[\"Team\"], height, surrogateText(match.Blue2IsSurrogate), \"LBR\", 0, \"CT\", false, 0, \"\",\n\t\t\t)\n\t\t\tpdf.CellFormat(\n\t\t\t\tcolWidths[\"Team\"], height, surrogateText(match.Blue3IsSurrogate), \"LBR\", 1, \"CT\", false, 0, \"\",\n\t\t\t)\n\t\t\tpdf.SetFont(\"Arial\", \"\", 10)\n\t\t}\n\t}\n\n\tif matchType != model.Playoff {\n\t\t// Render some summary info at the bottom.\n\t\tpdf.CellFormat(195, 10, fmt.Sprintf(\"Matches Per Team: %d\", matchesPerTeam), \"\", 1, \"L\", false, 0, \"\")\n\t}\n\n\taddTimeGeneratedFooter(pdf)\n\n\t// Write out the PDF file as the HTTP response.\n\tw.Header().Set(\"Content-Type\", \"application/pdf\")\n\terr = pdf.Output(w)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Generates a CSV-formatted report of the team list.\nfunc (web *Web) teamsCsvReportHandler(w http.ResponseWriter, r *http.Request) {\n\tteams, err := web.arena.Database.GetAllTeams()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Don't set the content type as \"text/csv\", as that will trigger an automatic download in the browser.\n\tw.Header().Set(\"Content-Type\", \"text/plain\")\n\ttemplate, err := web.parseFiles(\"templates/teams.csv\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tvar buf bytes.Buffer\n\terr = template.ExecuteTemplate(&buf, \"teams.csv\", teams)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Strip out carriage returns to ensure consistent behavior across platforms.\n\tcleaned := bytes.ReplaceAll(buf.Bytes(), []byte(\"\\r\"), []byte(\"\"))\n\tw.Write(cleaned)\n}\n\n// Generates a PDF-formatted report of the team list.\nfunc (web *Web) teamsPdfReportHandler(w http.ResponseWriter, r *http.Request) {\n\tteams, err := web.arena.Database.GetAllTeams()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tshowHasConnected := r.URL.Query().Get(\"showHasConnected\") == \"true\"\n\n\t// The widths of the table columns in mm, stored here so that they can be referenced for each row.\n\tvar colWidths map[string]float64\n\tif showHasConnected {\n\t\tcolWidths = map[string]float64{\"Id\": 12, \"Name\": 70, \"Location\": 65, \"RookieYear\": 23, \"HasConnected\": 25}\n\t} else {\n\t\tcolWidths = map[string]float64{\"Id\": 12, \"Name\": 80, \"Location\": 80, \"RookieYear\": 23}\n\t}\n\trowHeight := 6.5\n\tlineHeight := 5.0\n\n\tpdf := gofpdf.New(\"P\", \"mm\", \"Letter\", \"font\")\n\tpdf.AddPage()\n\tpdf.SetFont(\"Arial\", \"B\", 10)\n\tpdf.SetFillColor(220, 220, 220)\n\n\t// Render table header row.\n\tpdf.CellFormat(195, rowHeight, \"Team List - \"+web.arena.EventSettings.Name, \"\", 1, \"C\", false, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Id\"], rowHeight, \"Team\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Name\"], rowHeight, \"Name\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Location\"], rowHeight, \"Location\", \"1\", 0, \"C\", true, 0, \"\")\n\tif showHasConnected {\n\t\tpdf.CellFormat(colWidths[\"RookieYear\"], rowHeight, \"Rookie Year\", \"1\", 0, \"C\", true, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"HasConnected\"], rowHeight, \"Connected?\", \"1\", 1, \"C\", true, 0, \"\")\n\t} else {\n\t\tpdf.CellFormat(colWidths[\"RookieYear\"], rowHeight, \"Rookie Year\", \"1\", 1, \"C\", true, 0, \"\")\n\t}\n\tpdf.SetFont(\"Arial\", \"\", 10)\n\tfor _, team := range teams {\n\t\t// Render team info row.\n\t\tnumNicknameRows := len(pdf.SplitLines([]byte(team.Nickname), colWidths[\"Name\"]))\n\t\tlocation := fmt.Sprintf(\"%s, %s, %s\", team.City, team.StateProv, team.Country)\n\t\tnumLocationRows := len(pdf.SplitLines([]byte(location), colWidths[\"Location\"]))\n\t\tteamRowHeight := rowHeight\n\t\tnumRows := int(math.Max(float64(numNicknameRows), float64(numLocationRows)))\n\t\tif numRows > 1 {\n\t\t\tteamRowHeight = lineHeight * float64(numRows)\n\t\t}\n\t\tpdf.CellFormat(colWidths[\"Id\"], teamRowHeight, strconv.Itoa(team.Id), \"1\", 0, \"L\", false, 0, \"\")\n\t\tdrawMultiLineCell(pdf, colWidths[\"Name\"], teamRowHeight, lineHeight, team.Nickname, \"L\", numNicknameRows)\n\t\tdrawMultiLineCell(pdf, colWidths[\"Location\"], teamRowHeight, lineHeight, location, \"L\", numLocationRows)\n\t\tif showHasConnected {\n\t\t\tpdf.CellFormat(\n\t\t\t\tcolWidths[\"RookieYear\"], teamRowHeight, strconv.Itoa(team.RookieYear), \"1\", 0, \"L\", false, 0, \"\",\n\t\t\t)\n\t\t\tvar hasConnected string\n\t\t\tif team.HasConnected {\n\t\t\t\thasConnected = \"Yes\"\n\t\t\t}\n\t\t\tpdf.CellFormat(colWidths[\"HasConnected\"], teamRowHeight, hasConnected, \"1\", 1, \"L\", false, 0, \"\")\n\t\t} else {\n\t\t\tpdf.CellFormat(\n\t\t\t\tcolWidths[\"RookieYear\"], teamRowHeight, strconv.Itoa(team.RookieYear), \"1\", 1, \"L\", false, 0, \"\",\n\t\t\t)\n\t\t}\n\t}\n\n\taddTimeGeneratedFooter(pdf)\n\n\t// Write out the PDF file as the HTTP response.\n\tw.Header().Set(\"Content-Type\", \"application/pdf\")\n\terr = pdf.Output(w)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Generates a CSV-formatted report of the WPA keys, for import into the radio kiosk.\nfunc (web *Web) wpaKeysCsvReportHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tteams, err := web.arena.Database.GetAllTeams()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tw.Header().Set(\"Content-Type\", \"text/csv\")\n\tw.Header().Set(\"Content-Disposition\", \"attachment; filename=keys.csv\")\n\tfor _, team := range teams {\n\t\t_, err := w.Write([]byte(fmt.Sprintf(\"%d,%s\\r\\n\", team.Id, team.WpaKey)))\n\t\tif err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// Generates a PDF-formatted report of the playoff alliances and the teams contained within.\nfunc (web *Web) alliancesPdfReportHandler(w http.ResponseWriter, r *http.Request) {\n\talliances, err := web.arena.Database.GetAllAlliances()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Traverse the playoff tournament to register the furthest level that the alliance has achieved.\n\tallianceStatuses := make(map[int]string)\n\tif web.arena.PlayoffTournament.IsComplete() {\n\t\tallianceStatuses[web.arena.PlayoffTournament.WinningAllianceId()] = \"Winner\"\n\t\tallianceStatuses[web.arena.PlayoffTournament.FinalistAllianceId()] = \"Finalist\"\n\t}\n\terr = web.arena.PlayoffTournament.Traverse(\n\t\tfunc(matchGroup playoff.MatchGroup) error {\n\t\t\tmatchup, ok := matchGroup.(*playoff.Matchup)\n\t\t\tif !ok {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif matchup.IsComplete() {\n\t\t\t\tif _, ok := allianceStatuses[matchup.LosingAllianceId()]; !ok && matchup.IsLosingAllianceEliminated() {\n\t\t\t\t\tallianceStatuses[matchup.LosingAllianceId()] = fmt.Sprintf(\"Eliminated in\\n%s\", matchup.Id())\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif matchup.RedAllianceId > 0 {\n\t\t\t\t\tallianceStatuses[matchup.RedAllianceId] = fmt.Sprintf(\"Playing in\\n%s\", matchup.Id())\n\t\t\t\t}\n\t\t\t\tif matchup.BlueAllianceId > 0 {\n\t\t\t\t\tallianceStatuses[matchup.BlueAllianceId] = fmt.Sprintf(\"Playing in\\n%s\", matchup.Id())\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tteams, err := web.arena.Database.GetAllTeams()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tteamsMap := make(map[int]model.Team, len(teams))\n\tfor _, team := range teams {\n\t\tteamsMap[team.Id] = team\n\t}\n\n\t// The widths of the table columns in mm, stored here so that they can be referenced for each row.\n\tcolWidths := map[string]float64{\"Alliance\": 23, \"Id\": 12, \"Name\": 80, \"Location\": 80}\n\trowHeight := 6.5\n\tlineHeight := 5.0\n\n\tpdf := gofpdf.New(\"P\", \"mm\", \"Letter\", \"font\")\n\tpdf.AddPage()\n\tpdf.SetFont(\"Arial\", \"B\", 10)\n\tpdf.SetFillColor(220, 220, 220)\n\n\t// Render table header row.\n\tpdf.CellFormat(195, rowHeight, \"Playoff Alliances - \"+web.arena.EventSettings.Name, \"\", 1, \"C\", false, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Alliance\"], rowHeight, \"Alliance\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Id\"], rowHeight, \"Team\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Name\"], rowHeight, \"Name\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Location\"], rowHeight, \"Location\", \"1\", 1, \"C\", true, 0, \"\")\n\tpdf.SetFont(\"Arial\", \"\", 10)\n\tstartX := pdf.GetX()\n\tfor _, alliance := range alliances {\n\t\tvar allianceHeight float64\n\t\tfor _, teamId := range alliance.TeamIds {\n\t\t\tteam := teamsMap[teamId]\n\t\t\tnumNicknameRows := len(pdf.SplitLines([]byte(team.Nickname), colWidths[\"Name\"]))\n\t\t\tlocation := fmt.Sprintf(\"%s, %s, %s\", team.City, team.StateProv, team.Country)\n\t\t\tnumLocationRows := len(pdf.SplitLines([]byte(location), colWidths[\"Location\"]))\n\t\t\tteamRowHeight := rowHeight\n\t\t\tnumRows := int(math.Max(float64(numNicknameRows), float64(numLocationRows)))\n\t\t\tif numRows > 1 {\n\t\t\t\tteamRowHeight = lineHeight * float64(numRows)\n\t\t\t}\n\t\t\tallianceHeight += teamRowHeight\n\t\t}\n\t\tnumAllianceStatusesRows := len(pdf.SplitLines([]byte(allianceStatuses[alliance.Id]), colWidths[\"Alliance\"]))\n\t\tdrawMultiLineCell(\n\t\t\tpdf, colWidths[\"Alliance\"],\n\t\t\tallianceHeight,\n\t\t\tlineHeight,\n\t\t\tfmt.Sprintf(\"Alliance %d\\n%s\", alliance.Id, allianceStatuses[alliance.Id]),\n\t\t\t\"C\",\n\t\t\tnumAllianceStatusesRows+1,\n\t\t)\n\t\tfor _, teamId := range alliance.TeamIds {\n\t\t\tteam := teamsMap[teamId]\n\t\t\tnumNicknameRows := len(pdf.SplitLines([]byte(team.Nickname), colWidths[\"Name\"]))\n\t\t\tlocation := fmt.Sprintf(\"%s, %s, %s\", team.City, team.StateProv, team.Country)\n\t\t\tnumLocationRows := len(pdf.SplitLines([]byte(location), colWidths[\"Location\"]))\n\t\t\tteamRowHeight := rowHeight\n\t\t\tnumRows := int(math.Max(float64(numNicknameRows), float64(numLocationRows)))\n\t\t\tif numRows > 1 {\n\t\t\t\tteamRowHeight = lineHeight * float64(numRows)\n\t\t\t}\n\n\t\t\tpdf.CellFormat(colWidths[\"Id\"], teamRowHeight, strconv.Itoa(team.Id), \"1\", 0, \"L\", false, 0, \"\")\n\t\t\tdrawMultiLineCell(pdf, colWidths[\"Name\"], teamRowHeight, lineHeight, team.Nickname, \"L\", numNicknameRows)\n\t\t\tdrawMultiLineCell(pdf, colWidths[\"Location\"], teamRowHeight, lineHeight, location, \"L\", numLocationRows)\n\t\t\tpdf.SetXY(startX+colWidths[\"Alliance\"], pdf.GetY()+teamRowHeight)\n\t\t}\n\t\tpdf.SetX(startX)\n\t}\n\n\taddTimeGeneratedFooter(pdf)\n\n\t// Write out the PDF file as the HTTP response.\n\tw.Header().Set(\"Content-Type\", \"application/pdf\")\n\terr = pdf.Output(w)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Generates a PDF-formatted report of the playoff bracket, relying on the browser to convert SVG to PDF (since no\n// suitable Go library for doing so appears to exist).\nfunc (web *Web) bracketPdfReportHandler(w http.ResponseWriter, r *http.Request) {\n\tbuffer := new(bytes.Buffer)\n\terr := web.generateBracketSvg(buffer, nil)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/bracket_report.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tvar buf bytes.Buffer\n\terr = template.ExecuteTemplate(&buf, \"bracket_report.html\", buffer.String())\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Strip out carriage returns to ensure consistent behavior across platforms.\n\tcleaned := bytes.ReplaceAll(buf.Bytes(), []byte(\"\\r\"), []byte(\"\"))\n\tw.Write(cleaned)\n}\n\n// Returns the text to display if a team is a surrogate.\nfunc surrogateText(isSurrogate bool) string {\n\tif isSurrogate {\n\t\treturn \"(surrogate)\"\n\t} else {\n\t\treturn \"\"\n\t}\n}\n\n// Generates a PDF-formatted report of the match cycle times.\nfunc (web *Web) cyclePdfReportHandler(w http.ResponseWriter, r *http.Request) {\n\tmatchType, err := model.MatchTypeFromString(r.PathValue(\"type\"))\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tmatches, err := web.arena.Database.GetMatchesByType(matchType, false)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// The widths of the table columns in mm, stored here so that they can be referenced for each row.\n\tcolWidths := map[string]float64{\"Time\": 30, \"Time2\": 22, \"Match\": 15, \"Diff\": 20}\n\trowHeight := 6.5\n\n\tpdf := gofpdf.New(\"P\", \"mm\", \"Letter\", \"font\")\n\tpdf.AddPage()\n\n\t// Render table header row.\n\tpdf.SetFont(\"Arial\", \"B\", 10)\n\tpdf.SetFillColor(220, 220, 220)\n\tpdf.CellFormat(\n\t\t195, rowHeight, matchType.String()+\" Cycle Time - \"+web.arena.EventSettings.Name, \"\", 1, \"C\", false, 0, \"\",\n\t)\n\tpdf.CellFormat(colWidths[\"Match\"], rowHeight, \"Match\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Time\"], rowHeight, \"Scheduled Time\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Time2\"], rowHeight, \"Ready\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Time2\"], rowHeight, \"Started\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Time2\"], rowHeight, \"Committed\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Diff\"], rowHeight, \"Cycle Time\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Diff\"], rowHeight, \"Delta Time\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Diff\"], rowHeight, \"MC Time\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(colWidths[\"Diff\"], rowHeight, \"Ref Time\", \"1\", 1, \"C\", true, 0, \"\")\n\tpdf.SetFont(\"Arial\", \"\", 10)\n\tvar lastMatchStart time.Time\n\tfor _, match := range matches {\n\t\theight := rowHeight\n\t\tborderStr := \"1\"\n\t\talignStr := \"CM\"\n\t\tfieldReady := \"\"\n\t\tstartedAt := \"\"\n\t\tscoreCommitted := \"\"\n\t\trefTime := \"\"\n\t\tmcTime := \"\"\n\t\tdeltaTime := \"\"\n\t\tcycleTime := \"\"\n\n\t\tif !match.FieldReadyAt.IsZero() {\n\t\t\tfieldReady = match.FieldReadyAt.Local().Format(\"03:04 PM\")\n\t\t}\n\t\tif !match.StartedAt.IsZero() {\n\t\t\tstartedAt = match.StartedAt.Local().Format(\"03:04 PM\")\n\t\t}\n\t\tif !match.ScoreCommittedAt.IsZero() {\n\t\t\tscoreCommitted = match.ScoreCommittedAt.Local().Format(\"03:04 PM\")\n\t\t}\n\n\t\tif !match.StartedAt.IsZero() && !match.ScoreCommittedAt.IsZero() {\n\t\t\tmatchEndTime := match.StartedAt.Add(game.GetDurationToTeleopEnd())\n\t\t\ttempRefTime := match.ScoreCommittedAt.Sub(matchEndTime)\n\t\t\trefTime = tempRefTime.Truncate(time.Second).String()\n\t\t}\n\t\tif !match.StartedAt.IsZero() && !match.FieldReadyAt.IsZero() {\n\t\t\ttempMcTime := match.StartedAt.Sub(match.FieldReadyAt)\n\t\t\tmcTime = tempMcTime.Truncate(time.Second).String()\n\t\t}\n\t\tif !match.StartedAt.IsZero() {\n\t\t\ttempDeltaTime := match.StartedAt.Sub(match.Time)\n\t\t\tdeltaTime = tempDeltaTime.Truncate(time.Second).String()\n\t\t}\n\t\tif !lastMatchStart.IsZero() && !match.StartedAt.IsZero() {\n\t\t\ttempCycleTime := match.StartedAt.Sub(lastMatchStart)\n\t\t\tcycleTime = tempCycleTime.Truncate(time.Second).String()\n\t\t}\n\t\tlastMatchStart = match.StartedAt\n\n\t\t// Render match info row.\n\t\tpdf.CellFormat(colWidths[\"Match\"], height, match.ShortName, borderStr, 0, alignStr, false, 0, \"\")\n\t\tpdf.CellFormat(\n\t\t\tcolWidths[\"Time\"], height, match.Time.Local().Format(\"1/02 03:04 PM\"), borderStr, 0, alignStr, false, 0, \"\",\n\t\t)\n\t\tpdf.CellFormat(colWidths[\"Time2\"], height, fieldReady, borderStr, 0, alignStr, false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Time2\"], height, startedAt, borderStr, 0, alignStr, false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Time2\"], height, scoreCommitted, borderStr, 0, alignStr, false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Diff\"], height, cycleTime, borderStr, 0, alignStr, false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Diff\"], height, deltaTime, borderStr, 0, alignStr, false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Diff\"], height, mcTime, borderStr, 0, alignStr, false, 0, \"\")\n\t\tpdf.CellFormat(colWidths[\"Diff\"], height, refTime, borderStr, 1, alignStr, false, 0, \"\")\n\t}\n\n\taddTimeGeneratedFooter(pdf)\n\n\t// Write out the PDF file as the HTTP response.\n\tw.Header().Set(\"Content-Type\", \"application/pdf\")\n\terr = pdf.Output(w)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Generates a CSV-formatted report of the FTA notes.\nfunc (web *Web) ftaCsvReportHandler(w http.ResponseWriter, r *http.Request) {\n\tteams, err := web.arena.Database.GetAllTeams()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Don't set the content type as \"text/csv\", as that will trigger an automatic download in the browser.\n\tw.Header().Set(\"Content-Type\", \"text/plain\")\n\ttemplate, err := web.parseFiles(\"templates/fta.csv\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tvar buf bytes.Buffer\n\terr = template.ExecuteTemplate(&buf, \"fta.csv\", teams)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Strip out carriage returns to ensure consistent behavior across platforms.\n\tcleaned := bytes.ReplaceAll(buf.Bytes(), []byte(\"\\r\"), []byte(\"\"))\n\tw.Write(cleaned)\n}\n\n// Generates a PDF-formatted report of the judging schedule.\nfunc (web *Web) judgingSchedulePdfReportHandler(w http.ResponseWriter, r *http.Request) {\n\tslots, err := web.arena.Database.GetAllJudgingSlots()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// The widths of the table columns in mm, stored here so that they can be referenced for each row.\n\tteamColWidths := map[string]float64{\n\t\t\"Team\":      25,\n\t\t\"Time\":      50,\n\t\t\"MatchInfo\": 60,\n\t}\n\trowHeight := 6.5\n\n\tpdf := gofpdf.New(\"P\", \"mm\", \"Letter\", \"font\")\n\n\t// Table 1: Sorted by team.\n\tpdf.AddPage()\n\tpdf.SetFont(\"Arial\", \"B\", 10)\n\tpdf.SetFillColor(220, 220, 220)\n\tpdf.CellFormat(195, rowHeight, \"Judging Schedule - \"+web.arena.EventSettings.Name, \"\", 1, \"C\", false, 0, \"\")\n\n\t// Render team table header row.\n\tpdf.SetFont(\"Arial\", \"B\", 10)\n\tpdf.SetFillColor(220, 220, 220)\n\tpdf.CellFormat(teamColWidths[\"Team\"], rowHeight, \"Team\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(teamColWidths[\"Time\"], rowHeight, \"Judging Time\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(teamColWidths[\"MatchInfo\"], rowHeight, \"Previous Match\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(teamColWidths[\"MatchInfo\"], rowHeight, \"Next Match\", \"1\", 1, \"C\", true, 0, \"\")\n\n\t// Render team table body.\n\tpdf.SetFont(\"Arial\", \"\", 10)\n\tfor _, slot := range slots {\n\t\tvar previousMatchInfo, nextMatchInfo string\n\t\tif slot.PreviousMatchNumber != 0 {\n\t\t\tpreviousMatchInfo = fmt.Sprintf(\n\t\t\t\t\"Q%d at %s\", slot.PreviousMatchNumber, slot.PreviousMatchTime.Format(\"03:04 PM\"),\n\t\t\t)\n\t\t}\n\t\tif slot.NextMatchNumber != 0 {\n\t\t\tnextMatchInfo = fmt.Sprintf(\"Q%d at %s\", slot.NextMatchNumber, slot.NextMatchTime.Format(\"03:04 PM\"))\n\t\t}\n\n\t\tpdf.CellFormat(teamColWidths[\"Team\"], rowHeight, strconv.Itoa(slot.TeamId), \"1\", 0, \"C\", false, 0, \"\")\n\t\tpdf.CellFormat(\n\t\t\tteamColWidths[\"Time\"], rowHeight, slot.Time.Local().Format(\"Mon 1/02 03:04 PM\"), \"1\", 0, \"C\", false, 0, \"\",\n\t\t)\n\t\tpdf.CellFormat(teamColWidths[\"MatchInfo\"], rowHeight, previousMatchInfo, \"1\", 0, \"C\", false, 0, \"\")\n\t\tpdf.CellFormat(teamColWidths[\"MatchInfo\"], rowHeight, nextMatchInfo, \"1\", 1, \"C\", false, 0, \"\")\n\t}\n\n\taddTimeGeneratedFooter(pdf)\n\n\t// Table 2: Sorted by judge team number and time.\n\tpdf.AddPage()\n\tpdf.SetFont(\"Arial\", \"B\", 10)\n\tpdf.SetFillColor(220, 220, 220)\n\tpdf.CellFormat(\n\t\t195, rowHeight, \"Judging Schedule (Judges' View) - \"+web.arena.EventSettings.Name, \"\", 1, \"C\", false, 0, \"\",\n\t)\n\n\t// The widths of the table columns in mm, stored here so that they can be referenced for each row.\n\tjudgeColWidths := map[string]float64{\n\t\t\"Judge\":     25,\n\t\t\"Team\":      25,\n\t\t\"Time\":      45,\n\t\t\"MatchInfo\": 50,\n\t}\n\n\t// Render judge table header row.\n\tpdf.SetFont(\"Arial\", \"B\", 10)\n\tpdf.SetFillColor(220, 220, 220)\n\tpdf.CellFormat(judgeColWidths[\"Judge\"], rowHeight, \"Judge Team\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(judgeColWidths[\"Team\"], rowHeight, \"Team\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(judgeColWidths[\"Time\"], rowHeight, \"Judging Time\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(judgeColWidths[\"MatchInfo\"], rowHeight, \"Previous Match\", \"1\", 0, \"C\", true, 0, \"\")\n\tpdf.CellFormat(judgeColWidths[\"MatchInfo\"], rowHeight, \"Next Match\", \"1\", 1, \"C\", true, 0, \"\")\n\n\t// Sort slots by judge team number and then by time.\n\tsort.Slice(\n\t\tslots,\n\t\tfunc(i, j int) bool {\n\t\t\tif slots[i].JudgeNumber == slots[j].JudgeNumber {\n\t\t\t\treturn slots[i].Time.Before(slots[j].Time)\n\t\t\t}\n\t\t\treturn slots[i].JudgeNumber < slots[j].JudgeNumber\n\t\t},\n\t)\n\n\t// Render judge table body.\n\tpdf.SetFont(\"Arial\", \"\", 10)\n\tfor _, slot := range slots {\n\t\tvar previousMatchInfo, nextMatchInfo string\n\t\tif slot.PreviousMatchNumber != 0 {\n\t\t\tpreviousMatchInfo = fmt.Sprintf(\n\t\t\t\t\"Q%d at %s\", slot.PreviousMatchNumber, slot.PreviousMatchTime.Format(\"03:04 PM\"),\n\t\t\t)\n\t\t}\n\t\tif slot.NextMatchNumber != 0 {\n\t\t\tnextMatchInfo = fmt.Sprintf(\"Q%d at %s\", slot.NextMatchNumber, slot.NextMatchTime.Format(\"03:04 PM\"))\n\t\t}\n\n\t\tpdf.CellFormat(judgeColWidths[\"Judge\"], rowHeight, strconv.Itoa(slot.JudgeNumber), \"1\", 0, \"C\", false, 0, \"\")\n\t\tpdf.CellFormat(judgeColWidths[\"Team\"], rowHeight, strconv.Itoa(slot.TeamId), \"1\", 0, \"C\", false, 0, \"\")\n\t\tpdf.CellFormat(\n\t\t\tjudgeColWidths[\"Time\"], rowHeight, slot.Time.Local().Format(\"Mon 1/02 03:04 PM\"), \"1\", 0, \"C\", false, 0, \"\",\n\t\t)\n\t\tpdf.CellFormat(judgeColWidths[\"MatchInfo\"], rowHeight, previousMatchInfo, \"1\", 0, \"C\", false, 0, \"\")\n\t\tpdf.CellFormat(judgeColWidths[\"MatchInfo\"], rowHeight, nextMatchInfo, \"1\", 1, \"C\", false, 0, \"\")\n\t}\n\n\taddTimeGeneratedFooter(pdf)\n\n\t// Write out the PDF file as the HTTP response.\n\tw.Header().Set(\"Content-Type\", \"application/pdf\")\n\terr = pdf.Output(w)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\nfunc addTimeGeneratedFooter(pdf *gofpdf.Fpdf) {\n\tfooterText := fmt.Sprintf(\n\t\t\"Report generated at %s on %s\", time.Now().Format(\"3:04:05 PM\"), time.Now().Format(\"Mon Jan 2 2006\"),\n\t)\n\tpdf.SetFont(\"Arial\", \"\", 10)\n\tpdf.CellFormat(0, 10, footerText, \"\", 1, \"L\", false, 0, \"\")\n}\n\n// Draws a bordered cell with multiple lines of text vertically centered.\nfunc drawMultiLineCell(pdf *gofpdf.Fpdf, width, height, lineHeight float64, text, align string, numTextLines int) {\n\tstartX, startY := pdf.GetXY()\n\tpdf.Rect(startX, startY, width, height, \"\")\n\n\tgapY := (height - (lineHeight * float64(numTextLines))) / 2\n\tpdf.SetXY(startX, startY+gapY)\n\tpdf.MultiCell(width, lineHeight, text, \"\", align, false)\n\n\tpdf.SetXY(startX+width, startY)\n}\n"
  },
  {
    "path": "web/reports_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/tournament\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestRankingsCsvReport(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tranking1 := game.TestRanking2()\n\tranking2 := game.TestRanking1()\n\tweb.arena.Database.CreateRanking(ranking1)\n\tweb.arena.Database.CreateRanking(ranking2)\n\n\trecorder := web.getHttpResponse(\"/reports/csv/rankings\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"text/plain\", recorder.Header()[\"Content-Type\"][0])\n\texpectedBody := \"Rank,TeamId,RankingPoints,CoopertitionPoints,MatchPoints,AutoPoints,BargePoints,Wins,Losses,\" +\n\t\t\"Ties,Disqualifications,Played\\n1,254,20,625,90,554,12,3,2,1,0,10\\n2,1114,18,700,625,90,23,1,3,2,0,10\\n\\n\"\n\tassert.Equal(t, expectedBody, recorder.Body.String())\n}\n\nfunc TestRankingsPdfReport(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tranking1 := game.TestRanking2()\n\tranking2 := game.TestRanking1()\n\tweb.arena.Database.CreateRanking(ranking1)\n\tweb.arena.Database.CreateRanking(ranking2)\n\n\t// Can't really parse the PDF content and check it, so just check that what's sent back is a PDF.\n\trecorder := web.getHttpResponse(\"/reports/pdf/rankings\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"application/pdf\", recorder.Header()[\"Content-Type\"][0])\n}\n\nfunc TestScheduleCsvReport(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tmatch1Time := time.Unix(0, 0)\n\tmatch1 := model.Match{\n\t\tType:             model.Qualification,\n\t\tShortName:        \"Q1\",\n\t\tTime:             match1Time,\n\t\tRed1:             1,\n\t\tRed2:             2,\n\t\tRed3:             3,\n\t\tBlue1:            4,\n\t\tBlue2:            5,\n\t\tBlue3:            6,\n\t\tBlue1IsSurrogate: true,\n\t\tBlue2IsSurrogate: true,\n\t\tBlue3IsSurrogate: true,\n\t}\n\tmatch2Time := time.Unix(600, 0)\n\tmatch2 := model.Match{\n\t\tType:            model.Qualification,\n\t\tShortName:       \"Q2\",\n\t\tTime:            match2Time,\n\t\tRed1:            7,\n\t\tRed2:            8,\n\t\tRed3:            9,\n\t\tBlue1:           10,\n\t\tBlue2:           11,\n\t\tBlue3:           12,\n\t\tRed1IsSurrogate: true,\n\t\tRed2IsSurrogate: true,\n\t\tRed3IsSurrogate: true,\n\t}\n\tmatch3 := model.Match{\n\t\tType:      model.Practice,\n\t\tShortName: \"P1\",\n\t\tTime:      time.Now(),\n\t\tRed1:      6,\n\t\tRed2:      5,\n\t\tRed3:      4,\n\t\tBlue1:     3,\n\t\tBlue2:     2,\n\t\tBlue3:     1,\n\t}\n\tweb.arena.Database.CreateMatch(&match1)\n\tweb.arena.Database.CreateMatch(&match2)\n\tweb.arena.Database.CreateMatch(&match3)\n\n\trecorder := web.getHttpResponse(\"/reports/csv/schedule/qualification\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"text/plain\", recorder.Header()[\"Content-Type\"][0])\n\texpectedBody := \"Match,Type,Time,Red1,Red1IsSurrogate,Red2,Red2IsSurrogate,Red3,Red3IsSurrogate,Blue1,\" +\n\t\t\"Blue1IsSurrogate,Blue2,Blue2IsSurrogate,Blue3,Blue3IsSurrogate\\nQ1,Qualification,\" + match1Time.String() +\n\t\t\",1,false,2,false,3,false,4,true,5,true,6,true\\nQ2,Qualification,\" + match2Time.String() +\n\t\t\",7,true,8,true,9,true,10,false,11,false,12,false\\n\\n\"\n\tassert.Equal(t, expectedBody, recorder.Body.String())\n}\n\nfunc TestSchedulePdfReport(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tmatch := model.Match{\n\t\tType:             model.Practice,\n\t\tShortName:        \"P1\",\n\t\tTime:             time.Unix(0, 0),\n\t\tRed1:             1,\n\t\tRed2:             2,\n\t\tRed3:             3,\n\t\tBlue1:            4,\n\t\tBlue2:            5,\n\t\tBlue3:            6,\n\t\tBlue1IsSurrogate: true,\n\t\tBlue2IsSurrogate: true,\n\t\tBlue3IsSurrogate: true,\n\t}\n\tweb.arena.Database.CreateMatch(&match)\n\tteam := model.Team{\n\t\tId: 254, Name: \"NASA\", Nickname: \"The Cheesy Poofs\", City: \"San Jose\", StateProv: \"CA\",\n\t\tCountry: \"USA\", RookieYear: 1999, RobotName: \"Barrage\",\n\t}\n\tweb.arena.Database.CreateTeam(&team)\n\n\t// Can't really parse the PDF content and check it, so just check that what's sent back is a PDF.\n\trecorder := web.getHttpResponse(\"/reports/pdf/schedule/practice\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"application/pdf\", recorder.Header()[\"Content-Type\"][0])\n}\n\nfunc TestTeamsCsvReport(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tteam1 := model.Team{\n\t\tId:         254,\n\t\tName:       \"NASA\",\n\t\tNickname:   \"The Cheesy Poofs\",\n\t\tSchoolName: \"Bellarmine College Preparatory\",\n\t\tCity:       \"San Jose\",\n\t\tStateProv:  \"CA\",\n\t\tCountry:    \"USA\",\n\t\tRookieYear: 1999,\n\t\tRobotName:  \"Barrage\",\n\t}\n\tteam2 := model.Team{\n\t\tId:         1114,\n\t\tName:       \"GM\",\n\t\tNickname:   \"Simbotics\",\n\t\tSchoolName: \"Governor Simcoe Secondary School\",\n\t\tCity:       \"St. Catharines\",\n\t\tStateProv:  \"ON\",\n\t\tCountry:    \"Canada\",\n\t\tRookieYear: 2003,\n\t\tRobotName:  \"Simbot Evolution\",\n\t}\n\tweb.arena.Database.CreateTeam(&team1)\n\tweb.arena.Database.CreateTeam(&team2)\n\n\trecorder := web.getHttpResponse(\"/reports/csv/teams\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"text/plain\", recorder.Header()[\"Content-Type\"][0])\n\texpectedBody := \"Number,Name,Nickname,SchoolName,City,StateProv,Country,RookieYear,RobotName,HasConnected\\n254,\\\"NASA\\\",\" +\n\t\t\"\\\"The Cheesy Poofs\\\",\\\"Bellarmine College Preparatory\\\",\\\"San Jose\\\",\\\"CA\\\",\\\"USA\\\",1999,\\\"Barrage\\\",false\\n1114,\\\"GM\\\",\\\"Simbotics\\\",\" +\n\t\t\"\\\"Governor Simcoe Secondary School\\\",\\\"St. Catharines\\\",\\\"ON\\\",\\\"Canada\\\",2003,\\\"Simbot Evolution\\\",false\\n\\n\"\n\tassert.Equal(t, expectedBody, recorder.Body.String())\n}\n\nfunc TestTeamsPdfReport(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tteam := model.Team{\n\t\tId:         254,\n\t\tName:       \"NASA\",\n\t\tNickname:   \"The Cheesy Poofs\",\n\t\tCity:       \"San Jose\",\n\t\tStateProv:  \"CA\",\n\t\tCountry:    \"USA\",\n\t\tRookieYear: 1999,\n\t\tRobotName:  \"Barrage\",\n\t}\n\tweb.arena.Database.CreateTeam(&team)\n\n\t// Can't really parse the PDF content and check it, so just check that what's sent back is a PDF.\n\trecorder := web.getHttpResponse(\"/reports/pdf/teams\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"application/pdf\", recorder.Header()[\"Content-Type\"][0])\n}\n\nfunc TestWpaKeysCsvReport(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tteam1 := model.Team{Id: 254, WpaKey: \"12345678\"}\n\tteam2 := model.Team{Id: 1114, WpaKey: \"9876543210\"}\n\tweb.arena.Database.CreateTeam(&team1)\n\tweb.arena.Database.CreateTeam(&team2)\n\n\trecorder := web.getHttpResponse(\"/reports/csv/wpa_keys\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"text/csv\", recorder.Header()[\"Content-Type\"][0])\n\tassert.Equal(t, \"attachment; filename=keys.csv\", recorder.Header()[\"Content-Disposition\"][0])\n\tassert.Equal(t, \"254,12345678\\r\\n1114,9876543210\\r\\n\", recorder.Body.String())\n}\n\nfunc TestAlliancesPdfReport(t *testing.T) {\n\tweb := setupTestWeb(t)\n\ttournament.CreateTestAlliances(web.arena.Database, 8)\n\tweb.arena.CreatePlayoffTournament()\n\n\t// Can't really parse the PDF content and check it, so just check that what's sent back is a PDF.\n\trecorder := web.getHttpResponse(\"/reports/pdf/alliances\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"application/pdf\", recorder.Header()[\"Content-Type\"][0])\n}\n\nfunc TestBracketPdfReport(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/reports/pdf/bracket\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"text/html; charset=utf-8\", recorder.Header()[\"Content-Type\"][0])\n\tassert.Contains(t, recorder.Body.String(), \"Finals\")\n}\n\nfunc TestJudgingSchedulePdfReport(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\t// Can't really parse the PDF content and check it, so just check that what's sent back is a PDF.\n\trecorder := web.getHttpResponse(\"/reports/pdf/judging_schedule\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"application/pdf\", recorder.Header()[\"Content-Type\"][0])\n}\n"
  },
  {
    "path": "web/scoring_panel.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web handlers for scoring interface.\n\npackage web\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/field\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"github.com/mitchellh/mapstructure\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n\t\"strings\"\n)\n\ntype ScoringPosition struct {\n\tTitle            string\n\tAlliance         string\n\tNearSide         bool\n\tScoresAuto       bool\n\tScoresEndgame    bool\n\tScoresBarge      bool\n\tScoresProcessor  bool\n\tLeftmostReefPole int\n}\n\nvar positionParameters = map[string]ScoringPosition{\n\t\"red_near\": {\n\t\tTitle:            \"Red Near\",\n\t\tAlliance:         \"red\",\n\t\tNearSide:         true,\n\t\tScoresAuto:       true,\n\t\tScoresEndgame:    true,\n\t\tScoresBarge:      true,\n\t\tScoresProcessor:  false,\n\t\tLeftmostReefPole: 6,\n\t},\n\t\"red_far\": {\n\t\tTitle:            \"Red Far\",\n\t\tAlliance:         \"red\",\n\t\tNearSide:         false,\n\t\tScoresAuto:       false,\n\t\tScoresEndgame:    false,\n\t\tScoresBarge:      false,\n\t\tScoresProcessor:  true,\n\t\tLeftmostReefPole: 0,\n\t},\n\t\"blue_near\": {\n\t\tTitle:            \"Blue Near\",\n\t\tAlliance:         \"blue\",\n\t\tNearSide:         true,\n\t\tScoresAuto:       false,\n\t\tScoresEndgame:    false,\n\t\tScoresBarge:      false,\n\t\tScoresProcessor:  true,\n\t\tLeftmostReefPole: 0,\n\t},\n\t\"blue_far\": {\n\t\tTitle:            \"Blue Far\",\n\t\tAlliance:         \"blue\",\n\t\tNearSide:         false,\n\t\tScoresAuto:       true,\n\t\tScoresEndgame:    true,\n\t\tScoresBarge:      true,\n\t\tScoresProcessor:  false,\n\t\tLeftmostReefPole: 6,\n\t},\n}\n\n// Renders the scoring interface which enables input of scores in real-time.\nfunc (web *Web) scoringPanelHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tposition := r.PathValue(\"position\")\n\tparameters, ok := positionParameters[position]\n\tif !ok {\n\t\thandleWebErr(w, fmt.Errorf(\"Invalid position '%s'.\", position))\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/scoring_panel.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tPlcIsEnabled bool\n\t\tPositionName string\n\t\tPosition     ScoringPosition\n\t}{web.arena.EventSettings, web.arena.Plc.IsEnabled(), position, parameters}\n\terr = template.ExecuteTemplate(w, \"base_no_navbar\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for the scoring interface client to send control commands and receive status updates.\nfunc (web *Web) scoringPanelWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tposition := r.PathValue(\"position\")\n\tif position != \"red_near\" && position != \"red_far\" && position != \"blue_near\" && position != \"blue_far\" {\n\t\thandleWebErr(w, fmt.Errorf(\"Invalid position '%s'.\", position))\n\t\treturn\n\t}\n\talliance := strings.Split(position, \"_\")[0]\n\n\tvar realtimeScore **field.RealtimeScore\n\tif alliance == \"red\" {\n\t\trealtimeScore = &web.arena.RedRealtimeScore\n\t} else {\n\t\trealtimeScore = &web.arena.BlueRealtimeScore\n\t}\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\tweb.arena.ScoringPanelRegistry.RegisterPanel(position, ws)\n\tweb.arena.ScoringStatusNotifier.Notify()\n\tdefer web.arena.ScoringStatusNotifier.Notify()\n\tdefer web.arena.ScoringPanelRegistry.UnregisterPanel(position, ws)\n\n\t// Instruct panel to clear any local state in case this is a reconnect\n\tws.Write(\"resetLocalState\", nil)\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client, in a separate goroutine.\n\tgo ws.HandleNotifiers(\n\t\tweb.arena.MatchLoadNotifier,\n\t\tweb.arena.MatchTimeNotifier,\n\t\tweb.arena.RealtimeScoreNotifier,\n\t\tweb.arena.ReloadDisplaysNotifier,\n\t)\n\n\t// Loop, waiting for commands and responding to them, until the client closes the connection.\n\tfor {\n\t\tcommand, data, err := ws.Read()\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\t// Client has closed the connection; nothing to do here.\n\t\t\t\treturn\n\t\t\t}\n\t\t\tlog.Println(err)\n\t\t\treturn\n\t\t}\n\t\tscore := &(*realtimeScore).CurrentScore\n\t\tscoreChanged := false\n\n\t\tif command == \"commitMatch\" {\n\t\t\tif web.arena.MatchState != field.PostMatch {\n\t\t\t\t// Don't allow committing the score until the match is over.\n\t\t\t\tws.WriteError(\"Cannot commit score: Match is not over.\")\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.arena.ScoringPanelRegistry.SetScoreCommitted(position, ws)\n\t\t\tweb.arena.ScoringStatusNotifier.Notify()\n\t\t} else if command == \"reef\" {\n\t\t\targs := struct {\n\t\t\t\tReefPosition int\n\t\t\t\tReefLevel    int\n\t\t\t\tCurrent      bool\n\t\t\t\tAutonomous   bool\n\t\t\t}{}\n\t\t\terr = mapstructure.Decode(data, &args)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif args.ReefPosition >= 1 && args.ReefPosition <= 12 && args.ReefLevel >= 2 && args.ReefLevel <= 4 {\n\t\t\t\tlevel := game.Level(args.ReefLevel - 2)\n\t\t\t\treefIndex := args.ReefPosition - 1\n\t\t\t\tif args.Current {\n\t\t\t\t\tscore.Reef.Branches[level][reefIndex] = !score.Reef.Branches[level][reefIndex]\n\t\t\t\t\tscoreChanged = true\n\t\t\t\t}\n\t\t\t\tif args.Autonomous {\n\t\t\t\t\tscore.Reef.AutoBranches[level][reefIndex] = !score.Reef.AutoBranches[level][reefIndex]\n\t\t\t\t\tscoreChanged = true\n\t\t\t\t}\n\t\t\t\tscoreChanged = true\n\t\t\t}\n\n\t\t} else if command == \"endgame\" {\n\t\t\targs := struct {\n\t\t\t\tTeamPosition  int\n\t\t\t\tEndgameStatus int\n\t\t\t}{}\n\t\t\terr = mapstructure.Decode(data, &args)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif args.TeamPosition >= 1 && args.TeamPosition <= 3 && args.EndgameStatus >= 0 && args.EndgameStatus <= 3 {\n\t\t\t\tendgameStatus := game.EndgameStatus(args.EndgameStatus)\n\t\t\t\tscore.EndgameStatuses[args.TeamPosition-1] = endgameStatus\n\t\t\t\tscoreChanged = true\n\t\t\t}\n\t\t} else if command == \"leave\" {\n\t\t\targs := struct {\n\t\t\t\tTeamPosition int\n\t\t\t}{}\n\t\t\terr = mapstructure.Decode(data, &args)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif args.TeamPosition >= 1 && args.TeamPosition <= 3 {\n\t\t\t\tscore.LeaveStatuses[args.TeamPosition-1] = !score.LeaveStatuses[args.TeamPosition-1]\n\t\t\t\tscoreChanged = true\n\t\t\t}\n\t\t} else if command == \"addFoul\" {\n\t\t\targs := struct {\n\t\t\t\tAlliance string\n\t\t\t\tIsMajor  bool\n\t\t\t}{}\n\t\t\terr = mapstructure.Decode(data, &args)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Add the foul to the correct alliance's list.\n\t\t\tfoul := game.Foul{FoulId: web.arena.NextFoulId, IsMajor: args.IsMajor}\n\t\t\tweb.arena.NextFoulId++\n\t\t\tif args.Alliance == \"red\" {\n\t\t\t\tweb.arena.RedRealtimeScore.CurrentScore.Fouls =\n\t\t\t\t\tappend(web.arena.RedRealtimeScore.CurrentScore.Fouls, foul)\n\t\t\t} else {\n\t\t\t\tweb.arena.BlueRealtimeScore.CurrentScore.Fouls =\n\t\t\t\t\tappend(web.arena.BlueRealtimeScore.CurrentScore.Fouls, foul)\n\t\t\t}\n\t\t\tweb.arena.RealtimeScoreNotifier.Notify()\n\t\t} else {\n\t\t\targs := struct {\n\t\t\t\tAdjustment int\n\t\t\t\tCurrent    bool\n\t\t\t\tAutonomous bool\n\t\t\t\tNearSide   bool\n\t\t\t}{}\n\t\t\terr = mapstructure.Decode(data, &args)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tswitch command {\n\t\t\tcase \"barge\":\n\t\t\t\tscore.BargeAlgae = max(0, score.BargeAlgae+args.Adjustment)\n\t\t\t\tscoreChanged = true\n\t\t\tcase \"processor\":\n\t\t\t\tscore.ProcessorAlgae = max(0, score.ProcessorAlgae+args.Adjustment)\n\t\t\t\tscoreChanged = true\n\t\t\tcase \"trough\":\n\t\t\t\tif args.Current {\n\t\t\t\t\tif args.NearSide {\n\t\t\t\t\t\tscore.Reef.TroughNear = max(0, score.Reef.TroughNear+args.Adjustment)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tscore.Reef.TroughFar = max(0, score.Reef.TroughFar+args.Adjustment)\n\t\t\t\t\t}\n\t\t\t\t\tscoreChanged = true\n\t\t\t\t}\n\t\t\t\tif args.Autonomous {\n\t\t\t\t\tif args.NearSide {\n\t\t\t\t\t\tscore.Reef.AutoTroughNear = max(0, score.Reef.AutoTroughNear+args.Adjustment)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tscore.Reef.AutoTroughFar = max(0, score.Reef.AutoTroughFar+args.Adjustment)\n\t\t\t\t\t}\n\t\t\t\t\tscoreChanged = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif scoreChanged {\n\t\t\tweb.arena.RealtimeScoreNotifier.Notify()\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "web/scoring_panel_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/field\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestScoringPanel(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/panels/scoring/invalidposition\")\n\tassert.Equal(t, 500, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Invalid position\")\n\trecorder = web.getHttpResponse(\"/panels/scoring/red_near\")\n\tassert.Equal(t, 200, recorder.Code)\n\trecorder = web.getHttpResponse(\"/panels/scoring/red_far\")\n\tassert.Equal(t, 200, recorder.Code)\n\trecorder = web.getHttpResponse(\"/panels/scoring/blue_near\")\n\tassert.Equal(t, 200, recorder.Code)\n\trecorder = web.getHttpResponse(\"/panels/scoring/blue_far\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Scoring Panel - Untitled Event - Cheesy Arena\")\n}\n\nfunc TestScoringPanelWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\t_, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/panels/scoring/blorpy/websocket\", nil)\n\tassert.NotNil(t, err)\n\tredConn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/panels/scoring/red_near/websocket\", nil)\n\tassert.Nil(t, err)\n\tdefer redConn.Close()\n\tredWs := websocket.NewTestWebsocket(redConn)\n\tassert.Equal(t, 1, web.arena.ScoringPanelRegistry.GetNumPanels(\"red_near\"))\n\tassert.Equal(t, 0, web.arena.ScoringPanelRegistry.GetNumPanels(\"blue_near\"))\n\tblueConn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/panels/scoring/blue_near/websocket\", nil)\n\tassert.Nil(t, err)\n\tdefer blueConn.Close()\n\tblueWs := websocket.NewTestWebsocket(blueConn)\n\tassert.Equal(t, 1, web.arena.ScoringPanelRegistry.GetNumPanels(\"red_near\"))\n\tassert.Equal(t, 1, web.arena.ScoringPanelRegistry.GetNumPanels(\"blue_near\"))\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, redWs, \"resetLocalState\")\n\treadWebsocketType(t, redWs, \"matchLoad\")\n\treadWebsocketType(t, redWs, \"matchTime\")\n\treadWebsocketType(t, redWs, \"realtimeScore\")\n\treadWebsocketType(t, blueWs, \"resetLocalState\")\n\treadWebsocketType(t, blueWs, \"matchLoad\")\n\treadWebsocketType(t, blueWs, \"matchTime\")\n\treadWebsocketType(t, blueWs, \"realtimeScore\")\n\n\t// Send some autonomous period scoring commands.\n\tassert.Equal(t, [3]bool{false, false, false}, web.arena.RedRealtimeScore.CurrentScore.LeaveStatuses)\n\tleaveData := struct {\n\t\tTeamPosition int\n\t}{}\n\tweb.arena.MatchState = field.AutoPeriod\n\tleaveData.TeamPosition = 1\n\tredWs.Write(\"leave\", leaveData)\n\tleaveData.TeamPosition = 3\n\tredWs.Write(\"leave\", leaveData)\n\tfor i := 0; i < 2; i++ {\n\t\treadWebsocketType(t, redWs, \"realtimeScore\")\n\t\treadWebsocketType(t, blueWs, \"realtimeScore\")\n\t}\n\tassert.Equal(t, [3]bool{true, false, true}, web.arena.RedRealtimeScore.CurrentScore.LeaveStatuses)\n\tredWs.Write(\"leave\", leaveData)\n\treadWebsocketType(t, redWs, \"realtimeScore\")\n\treadWebsocketType(t, blueWs, \"realtimeScore\")\n\tassert.Equal(t, [3]bool{true, false, false}, web.arena.RedRealtimeScore.CurrentScore.LeaveStatuses)\n\n\t// Send some counter scoring commands\n\tcounterData := struct {\n\t\tAdjustment int\n\t\tCurrent    bool\n\t\tAutonomous bool\n\t\tNearSide   bool\n\t}{}\n\tassert.Equal(t, 0, web.arena.RedRealtimeScore.CurrentScore.BargeAlgae)\n\tassert.Equal(t, 0, web.arena.BlueRealtimeScore.CurrentScore.BargeAlgae)\n\tassert.Equal(t, 0, web.arena.RedRealtimeScore.CurrentScore.ProcessorAlgae)\n\tassert.Equal(t, 0, web.arena.BlueRealtimeScore.CurrentScore.ProcessorAlgae)\n\tcounterData.Adjustment = 1\n\tblueWs.Write(\"barge\", counterData)\n\tblueWs.Write(\"barge\", counterData)\n\tblueWs.Write(\"barge\", counterData)\n\tcounterData.Adjustment = -1\n\tblueWs.Write(\"barge\", counterData)\n\tblueWs.Write(\"barge\", counterData)\n\tcounterData.Adjustment = 1\n\tblueWs.Write(\"barge\", counterData)\n\tfor i := 0; i < 6; i++ {\n\t\treadWebsocketType(t, redWs, \"realtimeScore\")\n\t\treadWebsocketType(t, blueWs, \"realtimeScore\")\n\t}\n\tcounterData.Adjustment = -1\n\tredWs.Write(\"processor\", counterData)\n\tredWs.Write(\"processor\", counterData)\n\tcounterData.Adjustment = 1\n\tredWs.Write(\"processor\", counterData)\n\tredWs.Write(\"processor\", counterData)\n\tredWs.Write(\"processor\", counterData)\n\tcounterData.Adjustment = -1\n\tredWs.Write(\"processor\", counterData)\n\tfor i := 0; i < 6; i++ {\n\t\treadWebsocketType(t, redWs, \"realtimeScore\")\n\t\treadWebsocketType(t, blueWs, \"realtimeScore\")\n\t}\n\tassert.Equal(t, 0, web.arena.RedRealtimeScore.CurrentScore.BargeAlgae)\n\tassert.Equal(t, 2, web.arena.BlueRealtimeScore.CurrentScore.BargeAlgae)\n\tassert.Equal(t, 2, web.arena.RedRealtimeScore.CurrentScore.ProcessorAlgae)\n\tassert.Equal(t, 0, web.arena.BlueRealtimeScore.CurrentScore.ProcessorAlgae)\n\n\t// Send some trough scoring commands\n\tassert.Equal(t, 0, web.arena.RedRealtimeScore.CurrentScore.Reef.TroughNear)\n\tassert.Equal(t, 0, web.arena.RedRealtimeScore.CurrentScore.Reef.TroughFar)\n\tassert.Equal(t, 0, web.arena.RedRealtimeScore.CurrentScore.Reef.AutoTroughNear)\n\tassert.Equal(t, 0, web.arena.RedRealtimeScore.CurrentScore.Reef.AutoTroughFar)\n\tcounterData.Adjustment = 1\n\tcounterData.Current = true\n\tcounterData.Autonomous = true\n\tcounterData.NearSide = true\n\tredWs.Write(\"trough\", counterData)\n\tredWs.Write(\"trough\", counterData)\n\tredWs.Write(\"trough\", counterData)\n\tcounterData.Adjustment = -1\n\tredWs.Write(\"trough\", counterData)\n\tfor i := 0; i < 4; i++ {\n\t\treadWebsocketType(t, redWs, \"realtimeScore\")\n\t\treadWebsocketType(t, blueWs, \"realtimeScore\")\n\t}\n\tcounterData.Autonomous = false\n\tcounterData.Adjustment = 1\n\tredWs.Write(\"trough\", counterData)\n\tredWs.Write(\"trough\", counterData)\n\tcounterData.Current = false\n\tcounterData.Autonomous = true\n\tredWs.Write(\"trough\", counterData)\n\tcounterData.NearSide = false\n\tredWs.Write(\"trough\", counterData)\n\tcounterData.Adjustment = -1\n\tcounterData.Current = true\n\tcounterData.Autonomous = false\n\tredWs.Write(\"trough\", counterData)\n\tfor i := 0; i < 5; i++ {\n\t\treadWebsocketType(t, redWs, \"realtimeScore\")\n\t\treadWebsocketType(t, blueWs, \"realtimeScore\")\n\t}\n\tassert.Equal(t, 4, web.arena.RedRealtimeScore.CurrentScore.Reef.TroughNear)\n\tassert.Equal(t, 0, web.arena.RedRealtimeScore.CurrentScore.Reef.TroughFar)\n\tassert.Equal(t, 3, web.arena.RedRealtimeScore.CurrentScore.Reef.AutoTroughNear)\n\tassert.Equal(t, 1, web.arena.RedRealtimeScore.CurrentScore.Reef.AutoTroughFar)\n\n\t// Send some reef scoring commands\n\treefData := struct {\n\t\tReefPosition int\n\t\tReefLevel    int\n\t\tCurrent      bool\n\t\tAutonomous   bool\n\t}{}\n\t// Auto phase\n\treefData.ReefPosition = 3\n\treefData.ReefLevel = 2\n\treefData.Current = true\n\treefData.Autonomous = true\n\tredWs.Write(\"reef\", reefData)\n\treefData.ReefPosition = 2\n\tblueWs.Write(\"reef\", reefData)\n\treefData.ReefLevel = 4\n\tblueWs.Write(\"reef\", reefData)\n\tblueWs.Write(\"reef\", reefData)\n\t// Teleop phase\n\treefData.Autonomous = false\n\treefData.ReefPosition = 12\n\treefData.ReefLevel = 3\n\tredWs.Write(\"reef\", reefData)\n\t// Auto adjustment\n\treefData.Current = false\n\treefData.Autonomous = true\n\treefData.ReefPosition = 3\n\treefData.ReefLevel = 2\n\tredWs.Write(\"reef\", reefData)\n\tfor i := 0; i < 6; i++ {\n\t\treadWebsocketType(t, redWs, \"realtimeScore\")\n\t\treadWebsocketType(t, blueWs, \"realtimeScore\")\n\t}\n\t// Red Auto\n\tassert.Equal(\n\t\tt,\n\t\t[12]bool{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\tweb.arena.RedRealtimeScore.CurrentScore.Reef.AutoBranches[game.Level4],\n\t)\n\tassert.Equal(\n\t\tt,\n\t\t[12]bool{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\tweb.arena.RedRealtimeScore.CurrentScore.Reef.AutoBranches[game.Level3],\n\t)\n\tassert.Equal(\n\t\tt,\n\t\t[12]bool{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\tweb.arena.RedRealtimeScore.CurrentScore.Reef.AutoBranches[game.Level2],\n\t)\n\t// Red Current\n\tassert.Equal(\n\t\tt,\n\t\t[12]bool{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\tweb.arena.RedRealtimeScore.CurrentScore.Reef.Branches[game.Level4],\n\t)\n\tassert.Equal(\n\t\tt,\n\t\t[12]bool{false, false, false, false, false, false, false, false, false, false, false, true},\n\t\tweb.arena.RedRealtimeScore.CurrentScore.Reef.Branches[game.Level3],\n\t)\n\tassert.Equal(\n\t\tt,\n\t\t[12]bool{false, false, true, false, false, false, false, false, false, false, false, false},\n\t\tweb.arena.RedRealtimeScore.CurrentScore.Reef.Branches[game.Level2],\n\t)\n\t// Blue Auto\n\tassert.Equal(\n\t\tt,\n\t\t[12]bool{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\tweb.arena.BlueRealtimeScore.CurrentScore.Reef.AutoBranches[game.Level4],\n\t)\n\tassert.Equal(\n\t\tt,\n\t\t[12]bool{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\tweb.arena.BlueRealtimeScore.CurrentScore.Reef.AutoBranches[game.Level3],\n\t)\n\tassert.Equal(\n\t\tt,\n\t\t[12]bool{false, true, false, false, false, false, false, false, false, false, false, false},\n\t\tweb.arena.BlueRealtimeScore.CurrentScore.Reef.AutoBranches[game.Level2],\n\t)\n\t// Blue Current\n\tassert.Equal(\n\t\tt,\n\t\t[12]bool{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\tweb.arena.BlueRealtimeScore.CurrentScore.Reef.Branches[game.Level4],\n\t)\n\tassert.Equal(\n\t\tt,\n\t\t[12]bool{false, false, false, false, false, false, false, false, false, false, false, false},\n\t\tweb.arena.BlueRealtimeScore.CurrentScore.Reef.Branches[game.Level3],\n\t)\n\tassert.Equal(\n\t\tt,\n\t\t[12]bool{false, true, false, false, false, false, false, false, false, false, false, false},\n\t\tweb.arena.BlueRealtimeScore.CurrentScore.Reef.Branches[game.Level2],\n\t)\n\n\t// Send some endgame scoring commands\n\tendgameData := struct {\n\t\tTeamPosition  int\n\t\tEndgameStatus int\n\t}{}\n\tassert.Equal(\n\t\tt,\n\t\t[3]game.EndgameStatus{game.EndgameNone, game.EndgameNone, game.EndgameNone},\n\t\tweb.arena.RedRealtimeScore.CurrentScore.EndgameStatuses,\n\t)\n\tassert.Equal(\n\t\tt,\n\t\t[3]game.EndgameStatus{game.EndgameNone, game.EndgameNone, game.EndgameNone},\n\t\tweb.arena.BlueRealtimeScore.CurrentScore.EndgameStatuses,\n\t)\n\tendgameData.TeamPosition = 1\n\tendgameData.EndgameStatus = 2\n\tredWs.Write(\"endgame\", endgameData)\n\tendgameData.TeamPosition = 2\n\tendgameData.EndgameStatus = 3\n\tblueWs.Write(\"endgame\", endgameData)\n\tendgameData.TeamPosition = 3\n\tendgameData.EndgameStatus = 1\n\tblueWs.Write(\"endgame\", endgameData)\n\tendgameData.TeamPosition = 3\n\tendgameData.EndgameStatus = 1\n\tredWs.Write(\"endgame\", endgameData)\n\tendgameData.TeamPosition = 3\n\tendgameData.EndgameStatus = 3\n\tredWs.Write(\"endgame\", endgameData)\n\tendgameData.TeamPosition = 2\n\tendgameData.EndgameStatus = 0\n\tredWs.Write(\"endgame\", endgameData)\n\tfor i := 0; i < 6; i++ {\n\t\treadWebsocketType(t, redWs, \"realtimeScore\")\n\t\treadWebsocketType(t, blueWs, \"realtimeScore\")\n\t}\n\tassert.Equal(\n\t\tt,\n\t\t[3]game.EndgameStatus{game.EndgameShallowCage, game.EndgameNone, game.EndgameDeepCage},\n\t\tweb.arena.RedRealtimeScore.CurrentScore.EndgameStatuses,\n\t)\n\tassert.Equal(\n\t\tt,\n\t\t[3]game.EndgameStatus{game.EndgameNone, game.EndgameDeepCage, game.EndgameParked},\n\t\tweb.arena.BlueRealtimeScore.CurrentScore.EndgameStatuses,\n\t)\n\n\t// Test that some invalid commands do nothing and don't result in score change notifications.\n\tredWs.Write(\"invalid\", nil)\n\tleaveData.TeamPosition = 0\n\tredWs.Write(\"leave\", leaveData)\n\tcounterData.Current = false\n\tcounterData.Autonomous = false\n\tredWs.Write(\"trough\", counterData)\n\tendgameData.TeamPosition = 1\n\tendgameData.EndgameStatus = 4\n\tblueWs.Write(\"endgame\", endgameData)\n\n\t// Test committing logic.\n\tredWs.Write(\"commitMatch\", nil)\n\treadWebsocketType(t, redWs, \"error\")\n\tblueWs.Write(\"commitMatch\", nil)\n\treadWebsocketType(t, blueWs, \"error\")\n\tassert.Equal(t, 0, web.arena.ScoringPanelRegistry.GetNumScoreCommitted(\"red_near\"))\n\tassert.Equal(t, 0, web.arena.ScoringPanelRegistry.GetNumScoreCommitted(\"blue_near\"))\n\tweb.arena.MatchState = field.PostMatch\n\tredWs.Write(\"commitMatch\", nil)\n\tblueWs.Write(\"commitMatch\", nil)\n\ttime.Sleep(time.Millisecond * 10) // Allow some time for the commands to be processed.\n\tassert.Equal(t, 1, web.arena.ScoringPanelRegistry.GetNumScoreCommitted(\"red_near\"))\n\tassert.Equal(t, 1, web.arena.ScoringPanelRegistry.GetNumScoreCommitted(\"blue_near\"))\n\n\t// Load another match to reset the results.\n\tweb.arena.ResetMatch()\n\tweb.arena.LoadTestMatch()\n\treadWebsocketType(t, redWs, \"matchLoad\")\n\treadWebsocketType(t, redWs, \"realtimeScore\")\n\treadWebsocketType(t, blueWs, \"matchLoad\")\n\treadWebsocketType(t, blueWs, \"realtimeScore\")\n\tassert.Equal(t, field.NewRealtimeScore(), web.arena.RedRealtimeScore)\n\tassert.Equal(t, field.NewRealtimeScore(), web.arena.BlueRealtimeScore)\n\tassert.Equal(t, 0, web.arena.ScoringPanelRegistry.GetNumScoreCommitted(\"red_near\"))\n\tassert.Equal(t, 0, web.arena.ScoringPanelRegistry.GetNumScoreCommitted(\"blue_near\"))\n}\n"
  },
  {
    "path": "web/setup_awards.go",
    "content": "// Copyright 2019 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for managing awards.\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/tournament\"\n\t\"net/http\"\n\t\"strconv\"\n)\n\n// Shows the awards configuration page.\nfunc (web *Web) awardsGetHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/setup_awards.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tawards, err := web.arena.Database.GetAllAwards()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tteams, err := web.arena.Database.GetAllTeams()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Append a blank award to the end that can be used to add a new one.\n\tawards = append(awards, model.Award{})\n\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tAwards []model.Award\n\t\tTeams  []model.Team\n\t}{web.arena.EventSettings, awards, teams}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Saves the new or modified awards to the database.\nfunc (web *Web) awardsPostHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tawardId, _ := strconv.Atoi(r.PostFormValue(\"id\"))\n\tif r.PostFormValue(\"action\") == \"delete\" {\n\t\tif err := tournament.DeleteAward(web.arena.Database, awardId); err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t} else {\n\t\tteamId, _ := strconv.Atoi(r.PostFormValue(\"teamId\"))\n\t\taward := model.Award{\n\t\t\tId:         awardId,\n\t\t\tType:       model.JudgedAward,\n\t\t\tAwardName:  r.PostFormValue(\"awardName\"),\n\t\t\tTeamId:     teamId,\n\t\t\tPersonName: r.PostFormValue(\"personName\"),\n\t\t}\n\t\tif err := tournament.CreateOrUpdateAward(web.arena.Database, &award, true); err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t}\n\n\thttp.Redirect(w, r, \"/setup/awards\", 303)\n}\n"
  },
  {
    "path": "web/setup_awards_test.go",
    "content": "// Copyright 2019 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestSetupAwards(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tweb.arena.Database.CreateAward(&model.Award{0, model.JudgedAward, \"Spirit Award\", 0, \"\"})\n\tweb.arena.Database.CreateAward(&model.Award{0, model.JudgedAward, \"Saftey Award\", 0, \"\"})\n\n\trecorder := web.getHttpResponse(\"/setup/awards\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Spirit Award\")\n\tassert.Contains(t, recorder.Body.String(), \"Saftey Award\")\n\n\trecorder = web.postHttpResponse(\"/setup/awards\", \"action=delete&id=1\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/setup/awards\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.NotContains(t, recorder.Body.String(), \"Spirit Award\")\n\tassert.Contains(t, recorder.Body.String(), \"Saftey Award\")\n\n\trecorder = web.postHttpResponse(\"/setup/awards\", \"awardId=2&awardName=Saftey+Award&personName=Englebert\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/setup/awards\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Englebert\")\n}\n"
  },
  {
    "path": "web/setup_breaks.go",
    "content": "// Copyright 2024 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for managing scheduled breaks.\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"net/http\"\n\t\"strconv\"\n)\n\n// Shows the breaks configuration page.\nfunc (web *Web) breaksGetHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/setup_breaks.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tbreaks, err := web.arena.Database.GetScheduledBreaksByMatchType(model.Playoff)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tScheduledBreaks []model.ScheduledBreak\n\t}{web.arena.EventSettings, breaks}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Saves the modified breaks to the database.\nfunc (web *Web) breaksPostHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tscheduledBreakId, _ := strconv.Atoi(r.PostFormValue(\"id\"))\n\tscheduledBreak, err := web.arena.Database.GetScheduledBreakById(scheduledBreakId)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tscheduledBreak.Description = r.PostFormValue(\"description\")\n\tif err = web.arena.Database.UpdateScheduledBreak(scheduledBreak); err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\thttp.Redirect(w, r, \"/setup/breaks\", 303)\n}\n"
  },
  {
    "path": "web/setup_breaks_test.go",
    "content": "// Copyright 2024 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestSetupBreaks(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tweb.arena.Database.CreateScheduledBreak(\n\t\t&model.ScheduledBreak{0, model.Playoff, 4, time.Unix(500, 0).UTC(), 900, \"Field Break 1\"},\n\t)\n\tweb.arena.Database.CreateScheduledBreak(\n\t\t&model.ScheduledBreak{0, model.Playoff, 4, time.Unix(500, 0).UTC(), 900, \"Field Break 2\"},\n\t)\n\n\trecorder := web.getHttpResponse(\"/setup/breaks\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Field Break 1\")\n\tassert.Contains(t, recorder.Body.String(), \"Field Break 2\")\n\n\trecorder = web.postHttpResponse(\"/setup/breaks\", \"id=2&description=Award Break 3\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/setup/breaks\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Field Break 1\")\n\tassert.NotContains(t, recorder.Body.String(), \"Field Break 2\")\n\tassert.Contains(t, recorder.Body.String(), \"Award Break 3\")\n}\n"
  },
  {
    "path": "web/setup_displays.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for configuring the field displays.\n\npackage web\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/field\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"github.com/mitchellh/mapstructure\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n)\n\n// Shows the displays configuration page.\nfunc (web *Web) displaysGetHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/setup_displays.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tDisplayTypeNames map[field.DisplayType]string\n\t}{web.arena.EventSettings, field.DisplayTypeNames}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for the display configuration page to send control commands and receive status updates.\nfunc (web *Web) displaysWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client, in a separate goroutine.\n\tgo ws.HandleNotifiers(web.arena.DisplayConfigurationNotifier)\n\n\t// Loop, waiting for commands and responding to them, until the client closes the connection.\n\tfor {\n\t\tmessageType, data, err := ws.Read()\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\t// Client has closed the connection; nothing to do here.\n\t\t\t\treturn\n\t\t\t}\n\t\t\tlog.Println(err)\n\t\t\treturn\n\t\t}\n\n\t\tswitch messageType {\n\t\tcase \"configureDisplay\":\n\t\t\tvar displayConfig field.DisplayConfiguration\n\t\t\terr = mapstructure.Decode(data, &displayConfig)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err = web.arena.UpdateDisplay(displayConfig); err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase \"reloadDisplay\":\n\t\t\tdisplayId, ok := data.(string)\n\t\t\tif !ok {\n\t\t\t\tws.WriteError(fmt.Sprintf(\"Failed to parse '%s' message.\", messageType))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.arena.ReloadDisplaysNotifier.NotifyWithMessage(displayId)\n\t\tcase \"reloadAllDisplays\":\n\t\t\tweb.arena.ReloadDisplaysNotifier.Notify()\n\t\tdefault:\n\t\t\tws.WriteError(fmt.Sprintf(\"Invalid message type '%s'.\", messageType))\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "web/setup_displays_test.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/field\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/mitchellh/mapstructure\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestSetupDisplays(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/setup/displays\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Display Configuration - Untitled Event - Cheesy Arena\")\n}\n\nfunc TestSetupDisplaysWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/setup/displays/websocket\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\tmessage := readDisplayConfiguration(t, ws)\n\tassert.Empty(t, message)\n\n\t// Connect a couple of displays and verify the resulting configuration messages.\n\tdisplayConn1, _, _ := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/display/websocket?displayId=1\", nil)\n\tdefer displayConn1.Close()\n\tdisplayWs1 := websocket.NewTestWebsocket(displayConn1)\n\tassert.Equal(t, \"/display?displayId=1\", readWebsocketType(t, displayWs1, \"displayConfiguration\"))\n\treadDisplayConfiguration(t, ws)\n\tdisplayConn2, _, _ := gorillawebsocket.DefaultDialer.Dial(\n\t\twsUrl+\"/displays/alliance_station/websocket?displayId=2&station=R2\", nil,\n\t)\n\tdefer displayConn2.Close()\n\tmessage = readDisplayConfiguration(t, ws)\n\tif assert.Equal(t, 2, len(message)) {\n\t\tassert.Equal(\n\t\t\tt,\n\t\t\tfield.DisplayConfiguration{\"1\", \"\", field.PlaceholderDisplay, map[string]string{}},\n\t\t\tmessage[\"1\"].DisplayConfiguration,\n\t\t)\n\t\tassert.Equal(t, 1, message[\"1\"].ConnectionCount)\n\t\tassert.Equal(t, \"127.0.0.1\", message[\"1\"].IpAddress)\n\t\tassert.Equal(\n\t\t\tt,\n\t\t\tfield.DisplayConfiguration{\"2\", \"\", field.AllianceStationDisplay, map[string]string{\"station\": \"R2\"}},\n\t\t\tmessage[\"2\"].DisplayConfiguration,\n\t\t)\n\t\tassert.Equal(t, 1, message[\"2\"].ConnectionCount)\n\t\tassert.Equal(t, \"127.0.0.1\", message[\"2\"].IpAddress)\n\t}\n\n\t// Reconfigure a display and verify the result.\n\tdisplayConfig := field.DisplayConfiguration{\n\t\tId:            \"1\",\n\t\tNickname:      \"Audience Display\",\n\t\tType:          field.AudienceDisplay,\n\t\tConfiguration: map[string]string{\"background\": \"#00f\", \"reversed\": \"true\"},\n\t}\n\tws.Write(\"configureDisplay\", displayConfig)\n\tmessage = readDisplayConfiguration(t, ws)\n\tassert.Equal(t, displayConfig, message[\"1\"].DisplayConfiguration)\n\tassert.Equal(\n\t\tt,\n\t\t\"/displays/audience?displayId=1&nickname=Audience+Display&background=%2300f&reversed=true\",\n\t\treadWebsocketType(t, displayWs1, \"displayConfiguration\"),\n\t)\n}\n\nfunc TestSetupDisplaysWebsocketReloadDisplays(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/setup/displays/websocket\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadDisplayConfiguration(t, ws)\n\n\t// Connect a display and verify the resulting configuration messages.\n\tdisplayConn, _, _ := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/display/websocket?displayId=1\", nil)\n\tdefer displayConn.Close()\n\tdisplayWs := websocket.NewTestWebsocket(displayConn)\n\tassert.Equal(t, \"/display?displayId=1\", readWebsocketType(t, displayWs, \"displayConfiguration\"))\n\treadDisplayConfiguration(t, ws)\n\n\t// Reset a display selectively and verify the resulting message.\n\tws.Write(\"reloadDisplay\", \"1\")\n\tassert.Equal(t, \"1\", readWebsocketType(t, displayWs, \"reload\"))\n\tws.Write(\"reloadAllDisplays\", nil)\n\tassert.Equal(t, nil, readWebsocketType(t, displayWs, \"reload\"))\n}\n\nfunc readDisplayConfiguration(t *testing.T, ws *websocket.Websocket) map[string]field.Display {\n\tmessage := readWebsocketType(t, ws, \"displayConfiguration\")\n\tvar displayConfigurationMessage map[string]field.Display\n\terr := mapstructure.Decode(message, &displayConfigurationMessage)\n\tassert.Nil(t, err)\n\treturn displayConfigurationMessage\n}\n"
  },
  {
    "path": "web/setup_field_testing.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for testing the field sounds, LEDs, and PLC.\n\npackage web\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n)\n\n// Shows the Field Testing page.\nfunc (web *Web) fieldTestingGetHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/setup_field_testing.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tplc := web.arena.Plc\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tMatchSounds   []*game.MatchSound\n\t\tInputNames    []string\n\t\tRegisterNames []string\n\t\tCoilNames     []string\n\t}{web.arena.EventSettings, game.MatchSounds, plc.GetInputNames(), plc.GetRegisterNames(), plc.GetCoilNames()}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for sending realtime updates to the Field Testing page.\nfunc (web *Web) fieldTestingWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client, in a separate goroutine.\n\tgo ws.HandleNotifiers(web.arena.Plc.IoChangeNotifier())\n\n\t// Loop, waiting for commands and responding to them, until the client closes the connection.\n\tfor {\n\t\tmessageType, data, err := ws.Read()\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\t// Client has closed the connection; nothing to do here.\n\t\t\t\treturn\n\t\t\t}\n\t\t\tlog.Println(err)\n\t\t\treturn\n\t\t}\n\n\t\tswitch messageType {\n\t\tcase \"playSound\":\n\t\t\tsound, ok := data.(string)\n\t\t\tif !ok {\n\t\t\t\tws.WriteError(fmt.Sprintf(\"Failed to parse '%s' message.\", messageType))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.arena.PlaySoundNotifier.NotifyWithMessage(sound)\n\t\tdefault:\n\t\t\tws.WriteError(fmt.Sprintf(\"Invalid message type '%s'.\", messageType))\n\t\t\tcontinue\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "web/setup_field_testing_test.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestSetupFieldTesting(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/setup/field_testing\")\n\tassert.Equal(t, 200, recorder.Code)\n\tfor _, sound := range game.MatchSounds {\n\t\tassert.Contains(t, recorder.Body.String(), sound.Name)\n\t}\n}\n\nfunc TestSetupFieldTestingWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/setup/field_testing/websocket\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"plcIoChange\")\n\n\t// Also create a websocket to the audience display to check that it plays the requested game sound.\n\taudienceConn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/displays/audience/websocket?displayId=1\", nil)\n\tassert.Nil(t, err)\n\tdefer audienceConn.Close()\n\taudienceWs := websocket.NewTestWebsocket(audienceConn)\n\treadWebsocketMultiple(t, audienceWs, 9)\n\n\tws.Write(\"playSound\", \"resume\")\n\tassert.Equal(t, \"resume\", readWebsocketType(t, audienceWs, \"playSound\"))\n}\n"
  },
  {
    "path": "web/setup_judging.go",
    "content": "// Copyright 2025 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for generating judging schedules.\n\npackage web\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/tournament\"\n\t\"net/http\"\n\t\"sort\"\n\t\"strconv\"\n)\n\nvar judgingScheduleParams = tournament.JudgingScheduleParams{\n\tNumJudges:              5,\n\tDurationMinutes:        15,\n\tPreviousSpacingMinutes: 20,\n\tNextSpacingMinutes:     20,\n}\n\n// Shows the judging schedule setup page.\nfunc (web *Web) judgingGetHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tweb.renderJudging(w, r, \"\")\n}\n\n// Generates a judging schedule based on the parameters and saves it to the database.\nfunc (web *Web) judgingGeneratePostHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tnumJudges, err := strconv.Atoi(r.PostFormValue(\"numJudges\"))\n\tif err != nil || numJudges <= 0 {\n\t\tweb.renderJudging(w, r, \"Number of judges must be a positive integer.\")\n\t\treturn\n\t}\n\tdurationMinutes, err := strconv.Atoi(r.PostFormValue(\"durationMinutes\"))\n\tif err != nil || durationMinutes <= 0 {\n\t\tweb.renderJudging(w, r, \"Visit duration must be a positive integer.\")\n\t\treturn\n\t}\n\tpreviousSpacingMinutes, err := strconv.Atoi(r.PostFormValue(\"previousSpacingMinutes\"))\n\tif err != nil || previousSpacingMinutes <= 0 {\n\t\tweb.renderJudging(w, r, \"Minimum spacing after previous match must be a positive integer.\")\n\t\treturn\n\t}\n\tnextSpacingMinutes, err := strconv.Atoi(r.PostFormValue(\"nextSpacingMinutes\"))\n\tif err != nil || nextSpacingMinutes <= 0 {\n\t\tweb.renderJudging(w, r, \"Minimum spacing before next match must be a positive integer.\")\n\t\treturn\n\t}\n\tqualMatches, err := web.arena.Database.GetMatchesByType(model.Qualification, true)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tif len(qualMatches) == 0 {\n\t\tweb.renderJudging(w, r, \"No qualification matches found. Generate the qualification schedule first.\")\n\t\treturn\n\t}\n\tslots, err := web.arena.Database.GetAllJudgingSlots()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tif len(slots) > 0 {\n\t\tweb.renderJudging(w, r, \"Judging schedule already exists. Clear it first before generating a new one.\")\n\t\treturn\n\t}\n\n\tjudgingScheduleParams.NumJudges = numJudges\n\tjudgingScheduleParams.DurationMinutes = durationMinutes\n\tjudgingScheduleParams.PreviousSpacingMinutes = previousSpacingMinutes\n\tjudgingScheduleParams.NextSpacingMinutes = nextSpacingMinutes\n\terr = tournament.BuildJudgingSchedule(web.arena.Database, judgingScheduleParams)\n\tif err != nil {\n\t\tweb.renderJudging(w, r, fmt.Sprintf(\"Error generating judging schedule: %s\", err.Error()))\n\t\treturn\n\t}\n\n\thttp.Redirect(w, r, \"/setup/judging\", 303)\n}\n\n// Clears the judging schedule.\nfunc (web *Web) judgingClearPostHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tif err := web.arena.Database.TruncateJudgingSlots(); err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\thttp.Redirect(w, r, \"/setup/judging\", 303)\n}\n\n// Renders the judging setup page with an optional error message.\nfunc (web *Web) renderJudging(w http.ResponseWriter, r *http.Request, errorMessage string) {\n\tslots, err := web.arena.Database.GetAllJudgingSlots()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Sort slots by judge team and then by time for display.\n\tsort.Slice(\n\t\tslots,\n\t\tfunc(i, j int) bool {\n\t\t\tif slots[i].JudgeNumber != slots[j].JudgeNumber {\n\t\t\t\treturn slots[i].JudgeNumber < slots[j].JudgeNumber\n\t\t\t}\n\t\t\treturn slots[i].Time.Before(slots[j].Time)\n\t\t},\n\t)\n\n\ttemplate, err := web.parseFiles(\"templates/setup_judging.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tJudgingScheduleParams tournament.JudgingScheduleParams\n\t\tJudgingSlots          []model.JudgingSlot\n\t\tErrorMessage          string\n\t}{web.arena.EventSettings, judgingScheduleParams, slots, errorMessage}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n"
  },
  {
    "path": "web/setup_judging_test.go",
    "content": "// Copyright 2025 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"net/url\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestSetupJudging(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\t// Check that the page renders.\n\trecorder := web.getHttpResponse(\"/setup/judging\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Judge Scheduling\")\n\n\t// Generate teams and matches to test against.\n\tassert.Nil(t, web.arena.Database.CreateTeam(&model.Team{Id: 1}))\n\tassert.Nil(t, web.arena.Database.CreateTeam(&model.Team{Id: 2}))\n\tassert.Nil(t, web.arena.Database.CreateTeam(&model.Team{Id: 3}))\n\tassert.Nil(t, web.arena.Database.CreateTeam(&model.Team{Id: 4}))\n\tassert.Nil(t, web.arena.Database.CreateTeam(&model.Team{Id: 5}))\n\tassert.Nil(t, web.arena.Database.CreateTeam(&model.Team{Id: 6}))\n\tmatch := model.Match{\n\t\tType:      model.Qualification,\n\t\tTypeOrder: 1,\n\t\tTime:      time.Now().Add(1 * time.Hour),\n\t\tRed1:      1,\n\t\tRed2:      2,\n\t\tRed3:      3,\n\t\tBlue1:     4,\n\t\tBlue2:     5,\n\t\tBlue3:     6,\n\t}\n\tassert.Nil(t, web.arena.Database.CreateMatch(&match))\n\tmatch = model.Match{\n\t\tType:      model.Qualification,\n\t\tTypeOrder: 2,\n\t\tTime:      time.Now().Add(2 * time.Hour),\n\t\tRed1:      6,\n\t\tRed2:      5,\n\t\tRed3:      4,\n\t\tBlue1:     3,\n\t\tBlue2:     2,\n\t\tBlue3:     1,\n\t}\n\tassert.Nil(t, web.arena.Database.CreateMatch(&match))\n\n\t// Generate a judging schedule with valid parameters.\n\tparams := url.Values{}\n\tparams.Set(\"numJudges\", \"3\")\n\tparams.Set(\"durationMinutes\", \"10\")\n\tparams.Set(\"previousSpacingMinutes\", \"15\")\n\tparams.Set(\"nextSpacingMinutes\", \"15\")\n\trecorder = web.postHttpResponse(\"/setup/judging/generate\", params.Encode())\n\tassert.Equal(t, 303, recorder.Code)\n\n\t// Verify that judging slots were created.\n\tslots, err := web.arena.Database.GetAllJudgingSlots()\n\tassert.Nil(t, err)\n\tassert.NotEmpty(t, slots)\n\n\t// Try to generate another judging schedule when one already exists.\n\trecorder = web.postHttpResponse(\"/setup/judging/generate\", params.Encode())\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"already exists\")\n\n\t// Clear the judging schedule.\n\trecorder = web.postHttpResponse(\"/setup/judging/clear\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\n\t// Verify that judging slots were cleared.\n\tslots, err = web.arena.Database.GetAllJudgingSlots()\n\tassert.Nil(t, err)\n\tassert.Empty(t, slots)\n\n\t// Test with invalid parameters.\n\tparams = url.Values{}\n\tparams.Set(\"numJudges\", \"0\")\n\tparams.Set(\"durationMinutes\", \"10\")\n\tparams.Set(\"previousSpacingMinutes\", \"15\")\n\tparams.Set(\"nextSpacingMinutes\", \"15\")\n\trecorder = web.postHttpResponse(\"/setup/judging/generate\", params.Encode())\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Number of judges must be a positive integer\")\n\n\tparams.Set(\"numJudges\", \"3\")\n\tparams.Set(\"durationMinutes\", \"invalid\")\n\trecorder = web.postHttpResponse(\"/setup/judging/generate\", params.Encode())\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Visit duration must be a positive integer\")\n\n\tparams.Set(\"durationMinutes\", \"10\")\n\tparams.Set(\"previousSpacingMinutes\", \"-5\")\n\trecorder = web.postHttpResponse(\"/setup/judging/generate\", params.Encode())\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Minimum spacing after previous match must be a positive integer\")\n\n\tparams.Set(\"previousSpacingMinutes\", \"15\")\n\tparams.Set(\"nextSpacingMinutes\", \"0\")\n\trecorder = web.postHttpResponse(\"/setup/judging/generate\", params.Encode())\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Minimum spacing before next match must be a positive integer\")\n\n\t// Delete all qualification matches and verify error.\n\tassert.Nil(t, web.arena.Database.TruncateMatches())\n\tparams.Set(\"nextSpacingMinutes\", \"15\")\n\trecorder = web.postHttpResponse(\"/setup/judging/generate\", params.Encode())\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"No qualification matches found\")\n}\n"
  },
  {
    "path": "web/setup_lower_thirds.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for managing lower thirds.\n\npackage web\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"github.com/mitchellh/mapstructure\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n)\n\n// Shows the lower third configuration page.\nfunc (web *Web) lowerThirdsGetHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\n\t\t\"templates/setup_lower_thirds.html\", \"templates/audience_display_radio_buttons.html\", \"templates/base.html\",\n\t)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tlowerThirds, err := web.arena.Database.GetAllLowerThirds()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tLowerThirds []model.LowerThird\n\t}{web.arena.EventSettings, lowerThirds}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for the lower thirds client to send control commands.\nfunc (web *Web) lowerThirdsWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client, in a separate goroutine.\n\tgo ws.HandleNotifiers(\n\t\tweb.arena.AudienceDisplayModeNotifier,\n\t)\n\n\t// Loop, waiting for commands and responding to them, until the client closes the connection.\n\tfor {\n\t\tmessageType, data, err := ws.Read()\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\t// Client has closed the connection; nothing to do here.\n\t\t\t\treturn\n\t\t\t}\n\t\t\tlog.Println(err)\n\t\t\treturn\n\t\t}\n\n\t\tswitch messageType {\n\t\tcase \"saveLowerThird\":\n\t\t\tvar lowerThird model.LowerThird\n\t\t\terr = mapstructure.Decode(data, &lowerThird)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.saveLowerThird(&lowerThird)\n\t\tcase \"deleteLowerThird\":\n\t\t\tvar lowerThird model.LowerThird\n\t\t\terr = mapstructure.Decode(data, &lowerThird)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\terr = web.arena.Database.DeleteLowerThird(lowerThird.Id)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase \"showLowerThird\":\n\t\t\tvar lowerThird model.LowerThird\n\t\t\terr = mapstructure.Decode(data, &lowerThird)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.saveLowerThird(&lowerThird)\n\t\t\tweb.arena.LowerThird = &lowerThird\n\t\t\tweb.arena.ShowLowerThird = true\n\t\t\tweb.arena.LowerThirdNotifier.Notify()\n\t\t\tcontinue\n\t\tcase \"hideLowerThird\":\n\t\t\tvar lowerThird model.LowerThird\n\t\t\terr = mapstructure.Decode(data, &lowerThird)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.saveLowerThird(&lowerThird)\n\t\t\tweb.arena.ShowLowerThird = false\n\t\t\tweb.arena.LowerThirdNotifier.Notify()\n\t\t\tcontinue\n\t\tcase \"reorderLowerThird\":\n\t\t\targs := struct {\n\t\t\t\tId     int\n\t\t\t\tMoveUp bool\n\t\t\t}{}\n\t\t\terr = mapstructure.Decode(data, &args)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\terr = web.reorderLowerThird(args.Id, args.MoveUp)\n\t\t\tif err != nil {\n\t\t\t\tws.WriteError(err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase \"setAudienceDisplay\":\n\t\t\tmode, ok := data.(string)\n\t\t\tif !ok {\n\t\t\t\tws.WriteError(fmt.Sprintf(\"Failed to parse '%s' message.\", messageType))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tweb.arena.SetAudienceDisplayMode(mode)\n\t\t\tcontinue\n\t\tdefault:\n\t\t\tws.WriteError(fmt.Sprintf(\"Invalid message type '%s'.\", messageType))\n\t\t\tcontinue\n\t\t}\n\n\t\t// Force a reload of the client to render the updated lower thirds list.\n\t\terr = ws.WriteNotifier(web.arena.ReloadDisplaysNotifier)\n\t\tif err != nil {\n\t\t\tlog.Println(err)\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (web *Web) saveLowerThird(lowerThird *model.LowerThird) error {\n\toldLowerThird, err := web.arena.Database.GetLowerThirdById(lowerThird.Id)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Create or update lower third.\n\tif oldLowerThird == nil {\n\t\tlowerThird.DisplayOrder = web.arena.Database.GetNextLowerThirdDisplayOrder()\n\t\terr = web.arena.Database.CreateLowerThird(lowerThird)\n\t} else {\n\t\toldLowerThird.TopText = lowerThird.TopText\n\t\toldLowerThird.BottomText = lowerThird.BottomText\n\t\terr = web.arena.Database.UpdateLowerThird(oldLowerThird)\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Swaps the lower third having the given ID with the one immediately above or below it.\nfunc (web *Web) reorderLowerThird(id int, moveUp bool) error {\n\tlowerThird, err := web.arena.Database.GetLowerThirdById(id)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Get the lower third to swap positions with.\n\tlowerThirds, err := web.arena.Database.GetAllLowerThirds()\n\tif err != nil {\n\t\treturn err\n\t}\n\tvar lowerThirdIndex int\n\tfor i, third := range lowerThirds {\n\t\tif third.Id == lowerThird.Id {\n\t\t\tlowerThirdIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif moveUp {\n\t\tlowerThirdIndex--\n\t} else {\n\t\tlowerThirdIndex++\n\t}\n\tif lowerThirdIndex < 0 || lowerThirdIndex == len(lowerThirds) {\n\t\t// The one to move is already at the limit; return an error to prevent a page reload.\n\t\treturn fmt.Errorf(\"Already at the limit.\")\n\t}\n\tadjacentLowerThird := &lowerThirds[lowerThirdIndex]\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Swap their display orders and save.\n\tlowerThird.DisplayOrder, adjacentLowerThird.DisplayOrder =\n\t\tadjacentLowerThird.DisplayOrder, lowerThird.DisplayOrder\n\terr = web.arena.Database.UpdateLowerThird(lowerThird)\n\tif err != nil {\n\t\treturn err\n\t}\n\terr = web.arena.Database.UpdateLowerThird(adjacentLowerThird)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "web/setup_lower_thirds_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestSetupLowerThirds(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tweb.arena.Database.CreateLowerThird(&model.LowerThird{0, \"Top Text 1\", \"Bottom Text 1\", 0, 0})\n\tweb.arena.Database.CreateLowerThird(&model.LowerThird{0, \"Top Text 2\", \"Bottom Text 2\", 1, 0})\n\tweb.arena.Database.CreateLowerThird(&model.LowerThird{0, \"Top Text 3\", \"Bottom Text 3\", 2, 0})\n\n\trecorder := web.getHttpResponse(\"/setup/lower_thirds\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Top Text 1\")\n\tassert.Contains(t, recorder.Body.String(), \"Bottom Text 2\")\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/setup/lower_thirds/websocket\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\tws.Write(\"saveLowerThird\", model.LowerThird{1, \"Top Text 4\", \"Bottom Text 1\", 0, 0})\n\ttime.Sleep(time.Millisecond * 10) // Allow some time for the command to be processed.\n\tlowerThird, _ := web.arena.Database.GetLowerThirdById(1)\n\tassert.Equal(t, \"Top Text 4\", lowerThird.TopText)\n\n\tws.Write(\"deleteLowerThird\", model.LowerThird{1, \"Top Text 4\", \"Bottom Text 1\", 0, 0})\n\ttime.Sleep(time.Millisecond * 10)\n\tlowerThird, _ = web.arena.Database.GetLowerThirdById(1)\n\tassert.Nil(t, lowerThird)\n\n\tassert.Equal(t, \"blank\", web.arena.AudienceDisplayMode)\n\tws.Write(\"showLowerThird\", model.LowerThird{2, \"Top Text 5\", \"Bottom Text 1\", 0, 0})\n\ttime.Sleep(time.Millisecond * 10)\n\tlowerThird, _ = web.arena.Database.GetLowerThirdById(2)\n\tassert.Equal(t, \"Top Text 5\", lowerThird.TopText)\n\tassert.Equal(t, true, web.arena.ShowLowerThird)\n\n\tws.Write(\"hideLowerThird\", model.LowerThird{2, \"Top Text 6\", \"Bottom Text 1\", 0, 0})\n\ttime.Sleep(time.Millisecond * 10)\n\tlowerThird, _ = web.arena.Database.GetLowerThirdById(2)\n\tassert.Equal(t, \"Top Text 6\", lowerThird.TopText)\n\tassert.Equal(t, false, web.arena.ShowLowerThird)\n\n\tws.Write(\"reorderLowerThird\", map[string]any{\"Id\": 2, \"moveUp\": false})\n\ttime.Sleep(time.Millisecond * 100)\n\tlowerThirds, _ := web.arena.Database.GetAllLowerThirds()\n\tassert.Equal(t, 3, lowerThirds[0].Id)\n\tassert.Equal(t, 2, lowerThirds[1].Id)\n}\n"
  },
  {
    "path": "web/setup_schedule.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for generating practice and qualification schedules.\n\npackage web\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/tournament\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// Global vars to hold schedules that are in the process of being generated.\nvar cachedMatches = make(map[model.MatchType][]model.Match)\nvar cachedTeamFirstMatches = make(map[model.MatchType]map[int]string)\n\n// Shows the schedule editing page.\nfunc (web *Web) scheduleGetHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tmatchTypeString := getMatchType(r)\n\tmatchType, _ := model.MatchTypeFromString(matchTypeString)\n\tif matchType != model.Practice && matchType != model.Qualification {\n\t\thttp.Redirect(w, r, \"/setup/schedule?matchType=practice\", 302)\n\t\treturn\n\t}\n\n\tweb.renderSchedule(w, r, \"\")\n}\n\n// Generates the schedule, presents it for review without saving it, and saves the schedule blocks to the database.\nfunc (web *Web) scheduleGeneratePostHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tmatchTypeString := getMatchType(r)\n\tmatchType, err := model.MatchTypeFromString(matchTypeString)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tscheduleBlocks, err := getScheduleBlocks(r)\n\t// Save blocks even if there is an error, so that any good ones are not discarded.\n\tdeleteBlocksErr := web.arena.Database.DeleteScheduleBlocksByMatchType(matchType)\n\tif deleteBlocksErr != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tfor _, block := range scheduleBlocks {\n\t\tblock.MatchType = matchType\n\t\tcreateBlockErr := web.arena.Database.CreateScheduleBlock(&block)\n\t\tif createBlockErr != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t}\n\tif err != nil {\n\t\tweb.renderSchedule(w, r, \"Incomplete or invalid schedule block parameters specified.\")\n\t\treturn\n\t}\n\n\t// Build the schedule.\n\tteams, err := web.arena.Database.GetAllTeams()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tif len(teams) == 0 {\n\t\tweb.renderSchedule(\n\t\t\tw,\n\t\t\tr,\n\t\t\t\"No team list is configured. Set up the list of teams at the event before generating the schedule.\",\n\t\t)\n\t\treturn\n\t}\n\tif len(teams) < 6 {\n\t\tweb.renderSchedule(\n\t\t\tw,\n\t\t\tr,\n\t\t\tfmt.Sprintf(\"There are only %d teams. There must be at least 6 teams to generate a schedule.\", len(teams)),\n\t\t)\n\t\treturn\n\t}\n\n\tmatches, err := tournament.BuildRandomSchedule(teams, scheduleBlocks, matchType)\n\tif err != nil {\n\t\tweb.renderSchedule(w, r, fmt.Sprintf(\"Error generating schedule: %s.\", err.Error()))\n\t\treturn\n\t}\n\tcachedMatches[matchType] = matches\n\n\t// Determine each team's first match.\n\tteamFirstMatches := make(map[int]string)\n\tfor _, match := range matches {\n\t\tcheckTeam := func(team int) {\n\t\t\t_, ok := teamFirstMatches[team]\n\t\t\tif !ok {\n\t\t\t\tteamFirstMatches[team] = match.ShortName\n\t\t\t}\n\t\t}\n\t\tcheckTeam(match.Red1)\n\t\tcheckTeam(match.Red2)\n\t\tcheckTeam(match.Red3)\n\t\tcheckTeam(match.Blue1)\n\t\tcheckTeam(match.Blue2)\n\t\tcheckTeam(match.Blue3)\n\t}\n\tcachedTeamFirstMatches[matchType] = teamFirstMatches\n\n\thttp.Redirect(w, r, \"/setup/schedule?matchType=\"+matchTypeString, 303)\n}\n\n// Saves the generated schedule to the database.\nfunc (web *Web) scheduleSavePostHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tmatchTypeString := getMatchType(r)\n\tmatchType, err := model.MatchTypeFromString(matchTypeString)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\texistingMatches, err := web.arena.Database.GetMatchesByType(matchType, true)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tif len(existingMatches) > 0 {\n\t\tweb.renderSchedule(\n\t\t\tw,\n\t\t\tr,\n\t\t\tfmt.Sprintf(\n\t\t\t\t\"Can't save schedule because a schedule of %d %s matches already exists. Clear it first on the \"+\n\t\t\t\t\t\"Settings page.\",\n\t\t\t\tlen(existingMatches),\n\t\t\t\tmatchType,\n\t\t\t),\n\t\t)\n\t\treturn\n\t}\n\n\tfor _, match := range cachedMatches[matchType] {\n\t\terr = web.arena.Database.CreateMatch(&match)\n\t\tif err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t}\n\n\t// Back up the database.\n\terr = web.arena.Database.Backup(web.arena.EventSettings.Name, \"post_scheduling\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\thttp.Redirect(w, r, \"/setup/schedule?matchType=\"+matchTypeString, 303)\n}\n\nfunc (web *Web) renderSchedule(w http.ResponseWriter, r *http.Request, errorMessage string) {\n\tmatchTypeString := getMatchType(r)\n\tmatchType, err := model.MatchTypeFromString(matchTypeString)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tscheduleBlocks, err := web.arena.Database.GetScheduleBlocksByMatchType(matchType)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tteams, err := web.arena.Database.GetAllTeams()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\ttemplate, err := web.parseFiles(\"templates/setup_schedule.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tMatchType        model.MatchType\n\t\tScheduleBlocks   []model.ScheduleBlock\n\t\tNumTeams         int\n\t\tMatches          []model.Match\n\t\tTeamFirstMatches map[int]string\n\t\tErrorMessage     string\n\t}{\n\t\tweb.arena.EventSettings,\n\t\tmatchType,\n\t\tscheduleBlocks,\n\t\tlen(teams),\n\t\tcachedMatches[matchType],\n\t\tcachedTeamFirstMatches[matchType],\n\t\terrorMessage,\n\t}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Converts the post form variables into a slice of schedule blocks.\nfunc getScheduleBlocks(r *http.Request) ([]model.ScheduleBlock, error) {\n\tnumScheduleBlocks, err := strconv.Atoi(r.PostFormValue(\"numScheduleBlocks\"))\n\tif err != nil {\n\t\treturn []model.ScheduleBlock{}, err\n\t}\n\tvar returnErr error\n\tscheduleBlocks := make([]model.ScheduleBlock, numScheduleBlocks)\n\tlocation, _ := time.LoadLocation(\"Local\")\n\tfor i := 0; i < numScheduleBlocks; i++ {\n\t\tscheduleBlocks[i].StartTime, err = time.ParseInLocation(\n\t\t\t\"2006-01-02 03:04:05 PM\", r.PostFormValue(fmt.Sprintf(\"startTime%d\", i)), location,\n\t\t)\n\t\tif err != nil {\n\t\t\treturnErr = err\n\t\t}\n\t\tscheduleBlocks[i].NumMatches, err = strconv.Atoi(r.PostFormValue(fmt.Sprintf(\"numMatches%d\", i)))\n\t\tif err != nil {\n\t\t\treturnErr = err\n\t\t}\n\t\tscheduleBlocks[i].MatchSpacingSec, err = strconv.Atoi(r.PostFormValue(fmt.Sprintf(\"matchSpacingSec%d\", i)))\n\t\tif err != nil {\n\t\t\treturnErr = err\n\t\t}\n\t}\n\treturn scheduleBlocks, returnErr\n}\n\nfunc getMatchType(r *http.Request) string {\n\tif matchType, ok := r.URL.Query()[\"matchType\"]; ok {\n\t\treturn matchType[0]\n\t}\n\treturn r.PostFormValue(\"matchType\")\n}\n"
  },
  {
    "path": "web/setup_schedule_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestSetupSchedule(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tfor i := 0; i < 38; i++ {\n\t\tweb.arena.Database.CreateTeam(&model.Team{Id: i + 101})\n\t}\n\tweb.arena.Database.CreateMatch(&model.Match{Type: model.Practice, ShortName: \"P1\"})\n\n\t// Check the default setting values.\n\trecorder := web.getHttpResponse(\"/setup/schedule?matchType=practice\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"addBlock();\")\n\n\t// Submit a schedule for generation.\n\tpostData := \"numScheduleBlocks=3&startTime0=2014-01-01 09:00:00 AM&numMatches0=7&matchSpacingSec0=480&\" +\n\t\t\"startTime1=2014-01-02 09:56:00 AM&numMatches1=17&matchSpacingSec1=420&startTime2=2014-01-03 01:00:00 PM&\" +\n\t\t\"numMatches2=40&matchSpacingSec2=360&matchType=qualification\"\n\trecorder = web.postHttpResponse(\"/setup/schedule/generate\", postData)\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/setup/schedule?matchType=qualification\")\n\tassert.Contains(t, recorder.Body.String(), \"2014-01-01 09:48:00\") // Last match of first block.\n\tassert.Contains(t, recorder.Body.String(), \"2014-01-02 11:48:00\") // Last match of second block.\n\tassert.Contains(t, recorder.Body.String(), \"2014-01-03 16:54:00\") // Last match of third block.\n\n\t// Save schedule and check that it was persisted.\n\trecorder = web.postHttpResponse(\"/setup/schedule/save?matchType=qualification\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\tmatches, err := web.arena.Database.GetMatchesByType(model.Qualification, true)\n\tassert.Nil(t, err)\n\tassert.Equal(t, 64, len(matches))\n\tlocation, _ := time.LoadLocation(\"Local\")\n\tassert.Equal(t, time.Date(2014, 1, 1, 9, 0, 0, 0, location).Unix(), matches[0].Time.Unix())\n\tassert.Equal(t, time.Date(2014, 1, 2, 9, 56, 0, 0, location).Unix(), matches[7].Time.Unix())\n\tassert.Equal(t, time.Date(2014, 1, 3, 13, 0, 0, 0, location).Unix(), matches[24].Time.Unix())\n}\n\nfunc TestSetupScheduleErrors(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\t// No teams.\n\tpostData := \"numScheduleBlocks=1&startTime0=2014-01-01 09:00:00 AM&numMatches0=7&matchSpacingSec0=480&\" +\n\t\t\"matchType=practice\"\n\trecorder := web.postHttpResponse(\"/setup/schedule/generate\", postData)\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"No team list is configured.\")\n\n\t// Insufficient number of teams.\n\tfor i := 0; i < 5; i++ {\n\t\tweb.arena.Database.CreateTeam(&model.Team{Id: i + 101})\n\t}\n\tpostData = \"numScheduleBlocks=1&startTime0=2014-01-01 09:00:00 AM&numMatches0=7&matchSpacingSec0=480&\" +\n\t\t\"matchType=practice\"\n\trecorder = web.postHttpResponse(\"/setup/schedule/generate\", postData)\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"There must be at least 6 teams to generate a schedule.\")\n\n\t// More matches per team than schedules exist for.\n\tweb.arena.Database.CreateTeam(&model.Team{Id: 118})\n\tpostData = \"numScheduleBlocks=1&startTime0=2014-01-01 09:00:00 AM&numMatches0=700&matchSpacingSec0=480&\" +\n\t\t\"matchType=practice\"\n\trecorder = web.postHttpResponse(\"/setup/schedule/generate\", postData)\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"No schedule template exists for 6 teams and 700 matches\")\n\n\t// Incomplete scheduling data received.\n\tpostData = \"numScheduleBlocks=1&startTime0=2014-01-01 09:00:00 AM&numMatches0=&matchSpacingSec0=480&\" +\n\t\t\"matchType=practice\"\n\trecorder = web.postHttpResponse(\"/setup/schedule/generate\", postData)\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Incomplete or invalid schedule block parameters specified.\")\n\n\t// Previous schedule already exists.\n\tfor i := 18; i < 38; i++ {\n\t\tweb.arena.Database.CreateTeam(&model.Team{Id: i + 101})\n\t}\n\tweb.arena.Database.CreateMatch(&model.Match{Type: model.Practice, ShortName: \"P1\"})\n\tweb.arena.Database.CreateMatch(&model.Match{Type: model.Practice, ShortName: \"P2\"})\n\tpostData = \"numScheduleBlocks=1&startTime0=2014-01-01 09:00:00 AM&numMatches0=64&matchSpacingSec0=480&\" +\n\t\t\"matchType=practice\"\n\trecorder = web.postHttpResponse(\"/setup/schedule/generate\", postData)\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.postHttpResponse(\"/setup/schedule/save\", postData)\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"schedule of 2 Practice matches already exists\")\n}\n"
  },
  {
    "path": "web/setup_settings.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for configuring the event settings.\n\npackage web\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"net/http\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/Team254/cheesy-arena/model\"\n)\n\n// Shows the event settings editing page.\nfunc (web *Web) settingsGetHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tweb.renderSettings(w, r, \"\")\n}\n\n// Saves the event settings.\nfunc (web *Web) settingsPostHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\teventSettings := web.arena.EventSettings\n\n\tpreviousEventName := eventSettings.Name\n\teventSettings.Name = r.PostFormValue(\"name\")\n\tif len(eventSettings.Name) < 1 && eventSettings.Name != previousEventName {\n\t\teventSettings.Name = previousEventName\n\t}\n\tpreviousAdminPassword := eventSettings.AdminPassword\n\n\tvar playoffType model.PlayoffType\n\tnumAlliances := 0\n\tif r.PostFormValue(\"playoffType\") == \"SingleEliminationPlayoff\" {\n\t\tplayoffType = model.SingleEliminationPlayoff\n\t\tnumAlliances, _ = strconv.Atoi(r.PostFormValue(\"numPlayoffAlliances\"))\n\t\tif numAlliances < 2 || numAlliances > 16 {\n\t\t\tweb.renderSettings(w, r, \"Number of alliances must be between 2 and 16.\")\n\t\t\treturn\n\t\t}\n\t} else {\n\t\tplayoffType = model.DoubleEliminationPlayoff\n\t\tnumAlliances = 8\n\t}\n\tif eventSettings.PlayoffType != playoffType || eventSettings.NumPlayoffAlliances != numAlliances {\n\t\talliances, err := web.arena.Database.GetAllAlliances()\n\t\tif err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t\tif len(alliances) > 0 {\n\t\t\tweb.renderSettings(\n\t\t\t\tw, r, \"Cannot change playoff type or size after alliance selection has been finalized.\",\n\t\t\t)\n\t\t\treturn\n\t\t}\n\t}\n\teventSettings.PlayoffType = playoffType\n\n\teventSettings.NumPlayoffAlliances = numAlliances\n\teventSettings.SelectionRound2Order = r.PostFormValue(\"selectionRound2Order\")\n\teventSettings.SelectionRound3Order = r.PostFormValue(\"selectionRound3Order\")\n\teventSettings.SelectionShowUnpickedTeams = r.PostFormValue(\"selectionShowUnpickedTeams\") == \"on\"\n\teventSettings.TbaDownloadEnabled = r.PostFormValue(\"tbaDownloadEnabled\") == \"on\"\n\teventSettings.TbaPublishingEnabled = r.PostFormValue(\"tbaPublishingEnabled\") == \"on\"\n\teventSettings.TbaEventCode = r.PostFormValue(\"tbaEventCode\")\n\teventSettings.TbaSecretId = r.PostFormValue(\"tbaSecretId\")\n\teventSettings.TbaSecret = r.PostFormValue(\"tbaSecret\")\n\teventSettings.NexusEnabled = r.PostFormValue(\"nexusEnabled\") == \"on\"\n\teventSettings.NetworkSecurityEnabled = r.PostFormValue(\"networkSecurityEnabled\") == \"on\"\n\teventSettings.ApAddress = r.PostFormValue(\"apAddress\")\n\teventSettings.ApPassword = r.PostFormValue(\"apPassword\")\n\teventSettings.ApChannel, _ = strconv.Atoi(r.PostFormValue(\"apChannel\"))\n\teventSettings.SwitchAddress = r.PostFormValue(\"switchAddress\")\n\teventSettings.SwitchPassword = r.PostFormValue(\"switchPassword\")\n\teventSettings.SCCManagementEnabled = r.PostFormValue(\"sccManagementEnabled\") == \"on\"\n\teventSettings.RedSCCAddress = r.PostFormValue(\"redSCCAddress\")\n\teventSettings.BlueSCCAddress = r.PostFormValue(\"blueSCCAddress\")\n\teventSettings.SCCUsername = r.PostFormValue(\"sccUsername\")\n\teventSettings.SCCPassword = r.PostFormValue(\"sccPassword\")\n\teventSettings.SCCUpCommands = r.PostFormValue(\"sccUpCommands\")\n\teventSettings.SCCDownCommands = r.PostFormValue(\"sccDownCommands\")\n\teventSettings.PlcAddress = r.PostFormValue(\"plcAddress\")\n\teventSettings.AdminPassword = r.PostFormValue(\"adminPassword\")\n\teventSettings.TeamSignRed1Id, _ = strconv.Atoi(r.PostFormValue(\"teamSignRed1Id\"))\n\teventSettings.TeamSignRed2Id, _ = strconv.Atoi(r.PostFormValue(\"teamSignRed2Id\"))\n\teventSettings.TeamSignRed3Id, _ = strconv.Atoi(r.PostFormValue(\"teamSignRed3Id\"))\n\teventSettings.TeamSignRedTimerId, _ = strconv.Atoi(r.PostFormValue(\"teamSignRedTimerId\"))\n\teventSettings.TeamSignBlue1Id, _ = strconv.Atoi(r.PostFormValue(\"teamSignBlue1Id\"))\n\teventSettings.TeamSignBlue2Id, _ = strconv.Atoi(r.PostFormValue(\"teamSignBlue2Id\"))\n\teventSettings.TeamSignBlue3Id, _ = strconv.Atoi(r.PostFormValue(\"teamSignBlue3Id\"))\n\teventSettings.TeamSignBlueTimerId, _ = strconv.Atoi(r.PostFormValue(\"teamSignBlueTimerId\"))\n\teventSettings.UseLiteUdpPort = r.PostFormValue(\"useLiteUdpPort\") == \"on\"\n\teventSettings.BlackmagicAddresses = r.PostFormValue(\"blackmagicAddresses\")\n\teventSettings.CompanionAddress = r.PostFormValue(\"companionAddress\")\n\teventSettings.CompanionPort, _ = strconv.Atoi(r.PostFormValue(\"companionPort\"))\n\teventSettings.CompanionMatchPreviewPage, _ = strconv.Atoi(r.PostFormValue(\"companionMatchPreviewPage\"))\n\teventSettings.CompanionMatchPreviewRow, _ = strconv.Atoi(r.PostFormValue(\"companionMatchPreviewRow\"))\n\teventSettings.CompanionMatchPreviewColumn, _ = strconv.Atoi(r.PostFormValue(\"companionMatchPreviewColumn\"))\n\teventSettings.CompanionSetAudiencePage, _ = strconv.Atoi(r.PostFormValue(\"companionSetAudiencePage\"))\n\teventSettings.CompanionSetAudienceRow, _ = strconv.Atoi(r.PostFormValue(\"companionSetAudienceRow\"))\n\teventSettings.CompanionSetAudienceColumn, _ = strconv.Atoi(r.PostFormValue(\"companionSetAudienceColumn\"))\n\teventSettings.CompanionMatchStartPage, _ = strconv.Atoi(r.PostFormValue(\"companionMatchStartPage\"))\n\teventSettings.CompanionMatchStartRow, _ = strconv.Atoi(r.PostFormValue(\"companionMatchStartRow\"))\n\teventSettings.CompanionMatchStartColumn, _ = strconv.Atoi(r.PostFormValue(\"companionMatchStartColumn\"))\n\teventSettings.CompanionTeleopStartPage, _ = strconv.Atoi(r.PostFormValue(\"companionTeleopStartPage\"))\n\teventSettings.CompanionTeleopStartRow, _ = strconv.Atoi(r.PostFormValue(\"companionTeleopStartRow\"))\n\teventSettings.CompanionTeleopStartColumn, _ = strconv.Atoi(r.PostFormValue(\"companionTeleopStartColumn\"))\n\teventSettings.CompanionEndgameStartPage, _ = strconv.Atoi(r.PostFormValue(\"companionEndgameStartPage\"))\n\teventSettings.CompanionEndgameStartRow, _ = strconv.Atoi(r.PostFormValue(\"companionEndgameStartRow\"))\n\teventSettings.CompanionEndgameStartColumn, _ = strconv.Atoi(r.PostFormValue(\"companionEndgameStartColumn\"))\n\teventSettings.CompanionMatchEndPage, _ = strconv.Atoi(r.PostFormValue(\"companionMatchEndPage\"))\n\teventSettings.CompanionMatchEndRow, _ = strconv.Atoi(r.PostFormValue(\"companionMatchEndRow\"))\n\teventSettings.CompanionMatchEndColumn, _ = strconv.Atoi(r.PostFormValue(\"companionMatchEndColumn\"))\n\teventSettings.CompanionPostResultPage, _ = strconv.Atoi(r.PostFormValue(\"companionPostResultPage\"))\n\teventSettings.CompanionPostResultRow, _ = strconv.Atoi(r.PostFormValue(\"companionPostResultRow\"))\n\teventSettings.CompanionPostResultColumn, _ = strconv.Atoi(r.PostFormValue(\"companionPostResultColumn\"))\n\teventSettings.CompanionAllianceSelectionPage, _ = strconv.Atoi(r.PostFormValue(\"companionAllianceSelectionPage\"))\n\teventSettings.CompanionAllianceSelectionRow, _ = strconv.Atoi(r.PostFormValue(\"companionAllianceSelectionRow\"))\n\teventSettings.CompanionAllianceSelectionColumn, _ = strconv.Atoi(r.PostFormValue(\"companionAllianceSelectionColumn\"))\n\teventSettings.CompanionMatchAbortPage, _ = strconv.Atoi(r.PostFormValue(\"companionMatchAbortPage\"))\n\teventSettings.CompanionMatchAbortRow, _ = strconv.Atoi(r.PostFormValue(\"companionMatchAbortRow\"))\n\teventSettings.CompanionMatchAbortColumn, _ = strconv.Atoi(r.PostFormValue(\"companionMatchAbortColumn\"))\n\teventSettings.WarmupDurationSec, _ = strconv.Atoi(r.PostFormValue(\"warmupDurationSec\"))\n\teventSettings.AutoDurationSec, _ = strconv.Atoi(r.PostFormValue(\"autoDurationSec\"))\n\teventSettings.PauseDurationSec, _ = strconv.Atoi(r.PostFormValue(\"pauseDurationSec\"))\n\teventSettings.TeleopDurationSec, _ = strconv.Atoi(r.PostFormValue(\"teleopDurationSec\"))\n\teventSettings.WarningRemainingDurationSec, _ = strconv.Atoi(r.PostFormValue(\"warningRemainingDurationSec\"))\n\teventSettings.AutoBonusCoralThreshold, _ = strconv.Atoi(r.PostFormValue(\"autoBonusCoralThreshold\"))\n\teventSettings.CoralBonusPerLevelThreshold, _ = strconv.Atoi(r.PostFormValue(\"coralBonusPerLevelThreshold\"))\n\teventSettings.CoralBonusCoopEnabled = r.PostFormValue(\"coralBonusCoopEnabled\") == \"on\"\n\teventSettings.BargeBonusPointThreshold, _ = strconv.Atoi(r.PostFormValue(\"bargeBonusPointThreshold\"))\n\teventSettings.IncludeAlgaeInBargeBonus = r.PostFormValue(\"includeAlgaeInBargeBonus\") == \"on\"\n\n\terr := web.arena.Database.UpdateEventSettings(eventSettings)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Refresh the arena in case any of the settings changed.\n\terr = web.arena.LoadSettings()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tif eventSettings.AdminPassword != previousAdminPassword {\n\t\t// Delete any existing user sessions to force a logout.\n\t\tif err := web.arena.Database.TruncateUserSessions(); err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t}\n\n\thttp.Redirect(w, r, \"/setup/settings\", 303)\n}\n\n// Sends a copy of the event database file to the client as a download.\nfunc (web *Web) saveDbHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tfilename := fmt.Sprintf(\n\t\t\"%s-%s.db\", strings.Replace(web.arena.EventSettings.Name, \" \", \"_\", -1), time.Now().Format(\"20060102150405\"),\n\t)\n\tw.Header().Set(\"Content-Disposition\", fmt.Sprintf(\"attachment; filename=\\\"%s\\\"\", filename))\n\n\tif err := web.arena.Database.WriteBackup(w); err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Accepts an event database file as an upload and loads it.\nfunc (web *Web) restoreDbHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tfile, _, err := r.FormFile(\"databaseFile\")\n\tif err != nil {\n\t\tweb.renderSettings(w, r, \"No database backup file was specified.\")\n\t\treturn\n\t}\n\n\t// Write the file to a temporary location on disk and verify that it can be opened as a database.\n\ttempFile, err := ioutil.TempFile(\".\", \"uploaded-db-\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer tempFile.Close()\n\ttempFilePath := tempFile.Name()\n\tdefer os.Remove(tempFilePath)\n\t_, err = io.Copy(tempFile, file)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\ttempFile.Close()\n\ttempDb, err := model.OpenDatabase(tempFilePath)\n\tif err != nil {\n\t\tweb.renderSettings(\n\t\t\tw, r, \"Could not read uploaded database backup file. Please verify that it a valid database file.\",\n\t\t)\n\t\treturn\n\t}\n\ttempDb.Close()\n\n\t// Back up the current database.\n\terr = web.arena.Database.Backup(web.arena.EventSettings.Name, \"pre_restore\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Replace the current database with the new one.\n\tweb.arena.Database.Close()\n\terr = os.Remove(web.arena.Database.Path)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\terr = os.Rename(tempFilePath, web.arena.Database.Path)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tweb.arena.Database, err = model.OpenDatabase(web.arena.Database.Path)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\terr = web.arena.LoadSettings()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\thttp.Redirect(w, r, \"/setup/settings\", 303)\n}\n\n// Deletes all match data including and beyond the given tournament stage.\nfunc (web *Web) clearDbHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tmatchType, err := model.MatchTypeFromString(r.PathValue(\"type\"))\n\tif err != nil || matchType == model.Test {\n\t\tweb.renderSettings(w, r, \"Invalid tournament stage to clear.\")\n\t\treturn\n\n\t}\n\n\t// Back up the database.\n\terr = web.arena.Database.Backup(web.arena.EventSettings.Name, \"pre_clear\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tswitch matchType {\n\tcase model.Practice:\n\t\tif err = web.deleteMatchDataForType(model.Practice); err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\tcase model.Qualification:\n\t\tif err = web.deleteMatchDataForType(model.Qualification); err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t\tif err = web.arena.Database.TruncateRankings(); err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\tcase model.Playoff:\n\t\tif err = web.deleteMatchDataForType(model.Playoff); err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t\tif err = web.arena.Database.TruncateAlliances(); err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t\tweb.arena.AllianceSelectionAlliances = []model.Alliance{}\n\t\tweb.arena.AllianceSelectionRankedTeams = []model.AllianceSelectionRankedTeam{}\n\t}\n\n\thttp.Redirect(w, r, \"/setup/settings\", 303)\n}\n\n// Publishes the playoff alliances to the web.\nfunc (web *Web) settingsPublishAlliancesHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tif web.arena.EventSettings.TbaPublishingEnabled {\n\t\terr := web.arena.TbaClient.PublishAlliances(web.arena.Database)\n\t\tif err != nil {\n\t\t\thttp.Error(w, \"Failed to publish alliances: \"+err.Error(), 500)\n\t\t\treturn\n\t\t}\n\t} else {\n\t\thttp.Error(w, \"TBA publishing is not enabled\", 500)\n\t\treturn\n\t}\n\n\thttp.Redirect(w, r, \"/setup/settings\", 303)\n}\n\n// Publishes the awards to the web.\nfunc (web *Web) settingsPublishAwardsHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tif web.arena.EventSettings.TbaPublishingEnabled {\n\t\terr := web.arena.TbaClient.PublishAwards(web.arena.Database)\n\t\tif err != nil {\n\t\t\thttp.Error(w, \"Failed to publish awards: \"+err.Error(), 500)\n\t\t\treturn\n\t\t}\n\t} else {\n\t\thttp.Error(w, \"TBA publishing is not enabled\", 500)\n\t\treturn\n\t}\n\n\thttp.Redirect(w, r, \"/setup/settings\", 303)\n}\n\n// Publishes the match schedule and results to the web.\nfunc (web *Web) settingsPublishMatchesHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tif web.arena.EventSettings.TbaPublishingEnabled {\n\t\terr := web.arena.TbaClient.DeletePublishedMatches()\n\t\tif err != nil {\n\t\t\thttp.Error(w, \"Failed to delete published matches: \"+err.Error(), 500)\n\t\t\treturn\n\t\t}\n\t\terr = web.arena.TbaClient.PublishMatches(web.arena.Database)\n\t\tif err != nil {\n\t\t\thttp.Error(w, \"Failed to publish matches: \"+err.Error(), 500)\n\t\t\treturn\n\t\t}\n\t} else {\n\t\thttp.Error(w, \"TBA publishing is not enabled\", 500)\n\t\treturn\n\t}\n\n\thttp.Redirect(w, r, \"/setup/settings\", 303)\n}\n\n// Publishes the standings to the web.\nfunc (web *Web) settingsPublishRankingsHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tif web.arena.EventSettings.TbaPublishingEnabled {\n\t\terr := web.arena.TbaClient.PublishRankings(web.arena.Database)\n\t\tif err != nil {\n\t\t\thttp.Error(w, \"Failed to publish rankings: \"+err.Error(), 500)\n\t\t\treturn\n\t\t}\n\t} else {\n\t\thttp.Error(w, \"TBA publishing is not enabled\", 500)\n\t\treturn\n\t}\n\n\thttp.Redirect(w, r, \"/setup/settings\", 303)\n}\n\n// Publishes the team list to the web.\nfunc (web *Web) settingsPublishTeamsHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tif web.arena.EventSettings.TbaPublishingEnabled {\n\t\terr := web.arena.TbaClient.PublishTeams(web.arena.Database)\n\t\tif err != nil {\n\t\t\thttp.Error(w, \"Failed to publish teams: \"+err.Error(), 500)\n\t\t\treturn\n\t\t}\n\t} else {\n\t\thttp.Error(w, \"TBA publishing is not enabled\", 500)\n\t\treturn\n\t}\n\n\thttp.Redirect(w, r, \"/setup/settings\", 303)\n}\n\nfunc (web *Web) renderSettings(w http.ResponseWriter, r *http.Request, errorMessage string) {\n\ttemplate, err := web.parseFiles(\"templates/setup_settings.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tErrorMessage string\n\t}{web.arena.EventSettings, errorMessage}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Deletes all match data (matches, results, and scheduled breaks) for the given match type.\nfunc (web *Web) deleteMatchDataForType(matchType model.MatchType) error {\n\tmatches, err := web.arena.Database.GetMatchesByType(matchType, true)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfor _, match := range matches {\n\t\t// Loop to delete all match results for the match before deleting the match itself.\n\t\tmatchResult, err := web.arena.Database.GetMatchResultForMatch(match.Id)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor matchResult != nil {\n\t\t\tif err = web.arena.Database.DeleteMatchResult(matchResult.Id); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tmatchResult, err = web.arena.Database.GetMatchResultForMatch(match.Id)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tif err = web.arena.Database.DeleteMatch(match.Id); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err = web.arena.Database.DeleteScheduledBreaksByMatchType(matchType); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "web/setup_settings_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"bytes\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/tournament\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"io\"\n\t\"mime/multipart\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"testing\"\n)\n\nfunc TestSetupSettings(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\t// Check the default setting values.\n\trecorder := web.getHttpResponse(\"/setup/settings\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Untitled Event\")\n\tassert.Contains(t, recorder.Body.String(), \"8\")\n\tassert.NotContains(t, recorder.Body.String(), \"tbaPublishingEnabled\\\"  checked\")\n\n\t// Change the settings and check the response.\n\trecorder = web.postHttpResponse(\n\t\t\"/setup/settings\",\n\t\t\"name=Chezy Champs&code=CC&playoffType=single&numPlayoffAlliances=16&tbaPublishingEnabled=on&\"+\n\t\t\t\"tbaEventCode=2014cc&tbaSecretId=secretId&tbaSecret=tbasec\",\n\t)\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/setup/settings\")\n\tassert.Contains(t, recorder.Body.String(), \"Chezy Champs\")\n\tassert.Contains(t, recorder.Body.String(), \"16\")\n\tassert.Contains(t, recorder.Body.String(), \"tbaPublishingEnabled\\\"  checked\")\n\tassert.Contains(t, recorder.Body.String(), \"2014cc\")\n\tassert.Contains(t, recorder.Body.String(), \"secretId\")\n\tassert.Contains(t, recorder.Body.String(), \"tbasec\")\n}\n\nfunc TestSetupSettingsDoubleElimination(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.postHttpResponse(\"/setup/settings\", \"playoffType=DoubleEliminationPlayoff&numPlayoffAlliances=3\")\n\tassert.Equal(t, 303, recorder.Code)\n\tassert.Equal(t, model.DoubleEliminationPlayoff, web.arena.EventSettings.PlayoffType)\n\tassert.Equal(t, 8, web.arena.EventSettings.NumPlayoffAlliances)\n}\n\nfunc TestSetupSettingsInvalidValues(t *testing.T) {\n\tweb := setupTestWeb(t)\n\trecorder := web.postHttpResponse(\"/setup/settings\", \"playoffType=SingleEliminationPlayoff&numPlayoffAlliances=8\")\n\tassert.Equal(t, 303, recorder.Code)\n\n\t// Invalid number of alliances.\n\trecorder = web.postHttpResponse(\"/setup/settings\", \"playoffType=SingleEliminationPlayoff&numAlliances=1\")\n\tassert.Contains(t, recorder.Body.String(), \"must be between 2 and 16\")\n\n\t// Changing the playoff type after alliance selection is finalized.\n\tassert.Nil(t, web.arena.Database.CreateAlliance(&model.Alliance{Id: 1}))\n\trecorder = web.postHttpResponse(\"/setup/settings\", \"playoffType=DoubleEliminationPlayoff\")\n\tassert.Contains(t, recorder.Body.String(), \"Cannot change playoff type or size after alliance selection\")\n\n\t// Changing the playoff size after alliance selection is finalized.\n\trecorder = web.postHttpResponse(\"/setup/settings\", \"numPlayoffAlliances=2\")\n\tassert.Contains(t, recorder.Body.String(), \"Cannot change playoff type or size after alliance selection\")\n}\n\nfunc TestSetupSettingsClearDb(t *testing.T) {\n\tcreateData := func(web *Web) {\n\t\tassert.Nil(t, web.arena.Database.CreateTeam(&model.Team{Id: 254}))\n\t\tassert.Nil(t, web.arena.Database.CreateMatch(&model.Match{Type: model.Practice}))\n\t\tassert.Nil(t, web.arena.Database.CreateMatch(&model.Match{Type: model.Qualification}))\n\t\tassert.Nil(t, web.arena.Database.CreateMatch(&model.Match{Type: model.Playoff}))\n\t\tassert.Nil(t, web.arena.Database.CreateMatchResult(&model.MatchResult{MatchId: 1, PlayNumber: 1}))\n\t\tassert.Nil(t, web.arena.Database.CreateMatchResult(&model.MatchResult{MatchId: 1, PlayNumber: 2}))\n\t\tassert.Nil(t, web.arena.Database.CreateMatchResult(&model.MatchResult{MatchId: 2, PlayNumber: 1}))\n\t\tassert.Nil(t, web.arena.Database.CreateMatchResult(&model.MatchResult{MatchId: 3, PlayNumber: 1}))\n\t\tassert.Nil(t, web.arena.Database.CreateRanking(&game.Ranking{TeamId: 254}))\n\t\tassert.Nil(t, web.arena.Database.CreateAlliance(&model.Alliance{Id: 1}))\n\t\tweb.arena.AllianceSelectionAlliances = append(web.arena.AllianceSelectionAlliances, model.Alliance{Id: 1})\n\t}\n\n\t// Test clearing practice data.\n\tweb := setupTestWeb(t)\n\tcreateData(web)\n\trecorder := web.postHttpResponse(\"/setup/db/clear/practice\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\tteams, _ := web.arena.Database.GetAllTeams()\n\tassert.NotEmpty(t, teams)\n\tmatches, _ := web.arena.Database.GetMatchesByType(model.Practice, true)\n\tassert.Empty(t, matches)\n\tmatchResult, _ := web.arena.Database.GetMatchResultForMatch(1)\n\tassert.Nil(t, matchResult)\n\tmatches, _ = web.arena.Database.GetMatchesByType(model.Qualification, true)\n\tassert.NotEmpty(t, matches)\n\tmatchResult, _ = web.arena.Database.GetMatchResultForMatch(2)\n\tassert.NotNil(t, matchResult)\n\tmatches, _ = web.arena.Database.GetMatchesByType(model.Playoff, true)\n\tassert.NotEmpty(t, matches)\n\tmatchResult, _ = web.arena.Database.GetMatchResultForMatch(3)\n\tassert.NotNil(t, matchResult)\n\trankings, _ := web.arena.Database.GetAllRankings()\n\tassert.NotEmpty(t, rankings)\n\ttournament.CalculateRankings(web.arena.Database, false)\n\tassert.NotEmpty(t, rankings)\n\talliances, _ := web.arena.Database.GetAllAlliances()\n\tassert.NotEmpty(t, alliances)\n\tassert.NotEmpty(t, web.arena.AllianceSelectionAlliances)\n\n\t// Test clearing qualification data.\n\tweb = setupTestWeb(t)\n\tcreateData(web)\n\trecorder = web.postHttpResponse(\"/setup/db/clear/qualification\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\tteams, _ = web.arena.Database.GetAllTeams()\n\tassert.NotEmpty(t, teams)\n\tmatches, _ = web.arena.Database.GetMatchesByType(model.Practice, true)\n\tassert.NotEmpty(t, matches)\n\tmatchResult, _ = web.arena.Database.GetMatchResultForMatch(1)\n\tassert.NotNil(t, matchResult)\n\tmatches, _ = web.arena.Database.GetMatchesByType(model.Qualification, true)\n\tassert.Empty(t, matches)\n\tmatchResult, _ = web.arena.Database.GetMatchResultForMatch(2)\n\tassert.Nil(t, matchResult)\n\tmatches, _ = web.arena.Database.GetMatchesByType(model.Playoff, true)\n\tassert.NotEmpty(t, matches)\n\tmatchResult, _ = web.arena.Database.GetMatchResultForMatch(3)\n\tassert.NotNil(t, matchResult)\n\trankings, _ = web.arena.Database.GetAllRankings()\n\tassert.Empty(t, rankings)\n\ttournament.CalculateRankings(web.arena.Database, false)\n\tassert.Empty(t, rankings)\n\talliances, _ = web.arena.Database.GetAllAlliances()\n\tassert.NotEmpty(t, alliances)\n\tassert.NotEmpty(t, web.arena.AllianceSelectionAlliances)\n\n\t// Test clearing playoff data.\n\tweb = setupTestWeb(t)\n\tcreateData(web)\n\trecorder = web.postHttpResponse(\"/setup/db/clear/playoff\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\tteams, _ = web.arena.Database.GetAllTeams()\n\tassert.NotEmpty(t, teams)\n\tmatches, _ = web.arena.Database.GetMatchesByType(model.Practice, true)\n\tassert.NotEmpty(t, matches)\n\tmatchResult, _ = web.arena.Database.GetMatchResultForMatch(1)\n\tassert.NotNil(t, matchResult)\n\tmatches, _ = web.arena.Database.GetMatchesByType(model.Qualification, true)\n\tassert.NotEmpty(t, matches)\n\tmatchResult, _ = web.arena.Database.GetMatchResultForMatch(2)\n\tassert.NotNil(t, matchResult)\n\tmatches, _ = web.arena.Database.GetMatchesByType(model.Playoff, true)\n\tassert.Empty(t, matches)\n\tmatchResult, _ = web.arena.Database.GetMatchResultForMatch(3)\n\tassert.Nil(t, matchResult)\n\trankings, _ = web.arena.Database.GetAllRankings()\n\tassert.NotEmpty(t, rankings)\n\ttournament.CalculateRankings(web.arena.Database, false)\n\tassert.NotEmpty(t, rankings)\n\talliances, _ = web.arena.Database.GetAllAlliances()\n\tassert.Empty(t, alliances)\n\tassert.Empty(t, web.arena.AllianceSelectionAlliances)\n\n\t// Test with invalid match types.\n\trecorder = web.postHttpResponse(\"/setup/db/clear/all\", \"\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Invalid tournament stage to clear\")\n\trecorder = web.postHttpResponse(\"/setup/db/clear/test\", \"\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Invalid tournament stage to clear\")\n}\n\nfunc TestSetupSettingsBackupRestoreDb(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\t// Modify a parameter so that we know when the database has been restored.\n\tweb.arena.EventSettings.Name = \"Chezy Champs\"\n\tassert.Nil(t, web.arena.Database.UpdateEventSettings(web.arena.EventSettings))\n\n\t// Back up the database.\n\trecorder := web.getHttpResponse(\"/setup/db/save\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"application/octet-stream\", recorder.HeaderMap[\"Content-Type\"][0])\n\tbackupBody := recorder.Body\n\n\t// Wipe the database to reset the defaults.\n\tweb = setupTestWeb(t)\n\tassert.NotEqual(t, \"Chezy Champs\", web.arena.EventSettings.Name)\n\n\t// Check restoring with a missing file.\n\trecorder = web.postHttpResponse(\"/setup/db/restore\", \"\")\n\tassert.Contains(t, recorder.Body.String(), \"No database backup file was specified\")\n\tassert.NotEqual(t, \"Chezy Champs\", web.arena.EventSettings.Name)\n\n\t// Check restoring with a corrupt file.\n\trecorder = web.postFileHttpResponse(\"/setup/db/restore\", \"databaseFile\", bytes.NewBufferString(\"invalid\"))\n\tassert.Contains(t, recorder.Body.String(), \"Could not read uploaded database backup file\")\n\tassert.NotEqual(t, \"Chezy Champs\", web.arena.EventSettings.Name)\n\n\t// Check restoring with the backup retrieved before.\n\trecorder = web.postFileHttpResponse(\"/setup/db/restore\", \"databaseFile\", backupBody)\n\tassert.Equal(t, \"Chezy Champs\", web.arena.EventSettings.Name)\n}\n\nfunc TestSetupSettingsPublishToTba(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tweb.arena.TbaClient.BaseUrl = \"fakeurl\"\n\tweb.arena.EventSettings.TbaPublishingEnabled = true\n\n\trecorder := web.getHttpResponse(\"/setup/settings/publish_alliances\")\n\tassert.Equal(t, 500, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Failed to publish alliances\")\n\n\trecorder = web.getHttpResponse(\"/setup/settings/publish_awards\")\n\tassert.Equal(t, 500, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Failed to publish awards\")\n\n\trecorder = web.getHttpResponse(\"/setup/settings/publish_matches\")\n\tassert.Equal(t, 500, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Failed to delete published matches\")\n\n\trecorder = web.getHttpResponse(\"/setup/settings/publish_rankings\")\n\tassert.Equal(t, 500, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Failed to publish rankings\")\n\n\trecorder = web.getHttpResponse(\"/setup/settings/publish_teams\")\n\tassert.Equal(t, 500, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Failed to publish teams\")\n}\n\nfunc (web *Web) postFileHttpResponse(path string, paramName string, file *bytes.Buffer) *httptest.ResponseRecorder {\n\tbody := new(bytes.Buffer)\n\twriter := multipart.NewWriter(body)\n\tpart, _ := writer.CreateFormFile(paramName, \"file.ext\")\n\tio.Copy(part, file)\n\twriter.Close()\n\trecorder := httptest.NewRecorder()\n\treq, _ := http.NewRequest(\"POST\", path, body)\n\treq.Header.Set(\"Content-Type\", writer.FormDataContentType())\n\tweb.newHandler().ServeHTTP(recorder, req)\n\treturn recorder\n}\n"
  },
  {
    "path": "web/setup_sponsor_slides.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: nick@team254.com (Nick Eyre)\n//\n// Web routes for managing sponsor slides.\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"net/http\"\n\t\"strconv\"\n)\n\n// Shows the sponsor slides configuration page.\nfunc (web *Web) sponsorSlidesGetHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/setup_sponsor_slides.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tsponsorSlides, err := web.arena.Database.GetAllSponsorSlides()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\t// Append a blank slide to the end that can be used to add a new one.\n\tsponsorSlides = append(sponsorSlides, model.SponsorSlide{DisplayTimeSec: 10})\n\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tSponsorSlides []model.SponsorSlide\n\t}{web.arena.EventSettings, sponsorSlides}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Saves the new or modified sponsor slides to the database.\nfunc (web *Web) sponsorSlidesPostHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tsponsorSlideId, _ := strconv.Atoi(r.PostFormValue(\"id\"))\n\tsponsorSlide, err := web.arena.Database.GetSponsorSlideById(sponsorSlideId)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tswitch r.PostFormValue(\"action\") {\n\tcase \"delete\":\n\t\terr := web.arena.Database.DeleteSponsorSlide(sponsorSlide.Id)\n\t\tif err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\tcase \"save\":\n\t\tdisplayTimeSec, _ := strconv.Atoi(r.PostFormValue(\"displayTimeSec\"))\n\t\tif sponsorSlide == nil {\n\t\t\tsponsorSlide = &model.SponsorSlide{\n\t\t\t\tSubtitle:       r.PostFormValue(\"subtitle\"),\n\t\t\t\tLine1:          r.PostFormValue(\"line1\"),\n\t\t\t\tLine2:          r.PostFormValue(\"line2\"),\n\t\t\t\tImage:          r.PostFormValue(\"image\"),\n\t\t\t\tDisplayTimeSec: displayTimeSec,\n\t\t\t\tDisplayOrder:   web.arena.Database.GetNextSponsorSlideDisplayOrder(),\n\t\t\t}\n\t\t\terr = web.arena.Database.CreateSponsorSlide(sponsorSlide)\n\t\t} else {\n\t\t\tsponsorSlide.Subtitle = r.PostFormValue(\"subtitle\")\n\t\t\tsponsorSlide.Line1 = r.PostFormValue(\"line1\")\n\t\t\tsponsorSlide.Line2 = r.PostFormValue(\"line2\")\n\t\t\tsponsorSlide.Image = r.PostFormValue(\"image\")\n\t\t\tsponsorSlide.DisplayTimeSec = displayTimeSec\n\t\t\terr = web.arena.Database.UpdateSponsorSlide(sponsorSlide)\n\t\t}\n\t\tif err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\tcase \"reorderUp\":\n\t\tif err = web.reorderSponsorSlide(sponsorSlideId, true); err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\tcase \"reorderDown\":\n\t\tif err = web.reorderSponsorSlide(sponsorSlideId, false); err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t}\n\n\thttp.Redirect(w, r, \"/setup/sponsor_slides\", 303)\n}\n\n// Swaps the sponsor slide having the given ID with the one immediately above or below it.\nfunc (web *Web) reorderSponsorSlide(id int, moveUp bool) error {\n\tsponsorSlide, err := web.arena.Database.GetSponsorSlideById(id)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Get the sponsor slide to swap positions with.\n\tsponsorSlides, err := web.arena.Database.GetAllSponsorSlides()\n\tif err != nil {\n\t\treturn err\n\t}\n\tvar sponsorSlideIndex int\n\tfor i, slide := range sponsorSlides {\n\t\tif slide.Id == sponsorSlide.Id {\n\t\t\tsponsorSlideIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif moveUp {\n\t\tsponsorSlideIndex--\n\t} else {\n\t\tsponsorSlideIndex++\n\t}\n\tif sponsorSlideIndex < 0 || sponsorSlideIndex == len(sponsorSlides) {\n\t\t// The one to move is already at the limit; do nothing.\n\t\treturn nil\n\t}\n\tadjacentSponsorSlide := &sponsorSlides[sponsorSlideIndex]\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Swap their display orders and save.\n\tsponsorSlide.DisplayOrder, adjacentSponsorSlide.DisplayOrder =\n\t\tadjacentSponsorSlide.DisplayOrder, sponsorSlide.DisplayOrder\n\terr = web.arena.Database.UpdateSponsorSlide(sponsorSlide)\n\tif err != nil {\n\t\treturn err\n\t}\n\terr = web.arena.Database.UpdateSponsorSlide(adjacentSponsorSlide)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "web/setup_sponsor_slides_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestSetupSponsorSlides(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tweb.arena.Database.CreateSponsorSlide(\n\t\t&model.SponsorSlide{0, \"Subtitle\", \"Sponsor Line 1\", \"Sponsor Line 2\", \"\", 10, 0},\n\t)\n\tweb.arena.Database.CreateSponsorSlide(&model.SponsorSlide{0, \"Subtitle\", \"\", \"\", \"Image.gif\", 10, 1})\n\n\trecorder := web.getHttpResponse(\"/setup/sponsor_slides\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Sponsor Line 1\")\n\tassert.Contains(t, recorder.Body.String(), \"Image.gif\")\n\n\trecorder = web.postHttpResponse(\"/setup/sponsor_slides\", \"action=delete&id=1\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/setup/sponsor_slides\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.NotContains(t, recorder.Body.String(), \"Sponsor Line 1\")\n\tassert.Contains(t, recorder.Body.String(), \"Image.gif\")\n\n\trecorder = web.postHttpResponse(\"/setup/sponsor_slides\", \"action=save&line2=Sponsor Line 2 revised\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/setup/sponsor_slides\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Sponsor Line 2 revised\")\n\tsponsorSlide, _ := web.arena.Database.GetSponsorSlideById(3)\n\tassert.NotNil(t, sponsorSlide)\n\n\trecorder = web.postHttpResponse(\"/setup/sponsor_slides\", \"action=save&image=Image2.gif&id=2\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/setup/sponsor_slides\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.NotContains(t, recorder.Body.String(), \"Image.gif\")\n\tassert.Contains(t, recorder.Body.String(), \"Image2.gif\")\n\tsponsorSlide, _ = web.arena.Database.GetSponsorSlideById(3)\n\tassert.NotNil(t, sponsorSlide)\n\n\tsponsorSlides1, _ := web.arena.Database.GetAllSponsorSlides()\n\trecorder = web.postHttpResponse(\"/setup/sponsor_slides\", \"action=reorderUp&id=3\")\n\tassert.Equal(t, 303, recorder.Code)\n\tsponsorSlides2, _ := web.arena.Database.GetAllSponsorSlides()\n\tif assert.Equal(t, 2, len(sponsorSlides1)) && assert.Equal(t, 2, len(sponsorSlides2)) {\n\t\tassert.Equal(t, sponsorSlides1[0].Id, sponsorSlides2[1].Id)\n\t\tassert.Equal(t, sponsorSlides1[1].Id, sponsorSlides2[0].Id)\n\t}\n\trecorder = web.postHttpResponse(\"/setup/sponsor_slides\", \"action=reorderDown&id=3\")\n\tassert.Equal(t, 303, recorder.Code)\n\tsponsorSlides3, _ := web.arena.Database.GetAllSponsorSlides()\n\tif assert.Equal(t, 2, len(sponsorSlides1)) && assert.Equal(t, 2, len(sponsorSlides2)) {\n\t\tassert.Equal(t, sponsorSlides1[0].Id, sponsorSlides3[0].Id)\n\t\tassert.Equal(t, sponsorSlides1[1].Id, sponsorSlides3[1].Id)\n\t}\n}\n"
  },
  {
    "path": "web/setup_teams.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for configuring the team list.\n\npackage web\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/dchest/uniuri\"\n\t\"net/http\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\nconst wpaKeyLength = 8\n\n// Global var to hold the team download progress percentage.\nvar progressPercentage float64 = 5\n\n// Shows the team list.\nfunc (web *Web) teamsGetHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tweb.renderTeams(w, r, false)\n}\n\n// Adds teams to the team list.\nfunc (web *Web) teamsPostHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tif !web.canModifyTeamList() {\n\t\tweb.renderTeams(w, r, true)\n\t\treturn\n\t}\n\n\tvar teamNumbers []int\n\tfor _, teamNumberString := range strings.Split(r.PostFormValue(\"teamNumbers\"), \"\\r\\n\") {\n\t\tteamNumber, err := strconv.Atoi(teamNumberString)\n\t\tif err == nil {\n\t\t\tteamNumbers = append(teamNumbers, teamNumber)\n\t\t}\n\t}\n\n\tprogressPercentage = 5\n\tprogressIncrement := 95.0 / float64(len(teamNumbers))\n\tfor _, teamNumber := range teamNumbers {\n\t\tteam := model.Team{Id: teamNumber}\n\t\tif web.arena.EventSettings.TbaDownloadEnabled {\n\t\t\tif err := web.populateOfficialTeamInfo(&team); err != nil {\n\t\t\t\thandleWebErr(w, err)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tif err := web.arena.Database.CreateTeam(&team); err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\n\t\tprogressPercentage += progressIncrement\n\t}\n\tprogressPercentage = 100\n\n\thttp.Redirect(w, r, \"/setup/teams\", 303)\n}\n\n// Re-downloads the data for all teams from TBA and overwrites any local edits.\nfunc (web *Web) teamsRefreshHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tteams, err := web.arena.Database.GetAllTeams()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tprogInc := 95.00 / float64(len(teams))\n\n\tfor _, team := range teams {\n\t\tif err = web.populateOfficialTeamInfo(&team); err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\t\tif err = web.arena.Database.UpdateTeam(&team); err != nil {\n\t\t\thandleWebErr(w, err)\n\t\t\treturn\n\t\t}\n\n\t\tprogressPercentage += progInc\n\t}\n\n\tprogressPercentage = 100\n\thttp.Redirect(w, r, \"/setup/teams\", 303)\n\tprogressPercentage = 5\n}\n\n// Clears the team list.\nfunc (web *Web) teamsClearHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tif !web.canModifyTeamList() {\n\t\tweb.renderTeams(w, r, true)\n\t\treturn\n\t}\n\n\terr := web.arena.Database.TruncateTeams()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\thttp.Redirect(w, r, \"/setup/teams\", 303)\n}\n\n// Shows the page to edit a team's fields.\nfunc (web *Web) teamEditGetHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tteamId, _ := strconv.Atoi(r.PathValue(\"id\"))\n\tteam, err := web.arena.Database.GetTeamById(teamId)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tif team == nil {\n\t\thttp.Error(w, fmt.Sprintf(\"Error: No such team: %d\", teamId), 400)\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/edit_team.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t\t*model.Team\n\t}{web.arena.EventSettings, team}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Updates a team's fields.\nfunc (web *Web) teamEditPostHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tteamId, _ := strconv.Atoi(r.PathValue(\"id\"))\n\tteam, err := web.arena.Database.GetTeamById(teamId)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tif team == nil {\n\t\thttp.Error(w, fmt.Sprintf(\"Error: No such team: %d\", teamId), 400)\n\t\treturn\n\t}\n\n\tteam.Name = r.PostFormValue(\"name\")\n\tteam.Nickname = r.PostFormValue(\"nickname\")\n\tteam.City = r.PostFormValue(\"city\")\n\tteam.SchoolName = r.PostFormValue(\"schoolName\")\n\tteam.StateProv = r.PostFormValue(\"stateProv\")\n\tteam.Country = r.PostFormValue(\"country\")\n\tteam.RookieYear, _ = strconv.Atoi(r.PostFormValue(\"rookieYear\"))\n\tteam.RobotName = r.PostFormValue(\"robotName\")\n\tteam.Accomplishments = r.PostFormValue(\"accomplishments\")\n\tif web.arena.EventSettings.NetworkSecurityEnabled {\n\t\tteam.WpaKey = r.PostFormValue(\"wpaKey\")\n\t\tif len(team.WpaKey) < 8 || len(team.WpaKey) > 63 {\n\t\t\thandleWebErr(w, fmt.Errorf(\"WPA key must be between 8 and 63 characters.\"))\n\t\t\treturn\n\t\t}\n\t}\n\tteam.HasConnected = r.PostFormValue(\"hasConnected\") == \"on\"\n\terr = web.arena.Database.UpdateTeam(team)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\thttp.Redirect(w, r, \"/setup/teams\", 303)\n}\n\n// Removes a team from the team list.\nfunc (web *Web) teamDeletePostHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tif !web.canModifyTeamList() {\n\t\tweb.renderTeams(w, r, true)\n\t\treturn\n\t}\n\n\tteamId, _ := strconv.Atoi(r.PathValue(\"id\"))\n\tteam, err := web.arena.Database.GetTeamById(teamId)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tif team == nil {\n\t\thttp.Error(w, fmt.Sprintf(\"Error: No such team: %d\", teamId), 400)\n\t\treturn\n\t}\n\terr = web.arena.Database.DeleteTeam(team.Id)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\thttp.Redirect(w, r, \"/setup/teams\", 303)\n}\n\n// Generates random WPA keys and saves them to the team models.\nfunc (web *Web) teamsGenerateWpaKeysHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.userIsAdmin(w, r) {\n\t\treturn\n\t}\n\n\tgenerateAllKeys := false\n\tif all, ok := r.URL.Query()[\"all\"]; ok {\n\t\tgenerateAllKeys = all[0] == \"true\"\n\t}\n\n\tteams, err := web.arena.Database.GetAllTeams()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tfor _, team := range teams {\n\t\tif len(team.WpaKey) == 0 || generateAllKeys {\n\t\t\tteam.WpaKey = uniuri.NewLen(wpaKeyLength)\n\t\t\tweb.arena.Database.UpdateTeam(&team)\n\t\t}\n\t}\n\n\thttp.Redirect(w, r, \"/setup/teams\", 303)\n}\n\n// Returns the current TBA team data download progress.\nfunc (web *Web) teamsUpdateProgressBarHandler(w http.ResponseWriter, r *http.Request) {\n\tw.Header().Set(\"Content-Type\", \"text/plain\")\n\t_, _ = w.Write([]byte(fmt.Sprintf(\"%.0f\", progressPercentage)))\n}\n\nfunc (web *Web) renderTeams(w http.ResponseWriter, r *http.Request, showErrorMessage bool) {\n\tteams, err := web.arena.Database.GetAllTeams()\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/setup_teams.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tTeams            []model.Team\n\t\tShowErrorMessage bool\n\t}{web.arena.EventSettings, teams, showErrorMessage}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Returns true if it is safe to change the team list (i.e. no matches/results exist yet).\nfunc (web *Web) canModifyTeamList() bool {\n\tmatches, err := web.arena.Database.GetMatchesByType(model.Qualification, true)\n\tif err != nil || len(matches) > 0 {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Returns the data for the given team number.\nfunc (web *Web) populateOfficialTeamInfo(team *model.Team) error {\n\ttbaTeam, err := web.arena.TbaClient.GetTeam(team.Id)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Check if the result is valid. If a team is not found, it will just not have its detail fields filled out.\n\tif tbaTeam.TeamNumber == 0 {\n\t\treturn nil\n\t}\n\n\tteam.Name = tbaTeam.Name\n\tteam.Nickname = tbaTeam.Nickname\n\tteam.City = tbaTeam.City\n\tteam.StateProv = tbaTeam.StateProv\n\tteam.Country = tbaTeam.Country\n\tschoolNameRe := regexp.MustCompile(\"^.*\\\\S&(\\\\S.*?$)\")\n\tmatches := schoolNameRe.FindStringSubmatch(tbaTeam.Name)\n\tif len(matches) > 0 {\n\t\tteam.SchoolName = matches[1]\n\t}\n\tteam.RookieYear = tbaTeam.RookieYear\n\tteam.RobotName, err = web.arena.TbaClient.GetRobotName(team.Id, time.Now().Year())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Generate string of recent awards in reverse chronological order.\n\trecentAwards, err := web.arena.TbaClient.GetTeamAwards(team.Id)\n\tif err != nil {\n\t\treturn err\n\t}\n\tvar accomplishmentsBuffer bytes.Buffer\n\tfor i := len(recentAwards) - 1; i >= 0; i-- {\n\t\taward := recentAwards[i]\n\t\tif time.Now().Year()-award.Year <= 1 {\n\t\t\taccomplishmentsBuffer.WriteString(\n\t\t\t\tfmt.Sprintf(\"<p>%d %s - %s</p>\", award.Year, award.EventName, award.Name),\n\t\t\t)\n\t\t}\n\t}\n\tteam.Accomplishments = accomplishmentsBuffer.String()\n\n\t// Download and store the team's avatar; if there isn't one, ignore the error.\n\tif err = web.arena.TbaClient.DownloadTeamAvatar(team.Id, time.Now().Year()); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "web/setup_teams_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestSetupTeams(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\t// Check that there are no teams to start.\n\trecorder := web.getHttpResponse(\"/setup/teams\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"0 teams\")\n\n\t// Mock the URL to download team info from.\n\tteamInfoBody := `{\n\t\t\"website\": \"http://www.team254.com\",\n\t\t\"name\": \"NASA Ames Research Center/PG&E&Bellarmine College Preparatory\",\n\t\t\"city\": \"San Jose\",\n\t\t\"rookie_year\": 1999,\n\t\t\"state_prov\": \"CA\",\n\t\t\"team_number\": 254,\n\t\t\"location\": \"San Jose, CA, USA\",\n\t\t\"key\": \"frc254\",\n\t\t\"country\": \"USA\",\n\t\t\"nickname\": \"The Cheesy Poofs\"\n\t}`\n\tteamRobotsBody := `[\n\t\t{\n\t\t\t\"team_key\": \"frc33\",\n\t\t\t\"name\": \"Buzz 22\",\n\t\t\t\"key\": \"frc33_2017\",\n\t\t\t\"year\": 2017\n\t\t}\n\t]`\n\tteamAwardsBody := `[{\n\t\t\"event_key\": \"2014cmp\",\n\t\t\"award_type\": 1,\n\t\t\"name\": \"Championship Winners\",\n\t\t\"recipient_list\": [\n\t\t{\n\t\t\t\"team_number\": 254,\n\t\t\t\"awardee\": null\n\t\t},\n\t\t{\n\t\t\t\"team_number\": 2848,\n\t\t\t\"awardee\": null\n\t\t},\n\t\t{\n\t\t\t\"team_number\": 469,\n\t\t\t\"awardee\": null\n\t\t},\n\t\t{\n\t\t\t\"team_number\": 74,\n\t\t\t\"awardee\": null\n\t\t}\n\t\t],\n\t\t\"year\": 2014\n\t}]`\n\tteamMediaBody := `[{\n\t\t\"type\": \"not_an_avatar\",\n\t\t\"details\": {}\n\t}]`\n\teventBody := `{ \"name\": \"Championship\" }`\n\ttbaServer := httptest.NewServer(\n\t\thttp.HandlerFunc(\n\t\t\tfunc(w http.ResponseWriter, r *http.Request) {\n\t\t\t\tif strings.Contains(r.RequestURI, \"robots\") {\n\t\t\t\t\tfmt.Fprintln(w, teamRobotsBody)\n\t\t\t\t} else if strings.Contains(r.RequestURI, \"awards\") {\n\t\t\t\t\tfmt.Fprintln(w, teamAwardsBody)\n\t\t\t\t} else if strings.Contains(r.RequestURI, \"media\") {\n\t\t\t\t\tfmt.Fprintln(w, teamMediaBody)\n\t\t\t\t} else if strings.Contains(r.RequestURI, \"team\") {\n\t\t\t\t\tfmt.Fprintln(w, teamInfoBody)\n\t\t\t\t} else if strings.Contains(r.RequestURI, \"event\") {\n\t\t\t\t\tfmt.Fprintln(w, eventBody)\n\t\t\t\t} else {\n\t\t\t\t\thttp.Error(w, \"Unexpected request during test\", 500)\n\t\t\t\t}\n\t\t\t},\n\t\t),\n\t)\n\tdefer tbaServer.Close()\n\tweb.arena.TbaClient.BaseUrl = tbaServer.URL\n\n\t// Add some teams.\n\trecorder = web.postHttpResponse(\"/setup/teams\", \"teamNumbers=254\\r\\nnotateam\\r\\n1114\\r\\n\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/setup/teams\")\n\tassert.Contains(t, recorder.Body.String(), \"2 teams\")\n\tassert.Contains(t, recorder.Body.String(), \"The Cheesy Poofs\")\n\tassert.Contains(t, recorder.Body.String(), \"1114\")\n\tteam, _ := web.arena.Database.GetTeamById(254)\n\tassert.Equal(t, \"Bellarmine College Preparatory\", team.SchoolName)\n\n\t// Add another team.\n\trecorder = web.postHttpResponse(\"/setup/teams\", \"teamNumbers=33\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/setup/teams\")\n\tassert.Contains(t, recorder.Body.String(), \"3 teams\")\n\tassert.Contains(t, recorder.Body.String(), \"33\")\n\n\t// Edit a team.\n\trecorder = web.getHttpResponse(\"/setup/teams/254/edit\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"The Cheesy Poofs\")\n\trecorder = web.postHttpResponse(\"/setup/teams/254/edit\", \"nickname=Teh Chezy Pofs\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/setup/teams\")\n\tassert.Contains(t, recorder.Body.String(), \"Teh Chezy Pofs\")\n\n\t// Re-download team info from TBA.\n\trecorder = web.getHttpResponse(\"/setup/teams/refresh\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/setup/teams\")\n\tassert.Contains(t, recorder.Body.String(), \"The Cheesy Poofs\")\n\tassert.NotContains(t, recorder.Body.String(), \"Teh Chezy Pofs\")\n\n\t// Delete a team.\n\trecorder = web.postHttpResponse(\"/setup/teams/1114/delete\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/setup/teams\")\n\tassert.Contains(t, recorder.Body.String(), \"2 teams\")\n\n\t// Test clearing all teams.\n\trecorder = web.postHttpResponse(\"/setup/teams/clear\", \"\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/setup/teams\")\n\tassert.Contains(t, recorder.Body.String(), \"0 teams\")\n}\n\nfunc TestSetupTeamsDisallowModification(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tweb.arena.Database.CreateTeam(&model.Team{Id: 254, Nickname: \"The Cheesy Poofs\"})\n\tweb.arena.Database.CreateMatch(&model.Match{Type: model.Qualification})\n\n\t// Disallow adding teams.\n\trecorder := web.postHttpResponse(\"/setup/teams\", \"teamNumbers=33\")\n\tassert.Contains(t, recorder.Body.String(), \"can't modify\")\n\tassert.Contains(t, recorder.Body.String(), \"1 teams\")\n\tassert.Contains(t, recorder.Body.String(), \"The Cheesy Poofs\")\n\n\t// Disallow deleting team.\n\trecorder = web.postHttpResponse(\"/setup/teams/254/delete\", \"\")\n\tassert.Contains(t, recorder.Body.String(), \"can't modify\")\n\tassert.Contains(t, recorder.Body.String(), \"1 teams\")\n\tassert.Contains(t, recorder.Body.String(), \"The Cheesy Poofs\")\n\n\t// Disallow clearing all teams.\n\trecorder = web.postHttpResponse(\"/setup/teams/clear\", \"\")\n\tassert.Contains(t, recorder.Body.String(), \"can't modify\")\n\tassert.Contains(t, recorder.Body.String(), \"1 teams\")\n\tassert.Contains(t, recorder.Body.String(), \"The Cheesy Poofs\")\n\n\t// Allow editing a team.\n\trecorder = web.postHttpResponse(\"/setup/teams/254/edit\", \"nickname=Teh Chezy Pofs\")\n\tassert.Equal(t, 303, recorder.Code)\n\trecorder = web.getHttpResponse(\"/setup/teams\")\n\tassert.NotContains(t, recorder.Body.String(), \"can't modify\")\n\tassert.Contains(t, recorder.Body.String(), \"1 teams\")\n\tassert.Contains(t, recorder.Body.String(), \"Teh Chezy Pofs\")\n}\n\nfunc TestSetupTeamsBadReqest(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/setup/teams/254/edit\")\n\tassert.Equal(t, 400, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"No such team\")\n\trecorder = web.postHttpResponse(\"/setup/teams/254/edit\", \"\")\n\tassert.Equal(t, 400, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"No such team\")\n\trecorder = web.postHttpResponse(\"/setup/teams/254/delete\", \"\")\n\tassert.Equal(t, 400, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"No such team\")\n}\n\nfunc TestSetupTeamsWpaKeys(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tweb.arena.EventSettings.NetworkSecurityEnabled = true\n\n\tteam1 := &model.Team{Id: 254, WpaKey: \"aaaaaaaa\"}\n\tteam2 := &model.Team{Id: 1114}\n\tweb.arena.Database.CreateTeam(team1)\n\tweb.arena.Database.CreateTeam(team2)\n\n\trecorder := web.getHttpResponse(\"/setup/teams/generate_wpa_keys?all=false\")\n\tassert.Equal(t, 303, recorder.Code)\n\tteam1, _ = web.arena.Database.GetTeamById(254)\n\tteam2, _ = web.arena.Database.GetTeamById(1114)\n\tassert.Equal(t, \"aaaaaaaa\", team1.WpaKey)\n\tassert.Equal(t, 8, len(team2.WpaKey))\n\n\trecorder = web.getHttpResponse(\"/setup/teams/generate_wpa_keys?all=true\")\n\tassert.Equal(t, 303, recorder.Code)\n\tteam1, _ = web.arena.Database.GetTeamById(254)\n\tteam3, _ := web.arena.Database.GetTeamById(1114)\n\tassert.NotEqual(t, \"aaaaaaaa\", team1.WpaKey)\n\tassert.Equal(t, 8, len(team1.WpaKey))\n\tassert.NotEqual(t, team2.WpaKey, team3.WpaKey)\n\tassert.Equal(t, 8, len(team3.WpaKey))\n\n\t// Disallow invalid manual WPA keys.\n\trecorder = web.postHttpResponse(\"/setup/teams/254/edit\", \"wpa_key=1234567\")\n\tassert.Equal(t, 500, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"WPA key must be between 8 and 63 characters\")\n}\n\nfunc TestSetupTeamsProgress(t *testing.T) {\n\tweb := setupTestWeb(t)\n\tprogressPercentage = 25.4\n\n\trecorder := web.getHttpResponse(\"/setup/teams/progress\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Equal(t, \"25\", recorder.Body.String())\n}\n"
  },
  {
    "path": "web/twitch_display.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for a display to show a configurable Twitch live video stream.\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"net/http\"\n)\n\n// Renders the Twitch stream view.\nfunc (web *Web) twitchDisplayHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.enforceDisplayConfiguration(w, r, map[string]string{\"channel\": \"team254\"}) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/twitch_display.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t}{web.arena.EventSettings}\n\terr = template.ExecuteTemplate(w, \"twitch_display.html\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for sending configuration commands to the display.\nfunc (web *Web) twitchDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tdisplay, err := web.registerDisplay(r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer web.arena.MarkDisplayDisconnected(display.DisplayConfiguration.Id)\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client.\n\tws.HandleNotifiers(display.Notifier, web.arena.ReloadDisplaysNotifier)\n}\n"
  },
  {
    "path": "web/twitch_display_test.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestTwitchDisplay(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/displays/twitch?displayId=1&channel=team254\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Twitch Stream Display - Untitled Event - Cheesy Arena\")\n}\n\nfunc TestTwitchDisplayWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/displays/twitch/websocket?displayId=123\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"displayConfiguration\")\n}\n"
  },
  {
    "path": "web/wall_display.go",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web handlers for a display that can be shown on a screen supplemental to one with the audience display overlay.\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"net/http\"\n)\n\n// Renders the audience display to be chroma keyed over the video feed.\nfunc (web *Web) wallDisplayHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.enforceDisplayConfiguration(\n\t\tw,\n\t\tr,\n\t\tmap[string]string{\n\t\t\t\"background\":   \"#000\",\n\t\t\t\"message\":      \"\",\n\t\t\t\"reversed\":     \"false\",\n\t\t\t\"topSpacingPx\": \"0\",\n\t\t\t\"zoomFactor\":   \"1\",\n\t\t},\n\t) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/wall_display.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\n\tdata := struct {\n\t\t*model.EventSettings\n\t\tMatchSounds []*game.MatchSound\n\t}{web.arena.EventSettings, game.MatchSounds}\n\terr = template.ExecuteTemplate(w, \"wall_display.html\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for the audience display client to receive status updates.\nfunc (web *Web) wallDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tdisplay, err := web.registerDisplay(r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer web.arena.MarkDisplayDisconnected(display.DisplayConfiguration.Id)\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client.\n\tws.HandleNotifiers(\n\t\tdisplay.Notifier,\n\t\tweb.arena.MatchTimingNotifier,\n\t\tweb.arena.AudienceDisplayModeNotifier,\n\t\tweb.arena.MatchLoadNotifier,\n\t\tweb.arena.MatchTimeNotifier,\n\t\tweb.arena.RealtimeScoreNotifier,\n\t\tweb.arena.ReloadDisplaysNotifier,\n\t)\n}\n"
  },
  {
    "path": "web/wall_display_test.go",
    "content": "// Copyright 2023 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestWallDisplay(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/displays/wall\")\n\tassert.Equal(t, 302, recorder.Code)\n\tassert.Contains(t, recorder.Header().Get(\"Location\"), \"displayId=100\")\n\tassert.Contains(t, recorder.Header().Get(\"Location\"), \"background=%23000\")\n\tassert.Contains(t, recorder.Header().Get(\"Location\"), \"message=\")\n\tassert.Contains(t, recorder.Header().Get(\"Location\"), \"reversed=false\")\n\tassert.Contains(t, recorder.Header().Get(\"Location\"), \"topSpacingPx=0\")\n\tassert.Contains(t, recorder.Header().Get(\"Location\"), \"zoomFactor=1\")\n\n\trecorder = web.getHttpResponse(\n\t\t\"/displays/wall?displayId=1&background=%23fff&message=hello+there&reversed=true&topSpacingPx=10&zoomFactor=2\",\n\t)\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Wall Display - Untitled Event - Cheesy Arena\")\n}\n\nfunc TestWallDisplayWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/displays/wall/websocket?displayId=1\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"displayConfiguration\")\n\treadWebsocketType(t, ws, \"matchTiming\")\n\treadWebsocketType(t, ws, \"audienceDisplayMode\")\n\treadWebsocketType(t, ws, \"matchLoad\")\n\treadWebsocketType(t, ws, \"matchTime\")\n\treadWebsocketType(t, ws, \"realtimeScore\")\n\n\t// Run through a match cycle.\n\tweb.arena.MatchLoadNotifier.Notify()\n\treadWebsocketType(t, ws, \"matchLoad\")\n\tweb.arena.AllianceStations[\"R1\"].Bypass = true\n\tweb.arena.AllianceStations[\"R2\"].Bypass = true\n\tweb.arena.AllianceStations[\"R3\"].Bypass = true\n\tweb.arena.AllianceStations[\"B1\"].Bypass = true\n\tweb.arena.AllianceStations[\"B2\"].Bypass = true\n\tweb.arena.AllianceStations[\"B3\"].Bypass = true\n\tweb.arena.StartMatch()\n\tweb.arena.Update()\n\tweb.arena.Update()\n\tmessages := readWebsocketMultiple(t, ws, 2)\n\tscreen, ok := messages[\"audienceDisplayMode\"]\n\tif assert.True(t, ok) {\n\t\tassert.Equal(t, \"match\", screen)\n\t}\n\t_, ok = messages[\"matchTime\"]\n\tassert.True(t, ok)\n\tweb.arena.RealtimeScoreNotifier.Notify()\n\treadWebsocketType(t, ws, \"realtimeScore\")\n}\n"
  },
  {
    "path": "web/web.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Configuration and functions for the event server web interface.\n\npackage web\n\nimport (\n\t\"fmt\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"log\"\n\t\"net/http\"\n\t\"path/filepath\"\n\t\"strconv\"\n\t\"strings\"\n\t\"text/template\"\n\n\t\"github.com/Team254/cheesy-arena/field\"\n\t\"github.com/Team254/cheesy-arena/model\"\n)\n\nconst (\n\tsessionTokenCookie = \"session_token\"\n\tadminUser          = \"admin\"\n)\n\ntype Web struct {\n\tarena           *field.Arena\n\ttemplateHelpers template.FuncMap\n}\n\nfunc NewWeb(arena *field.Arena) *Web {\n\tweb := &Web{arena: arena}\n\n\t// Helper functions that can be used inside templates.\n\tweb.templateHelpers = template.FuncMap{\n\t\t// Allows sub-templates to be invoked with multiple arguments.\n\t\t\"dict\": func(values ...any) (map[string]any, error) {\n\t\t\tif len(values)%2 != 0 {\n\t\t\t\treturn nil, fmt.Errorf(\"Invalid dict call.\")\n\t\t\t}\n\t\t\tdict := make(map[string]any, len(values)/2)\n\t\t\tfor i := 0; i < len(values); i += 2 {\n\t\t\t\tkey, ok := values[i].(string)\n\t\t\t\tif !ok {\n\t\t\t\t\treturn nil, fmt.Errorf(\"Dict keys must be strings.\")\n\t\t\t\t}\n\t\t\t\tdict[key] = values[i+1]\n\t\t\t}\n\t\t\treturn dict, nil\n\t\t},\n\t\t\"add\": func(a, b int) int {\n\t\t\treturn a + b\n\t\t},\n\t\t\"itoa\": func(a int) string {\n\t\t\treturn strconv.Itoa(a)\n\t\t},\n\t\t\"multiply\": func(a, b int) int {\n\t\t\treturn a * b\n\t\t},\n\t\t\"seq\": func(count int) []int {\n\t\t\tseq := make([]int, count)\n\t\t\tfor i := 0; i < count; i++ {\n\t\t\t\tseq[i] = i + 1\n\t\t\t}\n\t\t\treturn seq\n\t\t},\n\t\t\"toUpper\": func(str string) string {\n\t\t\treturn strings.ToUpper(str)\n\t\t},\n\n\t\t// MatchType enum values.\n\t\t\"testMatch\":          model.Test.Get,\n\t\t\"practiceMatch\":      model.Practice.Get,\n\t\t\"qualificationMatch\": model.Qualification.Get,\n\t\t\"playoffMatch\":       model.Playoff.Get,\n\n\t\t// MatchStatus enum values.\n\t\t\"matchScheduled\": game.MatchScheduled.Get,\n\t\t\"matchHidden\":    game.MatchHidden.Get,\n\t\t\"redWonMatch\":    game.RedWonMatch.Get,\n\t\t\"blueWonMatch\":   game.BlueWonMatch.Get,\n\t\t\"tieMatch\":       game.TieMatch.Get,\n\t}\n\n\treturn web\n}\n\n// Starts the webserver and blocks, waiting on requests. Does not return until the application exits.\nfunc (web *Web) ServeWebInterface(port int) {\n\thttp.Handle(\"/static/\", http.StripPrefix(\"/static/\", addNoCacheHeader(http.FileServer(http.Dir(\"static/\")))))\n\thttp.Handle(\"/\", web.newHandler())\n\tlog.Printf(\"Serving HTTP requests on port %d\", port)\n\n\t// Start Server\n\thttp.ListenAndServe(fmt.Sprintf(\":%d\", port), nil)\n}\n\n// Serves the root page of Cheesy Arena.\nfunc (web *Web) indexHandler(w http.ResponseWriter, r *http.Request) {\n\ttemplate, err := web.parseFiles(\"templates/index.html\", \"templates/base.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t}{web.arena.EventSettings}\n\terr = template.ExecuteTemplate(w, \"base\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// Adds a \"Cache-Control: no-cache\" header to the given handler to force browser validation of last modified time.\nfunc addNoCacheHeader(handler http.Handler) http.Handler {\n\treturn http.HandlerFunc(\n\t\tfunc(w http.ResponseWriter, r *http.Request) {\n\t\t\tw.Header().Add(\"Cache-Control\", \"no-cache\")\n\t\t\thandler.ServeHTTP(w, r)\n\t\t},\n\t)\n}\n\n// Sets up the mapping between URLs and handlers.\nfunc (web *Web) newHandler() http.Handler {\n\tmux := http.NewServeMux()\n\tmux.HandleFunc(\"GET /\", web.indexHandler)\n\tmux.HandleFunc(\"GET /alliance_selection\", web.allianceSelectionGetHandler)\n\tmux.HandleFunc(\"POST /alliance_selection\", web.allianceSelectionPostHandler)\n\tmux.HandleFunc(\"GET /alliance_selection/websocket\", web.allianceSelectionWebsocketHandler)\n\tmux.HandleFunc(\"POST /alliance_selection/finalize\", web.allianceSelectionFinalizeHandler)\n\tmux.HandleFunc(\"POST /alliance_selection/reset\", web.allianceSelectionResetHandler)\n\tmux.HandleFunc(\"POST /alliance_selection/start\", web.allianceSelectionStartHandler)\n\tmux.HandleFunc(\"GET /api/alliances\", web.alliancesApiHandler)\n\tmux.HandleFunc(\"GET /api/arena/websocket\", web.arenaWebsocketApiHandler)\n\tmux.HandleFunc(\"GET /api/bracket/svg\", web.bracketSvgApiHandler)\n\tmux.HandleFunc(\"GET /api/matches/{type}\", web.matchesApiHandler)\n\tmux.HandleFunc(\"GET /api/rankings\", web.rankingsApiHandler)\n\tmux.HandleFunc(\"GET /api/sponsor_slides\", web.sponsorSlidesApiHandler)\n\tmux.HandleFunc(\"GET /api/teams/{teamId}/avatar\", web.teamAvatarsApiHandler)\n\tmux.HandleFunc(\"GET /display\", web.placeholderDisplayHandler)\n\tmux.HandleFunc(\"GET /display/websocket\", web.placeholderDisplayWebsocketHandler)\n\tmux.HandleFunc(\"GET /displays/alliance_station\", web.allianceStationDisplayHandler)\n\tmux.HandleFunc(\"GET /displays/alliance_station/websocket\", web.allianceStationDisplayWebsocketHandler)\n\tmux.HandleFunc(\"GET /displays/announcer\", web.announcerDisplayHandler)\n\tmux.HandleFunc(\"GET /displays/announcer/match_load\", web.announcerDisplayMatchLoadHandler)\n\tmux.HandleFunc(\"GET /displays/announcer/score_posted\", web.announcerDisplayScorePostedHandler)\n\tmux.HandleFunc(\"GET /displays/announcer/websocket\", web.announcerDisplayWebsocketHandler)\n\tmux.HandleFunc(\"GET /displays/audience\", web.audienceDisplayHandler)\n\tmux.HandleFunc(\"GET /displays/audience/websocket\", web.audienceDisplayWebsocketHandler)\n\tmux.HandleFunc(\"GET /displays/bracket\", web.bracketDisplayHandler)\n\tmux.HandleFunc(\"GET /displays/bracket/websocket\", web.bracketDisplayWebsocketHandler)\n\tmux.HandleFunc(\"GET /displays/field_monitor\", web.fieldMonitorDisplayHandler)\n\tmux.HandleFunc(\"GET /displays/field_monitor/websocket\", web.fieldMonitorDisplayWebsocketHandler)\n\tmux.HandleFunc(\"GET /displays/logo\", web.logoDisplayHandler)\n\tmux.HandleFunc(\"GET /displays/logo/websocket\", web.logoDisplayWebsocketHandler)\n\tmux.HandleFunc(\"GET /displays/queueing\", web.queueingDisplayHandler)\n\tmux.HandleFunc(\"GET /displays/queueing/match_load\", web.queueingDisplayMatchLoadHandler)\n\tmux.HandleFunc(\"GET /displays/queueing/websocket\", web.queueingDisplayWebsocketHandler)\n\tmux.HandleFunc(\"GET /displays/rankings\", web.rankingsDisplayHandler)\n\tmux.HandleFunc(\"GET /displays/rankings/websocket\", web.rankingsDisplayWebsocketHandler)\n\tmux.HandleFunc(\"GET /displays/twitch\", web.twitchDisplayHandler)\n\tmux.HandleFunc(\"GET /displays/twitch/websocket\", web.twitchDisplayWebsocketHandler)\n\tmux.HandleFunc(\"GET /displays/wall\", web.wallDisplayHandler)\n\tmux.HandleFunc(\"GET /displays/wall/websocket\", web.wallDisplayWebsocketHandler)\n\tmux.HandleFunc(\"GET /displays/webpage\", web.webpageDisplayHandler)\n\tmux.HandleFunc(\"GET /displays/webpage/websocket\", web.webpageDisplayWebsocketHandler)\n\tmux.HandleFunc(\"GET /login\", web.loginHandler)\n\tmux.HandleFunc(\"POST /login\", web.loginPostHandler)\n\tmux.HandleFunc(\"GET /match_play\", web.matchPlayHandler)\n\tmux.HandleFunc(\"GET /match_play/match_load\", web.matchPlayMatchLoadHandler)\n\tmux.HandleFunc(\"GET /match_play/websocket\", web.matchPlayWebsocketHandler)\n\tmux.HandleFunc(\"GET /match_logs\", web.matchLogsHandler)\n\tmux.HandleFunc(\"GET /match_logs/{matchId}/{stationId}/log\", web.matchLogsViewGetHandler)\n\tmux.HandleFunc(\"GET /match_review\", web.matchReviewHandler)\n\tmux.HandleFunc(\"GET /match_review/{matchId}/edit\", web.matchReviewEditGetHandler)\n\tmux.HandleFunc(\"POST /match_review/{matchId}/edit\", web.matchReviewEditPostHandler)\n\tmux.HandleFunc(\"GET /panels/scoring/{position}\", web.scoringPanelHandler)\n\tmux.HandleFunc(\"GET /panels/scoring/{position}/websocket\", web.scoringPanelWebsocketHandler)\n\tmux.HandleFunc(\"GET /panels/referee\", web.refereePanelHandler)\n\tmux.HandleFunc(\"GET /panels/referee/foul_list\", web.refereePanelFoulListHandler)\n\tmux.HandleFunc(\"GET /panels/referee/websocket\", web.refereePanelWebsocketHandler)\n\tmux.HandleFunc(\"GET /reports/csv/backups\", web.backupTeamsCsvReportHandler)\n\tmux.HandleFunc(\"GET /reports/csv/fta\", web.ftaCsvReportHandler)\n\tmux.HandleFunc(\"GET /reports/csv/rankings\", web.rankingsCsvReportHandler)\n\tmux.HandleFunc(\"GET /reports/csv/schedule/{type}\", web.scheduleCsvReportHandler)\n\tmux.HandleFunc(\"GET /reports/csv/teams\", web.teamsCsvReportHandler)\n\tmux.HandleFunc(\"GET /reports/csv/wpa_keys\", web.wpaKeysCsvReportHandler)\n\tmux.HandleFunc(\"GET /reports/pdf/alliances\", web.alliancesPdfReportHandler)\n\tmux.HandleFunc(\"GET /reports/pdf/backups\", web.backupsPdfReportHandler)\n\tmux.HandleFunc(\"GET /reports/pdf/bracket\", web.bracketPdfReportHandler)\n\tmux.HandleFunc(\"GET /reports/pdf/coupons\", web.couponsPdfReportHandler)\n\tmux.HandleFunc(\"GET /reports/pdf/cycle/{type}\", web.cyclePdfReportHandler)\n\tmux.HandleFunc(\"GET /reports/pdf/judging_schedule\", web.judgingSchedulePdfReportHandler)\n\tmux.HandleFunc(\"GET /reports/pdf/rankings\", web.rankingsPdfReportHandler)\n\tmux.HandleFunc(\"GET /reports/pdf/schedule/{type}\", web.schedulePdfReportHandler)\n\tmux.HandleFunc(\"GET /reports/pdf/teams\", web.teamsPdfReportHandler)\n\tmux.HandleFunc(\"GET /setup/awards\", web.awardsGetHandler)\n\tmux.HandleFunc(\"POST /setup/awards\", web.awardsPostHandler)\n\tmux.HandleFunc(\"GET /setup/breaks\", web.breaksGetHandler)\n\tmux.HandleFunc(\"POST /setup/breaks\", web.breaksPostHandler)\n\tmux.HandleFunc(\"POST /setup/db/clear/{type}\", web.clearDbHandler)\n\tmux.HandleFunc(\"POST /setup/db/restore\", web.restoreDbHandler)\n\tmux.HandleFunc(\"GET /setup/db/save\", web.saveDbHandler)\n\tmux.HandleFunc(\"GET /setup/displays\", web.displaysGetHandler)\n\tmux.HandleFunc(\"GET /setup/displays/websocket\", web.displaysWebsocketHandler)\n\tmux.HandleFunc(\"GET /setup/field_testing\", web.fieldTestingGetHandler)\n\tmux.HandleFunc(\"GET /setup/field_testing/websocket\", web.fieldTestingWebsocketHandler)\n\tmux.HandleFunc(\"GET /setup/judging\", web.judgingGetHandler)\n\tmux.HandleFunc(\"POST /setup/judging/clear\", web.judgingClearPostHandler)\n\tmux.HandleFunc(\"POST /setup/judging/generate\", web.judgingGeneratePostHandler)\n\tmux.HandleFunc(\"GET /setup/lower_thirds\", web.lowerThirdsGetHandler)\n\tmux.HandleFunc(\"GET /setup/lower_thirds/websocket\", web.lowerThirdsWebsocketHandler)\n\tmux.HandleFunc(\"GET /setup/schedule\", web.scheduleGetHandler)\n\tmux.HandleFunc(\"POST /setup/schedule/generate\", web.scheduleGeneratePostHandler)\n\tmux.HandleFunc(\"POST /setup/schedule/save\", web.scheduleSavePostHandler)\n\tmux.HandleFunc(\"GET /setup/settings\", web.settingsGetHandler)\n\tmux.HandleFunc(\"POST /setup/settings\", web.settingsPostHandler)\n\tmux.HandleFunc(\"GET /setup/settings/publish_alliances\", web.settingsPublishAlliancesHandler)\n\tmux.HandleFunc(\"GET /setup/settings/publish_awards\", web.settingsPublishAwardsHandler)\n\tmux.HandleFunc(\"GET /setup/settings/publish_matches\", web.settingsPublishMatchesHandler)\n\tmux.HandleFunc(\"GET /setup/settings/publish_rankings\", web.settingsPublishRankingsHandler)\n\tmux.HandleFunc(\"GET /setup/settings/publish_teams\", web.settingsPublishTeamsHandler)\n\tmux.HandleFunc(\"GET /setup/sponsor_slides\", web.sponsorSlidesGetHandler)\n\tmux.HandleFunc(\"POST /setup/sponsor_slides\", web.sponsorSlidesPostHandler)\n\tmux.HandleFunc(\"GET /setup/teams\", web.teamsGetHandler)\n\tmux.HandleFunc(\"POST /setup/teams\", web.teamsPostHandler)\n\tmux.HandleFunc(\"POST /setup/teams/{id}/delete\", web.teamDeletePostHandler)\n\tmux.HandleFunc(\"GET /setup/teams/{id}/edit\", web.teamEditGetHandler)\n\tmux.HandleFunc(\"POST /setup/teams/{id}/edit\", web.teamEditPostHandler)\n\tmux.HandleFunc(\"POST /setup/teams/clear\", web.teamsClearHandler)\n\tmux.HandleFunc(\"GET /setup/teams/generate_wpa_keys\", web.teamsGenerateWpaKeysHandler)\n\tmux.HandleFunc(\"GET /setup/teams/progress\", web.teamsUpdateProgressBarHandler)\n\tmux.HandleFunc(\"GET /setup/teams/refresh\", web.teamsRefreshHandler)\n\treturn mux\n}\n\n// Writes the given error out as plain text with a status code of 500.\nfunc handleWebErr(w http.ResponseWriter, err error) {\n\tlog.Printf(\"HTTP request error: %v\", err)\n\thttp.Error(w, \"Internal server error: \"+err.Error(), 500)\n}\n\n// Prepends the base directory to the template filenames.\nfunc (web *Web) parseFiles(filenames ...string) (*template.Template, error) {\n\tvar paths []string\n\tfor _, filename := range filenames {\n\t\tpaths = append(paths, filepath.Join(model.BaseDir, filename))\n\t}\n\n\ttemplate := template.New(\"\").Funcs(web.templateHelpers)\n\treturn template.ParseFiles(paths...)\n}\n"
  },
  {
    "path": "web/web_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/field\"\n\t\"github.com/Team254/cheesy-arena/game\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestIndex(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Home - Untitled Event - Cheesy Arena\")\n}\n\nfunc (web *Web) getHttpResponse(path string) *httptest.ResponseRecorder {\n\trecorder := httptest.NewRecorder()\n\treq, _ := http.NewRequest(\"GET\", path, nil)\n\tweb.newHandler().ServeHTTP(recorder, req)\n\treturn recorder\n}\n\nfunc (web *Web) getHttpResponseWithHeaders(path string, headers map[string]string) *httptest.ResponseRecorder {\n\trecorder := httptest.NewRecorder()\n\treq, _ := http.NewRequest(\"GET\", path, nil)\n\tfor key, value := range headers {\n\t\treq.Header.Set(key, value)\n\t}\n\tweb.newHandler().ServeHTTP(recorder, req)\n\treturn recorder\n}\n\nfunc (web *Web) postHttpResponse(path string, body string) *httptest.ResponseRecorder {\n\trecorder := httptest.NewRecorder()\n\treq, _ := http.NewRequest(\"POST\", path, strings.NewReader(body))\n\treq.Header.Set(\"Content-Type\", \"application/x-www-form-urlencoded; param=value\")\n\tweb.newHandler().ServeHTTP(recorder, req)\n\treturn recorder\n}\n\n// Starts a real local HTTP server that can be used by more sophisticated tests.\nfunc (web *Web) startTestServer() (*httptest.Server, string) {\n\tserver := httptest.NewServer(web.newHandler())\n\treturn server, \"ws\" + server.URL[len(\"http\"):]\n}\n\n// Receives the next websocket message and asserts that it is an error.\nfunc readWebsocketError(t *testing.T, ws *websocket.Websocket) string {\n\tmessageType, data, err := ws.Read()\n\tif assert.Nil(t, err) && assert.Equal(t, \"error\", messageType) {\n\t\treturn data.(string)\n\t}\n\treturn \"error\"\n}\n\n// Receives the next websocket message and asserts that it is of the given type.\nfunc readWebsocketType(t *testing.T, ws *websocket.Websocket, expectedMessageType string) any {\n\tmessageType, message, err := ws.ReadWithTimeout(time.Second)\n\tif assert.Nil(t, err) {\n\t\tassert.Equal(t, expectedMessageType, messageType)\n\t}\n\treturn message\n}\n\nfunc readWebsocketMultiple(t *testing.T, ws *websocket.Websocket, count int) map[string]any {\n\tmessages := make(map[string]any)\n\tfor i := 0; i < count; i++ {\n\t\tmessageType, message, err := ws.ReadWithTimeout(time.Second)\n\t\tif assert.Nil(t, err) {\n\t\t\tmessages[messageType] = message\n\t\t}\n\t}\n\treturn messages\n}\n\nfunc setupTestWeb(t *testing.T) *Web {\n\tgame.MatchTiming.WarmupDurationSec = 3\n\tgame.MatchTiming.PauseDurationSec = 2\n\tarena := field.SetupTestArena(t)\n\treturn NewWeb(arena)\n}\n"
  },
  {
    "path": "web/webpage_display.go",
    "content": "// Copyright 2024 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Web routes for a display to show an arbitrary web page.\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/model\"\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\t\"net/http\"\n)\n\n// Renders the web page view.\nfunc (web *Web) webpageDisplayHandler(w http.ResponseWriter, r *http.Request) {\n\tif !web.enforceDisplayConfiguration(w, r, map[string]string{\"url\": \"https://www.team254.com\"}) {\n\t\treturn\n\t}\n\n\ttemplate, err := web.parseFiles(\"templates/webpage_display.html\")\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdata := struct {\n\t\t*model.EventSettings\n\t}{web.arena.EventSettings}\n\terr = template.ExecuteTemplate(w, \"webpage_display.html\", data)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n}\n\n// The websocket endpoint for sending configuration commands to the display.\nfunc (web *Web) webpageDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {\n\tdisplay, err := web.registerDisplay(r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer web.arena.MarkDisplayDisconnected(display.DisplayConfiguration.Id)\n\n\tws, err := websocket.NewWebsocket(w, r)\n\tif err != nil {\n\t\thandleWebErr(w, err)\n\t\treturn\n\t}\n\tdefer ws.Close()\n\n\t// Subscribe the websocket to the notifiers whose messages will be passed on to the client.\n\tws.HandleNotifiers(display.Notifier, web.arena.ReloadDisplaysNotifier)\n}\n"
  },
  {
    "path": "web/webpage_display_test.go",
    "content": "// Copyright 2024 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage web\n\nimport (\n\t\"github.com/Team254/cheesy-arena/websocket\"\n\tgorillawebsocket \"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"testing\"\n)\n\nfunc TestWebpageDisplay(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\trecorder := web.getHttpResponse(\"/displays/webpage?displayId=1&url=https://www.team254.com\")\n\tassert.Equal(t, 200, recorder.Code)\n\tassert.Contains(t, recorder.Body.String(), \"Web Page Display - Untitled Event - Cheesy Arena\")\n}\n\nfunc TestWebpageDisplayWebsocket(t *testing.T) {\n\tweb := setupTestWeb(t)\n\n\tserver, wsUrl := web.startTestServer()\n\tdefer server.Close()\n\tconn, _, err := gorillawebsocket.DefaultDialer.Dial(wsUrl+\"/displays/webpage/websocket?displayId=123\", nil)\n\tassert.Nil(t, err)\n\tdefer conn.Close()\n\tws := websocket.NewTestWebsocket(conn)\n\n\t// Should get a few status updates right after connection.\n\treadWebsocketType(t, ws, \"displayConfiguration\")\n}\n"
  },
  {
    "path": "websocket/notifier.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Publish-subscribe model for nonblocking notification of server events to websocket clients.\n\npackage websocket\n\nimport (\n\t\"log\"\n\t\"sync\"\n)\n\n// Allow the listeners to buffer a small number of notifications to streamline delivery.\nconst notifyBufferSize = 5\n\ntype Notifier struct {\n\tmessageType     string\n\tmessageProducer func() any\n\tlisteners       map[chan messageEnvelope]struct{} // The map is essentially a set; the value is ignored.\n\tmutex           sync.Mutex\n}\n\ntype messageEnvelope struct {\n\tmessageType string\n\tmessageBody any\n}\n\nfunc NewNotifier(messageType string, messageProducer func() any) *Notifier {\n\tnotifier := &Notifier{messageType: messageType, messageProducer: messageProducer}\n\tnotifier.listeners = make(map[chan messageEnvelope]struct{})\n\treturn notifier\n}\n\n// Calls the messageProducer function and sends a message containing the results to all registered listeners, and cleans\n// up any listeners that have closed.\nfunc (notifier *Notifier) Notify() {\n\tnotifier.NotifyWithMessage(notifier.getMessageBody())\n}\n\n// Sends the given message to all registered listeners, and cleans up any listeners that have closed. If there is a\n// messageProducer function defined it is ignored.\nfunc (notifier *Notifier) NotifyWithMessage(messageBody any) {\n\tnotifier.mutex.Lock()\n\tdefer notifier.mutex.Unlock()\n\n\tmessage := messageEnvelope{messageType: notifier.messageType, messageBody: messageBody}\n\tfor listener := range notifier.listeners {\n\t\tnotifier.notifyListener(listener, message)\n\t}\n}\n\nfunc (notifier *Notifier) notifyListener(listener chan messageEnvelope, message messageEnvelope) {\n\tdefer func() {\n\t\t// If channel is closed sending to it will cause a panic; recover and remove it from the list.\n\t\tif r := recover(); r != nil {\n\t\t\tdelete(notifier.listeners, listener)\n\t\t}\n\t}()\n\n\t// Do a non-blocking send. This guarantees that sending notifications won't interrupt the main event loop,\n\t// at the risk of clients missing some messages if they don't read them all promptly.\n\tselect {\n\tcase listener <- message:\n\t\t// The notification was sent and received successfully.\n\tdefault:\n\t\tlog.Printf(\"Failed to send a '%s' notification due to blocked listener.\", notifier.messageType)\n\t}\n}\n\n// Registers and returns a channel that can be read from to receive notification messages. The caller is\n// responsible for closing the channel, which will cause it to be reaped from the list of listeners.\nfunc (notifier *Notifier) listen() chan messageEnvelope {\n\tnotifier.mutex.Lock()\n\tdefer notifier.mutex.Unlock()\n\n\tlistener := make(chan messageEnvelope, notifyBufferSize)\n\tnotifier.listeners[listener] = struct{}{}\n\treturn listener\n}\n\n// Invokes the message producer to get the message, or returns nil if no producer is defined.\nfunc (notifier *Notifier) getMessageBody() any {\n\tif notifier.messageProducer == nil {\n\t\treturn nil\n\t} else {\n\t\treturn notifier.messageProducer()\n\t}\n}\n"
  },
  {
    "path": "websocket/notifier_test.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage websocket\n\nimport (\n\t\"github.com/stretchr/testify/assert\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"testing\"\n)\n\nfunc TestNotifier(t *testing.T) {\n\tnotifier := NewNotifier(\"testMessageType\", generateTestMessage)\n\n\t// Should do nothing when there are no listeners.\n\tnotifier.Notify()\n\tnotifier.NotifyWithMessage(12345)\n\tnotifier.NotifyWithMessage(struct{}{})\n\n\tlistener := notifier.listen()\n\tnotifier.Notify()\n\tmessage := <-listener\n\tassert.Equal(t, \"testMessageType\", message.messageType)\n\tassert.Equal(t, \"test message\", message.messageBody)\n\tnotifier.NotifyWithMessage(12345)\n\tassert.Equal(t, 12345, (<-listener).messageBody)\n\n\t// Should allow multiple messages without blocking.\n\tnotifier.NotifyWithMessage(\"message1\")\n\tnotifier.NotifyWithMessage(\"message2\")\n\tnotifier.Notify()\n\tassert.Equal(t, \"message1\", (<-listener).messageBody)\n\tassert.Equal(t, \"message2\", (<-listener).messageBody)\n\tassert.Equal(t, \"test message\", (<-listener).messageBody)\n\n\t// Should stop sending messages and not block once the buffer is full.\n\tlog.SetOutput(ioutil.Discard) // Silence noisy log output.\n\tfor i := 0; i < 20; i++ {\n\t\tnotifier.NotifyWithMessage(i)\n\t}\n\tvar value messageEnvelope\n\tvar lastValue any\n\tfor lastValue == nil {\n\t\tselect {\n\t\tcase value = <-listener:\n\t\tdefault:\n\t\t\tlastValue = value.messageBody\n\t\t\treturn\n\t\t}\n\t}\n\tnotifier.NotifyWithMessage(\"next message\")\n\tassert.True(t, lastValue.(int) < 10)\n\tassert.Equal(t, \"next message\", (<-listener).messageBody)\n}\n\nfunc TestNotifyMultipleListeners(t *testing.T) {\n\tnotifier := NewNotifier(\"testMessageType2\", nil)\n\tlisteners := [50]chan messageEnvelope{}\n\tfor i := 0; i < len(listeners); i++ {\n\t\tlisteners[i] = notifier.listen()\n\t}\n\n\tnotifier.Notify()\n\tnotifier.NotifyWithMessage(12345)\n\tfor listener := range notifier.listeners {\n\t\tassert.Equal(t, nil, (<-listener).messageBody)\n\t\tassert.Equal(t, 12345, (<-listener).messageBody)\n\t}\n\n\t// Should reap closed channels automatically.\n\tclose(listeners[4])\n\tnotifier.NotifyWithMessage(\"message1\")\n\tassert.Equal(t, 49, len(notifier.listeners))\n\tfor listener := range notifier.listeners {\n\t\tassert.Equal(t, \"message1\", (<-listener).messageBody)\n\t}\n\tclose(listeners[16])\n\tclose(listeners[21])\n\tclose(listeners[49])\n\tnotifier.NotifyWithMessage(\"message2\")\n\tassert.Equal(t, 46, len(notifier.listeners))\n\tfor listener := range notifier.listeners {\n\t\tassert.Equal(t, \"message2\", (<-listener).messageBody)\n\t}\n}\n\nfunc generateTestMessage() any {\n\treturn \"test message\"\n}\n"
  },
  {
    "path": "websocket/websocket.go",
    "content": "// Copyright 2014 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n//\n// Functions for the server side of handling websockets.\n\npackage websocket\n\nimport (\n\t\"fmt\"\n\t\"github.com/gorilla/websocket\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n\t\"reflect\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\nconst pingInterval = time.Second * 10\n\n// Wraps the Gorilla Websocket module so that we can define additional functions on it.\ntype Websocket struct {\n\tconn       *websocket.Conn\n\twriteMutex *sync.Mutex\n}\n\ntype Message struct {\n\tType string `json:\"type\"`\n\tData any    `json:\"data\"`\n}\n\nvar websocketUpgrader = websocket.Upgrader{ReadBufferSize: 1024, WriteBufferSize: 2014}\n\n// Upgrades the given HTTP request to a websocket connection.\nfunc NewWebsocket(w http.ResponseWriter, r *http.Request) (*Websocket, error) {\n\tconn, err := websocketUpgrader.Upgrade(w, r, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Websocket{conn, new(sync.Mutex)}, nil\n}\n\nfunc NewTestWebsocket(conn *websocket.Conn) *Websocket {\n\treturn &Websocket{conn, new(sync.Mutex)}\n}\n\nfunc (ws *Websocket) Close() error {\n\treturn ws.conn.Close()\n}\n\nfunc (ws *Websocket) Read() (string, any, error) {\n\tvar message Message\n\terr := ws.conn.ReadJSON(&message)\n\tif websocket.IsCloseError(\n\t\terr, websocket.CloseAbnormalClosure, websocket.CloseGoingAway, websocket.CloseNoStatusReceived,\n\t) {\n\t\t// This error indicates that the browser terminated the connection normally; rewrite it so that clients don't\n\t\t// log it.\n\t\treturn \"\", nil, io.EOF\n\t}\n\tif err != nil {\n\t\t// Include the caller of this method in the error message.\n\t\t_, file, line, _ := runtime.Caller(1)\n\t\tfilePathParts := strings.Split(file, \"/\")\n\t\treturn \"\", nil, fmt.Errorf(\"[%s:%d] Websocket read error: %v\", filePathParts[len(filePathParts)-1], line, err)\n\t}\n\treturn message.Type, message.Data, nil\n}\n\nfunc (ws *Websocket) ReadWithTimeout(timeout time.Duration) (string, any, error) {\n\ttype wsReadResult struct {\n\t\tmessageType string\n\t\tmessage     any\n\t\terr         error\n\t}\n\treadChan := make(chan wsReadResult, 1)\n\tgo func() {\n\t\tmessageType, message, err := ws.Read()\n\t\treadChan <- wsReadResult{messageType, message, err}\n\t}()\n\n\tselect {\n\tcase result := <-readChan:\n\t\treturn result.messageType, result.message, result.err\n\tcase <-time.After(timeout):\n\t\treturn \"\", nil, fmt.Errorf(\"Websocket read timed out after waiting for %v\", timeout)\n\t}\n}\n\nfunc (ws *Websocket) Write(messageType string, data any) error {\n\tws.writeMutex.Lock()\n\tdefer ws.writeMutex.Unlock()\n\terr := ws.conn.WriteJSON(Message{messageType, data})\n\tif err != nil {\n\t\t// Include the caller of this method in the error message.\n\t\t_, file, line, _ := runtime.Caller(1)\n\t\tfilePathParts := strings.Split(file, \"/\")\n\t\treturn fmt.Errorf(\"[%s:%d] Websocket write error: %v\", filePathParts[len(filePathParts)-1], line, err)\n\t}\n\treturn nil\n}\n\nfunc (ws *Websocket) WriteNotifier(notifier *Notifier) error {\n\treturn ws.Write(notifier.messageType, notifier.getMessageBody())\n}\n\nfunc (ws *Websocket) WriteError(errorMessage string) error {\n\treturn ws.Write(\"error\", errorMessage)\n}\n\n// Creates listeners for the given notifiers and loops forever to pass their output directly through to the websocket.\nfunc (ws *Websocket) HandleNotifiers(notifiers ...*Notifier) {\n\t// Use reflection to dynamically build a select/case structure for all the notifiers.\n\tlisteners := make([]reflect.SelectCase, len(notifiers))\n\tfor i, notifier := range notifiers {\n\t\tlistener := notifier.listen()\n\t\tdefer close(listener)\n\t\tlisteners[i] = reflect.SelectCase{Dir: reflect.SelectRecv, Chan: reflect.ValueOf(listener)}\n\n\t\t// Send each notifier's respective data immediately upon connection to bootstrap the client state.\n\t\tif notifier.messageProducer != nil {\n\t\t\terr := ws.WriteNotifier(notifier)\n\t\t\tif err != nil {\n\t\t\t\tlog.Printf(\"Websocket error writing inital value for notifier %v: %v\", notifier, err)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\t// Add an additional case to periodically ping the websocket to detect whether the client has closed it.\n\tpingCase := reflect.SelectCase{Dir: reflect.SelectRecv, Chan: reflect.ValueOf(time.Tick(pingInterval))}\n\tpingIndex := len(listeners)\n\tlisteners = append(listeners, pingCase)\n\n\tfor {\n\t\t// Block until a message is available on any of the channels.\n\t\tchosenIndex, value, ok := reflect.Select(listeners)\n\t\tif ok && chosenIndex == pingIndex {\n\t\t\terr := ws.Write(\"ping\", nil)\n\t\t\tif err != nil {\n\t\t\t\t// The client has probably closed the connection; bail out of the loop.\n\t\t\t\treturn\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif !ok {\n\t\t\tlog.Printf(\"Channel for notifier %v closed unexpectedly.\", notifiers[chosenIndex])\n\t\t\treturn\n\t\t}\n\t\tmessage, ok := value.Interface().(messageEnvelope)\n\t\tif !ok {\n\t\t\tlog.Printf(\"Channel for notifier %v sent unexpected value %v.\", notifiers[chosenIndex], value)\n\t\t\tcontinue\n\t\t}\n\n\t\t// Forward the message verbatim on to the websocket.\n\t\terr := ws.Write(message.messageType, message.messageBody)\n\t\tif err != nil {\n\t\t\t// The client has probably closed the connection; bail out of the loop.\n\t\t\treturn\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "websocket/websocket_test.go",
    "content": "// Copyright 2018 Team 254. All Rights Reserved.\n// Author: pat@patfairbank.com (Patrick Fairbank)\n\npackage websocket\n\nimport (\n\t\"github.com/gorilla/websocket\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestWebsocket(t *testing.T) {\n\t// Set up some fake notifiers.\n\tnotifier1 := NewNotifier(\"messageType1\", func() any { return \"test message\" })\n\tnotifier2 := NewNotifier(\"messageType2\", nil)\n\tchangingValue := 123.45\n\tnotifier3 := NewNotifier(\"messageType3\", func() any { return changingValue })\n\n\t// Start up a fake server with a trivial websocket handler.\n\ttestWebsocketHandler := func(w http.ResponseWriter, r *http.Request) {\n\t\tws, err := NewWebsocket(w, r)\n\t\tassert.Nil(t, err)\n\t\tdefer ws.Close()\n\n\t\t// Subscribe the websocket to the notifiers whose messages will be passed on, in a separate goroutine.\n\t\tgo ws.HandleNotifiers(notifier3, notifier2, notifier1)\n\n\t\t// Loop, waiting for commands and responding to them, until the client closes the connection.\n\t\tfor {\n\t\t\tmessageType, data, err := ws.Read()\n\t\t\tif err != nil {\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\t// Client has closed the connection; nothing to do here.\n\t\t\t\t\treturn\n\t\t\t\t} else {\n\t\t\t\t\tassert.Fail(t, err.Error())\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tswitch messageType {\n\t\t\tcase \"sendMessageType1\":\n\t\t\t\tws.WriteNotifier(notifier1)\n\t\t\tcase \"sendError\":\n\t\t\t\tws.WriteError(\"error message\")\n\t\t\tdefault:\n\t\t\t\t// Echo the commands back out.\n\t\t\t\terr = ws.Write(messageType, data)\n\t\t\t\tassert.Nil(t, err)\n\t\t\t}\n\t\t}\n\t}\n\thandler := http.NewServeMux()\n\thandler.HandleFunc(\"/\", testWebsocketHandler)\n\tserver := httptest.NewServer(handler)\n\tdefer server.Close()\n\twsUrl := \"ws\" + server.URL[len(\"http\"):]\n\n\t// Create a client connection to the websocket handler on the server.\n\tconn, _, err := websocket.DefaultDialer.Dial(wsUrl, nil)\n\tassert.Nil(t, err)\n\tws := NewTestWebsocket(conn)\n\n\t// Ensure the initial messages are sent upon connection.\n\tassertMessage(t, ws, \"messageType3\", changingValue)\n\tassertMessage(t, ws, \"messageType1\", \"test message\")\n\n\t// Trigger and read notifications.\n\tnotifier2.Notify()\n\tassertMessage(t, ws, \"messageType2\", nil)\n\tnotifier1.Notify()\n\tassertMessage(t, ws, \"messageType1\", \"test message\")\n\tnotifier3.Notify()\n\tassertMessage(t, ws, \"messageType3\", changingValue)\n\tchangingValue = 254.254\n\tnotifier3.Notify()\n\tassertMessage(t, ws, \"messageType3\", changingValue)\n\tnotifier1.NotifyWithMessage(\"test message 2\")\n\tassertMessage(t, ws, \"messageType1\", \"test message 2\")\n\tnotifier3.NotifyWithMessage(\"test message 3\")\n\tassertMessage(t, ws, \"messageType3\", \"test message 3\")\n\n\t// Test sending commands back.\n\tws.Write(\"sendMessageType1\", nil)\n\tassertMessage(t, ws, \"messageType1\", \"test message\")\n\tws.Write(\"messageType4\", \"test message 4\")\n\tassertMessage(t, ws, \"messageType4\", \"test message 4\")\n\tws.Write(\"sendError\", nil)\n\tassertMessage(t, ws, \"error\", \"error message\")\n\n\t// Ensure the read times out if there is nothing to read.\n\t_, _, err = ws.ReadWithTimeout(time.Millisecond)\n\tif assert.NotNil(t, err) {\n\t\tassert.Contains(t, err.Error(), \"timed out\")\n\t}\n\n\t// Test that closing the connection eliminates the listeners once another message is sent.\n\tassert.Nil(t, ws.Close())\n\ttime.Sleep(time.Millisecond)\n\tnotifier1.Notify()\n\ttime.Sleep(time.Millisecond)\n\tnotifier1.Notify()\n\tassert.Equal(t, 0, len(notifier1.listeners))\n}\n\nfunc assertMessage(t *testing.T, ws *Websocket, expectedMessageType string, expectedMessageBody any) {\n\tmessageType, messageBody, err := ws.ReadWithTimeout(time.Second)\n\tif assert.Nil(t, err) {\n\t\tassert.Equal(t, expectedMessageType, messageType)\n\t\tassert.Equal(t, expectedMessageBody, messageBody)\n\t}\n}\n"
  }
]