From 8e522b5a84bee2cd3518377607b9e096a19898f6 Mon Sep 17 00:00:00 2001 From: Deepak Cherian Date: Tue, 30 Jul 2024 20:53:32 -0600 Subject: [PATCH 1/7] Update containment image with gridlines, higher dpi --- docs/diagrams/containment.png | Bin 13125 -> 35113 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/diagrams/containment.png b/docs/diagrams/containment.png index 0a1571215b2ba7c17bdd5918b651f72b9fb772fa..b7f2510fa6c320f98e48354ba0c9fe01943f6283 100644 GIT binary patch literal 35113 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%0DC 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 E0I@4zK>z>% literal 13125 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 From 8d54c9ba400816c99aa48f5776c0720d9e6ed10d Mon Sep 17 00:00:00 2001 From: Deepak Cherian Date: Thu, 1 Aug 2024 13:52:42 -0600 Subject: [PATCH 2/7] Better gridlines --- docs/diagrams/containment.png | Bin 35113 -> 34853 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/diagrams/containment.png b/docs/diagrams/containment.png index b7f2510fa6c320f98e48354ba0c9fe01943f6283..e69f9c343d18c5b5696fedb741d69532a1cdc795 100644 GIT binary patch literal 34853 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

qusuuLxoiz1mxE$tN_sNAO< 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 literal 35113 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%0DC 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 E0I@4zK>z>% From 4d03d7067a54f74635d1d3339974d34fd5cba245 Mon Sep 17 00:00:00 2001 From: Deepak Cherian Date: Thu, 1 Aug 2024 21:52:41 -0600 Subject: [PATCH 3/7] Stricter tolerance in property tests (#377) * Stricter tolerance in property tests now that https://github.com/ml31415/numpy-groupies/pull/90 was merged * skip float32 with cumsum --- tests/test_properties.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/test_properties.py b/tests/test_properties.py index 26150519c..6fef85b3a 100644 --- a/tests/test_properties.py +++ b/tests/test_properties.py @@ -111,9 +111,7 @@ def test_groupby_reduce(data, array, func: str) -> None: actual = actual.astype(cast_to) note(("expected: ", expected, "actual: ", actual)) - tolerance = ( - {"rtol": 1e-13, "atol": 1e-15} if "var" in func or "std" in func else {"atol": 1e-15} - ) + tolerance = {"atol": 1e-15} assert_equal(expected, actual, tolerance) @@ -131,7 +129,7 @@ def test_scans(data, array: dask.array.Array, func: str) -> None: # Too many float32 edge-cases! if "cum" in func and array.dtype.kind == "f" and array.dtype.itemsize == 4: - array = array.astype(np.float64) + assume(False) numpy_array = array.compute() assume((np.abs(numpy_array) < 2**53).all()) From cb3fc1f29b8fa40398c0fb889e4c99d6530997a2 Mon Sep 17 00:00:00 2001 From: Deepak Cherian Date: Thu, 1 Aug 2024 22:03:43 -0600 Subject: [PATCH 4/7] Add cohorts snapshot tests with syrupy (#379) * Add cohorts snapshot tests with syrupy * Fix. * fix again * Rework CI * [revery] * improve * fix mypy? * Revert "[revery]" This reverts commit 7664e5e44a05e0d2c2190024300332b12a18141e. * Try again * fix mypy --- .github/workflows/ci-additional.yaml | 3 +- .github/workflows/ci.yaml | 54 +- asv_bench/__init__.py | 0 ci/environment.yml | 1 + ci/minimal-requirements.yml | 1 + ci/no-dask.yml | 1 + ci/no-numba.yml | 1 + ci/no-xarray.yml | 2 + ci/upstream-dev-env.yml | 1 + flox/core.py | 10 +- tests/__snapshots__/test_cohorts.ambr | 22307 ++++++++++++++++++++++++ tests/strategies.py | 2 +- tests/test_cohorts.py | 29 + 13 files changed, 22362 insertions(+), 50 deletions(-) create mode 100644 asv_bench/__init__.py create mode 100644 tests/__snapshots__/test_cohorts.ambr create mode 100644 tests/test_cohorts.py diff --git a/.github/workflows/ci-additional.yaml b/.github/workflows/ci-additional.yaml index 5478c2c57..21baff867 100644 --- a/.github/workflows/ci-additional.yaml +++ b/.github/workflows/ci-additional.yaml @@ -128,7 +128,8 @@ jobs: - name: Run mypy run: | - python -m mypy --install-types --non-interactive --cobertura-xml-report mypy_report + mkdir .mypy_cache + python -m mypy --install-types --non-interactive --cache-dir=.mypy_cache/ --cobertura-xml-report mypy_report - name: Upload mypy coverage to Codecov uses: codecov/codecov-action@v4.5.0 diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f3633fc68..04799a78e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -16,7 +16,7 @@ concurrency: jobs: test: - name: Test (${{ matrix.python-version }}, ${{ matrix.os }}) + name: Test (${{matrix.env}}, ${{ matrix.python-version }}, ${{ matrix.os }}) runs-on: ${{ matrix.os }} defaults: run: @@ -25,10 +25,18 @@ jobs: fail-fast: false matrix: os: ["ubuntu-latest"] + env: ["environment"] python-version: ["3.9", "3.12"] include: - os: "windows-latest" + env: "environment" python-version: "3.12" + - os: "ubuntu-latest" + env: "no-dask" # "no-xarray", "no-numba" + python-version: "3.12" + - os: "ubuntu-latest" + env: "minimal-requirements" + python-version: "3.9" steps: - uses: actions/checkout@v4 with: @@ -39,7 +47,7 @@ jobs: - name: Set up conda environment uses: mamba-org/setup-micromamba@v1 with: - environment-file: ci/environment.yml + environment-file: ci/${{ matrix.env }}.yml environment-name: flox-tests init-shell: bash cache-environment: true @@ -81,48 +89,6 @@ jobs: path: .hypothesis/ key: cache-hypothesis-${{ runner.os }}-${{ matrix.python-version }}-${{ github.run_id }} - optional-deps: - name: ${{ matrix.env }} - runs-on: "ubuntu-latest" - defaults: - run: - shell: bash -l {0} - strategy: - fail-fast: false - matrix: - python-version: ["3.12"] - env: ["no-dask"] # "no-xarray", "no-numba" - include: - - env: "minimal-requirements" - python-version: "3.9" - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 # Fetch all history for all branches and tags. - - name: Set up conda environment - uses: mamba-org/setup-micromamba@v1 - with: - environment-file: ci/${{ matrix.env }}.yml - environment-name: flox-tests - init-shell: bash - cache-environment: true - create-args: | - python=${{ matrix.python-version }} - - name: Install flox - run: | - python -m pip install --no-deps -e . - - name: Run tests - run: | - python -m pytest -n auto --cov=./ --cov-report=xml - - name: Upload code coverage to Codecov - uses: codecov/codecov-action@v4.5.0 - with: - file: ./coverage.xml - flags: unittests - env_vars: RUNNER_OS - name: codecov-umbrella - fail_ci_if_error: false - xarray-groupby: name: xarray-groupby runs-on: ubuntu-latest diff --git a/asv_bench/__init__.py b/asv_bench/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/ci/environment.yml b/ci/environment.yml index 5a6b09df2..82995d079 100644 --- a/ci/environment.yml +++ b/ci/environment.yml @@ -18,6 +18,7 @@ dependencies: - pytest-cov - pytest-pretty - pytest-xdist + - syrupy - xarray - pre-commit - numpy_groupies>=0.9.19 diff --git a/ci/minimal-requirements.yml b/ci/minimal-requirements.yml index fa5eae251..5074292ac 100644 --- a/ci/minimal-requirements.yml +++ b/ci/minimal-requirements.yml @@ -9,6 +9,7 @@ dependencies: - pytest-cov - pytest-pretty - pytest-xdist + - syrupy - numpy==1.22 - scipy==1.9.0 - numpy_groupies==0.9.19 diff --git a/ci/no-dask.yml b/ci/no-dask.yml index 27cdb59a9..1f05c63a9 100644 --- a/ci/no-dask.yml +++ b/ci/no-dask.yml @@ -13,6 +13,7 @@ dependencies: - pytest-cov - pytest-pretty - pytest-xdist + - syrupy - xarray - numpydoc - pre-commit diff --git a/ci/no-numba.yml b/ci/no-numba.yml index be3cec4a0..8039b20f7 100644 --- a/ci/no-numba.yml +++ b/ci/no-numba.yml @@ -18,6 +18,7 @@ dependencies: - pytest-cov - pytest-pretty - pytest-xdist + - syrupy - xarray - pre-commit - numpy_groupies>=0.9.19 diff --git a/ci/no-xarray.yml b/ci/no-xarray.yml index 2dfac3ae5..030796507 100644 --- a/ci/no-xarray.yml +++ b/ci/no-xarray.yml @@ -3,6 +3,7 @@ channels: - conda-forge dependencies: - codecov + - syrupy - pandas - numpy>=1.22 - scipy @@ -11,6 +12,7 @@ dependencies: - pytest-cov - pytest-pretty - pytest-xdist + - syrupy - dask-core - numpydoc - pre-commit diff --git a/ci/upstream-dev-env.yml b/ci/upstream-dev-env.yml index 856bbafda..4020dd840 100644 --- a/ci/upstream-dev-env.yml +++ b/ci/upstream-dev-env.yml @@ -11,6 +11,7 @@ dependencies: # - scipy - pytest-pretty - pytest-xdist + - syrupy - pip # for cftime - cython>=0.29.20 diff --git a/flox/core.py b/flox/core.py index 8eaf54b74..a36ce24f5 100644 --- a/flox/core.py +++ b/flox/core.py @@ -394,7 +394,9 @@ def find_group_cohorts( chunks_per_label = chunks_per_label[present_labels_mask] label_chunks = { - present_labels[idx]: bitmask.indices[slice(bitmask.indptr[idx], bitmask.indptr[idx + 1])] + present_labels[idx].item(): bitmask.indices[ + slice(bitmask.indptr[idx], bitmask.indptr[idx + 1]) + ] for idx in range(bitmask.shape[LABEL_AXIS]) } @@ -485,7 +487,7 @@ def invert(x) -> tuple[np.ndarray, ...]: # Iterate over labels, beginning with those with most chunks logger.debug("find_group_cohorts: merging cohorts") - order = np.argsort(containment.sum(axis=LABEL_AXIS))[::-1] + order = np.argsort(containment.sum(axis=LABEL_AXIS), kind="stable")[::-1] merged_cohorts = {} merged_keys = set() # TODO: we can optimize this to loop over chunk_cohorts instead @@ -495,11 +497,11 @@ def invert(x) -> tuple[np.ndarray, ...]: slice(containment.indptr[rowidx], containment.indptr[rowidx + 1]) ] cohort_ = present_labels[cohidx] - cohort = [elem for elem in cohort_ if elem not in merged_keys] + cohort = [elem.item() for elem in cohort_ if elem not in merged_keys] if not cohort: continue merged_keys.update(cohort) - allchunks = (label_chunks[member] for member in cohort) + allchunks = (label_chunks[member].tolist() for member in cohort) chunk = tuple(set(itertools.chain(*allchunks))) merged_cohorts[chunk] = cohort diff --git a/tests/__snapshots__/test_cohorts.ambr b/tests/__snapshots__/test_cohorts.ambr new file mode 100644 index 000000000..a1c3899a9 --- /dev/null +++ b/tests/__snapshots__/test_cohorts.ambr @@ -0,0 +1,22307 @@ +# serializer version: 1 +# name: test_snapshot_cohorts[ERA5DayOfYear] + dict({ + tuple( + 0, + 365, + 183, + ): list([ + 0, + ]), + tuple( + 0, + 366, + 183, + ): list([ + 1, + ]), + tuple( + 8, + 373, + 191, + ): list([ + 16, + ]), + tuple( + 8, + 374, + 191, + ): list([ + 17, + ]), + tuple( + 16, + 381, + 199, + ): list([ + 32, + ]), + tuple( + 16, + 382, + 199, + ): list([ + 33, + ]), + tuple( + 24, + 389, + 207, + ): list([ + 48, + ]), + tuple( + 24, + 390, + 207, + ): list([ + 49, + ]), + tuple( + 32, + 397, + 215, + ): list([ + 64, + ]), + tuple( + 32, + 398, + 215, + ): list([ + 65, + ]), + tuple( + 40, + 405, + 223, + ): list([ + 80, + ]), + tuple( + 40, + 406, + 223, + ): list([ + 81, + ]), + tuple( + 48, + 413, + 231, + ): list([ + 96, + ]), + tuple( + 48, + 414, + 231, + ): list([ + 97, + ]), + tuple( + 56, + 421, + 239, + ): list([ + 112, + ]), + tuple( + 56, + 422, + 239, + ): list([ + 113, + ]), + tuple( + 64, + 429, + 247, + ): list([ + 128, + ]), + tuple( + 64, + 430, + 247, + ): list([ + 129, + ]), + tuple( + 72, + 437, + 255, + ): list([ + 144, + ]), + tuple( + 72, + 438, + 255, + ): list([ + 145, + ]), + tuple( + 80, + 445, + 263, + ): list([ + 160, + ]), + tuple( + 80, + 446, + 263, + ): list([ + 161, + ]), + tuple( + 88, + 453, + 271, + ): list([ + 176, + ]), + tuple( + 88, + 454, + 271, + ): list([ + 177, + ]), + tuple( + 96, + 461, + 279, + ): list([ + 192, + ]), + tuple( + 96, + 462, + 279, + ): list([ + 193, + ]), + tuple( + 104, + 469, + 287, + ): list([ + 208, + ]), + tuple( + 104, + 470, + 287, + ): list([ + 209, + ]), + tuple( + 112, + 477, + 295, + ): list([ + 224, + ]), + tuple( + 112, + 478, + 295, + ): list([ + 225, + ]), + tuple( + 120, + 485, + 303, + ): list([ + 240, + ]), + tuple( + 120, + 486, + 303, + ): list([ + 241, + ]), + tuple( + 128, + 493, + 311, + ): list([ + 256, + ]), + tuple( + 128, + 494, + 311, + ): list([ + 257, + ]), + tuple( + 136, + 501, + 319, + ): list([ + 272, + ]), + tuple( + 136, + 502, + 319, + ): list([ + 273, + ]), + tuple( + 144, + 509, + 327, + ): list([ + 288, + ]), + tuple( + 144, + 510, + 327, + ): list([ + 289, + ]), + tuple( + 152, + 517, + 335, + ): list([ + 304, + ]), + tuple( + 152, + 518, + 335, + ): list([ + 305, + ]), + tuple( + 160, + 525, + 343, + ): list([ + 320, + ]), + tuple( + 160, + 526, + 343, + ): list([ + 321, + ]), + tuple( + 168, + 533, + 351, + ): list([ + 336, + ]), + tuple( + 168, + 534, + 351, + ): list([ + 337, + ]), + tuple( + 176, + 541, + 359, + ): list([ + 352, + ]), + tuple( + 176, + 542, + 359, + ): list([ + 353, + ]), + tuple( + 184, + 1, + 366, + ): list([ + 2, + ]), + tuple( + 184, + 1, + 367, + ): list([ + 3, + ]), + tuple( + 185, + 2, + 367, + ): list([ + 4, + ]), + tuple( + 192, + 9, + 374, + ): list([ + 18, + ]), + tuple( + 192, + 9, + 375, + ): list([ + 19, + ]), + tuple( + 193, + 10, + 375, + ): list([ + 20, + ]), + tuple( + 200, + 17, + 382, + ): list([ + 34, + ]), + tuple( + 200, + 17, + 383, + ): list([ + 35, + ]), + tuple( + 201, + 18, + 383, + ): list([ + 36, + ]), + tuple( + 208, + 25, + 390, + ): list([ + 50, + ]), + tuple( + 208, + 25, + 391, + ): list([ + 51, + ]), + tuple( + 209, + 26, + 391, + ): list([ + 52, + ]), + tuple( + 216, + 33, + 398, + ): list([ + 66, + ]), + tuple( + 216, + 33, + 399, + ): list([ + 67, + ]), + tuple( + 217, + 34, + 399, + ): list([ + 68, + ]), + tuple( + 224, + 41, + 406, + ): list([ + 82, + ]), + tuple( + 224, + 41, + 407, + ): list([ + 83, + ]), + tuple( + 225, + 42, + 407, + ): list([ + 84, + ]), + tuple( + 232, + 49, + 414, + ): list([ + 98, + ]), + tuple( + 232, + 49, + 415, + ): list([ + 99, + ]), + tuple( + 233, + 50, + 415, + ): list([ + 100, + ]), + tuple( + 240, + 57, + 422, + ): list([ + 114, + ]), + tuple( + 240, + 57, + 423, + ): list([ + 115, + ]), + tuple( + 241, + 58, + 423, + ): list([ + 116, + ]), + tuple( + 248, + 65, + 430, + ): list([ + 130, + ]), + tuple( + 248, + 65, + 431, + ): list([ + 131, + ]), + tuple( + 249, + 66, + 431, + ): list([ + 132, + ]), + tuple( + 256, + 73, + 438, + ): list([ + 146, + ]), + tuple( + 256, + 73, + 439, + ): list([ + 147, + ]), + tuple( + 257, + 74, + 439, + ): list([ + 148, + ]), + tuple( + 264, + 81, + 446, + ): list([ + 162, + ]), + tuple( + 264, + 81, + 447, + ): list([ + 163, + ]), + tuple( + 265, + 82, + 447, + ): list([ + 164, + ]), + tuple( + 272, + 89, + 454, + ): list([ + 178, + ]), + tuple( + 272, + 89, + 455, + ): list([ + 179, + ]), + tuple( + 273, + 90, + 455, + ): list([ + 180, + ]), + tuple( + 280, + 97, + 462, + ): list([ + 194, + ]), + tuple( + 280, + 97, + 463, + ): list([ + 195, + ]), + tuple( + 281, + 98, + 463, + ): list([ + 196, + ]), + tuple( + 288, + 105, + 470, + ): list([ + 210, + ]), + tuple( + 288, + 105, + 471, + ): list([ + 211, + ]), + tuple( + 289, + 106, + 471, + ): list([ + 212, + ]), + tuple( + 296, + 113, + 478, + ): list([ + 226, + ]), + tuple( + 296, + 113, + 479, + ): list([ + 227, + ]), + tuple( + 297, + 114, + 479, + ): list([ + 228, + ]), + tuple( + 304, + 121, + 486, + ): list([ + 242, + ]), + tuple( + 304, + 121, + 487, + ): list([ + 243, + ]), + tuple( + 305, + 122, + 487, + ): list([ + 244, + ]), + tuple( + 312, + 129, + 494, + ): list([ + 258, + ]), + tuple( + 312, + 129, + 495, + ): list([ + 259, + ]), + tuple( + 313, + 130, + 495, + ): list([ + 260, + ]), + tuple( + 320, + 137, + 502, + ): list([ + 274, + ]), + tuple( + 320, + 137, + 503, + ): list([ + 275, + ]), + tuple( + 321, + 138, + 503, + ): list([ + 276, + ]), + tuple( + 328, + 145, + 510, + ): list([ + 290, + ]), + tuple( + 328, + 145, + 511, + ): list([ + 291, + ]), + tuple( + 329, + 146, + 511, + ): list([ + 292, + ]), + tuple( + 336, + 153, + 518, + ): list([ + 306, + ]), + tuple( + 336, + 153, + 519, + ): list([ + 307, + ]), + tuple( + 337, + 154, + 519, + ): list([ + 308, + ]), + tuple( + 344, + 161, + 526, + ): list([ + 322, + ]), + tuple( + 344, + 161, + 527, + ): list([ + 323, + ]), + tuple( + 345, + 162, + 527, + ): list([ + 324, + ]), + tuple( + 352, + 169, + 534, + ): list([ + 338, + ]), + tuple( + 352, + 169, + 535, + ): list([ + 339, + ]), + tuple( + 353, + 170, + 535, + ): list([ + 340, + ]), + tuple( + 360, + 177, + 542, + ): list([ + 354, + ]), + tuple( + 360, + 177, + 543, + ): list([ + 355, + ]), + tuple( + 361, + 178, + 543, + ): list([ + 356, + ]), + tuple( + 368, + 185, + 2, + ): list([ + 5, + ]), + tuple( + 368, + 186, + 3, + ): list([ + 6, + ]), + tuple( + 369, + 186, + 3, + ): list([ + 7, + ]), + tuple( + 369, + 187, + 4, + ): list([ + 8, + ]), + tuple( + 370, + 187, + 4, + ): list([ + 9, + ]), + tuple( + 370, + 188, + 5, + ): list([ + 10, + ]), + tuple( + 371, + 188, + 5, + ): list([ + 11, + ]), + tuple( + 371, + 189, + 6, + ): list([ + 12, + ]), + tuple( + 372, + 189, + 6, + ): list([ + 13, + ]), + tuple( + 372, + 190, + 7, + ): list([ + 14, + ]), + tuple( + 373, + 190, + 7, + ): list([ + 15, + ]), + tuple( + 376, + 193, + 10, + ): list([ + 21, + ]), + tuple( + 376, + 194, + 11, + ): list([ + 22, + ]), + tuple( + 377, + 194, + 11, + ): list([ + 23, + ]), + tuple( + 377, + 195, + 12, + ): list([ + 24, + ]), + tuple( + 378, + 195, + 12, + ): list([ + 25, + ]), + tuple( + 378, + 196, + 13, + ): list([ + 26, + ]), + tuple( + 379, + 196, + 13, + ): list([ + 27, + ]), + tuple( + 379, + 197, + 14, + ): list([ + 28, + ]), + tuple( + 380, + 197, + 14, + ): list([ + 29, + ]), + tuple( + 380, + 198, + 15, + ): list([ + 30, + ]), + tuple( + 381, + 198, + 15, + ): list([ + 31, + ]), + tuple( + 384, + 201, + 18, + ): list([ + 37, + ]), + tuple( + 384, + 202, + 19, + ): list([ + 38, + ]), + tuple( + 385, + 202, + 19, + ): list([ + 39, + ]), + tuple( + 385, + 203, + 20, + ): list([ + 40, + ]), + tuple( + 386, + 203, + 20, + ): list([ + 41, + ]), + tuple( + 386, + 204, + 21, + ): list([ + 42, + ]), + tuple( + 387, + 204, + 21, + ): list([ + 43, + ]), + tuple( + 387, + 205, + 22, + ): list([ + 44, + ]), + tuple( + 388, + 205, + 22, + ): list([ + 45, + ]), + tuple( + 388, + 206, + 23, + ): list([ + 46, + ]), + tuple( + 389, + 206, + 23, + ): list([ + 47, + ]), + tuple( + 392, + 209, + 26, + ): list([ + 53, + ]), + tuple( + 392, + 210, + 27, + ): list([ + 54, + ]), + tuple( + 393, + 210, + 27, + ): list([ + 55, + ]), + tuple( + 393, + 211, + 28, + ): list([ + 56, + ]), + tuple( + 394, + 211, + 28, + ): list([ + 57, + ]), + tuple( + 394, + 212, + 29, + ): list([ + 58, + ]), + tuple( + 395, + 212, + 29, + ): list([ + 59, + ]), + tuple( + 395, + 213, + 30, + ): list([ + 60, + ]), + tuple( + 396, + 213, + 30, + ): list([ + 61, + ]), + tuple( + 396, + 214, + 31, + ): list([ + 62, + ]), + tuple( + 397, + 214, + 31, + ): list([ + 63, + ]), + tuple( + 400, + 217, + 34, + ): list([ + 69, + ]), + tuple( + 400, + 218, + 35, + ): list([ + 70, + ]), + tuple( + 401, + 218, + 35, + ): list([ + 71, + ]), + tuple( + 401, + 219, + 36, + ): list([ + 72, + ]), + tuple( + 402, + 219, + 36, + ): list([ + 73, + ]), + tuple( + 402, + 220, + 37, + ): list([ + 74, + ]), + tuple( + 403, + 220, + 37, + ): list([ + 75, + ]), + tuple( + 403, + 221, + 38, + ): list([ + 76, + ]), + tuple( + 404, + 221, + 38, + ): list([ + 77, + ]), + tuple( + 404, + 222, + 39, + ): list([ + 78, + ]), + tuple( + 405, + 222, + 39, + ): list([ + 79, + ]), + tuple( + 408, + 225, + 42, + ): list([ + 85, + ]), + tuple( + 408, + 226, + 43, + ): list([ + 86, + ]), + tuple( + 409, + 226, + 43, + ): list([ + 87, + ]), + tuple( + 409, + 227, + 44, + ): list([ + 88, + ]), + tuple( + 410, + 227, + 44, + ): list([ + 89, + ]), + tuple( + 410, + 228, + 45, + ): list([ + 90, + ]), + tuple( + 411, + 228, + 45, + ): list([ + 91, + ]), + tuple( + 411, + 229, + 46, + ): list([ + 92, + ]), + tuple( + 412, + 229, + 46, + ): list([ + 93, + ]), + tuple( + 412, + 230, + 47, + ): list([ + 94, + ]), + tuple( + 413, + 230, + 47, + ): list([ + 95, + ]), + tuple( + 416, + 233, + 50, + ): list([ + 101, + ]), + tuple( + 416, + 234, + 51, + ): list([ + 102, + ]), + tuple( + 417, + 234, + 51, + ): list([ + 103, + ]), + tuple( + 417, + 235, + 52, + ): list([ + 104, + ]), + tuple( + 418, + 235, + 52, + ): list([ + 105, + ]), + tuple( + 418, + 236, + 53, + ): list([ + 106, + ]), + tuple( + 419, + 236, + 53, + ): list([ + 107, + ]), + tuple( + 419, + 237, + 54, + ): list([ + 108, + ]), + tuple( + 420, + 237, + 54, + ): list([ + 109, + ]), + tuple( + 420, + 238, + 55, + ): list([ + 110, + ]), + tuple( + 421, + 238, + 55, + ): list([ + 111, + ]), + tuple( + 424, + 241, + 58, + ): list([ + 117, + ]), + tuple( + 424, + 242, + 59, + ): list([ + 118, + ]), + tuple( + 425, + 242, + 59, + ): list([ + 119, + ]), + tuple( + 425, + 243, + 60, + ): list([ + 120, + ]), + tuple( + 426, + 243, + 60, + ): list([ + 121, + ]), + tuple( + 426, + 244, + 61, + ): list([ + 122, + ]), + tuple( + 427, + 244, + 61, + ): list([ + 123, + ]), + tuple( + 427, + 245, + 62, + ): list([ + 124, + ]), + tuple( + 428, + 245, + 62, + ): list([ + 125, + ]), + tuple( + 428, + 246, + 63, + ): list([ + 126, + ]), + tuple( + 429, + 246, + 63, + ): list([ + 127, + ]), + tuple( + 432, + 249, + 66, + ): list([ + 133, + ]), + tuple( + 432, + 250, + 67, + ): list([ + 134, + ]), + tuple( + 433, + 250, + 67, + ): list([ + 135, + ]), + tuple( + 433, + 251, + 68, + ): list([ + 136, + ]), + tuple( + 434, + 251, + 68, + ): list([ + 137, + ]), + tuple( + 434, + 252, + 69, + ): list([ + 138, + ]), + tuple( + 435, + 252, + 69, + ): list([ + 139, + ]), + tuple( + 435, + 253, + 70, + ): list([ + 140, + ]), + tuple( + 436, + 253, + 70, + ): list([ + 141, + ]), + tuple( + 436, + 254, + 71, + ): list([ + 142, + ]), + tuple( + 437, + 254, + 71, + ): list([ + 143, + ]), + tuple( + 440, + 257, + 74, + ): list([ + 149, + ]), + tuple( + 440, + 258, + 75, + ): list([ + 150, + ]), + tuple( + 441, + 258, + 75, + ): list([ + 151, + ]), + tuple( + 441, + 259, + 76, + ): list([ + 152, + ]), + tuple( + 442, + 259, + 76, + ): list([ + 153, + ]), + tuple( + 442, + 260, + 77, + ): list([ + 154, + ]), + tuple( + 443, + 260, + 77, + ): list([ + 155, + ]), + tuple( + 443, + 261, + 78, + ): list([ + 156, + ]), + tuple( + 444, + 261, + 78, + ): list([ + 157, + ]), + tuple( + 444, + 262, + 79, + ): list([ + 158, + ]), + tuple( + 445, + 262, + 79, + ): list([ + 159, + ]), + tuple( + 448, + 265, + 82, + ): list([ + 165, + ]), + tuple( + 448, + 266, + 83, + ): list([ + 166, + ]), + tuple( + 449, + 266, + 83, + ): list([ + 167, + ]), + tuple( + 449, + 267, + 84, + ): list([ + 168, + ]), + tuple( + 450, + 267, + 84, + ): list([ + 169, + ]), + tuple( + 450, + 268, + 85, + ): list([ + 170, + ]), + tuple( + 451, + 268, + 85, + ): list([ + 171, + ]), + tuple( + 451, + 269, + 86, + ): list([ + 172, + ]), + tuple( + 452, + 269, + 86, + ): list([ + 173, + ]), + tuple( + 452, + 270, + 87, + ): list([ + 174, + ]), + tuple( + 453, + 270, + 87, + ): list([ + 175, + ]), + tuple( + 456, + 273, + 90, + ): list([ + 181, + ]), + tuple( + 456, + 274, + 91, + ): list([ + 182, + ]), + tuple( + 457, + 274, + 91, + ): list([ + 183, + ]), + tuple( + 457, + 275, + 92, + ): list([ + 184, + ]), + tuple( + 458, + 275, + 92, + ): list([ + 185, + ]), + tuple( + 458, + 276, + 93, + ): list([ + 186, + ]), + tuple( + 459, + 276, + 93, + ): list([ + 187, + ]), + tuple( + 459, + 277, + 94, + ): list([ + 188, + ]), + tuple( + 460, + 277, + 94, + ): list([ + 189, + ]), + tuple( + 460, + 278, + 95, + ): list([ + 190, + ]), + tuple( + 461, + 278, + 95, + ): list([ + 191, + ]), + tuple( + 464, + 281, + 98, + ): list([ + 197, + ]), + tuple( + 464, + 282, + 99, + ): list([ + 198, + ]), + tuple( + 465, + 282, + 99, + ): list([ + 199, + ]), + tuple( + 465, + 283, + 100, + ): list([ + 200, + ]), + tuple( + 466, + 283, + 100, + ): list([ + 201, + ]), + tuple( + 466, + 284, + 101, + ): list([ + 202, + ]), + tuple( + 467, + 284, + 101, + ): list([ + 203, + ]), + tuple( + 467, + 285, + 102, + ): list([ + 204, + ]), + tuple( + 468, + 285, + 102, + ): list([ + 205, + ]), + tuple( + 468, + 286, + 103, + ): list([ + 206, + ]), + tuple( + 469, + 286, + 103, + ): list([ + 207, + ]), + tuple( + 472, + 289, + 106, + ): list([ + 213, + ]), + tuple( + 472, + 290, + 107, + ): list([ + 214, + ]), + tuple( + 473, + 290, + 107, + ): list([ + 215, + ]), + tuple( + 473, + 291, + 108, + ): list([ + 216, + ]), + tuple( + 474, + 291, + 108, + ): list([ + 217, + ]), + tuple( + 474, + 292, + 109, + ): list([ + 218, + ]), + tuple( + 475, + 292, + 109, + ): list([ + 219, + ]), + tuple( + 475, + 293, + 110, + ): list([ + 220, + ]), + tuple( + 476, + 293, + 110, + ): list([ + 221, + ]), + tuple( + 476, + 294, + 111, + ): list([ + 222, + ]), + tuple( + 477, + 294, + 111, + ): list([ + 223, + ]), + tuple( + 480, + 297, + 114, + ): list([ + 229, + ]), + tuple( + 480, + 298, + 115, + ): list([ + 230, + ]), + tuple( + 481, + 298, + 115, + ): list([ + 231, + ]), + tuple( + 481, + 299, + 116, + ): list([ + 232, + ]), + tuple( + 482, + 299, + 116, + ): list([ + 233, + ]), + tuple( + 482, + 300, + 117, + ): list([ + 234, + ]), + tuple( + 483, + 300, + 117, + ): list([ + 235, + ]), + tuple( + 483, + 301, + 118, + ): list([ + 236, + ]), + tuple( + 484, + 301, + 118, + ): list([ + 237, + ]), + tuple( + 484, + 302, + 119, + ): list([ + 238, + ]), + tuple( + 485, + 302, + 119, + ): list([ + 239, + ]), + tuple( + 488, + 305, + 122, + ): list([ + 245, + ]), + tuple( + 488, + 306, + 123, + ): list([ + 246, + ]), + tuple( + 489, + 306, + 123, + ): list([ + 247, + ]), + tuple( + 489, + 307, + 124, + ): list([ + 248, + ]), + tuple( + 490, + 307, + 124, + ): list([ + 249, + ]), + tuple( + 490, + 308, + 125, + ): list([ + 250, + ]), + tuple( + 491, + 308, + 125, + ): list([ + 251, + ]), + tuple( + 491, + 309, + 126, + ): list([ + 252, + ]), + tuple( + 492, + 309, + 126, + ): list([ + 253, + ]), + tuple( + 492, + 310, + 127, + ): list([ + 254, + ]), + tuple( + 493, + 310, + 127, + ): list([ + 255, + ]), + tuple( + 496, + 313, + 130, + ): list([ + 261, + ]), + tuple( + 496, + 314, + 131, + ): list([ + 262, + ]), + tuple( + 497, + 314, + 131, + ): list([ + 263, + ]), + tuple( + 497, + 315, + 132, + ): list([ + 264, + ]), + tuple( + 498, + 315, + 132, + ): list([ + 265, + ]), + tuple( + 498, + 316, + 133, + ): list([ + 266, + ]), + tuple( + 499, + 316, + 133, + ): list([ + 267, + ]), + tuple( + 499, + 317, + 134, + ): list([ + 268, + ]), + tuple( + 500, + 317, + 134, + ): list([ + 269, + ]), + tuple( + 500, + 318, + 135, + ): list([ + 270, + ]), + tuple( + 501, + 318, + 135, + ): list([ + 271, + ]), + tuple( + 504, + 321, + 138, + ): list([ + 277, + ]), + tuple( + 504, + 322, + 139, + ): list([ + 278, + ]), + tuple( + 505, + 322, + 139, + ): list([ + 279, + ]), + tuple( + 505, + 323, + 140, + ): list([ + 280, + ]), + tuple( + 506, + 323, + 140, + ): list([ + 281, + ]), + tuple( + 506, + 324, + 141, + ): list([ + 282, + ]), + tuple( + 507, + 324, + 141, + ): list([ + 283, + ]), + tuple( + 507, + 325, + 142, + ): list([ + 284, + ]), + tuple( + 508, + 325, + 142, + ): list([ + 285, + ]), + tuple( + 508, + 326, + 143, + ): list([ + 286, + ]), + tuple( + 509, + 326, + 143, + ): list([ + 287, + ]), + tuple( + 512, + 329, + 146, + ): list([ + 293, + ]), + tuple( + 512, + 330, + 147, + ): list([ + 294, + ]), + tuple( + 513, + 330, + 147, + ): list([ + 295, + ]), + tuple( + 513, + 331, + 148, + ): list([ + 296, + ]), + tuple( + 514, + 331, + 148, + ): list([ + 297, + ]), + tuple( + 514, + 332, + 149, + ): list([ + 298, + ]), + tuple( + 515, + 332, + 149, + ): list([ + 299, + ]), + tuple( + 515, + 333, + 150, + ): list([ + 300, + ]), + tuple( + 516, + 333, + 150, + ): list([ + 301, + ]), + tuple( + 516, + 334, + 151, + ): list([ + 302, + ]), + tuple( + 517, + 334, + 151, + ): list([ + 303, + ]), + tuple( + 520, + 337, + 154, + ): list([ + 309, + ]), + tuple( + 520, + 338, + 155, + ): list([ + 310, + ]), + tuple( + 521, + 338, + 155, + ): list([ + 311, + ]), + tuple( + 521, + 339, + 156, + ): list([ + 312, + ]), + tuple( + 522, + 339, + 156, + ): list([ + 313, + ]), + tuple( + 522, + 340, + 157, + ): list([ + 314, + ]), + tuple( + 523, + 340, + 157, + ): list([ + 315, + ]), + tuple( + 523, + 341, + 158, + ): list([ + 316, + ]), + tuple( + 524, + 341, + 158, + ): list([ + 317, + ]), + tuple( + 524, + 342, + 159, + ): list([ + 318, + ]), + tuple( + 525, + 342, + 159, + ): list([ + 319, + ]), + tuple( + 528, + 345, + 162, + ): list([ + 325, + ]), + tuple( + 528, + 346, + 163, + ): list([ + 326, + ]), + tuple( + 529, + 346, + 163, + ): list([ + 327, + ]), + tuple( + 529, + 347, + 164, + ): list([ + 328, + ]), + tuple( + 530, + 347, + 164, + ): list([ + 329, + ]), + tuple( + 530, + 348, + 165, + ): list([ + 330, + ]), + tuple( + 531, + 348, + 165, + ): list([ + 331, + ]), + tuple( + 531, + 349, + 166, + ): list([ + 332, + ]), + tuple( + 532, + 349, + 166, + ): list([ + 333, + ]), + tuple( + 532, + 350, + 167, + ): list([ + 334, + ]), + tuple( + 533, + 350, + 167, + ): list([ + 335, + ]), + tuple( + 536, + 353, + 170, + ): list([ + 341, + ]), + tuple( + 536, + 354, + 171, + ): list([ + 342, + ]), + tuple( + 537, + 354, + 171, + ): list([ + 343, + ]), + tuple( + 537, + 355, + 172, + ): list([ + 344, + ]), + tuple( + 538, + 355, + 172, + ): list([ + 345, + ]), + tuple( + 538, + 356, + 173, + ): list([ + 346, + ]), + tuple( + 539, + 356, + 173, + ): list([ + 347, + ]), + tuple( + 539, + 357, + 174, + ): list([ + 348, + ]), + tuple( + 540, + 357, + 174, + ): list([ + 349, + ]), + tuple( + 540, + 358, + 175, + ): list([ + 350, + ]), + tuple( + 541, + 358, + 175, + ): list([ + 351, + ]), + tuple( + 544, + 361, + 178, + ): list([ + 357, + ]), + tuple( + 544, + 362, + 179, + ): list([ + 358, + ]), + tuple( + 545, + 362, + 179, + ): list([ + 359, + ]), + tuple( + 545, + 363, + 180, + ): list([ + 360, + ]), + tuple( + 546, + 363, + 180, + ): list([ + 361, + ]), + tuple( + 546, + 364, + 181, + ): list([ + 362, + ]), + tuple( + 547, + 364, + 181, + ): list([ + 363, + ]), + tuple( + 547, + 365, + 182, + ): list([ + 364, + 365, + ]), + }) +# --- +# name: test_snapshot_cohorts[ERA5Google] + dict({ + tuple( + np.int64(0), + np.int64(1), + np.int64(2), + np.int64(3), + np.int64(124), + np.int64(125), + np.int64(126), + np.int64(127), + np.int64(236), + np.int64(237), + np.int64(238), + np.int64(239), + np.int64(360), + np.int64(361), + np.int64(362), + np.int64(363), + np.int64(480), + np.int64(481), + np.int64(482), + np.int64(483), + np.int64(604), + np.int64(605), + np.int64(606), + np.int64(607), + np.int64(724), + np.int64(725), + np.int64(726), + np.int64(727), + np.int64(848), + np.int64(849), + np.int64(850), + np.int64(851), + ): list([ + 0, + ]), + tuple( + np.int64(4), + np.int64(5), + np.int64(6), + np.int64(7), + np.int64(128), + np.int64(129), + np.int64(130), + np.int64(131), + np.int64(240), + np.int64(241), + np.int64(242), + np.int64(243), + np.int64(364), + np.int64(365), + np.int64(366), + np.int64(367), + np.int64(484), + np.int64(485), + np.int64(486), + np.int64(487), + np.int64(608), + np.int64(609), + np.int64(610), + np.int64(611), + np.int64(728), + np.int64(729), + np.int64(730), + np.int64(731), + np.int64(852), + np.int64(853), + np.int64(854), + np.int64(855), + ): list([ + 1, + ]), + tuple( + np.int64(8), + np.int64(9), + np.int64(10), + np.int64(11), + np.int64(132), + np.int64(133), + np.int64(134), + np.int64(135), + np.int64(244), + np.int64(245), + np.int64(246), + np.int64(247), + np.int64(368), + np.int64(369), + np.int64(370), + np.int64(371), + np.int64(488), + np.int64(489), + np.int64(490), + np.int64(491), + np.int64(612), + np.int64(613), + np.int64(614), + np.int64(615), + np.int64(732), + np.int64(733), + np.int64(734), + np.int64(735), + np.int64(856), + np.int64(857), + np.int64(858), + np.int64(859), + ): list([ + 2, + ]), + tuple( + np.int64(12), + np.int64(13), + np.int64(14), + np.int64(15), + np.int64(136), + np.int64(137), + np.int64(138), + np.int64(139), + np.int64(248), + np.int64(249), + np.int64(250), + np.int64(251), + np.int64(372), + np.int64(373), + np.int64(374), + np.int64(375), + np.int64(492), + np.int64(493), + np.int64(494), + np.int64(495), + np.int64(616), + np.int64(617), + np.int64(618), + np.int64(619), + np.int64(736), + np.int64(737), + np.int64(738), + np.int64(739), + np.int64(860), + np.int64(861), + np.int64(862), + np.int64(863), + ): list([ + 3, + ]), + tuple( + np.int64(16), + np.int64(17), + np.int64(18), + np.int64(19), + np.int64(140), + np.int64(141), + np.int64(142), + np.int64(143), + np.int64(252), + np.int64(253), + np.int64(254), + np.int64(255), + np.int64(376), + np.int64(377), + np.int64(378), + np.int64(379), + np.int64(496), + np.int64(497), + np.int64(498), + np.int64(499), + np.int64(620), + np.int64(621), + np.int64(622), + np.int64(623), + np.int64(740), + np.int64(741), + np.int64(742), + np.int64(743), + np.int64(864), + np.int64(865), + np.int64(866), + np.int64(867), + ): list([ + 4, + ]), + tuple( + np.int64(20), + np.int64(21), + np.int64(22), + np.int64(23), + np.int64(144), + np.int64(145), + np.int64(146), + np.int64(147), + np.int64(256), + np.int64(257), + np.int64(258), + np.int64(259), + np.int64(380), + np.int64(381), + np.int64(382), + np.int64(383), + np.int64(500), + np.int64(501), + np.int64(502), + np.int64(503), + np.int64(624), + np.int64(625), + np.int64(626), + np.int64(627), + np.int64(744), + np.int64(745), + np.int64(746), + np.int64(747), + np.int64(868), + np.int64(869), + np.int64(870), + np.int64(871), + ): list([ + 5, + ]), + tuple( + np.int64(24), + np.int64(25), + np.int64(26), + np.int64(27), + np.int64(148), + np.int64(149), + np.int64(150), + np.int64(151), + np.int64(260), + np.int64(261), + np.int64(262), + np.int64(263), + np.int64(384), + np.int64(385), + np.int64(386), + np.int64(387), + np.int64(504), + np.int64(505), + np.int64(506), + np.int64(507), + np.int64(628), + np.int64(629), + np.int64(630), + np.int64(631), + np.int64(748), + np.int64(749), + np.int64(750), + np.int64(751), + np.int64(872), + np.int64(873), + np.int64(874), + np.int64(875), + ): list([ + 6, + ]), + tuple( + np.int64(28), + np.int64(29), + np.int64(30), + np.int64(31), + np.int64(152), + np.int64(153), + np.int64(154), + np.int64(155), + np.int64(264), + np.int64(265), + np.int64(266), + np.int64(267), + np.int64(388), + np.int64(389), + np.int64(390), + np.int64(391), + np.int64(508), + np.int64(509), + np.int64(510), + np.int64(511), + np.int64(632), + np.int64(633), + np.int64(634), + np.int64(635), + np.int64(752), + np.int64(753), + np.int64(754), + np.int64(755), + np.int64(876), + np.int64(877), + np.int64(878), + np.int64(879), + ): list([ + 7, + ]), + tuple( + np.int64(32), + np.int64(33), + np.int64(34), + np.int64(35), + np.int64(156), + np.int64(157), + np.int64(158), + np.int64(159), + np.int64(268), + np.int64(269), + np.int64(270), + np.int64(271), + np.int64(392), + np.int64(393), + np.int64(394), + np.int64(395), + np.int64(512), + np.int64(513), + np.int64(514), + np.int64(515), + np.int64(636), + np.int64(637), + np.int64(638), + np.int64(639), + np.int64(756), + np.int64(757), + np.int64(758), + np.int64(759), + np.int64(880), + np.int64(881), + np.int64(882), + np.int64(883), + ): list([ + 8, + ]), + tuple( + np.int64(36), + np.int64(37), + np.int64(38), + np.int64(39), + np.int64(160), + np.int64(161), + np.int64(162), + np.int64(163), + np.int64(272), + np.int64(273), + np.int64(274), + np.int64(275), + np.int64(396), + np.int64(397), + np.int64(398), + np.int64(399), + np.int64(516), + np.int64(517), + np.int64(518), + np.int64(519), + np.int64(640), + np.int64(641), + np.int64(642), + np.int64(643), + np.int64(760), + np.int64(761), + np.int64(762), + np.int64(763), + np.int64(884), + np.int64(885), + np.int64(886), + np.int64(887), + ): list([ + 9, + ]), + tuple( + np.int64(40), + np.int64(41), + np.int64(42), + np.int64(43), + np.int64(164), + np.int64(165), + np.int64(166), + np.int64(167), + np.int64(276), + np.int64(277), + np.int64(278), + np.int64(279), + np.int64(400), + np.int64(401), + np.int64(402), + np.int64(403), + np.int64(520), + np.int64(521), + np.int64(522), + np.int64(523), + np.int64(644), + np.int64(645), + np.int64(646), + np.int64(647), + np.int64(764), + np.int64(765), + np.int64(766), + np.int64(767), + np.int64(888), + np.int64(889), + np.int64(890), + np.int64(891), + ): list([ + 10, + ]), + tuple( + np.int64(44), + np.int64(45), + np.int64(46), + np.int64(47), + np.int64(168), + np.int64(169), + np.int64(170), + np.int64(171), + np.int64(280), + np.int64(281), + np.int64(282), + np.int64(283), + np.int64(404), + np.int64(405), + np.int64(406), + np.int64(407), + np.int64(524), + np.int64(525), + np.int64(526), + np.int64(527), + np.int64(648), + np.int64(649), + np.int64(650), + np.int64(651), + np.int64(768), + np.int64(769), + np.int64(770), + np.int64(771), + np.int64(892), + np.int64(893), + np.int64(894), + np.int64(895), + ): list([ + 11, + ]), + tuple( + np.int64(48), + np.int64(49), + np.int64(50), + np.int64(51), + np.int64(172), + np.int64(173), + np.int64(174), + np.int64(175), + np.int64(284), + np.int64(285), + np.int64(286), + np.int64(287), + np.int64(408), + np.int64(409), + np.int64(410), + np.int64(411), + np.int64(528), + np.int64(529), + np.int64(530), + np.int64(531), + np.int64(652), + np.int64(653), + np.int64(654), + np.int64(655), + np.int64(772), + np.int64(773), + np.int64(774), + np.int64(775), + np.int64(896), + np.int64(897), + np.int64(898), + np.int64(899), + ): list([ + 12, + ]), + tuple( + np.int64(52), + np.int64(53), + np.int64(54), + np.int64(55), + np.int64(176), + np.int64(177), + np.int64(178), + np.int64(179), + np.int64(288), + np.int64(289), + np.int64(290), + np.int64(291), + np.int64(412), + np.int64(413), + np.int64(414), + np.int64(415), + np.int64(532), + np.int64(533), + np.int64(534), + np.int64(535), + np.int64(656), + np.int64(657), + np.int64(658), + np.int64(659), + np.int64(776), + np.int64(777), + np.int64(778), + np.int64(779), + ): list([ + 13, + ]), + tuple( + np.int64(56), + np.int64(57), + np.int64(58), + np.int64(59), + np.int64(180), + np.int64(181), + np.int64(182), + np.int64(183), + np.int64(292), + np.int64(293), + np.int64(294), + np.int64(295), + np.int64(416), + np.int64(417), + np.int64(418), + np.int64(419), + np.int64(536), + np.int64(537), + np.int64(538), + np.int64(539), + np.int64(660), + np.int64(661), + np.int64(662), + np.int64(663), + np.int64(780), + np.int64(781), + np.int64(782), + np.int64(783), + ): list([ + 14, + ]), + tuple( + np.int64(60), + np.int64(61), + np.int64(62), + np.int64(63), + np.int64(184), + np.int64(185), + np.int64(186), + np.int64(187), + np.int64(296), + np.int64(297), + np.int64(298), + np.int64(299), + np.int64(420), + np.int64(421), + np.int64(422), + np.int64(423), + np.int64(540), + np.int64(541), + np.int64(542), + np.int64(543), + np.int64(664), + np.int64(665), + np.int64(666), + np.int64(667), + np.int64(784), + np.int64(785), + np.int64(786), + np.int64(787), + ): list([ + 15, + ]), + tuple( + np.int64(64), + np.int64(65), + np.int64(66), + np.int64(67), + np.int64(188), + np.int64(189), + np.int64(190), + np.int64(191), + np.int64(300), + np.int64(301), + np.int64(302), + np.int64(303), + np.int64(424), + np.int64(425), + np.int64(426), + np.int64(427), + np.int64(544), + np.int64(545), + np.int64(546), + np.int64(547), + np.int64(668), + np.int64(669), + np.int64(670), + np.int64(671), + np.int64(788), + np.int64(789), + np.int64(790), + np.int64(791), + ): list([ + 16, + ]), + tuple( + np.int64(68), + np.int64(69), + np.int64(70), + np.int64(71), + np.int64(192), + np.int64(193), + np.int64(194), + np.int64(195), + np.int64(304), + np.int64(305), + np.int64(306), + np.int64(307), + np.int64(428), + np.int64(429), + np.int64(430), + np.int64(431), + np.int64(548), + np.int64(549), + np.int64(550), + np.int64(551), + np.int64(672), + np.int64(673), + np.int64(674), + np.int64(675), + np.int64(792), + np.int64(793), + np.int64(794), + np.int64(795), + ): list([ + 17, + ]), + tuple( + np.int64(72), + np.int64(73), + np.int64(74), + np.int64(75), + np.int64(196), + np.int64(197), + np.int64(198), + np.int64(199), + np.int64(308), + np.int64(309), + np.int64(310), + np.int64(311), + np.int64(432), + np.int64(433), + np.int64(434), + np.int64(435), + np.int64(552), + np.int64(553), + np.int64(554), + np.int64(555), + np.int64(676), + np.int64(677), + np.int64(678), + np.int64(679), + np.int64(796), + np.int64(797), + np.int64(798), + np.int64(799), + ): list([ + 18, + ]), + tuple( + np.int64(76), + np.int64(77), + np.int64(78), + np.int64(79), + np.int64(200), + np.int64(201), + np.int64(202), + np.int64(203), + np.int64(312), + np.int64(313), + np.int64(314), + np.int64(315), + np.int64(436), + np.int64(437), + np.int64(438), + np.int64(439), + np.int64(556), + np.int64(557), + np.int64(558), + np.int64(559), + np.int64(680), + np.int64(681), + np.int64(682), + np.int64(683), + np.int64(800), + np.int64(801), + np.int64(802), + np.int64(803), + ): list([ + 19, + ]), + tuple( + np.int64(80), + np.int64(81), + np.int64(82), + np.int64(83), + np.int64(204), + np.int64(205), + np.int64(206), + np.int64(207), + np.int64(316), + np.int64(317), + np.int64(318), + np.int64(319), + np.int64(440), + np.int64(441), + np.int64(442), + np.int64(443), + np.int64(560), + np.int64(561), + np.int64(562), + np.int64(563), + np.int64(684), + np.int64(685), + np.int64(686), + np.int64(687), + np.int64(804), + np.int64(805), + np.int64(806), + np.int64(807), + ): list([ + 20, + ]), + tuple( + np.int64(84), + np.int64(85), + np.int64(86), + np.int64(87), + np.int64(208), + np.int64(209), + np.int64(210), + np.int64(211), + np.int64(320), + np.int64(321), + np.int64(322), + np.int64(323), + np.int64(444), + np.int64(445), + np.int64(446), + np.int64(447), + np.int64(564), + np.int64(565), + np.int64(566), + np.int64(567), + np.int64(688), + np.int64(689), + np.int64(690), + np.int64(691), + np.int64(808), + np.int64(809), + np.int64(810), + np.int64(811), + ): list([ + 21, + ]), + tuple( + np.int64(88), + np.int64(89), + np.int64(90), + np.int64(91), + np.int64(212), + np.int64(213), + np.int64(214), + np.int64(215), + np.int64(324), + np.int64(325), + np.int64(326), + np.int64(327), + np.int64(448), + np.int64(449), + np.int64(450), + np.int64(451), + np.int64(568), + np.int64(569), + np.int64(570), + np.int64(571), + np.int64(692), + np.int64(693), + np.int64(694), + np.int64(695), + np.int64(812), + np.int64(813), + np.int64(814), + np.int64(815), + ): list([ + 22, + ]), + tuple( + np.int64(92), + np.int64(93), + np.int64(94), + np.int64(95), + np.int64(216), + np.int64(217), + np.int64(218), + np.int64(219), + np.int64(328), + np.int64(329), + np.int64(330), + np.int64(331), + np.int64(452), + np.int64(453), + np.int64(454), + np.int64(455), + np.int64(572), + np.int64(573), + np.int64(574), + np.int64(575), + np.int64(696), + np.int64(697), + np.int64(698), + np.int64(699), + np.int64(816), + np.int64(817), + np.int64(818), + np.int64(819), + ): list([ + 23, + ]), + tuple( + np.int64(96), + np.int64(97), + np.int64(98), + np.int64(99), + np.int64(220), + np.int64(221), + np.int64(222), + np.int64(223), + np.int64(332), + np.int64(333), + np.int64(334), + np.int64(335), + np.int64(456), + np.int64(457), + np.int64(458), + np.int64(459), + np.int64(576), + np.int64(577), + np.int64(578), + np.int64(579), + np.int64(700), + np.int64(701), + np.int64(702), + np.int64(703), + np.int64(820), + np.int64(821), + np.int64(822), + np.int64(823), + ): list([ + 24, + ]), + tuple( + np.int64(100), + np.int64(101), + np.int64(102), + np.int64(103), + np.int64(224), + np.int64(225), + np.int64(226), + np.int64(227), + np.int64(336), + np.int64(337), + np.int64(338), + np.int64(339), + np.int64(460), + np.int64(461), + np.int64(462), + np.int64(463), + np.int64(580), + np.int64(581), + np.int64(582), + np.int64(583), + np.int64(704), + np.int64(705), + np.int64(706), + np.int64(707), + np.int64(824), + np.int64(825), + np.int64(826), + np.int64(827), + ): list([ + 25, + ]), + tuple( + np.int64(104), + np.int64(105), + np.int64(106), + np.int64(107), + np.int64(228), + np.int64(229), + np.int64(230), + np.int64(231), + np.int64(340), + np.int64(341), + np.int64(342), + np.int64(343), + np.int64(464), + np.int64(465), + np.int64(466), + np.int64(467), + np.int64(584), + np.int64(585), + np.int64(586), + np.int64(587), + np.int64(708), + np.int64(709), + np.int64(710), + np.int64(711), + np.int64(828), + np.int64(829), + np.int64(830), + np.int64(831), + ): list([ + 26, + ]), + tuple( + np.int64(108), + np.int64(109), + np.int64(110), + np.int64(111), + np.int64(232), + np.int64(233), + np.int64(234), + np.int64(235), + np.int64(344), + np.int64(345), + np.int64(346), + np.int64(347), + np.int64(468), + np.int64(469), + np.int64(470), + np.int64(471), + np.int64(588), + np.int64(589), + np.int64(590), + np.int64(591), + np.int64(712), + np.int64(713), + np.int64(714), + np.int64(715), + np.int64(832), + np.int64(833), + np.int64(834), + np.int64(835), + ): list([ + 27, + ]), + tuple( + np.int64(112), + np.int64(113), + np.int64(114), + np.int64(115), + np.int64(348), + np.int64(349), + np.int64(350), + np.int64(351), + np.int64(472), + np.int64(473), + np.int64(474), + np.int64(475), + np.int64(592), + np.int64(593), + np.int64(594), + np.int64(595), + np.int64(716), + np.int64(717), + np.int64(718), + np.int64(719), + np.int64(836), + np.int64(837), + np.int64(838), + np.int64(839), + ): list([ + 28, + ]), + tuple( + np.int64(116), + np.int64(117), + np.int64(118), + np.int64(119), + np.int64(352), + np.int64(353), + np.int64(354), + np.int64(355), + np.int64(476), + np.int64(477), + np.int64(478), + np.int64(479), + np.int64(596), + np.int64(597), + np.int64(598), + np.int64(599), + np.int64(720), + np.int64(721), + np.int64(722), + np.int64(723), + np.int64(840), + np.int64(841), + np.int64(842), + np.int64(843), + ): list([ + 29, + ]), + tuple( + np.int64(120), + np.int64(121), + np.int64(122), + np.int64(123), + np.int64(356), + np.int64(357), + np.int64(358), + np.int64(359), + np.int64(600), + np.int64(601), + np.int64(602), + np.int64(603), + np.int64(844), + np.int64(845), + np.int64(846), + np.int64(847), + ): list([ + 30, + ]), + }) +# --- +# name: test_snapshot_cohorts[ERA5MonthHourRechunked] + dict({ + tuple( + 0, + 1, + 2, + 3, + 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, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + ): list([ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + ]), + tuple( + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + ): list([ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + ]), + tuple( + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 122, + 123, + 124, + 125, + 126, + 127, + ): list([ + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + ]), + tuple( + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348, + 349, + 350, + ): list([ + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + ]), + tuple( + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562, + 168, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + ): list([ + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + ]), + tuple( + 183, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 562, + 563, + 564, + 565, + 566, + 567, + 568, + 569, + 570, + 571, + 572, + 573, + 574, + 575, + 576, + 577, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + ): list([ + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + ]), + tuple( + 256, + 257, + 258, + 61, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + ): list([ + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + ]), + tuple( + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + 468, + 469, + 470, + 76, + ): list([ + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + ]), + tuple( + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + ): list([ + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + ]), + tuple( + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, + ): list([ + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + ]), + tuple( + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 577, + 578, + 579, + 580, + 581, + 582, + 583, + 584, + 585, + 586, + 587, + 588, + 589, + 590, + 591, + 592, + 593, + 380, + 381, + 382, + 383, + ): list([ + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + ]), + tuple( + 512, + 513, + 514, + 515, + 516, + 505, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 506, + 507, + 503, + 122, + 504, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 501, + 502, + 508, + 509, + 510, + 511, + ): list([ + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + ]), + }) +# --- +# name: test_snapshot_cohorts[ERA5MonthHour] + dict({ + tuple( + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + ): list([ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + ]), + tuple( + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, + 122, + 123, + 124, + 125, + 126, + 127, + ): list([ + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + ]), + tuple( + 256, + 257, + 258, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + ): list([ + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + ]), + tuple( + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + ): list([ + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + ]), + tuple( + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + 468, + 469, + 470, + 471, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + ): list([ + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + ]), + tuple( + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + ): list([ + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + ]), + tuple( + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 381, + 382, + 383, + ): list([ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + ]), + tuple( + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + ): list([ + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + ]), + tuple( + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + ): list([ + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + ]), + tuple( + 512, + 513, + 514, + 515, + 516, + 517, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + ): list([ + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + ]), + tuple( + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348, + 349, + ): list([ + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + ]), + tuple( + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + ): list([ + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + ]), + }) +# --- +# name: test_snapshot_cohorts[NWMMidwest] + dict({ + tuple( + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 26, + 27, + 39, + 52, + 65, + ): list([ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 25, + 26, + 27, + 29, + ]), + tuple( + 2, + 3, + 5, + 6, + 10, + 12, + 14, + 15, + 52, + 26, + 27, + ): list([ + 24, + 28, + ]), + tuple( + 2, + 4, + 6, + 14, + 15, + 26, + 27, + ): list([ + 30, + ]), + tuple( + 3, + 4, + 5, + 7, + 39, + 40, + 8, + 9, + 14, + 15, + 16, + 26, + 27, + 28, + ): list([ + 32, + 33, + 35, + 36, + 37, + 38, + 40, + 46, + 51, + ]), + tuple( + 3, + 4, + 6, + 15, + 16, + 17, + 27, + ): list([ + 41, + ]), + tuple( + 3, + 6, + 7, + 14, + 15, + 26, + 27, + ): list([ + 31, + ]), + tuple( + 4, + 5, + 6, + 8, + 40, + 9, + 15, + 17, + 18, + 27, + 28, + ): list([ + 49, + 53, + 56, + 57, + ]), + tuple( + 4, + 10, + 11, + 15, + 17, + 52, + 53, + ): list([ + 45, + ]), + tuple( + 5, + 6, + 7, + 10, + 11, + 12, + 15, + 16, + 52, + 53, + 27, + 28, + ): list([ + 43, + 47, + 50, + ]), + tuple( + 6, + 7, + 40, + 9, + 41, + 8, + 16, + 17, + 19, + 20, + 21, + 27, + 28, + ): list([ + 44, + 54, + 55, + 58, + 60, + 63, + 66, + 69, + 72, + 80, + ]), + tuple( + 6, + 10, + 11, + 19, + 53, + 28, + ): list([ + 62, + ]), + tuple( + 6, + 39, + 40, + 9, + 15, + 16, + 27, + ): list([ + 39, + ]), + tuple( + 7, + 8, + 40, + 11, + 15, + 16, + 17, + 52, + 53, + ): list([ + 48, + ]), + tuple( + 7, + 40, + 9, + 10, + 8, + 41, + 11, + 16, + 17, + 18, + 53, + 28, + 29, + ): list([ + 59, + 61, + 64, + 65, + 67, + ]), + tuple( + 8, + 41, + 10, + 11, + 17, + 21, + 53, + 54, + ): list([ + 79, + ]), + tuple( + 8, + 41, + 21, + ): list([ + 75, + ]), + tuple( + 9, + 10, + 41, + 22, + 23, + 54, + ): list([ + 87, + ]), + tuple( + 9, + 41, + 17, + 18, + 22, + 30, + ): list([ + 84, + ]), + tuple( + 9, + 41, + 42, + 19, + 21, + 22, + 29, + ): list([ + 82, + 86, + 106, + ]), + tuple( + 10, + 11, + 54, + 23, + 24, + ): list([ + 93, + ]), + tuple( + 10, + 12, + 18, + 19, + 20, + 53, + 54, + 28, + 29, + ): list([ + 76, + 85, + ]), + tuple( + 11, + 19, + 54, + 24, + 29, + 30, + ): list([ + 99, + ]), + tuple( + 16, + 3, + 15, + ): list([ + 34, + ]), + tuple( + 17, + 18, + 30, + 31, + ): list([ + 92, + ]), + tuple( + 24, + 54, + 31, + ): list([ + 111, + ]), + tuple( + 25, + 67, + 54, + ): list([ + 120, + ]), + tuple( + 32, + 33, + 34, + 35, + 44, + 45, + 55, + 24, + 25, + 56, + ): list([ + 143, + 145, + 149, + 154, + 156, + 160, + 163, + 164, + 166, + 169, + 170, + 175, + 183, + 190, + ]), + tuple( + 32, + 33, + 34, + 36, + 37, + 45, + 46, + 47, + 57, + ): list([ + 165, + 172, + 173, + 178, + 179, + 180, + 185, + ]), + tuple( + 32, + 33, + 34, + 44, + 23, + 55, + 24, + 56, + ): list([ + 121, + 140, + 144, + 151, + 153, + 155, + ]), + tuple( + 32, + 33, + 41, + 42, + 23, + 55, + 54, + 22, + 24, + 25, + 31, + ): list([ + 101, + 113, + 116, + 124, + 125, + 129, + 130, + 131, + ]), + tuple( + 32, + 33, + 42, + 19, + 20, + 22, + 30, + 31, + ): list([ + 110, + 122, + 159, + ]), + tuple( + 32, + 33, + 45, + ): list([ + 150, + 158, + ]), + tuple( + 32, + 33, + 55, + 24, + 31, + ): list([ + 137, + ]), + tuple( + 32, + 41, + 42, + 43, + 19, + 20, + 21, + 22, + 23, + 54, + 24, + 29, + 30, + 31, + ): list([ + 77, + 90, + 94, + 95, + 98, + 100, + 104, + 107, + 108, + 109, + 112, + 115, + 117, + ]), + tuple( + 32, + 42, + 43, + 20, + 21, + 31, + ): list([ + 123, + ]), + tuple( + 32, + 43, + 22, + ): list([ + 139, + ]), + tuple( + 33, + 34, + 35, + 42, + 43, + 44, + 20, + 21, + 22, + ): list([ + 119, + 128, + 132, + 138, + 141, + 147, + 152, + ]), + tuple( + 33, + 43, + 44, + 20, + 30, + 31, + ): list([ + 118, + 126, + 135, + 142, + ]), + tuple( + 34, + 46, + 47, + ): list([ + 187, + 193, + ]), + tuple( + 35, + 36, + 37, + 38, + 44, + 45, + 46, + 57, + 58, + 59, + ): list([ + 168, + 177, + 186, + 191, + 195, + 199, + 203, + 204, + 213, + ]), + tuple( + 35, + 36, + 43, + 44, + 22, + 23, + 56, + 57, + ): list([ + 146, + 157, + 162, + ]), + tuple( + 35, + 36, + 46, + 48, + 49, + 59, + ): list([ + 200, + 205, + 212, + 219, + ]), + tuple( + 35, + 37, + 44, + 24, + 57, + 56, + ): list([ + 171, + 176, + 192, + 198, + ]), + tuple( + 35, + 38, + 45, + 56, + 25, + 57, + ): list([ + 181, + ]), + tuple( + 36, + 37, + 23, + 24, + 57, + 56, + ): list([ + 167, + ]), + tuple( + 36, + 37, + 38, + 46, + 47, + 48, + 57, + 58, + ): list([ + 188, + 201, + 208, + 211, + 217, + 223, + ]), + tuple( + 36, + 37, + 47, + 58, + 59, + ): list([ + 197, + 206, + 210, + 216, + 221, + ]), + tuple( + 36, + 37, + 49, + 50, + 59, + ): list([ + 224, + 230, + 234, + ]), + tuple( + 37, + 49, + 58, + 59, + 60, + ): list([ + 225, + ]), + tuple( + 38, + 71, + 72, + 58, + 59, + ): list([ + 218, + 226, + 231, + 237, + ]), + tuple( + 38, + 72, + 73, + 51, + 59, + 60, + ): list([ + 245, + 252, + 260, + 267, + ]), + tuple( + 39, + 40, + 9, + 10, + 52, + 53, + ): list([ + 42, + ]), + tuple( + 40, + 9, + 10, + 41, + 53, + 54, + ): list([ + 74, + ]), + tuple( + 40, + 9, + 41, + 12, + 18, + 19, + 53, + 28, + 29, + ): list([ + 68, + ]), + tuple( + 40, + 9, + 41, + 16, + 17, + 18, + 29, + 30, + ): list([ + 71, + 78, + ]), + tuple( + 41, + 10, + 18, + 19, + 21, + 54, + 23, + 29, + 30, + ): list([ + 73, + 89, + 91, + ]), + tuple( + 41, + 11, + 18, + 20, + 53, + 54, + 21, + 24, + 29, + 30, + ): list([ + 81, + 83, + 96, + ]), + tuple( + 41, + 18, + 22, + 30, + 31, + ): list([ + 97, + 103, + ]), + tuple( + 42, + 43, + 20, + 21, + 54, + 24, + ): list([ + 114, + ]), + tuple( + 42, + 43, + 23, + 22, + 55, + 24, + 56, + ): list([ + 127, + 136, + ]), + tuple( + 43, + 23, + 21, + 55, + 24, + ): list([ + 133, + ]), + tuple( + 46, + 47, + 48, + 49, + 50, + 59, + 60, + ): list([ + 194, + 202, + 209, + 214, + 215, + 220, + 222, + 227, + 228, + 229, + 232, + 233, + 235, + 236, + 241, + 243, + ]), + tuple( + 48, + 49, + 50, + 61, + 62, + 63, + ): list([ + 253, + 254, + 255, + 258, + 259, + 261, + 263, + 264, + 265, + 266, + 269, + 270, + 271, + 274, + 275, + 276, + 279, + 280, + 283, + 284, + 287, + 290, + ]), + tuple( + 48, + 49, + 61, + ): list([ + 242, + 249, + ]), + tuple( + 49, + 50, + 59, + 60, + ): list([ + 238, + 239, + 244, + 246, + 247, + 250, + 251, + 257, + ]), + tuple( + 49, + 51, + 59, + 60, + 61, + ): list([ + 248, + 256, + 262, + ]), + tuple( + 57, + 36, + 37, + ): list([ + 182, + 189, + ]), + tuple( + 59, + 51, + 38, + ): list([ + 240, + ]), + tuple( + 64, + 74, + 75, + 51, + 61, + 62, + ): list([ + 268, + 272, + 273, + 277, + 278, + 281, + ]), + tuple( + 64, + 75, + 76, + 62, + 63, + ): list([ + 282, + 285, + 286, + 288, + 289, + 291, + 292, + 293, + 294, + ]), + tuple( + 64, + 77, + ): list([ + 295, + 296, + ]), + tuple( + 65, + 66, + 12, + 52, + 53, + ): list([ + 52, + 70, + ]), + tuple( + 66, + 67, + 12, + 53, + 54, + ): list([ + 88, + ]), + tuple( + 67, + 42, + 12, + 19, + 21, + 54, + 25, + 30, + ): list([ + 102, + 105, + ]), + tuple( + 68, + 69, + 55, + 56, + 25, + ): list([ + 134, + 148, + 161, + ]), + tuple( + 69, + 38, + 70, + 56, + 25, + 57, + ): list([ + 174, + 184, + 196, + 207, + ]), + }) +# --- +# name: test_snapshot_cohorts[OISST] + dict({ + tuple( + 0, + 255, + 912, + 145, + 401, + 657, + 1168, + 1424, + 1022, + 146, + 913, + 767, + 1169, + 1278, + 1314, + 547, + 36, + 292, + 803, + 1059, + 1315, + 548, + 693, + 182, + 438, + 949, + 1205, + 694, + 839, + 72, + 328, + 584, + 1095, + 1351, + 73, + 840, + 985, + 474, + 218, + 730, + 1241, + 219, + 986, + 475, + 1242, + 1387, + 620, + 109, + 365, + 876, + 1132, + 621, + 1388, + 766, + 511, + ): list([ + 241, + 242, + 243, + 244, + 245, + ]), + tuple( + 0, + 255, + 1424, + 657, + 146, + 402, + 767, + 913, + 1169, + 1023, + 803, + 36, + 292, + 548, + 1059, + 1315, + 949, + 182, + 438, + 694, + 1205, + 1351, + 584, + 73, + 329, + 840, + 1096, + 730, + 475, + 219, + 986, + 1242, + 876, + 109, + 365, + 621, + 1132, + 1388, + 1278, + 511, + ): list([ + 246, + ]), + tuple( + 0, + 256, + 512, + 913, + 146, + 402, + 658, + 1169, + 1425, + 1023, + 1059, + 292, + 37, + 548, + 804, + 1279, + 1315, + 694, + 439, + 183, + 950, + 1206, + 840, + 73, + 329, + 585, + 1096, + 1352, + 986, + 475, + 219, + 731, + 1242, + 1132, + 365, + 110, + 621, + 877, + 1388, + 767, + ): list([ + 250, + ]), + tuple( + 0, + 256, + 512, + 913, + 146, + 402, + 658, + 1169, + 1425, + 1023, + 1279, + 548, + 37, + 293, + 804, + 1060, + 1315, + 694, + 439, + 183, + 950, + 1206, + 840, + 73, + 329, + 585, + 1096, + 1352, + 986, + 475, + 219, + 731, + 1242, + 1388, + 621, + 110, + 366, + 877, + 1133, + 767, + ): list([ + 251, + ]), + tuple( + 0, + 256, + 512, + 1169, + 402, + 147, + 658, + 914, + 1425, + 1023, + 1279, + 548, + 37, + 293, + 804, + 1060, + 1315, + 694, + 439, + 183, + 950, + 1206, + 840, + 73, + 329, + 585, + 1096, + 1352, + 1242, + 475, + 220, + 731, + 987, + 1388, + 621, + 110, + 366, + 877, + 1133, + 767, + ): list([ + 252, + ]), + tuple( + 0, + 256, + 913, + 146, + 402, + 658, + 767, + 1169, + 1425, + 1023, + 1059, + 292, + 37, + 548, + 804, + 1315, + 1205, + 438, + 183, + 694, + 950, + 840, + 73, + 329, + 585, + 1096, + 1352, + 986, + 475, + 219, + 731, + 1242, + 1132, + 365, + 110, + 621, + 877, + 1388, + 1278, + 511, + ): list([ + 249, + ]), + tuple( + 0, + 256, + 1424, + 657, + 146, + 402, + 767, + 913, + 1169, + 1023, + 803, + 36, + 292, + 548, + 1059, + 1315, + 1205, + 438, + 183, + 694, + 950, + 1351, + 584, + 73, + 329, + 840, + 1096, + 730, + 475, + 219, + 986, + 1242, + 1132, + 109, + 365, + 621, + 877, + 1388, + 1278, + 511, + ): list([ + 247, + ]), + tuple( + 0, + 256, + 1424, + 657, + 146, + 402, + 767, + 913, + 1169, + 1023, + 1059, + 292, + 37, + 548, + 804, + 1315, + 1205, + 438, + 183, + 694, + 950, + 1351, + 584, + 73, + 329, + 840, + 1096, + 986, + 475, + 219, + 731, + 1242, + 1132, + 365, + 110, + 621, + 877, + 1388, + 1278, + 511, + ): list([ + 248, + ]), + tuple( + 128, + 383, + 529, + 18, + 274, + 785, + 1041, + 1297, + 895, + 1406, + 931, + 164, + 420, + 676, + 1187, + 1443, + 1077, + 310, + 55, + 566, + 822, + 1333, + 1223, + 456, + 201, + 712, + 968, + 858, + 347, + 603, + 91, + 1114, + 1370, + 1004, + 237, + 493, + 749, + 1260, + 1150, + 639, + ): list([ + 64, + ]), + tuple( + 128, + 383, + 785, + 18, + 274, + 530, + 1041, + 1297, + 895, + 1151, + 931, + 164, + 420, + 676, + 1187, + 1443, + 1077, + 310, + 55, + 566, + 822, + 1333, + 712, + 201, + 457, + 968, + 1224, + 858, + 347, + 603, + 91, + 1114, + 1370, + 1004, + 237, + 493, + 749, + 1260, + 1406, + 639, + ): list([ + 65, + ]), + tuple( + 128, + 383, + 1296, + 529, + 18, + 274, + 785, + 1041, + 895, + 1406, + 675, + 164, + 420, + 931, + 1187, + 1442, + 821, + 54, + 310, + 566, + 1077, + 1333, + 1223, + 456, + 201, + 712, + 968, + 1369, + 602, + 347, + 91, + 858, + 1114, + 748, + 237, + 493, + 1004, + 1260, + 1150, + 639, + ): list([ + 62, + ]), + tuple( + 128, + 383, + 1296, + 529, + 18, + 274, + 785, + 1041, + 895, + 1406, + 675, + 164, + 420, + 931, + 1187, + 1443, + 1077, + 310, + 55, + 566, + 822, + 1333, + 1223, + 456, + 201, + 712, + 968, + 1369, + 602, + 347, + 91, + 858, + 1114, + 1004, + 237, + 493, + 749, + 1260, + 1150, + 639, + ): list([ + 63, + ]), + tuple( + 128, + 384, + 640, + 1041, + 274, + 19, + 530, + 786, + 1297, + 1151, + 1187, + 420, + 165, + 676, + 932, + 1407, + 1443, + 822, + 567, + 55, + 311, + 1078, + 1334, + 968, + 201, + 457, + 713, + 1224, + 1114, + 603, + 347, + 92, + 859, + 1370, + 1260, + 493, + 238, + 749, + 1005, + 895, + ): list([ + 69, + ]), + tuple( + 128, + 384, + 640, + 1041, + 274, + 19, + 530, + 786, + 1297, + 1151, + 1443, + 676, + 165, + 421, + 932, + 1188, + 1407, + 822, + 567, + 55, + 311, + 1078, + 1334, + 968, + 201, + 457, + 713, + 1224, + 1114, + 603, + 347, + 92, + 859, + 1370, + 749, + 238, + 494, + 1005, + 1261, + 895, + ): list([ + 70, + ]), + tuple( + 128, + 384, + 640, + 1297, + 530, + 19, + 275, + 786, + 1042, + 1151, + 1443, + 676, + 165, + 421, + 932, + 1188, + 1407, + 822, + 567, + 55, + 311, + 1078, + 1334, + 968, + 201, + 457, + 713, + 1224, + 1370, + 603, + 348, + 92, + 859, + 1115, + 749, + 238, + 494, + 1005, + 1261, + 895, + ): list([ + 71, + ]), + tuple( + 128, + 384, + 785, + 18, + 274, + 530, + 1041, + 1297, + 895, + 1151, + 931, + 164, + 420, + 676, + 1187, + 1443, + 1333, + 566, + 55, + 311, + 822, + 1078, + 712, + 201, + 457, + 968, + 1224, + 858, + 347, + 603, + 91, + 1114, + 1370, + 1260, + 237, + 493, + 749, + 1005, + 1406, + 639, + ): list([ + 66, + ]), + tuple( + 128, + 384, + 785, + 18, + 274, + 530, + 1041, + 1297, + 895, + 1151, + 1187, + 420, + 165, + 676, + 932, + 1443, + 1333, + 566, + 55, + 311, + 822, + 1078, + 712, + 201, + 457, + 968, + 1224, + 1114, + 347, + 603, + 91, + 859, + 1370, + 1260, + 493, + 238, + 749, + 1005, + 1406, + 639, + ): list([ + 67, + ]), + tuple( + 128, + 384, + 1041, + 274, + 19, + 530, + 786, + 1297, + 895, + 1151, + 1187, + 420, + 165, + 676, + 932, + 1443, + 1333, + 566, + 55, + 311, + 822, + 1078, + 968, + 201, + 457, + 713, + 1224, + 1114, + 603, + 347, + 92, + 859, + 1370, + 1260, + 493, + 238, + 749, + 1005, + 1406, + 639, + ): list([ + 68, + ]), + tuple( + 255, + 912, + 145, + 401, + 657, + 1168, + 1424, + 1022, + 1278, + 1058, + 291, + 36, + 547, + 803, + 1314, + 693, + 182, + 438, + 949, + 1205, + 839, + 72, + 328, + 584, + 1095, + 1351, + 985, + 474, + 218, + 730, + 1241, + 1131, + 364, + 109, + 620, + 876, + 1387, + 766, + 511, + ): list([ + 240, + ]), + tuple( + 256, + 1, + 512, + 768, + 1024, + 1425, + 658, + 147, + 403, + 914, + 1170, + 804, + 37, + 293, + 549, + 1060, + 1316, + 950, + 439, + 183, + 695, + 1206, + 1352, + 585, + 74, + 330, + 841, + 1097, + 731, + 476, + 220, + 987, + 1243, + 877, + 110, + 366, + 622, + 1133, + 1389, + 1279, + ): list([ + 256, + ]), + tuple( + 256, + 1, + 512, + 768, + 1169, + 402, + 147, + 658, + 914, + 1425, + 1279, + 548, + 37, + 293, + 804, + 1060, + 1315, + 694, + 439, + 183, + 950, + 1206, + 1096, + 329, + 74, + 585, + 841, + 1352, + 1242, + 475, + 220, + 731, + 987, + 1388, + 621, + 110, + 366, + 877, + 1133, + 1023, + ): list([ + 253, + ]), + tuple( + 256, + 1, + 512, + 768, + 1169, + 402, + 147, + 658, + 914, + 1425, + 1279, + 548, + 37, + 293, + 804, + 1060, + 1316, + 950, + 439, + 183, + 695, + 1206, + 1096, + 329, + 74, + 585, + 841, + 1352, + 1242, + 475, + 220, + 731, + 987, + 877, + 110, + 366, + 622, + 1133, + 1389, + 1023, + ): list([ + 254, + ]), + tuple( + 256, + 1, + 512, + 768, + 1425, + 402, + 147, + 658, + 914, + 1170, + 1279, + 804, + 37, + 293, + 549, + 1060, + 1316, + 950, + 439, + 183, + 695, + 1206, + 1096, + 329, + 74, + 585, + 841, + 1352, + 731, + 476, + 220, + 987, + 1243, + 877, + 110, + 366, + 622, + 1133, + 1389, + 1023, + ): list([ + 255, + ]), + tuple( + 382, + 528, + 17, + 273, + 784, + 894, + 1040, + 1296, + 1405, + 930, + 163, + 419, + 675, + 1186, + 1442, + 1076, + 309, + 54, + 565, + 821, + 1332, + 1222, + 455, + 200, + 711, + 967, + 857, + 346, + 602, + 90, + 1113, + 1369, + 1003, + 236, + 492, + 748, + 1259, + 1149, + 638, + 127, + ): list([ + 54, + ]), + tuple( + 382, + 784, + 17, + 273, + 529, + 894, + 1040, + 1296, + 1150, + 930, + 163, + 419, + 675, + 1186, + 1442, + 1076, + 309, + 54, + 565, + 821, + 1332, + 711, + 200, + 456, + 967, + 1223, + 857, + 346, + 602, + 90, + 1113, + 1369, + 1003, + 236, + 492, + 748, + 1259, + 1405, + 638, + 127, + ): list([ + 55, + ]), + tuple( + 382, + 1295, + 528, + 17, + 273, + 784, + 894, + 1040, + 1405, + 674, + 163, + 419, + 930, + 1186, + 1442, + 1076, + 309, + 54, + 565, + 821, + 1332, + 1222, + 455, + 200, + 711, + 967, + 1368, + 601, + 346, + 90, + 857, + 1113, + 1003, + 236, + 492, + 748, + 1259, + 1149, + 638, + 127, + ): list([ + 53, + ]), + tuple( + 382, + 1295, + 528, + 17, + 273, + 784, + 894, + 1040, + 1405, + 1441, + 674, + 163, + 419, + 930, + 1186, + 820, + 53, + 309, + 565, + 1076, + 1332, + 1222, + 455, + 200, + 711, + 967, + 1368, + 601, + 346, + 90, + 857, + 1113, + 747, + 236, + 492, + 1003, + 1259, + 1149, + 638, + 127, + ): list([ + 52, + ]), + tuple( + 384, + 129, + 640, + 896, + 530, + 19, + 275, + 786, + 1042, + 1298, + 932, + 165, + 421, + 677, + 1188, + 1407, + 1444, + 1078, + 567, + 311, + 56, + 823, + 1334, + 1224, + 457, + 202, + 713, + 969, + 859, + 348, + 92, + 604, + 1115, + 1371, + 1005, + 238, + 494, + 750, + 1261, + 1151, + ): list([ + 74, + ]), + tuple( + 384, + 129, + 640, + 896, + 1152, + 786, + 19, + 275, + 531, + 1042, + 1298, + 932, + 165, + 421, + 677, + 1188, + 1444, + 1078, + 567, + 311, + 56, + 823, + 1334, + 713, + 202, + 458, + 969, + 1225, + 859, + 348, + 92, + 604, + 1115, + 1371, + 1005, + 238, + 494, + 750, + 1261, + 1407, + ): list([ + 75, + ]), + tuple( + 384, + 129, + 640, + 896, + 1297, + 530, + 19, + 275, + 786, + 1042, + 676, + 165, + 421, + 932, + 1188, + 1407, + 1444, + 1078, + 567, + 311, + 56, + 823, + 1334, + 1224, + 457, + 202, + 713, + 969, + 1370, + 603, + 348, + 92, + 859, + 1115, + 1005, + 238, + 494, + 750, + 1261, + 1151, + ): list([ + 73, + ]), + tuple( + 384, + 129, + 640, + 896, + 1297, + 530, + 19, + 275, + 786, + 1042, + 1443, + 676, + 165, + 421, + 932, + 1188, + 1407, + 822, + 567, + 55, + 311, + 1078, + 1334, + 1224, + 457, + 202, + 713, + 969, + 1370, + 603, + 348, + 92, + 859, + 1115, + 749, + 238, + 494, + 1005, + 1261, + 1151, + ): list([ + 72, + ]), + tuple( + 512, + 1, + 257, + 768, + 1024, + 914, + 147, + 403, + 659, + 1170, + 1426, + 1060, + 293, + 38, + 549, + 805, + 1316, + 1206, + 439, + 184, + 695, + 951, + 841, + 74, + 330, + 586, + 1097, + 1353, + 987, + 476, + 220, + 732, + 1243, + 1133, + 366, + 111, + 622, + 878, + 1389, + 1279, + ): list([ + 259, + ]), + tuple( + 512, + 1, + 257, + 768, + 1024, + 1425, + 658, + 147, + 403, + 914, + 1170, + 804, + 37, + 293, + 549, + 1060, + 1316, + 1206, + 439, + 184, + 695, + 951, + 1352, + 585, + 74, + 330, + 841, + 1097, + 731, + 476, + 220, + 987, + 1243, + 1133, + 110, + 366, + 622, + 878, + 1389, + 1279, + ): list([ + 257, + ]), + tuple( + 512, + 1, + 257, + 768, + 1024, + 1425, + 658, + 147, + 403, + 914, + 1170, + 1060, + 293, + 38, + 549, + 805, + 1316, + 1206, + 439, + 184, + 695, + 951, + 1352, + 585, + 74, + 330, + 841, + 1097, + 987, + 476, + 220, + 732, + 1243, + 1133, + 366, + 111, + 622, + 878, + 1389, + 1279, + ): list([ + 258, + ]), + tuple( + 638, + 1039, + 272, + 17, + 528, + 784, + 1295, + 1149, + 1405, + 1185, + 418, + 163, + 674, + 930, + 1441, + 820, + 53, + 309, + 565, + 1076, + 1332, + 966, + 199, + 455, + 711, + 1222, + 1112, + 601, + 345, + 90, + 857, + 1368, + 1258, + 491, + 236, + 747, + 1003, + 126, + 893, + 382, + ): list([ + 49, + ]), + tuple( + 638, + 1039, + 272, + 17, + 528, + 784, + 1295, + 1149, + 1405, + 1441, + 674, + 163, + 419, + 930, + 1186, + 820, + 53, + 309, + 565, + 1076, + 1332, + 966, + 199, + 455, + 711, + 1222, + 1112, + 601, + 345, + 90, + 857, + 1368, + 747, + 236, + 492, + 1003, + 1259, + 126, + 893, + 382, + ): list([ + 50, + ]), + tuple( + 638, + 1295, + 528, + 17, + 273, + 784, + 1040, + 1149, + 1405, + 1441, + 674, + 163, + 419, + 930, + 1186, + 820, + 53, + 309, + 565, + 1076, + 1332, + 966, + 199, + 455, + 711, + 1222, + 1368, + 601, + 346, + 90, + 857, + 1113, + 747, + 236, + 492, + 1003, + 1259, + 126, + 893, + 382, + ): list([ + 51, + ]), + tuple( + 639, + 1040, + 273, + 18, + 529, + 785, + 1296, + 1150, + 1186, + 419, + 164, + 675, + 931, + 1406, + 1442, + 821, + 54, + 310, + 566, + 1077, + 1333, + 967, + 200, + 456, + 712, + 1223, + 1113, + 602, + 346, + 91, + 858, + 1369, + 1259, + 492, + 237, + 748, + 1004, + 127, + 894, + 383, + ): list([ + 59, + ]), + tuple( + 639, + 1040, + 273, + 18, + 529, + 785, + 1296, + 1150, + 1406, + 675, + 164, + 420, + 931, + 1187, + 1442, + 821, + 54, + 310, + 566, + 1077, + 1333, + 967, + 200, + 456, + 712, + 1223, + 1113, + 602, + 346, + 91, + 858, + 1369, + 748, + 237, + 493, + 1004, + 1260, + 127, + 894, + 383, + ): list([ + 60, + ]), + tuple( + 639, + 1296, + 529, + 18, + 274, + 785, + 1041, + 1150, + 1406, + 675, + 164, + 420, + 931, + 1187, + 1442, + 821, + 54, + 310, + 566, + 1077, + 1333, + 967, + 200, + 456, + 712, + 1223, + 1369, + 602, + 347, + 91, + 858, + 1114, + 748, + 237, + 493, + 1004, + 1260, + 127, + 894, + 383, + ): list([ + 61, + ]), + tuple( + 640, + 129, + 385, + 896, + 1152, + 786, + 19, + 275, + 531, + 1042, + 1298, + 932, + 165, + 421, + 677, + 1188, + 1444, + 1334, + 567, + 312, + 56, + 823, + 1079, + 713, + 202, + 458, + 969, + 1225, + 859, + 348, + 92, + 604, + 1115, + 1371, + 1261, + 238, + 494, + 750, + 1006, + 1407, + ): list([ + 76, + ]), + tuple( + 640, + 129, + 385, + 896, + 1152, + 786, + 19, + 275, + 531, + 1042, + 1298, + 1188, + 421, + 166, + 677, + 933, + 1444, + 1334, + 567, + 312, + 56, + 823, + 1079, + 713, + 202, + 458, + 969, + 1225, + 1115, + 348, + 92, + 604, + 860, + 1371, + 1261, + 494, + 239, + 750, + 1006, + 1407, + ): list([ + 77, + ]), + tuple( + 640, + 129, + 385, + 896, + 1152, + 1042, + 275, + 20, + 531, + 787, + 1298, + 1188, + 421, + 166, + 677, + 933, + 1444, + 1334, + 567, + 312, + 56, + 823, + 1079, + 969, + 202, + 458, + 714, + 1225, + 1115, + 348, + 93, + 604, + 860, + 1371, + 1261, + 494, + 239, + 750, + 1006, + 1407, + ): list([ + 78, + ]), + tuple( + 764, + 1019, + 909, + 142, + 398, + 654, + 1165, + 1275, + 1421, + 143, + 910, + 1166, + 1311, + 544, + 33, + 289, + 800, + 1056, + 1312, + 545, + 690, + 179, + 435, + 946, + 1202, + 691, + 836, + 69, + 325, + 581, + 1092, + 1348, + 70, + 837, + 982, + 471, + 215, + 727, + 1238, + 216, + 983, + 472, + 1239, + 1384, + 617, + 106, + 362, + 873, + 1129, + 618, + 1385, + 252, + 763, + 508, + ): list([ + 211, + 212, + 213, + 214, + 215, + ]), + tuple( + 764, + 1020, + 910, + 143, + 399, + 655, + 1166, + 1422, + 1056, + 289, + 34, + 545, + 801, + 1312, + 1202, + 435, + 180, + 691, + 947, + 837, + 70, + 326, + 582, + 1093, + 1349, + 983, + 472, + 216, + 728, + 1239, + 1129, + 362, + 107, + 618, + 874, + 1385, + 1275, + 508, + 253, + ): list([ + 219, + ]), + tuple( + 764, + 1020, + 1421, + 654, + 143, + 399, + 910, + 1166, + 800, + 33, + 289, + 545, + 1056, + 1312, + 946, + 179, + 435, + 691, + 1202, + 1348, + 581, + 70, + 326, + 837, + 1093, + 727, + 472, + 216, + 983, + 1239, + 873, + 106, + 362, + 618, + 1129, + 1385, + 252, + 1275, + 508, + ): list([ + 216, + ]), + tuple( + 764, + 1020, + 1421, + 654, + 143, + 399, + 910, + 1166, + 800, + 33, + 289, + 545, + 1056, + 1312, + 1202, + 435, + 180, + 691, + 947, + 1348, + 581, + 70, + 326, + 837, + 1093, + 727, + 472, + 216, + 983, + 1239, + 1129, + 106, + 362, + 618, + 874, + 1385, + 1275, + 508, + 253, + ): list([ + 217, + ]), + tuple( + 764, + 1020, + 1421, + 654, + 143, + 399, + 910, + 1166, + 1056, + 289, + 34, + 545, + 801, + 1312, + 1202, + 435, + 180, + 691, + 947, + 1348, + 581, + 70, + 326, + 837, + 1093, + 983, + 472, + 216, + 728, + 1239, + 1129, + 362, + 107, + 618, + 874, + 1385, + 1275, + 508, + 253, + ): list([ + 218, + ]), + tuple( + 765, + 911, + 144, + 400, + 656, + 1021, + 1167, + 1423, + 1057, + 290, + 35, + 546, + 802, + 1313, + 1203, + 436, + 181, + 692, + 948, + 838, + 71, + 327, + 583, + 1094, + 1350, + 984, + 473, + 217, + 729, + 1240, + 1130, + 363, + 108, + 619, + 875, + 1386, + 1276, + 509, + 254, + ): list([ + 229, + ]), + tuple( + 765, + 1020, + 910, + 143, + 399, + 655, + 1166, + 1422, + 1276, + 144, + 911, + 1167, + 1312, + 545, + 34, + 290, + 801, + 1057, + 1313, + 546, + 691, + 180, + 436, + 947, + 1203, + 692, + 837, + 70, + 326, + 582, + 1093, + 1349, + 71, + 838, + 983, + 472, + 216, + 728, + 1239, + 217, + 984, + 473, + 1240, + 1385, + 618, + 107, + 363, + 874, + 1130, + 619, + 1386, + 253, + 764, + 509, + ): list([ + 221, + 222, + 223, + 224, + 225, + ]), + tuple( + 765, + 1422, + 655, + 144, + 400, + 911, + 1021, + 1167, + 801, + 34, + 290, + 546, + 1057, + 1313, + 947, + 180, + 436, + 692, + 1203, + 1349, + 582, + 71, + 327, + 838, + 1094, + 728, + 473, + 217, + 984, + 1240, + 874, + 107, + 363, + 619, + 1130, + 1386, + 253, + 1276, + 509, + ): list([ + 226, + ]), + tuple( + 765, + 1422, + 655, + 144, + 400, + 911, + 1021, + 1167, + 801, + 34, + 290, + 546, + 1057, + 1313, + 1203, + 436, + 181, + 692, + 948, + 1349, + 582, + 71, + 327, + 838, + 1094, + 728, + 473, + 217, + 984, + 1240, + 1130, + 107, + 363, + 619, + 875, + 1386, + 1276, + 509, + 254, + ): list([ + 227, + ]), + tuple( + 765, + 1422, + 655, + 144, + 400, + 911, + 1021, + 1167, + 1057, + 290, + 35, + 546, + 802, + 1313, + 1203, + 436, + 181, + 692, + 948, + 1349, + 582, + 71, + 327, + 838, + 1094, + 984, + 473, + 217, + 729, + 1240, + 1130, + 363, + 108, + 619, + 875, + 1386, + 1276, + 509, + 254, + ): list([ + 228, + ]), + tuple( + 766, + 911, + 144, + 400, + 656, + 1021, + 1167, + 1423, + 145, + 912, + 1168, + 1277, + 1313, + 546, + 35, + 291, + 802, + 1058, + 1314, + 547, + 692, + 181, + 437, + 948, + 1204, + 693, + 838, + 71, + 327, + 583, + 1094, + 1350, + 72, + 839, + 984, + 473, + 217, + 729, + 1240, + 218, + 985, + 474, + 1241, + 1386, + 619, + 108, + 364, + 875, + 1131, + 620, + 1387, + 254, + 765, + 510, + ): list([ + 231, + 232, + 233, + 234, + 235, + ]), + tuple( + 766, + 912, + 145, + 401, + 657, + 1168, + 1424, + 1022, + 1058, + 291, + 36, + 547, + 803, + 1314, + 1204, + 437, + 182, + 693, + 949, + 839, + 72, + 328, + 584, + 1095, + 1351, + 985, + 474, + 218, + 730, + 1241, + 1131, + 364, + 109, + 620, + 876, + 1387, + 1277, + 510, + 255, + ): list([ + 239, + ]), + tuple( + 766, + 1423, + 656, + 145, + 401, + 912, + 1168, + 1022, + 802, + 35, + 291, + 547, + 1058, + 1314, + 948, + 181, + 437, + 693, + 1204, + 1350, + 583, + 72, + 328, + 839, + 1095, + 729, + 474, + 218, + 985, + 1241, + 875, + 108, + 364, + 620, + 1131, + 1387, + 254, + 1277, + 510, + ): list([ + 236, + ]), + tuple( + 766, + 1423, + 656, + 145, + 401, + 912, + 1168, + 1022, + 802, + 35, + 291, + 547, + 1058, + 1314, + 1204, + 437, + 182, + 693, + 949, + 1350, + 583, + 72, + 328, + 839, + 1095, + 729, + 474, + 218, + 985, + 1241, + 1131, + 108, + 364, + 620, + 876, + 1387, + 1277, + 510, + 255, + ): list([ + 237, + ]), + tuple( + 766, + 1423, + 656, + 145, + 401, + 912, + 1168, + 1022, + 1058, + 291, + 36, + 547, + 803, + 1314, + 1204, + 437, + 182, + 693, + 949, + 1350, + 583, + 72, + 328, + 839, + 1095, + 985, + 474, + 218, + 730, + 1241, + 1131, + 364, + 109, + 620, + 876, + 1387, + 1277, + 510, + 255, + ): list([ + 238, + ]), + tuple( + 768, + 1, + 257, + 513, + 1024, + 1280, + 914, + 147, + 403, + 659, + 1170, + 1426, + 1060, + 293, + 38, + 549, + 805, + 1316, + 695, + 440, + 184, + 951, + 1207, + 841, + 74, + 330, + 586, + 1097, + 1353, + 987, + 476, + 220, + 732, + 1243, + 1133, + 366, + 111, + 622, + 878, + 1389, + ): list([ + 260, + ]), + tuple( + 768, + 1, + 257, + 513, + 1024, + 1280, + 914, + 147, + 403, + 659, + 1170, + 1426, + 1316, + 549, + 38, + 294, + 805, + 1061, + 695, + 440, + 184, + 951, + 1207, + 841, + 74, + 330, + 586, + 1097, + 1353, + 987, + 476, + 220, + 732, + 1243, + 1389, + 622, + 111, + 367, + 878, + 1134, + ): list([ + 261, + ]), + tuple( + 768, + 1, + 257, + 513, + 1024, + 1280, + 1170, + 403, + 148, + 659, + 915, + 1426, + 1316, + 549, + 38, + 294, + 805, + 1061, + 695, + 440, + 184, + 951, + 1207, + 841, + 74, + 330, + 586, + 1097, + 1353, + 1243, + 476, + 221, + 732, + 988, + 1389, + 622, + 111, + 367, + 878, + 1134, + ): list([ + 262, + ]), + tuple( + 769, + 2, + 258, + 514, + 1025, + 1281, + 915, + 148, + 404, + 660, + 1171, + 1427, + 1061, + 294, + 39, + 550, + 806, + 1317, + 696, + 441, + 185, + 952, + 1208, + 842, + 75, + 331, + 587, + 1098, + 1354, + 988, + 477, + 221, + 733, + 1244, + 1134, + 367, + 112, + 623, + 879, + 1390, + ): list([ + 270, + ]), + tuple( + 769, + 2, + 258, + 514, + 1025, + 1281, + 915, + 148, + 404, + 660, + 1171, + 1427, + 1317, + 550, + 39, + 295, + 806, + 1062, + 696, + 441, + 185, + 952, + 1208, + 842, + 75, + 331, + 587, + 1098, + 1354, + 988, + 477, + 221, + 733, + 1244, + 1390, + 623, + 112, + 368, + 879, + 1135, + ): list([ + 271, + ]), + tuple( + 769, + 2, + 258, + 514, + 1025, + 1281, + 1171, + 404, + 149, + 660, + 916, + 1427, + 1317, + 550, + 39, + 295, + 806, + 1062, + 696, + 441, + 185, + 952, + 1208, + 842, + 75, + 331, + 587, + 1098, + 1354, + 1244, + 477, + 222, + 733, + 989, + 1390, + 623, + 112, + 368, + 879, + 1135, + ): list([ + 272, + ]), + tuple( + 770, + 3, + 259, + 515, + 1026, + 1282, + 916, + 149, + 405, + 661, + 1172, + 1428, + 1062, + 295, + 40, + 551, + 807, + 1318, + 697, + 442, + 186, + 953, + 1209, + 843, + 76, + 332, + 588, + 1099, + 1355, + 989, + 478, + 222, + 734, + 1245, + 1135, + 368, + 113, + 624, + 880, + 1391, + ): list([ + 280, + ]), + tuple( + 770, + 3, + 259, + 515, + 1026, + 1282, + 916, + 149, + 405, + 661, + 1172, + 1428, + 1318, + 551, + 40, + 296, + 807, + 1063, + 697, + 442, + 186, + 953, + 1209, + 843, + 76, + 332, + 588, + 1099, + 1355, + 989, + 478, + 222, + 734, + 1245, + 1391, + 624, + 113, + 369, + 880, + 1136, + ): list([ + 281, + ]), + tuple( + 770, + 3, + 259, + 515, + 1026, + 1282, + 1172, + 405, + 150, + 661, + 917, + 1428, + 1318, + 551, + 40, + 296, + 807, + 1063, + 697, + 442, + 186, + 953, + 1209, + 843, + 76, + 332, + 588, + 1099, + 1355, + 1245, + 478, + 223, + 734, + 990, + 1391, + 624, + 113, + 369, + 880, + 1136, + ): list([ + 282, + ]), + tuple( + 771, + 4, + 260, + 516, + 1027, + 1283, + 917, + 150, + 406, + 662, + 1173, + 1429, + 1063, + 296, + 41, + 552, + 808, + 1319, + 698, + 443, + 187, + 954, + 1210, + 844, + 77, + 333, + 589, + 1100, + 1356, + 990, + 479, + 223, + 735, + 1246, + 1136, + 369, + 114, + 625, + 881, + 1392, + ): list([ + 290, + ]), + tuple( + 771, + 4, + 260, + 516, + 1027, + 1283, + 917, + 150, + 406, + 662, + 1173, + 1429, + 1319, + 552, + 41, + 297, + 808, + 1064, + 698, + 443, + 187, + 954, + 1210, + 844, + 77, + 333, + 589, + 1100, + 1356, + 990, + 479, + 223, + 735, + 1246, + 1392, + 625, + 114, + 370, + 881, + 1137, + ): list([ + 291, + ]), + tuple( + 771, + 4, + 260, + 516, + 1027, + 1283, + 1173, + 406, + 151, + 662, + 918, + 1429, + 1319, + 552, + 41, + 297, + 808, + 1064, + 698, + 443, + 187, + 954, + 1210, + 844, + 77, + 333, + 589, + 1100, + 1356, + 1246, + 479, + 224, + 735, + 991, + 1392, + 625, + 114, + 370, + 881, + 1137, + ): list([ + 292, + ]), + tuple( + 772, + 5, + 261, + 517, + 1028, + 1284, + 918, + 407, + 663, + 151, + 1174, + 1430, + 1064, + 297, + 42, + 553, + 809, + 1320, + 699, + 444, + 188, + 955, + 1211, + 845, + 78, + 334, + 590, + 1101, + 1357, + 991, + 224, + 480, + 736, + 1247, + 1137, + 370, + 115, + 626, + 882, + 1393, + ): list([ + 300, + ]), + tuple( + 772, + 5, + 261, + 517, + 1028, + 1284, + 918, + 407, + 663, + 151, + 1174, + 1430, + 1320, + 553, + 42, + 298, + 809, + 1065, + 699, + 444, + 188, + 955, + 1211, + 845, + 78, + 334, + 590, + 1101, + 1357, + 991, + 224, + 480, + 736, + 1247, + 1393, + 626, + 115, + 371, + 882, + 1138, + ): list([ + 301, + ]), + tuple( + 772, + 5, + 261, + 517, + 1028, + 1284, + 1174, + 663, + 407, + 152, + 919, + 1430, + 1320, + 553, + 42, + 298, + 809, + 1065, + 699, + 444, + 188, + 955, + 1211, + 845, + 78, + 334, + 590, + 1101, + 1357, + 1247, + 480, + 225, + 736, + 992, + 1393, + 626, + 115, + 371, + 882, + 1138, + ): list([ + 302, + ]), + tuple( + 773, + 6, + 262, + 518, + 1029, + 1285, + 919, + 408, + 664, + 152, + 1175, + 1431, + 1065, + 298, + 43, + 554, + 810, + 1321, + 700, + 189, + 445, + 956, + 1212, + 846, + 79, + 335, + 591, + 1102, + 1358, + 992, + 225, + 481, + 737, + 1248, + 1138, + 371, + 116, + 627, + 883, + 1394, + ): list([ + 310, + ]), + tuple( + 773, + 6, + 262, + 518, + 1029, + 1285, + 919, + 408, + 664, + 152, + 1175, + 1431, + 1321, + 554, + 43, + 299, + 810, + 1066, + 700, + 189, + 445, + 956, + 1212, + 846, + 79, + 335, + 591, + 1102, + 1358, + 992, + 225, + 481, + 737, + 1248, + 1394, + 627, + 116, + 372, + 883, + 1139, + ): list([ + 311, + ]), + tuple( + 773, + 6, + 262, + 518, + 1029, + 1285, + 1175, + 664, + 408, + 153, + 920, + 1431, + 1321, + 554, + 43, + 299, + 810, + 1066, + 700, + 189, + 445, + 956, + 1212, + 846, + 79, + 335, + 591, + 1102, + 1358, + 1248, + 481, + 226, + 737, + 993, + 1394, + 627, + 116, + 372, + 883, + 1139, + ): list([ + 312, + ]), + tuple( + 774, + 7, + 263, + 519, + 1030, + 1286, + 920, + 409, + 665, + 153, + 1176, + 1432, + 1066, + 299, + 44, + 555, + 811, + 1322, + 701, + 446, + 190, + 957, + 1213, + 847, + 80, + 336, + 592, + 1103, + 1359, + 993, + 226, + 482, + 738, + 1249, + 1139, + 372, + 117, + 628, + 884, + 1395, + ): list([ + 320, + ]), + tuple( + 774, + 7, + 263, + 519, + 1030, + 1286, + 920, + 409, + 665, + 153, + 1176, + 1432, + 1322, + 555, + 44, + 300, + 811, + 1067, + 701, + 446, + 190, + 957, + 1213, + 847, + 80, + 336, + 592, + 1103, + 1359, + 993, + 226, + 482, + 738, + 1249, + 1395, + 628, + 117, + 373, + 884, + 1140, + ): list([ + 321, + ]), + tuple( + 774, + 7, + 263, + 519, + 1030, + 1286, + 1176, + 665, + 409, + 154, + 921, + 1432, + 1322, + 555, + 44, + 300, + 811, + 1067, + 701, + 446, + 190, + 957, + 1213, + 847, + 80, + 336, + 592, + 1103, + 1359, + 1249, + 482, + 227, + 738, + 994, + 1395, + 628, + 117, + 373, + 884, + 1140, + ): list([ + 322, + ]), + tuple( + 775, + 8, + 264, + 520, + 1031, + 1287, + 921, + 410, + 666, + 154, + 1177, + 1433, + 1067, + 300, + 45, + 556, + 812, + 1323, + 702, + 447, + 191, + 958, + 1214, + 848, + 81, + 337, + 593, + 1104, + 1360, + 994, + 227, + 483, + 739, + 1250, + 1140, + 373, + 118, + 629, + 885, + 1396, + ): list([ + 330, + ]), + tuple( + 775, + 8, + 264, + 520, + 1031, + 1287, + 921, + 410, + 666, + 154, + 1177, + 1433, + 1323, + 556, + 45, + 301, + 812, + 1068, + 702, + 447, + 191, + 958, + 1214, + 848, + 81, + 337, + 593, + 1104, + 1360, + 994, + 227, + 483, + 739, + 1250, + 1396, + 629, + 118, + 374, + 885, + 1141, + ): list([ + 331, + ]), + tuple( + 775, + 8, + 264, + 520, + 1031, + 1287, + 1177, + 666, + 410, + 155, + 922, + 1433, + 1323, + 556, + 45, + 301, + 812, + 1068, + 702, + 447, + 191, + 958, + 1214, + 848, + 81, + 337, + 593, + 1104, + 1360, + 1250, + 483, + 228, + 739, + 995, + 1396, + 629, + 118, + 374, + 885, + 1141, + ): list([ + 332, + ]), + tuple( + 776, + 9, + 265, + 521, + 1032, + 1288, + 922, + 411, + 155, + 667, + 1178, + 1434, + 1068, + 301, + 46, + 557, + 813, + 1324, + 703, + 192, + 448, + 959, + 1215, + 849, + 82, + 338, + 594, + 1105, + 1361, + 995, + 228, + 484, + 740, + 1251, + 1141, + 374, + 119, + 630, + 886, + 1397, + ): list([ + 340, + ]), + tuple( + 776, + 9, + 265, + 521, + 1032, + 1288, + 922, + 411, + 155, + 667, + 1178, + 1434, + 1324, + 557, + 46, + 302, + 813, + 1069, + 703, + 192, + 448, + 959, + 1215, + 849, + 82, + 338, + 594, + 1105, + 1361, + 375, + 995, + 228, + 484, + 740, + 1251, + 1397, + 630, + 119, + 886, + 1142, + ): list([ + 341, + ]), + tuple( + 776, + 9, + 265, + 521, + 1032, + 1288, + 1178, + 667, + 411, + 156, + 923, + 1434, + 1324, + 557, + 46, + 302, + 813, + 1069, + 703, + 192, + 448, + 959, + 1215, + 849, + 82, + 338, + 594, + 1105, + 1361, + 375, + 1251, + 484, + 229, + 740, + 996, + 1397, + 630, + 119, + 886, + 1142, + ): list([ + 342, + ]), + tuple( + 777, + 10, + 266, + 522, + 1033, + 1289, + 923, + 668, + 412, + 156, + 1179, + 1435, + 1069, + 302, + 47, + 558, + 814, + 1325, + 704, + 193, + 449, + 960, + 1216, + 850, + 83, + 339, + 595, + 1106, + 1362, + 375, + 996, + 229, + 485, + 741, + 1252, + 887, + 1142, + 631, + 120, + 1398, + ): list([ + 350, + ]), + tuple( + 777, + 10, + 266, + 522, + 1033, + 1289, + 923, + 668, + 412, + 156, + 1179, + 1435, + 1325, + 558, + 47, + 303, + 814, + 1070, + 704, + 193, + 449, + 960, + 1216, + 850, + 83, + 339, + 595, + 1106, + 1143, + 1362, + 120, + 996, + 229, + 485, + 741, + 1252, + 887, + 1398, + 631, + 376, + ): list([ + 351, + ]), + tuple( + 777, + 10, + 266, + 522, + 1033, + 1289, + 1179, + 668, + 412, + 157, + 924, + 1435, + 1325, + 558, + 47, + 303, + 814, + 1070, + 704, + 193, + 449, + 960, + 1216, + 850, + 83, + 339, + 595, + 1106, + 1143, + 1362, + 120, + 1252, + 485, + 230, + 741, + 997, + 887, + 1398, + 631, + 376, + ): list([ + 352, + ]), + tuple( + 778, + 11, + 267, + 523, + 1034, + 1290, + 924, + 669, + 157, + 413, + 1180, + 1436, + 1070, + 303, + 48, + 559, + 815, + 1326, + 705, + 194, + 450, + 961, + 1217, + 851, + 84, + 340, + 596, + 1107, + 1363, + 376, + 997, + 230, + 486, + 742, + 1253, + 888, + 1143, + 632, + 121, + 1399, + ): list([ + 360, + ]), + tuple( + 778, + 11, + 267, + 523, + 1034, + 1290, + 924, + 669, + 157, + 413, + 1180, + 1436, + 1326, + 559, + 48, + 304, + 815, + 1071, + 705, + 194, + 450, + 961, + 1217, + 851, + 84, + 340, + 596, + 1107, + 1363, + 121, + 997, + 230, + 486, + 742, + 1253, + 888, + 1399, + 632, + 377, + 1144, + ): list([ + 361, + ]), + tuple( + 784, + 17, + 273, + 529, + 894, + 1040, + 1296, + 1150, + 930, + 163, + 419, + 675, + 1186, + 1442, + 1332, + 565, + 54, + 310, + 821, + 1077, + 711, + 200, + 456, + 967, + 1223, + 857, + 346, + 602, + 90, + 1113, + 1369, + 1259, + 236, + 492, + 748, + 1004, + 127, + 1405, + 638, + 383, + ): list([ + 56, + ]), + tuple( + 784, + 17, + 273, + 529, + 894, + 1040, + 1296, + 1150, + 1186, + 419, + 164, + 675, + 931, + 1442, + 1332, + 565, + 54, + 310, + 821, + 1077, + 711, + 200, + 456, + 967, + 1223, + 1113, + 346, + 602, + 90, + 858, + 1369, + 1259, + 492, + 237, + 748, + 1004, + 127, + 1405, + 638, + 383, + ): list([ + 57, + ]), + tuple( + 891, + 525, + 14, + 270, + 781, + 1037, + 1293, + 1402, + 927, + 160, + 416, + 672, + 1183, + 1439, + 1073, + 306, + 51, + 562, + 818, + 1329, + 1219, + 452, + 197, + 708, + 964, + 854, + 599, + 87, + 343, + 1110, + 1366, + 1000, + 233, + 489, + 745, + 1256, + 379, + 1146, + 635, + 124, + ): list([ + 24, + ]), + tuple( + 891, + 1147, + 781, + 14, + 270, + 526, + 1037, + 1293, + 927, + 160, + 416, + 672, + 1183, + 1439, + 1073, + 306, + 51, + 562, + 818, + 1329, + 708, + 197, + 453, + 964, + 1220, + 854, + 599, + 87, + 343, + 1110, + 1366, + 1000, + 233, + 489, + 745, + 1256, + 379, + 1402, + 635, + 124, + ): list([ + 25, + ]), + tuple( + 891, + 1147, + 781, + 14, + 270, + 526, + 1037, + 1293, + 927, + 160, + 416, + 672, + 1183, + 1439, + 1329, + 562, + 51, + 307, + 818, + 1074, + 708, + 197, + 453, + 964, + 1220, + 854, + 599, + 87, + 343, + 1110, + 1366, + 1256, + 233, + 489, + 745, + 1001, + 124, + 1402, + 635, + 380, + ): list([ + 26, + ]), + tuple( + 891, + 1147, + 781, + 14, + 270, + 526, + 1037, + 1293, + 1183, + 416, + 161, + 672, + 928, + 1439, + 1329, + 562, + 51, + 307, + 818, + 1074, + 708, + 197, + 453, + 964, + 1220, + 1110, + 599, + 87, + 343, + 855, + 1366, + 1256, + 489, + 234, + 745, + 1001, + 124, + 1402, + 635, + 380, + ): list([ + 27, + ]), + tuple( + 891, + 1147, + 1037, + 270, + 15, + 526, + 782, + 1293, + 1183, + 416, + 161, + 672, + 928, + 1439, + 1329, + 562, + 51, + 307, + 818, + 1074, + 964, + 197, + 453, + 709, + 1220, + 1110, + 599, + 343, + 88, + 855, + 1366, + 1256, + 489, + 234, + 745, + 1001, + 124, + 1402, + 635, + 380, + ): list([ + 28, + ]), + tuple( + 891, + 1292, + 525, + 14, + 270, + 781, + 1037, + 1402, + 671, + 160, + 416, + 927, + 1183, + 1439, + 1073, + 306, + 51, + 562, + 818, + 1329, + 1219, + 452, + 197, + 708, + 964, + 1365, + 598, + 87, + 343, + 854, + 1110, + 1000, + 233, + 489, + 745, + 1256, + 379, + 1146, + 635, + 124, + ): list([ + 23, + ]), + tuple( + 891, + 1292, + 525, + 14, + 270, + 781, + 1037, + 1402, + 1438, + 671, + 160, + 416, + 927, + 1183, + 817, + 50, + 306, + 562, + 1073, + 1329, + 1219, + 452, + 197, + 708, + 964, + 1365, + 598, + 87, + 343, + 854, + 1110, + 744, + 233, + 489, + 1000, + 1256, + 379, + 1146, + 635, + 124, + ): list([ + 22, + ]), + tuple( + 892, + 526, + 15, + 271, + 782, + 1038, + 1294, + 1403, + 928, + 161, + 417, + 673, + 1184, + 1440, + 1074, + 307, + 52, + 563, + 819, + 1330, + 1220, + 453, + 198, + 709, + 965, + 855, + 344, + 600, + 88, + 1111, + 1367, + 1001, + 234, + 490, + 746, + 1257, + 380, + 1147, + 636, + 125, + ): list([ + 34, + ]), + tuple( + 892, + 782, + 15, + 271, + 527, + 1038, + 1148, + 1294, + 928, + 161, + 417, + 673, + 1184, + 1440, + 1074, + 307, + 52, + 563, + 819, + 1330, + 709, + 198, + 454, + 965, + 1221, + 855, + 344, + 600, + 88, + 1111, + 1367, + 1001, + 234, + 490, + 746, + 1257, + 380, + 1403, + 636, + 125, + ): list([ + 35, + ]), + tuple( + 892, + 782, + 15, + 271, + 527, + 1038, + 1148, + 1294, + 928, + 161, + 417, + 673, + 1184, + 1440, + 1330, + 563, + 52, + 308, + 819, + 1075, + 709, + 198, + 454, + 965, + 1221, + 855, + 344, + 600, + 88, + 1111, + 1367, + 1257, + 234, + 490, + 746, + 1002, + 125, + 1403, + 636, + 381, + ): list([ + 36, + ]), + tuple( + 892, + 782, + 15, + 271, + 527, + 1038, + 1148, + 1294, + 1184, + 417, + 162, + 673, + 929, + 1440, + 1330, + 563, + 52, + 308, + 819, + 1075, + 709, + 198, + 454, + 965, + 1221, + 1111, + 344, + 600, + 88, + 856, + 1367, + 1257, + 490, + 235, + 746, + 1002, + 125, + 1403, + 636, + 381, + ): list([ + 37, + ]), + tuple( + 892, + 1038, + 271, + 16, + 527, + 783, + 1148, + 1294, + 1184, + 417, + 162, + 673, + 929, + 1440, + 1330, + 563, + 52, + 308, + 819, + 1075, + 965, + 198, + 454, + 710, + 1221, + 1111, + 600, + 344, + 89, + 856, + 1367, + 1257, + 490, + 235, + 746, + 1002, + 125, + 1403, + 636, + 381, + ): list([ + 38, + ]), + tuple( + 892, + 1293, + 526, + 15, + 271, + 782, + 1038, + 1403, + 672, + 161, + 417, + 928, + 1184, + 1440, + 1074, + 307, + 52, + 563, + 819, + 1330, + 1220, + 453, + 198, + 709, + 965, + 1366, + 599, + 344, + 88, + 855, + 1111, + 1001, + 234, + 490, + 746, + 1257, + 380, + 1147, + 636, + 125, + ): list([ + 33, + ]), + tuple( + 892, + 1293, + 526, + 15, + 271, + 782, + 1038, + 1403, + 1439, + 672, + 161, + 417, + 928, + 1184, + 818, + 51, + 307, + 563, + 1074, + 1330, + 1220, + 453, + 198, + 709, + 965, + 1366, + 599, + 344, + 88, + 855, + 1111, + 745, + 234, + 490, + 1001, + 1257, + 380, + 1147, + 636, + 125, + ): list([ + 32, + ]), + tuple( + 893, + 527, + 16, + 272, + 783, + 1039, + 1295, + 1404, + 929, + 162, + 418, + 674, + 1185, + 1441, + 1075, + 308, + 53, + 564, + 820, + 1331, + 1221, + 454, + 199, + 710, + 966, + 856, + 345, + 601, + 89, + 1112, + 1368, + 1002, + 235, + 491, + 747, + 1258, + 381, + 1148, + 637, + 126, + ): list([ + 44, + ]), + tuple( + 893, + 783, + 16, + 272, + 528, + 1039, + 1295, + 1149, + 929, + 162, + 418, + 674, + 1185, + 1441, + 1075, + 308, + 53, + 564, + 820, + 1331, + 710, + 199, + 455, + 966, + 1222, + 856, + 345, + 601, + 89, + 1112, + 1368, + 1002, + 235, + 491, + 747, + 1258, + 381, + 1404, + 637, + 126, + ): list([ + 45, + ]), + tuple( + 893, + 783, + 16, + 272, + 528, + 1039, + 1295, + 1149, + 929, + 162, + 418, + 674, + 1185, + 1441, + 1331, + 564, + 53, + 309, + 820, + 1076, + 710, + 199, + 455, + 966, + 1222, + 856, + 345, + 601, + 89, + 1112, + 1368, + 1258, + 235, + 491, + 747, + 1003, + 126, + 1404, + 637, + 382, + ): list([ + 46, + ]), + tuple( + 893, + 783, + 16, + 272, + 528, + 1039, + 1295, + 1149, + 1185, + 418, + 163, + 674, + 930, + 1441, + 1331, + 564, + 53, + 309, + 820, + 1076, + 710, + 199, + 455, + 966, + 1222, + 1112, + 345, + 601, + 89, + 857, + 1368, + 1258, + 491, + 236, + 747, + 1003, + 126, + 1404, + 637, + 382, + ): list([ + 47, + ]), + tuple( + 893, + 1039, + 272, + 17, + 528, + 784, + 1295, + 1149, + 1185, + 418, + 163, + 674, + 930, + 1441, + 1331, + 564, + 53, + 309, + 820, + 1076, + 966, + 199, + 455, + 711, + 1222, + 1112, + 601, + 345, + 90, + 857, + 1368, + 1258, + 491, + 236, + 747, + 1003, + 126, + 1404, + 637, + 382, + ): list([ + 48, + ]), + tuple( + 893, + 1294, + 527, + 16, + 272, + 783, + 1039, + 1404, + 673, + 162, + 418, + 929, + 1185, + 1441, + 1075, + 308, + 53, + 564, + 820, + 1331, + 1221, + 454, + 199, + 710, + 966, + 1367, + 600, + 345, + 89, + 856, + 1112, + 1002, + 235, + 491, + 747, + 1258, + 381, + 1148, + 637, + 126, + ): list([ + 43, + ]), + tuple( + 893, + 1294, + 527, + 16, + 272, + 783, + 1039, + 1404, + 1440, + 673, + 162, + 418, + 929, + 1185, + 819, + 52, + 308, + 564, + 1075, + 1331, + 1221, + 454, + 199, + 710, + 966, + 1367, + 600, + 345, + 89, + 856, + 1112, + 746, + 235, + 491, + 1002, + 1258, + 381, + 1148, + 637, + 126, + ): list([ + 42, + ]), + tuple( + 896, + 129, + 385, + 641, + 1152, + 1408, + 1042, + 275, + 20, + 531, + 787, + 1298, + 1188, + 421, + 166, + 677, + 933, + 1444, + 823, + 312, + 568, + 56, + 1079, + 1335, + 969, + 202, + 458, + 714, + 1225, + 1115, + 348, + 93, + 604, + 860, + 1371, + 1261, + 494, + 239, + 750, + 1006, + ): list([ + 79, + ]), + tuple( + 896, + 129, + 385, + 641, + 1152, + 1408, + 1042, + 275, + 20, + 531, + 787, + 1298, + 1444, + 677, + 166, + 422, + 933, + 1189, + 823, + 312, + 568, + 56, + 1079, + 1335, + 969, + 202, + 458, + 714, + 1225, + 1115, + 348, + 93, + 604, + 860, + 1371, + 750, + 239, + 495, + 1006, + 1262, + ): list([ + 80, + ]), + tuple( + 896, + 129, + 385, + 641, + 1152, + 1408, + 1298, + 531, + 20, + 276, + 787, + 1043, + 1444, + 677, + 166, + 422, + 933, + 1189, + 823, + 312, + 568, + 56, + 1079, + 1335, + 969, + 202, + 458, + 714, + 1225, + 1371, + 604, + 349, + 93, + 860, + 1116, + 750, + 239, + 495, + 1006, + 1262, + ): list([ + 81, + ]), + tuple( + 897, + 130, + 386, + 642, + 1153, + 1409, + 1043, + 276, + 21, + 532, + 788, + 1299, + 1189, + 422, + 167, + 678, + 934, + 1445, + 824, + 313, + 569, + 57, + 1080, + 1336, + 970, + 203, + 459, + 715, + 1226, + 1116, + 605, + 349, + 94, + 861, + 1372, + 1262, + 495, + 240, + 751, + 1007, + ): list([ + 89, + ]), + tuple( + 897, + 130, + 386, + 642, + 1153, + 1409, + 1043, + 276, + 21, + 532, + 788, + 1299, + 1445, + 678, + 167, + 423, + 934, + 1190, + 824, + 313, + 569, + 57, + 1080, + 1336, + 970, + 203, + 459, + 715, + 1226, + 1116, + 605, + 349, + 94, + 861, + 1372, + 751, + 240, + 496, + 1007, + 1263, + ): list([ + 90, + ]), + tuple( + 897, + 130, + 386, + 642, + 1153, + 1409, + 1299, + 532, + 21, + 277, + 788, + 1044, + 1445, + 678, + 167, + 423, + 934, + 1190, + 824, + 313, + 569, + 57, + 1080, + 1336, + 970, + 203, + 459, + 715, + 1226, + 1372, + 605, + 350, + 94, + 861, + 1117, + 751, + 240, + 496, + 1007, + 1263, + ): list([ + 91, + ]), + tuple( + 898, + 131, + 387, + 643, + 1154, + 1410, + 1044, + 277, + 22, + 533, + 789, + 1300, + 1190, + 423, + 168, + 679, + 935, + 1446, + 825, + 314, + 570, + 58, + 1081, + 1337, + 971, + 204, + 460, + 716, + 1227, + 1117, + 606, + 350, + 95, + 862, + 1373, + 1263, + 496, + 241, + 752, + 1008, + ): list([ + 99, + ]), + tuple( + 898, + 131, + 387, + 643, + 1154, + 1410, + 1044, + 277, + 22, + 533, + 789, + 1300, + 1446, + 679, + 168, + 424, + 935, + 1191, + 825, + 314, + 570, + 58, + 1081, + 1337, + 971, + 204, + 460, + 716, + 1227, + 1117, + 606, + 350, + 95, + 862, + 1373, + 752, + 241, + 497, + 1008, + 1264, + ): list([ + 100, + ]), + tuple( + 898, + 131, + 387, + 643, + 1154, + 1410, + 1300, + 533, + 22, + 278, + 789, + 1045, + 1446, + 679, + 168, + 424, + 935, + 1191, + 825, + 314, + 570, + 58, + 1081, + 1337, + 971, + 204, + 460, + 716, + 1227, + 1373, + 606, + 351, + 95, + 862, + 1118, + 752, + 241, + 497, + 1008, + 1264, + ): list([ + 101, + ]), + tuple( + 899, + 132, + 388, + 644, + 1155, + 1411, + 1045, + 278, + 23, + 534, + 790, + 1301, + 1191, + 424, + 169, + 680, + 936, + 1447, + 826, + 315, + 571, + 59, + 1082, + 1338, + 972, + 205, + 461, + 717, + 1228, + 1118, + 607, + 96, + 351, + 863, + 1374, + 1264, + 497, + 242, + 753, + 1009, + ): list([ + 109, + ]), + tuple( + 899, + 132, + 388, + 644, + 1155, + 1411, + 1045, + 278, + 23, + 534, + 790, + 1301, + 1447, + 680, + 169, + 425, + 936, + 1192, + 826, + 315, + 571, + 59, + 1082, + 1338, + 972, + 205, + 461, + 717, + 1228, + 1118, + 607, + 96, + 351, + 863, + 1374, + 753, + 242, + 498, + 1009, + 1265, + ): list([ + 110, + ]), + tuple( + 899, + 132, + 388, + 644, + 1155, + 1411, + 1301, + 534, + 23, + 279, + 790, + 1046, + 1447, + 680, + 169, + 425, + 936, + 1192, + 826, + 315, + 571, + 59, + 1082, + 1338, + 972, + 205, + 461, + 717, + 1228, + 1374, + 607, + 96, + 352, + 863, + 1119, + 753, + 242, + 498, + 1009, + 1265, + ): list([ + 111, + ]), + tuple( + 900, + 133, + 389, + 645, + 1156, + 1412, + 1046, + 535, + 279, + 24, + 791, + 1302, + 1192, + 425, + 170, + 681, + 937, + 1448, + 827, + 316, + 60, + 572, + 1083, + 1339, + 973, + 206, + 462, + 718, + 1229, + 1119, + 352, + 97, + 608, + 864, + 1375, + 1265, + 498, + 243, + 754, + 1010, + ): list([ + 119, + ]), + tuple( + 900, + 133, + 389, + 645, + 1156, + 1412, + 1046, + 535, + 279, + 24, + 791, + 1302, + 1448, + 681, + 170, + 426, + 937, + 1193, + 827, + 316, + 60, + 572, + 1083, + 1339, + 973, + 206, + 462, + 718, + 1229, + 1119, + 352, + 97, + 608, + 864, + 1375, + 754, + 243, + 499, + 1010, + 1266, + ): list([ + 120, + ]), + tuple( + 900, + 133, + 389, + 645, + 1156, + 1412, + 1302, + 535, + 280, + 24, + 791, + 1047, + 1448, + 681, + 170, + 426, + 937, + 1193, + 827, + 316, + 60, + 572, + 1083, + 1339, + 973, + 206, + 462, + 718, + 1229, + 1375, + 608, + 97, + 353, + 864, + 1120, + 754, + 243, + 499, + 1010, + 1266, + ): list([ + 121, + ]), + tuple( + 901, + 134, + 390, + 646, + 1157, + 1413, + 1047, + 536, + 280, + 25, + 792, + 1303, + 1193, + 426, + 171, + 682, + 938, + 1449, + 828, + 573, + 317, + 61, + 1084, + 1340, + 974, + 207, + 463, + 719, + 1230, + 1120, + 353, + 98, + 609, + 865, + 1376, + 1266, + 499, + 244, + 755, + 1011, + ): list([ + 129, + ]), + tuple( + 901, + 134, + 390, + 646, + 1157, + 1413, + 1047, + 536, + 280, + 25, + 792, + 1303, + 1449, + 682, + 171, + 427, + 938, + 1194, + 828, + 573, + 317, + 61, + 1084, + 1340, + 974, + 207, + 463, + 719, + 1230, + 1120, + 353, + 98, + 609, + 865, + 1376, + 755, + 244, + 500, + 1011, + 1267, + ): list([ + 130, + ]), + tuple( + 901, + 134, + 390, + 646, + 1157, + 1413, + 1303, + 536, + 281, + 25, + 792, + 1048, + 1449, + 682, + 171, + 427, + 938, + 1194, + 828, + 573, + 317, + 61, + 1084, + 1340, + 974, + 207, + 463, + 719, + 1230, + 1376, + 609, + 98, + 354, + 865, + 1121, + 755, + 244, + 500, + 1011, + 1267, + ): list([ + 131, + ]), + tuple( + 902, + 135, + 391, + 647, + 1158, + 1414, + 1048, + 537, + 281, + 26, + 793, + 1304, + 1194, + 427, + 172, + 683, + 939, + 1450, + 829, + 318, + 574, + 62, + 1085, + 1341, + 975, + 208, + 464, + 720, + 1231, + 1121, + 354, + 99, + 610, + 866, + 1377, + 1267, + 500, + 245, + 756, + 1012, + ): list([ + 139, + ]), + tuple( + 902, + 135, + 391, + 647, + 1158, + 1414, + 1048, + 537, + 281, + 26, + 793, + 1304, + 1450, + 683, + 172, + 428, + 939, + 1195, + 829, + 318, + 574, + 62, + 1085, + 1341, + 975, + 208, + 464, + 720, + 1231, + 1121, + 354, + 99, + 610, + 866, + 1377, + 756, + 245, + 501, + 1012, + 1268, + ): list([ + 140, + ]), + tuple( + 902, + 135, + 391, + 647, + 1158, + 1414, + 1304, + 537, + 282, + 26, + 793, + 1049, + 1450, + 683, + 172, + 428, + 939, + 1195, + 829, + 318, + 574, + 62, + 1085, + 1341, + 975, + 208, + 464, + 720, + 1231, + 1377, + 610, + 99, + 355, + 866, + 1122, + 756, + 245, + 501, + 1012, + 1268, + ): list([ + 141, + ]), + tuple( + 903, + 136, + 392, + 648, + 1159, + 1415, + 1049, + 538, + 282, + 27, + 794, + 1305, + 1195, + 428, + 173, + 684, + 940, + 1451, + 830, + 319, + 575, + 63, + 1086, + 1342, + 976, + 209, + 465, + 721, + 1232, + 1122, + 355, + 100, + 611, + 867, + 1378, + 1268, + 501, + 246, + 757, + 1013, + ): list([ + 149, + ]), + tuple( + 903, + 136, + 392, + 648, + 1159, + 1415, + 1049, + 538, + 282, + 27, + 794, + 1305, + 1451, + 684, + 173, + 429, + 940, + 1196, + 830, + 319, + 575, + 63, + 1086, + 1342, + 976, + 209, + 465, + 721, + 1232, + 1122, + 355, + 100, + 611, + 867, + 1378, + 757, + 246, + 502, + 1013, + 1269, + ): list([ + 150, + ]), + tuple( + 903, + 136, + 392, + 648, + 1159, + 1415, + 1305, + 538, + 283, + 27, + 794, + 1050, + 1451, + 684, + 173, + 429, + 940, + 1196, + 830, + 319, + 575, + 63, + 1086, + 1342, + 976, + 209, + 465, + 721, + 1232, + 1378, + 611, + 100, + 356, + 867, + 1123, + 757, + 246, + 502, + 1013, + 1269, + ): list([ + 151, + ]), + tuple( + 904, + 137, + 393, + 649, + 1160, + 1416, + 138, + 905, + 1050, + 539, + 283, + 28, + 795, + 1306, + 284, + 1051, + 1307, + 1452, + 685, + 174, + 430, + 941, + 1197, + 1453, + 686, + 831, + 64, + 320, + 576, + 1087, + 1343, + 65, + 832, + 977, + 210, + 466, + 722, + 1233, + 211, + 978, + 247, + 1123, + 356, + 101, + 612, + 868, + 1379, + 357, + 1124, + 759, + 613, + 1380, + 758, + 503, + 1014, + 1270, + ): list([ + 160, + 161, + 162, + 163, + 164, + ]), + tuple( + 904, + 137, + 393, + 649, + 1160, + 1416, + 1050, + 539, + 283, + 28, + 795, + 1306, + 1196, + 429, + 174, + 685, + 941, + 1452, + 831, + 64, + 320, + 576, + 1087, + 1343, + 977, + 210, + 466, + 722, + 1233, + 1123, + 356, + 101, + 612, + 868, + 1379, + 1269, + 502, + 247, + 758, + 1014, + ): list([ + 159, + ]), + tuple( + 905, + 138, + 394, + 650, + 1161, + 1417, + 139, + 906, + 1162, + 1307, + 540, + 285, + 29, + 796, + 1052, + 1308, + 541, + 686, + 175, + 431, + 942, + 1198, + 687, + 832, + 65, + 321, + 577, + 1088, + 1344, + 66, + 833, + 978, + 211, + 467, + 723, + 1234, + 212, + 979, + 468, + 1235, + 248, + 1380, + 613, + 102, + 358, + 869, + 1125, + 614, + 1381, + 760, + 1015, + 759, + 504, + 1271, + ): list([ + 171, + 172, + 173, + 174, + 175, + ]), + tuple( + 905, + 138, + 394, + 650, + 1161, + 1417, + 1051, + 540, + 284, + 29, + 796, + 1307, + 686, + 175, + 431, + 942, + 1198, + 832, + 65, + 321, + 577, + 1088, + 1344, + 978, + 211, + 467, + 723, + 1234, + 248, + 1124, + 357, + 102, + 613, + 869, + 1380, + 1015, + 759, + 504, + 1271, + ): list([ + 170, + ]), + tuple( + 905, + 138, + 394, + 650, + 1161, + 1417, + 1051, + 540, + 284, + 29, + 796, + 1307, + 1197, + 430, + 175, + 686, + 942, + 832, + 65, + 321, + 577, + 1088, + 1344, + 978, + 211, + 467, + 723, + 1234, + 1124, + 357, + 102, + 613, + 869, + 1380, + 759, + 1015, + 1270, + 503, + 248, + ): list([ + 169, + ]), + tuple( + 906, + 139, + 395, + 651, + 1162, + 1418, + 1052, + 541, + 285, + 30, + 797, + 1308, + 1198, + 431, + 176, + 687, + 943, + 833, + 66, + 322, + 578, + 1089, + 1345, + 979, + 212, + 468, + 724, + 1235, + 1016, + 1125, + 358, + 103, + 614, + 870, + 1381, + 760, + 1271, + 504, + 249, + ): list([ + 179, + ]), + tuple( + 907, + 140, + 396, + 652, + 1163, + 1419, + 1053, + 542, + 286, + 31, + 798, + 1309, + 1199, + 432, + 177, + 688, + 944, + 834, + 67, + 323, + 579, + 1090, + 1346, + 980, + 213, + 469, + 725, + 1236, + 1126, + 359, + 104, + 615, + 871, + 1382, + 761, + 1272, + 505, + 250, + 1017, + ): list([ + 189, + ]), + tuple( + 911, + 144, + 400, + 656, + 1021, + 1167, + 1423, + 1277, + 1057, + 290, + 35, + 546, + 802, + 1313, + 692, + 181, + 437, + 948, + 1204, + 838, + 71, + 327, + 583, + 1094, + 1350, + 984, + 473, + 217, + 729, + 1240, + 1130, + 363, + 108, + 619, + 875, + 1386, + 254, + 765, + 510, + ): list([ + 230, + ]), + tuple( + 1018, + 908, + 141, + 397, + 653, + 1164, + 1420, + 1054, + 543, + 32, + 287, + 799, + 1310, + 1200, + 433, + 178, + 689, + 945, + 835, + 68, + 324, + 580, + 1091, + 1347, + 981, + 214, + 470, + 726, + 1237, + 762, + 1127, + 360, + 105, + 616, + 872, + 1383, + 1273, + 506, + 251, + ): list([ + 199, + ]), + tuple( + 1018, + 1274, + 908, + 141, + 397, + 653, + 1164, + 1420, + 142, + 909, + 1165, + 1310, + 543, + 32, + 288, + 799, + 1055, + 1311, + 544, + 689, + 178, + 434, + 945, + 1201, + 690, + 835, + 68, + 324, + 580, + 1091, + 1347, + 69, + 836, + 981, + 214, + 470, + 726, + 1237, + 215, + 982, + 471, + 1238, + 1383, + 616, + 105, + 361, + 872, + 1128, + 617, + 1384, + 251, + 762, + 507, + 763, + ): list([ + 201, + 202, + 203, + 204, + 205, + ]), + tuple( + 1018, + 1274, + 908, + 141, + 397, + 653, + 1164, + 1420, + 1054, + 543, + 32, + 287, + 799, + 1310, + 689, + 178, + 434, + 945, + 1201, + 835, + 68, + 324, + 580, + 1091, + 1347, + 981, + 214, + 470, + 726, + 1237, + 1127, + 360, + 105, + 616, + 872, + 1383, + 251, + 762, + 507, + ): list([ + 200, + ]), + tuple( + 1018, + 1419, + 652, + 141, + 397, + 908, + 1164, + 798, + 287, + 543, + 31, + 1054, + 1310, + 944, + 177, + 433, + 689, + 1200, + 1346, + 579, + 68, + 324, + 835, + 1091, + 725, + 214, + 470, + 981, + 1237, + 762, + 871, + 104, + 360, + 616, + 250, + 1127, + 1383, + 1273, + 506, + ): list([ + 196, + ]), + tuple( + 1018, + 1419, + 652, + 141, + 397, + 908, + 1164, + 798, + 287, + 543, + 31, + 1054, + 1310, + 1200, + 433, + 178, + 689, + 945, + 1346, + 579, + 68, + 324, + 835, + 1091, + 725, + 214, + 470, + 981, + 1237, + 762, + 1127, + 104, + 360, + 616, + 872, + 1383, + 1273, + 506, + 251, + ): list([ + 197, + ]), + tuple( + 1018, + 1419, + 652, + 141, + 397, + 908, + 1164, + 1054, + 543, + 32, + 287, + 799, + 1310, + 1200, + 433, + 178, + 689, + 945, + 1346, + 579, + 68, + 324, + 835, + 1091, + 981, + 214, + 470, + 726, + 1237, + 762, + 1127, + 360, + 105, + 616, + 872, + 1383, + 1273, + 506, + 251, + ): list([ + 198, + ]), + tuple( + 1019, + 909, + 142, + 398, + 654, + 1165, + 1275, + 1421, + 1055, + 288, + 33, + 544, + 800, + 1311, + 690, + 179, + 435, + 946, + 1202, + 836, + 69, + 325, + 581, + 1092, + 1348, + 982, + 471, + 215, + 727, + 1238, + 1128, + 361, + 106, + 617, + 873, + 1384, + 252, + 763, + 508, + ): list([ + 210, + ]), + tuple( + 1019, + 909, + 142, + 398, + 654, + 1165, + 1421, + 1055, + 288, + 33, + 544, + 800, + 1311, + 1201, + 434, + 179, + 690, + 946, + 836, + 69, + 325, + 581, + 1092, + 1348, + 982, + 471, + 215, + 727, + 1238, + 1128, + 361, + 106, + 617, + 873, + 1384, + 1274, + 507, + 252, + 763, + ): list([ + 209, + ]), + tuple( + 1019, + 1420, + 653, + 142, + 398, + 909, + 1165, + 799, + 32, + 288, + 544, + 1055, + 1311, + 945, + 178, + 434, + 690, + 1201, + 1347, + 580, + 69, + 325, + 836, + 1092, + 726, + 471, + 215, + 982, + 1238, + 872, + 105, + 361, + 617, + 1128, + 1384, + 251, + 1274, + 507, + 763, + ): list([ + 206, + ]), + tuple( + 1019, + 1420, + 653, + 142, + 398, + 909, + 1165, + 799, + 32, + 288, + 544, + 1055, + 1311, + 1201, + 434, + 179, + 690, + 946, + 1347, + 580, + 69, + 325, + 836, + 1092, + 726, + 471, + 215, + 982, + 1238, + 1128, + 105, + 361, + 617, + 873, + 1384, + 1274, + 507, + 252, + 763, + ): list([ + 207, + ]), + tuple( + 1019, + 1420, + 653, + 142, + 398, + 909, + 1165, + 1055, + 288, + 33, + 544, + 800, + 1311, + 1201, + 434, + 179, + 690, + 946, + 1347, + 580, + 69, + 325, + 836, + 1092, + 982, + 471, + 215, + 727, + 1238, + 1128, + 361, + 106, + 617, + 873, + 1384, + 1274, + 507, + 252, + 763, + ): list([ + 208, + ]), + tuple( + 1020, + 910, + 143, + 399, + 655, + 1166, + 1422, + 1276, + 1056, + 289, + 34, + 545, + 801, + 1312, + 691, + 180, + 436, + 947, + 1203, + 837, + 70, + 326, + 582, + 1093, + 1349, + 983, + 472, + 216, + 728, + 1239, + 1129, + 362, + 107, + 618, + 874, + 1385, + 253, + 764, + 509, + ): list([ + 220, + ]), + tuple( + 1024, + 257, + 2, + 513, + 769, + 1280, + 1170, + 403, + 148, + 659, + 915, + 1426, + 549, + 38, + 294, + 805, + 1061, + 1317, + 951, + 440, + 184, + 696, + 1207, + 1097, + 330, + 75, + 586, + 842, + 1353, + 1243, + 476, + 221, + 732, + 988, + 878, + 111, + 367, + 623, + 1134, + 1390, + ): list([ + 264, + ]), + tuple( + 1024, + 257, + 2, + 513, + 769, + 1280, + 1170, + 403, + 148, + 659, + 915, + 1426, + 1316, + 549, + 38, + 294, + 805, + 1061, + 695, + 440, + 184, + 951, + 1207, + 1097, + 330, + 75, + 586, + 842, + 1353, + 1243, + 476, + 221, + 732, + 988, + 1389, + 622, + 111, + 367, + 878, + 1134, + ): list([ + 263, + ]), + tuple( + 1024, + 257, + 2, + 513, + 769, + 1280, + 1426, + 403, + 148, + 659, + 915, + 1171, + 805, + 38, + 294, + 550, + 1061, + 1317, + 951, + 440, + 184, + 696, + 1207, + 1097, + 330, + 75, + 586, + 842, + 1353, + 732, + 477, + 221, + 988, + 1244, + 878, + 111, + 367, + 623, + 1134, + 1390, + ): list([ + 265, + ]), + tuple( + 1025, + 258, + 3, + 514, + 770, + 1281, + 1171, + 404, + 149, + 660, + 916, + 1427, + 550, + 39, + 295, + 806, + 1062, + 1318, + 952, + 441, + 185, + 697, + 1208, + 1098, + 331, + 76, + 587, + 843, + 1354, + 1244, + 477, + 222, + 733, + 989, + 879, + 112, + 368, + 624, + 1135, + 1391, + ): list([ + 274, + ]), + tuple( + 1025, + 258, + 3, + 514, + 770, + 1281, + 1171, + 404, + 149, + 660, + 916, + 1427, + 1317, + 550, + 39, + 295, + 806, + 1062, + 696, + 441, + 185, + 952, + 1208, + 1098, + 331, + 76, + 587, + 843, + 1354, + 1244, + 477, + 222, + 733, + 989, + 1390, + 623, + 112, + 368, + 879, + 1135, + ): list([ + 273, + ]), + tuple( + 1025, + 258, + 3, + 514, + 770, + 1281, + 1427, + 404, + 149, + 660, + 916, + 1172, + 806, + 39, + 295, + 551, + 1062, + 1318, + 952, + 441, + 185, + 697, + 1208, + 1098, + 331, + 76, + 587, + 843, + 1354, + 733, + 478, + 222, + 989, + 1245, + 879, + 112, + 368, + 624, + 1135, + 1391, + ): list([ + 275, + ]), + tuple( + 1026, + 259, + 4, + 515, + 771, + 1282, + 1172, + 405, + 150, + 661, + 917, + 1428, + 551, + 40, + 296, + 807, + 1063, + 1319, + 953, + 442, + 186, + 698, + 1209, + 1099, + 332, + 77, + 588, + 844, + 1355, + 1245, + 478, + 223, + 734, + 990, + 880, + 113, + 369, + 625, + 1136, + 1392, + ): list([ + 284, + ]), + tuple( + 1026, + 259, + 4, + 515, + 771, + 1282, + 1172, + 405, + 150, + 661, + 917, + 1428, + 1318, + 551, + 40, + 296, + 807, + 1063, + 697, + 442, + 186, + 953, + 1209, + 1099, + 332, + 77, + 588, + 844, + 1355, + 1245, + 478, + 223, + 734, + 990, + 1391, + 624, + 113, + 369, + 880, + 1136, + ): list([ + 283, + ]), + tuple( + 1026, + 259, + 4, + 515, + 771, + 1282, + 1428, + 405, + 150, + 661, + 917, + 1173, + 807, + 40, + 296, + 552, + 1063, + 1319, + 953, + 442, + 186, + 698, + 1209, + 1099, + 332, + 77, + 588, + 844, + 1355, + 734, + 479, + 223, + 990, + 1246, + 880, + 113, + 369, + 625, + 1136, + 1392, + ): list([ + 285, + ]), + tuple( + 1027, + 260, + 5, + 516, + 772, + 1283, + 1173, + 406, + 151, + 662, + 918, + 1429, + 552, + 41, + 297, + 808, + 1064, + 1320, + 954, + 443, + 187, + 699, + 1210, + 1100, + 333, + 78, + 589, + 845, + 1356, + 1246, + 479, + 224, + 735, + 991, + 881, + 114, + 370, + 626, + 1137, + 1393, + ): list([ + 294, + ]), + tuple( + 1027, + 260, + 5, + 516, + 772, + 1283, + 1173, + 406, + 151, + 662, + 918, + 1429, + 1319, + 552, + 41, + 297, + 808, + 1064, + 698, + 443, + 187, + 954, + 1210, + 1100, + 333, + 78, + 589, + 845, + 1356, + 1246, + 479, + 224, + 735, + 991, + 1392, + 625, + 114, + 370, + 881, + 1137, + ): list([ + 293, + ]), + tuple( + 1027, + 260, + 5, + 516, + 772, + 1283, + 1429, + 406, + 151, + 662, + 918, + 1174, + 808, + 41, + 297, + 553, + 1064, + 1320, + 954, + 443, + 187, + 699, + 1210, + 1100, + 333, + 78, + 589, + 845, + 1356, + 735, + 224, + 480, + 991, + 1247, + 881, + 114, + 370, + 626, + 1137, + 1393, + ): list([ + 295, + ]), + tuple( + 1028, + 261, + 6, + 517, + 773, + 1284, + 1174, + 663, + 407, + 152, + 919, + 1430, + 553, + 42, + 298, + 809, + 1065, + 1321, + 955, + 444, + 188, + 700, + 1211, + 1101, + 334, + 79, + 590, + 846, + 1357, + 1247, + 480, + 225, + 736, + 992, + 882, + 115, + 371, + 627, + 1138, + 1394, + ): list([ + 304, + ]), + tuple( + 1028, + 261, + 6, + 517, + 773, + 1284, + 1174, + 663, + 407, + 152, + 919, + 1430, + 1320, + 553, + 42, + 298, + 809, + 1065, + 699, + 444, + 188, + 955, + 1211, + 1101, + 334, + 79, + 590, + 846, + 1357, + 1247, + 480, + 225, + 736, + 992, + 1393, + 626, + 115, + 371, + 882, + 1138, + ): list([ + 303, + ]), + tuple( + 1028, + 261, + 6, + 517, + 773, + 1284, + 1430, + 663, + 407, + 152, + 919, + 1175, + 809, + 42, + 298, + 554, + 1065, + 1321, + 955, + 444, + 188, + 700, + 1211, + 1101, + 334, + 79, + 590, + 846, + 1357, + 736, + 225, + 481, + 992, + 1248, + 882, + 115, + 371, + 627, + 1138, + 1394, + ): list([ + 305, + ]), + tuple( + 1029, + 262, + 7, + 518, + 774, + 1285, + 1175, + 664, + 408, + 153, + 920, + 1431, + 554, + 43, + 299, + 810, + 1066, + 1322, + 956, + 189, + 445, + 701, + 1212, + 1102, + 335, + 80, + 591, + 847, + 1358, + 1248, + 481, + 226, + 737, + 993, + 883, + 116, + 372, + 628, + 1139, + 1395, + ): list([ + 314, + ]), + tuple( + 1029, + 262, + 7, + 518, + 774, + 1285, + 1175, + 664, + 408, + 153, + 920, + 1431, + 1321, + 554, + 43, + 299, + 810, + 1066, + 700, + 189, + 445, + 956, + 1212, + 1102, + 335, + 80, + 591, + 847, + 1358, + 1248, + 481, + 226, + 737, + 993, + 1394, + 627, + 116, + 372, + 883, + 1139, + ): list([ + 313, + ]), + tuple( + 1029, + 262, + 7, + 518, + 774, + 1285, + 1431, + 664, + 408, + 153, + 920, + 1176, + 810, + 43, + 299, + 555, + 1066, + 1322, + 956, + 189, + 445, + 701, + 1212, + 1102, + 335, + 80, + 591, + 847, + 1358, + 737, + 226, + 482, + 993, + 1249, + 883, + 116, + 372, + 628, + 1139, + 1395, + ): list([ + 315, + ]), + tuple( + 1030, + 263, + 8, + 519, + 775, + 1286, + 1176, + 665, + 409, + 154, + 921, + 1432, + 555, + 44, + 300, + 811, + 1067, + 1323, + 957, + 446, + 190, + 702, + 1213, + 1103, + 336, + 81, + 592, + 848, + 1359, + 1249, + 482, + 227, + 738, + 994, + 884, + 117, + 373, + 629, + 1140, + 1396, + ): list([ + 324, + ]), + tuple( + 1030, + 263, + 8, + 519, + 775, + 1286, + 1176, + 665, + 409, + 154, + 921, + 1432, + 1322, + 555, + 44, + 300, + 811, + 1067, + 701, + 446, + 190, + 957, + 1213, + 1103, + 336, + 81, + 592, + 848, + 1359, + 1249, + 482, + 227, + 738, + 994, + 1395, + 628, + 117, + 373, + 884, + 1140, + ): list([ + 323, + ]), + tuple( + 1030, + 263, + 8, + 519, + 775, + 1286, + 1432, + 665, + 409, + 154, + 921, + 1177, + 811, + 44, + 300, + 556, + 1067, + 1323, + 957, + 446, + 190, + 702, + 1213, + 1103, + 336, + 81, + 592, + 848, + 1359, + 738, + 227, + 483, + 994, + 1250, + 884, + 117, + 373, + 629, + 1140, + 1396, + ): list([ + 325, + ]), + tuple( + 1031, + 264, + 9, + 520, + 776, + 1287, + 1177, + 666, + 410, + 155, + 922, + 1433, + 556, + 45, + 301, + 812, + 1068, + 1324, + 958, + 447, + 191, + 703, + 1214, + 1104, + 337, + 82, + 593, + 849, + 1360, + 1250, + 483, + 228, + 739, + 995, + 885, + 118, + 374, + 630, + 1141, + 1397, + ): list([ + 334, + ]), + tuple( + 1031, + 264, + 9, + 520, + 776, + 1287, + 1177, + 666, + 410, + 155, + 922, + 1433, + 1323, + 556, + 45, + 301, + 812, + 1068, + 702, + 447, + 191, + 958, + 1214, + 1104, + 337, + 82, + 593, + 849, + 1360, + 1250, + 483, + 228, + 739, + 995, + 1396, + 629, + 118, + 374, + 885, + 1141, + ): list([ + 333, + ]), + tuple( + 1031, + 264, + 9, + 520, + 776, + 1287, + 1433, + 666, + 410, + 155, + 922, + 1178, + 812, + 45, + 301, + 557, + 1068, + 1324, + 958, + 447, + 191, + 703, + 1214, + 1104, + 337, + 82, + 593, + 849, + 1360, + 739, + 228, + 484, + 995, + 1251, + 885, + 118, + 374, + 630, + 1141, + 1397, + ): list([ + 335, + ]), + tuple( + 1032, + 265, + 10, + 521, + 777, + 1288, + 1178, + 667, + 411, + 156, + 923, + 1434, + 557, + 46, + 302, + 813, + 1069, + 1325, + 959, + 192, + 448, + 704, + 1215, + 1105, + 338, + 83, + 594, + 850, + 1361, + 119, + 375, + 1251, + 484, + 229, + 740, + 996, + 886, + 631, + 1142, + 1398, + ): list([ + 344, + ]), + tuple( + 1032, + 265, + 10, + 521, + 777, + 1288, + 1178, + 667, + 411, + 156, + 923, + 1434, + 1324, + 557, + 46, + 302, + 813, + 1069, + 703, + 192, + 448, + 959, + 1215, + 1105, + 338, + 83, + 594, + 850, + 1361, + 375, + 1251, + 484, + 229, + 740, + 996, + 1397, + 630, + 119, + 886, + 1142, + ): list([ + 343, + ]), + tuple( + 1032, + 265, + 10, + 521, + 777, + 1288, + 1434, + 667, + 411, + 156, + 923, + 1179, + 813, + 46, + 302, + 558, + 1069, + 1325, + 959, + 192, + 448, + 704, + 1215, + 1105, + 338, + 83, + 594, + 850, + 1361, + 119, + 375, + 740, + 229, + 485, + 996, + 1252, + 886, + 631, + 1142, + 1398, + ): list([ + 345, + ]), + tuple( + 1033, + 266, + 11, + 522, + 778, + 1289, + 1179, + 668, + 412, + 157, + 924, + 1435, + 558, + 47, + 303, + 814, + 1070, + 1326, + 960, + 193, + 449, + 705, + 1216, + 1106, + 339, + 84, + 595, + 851, + 1143, + 1362, + 120, + 1252, + 485, + 230, + 741, + 997, + 632, + 887, + 376, + 1399, + ): list([ + 354, + ]), + tuple( + 1033, + 266, + 11, + 522, + 778, + 1289, + 1179, + 668, + 412, + 157, + 924, + 1435, + 1325, + 558, + 47, + 303, + 814, + 1070, + 704, + 193, + 449, + 960, + 1216, + 1106, + 339, + 84, + 595, + 851, + 1143, + 1362, + 120, + 1252, + 485, + 230, + 741, + 997, + 887, + 1398, + 631, + 376, + ): list([ + 353, + ]), + tuple( + 1033, + 266, + 11, + 522, + 778, + 1289, + 1435, + 668, + 412, + 157, + 924, + 1180, + 814, + 47, + 303, + 559, + 1070, + 1326, + 960, + 193, + 449, + 705, + 1216, + 1106, + 339, + 84, + 595, + 851, + 1143, + 1362, + 120, + 741, + 230, + 486, + 997, + 1253, + 632, + 887, + 376, + 1399, + ): list([ + 355, + ]), + tuple( + 1038, + 271, + 16, + 527, + 783, + 1148, + 1294, + 1404, + 1184, + 417, + 162, + 673, + 929, + 1440, + 819, + 52, + 308, + 564, + 1075, + 1331, + 965, + 198, + 454, + 710, + 1221, + 1111, + 600, + 344, + 89, + 856, + 1367, + 1257, + 490, + 235, + 746, + 1002, + 381, + 125, + 892, + 637, + ): list([ + 39, + ]), + tuple( + 1038, + 271, + 16, + 527, + 783, + 1148, + 1294, + 1404, + 1440, + 673, + 162, + 418, + 929, + 1185, + 819, + 52, + 308, + 564, + 1075, + 1331, + 965, + 198, + 454, + 710, + 1221, + 1111, + 600, + 344, + 89, + 856, + 1367, + 746, + 235, + 491, + 1002, + 1258, + 381, + 125, + 892, + 637, + ): list([ + 40, + ]), + tuple( + 1040, + 273, + 18, + 529, + 785, + 894, + 1296, + 1150, + 1186, + 419, + 164, + 675, + 931, + 1442, + 1332, + 565, + 54, + 310, + 821, + 1077, + 967, + 200, + 456, + 712, + 1223, + 1113, + 602, + 346, + 91, + 858, + 1369, + 1259, + 492, + 237, + 748, + 1004, + 127, + 1405, + 638, + 383, + ): list([ + 58, + ]), + tuple( + 1145, + 779, + 12, + 268, + 524, + 1035, + 1291, + 925, + 414, + 670, + 158, + 1181, + 1437, + 1071, + 304, + 49, + 560, + 816, + 1327, + 706, + 195, + 451, + 962, + 1218, + 852, + 85, + 341, + 597, + 1108, + 1364, + 889, + 998, + 231, + 487, + 377, + 743, + 1254, + 1400, + 633, + 122, + ): list([ + 5, + ]), + tuple( + 1145, + 779, + 12, + 268, + 524, + 1035, + 1291, + 925, + 414, + 670, + 158, + 1181, + 1437, + 1327, + 560, + 49, + 305, + 816, + 1072, + 706, + 195, + 451, + 962, + 1218, + 852, + 85, + 341, + 597, + 1108, + 1364, + 889, + 122, + 231, + 487, + 743, + 999, + 1254, + 1400, + 633, + 378, + ): list([ + 6, + ]), + tuple( + 1145, + 779, + 12, + 268, + 524, + 1035, + 1291, + 1181, + 670, + 414, + 159, + 926, + 1437, + 1327, + 560, + 49, + 305, + 816, + 1072, + 706, + 195, + 451, + 962, + 1218, + 1108, + 85, + 341, + 597, + 853, + 1364, + 889, + 122, + 487, + 232, + 743, + 999, + 1254, + 1400, + 633, + 378, + ): list([ + 7, + ]), + tuple( + 1145, + 1035, + 268, + 13, + 524, + 780, + 1291, + 1181, + 670, + 414, + 159, + 926, + 1437, + 1327, + 560, + 49, + 305, + 816, + 1072, + 962, + 195, + 451, + 707, + 1218, + 1108, + 341, + 86, + 597, + 853, + 1364, + 889, + 122, + 487, + 232, + 743, + 999, + 1254, + 1400, + 633, + 378, + ): list([ + 8, + ]), + tuple( + 1145, + 1401, + 1035, + 268, + 13, + 524, + 780, + 1291, + 1181, + 670, + 414, + 159, + 926, + 1437, + 816, + 49, + 305, + 561, + 1072, + 1328, + 962, + 195, + 451, + 707, + 1218, + 1108, + 341, + 86, + 597, + 853, + 1364, + 122, + 487, + 232, + 743, + 999, + 1254, + 634, + 889, + 378, + ): list([ + 9, + ]), + tuple( + 1145, + 1401, + 1035, + 268, + 13, + 524, + 780, + 1291, + 1437, + 670, + 415, + 159, + 926, + 1182, + 816, + 49, + 305, + 561, + 1072, + 1328, + 962, + 195, + 451, + 707, + 1218, + 1108, + 341, + 86, + 597, + 853, + 1364, + 122, + 743, + 232, + 488, + 999, + 1255, + 634, + 889, + 378, + ): list([ + 10, + ]), + tuple( + 1145, + 1401, + 1291, + 524, + 13, + 269, + 780, + 1036, + 1437, + 670, + 415, + 159, + 926, + 1182, + 816, + 49, + 305, + 561, + 1072, + 1328, + 962, + 195, + 451, + 707, + 1218, + 1364, + 597, + 86, + 342, + 853, + 1109, + 122, + 743, + 232, + 488, + 999, + 1255, + 634, + 889, + 378, + ): list([ + 11, + ]), + tuple( + 1146, + 780, + 13, + 269, + 525, + 1036, + 1292, + 926, + 415, + 671, + 159, + 1182, + 1438, + 1072, + 305, + 50, + 561, + 817, + 1328, + 707, + 196, + 452, + 963, + 1219, + 853, + 86, + 342, + 598, + 1109, + 1365, + 999, + 232, + 488, + 744, + 1255, + 378, + 1401, + 634, + 123, + 890, + ): list([ + 15, + ]), + tuple( + 1146, + 780, + 13, + 269, + 525, + 1036, + 1292, + 926, + 415, + 671, + 159, + 1182, + 1438, + 1328, + 561, + 50, + 306, + 817, + 1073, + 707, + 196, + 452, + 963, + 1219, + 853, + 86, + 342, + 598, + 1109, + 1365, + 1255, + 232, + 488, + 744, + 123, + 1000, + 1401, + 634, + 379, + 890, + ): list([ + 16, + ]), + tuple( + 1146, + 780, + 13, + 269, + 525, + 1036, + 1292, + 1182, + 671, + 160, + 415, + 927, + 1438, + 1328, + 561, + 50, + 306, + 817, + 1073, + 707, + 196, + 452, + 963, + 1219, + 1109, + 86, + 342, + 598, + 854, + 1365, + 1255, + 488, + 233, + 744, + 123, + 1000, + 1401, + 634, + 379, + 890, + ): list([ + 17, + ]), + tuple( + 1146, + 1036, + 269, + 14, + 525, + 781, + 1292, + 1182, + 671, + 160, + 415, + 927, + 1438, + 1328, + 561, + 50, + 306, + 817, + 1073, + 963, + 196, + 452, + 708, + 1219, + 1109, + 342, + 87, + 598, + 854, + 1365, + 1255, + 488, + 233, + 744, + 123, + 1000, + 1401, + 634, + 379, + 890, + ): list([ + 18, + ]), + tuple( + 1146, + 1036, + 269, + 14, + 525, + 781, + 1292, + 1402, + 1182, + 671, + 160, + 415, + 927, + 1438, + 817, + 50, + 306, + 562, + 1073, + 1329, + 963, + 196, + 452, + 708, + 1219, + 1109, + 342, + 87, + 598, + 854, + 1365, + 1255, + 488, + 233, + 744, + 123, + 1000, + 379, + 890, + 635, + ): list([ + 19, + ]), + tuple( + 1146, + 1036, + 269, + 14, + 525, + 781, + 1292, + 1402, + 1438, + 671, + 160, + 416, + 927, + 1183, + 817, + 50, + 306, + 562, + 1073, + 1329, + 963, + 196, + 452, + 708, + 1219, + 1109, + 342, + 87, + 598, + 854, + 1365, + 744, + 233, + 489, + 123, + 1000, + 1256, + 379, + 890, + 635, + ): list([ + 20, + ]), + tuple( + 1146, + 1292, + 525, + 14, + 270, + 781, + 1037, + 1402, + 1438, + 671, + 160, + 416, + 927, + 1183, + 817, + 50, + 306, + 562, + 1073, + 1329, + 963, + 196, + 452, + 708, + 1219, + 1365, + 598, + 87, + 343, + 854, + 1110, + 744, + 233, + 489, + 123, + 1000, + 1256, + 379, + 890, + 635, + ): list([ + 21, + ]), + tuple( + 1147, + 1037, + 270, + 15, + 526, + 782, + 1293, + 1403, + 1183, + 416, + 161, + 672, + 928, + 1439, + 818, + 51, + 307, + 563, + 1074, + 1330, + 964, + 197, + 453, + 709, + 1220, + 1110, + 599, + 343, + 88, + 855, + 1366, + 1256, + 489, + 234, + 745, + 1001, + 124, + 380, + 891, + 636, + ): list([ + 29, + ]), + tuple( + 1147, + 1037, + 270, + 15, + 526, + 782, + 1293, + 1403, + 1439, + 672, + 161, + 417, + 928, + 1184, + 818, + 51, + 307, + 563, + 1074, + 1330, + 964, + 197, + 453, + 709, + 1220, + 1110, + 599, + 343, + 88, + 855, + 1366, + 745, + 234, + 490, + 1001, + 1257, + 124, + 380, + 891, + 636, + ): list([ + 30, + ]), + tuple( + 1147, + 1293, + 526, + 15, + 271, + 782, + 1038, + 1403, + 1439, + 672, + 161, + 417, + 928, + 1184, + 818, + 51, + 307, + 563, + 1074, + 1330, + 964, + 197, + 453, + 709, + 1220, + 1366, + 599, + 344, + 88, + 855, + 1111, + 745, + 234, + 490, + 1001, + 1257, + 124, + 380, + 891, + 636, + ): list([ + 31, + ]), + tuple( + 1152, + 385, + 130, + 641, + 897, + 1408, + 531, + 20, + 276, + 787, + 1043, + 1299, + 933, + 166, + 422, + 678, + 1189, + 1445, + 1079, + 568, + 312, + 57, + 824, + 1335, + 1225, + 458, + 203, + 714, + 970, + 860, + 605, + 349, + 93, + 1116, + 1372, + 1006, + 239, + 495, + 751, + 1262, + ): list([ + 84, + ]), + tuple( + 1152, + 385, + 130, + 641, + 897, + 1408, + 1298, + 531, + 20, + 276, + 787, + 1043, + 677, + 166, + 422, + 933, + 1189, + 1445, + 1079, + 568, + 312, + 57, + 824, + 1335, + 1225, + 458, + 203, + 714, + 970, + 1371, + 604, + 349, + 93, + 860, + 1116, + 1006, + 239, + 495, + 751, + 1262, + ): list([ + 83, + ]), + tuple( + 1152, + 385, + 130, + 641, + 897, + 1408, + 1298, + 531, + 20, + 276, + 787, + 1043, + 1444, + 677, + 166, + 422, + 933, + 1189, + 823, + 312, + 568, + 56, + 1079, + 1335, + 1225, + 458, + 203, + 714, + 970, + 1371, + 604, + 349, + 93, + 860, + 1116, + 750, + 239, + 495, + 1006, + 1262, + ): list([ + 82, + ]), + tuple( + 1153, + 386, + 131, + 642, + 898, + 1409, + 532, + 21, + 277, + 788, + 1044, + 1300, + 934, + 167, + 423, + 679, + 1190, + 1446, + 1080, + 569, + 313, + 58, + 825, + 1336, + 1226, + 459, + 204, + 715, + 971, + 861, + 350, + 606, + 94, + 1117, + 1373, + 1007, + 240, + 496, + 752, + 1263, + ): list([ + 94, + ]), + tuple( + 1153, + 386, + 131, + 642, + 898, + 1409, + 1299, + 532, + 21, + 277, + 788, + 1044, + 678, + 167, + 423, + 934, + 1190, + 1446, + 1080, + 569, + 313, + 58, + 825, + 1336, + 1226, + 459, + 204, + 715, + 971, + 1372, + 605, + 350, + 94, + 861, + 1117, + 1007, + 240, + 496, + 752, + 1263, + ): list([ + 93, + ]), + tuple( + 1153, + 386, + 131, + 642, + 898, + 1409, + 1299, + 532, + 21, + 277, + 788, + 1044, + 1445, + 678, + 167, + 423, + 934, + 1190, + 824, + 313, + 569, + 57, + 1080, + 1336, + 1226, + 459, + 204, + 715, + 971, + 1372, + 605, + 350, + 94, + 861, + 1117, + 751, + 240, + 496, + 1007, + 1263, + ): list([ + 92, + ]), + tuple( + 1154, + 387, + 132, + 643, + 899, + 1410, + 533, + 22, + 278, + 789, + 1045, + 1301, + 935, + 168, + 424, + 680, + 1191, + 1447, + 1081, + 570, + 314, + 59, + 826, + 1337, + 1227, + 460, + 205, + 716, + 972, + 862, + 351, + 607, + 95, + 1118, + 1374, + 1008, + 241, + 497, + 753, + 1264, + ): list([ + 104, + ]), + tuple( + 1154, + 387, + 132, + 643, + 899, + 1410, + 1300, + 533, + 22, + 278, + 789, + 1045, + 679, + 168, + 424, + 935, + 1191, + 1447, + 1081, + 570, + 314, + 59, + 826, + 1337, + 1227, + 460, + 205, + 716, + 972, + 1373, + 606, + 351, + 95, + 862, + 1118, + 1008, + 241, + 497, + 753, + 1264, + ): list([ + 103, + ]), + tuple( + 1154, + 387, + 132, + 643, + 899, + 1410, + 1300, + 533, + 22, + 278, + 789, + 1045, + 1446, + 679, + 168, + 424, + 935, + 1191, + 825, + 314, + 570, + 58, + 1081, + 1337, + 1227, + 460, + 205, + 716, + 972, + 1373, + 606, + 351, + 95, + 862, + 1118, + 752, + 241, + 497, + 1008, + 1264, + ): list([ + 102, + ]), + tuple( + 1155, + 388, + 133, + 644, + 900, + 1411, + 534, + 279, + 23, + 790, + 1046, + 1302, + 936, + 169, + 425, + 681, + 1192, + 1448, + 1082, + 571, + 315, + 60, + 827, + 1338, + 1228, + 461, + 206, + 717, + 973, + 863, + 96, + 352, + 608, + 1119, + 1375, + 1009, + 242, + 498, + 754, + 1265, + ): list([ + 114, + ]), + tuple( + 1155, + 388, + 133, + 644, + 900, + 1411, + 1301, + 534, + 23, + 279, + 790, + 1046, + 1447, + 680, + 169, + 425, + 936, + 1192, + 826, + 315, + 571, + 59, + 1082, + 1338, + 1228, + 461, + 206, + 717, + 973, + 1374, + 607, + 96, + 352, + 863, + 1119, + 753, + 242, + 498, + 1009, + 1265, + ): list([ + 112, + ]), + tuple( + 1155, + 388, + 133, + 644, + 900, + 1411, + 1301, + 534, + 279, + 23, + 790, + 1046, + 680, + 169, + 425, + 936, + 1192, + 1448, + 1082, + 571, + 315, + 60, + 827, + 1338, + 1228, + 461, + 206, + 717, + 973, + 1374, + 607, + 96, + 352, + 863, + 1119, + 1009, + 242, + 498, + 754, + 1265, + ): list([ + 113, + ]), + tuple( + 1156, + 389, + 134, + 645, + 901, + 1412, + 535, + 280, + 24, + 791, + 1047, + 1303, + 937, + 170, + 426, + 682, + 1193, + 1449, + 1083, + 316, + 61, + 572, + 828, + 1339, + 1229, + 462, + 207, + 718, + 974, + 864, + 97, + 353, + 609, + 1120, + 1376, + 1010, + 243, + 499, + 755, + 1266, + ): list([ + 124, + ]), + tuple( + 1156, + 389, + 134, + 645, + 901, + 1412, + 1302, + 535, + 280, + 24, + 791, + 1047, + 681, + 170, + 426, + 937, + 1193, + 1449, + 1083, + 316, + 61, + 572, + 828, + 1339, + 1229, + 462, + 207, + 718, + 974, + 1375, + 608, + 97, + 353, + 864, + 1120, + 1010, + 243, + 499, + 755, + 1266, + ): list([ + 123, + ]), + tuple( + 1156, + 389, + 134, + 645, + 901, + 1412, + 1302, + 535, + 280, + 24, + 791, + 1047, + 1448, + 681, + 170, + 426, + 937, + 1193, + 827, + 316, + 60, + 572, + 1083, + 1339, + 1229, + 462, + 207, + 718, + 974, + 1375, + 608, + 97, + 353, + 864, + 1120, + 754, + 243, + 499, + 1010, + 1266, + ): list([ + 122, + ]), + tuple( + 1157, + 390, + 135, + 646, + 902, + 1413, + 536, + 281, + 25, + 792, + 1048, + 1304, + 938, + 171, + 427, + 683, + 1194, + 1450, + 1084, + 573, + 317, + 62, + 829, + 1340, + 1230, + 463, + 208, + 719, + 975, + 865, + 98, + 354, + 610, + 1121, + 1377, + 1011, + 244, + 500, + 756, + 1267, + ): list([ + 134, + ]), + tuple( + 1157, + 390, + 135, + 646, + 902, + 1413, + 1303, + 536, + 281, + 25, + 792, + 1048, + 682, + 171, + 427, + 938, + 1194, + 1450, + 1084, + 573, + 317, + 62, + 829, + 1340, + 1230, + 463, + 208, + 719, + 975, + 1376, + 609, + 98, + 354, + 865, + 1121, + 1011, + 244, + 500, + 756, + 1267, + ): list([ + 133, + ]), + tuple( + 1157, + 390, + 135, + 646, + 902, + 1413, + 1303, + 536, + 281, + 25, + 792, + 1048, + 1449, + 682, + 171, + 427, + 938, + 1194, + 828, + 573, + 317, + 61, + 1084, + 1340, + 1230, + 463, + 208, + 719, + 975, + 1376, + 609, + 98, + 354, + 865, + 1121, + 755, + 244, + 500, + 1011, + 1267, + ): list([ + 132, + ]), + tuple( + 1158, + 391, + 136, + 647, + 903, + 1414, + 537, + 282, + 26, + 793, + 1049, + 1305, + 939, + 172, + 428, + 684, + 1195, + 1451, + 1085, + 574, + 318, + 63, + 830, + 1341, + 1231, + 464, + 209, + 720, + 976, + 866, + 99, + 355, + 611, + 1122, + 1378, + 1012, + 245, + 501, + 757, + 1268, + ): list([ + 144, + ]), + tuple( + 1158, + 391, + 136, + 647, + 903, + 1414, + 1304, + 537, + 282, + 26, + 793, + 1049, + 683, + 172, + 428, + 939, + 1195, + 1451, + 1085, + 574, + 318, + 63, + 830, + 1341, + 1231, + 464, + 209, + 720, + 976, + 1377, + 610, + 99, + 355, + 866, + 1122, + 1012, + 245, + 501, + 757, + 1268, + ): list([ + 143, + ]), + tuple( + 1158, + 391, + 136, + 647, + 903, + 1414, + 1304, + 537, + 282, + 26, + 793, + 1049, + 1450, + 683, + 172, + 428, + 939, + 1195, + 829, + 318, + 574, + 62, + 1085, + 1341, + 1231, + 464, + 209, + 720, + 976, + 1377, + 610, + 99, + 355, + 866, + 1122, + 756, + 245, + 501, + 1012, + 1268, + ): list([ + 142, + ]), + tuple( + 1159, + 392, + 137, + 648, + 904, + 1415, + 538, + 283, + 27, + 794, + 1050, + 1306, + 940, + 173, + 429, + 685, + 1196, + 1452, + 1086, + 575, + 64, + 319, + 831, + 1342, + 1232, + 465, + 210, + 721, + 977, + 867, + 100, + 356, + 612, + 1123, + 1379, + 1013, + 246, + 502, + 758, + 1269, + ): list([ + 154, + ]), + tuple( + 1159, + 392, + 137, + 648, + 904, + 1415, + 1305, + 538, + 283, + 27, + 794, + 1050, + 684, + 173, + 429, + 940, + 1196, + 1452, + 1086, + 575, + 64, + 319, + 831, + 1342, + 1232, + 465, + 210, + 721, + 977, + 1378, + 611, + 100, + 356, + 867, + 1123, + 1013, + 246, + 502, + 758, + 1269, + ): list([ + 153, + ]), + tuple( + 1159, + 392, + 137, + 648, + 904, + 1415, + 1305, + 538, + 283, + 27, + 794, + 1050, + 1451, + 684, + 173, + 429, + 940, + 1196, + 830, + 319, + 575, + 63, + 1086, + 1342, + 1232, + 465, + 210, + 721, + 977, + 1378, + 611, + 100, + 356, + 867, + 1123, + 757, + 246, + 502, + 1013, + 1269, + ): list([ + 152, + ]), + tuple( + 1272, + 906, + 139, + 395, + 651, + 1162, + 1418, + 140, + 907, + 1163, + 1308, + 541, + 30, + 286, + 797, + 1053, + 1309, + 542, + 687, + 176, + 432, + 943, + 1199, + 688, + 833, + 66, + 322, + 578, + 1089, + 1345, + 67, + 834, + 979, + 212, + 468, + 724, + 1235, + 213, + 1016, + 980, + 469, + 1236, + 249, + 614, + 103, + 359, + 870, + 1126, + 1381, + 615, + 1382, + 761, + 760, + 505, + ): list([ + 181, + 182, + 183, + 184, + 185, + ]), + tuple( + 1272, + 906, + 139, + 395, + 651, + 1162, + 1418, + 1052, + 541, + 285, + 30, + 797, + 1308, + 687, + 176, + 432, + 943, + 1199, + 833, + 66, + 322, + 578, + 1089, + 1345, + 979, + 212, + 468, + 724, + 1235, + 1016, + 249, + 358, + 103, + 614, + 870, + 1125, + 1381, + 760, + 505, + ): list([ + 180, + ]), + tuple( + 1273, + 907, + 140, + 396, + 652, + 1163, + 1419, + 141, + 908, + 1164, + 1309, + 542, + 287, + 31, + 798, + 1054, + 1310, + 543, + 688, + 177, + 433, + 944, + 1200, + 689, + 834, + 67, + 323, + 579, + 1090, + 1346, + 68, + 835, + 980, + 213, + 469, + 725, + 1236, + 214, + 981, + 470, + 1237, + 762, + 1382, + 615, + 104, + 360, + 250, + 871, + 1127, + 616, + 1383, + 761, + 506, + 1017, + ): list([ + 191, + 192, + 193, + 194, + 195, + ]), + tuple( + 1273, + 907, + 140, + 396, + 652, + 1163, + 1419, + 1053, + 542, + 286, + 31, + 798, + 1309, + 688, + 177, + 433, + 944, + 1200, + 834, + 67, + 323, + 579, + 1090, + 1346, + 980, + 213, + 469, + 725, + 1236, + 1126, + 359, + 104, + 615, + 250, + 871, + 1382, + 761, + 506, + 1017, + ): list([ + 190, + ]), + tuple( + 1280, + 257, + 2, + 513, + 769, + 1025, + 1426, + 659, + 148, + 404, + 915, + 1171, + 805, + 38, + 294, + 550, + 1061, + 1317, + 951, + 440, + 184, + 696, + 1207, + 1353, + 586, + 75, + 331, + 842, + 1098, + 732, + 477, + 221, + 988, + 1244, + 878, + 111, + 367, + 623, + 1134, + 1390, + ): list([ + 266, + ]), + tuple( + 1280, + 513, + 2, + 258, + 769, + 1025, + 915, + 148, + 404, + 660, + 1171, + 1427, + 1061, + 294, + 39, + 550, + 806, + 1317, + 1207, + 440, + 185, + 696, + 952, + 842, + 75, + 331, + 587, + 1098, + 1354, + 988, + 477, + 221, + 733, + 1244, + 1134, + 367, + 112, + 623, + 879, + 1390, + ): list([ + 269, + ]), + tuple( + 1280, + 513, + 2, + 258, + 769, + 1025, + 1426, + 659, + 148, + 404, + 915, + 1171, + 805, + 38, + 294, + 550, + 1061, + 1317, + 1207, + 440, + 185, + 696, + 952, + 1353, + 586, + 75, + 331, + 842, + 1098, + 732, + 477, + 221, + 988, + 1244, + 1134, + 111, + 367, + 623, + 879, + 1390, + ): list([ + 267, + ]), + tuple( + 1280, + 513, + 2, + 258, + 769, + 1025, + 1426, + 659, + 148, + 404, + 915, + 1171, + 1061, + 294, + 39, + 550, + 806, + 1317, + 1207, + 440, + 185, + 696, + 952, + 1353, + 586, + 75, + 331, + 842, + 1098, + 988, + 477, + 221, + 733, + 1244, + 1134, + 367, + 112, + 623, + 879, + 1390, + ): list([ + 268, + ]), + tuple( + 1281, + 258, + 3, + 514, + 770, + 1026, + 1427, + 660, + 149, + 405, + 916, + 1172, + 806, + 39, + 295, + 551, + 1062, + 1318, + 952, + 441, + 185, + 697, + 1208, + 1354, + 587, + 76, + 332, + 843, + 1099, + 733, + 478, + 222, + 989, + 1245, + 879, + 112, + 368, + 624, + 1135, + 1391, + ): list([ + 276, + ]), + tuple( + 1281, + 514, + 3, + 259, + 770, + 1026, + 916, + 149, + 405, + 661, + 1172, + 1428, + 1062, + 295, + 40, + 551, + 807, + 1318, + 1208, + 441, + 186, + 697, + 953, + 843, + 76, + 332, + 588, + 1099, + 1355, + 989, + 478, + 222, + 734, + 1245, + 1135, + 368, + 113, + 624, + 880, + 1391, + ): list([ + 279, + ]), + tuple( + 1281, + 514, + 3, + 259, + 770, + 1026, + 1427, + 660, + 149, + 405, + 916, + 1172, + 806, + 39, + 295, + 551, + 1062, + 1318, + 1208, + 441, + 186, + 697, + 953, + 1354, + 587, + 76, + 332, + 843, + 1099, + 733, + 478, + 222, + 989, + 1245, + 1135, + 112, + 368, + 624, + 880, + 1391, + ): list([ + 277, + ]), + tuple( + 1281, + 514, + 3, + 259, + 770, + 1026, + 1427, + 660, + 149, + 405, + 916, + 1172, + 1062, + 295, + 40, + 551, + 807, + 1318, + 1208, + 441, + 186, + 697, + 953, + 1354, + 587, + 76, + 332, + 843, + 1099, + 989, + 478, + 222, + 734, + 1245, + 1135, + 368, + 113, + 624, + 880, + 1391, + ): list([ + 278, + ]), + tuple( + 1282, + 259, + 4, + 515, + 771, + 1027, + 1428, + 661, + 150, + 406, + 917, + 1173, + 807, + 40, + 296, + 552, + 1063, + 1319, + 953, + 442, + 186, + 698, + 1209, + 1355, + 588, + 77, + 333, + 844, + 1100, + 734, + 479, + 223, + 990, + 1246, + 880, + 113, + 369, + 625, + 1136, + 1392, + ): list([ + 286, + ]), + tuple( + 1282, + 515, + 4, + 260, + 771, + 1027, + 917, + 150, + 406, + 662, + 1173, + 1429, + 1063, + 296, + 41, + 552, + 808, + 1319, + 1209, + 442, + 187, + 698, + 954, + 844, + 77, + 333, + 589, + 1100, + 1356, + 990, + 479, + 223, + 735, + 1246, + 1136, + 369, + 114, + 625, + 881, + 1392, + ): list([ + 289, + ]), + tuple( + 1282, + 515, + 4, + 260, + 771, + 1027, + 1428, + 661, + 150, + 406, + 917, + 1173, + 807, + 40, + 296, + 552, + 1063, + 1319, + 1209, + 442, + 187, + 698, + 954, + 1355, + 588, + 77, + 333, + 844, + 1100, + 734, + 479, + 223, + 990, + 1246, + 1136, + 113, + 369, + 625, + 881, + 1392, + ): list([ + 287, + ]), + tuple( + 1282, + 515, + 4, + 260, + 771, + 1027, + 1428, + 661, + 150, + 406, + 917, + 1173, + 1063, + 296, + 41, + 552, + 808, + 1319, + 1209, + 442, + 187, + 698, + 954, + 1355, + 588, + 77, + 333, + 844, + 1100, + 990, + 479, + 223, + 735, + 1246, + 1136, + 369, + 114, + 625, + 881, + 1392, + ): list([ + 288, + ]), + tuple( + 1283, + 260, + 5, + 516, + 772, + 1028, + 1429, + 662, + 407, + 151, + 918, + 1174, + 808, + 41, + 297, + 553, + 1064, + 1320, + 954, + 443, + 187, + 699, + 1210, + 1356, + 589, + 78, + 334, + 845, + 1101, + 735, + 224, + 480, + 991, + 1247, + 881, + 114, + 370, + 626, + 1137, + 1393, + ): list([ + 296, + ]), + tuple( + 1283, + 516, + 5, + 261, + 772, + 1028, + 918, + 407, + 663, + 151, + 1174, + 1430, + 1064, + 297, + 42, + 553, + 809, + 1320, + 1210, + 443, + 188, + 699, + 955, + 845, + 78, + 334, + 590, + 1101, + 1357, + 991, + 224, + 480, + 736, + 1247, + 1137, + 370, + 115, + 626, + 882, + 1393, + ): list([ + 299, + ]), + tuple( + 1283, + 516, + 5, + 261, + 772, + 1028, + 1429, + 662, + 407, + 151, + 918, + 1174, + 808, + 41, + 297, + 553, + 1064, + 1320, + 1210, + 443, + 188, + 699, + 955, + 1356, + 589, + 78, + 334, + 845, + 1101, + 735, + 224, + 480, + 991, + 1247, + 1137, + 114, + 370, + 626, + 882, + 1393, + ): list([ + 297, + ]), + tuple( + 1283, + 516, + 5, + 261, + 772, + 1028, + 1429, + 662, + 407, + 151, + 918, + 1174, + 1064, + 297, + 42, + 553, + 809, + 1320, + 1210, + 443, + 188, + 699, + 955, + 1356, + 589, + 78, + 334, + 845, + 1101, + 991, + 224, + 480, + 736, + 1247, + 1137, + 370, + 115, + 626, + 882, + 1393, + ): list([ + 298, + ]), + tuple( + 1284, + 261, + 6, + 517, + 773, + 1029, + 1430, + 663, + 408, + 152, + 919, + 1175, + 809, + 42, + 298, + 554, + 1065, + 1321, + 955, + 444, + 188, + 700, + 1211, + 1357, + 590, + 79, + 335, + 846, + 1102, + 736, + 225, + 481, + 992, + 1248, + 882, + 115, + 371, + 627, + 1138, + 1394, + ): list([ + 306, + ]), + tuple( + 1284, + 517, + 6, + 262, + 773, + 1029, + 919, + 408, + 664, + 152, + 1175, + 1431, + 1065, + 298, + 43, + 554, + 810, + 1321, + 1211, + 444, + 189, + 700, + 956, + 846, + 79, + 335, + 591, + 1102, + 1358, + 992, + 225, + 481, + 737, + 1248, + 1138, + 371, + 116, + 627, + 883, + 1394, + ): list([ + 309, + ]), + tuple( + 1284, + 517, + 6, + 262, + 773, + 1029, + 1430, + 663, + 408, + 152, + 919, + 1175, + 809, + 42, + 298, + 554, + 1065, + 1321, + 1211, + 444, + 189, + 700, + 956, + 1357, + 590, + 79, + 335, + 846, + 1102, + 736, + 225, + 481, + 992, + 1248, + 1138, + 115, + 371, + 627, + 883, + 1394, + ): list([ + 307, + ]), + tuple( + 1284, + 517, + 6, + 262, + 773, + 1029, + 1430, + 663, + 408, + 152, + 919, + 1175, + 1065, + 298, + 43, + 554, + 810, + 1321, + 1211, + 444, + 189, + 700, + 956, + 1357, + 590, + 79, + 335, + 846, + 1102, + 992, + 225, + 481, + 737, + 1248, + 1138, + 371, + 116, + 627, + 883, + 1394, + ): list([ + 308, + ]), + tuple( + 1285, + 262, + 7, + 518, + 774, + 1030, + 1431, + 664, + 409, + 153, + 920, + 1176, + 810, + 43, + 299, + 555, + 1066, + 1322, + 956, + 189, + 445, + 701, + 1212, + 1358, + 591, + 80, + 336, + 847, + 1103, + 737, + 226, + 482, + 993, + 1249, + 883, + 116, + 372, + 628, + 1139, + 1395, + ): list([ + 316, + ]), + tuple( + 1285, + 518, + 7, + 263, + 774, + 1030, + 920, + 409, + 665, + 153, + 1176, + 1432, + 1066, + 299, + 44, + 555, + 811, + 1322, + 1212, + 445, + 190, + 701, + 957, + 847, + 80, + 336, + 592, + 1103, + 1359, + 993, + 226, + 482, + 738, + 1249, + 1139, + 372, + 117, + 628, + 884, + 1395, + ): list([ + 319, + ]), + tuple( + 1285, + 518, + 7, + 263, + 774, + 1030, + 1431, + 664, + 409, + 153, + 920, + 1176, + 810, + 43, + 299, + 555, + 1066, + 1322, + 1212, + 445, + 190, + 701, + 957, + 1358, + 591, + 80, + 336, + 847, + 1103, + 737, + 226, + 482, + 993, + 1249, + 1139, + 116, + 372, + 628, + 884, + 1395, + ): list([ + 317, + ]), + tuple( + 1285, + 518, + 7, + 263, + 774, + 1030, + 1431, + 664, + 409, + 153, + 920, + 1176, + 1066, + 299, + 44, + 555, + 811, + 1322, + 1212, + 445, + 190, + 701, + 957, + 1358, + 591, + 80, + 336, + 847, + 1103, + 993, + 226, + 482, + 738, + 1249, + 1139, + 372, + 117, + 628, + 884, + 1395, + ): list([ + 318, + ]), + tuple( + 1286, + 263, + 8, + 519, + 775, + 1031, + 1432, + 665, + 410, + 154, + 921, + 1177, + 811, + 44, + 300, + 556, + 1067, + 1323, + 957, + 446, + 190, + 702, + 1213, + 1359, + 592, + 81, + 337, + 848, + 1104, + 738, + 227, + 483, + 994, + 1250, + 884, + 117, + 373, + 629, + 1140, + 1396, + ): list([ + 326, + ]), + tuple( + 1286, + 519, + 8, + 264, + 775, + 1031, + 921, + 410, + 666, + 154, + 1177, + 1433, + 1067, + 300, + 45, + 556, + 812, + 1323, + 1213, + 446, + 191, + 702, + 958, + 848, + 81, + 337, + 593, + 1104, + 1360, + 994, + 227, + 483, + 739, + 1250, + 1140, + 373, + 118, + 629, + 885, + 1396, + ): list([ + 329, + ]), + tuple( + 1286, + 519, + 8, + 264, + 775, + 1031, + 1432, + 665, + 410, + 154, + 921, + 1177, + 811, + 44, + 300, + 556, + 1067, + 1323, + 1213, + 446, + 191, + 702, + 958, + 1359, + 592, + 81, + 337, + 848, + 1104, + 738, + 227, + 483, + 994, + 1250, + 1140, + 117, + 373, + 629, + 885, + 1396, + ): list([ + 327, + ]), + tuple( + 1286, + 519, + 8, + 264, + 775, + 1031, + 1432, + 665, + 410, + 154, + 921, + 1177, + 1067, + 300, + 45, + 556, + 812, + 1323, + 1213, + 446, + 191, + 702, + 958, + 1359, + 592, + 81, + 337, + 848, + 1104, + 994, + 227, + 483, + 739, + 1250, + 1140, + 373, + 118, + 629, + 885, + 1396, + ): list([ + 328, + ]), + tuple( + 1287, + 264, + 9, + 520, + 776, + 1032, + 1433, + 666, + 411, + 155, + 922, + 1178, + 812, + 45, + 301, + 557, + 1068, + 1324, + 958, + 447, + 191, + 703, + 1214, + 1360, + 593, + 82, + 338, + 849, + 1105, + 739, + 228, + 484, + 995, + 1251, + 885, + 118, + 374, + 630, + 1141, + 1397, + ): list([ + 336, + ]), + tuple( + 1287, + 520, + 9, + 265, + 776, + 1032, + 922, + 411, + 155, + 667, + 1178, + 1434, + 1068, + 301, + 46, + 557, + 813, + 1324, + 1214, + 447, + 192, + 703, + 959, + 849, + 82, + 338, + 594, + 1105, + 1361, + 995, + 228, + 484, + 740, + 1251, + 1141, + 374, + 119, + 630, + 886, + 1397, + ): list([ + 339, + ]), + tuple( + 1287, + 520, + 9, + 265, + 776, + 1032, + 1433, + 666, + 411, + 155, + 922, + 1178, + 812, + 45, + 301, + 557, + 1068, + 1324, + 1214, + 447, + 192, + 703, + 959, + 1360, + 593, + 82, + 338, + 849, + 1105, + 739, + 228, + 484, + 995, + 1251, + 1141, + 118, + 374, + 630, + 886, + 1397, + ): list([ + 337, + ]), + tuple( + 1287, + 520, + 9, + 265, + 776, + 1032, + 1433, + 666, + 411, + 155, + 922, + 1178, + 1068, + 301, + 46, + 557, + 813, + 1324, + 1214, + 447, + 192, + 703, + 959, + 1360, + 593, + 82, + 338, + 849, + 1105, + 995, + 228, + 484, + 740, + 1251, + 1141, + 374, + 119, + 630, + 886, + 1397, + ): list([ + 338, + ]), + tuple( + 1288, + 265, + 10, + 521, + 777, + 1033, + 1434, + 667, + 412, + 156, + 923, + 1179, + 813, + 46, + 302, + 558, + 1069, + 1325, + 959, + 192, + 448, + 704, + 1215, + 1361, + 594, + 83, + 339, + 850, + 1106, + 119, + 375, + 740, + 229, + 485, + 996, + 1252, + 886, + 631, + 1142, + 1398, + ): list([ + 346, + ]), + tuple( + 1288, + 521, + 10, + 266, + 777, + 1033, + 923, + 668, + 412, + 156, + 1179, + 1435, + 1069, + 302, + 47, + 558, + 814, + 1325, + 1215, + 448, + 193, + 704, + 960, + 850, + 83, + 339, + 595, + 1106, + 1362, + 375, + 996, + 229, + 485, + 741, + 1252, + 887, + 1142, + 631, + 120, + 1398, + ): list([ + 349, + ]), + tuple( + 1288, + 521, + 10, + 266, + 777, + 1033, + 1434, + 667, + 412, + 156, + 923, + 1179, + 813, + 46, + 302, + 558, + 1069, + 1325, + 1215, + 448, + 193, + 704, + 960, + 1361, + 594, + 83, + 339, + 850, + 1106, + 119, + 375, + 740, + 229, + 485, + 996, + 1252, + 887, + 1142, + 631, + 1398, + ): list([ + 347, + ]), + tuple( + 1288, + 521, + 10, + 266, + 777, + 1033, + 1434, + 667, + 412, + 156, + 923, + 1179, + 1069, + 302, + 47, + 558, + 814, + 1325, + 1215, + 448, + 193, + 704, + 960, + 1361, + 594, + 83, + 339, + 850, + 1106, + 375, + 996, + 229, + 485, + 741, + 1252, + 887, + 1142, + 631, + 120, + 1398, + ): list([ + 348, + ]), + tuple( + 1289, + 266, + 11, + 522, + 778, + 1034, + 1435, + 668, + 157, + 413, + 924, + 1180, + 814, + 47, + 303, + 559, + 1070, + 1326, + 960, + 193, + 449, + 705, + 1216, + 1362, + 595, + 84, + 340, + 851, + 1107, + 1143, + 120, + 741, + 230, + 486, + 997, + 1253, + 632, + 887, + 376, + 1399, + ): list([ + 356, + ]), + tuple( + 1289, + 522, + 11, + 267, + 778, + 1034, + 924, + 669, + 157, + 413, + 1180, + 1436, + 1070, + 303, + 48, + 559, + 815, + 1326, + 1216, + 449, + 194, + 705, + 961, + 851, + 84, + 340, + 596, + 1107, + 1363, + 376, + 997, + 230, + 486, + 742, + 1253, + 888, + 1143, + 632, + 121, + 1399, + ): list([ + 359, + ]), + tuple( + 1289, + 522, + 11, + 267, + 778, + 1034, + 1435, + 668, + 157, + 413, + 924, + 1180, + 814, + 47, + 303, + 559, + 1070, + 1326, + 1216, + 449, + 194, + 705, + 961, + 1362, + 595, + 84, + 340, + 851, + 1107, + 120, + 741, + 230, + 486, + 997, + 1253, + 632, + 888, + 1143, + 376, + 1399, + ): list([ + 357, + ]), + tuple( + 1289, + 522, + 11, + 267, + 778, + 1034, + 1435, + 668, + 157, + 413, + 924, + 1180, + 1070, + 303, + 48, + 559, + 815, + 1326, + 1216, + 449, + 194, + 705, + 961, + 1362, + 595, + 84, + 340, + 851, + 1107, + 376, + 997, + 230, + 486, + 742, + 1253, + 888, + 1143, + 632, + 121, + 1399, + ): list([ + 358, + ]), + tuple( + 1294, + 527, + 16, + 272, + 783, + 1039, + 1148, + 1404, + 1440, + 673, + 162, + 418, + 929, + 1185, + 819, + 52, + 308, + 564, + 1075, + 1331, + 965, + 198, + 454, + 710, + 1221, + 1367, + 600, + 345, + 89, + 856, + 1112, + 746, + 235, + 491, + 1002, + 1258, + 381, + 125, + 892, + 637, + ): list([ + 41, + ]), + tuple( + 1400, + 523, + 12, + 268, + 779, + 1035, + 1291, + 925, + 414, + 670, + 158, + 1181, + 1437, + 1071, + 304, + 49, + 560, + 816, + 1327, + 1217, + 450, + 195, + 706, + 962, + 852, + 85, + 341, + 597, + 1108, + 1364, + 889, + 998, + 231, + 487, + 377, + 743, + 1254, + 1144, + 633, + 122, + ): list([ + 4, + ]), + tuple( + 1400, + 1034, + 267, + 12, + 523, + 779, + 1290, + 268, + 1035, + 11, + 778, + 1436, + 669, + 414, + 158, + 925, + 1181, + 413, + 1180, + 1326, + 815, + 48, + 304, + 560, + 1071, + 1327, + 559, + 961, + 194, + 450, + 706, + 1217, + 705, + 1107, + 340, + 85, + 596, + 852, + 1363, + 341, + 1108, + 84, + 851, + 121, + 1253, + 742, + 231, + 487, + 998, + 1254, + 486, + 632, + 633, + 1399, + 888, + 377, + 1144, + ): list([ + 0, + 1, + 362, + 363, + 364, + 365, + ]), + tuple( + 1400, + 1290, + 523, + 12, + 268, + 779, + 1035, + 669, + 414, + 158, + 925, + 1181, + 1437, + 1071, + 304, + 49, + 560, + 816, + 1327, + 1217, + 450, + 195, + 706, + 962, + 1363, + 596, + 85, + 341, + 852, + 1108, + 889, + 998, + 231, + 487, + 377, + 743, + 1254, + 1144, + 633, + 122, + ): list([ + 3, + ]), + tuple( + 1400, + 1290, + 523, + 12, + 268, + 779, + 1035, + 1436, + 669, + 414, + 158, + 925, + 1181, + 815, + 48, + 304, + 560, + 1071, + 1327, + 1217, + 450, + 195, + 706, + 962, + 1363, + 596, + 85, + 341, + 852, + 1108, + 889, + 742, + 231, + 487, + 377, + 998, + 1254, + 1144, + 633, + 122, + ): list([ + 2, + ]), + tuple( + 1401, + 524, + 13, + 269, + 780, + 1036, + 1292, + 926, + 415, + 671, + 159, + 1182, + 1438, + 1072, + 305, + 50, + 561, + 817, + 1328, + 1218, + 451, + 196, + 707, + 963, + 853, + 86, + 342, + 598, + 1109, + 1365, + 999, + 232, + 488, + 744, + 1255, + 378, + 1145, + 634, + 123, + 890, + ): list([ + 14, + ]), + tuple( + 1401, + 1291, + 524, + 13, + 269, + 780, + 1036, + 670, + 415, + 159, + 926, + 1182, + 1438, + 1072, + 305, + 50, + 561, + 817, + 1328, + 1218, + 451, + 196, + 707, + 963, + 1364, + 597, + 86, + 342, + 853, + 1109, + 999, + 232, + 488, + 744, + 1255, + 378, + 1145, + 634, + 123, + 890, + ): list([ + 13, + ]), + tuple( + 1401, + 1291, + 524, + 13, + 269, + 780, + 1036, + 1437, + 670, + 415, + 159, + 926, + 1182, + 816, + 49, + 305, + 561, + 1072, + 1328, + 1218, + 451, + 196, + 707, + 963, + 1364, + 597, + 86, + 342, + 853, + 1109, + 743, + 232, + 488, + 999, + 1255, + 378, + 1145, + 634, + 123, + 890, + ): list([ + 12, + ]), + tuple( + 1408, + 385, + 130, + 641, + 897, + 1153, + 787, + 20, + 276, + 532, + 1043, + 1299, + 933, + 166, + 422, + 678, + 1189, + 1445, + 1079, + 568, + 312, + 57, + 824, + 1335, + 714, + 203, + 459, + 970, + 1226, + 860, + 605, + 349, + 93, + 1116, + 1372, + 1006, + 239, + 495, + 751, + 1262, + ): list([ + 85, + ]), + tuple( + 1408, + 641, + 130, + 386, + 897, + 1153, + 787, + 20, + 276, + 532, + 1043, + 1299, + 933, + 166, + 422, + 678, + 1189, + 1445, + 1335, + 568, + 313, + 57, + 824, + 1080, + 714, + 203, + 459, + 970, + 1226, + 860, + 605, + 349, + 93, + 1116, + 1372, + 1262, + 239, + 495, + 751, + 1007, + ): list([ + 86, + ]), + tuple( + 1408, + 641, + 130, + 386, + 897, + 1153, + 787, + 20, + 276, + 532, + 1043, + 1299, + 1189, + 422, + 167, + 678, + 934, + 1445, + 1335, + 568, + 313, + 57, + 824, + 1080, + 714, + 203, + 459, + 970, + 1226, + 1116, + 605, + 349, + 93, + 861, + 1372, + 1262, + 495, + 240, + 751, + 1007, + ): list([ + 87, + ]), + tuple( + 1408, + 641, + 130, + 386, + 897, + 1153, + 1043, + 276, + 21, + 532, + 788, + 1299, + 1189, + 422, + 167, + 678, + 934, + 1445, + 1335, + 568, + 313, + 57, + 824, + 1080, + 970, + 203, + 459, + 715, + 1226, + 1116, + 605, + 349, + 94, + 861, + 1372, + 1262, + 495, + 240, + 751, + 1007, + ): list([ + 88, + ]), + tuple( + 1409, + 386, + 131, + 642, + 898, + 1154, + 788, + 21, + 277, + 533, + 1044, + 1300, + 934, + 167, + 423, + 679, + 1190, + 1446, + 1080, + 569, + 313, + 58, + 825, + 1336, + 715, + 204, + 460, + 971, + 1227, + 861, + 350, + 606, + 94, + 1117, + 1373, + 1007, + 240, + 496, + 752, + 1263, + ): list([ + 95, + ]), + tuple( + 1409, + 642, + 131, + 387, + 898, + 1154, + 788, + 21, + 277, + 533, + 1044, + 1300, + 934, + 167, + 423, + 679, + 1190, + 1446, + 1336, + 569, + 314, + 58, + 825, + 1081, + 715, + 204, + 460, + 971, + 1227, + 861, + 350, + 606, + 94, + 1117, + 1373, + 1263, + 240, + 496, + 752, + 1008, + ): list([ + 96, + ]), + tuple( + 1409, + 642, + 131, + 387, + 898, + 1154, + 788, + 21, + 277, + 533, + 1044, + 1300, + 1190, + 423, + 168, + 679, + 935, + 1446, + 1336, + 569, + 314, + 58, + 825, + 1081, + 715, + 204, + 460, + 971, + 1227, + 1117, + 350, + 606, + 94, + 862, + 1373, + 1263, + 496, + 241, + 752, + 1008, + ): list([ + 97, + ]), + tuple( + 1409, + 642, + 131, + 387, + 898, + 1154, + 1044, + 277, + 22, + 533, + 789, + 1300, + 1190, + 423, + 168, + 679, + 935, + 1446, + 1336, + 569, + 314, + 58, + 825, + 1081, + 971, + 204, + 460, + 716, + 1227, + 1117, + 606, + 350, + 95, + 862, + 1373, + 1263, + 496, + 241, + 752, + 1008, + ): list([ + 98, + ]), + tuple( + 1410, + 387, + 132, + 643, + 899, + 1155, + 789, + 22, + 278, + 534, + 1045, + 1301, + 935, + 168, + 424, + 680, + 1191, + 1447, + 1081, + 570, + 314, + 59, + 826, + 1337, + 716, + 205, + 461, + 972, + 1228, + 862, + 351, + 607, + 95, + 1118, + 1374, + 1008, + 241, + 497, + 753, + 1264, + ): list([ + 105, + ]), + tuple( + 1410, + 643, + 132, + 388, + 899, + 1155, + 789, + 22, + 278, + 534, + 1045, + 1301, + 935, + 168, + 424, + 680, + 1191, + 1447, + 1337, + 570, + 315, + 59, + 826, + 1082, + 716, + 205, + 461, + 972, + 1228, + 862, + 351, + 607, + 95, + 1118, + 1374, + 1264, + 241, + 497, + 753, + 1009, + ): list([ + 106, + ]), + tuple( + 1410, + 643, + 132, + 388, + 899, + 1155, + 789, + 22, + 278, + 534, + 1045, + 1301, + 1191, + 424, + 169, + 680, + 936, + 1447, + 1337, + 570, + 315, + 59, + 826, + 1082, + 716, + 205, + 461, + 972, + 1228, + 1118, + 351, + 607, + 95, + 863, + 1374, + 1264, + 497, + 242, + 753, + 1009, + ): list([ + 107, + ]), + tuple( + 1410, + 643, + 132, + 388, + 899, + 1155, + 1045, + 278, + 23, + 534, + 790, + 1301, + 1191, + 424, + 169, + 680, + 936, + 1447, + 1337, + 570, + 315, + 59, + 826, + 1082, + 972, + 205, + 461, + 717, + 1228, + 1118, + 607, + 96, + 351, + 863, + 1374, + 1264, + 497, + 242, + 753, + 1009, + ): list([ + 108, + ]), + tuple( + 1411, + 388, + 133, + 644, + 900, + 1156, + 790, + 535, + 279, + 23, + 1046, + 1302, + 936, + 169, + 425, + 681, + 1192, + 1448, + 1082, + 571, + 315, + 60, + 827, + 1338, + 717, + 206, + 462, + 973, + 1229, + 863, + 96, + 352, + 608, + 1119, + 1375, + 1009, + 242, + 498, + 754, + 1265, + ): list([ + 115, + ]), + tuple( + 1411, + 644, + 133, + 389, + 900, + 1156, + 790, + 535, + 279, + 23, + 1046, + 1302, + 936, + 169, + 425, + 681, + 1192, + 1448, + 1338, + 571, + 316, + 60, + 827, + 1083, + 717, + 206, + 462, + 973, + 1229, + 863, + 96, + 352, + 608, + 1119, + 1375, + 1265, + 242, + 498, + 754, + 1010, + ): list([ + 116, + ]), + tuple( + 1411, + 644, + 133, + 389, + 900, + 1156, + 790, + 535, + 279, + 23, + 1046, + 1302, + 1192, + 425, + 170, + 681, + 937, + 1448, + 1338, + 571, + 316, + 60, + 827, + 1083, + 717, + 206, + 462, + 973, + 1229, + 1119, + 96, + 352, + 608, + 864, + 1375, + 1265, + 498, + 243, + 754, + 1010, + ): list([ + 117, + ]), + tuple( + 1411, + 644, + 133, + 389, + 900, + 1156, + 1046, + 535, + 279, + 24, + 791, + 1302, + 1192, + 425, + 170, + 681, + 937, + 1448, + 1338, + 571, + 316, + 60, + 827, + 1083, + 973, + 206, + 462, + 718, + 1229, + 1119, + 352, + 97, + 608, + 864, + 1375, + 1265, + 498, + 243, + 754, + 1010, + ): list([ + 118, + ]), + tuple( + 1412, + 389, + 134, + 645, + 901, + 1157, + 791, + 280, + 536, + 24, + 1047, + 1303, + 937, + 170, + 426, + 682, + 1193, + 1449, + 1083, + 316, + 61, + 572, + 828, + 1339, + 718, + 207, + 463, + 974, + 1230, + 864, + 97, + 353, + 609, + 1120, + 1376, + 1010, + 243, + 499, + 755, + 1266, + ): list([ + 125, + ]), + tuple( + 1412, + 645, + 134, + 390, + 901, + 1157, + 791, + 280, + 536, + 24, + 1047, + 1303, + 937, + 170, + 426, + 682, + 1193, + 1449, + 1339, + 572, + 317, + 61, + 828, + 1084, + 718, + 207, + 463, + 974, + 1230, + 864, + 97, + 353, + 609, + 1120, + 1376, + 1266, + 243, + 499, + 755, + 1011, + ): list([ + 126, + ]), + tuple( + 1412, + 645, + 134, + 390, + 901, + 1157, + 791, + 280, + 536, + 24, + 1047, + 1303, + 1193, + 426, + 171, + 682, + 938, + 1449, + 1339, + 572, + 317, + 61, + 828, + 1084, + 718, + 207, + 463, + 974, + 1230, + 1120, + 97, + 353, + 609, + 865, + 1376, + 1266, + 499, + 244, + 755, + 1011, + ): list([ + 127, + ]), + tuple( + 1412, + 645, + 134, + 390, + 901, + 1157, + 1047, + 536, + 280, + 25, + 792, + 1303, + 1193, + 426, + 171, + 682, + 938, + 1449, + 1339, + 572, + 317, + 61, + 828, + 1084, + 974, + 207, + 463, + 719, + 1230, + 1120, + 353, + 98, + 609, + 865, + 1376, + 1266, + 499, + 244, + 755, + 1011, + ): list([ + 128, + ]), + tuple( + 1413, + 390, + 135, + 646, + 902, + 1158, + 792, + 281, + 537, + 25, + 1048, + 1304, + 938, + 171, + 427, + 683, + 1194, + 1450, + 1084, + 573, + 317, + 62, + 829, + 1340, + 719, + 208, + 464, + 975, + 1231, + 865, + 98, + 354, + 610, + 1121, + 1377, + 1011, + 244, + 500, + 756, + 1267, + ): list([ + 135, + ]), + tuple( + 1413, + 646, + 135, + 391, + 902, + 1158, + 792, + 281, + 537, + 25, + 1048, + 1304, + 938, + 171, + 427, + 683, + 1194, + 1450, + 1340, + 573, + 318, + 62, + 829, + 1085, + 719, + 208, + 464, + 975, + 1231, + 865, + 98, + 354, + 610, + 1121, + 1377, + 1267, + 244, + 500, + 756, + 1012, + ): list([ + 136, + ]), + tuple( + 1413, + 646, + 135, + 391, + 902, + 1158, + 792, + 281, + 537, + 25, + 1048, + 1304, + 1194, + 427, + 172, + 683, + 939, + 1450, + 1340, + 573, + 318, + 62, + 829, + 1085, + 719, + 208, + 464, + 975, + 1231, + 1121, + 98, + 354, + 610, + 866, + 1377, + 1267, + 500, + 245, + 756, + 1012, + ): list([ + 137, + ]), + tuple( + 1413, + 646, + 135, + 391, + 902, + 1158, + 1048, + 537, + 281, + 26, + 793, + 1304, + 1194, + 427, + 172, + 683, + 939, + 1450, + 1340, + 573, + 318, + 62, + 829, + 1085, + 975, + 208, + 464, + 720, + 1231, + 1121, + 354, + 99, + 610, + 866, + 1377, + 1267, + 500, + 245, + 756, + 1012, + ): list([ + 138, + ]), + tuple( + 1414, + 391, + 136, + 647, + 903, + 1159, + 793, + 282, + 538, + 26, + 1049, + 1305, + 939, + 172, + 428, + 684, + 1195, + 1451, + 1085, + 574, + 318, + 63, + 830, + 1341, + 720, + 209, + 465, + 976, + 1232, + 866, + 99, + 355, + 611, + 1122, + 1378, + 1012, + 245, + 501, + 757, + 1268, + ): list([ + 145, + ]), + tuple( + 1414, + 647, + 136, + 392, + 903, + 1159, + 793, + 282, + 538, + 26, + 1049, + 1305, + 939, + 172, + 428, + 684, + 1195, + 1451, + 1341, + 574, + 319, + 63, + 830, + 1086, + 720, + 209, + 465, + 976, + 1232, + 866, + 99, + 355, + 611, + 1122, + 1378, + 1268, + 245, + 501, + 757, + 1013, + ): list([ + 146, + ]), + tuple( + 1414, + 647, + 136, + 392, + 903, + 1159, + 793, + 282, + 538, + 26, + 1049, + 1305, + 1195, + 428, + 173, + 684, + 940, + 1451, + 1341, + 574, + 319, + 63, + 830, + 1086, + 720, + 209, + 465, + 976, + 1232, + 1122, + 99, + 355, + 611, + 867, + 1378, + 1268, + 501, + 246, + 757, + 1013, + ): list([ + 147, + ]), + tuple( + 1414, + 647, + 136, + 392, + 903, + 1159, + 1049, + 538, + 282, + 27, + 794, + 1305, + 1195, + 428, + 173, + 684, + 940, + 1451, + 1341, + 574, + 319, + 63, + 830, + 1086, + 976, + 209, + 465, + 721, + 1232, + 1122, + 355, + 100, + 611, + 867, + 1378, + 1268, + 501, + 246, + 757, + 1013, + ): list([ + 148, + ]), + tuple( + 1415, + 392, + 137, + 648, + 904, + 1160, + 794, + 283, + 539, + 27, + 1050, + 1306, + 940, + 173, + 429, + 685, + 1196, + 1452, + 1086, + 575, + 64, + 319, + 831, + 1342, + 721, + 210, + 466, + 977, + 1233, + 867, + 100, + 356, + 612, + 1123, + 1379, + 1013, + 246, + 502, + 758, + 1269, + ): list([ + 155, + ]), + tuple( + 1415, + 648, + 137, + 393, + 904, + 1160, + 794, + 283, + 539, + 27, + 1050, + 1306, + 940, + 173, + 429, + 685, + 1196, + 1452, + 1342, + 575, + 64, + 320, + 831, + 1087, + 721, + 210, + 466, + 977, + 1233, + 867, + 100, + 356, + 612, + 1123, + 1379, + 1269, + 246, + 502, + 758, + 1014, + ): list([ + 156, + ]), + tuple( + 1415, + 648, + 137, + 393, + 904, + 1160, + 794, + 283, + 539, + 27, + 1050, + 1306, + 1196, + 429, + 174, + 685, + 941, + 1452, + 1342, + 575, + 64, + 320, + 831, + 1087, + 721, + 210, + 466, + 977, + 1233, + 1123, + 100, + 356, + 612, + 868, + 1379, + 1269, + 502, + 247, + 758, + 1014, + ): list([ + 157, + ]), + tuple( + 1415, + 648, + 137, + 393, + 904, + 1160, + 1050, + 539, + 283, + 28, + 795, + 1306, + 1196, + 429, + 174, + 685, + 941, + 1452, + 1342, + 575, + 64, + 320, + 831, + 1087, + 977, + 210, + 466, + 722, + 1233, + 1123, + 356, + 101, + 612, + 868, + 1379, + 1269, + 502, + 247, + 758, + 1014, + ): list([ + 158, + ]), + tuple( + 1416, + 393, + 138, + 649, + 905, + 1161, + 795, + 284, + 28, + 540, + 1051, + 1307, + 941, + 174, + 430, + 686, + 1197, + 1087, + 320, + 65, + 576, + 832, + 1343, + 722, + 211, + 467, + 978, + 1234, + 247, + 868, + 101, + 357, + 613, + 1124, + 1380, + 759, + 1014, + 503, + 1270, + ): list([ + 165, + ]), + tuple( + 1416, + 649, + 138, + 394, + 905, + 1161, + 795, + 284, + 28, + 540, + 1051, + 1307, + 941, + 174, + 430, + 686, + 1197, + 1343, + 576, + 65, + 321, + 832, + 1088, + 722, + 211, + 467, + 978, + 1234, + 247, + 868, + 101, + 357, + 613, + 1124, + 1380, + 759, + 1015, + 1270, + 503, + ): list([ + 166, + ]), + tuple( + 1416, + 649, + 138, + 394, + 905, + 1161, + 795, + 284, + 28, + 540, + 1051, + 1307, + 1197, + 430, + 175, + 686, + 942, + 1343, + 576, + 65, + 321, + 832, + 1088, + 722, + 211, + 467, + 978, + 1234, + 1124, + 101, + 357, + 613, + 869, + 1380, + 759, + 1015, + 1270, + 503, + 248, + ): list([ + 167, + ]), + tuple( + 1416, + 649, + 138, + 394, + 905, + 1161, + 1051, + 540, + 284, + 29, + 796, + 1307, + 1197, + 430, + 175, + 686, + 942, + 1343, + 576, + 65, + 321, + 832, + 1088, + 978, + 211, + 467, + 723, + 1234, + 1124, + 357, + 102, + 613, + 869, + 1380, + 759, + 1015, + 1270, + 503, + 248, + ): list([ + 168, + ]), + tuple( + 1417, + 650, + 139, + 395, + 906, + 1162, + 796, + 541, + 285, + 29, + 1052, + 1308, + 942, + 175, + 431, + 687, + 1198, + 1344, + 577, + 66, + 322, + 833, + 1089, + 723, + 212, + 468, + 979, + 1235, + 1016, + 248, + 869, + 102, + 358, + 614, + 1125, + 1381, + 760, + 1271, + 504, + ): list([ + 176, + ]), + tuple( + 1417, + 650, + 139, + 395, + 906, + 1162, + 796, + 541, + 285, + 29, + 1052, + 1308, + 1198, + 431, + 176, + 687, + 943, + 1344, + 577, + 66, + 322, + 833, + 1089, + 723, + 212, + 468, + 979, + 1235, + 1016, + 1125, + 102, + 358, + 614, + 870, + 1381, + 760, + 1271, + 504, + 249, + ): list([ + 177, + ]), + tuple( + 1417, + 650, + 139, + 395, + 906, + 1162, + 1052, + 541, + 285, + 30, + 797, + 1308, + 1198, + 431, + 176, + 687, + 943, + 1344, + 577, + 66, + 322, + 833, + 1089, + 979, + 212, + 468, + 724, + 1235, + 1016, + 1125, + 358, + 103, + 614, + 870, + 1381, + 760, + 1271, + 504, + 249, + ): list([ + 178, + ]), + tuple( + 1418, + 651, + 140, + 396, + 907, + 1163, + 797, + 542, + 30, + 286, + 1053, + 1309, + 943, + 176, + 432, + 688, + 1199, + 1345, + 578, + 67, + 323, + 834, + 1090, + 724, + 213, + 469, + 980, + 1236, + 249, + 870, + 103, + 359, + 615, + 1126, + 1382, + 761, + 1272, + 505, + 1017, + ): list([ + 186, + ]), + tuple( + 1418, + 651, + 140, + 396, + 907, + 1163, + 797, + 542, + 30, + 286, + 1053, + 1309, + 1199, + 432, + 177, + 688, + 944, + 1345, + 578, + 67, + 323, + 834, + 1090, + 724, + 213, + 469, + 980, + 1236, + 1126, + 103, + 359, + 615, + 871, + 1382, + 761, + 1272, + 505, + 250, + 1017, + ): list([ + 187, + ]), + tuple( + 1418, + 651, + 140, + 396, + 907, + 1163, + 1053, + 542, + 286, + 31, + 798, + 1309, + 1199, + 432, + 177, + 688, + 944, + 1345, + 578, + 67, + 323, + 834, + 1090, + 980, + 213, + 469, + 725, + 1236, + 1126, + 359, + 104, + 615, + 871, + 1382, + 761, + 1272, + 505, + 250, + 1017, + ): list([ + 188, + ]), + }) +# --- +# name: test_snapshot_cohorts[PerfectBlockwiseResampling] + dict({ + tuple( + np.int64(0), + ): list([ + 0, + 1, + ]), + tuple( + np.int64(1), + ): list([ + 2, + 3, + ]), + tuple( + np.int64(2), + ): list([ + 4, + 5, + ]), + tuple( + np.int64(3), + ): list([ + 6, + 7, + ]), + tuple( + np.int64(4), + ): list([ + 8, + 9, + ]), + tuple( + np.int64(5), + ): list([ + 10, + 11, + ]), + tuple( + np.int64(6), + ): list([ + 12, + 13, + ]), + tuple( + np.int64(7), + ): list([ + 14, + 15, + ]), + tuple( + np.int64(8), + ): list([ + 16, + 17, + ]), + tuple( + np.int64(9), + ): list([ + 18, + 19, + ]), + tuple( + np.int64(10), + ): list([ + 20, + 21, + ]), + tuple( + np.int64(11), + ): list([ + 22, + 23, + ]), + tuple( + np.int64(12), + ): list([ + 24, + 25, + ]), + tuple( + np.int64(13), + ): list([ + 26, + 27, + ]), + tuple( + np.int64(14), + ): list([ + 28, + 29, + ]), + tuple( + np.int64(15), + ): list([ + 30, + 31, + ]), + tuple( + np.int64(16), + ): list([ + 32, + 33, + ]), + tuple( + np.int64(17), + ): list([ + 34, + 35, + ]), + tuple( + np.int64(18), + ): list([ + 36, + 37, + ]), + tuple( + np.int64(19), + ): list([ + 38, + 39, + ]), + tuple( + np.int64(20), + ): list([ + 40, + 41, + ]), + tuple( + np.int64(21), + ): list([ + 42, + 43, + ]), + tuple( + np.int64(22), + ): list([ + 44, + 45, + ]), + tuple( + np.int64(23), + ): list([ + 46, + 47, + ]), + tuple( + np.int64(24), + ): list([ + 48, + 49, + ]), + tuple( + np.int64(25), + ): list([ + 50, + 51, + ]), + tuple( + np.int64(26), + ): list([ + 52, + 53, + ]), + tuple( + np.int64(27), + ): list([ + 54, + 55, + ]), + tuple( + np.int64(28), + ): list([ + 56, + 57, + ]), + tuple( + np.int64(29), + ): list([ + 58, + 59, + ]), + tuple( + np.int64(30), + ): list([ + 60, + 61, + ]), + tuple( + np.int64(31), + ): list([ + 62, + 63, + ]), + tuple( + np.int64(32), + ): list([ + 64, + 65, + ]), + tuple( + np.int64(33), + ): list([ + 66, + 67, + ]), + tuple( + np.int64(34), + ): list([ + 68, + 69, + ]), + tuple( + np.int64(35), + ): list([ + 70, + 71, + ]), + tuple( + np.int64(36), + ): list([ + 72, + 73, + ]), + tuple( + np.int64(37), + ): list([ + 74, + 75, + ]), + tuple( + np.int64(38), + ): list([ + 76, + 77, + ]), + tuple( + np.int64(39), + ): list([ + 78, + 79, + ]), + tuple( + np.int64(40), + ): list([ + 80, + 81, + ]), + tuple( + np.int64(41), + ): list([ + 82, + 83, + ]), + tuple( + np.int64(42), + ): list([ + 84, + 85, + ]), + tuple( + np.int64(43), + ): list([ + 86, + 87, + ]), + tuple( + np.int64(44), + ): list([ + 88, + 89, + ]), + tuple( + np.int64(45), + ): list([ + 90, + 91, + ]), + tuple( + np.int64(46), + ): list([ + 92, + 93, + ]), + tuple( + np.int64(47), + ): list([ + 94, + 95, + ]), + tuple( + np.int64(48), + ): list([ + 96, + 97, + ]), + tuple( + np.int64(49), + ): list([ + 98, + 99, + ]), + tuple( + np.int64(50), + ): list([ + 100, + 101, + ]), + tuple( + np.int64(51), + ): list([ + 102, + 103, + ]), + tuple( + np.int64(52), + ): list([ + 104, + 105, + ]), + tuple( + np.int64(53), + ): list([ + 106, + 107, + ]), + tuple( + np.int64(54), + ): list([ + 108, + 109, + ]), + tuple( + np.int64(55), + ): list([ + 110, + 111, + ]), + tuple( + np.int64(56), + ): list([ + 112, + 113, + ]), + tuple( + np.int64(57), + ): list([ + 114, + 115, + ]), + tuple( + np.int64(58), + ): list([ + 116, + 117, + ]), + tuple( + np.int64(59), + ): list([ + 118, + 119, + ]), + tuple( + np.int64(60), + ): list([ + 120, + 121, + ]), + tuple( + np.int64(61), + ): list([ + 122, + 123, + ]), + tuple( + np.int64(62), + ): list([ + 124, + 125, + ]), + tuple( + np.int64(63), + ): list([ + 126, + 127, + ]), + tuple( + np.int64(64), + ): list([ + 128, + 129, + ]), + tuple( + np.int64(65), + ): list([ + 130, + 131, + ]), + tuple( + np.int64(66), + ): list([ + 132, + 133, + ]), + tuple( + np.int64(67), + ): list([ + 134, + 135, + ]), + tuple( + np.int64(68), + ): list([ + 136, + 137, + ]), + tuple( + np.int64(69), + ): list([ + 138, + 139, + ]), + tuple( + np.int64(70), + ): list([ + 140, + 141, + ]), + tuple( + np.int64(71), + ): list([ + 142, + 143, + ]), + tuple( + np.int64(72), + ): list([ + 144, + 145, + ]), + tuple( + np.int64(73), + ): list([ + 146, + 147, + ]), + tuple( + np.int64(74), + ): list([ + 148, + 149, + ]), + tuple( + np.int64(75), + ): list([ + 150, + 151, + ]), + tuple( + np.int64(76), + ): list([ + 152, + 153, + ]), + tuple( + np.int64(77), + ): list([ + 154, + 155, + ]), + tuple( + np.int64(78), + ): list([ + 156, + 157, + ]), + tuple( + np.int64(79), + ): list([ + 158, + 159, + ]), + tuple( + np.int64(80), + ): list([ + 160, + 161, + ]), + tuple( + np.int64(81), + ): list([ + 162, + 163, + ]), + tuple( + np.int64(82), + ): list([ + 164, + 165, + ]), + tuple( + np.int64(83), + ): list([ + 166, + 167, + ]), + tuple( + np.int64(84), + ): list([ + 168, + 169, + ]), + tuple( + np.int64(85), + ): list([ + 170, + 171, + ]), + tuple( + np.int64(86), + ): list([ + 172, + 173, + ]), + tuple( + np.int64(87), + ): list([ + 174, + 175, + ]), + tuple( + np.int64(88), + ): list([ + 176, + 177, + ]), + tuple( + np.int64(89), + ): list([ + 178, + 179, + ]), + tuple( + np.int64(90), + ): list([ + 180, + 181, + ]), + tuple( + np.int64(91), + ): list([ + 182, + 183, + ]), + tuple( + np.int64(92), + ): list([ + 184, + 185, + ]), + tuple( + np.int64(93), + ): list([ + 186, + 187, + ]), + tuple( + np.int64(94), + ): list([ + 188, + 189, + ]), + tuple( + np.int64(95), + ): list([ + 190, + 191, + ]), + tuple( + np.int64(96), + ): list([ + 192, + 193, + ]), + tuple( + np.int64(97), + ): list([ + 194, + 195, + ]), + tuple( + np.int64(98), + ): list([ + 196, + 197, + ]), + tuple( + np.int64(99), + ): list([ + 198, + 199, + ]), + tuple( + np.int64(100), + ): list([ + 200, + 201, + ]), + tuple( + np.int64(101), + ): list([ + 202, + 203, + ]), + tuple( + np.int64(102), + ): list([ + 204, + 205, + ]), + tuple( + np.int64(103), + ): list([ + 206, + 207, + ]), + tuple( + np.int64(104), + ): list([ + 208, + 209, + ]), + tuple( + np.int64(105), + ): list([ + 210, + 211, + ]), + tuple( + np.int64(106), + ): list([ + 212, + 213, + ]), + tuple( + np.int64(107), + ): list([ + 214, + 215, + ]), + tuple( + np.int64(108), + ): list([ + 216, + 217, + ]), + tuple( + np.int64(109), + ): list([ + 218, + 219, + ]), + tuple( + np.int64(110), + ): list([ + 220, + 221, + ]), + tuple( + np.int64(111), + ): list([ + 222, + 223, + ]), + tuple( + np.int64(112), + ): list([ + 224, + 225, + ]), + tuple( + np.int64(113), + ): list([ + 226, + 227, + ]), + tuple( + np.int64(114), + ): list([ + 228, + 229, + ]), + tuple( + np.int64(115), + ): list([ + 230, + 231, + ]), + tuple( + np.int64(116), + ): list([ + 232, + 233, + ]), + tuple( + np.int64(117), + ): list([ + 234, + 235, + ]), + tuple( + np.int64(118), + ): list([ + 236, + 237, + ]), + tuple( + np.int64(119), + ): list([ + 238, + 239, + ]), + tuple( + np.int64(120), + ): list([ + 240, + 241, + ]), + tuple( + np.int64(121), + ): list([ + 242, + 243, + ]), + tuple( + np.int64(122), + ): list([ + 244, + 245, + ]), + tuple( + np.int64(123), + ): list([ + 246, + 247, + ]), + tuple( + np.int64(124), + ): list([ + 248, + 249, + ]), + tuple( + np.int64(125), + ): list([ + 250, + 251, + ]), + tuple( + np.int64(126), + ): list([ + 252, + 253, + ]), + tuple( + np.int64(127), + ): list([ + 254, + 255, + ]), + tuple( + np.int64(128), + ): list([ + 256, + 257, + ]), + tuple( + np.int64(129), + ): list([ + 258, + 259, + ]), + tuple( + np.int64(130), + ): list([ + 260, + 261, + ]), + tuple( + np.int64(131), + ): list([ + 262, + 263, + ]), + tuple( + np.int64(132), + ): list([ + 264, + 265, + ]), + tuple( + np.int64(133), + ): list([ + 266, + 267, + ]), + tuple( + np.int64(134), + ): list([ + 268, + 269, + ]), + tuple( + np.int64(135), + ): list([ + 270, + 271, + ]), + tuple( + np.int64(136), + ): list([ + 272, + 273, + ]), + tuple( + np.int64(137), + ): list([ + 274, + 275, + ]), + tuple( + np.int64(138), + ): list([ + 276, + 277, + ]), + tuple( + np.int64(139), + ): list([ + 278, + 279, + ]), + tuple( + np.int64(140), + ): list([ + 280, + 281, + ]), + tuple( + np.int64(141), + ): list([ + 282, + 283, + ]), + tuple( + np.int64(142), + ): list([ + 284, + 285, + ]), + tuple( + np.int64(143), + ): list([ + 286, + 287, + ]), + tuple( + np.int64(144), + ): list([ + 288, + 289, + ]), + tuple( + np.int64(145), + ): list([ + 290, + 291, + ]), + tuple( + np.int64(146), + ): list([ + 292, + ]), + }) +# --- +# name: test_snapshot_cohorts[PerfectMonthly] + dict({ + tuple( + np.int64(0), + np.int64(3), + np.int64(6), + np.int64(9), + np.int64(12), + np.int64(15), + np.int64(18), + np.int64(21), + np.int64(24), + np.int64(27), + np.int64(30), + np.int64(33), + np.int64(36), + np.int64(39), + np.int64(42), + np.int64(45), + np.int64(48), + np.int64(51), + np.int64(54), + np.int64(57), + np.int64(60), + np.int64(63), + np.int64(66), + np.int64(69), + np.int64(72), + np.int64(75), + np.int64(78), + np.int64(81), + np.int64(84), + np.int64(87), + np.int64(90), + np.int64(93), + np.int64(96), + np.int64(99), + np.int64(102), + np.int64(105), + np.int64(108), + np.int64(111), + np.int64(114), + np.int64(117), + np.int64(120), + np.int64(123), + np.int64(126), + np.int64(129), + np.int64(132), + np.int64(135), + np.int64(138), + np.int64(141), + np.int64(144), + np.int64(147), + np.int64(150), + np.int64(153), + np.int64(156), + np.int64(159), + np.int64(162), + np.int64(165), + np.int64(168), + np.int64(171), + ): list([ + 0, + 1, + 2, + 3, + ]), + tuple( + np.int64(1), + np.int64(4), + np.int64(7), + np.int64(10), + np.int64(13), + np.int64(16), + np.int64(19), + np.int64(22), + np.int64(25), + np.int64(28), + np.int64(31), + np.int64(34), + np.int64(37), + np.int64(40), + np.int64(43), + np.int64(46), + np.int64(49), + np.int64(52), + np.int64(55), + np.int64(58), + np.int64(61), + np.int64(64), + np.int64(67), + np.int64(70), + np.int64(73), + np.int64(76), + np.int64(79), + np.int64(82), + np.int64(85), + np.int64(88), + np.int64(91), + np.int64(94), + np.int64(97), + np.int64(100), + np.int64(103), + np.int64(106), + np.int64(109), + np.int64(112), + np.int64(115), + np.int64(118), + np.int64(121), + np.int64(124), + np.int64(127), + np.int64(130), + np.int64(133), + np.int64(136), + np.int64(139), + np.int64(142), + np.int64(145), + np.int64(148), + np.int64(151), + np.int64(154), + np.int64(157), + np.int64(160), + np.int64(163), + np.int64(166), + np.int64(169), + np.int64(172), + ): list([ + 4, + 5, + 6, + 7, + ]), + tuple( + np.int64(2), + np.int64(5), + np.int64(8), + np.int64(11), + np.int64(14), + np.int64(17), + np.int64(20), + np.int64(23), + np.int64(26), + np.int64(29), + np.int64(32), + np.int64(35), + np.int64(38), + np.int64(41), + np.int64(44), + np.int64(47), + np.int64(50), + np.int64(53), + np.int64(56), + np.int64(59), + np.int64(62), + np.int64(65), + np.int64(68), + np.int64(71), + np.int64(74), + np.int64(77), + np.int64(80), + np.int64(83), + np.int64(86), + np.int64(89), + np.int64(92), + np.int64(95), + np.int64(98), + np.int64(101), + np.int64(104), + np.int64(107), + np.int64(110), + np.int64(113), + np.int64(116), + np.int64(119), + np.int64(122), + np.int64(125), + np.int64(128), + np.int64(131), + np.int64(134), + np.int64(137), + np.int64(140), + np.int64(143), + np.int64(146), + np.int64(149), + np.int64(152), + np.int64(155), + np.int64(158), + np.int64(161), + np.int64(164), + np.int64(167), + np.int64(170), + np.int64(173), + ): list([ + 8, + 9, + 10, + 11, + ]), + }) +# --- +# name: test_snapshot_cohorts[RandomBigArray] + dict({ + }) +# --- +# name: test_snapshot_cohorts[SingleChunk] + dict({ + tuple( + 0, + ): list([ + 0, + 1, + 2, + 3, + 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, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + ]), + }) +# --- diff --git a/tests/strategies.py b/tests/strategies.py index fcee1c8e2..a2f95da1f 100644 --- a/tests/strategies.py +++ b/tests/strategies.py @@ -101,7 +101,7 @@ def by_arrays( ) -> st.SearchStrategy[np.ndarray[Any, Any]]: if elements is None: elements = {} - elements.setdefault("alphabet", st.characters(exclude_categories=("C",))) + elements.setdefault("alphabet", st.characters(exclude_categories=["C"])) return st.one_of( npst.arrays( dtype=npst.integer_dtypes(endianness="=") | npst.unicode_string_dtypes(endianness="="), diff --git a/tests/test_cohorts.py b/tests/test_cohorts.py new file mode 100644 index 000000000..c4c50cd99 --- /dev/null +++ b/tests/test_cohorts.py @@ -0,0 +1,29 @@ +# Snapshot tests for cohorts detection + +import pytest + +pytest.importorskip("dask") + +from asv_bench.benchmarks import cohorts + + +@pytest.mark.parametrize( + "testcase", + [ + cohorts.ERA5DayOfYear, + cohorts.ERA5Google, + cohorts.ERA5MonthHour, + cohorts.ERA5MonthHourRechunked, + cohorts.OISST, + cohorts.PerfectBlockwiseResampling, + cohorts.PerfectMonthly, + cohorts.RandomBigArray, + cohorts.SingleChunk, + cohorts.NWMMidwest, + ], +) +def test_snapshot_cohorts(testcase, snapshot): + problem = testcase() + problem.setup() + chunks_cohorts = problem.chunks_cohorts() + assert chunks_cohorts == snapshot From f8f34b939ea47387b8be40daac8b1c7d585a9532 Mon Sep 17 00:00:00 2001 From: Deepak Cherian Date: Thu, 1 Aug 2024 22:48:33 -0600 Subject: [PATCH 5/7] Optimize for-loop merging of cohorts. (#378) * Optimize for-loop merging of cohorts. Do this by skipping perfect cohorts that we already know about. * Add new benchmark * Fix * Cleanup print statements * minimize diff * cleanup * Update snapshot --- asv_bench/benchmarks/cohorts.py | 6 +- flox/core.py | 32 +- tests/__snapshots__/test_cohorts.ambr | 23783 ++++++++---------------- 3 files changed, 7945 insertions(+), 15876 deletions(-) diff --git a/asv_bench/benchmarks/cohorts.py b/asv_bench/benchmarks/cohorts.py index f827f6e0e..f2e993798 100644 --- a/asv_bench/benchmarks/cohorts.py +++ b/asv_bench/benchmarks/cohorts.py @@ -47,6 +47,9 @@ def time_find_group_cohorts(self): except AttributeError: pass + def track_num_cohorts(self): + return len(self.chunks_cohorts()) + def time_graph_construct(self): flox.groupby_reduce(self.array, self.by, func="sum", axis=self.axis) @@ -60,10 +63,11 @@ def track_num_tasks_optimized(self): def track_num_layers(self): return len(self.result.dask.layers) + track_num_cohorts.unit = "cohorts" # type: ignore[attr-defined] # Lazy track_num_tasks.unit = "tasks" # type: ignore[attr-defined] # Lazy track_num_tasks_optimized.unit = "tasks" # type: ignore[attr-defined] # Lazy track_num_layers.unit = "layers" # type: ignore[attr-defined] # Lazy - for f in [track_num_tasks, track_num_tasks_optimized, track_num_layers]: + for f in [track_num_tasks, track_num_tasks_optimized, track_num_layers, track_num_cohorts]: f.repeat = 1 # type: ignore[attr-defined] # Lazy f.rounds = 1 # type: ignore[attr-defined] # Lazy f.number = 1 # type: ignore[attr-defined] # Lazy diff --git a/flox/core.py b/flox/core.py index a36ce24f5..1c9599a15 100644 --- a/flox/core.py +++ b/flox/core.py @@ -403,7 +403,7 @@ def find_group_cohorts( # Invert the label_chunks mapping so we know which labels occur together. def invert(x) -> tuple[np.ndarray, ...]: arr = label_chunks[x] - return tuple(arr) + return tuple(arr.tolist()) chunks_cohorts = tlz.groupby(invert, label_chunks.keys()) @@ -477,22 +477,37 @@ def invert(x) -> tuple[np.ndarray, ...]: containment.nnz / math.prod(containment.shape) ) ) - # Use a threshold to force some merging. We do not use the filtered - # containment matrix for estimating "sparsity" because it is a bit - # hard to reason about. + + # Next we for-loop over groups and merge those that are quite similar. + # Use a threshold on containment to always force some merging. + # Note that we do not use the filtered containment matrix for estimating "sparsity" + # because it is a bit hard to reason about. MIN_CONTAINMENT = 0.75 # arbitrary mask = containment.data < MIN_CONTAINMENT + + # Now we also know "exact cohorts" -- cohorts whose constituent groups + # occur in exactly the same chunks. We only need examine one member of each group. + # Skip the others by first looping over the exact cohorts, and zero out those rows. + repeated = np.concatenate([v[1:] for v in chunks_cohorts.values()]).astype(int) + repeated_idx = np.searchsorted(present_labels, repeated) + for i in repeated_idx: + mask[containment.indptr[i] : containment.indptr[i + 1]] = True containment.data[mask] = 0 containment.eliminate_zeros() - # Iterate over labels, beginning with those with most chunks + # Figure out all the labels we need to loop over later + n_overlapping_labels = containment.astype(bool).sum(axis=1) + order = np.argsort(n_overlapping_labels, kind="stable")[::-1] + # Order is such that we iterate over labels, beginning with those with most overlaps + # Also filter out any "exact" cohorts + order = order[n_overlapping_labels[order] > 0] + logger.debug("find_group_cohorts: merging cohorts") - order = np.argsort(containment.sum(axis=LABEL_AXIS), kind="stable")[::-1] merged_cohorts = {} merged_keys = set() - # TODO: we can optimize this to loop over chunk_cohorts instead - # by zeroing out rows that are already in a cohort for rowidx in order: + if present_labels[rowidx] in merged_keys: + continue cohidx = containment.indices[ slice(containment.indptr[rowidx], containment.indptr[rowidx + 1]) ] @@ -507,6 +522,7 @@ def invert(x) -> tuple[np.ndarray, ...]: actual_ngroups = np.concatenate(tuple(merged_cohorts.values())).size expected_ngroups = present_labels.size + assert len(merged_keys) == actual_ngroups assert expected_ngroups == actual_ngroups, (expected_ngroups, actual_ngroups) # sort by first label in cohort diff --git a/tests/__snapshots__/test_cohorts.ambr b/tests/__snapshots__/test_cohorts.ambr index a1c3899a9..a96dae4bf 100644 --- a/tests/__snapshots__/test_cohorts.ambr +++ b/tests/__snapshots__/test_cohorts.ambr @@ -2562,1977 +2562,1032 @@ # name: test_snapshot_cohorts[ERA5Google] dict({ tuple( - np.int64(0), - np.int64(1), - np.int64(2), - np.int64(3), - np.int64(124), - np.int64(125), - np.int64(126), - np.int64(127), - np.int64(236), - np.int64(237), - np.int64(238), - np.int64(239), - np.int64(360), - np.int64(361), - np.int64(362), - np.int64(363), - np.int64(480), - np.int64(481), - np.int64(482), - np.int64(483), - np.int64(604), - np.int64(605), - np.int64(606), - np.int64(607), - np.int64(724), - np.int64(725), - np.int64(726), - np.int64(727), - np.int64(848), - np.int64(849), - np.int64(850), - np.int64(851), - ): list([ 0, - ]), - tuple( - np.int64(4), - np.int64(5), - np.int64(6), - np.int64(7), - np.int64(128), - np.int64(129), - np.int64(130), - np.int64(131), - np.int64(240), - np.int64(241), - np.int64(242), - np.int64(243), - np.int64(364), - np.int64(365), - np.int64(366), - np.int64(367), - np.int64(484), - np.int64(485), - np.int64(486), - np.int64(487), - np.int64(608), - np.int64(609), - np.int64(610), - np.int64(611), - np.int64(728), - np.int64(729), - np.int64(730), - np.int64(731), - np.int64(852), - np.int64(853), - np.int64(854), - np.int64(855), - ): list([ 1, - ]), - tuple( - np.int64(8), - np.int64(9), - np.int64(10), - np.int64(11), - np.int64(132), - np.int64(133), - np.int64(134), - np.int64(135), - np.int64(244), - np.int64(245), - np.int64(246), - np.int64(247), - np.int64(368), - np.int64(369), - np.int64(370), - np.int64(371), - np.int64(488), - np.int64(489), - np.int64(490), - np.int64(491), - np.int64(612), - np.int64(613), - np.int64(614), - np.int64(615), - np.int64(732), - np.int64(733), - np.int64(734), - np.int64(735), - np.int64(856), - np.int64(857), - np.int64(858), - np.int64(859), - ): list([ 2, - ]), - tuple( - np.int64(12), - np.int64(13), - np.int64(14), - np.int64(15), - np.int64(136), - np.int64(137), - np.int64(138), - np.int64(139), - np.int64(248), - np.int64(249), - np.int64(250), - np.int64(251), - np.int64(372), - np.int64(373), - np.int64(374), - np.int64(375), - np.int64(492), - np.int64(493), - np.int64(494), - np.int64(495), - np.int64(616), - np.int64(617), - np.int64(618), - np.int64(619), - np.int64(736), - np.int64(737), - np.int64(738), - np.int64(739), - np.int64(860), - np.int64(861), - np.int64(862), - np.int64(863), - ): list([ 3, - ]), - tuple( - np.int64(16), - np.int64(17), - np.int64(18), - np.int64(19), - np.int64(140), - np.int64(141), - np.int64(142), - np.int64(143), - np.int64(252), - np.int64(253), - np.int64(254), - np.int64(255), - np.int64(376), - np.int64(377), - np.int64(378), - np.int64(379), - np.int64(496), - np.int64(497), - np.int64(498), - np.int64(499), - np.int64(620), - np.int64(621), - np.int64(622), - np.int64(623), - np.int64(740), - np.int64(741), - np.int64(742), - np.int64(743), - np.int64(864), - np.int64(865), - np.int64(866), - np.int64(867), + 124, + 125, + 126, + 127, + 236, + 237, + 238, + 239, + 360, + 361, + 362, + 363, + 480, + 481, + 482, + 483, + 604, + 605, + 606, + 607, + 724, + 725, + 726, + 727, + 848, + 849, + 850, + 851, ): list([ - 4, + 0, ]), tuple( - np.int64(20), - np.int64(21), - np.int64(22), - np.int64(23), - np.int64(144), - np.int64(145), - np.int64(146), - np.int64(147), - np.int64(256), - np.int64(257), - np.int64(258), - np.int64(259), - np.int64(380), - np.int64(381), - np.int64(382), - np.int64(383), - np.int64(500), - np.int64(501), - np.int64(502), - np.int64(503), - np.int64(624), - np.int64(625), - np.int64(626), - np.int64(627), - np.int64(744), - np.int64(745), - np.int64(746), - np.int64(747), - np.int64(868), - np.int64(869), - np.int64(870), - np.int64(871), - ): list([ + 4, 5, - ]), - tuple( - np.int64(24), - np.int64(25), - np.int64(26), - np.int64(27), - np.int64(148), - np.int64(149), - np.int64(150), - np.int64(151), - np.int64(260), - np.int64(261), - np.int64(262), - np.int64(263), - np.int64(384), - np.int64(385), - np.int64(386), - np.int64(387), - np.int64(504), - np.int64(505), - np.int64(506), - np.int64(507), - np.int64(628), - np.int64(629), - np.int64(630), - np.int64(631), - np.int64(748), - np.int64(749), - np.int64(750), - np.int64(751), - np.int64(872), - np.int64(873), - np.int64(874), - np.int64(875), - ): list([ 6, - ]), - tuple( - np.int64(28), - np.int64(29), - np.int64(30), - np.int64(31), - np.int64(152), - np.int64(153), - np.int64(154), - np.int64(155), - np.int64(264), - np.int64(265), - np.int64(266), - np.int64(267), - np.int64(388), - np.int64(389), - np.int64(390), - np.int64(391), - np.int64(508), - np.int64(509), - np.int64(510), - np.int64(511), - np.int64(632), - np.int64(633), - np.int64(634), - np.int64(635), - np.int64(752), - np.int64(753), - np.int64(754), - np.int64(755), - np.int64(876), - np.int64(877), - np.int64(878), - np.int64(879), - ): list([ 7, - ]), - tuple( - np.int64(32), - np.int64(33), - np.int64(34), - np.int64(35), - np.int64(156), - np.int64(157), - np.int64(158), - np.int64(159), - np.int64(268), - np.int64(269), - np.int64(270), - np.int64(271), - np.int64(392), - np.int64(393), - np.int64(394), - np.int64(395), - np.int64(512), - np.int64(513), - np.int64(514), - np.int64(515), - np.int64(636), - np.int64(637), - np.int64(638), - np.int64(639), - np.int64(756), - np.int64(757), - np.int64(758), - np.int64(759), - np.int64(880), - np.int64(881), - np.int64(882), - np.int64(883), + 128, + 129, + 130, + 131, + 240, + 241, + 242, + 243, + 364, + 365, + 366, + 367, + 484, + 485, + 486, + 487, + 608, + 609, + 610, + 611, + 728, + 729, + 730, + 731, + 852, + 853, + 854, + 855, ): list([ - 8, + 1, ]), tuple( - np.int64(36), - np.int64(37), - np.int64(38), - np.int64(39), - np.int64(160), - np.int64(161), - np.int64(162), - np.int64(163), - np.int64(272), - np.int64(273), - np.int64(274), - np.int64(275), - np.int64(396), - np.int64(397), - np.int64(398), - np.int64(399), - np.int64(516), - np.int64(517), - np.int64(518), - np.int64(519), - np.int64(640), - np.int64(641), - np.int64(642), - np.int64(643), - np.int64(760), - np.int64(761), - np.int64(762), - np.int64(763), - np.int64(884), - np.int64(885), - np.int64(886), - np.int64(887), - ): list([ + 8, 9, - ]), - tuple( - np.int64(40), - np.int64(41), - np.int64(42), - np.int64(43), - np.int64(164), - np.int64(165), - np.int64(166), - np.int64(167), - np.int64(276), - np.int64(277), - np.int64(278), - np.int64(279), - np.int64(400), - np.int64(401), - np.int64(402), - np.int64(403), - np.int64(520), - np.int64(521), - np.int64(522), - np.int64(523), - np.int64(644), - np.int64(645), - np.int64(646), - np.int64(647), - np.int64(764), - np.int64(765), - np.int64(766), - np.int64(767), - np.int64(888), - np.int64(889), - np.int64(890), - np.int64(891), - ): list([ 10, - ]), - tuple( - np.int64(44), - np.int64(45), - np.int64(46), - np.int64(47), - np.int64(168), - np.int64(169), - np.int64(170), - np.int64(171), - np.int64(280), - np.int64(281), - np.int64(282), - np.int64(283), - np.int64(404), - np.int64(405), - np.int64(406), - np.int64(407), - np.int64(524), - np.int64(525), - np.int64(526), - np.int64(527), - np.int64(648), - np.int64(649), - np.int64(650), - np.int64(651), - np.int64(768), - np.int64(769), - np.int64(770), - np.int64(771), - np.int64(892), - np.int64(893), - np.int64(894), - np.int64(895), - ): list([ 11, - ]), - tuple( - np.int64(48), - np.int64(49), - np.int64(50), - np.int64(51), - np.int64(172), - np.int64(173), - np.int64(174), - np.int64(175), - np.int64(284), - np.int64(285), - np.int64(286), - np.int64(287), - np.int64(408), - np.int64(409), - np.int64(410), - np.int64(411), - np.int64(528), - np.int64(529), - np.int64(530), - np.int64(531), - np.int64(652), - np.int64(653), - np.int64(654), - np.int64(655), - np.int64(772), - np.int64(773), - np.int64(774), - np.int64(775), - np.int64(896), - np.int64(897), - np.int64(898), - np.int64(899), + 132, + 133, + 134, + 135, + 244, + 245, + 246, + 247, + 368, + 369, + 370, + 371, + 488, + 489, + 490, + 491, + 612, + 613, + 614, + 615, + 732, + 733, + 734, + 735, + 856, + 857, + 858, + 859, ): list([ - 12, + 2, ]), tuple( - np.int64(52), - np.int64(53), - np.int64(54), - np.int64(55), - np.int64(176), - np.int64(177), - np.int64(178), - np.int64(179), - np.int64(288), - np.int64(289), - np.int64(290), - np.int64(291), - np.int64(412), - np.int64(413), - np.int64(414), - np.int64(415), - np.int64(532), - np.int64(533), - np.int64(534), - np.int64(535), - np.int64(656), - np.int64(657), - np.int64(658), - np.int64(659), - np.int64(776), - np.int64(777), - np.int64(778), - np.int64(779), - ): list([ + 12, 13, - ]), - tuple( - np.int64(56), - np.int64(57), - np.int64(58), - np.int64(59), - np.int64(180), - np.int64(181), - np.int64(182), - np.int64(183), - np.int64(292), - np.int64(293), - np.int64(294), - np.int64(295), - np.int64(416), - np.int64(417), - np.int64(418), - np.int64(419), - np.int64(536), - np.int64(537), - np.int64(538), - np.int64(539), - np.int64(660), - np.int64(661), - np.int64(662), - np.int64(663), - np.int64(780), - np.int64(781), - np.int64(782), - np.int64(783), - ): list([ 14, - ]), - tuple( - np.int64(60), - np.int64(61), - np.int64(62), - np.int64(63), - np.int64(184), - np.int64(185), - np.int64(186), - np.int64(187), - np.int64(296), - np.int64(297), - np.int64(298), - np.int64(299), - np.int64(420), - np.int64(421), - np.int64(422), - np.int64(423), - np.int64(540), - np.int64(541), - np.int64(542), - np.int64(543), - np.int64(664), - np.int64(665), - np.int64(666), - np.int64(667), - np.int64(784), - np.int64(785), - np.int64(786), - np.int64(787), - ): list([ 15, - ]), - tuple( - np.int64(64), - np.int64(65), - np.int64(66), - np.int64(67), - np.int64(188), - np.int64(189), - np.int64(190), - np.int64(191), - np.int64(300), - np.int64(301), - np.int64(302), - np.int64(303), - np.int64(424), - np.int64(425), - np.int64(426), - np.int64(427), - np.int64(544), - np.int64(545), - np.int64(546), - np.int64(547), - np.int64(668), - np.int64(669), - np.int64(670), - np.int64(671), - np.int64(788), - np.int64(789), - np.int64(790), - np.int64(791), + 136, + 137, + 138, + 139, + 248, + 249, + 250, + 251, + 372, + 373, + 374, + 375, + 492, + 493, + 494, + 495, + 616, + 617, + 618, + 619, + 736, + 737, + 738, + 739, + 860, + 861, + 862, + 863, ): list([ - 16, + 3, ]), tuple( - np.int64(68), - np.int64(69), - np.int64(70), - np.int64(71), - np.int64(192), - np.int64(193), - np.int64(194), - np.int64(195), - np.int64(304), - np.int64(305), - np.int64(306), - np.int64(307), - np.int64(428), - np.int64(429), - np.int64(430), - np.int64(431), - np.int64(548), - np.int64(549), - np.int64(550), - np.int64(551), - np.int64(672), - np.int64(673), - np.int64(674), - np.int64(675), - np.int64(792), - np.int64(793), - np.int64(794), - np.int64(795), - ): list([ + 16, 17, - ]), - tuple( - np.int64(72), - np.int64(73), - np.int64(74), - np.int64(75), - np.int64(196), - np.int64(197), - np.int64(198), - np.int64(199), - np.int64(308), - np.int64(309), - np.int64(310), - np.int64(311), - np.int64(432), - np.int64(433), - np.int64(434), - np.int64(435), - np.int64(552), - np.int64(553), - np.int64(554), - np.int64(555), - np.int64(676), - np.int64(677), - np.int64(678), - np.int64(679), - np.int64(796), - np.int64(797), - np.int64(798), - np.int64(799), - ): list([ 18, - ]), - tuple( - np.int64(76), - np.int64(77), - np.int64(78), - np.int64(79), - np.int64(200), - np.int64(201), - np.int64(202), - np.int64(203), - np.int64(312), - np.int64(313), - np.int64(314), - np.int64(315), - np.int64(436), - np.int64(437), - np.int64(438), - np.int64(439), - np.int64(556), - np.int64(557), - np.int64(558), - np.int64(559), - np.int64(680), - np.int64(681), - np.int64(682), - np.int64(683), - np.int64(800), - np.int64(801), - np.int64(802), - np.int64(803), - ): list([ 19, - ]), - tuple( - np.int64(80), - np.int64(81), - np.int64(82), - np.int64(83), - np.int64(204), - np.int64(205), - np.int64(206), - np.int64(207), - np.int64(316), - np.int64(317), - np.int64(318), - np.int64(319), - np.int64(440), - np.int64(441), - np.int64(442), - np.int64(443), - np.int64(560), - np.int64(561), - np.int64(562), - np.int64(563), - np.int64(684), - np.int64(685), - np.int64(686), - np.int64(687), - np.int64(804), - np.int64(805), - np.int64(806), - np.int64(807), + 140, + 141, + 142, + 143, + 252, + 253, + 254, + 255, + 376, + 377, + 378, + 379, + 496, + 497, + 498, + 499, + 620, + 621, + 622, + 623, + 740, + 741, + 742, + 743, + 864, + 865, + 866, + 867, ): list([ - 20, + 4, ]), tuple( - np.int64(84), - np.int64(85), - np.int64(86), - np.int64(87), - np.int64(208), - np.int64(209), - np.int64(210), - np.int64(211), - np.int64(320), - np.int64(321), - np.int64(322), - np.int64(323), - np.int64(444), - np.int64(445), - np.int64(446), - np.int64(447), - np.int64(564), - np.int64(565), - np.int64(566), - np.int64(567), - np.int64(688), - np.int64(689), - np.int64(690), - np.int64(691), - np.int64(808), - np.int64(809), - np.int64(810), - np.int64(811), - ): list([ + 20, 21, - ]), - tuple( - np.int64(88), - np.int64(89), - np.int64(90), - np.int64(91), - np.int64(212), - np.int64(213), - np.int64(214), - np.int64(215), - np.int64(324), - np.int64(325), - np.int64(326), - np.int64(327), - np.int64(448), - np.int64(449), - np.int64(450), - np.int64(451), - np.int64(568), - np.int64(569), - np.int64(570), - np.int64(571), - np.int64(692), - np.int64(693), - np.int64(694), - np.int64(695), - np.int64(812), - np.int64(813), - np.int64(814), - np.int64(815), - ): list([ 22, - ]), - tuple( - np.int64(92), - np.int64(93), - np.int64(94), - np.int64(95), - np.int64(216), - np.int64(217), - np.int64(218), - np.int64(219), - np.int64(328), - np.int64(329), - np.int64(330), - np.int64(331), - np.int64(452), - np.int64(453), - np.int64(454), - np.int64(455), - np.int64(572), - np.int64(573), - np.int64(574), - np.int64(575), - np.int64(696), - np.int64(697), - np.int64(698), - np.int64(699), - np.int64(816), - np.int64(817), - np.int64(818), - np.int64(819), - ): list([ 23, - ]), - tuple( - np.int64(96), - np.int64(97), - np.int64(98), - np.int64(99), - np.int64(220), - np.int64(221), - np.int64(222), - np.int64(223), - np.int64(332), - np.int64(333), - np.int64(334), - np.int64(335), - np.int64(456), - np.int64(457), - np.int64(458), - np.int64(459), - np.int64(576), - np.int64(577), - np.int64(578), - np.int64(579), - np.int64(700), - np.int64(701), - np.int64(702), - np.int64(703), - np.int64(820), - np.int64(821), - np.int64(822), - np.int64(823), + 144, + 145, + 146, + 147, + 256, + 257, + 258, + 259, + 380, + 381, + 382, + 383, + 500, + 501, + 502, + 503, + 624, + 625, + 626, + 627, + 744, + 745, + 746, + 747, + 868, + 869, + 870, + 871, ): list([ - 24, + 5, ]), tuple( - np.int64(100), - np.int64(101), - np.int64(102), - np.int64(103), - np.int64(224), - np.int64(225), - np.int64(226), - np.int64(227), - np.int64(336), - np.int64(337), - np.int64(338), - np.int64(339), - np.int64(460), - np.int64(461), - np.int64(462), - np.int64(463), - np.int64(580), - np.int64(581), - np.int64(582), - np.int64(583), - np.int64(704), - np.int64(705), - np.int64(706), - np.int64(707), - np.int64(824), - np.int64(825), - np.int64(826), - np.int64(827), - ): list([ + 24, 25, - ]), - tuple( - np.int64(104), - np.int64(105), - np.int64(106), - np.int64(107), - np.int64(228), - np.int64(229), - np.int64(230), - np.int64(231), - np.int64(340), - np.int64(341), - np.int64(342), - np.int64(343), - np.int64(464), - np.int64(465), - np.int64(466), - np.int64(467), - np.int64(584), - np.int64(585), - np.int64(586), - np.int64(587), - np.int64(708), - np.int64(709), - np.int64(710), - np.int64(711), - np.int64(828), - np.int64(829), - np.int64(830), - np.int64(831), - ): list([ 26, - ]), - tuple( - np.int64(108), - np.int64(109), - np.int64(110), - np.int64(111), - np.int64(232), - np.int64(233), - np.int64(234), - np.int64(235), - np.int64(344), - np.int64(345), - np.int64(346), - np.int64(347), - np.int64(468), - np.int64(469), - np.int64(470), - np.int64(471), - np.int64(588), - np.int64(589), - np.int64(590), - np.int64(591), - np.int64(712), - np.int64(713), - np.int64(714), - np.int64(715), - np.int64(832), - np.int64(833), - np.int64(834), - np.int64(835), - ): list([ 27, - ]), - tuple( - np.int64(112), - np.int64(113), - np.int64(114), - np.int64(115), - np.int64(348), - np.int64(349), - np.int64(350), - np.int64(351), - np.int64(472), - np.int64(473), - np.int64(474), - np.int64(475), - np.int64(592), - np.int64(593), - np.int64(594), - np.int64(595), - np.int64(716), - np.int64(717), - np.int64(718), - np.int64(719), - np.int64(836), - np.int64(837), - np.int64(838), - np.int64(839), - ): list([ - 28, - ]), - tuple( - np.int64(116), - np.int64(117), - np.int64(118), - np.int64(119), - np.int64(352), - np.int64(353), - np.int64(354), - np.int64(355), - np.int64(476), - np.int64(477), - np.int64(478), - np.int64(479), - np.int64(596), - np.int64(597), - np.int64(598), - np.int64(599), - np.int64(720), - np.int64(721), - np.int64(722), - np.int64(723), - np.int64(840), - np.int64(841), - np.int64(842), - np.int64(843), - ): list([ - 29, - ]), - tuple( - np.int64(120), - np.int64(121), - np.int64(122), - np.int64(123), - np.int64(356), - np.int64(357), - np.int64(358), - np.int64(359), - np.int64(600), - np.int64(601), - np.int64(602), - np.int64(603), - np.int64(844), - np.int64(845), - np.int64(846), - np.int64(847), + 148, + 149, + 150, + 151, + 260, + 261, + 262, + 263, + 384, + 385, + 386, + 387, + 504, + 505, + 506, + 507, + 628, + 629, + 630, + 631, + 748, + 749, + 750, + 751, + 872, + 873, + 874, + 875, ): list([ - 30, + 6, ]), - }) -# --- -# name: test_snapshot_cohorts[ERA5MonthHourRechunked] - dict({ tuple( - 0, - 1, - 2, - 3, - 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, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, + 152, + 153, + 154, + 155, + 264, + 265, + 266, + 267, + 388, + 389, + 390, + 391, + 508, + 509, + 510, + 511, + 632, + 633, + 634, + 635, + 752, + 753, + 754, + 755, + 876, + 877, + 878, + 879, ): list([ - 0, - 1, - 2, - 3, - 4, - 5, - 6, 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, ]), tuple( - 31, 32, 33, 34, 35, + 156, + 157, + 158, + 159, + 268, + 269, + 270, + 271, + 392, + 393, + 394, + 395, + 512, + 513, + 514, + 515, + 636, + 637, + 638, + 639, + 756, + 757, + 758, + 759, + 880, + 881, + 882, + 883, + ): list([ + 8, + ]), + tuple( 36, 37, 38, 39, + 160, + 161, + 162, + 163, + 272, + 273, + 274, + 275, + 396, + 397, + 398, + 399, + 516, + 517, + 518, + 519, + 640, + 641, + 642, + 643, + 760, + 761, + 762, + 763, + 884, + 885, + 886, + 887, + ): list([ + 9, + ]), + tuple( 40, 41, 42, 43, - 44, - 45, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - ): list([ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - ]), - tuple( - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 516, - 517, - 518, - 519, + 164, + 165, + 166, + 167, + 276, + 277, + 278, + 279, + 400, + 401, + 402, + 403, 520, 521, 522, 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 122, - 123, - 124, - 125, - 126, - 127, + 644, + 645, + 646, + 647, + 764, + 765, + 766, + 767, + 888, + 889, + 890, + 891, ): list([ + 10, + ]), + tuple( + 44, + 45, + 46, + 47, 168, 169, 170, 171, + 280, + 281, + 282, + 283, + 404, + 405, + 406, + 407, + 524, + 525, + 526, + 527, + 648, + 649, + 650, + 651, + 768, + 769, + 770, + 771, + 892, + 893, + 894, + 895, + ): list([ + 11, + ]), + tuple( + 48, + 49, + 50, + 51, 172, 173, 174, 175, + 284, + 285, + 286, + 287, + 408, + 409, + 410, + 411, + 528, + 529, + 530, + 531, + 652, + 653, + 654, + 655, + 772, + 773, + 774, + 775, + 896, + 897, + 898, + 899, + ): list([ + 12, + ]), + tuple( + 52, + 53, + 54, + 55, 176, 177, 178, 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - ]), - tuple( - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, + 288, + 289, + 290, + 291, + 412, + 413, + 414, + 415, 532, 533, 534, 535, + 656, + 657, + 658, + 659, + 776, + 777, + 778, + 779, + ): list([ + 13, + ]), + tuple( + 56, + 57, + 58, + 59, + 180, + 181, + 182, + 183, + 292, + 293, + 294, + 295, + 416, + 417, + 418, + 419, 536, 537, 538, 539, - 540, - 541, - 542, + 660, + 661, + 662, + 663, + 780, + 781, + 782, + 783, + ): list([ + 14, + ]), + tuple( + 60, + 61, + 62, + 63, + 184, + 185, + 186, + 187, + 296, + 297, + 298, + 299, + 420, + 421, + 422, + 423, + 540, + 541, + 542, 543, + 664, + 665, + 666, + 667, + 784, + 785, + 786, + 787, + ): list([ + 15, + ]), + tuple( + 64, + 65, + 66, + 67, + 188, + 189, + 190, + 191, + 300, + 301, + 302, + 303, + 424, + 425, + 426, + 427, 544, 545, 546, 547, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, + 668, + 669, + 670, + 671, + 788, + 789, + 790, + 791, ): list([ + 16, + ]), + tuple( + 68, + 69, + 70, + 71, 192, 193, 194, 195, + 304, + 305, + 306, + 307, + 428, + 429, + 430, + 431, + 548, + 549, + 550, + 551, + 672, + 673, + 674, + 675, + 792, + 793, + 794, + 795, + ): list([ + 17, + ]), + tuple( + 72, + 73, + 74, + 75, 196, 197, 198, 199, + 308, + 309, + 310, + 311, + 432, + 433, + 434, + 435, + 552, + 553, + 554, + 555, + 676, + 677, + 678, + 679, + 796, + 797, + 798, + 799, + ): list([ + 18, + ]), + tuple( + 76, + 77, + 78, + 79, 200, 201, 202, 203, + 312, + 313, + 314, + 315, + 436, + 437, + 438, + 439, + 556, + 557, + 558, + 559, + 680, + 681, + 682, + 683, + 800, + 801, + 802, + 803, + ): list([ + 19, + ]), + tuple( + 80, + 81, + 82, + 83, 204, 205, 206, 207, + 316, + 317, + 318, + 319, + 440, + 441, + 442, + 443, + 560, + 561, + 562, + 563, + 684, + 685, + 686, + 687, + 804, + 805, + 806, + 807, + ): list([ + 20, + ]), + tuple( + 84, + 85, + 86, + 87, 208, 209, 210, 211, + 320, + 321, + 322, + 323, + 444, + 445, + 446, + 447, + 564, + 565, + 566, + 567, + 688, + 689, + 690, + 691, + 808, + 809, + 810, + 811, + ): list([ + 21, + ]), + tuple( + 88, + 89, + 90, + 91, 212, 213, 214, + 215, + 324, + 325, + 326, + 327, + 448, + 449, + 450, + 451, + 568, + 569, + 570, + 571, + 692, + 693, + 694, + 695, + 812, + 813, + 814, + 815, + ): list([ + 22, ]), tuple( - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 168, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - ): list([ + 92, + 93, + 94, + 95, 216, 217, 218, 219, + 328, + 329, + 330, + 331, + 452, + 453, + 454, + 455, + 572, + 573, + 574, + 575, + 696, + 697, + 698, + 699, + 816, + 817, + 818, + 819, + ): list([ + 23, + ]), + tuple( + 96, + 97, + 98, + 99, 220, 221, 222, 223, + 332, + 333, + 334, + 335, + 456, + 457, + 458, + 459, + 576, + 577, + 578, + 579, + 700, + 701, + 702, + 703, + 820, + 821, + 822, + 823, + ): list([ + 24, + ]), + tuple( + 100, + 101, + 102, + 103, 224, 225, 226, 227, + 336, + 337, + 338, + 339, + 460, + 461, + 462, + 463, + 580, + 581, + 582, + 583, + 704, + 705, + 706, + 707, + 824, + 825, + 826, + 827, + ): list([ + 25, + ]), + tuple( + 104, + 105, + 106, + 107, 228, 229, 230, 231, + 340, + 341, + 342, + 343, + 464, + 465, + 466, + 467, + 584, + 585, + 586, + 587, + 708, + 709, + 710, + 711, + 828, + 829, + 830, + 831, + ): list([ + 26, + ]), + tuple( + 108, + 109, + 110, + 111, 232, 233, 234, 235, - 236, - 237, - 238, + 344, + 345, + 346, + 347, + 468, + 469, + 470, + 471, + 588, + 589, + 590, + 591, + 712, + 713, + 714, + 715, + 832, + 833, + 834, + 835, + ): list([ + 27, ]), tuple( - 183, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - ): list([ - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - ]), - tuple( - 256, - 257, - 258, - 61, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - ): list([ - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - ]), - tuple( - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 76, - ): list([ - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - ]), - tuple( - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 470, - 471, + 112, + 113, + 114, + 115, + 348, + 349, + 350, + 351, 472, 473, 474, 475, + 592, + 593, + 594, + 595, + 716, + 717, + 718, + 719, + 836, + 837, + 838, + 839, + ): list([ + 28, + ]), + tuple( + 116, + 117, + 118, + 119, + 352, + 353, + 354, + 355, 476, 477, 478, 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, + 596, + 597, + 598, + 599, + 720, + 721, + 722, + 723, + 840, + 841, + 842, + 843, ): list([ - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, + 29, ]), tuple( - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - ): list([ 120, 121, 122, 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - ]), - tuple( - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 380, - 381, - 382, - 383, - ): list([ - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - ]), - tuple( - 512, - 513, - 514, - 515, - 516, - 505, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 506, - 507, - 503, - 122, - 504, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 501, - 502, - 508, - 509, - 510, - 511, + 356, + 357, + 358, + 359, + 600, + 601, + 602, + 603, + 844, + 845, + 846, + 847, ): list([ - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, + 30, ]), }) # --- -# name: test_snapshot_cohorts[ERA5MonthHour] +# name: test_snapshot_cohorts[ERA5MonthHourRechunked] dict({ tuple( 0, @@ -4551,38 +3606,86 @@ 13, 14, 15, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, 198, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, ): list([ 0, 1, @@ -4609,82 +3712,21 @@ 22, ]), tuple( - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 122, - 123, - 124, - 125, - 126, - 127, - ): list([ - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - ]), - tuple( - 256, - 257, - 258, - 425, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, 426, 427, 428, @@ -4700,116 +3742,47 @@ 438, 439, 440, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, ): list([ - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - ]), - tuple( - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - ): list([ - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + ]), + tuple( 128, 129, 130, @@ -4819,63 +3792,80 @@ 134, 135, 136, + 137, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 122, + 123, + 124, + 125, + 126, + 127, + ): list([ + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + ]), + tuple( 137, 138, 139, 140, 141, 142, - ]), - tuple( - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - ): list([ + 143, 144, 145, 146, @@ -4884,6 +3874,65 @@ 149, 150, 151, + 152, + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348, + 349, + 350, + ): list([ + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + ]), + tuple( 152, 153, 154, @@ -4899,57 +3948,67 @@ 164, 165, 166, - ]), - tuple( - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, + 167, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562, + 168, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, ): list([ + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + ]), + tuple( + 183, 168, 169, 170, @@ -4965,135 +4024,71 @@ 180, 181, 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, + 562, + 563, + 564, + 565, + 566, + 567, + 568, + 569, + 570, + 571, + 572, + 573, + 574, + 575, + 576, + 577, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + ): list([ + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, ]), tuple( - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 381, - 382, - 383, - ): list([ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, + 256, + 257, + 258, + 61, 45, 46, - ]), - tuple( - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - ): list([ + 47, 48, 49, 50, @@ -5107,37 +4102,36 @@ 58, 59, 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - ]), - tuple( - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 45, - 46, - 47, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + ): list([ 48, 49, 50, @@ -5151,21 +4145,66 @@ 58, 59, 60, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + ]), + tuple( + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + 468, + 469, + 470, + 76, ): list([ 72, 73, @@ -5192,211 +4231,6 @@ 94, ]), tuple( - 512, - 513, - 514, - 515, - 516, - 517, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - ): list([ - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - ]), - tuple( - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - ): list([ - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - ]), - tuple( - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - ): list([ - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, 273, 274, 275, @@ -5411,8029 +4245,3392 @@ 284, 285, 286, - ]), - }) -# --- -# name: test_snapshot_cohorts[NWMMidwest] - dict({ - tuple( - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 26, - 27, - 39, - 52, - 65, - ): list([ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 25, - 26, - 27, - 29, - ]), - tuple( - 2, - 3, - 5, - 6, - 10, - 12, - 14, - 15, - 52, - 26, - 27, + 287, + 288, + 289, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, ): list([ - 24, - 28, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, ]), tuple( - 2, - 4, - 6, - 14, - 15, - 26, - 27, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, ): list([ - 30, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + ]), + tuple( + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 577, + 578, + 579, + 580, + 581, + 582, + 583, + 584, + 585, + 586, + 587, + 588, + 589, + 590, + 591, + 592, + 593, + 380, + 381, + 382, + 383, + ): list([ + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + ]), + tuple( + 512, + 513, + 514, + 515, + 516, + 505, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 506, + 507, + 503, + 122, + 504, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 501, + 502, + 508, + 509, + 510, + 511, + ): list([ + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, ]), + }) +# --- +# name: test_snapshot_cohorts[ERA5MonthHour] + dict({ tuple( + 0, + 1, + 2, 3, 4, 5, + 6, 7, - 39, - 40, 8, 9, + 10, + 11, + 12, + 13, 14, 15, - 16, - 26, - 27, - 28, - ): list([ - 32, - 33, - 35, - 36, - 37, - 38, - 40, - 46, - 51, - ]), - tuple( - 3, - 4, - 6, - 15, - 16, - 17, - 27, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, ): list([ - 41, - ]), - tuple( + 0, + 1, + 2, 3, - 6, - 7, - 14, - 15, - 26, - 27, - ): list([ - 31, - ]), - tuple( 4, 5, 6, + 7, 8, - 40, 9, - 15, - 17, - 18, - 27, - 28, - ): list([ - 49, - 53, - 56, - 57, - ]), - tuple( - 4, - 10, - 11, - 15, - 17, - 52, - 53, - ): list([ - 45, - ]), - tuple( - 5, - 6, - 7, 10, 11, 12, + 13, + 14, 15, 16, - 52, - 53, - 27, - 28, - ): list([ - 43, - 47, - 50, - ]), - tuple( - 6, - 7, - 40, - 9, - 41, - 8, - 16, 17, + 18, 19, 20, 21, - 27, - 28, - ): list([ - 44, - 54, - 55, - 58, - 60, - 63, - 66, - 69, - 72, - 80, - ]), - tuple( - 6, - 10, - 11, - 19, - 53, - 28, - ): list([ - 62, - ]), - tuple( - 6, - 39, - 40, - 9, - 15, - 16, - 27, - ): list([ - 39, + 22, ]), tuple( - 7, - 8, - 40, - 11, - 15, - 16, - 17, - 52, - 53, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, + 122, + 123, + 124, + 125, + 126, + 127, ): list([ - 48, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, ]), tuple( - 7, - 40, - 9, - 10, - 8, - 41, - 11, - 16, - 17, - 18, - 53, - 28, - 29, - ): list([ - 59, + 256, + 257, + 258, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 60, 61, + 62, + 63, 64, 65, + 66, 67, - ]), - tuple( - 8, - 41, - 10, - 11, - 17, - 21, - 53, - 54, - ): list([ - 79, - ]), - tuple( - 8, - 41, - 21, - ): list([ + 68, + 69, + 70, + 71, + 72, + 73, + 74, 75, - ]), - tuple( - 9, - 10, - 41, - 22, - 23, - 54, - ): list([ - 87, - ]), - tuple( - 9, - 41, - 17, - 18, - 22, - 30, - ): list([ - 84, - ]), - tuple( - 9, - 41, - 42, - 19, - 21, - 22, - 29, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, ): list([ - 82, - 86, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, ]), tuple( - 10, - 11, - 54, - 23, - 24, - ): list([ - 93, - ]), - tuple( - 10, - 12, - 18, - 19, - 20, - 53, - 54, - 28, - 29, - ): list([ + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, 85, - ]), - tuple( - 11, - 19, - 54, - 24, - 29, - 30, - ): list([ - 99, - ]), - tuple( - 16, - 3, - 15, + 86, + 87, + 88, + 89, + 90, ): list([ - 34, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, ]), tuple( - 17, - 18, - 30, - 31, - ): list([ + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + 468, + 469, + 470, + 471, + 91, 92, - ]), - tuple( - 24, - 54, - 31, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, ): list([ - 111, - ]), - tuple( - 25, - 67, - 54, - ): list([ - 120, - ]), - tuple( - 32, - 33, - 34, - 35, - 44, - 45, - 55, - 24, - 25, - 56, - ): list([ - 143, + 144, 145, + 146, + 147, + 148, 149, + 150, + 151, + 152, + 153, 154, + 155, 156, + 157, + 158, + 159, 160, + 161, + 162, 163, 164, + 165, 166, - 169, - 170, - 175, - 183, - 190, ]), tuple( - 32, - 33, - 34, - 36, - 37, - 45, - 46, - 47, - 57, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, ): list([ - 165, + 168, + 169, + 170, + 171, 172, 173, + 174, + 175, + 176, + 177, 178, 179, 180, + 181, + 182, + 183, + 184, 185, + 186, + 187, + 188, + 189, + 190, ]), tuple( - 32, - 33, - 34, - 44, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, 23, - 55, 24, - 56, + 25, + 26, + 27, + 28, + 29, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 381, + 382, + 383, ): list([ - 121, - 140, - 144, - 151, - 153, - 155, - ]), - tuple( - 32, - 33, - 41, - 42, - 23, - 55, - 54, - 22, 24, 25, - 31, - ): list([ - 101, - 113, - 116, - 124, - 125, - 129, - 130, - 131, - ]), - tuple( - 32, - 33, - 42, - 19, - 20, - 22, + 26, + 27, + 28, + 29, 30, 31, - ): list([ - 110, - 122, - 159, - ]), - tuple( 32, 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, 45, - ): list([ - 150, - 158, + 46, ]), tuple( - 32, - 33, - 55, - 24, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 30, 31, - ): list([ - 137, - ]), - tuple( 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, 41, 42, 43, - 19, - 20, - 21, - 22, - 23, - 54, - 24, - 29, - 30, - 31, - ): list([ - 77, - 90, - 94, - 95, - 98, - 100, - 104, - 107, - 108, - 109, - 112, - 115, - 117, - ]), - tuple( - 32, - 42, - 43, - 20, - 21, - 31, - ): list([ - 123, - ]), - tuple( - 32, - 43, - 22, - ): list([ - 139, - ]), - tuple( - 33, - 34, - 35, - 42, - 43, - 44, - 20, - 21, - 22, - ): list([ - 119, - 128, - 132, - 138, - 141, - 147, - 152, - ]), - tuple( - 33, - 43, - 44, - 20, - 30, - 31, - ): list([ - 118, - 126, - 135, - 142, - ]), - tuple( - 34, - 46, - 47, - ): list([ - 187, - 193, - ]), - tuple( - 35, - 36, - 37, - 38, 44, 45, - 46, - 57, - 58, - 59, - ): list([ - 168, - 177, - 186, - 191, - 195, - 199, - 203, - 204, + 212, 213, - ]), - tuple( - 35, - 36, - 43, - 44, - 22, - 23, - 56, - 57, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, ): list([ - 146, - 157, - 162, - ]), - tuple( - 35, - 36, - 46, 48, 49, - 59, - ): list([ - 200, - 205, - 212, - 219, - ]), - tuple( - 35, - 37, - 44, - 24, - 57, - 56, - ): list([ - 171, - 176, - 192, - 198, - ]), - tuple( - 35, - 38, - 45, + 50, + 51, + 52, + 53, + 54, + 55, 56, - 25, - 57, - ): list([ - 181, - ]), - tuple( - 36, - 37, - 23, - 24, 57, - 56, - ): list([ - 167, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, ]), tuple( - 36, - 37, - 38, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 45, 46, 47, 48, - 57, - 58, - ): list([ - 188, - 201, - 208, - 211, - 217, - 223, - ]), - tuple( - 36, - 37, - 47, - 58, - 59, - ): list([ - 197, - 206, - 210, - 216, - 221, - ]), - tuple( - 36, - 37, 49, 50, - 59, - ): list([ - 224, - 230, - 234, - ]), - tuple( - 37, - 49, + 51, + 52, + 53, + 54, + 55, + 56, + 57, 58, 59, 60, - ): list([ - 225, - ]), - tuple( - 38, - 71, - 72, - 58, - 59, - ): list([ - 218, - 226, + 228, + 229, + 230, 231, + 232, + 233, + 234, + 235, + 236, 237, - ]), - tuple( - 38, + 238, + 239, + 240, + 241, + 242, + ): list([ 72, 73, - 51, - 59, - 60, - ): list([ - 245, - 252, - 260, - 267, - ]), - tuple( - 39, - 40, - 9, - 10, - 52, - 53, - ): list([ - 42, - ]), - tuple( - 40, - 9, - 10, - 41, - 53, - 54, - ): list([ 74, - ]), - tuple( - 40, - 9, - 41, - 12, - 18, - 19, - 53, - 28, - 29, - ): list([ - 68, - ]), - tuple( - 40, - 9, - 41, - 16, - 17, - 18, - 29, - 30, - ): list([ - 71, + 75, + 76, + 77, 78, - ]), - tuple( - 41, - 10, - 18, - 19, - 21, - 54, - 23, - 29, - 30, - ): list([ - 73, - 89, - 91, - ]), - tuple( - 41, - 11, - 18, - 20, - 53, - 54, - 21, - 24, - 29, - 30, - ): list([ + 79, + 80, 81, + 82, 83, - 96, - ]), - tuple( - 41, - 18, - 22, - 30, - 31, - ): list([ - 97, - 103, - ]), - tuple( - 42, - 43, - 20, - 21, - 54, - 24, - ): list([ - 114, - ]), - tuple( - 42, - 43, - 23, - 22, - 55, - 24, - 56, - ): list([ - 127, - 136, - ]), - tuple( - 43, - 23, - 21, - 55, - 24, - ): list([ - 133, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, ]), tuple( - 46, - 47, - 48, - 49, - 50, - 59, - 60, + 512, + 513, + 514, + 515, + 516, + 517, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, ): list([ - 194, - 202, - 209, - 214, - 215, + 216, + 217, + 218, + 219, 220, + 221, 222, + 223, + 224, + 225, + 226, 227, 228, 229, + 230, + 231, 232, 233, + 234, 235, 236, - 241, - 243, + 237, + 238, ]), tuple( - 48, - 49, - 50, - 61, - 62, - 63, - ): list([ - 253, - 254, - 255, - 258, - 259, - 261, - 263, - 264, - 265, - 266, - 269, - 270, - 271, - 274, - 275, - 276, - 279, - 280, - 283, - 284, - 287, - 290, - ]), - tuple( - 48, - 49, - 61, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348, + 349, ): list([ + 240, + 241, 242, - 249, - ]), - tuple( - 49, - 50, - 59, - 60, - ): list([ - 238, - 239, + 243, 244, + 245, 246, 247, + 248, + 249, 250, 251, - 257, - ]), - tuple( - 49, - 51, - 59, - 60, - 61, - ): list([ - 248, + 252, + 253, + 254, + 255, 256, + 257, + 258, + 259, + 260, + 261, 262, ]), tuple( - 57, - 36, - 37, - ): list([ + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, 182, - 189, - ]), - tuple( - 59, - 51, - 38, - ): list([ - 240, - ]), - tuple( - 64, - 74, - 75, - 51, - 61, - 62, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, ): list([ + 264, + 265, + 266, + 267, 268, + 269, + 270, + 271, 272, 273, + 274, + 275, + 276, 277, 278, + 279, + 280, 281, - ]), - tuple( - 64, - 75, - 76, - 62, - 63, - ): list([ 282, + 283, + 284, 285, 286, - 288, - 289, - 291, - 292, - 293, - 294, - ]), - tuple( - 64, - 77, - ): list([ - 295, - 296, ]), + }) +# --- +# name: test_snapshot_cohorts[NWMMidwest] + dict({ tuple( - 65, - 66, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, 12, + 13, + 14, + 15, + 26, + 27, + 39, 52, - 53, - ): list([ - 52, - 70, - ]), - tuple( - 66, - 67, - 12, - 53, - 54, + 65, ): list([ - 88, - ]), - tuple( - 67, - 42, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, 12, + 13, + 14, + 15, + 16, + 17, + 18, 19, + 20, 21, - 54, + 22, + 23, 25, - 30, - ): list([ - 102, - 105, + 26, + 27, + 29, ]), tuple( - 68, - 69, - 55, - 56, - 25, + 2, + 3, + 5, + 6, + 10, + 12, + 14, + 15, + 52, + 26, + 27, ): list([ - 134, - 148, - 161, + 24, + 28, ]), tuple( - 69, - 38, - 70, - 56, - 25, - 57, + 2, + 4, + 6, + 14, + 15, + 26, + 27, ): list([ - 174, - 184, - 196, - 207, + 30, ]), - }) -# --- -# name: test_snapshot_cohorts[OISST] - dict({ tuple( - 0, - 255, - 912, - 145, - 401, - 657, - 1168, - 1424, - 1022, - 146, - 913, - 767, - 1169, - 1278, - 1314, - 547, + 3, + 4, + 5, + 7, + 39, + 40, + 8, + 9, + 14, + 15, + 16, + 26, + 27, + 28, + ): list([ + 32, + 33, + 35, 36, - 292, - 803, - 1059, - 1315, - 548, - 693, - 182, - 438, - 949, - 1205, - 694, - 839, - 72, - 328, - 584, - 1095, - 1351, - 73, - 840, - 985, - 474, - 218, - 730, - 1241, - 219, - 986, - 475, - 1242, - 1387, - 620, - 109, - 365, - 876, - 1132, - 621, - 1388, - 766, - 511, + 37, + 38, + 40, + 46, + 51, + ]), + tuple( + 3, + 4, + 6, + 15, + 16, + 17, + 27, ): list([ - 241, - 242, - 243, - 244, - 245, + 34, + 41, ]), tuple( - 0, - 255, - 1424, - 657, - 146, - 402, - 767, - 913, - 1169, - 1023, - 803, - 36, - 292, - 548, - 1059, - 1315, - 949, - 182, - 438, - 694, - 1205, - 1351, - 584, - 73, - 329, - 840, - 1096, - 730, - 475, - 219, - 986, - 1242, - 876, - 109, - 365, - 621, - 1132, - 1388, - 1278, - 511, + 3, + 6, + 7, + 14, + 15, + 26, + 27, ): list([ - 246, + 31, ]), tuple( - 0, - 256, - 512, - 913, - 146, - 402, - 658, - 1169, - 1425, - 1023, - 1059, - 292, - 37, - 548, - 804, - 1279, - 1315, - 694, - 439, - 183, - 950, - 1206, - 840, - 73, - 329, - 585, - 1096, - 1352, - 986, - 475, - 219, - 731, - 1242, - 1132, - 365, - 110, - 621, - 877, - 1388, - 767, + 4, + 5, + 6, + 8, + 40, + 9, + 15, + 17, + 18, + 27, + 28, ): list([ - 250, + 49, + 53, + 56, + 57, ]), tuple( - 0, - 256, - 512, - 913, - 146, - 402, - 658, - 1169, - 1425, - 1023, - 1279, - 548, - 37, - 293, - 804, - 1060, - 1315, - 694, - 439, - 183, - 950, - 1206, - 840, - 73, - 329, - 585, - 1096, - 1352, - 986, - 475, - 219, - 731, - 1242, - 1388, - 621, - 110, - 366, - 877, - 1133, - 767, - ): list([ - 251, - ]), - tuple( - 0, - 256, - 512, - 1169, - 402, - 147, - 658, - 914, - 1425, - 1023, - 1279, - 548, - 37, - 293, - 804, - 1060, - 1315, - 694, - 439, - 183, - 950, - 1206, - 840, - 73, - 329, - 585, - 1096, - 1352, - 1242, - 475, - 220, - 731, - 987, - 1388, - 621, - 110, - 366, - 877, - 1133, - 767, + 4, + 10, + 11, + 15, + 17, + 52, + 53, ): list([ - 252, + 45, ]), tuple( - 0, - 256, - 913, - 146, - 402, - 658, - 767, - 1169, - 1425, - 1023, - 1059, - 292, - 37, - 548, - 804, - 1315, - 1205, - 438, - 183, - 694, - 950, - 840, - 73, - 329, - 585, - 1096, - 1352, - 986, - 475, - 219, - 731, - 1242, - 1132, - 365, - 110, - 621, - 877, - 1388, - 1278, - 511, + 5, + 6, + 7, + 10, + 11, + 12, + 15, + 16, + 52, + 53, + 27, + 28, ): list([ - 249, + 43, + 47, + 50, ]), tuple( - 0, - 256, - 1424, - 657, - 146, - 402, - 767, - 913, - 1169, - 1023, - 803, - 36, - 292, - 548, - 1059, - 1315, - 1205, - 438, - 183, - 694, - 950, - 1351, - 584, - 73, - 329, - 840, - 1096, - 730, - 475, - 219, - 986, - 1242, - 1132, - 109, - 365, - 621, - 877, - 1388, - 1278, - 511, + 6, + 7, + 40, + 9, + 41, + 8, + 16, + 17, + 19, + 20, + 21, + 27, + 28, ): list([ - 247, + 44, + 54, + 55, + 58, + 60, + 63, + 66, + 69, + 72, + 80, ]), tuple( - 0, - 256, - 1424, - 657, - 146, - 402, - 767, - 913, - 1169, - 1023, - 1059, - 292, - 37, - 548, - 804, - 1315, - 1205, - 438, - 183, - 694, - 950, - 1351, - 584, - 73, - 329, - 840, - 1096, - 986, - 475, - 219, - 731, - 1242, - 1132, - 365, - 110, - 621, - 877, - 1388, - 1278, - 511, + 6, + 10, + 11, + 19, + 53, + 28, ): list([ - 248, + 62, ]), tuple( - 128, - 383, - 529, - 18, - 274, - 785, - 1041, - 1297, - 895, - 1406, - 931, - 164, - 420, - 676, - 1187, - 1443, - 1077, - 310, - 55, - 566, - 822, - 1333, - 1223, - 456, - 201, - 712, - 968, - 858, - 347, - 603, - 91, - 1114, - 1370, - 1004, - 237, - 493, - 749, - 1260, - 1150, - 639, + 6, + 39, + 40, + 9, + 15, + 16, + 27, ): list([ - 64, + 39, ]), tuple( - 128, - 383, - 785, + 7, + 8, + 40, + 11, + 15, + 16, + 17, + 52, + 53, + ): list([ + 48, + ]), + tuple( + 7, + 40, + 9, + 10, + 8, + 41, + 11, + 16, + 17, 18, - 274, - 530, - 1041, - 1297, - 895, - 1151, - 931, - 164, - 420, - 676, - 1187, - 1443, - 1077, - 310, - 55, - 566, - 822, - 1333, - 712, - 201, - 457, - 968, - 1224, - 858, - 347, - 603, - 91, - 1114, - 1370, - 1004, - 237, - 493, - 749, - 1260, - 1406, - 639, + 53, + 28, + 29, ): list([ + 59, + 61, + 64, 65, + 67, ]), tuple( - 128, - 383, - 1296, - 529, + 8, + 41, + 10, + 11, + 17, + 21, + 53, + 54, + ): list([ + 75, + 79, + ]), + tuple( + 9, + 10, + 41, + 22, + 23, + 54, + ): list([ + 87, + ]), + tuple( + 9, + 41, + 17, 18, - 274, - 785, - 1041, - 895, - 1406, - 675, - 164, - 420, - 931, - 1187, - 1442, - 821, + 22, + 30, + ): list([ + 84, + ]), + tuple( + 10, + 11, 54, - 310, - 566, - 1077, - 1333, - 1223, - 456, - 201, - 712, - 968, - 1369, - 602, - 347, - 91, - 858, - 1114, - 748, - 237, - 493, - 1004, - 1260, - 1150, - 639, + 23, + 24, ): list([ - 62, + 93, ]), tuple( - 128, - 383, - 1296, - 529, + 10, + 12, 18, - 274, - 785, - 1041, - 895, - 1406, - 675, - 164, - 420, - 931, - 1187, - 1443, - 1077, - 310, - 55, - 566, - 822, - 1333, - 1223, - 456, - 201, - 712, - 968, - 1369, - 602, - 347, - 91, - 858, - 1114, - 1004, - 237, - 493, - 749, - 1260, - 1150, - 639, + 19, + 20, + 53, + 54, + 28, + 29, ): list([ - 63, + 76, + 85, ]), tuple( - 128, - 384, - 640, - 1041, - 274, + 11, 19, - 530, - 786, - 1297, - 1151, - 1187, - 420, - 165, - 676, - 932, - 1407, - 1443, - 822, - 567, - 55, - 311, - 1078, - 1334, - 968, - 201, - 457, - 713, - 1224, - 1114, - 603, - 347, - 92, - 859, - 1370, - 1260, - 493, - 238, - 749, - 1005, - 895, + 54, + 24, + 29, + 30, ): list([ - 69, + 99, ]), tuple( - 128, - 384, - 640, - 1041, - 274, - 19, - 530, - 786, - 1297, - 1151, - 1443, - 676, - 165, - 421, - 932, - 1188, - 1407, - 822, - 567, - 55, - 311, - 1078, - 1334, - 968, - 201, - 457, - 713, - 1224, - 1114, - 603, - 347, + 16, + 17, + 18, + 29, + 30, + 31, + ): list([ + 78, 92, - 859, - 1370, - 749, - 238, - 494, - 1005, - 1261, - 895, + ]), + tuple( + 24, + 54, + 31, ): list([ - 70, + 111, ]), tuple( - 128, - 384, - 640, - 1297, - 530, - 19, - 275, - 786, - 1042, - 1151, - 1443, - 676, - 165, - 421, - 932, - 1188, - 1407, - 822, - 567, - 55, - 311, - 1078, - 1334, - 968, - 201, - 457, - 713, - 1224, - 1370, - 603, - 348, - 92, - 859, - 1115, - 749, - 238, - 494, - 1005, - 1261, - 895, + 25, + 67, + 54, ): list([ - 71, + 120, ]), tuple( - 128, - 384, - 785, - 18, - 274, - 530, - 1041, - 1297, - 895, - 1151, - 931, - 164, - 420, - 676, - 1187, - 1443, - 1333, - 566, + 32, + 33, + 34, + 35, + 44, + 45, 55, - 311, - 822, - 1078, - 712, - 201, - 457, - 968, - 1224, - 858, - 347, - 603, - 91, - 1114, - 1370, - 1260, - 237, - 493, - 749, - 1005, - 1406, - 639, + 24, + 25, + 56, ): list([ - 66, + 143, + 145, + 149, + 154, + 156, + 160, + 163, + 164, + 166, + 169, + 170, + 175, + 183, + 190, ]), tuple( - 128, - 384, - 785, - 18, - 274, - 530, - 1041, - 1297, - 895, - 1151, - 1187, - 420, - 165, - 676, - 932, - 1443, - 1333, - 566, - 55, - 311, - 822, - 1078, - 712, - 201, - 457, - 968, - 1224, - 1114, - 347, - 603, - 91, - 859, - 1370, - 1260, - 493, - 238, - 749, - 1005, - 1406, - 639, + 32, + 33, + 34, + 36, + 37, + 45, + 46, + 47, + 57, ): list([ - 67, + 165, + 172, + 173, + 178, + 179, + 180, + 185, ]), tuple( - 128, - 384, - 1041, - 274, - 19, - 530, - 786, - 1297, - 895, - 1151, - 1187, - 420, - 165, - 676, - 932, - 1443, - 1333, - 566, + 32, + 33, + 34, + 44, + 23, 55, - 311, - 822, - 1078, - 968, - 201, - 457, - 713, - 1224, - 1114, - 603, - 347, - 92, - 859, - 1370, - 1260, - 493, - 238, - 749, - 1005, - 1406, - 639, + 24, + 56, ): list([ - 68, + 121, + 140, + 144, + 151, + 153, + 155, ]), tuple( - 255, - 912, - 145, - 401, - 657, - 1168, - 1424, - 1022, - 1278, - 1058, - 291, - 36, - 547, - 803, - 1314, - 693, - 182, - 438, - 949, - 1205, - 839, - 72, - 328, - 584, - 1095, - 1351, - 985, - 474, - 218, - 730, - 1241, - 1131, - 364, - 109, - 620, - 876, - 1387, - 766, - 511, + 32, + 33, + 41, + 42, + 23, + 55, + 54, + 22, + 24, + 25, + 31, ): list([ - 240, + 101, + 113, + 116, + 124, + 125, + 129, + 130, + 131, ]), tuple( - 256, - 1, - 512, - 768, - 1024, - 1425, - 658, - 147, - 403, - 914, - 1170, - 804, - 37, - 293, - 549, - 1060, - 1316, - 950, - 439, - 183, - 695, - 1206, - 1352, - 585, - 74, - 330, - 841, - 1097, - 731, - 476, - 220, - 987, - 1243, - 877, - 110, - 366, - 622, - 1133, - 1389, - 1279, + 32, + 33, + 42, + 19, + 20, + 22, + 30, + 31, ): list([ - 256, + 110, + 122, + 159, ]), tuple( - 256, - 1, - 512, - 768, - 1169, - 402, - 147, - 658, - 914, - 1425, - 1279, - 548, - 37, - 293, - 804, - 1060, - 1315, - 694, - 439, - 183, - 950, - 1206, - 1096, - 329, - 74, - 585, - 841, - 1352, - 1242, - 475, - 220, - 731, - 987, - 1388, - 621, - 110, - 366, - 877, - 1133, - 1023, + 32, + 33, + 45, ): list([ - 253, + 150, + 158, ]), tuple( - 256, - 1, - 512, - 768, - 1169, - 402, - 147, - 658, - 914, - 1425, - 1279, - 548, - 37, - 293, - 804, - 1060, - 1316, - 950, - 439, - 183, - 695, - 1206, - 1096, - 329, - 74, - 585, - 841, - 1352, - 1242, - 475, - 220, - 731, - 987, - 877, - 110, - 366, - 622, - 1133, - 1389, - 1023, + 32, + 33, + 55, + 24, + 31, ): list([ - 254, + 137, ]), tuple( - 256, - 1, - 512, - 768, - 1425, - 402, - 147, - 658, - 914, - 1170, - 1279, - 804, - 37, - 293, - 549, - 1060, - 1316, - 950, - 439, - 183, - 695, - 1206, - 1096, - 329, - 74, - 585, - 841, - 1352, - 731, - 476, - 220, - 987, - 1243, - 877, - 110, - 366, - 622, - 1133, - 1389, - 1023, + 32, + 41, + 42, + 43, + 19, + 20, + 21, + 22, + 23, + 54, + 24, + 29, + 30, + 31, ): list([ - 255, + 77, + 90, + 94, + 95, + 98, + 100, + 104, + 107, + 108, + 109, + 112, + 115, + 117, ]), tuple( - 382, - 528, - 17, - 273, - 784, - 894, - 1040, - 1296, - 1405, - 930, - 163, - 419, - 675, - 1186, - 1442, - 1076, - 309, - 54, - 565, - 821, - 1332, - 1222, - 455, - 200, - 711, - 967, - 857, - 346, - 602, - 90, - 1113, - 1369, - 1003, - 236, - 492, - 748, - 1259, - 1149, - 638, - 127, + 32, + 42, + 43, + 20, + 21, + 31, ): list([ - 54, + 123, ]), tuple( - 382, - 784, - 17, - 273, - 529, - 894, - 1040, - 1296, - 1150, - 930, - 163, - 419, - 675, - 1186, - 1442, - 1076, - 309, - 54, - 565, - 821, - 1332, - 711, - 200, - 456, - 967, - 1223, - 857, - 346, - 602, - 90, - 1113, - 1369, - 1003, - 236, - 492, - 748, - 1259, - 1405, - 638, - 127, + 32, + 43, + 22, ): list([ - 55, + 139, ]), tuple( - 382, - 1295, - 528, - 17, - 273, - 784, - 894, - 1040, - 1405, - 674, - 163, - 419, - 930, - 1186, - 1442, - 1076, - 309, - 54, - 565, - 821, - 1332, - 1222, - 455, - 200, - 711, - 967, - 1368, - 601, - 346, - 90, - 857, - 1113, - 1003, - 236, - 492, - 748, - 1259, - 1149, - 638, - 127, + 33, + 34, + 35, + 42, + 43, + 44, + 20, + 21, + 22, ): list([ - 53, + 106, + 119, + 128, + 132, + 138, + 141, + 147, + 152, ]), tuple( - 382, - 1295, - 528, - 17, - 273, - 784, - 894, - 1040, - 1405, - 1441, - 674, - 163, - 419, - 930, - 1186, - 820, - 53, - 309, - 565, - 1076, - 1332, - 1222, - 455, - 200, - 711, - 967, - 1368, - 601, - 346, - 90, - 857, - 1113, - 747, - 236, - 492, - 1003, - 1259, - 1149, - 638, - 127, + 33, + 43, + 44, + 20, + 30, + 31, ): list([ - 52, + 118, + 126, + 135, + 142, ]), tuple( - 384, - 129, - 640, - 896, - 530, - 19, - 275, - 786, - 1042, - 1298, - 932, - 165, - 421, - 677, - 1188, - 1407, - 1444, - 1078, - 567, - 311, + 34, + 46, + 47, + ): list([ + 187, + 193, + ]), + tuple( + 35, + 36, + 37, + 38, + 44, + 45, + 46, + 57, + 58, + 59, + ): list([ + 168, + 177, + 186, + 191, + 195, + 199, + 203, + 204, + 213, + ]), + tuple( + 35, + 36, + 43, + 44, + 22, + 23, 56, - 823, - 1334, - 1224, - 457, - 202, - 713, - 969, - 859, - 348, - 92, - 604, - 1115, - 1371, - 1005, - 238, - 494, - 750, - 1261, - 1151, + 57, ): list([ - 74, + 146, + 157, + 162, ]), tuple( - 384, - 129, - 640, - 896, - 1152, - 786, - 19, - 275, - 531, - 1042, - 1298, - 932, - 165, - 421, - 677, - 1188, - 1444, - 1078, - 567, - 311, + 35, + 36, + 46, + 48, + 49, + 59, + ): list([ + 200, + 205, + 212, + 219, + ]), + tuple( + 35, + 37, + 44, + 24, + 57, 56, - 823, - 1334, - 713, - 202, - 458, - 969, - 1225, - 859, - 348, - 92, - 604, - 1115, - 1371, - 1005, - 238, - 494, - 750, - 1261, - 1407, ): list([ - 75, + 171, + 176, + 192, + 198, ]), tuple( - 384, - 129, - 640, - 896, - 1297, - 530, - 19, - 275, - 786, - 1042, - 676, - 165, - 421, - 932, - 1188, - 1407, - 1444, - 1078, - 567, - 311, + 35, + 38, + 45, 56, - 823, - 1334, - 1224, - 457, - 202, - 713, - 969, - 1370, - 603, - 348, - 92, - 859, - 1115, - 1005, - 238, - 494, - 750, - 1261, - 1151, + 25, + 57, ): list([ - 73, + 181, ]), tuple( - 384, - 129, - 640, - 896, - 1297, - 530, - 19, - 275, - 786, - 1042, - 1443, - 676, - 165, - 421, - 932, - 1188, - 1407, - 822, - 567, - 55, - 311, - 1078, - 1334, - 1224, - 457, - 202, - 713, - 969, - 1370, - 603, - 348, - 92, - 859, - 1115, - 749, - 238, - 494, - 1005, - 1261, - 1151, + 36, + 37, + 23, + 24, + 57, + 56, ): list([ - 72, + 167, + 182, + 189, ]), tuple( - 512, - 1, - 257, - 768, - 1024, - 914, - 147, - 403, - 659, - 1170, - 1426, - 1060, - 293, + 36, + 37, 38, - 549, - 805, - 1316, - 1206, - 439, - 184, - 695, - 951, - 841, - 74, - 330, - 586, - 1097, - 1353, - 987, - 476, - 220, - 732, - 1243, - 1133, - 366, - 111, - 622, - 878, - 1389, - 1279, + 46, + 47, + 48, + 57, + 58, ): list([ - 259, + 188, + 201, + 208, + 211, + 217, + 223, ]), tuple( - 512, - 1, - 257, - 768, - 1024, - 1425, - 658, - 147, - 403, - 914, - 1170, - 804, + 36, 37, - 293, - 549, - 1060, - 1316, - 1206, - 439, - 184, - 695, - 951, - 1352, - 585, - 74, - 330, - 841, - 1097, - 731, - 476, - 220, - 987, - 1243, - 1133, - 110, - 366, - 622, - 878, - 1389, - 1279, + 47, + 58, + 59, ): list([ - 257, + 197, + 206, + 210, + 216, + 221, ]), tuple( - 512, - 1, - 257, - 768, - 1024, - 1425, - 658, - 147, - 403, - 914, - 1170, - 1060, - 293, - 38, - 549, - 805, - 1316, - 1206, - 439, - 184, - 695, - 951, - 1352, - 585, - 74, - 330, - 841, - 1097, - 987, - 476, - 220, - 732, - 1243, - 1133, - 366, - 111, - 622, - 878, - 1389, - 1279, + 36, + 37, + 49, + 50, + 59, ): list([ - 258, + 224, + 230, + 234, ]), tuple( - 638, - 1039, - 272, - 17, - 528, - 784, - 1295, - 1149, - 1405, - 1185, - 418, - 163, - 674, - 930, - 1441, - 820, - 53, - 309, - 565, - 1076, - 1332, - 966, - 199, - 455, - 711, - 1222, - 1112, - 601, - 345, - 90, - 857, - 1368, - 1258, - 491, - 236, - 747, - 1003, - 126, - 893, - 382, - ): list([ + 37, 49, + 58, + 59, + 60, + ): list([ + 225, ]), tuple( - 638, - 1039, - 272, - 17, - 528, - 784, - 1295, - 1149, - 1405, - 1441, - 674, - 163, - 419, - 930, - 1186, - 820, - 53, - 309, - 565, - 1076, - 1332, - 966, - 199, - 455, - 711, - 1222, - 1112, - 601, - 345, - 90, - 857, - 1368, - 747, - 236, - 492, - 1003, - 1259, - 126, - 893, - 382, + 38, + 71, + 72, + 58, + 59, ): list([ - 50, + 218, + 226, + 231, + 237, ]), tuple( - 638, - 1295, - 528, - 17, - 273, - 784, - 1040, - 1149, - 1405, - 1441, - 674, - 163, - 419, - 930, - 1186, - 820, + 38, + 72, + 73, + 51, + 59, + 60, + ): list([ + 245, + 252, + 260, + 267, + ]), + tuple( + 39, + 40, + 9, + 10, + 52, 53, - 309, - 565, - 1076, - 1332, - 966, - 199, - 455, - 711, - 1222, - 1368, - 601, - 346, - 90, - 857, - 1113, - 747, - 236, - 492, - 1003, - 1259, - 126, - 893, - 382, ): list([ - 51, + 42, ]), tuple( - 639, - 1040, - 273, - 18, - 529, - 785, - 1296, - 1150, - 1186, - 419, - 164, - 675, - 931, - 1406, - 1442, - 821, + 40, + 9, + 10, + 41, + 53, 54, - 310, - 566, - 1077, - 1333, - 967, - 200, - 456, - 712, - 1223, - 1113, - 602, - 346, - 91, - 858, - 1369, - 1259, - 492, - 237, - 748, - 1004, - 127, - 894, - 383, ): list([ - 59, + 74, ]), tuple( - 639, - 1040, - 273, + 40, + 9, + 41, + 12, 18, - 529, - 785, - 1296, - 1150, - 1406, - 675, - 164, - 420, - 931, - 1187, - 1442, - 821, - 54, - 310, - 566, - 1077, - 1333, - 967, - 200, - 456, - 712, - 1223, - 1113, - 602, - 346, - 91, - 858, - 1369, - 748, - 237, - 493, - 1004, - 1260, - 127, - 894, - 383, + 19, + 53, + 22, + 28, + 29, ): list([ - 60, + 68, + 82, ]), tuple( - 639, - 1296, - 529, + 40, + 9, + 41, + 16, + 17, 18, - 274, - 785, - 1041, - 1150, - 1406, - 675, - 164, - 420, - 931, - 1187, - 1442, - 821, - 54, - 310, - 566, - 1077, - 1333, - 967, - 200, - 456, - 712, - 1223, - 1369, - 602, - 347, - 91, - 858, - 1114, - 748, - 237, - 493, - 1004, - 1260, - 127, - 894, - 383, + 29, ): list([ - 61, + 71, ]), tuple( - 640, - 129, - 385, - 896, - 1152, - 786, + 41, + 10, + 18, 19, - 275, - 531, - 1042, - 1298, - 932, - 165, - 421, - 677, - 1188, - 1444, - 1334, - 567, - 312, - 56, - 823, - 1079, - 713, - 202, - 458, - 969, - 1225, - 859, - 348, - 92, - 604, - 1115, - 1371, - 1261, - 238, - 494, - 750, - 1006, - 1407, + 21, + 54, + 23, + 29, + 30, ): list([ - 76, + 73, + 86, + 89, + 91, ]), tuple( - 640, - 129, - 385, - 896, - 1152, - 786, - 19, - 275, - 531, - 1042, - 1298, - 1188, - 421, - 166, - 677, - 933, - 1444, - 1334, - 567, - 312, - 56, - 823, - 1079, - 713, - 202, - 458, - 969, - 1225, - 1115, - 348, - 92, - 604, - 860, - 1371, - 1261, - 494, - 239, - 750, - 1006, - 1407, + 41, + 11, + 18, + 20, + 53, + 54, + 21, + 24, + 29, + 30, ): list([ - 77, + 81, + 83, + 96, ]), tuple( - 640, - 129, - 385, - 896, - 1152, - 1042, - 275, - 20, - 531, - 787, - 1298, - 1188, - 421, - 166, - 677, - 933, - 1444, - 1334, - 567, - 312, - 56, - 823, - 1079, - 969, - 202, - 458, - 714, - 1225, - 1115, - 348, - 93, - 604, - 860, - 1371, - 1261, - 494, - 239, - 750, - 1006, - 1407, + 41, + 18, + 22, + 30, + 31, ): list([ - 78, + 97, + 103, ]), tuple( - 764, - 1019, - 909, - 142, - 398, - 654, - 1165, - 1275, - 1421, - 143, - 910, - 1166, - 1311, - 544, - 33, - 289, - 800, - 1056, - 1312, - 545, - 690, - 179, - 435, - 946, - 1202, - 691, - 836, - 69, - 325, - 581, - 1092, - 1348, - 70, - 837, - 982, - 471, - 215, - 727, - 1238, - 216, - 983, - 472, - 1239, - 1384, - 617, - 106, - 362, - 873, - 1129, - 618, - 1385, - 252, - 763, - 508, + 42, + 43, + 20, + 21, + 54, + 24, ): list([ - 211, - 212, - 213, - 214, - 215, + 114, ]), tuple( - 764, - 1020, - 910, - 143, - 399, - 655, - 1166, - 1422, - 1056, - 289, - 34, - 545, - 801, - 1312, - 1202, - 435, - 180, - 691, - 947, - 837, - 70, - 326, - 582, - 1093, - 1349, - 983, - 472, - 216, - 728, - 1239, - 1129, - 362, - 107, - 618, - 874, - 1385, - 1275, - 508, - 253, + 42, + 43, + 23, + 22, + 55, + 24, + 56, ): list([ - 219, + 127, + 136, ]), tuple( - 764, - 1020, - 1421, - 654, - 143, - 399, - 910, - 1166, - 800, - 33, - 289, - 545, - 1056, - 1312, - 946, - 179, - 435, - 691, - 1202, - 1348, - 581, - 70, - 326, - 837, - 1093, - 727, - 472, - 216, - 983, - 1239, - 873, - 106, - 362, - 618, - 1129, - 1385, - 252, - 1275, - 508, + 43, + 23, + 21, + 55, + 24, ): list([ - 216, + 133, ]), tuple( - 764, - 1020, - 1421, - 654, - 143, - 399, - 910, - 1166, - 800, - 33, - 289, - 545, - 1056, - 1312, - 1202, - 435, - 180, - 691, - 947, - 1348, - 581, - 70, - 326, - 837, - 1093, - 727, - 472, - 216, - 983, - 1239, - 1129, - 106, - 362, - 618, - 874, - 1385, - 1275, - 508, - 253, + 46, + 47, + 48, + 49, + 50, + 59, + 60, ): list([ - 217, + 194, + 202, + 209, + 214, + 215, + 220, + 222, + 227, + 228, + 229, + 232, + 233, + 235, + 236, + 241, + 243, ]), tuple( - 764, - 1020, - 1421, - 654, - 143, - 399, - 910, - 1166, - 1056, - 289, - 34, - 545, - 801, - 1312, - 1202, - 435, - 180, - 691, - 947, - 1348, - 581, - 70, - 326, - 837, - 1093, - 983, - 472, - 216, - 728, - 1239, - 1129, - 362, - 107, - 618, - 874, - 1385, - 1275, - 508, + 48, + 49, + 50, + 61, + 62, + 63, + ): list([ 253, + 254, + 255, + 258, + 259, + 261, + 263, + 264, + 265, + 266, + 269, + 270, + 271, + 274, + 275, + 276, + 279, + 280, + 283, + 284, + 287, + 290, + ]), + tuple( + 48, + 49, + 61, ): list([ - 218, + 242, + 249, ]), tuple( - 765, - 911, - 144, - 400, - 656, - 1021, - 1167, - 1423, - 1057, - 290, - 35, - 546, - 802, - 1313, - 1203, - 436, - 181, - 692, - 948, - 838, - 71, - 327, - 583, - 1094, - 1350, - 984, - 473, - 217, - 729, - 1240, - 1130, - 363, - 108, - 619, - 875, - 1386, - 1276, - 509, - 254, + 49, + 50, + 60, ): list([ - 229, + 239, + 246, + 247, + 250, + 251, + 257, ]), tuple( - 765, - 1020, - 910, - 143, - 399, - 655, - 1166, - 1422, - 1276, - 144, - 911, - 1167, - 1312, - 545, - 34, - 290, - 801, - 1057, - 1313, - 546, - 691, - 180, - 436, - 947, - 1203, - 692, - 837, - 70, - 326, - 582, - 1093, - 1349, - 71, - 838, - 983, - 472, - 216, - 728, - 1239, - 217, - 984, - 473, - 1240, - 1385, - 618, - 107, - 363, - 874, - 1130, - 619, - 1386, - 253, - 764, - 509, + 49, + 51, + 59, + 60, + 61, ): list([ - 221, - 222, - 223, - 224, - 225, + 248, + 256, + 262, ]), tuple( - 765, - 1422, - 655, - 144, - 400, - 911, - 1021, - 1167, - 801, - 34, - 290, - 546, - 1057, - 1313, - 947, - 180, - 436, - 692, - 1203, - 1349, - 582, - 71, - 327, - 838, - 1094, - 728, - 473, - 217, - 984, - 1240, - 874, - 107, - 363, - 619, - 1130, - 1386, - 253, - 1276, - 509, + 50, + 59, + 60, ): list([ - 226, + 238, + 244, ]), tuple( - 765, - 1422, - 655, - 144, - 400, - 911, - 1021, - 1167, - 801, - 34, - 290, - 546, - 1057, - 1313, - 1203, - 436, - 181, - 692, - 948, - 1349, - 582, - 71, - 327, - 838, - 1094, - 728, - 473, - 217, - 984, - 1240, - 1130, - 107, - 363, - 619, - 875, - 1386, - 1276, - 509, - 254, + 59, + 51, + 38, ): list([ - 227, + 240, ]), tuple( - 765, - 1422, - 655, - 144, - 400, - 911, - 1021, - 1167, - 1057, - 290, - 35, - 546, - 802, - 1313, - 1203, - 436, - 181, - 692, - 948, - 1349, - 582, - 71, - 327, - 838, - 1094, - 984, - 473, - 217, - 729, - 1240, - 1130, - 363, - 108, - 619, - 875, - 1386, - 1276, - 509, - 254, + 64, + 74, + 75, + 51, + 61, + 62, ): list([ - 228, + 268, + 272, + 273, + 277, + 278, + 281, ]), tuple( - 766, - 911, - 144, - 400, - 656, - 1021, - 1167, - 1423, - 145, - 912, - 1168, - 1277, - 1313, - 546, - 35, + 64, + 75, + 76, + 62, + 63, + ): list([ + 282, + 285, + 286, + 288, + 289, 291, - 802, - 1058, - 1314, - 547, - 692, - 181, - 437, - 948, - 1204, - 693, - 838, - 71, - 327, - 583, - 1094, - 1350, - 72, - 839, - 984, - 473, - 217, - 729, - 1240, - 218, - 985, - 474, - 1241, - 1386, - 619, - 108, - 364, - 875, - 1131, - 620, - 1387, - 254, - 765, - 510, + 292, + 293, + 294, + ]), + tuple( + 64, + 77, ): list([ - 231, - 232, - 233, - 234, - 235, + 295, + 296, ]), tuple( - 766, - 912, - 145, - 401, - 657, - 1168, - 1424, - 1022, - 1058, - 291, - 36, - 547, - 803, - 1314, - 1204, - 437, - 182, - 693, - 949, - 839, - 72, - 328, - 584, - 1095, - 1351, - 985, - 474, - 218, - 730, - 1241, - 1131, - 364, - 109, - 620, - 876, - 1387, - 1277, - 510, - 255, + 65, + 66, + 12, + 52, + 53, ): list([ - 239, + 52, ]), tuple( - 766, - 1423, - 656, - 145, - 401, - 912, - 1168, - 1022, - 802, - 35, - 291, - 547, - 1058, - 1314, - 948, - 181, - 437, - 693, - 1204, - 1350, - 583, - 72, - 328, - 839, - 1095, - 729, - 474, - 218, - 985, - 1241, - 875, - 108, - 364, - 620, - 1131, - 1387, - 254, - 1277, - 510, + 66, + 67, + 12, + 53, + 54, ): list([ - 236, + 70, + 88, ]), tuple( - 766, - 1423, - 656, - 145, - 401, - 912, + 67, + 42, + 12, + 19, + 21, + 54, + 25, + 30, + ): list([ + 102, + 105, + ]), + tuple( + 68, + 69, + 55, + 56, + 25, + ): list([ + 134, + 148, + 161, + ]), + tuple( + 69, + 38, + 70, + 56, + 25, + 57, + ): list([ + 174, + 184, + 196, + 207, + ]), + }) +# --- +# name: test_snapshot_cohorts[OISST] + dict({ + tuple( + 0, + 255, 1168, + 401, + 146, + 657, + 913, + 1424, 1022, - 802, - 35, - 291, - 547, - 1058, + 767, + 1278, 1314, - 1204, - 437, - 182, + 547, + 36, + 292, + 803, + 1059, + 1315, 693, + 182, + 438, 949, - 1350, - 583, + 1205, + 694, + 839, 72, 328, - 839, + 584, 1095, - 729, - 474, - 218, - 985, + 1351, + 73, + 840, 1241, - 1131, - 108, - 364, + 474, + 219, + 730, + 986, + 1387, 620, + 109, + 365, 876, - 1387, - 1277, - 510, - 255, + 1132, + 621, + 1388, + 766, + 511, ): list([ - 237, + 242, + 243, + 244, ]), tuple( - 766, - 1423, - 656, - 145, + 0, + 256, + 255, + 1424, 401, - 912, - 1168, - 1022, - 1058, - 291, - 36, - 547, + 146, + 657, + 767, + 913, + 1169, + 402, + 1023, + 1278, 803, - 1314, - 1204, - 437, - 182, - 693, + 36, + 292, + 548, + 1059, + 1315, 949, - 1350, - 583, - 72, - 328, - 839, + 182, + 438, + 694, + 1205, + 183, + 950, 1095, - 985, - 474, - 218, + 328, + 73, + 584, + 840, + 1351, + 329, + 1096, 730, - 1241, - 1131, - 364, - 109, - 620, + 475, + 219, + 986, + 1242, 876, - 1387, - 1277, - 510, - 255, + 109, + 365, + 621, + 1132, + 1388, + 877, + 1022, + 511, ): list([ - 238, + 245, + 246, + 247, ]), tuple( - 768, + 0, + 256, + 512, 1, - 257, - 513, - 1024, - 1280, - 914, + 768, + 913, + 146, + 402, + 658, + 1169, + 1425, 147, - 403, - 659, - 1170, - 1426, - 1060, - 293, - 38, - 549, - 805, - 1316, - 695, - 440, - 184, - 951, - 1207, - 841, + 914, + 1023, + 1279, + 548, + 37, + 293, + 804, + 1060, + 1315, + 694, + 439, + 183, + 950, + 1206, + 840, + 73, + 329, + 585, + 1096, + 1352, 74, - 330, - 586, - 1097, - 1353, - 987, - 476, + 841, + 986, + 475, + 219, + 731, + 1242, 220, - 732, - 1243, - 1133, + 987, + 1388, + 621, + 110, 366, - 111, - 622, - 878, - 1389, + 877, + 1133, + 767, ): list([ - 260, + 251, + 252, + 253, ]), tuple( - 768, - 1, - 257, - 513, - 1024, - 1280, - 914, - 147, - 403, - 659, - 1170, - 1426, - 1316, - 549, - 38, - 294, - 805, - 1061, - 695, - 440, - 184, - 951, - 1207, - 841, - 74, - 330, - 586, - 1097, - 1353, - 987, - 476, - 220, - 732, - 1243, - 1389, - 622, - 111, - 367, - 878, - 1134, + 0, + 256, + 512, + 1424, + 657, + 146, + 402, + 767, + 913, + 1169, + 658, + 1425, + 1023, + 1059, + 292, + 37, + 548, + 804, + 1315, + 1279, + 1205, + 438, + 183, + 694, + 950, + 439, + 1206, + 1351, + 584, + 73, + 329, + 840, + 1096, + 585, + 1352, + 986, + 475, + 219, + 731, + 1242, + 1132, + 365, + 110, + 621, + 877, + 1388, + 1278, + 511, ): list([ - 261, + 248, + 249, + 250, ]), tuple( - 768, - 1, - 257, - 513, - 1024, - 1280, - 1170, - 403, - 148, - 659, - 915, - 1426, - 1316, - 549, - 38, - 294, - 805, - 1061, - 695, - 440, - 184, - 951, - 1207, - 841, - 74, - 330, - 586, - 1097, - 1353, - 1243, - 476, - 221, - 732, - 988, - 1389, - 622, - 111, - 367, - 878, - 1134, + 128, + 383, + 1296, + 529, + 18, + 274, + 785, + 1041, + 1297, + 895, + 1406, + 675, + 164, + 420, + 931, + 1187, + 1442, + 1443, + 676, + 821, + 54, + 310, + 566, + 1077, + 1333, + 55, + 822, + 1223, + 456, + 201, + 712, + 968, + 1369, + 602, + 347, + 91, + 858, + 1114, + 603, + 1370, + 748, + 237, + 493, + 1004, + 1260, + 749, + 1150, + 639, ): list([ - 262, + 62, + 63, + 64, ]), tuple( - 769, - 2, - 258, - 514, - 1025, - 1281, - 915, - 148, - 404, - 660, - 1171, - 1427, - 1061, - 294, - 39, - 550, - 806, - 1317, - 696, - 441, - 185, - 952, - 1208, - 842, - 75, - 331, - 587, - 1098, - 1354, - 988, - 477, - 221, - 733, - 1244, - 1134, - 367, - 112, - 623, - 879, - 1390, - ): list([ - 270, - ]), - tuple( - 769, - 2, - 258, - 514, - 1025, - 1281, - 915, - 148, - 404, - 660, - 1171, - 1427, - 1317, - 550, - 39, - 295, - 806, - 1062, - 696, - 441, - 185, - 952, - 1208, - 842, - 75, - 331, - 587, - 1098, - 1354, - 988, - 477, - 221, - 733, - 1244, - 1390, - 623, - 112, - 368, - 879, - 1135, - ): list([ - 271, - ]), - tuple( - 769, - 2, - 258, - 514, - 1025, - 1281, - 1171, - 404, - 149, - 660, - 916, - 1427, - 1317, - 550, - 39, - 295, - 806, - 1062, - 696, - 441, - 185, - 952, - 1208, - 842, - 75, - 331, - 587, - 1098, - 1354, - 1244, - 477, - 222, - 733, - 989, - 1390, - 623, - 112, - 368, - 879, - 1135, - ): list([ - 272, - ]), - tuple( - 770, - 3, - 259, - 515, - 1026, - 1282, - 916, - 149, - 405, - 661, - 1172, - 1428, - 1062, - 295, - 40, - 551, - 807, - 1318, - 697, - 442, - 186, - 953, - 1209, - 843, - 76, - 332, - 588, - 1099, - 1355, - 989, - 478, - 222, - 734, - 1245, - 1135, - 368, - 113, - 624, - 880, - 1391, - ): list([ - 280, - ]), - tuple( - 770, - 3, - 259, - 515, - 1026, - 1282, - 916, - 149, - 405, - 661, - 1172, - 1428, - 1318, - 551, - 40, - 296, - 807, - 1063, - 697, - 442, - 186, - 953, - 1209, - 843, - 76, - 332, - 588, - 1099, - 1355, - 989, - 478, - 222, - 734, - 1245, - 1391, - 624, - 113, - 369, - 880, - 1136, - ): list([ - 281, - ]), - tuple( - 770, - 3, - 259, - 515, - 1026, - 1282, - 1172, - 405, - 150, - 661, - 917, - 1428, - 1318, - 551, - 40, - 296, - 807, - 1063, - 697, - 442, - 186, - 953, - 1209, - 843, - 76, - 332, - 588, - 1099, - 1355, - 1245, - 478, - 223, - 734, - 990, - 1391, - 624, - 113, - 369, - 880, - 1136, - ): list([ - 282, - ]), - tuple( - 771, - 4, - 260, - 516, - 1027, - 1283, - 917, - 150, - 406, - 662, - 1173, - 1429, - 1063, - 296, - 41, - 552, - 808, - 1319, - 698, - 443, - 187, - 954, - 1210, - 844, - 77, - 333, - 589, - 1100, - 1356, - 990, - 479, - 223, - 735, - 1246, - 1136, - 369, - 114, - 625, - 881, - 1392, - ): list([ - 290, - ]), - tuple( - 771, - 4, - 260, - 516, - 1027, - 1283, - 917, - 150, - 406, - 662, - 1173, - 1429, - 1319, - 552, - 41, - 297, - 808, - 1064, - 698, - 443, - 187, - 954, - 1210, - 844, - 77, - 333, - 589, - 1100, - 1356, - 990, - 479, - 223, - 735, - 1246, - 1392, - 625, - 114, - 370, - 881, - 1137, - ): list([ - 291, - ]), - tuple( - 771, - 4, - 260, - 516, - 1027, - 1283, - 1173, - 406, - 151, - 662, - 918, - 1429, - 1319, - 552, - 41, - 297, - 808, - 1064, - 698, - 443, - 187, - 954, - 1210, - 844, - 77, - 333, - 589, - 1100, - 1356, - 1246, - 479, - 224, - 735, - 991, - 1392, - 625, - 114, - 370, - 881, - 1137, - ): list([ - 292, - ]), - tuple( - 772, - 5, - 261, - 517, - 1028, - 1284, - 918, - 407, - 663, - 151, - 1174, - 1430, - 1064, - 297, - 42, - 553, - 809, - 1320, - 699, - 444, - 188, - 955, - 1211, - 845, - 78, - 334, - 590, - 1101, - 1357, - 991, - 224, - 480, - 736, - 1247, - 1137, - 370, - 115, - 626, - 882, - 1393, - ): list([ - 300, - ]), - tuple( - 772, - 5, - 261, - 517, - 1028, - 1284, - 918, - 407, - 663, - 151, - 1174, - 1430, - 1320, - 553, - 42, - 298, - 809, - 1065, - 699, - 444, - 188, - 955, - 1211, - 845, - 78, - 334, - 590, - 1101, - 1357, - 991, - 224, - 480, - 736, - 1247, - 1393, - 626, - 115, - 371, - 882, - 1138, - ): list([ - 301, - ]), - tuple( - 772, - 5, - 261, - 517, - 1028, - 1284, - 1174, - 663, - 407, - 152, - 919, - 1430, - 1320, - 553, - 42, - 298, - 809, - 1065, - 699, - 444, - 188, - 955, - 1211, - 845, - 78, - 334, - 590, - 1101, - 1357, - 1247, - 480, - 225, - 736, - 992, - 1393, - 626, - 115, - 371, - 882, - 1138, - ): list([ - 302, - ]), - tuple( - 773, - 6, - 262, - 518, - 1029, - 1285, - 919, - 408, - 664, - 152, - 1175, - 1431, - 1065, - 298, - 43, - 554, - 810, - 1321, - 700, - 189, - 445, - 956, - 1212, - 846, - 79, - 335, - 591, - 1102, - 1358, - 992, - 225, - 481, - 737, - 1248, - 1138, - 371, - 116, - 627, - 883, - 1394, - ): list([ - 310, - ]), - tuple( - 773, - 6, - 262, - 518, - 1029, - 1285, - 919, - 408, - 664, - 152, - 1175, - 1431, - 1321, - 554, - 43, - 299, - 810, - 1066, - 700, - 189, - 445, - 956, - 1212, - 846, - 79, - 335, - 591, - 1102, - 1358, - 992, - 225, - 481, - 737, - 1248, - 1394, - 627, - 116, - 372, - 883, - 1139, - ): list([ - 311, - ]), - tuple( - 773, - 6, - 262, - 518, - 1029, - 1285, - 1175, - 664, - 408, - 153, - 920, - 1431, - 1321, - 554, - 43, - 299, - 810, - 1066, - 700, - 189, - 445, - 956, - 1212, - 846, - 79, - 335, - 591, - 1102, - 1358, - 1248, - 481, - 226, - 737, - 993, - 1394, - 627, - 116, - 372, - 883, - 1139, - ): list([ - 312, - ]), - tuple( - 774, - 7, - 263, - 519, - 1030, - 1286, - 920, - 409, - 665, - 153, - 1176, - 1432, - 1066, - 299, - 44, - 555, - 811, - 1322, - 701, - 446, - 190, - 957, - 1213, - 847, - 80, - 336, - 592, - 1103, - 1359, - 993, - 226, - 482, - 738, - 1249, - 1139, - 372, - 117, - 628, - 884, - 1395, - ): list([ - 320, - ]), - tuple( - 774, - 7, - 263, - 519, - 1030, - 1286, - 920, - 409, - 665, - 153, - 1176, - 1432, - 1322, - 555, - 44, - 300, - 811, - 1067, - 701, - 446, - 190, - 957, - 1213, - 847, - 80, - 336, - 592, - 1103, - 1359, - 993, - 226, - 482, - 738, - 1249, - 1395, - 628, - 117, - 373, - 884, - 1140, - ): list([ - 321, - ]), - tuple( - 774, - 7, - 263, - 519, - 1030, - 1286, - 1176, - 665, - 409, - 154, - 921, - 1432, - 1322, - 555, - 44, - 300, - 811, - 1067, - 701, - 446, - 190, - 957, - 1213, - 847, - 80, - 336, - 592, - 1103, - 1359, - 1249, - 482, - 227, - 738, - 994, - 1395, - 628, - 117, - 373, - 884, - 1140, - ): list([ - 322, - ]), - tuple( - 775, - 8, - 264, - 520, - 1031, - 1287, - 921, - 410, - 666, - 154, - 1177, - 1433, - 1067, - 300, - 45, - 556, - 812, - 1323, - 702, - 447, - 191, - 958, - 1214, - 848, - 81, - 337, - 593, - 1104, - 1360, - 994, - 227, - 483, - 739, - 1250, - 1140, - 373, - 118, - 629, - 885, - 1396, - ): list([ - 330, - ]), - tuple( - 775, - 8, - 264, - 520, - 1031, - 1287, - 921, - 410, - 666, - 154, - 1177, - 1433, - 1323, - 556, - 45, - 301, - 812, - 1068, - 702, - 447, - 191, - 958, - 1214, - 848, - 81, - 337, - 593, - 1104, - 1360, - 994, - 227, - 483, - 739, - 1250, - 1396, - 629, - 118, - 374, - 885, - 1141, - ): list([ - 331, - ]), - tuple( - 775, - 8, - 264, - 520, - 1031, - 1287, - 1177, - 666, - 410, - 155, - 922, - 1433, - 1323, - 556, - 45, - 301, - 812, - 1068, - 702, - 447, - 191, - 958, - 1214, - 848, - 81, - 337, - 593, - 1104, - 1360, - 1250, - 483, - 228, - 739, - 995, - 1396, - 629, - 118, - 374, - 885, - 1141, - ): list([ - 332, - ]), - tuple( - 776, - 9, - 265, - 521, - 1032, - 1288, - 922, - 411, - 155, - 667, - 1178, - 1434, - 1068, - 301, - 46, - 557, - 813, - 1324, - 703, - 192, - 448, - 959, - 1215, - 849, - 82, - 338, - 594, - 1105, - 1361, - 995, - 228, - 484, - 740, - 1251, - 1141, - 374, - 119, - 630, - 886, - 1397, - ): list([ - 340, - ]), - tuple( - 776, - 9, - 265, - 521, - 1032, - 1288, - 922, - 411, - 155, - 667, - 1178, - 1434, - 1324, - 557, - 46, - 302, - 813, - 1069, - 703, - 192, - 448, - 959, - 1215, - 849, - 82, - 338, - 594, - 1105, - 1361, - 375, - 995, - 228, - 484, - 740, - 1251, - 1397, - 630, - 119, - 886, - 1142, - ): list([ - 341, - ]), - tuple( - 776, - 9, - 265, - 521, - 1032, - 1288, - 1178, - 667, - 411, - 156, - 923, - 1434, - 1324, - 557, - 46, - 302, - 813, - 1069, - 703, - 192, - 448, - 959, - 1215, - 849, - 82, - 338, - 594, - 1105, - 1361, - 375, - 1251, - 484, - 229, - 740, - 996, - 1397, - 630, - 119, - 886, - 1142, - ): list([ - 342, - ]), - tuple( - 777, - 10, - 266, - 522, - 1033, - 1289, - 923, - 668, - 412, - 156, - 1179, - 1435, - 1069, - 302, - 47, - 558, - 814, - 1325, - 704, - 193, - 449, - 960, - 1216, - 850, - 83, - 339, - 595, - 1106, - 1362, - 375, - 996, - 229, - 485, - 741, - 1252, - 887, - 1142, - 631, - 120, - 1398, - ): list([ - 350, - ]), - tuple( - 777, - 10, - 266, - 522, - 1033, - 1289, - 923, - 668, - 412, - 156, - 1179, - 1435, - 1325, - 558, - 47, - 303, - 814, - 1070, - 704, - 193, - 449, - 960, - 1216, - 850, - 83, - 339, - 595, - 1106, - 1143, - 1362, - 120, - 996, - 229, - 485, - 741, - 1252, - 887, - 1398, - 631, - 376, - ): list([ - 351, - ]), - tuple( - 777, - 10, - 266, - 522, - 1033, - 1289, - 1179, - 668, - 412, - 157, - 924, - 1435, - 1325, - 558, - 47, - 303, - 814, - 1070, - 704, - 193, - 449, - 960, - 1216, - 850, - 83, - 339, - 595, - 1106, - 1143, - 1362, - 120, - 1252, - 485, - 230, - 741, - 997, - 887, - 1398, - 631, - 376, - ): list([ - 352, - ]), - tuple( - 778, - 11, - 267, - 523, - 1034, - 1290, - 924, - 669, - 157, - 413, - 1180, - 1436, - 1070, - 303, - 48, - 559, - 815, - 1326, - 705, - 194, - 450, - 961, - 1217, - 851, - 84, - 340, - 596, - 1107, - 1363, - 376, - 997, - 230, - 486, - 742, - 1253, - 888, - 1143, - 632, - 121, - 1399, - ): list([ - 360, - ]), - tuple( - 778, - 11, - 267, - 523, - 1034, - 1290, - 924, - 669, - 157, - 413, - 1180, - 1436, - 1326, - 559, - 48, - 304, - 815, - 1071, - 705, - 194, - 450, - 961, - 1217, - 851, - 84, - 340, - 596, - 1107, - 1363, - 121, - 997, - 230, - 486, - 742, - 1253, - 888, - 1399, - 632, - 377, - 1144, - ): list([ - 361, - ]), - tuple( - 784, - 17, - 273, - 529, - 894, - 1040, - 1296, - 1150, - 930, - 163, - 419, - 675, - 1186, - 1442, - 1332, - 565, - 54, - 310, - 821, - 1077, - 711, - 200, - 456, - 967, - 1223, - 857, - 346, - 602, - 90, - 1113, - 1369, - 1259, - 236, - 492, - 748, - 1004, - 127, - 1405, - 638, - 383, - ): list([ - 56, - ]), - tuple( - 784, - 17, - 273, - 529, - 894, - 1040, - 1296, - 1150, - 1186, - 419, - 164, - 675, - 931, - 1442, - 1332, - 565, - 54, - 310, - 821, - 1077, - 711, - 200, - 456, - 967, - 1223, - 1113, - 346, - 602, - 90, - 858, - 1369, - 1259, - 492, - 237, - 748, - 1004, - 127, - 1405, - 638, - 383, - ): list([ - 57, - ]), - tuple( - 891, - 525, - 14, - 270, - 781, - 1037, - 1293, - 1402, - 927, - 160, - 416, - 672, - 1183, - 1439, - 1073, - 306, - 51, - 562, - 818, - 1329, - 1219, - 452, - 197, - 708, - 964, - 854, - 599, - 87, - 343, - 1110, - 1366, - 1000, - 233, - 489, - 745, - 1256, - 379, - 1146, - 635, - 124, - ): list([ - 24, - ]), - tuple( - 891, - 1147, - 781, - 14, - 270, - 526, - 1037, - 1293, - 927, - 160, - 416, - 672, - 1183, - 1439, - 1073, - 306, - 51, - 562, - 818, - 1329, - 708, - 197, - 453, - 964, - 1220, - 854, - 599, - 87, - 343, - 1110, - 1366, - 1000, - 233, - 489, - 745, - 1256, - 379, - 1402, - 635, - 124, - ): list([ - 25, - ]), - tuple( - 891, - 1147, - 781, - 14, - 270, - 526, - 1037, - 1293, - 927, - 160, - 416, - 672, - 1183, - 1439, - 1329, - 562, - 51, - 307, - 818, - 1074, - 708, - 197, - 453, - 964, - 1220, - 854, - 599, - 87, - 343, - 1110, - 1366, - 1256, - 233, - 489, - 745, - 1001, - 124, - 1402, - 635, - 380, - ): list([ - 26, - ]), - tuple( - 891, - 1147, - 781, - 14, - 270, - 526, - 1037, - 1293, - 1183, - 416, - 161, - 672, - 928, - 1439, - 1329, - 562, - 51, - 307, - 818, - 1074, - 708, - 197, - 453, - 964, - 1220, - 1110, - 599, - 87, - 343, - 855, - 1366, - 1256, - 489, - 234, - 745, - 1001, - 124, - 1402, - 635, - 380, - ): list([ - 27, - ]), - tuple( - 891, - 1147, - 1037, - 270, - 15, - 526, - 782, - 1293, - 1183, - 416, - 161, - 672, - 928, - 1439, - 1329, - 562, - 51, - 307, - 818, - 1074, - 964, - 197, - 453, - 709, - 1220, - 1110, - 599, - 343, - 88, - 855, - 1366, - 1256, - 489, - 234, - 745, - 1001, - 124, - 1402, - 635, - 380, - ): list([ - 28, - ]), - tuple( - 891, - 1292, - 525, - 14, - 270, - 781, - 1037, - 1402, - 671, - 160, - 416, - 927, - 1183, - 1439, - 1073, - 306, - 51, - 562, - 818, - 1329, - 1219, - 452, - 197, - 708, - 964, - 1365, - 598, - 87, - 343, - 854, - 1110, - 1000, - 233, - 489, - 745, - 1256, - 379, - 1146, - 635, - 124, - ): list([ - 23, - ]), - tuple( - 891, - 1292, - 525, - 14, - 270, - 781, - 1037, - 1402, - 1438, - 671, - 160, - 416, - 927, - 1183, - 817, - 50, - 306, - 562, - 1073, - 1329, - 1219, - 452, - 197, - 708, - 964, - 1365, - 598, - 87, - 343, - 854, - 1110, - 744, - 233, - 489, - 1000, - 1256, - 379, - 1146, - 635, - 124, - ): list([ - 22, - ]), - tuple( - 892, - 526, - 15, - 271, - 782, - 1038, - 1294, - 1403, - 928, - 161, - 417, - 673, - 1184, - 1440, - 1074, - 307, - 52, - 563, - 819, - 1330, - 1220, - 453, - 198, - 709, - 965, - 855, - 344, - 600, - 88, - 1111, - 1367, - 1001, - 234, - 490, - 746, - 1257, - 380, - 1147, - 636, - 125, - ): list([ - 34, - ]), - tuple( - 892, - 782, - 15, - 271, - 527, - 1038, - 1148, - 1294, - 928, - 161, - 417, - 673, - 1184, - 1440, - 1074, - 307, - 52, - 563, - 819, - 1330, - 709, - 198, - 454, - 965, - 1221, - 855, - 344, - 600, - 88, - 1111, - 1367, - 1001, - 234, - 490, - 746, - 1257, - 380, - 1403, - 636, - 125, - ): list([ - 35, - ]), - tuple( - 892, - 782, - 15, - 271, - 527, - 1038, - 1148, - 1294, - 928, - 161, - 417, - 673, - 1184, - 1440, - 1330, - 563, - 52, - 308, - 819, - 1075, - 709, - 198, - 454, - 965, - 1221, - 855, - 344, - 600, - 88, - 1111, - 1367, - 1257, - 234, - 490, - 746, - 1002, - 125, - 1403, - 636, - 381, - ): list([ - 36, - ]), - tuple( - 892, - 782, - 15, - 271, - 527, - 1038, - 1148, - 1294, - 1184, - 417, - 162, - 673, - 929, - 1440, - 1330, - 563, - 52, - 308, - 819, - 1075, - 709, - 198, - 454, - 965, - 1221, - 1111, - 344, - 600, - 88, - 856, - 1367, - 1257, - 490, - 235, - 746, - 1002, - 125, - 1403, - 636, - 381, - ): list([ - 37, - ]), - tuple( - 892, - 1038, - 271, - 16, - 527, - 783, - 1148, - 1294, - 1184, - 417, - 162, - 673, - 929, - 1440, - 1330, - 563, - 52, - 308, - 819, - 1075, - 965, - 198, - 454, - 710, - 1221, - 1111, - 600, - 344, - 89, - 856, - 1367, - 1257, - 490, - 235, - 746, - 1002, - 125, - 1403, - 636, - 381, - ): list([ - 38, - ]), - tuple( - 892, - 1293, - 526, - 15, - 271, - 782, - 1038, - 1403, - 672, - 161, - 417, - 928, - 1184, - 1440, - 1074, - 307, - 52, - 563, - 819, - 1330, - 1220, - 453, - 198, - 709, - 965, - 1366, - 599, - 344, - 88, - 855, - 1111, - 1001, - 234, - 490, - 746, - 1257, - 380, - 1147, - 636, - 125, - ): list([ - 33, - ]), - tuple( - 892, - 1293, - 526, - 15, - 271, - 782, - 1038, - 1403, - 1439, - 672, - 161, - 417, - 928, - 1184, - 818, - 51, - 307, - 563, - 1074, - 1330, - 1220, - 453, - 198, - 709, - 965, - 1366, - 599, - 344, - 88, - 855, - 1111, - 745, - 234, - 490, - 1001, - 1257, - 380, - 1147, - 636, - 125, - ): list([ - 32, - ]), - tuple( - 893, - 527, - 16, - 272, - 783, - 1039, - 1295, - 1404, - 929, - 162, - 418, - 674, - 1185, - 1441, - 1075, - 308, - 53, - 564, - 820, - 1331, - 1221, - 454, - 199, - 710, - 966, - 856, - 345, - 601, - 89, - 1112, - 1368, - 1002, - 235, - 491, - 747, - 1258, - 381, - 1148, - 637, - 126, - ): list([ - 44, - ]), - tuple( - 893, - 783, - 16, - 272, - 528, - 1039, - 1295, - 1149, - 929, - 162, - 418, - 674, - 1185, - 1441, - 1075, - 308, - 53, - 564, - 820, - 1331, - 710, - 199, - 455, - 966, - 1222, - 856, - 345, - 601, - 89, - 1112, - 1368, - 1002, - 235, - 491, - 747, - 1258, - 381, - 1404, - 637, - 126, - ): list([ - 45, - ]), - tuple( - 893, - 783, - 16, - 272, - 528, - 1039, - 1295, - 1149, - 929, - 162, - 418, - 674, - 1185, - 1441, - 1331, - 564, - 53, - 309, - 820, - 1076, - 710, - 199, - 455, - 966, - 1222, - 856, - 345, - 601, - 89, - 1112, - 1368, - 1258, - 235, - 491, - 747, - 1003, - 126, - 1404, - 637, - 382, - ): list([ - 46, - ]), - tuple( - 893, - 783, - 16, - 272, - 528, - 1039, - 1295, - 1149, - 1185, - 418, - 163, - 674, - 930, - 1441, - 1331, - 564, - 53, - 309, - 820, - 1076, - 710, - 199, - 455, - 966, - 1222, - 1112, - 345, - 601, - 89, - 857, - 1368, - 1258, - 491, - 236, - 747, - 1003, - 126, - 1404, - 637, - 382, - ): list([ - 47, - ]), - tuple( - 893, - 1039, - 272, - 17, - 528, - 784, - 1295, - 1149, - 1185, - 418, - 163, - 674, - 930, - 1441, - 1331, - 564, - 53, - 309, - 820, - 1076, - 966, - 199, - 455, - 711, - 1222, - 1112, - 601, - 345, - 90, - 857, - 1368, - 1258, - 491, - 236, - 747, - 1003, - 126, - 1404, - 637, - 382, - ): list([ - 48, - ]), - tuple( - 893, - 1294, - 527, - 16, - 272, - 783, - 1039, - 1404, - 673, - 162, - 418, - 929, - 1185, - 1441, - 1075, - 308, - 53, - 564, - 820, - 1331, - 1221, - 454, - 199, - 710, - 966, - 1367, - 600, - 345, - 89, - 856, - 1112, - 1002, - 235, - 491, - 747, - 1258, - 381, - 1148, - 637, - 126, - ): list([ - 43, - ]), - tuple( - 893, - 1294, - 527, - 16, - 272, - 783, - 1039, - 1404, - 1440, - 673, - 162, - 418, - 929, - 1185, - 819, - 52, - 308, - 564, - 1075, - 1331, - 1221, - 454, - 199, - 710, - 966, - 1367, - 600, - 345, - 89, - 856, - 1112, - 746, - 235, - 491, - 1002, - 1258, - 381, - 1148, - 637, - 126, - ): list([ - 42, - ]), - tuple( - 896, - 129, - 385, - 641, - 1152, - 1408, - 1042, - 275, - 20, - 531, - 787, - 1298, - 1188, - 421, - 166, - 677, - 933, - 1444, - 823, - 312, - 568, - 56, - 1079, - 1335, - 969, - 202, - 458, - 714, - 1225, - 1115, - 348, - 93, - 604, - 860, - 1371, - 1261, - 494, - 239, - 750, - 1006, - ): list([ - 79, - ]), - tuple( - 896, - 129, - 385, - 641, - 1152, - 1408, - 1042, - 275, - 20, - 531, - 787, - 1298, - 1444, - 677, - 166, - 422, - 933, - 1189, - 823, - 312, - 568, - 56, - 1079, - 1335, - 969, - 202, - 458, - 714, - 1225, - 1115, - 348, - 93, - 604, - 860, - 1371, - 750, - 239, - 495, - 1006, - 1262, - ): list([ - 80, - ]), - tuple( - 896, - 129, - 385, - 641, - 1152, - 1408, - 1298, - 531, - 20, - 276, - 787, - 1043, - 1444, - 677, - 166, - 422, - 933, - 1189, - 823, - 312, - 568, - 56, - 1079, - 1335, - 969, - 202, - 458, - 714, - 1225, - 1371, - 604, - 349, - 93, - 860, - 1116, - 750, - 239, - 495, - 1006, - 1262, - ): list([ - 81, - ]), - tuple( - 897, - 130, - 386, - 642, - 1153, - 1409, - 1043, - 276, - 21, - 532, - 788, - 1299, - 1189, - 422, - 167, - 678, - 934, - 1445, - 824, - 313, - 569, - 57, - 1080, - 1336, - 970, - 203, - 459, - 715, - 1226, - 1116, - 605, - 349, - 94, - 861, - 1372, - 1262, - 495, - 240, - 751, - 1007, - ): list([ - 89, - ]), - tuple( - 897, - 130, - 386, - 642, - 1153, - 1409, - 1043, - 276, - 21, - 532, - 788, - 1299, - 1445, - 678, - 167, - 423, - 934, - 1190, - 824, - 313, - 569, - 57, - 1080, - 1336, - 970, - 203, - 459, - 715, - 1226, - 1116, - 605, - 349, - 94, - 861, - 1372, - 751, - 240, - 496, - 1007, - 1263, - ): list([ - 90, - ]), - tuple( - 897, - 130, - 386, - 642, - 1153, - 1409, - 1299, - 532, - 21, - 277, - 788, - 1044, - 1445, - 678, - 167, - 423, - 934, - 1190, - 824, - 313, - 569, - 57, - 1080, - 1336, - 970, - 203, - 459, - 715, - 1226, - 1372, - 605, - 350, - 94, - 861, - 1117, - 751, - 240, - 496, - 1007, - 1263, - ): list([ - 91, - ]), - tuple( - 898, - 131, - 387, - 643, - 1154, - 1410, - 1044, - 277, - 22, - 533, - 789, - 1300, - 1190, - 423, - 168, - 679, - 935, - 1446, - 825, - 314, - 570, - 58, - 1081, - 1337, - 971, - 204, - 460, - 716, - 1227, - 1117, - 606, - 350, - 95, - 862, - 1373, - 1263, - 496, - 241, - 752, - 1008, - ): list([ - 99, - ]), - tuple( - 898, - 131, - 387, - 643, - 1154, - 1410, - 1044, - 277, - 22, - 533, - 789, - 1300, - 1446, - 679, - 168, - 424, - 935, - 1191, - 825, - 314, - 570, - 58, - 1081, - 1337, - 971, - 204, - 460, - 716, - 1227, - 1117, - 606, - 350, - 95, - 862, - 1373, - 752, - 241, - 497, - 1008, - 1264, - ): list([ - 100, - ]), - tuple( - 898, - 131, - 387, - 643, - 1154, - 1410, - 1300, - 533, - 22, - 278, - 789, - 1045, - 1446, - 679, - 168, - 424, - 935, - 1191, - 825, - 314, - 570, - 58, - 1081, - 1337, - 971, - 204, - 460, - 716, - 1227, - 1373, - 606, - 351, - 95, - 862, - 1118, - 752, - 241, - 497, - 1008, - 1264, - ): list([ - 101, - ]), - tuple( - 899, - 132, - 388, - 644, - 1155, - 1411, - 1045, - 278, - 23, - 534, - 790, - 1301, - 1191, - 424, - 169, - 680, - 936, - 1447, - 826, - 315, - 571, - 59, - 1082, - 1338, - 972, - 205, - 461, - 717, - 1228, - 1118, - 607, - 96, - 351, - 863, - 1374, - 1264, - 497, - 242, - 753, - 1009, - ): list([ - 109, - ]), - tuple( - 899, - 132, - 388, - 644, - 1155, - 1411, - 1045, - 278, - 23, - 534, - 790, - 1301, - 1447, - 680, - 169, - 425, - 936, - 1192, - 826, - 315, - 571, - 59, - 1082, - 1338, - 972, - 205, - 461, - 717, - 1228, - 1118, - 607, - 96, - 351, - 863, - 1374, - 753, - 242, - 498, - 1009, - 1265, - ): list([ - 110, - ]), - tuple( - 899, - 132, - 388, - 644, - 1155, - 1411, - 1301, - 534, - 23, - 279, - 790, - 1046, - 1447, - 680, - 169, - 425, - 936, - 1192, - 826, - 315, - 571, - 59, - 1082, - 1338, - 972, - 205, - 461, - 717, - 1228, - 1374, - 607, - 96, - 352, - 863, - 1119, - 753, - 242, - 498, - 1009, - 1265, - ): list([ - 111, - ]), - tuple( - 900, - 133, - 389, - 645, - 1156, - 1412, - 1046, - 535, - 279, - 24, - 791, - 1302, - 1192, - 425, - 170, - 681, - 937, - 1448, - 827, - 316, - 60, - 572, - 1083, - 1339, - 973, - 206, - 462, - 718, - 1229, - 1119, - 352, - 97, - 608, - 864, - 1375, - 1265, - 498, - 243, - 754, - 1010, - ): list([ - 119, - ]), - tuple( - 900, - 133, - 389, - 645, - 1156, - 1412, - 1046, - 535, - 279, - 24, - 791, - 1302, - 1448, - 681, - 170, - 426, - 937, - 1193, - 827, - 316, - 60, - 572, - 1083, - 1339, - 973, - 206, - 462, - 718, - 1229, - 1119, - 352, - 97, - 608, - 864, - 1375, - 754, - 243, - 499, - 1010, - 1266, - ): list([ - 120, - ]), - tuple( - 900, - 133, - 389, - 645, - 1156, - 1412, - 1302, - 535, - 280, - 24, - 791, - 1047, - 1448, - 681, - 170, - 426, - 937, - 1193, - 827, - 316, - 60, - 572, - 1083, - 1339, - 973, - 206, - 462, - 718, - 1229, - 1375, - 608, - 97, - 353, - 864, - 1120, - 754, - 243, - 499, - 1010, - 1266, - ): list([ - 121, - ]), - tuple( - 901, - 134, - 390, - 646, - 1157, - 1413, - 1047, - 536, - 280, - 25, - 792, - 1303, - 1193, - 426, - 171, - 682, - 938, - 1449, - 828, - 573, - 317, - 61, - 1084, - 1340, - 974, - 207, - 463, - 719, - 1230, - 1120, - 353, - 98, - 609, - 865, - 1376, - 1266, - 499, - 244, - 755, - 1011, - ): list([ - 129, - ]), - tuple( - 901, - 134, - 390, - 646, - 1157, - 1413, - 1047, - 536, - 280, - 25, - 792, - 1303, - 1449, - 682, - 171, - 427, - 938, - 1194, - 828, - 573, - 317, - 61, - 1084, - 1340, - 974, - 207, - 463, - 719, - 1230, - 1120, - 353, - 98, - 609, - 865, - 1376, - 755, - 244, - 500, - 1011, - 1267, - ): list([ - 130, - ]), - tuple( - 901, - 134, - 390, - 646, - 1157, - 1413, - 1303, - 536, - 281, - 25, - 792, - 1048, - 1449, - 682, - 171, - 427, - 938, - 1194, - 828, - 573, - 317, - 61, - 1084, - 1340, - 974, - 207, - 463, - 719, - 1230, - 1376, - 609, - 98, - 354, - 865, - 1121, - 755, - 244, - 500, - 1011, - 1267, - ): list([ - 131, - ]), - tuple( - 902, - 135, - 391, - 647, - 1158, - 1414, - 1048, - 537, - 281, - 26, - 793, - 1304, - 1194, - 427, - 172, - 683, - 939, - 1450, - 829, - 318, - 574, - 62, - 1085, - 1341, - 975, - 208, - 464, - 720, - 1231, - 1121, - 354, - 99, - 610, - 866, - 1377, - 1267, - 500, - 245, - 756, - 1012, - ): list([ - 139, - ]), - tuple( - 902, - 135, - 391, - 647, - 1158, - 1414, - 1048, - 537, - 281, - 26, - 793, - 1304, - 1450, - 683, - 172, - 428, - 939, - 1195, - 829, - 318, - 574, - 62, - 1085, - 1341, - 975, - 208, - 464, - 720, - 1231, - 1121, - 354, - 99, - 610, - 866, - 1377, - 756, - 245, - 501, - 1012, - 1268, - ): list([ - 140, - ]), - tuple( - 902, - 135, - 391, - 647, - 1158, - 1414, - 1304, - 537, - 282, - 26, - 793, - 1049, - 1450, - 683, - 172, - 428, - 939, - 1195, - 829, - 318, - 574, - 62, - 1085, - 1341, - 975, - 208, - 464, - 720, - 1231, - 1377, - 610, - 99, - 355, - 866, - 1122, - 756, - 245, - 501, - 1012, - 1268, - ): list([ - 141, - ]), - tuple( - 903, - 136, - 392, - 648, - 1159, - 1415, - 1049, - 538, - 282, - 27, - 794, - 1305, - 1195, - 428, - 173, - 684, - 940, - 1451, - 830, - 319, - 575, - 63, - 1086, - 1342, - 976, - 209, - 465, - 721, - 1232, - 1122, - 355, - 100, - 611, - 867, - 1378, - 1268, - 501, - 246, - 757, - 1013, - ): list([ - 149, - ]), - tuple( - 903, - 136, - 392, - 648, - 1159, - 1415, - 1049, - 538, - 282, - 27, - 794, - 1305, - 1451, - 684, - 173, - 429, - 940, - 1196, - 830, - 319, - 575, - 63, - 1086, - 1342, - 976, - 209, - 465, - 721, - 1232, - 1122, - 355, - 100, - 611, - 867, - 1378, - 757, - 246, - 502, - 1013, - 1269, - ): list([ - 150, - ]), - tuple( - 903, - 136, - 392, - 648, - 1159, - 1415, - 1305, - 538, - 283, - 27, - 794, - 1050, - 1451, - 684, - 173, - 429, - 940, - 1196, - 830, - 319, - 575, - 63, - 1086, - 1342, - 976, - 209, - 465, - 721, - 1232, - 1378, - 611, - 100, - 356, - 867, - 1123, - 757, - 246, - 502, - 1013, - 1269, + 128, + 384, + 383, + 785, + 18, + 274, + 530, + 1041, + 1297, + 895, + 1151, + 931, + 164, + 420, + 676, + 1187, + 1443, + 165, + 932, + 1077, + 310, + 55, + 566, + 822, + 1333, + 311, + 1078, + 712, + 201, + 457, + 968, + 1224, + 858, + 347, + 603, + 91, + 1114, + 1370, + 859, + 1004, + 237, + 493, + 749, + 1260, + 1005, + 238, + 1406, + 639, ): list([ - 151, - ]), - tuple( - 904, - 137, - 393, - 649, - 1160, - 1416, - 138, - 905, - 1050, - 539, - 283, - 28, - 795, - 1306, - 284, - 1051, - 1307, - 1452, - 685, - 174, - 430, - 941, - 1197, - 1453, - 686, - 831, - 64, - 320, - 576, - 1087, - 1343, 65, - 832, - 977, - 210, - 466, - 722, - 1233, - 211, - 978, - 247, - 1123, - 356, - 101, - 612, - 868, - 1379, - 357, - 1124, - 759, - 613, - 1380, - 758, - 503, - 1014, - 1270, - ): list([ - 160, - 161, - 162, - 163, - 164, + 66, + 67, ]), tuple( - 904, - 137, - 393, - 649, - 1160, - 1416, - 1050, - 539, - 283, - 28, - 795, - 1306, - 1196, - 429, - 174, - 685, - 941, - 1452, - 831, - 64, - 320, - 576, - 1087, - 1343, - 977, - 210, - 466, - 722, - 1233, - 1123, - 356, - 101, - 612, - 868, - 1379, - 1269, - 502, - 247, - 758, - 1014, + 128, + 384, + 640, + 129, + 896, + 1297, + 530, + 19, + 275, + 786, + 1042, + 1151, + 1443, + 676, + 165, + 421, + 932, + 1188, + 1407, + 1444, + 822, + 567, + 55, + 311, + 1078, + 1334, + 56, + 823, + 968, + 201, + 457, + 713, + 1224, + 202, + 969, + 1370, + 603, + 348, + 92, + 859, + 1115, + 749, + 238, + 494, + 1005, + 1261, + 750, + 895, ): list([ - 159, + 71, + 72, + 73, ]), tuple( - 905, - 138, - 394, - 650, - 1161, - 1417, - 139, - 906, - 1162, - 1307, - 540, - 285, - 29, - 796, - 1052, - 1308, - 541, - 686, - 175, - 431, - 942, - 1198, - 687, - 832, - 65, - 321, - 577, - 1088, - 1344, - 66, - 833, - 978, - 211, - 467, - 723, - 1234, - 212, - 979, - 468, - 1235, - 248, - 1380, - 613, - 102, - 358, - 869, - 1125, - 614, - 1381, - 760, - 1015, - 759, - 504, - 1271, + 128, + 384, + 640, + 1041, + 274, + 19, + 530, + 786, + 1297, + 895, + 1151, + 1187, + 420, + 165, + 676, + 932, + 1443, + 1407, + 421, + 1188, + 1333, + 566, + 55, + 311, + 822, + 1078, + 567, + 1334, + 968, + 201, + 457, + 713, + 1224, + 1114, + 603, + 347, + 92, + 859, + 1370, + 1260, + 493, + 238, + 749, + 1005, + 494, + 1261, + 1406, + 639, ): list([ - 171, - 172, - 173, - 174, - 175, + 68, + 69, + 70, ]), tuple( - 905, - 138, - 394, - 650, - 1161, - 1417, - 1051, - 540, - 284, - 29, - 796, - 1307, - 686, - 175, - 431, - 942, - 1198, - 832, - 65, - 321, - 577, - 1088, - 1344, - 978, - 211, - 467, - 723, - 1234, - 248, - 1124, - 357, - 102, - 613, - 869, - 1380, - 1015, - 759, - 504, - 1271, + 256, + 1, + 512, + 768, + 1024, + 1169, + 402, + 147, + 658, + 914, + 1425, + 1170, + 403, + 1279, + 548, + 37, + 293, + 804, + 1060, + 1316, + 549, + 950, + 439, + 183, + 695, + 1206, + 1096, + 329, + 74, + 585, + 841, + 1352, + 330, + 1097, + 1242, + 475, + 220, + 731, + 987, + 476, + 1243, + 877, + 110, + 366, + 622, + 1133, + 1389, + 1023, ): list([ - 170, + 254, + 255, + 256, ]), tuple( - 905, - 138, - 394, - 650, - 1161, - 1417, - 1051, - 540, - 284, - 29, - 796, - 1307, - 1197, - 430, - 175, - 686, - 942, - 832, - 65, - 321, - 577, - 1088, - 1344, - 978, - 211, - 467, - 723, - 1234, - 1124, - 357, - 102, - 613, - 869, - 1380, - 759, - 1015, - 1270, - 503, - 248, + 382, + 893, + 527, + 16, + 272, + 783, + 1039, + 1295, + 528, + 1149, + 1404, + 929, + 162, + 418, + 674, + 1185, + 1441, + 1075, + 308, + 53, + 564, + 820, + 1331, + 309, + 1076, + 1221, + 454, + 199, + 710, + 966, + 455, + 1222, + 856, + 345, + 601, + 89, + 1112, + 1368, + 1002, + 235, + 491, + 747, + 1258, + 1003, + 381, + 1148, + 637, + 126, + ): list([ + 44, + 45, + 46, + ]), + tuple( + 382, + 1295, + 528, + 17, + 273, + 784, + 894, + 1040, + 1296, + 529, + 1150, + 1405, + 674, + 163, + 419, + 930, + 1186, + 1442, + 675, + 1076, + 309, + 54, + 565, + 821, + 1332, + 1222, + 455, + 200, + 711, + 967, + 456, + 1223, + 1368, + 601, + 346, + 90, + 857, + 1113, + 602, + 1369, + 1003, + 236, + 492, + 748, + 1259, + 1149, + 638, + 127, ): list([ - 169, + 53, + 54, + 55, ]), tuple( - 906, - 139, - 395, - 651, - 1162, - 1418, - 1052, - 541, - 285, - 30, - 797, - 1308, - 1198, - 431, - 176, - 687, - 943, - 833, - 66, - 322, - 578, - 1089, - 1345, - 979, - 212, - 468, - 724, - 1235, - 1016, - 1125, - 358, - 103, - 614, - 870, - 1381, - 760, - 1271, - 504, - 249, + 384, + 129, + 640, + 896, + 1152, + 385, + 530, + 19, + 275, + 786, + 1042, + 1298, + 531, + 932, + 165, + 421, + 677, + 1188, + 1407, + 1444, + 1078, + 567, + 311, + 56, + 823, + 1334, + 312, + 1079, + 1224, + 457, + 202, + 713, + 969, + 458, + 1225, + 859, + 348, + 92, + 604, + 1115, + 1371, + 1005, + 238, + 494, + 750, + 1261, + 1006, + 1151, ): list([ - 179, + 74, + 75, + 76, ]), tuple( - 907, - 140, - 396, - 652, - 1163, - 1419, - 1053, - 542, - 286, - 31, - 798, - 1309, - 1199, - 432, - 177, - 688, - 944, - 834, - 67, - 323, - 579, - 1090, - 1346, - 980, - 213, - 469, - 725, - 1236, - 1126, - 359, - 104, - 615, - 871, - 1382, - 761, - 1272, - 505, - 250, - 1017, + 509, + 764, + 1020, + 1421, + 654, + 143, + 399, + 910, + 1166, + 655, + 1422, + 1276, + 1056, + 289, + 34, + 545, + 801, + 1312, + 1202, + 435, + 180, + 691, + 947, + 436, + 1203, + 1348, + 581, + 70, + 326, + 837, + 1093, + 582, + 1349, + 983, + 472, + 216, + 728, + 1239, + 1129, + 362, + 107, + 618, + 874, + 1385, + 1275, + 508, + 253, ): list([ - 189, + 218, + 219, + 220, ]), tuple( - 911, - 144, - 400, - 656, - 1021, - 1167, - 1423, - 1277, - 1057, - 290, - 35, - 546, - 802, - 1313, - 692, - 181, - 437, - 948, + 511, + 766, + 912, + 145, + 401, + 657, + 1168, + 1424, + 1022, + 1278, + 1058, + 291, + 36, + 547, + 803, + 1314, + 292, + 1059, 1204, - 838, - 71, - 327, - 583, - 1094, - 1350, - 984, - 473, - 217, - 729, - 1240, - 1130, - 363, - 108, - 619, - 875, - 1386, - 254, - 765, + 437, + 182, + 693, + 949, + 438, + 1205, + 839, + 72, + 328, + 584, + 1095, + 1351, + 985, + 474, + 218, + 730, + 1241, + 1131, + 364, + 109, + 620, + 876, + 1387, + 365, + 1132, + 1277, 510, + 255, ): list([ - 230, - ]), - tuple( - 1018, - 908, - 141, - 397, - 653, - 1164, - 1420, - 1054, - 543, - 32, - 287, - 799, - 1310, - 1200, - 433, - 178, - 689, - 945, - 835, - 68, - 324, - 580, - 1091, - 1347, - 981, - 214, - 470, - 726, - 1237, - 762, - 1127, - 360, - 105, - 616, - 872, - 1383, - 1273, - 506, - 251, - ): list([ - 199, + 239, + 240, + 241, ]), tuple( - 1018, - 1274, - 908, - 141, - 397, - 653, - 1164, - 1420, - 142, - 909, - 1165, - 1310, - 543, - 32, - 288, - 799, - 1055, - 1311, - 544, - 689, - 178, - 434, - 945, - 1201, - 690, - 835, - 68, - 324, - 580, - 1091, - 1347, - 69, - 836, - 981, - 214, - 470, - 726, - 1237, - 215, - 982, - 471, - 1238, - 1383, - 616, - 105, - 361, - 872, - 1128, - 617, - 1384, - 251, - 762, - 507, - 763, + 512, + 1, + 257, + 768, + 1024, + 1425, + 658, + 147, + 403, + 914, + 1170, + 659, + 1426, + 804, + 37, + 293, + 549, + 1060, + 1316, + 38, + 805, + 1206, + 439, + 184, + 695, + 951, + 1352, + 585, + 74, + 330, + 841, + 1097, + 586, + 1353, + 731, + 476, + 220, + 987, + 1243, + 732, + 1133, + 110, + 366, + 622, + 878, + 1389, + 111, + 1279, ): list([ - 201, - 202, - 203, - 204, - 205, + 257, + 258, + 259, ]), tuple( - 1018, - 1274, - 908, - 141, - 397, - 653, - 1164, - 1420, - 1054, - 543, - 32, - 287, - 799, - 1310, - 689, - 178, - 434, - 945, - 1201, - 835, - 68, - 324, - 580, - 1091, - 1347, - 981, - 214, - 470, - 726, - 1237, - 1127, - 360, - 105, - 616, - 872, - 1383, - 251, - 762, - 507, + 637, + 892, + 1038, + 271, + 16, + 527, + 783, + 1148, + 1294, + 1404, + 1184, + 417, + 162, + 673, + 929, + 1440, + 418, + 1185, + 1330, + 563, + 52, + 308, + 819, + 1075, + 564, + 1331, + 965, + 198, + 454, + 710, + 1221, + 1111, + 600, + 344, + 89, + 856, + 1367, + 1257, + 490, + 235, + 746, + 1002, + 491, + 1258, + 125, + 1403, + 636, + 381, ): list([ - 200, + 38, + 39, + 40, ]), tuple( - 1018, - 1419, - 652, - 141, - 397, - 908, - 1164, - 798, - 287, - 543, - 31, - 1054, - 1310, - 944, - 177, - 433, - 689, - 1200, - 1346, - 579, - 68, - 324, - 835, - 1091, - 725, - 214, - 470, - 981, - 1237, - 762, - 871, - 104, - 360, - 616, - 250, - 1127, - 1383, - 1273, - 506, + 638, + 893, + 783, + 16, + 272, + 528, + 1039, + 1295, + 1149, + 17, + 784, + 1405, + 1185, + 418, + 163, + 674, + 930, + 1441, + 1331, + 564, + 53, + 309, + 820, + 1076, + 565, + 1332, + 710, + 199, + 455, + 966, + 1222, + 711, + 1112, + 345, + 601, + 89, + 857, + 1368, + 90, + 1258, + 491, + 236, + 747, + 1003, + 126, + 1404, + 637, + 382, ): list([ - 196, + 47, + 48, + 49, ]), tuple( - 1018, - 1419, - 652, - 141, - 397, - 908, - 1164, - 798, - 287, - 543, - 31, - 1054, - 1310, - 1200, - 433, - 178, - 689, - 945, - 1346, - 579, - 68, - 324, - 835, - 1091, - 725, - 214, - 470, - 981, - 1237, - 762, - 1127, - 104, - 360, - 616, - 872, - 1383, - 1273, - 506, - 251, + 638, + 1039, + 272, + 17, + 528, + 784, + 1295, + 1149, + 273, + 1040, + 894, + 1405, + 1441, + 674, + 163, + 419, + 930, + 1186, + 820, + 53, + 309, + 565, + 1076, + 1332, + 966, + 199, + 455, + 711, + 1222, + 200, + 967, + 1112, + 601, + 345, + 90, + 857, + 1368, + 346, + 1113, + 747, + 236, + 492, + 1003, + 1259, + 126, + 893, + 382, + 127, ): list([ - 197, + 50, + 51, + 52, ]), tuple( - 1018, - 1419, - 652, - 141, - 397, - 908, - 1164, - 1054, - 543, - 32, - 287, - 799, - 1310, - 1200, - 433, - 178, - 689, - 945, - 1346, - 579, - 68, - 324, - 835, - 1091, - 981, - 214, - 470, - 726, - 1237, - 762, - 1127, - 360, - 105, - 616, - 872, - 1383, - 1273, - 506, - 251, + 639, + 1040, + 273, + 18, + 529, + 785, + 1296, + 274, + 1041, + 1150, + 1186, + 419, + 164, + 675, + 931, + 1406, + 1442, + 420, + 1187, + 821, + 54, + 310, + 566, + 1077, + 1333, + 967, + 200, + 456, + 712, + 1223, + 1113, + 602, + 346, + 91, + 858, + 1369, + 347, + 1114, + 1259, + 492, + 237, + 748, + 1004, + 493, + 1260, + 127, + 894, + 383, ): list([ - 198, + 59, + 60, + 61, + ]), + tuple( + 640, + 129, + 385, + 896, + 1152, + 641, + 1408, + 786, + 19, + 275, + 531, + 1042, + 1298, + 20, + 787, + 1188, + 421, + 166, + 677, + 933, + 1444, + 1334, + 567, + 312, + 56, + 823, + 1079, + 568, + 1335, + 713, + 202, + 458, + 969, + 1225, + 714, + 1115, + 348, + 92, + 604, + 860, + 1371, + 93, + 1261, + 494, + 239, + 750, + 1006, + 1407, + ): list([ + 77, + 78, + 79, ]), tuple( + 764, 1019, - 909, - 142, + 1165, 398, + 143, 654, - 1165, + 910, 1275, 1421, - 1055, - 288, - 33, + 1311, 544, + 33, + 289, 800, - 1311, + 1056, + 1312, 690, 179, 435, 946, 1202, + 691, 836, 69, 325, 581, 1092, 1348, - 982, - 471, - 215, - 727, + 70, + 837, 1238, - 1128, - 361, - 106, - 617, - 873, - 1384, - 252, - 763, - 508, - ): list([ - 210, - ]), - tuple( - 1019, - 909, - 142, - 398, - 654, - 1165, - 1421, - 1055, - 288, - 33, - 544, - 800, - 1311, - 1201, - 434, - 179, - 690, - 946, - 836, - 69, - 325, - 581, - 1092, - 1348, - 982, 471, - 215, + 216, 727, - 1238, - 1128, - 361, - 106, - 617, - 873, - 1384, - 1274, - 507, - 252, - 763, - ): list([ - 209, - ]), - tuple( - 1019, - 1420, - 653, - 142, - 398, - 909, - 1165, - 799, - 32, - 288, - 544, - 1055, - 1311, - 945, - 178, - 434, - 690, - 1201, - 1347, - 580, - 69, - 325, - 836, - 1092, - 726, - 471, - 215, - 982, - 1238, - 872, - 105, - 361, - 617, - 1128, + 983, 1384, - 251, - 1274, - 507, - 763, - ): list([ - 206, - ]), - tuple( - 1019, - 1420, - 653, - 142, - 398, - 909, - 1165, - 799, - 32, - 288, - 544, - 1055, - 1311, - 1201, - 434, - 179, - 690, - 946, - 1347, - 580, - 69, - 325, - 836, - 1092, - 726, - 471, - 215, - 982, - 1238, - 1128, - 105, - 361, 617, + 106, + 362, 873, - 1384, - 1274, - 507, + 1129, + 618, + 1385, 252, 763, + 508, ): list([ - 207, + 212, + 213, + 214, ]), tuple( - 1019, - 1420, - 653, - 142, + 764, + 1020, + 1421, 398, - 909, - 1165, - 1055, - 288, - 33, - 544, + 143, + 654, + 910, + 1166, + 1275, + 399, 800, - 1311, - 1201, - 434, - 179, - 690, + 33, + 289, + 545, + 1056, + 1312, 946, - 1347, - 580, - 69, - 325, - 836, + 179, + 435, + 691, + 1202, + 180, + 947, 1092, - 982, - 471, - 215, + 325, + 70, + 581, + 837, + 1348, + 326, + 1093, 727, - 1238, - 1128, - 361, - 106, - 617, + 472, + 216, + 983, + 1239, 873, - 1384, - 1274, - 507, + 106, + 362, + 618, + 1129, + 1385, + 874, 252, - 763, + 1019, + 508, + 253, ): list([ - 208, + 215, + 216, + 217, ]), tuple( + 765, 1020, 910, 143, @@ -13442,12 +7639,14 @@ 1166, 1422, 1276, - 1056, - 289, - 34, + 144, + 911, + 1312, 545, + 34, + 290, 801, - 1312, + 1057, 691, 180, 436, @@ -13459,206 +7658,304 @@ 582, 1093, 1349, + 71, + 838, 983, 472, 216, 728, 1239, - 1129, - 362, - 107, + 217, + 984, + 1385, 618, + 107, + 363, 874, - 1385, + 1130, 253, 764, 509, ): list([ - 220, + 221, + 222, + 223, + ]), + tuple( + 765, + 1166, + 399, + 144, + 655, + 911, + 1422, + 1276, + 1167, + 400, + 1021, + 545, + 34, + 290, + 801, + 1057, + 1313, + 546, + 947, + 180, + 436, + 692, + 1203, + 1093, + 326, + 71, + 582, + 838, + 1349, + 327, + 1094, + 1239, + 472, + 217, + 728, + 984, + 473, + 1240, + 874, + 107, + 363, + 619, + 1130, + 1386, + 253, + 1020, + 509, + ): list([ + 224, + 225, + 226, + ]), + tuple( + 765, + 1422, + 655, + 144, + 400, + 911, + 1021, + 1167, + 656, + 1423, + 801, + 34, + 290, + 546, + 1057, + 1313, + 35, + 802, + 1203, + 436, + 181, + 692, + 948, + 1349, + 582, + 71, + 327, + 838, + 1094, + 583, + 1350, + 728, + 473, + 217, + 984, + 1240, + 729, + 1130, + 107, + 363, + 619, + 875, + 1386, + 108, + 1276, + 509, + 254, + ): list([ + 227, + 228, + 229, + ]), + tuple( + 766, + 1167, + 400, + 145, + 656, + 912, + 1423, + 1168, + 1277, + 1313, + 546, + 35, + 291, + 802, + 1058, + 1314, + 547, + 692, + 181, + 437, + 948, + 1204, + 693, + 1094, + 327, + 72, + 583, + 839, + 1350, + 1240, + 473, + 218, + 729, + 985, + 474, + 1241, + 1386, + 619, + 108, + 364, + 875, + 1131, + 620, + 1387, + 254, + 1021, + 510, + ): list([ + 233, + 234, + 235, + ]), + tuple( + 766, + 1423, + 656, + 145, + 401, + 912, + 1168, + 1022, + 802, + 35, + 291, + 547, + 1058, + 1314, + 36, + 803, + 948, + 181, + 437, + 693, + 1204, + 182, + 949, + 1350, + 583, + 72, + 328, + 839, + 1095, + 729, + 474, + 218, + 985, + 1241, + 730, + 875, + 108, + 364, + 620, + 1131, + 1387, + 876, + 109, + 254, + 1277, + 510, + 255, + ): list([ + 236, + 237, + 238, ]), tuple( - 1024, + 768, + 1, 257, - 2, 513, - 769, + 1024, 1280, - 1170, + 914, + 147, 403, - 148, 659, - 915, - 1426, - 549, - 38, - 294, - 805, - 1061, - 1317, - 951, - 440, - 184, - 696, - 1207, - 1097, - 330, - 75, - 586, - 842, - 1353, - 1243, - 476, - 221, - 732, - 988, - 878, - 111, - 367, - 623, - 1134, - 1390, - ): list([ - 264, - ]), - tuple( - 1024, - 257, - 2, - 513, - 769, - 1280, 1170, - 403, + 1426, 148, - 659, 915, - 1426, - 1316, - 549, + 1060, + 293, 38, - 294, + 549, 805, + 1316, + 294, 1061, 695, 440, 184, 951, 1207, - 1097, + 841, + 74, 330, - 75, 586, - 842, - 1353, - 1243, - 476, - 221, - 732, - 988, - 1389, - 622, - 111, - 367, - 878, - 1134, - ): list([ - 263, - ]), - tuple( - 1024, - 257, - 2, - 513, - 769, - 1280, - 1426, - 403, - 148, - 659, - 915, - 1171, - 805, - 38, - 294, - 550, - 1061, - 1317, - 951, - 440, - 184, - 696, - 1207, 1097, - 330, - 75, - 586, - 842, 1353, + 987, + 476, + 220, 732, - 477, + 1243, 221, 988, - 1244, - 878, + 1133, + 366, 111, + 622, + 878, + 1389, 367, - 623, 1134, - 1390, ): list([ - 265, + 260, + 261, + 262, ]), tuple( - 1025, + 769, + 2, 258, - 3, 514, - 770, - 1281, - 1171, - 404, - 149, - 660, - 916, - 1427, - 550, - 39, - 295, - 806, - 1062, - 1318, - 952, - 441, - 185, - 697, - 1208, - 1098, - 331, - 76, - 587, - 843, - 1354, - 1244, - 477, - 222, - 733, - 989, - 879, - 112, - 368, - 624, - 1135, - 1391, - ): list([ - 274, - ]), - tuple( 1025, - 258, + 1281, 3, - 514, 770, - 1281, 1171, 404, 149, @@ -13671,17 +7968,21 @@ 295, 806, 1062, + 1318, 696, 441, 185, 952, 1208, - 1098, + 697, + 842, + 75, 331, - 76, 587, - 843, + 1098, 1354, + 76, + 843, 1244, 477, 222, @@ -13693,1416 +7994,2273 @@ 368, 879, 1135, + 624, + 1391, ): list([ + 272, 273, + 274, ]), tuple( - 1025, - 258, - 3, - 514, 770, - 1281, - 1427, - 404, - 149, - 660, + 3, + 259, + 515, + 1026, + 1282, + 4, + 771, 916, - 1172, - 806, - 39, - 295, - 551, - 1062, + 149, + 405, + 661, + 1172, + 1428, + 150, + 917, 1318, - 952, - 441, - 185, + 551, + 40, + 296, + 807, + 1063, 697, - 1208, - 1098, - 331, - 76, - 587, + 442, + 186, + 953, + 1209, 843, - 1354, - 733, + 76, + 332, + 588, + 1099, + 1355, + 77, + 844, + 989, 478, 222, - 989, + 734, 1245, - 879, - 112, - 368, - 624, - 1135, + 223, + 990, 1391, + 624, + 113, + 369, + 880, + 1136, + ): list([ + 281, + 282, + 283, + ]), + tuple( + 771, + 4, + 260, + 516, + 1027, + 1283, + 917, + 150, + 406, + 662, + 1173, + 1429, + 151, + 918, + 1063, + 296, + 41, + 552, + 808, + 1319, + 297, + 1064, + 698, + 443, + 187, + 954, + 1210, + 844, + 77, + 333, + 589, + 1100, + 1356, + 990, + 479, + 223, + 735, + 1246, + 224, + 991, + 1136, + 369, + 114, + 625, + 881, + 1392, + 370, + 1137, + ): list([ + 290, + 291, + 292, + ]), + tuple( + 772, + 5, + 261, + 517, + 1028, + 1284, + 6, + 773, + 1174, + 663, + 407, + 152, + 919, + 1430, + 1320, + 553, + 42, + 298, + 809, + 1065, + 1321, + 699, + 444, + 188, + 955, + 1211, + 700, + 845, + 78, + 334, + 590, + 1101, + 1357, + 79, + 846, + 1247, + 480, + 225, + 736, + 992, + 1393, + 626, + 115, + 371, + 882, + 1138, + 627, + 1394, + ): list([ + 302, + 303, + 304, + ]), + tuple( + 773, + 6, + 262, + 518, + 1029, + 1285, + 7, + 774, + 919, + 408, + 664, + 152, + 1175, + 1431, + 153, + 920, + 1321, + 554, + 43, + 299, + 810, + 1066, + 700, + 189, + 445, + 956, + 1212, + 846, + 79, + 335, + 591, + 1102, + 1358, + 80, + 847, + 992, + 225, + 481, + 737, + 1248, + 226, + 993, + 1394, + 627, + 116, + 372, + 883, + 1139, + ): list([ + 311, + 312, + 313, + ]), + tuple( + 774, + 7, + 263, + 519, + 1030, + 1286, + 920, + 409, + 665, + 153, + 1176, + 1432, + 154, + 921, + 1066, + 299, + 44, + 555, + 811, + 1322, + 300, + 1067, + 701, + 446, + 190, + 957, + 1213, + 847, + 80, + 336, + 592, + 1103, + 1359, + 993, + 226, + 482, + 738, + 1249, + 227, + 994, + 1139, + 372, + 117, + 628, + 884, + 1395, + 373, + 1140, ): list([ - 275, + 320, + 321, + 322, ]), tuple( - 1026, - 259, - 4, - 515, - 771, - 1282, - 1172, - 405, - 150, - 661, - 917, - 1428, - 551, - 40, - 296, - 807, - 1063, - 1319, - 953, - 442, - 186, - 698, - 1209, - 1099, - 332, - 77, - 588, - 844, - 1355, - 1245, - 478, - 223, - 734, - 990, - 880, - 113, - 369, - 625, - 1136, - 1392, + 775, + 8, + 264, + 520, + 1031, + 1287, + 9, + 776, + 1177, + 666, + 410, + 155, + 922, + 1433, + 1323, + 556, + 45, + 301, + 812, + 1068, + 1324, + 702, + 447, + 191, + 958, + 1214, + 703, + 848, + 81, + 337, + 593, + 1104, + 1360, + 82, + 849, + 1250, + 483, + 228, + 739, + 995, + 1396, + 629, + 118, + 374, + 885, + 1141, + 630, + 1397, ): list([ - 284, + 332, + 333, + 334, ]), tuple( - 1026, - 259, - 4, - 515, - 771, - 1282, - 1172, - 405, - 150, - 661, - 917, - 1428, - 1318, - 551, - 40, - 296, - 807, - 1063, - 697, - 442, - 186, - 953, - 1209, - 1099, - 332, - 77, - 588, - 844, - 1355, - 1245, - 478, - 223, - 734, - 990, - 1391, - 624, - 113, - 369, - 880, - 1136, + 776, + 9, + 265, + 521, + 1032, + 1288, + 10, + 777, + 922, + 411, + 155, + 667, + 1178, + 1434, + 156, + 923, + 1324, + 557, + 46, + 302, + 813, + 1069, + 703, + 192, + 448, + 959, + 1215, + 849, + 82, + 338, + 594, + 1105, + 1361, + 83, + 850, + 375, + 995, + 228, + 484, + 740, + 1251, + 229, + 996, + 1397, + 630, + 119, + 886, + 1142, ): list([ - 283, + 341, + 342, + 343, ]), tuple( - 1026, - 259, - 4, - 515, - 771, - 1282, - 1428, - 405, - 150, - 661, - 917, - 1173, - 807, - 40, - 296, - 552, - 1063, - 1319, - 953, - 442, - 186, - 698, - 1209, - 1099, - 332, - 77, - 588, - 844, - 1355, - 734, - 479, - 223, - 990, - 1246, - 880, - 113, - 369, - 625, - 1136, - 1392, + 777, + 10, + 266, + 522, + 1033, + 1289, + 923, + 668, + 412, + 156, + 1179, + 1435, + 157, + 924, + 1069, + 302, + 47, + 558, + 814, + 1325, + 303, + 1070, + 704, + 193, + 449, + 960, + 1216, + 850, + 83, + 339, + 595, + 1106, + 1362, + 1143, + 375, + 996, + 229, + 485, + 741, + 1252, + 376, + 230, + 997, + 887, + 1142, + 631, + 120, + 1398, ): list([ - 285, + 350, + 351, + 352, ]), tuple( - 1027, - 260, - 5, - 516, - 772, - 1283, - 1173, - 406, - 151, - 662, - 918, - 1429, - 552, - 41, - 297, - 808, - 1064, - 1320, - 954, - 443, - 187, - 699, - 1210, - 1100, - 333, - 78, - 589, - 845, - 1356, - 1246, - 479, - 224, - 735, - 991, - 881, - 114, - 370, - 626, - 1137, - 1393, + 784, + 17, + 273, + 529, + 894, + 1040, + 1296, + 18, + 785, + 1150, + 930, + 163, + 419, + 675, + 1186, + 1442, + 164, + 931, + 1332, + 565, + 54, + 310, + 821, + 1077, + 711, + 200, + 456, + 967, + 1223, + 712, + 857, + 346, + 602, + 90, + 1113, + 1369, + 858, + 91, + 1259, + 236, + 492, + 748, + 1004, + 237, + 127, + 1405, + 638, + 383, ): list([ - 294, + 56, + 57, + 58, ]), tuple( - 1027, - 260, - 5, - 516, - 772, - 1283, - 1173, - 406, - 151, - 662, - 918, - 1429, - 1319, - 552, - 41, - 297, - 808, - 1064, - 698, - 443, - 187, - 954, - 1210, - 1100, - 333, - 78, - 589, - 845, - 1356, - 1246, - 479, - 224, - 735, - 991, - 1392, - 625, - 114, - 370, - 881, - 1137, + 891, + 1146, + 1036, + 269, + 14, + 525, + 781, + 1292, + 1402, + 270, + 1037, + 1438, + 671, + 160, + 416, + 927, + 1183, + 817, + 50, + 306, + 562, + 1073, + 1329, + 963, + 196, + 452, + 708, + 1219, + 197, + 964, + 1109, + 342, + 87, + 598, + 854, + 1365, + 343, + 1110, + 744, + 233, + 489, + 123, + 1000, + 1256, + 379, + 890, + 635, + 124, + ): list([ + 20, + 21, + 22, + ]), + tuple( + 891, + 1147, + 781, + 14, + 270, + 526, + 1037, + 1293, + 15, + 782, + 927, + 160, + 416, + 672, + 1183, + 1439, + 161, + 928, + 1329, + 562, + 51, + 307, + 818, + 1074, + 708, + 197, + 453, + 964, + 1220, + 709, + 854, + 599, + 87, + 343, + 1110, + 1366, + 855, + 88, + 1256, + 233, + 489, + 745, + 1001, + 234, + 124, + 1402, + 635, + 380, ): list([ - 293, + 26, + 27, + 28, ]), tuple( - 1027, - 260, - 5, - 516, - 772, - 1283, - 1429, - 406, - 151, - 662, - 918, - 1174, - 808, - 41, - 297, - 553, - 1064, - 1320, - 954, - 443, - 187, - 699, - 1210, - 1100, - 333, - 78, - 589, - 845, - 1356, - 735, - 224, - 480, - 991, - 1247, - 881, - 114, - 370, - 626, - 1137, - 1393, + 891, + 1147, + 1292, + 525, + 14, + 270, + 781, + 1037, + 1402, + 1293, + 526, + 671, + 160, + 416, + 927, + 1183, + 1439, + 672, + 1073, + 306, + 51, + 562, + 818, + 1329, + 1219, + 452, + 197, + 708, + 964, + 453, + 1220, + 1365, + 598, + 87, + 343, + 854, + 1110, + 599, + 1366, + 1000, + 233, + 489, + 745, + 1256, + 379, + 1146, + 635, + 124, ): list([ - 295, + 23, + 24, + 25, ]), tuple( - 1028, - 261, - 6, - 517, - 773, - 1284, - 1174, - 663, - 407, - 152, - 919, - 1430, - 553, - 42, - 298, - 809, - 1065, - 1321, - 955, - 444, - 188, - 700, - 1211, - 1101, - 334, - 79, - 590, - 846, - 1357, - 1247, - 480, - 225, - 736, - 992, - 882, - 115, - 371, - 627, - 1138, - 1394, + 892, + 782, + 15, + 271, + 527, + 1038, + 1148, + 1294, + 928, + 161, + 417, + 673, + 1184, + 1440, + 162, + 929, + 1074, + 307, + 52, + 563, + 819, + 1330, + 308, + 1075, + 709, + 198, + 454, + 965, + 1221, + 855, + 344, + 600, + 88, + 1111, + 1367, + 856, + 1001, + 234, + 490, + 746, + 1257, + 1002, + 235, + 381, + 380, + 1403, + 636, + 125, ): list([ - 304, + 35, + 36, + 37, ]), tuple( - 1028, - 261, - 6, - 517, - 773, - 1284, - 1174, - 663, - 407, - 152, - 919, - 1430, - 1320, - 553, - 42, - 298, - 809, - 1065, - 699, - 444, - 188, - 955, - 1211, - 1101, - 334, - 79, - 590, - 846, - 1357, - 1247, - 480, - 225, - 736, - 992, - 1393, - 626, - 115, - 371, - 882, - 1138, + 892, + 1293, + 526, + 15, + 271, + 782, + 1038, + 1403, + 1294, + 1439, + 672, + 161, + 417, + 928, + 1184, + 1440, + 673, + 818, + 51, + 307, + 563, + 1074, + 1330, + 52, + 819, + 1220, + 453, + 198, + 709, + 965, + 1366, + 599, + 344, + 88, + 855, + 1111, + 600, + 1367, + 745, + 234, + 490, + 1001, + 1257, + 746, + 380, + 1147, + 636, + 125, ): list([ - 303, + 32, + 33, + 34, ]), tuple( - 1028, - 261, - 6, - 517, - 773, - 1284, - 1430, - 663, - 407, - 152, - 919, - 1175, - 809, - 42, - 298, - 554, - 1065, - 1321, - 955, - 444, - 188, - 700, - 1211, - 1101, - 334, - 79, - 590, - 846, - 1357, - 736, - 225, - 481, - 992, - 1248, - 882, - 115, - 371, - 627, - 1138, - 1394, + 893, + 1294, + 527, + 16, + 272, + 783, + 1039, + 1148, + 1404, + 1440, + 673, + 162, + 418, + 929, + 1185, + 1441, + 819, + 52, + 308, + 564, + 1075, + 1331, + 53, + 820, + 965, + 198, + 454, + 710, + 1221, + 199, + 966, + 1367, + 600, + 345, + 89, + 856, + 1112, + 746, + 235, + 491, + 1002, + 1258, + 747, + 381, + 125, + 892, + 637, + 126, ): list([ - 305, + 41, + 42, + 43, ]), tuple( - 1029, - 262, - 7, - 518, - 774, - 1285, - 1175, - 664, - 408, - 153, - 920, - 1431, - 554, - 43, - 299, - 810, - 1066, - 1322, - 956, - 189, - 445, - 701, - 1212, - 1102, - 335, + 896, + 129, + 385, + 641, + 1152, + 1408, + 130, + 897, + 1042, + 275, + 20, + 531, + 787, + 1298, + 276, + 1043, + 1444, + 677, + 166, + 422, + 933, + 1189, + 823, + 312, + 568, + 56, + 1079, + 1335, + 969, + 202, + 458, + 714, + 1225, + 203, + 970, + 1115, + 348, + 93, + 604, + 860, + 1371, + 349, + 1116, + 750, + 239, + 495, + 1006, + 1262, + ): list([ 80, - 591, - 847, - 1358, - 1248, - 481, - 226, - 737, - 993, - 883, - 116, - 372, - 628, - 1139, - 1395, + 81, + 82, + ]), + tuple( + 897, + 130, + 386, + 642, + 1153, + 1409, + 1043, + 276, + 21, + 532, + 788, + 1299, + 277, + 1044, + 1189, + 422, + 167, + 678, + 934, + 1445, + 423, + 1190, + 824, + 313, + 569, + 57, + 1080, + 1336, + 970, + 203, + 459, + 715, + 1226, + 1116, + 605, + 349, + 94, + 861, + 1372, + 350, + 1117, + 1262, + 495, + 240, + 751, + 1007, + 496, + 1263, ): list([ - 314, + 89, + 90, + 91, ]), tuple( - 1029, - 262, - 7, - 518, - 774, - 1285, - 1175, - 664, - 408, - 153, - 920, - 1431, - 1321, - 554, - 43, - 299, - 810, - 1066, - 700, - 189, - 445, - 956, - 1212, - 1102, - 335, - 80, - 591, - 847, - 1358, - 1248, - 481, - 226, - 737, - 993, - 1394, - 627, - 116, - 372, - 883, - 1139, + 898, + 131, + 387, + 643, + 1154, + 1410, + 132, + 899, + 1300, + 533, + 22, + 278, + 789, + 1045, + 1446, + 679, + 168, + 424, + 935, + 1191, + 1447, + 825, + 314, + 570, + 58, + 1081, + 1337, + 59, + 826, + 971, + 204, + 460, + 716, + 1227, + 205, + 972, + 1373, + 606, + 351, + 95, + 862, + 1118, + 752, + 241, + 497, + 1008, + 1264, + 753, ): list([ - 313, + 101, + 102, + 103, ]), tuple( - 1029, - 262, - 7, - 518, - 774, - 1285, - 1431, - 664, - 408, - 153, - 920, - 1176, - 810, - 43, - 299, - 555, - 1066, - 1322, - 956, - 189, - 445, - 701, - 1212, - 1102, - 335, - 80, - 591, - 847, - 1358, - 737, - 226, - 482, - 993, - 1249, - 883, - 116, - 372, - 628, - 1139, - 1395, - ): list([ + 899, + 132, + 388, + 644, + 1155, + 1411, + 133, + 900, + 1045, + 278, + 23, + 534, + 790, + 1301, + 279, + 1046, + 1447, + 680, + 169, + 425, + 936, + 1192, + 826, 315, + 571, + 59, + 1082, + 1338, + 972, + 205, + 461, + 717, + 1228, + 206, + 973, + 1118, + 607, + 96, + 351, + 863, + 1374, + 352, + 1119, + 753, + 242, + 498, + 1009, + 1265, + ): list([ + 110, + 111, + 112, ]), tuple( - 1030, - 263, - 8, - 519, - 775, - 1286, - 1176, - 665, - 409, - 154, - 921, - 1432, - 555, - 44, - 300, - 811, - 1067, - 1323, - 957, - 446, - 190, - 702, - 1213, - 1103, - 336, - 81, - 592, - 848, - 1359, - 1249, - 482, - 227, - 738, - 994, - 884, - 117, - 373, - 629, - 1140, - 1396, + 900, + 133, + 389, + 645, + 1156, + 1412, + 1046, + 535, + 279, + 24, + 791, + 1302, + 280, + 1047, + 1192, + 425, + 170, + 681, + 937, + 1448, + 426, + 1193, + 827, + 316, + 60, + 572, + 1083, + 1339, + 973, + 206, + 462, + 718, + 1229, + 1119, + 352, + 97, + 608, + 864, + 1375, + 353, + 1120, + 1265, + 498, + 243, + 754, + 1010, + 499, + 1266, ): list([ - 324, + 119, + 120, + 121, ]), tuple( - 1030, - 263, - 8, - 519, - 775, - 1286, - 1176, - 665, - 409, - 154, - 921, - 1432, - 1322, - 555, - 44, - 300, - 811, - 1067, - 701, - 446, - 190, - 957, - 1213, - 1103, - 336, - 81, - 592, - 848, - 1359, - 1249, - 482, - 227, - 738, - 994, - 1395, - 628, - 117, - 373, - 884, - 1140, + 901, + 134, + 390, + 646, + 1157, + 1413, + 135, + 902, + 1303, + 536, + 281, + 25, + 792, + 1048, + 1449, + 682, + 171, + 427, + 938, + 1194, + 1450, + 828, + 573, + 317, + 61, + 1084, + 1340, + 62, + 829, + 974, + 207, + 463, + 719, + 1230, + 208, + 975, + 1376, + 609, + 98, + 354, + 865, + 1121, + 755, + 244, + 500, + 1011, + 1267, + 756, ): list([ - 323, + 131, + 132, + 133, ]), tuple( - 1030, - 263, - 8, - 519, - 775, - 1286, - 1432, - 665, - 409, - 154, - 921, - 1177, - 811, - 44, - 300, - 556, - 1067, - 1323, - 957, - 446, - 190, - 702, - 1213, - 1103, - 336, - 81, - 592, - 848, - 1359, - 738, - 227, - 483, - 994, - 1250, - 884, - 117, - 373, - 629, - 1140, - 1396, + 902, + 135, + 391, + 647, + 1158, + 1414, + 136, + 903, + 1048, + 537, + 281, + 26, + 793, + 1304, + 282, + 1049, + 1450, + 683, + 172, + 428, + 939, + 1195, + 829, + 318, + 574, + 62, + 1085, + 1341, + 975, + 208, + 464, + 720, + 1231, + 209, + 976, + 1121, + 354, + 99, + 610, + 866, + 1377, + 355, + 1122, + 756, + 245, + 501, + 1012, + 1268, + ): list([ + 140, + 141, + 142, + ]), + tuple( + 903, + 136, + 392, + 648, + 1159, + 1415, + 1049, + 538, + 282, + 27, + 794, + 1305, + 283, + 1050, + 1195, + 428, + 173, + 684, + 940, + 1451, + 429, + 1196, + 830, + 319, + 575, + 63, + 1086, + 1342, + 976, + 209, + 465, + 721, + 1232, + 1122, + 355, + 100, + 611, + 867, + 1378, + 356, + 1123, + 1268, + 501, + 246, + 757, + 1013, + 502, + 1269, ): list([ - 325, + 149, + 150, + 151, ]), tuple( - 1031, - 264, - 9, - 520, - 776, - 1287, - 1177, - 666, - 410, - 155, - 922, - 1433, - 556, - 45, - 301, - 812, - 1068, - 1324, - 958, - 447, - 191, - 703, - 1214, - 1104, - 337, - 82, - 593, - 849, - 1360, - 1250, - 483, - 228, - 739, - 995, - 885, - 118, - 374, - 630, - 1141, - 1397, + 904, + 137, + 393, + 649, + 1160, + 1416, + 138, + 905, + 1306, + 539, + 284, + 28, + 795, + 1051, + 1452, + 685, + 174, + 430, + 941, + 1197, + 1453, + 831, + 64, + 320, + 576, + 1087, + 1343, + 65, + 832, + 977, + 210, + 466, + 722, + 1233, + 211, + 978, + 247, + 1379, + 612, + 101, + 357, + 868, + 1124, + 759, + 758, + 503, + 1014, + 1270, ): list([ - 334, + 161, + 162, + 163, ]), tuple( - 1031, - 264, - 9, - 520, - 776, - 1287, - 1177, - 666, - 410, - 155, - 922, - 1433, - 1323, - 556, - 45, - 301, - 812, - 1068, - 702, - 447, - 191, - 958, - 1214, - 1104, - 337, - 82, - 593, - 849, - 1360, - 1250, - 483, - 228, - 739, - 995, - 1396, - 629, - 118, - 374, - 885, - 1141, + 905, + 138, + 394, + 650, + 1161, + 1417, + 139, + 906, + 1051, + 540, + 284, + 29, + 796, + 1307, + 285, + 1052, + 686, + 175, + 431, + 942, + 1198, + 832, + 65, + 321, + 577, + 1088, + 1344, + 978, + 211, + 467, + 723, + 1234, + 212, + 979, + 248, + 1124, + 357, + 102, + 613, + 869, + 1380, + 358, + 1125, + 1015, + 759, + 504, + 1271, ): list([ - 333, + 170, + 171, + 172, ]), tuple( - 1031, - 264, - 9, - 520, - 776, - 1287, - 1433, - 666, - 410, - 155, - 922, - 1178, - 812, - 45, - 301, - 557, - 1068, - 1324, - 958, - 447, - 191, - 703, - 1214, - 1104, - 337, - 82, - 593, - 849, - 1360, - 739, - 228, - 484, - 995, - 1251, - 885, - 118, - 374, - 630, - 1141, - 1397, + 911, + 144, + 400, + 656, + 1021, + 1167, + 1423, + 145, + 912, + 1277, + 1057, + 290, + 35, + 546, + 802, + 1313, + 291, + 1058, + 692, + 181, + 437, + 948, + 1204, + 838, + 71, + 327, + 583, + 1094, + 1350, + 984, + 473, + 217, + 729, + 1240, + 218, + 985, + 1130, + 363, + 108, + 619, + 875, + 1386, + 364, + 1131, + 254, + 765, + 510, ): list([ - 335, + 230, + 231, + 232, ]), tuple( - 1032, - 265, - 10, - 521, - 777, - 1288, - 1178, - 667, - 411, - 156, - 923, - 1434, - 557, - 46, - 302, - 813, - 1069, - 1325, - 959, - 192, - 448, - 704, - 1215, - 1105, - 338, - 83, - 594, - 850, - 1361, - 119, - 375, - 1251, - 484, - 229, - 740, - 996, - 886, - 631, - 1142, - 1398, + 1018, + 1273, + 1163, + 396, + 141, + 652, + 908, + 1419, + 1164, + 397, + 542, + 287, + 31, + 798, + 1054, + 1310, + 543, + 944, + 177, + 433, + 689, + 1200, + 1090, + 323, + 68, + 579, + 835, + 1346, + 324, + 1091, + 1236, + 469, + 214, + 725, + 981, + 470, + 1237, + 762, + 871, + 104, + 360, + 616, + 250, + 1127, + 1383, + 1017, + 506, ): list([ - 344, + 194, + 195, + 196, ]), tuple( - 1032, - 265, - 10, - 521, - 777, - 1288, - 1178, - 667, - 411, - 156, - 923, - 1434, - 1324, - 557, - 46, - 302, - 813, - 1069, - 703, - 192, - 448, - 959, - 1215, - 1105, - 338, - 83, - 594, - 850, - 1361, - 375, - 1251, - 484, - 229, - 740, - 996, - 1397, - 630, - 119, - 886, - 1142, + 1018, + 1274, + 908, + 141, + 397, + 653, + 1164, + 1420, + 142, + 909, + 1054, + 543, + 32, + 287, + 799, + 1310, + 288, + 1055, + 689, + 178, + 434, + 945, + 1201, + 835, + 68, + 324, + 580, + 1091, + 1347, + 981, + 214, + 470, + 726, + 1237, + 215, + 982, + 1127, + 360, + 105, + 616, + 872, + 1383, + 361, + 1128, + 251, + 762, + 507, + ): list([ + 200, + 201, + 202, + ]), + tuple( + 1018, + 1419, + 652, + 141, + 397, + 908, + 1164, + 653, + 1420, + 798, + 287, + 543, + 31, + 1054, + 1310, + 32, + 799, + 1200, + 433, + 178, + 689, + 945, + 1346, + 579, + 68, + 324, + 835, + 1091, + 580, + 1347, + 725, + 214, + 470, + 981, + 1237, + 726, + 762, + 1127, + 104, + 360, + 616, + 872, + 1383, + 105, + 1273, + 506, + 251, ): list([ - 343, + 197, + 198, + 199, ]), tuple( - 1032, - 265, - 10, - 521, - 777, - 1288, - 1434, - 667, - 411, - 156, - 923, - 1179, - 813, - 46, - 302, - 558, - 1069, - 1325, - 959, - 192, - 448, - 704, - 1215, - 1105, - 338, - 83, - 594, - 850, - 1361, - 119, - 375, - 740, - 229, - 485, - 996, - 1252, - 886, - 631, - 1142, - 1398, + 1019, + 909, + 142, + 398, + 654, + 1165, + 1421, + 1275, + 1055, + 288, + 33, + 544, + 800, + 1311, + 289, + 1056, + 1201, + 434, + 179, + 690, + 946, + 435, + 1202, + 836, + 69, + 325, + 581, + 1092, + 1348, + 982, + 471, + 215, + 727, + 1238, + 1128, + 361, + 106, + 617, + 873, + 1384, + 508, + 362, + 1129, + 1274, + 507, + 252, + 763, ): list([ - 345, + 209, + 210, + 211, ]), tuple( - 1033, - 266, - 11, - 522, - 778, - 1289, - 1179, - 668, - 412, - 157, - 924, - 1435, - 558, - 47, - 303, - 814, - 1070, - 1326, - 960, - 193, - 449, - 705, - 1216, - 1106, - 339, - 84, - 595, - 851, - 1143, - 1362, - 120, - 1252, - 485, - 230, - 741, - 997, - 632, - 887, - 376, - 1399, + 1019, + 1420, + 653, + 142, + 398, + 909, + 1165, + 799, + 32, + 288, + 544, + 1055, + 1311, + 33, + 800, + 945, + 178, + 434, + 690, + 1201, + 179, + 946, + 1347, + 580, + 69, + 325, + 836, + 1092, + 726, + 471, + 215, + 982, + 1238, + 727, + 872, + 105, + 361, + 617, + 1128, + 1384, + 873, + 251, + 106, + 1274, + 507, + 252, + 763, ): list([ - 354, + 206, + 207, + 208, ]), tuple( - 1033, - 266, - 11, - 522, - 778, - 1289, - 1179, - 668, - 412, - 157, - 924, - 1435, - 1325, - 558, - 47, - 303, - 814, - 1070, - 704, - 193, - 449, - 960, - 1216, - 1106, - 339, - 84, - 595, - 851, - 1143, - 1362, - 120, - 1252, - 485, - 230, - 741, - 997, - 887, - 1398, - 631, - 376, + 1024, + 257, + 2, + 513, + 769, + 1280, + 1170, + 403, + 148, + 659, + 915, + 1426, + 1171, + 1316, + 549, + 38, + 294, + 805, + 1061, + 1317, + 550, + 695, + 440, + 184, + 951, + 1207, + 696, + 1097, + 330, + 75, + 586, + 842, + 1353, + 1243, + 476, + 221, + 732, + 988, + 477, + 1244, + 1389, + 622, + 111, + 367, + 878, + 1134, + 623, + 1390, ): list([ - 353, + 263, + 264, + 265, ]), tuple( - 1033, - 266, - 11, - 522, - 778, - 1289, - 1435, - 668, - 412, - 157, - 924, - 1180, - 814, - 47, - 303, - 559, - 1070, - 1326, - 960, - 193, - 449, - 705, - 1216, - 1106, - 339, - 84, - 595, - 851, - 1143, - 1362, - 120, - 741, - 230, - 486, - 997, - 1253, - 632, - 887, - 376, - 1399, + 1025, + 258, + 3, + 514, + 770, + 1281, + 1026, + 259, + 1427, + 404, + 149, + 660, + 916, + 1172, + 405, + 806, + 39, + 295, + 551, + 1062, + 1318, + 952, + 441, + 185, + 697, + 1208, + 186, + 953, + 1098, + 331, + 76, + 587, + 843, + 1354, + 332, + 1099, + 733, + 478, + 222, + 989, + 1245, + 879, + 112, + 368, + 624, + 1135, + 1391, + 880, ): list([ - 355, + 275, + 276, + 277, ]), tuple( - 1038, - 271, - 16, - 527, - 783, - 1148, - 1294, - 1404, - 1184, - 417, - 162, - 673, - 929, - 1440, - 819, - 52, - 308, - 564, - 1075, - 1331, - 965, - 198, - 454, - 710, - 1221, - 1111, - 600, - 344, - 89, - 856, - 1367, - 1257, - 490, - 235, - 746, - 1002, - 381, - 125, - 892, - 637, + 1026, + 259, + 4, + 515, + 771, + 1282, + 1027, + 1172, + 405, + 150, + 661, + 917, + 1428, + 1173, + 406, + 551, + 40, + 296, + 807, + 1063, + 1319, + 552, + 953, + 442, + 186, + 698, + 1209, + 1099, + 332, + 77, + 588, + 844, + 1355, + 333, + 1100, + 1245, + 478, + 223, + 734, + 990, + 479, + 1246, + 880, + 113, + 369, + 625, + 1136, + 1392, + ): list([ + 284, + 285, + 286, + ]), + tuple( + 1027, + 260, + 5, + 516, + 772, + 1283, + 1173, + 406, + 151, + 662, + 918, + 1429, + 1174, + 1319, + 552, + 41, + 297, + 808, + 1064, + 1320, + 553, + 698, + 443, + 187, + 954, + 1210, + 699, + 1100, + 333, + 78, + 589, + 845, + 1356, + 1246, + 479, + 224, + 735, + 991, + 480, + 1247, + 1392, + 625, + 114, + 370, + 881, + 1137, + 626, + 1393, ): list([ - 39, + 293, + 294, + 295, ]), tuple( - 1038, - 271, - 16, - 527, - 783, - 1148, - 1294, - 1404, - 1440, - 673, - 162, - 418, - 929, - 1185, - 819, - 52, - 308, - 564, - 1075, - 1331, - 965, - 198, - 454, - 710, - 1221, - 1111, - 600, - 344, - 89, - 856, - 1367, - 746, - 235, - 491, - 1002, - 1258, - 381, - 125, - 892, - 637, + 1028, + 261, + 6, + 517, + 773, + 1284, + 1029, + 262, + 1430, + 663, + 407, + 152, + 919, + 1175, + 408, + 809, + 42, + 298, + 554, + 1065, + 1321, + 955, + 444, + 188, + 700, + 1211, + 189, + 956, + 1101, + 334, + 79, + 590, + 846, + 1357, + 335, + 1102, + 736, + 225, + 481, + 992, + 1248, + 882, + 115, + 371, + 627, + 1138, + 1394, + 883, ): list([ - 40, + 305, + 306, + 307, ]), tuple( - 1040, - 273, - 18, - 529, - 785, - 894, - 1296, - 1150, - 1186, - 419, - 164, - 675, - 931, - 1442, - 1332, - 565, - 54, - 310, - 821, - 1077, - 967, - 200, - 456, - 712, - 1223, - 1113, - 602, - 346, - 91, - 858, - 1369, - 1259, - 492, - 237, - 748, - 1004, - 127, - 1405, - 638, - 383, + 1029, + 262, + 7, + 518, + 774, + 1285, + 1030, + 1175, + 664, + 408, + 153, + 920, + 1431, + 1176, + 409, + 554, + 43, + 299, + 810, + 1066, + 1322, + 555, + 956, + 189, + 445, + 701, + 1212, + 1102, + 335, + 80, + 591, + 847, + 1358, + 336, + 1103, + 1248, + 481, + 226, + 737, + 993, + 482, + 1249, + 883, + 116, + 372, + 628, + 1139, + 1395, ): list([ - 58, + 314, + 315, + 316, ]), tuple( - 1145, - 779, - 12, - 268, - 524, - 1035, - 1291, - 925, - 414, - 670, - 158, - 1181, - 1437, - 1071, - 304, - 49, - 560, - 816, - 1327, - 706, - 195, - 451, - 962, - 1218, - 852, - 85, - 341, - 597, - 1108, - 1364, - 889, - 998, - 231, - 487, - 377, - 743, - 1254, - 1400, - 633, - 122, + 1030, + 263, + 8, + 519, + 775, + 1286, + 1176, + 665, + 409, + 154, + 921, + 1432, + 1177, + 1322, + 555, + 44, + 300, + 811, + 1067, + 1323, + 556, + 701, + 446, + 190, + 957, + 1213, + 702, + 1103, + 336, + 81, + 592, + 848, + 1359, + 1249, + 482, + 227, + 738, + 994, + 483, + 1250, + 1395, + 628, + 117, + 373, + 884, + 1140, + 629, + 1396, ): list([ - 5, + 323, + 324, + 325, ]), tuple( - 1145, - 779, - 12, - 268, - 524, - 1035, - 1291, - 925, - 414, - 670, - 158, - 1181, - 1437, - 1327, - 560, - 49, - 305, - 816, - 1072, - 706, - 195, - 451, - 962, - 1218, - 852, - 85, - 341, - 597, - 1108, - 1364, - 889, - 122, - 231, - 487, - 743, - 999, - 1254, - 1400, - 633, - 378, + 1031, + 264, + 9, + 520, + 776, + 1287, + 1032, + 265, + 1433, + 666, + 410, + 155, + 922, + 1178, + 411, + 812, + 45, + 301, + 557, + 1068, + 1324, + 958, + 447, + 191, + 703, + 1214, + 192, + 959, + 1104, + 337, + 82, + 593, + 849, + 1360, + 338, + 1105, + 739, + 228, + 484, + 995, + 1251, + 885, + 118, + 374, + 630, + 1141, + 1397, + 886, ): list([ - 6, + 335, + 336, + 337, ]), tuple( - 1145, - 779, - 12, - 268, - 524, - 1035, - 1291, - 1181, - 670, - 414, - 159, - 926, - 1437, - 1327, - 560, - 49, - 305, - 816, - 1072, - 706, - 195, - 451, - 962, - 1218, - 1108, - 85, - 341, - 597, - 853, - 1364, - 889, - 122, - 487, - 232, - 743, - 999, - 1254, - 1400, - 633, - 378, + 1032, + 265, + 10, + 521, + 777, + 1288, + 1033, + 1178, + 667, + 411, + 156, + 923, + 1434, + 1179, + 412, + 557, + 46, + 302, + 813, + 1069, + 1325, + 558, + 959, + 192, + 448, + 704, + 1215, + 1105, + 338, + 83, + 594, + 850, + 1361, + 119, + 339, + 1106, + 375, + 1251, + 484, + 229, + 740, + 996, + 485, + 1252, + 886, + 631, + 1142, + 1398, + ): list([ + 344, + 345, + 346, + ]), + tuple( + 1033, + 266, + 11, + 522, + 778, + 1289, + 1179, + 668, + 412, + 157, + 924, + 1435, + 1180, + 1325, + 558, + 47, + 303, + 814, + 1070, + 1326, + 559, + 704, + 193, + 449, + 960, + 1216, + 705, + 1106, + 339, + 84, + 595, + 851, + 1143, + 1362, + 120, + 1252, + 485, + 230, + 741, + 997, + 486, + 1253, + 632, + 887, + 1398, + 631, + 376, + 1399, ): list([ - 7, + 353, + 354, + 355, ]), tuple( 1145, - 1035, + 779, + 12, 268, - 13, 524, - 780, + 1035, 1291, - 1181, - 670, + 925, 414, + 670, + 158, + 1181, + 1437, 159, 926, - 1437, - 1327, - 560, + 1071, + 304, 49, - 305, + 560, 816, + 1327, + 305, 1072, - 962, + 706, 195, 451, - 707, + 962, 1218, - 1108, + 852, + 85, 341, - 86, 597, - 853, + 1108, 1364, + 853, 889, - 122, + 998, + 231, 487, - 232, + 377, 743, - 999, 1254, + 999, + 232, + 378, 1400, 633, - 378, + 122, ): list([ - 8, + 5, + 6, + 7, ]), tuple( 1145, @@ -15119,11 +10277,15 @@ 159, 926, 1437, - 816, + 415, + 1182, + 1327, + 560, 49, 305, - 561, + 816, 1072, + 561, 1328, 962, 195, @@ -15136,60 +10298,22 @@ 597, 853, 1364, + 889, 122, 487, 232, 743, 999, 1254, - 634, - 889, - 378, - ): list([ - 9, - ]), - tuple( - 1145, - 1401, - 1035, - 268, - 13, - 524, - 780, - 1291, - 1437, - 670, - 415, - 159, - 926, - 1182, - 816, - 49, - 305, - 561, - 1072, - 1328, - 962, - 195, - 451, - 707, - 1218, - 1108, - 341, - 86, - 597, - 853, - 1364, - 122, - 743, - 232, 488, - 999, 1255, 634, - 889, + 1400, + 633, 378, ): list([ + 8, + 9, 10, ]), tuple( @@ -15207,17 +10331,22 @@ 159, 926, 1182, + 1438, 816, 49, 305, 561, 1072, 1328, + 50, + 817, 962, 195, 451, 707, 1218, + 196, + 963, 1364, 597, 86, @@ -15230,152 +10359,28 @@ 488, 999, 1255, - 634, - 889, - 378, - ): list([ - 11, - ]), - tuple( - 1146, - 780, - 13, - 269, - 525, - 1036, - 1292, - 926, - 415, - 671, - 159, - 1182, - 1438, - 1072, - 305, - 50, - 561, - 817, - 1328, - 707, - 196, - 452, - 963, - 1219, - 853, - 86, - 342, - 598, - 1109, - 1365, - 999, - 232, - 488, - 744, - 1255, - 378, - 1401, - 634, - 123, - 890, - ): list([ - 15, - ]), - tuple( - 1146, - 780, - 13, - 269, - 525, - 1036, - 1292, - 926, - 415, - 671, - 159, - 1182, - 1438, - 1328, - 561, - 50, - 306, - 817, - 1073, - 707, - 196, - 452, - 963, - 1219, - 853, - 86, - 342, - 598, - 1109, - 1365, - 1255, - 232, - 488, - 744, - 123, - 1000, - 1401, - 634, - 379, - 890, - ): list([ - 16, - ]), - tuple( - 1146, - 780, - 13, - 269, - 525, - 1036, - 1292, - 1182, - 671, - 160, - 415, - 927, - 1438, - 1328, - 561, - 50, - 306, - 817, - 1073, - 707, - 196, - 452, - 963, - 1219, - 1109, - 86, - 342, - 598, - 854, - 1365, - 1255, - 488, - 233, 744, - 123, - 1000, - 1401, 634, - 379, + 889, + 378, + 123, 890, ): list([ - 17, + 11, + 12, + 13, ]), tuple( 1146, - 1036, + 780, + 13, 269, - 14, 525, - 781, + 1036, 1292, + 14, + 781, + 1402, 1182, 671, 160, @@ -15388,205 +10393,90 @@ 306, 817, 1073, - 963, + 562, + 1329, + 707, 196, 452, - 708, + 963, 1219, + 708, 1109, + 86, 342, - 87, 598, 854, 1365, + 87, 1255, 488, 233, 744, 123, 1000, + 635, 1401, 634, 379, 890, ): list([ + 17, 18, + 19, ]), tuple( 1146, - 1036, + 1401, + 524, + 13, 269, - 14, - 525, - 781, + 780, + 1036, 1292, - 1402, - 1182, - 671, - 160, + 525, + 926, 415, - 927, + 671, + 159, + 1182, 1438, - 817, + 1072, + 305, 50, + 561, + 817, + 1328, 306, - 562, 1073, - 1329, - 963, + 1218, + 451, 196, + 707, + 963, 452, - 708, 1219, - 1109, + 853, + 86, 342, - 87, 598, - 854, + 1109, 1365, - 1255, + 999, + 232, 488, - 233, 744, - 123, + 1255, 1000, + 378, 379, - 890, - 635, - ): list([ - 19, - ]), - tuple( - 1146, - 1036, - 269, - 14, - 525, - 781, - 1292, - 1402, - 1438, - 671, - 160, - 416, - 927, - 1183, - 817, - 50, - 306, - 562, - 1073, - 1329, - 963, - 196, - 452, - 708, - 1219, - 1109, - 342, - 87, - 598, - 854, - 1365, - 744, - 233, - 489, + 1145, + 634, 123, - 1000, - 1256, - 379, 890, - 635, ): list([ - 20, - ]), - tuple( - 1146, - 1292, - 525, 14, - 270, - 781, - 1037, - 1402, - 1438, - 671, - 160, - 416, - 927, - 1183, - 817, - 50, - 306, - 562, - 1073, - 1329, - 963, - 196, - 452, - 708, - 1219, - 1365, - 598, - 87, - 343, - 854, - 1110, - 744, - 233, - 489, - 123, - 1000, - 1256, - 379, - 890, - 635, - ): list([ - 21, - ]), - tuple( - 1147, - 1037, - 270, 15, - 526, - 782, - 1293, - 1403, - 1183, - 416, - 161, - 672, - 928, - 1439, - 818, - 51, - 307, - 563, - 1074, - 1330, - 964, - 197, - 453, - 709, - 1220, - 1110, - 599, - 343, - 88, - 855, - 1366, - 1256, - 489, - 234, - 745, - 1001, - 124, - 380, - 891, - 636, - ): list([ - 29, + 16, ]), tuple( 1147, @@ -15597,55 +10487,15 @@ 782, 1293, 1403, - 1439, - 672, - 161, - 417, - 928, - 1184, - 818, - 51, - 307, - 563, - 1074, - 1330, - 964, - 197, - 453, - 709, - 1220, - 1110, - 599, - 343, - 88, - 855, - 1366, - 745, - 234, - 490, - 1001, - 1257, - 124, - 380, - 891, - 636, - ): list([ - 30, - ]), - tuple( - 1147, - 1293, - 526, - 15, 271, - 782, 1038, - 1403, - 1439, - 672, + 1183, + 416, 161, - 417, + 672, 928, + 1439, + 417, 1184, 818, 51, @@ -15658,22 +10508,28 @@ 453, 709, 1220, - 1366, + 1110, 599, - 344, + 343, 88, 855, + 1366, + 344, 1111, - 745, + 1256, + 489, 234, - 490, + 745, 1001, + 490, 1257, 124, 380, 891, 636, ): list([ + 29, + 30, 31, ]), tuple( @@ -15683,62 +10539,22 @@ 641, 897, 1408, - 531, - 20, - 276, - 787, - 1043, - 1299, - 933, - 166, - 422, - 678, - 1189, - 1445, - 1079, - 568, - 312, - 57, - 824, - 1335, - 1225, - 458, - 203, - 714, - 970, - 860, - 605, - 349, - 93, - 1116, - 1372, - 1006, - 239, - 495, - 751, - 1262, - ): list([ - 84, - ]), - tuple( - 1152, - 385, - 130, - 641, - 897, - 1408, + 1153, 1298, 531, 20, 276, 787, 1043, + 1299, + 532, 677, 166, 422, 933, 1189, 1445, + 678, 1079, 568, 312, @@ -15750,12 +10566,16 @@ 203, 714, 970, + 459, + 1226, 1371, 604, 349, 93, 860, 1116, + 605, + 1372, 1006, 239, 495, @@ -15763,138 +10583,8 @@ 1262, ): list([ 83, - ]), - tuple( - 1152, - 385, - 130, - 641, - 897, - 1408, - 1298, - 531, - 20, - 276, - 787, - 1043, - 1444, - 677, - 166, - 422, - 933, - 1189, - 823, - 312, - 568, - 56, - 1079, - 1335, - 1225, - 458, - 203, - 714, - 970, - 1371, - 604, - 349, - 93, - 860, - 1116, - 750, - 239, - 495, - 1006, - 1262, - ): list([ - 82, - ]), - tuple( - 1153, - 386, - 131, - 642, - 898, - 1409, - 532, - 21, - 277, - 788, - 1044, - 1300, - 934, - 167, - 423, - 679, - 1190, - 1446, - 1080, - 569, - 313, - 58, - 825, - 1336, - 1226, - 459, - 204, - 715, - 971, - 861, - 350, - 606, - 94, - 1117, - 1373, - 1007, - 240, - 496, - 752, - 1263, - ): list([ - 94, - ]), - tuple( - 1153, - 386, - 131, - 642, - 898, - 1409, - 1299, - 532, - 21, - 277, - 788, - 1044, - 678, - 167, - 423, - 934, - 1190, - 1446, - 1080, - 569, - 313, - 58, - 825, - 1336, - 1226, - 459, - 204, - 715, - 971, - 1372, - 605, - 350, - 94, - 861, - 1117, - 1007, - 240, - 496, - 752, - 1263, - ): list([ - 93, + 84, + 85, ]), tuple( 1153, @@ -15909,18 +10599,23 @@ 277, 788, 1044, + 1300, 1445, 678, 167, 423, 934, 1190, + 1446, + 679, 824, 313, 569, 57, 1080, 1336, + 58, + 825, 1226, 459, 204, @@ -15932,57 +10627,18 @@ 94, 861, 1117, - 751, - 240, - 496, - 1007, - 1263, - ): list([ - 92, - ]), - tuple( - 1154, - 387, - 132, - 643, - 899, - 1410, - 533, - 22, - 278, - 789, - 1045, - 1301, - 935, - 168, - 424, - 680, - 1191, - 1447, - 1081, - 570, - 314, - 59, - 826, - 1337, - 1227, - 460, - 205, - 716, - 972, - 862, - 351, - 607, - 95, - 1118, - 1374, - 1008, - 241, - 497, - 753, - 1264, + 606, + 1373, + 751, + 240, + 496, + 1007, + 1263, + 752, ): list([ - 104, + 92, + 93, + 94, ]), tuple( 1154, @@ -15991,16 +10647,19 @@ 643, 899, 1410, - 1300, + 1155, + 388, 533, 22, 278, 789, 1045, - 679, + 1301, + 534, + 935, 168, 424, - 935, + 680, 1191, 1447, 1081, @@ -16009,156 +10668,31 @@ 59, 826, 1337, + 315, + 1082, 1227, 460, 205, 716, 972, - 1373, - 606, + 461, + 1228, + 862, 351, + 607, 95, - 862, 1118, + 1374, 1008, 241, 497, 753, 1264, - ): list([ - 103, - ]), - tuple( - 1154, - 387, - 132, - 643, - 899, - 1410, - 1300, - 533, - 22, - 278, - 789, - 1045, - 1446, - 679, - 168, - 424, - 935, - 1191, - 825, - 314, - 570, - 58, - 1081, - 1337, - 1227, - 460, - 205, - 716, - 972, - 1373, - 606, - 351, - 95, - 862, - 1118, - 752, - 241, - 497, - 1008, - 1264, - ): list([ - 102, - ]), - tuple( - 1155, - 388, - 133, - 644, - 900, - 1411, - 534, - 279, - 23, - 790, - 1046, - 1302, - 936, - 169, - 425, - 681, - 1192, - 1448, - 1082, - 571, - 315, - 60, - 827, - 1338, - 1228, - 461, - 206, - 717, - 973, - 863, - 96, - 352, - 608, - 1119, - 1375, - 1009, - 242, - 498, - 754, - 1265, - ): list([ - 114, - ]), - tuple( - 1155, - 388, - 133, - 644, - 900, - 1411, - 1301, - 534, - 23, - 279, - 790, - 1046, - 1447, - 680, - 169, - 425, - 936, - 1192, - 826, - 315, - 571, - 59, - 1082, - 1338, - 1228, - 461, - 206, - 717, - 973, - 1374, - 607, - 96, - 352, - 863, - 1119, - 753, - 242, - 498, 1009, - 1265, ): list([ - 112, + 104, + 105, + 106, ]), tuple( 1155, @@ -16167,130 +10701,52 @@ 644, 900, 1411, + 1156, 1301, 534, 279, 23, 790, - 1046, - 680, - 169, - 425, - 936, - 1192, - 1448, - 1082, - 571, - 315, - 60, - 827, - 1338, - 1228, - 461, - 206, - 717, - 973, - 1374, - 607, - 96, - 352, - 863, - 1119, - 1009, - 242, - 498, - 754, - 1265, - ): list([ - 113, - ]), - tuple( - 1156, - 389, - 134, - 645, - 901, - 1412, - 535, - 280, - 24, - 791, - 1047, - 1303, - 937, - 170, - 426, - 682, - 1193, - 1449, - 1083, - 316, - 61, - 572, - 828, - 1339, - 1229, - 462, - 207, - 718, - 974, - 864, - 97, - 353, - 609, - 1120, - 1376, - 1010, - 243, - 499, - 755, - 1266, - ): list([ - 124, - ]), - tuple( - 1156, - 389, - 134, - 645, - 901, - 1412, - 1302, - 535, - 280, - 24, - 791, - 1047, + 1046, + 1302, + 535, + 680, + 169, + 425, + 936, + 1192, + 1448, 681, - 170, - 426, - 937, - 1193, - 1449, - 1083, - 316, - 61, - 572, - 828, - 1339, - 1229, + 1082, + 571, + 315, + 60, + 827, + 1338, + 1228, + 461, + 206, + 717, + 973, 462, - 207, - 718, - 974, - 1375, + 1229, + 1374, + 607, + 96, + 352, + 863, + 1119, 608, - 97, - 353, - 864, - 1120, - 1010, - 243, - 499, - 755, - 1266, + 1375, + 1009, + 242, + 498, + 754, + 1265, ): list([ - 123, + 113, + 114, + 115, ]), tuple( 1156, @@ -16305,18 +10761,23 @@ 24, 791, 1047, + 1303, 1448, 681, 170, 426, 937, 1193, + 1449, + 682, 827, 316, 60, 572, 1083, 1339, + 61, + 828, 1229, 462, 207, @@ -16328,13 +10789,18 @@ 353, 864, 1120, + 609, + 1376, 754, 243, 499, 1010, 1266, + 755, ): list([ 122, + 123, + 124, ]), tuple( 1157, @@ -16343,12 +10809,15 @@ 646, 902, 1413, + 1158, + 391, 536, 281, 25, 792, 1048, 1304, + 537, 938, 171, 427, @@ -16361,11 +10830,15 @@ 62, 829, 1340, + 318, + 1085, 1230, 463, 208, 719, 975, + 464, + 1231, 865, 98, 354, @@ -16376,185 +10849,12 @@ 244, 500, 756, - 1267, - ): list([ - 134, - ]), - tuple( - 1157, - 390, - 135, - 646, - 902, - 1413, - 1303, - 536, - 281, - 25, - 792, - 1048, - 682, - 171, - 427, - 938, - 1194, - 1450, - 1084, - 573, - 317, - 62, - 829, - 1340, - 1230, - 463, - 208, - 719, - 975, - 1376, - 609, - 98, - 354, - 865, - 1121, - 1011, - 244, - 500, - 756, - 1267, - ): list([ - 133, - ]), - tuple( - 1157, - 390, - 135, - 646, - 902, - 1413, - 1303, - 536, - 281, - 25, - 792, - 1048, - 1449, - 682, - 171, - 427, - 938, - 1194, - 828, - 573, - 317, - 61, - 1084, - 1340, - 1230, - 463, - 208, - 719, - 975, - 1376, - 609, - 98, - 354, - 865, - 1121, - 755, - 244, - 500, - 1011, - 1267, - ): list([ - 132, - ]), - tuple( - 1158, - 391, - 136, - 647, - 903, - 1414, - 537, - 282, - 26, - 793, - 1049, - 1305, - 939, - 172, - 428, - 684, - 1195, - 1451, - 1085, - 574, - 318, - 63, - 830, - 1341, - 1231, - 464, - 209, - 720, - 976, - 866, - 99, - 355, - 611, - 1122, - 1378, - 1012, - 245, - 501, - 757, - 1268, - ): list([ - 144, - ]), - tuple( - 1158, - 391, - 136, - 647, - 903, - 1414, - 1304, - 537, - 282, - 26, - 793, - 1049, - 683, - 172, - 428, - 939, - 1195, - 1451, - 1085, - 574, - 318, - 63, - 830, - 1341, - 1231, - 464, - 209, - 720, - 976, - 1377, - 610, - 99, - 355, - 866, - 1122, - 1012, - 245, - 501, - 757, - 1268, + 1267, + 1012, ): list([ - 143, + 134, + 135, + 136, ]), tuple( 1158, @@ -16563,130 +10863,52 @@ 647, 903, 1414, + 1159, 1304, 537, 282, 26, 793, 1049, - 1450, + 1305, + 538, 683, 172, 428, 939, 1195, - 829, - 318, - 574, - 62, + 1451, + 684, 1085, + 574, + 318, + 63, + 830, 1341, 1231, 464, 209, 720, 976, + 465, + 1232, 1377, 610, 99, 355, 866, 1122, - 756, + 611, + 1378, + 1012, 245, 501, - 1012, + 757, 1268, ): list([ - 142, - ]), - tuple( - 1159, - 392, - 137, - 648, - 904, - 1415, - 538, - 283, - 27, - 794, - 1050, - 1306, - 940, - 173, - 429, - 685, - 1196, - 1452, - 1086, - 575, - 64, - 319, - 831, - 1342, - 1232, - 465, - 210, - 721, - 977, - 867, - 100, - 356, - 612, - 1123, - 1379, - 1013, - 246, - 502, - 758, - 1269, - ): list([ - 154, - ]), - tuple( - 1159, - 392, - 137, - 648, - 904, - 1415, - 1305, - 538, - 283, - 27, - 794, - 1050, - 684, - 173, - 429, - 940, - 1196, - 1452, - 1086, - 575, - 64, - 319, - 831, - 1342, - 1232, - 465, - 210, - 721, - 977, - 1378, - 611, - 100, - 356, - 867, - 1123, - 1013, - 246, - 502, - 758, - 1269, - ): list([ - 153, + 143, + 144, + 145, ]), tuple( 1159, @@ -16701,18 +10923,23 @@ 27, 794, 1050, + 1306, 1451, 684, 173, 429, 940, 1196, + 1452, + 685, 830, 319, 575, 63, 1086, 1342, + 64, + 831, 1232, 465, 210, @@ -16724,25 +10951,187 @@ 356, 867, 1123, + 612, + 1379, 757, 246, 502, 1013, 1269, + 758, + ): list([ + 152, + 153, + 154, + ]), + tuple( + 1160, + 393, + 138, + 649, + 905, + 1416, + 1161, + 394, + 539, + 284, + 28, + 795, + 1051, + 1307, + 540, + 941, + 174, + 430, + 686, + 1197, + 1453, + 1087, + 320, + 65, + 576, + 832, + 1343, + 321, + 1088, + 1233, + 466, + 211, + 722, + 978, + 467, + 1234, + 247, + 868, + 101, + 357, + 613, + 1124, + 1380, + 759, + 1015, + 1014, + 503, + 1270, + ): list([ + 164, + 165, + 166, + ]), + tuple( + 1161, + 394, + 139, + 650, + 906, + 1417, + 1162, + 1307, + 540, + 285, + 29, + 796, + 1052, + 1308, + 541, + 686, + 175, + 431, + 942, + 1198, + 687, + 1088, + 321, + 66, + 577, + 833, + 1344, + 1234, + 467, + 212, + 723, + 979, + 468, + 1235, + 248, + 1380, + 613, + 102, + 358, + 869, + 1125, + 614, + 1381, + 760, + 1015, + 504, + 1271, + ): list([ + 173, + 174, + 175, + ]), + tuple( + 1272, + 906, + 139, + 395, + 651, + 1162, + 1418, + 1052, + 541, + 285, + 30, + 797, + 1308, + 286, + 1053, + 1198, + 431, + 176, + 687, + 943, + 432, + 1199, + 833, + 66, + 322, + 578, + 1089, + 1345, + 979, + 212, + 468, + 724, + 1235, + 1016, + 1125, + 358, + 103, + 614, + 870, + 1381, + 359, + 1126, + 505, + 760, + 1271, + 504, + 249, ): list([ - 152, + 179, + 180, + 181, ]), tuple( 1272, - 906, - 139, - 395, - 651, 1162, - 1418, + 395, 140, + 651, 907, - 1163, + 1418, 1308, 541, 30, @@ -16750,7 +11139,6 @@ 797, 1053, 1309, - 542, 687, 176, 432, @@ -16765,16 +11153,12 @@ 1345, 67, 834, - 979, - 212, - 468, - 724, 1235, + 468, 213, - 1016, + 724, 980, - 469, - 1236, + 1016, 249, 614, 103, @@ -16788,54 +11172,62 @@ 760, 505, ): list([ - 181, 182, 183, 184, - 185, ]), tuple( 1272, - 906, - 139, + 1418, 395, + 140, 651, - 1162, - 1418, - 1052, - 541, - 285, - 30, + 907, + 1163, + 396, 797, - 1308, - 687, + 542, + 30, + 286, + 1053, + 1309, + 943, 176, 432, - 943, + 688, 1199, - 833, - 66, + 177, + 944, + 1089, 322, + 67, 578, - 1089, + 834, 1345, - 979, - 212, - 468, + 323, + 1090, 724, - 1235, - 1016, + 213, + 469, + 980, + 1236, 249, - 358, - 103, - 614, 870, - 1125, - 1381, - 760, + 103, + 359, + 615, + 1126, + 1382, + 871, + 761, + 1016, 505, + 250, + 1017, ): list([ - 180, + 185, + 186, + 187, ]), tuple( 1273, @@ -16847,21 +11239,17 @@ 1419, 141, 908, - 1164, 1309, 542, 287, 31, 798, 1054, - 1310, - 543, 688, 177, 433, 944, 1200, - 689, 834, 67, 323, @@ -16877,8 +11265,6 @@ 1236, 214, 981, - 470, - 1237, 762, 1382, 615, @@ -16887,8 +11273,6 @@ 250, 871, 1127, - 616, - 1383, 761, 506, 1017, @@ -16896,359 +11280,220 @@ 191, 192, 193, - 194, - 195, ]), tuple( 1273, - 907, + 1418, + 651, 140, 396, - 652, + 907, 1163, + 652, 1419, - 1053, - 542, - 286, - 31, - 798, - 1309, - 688, - 177, - 433, - 944, - 1200, - 834, - 67, - 323, - 579, - 1090, - 1346, - 980, - 213, - 469, - 725, - 1236, - 1126, - 359, - 104, - 615, - 250, - 871, - 1382, - 761, - 506, - 1017, - ): list([ - 190, - ]), - tuple( - 1280, - 257, - 2, - 513, - 769, - 1025, - 1426, - 659, - 148, - 404, - 915, - 1171, - 805, - 38, - 294, - 550, - 1061, - 1317, - 951, - 440, - 184, - 696, - 1207, - 1353, - 586, - 75, - 331, - 842, - 1098, - 732, - 477, - 221, - 988, - 1244, - 878, - 111, - 367, - 623, - 1134, - 1390, - ): list([ - 266, - ]), - tuple( - 1280, - 513, - 2, - 258, - 769, - 1025, - 915, - 148, - 404, - 660, - 1171, - 1427, - 1061, - 294, - 39, - 550, - 806, - 1317, - 1207, - 440, - 185, - 696, - 952, - 842, - 75, - 331, - 587, - 1098, - 1354, - 988, - 477, - 221, - 733, - 1244, - 1134, - 367, - 112, - 623, - 879, - 1390, + 1053, + 542, + 286, + 31, + 798, + 1309, + 1199, + 432, + 177, + 688, + 944, + 433, + 1200, + 1345, + 578, + 67, + 323, + 834, + 1090, + 579, + 1346, + 980, + 213, + 469, + 725, + 1236, + 1126, + 359, + 104, + 615, + 871, + 1382, + 506, + 761, + 1272, + 505, + 250, + 1017, ): list([ - 269, + 188, + 189, + 190, ]), tuple( - 1280, - 513, - 2, - 258, - 769, - 1025, - 1426, - 659, - 148, - 404, - 915, - 1171, - 805, - 38, - 294, - 550, - 1061, - 1317, - 1207, - 440, - 185, - 696, - 952, - 1353, - 586, - 75, - 331, - 842, - 1098, - 732, - 477, - 221, - 988, - 1244, - 1134, - 111, - 367, - 623, - 879, - 1390, + 1274, + 1164, + 397, + 142, + 653, + 909, + 1420, + 1165, + 1310, + 543, + 32, + 288, + 799, + 1055, + 1311, + 544, + 689, + 178, + 434, + 945, + 1201, + 690, + 1091, + 324, + 69, + 580, + 836, + 1347, + 1237, + 470, + 215, + 726, + 982, + 471, + 1238, + 1383, + 616, + 105, + 361, + 872, + 1128, + 617, + 1384, + 251, + 1018, + 507, + 763, ): list([ - 267, + 203, + 204, + 205, ]), tuple( 1280, - 513, + 257, 2, - 258, + 513, 769, 1025, + 258, 1426, 659, 148, 404, - 915, - 1171, - 1061, - 294, - 39, - 550, - 806, - 1317, - 1207, - 440, - 185, - 696, - 952, - 1353, - 586, - 75, - 331, - 842, - 1098, - 988, - 477, - 221, - 733, - 1244, - 1134, - 367, - 112, - 623, - 879, - 1390, - ): list([ - 268, - ]), - tuple( - 1281, - 258, - 3, - 514, - 770, - 1026, - 1427, - 660, - 149, - 405, - 916, - 1172, - 806, - 39, - 295, - 551, - 1062, - 1318, - 952, - 441, - 185, - 697, - 1208, - 1354, - 587, - 76, - 332, - 843, - 1099, - 733, - 478, - 222, - 989, - 1245, - 879, - 112, - 368, - 624, - 1135, - 1391, - ): list([ - 276, - ]), - tuple( - 1281, - 514, - 3, - 259, - 770, - 1026, - 916, - 149, - 405, - 661, - 1172, - 1428, - 1062, - 295, - 40, - 551, - 807, - 1318, - 1208, - 441, - 186, - 697, - 953, - 843, - 76, - 332, - 588, - 1099, - 1355, - 989, - 478, - 222, - 734, - 1245, - 1135, - 368, - 113, - 624, - 880, - 1391, + 915, + 1171, + 805, + 38, + 294, + 550, + 1061, + 1317, + 39, + 806, + 951, + 440, + 184, + 696, + 1207, + 185, + 952, + 1353, + 586, + 75, + 331, + 842, + 1098, + 732, + 477, + 221, + 988, + 1244, + 733, + 878, + 111, + 367, + 623, + 1134, + 1390, + 879, + 112, ): list([ - 279, + 266, + 267, + 268, ]), tuple( - 1281, + 1280, + 513, + 2, + 258, + 769, + 1025, 514, - 3, - 259, - 770, - 1026, - 1427, + 1281, + 915, + 148, + 404, 660, - 149, - 405, - 916, - 1172, - 806, + 1171, + 1427, + 1061, + 294, 39, + 550, + 806, + 1317, 295, - 551, 1062, - 1318, - 1208, + 1207, + 440, + 185, + 696, + 952, 441, - 186, - 697, - 953, - 1354, + 1208, + 842, + 75, + 331, 587, - 76, - 332, - 843, - 1099, + 1098, + 1354, + 988, + 477, + 221, 733, - 478, - 222, - 989, - 1245, - 1135, + 1244, + 1134, + 367, 112, + 623, + 879, + 1390, 368, - 624, - 880, - 1391, + 1135, ): list([ - 277, + 269, + 270, + 271, ]), tuple( 1281, @@ -17257,12 +11502,16 @@ 259, 770, 1026, + 515, + 1282, 1427, 660, 149, 405, 916, 1172, + 661, + 1428, 1062, 295, 40, @@ -17274,12 +11523,16 @@ 186, 697, 953, + 442, + 1209, 1354, 587, 76, 332, 843, 1099, + 588, + 1355, 989, 478, 222, @@ -17293,94 +11546,8 @@ 1391, ): list([ 278, - ]), - tuple( - 1282, - 259, - 4, - 515, - 771, - 1027, - 1428, - 661, - 150, - 406, - 917, - 1173, - 807, - 40, - 296, - 552, - 1063, - 1319, - 953, - 442, - 186, - 698, - 1209, - 1355, - 588, - 77, - 333, - 844, - 1100, - 734, - 479, - 223, - 990, - 1246, - 880, - 113, - 369, - 625, - 1136, - 1392, - ): list([ - 286, - ]), - tuple( - 1282, - 515, - 4, - 260, - 771, - 1027, - 917, - 150, - 406, - 662, - 1173, - 1429, - 1063, - 296, - 41, - 552, - 808, - 1319, - 1209, - 442, - 187, - 698, - 954, - 844, - 77, - 333, - 589, - 1100, - 1356, - 990, - 479, - 223, - 735, - 1246, - 1136, - 369, - 114, - 625, - 881, - 1392, - ): list([ - 289, + 279, + 280, ]), tuple( 1282, @@ -17395,56 +11562,16 @@ 406, 917, 1173, + 662, + 1429, 807, 40, 296, 552, - 1063, - 1319, - 1209, - 442, - 187, - 698, - 954, - 1355, - 588, - 77, - 333, - 844, - 1100, - 734, - 479, - 223, - 990, - 1246, - 1136, - 113, - 369, - 625, - 881, - 1392, - ): list([ - 287, - ]), - tuple( - 1282, - 515, - 4, - 260, - 771, - 1027, - 1428, - 661, - 150, - 406, - 917, - 1173, - 1063, - 296, - 41, - 552, - 808, + 1063, 1319, + 41, + 808, 1209, 442, 187, @@ -17456,19 +11583,25 @@ 333, 844, 1100, - 990, + 589, + 1356, + 734, 479, 223, - 735, + 990, 1246, + 735, 1136, + 113, 369, - 114, 625, 881, 1392, + 114, ): list([ + 287, 288, + 289, ]), tuple( 1283, @@ -17477,6 +11610,7 @@ 516, 772, 1028, + 261, 1429, 662, 407, @@ -17489,11 +11623,15 @@ 553, 1064, 1320, + 42, + 809, 954, 443, 187, 699, 1210, + 188, + 955, 1356, 589, 78, @@ -17505,14 +11643,19 @@ 480, 991, 1247, + 736, 881, 114, 370, 626, 1137, 1393, + 882, + 115, ): list([ 296, + 297, + 298, ]), tuple( 1283, @@ -17521,6 +11664,8 @@ 261, 772, 1028, + 517, + 1284, 918, 407, 663, @@ -17533,11 +11678,15 @@ 553, 809, 1320, + 298, + 1065, 1210, 443, 188, 699, 955, + 444, + 1211, 845, 78, 334, @@ -17547,236 +11696,20 @@ 991, 224, 480, - 736, - 1247, - 1137, - 370, - 115, - 626, - 882, - 1393, - ): list([ - 299, - ]), - tuple( - 1283, - 516, - 5, - 261, - 772, - 1028, - 1429, - 662, - 407, - 151, - 918, - 1174, - 808, - 41, - 297, - 553, - 1064, - 1320, - 1210, - 443, - 188, - 699, - 955, - 1356, - 589, - 78, - 334, - 845, - 1101, - 735, - 224, - 480, - 991, - 1247, - 1137, - 114, - 370, - 626, - 882, - 1393, - ): list([ - 297, - ]), - tuple( - 1283, - 516, - 5, - 261, - 772, - 1028, - 1429, - 662, - 407, - 151, - 918, - 1174, - 1064, - 297, - 42, - 553, - 809, - 1320, - 1210, - 443, - 188, - 699, - 955, - 1356, - 589, - 78, - 334, - 845, - 1101, - 991, - 224, - 480, - 736, - 1247, - 1137, - 370, - 115, - 626, - 882, - 1393, - ): list([ - 298, - ]), - tuple( - 1284, - 261, - 6, - 517, - 773, - 1029, - 1430, - 663, - 408, - 152, - 919, - 1175, - 809, - 42, - 298, - 554, - 1065, - 1321, - 955, - 444, - 188, - 700, - 1211, - 1357, - 590, - 79, - 335, - 846, - 1102, - 736, - 225, - 481, - 992, - 1248, - 882, - 115, - 371, - 627, - 1138, - 1394, - ): list([ - 306, - ]), - tuple( - 1284, - 517, - 6, - 262, - 773, - 1029, - 919, - 408, - 664, - 152, - 1175, - 1431, - 1065, - 298, - 43, - 554, - 810, - 1321, - 1211, - 444, - 189, - 700, - 956, - 846, - 79, - 335, - 591, - 1102, - 1358, - 992, - 225, - 481, - 737, - 1248, - 1138, - 371, - 116, - 627, - 883, - 1394, - ): list([ - 309, - ]), - tuple( - 1284, - 517, - 6, - 262, - 773, - 1029, - 1430, - 663, - 408, - 152, - 919, - 1175, - 809, - 42, - 298, - 554, - 1065, - 1321, - 1211, - 444, - 189, - 700, - 956, - 1357, - 590, - 79, - 335, - 846, - 1102, - 736, - 225, - 481, - 992, - 1248, - 1138, + 736, + 1247, + 1137, + 370, 115, + 626, + 882, + 1393, 371, - 627, - 883, - 1394, + 1138, ): list([ - 307, + 299, + 300, + 301, ]), tuple( 1284, @@ -17785,12 +11718,16 @@ 262, 773, 1029, + 518, + 1285, 1430, 663, 408, 152, 919, 1175, + 664, + 1431, 1065, 298, 43, @@ -17802,12 +11739,16 @@ 189, 700, 956, + 445, + 1212, 1357, 590, 79, 335, 846, 1102, + 591, + 1358, 992, 225, 481, @@ -17821,94 +11762,8 @@ 1394, ): list([ 308, - ]), - tuple( - 1285, - 262, - 7, - 518, - 774, - 1030, - 1431, - 664, - 409, - 153, - 920, - 1176, - 810, - 43, - 299, - 555, - 1066, - 1322, - 956, - 189, - 445, - 701, - 1212, - 1358, - 591, - 80, - 336, - 847, - 1103, - 737, - 226, - 482, - 993, - 1249, - 883, - 116, - 372, - 628, - 1139, - 1395, - ): list([ - 316, - ]), - tuple( - 1285, - 518, - 7, - 263, - 774, - 1030, - 920, - 409, - 665, - 153, - 1176, - 1432, - 1066, - 299, - 44, - 555, - 811, - 1322, - 1212, - 445, - 190, - 701, - 957, - 847, - 80, - 336, - 592, - 1103, - 1359, - 993, - 226, - 482, - 738, - 1249, - 1139, - 372, - 117, - 628, - 884, - 1395, - ): list([ - 319, + 309, + 310, ]), tuple( 1285, @@ -17923,12 +11778,16 @@ 153, 920, 1176, + 665, + 1432, 810, 43, 299, 555, 1066, 1322, + 44, + 811, 1212, 445, 190, @@ -17940,63 +11799,25 @@ 336, 847, 1103, + 592, + 1359, 737, 226, 482, 993, 1249, + 738, 1139, 116, 372, 628, 884, 1395, - ): list([ - 317, - ]), - tuple( - 1285, - 518, - 7, - 263, - 774, - 1030, - 1431, - 664, - 409, - 153, - 920, - 1176, - 1066, - 299, - 44, - 555, - 811, - 1322, - 1212, - 445, - 190, - 701, - 957, - 1358, - 591, - 80, - 336, - 847, - 1103, - 993, - 226, - 482, - 738, - 1249, - 1139, - 372, 117, - 628, - 884, - 1395, ): list([ + 317, 318, + 319, ]), tuple( 1286, @@ -18005,6 +11826,7 @@ 519, 775, 1031, + 264, 1432, 665, 410, @@ -18017,98 +11839,14 @@ 556, 1067, 1323, - 957, - 446, - 190, - 702, - 1213, - 1359, - 592, - 81, - 337, - 848, - 1104, - 738, - 227, - 483, - 994, - 1250, - 884, - 117, - 373, - 629, - 1140, - 1396, - ): list([ - 326, - ]), - tuple( - 1286, - 519, - 8, - 264, - 775, - 1031, - 921, - 410, - 666, - 154, - 1177, - 1433, - 1067, - 300, 45, - 556, 812, - 1323, - 1213, + 957, 446, - 191, + 190, 702, - 958, - 848, - 81, - 337, - 593, - 1104, - 1360, - 994, - 227, - 483, - 739, - 1250, - 1140, - 373, - 118, - 629, - 885, - 1396, - ): list([ - 329, - ]), - tuple( - 1286, - 519, - 8, - 264, - 775, - 1031, - 1432, - 665, - 410, - 154, - 921, - 1177, - 811, - 44, - 300, - 556, - 1067, - 1323, 1213, - 446, 191, - 702, 958, 1359, 592, @@ -18121,14 +11859,19 @@ 483, 994, 1250, - 1140, + 739, + 884, 117, 373, 629, - 885, + 1140, 1396, + 885, + 118, ): list([ + 326, 327, + 328, ]), tuple( 1286, @@ -18137,29 +11880,35 @@ 264, 775, 1031, - 1432, - 665, + 520, + 1287, + 921, 410, + 666, 154, - 921, 1177, + 1433, 1067, 300, 45, 556, 812, 1323, + 301, + 1068, 1213, 446, 191, 702, 958, - 1359, - 592, + 447, + 1214, + 848, 81, 337, - 848, + 593, 1104, + 1360, 994, 227, 483, @@ -18171,140 +11920,12 @@ 629, 885, 1396, - ): list([ - 328, - ]), - tuple( - 1287, - 264, - 9, - 520, - 776, - 1032, - 1433, - 666, - 411, - 155, - 922, - 1178, - 812, - 45, - 301, - 557, - 1068, - 1324, - 958, - 447, - 191, - 703, - 1214, - 1360, - 593, - 82, - 338, - 849, - 1105, - 739, - 228, - 484, - 995, - 1251, - 885, - 118, - 374, - 630, - 1141, - 1397, - ): list([ - 336, - ]), - tuple( - 1287, - 520, - 9, - 265, - 776, - 1032, - 922, - 411, - 155, - 667, - 1178, - 1434, - 1068, - 301, - 46, - 557, - 813, - 1324, - 1214, - 447, - 192, - 703, - 959, - 849, - 82, - 338, - 594, - 1105, - 1361, - 995, - 228, - 484, - 740, - 1251, - 1141, 374, - 119, - 630, - 886, - 1397, - ): list([ - 339, - ]), - tuple( - 1287, - 520, - 9, - 265, - 776, - 1032, - 1433, - 666, - 411, - 155, - 922, - 1178, - 812, - 45, - 301, - 557, - 1068, - 1324, - 1214, - 447, - 192, - 703, - 959, - 1360, - 593, - 82, - 338, - 849, - 1105, - 739, - 228, - 484, - 995, - 1251, 1141, - 118, - 374, - 630, - 886, - 1397, ): list([ - 337, + 329, + 330, + 331, ]), tuple( 1287, @@ -18313,12 +11934,16 @@ 265, 776, 1032, + 521, + 1288, 1433, 666, 411, 155, 922, 1178, + 667, + 1434, 1068, 301, 46, @@ -18330,12 +11955,16 @@ 192, 703, 959, + 448, + 1215, 1360, 593, 82, 338, 849, 1105, + 594, + 1361, 995, 228, 484, @@ -18346,97 +11975,11 @@ 119, 630, 886, - 1397, - ): list([ - 338, - ]), - tuple( - 1288, - 265, - 10, - 521, - 777, - 1033, - 1434, - 667, - 412, - 156, - 923, - 1179, - 813, - 46, - 302, - 558, - 1069, - 1325, - 959, - 192, - 448, - 704, - 1215, - 1361, - 594, - 83, - 339, - 850, - 1106, - 119, - 375, - 740, - 229, - 485, - 996, - 1252, - 886, - 631, - 1142, - 1398, - ): list([ - 346, - ]), - tuple( - 1288, - 521, - 10, - 266, - 777, - 1033, - 923, - 668, - 412, - 156, - 1179, - 1435, - 1069, - 302, - 47, - 558, - 814, - 1325, - 1215, - 448, - 193, - 704, - 960, - 850, - 83, - 339, - 595, - 1106, - 1362, - 375, - 996, - 229, - 485, - 741, - 1252, - 887, - 1142, - 631, - 120, - 1398, + 1397, ): list([ - 349, + 338, + 339, + 340, ]), tuple( 1288, @@ -18451,12 +11994,16 @@ 156, 923, 1179, + 668, + 1435, 813, 46, 302, 558, 1069, 1325, + 47, + 814, 1215, 448, 193, @@ -18469,62 +12016,24 @@ 850, 1106, 119, + 595, + 1362, + 120, 375, 740, 229, 485, 996, 1252, - 887, - 1142, - 631, - 1398, - ): list([ - 347, - ]), - tuple( - 1288, - 521, - 10, - 266, - 777, - 1033, - 1434, - 667, - 412, - 156, - 923, - 1179, - 1069, - 302, - 47, - 558, - 814, - 1325, - 1215, - 448, - 193, - 704, - 960, - 1361, - 594, - 83, - 339, - 850, - 1106, - 375, - 996, - 229, - 485, 741, - 1252, 887, 1142, 631, - 120, 1398, ): list([ + 347, 348, + 349, ]), tuple( 1289, @@ -18533,6 +12042,7 @@ 522, 778, 1034, + 267, 1435, 668, 157, @@ -18545,98 +12055,14 @@ 559, 1070, 1326, - 960, - 193, - 449, - 705, - 1216, - 1362, - 595, - 84, - 340, - 851, - 1107, - 1143, - 120, - 741, - 230, - 486, - 997, - 1253, - 632, - 887, - 376, - 1399, - ): list([ - 356, - ]), - tuple( - 1289, - 522, - 11, - 267, - 778, - 1034, - 924, - 669, - 157, - 413, - 1180, - 1436, - 1070, - 303, 48, - 559, 815, - 1326, - 1216, + 960, + 193, 449, - 194, 705, - 961, - 851, - 84, - 340, - 596, - 1107, - 1363, - 376, - 997, - 230, - 486, - 742, - 1253, - 888, - 1143, - 632, - 121, - 1399, - ): list([ - 359, - ]), - tuple( - 1289, - 522, - 11, - 267, - 778, - 1034, - 1435, - 668, - 157, - 413, - 924, - 1180, - 814, - 47, - 303, - 559, - 1070, - 1326, 1216, - 449, 194, - 705, 961, 1362, 595, @@ -18644,151 +12070,78 @@ 340, 851, 1107, + 1143, 120, 741, 230, 486, 997, 1253, + 742, 632, 888, - 1143, - 376, - 1399, - ): list([ - 357, - ]), - tuple( - 1289, - 522, - 11, - 267, - 778, - 1034, - 1435, - 668, - 157, - 413, - 924, - 1180, - 1070, - 303, - 48, - 559, - 815, - 1326, - 1216, - 449, - 194, - 705, - 961, - 1362, - 595, - 84, - 340, - 851, - 1107, + 887, 376, - 997, - 230, - 486, - 742, - 1253, - 888, - 1143, - 632, 121, 1399, ): list([ - 358, - ]), - tuple( - 1294, - 527, - 16, - 272, - 783, - 1039, - 1148, - 1404, - 1440, - 673, - 162, - 418, - 929, - 1185, - 819, - 52, - 308, - 564, - 1075, - 1331, - 965, - 198, - 454, - 710, - 1221, - 1367, - 600, - 345, - 89, - 856, - 1112, - 746, - 235, - 491, - 1002, - 1258, - 381, - 125, - 892, - 637, - ): list([ - 41, - ]), - tuple( - 1400, - 523, - 12, - 268, - 779, - 1035, - 1291, - 925, - 414, - 670, - 158, - 1181, - 1437, - 1071, + 356, + 357, + 358, + ]), + tuple( + 1289, + 522, + 11, + 267, + 778, + 1034, + 523, + 1290, + 924, + 669, + 157, + 413, + 1180, + 1436, + 1070, + 303, + 48, + 559, + 815, + 1326, 304, - 49, - 560, - 816, - 1327, - 1217, + 1071, + 1216, + 449, + 194, + 705, + 961, 450, - 195, - 706, - 962, - 852, - 85, - 341, - 597, - 1108, - 1364, - 889, - 998, - 231, - 487, + 1217, + 851, + 84, + 340, + 596, + 1107, + 1363, + 376, + 997, + 230, + 486, + 742, + 1253, 377, - 743, - 1254, + 888, + 1143, + 632, + 121, 1144, - 633, - 122, + 1399, ): list([ - 4, + 359, + 360, + 361, ]), tuple( 1400, @@ -18864,261 +12217,51 @@ 268, 779, 1035, - 669, - 414, - 158, - 925, - 1181, - 1437, - 1071, - 304, - 49, - 560, - 816, - 1327, - 1217, - 450, - 195, - 706, - 962, - 1363, - 596, - 85, - 341, - 852, - 1108, - 889, - 998, - 231, - 487, - 377, - 743, - 1254, - 1144, - 633, - 122, - ): list([ - 3, - ]), - tuple( - 1400, - 1290, - 523, - 12, - 268, - 779, - 1035, + 1291, 1436, 669, 414, 158, 925, 1181, + 1437, + 670, 815, 48, 304, 560, 1071, 1327, + 49, + 816, 1217, 450, 195, 706, - 962, - 1363, - 596, - 85, - 341, - 852, - 1108, - 889, - 742, - 231, - 487, - 377, - 998, - 1254, - 1144, - 633, - 122, - ): list([ - 2, - ]), - tuple( - 1401, - 524, - 13, - 269, - 780, - 1036, - 1292, - 926, - 415, - 671, - 159, - 1182, - 1438, - 1072, - 305, - 50, - 561, - 817, - 1328, - 1218, - 451, - 196, - 707, - 963, - 853, - 86, - 342, - 598, - 1109, - 1365, - 999, - 232, - 488, - 744, - 1255, - 378, - 1145, - 634, - 123, - 890, - ): list([ - 14, - ]), - tuple( - 1401, - 1291, - 524, - 13, - 269, - 780, - 1036, - 670, - 415, - 159, - 926, - 1182, - 1438, - 1072, - 305, - 50, - 561, - 817, - 1328, - 1218, - 451, - 196, - 707, - 963, - 1364, - 597, - 86, - 342, - 853, - 1109, - 999, - 232, - 488, - 744, - 1255, - 378, - 1145, - 634, - 123, - 890, - ): list([ - 13, - ]), - tuple( - 1401, - 1291, - 524, - 13, - 269, - 780, - 1036, - 1437, - 670, - 415, - 159, - 926, - 1182, - 816, - 49, - 305, - 561, - 1072, - 1328, - 1218, - 451, - 196, - 707, - 963, - 1364, + 962, + 1363, + 596, + 85, + 341, + 852, + 1108, 597, - 86, - 342, - 853, - 1109, + 1364, + 889, + 742, + 231, + 487, + 377, + 998, + 1254, 743, - 232, - 488, - 999, - 1255, - 378, - 1145, - 634, - 123, - 890, - ): list([ - 12, - ]), - tuple( - 1408, - 385, - 130, - 641, - 897, - 1153, - 787, - 20, - 276, - 532, - 1043, - 1299, - 933, - 166, - 422, - 678, - 1189, - 1445, - 1079, - 568, - 312, - 57, - 824, - 1335, - 714, - 203, - 459, - 970, - 1226, - 860, - 605, - 349, - 93, - 1116, - 1372, - 1006, - 239, - 495, - 751, - 1262, + 1144, + 633, + 122, ): list([ - 85, + 2, + 3, + 4, ]), tuple( 1408, @@ -19133,12 +12276,16 @@ 532, 1043, 1299, + 21, + 788, 933, 166, 422, 678, 1189, 1445, + 167, + 934, 1335, 568, 313, @@ -19150,106 +12297,24 @@ 459, 970, 1226, + 715, 860, 605, 349, 93, 1116, 1372, + 861, + 94, 1262, 239, 495, 751, 1007, - ): list([ - 86, - ]), - tuple( - 1408, - 641, - 130, - 386, - 897, - 1153, - 787, - 20, - 276, - 532, - 1043, - 1299, - 1189, - 422, - 167, - 678, - 934, - 1445, - 1335, - 568, - 313, - 57, - 824, - 1080, - 714, - 203, - 459, - 970, - 1226, - 1116, - 605, - 349, - 93, - 861, - 1372, - 1262, - 495, 240, - 751, - 1007, ): list([ + 86, 87, - ]), - tuple( - 1408, - 641, - 130, - 386, - 897, - 1153, - 1043, - 276, - 21, - 532, - 788, - 1299, - 1189, - 422, - 167, - 678, - 934, - 1445, - 1335, - 568, - 313, - 57, - 824, - 1080, - 970, - 203, - 459, - 715, - 1226, - 1116, - 605, - 349, - 94, - 861, - 1372, - 1262, - 495, - 240, - 751, - 1007, - ): list([ 88, ]), tuple( @@ -19259,50 +12324,7 @@ 642, 898, 1154, - 788, - 21, - 277, - 533, - 1044, - 1300, - 934, - 167, - 423, - 679, - 1190, - 1446, - 1080, - 569, - 313, - 58, - 825, - 1336, - 715, - 204, - 460, - 971, - 1227, - 861, - 350, - 606, - 94, - 1117, - 1373, - 1007, - 240, - 496, - 752, - 1263, - ): list([ - 95, - ]), - tuple( - 1409, - 642, - 131, 387, - 898, - 1154, 788, 21, 277, @@ -19315,73 +12337,38 @@ 679, 1190, 1446, - 1336, - 569, - 314, - 58, - 825, - 1081, - 715, - 204, - 460, - 971, - 1227, - 861, - 350, - 606, - 94, - 1117, - 1373, - 1263, - 240, - 496, - 752, - 1008, - ): list([ - 96, - ]), - tuple( - 1409, - 642, - 131, - 387, - 898, - 1154, - 788, - 21, - 277, - 533, - 1044, - 1300, - 1190, - 423, 168, - 679, 935, - 1446, - 1336, + 1080, 569, - 314, + 313, 58, 825, + 1336, + 314, 1081, 715, 204, 460, 971, 1227, - 1117, + 861, 350, 606, 94, - 862, + 1117, 1373, - 1263, + 862, + 1007, + 240, 496, - 241, 752, + 1263, 1008, + 241, ): list([ + 95, + 96, 97, ]), tuple( @@ -19391,6 +12378,8 @@ 387, 898, 1154, + 643, + 1410, 1044, 277, 22, @@ -19403,12 +12392,16 @@ 679, 935, 1446, + 424, + 1191, 1336, 569, 314, 58, 825, 1081, + 570, + 1337, 971, 204, 460, @@ -19425,96 +12418,12 @@ 241, 752, 1008, - ): list([ - 98, - ]), - tuple( - 1410, - 387, - 132, - 643, - 899, - 1155, - 789, - 22, - 278, - 534, - 1045, - 1301, - 935, - 168, - 424, - 680, - 1191, - 1447, - 1081, - 570, - 314, - 59, - 826, - 1337, - 716, - 205, - 461, - 972, - 1228, - 862, - 351, - 607, - 95, - 1118, - 1374, - 1008, - 241, 497, - 753, - 1264, - ): list([ - 105, - ]), - tuple( - 1410, - 643, - 132, - 388, - 899, - 1155, - 789, - 22, - 278, - 534, - 1045, - 1301, - 935, - 168, - 424, - 680, - 1191, - 1447, - 1337, - 570, - 315, - 59, - 826, - 1082, - 716, - 205, - 461, - 972, - 1228, - 862, - 351, - 607, - 95, - 1118, - 1374, 1264, - 241, - 497, - 753, - 1009, ): list([ - 106, + 98, + 99, + 100, ]), tuple( 1410, @@ -19523,12 +12432,16 @@ 388, 899, 1155, + 644, + 1411, 789, 22, 278, 534, 1045, 1301, + 23, + 790, 1191, 424, 169, @@ -19541,156 +12454,30 @@ 59, 826, 1082, + 571, + 1338, 716, 205, 461, 972, 1228, + 717, 1118, 351, 607, 95, 863, 1374, - 1264, - 497, - 242, - 753, - 1009, - ): list([ - 107, - ]), - tuple( - 1410, - 643, - 132, - 388, - 899, - 1155, - 1045, - 278, - 23, - 534, - 790, - 1301, - 1191, - 424, - 169, - 680, - 936, - 1447, - 1337, - 570, - 315, - 59, - 826, - 1082, - 972, - 205, - 461, - 717, - 1228, - 1118, - 607, 96, - 351, - 863, - 1374, 1264, 497, 242, 753, 1009, ): list([ + 107, 108, - ]), - tuple( - 1411, - 388, - 133, - 644, - 900, - 1156, - 790, - 535, - 279, - 23, - 1046, - 1302, - 936, - 169, - 425, - 681, - 1192, - 1448, - 1082, - 571, - 315, - 60, - 827, - 1338, - 717, - 206, - 462, - 973, - 1229, - 863, - 96, - 352, - 608, - 1119, - 1375, - 1009, - 242, - 498, - 754, - 1265, - ): list([ - 115, - ]), - tuple( - 1411, - 644, - 133, - 389, - 900, - 1156, - 790, - 535, - 279, - 23, - 1046, - 1302, - 936, - 169, - 425, - 681, - 1192, - 1448, - 1338, - 571, - 316, - 60, - 827, - 1083, - 717, - 206, - 462, - 973, - 1229, - 863, - 96, - 352, - 608, - 1119, - 1375, - 1265, - 242, - 498, - 754, - 1010, - ): list([ - 116, + 109, ]), tuple( 1411, @@ -19705,12 +12492,16 @@ 23, 1046, 1302, - 1192, + 24, + 791, + 936, + 169, 425, - 170, 681, - 937, + 1192, 1448, + 170, + 937, 1338, 571, 316, @@ -19722,62 +12513,24 @@ 462, 973, 1229, - 1119, + 718, + 863, 96, 352, 608, - 864, - 1375, - 1265, - 498, - 243, - 754, - 1010, - ): list([ - 117, - ]), - tuple( - 1411, - 644, - 133, - 389, - 900, - 1156, - 1046, - 535, - 279, - 24, - 791, - 1302, - 1192, - 425, - 170, - 681, - 937, - 1448, - 1338, - 571, - 316, - 60, - 827, - 1083, - 973, - 206, - 462, - 718, - 1229, 1119, - 352, - 97, - 608, - 864, 1375, + 864, + 97, 1265, + 242, 498, - 243, 754, 1010, + 243, ): list([ + 116, + 117, 118, ]), tuple( @@ -19787,6 +12540,7 @@ 645, 901, 1157, + 390, 791, 280, 536, @@ -19799,55 +12553,15 @@ 682, 1193, 1449, + 171, + 938, 1083, 316, 61, 572, 828, 1339, - 718, - 207, - 463, - 974, - 1230, - 864, - 97, - 353, - 609, - 1120, - 1376, - 1010, - 243, - 499, - 755, - 1266, - ): list([ - 125, - ]), - tuple( - 1412, - 645, - 134, - 390, - 901, - 1157, - 791, - 280, - 536, - 24, - 1047, - 1303, - 937, - 170, - 426, - 682, - 1193, - 1449, - 1339, - 572, 317, - 61, - 828, 1084, 718, 207, @@ -19860,56 +12574,17 @@ 609, 1120, 1376, - 1266, + 865, + 1010, 243, 499, 755, - 1011, - ): list([ - 126, - ]), - tuple( - 1412, - 645, - 134, - 390, - 901, - 1157, - 791, - 280, - 536, - 24, - 1047, - 1303, - 1193, - 426, - 171, - 682, - 938, - 1449, - 1339, - 572, - 317, - 61, - 828, - 1084, - 718, - 207, - 463, - 974, - 1230, - 1120, - 97, - 353, - 609, - 865, - 1376, 1266, - 499, - 244, - 755, 1011, + 244, ): list([ + 125, + 126, 127, ]), tuple( @@ -19919,6 +12594,8 @@ 390, 901, 1157, + 646, + 1413, 1047, 536, 280, @@ -19931,118 +12608,38 @@ 682, 938, 1449, + 427, + 1194, 1339, 572, 317, 61, 828, 1084, + 573, + 1340, 974, 207, 463, - 719, - 1230, - 1120, - 353, - 98, - 609, - 865, - 1376, - 1266, - 499, - 244, - 755, - 1011, - ): list([ - 128, - ]), - tuple( - 1413, - 390, - 135, - 646, - 902, - 1158, - 792, - 281, - 537, - 25, - 1048, - 1304, - 938, - 171, - 427, - 683, - 1194, - 1450, - 1084, - 573, - 317, - 62, - 829, - 1340, - 719, - 208, - 464, - 975, - 1231, - 865, - 98, - 354, - 610, - 1121, - 1377, - 1011, - 244, - 500, - 756, - 1267, - ): list([ - 135, - ]), - tuple( - 1413, - 646, - 135, - 391, - 902, - 1158, - 792, - 281, - 537, - 25, - 1048, - 1304, - 938, - 171, - 427, - 683, - 1194, - 1450, - 1340, - 573, - 318, - 62, - 829, - 1085, - 719, - 208, - 464, - 975, - 1231, - 865, + 719, + 1230, + 1120, + 353, 98, - 354, - 610, - 1121, - 1377, - 1267, + 609, + 865, + 1376, + 1266, + 499, 244, + 755, + 1011, 500, - 756, - 1012, + 1267, ): list([ - 136, + 128, + 129, + 130, ]), tuple( 1413, @@ -20051,12 +12648,16 @@ 391, 902, 1158, + 647, + 1414, 792, 281, 537, 25, 1048, 1304, + 26, + 793, 1194, 427, 172, @@ -20069,112 +12670,30 @@ 62, 829, 1085, + 574, + 1341, 719, 208, 464, 975, 1231, + 720, 1121, 98, 354, 610, 866, 1377, - 1267, - 500, - 245, - 756, - 1012, - ): list([ - 137, - ]), - tuple( - 1413, - 646, - 135, - 391, - 902, - 1158, - 1048, - 537, - 281, - 26, - 793, - 1304, - 1194, - 427, - 172, - 683, - 939, - 1450, - 1340, - 573, - 318, - 62, - 829, - 1085, - 975, - 208, - 464, - 720, - 1231, - 1121, - 354, 99, - 610, - 866, - 1377, 1267, 500, 245, 756, 1012, ): list([ + 137, 138, - ]), - tuple( - 1414, - 391, - 136, - 647, - 903, - 1159, - 793, - 282, - 538, - 26, - 1049, - 1305, - 939, - 172, - 428, - 684, - 1195, - 1451, - 1085, - 574, - 318, - 63, - 830, - 1341, - 720, - 209, - 465, - 976, - 1232, - 866, - 99, - 355, - 611, - 1122, - 1378, - 1012, - 245, - 501, - 757, - 1268, - ): list([ - 145, + 139, ]), tuple( 1414, @@ -20189,12 +12708,16 @@ 26, 1049, 1305, + 27, + 794, 939, 172, 428, 684, 1195, 1451, + 173, + 940, 1341, 574, 319, @@ -20206,159 +12729,34 @@ 465, 976, 1232, + 721, 866, 99, 355, 611, 1122, 1378, - 1268, - 245, - 501, - 757, - 1013, - ): list([ - 146, - ]), - tuple( - 1414, - 647, - 136, - 392, - 903, - 1159, - 793, - 282, - 538, - 26, - 1049, - 1305, - 1195, - 428, - 173, - 684, - 940, - 1451, - 1341, - 574, - 319, - 63, - 830, - 1086, - 720, - 209, - 465, - 976, - 1232, - 1122, - 99, - 355, - 611, 867, - 1378, - 1268, - 501, - 246, - 757, - 1013, - ): list([ - 147, - ]), - tuple( - 1414, - 647, - 136, - 392, - 903, - 1159, - 1049, - 538, - 282, - 27, - 794, - 1305, - 1195, - 428, - 173, - 684, - 940, - 1451, - 1341, - 574, - 319, - 63, - 830, - 1086, - 976, - 209, - 465, - 721, - 1232, - 1122, - 355, 100, - 611, - 867, - 1378, 1268, + 245, 501, - 246, 757, 1013, + 246, ): list([ - 148, - ]), - tuple( - 1415, - 392, - 137, - 648, - 904, - 1160, - 794, - 283, - 539, - 27, - 1050, - 1306, - 940, - 173, - 429, - 685, - 1196, - 1452, - 1086, - 575, - 64, - 319, - 831, - 1342, - 721, - 210, - 466, - 977, - 1233, - 867, - 100, - 356, - 612, - 1123, - 1379, - 1013, - 246, - 502, - 758, - 1269, - ): list([ - 155, + 146, + 147, + 148, ]), tuple( 1415, - 648, + 392, 137, - 393, + 648, 904, 1160, + 393, 794, 283, 539, @@ -20371,73 +12769,38 @@ 685, 1196, 1452, - 1342, + 174, + 941, + 1086, 575, 64, - 320, + 319, 831, + 1342, + 320, 1087, 721, 210, 466, 977, 1233, + 247, 867, 100, 356, 612, 1123, 1379, - 1269, + 868, + 1013, 246, 502, 758, - 1014, - ): list([ - 156, - ]), - tuple( - 1415, - 648, - 137, - 393, - 904, - 1160, - 794, - 283, - 539, - 27, - 1050, - 1306, - 1196, - 429, - 174, - 685, - 941, - 1452, - 1342, - 575, - 64, - 320, - 831, - 1087, - 721, - 210, - 466, - 977, - 1233, - 1123, - 100, - 356, - 612, - 868, - 1379, 1269, - 502, - 247, - 758, 1014, ): list([ + 155, + 156, 157, ]), tuple( @@ -20447,6 +12810,8 @@ 393, 904, 1160, + 649, + 1416, 1050, 539, 283, @@ -20459,12 +12824,16 @@ 685, 941, 1452, + 430, + 1197, 1342, 575, 64, 320, 831, 1087, + 576, + 1343, 977, 210, 466, @@ -20476,99 +12845,17 @@ 612, 868, 1379, + 503, 1269, 502, 247, 758, 1014, - ): list([ - 158, - ]), - tuple( - 1416, - 393, - 138, - 649, - 905, - 1161, - 795, - 284, - 28, - 540, - 1051, - 1307, - 941, - 174, - 430, - 686, - 1197, - 1087, - 320, - 65, - 576, - 832, - 1343, - 722, - 211, - 467, - 978, - 1234, - 247, - 868, - 101, - 357, - 613, - 1124, - 1380, - 759, - 1014, - 503, - 1270, - ): list([ - 165, - ]), - tuple( - 1416, - 649, - 138, - 394, - 905, - 1161, - 795, - 284, - 28, - 540, - 1051, - 1307, - 941, - 174, - 430, - 686, - 1197, - 1343, - 576, - 65, - 321, - 832, - 1088, - 722, - 211, - 467, - 978, - 1234, - 247, - 868, - 101, - 357, - 613, - 1124, - 1380, - 759, - 1015, 1270, - 503, ): list([ - 166, + 158, + 159, + 160, ]), tuple( 1416, @@ -20577,12 +12864,16 @@ 394, 905, 1161, + 650, + 1417, 795, 284, 28, 540, 1051, 1307, + 29, + 796, 1197, 430, 175, @@ -20594,110 +12885,30 @@ 321, 832, 1088, + 577, + 1344, 722, 211, 467, 978, 1234, + 723, 1124, 101, 357, 613, 869, 1380, - 759, - 1015, - 1270, - 503, - 248, - ): list([ - 167, - ]), - tuple( - 1416, - 649, - 138, - 394, - 905, - 1161, - 1051, - 540, - 284, - 29, - 796, - 1307, - 1197, - 430, - 175, - 686, - 942, - 1343, - 576, - 65, - 321, - 832, - 1088, - 978, - 211, - 467, - 723, - 1234, - 1124, - 357, 102, - 613, - 869, - 1380, 759, 1015, 1270, 503, - 248, - ): list([ - 168, - ]), - tuple( - 1417, - 650, - 139, - 395, - 906, - 1162, - 796, - 541, - 285, - 29, - 1052, - 1308, - 942, - 175, - 431, - 687, - 1198, - 1344, - 577, - 66, - 322, - 833, - 1089, - 723, - 212, - 468, - 979, - 1235, - 1016, - 248, - 869, - 102, - 358, - 614, - 1125, - 1381, - 760, - 1271, - 504, + 248, ): list([ - 176, + 167, + 168, + 169, ]), tuple( 1417, @@ -20712,10 +12923,14 @@ 29, 1052, 1308, - 1198, + 30, + 797, + 942, + 175, 431, - 176, 687, + 1198, + 176, 943, 1344, 577, @@ -20728,1074 +12943,908 @@ 468, 979, 1235, + 724, 1016, - 1125, + 248, + 869, 102, 358, 614, - 870, - 1381, - 760, - 1271, - 504, - 249, - ): list([ - 177, - ]), - tuple( - 1417, - 650, - 139, - 395, - 906, - 1162, - 1052, - 541, - 285, - 30, - 797, - 1308, - 1198, - 431, - 176, - 687, - 943, - 1344, - 577, - 66, - 322, - 833, - 1089, - 979, - 212, - 468, - 724, - 1235, - 1016, 1125, - 358, - 103, - 614, - 870, 1381, + 870, + 103, 760, 1271, 504, 249, ): list([ - 178, - ]), - tuple( - 1418, - 651, - 140, - 396, - 907, - 1163, - 797, - 542, - 30, - 286, - 1053, - 1309, - 943, 176, - 432, - 688, - 1199, - 1345, - 578, - 67, - 323, - 834, - 1090, - 724, - 213, - 469, - 980, - 1236, - 249, - 870, - 103, - 359, - 615, - 1126, - 1382, - 761, - 1272, - 505, - 1017, - ): list([ - 186, - ]), - tuple( - 1418, - 651, - 140, - 396, - 907, - 1163, - 797, - 542, - 30, - 286, - 1053, - 1309, - 1199, - 432, - 177, - 688, - 944, - 1345, - 578, - 67, - 323, - 834, - 1090, - 724, - 213, - 469, - 980, - 1236, - 1126, - 103, - 359, - 615, - 871, - 1382, - 761, - 1272, - 505, - 250, - 1017, - ): list([ - 187, - ]), - tuple( - 1418, - 651, - 140, - 396, - 907, - 1163, - 1053, - 542, - 286, - 31, - 798, - 1309, - 1199, - 432, 177, - 688, - 944, - 1345, - 578, - 67, - 323, - 834, - 1090, - 980, - 213, - 469, - 725, - 1236, - 1126, - 359, - 104, - 615, - 871, - 1382, - 761, - 1272, - 505, - 250, - 1017, - ): list([ - 188, + 178, ]), }) # --- # name: test_snapshot_cohorts[PerfectBlockwiseResampling] dict({ tuple( - np.int64(0), + 0, ): list([ 0, 1, ]), tuple( - np.int64(1), + 1, ): list([ 2, 3, ]), tuple( - np.int64(2), + 2, ): list([ 4, 5, ]), tuple( - np.int64(3), + 3, ): list([ 6, 7, ]), tuple( - np.int64(4), + 4, ): list([ 8, 9, ]), tuple( - np.int64(5), + 5, ): list([ 10, 11, ]), tuple( - np.int64(6), + 6, ): list([ 12, 13, ]), tuple( - np.int64(7), + 7, ): list([ 14, 15, ]), tuple( - np.int64(8), + 8, ): list([ 16, 17, ]), tuple( - np.int64(9), + 9, ): list([ 18, 19, ]), tuple( - np.int64(10), + 10, ): list([ 20, 21, ]), tuple( - np.int64(11), + 11, ): list([ 22, 23, ]), tuple( - np.int64(12), + 12, ): list([ 24, 25, ]), tuple( - np.int64(13), + 13, ): list([ 26, 27, ]), tuple( - np.int64(14), + 14, ): list([ 28, 29, ]), tuple( - np.int64(15), + 15, ): list([ 30, 31, ]), tuple( - np.int64(16), + 16, ): list([ 32, 33, ]), tuple( - np.int64(17), + 17, ): list([ 34, 35, ]), tuple( - np.int64(18), + 18, ): list([ 36, 37, ]), tuple( - np.int64(19), + 19, ): list([ 38, 39, ]), tuple( - np.int64(20), + 20, ): list([ 40, 41, ]), tuple( - np.int64(21), + 21, ): list([ 42, 43, ]), tuple( - np.int64(22), + 22, ): list([ 44, 45, ]), tuple( - np.int64(23), + 23, ): list([ 46, 47, ]), tuple( - np.int64(24), + 24, ): list([ 48, 49, ]), tuple( - np.int64(25), + 25, ): list([ 50, 51, ]), tuple( - np.int64(26), + 26, ): list([ 52, 53, ]), tuple( - np.int64(27), + 27, ): list([ 54, 55, ]), tuple( - np.int64(28), + 28, ): list([ 56, 57, ]), tuple( - np.int64(29), + 29, ): list([ 58, 59, ]), tuple( - np.int64(30), + 30, ): list([ 60, 61, ]), tuple( - np.int64(31), + 31, ): list([ 62, 63, ]), tuple( - np.int64(32), + 32, ): list([ 64, 65, ]), tuple( - np.int64(33), + 33, ): list([ 66, 67, ]), tuple( - np.int64(34), + 34, ): list([ 68, 69, ]), tuple( - np.int64(35), + 35, ): list([ 70, 71, ]), tuple( - np.int64(36), + 36, ): list([ 72, 73, ]), tuple( - np.int64(37), + 37, ): list([ 74, 75, ]), tuple( - np.int64(38), + 38, ): list([ 76, 77, ]), tuple( - np.int64(39), + 39, ): list([ 78, 79, ]), tuple( - np.int64(40), + 40, ): list([ 80, 81, ]), tuple( - np.int64(41), + 41, ): list([ 82, 83, ]), tuple( - np.int64(42), + 42, ): list([ 84, 85, ]), tuple( - np.int64(43), + 43, ): list([ 86, 87, ]), tuple( - np.int64(44), + 44, ): list([ 88, 89, ]), tuple( - np.int64(45), + 45, ): list([ 90, 91, ]), tuple( - np.int64(46), + 46, ): list([ 92, 93, ]), tuple( - np.int64(47), + 47, ): list([ 94, 95, ]), tuple( - np.int64(48), + 48, ): list([ 96, 97, ]), tuple( - np.int64(49), + 49, ): list([ 98, 99, ]), tuple( - np.int64(50), + 50, ): list([ 100, 101, ]), tuple( - np.int64(51), + 51, ): list([ 102, 103, ]), tuple( - np.int64(52), + 52, ): list([ 104, 105, ]), tuple( - np.int64(53), + 53, ): list([ 106, 107, ]), tuple( - np.int64(54), + 54, ): list([ 108, 109, ]), tuple( - np.int64(55), + 55, ): list([ 110, 111, ]), tuple( - np.int64(56), + 56, ): list([ 112, 113, ]), tuple( - np.int64(57), + 57, ): list([ 114, 115, ]), tuple( - np.int64(58), + 58, ): list([ 116, 117, ]), tuple( - np.int64(59), + 59, ): list([ 118, 119, ]), tuple( - np.int64(60), + 60, ): list([ 120, 121, ]), tuple( - np.int64(61), + 61, ): list([ 122, 123, ]), tuple( - np.int64(62), + 62, ): list([ 124, 125, ]), tuple( - np.int64(63), + 63, ): list([ 126, 127, ]), tuple( - np.int64(64), + 64, ): list([ 128, 129, ]), tuple( - np.int64(65), + 65, ): list([ 130, 131, ]), tuple( - np.int64(66), + 66, ): list([ 132, 133, ]), tuple( - np.int64(67), + 67, ): list([ 134, 135, ]), tuple( - np.int64(68), + 68, ): list([ 136, 137, ]), tuple( - np.int64(69), + 69, ): list([ 138, 139, ]), tuple( - np.int64(70), + 70, ): list([ 140, 141, ]), tuple( - np.int64(71), + 71, ): list([ 142, 143, ]), tuple( - np.int64(72), + 72, ): list([ 144, 145, ]), tuple( - np.int64(73), + 73, ): list([ 146, 147, ]), tuple( - np.int64(74), + 74, ): list([ 148, 149, ]), tuple( - np.int64(75), + 75, ): list([ 150, 151, ]), tuple( - np.int64(76), + 76, ): list([ 152, 153, ]), tuple( - np.int64(77), + 77, ): list([ 154, 155, ]), tuple( - np.int64(78), + 78, ): list([ 156, 157, ]), tuple( - np.int64(79), + 79, ): list([ 158, 159, ]), tuple( - np.int64(80), + 80, ): list([ 160, 161, ]), tuple( - np.int64(81), + 81, ): list([ 162, 163, ]), tuple( - np.int64(82), + 82, ): list([ 164, 165, ]), tuple( - np.int64(83), + 83, ): list([ 166, 167, ]), tuple( - np.int64(84), + 84, ): list([ 168, 169, ]), tuple( - np.int64(85), + 85, ): list([ 170, 171, ]), tuple( - np.int64(86), + 86, ): list([ 172, 173, ]), tuple( - np.int64(87), + 87, ): list([ 174, 175, ]), tuple( - np.int64(88), + 88, ): list([ 176, 177, ]), tuple( - np.int64(89), + 89, ): list([ 178, 179, ]), tuple( - np.int64(90), + 90, ): list([ 180, 181, ]), tuple( - np.int64(91), + 91, ): list([ 182, 183, ]), tuple( - np.int64(92), + 92, ): list([ 184, 185, ]), tuple( - np.int64(93), + 93, ): list([ 186, 187, ]), tuple( - np.int64(94), + 94, ): list([ 188, 189, ]), tuple( - np.int64(95), + 95, ): list([ 190, 191, ]), tuple( - np.int64(96), + 96, ): list([ 192, 193, ]), tuple( - np.int64(97), + 97, ): list([ 194, 195, ]), tuple( - np.int64(98), + 98, ): list([ 196, 197, ]), tuple( - np.int64(99), + 99, ): list([ 198, 199, ]), tuple( - np.int64(100), + 100, ): list([ 200, 201, ]), tuple( - np.int64(101), + 101, ): list([ 202, 203, ]), tuple( - np.int64(102), + 102, ): list([ 204, 205, ]), tuple( - np.int64(103), + 103, ): list([ 206, 207, ]), tuple( - np.int64(104), + 104, ): list([ 208, 209, ]), tuple( - np.int64(105), + 105, ): list([ 210, 211, ]), tuple( - np.int64(106), + 106, ): list([ 212, 213, ]), tuple( - np.int64(107), + 107, ): list([ 214, 215, ]), tuple( - np.int64(108), + 108, ): list([ 216, 217, ]), tuple( - np.int64(109), + 109, ): list([ 218, 219, ]), tuple( - np.int64(110), + 110, ): list([ 220, 221, ]), tuple( - np.int64(111), + 111, ): list([ 222, 223, ]), tuple( - np.int64(112), + 112, ): list([ 224, 225, ]), tuple( - np.int64(113), + 113, ): list([ 226, 227, ]), tuple( - np.int64(114), + 114, ): list([ 228, 229, ]), tuple( - np.int64(115), + 115, ): list([ 230, 231, ]), tuple( - np.int64(116), + 116, ): list([ 232, 233, ]), tuple( - np.int64(117), + 117, ): list([ 234, 235, ]), tuple( - np.int64(118), + 118, ): list([ 236, 237, ]), tuple( - np.int64(119), + 119, ): list([ 238, 239, ]), tuple( - np.int64(120), + 120, ): list([ 240, 241, ]), tuple( - np.int64(121), + 121, ): list([ 242, 243, ]), tuple( - np.int64(122), + 122, ): list([ 244, 245, ]), tuple( - np.int64(123), + 123, ): list([ 246, 247, ]), tuple( - np.int64(124), + 124, ): list([ 248, 249, ]), tuple( - np.int64(125), + 125, ): list([ 250, 251, ]), tuple( - np.int64(126), + 126, ): list([ 252, 253, ]), tuple( - np.int64(127), + 127, ): list([ 254, 255, ]), tuple( - np.int64(128), + 128, ): list([ 256, 257, ]), tuple( - np.int64(129), + 129, ): list([ 258, 259, ]), tuple( - np.int64(130), + 130, ): list([ 260, 261, ]), tuple( - np.int64(131), + 131, ): list([ 262, 263, ]), tuple( - np.int64(132), + 132, ): list([ 264, 265, ]), tuple( - np.int64(133), + 133, ): list([ 266, 267, ]), tuple( - np.int64(134), + 134, ): list([ 268, 269, ]), tuple( - np.int64(135), + 135, ): list([ 270, 271, ]), tuple( - np.int64(136), + 136, ): list([ 272, 273, ]), tuple( - np.int64(137), + 137, ): list([ 274, 275, ]), tuple( - np.int64(138), + 138, ): list([ 276, 277, ]), tuple( - np.int64(139), + 139, ): list([ 278, 279, ]), tuple( - np.int64(140), + 140, ): list([ 280, 281, ]), tuple( - np.int64(141), + 141, ): list([ 282, 283, ]), tuple( - np.int64(142), + 142, ): list([ 284, 285, ]), tuple( - np.int64(143), + 143, ): list([ 286, 287, ]), tuple( - np.int64(144), + 144, ): list([ 288, 289, ]), tuple( - np.int64(145), + 145, ): list([ 290, 291, ]), tuple( - np.int64(146), + 146, ): list([ 292, ]), @@ -21804,64 +13853,64 @@ # name: test_snapshot_cohorts[PerfectMonthly] dict({ tuple( - np.int64(0), - np.int64(3), - np.int64(6), - np.int64(9), - np.int64(12), - np.int64(15), - np.int64(18), - np.int64(21), - np.int64(24), - np.int64(27), - np.int64(30), - np.int64(33), - np.int64(36), - np.int64(39), - np.int64(42), - np.int64(45), - np.int64(48), - np.int64(51), - np.int64(54), - np.int64(57), - np.int64(60), - np.int64(63), - np.int64(66), - np.int64(69), - np.int64(72), - np.int64(75), - np.int64(78), - np.int64(81), - np.int64(84), - np.int64(87), - np.int64(90), - np.int64(93), - np.int64(96), - np.int64(99), - np.int64(102), - np.int64(105), - np.int64(108), - np.int64(111), - np.int64(114), - np.int64(117), - np.int64(120), - np.int64(123), - np.int64(126), - np.int64(129), - np.int64(132), - np.int64(135), - np.int64(138), - np.int64(141), - np.int64(144), - np.int64(147), - np.int64(150), - np.int64(153), - np.int64(156), - np.int64(159), - np.int64(162), - np.int64(165), - np.int64(168), - np.int64(171), + 0, + 3, + 6, + 9, + 12, + 15, + 18, + 21, + 24, + 27, + 30, + 33, + 36, + 39, + 42, + 45, + 48, + 51, + 54, + 57, + 60, + 63, + 66, + 69, + 72, + 75, + 78, + 81, + 84, + 87, + 90, + 93, + 96, + 99, + 102, + 105, + 108, + 111, + 114, + 117, + 120, + 123, + 126, + 129, + 132, + 135, + 138, + 141, + 144, + 147, + 150, + 153, + 156, + 159, + 162, + 165, + 168, + 171, ): list([ 0, 1, @@ -21869,64 +13918,64 @@ 3, ]), tuple( - np.int64(1), - np.int64(4), - np.int64(7), - np.int64(10), - np.int64(13), - np.int64(16), - np.int64(19), - np.int64(22), - np.int64(25), - np.int64(28), - np.int64(31), - np.int64(34), - np.int64(37), - np.int64(40), - np.int64(43), - np.int64(46), - np.int64(49), - np.int64(52), - np.int64(55), - np.int64(58), - np.int64(61), - np.int64(64), - np.int64(67), - np.int64(70), - np.int64(73), - np.int64(76), - np.int64(79), - np.int64(82), - np.int64(85), - np.int64(88), - np.int64(91), - np.int64(94), - np.int64(97), - np.int64(100), - np.int64(103), - np.int64(106), - np.int64(109), - np.int64(112), - np.int64(115), - np.int64(118), - np.int64(121), - np.int64(124), - np.int64(127), - np.int64(130), - np.int64(133), - np.int64(136), - np.int64(139), - np.int64(142), - np.int64(145), - np.int64(148), - np.int64(151), - np.int64(154), - np.int64(157), - np.int64(160), - np.int64(163), - np.int64(166), - np.int64(169), - np.int64(172), + 1, + 4, + 7, + 10, + 13, + 16, + 19, + 22, + 25, + 28, + 31, + 34, + 37, + 40, + 43, + 46, + 49, + 52, + 55, + 58, + 61, + 64, + 67, + 70, + 73, + 76, + 79, + 82, + 85, + 88, + 91, + 94, + 97, + 100, + 103, + 106, + 109, + 112, + 115, + 118, + 121, + 124, + 127, + 130, + 133, + 136, + 139, + 142, + 145, + 148, + 151, + 154, + 157, + 160, + 163, + 166, + 169, + 172, ): list([ 4, 5, @@ -21934,64 +13983,64 @@ 7, ]), tuple( - np.int64(2), - np.int64(5), - np.int64(8), - np.int64(11), - np.int64(14), - np.int64(17), - np.int64(20), - np.int64(23), - np.int64(26), - np.int64(29), - np.int64(32), - np.int64(35), - np.int64(38), - np.int64(41), - np.int64(44), - np.int64(47), - np.int64(50), - np.int64(53), - np.int64(56), - np.int64(59), - np.int64(62), - np.int64(65), - np.int64(68), - np.int64(71), - np.int64(74), - np.int64(77), - np.int64(80), - np.int64(83), - np.int64(86), - np.int64(89), - np.int64(92), - np.int64(95), - np.int64(98), - np.int64(101), - np.int64(104), - np.int64(107), - np.int64(110), - np.int64(113), - np.int64(116), - np.int64(119), - np.int64(122), - np.int64(125), - np.int64(128), - np.int64(131), - np.int64(134), - np.int64(137), - np.int64(140), - np.int64(143), - np.int64(146), - np.int64(149), - np.int64(152), - np.int64(155), - np.int64(158), - np.int64(161), - np.int64(164), - np.int64(167), - np.int64(170), - np.int64(173), + 2, + 5, + 8, + 11, + 14, + 17, + 20, + 23, + 26, + 29, + 32, + 35, + 38, + 41, + 44, + 47, + 50, + 53, + 56, + 59, + 62, + 65, + 68, + 71, + 74, + 77, + 80, + 83, + 86, + 89, + 92, + 95, + 98, + 101, + 104, + 107, + 110, + 113, + 116, + 119, + 122, + 125, + 128, + 131, + 134, + 137, + 140, + 143, + 146, + 149, + 152, + 155, + 158, + 161, + 164, + 167, + 170, + 173, ): list([ 8, 9, From b05586c3a3dac2aacc6a7d04ee77c7ab7182a493 Mon Sep 17 00:00:00 2001 From: Deepak Cherian Date: Tue, 6 Aug 2024 22:08:27 -0600 Subject: [PATCH 6/7] Fix docs build (#382) * [skip-ci] Bump furo * [skip-ci] bump rtd config * fix docs --- ci/docs.yml | 2 +- flox/__init__.py | 2 +- readthedocs.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ci/docs.yml b/ci/docs.yml index 1ad62512e..50bf98829 100644 --- a/ci/docs.yml +++ b/ci/docs.yml @@ -16,7 +16,7 @@ dependencies: - myst-parser - myst-nb - sphinx - - furo + - furo>=2024.08 - ipykernel - jupyter - sphinx-codeautolink diff --git a/flox/__init__.py b/flox/__init__.py index 2ca5fa5ba..839bfb076 100644 --- a/flox/__init__.py +++ b/flox/__init__.py @@ -2,7 +2,7 @@ # flake8: noqa """Top-level module for flox .""" from . import cache -from .aggregations import Aggregation # noqa +from .aggregations import Aggregation, Scan # noqa from .core import groupby_reduce, groupby_scan, rechunk_for_blockwise, rechunk_for_cohorts # noqa diff --git a/readthedocs.yml b/readthedocs.yml index 25699dd03..51b6b6b18 100644 --- a/readthedocs.yml +++ b/readthedocs.yml @@ -1,9 +1,9 @@ version: 2 build: - os: "ubuntu-20.04" + os: "ubuntu-lts-latest" tools: - python: "mambaforge-4.10" + python: "mambaforge-latest" conda: environment: ci/docs.yml From f0ce3438f13f3281ca274007ce45ff7be0ba6fdf Mon Sep 17 00:00:00 2001 From: Deepak Cherian Date: Tue, 6 Aug 2024 22:37:33 -0600 Subject: [PATCH 7/7] Fix first, last again (#381) * Fix first, last again Add more first, last tests * Fix * fix type ignores * Add one more property test * Support cohorts and grouped_combine * fix docs * fix profile --- flox/core.py | 52 ++++++++++++++++------ tests/conftest.py | 3 +- tests/test_core.py | 93 +++++++++++++++++++++++++++++++++++++--- tests/test_properties.py | 15 +++++++ 4 files changed, 143 insertions(+), 20 deletions(-) diff --git a/flox/core.py b/flox/core.py index 1c9599a15..d7fa5f6a0 100644 --- a/flox/core.py +++ b/flox/core.py @@ -170,7 +170,9 @@ def _is_minmax_reduction(func: T_Agg) -> bool: def _is_first_last_reduction(func: T_Agg) -> bool: - return isinstance(func, str) and func in ["nanfirst", "nanlast", "first", "last"] + if isinstance(func, Aggregation): + func = func.name + return func in ["nanfirst", "nanlast", "first", "last"] def _get_expected_groups(by: T_By, sort: bool) -> T_ExpectIndex: @@ -1642,7 +1644,12 @@ def dask_groupby_agg( # This allows us to discover groups at compute time, support argreductions, lower intermediate # memory usage (but method="cohorts" would also work to reduce memory in some cases) labels_are_unknown = is_duck_dask_array(by_input) and expected_groups is None - do_simple_combine = not _is_arg_reduction(agg) and not labels_are_unknown + do_grouped_combine = ( + _is_arg_reduction(agg) + or labels_are_unknown + or (_is_first_last_reduction(agg) and array.dtype.kind != "f") + ) + do_simple_combine = not do_grouped_combine if method == "blockwise": # use the "non dask" code path, but applied blockwise @@ -1698,7 +1705,7 @@ def dask_groupby_agg( tree_reduce = partial( dask.array.reductions._tree_reduce, - name=f"{name}-reduce", + name=f"{name}-simple-reduce", dtype=array.dtype, axis=axis, keepdims=True, @@ -1733,14 +1740,20 @@ def dask_groupby_agg( groups_ = [] for blks, cohort in chunks_cohorts.items(): cohort_index = pd.Index(cohort) - reindexer = partial(reindex_intermediates, agg=agg, unique_groups=cohort_index) + reindexer = ( + partial(reindex_intermediates, agg=agg, unique_groups=cohort_index) + if do_simple_combine + else identity + ) reindexed = subset_to_blocks(intermediate, blks, block_shape, reindexer) # now that we have reindexed, we can set reindex=True explicitlly reduced_.append( tree_reduce( reindexed, - combine=partial(combine, agg=agg, reindex=True), - aggregate=partial(aggregate, expected_groups=cohort_index, reindex=True), + combine=partial(combine, agg=agg, reindex=do_simple_combine), + aggregate=partial( + aggregate, expected_groups=cohort_index, reindex=do_simple_combine + ), ) ) # This is done because pandas promotes to 64-bit types when an Index is created @@ -1986,8 +1999,13 @@ def _validate_reindex( expected_groups, any_by_dask: bool, is_dask_array: bool, + array_dtype: Any, ) -> bool | None: # logger.debug("Entering _validate_reindex: reindex is {}".format(reindex)) # noqa + def first_or_last(): + return func in ["first", "last"] or ( + _is_first_last_reduction(func) and array_dtype.kind != "f" + ) all_numpy = not is_dask_array and not any_by_dask if reindex is True and not all_numpy: @@ -1997,7 +2015,7 @@ def _validate_reindex( raise ValueError( "reindex=True is not a valid choice for method='blockwise' or method='cohorts'." ) - if func in ["first", "last"]: + if first_or_last(): raise ValueError("reindex must be None or False when func is 'first' or 'last.") if reindex is None: @@ -2008,9 +2026,10 @@ def _validate_reindex( if all_numpy: return True - if func in ["first", "last"]: + if first_or_last(): # have to do the grouped_combine since there's no good fill_value - reindex = False + # Also needed for nanfirst, nanlast with no-NaN dtypes + return False if method == "blockwise": # for grouping by dask arrays, we set reindex=True @@ -2412,12 +2431,19 @@ def groupby_reduce( if method == "cohorts" and any_by_dask: raise ValueError(f"method={method!r} can only be used when grouping by numpy arrays.") + if not is_duck_array(array): + array = np.asarray(array) + reindex = _validate_reindex( - reindex, func, method, expected_groups, any_by_dask, is_duck_dask_array(array) + reindex, + func, + method, + expected_groups, + any_by_dask, + is_duck_dask_array(array), + array.dtype, ) - if not is_duck_array(array): - array = np.asarray(array) is_bool_array = np.issubdtype(array.dtype, bool) array = array.astype(np.intp) if is_bool_array else array @@ -2601,7 +2627,7 @@ def groupby_reduce( # TODO: clean this up reindex = _validate_reindex( - reindex, func, method, expected_, any_by_dask, is_duck_dask_array(array) + reindex, func, method, expected_, any_by_dask, is_duck_dask_array(array), array.dtype ) if TYPE_CHECKING: diff --git a/tests/conftest.py b/tests/conftest.py index b3a0ab932..4413ea1e8 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -10,11 +10,12 @@ suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow], ) settings.register_profile( - "local", + "default", max_examples=300, suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow], verbosity=Verbosity.verbose, ) +settings.load_profile("default") @pytest.fixture( diff --git a/tests/test_core.py b/tests/test_core.py index e12e695db..540e32c03 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -613,6 +613,33 @@ def test_dask_reduce_axis_subset(): ) +@pytest.mark.parametrize("group_idx", [[0, 1, 0], [0, 0, 1], [1, 0, 0], [1, 1, 0]]) +@pytest.mark.parametrize( + "func", + [ + # "first", "last", + "nanfirst", + "nanlast", + ], +) +@pytest.mark.parametrize( + "chunks", + [ + None, + pytest.param(1, marks=pytest.mark.skipif(not has_dask, reason="no dask")), + pytest.param(2, marks=pytest.mark.skipif(not has_dask, reason="no dask")), + pytest.param(3, marks=pytest.mark.skipif(not has_dask, reason="no dask")), + ], +) +def test_first_last_useless(func, chunks, group_idx): + array = np.array([[0, 0, 0], [0, 0, 0]], dtype=np.int8) + if chunks is not None: + array = dask.array.from_array(array, chunks=chunks) + actual, _ = groupby_reduce(array, np.array(group_idx), func=func, engine="numpy") + expected = np.array([[0, 0], [0, 0]], dtype=np.int8) + assert_equal(actual, expected) + + @pytest.mark.parametrize("func", ["first", "last", "nanfirst", "nanlast"]) @pytest.mark.parametrize("axis", [(0, 1)]) def test_first_last_disallowed(axis, func): @@ -1563,18 +1590,36 @@ def test_validate_reindex_map_reduce( dask_expected, reindex, func, expected_groups, any_by_dask ) -> None: actual = _validate_reindex( - reindex, func, "map-reduce", expected_groups, any_by_dask, is_dask_array=True + reindex, + func, + "map-reduce", + expected_groups, + any_by_dask, + is_dask_array=True, + array_dtype=np.dtype("int32"), ) assert actual is dask_expected # always reindex with all numpy inputs actual = _validate_reindex( - reindex, func, "map-reduce", expected_groups, any_by_dask=False, is_dask_array=False + reindex, + func, + "map-reduce", + expected_groups, + any_by_dask=False, + is_dask_array=False, + array_dtype=np.dtype("int32"), ) assert actual actual = _validate_reindex( - True, func, "map-reduce", expected_groups, any_by_dask=False, is_dask_array=False + True, + func, + "map-reduce", + expected_groups, + any_by_dask=False, + is_dask_array=False, + array_dtype=np.dtype("int32"), ) assert actual @@ -1584,19 +1629,37 @@ def test_validate_reindex() -> None: for method in methods: with pytest.raises(NotImplementedError): _validate_reindex( - True, "argmax", method, expected_groups=None, any_by_dask=False, is_dask_array=True + True, + "argmax", + method, + expected_groups=None, + any_by_dask=False, + is_dask_array=True, + array_dtype=np.dtype("int32"), ) methods: list[T_Method] = ["blockwise", "cohorts"] for method in methods: with pytest.raises(ValueError): _validate_reindex( - True, "sum", method, expected_groups=None, any_by_dask=False, is_dask_array=True + True, + "sum", + method, + expected_groups=None, + any_by_dask=False, + is_dask_array=True, + array_dtype=np.dtype("int32"), ) for func in ["sum", "argmax"]: actual = _validate_reindex( - None, func, method, expected_groups=None, any_by_dask=False, is_dask_array=True + None, + func, + method, + expected_groups=None, + any_by_dask=False, + is_dask_array=True, + array_dtype=np.dtype("int32"), ) assert actual is False @@ -1608,6 +1671,7 @@ def test_validate_reindex() -> None: expected_groups=np.array([1, 2, 3]), any_by_dask=False, is_dask_array=True, + array_dtype=np.dtype("int32"), ) assert _validate_reindex( @@ -1617,6 +1681,7 @@ def test_validate_reindex() -> None: expected_groups=np.array([1, 2, 3]), any_by_dask=True, is_dask_array=True, + array_dtype=np.dtype("int32"), ) assert _validate_reindex( None, @@ -1625,8 +1690,24 @@ def test_validate_reindex() -> None: expected_groups=np.array([1, 2, 3]), any_by_dask=True, is_dask_array=True, + array_dtype=np.dtype("int32"), + ) + + kwargs = dict( + method="blockwise", + expected_groups=np.array([1, 2, 3]), + any_by_dask=True, + is_dask_array=True, ) + for func in ["nanfirst", "nanlast"]: + assert not _validate_reindex(None, func, array_dtype=np.dtype("int32"), **kwargs) # type: ignore[arg-type] + assert _validate_reindex(None, func, array_dtype=np.dtype("float32"), **kwargs) # type: ignore[arg-type] + + for func in ["first", "last"]: + assert not _validate_reindex(None, func, array_dtype=np.dtype("int32"), **kwargs) # type: ignore[arg-type] + assert not _validate_reindex(None, func, array_dtype=np.dtype("float32"), **kwargs) # type: ignore[arg-type] + @requires_dask def test_1d_blockwise_sort_optimization(): diff --git a/tests/test_properties.py b/tests/test_properties.py index 6fef85b3a..c032f0742 100644 --- a/tests/test_properties.py +++ b/tests/test_properties.py @@ -9,6 +9,7 @@ pytest.importorskip("cftime") import dask +import hypothesis.extra.numpy as npst import hypothesis.strategies as st import numpy as np from hypothesis import assume, given, note @@ -19,6 +20,7 @@ from . import assert_equal from .strategies import by_arrays, chunked_arrays, func_st, numeric_arrays +from .strategies import chunks as chunks_strategy dask.config.set(scheduler="sync") @@ -208,3 +210,16 @@ def test_first_last(data, array: dask.array.Array, func: str) -> None: first, *_ = groupby_reduce(array, by, func=func, engine="flox") second, *_ = groupby_reduce(array, by, func=mate, engine="flox") assert_equal(first, second) + + +@given(data=st.data(), func=st.sampled_from(["nanfirst", "nanlast"])) +def test_first_last_useless(data, func): + shape = data.draw(npst.array_shapes()) + by = data.draw(by_arrays(shape=shape[slice(-1, None)])) + chunks = data.draw(chunks_strategy(shape=shape)) + array = np.zeros(shape, dtype=np.int8) + if chunks is not None: + array = dask.array.from_array(array, chunks=chunks) + actual, groups = groupby_reduce(array, by, axis=-1, func=func, engine="numpy") + expected = np.zeros(shape[:-1] + (len(groups),), dtype=array.dtype) + assert_equal(actual, expected)