diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.gitattributes" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.gitattributes" new file mode 100644 index 0000000000000000000000000000000000000000..866626be330b1aa31a7e37a77442024ec92b66d2 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.gitattributes" @@ -0,0 +1,2 @@ +tests/*.in binary +tests/*.best linguist-generated=true diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.github/workflows/ci.yml" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.github/workflows/ci.yml" new file mode 100644 index 0000000000000000000000000000000000000000..5d7cc9274b059c5d93206c72495182ff139ade4f --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.github/workflows/ci.yml" @@ -0,0 +1,21 @@ +name: Continuous Integration + +on: + push: + branches: [main] + pull_request: + workflow_dispatch: + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v5 + - uses: astral-sh/setup-uv@v7 + - name: Install dependencies + run: uv sync + - name: Build the official checker + run: make -C official-checker + - name: Run tests + run: CHECKER=$(realpath official-checker/checker) bin/run-tests diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.github/workflows/fuzz.yml" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.github/workflows/fuzz.yml" new file mode 100644 index 0000000000000000000000000000000000000000..2a3908a24adcea5d23e69347ea50c27bfd2107dc --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.github/workflows/fuzz.yml" @@ -0,0 +1,47 @@ +name: Fuzzing + +on: + workflow_dispatch: + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v5 + - uses: astral-sh/setup-uv@v7 + - name: Install dependencies + run: uv sync + - name: Build the official checker + run: make -C official-checker + - name: Run fuzzing tests + id: fuzzing + continue-on-error: true + run: CHECKER=$(realpath official-checker/checker) bin/run-fuzzing + - name: Collect untracked test cases + if: steps.fuzzing.outcome == 'failure' + run: | + # Find all untracked gen*.in files in tests/ + git ls-files --others --exclude-standard tests/gen*.in > /tmp/untracked-tests.txt + if [ -s /tmp/untracked-tests.txt ]; then + echo "Found untracked test cases:" + cat /tmp/untracked-tests.txt + # Create a directory to store untracked files + mkdir -p /tmp/failed-cases + while IFS= read -r file; do + cp "$file" /tmp/failed-cases/ + done < /tmp/untracked-tests.txt + else + echo "No untracked test cases found" + fi + - name: Upload failed test cases + if: steps.fuzzing.outcome == 'failure' + uses: actions/upload-artifact@v4 + with: + name: fuzzing-failed-cases + path: /tmp/failed-cases/ + if-no-files-found: warn + retention-days: 30 + - name: Fail if fuzzing failed + if: steps.fuzzing.outcome == 'failure' + run: exit 1 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.gitignore" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..23fb475672412b57315ce81a7203513aa382a5e4 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.gitignore" @@ -0,0 +1,3 @@ +__pycache__/ +.venv/ + diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.python-version" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.python-version" new file mode 100644 index 0000000000000000000000000000000000000000..24ee5b1be9961e38a503c8e764b7385dbb6ba124 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.python-version" @@ -0,0 +1 @@ +3.13 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.vscode/settings.json" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.vscode/settings.json" new file mode 100644 index 0000000000000000000000000000000000000000..c846806d69e2a638c2d29f97a75c0370dcd66f97 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/.vscode/settings.json" @@ -0,0 +1,8 @@ +{ + "editor.formatOnSave": true, + "editor.trimAutoWhitespace": true, + "files.insertFinalNewline": true, + "[python]": { + "editor.defaultFormatter": "charliermarsh.ruff", + } +} diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/README.EN.md" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/README.EN.md" new file mode 100644 index 0000000000000000000000000000000000000000..3ef04c7a216881ab804482db5b37bbe39ef55c52 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/README.EN.md" @@ -0,0 +1,71 @@ +# Scripts for ChinaSoft 2025 - Heterogeneous Memory Challenge +[中文](README.md) | English +## Getting Started + +### Setup Environment + +Use [`uv`](https://docs.astral.sh/uv/) to manage python dependencies. Run the following command to install dependencies and set up the environment: + +```console +$ uv sync +$ source .venv/bin/activate +``` + +### Example Usage + +To solve a specific test case (e.g., `tests/basic0.in`), run: + +```console +$ bin/solve -i tests/basic0.in -o tests/basic0.out # Solve the test case +$ bin/validate -i tests/basic0.in -o tests/basic0.out # Validate the output +$ bin/visualise -i tests/basic0.in -o tests/basic0.out -p tests/basic0.png # Visualize the result +``` + +For more details on each command, see [Toolbox](#toolkit) below. + +### Running Tests + +There are many test cases in the `tests` directory. You can run the following commands to execute all tests: + +```console +$ # Only use validator to check outputs +$ bin/run-tests +$ # Build official checker and use both of them to check outputs +$ make -C official-checker +$ CHECKER=$(realpath official-checker/checker) bin/run-tests +``` + +## Toolkit + +```console +$ tree ./bin +bin +├── run-comparison +├── run-fuzzing +├── run-tests +├── toolkit -> ../main.py +├── data-gen -> toolkit +├── compare -> toolkit +├── solve -> toolkit +├── validate -> toolkit +└── visualise -> toolkit +``` + +* `run-comparison` generates comparison reports based on test results under the `./tests` directory. +* `run-fuzzing` runs fuzzing tests. +* `run-tests` runs all the tests under `./tests` directory. +* `data-gen`, `compare`, `solve`, `validate`, and `visualise` are symlinks to `main.py` with different default modes. You can see their usage by running: + +```console +$ bin/data-gen --help +$ bin/compare --help +$ bin/solve --help +$ bin/validate --help +$ bin/visualise --help +``` + +## Design Documentation + +Design documents are located in the `docs/` directory: +- [`Algorithms Docs`](./docs/algo-doc.md): Algorithm design and implementation details +- [`System Design Docs`](./docs/sys-design-doc.md): System design and architecture diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/README.md" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..d9313ffbec7653b4a9bbbc89b3cc3bdb270880d7 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/README.md" @@ -0,0 +1,72 @@ +# ChinaSoft 2025 — 基于异构算力的系统编程竞赛 +中文 | [English](README.EN.md) +## 开始使用 + +### 环境设置 + +使用 [`uv`](https://docs.astral.sh/uv/) 来管理 Python 依赖。运行下面命令以安装依赖并设置虚拟环境: + +```console +$ uv sync +$ source .venv/bin/activate +``` + +### 示例用法 + +求解某个测试用例(例如 `tests/basic0.in`)可以运行: + +```console +$ bin/solve -i tests/basic0.in -o tests/basic0.out # 运行求解并写入输出 +$ bin/validate -i tests/basic0.in -o tests/basic0.out # 校验输出是否正确 +$ bin/visualise -i tests/basic0.in -o tests/basic0.out -p tests/basic0.png # 可视化结果并保存为图片 +``` + +更多详细的命令说明见下方 **Toolkit** 部分。 + +### 运行测试 + +`tests` 目录下存有大量测试用例。可以运行下面命令来执行所有测试: + +```console +$ # Only use validator to check outputs +$ bin/run-tests +$ # Build official checker and use both of them to check outputs +$ make -C official-checker +$ CHECKER=$(realpath official-checker/checker) bin/run-tests +``` + +## 工具箱(Toolkit) + +```console +$ tree ./bin +bin +├── run-comparison +├── run-fuzzing +├── run-tests +├── toolkit -> ../main.py +├── data-gen -> toolkit +├── compare -> toolkit +├── solve -> toolkit +├── validate -> toolkit +└── visualise -> toolkit +``` + +* `run-comparison`:根据 `./tests` 目录下的测试结果生成对比报告。 +* `run-fuzzing`:运行`fuzzing`测试。 +* `run-tests`:运行 `./tests` 目录下的所有测试。 +* `data-gen`、`compare`、`solve`、`validate`、`visualise`:这些文件都是指向 `main.py` 的符号链接,分别以不同的默认模式运行。可以用下面命令查看各自的使用说明: + +```console +$ bin/data-gen --help +$ bin/compare --help +$ bin/solve --help +$ bin/validate --help +$ bin/visualise --help +``` + +## 设计文档 + +设计文档存放在 `docs/` 目录下: + +* [`Algorithms Docs`](./docs/algo-doc.md):算法设计与实现细节 +* [`System Design Docs`](./docs/sys-design-doc.md):系统设计与架构 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/algorithms.py" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/algorithms.py" new file mode 100644 index 0000000000000000000000000000000000000000..9ecca6dfbdcc004ae76ac90ac68481c975e65c86 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/algorithms.py" @@ -0,0 +1,890 @@ +from __future__ import annotations + +from abc import ABC, abstractmethod +from collections import OrderedDict + +from model import ( + MEM_BANDWIDTH, + Settings, + Request, + Action, + ReloadAction, + VisitAction, + OffloadAction, + FinAction, +) +from utils.intervals import IntervalSet + + +class Algorithm(ABC): + def __init__(self, settings: Settings): # noqa: E741 + self.settings = settings + + @abstractmethod + def fit(self, requests: list[Request]) -> list[Action]: + raise NotImplementedError("The fit method must be implemented by the subclass.") + + @staticmethod + def _group_requests_by_start_time( + requests: list[Request], + ) -> list[tuple[int, list[tuple[int, Request]]]]: + """Group requests by their start time and return as a list of (start_time, requests) tuples.""" + grouped_requests: dict[int, list[tuple[int, Request]]] = OrderedDict() + for i, req in enumerate(requests): + if req.start not in grouped_requests: + grouped_requests[req.start] = [] + grouped_requests[req.start].append((i, req)) + return list(grouped_requests.items()) + + def _perform_eviction( + self, + actions: list[Action], + current_time: int, + evict_start: int, + size_to_evict: int, + loaded: IntervalSet, + ) -> int: + """Perform eviction operation and update time.""" + actions.append( + OffloadAction(self.settings, current_time, evict_start, size_to_evict) + ) + current_time += MEM_BANDWIDTH * size_to_evict + loaded.remove(evict_start, evict_start + size_to_evict) + return current_time + + def _perform_reload( + self, + actions: list[Action], + current_time: int, + region_addr: int, + region_size: int, + loaded: IntervalSet, + ) -> int: + """Perform reload operation and update time.""" + actions.append( + ReloadAction(self.settings, current_time, region_addr, region_size) + ) + current_time += MEM_BANDWIDTH * region_size + loaded.add(region_addr, region_addr + region_size) + return current_time + + @staticmethod + def _find_unreferenced_regions( + loaded: IntervalSet, referenced: IntervalSet + ) -> list[tuple[int, int]]: + """Find all unreferenced regions within loaded memory.""" + unreferenced_regions = [] + for start_addr, end_addr in loaded.intervals: + unreferenced_parts = referenced.difference(start_addr, end_addr) + unreferenced_regions.extend(unreferenced_parts) + return unreferenced_regions + + @staticmethod + def _release_references( + reqs: list[tuple[int, Request]], referenced: IntervalSet + ) -> None: + """Release references for a batch of requests.""" + for i, req in reqs: + referenced.remove(req.addr, req.addr + req.size) + + @classmethod + def list_names(cls) -> list[str]: + return [ + "simple", + "predictor", + "prophet", + ] + + @classmethod + def best_name(cls) -> str: + return "prophet" + + @classmethod + def from_name(cls, name: str, settings: Settings) -> Algorithm: + if name == "simple": + return SimpleAlgorithm(settings) + elif name == "predictor": + return PredictorAlgorithm(settings) + elif name == "prophet": + return ProphetAlgorithm(settings) + else: + raise ValueError(f"Unknown algorithm name: {name}") + + +class SimpleAlgorithm(Algorithm): + """Simple memory management algorithm with byte-level granularity tracking using IntervalSet""" + + def __init__(self, settings: Settings): + super().__init__(settings) + # Track loaded memory regions using efficient IntervalSet + self.loaded = IntervalSet() + # Track referenced memory regions (currently in use) + self.referenced = IntervalSet() + self.max_memory = settings.M + + def _mark_referenced(self, start_addr: int, end_addr: int): + """Mark bytes as referenced to prevent eviction""" + self.referenced.add(start_addr, end_addr) + + def _unmark_referenced(self, start_addr: int, end_addr: int): + """Unmark bytes as referenced""" + self.referenced.remove(start_addr, end_addr) + + def _load_bytes( + self, start_addr: int, size: int, actions: list[Action], current_time: int + ) -> int: + """Load the specified byte range, return the new time""" + end_addr = start_addr + size + + # First mark bytes as referenced + self._mark_referenced(start_addr, end_addr) + + # Find unloaded regions that need to be loaded + unloaded_regions = self.loaded.difference(start_addr, end_addr) + + # Load unloaded regions + for region_addr, region_end in unloaded_regions: + region_size = region_end - region_addr + current_time = self._load_region( + region_addr, region_size, actions, current_time + ) + + return current_time + + def _load_region( + self, addr: int, size: int, actions: list[Action], current_time: int + ) -> int: + """Load a contiguous memory region, evict bytes first if necessary""" + # Evict enough memory if needed + while self.loaded.total() + size > self.max_memory: + current_time = self._evict_bytes(actions, current_time) + + # Load the region + return self._perform_reload(actions, current_time, addr, size, self.loaded) + + def _evict_bytes(self, actions: list[Action], current_time: int) -> int: + """Evict unreferenced bytes, choosing contiguous regions to minimize offload operations""" + unreferenced_regions = self._find_unreferenced_regions( + self.loaded, self.referenced + ) + + if unreferenced_regions: + # Evict the first unreferenced contiguous region found + evict_start, evict_end = unreferenced_regions[0] + region_size = evict_end - evict_start + return self._perform_eviction( + actions, current_time, evict_start, region_size, self.loaded + ) + + raise RuntimeError( + "No bytes available to evict! All loaded bytes are referenced." + ) + + def fit(self, requests: list[Request]) -> list[Action]: + """Execute the byte-granularity algorithm""" + actions: list[Action] = [] + current_time = 0 + + # Group requests by start time + request_groups = self._group_requests_by_start_time(requests) + + for start, reqs in request_groups: + # Load all required bytes for all requests in this group + load_time = current_time + for i, req in reqs: + load_time = self._load_bytes(req.addr, req.size, actions, load_time) + + # Wait until start time (all loads must complete before start time) + current_time = max(load_time, start) + + # Execute visit operations concurrently (all start at the same time) + spend_time = 0 + for i, req in reqs: + actions.append(VisitAction(self.settings, current_time, i, req)) + spend_time = max(spend_time, req.time) + + current_time += spend_time + + # Release byte references + self._release_references(reqs, self.referenced) + + actions.append(FinAction(current_time)) + return actions + + +class PredictorAlgorithm(Algorithm): + """ + Predictor Algorithm: Online algorithm that predicts future memory access patterns. + + Key features: + - Online processing: Only uses past requests, cannot look into the future + - LRU-based eviction: Evict least recently used memory when space is needed + - Access frequency tracking: Keep frequently accessed memory loaded + - Pattern-based prefetching: Predict and prefetch likely future accesses + - IO/Compute overlap: Load next batch during current batch computation + """ + + def __init__(self, settings: Settings): + super().__init__(settings) + self.loaded = IntervalSet() + self.referenced = IntervalSet() + self.max_memory = settings.M + + # Track access time for each loaded interval + # Use actual request time for accurate LRU tracking + self.interval_access_time: dict[tuple[int, int], int] = {} + + def _record_region_access(self, start_addr: int, end_addr: int, access_time: int): + """Record access for a specific memory region""" + # Store the actual access time for accurate LRU + key = (start_addr, end_addr) + self.interval_access_time[key] = access_time + + def _find_lru_eviction_candidate(self, current_time: int) -> tuple[int, int] | None: + """ + Find the least recently used unreferenced memory region to evict. + + Returns: (start, end) of the LRU region, or None if no evictable region exists + """ + best_region = None + earliest_access = float("inf") + + # Find unreferenced loaded regions + unreferenced_regions = self._find_unreferenced_regions( + self.loaded, self.referenced + ) + + # Match each unreferenced region to its parent interval for access time lookup + for region_start, region_end in unreferenced_regions: + # Find the parent loaded interval + for start_addr, end_addr in self.loaded.intervals: + if start_addr <= region_start and region_end <= end_addr: + key = (start_addr, end_addr) + last_access = self.interval_access_time.get(key, 0) + + # Choose region with earliest last access (LRU) + if last_access < earliest_access: + earliest_access = last_access + best_region = (region_start, region_end) + break + + return best_region + + def _evict_bytes_lru( + self, + actions: list[Action], + current_time: int, + size_needed: int | None = None, + ) -> int: + """ + Evict bytes using LRU algorithm. + + Args: + size_needed: If specified, only evict this many bytes from the LRU region + + Returns: Updated current time after eviction + """ + best_region = self._find_lru_eviction_candidate(current_time) + + if best_region is None: + raise RuntimeError( + "No bytes available to evict! All loaded bytes are referenced." + ) + + evict_start, evict_end = best_region + region_size = evict_end - evict_start + + # If size_needed is specified, only evict what we need + if size_needed is not None: + size_to_evict = min(size_needed, region_size) + else: + size_to_evict = region_size + + current_time = self._perform_eviction( + actions, current_time, evict_start, size_to_evict, self.loaded + ) + + # Clean up access history for evicted region + evicted_end = evict_start + size_to_evict + keys_to_remove = [] + for key in list(self.interval_access_time.keys()): + hist_start, hist_end = key + # If history entry is completely within evicted region, remove it + if hist_start >= evict_start and hist_end <= evicted_end: + keys_to_remove.append(key) + + for key in keys_to_remove: + del self.interval_access_time[key] + + return current_time + + def _load_bytes( + self, + start_addr: int, + size: int, + actions: list[Action], + current_time: int, + access_time: int, + ) -> int: + """ + Load memory bytes, evicting with LRU if necessary. + + Args: + access_time: The time when this memory will be accessed (for history tracking) + + Returns: Updated current time after loading + """ + end_addr = start_addr + size + + # Mark as referenced + self.referenced.add(start_addr, end_addr) + + # Find unloaded regions + unloaded_regions = self.loaded.difference(start_addr, end_addr) + + # Load unloaded regions + for region_addr, region_end in unloaded_regions: + region_size = region_end - region_addr + + # Evict if necessary using LRU strategy + while self.loaded.total() + region_size > self.max_memory: + space_needed = self.loaded.total() + region_size - self.max_memory + current_time = self._evict_bytes_lru( + actions, current_time, space_needed + ) + + # Before adding to loaded, save old intervals that might be affected + affected_intervals = [] + for interval_start, interval_end in self.loaded.intervals: + if interval_end >= region_addr and interval_start <= region_end: + affected_intervals.append((interval_start, interval_end)) + + # Load the region (this will add to loaded set) + current_time = self._perform_reload( + actions, current_time, region_addr, region_size, self.loaded + ) + + # Update access times: remove old intervals and add new merged interval + old_access_time = access_time + for old_start, old_end in affected_intervals: + old_key = (old_start, old_end) + if old_key in self.interval_access_time: + old_access_time = max( + old_access_time, self.interval_access_time[old_key] + ) + del self.interval_access_time[old_key] + + # Find the new merged interval and set its access time + for interval_start, interval_end in self.loaded.intervals: + if interval_start <= region_addr and interval_end >= region_end: + key = (interval_start, interval_end) + self.interval_access_time[key] = old_access_time + break + + return current_time + + def _try_prefetch_similar_patterns( + self, + current_addr: int, + current_size: int, + actions: list[Action], + start_time: int, + deadline: int, + ) -> int: + """ + Try to prefetch memory regions with similar access patterns. + This is a simple heuristic: prefetch adjacent or frequently accessed regions. + + Returns: Time when prefetching completes (or start_time if no prefetching done) + """ + load_time = start_time + + # Heuristic 1: Prefetch adjacent memory (spatial locality) + # Try to prefetch the next contiguous region + adjacent_start = current_addr + current_size + prefetch_size = min(current_size, self.max_memory // 10) # Limit prefetch size + + # Ensure we don't exceed virtual memory boundary + max_prefetch_size = self.settings.L - adjacent_start + prefetch_size = min(prefetch_size, max_prefetch_size) + + if prefetch_size > 0: + adjacent_end = adjacent_start + prefetch_size + + # Check if we can prefetch during available time + unloaded = self.loaded.difference(adjacent_start, adjacent_end) + load_cost = sum((end - start) * MEM_BANDWIDTH for start, end in unloaded) + + if load_time + load_cost <= deadline: + free_memory = self.max_memory - self.loaded.total() + needed_space = sum(end - start for start, end in unloaded) + + if needed_space > 0 and needed_space <= free_memory: + # Prefetch adjacent region + for region_start, region_end in unloaded: + region_size = region_end - region_start + actions.append( + ReloadAction( + self.settings, load_time, region_start, region_size + ) + ) + load_time += MEM_BANDWIDTH * region_size + self.loaded.add(region_start, region_end) + + # Record access time for prefetched region + for interval_start, interval_end in self.loaded.intervals: + if ( + interval_start <= region_start + and interval_end >= region_end + ): + key = (interval_start, interval_end) + # Use deadline as access time for prefetched data + self.interval_access_time[key] = max( + self.interval_access_time.get(key, 0), deadline + ) + break + + return load_time + + def fit(self, requests: list[Request]) -> list[Action]: + """ + Execute the predictor algorithm with LRU eviction and pattern-based prefetching. + + Algorithm (Online): + 1. Process requests as they arrive (grouped by start time) + 2. Use LRU for eviction decisions (based on past access history) + 3. Prefetch adjacent/similar regions during compute time + 4. Leverage IO/Compute overlap when possible + """ + actions: list[Action] = [] + io_end_time = 0 # Track when IO operations complete + compute_end_time = 0 # Track when compute operations complete + + # Group requests by start time + request_groups = self._group_requests_by_start_time(requests) + + for group_idx, (start, reqs) in enumerate(request_groups): + # Load current batch (wait for previous IO and compute to complete) + load_start_time = max(io_end_time, compute_end_time) + load_time = load_start_time + + for i, req in reqs: + load_time = self._load_bytes( + req.addr, req.size, actions, load_time, start + ) + + io_end_time = load_time + + # Execute Visit operations (all start together, complete together) + visit_start_time = max(io_end_time, compute_end_time, start) + batch_duration = reqs[0][1].time # All requests in batch have same duration + for i, req in reqs: + actions.append(VisitAction(self.settings, visit_start_time, i, req)) + + compute_end_time = visit_start_time + batch_duration + + # Try prefetching during compute time (based on patterns) + available_time = compute_end_time - io_end_time + + if available_time > 0: + # Try to prefetch based on the last request in this batch + last_req = reqs[-1][1] + new_io_time = self._try_prefetch_similar_patterns( + last_req.addr, last_req.size, actions, io_end_time, compute_end_time + ) + io_end_time = new_io_time + + # Release references for current batch + self._release_references(reqs, self.referenced) + + # Final time is when both IO and compute are done + final_time = max(io_end_time, compute_end_time) + actions.append(FinAction(final_time)) + + # Sort actions by time to ensure chronological order + actions.sort(key=lambda a: a.time) + + return actions + + +class ProphetAlgorithm(Algorithm): + """ + Prophet Algorithm: Enhances Predictor with future knowledge for optimal decisions. + + Based on Predictor's successful architecture, but uses: + - Belady's optimal eviction instead of LRU (knows future accesses) + - Smarter prefetching based on actual future requests + - Same batch processing and IO/Compute overlap strategy + + Optimizations: + - Incremental cache updates as requests are processed + """ + + def __init__(self, settings: Settings): + super().__init__(settings) + self.loaded = IntervalSet() + self.referenced = IntervalSet() + self.max_memory = settings.M + # All requests for global view + self.all_requests: list[Request] = [] + self.current_group_idx = 0 + # Cache: (start_addr, end_addr, after_idx) -> next_use_index + self.next_use_cache: dict[tuple[int, int, int], float] = {} + + def _build_request_index(self, requests: list[Request]): + """Build index of all requests for future lookups""" + self.all_requests = requests + # Clear cache when rebuilding index + self.next_use_cache.clear() + + def _get_next_use_index( + self, start_addr: int, end_addr: int, after_group_idx: int + ) -> float: + """ + Find when this memory region will next be used (group index). + Returns inf if never used again. + Uses caching to avoid repeated linear scans. + """ + cache_key = (start_addr, end_addr, after_group_idx) + + # Check cache first + if cache_key in self.next_use_cache: + return self.next_use_cache[cache_key] + + # Look through future requests to find next use + for idx in range(after_group_idx, len(self.all_requests)): + req = self.all_requests[idx] + # Check if request overlaps with this region + if req.addr < end_addr and req.addr + req.size > start_addr: + self.next_use_cache[cache_key] = idx + return idx + + # Not used again + self.next_use_cache[cache_key] = float("inf") + return float("inf") + + def _invalidate_cache_for_index(self, processed_idx: int): + """ + Invalidate cache entries that are no longer valid after processing request at processed_idx. + Only keeps cache entries with after_idx > processed_idx. + """ + keys_to_remove = [ + key + for key in self.next_use_cache.keys() + if key[2] <= processed_idx # key[2] is after_group_idx + ] + for key in keys_to_remove: + del self.next_use_cache[key] + + def _will_be_used_again(self, start_addr: int, end_addr: int) -> bool: + """Check if a memory region will be used again in the future.""" + next_use = self._get_next_use_index( + start_addr, end_addr, self.current_group_idx + ) + return next_use != float("inf") + + def _find_optimal_eviction_candidate(self) -> tuple[int, int] | None: + """ + Find memory region to evict using Belady's optimal algorithm. + Priority: 1) Never used again (inf), 2) Used furthest in the future. + """ + best_region = None + latest_use = -1 + never_used_again = None + + # Find unreferenced loaded regions + unreferenced_regions = self._find_unreferenced_regions( + self.loaded, self.referenced + ) + + for region_start, region_end in unreferenced_regions: + # Find next use for this region (cached lookup) + next_use = self._get_next_use_index( + region_start, region_end, self.current_group_idx + ) + + # Prioritize regions that will never be used again + if next_use == float("inf"): + never_used_again = (region_start, region_end) + break # Found best candidate, no need to continue + + # Choose region with latest next use + if next_use > latest_use: + latest_use = next_use + best_region = (region_start, region_end) + + return never_used_again if never_used_again else best_region + + def _evict_bytes_optimal( + self, actions: list[Action], current_time: int, size_needed: int | None = None + ) -> int: + """Evict bytes using Belady's optimal algorithm""" + best_region = self._find_optimal_eviction_candidate() + + if best_region is None: + raise RuntimeError( + "No bytes available to evict! All loaded bytes are referenced." + ) + + evict_start, evict_end = best_region + region_size = evict_end - evict_start + + if size_needed is not None: + size_to_evict = min(size_needed, region_size) + else: + size_to_evict = region_size + + return self._perform_eviction( + actions, current_time, evict_start, size_to_evict, self.loaded + ) + + def _load_bytes( + self, start_addr: int, size: int, actions: list[Action], current_time: int + ) -> int: + """Load memory bytes, evicting optimally if necessary""" + end_addr = start_addr + size + + # Mark as referenced + self.referenced.add(start_addr, end_addr) + + # Find unloaded regions + unloaded_regions = self.loaded.difference(start_addr, end_addr) + + # Load unloaded regions + for region_addr, region_end in unloaded_regions: + region_size = region_end - region_addr + + # Evict if necessary using optimal strategy + while self.loaded.total() + region_size > self.max_memory: + space_needed = self.loaded.total() + region_size - self.max_memory + current_time = self._evict_bytes_optimal( + actions, current_time, space_needed + ) + + # Load the region + current_time = self._perform_reload( + actions, current_time, region_addr, region_size, self.loaded + ) + + return current_time + + def _try_prefetch_next_batch( + self, + next_group_reqs: list[tuple[int, Request]], + actions: list[Action], + start_time: int, + deadline: int, + ) -> int: + """ + Maximize IO utilization during idle time by: + 1. Collecting all regions to prefetch (sorted by priority) + 2. Interleaving eviction and prefetch operations + 3. Evicting never-used-again memory to make space + 4. Prefetching high-priority regions + 5. Continuing until deadline is reached + """ + load_time = start_time + + # Step 1: Collect all unloaded regions with their metadata + regions_to_load = [] + for idx, next_req in next_group_reqs: + unloaded = self.loaded.difference( + next_req.addr, next_req.addr + next_req.size + ) + for region_addr, region_end in unloaded: + # Check if this region will be used again + if self._will_be_used_again(region_addr, region_end): + next_use = self._get_next_use_index( + region_addr, region_end, self.current_group_idx + 1 + ) + regions_to_load.append( + ( + region_addr, + region_end, + next_use, + idx, # request index for tie-breaking + ) + ) + + # Step 2: Sort by next use time (earlier use = higher priority) + regions_to_load.sort(key=lambda x: (x[2], x[3])) + + # Step 3: Interleave eviction and prefetch to maximize idle time usage + region_idx = 0 + while load_time < deadline and region_idx < len(regions_to_load): + time_remaining = deadline - load_time + if time_remaining <= 0: + break + + # Try to evict never-used-again memory first + evictable = self._find_optimal_eviction_candidate() + if evictable is not None: + evict_start, evict_end = evictable + evict_size = evict_end - evict_start + next_evict_use = self._get_next_use_index( + evict_start, evict_end, self.current_group_idx + ) + + # Evict if it won't be used again and we have time + if next_evict_use == float("inf"): + evict_time_needed = evict_size * MEM_BANDWIDTH + if load_time + evict_time_needed <= deadline: + load_time = self._perform_eviction( + actions, load_time, evict_start, evict_size, self.loaded + ) + continue # After eviction, try next operation + + # Try to prefetch next region + if region_idx < len(regions_to_load): + region_addr, region_end, next_use, _ = regions_to_load[region_idx] + + # Check if already loaded + already_loaded = self.loaded.difference(region_addr, region_end) + if not already_loaded: # Region is fully loaded + region_idx += 1 + continue + + # Try to load unloaded parts + loaded_something = False + for unloaded_start, unloaded_end in already_loaded: + unloaded_size = unloaded_end - unloaded_start + time_remaining = deadline - load_time + if time_remaining <= 0: + break + + max_size_by_time = int(time_remaining / MEM_BANDWIDTH) + free_memory = self.max_memory - self.loaded.total() + + # Evict if needed to make space + while ( + free_memory < unloaded_size and free_memory < max_size_by_time + ): + evictable = self._find_optimal_eviction_candidate() + if evictable is None: + break + evict_start, evict_end = evictable + evict_size = evict_end - evict_start + + evict_time_needed = evict_size * MEM_BANDWIDTH + if load_time + evict_time_needed > deadline: + break + + load_time = self._perform_eviction( + actions, load_time, evict_start, evict_size, self.loaded + ) + free_memory = self.max_memory - self.loaded.total() + + max_loadable_size = min( + unloaded_size, max_size_by_time, free_memory + ) + + if max_loadable_size > 0: + load_time = self._perform_reload( + actions, + load_time, + unloaded_start, + max_loadable_size, + self.loaded, + ) + loaded_something = True + break # Move to next region after loading something + + if loaded_something or not already_loaded: + region_idx += 1 + else: + # Can't load this region, try next + region_idx += 1 + + # Step 4: Continue evicting useless memory if time remains + while load_time < deadline: + evictable = self._find_optimal_eviction_candidate() + if evictable is None: + break + + evict_start, evict_end = evictable + evict_size = evict_end - evict_start + next_evict_use = self._get_next_use_index( + evict_start, evict_end, self.current_group_idx + ) + + if next_evict_use == float("inf"): + evict_time_needed = evict_size * MEM_BANDWIDTH + if load_time + evict_time_needed <= deadline: + load_time = self._perform_eviction( + actions, load_time, evict_start, evict_size, self.loaded + ) + else: + break + else: + break + + return load_time + + def fit(self, requests: list[Request]) -> list[Action]: + """ + Execute Prophet using Predictor's architecture + Belady's optimal eviction. + + Follows Predictor's proven batch processing strategy: + 1. Group requests by start time + 2. Load batch, execute visits concurrently + 3. Prefetch next batch during compute time + 4. Use optimal eviction instead of LRU + """ + actions: list[Action] = [] + io_end_time = 0 + compute_end_time = 0 + + # Build request index for Belady's algorithm + self._build_request_index(requests) + + # Group requests by start time (same as Predictor) + request_groups = self._group_requests_by_start_time(requests) + + for group_idx, (start, reqs) in enumerate(request_groups): + self.current_group_idx = reqs[0][0] # Track current position for Belady + + # Load current batch + load_start_time = max(io_end_time, compute_end_time) + load_time = load_start_time + + for i, req in reqs: + load_time = self._load_bytes(req.addr, req.size, actions, load_time) + + io_end_time = load_time + + # Execute Visit operations + visit_start_time = max(io_end_time, compute_end_time, start) + batch_duration = reqs[0][1].time + for i, req in reqs: + actions.append(VisitAction(self.settings, visit_start_time, i, req)) + + compute_end_time = visit_start_time + batch_duration + + # Prefetch next batch during compute time + has_next_batch = group_idx + 1 < len(request_groups) + available_time = compute_end_time - io_end_time + + if available_time > 0 and has_next_batch: + next_start, next_reqs = request_groups[group_idx + 1] + new_io_time = self._try_prefetch_next_batch( + next_reqs, actions, io_end_time, compute_end_time + ) + io_end_time = new_io_time + + # Release references for current batch + self._release_references(reqs, self.referenced) + + # Invalidate cache entries that are no longer relevant + # This keeps cache size bounded and improves lookup performance + if reqs: + last_processed_idx = reqs[-1][0] + self._invalidate_cache_for_index(last_processed_idx) + + # Final time + final_time = max(io_end_time, compute_end_time) + actions.append(FinAction(final_time)) + + # Sort actions by time + actions.sort(key=lambda a: a.time) + + return actions diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/compare" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/compare" new file mode 120000 index 0000000000000000000000000000000000000000..1e1b3c88bdf1974f42e64e7bd96f65258bd1e40a --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/compare" @@ -0,0 +1 @@ +toolkit \ No newline at end of file diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/data-gen" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/data-gen" new file mode 120000 index 0000000000000000000000000000000000000000..1e1b3c88bdf1974f42e64e7bd96f65258bd1e40a --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/data-gen" @@ -0,0 +1 @@ +toolkit \ No newline at end of file diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/migrate" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/migrate" new file mode 120000 index 0000000000000000000000000000000000000000..1e1b3c88bdf1974f42e64e7bd96f65258bd1e40a --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/migrate" @@ -0,0 +1 @@ +toolkit \ No newline at end of file diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/run-comparison" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/run-comparison" new file mode 100755 index 0000000000000000000000000000000000000000..38861c4818312c1f02527595f391d0c0cdbe0131 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/run-comparison" @@ -0,0 +1,41 @@ +#!/bin/bash + +# This script runs comparisons between different algorithms on a set of test cases + +set -eu + +# 1. Get the root directory of the project +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +cd "$ROOT_DIR" || exit 1 + +# 2. Set up environment +if [ -f "$ROOT_DIR/.venv/bin/activate" ]; then + source "$ROOT_DIR/.venv/bin/activate" +fi +export PATH=$ROOT_DIR/bin:$PATH + +# 3. Get available algorithms. +ALGOS=$(solve --help | grep -oP '(?<=-a, --algorithm \{)[^}]+' | tr ',' ' ') + +# 4. Get specified test cases from $1 or default to all test cases in tests/ directory +TEST_CASES=() +if [ -n "${1:-}" ]; then + IFS=' ' read -r -a TEST_CASES <<< "$1" +else + while IFS= read -r -d $'\0' file; do + TEST_CASES+=("$file") + done < <(find tests/ -name '*.in' -print0) +fi + +# 5. Run comparisons +for TEST_CASE in "${TEST_CASES[@]}"; do + echo "Running comparisons for test case: $TEST_CASE" + OUTPUTS=() + for ALGO in $ALGOS; do + OUTPUT_FILE="${TEST_CASE%.in}.$ALGO.out" + OUTPUTS+=("$OUTPUT_FILE") + done + # Run the comparison tool + compare -i $TEST_CASE -o ${OUTPUTS[@]} --style md > "${TEST_CASE%.in}.comparison-result.md" + compare -i $TEST_CASE -o ${OUTPUTS[@]} --style csv > "${TEST_CASE%.in}.comparison-result.csv" +done diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/run-fuzzing" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/run-fuzzing" new file mode 100755 index 0000000000000000000000000000000000000000..161981c71929f3ebbc7fdc64fc647e0fe405e74e --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/run-fuzzing" @@ -0,0 +1,74 @@ +#!/bin/bash + +# This script runs fuzz testing by generating test cases using `data-gen` +# for various configurations and validating the generated data using `validate`. + +set -eu + +# 1. Get the root directory of the project +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +cd "$ROOT_DIR" || exit 1 + +# 2. Set up environment +if [ -f "$ROOT_DIR/.venv/bin/activate" ]; then + source "$ROOT_DIR/.venv/bin/activate" +fi +export PATH=$ROOT_DIR/bin:$PATH + +# 3. Get available generator modes. +MODES=$(data-gen --help | grep -oP '(?<=-m, --mode \{)[^}]+' | tr ',' ' ') +ALGOS=$(solve --help | grep -oP '(?<=-a, --algorithm \{)[^}]+' | tr ',' ' ') + +# 4. Get iteration count from command line argument or default to 100 +ITERATIONS=${1:-100} + +# 5. For each mode and algorithm, generate test cases with random parameters, solve and validate them. +for ((i=0; i '$test_in'" + if ! data-gen -m "$mode" --seed "$seed" -L "$vsize" -M "$psize" -N "$req_len" -i "$test_in"; then + echo "--- Data generation failed: $config" + exit 1 + fi + echo "*** Validating generated test case '$test_in'" + if ! validate -i "$test_in"; then + echo "--- Validation failed for generated test case: '$test_in'" + exit 1 + fi + echo "*** Test case generated and validated: $config" + if ! solve -i "$test_in" -o "$test_out" -a $algo --check-limit; then + echo "--- Solving failed for generated test case: '$test_in'" + exit 1 + fi + echo "*** Solved generated test case with algorithm='$algo': $config" + if ! validate -i "$test_in" -o "$test_out"; then + echo "--- Validation of solution failed for generated test case: '$test_in' with algorithm='$algo'" + exit 1 + fi + if [[ -v CHECKER ]] && ! $CHECKER "$test_in" "$test_out" "$test_out"; then + echo "--- Checker failed for generated test case: '$test_in'" + exit 1 + fi + echo "*** Solution validated for generated test case with algorithm='$algo': $config" + echo + rm "$test_in" "$test_out" + done + done +done + +echo "All iterations of fuzz testing passed!" diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/run-tests" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/run-tests" new file mode 100755 index 0000000000000000000000000000000000000000..d3addfc78d0073ee316fb85a7ea54a99db93be4b --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/run-tests" @@ -0,0 +1,61 @@ +#!/bin/bash + +# This script runs the test suite for the project. + +set -eu + +# 1. Get the root directory of the project +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +cd "$ROOT_DIR" || exit 1 + +# 2. Set up environment +if [ -f "$ROOT_DIR/.venv/bin/activate" ]; then + source "$ROOT_DIR/.venv/bin/activate" +fi +export PATH=$ROOT_DIR/bin:$PATH + +# 3. Get available algorithms. +ALGORITHMS=$(solve --help | grep -oP '(?<=-a, --algorithm \{)[^}]+' | tr ',' ' ') +VISUAL=${VISUAL:-0} +STRICT_BEST=${STRICT_BEST:-1} + +# 4. Get pending tests from command line arguments +TESTS=${@:-$(ls tests/*.in)} + +# 5. For each test in `tests` directory, run `solve` & `validate` with different algorithms. +for test in $TESTS; do + name=$(basename "$test" .in) + for algo in $ALGORITHMS; do + echo "*** Running test='$name' with algorithm='$algo'" + test_in="tests/$name.in" + test_out="tests/$name.$algo.out" + if ! solve -a "$algo" -i "$test_in" -o "$test_out" -f --check-limit; then + echo "--- Solving failed: name='$name', algorithm='$algo'" + exit 1 + fi + if [ "$STRICT_BEST" -eq 1 ]; then + if ! validate -i "$test_in" -o "$test_out" --current-best "tests/$name.$algo.best" --strict-best; then + echo "--- Validation failed: name='$name', algorithm='$algo'" + exit 1 + fi + else + if ! validate -i "$test_in" -o "$test_out" --current-best "tests/$name.$algo.best"; then + echo "--- Validation failed: name='$name', algorithm='$algo'" + exit 1 + fi + fi + if [[ -v CHECKER ]] && ! $CHECKER "$test_in" "$test_out" "$test_out"; then + echo "--- Checker failed: name='$name', algorithm='$algo'" + exit 1 + fi + if [[ "$VISUAL" == "1" ]]; then + if ! visualise -i "$test_in" -o "$test_out" -p "tests/$name.$algo.png" -f --trust; then + echo "--- Visualization failed: name='$name', algorithm='$algo'" + exit 1 + fi + fi + echo "*** Test passed: name='$name', algorithm='$algo'" + echo + done +done +echo "All tests passed!" diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/solve" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/solve" new file mode 120000 index 0000000000000000000000000000000000000000..1e1b3c88bdf1974f42e64e7bd96f65258bd1e40a --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/solve" @@ -0,0 +1 @@ +toolkit \ No newline at end of file diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/toolkit" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/toolkit" new file mode 120000 index 0000000000000000000000000000000000000000..f05f752768fdd6d0ec11f2247cd234cd3375541a --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/toolkit" @@ -0,0 +1 @@ +../main.py \ No newline at end of file diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/validate" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/validate" new file mode 120000 index 0000000000000000000000000000000000000000..1e1b3c88bdf1974f42e64e7bd96f65258bd1e40a --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/validate" @@ -0,0 +1 @@ +toolkit \ No newline at end of file diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/visualise" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/visualise" new file mode 120000 index 0000000000000000000000000000000000000000..1e1b3c88bdf1974f42e64e7bd96f65258bd1e40a --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/bin/visualise" @@ -0,0 +1 @@ +toolkit \ No newline at end of file diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/comparator.py" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/comparator.py" new file mode 100644 index 0000000000000000000000000000000000000000..7cf6a7758fd651bcaadb16f060cc064d28a5c754 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/comparator.py" @@ -0,0 +1,101 @@ +from __future__ import annotations + +import io + +from model import Settings, Request, Action, ReloadAction, VisitAction, OffloadAction + +from pytablewriter import ( + AbstractTableWriter, + TableWriterFactory, +) + + +class Comparator: + """ + Compare different action sequences for the same set of requests. + """ + + def __init__( + self, + settings: Settings, + requests: list[Request], + actions: dict[str, list[Action]], + style: str, + ): + self.settings = settings + self.requests = requests + self.actions = actions + self.style = style + self.table_writer: AbstractTableWriter = ( + TableWriterFactory.create_from_format_name(style) + ) + + def emit_table(self) -> str: + """ + Emit a comparison table of the different action sequences for each request. + + Table columns: + - Algorithm name + - Finish time + - Computation time + - IO time + - IO count + - Computation-IO overlapping time ratio + """ + # Prepare table data + value_matrix = [] + for algo_name, action_list in self.actions.items(): + finish_time = action_list[-1].time + computation_time = sum( + action.cost() + for action in action_list + if isinstance(action, VisitAction) + ) + io_time = sum( + action.cost() + for action in action_list + if isinstance(action, (ReloadAction, OffloadAction)) + ) + io_count = sum( + 1 + for action in action_list + if isinstance(action, (ReloadAction, OffloadAction)) + ) + comp_io_overlap_time_ratio = ( + computation_time + io_time - finish_time + ) / io_time + value_matrix.append( + [ + algo_name, + finish_time, + computation_time, + io_time, + io_count, + f"{comp_io_overlap_time_ratio:.2f}", + ] + ) + + # Fill table headers and value matrix + self.table_writer.headers = [ + "Algorithm", + "Finish Time", + "Computation Time", + "IO Time", + "IO Count", + "Comp-IO Overlap Time Ratio", + ] + self.table_writer.value_matrix = value_matrix + + # Use string stream to capture output + output_stream = io.StringIO() + self.table_writer.stream = output_stream + self.table_writer.write_table() + + return output_stream.getvalue() + + @classmethod + def list_styles(cls) -> list[str]: + """ + List available output styles for the comparison table. + """ + return TableWriterFactory.get_format_names() diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/docs/algo-doc.md" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/docs/algo-doc.md" new file mode 100644 index 0000000000000000000000000000000000000000..dcd34ef83fd4cb06dbdd2705a34c2cbddf4e14ba --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/docs/algo-doc.md" @@ -0,0 +1,299 @@ +# 异构内存管理算法说明文档 + +> 本项目针对异构内存管理挑战设计了如下的三种算法:基础算法、预测器算法和预言家算法。 + +## 目录 + +- [异构内存管理算法说明文档](#异构内存管理算法说明文档) + - [目录](#目录) + - [1. 基础算法](#1-基础算法) + - [核心设计思想](#核心设计思想) + - [算法概览图](#算法概览图) + - [算法实现细节](#算法实现细节) + - [`IntervalSet` 数据结构](#intervalset-数据结构) + - [内存加载策略](#内存加载策略) + - [淘汰策略](#淘汰策略) + - [批次处理](#批次处理) + - [算法局限性](#算法局限性) + - [2. 预测器算法](#2-预测器算法) + - [核心设计思想](#核心设计思想-1) + - [算法概览图](#算法概览图-1) + - [算法实现细节](#算法实现细节-1) + - [LRU 追踪与淘汰](#lru-追踪与淘汰) + - [计算与 IO 重叠](#计算与-io-重叠) + - [模式预测预取](#模式预测预取) + - [算法局限性](#算法局限性-1) + - [3. 预言家算法](#3-预言家算法) + - [核心设计思想](#核心设计思想-2) + - [算法概览图](#算法概览图-2) + - [算法实现细节](#算法实现细节-2) + - [1. 预处理与缓存构建](#1-预处理与缓存构建) + - [2. 批次加载与最优淘汰](#2-批次加载与最优淘汰) + - [3. 计算与IO重叠](#3-计算与io重叠) + - [4. 带时间限制的预取](#4-带时间限制的预取) + - [5. 缓存维护与清理](#5-缓存维护与清理) + +## 1. 基础算法 + +### 核心设计思想 + +基础算法(Simple Algorithm)是一种简单的内存管理算法,其核心设计包括: +- **贪心淘汰策略**:选择第一个未引用的连续内存区域进行淘汰(Offload),简单高效。 +- **批次化处理**:同一时刻的请求作为一个批次并发处理,保证同一时刻的请求并发处理。 + +### 算法概览图 + +```mermaid +flowchart TD + Start([开始]) --> Group[按Start时间分组请求] + Group --> BatchLoop{遍历每个请求批次} + BatchLoop -->|有请求| LoadPhase[加载阶段] + LoadPhase --> MarkRef[标记内存为referenced] + MarkRef --> FindUnload[找到未加载区域] + FindUnload --> CheckMem{内存是否充足?} + CheckMem -->|不足| Evict[淘汰未引用的连续区域] + Evict --> CheckMem + CheckMem -->|充足| Reload[执行Reload操作] + Reload --> WaitStart[等待start时间] + WaitStart --> VisitPhase[Visit阶段: 并发执行] + VisitPhase --> Unref[释放内存引用] + Unref --> BatchLoop + BatchLoop -->|无请求| End([结束]) +``` + +### 算法实现细节 + +#### `IntervalSet` 数据结构 + +- 使用区间集合高效管理当前虚拟内存状态 +- `loaded`: 跟踪已加载到物理内存的字节区间 +- `referenced`: 跟踪当前正在使用的字节区间 + +#### 内存加载策略 + +- 计算需要加载的区域:`unloaded_regions = loaded.difference(start_addr, end_addr)` +- 只加载未加载的字节区间,避免重复加载 +- 加载前检查内存容量,不足时触发淘汰 + +#### 淘汰策略 + +- 找到第一个未被引用的连续内存区域 +- 选择连续区域以减少 Offload 操作次数 + +#### 批次处理 + +- 同一 `Start` 时间的请求作为一个批次 +- 批次内所有内存先加载完毕 +- 所有 `Visit` 操作同时开始执行(并发) +- 批次完成后立即释放引用,为下一批次腾出空间 + +### 算法局限性 + +虽然这种算法简单且易懂,但其采用的算法只关注当前批次的内存需求,没有考虑后续的请求情况,导致内存利用率和性能未能达到最优。同时 IO 与计算并没有实现高效的重叠利用,导致了资源的浪费。这些局限性促使我们设计了预测器算法(Predictor Algorithm),通过引入LRU淘汰、计算与IO重叠以及预取来提升性能。 + +### 算法复杂度分析 + +#### 时间复杂度分析 + +算法计算流程如下所示,首先会进行批次处理操作,然后会开始遍历区间操作,执行N次查找未加载内存与加载内存操作,而在加载内存过程中,其主要包含剔除内存和插入内存两个阶段。 + +- 批次处理: $O(N)$ +- 遍历区间:$N \cdot k \cdot O(M\log(M) + k\cdot M)$ + - 查找未加载内存: $O(\log(M) + k)$ + - 加载内存:$k \cdot O(M\log(M) + k\cdot M)$ + - 剔除内存:$k \cdot O(M\log(M) + k \cdot M)$ + - 插入内存:$k \cdot O(\log(M) + k)$ + +综上所述,平均时间复杂度为 $N \cdot k \cdot O(M\log(M) + k\cdot M)$, $k$ 为常数,$k \cdot O(M\log(M) + k \cdot M)$最差会劣化到 $O(M^2)$,相当于遍历这个内存空间。 + +#### 空间复杂度分析 + +算法计算过程中,主要对请求存储,加载计数和引用计数三方面进行记录。 + +- 请求存储:$O(N)$ +- 加载计数:$O(M)$ +- 引用计数:$O(M)$ + +综上所述,平均空间复杂度为 $O(N + M)$ + +## 2. 预测器算法 + +### 核心设计思想 + +预测器算法(Predictor Algorithm)是一种在线处理算法,无法预知未来请求。其核心设计包括: +- **LRU 淘汰策略**:基于历史访问记录,淘汰最近最少使用的内存区域。 +- **IO与计算重叠**:利用当前批次的计算时间,并行加载或预取数据。 +- **模式预测与预取**:基于空间局部性原理,尝试预取相邻的内存区域。 + +### 算法概览图 + +```mermaid +flowchart TD + Start([开始]) --> Group[按Start时间分组请求] + Group --> BatchLoop{遍历每个请求批次} + BatchLoop -->|有请求| LoadPhase[加载阶段] + LoadPhase --> CheckMem{内存是否充足?} + CheckMem -->|不足| LRUEvict[LRU淘汰未引用区域] + LRUEvict --> CheckMem + CheckMem -->|充足| Reload[执行Reload操作] + Reload --> UpdateLRU[更新LRU访问记录] + UpdateLRU --> WaitStart[等待IO完成与Start时间] + WaitStart --> VisitPhase[Visit阶段: 并发执行] + VisitPhase --> ComputeOverlap[计算期间尝试预取] + ComputeOverlap --> Prefetch[预取相邻/相似模式区域] + Prefetch --> Unref[释放内存引用] + Unref --> BatchLoop + BatchLoop -->|无请求| End([结束]) +``` + +### 算法实现细节 + +#### LRU 追踪与淘汰 + +- 维护 `interval_access_time` 字典,记录每个已加载内存区间的最后访问时间。 +- 当内存不足时,通过 `_find_lru_eviction_candidate` 查找未被引用的区间中访问时间最早的区域进行淘汰。 +- 淘汰后清理对应的访问历史记录,保持追踪的准确性。 + +#### 计算与 IO 重叠 + +- 算法尝试利用当前批次请求的计算时间(Visit Time)来进行 IO 操作。 +- 在 `Visit` 操作开始后,计算结束前,如果有剩余的 IO 带宽,尝试进行预取。 + +#### 模式预测预取 + +- 基于空间局部性(Spatial Locality)假设,认为程序倾向于访问相邻的内存地址。 +- `_try_prefetch_similar_patterns` 函数会尝试预取当前请求地址之后的连续内存区域。 +- 预取操作会严格检查剩余内存空间和计算剩余时间(Deadline),确保不会影响当前计算任务的完成或导致内存溢出。 + +### 算法局限性 +尽管预测器算法通过 LRU 淘汰和模式预测预取在一定程度上提升了内存利用率和性能,但由于其无法预知未来请求,仍然存在局限性。此外,基于空间局部性的预取策略可能在某些情况下无法有效提升性能。这些局限性促使我们设计了预言家算法(Prophet Algorithm),通过利用未来请求信息来进一步提升优化。 + +### 算法复杂度分析 + +#### 时间复杂度分析 + +预测器算法相比基础算法,引入了 LRU 历史记录维护和基于模式的预取操作。 + +- 批次处理: $O(N)$ +- 遍历区间:$N \cdot k \cdot O(M\log(M) + k\cdot M)$ + - 查找未加载内存: $O(\log(M) + k)$ + - 加载内存:$k \cdot O(M\log(M) + k\cdot M)$ + - 剔除内存:$k \cdot O(M\log(M) + k \cdot M)$ + - 插入内存:$k \cdot O(\log(M) + k)$ + - 预取: $k \cdot O(M\log(M) + k\cdot M)$ + +综上所述,预测器算法的平均时间复杂度为 $N \cdot k \cdot O(M\log(M) + k\cdot M)$。 + +#### 空间复杂度分析 + +算法在运行过程中,除了基础的请求存储和区间管理外,还需维护 LRU 访问历史。 + +- 请求存储: $O(N)$ +- 区间管理: $O(M)$ +- LRU 历史记录: $O(M)$。 + +综上所述,平均空间复杂度为 $O(N + M)$。 + +## 3. 预言家算法 + +### 核心设计思想 + +预言家算法(Prophet Algorithm)是在之前算法的基础上,利用已知的“未来请求信息”来优化 IO 与内存的管理。其核心设计思想包括: +- **Belady 最佳替换**:当必须驱逐(Eviction)时,优先驱逐那些将来最晚被再次使用的内存区间。算法通过缓存机制(Cache)快速定位区间的下次使用时间,从而定位最佳的候选驱逐区间,避免每次暴力遍历所有未来请求。 +- **批次加载与合并**:尽量合并连续区域以减少 IO 操作(通过 `IntervalSet` 管理区间)。 +- **IO 与计算重叠**:在当前批次计算期间,利用空闲时间窗口尽可能地把下一批所需数据预取到内存,从而把 IO 与计算的时间重叠。 +- **带优先级的预取**:在预取下一批数据时,优先预取那些最早会被使用的数据。同时,如果内存不足,会尝试驱逐那些“永不再用”的数据来腾出空间。 + +### 算法概览图 + +```mermaid +flowchart TD + Start([开始]) --> PreCompute[预处理: 构建请求索引] + PreCompute --> Group[按Start时间分组请求] + Group --> BatchLoop{遍历每个请求批次} + + BatchLoop -->|有请求| WaitIO[等待上一轮IO计算完成] + WaitIO --> LoadCheck{检查内存需求} + LoadCheck -->|内存不足| Evict[Belady最优淘汰] + Evict --> LoadCheck + LoadCheck -->|内存充足| Reload[加载数据] + Reload --> LoadCheck + + LoadCheck -->|加载完成| WaitStart[等待Start时间] + WaitStart --> Visit[并发执行Visit操作] + + Visit --> CheckIdle{检查计算空闲窗口} + CheckIdle -->|有空闲| Prefetch[预取下一批数据] + Prefetch -->|内存不足| EvictUnused[淘汰永不再用数据] + EvictUnused --> PrefetchLoad[加载高优先级数据] + PrefetchLoad --> CheckIdle + + CheckIdle -->|无空闲/结束| Release[释放当前批次引用] + Release --> Invalidate[清理失效缓存] + + Invalidate --> BatchLoop + BatchLoop -->|无请求| End([结束]) +``` + +### 算法实现细节 + +#### 1. 预处理与缓存构建 + +- **请求索引**:在算法开始前,通过 `_build_request_index` 将所有请求保存为全局视图,以便后续查询。 +- **Next-Use 缓存**:初始化 `next_use_cache`,用于缓存 `(start_addr, end_addr, after_idx)` -> `next_use_index` 的映射。这避免了在每次查找时都进行线性扫描,显著提高了性能。 + +#### 2. 批次加载与最优淘汰 + +- **批次加载**:算法按 Start 时间将请求分组。在处理每个批次时,首先加载该批次所需的所有内存区域。 +- **最优淘汰 (Belady)**:当内存不足时,`_load_bytes` 会调用 `_evict_bytes_optimal` 进行淘汰。 + - `_find_optimal_eviction_candidate` 函数实现了 Belady 的最优替换算法。 + - 它在未被引用的已加载区间中寻找驱逐目标: + 1. 优先选择永远不会再使用的区间。 + 2. 如果所有区间都会再次使用,则选择下一次使用时间最远的区间。 + +#### 3. 计算与IO重叠 + +- **并发访问**:当批次内所有数据加载完毕且到达 Start 时间后,并发执行所有请求的 Visit 操作。 +- **计算重叠**:利用当前批次的计算时间(Visit Time),尝试进行 IO 操作(预取),以掩盖 IO 延迟。 + +#### 4. 带时间限制的预取 + +- **预取逻辑**:在计算期间,`_try_prefetch_next_batch` 函数会尝试预取下一个批次的数据。 +- **优先级排序**:收集下一批次所有未加载的区间,并根据它们的下一次使用时间进行排序,优先加载最早需要的数据。 +- **交错执行**:在 Deadline(计算结束时间)之前,算法会交错执行驱逐和加载操作: + - 如果有永不再使用的内存,优先驱逐它们以腾出空间。 + - 尝试加载高优先级的未加载区间。如果内存不足且无法驱逐更多无用数据,则停止预取。 + - 预取操作严格受限于剩余时间,确保不会推迟当前批次的完成时间。 + +#### 5. 缓存维护与清理 + +- **缓存失效**:每处理完一批请求,调用 `_invalidate_cache_for_index` 清理不再需要的缓存条目,保持缓存大小可控,防止内存泄漏。 + +### 算法复杂度分析 + +#### 时间复杂度分析 + +预言家算法引入了对未来请求的扫描与计算,因此在时间开销上会有所增加。主要流程包括预处理、批次处理、以及核心的 Belady 驱逐决策与预取操作。 + +- 批次处理: $O(N)$ +- 遍历区间:$O(k \cdot M \cdot N^2)$ + - 加载与驱逐: $O(k \cdot M \cdot N)$ + - 查找未加载内存: $O(\log(M) + k)$ + - 加载内存(最坏情况):$O(k \cdot M \cdot N)$ + - 剔除内存(最坏情况):$O(k \cdot M \cdot N)$ + - 插入内存:$k \cdot O(\log(M) + k)$ + - 预取: $O(k \cdot M \cdot N)$ + +综上所述,最坏时间复杂度为 $O(k \cdot M \cdot N^2)$。实际运行过程中,由于数据访问具有稳定连续的特征,算法内剪枝有效,能够大幅降低时间开销。 + +#### 空间复杂度分析 + +算法在运行过程中,除了基础的请求存储和区间管理外,还引入了缓存机制。 + +- 请求存储: $O(N)$ +- 区间管理: $O(M)$ +- 预测缓存: + - 平均情况:$O(N)$ + - 最坏情况: $O(N \cdot M)$ + +综上所述,平均空间复杂度为 $O(N + M)$,但在极端情况下可能短暂达到 $O(N \cdot M)$。 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/docs/assets/fuzzing-ci.png" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/docs/assets/fuzzing-ci.png" new file mode 100644 index 0000000000000000000000000000000000000000..0de590561784c6f3846370cea62171f46aa6fb1e Binary files /dev/null and "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/docs/assets/fuzzing-ci.png" differ diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/docs/sys-design-doc.md" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/docs/sys-design-doc.md" new file mode 100644 index 0000000000000000000000000000000000000000..c8c2b0aa912290853ae6e65b3554a2f23ef6a9fb --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/docs/sys-design-doc.md" @@ -0,0 +1,145 @@ +# 系统设计 + +## 目录 + +- [系统设计](#系统设计) + - [目录](#目录) + - [系统概览与组件](#系统概览与组件) + - [系统框图](#系统框图) + - [关键数据结构](#关键数据结构) + - [Settings](#settings) + - [Request](#request) + - [Action](#action) + - [开发与维护](#开发与维护) + +## 系统概览与组件 + +系统由若干模块组成,每个模块职责如下: +- `model.py` + - 定义核心数据模型与常量:`Settings`、`Request`、`Action` 及其子类(`ReloadAction`、`VisitAction`、`OffloadAction`、`FinAction`),常量 `MEM_BANDWIDTH` 等。 +- `generator.py`:负责生成请求数据,支持多种生成模式(naive、markov、kvcache、highload、mixed-precision 等)。 + - 主要工具类为 `RequestBuilder` 与 `TickGenerator`。 +- `comparator.py`:负责比较不同算法的性能与结果,以表格形式呈现。 + - 主要工具类为 `Comparator`。 +- `algorithms.py`:负责内存规划算法实现,支持多种算法(simple、prophet 等)。 + - 主要工具类为 `Algorithm`。 +- `validator.py`:验证算法输出的正确性(操作序列合法性、时间先后关系、内存不越界、最终一致性等)。 + - 主要工具类为 `Validator`。 +- `visualizer.py`:将算法执行的操作序列转为可视化结果(时间线等)。 + - 主要工具类为 `Visualizer`。 +- `utils/intervals.py`:区间集合实现,用于高效管理已加载与被引用的内存区间,支持并集、差集、添加与删除等操作。 + - 主要工具类为 `IntervalSet`。 +- `main.py` / `bin/*` (CLI 工具) + - 负责命令行入口、模式分发(`data-gen`、`solve`、`validate`、`visualise` 等)。解析参数并调用相应子模块。 + - `data-gen`:调用 `generator.py` 生成请求数据。 + - 支持不同生成模式,如 naive、markov、markov+、kvcache、highload、mixed-precision 等。 + - 可指定随机种子。 + - 可指定生成参数,如请求数量、内存大小等。 + - 其中markov+模式用于生成更加复杂的请求序列,在markov模式的基础上,让请求的启动时间分布更加均匀,同时让部分请求的执行时间有概率与I/O重叠。 + - `compare`:调用 `comparator.py` 比较不同算法的性能与结果。 + - 可对指定的测试用例及各个算法输出结果进行对比。 + - 支持包括但不限于 markdown、csv 等多种输出格式。 + - `solve`:调用 `algorithms.py` 中的算法实现,生成操作序列。 + - 可指定算法类型(如 simple、prophet 等)。 + - 可检查算法运行消耗的资源(时间不超过 10 s、内存 不超过 1 GiB)。 + - `validate`:调用 `validator.py` 验证算法输出的正确性。 + - 检查操作序列是否合法(时间先后关系、内存不越界、最终一致性等)。 + - 对于固定的测试序列与算法,存储其最佳结果(最短执行时间),便于回归测试。 + - `visualise`:调用 `visualizer.py` 将算法执行的操作序列转为可视化结果(时间线等)。 + - `run-tests`:针对 `tests/` 目录下的测试用例,调用 `solve`、`validate` 、`visualise` 等工具,进行回归测试。 + - 可指定特定测试用例进行单独测试。 + - 可指定 `VISUAL=1` 环境变量生成可视化结果。 + - 可指定 `CHECKER` 环境变量使用官方 checker 进行测试。 + - `run-fuzzing`:执行模糊测试,调用 `data-gen`、`solve`、`validate` 等工具,针对不同输入规模和数据生成方式,测试算法在不同场景下的正确性与稳定性。 + - 可指定测试轮数与输入规模。 + - 可通过 `FUZZING_DIR` 环境变量指定模糊测试目录(默认为 `tests/` 目录)。 + - 可指定 `CHECKER` 环境变量使用官方 checker 进行测试。 +- `logger.py`:日志工具。 +- `tests/` 与 `bin/` 目录 + - `tests/` 包含手动构造的用例与曾经回归测试发现的用例(防止功能与性能退化)。 + - `bin/` 提供统一的运行脚本(符号链接到 `main.py`)。 + +## 系统框图 + +下图使用 Mermaid 描述整体模块及数据流: + +```mermaid +graph TD + A[Input Requests] + B["Generator (generator.py)"] + C["Main (main.py)"] + D["Algorithm (algorithms.py)"] + E["Validator (validator.py)"] + F["Visualizer (visualizer.py)"] + G["Comparator (comparator.py)"] + H[Figures, Tables] + I[logger.py] + J[utils/intervals.py] + K[model.py] + + A -->|Parse| C + B -->|Generate Requests| C + C -->|Record| I + C -->|Call| D + D -->|Actions Output| E + D -->|Actions Output| G + E -->|Validate Results| F + F -->|Visualize| H + G -->|Compare Results| H + J --- B + J --- D + J --- E + J --- F + + subgraph Module + direction TB + B + D + E + F + G + I + J + K + end + + I --- D +``` + +## 关键数据结构 + +### Settings + +```python +class Settings: + L: int # 虚拟内存空间总大小 + M: int # 高带宽物理内存容量 + N: int # 请求数量 +``` +### Request + +```python +class Request: + addr: int # 起始地址,0 <= addr < L + size: int # 访存长度,1 <= addr + size <= L + start: int # 请求最早开始时间(到达时间) + time: int # 请求的执行时长 +``` + +### Action + +基类 `Action` 含 `time` 字段。子类: +- `ReloadAction(settings, time, addr, size)`:把 `[addr, addr+size)` 加载到物理内存;时间成本为 `size * MEM_BANDWIDTH`。 +- `OffloadAction(settings, time, addr, size)`:卸载该区间,释放物理内存;时间成本为 `size * MEM_BANDWIDTH`。 +- `VisitAction(settings, time, index, request)`:在 `time` 开始执行请求 `index`(对应 `Request`);时间成本为 `request.time`。 +- `FinAction(time)`:表示所有工作完成,`time` 为最终时间。 + + +## 开发与维护 + +- 基于 GitHub Actions 设计了持续集成(CI)的回归测试,对算法在已知测试用例上的正确性与性能进行验证,防止功能与性能退化。 + - 每次提交代码后,自动运行回归测试,确保所有测试用例通过且性能未退化。 + - 对于固定的测试序列与算法,存储其最佳结果(最短执行时间),便于回归测试。 +- 基于 GitHub Actions 设计了可供手动触发的模糊测试工作流(workflow),对算法在不同输入规模下的运行时间进行测试,确保算法运行的稳定性,并保证算法运行不会超过时间与内存限制。 + - 目前,在 GitHub Actions 上经过约 22 小时的模糊测试,未发现任何正确性问题,时间与内存使用均在限制范围内。 + ![Fuzzing CI](./assets/fuzzing-ci.png) diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/generator.py" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/generator.py" new file mode 100644 index 0000000000000000000000000000000000000000..dcb696507a4aa79d56c6dc73f12a2400e2070e0f --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/generator.py" @@ -0,0 +1,721 @@ +from __future__ import annotations + +import random +from abc import ABC, abstractmethod +from typing import List, Optional + +from model import MAX_TIME, Request, Settings, MEM_BANDWIDTH + +from utils.intervals import IntervalSet + +import numpy as np + + +class RequestBuilder: + def __init__(self, settings: Settings): + self.settings = settings + self.current_time = 0 + + def build( + self, tick_gen: TickGenerator, max_time_gap: int, seed: int + ) -> List[Request]: + """ + Build requests with time incremental restriction + """ + + start = 0 + time_gap = max_time_gap + requests = [] + pre_req = Request( + settings=self.settings, + addr=0, + size=1, + start=0, + time=max(1, int(round(random.random() ** 4 * time_gap))), + ) + + random.seed(seed) + + while len(requests) < self.settings.N: + addr = tick_gen.gen_new_addr(pre_req=pre_req) + size = tick_gen.gen_new_size(pre_req=pre_req) + + # check if the visit will exceed the virtual memory boundary + if addr + size > self.settings.L: + continue + + start_time_gap = tick_gen.gen_new_start_gap( + pre_req, time_gap=max_time_gap, size=size + ) + + start = min(start + start_time_gap, MAX_TIME) + + # check if the start time is the same as pre_req's start time, if so, use the same duration + if start == pre_req.start: + duration = pre_req.time + else: + duration = tick_gen.gen_new_duration( + pre_req, time_gap=max_time_gap, size=size, start=start + ) + + if start + duration > MAX_TIME: + continue + + this_request = Request( + settings=self.settings, + addr=addr, + size=size, + start=start, + time=duration, + ) + + # check if the request will exceed time boundary + if not self._time_bound_check(this_request): + continue + + self.current_time = this_request.start + this_request.time + + # check if the request will cause HBM OOM + new_size = self._hbm_oom_check(this_request, requests) + + if new_size == 0: + continue + else: + this_request.size = new_size + requests.append(this_request) + + if len(requests) > 0: + pre_req = requests[-1] + + return requests + + def _time_bound_check(self, request: Request) -> bool: + """check if this request will cause time boundary""" + this_visit_time = request.start + request.time + if this_visit_time + self.current_time > MAX_TIME: + return False + return True + + def _hbm_oom_check( + self, + this_request: Request, + requests: List[Request], + ) -> int: + """check if this request will cause HBM OOM""" + start = this_request.start + size = this_request.size + # start >= pre_request's start time + same_time_requests = [] + for request in reversed(requests): + if request.start == start: + same_time_requests.append(request) + elif request.start < start: + break + if len(same_time_requests) > 0: + intervals = IntervalSet() + for request in same_time_requests: + intervals.add(request.addr, request.addr + request.size) + used_mem_sum = intervals.total() + if used_mem_sum + size > self.settings.M: + remain_mem = self.settings.M - used_mem_sum + return remain_mem + return size + + +class TickGenerator(ABC): + def __init__(self, settings: Settings): + self.settings = settings + + @abstractmethod + def gen_new_addr(self, pre_req: Optional[Request] = None, **kwargs) -> int: + pass + + @abstractmethod + def gen_new_size(self, pre_req: Optional[Request] = None, **kwargs) -> int: + pass + + @abstractmethod + def gen_new_duration(self, pre_req: Optional[Request] = None, **kwargs) -> int: + pass + + @abstractmethod + def gen_new_start_gap(self, pre_req: Optional[Request] = None, **kwargs) -> int: + pass + + @classmethod + def list_modes(cls) -> list[str]: + return ["naive", "markov", "markov+", "kvcache", "highload", "mixed-precision"] + + @classmethod + def from_mode(cls, mode: str, settings: Settings, **kwargs) -> TickGenerator: + match mode: + case "naive": + return TickNaiveGenerator(settings, **kwargs) + case "markov": + return TickBinMarkovGenerator(settings, **kwargs) + case "markov+": + return TickBinMarkovPlusGenerator(settings, **kwargs) + case "kvcache": + return TickKVCacheAccessGenerator(settings, **kwargs) + case "highload": + return TickHighLoadGenerator(settings, **kwargs) + case "mixed-precision": + return TickMixedPrecisionTrainingGenerator(settings, **kwargs) + case _: + raise ValueError(f"Unknown TickGenerator name: {mode}") + + +class TickNaiveGenerator(TickGenerator): + """ + Naive tick generator implementation that produces random values + for memory access parameters. + """ + + def __init__(self, settings: Settings): + super().__init__(settings) + + def gen_new_addr(self, pre_req: Optional[Request] = None, **kwargs) -> int: + return random.randint(0, self.settings.L - 1) + + def gen_new_size(self, pre_req: Optional[Request] = None, **kwargs) -> int: + return random.randint(1, self.settings.M) + + def gen_new_duration(self, pre_req: Optional[Request] = None, **kwargs) -> int: + # Use time_gap from kwargs if available, otherwise try to use pre_req's duration + time_gap = kwargs.get("time_gap", pre_req.time if pre_req else 100) + duration_time_coefficient = random.random() ** 3 + duration_time_gap = max(int(duration_time_coefficient * time_gap), 1) + duration = random.randint(1, min(duration_time_gap, MAX_TIME)) + return duration + + def gen_new_start_gap(self, pre_req: Optional[Request] = None, **kwargs) -> int: + # Use time_gap from kwargs if available, otherwise try to use pre_req's duration + time_gap = kwargs.get("time_gap", pre_req.time if pre_req else 100) + start_time_gap_coefficient = random.random() ** 4 + start_time_gap = int(start_time_gap_coefficient * time_gap) + return start_time_gap + + +class TickBinMarkovGenerator(TickGenerator): + """ + Tick generator implementation that uses Markov chains with bin-based states + to generate memory access parameters with temporal patterns. + """ + + def __init__(self, settings: Settings): + super().__init__(settings) + self.bins = self._gen_random_bins() + self.P = self._gen_random_trans_matrix(self.bins) + + @staticmethod + def _gen_random_bins() -> list: + """Randomly generate bins for duration""" + # Number of bins, range from 3 to 7 + num_bins = random.randint(3, 7) + # Start from 1 (minimum duration is 1 as well) + current_value = 1 + bins = [current_value] + for _ in range(num_bins - 1): + # Randomly select growth factor, range from 2 to 8 + growth_factor = random.uniform(2, 8) + # Generate next bin value, ensure at least increase by 5 + next_value = max(int(current_value * growth_factor), current_value + 5) + # To make bin values look like 10, 50, 100, etc., round to nearest multiple of 5 or 10 + if next_value < 50: + next_value = round(next_value / 5) * 5 + else: + next_value = round(next_value / 10) * 10 + bins.append(next_value) + current_value = next_value + + return bins + + @staticmethod + def _gen_random_trans_matrix(bins: list) -> np.ndarray: + """Generate random state transition matrix""" + k = len(bins) - 1 + P = np.zeros((k, k)) + + for i in range(k): + base_probs = np.zeros(k) + for j in range(k): + # Tend to transfer to smaller bins + base_probs[j] = np.exp(-1.0 * (j - i)) + + noise = np.random.uniform(0.5, 2, size=k) + noisy_probs = base_probs * noise + P[i] = noisy_probs / noisy_probs.sum() + + return P + + def gen_new_duration(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate a new duration using Markov chain based on previous duration's bin.""" + if pre_req is None: + random_bin_idx = random.randint(0, len(self.bins) - 2) + return random.randint( + self.bins[random_bin_idx], self.bins[random_bin_idx + 1] + ) + + pre_dur = pre_req.time + bin_idx = np.digitize([pre_dur], self.bins)[0] - 1 + bin_idx = np.clip(bin_idx, 0, self.P.shape[0] - 1) + probs = self.P[bin_idx] + probs = probs / probs.sum() # Normalize probabilities + next_bin = np.random.choice(len(probs), p=probs) + + # Generate value within the selected bin + low = self.bins[next_bin] + # Handle last bin specially to avoid index error + high = self.bins[next_bin + 1] if next_bin + 1 < len(self.bins) else low * 2 + val = np.random.uniform(low, high) + new_dur = max(1, int(round(val))) # Ensure duration is at least 1 + new_dur = min(new_dur, MAX_TIME) + return new_dur + + def gen_new_start_gap(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate a new start gap based on previous duration using normal distribution.""" + if pre_req is None: + random_bin_idx = random.randint(0, len(self.bins) - 2) + pre_dur = random.randint( + self.bins[random_bin_idx], self.bins[random_bin_idx + 1] + ) + else: + pre_dur = pre_req.time + mean_val = pre_dur * np.random.uniform(0.1, 1.0) + sigma_val = mean_val * np.random.uniform(0.1, 1.0) + gap = np.random.normal(loc=mean_val, scale=sigma_val) + new_start_gap = max(0, int(round(gap))) # Ensure gap is non-negative + return new_start_gap + + def gen_new_addr(self, pre_req: Optional[Request] = None, **kwargs) -> int: + return np.random.randint(0, self.settings.L - 1) + + def gen_new_size(self, pre_req: Optional[Request] = None, **kwargs) -> int: + return np.random.randint(1, self.settings.M) + + +class TickKVCacheAccessGenerator(TickGenerator): + """ + KV-cache access pattern generator, simulates KV-cache access behavior during large language model inference. + + Features: + 1. Sequential memory region access + 2. Relatively fixed access size, usually a specific block size + 3. High access frequency, short intervals + 4. Usually short duration + """ + + def __init__( + self, + settings: Settings, + block_size: int = 64, + cache_region_start: int = 0, + cache_region_end: int = None, + ): + super().__init__(settings) + # KV-cache block size configuration + # Default 64-byte block size + self.block_size = block_size + self.cache_region_start = cache_region_start + self.cache_region_end = ( + cache_region_end if cache_region_end is not None else self.settings.L + ) + self.current_block = 0 + # Generate number of blocks + self.num_blocks = ( + self.cache_region_end - self.cache_region_start + ) // self.block_size + + def gen_new_addr(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate KV-cache access address, mainly sequential access pattern""" + # 80% probability of sequential access, 20% probability of random access (simulating non-contiguous access in attention mechanism) + if random.random() < 0.8 and pre_req is not None: + # Sequential access pattern, small fluctuations near current block + offset = random.randint(-2, 3) # Allow small jumps + self.current_block = (self.current_block + offset) % self.num_blocks + else: + # Random access pattern, may jump to any block + jump_prob = random.random() + if jump_prob < 0.3: # 30% probability of randomizing near current position + self.current_block = max( + 0, + min( + self.num_blocks - 1, self.current_block + random.randint(-5, 5) + ), + ) + else: # 70% probability of true random jump + self.current_block = random.randint(0, self.num_blocks - 1) + + # Calculate actual memory address + addr = self.cache_region_start + self.current_block * self.block_size + # Ensure address is within valid range + return min(addr, self.settings.L - self.block_size) + + def gen_new_size(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate KV-cache access size, usually fixed block size or its multiples""" + # 90% probability of using standard block size, 10% probability of using larger blocks (e.g., 2-4 consecutive blocks) + if random.random() < 0.9: + return self.block_size + else: + # Randomly select 2-4 consecutive blocks + return self.block_size * random.randint(2, 4) + + def gen_new_duration(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate KV-cache access duration, usually short""" + # KV-cache access is usually very fast + base_duration = 1 + # May have small random fluctuations + duration = max(1, int(base_duration * random.uniform(0.8, 1.5))) + return duration + + def gen_new_start_gap(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate KV-cache access interval, usually short (high-frequency access)""" + # Default base interval time + base_gap = 5 + # Use time_gap parameter from kwargs if provided + time_gap = kwargs.get("time_gap", base_gap) + # High-frequency access, interval is usually a small fraction of time_gap + return max(0, int(time_gap * random.uniform(0.1, 0.3))) + + +class TickHighLoadGenerator(TickGenerator): + """ + High-load memory access pattern generator, simulates memory access behavior of compute-intensive workloads. + + Features: + 1. Memory-intensive access, large memory blocks accessed frequently + 2. Short access intervals, simulating high throughput + 3. Some locality, but overall high randomness + 4. Relatively long duration, simulating compute operations + """ + + def __init__( + self, + settings: Settings, + min_block_size: int = 128, + max_block_size: int = 512, + locality_factor: float = 0.4, + ): + super().__init__(settings) + # High-load access configuration + self.min_block_size = min_block_size # Minimum block size + self.max_block_size = max_block_size # Maximum block size + self.locality_factor = locality_factor + self.current_region = 0 + # Define local region size + self.region_size = min(1024, self.settings.L // 4) + + def gen_new_addr(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate high-load memory access address, with some locality but overall random""" + # Decide whether to access within current region or randomly jump to new region based on locality factor + if random.random() < self.locality_factor and pre_req is not None: + # Local access within current region, allow some offset + offset = random.randint(-self.region_size // 4, self.region_size // 4) + addr = self.current_region + offset + else: + # Random jump to new region + num_regions = max(1, self.settings.L // self.region_size) + self.current_region = random.randint(0, num_regions - 1) * self.region_size + addr = self.current_region + + # Add some random offset to increase access randomness + addr += random.randint(0, self.region_size // 2) + + # Ensure address is within valid range and leaves enough space for memory block + max_addr = self.settings.L - self.max_block_size + return max(0, min(addr, max_addr)) + + def gen_new_size(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate high-load memory access size, usually large""" + # Generate a larger memory block size between min and max + size = random.randint(self.min_block_size, self.max_block_size) + # Sometimes access larger blocks (simulating batch operations) + if random.random() < 0.1: + size = size * random.randint(2, 4) + # Ensure size does not exceed physical and virtual memory limits + return min(size, self.settings.M, self.settings.L) + + def gen_new_duration(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate high-load memory access duration, usually longer""" + # Base duration, affected by time_gap parameter + base_duration = kwargs.get("time_gap", 100) * random.uniform(0.5, 1.5) + # Consider impact of access size on duration + if pre_req is not None: + # If previous request size is large, may need more time + if pre_req.size > self.max_block_size: + base_duration *= random.uniform(1.2, 2.0) + # Ensure duration is within reasonable range + duration = max(5, int(base_duration)) + return min(duration, MAX_TIME) + + def gen_new_start_gap(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate high-load memory access interval, usually short""" + # Base interval time, affected by time_gap parameter + base_gap = kwargs.get("time_gap", 100) + # Under high load, intervals are usually short but with some randomness + gap = base_gap * random.uniform(0.1, 0.4) + # May have extremely short intervals (simulating true high load) + if random.random() < 0.2: + gap = 1 + return max(0, int(gap)) + + +class TickMixedPrecisionTrainingGenerator(TickGenerator): + """ + Mixed-precision training memory access pattern generator, simulates memory access behavior during mixed-precision training of deep learning models. + + Features: + 1. Alternating access to different precision data regions (simulating FP16, FP32, etc.) + 2. Frequent switching between weights, gradients, and optimizer states + 3. Clear training cycle patterns including forward propagation, backward propagation, and parameter updates + 4. Memory access shows certain regularity and cyclical nature + """ + + def __init__( + self, + settings: Settings, + layer_size: int = 256, + num_layers: int = 10, + model_region_start: int = 0, + ): + super().__init__(settings) + # Mixed-precision training configuration + self.layer_size = layer_size # Size per layer + # Number of network layers + self.num_layers = num_layers + self.region_start = model_region_start + + self.current_layer = 0 + self.current_phase = ( + 0 # 0: forward propagation, 1: backward propagation, 2: parameter update + ) + self.current_access_type = 0 # 0: weights, 1: gradients, 2: optimizer states + + def gen_new_addr(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate mixed-precision training memory access address, simulating access to different training phases and data types""" + # Update current training phase and access type, simulating training cycle + if random.random() < 0.1 or pre_req is None: + # 10% probability to switch to next phase + self.current_phase = (self.current_phase + 1) % 3 + + # Update access type and layer based on phase + if self.current_phase == 0: # Forward propagation + self.current_access_type = 0 # Mainly access weights + self.current_layer = random.randint(0, self.num_layers - 1) + elif self.current_phase == 1: # Backward propagation + self.current_access_type = 1 # Mainly access gradients + self.current_layer = random.randint(0, self.num_layers - 1) + else: # Parameter update + self.current_access_type = random.randint( + 0, 2 + ) # Randomly access weights, gradients, or optimizer states + self.current_layer = random.randint(0, self.num_layers - 1) + + # Calculate address based on current phase, access type, and layer + region_offset = self.current_access_type * self.layer_size * self.num_layers + layer_offset = self.current_layer * self.layer_size + addr = self.region_start + region_offset + layer_offset + + # Add some random offset to simulate accessing different parts within the layer + addr += random.randint(0, self.layer_size // 2) + + # Ensure address is within valid range + max_addr = self.settings.L - 64 # Leave enough space for memory block + return max(0, min(addr, max_addr)) + + def gen_new_size(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate mixed-precision training memory access size, simulating access to different precision data""" + # Determine access size based on access type and phase + if self.current_phase == 0: # Forward propagation, may use low precision data + if random.random() < 0.6: # 60% probability to use half precision size + base_size = 32 # Simulate FP16 access + else: + base_size = 64 # Simulate FP32 access + elif ( + self.current_phase == 1 + ): # Backward propagation, may mix different precisions + if random.random() < 0.5: # 50% probability to use half precision size + base_size = 32 + else: + base_size = 64 + else: # Parameter update, usually high precision + if random.random() < 0.2: # 20% probability to use half precision size + base_size = 32 + else: + base_size = 64 + + # May adjust size based on current access type + if self.current_access_type == 2: # Optimizer states may be larger + base_size = base_size * 2 + + # Add some random variation + size = int(base_size * random.uniform(0.8, 1.5)) + # Ensure size is power of 2 (common data alignment requirement) + size = 2 ** int(np.ceil(np.log2(max(16, size)))) + return min(size, self.settings.M, self.settings.L) + + def gen_new_duration(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate mixed-precision training memory access duration, simulating operations with different computational intensities""" + # Base duration time, affected by time_gap parameter + base_duration = kwargs.get("time_gap", 100) * random.uniform(0.3, 0.8) + + # Adjust duration based on phase + if self.current_phase == 0: # Forward propagation + base_duration *= random.uniform(0.8, 1.2) + elif ( + self.current_phase == 1 + ): # Backward propagation (usually more resource intensive) + base_duration *= random.uniform(1.2, 2.0) + else: # Parameter update + base_duration *= random.uniform(0.5, 1.0) + + # Ensure duration is within reasonable range + duration = max(3, int(base_duration)) + return min(duration, MAX_TIME) + + def gen_new_start_gap(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate mixed-precision training memory access interval, simulating computation and memory access switching during training""" + # Base interval time, affected by time_gap parameter + base_gap = kwargs.get("time_gap", 100) + + # Adjust interval based on phase + if self.current_phase == 0: # Forward propagation + gap = base_gap * random.uniform(0.1, 0.3) + elif self.current_phase == 1: # Backward propagation + gap = base_gap * random.uniform(0.15, 0.4) + else: # Parameter update + gap = base_gap * random.uniform(0.2, 0.5) + + # May have burst continuous access during training + if random.random() < 0.1: + gap = 1 + + return max(0, int(gap)) + + +class TickBinMarkovPlusGenerator(TickGenerator): + """ + Tick generator implementation that uses Markov chains with bin-based states + to generate memory access parameters with temporal patterns. + """ + + def __init__(self, settings: Settings): + super().__init__(settings) + self.bins = self._gen_random_bins() + self.P = self._gen_random_trans_matrix(self.bins) + + @staticmethod + def _gen_random_bins() -> list: + """Randomly generate bins for duration""" + # Number of bins, range from 3 to 7 + num_bins = random.randint(3, 7) + # Start from 1 (minimum duration is 1 as well) + current_value = 1 + bins = [current_value] + for _ in range(num_bins - 1): + # Randomly select growth factor, range from 2 to 8 + growth_factor = random.uniform(2, 8) + # Generate next bin value, ensure at least increase by 5 + next_value = max(int(current_value * growth_factor), current_value + 5) + # To make bin values look like 10, 50, 100, etc., round to nearest multiple of 5 or 10 + if next_value < 50: + next_value = round(next_value / 5) * 5 + else: + next_value = round(next_value / 10) * 10 + bins.append(next_value) + current_value = next_value + + return bins + + @staticmethod + def _gen_random_trans_matrix(bins: list) -> np.ndarray: + """Generate random state transition matrix""" + k = len(bins) - 1 + P = np.zeros((k, k)) + + for i in range(k): + base_probs = np.zeros(k) + for j in range(k): + # Tend to transfer to smaller bins + base_probs[j] = np.exp(-1.0 * (j - i)) + + noise = np.random.uniform(0.5, 2, size=k) + noisy_probs = base_probs * noise + P[i] = noisy_probs / noisy_probs.sum() + + return P + + def gen_new_duration(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate a new duration using Markov chain based on previous duration's bin.""" + cur_start = kwargs.get("start", 0) + cur_req_size = kwargs.get("size", 1) + if pre_req is None: + random_bin_idx = random.randint(0, len(self.bins) - 2) + return random.randint( + self.bins[random_bin_idx], self.bins[random_bin_idx + 1] + ) + + prob_for_large_duration = np.random.random() + remain_time_budget_ratio = (MAX_TIME - pre_req.start) / MAX_TIME + prob_for_large_duration *= remain_time_budget_ratio + + if prob_for_large_duration < 1 / 2: + pre_dur = pre_req.time + bin_idx = np.digitize([pre_dur], self.bins)[0] - 1 + bin_idx = np.clip(bin_idx, 0, self.P.shape[0] - 1) + probs = self.P[bin_idx] + probs = probs / probs.sum() # Normalize probabilities + next_bin = np.random.choice(len(probs), p=probs) + + # Generate value within the selected bin + low = self.bins[next_bin] + # Handle last bin specially to avoid index error + high = self.bins[next_bin + 1] if next_bin + 1 < len(self.bins) else low * 2 + val = np.random.uniform(low, high) + new_dur = max(1, int(round(val))) # Ensure duration is at least 1 + else: + io_time = (cur_req_size * MEM_BANDWIDTH) % self.settings.M + multiplier = float(np.random.uniform(0.5, 3.0)) + required_min = max(1, int(io_time * multiplier)) + if cur_start + required_min > MAX_TIME: + required_min = cur_start * np.random.uniform(0.001, 0.05) + new_dur = required_min + + new_dur = min(new_dur % MAX_TIME, MAX_TIME) + return new_dur + + def gen_new_start_gap(self, pre_req: Optional[Request] = None, **kwargs) -> int: + """Generate a new start gap based on previous duration using normal distribution.""" + if pre_req is None: + random_bin_idx = random.randint(0, len(self.bins) - 2) + pre_dur = random.randint( + self.bins[random_bin_idx], self.bins[random_bin_idx + 1] + ) + else: + pre_dur = pre_req.time + + randomly_prob = np.random.random() + remain_time_budget_ratio = (MAX_TIME - pre_req.start) / MAX_TIME + randomly_prob *= remain_time_budget_ratio + + if randomly_prob < 1 / 2: + mean_val = pre_dur * np.random.uniform(0.1, 0.5) + sigma_val = mean_val * np.random.uniform(1, 2) + gap = np.random.normal(loc=mean_val, scale=sigma_val) + new_start_gap = max(0, int(round(gap))) # Ensure gap is non-negative + elif 1 / 2 <= randomly_prob < 1 and pre_req: + pre_io_time = pre_req.size * MEM_BANDWIDTH + pre_comp_time = pre_req.time + alpha = np.random.random() + new_start_gap = int(alpha * pre_io_time + (1 - alpha) * pre_comp_time) + else: + new_start_gap = 0 + if MAX_TIME - pre_req.start < new_start_gap: + new_start_gap = 0 + return new_start_gap + + def gen_new_addr(self, pre_req: Optional[Request] = None, **kwargs) -> int: + return np.random.randint(0, self.settings.L - 1) + + def gen_new_size(self, pre_req: Optional[Request] = None, **kwargs) -> int: + return np.random.randint(1, self.settings.M) diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/logger.py" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/logger.py" new file mode 100644 index 0000000000000000000000000000000000000000..5d33d0d298253ca289bbf0e08a7b3ef78f9f7371 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/logger.py" @@ -0,0 +1,26 @@ +import logging + +import colorlog + +logger = logging.getLogger("colorlog") + + +def init(color="auto"): + handler = colorlog.StreamHandler() + if color == "always" or color == "auto" and handler.stream.isatty(): + handler.setFormatter( + colorlog.ColoredFormatter( + "%(log_color)s[%(levelname)s]%(reset)s %(message)s", + log_colors={ + "DEBUG": "cyan", + "INFO": "green", + "WARNING": "yellow", + "ERROR": "red", + "CRITICAL": "bold_red,bg_white", + }, + ) + ) + else: + handler.setFormatter(logging.Formatter("[%(levelname)s] %(message)s")) + logger.addHandler(handler) + logger.setLevel(logging.INFO) diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/main.py" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/main.py" new file mode 100755 index 0000000000000000000000000000000000000000..315320f50cc27e396c6332d526b6eac7e5b5e8df --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/main.py" @@ -0,0 +1,546 @@ +#!/usr/bin/env python3 + +from __future__ import annotations + +import argparse +import logging +import os +import resource +import signal +import sys +import time + +import logger +from model import Settings, Action, Request + + +DESCRIPTION = "Tool for ChinaSoft 2025 Heterogeneous Memory Challenge." +CPU_LIMIT = int(os.environ.get("CPU_LIMIT", 10)) # 10 seconds +RAM_LIMIT = int(os.environ.get("RAM_LIMIT", 1)) * 1024**3 # 1 GiB + + +def file_path(parser, s, allow_stdin: bool = True) -> str: + if os.path.isfile(s) or (allow_stdin and s == "-"): + return s + parser.error(f"File '{s}' does not exist.") + + +def parse_extra_args(parser, extra_args): + kwargs = {} + key = None + + for arg in extra_args: + if arg.startswith("-"): + key = arg.lstrip("-") + kwargs[key] = True + else: + if key is None: + parser.error(f"Unexpected argument '{arg}' without a preceding key.") + kwargs[key] = arg + key = None + + return kwargs + + +def set_resource_limits(memory_limit=RAM_LIMIT): + """ + Set resource limits for memory usage. + + Args: + memory_limit: Maximum memory in bytes (default: RAM_LIMIT) + """ + try: + # Set memory limit (in bytes) + resource.setrlimit(resource.RLIMIT_AS, (memory_limit, memory_limit)) + except (ValueError, OSError) as e: + logger.logger.warning(f"Failed to set resource limits: {e}") + + +class TimeoutException(Exception): + """Exception raised when algorithm execution times out.""" + + pass + + +def timeout_handler(signum, frame): + """Handler for SIGALRM - raises TimeoutException.""" + raise TimeoutException("Algorithm exceeded time limit") + + +def common_parser() -> argparse.ArgumentParser: + parser = argparse.ArgumentParser(description=DESCRIPTION) + parser.add_argument( + "-c", + "--color", + choices=["auto", "always", "never"], + help="Colorize the output. (default: auto)", + default="auto", + ) + parser.add_argument( + "-i", + "--input", + required=True, + type=lambda s: file_path(parser, s), + help="Input file for the tool. (or '-' for stdin)", + ) + return parser + + +def do_data_gen() -> int: + from generator import RequestBuilder, TickGenerator + + parser = argparse.ArgumentParser(description=DESCRIPTION) + parser.add_argument( + "-c", + "--color", + choices=["auto", "always", "never"], + help="Colorize the output. (default: auto)", + default="auto", + ) + parser.add_argument( + "-i", + "--input", + required=True, + help="Input file for the tool. (or '-' for stdout)", + ) + parser.add_argument( + "-f", + "--force", + action="store_true", + help="Overwrite the input file if it already exists.", + ) + parser.add_argument("--seed", type=int, default=42, help="Random seed.") + parser.add_argument( + "-m", + "--mode", + choices=TickGenerator.list_modes(), + default=TickGenerator.list_modes()[0], + help="Mode of data generation.", + ) + parser.add_argument( + "-g", + "--max-time-gap", + type=int, + default=100, + help="Max time gap between two consecutive requests.", + ) + parser.add_argument( + "-L", + "--virtual-memory-size", + type=int, + default=1000, + help="Virtual memory size.", + ) + parser.add_argument( + "-M", + "--physical-memory-size", + type=int, + default=800, + help="Physical memory size.", + ) + parser.add_argument( + "-N", + "--num-requests", + type=int, + default=10, + help="Number of requests to generate.", + ) + parser.add_argument("extra_args", nargs=argparse.REMAINDER) + + args = parser.parse_args() + extra_args = parse_extra_args(parser, args.extra_args) + + if os.path.exists(args.input) and args.input != "-": + if args.force: + import shutil + + if os.path.isfile(args.input): + os.remove(args.input) + else: + shutil.rmtree(args.input) + else: + parser.error(f"Path '{args.input}' already exists.") + + logger.init(args.color) + + settings = Settings( + args.virtual_memory_size, args.physical_memory_size, args.num_requests + ) + generator = TickGenerator.from_mode(args.mode, settings, **extra_args) + builder = RequestBuilder(settings) + requests = builder.build(generator, args.max_time_gap, seed=args.seed) + settings.N = len(requests) + + with ( + sys.stdout if args.input == "-" else open(args.input, "w", encoding="utf-8") + ) as input_textio: + Request.into_textio(input_textio, settings, requests) + + return 0 + + +def do_migrate() -> int: + from migrator import Migrator + + parser = argparse.ArgumentParser(description=DESCRIPTION) + parser.add_argument("inputs", nargs="+", help="Input files to migrate.") + parser.add_argument( + "-m", + "--migration", + choices=Migrator.list_types(), + required=True, + help="Migration type.", + ) + args = parser.parse_args() + + migrator = Migrator.from_type(args.migration) + for inp in args.inputs: + with open(inp, "r", encoding="utf-8") as input_textio: + settings, requests = Request.from_textio(input_textio) + migrated_requests = migrator.migrate(settings, requests) + with open(inp, "w", encoding="utf-8") as output_textio: + Request.into_textio(output_textio, settings, migrated_requests) + + return 0 + + +def do_solve() -> int: + from algorithms import Algorithm + + parser = common_parser() + parser.add_argument( + "-o", + "--output", + required=True, + help="Output file for the solution. (or '-' for stdout)", + ) + parser.add_argument( + "-f", + "--force", + action="store_true", + help="Overwrite the output file if it already exists.", + ) + parser.add_argument( + "-a", + "--algorithm", + choices=Algorithm.list_names(), + default=Algorithm.best_name(), + help="Algorithm to use for solving the problem.", + ) + parser.add_argument( + "--check-limit", + action="store_true", + help="Check resource limits during execution.", + ) + args = parser.parse_args() + + if args.input == "-" and args.output == "-": + parser.error("Input and output cannot both be stdin ('-').") + + if os.path.exists(args.output) and args.output != "-": + if args.force: + import shutil + + if os.path.isfile(args.output): + os.remove(args.output) + else: + shutil.rmtree(args.output) + else: + parser.error(f"Path '{args.output}' already exists.") + + logger.init(args.color) + + def run(): + now = time.time() + with ( + sys.stdin if args.input == "-" else open(args.input, "r", encoding="utf-8") + ) as input_textio: + settings, requests = Request.from_textio(input_textio) + + algorithm = Algorithm.from_name(args.algorithm, settings) + + actions = algorithm.fit(requests) + with ( + sys.stdout + if args.output == "-" + else open(args.output, "w", encoding="utf-8") + ) as output_textio: + Action.into_textio(output_textio, actions) + elapsed = time.time() - now + logger.logger.info(f"Algorithm finished in {elapsed:.2f} seconds 🚀") + + if args.check_limit: + limit_state = None + set_resource_limits(memory_limit=RAM_LIMIT) + try: + old_handler = signal.signal(signal.SIGALRM, timeout_handler) + signal.alarm(CPU_LIMIT) + + try: + run() + finally: + # Cancel the alarm and restore old handler + signal.alarm(0) + signal.signal(signal.SIGALRM, old_handler) + + except TimeoutException: + limit_state = "CPU" + return 1 + except MemoryError: + limit_state = "Memory" + return 1 + finally: + # Log the state here instead of in the except blocks to avoid memory limit issues + if limit_state == "CPU": + logger.logger.error("❌ Algorithm exceeded CPU limit") + elif limit_state == "Memory": + logger.logger.error("❌ Algorithm exceeded memory limit") + else: + run() + + return 0 + + +def do_validate() -> int: + from validator import Validator + + parser = common_parser() + parser.add_argument( + "-o", + "--output", + type=lambda s: file_path(parser, s), + help="Output file for validation. If not provided, only input validation is performed. \ +(or '-' for stdin)", + ) + parser.add_argument( + "--current-best", + type=str, + help="File containing the current best solution to compare against.", + ) + parser.add_argument( + "--strict-best", + action="store_true", + help="Fail if not better than current best.", + ) + parser.add_argument( + "-v", "--verbose", action="store_true", help="Enable verbose output." + ) + args = parser.parse_args() + + if args.input == "-" and args.output == "-": + parser.error("Input and output cannot both be stdin ('-').") + + logger.init(args.color) + + if args.verbose: + logger.logger.setLevel(logging.DEBUG) + + with ( + sys.stdin if args.input == "-" else open(args.input, "r", encoding="utf-8") + ) as input_textio: + settings, requests = Request.from_textio(input_textio) + if args.output: + with ( + sys.stdin + if args.output == "-" + else open(args.output, "r", encoding="utf-8") + ) as output_textio: + actions = Action.from_textio(settings, requests, output_textio) + else: + actions = None + validator = Validator(settings, requests, actions, verbose=args.verbose) + if not validator.validate(): + return 1 + + if args.current_best and actions: + fin_time = actions[-1].time + if os.path.exists(args.current_best): + with open(args.current_best, "r", encoding="utf-8") as best_textio: + best_time = int(best_textio.readline().strip()) + if fin_time > best_time: + if args.strict_best: + logger.logger.error( + f"Solution is not better than the current best. ❌ {fin_time} > {best_time}" + ) + return 1 + else: + logger.logger.warning( + f"Solution is not better than the current best. ⚠️ {fin_time} > {best_time}" + ) + elif fin_time < best_time: + logger.logger.info(f"New best solution found! 🎉 {fin_time} < {best_time}") + with open(args.current_best, "w", encoding="utf-8") as best_textio: + best_textio.write(f"{actions[-1].time}\n") + else: + with open(args.current_best, "w", encoding="utf-8") as best_textio: + best_textio.write(f"{actions[-1].time}\n") + return 0 + + +def do_visualise() -> int: + from validator import Validator + from visualizer import Visualizer + + parser = common_parser() + parser.add_argument( + "-o", + "--output", + required=True, + type=lambda s: file_path(parser, s), + help="Output file for validation. (or '-' for stdin)", + ) + parser.add_argument( + "-p", + "--path", + type=str, + required=True, + help="Path to save the visualization output. Suggest an SVG file.", + ) + parser.add_argument( + "-f", + "--force", + action="store_true", + help="Overwrite the output path if it already exists.", + ) + parser.add_argument( + "--trust", + action="store_true", + help="Trust that the input and output are valid. Skips validation step.", + ) + args = parser.parse_args() + + if args.input == "-" and args.output == "-": + parser.error("Input and output cannot both be stdin ('-').") + + if os.path.exists(args.path): + if args.force: + import shutil + + if os.path.isfile(args.path): + os.remove(args.path) + else: + shutil.rmtree(args.path) + else: + parser.error(f"Path '{args.path}' already exists.") + + logger.init(args.color) + + with ( + sys.stdin if args.input == "-" else open(args.input, "r", encoding="utf-8") + ) as input_textio: + settings, requests = Request.from_textio(input_textio) + with ( + sys.stdin if args.output == "-" else open(args.output, "r", encoding="utf-8") + ) as output_textio: + actions = Action.from_textio(settings, requests, output_textio) + + if not args.trust: + validator = Validator(settings, requests, actions, verbose=False) + if not validator.validate(): + return 1 + + visualizer = Visualizer(settings, requests, actions) + visualizer.visualize(args.path) + return 0 + + +def do_compare() -> int: + import re + + from comparator import Comparator + + parser = argparse.ArgumentParser(description=DESCRIPTION) + parser.add_argument( + "-i", + "--input", + required=True, + type=lambda s: file_path(parser, s, allow_stdin=False), + help="Input file for the tool.", + ) + parser.add_argument( + "-o", + "--outputs", + required=True, + nargs="+", + type=lambda s: file_path(parser, s, allow_stdin=False), + help="Output files to compare.", + ) + parser.add_argument( + "--input-pattern", + type=str, + default="{name}.in", + help="Input file pattern with '{name}' placeholder.", + ) + parser.add_argument( + "--output-pattern", + type=str, + default="{name}.{algo}.out", + help="Output file pattern with '{name}' and '{algo}' placeholders.", + ) + parser.add_argument( + "-s", + "--style", + type=str, + default="markdown", + choices=Comparator.list_styles(), + help="Output style for comparison table.", + ) + args = parser.parse_args() + + input_re = re.escape(args.input_pattern).replace(r"\{name\}", r"(?P.+)") + output_re = ( + re.escape(args.output_pattern) + .replace(r"\{name\}", r"(?P.+)") + .replace(r"\{algo\}", r"(?P.+)") + ) + input_match = re.match(input_re, args.input) + if not input_match: + parser.error( + f"Input file '{args.input}' does not match the input pattern '{args.input_pattern}'." + ) + input_name = input_match.group("name") + with open(args.input, "r", encoding="utf-8") as input_textio: + settings, requests = Request.from_textio(input_textio) + + actions_dict = {} + for output_file in args.outputs: + output_match = re.match(output_re, output_file) + if not output_match: + parser.error( + f"Output file '{output_file}' does not match the output pattern '{args.output_pattern}'." + ) + output_name = output_match.group("name") + algo_name = output_match.group("algo") + if output_name != input_name: + parser.error( + f"Output file '{output_file}' name '{output_name}' does not match input name '{input_name}'." + ) + with open(output_file, "r", encoding="utf-8") as output_textio: + actions = Action.from_textio(settings, requests, output_textio) + actions_dict[algo_name] = actions + + comparator = Comparator(settings, requests, actions_dict, args.style) + sys.stdout.write(comparator.emit_table()) + return 0 + + +if __name__ == "__main__": + match os.path.basename(sys.argv[0]): + case "data-gen": + exit(do_data_gen()) + case "migrate": + exit(do_migrate()) + case "solve": + exit(do_solve()) + case "validate": + exit(do_validate()) + case "visualise": + exit(do_visualise()) + case "compare": + exit(do_compare()) + case _: + print( + "Please invoke one of the specific tools: data-gen, migrate, solve, validate, visualise, compare.", + file=sys.stderr, + ) + exit(1) diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/migrator.py" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/migrator.py" new file mode 100644 index 0000000000000000000000000000000000000000..d515c535f90d139aad36d5df1034274c90ca36db --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/migrator.py" @@ -0,0 +1,52 @@ +from __future__ import annotations + +from abc import ABC, abstractmethod + +from model import Settings, Request + + +class Migrator(ABC): + @abstractmethod + def migrate(self, settings: Settings, requests: list[Request]) -> list[Request]: + pass + + @classmethod + def list_types(cls) -> list[str]: + return ["v1-to-v2"] + + @classmethod + def from_type(cls, typ: str) -> Migrator: + match typ: + case "v1-to-v2": + return MigratorV1() + case _: + raise ValueError(f"Unknown migrator type: {typ}") + + +class MigratorV1(Migrator): + """ + This migrator handles migration for version 1 requests. + """ + + def migrate(self, settings: Settings, requests: list[Request]) -> list[Request]: + """ + In V1, requests that have identical `start` may have different `time`. However, V2 says + that requests with identical `start` must also have identical `time`. Therefore, we need + to migrate the requests by grouping them by `start` and assigning a proper `time` for each + group. + """ + migrated_requests: list[Request] = [] + start_to_time: dict[int, int] = {} + for request in requests: + if request.start not in start_to_time: + start_to_time[request.start] = request.time + migrated_requests.append( + Request( + settings, + request.addr, + request.size, + request.start, + start_to_time[request.start], + ) + ) + return migrated_requests diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/model.py" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/model.py" new file mode 100644 index 0000000000000000000000000000000000000000..bf1a02dbbf0422ad9b0a0f43fa803e1bf9cbb174 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/model.py" @@ -0,0 +1,196 @@ +from __future__ import annotations + +from abc import ABC, abstractmethod +from dataclasses import dataclass +from typing import TextIO + +MAX_MEM_SIZE = 100000 +MAX_REQ_NUM = 10000 +MAX_TIME = 10**9 +MEM_BANDWIDTH = 40 + + +@dataclass +class Settings: + def __init__(self, L: int, M: int, N: int) -> None: + assert 1 <= M <= L <= MAX_MEM_SIZE, "Constraints on L and M are not satisfied." + assert 1 <= N <= MAX_REQ_NUM, "Constraints on N are not satisfied." + self.L = L # Virtual memory size + self.M = M # Physical memory size + self.N = N # Number of requests + + def __repr__(self): + return f"Settings(L={self.L}, M={self.M}, N={self.N})" + + +class Action(ABC): + def __init__(self, time: int) -> None: + self.time = time + + @abstractmethod + def cost(self) -> int: + raise NotImplementedError + + @abstractmethod + def __str__(self) -> str: + raise NotImplementedError + + @abstractmethod + def __repr__(self): + return NotImplementedError + + @classmethod + def from_textio( + cls, settings: Settings, requests: list[Request], textio: TextIO + ) -> list[Action]: + lines = textio.readlines() + actions: list[Action] = [] + for line in lines: + parts = line.strip().split() + action_type = parts[0] + + match action_type: + case "Reload": + time, addr, size = map(int, parts[1:]) + actions.append(ReloadAction(settings, time, addr, size)) + case "Visit": + time, index = map(int, parts[1:]) + assert 0 <= index < settings.N, "Request index is out of bounds." + actions.append(VisitAction(settings, time, index, requests[index])) + case "Offload": + time, addr, size = map(int, parts[1:]) + actions.append(OffloadAction(settings, time, addr, size)) + case "Fin": + time = int(parts[1]) + actions.append(FinAction(time)) + case _: + raise ValueError(f"Unknown action type: {action_type}") + + return actions + + @classmethod + def into_textio(cls, textio: TextIO, actions: list[Action]) -> None: + for action in actions: + textio.write(str(action) + "\n") + + +class ReloadAction(Action): + def __init__(self, settings: Settings, time: int, addr: int, size: int) -> None: + super().__init__(time) + assert 0 <= addr < settings.L, "Address is out of bounds." + assert 1 <= addr + size <= settings.L, "Size exceeds memory limit." + self.addr = addr + self.size = size + + def cost(self) -> int: + return MEM_BANDWIDTH * self.size + + def __str__(self) -> str: + return f"Reload {self.time} {self.addr} {self.size}" + + def __repr__(self): + return f"ReloadAction(time={self.time}, addr={self.addr}, size={self.size})" + + +class VisitAction(Action): + def __init__(self, settings: Settings, time: int, index: int, req: Request) -> None: + super().__init__(time) + assert 0 <= index < settings.N, "Request index is out of bounds." + self.index = index + self.request = req + + def cost(self) -> int: + return self.request.time + + def __str__(self) -> str: + return f"Visit {self.time} {self.index}" + + def __repr__(self): + return f"VisitAction(time={self.time}, index={self.index}, request={repr(self.request)})" + + +class OffloadAction(Action): + def __init__(self, settings: Settings, time: int, addr: int, size: int) -> None: + super().__init__(time) + assert 0 <= addr < settings.L, "Address is out of bounds." + assert 1 <= addr + size <= settings.L, "Size exceeds memory limit." + self.addr = addr + self.size = size + + def cost(self) -> int: + return MEM_BANDWIDTH * self.size + + def __str__(self) -> str: + return f"Offload {self.time} {self.addr} {self.size}" + + def __repr__(self): + return f"OffloadAction(time={self.time}, addr={self.addr}, size={self.size})" + + +class FinAction(Action): + def __init__(self, time: int) -> None: + super().__init__(time) + + def cost(self) -> int: + return 0 + + def __str__(self) -> str: + return f"Fin {self.time}" + + def __repr__(self): + return f"FinAction(time={self.time})" + + +@dataclass +class Request: + def __init__( + self, settings: Settings, addr: int, size: int, start: int, time: int + ) -> None: + assert 0 <= addr < settings.L, "Address is out of bounds." + assert 1 <= addr + size <= settings.L, "Size exceeds memory limit." + assert 0 <= start, "Start time is out of bounds." + assert 1 <= start + time <= MAX_TIME, "Duration time is out of bounds." + self.addr = addr + self.size = size + self.start = start + self.time = time + + def __eq__(self, value): + if not isinstance(value, Request): + return False + return ( + self.addr == value.addr + and self.size == value.size + and self.start == value.start + and self.time == value.time + ) + + def __str__(self): + return f"{self.addr} {self.size} {self.start} {self.time}" + + def __repr__(self): + return f"Request(addr={self.addr}, size={self.size}, start={self.start}, time={self.time})" + + @classmethod + def from_textio(cls, textio: TextIO) -> list[Request]: + lines = textio.readlines() + L, M, N = map(int, lines[0].strip().split()) + settings = Settings(L, M, N) + + assert len(lines) == N + 1, "Number of lines does not match N." + + requests = [] + for i in range(1, N + 1): + addr, size, start, time = map(int, lines[i].strip().split()) + requests.append(Request(settings, addr, size, start, time)) + + return settings, requests + + @classmethod + def into_textio( + cls, textio: TextIO, settings: Settings, requests: list[Request] + ) -> None: + assert len(requests) == settings.N, "Number of requests does not match N." + textio.write(f"{settings.L} {settings.M} {settings.N}\n") + for req in requests: + textio.write(str(req) + "\n") diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/official-checker/.gitignore" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/official-checker/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..fbbdd5f1d852d8c97cff81fa43ab3f1e6ea0f9e7 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/official-checker/.gitignore" @@ -0,0 +1 @@ +checker diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/official-checker/Makefile" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/official-checker/Makefile" new file mode 100644 index 0000000000000000000000000000000000000000..39965a94641080e97ddf868bfdceb05b3edcc561 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/official-checker/Makefile" @@ -0,0 +1,10 @@ +TARGET := checker +SRC := checker.cc + +all: $(TARGET) + +$(TARGET): $(SRC) + g++ -O2 -g -o $@ $< + +clean: + rm -f $(TARGET) diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/official-checker/README.md" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/official-checker/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..0b1716c7b6813539c616e7985074f58fac0aa9ea --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/official-checker/README.md" @@ -0,0 +1,3 @@ +# THIS FOLDER IS COPIED FROM CHINASOFT 25 HETEROGENEOUS MEMORY CHALLENGE OFFICIAL REPOSITORY + +The official repository of the Heterogeneous Memory Challenge checker can be found at: https://gitee.com/openeuler/heterogeneous_systems_programming diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/official-checker/checker.cc" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/official-checker/checker.cc" new file mode 100644 index 0000000000000000000000000000000000000000..a23aa85b9daa9b9b58003a8e06dbf961a6fd6f95 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/official-checker/checker.cc" @@ -0,0 +1,194 @@ +#include "testlib.h" + +struct Input { + int L, M, N; + struct Ops { + int addr, size, start, tim; + }; + std::vector ops; +}input; + +struct Output { + struct Ops { + std::string opName; + uint64_t T; + int A, S; + }; + std::vector ops; +}output; + +void check_input() +{ + input.L = inf.readInt(1, 100000, "L"); + input.M = inf.readInt(1, input.L, "M"); + input.N = inf.readInt(1, 10000, "N"); + int last_start = -1; + int N = input.N, L = input.L; + for (int i = 0; i < N; i++) { + int addr = inf.readInt(0, L - 1, "addr_i"); + int size = inf.readInt(1, L, "size_i"); + int start = inf.readInt(0, 1e9, "start_i"); + int tim = inf.readInt(0, 1e9, "time_i"); + quitif(addr + size > L, _fail, "[Invalid Input] addr + size > L, where addr = %d, size = %d, L = %d", addr, size, L); + quitif(start < last_start, _fail, "[Invalid Input] start[%d] > start[%d] (%d > %d)", i - 1, i, last_start, start); + if (start == last_start) { + quitif(input.ops[i - 1].tim != tim, _fail, "[Invalid Input] start[%d] == start[%d] but time[%d] != time[%d]", + i - 1, i, i - 1, i); + } + last_start = start; + input.ops.push_back({addr, size, start, tim}); + } + if (inf.seekEof() == false) { + quitf(_fail, "[Invalid Input] Find task numbers greater than N (which is %d).", N); + } + inf.readEof(); +} + +void check_output() +{ + int last_visit = -1; + uint64_t last_T = 0; + int totalReadLines = 0; + bool finish = false; + std::vector duplicate(input.N, false); + + while (!finish) { + std::string opName = ouf.readWord(); + uint64_t T; + int A, S = 0; + totalReadLines++; + if (totalReadLines > 10 * input.N) { + quitf(_pe, "[Invalid Output] Too many lines. %d > 10n", totalReadLines); + } + if (opName == "Reload") { + T = ouf.readLong(0, (long long)1e18, "T"); + A = ouf.readInt(0, input.L - 1, "A"); + S = ouf.readInt(1, input.L, "S"); + quitif(A + S > input.L, _wa, "[Invalid Output] Reload addr + size > L, where addr = %d, size = %d, L = %d", A, S, input.L); + } else if (opName == "Visit") { + T = ouf.readLong(0, (long long)1e18, "T"); + A = ouf.readInt(0, input.N - 1, "A"); + quitif(duplicate[A], _wa, "[Invalid Output] Output (Visit %d) more than once.", A); + duplicate[A] = true; + if (last_visit != -1 && input.ops[last_visit].start == input.ops[A].start) { + // PASS. We do not care the Visit order in the same task. + } else { + quitif(last_visit >= A, _wa, "[Invalid Output] Tasks are not finished by input sequence. %d >= %d. Op[%d] = (%s %llu %d)", + last_visit, A, totalReadLines - 1, opName.c_str(), T, A); + } + last_visit = A; + } else if (opName == "Offload") { + T = ouf.readLong(0, (long long)1e18, "T"); + A = ouf.readInt(0, input.L - 1, "A"); + S = ouf.readInt(1, input.L, "S"); + quitif(A + S > input.L, _wa, "[Invalid Output] Offload addr + size > L, where addr = %d, size = %d, L = %d.", A, S, input.L); + } else if (opName == "Fin") { + T = ouf.readLong(0, (long long)1e18, "T"); + finish = true; + } else { + quitf(_wa, "[Invalid Output] Unknown operator %s", opName.c_str()); + } + quitif(last_T > T, _wa, "[Invalid Output] Output T is not ascending. %llu > %llu. Op[%d] = (%s %llu ...)", + last_T, T, totalReadLines - 1, opName.c_str(), T); + last_T = T; + output.ops.push_back({opName, T, A, S}); + } + int finish_tasks = 0; + for (int i = 0; i < input.N; i++) { + if (duplicate[i]) { + finish_tasks++; + } + } + quitif(finish_tasks != input.N, _wa, "[Invalid Output] Output did not finish all Visit tasks. %d != N (which is %d)", finish_tasks, input.N); + if (ouf.seekEof() == false) { + quitf(_pe, "[Invalid Output] Find extra lines after output Fin."); + } + ouf.readEof(); +} + +uint64_t get_score() +{ + const int MEM_OFFLOAD = -2; + const int MEM_RELOAD = -1; + const uint64_t multiple_IO = 40; + std::vector in_mem(input.L, MEM_OFFLOAD); + std::vector task_finish_at(input.N, 0); + int use_mem = 0; + int nr_output = output.ops.size(); + int last_visit = -1; + uint64_t score = 0; + uint64_t io_time = 0, npu_time = 0; + for (int i = 0; i < nr_output; i++) { + auto curr = output.ops[i]; + if (curr.opName == "Reload") { + quitif(io_time > curr.T, _wa, "[Invalid Output] IO is busy. Last IO task finish at %llu. Op[%d] = (%s %llu %d %d)", + io_time, i, curr.opName.c_str(), curr.T, curr.A, curr.S); + int cnt_tomem = 0; + for (int j = curr.A; j < curr.A + curr.S; j++) { + if (in_mem[j] == MEM_OFFLOAD) { + cnt_tomem++; + in_mem[j] = MEM_RELOAD; + } + } + use_mem += cnt_tomem; + quitif(use_mem > input.M, _wa, "[Invalid Output] Out of Memory. use_mem = %d, M = %d. Op[%d] = (%s %llu %d %d)", + use_mem, input.M, i, curr.opName.c_str(), curr.T, curr.A, curr.S); + io_time = curr.T + multiple_IO * cnt_tomem; + } else if (curr.opName == "Visit") { + uint64_t this_task_finish_time = curr.T + input.ops[curr.A].tim; + if (last_visit != -1 && input.ops[last_visit].start == input.ops[curr.A].start) { + // The same task. + quitif(this_task_finish_time != npu_time, _wa, "[Invalid Output] Visit %d and Visit %d must start at the same time. Op[%d] = (%s %llu %d)", + last_visit, curr.A, i, curr.opName.c_str(), curr.T, curr.A); + } else { + quitif(npu_time > curr.T, _wa, "[Invalid Output] NPU is busy. Last NPU task finish at %llu. Op[%d] = (%s %llu %d)", + npu_time, i, curr.opName.c_str(), curr.T, curr.A); + npu_time = this_task_finish_time; + } + task_finish_at[curr.A] = this_task_finish_time; + last_visit = curr.A; + quitif(curr.T < input.ops[curr.A].start, _wa, "[Invalid Output] Task %d is not ready. Start time = %llu. Op[%d] = (%s %llu %d)", + curr.A, input.ops[curr.A].start, i, curr.opName.c_str(), curr.T, curr.A); + for (int j = input.ops[curr.A].addr; j < input.ops[curr.A].addr + input.ops[curr.A].size; j++) { + quitif(in_mem[j] == MEM_OFFLOAD, _wa, "[Invalid Output] Addr %d is not in memory. Op[%d] = (%s %llu %d)", + j, i, curr.opName.c_str(), curr.T, curr.A); + if (in_mem[j] == MEM_RELOAD || task_finish_at[in_mem[j]] < task_finish_at[curr.A]) { + in_mem[j] = curr.A; + } + } + } else if (curr.opName == "Offload") { + quitif(io_time > curr.T, _wa, "[Invalid Output] IO is busy. Last IO task finish at %llu. Op[%d] = (%s %llu %d %d)", + io_time, i, curr.opName.c_str(), curr.T, curr.A, curr.S); + int cnt_offmem = 0; + for (int j = curr.A; j < curr.A + curr.S; j++) { + if (in_mem[j] == MEM_OFFLOAD) { + continue; + } + if (in_mem[j] != MEM_RELOAD) { + quitif(curr.T < task_finish_at[in_mem[j]], _wa, "[Invalid Output] Addr %d is used by NPU task %d at T=%llu. Op[%d] = (%s %llu %d %d)", + j, in_mem[j], curr.T, i, curr.opName.c_str(), curr.T, curr.A, curr.S); + } + cnt_offmem++; + in_mem[j] = MEM_OFFLOAD; + } + use_mem -= cnt_offmem; + io_time = curr.T + multiple_IO * cnt_offmem; + } else if (curr.opName == "Fin") { + score = std::max(io_time, npu_time); + quitif(score > curr.T, _wa, "[Invalid Output] Output Fin, but not all the resources are freed. Last IO task finish at %llu, Last NPU task finish at %llu", + io_time, npu_time); + score = curr.T; + } + } + return score; +} + +int main(int argc, char *argv[]) +{ + setName("Global_Memory_Planning_for_LLM"); + registerTestlibCmd(argc, argv); + check_input(); + check_output(); + auto score = get_score(); + quitf(_ok, "All tasks finish at %llu", score); +} diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/official-checker/testlib.h" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/official-checker/testlib.h" new file mode 100644 index 0000000000000000000000000000000000000000..4e1d3682e1a0e7c2000ed9c2b24587062646fe91 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/official-checker/testlib.h" @@ -0,0 +1,6299 @@ +/* + * It is strictly recommended to include "testlib.h" before any other include + * in your code. In this case testlib overrides compiler specific "random()". + * + * If you can't compile your code and compiler outputs something about + * ambiguous call of "random_shuffle", "rand" or "srand" it means that + * you shouldn't use them. Use "shuffle", and "rnd.next()" instead of them + * because these calls produce stable result for any C++ compiler. Read + * sample generator sources for clarification. + * + * Please read the documentation for class "random_t" and use "rnd" instance in + * generators. Probably, these sample calls will be useful for you: + * rnd.next(); rnd.next(100); rnd.next(1, 2); + * rnd.next(3.14); rnd.next("[a-z]{1,100}"). + * + * Also read about wnext() to generate off-center random distribution. + * + * See https://github.com/MikeMirzayanov/testlib/ to get latest version or bug tracker. + */ + +#ifndef _TESTLIB_H_ +#define _TESTLIB_H_ + +/* + * Copyright (c) 2005-2024 + */ + +#define VERSION "0.9.44" + +/* + * Mike Mirzayanov + * + * This material is provided "as is", with absolutely no warranty expressed + * or implied. Any use is at your own risk. + * + * Permission to use or copy this software for any purpose is hereby granted + * without fee, provided the above notices are retained on all copies. + * Permission to modify the code and to distribute modified code is granted, + * provided the above notices are retained, and a notice that the code was + * modified is included with the above copyright notice. + * + */ + +/* NOTE: This file contains testlib library for C++. + * + * Check, using testlib running format: + * check.exe [ [-appes]], + * If result file is specified it will contain results. + * + * Validator, using testlib running format: + * validator.exe < input.txt, + * It will return non-zero exit code and writes message to standard output. + * + * Generator, using testlib running format: + * gen.exe [parameter-1] [parameter-2] [... paramerter-n] + * You can write generated test(s) into standard output or into the file(s). + * + * Interactor, using testlib running format: + * interactor.exe [ [ [-appes]]], + * Reads test from inf (mapped to args[1]), writes result to tout (mapped to argv[2], + * can be judged by checker later), reads program output from ouf (mapped to stdin), + * writes output to program via stdout (use cout, printf, etc). + */ + +const char *latestFeatures[] = { + "Added ConstantBoundsLog, VariablesLog to validator testOverviewLogFile", + "Use setAppesModeEncoding to change xml encoding from windows-1251 to other", + "rnd.any/wany use distance/advance instead of -/+: now they support sets/multisets", + "Use syntax `int t = inf.readInt(1, 3, \"~t\");` to skip the lower bound check. Tildes can be used on either side or both: ~t, t~, ~t~", + "Supported EJUDGE support in registerTestlibCmd", + "Supported '--testMarkupFileName fn' and '--testCase tc/--testCaseFileName fn' for validators", + "Added opt defaults via opt(key/index, default_val); check unused opts when using has_opt or default opt (turn off this check with suppressEnsureNoUnusedOpt()).", + "For checker added --group and --testset command line params (like for validator), use checker.group() or checker.testset() to get values", + "Added quitpi(points_info, message) function to return with _points exit code 7 and given points_info", + "rnd.partition(size, sum[, min_part=1]) returns random (unsorted) partition which is a representation of the given `sum` as a sum of `size` positive integers (or >=min_part if specified)", + "rnd.distinct(size, n) and rnd.distinct(size, from, to)", + "opt(\"some_missing_key\") returns false now", + "has_opt(key)", + "Abort validator on validator.testset()/validator.group() if registered without using command line", + "Print integer range violations in a human readable way like `violates the range [1, 10^9]`", + "Opts supported: use them like n = opt(\"n\"), in a command line you can use an exponential notation", + "Reformatted", + "Use setTestCase(i) or unsetTestCase() to support test cases (you can use it in any type of program: generator, interactor, validator or checker)", + "Fixed issue #87: readStrictDouble accepts \"-0.00\"", + "Fixed issue #83: added InStream::quitif(condition, ...)", + "Fixed issue #79: fixed missed guard against repeated header include", + "Fixed issue #80: fixed UB in case of huge quitf message", + "Fixed issue #84: added readXs(size, indexBase = 1)", + "Fixed stringstream repeated usage issue", + "Fixed compilation in g++ (for std=c++03)", + "Batch of println functions (support collections, iterator ranges)", + "Introduced rnd.perm(size, first = 0) to generate a `first`-indexed permutation", + "Allow any whitespace in readInts-like functions for non-validators", + "Ignore 4+ command line arguments ifdef EJUDGE", + "Speed up of vtos", + "Show line number in validators in case of incorrect format", + "Truncate huge checker/validator/interactor message", + "Fixed issue with readTokenTo of very long tokens, now aborts with _pe/_fail depending of a stream type", + "Introduced InStream::ensure/ensuref checking a condition, returns wa/fail depending of a stream type", + "Fixed compilation in VS 2015+", + "Introduced space-separated read functions: readWords/readTokens, multilines read functions: readStrings/readLines", + "Introduced space-separated read functions: readInts/readIntegers/readLongs/readUnsignedLongs/readDoubles/readReals/readStrictDoubles/readStrictReals", + "Introduced split/tokenize functions to separate string by given char", + "Introduced InStream::readUnsignedLong and InStream::readLong with unsigned long long parameters", + "Supported --testOverviewLogFileName for validator: bounds hits + features", + "Fixed UB (sequence points) in random_t", + "POINTS_EXIT_CODE returned back to 7 (instead of 0)", + "Removed disable buffers for interactive problems, because it works unexpectedly in wine", + "InStream over string: constructor of InStream from base InStream to inherit policies and std::string", + "Added expectedButFound quit function, examples: expectedButFound(_wa, 10, 20), expectedButFound(_fail, ja, pa, \"[n=%d,m=%d]\", n, m)", + "Fixed incorrect interval parsing in patterns", + "Use registerGen(argc, argv, 1) to develop new generator, use registerGen(argc, argv, 0) to compile old generators (originally created for testlib under 0.8.7)", + "Introduced disableFinalizeGuard() to switch off finalization checkings", + "Use join() functions to format a range of items as a single string (separated by spaces or other separators)", + "Use -DENABLE_UNEXPECTED_EOF to enable special exit code (by default, 8) in case of unexpected eof. It is good idea to use it in interactors", + "Use -DUSE_RND_AS_BEFORE_087 to compile in compatibility mode with random behavior of versions before 0.8.7", + "Fixed bug with nan in stringToDouble", + "Fixed issue around overloads for size_t on x64", + "Added attribute 'points' to the XML output in case of result=_points", + "Exit codes can be customized via macros, e.g. -DPE_EXIT_CODE=14", + "Introduced InStream function readWordTo/readTokenTo/readStringTo/readLineTo for faster reading", + "Introduced global functions: format(), englishEnding(), upperCase(), lowerCase(), compress()", + "Manual buffer in InStreams, some IO speed improvements", + "Introduced quitif(bool, const char* pattern, ...) which delegates to quitf() in case of first argument is true", + "Introduced guard against missed quitf() in checker or readEof() in validators", + "Supported readStrictReal/readStrictDouble - to use in validators to check strictly float numbers", + "Supported registerInteraction(argc, argv)", + "Print checker message to the stderr instead of stdout", + "Supported TResult _points to output calculated score, use quitp(...) functions", + "Fixed to be compilable on Mac", + "PC_BASE_EXIT_CODE=50 in case of defined TESTSYS", + "Fixed issues 19-21, added __attribute__ format printf", + "Some bug fixes", + "ouf.readInt(1, 100) and similar calls return WA", + "Modified random_t to avoid integer overflow", + "Truncated checker output [patch by Stepan Gatilov]", + "Renamed class random -> class random_t", + "Supported name parameter for read-and-validation methods, like readInt(1, 2, \"n\")", + "Fixed bug in readDouble()", + "Improved ensuref(), fixed nextLine to work in case of EOF, added startTest()", + "Supported \"partially correct\", example: quitf(_pc(13), \"result=%d\", result)", + "Added shuffle(begin, end), use it instead of random_shuffle(begin, end)", + "Added readLine(const string& ptrn), fixed the logic of readLine() in the validation mode", + "Package extended with samples of generators and validators", + "Written the documentation for classes and public methods in testlib.h", + "Implemented random routine to support generators, use registerGen() to switch it on", + "Implemented strict mode to validate tests, use registerValidation() to switch it on", + "Now ncmp.cpp and wcmp.cpp are return WA if answer is suffix or prefix of the output", + "Added InStream::readLong() and removed InStream::readLongint()", + "Now no footer added to each report by default (use directive FOOTER to switch on)", + "Now every checker has a name, use setName(const char* format, ...) to set it", + "Now it is compatible with TTS (by Kittens Computing)", + "Added \'ensure(condition, message = \"\")\' feature, it works like assert()", + "Fixed compatibility with MS C++ 7.1", + "Added footer with exit code information", + "Added compatibility with EJUDGE (compile with EJUDGE directive)", + "Added compatibility with Contester (compile with CONTESTER directive)" +}; + +#ifdef _MSC_VER +#define _CRT_SECURE_NO_DEPRECATE +#define _CRT_SECURE_NO_WARNINGS +#define _CRT_NO_VA_START_VALIDATION +#endif + +/* Overrides random() for Borland C++. */ +#define random __random_deprecated +#include +#include +#include +#include +#undef random + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef TESTLIB_THROW_EXIT_EXCEPTION_INSTEAD_OF_EXIT +# include +#endif + +#if (_WIN32 || __WIN32__ || __WIN32 || _WIN64 || __WIN64__ || __WIN64 || WINNT || __WINNT || __WINNT__ || __CYGWIN__) +# if !defined(_MSC_VER) || _MSC_VER > 1400 +# define NOMINMAX 1 +# include +# else +# define WORD unsigned short +# include +# endif +# include +# define ON_WINDOWS +# if defined(_MSC_VER) && _MSC_VER > 1400 +# pragma warning( disable : 4127 ) +# pragma warning( disable : 4146 ) +# pragma warning( disable : 4458 ) +# endif +#else +# define WORD unsigned short +# include +#endif + +#if defined(FOR_WINDOWS) && defined(FOR_LINUX) +#error Only one target system is allowed +#endif + +#ifndef LLONG_MIN +#define LLONG_MIN (-9223372036854775807LL - 1) +#endif + +#ifndef ULLONG_MAX +#define ULLONG_MAX (18446744073709551615) +#endif + +#define LF ((char)10) +#define CR ((char)13) +#define TAB ((char)9) +#define SPACE ((char)' ') +#define EOFC (255) + +#ifndef OK_EXIT_CODE +# ifdef CONTESTER +# define OK_EXIT_CODE 0xAC +# else +# define OK_EXIT_CODE 0 +# endif +#endif + +#ifndef WA_EXIT_CODE +# ifdef EJUDGE +# define WA_EXIT_CODE 5 +# elif defined(CONTESTER) +# define WA_EXIT_CODE 0xAB +# else +# define WA_EXIT_CODE 1 +# endif +#endif + +#ifndef PE_EXIT_CODE +# ifdef EJUDGE +# define PE_EXIT_CODE 4 +# elif defined(CONTESTER) +# define PE_EXIT_CODE 0xAA +# else +# define PE_EXIT_CODE 2 +# endif +#endif + +#ifndef FAIL_EXIT_CODE +# ifdef EJUDGE +# define FAIL_EXIT_CODE 6 +# elif defined(CONTESTER) +# define FAIL_EXIT_CODE 0xA3 +# else +# define FAIL_EXIT_CODE 3 +# endif +#endif + +#ifndef DIRT_EXIT_CODE +# ifdef EJUDGE +# define DIRT_EXIT_CODE 6 +# else +# define DIRT_EXIT_CODE 4 +# endif +#endif + +#ifndef POINTS_EXIT_CODE +# define POINTS_EXIT_CODE 7 +#endif + +#ifndef UNEXPECTED_EOF_EXIT_CODE +# define UNEXPECTED_EOF_EXIT_CODE 8 +#endif + +#ifndef PC_BASE_EXIT_CODE +# ifdef TESTSYS +# define PC_BASE_EXIT_CODE 50 +# else +# define PC_BASE_EXIT_CODE 0 +# endif +#endif + +#ifdef __GNUC__ +# define __TESTLIB_STATIC_ASSERT(condition) typedef void* __testlib_static_assert_type[(condition) ? 1 : -1] __attribute__((unused)) +#else +# define __TESTLIB_STATIC_ASSERT(condition) typedef void* __testlib_static_assert_type[(condition) ? 1 : -1] +#endif + +#ifdef ON_WINDOWS +#define I64 "%I64d" +#define U64 "%I64u" +#else +#define I64 "%lld" +#define U64 "%llu" +#endif + +#ifdef _MSC_VER +# define NORETURN __declspec(noreturn) +#elif defined __GNUC__ +# define NORETURN __attribute__ ((noreturn)) +#else +# define NORETURN +#endif + +static char __testlib_format_buffer[16777216]; +static int __testlib_format_buffer_usage_count = 0; + +#define FMT_TO_RESULT(fmt, cstr, result) std::string result; \ + if (__testlib_format_buffer_usage_count != 0) \ + __testlib_fail("FMT_TO_RESULT::__testlib_format_buffer_usage_count != 0"); \ + __testlib_format_buffer_usage_count++; \ + va_list ap; \ + va_start(ap, fmt); \ + vsnprintf(__testlib_format_buffer, sizeof(__testlib_format_buffer), cstr, ap); \ + va_end(ap); \ + __testlib_format_buffer[sizeof(__testlib_format_buffer) - 1] = 0; \ + result = std::string(__testlib_format_buffer); \ + __testlib_format_buffer_usage_count--; \ + +#ifdef __GNUC__ +__attribute__ ((format (printf, 1, 2))) +#endif +std::string testlib_format_(const char *fmt, ...); +std::string testlib_format_(const std::string fmt, ...); + +const long long __TESTLIB_LONGLONG_MAX = 9223372036854775807LL; +const int __TESTLIB_MAX_TEST_CASE = 1073741823; + +int __testlib_exitCode; + +bool __testlib_hasTestCase; +int __testlib_testCase = -1; + +void setTestCase(int testCase); + +void unsetTestCase() { + __testlib_hasTestCase = false; + __testlib_testCase = -1; +} + +NORETURN static void __testlib_fail(const std::string &message); + +template +#ifdef __GNUC__ +__attribute__((const)) +#endif +static inline T __testlib_abs(const T &x) { + return x > 0 ? x : -x; +} + +template +#ifdef __GNUC__ +__attribute__((const)) +#endif +static inline T __testlib_min(const T &a, const T &b) { + return a < b ? a : b; +} + +template +#ifdef __GNUC__ +__attribute__((const)) +#endif +static inline T __testlib_max(const T &a, const T &b) { + return a > b ? a : b; +} + +template +#ifdef __GNUC__ +__attribute__((const)) +#endif +static inline T __testlib_crop(T value, T a, T b) { + return __testlib_min(__testlib_max(value, a), --b); +} + +#ifdef __GNUC__ +__attribute__((const)) +#endif +static inline double __testlib_crop(double value, double a, double b) { + value = __testlib_min(__testlib_max(value, a), b); + if (value >= b) + value = std::nexttoward(b, a); + return value; +} + +static bool __testlib_prelimIsNaN(double r) { + volatile double ra = r; +#ifndef __BORLANDC__ + return ((ra != ra) == true) && ((ra == ra) == false) && ((1.0 > ra) == false) && ((1.0 < ra) == false); +#else + return std::_isnan(ra); +#endif +} + +#ifdef __GNUC__ +__attribute__((const)) +#endif +static std::string removeDoubleTrailingZeroes(std::string value) { + while (!value.empty() && value[value.length() - 1] == '0' && value.find('.') != std::string::npos) + value = value.substr(0, value.length() - 1); + if (!value.empty() && value[value.length() - 1] == '.') + return value + '0'; + else + return value; +} + +#ifdef __GNUC__ +__attribute__((const)) +#endif +inline std::string upperCase(std::string s) { + for (size_t i = 0; i < s.length(); i++) + if ('a' <= s[i] && s[i] <= 'z') + s[i] = char(s[i] - 'a' + 'A'); + return s; +} + +#ifdef __GNUC__ +__attribute__((const)) +#endif +inline std::string lowerCase(std::string s) { + for (size_t i = 0; i < s.length(); i++) + if ('A' <= s[i] && s[i] <= 'Z') + s[i] = char(s[i] - 'A' + 'a'); + return s; +} + +#ifdef __GNUC__ +__attribute__((const)) +#endif +static std::string __testlib_part(const std::string &s); + +static bool __testlib_isNaN(double r) { + __TESTLIB_STATIC_ASSERT(sizeof(double) == sizeof(long long)); + volatile double ra = r; + long long llr1, llr2; + std::memcpy((void *) &llr1, (void *) &ra, sizeof(double)); + ra = -ra; + std::memcpy((void *) &llr2, (void *) &ra, sizeof(double)); + long long llnan = 0xFFF8000000000000LL; + return __testlib_prelimIsNaN(r) || llnan == llr1 || llnan == llr2; +} + +static double __testlib_nan() { + __TESTLIB_STATIC_ASSERT(sizeof(double) == sizeof(long long)); +#ifndef NAN + long long llnan = 0xFFF8000000000000LL; + double nan; + std::memcpy(&nan, &llnan, sizeof(double)); + return nan; +#else + return NAN; +#endif +} + +static bool __testlib_isInfinite(double r) { + volatile double ra = r; + return (ra > 1E300 || ra < -1E300); +} + +#ifdef __GNUC__ +__attribute__((const)) +#endif +inline bool doubleCompare(double expected, double result, double MAX_DOUBLE_ERROR) { + MAX_DOUBLE_ERROR += 1E-15; + if (__testlib_isNaN(expected)) { + return __testlib_isNaN(result); + } else if (__testlib_isInfinite(expected)) { + if (expected > 0) { + return result > 0 && __testlib_isInfinite(result); + } else { + return result < 0 && __testlib_isInfinite(result); + } + } else if (__testlib_isNaN(result) || __testlib_isInfinite(result)) { + return false; + } else if (__testlib_abs(result - expected) <= MAX_DOUBLE_ERROR) { + return true; + } else { + double minv = __testlib_min(expected * (1.0 - MAX_DOUBLE_ERROR), + expected * (1.0 + MAX_DOUBLE_ERROR)); + double maxv = __testlib_max(expected * (1.0 - MAX_DOUBLE_ERROR), + expected * (1.0 + MAX_DOUBLE_ERROR)); + return result >= minv && result <= maxv; + } +} + +#ifdef __GNUC__ +__attribute__((const)) +#endif +inline double doubleDelta(double expected, double result) { + double absolute = __testlib_abs(result - expected); + + if (__testlib_abs(expected) > 1E-9) { + double relative = __testlib_abs(absolute / expected); + return __testlib_min(absolute, relative); + } else + return absolute; +} + +/** It does nothing on non-windows and files differ from stdin/stdout/stderr. */ +static void __testlib_set_binary(std::FILE *file) { + if (NULL != file) { +#ifdef ON_WINDOWS +# ifdef _O_BINARY + if (stdin == file) +# ifdef STDIN_FILENO + return void(_setmode(STDIN_FILENO, _O_BINARY)); +# else + return void(_setmode(_fileno(stdin), _O_BINARY)); +# endif + if (stdout == file) +# ifdef STDOUT_FILENO + return void(_setmode(STDOUT_FILENO, _O_BINARY)); +# else + return void(_setmode(_fileno(stdout), _O_BINARY)); +# endif + if (stderr == file) +# ifdef STDERR_FILENO + return void(_setmode(STDERR_FILENO, _O_BINARY)); +# else + return void(_setmode(_fileno(stderr), _O_BINARY)); +# endif +# elif O_BINARY + if (stdin == file) +# ifdef STDIN_FILENO + return void(setmode(STDIN_FILENO, O_BINARY)); +# else + return void(setmode(fileno(stdin), O_BINARY)); +# endif + if (stdout == file) +# ifdef STDOUT_FILENO + return void(setmode(STDOUT_FILENO, O_BINARY)); +# else + return void(setmode(fileno(stdout), O_BINARY)); +# endif + if (stderr == file) +# ifdef STDERR_FILENO + return void(setmode(STDERR_FILENO, O_BINARY)); +# else + return void(setmode(fileno(stderr), O_BINARY)); +# endif +# endif +#endif + } +} + +#if __cplusplus > 199711L || defined(_MSC_VER) +template +#ifdef __GNUC__ +__attribute__((const)) +#endif +static std::string vtos(const T &t, std::true_type) { + if (t == 0) + return "0"; + else { + T n(t); + bool negative = n < 0; + std::string s; + while (n != 0) { + T digit = n % 10; + if (digit < 0) + digit = -digit; + s += char('0' + digit); + n /= 10; + } + std::reverse(s.begin(), s.end()); + return negative ? "-" + s : s; + } +} + +template +static std::string vtos(const T &t, std::false_type) { + std::string s; + static std::stringstream ss; + ss.str(std::string()); + ss.clear(); + ss << t; + ss >> s; + return s; +} + +template +static std::string vtos(const T &t) { + return vtos(t, std::is_integral()); +} + +/* signed case. */ +template +static std::string toHumanReadableString(const T &n, std::false_type) { + if (n == 0) + return vtos(n); + int trailingZeroCount = 0; + T n_ = n; + while (n_ % 10 == 0) + n_ /= 10, trailingZeroCount++; + if (trailingZeroCount >= 7) { + if (n_ == 1) + return "10^" + vtos(trailingZeroCount); + else if (n_ == -1) + return "-10^" + vtos(trailingZeroCount); + else + return vtos(n_) + "*10^" + vtos(trailingZeroCount); + } else + return vtos(n); +} + +/* unsigned case. */ +template +static std::string toHumanReadableString(const T &n, std::true_type) { + if (n == 0) + return vtos(n); + int trailingZeroCount = 0; + T n_ = n; + while (n_ % 10 == 0) + n_ /= 10, trailingZeroCount++; + if (trailingZeroCount >= 7) { + if (n_ == 1) + return "10^" + vtos(trailingZeroCount); + else + return vtos(n_) + "*10^" + vtos(trailingZeroCount); + } else + return vtos(n); +} + +template +static std::string toHumanReadableString(const T &n) { + return toHumanReadableString(n, std::is_unsigned()); +} +#else +template +static std::string vtos(const T& t) +{ + std::string s; + static std::stringstream ss; + ss.str(std::string()); + ss.clear(); + ss << t; + ss >> s; + return s; +} + +template +static std::string toHumanReadableString(const T &n) { + return vtos(n); +} +#endif + +template +static std::string toString(const T &t) { + return vtos(t); +} + +#if __cplusplus > 199711L || defined(_MSC_VER) +/* opts */ +void prepareOpts(int argc, char* argv[]); +#endif + +FILE* testlib_fopen_(const char* path, const char* mode) { +#ifdef _MSC_VER + FILE* result = NULL; + if (fopen_s(&result, path, mode) != 0) + return NULL; + else + return result; +#else + return std::fopen(path, mode); +#endif +} + +FILE* testlib_freopen_(const char* path, const char* mode, FILE* file) { +#ifdef _MSC_VER + FILE* result = NULL; + if (freopen_s(&result, path, mode, file) != 0) + return NULL; + else + return result; +#else + return std::freopen(path, mode, file); +#endif +} + +/* + * Very simple regex-like pattern. + * It used for two purposes: validation and generation. + * + * For example, pattern("[a-z]{1,5}").next(rnd) will return + * random string from lowercase latin letters with length + * from 1 to 5. It is easier to call rnd.next("[a-z]{1,5}") + * for the same effect. + * + * Another samples: + * "mike|john" will generate (match) "mike" or "john"; + * "-?[1-9][0-9]{0,3}" will generate (match) non-zero integers from -9999 to 9999; + * "id-([ac]|b{2})" will generate (match) "id-a", "id-bb", "id-c"; + * "[^0-9]*" will match sequences (empty or non-empty) without digits, you can't + * use it for generations. + * + * You can't use pattern for generation if it contains meta-symbol '*'. Also it + * is not recommended to use it for char-sets with meta-symbol '^' like [^a-z]. + * + * For matching very simple greedy algorithm is used. For example, pattern + * "[0-9]?1" will not match "1", because of greedy nature of matching. + * Alternations (meta-symbols "|") are processed with brute-force algorithm, so + * do not use many alternations in one expression. + * + * If you want to use one expression many times it is better to compile it into + * a single pattern like "pattern p("[a-z]+")". Later you can use + * "p.matches(std::string s)" or "p.next(random_t& rd)" to check matching or generate + * new string by pattern. + * + * Simpler way to read token and check it for pattern matching is "inf.readToken("[a-z]+")". + * + * All spaces are ignored in regex, unless escaped with \. For example, ouf.readLine("NO SOLUTION") + * will expect "NOSOLUTION", the correct call should be ouf.readLine("NO\\ SOLUTION") or + * ouf.readLine(R"(NO\ SOLUTION)") if you prefer raw string literals from C++11. + */ +class random_t; + +class pattern { +public: + /* Create pattern instance by string. */ + pattern(std::string s); + + /* Generate new string by pattern and given random_t. */ + std::string next(random_t &rnd) const; + + /* Checks if given string match the pattern. */ + bool matches(const std::string &s) const; + + /* Returns source string of the pattern. */ + std::string src() const; + +private: + bool matches(const std::string &s, size_t pos) const; + + std::string s; + std::vector children; + std::vector chars; + int from; + int to; +}; + +/* + * Use random_t instances to generate random values. It is preferred + * way to use randoms instead of rand() function or self-written + * randoms. + * + * Testlib defines global variable "rnd" of random_t class. + * Use registerGen(argc, argv, 1) to setup random_t seed be command + * line (to use latest random generator version). + * + * Random generates uniformly distributed values if another strategy is + * not specified explicitly. + */ +class random_t { +private: + unsigned long long seed; + static const unsigned long long multiplier; + static const unsigned long long addend; + static const unsigned long long mask; + static const int lim; + + long long nextBits(int bits) { + if (bits <= 48) { + seed = (seed * multiplier + addend) & mask; + return (long long) (seed >> (48 - bits)); + } else { + if (bits > 63) + __testlib_fail("random_t::nextBits(int bits): n must be less than 64"); + + int lowerBitCount = (random_t::version == 0 ? 31 : 32); + + long long left = (nextBits(31) << 32); + long long right = nextBits(lowerBitCount); + + return left ^ right; + } + } + +public: + static int version; + + /* New random_t with fixed seed. */ + random_t() + : seed(3905348978240129619LL) { + } + + /* Sets seed by command line. */ + void setSeed(int argc, char *argv[]) { + random_t p; + + seed = 3905348978240129619LL; + for (int i = 1; i < argc; i++) { + std::size_t le = std::strlen(argv[i]); + for (std::size_t j = 0; j < le; j++) + seed = seed * multiplier + (unsigned int) (argv[i][j]) + addend; + seed += multiplier / addend; + } + + seed = seed & mask; + } + + /* Sets seed by given value. */ + void setSeed(long long _seed) { + seed = (unsigned long long) _seed; + seed = (seed ^ multiplier) & mask; + } + +#ifndef __BORLANDC__ + + /* Random string value by given pattern (see pattern documentation). */ + std::string next(const std::string &ptrn) { + pattern p(ptrn); + return p.next(*this); + } + +#else + /* Random string value by given pattern (see pattern documentation). */ + std::string next(std::string ptrn) + { + pattern p(ptrn); + return p.next(*this); + } +#endif + + /* Random value in range [0, n-1]. */ + int next(int n) { + if (n <= 0) + __testlib_fail("random_t::next(int n): n must be positive"); + + if ((n & -n) == n) // n is a power of 2 + return (int) ((n * (long long) nextBits(31)) >> 31); + + const long long limit = INT_MAX / n * n; + + long long bits; + do { + bits = nextBits(31); + } while (bits >= limit); + + return int(bits % n); + } + + /* Random value in range [0, n-1]. */ + unsigned int next(unsigned int n) { + if (n >= INT_MAX) + __testlib_fail("random_t::next(unsigned int n): n must be less INT_MAX"); + return (unsigned int) next(int(n)); + } + + /* Random value in range [0, n-1]. */ + long long next(long long n) { + if (n <= 0) + __testlib_fail("random_t::next(long long n): n must be positive"); + + const long long limit = __TESTLIB_LONGLONG_MAX / n * n; + + long long bits; + do { + bits = nextBits(63); + } while (bits >= limit); + + return bits % n; + } + + /* Random value in range [0, n-1]. */ + unsigned long long next(unsigned long long n) { + if (n >= (unsigned long long) (__TESTLIB_LONGLONG_MAX)) + __testlib_fail("random_t::next(unsigned long long n): n must be less LONGLONG_MAX"); + return (unsigned long long) next((long long) (n)); + } + + /* Random value in range [0, n-1]. */ + long next(long n) { + return (long) next((long long) (n)); + } + + /* Random value in range [0, n-1]. */ + unsigned long next(unsigned long n) { + if (n >= (unsigned long) (LONG_MAX)) + __testlib_fail("random_t::next(unsigned long n): n must be less LONG_MAX"); + return (unsigned long) next((unsigned long long) (n)); + } + + /* Returns random value in range [from,to]. */ + int next(int from, int to) { + return int(next((long long) to - from + 1) + from); + } + + /* Returns random value in range [from,to]. */ + unsigned int next(unsigned int from, unsigned int to) { + return (unsigned int) (next((long long) to - from + 1) + from); + } + + /* Returns random value in range [from,to]. */ + long long next(long long from, long long to) { + return next(to - from + 1) + from; + } + + /* Returns random value in range [from,to]. */ + unsigned long long next(unsigned long long from, unsigned long long to) { + if (from > to) + __testlib_fail("random_t::next(unsigned long long from, unsigned long long to): from can't not exceed to"); + return next(to - from + 1) + from; + } + + /* Returns random value in range [from,to]. */ + long next(long from, long to) { + return next(to - from + 1) + from; + } + + /* Returns random value in range [from,to]. */ + unsigned long next(unsigned long from, unsigned long to) { + if (from > to) + __testlib_fail("random_t::next(unsigned long from, unsigned long to): from can't not exceed to"); + return next(to - from + 1) + from; + } + + /* Random double value in range [0, 1). */ + double next() { + long long left = ((long long) (nextBits(26)) << 27); + long long right = nextBits(27); + return __testlib_crop((double) (left + right) / (double) (1LL << 53), 0.0, 1.0); + } + + /* Random double value in range [0, n). */ + double next(double n) { + if (n <= 0.0) + __testlib_fail("random_t::next(double): n should be positive"); + return __testlib_crop(n * next(), 0.0, n); + } + + /* Random double value in range [from, to). */ + double next(double from, double to) { + if (from >= to) + __testlib_fail("random_t::next(double from, double to): from should be strictly less than to"); + return next(to - from) + from; + } + + /* Returns random element from container. */ + template + typename Container::value_type any(const Container &c) { + int size = int(c.size()); + if (size <= 0) + __testlib_fail("random_t::any(const Container& c): c.size() must be positive"); + typename Container::const_iterator it = c.begin(); + std::advance(it, next(size)); + return *it; + } + + /* Returns random element from iterator range. */ + template + typename Iter::value_type any(const Iter &begin, const Iter &end) { + int size = static_cast(std::distance(begin, end)); + if (size <= 0) + __testlib_fail("random_t::any(const Iter& begin, const Iter& end): range must have positive length"); + Iter it = begin; + std::advance(it, next(size)); + return *it; + } + + /* Random string value by given pattern (see pattern documentation). */ +#ifdef __GNUC__ + __attribute__ ((format (printf, 2, 3))) +#endif + std::string next(const char *format, ...) { + FMT_TO_RESULT(format, format, ptrn); + return next(ptrn); + } + + /* + * Weighted next. If type == 0 than it is usual "next()". + * + * If type = 1, than it returns "max(next(), next())" + * (the number of "max" functions equals to "type"). + * + * If type < 0, than "max" function replaces with "min". + */ + int wnext(int n, int type) { + if (n <= 0) + __testlib_fail("random_t::wnext(int n, int type): n must be positive"); + + if (abs(type) < random_t::lim) { + int result = next(n); + + for (int i = 0; i < +type; i++) + result = __testlib_max(result, next(n)); + + for (int i = 0; i < -type; i++) + result = __testlib_min(result, next(n)); + + return result; + } else { + double p; + + if (type > 0) + p = std::pow(next() + 0.0, 1.0 / (type + 1)); + else + p = 1 - std::pow(next() + 0.0, 1.0 / (-type + 1)); + + return __testlib_crop((int) (double(n) * p), 0, n); + } + } + + /* See wnext(int, int). It uses the same algorithms. */ + long long wnext(long long n, int type) { + if (n <= 0) + __testlib_fail("random_t::wnext(long long n, int type): n must be positive"); + + if (abs(type) < random_t::lim) { + long long result = next(n); + + for (int i = 0; i < +type; i++) + result = __testlib_max(result, next(n)); + + for (int i = 0; i < -type; i++) + result = __testlib_min(result, next(n)); + + return result; + } else { + double p; + + if (type > 0) + p = std::pow(next() + 0.0, 1.0 / (type + 1)); + else + p = 1 - std::pow(next() + 0.0, 1.0 / (-type + 1)); + + return __testlib_crop((long long) (double(n) * p), 0LL, n); + } + } + + /* Returns value in [0, n). See wnext(int, int). It uses the same algorithms. */ + double wnext(double n, int type) { + if (n <= 0) + __testlib_fail("random_t::wnext(double n, int type): n must be positive"); + + if (abs(type) < random_t::lim) { + double result = next(); + + for (int i = 0; i < +type; i++) + result = __testlib_max(result, next()); + + for (int i = 0; i < -type; i++) + result = __testlib_min(result, next()); + + return n * result; + } else { + double p; + + if (type > 0) + p = std::pow(next() + 0.0, 1.0 / (type + 1)); + else + p = 1 - std::pow(next() + 0.0, 1.0 / (-type + 1)); + + return __testlib_crop(n * p, 0.0, n); + } + } + + /* Returns value in [0, 1). See wnext(int, int). It uses the same algorithms. */ + double wnext(int type) { + return wnext(1.0, type); + } + + /* See wnext(int, int). It uses the same algorithms. */ + unsigned int wnext(unsigned int n, int type) { + if (n >= INT_MAX) + __testlib_fail("random_t::wnext(unsigned int n, int type): n must be less INT_MAX"); + return (unsigned int) wnext(int(n), type); + } + + /* See wnext(int, int). It uses the same algorithms. */ + unsigned long long wnext(unsigned long long n, int type) { + if (n >= (unsigned long long) (__TESTLIB_LONGLONG_MAX)) + __testlib_fail("random_t::wnext(unsigned long long n, int type): n must be less LONGLONG_MAX"); + + return (unsigned long long) wnext((long long) (n), type); + } + + /* See wnext(int, int). It uses the same algorithms. */ + long wnext(long n, int type) { + return (long) wnext((long long) (n), type); + } + + /* See wnext(int, int). It uses the same algorithms. */ + unsigned long wnext(unsigned long n, int type) { + if (n >= (unsigned long) (LONG_MAX)) + __testlib_fail("random_t::wnext(unsigned long n, int type): n must be less LONG_MAX"); + + return (unsigned long) wnext((unsigned long long) (n), type); + } + + /* Returns weighted random value in range [from, to]. */ + int wnext(int from, int to, int type) { + if (from > to) + __testlib_fail("random_t::wnext(int from, int to, int type): from can't not exceed to"); + return wnext(to - from + 1, type) + from; + } + + /* Returns weighted random value in range [from, to]. */ + int wnext(unsigned int from, unsigned int to, int type) { + if (from > to) + __testlib_fail("random_t::wnext(unsigned int from, unsigned int to, int type): from can't not exceed to"); + return int(wnext(to - from + 1, type) + from); + } + + /* Returns weighted random value in range [from, to]. */ + long long wnext(long long from, long long to, int type) { + if (from > to) + __testlib_fail("random_t::wnext(long long from, long long to, int type): from can't not exceed to"); + return wnext(to - from + 1, type) + from; + } + + /* Returns weighted random value in range [from, to]. */ + unsigned long long wnext(unsigned long long from, unsigned long long to, int type) { + if (from > to) + __testlib_fail( + "random_t::wnext(unsigned long long from, unsigned long long to, int type): from can't not exceed to"); + return wnext(to - from + 1, type) + from; + } + + /* Returns weighted random value in range [from, to]. */ + long wnext(long from, long to, int type) { + if (from > to) + __testlib_fail("random_t::wnext(long from, long to, int type): from can't not exceed to"); + return wnext(to - from + 1, type) + from; + } + + /* Returns weighted random value in range [from, to]. */ + unsigned long wnext(unsigned long from, unsigned long to, int type) { + if (from > to) + __testlib_fail("random_t::wnext(unsigned long from, unsigned long to, int type): from can't not exceed to"); + return wnext(to - from + 1, type) + from; + } + + /* Returns weighted random double value in range [from, to). */ + double wnext(double from, double to, int type) { + if (from >= to) + __testlib_fail("random_t::wnext(double from, double to, int type): from should be strictly less than to"); + return wnext(to - from, type) + from; + } + + /* Returns weighted random element from container. */ + template + typename Container::value_type wany(const Container &c, int type) { + int size = int(c.size()); + if (size <= 0) + __testlib_fail("random_t::wany(const Container& c, int type): c.size() must be positive"); + typename Container::const_iterator it = c.begin(); + std::advance(it, wnext(size, type)); + return *it; + } + + /* Returns weighted random element from iterator range. */ + template + typename Iter::value_type wany(const Iter &begin, const Iter &end, int type) { + int size = static_cast(std::distance(begin, end)); + if (size <= 0) + __testlib_fail( + "random_t::any(const Iter& begin, const Iter& end, int type): range must have positive length"); + Iter it = begin; + std::advance(it, wnext(size, type)); + return *it; + } + + /* Returns random permutation of the given size (values are between `first` and `first`+size-1)*/ + template + std::vector perm(T size, E first) { + if (size < 0) + __testlib_fail("random_t::perm(T size, E first = 0): size must non-negative"); + else if (size == 0) + return std::vector(); + std::vector p(size); + E current = first; + for (T i = 0; i < size; i++) + p[i] = current++; + if (size > 1) + for (T i = 1; i < size; i++) + std::swap(p[i], p[next(i + 1)]); + return p; + } + + /* Returns random permutation of the given size (values are between 0 and size-1)*/ + template + std::vector perm(T size) { + return perm(size, T(0)); + } + + /* Returns `size` unordered (unsorted) distinct numbers between `from` and `to`. */ + template + std::vector distinct(int size, T from, T to) { + std::vector result; + if (size == 0) + return result; + + if (from > to) + __testlib_fail("random_t::distinct expected from <= to"); + + if (size < 0) + __testlib_fail("random_t::distinct expected size >= 0"); + + uint64_t n = to - from + 1; + if (uint64_t(size) > n) + __testlib_fail("random_t::distinct expected size <= to - from + 1"); + + double expected = 0.0; + for (int i = 1; i <= size; i++) + expected += double(n) / double(n - i + 1); + + if (expected < double(n)) { + std::set vals; + while (int(vals.size()) < size) { + T x = T(next(from, to)); + if (vals.insert(x).second) + result.push_back(x); + } + } else { + if (n > 1000000000) + __testlib_fail("random_t::distinct here expected to - from + 1 <= 1000000000"); + std::vector p(perm(int(n), from)); + result.insert(result.end(), p.begin(), p.begin() + size); + } + + return result; + } + + /* Returns `size` unordered (unsorted) distinct numbers between `0` and `upper`-1. */ + template + std::vector distinct(int size, T upper) { + if (size < 0) + __testlib_fail("random_t::distinct expected size >= 0"); + if (size == 0) + return std::vector(); + + if (upper <= 0) + __testlib_fail("random_t::distinct expected upper > 0"); + if (size > upper) + __testlib_fail("random_t::distinct expected size <= upper"); + + return distinct(size, T(0), upper - 1); + } + + /* Returns random (unsorted) partition which is a representation of sum as a sum of integers not less than min_part. */ + template + std::vector partition(int size, T sum, T min_part) { + if (size < 0) + __testlib_fail("random_t::partition: size < 0"); + if (size == 0 && sum != 0) + __testlib_fail("random_t::partition: size == 0 && sum != 0"); + if (min_part * size > sum) + __testlib_fail("random_t::partition: min_part * size > sum"); + if (size == 0 && sum == 0) + return std::vector(); + + T sum_ = sum; + sum -= min_part * size; + + std::vector septums(size); + std::vector d = distinct(size - 1, T(1), T(sum + size - 1)); + for (int i = 0; i + 1 < size; i++) + septums[i + 1] = d[i]; + sort(septums.begin(), septums.end()); + + std::vector result(size); + for (int i = 0; i + 1 < size; i++) + result[i] = septums[i + 1] - septums[i] - 1; + result[size - 1] = sum + size - 1 - septums.back(); + + for (std::size_t i = 0; i < result.size(); i++) + result[i] += min_part; + + T result_sum = 0; + for (std::size_t i = 0; i < result.size(); i++) + result_sum += result[i]; + if (result_sum != sum_) + __testlib_fail("random_t::partition: partition sum is expected to be the given sum"); + + if (*std::min_element(result.begin(), result.end()) < min_part) + __testlib_fail("random_t::partition: partition min is expected to be no less than the given min_part"); + + if (int(result.size()) != size || result.size() != (size_t) size) + __testlib_fail("random_t::partition: partition size is expected to be equal to the given size"); + + return result; + } + + /* Returns random (unsorted) partition which is a representation of sum as a sum of positive integers. */ + template + std::vector partition(int size, T sum) { + return partition(size, sum, T(1)); + } +}; + +const int random_t::lim = 25; +const unsigned long long random_t::multiplier = 0x5DEECE66DLL; +const unsigned long long random_t::addend = 0xBLL; +const unsigned long long random_t::mask = (1LL << 48) - 1; +int random_t::version = -1; + +/* Pattern implementation */ +bool pattern::matches(const std::string &s) const { + return matches(s, 0); +} + +static bool __pattern_isSlash(const std::string &s, size_t pos) { + return s[pos] == '\\'; +} + +#ifdef __GNUC__ +__attribute__((pure)) +#endif +static bool __pattern_isCommandChar(const std::string &s, size_t pos, char value) { + if (pos >= s.length()) + return false; + + int slashes = 0; + + int before = int(pos) - 1; + while (before >= 0 && s[before] == '\\') + before--, slashes++; + + return slashes % 2 == 0 && s[pos] == value; +} + +static char __pattern_getChar(const std::string &s, size_t &pos) { + if (__pattern_isSlash(s, pos)) + pos += 2; + else + pos++; + + return s[pos - 1]; +} + +#ifdef __GNUC__ +__attribute__((pure)) +#endif +static int __pattern_greedyMatch(const std::string &s, size_t pos, const std::vector chars) { + int result = 0; + + while (pos < s.length()) { + char c = s[pos++]; + if (!std::binary_search(chars.begin(), chars.end(), c)) + break; + else + result++; + } + + return result; +} + +std::string pattern::src() const { + return s; +} + +bool pattern::matches(const std::string &s, size_t pos) const { + std::string result; + + if (to > 0) { + int size = __pattern_greedyMatch(s, pos, chars); + if (size < from) + return false; + if (size > to) + size = to; + pos += size; + } + + if (children.size() > 0) { + for (size_t child = 0; child < children.size(); child++) + if (children[child].matches(s, pos)) + return true; + return false; + } else + return pos == s.length(); +} + +std::string pattern::next(random_t &rnd) const { + std::string result; + result.reserve(20); + + if (to == INT_MAX) + __testlib_fail("pattern::next(random_t& rnd): can't process character '*' for generation"); + + if (to > 0) { + int count = rnd.next(to - from + 1) + from; + for (int i = 0; i < count; i++) + result += chars[rnd.next(int(chars.size()))]; + } + + if (children.size() > 0) { + int child = rnd.next(int(children.size())); + result += children[child].next(rnd); + } + + return result; +} + +static void __pattern_scanCounts(const std::string &s, size_t &pos, int &from, int &to) { + if (pos >= s.length()) { + from = to = 1; + return; + } + + if (__pattern_isCommandChar(s, pos, '{')) { + std::vector parts; + std::string part; + + pos++; + + while (pos < s.length() && !__pattern_isCommandChar(s, pos, '}')) { + if (__pattern_isCommandChar(s, pos, ',')) + parts.push_back(part), part = "", pos++; + else + part += __pattern_getChar(s, pos); + } + + if (part != "") + parts.push_back(part); + + if (!__pattern_isCommandChar(s, pos, '}')) + __testlib_fail("pattern: Illegal pattern (or part) \"" + s + "\""); + + pos++; + + if (parts.size() < 1 || parts.size() > 2) + __testlib_fail("pattern: Illegal pattern (or part) \"" + s + "\""); + + std::vector numbers; + + for (size_t i = 0; i < parts.size(); i++) { + if (parts[i].length() == 0) + __testlib_fail("pattern: Illegal pattern (or part) \"" + s + "\""); + int number; +#ifdef _MSC_VER + if (sscanf_s(parts[i].c_str(), "%d", &number) != 1) +#else + if (std::sscanf(parts[i].c_str(), "%d", &number) != 1) +#endif + __testlib_fail("pattern: Illegal pattern (or part) \"" + s + "\""); + numbers.push_back(number); + } + + if (numbers.size() == 1) + from = to = numbers[0]; + else + from = numbers[0], to = numbers[1]; + + if (from > to) + __testlib_fail("pattern: Illegal pattern (or part) \"" + s + "\""); + } else { + if (__pattern_isCommandChar(s, pos, '?')) { + from = 0, to = 1, pos++; + return; + } + + if (__pattern_isCommandChar(s, pos, '*')) { + from = 0, to = INT_MAX, pos++; + return; + } + + if (__pattern_isCommandChar(s, pos, '+')) { + from = 1, to = INT_MAX, pos++; + return; + } + + from = to = 1; + } +} + +static std::vector __pattern_scanCharSet(const std::string &s, size_t &pos) { + if (pos >= s.length()) + __testlib_fail("pattern: Illegal pattern (or part) \"" + s + "\""); + + std::vector result; + + if (__pattern_isCommandChar(s, pos, '[')) { + pos++; + bool negative = __pattern_isCommandChar(s, pos, '^'); + if (negative) + pos++; + + char prev = 0; + + while (pos < s.length() && !__pattern_isCommandChar(s, pos, ']')) { + if (__pattern_isCommandChar(s, pos, '-') && prev != 0) { + pos++; + + if (pos + 1 == s.length() || __pattern_isCommandChar(s, pos, ']')) { + result.push_back(prev); + prev = '-'; + continue; + } + + char next = __pattern_getChar(s, pos); + if (prev > next) + __testlib_fail("pattern: Illegal pattern (or part) \"" + s + "\""); + + for (char c = prev; c != next; c++) + result.push_back(c); + result.push_back(next); + + prev = 0; + } else { + if (prev != 0) + result.push_back(prev); + prev = __pattern_getChar(s, pos); + } + } + + if (prev != 0) + result.push_back(prev); + + if (!__pattern_isCommandChar(s, pos, ']')) + __testlib_fail("pattern: Illegal pattern (or part) \"" + s + "\""); + + pos++; + + if (negative) { + std::sort(result.begin(), result.end()); + std::vector actuals; + for (int code = 0; code < 255; code++) { + char c = char(code); + if (!std::binary_search(result.begin(), result.end(), c)) + actuals.push_back(c); + } + result = actuals; + } + + std::sort(result.begin(), result.end()); + } else + result.push_back(__pattern_getChar(s, pos)); + + return result; +} + +pattern::pattern(std::string s) : s(s), from(0), to(0) { + std::string t; + for (size_t i = 0; i < s.length(); i++) + if (!__pattern_isCommandChar(s, i, ' ')) + t += s[i]; + s = t; + + int opened = 0; + int firstClose = -1; + std::vector seps; + + for (size_t i = 0; i < s.length(); i++) { + if (__pattern_isCommandChar(s, i, '(')) { + opened++; + continue; + } + + if (__pattern_isCommandChar(s, i, ')')) { + opened--; + if (opened == 0 && firstClose == -1) + firstClose = int(i); + continue; + } + + if (opened < 0) + __testlib_fail("pattern: Illegal pattern (or part) \"" + s + "\""); + + if (__pattern_isCommandChar(s, i, '|') && opened == 0) + seps.push_back(int(i)); + } + + if (opened != 0) + __testlib_fail("pattern: Illegal pattern (or part) \"" + s + "\""); + + if (seps.size() == 0 && firstClose + 1 == (int) s.length() + && __pattern_isCommandChar(s, 0, '(') && __pattern_isCommandChar(s, s.length() - 1, ')')) { + children.push_back(pattern(s.substr(1, s.length() - 2))); + } else { + if (seps.size() > 0) { + seps.push_back(int(s.length())); + int last = 0; + + for (size_t i = 0; i < seps.size(); i++) { + children.push_back(pattern(s.substr(last, seps[i] - last))); + last = seps[i] + 1; + } + } else { + size_t pos = 0; + chars = __pattern_scanCharSet(s, pos); + __pattern_scanCounts(s, pos, from, to); + if (pos < s.length()) + children.push_back(pattern(s.substr(pos))); + } + } +} + +/* End of pattern implementation */ + +template +inline bool isEof(C c) { + return c == EOFC; +} + +template +inline bool isEoln(C c) { + return (c == LF || c == CR); +} + +template +inline bool isBlanks(C c) { + return (c == LF || c == CR || c == SPACE || c == TAB); +} + +inline std::string trim(const std::string &s) { + if (s.empty()) + return s; + + int left = 0; + while (left < int(s.length()) && isBlanks(s[left])) + left++; + if (left >= int(s.length())) + return ""; + + int right = int(s.length()) - 1; + while (right >= 0 && isBlanks(s[right])) + right--; + if (right < 0) + return ""; + + return s.substr(left, right - left + 1); +} + +enum TMode { + _input, _output, _answer +}; + +/* Outcomes 6-15 are reserved for future use. */ +enum TResult { + _ok = 0, + _wa = 1, + _pe = 2, + _fail = 3, + _dirt = 4, + _points = 5, + _unexpected_eof = 8, + _partially = 16 +}; + +enum TTestlibMode { + _unknown, _checker, _validator, _generator, _interactor, _scorer +}; + +#define _pc(exitCode) (TResult(_partially + (exitCode))) + +/* Outcomes 6-15 are reserved for future use. */ +const std::string outcomes[] = { + "accepted", + "wrong-answer", + "presentation-error", + "fail", + "fail", +#ifndef PCMS2 + "points", +#else + "relative-scoring", +#endif + "reserved", + "reserved", + "unexpected-eof", + "reserved", + "reserved", + "reserved", + "reserved", + "reserved", + "reserved", + "reserved", + "partially-correct" +}; + +class InputStreamReader { +public: + virtual void setTestCase(int testCase) = 0; + + virtual std::vector getReadChars() = 0; + + virtual int curChar() = 0; + + virtual int nextChar() = 0; + + virtual void skipChar() = 0; + + virtual void unreadChar(int c) = 0; + + virtual std::string getName() = 0; + + virtual bool eof() = 0; + + virtual void close() = 0; + + virtual int getLine() = 0; + + virtual ~InputStreamReader() = 0; +}; + +InputStreamReader::~InputStreamReader() { + // No operations. +} + +class StringInputStreamReader : public InputStreamReader { +private: + std::string s; + size_t pos; + +public: + StringInputStreamReader(const std::string &content) : s(content), pos(0) { + // No operations. + } + + void setTestCase(int) { + __testlib_fail("setTestCase not implemented in StringInputStreamReader"); + } + + std::vector getReadChars() { + __testlib_fail("getReadChars not implemented in StringInputStreamReader"); + } + + int curChar() { + if (pos >= s.length()) + return EOFC; + else + return s[pos]; + } + + int nextChar() { + if (pos >= s.length()) { + pos++; + return EOFC; + } else + return s[pos++]; + } + + void skipChar() { + pos++; + } + + void unreadChar(int c) { + if (pos == 0) + __testlib_fail("StringInputStreamReader::unreadChar(int): pos == 0."); + pos--; + if (pos < s.length()) + s[pos] = char(c); + } + + std::string getName() { + return __testlib_part(s); + } + + int getLine() { + return -1; + } + + bool eof() { + return pos >= s.length(); + } + + void close() { + // No operations. + } +}; + +class FileInputStreamReader : public InputStreamReader { +private: + std::FILE *file; + std::string name; + int line; + std::vector undoChars; + std::vector readChars; + std::vector undoReadChars; + + inline int postprocessGetc(int getcResult) { + if (getcResult != EOF) + return getcResult; + else + return EOFC; + } + + int getc(FILE *file) { + int c; + int rc; + + if (undoChars.empty()) { + c = rc = ::getc(file); + } else { + c = undoChars.back(); + undoChars.pop_back(); + rc = undoReadChars.back(); + undoReadChars.pop_back(); + } + + if (c == LF) + line++; + + readChars.push_back(rc); + return c; + } + + int ungetc(int c/*, FILE* file*/) { + if (!readChars.empty()) { + undoReadChars.push_back(readChars.back()); + readChars.pop_back(); + } + if (c == LF) + line--; + undoChars.push_back(c); + return c; + } + +public: + FileInputStreamReader(std::FILE *file, const std::string &name) : file(file), name(name), line(1) { + // No operations. + } + + void setTestCase(int testCase) { + if (testCase < 0 || testCase > __TESTLIB_MAX_TEST_CASE) + __testlib_fail(testlib_format_("testCase expected fit in [1,%d], but %d doesn't", __TESTLIB_MAX_TEST_CASE, testCase)); + readChars.push_back(testCase + 256); + } + + std::vector getReadChars() { + return readChars; + } + + int curChar() { + if (feof(file)) + return EOFC; + else { + int c = getc(file); + ungetc(c/*, file*/); + return postprocessGetc(c); + } + } + + int nextChar() { + if (feof(file)) + return EOFC; + else + return postprocessGetc(getc(file)); + } + + void skipChar() { + getc(file); + } + + void unreadChar(int c) { + ungetc(c/*, file*/); + } + + std::string getName() { + return name; + } + + int getLine() { + return line; + } + + bool eof() { + if (NULL == file || feof(file)) + return true; + else { + int c = nextChar(); + if (c == EOFC || (c == EOF && feof(file))) + return true; + unreadChar(c); + return false; + } + } + + void close() { + if (NULL != file) { + fclose(file); + file = NULL; + } + } +}; + +class BufferedFileInputStreamReader : public InputStreamReader { +private: + static const size_t BUFFER_SIZE; + static const size_t MAX_UNREAD_COUNT; + + std::FILE *file; + std::string name; + int line; + + char *buffer; + bool *isEof; + int bufferPos; + size_t bufferSize; + + bool refill() { + if (NULL == file) + __testlib_fail("BufferedFileInputStreamReader: file == NULL (" + getName() + ")"); + + if (bufferPos >= int(bufferSize)) { + size_t readSize = fread( + buffer + MAX_UNREAD_COUNT, + 1, + BUFFER_SIZE - MAX_UNREAD_COUNT, + file + ); + + if (readSize < BUFFER_SIZE - MAX_UNREAD_COUNT + && ferror(file)) + __testlib_fail("BufferedFileInputStreamReader: unable to read (" + getName() + ")"); + + bufferSize = MAX_UNREAD_COUNT + readSize; + bufferPos = int(MAX_UNREAD_COUNT); + std::memset(isEof + MAX_UNREAD_COUNT, 0, sizeof(isEof[0]) * readSize); + + return readSize > 0; + } else + return true; + } + + char increment() { + char c; + if ((c = buffer[bufferPos++]) == LF) + line++; + return c; + } + +public: + BufferedFileInputStreamReader(std::FILE *file, const std::string &name) : file(file), name(name), line(1) { + buffer = new char[BUFFER_SIZE]; + isEof = new bool[BUFFER_SIZE]; + bufferSize = MAX_UNREAD_COUNT; + bufferPos = int(MAX_UNREAD_COUNT); + } + + ~BufferedFileInputStreamReader() { + if (NULL != buffer) { + delete[] buffer; + buffer = NULL; + } + if (NULL != isEof) { + delete[] isEof; + isEof = NULL; + } + } + + void setTestCase(int) { + __testlib_fail("setTestCase not implemented in BufferedFileInputStreamReader"); + } + + std::vector getReadChars() { + __testlib_fail("getReadChars not implemented in BufferedFileInputStreamReader"); + } + + int curChar() { + if (!refill()) + return EOFC; + + return isEof[bufferPos] ? EOFC : buffer[bufferPos]; + } + + int nextChar() { + if (!refill()) + return EOFC; + + return isEof[bufferPos] ? EOFC : increment(); + } + + void skipChar() { + increment(); + } + + void unreadChar(int c) { + bufferPos--; + if (bufferPos < 0) + __testlib_fail("BufferedFileInputStreamReader::unreadChar(int): bufferPos < 0"); + isEof[bufferPos] = (c == EOFC); + buffer[bufferPos] = char(c); + if (c == LF) + line--; + } + + std::string getName() { + return name; + } + + int getLine() { + return line; + } + + bool eof() { + return !refill() || EOFC == curChar(); + } + + void close() { + if (NULL != file) { + fclose(file); + file = NULL; + } + } +}; + +const size_t BufferedFileInputStreamReader::BUFFER_SIZE = 2000000; +const size_t BufferedFileInputStreamReader::MAX_UNREAD_COUNT = BufferedFileInputStreamReader::BUFFER_SIZE / 2; + +/* + * Streams to be used for reading data in checkers or validators. + * Each read*() method moves pointer to the next character after the + * read value. + */ +struct InStream { + /* Do not use them. */ + InStream(); + + ~InStream(); + + /* Wrap std::string with InStream. */ + InStream(const InStream &baseStream, std::string content); + + InputStreamReader *reader; + int lastLine; + + std::string name; + TMode mode; + bool opened; + bool stdfile; + bool strict; + + int wordReserveSize; + std::string _tmpReadToken; + + int readManyIteration; + size_t maxFileSize; + size_t maxTokenLength; + size_t maxMessageLength; + + void init(std::string fileName, TMode mode); + + void init(std::FILE *f, TMode mode); + + void setTestCase(int testCase); + std::vector getReadChars(); + + /* Moves stream pointer to the first non-white-space character or EOF. */ + void skipBlanks(); + + /* Returns current character in the stream. Doesn't remove it from stream. */ + char curChar(); + + /* Moves stream pointer one character forward. */ + void skipChar(); + + /* Returns current character and moves pointer one character forward. */ + char nextChar(); + + /* Returns current character and moves pointer one character forward. */ + char readChar(); + + /* As "readChar()" but ensures that the result is equal to given parameter. */ + char readChar(char c); + + /* As "readChar()" but ensures that the result is equal to the space (code=32). */ + char readSpace(); + + /* Puts back the character into the stream. */ + void unreadChar(char c); + + /* Reopens stream, you should not use it. */ + void reset(std::FILE *file = NULL); + + /* Checks that current position is EOF. If not it doesn't move stream pointer. */ + bool eof(); + + /* Moves pointer to the first non-white-space character and calls "eof()". */ + bool seekEof(); + + /* + * Checks that current position contains EOLN. + * If not it doesn't move stream pointer. + * In strict mode expects "#13#10" for windows or "#10" for other platforms. + */ + bool eoln(); + + /* Moves pointer to the first non-space and non-tab character and calls "eoln()". */ + bool seekEoln(); + + /* Moves stream pointer to the first character of the next line (if exists). */ + void nextLine(); + + /* + * Reads new token. Ignores white-spaces into the non-strict mode + * (strict mode is used in validators usually). + */ + std::string readWord(); + + /* The same as "readWord()", it is preferred to use "readToken()". */ + std::string readToken(); + + /* The same as "readWord()", but ensures that token matches to given pattern. */ + std::string readWord(const std::string &ptrn, const std::string &variableName = ""); + + std::string readWord(const pattern &p, const std::string &variableName = ""); + + std::vector + readWords(int size, const std::string &ptrn, const std::string &variablesName = "", int indexBase = 1); + + std::vector + readWords(int size, const pattern &p, const std::string &variablesName = "", int indexBase = 1); + + std::vector readWords(int size, int indexBase = 1); + + /* The same as "readToken()", but ensures that token matches to given pattern. */ + std::string readToken(const std::string &ptrn, const std::string &variableName = ""); + + std::string readToken(const pattern &p, const std::string &variableName = ""); + + std::vector + readTokens(int size, const std::string &ptrn, const std::string &variablesName = "", int indexBase = 1); + + std::vector + readTokens(int size, const pattern &p, const std::string &variablesName = "", int indexBase = 1); + + std::vector readTokens(int size, int indexBase = 1); + + void readWordTo(std::string &result); + + void readWordTo(std::string &result, const pattern &p, const std::string &variableName = ""); + + void readWordTo(std::string &result, const std::string &ptrn, const std::string &variableName = ""); + + void readTokenTo(std::string &result); + + void readTokenTo(std::string &result, const pattern &p, const std::string &variableName = ""); + + void readTokenTo(std::string &result, const std::string &ptrn, const std::string &variableName = ""); + + /* + * Reads new long long value. Ignores white-spaces into the non-strict mode + * (strict mode is used in validators usually). + */ + long long readLong(); + + unsigned long long readUnsignedLong(); + + /* + * Reads new int. Ignores white-spaces into the non-strict mode + * (strict mode is used in validators usually). + */ + int readInteger(); + + /* + * Reads new int. Ignores white-spaces into the non-strict mode + * (strict mode is used in validators usually). + */ + int readInt(); + + /* As "readLong()" but ensures that value in the range [minv,maxv]. */ + long long readLong(long long minv, long long maxv, const std::string &variableName = ""); + + /* Reads space-separated sequence of long longs. */ + std::vector + readLongs(int size, long long minv, long long maxv, const std::string &variablesName = "", int indexBase = 1); + + /* Reads space-separated sequence of long longs. */ + std::vector readLongs(int size, int indexBase = 1); + + unsigned long long + readUnsignedLong(unsigned long long minv, unsigned long long maxv, const std::string &variableName = ""); + + std::vector + readUnsignedLongs(int size, unsigned long long minv, unsigned long long maxv, const std::string &variablesName = "", + int indexBase = 1); + + std::vector readUnsignedLongs(int size, int indexBase = 1); + + unsigned long long readLong(unsigned long long minv, unsigned long long maxv, const std::string &variableName = ""); + + std::vector + readLongs(int size, unsigned long long minv, unsigned long long maxv, const std::string &variablesName = "", + int indexBase = 1); + + /* As "readInteger()" but ensures that value in the range [minv,maxv]. */ + int readInteger(int minv, int maxv, const std::string &variableName = ""); + + /* As "readInt()" but ensures that value in the range [minv,maxv]. */ + int readInt(int minv, int maxv, const std::string &variableName = ""); + + /* Reads space-separated sequence of integers. */ + std::vector + readIntegers(int size, int minv, int maxv, const std::string &variablesName = "", int indexBase = 1); + + /* Reads space-separated sequence of integers. */ + std::vector readIntegers(int size, int indexBase = 1); + + /* Reads space-separated sequence of integers. */ + std::vector readInts(int size, int minv, int maxv, const std::string &variablesName = "", int indexBase = 1); + + /* Reads space-separated sequence of integers. */ + std::vector readInts(int size, int indexBase = 1); + + /* + * Reads new double. Ignores white-spaces into the non-strict mode + * (strict mode is used in validators usually). + */ + double readReal(); + + /* + * Reads new double. Ignores white-spaces into the non-strict mode + * (strict mode is used in validators usually). + */ + double readDouble(); + + /* As "readReal()" but ensures that value in the range [minv,maxv]. */ + double readReal(double minv, double maxv, const std::string &variableName = ""); + + std::vector + readReals(int size, double minv, double maxv, const std::string &variablesName = "", int indexBase = 1); + + std::vector readReals(int size, int indexBase = 1); + + /* As "readDouble()" but ensures that value in the range [minv,maxv]. */ + double readDouble(double minv, double maxv, const std::string &variableName = ""); + + std::vector + readDoubles(int size, double minv, double maxv, const std::string &variablesName = "", int indexBase = 1); + + std::vector readDoubles(int size, int indexBase = 1); + + /* + * As "readReal()" but ensures that value in the range [minv,maxv] and + * number of digit after the decimal point is in range [minAfterPointDigitCount,maxAfterPointDigitCount] + * and number is in the form "[-]digit(s)[.digit(s)]". + */ + double readStrictReal(double minv, double maxv, + int minAfterPointDigitCount, int maxAfterPointDigitCount, + const std::string &variableName = ""); + + std::vector readStrictReals(int size, double minv, double maxv, + int minAfterPointDigitCount, int maxAfterPointDigitCount, + const std::string &variablesName = "", int indexBase = 1); + + /* + * As "readDouble()" but ensures that value in the range [minv,maxv] and + * number of digit after the decimal point is in range [minAfterPointDigitCount,maxAfterPointDigitCount] + * and number is in the form "[-]digit(s)[.digit(s)]". + */ + double readStrictDouble(double minv, double maxv, + int minAfterPointDigitCount, int maxAfterPointDigitCount, + const std::string &variableName = ""); + + std::vector readStrictDoubles(int size, double minv, double maxv, + int minAfterPointDigitCount, int maxAfterPointDigitCount, + const std::string &variablesName = "", int indexBase = 1); + + /* As readLine(). */ + std::string readString(); + + /* Read many lines. */ + std::vector readStrings(int size, int indexBase = 1); + + /* See readLine(). */ + void readStringTo(std::string &result); + + /* The same as "readLine()/readString()", but ensures that line matches to the given pattern. */ + std::string readString(const pattern &p, const std::string &variableName = ""); + + /* The same as "readLine()/readString()", but ensures that line matches to the given pattern. */ + std::string readString(const std::string &ptrn, const std::string &variableName = ""); + + /* Read many lines. */ + std::vector + readStrings(int size, const pattern &p, const std::string &variableName = "", int indexBase = 1); + + /* Read many lines. */ + std::vector + readStrings(int size, const std::string &ptrn, const std::string &variableName = "", int indexBase = 1); + + /* The same as "readLine()/readString()", but ensures that line matches to the given pattern. */ + void readStringTo(std::string &result, const pattern &p, const std::string &variableName = ""); + + /* The same as "readLine()/readString()", but ensures that line matches to the given pattern. */ + void readStringTo(std::string &result, const std::string &ptrn, const std::string &variableName = ""); + + /* + * Reads line from the current position to EOLN or EOF. Moves stream pointer to + * the first character of the new line (if possible). + */ + std::string readLine(); + + /* Read many lines. */ + std::vector readLines(int size, int indexBase = 1); + + /* See readLine(). */ + void readLineTo(std::string &result); + + /* The same as "readLine()", but ensures that line matches to the given pattern. */ + std::string readLine(const pattern &p, const std::string &variableName = ""); + + /* The same as "readLine()", but ensures that line matches to the given pattern. */ + std::string readLine(const std::string &ptrn, const std::string &variableName = ""); + + /* Read many lines. */ + std::vector + readLines(int size, const pattern &p, const std::string &variableName = "", int indexBase = 1); + + /* Read many lines. */ + std::vector + readLines(int size, const std::string &ptrn, const std::string &variableName = "", int indexBase = 1); + + /* The same as "readLine()", but ensures that line matches to the given pattern. */ + void readLineTo(std::string &result, const pattern &p, const std::string &variableName = ""); + + /* The same as "readLine()", but ensures that line matches to the given pattern. */ + void readLineTo(std::string &result, const std::string &ptrn, const std::string &variableName = ""); + + /* Reads EOLN or fails. Use it in validators. Calls "eoln()" method internally. */ + void readEoln(); + + /* Reads EOF or fails. Use it in validators. Calls "eof()" method internally. */ + void readEof(); + + /* + * Quit-functions aborts program with and : + * input/answer streams replace any result to FAIL. + */ + NORETURN void quit(TResult result, const char *msg); + /* + * Quit-functions aborts program with and : + * input/answer streams replace any result to FAIL. + */ + NORETURN void quitf(TResult result, const char *msg, ...); + + /* + * Quit-functions aborts program with and : + * input/answer streams replace any result to FAIL. + */ + void quitif(bool condition, TResult result, const char *msg, ...); + /* + * Quit-functions aborts program with and : + * input/answer streams replace any result to FAIL. + */ + NORETURN void quits(TResult result, std::string msg); + + /* + * Checks condition and aborts a program if condition is false. + * Returns _wa for ouf and _fail on any other streams. + */ +#ifdef __GNUC__ + __attribute__ ((format (printf, 3, 4))) +#endif + void ensuref(bool cond, const char *format, ...); + + void __testlib_ensure(bool cond, std::string message); + + void close(); + + const static int NO_INDEX = INT_MAX; + const static char OPEN_BRACKET = char(11); + const static char CLOSE_BRACKET = char(17); + + const static WORD LightGray = 0x07; + const static WORD LightRed = 0x0c; + const static WORD LightCyan = 0x0b; + const static WORD LightGreen = 0x0a; + const static WORD LightYellow = 0x0e; + + static void textColor(WORD color); + + static void quitscr(WORD color, const char *msg); + + static void quitscrS(WORD color, std::string msg); + + void xmlSafeWrite(std::FILE *file, const char *msg); + + /* Skips UTF-8 Byte Order Mark. */ + void skipBom(); + +private: + InStream(const InStream &); + + InStream &operator=(const InStream &); +}; + +InStream inf; +InStream ouf; +InStream ans; +bool appesMode; +std::string appesModeEncoding = "windows-1251"; +std::string resultName; +std::string checkerName = "untitled checker"; +random_t rnd; +TTestlibMode testlibMode = _unknown; +double __testlib_points = std::numeric_limits::infinity(); + +const size_t VALIDATOR_MAX_VARIABLE_COUNT = 255; + +struct ValidatorBoundsHit { + static const double EPS; + bool minHit; + bool maxHit; + + ValidatorBoundsHit(bool minHit = false, bool maxHit = false) : minHit(minHit), maxHit(maxHit) { + }; + + ValidatorBoundsHit merge(const ValidatorBoundsHit &validatorBoundsHit, bool ignoreMinBound, bool ignoreMaxBound) { + return ValidatorBoundsHit( + __testlib_max(minHit, validatorBoundsHit.minHit) || ignoreMinBound, + __testlib_max(maxHit, validatorBoundsHit.maxHit) || ignoreMaxBound + ); + } +}; + +struct ConstantBound { + std::string value; + bool broken; + + template + void adjust(T t) { + std::string t_string = std::to_string(t); + if (t_string.length() >= 32) { + broken = true; + value = ""; + } else { + if (!broken && value.empty()) + value = t_string; + if (!broken && value != t_string) { + broken = true; + value = ""; + } + } + } + + bool has_value() { + return !value.empty() && !broken && value.length() < 32; + } +}; + +struct ConstantBounds { + ConstantBound lowerBound; + ConstantBound upperBound; +}; + +const double ValidatorBoundsHit::EPS = 1E-12; + +class Validator { +private: + const static std::string TEST_MARKUP_HEADER; + const static std::string TEST_CASE_OPEN_TAG; + const static std::string TEST_CASE_CLOSE_TAG; + + bool _initialized; + std::string _testset; + std::string _group; + + std::string _testOverviewLogFileName; + std::string _testMarkupFileName; + int _testCase = -1; + std::string _testCaseFileName; + + std::map _boundsHitByVariableName; + std::map _constantBoundsByVariableName; + std::set _features; + std::set _hitFeatures; + std::set _variables; + + bool isVariableNameBoundsAnalyzable(const std::string &variableName) { + for (size_t i = 0; i < variableName.length(); i++) + if ((variableName[i] >= '0' && variableName[i] <= '9') || variableName[i] < ' ') + return false; + return true; + } + + bool isFeatureNameAnalyzable(const std::string &featureName) { + for (size_t i = 0; i < featureName.length(); i++) + if (featureName[i] < ' ') + return false; + return true; + } + +public: + Validator() : _initialized(false), _testset("tests"), _group() { + } + + void initialize() { + _initialized = true; + } + + std::string testset() const { + if (!_initialized) + __testlib_fail("Validator should be initialized with registerValidation(argc, argv) instead of registerValidation() to support validator.testset()"); + return _testset; + } + + std::string group() const { + if (!_initialized) + __testlib_fail("Validator should be initialized with registerValidation(argc, argv) instead of registerValidation() to support validator.group()"); + return _group; + } + + std::string testOverviewLogFileName() const { + return _testOverviewLogFileName; + } + + std::string testMarkupFileName() const { + return _testMarkupFileName; + } + + int testCase() const { + return _testCase; + } + + std::string testCaseFileName() const { + return _testCaseFileName; + } + + void setTestset(const char *const testset) { + _testset = testset; + } + + void setGroup(const char *const group) { + _group = group; + } + + void setTestOverviewLogFileName(const char *const testOverviewLogFileName) { + _testOverviewLogFileName = testOverviewLogFileName; + } + + void setTestMarkupFileName(const char *const testMarkupFileName) { + _testMarkupFileName = testMarkupFileName; + } + + void setTestCase(int testCase) { + _testCase = testCase; + } + + void setTestCaseFileName(const char *const testCaseFileName) { + _testCaseFileName = testCaseFileName; + } + + std::string prepVariableName(const std::string &variableName) { + if (variableName.length() >= 2 && variableName != "~~") { + if (variableName[0] == '~' && variableName.back() != '~') + return variableName.substr(1); + if (variableName[0] != '~' && variableName.back() == '~') + return variableName.substr(0, variableName.length() - 1); + if (variableName[0] == '~' && variableName.back() == '~') + return variableName.substr(1, variableName.length() - 2); + } + return variableName; + } + + bool ignoreMinBound(const std::string &variableName) { + return variableName.length() >= 2 && variableName != "~~" && variableName[0] == '~'; + } + + bool ignoreMaxBound(const std::string &variableName) { + return variableName.length() >= 2 && variableName != "~~" && variableName.back() == '~'; + } + + void addBoundsHit(const std::string &variableName, ValidatorBoundsHit boundsHit) { + if (isVariableNameBoundsAnalyzable(variableName) + && _boundsHitByVariableName.size() < VALIDATOR_MAX_VARIABLE_COUNT) { + std::string preparedVariableName = prepVariableName(variableName); + _boundsHitByVariableName[preparedVariableName] = boundsHit.merge(_boundsHitByVariableName[preparedVariableName], + ignoreMinBound(variableName), ignoreMaxBound(variableName)); + } + } + + void addVariable(const std::string &variableName) { + if (isVariableNameBoundsAnalyzable(variableName) + && _variables.size() < VALIDATOR_MAX_VARIABLE_COUNT) { + std::string preparedVariableName = prepVariableName(variableName); + _variables.insert(preparedVariableName); + } + } + + std::string getVariablesLog() { + std::string result; + for (const std::string &variableName: _variables) + result += "variable \"" + variableName + "\"\n"; + return result; + } + + template + void adjustConstantBounds(const std::string &variableName, T lower, T upper) { + if (isVariableNameBoundsAnalyzable(variableName) + && _constantBoundsByVariableName.size() < VALIDATOR_MAX_VARIABLE_COUNT) { + std::string preparedVariableName = prepVariableName(variableName); + _constantBoundsByVariableName[preparedVariableName].lowerBound.adjust(lower); + _constantBoundsByVariableName[preparedVariableName].upperBound.adjust(upper); + } + } + + std::string getBoundsHitLog() { + std::string result; + for (std::map::iterator i = _boundsHitByVariableName.begin(); + i != _boundsHitByVariableName.end(); + i++) { + result += "\"" + i->first + "\":"; + if (i->second.minHit) + result += " min-value-hit"; + if (i->second.maxHit) + result += " max-value-hit"; + result += "\n"; + } + return result; + } + + std::string getConstantBoundsLog() { + std::string result; + for (std::map::iterator i = _constantBoundsByVariableName.begin(); + i != _constantBoundsByVariableName.end(); + i++) { + if (i->second.lowerBound.has_value() || i->second.upperBound.has_value()) { + result += "constant-bounds \"" + i->first + "\":"; + if (i->second.lowerBound.has_value()) + result += " " + i->second.lowerBound.value; + else + result += " ?"; + if (i->second.upperBound.has_value()) + result += " " + i->second.upperBound.value; + else + result += " ?"; + result += "\n"; + } + } + return result; + } + + std::string getFeaturesLog() { + std::string result; + for (std::set::iterator i = _features.begin(); + i != _features.end(); + i++) { + result += "feature \"" + *i + "\":"; + if (_hitFeatures.count(*i)) + result += " hit"; + result += "\n"; + } + return result; + } + + void writeTestOverviewLog() { + if (!_testOverviewLogFileName.empty()) { + std::string fileName(_testOverviewLogFileName); + _testOverviewLogFileName = ""; + + FILE* f; + bool standard_file = false; + if (fileName == "stdout") + f = stdout, standard_file = true; + else if (fileName == "stderr") + f = stderr, standard_file = true; + else { + f = testlib_fopen_(fileName.c_str(), "wb"); + if (NULL == f) + __testlib_fail("Validator::writeTestOverviewLog: can't write test overview log to (" + fileName + ")"); + } + fprintf(f, "%s%s%s%s", + getBoundsHitLog().c_str(), + getFeaturesLog().c_str(), + getConstantBoundsLog().c_str(), + getVariablesLog().c_str()); + std::fflush(f); + if (!standard_file) + if (std::fclose(f)) + __testlib_fail("Validator::writeTestOverviewLog: can't close test overview log file (" + fileName + ")"); + } + } + + void writeTestMarkup() { + if (!_testMarkupFileName.empty()) { + std::vector readChars = inf.getReadChars(); + if (!readChars.empty()) { + std::string markup(TEST_MARKUP_HEADER); + for (size_t i = 0; i < readChars.size(); i++) { + int c = readChars[i]; + if (i + 1 == readChars.size() && c == -1) + continue; + if (c <= 256) { + char cc = char(c); + if (cc == '\\' || cc == '!') + markup += '\\'; + markup += cc; + } else { + markup += TEST_CASE_OPEN_TAG; + markup += toString(c - 256); + markup += TEST_CASE_CLOSE_TAG; + } + } + FILE* f; + bool standard_file = false; + if (_testMarkupFileName == "stdout") + f = stdout, standard_file = true; + else if (_testMarkupFileName == "stderr") + f = stderr, standard_file = true; + else { + f = testlib_fopen_(_testMarkupFileName.c_str(), "wb"); + if (NULL == f) + __testlib_fail("Validator::writeTestMarkup: can't write test markup to (" + _testMarkupFileName + ")"); + } + std::fprintf(f, "%s", markup.c_str()); + std::fflush(f); + if (!standard_file) + if (std::fclose(f)) + __testlib_fail("Validator::writeTestMarkup: can't close test markup file (" + _testCaseFileName + ")"); + } + } + } + + void writeTestCase() { + if (_testCase > 0) { + std::vector readChars = inf.getReadChars(); + if (!readChars.empty()) { + std::string content, testCaseContent; + bool matchedTestCase = false; + for (size_t i = 0; i < readChars.size(); i++) { + int c = readChars[i]; + if (i + 1 == readChars.size() && c == -1) + continue; + if (c <= 256) + content += char(c); + else { + if (matchedTestCase) { + testCaseContent = content; + matchedTestCase = false; + } + content = ""; + int testCase = c - 256; + if (testCase == _testCase) + matchedTestCase = true; + } + } + if (matchedTestCase) + testCaseContent = content; + + if (!testCaseContent.empty()) { + FILE* f; + bool standard_file = false; + if (_testCaseFileName.empty() || _testCaseFileName == "stdout") + f = stdout, standard_file = true; + else if (_testCaseFileName == "stderr") + f = stderr, standard_file = true; + else { + f = testlib_fopen_(_testCaseFileName.c_str(), "wb"); + if (NULL == f) + __testlib_fail("Validator::writeTestCase: can't write test case to (" + _testCaseFileName + ")"); + } + std::fprintf(f, "%s", testCaseContent.c_str()); + std::fflush(f); + if (!standard_file) + if (std::fclose(f)) + __testlib_fail("Validator::writeTestCase: can't close test case file (" + _testCaseFileName + ")"); + } + } + } + } + + void addFeature(const std::string &feature) { + if (_features.count(feature)) + __testlib_fail("Feature " + feature + " registered twice."); + if (!isFeatureNameAnalyzable(feature)) + __testlib_fail("Feature name '" + feature + "' contains restricted characters."); + + _features.insert(feature); + } + + void feature(const std::string &feature) { + if (!isFeatureNameAnalyzable(feature)) + __testlib_fail("Feature name '" + feature + "' contains restricted characters."); + + if (!_features.count(feature)) + __testlib_fail("Feature " + feature + " didn't registered via addFeature(feature)."); + + _hitFeatures.insert(feature); + } +} validator; + +const std::string Validator::TEST_MARKUP_HEADER = "MU\xF3\x01"; +const std::string Validator::TEST_CASE_OPEN_TAG = "!c"; +const std::string Validator::TEST_CASE_CLOSE_TAG = ";"; + +struct TestlibFinalizeGuard { + static bool alive; + static bool registered; + + int quitCount, readEofCount; + + TestlibFinalizeGuard() : quitCount(0), readEofCount(0) { + // No operations. + } + + ~TestlibFinalizeGuard() { + bool _alive = alive; + alive = false; + + if (_alive) { + if (testlibMode == _checker && quitCount == 0) + __testlib_fail("Checker must end with quit or quitf call."); + + if (testlibMode == _validator && readEofCount == 0 && quitCount == 0) + __testlib_fail("Validator must end with readEof call."); + + /* opts */ + autoEnsureNoUnusedOpts(); + + if (!registered) + __testlib_fail("Call register-function in the first line of the main (registerTestlibCmd or other similar)"); + } + + if (__testlib_exitCode == 0) { + validator.writeTestOverviewLog(); + validator.writeTestMarkup(); + validator.writeTestCase(); + } + } + +private: + /* opts */ + void autoEnsureNoUnusedOpts(); +}; + +bool TestlibFinalizeGuard::alive = true; +bool TestlibFinalizeGuard::registered = false; +extern TestlibFinalizeGuard testlibFinalizeGuard; + +/* + * Call it to disable checks on finalization. + */ +void disableFinalizeGuard() { + TestlibFinalizeGuard::alive = false; +} + +/* Interactor streams. + */ +std::fstream tout; + +/* implementation + */ + +InStream::InStream() { + reader = NULL; + lastLine = -1; + opened = false; + name = ""; + mode = _input; + strict = false; + stdfile = false; + wordReserveSize = 4; + readManyIteration = NO_INDEX; + maxFileSize = 128 * 1024 * 1024; // 128MB. + maxTokenLength = 32 * 1024 * 1024; // 32MB. + maxMessageLength = 32000; +} + +InStream::InStream(const InStream &baseStream, std::string content) { + reader = new StringInputStreamReader(content); + lastLine = -1; + opened = true; + strict = baseStream.strict; + stdfile = false; + mode = baseStream.mode; + name = "based on " + baseStream.name; + readManyIteration = NO_INDEX; + maxFileSize = 128 * 1024 * 1024; // 128MB. + maxTokenLength = 32 * 1024 * 1024; // 32MB. + maxMessageLength = 32000; +} + +InStream::~InStream() { + if (NULL != reader) { + reader->close(); + delete reader; + reader = NULL; + } +} + +void InStream::setTestCase(int testCase) { + if (testlibMode != _validator || mode != _input || !stdfile || this != &inf) + __testlib_fail("InStream::setTestCase can be used only for inf in validator-mode." + " Actually, prefer setTestCase function instead of InStream member"); + reader->setTestCase(testCase); +} + +std::vector InStream::getReadChars() { + if (testlibMode != _validator || mode != _input || !stdfile || this != &inf) + __testlib_fail("InStream::getReadChars can be used only for inf in validator-mode."); + return reader == NULL ? std::vector() : reader->getReadChars(); +} + +void setTestCase(int testCase) { + static bool first_run = true; + static bool zero_based = false; + + if (first_run && testCase == 0) + zero_based = true; + + if (zero_based) + testCase++; + + __testlib_hasTestCase = true; + __testlib_testCase = testCase; + + if (testlibMode == _validator) + inf.setTestCase(testCase); + + first_run = false; +} + +#ifdef __GNUC__ +__attribute__((const)) +#endif +int resultExitCode(TResult r) { + if (r == _ok) + return OK_EXIT_CODE; + if (r == _wa) + return WA_EXIT_CODE; + if (r == _pe) + return PE_EXIT_CODE; + if (r == _fail) + return FAIL_EXIT_CODE; + if (r == _dirt) + return DIRT_EXIT_CODE; + if (r == _points) + return POINTS_EXIT_CODE; + if (r == _unexpected_eof) +#ifdef ENABLE_UNEXPECTED_EOF + return UNEXPECTED_EOF_EXIT_CODE; +#else + return PE_EXIT_CODE; +#endif + if (r >= _partially) + return PC_BASE_EXIT_CODE + (r - _partially); + return FAIL_EXIT_CODE; +} + +void InStream::textColor( +#if !(defined(ON_WINDOWS) && (!defined(_MSC_VER) || _MSC_VER > 1400)) && defined(__GNUC__) + __attribute__((unused)) +#endif + WORD color +) { +#if defined(ON_WINDOWS) && (!defined(_MSC_VER) || _MSC_VER > 1400) + HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); + SetConsoleTextAttribute(handle, color); +#endif +#if !defined(ON_WINDOWS) && defined(__GNUC__) + if (isatty(2)) + { + switch (color) + { + case LightRed: + fprintf(stderr, "\033[1;31m"); + break; + case LightCyan: + fprintf(stderr, "\033[1;36m"); + break; + case LightGreen: + fprintf(stderr, "\033[1;32m"); + break; + case LightYellow: + fprintf(stderr, "\033[1;33m"); + break; + case LightGray: + default: + fprintf(stderr, "\033[0m"); + } + } +#endif +} + +#ifdef TESTLIB_THROW_EXIT_EXCEPTION_INSTEAD_OF_EXIT +class exit_exception: public std::exception { +private: + int exitCode; +public: + exit_exception(int exitCode): exitCode(exitCode) {} + int getExitCode() { return exitCode; } +}; +#endif + +NORETURN void halt(int exitCode) { +#ifdef FOOTER + InStream::textColor(InStream::LightGray); + std::fprintf(stderr, "Checker: \"%s\"\n", checkerName.c_str()); + std::fprintf(stderr, "Exit code: %d\n", exitCode); + InStream::textColor(InStream::LightGray); +#endif + __testlib_exitCode = exitCode; +#ifdef TESTLIB_THROW_EXIT_EXCEPTION_INSTEAD_OF_EXIT + throw exit_exception(exitCode); +#endif + std::exit(exitCode); +} + +static bool __testlib_shouldCheckDirt(TResult result) { + return result == _ok || result == _points || result >= _partially; +} + +static std::string __testlib_appendMessage(const std::string &message, const std::string &extra) { + int openPos = -1, closePos = -1; + for (size_t i = 0; i < message.length(); i++) { + if (message[i] == InStream::OPEN_BRACKET) { + if (openPos == -1) + openPos = int(i); + else + openPos = INT_MAX; + } + if (message[i] == InStream::CLOSE_BRACKET) { + if (closePos == -1) + closePos = int(i); + else + closePos = INT_MAX; + } + } + if (openPos != -1 && openPos != INT_MAX + && closePos != -1 && closePos != INT_MAX + && openPos < closePos) { + size_t index = message.find(extra, openPos); + if (index == std::string::npos || int(index) >= closePos) { + std::string result(message); + result.insert(closePos, ", " + extra); + return result; + } + return message; + } + + return message + " " + InStream::OPEN_BRACKET + extra + InStream::CLOSE_BRACKET; +} + +static std::string __testlib_toPrintableMessage(const std::string &message) { + int openPos = -1, closePos = -1; + for (size_t i = 0; i < message.length(); i++) { + if (message[i] == InStream::OPEN_BRACKET) { + if (openPos == -1) + openPos = int(i); + else + openPos = INT_MAX; + } + if (message[i] == InStream::CLOSE_BRACKET) { + if (closePos == -1) + closePos = int(i); + else + closePos = INT_MAX; + } + } + if (openPos != -1 && openPos != INT_MAX + && closePos != -1 && closePos != INT_MAX + && openPos < closePos) { + std::string result(message); + result[openPos] = '('; + result[closePos] = ')'; + return result; + } + + return message; +} + +NORETURN void InStream::quit(TResult result, const char *msg) { + if (TestlibFinalizeGuard::alive) + testlibFinalizeGuard.quitCount++; + + std::string message(msg); + message = trim(message); + + if (__testlib_hasTestCase) { + if (result != _ok) + message = __testlib_appendMessage(message, "test case " + vtos(__testlib_testCase)); + else { + if (__testlib_testCase == 1) + message = __testlib_appendMessage(message, vtos(__testlib_testCase) + " test case"); + else + message = __testlib_appendMessage(message, vtos(__testlib_testCase) + " test cases"); + } + } + + // You can change maxMessageLength. + // Example: 'inf.maxMessageLength = 1024 * 1024;'. + if (message.length() > maxMessageLength) { + std::string warn = "message length exceeds " + vtos(maxMessageLength) + + ", the message is truncated: "; + message = warn + message.substr(0, maxMessageLength - warn.length()); + } + +#ifndef ENABLE_UNEXPECTED_EOF + if (result == _unexpected_eof) + result = _pe; +#endif + + if (testlibMode == _scorer && result != _fail) + quits(_fail, "Scorer should return points only. Don't use a quit function."); + + if (mode != _output && result != _fail) { + if (mode == _input && testlibMode == _validator && lastLine != -1) + quits(_fail, __testlib_appendMessage(__testlib_appendMessage(message, name), "line " + vtos(lastLine))); + else + quits(_fail, __testlib_appendMessage(message, name)); + } + + std::FILE *resultFile; + std::string errorName; + + if (__testlib_shouldCheckDirt(result)) { + if (testlibMode != _interactor && !ouf.seekEof()) + quit(_dirt, "Extra information in the output file"); + } + + int pctype = result - _partially; + bool isPartial = false; + + switch (result) { + case _ok: + errorName = "ok "; + quitscrS(LightGreen, errorName); + break; + case _wa: + errorName = "wrong answer "; + quitscrS(LightRed, errorName); + break; + case _pe: + errorName = "wrong output format "; + quitscrS(LightRed, errorName); + break; + case _fail: + errorName = "FAIL "; + quitscrS(LightRed, errorName); + break; + case _dirt: + errorName = "wrong output format "; + quitscrS(LightCyan, errorName); + result = _pe; + break; + case _points: + errorName = "points "; + quitscrS(LightYellow, errorName); + break; + case _unexpected_eof: + errorName = "unexpected eof "; + quitscrS(LightCyan, errorName); + break; + default: + if (result >= _partially) { + errorName = testlib_format_("partially correct (%d) ", pctype); + isPartial = true; + quitscrS(LightYellow, errorName); + } else + quit(_fail, "What is the code ??? "); + } + + if (resultName != "") { + resultFile = testlib_fopen_(resultName.c_str(), "w"); + if (resultFile == NULL) { + resultName = ""; + quit(_fail, "Can not write to the result file"); + } + if (appesMode) { + std::fprintf(resultFile, "", appesModeEncoding.c_str()); + if (isPartial) + std::fprintf(resultFile, "", + outcomes[(int) _partially].c_str(), pctype); + else { + if (result != _points) + std::fprintf(resultFile, "", outcomes[(int) result].c_str()); + else { + if (__testlib_points == std::numeric_limits::infinity()) + quit(_fail, "Expected points, but infinity found"); + std::string stringPoints = removeDoubleTrailingZeroes(testlib_format_("%.10f", __testlib_points)); + std::fprintf(resultFile, "", + outcomes[(int) result].c_str(), stringPoints.c_str()); + } + } + xmlSafeWrite(resultFile, __testlib_toPrintableMessage(message).c_str()); + std::fprintf(resultFile, "\n"); + } else + std::fprintf(resultFile, "%s", __testlib_toPrintableMessage(message).c_str()); + if (NULL == resultFile || fclose(resultFile) != 0) { + resultName = ""; + quit(_fail, "Can not write to the result file"); + } + } + + quitscr(LightGray, __testlib_toPrintableMessage(message).c_str()); + std::fprintf(stderr, "\n"); + + inf.close(); + ouf.close(); + ans.close(); + if (tout.is_open()) + tout.close(); + + textColor(LightGray); + + if (resultName != "") + std::fprintf(stderr, "See file to check exit message\n"); + + halt(resultExitCode(result)); +} + +#ifdef __GNUC__ +__attribute__ ((format (printf, 3, 4))) +#endif +NORETURN void InStream::quitf(TResult result, const char *msg, ...) { + FMT_TO_RESULT(msg, msg, message); + InStream::quit(result, message.c_str()); +} + +#ifdef __GNUC__ +__attribute__ ((format (printf, 4, 5))) +#endif +void InStream::quitif(bool condition, TResult result, const char *msg, ...) { + if (condition) { + FMT_TO_RESULT(msg, msg, message); + InStream::quit(result, message.c_str()); + } +} + +NORETURN void InStream::quits(TResult result, std::string msg) { + InStream::quit(result, msg.c_str()); +} + +void InStream::xmlSafeWrite(std::FILE *file, const char *msg) { + size_t lmsg = strlen(msg); + for (size_t i = 0; i < lmsg; i++) { + if (msg[i] == '&') { + std::fprintf(file, "%s", "&"); + continue; + } + if (msg[i] == '<') { + std::fprintf(file, "%s", "<"); + continue; + } + if (msg[i] == '>') { + std::fprintf(file, "%s", ">"); + continue; + } + if (msg[i] == '"') { + std::fprintf(file, "%s", """); + continue; + } + if (0 <= msg[i] && msg[i] <= 31) { + std::fprintf(file, "%c", '.'); + continue; + } + std::fprintf(file, "%c", msg[i]); + } +} + +void InStream::quitscrS(WORD color, std::string msg) { + quitscr(color, msg.c_str()); +} + +void InStream::quitscr(WORD color, const char *msg) { + if (resultName == "") { + textColor(color); + std::fprintf(stderr, "%s", msg); + textColor(LightGray); + } +} + +void InStream::reset(std::FILE *file) { + if (opened && stdfile) + quit(_fail, "Can't reset standard handle"); + + if (opened) + close(); + + if (!stdfile && NULL == file) + if (NULL == (file = testlib_fopen_(name.c_str(), "rb"))) { + if (mode == _output) + quits(_pe, std::string("Output file not found: \"") + name + "\""); + + if (mode == _answer) + quits(_fail, std::string("Answer file not found: \"") + name + "\""); + } + + if (NULL != file) { + opened = true; + __testlib_set_binary(file); + + if (stdfile) + reader = new FileInputStreamReader(file, name); + else + reader = new BufferedFileInputStreamReader(file, name); + } else { + opened = false; + reader = NULL; + } +} + +void InStream::init(std::string fileName, TMode mode) { + opened = false; + name = fileName; + stdfile = false; + this->mode = mode; + + std::ifstream stream; + stream.open(fileName.c_str(), std::ios::in); + if (stream.is_open()) { + std::streampos start = stream.tellg(); + stream.seekg(0, std::ios::end); + std::streampos end = stream.tellg(); + size_t fileSize = size_t(end - start); + stream.close(); + + // You can change maxFileSize. + // Example: 'inf.maxFileSize = 256 * 1024 * 1024;'. + if (fileSize > maxFileSize) + quitf(_pe, "File size exceeds %d bytes, size is %d", int(maxFileSize), int(fileSize)); + } + + reset(); +} + +void InStream::init(std::FILE *f, TMode mode) { + opened = false; + name = "untitled"; + this->mode = mode; + + if (f == stdin) + name = "stdin", stdfile = true; + if (f == stdout) + name = "stdout", stdfile = true; + if (f == stderr) + name = "stderr", stdfile = true; + + reset(f); +} + +void InStream::skipBom() { + const std::string utf8Bom = "\xEF\xBB\xBF"; + size_t index = 0; + while (index < utf8Bom.size() && curChar() == utf8Bom[index]) { + index++; + skipChar(); + } + if (index < utf8Bom.size()) { + while (index != 0) { + unreadChar(utf8Bom[index - 1]); + index--; + } + } +} + +char InStream::curChar() { + return char(reader->curChar()); +} + +char InStream::nextChar() { + return char(reader->nextChar()); +} + +char InStream::readChar() { + return nextChar(); +} + +char InStream::readChar(char c) { + lastLine = reader->getLine(); + char found = readChar(); + if (c != found) { + if (!isEoln(found)) + quit(_pe, ("Unexpected character '" + std::string(1, found) + "', but '" + std::string(1, c) + + "' expected").c_str()); + else + quit(_pe, ("Unexpected character " + ("#" + vtos(int(found))) + ", but '" + std::string(1, c) + + "' expected").c_str()); + } + return found; +} + +char InStream::readSpace() { + return readChar(' '); +} + +void InStream::unreadChar(char c) { + reader->unreadChar(c); +} + +void InStream::skipChar() { + reader->skipChar(); +} + +void InStream::skipBlanks() { + while (isBlanks(reader->curChar())) + reader->skipChar(); +} + +std::string InStream::readWord() { + readWordTo(_tmpReadToken); + return _tmpReadToken; +} + +void InStream::readWordTo(std::string &result) { + if (!strict) + skipBlanks(); + + lastLine = reader->getLine(); + int cur = reader->nextChar(); + + if (cur == EOFC) + quit(_unexpected_eof, "Unexpected end of file - token expected"); + + if (isBlanks(cur)) + quit(_pe, "Unexpected white-space - token expected"); + + result.clear(); + + while (!(isBlanks(cur) || cur == EOFC)) { + result += char(cur); + + // You can change maxTokenLength. + // Example: 'inf.maxTokenLength = 128 * 1024 * 1024;'. + if (result.length() > maxTokenLength) + quitf(_pe, "Length of token exceeds %d, token is '%s...'", int(maxTokenLength), + __testlib_part(result).c_str()); + + cur = reader->nextChar(); + } + + reader->unreadChar(cur); + + if (result.length() == 0) + quit(_unexpected_eof, "Unexpected end of file or white-space - token expected"); +} + +std::string InStream::readToken() { + return readWord(); +} + +void InStream::readTokenTo(std::string &result) { + readWordTo(result); +} + +#ifdef __GNUC__ +__attribute__((const)) +#endif +static std::string __testlib_part(const std::string &s) { + std::string t; + for (size_t i = 0; i < s.length(); i++) + if (s[i] != '\0') + t += s[i]; + else + t += '~'; + if (t.length() <= 64) + return t; + else + return t.substr(0, 30) + "..." + t.substr(s.length() - 31, 31); +} + +#define __testlib_readMany(readMany, readOne, typeName, space) \ + if (size < 0) \ + quit(_fail, #readMany ": size should be non-negative."); \ + if (size > 100000000) \ + quit(_fail, #readMany ": size should be at most 100000000."); \ + \ + std::vector result(size); \ + readManyIteration = indexBase; \ + \ + for (int i = 0; i < size; i++) \ + { \ + result[i] = readOne; \ + readManyIteration++; \ + if (strict && space && i + 1 < size) \ + readSpace(); \ + } \ + \ + readManyIteration = NO_INDEX; \ + return result; \ + + +std::string InStream::readWord(const pattern &p, const std::string &variableName) { + readWordTo(_tmpReadToken); + if (!p.matches(_tmpReadToken)) { + if (readManyIteration == NO_INDEX) { + if (variableName.empty()) + quit(_wa, + ("Token \"" + __testlib_part(_tmpReadToken) + "\" doesn't correspond to pattern \"" + p.src() + + "\"").c_str()); + else + quit(_wa, ("Token parameter [name=" + variableName + "] equals to \"" + __testlib_part(_tmpReadToken) + + "\", doesn't correspond to pattern \"" + p.src() + "\"").c_str()); + } else { + if (variableName.empty()) + quit(_wa, ("Token element [index=" + vtos(readManyIteration) + "] equals to \"" + + __testlib_part(_tmpReadToken) + "\" doesn't correspond to pattern \"" + p.src() + + "\"").c_str()); + else + quit(_wa, ("Token element " + variableName + "[" + vtos(readManyIteration) + "] equals to \"" + + __testlib_part(_tmpReadToken) + "\", doesn't correspond to pattern \"" + p.src() + + "\"").c_str()); + } + } + if (strict && !variableName.empty()) + validator.addVariable(variableName); + return _tmpReadToken; +} + +std::vector +InStream::readWords(int size, const pattern &p, const std::string &variablesName, int indexBase) { + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readWords, readWord(p, variablesName), std::string, true); +} + +std::vector InStream::readWords(int size, int indexBase) { + __testlib_readMany(readWords, readWord(), std::string, true); +} + +std::string InStream::readWord(const std::string &ptrn, const std::string &variableName) { + return readWord(pattern(ptrn), variableName); +} + +std::vector +InStream::readWords(int size, const std::string &ptrn, const std::string &variablesName, int indexBase) { + pattern p(ptrn); + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readWords, readWord(p, variablesName), std::string, true); +} + +std::string InStream::readToken(const pattern &p, const std::string &variableName) { + return readWord(p, variableName); +} + +std::vector +InStream::readTokens(int size, const pattern &p, const std::string &variablesName, int indexBase) { + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readTokens, readToken(p, variablesName), std::string, true); +} + +std::vector InStream::readTokens(int size, int indexBase) { + __testlib_readMany(readTokens, readToken(), std::string, true); +} + +std::string InStream::readToken(const std::string &ptrn, const std::string &variableName) { + return readWord(ptrn, variableName); +} + +std::vector +InStream::readTokens(int size, const std::string &ptrn, const std::string &variablesName, int indexBase) { + pattern p(ptrn); + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readTokens, readWord(p, variablesName), std::string, true); +} + +void InStream::readWordTo(std::string &result, const pattern &p, const std::string &variableName) { + readWordTo(result); + if (!p.matches(result)) { + if (variableName.empty()) + quit(_wa, ("Token \"" + __testlib_part(result) + "\" doesn't correspond to pattern \"" + p.src() + + "\"").c_str()); + else + quit(_wa, ("Token parameter [name=" + variableName + "] equals to \"" + __testlib_part(result) + + "\", doesn't correspond to pattern \"" + p.src() + "\"").c_str()); + } + if (strict && !variableName.empty()) + validator.addVariable(variableName); +} + +void InStream::readWordTo(std::string &result, const std::string &ptrn, const std::string &variableName) { + return readWordTo(result, pattern(ptrn), variableName); +} + +void InStream::readTokenTo(std::string &result, const pattern &p, const std::string &variableName) { + return readWordTo(result, p, variableName); +} + +void InStream::readTokenTo(std::string &result, const std::string &ptrn, const std::string &variableName) { + return readWordTo(result, ptrn, variableName); +} + +#ifdef __GNUC__ +__attribute__((pure)) +#endif +static inline bool equals(long long integer, const char *s) { + if (integer == LLONG_MIN) + return strcmp(s, "-9223372036854775808") == 0; + + if (integer == 0LL) + return strcmp(s, "0") == 0; + + size_t length = strlen(s); + + if (length == 0) + return false; + + if (integer < 0 && s[0] != '-') + return false; + + if (integer < 0) + s++, length--, integer = -integer; + + if (length == 0) + return false; + + while (integer > 0) { + int digit = int(integer % 10); + + if (s[length - 1] != '0' + digit) + return false; + + length--; + integer /= 10; + } + + return length == 0; +} + +#ifdef __GNUC__ +__attribute__((pure)) +#endif +static inline bool equals(unsigned long long integer, const char *s) { + if (integer == ULLONG_MAX) + return strcmp(s, "18446744073709551615") == 0; + + if (integer == 0ULL) + return strcmp(s, "0") == 0; + + size_t length = strlen(s); + + if (length == 0) + return false; + + while (integer > 0) { + int digit = int(integer % 10); + + if (s[length - 1] != '0' + digit) + return false; + + length--; + integer /= 10; + } + + return length == 0; +} + +static inline double stringToDouble(InStream &in, const char *buffer) { + double result; + + size_t length = strlen(buffer); + + int minusCount = 0; + int plusCount = 0; + int decimalPointCount = 0; + int digitCount = 0; + int eCount = 0; + + for (size_t i = 0; i < length; i++) { + if (('0' <= buffer[i] && buffer[i] <= '9') || buffer[i] == '.' + || buffer[i] == 'e' || buffer[i] == 'E' + || buffer[i] == '-' || buffer[i] == '+') { + if ('0' <= buffer[i] && buffer[i] <= '9') + digitCount++; + if (buffer[i] == 'e' || buffer[i] == 'E') + eCount++; + if (buffer[i] == '-') + minusCount++; + if (buffer[i] == '+') + plusCount++; + if (buffer[i] == '.') + decimalPointCount++; + } else + in.quit(_pe, ("Expected double, but \"" + __testlib_part(buffer) + "\" found").c_str()); + } + + // If for sure is not a number in standard notation or in e-notation. + if (digitCount == 0 || minusCount > 2 || plusCount > 2 || decimalPointCount > 1 || eCount > 1) + in.quit(_pe, ("Expected double, but \"" + __testlib_part(buffer) + "\" found").c_str()); + + char *suffix = new char[length + 1]; + std::memset(suffix, 0, length + 1); + int scanned; +#ifdef _MSC_VER + scanned = sscanf_s(buffer, "%lf%s", &result, suffix, (unsigned int)(length + 1)); +#else + scanned = std::sscanf(buffer, "%lf%s", &result, suffix); +#endif + bool empty = strlen(suffix) == 0; + delete[] suffix; + + if (scanned == 1 || (scanned == 2 && empty)) { + if (__testlib_isNaN(result)) + in.quit(_pe, ("Expected double, but \"" + __testlib_part(buffer) + "\" found").c_str()); + return result; + } else + in.quit(_pe, ("Expected double, but \"" + __testlib_part(buffer) + "\" found").c_str()); +} + +static inline double stringToDouble(InStream &in, const std::string& buffer) { + for (size_t i = 0; i < buffer.length(); i++) + if (buffer[i] == '\0') + in.quit(_pe, ("Expected double, but \"" + __testlib_part(buffer) + "\" found (it contains \\0)").c_str()); + return stringToDouble(in, buffer.c_str()); +} + +static inline double stringToStrictDouble(InStream &in, const char *buffer, + int minAfterPointDigitCount, int maxAfterPointDigitCount) { + if (minAfterPointDigitCount < 0) + in.quit(_fail, "stringToStrictDouble: minAfterPointDigitCount should be non-negative."); + + if (minAfterPointDigitCount > maxAfterPointDigitCount) + in.quit(_fail, + "stringToStrictDouble: minAfterPointDigitCount should be less or equal to maxAfterPointDigitCount."); + + double result; + + size_t length = strlen(buffer); + + if (length == 0 || length > 1000) + in.quit(_pe, ("Expected strict double, but \"" + __testlib_part(buffer) + "\" found").c_str()); + + if (buffer[0] != '-' && (buffer[0] < '0' || buffer[0] > '9')) + in.quit(_pe, ("Expected strict double, but \"" + __testlib_part(buffer) + "\" found").c_str()); + + int pointPos = -1; + for (size_t i = 1; i + 1 < length; i++) { + if (buffer[i] == '.') { + if (pointPos > -1) + in.quit(_pe, ("Expected strict double, but \"" + __testlib_part(buffer) + "\" found").c_str()); + pointPos = int(i); + } + if (buffer[i] != '.' && (buffer[i] < '0' || buffer[i] > '9')) + in.quit(_pe, ("Expected strict double, but \"" + __testlib_part(buffer) + "\" found").c_str()); + } + + if (buffer[length - 1] < '0' || buffer[length - 1] > '9') + in.quit(_pe, ("Expected strict double, but \"" + __testlib_part(buffer) + "\" found").c_str()); + + int afterDigitsCount = (pointPos == -1 ? 0 : int(length) - pointPos - 1); + if (afterDigitsCount < minAfterPointDigitCount || afterDigitsCount > maxAfterPointDigitCount) + in.quit(_pe, ("Expected strict double with number of digits after point in range [" + + vtos(minAfterPointDigitCount) + + "," + + vtos(maxAfterPointDigitCount) + + "], but \"" + __testlib_part(buffer) + "\" found").c_str() + ); + + int firstDigitPos = -1; + for (size_t i = 0; i < length; i++) + if (buffer[i] >= '0' && buffer[i] <= '9') { + firstDigitPos = int(i); + break; + } + + if (firstDigitPos > 1 || firstDigitPos == -1) + in.quit(_pe, ("Expected strict double, but \"" + __testlib_part(buffer) + "\" found").c_str()); + + if (buffer[firstDigitPos] == '0' && firstDigitPos + 1 < int(length) + && buffer[firstDigitPos + 1] >= '0' && buffer[firstDigitPos + 1] <= '9') + in.quit(_pe, ("Expected strict double, but \"" + __testlib_part(buffer) + "\" found").c_str()); + + char *suffix = new char[length + 1]; + std::memset(suffix, 0, length + 1); + int scanned; +#ifdef _MSC_VER + scanned = sscanf_s(buffer, "%lf%s", &result, suffix, (unsigned int)(length + 1)); +#else + scanned = std::sscanf(buffer, "%lf%s", &result, suffix); +#endif + bool empty = strlen(suffix) == 0; + delete[] suffix; + + if (scanned == 1 || (scanned == 2 && empty)) { + if (__testlib_isNaN(result) || __testlib_isInfinite(result)) + in.quit(_pe, ("Expected double, but \"" + __testlib_part(buffer) + "\" found").c_str()); + if (buffer[0] == '-' && result >= 0) + in.quit(_pe, ("Redundant minus in \"" + __testlib_part(buffer) + "\" found").c_str()); + return result; + } else + in.quit(_pe, ("Expected double, but \"" + __testlib_part(buffer) + "\" found").c_str()); +} + +static inline double stringToStrictDouble(InStream &in, const std::string& buffer, + int minAfterPointDigitCount, int maxAfterPointDigitCount) { + for (size_t i = 0; i < buffer.length(); i++) + if (buffer[i] == '\0') + in.quit(_pe, ("Expected double, but \"" + __testlib_part(buffer) + "\" found (it contains \\0)").c_str()); + return stringToStrictDouble(in, buffer.c_str(), minAfterPointDigitCount, maxAfterPointDigitCount); +} + +static inline long long stringToLongLong(InStream &in, const char *buffer) { + size_t length = strlen(buffer); + if (length == 0 || length > 20) + in.quit(_pe, ("Expected integer, but \"" + __testlib_part(buffer) + "\" found").c_str()); + + bool has_minus = (length > 1 && buffer[0] == '-'); + int zeroes = 0; + bool processingZeroes = true; + + for (int i = (has_minus ? 1 : 0); i < int(length); i++) { + if (buffer[i] == '0' && processingZeroes) + zeroes++; + else + processingZeroes = false; + + if (buffer[i] < '0' || buffer[i] > '9') + in.quit(_pe, ("Expected integer, but \"" + __testlib_part(buffer) + "\" found").c_str()); + } + + long long int result; + try { + result = std::stoll(buffer); + } catch (const std::exception&) { + in.quit(_pe, ("Expected integer, but \"" + __testlib_part(buffer) + "\" found").c_str()); + } catch (...) { + in.quit(_pe, ("Expected integer, but \"" + __testlib_part(buffer) + "\" found").c_str()); + } + + if ((zeroes > 0 && (result != 0 || has_minus)) || zeroes > 1) + in.quit(_pe, ("Expected integer, but \"" + __testlib_part(buffer) + "\" found").c_str()); + + return result; +} + +static inline long long stringToLongLong(InStream &in, const std::string& buffer) { + for (size_t i = 0; i < buffer.length(); i++) + if (buffer[i] == '\0') + in.quit(_pe, ("Expected integer, but \"" + __testlib_part(buffer) + "\" found (it contains \\0)").c_str()); + return stringToLongLong(in, buffer.c_str()); +} + +static inline unsigned long long stringToUnsignedLongLong(InStream &in, const char *buffer) { + size_t length = strlen(buffer); + + if (length == 0 || length > 20) + in.quit(_pe, ("Expected unsigned integer, but \"" + __testlib_part(buffer) + "\" found").c_str()); + if (length > 1 && buffer[0] == '0') + in.quit(_pe, ("Expected unsigned integer, but \"" + __testlib_part(buffer) + "\" found").c_str()); + + for (int i = 0; i < int(length); i++) { + if (buffer[i] < '0' || buffer[i] > '9') + in.quit(_pe, ("Expected unsigned integer, but \"" + __testlib_part(buffer) + "\" found").c_str()); + } + + unsigned long long result; + try { + result = std::stoull(buffer); + } catch (const std::exception&) { + in.quit(_pe, ("Expected unsigned integer, but \"" + __testlib_part(buffer) + "\" found").c_str()); + } catch (...) { + in.quit(_pe, ("Expected unsigned integer, but \"" + __testlib_part(buffer) + "\" found").c_str()); + } + + return result; +} + +static inline long long stringToUnsignedLongLong(InStream &in, const std::string& buffer) { + for (size_t i = 0; i < buffer.length(); i++) + if (buffer[i] == '\0') + in.quit(_pe, ("Expected unsigned integer, but \"" + __testlib_part(buffer) + "\" found (it contains \\0)").c_str()); + return stringToUnsignedLongLong(in, buffer.c_str()); +} + +int InStream::readInteger() { + if (!strict && seekEof()) + quit(_unexpected_eof, "Unexpected end of file - int32 expected"); + + readWordTo(_tmpReadToken); + + long long value = stringToLongLong(*this, _tmpReadToken); + if (value < INT_MIN || value > INT_MAX) + quit(_pe, ("Expected int32, but \"" + __testlib_part(_tmpReadToken) + "\" found").c_str()); + + return int(value); +} + +long long InStream::readLong() { + if (!strict && seekEof()) + quit(_unexpected_eof, "Unexpected end of file - int64 expected"); + + readWordTo(_tmpReadToken); + + return stringToLongLong(*this, _tmpReadToken); +} + +unsigned long long InStream::readUnsignedLong() { + if (!strict && seekEof()) + quit(_unexpected_eof, "Unexpected end of file - int64 expected"); + + readWordTo(_tmpReadToken); + + return stringToUnsignedLongLong(*this, _tmpReadToken); +} + +long long InStream::readLong(long long minv, long long maxv, const std::string &variableName) { + long long result = readLong(); + + if (result < minv || result > maxv) { + if (readManyIteration == NO_INDEX) { + if (variableName.empty()) + quit(_wa, ("Integer " + vtos(result) + " violates the range [" + toHumanReadableString(minv) + ", " + toHumanReadableString(maxv) + + "]").c_str()); + else + quit(_wa, ("Integer parameter [name=" + std::string(variableName) + "] equals to " + vtos(result) + + ", violates the range [" + toHumanReadableString(minv) + ", " + toHumanReadableString(maxv) + "]").c_str()); + } else { + if (variableName.empty()) + quit(_wa, ("Integer element [index=" + vtos(readManyIteration) + "] equals to " + vtos(result) + + ", violates the range [" + toHumanReadableString(minv) + ", " + toHumanReadableString(maxv) + "]").c_str()); + else + quit(_wa, + ("Integer element " + std::string(variableName) + "[" + vtos(readManyIteration) + "] equals to " + + vtos(result) + ", violates the range [" + toHumanReadableString(minv) + ", " + toHumanReadableString(maxv) + "]").c_str()); + } + } + + if (strict && !variableName.empty()) { + validator.addBoundsHit(variableName, ValidatorBoundsHit(minv == result, maxv == result)); + validator.adjustConstantBounds(variableName, minv, maxv); + validator.addVariable(variableName); + } + + return result; +} + +std::vector +InStream::readLongs(int size, long long minv, long long maxv, const std::string &variablesName, int indexBase) { + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readLongs, readLong(minv, maxv, variablesName), long long, true) +} + +std::vector InStream::readLongs(int size, int indexBase) { + __testlib_readMany(readLongs, readLong(), long long, true) +} + +unsigned long long +InStream::readUnsignedLong(unsigned long long minv, unsigned long long maxv, const std::string &variableName) { + unsigned long long result = readUnsignedLong(); + + if (result < minv || result > maxv) { + if (readManyIteration == NO_INDEX) { + if (variableName.empty()) + quit(_wa, + ("Unsigned integer " + vtos(result) + " violates the range [" + toHumanReadableString(minv) + ", " + toHumanReadableString(maxv) + + "]").c_str()); + else + quit(_wa, + ("Unsigned integer parameter [name=" + std::string(variableName) + "] equals to " + vtos(result) + + ", violates the range [" + toHumanReadableString(minv) + ", " + toHumanReadableString(maxv) + "]").c_str()); + } else { + if (variableName.empty()) + quit(_wa, + ("Unsigned integer element [index=" + vtos(readManyIteration) + "] equals to " + vtos(result) + + ", violates the range [" + toHumanReadableString(minv) + ", " + toHumanReadableString(maxv) + "]").c_str()); + else + quit(_wa, ("Unsigned integer element " + std::string(variableName) + "[" + vtos(readManyIteration) + + "] equals to " + vtos(result) + ", violates the range [" + toHumanReadableString(minv) + ", " + toHumanReadableString(maxv) + + "]").c_str()); + } + } + + if (strict && !variableName.empty()) { + validator.addBoundsHit(variableName, ValidatorBoundsHit(minv == result, maxv == result)); + validator.adjustConstantBounds(variableName, minv, maxv); + validator.addVariable(variableName); + } + + return result; +} + +std::vector InStream::readUnsignedLongs(int size, unsigned long long minv, unsigned long long maxv, + const std::string &variablesName, int indexBase) { + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readUnsignedLongs, readUnsignedLong(minv, maxv, variablesName), unsigned long long, true) +} + +std::vector InStream::readUnsignedLongs(int size, int indexBase) { + __testlib_readMany(readUnsignedLongs, readUnsignedLong(), unsigned long long, true) +} + +unsigned long long +InStream::readLong(unsigned long long minv, unsigned long long maxv, const std::string &variableName) { + return readUnsignedLong(minv, maxv, variableName); +} + +int InStream::readInt() { + return readInteger(); +} + +int InStream::readInt(int minv, int maxv, const std::string &variableName) { + int result = readInt(); + + if (result < minv || result > maxv) { + if (readManyIteration == NO_INDEX) { + if (variableName.empty()) + quit(_wa, ("Integer " + vtos(result) + " violates the range [" + toHumanReadableString(minv) + ", " + toHumanReadableString(maxv) + + "]").c_str()); + else + quit(_wa, ("Integer parameter [name=" + std::string(variableName) + "] equals to " + vtos(result) + + ", violates the range [" + toHumanReadableString(minv) + ", " + toHumanReadableString(maxv) + "]").c_str()); + } else { + if (variableName.empty()) + quit(_wa, ("Integer element [index=" + vtos(readManyIteration) + "] equals to " + vtos(result) + + ", violates the range [" + toHumanReadableString(minv) + ", " + toHumanReadableString(maxv) + "]").c_str()); + else + quit(_wa, + ("Integer element " + std::string(variableName) + "[" + vtos(readManyIteration) + "] equals to " + + vtos(result) + ", violates the range [" + toHumanReadableString(minv) + ", " + toHumanReadableString(maxv) + "]").c_str()); + } + } + + if (strict && !variableName.empty()) { + validator.addBoundsHit(variableName, ValidatorBoundsHit(minv == result, maxv == result)); + validator.adjustConstantBounds(variableName, minv, maxv); + validator.addVariable(variableName); + } + + return result; +} + +int InStream::readInteger(int minv, int maxv, const std::string &variableName) { + return readInt(minv, maxv, variableName); +} + +std::vector InStream::readInts(int size, int minv, int maxv, const std::string &variablesName, int indexBase) { + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readInts, readInt(minv, maxv, variablesName), int, true) +} + +std::vector InStream::readInts(int size, int indexBase) { + __testlib_readMany(readInts, readInt(), int, true) +} + +std::vector InStream::readIntegers(int size, int minv, int maxv, const std::string &variablesName, int indexBase) { + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readIntegers, readInt(minv, maxv, variablesName), int, true) +} + +std::vector InStream::readIntegers(int size, int indexBase) { + __testlib_readMany(readIntegers, readInt(), int, true) +} + +double InStream::readReal() { + if (!strict && seekEof()) + quit(_unexpected_eof, "Unexpected end of file - double expected"); + + return stringToDouble(*this, readWord()); +} + +double InStream::readDouble() { + return readReal(); +} + +double InStream::readReal(double minv, double maxv, const std::string &variableName) { + double result = readReal(); + + if (result < minv || result > maxv) { + if (readManyIteration == NO_INDEX) { + if (variableName.empty()) + quit(_wa, ("Double " + vtos(result) + " violates the range [" + vtos(minv) + ", " + vtos(maxv) + + "]").c_str()); + else + quit(_wa, ("Double parameter [name=" + std::string(variableName) + "] equals to " + vtos(result) + + ", violates the range [" + vtos(minv) + ", " + vtos(maxv) + "]").c_str()); + } else { + if (variableName.empty()) + quit(_wa, ("Double element [index=" + vtos(readManyIteration) + "] equals to " + vtos(result) + + ", violates the range [" + vtos(minv) + ", " + vtos(maxv) + "]").c_str()); + else + quit(_wa, + ("Double element " + std::string(variableName) + "[" + vtos(readManyIteration) + "] equals to " + + vtos(result) + ", violates the range [" + vtos(minv) + ", " + vtos(maxv) + "]").c_str()); + } + } + + if (strict && !variableName.empty()) { + validator.addBoundsHit(variableName, ValidatorBoundsHit( + doubleDelta(minv, result) < ValidatorBoundsHit::EPS, + doubleDelta(maxv, result) < ValidatorBoundsHit::EPS + )); + validator.adjustConstantBounds(variableName, minv, maxv); + validator.addVariable(variableName); + } + + return result; +} + +std::vector +InStream::readReals(int size, double minv, double maxv, const std::string &variablesName, int indexBase) { + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readReals, readReal(minv, maxv, variablesName), double, true) +} + +std::vector InStream::readReals(int size, int indexBase) { + __testlib_readMany(readReals, readReal(), double, true) +} + +double InStream::readDouble(double minv, double maxv, const std::string &variableName) { + return readReal(minv, maxv, variableName); +} + +std::vector +InStream::readDoubles(int size, double minv, double maxv, const std::string &variablesName, int indexBase) { + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readDoubles, readDouble(minv, maxv, variablesName), double, true) +} + +std::vector InStream::readDoubles(int size, int indexBase) { + __testlib_readMany(readDoubles, readDouble(), double, true) +} + +double InStream::readStrictReal(double minv, double maxv, + int minAfterPointDigitCount, int maxAfterPointDigitCount, + const std::string &variableName) { + if (!strict && seekEof()) + quit(_unexpected_eof, "Unexpected end of file - strict double expected"); + + double result = stringToStrictDouble(*this, readWord(), minAfterPointDigitCount, maxAfterPointDigitCount); + + if (result < minv || result > maxv) { + if (readManyIteration == NO_INDEX) { + if (variableName.empty()) + quit(_wa, ("Strict double " + vtos(result) + " violates the range [" + vtos(minv) + ", " + vtos(maxv) + + "]").c_str()); + else + quit(_wa, + ("Strict double parameter [name=" + std::string(variableName) + "] equals to " + vtos(result) + + ", violates the range [" + vtos(minv) + ", " + vtos(maxv) + "]").c_str()); + } else { + if (variableName.empty()) + quit(_wa, ("Strict double element [index=" + vtos(readManyIteration) + "] equals to " + vtos(result) + + ", violates the range [" + vtos(minv) + ", " + vtos(maxv) + "]").c_str()); + else + quit(_wa, ("Strict double element " + std::string(variableName) + "[" + vtos(readManyIteration) + + "] equals to " + vtos(result) + ", violates the range [" + vtos(minv) + ", " + vtos(maxv) + + "]").c_str()); + } + } + + if (strict && !variableName.empty()) { + validator.addBoundsHit(variableName, ValidatorBoundsHit( + doubleDelta(minv, result) < ValidatorBoundsHit::EPS, + doubleDelta(maxv, result) < ValidatorBoundsHit::EPS + )); + validator.adjustConstantBounds(variableName, minv, maxv); + validator.addVariable(variableName); + } + + return result; +} + +std::vector InStream::readStrictReals(int size, double minv, double maxv, + int minAfterPointDigitCount, int maxAfterPointDigitCount, + const std::string &variablesName, int indexBase) { + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readStrictReals, + readStrictReal(minv, maxv, minAfterPointDigitCount, maxAfterPointDigitCount, variablesName), + double, true) +} + +double InStream::readStrictDouble(double minv, double maxv, + int minAfterPointDigitCount, int maxAfterPointDigitCount, + const std::string &variableName) { + return readStrictReal(minv, maxv, + minAfterPointDigitCount, maxAfterPointDigitCount, + variableName); +} + +std::vector InStream::readStrictDoubles(int size, double minv, double maxv, + int minAfterPointDigitCount, int maxAfterPointDigitCount, + const std::string &variablesName, int indexBase) { + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readStrictDoubles, + readStrictDouble(minv, maxv, minAfterPointDigitCount, maxAfterPointDigitCount, variablesName), + double, true) +} + +bool InStream::eof() { + if (!strict && NULL == reader) + return true; + + return reader->eof(); +} + +bool InStream::seekEof() { + if (!strict && NULL == reader) + return true; + skipBlanks(); + return eof(); +} + +bool InStream::eoln() { + if (!strict && NULL == reader) + return true; + + int c = reader->nextChar(); + + if (!strict) { + if (c == EOFC) + return true; + + if (c == CR) { + c = reader->nextChar(); + + if (c != LF) { + reader->unreadChar(c); + reader->unreadChar(CR); + return false; + } else + return true; + } + + if (c == LF) + return true; + + reader->unreadChar(c); + return false; + } else { + bool returnCr = false; + +#if (defined(ON_WINDOWS) && !defined(FOR_LINUX)) || defined(FOR_WINDOWS) + if (c != CR) { + reader->unreadChar(c); + return false; + } else { + if (!returnCr) + returnCr = true; + c = reader->nextChar(); + } +#endif + if (c != LF) { + reader->unreadChar(c); + if (returnCr) + reader->unreadChar(CR); + return false; + } + + return true; + } +} + +void InStream::readEoln() { + lastLine = reader->getLine(); + if (!eoln()) + quit(_pe, "Expected EOLN"); +} + +void InStream::readEof() { + lastLine = reader->getLine(); + if (!eof()) + quit(_pe, "Expected EOF"); + + if (TestlibFinalizeGuard::alive && this == &inf) + testlibFinalizeGuard.readEofCount++; +} + +bool InStream::seekEoln() { + if (!strict && NULL == reader) + return true; + + int cur; + do { + cur = reader->nextChar(); + } while (cur == SPACE || cur == TAB); + + reader->unreadChar(cur); + return eoln(); +} + +void InStream::nextLine() { + readLine(); +} + +void InStream::readStringTo(std::string &result) { + if (NULL == reader) + quit(_pe, "Expected line"); + + result.clear(); + + for (;;) { + int cur = reader->curChar(); + + if (cur == LF || cur == EOFC) + break; + + if (cur == CR) { + cur = reader->nextChar(); + if (reader->curChar() == LF) { + reader->unreadChar(cur); + break; + } + } + + lastLine = reader->getLine(); + result += char(reader->nextChar()); + } + + if (strict) + readEoln(); + else + eoln(); +} + +std::string InStream::readString() { + readStringTo(_tmpReadToken); + return _tmpReadToken; +} + +std::vector InStream::readStrings(int size, int indexBase) { + __testlib_readMany(readStrings, readString(), std::string, false) +} + +void InStream::readStringTo(std::string &result, const pattern &p, const std::string &variableName) { + readStringTo(result); + if (!p.matches(result)) { + if (readManyIteration == NO_INDEX) { + if (variableName.empty()) + quit(_wa, ("Line \"" + __testlib_part(result) + "\" doesn't correspond to pattern \"" + p.src() + + "\"").c_str()); + else + quit(_wa, ("Line [name=" + variableName + "] equals to \"" + __testlib_part(result) + + "\", doesn't correspond to pattern \"" + p.src() + "\"").c_str()); + } else { + if (variableName.empty()) + quit(_wa, + ("Line element [index=" + vtos(readManyIteration) + "] equals to \"" + __testlib_part(result) + + "\" doesn't correspond to pattern \"" + p.src() + "\"").c_str()); + else + quit(_wa, + ("Line element " + std::string(variableName) + "[" + vtos(readManyIteration) + "] equals to \"" + + __testlib_part(result) + "\", doesn't correspond to pattern \"" + p.src() + "\"").c_str()); + } + } + if (strict && !variableName.empty()) + validator.addVariable(variableName); +} + +void InStream::readStringTo(std::string &result, const std::string &ptrn, const std::string &variableName) { + readStringTo(result, pattern(ptrn), variableName); +} + +std::string InStream::readString(const pattern &p, const std::string &variableName) { + readStringTo(_tmpReadToken, p, variableName); + return _tmpReadToken; +} + +std::vector +InStream::readStrings(int size, const pattern &p, const std::string &variablesName, int indexBase) { + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readStrings, readString(p, variablesName), std::string, false) +} + +std::string InStream::readString(const std::string &ptrn, const std::string &variableName) { + readStringTo(_tmpReadToken, ptrn, variableName); + return _tmpReadToken; +} + +std::vector +InStream::readStrings(int size, const std::string &ptrn, const std::string &variablesName, int indexBase) { + pattern p(ptrn); + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readStrings, readString(p, variablesName), std::string, false) +} + +void InStream::readLineTo(std::string &result) { + readStringTo(result); +} + +std::string InStream::readLine() { + return readString(); +} + +std::vector InStream::readLines(int size, int indexBase) { + __testlib_readMany(readLines, readString(), std::string, false) +} + +void InStream::readLineTo(std::string &result, const pattern &p, const std::string &variableName) { + readStringTo(result, p, variableName); +} + +void InStream::readLineTo(std::string &result, const std::string &ptrn, const std::string &variableName) { + readStringTo(result, ptrn, variableName); +} + +std::string InStream::readLine(const pattern &p, const std::string &variableName) { + return readString(p, variableName); +} + +std::vector +InStream::readLines(int size, const pattern &p, const std::string &variablesName, int indexBase) { + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readLines, readString(p, variablesName), std::string, false) +} + +std::string InStream::readLine(const std::string &ptrn, const std::string &variableName) { + return readString(ptrn, variableName); +} + +std::vector +InStream::readLines(int size, const std::string &ptrn, const std::string &variablesName, int indexBase) { + pattern p(ptrn); + if (strict && !variablesName.empty()) + validator.addVariable(variablesName); + __testlib_readMany(readLines, readString(p, variablesName), std::string, false) +} + +#ifdef __GNUC__ +__attribute__ ((format (printf, 3, 4))) +#endif +void InStream::ensuref(bool cond, const char *format, ...) { + if (!cond) { + FMT_TO_RESULT(format, format, message); + this->__testlib_ensure(cond, message); + } +} + +void InStream::__testlib_ensure(bool cond, std::string message) { + if (!cond) + this->quit(_wa, message.c_str()); +} + +void InStream::close() { + if (NULL != reader) { + reader->close(); + delete reader; + reader = NULL; + } + + opened = false; +} + +NORETURN void quit(TResult result, const std::string &msg) { + ouf.quit(result, msg.c_str()); +} + +NORETURN void quit(TResult result, const char *msg) { + ouf.quit(result, msg); +} + +double __testlib_preparePoints(double points_) { + volatile double points = points_; + if (__testlib_isNaN(points)) + quit(_fail, "Parameter 'points' can't be nan"); + if (__testlib_isInfinite(points)) + quit(_fail, "Parameter 'points' can't be infinite"); + if (points < -1E-8) + quit(_fail, "Parameter 'points' can't be negative"); + if (points <= 0.0) + points = +0.0; + if (points > 1E6 + 1E-8) + quit(_fail, "Parameter 'points' can't be greater than 1E6"); + if (points >= 1E6) + points = 1E6; + return points; +} + +NORETURN void __testlib_quitp(double points, const char *message) { + __testlib_points = __testlib_preparePoints(points); + std::string stringPoints = removeDoubleTrailingZeroes(testlib_format_("%.10f", __testlib_points)); + + std::string quitMessage; + if (NULL == message || 0 == strlen(message)) + quitMessage = stringPoints; + else + quitMessage = stringPoints + " " + message; + + quit(_points, quitMessage.c_str()); +} + +NORETURN void __testlib_quitp(int points, const char *message) { + __testlib_points = __testlib_preparePoints(points); + std::string stringPoints = testlib_format_("%d", points); + + std::string quitMessage; + if (NULL == message || 0 == strlen(message)) + quitMessage = stringPoints; + else + quitMessage = stringPoints + " " + message; + + quit(_points, quitMessage.c_str()); +} + +NORETURN void quitp(float points, const std::string &message = "") { + __testlib_quitp(double(points), message.c_str()); +} + +NORETURN void quitp(double points, const std::string &message = "") { + __testlib_quitp(points, message.c_str()); +} + +NORETURN void quitp(long double points, const std::string &message = "") { + __testlib_quitp(double(points), message.c_str()); +} + +NORETURN void quitp(int points, const std::string &message = "") { + __testlib_quitp(points, message.c_str()); +} + +NORETURN void quitpi(const std::string &points_info, const std::string &message = "") { + if (points_info.find(' ') != std::string::npos) + quit(_fail, "Parameter 'points_info' can't contain spaces"); + if (message.empty()) + quit(_points, ("points_info=" + points_info).c_str()); + else + quit(_points, ("points_info=" + points_info + " " + message).c_str()); +} + +template +#ifdef __GNUC__ +__attribute__ ((format (printf, 2, 3))) +#endif +NORETURN void quitp(F points, const char *format, ...) { + FMT_TO_RESULT(format, format, message); + quitp(points, message); +} + +#ifdef __GNUC__ +__attribute__ ((format (printf, 2, 3))) +#endif +NORETURN void quitf(TResult result, const char *format, ...) { + FMT_TO_RESULT(format, format, message); + quit(result, message); +} + +#ifdef __GNUC__ +__attribute__ ((format (printf, 3, 4))) +#endif +void quitif(bool condition, TResult result, const char *format, ...) { + if (condition) { + FMT_TO_RESULT(format, format, message); + quit(result, message); + } +} + +NORETURN void __testlib_help() { + InStream::textColor(InStream::LightCyan); + std::fprintf(stderr, "TESTLIB %s, https://github.com/MikeMirzayanov/testlib/ ", VERSION); + std::fprintf(stderr, "by Mike Mirzayanov, copyright(c) 2005-2020\n"); + std::fprintf(stderr, "Checker name: \"%s\"\n", checkerName.c_str()); + InStream::textColor(InStream::LightGray); + + std::fprintf(stderr, "\n"); + std::fprintf(stderr, "Latest features: \n"); + for (size_t i = 0; i < sizeof(latestFeatures) / sizeof(char *); i++) { + std::fprintf(stderr, "*) %s\n", latestFeatures[i]); + } + std::fprintf(stderr, "\n"); + + std::fprintf(stderr, "Program must be run with the following arguments: \n"); + std::fprintf(stderr, " [--testset testset] [--group group] [ [<-appes>]]\n\n"); + + __testlib_exitCode = FAIL_EXIT_CODE; + std::exit(FAIL_EXIT_CODE); +} + +static void __testlib_ensuresPreconditions() { + // testlib assumes: sizeof(int) = 4. + __TESTLIB_STATIC_ASSERT(sizeof(int) == 4); + + // testlib assumes: INT_MAX == 2147483647. + __TESTLIB_STATIC_ASSERT(INT_MAX == 2147483647); + + // testlib assumes: sizeof(long long) = 8. + __TESTLIB_STATIC_ASSERT(sizeof(long long) == 8); + + // testlib assumes: sizeof(double) = 8. + __TESTLIB_STATIC_ASSERT(sizeof(double) == 8); + + // testlib assumes: no -ffast-math. + if (!__testlib_isNaN(+__testlib_nan())) + quit(_fail, "Function __testlib_isNaN is not working correctly: possible reason is '-ffast-math'"); + if (!__testlib_isNaN(-__testlib_nan())) + quit(_fail, "Function __testlib_isNaN is not working correctly: possible reason is '-ffast-math'"); +} + +std::string __testlib_testset; + +std::string getTestset() { + return __testlib_testset; +} + +std::string __testlib_group; + +std::string getGroup() { + return __testlib_group; +} + +static void __testlib_set_testset_and_group(int argc, char* argv[]) { + for (int i = 1; i < argc; i++) { + if (!strcmp("--testset", argv[i])) { + if (i + 1 < argc && strlen(argv[i + 1]) > 0) + __testlib_testset = argv[++i]; + else + quit(_fail, std::string("Expected non-empty testset after --testset command line parameter")); + } else if (!strcmp("--group", argv[i])) { + if (i + 1 < argc) + __testlib_group = argv[++i]; + else + quit(_fail, std::string("Expected group after --group command line parameter")); + } + } +} + +void registerGen(int argc, char *argv[], int randomGeneratorVersion) { + if (randomGeneratorVersion < 0 || randomGeneratorVersion > 1) + quitf(_fail, "Random generator version is expected to be 0 or 1."); + random_t::version = randomGeneratorVersion; + + __testlib_ensuresPreconditions(); + TestlibFinalizeGuard::registered = true; + + testlibMode = _generator; + __testlib_set_binary(stdin); + rnd.setSeed(argc, argv); + +#if __cplusplus > 199711L || defined(_MSC_VER) + prepareOpts(argc, argv); +#endif +} + +#ifdef USE_RND_AS_BEFORE_087 +void registerGen(int argc, char* argv[]) +{ + registerGen(argc, argv, 0); +} +#else +#ifdef __GNUC__ +#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 4)) +__attribute__ ((deprecated("Use registerGen(argc, argv, 0) or registerGen(argc, argv, 1)." +" The third parameter stands for the random generator version." +" If you are trying to compile old generator use macro -DUSE_RND_AS_BEFORE_087 or registerGen(argc, argv, 0)." +" Version 1 has been released on Spring, 2013. Use it to write new generators."))) +#else +__attribute__ ((deprecated)) +#endif +#endif +#ifdef _MSC_VER +__declspec(deprecated("Use registerGen(argc, argv, 0) or registerGen(argc, argv, 1)." + " The third parameter stands for the random generator version." + " If you are trying to compile old generator use macro -DUSE_RND_AS_BEFORE_087 or registerGen(argc, argv, 0)." + " Version 1 has been released on Spring, 2013. Use it to write new generators.")) +#endif +void registerGen(int argc, char *argv[]) { + std::fprintf(stderr, "Use registerGen(argc, argv, 0) or registerGen(argc, argv, 1)." + " The third parameter stands for the random generator version." + " If you are trying to compile old generator use macro -DUSE_RND_AS_BEFORE_087 or registerGen(argc, argv, 0)." + " Version 1 has been released on Spring, 2013. Use it to write new generators.\n\n"); + registerGen(argc, argv, 0); +} +#endif + +void setAppesModeEncoding(std::string appesModeEncoding) { + static const char* const ENCODINGS[] = {"ascii", "utf-7", "utf-8", "utf-16", "utf-16le", "utf-16be", "utf-32", "utf-32le", "utf-32be", "iso-8859-1", +"iso-8859-2", "iso-8859-3", "iso-8859-4", "iso-8859-5", "iso-8859-6", "iso-8859-7", "iso-8859-8", "iso-8859-9", "iso-8859-10", "iso-8859-11", +"iso-8859-13", "iso-8859-14", "iso-8859-15", "iso-8859-16", "windows-1250", "windows-1251", "windows-1252", "windows-1253", "windows-1254", "windows-1255", +"windows-1256", "windows-1257", "windows-1258", "gb2312", "gbk", "gb18030", "big5", "shift-jis", "euc-jp", "euc-kr", +"euc-cn", "euc-tw", "koi8-r", "koi8-u", "tis-620", "ibm437", "ibm850", "ibm852", "ibm855", "ibm857", +"ibm860", "ibm861", "ibm862", "ibm863", "ibm865", "ibm866", "ibm869", "macroman", "maccentraleurope", "maciceland", +"maccroatian", "macromania", "maccyrillic", "macukraine", "macgreek", "macturkish", "machebrew", "macarabic", "macthai", "hz-gb-2312", +"iso-2022-jp", "iso-2022-kr", "iso-2022-cn", "armscii-8", "tscii", "iscii", "viscii", "geostd8", "cp949", "cp874", +"cp1006", "cp775", "cp858", "cp737", "cp853", "cp856", "cp922", "cp1046", "cp1125", "cp1131", +"ptcp154", "koi8-t", "koi8-ru", "mulelao-1", "cp1133", "iso-ir-166", "tcvn", "iso-ir-14", "iso-ir-87", "iso-ir-159"}; + + appesModeEncoding = lowerCase(appesModeEncoding); + bool valid = false; + for (size_t i = 0; i < sizeof(ENCODINGS) / sizeof(ENCODINGS[0]); i++) + if (appesModeEncoding == ENCODINGS[i]) { + valid = true; + break; + } + if (!valid) + quit(_fail, "Unexpected encoding for setAppesModeEncoding(encoding)"); + ::appesModeEncoding = appesModeEncoding; +} + +void registerInteraction(int argc, char *argv[]) { + __testlib_ensuresPreconditions(); + __testlib_set_testset_and_group(argc, argv); + TestlibFinalizeGuard::registered = true; + + testlibMode = _interactor; + __testlib_set_binary(stdin); + + if (argc > 1 && !strcmp("--help", argv[1])) + __testlib_help(); + + if (argc < 3 || argc > 6) { + quit(_fail, std::string("Program must be run with the following arguments: ") + + std::string(" [ [ [<-appes>]]]") + + "\nUse \"--help\" to get help information"); + } + + if (argc <= 4) { + resultName = ""; + appesMode = false; + } + +#ifndef EJUDGE + if (argc == 5) { + resultName = argv[4]; + appesMode = false; + } + + if (argc == 6) { + if (strcmp("-APPES", argv[5]) && strcmp("-appes", argv[5])) { + quit(_fail, std::string("Program must be run with the following arguments: ") + + " [ [<-appes>]]"); + } else { + resultName = argv[4]; + appesMode = true; + } + } +#endif + + inf.init(argv[1], _input); + + tout.open(argv[2], std::ios_base::out); + if (tout.fail() || !tout.is_open()) + quit(_fail, std::string("Can not write to the test-output-file '") + argv[2] + std::string("'")); + + ouf.init(stdin, _output); + + if (argc >= 4) + ans.init(argv[3], _answer); + else + ans.name = "unopened answer stream"; +} + +void registerValidation() { + __testlib_ensuresPreconditions(); + TestlibFinalizeGuard::registered = true; + + testlibMode = _validator; + + __testlib_set_binary(stdin); + __testlib_set_binary(stdout); + __testlib_set_binary(stderr); + + inf.init(stdin, _input); + inf.strict = true; +} + +void registerValidation(int argc, char *argv[]) { + registerValidation(); + __testlib_set_testset_and_group(argc, argv); + + validator.initialize(); + TestlibFinalizeGuard::registered = true; + + std::string comment = "Validator must be run with the following arguments:" + " [--testset testset]" + " [--group group]" + " [--testOverviewLogFileName fileName]" + " [--testMarkupFileName fileName]" + " [--testCase testCase]" + " [--testCaseFileName fileName]" + ; + + for (int i = 1; i < argc; i++) { + if (!strcmp("--testset", argv[i])) { + if (i + 1 < argc && strlen(argv[i + 1]) > 0) + validator.setTestset(argv[++i]); + else + quit(_fail, comment); + } + if (!strcmp("--group", argv[i])) { + if (i + 1 < argc) + validator.setGroup(argv[++i]); + else + quit(_fail, comment); + } + if (!strcmp("--testOverviewLogFileName", argv[i])) { + if (i + 1 < argc) + validator.setTestOverviewLogFileName(argv[++i]); + else + quit(_fail, comment); + } + if (!strcmp("--testMarkupFileName", argv[i])) { + if (i + 1 < argc) + validator.setTestMarkupFileName(argv[++i]); + else + quit(_fail, comment); + } + if (!strcmp("--testCase", argv[i])) { + if (i + 1 < argc) { + long long testCase = stringToLongLong(inf, argv[++i]); + if (testCase < 1 || testCase >= __TESTLIB_MAX_TEST_CASE) + quit(_fail, testlib_format_("Argument testCase should be between 1 and %d, but ", __TESTLIB_MAX_TEST_CASE) + + toString(testCase) + " found"); + validator.setTestCase(int(testCase)); + } else + quit(_fail, comment); + } + if (!strcmp("--testCaseFileName", argv[i])) { + if (i + 1 < argc) { + validator.setTestCaseFileName(argv[++i]); + } else + quit(_fail, comment); + } + } +} + +void addFeature(const std::string &feature) { + if (testlibMode != _validator) + quit(_fail, "Features are supported in validators only."); + validator.addFeature(feature); +} + +void feature(const std::string &feature) { + if (testlibMode != _validator) + quit(_fail, "Features are supported in validators only."); + validator.feature(feature); +} + +class Checker { +private: + bool _initialized; + std::string _testset; + std::string _group; + +public: + Checker() : _initialized(false), _testset("tests"), _group() { + } + + void initialize() { + _initialized = true; + } + + std::string testset() const { + if (!_initialized) + __testlib_fail("Checker should be initialized with registerTestlibCmd(argc, argv) instead of registerTestlibCmd() to support checker.testset()"); + return _testset; + } + + std::string group() const { + if (!_initialized) + __testlib_fail("Checker should be initialized with registerTestlibCmd(argc, argv) instead of registerTestlibCmd() to support checker.group()"); + return _group; + } + + void setTestset(const char *const testset) { + _testset = testset; + } + + void setGroup(const char *const group) { + _group = group; + } +} checker; + +void registerTestlibCmd(int argc, char *argv[]) { + __testlib_ensuresPreconditions(); + __testlib_set_testset_and_group(argc, argv); + TestlibFinalizeGuard::registered = true; + + testlibMode = _checker; + __testlib_set_binary(stdin); + + std::vector args(1, argv[0]); + checker.initialize(); + + for (int i = 1; i < argc; i++) { + if (!strcmp("--testset", argv[i])) { + if (i + 1 < argc && strlen(argv[i + 1]) > 0) + checker.setTestset(argv[++i]); + else + quit(_fail, std::string("Expected testset after --testset command line parameter")); + } else if (!strcmp("--group", argv[i])) { + if (i + 1 < argc) + checker.setGroup(argv[++i]); + else + quit(_fail, std::string("Expected group after --group command line parameter")); + } else + args.push_back(argv[i]); + } + + argc = int(args.size()); + if (argc > 1 && "--help" == args[1]) + __testlib_help(); + + if (argc < 4 || argc > 6) { + quit(_fail, std::string("Program must be run with the following arguments: ") + + std::string("[--testset testset] [--group group] [ [<-appes>]]") + + "\nUse \"--help\" to get help information"); + } + + if (argc == 4) { + resultName = ""; + appesMode = false; + } + +#ifndef EJUDGE + if (argc == 5) { + resultName = args[4]; + appesMode = false; + } + + if (argc == 6) { + if ("-APPES" != args[5] && "-appes" != args[5]) { + quit(_fail, std::string("Program must be run with the following arguments: ") + + " [ [<-appes>]]"); + } else { + resultName = args[4]; + appesMode = true; + } + } +#endif + + inf.init(args[1], _input); + ouf.init(args[2], _output); + ouf.skipBom(); + ans.init(args[3], _answer); +} + +void registerTestlib(int argc, ...) { + if (argc < 3 || argc > 5) + quit(_fail, std::string("Program must be run with the following arguments: ") + + " [ [<-appes>]]"); + + char **argv = new char *[argc + 1]; + + va_list ap; + va_start(ap, argc); + argv[0] = NULL; + for (int i = 0; i < argc; i++) { + argv[i + 1] = va_arg(ap, char*); + } + va_end(ap); + + registerTestlibCmd(argc + 1, argv); + delete[] argv; +} + +static inline void __testlib_ensure(bool cond, const std::string &msg) { + if (!cond) + quit(_fail, msg.c_str()); +} + +#ifdef __GNUC__ +__attribute__((unused)) +#endif +static inline void __testlib_ensure(bool cond, const char *msg) { + if (!cond) + quit(_fail, msg); +} + +#define ensure(cond) __testlib_ensure((cond), "Condition failed: \"" #cond "\"") +#define STRINGIZE_DETAIL(x) (#x) +#define STRINGIZE(x) STRINGIZE_DETAIL((x)) +#define ensure_ext(cond) __testlib_ensure((cond), "Line " STRINGIZE(__LINE__) ": Condition failed: \"" #cond "\"") + +#ifdef __GNUC__ +__attribute__ ((format (printf, 2, 3))) +#endif +inline void ensuref(bool cond, const char *format, ...) { + if (!cond) { + FMT_TO_RESULT(format, format, message); + __testlib_ensure(cond, message); + } +} + +NORETURN static void __testlib_fail(const std::string &message) { + quitf(_fail, "%s", message.c_str()); +} + +#ifdef __GNUC__ +__attribute__ ((format (printf, 1, 2))) +#endif +void setName(const char *format, ...) { + FMT_TO_RESULT(format, format, name); + checkerName = name; +} + +/* + * Do not use random_shuffle, because it will produce different result + * for different C++ compilers. + * + * This implementation uses testlib random_t to produce random numbers, so + * it is stable. + */ +template +void shuffle(_RandomAccessIter __first, _RandomAccessIter __last) { + if (__first == __last) return; + for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) + std::iter_swap(__i, __first + rnd.next(int(__i - __first) + 1)); +} + + +template +#if defined(__GNUC__) && !defined(__clang__) +__attribute__ ((error("Don't use random_shuffle(), use shuffle() instead"))) +#endif +void random_shuffle(_RandomAccessIter, _RandomAccessIter) { + quitf(_fail, "Don't use random_shuffle(), use shuffle() instead"); +} + +#ifdef __GLIBC__ +# define RAND_THROW_STATEMENT throw() +#else +# define RAND_THROW_STATEMENT +#endif + +#if defined(__GNUC__) && !defined(__clang__) + +__attribute__ ((error("Don't use rand(), use rnd.next() instead"))) +#endif +#ifdef _MSC_VER +# pragma warning( disable : 4273 ) +#endif +int rand() RAND_THROW_STATEMENT +{ + quitf(_fail, "Don't use rand(), use rnd.next() instead"); + + /* This line never runs. */ + //throw "Don't use rand(), use rnd.next() instead"; +} + +#if defined(__GNUC__) && !defined(__clang__) + +__attribute__ ((error("Don't use srand(), you should use " +"'registerGen(argc, argv, 1);' to initialize generator seed " +"by hash code of the command line params. The third parameter " +"is randomGeneratorVersion (currently the latest is 1)."))) +#endif +#ifdef _MSC_VER +# pragma warning( disable : 4273 ) +#endif +void srand(unsigned int seed) RAND_THROW_STATEMENT +{ + quitf(_fail, "Don't use srand(), you should use " + "'registerGen(argc, argv, 1);' to initialize generator seed " + "by hash code of the command line params. The third parameter " + "is randomGeneratorVersion (currently the latest is 1) [ignored seed=%u].", seed); +} + +void startTest(int test) { + const std::string testFileName = vtos(test); + if (NULL == testlib_freopen_(testFileName.c_str(), "wt", stdout)) + __testlib_fail("Unable to write file '" + testFileName + "'"); +} + +#ifdef __GNUC__ +__attribute__((const)) +#endif +inline std::string compress(const std::string &s) { + return __testlib_part(s); +} + +#ifdef __GNUC__ +__attribute__((const)) +#endif +inline std::string englishEnding(int x) { + x %= 100; + if (x / 10 == 1) + return "th"; + if (x % 10 == 1) + return "st"; + if (x % 10 == 2) + return "nd"; + if (x % 10 == 3) + return "rd"; + return "th"; +} + +template +#ifdef __GNUC__ +__attribute__((const)) +#endif +std::string join(_ForwardIterator first, _ForwardIterator last, _Separator separator) { + std::stringstream ss; + bool repeated = false; + for (_ForwardIterator i = first; i != last; i++) { + if (repeated) + ss << separator; + else + repeated = true; + ss << *i; + } + return ss.str(); +} + +template +#ifdef __GNUC__ +__attribute__((const)) +#endif +std::string join(_ForwardIterator first, _ForwardIterator last) { + return join(first, last, ' '); +} + +template +#ifdef __GNUC__ +__attribute__((const)) +#endif +std::string join(const _Collection &collection, _Separator separator) { + return join(collection.begin(), collection.end(), separator); +} + +template +#ifdef __GNUC__ +__attribute__((const)) +#endif +std::string join(const _Collection &collection) { + return join(collection, ' '); +} + +/** + * Splits string s by character separator returning exactly k+1 items, + * where k is the number of separator occurrences. + */ +#ifdef __GNUC__ +__attribute__((const)) +#endif +std::vector split(const std::string &s, char separator) { + std::vector result; + std::string item; + for (size_t i = 0; i < s.length(); i++) + if (s[i] == separator) { + result.push_back(item); + item = ""; + } else + item += s[i]; + result.push_back(item); + return result; +} + +/** + * Splits string s by character separators returning exactly k+1 items, + * where k is the number of separator occurrences. + */ +#ifdef __GNUC__ +__attribute__((const)) +#endif +std::vector split(const std::string &s, const std::string &separators) { + if (separators.empty()) + return std::vector(1, s); + + std::vector isSeparator(256); + for (size_t i = 0; i < separators.size(); i++) + isSeparator[(unsigned char) (separators[i])] = true; + + std::vector result; + std::string item; + for (size_t i = 0; i < s.length(); i++) + if (isSeparator[(unsigned char) (s[i])]) { + result.push_back(item); + item = ""; + } else + item += s[i]; + result.push_back(item); + return result; +} + +/** + * Splits string s by character separator returning non-empty items. + */ +#ifdef __GNUC__ +__attribute__((const)) +#endif +std::vector tokenize(const std::string &s, char separator) { + std::vector result; + std::string item; + for (size_t i = 0; i < s.length(); i++) + if (s[i] == separator) { + if (!item.empty()) + result.push_back(item); + item = ""; + } else + item += s[i]; + if (!item.empty()) + result.push_back(item); + return result; +} + +/** + * Splits string s by character separators returning non-empty items. + */ +#ifdef __GNUC__ +__attribute__((const)) +#endif +std::vector tokenize(const std::string &s, const std::string &separators) { + if (separators.empty()) + return std::vector(1, s); + + std::vector isSeparator(256); + for (size_t i = 0; i < separators.size(); i++) + isSeparator[(unsigned char) (separators[i])] = true; + + std::vector result; + std::string item; + for (size_t i = 0; i < s.length(); i++) + if (isSeparator[(unsigned char) (s[i])]) { + if (!item.empty()) + result.push_back(item); + item = ""; + } else + item += s[i]; + + if (!item.empty()) + result.push_back(item); + + return result; +} + +NORETURN void __testlib_expectedButFound(TResult result, std::string expected, std::string found, const char *prepend) { + std::string message; + if (strlen(prepend) != 0) + message = testlib_format_("%s: expected '%s', but found '%s'", + compress(prepend).c_str(), compress(expected).c_str(), compress(found).c_str()); + else + message = testlib_format_("expected '%s', but found '%s'", + compress(expected).c_str(), compress(found).c_str()); + quit(result, message); +} + +NORETURN void __testlib_expectedButFound(TResult result, double expected, double found, const char *prepend) { + std::string expectedString = removeDoubleTrailingZeroes(testlib_format_("%.12f", expected)); + std::string foundString = removeDoubleTrailingZeroes(testlib_format_("%.12f", found)); + __testlib_expectedButFound(result, expectedString, foundString, prepend); +} + +template +#ifdef __GNUC__ +__attribute__ ((format (printf, 4, 5))) +#endif +NORETURN void expectedButFound(TResult result, T expected, T found, const char *prependFormat = "", ...) { + FMT_TO_RESULT(prependFormat, prependFormat, prepend); + std::string expectedString = vtos(expected); + std::string foundString = vtos(found); + __testlib_expectedButFound(result, expectedString, foundString, prepend.c_str()); +} + +template<> +#ifdef __GNUC__ +__attribute__ ((format (printf, 4, 5))) +#endif +NORETURN void +expectedButFound(TResult result, std::string expected, std::string found, const char *prependFormat, ...) { + FMT_TO_RESULT(prependFormat, prependFormat, prepend); + __testlib_expectedButFound(result, expected, found, prepend.c_str()); +} + +template<> +#ifdef __GNUC__ +__attribute__ ((format (printf, 4, 5))) +#endif +NORETURN void expectedButFound(TResult result, double expected, double found, const char *prependFormat, ...) { + FMT_TO_RESULT(prependFormat, prependFormat, prepend); + std::string expectedString = removeDoubleTrailingZeroes(testlib_format_("%.12f", expected)); + std::string foundString = removeDoubleTrailingZeroes(testlib_format_("%.12f", found)); + __testlib_expectedButFound(result, expectedString, foundString, prepend.c_str()); +} + +template<> +#ifdef __GNUC__ +__attribute__ ((format (printf, 4, 5))) +#endif +NORETURN void +expectedButFound(TResult result, const char *expected, const char *found, const char *prependFormat, + ...) { + FMT_TO_RESULT(prependFormat, prependFormat, prepend); + __testlib_expectedButFound(result, std::string(expected), std::string(found), prepend.c_str()); +} + +template<> +#ifdef __GNUC__ +__attribute__ ((format (printf, 4, 5))) +#endif +NORETURN void expectedButFound(TResult result, float expected, float found, const char *prependFormat, ...) { + FMT_TO_RESULT(prependFormat, prependFormat, prepend); + __testlib_expectedButFound(result, double(expected), double(found), prepend.c_str()); +} + +template<> +#ifdef __GNUC__ +__attribute__ ((format (printf, 4, 5))) +#endif +NORETURN void +expectedButFound(TResult result, long double expected, long double found, const char *prependFormat, ...) { + FMT_TO_RESULT(prependFormat, prependFormat, prepend); + __testlib_expectedButFound(result, double(expected), double(found), prepend.c_str()); +} + +#if __cplusplus > 199711L || defined(_MSC_VER) +template +struct is_iterable { + template + static char test(typename U::iterator *x); + + template + static long test(U *x); + + static const bool value = sizeof(test(0)) == 1; +}; + +template +struct __testlib_enable_if { +}; + +template +struct __testlib_enable_if { + typedef T type; +}; + +template +typename __testlib_enable_if::value, void>::type __testlib_print_one(const T &t) { + std::cout << t; +} + +template +typename __testlib_enable_if::value, void>::type __testlib_print_one(const T &t) { + bool first = true; + for (typename T::const_iterator i = t.begin(); i != t.end(); i++) { + if (first) + first = false; + else + std::cout << " "; + std::cout << *i; + } +} + +template<> +typename __testlib_enable_if::value, void>::type +__testlib_print_one(const std::string &t) { + std::cout << t; +} + +template +void __println_range(A begin, B end) { + bool first = true; + for (B i = B(begin); i != end; i++) { + if (first) + first = false; + else + std::cout << " "; + __testlib_print_one(*i); + } + std::cout << std::endl; +} + +template +struct is_iterator { + static T makeT(); + + typedef void *twoptrs[2]; + + static twoptrs &test(...); + + template + static typename R::iterator_category *test(R); + + template + static void *test(R *); + + static const bool value = sizeof(test(makeT())) == sizeof(void *); +}; + +template +struct is_iterator::value>::type> { + static const bool value = false; +}; + +template +typename __testlib_enable_if::value, void>::type println(const A &a, const B &b) { + __testlib_print_one(a); + std::cout << " "; + __testlib_print_one(b); + std::cout << std::endl; +} + +template +typename __testlib_enable_if::value, void>::type println(const A &a, const B &b) { + __println_range(a, b); +} + +template +void println(const A *a, const A *b) { + __println_range(a, b); +} + +template<> +void println(const char *a, const char *b) { + __testlib_print_one(a); + std::cout << " "; + __testlib_print_one(b); + std::cout << std::endl; +} + +template +void println(const T &x) { + __testlib_print_one(x); + std::cout << std::endl; +} + +template +void println(const A &a, const B &b, const C &c) { + __testlib_print_one(a); + std::cout << " "; + __testlib_print_one(b); + std::cout << " "; + __testlib_print_one(c); + std::cout << std::endl; +} + +template +void println(const A &a, const B &b, const C &c, const D &d) { + __testlib_print_one(a); + std::cout << " "; + __testlib_print_one(b); + std::cout << " "; + __testlib_print_one(c); + std::cout << " "; + __testlib_print_one(d); + std::cout << std::endl; +} + +template +void println(const A &a, const B &b, const C &c, const D &d, const E &e) { + __testlib_print_one(a); + std::cout << " "; + __testlib_print_one(b); + std::cout << " "; + __testlib_print_one(c); + std::cout << " "; + __testlib_print_one(d); + std::cout << " "; + __testlib_print_one(e); + std::cout << std::endl; +} + +template +void println(const A &a, const B &b, const C &c, const D &d, const E &e, const F &f) { + __testlib_print_one(a); + std::cout << " "; + __testlib_print_one(b); + std::cout << " "; + __testlib_print_one(c); + std::cout << " "; + __testlib_print_one(d); + std::cout << " "; + __testlib_print_one(e); + std::cout << " "; + __testlib_print_one(f); + std::cout << std::endl; +} + +template +void println(const A &a, const B &b, const C &c, const D &d, const E &e, const F &f, const G &g) { + __testlib_print_one(a); + std::cout << " "; + __testlib_print_one(b); + std::cout << " "; + __testlib_print_one(c); + std::cout << " "; + __testlib_print_one(d); + std::cout << " "; + __testlib_print_one(e); + std::cout << " "; + __testlib_print_one(f); + std::cout << " "; + __testlib_print_one(g); + std::cout << std::endl; +} + +/* opts */ + +/** + * A struct for a singular testlib opt, containing the raw string value, + * and a boolean value for marking whether the opt is used. + */ +struct TestlibOpt { + std::string value; + bool used; + + TestlibOpt() : value(), used(false) {} +}; + +/** + * Get the type of opt based on the number of `-` at the beginning and the + * _validity_ of the key name. + * + * A valid key name must start with an alphabetical character. + * + * Returns: 1 if s has one `-` at the beginning, that is, "-keyName". + * 2 if s has two `-` at the beginning, that is, "--keyName". + * 0 otherwise. That is, if s has no `-` at the beginning, or has more + * than 2 at the beginning ("---keyName", "----keyName", ...), or the + * keyName is invalid (the first character is not an alphabetical + * character). + */ +size_t getOptType(char *s) { + if (!s || strlen(s) <= 1) + return 0; + + if (s[0] == '-') { + if (isalpha(s[1])) + return 1; + else if (s[1] == '-') + return isalpha(s[2]) ? 2 : 0; + } + + return 0; +} + +/** + * Parse the opt at a given index, and put it into the opts maps. + * + * An opt can has the following form: + * 1) -keyName=value or --keyName=value (ex. -n=10 --test-count=20) + * 2) -keyName value or --keyName value (ex. -n 10 --test-count 20) + * 3) -kNumval or --kNumval (ex. -n10 --t20) + * 4) -boolProperty or --boolProperty (ex. -sorted --tree-only) + * + * Only the second form consumes 2 arguments. The other consumes only 1 + * argument. + * + * In the third form, the key is a single character, and after the key is the + * value. The value _should_ be a number. + * + * In the forth form, the value is true. + * + * Params: + * - argc and argv: the number of command line arguments and the command line + * arguments themselves. + * - index: the starting index of the opts. + * - opts: the map containing the resulting opt. + * + * Returns: the number of consumed arguments to parse the opt. + * 0 if there is no arguments to parse. + * + * Algorithm details: + * TODO. Please refer to the implementation to see how the code handles the 3rd and 4th forms separately. + */ +size_t parseOpt(size_t argc, char *argv[], size_t index, std::map &opts) { + if (index >= argc) + return 0; + + size_t type = getOptType(argv[index]), inc = 1; + if (type > 0) { + std::string key(argv[index] + type), val; + size_t sep = key.find('='); + if (sep != std::string::npos) { + val = key.substr(sep + 1); + key = key.substr(0, sep); + } else { + if (index + 1 < argc && getOptType(argv[index + 1]) == 0) { + val = argv[index + 1]; + inc = 2; + } else { + if (key.length() > 1 && isdigit(key[1])) { + val = key.substr(1); + key = key.substr(0, 1); + } else { + val = "true"; + } + } + } + opts[key].value = val; + } else { + return inc; + } + + return inc; +} + +/** + * Global list containing all the arguments in the order given in the command line. + */ +std::vector __testlib_argv; + +/** + * Global dictionary containing all the parsed opts. + */ +std::map __testlib_opts; + +/** + * Whether automatic no unused opts ensurement should be done. This flag will + * be turned on when `has_opt` or `opt(key, default_value)` is called. + * + * The automatic ensurement can be suppressed when + * __testlib_ensureNoUnusedOptsSuppressed is true. + */ +bool __testlib_ensureNoUnusedOptsFlag = false; + +/** + * Suppress no unused opts automatic ensurement. Can be set to true with + * `suppressEnsureNoUnusedOpts()`. + */ +bool __testlib_ensureNoUnusedOptsSuppressed = false; + +/** + * Parse command line arguments into opts. + * The results are stored into __testlib_argv and __testlib_opts. + */ +void prepareOpts(int argc, char *argv[]) { + if (argc <= 0) + __testlib_fail("Opts: expected argc>=0 but found " + toString(argc)); + size_t n = static_cast(argc); // NOLINT(hicpp-use-auto,modernize-use-auto) + __testlib_opts = std::map(); + for (size_t index = 1; index < n; index += parseOpt(n, argv, index, __testlib_opts)); + __testlib_argv = std::vector(n); + for (size_t index = 0; index < n; index++) + __testlib_argv[index] = argv[index]; +} + +/** + * An utility function to get the argument with a given index. This function + * also print a readable message when no arguments are found. + */ +std::string __testlib_indexToArgv(int index) { + if (index < 0 || index >= int(__testlib_argv.size())) + __testlib_fail("Opts: index '" + toString(index) + "' is out of range [0," + + toString(__testlib_argv.size()) + ")"); + return __testlib_argv[size_t(index)]; +} + +/** + * An utility function to get the opt with a given key . This function + * also print a readable message when no opts are found. + */ +std::string __testlib_keyToOpts(const std::string &key) { + auto it = __testlib_opts.find(key); + if (it == __testlib_opts.end()) + __testlib_fail("Opts: unknown key '" + compress(key) + "'"); + it->second.used = true; + return it->second.value; +} + +template +T optValueToIntegral(const std::string &s, bool nonnegative); + +long double optValueToLongDouble(const std::string &s); + +std::string parseExponentialOptValue(const std::string &s) { + size_t pos = std::string::npos; + for (size_t i = 0; i < s.length(); i++) + if (s[i] == 'e' || s[i] == 'E') { + if (pos != std::string::npos) + __testlib_fail("Opts: expected typical exponential notation but '" + compress(s) + "' found"); + pos = i; + } + if (pos == std::string::npos) + return s; + std::string e = s.substr(pos + 1); + if (!e.empty() && e[0] == '+') + e = e.substr(1); + if (e.empty()) + __testlib_fail("Opts: expected typical exponential notation but '" + compress(s) + "' found"); + if (e.length() > 20) + __testlib_fail("Opts: expected typical exponential notation but '" + compress(s) + "' found"); + int ne = optValueToIntegral(e, false); + std::string num = s.substr(0, pos); + if (num.length() > 20) + __testlib_fail("Opts: expected typical exponential notation but '" + compress(s) + "' found"); + if (!num.empty() && num[0] == '+') + num = num.substr(1); + optValueToLongDouble(num); + bool minus = false; + if (num[0] == '-') { + minus = true; + num = num.substr(1); + } + for (int i = 0; i < +ne; i++) { + size_t sep = num.find('.'); + if (sep == std::string::npos) + num += '0'; + else { + if (sep + 1 == num.length()) + num[sep] = '0'; + else + std::swap(num[sep], num[sep + 1]); + } + } + for (int i = 0; i < -ne; i++) { + size_t sep = num.find('.'); + if (sep == std::string::npos) + num.insert(num.begin() + int(num.length()) - 1, '.'); + else { + if (sep == 0) + num.insert(num.begin() + 1, '0'); + else + std::swap(num[sep - 1], num[sep]); + } + } + while (!num.empty() && num[0] == '0') + num = num.substr(1); + while (num.find('.') != std::string::npos && num.back() == '0') + num = num.substr(0, num.length() - 1); + if (!num.empty() && num.back() == '.') + num = num.substr(0, num.length() - 1); + if ((!num.empty() && num[0] == '.') || num.empty()) + num.insert(num.begin(), '0'); + return (minus ? "-" : "") + num; +} + +template +T optValueToIntegral(const std::string &s_, bool nonnegative) { + std::string s(parseExponentialOptValue(s_)); + if (s.empty()) + __testlib_fail("Opts: expected integer but '" + compress(s_) + "' found"); + T value = 0; + long double about = 0.0; + signed char sign = +1; + size_t pos = 0; + if (s[pos] == '-') { + if (nonnegative) + __testlib_fail("Opts: expected non-negative integer but '" + compress(s_) + "' found"); + sign = -1; + pos++; + } + for (size_t i = pos; i < s.length(); i++) { + if (s[i] < '0' || s[i] > '9') + __testlib_fail("Opts: expected integer but '" + compress(s_) + "' found"); + value = T(value * 10 + s[i] - '0'); + about = about * 10 + s[i] - '0'; + } + value *= sign; + about *= sign; + if (fabsl(value - about) > 0.1) + __testlib_fail("Opts: integer overflow: expected integer but '" + compress(s_) + "' found"); + return value; +} + +long double optValueToLongDouble(const std::string &s_) { + std::string s(parseExponentialOptValue(s_)); + if (s.empty()) + __testlib_fail("Opts: expected float number but '" + compress(s_) + "' found"); + long double value = 0.0; + signed char sign = +1; + size_t pos = 0; + if (s[pos] == '-') { + sign = -1; + pos++; + } + bool period = false; + long double mul = 1.0; + for (size_t i = pos; i < s.length(); i++) { + if (s[i] == '.') { + if (period) + __testlib_fail("Opts: expected float number but '" + compress(s_) + "' found"); + else { + period = true; + continue; + } + } + if (period) + mul *= 10.0; + if (s[i] < '0' || s[i] > '9') + __testlib_fail("Opts: expected float number but '" + compress(s_) + "' found"); + if (period) + value += (s[i] - '0') / mul; + else + value = value * 10 + s[i] - '0'; + } + value *= sign; + return value; +} + +/** + * Return true if there is an opt with a given key. + * + * By calling this function, automatic ensurement for no unused opts will be + * done when the program is finalized. Call suppressEnsureNoUnusedOpts() to + * turn it off. + */ +bool has_opt(const std::string &key) { + __testlib_ensureNoUnusedOptsFlag = true; + return __testlib_opts.count(key) != 0; +} + +/* About the following part for opt with 2 and 3 arguments. + * + * To parse the argv/opts correctly for a give type (integer, floating point or + * string), some meta programming must be done to determine the type of + * the type, and use the correct parsing function accordingly. + * + * The pseudo algorithm for determining the type of T and parse it accordingly + * is as follows: + * + * if (T is integral type) { + * if (T is unsigned) { + * parse the argv/opt as an **unsigned integer** of type T. + * } else { + * parse the argv/opt as an **signed integer** of type T. + * } else { + * if (T is floating point type) { + * parse the argv/opt as an **floating point** of type T. + * } else { + * // T should be std::string + * just the raw content of the argv/opts. + * } + * } + * + * To help with meta programming, some `opt` function with 2 or 3 arguments are + * defined. + * + * Opt with 3 arguments: T opt(true/false is_integral, true/false is_unsigned, index/key) + * + * + The first argument is for determining whether the type T is an integral + * type. That is, the result of std::is_integral() should be passed to + * this argument. When false, the type _should_ be either floating point or a + * std::string. + * + * + The second argument is for determining whether the signedness of the type + * T (if it is unsigned or signed). That is, the result of + * std::is_unsigned() should be passed to this argument. This argument can + * be ignored if the first one is false, because it only applies to integer. + * + * Opt with 2 arguments: T opt(true/false is_floating_point, index/key) + * + The first argument is for determining whether the type T is a floating + * point type. That is, the result of std::is_floating_point() should be + * passed to this argument. When false, the type _should_ be a std::string. + */ + +template +T opt(std::false_type is_floating_point, int index); + +template<> +std::string opt(std::false_type /*is_floating_point*/, int index) { + return __testlib_indexToArgv(index); +} + +template +T opt(std::true_type /*is_floating_point*/, int index) { + return T(optValueToLongDouble(__testlib_indexToArgv(index))); +} + +template +T opt(std::false_type /*is_integral*/, U /*is_unsigned*/, int index) { + return opt(std::is_floating_point(), index); +} + +template +T opt(std::true_type /*is_integral*/, std::false_type /*is_unsigned*/, int index) { + return optValueToIntegral(__testlib_indexToArgv(index), false); +} + +template +T opt(std::true_type /*is_integral*/, std::true_type /*is_unsigned*/, int index) { + return optValueToIntegral(__testlib_indexToArgv(index), true); +} + +template<> +bool opt(std::true_type /*is_integral*/, std::true_type /*is_unsigned*/, int index) { + std::string value = __testlib_indexToArgv(index); + if (value == "true" || value == "1") + return true; + if (value == "false" || value == "0") + return false; + __testlib_fail("Opts: opt by index '" + toString(index) + "': expected bool true/false or 0/1 but '" + + compress(value) + "' found"); +} + +/** + * Return the parsed argv by a given index. + */ +template +T opt(int index) { + return opt(std::is_integral(), std::is_unsigned(), index); +} + +/** + * Return the raw string value of an argv by a given index. + */ +std::string opt(int index) { + return opt(index); +} + +/** + * Return the parsed argv by a given index. If the index is bigger than + * the number of argv, return the given default_value. + */ +template +T opt(int index, const T &default_value) { + if (index >= int(__testlib_argv.size())) { + return default_value; + } + return opt(index); +} + +/** + * Return the raw string value of an argv by a given index. If the index is + * bigger than the number of argv, return the given default_value. + */ +std::string opt(int index, const std::string &default_value) { + return opt(index, default_value); +} + +template +T opt(std::false_type is_floating_point, const std::string &key); + +template<> +std::string opt(std::false_type /*is_floating_point*/, const std::string &key) { + return __testlib_keyToOpts(key); +} + +template +T opt(std::true_type /*is_integral*/, const std::string &key) { + return T(optValueToLongDouble(__testlib_keyToOpts(key))); +} + +template +T opt(std::false_type /*is_integral*/, U, const std::string &key) { + return opt(std::is_floating_point(), key); +} + +template +T opt(std::true_type /*is_integral*/, std::false_type /*is_unsigned*/, const std::string &key) { + return optValueToIntegral(__testlib_keyToOpts(key), false); +} + +template +T opt(std::true_type /*is_integral*/, std::true_type /*is_unsigned*/, const std::string &key) { + return optValueToIntegral(__testlib_keyToOpts(key), true); +} + +template<> +bool opt(std::true_type /*is_integral*/, std::true_type /*is_unsigned*/, const std::string &key) { + if (!has_opt(key)) + return false; + std::string value = __testlib_keyToOpts(key); + if (value == "true" || value == "1") + return true; + if (value == "false" || value == "0") + return false; + __testlib_fail("Opts: key '" + compress(key) + "': expected bool true/false or 0/1 but '" + + compress(value) + "' found"); +} + +/** + * Return the parsed opt by a given key. + */ +template +T opt(const std::string &key) { + return opt(std::is_integral(), std::is_unsigned(), key); +} + +/** + * Return the raw string value of an opt by a given key + */ +std::string opt(const std::string &key) { + return opt(key); +} + +/* Scorer started. */ + +enum TestResultVerdict { + SKIPPED, + OK, + WRONG_ANSWER, + RUNTIME_ERROR, + TIME_LIMIT_EXCEEDED, + IDLENESS_LIMIT_EXCEEDED, + MEMORY_LIMIT_EXCEEDED, + COMPILATION_ERROR, + CRASHED, + FAILED +}; + +std::string serializeVerdict(TestResultVerdict verdict) { + switch (verdict) { + case SKIPPED: return "SKIPPED"; + case OK: return "OK"; + case WRONG_ANSWER: return "WRONG_ANSWER"; + case RUNTIME_ERROR: return "RUNTIME_ERROR"; + case TIME_LIMIT_EXCEEDED: return "TIME_LIMIT_EXCEEDED"; + case IDLENESS_LIMIT_EXCEEDED: return "IDLENESS_LIMIT_EXCEEDED"; + case MEMORY_LIMIT_EXCEEDED: return "MEMORY_LIMIT_EXCEEDED"; + case COMPILATION_ERROR: return "COMPILATION_ERROR"; + case CRASHED: return "CRASHED"; + case FAILED: return "FAILED"; + } + throw "Unexpected verdict"; +} + +TestResultVerdict deserializeTestResultVerdict(std::string s) { + if (s == "SKIPPED") + return SKIPPED; + else if (s == "OK") + return OK; + else if (s == "WRONG_ANSWER") + return WRONG_ANSWER; + else if (s == "RUNTIME_ERROR") + return RUNTIME_ERROR; + else if (s == "TIME_LIMIT_EXCEEDED") + return TIME_LIMIT_EXCEEDED; + else if (s == "IDLENESS_LIMIT_EXCEEDED") + return IDLENESS_LIMIT_EXCEEDED; + else if (s == "MEMORY_LIMIT_EXCEEDED") + return MEMORY_LIMIT_EXCEEDED; + else if (s == "COMPILATION_ERROR") + return COMPILATION_ERROR; + else if (s == "CRASHED") + return CRASHED; + else if (s == "FAILED") + return FAILED; + ensuref(false, "Unexpected serialized TestResultVerdict"); + // No return actually. + return FAILED; +} + +struct TestResult { + int testIndex; + std::string testset; + std::string group; + TestResultVerdict verdict; + double points; + long long timeConsumed; + long long memoryConsumed; + std::string input; + std::string output; + std::string answer; + int exitCode; + std::string checkerComment; +}; + +std::string serializePoints(double points) { + if (std::isnan(points)) + return ""; + else { + char c[64]; + snprintf(c, 64, "%.03lf", points); + return c; + } +} + +double deserializePoints(std::string s) { + if (s.empty()) + return std::numeric_limits::quiet_NaN(); + else { + double result; +#ifdef _MSC_VER + ensuref(sscanf_s(s.c_str(), "%lf", &result) == 1, "Invalid serialized points"); +#else + ensuref(std::sscanf(s.c_str(), "%lf", &result) == 1, "Invalid serialized points"); +#endif + return result; + } +} + +std::string escapeTestResultString(std::string s) { + std::string result; + for (size_t i = 0; i < s.length(); i++) { + if (s[i] == '\r') + continue; + if (s[i] == '\n') { + result += "\\n"; + continue; + } + if (s[i] == '\\' || s[i] == ';') + result += '\\'; + result += s[i]; + } + return result; +} + +std::string unescapeTestResultString(std::string s) { + std::string result; + for (size_t i = 0; i < s.length(); i++) { + if (s[i] == '\\' && i + 1 < s.length()) { + if (s[i + 1] == 'n') { + result += '\n'; + i++; + continue; + } else if (s[i + 1] == ';' || s[i + 1] == '\\') { + result += s[i + 1]; + i++; + continue; + } + } + result += s[i]; + } + return result; +} + +std::string serializeTestResult(TestResult tr) { + std::string result; + result += std::to_string(tr.testIndex); + result += ";"; + result += escapeTestResultString(tr.testset); + result += ";"; + result += escapeTestResultString(tr.group); + result += ";"; + result += serializeVerdict(tr.verdict); + result += ";"; + result += serializePoints(tr.points); + result += ";"; + result += std::to_string(tr.timeConsumed); + result += ";"; + result += std::to_string(tr.memoryConsumed); + result += ";"; + result += escapeTestResultString(tr.input); + result += ";"; + result += escapeTestResultString(tr.output); + result += ";"; + result += escapeTestResultString(tr.answer); + result += ";"; + result += std::to_string(tr.exitCode); + result += ";"; + result += escapeTestResultString(tr.checkerComment); + return result; +} + +TestResult deserializeTestResult(std::string s) { + std::vector items; + std::string t; + for (size_t i = 0; i < s.length(); i++) { + if (s[i] == '\\') { + t += s[i]; + if (i + 1 < s.length()) + t += s[i + 1]; + i++; + continue; + } else { + if (s[i] == ';') { + items.push_back(t); + t = ""; + } else + t += s[i]; + } + } + items.push_back(t); + + ensuref(items.size() == 12, "Invalid TestResult serialization: expected exactly 12 items"); + + TestResult tr; + size_t pos = 0; + tr.testIndex = stoi(items[pos++]); + tr.testset = unescapeTestResultString(items[pos++]); + tr.group = unescapeTestResultString(items[pos++]); + tr.verdict = deserializeTestResultVerdict(items[pos++]); + tr.points = deserializePoints(items[pos++]); + tr.timeConsumed = stoll(items[pos++]); + tr.memoryConsumed = stoll(items[pos++]); + tr.input = unescapeTestResultString(items[pos++]); + tr.output = unescapeTestResultString(items[pos++]); + tr.answer = unescapeTestResultString(items[pos++]); + tr.exitCode = stoi(items[pos++]); + tr.checkerComment = unescapeTestResultString(items[pos++]); + + return tr; +} + +std::vector readTestResults(std::string fileName) { + std::ifstream stream; + stream.open(fileName.c_str(), std::ios::in); + ensuref(stream.is_open(), "Can't read test results file '%s'", fileName.c_str()); + std::vector result; + std::string line; + while (getline(stream, line)) + if (!line.empty()) + result.push_back(deserializeTestResult(line)); + stream.close(); + return result; +} + +std::function)> __testlib_scorer; + +struct TestlibScorerGuard { + ~TestlibScorerGuard() { + if (testlibMode == _scorer) { + std::vector testResults; + while (!inf.eof()) { + std::string line = inf.readLine(); + if (!line.empty()) + testResults.push_back(deserializeTestResult(line)); + } + inf.readEof(); + printf("%.3f\n", __testlib_scorer(testResults)); + } + } +} __testlib_scorer_guard; + +void registerScorer(int argc, char *argv[], std::function)> scorer) { + /* Suppress unused. */ + (void)(argc), (void)(argv); + + __testlib_ensuresPreconditions(); + + testlibMode = _scorer; + __testlib_set_binary(stdin); + + inf.init(stdin, _input); + inf.strict = false; + + __testlib_scorer = scorer; +} + +/* Scorer ended. */ + +/** + * Return the parsed opt by a given key. If no opts with the given key are + * found, return the given default_value. + * + * By calling this function, automatic ensurement for no unused opts will be + * done when the program is finalized. Call suppressEnsureNoUnusedOpts() to + * turn it off. + */ +template +T opt(const std::string &key, const T &default_value) { + if (!has_opt(key)) { + return default_value; + } + return opt(key); +} + +/** + * Return the raw string value of an opt by a given key. If no opts with the + * given key are found, return the given default_value. + * + * By calling this function, automatic ensurement for no unused opts will be + * done when the program is finalized. Call suppressEnsureNoUnusedOpts() to + * turn it off. + */ +std::string opt(const std::string &key, const std::string &default_value) { + return opt(key, default_value); +} + +/** + * Check if all opts are used. If not, __testlib_fail is called. + * Should be used after calling all opt() function calls. + * + * This function is useful when opt() with default_value for checking typos + * in the opt's key. + */ +void ensureNoUnusedOpts() { + for (const auto &opt: __testlib_opts) { + if (!opt.second.used) { + __testlib_fail(testlib_format_("Opts: unused key '%s'", compress(opt.first).c_str())); + } + } +} + +void suppressEnsureNoUnusedOpts() { + __testlib_ensureNoUnusedOptsSuppressed = true; +} + +void TestlibFinalizeGuard::autoEnsureNoUnusedOpts() { + if (__testlib_ensureNoUnusedOptsFlag && !__testlib_ensureNoUnusedOptsSuppressed) { + ensureNoUnusedOpts(); + } +} + +TestlibFinalizeGuard testlibFinalizeGuard; +#endif + +#ifdef __GNUC__ +__attribute__ ((format (printf, 1, 2))) +#endif +std::string testlib_format_(const char *fmt, ...) { + FMT_TO_RESULT(fmt, fmt, result); + return result; +} + +std::string testlib_format_(const std::string fmt, ...) { + FMT_TO_RESULT(fmt, fmt.c_str(), result); + return result; +} + +#if (__cplusplus >= 202002L && __has_include()) || __cpp_lib_format +template +std::string format(const char* fmt, Args&&... args) { + size_t size = size_t(std::snprintf(nullptr, 0, fmt, args...) + 1); + std::vector buffer(size); + std::snprintf(buffer.data(), size, fmt, args...); + return std::string(buffer.data()); +} + +template +std::string format(const std::string fmt, Args&&... args) { + size_t size = size_t(std::snprintf(nullptr, 0, fmt.c_str(), args...) + 1); + std::vector buffer(size); + std::snprintf(buffer.data(), size, fmt.c_str(), args...); + return std::string(buffer.data()); +} +#else +#ifdef __GNUC__ +__attribute__ ((format (printf, 1, 2))) +#endif +std::string format(const char *fmt, ...) { + FMT_TO_RESULT(fmt, fmt, result); + return result; +} + +std::string format(const std::string fmt, ...) { + FMT_TO_RESULT(fmt, fmt.c_str(), result); + return result; +} +#endif + +#endif diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/pyproject.toml" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/pyproject.toml" new file mode 100644 index 0000000000000000000000000000000000000000..555c23d460e41c38001a136cced68d9168e2176c --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/pyproject.toml" @@ -0,0 +1,13 @@ +[project] +name = "hetero-memory-challenge" +version = "0.2.0" +description = "Scripts for ChinaSoft 2025 - Heterogeneous Memory Challenge" +readme = "README.md" +requires-python = ">=3.13" +dependencies = [ + "colorlog>=6.10.1", + "matplotlib>=3.10.7", + "numpy>=2.3.4", + "pytablewriter>=1.2.1", + "sortedcontainers>=2.4.0", +] diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic0.in" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic0.in" new file mode 100644 index 0000000000000000000000000000000000000000..b0e48638d9b54c338e9bae5b25825ff5c9363803 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic0.in" @@ -0,0 +1,3 @@ +200 100 2 +0 100 0 30 +100 100 50 10 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic0.predictor.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic0.predictor.best" new file mode 100644 index 0000000000000000000000000000000000000000..7d1b66956a5fabbb34461852637ef9f66d913877 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic0.predictor.best" @@ -0,0 +1 @@ +12040 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic0.prophet.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic0.prophet.best" new file mode 100644 index 0000000000000000000000000000000000000000..7d1b66956a5fabbb34461852637ef9f66d913877 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic0.prophet.best" @@ -0,0 +1 @@ +12040 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic0.simple.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic0.simple.best" new file mode 100644 index 0000000000000000000000000000000000000000..7d1b66956a5fabbb34461852637ef9f66d913877 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic0.simple.best" @@ -0,0 +1 @@ +12040 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic1.in" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic1.in" new file mode 100644 index 0000000000000000000000000000000000000000..92aee8b1325daabe9e51cf57aa068317baf4b521 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic1.in" @@ -0,0 +1,4 @@ +300 200 3 +0 100 0 50 +100 100 4000 30 +150 100 4001 20 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic1.predictor.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic1.predictor.best" new file mode 100644 index 0000000000000000000000000000000000000000..2ac2b93b35a15436a04321900789fb3e18b75ee8 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic1.predictor.best" @@ -0,0 +1 @@ +12100 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic1.prophet.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic1.prophet.best" new file mode 100644 index 0000000000000000000000000000000000000000..0e972495caf2028f5b65f4966ab21034e9ee4ec4 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic1.prophet.best" @@ -0,0 +1 @@ +12060 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic1.simple.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic1.simple.best" new file mode 100644 index 0000000000000000000000000000000000000000..5938c50e66b6b5014d5ef34fc37966a731ac420f --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic1.simple.best" @@ -0,0 +1 @@ +16100 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic2.in" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic2.in" new file mode 100644 index 0000000000000000000000000000000000000000..ba9c2400dad9420d1d7cd7be1edd127350dc8911 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic2.in" @@ -0,0 +1,7 @@ +200 100 6 +0 75 0 30 +0 50 0 30 +100 25 0 30 +0 75 1000 30 +0 50 1000 30 +100 25 1000 30 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic2.predictor.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic2.predictor.best" new file mode 100644 index 0000000000000000000000000000000000000000..22a3717805ca06c51e12d85cf8b4075236f599be --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic2.predictor.best" @@ -0,0 +1 @@ +4060 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic2.prophet.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic2.prophet.best" new file mode 100644 index 0000000000000000000000000000000000000000..22a3717805ca06c51e12d85cf8b4075236f599be --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic2.prophet.best" @@ -0,0 +1 @@ +4060 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic2.simple.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic2.simple.best" new file mode 100644 index 0000000000000000000000000000000000000000..22a3717805ca06c51e12d85cf8b4075236f599be --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/basic2.simple.best" @@ -0,0 +1 @@ +4060 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=highload,seed=135,vsize=41152,psize=11013,req_len=7684).in" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=highload,seed=135,vsize=41152,psize=11013,req_len=7684).in" new file mode 100644 index 0000000000000000000000000000000000000000..974e38549d3acc1bd19ca2db6db85f5f385a6c16 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=highload,seed=135,vsize=41152,psize=11013,req_len=7684).in" @@ -0,0 +1,7685 @@ +41152 11013 7684 +38170 377 31 51 +23822 312 50 134 +16667 144 60 144 +16760 471 76 146 +16711 419 107 92 +10275 250 121 139 +10608 169 122 112 +10522 171 151 73 +29052 479 167 119 +29162 399 202 68 +39400 441 225 91 +38855 238 250 125 +21878 234 274 66 +24722 147 296 56 +19729 260 320 105 +19978 279 345 103 +19531 302 378 130 +398 228 397 75 +35053 226 412 115 +26818 350 428 104 +26813 203 450 103 +25980 373 488 99 +32208 608 489 90 +31761 463 506 130 +17412 402 519 84 +17707 375 520 145 +17633 620 549 99 +11699 365 578 239 +37149 267 606 144 +27987 181 626 72 +24613 166 643 109 +24811 263 661 86 +25163 385 689 68 +24993 216 703 142 +22982 383 704 79 +24751 921 720 68 +24874 467 731 161 +4272 504 758 102 +11672 206 771 111 +8653 461 796 64 +8217 204 797 131 +5613 429 812 93 +36898 454 829 96 +37458 302 864 107 +17725 774 896 137 +17972 387 932 125 +15812 475 958 94 +15724 278 959 127 +15744 301 991 110 +40342 357 1018 77 +40072 171 1049 94 +40114 131 1071 111 +18765 1419 1110 88 +12398 511 1138 198 +12652 406 1151 143 +18851 132 1165 123 +20547 509 1189 138 +37071 258 1226 93 +14826 435 1227 52 +14302 477 1265 93 +15837 212 1266 81 +9545 411 1267 135 +29108 390 1284 61 +24982 440 1301 61 +13631 480 1321 103 +13609 365 1333 72 +13486 314 1349 149 +13837 341 1359 136 +22968 310 1371 100 +23024 451 1392 133 +19666 308 1393 145 +19399 153 1394 65 +36194 509 1405 130 +2097 321 1406 78 +2653 355 1407 138 +2321 172 1433 63 +12365 476 1434 120 +39130 226 1461 62 +39375 307 1479 138 +13518 356 1507 124 +10284 219 1526 136 +14439 155 1554 112 +14359 366 1555 84 +14577 273 1574 106 +14342 477 1597 102 +40054 198 1630 70 +40144 227 1660 120 +4308 293 1692 124 +20709 490 1727 65 +22001 422 1728 143 +38001 241 1761 86 +25612 242 1762 51 +25596 466 1780 74 +10334 354 1818 97 +21656 173 1846 111 +21818 234 1859 107 +16516 489 1876 118 +16591 208 1890 102 +16365 210 1926 75 +16752 261 1946 137 +19791 1128 1974 145 +27673 400 1975 140 +27937 336 2014 135 +4134 442 2027 62 +18545 432 2028 120 +29087 380 2041 128 +1073 423 2042 55 +33070 485 2072 92 +19861 133 2094 77 +19708 442 2130 146 +13692 446 2159 143 +13230 370 2175 84 +9554 335 2185 77 +5536 497 2202 99 +5781 367 2203 82 +5424 378 2232 130 +17693 1449 2233 76 +17491 339 2272 166 +17502 495 2298 107 +17488 356 2336 103 +31227 179 2364 83 +31181 384 2398 64 +30637 406 2414 50 +4199 754 2449 112 +4150 207 2476 142 +4226 299 2490 76 +2074 194 2519 88 +18664 361 2537 70 +18815 339 2558 145 +26112 411 2579 84 +5512 457 2617 128 +24812 157 2633 96 +24877 156 2643 83 +16770 137 2674 52 +16541 447 2688 67 +15852 376 2717 114 +24714 266 2731 99 +2466 366 2755 63 +1179 463 2794 106 +24617 880 2818 121 +25126 387 2847 143 +25148 415 2848 120 +29964 468 2871 132 +4340 355 2898 60 +31023 129 2932 115 +38326 192 2933 118 +60 156 2934 52 +111 149 2972 138 +353 446 2994 111 +32901 1026 2995 77 +8580 393 3023 119 +27684 292 3053 69 +32809 138 3090 139 +26974 360 3109 64 +12332 191 3137 125 +13619 436 3161 90 +19906 401 3189 65 +24627 266 3214 107 +12794 185 3225 112 +12840 500 3258 149 +12678 306 3259 51 +18520 403 3283 65 +18603 318 3302 86 +6395 289 3331 88 +5921 502 3345 95 +6072 406 3383 110 +33134 434 3417 50 +32744 206 3418 62 +33249 424 3438 107 +32677 267 3457 70 +29755 461 3470 135 +30137 232 3480 104 +32981 310 3517 124 +19657 940 3543 92 +25849 1308 3544 209 +34972 336 3576 175 +3384 336 3589 123 +24913 431 3612 143 +24932 221 3638 53 +24604 267 3639 118 +25104 466 3640 143 +19571 179 3668 96 +33811 465 3701 129 +27024 193 3733 146 +32255 334 3759 57 +17634 228 3780 131 +17287 164 3814 110 +15438 203 3829 133 +18678 237 3845 76 +26778 303 3875 99 +26824 173 3906 104 +39023 414 3940 54 +17543 272 3941 63 +17726 215 3942 148 +18039 234 3943 130 +17593 464 3944 75 +8351 570 3955 67 +12530 387 3984 161 +12540 175 4013 123 +22800 170 4014 87 +19882 456 4029 73 +20766 204 4050 124 +3300 226 4087 142 +15637 321 4118 56 +15801 336 4119 116 +27794 381 4131 73 +21740 384 4163 112 +21655 1828 4200 80 +21784 471 4221 83 +21842 205 4222 137 +21782 215 4242 137 +22053 384 4268 141 +38247 442 4299 94 +31856 344 4330 62 +31825 159 4351 80 +32209 297 4365 82 +17421 188 4399 92 +23007 143 4428 100 +33195 346 4460 75 +19519 696 4474 132 +40278 239 4486 234 +6447 210 4498 111 +26667 424 4510 139 +20800 249 4534 106 +25004 473 4557 99 +34902 337 4572 143 +11475 133 4598 99 +35075 410 4635 55 +30833 486 4645 55 +31169 470 4661 142 +30885 445 4686 134 +29732 413 4715 72 +1462 457 4751 129 +1368 448 4767 102 +9246 161 4768 130 +26841 357 4804 122 +8513 370 4831 139 +20522 402 4862 93 +20679 1864 4895 55 +34868 377 4932 144 +35351 131 4949 85 +21531 475 4976 67 +7552 227 4977 99 +35086 410 5013 148 +35157 312 5040 105 +35227 356 5072 76 +34832 310 5111 125 +2087 501 5124 53 +15638 240 5163 69 +25721 836 5198 108 +356 273 5214 141 +395 366 5224 76 +28969 158 5243 111 +28891 198 5281 120 +28702 441 5307 73 +28822 465 5308 140 +38346 232 5309 84 +38423 427 5343 145 +38339 192 5365 83 +16613 448 5386 145 +16334 163 5417 147 +16329 244 5441 120 +22905 206 5472 53 +23140 378 5508 115 +22929 540 5527 122 +11501 157 5549 144 +11093 421 5550 104 +11589 175 5581 145 +11172 432 5595 80 +11856 477 5634 120 +11276 406 5635 67 +34080 229 5636 63 +9638 280 5661 126 +12490 447 5695 113 +12400 197 5696 121 +3506 286 5716 139 +3081 334 5729 131 +36101 401 5757 72 +36169 503 5784 142 +16871 372 5785 61 +4262 397 5815 85 +37095 133 5853 55 +20612 284 5854 119 +32230 374 5879 141 +17583 1936 5895 118 +16622 210 5929 127 +16376 444 5946 120 +33943 262 5976 57 +22855 511 5996 62 +22763 266 6027 52 +20965 306 6053 148 +20456 229 6054 80 +20908 397 6055 53 +22769 170 6090 101 +26861 430 6091 107 +37073 356 6105 98 +13512 420 6133 108 +13505 323 6155 100 +25676 477 6192 78 +356 249 6230 117 +1249 212 6241 130 +1426 492 6269 118 +29771 507 6307 58 +3434 214 6308 149 +3268 203 6342 99 +4560 153 6361 131 +23951 233 6383 83 +6213 1476 6405 82 +13743 788 6406 183 +38952 357 6407 74 +32781 208 6428 98 +17507 130 6444 67 +23025 233 6445 107 +10322 794 6465 134 +10815 495 6476 120 +38029 187 6514 143 +17584 536 6525 115 +29038 394 6548 91 +29260 741 6582 79 +29233 166 6583 185 +29216 369 6606 103 +28954 243 6607 144 +28944 189 6631 84 +2287 441 6632 99 +20827 404 6669 56 +20628 289 6670 113 +27055 465 6702 86 +24707 236 6703 119 +24538 1252 6704 112 +24644 457 6742 258 +24840 395 6743 69 +8193 174 6765 135 +2141 225 6800 72 +18895 475 6823 110 +35153 316 6824 61 +35188 782 6855 124 +19578 207 6876 136 +19609 195 6903 138 +19662 356 6932 51 +34173 288 6943 132 +34462 424 6956 83 +31983 252 6986 64 +35161 438 6987 106 +35315 172 6988 79 +8560 343 6989 96 +4509 403 6990 112 +4265 410 6991 71 +4109 768 7003 66 +27007 462 7039 262 +28002 473 7049 67 +27881 524 7050 96 +24678 336 7088 206 +24929 447 7089 145 +24880 445 7127 79 +25212 512 7163 128 +5616 305 7190 110 +5524 440 7224 146 +3192 319 7249 138 +3153 281 7250 75 +3684 394 7284 120 +11505 414 7298 140 +7491 502 7309 77 +7187 318 7338 64 +7332 303 7357 133 +4529 263 7375 136 +9514 195 7408 99 +9641 142 7424 52 +13542 390 7441 89 +35930 463 7455 143 +36117 439 7473 107 +35870 332 7485 131 +21846 216 7513 88 +5255 158 7537 106 +39342 954 7566 94 +38068 455 7605 256 +37833 252 7606 53 +19512 303 7607 146 +19602 495 7634 131 +21511 648 7635 70 +14529 287 7673 102 +31037 460 7702 66 +22770 160 7734 60 +26631 305 7735 149 +26707 310 7762 117 +40165 292 7784 126 +39792 204 7799 68 +30933 153 7821 99 +38933 1296 7852 85 +4269 310 7862 162 +4099 258 7863 73 +4141 339 7900 90 +25667 319 7931 123 +25423 322 7969 90 +27973 284 7999 100 +10490 728 8031 114 +6302 189 8032 153 +6477 353 8056 82 +6023 410 8072 99 +33924 278 8089 132 +16673 373 8090 116 +16461 378 8119 86 +27014 226 8156 89 +6385 482 8157 144 +6277 382 8158 95 +28131 494 8170 94 +27447 274 8187 115 +32894 230 8225 110 +35855 222 8226 70 +38268 271 8263 136 +38324 461 8275 149 +38471 346 8296 102 +31126 140 8332 68 +29712 274 8333 61 +9383 840 8352 85 +9429 207 8362 249 +9839 2044 8377 70 +27917 282 8387 125 +28114 1956 8413 102 +19623 476 8414 157 +32930 200 8426 114 +12307 248 8439 136 +35856 253 8457 65 +40375 313 8494 116 +40304 297 8524 60 +32155 377 8563 115 +32096 272 8595 63 +31970 185 8628 144 +29784 338 8654 99 +29751 348 8668 120 +20914 362 8707 61 +23807 239 8708 66 +23866 502 8740 88 +3476 416 8764 84 +3635 472 8793 50 +4312 205 8818 80 +36166 511 8835 93 +36307 388 8847 77 +22861 511 8880 88 +16892 352 8893 104 +3576 2032 8894 57 +3537 204 8895 71 +17537 324 8896 121 +1157 423 8920 137 +31970 498 8957 74 +32076 900 8968 71 +40227 213 9001 92 +40401 412 9024 137 +14451 249 9025 124 +8481 156 9056 99 +11502 334 9086 111 +26000 310 9111 96 +25729 502 9134 119 +6421 492 9135 75 +23681 252 9168 102 +25639 171 9169 57 +24737 311 9190 78 +25094 131 9191 92 +8690 421 9220 57 +8607 350 9239 146 +40028 318 9240 61 +5533 327 9256 111 +38386 229 9289 133 +27711 243 9320 81 +9489 475 9344 84 +9380 292 9345 125 +30044 240 9383 126 +29749 141 9394 139 +29563 345 9395 105 +5210 221 9396 107 +6435 195 9430 91 +6433 440 9463 136 +5205 173 9499 129 +37252 163 9509 76 +36857 230 9510 140 +15445 864 9542 99 +32874 378 9543 116 +6424 312 9555 145 +6171 486 9556 72 +28930 204 9594 102 +4580 438 9615 113 +12463 1116 9627 73 +35328 342 9645 192 +29861 432 9664 142 +29926 332 9695 134 +40138 332 9719 133 +40316 151 9745 60 +40494 233 9764 93 +12741 503 9801 103 +12424 146 9802 90 +22608 471 9825 144 +27969 186 9837 147 +30821 390 9860 59 +35191 163 9861 92 +35128 271 9896 134 +26920 1005 9931 79 +23008 336 9951 248 +20788 245 9972 103 +21248 336 9982 89 +3537 377 9997 53 +26052 178 10025 77 +30163 322 10044 73 +13781 656 10071 97 +34841 511 10072 123 +20695 316 10092 114 +28976 365 10103 101 +28937 382 10117 58 +3187 482 10118 117 +34902 435 10150 91 +35180 394 10179 53 +34891 307 10215 139 +35305 201 10249 91 +29048 136 10273 84 +28674 138 10312 94 +25930 430 10348 142 +40397 254 10366 132 +40204 437 10367 87 +39359 399 10389 86 +40293 298 10400 140 +40268 340 10410 123 +40428 150 10411 70 +18581 447 10435 110 +18421 253 10463 79 +30039 352 10464 73 +17853 465 10486 77 +17654 408 10520 102 +38324 286 10534 136 +3210 239 10572 148 +3174 150 10585 113 +3722 350 10597 144 +18894 428 10613 137 +18753 475 10614 130 +5539 248 10629 63 +19501 277 10642 112 +19699 1448 10674 134 +6633 1452 10706 116 +6470 329 10728 151 +14792 464 10760 58 +14513 258 10799 135 +32024 157 10800 103 +31693 423 10836 63 +31749 1992 10855 89 +23643 453 10856 189 +10307 483 10887 136 +10536 351 10911 147 +16893 450 10936 101 +16594 338 10949 61 +10324 315 10950 134 +10598 702 10988 104 +5437 370 10989 202 +5494 438 11001 117 +25692 480 11040 140 +25879 270 11068 124 +5360 306 11103 127 +28795 301 11137 102 +29119 349 11138 108 +24870 187 11139 72 +24775 1156 11178 89 +33852 495 11188 93 +7446 282 11218 82 +7370 201 11219 92 +16484 245 11220 115 +23975 1164 11235 117 +23949 335 11271 131 +23961 156 11308 89 +21724 286 11344 107 +40133 381 11357 102 +17534 318 11388 75 +17892 274 11416 134 +17508 158 11438 111 +26795 405 11456 110 +18607 319 11494 84 +7624 273 11504 92 +25743 283 11521 135 +25635 250 11538 76 +26158 437 11571 138 +1528 435 11572 127 +9414 1188 11573 108 +23971 451 11606 226 +23886 176 11623 80 +20529 252 11643 122 +10751 221 11678 116 +10503 443 11709 107 +10548 496 11710 103 +10438 219 11711 125 +10536 342 11726 135 +173 305 11759 142 +3422 418 11774 78 +16547 432 11810 91 +28699 200 11836 146 +24022 407 11860 64 +25918 302 11876 117 +32862 471 11877 140 +5423 348 11895 83 +2087 148 11896 62 +2230 501 11917 84 +28864 244 11938 95 +29179 501 11961 119 +28700 414 11987 127 +16456 329 12021 67 +16965 313 12034 95 +3109 480 12067 129 +10320 317 12082 110 +10502 258 12117 142 +12438 405 12135 114 +19949 230 12167 139 +19765 397 12192 145 +35950 401 12207 51 +7520 465 12229 87 +7395 348 12268 51 +7311 473 12295 71 +7623 338 12327 64 +7283 303 12328 112 +32873 802 12357 123 +25602 315 12358 105 +15656 249 12385 76 +23746 259 12414 64 +24210 461 12415 135 +13404 154 12441 107 +13228 329 12470 148 +13916 289 12471 112 +10721 470 12494 72 +31212 425 12522 97 +30917 355 12538 62 +40436 278 12539 142 +27999 411 12576 132 +14680 493 12601 134 +14861 1720 12615 111 +26731 396 12616 151 +38919 347 12632 60 +38898 342 12633 52 +18806 199 12664 105 +15757 332 12665 53 +3431 167 12685 94 +3390 453 12697 130 +34876 497 12718 66 +35045 165 12719 56 +15431 384 12734 118 +13457 443 12756 89 +37264 283 12773 86 +29764 509 12774 88 +15697 279 12775 129 +26834 265 12776 144 +26724 393 12795 135 +26832 203 12828 104 +20676 431 12829 144 +20419 383 12849 92 +20782 508 12881 124 +39991 385 12917 93 +2465 1748 12931 132 +1993 175 12946 109 +33094 215 12962 85 +1368 216 12986 136 +29068 449 13024 118 +14376 177 13059 65 +14684 296 13080 93 +14238 420 13109 57 +14451 389 13127 66 +14380 320 13145 149 +36345 511 13159 77 +15490 300 13193 58 +15778 411 13212 95 +15610 810 13242 52 +15921 384 13279 141 +15588 392 13280 111 +23002 494 13301 146 +29861 177 13336 62 +25863 343 13375 55 +34834 191 13400 97 +35572 360 13426 130 +29703 300 13437 134 +32959 478 13465 80 +33288 304 13484 96 +33098 389 13505 81 +33128 466 13506 112 +32979 507 13523 84 +26032 286 13535 96 +5415 383 13572 61 +29783 484 13592 111 +34159 494 13603 53 +12527 375 13627 122 +12290 266 13637 52 +10496 536 13670 107 +25616 442 13681 118 +22660 383 13682 98 +22569 456 13717 70 +22630 235 13748 104 +22929 386 13767 127 +22592 486 13802 136 +421 452 13835 131 +36962 495 13854 65 +15381 235 13877 132 +17842 507 13902 118 +1102 180 13903 66 +1408 462 13926 64 +21889 327 13927 64 +8499 418 13943 128 +11578 413 13975 121 +11371 484 14008 50 +8264 451 14033 146 +8483 352 14034 98 +8560 261 14070 75 +8507 270 14083 76 +6563 188 14122 117 +38925 1335 14123 80 +39631 208 14142 165 +39475 312 14167 52 +39529 346 14184 98 +34115 406 14196 130 +8663 259 14197 92 +36191 330 14207 92 +35852 425 14217 89 +36137 778 14235 95 +34817 365 14268 181 +31063 291 14290 90 +12299 351 14291 94 +12232 472 14301 93 +11467 660 14322 69 +11677 171 14347 149 +40025 507 14383 114 +31876 434 14410 52 +38364 223 14441 50 +38142 227 14451 53 +37935 414 14490 137 +8652 390 14509 118 +15552 444 14520 84 +11317 232 14532 93 +5149 281 14566 117 +18441 334 14590 130 +27753 499 14603 100 +27970 161 14604 103 +38232 400 14640 127 +11564 239 14650 132 +11394 483 14686 83 +11272 270 14710 119 +11372 389 14736 50 +11221 290 14756 109 +12414 484 14786 83 +2501 139 14809 98 +5604 499 14843 60 +11378 945 14866 114 +11652 173 14893 228 +5 185 14894 121 +23628 258 14907 99 +3418 489 14908 88 +19587 407 14923 139 +19640 486 14933 101 +9678 940 14957 72 +28927 840 14958 194 +36078 374 14973 189 +36101 347 15000 69 +36593 255 15028 54 +2309 261 15048 61 +21702 171 15049 100 +21957 462 15088 89 +21945 361 15105 82 +21423 458 15120 108 +18919 421 15157 68 +18617 162 15196 75 +14416 524 15197 107 +40045 130 15233 135 +17761 1848 15253 100 +17438 335 15277 134 +12404 147 15294 139 +12477 1412 15325 116 +17877 266 15326 90 +17896 487 15337 108 +17578 448 15349 95 +17831 165 15350 141 +17999 172 15376 90 +34922 220 15408 112 +35069 272 15421 105 +10495 270 15422 145 +10131 281 15458 68 +40045 268 15488 56 +40053 428 15500 66 +40386 416 15517 135 +40573 173 15548 128 +39829 194 15574 142 +1400 424 15575 84 +19540 214 15612 125 +31805 165 15632 130 +32197 477 15633 87 +19816 148 15644 121 +23648 1076 15672 85 +5584 211 15708 184 +14601 1240 15744 96 +5560 181 15745 138 +6299 510 15770 93 +21606 288 15771 93 +19618 299 15794 102 +19591 366 15795 141 +38289 155 15827 135 +7454 330 15862 60 +7387 346 15900 149 +35185 329 15932 74 +35210 437 15945 89 +22620 323 15963 63 +22749 271 15964 129 +22827 362 15998 57 +37917 206 15999 118 +38428 243 16035 108 +26984 429 16046 106 +26663 868 16072 100 +14704 416 16109 215 +10308 290 16121 74 +10521 200 16122 131 +10442 261 16123 140 +10282 437 16124 83 +24629 426 16150 105 +19649 365 16178 68 +26086 461 16179 113 +6603 237 16209 132 +19895 157 16222 106 +31204 455 16223 104 +31032 1044 16247 60 +17611 446 16261 122 +11537 138 16299 72 +33816 277 16337 103 +39068 256 16352 66 +39407 389 16378 130 +15469 415 16392 104 +25974 484 16423 147 +25710 381 16424 67 +26169 364 16443 107 +28935 377 16461 85 +29225 338 16462 86 +16837 194 16488 54 +29112 244 16489 93 +34003 253 16490 96 +29067 448 16528 50 +28808 215 16562 56 +28881 502 16574 106 +10608 266 16585 130 +32096 692 16586 137 +30201 474 16623 238 +28980 435 16655 122 +28439 307 16666 140 +29183 260 16683 147 +32158 230 16719 86 +27060 352 16746 85 +18634 446 16782 107 +18571 810 16816 75 +18821 341 16831 185 +21649 175 16864 87 +11469 251 16865 75 +26026 420 16894 147 +15844 507 16904 90 +24735 377 16927 114 +24546 1254 16962 109 +24842 476 16985 190 +24595 210 17015 134 +39401 269 17043 133 +39195 301 17072 51 +27921 320 17090 125 +27875 164 17117 65 +27986 254 17118 113 +27909 428 17130 69 +23887 327 17143 101 +4549 458 17163 138 +5549 482 17179 58 +14518 465 17210 104 +488 408 17211 120 +332 229 17212 77 +1442 345 17213 69 +3561 217 17226 73 +3545 498 17253 98 +3222 477 17254 86 +3820 231 17255 149 +3253 142 17274 149 +16816 240 17305 110 +29946 449 17321 77 +29822 375 17348 50 +18483 333 17373 114 +10367 485 17400 113 +32122 419 17436 132 +1144 1119 17437 122 +8284 191 17438 128 +8378 401 17463 149 +11301 254 17491 87 +20821 409 17509 93 +35302 428 17537 135 +29016 270 17552 75 +28609 448 17583 136 +23605 224 17608 83 +4496 190 17609 60 +31026 291 17623 112 +11348 277 17649 90 +34907 165 17660 139 +35191 245 17676 50 +16631 198 17708 85 +14637 377 17720 95 +18686 224 17721 143 +18750 382 17722 100 +19106 469 17740 62 +13450 481 17775 86 +13469 246 17794 116 +35011 365 17810 145 +8420 387 17811 135 +21528 1131 17836 105 +22087 146 17867 123 +1 199 17868 113 +356 396 17903 98 +508 467 17930 64 +373 343 17950 113 +242 964 17963 106 +2180 429 17964 107 +1347 291 18002 110 +1341 149 18030 118 +3539 137 18031 64 +3536 511 18051 119 +35909 193 18087 50 +36091 180 18120 146 +35983 316 18157 114 +21931 504 18185 143 +22763 482 18186 64 +36884 494 18213 112 +9651 270 18252 96 +9216 173 18287 126 +9492 492 18315 78 +9205 457 18331 107 +13617 509 18349 148 +13555 237 18350 104 +13497 463 18351 76 +3371 162 18362 85 +2957 150 18397 55 +36324 251 18418 79 +23567 1968 18445 53 +8667 332 18458 168 +8228 432 18483 116 +24580 239 18518 80 +24784 168 18534 142 +25177 311 18567 131 +5281 300 18600 143 +5036 295 18634 58 +2163 424 18663 82 +10656 474 18684 104 +28074 337 18713 125 +27505 353 18729 72 +26892 305 18730 58 +22576 431 18740 50 +23963 459 18766 149 +23908 132 18767 103 +23922 460 18790 144 +33239 150 18811 64 +32901 419 18812 139 +33367 444 18813 74 +33097 534 18841 94 +38098 219 18864 266 +38318 1446 18886 116 +27752 425 18923 109 +13418 265 18957 99 +38346 445 18986 100 +26939 153 19011 126 +26761 347 19047 55 +12714 268 19048 120 +28851 163 19061 148 +28889 355 19062 84 +40196 218 19078 108 +40215 228 19109 56 +40050 382 19110 143 +40311 318 19120 107 +27021 415 19159 53 +5311 388 19175 81 +5428 427 19176 138 +5416 486 19200 141 +34226 504 19223 99 +33710 418 19243 71 +9327 507 19258 110 +23585 218 19295 116 +23603 1125 19332 133 +24093 359 19364 194 +1196 324 19380 121 +1593 198 19411 63 +19931 311 19447 148 +19770 306 19448 136 +19562 435 19449 69 +3450 445 19479 96 +4231 534 19501 64 +16620 227 19522 206 +14731 487 19540 90 +14508 195 19577 50 +14251 478 19613 139 +19822 411 19635 149 +19344 296 19668 114 +33271 488 19696 102 +33200 213 19707 133 +7470 504 19727 104 +38257 379 19762 51 +38405 157 19783 98 +38469 433 19822 50 +38037 406 19823 56 +27961 185 19844 88 +15451 452 19880 139 +15858 154 19918 68 +15375 377 19946 69 +22826 163 19972 50 +23141 428 19973 86 +18682 363 19992 85 +21976 165 20024 107 +5145 210 20050 105 +5453 330 20063 118 +7259 509 20092 59 +38144 448 20114 63 +37968 287 20115 62 +1076 239 20116 61 +5585 160 20117 106 +13457 988 20147 143 +34138 492 20173 142 +34067 223 20199 81 +34112 370 20214 144 +7589 224 20215 53 +27091 208 20216 115 +33938 433 20230 123 +34048 266 20257 124 +33677 309 20258 120 +15830 445 20297 107 +40067 414 20298 99 +40185 374 20311 59 +40195 237 20340 137 +40030 196 20341 114 +28077 624 20355 100 +28006 273 20372 131 +23721 179 20398 63 +21809 362 20430 103 +3083 144 20441 81 +22578 199 20476 83 +5257 494 20501 90 +5376 431 20533 106 +5053 389 20543 105 +35887 396 20567 104 +19553 511 20588 122 +30185 212 20621 134 +29985 206 20622 126 +10287 435 20637 78 +10513 344 20657 94 +10567 329 20671 69 +10620 176 20698 92 +39051 417 20710 110 +39256 497 20711 90 +8449 167 20741 127 +8070 193 20773 126 +31103 367 20786 141 +30837 210 20787 87 +28987 180 20821 137 +29166 183 20841 88 +4412 1062 20851 61 +9398 477 20862 173 +20766 135 20890 64 +20321 1776 20915 85 +20736 293 20939 180 +40381 187 20940 70 +17588 135 20966 70 +17566 382 20994 61 +31756 442 20995 106 +31978 167 20996 114 +32084 428 21022 82 +18529 1407 21058 119 +18879 319 21079 129 +18708 341 21103 113 +18724 265 21114 131 +137 187 21140 96 +24803 469 21141 59 +25185 259 21167 115 +18833 1425 21198 84 +18307 214 21199 62 +29181 353 21218 134 +20712 394 21229 101 +20992 1212 21259 138 +20574 352 21271 120 +20733 277 21287 56 +19544 434 21299 104 +20153 129 21309 103 +20087 495 21310 148 +19912 250 21320 147 +19847 300 21340 100 +21690 373 21363 131 +22007 1268 21377 134 +21761 351 21413 165 +17466 505 21437 94 +17436 164 21438 54 +15724 250 21462 91 +17543 299 21501 74 +37899 510 21533 101 +28148 134 21547 113 +30040 465 21581 137 +29843 158 21620 79 +8635 1136 21649 56 +8297 411 21650 90 +8739 255 21682 70 +20604 354 21712 69 +19693 255 21742 51 +19752 170 21743 88 +6166 195 21754 58 +6653 278 21786 146 +6420 480 21821 82 +11600 441 21858 122 +11495 469 21875 138 +20539 183 21911 124 +20676 240 21930 75 +23582 141 21966 92 +23875 1364 21989 131 +23875 409 22014 136 +23022 148 22036 94 +34021 130 22065 121 +20659 824 22085 76 +32037 225 22109 103 +31752 374 22110 50 +13576 318 22135 138 +38938 502 22155 130 +39161 198 22182 108 +17433 382 22205 95 +17593 330 22225 94 +7453 391 22244 143 +7749 510 22265 73 +391 132 22275 147 +6210 368 22299 91 +16558 448 22319 83 +7306 509 22352 117 +7274 429 22388 141 +48 414 22405 132 +29851 494 22406 106 +39141 235 22436 137 +39204 173 22437 96 +27966 405 22450 64 +26043 490 22485 121 +25671 482 22501 137 +26213 430 22502 148 +24851 181 22522 106 +30942 230 22549 75 +30916 191 22550 107 +10350 382 22573 75 +12733 381 22583 122 +12411 305 22620 63 +12975 387 22635 126 +12617 150 22659 148 +12518 414 22678 114 +15635 345 22698 61 +15564 417 22699 139 +8476 459 22700 65 +1131 397 22712 137 +24016 369 22713 92 +39292 459 22714 78 +11337 231 22744 132 +23951 160 22763 75 +12360 268 22774 106 +37158 163 22798 61 +27703 318 22811 86 +27937 175 22825 81 +0 505 22846 99 +34975 223 22847 85 +21740 268 22869 126 +28704 322 22908 102 +28826 417 22924 133 +25662 251 22942 119 +22549 314 22957 102 +17614 399 22980 62 +38119 412 22998 81 +11498 507 23026 86 +11414 152 23027 67 +27799 324 23058 51 +28179 372 23083 97 +32858 321 23099 71 +40438 316 23120 73 +7241 364 23132 95 +7584 207 23133 61 +34155 379 23166 92 +15588 171 23187 96 +394 275 23206 76 +20865 420 23207 110 +20891 382 23245 71 +38379 365 23259 86 +6300 416 23260 130 +3517 500 23290 63 +23885 267 23323 82 +23472 329 23355 80 +28002 335 23382 62 +31060 403 23394 115 +31039 300 23412 77 +12766 317 23438 52 +37893 294 23469 73 +11415 224 23504 149 +4490 264 23519 89 +8528 550 23554 75 +8366 282 23588 231 +40151 341 23619 97 +35850 271 23649 67 +34900 485 23681 124 +34962 440 23696 105 +5176 508 23697 60 +5253 131 23725 138 +5021 165 23756 52 +35287 176 23794 140 +22602 420 23805 54 +7409 153 23838 68 +7462 201 23859 98 +19504 447 23877 148 +8409 374 23909 88 +39379 344 23921 52 +39271 445 23922 145 +16612 479 23932 54 +16488 190 23959 148 +16368 325 23990 109 +17421 358 24001 91 +28757 270 24038 71 +29303 240 24071 121 +28859 451 24086 124 +30038 197 24099 76 +25709 422 24115 51 +25630 133 24128 70 +25916 184 24147 91 +19608 141 24165 79 +15464 488 24178 62 +15388 375 24209 101 +23680 489 24242 95 +8541 356 24243 89 +8670 281 24267 68 +17521 209 24290 87 +17863 378 24312 130 +35295 227 24323 107 +24964 348 24359 88 +25274 128 24394 122 +24758 135 24404 72 +24823 135 24425 54 +2451 504 24426 53 +2287 201 24436 90 +35311 353 24462 75 +12784 342 24479 103 +12687 172 24480 81 +2081 175 24516 81 +116 241 24542 120 +28123 229 24562 109 +35030 351 24597 96 +35322 375 24616 120 +25810 448 24640 61 +4575 129 24654 143 +18801 338 24681 92 +16467 268 24708 145 +21803 149 24731 133 +21610 150 24751 81 +32970 389 24767 65 +25935 373 24789 122 +25793 1146 24820 127 +37068 154 24846 143 +33935 319 24876 50 +38938 448 24904 89 +39320 390 24927 51 +39269 442 24965 125 +38987 507 24966 108 +39129 162 24976 107 +35304 196 25009 122 +26707 351 25021 127 +11691 342 25022 60 +20870 350 25049 83 +20737 346 25050 78 +286 360 25089 82 +24648 502 25090 75 +24747 636 25124 80 +21892 471 25125 184 +2065 412 25147 124 +35126 401 25183 133 +35364 265 25209 54 +11392 379 25210 121 +6354 469 25227 115 +12691 373 25228 120 +12566 360 25241 72 +6626 356 25256 92 +6187 309 25266 136 +33891 259 25286 146 +18610 327 25305 86 +18543 358 25306 115 +18368 318 25343 99 +39060 233 25366 145 +31884 151 25391 132 +31688 436 25392 144 +2330 292 25410 87 +2252 305 25449 117 +25795 304 25450 81 +2358 404 25469 92 +2081 304 25482 89 +1886 184 25516 97 +21990 241 25537 103 +16397 511 25550 128 +7185 237 25581 58 +38128 482 25619 92 +38302 1326 25656 80 +11725 397 25672 150 +11488 340 25710 97 +1129 323 25711 147 +9375 502 25726 69 +28873 210 25759 128 +28768 161 25787 128 +14523 1377 25818 129 +24921 366 25819 163 +40422 422 25846 137 +40001 447 25861 140 +7409 1212 25862 54 +7454 197 25881 173 +7480 451 25896 139 +2344 373 25922 124 +32209 137 25945 76 +33942 412 25974 116 +32786 177 26000 72 +32954 253 26037 149 +32925 494 26073 89 +17516 150 26086 84 +4423 221 26112 68 +4178 143 26149 61 +4307 660 26150 92 +4108 448 26189 123 +4458 287 26215 74 +4468 490 26231 116 +16631 395 26243 80 +16945 266 26244 66 +11526 243 26263 109 +11571 198 26288 120 +38919 436 26303 81 +31213 219 26304 117 +30885 154 26305 117 +39396 342 26335 94 +39317 267 26351 94 +32216 406 26384 138 +33268 385 26402 89 +32863 273 26432 114 +25985 491 26462 84 +22754 304 26463 147 +23022 431 26487 55 +23063 452 26526 100 +22569 1252 26527 105 +36941 223 26546 174 +37397 280 26585 101 +12349 732 26612 110 +27856 497 26613 167 +26999 464 26640 84 +27081 267 26675 133 +27033 234 26694 67 +285 467 26717 67 +619 182 26737 85 +130 352 26752 112 +18602 178 26771 131 +14360 179 26804 58 +14149 368 26840 121 +26945 371 26875 83 +26796 282 26902 120 +14359 447 26929 128 +17638 343 26967 74 +13688 179 26993 58 +11539 453 27019 103 +11834 142 27055 124 +11779 242 27092 101 +11540 303 27126 94 +11349 260 27150 76 +11364 376 27175 117 +11234 408 27176 78 +11112 984 27210 140 +9503 1086 27243 220 +19629 325 27271 158 +33058 420 27272 116 +33267 390 27295 120 +33243 166 27296 97 +21654 765 27309 145 +16767 450 27344 204 +29174 242 27371 50 +28791 415 27386 55 +28832 468 27399 116 +29035 282 27411 57 +37134 200 27434 132 +17497 485 27467 65 +3477 704 27478 92 +9231 207 27479 186 +19662 564 27500 98 +9619 133 27501 132 +9358 436 27528 60 +9344 450 27529 136 +1320 443 27530 115 +1592 500 27544 137 +9273 1191 27545 64 +33224 1272 27566 196 +33003 1388 27567 144 +32863 276 27580 159 +33092 213 27605 114 +36279 470 27644 52 +36146 388 27680 137 +36295 234 27694 71 +27002 436 27709 108 +26991 229 27720 120 +19943 158 27721 53 +5609 477 27733 75 +5182 334 27758 131 +5553 421 27759 119 +16461 386 27781 119 +16599 1020 27791 133 +32939 217 27792 184 +33070 423 27793 96 +31055 284 27794 51 +17550 356 27819 123 +17582 343 27820 136 +17485 414 27845 96 +26997 469 27878 135 +14648 252 27898 61 +14729 196 27916 128 +24014 495 27941 70 +10388 497 27953 107 +28972 352 27974 96 +26083 174 27989 99 +25986 492 28025 130 +25592 274 28043 74 +35008 404 28044 135 +34698 218 28066 96 +34639 280 28067 62 +35301 486 28068 55 +34935 282 28099 78 +37367 339 28100 92 +7654 262 28101 82 +25894 178 28128 90 +25833 153 28143 123 +34842 236 28177 149 +28868 159 28209 137 +28891 219 28231 81 +28871 150 28232 122 +7459 330 28269 127 +25729 245 28306 77 +25784 499 28329 135 +25886 512 28360 126 +11359 201 28370 132 +25851 387 28409 83 +25728 1038 28439 104 +25524 546 28456 192 +9356 333 28457 167 +9704 246 28489 92 +9588 244 28526 133 +9580 334 28561 66 +1131 380 28588 119 +37214 158 28617 114 +19542 443 28618 135 +19529 407 28645 144 +19811 485 28679 51 +33267 179 28693 50 +2408 378 28706 64 +2489 166 28707 131 +2387 210 28721 98 +5252 296 28748 72 +35112 167 28782 147 +30741 435 28815 92 +30960 386 28850 71 +30907 198 28870 65 +37152 190 28887 120 +37404 203 28898 131 +17569 1221 28927 133 +17503 251 28955 161 +30797 429 28982 81 +3519 306 28983 80 +14584 194 29004 76 +19541 323 29005 80 +19680 199 29017 145 +10341 433 29047 89 +10488 1044 29069 67 +28057 279 29097 111 +27819 187 29098 58 +11600 204 29121 118 +18590 254 29148 139 +27024 142 29182 52 +20499 228 29220 125 +19837 317 29251 149 +24644 138 29252 52 +36254 414 29280 102 +11366 328 29303 126 +11488 206 29325 143 +32985 333 29335 148 +5187 298 29336 137 +7639 388 29364 139 +7208 163 29365 129 +40407 162 29382 81 +6497 177 29383 119 +20947 309 29384 83 +20400 295 29421 135 +26998 148 29457 116 +27029 422 29478 127 +17616 509 29479 59 +332 323 29500 131 +1078 424 29534 96 +1505 132 29535 113 +19706 262 29536 53 +19665 391 29553 122 +11459 438 29575 109 +11383 454 29576 126 +2475 137 29604 97 +4162 138 29634 85 +38389 429 29673 64 +37934 237 29683 73 +16491 332 29722 106 +11736 193 29723 85 +7678 440 29736 87 +7327 214 29763 86 +7686 251 29764 95 +7653 728 29780 55 +28822 277 29796 122 +29258 446 29822 73 +28885 381 29857 62 +28774 269 29871 82 +28944 317 29899 96 +28707 419 29900 122 +23033 384 29934 127 +22807 210 29948 98 +22993 189 29949 98 +16408 174 29985 128 +18857 342 30015 51 +9318 324 30033 96 +38339 435 30034 116 +10449 434 30045 127 +14562 219 30046 124 +13434 241 30081 107 +13394 381 30107 110 +13710 238 30134 79 +6185 200 30147 122 +6373 391 30163 70 +6331 236 30186 125 +6439 1196 30209 113 +9602 456 30222 175 +19729 444 30232 66 +19689 169 30267 101 +38354 374 30280 125 +13803 300 30294 83 +25957 472 30309 78 +26153 259 30347 117 +10716 408 30348 87 +28077 386 30349 102 +27674 289 30373 111 +8519 155 30374 99 +16584 501 30386 143 +16434 437 30387 121 +29160 277 30421 51 +28807 270 30457 87 +15722 391 30472 148 +15576 259 30498 136 +6198 179 30499 75 +20642 255 30517 103 +20995 200 30537 88 +9459 159 30547 100 +27961 495 30548 148 +38118 367 30575 111 +10652 479 30576 139 +10586 240 30577 127 +19576 428 30615 139 +18771 182 30650 135 +13379 480 30651 101 +3583 1672 30678 104 +5309 442 30716 162 +5377 494 30746 130 +28697 170 30770 101 +39178 273 30791 84 +39185 286 30809 75 +6226 211 30824 138 +14371 188 30855 101 +27773 402 30872 146 +27845 372 30893 91 +27565 184 30908 112 +27830 485 30937 61 +37065 339 30964 58 +17884 672 30965 123 +22011 478 30998 168 +26671 492 31016 77 +33906 149 31051 88 +6531 366 31089 143 +4124 399 31105 116 +33805 438 31125 143 +34304 265 31158 58 +34114 144 31169 127 +19625 415 31200 141 +368 211 31201 61 +299 501 31234 77 +489 1113 31272 121 +11655 288 31295 174 +26080 136 31327 103 +17484 500 31328 120 +10515 243 31352 97 +10789 160 31362 89 +34943 424 31378 70 +33802 260 31412 74 +32995 466 31449 105 +33056 270 31477 99 +25983 233 31507 114 +9225 256 31527 138 +14602 1008 31542 142 +4367 334 31572 193 +4405 146 31593 55 +7185 130 31626 132 +7718 212 31656 88 +2352 286 31666 50 +2710 1176 31698 77 +324 268 31731 117 +354 484 31749 121 +437 368 31750 119 +1079 192 31781 66 +971 351 31813 52 +1461 1916 31835 109 +34299 376 31872 150 +34105 132 31891 68 +34041 507 31892 129 +34054 341 31915 81 +16668 451 31916 56 +16458 173 31950 109 +17007 344 31978 135 +12369 329 32001 70 +12535 389 32002 63 +20634 382 32015 116 +7577 582 32037 83 +23676 185 32067 188 +25021 399 32099 145 +25180 311 32133 114 +5386 435 32134 52 +5426 430 32135 146 +18538 234 32148 82 +18291 207 32182 53 +32227 312 32201 63 +32002 161 32215 56 +10732 241 32251 143 +10072 473 32284 143 +19812 305 32294 74 +19537 178 32307 107 +8525 411 32308 62 +20507 325 32338 100 +29722 814 32364 146 +30008 509 32390 127 +17784 456 32412 94 +12507 347 32413 73 +40448 150 32441 111 +13569 150 32474 79 +31122 1533 32494 55 +12723 428 32510 141 +12616 416 32546 136 +12620 330 32572 70 +39299 318 32598 136 +39329 186 32625 52 +19650 413 32648 122 +4298 460 32661 66 +4507 298 32699 139 +4050 175 32730 64 +14748 354 32763 68 +215 480 32764 101 +23754 451 32796 138 +24059 474 32833 50 +31140 358 32834 111 +37985 262 32872 106 +12712 1924 32900 104 +12498 270 32923 187 +13574 137 32953 108 +13487 314 32970 111 +40204 429 33004 119 +38342 172 33032 60 +37842 206 33068 138 +38292 456 33086 144 +36871 398 33087 118 +9540 266 33105 134 +12696 470 33115 140 +12445 506 33126 72 +18759 444 33161 69 +8504 378 33188 59 +3082 384 33211 56 +3019 498 33212 63 +39343 336 33232 112 +39173 159 33270 101 +38856 996 33271 81 +23618 365 33282 165 +23963 416 33298 66 +23897 628 33316 53 +33038 148 33348 137 +22863 499 33387 111 +14598 191 33417 128 +17518 301 33418 69 +17880 130 33448 105 +14432 302 33449 103 +4154 171 33460 52 +11602 134 33483 115 +7303 223 33484 71 +7334 173 33498 108 +13724 482 33499 89 +20965 494 33509 107 +35168 196 33525 101 +35460 313 33526 94 +34706 320 33554 131 +26640 544 33570 68 +27002 220 33571 89 +27183 284 33602 85 +28693 195 33613 133 +15651 406 33614 71 +15648 490 33640 93 +15659 512 33657 58 +38006 135 33696 51 +37754 471 33714 104 +38079 1932 33745 105 +32210 451 33784 249 +5455 443 33810 107 +35062 510 33845 131 +1455 290 33868 102 +24890 269 33879 72 +24628 509 33903 86 +24741 402 33928 121 +24447 493 33948 138 +15749 131 33949 96 +15532 328 33975 91 +15771 494 33991 59 +15618 166 34002 91 +15603 135 34031 121 +29837 476 34051 99 +29935 290 34052 86 +29668 372 34053 97 +29858 230 34054 109 +29753 316 34092 133 +6409 227 34093 110 +4420 411 34112 123 +4592 161 34140 130 +3854 337 34157 127 +3937 368 34158 135 +4147 187 34197 132 +18881 200 34216 131 +18414 198 34217 141 +35999 1527 34249 68 +35771 290 34265 124 +36066 385 34266 81 +36021 507 34293 72 +36091 150 34308 125 +18452 138 34347 116 +12667 233 34380 139 +6248 375 34415 92 +6529 297 34454 74 +17876 478 34490 143 +24016 392 34501 110 +23740 438 34531 147 +23714 496 34561 76 +17756 347 34581 134 +472 340 34598 106 +35322 448 34617 88 +35353 222 34637 79 +34889 195 34649 82 +18637 340 34683 124 +1254 169 34722 100 +13505 1095 34746 90 +21988 168 34756 150 +14770 167 34757 85 +8566 407 34793 103 +8597 398 34794 88 +8594 221 34811 82 +33045 277 34847 97 +32837 436 34864 78 +19913 494 34876 58 +335 322 34912 57 +16528 280 34944 52 +16216 402 34945 113 +21703 310 34974 119 +21503 442 35000 81 +467 491 35001 61 +15500 284 35021 101 +11612 435 35022 81 +11401 259 35032 142 +11898 228 35063 129 +11506 205 35102 138 +11531 142 35136 144 +39281 466 35170 104 +38954 157 35188 107 +39034 316 35224 123 +27880 207 35252 113 +6652 1388 35274 68 +10277 237 35298 130 +35875 313 35316 111 +22635 326 35352 125 +35194 473 35374 118 +35075 1053 35375 124 +37123 317 35388 263 +18719 219 35389 55 +35919 400 35407 67 +36230 506 35444 67 +37253 286 35464 72 +2367 269 35488 69 +23688 430 35502 105 +23608 176 35503 54 +23716 1000 35515 98 +23784 422 35544 279 +38347 614 35570 70 +35109 225 35591 185 +27839 412 35620 97 +9727 366 35631 64 +27050 280 35658 127 +160 188 35659 102 +496 232 35697 144 +2176 264 35713 90 +38212 236 35729 129 +23604 488 35765 118 +23768 369 35788 118 +34239 305 35805 73 +20699 258 35821 73 +16579 375 35859 142 +25083 357 35876 103 +2438 419 35900 61 +19826 453 35920 101 +19687 275 35936 61 +13778 627 35961 58 +3161 194 35996 215 +3540 305 36022 149 +39301 128 36052 107 +39269 502 36063 74 +9254 447 36064 77 +19786 411 36075 54 +23586 191 36085 107 +28951 223 36119 50 +39063 262 36133 69 +39323 274 36134 96 +39158 370 36168 103 +27093 261 36193 144 +27019 364 36217 82 +9328 351 36218 90 +2545 501 36219 112 +26747 499 36231 138 +27288 322 36245 81 +35929 423 36266 61 +8409 980 36301 50 +20516 473 36338 94 +38238 468 36361 119 +38113 1964 36383 145 +9666 180 36412 144 +38183 140 36413 109 +10555 367 36433 119 +36327 336 36472 72 +31000 327 36505 78 +21638 155 36522 147 +32943 239 36561 64 +32718 444 36582 123 +33286 466 36615 113 +5463 261 36616 145 +5236 298 36651 65 +5390 272 36669 65 +5540 467 36694 59 +5408 354 36729 51 +24771 386 36742 138 +17698 441 36771 131 +13410 164 36794 82 +38292 175 36815 101 +38055 301 36844 149 +38381 463 36875 122 +24672 383 36897 81 +187 429 36926 114 +26959 524 36954 61 +26794 416 36989 278 +27089 263 36990 55 +26998 312 36991 74 +26970 223 37017 56 +27012 374 37048 134 +30991 154 37049 116 +31034 491 37050 97 +30622 297 37071 125 +31772 293 37081 145 +32095 196 37095 132 +22665 312 37127 125 +47 198 37146 147 +142 162 37173 124 +2548 320 37207 148 +32247 298 37221 89 +8462 174 37254 55 +8676 217 37268 106 +26813 147 37292 135 +33857 249 37331 60 +34226 359 37362 81 +33947 233 37393 130 +23979 444 37394 60 +18502 212 37395 70 +7181 290 37396 51 +25046 314 37397 52 +35920 307 37428 111 +25901 230 37455 109 +36129 219 37479 148 +35840 196 37480 99 +33245 160 37506 98 +39147 1296 37542 149 +14392 136 37557 166 +14287 486 37582 69 +21667 128 37606 50 +21682 494 37634 57 +40446 132 37666 78 +26983 192 37697 91 +27093 509 37719 71 +26924 376 37745 115 +14737 134 37746 75 +14547 159 37767 71 +14301 379 37768 83 +12388 317 37769 142 +12230 462 37791 91 +12720 253 37827 68 +7550 408 37828 141 +30830 160 37867 114 +20869 508 37902 98 +20802 377 37920 103 +38019 443 37921 139 +37970 180 37947 119 +37969 319 37957 146 +37773 288 37993 84 +17829 152 38013 122 +18548 353 38052 55 +5206 508 38090 130 +5405 195 38091 132 +40111 393 38123 97 +39846 314 38154 148 +4377 142 38167 121 +18892 166 38192 148 +18575 390 38215 120 +18389 508 38216 139 +10516 139 38229 54 +10566 1656 38230 136 +10687 411 38231 151 +21733 173 38264 127 +20606 352 38281 129 +20732 309 38282 84 +19554 320 38306 80 +4446 420 38341 137 +5342 230 38370 54 +12550 137 38371 119 +10712 424 38385 90 +37087 313 38386 77 +10326 343 38399 61 +37158 316 38432 58 +37286 135 38461 75 +13323 442 38488 144 +13411 367 38515 111 +32211 169 38554 71 +4493 236 38587 98 +4236 400 38626 53 +11340 202 38653 110 +7293 131 38654 99 +7250 394 38655 95 +17857 211 38665 127 +15765 193 38666 101 +15786 160 38702 107 +30874 450 38736 149 +30593 312 38773 141 +31118 238 38774 63 +3533 183 38792 118 +3276 476 38827 141 +12311 499 38828 131 +12165 369 38843 121 +12240 288 38859 67 +18606 471 38885 79 +17874 296 38897 114 +23833 274 38911 135 +34844 668 38926 132 +13710 154 38927 170 +31802 162 38962 138 +28964 350 38995 50 +4203 176 39014 110 +11536 399 39046 146 +11663 308 39047 80 +11534 275 39081 57 +11409 592 39082 56 +20559 331 39114 222 +40172 416 39147 108 +21985 268 39169 116 +1026 156 39195 56 +1394 207 39228 94 +21645 494 39250 102 +29981 272 39279 141 +28733 176 39280 137 +28781 214 39318 107 +25725 175 39319 89 +25897 475 39330 109 +37990 509 39369 99 +38291 264 39396 117 +38403 152 39397 124 +29854 412 39398 116 +28761 308 39416 101 +35270 482 39439 86 +12337 478 39458 93 +8604 294 39459 131 +37968 398 39487 74 +19819 198 39509 88 +17414 374 39542 64 +31170 495 39543 121 +7670 425 39544 72 +17493 485 39557 78 +17487 238 39593 140 +13815 510 39604 81 +14338 433 39620 105 +4347 129 39646 71 +4262 349 39647 106 +8689 249 39675 83 +25018 179 39689 99 +24701 140 39690 146 +11733 367 39701 100 +11441 464 39718 57 +38125 373 39734 64 +9343 343 39765 74 +9123 415 39797 125 +37157 435 39798 101 +39030 419 39834 64 +12440 1245 39850 53 +12795 416 39885 166 +12380 375 39916 90 +12779 512 39945 132 +34006 305 39946 90 +34349 451 39947 132 +16830 186 39984 73 +9636 501 40016 91 +35316 432 40036 79 +31166 481 40057 124 +31151 313 40068 79 +19519 343 40080 108 +19778 171 40113 88 +20152 505 40127 91 +19311 461 40139 137 +24845 254 40156 63 +19820 507 40157 113 +19342 205 40196 100 +19688 488 40206 116 +12463 425 40221 143 +12472 331 40256 115 +12216 346 40293 111 +30186 237 40317 137 +5423 418 40355 75 +10638 336 40379 114 +4460 1119 40417 113 +26906 131 40438 157 +17481 253 40439 92 +38976 208 40440 82 +23022 166 40468 113 +5489 422 40469 116 +9240 173 40470 129 +9464 425 40498 69 +11739 386 40499 81 +38946 259 40518 54 +38972 410 40548 138 +16876 266 40563 130 +38019 481 40587 55 +38467 512 40599 95 +34955 724 40621 82 +25842 231 40636 145 +22973 272 40669 124 +399 344 40670 122 +514 1092 40671 99 +104 261 40672 146 +4517 398 40689 61 +4276 380 40725 82 +38931 237 40726 117 +24006 1228 40727 141 +23870 256 40728 204 +13781 136 40758 131 +23851 362 40768 95 +23876 166 40792 96 +3173 482 40821 138 +3100 359 40846 120 +39352 396 40879 75 +13463 463 40893 53 +13689 216 40907 123 +31071 1124 40925 87 +31004 280 40937 141 +31217 187 40974 71 +31238 604 41004 139 +31124 501 41019 120 +16557 209 41038 149 +36149 276 41070 112 +36054 346 41071 149 +23678 508 41089 79 +30890 287 41123 110 +32178 383 41142 132 +32159 331 41143 64 +15570 368 41163 133 +15559 241 41176 91 +15581 395 41177 84 +21517 520 41200 53 +29907 507 41217 103 +30090 242 41218 94 +36258 484 41252 98 +40249 163 41275 110 +31821 465 41294 105 +23734 424 41295 105 +7313 429 41318 102 +5306 213 41330 86 +5519 1640 41331 87 +28777 283 41332 128 +11654 375 41348 143 +39968 325 41349 146 +40611 418 41350 122 +40551 490 41361 103 +21952 128 41373 73 +6252 469 41400 103 +6255 490 41413 111 +6585 168 41428 142 +6408 448 41429 135 +187 436 41461 87 +13766 163 41462 109 +16810 135 41494 118 +10429 319 41530 73 +10138 311 41550 119 +21654 147 41551 111 +1277 208 41581 91 +1095 255 41582 119 +1213 383 41611 108 +38323 976 41638 69 +37851 273 41656 236 +38111 1300 41667 65 +11669 290 41681 277 +38302 157 41682 75 +27949 453 41720 56 +27475 245 41721 98 +27601 185 41732 58 +27929 309 41733 120 +2359 260 41745 99 +26891 343 41781 146 +1250 482 41812 141 +1371 397 41831 100 +4271 261 41846 58 +4418 321 41883 75 +35942 440 41898 74 +22653 276 41937 76 +14657 200 41938 88 +14441 144 41956 98 +1169 219 41972 63 +38126 768 41987 148 +10349 228 42014 112 +31918 223 42050 132 +32019 438 42070 90 +37172 750 42071 65 +40073 257 42089 223 +23624 273 42119 135 +18668 1101 42132 84 +40301 273 42146 155 +6274 277 42165 62 +15832 283 42185 106 +15468 328 42198 125 +14845 391 42218 64 +14811 429 42231 144 +1444 231 42241 113 +818 386 42277 126 +20627 260 42292 60 +20722 308 42324 131 +20938 493 42355 94 +20731 173 42371 92 +39010 278 42372 105 +38815 624 42402 113 +3127 157 42433 204 +3274 386 42434 147 +3440 163 42468 123 +37979 159 42484 81 +38021 407 42521 144 +37714 167 42531 121 +3435 217 42553 51 +12690 1856 42569 60 +30159 481 42570 214 +29160 358 42608 92 +7540 213 42620 140 +24663 275 42621 140 +20707 302 42650 94 +27921 335 42674 51 +27539 286 42675 136 +27746 194 42698 135 +6222 487 42699 127 +13742 186 42717 141 +1529 497 42745 60 +25863 491 42771 60 +20931 215 42794 95 +19463 1344 42806 144 +19930 186 42830 84 +19523 388 42846 118 +1339 158 42847 132 +1275 482 42863 87 +307 450 42898 104 +24051 233 42926 136 +27767 493 42927 78 +28143 424 42928 135 +11283 266 42963 137 +19491 226 42964 84 +19966 344 42994 103 +19605 696 43024 110 +19637 339 43044 185 +17663 385 43066 80 +5370 298 43105 51 +12541 265 43131 125 +14504 298 43161 103 +30146 332 43177 56 +39206 434 43189 126 +2459 446 43202 131 +2061 428 43203 110 +36150 248 43225 58 +3510 357 43248 52 +3469 488 43286 122 +2349 441 43321 146 +2373 1500 43353 116 +12334 740 43380 173 +12738 296 43396 167 +9226 319 43434 101 +5575 513 43468 125 +29171 188 43499 147 +29115 153 43537 96 +24770 482 43573 91 +24604 232 43574 92 +9450 257 43575 59 +9596 410 43603 138 +9761 479 43620 110 +8228 315 43621 143 +21658 172 43647 147 +21344 1588 43660 132 +21638 479 43661 143 +10746 332 43687 96 +10409 163 43688 88 +29029 185 43701 114 +23966 203 43739 133 +20837 520 43758 113 +9322 167 43759 148 +9437 487 43760 121 +117 142 43795 98 +35 438 43806 56 +32164 488 43845 108 +32162 172 43846 58 +20978 663 43858 90 +3524 422 43888 180 +30786 474 43903 59 +39416 171 43914 99 +22958 135 43933 127 +9710 238 43934 50 +9267 440 43971 146 +38059 458 44009 79 +37936 191 44044 111 +38430 139 44078 60 +7182 428 44096 86 +37099 460 44135 144 +11425 346 44167 58 +11543 179 44168 82 +199 321 44187 94 +293 286 44203 106 +250 292 44216 141 +29846 353 44235 75 +30232 249 44262 71 +29801 507 44278 53 +26094 131 44289 78 +35883 188 44290 75 +5600 191 44291 76 +26709 319 44302 102 +26425 457 44339 137 +26996 167 44352 89 +17888 243 44387 111 +11352 1137 44416 134 +11478 462 44455 76 +7423 259 44488 130 +7352 491 44526 120 +7442 289 44556 68 +31144 301 44593 82 +31153 209 44594 81 +31056 322 44604 105 +31075 257 44632 81 +449 483 44651 122 +33151 160 44652 101 +34159 374 44679 72 +5324 236 44691 89 +23794 404 44692 135 +24192 424 44724 58 +34178 299 44749 72 +24687 232 44773 74 +24733 450 44804 59 +8275 334 44825 147 +8443 134 44859 106 +16631 1808 44870 62 +26006 456 44889 118 +26141 309 44890 83 +25433 506 44901 146 +25967 1437 44927 113 +25979 133 44947 90 +5545 265 44948 82 +29966 478 44976 113 +30196 233 44977 64 +29555 225 45016 136 +30198 152 45053 107 +29929 171 45074 106 +29857 168 45100 145 +30243 165 45131 56 +3190 365 45132 98 +39323 376 45164 139 +32956 353 45165 144 +32779 475 45185 148 +3355 400 45195 57 +3304 450 45216 69 +27044 472 45217 52 +26528 174 45234 127 +24697 174 45235 61 +7421 364 45236 148 +29073 482 45270 81 +28919 240 45302 148 +28880 140 45331 141 +25946 436 45362 53 +16605 353 45363 52 +37179 324 45385 109 +19787 250 45409 68 +20084 329 45439 113 +19448 503 45463 50 +18453 262 45492 109 +18725 310 45518 137 +37244 674 45542 103 +37312 236 45563 234 +37604 408 45573 86 +1491 473 45595 60 +10553 197 45626 86 +10379 488 45640 106 +10533 295 45641 76 +10309 860 45651 97 +32252 296 45688 191 +7548 139 45712 118 +3110 473 45744 106 +5482 544 45745 85 +24867 217 45758 140 +22849 1140 45796 54 +22335 328 45833 114 +22421 317 45865 80 +9516 880 45866 82 +19640 203 45896 234 +19722 195 45909 68 +31914 435 45937 146 +26954 260 45949 125 +26610 255 45972 149 +28087 241 46000 107 +36219 166 46038 113 +36260 389 46070 134 +5381 980 46088 137 +7325 326 46098 124 +27819 492 46110 126 +27990 457 46127 89 +27677 143 46154 56 +27626 307 46174 113 +28034 473 46189 149 +16500 145 46219 68 +27726 211 46233 99 +28116 192 46272 138 +7629 328 46286 115 +7764 254 46305 142 +36872 490 46337 104 +36880 259 46355 143 +37356 456 46356 129 +1509 335 46387 101 +38127 311 46388 83 +38246 422 46389 142 +37942 190 46400 125 +38425 359 46424 77 +37992 386 46434 121 +38924 357 46467 74 +26786 511 46492 143 +15379 285 46516 97 +18554 341 46517 128 +19725 276 46532 135 +11272 307 46554 68 +20943 208 46575 79 +5470 477 46614 109 +23615 429 46645 76 +37046 499 46684 102 +25039 299 46722 102 +35304 213 46755 110 +34868 1744 46771 146 +35036 819 46772 254 +7559 491 46788 189 +7361 494 46805 123 +36160 482 46834 104 +452 314 46835 79 +6174 405 46857 143 +4523 238 46878 71 +4040 490 46912 101 +14753 415 46926 99 +33839 1236 46951 60 +34069 387 46973 100 +8394 392 46974 81 +22943 441 46987 97 +35162 371 47025 68 +35236 951 47042 117 +1471 401 47043 232 +12691 205 47065 127 +10627 218 47077 85 +10741 394 47113 139 +19558 286 47138 91 +25080 459 47167 61 +38210 390 47185 106 +38327 247 47200 143 +18752 1242 47223 132 +36282 281 47224 171 +35990 144 47225 85 +36476 385 47257 114 +35875 147 47296 149 +36129 205 47311 133 +35861 434 47330 82 +18872 276 47351 112 +18954 206 47352 111 +18772 452 47386 54 +18437 139 47410 124 +18698 423 47436 69 +26770 336 47458 149 +27166 147 47484 148 +38176 184 47520 93 +1187 193 47542 69 +32935 478 47565 98 +33186 490 47576 106 +10508 185 47591 117 +10458 1512 47606 86 +8696 164 47621 190 +8417 586 47657 143 +8125 1302 47680 142 +27874 295 47700 150 +28164 377 47735 85 +28166 481 47755 87 +21898 302 47772 124 +8650 423 47808 51 +37947 498 47821 93 +38019 155 47840 118 +7327 449 47862 83 +7311 268 47880 135 +23672 345 47899 108 +23857 1472 47929 72 +7627 412 47964 179 +25749 192 47975 68 +25738 290 47993 111 +26069 382 48009 62 +31966 251 48025 126 +36081 248 48064 80 +14581 259 48098 52 +36091 235 48113 50 +36032 311 48139 104 +9481 308 48178 99 +9431 209 48201 55 +18629 458 48237 138 +21772 179 48238 131 +23721 379 48239 125 +2141 445 48264 70 +2368 214 48276 106 +2585 503 48298 134 +2335 184 48323 77 +11458 261 48335 121 +34261 1065 48371 74 +4386 830 48372 93 +39055 317 48386 129 +39372 322 48423 111 +36002 467 48437 55 +36215 1428 48468 133 +37082 1088 48507 215 +16893 206 48524 257 +16725 370 48550 115 +38103 201 48551 105 +37960 487 48552 133 +37036 934 48591 66 +32186 252 48615 98 +14762 175 48616 111 +13551 312 48632 103 +13751 276 48647 50 +2066 318 48657 69 +2482 279 48673 58 +2291 477 48674 56 +2390 1425 48675 129 +11770 179 48700 103 +17602 231 48716 75 +17681 274 48737 104 +25923 205 48769 107 +19635 142 48781 103 +6300 335 48816 147 +30133 512 48854 54 +29880 175 48866 127 +30968 470 48891 67 +30969 317 48903 51 +17538 380 48931 127 +30080 203 48932 93 +10 309 48933 106 +376 352 48965 68 +0 481 48976 67 +0 362 48993 88 +20757 372 49007 60 +36031 463 49022 85 +35897 365 49052 127 +30915 326 49081 68 +12457 169 49082 60 +12796 282 49115 53 +18879 184 49116 121 +18759 318 49117 140 +18379 380 49155 116 +12648 159 49156 75 +12623 449 49189 65 +12580 188 49203 148 +12569 984 49224 60 +25755 350 49225 240 +25592 434 49253 68 +24642 345 49275 111 +24593 453 49276 105 +3259 138 49277 93 +33088 465 49294 127 +10576 292 49313 77 +40239 242 49340 134 +40009 354 49357 122 +39781 246 49387 73 +4276 378 49420 60 +40156 495 49435 148 +40165 309 49466 71 +40091 455 49467 90 +29875 241 49493 101 +30126 380 49494 112 +33042 164 49495 77 +22827 413 49507 113 +22687 588 49538 87 +39379 179 49573 92 +32049 472 49596 91 +6478 161 49628 67 +25898 398 49657 103 +34093 194 49683 92 +28057 357 49695 93 +28210 414 49712 59 +3192 225 49724 110 +3443 165 49743 52 +8272 175 49775 130 +8644 403 49812 117 +8435 237 49813 128 +29717 1568 49832 79 +29947 238 49870 271 +29698 906 49871 136 +29868 402 49888 78 +35281 238 49927 125 +34128 304 49955 119 +34337 373 49989 138 +6597 422 49990 60 +6559 1292 50015 126 +26979 380 50042 185 +30934 420 50043 139 +30999 239 50081 95 +27879 916 50119 78 +26979 438 50131 114 +3075 208 50132 69 +22681 376 50158 54 +23018 411 50172 83 +22663 194 50192 142 +22438 302 50231 115 +34068 146 50270 53 +7230 142 50309 67 +24735 1218 50310 60 +24372 311 50347 188 +22942 816 50378 129 +23054 151 50379 109 +22875 478 50400 82 +11692 359 50418 90 +25880 376 50419 134 +25949 420 50455 53 +26052 1188 50456 110 +10691 489 50479 139 +10219 511 50509 139 +18729 143 50510 108 +18750 309 50530 105 +18495 210 50550 148 +18736 512 50563 75 +18839 130 50593 76 +18857 327 50594 131 +29987 212 50630 82 +29939 394 50665 64 +29979 137 50699 142 +30080 285 50726 123 +31177 453 50764 113 +19504 208 50799 77 +3134 161 50821 140 +1267 1203 50822 93 +2149 164 50843 115 +2279 505 50882 75 +247 511 50920 52 +9302 391 50921 144 +35236 288 50942 143 +3577 377 50961 94 +32034 282 50978 55 +31872 499 50979 126 +32104 1146 51001 118 +10277 306 51002 126 +15757 147 51037 60 +29813 319 51071 119 +29973 192 51072 62 +11759 303 51096 60 +11871 201 51108 125 +32938 280 51131 94 +15823 181 51160 83 +4241 424 51174 137 +13369 387 51207 50 +13323 134 51222 73 +6514 235 51240 117 +6675 498 51275 138 +2486 356 51306 149 +3177 354 51307 99 +37306 229 51334 89 +37424 430 51366 82 +8434 467 51384 95 +8554 442 51423 148 +10281 505 51440 66 +31788 223 51464 116 +32051 423 51487 73 +14557 389 51488 124 +14790 510 51505 112 +29955 750 51522 78 +31132 328 51546 147 +285 497 51547 78 +17726 448 51575 131 +17214 440 51576 142 +31174 429 51606 109 +6477 142 51643 94 +6758 306 51644 83 +6312 397 51674 90 +40356 502 51697 61 +40247 214 51718 138 +19745 171 51737 141 +2412 558 51769 119 +2351 502 51781 81 +33107 324 51817 61 +33302 341 51833 138 +32777 149 51872 76 +6145 431 51896 67 +6609 214 51909 117 +6301 160 51920 91 +2102 378 51930 132 +1348 344 51951 72 +1034 510 51973 82 +37016 419 52009 92 +11361 444 52019 105 +20496 477 52044 76 +21948 186 52080 57 +24021 304 52105 125 +24077 362 52139 134 +20852 471 52166 53 +20741 138 52189 111 +20779 487 52190 71 +33218 360 52191 147 +20943 370 52201 130 +20716 359 52221 66 +30984 176 52235 140 +12685 438 52236 68 +20795 491 52261 60 +20531 256 52287 98 +20959 1356 52325 120 +20782 349 52344 83 +20682 192 52371 58 +6349 479 52405 94 +35133 179 52425 148 +7236 369 52458 116 +7268 344 52475 133 +7429 386 52506 57 +17778 333 52529 128 +18004 386 52539 56 +40086 239 52560 80 +1363 334 52595 147 +1016 220 52610 62 +23961 485 52642 91 +23844 466 52653 50 +23696 406 52689 112 +21997 422 52713 67 +20836 802 52748 131 +20542 143 52749 175 +12383 495 52760 118 +12708 295 52761 132 +29986 470 52793 138 +28911 492 52824 57 +28741 186 52825 75 +26055 327 52862 67 +38182 207 52883 106 +9472 218 52897 105 +12638 449 52920 110 +93 236 52952 58 +22714 442 52963 127 +11303 447 52964 143 +21967 321 52965 60 +22011 285 53000 114 +5254 606 53001 138 +14475 984 53038 62 +14931 271 53071 213 +4229 329 53087 71 +5618 359 53108 128 +3379 271 53122 105 +3413 342 53123 142 +3034 335 53157 73 +4286 373 53182 50 +6500 294 53215 51 +6409 146 53237 87 +17484 262 53255 104 +17597 371 53282 141 +18542 384 53298 92 +18805 493 53321 130 +29057 429 53353 61 +28696 297 53370 93 +29309 186 53408 82 +24707 224 53434 108 +34126 191 53453 75 +33837 416 53476 108 +26688 164 53497 71 +34128 204 53512 80 +34374 338 53533 146 +16825 928 53546 97 +16639 511 53547 99 +40213 474 53574 135 +4558 509 53591 66 +4665 264 53592 52 +4014 253 53627 93 +23737 240 53638 85 +33279 397 53668 141 +33901 189 53669 144 +20800 1184 53679 143 +36263 235 53693 91 +38341 185 53730 133 +27863 716 53747 136 +28149 268 53763 230 +28020 317 53764 104 +27652 174 53776 51 +37103 241 53794 80 +36832 233 53825 54 +4400 477 53862 55 +4355 358 53891 136 +25774 457 53930 52 +6180 720 53931 133 +16766 488 53968 90 +6654 182 53992 61 +6193 344 54022 58 +6395 444 54043 122 +6017 128 54073 111 +6129 161 54074 86 +3293 388 54093 70 +3340 195 54111 147 +35287 531 54143 98 +34989 1704 54165 156 +34868 268 54198 121 +4441 401 54214 146 +4358 317 54236 77 +12416 438 54267 137 +12424 509 54285 81 +12162 355 54306 62 +10588 490 54339 110 +38339 425 54368 144 +35156 368 54394 89 +30200 394 54408 89 +30236 301 54443 59 +29878 435 54444 98 +29782 385 54458 83 +29581 138 54472 83 +30067 271 54496 78 +5440 380 54513 105 +19835 443 54543 119 +19969 335 54566 54 +19834 206 54579 62 +12338 409 54580 129 +16647 357 54593 70 +16705 142 54610 54 +22575 304 54630 87 +37046 155 54631 69 +37164 330 54668 54 +39423 444 54698 75 +39366 321 54711 56 +39430 360 54729 80 +27129 226 54744 112 +26598 291 54768 112 +26665 503 54785 135 +27360 137 54815 107 +2344 516 54844 91 +15819 160 54875 133 +15526 369 54893 148 +15517 287 54914 121 +40105 344 54953 69 +40515 501 54954 148 +40311 263 54966 149 +39856 405 54977 66 +19966 149 54997 56 +4565 227 55035 105 +4346 393 55054 122 +28936 453 55081 116 +29155 179 55099 94 +3110 148 55136 98 +17717 285 55161 80 +17498 138 55191 81 +18006 331 55192 109 +17807 500 55193 128 +17834 403 55204 60 +17403 486 55225 73 +26035 423 55243 96 +38139 273 55259 71 +36321 260 55270 93 +6461 488 55271 90 +22666 211 55306 144 +22590 281 55317 133 +31017 480 55330 99 +29700 251 55346 87 +30065 502 55371 69 +28023 267 55396 106 +27646 374 55428 88 +27553 503 55429 81 +14800 469 55446 81 +18575 280 55464 123 +18465 606 55465 77 +18319 330 55488 109 +18892 371 55520 118 +18555 507 55554 83 +7397 192 55578 108 +7249 385 55595 52 +7526 294 55632 116 +7154 395 55670 86 +5580 196 55708 97 +21589 442 55744 117 +30073 176 55772 118 +35948 543 55797 64 +11500 1017 55798 99 +11229 421 55817 129 +11169 383 55837 118 +39280 382 55838 137 +39308 200 55839 125 +37919 421 55871 128 +29698 317 55882 82 +3150 162 55883 127 +1349 433 55903 96 +18929 382 55920 130 +23722 235 55946 119 +23667 153 55965 111 +20842 428 55993 136 +20550 414 55994 133 +20589 276 55995 100 +20661 440 55996 70 +20910 221 56032 99 +20695 300 56055 69 +26914 472 56056 97 +29079 896 56095 139 +15718 245 56134 173 +28915 178 56166 80 +1121 356 56167 68 +13784 383 56186 115 +13372 307 56187 104 +7307 327 56188 86 +7762 200 56215 77 +18898 1536 56254 55 +25696 298 56266 151 +25863 318 56289 131 +17491 148 56319 52 +30742 146 56332 66 +35255 371 56350 62 +36915 252 56351 90 +34133 178 56387 72 +34935 170 56406 111 +34888 440 56407 106 +35059 362 56419 55 +38994 249 56420 138 +38900 238 56454 129 +27681 304 56491 50 +28021 213 56492 130 +27672 493 56493 129 +16612 213 56518 127 +10362 412 56535 127 +7599 192 56552 59 +37024 480 56553 137 +37220 1032 56576 79 +37210 358 56611 77 +37234 468 56632 140 +36916 407 56633 147 +37389 502 56670 122 +36761 176 56685 89 +36945 203 56702 144 +36729 267 56722 91 +39230 490 56746 99 +27978 409 56756 84 +27989 744 56791 54 +27968 471 56823 96 +28129 382 56860 61 +36306 382 56872 70 +24593 401 56902 112 +24687 173 56935 145 +25231 356 56971 96 +17474 268 56986 140 +7220 160 57009 142 +26988 260 57043 122 +26850 464 57082 61 +20668 482 57111 123 +20712 193 57129 129 +20979 148 57130 101 +17826 594 57142 145 +17619 184 57172 284 +3173 898 57190 136 +13554 464 57206 98 +13520 134 57220 72 +2384 338 57221 112 +15608 144 57237 78 +15419 257 57259 104 +15423 369 57279 87 +16702 487 57280 83 +16763 365 57297 119 +16742 220 57316 99 +6484 304 57338 69 +6803 168 57352 125 +154 333 57382 146 +396 173 57406 99 +40065 425 57431 128 +40082 179 57465 81 +40174 383 57466 103 +40021 292 57496 119 +40582 236 57497 66 +40268 493 57527 109 +40279 171 57559 83 +14424 263 57586 135 +6450 399 57599 131 +20907 335 57600 66 +5622 190 57627 108 +5403 478 57628 86 +9656 357 57644 68 +26685 508 57664 111 +23680 501 57687 111 +23772 216 57720 50 +23664 253 57758 77 +23953 231 57785 114 +4464 423 57786 91 +4398 432 57818 140 +23036 145 57828 129 +22811 177 57857 50 +22969 130 57877 141 +30811 502 57878 81 +14436 486 57901 83 +27775 375 57917 124 +27585 359 57918 108 +27432 317 57942 65 +28193 281 57943 105 +1249 372 57965 98 +24800 1604 58002 67 +24783 166 58037 185 +33954 301 58038 83 +10642 138 58059 125 +10605 319 58060 140 +10787 954 58061 104 +36035 342 58091 139 +36155 287 58103 52 +35870 240 58113 57 +16692 399 58126 83 +1466 1275 58161 116 +28002 202 58198 201 +20716 253 58199 68 +16582 475 58234 56 +16718 478 58246 61 +24635 408 58277 73 +24725 1023 58309 105 +13354 197 58327 220 +13578 152 58328 144 +13277 353 58364 69 +13846 708 58365 118 +13783 292 58394 250 +25605 306 58424 109 +2114 489 58434 84 +8567 263 58444 126 +16525 204 58445 52 +39235 578 58481 99 +17709 651 58482 150 +17970 241 58483 164 +36130 416 58508 121 +2079 950 58543 117 +2284 159 58555 107 +34259 286 58584 130 +24800 236 58621 77 +10669 290 58622 140 +10324 954 58646 77 +24848 269 58672 174 +24793 254 58696 57 +24883 321 58708 54 +5412 366 58733 135 +11354 181 58764 110 +20767 334 58798 87 +20848 329 58822 68 +20621 158 58848 78 +19638 472 58871 59 +1149 205 58886 54 +35107 409 58887 128 +33917 512 58902 142 +16475 302 58903 60 +29809 365 58926 124 +29598 412 58945 134 +38374 397 58946 135 +38535 214 58959 139 +39069 668 58960 123 +16477 221 58970 188 +16688 153 58986 58 +34233 441 59017 67 +1130 164 59044 54 +1432 372 59060 124 +960 132 59075 63 +1537 266 59090 66 +27963 494 59110 77 +28031 448 59129 71 +19513 510 59144 51 +19603 340 59159 136 +19465 402 59169 133 +22925 480 59179 137 +20 291 59196 90 +24982 225 59197 59 +40056 359 59212 98 +1516 276 59234 140 +1316 1119 59267 128 +1126 254 59305 210 +13820 431 59317 142 +34028 196 59338 104 +34162 260 59362 126 +7192 158 59379 134 +7336 243 59417 69 +37043 511 59433 116 +37262 304 59455 101 +263 354 59465 100 +37941 350 59466 75 +11672 508 59483 74 +40253 224 59499 65 +6152 202 59518 114 +25698 584 59552 86 +16502 413 59553 87 +2098 229 59578 130 +2337 350 59579 51 +5161 332 59604 90 +5504 447 59605 119 +38086 392 59606 138 +19929 136 59607 67 +19803 453 59621 62 +20058 235 59638 79 +11306 1002 59639 95 +40220 322 59672 235 +30123 141 59703 89 +2545 427 59704 134 +2135 488 59705 117 +33808 162 59715 129 +34130 477 59739 117 +34363 194 59768 114 +2421 190 59800 101 +2060 564 59828 103 +9442 480 59829 242 +31934 464 59830 116 +31618 260 59867 135 +73 152 59893 65 +4221 491 59918 71 +4739 369 59942 116 +4285 477 59943 90 +435 429 59944 63 +318 355 59965 112 +397 448 59994 113 +2416 415 60019 104 +9267 258 60052 66 +9461 1431 60065 96 +9556 345 60098 183 +36891 495 60119 126 +37043 355 60133 92 +37099 329 60134 93 +28005 462 60172 73 +27898 199 60173 76 +27554 620 60190 70 +24735 353 60221 126 +25103 319 60248 88 +36127 176 60280 50 +36263 181 60297 71 +28837 352 60310 64 +22 262 60349 66 +118 776 60364 111 +59 420 60392 205 +197 363 60430 97 +286 325 60431 117 +27769 128 60432 78 +38296 412 60433 131 +39414 222 60447 93 +39239 285 60448 67 +2422 255 60477 93 +2243 415 60512 105 +2416 208 60550 148 +3380 279 60565 135 +17429 373 60580 122 +11595 142 60603 134 +19494 347 60616 148 +39203 453 60649 109 +19572 206 60668 52 +29828 422 60669 113 +30099 409 60702 112 +30006 341 60726 76 +14780 344 60754 97 +25987 202 60755 75 +11534 296 60784 100 +11082 348 60785 52 +11592 393 60819 62 +11728 276 60858 83 +11329 433 60897 67 +14587 493 60909 128 +10313 397 60910 122 +26032 487 60946 69 +25926 379 60947 105 +6441 421 60981 114 +9597 251 60996 121 +9473 399 61019 60 +9609 377 61037 75 +13774 996 61072 64 +13575 323 61110 94 +13410 161 61121 137 +9535 257 61122 91 +9169 459 61146 74 +27744 171 61161 106 +9252 485 61193 59 +30162 964 61228 63 +29088 1108 61229 80 +7668 381 61257 181 +7193 430 61273 54 +7526 166 61274 67 +7790 137 61275 73 +32245 1544 61306 91 +30138 428 61338 181 +24647 257 61372 95 +17903 458 61384 71 +32233 270 61422 130 +17843 267 61448 56 +13485 457 61481 84 +13867 249 61503 143 +13588 776 61527 114 +5339 230 61528 95 +8548 331 61550 103 +40016 145 61551 111 +39901 347 61566 141 +40318 336 61567 145 +7192 193 61598 61 +7303 210 61635 148 +29974 327 61646 71 +28854 312 61683 80 +28659 998 61705 79 +37205 280 61721 129 +37048 209 61745 108 +36951 160 61783 52 +40 386 61816 145 +17570 380 61817 59 +17714 468 61855 80 +17860 1872 61888 136 +28918 505 61909 88 +35219 390 61947 107 +22645 280 61983 113 +1263 511 61997 101 +1047 439 62026 126 +1279 212 62058 132 +10284 176 62083 55 +5501 142 62100 79 +24971 382 62101 61 +35942 254 62136 79 +441 250 62165 119 +6456 247 62166 97 +6753 411 62176 96 +23952 400 62202 119 +39109 267 62221 128 +29852 237 62222 106 +14499 151 62240 100 +23857 447 62255 116 +24110 421 62256 85 +24058 151 62257 77 +4417 1012 62271 90 +4346 304 62290 121 +4490 384 62301 138 +4605 272 62325 82 +11620 500 62352 133 +28149 197 62367 116 +5125 446 62368 119 +5345 306 62383 96 +5310 419 62396 104 +34204 434 62434 125 +34397 487 62435 57 +1182 362 62464 96 +37299 262 62476 138 +31117 189 62510 99 +30625 432 62540 99 +10334 201 62579 138 +10564 481 62613 97 +10613 1338 62636 132 +13752 379 62656 182 +34085 208 62672 50 +34375 240 62700 85 +8445 214 62734 97 +8862 268 62752 92 +28798 161 62768 70 +22758 221 62805 98 +22795 277 62843 133 +20618 792 62881 93 +38099 403 62902 225 +392 203 62939 89 +102 356 62963 52 +9708 306 62964 69 +9452 272 62986 125 +20934 242 63011 91 +21962 686 63038 91 +24880 380 63068 281 +7511 754 63085 83 +19883 304 63102 87 +19873 169 63118 86 +19725 189 63119 130 +18869 321 63120 103 +5139 241 63144 79 +29728 176 63169 116 +34275 412 63182 90 +22836 1335 63207 107 +22798 362 63220 248 +24978 318 63249 116 +24396 424 63286 88 +25675 354 63321 75 +35967 326 63343 108 +2104 337 63370 90 +36253 297 63407 111 +35616 242 63429 51 +36566 496 63430 99 +27826 231 63431 55 +27686 280 63462 99 +494 217 63463 111 +281 291 63473 117 +436 506 63508 109 +44 433 63533 92 +15489 296 63544 115 +8445 202 63578 119 +40241 544 63579 101 +22545 480 63600 177 +31950 156 63621 53 +32054 154 63643 108 +8311 413 63644 56 +8370 836 63679 54 +6585 319 63696 130 +29183 372 63708 89 +25825 175 63735 141 +26042 328 63764 145 +25884 242 63775 99 +26229 374 63776 61 +25857 325 63800 62 +38077 506 63830 81 +38122 226 63831 95 +22942 469 63865 92 +23111 188 63882 146 +23032 162 63916 72 +6557 475 63955 134 +29840 327 63968 140 +18448 1888 63999 80 +18892 748 64021 135 +18684 325 64060 129 +5630 173 64072 125 +16449 310 64097 66 +16656 442 64120 85 +16284 341 64121 63 +16391 418 64136 67 +16279 180 64173 136 +27006 180 64189 124 +13364 224 64205 68 +35270 469 64225 79 +35121 256 64247 53 +36919 488 64271 120 +250 402 64295 83 +48 532 64306 104 +1158 296 64344 122 +21702 473 64345 94 +21763 245 64374 111 +32910 456 64407 79 +29992 423 64408 98 +1116 133 64436 93 +14749 390 64459 89 +35979 444 64460 67 +10731 259 64484 64 +31873 148 64523 65 +32411 416 64545 81 +26982 388 64546 66 +26949 348 64570 99 +30935 148 64598 59 +7574 137 64622 107 +34924 214 64638 110 +34941 1772 64674 148 +21958 507 64708 199 +10342 285 64740 105 +33830 428 64757 78 +33954 148 64758 59 +19694 302 64793 104 +19939 918 64832 53 +4134 352 64848 145 +3147 331 64869 60 +31920 156 64883 118 +2533 260 64915 146 +2560 499 64949 126 +9471 354 64978 86 +40376 309 65012 115 +19718 277 65027 105 +19752 291 65028 118 +4357 238 65058 91 +109 309 65087 59 +249 406 65125 125 +34283 314 65126 149 +27097 235 65153 69 +32931 483 65174 92 +33033 313 65188 126 +13721 462 65212 56 +13781 139 65241 100 +18757 466 65262 112 +10397 483 65263 149 +25932 305 65274 120 +26012 473 65275 98 +38928 501 65294 77 +31880 1233 65322 59 +13557 426 65323 143 +29129 357 65360 131 +28848 228 65387 135 +3156 467 65421 94 +3435 214 65446 101 +32102 269 65447 83 +21639 432 65465 99 +20614 467 65481 116 +3544 245 65493 147 +38397 300 65494 92 +38546 696 65507 110 +38075 1518 65523 226 +4599 294 65562 180 +38030 355 65585 104 +38116 390 65601 50 +17664 288 65627 86 +17746 207 65662 147 +20951 202 65663 100 +13711 196 65664 81 +37276 1776 65665 61 +36926 259 65697 214 +37169 380 65733 121 +9344 387 65772 137 +9824 277 65773 90 +21648 376 65786 149 +15518 372 65787 113 +15191 438 65788 143 +15377 290 65799 116 +37058 340 65816 144 +37107 318 65850 76 +35243 228 65880 139 +37325 449 65896 83 +37543 467 65915 107 +18811 306 65943 89 +18711 439 65980 118 +7330 424 65981 65 +7803 401 66003 106 +7762 287 66034 133 +18767 199 66060 60 +18508 376 66088 115 +18917 231 66089 80 +4104 1032 66115 85 +4075 329 66133 157 +22804 319 66150 94 +22873 141 66151 135 +12605 1784 66169 53 +12651 209 66182 124 +12362 142 66192 84 +40254 133 66222 80 +39908 758 66237 103 +39294 488 66259 187 +39307 327 66272 105 +31866 329 66305 70 +6455 155 66306 122 +6571 199 66338 145 +32985 370 66372 92 +32969 1191 66411 57 +22975 386 66412 179 +22648 380 66432 137 +33125 333 66450 85 +23716 486 66468 73 +13779 150 66478 115 +12603 491 66516 124 +12558 498 66517 95 +36220 151 66529 113 +34082 456 66530 118 +33646 340 66558 126 +31169 218 66587 130 +30628 359 66612 92 +5327 387 66647 127 +21785 443 66672 126 +20590 145 66696 74 +34282 353 66718 61 +6611 609 66719 85 +6195 232 66741 88 +6454 171 66742 88 +6538 443 66768 126 +11645 481 66799 136 +22660 501 66800 73 +4163 265 66801 127 +5493 463 66835 124 +31860 291 66845 100 +33058 501 66869 91 +1393 441 66906 98 +40195 465 66907 141 +27745 398 66917 65 +27708 305 66935 130 +29993 169 66962 139 +29834 379 66997 75 +9624 212 66998 96 +20955 339 67027 58 +35862 339 67063 98 +25606 299 67074 115 +18541 434 67075 71 +31970 472 67091 101 +31901 277 67101 119 +34234 440 67140 104 +21755 508 67151 123 +21623 910 67152 111 +21734 301 67190 115 +21691 266 67227 73 +10737 505 67244 122 +6627 215 67272 51 +40101 291 67288 111 +40566 338 67289 137 +40148 234 67299 108 +37302 194 67330 124 +3334 211 67342 70 +21920 215 67343 62 +20682 250 67367 87 +1454 163 67368 68 +1074 378 67392 112 +961 909 67393 99 +23601 161 67420 223 +33105 501 67453 110 +32783 247 67490 91 +15415 300 67508 60 +24580 494 67509 99 +12594 137 67526 147 +19852 238 67555 91 +4115 342 67578 113 +18876 425 67579 59 +3409 338 67591 80 +2402 389 67592 63 +3533 139 67623 71 +28100 188 67656 119 +502 1014 67657 136 +187 295 67682 150 +8343 153 67692 81 +8347 499 67714 97 +3394 266 67744 136 +37177 468 67776 132 +38918 231 67777 53 +39323 199 67808 98 +39068 478 67828 120 +38869 399 67857 126 +30102 304 67886 50 +10332 372 67913 116 +19673 505 67943 101 +19573 132 67960 85 +23711 234 67995 52 +24213 320 68030 88 +33234 493 68063 115 +33021 215 68079 148 +24985 406 68098 67 +24900 179 68135 99 +24638 204 68136 130 +24682 268 68148 141 +20653 236 68174 112 +20558 239 68207 65 +20642 338 68229 145 +5295 279 68256 59 +33165 143 68272 104 +37133 209 68273 81 +37364 436 68298 114 +37071 257 68319 50 +18887 437 68350 64 +10699 299 68379 139 +27781 158 68401 116 +27855 316 68402 148 +7481 476 68419 111 +7517 150 68420 93 +7774 307 68444 138 +16470 1266 68456 61 +17472 958 68457 144 +17506 330 68495 139 +17576 192 68529 91 +17555 245 68554 89 +17545 483 68568 117 +16461 443 68581 113 +6368 300 68593 118 +30141 307 68594 64 +25620 492 68622 129 +18943 288 68646 111 +18959 143 68676 108 +3244 824 68703 112 +3208 213 68739 180 +3194 320 68755 136 +3306 301 68793 117 +18569 373 68812 91 +18525 131 68848 75 +32995 198 68875 107 +33065 288 68907 108 +11383 142 68908 125 +2346 472 68937 144 +6397 414 68955 79 +6482 252 68990 63 +30090 247 68991 81 +34817 229 69011 94 +28076 482 69026 76 +28275 406 69027 56 +27936 179 69046 138 +6202 237 69047 141 +20696 639 69048 87 +20980 373 69080 190 +8322 412 69113 70 +8609 303 69124 50 +36112 422 69137 105 +36084 484 69166 102 +35858 129 69185 125 +4169 278 69218 139 +3964 365 69235 85 +4311 314 69251 142 +4347 192 69266 141 +4237 285 69301 63 +36939 181 69334 92 +10577 459 69335 79 +39296 307 69374 75 +29756 407 69375 147 +20986 264 69412 117 +19727 321 69422 129 +19682 366 69450 64 +29170 369 69480 149 +15826 242 69501 67 +15638 393 69511 110 +15251 142 69550 106 +4605 352 69571 62 +4370 920 69609 80 +30833 308 69625 268 +31037 427 69650 109 +31205 432 69677 88 +31038 428 69693 93 +1488 307 69694 75 +952 433 69707 100 +1479 239 69721 50 +7261 358 69752 126 +8670 500 69786 57 +8553 366 69809 64 +8534 459 69840 55 +2065 536 69857 123 +15821 174 69885 148 +31864 413 69902 125 +8256 413 69935 96 +14415 477 69936 65 +14735 446 69969 149 +14809 281 70001 146 +25623 455 70029 84 +37009 314 70056 71 +23840 393 70094 107 +40123 132 70105 91 +28065 271 70142 89 +14352 442 70158 70 +34965 460 70169 116 +24861 168 70170 136 +24680 198 70187 76 +24043 335 70207 102 +5428 428 70228 92 +5355 481 70254 64 +5305 186 70292 86 +20945 199 70293 118 +20601 280 70330 125 +40266 410 70344 69 +37098 415 70363 105 +7220 369 70381 128 +11270 379 70382 67 +450 341 70406 67 +26730 405 70407 119 +26843 506 70446 108 +26697 287 70459 76 +26649 348 70480 102 +26752 290 70481 58 +14654 291 70503 131 +14291 158 70516 68 +23570 406 70533 126 +1357 464 70564 60 +1678 321 70565 132 +1681 180 70587 84 +1437 191 70617 52 +24629 498 70618 63 +10639 154 70646 126 +10573 588 70647 136 +10950 362 70670 138 +10539 288 70699 59 +9279 178 70710 121 +9755 358 70727 51 +15643 870 70742 78 +32881 492 70780 157 +32975 259 70817 95 +20975 177 70834 144 +9375 644 70835 132 +9590 453 70862 270 +9687 1173 70873 105 +9175 155 70895 255 +9741 324 70933 98 +9775 370 70954 103 +37370 1290 70955 96 +20563 238 70990 284 +21119 396 70991 109 +8238 311 71023 106 +8329 340 71038 80 +35958 365 71039 56 +40183 302 71049 63 +40056 374 71066 115 +20956 286 71083 65 +21019 434 71095 108 +20653 209 71133 62 +19826 482 71143 86 +19814 355 71174 98 +19997 596 71175 56 +11498 231 71192 127 +4577 219 71193 53 +21546 511 71225 81 +21829 320 71259 73 +21578 235 71286 88 +21819 259 71324 142 +21329 426 71325 128 +20665 180 71358 115 +19747 394 71386 100 +21715 278 71418 137 +39341 323 71445 86 +13506 315 71446 98 +13834 375 71484 65 +13822 245 71503 131 +36112 464 71535 63 +1082 234 71564 92 +1276 197 71589 132 +15474 193 71625 76 +7374 131 71645 78 +12668 143 71683 131 +8301 150 71700 60 +22991 268 71719 97 +24856 189 71720 98 +24673 235 71757 117 +12586 366 71793 96 +11773 1756 71810 81 +11458 220 71821 267 +11531 169 71840 114 +11024 162 71872 56 +11703 474 71907 124 +31083 220 71938 119 +30651 213 71950 51 +40412 238 71951 102 +30873 185 71952 121 +25072 380 71979 145 +23942 318 71993 141 +23958 145 72017 140 +23743 310 72049 103 +21894 408 72059 133 +21810 287 72060 101 +35993 317 72077 145 +36242 389 72089 148 +27875 130 72117 121 +7402 233 72152 108 +7375 253 72179 52 +35843 260 72180 109 +22535 257 72192 75 +1207 450 72193 87 +17649 495 72217 93 +17483 176 72247 51 +15410 149 72273 107 +32 395 72305 56 +127 444 72341 125 +304 488 72358 66 +0 415 72391 63 +39991 186 72411 84 +18578 221 72412 73 +35265 337 72447 101 +34975 167 72483 131 +22535 297 72484 148 +380 420 72501 141 +9560 299 72538 83 +18824 166 72577 87 +12564 502 72610 116 +12315 174 72633 64 +12572 415 72662 74 +32018 166 72694 121 +17636 696 72711 102 +34940 332 72735 128 +17416 238 72749 147 +17528 393 72768 79 +17616 488 72797 94 +17434 496 72816 63 +25871 457 72817 102 +26123 501 72818 105 +25350 354 72837 120 +26271 253 72872 79 +25431 421 72905 132 +29955 324 72918 129 +29945 276 72939 132 +29838 359 72940 94 +7539 231 72972 130 +7745 410 73009 109 +8360 131 73045 105 +34882 214 73046 89 +35187 161 73059 70 +39220 181 73084 52 +27861 407 73085 112 +23733 372 73097 105 +27784 149 73114 75 +9543 361 73143 121 +9503 239 73165 126 +9105 496 73166 66 +3517 736 73192 95 +21778 335 73224 205 +21650 336 73243 62 +22215 321 73244 127 +1509 341 73245 108 +9523 322 73266 59 +20581 358 73296 100 +20416 361 73319 105 +20707 1131 73320 88 +33213 348 73354 255 +23599 487 73365 141 +10424 371 73394 112 +10932 1341 73414 131 +19724 504 73424 132 +19498 504 73455 75 +19607 345 73489 141 +19446 175 73519 144 +19963 485 73520 90 +19887 1268 73531 78 +19283 421 73552 159 +28846 398 73571 81 +32873 277 73572 83 +24858 276 73587 73 +12739 479 73600 73 +12856 278 73601 136 +19895 466 73617 114 +29721 194 73618 98 +30218 405 73657 143 +30178 223 73675 73 +20809 394 73700 84 +26873 476 73715 86 +35946 219 73748 81 +6243 449 73766 91 +6416 252 73793 141 +19803 482 73813 69 +15363 443 73852 128 +15460 290 73865 60 +39338 387 73891 97 +14487 184 73907 51 +14222 445 73938 142 +14791 312 73969 85 +29054 175 73970 129 +28694 481 73971 141 +9694 1420 73982 94 +9473 247 74000 167 +16483 496 74001 69 +16440 334 74002 90 +16374 405 74003 81 +38367 469 74026 140 +7622 460 74057 124 +7438 310 74072 135 +32067 401 74095 71 +32172 341 74107 94 +32809 1944 74143 57 +33268 411 74170 256 +22530 428 74201 114 +29955 221 74235 148 +19543 480 74268 52 +19281 425 74285 78 +19367 1356 74313 133 +19819 287 74352 224 +13398 459 74388 76 +21543 509 74411 75 +22916 186 74433 135 +15861 450 74447 112 +15567 428 74448 98 +1357 313 74463 149 +28815 403 74494 78 +28565 147 74495 56 +6578 394 74509 66 +22935 139 74532 77 +22592 228 74558 126 +22428 143 74575 78 +18606 191 74606 122 +22675 291 74625 104 +16762 487 74654 127 +18836 1360 74682 54 +18903 266 74696 197 +12609 246 74708 59 +12155 421 74709 69 +38289 416 74729 89 +37943 172 74753 112 +37880 172 74754 76 +38119 410 74792 73 +26803 449 74819 141 +27091 441 74820 122 +26801 210 74846 61 +26716 379 74862 116 +38930 804 74863 72 +39433 287 74864 208 +35956 490 74865 148 +36309 436 74903 141 +5423 774 74918 89 +23991 467 74940 234 +31970 341 74941 103 +9356 365 74942 92 +9844 174 74961 87 +5255 292 74995 125 +5259 273 75010 105 +35085 479 75011 135 +34761 360 75035 78 +35031 366 75066 58 +19646 385 75091 102 +4573 1086 75105 86 +4286 266 75134 139 +4109 144 75169 82 +40027 394 75200 98 +39893 165 75217 76 +28884 471 75255 100 +22905 202 75256 69 +36018 266 75286 127 +1372 222 75305 77 +22764 450 75339 72 +23117 443 75340 78 +11586 473 75366 111 +23643 497 75391 138 +5320 385 75420 56 +5308 669 75438 140 +40191 262 75466 120 +30952 189 75483 95 +40400 375 75484 75 +40211 132 75485 94 +12651 240 75495 141 +16738 552 75523 73 +30991 408 75524 145 +27795 496 75539 75 +13754 274 75540 91 +10403 330 75555 97 +24738 471 75588 96 +24811 194 75604 108 +9696 327 75605 92 +2464 368 75606 73 +33928 372 75641 68 +33894 500 75642 142 +34089 549 75657 128 +33897 497 75668 263 +33663 272 75693 89 +34012 350 75703 93 +34065 415 75727 64 +35946 163 75761 81 +36297 216 75790 87 +35712 369 75817 101 +14462 426 75818 61 +29160 329 75849 93 +29274 485 75862 93 +11640 395 75877 103 +11308 788 75913 114 +21583 439 75935 93 +21753 460 75962 71 +21925 431 76000 79 +21903 308 76034 91 +27911 172 76035 113 +37304 354 76074 116 +23782 483 76094 141 +15847 500 76131 110 +15539 204 76163 93 +479 220 76189 127 +219 401 76200 149 +239 441 76219 92 +1481 352 76233 135 +40038 230 76234 144 +30124 166 76235 60 +29855 345 76264 74 +40204 444 76275 130 +7185 292 76302 72 +7469 183 76321 100 +39011 251 76334 99 +39412 225 76359 101 +30186 420 76360 119 +29716 362 76375 135 +29799 266 76376 50 +25949 260 76409 67 +25528 484 76410 136 +26028 242 76449 118 +12460 166 76461 97 +38377 467 76462 85 +38298 229 76488 98 +37746 274 76524 60 +38092 451 76559 132 +24663 362 76593 95 +24967 361 76626 86 +24699 507 76655 51 +13456 493 76683 134 +242 469 76716 55 +6586 368 76754 114 +17817 309 76781 77 +22828 491 76794 71 +22804 223 76814 110 +23078 300 76815 76 +33056 453 76816 119 +19701 507 76840 90 +10528 433 76856 120 +10094 334 76870 135 +10517 500 76909 76 +10625 948 76931 81 +36019 880 76932 118 +21980 247 76954 143 +21900 328 76992 85 +29749 275 77028 95 +16729 394 77056 134 +16522 439 77066 52 +29095 186 77077 77 +29011 684 77116 81 +28702 158 77147 173 +19962 395 77148 105 +2527 163 77164 106 +2563 154 77190 109 +33207 491 77203 147 +33157 179 77236 70 +23612 130 77263 138 +23717 479 77297 74 +40228 398 77310 84 +40460 456 77328 98 +14649 280 77356 64 +17707 449 77380 119 +17779 462 77418 62 +18002 300 77419 137 +17789 419 77456 97 +17881 390 77488 122 +21996 303 77519 109 +192 415 77544 127 +387 357 77580 83 +469 190 77612 79 +542 304 77638 105 +326 391 77677 55 +445 1936 77698 58 +4164 495 77708 258 +4701 130 77734 105 +17598 351 77760 92 +17544 469 77779 102 +17743 485 77807 141 +17178 131 77827 56 +31916 472 77858 66 +8444 505 77878 64 +8446 224 77917 56 +37080 211 77956 106 +36847 992 77985 54 +37427 354 78006 187 +37233 318 78007 100 +3486 143 78008 69 +3305 446 78041 57 +8627 410 78059 62 +19647 233 78093 136 +25754 455 78118 72 +26094 188 78142 65 +3337 144 78168 86 +9266 366 78199 56 +7484 259 78211 53 +12672 197 78230 130 +12556 312 78262 112 +12499 342 78298 59 +9367 471 78309 119 +9391 417 78310 144 +35215 872 78323 110 +24697 145 78357 159 +24731 394 78392 50 +9263 257 78393 66 +9752 388 78426 63 +25604 296 78427 63 +25845 381 78454 98 +26139 836 78490 73 +25611 451 78491 130 +9661 347 78510 71 +9470 428 78524 108 +9324 362 78555 121 +9524 506 78569 63 +38362 176 78570 67 +22859 190 78584 76 +11413 384 78585 116 +11300 399 78596 68 +33267 588 78597 126 +32938 1244 78598 169 +36288 222 78610 87 +35020 383 78649 79 +27873 313 78660 58 +18709 321 78676 128 +18430 294 78711 90 +18774 349 78732 64 +25883 470 78768 88 +29702 130 78785 122 +6374 418 78814 131 +18705 417 78848 55 +19034 465 78849 100 +18488 403 78873 92 +12361 1024 78885 71 +30082 397 78907 220 +29921 129 78929 131 +13391 468 78947 110 +13749 176 78961 128 +5200 606 78984 53 +29870 1416 79015 183 +10548 329 79044 166 +12550 453 79073 105 +12567 135 79105 98 +6420 244 79106 130 +16677 806 79119 72 +16585 391 79142 78 +16598 405 79172 100 +16504 162 79173 145 +2306 884 79184 116 +34278 387 79185 239 +34324 860 79214 128 +10338 316 79237 86 +23601 423 79256 107 +40273 212 79295 117 +4245 1724 79314 134 +4165 360 79330 120 +12660 378 79355 76 +35921 423 79391 128 +35915 409 79424 144 +14847 246 79440 90 +14639 333 79464 116 +27891 191 79482 97 +27740 470 79483 147 +27908 304 79507 80 +27952 472 79545 141 +28064 415 79582 59 +27702 153 79609 146 +29723 428 79632 140 +29993 411 79653 65 +30027 177 79682 71 +18752 261 79717 113 +8213 362 79754 121 +8274 477 79779 60 +38029 1398 79811 103 +38093 264 79812 133 +33998 420 79825 134 +34019 183 79826 116 +34097 208 79851 147 +34852 534 79880 55 +32860 311 79893 90 +32775 491 79907 93 +20865 139 79921 76 +26011 454 79944 80 +34185 382 79961 91 +14792 289 79962 146 +34292 153 79979 112 +33959 184 80007 88 +4368 385 80008 79 +11557 469 80021 133 +26731 1527 80049 73 +27105 321 80050 150 +26993 399 80080 108 +16794 861 80119 80 +39340 159 80148 242 +39332 435 80160 76 +29716 289 80161 92 +29949 254 80193 101 +29498 264 80223 98 +38341 314 80262 140 +38223 380 80279 129 +38228 458 80310 148 +18750 416 80328 80 +34246 247 80347 129 +26842 434 80383 100 +26424 362 80410 71 +26709 330 80411 92 +6204 262 80425 128 +2233 254 80426 109 +28926 504 80454 102 +14781 207 80484 52 +34879 439 80513 140 +35208 235 80550 96 +35901 130 80582 149 +10664 361 80599 54 +4578 398 80617 136 +4503 372 80641 149 +4200 292 80668 113 +4087 266 80669 90 +37084 440 80685 108 +36980 408 80710 137 +10688 434 80736 106 +39004 288 80767 68 +3490 503 80782 125 +360 395 80792 97 +17566 182 80817 139 +28088 320 80846 145 +11542 426 80877 64 +11527 1095 80908 56 +11727 253 80931 198 +11754 140 80947 147 +19957 353 80986 131 +31786 188 81018 147 +1406 256 81051 61 +1349 286 81052 120 +18739 216 81086 91 +38202 442 81119 56 +37192 383 81120 117 +3340 307 81156 113 +3402 365 81181 85 +36059 275 81217 52 +24850 134 81251 61 +19739 365 81252 110 +19594 470 81276 146 +25006 250 81304 108 +14703 1360 81331 148 +12311 168 81348 153 +11366 498 81349 126 +2559 391 81385 86 +38152 307 81418 138 +38291 492 81436 142 +38097 310 81437 142 +37942 399 81438 58 +34914 486 81459 71 +8413 416 81485 106 +8630 132 81521 52 +21950 139 81560 90 +21813 232 81570 98 +21913 161 81603 102 +29806 186 81635 90 +11613 353 81658 71 +11341 129 81690 123 +24894 365 81715 125 +11451 316 81747 147 +38086 198 81748 101 +35025 491 81772 91 +32234 474 81795 126 +31906 141 81818 116 +36985 459 81838 97 +34975 466 81877 61 +37136 187 81895 68 +26919 1960 81924 129 +26602 335 81950 138 +26748 451 81973 54 +26693 226 81986 52 +27165 238 82017 90 +26609 355 82041 95 +15581 139 82042 75 +15483 1299 82071 100 +24604 479 82072 224 +24675 445 82100 131 +24410 275 82110 107 +17444 426 82148 100 +17470 225 82171 132 +18046 360 82198 104 +17522 309 82232 86 +17747 450 82266 142 +8704 206 82286 118 +13561 273 82304 102 +39378 366 82331 98 +22917 421 82347 107 +17698 285 82357 110 +17596 308 82369 118 +17921 396 82370 52 +17476 357 82400 65 +32793 396 82410 97 +14380 460 82438 90 +14105 385 82477 103 +32220 400 82494 138 +38151 349 82518 68 +11386 558 82533 61 +19602 290 82568 193 +21911 426 82578 66 +21332 221 82579 84 +17562 207 82597 80 +17728 245 82629 73 +17447 375 82648 112 +8260 354 82664 74 +7207 293 82688 84 +8393 464 82703 62 +20874 221 82727 86 +20766 330 82747 82 +13601 438 82748 112 +33000 346 82775 149 +33002 449 82776 144 +23940 341 82799 78 +22686 411 82800 112 +22726 202 82817 149 +2266 325 82831 63 +11462 377 82841 74 +23008 441 82852 85 +22738 490 82853 142 +22653 263 82891 101 +32981 168 82914 50 +32722 211 82915 109 +33115 422 82946 87 +3099 192 82964 53 +3582 499 82965 105 +5154 393 82977 78 +35260 392 82978 90 +35296 472 82989 56 +34761 397 82990 149 +18634 167 83025 115 +19864 413 83055 66 +8598 508 83075 136 +8726 455 83076 112 +8394 1296 83098 99 +39369 512 83118 93 +35100 400 83149 104 +6521 363 83162 79 +30816 450 83192 125 +16800 182 83202 57 +14802 223 83239 122 +15073 131 83255 84 +14704 512 83287 143 +36262 190 83288 82 +36015 190 83306 112 +2402 246 83307 56 +2359 200 83329 113 +26041 153 83330 128 +8283 474 83369 119 +16566 356 83370 97 +36931 227 83371 51 +20909 480 83390 145 +24952 634 83400 56 +36878 412 83433 140 +20807 285 83467 57 +1039 469 83496 99 +24028 345 83514 135 +24198 494 83549 141 +26789 237 83566 54 +26972 313 83597 55 +1447 371 83612 97 +1256 170 83650 106 +1347 390 83674 144 +40249 284 83692 128 +40066 294 83731 100 +40042 312 83732 56 +40449 265 83733 86 +35313 249 83734 121 +35363 1184 83760 125 +35105 453 83761 106 +47 239 83800 90 +384 426 83825 96 +12749 403 83839 120 +16859 231 83877 84 +22872 1336 83894 92 +10648 1509 83909 128 +15763 423 83937 153 +40143 359 83966 71 +24793 568 83984 82 +353 195 84009 146 +36129 355 84021 119 +36019 154 84036 116 +36185 340 84050 140 +23870 390 84087 122 +23718 403 84111 61 +23655 253 84137 66 +27754 501 84175 78 +7424 504 84202 109 +4386 264 84241 68 +4413 494 84266 70 +12557 1041 84278 130 +12757 183 84308 122 +16598 143 84343 110 +2206 443 84344 68 +4529 924 84375 72 +34856 418 84376 128 +26108 218 84389 122 +38967 369 84424 76 +4479 298 84449 117 +4258 505 84471 97 +4173 790 84497 114 +4000 420 84512 167 +8593 189 84513 81 +19637 456 84542 108 +2506 294 84566 129 +2023 206 84598 114 +2377 305 84608 77 +10354 256 84641 123 +9303 190 84665 102 +29974 150 84693 87 +19525 326 84694 53 +4145 349 84730 60 +4248 305 84753 92 +6593 436 84781 75 +6374 772 84806 111 +31999 411 84807 157 +32222 224 84808 149 +31880 280 84837 140 +32124 398 84865 84 +32136 449 84885 99 +32327 391 84904 60 +32118 510 84916 75 +31913 496 84944 50 +32033 317 84975 89 +31983 226 84990 126 +32167 207 85027 68 +27847 472 85028 126 +8269 430 85043 106 +8604 283 85078 118 +8146 1494 85112 77 +8304 364 85113 193 +8783 462 85114 115 +12677 348 85126 147 +12384 1155 85141 69 +12476 401 85142 160 +12374 142 85167 116 +12602 356 85200 51 +12255 209 85201 54 +15527 402 85220 108 +15630 362 85245 99 +15739 272 85257 83 +15893 474 85258 114 +23702 411 85274 141 +25828 408 85299 142 +21532 489 85337 67 +36306 208 85353 69 +29183 461 85385 138 +22705 962 85401 100 +3139 437 85402 68 +3634 280 85430 81 +3323 208 85431 148 +3403 166 85442 105 +32918 282 85453 139 +32045 199 85454 95 +11594 222 85492 74 +11792 360 85507 114 +6210 331 85508 92 +13756 233 85544 79 +11301 485 85545 70 +11742 137 85558 125 +36342 192 85583 74 +36409 280 85610 86 +35837 292 85638 103 +4284 245 85672 81 +35898 323 85694 117 +19963 465 85715 103 +5172 300 85732 88 +5676 299 85756 98 +5168 183 85775 130 +2381 155 85803 98 +38999 140 85818 78 +16716 161 85834 112 +16678 169 85850 97 +3472 318 85878 101 +3707 191 85917 113 +3160 1119 85950 86 +24593 320 85963 161 +24867 135 85964 93 +24832 376 85998 62 +17840 145 85999 125 +17535 155 86000 102 +17839 432 86032 121 +33806 227 86057 77 +15706 418 86083 65 +15686 309 86113 80 +2112 186 86139 96 +2159 470 86151 96 +29890 484 86152 89 +29618 410 86182 84 +16646 239 86216 72 +16749 858 86217 112 +39329 191 86255 149 +39068 347 86270 119 +37928 439 86296 63 +2442 384 86313 50 +36915 387 86314 117 +40374 283 86325 133 +40019 484 86348 85 +40398 390 86369 144 +24954 388 86394 102 +2257 255 86420 83 +10412 142 86421 117 +10670 420 86440 94 +24933 249 86478 52 +24652 363 86505 53 +1478 225 86516 140 +1298 134 86528 136 +1242 204 86565 149 +193 467 86589 53 +2322 160 86610 50 +2570 489 86611 93 +4203 179 86622 146 +4707 306 86654 88 +10367 259 86688 67 +10918 481 86707 143 +27061 442 86708 134 +39213 182 86709 123 +20543 437 86736 69 +31230 1944 86763 110 +30889 254 86797 193 +30828 203 86813 136 +20751 438 86852 70 +38121 333 86853 91 +38300 155 86874 128 +38630 1389 86875 59 +37852 375 86911 108 +24856 340 86936 55 +9610 188 86965 122 +9340 353 86966 78 +9233 359 86978 144 +5202 403 86993 142 +5576 497 87017 132 +30930 394 87030 111 +31069 459 87050 130 +1140 133 87087 125 +1318 452 87088 53 +35952 199 87125 106 +14461 282 87141 93 +19712 291 87160 105 +10681 502 87198 89 +17635 216 87226 112 +32962 134 87262 121 +34174 153 87288 133 +13583 434 87301 83 +22586 419 87315 131 +29001 232 87331 134 +38378 327 87367 95 +37376 499 87399 58 +36939 158 87437 89 +37441 266 87464 58 +37102 289 87498 100 +36829 326 87517 124 +37144 499 87553 134 +36339 208 87585 65 +23977 663 87610 58 +23668 302 87624 100 +3123 401 87645 140 +18887 428 87646 138 +18529 410 87673 114 +1289 477 87703 70 +26836 226 87715 140 +26922 722 87754 50 +7545 176 87782 87 +16641 352 87814 99 +16791 179 87837 78 +34155 446 87857 111 +33892 201 87858 125 +38035 244 87870 110 +38466 348 87887 73 +38292 213 87900 127 +14357 320 87910 102 +14637 346 87946 69 +23671 435 87973 82 +23994 491 87993 117 +31815 396 87994 59 +31877 284 88005 50 +19702 429 88022 146 +29726 161 88057 136 +8352 219 88075 91 +13415 255 88087 97 +13314 482 88118 103 +36324 1136 88131 102 +36070 481 88161 104 +36100 1656 88175 105 +36115 143 88201 206 +25877 1209 88202 75 +25545 135 88203 219 +5522 334 88233 121 +281 147 88234 96 +23705 464 88255 144 +31107 295 88276 141 +31221 312 88286 141 +30851 483 88322 110 +30909 490 88323 134 +31014 453 88339 70 +39108 303 88374 121 +121 270 88375 94 +218 375 88389 100 +257 242 88390 96 +471 277 88391 54 +27948 420 88427 60 +27921 465 88451 133 +28207 486 88452 64 +28223 274 88485 122 +28248 1479 88495 136 +27962 254 88527 209 +1315 493 88547 85 +2460 380 88582 108 +9302 381 88608 115 +9411 480 88628 77 +6600 284 88660 99 +6509 244 88678 134 +6147 163 88679 110 +6271 171 88718 138 +25999 196 88733 75 +25962 244 88734 104 +239 198 88735 118 +10319 496 88747 130 +10516 153 88757 123 +12476 461 88775 137 +12813 394 88787 97 +12858 313 88799 72 +9518 394 88837 75 +28900 164 88875 62 +39991 367 88914 131 +39836 454 88937 75 +29960 162 88958 101 +29877 226 88959 123 +30107 200 88990 93 +32002 230 89015 83 +14447 507 89045 131 +14469 201 89079 63 +32121 351 89107 118 +2321 216 89139 132 +20830 474 89172 117 +20849 378 89173 123 +14697 211 89205 124 +3579 338 89206 76 +3658 215 89244 86 +31022 304 89256 93 +12378 494 89282 73 +441 353 89297 135 +39241 507 89322 71 +39177 151 89349 133 +26003 259 89350 121 +20635 1518 89367 116 +12390 309 89397 128 +34266 322 89435 137 +34529 389 89454 85 +35842 239 89482 98 +36211 325 89513 122 +15508 457 89530 84 +25954 206 89559 98 +11701 299 89594 100 +28784 178 89632 146 +28705 200 89645 102 +24005 142 89655 129 +19898 303 89688 64 +19689 484 89726 80 +19850 300 89727 92 +24613 404 89728 120 +24921 285 89762 117 +22648 278 89787 119 +32804 904 89788 83 +28878 500 89827 293 +40253 230 89828 54 +5592 484 89838 81 +5526 434 89839 136 +30104 270 89854 83 +29878 432 89855 65 +144 371 89894 67 +367 143 89905 78 +338 1484 89941 52 +127 229 89942 108 +11404 372 89969 106 +32070 200 89982 117 +31964 188 90017 116 +31928 576 90052 112 +34013 381 90083 160 +33892 331 90084 111 +24058 419 90119 90 +35040 409 90147 98 +14538 361 90163 138 +14600 157 90164 140 +14906 490 90198 86 +7407 394 90224 77 +26685 371 90225 125 +9445 392 90243 123 +9750 416 90244 83 +34022 288 90277 102 +18781 298 90311 55 +29796 185 90344 138 +33861 792 90365 149 +34102 390 90377 193 +34345 149 90412 116 +18639 348 90443 52 +16814 147 90478 70 +16678 576 90503 80 +32909 194 90504 89 +33206 452 90517 97 +21993 324 90542 109 +3242 496 90566 76 +24035 198 90580 60 +26682 323 90601 58 +7603 421 90637 146 +7613 201 90659 124 +28685 136 90675 103 +2381 406 90707 55 +10728 494 90708 125 +386 290 90709 122 +25916 298 90724 146 +2503 250 90748 105 +9339 260 90772 80 +15774 130 90804 69 +35087 147 90832 91 +19870 484 90833 92 +30972 421 90852 139 +39043 248 90868 131 +22588 133 90887 121 +22694 465 90919 149 +9483 393 90954 110 +9310 386 90974 59 +9329 498 91006 71 +4174 490 91031 51 +4278 204 91064 95 +4402 217 91099 95 +23862 636 91117 60 +23794 1468 91118 123 +34871 288 91142 226 +2086 282 91155 67 +2383 475 91174 85 +6596 1888 91210 75 +30913 485 91237 223 +39054 1323 91262 108 +8692 432 91285 167 +14535 218 91312 54 +14378 334 91313 64 +14319 416 91341 58 +3238 1386 91364 78 +3114 176 91383 167 +3036 145 91402 57 +3241 395 91415 109 +2996 436 91427 121 +26731 426 91450 75 +26714 470 91470 59 +32971 305 91493 101 +13346 498 91494 58 +38013 481 91495 130 +3120 495 91496 75 +3142 234 91524 65 +37213 348 91562 142 +37014 265 91572 54 +37307 449 91595 69 +21762 212 91634 77 +21894 167 91644 66 +17755 318 91668 92 +2451 222 91690 51 +8406 311 91720 69 +8460 475 91753 104 +1110 502 91765 117 +39992 218 91801 53 +40429 296 91826 111 +33267 258 91858 121 +32857 259 91885 117 +10347 203 91910 97 +29881 233 91931 105 +40439 444 91963 73 +34923 321 91973 133 +24853 238 91991 61 +5515 253 92016 122 +16595 433 92017 95 +24651 340 92056 145 +25127 329 92081 64 +24817 187 92110 138 +32839 411 92131 63 +10362 291 92142 83 +38120 485 92172 73 +38104 355 92197 118 +2451 479 92230 110 +1844 884 92265 66 +2547 201 92290 139 +25785 494 92325 72 +30138 390 92326 94 +29754 419 92327 79 +5523 153 92365 66 +32162 217 92392 106 +32798 199 92393 148 +378 439 92412 103 +745 407 92413 88 +0 497 92437 61 +32031 353 92451 127 +15605 572 92452 69 +30047 224 92480 104 +30084 294 92494 98 +26682 323 92523 82 +26596 143 92551 121 +30045 444 92552 107 +29887 199 92586 78 +25842 181 92604 96 +25944 406 92641 103 +27720 427 92667 56 +8333 378 92696 88 +8278 293 92711 89 +8473 407 92724 87 +8486 768 92754 123 +32045 496 92772 139 +30933 570 92811 59 +7423 292 92841 169 +7881 491 92866 115 +7162 227 92905 120 +3289 142 92923 68 +14805 365 92933 139 +14679 328 92964 128 +1463 232 92965 59 +14547 438 92977 119 +14297 152 93003 82 +14599 165 93042 92 +17888 234 93043 125 +25905 860 93079 70 +26022 269 93115 118 +38145 276 93147 107 +38371 444 93163 83 +19723 171 93192 146 +37164 154 93227 87 +21891 352 93244 80 +21884 135 93262 99 +21815 242 93281 89 +21728 167 93282 53 +21788 470 93313 104 +40214 169 93348 145 +40105 920 93349 70 +39895 401 93360 105 +40217 149 93383 83 +19590 331 93412 93 +19338 326 93426 139 +9647 339 93441 111 +28880 148 93466 107 +28831 273 93499 115 +20904 321 93532 96 +20883 452 93544 83 +20789 242 93572 94 +15633 142 93608 105 +15611 181 93620 67 +8380 209 93648 99 +25079 572 93685 76 +263 493 93700 98 +13490 303 93737 73 +27974 1515 93738 98 +27843 201 93772 193 +27962 197 93809 57 +27662 204 93822 50 +28188 433 93850 102 +27720 307 93870 145 +32940 512 93903 104 +12713 417 93904 123 +19502 280 93937 129 +40064 314 93955 86 +4357 272 93956 92 +21972 254 93985 55 +21672 174 94019 91 +6191 501 94031 147 +14637 342 94053 79 +29906 177 94073 137 +29897 1632 94105 110 +29532 141 94139 207 +34300 337 94177 141 +34454 231 94178 93 +37102 508 94189 133 +12630 384 94224 131 +12716 482 94225 140 +39054 404 94226 134 +39315 248 94262 106 +5364 161 94292 54 +36117 458 94293 118 +3560 491 94329 68 +19572 203 94358 102 +20025 213 94394 75 +25707 872 94417 115 +39416 149 94418 78 +20759 221 94440 103 +20497 350 94455 126 +25600 471 94479 95 +25749 161 94507 61 +4333 512 94527 65 +14801 160 94546 123 +14889 234 94573 124 +38385 269 94587 134 +38204 452 94588 147 +37846 252 94620 104 +38058 209 94621 116 +1417 296 94631 118 +1361 507 94651 68 +1185 469 94661 125 +29874 246 94682 75 +19723 433 94707 72 +20033 243 94717 133 +21633 380 94754 121 +30006 492 94755 118 +39068 154 94756 100 +39164 265 94757 72 +39099 361 94779 91 +39411 204 94807 88 +17621 254 94840 51 +17428 278 94864 73 +2122 279 94880 74 +12647 388 94891 133 +20920 1844 94918 145 +17772 140 94957 155 +6178 486 94991 138 +15593 267 95003 56 +23942 852 95042 104 +23649 268 95066 176 +34839 155 95083 114 +14435 148 95112 122 +21549 442 95134 107 +21563 250 95152 131 +39406 222 95181 141 +39105 451 95182 121 +12360 144 95207 130 +14655 229 95208 109 +14692 327 95240 130 +14543 256 95254 121 +14275 212 95272 139 +7617 392 95295 97 +7216 251 95329 99 +18877 440 95330 91 +26749 184 95331 68 +31061 1524 95332 106 +30904 301 95333 109 +30941 467 95361 79 +33031 345 95385 84 +40206 337 95422 103 +40059 302 95446 90 +8232 145 95447 111 +28005 403 95459 140 +20889 1516 95470 91 +36892 480 95485 254 +31837 195 95506 68 +10550 444 95507 121 +10421 580 95508 128 +33151 431 95543 76 +33048 339 95554 120 +32982 342 95588 91 +32856 198 95605 117 +34236 288 95624 66 +34418 1624 95652 123 +27123 313 95653 103 +26971 292 95664 54 +26833 459 95665 103 +9476 1419 95688 81 +9676 445 95701 92 +9635 481 95720 117 +9708 227 95758 115 +9142 379 95773 116 +19860 209 95808 130 +12392 485 95831 138 +36902 483 95857 108 +11481 378 95889 145 +28863 321 95919 76 +11401 510 95957 67 +5199 375 95958 99 +5067 506 95972 118 +5484 201 95989 123 +10680 202 96004 66 +431 393 96014 136 +25679 356 96049 107 +26273 133 96067 136 +28786 281 96082 115 +32205 802 96121 130 +31650 245 96122 254 +31994 406 96148 109 +32378 299 96168 119 +32230 239 96203 127 +32081 159 96204 83 +32001 194 96236 147 +32045 297 96258 50 +31757 184 96259 60 +11587 132 96276 84 +7212 410 96308 144 +5298 765 96334 106 +5684 446 96361 250 +5526 430 96385 97 +5059 329 96419 149 +5556 246 96446 96 +5503 198 96447 83 +34181 365 96474 132 +33948 376 96491 148 +29991 213 96521 52 +30002 424 96553 92 +16635 207 96554 118 +16887 295 96589 58 +31142 416 96613 135 +5593 330 96614 95 +5025 461 96635 104 +38026 450 96636 119 +38583 228 96646 76 +37715 331 96669 74 +20650 451 96700 103 +20504 422 96724 69 +36990 252 96744 87 +37449 324 96755 81 +37426 447 96756 99 +20541 389 96784 57 +492 377 96797 115 +7310 684 96807 93 +10268 141 96831 146 +10296 429 96832 68 +10171 472 96847 61 +30944 249 96848 137 +38316 1076 96887 109 +38549 276 96919 256 +38120 1132 96938 67 +38170 178 96970 240 +37788 451 96996 114 +37810 505 97009 74 +35055 266 97029 124 +391 431 97053 78 +205 681 97066 149 +234 454 97086 82 +340 1018 97087 66 +322 203 97119 136 +545 175 97120 98 +28095 315 97138 100 +27989 434 97166 71 +10646 316 97180 103 +30944 357 97181 109 +15651 402 97209 87 +15777 161 97225 66 +15780 348 97226 60 +6587 165 97236 84 +6092 225 97269 64 +34266 496 97270 52 +34069 469 97271 93 +11539 199 97300 99 +11539 128 97338 137 +34062 430 97371 145 +34139 412 97405 56 +33945 265 97439 97 +30740 432 97450 139 +28764 464 97451 104 +12461 398 97482 96 +18581 463 97508 96 +30837 350 97537 87 +24725 347 97571 109 +24977 474 97598 83 +30056 386 97613 84 +30101 215 97650 127 +6239 174 97675 110 +6698 327 97676 90 +23771 186 97677 95 +23613 168 97713 113 +23842 380 97714 120 +75 206 97728 76 +37254 134 97764 128 +249 471 97788 114 +226 156 97810 92 +203 443 97846 63 +185 434 97859 110 +37069 214 97879 92 +37094 481 97918 148 +37616 1014 97928 51 +37233 203 97963 176 +37105 364 97987 101 +12601 320 97988 130 +24626 424 98005 117 +24979 262 98006 125 +24966 181 98040 145 +11505 273 98064 142 +11498 438 98078 85 +37355 413 98079 72 +14843 239 98113 74 +29793 164 98149 133 +30109 342 98162 59 +29820 188 98173 135 +29879 356 98200 148 +5216 185 98224 144 +4976 426 98242 134 +5497 158 98277 110 +5686 1648 98310 118 +5259 476 98333 198 +5309 1456 98343 72 +5448 458 98360 146 +9394 341 98376 108 +25796 177 98402 84 +20925 404 98403 61 +20570 507 98437 65 +20909 1377 98438 88 +10621 262 98448 150 +1375 512 98468 53 +30996 378 98480 58 +21908 285 98481 75 +40325 505 98504 126 +20804 199 98505 100 +20716 148 98531 52 +20872 495 98541 61 +8219 485 98567 51 +5537 844 98595 131 +5420 379 98614 75 +5286 141 98641 130 +5582 1772 98655 56 +3249 150 98694 162 +22529 395 98695 107 +22769 198 98716 122 +23040 246 98735 118 +36262 363 98764 137 +36205 704 98765 55 +35894 254 98766 268 +36083 438 98794 149 +29985 470 98830 131 +29591 436 98856 52 +30891 196 98882 139 +31046 392 98883 128 +30799 162 98897 99 +30834 470 98920 149 +31125 225 98956 96 +16540 419 98957 118 +25996 570 98958 116 +25704 297 98959 243 +31913 417 98970 90 +34837 189 99000 114 +19896 379 99001 140 +237 264 99023 60 +260 404 99024 148 +323 373 99046 127 +27870 172 99061 114 +38400 219 99098 89 +35939 380 99124 119 +19821 227 99125 134 +23564 457 99159 142 +37970 425 99169 114 +37311 246 99188 84 +11327 368 99200 83 +11427 370 99235 112 +11517 143 99248 108 +11314 1924 99261 76 +40406 186 99292 168 +11298 280 99293 121 +17562 380 99310 104 +17454 395 99311 53 +16457 273 99312 123 +36997 330 99351 97 +25054 1224 99388 56 +34266 258 99399 123 +1188 342 99400 62 +16786 342 99430 131 +1196 233 99431 126 +19693 187 99443 136 +19602 367 99474 85 +25808 1185 99488 68 +14782 339 99523 201 +3262 290 99524 83 +3299 503 99536 128 +35925 298 99566 140 +36014 171 99567 62 +35748 507 99594 143 +2368 182 99622 122 +2036 138 99645 115 +2184 232 99670 117 +2244 192 99671 136 +2447 144 99708 130 +2364 205 99725 108 +2292 321 99749 80 +2467 354 99764 97 +2362 274 99793 81 +13714 319 99818 127 +35 473 99837 126 +473 497 99864 58 +485 282 99893 74 +631 386 99894 107 +265 448 99913 62 +18889 181 99943 110 +40359 403 99954 129 +39889 429 99982 69 +16884 283 100009 96 +8504 452 100010 111 +8651 435 100040 50 +4310 337 100041 63 +3111 1496 100042 122 +3188 442 100057 102 +26908 245 100079 132 +13692 166 100111 129 +3531 328 100141 146 +9698 330 100142 121 +27010 1029 100158 91 +17711 231 100168 140 +17839 375 100195 147 +3242 187 100222 126 +11576 177 100261 128 +5499 188 100290 55 +15427 305 100319 129 +30185 365 100330 55 +30071 309 100331 132 +29863 444 100341 52 +36999 457 100342 71 +28684 463 100363 86 +2228 246 100364 143 +8461 163 100388 59 +7437 411 100423 56 +7157 267 100457 64 +7603 382 100471 64 +30032 129 100493 76 +30150 295 100523 72 +29729 375 100558 131 +16390 389 100587 123 +18792 372 100605 78 +18827 434 100620 66 +7264 1324 100633 111 +295 437 100671 216 +30845 418 100700 147 +9665 284 100735 59 +2373 378 100764 142 +39412 457 100784 87 +13452 307 100815 57 +28822 305 100847 69 +29096 496 100876 54 +28869 215 100895 132 +29107 174 100930 106 +1278 444 100957 147 +29790 512 100991 87 +17744 222 101012 111 +24043 343 101013 75 +24075 425 101043 57 +29735 162 101044 142 +30046 266 101061 134 +29828 494 101062 116 +34148 175 101095 85 +34110 428 101131 100 +35294 292 101165 84 +5400 169 101178 108 +30029 248 101211 117 +29566 211 101223 70 +30364 329 101252 113 +3519 287 101271 127 +3007 495 101272 84 +3699 184 101273 109 +9478 129 101292 140 +9781 370 101321 59 +17746 198 101336 139 +10350 427 101337 148 +31049 325 101372 126 +31267 403 101373 111 +28673 248 101374 77 +29013 418 101398 115 +29199 348 101422 147 +28873 226 101435 86 +32187 456 101468 80 +31955 1712 101480 92 +27815 286 101519 239 +14658 355 101540 79 +7529 391 101575 68 +24936 424 101610 76 +19582 356 101626 74 +8297 390 101640 129 +38294 758 101652 64 +38273 417 101680 140 +38036 296 101690 116 +6396 287 101729 112 +12677 364 101766 97 +1343 300 101783 103 +1283 224 101784 59 +28974 271 101810 135 +25849 363 101849 110 +17716 304 101850 135 +18042 477 101883 121 +10719 488 101919 136 +10432 260 101934 85 +11315 398 101957 94 +11455 246 101980 60 +8607 158 101996 116 +14705 454 102013 110 +24591 278 102028 53 +24818 378 102044 142 +36151 195 102080 93 +30024 473 102081 93 +26713 345 102114 57 +27072 505 102153 100 +26792 372 102168 112 +27071 231 102182 83 +27128 267 102217 116 +10686 308 102218 138 +10570 349 102219 106 +9509 395 102240 79 +6148 1016 102265 71 +22941 435 102275 144 +16688 728 102298 120 +37231 230 102311 91 +37509 475 102344 50 +31982 458 102345 54 +15629 636 102374 56 +17587 162 102411 260 +40019 197 102423 53 +33102 407 102436 124 +33164 181 102461 108 +33156 490 102499 91 +30142 202 102500 114 +30030 1132 102519 134 +30085 161 102520 177 +14485 503 102555 91 +14639 885 102556 133 +26026 176 102571 80 +25749 144 102605 128 +26202 134 102623 57 +33 397 102624 123 +330 195 102656 144 +558 446 102681 66 +27991 307 102712 95 +27995 146 102736 70 +3418 514 102737 66 +21978 488 102771 141 +21939 286 102806 65 +1180 377 102825 111 +23703 190 102861 85 +23578 437 102880 101 +26824 424 102894 149 +26860 198 102912 65 +27963 344 102937 81 +26802 403 102971 60 +28157 384 102972 101 +28145 246 103009 111 +27920 230 103024 72 +10305 466 103045 52 +26720 148 103067 143 +25996 393 103079 79 +5280 459 103096 75 +23677 398 103097 86 +23677 189 103111 104 +23395 329 103130 120 +23594 484 103162 109 +23531 706 103179 129 +23678 395 103216 82 +24912 311 103217 111 +24768 453 103240 62 +24721 349 103273 65 +24942 409 103296 93 +31980 320 103297 128 +10248 1932 103298 120 +10366 268 103322 209 +23787 341 103342 64 +19626 471 103369 98 +19714 206 103382 75 +9637 374 103401 55 +9843 364 103430 109 +9259 183 103443 70 +34023 294 103481 54 +19911 464 103492 145 +20010 648 103493 76 +19653 960 103526 131 +19389 416 103527 209 +20955 193 103528 136 +27800 233 103543 76 +27921 310 103576 132 +27796 277 103603 57 +27927 324 103632 119 +27970 204 103633 103 +5252 187 103645 145 +12380 414 103667 83 +12872 167 103668 59 +12162 460 103680 134 +34864 237 103700 143 +36122 257 103726 73 +379 472 103765 133 +356 312 103792 50 +11418 319 103823 122 +33265 204 103855 146 +32546 142 103885 116 +32926 260 103919 125 +12687 1084 103942 93 +12097 500 103943 144 +2215 418 103964 64 +2654 275 103981 142 +3221 338 104003 79 +8566 138 104013 149 +24788 292 104030 53 +40359 215 104064 62 +17624 274 104075 118 +40237 290 104076 62 +17456 410 104112 84 +37033 512 104113 102 +37331 225 104143 146 +4491 183 104144 64 +6648 303 104170 57 +6133 406 104208 116 +29978 349 104239 63 +29537 421 104278 84 +30145 138 104303 93 +20920 363 104318 103 +16605 377 104319 73 +13354 445 104320 109 +17454 411 104350 144 +21878 1461 104351 133 +23809 668 104352 109 +9229 273 104367 107 +9659 465 104380 137 +32185 191 104395 66 +14338 457 104396 143 +18842 473 104397 117 +18429 276 104409 100 +11323 281 104436 143 +27022 481 104447 64 +26576 447 104477 87 +15419 844 104514 142 +29033 239 104533 181 +40247 167 104567 123 +40613 503 104597 105 +29136 764 104610 56 +32974 164 104645 147 +36966 382 104664 64 +37115 315 104696 108 +37257 442 104729 88 +19792 337 104750 89 +30936 492 104773 149 +30194 381 104798 70 +243 434 104825 94 +180 386 104841 53 +37301 381 104857 81 +36819 416 104896 127 +5258 454 104897 122 +11729 325 104928 135 +11665 211 104945 135 +15857 314 104967 141 +31860 454 104998 109 +30076 276 105036 148 +37016 226 105047 68 +37334 168 105072 96 +14797 131 105073 62 +4104 393 105106 116 +22577 415 105137 117 +31049 242 105158 62 +31022 177 105159 125 +10675 482 105160 125 +40057 447 105161 50 +22788 287 105192 112 +28846 400 105202 142 +7411 170 105231 124 +5215 312 105256 95 +5349 142 105279 117 +22673 448 105302 92 +22615 134 105316 108 +22509 458 105345 117 +23033 327 105356 79 +22716 975 105392 144 +22874 267 105405 128 +22893 1932 105406 92 +35908 896 105407 85 +36057 504 105435 260 +21505 461 105436 56 +22142 173 105454 127 +19599 1256 105472 74 +40360 447 105492 109 +40303 326 105505 110 +361 128 105506 115 +27770 283 105517 101 +27952 148 105538 110 +16621 466 105539 100 +8405 453 105563 90 +8500 476 105564 107 +38010 198 105601 103 +38050 342 105602 50 +38426 192 105635 95 +9519 330 105671 107 +8249 167 105672 120 +26961 324 105686 61 +26971 158 105722 121 +27012 137 105749 65 +26854 510 105788 87 +26943 207 105802 134 +37362 489 105803 133 +24637 310 105804 103 +31927 190 105827 147 +35026 1095 105848 57 +35305 240 105849 75 +35891 487 105850 143 +20648 394 105851 145 +5244 448 105873 148 +16 1299 105909 128 +19668 166 105942 74 +27942 548 105960 124 +27909 486 105971 98 +27723 375 106004 138 +30994 315 106034 148 +31303 892 106035 83 +30880 483 106036 87 +27931 208 106053 87 +27847 233 106054 90 +27895 232 106067 140 +27749 308 106084 104 +16473 508 106109 127 +18488 320 106121 144 +18332 179 106159 145 +27074 128 106191 101 +27068 484 106205 126 +31212 422 106238 139 +18921 414 106269 123 +31079 302 106306 82 +2287 310 106307 53 +3082 311 106339 64 +22002 238 106358 55 +2245 387 106359 69 +16429 302 106374 113 +11264 175 106409 121 +5394 205 106430 127 +38984 347 106448 102 +39392 241 106477 73 +7170 286 106503 137 +32818 268 106538 80 +33378 451 106539 136 +33235 364 106566 51 +32639 231 106597 99 +26056 162 106631 127 +25634 211 106656 140 +30035 574 106668 77 +30275 177 106669 177 +29916 255 106697 112 +33244 501 106735 66 +35181 328 106736 133 +10607 148 106753 133 +13674 217 106778 58 +13365 391 106806 125 +8532 268 106807 85 +40279 212 106808 99 +26811 549 106843 134 +12303 1972 106877 138 +17549 248 106888 258 +17595 181 106917 146 +10721 404 106918 77 +10498 357 106953 132 +24727 1640 106967 54 +374 221 107000 141 +535 489 107036 75 +634 499 107037 112 +673 403 107066 114 +317 176 107090 115 +273 477 107124 134 +31783 203 107146 132 +38298 420 107175 57 +38178 393 107208 136 +38356 318 107237 135 +38391 337 107238 129 +38154 938 107266 78 +38178 502 107282 127 +37962 381 107317 127 +38254 352 107356 62 +28007 360 107380 86 +27755 410 107398 66 +28198 248 107411 92 +29125 311 107444 148 +28806 288 107469 116 +29018 199 107485 101 +6501 300 107507 114 +24733 329 107546 103 +17609 132 107577 119 +7417 249 107578 73 +7845 203 107598 100 +5347 762 107613 94 +31812 375 107647 273 +18524 1756 107680 98 +7430 438 107691 138 +30817 188 107721 129 +33830 240 107722 141 +4252 284 107759 80 +4377 288 107790 62 +33101 462 107824 147 +33159 169 107858 119 +32670 279 107859 107 +17908 365 107885 57 +25919 249 107905 77 +34956 1004 107935 67 +17792 410 107936 112 +17805 194 107950 133 +37129 152 107964 107 +37119 627 107996 130 +37074 316 108033 104 +37017 167 108068 123 +37093 423 108082 95 +24755 253 108096 95 +36199 431 108097 84 +36310 440 108109 127 +14668 379 108138 121 +14430 169 108139 144 +20848 435 108164 119 +20697 336 108165 65 +20557 263 108203 70 +32796 330 108221 147 +1525 334 108258 64 +8632 335 108289 50 +8331 984 108290 110 +37291 307 108309 143 +36853 336 108333 88 +36853 370 108343 135 +36956 423 108359 67 +28739 1302 108396 59 +29105 219 108424 126 +28976 714 108434 127 +19679 161 108446 178 +14588 163 108481 129 +14430 131 108482 95 +9366 211 108514 91 +9459 363 108534 52 +26092 181 108550 113 +26044 265 108551 149 +25632 404 108585 113 +5406 219 108606 126 +9601 472 108607 109 +9449 498 108620 141 +6324 251 108650 76 +6151 147 108687 99 +3422 128 108704 129 +2517 275 108735 51 +14822 480 108750 94 +13372 376 108789 72 +2202 357 108790 75 +2196 248 108813 94 +32093 347 108827 109 +23688 393 108828 130 +24740 512 108857 138 +10659 976 108889 64 +1472 370 108890 246 +24784 480 108923 109 +25057 279 108951 97 +20543 345 108977 126 +20928 414 108978 56 +20974 469 108979 133 +14813 594 109002 87 +26877 304 109003 77 +30172 705 109021 116 +5469 996 109055 198 +5535 435 109072 215 +5268 471 109092 85 +31855 244 109129 105 +36013 322 109130 116 +29764 1672 109162 110 +29906 744 109163 249 +30158 816 109193 229 +31157 230 109225 177 +31081 345 109256 67 +3461 291 109288 52 +34969 783 109319 102 +14449 324 109345 130 +20964 226 109346 59 +25025 393 109347 147 +24617 322 109377 95 +25745 427 109378 144 +26023 383 109401 108 +25759 486 109423 71 +25738 243 109435 112 +40093 1006 109453 89 +13402 339 109489 171 +13534 295 109490 95 +29133 383 109516 90 +9433 355 109547 113 +27866 423 109582 87 +24733 277 109617 130 +13490 1404 109650 98 +13305 135 109675 119 +36140 318 109694 54 +9619 332 109710 65 +23883 370 109711 55 +7374 402 109722 65 +7180 315 109746 116 +32794 315 109768 58 +6450 511 109784 57 +20873 284 109794 69 +14609 490 109811 50 +14677 507 109823 121 +25601 1460 109824 144 +30755 293 109851 180 +13601 374 109875 120 +9713 493 109900 136 +2223 259 109901 142 +5375 318 109911 94 +5314 183 109932 67 +6547 150 109963 122 +37917 263 109973 105 +35963 282 109988 111 +92 170 109998 72 +11514 420 110036 119 +1373 494 110037 99 +21929 195 110038 119 +9545 297 110062 112 +22000 187 110079 132 +21604 364 110094 143 +22140 370 110112 129 +34084 249 110122 63 +34478 491 110155 93 +37292 318 110189 59 +14825 278 110190 107 +16433 389 110203 145 +38139 275 110204 104 +37876 466 110236 88 +3206 470 110249 58 +5179 307 110274 51 +5266 404 110275 117 +5390 670 110276 137 +5490 401 110304 241 +9647 188 110334 132 +3504 360 110371 141 +9482 251 110386 95 +29088 191 110413 60 +29280 168 110445 57 +27760 508 110446 149 +35996 398 110457 144 +37188 434 110474 55 +37300 288 110508 66 +37151 243 110531 129 +24771 1461 110553 96 +8593 509 110589 113 +8282 219 110590 67 +17468 158 110608 143 +17624 474 110618 139 +23665 367 110644 117 +8398 289 110670 82 +8692 439 110671 98 +40015 173 110693 141 +40408 470 110730 140 +39876 324 110742 134 +40057 149 110763 129 +16590 472 110764 57 +3503 261 110777 53 +3379 242 110796 113 +3661 294 110817 50 +12366 355 110855 121 +12660 511 110865 108 +12994 459 110881 96 +136 193 110882 148 +20559 358 110883 51 +20774 411 110894 116 +20549 312 110918 100 +28929 251 110946 56 +26707 502 110983 131 +26994 459 111016 106 +8305 203 111029 60 +19704 451 111042 93 +19664 307 111074 58 +19597 448 111086 75 +24947 209 111115 138 +14425 232 111152 74 +14385 383 111173 127 +8197 308 111183 109 +8416 134 111195 103 +37224 182 111219 67 +24883 341 111245 140 +25177 384 111257 97 +35848 361 111279 148 +36106 255 111297 143 +9373 286 111298 113 +9763 133 111318 55 +9251 362 111339 76 +2422 452 111351 109 +2347 324 111364 87 +2172 374 111388 59 +32931 383 111389 121 +30138 1098 111407 87 +29736 182 111408 263 +5513 237 111418 78 +9449 309 111456 51 +9713 158 111481 126 +20798 185 111496 124 +25069 298 111514 60 +35258 147 111550 109 +26022 194 111589 84 +2452 291 111603 144 +21854 444 111635 130 +13634 394 111652 88 +13340 149 111673 120 +13581 224 111674 121 +27884 273 111684 135 +28291 467 111708 104 +27931 431 111735 92 +21751 409 111772 124 +26767 459 111796 60 +11337 439 111820 121 +22982 300 111834 64 +22497 371 111849 145 +22752 502 111875 58 +32948 353 111876 51 +20534 265 111900 130 +20691 262 111925 93 +4594 191 111939 61 +32225 187 111957 92 +14718 510 111990 66 +14688 143 111991 96 +14412 984 112008 117 +5326 291 112028 177 +19532 510 112066 108 +19884 253 112084 85 +3457 418 112096 90 +3582 132 112133 132 +35859 146 112166 79 +19716 156 112199 127 +25013 482 112213 81 +24684 524 112226 146 +39151 312 112246 93 +15371 303 112266 120 +3555 437 112286 124 +12715 485 112287 55 +12604 404 112302 128 +23002 228 112341 72 +7577 456 112378 123 +27693 195 112410 142 +35225 510 112411 75 +35415 423 112434 109 +27737 276 112435 95 +13737 326 112464 119 +106 388 112493 104 +671 420 112526 143 +215 254 112548 80 +230 217 112566 54 +21906 141 112581 86 +7492 870 112582 70 +36034 340 112600 134 +36418 196 112601 118 +36148 352 112622 76 +30777 255 112636 102 +17714 432 112669 138 +34211 352 112700 110 +33884 203 112719 63 +33841 473 112750 93 +34143 296 112751 66 +34120 261 112790 82 +22750 141 112825 125 +22720 326 112853 62 +28018 154 112876 62 +38365 271 112905 131 +37827 403 112906 139 +35994 304 112935 136 +36083 234 112955 77 +15520 171 112984 106 +15682 993 112985 129 +36900 281 112986 233 +36842 401 113003 88 +36918 233 113025 136 +36912 435 113038 70 +40127 400 113071 66 +32121 301 113100 136 +27092 459 113101 96 +26799 698 113113 60 +32890 345 113128 166 +19594 201 113129 73 +4444 136 113163 139 +9246 445 113183 105 +9484 296 113184 86 +17509 416 113197 125 +29091 169 113216 89 +28865 554 113231 142 +28864 290 113266 74 +9388 246 113287 112 +14791 131 113301 82 +14663 139 113327 87 +27066 176 113350 143 +4117 165 113365 77 +4320 1020 113401 96 +4340 493 113402 78 +4191 251 113438 109 +4253 176 113476 70 +21657 341 113498 76 +21366 554 113518 129 +26897 292 113553 187 +28141 505 113574 78 +27837 511 113593 111 +28028 423 113630 149 +10569 354 113663 61 +38987 158 113682 61 +38964 382 113697 127 +25998 430 113714 101 +25677 266 113737 80 +25836 215 113771 113 +26051 443 113804 77 +20623 968 113818 138 +20734 218 113819 186 +13572 155 113831 76 +29155 339 113855 112 +11371 146 113856 108 +1067 233 113889 143 +31866 360 113904 98 +31694 130 113925 120 +29886 481 113926 98 +29519 510 113965 120 +21649 179 113977 109 +21998 180 113999 121 +21727 297 114021 62 +22124 376 114059 53 +21903 287 114074 117 +3512 268 114075 94 +3227 502 114108 75 +3466 364 114109 126 +3218 263 114119 74 +18690 134 114145 71 +16556 133 114183 76 +16786 451 114215 138 +16682 1248 114238 121 +21610 210 114252 101 +21806 136 114277 113 +21797 304 114304 99 +40398 295 114338 127 +39941 156 114370 120 +40518 474 114390 76 +40479 362 114391 124 +21687 495 114408 128 +21797 363 114443 140 +25010 401 114473 118 +7449 218 114474 103 +7473 150 114486 72 +7220 310 114507 54 +7519 449 114517 116 +7472 1014 114553 129 +7045 142 114572 135 +20551 413 114594 52 +38097 510 114616 83 +18549 388 114627 68 +21663 1269 114650 127 +31124 440 114689 129 +30903 371 114690 103 +31007 326 114715 63 +28002 1672 114753 50 +27858 202 114754 215 +5349 789 114755 72 +15446 363 114756 194 +17691 181 114781 129 +1142 243 114816 148 +1381 287 114855 62 +2557 378 114886 143 +30989 384 114887 141 +9216 494 114915 146 +9716 1424 114916 75 +5195 351 114940 211 +11516 413 114969 148 +4468 166 114995 72 +25853 387 115018 101 +36057 289 115019 58 +36208 693 115030 73 +36261 192 115062 87 +27988 345 115097 109 +27635 499 115123 111 +27908 218 115152 128 +27785 279 115166 81 +28095 298 115179 53 +28014 225 115180 101 +32095 235 115219 112 +31872 171 115237 103 +31877 250 115247 64 +31805 167 115261 93 +31638 156 115297 70 +32048 199 115321 136 +31815 131 115352 51 +32218 311 115366 140 +4531 312 115403 61 +10495 265 115404 113 +20822 209 115405 90 +20992 228 115433 66 +30128 406 115454 115 +29966 462 115476 115 +30420 339 115477 69 +31031 317 115492 61 +36084 152 115524 97 +31865 247 115550 146 +31897 184 115568 128 +32209 205 115593 54 +1253 361 115594 111 +12775 144 115624 73 +12678 296 115625 86 +1044 331 115655 106 +1167 404 115676 67 +31112 145 115695 130 +30778 441 115708 78 +37016 324 115709 115 +37170 261 115741 85 +9357 268 115765 95 +4306 240 115791 102 +17706 341 115792 62 +28019 457 115816 103 +27976 383 115841 142 +27848 470 115878 60 +36095 477 115892 89 +24808 439 115931 75 +6178 1197 115946 114 +24915 439 115956 70 +17903 373 115957 53 +17724 449 115958 124 +17687 1233 115969 129 +17617 428 115984 210 +17542 413 115985 73 +35103 328 116024 123 +34802 930 116059 98 +12772 470 116092 127 +2262 142 116093 88 +19665 505 116131 101 +19705 216 116132 109 +40169 397 116165 93 +40203 165 116166 76 +40018 445 116193 59 +13628 179 116211 130 +13531 484 116212 114 +24847 469 116224 143 +25032 473 116225 135 +4593 225 116226 89 +4203 255 116263 86 +1128 160 116276 148 +24676 168 116291 63 +24769 494 116324 146 +24543 338 116325 142 +24772 381 116348 76 +39355 320 116366 109 +24776 407 116388 87 +6312 526 116406 55 +8226 382 116407 159 +2172 141 116426 137 +25649 295 116452 110 +25949 217 116472 61 +25823 341 116493 84 +17708 140 116516 89 +27120 300 116526 103 +40209 379 116527 138 +40120 267 116528 134 +17528 283 116557 101 +17781 462 116558 124 +35175 132 116592 137 +36215 375 116626 76 +17492 424 116657 62 +38283 187 116667 64 +37702 503 116704 76 +32201 172 116728 79 +20522 165 116763 134 +21745 393 116783 104 +21892 657 116822 125 +21834 384 116859 115 +38998 425 116860 67 +40346 155 116889 86 +7359 628 116928 114 +134 171 116929 191 +14399 300 116939 56 +21548 363 116961 101 +21775 477 116962 122 +22047 292 116975 139 +38216 329 116996 122 +27004 1072 117029 100 +5322 155 117062 237 +32074 816 117086 62 +31632 386 117104 248 +31980 160 117133 112 +32368 341 117169 124 +6581 1083 117200 111 +6288 393 117201 101 +12583 210 117212 136 +6582 481 117224 125 +40315 308 117225 119 +40002 386 117243 107 +4414 464 117282 118 +4400 193 117297 89 +17470 202 117317 145 +17388 454 117346 126 +17928 184 117381 113 +26078 377 117394 116 +9564 255 117418 104 +18778 453 117430 128 +14743 460 117447 148 +3336 134 117479 55 +38134 344 117515 121 +38079 411 117536 77 +25922 264 117563 93 +25971 301 117564 87 +34091 322 117588 96 +33976 474 117589 141 +33785 448 117590 92 +33933 389 117604 113 +33759 305 117616 132 +27663 248 117654 104 +3527 175 117655 78 +6461 445 117670 135 +38313 233 117689 90 +27668 374 117728 89 +8434 322 117729 96 +8292 424 117752 122 +20738 353 117777 78 +40132 459 117791 107 +24769 491 117817 51 +24896 389 117848 101 +32163 816 117879 53 +31020 299 117904 258 +10502 378 117905 64 +16751 338 117906 145 +16717 231 117917 138 +35916 360 117938 120 +35220 252 117969 97 +35040 346 117985 83 +18818 1808 118020 130 +15547 312 118021 176 +4548 377 118043 105 +5226 180 118044 72 +5200 445 118045 132 +10367 1572 118046 97 +30152 141 118075 204 +12471 660 118076 63 +19679 133 118093 140 +19772 213 118125 120 +3283 504 118154 73 +17726 197 118178 89 +22951 475 118198 66 +13662 147 118234 62 +10460 469 118246 108 +10666 145 118247 90 +36011 992 118266 122 +20815 390 118267 193 +38362 496 118286 63 +33796 460 118308 67 +34044 486 118324 109 +34012 377 118325 70 +34099 664 118326 62 +11709 1116 118327 246 +19656 402 118360 116 +19842 508 118377 67 +19636 350 118390 133 +34243 331 118413 64 +34122 152 118447 136 +18442 492 118448 50 +40037 254 118479 143 +40198 356 118492 76 +31868 418 118493 64 +31029 229 118510 117 +30955 228 118543 98 +6285 384 118554 107 +30854 290 118555 93 +29031 502 118578 74 +19553 448 118595 87 +39037 464 118596 92 +4530 494 118597 129 +4340 270 118619 84 +4523 477 118647 99 +23654 688 118648 59 +23735 235 118660 83 +35241 301 118678 136 +35286 389 118691 133 +26865 502 118719 92 +26735 432 118753 83 +26814 439 118779 53 +8621 139 118807 141 +8678 368 118824 146 +8605 256 118862 130 +8503 312 118884 68 +9610 317 118918 51 +37928 419 118931 92 +20675 488 118965 82 +26907 507 118966 117 +19951 350 118967 82 +36061 446 119005 143 +36096 128 119018 142 +24666 2040 119051 110 +24703 684 119076 176 +27732 212 119104 104 +4277 420 119114 59 +29839 303 119132 125 +28894 276 119150 88 +3345 494 119174 101 +3658 365 119175 78 +27718 169 119212 126 +2109 696 119244 116 +2424 373 119271 232 +1186 462 119299 110 +17899 495 119322 118 +17763 199 119337 64 +26799 373 119358 144 +25085 302 119372 148 +24782 438 119407 93 +5353 222 119443 106 +5608 214 119474 69 +5368 1515 119498 133 +5620 602 119528 225 +10670 358 119566 119 +26853 413 119598 53 +13420 159 119624 127 +13462 250 119625 114 +7557 145 119642 146 +7256 511 119657 57 +7257 687 119684 128 +31032 192 119700 137 +14429 293 119724 93 +21861 151 119747 111 +22183 303 119760 62 +4234 279 119782 88 +18758 133 119796 68 +20864 510 119797 130 +20396 290 119810 135 +29180 354 119824 98 +29979 269 119854 146 +7580 171 119889 73 +7515 1060 119906 84 +7741 232 119920 169 +33972 251 119932 140 +21844 451 119951 100 +36095 378 119962 87 +36240 284 119974 103 +12744 286 119992 71 +28996 317 119993 149 +14531 342 120015 101 +26640 397 120053 72 +40036 156 120074 114 +18753 376 120105 138 +12688 1212 120106 54 +4604 494 120143 156 +40387 504 120144 67 +40170 170 120182 119 +8702 335 120183 112 +8280 275 120184 114 +15838 397 120185 72 +20885 462 120186 55 +3557 361 120198 69 +6653 383 120199 145 +6318 191 120211 88 +35968 458 120249 112 +30026 309 120250 127 +40408 463 120251 89 +40043 490 120252 121 +19716 511 120253 77 +19667 429 120281 65 +19980 195 120309 65 +17423 236 120327 109 +17617 427 120339 51 +17406 245 120358 94 +34231 340 120359 146 +34079 500 120369 54 +34083 516 120397 116 +7316 175 120398 173 +21940 187 120431 70 +17497 311 120458 87 +17712 239 120474 59 +17674 253 120508 56 +17545 196 120539 139 +17456 428 120576 113 +29807 1416 120602 59 +26946 473 120622 132 +26912 395 120639 104 +5485 437 120672 133 +23739 548 120673 107 +3467 316 120692 258 +15794 487 120722 53 +29847 206 120723 110 +39309 1185 120724 76 +39171 326 120762 186 +7359 149 120797 104 +32168 1424 120810 93 +32236 136 120811 87 +31831 287 120832 114 +32288 1492 120858 52 +14432 187 120889 106 +1179 1348 120915 72 +16805 439 120954 106 +16813 177 120972 135 +1406 494 121011 65 +1565 201 121027 123 +4295 132 121037 62 +4797 504 121067 139 +10274 331 121096 96 +8470 195 121122 119 +31773 436 121147 120 +19857 1232 121161 120 +19670 418 121193 127 +19802 446 121220 76 +18655 499 121256 87 +18285 310 121257 78 +18992 188 121283 109 +4358 148 121284 82 +33843 480 121303 51 +294 284 121304 113 +8531 395 121337 128 +8716 379 121357 145 +6571 260 121386 108 +6595 365 121406 72 +28081 402 121443 89 +22691 300 121464 78 +26798 468 121498 119 +15854 285 121529 63 +26800 436 121553 117 +23713 453 121572 79 +22803 586 121585 148 +22557 306 121619 96 +5573 273 121651 101 +28928 281 121652 69 +30757 129 121664 111 +31199 172 121665 127 +30617 279 121690 52 +37953 275 121707 78 +37917 163 121745 90 +38165 498 121776 70 +38083 266 121777 60 +18840 452 121778 123 +18748 1516 121779 50 +18309 432 121803 267 +18562 512 121804 135 +34854 368 121827 105 +28832 227 121828 85 +28953 444 121856 51 +30097 258 121883 64 +7335 362 121912 141 +7653 235 121951 120 +33000 330 121952 88 +15865 484 121979 90 +15630 169 122016 64 +15791 129 122045 124 +19733 369 122046 139 +6146 244 122067 70 +6607 302 122097 106 +31810 192 122098 62 +32243 235 122108 94 +29183 485 122140 88 +26048 336 122167 144 +25728 337 122168 107 +14352 1092 122207 90 +11320 197 122237 142 +31035 488 122274 121 +30625 357 122295 77 +30783 251 122319 145 +31050 376 122342 139 +2530 222 122371 129 +2197 267 122394 55 +20743 374 122425 56 +25794 466 122447 69 +13699 209 122462 83 +13143 140 122472 132 +7367 376 122473 130 +7150 433 122494 103 +28757 784 122508 61 +29173 350 122542 171 +10608 385 122562 53 +10521 252 122584 70 +8704 329 122621 88 +22846 487 122645 52 +22472 234 122669 143 +19540 371 122670 125 +3367 151 122681 113 +3301 490 122682 66 +38963 367 122715 77 +36194 222 122742 77 +34913 219 122760 57 +28099 2012 122796 110 +27789 362 122831 113 +17525 459 122843 122 +307 172 122855 147 +3513 424 122886 118 +20662 945 122910 145 +24749 370 122911 149 +33051 154 122942 97 +24802 364 122975 84 +24778 442 122990 140 +11646 186 122991 73 +28769 217 122992 78 +40172 420 123028 143 +40217 230 123041 54 +39969 453 123069 51 +40121 363 123084 130 +8522 464 123122 134 +8480 392 123137 63 +8388 183 123138 89 +8497 736 123175 69 +8348 149 123204 289 +17915 202 123237 103 +17460 297 123270 101 +17949 279 123306 107 +28064 334 123341 73 +26684 476 123359 131 +26542 310 123392 93 +31001 262 123393 69 +30656 804 123403 65 +31052 240 123430 161 +30861 367 123466 136 +3449 1356 123467 89 +22014 255 123481 105 +7332 407 123500 54 +33905 350 123501 79 +4587 299 123526 75 +4480 1560 123564 123 +4516 278 123565 94 +6603 497 123604 133 +37079 468 123614 148 +37037 414 123646 66 +36759 208 123658 127 +37231 349 123674 126 +1414 409 123675 90 +1271 320 123676 135 +5626 402 123677 54 +39100 300 123702 83 +18635 129 123737 89 +13369 363 123753 60 +24863 312 123778 122 +39129 271 123807 102 +15828 137 123841 128 +15552 218 123863 69 +40028 177 123896 128 +40111 329 123919 96 +16516 214 123945 132 +40020 257 123980 88 +2228 176 124000 103 +2192 352 124033 110 +19486 960 124070 109 +19953 168 124103 98 +19769 379 124128 147 +10275 187 124144 85 +21699 313 124145 59 +21559 457 124168 73 +11637 152 124191 130 +109 469 124216 56 +416 159 124246 62 +18443 327 124256 124 +18562 182 124289 86 +11301 400 124290 84 +11693 328 124309 105 +11990 387 124346 83 +11431 136 124382 50 +11985 216 124419 67 +30027 452 124454 79 +30192 480 124480 120 +5584 716 124492 77 +5487 272 124527 91 +32007 313 124555 134 +31871 388 124583 120 +17545 368 124584 53 +38356 318 124603 102 +14491 381 124622 73 +14153 247 124646 131 +17747 407 124647 54 +17893 503 124648 126 +17684 369 124649 91 +21692 353 124676 105 +36113 278 124677 54 +2476 275 124697 96 +31209 365 124726 94 +3526 338 124754 127 +30135 2016 124781 66 +40378 292 124782 213 +5549 145 124783 92 +30179 136 124822 55 +30399 498 124849 139 +33903 338 124873 144 +33849 480 124887 137 +18477 485 124888 123 +38330 366 124916 94 +18775 350 124948 146 +18257 1494 124949 139 +18705 400 124961 117 +18682 215 124993 71 +18545 366 124994 83 +18381 228 125031 60 +18520 336 125054 93 +13553 325 125081 88 +13494 1900 125117 145 +6317 284 125138 85 +9426 170 125160 134 +31910 162 125190 104 +31921 172 125202 149 +31609 233 125231 141 +4257 460 125253 132 +4281 412 125282 118 +23841 444 125283 95 +23683 192 125321 127 +4438 263 125356 62 +4233 484 125357 63 +14411 184 125358 99 +35157 266 125393 139 +35228 217 125421 133 +1470 128 125422 128 +29873 168 125443 119 +29912 306 125461 125 +21560 252 125462 125 +40049 478 125479 88 +10394 657 125506 57 +2097 916 125507 85 +2038 401 125528 127 +1985 406 125540 80 +32958 434 125577 117 +32848 129 125578 131 +40079 324 125579 101 +6242 144 125606 64 +30843 388 125644 98 +30774 309 125656 85 +11337 624 125670 59 +23825 393 125702 142 +23346 272 125727 132 +34274 498 125755 95 +35212 596 125771 78 +16494 367 125772 178 +11653 162 125787 97 +40039 388 125818 131 +40219 200 125819 64 +40006 491 125843 95 +4605 412 125844 144 +1363 361 125845 79 +21640 447 125862 130 +21699 392 125873 105 +21684 465 125911 139 +13334 138 125928 74 +36871 411 125946 148 +37098 361 125960 102 +40256 180 125984 56 +21931 440 125999 100 +23855 196 126000 149 +23988 387 126039 74 +24125 356 126040 112 +23796 434 126041 101 +23890 210 126069 72 +21538 477 126107 67 +7395 480 126142 103 +7598 211 126153 91 +38110 209 126184 92 +4469 492 126213 71 +4426 169 126245 63 +31930 253 126265 107 +32185 388 126304 131 +14793 357 126327 87 +30024 276 126328 87 +29755 190 126347 123 +10390 187 126363 110 +10431 238 126377 136 +37897 427 126378 64 +9494 387 126407 68 +12600 344 126417 69 +7221 192 126451 60 +7243 253 126452 140 +134 224 126483 127 +20944 140 126508 143 +34822 501 126509 53 +3441 444 126529 129 +14538 422 126558 50 +22875 355 126559 70 +29813 152 126560 113 +30107 275 126582 95 +17853 260 126583 50 +12779 243 126616 140 +12573 151 126641 141 +12512 453 126679 99 +12425 280 126698 78 +34908 446 126733 133 +9322 434 126762 117 +29131 245 126763 78 +15587 1260 126783 132 +31054 248 126816 126 +20707 1936 126829 78 +20578 128 126830 137 +20448 132 126847 78 +21946 746 126884 125 +8451 440 126898 141 +8306 222 126931 87 +34191 238 126947 51 +11539 509 126948 90 +11408 327 126949 90 +12346 282 126961 68 +36286 293 126986 133 +33064 216 126987 68 +18486 268 126988 102 +4545 347 127027 53 +4389 259 127028 94 +24637 185 127065 63 +36951 489 127093 146 +8364 283 127117 90 +8410 321 127118 65 +8278 262 127133 132 +8657 197 127154 126 +10395 157 127169 123 +10157 131 127190 105 +3339 191 127227 119 +16455 309 127247 82 +25668 139 127284 69 +37925 422 127285 101 +5208 441 127307 115 +5414 294 127336 78 +33887 317 127367 91 +38319 220 127390 66 +20985 409 127418 52 +20744 249 127429 78 +21756 255 127460 103 +21727 320 127498 138 +21831 292 127521 83 +3308 134 127550 129 +2940 436 127581 100 +27058 239 127602 149 +28843 313 127624 68 +29755 152 127634 101 +29955 419 127666 68 +29892 170 127696 148 +30164 1059 127735 103 +29697 228 127736 130 +38316 467 127775 146 +37825 478 127814 90 +27863 199 127847 59 +28183 199 127869 80 +28142 199 127870 96 +24933 471 127885 69 +23578 479 127907 84 +11423 362 127939 102 +11342 372 127954 137 +14390 415 127964 79 +14818 317 127979 78 +1396 454 127990 74 +32042 1368 128017 133 +31654 475 128028 132 +31891 720 128054 140 +2250 299 128084 93 +2043 284 128111 132 +2307 990 128112 99 +7614 380 128143 190 +7409 704 128144 85 +39324 1116 128145 164 +23934 306 128146 159 +23881 271 128176 138 +15626 287 128177 107 +9256 315 128178 66 +9791 592 128205 124 +9727 309 128206 198 +9505 221 128240 127 +33912 332 128254 146 +37002 241 128277 128 +35298 461 128300 89 +26961 385 128337 122 +27099 469 128338 147 +32066 493 128339 97 +32194 177 128340 90 +32097 712 128371 119 +28067 199 128389 184 +16444 305 128424 128 +16285 441 128462 60 +12507 397 128463 50 +34901 485 128485 122 +16451 213 128516 59 +1365 144 128555 51 +1342 149 128572 132 +28099 485 128573 80 +27785 364 128585 55 +27672 302 128598 131 +28195 311 128624 83 +27843 190 128634 55 +30099 335 128635 107 +29877 379 128666 129 +11540 297 128700 138 +40350 492 128713 126 +10516 486 128729 132 +22689 128 128730 110 +28996 176 128768 140 +11424 307 128787 63 +37255 278 128813 100 +38101 172 128831 126 +27710 413 128852 62 +27932 214 128853 75 +15786 167 128880 111 +15482 315 128902 114 +39985 363 128916 117 +40282 160 128950 59 +7490 466 128984 55 +7384 447 129008 61 +7496 141 129026 128 +7366 442 129027 78 +6316 1092 129066 103 +6608 405 129099 169 +28020 1016 129135 69 +34992 494 129155 89 +9429 432 129156 86 +18788 225 129189 72 +32007 477 129202 149 +31959 507 129238 126 +32035 409 129252 103 +31897 510 129253 62 +32436 269 129269 142 +32338 451 129301 118 +28852 424 129336 103 +28712 264 129337 118 +29017 129 129338 121 +19908 308 129357 136 +35946 412 129373 53 +16421 190 129402 81 +32893 288 129429 142 +18760 299 129453 88 +18728 288 129469 110 +18714 287 129506 71 +31135 262 129527 110 +34838 322 129541 125 +35046 270 129580 121 +6625 149 129601 50 +6142 165 129638 119 +25892 299 129668 107 +4544 335 129695 84 +4243 299 129722 107 +18594 266 129761 86 +18559 456 129777 103 +18669 243 129778 126 +18510 272 129805 127 +18526 446 129806 58 +18280 167 129841 53 +18695 444 129842 122 +18641 260 129875 50 +18664 1308 129887 118 +22858 852 129897 237 +34069 219 129898 112 +34162 233 129910 74 +6535 478 129923 60 +6328 276 129936 112 +6424 203 129937 138 +18778 1544 129973 53 +18800 482 129986 76 +5131 299 129987 57 +31927 456 130022 102 +22705 299 130023 135 +2391 366 130059 144 +24687 477 130091 127 +4217 413 130092 57 +4292 315 130120 123 +34926 312 130146 90 +7236 1185 130180 101 +5262 482 130201 70 +5431 220 130229 103 +34974 344 130242 82 +3116 343 130265 124 +4243 274 130284 120 +4355 486 130316 73 +4284 381 130317 107 +5358 432 130318 101 +6372 272 130339 114 +6679 301 130358 54 +30902 243 130359 66 +22996 272 130371 148 +8472 211 130399 73 +8153 507 130435 62 +8479 879 130453 85 +19599 443 130490 67 +19470 254 130491 115 +19967 497 130530 64 +19355 278 130567 144 +31192 181 130568 94 +30792 132 130583 56 +30908 327 130620 125 +31192 179 130633 139 +30969 237 130650 148 +35175 174 130671 54 +37895 503 130682 142 +8620 478 130683 52 +485 171 130707 97 +26828 455 130738 106 +27313 492 130770 62 +29168 392 130793 111 +14677 507 130820 87 +26079 217 130850 139 +25823 398 130871 124 +25740 406 130872 64 +26011 260 130909 106 +17414 162 130945 138 +38039 392 130946 54 +38261 331 130959 59 +38195 443 130980 80 +33272 169 131018 119 +32961 421 131031 103 +27976 305 131057 75 +27527 416 131093 54 +27812 263 131094 82 +29883 225 131095 68 +29836 227 131122 56 +8529 388 131159 144 +23832 370 131197 125 +2403 400 131213 107 +4251 301 131248 112 +4021 318 131249 148 +18562 509 131284 134 +8365 133 131307 84 +25861 173 131334 133 +21859 546 131335 96 +7224 410 131336 255 +33825 434 131360 90 +13487 576 131394 144 +3395 297 131423 176 +447 128 131438 141 +168 169 131454 102 +104 509 131479 52 +357 415 131494 135 +520 380 131495 145 +26 194 131514 131 +40110 377 131551 59 +39982 448 131564 89 +2102 434 131602 111 +2493 168 131626 66 +19655 156 131627 147 +19603 272 131641 52 +19947 147 131654 69 +24817 378 131680 149 +35110 242 131719 114 +35213 203 131758 118 +34759 764 131782 56 +17908 374 131805 105 +17448 185 131843 74 +17776 442 131844 87 +11551 315 131873 129 +32830 476 131908 148 +32906 287 131945 67 +33035 133 131983 105 +32758 359 131984 57 +32801 152 131985 83 +33152 376 131998 84 +16661 350 131999 138 +16639 499 132037 107 +16632 236 132066 90 +16371 359 132067 120 +16884 298 132080 138 +16498 298 132115 116 +28000 459 132126 67 +29964 392 132138 103 +29729 390 132165 106 +17853 364 132182 120 +36924 400 132210 76 +36987 257 132211 138 +24925 408 132224 81 +25744 366 132225 146 +25829 416 132251 147 +27833 460 132271 63 +18534 226 132272 122 +18215 321 132303 79 +11486 377 132327 84 +11572 388 132354 102 +11477 206 132385 92 +11477 212 132406 130 +14577 382 132407 56 +40106 498 132423 116 +6643 183 132434 70 +21613 265 132451 73 +10636 470 132452 64 +10328 411 132489 120 +10380 438 132502 90 +6356 153 132532 81 +34136 794 132533 52 +23759 374 132534 218 +14524 504 132535 63 +1485 509 132557 114 +1289 150 132589 55 +1387 502 132626 138 +1482 273 132646 99 +3440 433 132647 64 +3427 464 132684 77 +1152 240 132685 70 +40349 350 132702 138 +25070 216 132738 142 +24666 252 132766 128 +29771 296 132801 128 +24964 910 132811 97 +39210 381 132812 159 +38870 470 132826 122 +16421 286 132862 112 +29952 148 132872 92 +11603 532 132883 73 +11130 157 132897 103 +11755 214 132913 65 +11733 660 132914 135 +11179 324 132915 140 +2111 319 132954 64 +9420 260 132971 129 +34286 417 132983 60 +28035 493 132993 51 +13479 500 133008 92 +33244 160 133031 88 +32910 504 133046 91 +33157 454 133074 133 +17837 446 133075 139 +30131 280 133106 68 +18502 334 133144 84 +18861 310 133165 116 +10430 663 133193 111 +3576 508 133215 172 +3468 479 133232 83 +30790 483 133263 104 +30862 384 133301 139 +2239 504 133332 54 +16858 192 133352 61 +16474 484 133362 85 +5432 301 133387 110 +5063 132 133409 129 +26050 326 133419 112 +25732 609 133420 52 +31101 224 133451 183 +30761 485 133481 124 +17632 458 133518 96 +28113 202 133540 52 +27852 232 133559 131 +27963 222 133597 56 +28263 224 133635 85 +28002 307 133636 122 +2276 331 133671 71 +34182 480 133707 103 +14563 724 133742 83 +14897 452 133779 136 +14707 434 133780 113 +14663 493 133803 139 +6395 369 133804 91 +2117 358 133842 137 +2316 413 133877 98 +22945 201 133878 70 +2435 377 133879 125 +2386 322 133902 149 +2097 406 133933 75 +2131 472 133934 58 +36210 344 133972 145 +9568 271 133993 143 +9345 250 134009 105 +9476 203 134042 146 +17906 300 134043 51 +17723 286 134053 87 +13376 434 134088 98 +13841 333 134107 135 +13516 313 134121 63 +13432 270 134122 84 +13685 300 134159 59 +4257 247 134160 103 +23806 421 134181 54 +23720 392 134194 54 +23971 273 134212 147 +24238 248 134247 77 +23700 340 134267 110 +29007 457 134293 102 +12672 356 134303 148 +36006 361 134319 125 +33814 128 134332 81 +35983 284 134348 90 +35861 299 134349 135 +36072 156 134376 87 +18705 363 134406 59 +23733 219 134436 67 +28024 433 134462 132 +27914 437 134494 74 +27507 688 134504 86 +27903 304 134505 160 +35108 178 134523 77 +29956 390 134560 94 +29813 864 134586 68 +29558 243 134603 94 +27744 2008 134616 106 +27459 299 134641 272 +27845 217 134680 65 +27708 202 134710 64 +27605 155 134711 129 +27708 379 134735 103 +27802 481 134770 127 +32899 208 134771 139 +5196 329 134772 103 +27846 408 134811 140 +28045 183 134833 72 +28165 414 134869 70 +28241 412 134900 54 +27858 190 134928 80 +5605 305 134963 112 +5378 440 134985 99 +4972 499 135008 72 +34271 215 135023 139 +33922 500 135033 59 +2422 369 135064 54 +2232 483 135092 59 +5437 164 135127 93 +25612 400 135128 119 +22830 370 135160 105 +22769 193 135175 80 +22458 237 135187 145 +22428 325 135223 128 +23062 464 135260 104 +22974 178 135261 82 +22583 137 135284 138 +22847 209 135311 77 +1513 422 135337 84 +23038 248 135338 125 +25882 384 135352 110 +19511 208 135377 145 +35968 458 135406 91 +36121 323 135441 77 +12731 461 135460 139 +22610 345 135486 97 +22837 312 135487 146 +22714 455 135502 56 +4594 309 135512 97 +4232 327 135513 57 +4013 473 135551 89 +4713 217 135588 139 +29024 512 135622 77 +19659 131 135634 148 +14564 172 135671 117 +14887 466 135701 120 +14732 168 135732 110 +4249 140 135733 79 +4432 321 135734 107 +38937 249 135735 75 +40133 387 135736 105 +12707 157 135755 140 +12512 487 135782 112 +12708 1068 135810 131 +29109 415 135828 99 +35262 269 135829 144 +12653 221 135830 62 +3363 156 135849 147 +3258 434 135878 148 +8207 387 135879 68 +8685 278 135912 122 +8448 246 135913 61 +8541 444 135914 139 +18691 188 135930 147 +29020 292 135931 97 +17569 406 135970 115 +17537 183 136007 62 +26779 455 136008 121 +28842 401 136024 144 +29137 382 136025 134 +21719 162 136060 75 +21970 333 136095 86 +1437 724 136096 139 +1158 359 136109 131 +6464 396 136110 123 +23896 247 136131 110 +24165 308 136155 94 +33863 227 136190 72 +18924 441 136224 103 +19839 444 136225 64 +36952 251 136244 146 +37092 224 136282 110 +17914 226 136306 109 +17523 267 136337 114 +33829 181 136338 80 +10739 181 136375 76 +25725 313 136389 64 +5545 226 136417 50 +38133 469 136447 134 +38467 397 136448 129 +9569 508 136460 60 +9435 352 136476 97 +9859 438 136493 108 +18790 195 136509 93 +36233 204 136540 52 +14655 461 136569 81 +14325 507 136586 119 +30125 359 136615 76 +15448 364 136651 81 +3401 305 136664 99 +18665 1780 136701 75 +18617 383 136739 172 +26899 299 136761 110 +26019 139 136780 96 +14791 445 136804 84 +14748 299 136832 64 +19540 249 136865 104 +32209 506 136881 145 +4478 371 136896 57 +5599 380 136910 82 +5629 487 136944 114 +13437 154 136970 112 +13195 1215 136971 98 +4460 161 136997 220 +4088 197 137035 145 +23589 474 137053 116 +23463 481 137084 134 +23463 224 137085 131 +24033 145 137109 84 +23779 420 137124 104 +12479 481 137153 78 +2385 216 137183 60 +2290 327 137214 76 +34971 229 137233 134 +33173 221 137252 75 +33826 426 137278 75 +34231 1296 137312 108 +16655 454 137329 133 +37046 258 137330 136 +37194 431 137331 99 +19929 503 137346 83 +19644 510 137366 58 +24615 915 137384 109 +31904 151 137412 249 +29964 400 137444 92 +37994 486 137445 139 +32140 447 137461 97 +16836 376 137484 97 +37329 240 137494 114 +36949 221 137508 59 +37127 165 137528 67 +36998 152 137542 109 +19698 337 137543 136 +19741 451 137578 144 +20056 288 137579 93 +19791 135 137602 68 +21867 332 137617 56 +21983 324 137618 124 +21923 309 137619 116 +21758 240 137620 65 +18508 322 137621 139 +22673 192 137637 106 +10295 188 137659 54 +26759 1676 137660 117 +38322 273 137680 178 +17648 413 137681 139 +17289 370 137699 136 +17685 195 137700 65 +17467 156 137723 96 +17662 196 137758 98 +8348 942 137791 109 +11303 451 137813 286 +11621 178 137814 61 +11706 426 137844 88 +11637 176 137855 134 +4263 1461 137890 72 +11306 1344 137915 203 +9254 202 137926 131 +10610 240 137953 92 +25937 284 137954 148 +37342 422 137969 95 +8607 439 137994 76 +27772 486 138029 105 +36024 186 138057 91 +14398 343 138069 57 +14803 470 138105 100 +14590 265 138106 123 +14746 240 138127 123 +25824 299 138145 68 +28823 370 138146 143 +15692 181 138176 107 +15799 458 138189 67 +23034 444 138190 115 +23860 279 138200 106 +10545 507 138230 122 +36040 359 138231 64 +36144 169 138246 53 +4603 214 138247 99 +4234 345 138273 118 +4595 226 138309 68 +4366 195 138310 55 +24035 379 138343 138 +15632 378 138354 121 +13666 331 138374 108 +14532 494 138375 128 +14360 403 138395 103 +15619 510 138422 130 +18539 359 138457 64 +19583 295 138458 54 +13380 383 138488 81 +33835 340 138503 98 +34084 352 138536 111 +19968 444 138547 104 +19470 509 138558 74 +19415 290 138590 132 +27132 187 138591 115 +26997 419 138592 72 +5255 576 138624 85 +35956 296 138639 128 +14380 232 138670 85 +37360 335 138698 80 +27083 336 138728 117 +11601 156 138762 120 +36996 416 138786 53 +37037 360 138803 62 +19482 187 138804 106 +36051 495 138821 119 +36029 398 138839 128 +10358 408 138840 86 +10778 423 138879 92 +28844 312 138911 113 +28798 447 138941 87 +32135 211 138942 67 +31692 192 138980 85 +10403 222 139013 138 +38915 331 139014 107 +39282 448 139033 123 +11678 149 139069 64 +19556 434 139104 117 +11459 400 139122 145 +22846 891 139136 71 +22450 250 139137 136 +35132 342 139171 54 +35052 452 139181 125 +35078 1479 139182 97 +3169 159 139198 159 +3518 660 139224 125 +9553 247 139250 183 +36963 247 139251 65 +9313 297 139270 98 +6427 307 139288 133 +11578 286 139302 83 +17468 512 139341 98 +26911 415 139342 71 +21838 154 139365 97 +1421 435 139382 62 +37186 382 139417 76 +36994 579 139441 147 +23900 419 139442 178 +23802 369 139443 74 +21926 440 139475 64 +21778 512 139492 146 +21379 468 139493 135 +5490 342 139525 109 +39106 405 139537 136 +39200 363 139563 141 +38055 167 139578 73 +16800 155 139579 90 +2275 540 139597 104 +2251 186 139627 141 +9630 445 139628 54 +3231 490 139629 124 +38051 340 139650 77 +31178 166 139669 136 +10647 475 139708 73 +9559 324 139741 116 +9769 198 139768 64 +20866 483 139779 102 +20661 177 139780 91 +20843 438 139792 71 +10404 482 139809 111 +2312 475 139826 109 +35313 256 139846 103 +2123 356 139875 50 +1278 499 139911 135 +845 505 139927 122 +32985 312 139963 93 +33115 401 139994 106 +33044 173 140005 65 +32771 241 140028 92 +33182 161 140067 126 +33030 299 140102 104 +32737 231 140127 72 +12772 342 140138 141 +1032 267 140157 108 +19456 308 140176 123 +19879 346 140208 56 +14492 395 140209 99 +11350 696 140232 94 +30780 322 140250 123 +30807 144 140269 100 +38316 231 140270 139 +23802 414 140305 51 +23598 348 140335 125 +7380 472 140345 128 +7730 271 140366 148 +2051 410 140396 101 +11723 1104 140397 76 +11818 468 140421 94 +11841 506 140432 65 +11092 353 140448 104 +1464 389 140480 95 +1108 475 140481 86 +1033 198 140498 141 +1408 370 140499 82 +1150 162 140521 142 +1258 459 140538 130 +37094 362 140557 93 +32178 346 140574 131 +31873 360 140590 105 +31871 503 140610 107 +6576 370 140623 125 +6432 240 140642 115 +10676 378 140677 53 +3114 339 140702 66 +3431 169 140730 82 +34847 269 140761 112 +17609 218 140762 88 +17992 173 140789 56 +18830 351 140814 93 +18669 366 140835 69 +4243 146 140869 50 +23891 246 140907 140 +37123 339 140923 146 +37036 347 140953 103 +19458 395 140970 67 +20721 229 140971 109 +21574 366 140995 84 +21799 475 141028 139 +21804 181 141052 92 +18885 561 141053 130 +19070 433 141087 167 +21552 188 141088 121 +5393 190 141089 145 +8558 936 141090 113 +23584 1804 141124 118 +2377 217 141125 220 +27131 337 141140 133 +40442 505 141141 58 +40224 474 141174 112 +40032 163 141175 50 +40164 500 141205 60 +40102 508 141215 52 +25077 201 141245 68 +21795 478 141281 70 +34182 301 141282 110 +6367 400 141311 58 +25995 232 141312 126 +25936 275 141323 79 +3134 164 141337 135 +21942 278 141338 129 +21596 325 141361 119 +31112 208 141379 145 +14790 215 141403 50 +27133 431 141404 136 +2489 447 141405 51 +2012 197 141406 139 +36098 138 141407 72 +35991 234 141420 92 +19670 145 141453 88 +19753 217 141490 65 +19807 269 141503 131 +5279 249 141537 124 +21900 492 141569 85 +24003 461 141587 78 +28943 199 141611 120 +28616 382 141638 87 +29159 358 141669 84 +14626 280 141688 116 +14314 416 141689 68 +14712 852 141699 50 +14727 248 141700 156 +14471 420 141724 63 +14217 246 141755 138 +14791 335 141772 112 +14233 510 141784 125 +21820 240 141798 112 +18873 134 141823 64 +22786 240 141846 124 +22744 235 141863 129 +15507 317 141896 135 +15550 1696 141911 139 +24946 437 141948 116 +24721 154 141976 88 +24838 491 141994 137 +2273 464 142021 114 +18632 199 142022 95 +7214 235 142023 61 +7513 351 142033 125 +7506 1472 142070 143 +7465 473 142090 172 +23821 349 142121 96 +28699 430 142151 112 +31991 453 142152 118 +29174 361 142167 56 +28827 243 142189 89 +30771 191 142202 72 +30764 411 142221 84 +20979 452 142250 79 +34027 448 142268 70 +11400 1608 142279 141 +30760 393 142303 197 +21926 141 142330 149 +6528 192 142331 130 +6378 338 142332 134 +6233 462 142371 59 +7648 198 142400 135 +4150 462 142401 106 +3345 301 142418 132 +295 381 142439 85 +28966 222 142470 60 +8602 520 142507 104 +23837 293 142541 122 +23929 436 142551 91 +23872 205 142585 60 +23826 186 142605 65 +6427 469 142625 129 +6234 349 142662 83 +6301 1444 142701 67 +6634 502 142724 172 +26063 158 142725 79 +26002 281 142762 127 +12378 624 142792 82 +12619 223 142819 168 +19730 394 142840 98 +19854 424 142871 143 +3306 340 142882 65 +2960 266 142883 61 +38266 312 142893 148 +4126 328 142908 110 +37936 186 142921 79 +37926 499 142945 118 +16608 210 142956 80 +28672 472 142957 92 +23687 317 142958 149 +4241 348 142968 140 +16531 497 143001 86 +26078 250 143002 108 +21785 231 143030 139 +29716 451 143055 135 +29852 326 143086 67 +29520 443 143087 125 +13754 197 143114 141 +1164 153 143115 131 +27793 310 143116 119 +37003 496 143117 131 +28830 454 143118 54 +18593 498 143142 95 +18739 379 143165 83 +10429 375 143166 57 +5565 387 143201 131 +5507 338 143229 75 +2474 291 143230 78 +2428 180 143257 117 +2118 331 143258 101 +26992 188 143291 148 +26467 404 143328 64 +27070 335 143366 54 +40377 450 143385 91 +40634 258 143402 131 +7579 320 143403 129 +7292 479 143428 77 +7904 175 143446 91 +7732 244 143481 60 +27063 277 143495 76 +26777 284 143496 123 +7322 505 143506 87 +7482 1518 143544 129 +24012 170 143581 119 +23505 391 143582 130 +23735 446 143599 106 +22704 369 143624 75 +8560 480 143625 59 +5172 421 143645 119 +5329 491 143667 106 +36199 202 143678 137 +36398 252 143715 70 +35828 457 143716 70 +36509 1152 143729 57 +29740 466 143768 173 +7659 195 143790 73 +40325 508 143791 99 +40202 437 143806 55 +3527 182 143834 70 +37957 343 143868 74 +37791 174 143907 85 +35989 460 143934 118 +35955 312 143935 87 +6630 411 143955 143 +14797 220 143956 68 +9257 278 143979 141 +38190 311 144017 105 +8338 446 144035 65 +38302 304 144065 55 +37952 507 144091 99 +8220 205 144127 102 +25638 309 144149 110 +25756 412 144162 50 +25429 487 144187 93 +25823 243 144224 106 +25654 167 144225 72 +33061 366 144226 107 +36097 348 144227 110 +35863 425 144228 147 +36209 379 144257 139 +34896 330 144295 58 +34744 1407 144331 144 +27869 270 144343 232 +21540 428 144365 101 +26004 413 144366 106 +25816 344 144377 104 +6327 259 144398 50 +9591 236 144413 70 +11776 350 144444 70 +11565 407 144468 51 +11529 492 144496 114 +28697 1317 144497 94 +28721 437 144498 73 +28993 152 144499 84 +28955 364 144520 144 +22950 350 144543 100 +14570 152 144572 105 +9236 454 144595 60 +9583 436 144596 79 +22923 403 144630 101 +22558 484 144663 148 +14470 256 144702 63 +10256 247 144733 57 +19914 285 144734 131 +19829 320 144744 63 +19633 256 144762 120 +19384 304 144791 91 +4122 374 144820 87 +4347 494 144850 146 +4700 217 144888 113 +27917 165 144901 111 +35179 431 144922 89 +34957 358 144946 84 +3506 145 144974 130 +33020 397 144989 132 +21542 221 145025 74 +31226 180 145062 82 +31052 505 145081 107 +4424 140 145097 84 +4097 1275 145098 71 +4095 336 145126 98 +4679 395 145127 149 +22577 138 145137 111 +34913 295 145176 52 +34910 420 145212 100 +6529 482 145242 68 +6312 258 145243 50 +6790 441 145277 73 +18589 405 145296 107 +18755 1160 145306 88 +18747 267 145340 109 +22935 399 145341 74 +22602 195 145363 58 +20593 268 145377 51 +37136 151 145378 84 +32049 494 145406 68 +31876 318 145407 78 +25005 263 145408 56 +25092 474 145409 126 +24978 140 145425 109 +14394 220 145449 135 +14526 501 145482 93 +13373 313 145483 87 +2425 1600 145500 125 +2169 624 145501 105 +2132 436 145502 73 +2636 316 145528 105 +2272 350 145529 70 +2660 189 145551 111 +2576 218 145568 95 +19573 302 145591 93 +31013 286 145620 142 +32064 417 145654 92 +25729 319 145655 93 +31933 488 145674 100 +34290 1860 145688 68 +33677 246 145689 216 +31109 247 145690 66 +31216 820 145726 60 +105 258 145761 149 +11638 220 145791 80 +1089 478 145811 128 +5423 304 145838 101 +37215 458 145853 62 +25991 315 145891 94 +26186 278 145910 125 +20511 393 145944 92 +23784 497 145973 131 +23797 996 145974 146 +15434 149 146002 93 +15453 341 146039 105 +33073 306 146040 105 +17523 353 146069 130 +21710 183 146091 99 +21997 2024 146105 69 +21688 511 146134 184 +30822 132 146149 117 +31289 272 146164 78 +9595 334 146190 50 +26012 249 146221 62 +2434 333 146234 70 +14742 223 146235 120 +14907 473 146251 105 +31115 410 146287 97 +24922 408 146325 60 +24949 467 146336 143 +24799 483 146352 87 +10681 206 146373 85 +9263 293 146374 129 +30169 357 146412 109 +29942 321 146445 129 +29825 468 146480 53 +17547 469 146490 61 +24666 478 146512 50 +24570 309 146525 53 +24787 228 146536 89 +24932 449 146574 119 +13757 181 146575 139 +13600 1952 146605 118 +146 159 146623 197 +173 307 146624 110 +15680 389 146651 66 +32151 338 146683 124 +38029 250 146718 101 +9235 169 146738 109 +9801 338 146739 94 +30878 384 146755 136 +31076 488 146769 122 +9404 980 146801 122 +9033 451 146802 139 +9629 372 146823 61 +15605 254 146834 71 +38946 141 146852 93 +20838 393 146870 145 +12578 434 146904 132 +13583 410 146929 111 +13485 1185 146941 118 +15824 166 146961 102 +15429 323 146996 126 +26689 287 147015 80 +26425 276 147028 74 +27146 292 147050 74 +12388 510 147051 123 +21509 327 147066 117 +37909 437 147096 67 +36291 548 147128 112 +3072 389 147129 261 +7412 447 147158 63 +10499 463 147175 51 +10554 148 147176 134 +18843 205 147177 102 +11474 222 147178 131 +11259 382 147207 58 +31874 231 147236 121 +31635 203 147237 93 +15730 349 147276 135 +15615 463 147315 89 +15650 313 147337 103 +26936 429 147356 146 +30851 419 147382 67 +40011 382 147417 90 +39928 453 147440 124 +14402 454 147466 50 +12789 211 147490 106 +26086 1302 147523 72 +16400 324 147533 190 +3564 373 147558 139 +20571 454 147573 127 +20823 163 147574 52 +21564 191 147584 135 +13710 496 147600 142 +34135 323 147610 53 +3161 644 147644 79 +3557 449 147668 125 +3015 351 147688 129 +13610 464 147706 104 +31200 503 147744 71 +30949 454 147767 135 +4100 1500 147789 119 +4080 435 147807 215 +4095 510 147826 116 +4326 286 147864 108 +4542 496 147865 102 +16792 474 147898 64 +28972 406 147911 121 +29043 393 147928 87 +32236 511 147956 66 +32032 132 147989 145 +32239 178 148007 105 +32352 305 148032 135 +31942 687 148051 146 +32049 276 148082 132 +14719 966 148083 121 +8549 501 148107 203 +8313 1660 148139 134 +8846 407 148167 125 +8557 532 148203 130 +8420 469 148239 179 +8312 232 148277 99 +36153 189 148287 107 +35983 345 148288 145 +19957 197 148309 132 +12768 303 148332 57 +12495 128 148361 55 +6632 1197 148376 63 +6622 350 148395 172 +24802 512 148396 147 +24847 274 148411 148 +16894 286 148440 61 +16589 348 148478 114 +16863 774 148509 98 +20897 940 148526 137 +25697 250 148539 269 +14496 300 148567 78 +18524 445 148598 89 +18830 329 148615 102 +18861 426 148630 71 +18768 423 148660 137 +9380 1808 148694 53 +20645 168 148695 201 +20601 217 148712 119 +29905 1335 148726 143 +36083 511 148727 168 +2541 334 148753 54 +2405 219 148768 91 +14382 342 148799 147 +29018 621 148814 71 +2457 411 148844 95 +2117 227 148881 129 +19903 326 148916 95 +20156 173 148917 108 +7348 238 148950 87 +25967 397 148976 52 +26691 142 149013 118 +14545 164 149036 134 +14903 333 149037 117 +16770 247 149048 91 +16290 212 149049 105 +16474 254 149086 94 +16601 214 149110 95 +24042 262 149133 86 +24155 379 149153 103 +35871 247 149178 134 +3218 385 149210 142 +3149 710 149236 97 +7220 337 149263 161 +7616 384 149284 65 +7237 285 149305 120 +17656 394 149335 88 +24910 173 149351 103 +24772 752 149352 76 +24741 1604 149367 180 +24857 428 149378 225 +15768 525 149415 102 +20563 314 149445 189 +20823 411 149460 143 +19837 172 149496 104 +31761 234 149497 130 +3264 366 149498 96 +25688 133 149516 136 +25629 452 149551 91 +25615 369 149552 124 +117 374 149588 143 +10660 448 149607 134 +10315 454 149642 88 +25976 496 149663 100 +30189 249 149693 62 +30198 289 149705 103 +12495 178 149716 115 +37147 367 149727 98 +10543 1420 149728 107 +35018 367 149755 252 +38945 488 149776 65 +2256 1436 149789 63 +2112 450 149805 100 +2360 368 149843 106 +3573 213 149876 76 +39360 332 149894 144 +7516 500 149931 148 +32124 489 149964 64 +32244 377 149985 116 +5398 186 150003 70 +5429 334 150033 94 +5043 368 150054 123 +38056 458 150092 74 +12775 167 150102 94 +12611 390 150134 127 +11500 376 150160 126 +11508 129 150161 102 +32125 482 150182 141 +26689 226 150196 137 +26679 467 150197 86 +27276 263 150198 60 +26803 198 150199 61 +32151 202 150200 106 +26818 310 150217 130 +21521 143 150230 54 +21745 360 150248 137 +15476 187 150277 62 +30204 447 150290 51 +29633 171 150325 120 +30105 251 150340 115 +13665 195 150366 139 +17726 372 150378 67 +31847 189 150411 67 +31942 1172 150433 82 +7270 146 150456 106 +7493 644 150492 128 +21724 284 150493 229 +22069 406 150494 115 +21872 374 150530 77 +21656 303 150544 149 +21599 284 150572 149 +21511 224 150583 122 +7219 433 150593 51 +13475 212 150594 81 +13834 482 150622 149 +13859 457 150653 138 +13226 140 150654 106 +13708 468 150655 74 +13554 340 150689 140 +15502 361 150711 68 +7248 138 150741 136 +27947 221 150770 126 +2220 476 150771 92 +2342 359 150772 103 +20775 471 150790 104 +20385 329 150791 71 +28953 245 150820 55 +5334 156 150821 121 +15733 497 150859 138 +11714 490 150891 119 +28146 393 150919 135 +25891 292 150950 83 +26219 512 150977 103 +25847 385 151003 64 +11366 286 151004 107 +438 203 151037 75 +17640 207 151071 102 +1167 252 151091 140 +24671 342 151130 114 +15487 222 151131 105 +13556 269 151132 92 +10671 390 151158 52 +4382 382 151182 123 +7350 205 151204 121 +7444 256 151238 128 +32828 227 151239 136 +32979 201 151254 136 +32983 249 151255 54 +18813 400 151270 108 +4461 473 151271 50 +8463 813 151288 132 +37170 194 151314 263 +19523 257 151315 80 +39189 303 151335 79 +39402 153 151365 106 +39415 173 151366 140 +39222 201 151367 126 +17892 157 151379 130 +35 188 151414 68 +18432 309 151415 139 +20705 367 151416 83 +20667 134 151442 52 +20725 375 151473 56 +20605 1172 151502 118 +40038 440 151523 226 +39743 286 151557 73 +6302 365 151580 110 +6328 464 151581 112 +6382 315 151615 131 +9245 349 151647 57 +82 399 151674 112 +38348 443 151694 51 +38427 361 151724 131 +38128 350 151725 56 +22884 131 151748 68 +347 278 151783 119 +5612 234 151822 64 +5488 306 151851 124 +5686 489 151875 103 +38004 340 151905 60 +16638 490 151927 121 +5521 411 151928 139 +5460 380 151958 145 +106 192 151959 90 +10377 503 151960 110 +32099 503 151997 68 +32254 355 152036 141 +33794 270 152037 124 +32832 878 152061 109 +8653 491 152082 192 +4428 134 152092 108 +22849 320 152103 142 +6442 318 152114 142 +28690 133 152151 132 +10452 338 152152 105 +10603 443 152180 88 +8622 293 152181 145 +8359 526 152219 129 +19516 501 152231 174 +36899 340 152261 86 +37501 499 152262 61 +37090 251 152300 90 +8566 409 152310 103 +14538 341 152311 100 +14466 278 152323 63 +15762 294 152324 149 +17811 457 152336 134 +18025 302 152350 131 +17500 265 152376 140 +17604 280 152377 53 +7415 335 152378 110 +7292 236 152379 139 +7400 338 152380 86 +10672 281 152418 98 +19680 319 152444 59 +20116 836 152454 69 +7562 221 152480 174 +6396 210 152506 109 +6403 398 152525 50 +6139 353 152544 56 +36231 147 152561 61 +28861 151 152598 146 +10281 138 152599 115 +10612 222 152633 51 +37167 432 152634 89 +12581 159 152635 124 +12426 472 152662 113 +13372 401 152663 120 +13659 131 152677 145 +21650 416 152688 74 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=highload,seed=135,vsize=41152,psize=11013,req_len=7684).predictor.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=highload,seed=135,vsize=41152,psize=11013,req_len=7684).predictor.best" new file mode 100644 index 0000000000000000000000000000000000000000..1e4bcb7593107eba5fc57cb1c15683aa0b208fbc --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=highload,seed=135,vsize=41152,psize=11013,req_len=7684).predictor.best" @@ -0,0 +1 @@ +130646126 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=highload,seed=135,vsize=41152,psize=11013,req_len=7684).prophet.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=highload,seed=135,vsize=41152,psize=11013,req_len=7684).prophet.best" new file mode 100644 index 0000000000000000000000000000000000000000..825516a3413f1429e99d0b68f47771b9d29823fe --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=highload,seed=135,vsize=41152,psize=11013,req_len=7684).prophet.best" @@ -0,0 +1 @@ +108703535 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=highload,seed=135,vsize=41152,psize=11013,req_len=7684).simple.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=highload,seed=135,vsize=41152,psize=11013,req_len=7684).simple.best" new file mode 100644 index 0000000000000000000000000000000000000000..39479598999403aa1519474bf47f0a290bb3cbed --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=highload,seed=135,vsize=41152,psize=11013,req_len=7684).simple.best" @@ -0,0 +1 @@ +140592086 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=25858,vsize=12978,psize=12908,req_len=2703).in" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=25858,vsize=12978,psize=12908,req_len=2703).in" new file mode 100644 index 0000000000000000000000000000000000000000..0c63a7177b6c0468c04c4cabc41c62ddb233d73d --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=25858,vsize=12978,psize=12908,req_len=2703).in" @@ -0,0 +1,2704 @@ +12978 12908 2703 +8701 804 32 31070 +1400 10311 31591 23 +5310 3061 31622 123968 +1235 826 49365 5 +49 8413 376704 269024 +10617 1008 416273 3 +3062 2642 827423 93157 +5612 2313 933016 58961 +5783 3093 996286 240150 +164 4158 1028641 253126 +953 10020 1254097 342666 +2190 5941 1621111 2 +1944 10509 1670977 765042 +209 117 2275544 7045 +8750 1717 2280574 22 +1802 8950 2341487 453141 +753 581 2685107 28472 +9963 2498 2710434 4 +4578 5114 2710436 8 +3818 1644 2710444 54 +8753 1985 3259527 191616 +1710 5872 3438511 134329 +8422 3787 3671329 2 +8418 905 3671329 2 +79 4947 3671330 470911 +9303 1316 3694822 2 +6247 2939 3866854 193046 +4978 5387 4092495 390102 +8902 373 4114138 44392 +9458 910 4133575 40557 +11056 505 4427380 17177 +11371 1366 4446450 4 +4948 6844 4481565 8 +6990 3803 4481567 193048 +1126 323 4665511 5 +9826 1578 4749656 8 +1375 6115 5024098 9 +1433 5827 5034406 390989 +6051 6436 5249837 124 +2898 7788 5383043 8 +3911 2635 5383047 8 +977 2710 5383052 2 +7453 3030 5383052 2 +1010 2813 5565049 1 +6126 2523 5641556 2 +17 2169 5645164 257240 +10001 608 6117177 9 +1394 7542 6122986 9 +1996 5077 6277716 5 +12102 449 6277721 8 +4335 7053 6781242 1 +1906 2979 7028950 9 +2501 8015 7105450 794810 +9152 1587 7878343 3 +1200 8185 7938981 4 +1941 3788 7938981 4 +6385 387 7938981 4 +1482 10989 7947074 299 +18 10814 8790464 172 +6083 358 9102608 17759 +6109 2156 9415029 85932 +2465 4417 9459597 424650 +2625 4927 9477365 523745 +6339 245 9517331 13 +11561 3 9783382 2 +7415 3161 9783383 306032 +6490 5658 10023919 355478 +10463 67 10379235 7343 +2496 9197 10379235 7343 +8216 670 10381781 48693 +4917 3146 10580154 320261 +3769 398 10803465 10 +8978 2249 10803934 1 +5973 6779 10803935 1 +2523 4153 10826432 4 +4818 912 10998810 6 +5468 382 11033576 2 +473 191 11201006 14527 +5728 1901 11257900 2 +2729 7248 11294265 3 +7839 2234 11352695 160944 +2409 4462 11726786 161802 +2051 1967 11775590 917 +741 9416 11799069 2 +2041 9286 12173916 900109 +3323 3125 12563268 314186 +6720 1582 12563268 314186 +3824 5737 12955904 338520 +1302 1880 13275170 49685 +8393 1630 13277231 1 +4976 2330 13318218 233628 +1531 1352 13318218 233628 +1878 5889 13546007 600064 +6627 4865 13602714 235932 +9299 321 13822420 1 +2272 1344 13831410 120238 +4985 7480 13868354 200413 +2642 6699 13927784 213 +5682 3782 13927873 8 +267 3270 13961478 2 +5086 3345 14833900 6 +4294 8086 14833903 236297 +2054 7345 15368836 3 +1606 11156 15579316 3 +10427 57 15863252 4615 +4958 6139 15867351 688204 +7163 3437 16354268 149372 +4039 5940 16354268 149372 +1592 11379 16523237 5 +2589 7068 16975900 2 +2805 675 17133103 59956 +7871 5105 17455629 5 +457 12227 17573015 6 +2306 4507 18012888 101208 +879 5952 18183919 4 +1504 9927 18323316 832377 +10509 2364 18680112 98389 +1038 2710 18778427 152260 +4809 6209 18902812 426797 +11694 279 19155981 4 +3181 6541 19449034 552956 +83 11400 19842942 331265 +4120 146 20108342 10924 +1445 170 20114971 6388 +981 10201 20121418 575394 +1803 10944 20603129 1101901 +6077 4000 20622577 295132 +541 12410 20678176 3 +6392 3759 21570454 3 +4649 4280 21640619 4 +1996 6059 21792055 8 +8861 1641 21927081 3 +6693 1559 22291671 75960 +2316 2494 22358356 145920 +4793 7410 22397027 2 +7588 4843 22662148 1 +3586 7836 22662148 1 +1214 65 22856170 5280 +8593 1798 23167904 127821 +9317 2007 23182623 158794 +800 7395 23319176 4 +5916 6403 23319177 1 +5695 4664 23849581 3 +10494 578 24067890 20799 +1169 880 24084815 9 +2523 9816 24230409 982779 +7335 657 24593003 4 +3958 2293 24624675 2 +3987 2729 24624675 2 +2057 10334 24716193 2 +3669 966 24886184 1 +6189 1253 24890254 3 +11599 1209 25043110 111959 +4375 2544 25043110 111959 +5773 5472 25099097 2 +1059 2557 25180305 3 +155 145 25562710 2 +47 4205 25565435 6 +2173 7134 25654798 559865 +6982 4843 26077614 5 +5091 235 26206553 4 +8398 3046 26206553 4 +2078 4428 26206555 89277 +9276 2590 26354530 94295 +2163 9240 26437131 1025900 +5670 1939 27311440 3 +2892 26 27354931 3 +10914 1350 27354932 3 +5490 5211 27396679 5 +4695 3621 27396679 5 +1852 6902 27396679 5 +8273 3332 27396681 73108 +5456 6334 27458279 2 +4744 577 27591674 5 +6692 60 27591681 2402 +5919 1281 27593253 4 +3494 2017 27603490 155515 +7947 992 27720506 99279 +5350 6415 27797220 220864 +9040 3666 28258367 292017 +4391 8549 28258367 292017 +8588 1837 28283443 146933 +3068 358 28403323 3 +364 9050 28403326 610854 +3133 5382 29005875 362415 +6255 3245 29649023 4 +3577 8403 29732877 4 +5857 5335 29939665 525491 +88 4359 30261397 97749 +8414 502 30261397 97749 +3645 1627 30291492 87963 +558 457 30944195 4 +311 3168 30944195 4 +10651 2 30944196 160 +2482 1799 30944292 127274 +174 2484 31109630 3 +8319 1507 31109630 3 +2345 3907 31153940 348642 +202 3993 31394801 152760 +2675 7601 31552852 4 +1836 10234 31730919 5 +8821 3638 32057515 6 +1513 857 32241828 2 +6879 5965 32241829 6 +5438 79 32241834 5794 +8676 3385 32245436 5 +2580 7967 32725097 810571 +2431 6389 32850714 274449 +1270 9765 33131325 1 +780 10453 33392702 232342 +1492 2129 33441770 8 +7495 2537 33452322 268382 +5864 4118 33604145 421083 +6704 6106 33904310 7 +1548 11365 34006578 619154 +6058 1894 34551320 191324 +3155 6100 35236558 256537 +11121 539 35515149 8 +4289 4062 35515149 8 +6 9847 35608939 1 +3124 5105 35617189 9 +2070 10318 36431751 2 +5938 5887 36643400 3 +3924 7228 36643405 188 +5291 7141 37234421 366682 +6092 5166 37238623 232145 +7045 4880 37490638 1 +3168 2341 37564933 1 +601 4575 37812595 4 +698 7106 37820497 1 +812 8074 38010645 3 +3087 8257 38010649 738454 +10220 2211 39029215 233652 +3039 1513 39414118 2 +9993 1468 39431887 3 +4877 5128 39432588 4 +3563 4723 39508200 459604 +9425 1176 39508200 459604 +6984 2750 39727542 5 +289 7696 39936992 705901 +10813 375 40402528 25903 +176 9024 40427122 226912 +2685 1796 40564366 189174 +2527 724 40799778 3 +2552 7002 40799779 252009 +583 7748 41072431 2 +2700 589 41072432 1 +4868 4573 41077199 532857 +4327 6550 41150351 482993 +4301 7826 41568267 400645 +4992 7124 42222844 161248 +2123 8170 42500921 7 +11477 86 42650601 7 +1126 9065 42651422 362128 +5856 4380 43013678 6 +5143 913 43013679 5 +667 5780 43013682 524292 +5365 1590 43238830 52951 +1787 7681 43293251 640838 +6712 5702 43971992 4 +2543 5069 43971993 151935 +4759 4483 44142397 460081 +907 3601 44469310 4 +3369 7774 44586300 329548 +4246 272 45065485 32421 +3355 4518 45094612 180719 +4916 2440 45190661 7 +79 9370 45193326 3 +167 8258 45702062 4 +7881 4375 45702064 264645 +9949 2344 45802901 46 +9551 3335 45839557 89299 +5040 2736 45856604 2 +1217 11415 45856605 3 +398 8595 46143028 3 +1860 6180 47083827 731990 +5065 284 47608515 18614 +9050 3715 47626283 2 +6420 958 47669623 665 +2397 7084 47847953 679502 +1886 5718 47862394 2 +1804 3584 48072892 403718 +4159 4108 48072892 403718 +2011 332 48095066 6 +5713 5442 48098430 559607 +3504 5519 48387635 347687 +9467 2907 48618053 1 +6501 1709 48618053 1 +5206 3991 49186266 416717 +4646 4932 49708992 8 +59 7976 49708992 8 +8147 265 49708993 26527 +7209 2199 49911998 4 +357 678 49912000 33750 +547 8149 49912083 4 +2547 6818 50147809 340688 +8768 2675 50257326 140593 +3723 2009 50369601 5 +6369 3409 50379128 138553 +4213 6654 51080008 3 +1785 4258 51204630 6 +10051 2728 51359561 299898 +1165 2463 51494423 3 +5440 6508 51542976 553534 +7707 2338 51542976 553534 +6745 1302 52085873 73192 +699 1891 52117504 4 +8630 454 52117505 43316 +3663 5458 52231646 54 +392 2121 52231697 1 +5113 5552 52302061 9 +4165 790 52302065 1 +4125 665 52314025 78414 +2209 661 52362098 2 +233 2897 52362100 67527 +2150 9103 52464303 3 +4644 7593 52830650 304228 +5487 4985 52846198 3 +1386 7153 52970759 703289 +11848 40 53396185 1339 +5424 6402 53397618 408415 +2330 9004 53407389 722708 +10085 2272 54347927 5 +7699 2461 54347928 124931 +7068 2406 54347928 124931 +498 4328 54347928 124931 +9045 2211 54475312 257407 +3266 1182 55060925 1 +1387 4098 55084426 476931 +1136 2735 55084426 476931 +1325 9782 55200961 870580 +4435 2869 55711804 4 +893 10039 55711804 4 +2985 1835 55954852 775 +2284 9192 55992915 700732 +1232 2659 56085824 135757 +857 8055 56204281 3 +4372 8183 56229323 303767 +3023 8853 56320345 8 +3263 8384 57112341 5 +5587 3158 57343350 3 +11490 1 57343350 3 +2067 5259 57343378 108184 +570 650 57344225 59663 +7703 4504 58158955 3 +3801 4759 58323743 398268 +9755 966 58325015 29632 +3126 6760 58356848 308096 +3678 1171 58630525 5 +4831 1642 58630525 5 +1525 6043 58669045 619045 +4012 2846 58790148 3 +11980 445 58790148 3 +2416 81 58795090 8242 +171 5074 58800225 605640 +4065 6871 59015035 3 +295 6037 59015035 3 +682 1194 59213928 7 +9878 1108 59217648 129813 +4791 7055 59322818 1 +979 2638 59322819 179770 +2444 2353 59322819 179770 +7066 930 59620135 4 +221 662 60244922 78718 +7225 2160 60251607 41 +2717 3574 60310956 94070 +5154 5719 60911540 662127 +6687 3516 61042923 123009 +1094 6707 61124589 329867 +7312 1311 62086910 86948 +4109 7200 62166226 48 +2823 3368 62166257 396656 +3697 5308 62401109 3 +10219 1920 62612344 10 +6633 747 62663391 2 +4862 645 62672103 137 +8997 107 62683543 1 +4062 6119 62683543 1 +3557 8466 63014100 559665 +3297 5376 63073143 4 +5571 3966 63759967 223471 +4024 6977 63844439 5 +4330 4798 63883526 154241 +580 891 63903347 89091 +2438 7549 63963359 2 +1581 8667 64224785 8 +3963 960 64293696 2 +3451 7963 64929711 107 +143 9858 65175615 7 +29 11050 65489813 2 +543 8976 65868254 4 +2297 10230 65868255 2 +393 4240 66088851 292065 +1814 1251 66284206 87867 +9349 314 66393449 2 +2516 6221 66394478 348934 +6256 3899 66983042 260828 +5923 4602 67152476 402429 +10495 1155 67317310 2 +1722 5360 67336094 169847 +4508 6110 67547747 326370 +4939 2627 67836441 169775 +389 2257 67978733 5 +118 10461 67997651 3 +7679 2048 68786195 237673 +1025 9698 69131895 4 +5833 1705 69342912 175811 +4173 1325 69506355 137417 +5464 69 69600548 4 +2001 4691 69601792 1 +2339 9687 69782184 866685 +3971 3221 69782184 866685 +6939 780 70423927 29323 +823 4956 70543465 8 +3485 5171 70617133 285685 +1879 9850 70716043 276241 +5193 1971 70717642 122161 +4404 4353 70720022 408970 +3399 8378 70913408 5 +4214 5835 70929209 126953 +131 2171 71154362 7 +183 1777 72332799 200383 +2591 3782 72457992 321133 +1369 11469 72737130 1196035 +7496 1472 72938806 133942 +5100 6810 72961139 2 +431 1145 73205382 3 +6505 3755 73371179 432134 +1746 7065 73395096 226886 +1891 6759 73644540 775281 +9725 1792 73748980 189376 +384 2785 73774221 79100 +9213 1737 73777961 2 +2799 2957 73791214 246014 +9111 1374 74205142 3 +3221 8867 74205144 8 +15 4041 74205144 8 +3744 2973 74286215 278040 +7962 3160 74460735 2 +1238 10438 74464821 249691 +7441 1429 74548082 44056 +2444 4836 74563155 4 +5340 1504 74640622 4 +6024 6866 74694950 4 +5537 4316 74773602 5 +987 4487 74773602 5 +9857 1024 74798056 6 +3824 4499 74798056 6 +4639 2369 74798059 209796 +1578 2699 74947404 3 +175 7058 74947405 3 +10077 838 75160543 1 +4438 7525 75168707 823824 +478 2939 76354246 223282 +6786 4954 76464579 307784 +9489 3007 77599457 154529 +4716 8099 77748699 4 +2951 509 78358510 5 +3697 3224 78364150 66312 +2939 4267 78395821 162617 +5959 4876 78429420 3 +8840 866 78506691 92996 +4078 2990 78511952 6 +2077 2307 78528040 170546 +1406 7029 78726336 10 +9322 988 78749989 66534 +6631 1374 78803830 9 +2747 8141 79611602 3 +2580 4767 79611602 3 +4500 4310 79624363 459550 +200 3854 79624363 459550 +2223 10699 79938426 2 +4439 4233 79972924 5 +7957 1589 80008344 4 +2863 7880 80008344 4 +2545 9170 80021775 52 +3135 823 80259795 17076 +1763 3457 81270611 107165 +10814 793 81384305 28641 +9508 2479 81415574 7 +3158 4097 81415575 2 +9267 755 81415575 2 +7935 2228 81443331 217049 +4135 4258 81498770 416524 +8949 1934 82381839 5 +2218 8329 82431066 2 +6387 5210 82433041 7 +3838 6229 82433045 471214 +934 3708 82461053 410066 +14 7780 83053597 3 +6450 2766 83167847 70263 +5340 5299 83186317 3 +3786 8378 83853304 40 +9895 1445 84132105 3 +1594 2477 84440327 5 +515 8732 84501329 47 +8696 320 84501348 9389 +1785 4441 84506360 304485 +2256 5589 84804902 1 +4363 6352 85060544 1 +7784 499 85060545 17332 +5029 3023 85060545 17332 +4837 2342 85060545 17332 +3939 2420 85294029 136390 +407 5461 85682255 250396 +158 6700 85682255 250396 +745 8662 85923679 10 +1284 8222 86195372 939973 +10362 2088 87628969 2 +47 7012 87682671 9 +3663 6520 87685622 2 +5426 5535 87924045 7 +38 2229 88020422 3 +71 1014 88104283 95607 +4582 2543 88298644 2 +3453 4832 88298646 155 +3644 5254 88472677 413850 +623 7654 88472677 413850 +439 2333 89073283 250121 +2404 7552 89236872 376658 +2997 4217 89268882 443965 +3486 7106 89532832 2 +4899 5058 89532832 2 +7895 8 89532832 2 +3616 7691 89532880 3 +5879 1993 89774751 7 +4245 3461 90519512 255080 +5882 3768 90705959 3 +4780 2858 90705968 146495 +3649 4756 90845142 362759 +5015 2672 91093657 1 +5167 876 91093657 1 +2482 4257 91127657 2 +4947 3313 91233430 10 +9423 520 91289913 31636 +11860 395 91316935 4 +7751 4373 91316937 3 +3122 2396 91316937 3 +5614 3788 91773991 4 +5025 4673 92103197 315716 +2072 10771 92128963 2 +8900 346 92466825 11708 +1883 2187 92468167 4 +4016 8347 92502535 375916 +8552 3467 92502535 375916 +4644 4537 92857268 2 +12 5807 92857269 1 +6393 5750 92888609 6 +7221 2609 92888613 59 +3848 5684 93805393 4 +5052 6069 93959395 9 +1143 6049 93959400 190792 +5971 2916 94166717 9 +929 11254 94618467 1329725 +1216 417 95160947 8 +6298 5757 95160947 8 +3716 7488 95168805 194862 +7740 555 95372710 34259 +2216 5374 95399565 2 +3638 2042 95399565 2 +1229 4459 95473041 9 +10072 1163 95586821 125611 +553 4177 95671738 492181 +3310 8045 96441580 194230 +194 1365 96760484 140694 +8235 3303 96898705 121065 +1547 402 96927161 12895 +11496 257 96929876 3 +4874 32 96929876 3 +3439 2142 96929878 9 +1987 2805 96929896 167724 +6637 2956 97084982 46 +1350 9757 97235416 5 +2516 8323 97510916 730205 +4351 648 97510916 730205 +8522 363 98139979 3 +5709 2328 98176840 3 +4124 7937 98255791 4 +4586 1855 98302763 3 +6563 2767 98302766 4 +5259 7383 98365513 413666 +3371 8875 98898921 7 +1340 2578 98898921 7 +2230 7690 98999224 525962 +5766 2108 99465112 52703 +4418 6772 99465240 677372 +4393 4896 99900643 2 +5222 1616 99900643 2 +1813 9377 100180806 14 +3536 8512 100180812 2 +326 1810 100380431 7 +4356 7339 100380431 7 +1391 3759 100380431 7 +9429 3104 101264799 337396 +4850 7201 101551836 6 +4798 301 101767530 4 +3275 5795 102086542 5 +1998 10320 102086546 5 +226 5902 102476380 190005 +857 89 102700024 5 +5830 2880 102700024 5 +3846 6832 102769512 458258 +4052 482 103164222 3 +4585 2788 103164224 263477 +1436 11415 103270211 1050136 +189 5162 103703287 9 +4611 6257 103703290 575398 +12079 375 104345210 2 +3223 1526 104348657 83308 +1052 9612 104348693 5 +1578 1984 104547144 62373 +2841 922 104551712 34719 +11945 251 104590985 7 +1525 3124 104590985 7 +10957 1997 104590995 59 +309 11153 105346695 1 +5845 3124 105419906 43 +2348 10478 105873469 985900 +6253 6133 106472231 368982 +734 12107 106732472 6 +2808 2470 106769060 3 +753 7431 106769062 288378 +8743 3259 106842141 3 +4646 2474 107440413 138802 +8065 588 107711357 1 +5959 5835 107717709 3 +3003 3341 107942709 10 +3975 3980 107979671 3 +816 7516 108142202 4 +750 6408 108142203 3 +6981 3622 108178411 3 +321 2608 108846747 1 +9208 3416 108932418 134485 +2667 965 109067692 8 +10564 1383 109068619 7 +2502 9443 109283757 4 +710 3851 109714056 2 +5001 6135 109815511 5 +508 2373 109990654 4 +4475 2483 109990661 2 +6853 3268 109990661 2 +2949 8216 110024233 5 +8045 2330 110345446 5 +3245 5266 110345447 2 +1832 4070 110502572 7 +10405 1378 110651924 37440 +7886 4582 110977421 5 +2700 999 110977422 25266 +6674 2540 111008191 3 +530 10169 111053299 9 +1097 870 111428371 57083 +9940 2469 111463368 5 +4788 7648 112128333 9 +2376 10155 112128335 2 +2278 5070 112294192 8 +2329 3264 112486657 143144 +1650 7255 112488382 214161 +8042 1615 112633378 100980 +3939 8224 112709597 437980 +1075 1878 113081379 159889 +5992 6236 113236760 375829 +2060 10763 113350257 962445 +358 2145 113350257 962445 +975 9146 114907978 1 +6438 3762 114907978 1 +1423 7807 115036289 249 +336 9523 115284948 815499 +2177 7501 115547816 546071 +5934 5945 115982870 553767 +2934 4939 116408779 144199 +5299 1894 116737311 92247 +1535 7677 116801864 5 +928 2034 117060139 175197 +6692 3090 117163135 219250 +4003 2497 117353416 5 +5328 5002 117407089 2 +4874 4728 117521645 9 +12076 613 117521645 9 +9336 141 117525626 4662 +157 5849 117530324 3 +1087 10928 117734148 703480 +1138 4755 118207907 5 +63 7129 118319711 493058 +9037 1790 118429075 4 +4754 604 118429075 4 +2251 1141 118429075 4 +133 5591 118472880 164337 +627 6942 118689333 1 +2053 6658 118835296 150136 +252 9508 119304232 3 +2327 824 119304233 8 +2613 7132 119304233 8 +5162 4920 119304239 246239 +4730 5904 119341289 518799 +1845 5500 119752993 537032 +3909 6387 119807969 202 +6091 1039 120037348 106100 +8385 951 120042176 3 +2092 3605 120061006 5 +10156 513 120068369 7 +12056 720 120122464 2 +1683 9870 120694635 4 +9493 1987 120694637 1 +4298 2508 120694637 1 +5870 2280 120694637 1 +585 3444 120694637 1 +8192 1328 120694638 75854 +6239 3510 120727193 2 +3585 1933 120727195 73074 +679 12161 120739720 837787 +1418 590 122729863 47276 +5476 4367 122765581 2 +1498 2771 122806075 229882 +54 9466 122806075 229882 +2301 10161 122937690 528495 +1398 2494 124486111 2 +3535 1663 124557547 3 +543 3781 124590251 7 +3136 9760 124590252 3 +824 5180 124618259 1 +6005 1957 124729198 3 +2309 7748 124743426 337339 +4138 3407 124743426 337339 +3054 8932 124900612 3 +5058 4755 124989399 462122 +2779 582 125187716 5 +4016 8918 126121166 2 +692 3990 126121166 2 +415 11859 126221518 251896 +1380 5270 127307666 4 +4277 8384 127362190 4 +2958 9834 127654685 9 +9060 2742 127654686 3 +950 5936 128502314 407479 +5568 329 128845191 9 +7943 4131 128850622 9 +1304 5585 129013237 204465 +11080 538 129207188 6 +5451 2809 129207188 6 +842 6437 129257771 8 +3002 8798 129462105 2 +2403 4110 129462105 2 +2610 6483 129462106 2 +2492 1546 129496812 113404 +1523 11340 129862049 1224065 +10824 870 130637092 56523 +5003 1989 130674860 5 +2869 1699 130705766 172001 +124 9984 130765614 386367 +7343 4993 130927312 4 +670 12080 131122810 1280509 +3981 6371 131737524 349621 +4586 3704 132403994 405043 +7253 2084 132655139 2 +9687 86 132713709 8846 +4789 6495 132726801 405611 +5944 6947 132832486 9 +4488 3534 132832486 9 +2480 9856 132832488 3 +5058 14 133770330 3 +5454 5313 133770330 3 +2910 7581 133770330 3 +4934 6882 133963970 179656 +463 6026 133963970 179656 +2401 5150 134176492 545148 +6241 5909 134569457 134843 +2913 8396 134801189 3 +9413 2453 135073795 7 +2543 736 135073798 33878 +6804 5806 135078085 147271 +7073 668 135243232 1 +7810 3541 135269868 7 +5039 6246 135269868 7 +858 11737 135269871 417262 +5724 6198 136795896 2 +5339 3347 136889935 330458 +3531 4069 137378617 482564 +1631 2547 137378617 482564 +6527 1922 137802715 4 +1224 4937 137821321 315362 +8827 1603 137919353 99190 +144 10468 138007932 1056617 +8148 4052 138199202 4 +9453 2781 138208612 3 +7618 1282 138208614 62226 +7900 4600 138261345 395234 +11011 1191 138404079 4 +3213 6856 138643122 1 +8987 574 138643122 1 +5965 1711 138643122 1 +1999 3470 138643122 1 +1200 6421 138709894 753848 +11417 995 139570961 3 +2283 9057 139593127 1 +7048 4530 139953102 497591 +9772 186 140465984 6 +4108 757 140465988 79329 +1447 10327 140485316 941727 +164 7694 140706892 349019 +133 12630 141044046 897232 +4503 5069 141508396 4 +3722 8002 141508399 731187 +6454 4001 141544339 162449 +375 3291 141595728 4 +8008 2276 141820008 7 +134 2794 141873217 214750 +547 3908 141897311 233 +1783 6007 142159137 4 +2369 2259 142612585 176691 +2451 8503 142612585 176691 +1956 25 142625201 1801 +4655 844 142626569 2 +2191 8633 142662011 2 +5677 3844 142949848 2 +1284 4589 143062198 233 +1046 4615 143128668 82 +3377 2183 143875479 56 +1924 9700 143875532 373161 +2168 2080 143875532 373161 +1537 6959 145028300 7 +1747 4392 145028301 3 +5039 204 145270467 5610 +1515 2373 145278290 4 +5373 3160 145278294 4 +7655 4957 145282483 65 +2587 3259 145407930 245800 +4380 8480 145623345 10 +2152 1867 145623345 10 +6478 3794 145623353 2 +5237 4642 145970584 366751 +1355 9245 146146648 3 +7247 4050 146217627 359776 +1998 6931 146446939 762256 +2219 9903 147333525 2 +4105 1858 147399082 3 +5599 1644 147454508 6 +3196 9479 147455023 5 +3094 4332 147635805 13 +4408 1798 147635810 93462 +727 5788 147663395 3 +1932 1791 147777664 4 +4694 6804 147777664 4 +12042 605 147777666 39 +5555 702 147798460 75917 +7061 2680 147848571 1 +6700 1376 147848571 1 +6908 5393 147848572 7 +7105 4378 147848572 7 +2130 4078 147848575 2 +8115 2036 147848575 2 +6160 4560 147848576 283129 +3006 414 148317472 4 +689 2079 148324325 7 +8362 3588 148400614 2 +5048 2355 149032490 154302 +5954 4439 149165782 285289 +2277 8227 149397303 506252 +3981 1366 149830328 72975 +5820 6926 149864115 287847 +6534 2104 150008908 243810 +285 9284 150193754 364790 +8117 2018 150560435 5 +1610 4919 150633463 518095 +2444 7076 150748834 4 +3467 748 150748834 4 +2939 8888 150754755 3 +3960 7491 150754756 874854 +646 2966 150754756 874854 +8675 3837 150781316 2 +1007 1545 150872851 38130 +452 3008 150927008 4 +8750 224 153342653 5 +8887 691 153348596 60 +2777 5142 153362126 476504 +1056 9471 153737964 10 +6850 164 153737970 12956 +9909 2018 153737970 12956 +2672 1481 153767965 3 +1817 2177 153767966 108 +6629 1190 153767966 108 +8226 2545 153767966 108 +5723 136 153767993 9 +1379 7948 154650266 2 +9805 2355 154650266 2 +2535 2391 154650266 2 +2109 7346 154694560 280725 +1461 5017 154694560 280725 +5285 3195 155583508 354624 +1120 11735 155720913 1 +12433 313 155720913 1 +2113 1173 155720913 1 +7468 3665 155720914 4 +9410 1944 156599985 6 +8287 2761 156599985 6 +6113 3414 156647566 303868 +5811 4108 157041207 4 +1162 11260 157066615 892997 +12518 458 157702761 2 +8713 3985 157702761 2 +7716 3089 157702761 2 +459 10038 157782831 3 +6053 2870 157782831 3 +9180 1142 157852158 85894 +4497 5221 157852158 85894 +2720 9769 157921443 1 +2038 3139 157921443 1 +9707 1662 157921443 1 +7102 2806 157921444 6 +8395 639 157968669 3 +326 2931 157968686 5 +4159 4542 158595451 3 +12137 53 158595451 3 +636 2204 158595452 60 +3135 3430 158595480 6 +7489 362 159005259 37620 +1463 2573 159013167 242464 +542 9185 159165805 602629 +2977 7152 159552028 4 +5368 3161 160602823 3 +2166 8600 160701992 332561 +13 7538 161037857 4 +7966 2785 161271718 2 +694 9160 161307444 2 +9254 3659 161307445 312029 +6061 1739 161316129 142565 +2289 8752 161406776 362611 +11807 48 161650059 2643 +3833 2181 161651939 3 +7428 2539 161666852 164 +4610 6078 162432483 2 +4839 3158 162432485 1 +1817 9097 162987411 2 +393 12214 162987412 4848 +6070 1581 162988095 59715 +4293 906 163059828 69505 +100 8524 163128760 645956 +480 1268 163128760 645956 +9244 2145 163964404 219817 +1199 5622 164163309 9 +2960 3714 164347709 852 +1002 2302 164682966 4 +2273 2541 164682966 4 +6983 1654 164682966 4 +2040 5840 164739254 5 +5212 4802 164853128 2 +10105 1006 164922260 109787 +2359 5083 164926554 111964 +2040 7880 164954392 813028 +3484 7193 165185426 5 +7335 3553 165318899 228588 +588 5838 165436151 4 +8786 2034 165436156 5 +3314 2693 166223530 286870 +2874 6055 166484232 2 +3294 8126 166484233 3 +4923 3066 166720524 3 +6406 160 167273969 3 +3842 587 167604458 10 +3070 5916 167615545 547333 +2245 7812 167659560 337880 +8061 695 167978467 2 +7127 823 167978467 2 +1059 8970 168002075 8 +8424 859 168158919 2 +598 2169 168330228 5 +487 8796 168330230 203311 +2936 2544 168574579 4 +4231 4105 168926144 2 +782 8803 168926144 2 +2058 8317 169193219 3 +5869 4591 169193219 3 +1386 10003 169233328 957594 +9423 751 169642555 35875 +7392 396 170384896 5 +2352 2378 170384897 3 +6464 6204 170384897 3 +3652 3414 170589236 126961 +755 344 170724543 15779 +1489 6151 170732965 8 +4700 8064 170732968 34 +375 879 170958275 3 +5317 3777 170972684 212433 +134 3367 171181893 35 +4324 5528 171181898 2 +7823 2299 171181898 2 +9734 2811 171187886 4 +2928 9235 171187886 4 +2715 3291 171187886 4 +65 714 171187887 2 +6605 1754 171187888 216 +9757 659 171188130 10 +2550 3960 171207856 6 +7052 5550 171207857 7 +7367 5087 171278458 3 +2746 4370 171278460 2 +549 6617 171393042 1 +3244 296 171393042 1 +1277 11112 171393043 4 +4045 4923 171753092 193696 +2089 5157 171946999 201964 +3727 6383 171998759 722223 +8513 3064 172655443 367213 +1075 2744 172811664 3 +5122 7801 172842584 1 +149 3008 172842584 1 +3798 6499 172930895 384125 +9835 872 173269790 73740 +5695 232 173341688 6632 +2225 6919 176208942 5 +11673 202 176208947 17230 +6240 1083 176218671 8 +6542 313 176510864 13707 +1496 10113 176524189 795605 +10846 1117 176949097 61997 +1630 2018 176995703 5 +6675 2652 176997312 2 +3000 8633 177095887 2 +10601 547 177739992 6 +3334 7636 177804097 5 +9452 2451 177804100 916 +9125 2319 177819629 171388 +4507 1441 177845599 149611 +200 3764 177946307 137071 +2225 297 178091761 1 +526 662 178091761 1 +4203 1637 178091761 1 +7204 2464 178091761 1 +749 3615 178091761 1 +5591 2450 178179396 7 +1247 10447 178210429 4 +3072 1153 178227666 6 +3324 2555 178227669 3 +214 1244 178227670 80835 +11095 916 178237425 43106 +2687 8820 178455501 377772 +1953 10221 178570642 3 +3069 1748 178570643 10 +4533 2586 178604644 141670 +3444 1066 178734649 5 +4462 5380 180186405 1 +783 8334 180255442 2 +445 9529 180327622 6 +2047 3243 180327624 3 +7162 4631 180433519 399220 +2287 8690 180667077 5 +5135 5468 180667080 2 +9322 76 180846126 4 +1061 9759 180846126 4 +2078 3473 180846128 9 +3348 8334 180846129 5 +5458 3563 181077561 78229 +3774 6016 181125555 2 +3099 6710 182360790 4 +1456 6899 182494223 288460 +5829 4814 182494223 288460 +6377 3721 182494223 288460 +2804 4875 182517109 1 +5000 5991 182536955 588473 +8514 786 183576006 2583 +961 11367 183603039 3 +5289 1231 183981396 54793 +14 6409 185575545 561556 +2325 1653 185618898 9 +286 11911 185618899 632633 +6513 5251 185907476 6 +1700 4315 185959391 5 +3534 4133 186011609 3 +3403 1979 186011612 3 +4619 2926 186041900 4 +4558 2758 186041902 43 +823 7361 186135118 1033 +9087 1769 186258583 65981 +3987 642 187025425 5 +9084 3823 187025427 3 +7418 3106 187025427 3 +9564 446 187112520 917 +5786 315 187129362 4 +850 11654 187140864 26 +10341 2037 188394692 10 +6138 3215 188398838 1 +1096 2583 188402540 161 +2718 4860 188402665 492215 +937 8359 188882395 880349 +3335 3989 188882395 880349 +11394 986 189244593 3 +4572 1866 189283201 2 +1946 3455 189320470 10 +2355 3730 189320471 5 +127 2431 189320474 6 +12422 261 189568258 5 +7870 2424 189568258 5 +3271 2771 189568258 5 +9135 2922 189568260 194244 +3554 5390 189611325 458368 +4041 6836 189611325 458368 +806 9469 189812073 8 +3056 4172 190105753 749 +43 1452 190393321 4 +3231 3267 190393323 3 +5479 3900 190435217 8 +4875 1469 190435217 8 +5858 1224 191471076 3 +81 11684 191471076 3 +3401 5672 191830878 22 +3892 3095 191830878 22 +4875 2251 191830897 3 +5855 44 191830899 2 +1588 8594 191830900 1 +2574 7314 192042333 832292 +3625 5330 192336597 1 +4939 5495 192336597 1 +4727 6496 192338120 660696 +6132 303 192634350 3 +4446 4867 192634350 3 +1894 2059 192825277 188278 +5533 6865 192890258 5 +1575 5518 192890262 2 +5838 3134 192919269 4 +2342 5726 192919271 3 +5131 5856 192919271 3 +7582 4571 193138687 9 +1641 10320 193839984 9 +3485 8694 194076934 4 +2846 4214 194076934 4 +3592 7973 194210415 359462 +4159 1030 195289555 3 +1134 9597 195289555 3 +5855 3311 195289555 3 +2358 2117 195310295 5 +9052 1992 195310297 197864 +4299 3416 195427303 9 +4286 5011 195427303 9 +4085 7897 195427303 9 +4776 609 195427304 1 +10687 403 197362170 1 +6483 5579 197376418 7 +5262 6240 197464540 1 +11835 125 197590746 9 +8111 1061 198061527 85001 +4068 1751 198562840 93304 +2188 7965 198587164 565318 +9116 3363 199076635 283398 +3993 2841 199128886 335447 +6924 3094 199351231 3 +7889 321 199351231 3 +4775 7963 199351235 6 +9772 528 199351235 6 +3736 2210 199354340 6 +6274 952 199837364 56087 +7612 2968 199903742 2 +1099 2054 200201098 190068 +1531 1454 200499407 4 +630 4686 200533472 5 +3128 4939 200645617 4 +8019 2891 200645617 4 +2504 6213 200645619 439091 +828 4855 200695164 10 +1542 6580 200696440 3 +4180 663 201327282 68648 +4487 1228 201327282 68648 +469 11869 201343013 2 +6962 3876 201360458 47 +1131 8584 201498268 3 +8647 2559 201498270 5 +10880 770 201551108 3 +433 11827 202776748 920461 +8438 1582 203161020 45 +5672 5483 203161060 318074 +1982 6292 203161060 318074 +1819 3213 203454190 2 +8124 3453 203454190 2 +3771 1587 203464869 3 +6883 1209 203464869 3 +2457 6027 203464874 591380 +7506 1371 203916266 61928 +10577 1735 203977037 102831 +7309 955 204050435 40868 +9626 1943 204089868 3 +5402 6420 204421936 159481 +1258 6488 204421936 159481 +7397 2755 204571914 1 +4131 6118 204674278 676008 +6536 4544 204926324 7 +2201 7714 205023470 7 +2236 5810 205023474 3 +1195 3629 206383033 5 +1744 1826 206383035 4 +9009 3093 206455843 2 +3216 7385 206455843 2 +8593 400 206647886 4 +7267 732 207142331 41 +7744 21 207170494 10 +6105 2851 207171309 225827 +1853 10237 207190351 60 +3535 2201 207190399 2 +1964 2890 207190399 2 +1219 2552 207258779 189674 +143 3901 207567909 2 +12813 52 207622242 4673 +3334 829 207629638 92 +5378 3998 207636433 3 +4963 3742 207636436 103835 +4151 2815 207663991 9 +7674 4729 207713051 4 +49 7228 207713052 8 +5960 5642 207938769 437828 +2618 7266 207938769 437828 +2920 6063 207949159 5 +3057 968 208109030 2 +8860 811 208109030 2 +10292 2172 209902271 201216 +2558 9479 210051036 3 +3989 2917 210191631 8 +3440 2523 210191633 61752 +2527 1752 210220982 4 +4334 2519 210257327 151611 +2228 359 210833370 38324 +1509 3761 210857078 4 +6198 6668 210857081 4 +2942 5639 211073442 225075 +1061 7041 211120295 398394 +9233 683 211120295 398394 +3580 2894 211535923 3 +3886 5855 211627139 9 +775 1923 211627147 2 +2782 3614 211648431 3 +2403 7235 211648432 208602 +3994 3411 212568667 1 +2623 3997 212568667 1 +5487 5304 212568667 1 +514 4740 212568667 1 +1718 2631 212568667 1 +577 3726 213419116 142220 +647 8186 213454352 554339 +67 2975 213829682 97841 +4746 2714 213941055 8 +2817 198 214011525 750 +1290 1031 214011638 4 +6223 6293 214027876 212499 +4107 3090 214076920 144401 +1509 5842 214076920 144401 +3410 4672 214196994 532424 +1056 3837 214288157 5 +204 8756 214315378 2 +7293 5132 214315380 4 +5108 2474 214408905 5 +2733 2974 214444781 2 +2227 3113 214466552 98271 +6620 5481 214590704 5 +7545 2627 215723718 176816 +1822 10588 215830001 919584 +7822 4886 216726364 154278 +4673 6303 217028987 237536 +3112 4253 217158987 122083 +5750 3633 217221144 5 +2818 594 217341870 5 +4130 3840 217352407 9 +3060 6402 217352407 9 +442 4258 217352425 5 +8251 129 217503927 1 +6140 1952 217507507 8 +5324 41 217507507 8 +2286 7417 217507512 5 +32 1649 217679377 43574 +10141 671 217679377 43574 +9054 3808 218089979 1 +8493 1900 218159004 1 +2437 6010 218159004 1 +2450 6034 218316804 606151 +2099 701 218727941 56090 +11356 439 218761936 27277 +10652 1049 218776935 51608 +10739 441 218828027 6 +1486 5912 218828031 304137 +920 1485 219114632 72651 +8106 1803 219181118 121 +5768 3778 219235655 2 +5985 1760 219274867 134773 +2445 1488 219389377 33430 +1719 2938 220067536 4 +6709 5233 220075336 217279 +591 675 220179035 10 +4180 2591 220191837 5 +7991 3813 220191837 5 +512 4515 220191841 5 +10449 1592 220336676 30 +9710 1666 220351449 5 +6664 2304 220351453 6 +1472 9747 220351453 6 +1142 8149 220351455 5 +5087 1558 220468688 9 +2293 200 220519127 21464 +8789 3679 220526406 190330 +3274 9417 220707196 5 +6867 5822 220707200 491822 +4661 3678 221203988 4 +3140 434 221203994 8 +4989 6597 221205383 191147 +1951 9039 221405030 2 +766 219 221700529 25678 +7319 703 221712533 9 +5292 2729 221712549 122836 +6821 698 221945915 67928 +16 3814 222013186 5 +1199 11720 222013189 2 +7942 3012 222396570 4 +1803 5382 222396570 4 +407 6203 224609917 176945 +3924 5694 224679888 412130 +3124 9017 225070488 14 +3180 9523 225070500 9 +923 2215 225070503 236865 +5288 2189 225070503 236865 +2134 8340 225272666 2 +1445 5889 225440651 4 +3101 6565 226149892 269159 +7841 99 226149892 269159 +4705 2453 226149892 269159 +6656 5983 226856535 3 +5041 5383 226878864 8 +3413 5016 227009134 5 +864 5242 227024582 5 +10253 744 227024584 5 +8751 1526 227763536 65903 +2395 5550 227807775 236621 +3846 8343 228036426 286 +1697 4565 228036426 286 +233 12285 228097029 1 +778 9607 228097030 9 +6112 3301 228097030 9 +6868 2382 229294357 2 +3860 3993 229365982 1 +8451 4068 229365983 261562 +4017 4989 229458637 3 +1405 7919 229458637 3 +3705 5314 229458640 3 +5306 3188 229487453 7 +10924 245 229535395 22223 +2097 2039 229535395 22223 +9221 636 229554088 3 +7413 183 230393036 8384 +10167 2568 231238311 3 +2215 7984 231238313 3 +10615 615 231402329 5 +6803 959 231402948 3 +1175 10435 231428471 602987 +2762 5166 232002404 247424 +8319 972 232246915 2 +581 12310 232283992 117 +12031 198 232560940 35 +8166 3223 232560966 364434 +6501 2865 232664533 3 +8329 16 232664533 3 +4849 3229 233153593 353296 +5585 3437 233399687 346446 +1059 5182 233672753 8 +3821 139 233672755 6 +9936 351 233672757 6 +1093 3927 233672758 173721 +7024 1603 233840507 95891 +173 11585 233933076 3 +1522 7191 234127836 4 +1451 3498 234267417 270424 +1508 8306 234594037 1 +468 6306 234839240 561681 +2814 4064 234839240 561681 +5407 3646 235041206 4 +2307 8732 235717604 5 +1912 4982 235717606 1 +2141 2264 235899296 51169 +2911 7541 235934114 4 +336 8885 236062230 4 +6213 4023 236062230 4 +7703 2770 236062233 222198 +4569 4729 236207370 10 +4791 5045 236207371 470026 +5643 5011 236207371 470026 +10859 339 236600536 13950 +9857 1573 236614473 1 +3401 3982 236645904 2 +5036 5968 237774902 645339 +10034 225 237833127 4 +2273 6644 237833127 4 +3033 3515 237890079 9 +6852 3463 237890079 9 +1684 5930 237890079 9 +2128 9535 237933228 8 +6929 3874 238159794 3 +3901 3149 238159794 3 +3195 9618 239347840 667987 +6978 2603 239762563 212737 +2746 4000 239959728 206743 +3656 4057 240152113 4 +1701 8460 240152117 4 +10601 465 240152117 4 +5792 7173 240250940 3 +5209 1814 240425143 95296 +4512 4253 240509619 5 +10829 1820 240509619 5 +7854 561 240509619 5 +5004 4822 240509619 5 +841 9483 240696434 848292 +630 5425 240927285 1 +2028 7483 240927285 1 +2825 2045 242723091 2 +8073 3383 242723094 161273 +3177 5692 242861450 3 +4802 6470 242869762 5 +495 6684 243116477 658474 +511 8182 243260552 536897 +8824 1716 243731044 105198 +6928 866 243804565 71972 +3538 8453 243806117 4 +2243 1175 243806120 32135 +3197 716 243806696 36678 +5235 4461 243837118 2 +4235 5824 243837848 610745 +6234 5026 244319224 2 +4924 2626 244319226 1 +1227 6429 244319226 1 +2860 6479 244319226 1 +149 10814 244383018 8 +3069 7893 244383019 5 +698 4279 244683899 4 +4424 7497 244683899 4 +2362 3253 244695384 4 +1019 1449 247037576 7 +2510 6511 247078152 8 +6775 2427 247232334 6 +3601 5296 247232334 6 +3760 6629 247232334 6 +188 8421 247426409 3 +5096 3429 247488357 119569 +7456 2098 247622484 3 +6771 6186 247635603 7 +2699 1461 247710460 2 +9779 248 247746243 20881 +8535 1913 249059067 210602 +2693 3627 249074581 10 +8848 609 249074585 8 +7883 4579 249074585 8 +806 8329 249074585 8 +3393 2702 249074587 2 +1677 10114 249074589 6 +2834 4876 249320580 1 +7326 1534 249320580 1 +4363 1328 249320580 1 +4638 2423 249321692 164 +635 5606 249321810 2 +4379 5434 249328824 5 +8917 22 249328829 4 +3643 7526 249328831 656162 +6502 6163 249336712 4 +5560 4677 249336713 2 +5231 212 249422336 20059 +1710 6928 249434005 3 +7366 468 249448723 45918 +10225 1074 249487938 2 +2873 8318 249487938 2 +7407 366 249487938 2 +4459 6905 249487939 4 +9884 2353 249487941 2 +4761 6940 249507503 4 +3361 6825 249875623 227927 +5423 4681 250122675 159351 +6093 4471 250309243 476996 +175 9620 250756546 7 +9613 628 250998434 29 +8004 3831 251008137 152963 +2337 7561 251161131 764107 +1299 1478 251161131 764107 +6020 2458 251314552 4 +4490 6417 251314552 4 +1177 2178 251556600 1 +7408 4936 251571182 5 +1425 7972 251571182 5 +365 1989 251571182 5 +7519 2987 251635344 216183 +800 9921 251635344 216183 +3852 5987 251878394 3 +6026 314 251948111 3 +7397 2546 251948112 77661 +3825 4498 252035176 180986 +13 6117 252215553 3 +7203 146 252315859 4 +2265 9108 252320063 1089183 +3683 7154 252339682 3 +2882 1131 252413260 4 +3275 9435 252414654 5 +3515 3708 252414655 3 +5570 3031 252513852 118223 +9255 624 252632766 22233 +937 9110 252656081 4 +211 1199 252656084 25761 +1996 8564 252667775 672642 +277 4179 253027881 9 +4214 2682 253057830 4 +8977 3113 253074603 8 +7716 311 253137218 627 +1167 9016 253139627 770458 +3910 964 256379933 70762 +1540 10397 256436573 4 +10021 488 256436573 4 +2324 2511 256436573 4 +129 4168 256441357 4 +3181 3476 256593369 4 +1157 7744 256593371 257 +7579 5371 256695403 893 +511 4598 256818130 4 +369 1861 256938169 2 +11257 188 256990441 7572 +4610 7205 256994450 2 +322 2483 257267623 4 +8192 3728 257350919 4 +1400 10491 257426020 813944 +2522 845 258036043 37121 +6605 3565 258036043 37121 +9808 1194 258130674 39546 +11881 997 258177664 54958 +612 2374 258230651 93472 +6527 2413 258324230 5 +149 10828 262884723 2 +7620 414 263045087 9283 +5189 6270 263061601 4 +7592 3536 263171681 2 +6983 2099 263206415 1 +4901 2441 263229967 4 +4148 6614 263322153 656443 +1493 3061 263509330 4 +9746 2564 263560166 258942 +7362 2927 263779755 5 +2710 1511 263779755 5 +976 7732 263779755 5 +3253 1437 263779760 2 +164 7515 263814452 4 +2455 7905 263814454 25 +2166 4796 263814456 411784 +5577 2094 263814456 411784 +1973 2284 263881265 2 +8387 515 263966302 24699 +1113 5986 263989526 3 +4385 912 263989530 46270 +8057 3498 264022324 7 +5638 4494 264022324 7 +2189 4420 264065982 28 +6743 5523 266447122 3 +1266 3331 266447124 321744 +66 10866 266463809 4 +4423 3981 266895744 2 +4398 1767 266991231 3 +984 7927 266991231 3 +75 1330 266991236 48762 +2123 7858 268994075 2 +7086 2104 268994075 2 +469 5419 269071139 6 +989 8135 269235904 3 +3018 4773 269235904 3 +10651 624 269239234 4 +10162 466 269239236 1 +785 10658 269239238 10 +3036 6821 269239246 3 +3809 4192 269239247 142 +86 8936 270672872 5 +7981 1562 270677373 2 +4028 7723 270677374 10 +3296 96 270677380 2985 +1273 3522 270681027 379006 +2750 6785 270870217 505293 +3246 4407 271359320 4 +2481 4276 271527633 7 +7777 2261 271527634 3 +344 6506 271614980 477040 +2888 5976 272068881 1 +2417 3632 272116617 7 +5733 6370 272116617 7 +6137 6206 272251010 3 +7877 998 272251010 3 +1781 4323 272251013 6 +3245 2519 272307250 57 +2514 6292 272307279 547632 +1890 5406 272307279 547632 +1210 3020 272700671 66804 +787 8310 272756714 1 +4395 1329 273058859 7 +2295 1092 273058860 32173 +12932 36 273058860 32173 +2566 1279 273062842 146543 +568 10024 273206607 3 +740 2884 273206607 3 +6139 2884 273206607 3 +11225 1133 273293908 6 +2962 9345 273326323 1 +29 3563 273326323 1 +2494 630 273326323 1 +8788 70 276150601 13 +2164 6795 276152907 662911 +126 9644 276382509 8 +3910 7308 276382513 8 +2641 3701 276382513 8 +825 6826 276395846 44 +400 4719 276395850 5 +1819 1271 276395854 25638 +304 2133 276402850 8 +3370 3958 276402851 405332 +1534 3341 276701339 3 +11435 638 276701340 9 +1537 5639 276701340 9 +7225 2990 276701342 5 +3674 2381 276701342 5 +8012 2301 276701343 7 +1072 7180 276701344 2 +629 10033 276893091 4 +4408 2875 276893091 4 +2928 9759 276893092 3 +6860 5369 278208583 347138 +8682 3075 278208583 347138 +2868 3389 278377147 2 +2173 4308 278377148 5 +481 801 278549309 3 +2069 7022 278558648 5 +6906 5651 278558648 5 +11617 315 278567708 6559 +641 5580 278573616 272911 +3708 7733 278829727 1 +8515 3551 279001822 196530 +2542 3411 279089674 42 +3709 424 279089674 42 +12103 621 279091669 55161 +2375 3204 279136467 7 +6179 6200 279147302 3 +2587 6565 280748814 2 +1940 6173 280748816 2 +6409 6067 280748817 321862 +299 3449 281525166 3 +4653 4898 281525168 380839 +946 2661 281736901 3 +4091 29 281736905 1 +6692 6207 282354520 5 +1353 6161 282565132 4 +3961 421 282565134 3 +401 3565 282565137 566 +1191 6711 282565206 1 +3598 4994 282565207 4 +7296 2709 282565209 8 +1686 6699 282565210 279 +7489 710 282779094 10 +453 10886 282779096 881558 +7683 606 283540143 5 +3321 3185 283554918 2 +1004 11603 283581622 4 +10630 311 283607929 25419 +1794 899 283624820 60833 +3 144 283624820 60833 +664 6876 283646300 5 +2597 5007 283704612 216579 +4150 2508 283916365 124999 +1955 1198 284017868 3 +403 9128 284017868 3 +793 11142 284289141 2 +2112 2818 285658509 17 +8816 2450 285723311 1 +890 4854 285723311 1 +5648 1908 285850616 6 +3586 5932 285878545 527520 +6513 2509 285995032 188808 +7676 4493 286135207 351513 +807 11431 289318511 10 +3267 1477 289318511 10 +4098 2387 289589601 2 +6540 3004 289589601 2 +1022 568 289699080 4 +823 2789 290107515 4 +3338 485 290107516 16516 +134 4765 290107516 16516 +7516 712 290107516 16516 +10356 1514 290124616 4 +123 2235 290124618 7 +3854 1644 290124623 3951 +6055 4566 290125472 6 +3449 5870 290208533 5 +2662 9136 290271475 2 +5549 719 290723270 6 +10434 375 290723273 17076 +4339 2242 290738789 224239 +1309 10636 290885674 9 +1195 1219 290885678 3 +10232 1277 290913946 2 +2456 1554 290956378 4 +4285 4780 291422839 1 +7087 4337 291775160 5 +4629 2144 291775161 218185 +466 7546 291970517 2 +6992 5581 292179910 3 +93 582 292179910 3 +3700 6745 292179910 3 +1280 6127 292431096 2 +2593 3859 292431097 2 +5978 547 292431098 47108 +6533 731 292471121 4 +2858 386 292488487 2 +8107 2500 292499204 3 +10441 1921 293334083 4 +4005 7276 293334083 4 +5046 157 293334085 6 +1323 1500 293334086 3 +6792 2962 293362015 91161 +4689 6405 293391899 3 +1531 380 293542622 33554 +3619 8909 293563918 668369 +1751 7545 294015691 5 +8349 1671 294187990 178257 +1581 5975 294223903 143 +4000 5930 294223903 143 +3698 1967 294393671 168 +4813 6913 294393783 5 +7710 3379 294562083 7 +147 9529 294562083 7 +1302 4258 294562088 34 +5205 2586 294562102 3 +1924 3335 294562102 3 +4887 4094 294562102 3 +2372 6327 294562103 3 +6391 3469 294811966 335732 +555 11355 295013551 1290080 +4518 5520 296094513 1 +9024 2511 296265591 1 +895 8592 296353724 675102 +6485 2415 296448051 5 +868 11451 296465122 4 +5324 6882 296465123 4 +4085 2784 297620627 3 +1624 6746 297655057 3 +4108 5823 297655058 232644 +902 716 297887793 5 +5946 4485 297887793 5 +3204 633 297887796 2 +7207 346 297907463 38789 +198 9220 297936983 1 +3412 3225 298095303 4 +6593 5899 298095307 462291 +1838 623 298479701 34950 +8252 2312 298510329 140793 +8526 476 298551864 9 +4235 5540 298569996 17 +7801 4858 298671486 7 +1607 10619 298857590 9 +8161 2289 298857590 9 +1961 2289 298857590 9 +5959 2289 298857590 9 +10674 706 298857590 9 +9740 1917 298857593 2 +4105 2626 298857594 271129 +9689 2729 299053464 4 +1273 10301 299053465 9 +108 2607 299053465 9 +1467 7506 299053475 4 +3425 6790 299158143 648054 +1891 10706 299522708 5 +7157 3517 299522713 383244 +4971 57 299849914 9 +3275 8377 299850586 3 +1731 43 300090839 2 +4189 2276 300090841 2 +4477 3518 300090841 2 +2750 1240 300090841 2 +2152 2914 300090842 1 +2117 1934 300090842 1 +6916 2190 300090842 1 +5469 409 300090842 1 +1810 1481 300090843 9 +784 10146 300090846 59 +8678 3975 300090850 3 +11393 1576 300090850 3 +7932 651 300090851 2 +3004 8969 300090853 6 +10566 723 300090858 3 +5418 5566 300090862 7 +1580 3088 300090863 1 +8899 3259 300090864 2 +1253 6358 300090864 2 +6208 3291 300090864 2 +4133 2003 300090864 2 +166 1304 300090864 2 +3151 587 300090867 2 +10591 41 300090867 2 +5524 2156 300090867 2 +4686 2592 300090869 8 +5702 976 300090872 4 +2220 7204 300090873 5 +2927 7222 300090874 5 +7890 672 300090882 8 +6998 3800 300090883 3 +434 9108 300090883 3 +6257 2544 300090883 3 +9346 2544 300090883 3 +2216 2496 300090885 2 +2676 3934 300090889 6 +1562 1063 300090892 10 +3139 1255 300090892 10 +9159 1484 300090899 3 +3887 6828 300090899 3 +5454 746 300090902 3 +794 7107 300090905 7 +3392 3413 300090905 7 +7392 72 300090914 18 +1631 648 300090914 18 +2968 2948 300090915 2 +2006 7386 300090917 4 +926 1045 300090917 4 +1391 4477 300090917 4 +8242 1161 300090918 3 +3091 8835 300090919 3 +1714 7908 300090923 4 +289 5000 300090923 4 +8135 3555 300090923 4 +4668 6366 300090924 4 +1097 2007 300090924 4 +2989 7336 300090925 3 +3877 8511 300090926 4 +814 4397 300090926 4 +1397 1334 300090926 4 +1273 1334 300090926 4 +1220 10915 300090930 7 +1446 4125 300090936 8 +3807 1786 300090936 8 +3103 7304 300090945 8 +7211 5436 300090947 7 +415 10090 300090949 4 +4828 2818 300090949 4 +3981 3999 300090952 4 +9434 1780 300090952 4 +10822 1135 300090952 4 +6142 1127 300090957 2 +1233 6949 300090958 9 +2473 424 300090963 7 +5637 63 300090971 2 +6878 5244 300090972 6 +7375 3857 300090982 3 +863 9596 300090983 5 +6506 2357 300090985 4 +3121 1906 300090990 3 +6214 5517 300090993 5 +4851 6977 300090993 5 +3942 4345 300090996 1 +4454 5738 300090996 1 +3983 4223 300090996 1 +10225 2267 300090996 1 +290 2811 300090997 2 +5296 4314 300090997 2 +10443 539 300090997 2 +595 10684 300090998 4 +3601 2224 300090998 4 +7864 1976 300090999 5 +6193 2579 300091003 5 +4514 4788 300091005 4 +597 3966 300091006 10 +1764 8344 300091015 2 +2388 606 300091016 188 +6341 4912 300091026 177 +1624 6685 300091026 177 +6434 774 300091026 177 +7408 3973 300091089 5 +3825 321 300091089 5 +424 9902 300091093 1 +2920 3006 300091093 1 +2926 3006 300091093 1 +486 3006 300091093 1 +8819 4156 300091094 4 +2810 2351 300091094 4 +7502 2547 300091094 4 +11945 516 300091096 4 +8816 2712 300091098 4 +3646 8269 300091099 1 +1637 9778 300091100 4 +9873 3021 300091101 10 +8210 3051 300091101 10 +8897 421 300091107 2 +3968 6633 300091107 2 +1288 3439 300091108 5 +12438 189 300091112 2 +1956 9559 300091114 8 +8770 1763 300091115 5 +4919 2462 300091117 2 +3742 31 300091117 2 +2221 6832 300091117 2 +460 5549 300091118 10 +12117 31 300091124 10 +6790 726 300091124 10 +6434 2862 300091126 7 +360 2557 300091126 7 +304 5575 300091126 7 +1183 8421 300091130 1 +971 8084 300091131 4 +265 10488 300091135 2 +5482 6776 300091139 6 +5731 5402 300091139 6 +2114 6132 300091139 6 +602 2764 300091139 6 +6289 1252 300091139 6 +1564 609 300091139 6 +5505 1252 300091139 6 +7772 3447 300091140 5 +6784 1938 300091142 2 +7196 4428 300091142 2 +2835 5605 300091142 2 +1905 781 300091144 3 +3931 7130 300091144 3 +195 4911 300091144 3 +265 3536 300091146 8 +501 9090 300091157 3 +5481 6572 300091159 3 +2541 1855 300091159 3 +4846 4481 300091159 3 +2654 3846 300091159 3 +2074 6163 300091160 4 +2977 2069 300091162 7 +1173 6336 300091165 3 +7291 278 300091168 2 +1291 6602 300091168 2 +10475 94 300091168 2 +3322 5691 300091171 5 +36 8768 300091177 4 +7506 4327 300091178 5 +5593 643 300091180 3 +131 12094 300091183 4 +2037 8972 300091190 367 +166 4366 300091269 5 +1525 11410 300091273 2 +9297 3665 300091274 1 +5861 4529 300091275 5 +723 2872 300091282 9 +4511 6949 300091288 5 +3184 6537 300091294 2 +2059 4382 300091294 2 +2938 2010 300091299 2 +11873 545 300091300 3 +8333 694 300091305 3 +7190 197 300091306 46 +5536 2323 300091344 7 +684 7972 300091345 3 +2864 6733 300091346 2 +5622 5260 300091347 5 +6667 6167 300091351 1 +9982 2536 300091351 1 +2837 1632 300091351 1 +6898 4990 300091351 1 +4923 5109 300091351 1 +9042 3185 300091351 1 +1837 1271 300091353 2 +6612 6041 300091354 4 +10624 954 300091361 2 +1984 6945 300091361 2 +4218 5009 300091361 2 +8411 626 300091364 2 +2412 6223 300091364 2 +5221 3873 300091365 280 +4756 3294 300091403 10 +4605 1612 300091405 3 +10320 2079 300091406 3 +1182 945 300091408 5 +9020 1681 300091410 5 +2944 2230 300091413 2 +232 9147 300091413 2 +10138 73 300091414 9 +1461 9501 300091414 9 +5413 2868 300091421 4 +2192 2340 300091421 4 +7198 3396 300091421 4 +11186 1550 300091422 10 +9595 2009 300091422 10 +2075 1824 300091425 2 +3449 3474 300091425 2 +2932 407 300091426 2 +2929 7846 300091426 2 +1632 9620 300091427 1 +5542 5603 300091428 2 +5169 90 300091428 2 +9866 1776 300091428 2 +5844 2162 300091428 2 +584 2942 300091428 2 +3489 3776 300091428 2 +408 11824 300091429 5 +7279 3372 300091431 3 +9966 1933 300091432 6 +6327 5613 300091432 6 +5597 2646 300091432 6 +876 606 300091432 6 +2280 938 300091437 2 +5389 805 300091437 2 +1259 7497 300091438 263 +1071 2772 300091535 6 +5684 3958 300091536 2 +5008 6217 300091537 7 +4990 4742 300091538 1 +3207 5481 300091538 1 +1610 1576 300091539 3 +7 683 300091540 9 +7551 2202 300091544 2 +143 7545 300091545 2 +4473 4339 300091545 2 +1795 1220 300091545 2 +8987 2422 300091545 2 +5999 1817 300091545 2 +2902 9275 300091546 3 +5837 3077 300091547 3 +3598 3063 300091550 4 +10400 1340 300091550 4 +600 9868 300091551 4 +8592 219 300091554 3 +306 900 300091555 5 +8663 3274 300091556 2 +2667 9365 300091557 4 +3474 3658 300091558 3 +2624 2038 300091558 3 +4559 253 300091558 3 +3838 7897 300091558 3 +1209 3664 300091558 3 +2699 2382 300091558 3 +1443 1449 300091562 1 +2084 6453 300091563 5 +4939 53 300091563 5 +1823 6958 300091572 3 +813 214 300091578 3 +3299 7337 300091578 3 +4902 6312 300091584 4 +6463 4307 300091584 4 +2490 412 300091590 8 +2307 5612 300091593 12 +3391 4843 300091594 2 +160 8065 300091594 2 +10123 2732 300091594 2 +6082 138 300091594 2 +1088 2102 300091594 2 +861 8475 300091595 4 +808 4080 300091595 4 +5945 1629 300091595 4 +757 2179 300091595 4 +2906 1983 300091595 4 +5742 564 300091599 10 +2417 9353 300091601 4 +6009 1721 300091602 7 +2900 8520 300091602 7 +5865 4388 300091602 7 +1094 663 300091602 7 +6 1870 300091605 5 +11048 287 300091605 5 +3050 6099 300091607 10 +378 6809 300091607 10 +11179 1559 300091615 4 +10361 588 300091615 4 +1826 5131 300091618 6 +1418 6496 300091621 3 +5345 1582 300091623 3 +1476 3801 300091624 6 +2522 4932 300091624 6 +10083 639 300091624 6 +11310 1153 300091625 3 +768 10115 300091628 4 +5622 714 300091631 4 +10164 1126 300091631 4 +2091 8471 300091632 8 +3905 7510 300091635 1011 +417 9717 300091802 6 +3598 8361 300091804 1 +1950 4547 300091804 1 +3069 2899 300091804 1 +2353 6762 300091805 5 +1886 1854 300091805 5 +1583 5679 300091805 5 +4149 5376 300091805 5 +3273 4966 300091805 5 +685 1034 300091805 5 +403 6468 300091810 9 +9738 51 300091819 7 +481 919 300091822 2 +5794 1616 300091824 1 +7462 3696 300091825 2 +7187 3818 300091825 2 +724 9629 300091826 3 +2667 2486 300091830 179 +3475 8843 300091892 9 +8573 2376 300091893 3 +480 9426 300091894 5 +2112 3171 300091898 3 +1715 8174 300091898 3 +1798 7762 300091901 3 +2992 5146 300091901 3 +8426 3172 300091904 10 +9265 1126 300091904 10 +2478 2721 300091911 3 +7644 4874 300091913 4 +2318 4826 300091913 4 +3250 4020 300091914 3 +2594 9663 300091915 2 +1101 2958 300091915 2 +2188 1752 300091915 2 +552 6716 300091917 4 +3466 6531 300091919 2 +2701 2371 300091920 4 +951 1439 300091925 2 +5051 2680 300091925 2 +4584 6025 300091925 2 +549 4580 300091926 1 +3031 7082 300091926 1 +1492 7220 300091927 5 +1583 4344 300091927 5 +31 8944 300091929 44 +311 11648 300091985 4 +114 5475 300091987 27 +2079 7065 300092000 4 +1724 6152 300092002 3 +9192 3466 300092002 3 +5837 1270 300092004 5 +1910 3468 300092004 5 +1327 1906 300092004 5 +1164 4380 300092004 5 +8854 388 300092007 3 +1856 4736 300092009 2 +3669 2240 300092009 2 +9571 948 300092010 4 +1135 6747 300092011 9 +3414 1490 300092012 4 +596 794 300092012 4 +3841 6023 300092013 4 +2446 7128 300092020 7 +2730 9534 300092028 2 +10053 22 300092028 2 +1017 3374 300092028 2 +1647 6846 300092029 3 +1008 3147 300092030 7 +4403 1140 300092031 9 +4786 2552 300092031 9 +7260 4485 300092038 4 +7145 2809 300092040 7 +2514 846 300092040 7 +3813 2041 300092046 6 +3727 1965 300092048 6 +7201 3969 300092051 2 +3278 8939 300092051 2 +4782 4393 300092052 3 +4115 4605 300092053 3 +8935 2704 300092054 3 +1444 6779 300092059 5 +6284 4680 300092062 4 +3118 8228 300092062 4 +5089 6068 300092063 3 +1217 4826 300092065 4 +2092 1973 300092069 3 +4140 7081 300092069 3 +3750 3854 300092069 3 +4820 2582 300092069 3 +2189 7782 300092072 4 +3432 8799 300092074 2 +1813 6787 300092075 3 +4016 6045 300092075 3 +5617 325 300092076 50 +706 4676 300092105 3 +10469 1350 300092106 7 +5955 3990 300092108 14 +434 7245 300092118 4 +1067 5663 300092118 4 +8132 3722 300092119 1 +5559 2054 300092119 1 +4570 5914 300092120 7 +4288 2583 300092125 2 +3889 8187 300092126 5 +2517 4024 300092128 2 +327 8315 300092129 3 +1414 6756 300092133 5 +7642 4678 300092135 8 +7867 4921 300092135 8 +1725 7762 300092135 8 +1922 8273 300092136 3 +2537 923 300092138 3 +4216 1564 300092143 2 +7755 3259 300092143 2 +6753 1300 300092144 6 +3375 5789 300092146 2 +2837 4255 300092147 2 +1464 8653 300092147 2 +859 5157 300092148 70 +6672 5067 300092200 9 +456 1866 300092200 9 +6690 1789 300092202 5 +11790 850 300092202 5 +3662 7995 300092202 5 +10929 1113 300092207 5 +1029 4747 300092211 2 +3635 1626 300092211 2 +4399 5686 300092212 2 +4859 3466 300092212 2 +7386 5479 300092214 9 +3787 6129 300092222 5 +3740 4274 300092222 5 +4629 4624 300092223 1 +412 7551 300092223 1 +3722 4067 300092223 1 +7249 3156 300092224 5 +4168 361 300092224 5 +1845 820 300092225 3 +344 1498 300092228 9 +3105 7065 300092228 9 +2934 2349 300092230 2 +5163 3131 300092230 2 +5770 424 300092230 2 +5611 4334 300092232 5 +197 5965 300092232 5 +1692 7049 300092234 1 +7046 1134 300092235 267 +3793 3553 300092331 1 +645 4861 300092332 1 +3441 3657 300092332 1 +10341 11 300092333 9 +6528 5252 300092338 4 +10905 1250 300092340 3 +1020 934 300092341 6 +4036 6430 300092347 56 +2027 10678 300092368 4 +885 3634 300092371 5 +1913 4392 300092375 19 +2867 3742 300092380 8 +4020 5564 300092389 50 +2197 1649 300092397 2 +5143 1065 300092398 5 +10435 150 300092398 5 +2803 5339 300092399 4 +7187 2731 300092399 4 +6904 5548 300092403 5 +3689 434 300092404 7 +2314 1252 300092408 4 +4186 7141 300092411 2 +2846 3504 300092412 4 +1525 5580 300092412 4 +3604 525 300092420 3 +2484 9583 300092421 4 +3670 2622 300092423 5 +2584 3957 300092425 25 +8216 1557 300092451 5 +7814 3717 300092459 4 +2743 323 300092459 4 +8492 377 300092460 4 +1373 466 300092465 1 +7157 5202 300092466 6 +7720 5056 300092467 5 +2363 2632 300092472 3 +4820 5943 300092473 3 +2766 5116 300092474 8 +1764 7147 300092474 8 +2524 3501 300092487 2 +1660 725 300092489 36 +9460 1120 300092489 36 +7698 4504 300092494 3 +7024 3772 300092495 4 +58 1901 300092497 5 +2231 3187 300092498 9 +5239 726 300092508 2 +4105 3151 300092508 2 +5303 3853 300092508 2 +5398 3734 300092508 2 +10979 1737 300092508 2 +3399 3931 300092508 2 +8202 1217 300092509 8 +8553 4042 300092510 2 +3670 4516 300092510 2 +9795 2684 300092511 7 +895 10224 300092511 7 +3675 4642 300092517 4 +1588 8266 300092517 4 +4834 3816 300092517 4 +4418 4642 300092517 4 +1583 4642 300092517 4 +246 1374 300092517 4 +4208 6623 300092519 5 +11407 293 300092522 4 +3530 6420 300092523 5 +2646 605 300092525 5 +8390 1810 300092534 3 +5199 3932 300092534 3 +3709 9233 300092539 5 +6472 2003 300092539 5 +1062 4951 300092540 4 +975 6202 300092543 3 +1066 3577 300092543 3 +3290 4456 300092544 2 +2946 2394 300092547 212 +1418 3195 300092562 5 +4982 6746 300092565 5 +1507 3212 300092566 4 +4887 4947 300092569 22 +1541 2063 300092597 5 +705 2498 300092600 2 +6409 5187 300092600 2 +1658 5223 300092600 2 +6449 5205 300092603 2 +3542 2553 300092603 2 +1076 3781 300092604 8 +5525 1985 300092605 4 +5627 1268 300092613 8 +1658 8878 300092613 8 +6663 5403 300092630 2 +3996 57 300092631 7 +123 7612 300092635 23 +4104 5026 300092635 23 +2005 3901 300092635 23 +2769 3901 300092635 23 +3949 3901 300092635 23 +3171 8022 300092641 4 +7084 3506 300092644 3 +8819 2366 300092645 2 +7995 536 300092646 9 +3552 3086 300092662 4 +7546 1741 300092662 4 +2081 1661 300092663 8 +452 2406 300092665 7 +250 8486 300092670 7 +3870 2664 300092673 2 +1256 8328 300092674 4 +3346 1554 300092675 3 +2711 3465 300092675 3 +9832 414 300092675 3 +1845 2173 300092676 39 +4380 4481 300092683 2 +3168 4138 300092684 1 +3852 5113 300092684 1 +2010 3306 300092684 1 +8522 2748 300092684 1 +214 3648 300092684 1 +8455 660 300092684 1 +6341 1852 300092684 1 +6951 1852 300092684 1 +5552 1852 300092684 1 +11961 380 300092684 1 +7252 1472 300092684 1 +2018 1472 300092684 1 +5067 1472 300092684 1 +1030 1472 300092684 1 +10254 1472 300092684 1 +2274 1016 300092684 1 +1373 1016 300092684 1 +4335 1016 300092684 1 +3384 3947 300092685 4 +1751 9810 300092686 163 +5173 28 300092859 7 +7101 759 300092860 2 +233 7382 300092860 2 +3525 5281 300092860 2 +10431 2121 300092861 3 +2009 4407 300092862 3 +3855 8006 300092868 9 +3290 9167 300092870 9 +611 4564 300092873 4 +5333 1756 300092873 4 +9919 1347 300092876 3 +4158 7089 300092876 3 +3534 5800 300092876 3 +6564 4317 300092877 1 +1338 421 300092878 4 +2997 2616 300092878 4 +170 9871 300092878 4 +1374 7072 300092879 4 +8303 3971 300092880 4 +5641 3353 300092882 7 +3343 389 300092882 7 +2122 4044 300092882 7 +1993 5789 300092886 9 +1408 1687 300092891 3 +8560 894 300092891 3 +1609 10327 300092891 3 +525 3141 300092893 3 +867 6561 300092896 5 +3791 6347 300092896 5 +4554 952 300092896 5 +3331 3637 300092896 5 +5616 2934 300092897 5 +7959 3176 300092897 5 +9335 3526 300092901 1 +5414 6828 300092901 1 +2093 5461 300092901 1 +5641 2140 300092901 1 +9092 2064 300092901 1 +520 9420 300092902 3 +5148 1214 300092904 2 +1800 46 300092904 2 +295 1224 300092905 3 +10902 692 300092905 3 +3157 592 300092906 1 +2790 1426 300092906 1 +5043 2729 300092907 9 +6043 1122 300092910 441 +3525 9222 300093160 5 +1571 8807 300093161 3 +8106 1437 300093161 3 +1759 3491 300093162 7 +2951 419 300093162 7 +1909 8616 300093162 7 +5284 4142 300093162 7 +945 3576 300093162 7 +4456 7028 300093166 22 +28 3067 300093170 7 +8900 3675 300093176 5 +7735 4316 300093179 50 +3178 7256 300093182 9 +11125 1852 300093182 9 +2320 587 300093182 9 +9771 13 300093182 9 +3930 1528 300093184 2 +145 12264 300093185 5 +1784 644 300093185 5 +5912 6002 300093187 1 +951 9291 300093188 1 +2577 3617 300093188 1 +1173 3617 300093188 1 +3439 1161 300093188 1 +8127 53 300093188 1 +6157 2169 300093188 1 +12255 38 300093188 1 +4201 3579 300093188 1 +3495 8837 300093189 2 +6775 1861 300093190 7 +12771 207 300093190 7 +116 1465 300093190 7 +4526 4031 300093190 7 +4906 18 300093196 4 +2928 7919 300093197 3 +2246 10244 300093198 4 +2621 1940 300093199 7 +5875 3347 300093205 5 +5977 4929 300093207 3 +6401 297 300093210 4 +7625 749 300093211 4 +1049 2230 300093212 2 +279 7298 300093212 2 +7785 148 300093214 3 +168 6975 300093215 3 +3755 1976 300093215 3 +234 5933 300093215 3 +1201 94 300093216 1 +10730 1424 300093216 1 +3431 4532 300093216 1 +6079 5594 300093217 2 +4871 7704 300093218 2 +1602 8289 300093219 8 +3357 4710 300093221 2 +5014 5961 300093221 2 +8322 3654 300093222 4 +5997 2577 300093232 7 +5878 2802 300093235 8 +3806 8521 300093236 9 +4965 4971 300093237 3 +11285 913 300093237 3 +3536 6885 300093238 5 +1277 11430 300093239 1 +7788 4341 300093240 4 +2918 7711 300093241 5 +12263 159 300093241 5 +2065 5038 300093241 5 +4816 6125 300093243 1 +5107 5543 300093243 1 +4702 1798 300093243 1 +1655 4391 300093243 1 +6627 5288 300093244 5 +9788 1591 300093246 2 +4160 1648 300093246 2 +606 9900 300093247 2 +1113 3008 300093247 2 +518 3008 300093247 2 +4264 458 300093247 2 +8594 4150 300093248 3 +5704 3846 300093248 3 +7562 1521 300093252 4 +6134 5757 300093254 5 +7511 2280 300093260 1 +4935 6600 300093260 1 +3288 145 300093260 1 +5592 4620 300093260 1 +1303 4808 300093260 1 +3814 2676 300093260 1 +2492 463 300093261 2 +11147 1480 300093261 2 +8417 4113 300093262 4 +988 1677 300093262 4 +7069 2246 300093271 4 +8470 3844 300093271 4 +10683 1308 300093272 6 +1099 5921 300093278 2 +1575 1320 300093278 2 +4495 5296 300093279 5 +4961 4933 300093282 38 +10332 466 300093321 5 +5577 2929 300093322 1 +10494 1378 300093322 1 +1567 8601 300093322 1 +11497 1239 300093323 9 +863 3726 300093328 2 +6912 3066 300093328 2 +7016 1969 300093330 2 +3497 7954 300093330 2 +4394 6919 300093331 41 +5088 3442 300093331 41 +576 179 300093333 41 +443 11207 300093367 2 +8145 1028 300093368 9 +8163 2720 300093368 9 +4683 5258 300093368 9 +4356 3146 300093375 1 +1932 9762 300093375 1 +2950 2156 300093375 1 +1127 3146 300093375 1 +2894 7830 300093376 2 +4780 5078 300093376 2 +7538 3518 300093378 9 +7432 5410 300093378 9 +5060 2671 300093379 4 +446 2084 300093382 5 +6409 3258 300093382 5 +746 7566 300093382 5 +2991 1821 300093385 4 +4312 122 300093386 5 +1702 2030 300093387 1 +2039 8616 300093387 1 +3815 4256 300093388 1 +11095 447 300093388 1 +2753 6916 300093388 1 +3182 5545 300093388 1 +1382 10704 300093389 1 +11330 1520 300093389 1 +395 1440 300093389 1 +1901 9122 300093390 2 +2088 7760 300093391 3 +6419 4329 300093391 3 +0 9538 300093394 33 +331 7918 300093421 4 +849 4990 300093421 4 +750 10597 300093426 2 +3039 7439 300093428 1 +1058 5126 300093429 9 +6720 3475 300093430 4 +4773 4617 300093439 9 +6436 5252 300093439 9 +7562 441 300093439 9 +2560 5993 300093439 9 +1504 3780 300093439 9 +850 2742 300093441 5 +1579 1082 300093443 5 +6179 4377 300093443 5 +336 12233 300093444 4 +3971 675 300093444 4 +3258 3497 300093446 8 +26 10681 300093449 3 +4857 2227 300093449 3 +378 5658 300093452 7 +4314 4754 300093452 7 +3443 854 300093453 5 +3339 6091 300093455 45 +655 75 300093502 5 +4323 2044 300093502 5 +2789 2452 300093502 5 +3720 4854 300093502 5 +1174 8553 300093506 3 +697 2616 300093507 5 +355 4085 300093509 5 +2415 8823 300093509 5 +5965 6513 300093511 40 +6915 820 300093511 40 +5788 4392 300093561 3 +7680 749 300093562 4 +1833 69 300093564 4 +2432 2766 300093566 3 +1910 6603 300093569 4 +4564 268 300093569 4 +10110 605 300093569 4 +2893 720 300093571 3 +4446 6444 300093574 4 +148 5681 300093574 4 +3295 2166 300093574 4 +5397 2166 300093574 4 +5510 1378 300093575 2 +3368 7165 300093575 2 +12801 137 300093575 2 +1695 1688 300093576 3 +3817 1779 300093580 17 +5344 5908 300093580 17 +4088 3323 300093585 4 +6719 3908 300093585 4 +1875 4574 300093585 4 +9742 1806 300093585 4 +1301 10553 300093591 4 +3800 483 300093593 200 +3982 33 300093873 2 +10530 568 300093874 5 +3694 7353 300093874 5 +10013 497 300093878 601 +5041 360 300094418 2 +8303 1406 300094418 2 +5548 4665 300094418 2 +6403 1884 300094420 4 +1446 1497 300094422 4 +11679 1299 300094427 4 +6602 827 300094427 4 +1769 10847 300094429 5 +3578 2061 300094429 5 +4383 6135 300094435 3 +759 6773 300094435 3 +352 3149 300094435 3 +3086 6231 300094436 2 +7249 1432 300094437 3 +3395 6654 300094438 9 +997 2924 300094440 1138 +7341 1469 300094686 2 +4782 8007 300094687 1 +806 9199 300094688 9 +1004 3709 300094688 9 +5978 3171 300094688 9 +7205 831 300094691 3 +7466 3541 300094692 1 +2251 7710 300094692 1 +692 4152 300094692 1 +4644 2593 300094692 1 +8978 2593 300094692 1 +2738 2223 300094693 2 +7534 4046 300094694 1 +7900 4001 300094694 1 +1749 8387 300094695 2 +3761 2752 300094695 2 +89 4521 300094695 2 +3456 9121 300094696 1 +8721 2524 300094696 1 +3127 3165 300094696 1 +7309 3458 300094696 1 +249 3458 300094696 1 +10474 575 300094696 1 +1222 580 300094696 1 +2046 580 300094696 1 +3779 580 300094696 1 +8763 2459 300094698 3 +7248 2130 300094699 3 +1561 10778 300094699 3 +2125 956 300094700 8 +2012 9965 300094701 5 +5905 72 300094703 2 +1061 7892 300094703 2 +6815 3826 300094703 2 +1555 2230 300094703 2 +4066 6397 300094705 9 +2673 4626 300094707 4 +4959 7872 300094707 4 +3058 8614 300094708 487 +1901 4761 300095990 2 +2940 2405 300095991 10 +5518 3355 300095993 10 +11455 346 300095993 10 +4231 1762 300095996 4 +11463 1262 300096001 4 +5133 3361 300096004 3 +10055 2277 300096004 3 +173 3652 300096008 8 +12366 513 300096009 3 +6804 5262 300096010 3 +435 3653 300096010 3 +1333 3935 300096010 3 +2398 5864 300096012 4 +2162 5662 300096016 271 +1088 1312 300096197 10 +3479 1122 300096206 3 +7760 1449 300096207 3 +8066 631 300096207 3 +5781 472 300096207 3 +9132 398 300096210 222 +2194 2891 300096364 3 +5853 491 300096366 7 +5052 6347 300096366 7 +4912 5664 300096367 3 +5270 4318 300096368 4 +3069 8590 300096368 4 +848 4318 300096368 4 +742 7223 300096370 3 +1468 54 300096370 3 +7967 1230 300096371 1 +4132 6243 300096372 1 +2363 6301 300096372 1 +10506 297 300096372 1 +7101 5292 300096373 3 +3046 5670 300096373 3 +3130 3561 300096373 3 +776 1751 300096373 3 +709 5002 300096375 2 +540 11354 300096376 7 +4578 1554 300096376 7 +5778 816 300096379 1 +5687 1366 300096379 1 +5995 5161 300096379 1 +5287 3326 300096379 1 +2420 4378 300096380 2 +2344 2596 300096383 3 +7848 4402 300096385 8 +418 12181 300096387 1 +3306 6140 300096388 6 +3721 9188 300096389 3 +5298 97 300096392 8 +1713 1887 300096392 8 +10528 61 300096400 6 +4450 5030 300096402 5 +267 3770 300096405 4 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=25858,vsize=12978,psize=12908,req_len=2703).predictor.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=25858,vsize=12978,psize=12908,req_len=2703).predictor.best" new file mode 100644 index 0000000000000000000000000000000000000000..8350daf3b9245b300d7c0e9a9a16eb2370547d43 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=25858,vsize=12978,psize=12908,req_len=2703).predictor.best" @@ -0,0 +1 @@ +300274359 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=25858,vsize=12978,psize=12908,req_len=2703).prophet.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=25858,vsize=12978,psize=12908,req_len=2703).prophet.best" new file mode 100644 index 0000000000000000000000000000000000000000..d208c7a170efc76a7f60581519170c941794eacb --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=25858,vsize=12978,psize=12908,req_len=2703).prophet.best" @@ -0,0 +1 @@ +300273599 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=25858,vsize=12978,psize=12908,req_len=2703).simple.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=25858,vsize=12978,psize=12908,req_len=2703).simple.best" new file mode 100644 index 0000000000000000000000000000000000000000..52a66b01ef5c459894d4dbf5160eb32fdf159c03 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=25858,vsize=12978,psize=12908,req_len=2703).simple.best" @@ -0,0 +1 @@ +305251919 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=8795,vsize=15628,psize=15553,req_len=6323).in" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=8795,vsize=15628,psize=15553,req_len=6323).in" new file mode 100644 index 0000000000000000000000000000000000000000..31f99c1789b4236d7387201bfedd096ea686a9c0 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=8795,vsize=15628,psize=15553,req_len=6323).in" @@ -0,0 +1,6324 @@ +15628 15553 6323 +12033 456 19 3 +10928 2120 5647 14656 +4716 5399 11382 20 +903 7392 83822 314 +10473 691 341567 86 +13118 2096 350529 12209 +3987 10768 413018 1214 +5109 3883 413018 1214 +3823 1432 413068 17433 +5670 1830 452942 3 +851 6574 452943 11630 +3187 9531 453789 2 +4576 9793 453790 7034 +1583 8918 586302 5 +9317 5919 586306 1 +2535 173 753763 7847 +1831 3986 761156 9973 +1925 601 763575 2 +5760 5768 763576 34474 +1571 6430 881362 1229 +4073 11255 881664 17502 +199 13891 1280932 13 +7774 2757 1672982 3 +4134 2783 1763534 5 +365 13412 1869550 17 +756 6842 2216282 13 +6127 1537 2216285 9865 +967 1728 2258651 10 +2684 8678 2276982 13151 +952 14078 2283791 11 +2566 11529 2326068 8437 +5486 6840 2651198 8117 +442 3436 2762318 18 +487 4152 2887455 3 +9733 2845 2914941 7394 +1230 8140 2914941 7394 +10025 1924 2927530 279 +8483 1758 2987859 4278 +1645 9809 2990261 1 +5618 6213 3181175 40521 +2580 11140 3188398 13911 +6562 362 3218099 5 +1348 6639 3228155 805 +6482 5812 3486549 37609 +11772 980 3486549 37609 +11606 1574 3493350 3 +8380 1469 3541721 26652 +1027 3088 3584192 19 +12873 1742 3584202 6 +8066 2890 3625996 15 +274 2996 3625996 15 +3228 7392 3625996 15 +3737 11614 3851501 31432 +29 14715 4312182 2 +10675 1789 4409423 13415 +5205 2465 4415385 7495 +1071 12699 4417550 20726 +1790 8617 4818382 5398 +2642 10689 4820787 18625 +1019 14543 4825878 16799 +9346 1523 4828147 36187 +4415 5430 4879184 3 +2821 6463 5026979 15713 +1884 10114 5088486 5 +8480 5688 5399390 4 +1793 2907 5443190 3 +8153 3834 5443191 4 +6688 2820 5443217 3 +9350 3386 5443218 21409 +3304 8465 5450974 3 +1618 2134 5602207 19905 +4393 2459 5643763 5 +4913 6758 5708757 2 +3341 2068 5708757 2 +11509 3938 5784618 12 +8314 3725 5784622 2 +9902 1183 5878831 3 +10403 832 5878831 3 +2594 12212 5878832 18790 +2641 756 5884408 16375 +8004 3154 5902302 2090 +1774 709 5903111 20879 +1188 12865 5910082 3 +8429 5837 5910083 4 +5009 4787 5922756 8455 +708 12100 6041205 4 +9765 4648 6521219 23671 +10325 3539 6521219 23671 +2464 12680 6639844 4 +7664 192 6639846 2 +1334 13434 6639846 2 +1038 2076 7018839 11011 +6249 7888 7018839 11011 +12105 3215 7026254 2 +4166 957 7135332 13397 +3242 9102 7166355 28 +8437 5765 7317845 15028 +98 5414 7323762 38021 +9627 997 7328247 10217 +146 6641 7353984 2 +7159 5791 7417113 29425 +3778 8372 7485129 2 +8221 75 7734893 3386 +10699 20 7742169 2 +4373 8244 7742529 8839 +6966 2433 7743363 19 +414 9196 7755236 14697 +11762 811 7820386 1 +2293 1435 7820386 1 +6621 3413 7829405 36227 +6517 795 7835857 396 +4105 4644 7855824 17357 +5051 255 7862201 2 +8325 4268 7865229 39954 +8466 2745 7990716 20 +2922 8034 7990716 20 +10550 4389 8060195 60 +10236 3296 8060223 26 +584 3077 8103305 11 +5869 3636 8156750 19 +516 5254 8188326 8667 +12720 2364 8206086 7 +7827 7759 8253249 7 +3378 7443 8253254 4619 +7045 2186 8258908 9460 +10676 4441 8268850 4 +389 10552 8268850 4 +19 825 8268850 4 +7132 7000 8268851 17 +5514 1197 8268858 6 +12541 2419 8268858 6 +340 6786 8297842 17135 +2949 12674 8519161 4945 +1588 1130 8772772 13 +12040 409 8772776 4 +1691 8664 8774072 1 +2277 7318 8774231 19511 +2123 10069 8785292 20 +3156 4923 8785292 20 +923 5160 8785296 11283 +4718 1583 8785296 11283 +2618 7213 8820656 4 +162 925 8820656 4 +2258 12126 8835101 19 +7605 7106 8946759 1 +5301 4973 8946760 1 +92 4472 8963412 4 +10239 2258 9136552 31987 +812 14231 9150018 18651 +4105 5768 9495633 26003 +10105 2396 9505672 3 +5617 5420 9505673 1 +5351 8403 9505674 25156 +1074 7279 9528013 9587 +5467 6814 9554118 21582 +112 15295 9555471 427 +4249 530 9676084 2 +10104 2356 9696579 1090 +2837 10034 9728801 7596 +11251 152 10067574 2 +2872 1620 10067576 4 +3209 3703 10067579 17278 +81 8320 10070170 5 +2116 7057 10070171 5 +3741 10044 10070175 4 +7630 878 10166313 2 +1758 11055 10166748 17418 +5036 4257 10573389 42504 +1280 5289 10573389 42504 +3003 4586 10573389 42504 +5361 5338 10573389 42504 +4424 3247 10573389 42504 +5869 3844 10656416 21359 +846 5747 10656416 21359 +1645 3362 10724495 24522 +390 4473 10727659 13246 +2683 2717 10728998 18 +8869 2521 10728998 18 +11029 2261 10729009 15063 +4365 2498 10818103 4 +1859 1866 10818110 1 +7110 5127 10818110 1 +5487 6911 10928423 9 +246 6812 11175213 2 +8656 1800 11175213 2 +883 5112 11175213 2 +4951 6389 11175213 2 +10349 4758 11175214 3040 +6330 393 11178455 4 +7978 5771 11188288 36439 +10115 3301 11198509 21056 +1403 4475 11198807 3 +10035 841 11198807 3 +5016 5488 11198808 1 +10836 1065 11378663 3 +10755 1362 11378664 16 +3135 7940 11414880 2 +3404 6566 11426489 21696 +5136 8636 11650598 1 +553 11609 11811863 13178 +1258 8257 11871797 4251 +1214 6501 11910307 7 +3995 5397 11910313 1670 +9475 4653 11912196 40700 +3966 10195 11936800 7532 +5977 3068 12340376 21664 +10551 4644 12347784 1 +7913 6106 12347784 1 +3343 2378 12438897 2384 +6669 8396 12442400 4 +2306 11866 12715075 16450 +5493 3353 12715075 16450 +802 3439 12719706 35004 +7499 649 12723922 7630 +10605 3935 12727884 1098 +91 11618 12727884 1098 +6532 313 12995490 18 +4157 4536 12995499 23045 +5000 650 13041464 7 +3633 1948 13041471 84 +4070 239 13041485 17 +9783 127 13049559 14784 +9027 1277 13060732 3 +8817 2826 13084996 5335 +7281 3716 13165405 68 +5758 7907 13165405 68 +7842 3977 13193115 4 +1596 6963 13351482 18350 +4105 8157 13371219 4 +5772 7030 13371219 4 +13365 1748 13371220 2 +2254 1407 13379242 14323 +9453 1187 13380990 16 +1514 1053 13381000 31522 +9921 1033 13413762 13764 +2287 8388 13428745 10 +740 1872 13682123 82 +7981 772 13682123 82 +1638 9003 13682129 5 +9760 2590 13682134 8893 +4389 1330 13714319 4 +3843 3222 13747216 3147 +12664 1623 13809892 8 +1802 5561 13826456 4 +7100 8391 13826456 4 +1194 7839 13826459 1 +1736 4779 13826460 12872 +6299 7785 13826470 9 +7272 961 14136463 21956 +9950 488 14151546 4 +8592 6077 14157501 16036 +2354 86 14175120 8457 +6657 7367 14183066 4 +2399 12969 14474070 6557 +4771 1550 14478427 8 +7090 2920 14478428 2 +2464 3312 14478428 2 +10034 5420 14567221 17711 +2807 3253 14760825 6415 +4448 3131 14760825 6415 +4136 5133 14784681 2127 +2443 12926 14975995 2112 +4722 4762 15063906 6265 +1778 11005 15090366 3 +8918 4193 15090367 30245 +1024 627 15241191 19585 +1679 8253 15265451 13 +272 6655 15404639 2 +3377 8898 15404639 2 +9050 4963 15458812 80 +6347 1640 15642774 5 +9503 3383 15642775 30795 +2299 4404 15746339 10779 +1597 1100 15746339 10779 +9991 159 15760624 9 +6115 876 15761881 17 +4856 7286 15778837 19327 +2110 5430 15785648 21665 +3262 12000 15800844 25886 +2719 11217 15948599 39320 +7869 3819 16196052 11925 +9002 3821 16222909 28472 +6651 1096 16282043 19 +2013 9522 16282047 19 +14583 454 16282052 514 +1345 11605 16282052 514 +10721 600 16637442 24328 +3655 7032 16641864 997 +10989 1609 16648659 4921 +10236 548 16702941 16 +4795 8451 16702941 16 +6960 1771 16904652 6252 +8945 1823 16912877 4 +5272 1708 16912877 4 +9969 1708 16912877 4 +353 7042 16912880 1 +7824 6609 16916756 43016 +2854 11219 16918221 12 +11584 3502 16918225 2563 +1802 5155 16918225 2563 +4437 4110 16918684 20300 +8535 1570 16919081 4 +4394 2017 16950009 8222 +9140 3761 16951571 3 +1732 3984 17011631 7051 +10684 900 17081383 5922 +4304 9451 17085754 12626 +1156 2963 17119741 12148 +9068 5303 17144133 13789 +2889 4910 17149554 16 +10302 4462 17149558 19 +8784 1510 17149562 5 +2093 4167 17191255 23217 +699 6460 17198543 371 +8250 2063 17388651 380 +10243 5158 17433134 5 +6141 3904 17433136 777 +1107 414 17563291 4 +1515 3789 17563291 4 +7038 6961 17607919 3 +8925 5499 17607921 1903 +6888 1069 17809415 557 +6384 5750 17809580 20312 +7139 1674 17810769 11 +5744 39 17810769 11 +3769 8691 17810782 5815 +8498 5158 18029647 11424 +2762 2173 18029647 11424 +933 8222 18029647 11424 +2958 10840 18029961 22117 +602 8500 18037908 24487 +231 4981 18259323 12082 +2736 4385 18259323 12082 +395 3683 18292943 7 +419 11691 18312987 1 +2024 1526 18312987 1 +4564 3862 18312987 1 +8745 4473 18442187 9645 +13476 564 18583812 5 +7537 7121 18598554 8839 +3222 8432 18598554 8839 +1466 2872 18598554 8839 +5252 3280 18625118 3 +432 13818 18728145 17234 +3327 2845 18759747 6734 +1125 6633 18774487 2 +6662 911 18943923 3 +304 11794 18943925 2 +6518 8745 19146690 1 +6155 2979 19254283 8 +3633 3471 19299835 8 +5169 3711 19315142 17 +332 5679 19315157 12303 +6828 8454 19451527 1 +5420 5840 19711592 3 +6966 5068 19711593 1370 +12794 2751 19712494 2275 +1733 3998 19795504 10 +2277 10608 19795506 11217 +2152 1525 19800430 1 +5096 2177 19800430 1 +478 1723 19808381 7529 +4200 673 19808381 7529 +12706 971 19809961 14203 +8043 3399 19840886 2 +6865 286 19840887 3 +737 4330 19847470 11 +12486 25 19847471 1005 +2967 8034 19847471 1005 +2816 10695 19941046 1 +2794 4701 20279433 2 +2420 6029 20279434 14929 +490 9524 20279434 14929 +73 10516 20296987 1922 +8900 3409 20297558 32553 +2310 633 20406658 24683 +1495 6171 20433699 24313 +2677 8467 20533449 32483 +5305 7184 20553161 10519 +3688 11703 20556178 2 +5746 1104 20583739 3 +12979 913 20583739 3 +2134 10383 20605193 2 +2798 2419 20605193 2 +7069 248 20632810 1 +494 7453 20632810 1 +9198 3675 20632810 1 +5885 4425 20632810 1 +8188 5192 20681601 12487 +3161 3642 20720837 10625 +6172 4373 20735459 2 +1504 783 20735461 2 +6826 5275 20735461 2 +9357 2849 20735462 3 +3773 4456 20735462 3 +910 8248 20735462 3 +1596 12974 20947525 8 +4512 3079 20947529 14 +638 5560 20990401 11 +5666 7335 20990407 36782 +3560 9134 21013497 6282 +1030 1991 21248138 2 +7302 4024 21266201 3634 +1168 10996 21266201 3634 +3213 9211 21268532 8079 +1662 9032 21344160 3 +9145 1338 21344163 17 +9399 63 21381997 9 +12534 2803 21383281 75 +3148 1252 21383321 4 +2339 11388 21383323 1 +115 6477 21838381 18 +3369 9951 21838399 15583 +12105 2599 21849561 1741 +25 12954 21849561 1741 +11441 1173 22143768 105 +1595 13391 22143783 4 +3870 2162 22143783 4 +5702 6798 22143784 5 +2301 13263 22143787 5 +1112 14383 22385069 17 +9279 1171 22479190 137 +10124 1920 22479237 2 +8873 560 22487245 3 +6322 413 22490156 5 +2604 2727 22490157 14 +10135 3139 22532147 4 +4549 8702 22532152 8658 +9309 3179 22532843 4 +706 7848 22532845 5542 +4308 1427 22742570 3 +1936 5777 22742570 3 +3901 2925 22742570 3 +5108 1280 22742570 3 +8758 4665 22742571 2 +282 11855 22771649 4 +7828 7216 22771651 10030 +10194 4019 22773376 5250 +1625 9437 22773748 457 +3988 9358 22773830 511 +2557 6384 22776253 17 +5884 3290 22830849 12906 +6160 8041 22850677 10945 +383 7827 22993948 2449 +2881 12335 23024687 8491 +3245 1917 23477339 42768 +2689 436 23494122 993 +2283 9438 23494646 2 +8477 5460 23494646 2 +3544 9716 23494647 34388 +9047 1208 23505799 3915 +4306 9546 23515264 18 +1547 2368 23515266 3 +11824 3674 23524519 4 +8288 1429 23524520 4 +793 678 23555775 11125 +6728 5904 23573573 10 +5879 670 23573573 10 +504 8157 23573575 41884 +3367 167 23580235 19750 +80 4304 23580235 19750 +768 9970 23591325 19638 +11597 1575 23595941 2 +4597 10648 23595942 6513 +446 2236 23603068 22408 +573 9124 23647546 12930 +2428 4161 23676491 2 +6445 3066 23715559 4 +4816 6599 23715560 35708 +10376 4752 23929640 9732 +9172 1879 23977990 9 +2694 9931 23977992 2 +11491 2597 24181472 6 +8899 1656 24268134 503 +10508 4559 24313003 31397 +8263 7037 24400291 1867 +3566 2604 24400291 1867 +1795 6903 24402551 13169 +1335 6981 24575229 5 +815 4457 24575237 20919 +3019 5424 24706687 16552 +2174 2348 24708839 12 +9496 1612 24708839 12 +12840 1551 24708840 17882 +3984 9341 24729740 9 +5179 8937 24729741 27545 +4570 9903 24754216 34 +4104 3779 24754216 34 +2818 1141 24754248 39114 +2427 7620 24794686 20746 +2697 1151 25044516 16 +3610 4455 25080651 2 +6005 8881 25209075 16 +1866 9672 25379061 2 +2270 8170 25379063 390 +4179 8625 25700380 6258 +2522 9617 25895027 15 +11569 27 25895049 59 +9375 4612 25895074 28250 +4059 3467 25905717 2 +8389 3656 25905717 2 +9975 3376 25905717 2 +2102 7124 25905717 2 +2093 6483 25905718 110 +5110 4932 25905759 12953 +11 4307 26019827 15 +1587 4030 26019830 13 +6719 4734 26019837 1596 +1138 2053 26058360 2 +2986 399 26062532 2 +5906 6110 26078002 23431 +7262 30 26089428 3418 +1868 7034 26090827 14 +6956 2142 26369010 16848 +4173 5517 26369010 16848 +11122 294 26488752 16544 +2809 5092 26491057 5 +13309 197 26529719 31 +1433 11210 26534771 19966 +7968 499 26534921 8857 +8004 7531 26534921 8857 +1641 10520 26537931 2424 +10944 2845 26560208 14503 +3821 538 26565742 17010 +3603 11599 26570590 12435 +6152 90 26666518 3 +8471 3022 26666518 3 +1873 7598 26666520 20397 +2550 9400 26729944 2727 +6901 6378 26730405 5 +2484 12540 26805021 16 +850 5150 26823714 71 +13288 1226 26931279 12 +1378 8184 26931284 4 +1176 3048 27078075 35650 +2406 9752 27133326 2073 +4610 7671 27482789 16 +6646 320 27482801 15 +8849 4195 27482812 536 +646 5362 27483076 9253 +486 12243 27628816 5 +6184 3698 28030038 6429 +966 8595 28076379 7 +879 7621 28294842 12907 +13388 1700 28299618 5574 +9683 5443 28300499 68 +6595 2533 28300499 68 +4003 7004 28400395 446 +8268 2305 28400395 446 +8374 6212 28400587 30177 +2843 8701 28411191 11 +5880 8489 28752567 10890 +1295 10721 28761057 11 +2998 8622 28761062 7000 +10927 1360 28763180 12380 +6376 4268 28777081 18 +8059 5653 28777105 20346 +502 14616 28792054 16 +5059 5074 29148057 2245 +1538 13144 29149698 3 +10848 2063 29502683 13425 +8456 5820 29567654 3 +5402 1111 29760082 3164 +8722 6600 29760369 11 +3937 5201 29760379 12 +5420 385 29850941 41 +984 4819 29856181 15 +5669 5708 29924517 16045 +5823 3965 29937208 24 +6530 640 29937217 22883 +7135 5488 29960481 7 +5453 7757 29960484 1 +3777 2177 29960485 21538 +9561 2766 29960485 21538 +1409 6073 30042405 10096 +122 9517 30043552 1041 +2403 9419 30044041 9 +2352 4719 30044046 4476 +6106 1577 30097815 1001 +5426 2122 30097815 1001 +1048 12539 30098962 1 +3207 6538 30461486 3 +15413 117 30488723 9158 +4291 4765 30490567 11 +6360 5637 30614445 110 +10452 954 30614474 7017 +13667 84 30626561 5 +977 3638 30626566 4 +5493 2256 30645592 7334 +5268 8291 30729659 5013 +2165 12959 30928835 3 +6819 3901 31332319 1 +4231 8516 31332319 1 +1854 1868 31332319 1 +5080 3582 31332319 1 +12519 1730 31464768 1 +7956 732 31512356 3 +1092 5303 31519440 3 +172 2474 31701822 9690 +10436 908 31715191 1 +185 11371 31715192 3 +7340 7244 31989383 16930 +11567 2846 32018570 4 +12846 394 32055172 159 +4186 9078 32055232 11246 +4553 9860 32056524 3 +7507 5415 32056524 3 +3152 3222 32056525 8347 +11955 1932 32158854 36485 +3845 9737 32160169 1629 +2339 4481 32217027 21304 +3804 2430 32233743 7766 +12780 1906 32235847 7 +7686 512 32241884 7904 +7150 2423 32250833 2075 +3956 10036 32254041 32470 +7997 5997 32529057 3 +14781 640 32530116 11 +289 2119 32544982 10 +2288 13207 32544985 44518 +1489 11211 32546780 22879 +4662 7563 32569604 10 +5617 4585 32868287 6734 +2028 813 32880857 12 +5640 6812 32899934 10 +13745 1332 33060969 4 +1697 225 33060972 3 +1760 8725 33060973 2 +908 1102 33171310 1524 +2178 1556 33171310 1524 +4997 4769 33185357 2 +1439 6745 33286821 12467 +9398 4540 33297275 16348 +1175 1112 33297453 39819 +4488 8649 33322087 11087 +5234 5304 33420807 2 +1169 10298 33429913 5 +5435 2714 33490602 33184 +7531 494 33512397 9793 +2628 10262 33515264 17 +1707 10327 33515275 2 +7 3169 33602804 5880 +1200 1686 33628085 9963 +4200 630 33657607 1588 +6792 3467 33658858 38754 +548 9987 33775757 5 +1594 1953 33850189 19 +5684 2388 33921437 16 +738 6034 33928972 23653 +7105 2711 33934715 26992 +4928 9145 34010480 22070 +11869 1874 34019670 16819 +3654 6725 34019670 16819 +7935 1975 34064501 15 +8763 4666 34107826 8 +1332 9483 34225913 4 +587 6070 34225913 4 +4712 10509 34451638 365 +11465 595 34451643 37 +14427 517 34451646 5132 +13233 1444 34464976 5 +6631 5362 34464979 33067 +13082 141 34483801 4 +9232 6332 34489284 4 +4532 3997 34557870 11318 +42 7843 34580863 5 +9153 869 34580863 5 +1071 4073 34592051 6 +6470 1215 34746827 1455 +4259 4971 34789478 4 +6439 8460 34789479 7680 +140 6006 34790566 19506 +10313 3210 35022087 11429 +9420 4739 35022087 11429 +9473 6068 35042656 12 +12649 2312 35097370 35118 +1700 4954 35140952 4 +4643 6741 35259392 3 +11062 1044 35503204 28498 +1107 10266 35513141 4486 +3487 3443 35922800 5 +12506 1931 35922805 25887 +5181 881 35925143 5 +4511 5211 35941333 222 +4680 5883 36073947 4 +5839 3015 36073949 6 +1400 9297 36073955 2 +5551 1520 36073955 2 +9575 498 36073955 2 +4437 3462 36073956 2 +1187 3066 36073956 2 +2066 7359 36193771 3 +1212 2224 36193772 2 +11610 1386 36193775 11050 +1586 12570 36197490 5 +2840 12723 36574376 5 +1664 5522 36751941 6564 +8145 3868 36855035 4 +9535 5406 36855035 4 +4565 7005 36855035 4 +1767 4043 36855036 10691 +2520 12614 36883245 3 +381 276 37335845 2 +1398 12190 37338109 9052 +7259 4746 37338655 2 +1502 1705 37338656 2 +4417 10606 37338656 2 +3178 8119 37723563 21492 +8503 927 37739442 317 +2391 11490 37758646 8024 +2990 11441 37929755 2 +2003 742 38341361 3 +5906 2483 38341364 4 +3490 12067 38341365 4 +3861 2267 38657552 3 +1395 11727 38657552 3 +11431 2903 38919779 5182 +1900 1086 39011784 14 +9699 4952 39011786 10 +6767 7191 39011803 3 +7621 108 39065800 19 +5643 8298 39065801 8 +2792 12602 39065805 2 +5449 9888 39065806 15193 +11145 2541 39071655 8 +8955 319 39071660 4 +7135 2917 39074177 2 +1004 9821 39107988 8595 +8994 5584 39194396 91 +541 13737 39400516 7 +10560 1231 39400518 4347 +6553 6762 39414962 1744 +7624 7378 39415443 23940 +4569 2546 39415443 23940 +464 14994 39456440 25546 +391 1301 39458949 5215 +12176 814 39458949 5215 +5486 241 39463593 7123 +11637 2486 39465647 4197 +990 12643 39547991 10107 +7132 1568 39791935 4 +3677 4159 39791937 1 +10496 4761 39791937 1 +275 1097 39838588 3 +2304 4433 39838588 3 +935 10023 39838588 3 +9236 5853 39838589 2394 +284 9935 40005824 2 +2119 1410 40005825 20768 +9493 2603 40032423 16 +550 12950 40032423 16 +11072 1252 40032423 16 +544 2649 40032433 3 +3445 1157 40123082 5 +14327 824 40143497 3588 +4189 8057 40145492 13 +1064 8257 40301088 5693 +197 7296 40301088 5693 +2612 7613 40301985 17970 +7118 4851 40301985 17970 +11867 2269 40301985 17970 +209 12172 40318250 6 +5414 4381 40318251 78 +7434 1593 40318251 78 +6943 4530 40318299 18094 +4035 999 40374039 18385 +8669 4122 40374039 18385 +3388 2881 40525567 15 +4207 1192 40631840 3011 +10901 2987 40631840 3011 +11921 2174 40673568 13808 +3867 4143 40706831 23668 +7230 1446 40830920 29180 +6195 6413 40835456 9 +2185 5482 40970241 3666 +1404 13423 40972545 20615 +12988 299 41044470 8 +2630 596 41044472 6002 +6959 8265 41044915 5 +4079 5919 41044919 7016 +836 587 41231126 556 +1823 117 41237711 12583 +5014 6129 41239352 16670 +798 2284 41384126 179 +6579 2845 41446604 1 +5969 9199 41446604 1 +8697 5098 41446604 1 +10243 3105 41455882 26968 +350 6540 41497666 3 +860 2719 41555302 19 +3233 11309 41596358 811 +10330 5075 41906414 4 +8625 2339 41911963 3 +2018 2987 41911963 3 +1026 6746 41916859 3 +3374 501 41916859 3 +11176 2064 41926505 13567 +270 9340 41932126 3 +10135 5038 41932126 3 +5649 1846 42089668 15686 +1954 7944 42111381 8332 +8790 1286 42115694 9463 +1408 6450 42125836 19 +7654 2953 42125836 19 +3275 7478 42174942 18 +357 7394 42421181 8 +2357 7542 42542788 13 +9888 1724 42823355 19721 +3609 2781 42823355 19721 +10425 1972 42870846 4 +9931 5625 42930697 4 +9598 1042 42930698 8966 +3028 8175 42930698 8966 +4591 4731 43010956 7515 +9508 5508 43149060 3896 +11963 71 43149060 3896 +10609 1502 43152691 4 +9935 3381 43152691 4 +11274 1559 43152691 4 +12401 2722 43211763 16 +3268 6551 43244311 13 +5876 4639 43287637 107 +7898 1457 43287637 107 +3482 3086 43336349 2 +3761 8517 43433361 9421 +2850 10173 43706084 5223 +9285 294 43706084 5223 +10035 1778 43706555 20094 +8019 4141 43706893 29175 +6850 7122 43834763 5 +1782 7963 43834769 13637 +145 7590 43834769 13637 +6419 739 43998477 3 +7484 7655 44017024 74 +5359 1452 44197909 13312 +7051 1896 44211791 37892 +9928 2997 44251298 4 +1305 6029 44251307 7 +962 1364 44251314 22530 +3429 8402 44252939 17952 +8547 4201 44369838 8 +2042 12657 44499914 17164 +9088 1666 44508275 6 +6403 3119 44558227 894 +1085 6401 44603818 10 +4001 4393 44678141 11122 +7546 1556 44678736 4 +116 7827 44678740 2 +729 8938 44678742 39233 +2468 947 44822109 20 +2732 201 44822109 20 +2910 4021 44822112 12979 +11617 3923 44945292 2 +82 70 44959861 4438 +4140 3679 44960560 2 +6958 5185 44960560 2 +1006 14439 45064641 3 +5775 1889 45098470 98 +3366 5432 45098481 9627 +7703 4359 45098679 6 +10878 1649 45098681 2518 +1632 2101 45123720 7924 +2139 8393 45155260 3 +4710 570 45155261 7643 +3463 4091 45161603 12561 +6176 9284 45280782 27343 +6523 134 45307412 18 +2482 1535 45307417 23943 +3227 5204 45367453 14097 +1714 9034 45507064 1973 +8417 5280 45561467 20 +12167 2832 45561474 4794 +2083 12721 45561474 4794 +790 1034 45561474 4794 +245 3174 45563122 20 +2326 12379 45563122 20 +3351 11039 45563129 3 +7219 3018 45563130 25115 +602 1054 45563130 25115 +6662 2891 45567524 14847 +2965 7341 45679396 4 +1572 1138 45679396 4 +321 7074 45679396 4 +5526 7984 45701530 1 +624 11057 45701531 7 +6541 696 46127431 32486 +7522 7932 46138293 12221 +6003 502 46378855 9896 +2923 5710 46383049 13 +3717 2442 46457438 8825 +2970 51 46465620 4188 +396 2685 46470009 12 +7785 7512 46501073 5656 +4465 4638 46710552 1 +5648 7549 46710553 11400 +7780 1837 46719539 22432 +4 2318 46719539 22432 +10950 235 46727308 9327 +448 13213 46736643 29257 +5359 5554 46765401 12 +7563 2067 46925990 2687 +5555 5541 46945072 11243 +1015 1322 46946244 8406 +4127 7642 46973985 4 +1024 7565 46973987 7972 +4579 4611 46974634 38693 +3319 741 47151453 26194 +229 6425 47154641 11 +7489 4589 47291493 10 +309 8319 47339981 4 +558 2516 47339981 4 +7886 5439 47339983 3 +6241 6090 47488464 4 +1097 3549 47488468 4 +10284 1092 47488468 4 +3819 10617 47488468 4 +3253 10538 47644414 1874 +7295 4912 47766558 4 +7244 6017 47813849 6 +10786 742 48015943 38262 +1430 11724 48015943 38262 +4796 6846 48057609 25217 +11893 1303 48217572 15229 +2680 8446 48222849 4 +8612 5507 48222850 5527 +11652 3377 48222857 7670 +7578 4959 48285534 12 +3354 1262 48285535 2446 +2861 6090 48293651 13 +8863 4290 48293659 8 +3496 893 48293663 4421 +9439 2828 48308609 11 +9062 1067 48308621 34026 +1433 5895 48344562 3718 +4969 3393 48344859 13 +1483 10453 48393971 15329 +5683 1607 48415676 4 +909 14119 48415677 3 +8598 1434 48415677 3 +9321 4029 48469676 1 +7212 6934 48587720 16107 +10902 4504 48592770 1 +1101 8168 48592770 1 +10723 2009 48592770 1 +7456 2702 48592770 1 +3959 1813 48592770 1 +4644 4868 48636875 12 +7611 5631 48636875 12 +7193 3525 48820892 204 +4662 7863 48870444 4 +6089 8393 49010968 18 +9004 1258 49228078 470 +1058 1818 49228078 470 +8243 1033 49285311 4 +267 4073 49285313 17 +4056 5713 49422509 77 +7115 5768 49422528 5 +1073 13372 49422530 6507 +2620 1539 49862900 22213 +813 14259 49884245 11414 +7878 4973 50282887 2 +12048 1272 50282888 5 +5364 7373 50282893 37321 +7778 5334 50289271 102 +8529 4917 50430693 26069 +4988 8970 50448197 1268 +892 12236 50502113 19 +4937 5201 50577492 7067 +4780 10843 50579713 10538 +10581 1605 50587113 2 +1434 1998 50615299 6 +3811 7655 50615299 6 +14614 778 50615301 32 +13307 2099 50633674 350 +3359 1767 50633674 350 +780 78 50673618 1 +8838 3183 50674102 4 +5698 2164 50674104 14441 +949 277 50698543 22186 +5122 1057 50698543 22186 +2068 10901 50698543 22186 +7462 1333 50699803 5 +8372 3880 50730114 9767 +162 6650 50732243 3849 +9904 2050 50962734 13 +13885 983 50962734 13 +3322 6003 50990175 19124 +657 13848 50991473 3 +8565 4161 51513220 6 +3357 1088 51513224 28450 +8530 5149 51513224 28450 +2540 10210 51621943 8051 +1253 1146 51658465 3 +7905 4185 51695383 2 +3049 823 51746724 1 +52 6644 51778887 3719 +12910 2302 51966048 3 +2293 9603 51966050 2 +4338 3079 52211478 18297 +306 8246 52218648 9 +3028 2235 52347643 4 +2073 4399 52425930 8 +6922 8443 52491251 12936 +8964 2553 52498790 3 +436 6922 52536033 22695 +2738 7115 52578177 5377 +2747 4250 52656967 17466 +2748 7427 52720367 5 +359 14246 52720368 21751 +7943 3746 52765601 10 +1954 5593 52835047 18 +604 6427 52835052 2 +1827 9126 52835052 2 +2303 3380 52835052 2 +3379 3892 52883813 152 +2647 8475 52985832 17645 +9945 1195 53286306 1095 +4359 7112 53287006 2 +5575 7810 53287007 4 +1096 6351 53340002 12034 +6847 3283 53350027 2 +7759 3691 53395418 10 +106 4611 53413744 11 +1225 11691 53524595 1891 +4627 7408 53526212 3038 +4850 1237 53723523 1 +122 10130 53723523 1 +7786 2740 53723523 1 +1526 9717 53785047 4 +43 14431 54092128 1391 +6265 3679 54093286 4 +4861 8084 54093286 4 +8845 488 54093286 4 +631 9351 54103023 706 +11279 318 54103023 706 +3132 3436 54105295 1 +1344 12117 54105295 1 +11068 1883 54105295 1 +7942 3436 54105295 1 +53 9888 54153750 5 +2804 10194 54153752 3 +815 5359 54153752 3 +5368 4030 54268448 8910 +5967 212 54363709 5117 +8237 5791 54371385 36002 +7394 3177 54540150 3 +6019 4090 54540151 1 +858 2551 54682105 18998 +9015 5236 54685008 19126 +8410 6362 54694150 76 +6205 2384 54694223 1030 +4362 1550 54725697 7 +6733 1072 54769391 18304 +3730 11765 54783269 39 +1292 2127 54849688 18537 +6247 9124 54884143 3825 +7032 6253 55005509 17 +374 4048 55005512 4 +5532 6529 55005515 4 +244 2438 55005519 11096 +2315 2051 55005519 11096 +1234 14265 55009780 4 +3766 3557 55104705 8 +8781 1782 55104705 8 +5817 8069 55104710 5 +2322 11637 55226795 3 +6757 2477 55347910 6934 +12608 872 55348722 10099 +7006 7065 55349009 14 +4935 7541 55349026 13414 +6406 1256 55349026 13414 +12 14846 55365213 13 +2529 9824 55365218 7446 +4287 5729 55365218 7446 +9509 4162 55397865 185 +10244 1026 55397884 27360 +1141 12778 55433635 3 +7883 4661 55594492 41468 +258 6422 55612038 1 +4000 5028 55612038 1 +7662 755 55612038 1 +522 6267 55612039 8 +8312 3033 55612040 24397 +8925 1283 55612040 24397 +3704 7737 55612514 10 +2275 13029 55612516 19 +5826 4423 56022413 17216 +5794 2534 56027940 1 +10188 237 56114711 3 +4525 8890 56116805 2 +5568 1346 56315178 2 +8901 6695 56315181 5596 +618 1206 56400929 3 +1279 1047 56402903 27885 +2828 6361 56441284 13802 +1607 4567 56450974 23870 +6243 5421 56615822 24944 +9393 3616 56625057 5 +815 2994 56625058 14770 +401 4345 56626379 3609 +1324 8542 56686954 34908 +6226 679 56893251 18570 +8196 3624 56898794 12334 +772 13177 56904595 18784 +6830 8349 57012760 5271 +1809 3540 57013480 1 +818 6005 57030422 4 +4005 4573 57076590 1 +2454 4651 57190449 33035 +8880 4634 57190449 33035 +4009 6060 57269296 3 +4073 372 57303417 17 +3360 9271 57303425 33717 +4255 2578 57378974 4 +4554 8511 57378975 4 +5943 7042 57378975 4 +7006 2221 57378975 4 +1032 5012 57397813 4 +3185 6256 57448822 1259 +7004 6927 57504325 18173 +10399 3657 57514069 6 +2450 12028 57514071 4 +8019 4514 57514073 15054 +2850 5644 57662932 3 +3693 5249 57662933 612 +4322 7402 57663059 2 +8760 4707 57922257 1237 +9648 760 58056995 44 +5923 1436 58085378 9082 +15134 44 58086050 3460 +6047 3237 58088230 8 +8483 568 58088231 17823 +3295 6809 58094574 152 +1359 4752 58094592 8175 +7595 147 58104673 5 +971 8621 58106033 2 +936 12001 58157120 4 +6486 3063 58157123 22930 +1870 54 58160752 1 +3323 3555 58162090 3140 +197 1052 58166032 30990 +5707 41 58173851 2024 +4248 11096 58175563 16 +1138 9793 58355008 524 +2031 10220 58355282 2396 +11690 1696 58594769 7 +9375 5485 58604770 2 +3919 9821 58738193 2 +109 5732 58738193 2 +8868 1922 58738193 2 +4236 32 58738193 2 +564 10811 58738194 8578 +1031 2394 58744356 15 +10411 4149 58785059 17559 +11304 3047 58788852 8568 +6360 7197 58790158 11904 +4471 9843 58793197 16 +3159 7602 58793212 8 +7286 2205 58793214 4 +2400 10370 58809743 28758 +7879 5281 59074423 76 +5783 162 59074423 76 +6201 6654 59074452 4234 +7143 953 59101417 17443 +1927 10072 59101417 17443 +5968 7517 59260154 15488 +5930 3019 59529238 11621 +9331 2119 59541017 5609 +1592 3651 59541017 5609 +1315 11283 59657852 417 +9476 4416 59657981 12251 +3040 9519 59659467 10872 +1944 6034 59659467 10872 +7574 6653 59659479 2204 +2370 5623 59659888 13538 +5783 3435 59659888 13538 +2337 10238 59675378 7217 +850 4884 59872982 5 +6462 3127 59977864 2 +830 9355 60064176 4 +2774 839 60333036 3 +8249 2075 60333037 4 +603 6655 60405994 13 +7911 4521 60590853 4 +4220 8630 60590855 3 +254 14801 60590858 2 +2380 12450 60917887 3 +1199 13682 60917888 2582 +11069 2820 61425165 6498 +1341 3432 61425165 6498 +11996 3069 61426226 14312 +10087 4896 61462984 12633 +5064 7576 61633442 3 +1868 198 61633444 19551 +7578 4133 61641732 19104 +375 2300 61689170 19 +2335 9143 61693151 12690 +10884 4285 61744516 357 +12186 2783 61744516 357 +3939 1612 61744866 5 +6827 143 61744868 14719 +7614 2415 61752962 1 +107 1359 61769077 21182 +7994 2040 61815124 4243 +4979 2297 61820851 2 +2931 7521 61820851 2 +5841 8032 61820851 2 +324 4349 61821893 2730 +1360 826 61823201 4803 +11668 3845 61824010 5 +819 11484 61923636 24580 +1324 1611 62019884 4846 +14216 1039 62024124 1 +7743 2360 62024124 1 +3354 11011 62082247 5635 +8735 1271 62084982 18 +6832 6315 62126693 114 +1901 8468 62126694 11784 +1080 7085 62126694 11784 +9484 4174 62127430 20347 +6133 7492 62134346 3181 +2320 11500 62400552 11041 +9302 176 62418712 14 +3851 6750 62418714 13 +4854 10365 62498735 14 +3439 9326 62498740 76 +3688 9876 62720953 11239 +1727 1171 62728996 266 +7363 3348 62729327 9391 +11182 4313 62729327 9391 +12546 2647 62746134 14 +3672 2955 62746141 2 +1312 3697 62746141 2 +6057 247 62880297 6452 +1390 1561 62888180 493 +2918 1592 62946062 2 +5902 598 62946062 2 +8137 6426 62961889 17661 +2126 9551 62984946 2 +8085 7234 63168248 4926 +1319 11379 63433450 4932 +6364 858 63722174 2 +2174 12638 63722174 2 +10502 2123 63722174 2 +11577 3669 63722175 2 +368 14188 63722176 5 +259 6477 63789795 4 +7409 6986 63789797 12 +6824 3566 63863504 4745 +3669 5794 63871132 4 +384 6628 63871132 4 +12102 1889 63971755 3 +5054 2392 63971757 8 +1939 9383 63971764 2 +562 5361 64079755 30861 +6230 5630 64082645 3 +9375 1233 64082646 4 +1383 2047 64082648 3594 +2437 4221 64133099 13545 +8543 161 64175455 4 +473 3331 64180053 6558 +3688 11066 64181144 52 +1604 6581 64478036 12554 +2374 10234 64527406 3 +5586 5319 64527406 3 +13907 1246 64568135 5877 +11379 3924 64568135 5877 +4484 10421 64586981 5 +2609 1027 64831048 3 +9556 3068 64867963 5 +11981 2972 64867963 5 +6432 2055 64867964 5116 +4070 325 64913432 9529 +1820 7621 64925531 14269 +4592 7932 64925531 14269 +7363 7692 64928798 10670 +3174 1043 64944140 20368 +1882 4357 64951169 5 +6847 3553 64989123 5503 +1348 5755 65018696 15 +9706 3720 65018699 7148 +4923 3368 65020393 21306 +10601 4136 65032181 3 +1035 4014 65032181 3 +13838 473 65032181 3 +9393 478 65039539 3 +10649 4874 65039539 3 +13824 497 65039541 2 +5772 5662 65039541 2 +7460 5343 65141834 32341 +8628 3514 65182236 455 +360 1631 65305712 6863 +1052 10807 65330076 17720 +1850 3939 65343296 4853 +9838 1651 65449400 9061 +545 4740 65449974 3962 +3789 5518 65452142 4 +1971 11858 65519437 4 +645 13712 65758275 10093 +6193 1302 65975805 12 +5489 10063 65975807 14 +49 3476 65996129 22006 +6398 6442 66003841 10 +4503 2833 66175903 34 +7866 5514 66289043 8120 +5668 2088 66293273 13916 +9255 1648 66295069 3743 +4800 3153 66317112 1113 +9124 3999 66317112 1113 +1770 11463 66317817 12 +7375 4074 66454142 12 +3872 1462 66485792 5 +9724 4003 66514902 13 +378 9306 66514902 13 +576 9899 66832145 10823 +3981 11135 67154107 19653 +12751 851 67158803 4931 +5586 2459 67158803 4931 +6273 3298 67219087 14020 +3832 9003 67227374 1262 +1524 11515 67229169 3 +9935 946 67229170 16 +3222 1583 67229170 16 +4226 759 67229174 38249 +10693 474 67262312 5 +495 13032 67262312 5 +10419 1748 67358749 7 +5830 5743 67358754 12 +7882 40 67464543 9 +2418 6930 67464791 4 +702 8623 67464791 4 +7733 3367 67464791 4 +9903 5018 67464791 4 +2353 7463 67464793 2286 +720 8090 67464793 2286 +6561 7967 67682782 17 +205 11629 67735238 11893 +1251 2176 68042038 19173 +2378 7208 68086913 353 +8736 53 68181649 3813 +8181 6775 68183707 4038 +5206 7870 68183707 4038 +10264 5265 68184937 257 +7210 6144 68320161 11 +94 2796 68320172 7834 +8697 5852 68320172 7834 +5859 2110 68343111 3 +6230 8741 68343113 3 +3762 2979 68368378 25636 +16 5731 68453736 2 +751 11648 68593192 3 +3352 8176 68804464 324 +4433 4607 68804527 5 +3113 10181 68804528 5 +9321 4084 68804529 2 +6796 5852 68942336 87 +3545 8759 68942393 15361 +1762 1775 69292629 14066 +7306 1598 69348590 893 +6446 3859 69349295 19575 +2037 8945 69360547 169 +5799 1180 69360564 317 +5401 7395 69360564 317 +9836 1119 69360621 26135 +7773 1115 69360624 17 +9750 3890 69388758 4 +7817 2696 69411451 7 +2554 5752 69411455 18 +1223 7907 69537622 10 +8900 4899 69537629 7775 +5116 1605 69537629 7775 +5901 1658 69578526 13 +10817 1176 69615019 651 +6321 1996 69615075 2830 +11159 1510 69693146 1 +840 4303 69711593 7 +4124 5650 69855130 3 +3126 7668 69855131 3 +4770 9267 69881676 1 +6457 4175 70160926 3 +7462 1627 70306832 3 +3994 10747 70310059 28310 +12122 870 70332230 2585 +9819 5629 70332230 2585 +2818 9924 70332230 2585 +5072 10036 70333757 13 +824 8839 70333761 3 +4943 8113 70668937 36396 +4549 10800 70759685 31212 +2338 3205 70774211 16 +3782 7686 70774223 38 +2416 9315 70774241 19159 +1894 7203 70991525 17 +7140 7578 70991528 2 +2238 2065 71147220 2 +1135 14180 71192650 4 +7917 4247 71192652 2 +1739 1256 71192652 2 +10268 3446 71219528 25123 +889 770 71307734 1 +1843 11948 71307734 1 +11161 2835 71307734 1 +964 8357 71337400 4 +9474 5715 71603274 29919 +2451 12603 71610805 3 +10484 2950 71610805 3 +1345 2950 71610805 3 +1061 1484 71713485 14329 +4631 5486 71741637 4299 +4989 10129 71745725 20 +3621 10554 71745731 4525 +178 13737 71888155 18 +4832 5394 71898162 96 +12776 2214 71995494 30039 +1192 3560 72083295 100 +2652 8765 72189838 2 +7056 2979 72320662 18 +300 7577 72363955 6861 +9950 4217 72366654 4 +11805 2809 72366661 16 +2705 8650 72366666 334 +7606 3727 72366730 11893 +1968 8447 72377301 18646 +2198 2254 72407148 21252 +3166 8843 72448423 2 +14022 1364 72686222 9404 +826 10655 72687185 4004 +3094 4898 72687185 4004 +6691 4428 72687608 1 +3217 12066 72786575 1041 +1101 3487 72786575 1041 +13370 2199 72787456 22411 +3522 7260 72787456 22411 +8694 4670 72799838 8 +10442 1118 72799843 9 +9270 5974 72799846 20 +8237 794 72907935 1 +898 11297 72935652 477 +10439 188 73304289 4013 +2794 3184 73304289 4013 +13064 1450 73304322 13323 +992 13280 73304322 13323 +541 13149 73310844 11 +2598 12529 73321209 6592 +11373 2635 73321209 6592 +6279 9252 73323309 16 +7071 8351 73323312 4 +8187 6724 73323315 4 +788 120 73323315 4 +25 13394 73325690 5 +8932 4084 73625904 3 +1292 11469 73625904 3 +1303 9472 73668539 4 +5367 1156 73668539 4 +4917 8262 73668541 7860 +2692 2540 73669740 9730 +6131 6858 73733099 9 +9324 3099 73897690 35681 +1624 5920 73908961 4 +1583 2583 73908964 25139 +1799 13172 73952313 9927 +3138 6597 73958235 18393 +261 14115 74007599 1 +3893 2799 74325252 36 +2530 9198 74338838 11 +4049 1695 74338838 11 +5942 6355 74338838 11 +10413 3532 74395668 3098 +5076 8527 74530007 64 +10640 2438 74530090 2 +3451 6928 74530091 19582 +3535 461 74540163 4201 +1404 7085 74545943 3 +1863 10825 74545944 2 +6186 8406 74545945 4 +1030 10763 74657920 28657 +8359 4295 74676363 14 +10587 2771 74793577 1520 +868 12782 74793577 1520 +2599 2237 74793708 13009 +3377 7328 74835460 33373 +2748 10149 74898651 1426 +2551 4511 74898850 19898 +3928 10066 75046061 3 +4667 6345 75046062 7575 +889 9557 75081773 11496 +11902 926 75319140 2 +10740 935 75346181 4 +9026 94 75383276 25 +9683 177 75385726 81 +9186 3735 75385761 103 +6024 3902 75434935 1095 +1964 13213 75464361 43096 +11607 2947 75770959 17643 +3045 6280 75770959 17643 +1132 5790 75774413 33312 +596 273 75783237 2 +8266 804 75783237 2 +9409 2312 75783238 1 +4140 5339 75783238 1 +4254 7267 75804722 1 +4373 2207 75804722 1 +13891 1547 75804722 1 +3712 6522 75812555 2 +5327 4308 75812555 2 +114 1080 75812556 10541 +106 2029 75828253 7 +5056 10101 75829663 3 +12699 1746 75829663 3 +50 5452 75829663 3 +2256 12602 76014282 8 +11158 4043 76014286 8133 +3473 5398 76126505 19 +1958 13035 76126509 3 +9691 18 76126510 1412 +389 12879 76127797 2 +2881 12504 76127799 3 +6279 8152 76234643 5 +1596 1437 76234645 2 +11391 3298 76276060 6372 +63 10812 76281829 95 +28 10482 76441200 6 +6122 3340 76779334 20514 +11442 3891 76884809 216 +6376 4616 76904020 31169 +2706 9600 76916291 3 +9993 4995 76934405 11 +7163 7005 77087912 711 +4909 6573 77088640 66 +5745 5617 77088644 5 +5668 5558 77311792 13689 +2042 1192 77393440 18 +13929 642 77393440 18 +441 11751 77405388 10 +2385 6880 77850932 21413 +4418 3633 77850932 21413 +9421 4234 77888982 22348 +304 12761 78044098 20547 +7998 2421 78353946 6261 +3366 7399 78424506 1224 +9706 5478 78425431 3 +13699 1556 78425435 2 +373 10960 78425435 2 +1762 3037 78425435 2 +7075 651 78505010 58 +10552 213 78505061 13844 +10223 5346 78507354 32902 +2821 12361 78538093 27695 +11513 3833 78551513 2 +10746 995 78601535 4 +5011 6222 78601535 4 +7590 5393 78601537 1 +5933 5833 78601538 5 +8549 3817 78601540 7556 +65 13533 78750941 69 +625 7570 78750955 105 +2710 7983 78750955 105 +9469 4246 78750955 105 +400 5702 78808281 5 +1557 4761 79035131 8207 +8876 5124 79040501 6546 +7257 7024 79223055 2826 +10265 4632 79251191 35649 +12449 1869 79269567 24536 +5317 4971 79298609 13 +14197 69 79433283 5199 +4481 9051 79433283 5199 +8951 4233 79435503 23123 +769 2022 79488802 7857 +13324 1192 79514939 1162 +2669 12773 79514939 1162 +2672 2983 79722101 3 +10993 815 79771203 882 +9794 2034 79771262 8715 +3504 1786 79818958 25243 +6140 7700 79860575 3 +7167 2874 80007741 20 +704 6221 80083094 41020 +555 3729 80300666 4 +1576 4040 80300666 4 +7658 4305 80338779 4 +2387 8490 80338782 3 +11155 2503 80338784 17 +108 1359 80435503 4 +6374 9146 80435503 4 +1586 5048 80435503 4 +1995 1402 80435504 5 +3245 9406 80435505 4 +450 6522 80435508 34355 +772 8089 80435508 34355 +4639 6946 80515305 19 +7566 5188 80515307 15433 +4081 6466 80535091 27484 +4213 3712 80791048 3 +9672 3539 80791051 1751 +3430 340 80913924 18 +5277 2785 80913948 1 +5760 2942 80979947 18015 +2529 3753 80983878 4 +4537 6010 80983880 15796 +1451 12267 80987253 19196 +5666 7545 81384470 3 +11165 2922 81384470 3 +1420 349 81384477 35853 +4999 5394 81412058 13066 +4120 4074 81414677 22196 +10950 1670 81564265 6594 +7962 7210 81572039 3 +6759 3451 81572041 21388 +10625 830 81587554 12 +3468 11760 81587556 5751 +182 15036 81596767 6 +10950 17 81596767 6 +558 9193 81596772 1 +2802 5551 81596772 1 +2453 2563 81635656 3 +3061 3513 81646191 3 +7269 5341 81673541 26874 +2506 5136 81675348 9233 +10771 440 81735910 4488 +4486 10992 81751847 14 +11 390 81751847 14 +1118 4171 81751847 14 +5264 2404 81828921 4 +11116 310 81862234 8669 +9357 2083 81873113 2 +5237 3566 81873114 2 +706 341 81932932 18 +3602 9765 81932934 3611 +6344 6699 82170657 35 +9356 2183 82170661 11 +1959 3385 82170663 53 +7220 5278 82170663 53 +5839 6890 82170663 53 +772 6413 82170664 18698 +1572 9140 82170664 18698 +2564 10265 82417152 2 +11272 2207 82417154 9077 +4598 9654 82489317 24192 +4859 6708 82512829 15 +1963 1994 82512838 3321 +3303 7061 82512838 3321 +2948 11155 82617605 17 +10063 881 82774425 11685 +891 9348 82774425 11685 +3658 10084 82980634 5 +7827 3231 82980634 5 +1539 10453 82980639 19711 +3954 5100 82980639 19711 +2798 8021 82981104 23919 +11037 1392 82997571 24368 +4337 6230 83038164 2 +21 5727 83038164 2 +10069 2735 83198538 962 +1218 10172 83198848 69 +2767 2995 83198875 18 +244 9627 83198879 105 +1203 5718 83354426 16706 +7178 5293 83358082 1 +10392 5031 83358082 1 +902 5667 83358082 1 +4007 889 83581875 4965 +14192 755 83581926 19036 +724 8856 83606057 20392 +3600 2692 83606759 3 +2882 5567 83686112 4 +10830 2508 83686114 16 +4695 9179 83686123 2 +5900 7604 83985121 1 +11140 2072 84130648 3844 +5539 8500 84136834 13 +3874 6475 84136836 3 +12214 3309 84199198 4153 +1120 11961 84313081 3 +2819 10379 84575640 5 +5183 648 84717876 3 +9980 3703 84717876 3 +1076 7175 84717876 3 +4172 5187 84717877 4 +12781 2010 84730205 3 +6630 4583 84730205 3 +9582 2504 84909273 2 +471 9011 84938122 14 +3640 3155 85231767 2 +15061 508 85231767 2 +122 11890 85231767 2 +8000 3155 85231767 2 +6864 5279 85299504 4 +5469 8693 85299507 2 +10438 2320 85636735 36139 +5455 9612 85688866 3 +1257 5941 85688866 3 +4557 1743 85688866 3 +2297 1059 85713427 17934 +646 12411 85720377 9 +3214 10118 85787840 782 +9094 1581 85863894 1 +3960 6174 85886837 2 +7087 3890 85886837 2 +1 6880 85900541 3 +6948 7654 85900542 27943 +1779 9177 85901985 2 +3131 6296 85901988 4326 +5185 8371 85906314 1 +8205 2010 85906314 1 +6419 3969 85906314 1 +1268 7426 85906315 1805 +8774 2071 86024816 18 +11742 3541 86072971 3 +6113 1527 86072972 21539 +1572 8380 86116975 15959 +14889 99 86116975 15959 +1049 7074 86116975 15959 +2763 9993 86144368 17559 +1832 2068 86347001 2 +5391 5434 86347002 18 +2365 3332 86439212 16 +343 13326 86439216 12441 +4530 5019 86449958 41735 +1265 2616 86551586 5 +11469 2566 86551586 5 +631 7478 86551588 10374 +3599 6199 86571052 17523 +7200 6985 86790143 22585 +10062 2114 86790143 22585 +393 1028 86811874 5575 +10749 3085 86815072 2 +1400 1790 86815072 2 +6253 5437 86815073 16 +5200 2276 86815083 7 +7100 3497 86872349 44753 +7422 1949 86890775 3 +7985 4688 86896791 2479 +2526 5895 86992789 1373 +8184 6041 86998150 13202 +8096 1548 87032393 5 +2088 5500 87037009 6041 +2457 1927 87242161 6 +250 7000 87242163 4 +479 11022 87310169 3 +6749 7771 87310173 32247 +6103 8581 87550215 18 +7333 5657 87647655 3 +9683 1014 87647656 7409 +4026 9780 87658009 1254 +6437 4744 88002485 4036 +2974 3896 88029917 3 +9257 5033 88107338 26744 +127 5922 88107338 26744 +3987 7990 88227128 8816 +2504 2865 88229300 6035 +912 6626 88233528 607 +624 8927 88233528 607 +4856 5517 88233528 607 +6109 1840 88235738 9 +1982 4028 88275188 6372 +12 13455 88278328 2909 +7816 2098 88278328 2909 +10320 1488 88278683 3 +3305 7100 88278683 3 +6375 2974 88345284 14586 +1382 7575 88354779 12870 +7449 1312 88588166 13 +3794 4887 88609800 11866 +1523 2534 88617061 3 +1382 10554 88707819 2 +3923 2877 88707819 2 +7084 5321 88793398 5 +1353 9427 88850740 3 +205 6126 88850740 3 +2356 1904 88850741 403 +7966 5267 88892419 3 +7630 211 88903354 13066 +3171 876 88924688 8116 +2987 8117 88926329 3 +3554 10305 88935096 10637 +11594 2957 88944501 11439 +6250 8913 89057699 42483 +1237 13387 89067259 10 +100 13530 89067265 35278 +6948 3291 89301995 2 +1780 3040 89301996 37710 +10291 1748 89329336 9386 +4412 5587 89378212 3 +1095 2231 89446006 7126 +6966 5777 89533459 16244 +2793 799 89745490 1177 +9086 850 89745557 1 +894 186 89779549 1 +4975 9407 89779549 1 +1845 6301 89874585 1 +2737 5095 89874585 1 +11656 776 89874585 1 +1171 7861 89882147 2165 +5587 4509 89882147 2165 +5676 7759 90043408 44346 +13454 395 90052805 134 +13137 1683 90052840 1 +7294 8153 90108572 16092 +1508 5134 90415639 3 +3253 96 90415641 8730 +4431 9842 90422249 7641 +3013 9039 90634657 4 +4369 4703 90947686 3292 +5819 8599 90948774 1873 +5586 8422 91098852 9239 +9984 1838 91426230 7 +7059 6960 91426230 7 +526 5556 91426230 7 +8744 5057 91464520 88 +12300 829 91641824 4623 +4919 10608 91642189 9219 +1287 3643 91643450 3 +4335 10149 91643450 3 +4664 7516 91643451 15 +1210 11492 91643473 18857 +1656 1434 91654347 6212 +7731 4073 91659728 4632 +4126 9479 91660520 14383 +7908 1130 91866701 2 +12183 2731 91866701 2 +4037 2590 91912150 238 +5570 862 91912303 17 +1535 6522 91912303 17 +14711 375 91912313 3 +1020 12279 91912313 3 +3630 3018 91912314 18603 +7188 7719 91974322 2 +2945 11177 91974325 8069 +14117 381 92400846 42482 +835 11639 92417382 15189 +470 2259 92421252 27585 +13025 2526 92443754 17 +2604 913 92443754 17 +7679 1726 92456768 10 +4074 7462 92484475 8157 +2129 7233 92532238 21240 +3408 1789 92705972 18879 +2176 7479 92729165 9448 +12233 994 92737765 6 +2569 11319 92737767 4085 +910 11187 93158403 8 +1873 6709 93158406 2 +3306 4498 93158407 4 +8491 3819 93158408 2 +7321 3877 93169037 16406 +9675 916 93183746 9 +6683 8081 93183746 9 +2298 7472 93183746 9 +12890 992 93390557 24119 +1368 27 93391224 648 +5750 8828 93392204 31375 +7728 2857 93425966 2 +4187 3315 93425966 2 +2632 4862 93425966 2 +2545 6893 93478900 29024 +5708 7755 93647873 33928 +9872 1103 93899336 2 +1088 13364 93899338 4 +13167 1064 93899338 4 +344 2189 93899338 4 +3319 2031 93899339 2 +14282 839 93899340 5305 +6520 3990 93899426 9504 +801 3681 93899757 7235 +7274 1008 93954947 24201 +3397 4177 93985155 30399 +9638 5392 93997842 2 +4565 202 93997842 2 +2527 7027 93998806 4 +11542 3422 93998808 5 +12750 2047 94072586 3 +5634 5485 94075712 2 +9960 2890 94075713 10658 +6978 2858 94078986 9632 +7959 6264 94078986 9632 +3702 4337 94198718 16 +9513 5531 94198724 520 +6419 869 94198978 19 +1256 2533 94225460 16842 +6108 4822 94230849 14215 +10774 2012 94387444 5352 +4352 5553 94390288 9571 +2541 3245 94390288 9571 +1997 13363 94396719 1 +5072 8036 94396720 22658 +10932 4331 94525630 2 +2124 4199 94566738 31214 +4518 169 94578433 20 +5108 5945 94579520 6427 +4052 1421 94579520 6427 +10929 189 94582135 82 +5912 7814 94582147 2146 +3789 5356 94582562 19 +4724 5579 94760602 11 +3887 2675 94760604 13304 +5197 319 94778705 35550 +3055 10566 94778705 35550 +11063 1571 94778705 35550 +2841 5447 94787378 1 +4745 3865 94787378 1 +12651 137 94787379 16 +3198 5247 94789094 9 +1132 9916 94789096 12 +457 5020 95072835 39139 +4806 2166 95188175 1011 +8586 4551 95264783 17421 +1028 6819 95293192 15 +3675 7908 95417818 3465 +13316 2131 95716185 2 +1622 12261 95716185 2 +1421 8633 95917692 3 +1590 13063 95917693 4 +2250 10929 95917695 2 +10566 3037 96272705 2 +1740 7089 96272706 16 +4270 535 96272721 30 +4735 10089 96272723 15996 +4136 1731 96281498 4 +10360 2534 96281501 3 +3800 8267 96281503 2 +3962 2124 96281504 5 +11240 1897 96311136 2 +3102 6724 96311138 15 +7198 1788 96578214 4 +6648 8902 96608830 5 +8119 2378 96608832 77 +1131 10100 96608832 77 +7269 6755 96638149 8966 +5336 10255 96641315 6305 +4884 8895 96706175 17 +10091 453 97051791 12 +87 12041 97051791 12 +3744 8791 97220182 20 +9107 2037 97220191 5211 +4801 129 97262616 2773 +2248 10133 97265427 1631 +6322 6052 97536273 11247 +889 10644 97536650 5320 +6339 735 97539486 14 +3631 10583 97539486 14 +3493 9132 97700948 1 +5324 2528 97938686 16081 +14354 1274 98025659 4 +4675 305 98025660 15 +13112 674 98036171 16654 +6893 2058 98036171 16654 +11630 1384 98043793 4 +5744 7425 98043794 1250 +10816 4334 98043794 1250 +961 1595 98043881 15 +6091 4346 98071071 4 +5642 7679 98158479 32483 +131 11066 98186580 2 +279 5449 98339871 609 +777 9615 98530609 12649 +7506 2644 98534761 4 +10048 1047 98534761 4 +3977 11 98534761 4 +4288 393 98535067 7 +2572 11456 98535067 7 +11250 3497 98979481 56 +13019 937 98981030 14 +648 8016 98987213 24959 +4452 5127 99012256 15 +5509 8784 99195248 27136 +8011 7037 99256902 4503 +2368 7981 99258230 22901 +2728 9827 99285737 19 +4183 2074 99285740 6441 +8187 3576 99337960 3 +13045 344 99394568 39843 +1735 8115 99394568 39843 +110 15197 99595093 1 +8407 356 99595093 1 +1879 356 99595093 1 +8688 4926 99595094 25005 +2503 8760 99659377 14664 +405 4057 99916730 2 +1861 2275 99916730 2 +3427 9011 99916730 2 +11584 544 100233471 12 +5811 8169 100233490 93 +3126 7511 100362723 14 +5462 6834 100362725 20069 +5980 2162 100365900 17 +142 7982 100446410 17905 +4905 1676 100544400 12940 +6384 3302 100546406 10 +5432 7443 100546409 2 +158 3504 100576807 185 +2917 2766 100576807 185 +12268 761 100577107 2 +1900 2147 100589552 5 +6608 3767 100589555 3 +9087 4263 100685191 13882 +3494 6963 100689936 1 +8622 422 100965041 1192 +2020 11410 100965086 1 +6214 7780 101005589 2 +5061 6433 101293434 17490 +9626 231 101399548 371 +5990 3843 101399694 2 +2620 6524 101505206 3 +2653 2046 101764100 5351 +8840 2187 101773898 23365 +5059 5387 101860006 537 +652 14588 101860702 1 +3117 11726 102164133 3 +1335 7782 102329805 7 +3570 2864 102329805 7 +3879 5939 102329808 8984 +5129 4726 102329808 8984 +316 14596 102419597 2 +3985 5060 102447311 3 +3724 8459 102625861 2 +788 4868 102845163 15 +3243 6034 102845163 15 +227 8345 102845171 4 +1743 7711 102845174 1 +10345 4486 103129051 537 +219 369 103129245 4 +8059 4541 103129245 4 +1810 7871 103129245 4 +8649 4753 103398578 5 +2291 3927 103398579 3 +1127 11626 103398579 3 +3874 10544 103780762 52 +4316 1822 104005534 20345 +11479 3194 104032861 2 +7625 2389 104032861 2 +2538 2141 104063048 15 +3924 3078 104127770 18418 +651 12051 104127770 18418 +6354 4658 104436866 15 +2393 212 104460129 299 +5113 4234 104460129 299 +170 11107 104460129 299 +2276 8838 104640481 9480 +132 14650 104640633 14 +2518 3321 104865752 16 +5462 2409 104865752 16 +11268 1349 104872811 7924 +3137 358 104922917 7 +3474 528 104922919 14376 +10235 5155 104922919 14376 +8876 276 104924979 27689 +11125 450 104927573 2 +4645 375 104929861 1 +8161 2884 104929861 1 +6335 910 105027673 3172 +7301 6381 105049088 6 +7408 4360 105124003 3698 +9287 2186 105125311 10098 +11028 3543 105125311 10098 +5908 908 105154162 5667 +6321 5104 105156723 4 +2086 10942 105245431 2 +4529 4611 105245431 2 +10960 1614 105327475 3 +10863 3874 105327476 8309 +5023 7756 105476331 6 +9042 2552 105702731 17 +3283 9189 105702744 4 +1557 11991 105858354 38085 +1349 7691 106150925 2 +1507 5483 106150925 2 +1188 7619 106281492 16 +7476 6209 106500716 40012 +9069 2053 106512951 7793 +1877 8847 106512951 7793 +1865 3374 106740948 13 +13557 478 106740950 2 +12438 2289 106740950 2 +10686 3673 106740950 2 +1805 2092 106854421 10811 +4575 2682 106870835 2 +1034 11410 106894646 2 +1548 4143 106894646 2 +9709 399 106894646 2 +8680 3957 106902332 5918 +2833 1490 106941273 29502 +3723 1406 106980717 10 +13456 772 106980721 105 +1835 12431 106980721 105 +1677 9536 107322668 17871 +5714 9634 107337692 10717 +6050 5429 107341437 8 +4295 1004 107505205 15837 +4872 112 107529839 4 +7379 4591 107531950 4 +6591 4173 107690731 22800 +12594 1901 107808661 18 +1873 13396 107871647 4 +7339 7970 107871649 1 +13479 1814 107942647 3 +3927 8139 107981681 21715 +109 7362 107981681 21715 +2446 7621 107983584 4 +2897 4587 107983584 4 +2624 8171 107983587 652 +13572 167 107984259 9 +7971 1660 107985364 68 +81 4226 107985364 68 +2939 6240 108051100 588 +4372 2622 108051243 26378 +2993 2218 108072147 4 +14046 217 108077711 24198 +1094 1419 108093202 5819 +3076 4581 108093202 5819 +11319 3235 108093202 5819 +6067 8223 108103337 6078 +3713 3640 108169499 16039 +5496 9931 108175236 8 +8117 1884 108568719 29721 +1575 454 108568719 29721 +9774 3781 108576359 18 +3140 604 108677438 24643 +2558 3194 108702042 2812 +12749 1967 108705310 979 +2150 2823 108757825 4 +6549 2041 108757829 19 +7517 497 108766494 12857 +2152 12554 108769145 6331 +8490 1450 108846359 17864 +7138 5956 108846359 17864 +7068 7147 108974480 6879 +3002 4211 109124096 23172 +72 1966 109214835 2 +10253 1822 109283686 5 +3039 9357 109283695 2801 +703 2031 109283824 1 +2659 9360 109303999 1889 +628 6193 109303999 1889 +6421 2635 109376934 25459 +897 5709 109417895 7046 +5023 698 109644655 10 +582 10081 109655612 3 +8582 4446 109655612 3 +6289 235 109655612 3 +1896 11544 109661723 2 +1936 4717 109661724 4 +5441 6683 109661726 6 +10731 510 109757317 6 +4315 897 109757317 6 +5480 6087 109790394 10817 +3531 5708 109790394 10817 +5400 3925 109794136 9 +4160 1318 109794136 9 +11572 2811 109833668 7623 +10175 607 109902092 22662 +11638 2008 109925051 7388 +8491 4171 109937014 1 +7021 8198 110032535 3392 +12820 1496 110033898 17 +9363 5350 110051906 3 +4568 6797 110052437 3 +3691 11768 110052439 16 +5949 4926 110052471 19 +2396 8834 110052476 7 +1407 8571 110052478 1399 +6889 6575 110169269 41095 +4379 8364 110238105 4 +2495 5044 110451370 43952 +2354 10509 110451370 43952 +7225 7479 110490127 6799 +2531 9496 110497961 19531 +10231 2908 110497961 19531 +7766 525 110501221 6038 +8584 5301 110510849 5 +5470 3492 110672956 26288 +1014 12465 110675261 5 +1781 1221 110675265 5 +7964 5322 110696636 18 +11973 2647 110839519 1 +11177 4428 110927057 7605 +5301 2899 111035903 10345 +4286 6819 111042058 5843 +1446 3346 111043040 5 +3518 4685 111112518 6 +8811 4145 111112520 3 +899 6257 111112521 5 +655 7175 111255393 3 +7685 5429 111255393 3 +3788 2264 111255394 3 +764 4158 111333134 26556 +600 3362 111335333 64 +4752 5355 111335388 17299 +3462 2928 111335388 17299 +11859 1117 111344434 13 +12475 590 111344435 23150 +6363 2320 111367642 17443 +10989 2069 111372584 3521 +2050 5155 111374700 8936 +242 13483 111382552 16073 +4466 10402 111383016 14004 +4525 10105 111744574 10 +950 6950 111941968 3 +248 10257 111941972 17560 +454 12357 111969821 1 +1327 7221 112114620 3 +11209 2056 112114620 3 +1783 12486 112114621 2938 +6171 1006 112116578 4 +5057 7534 112129804 12348 +5449 7196 112133724 4 +4369 6805 112133729 12 +2154 8826 112392919 31037 +6610 5353 112665609 17286 +13392 540 112865762 2 +7295 2007 112865762 2 +7712 5195 112865762 2 +1320 6079 112865762 2 +738 9734 112960162 1 +7654 2618 113168530 5 +7865 6410 113176825 14239 +10894 965 113279059 3 +2665 5988 113279059 3 +923 8681 113490300 2 +7959 6872 113814526 5612 +2573 1314 113814526 5612 +13965 731 113820846 3 +5498 5163 113820849 3838 +1114 3475 113937417 20235 +2363 9537 113937417 20235 +11942 545 113959800 13512 +6161 5970 113976114 2 +843 2296 113976115 19925 +10814 177 114037594 5 +3643 7380 114037594 5 +4792 9703 114037602 5 +55 4206 114041118 10 +1050 5466 114041134 4 +2564 6891 114086825 4 +8089 5516 114121072 2 +3145 3979 114305372 2962 +7873 5061 114416265 614 +3605 2147 114416265 614 +304 9506 114416340 5 +13904 1603 114416341 11 +720 2144 114416347 123 +9928 679 114446551 61 +3904 8658 114446551 61 +2864 1372 114469149 20653 +4159 8094 114509186 20127 +1706 799 114509201 4 +4921 6644 114509202 10 +2455 1699 114509204 7 +7601 5006 114509204 7 +2925 1015 114631076 16648 +1910 8150 114648386 28300 +4322 4237 114917871 12 +1829 9913 114917882 9701 +2136 11340 114929047 14 +7166 3992 114929050 5609 +2861 9525 115002897 17762 +433 4878 115034117 19794 +14315 337 115117967 13 +11739 2388 115117967 13 +656 7773 115117970 2 +8520 5916 115117970 2 +1613 1864 115117970 2 +6349 2926 115117971 20869 +3855 1739 115179154 5985 +4077 5076 115241353 2048 +6623 4906 115270248 13324 +1470 2049 115299695 5 +6167 8995 115299695 5 +11667 2311 115299698 4 +2955 4551 115299698 4 +1399 8691 115299698 4 +1860 7139 115299700 9760 +9447 4955 115350691 229 +1919 666 115350909 14986 +9965 2247 115373035 101 +3953 9601 115373041 5 +1959 4303 115373041 5 +11736 3122 115373043 5 +6513 3740 115373044 12698 +1676 4481 115374304 4781 +3612 10489 115378540 1 +9416 28 115378540 1 +4333 4126 115379582 6 +4477 7326 115379589 1 +10868 700 115406559 8378 +11746 3095 115406559 8378 +3323 10140 115411963 2 +2406 2897 115743114 6 +1976 6758 115811797 5 +4996 545 115811798 18575 +4907 7664 115830997 2 +4541 7889 115830997 2 +4450 7523 115830997 2 +400 529 115830997 2 +5151 9326 115844851 45700 +7896 6227 115844851 45700 +4992 4621 116080888 2 +2102 12539 116211054 3414 +2603 11996 116211306 34520 +58 12753 116212067 12084 +9362 1144 116286479 13826 +14 1878 116292106 19 +7773 2894 116292121 10555 +7860 3848 116299645 23678 +4375 722 116384976 24313 +6300 1080 116385239 2 +2966 4831 116391187 103 +2881 1029 116411699 15822 +9795 3327 116411699 15822 +4588 1057 116411699 15822 +12355 1133 116428466 7295 +9378 4134 116428466 7295 +1195 3690 116431264 5492 +10142 2047 116529577 1 +1804 9404 116529578 1 +7891 2598 116529578 1 +366 3793 116531053 6 +182 5873 116531053 6 +9481 2088 116531053 6 +9332 2064 116582471 13659 +8736 2089 116629763 11058 +11430 412 116650525 1 +11061 4189 116657898 29874 +2834 11364 116657898 29874 +1074 13794 116668341 8627 +224 5327 116906648 1 +4097 4537 116906648 1 +6334 3710 116906648 1 +3848 5733 116906648 1 +2243 13135 116990010 7 +339 4551 116990014 6340 +3072 1800 117075636 2 +5265 7969 117094625 19980 +3865 6288 117101220 2 +5817 9288 117208362 29376 +12067 2289 117208599 24150 +6534 4018 117216983 6961 +53 442 117256934 16 +4671 1483 117256943 15 +4231 4215 117256952 11 +4497 1969 117256954 16 +8971 2623 117256963 14 +8898 2747 117285641 2 +3711 340 117285642 2 +11193 2825 117285642 2 +2668 11451 117285642 2 +6303 3108 117408124 4 +5989 4825 117408125 13 +1424 12407 117591136 27732 +7137 3146 117591136 27732 +12261 210 117713018 4 +11196 2319 117713018 4 +5211 3023 117749912 19 +12850 335 117841427 5 +784 10740 117854125 2 +9569 3656 118156305 18460 +1438 10752 118269894 25894 +3024 7091 118489551 2 +453 760 118489551 2 +1701 1222 118509433 4 +114 14187 118509437 3 +7619 5175 118509440 1 +4051 4458 118509440 1 +7608 1190 118523777 1437 +183 8221 118524401 2743 +9306 864 118785877 5878 +10989 3024 118817180 14314 +1418 3087 118931456 19 +12685 1994 118981805 1712 +4227 5584 119020866 3167 +6902 7273 119020866 3167 +1593 4476 119020866 3167 +2560 12908 119196765 7034 +1814 9051 119202257 10809 +3200 11759 119428124 2 +6890 1547 119846991 3 +1248 1043 119846994 17 +13361 1117 119867669 13686 +6022 3444 119869768 1 +7923 3761 119952492 5 +3574 7646 119952496 5931 +302 5736 120188323 3 +11672 161 120188324 8314 +8968 3184 120196183 15 +9247 6098 120232405 2 +166 13158 120417557 3 +1669 6992 120417558 34388 +6380 6365 120686666 14146 +4162 1985 120693336 11 +12719 1579 120693351 2571 +9950 5597 120693351 2571 +4969 4561 120693351 2571 +2675 2380 120867353 12 +11019 1939 120867354 16868 +10218 4230 120918037 309 +4741 8119 120918153 17280 +4100 11145 121182014 21582 +4466 4934 121186259 3 +318 5360 121281978 13 +14718 183 121281987 21802 +2134 7536 121289840 9 +9611 812 121289840 9 +4409 10441 121289844 13672 +9694 3795 121299193 19607 +4696 10680 121305818 13 +164 8761 121305841 13 +2073 12336 121305843 3 +7336 6449 121365935 6 +10673 301 121365935 6 +1196 13434 121371169 12402 +3269 783 121373202 119 +285 7650 121373224 16622 +1079 11291 121381349 2 +5971 5857 121602152 2 +1642 12161 121812119 11878 +2644 4880 121893182 4366 +5374 7262 121907422 16 +6005 3311 122173209 23049 +3449 11911 122198217 18 +8377 3642 122198217 18 +9368 1041 122333814 1 +3097 448 122336150 3387 +9410 696 122336967 29622 +673 12716 122355663 25891 +1613 13251 122367507 2693 +10685 2302 122367507 2693 +8252 4882 122367552 2698 +10726 4749 122461579 11 +1352 9900 122613276 10537 +993 13244 122615833 4 +13953 1393 122615834 4 +11470 1854 122615834 4 +7421 131 122615834 4 +4595 3249 122615836 15429 +8218 2986 122660922 3 +1148 11176 122660924 10 +5528 3215 122741675 15 +6253 6612 122741689 3 +7657 7402 122822399 2 +6224 8952 122930839 13 +2306 1730 123077446 13188 +1696 12447 123082615 1 +5678 1644 123082616 5722 +6535 8747 123084942 3 +12926 463 123084944 6437 +4375 2084 123089649 9829 +2367 7846 123101033 5959 +1856 7707 123101033 5959 +950 1992 123305336 3183 +4033 227 123305747 2 +6797 4996 123305748 37583 +667 1309 123305748 37583 +7927 7604 123310781 5 +3496 860 123310787 4565 +6693 6709 123310787 4565 +8252 1194 123490472 20 +4520 2705 123490476 9 +7856 5969 123490485 7039 +9876 2988 123708482 7 +8508 5997 123764155 14124 +649 7509 123945345 8 +2110 2596 124036970 16704 +6410 5801 124042797 42089 +8109 3544 124087343 1652 +6033 2443 124087666 12521 +2108 3201 124176075 7163 +7013 7196 124177271 14933 +8112 4680 124372054 358 +1578 1029 124499249 24468 +13498 651 124504527 14423 +6790 6778 124525729 17717 +3309 10364 124526394 21073 +986 9904 124777545 18 +1271 11981 124912974 22146 +14902 488 124912974 22146 +12270 252 124955122 3 +2429 5314 124955953 15740 +7681 6014 124957740 1 +4865 1925 124957740 1 +8722 4797 124957740 1 +8321 236 124957740 1 +995 613 124961449 2 +3364 182 124978171 16109 +4314 9250 125004251 3 +236 2277 125254030 4 +8032 907 125269132 19 +4533 7082 125269137 7781 +1100 695 125439547 13179 +2003 12928 125458798 18 +8577 373 125463327 13 +3293 11526 125475804 5 +818 13168 125547014 13194 +3619 968 125555388 12122 +2241 7085 125577107 3238 +7923 4470 125577782 4 +7593 4983 125577787 2 +5425 7268 125577787 2 +339 13859 125703102 27818 +7314 1694 125703102 27818 +2360 11714 125763335 2845 +3968 869 125765843 4379 +4142 8385 125783763 22282 +2701 10677 125979281 13653 +9747 5837 126357114 3 +5882 7826 126575019 475 +4610 6319 126589298 14 +257 12237 126678870 3 +6808 1031 126678871 22516 +10395 3145 126704654 2458 +2174 6607 126705478 4 +5931 3765 126904577 86 +231 6169 126904598 22007 +1834 3588 126905527 16 +2089 2865 126905530 2 +7559 1129 126905531 32724 +4071 5982 126944961 5 +3711 2666 126944964 4 +9607 5828 126971934 3 +6537 4582 126971935 2 +589 8986 126971935 2 +2011 338 126971935 2 +10227 4070 126971935 2 +8191 1845 126971935 2 +3711 1845 126971935 2 +6309 1845 126971935 2 +5185 6877 126997515 21863 +1216 10067 127041952 4 +4210 4106 127358127 6046 +112 5627 127358127 6046 +773 6774 127360854 60 +1629 6570 127360971 31852 +4394 6019 127538552 20031 +1139 4506 127717744 3 +3517 9469 127762003 7216 +4164 6606 127762253 19108 +9708 5455 127786908 16 +49 13106 127978251 10607 +9640 3086 127982110 3 +8979 5448 128053500 8 +7945 4384 128062345 9944 +1781 9978 128066929 21963 +2776 2768 128406888 2 +7916 4110 128406888 2 +1189 8675 128406888 2 +7060 2775 128406890 4649 +11256 898 128409019 24 +4479 8804 128439285 19 +1704 6544 128439301 37903 +11433 1799 128505957 13 +8779 1635 128505957 13 +1919 11355 128505957 13 +11917 3128 128505957 13 +5960 7077 128552569 3 +9269 4048 128762209 439 +12523 2821 128762418 5 +5036 6048 128826907 9380 +5242 7091 128827976 9271 +10528 3427 128831602 34793 +1497 3452 128869080 4 +14080 257 128949006 3 +403 10579 128950911 3 +7847 1182 128950911 3 +6827 4974 128950911 3 +2581 5074 129020064 2175 +6278 326 129020064 2175 +61 2051 129020518 6129 +1247 3577 129062321 5 +8252 4907 129062321 5 +2210 2473 129112356 8342 +261 6415 129158845 12193 +9779 2046 129159855 4960 +4206 6113 129159939 1 +6013 1656 129159940 2 +2084 11553 129163437 4 +852 4000 129163437 4 +567 2768 129163437 4 +5712 6729 129254584 9774 +87 7498 129256829 4 +407 13356 129411192 2 +9094 3076 129411193 4 +399 12477 129411193 4 +3977 10026 129584278 12681 +4066 3428 129844333 11 +2590 8578 129872824 3 +10387 3351 130150928 9898 +11193 2959 130186949 25642 +844 3913 130289421 350 +514 8786 130289421 350 +2069 4164 130539231 1 +4596 3366 130609187 13301 +4693 8523 130609187 13301 +1856 10873 130612898 29933 +10440 38 130659919 1159 +1631 537 130660097 6 +6422 2214 130660099 465 +9687 1488 130732107 6901 +4239 7651 130734230 4 +9304 3007 130734231 15395 +1179 1468 130734231 15395 +3144 10218 130741694 3200 +3011 4591 130977053 4 +5757 6330 131119153 6 +7898 2549 131230736 18891 +9043 5748 131230736 18891 +8736 2110 131411057 9 +3880 4199 131411069 70 +3488 5912 131411069 70 +8654 3124 131411070 1222 +7055 3176 131483189 4500 +775 5550 131542034 18 +610 9038 131542034 18 +3960 1123 131601360 16 +3549 3235 131604542 6 +2717 2020 131721185 8678 +2759 10669 131722068 3 +5403 8839 131858348 1 +9367 4289 131858348 1 +10484 3299 131941188 4820 +6702 8597 132022903 3736 +1384 569 132062000 3 +3129 587 132075104 21615 +5504 5826 132082607 3 +7140 5594 132082607 3 +12125 1622 132211570 5003 +2290 11534 132214086 6988 +4908 7032 132216290 2 +416 8521 132216290 2 +1685 2250 132216291 4 +7833 7616 132285973 6081 +5421 7773 132363688 102 +12747 2275 132363756 3 +8607 3967 132412707 2 +6758 5033 132414488 45 +5579 856 132615694 17 +6574 3834 132638687 4 +378 5802 132692172 28280 +12618 1554 132692172 28280 +7416 6974 132706403 19 +100 1879 132706405 16 +3698 9469 132706408 14 +5903 2518 132924324 44 +9503 1758 132924324 44 +816 14653 132950846 3 +4432 1320 133208907 9382 +1553 658 133216363 5 +594 10522 133216365 1932 +7550 1190 133543257 1 +756 4774 133570732 5996 +245 10205 133573440 14 +558 2573 133573449 23956 +7928 1863 133577249 4 +2050 11245 133577249 4 +10623 1661 133577250 2 +34 1957 133593247 1495 +4370 3406 133606457 16 +4182 2033 133691559 5 +4411 10569 133751634 5 +372 4984 133751634 5 +2701 945 133751634 5 +2391 3547 133751635 17 +7514 1130 133751635 17 +3276 568 133766306 18485 +10104 2987 133766306 18485 +10578 1588 133859466 1718 +115 4953 133873744 18541 +5977 5319 133877379 30522 +5460 180 133955353 6545 +9518 5449 133959471 190 +1575 7382 133979652 4 +4103 6427 133979655 22255 +5629 7866 133988469 8370 +2712 5971 133991010 15960 +1516 12148 134025237 13 +7184 8421 134337502 92 +1157 5160 134668104 6 +6419 7163 134668107 2 +11042 910 134776707 5 +4134 2337 134800930 102 +10726 2349 134828346 1335 +1465 4522 134828558 20526 +6501 5992 134828558 20526 +1821 10500 135001893 198 +2635 6329 135083936 5300 +6451 5803 135084253 1 +171 7780 135084254 86 +487 8190 135084313 2 +2507 7363 135084313 2 +2896 189 135084313 2 +120 14692 135084314 10228 +11747 861 135084314 10228 +9760 874 135118289 4 +8762 866 135123257 3362 +33 13827 135147054 9904 +2012 6476 135149794 9324 +8387 1679 135302924 11 +948 5796 135302925 54 +3242 742 135302949 18871 +1041 14349 135309924 2 +1346 12744 135309926 17 +4713 6241 135569674 630 +1014 12103 135569845 5 +863 8467 135569847 9 +4271 7086 135569847 9 +2347 12447 135840826 197 +2485 6119 135840924 1 +2869 11400 135840925 4791 +3277 3774 135841209 12794 +407 8385 135841209 12794 +11701 3152 135841209 12794 +7545 4424 135849709 13889 +1054 12776 135870864 11066 +3248 5213 135873860 5 +3209 7917 135873862 3 +8690 424 135873864 15 +7502 3066 135873866 4 +3569 10986 135873868 8850 +7547 4027 136030406 2633 +11971 13 136108829 1024 +1441 11615 136109815 3 +6577 2032 136496272 16 +12617 2728 136496272 16 +3123 4068 136515498 4 +11556 3831 136515502 18680 +2052 11616 136538013 3 +11252 3202 136538013 3 +12940 855 136544503 2853 +3394 4425 136544503 2853 +7134 6754 136546861 13 +5288 6949 136646993 5 +8092 7301 136821546 77 +7490 2979 136821582 6675 +1234 5231 136878146 2 +10715 116 136933965 12227 +1908 11719 136944675 6124 +4567 6799 136946023 5 +7795 6734 136946025 2931 +4061 3585 137199124 4337 +753 6759 137199124 4337 +3239 11525 137458335 1 +985 5563 137902865 1 +13504 1637 138081247 17 +9602 733 138081267 3 +1993 2389 138103302 3 +5934 1753 138103303 3 +4139 5015 138154886 10636 +7034 2201 138157041 23481 +2584 1227 138190584 17 +2303 2488 138231478 10316 +1032 928 138315570 4 +3436 3235 138315571 6189 +3160 1657 138315786 4004 +7615 825 138328083 15 +1009 13724 138328088 2 +12758 1829 138328088 2 +8951 5167 138334600 4 +4155 2813 138390240 1985 +91 7609 138407878 15251 +10007 4692 138414639 6 +5804 4841 138414640 3 +9063 4202 138569354 27205 +228 4987 138600718 4 +2539 290 138600721 12 +12391 934 138600727 13629 +1469 13169 138604256 17 +6710 3711 138745867 3 +8044 2859 138852145 12755 +12169 254 138859685 11332 +3519 12006 138863983 29717 +6077 3547 138863983 29717 +318 2900 138875224 17520 +7101 7676 138884488 12 +806 1282 138884488 12 +10132 3820 138893630 10143 +2484 1 138893630 10143 +4914 10204 138902946 11 +7946 3874 139295595 10 +6524 9026 139295595 10 +6525 6731 139295603 10591 +6053 4696 139305373 1959 +7969 5873 139305373 1959 +2289 6468 139482581 24166 +10145 468 139483161 3455 +9010 5747 139486935 20295 +1160 5025 139600289 14 +11015 2326 139753029 2 +521 13227 139753029 2 +5385 7189 139753030 3 +3144 11320 139753033 4 +9059 3507 139753033 4 +11423 2948 139781906 16 +8279 1415 139781917 8 +2594 4865 139781931 105 +744 3292 139817452 7859 +2793 1193 139818714 2071 +1897 2797 139847620 7300 +5195 4949 139927681 55 +9518 5551 139927708 12 +1056 8902 139927709 30 +7433 5928 140259872 11 +3477 10767 140280608 8 +2349 4480 140280609 12936 +9985 941 140282529 2 +2331 11998 140282530 10672 +6483 3021 140467262 13 +677 975 140467265 6231 +3327 11992 140504605 24964 +685 13575 140507921 16 +970 3865 140634021 4 +5459 8002 140634021 4 +2156 195 140634021 4 +5053 4556 140634024 5 +4355 1129 140634024 5 +8773 3558 140634032 1 +1350 6029 140666590 11039 +483 10256 140677081 17 +1612 11943 140984335 17728 +12517 2111 140990807 13962 +556 4614 140993461 348 +430 14745 141093995 15169 +569 10905 141250368 2 +10661 2625 141334020 3 +4669 4850 141414408 10 +2117 5691 141414408 10 +6212 3680 141414408 10 +9286 935 141414408 10 +2389 5147 141421575 2161 +2615 7192 141423020 18967 +3974 11498 141509699 2 +1710 4055 141509699 2 +1586 12742 141509700 16 +6837 6218 141509707 4 +2674 10114 141661189 67 +8992 2021 141661210 3893 +4264 486 141663153 3 +1190 13451 141678187 12208 +6163 2718 141678311 1 +3638 10078 141680482 4 +1897 9414 141680483 8864 +7637 6949 141684114 8975 +4658 3234 141689148 10883 +560 316 141693268 10532 +8086 3089 141704849 35733 +156 9002 141706323 14 +2523 1103 141768230 89 +2194 3189 141768230 89 +1905 10488 141820377 3 +9734 3753 141820377 3 +5505 3971 141820377 3 +2642 6535 141820378 20014 +13936 655 141919621 105 +13181 548 141930520 12 +4046 3242 141930527 14 +5795 4375 141930531 18 +6943 8324 141930542 6 +6766 5802 141930547 35553 +7011 4620 142061903 18452 +2687 7310 142072345 24352 +5943 3466 142133499 3 +4183 933 142133500 2 +237 14411 142133501 2064 +7240 7272 142691831 5 +10465 3637 142854242 4 +448 11916 142854242 4 +1866 4003 142854243 3 +2705 18 142992223 1072 +5572 5933 142992808 4 +1109 9620 142992808 4 +7078 380 142992809 8 +6401 2125 142992809 8 +3455 6555 142992810 19 +12111 14 142992817 69 +5189 4851 142992827 6886 +4511 5407 143076780 3 +1156 13946 143076782 4 +4133 6297 143076786 3 +9319 1764 143076789 12957 +3890 3436 143112094 23508 +3884 9881 143230498 110 +3304 4077 143230575 2 +14234 484 143230575 2 +13553 852 143230575 2 +9874 2235 143260928 14006 +10876 2167 143260928 14006 +62 11969 143270942 3 +2383 2611 143293628 6673 +4362 7952 143294279 5704 +8146 3631 143419035 14770 +7116 2877 143419035 14770 +4555 6563 143434370 9 +5973 5305 143566416 6 +9781 4240 143566416 6 +2166 6604 143616785 3 +4960 7653 143616787 24592 +3798 3328 143708052 17003 +11555 391 143708052 17003 +13704 423 143708052 17003 +7464 4164 143724983 19 +6522 5028 143769808 18259 +4860 697 143769808 18259 +12078 499 143793321 3 +874 10420 143812975 21125 +3154 1647 143813700 3 +974 88 143848535 2335 +3049 2276 143849032 3 +4775 4250 143849032 3 +1777 10977 143924246 3 +8634 4472 144340170 15545 +7133 8021 144514482 4 +2090 786 144514482 4 +7645 3153 144524742 4651 +7650 376 144526463 8254 +735 10357 144535407 2 +6270 6583 144535408 4 +1501 3559 144535408 4 +9150 540 144626404 17 +10441 774 144626406 2121 +7012 2415 144640381 3800 +15086 520 144645520 7675 +5318 8980 144650229 4390 +666 11151 144653843 8196 +11469 848 144653843 8196 +5039 7856 144654357 6 +1711 10699 144654362 13599 +4391 551 144664411 14 +11868 1470 144674074 6 +7296 3103 144674074 6 +991 10980 144674074 6 +7623 7713 144674075 7 +8932 2548 144903079 18 +2236 5648 144969924 21652 +3271 9873 145068081 8642 +14214 270 145068081 8642 +8663 6646 145077519 18 +9620 4069 145077520 19 +3841 449 145165835 19 +2798 5677 145165836 20834 +7204 2572 145168877 4 +13665 1573 145244939 687 +11595 3632 145244939 687 +4257 3021 145264502 7 +12424 618 145322472 9500 +1728 4882 145336811 72 +1947 12242 145511151 72 +1103 9779 145511196 7 +2146 3124 145511201 793 +9613 4477 145511736 20 +5611 3304 145511736 20 +2654 6106 145511741 11540 +3675 264 145728420 7 +9136 3094 145728423 35 +4916 5851 145744425 16 +5365 6193 145744425 16 +5111 10497 145744442 10 +3858 11648 145744444 1 +2618 6415 145744445 8391 +8210 4386 145747377 13 +3958 6073 145747384 20027 +6568 427 145771087 4370 +2609 6258 145771087 4370 +5892 2669 145771087 4370 +4064 3176 145772132 6905 +11595 1814 145881004 4 +8398 5841 145915862 8 +8927 4406 145915863 13 +876 2101 145928902 1 +6868 8399 145928902 1 +10634 1746 145928903 15 +11922 3654 145928905 15975 +253 4980 145931011 8558 +8317 5888 145994142 2065 +5780 3131 145994142 2065 +5292 4078 145994981 7 +24 7095 146070931 3456 +2749 11759 146295908 9934 +4147 9389 146300889 19 +2927 2746 146300901 834 +1834 8895 146375641 21682 +3125 255 146401423 30142 +5106 7018 146414051 2116 +147 5145 146415238 3366 +5322 2896 146416718 3778 +4986 207 146418867 23842 +7461 4577 146418867 23842 +7261 3713 146432581 3 +3824 6186 146432583 5 +1627 760 146432588 4 +2883 8527 146432588 4 +6144 6417 146656291 3 +2170 13044 146656298 23996 +11128 1808 146673123 18924 +1112 9221 146742908 4 +292 6332 146742908 4 +1290 11481 146742909 4 +3956 7403 146915596 1018 +183 13007 147183586 10433 +94 2546 147183586 10433 +2385 2457 147183586 10433 +2962 7188 147232860 4 +4131 7025 147232862 1607 +1001 1209 147337200 5 +8226 3565 147353077 2 +10523 3645 147460448 6465 +8882 3264 147469703 15 +6873 5286 147579868 6621 +396 10177 147600179 18 +3159 11001 147600190 3 +10054 4552 147600190 3 +4956 4106 147600190 3 +4786 291 147600190 3 +4935 2887 147610320 2 +7048 4809 147610320 2 +7256 4873 147741195 5 +3054 8603 147895753 3 +12574 586 147895753 3 +5380 6364 147895753 3 +1675 6277 147895753 3 +8159 742 147895754 14 +2030 898 147895757 6228 +4624 7363 147902366 4 +1360 5262 147990298 1 +46 4011 147990298 1 +749 180 147990299 5 +12350 1427 147990299 5 +2253 10202 148039683 19 +4764 779 148039687 19 +7148 2480 148039698 16 +3279 1203 148039716 15 +3765 8714 148050366 16561 +276 4710 148054795 3 +5326 2731 148058364 683 +8994 3134 148115292 4 +10617 10 148115292 4 +5709 3503 148115374 376 +10738 3149 148115496 2330 +5725 3088 148115496 2330 +5452 229 148116252 2 +4958 6171 148116253 4 +1765 6466 148310571 27546 +14859 359 148398519 2 +6516 3128 148398519 2 +712 7321 148398522 2 +3259 10864 148398523 248 +692 673 148398569 13 +3053 6846 148398569 13 +248 14448 148398577 9 +9268 5514 148794937 14 +11941 1118 148990889 6859 +9692 1928 148995392 13316 +750 7493 148999332 4 +3514 4557 149112917 19592 +9273 1493 149112917 19592 +11194 3343 149115530 19047 +1907 6382 149119676 5 +1001 769 149341206 2 +201 6206 149341207 7609 +649 3312 149351938 46 +2793 12642 149428872 2 +51 1623 149428872 2 +12330 436 149428872 2 +7614 2634 149428874 24245 +10236 4037 149459643 5249 +7152 417 149459643 5249 +6782 3610 149460728 148 +6260 6496 149594773 9672 +1565 9057 149594773 9672 +54 6842 149664490 23967 +3152 1109 149675506 26264 +1963 5911 149709246 13 +1704 5614 149709249 2 +5751 3877 149709249 2 +7570 7993 149827717 4 +5557 7798 150009610 2 +9770 2089 150009611 11001 +7809 6748 150026738 5313 +6006 921 150027354 3 +8170 1683 150055645 2 +7763 2034 150055645 2 +3532 2507 150055645 2 +8004 7262 150100450 7218 +4977 461 150353229 2820 +2182 8640 150365636 8 +2664 7744 150402882 7806 +968 5304 150691176 13298 +5340 6312 150699201 2 +2262 3470 150699202 4 +4065 5842 150777071 278 +2365 1307 150777265 14 +7824 4963 150777266 8345 +2927 510 150779946 4 +1914 9679 150788073 3 +3407 9876 151010282 9972 +4038 1471 151271675 4 +13594 1368 151271677 4 +11261 2230 151271677 4 +6228 7737 151360218 23366 +5938 8008 151409636 22523 +11792 111 151632263 13275 +5080 1913 151638218 25134 +11711 2388 151669486 3033 +4321 8463 151759312 13 +2067 878 151759312 13 +2300 10715 151759315 2 +8981 630 152056994 19823 +2206 4764 152077493 3 +6398 6495 152250756 14014 +10220 1710 152250756 14014 +2912 2116 152250914 2 +6055 8569 152250914 2 +5009 4083 152250914 2 +9675 5569 152375138 3 +4070 9503 152375140 20139 +4997 63 152598149 10 +8818 6291 152598161 20 +1032 13463 152598166 25158 +5101 2090 152598166 25158 +8306 6148 152671384 439 +4076 1163 152671725 34706 +11574 2623 152671935 29513 +7301 8238 152744521 2 +3934 9028 152744524 12 +10797 3120 152744528 91 +4216 6860 152863500 18 +2421 3469 152863502 76 +8476 4881 152863552 23143 +4012 2642 152863552 23143 +2936 5522 152878506 7261 +10676 3013 152881749 27609 +5741 5609 152997033 5 +14253 731 152997033 5 +11734 72 152997034 1774 +8246 3515 152998971 1421 +7494 925 153128884 4 +4116 1342 153128885 4874 +4469 1528 153131833 1 +1844 7661 153171674 13670 +2299 1651 153171674 13670 +5386 2717 153173944 64 +2660 4610 153173948 11703 +1376 7092 153179378 20 +1187 5472 153204308 19 +5059 5902 153204308 19 +12054 1550 153204315 2 +3434 6484 153204316 3 +12805 156 153204317 2 +12376 1889 153208276 3 +1819 2663 153208276 3 +540 4102 153208279 19 +13375 120 153208285 10 +8934 2844 153209175 11145 +4028 3732 153276427 9 +12331 883 153276427 9 +12813 2618 153278710 28492 +12819 667 153372416 32319 +9880 2531 153374725 19704 +2511 3562 153419596 4618 +12274 1229 153421528 6410 +3701 11353 153421589 1947 +39 11347 153838815 221 +11180 3504 153839058 329 +2888 6936 153839172 162 +2224 12288 153925610 3 +3403 9414 153925613 6698 +1506 5474 153927488 2571 +5693 6857 153929920 12 +3018 7702 154170798 11 +7784 6470 154460357 14133 +4164 10188 154514898 8660 +9662 5694 154627341 4 +4321 3731 154627342 2 +6337 4145 154627342 2 +13802 1369 154627342 2 +4541 769 154627344 22764 +13130 91 154654771 8807 +5118 1963 154659591 5 +4610 2994 154722684 2 +7800 2118 154722687 3 +2225 5885 154722689 3 +382 10389 154722692 12762 +1953 12629 155068370 3 +1597 1676 155068373 3 +988 11327 155068373 3 +6788 8588 155068374 751 +491 6965 155068374 751 +643 11386 155069120 19 +5295 9775 155424501 13 +10089 361 155424505 23930 +133 11261 155446157 2 +3894 794 155708480 1486 +1390 6575 155709046 2 +8981 1419 155862478 5983 +4602 5947 155890788 15 +10094 5165 156012025 8029 +746 4438 156209310 3450 +7037 6526 156209794 31587 +9128 1214 156284993 8 +12646 141 156284996 5 +8478 1882 156284997 1 +96 786 156284997 1 +9813 5625 156284998 4 +11949 3157 156328218 1701 +1439 1450 156366943 3 +9975 5303 156366943 3 +1347 2633 156376074 1 +2908 9377 156376074 1 +389 4615 156376074 1 +4860 401 156376075 11 +1779 10079 156376077 39175 +11537 2701 156376822 10696 +11073 1630 156437354 5 +1487 866 156479519 10 +5421 4207 156479519 10 +8829 4933 156496870 4 +7504 7978 156496871 6265 +1440 8712 156497930 1 +578 12380 156497931 5 +3216 2492 156497933 13 +1419 13085 156552044 8 +6989 6055 156552048 2 +687 10691 156552050 5 +10293 4477 156967413 14453 +4585 5933 156967413 14453 +1589 6673 157122868 3670 +6163 9205 157123420 14364 +4858 6140 157125867 1 +1594 1960 157125867 1 +9476 263 157182146 20189 +10452 2070 157201162 3 +7948 3318 157201162 3 +3892 733 157201162 3 +118 10101 157201162 3 +1719 418 157374596 2086 +12121 1694 157374929 9223 +1145 10670 157374929 9223 +1465 3189 157374929 9223 +478 1752 157380984 9 +5094 5126 157380984 9 +3217 11677 157426256 3 +4135 6689 157798763 5421 +11000 3152 157801954 4 +4300 1616 157801956 3374 +7307 5047 157835632 5 +3677 6511 157835633 2 +1738 2428 157835633 2 +10263 1484 157835633 2 +718 14537 157850719 1 +3667 1365 157930021 2 +637 12508 157930022 6 +471 10364 157930023 10998 +13080 521 158313999 3 +8390 6230 158318808 676 +589 10612 158319636 5548 +5107 68 158321728 3758 +6564 7576 158324874 10027 +185 9760 158602003 13 +9647 5616 158602003 13 +3480 3561 158666493 5 +366 715 158666493 5 +12278 1940 158671683 29025 +1589 7365 158744957 3 +12043 1825 158744959 3 +10682 4267 158771689 4 +866 12613 158771692 2 +1301 13353 158771693 8675 +1860 86 158771693 8675 +4007 386 158777006 1 +6474 5261 158777006 1 +11459 1804 158779202 15122 +3226 6887 158808976 2 +8021 2208 158838394 2 +590 11962 158838394 2 +511 6496 158925048 5 +2402 9695 159018043 23113 +1271 12412 159031379 35443 +5468 2221 159039172 10 +13188 1990 159039172 10 +1653 3629 159039180 12 +1179 2722 159039182 5 +5190 9095 159100549 7728 +2836 4444 159317637 2 +8179 409 159317638 5 +117 4467 159317639 10330 +11608 2746 159354184 7 +4598 530 159432654 5 +8019 6138 159447407 17634 +5560 8739 159450888 18 +3570 6478 159450888 18 +2776 10347 159450895 3 +7184 3480 159450895 3 +4214 6956 159450896 30475 +8563 4032 159468872 10172 +5987 734 159493900 2 +5872 3422 159493901 4 +3249 9056 159519282 22 +5721 9405 159701615 9 +7659 1509 159701615 9 +14510 219 159710385 17 +1856 8829 159710385 17 +6740 4674 159710400 4 +3646 2183 159863509 2 +315 3355 159863511 1 +7570 4939 159865620 32 +4533 1776 159865620 32 +3419 4739 159865651 7869 +1231 6024 159870505 14905 +5291 1555 159991583 3 +1111 10394 160019668 56 +1303 11157 160342978 14680 +724 12912 160625178 2616 +1964 6871 160960160 18 +1567 65 160960160 18 +4082 5325 160960161 535 +8076 1172 160960790 2 +94 13784 161000701 5 +5395 1769 161000701 5 +1797 7287 161043920 18 +10101 168 161043920 18 +726 8291 161046036 12024 +0 10829 161049010 13 +5983 2823 161049019 10327 +6887 6382 161131370 12148 +3674 3830 161328927 2 +8510 5654 161328928 7068 +1421 3398 161551464 11228 +6552 1342 161551464 11228 +4024 7607 161551871 18287 +3355 11027 161561204 12387 +5376 5271 161874553 4 +5582 7520 161874553 4 +184 4558 161874557 27565 +10390 2452 161916303 13585 +10087 95 161917209 3638 +4740 4394 161920919 15 +9690 3173 161920928 3 +8138 3889 161923466 5 +381 10890 161923466 5 +4905 3907 161923466 5 +11201 2286 161923468 3 +12675 662 161923468 3 +9896 36 161940432 2534 +4451 4626 161941328 1 +175 10927 161941328 1 +1011 11140 161992458 5322 +604 2333 162001217 8 +940 4653 162012815 4 +965 10900 162012815 4 +3480 7831 162012822 18 +13908 1464 162110516 11 +2018 12386 162110530 11 +3737 6808 162331361 4 +3900 6951 162331362 9 +7503 5135 162331371 12 +2524 8943 162331374 4 +1014 844 162565449 4152 +3139 10091 162568871 39152 +1279 1534 162859252 83 +2729 119 162859275 3212 +2256 9074 162863274 3 +3554 6479 162863274 3 +7973 6318 163110644 3 +24 4566 163110644 3 +11594 1986 163110648 20 +793 8720 163110654 12307 +9100 4557 163131465 5684 +9531 1655 163131761 10391 +13670 878 163134888 11785 +179 1128 163143417 1 +9029 6036 163165677 2 +8625 6628 163165677 2 +1307 2065 163165677 2 +1858 1212 163242118 2044 +7072 647 163267507 8 +12845 246 163276624 4 +754 7216 163285243 20338 +8992 5267 163534865 4 +9019 3665 163737650 7154 +5869 8576 163737650 7154 +4036 2371 163737824 3117 +3589 5206 163741476 8 +4663 4591 163741478 34212 +7463 2721 163887451 18 +7451 1119 163921673 32116 +899 13152 163921673 32116 +13305 1863 164219794 15 +9232 2887 164219798 75 +63 90 164317937 4563 +4643 8931 164322066 8 +13403 485 164330849 2540 +595 3713 164332402 10418 +7132 5571 164335604 7 +1741 13029 164335607 4 +4744 6449 164766079 15059 +2255 9104 164766079 15059 +11702 3839 164787053 14514 +8785 1608 164803506 1 +418 8877 164803506 1 +5440 5578 164803506 1 +2949 4953 164803506 1 +6035 1639 164803507 9328 +32 5749 164834843 2 +9668 3652 164834843 2 +5990 7989 164834844 29 +6832 4235 164848830 1 +7145 7826 164848830 1 +2207 401 164848831 10 +9932 3469 164859626 15 +8355 4448 164891980 3 +11483 2651 165008043 5 +1653 7675 165008043 5 +6137 2145 165096241 17597 +11599 1494 165144938 6 +39 6813 165144941 6 +3695 8039 165144941 6 +5799 9595 165293356 5512 +4846 4456 165293356 5512 +836 6951 165361521 3 +2030 8367 165361523 7644 +10875 3800 165361523 7644 +2748 11826 165504993 5 +9209 432 165923639 1 +6864 4747 165923639 1 +2569 6382 166001357 16009 +669 200 166239017 19570 +3153 651 166239017 19570 +573 3343 166239017 19570 +7402 2609 166309886 1616 +625 12394 166386706 4 +8585 6731 166639171 2 +1253 5637 166639172 5 +5710 1469 166639175 11 +7656 2942 166642523 2 +3614 4188 166642524 4 +755 3578 166642524 4 +5163 10216 166760024 1 +14340 1088 167151669 14220 +4890 3197 167169175 8 +8266 80 167169175 8 +9972 1326 167170068 55 +3308 2490 167175683 18697 +147 10650 167186754 1 +5303 4903 167186754 1 +1217 253 167186754 1 +5142 1822 167186755 2 +591 5591 167193699 3 +312 3298 167193699 3 +4474 2562 167193701 20098 +1113 6118 167223264 1 +4557 2149 167418367 2 +4544 3376 167418367 2 +4180 590 167489953 4520 +4418 8103 167490770 2851 +3744 7450 167490770 2851 +10956 4575 167490785 17372 +4462 7776 167660469 2 +13014 914 167736055 3671 +126 1203 167771094 5 +10421 3426 167771098 2 +1192 12723 167850375 20206 +3097 11012 168138861 11387 +5878 4295 168334606 1502 +5979 9213 168450302 27147 +2398 13155 168467982 13 +4481 889 168467988 10230 +2738 9094 168469098 3 +7731 2157 168469100 15675 +7979 4480 168469100 15675 +8362 5865 168537384 15 +6267 628 168753986 27279 +7808 5878 168779644 2948 +12081 2083 168779644 2948 +10006 4994 168779763 7 +1012 2121 168779764 14 +3886 9328 168794047 4 +6013 9401 169003993 2 +5309 929 169042401 5 +2031 13098 169042404 23097 +5296 2404 169408727 6674 +7232 2523 169408727 6674 +8878 1461 169408727 6674 +1328 1440 169422941 11618 +1963 7872 169473108 5028 +2951 10768 169489541 2 +9031 1795 169489542 2 +542 1911 169489543 3 +9764 4583 169489544 2 +3578 2477 169489546 1465 +3426 5902 169489546 1465 +12341 1735 169690489 1 +8573 2082 169690489 1 +1952 11765 169743215 5 +1154 13081 169743216 26146 +4290 2472 169743216 26146 +1897 1660 169818489 10980 +1658 7240 169818489 10980 +1877 9650 169828706 14555 +3754 4298 169839880 4 +8284 1325 169914599 11315 +7035 5651 169914607 7241 +11815 1792 169915573 12653 +4235 5941 169915573 12653 +13044 1026 169918317 4994 +4067 5426 169919633 39024 +5604 3606 169926162 18 +5563 3975 170062642 4 +4947 1088 170062642 4 +10911 2238 170062642 4 +4572 310 170062642 4 +12552 1225 170066953 6474 +1500 10460 170074048 1 +820 2480 170074049 4 +7469 3105 170145148 19830 +5223 2945 170147242 10510 +8203 1633 170264561 5617 +3218 1748 170266323 5 +1776 935 170266323 5 +5533 9062 170266331 7835 +10911 218 170368278 9993 +4678 13 170370466 5 +2642 7339 170370474 34066 +3153 4072 170374949 2 +3524 2371 170374949 2 +1424 13638 170374953 3 +1717 1915 170374953 3 +85 661 170387923 166 +7272 7162 170388059 2 +584 4163 170388062 4 +13695 25 170390658 1642 +5268 7887 170392264 6005 +8053 7395 170626636 3 +8754 1447 170765120 4 +1132 5705 170765121 11 +12364 2204 170765133 25473 +11138 1112 170772853 4 +5984 4610 170772853 4 +6638 5446 170848634 5 +10116 658 170848634 5 +4227 3191 170848636 4 +2185 3606 170848637 2 +489 3000 170922945 19 +7163 2398 170922953 3 +1737 13042 170922958 13657 +5006 7068 170924038 91 +1365 14163 170989227 17861 +8796 6658 171034897 70 +8133 5339 171034938 28647 +8566 3306 171063841 10 +6735 1220 171066151 10 +5744 7042 171087695 4837 +2624 12060 171364657 10 +1676 4140 171816896 3 +3414 37 171881621 4 +3089 5026 171881622 159 +52 13678 171903833 4 +4117 9383 171903837 13 +499 2879 171903852 3 +8175 4722 171903854 14 +6306 3391 171928747 19759 +6754 6100 172000740 19 +6914 4950 172000754 14664 +6995 5616 172007294 4 +291 807 172059734 2604 +3796 7223 172086201 12 +4908 2359 172086204 8 +12842 926 172159894 3 +9122 3784 172187208 2 +6458 4291 172187208 2 +1705 13582 172187210 35821 +1810 2308 172256875 17 +1299 2758 172256881 1525 +6307 6898 172344439 4 +856 14286 172438333 3 +7859 1267 172438333 3 +3676 2559 172438335 5902 +15191 76 172438335 5902 +5858 4536 172441534 18 +10868 3872 172441551 8 +9298 944 172441551 8 +12551 2945 172441555 3 +3529 601 172441555 3 +5142 9344 172441555 3 +7344 3233 172441556 11 +7979 7362 172441574 43343 +4115 11330 172689190 4 +1900 9847 172689192 2 +4526 8757 172906809 12320 +842 5674 172910622 22817 +1697 9879 172910622 22817 +8440 4609 172910622 22817 +6435 4203 172920250 5 +13144 146 172920250 5 +9812 522 172921957 14372 +906 10531 172921957 14372 +4794 4290 172921957 14372 +3428 7700 172924134 4 +27 9139 172924135 13090 +2716 8483 172927489 74 +6010 5534 173068204 2 +6715 467 173068204 2 +9223 3830 173068209 16 +12479 504 173068209 16 +3333 9840 173082045 6670 +2459 3065 173087490 5 +8767 267 173109951 11889 +11537 43 173121593 9 +7892 7613 173122822 24098 +3918 1409 173138899 25170 +6286 2780 173165965 4 +5963 6132 173165966 24134 +9900 3041 173165966 24134 +8326 2906 173264482 2 +5927 4394 173264483 8761 +4277 4305 173402549 2449 +8309 5174 173540330 13499 +8169 1406 173543754 96 +4271 2377 173543754 96 +4849 44 173544855 4 +9269 907 173546168 5 +1308 2240 173546169 2 +6794 4966 173631719 15 +5078 8055 173631719 15 +10119 1236 173631723 3 +6871 497 173631723 3 +808 6276 173631725 2 +2855 10743 173684495 4 +4675 4978 173876084 4 +3660 7441 173876085 9 +1609 12964 173876088 9 +2635 2589 173876088 9 +6639 7062 173876091 7385 +2252 8240 173876954 3712 +2002 12862 173878926 2198 +7004 15 173878926 2198 +10981 1808 173880402 4 +1790 10699 173888989 19576 +4523 5295 174281933 4 +518 9030 174281936 10 +11355 629 174603493 28569 +2278 12682 174632269 102 +1518 2871 174632269 102 +1720 9360 174632296 2333 +1754 2066 174632649 7754 +3616 9166 174638499 23124 +7644 6008 174641057 3 +4222 5719 174641058 14456 +5951 8664 174648996 11270 +948 5105 174650808 4 +7031 8203 174650812 2 +3316 512 174650813 4 +421 8897 174666856 2 +5131 1506 174666856 2 +396 10892 174666857 170 +7997 2398 174666899 3085 +1560 12012 174666899 3085 +6223 6910 174667714 16 +2452 1512 174738997 20203 +2508 400 174743508 4 +1566 12957 174743508 4 +9231 5765 175213897 29306 +11985 54 175351443 13 +164 10862 175352994 14 +7629 1331 175352998 13 +759 12945 175353020 8195 +6598 4353 175355584 2080 +1548 2982 175357660 7268 +3864 3223 175360318 19 +555 11063 175435539 18 +8257 4336 175510639 4 +1633 9650 175605697 3 +3264 4445 175605697 3 +8046 4127 175605698 2 +1743 5012 175732157 32712 +513 7950 175843715 5 +2733 7733 175843717 32825 +7 3525 175843717 32825 +712 9457 175979489 7215 +181 5671 175980701 14271 +12101 3237 175987133 7 +8091 5885 175987133 7 +3617 10998 176095781 19 +5788 3794 176095781 19 +333 12584 176102290 16220 +4234 1579 176117302 4 +7677 5657 176117306 18721 +7506 3107 176122534 11010 +528 7713 176122534 11010 +4475 5715 176125785 10123 +6040 8625 176130295 2 +1154 2591 176130298 5 +2289 1581 176161223 11 +9598 85 176221478 66 +6602 2394 176221478 66 +2089 2548 176221512 22918 +4447 9082 176287357 3 +718 12772 176287358 35323 +719 6563 176711335 8 +6645 2336 176714563 1 +10679 4728 176728146 2079 +13003 1892 176728146 2079 +3111 11328 176801670 2 +4186 11039 176839218 3 +7983 4029 176839218 3 +2344 5992 176842941 262 +2338 12099 176892961 1989 +1567 12592 177094823 9330 +1124 4869 177329674 1 +5857 3217 177329674 1 +823 13841 177329675 4 +974 1712 177329675 4 +2050 13565 177372711 3 +2984 1988 177372711 3 +7389 2624 177448411 1 +2715 800 177530253 11 +9215 3613 177530254 4196 +3251 2485 177628657 3 +8832 3376 177628657 3 +3910 4015 177628657 3 +11370 1693 177753595 3 +1526 10965 177765977 5 +8085 4297 178204182 950 +6735 4501 178204770 16227 +58 4049 178269079 1 +8824 846 178269079 1 +753 4354 178269079 1 +3202 2870 178332092 12302 +1449 1455 178344418 38 +11805 3419 178344430 30162 +10178 5321 178463020 10 +8727 5384 178463026 2 +8361 7140 178559212 14 +163 7195 178839299 3 +7054 2012 178943513 6694 +4596 5676 178943847 16921 +2163 10857 178948136 42091 +6280 7076 179241836 2 +1882 8477 179241836 2 +8216 3510 179511045 392 +4335 5212 179511150 16 +1632 7349 179511150 16 +2305 8057 179527089 9192 +5781 7427 179532471 2724 +4366 8426 179534426 40 +12745 1854 179534473 6447 +4414 9518 179547667 11934 +394 11409 179553502 26 +4666 6579 179553522 8 +12288 1842 179553524 2 +2968 10093 179625734 26245 +1294 8953 179673291 13 +6434 6422 179854578 17487 +8231 2120 179854578 17487 +45 6169 179908500 17 +12290 3056 180103579 10 +9782 1413 180103579 10 +4165 6797 180148838 20656 +4304 6841 180148838 20656 +12895 2548 180404034 4 +8363 5628 180456861 18667 +230 11091 180556269 98 +4875 4497 180626245 19567 +942 73 180626245 19567 +874 8445 180627387 1 +12900 2310 180627387 1 +2377 4798 180627387 1 +5919 1290 180627387 1 +9600 2599 180670988 25841 +4038 9826 180676752 4 +6519 3931 181014038 5 +10275 4407 181014038 5 +2132 6192 181014041 43127 +411 13301 181133783 11 +7841 3271 181133787 6182 +6992 6053 181136578 3 +8995 5126 181141499 7579 +24 4604 181141499 7579 +7066 5823 181141499 7579 +6082 1520 181146673 27310 +9279 2220 181185363 5 +1992 12454 181185363 5 +2269 3099 181185363 5 +12955 220 181236452 13 +4637 2488 181240430 3 +35 11848 181240431 1 +10052 2755 181413802 4 +6883 8451 181413805 5 +5950 9674 181642359 10320 +5803 3895 181648886 580 +2016 1052 181648962 2 +10611 3604 181682109 10 +3096 6488 181682111 2 +12148 571 181782826 1 +2417 563 181782826 1 +6013 3374 181782827 21273 +6217 1942 181859852 13398 +2444 2004 181918843 8 +3438 4757 181961518 9 +4440 3090 182078385 19 +3176 1917 182078387 30674 +4470 3638 182151216 9 +9775 5091 182151219 17 +1637 1241 182151221 4073 +10177 843 182196212 4485 +13930 67 182221968 1573 +4158 5684 182221968 1573 +2694 5786 182222562 8187 +665 1973 182225861 2901 +4603 3893 182226126 16 +5888 1609 182341060 3 +1383 8309 182341065 8551 +7028 7536 182341773 4 +1018 5897 182538405 2 +7421 1713 182538405 2 +4068 2002 182595019 5626 +4384 10530 182595871 3 +8872 415 182595871 3 +13601 389 182596855 12 +13095 2378 182596861 19 +6120 944 182596872 3 +191 5851 182608798 4 +8349 1977 182735264 3 +7975 3840 182735267 28207 +5997 1207 182742520 19 +10103 4510 182770556 33 +3337 9423 182770573 3250 +1863 883 182835543 20 +6540 362 182835543 20 +6948 2756 182840867 3151 +855 7080 182841750 3 +9120 211 183052815 16577 +10903 2875 183052815 16577 +11094 985 183052815 16577 +4162 9523 183058708 307 +2732 11366 183058763 10176 +4090 10910 183066883 1929 +14283 831 183066883 1929 +12915 628 183087861 3 +3142 2779 183109675 6 +8973 1771 183109675 6 +4129 8722 183109678 5 +8907 3915 183109678 5 +3960 6831 183109678 5 +8930 202 183237600 18 +1462 4356 183243337 4232 +1635 2973 183277849 19 +3029 12092 183301401 11 +2443 11165 183331373 8529 +5995 7390 183332861 111 +6445 337 183332982 2 +5112 729 183332982 2 +3939 7177 183332983 8056 +9162 6035 183360950 8167 +766 2060 183366661 9 +9280 6216 183366662 15 +5651 8480 183366671 23015 +10064 1931 183640655 16 +3063 9301 183667815 41131 +5647 376 183695956 39901 +6914 7609 183745876 1 +13339 965 183745877 2 +12200 585 183766677 14461 +6556 21 183766677 14461 +9138 3755 183779296 15 +1090 312 183779308 77 +98 8432 183779308 77 +2677 9664 183779310 5 +3273 10815 183930653 7899 +11687 2141 183930653 7899 +1611 8465 183992508 11997 +4014 2801 183993624 6356 +9804 5556 183993624 6356 +1703 4940 183994508 248 +3386 5766 183994623 2 +6194 3589 184108436 5977 +6760 2947 184124047 2 +1389 9513 184124047 2 +2333 4995 184454914 14 +7485 6049 184639305 24650 +9075 1128 184639305 24650 +4248 861 184641121 12 +2571 10293 184641135 19452 +6042 5260 184641135 19452 +7241 1050 184649375 20550 +4656 572 184671866 11496 +61 5093 184672690 1020 +11705 1165 184836995 5 +1532 6244 184836996 3 +5459 432 184950160 4 +2940 4502 184963345 3 +3730 4747 185118403 1 +2383 2770 185251850 5120 +1933 3685 185300116 2 +537 9372 185316194 20 +71 675 185316202 4 +3428 11260 185316205 8109 +3986 8010 185470175 18570 +5711 5110 185623178 2 +10701 1878 185623178 2 +9339 4919 185695840 21930 +12370 1736 185697803 12 +4386 11088 185697804 3 +3298 9472 185831909 6574 +6347 2125 185836202 3 +3350 100 185836204 5701 +1295 9309 185837060 32799 +3438 9117 185839492 10 +7707 6828 186049571 57 +96 15278 186290783 2750 +3294 1170 186293437 14 +5912 439 186304959 12 +6647 6629 186322035 1513 +9574 3588 186322035 1513 +6694 6682 186322209 1611 +11846 300 186459274 8 +166 10154 186466945 1490 +4381 3031 186627880 32513 +6128 3832 186642118 31437 +6113 4692 186643682 707 +136 11096 186715197 10126 +1963 469 186778914 5 +3026 2541 186795894 9375 +6455 4241 186807742 5 +4052 5464 186807742 5 +2000 107 186807742 5 +773 9919 186809818 6181 +3440 3396 187020725 15479 +8872 4081 187105635 11829 +6589 7554 187115304 12 +4359 10496 187115314 2 +1035 4986 187115314 2 +10302 395 187183584 2 +5161 7034 187183584 2 +4 8519 187183584 2 +4980 6954 187183585 5 +4891 9317 187183586 40254 +3021 833 187360988 2 +5123 6510 187360989 9118 +4594 9310 187362636 4 +1687 10599 187564698 5214 +365 8916 187672562 18 +3813 5466 187896789 1634 +791 12727 187913413 8 +2051 2826 187913413 8 +1618 13415 187913415 19 +6786 3924 187913422 2843 +3320 642 187915195 16371 +11907 2472 187917479 4453 +1161 5143 187920312 8 +7230 2260 187920312 8 +8738 1692 187920315 4145 +9297 6104 187923719 175 +1580 8545 188052907 3 +10820 4168 188052910 3 +2356 1699 188212565 14466 +7130 7146 188220363 6 +3748 5947 188326715 7 +539 14238 188557900 28541 +3277 9443 188577256 5 +12142 281 188577257 18012 +14743 665 188587599 7089 +5016 5402 188596967 45 +10157 4954 188753890 28615 +175 3087 188938515 18 +5870 5035 188938530 10 +7773 3086 188938532 13 +2706 2858 188938532 13 +6559 5634 189027807 16 +782 8629 189027812 5390 +1673 7551 189304881 19 +4810 533 189304895 362 +6572 6326 189305085 9083 +10829 4364 189312316 5284 +10336 2376 189313423 5047 +4814 6956 189382410 27610 +3829 5737 189442277 4 +5052 1236 189537116 2 +10159 3067 189537116 2 +10505 1971 189537116 2 +1468 11282 189552748 10 +3338 704 189552748 10 +655 4606 189552763 48 +7132 1779 189651506 13153 +9870 2556 189710207 11 +9907 1627 189763785 6631 +1069 14314 189763926 3 +10812 1726 190073197 3 +8318 4724 190073198 4 +12131 319 190073198 4 +4586 554 190079376 10095 +9640 1004 190098524 11314 +1621 6387 190102736 2 +9202 4914 190191999 4 +2851 10639 190191999 4 +9776 5658 190288731 2 +1791 12443 190288732 9 +3162 8634 190288736 1 +995 12109 190495634 5 +1312 10808 190664331 8 +740 8775 190754667 1 +654 10178 190948386 5245 +11775 1940 191075758 9 +734 9107 191075767 48 +3787 3039 191075777 8 +8752 4898 191162763 22092 +1469 5076 191166884 1733 +6219 7472 191269068 6 +9301 2983 191269070 5549 +10578 4449 191271125 12 +10637 1789 191271141 3 +3636 2830 191271141 3 +6207 8396 191271143 6209 +132 12792 191271495 15 +5616 5736 191271499 23241 +2344 7820 191287734 3 +6224 7733 191287734 3 +6250 3940 191287734 3 +3325 4818 191399197 12 +10767 3189 191511732 6 +8135 6615 191511735 2 +3100 9833 191677336 4704 +5926 5720 191677336 4704 +3497 7678 191680227 8614 +1735 7875 191680227 8614 +6157 7216 191683183 9675 +1540 5294 191686459 24435 +13064 1615 191699304 6 +3428 6197 191758474 74 +996 10509 191758494 6 +5924 7921 191758495 10 +965 14581 191758501 5 +4532 2406 191792679 56 +4708 9986 191862636 3081 +13911 1026 191864020 14896 +4718 9490 191879815 4 +10372 3170 192189745 1446 +295 4219 192190156 5 +1860 13706 192246091 4228 +6350 4530 192342209 10073 +558 3105 192342209 10073 +1975 2085 192397271 11772 +4159 9242 192400451 3 +4165 6414 192606212 3 +1858 3363 192606213 3 +6351 7180 192606213 3 +9358 4172 192606213 3 +1256 5010 192606213 3 +1975 3363 192606213 3 +6799 8485 192673843 21730 +3336 4546 192686384 3 +8126 6425 192686387 7 +8705 5116 192686387 7 +159 15114 192686394 480 +6971 439 192686394 480 +5962 5475 192686440 3 +7690 7621 192686440 3 +1060 7003 192686441 1 +4589 7714 192757474 25088 +7834 7394 192762907 1 +6713 8159 192762907 1 +8579 40 192892804 4 +367 11106 192894384 5268 +1230 6016 192903053 14 +698 9537 192903053 14 +6850 5018 192903056 36881 +7677 7265 192986881 3 +1984 6888 192986881 3 +3778 2595 192986881 3 +1420 6946 192986882 5 +13746 512 193080267 5352 +6587 1540 193080267 5352 +6417 8254 193082472 5522 +3795 7848 193087651 2 +3527 502 193387045 11 +3492 3082 193401562 15 +482 10751 193454671 28902 +4834 2410 193458210 10 +7175 5567 193458210 10 +2653 8803 193458217 12 +492 225 193458220 6 +11345 1218 193458220 6 +1738 1621 193493067 5414 +8750 5111 193496058 2 +2329 1865 193496060 36436 +12720 1435 193538094 7205 +1420 8126 193539940 104 +4086 3033 193539992 3 +6949 6736 193539992 3 +11722 3546 193691262 5333 +2705 809 193692213 13 +2247 1146 193692224 79 +10951 1487 193700703 37016 +326 621 193702653 11 +1285 13771 193710454 2 +2581 1782 193710454 2 +4540 2180 193735021 14587 +5906 4137 193738722 4 +9471 6100 193738722 4 +5621 5285 193738723 14581 +5307 409 193902290 1175 +431 983 193902960 549 +455 9805 193902960 549 +910 6870 194174415 3 +13617 1363 194174415 3 +12418 2095 194227715 7440 +14854 222 194233647 15774 +7598 6436 194251974 15285 +3165 7581 194258278 3 +12765 961 194560460 21709 +2626 10776 194560585 23839 +12246 192 194575350 3 +4122 8712 194581622 4 +8442 4761 194581623 6037 +146 8719 194586788 13372 +4295 7654 194804337 4 +7363 5163 194804338 4 +399 127 194933548 4055 +6947 8125 194938476 2 +5624 7428 194938476 2 +11488 2136 194942874 2 +11319 498 194972038 2 +6077 6992 194972040 3 +1246 4840 194972042 13 +644 3416 194972048 6872 +2353 6531 195012810 1 +1506 9022 195012810 1 +3263 6531 195012810 1 +6854 5950 195012810 1 +1283 8856 195040963 16457 +715 9483 195183846 2 +4318 2402 195183846 2 +11917 205 195183846 2 +6940 6918 195189525 2 +9478 710 195189527 1 +8966 2609 195189528 17165 +1042 13280 195219367 3558 +7282 5785 195575727 20170 +2963 7763 195747154 43062 +5377 2441 195748180 6477 +218 14729 195831103 4 +3021 12090 195831106 4 +2528 7526 195831109 4 +2386 10942 195843540 4447 +13481 2044 195845274 3 +6675 5899 195845279 1551 +5025 6158 196048202 3 +8300 1543 196048203 18428 +746 5689 196048203 18428 +5833 8993 196195003 107 +378 10103 196375599 7 +2345 5450 196375599 7 +7693 6181 196422038 41627 +6789 1118 196427375 12 +5790 2734 196427381 16 +254 4255 196427381 16 +1938 6474 196427392 25736 +1793 9749 196627207 2224 +13393 312 196627207 2224 +9112 4987 196627775 22458 +11396 3338 196660945 3 +423 9184 196680678 24437 +7654 1582 196680703 1072 +3433 2941 196681964 25169 +5831 8737 196683595 13070 +4771 5377 196909576 16268 +4457 80 197026104 12 +3859 2998 197026108 5871 +3367 6733 197028179 6813 +3932 8035 197033131 18434 +2003 7518 197033131 18434 +1907 13030 197034626 19678 +3375 323 197036171 25368 +3802 6877 197044682 103 +2057 6484 197123455 7862 +2055 6460 197123455 7862 +4461 1381 197292529 8 +8630 4423 197292531 14166 +370 990 197293005 5 +6327 3469 197293007 3 +9718 2123 197384469 2 +2110 3482 197384470 3 +3879 6821 197407216 5 +8738 4833 197407218 4 +6164 153 197448237 1 +13934 1688 197448574 10130 +3164 9352 197468484 3 +2365 8111 197743955 12 +5658 5627 197743966 4 +13775 393 197743971 298 +4132 195 197749052 5 +1668 10057 197749052 5 +13097 1030 197984149 7891 +5078 7689 198011219 18 +5115 5975 198011229 2 +1993 2591 198011230 17 +3579 2280 198011231 2 +4537 6001 198011231 2 +6226 525 198011231 2 +1534 1691 198030045 4 +735 11640 198030047 38037 +4944 8315 198035556 3 +4735 10332 198150308 18759 +7142 3187 198155375 6371 +2593 6788 198175988 3 +1660 6502 198175989 16136 +2874 1301 198203356 15353 +11150 561 198229664 14 +4216 3456 198233327 18393 +9267 2114 198233327 18393 +7350 749 198235881 12 +678 6028 198235886 19822 +3947 3393 198244635 3 +9933 619 198244637 13182 +812 1436 198262373 2 +6243 9178 198282965 1 +9087 5931 198282966 4 +1032 6577 198282969 3 +5054 10111 198282970 158 +6775 4736 198363892 6104 +2108 2390 198369918 2696 +8294 3433 198402736 37863 +6398 4210 198409393 18 +3375 6749 198409395 1 +1368 2324 198578822 5 +4263 9727 198578826 751 +3657 4261 198578909 41409 +7783 3575 198647266 17 +808 1059 198733177 32311 +8166 3751 198768986 21754 +2594 490 198871009 11771 +844 12092 198871009 11771 +6343 5119 198881904 7648 +850 8328 198882155 5 +8300 1344 199172113 11 +5012 542 199172113 11 +5791 286 199186469 13 +1625 7664 199186469 13 +12139 3419 199456487 15212 +1273 1514 199525854 2 +3153 3190 199525854 2 +39 2651 199525856 34536 +7057 6131 199613981 1 +1850 9422 199613981 1 +384 4215 199613981 1 +6753 1570 199636583 3 +1985 3064 199636584 25881 +6721 6195 199643930 4 +323 9358 199643930 4 +9198 2921 199643932 11107 +4487 7803 199725083 3 +54 5750 199725083 3 +493 8518 199725084 17 +3834 7035 199725084 17 +7518 5334 199725094 4 +1484 5873 199725096 10 +5027 666 199725101 15 +1320 13469 199725114 22994 +7275 2871 199731405 1 +8127 5084 199731405 1 +3214 8144 199733301 5 +4844 4255 199733301 5 +7362 3922 199733301 5 +6375 2655 199733302 86 +1004 5346 199733328 5 +6589 4160 199733329 17594 +4804 3012 199740359 3 +237 7822 199740360 4 +10678 534 199740361 16445 +5568 9672 199760552 8 +1507 13777 199807195 2 +1562 10773 199878381 4 +2062 554 199878384 4 +1612 4965 199897484 2 +308 4541 199897484 2 +3299 2364 199897484 2 +8579 3184 199897484 2 +5455 3182 199897485 2 +15 8284 199897486 9422 +3001 8561 199944437 426 +3095 10883 200079916 44539 +7311 3105 200488950 14 +3211 10673 200552680 277 +239 6987 200552734 7730 +671 8566 200552734 7730 +2643 5087 200623665 19 +1258 10661 200755326 14464 +1831 5232 201116902 2 +11384 389 201116902 2 +3540 7713 201116903 1 +1794 6697 201116904 7778 +2770 8856 201116904 7778 +3319 4215 201116904 7778 +9872 2252 201132068 4 +2446 3444 201132075 68 +1759 11853 201132110 6 +4409 7059 201132117 10 +2209 5578 201398141 8 +10188 1369 201595010 16796 +3783 1304 201619154 14587 +5464 5093 201629754 4184 +6717 4017 201687010 107 +188 4479 201786411 16 +4342 10626 201910491 4 +11403 1192 201910491 4 +5181 4571 201910495 328 +1550 11505 201910767 8706 +12615 2832 202043224 2 +3183 7857 202060128 5823 +1594 2280 202178042 26424 +142 13273 202178042 26424 +11385 4141 202202660 8493 +2927 8886 202206618 19 +1835 2025 202206618 19 +7879 4652 202206622 3 +581 13821 202206623 19 +7531 7705 202716700 2 +4734 8107 202783052 31292 +6258 3561 202794756 3 +12476 1126 202794757 28846 +10963 851 202836804 7324 +3099 5249 202839723 14723 +14260 921 203035868 1 +3794 660 203039731 29 +5488 5018 203051955 22921 +7322 657 203051955 22921 +522 10535 203051955 22921 +1071 8834 203054489 18 +7224 1318 203054490 4 +3070 7044 203054491 17 +3346 2753 203054498 2 +497 3393 203054498 2 +6076 2726 203054499 239 +399 12676 203123521 3 +10755 1555 203478771 1 +1664 6482 203478771 1 +1540 4872 203478772 9862 +81 10284 203532286 7949 +3673 2133 203532286 7949 +10331 3361 203532502 7 +859 8116 203532504 36995 +3607 1287 203616701 3 +3063 7575 203616702 14072 +5243 4226 203617720 4 +674 5233 203641851 4 +11372 2851 203641851 4 +8952 829 203653358 3 +235 10955 203653359 3 +1791 7371 203942691 43269 +61 14425 204016680 6 +10186 920 204480849 19 +530 13282 204480859 3 +5 8719 204943122 5184 +7727 2884 205269185 17754 +2422 9581 205329560 2 +10224 2443 205645257 5 +5939 9041 205645259 272 +1979 6633 205645334 3 +13112 234 205645334 3 +3136 4051 205650746 4927 +732 7506 205780907 8863 +5865 5606 206034470 468 +5291 5119 206249043 1554 +4272 2722 206249092 17 +4476 7550 206285234 5 +3045 3704 206285236 19 +9624 3772 206285238 37 +5007 1443 206285248 24294 +277 6855 206295706 10 +4842 7146 206382679 3 +10502 2919 206521298 4 +11759 3786 206558375 4 +3934 1442 206644434 2 +10154 671 206644434 2 +6914 4609 206644435 2 +537 15067 206733587 18 +3184 7363 207031705 12402 +2150 8190 207031705 12402 +7178 6357 207035479 4 +6349 8692 207035481 4 +2334 11727 207035483 2 +6718 1998 207035483 2 +1227 1026 207089399 7256 +4353 2144 207089399 7256 +4891 541 207140888 17024 +2619 2210 207158327 4 +2028 95 207158328 10316 +14844 714 207164228 3034 +13686 1044 207165221 1 +1073 13918 207165222 32200 +3686 537 207450031 2971 +7361 4009 207457465 11462 +12943 2246 207458978 18 +9670 5868 207458997 1 +5869 5367 207458997 1 +2832 5444 207458997 1 +8916 2252 207458998 7 +10284 2211 207459004 6 +4795 6643 207529140 215 +11450 3115 207529140 215 +7951 6804 207649550 45 +7719 1465 207649623 17718 +3212 10577 207654951 19 +11583 873 207654961 10431 +525 6721 207654961 10431 +947 2937 207654961 10431 +9826 1438 207656962 4 +8040 2652 207656966 5 +5453 3780 207656966 5 +3920 3613 207656967 4 +6269 1512 207656969 64 +6710 2776 207670265 87 +786 8138 207670269 17 +9133 5099 207795232 12 +14676 548 207795237 3 +11418 1913 207803581 2 +194 12246 207817966 23072 +6010 6946 207823017 18 +1865 2106 207823020 6 +5644 6429 207823021 4 +4834 4593 207823022 11083 +114 3990 207825213 8 +9795 509 207932073 5715 +1725 7107 207947320 9 +5595 8188 207947320 9 +8551 3266 207947332 97 +289 12121 207947501 13 +13437 885 207947501 13 +9793 1473 207947506 8 +4758 6417 207947506 8 +4269 4580 207947509 35677 +8213 6783 207962638 14 +1578 6380 207962651 4 +988 9173 207962651 4 +11327 1712 207962651 4 +197 134 207962652 1 +4599 198 207963924 19190 +1772 10396 207974157 17192 +10132 586 207986159 6415 +5914 595 207986411 17790 +424 13201 207986411 17790 +5497 3214 208405725 10171 +965 5780 208408585 4 +11314 3636 208607539 8 +11062 3099 208607539 8 +4592 10639 208607540 11424 +1961 216 208607540 11424 +6678 3683 208618614 30 +5000 3446 208627706 4 +12751 568 208627711 2 +3100 5521 208627711 2 +132 10450 208721528 13 +11755 40 209009587 98 +5521 4 209010998 5 +13660 100 209011040 8795 +3563 9405 209014111 9 +4314 1845 209014111 9 +1699 8984 209014114 18 +6368 5984 209014149 14991 +2472 5095 209020021 5 +6887 604 209189552 4313 +43 10960 209202623 4 +1399 9652 209501633 21583 +5821 7609 209822188 2 +13559 1092 209822189 27557 +2575 6084 209835460 3 +11342 3008 209877764 3 +10852 49 209952081 4465 +8193 7239 209955189 7006 +13336 476 209958358 18 +219 11079 209958360 106 +5649 7105 209958468 3 +7141 1770 209958470 4 +4289 9447 209958472 10451 +1822 12986 209962130 12327 +4174 5969 210044093 2858 +4128 10457 210244261 4 +4401 10205 210244263 5085 +4042 6157 210244717 38406 +1956 437 210260644 3346 +743 13414 210261084 10 +9941 511 210445495 12419 +5221 7319 210459713 4 +8824 3854 210459714 33837 +5451 6552 210500421 20298 +5721 8237 210553619 9 +1436 14086 210553620 108 +11111 465 210833573 8940 +5673 7731 210849738 36452 +3596 11299 210865130 705 +4385 1037 210865130 705 +6059 337 210865493 6944 +1653 11383 210867798 3509 +11294 3207 211197363 3 +2685 10194 211197363 3 +4948 5934 211420899 1 +9677 752 211420900 1 +8217 897 211424271 5 +10032 4793 211458936 10 +3099 8429 211458936 10 +7184 4779 211458942 5405 +9635 653 211461639 15 +5966 7168 211468298 11 +7481 2139 211520691 13 +2946 5279 211520706 14941 +3812 2563 211660991 10 +11192 2746 211710853 10 +5717 9196 211710853 10 +8664 6369 211842126 45 +8284 1006 212026124 2 +10938 1473 212026126 2 +9781 3649 212075790 3 +4130 1876 212075790 3 +685 3966 212115724 5 +12679 1715 212217506 18091 +3627 7277 212217700 30183 +1140 4755 212253970 6 +654 7234 212253972 13 +961 9520 212253979 16626 +5751 5599 212253979 16626 +9191 3971 212253979 16626 +2995 3352 212253979 16626 +32 1980 212253979 16626 +3331 9948 212280600 17878 +6313 4920 212285012 9 +8924 3889 212480448 34 +2237 7696 212480472 18 +6815 5759 212480479 12 +2590 9537 212533856 9780 +11250 2518 212536385 20194 +1221 7087 212543128 9736 +8625 1927 212589619 27930 +1317 11223 212610940 12 +2720 9115 212982424 4 +7427 2646 212982426 2 +5988 8698 213003402 1 +2012 9844 213338251 15 +320 15125 213349715 4 +5183 2045 213349718 14 +7182 90 213349727 17 +2108 4293 213349731 27 +2701 2077 213349731 27 +11230 1029 213366820 10 +5781 9650 213387105 11705 +3802 9007 213390291 6507 +3814 9185 213391250 25397 +12873 1073 213395538 30 +5839 5173 213434737 17 +1891 2418 213434737 17 +4618 6317 213434742 7789 +5605 1861 213454905 32146 +3580 6396 213514069 8385 +3257 3534 213517912 3 +3605 9448 213517912 3 +3406 8999 213517915 5 +6076 3586 213801298 4 +2810 8337 213801299 2 +227 14805 213927508 16 +4262 9648 214265403 14659 +7455 4629 214269670 24744 +3209 460 214321909 3 +2896 9770 214321909 3 +12379 2922 214363126 13 +2862 7595 214466527 7 +3114 10555 214466530 196 +731 2798 214690668 6222 +10850 2803 214693522 7174 +2167 978 214767158 9 +10166 300 214797055 3179 +3097 9305 214797506 37978 +7999 4718 214813573 3 +7255 3689 214995056 12992 +2741 5859 214995056 12992 +2651 6503 215040369 21664 +14066 308 215115538 14254 +835 9785 215123266 3 +831 5768 215123266 3 +9870 1361 215123267 1 +770 5113 215167596 3 +6153 4976 215167596 3 +766 1152 215167599 28242 +929 5221 215169976 5 +8914 2608 215169979 2 +3760 1264 215231986 4 +8729 4187 215231986 4 +8216 6124 215318830 1 +10522 4221 215318830 1 +5304 2872 215318830 1 +1118 6154 215318830 1 +12406 1261 215508518 2758 +10185 685 215508546 33289 +4315 10735 215537705 4 +1085 12178 215537706 4 +1922 755 215537706 4 +1244 3375 215537706 4 +3727 2415 215537707 5292 +9437 5582 215537987 15675 +763 4310 215551684 2161 +6306 7741 215552254 8 +374 1928 215552254 8 +7182 7066 215583860 51 +6010 4288 215816254 2 +7250 5664 215816254 2 +616 14739 215965192 35064 +9740 814 215965192 35064 +6923 155 216000451 2 +1719 8606 216001218 2109 +1979 12619 216250596 19 +8238 5929 216250609 6180 +1408 13852 216251628 246 +251 15144 216251774 15764 +13759 1263 216251852 10 +1506 1325 216251854 14543 +1443 2816 216294144 12 +13679 1756 216294144 12 +2576 6042 216294144 12 +2825 3647 216486347 10 +3080 11787 216486349 9686 +1445 13034 216888344 18 +2095 1201 216888357 2101 +9017 6529 216888357 2101 +5667 3200 216889024 16 +10031 5531 216916289 5 +5070 5513 216916291 4 +1893 5990 217120540 3 +873 9563 217120540 3 +11398 1445 217120541 3 +9858 4980 217120544 1 +711 10573 217120544 1 +3607 5702 217539400 1 +7001 1056 217539400 1 +456 9218 217539400 1 +6031 3378 217539401 30986 +6644 1382 217539864 13 +356 13570 217559248 18315 +1380 10968 217563395 4181 +4114 8715 217564294 5558 +1141 12055 217686243 157 +4157 9002 217686287 1848 +11795 2027 217686544 9676 +1153 13473 217761324 3 +5479 2754 217761325 1707 +12620 2912 217761325 1707 +4420 9948 217761407 4 +2950 6783 217761409 2 +1084 9044 217904452 2 +2378 6509 217904452 2 +4458 6509 217904452 2 +4265 5278 218090551 66 +466 12929 218191974 5 +4616 4378 218191975 7447 +195 11269 218196924 4 +1679 1206 218236493 2 +8327 4005 218265200 12063 +3377 8304 218336064 15 +8632 4698 218583823 3 +3294 1254 218583823 3 +5542 2909 218599266 4 +11376 1047 218643558 3 +877 6422 218643560 18 +3987 5534 218643560 18 +2977 854 218643561 2 +4434 6850 218643562 7808 +1411 6785 218643562 7808 +6801 867 218645573 4813 +9499 3101 218646021 3 +12142 262 218756265 8991 +3092 5339 218769659 5 +6396 5693 218794231 3 +8921 3224 218794231 3 +11157 3785 218794231 3 +12168 1572 218794231 3 +8379 4749 218794232 1 +1400 9837 218794232 1 +9750 2114 218794233 3406 +1862 10349 218794233 3406 +1053 7707 218798800 76 +13859 1673 219097147 378 +36 661 219097490 3 +12762 2660 219097494 13058 +3064 3754 219136284 23411 +3287 4699 219177911 2 +349 13885 219270258 3 +1082 8407 219583205 2 +5427 4000 219583205 2 +396 7146 219583205 2 +8428 5611 219583205 2 +1221 6165 219583206 23093 +2630 6770 219756040 10 +2059 2742 219756040 10 +5359 2416 219756043 15 +9816 2691 219756043 15 +1590 9723 219796481 238 +2945 551 219796509 15979 +618 14188 219824222 5 +6352 5861 220320086 2120 +2055 7762 220347482 22105 +142 3541 220363584 1 +2161 3324 220363584 1 +9432 847 220378920 4010 +8479 2624 220385754 31607 +14291 1064 220396366 10442 +1969 2389 220423504 4676 +4327 3364 220442887 24925 +5734 4897 220477993 16254 +1663 2348 220637198 20 +1235 3172 220664032 14 +6543 964 220705491 19 +8641 418 220725047 3 +9190 1315 220725048 3 +8249 6165 220725048 3 +108 11754 220725049 10213 +5695 499 220833524 10167 +5017 4459 220833524 10167 +6607 7142 220852506 1 +1521 283 220956566 6623 +1961 2816 220964164 94 +227 2620 220964207 3 +14296 675 221004438 13945 +2012 13391 221010892 42 +2067 9159 221304371 11 +829 10041 221426773 3 +9412 5448 221426774 2 +9233 874 221426775 14 +3621 3615 221459826 8398 +4143 5059 221462801 4 +3452 11972 221462808 4 +902 3581 221462808 4 +4389 1325 221462809 3 +4149 3549 221482169 5081 +5873 2092 221486846 11 +763 5928 221544553 3 +6067 6639 221544559 1220 +227 2385 221552464 5772 +951 1985 221552464 5772 +4651 2018 221555338 6514 +3277 7673 221555713 22343 +11968 2722 221651943 4 +10560 595 221651946 10366 +2821 6431 221651946 10366 +4742 748 221651946 10366 +6748 2796 221654243 4 +466 7704 221654248 18 +3838 463 221654255 1994 +3526 2371 221672304 4 +14017 1318 221672304 4 +5558 7022 221722738 488 +779 10532 221722905 2 +13936 568 221722905 2 +451 3752 221722907 10255 +8950 1973 221834387 2152 +3979 5204 221834441 15 +2514 2738 221977840 1894 +2408 5467 221977951 14 +2376 7615 222108299 4 +8836 474 222316968 9406 +8613 6998 222326684 1 +7979 5032 222326684 1 +4371 3197 222481491 5 +6847 8752 222574389 4 +2946 5483 222574389 4 +2507 2900 222574389 4 +4077 1613 222601319 18 +2013 7819 222601319 18 +3176 5704 222747598 6969 +9560 3179 222756370 3 +9448 3265 222756370 3 +10905 3002 222756372 7 +3183 1303 222756377 4 +5989 4842 222791224 8374 +5347 8116 222793944 14228 +4960 7296 222811894 1 +3189 7147 222811895 9 +5256 6656 222811898 1543 +2320 3439 222812847 33728 +10728 577 222863133 3 +12192 350 222863133 3 +4599 3561 222863133 3 +7845 433 222863134 3588 +3611 9441 222872014 292 +8467 4737 222999730 15 +6059 918 222999739 81 +4092 7375 222999739 81 +7361 4123 222999744 20853 +8868 657 223000896 81 +7957 1594 223010501 5 +8299 2116 223010503 14994 +4338 4080 223012667 2 +1513 4268 223012669 2 +1946 3265 223012669 2 +11089 4345 223012669 2 +2515 4840 223012669 2 +9371 3502 223063885 4 +9054 5281 223141467 2 +5426 6645 223141467 2 +2597 6644 223141467 2 +1513 3815 223141467 2 +5668 8985 223141470 108 +6168 5307 223141490 13 +2201 6369 223141494 5 +2398 10409 223368454 5 +5732 4797 223368455 3 +2132 12469 223402130 2 +6119 8411 223626520 3 +4576 7142 223626520 3 +3630 1384 223755748 13 +12704 1180 223755748 13 +1181 9233 223755756 21314 +1225 3264 223870615 8610 +3585 8118 223872618 4 +10522 690 223872623 18390 +888 6816 223872623 18390 +654 4907 223967041 14184 +2548 12314 224125587 2 +3120 3239 224125587 2 +9833 649 224125589 4 +8644 4269 224131403 17 +9194 3362 224131403 17 +10055 3163 224131403 17 +13028 1062 224131410 19675 +3447 8423 224162815 14523 +863 9665 224165151 38077 +6097 1140 224169078 16 +8924 1085 224169089 15 +3274 10989 224184417 3 +3262 951 224227312 2 +5732 6571 224244925 15 +944 7655 224363647 1 +6094 1934 224363647 1 +11262 1500 224397632 4 +760 11292 224418817 1532 +4076 9576 224625669 26765 +6367 4116 224629618 3 +11137 2712 224629620 1 +2160 1277 224629620 1 +6839 4623 224649355 4 +1995 774 224649356 3 +11045 4553 224649357 6390 +1484 203 224823690 4 +249 3087 224823690 4 +4297 3293 224833853 20958 +250 932 224842981 4 +6656 2942 224855573 3 +4424 742 224855573 3 +11178 3459 224855575 1 +2096 5146 224895404 2 +7479 6310 225068653 4 +2915 9243 225068653 4 +12151 1011 225068654 11 +2669 8899 225068654 11 +3292 2379 225068655 1 +3797 7470 225068655 1 +2750 826 225219441 1220 +3909 112 225220341 95 +3678 7477 225220443 61 +10111 2532 225465971 1 +10920 1518 225560150 2 +9038 5207 225609945 3 +2949 10154 225609945 3 +2854 6535 225616678 13 +2125 3240 225616682 4 +2146 8520 225616683 8286 +11682 3630 225628758 16 +8395 5322 225628760 4 +2867 11528 225773363 13952 +10227 3058 226164450 4 +4146 4235 226164451 21484 +12323 2555 226181693 17 +4207 6793 226181696 54 +4294 6579 226181742 34584 +109 7660 226209644 4 +6681 8368 226373312 6 +205 14785 226422896 17 +3416 12089 226422897 2583 +8463 2497 226423106 1 +12982 224 226423107 12500 +466 7824 226423107 12500 +897 3421 226427482 7352 +2112 2867 226427482 7352 +7086 3569 226430476 2 +7203 5187 226430477 1 +1548 10366 226430477 1 +10456 152 226430477 1 +9843 5246 226433916 18385 +3847 6425 226568438 69 +3412 2861 226568479 19 +4556 3834 226568504 4 +8688 6241 226568507 3 +6991 3987 226803986 13 +4670 9639 226803986 13 +2616 5914 226803986 13 +1179 7598 227014084 23580 +2104 2469 227050974 2 +10109 3758 227050975 4 +3317 11001 227095619 4 +1279 5383 227095620 19 +9038 3238 227095623 3842 +3895 7584 227098120 12786 +4158 8577 227114658 94 +2805 10160 227114676 2 +9193 2760 227114677 2255 +12465 1589 227204552 1121 +5298 5944 227255703 5 +3918 1590 227255703 5 +6133 5864 227255707 3 +3143 6756 227448300 3 +9551 592 227448300 3 +10389 2067 227448300 3 +4249 2049 227464736 12343 +9038 3371 227471024 27415 +4886 5413 227474397 34340 +466 11238 227555234 24636 +1978 2026 227639888 227 +1590 5412 227641015 41743 +2208 4920 227699208 17 +2863 7209 227704953 18 +2801 11834 227704955 15887 +1308 8111 227716890 13 +3304 1919 227913437 6 +7414 1333 227926579 1 +418 729 227962923 18 +8081 1384 227967902 19 +10753 1316 227967906 7 +9632 3128 227967910 4 +6974 310 227967912 2 +977 3105 227967913 1 +4502 10811 228013450 30346 +3474 10511 228421385 2 +4191 5042 228421385 2 +8981 2290 228421385 2 +2375 3635 228421387 12921 +1445 11847 228440500 25 +2119 1288 228440500 25 +3523 11468 228451991 4 +105 13599 228451994 5 +551 10672 228451999 10782 +3921 471 228708192 15 +426 3543 228724118 2984 +2124 462 228810270 1 +11340 2373 228810270 1 +1247 7786 228810271 5 +10774 3025 228810281 17 +7629 598 228810285 24841 +2471 6822 228810285 24841 +3363 10430 228825546 4 +1850 12149 228825548 10075 +7608 1853 229053551 2 +2553 11306 229088521 1320 +8673 6339 229164622 26 +1076 12959 229164655 6188 +7398 3162 229170411 1 +588 11484 229170411 1 +224 3424 229580757 22417 +2711 3499 229615571 22299 +10615 2510 229615571 22299 +4035 9101 229641197 2 +2059 9718 229641198 9113 +2263 4496 229641198 9113 +8355 5389 229642424 29004 +2100 7463 229642424 29004 +697 6991 229676838 30947 +6907 2453 229676838 30947 +2730 1740 229710540 18 +5124 8214 229737251 3 +2624 4751 229737253 3017 +5162 6326 229737253 3017 +12274 1426 229806408 9 +8307 5562 229836766 8952 +4563 2049 229836766 8952 +6026 1196 229863600 2 +14091 321 229863601 4 +10452 2932 229863601 4 +8225 6968 229953475 4 +7213 8274 229953477 10384 +6203 294 229953477 10384 +491 5044 229964026 3 +3845 3419 229964026 3 +3537 2453 229965963 2 +10521 1719 230023668 2 +11857 1384 230041616 4 +1404 2779 230073127 4 +4452 857 230177957 7440 +4946 688 230206027 32 +5622 3167 230214769 2 +383 6073 230214769 2 +3091 3197 230304916 5 +2508 8076 230429803 19 +4475 2637 230429803 19 +5005 4356 230507766 50 +11413 3272 230577060 17696 +2914 6955 230582997 107 +9741 1644 230582997 107 +7622 1685 230582997 107 +2105 1604 230583022 2792 +1454 7138 230583022 2792 +3467 11103 230584059 1 +3890 863 230584059 1 +1086 4450 230584059 1 +4790 755 230652350 1 +12493 197 230652350 1 +4934 10309 230657250 4 +5739 8788 230821569 16 +770 6765 230821569 16 +5867 103 230821569 16 +8535 1796 230821569 16 +447 1796 230821569 16 +2795 7132 230834127 89 +12458 2418 230834127 89 +5030 7903 230834138 3 +13597 1390 230834139 3 +356 3453 230834142 4 +1056 2911 230834142 4 +142 12469 230854301 9 +154 6747 230876184 10869 +13662 441 230876184 10869 +8830 6491 230877423 2 +3819 3951 230971199 5 +10639 922 231042123 15 +8663 6604 231042124 16 +10009 658 231193872 12722 +8435 5143 231200521 9775 +405 14344 231206524 9 +8592 1128 231206525 32392 +612 11278 231211576 151 +206 11357 231211585 64 +6119 4196 231211585 64 +10596 4196 231211585 64 +5933 6252 231211631 1247 +6049 2029 231211631 1247 +525 9863 231211675 5 +3866 5690 231211675 5 +2332 11456 231211676 11 +10578 3494 231211679 11743 +13510 1214 231212027 39 +4971 4416 231239549 2 +1494 8877 231239550 2 +5859 6034 231436921 1 +5127 2558 231436921 1 +4936 8657 231436921 1 +4872 6931 231744420 35176 +1469 4156 231959225 32122 +15233 296 231959225 32122 +2609 1645 231989933 10170 +4756 6861 231996777 18165 +164 2306 232002527 3 +470 10743 232090787 19697 +10429 4569 232095895 2 +6510 6009 232128149 6 +3570 2689 232355485 11713 +5906 9672 232355485 11713 +9413 1447 232649305 12392 +2191 7522 232649305 12392 +13150 927 232713533 14934 +12444 2967 232715976 2 +884 5047 232715977 98 +552 8140 232715977 98 +559 7764 232716017 4 +1116 12752 232716019 4 +10560 782 232716019 4 +12844 2089 232716019 4 +7943 620 232716023 20885 +3135 3535 232731037 19 +176 13814 232822999 5 +5820 1669 233067829 13 +7287 3667 233132508 8913 +5968 3367 233135456 24096 +9903 4367 233142766 3 +5598 612 233142769 3 +890 5023 233142769 3 +5772 5001 233237927 1 +6202 9365 233237928 3 +4309 2938 233242077 19 +1899 8667 233242078 5 +10548 1759 233457710 61 +2033 7075 233457716 17 +841 9678 233457736 4 +12435 1234 233766446 13 +1244 5679 233793863 22185 +10665 3591 233949896 14 +6023 2343 233990758 1058 +5241 2627 233990926 15 +1297 7100 233990931 4 +202 5277 234246634 10 +5629 6330 234246634 10 +3170 2796 234246636 5 +2227 13019 234306457 18027 +11305 687 234764911 19153 +7445 391 234790523 245 +1495 4644 234804135 4 +1384 9227 234835775 5 +9232 3163 235185484 97 +2322 12559 235186172 9845 +9801 4919 235688446 7 +1845 1090 235688448 3 +1481 8611 235688449 1 +9349 1722 235922565 188 +10786 562 235922690 16075 +2501 12086 235950948 3 +7951 2821 235950950 3 +455 14510 236002139 2 +1891 866 236257873 4 +15519 24 236257873 4 +6653 8170 236257877 1 +489 2330 236289711 1 +5393 5283 236307857 12 +321 11432 236307863 16 +6873 674 236307864 2 +1468 4340 236328672 3 +4079 6329 236328672 3 +1359 1787 236444353 4 +12118 3120 236496962 430 +7018 5570 236496962 430 +2186 2473 236571750 3796 +2091 12837 236645962 42 +9632 234 236938371 6 +2840 4021 236938374 133 +10280 1898 236938500 1 +8712 1899 236938500 1 +1550 9633 236985416 15808 +3425 10839 237001503 15173 +3456 1530 237387888 12619 +4849 8838 237389555 29043 +1825 13544 237401715 4 +627 2009 237401715 4 +6959 4639 237401716 5 +91 2201 237401718 3 +4587 1366 237420395 4 +1928 4861 237420397 3 +58 10692 237420397 3 +14718 648 237420397 3 +449 5535 237426656 5 +6334 4457 237426656 5 +3438 8269 237426667 20 +5165 5587 237751330 14398 +5524 8626 237754671 3 +5352 126 237936646 10973 +2101 12411 237944929 2 +4403 5201 237944930 15443 +4960 9028 237946923 8022 +1106 13555 238025722 15 +6375 8361 238357351 17 +12944 2381 238531364 2760 +3307 5659 238587823 22458 +1307 4830 238732318 15 +1690 11344 238890929 7320 +6119 6435 238894436 24303 +11126 1071 238921719 4 +11445 3581 238921721 16 +6051 3506 238921729 7 +357 8420 238921731 63 +5524 9189 238921832 3 +1479 6364 238921832 3 +13042 1079 238921834 17889 +7754 2743 238929648 13 +2914 3302 238929654 4 +7244 6421 238929656 19 +13372 474 238929656 19 +729 14393 238929657 20 +13197 1972 238929672 7 +879 7856 238969837 4405 +9242 597 238971049 22351 +11245 1942 238993744 32964 +11519 1796 238993744 32964 +1851 9411 238993744 32964 +6164 4560 239143651 8083 +11030 1482 239237254 9 +1085 10220 239237256 7 +2013 8578 239435398 3 +5094 885 239435398 3 +5853 2411 239435402 11 +5346 5671 239507674 311 +6831 2045 239507721 11 +4840 8917 239507732 2 +1508 13974 239507735 2 +11176 3657 239507736 6 +2950 3634 239507741 6690 +856 6159 239552583 2 +8818 2808 239552584 7513 +3564 11533 239557354 3 +7761 3814 239903521 3 +6637 1019 239903526 18588 +2935 6313 239938155 1 +1330 5859 239938155 1 +12441 2576 240053365 2 +9466 5825 240053365 2 +5773 249 240214118 2 +10070 3711 240214118 2 +12661 2867 240214118 2 +4431 1327 240214119 1 +8224 772 240214119 1 +7171 7162 240214119 1 +13772 772 240214119 1 +3184 4779 240237375 12 +5628 1994 240237376 4 +6168 2610 240263140 3 +12936 122 240299507 5148 +4946 7838 240311812 4468 +4147 3861 240313606 9018 +7620 5501 240313606 9018 +6662 7945 240320056 5 +12108 3171 240320056 5 +3409 1963 240320060 38 +5053 10242 240335287 3415 +8535 5825 240691333 9 +5458 7541 240691335 17 +629 8981 240691347 3429 +212 2272 241010945 1 +2653 7115 241010946 5 +3104 4028 241108335 4 +3976 8568 241108335 4 +8170 5850 241108337 2 +10674 3124 241295287 2 +2940 1977 241295287 2 +892 39 241295289 6 +9607 1976 241295290 162 +6816 1203 241295290 162 +14303 758 241295420 18 +7187 5936 241295440 6900 +10401 828 241403247 2834 +1203 611 241406926 1 +6869 2011 241406927 9 +4117 8957 241406928 14 +2432 4145 241406938 18 +4193 3653 241406949 1 +14261 257 241406949 1 +316 888 241406949 1 +8740 220 241406949 1 +4638 2719 241406949 1 +7730 3569 241406950 3 +5014 661 241406954 21636 +5249 8396 241410841 17 +2334 8933 241410842 3 +844 13656 241410846 6 +9941 1943 241759664 28187 +8824 5349 241774550 3 +11301 1982 241783939 3 +6703 3758 241805961 6 +642 6279 241841901 4159 +753 2798 241985249 2 +2610 6305 241985249 2 +5707 7718 242160635 2 +8514 386 242160635 2 +1631 5466 242160637 3 +11322 22 242213819 3 +2211 4711 242214423 3 +3751 2686 242252575 20230 +4771 8143 242314589 27018 +1453 6963 242459832 3 +7942 322 242459834 254 +3201 5020 242459921 19 +3795 2439 242607454 10 +5897 2559 242607455 11 +12376 3155 242607461 2 +2899 10752 242607461 2 +11523 3918 242884380 1579 +722 13415 242884736 3 +1902 5372 242885691 4 +3819 11118 242885694 2 +8794 3541 242885694 2 +4245 41 242885694 2 +13900 1450 242885694 2 +10272 2702 242919587 58 +10176 4022 242919599 3594 +113 7001 242921164 18 +12261 1624 242951222 5196 +7372 5382 242954259 4 +13790 950 243033881 4668 +11924 1813 243034189 11 +9407 2606 243034194 22467 +15 3937 243138080 2 +11851 3165 243138080 2 +1638 4885 243138081 4 +2643 1863 243262201 5 +9558 4923 243312926 5303 +4666 4468 243391995 15121 +2156 9352 243391995 15121 +398 14076 243395308 194 +13397 326 243843221 4 +836 13341 243843221 4 +2301 11603 244283434 1 +8125 2327 244283436 4 +7250 7495 244283439 5298 +6705 2670 244284785 17 +41 14930 244284795 10015 +9472 196 244284795 10015 +7484 1275 244285594 10648 +5208 1282 244285594 10648 +9006 511 244287234 5284 +2479 6745 244292028 11 +7905 1221 244292029 1802 +531 13647 244292135 2069 +2409 1906 244292135 2069 +9807 3507 244292764 205 +12607 2087 244292889 1 +2459 1551 244375826 22264 +9343 3830 244392043 8 +3800 6977 244392046 14933 +11477 1021 244614965 7 +6672 4043 244614966 19 +10895 2928 244614976 13 +14086 1386 244614991 4 +6675 3361 244614991 4 +5959 9113 244614991 4 +3448 10853 244614992 27364 +1191 3523 245047147 2 +7753 3326 245047147 2 +8263 3996 245047147 2 +1963 13266 245047148 14 +4513 3619 245047166 4 +5816 7959 245047168 4 +27 7173 245047168 4 +3865 1477 245218108 1 +497 5388 245218108 1 +440 10165 245218108 1 +2403 5388 245218108 1 +4725 10299 245218109 9296 +7982 5239 245232008 13890 +3243 8761 245252071 10 +9186 6243 245252073 3 +626 4210 245252075 32436 +3769 11462 245311958 15528 +1984 9558 245467925 13 +7723 5875 245677371 3 +4644 6262 245708432 18 +3357 7955 245754316 4 +3387 4506 245754316 4 +3100 9824 245754319 7543 +2308 5533 245754319 7543 +7038 3930 245758065 1259 +13070 1846 245758115 4 +735 722 245758115 4 +2015 6533 245758115 4 +7003 8012 245758118 3 +3124 1816 245858089 13 +174 5826 245882556 11 +1170 834 246020748 12 +5841 1683 246038829 2972 +1884 807 246073892 15 +6684 4695 246073894 6 +3797 4344 246124173 4794 +4534 3741 246127190 12341 +8871 3220 246127190 12341 +4369 1668 246128427 9341 +14429 554 246162796 17 +2803 9174 246169489 4 +703 6574 246344367 2998 +464 2658 246344969 98 +223 14450 246366863 4 +5848 2391 246912232 5055 +6089 3422 246967575 7283 +9596 1749 247037663 4 +9148 470 247037663 4 +5441 9134 247037663 4 +1441 6419 247037663 4 +4700 10427 247167371 12 +1832 11444 247436511 13760 +7475 7674 247812198 3 +37 13796 248064578 18193 +6130 1031 248064592 3 +8309 5499 248064592 3 +9010 1798 248064592 3 +5075 2141 248064599 2 +6632 7342 248064600 2 +2950 5900 248064601 3763 +6510 1446 248241077 3 +5224 6751 248294991 8178 +9929 3495 248295933 3 +9125 3378 248295934 4 +1916 4423 248295935 3938 +11382 4062 248298349 15045 +3847 2929 248449921 1 +5092 2486 248449921 1 +2491 6211 248449922 18 +8640 3130 248449922 18 +9097 4819 248449930 7 +3023 9169 248449930 7 +117 4660 248449930 7 +601 13408 248449933 4 +6477 2145 248449933 4 +4397 6035 248449935 2 +1221 9059 248449935 2 +822 7810 248806675 9 +4612 7743 248806675 9 +2902 7236 248806677 2 +1681 8386 248908345 10014 +6021 1923 248981441 27496 +3291 1469 248993236 130 +7804 3018 248993245 11317 +7612 3646 248998797 4495 +3447 8816 249012683 7 +8157 5459 249052497 556 +681 12033 249052618 11 +11568 2264 249052618 11 +1954 2402 249052618 11 +5690 8366 249052622 77 +9253 544 249175103 15 +400 504 249175103 15 +1300 11515 249175128 16499 +1022 4038 249175128 16499 +2095 2020 249176408 5 +7608 2515 249176408 5 +11828 2839 249176408 5 +3813 5759 249176410 21714 +1863 865 249183321 18 +6444 1420 249183324 15 +6659 7664 249194698 4 +4513 7889 249194698 4 +3068 11001 249327539 4 +815 12207 249327541 16064 +4465 5895 249342088 3005 +6744 6127 249342088 3005 +2971 10384 249439309 4 +4448 7288 249439310 2 +6785 6729 249439311 12023 +1218 11449 249449158 1 +3254 2722 249449158 1 +3068 8932 249449159 1 +8385 4397 249449159 1 +4273 4452 249449159 1 +6660 7662 249488320 24827 +30 2296 249522846 3 +3242 2144 249577063 7 +723 8115 249577068 3 +1377 6359 249577069 7927 +1436 420 249579459 15 +3628 298 249579463 15 +3340 9536 249579465 19 +710 11010 249579472 7109 +2898 6883 249890323 15 +9711 4251 250053856 34696 +4262 3007 250133529 1 +3846 7010 250133529 1 +13984 1517 250227183 6 +6185 895 250275741 10942 +2652 9249 250275741 10942 +7774 2858 250276194 13914 +949 13721 250366155 10350 +10683 4772 250376638 3 +3519 2338 250527218 110 +12648 229 250527228 11 +12790 1747 250532717 17609 +7362 3037 250556140 19 +9599 2103 250556140 19 +388 4772 250556140 19 +6547 8566 250556147 1143 +1558 3262 250556147 1143 +364 12514 250560702 1 +10990 1144 250560703 4 +3124 5514 250560706 19 +3615 6716 250723202 3 +3855 5747 250788643 18965 +2131 10071 250792489 7 +3203 8352 250792490 6 +5961 7689 250850279 3 +5040 9068 250877904 4 +7865 7043 250904602 3 +12543 437 250904604 17 +3518 9951 250904606 24133 +8735 4900 250909348 5 +9975 4821 251012172 15949 +5375 5547 251012312 3 +13334 623 251012314 243 +5265 1359 251012834 16 +690 3097 251018299 2 +10411 4895 251018299 2 +5991 6634 251018301 1 +7432 7108 251018301 1 +4161 1860 251018301 1 +5074 4513 251018301 1 +5368 5174 251018301 1 +6751 5174 251018301 1 +4576 3247 251210103 5 +7416 539 251338126 15943 +6908 5836 251358226 342 +4433 5672 251358503 1 +1608 7034 251358503 1 +2897 7383 251433091 13 +1657 6973 251433097 16998 +7003 6288 251442165 12 +2065 6631 251655806 1777 +6002 336 251655806 1777 +8874 961 251655806 1777 +1537 3960 251656453 2 +1835 666 251656454 16 +6234 3276 251656462 3 +2858 6831 251749805 15 +12197 3033 252000654 15995 +6598 923 252003647 11696 +7094 4706 252008034 1348 +7174 1875 252008255 2 +9566 3882 252008255 2 +6869 2156 252023200 14 +3672 5547 252023207 8 +3819 6654 252152735 4849 +281 1513 252340925 15158 +3188 8484 252356186 8 +8296 5515 252549130 8493 +803 4325 252549130 8493 +1338 265 252552538 10927 +9980 71 252552538 10927 +2248 7304 252559526 5 +10531 991 252559528 5612 +4137 4085 252559528 5612 +6182 5647 252578982 10 +334 4541 252578982 10 +86 7548 252578983 110 +7727 1975 252579102 3 +4098 171 252579103 12670 +3640 9707 252580901 28361 +4596 4484 252599429 2 +2891 4350 252603495 8497 +3397 2514 252606841 2 +1582 12023 252612643 13 +756 13261 253041560 1907 +197 1012 253042701 728 +2015 4820 253072910 3 +5046 3364 253203664 18221 +10179 1017 253211445 3 +2412 1924 253211445 3 +1931 11382 253211446 4 +2076 4171 253211446 4 +60 2865 253211447 5 +6848 1281 253211449 12 +14010 122 253211464 2 +855 14339 253211464 2 +1266 10583 253211465 3 +541 4970 253211465 3 +2967 215 253308509 3 +3062 2801 253308509 3 +8345 3467 253308512 3172 +6855 7945 253388853 2430 +1444 71 253669600 5 +2354 2085 253669600 5 +1851 6765 253669600 5 +7374 4489 253722103 2 +11408 3479 253722103 2 +2882 8040 253722103 2 +4340 3116 253722103 2 +5646 3548 253722103 2 +8256 2473 253722103 2 +6201 5822 253722105 43041 +11365 3686 253738746 18 +1383 12214 253738750 2 +1063 3339 253738750 2 +6903 4208 253738751 11 +12940 822 253791237 2 +4764 257 253809679 19 +8838 6446 253819486 18 +9852 3331 253819486 18 +2343 6300 253819493 2840 +5459 5521 253821741 19 +2845 449 253939234 2743 +8471 4048 253940995 15302 +499 1038 254090495 4 +2223 13116 254090495 4 +2172 11976 254231155 3 +5633 9810 254231156 5640 +758 10009 254312240 3 +8692 4110 254312241 2 +5562 1051 254312243 4 +8954 1409 254312243 4 +10244 2251 254312243 4 +5185 1944 254312244 4 +6616 2640 254312246 35536 +3602 2196 254312246 35536 +6127 2138 254377005 3 +1240 12040 254377006 4 +155 3513 254377006 4 +2955 5414 254434765 2 +5595 6583 254434765 2 +3490 1191 254434765 2 +10023 3277 254434765 2 +142 145 254467730 15321 +3140 400 254482672 14 +594 11108 254482675 13 +10149 4779 254482690 12 +297 6496 254482695 21163 +11574 1778 254608528 17299 +5616 6494 254643615 2 +9729 3249 254643615 2 +2453 2475 254700933 17 +2866 11958 254744821 8074 +2984 3652 254750262 1 +3495 351 254750263 12037 +587 10846 254750636 53 +10695 1248 254750636 53 +13138 773 254750651 11 +12343 468 254750653 15 +7065 3749 254750655 2 +4249 6087 254790845 4 +2580 12795 254790846 11 +4049 7897 254790848 107 +2829 12075 254790862 1195 +1455 400 254791708 3 +9055 181 254791708 3 +65 9014 254791710 16 +2524 5972 254791713 5973 +3996 5768 254791713 5973 +7598 7577 254793526 15481 +3074 10155 254802751 98 +7779 5398 254802751 98 +7670 2219 254979750 15404 +2770 10089 255058175 9 +8189 2500 255235180 7 +4177 9877 255235191 2 +2333 11714 255235192 3 +10655 1952 255235195 682 +201 13468 255235249 3 +11195 401 255747014 105 +8513 3655 255747470 18269 +2846 5613 255783296 18077 +11243 116 255871231 2433 +3526 826 255871509 20 +8286 6955 255871513 4 +672 7557 255871515 5000 +3244 6026 255871822 15124 +8490 1101 255885153 2 +8896 825 255885154 4 +11352 3086 255902111 2 +8419 3662 255902112 2 +1465 3802 255902112 2 +3923 8277 255989312 4 +2541 9448 256202008 4 +3943 6105 256202008 4 +9866 2148 256202010 9963 +2865 8371 256202010 9963 +4338 4802 256204106 4 +2502 5460 256244280 1 +11886 86 256244280 1 +5159 5462 256244280 1 +7639 5554 256244281 9859 +1140 7675 256249217 1 +6843 7878 256249217 1 +1144 5167 256467155 2 +8116 1084 256467157 4 +5636 5199 256467159 13990 +2127 1421 256467159 13990 +14691 214 256469525 16824 +2767 2879 256483249 9 +250 14367 256483251 3 +11701 1924 256928326 1 +2154 4711 256928326 1 +10579 2882 257074002 10879 +3963 3069 257092566 10658 +2870 3549 257105823 5368 +2240 7912 257105841 7 +3914 4885 257105841 7 +7368 2721 257205175 10367 +12718 2847 257250298 2 +7962 3176 257308797 2 +9339 1903 257358639 36896 +8246 3629 257358639 36896 +3416 7185 257371091 7 +3508 2789 257453489 15 +1379 4643 257453492 128 +4643 3280 257453509 12843 +9760 1010 257551361 58 +7425 4202 257551371 101 +4447 6220 257551381 75 +10395 100 257551437 19 +10422 4424 257551437 19 +4542 8801 257551442 20 +1371 12389 257728906 21025 +3785 3164 257728906 21025 +8360 6071 257849044 4 +10171 5162 257849046 10158 +799 4028 257977940 5 +6001 5939 257977940 5 +3637 5586 257977940 5 +5816 4916 258104089 4 +2704 4647 258104090 24984 +1066 11371 258107672 2 +1442 11424 258174212 102 +856 3699 258174229 13388 +2891 9786 258288911 5 +1215 5767 258288911 5 +1046 606 258453245 4 +610 1007 258453247 4 +9591 5367 258453247 4 +9156 1143 258453250 7 +10722 2397 258480727 18 +6180 505 258480733 12364 +7531 3205 258482237 1 +13842 1062 258482237 1 +2510 4301 258495646 6 +7989 845 258550942 1 +1451 9334 258550943 15 +8837 2429 258678407 441 +4359 285 258757077 6 +6100 2323 258757077 6 +663 6954 258757080 3 +6483 3812 258998119 18 +1936 1538 258998121 30888 +3475 3387 259006496 19 +6549 539 259072335 73 +8913 1544 259093221 11 +1571 2607 259093228 10 +1008 12786 259093244 172 +8229 3619 259185490 5672 +12471 1935 259190048 24005 +8840 5268 259263684 13767 +1301 8455 259269392 18385 +466 3824 259290674 20438 +10769 3749 259290674 20438 +5774 5963 259300391 3 +7210 483 259460536 4 +378 12687 259460538 23520 +6849 1137 259961575 3 +748 1116 259961577 4 +2858 6385 259961577 4 +2566 6638 259961580 2 +1499 8809 260144405 3 +5077 4298 260184814 2 +4124 7432 260184815 4751 +7021 4229 260186679 4 +3989 9464 260186679 4 +1837 399 260186683 1 +8130 3352 260193490 26688 +598 10523 260197711 14 +13557 2046 260197718 9 +1460 9250 260215640 4 +2180 11216 260277944 2 +7483 4104 260277945 5 +4807 865 260277945 5 +4574 2400 260277946 7569 +7638 2249 260281934 10 +5315 5005 260360245 13 +13043 765 260360247 40937 +3628 11757 260360247 40937 +5112 9142 260362739 4 +4625 6304 260362742 1956 +3167 5566 260363521 4 +14536 461 260363525 14 +4799 10761 260372616 10 +2490 4365 260372620 68 +2325 10096 260373809 22158 +14537 251 260384541 2 +2336 11076 260384542 19557 +1468 4477 260384542 19557 +5234 7795 260393584 5 +1046 8194 260393589 3 +12 1024 260393589 3 +10475 2258 260393589 3 +3883 4605 260456350 2 +91 6775 260456351 6 +5754 2800 260456355 18 +5242 4437 260550937 15 +5741 9304 260550937 15 +9229 6049 260550945 17 +4411 6538 260550949 26991 +6927 4527 260764684 8980 +7233 7142 260767999 5 +633 5018 260768000 38564 +7658 6717 260768964 3842 +13744 895 260963093 8752 +1220 13500 260967180 463 +1784 3468 261133535 10 +10820 224 261133545 18364 +7257 7053 261140855 2289 +1415 8500 261140855 2289 +2496 4373 261198717 17 +11537 2734 261198720 19 +9227 4849 261272347 4 +1348 8264 261272348 3 +6415 7248 261272350 4 +6016 3887 261272351 1 +10081 26 261272351 1 +4503 6462 261272351 1 +7571 2733 261305620 97 +269 14828 261382109 219 +2953 2135 261382203 308 +2153 6624 261462782 681 +7397 2623 261462782 681 +1243 2106 261462874 3 +2194 12676 261462874 3 +2667 1926 261462874 3 +2938 8870 261462875 27991 +7771 5936 261462875 27991 +8240 557 261491364 16 +5662 3727 261491364 16 +3631 6852 261491365 16278 +2878 8701 261491365 16278 +4917 5678 261491365 16278 +10863 465 261551607 5 +5307 9788 261566767 7821 +1251 900 261578018 16 +923 3006 261588701 16 +6787 3591 261588701 16 +1748 4478 261597043 8 +1657 1919 261597045 10 +4060 8538 261597048 20680 +1772 8696 261838349 1 +1823 3167 261838349 1 +8848 1872 261838349 1 +1763 1725 261838349 1 +5710 3582 261838349 1 +2488 5244 261887406 4049 +5634 6831 261887637 173 +2703 8261 261887637 173 +1415 6542 261999299 8270 +3396 431 262006929 1112 +6230 355 262006929 1112 +7214 5035 262006929 1112 +10863 217 262006929 1112 +582 11345 262007523 4 +8369 6918 262007524 4 +6397 8476 262027890 3 +2931 4954 262027891 13 +1369 1108 262027899 1 +6353 7939 262027900 4 +10381 647 262027901 11 +10475 3892 262027905 236 +2217 12770 262027912 17 +1794 12368 262027921 12 +921 52 262428931 4799 +2097 6048 262430496 2668 +9864 4211 262612593 4 +1661 2407 262612594 2 +1468 2510 262655677 7 +1558 1426 262655678 107 +3505 10849 262655721 2 +14034 477 262794038 4 +5613 3697 262794038 4 +768 10164 262862418 1 +852 5116 263228035 7270 +12345 1312 263232002 11 +108 2582 263232003 16 +4781 9600 263232013 20 +9066 3029 263232013 20 +9441 2467 263258962 4 +10977 1136 263258964 13 +1672 3118 263294466 3 +4342 5153 263294466 3 +5179 2472 263353501 15802 +9786 418 263377911 3 +5008 1956 263377911 3 +2274 7665 263377911 3 +6724 7578 263377911 3 +1486 2466 263529744 4 +4603 5822 263529744 4 +12769 2231 263529747 1 +5729 8215 263613493 4 +6703 1854 263796652 3 +2427 4558 263796652 3 +653 1327 263796652 3 +3165 9276 263828991 23551 +4193 6929 263830627 2 +2814 8624 263830627 2 +1704 6929 263830627 2 +4733 3129 263830628 2 +1143 9510 263830629 3 +7105 6921 263830630 3 +8046 778 263863237 22 +3415 10810 263863237 22 +9353 5861 263863248 8 +5203 82 263863249 16 +10169 2047 263863249 16 +10021 513 263863263 12 +791 6079 263863264 1 +6413 4350 263863264 1 +943 2722 263863264 1 +2252 3533 263863264 1 +3059 2324 263863264 1 +6343 8826 263870682 8 +6336 3649 263870682 8 +381 5035 263870682 8 +1908 1685 263870682 8 +2004 7469 263929139 5929 +7140 7183 264001775 6123 +11184 291 264026858 5 +5152 6516 264026858 5 +2834 11572 264032771 21222 +1371 3981 264032771 21222 +8106 3292 264046569 5462 +10720 411 264054888 1695 +1302 2556 264054888 1695 +6581 5146 264087494 5 +9896 1317 264087496 18 +7123 8462 264121036 2 +11894 2127 264188006 18 +1164 10274 264188014 8188 +444 1272 264246726 13 +2357 2381 264246726 13 +3299 6488 264304748 18 +1168 8059 264304757 1 +14287 1224 264585522 2982 +472 7489 264586894 13 +5198 3788 264704162 4 +1987 142 264752219 15352 +3168 11472 264765507 1010 +5616 1731 264794868 8181 +2717 1556 264860824 1 +295 1386 264860824 1 +8026 7598 264860824 1 +10825 2222 264966907 1 +3566 2258 264966907 1 +2592 9135 265029541 4 +9451 1602 265029544 1771 +5069 1378 265029544 1771 +588 14885 265030566 9936 +10389 2285 265031924 9230 +7750 1814 265098972 16 +11078 2945 265151882 17 +509 13173 265157211 502 +3388 4939 265157453 2 +719 9187 265157453 2 +1528 1611 265297048 5 +3627 2077 265297048 5 +237 8628 265313976 8639 +2556 1123 265573281 41119 +202 12607 265589231 4 +44 2946 265589231 4 +5909 1892 265589232 21163 +6066 6630 265589232 21163 +7154 1647 265591695 7996 +7987 3525 265633636 9 +2395 11879 265677742 117 +10060 3408 265819330 34903 +11942 740 265932363 1 +5525 8670 265932364 7 +4173 6883 265932364 7 +3182 10900 265932368 883 +11314 1971 265932892 5 +6809 6705 265964703 4 +10413 5125 265964705 10 +4041 9056 265964706 4606 +1614 13488 265967666 3 +1257 3651 265967668 3448 +6020 8214 265968696 5566 +10521 4153 265970400 15 +3771 1421 266059153 2 +6620 4783 266059153 2 +4315 7174 266192034 2 +6815 4652 266379340 5 +5275 7674 266379340 5 +2970 7252 266607619 15 +1997 3214 266607619 15 +3621 2594 266607621 27299 +8500 1266 266614104 8480 +632 8602 266618527 918 +7877 6385 266634361 17 +9313 4809 266634363 34 +6381 2959 266676596 18429 +7582 379 266688164 8600 +1226 13973 266691201 1 +4848 1580 266691201 1 +2916 7500 266691202 5 +6641 3225 266944300 12927 +2197 8740 266954612 4 +170 13006 266973032 8 +14829 72 266973038 3974 +7269 7445 266975354 4 +10165 3904 266975354 4 +4628 1450 267121793 3 +1203 832 267121793 3 +4221 8134 267121795 14 +9144 4384 267358197 11391 +2459 9137 267380389 1 +6549 5151 267380389 1 +14942 233 267380389 1 +316 6079 267380389 1 +2780 3049 267380389 1 +2666 8059 267448228 26795 +6134 3965 267448228 26795 +715 9357 267455162 2 +3766 2587 267455162 2 +3307 2861 267455163 4593 +2159 270 267455163 4593 +4458 3448 267461727 4 +9438 1608 267461727 4 +3585 8387 267461729 24372 +4927 2498 267477767 11570 +11168 2362 267477767 11570 +8226 5007 267558623 4 +4799 79 267558623 4 +2265 11353 267558625 5 +6328 6330 267558630 32 +3709 3194 267593475 19 +6466 3573 267593479 8664 +356 13300 267687315 4 +338 2253 267687315 4 +3128 3725 267687320 20693 +6305 8896 267780371 13 +1397 11111 267934000 630 +1261 543 267934000 630 +6188 209 267934075 5108 +5742 5191 267939266 11 +8272 6421 267939266 11 +4876 5917 267939266 11 +145 3897 267939268 345 +7176 7354 267939489 2 +90 1053 267939490 67 +2229 3418 267939505 13 +3156 6743 267939515 16 +9149 1879 267939533 20291 +2310 194 267993755 19 +11776 1563 267993767 1 +12221 3007 267993767 1 +5057 9823 267993767 1 +1053 9545 268002040 2 +8320 1462 268002042 16 +2841 4870 268033496 17 +11017 3799 268033504 35369 +7347 5400 268185129 20818 +14017 122 268187379 13 +5697 123 268189596 3 +6734 5285 268189598 6 +1494 4988 268189599 23176 +7049 6421 268189599 23176 +464 11346 268196427 16 +2347 3815 268196447 14169 +3703 1846 268196447 14169 +7158 6205 268196447 14169 +1625 13169 268206056 16979 +808 8268 268385206 3 +170 7285 268385206 3 +7212 5521 268385206 3 +4437 3786 268599151 70 +2061 3259 268684701 6886 +569 5547 268687673 1 +1563 1016 268687673 1 +5034 4938 268702977 9649 +7709 4153 268803818 27255 +8856 6574 268822246 34634 +6012 3114 268834691 202 +3438 11074 268834783 22044 +7206 5669 268843161 16 +3267 10060 268843167 19 +12828 2005 268929962 52 +15347 20 268929962 52 +2483 538 268929997 1 +1219 9338 268929997 1 +1215 10265 269245382 14 +2920 7082 269245389 68 +1051 5044 269245462 44857 +6169 4983 269265935 11 +5770 5237 269265943 72 +9965 1511 269392258 5 +542 30 269392258 5 +123 2958 269392258 5 +2104 10920 269392263 107 +3084 11380 269392276 1614 +8631 4524 269394193 3 +1747 6276 269519604 4058 +1895 12171 269526431 13 +3596 2398 269526432 12 +9208 3921 269526438 8 +1177 8927 269526439 13 +2683 7955 269626948 13 +10441 4644 269626953 3 +2159 6081 269626954 24350 +2864 4292 269626954 24350 +3119 8667 269795763 3 +4371 7998 269795767 5 +2465 6522 269795767 5 +3815 3025 269795767 5 +7428 5035 269795767 5 +4266 5555 269795767 5 +425 10490 269899340 11 +550 4990 269899340 11 +7658 1055 269899342 30981 +9671 1113 269899342 30981 +3388 11242 269940451 3 +6497 2201 269946799 16 +7328 2885 269946804 3 +2783 25 269983118 1063 +1178 12099 269983440 4 +8347 4836 269983441 3 +9866 4099 269983442 5 +5112 2727 269983443 572 +7240 7152 269983751 5 +770 12173 269983754 14020 +10221 1533 269998487 5 +10 5886 269998487 5 +2142 349 269998487 5 +10451 1206 270002758 3487 +2999 11853 270008656 5 +2395 12810 270009007 7697 +7222 2809 270010400 1855 +6758 6760 270013890 13 +97 5905 270214095 4 +5850 2873 270267139 5253 +4789 2031 270335172 9 +2520 9485 270335183 2 +5758 4540 270335183 2 +6060 6068 270335183 2 +3050 7575 270335184 3 +889 6117 270335186 27580 +515 3717 270345557 9 +110 12224 270368794 12178 +8874 6410 270815707 13472 +12853 1204 270819245 4472 +5135 2626 270820996 1217 +10440 2705 270820996 1217 +6032 3334 270821228 4 +1135 12454 270898850 1092 +7414 259 270899054 31063 +11382 4146 270906800 14844 +8999 1819 270953427 3 +1608 4643 270983612 2 +1152 6384 270983612 2 +4889 1176 270983612 2 +460 133 271012884 1 +9044 1600 271012884 1 +428 10895 271041774 5 +8625 5960 271041776 11384 +7097 5078 271042666 4 +4324 5988 271042666 4 +3688 10699 271068241 3 +1277 4854 271068241 3 +2337 402 271068244 3 +1218 3874 271068244 3 +3616 10404 271068244 3 +5360 6989 271274377 3 +3559 5784 271417638 5 +6474 3759 271417643 26 +6232 2998 271417651 15 +5937 3917 271461874 2106 +9681 1150 271589223 9890 +3562 10185 271596187 6496 +2332 4353 271597689 204 +3067 9720 271597757 4 +5303 9996 271970837 106 +2705 11753 271970852 1 +8072 3637 272309872 3 +4407 5507 272309873 1 +1474 10046 272309873 1 +5808 318 272309874 36318 +10663 926 272318272 3 +11959 1661 272318273 13 +7207 618 272318278 17365 +4544 1434 272329546 1109 +7958 2316 272356294 29914 +6356 3535 272444991 12 +272 10955 272445000 2 +3166 5615 272592839 2 +5813 3128 272592839 2 +11940 2704 272592839 2 +1564 9367 272660565 4 +3866 7132 272660566 10251 +12027 2715 272660566 10251 +7903 4945 272660566 10251 +9686 1378 272660580 16134 +1168 10282 272664661 5 +3977 10511 272664667 731 +3237 2216 272735437 3 +5380 4658 272775767 15243 +2713 1512 272775767 15243 +1742 3199 272776496 3 +8603 2530 272776499 1 +5178 4402 272776499 1 +2639 8996 272776500 3339 +671 6200 272776989 12 +2712 9103 272776995 3 +609 1580 272776995 3 +6453 566 272776997 7674 +9625 5030 272795650 3 +498 6745 272795650 3 +3572 4327 272795651 2 +5871 5109 272964950 4 +1526 9914 272964952 20218 +8655 6084 272965553 2 +3266 6332 272965554 15 +5940 9025 273125655 3 +491 3970 273145997 6 +2240 9535 273153099 14087 +9529 4665 273499409 6 +2134 5347 273596484 2 +4855 4896 273596485 12 +10757 4787 273596492 3249 +8986 1338 273599108 12 +12608 2751 273611209 74 +6387 2909 273611221 14307 +1311 2689 273612828 17 +8425 2070 273612835 2 +1990 474 273612835 2 +8319 5993 273612835 2 +5672 6246 273612836 5 +8738 6879 273612838 13 +6208 5442 273612841 13 +11765 2922 273612843 16 +1773 2885 273715980 11506 +8134 3789 273719774 2 +8230 4085 273763980 4100 +6511 7097 273808758 10772 +3757 10866 274044644 14107 +1392 5950 274046560 10 +1638 9477 274046570 14563 +278 9842 274059289 5 +1840 1993 274059289 5 +6750 504 274059289 5 +2535 9954 274059290 12551 +614 10854 274068844 4 +8792 426 274068845 16 +1867 5983 274068845 16 +12146 3321 274130084 3 +722 3682 274130084 3 +4070 5648 274133514 16201 +8243 895 274136801 8433 +7337 4246 274136907 11 +9495 988 274136912 4 +3236 3262 274136912 4 +870 211 274136913 12784 +3068 7968 274147578 1 +12088 3349 274267279 2 +8445 3205 274267279 2 +1624 8419 274267279 2 +10179 3183 274573666 3 +5248 9320 274573666 3 +9111 5035 274691220 5 +11308 623 274691220 5 +6295 4495 274691225 21189 +11495 2354 274719658 4 +1436 12225 274719658 4 +8569 1989 274719660 2 +4696 10577 274719661 1 +11287 1302 274719661 1 +112 12033 274719662 4 +7929 3520 274719662 4 +5291 6476 274719663 122 +2093 134 274719683 8026 +2042 315 274728139 5 +1095 5225 274729739 4 +872 11632 274729745 3 +4213 5683 274729748 9876 +4973 7267 274736677 101 +6189 5753 274736734 13 +6996 4888 274934697 4872 +19 9817 274936670 5 +4357 2173 274936673 69 +6906 2811 274936699 5 +1523 8244 274947185 3783 +11779 1118 274951085 2 +235 6768 274951086 4 +3764 8167 274951086 4 +2141 527 274974869 2 +2620 8147 274974870 15700 +6073 4490 275121649 7744 +3376 7453 275121649 7744 +9737 5550 275121649 7744 +3822 11289 275121828 12 +452 1772 275329814 9426 +7475 6409 275339477 13 +7010 6543 275339479 18309 +10303 664 275367038 32550 +1564 7107 275395118 19 +6658 4032 275395132 7 +2626 2005 275395132 7 +9504 5547 275395133 4 +3743 3737 275568282 1 +3719 7946 275568282 1 +2096 7920 275568283 1 +352 5349 275568284 31708 +14073 1129 275584832 4 +1837 10178 275584832 4 +3457 10022 275584837 4 +2342 2191 275584837 4 +1828 12200 275598896 15650 +4876 10413 275599033 16 +6169 1959 275776811 9 +1724 8835 275788566 2 +6022 4428 275788566 2 +5853 6391 275788566 2 +9602 211 275788566 2 +10105 1967 275788567 16 +6485 3530 275788567 16 +5918 2126 275788567 16 +2469 7155 275788570 13 +445 6478 275788574 8490 +3577 3925 275788574 8490 +8112 3899 275903571 3 +2489 9657 275903571 3 +10617 3645 275903575 15580 +9004 5235 276043089 3 +3986 5313 276043089 3 +2399 5218 276206591 9148 +4424 8053 276245207 10 +6643 1722 276245211 82 +294 11812 276245211 82 +550 13813 276245285 16855 +3193 11603 276245342 33636 +7265 61 276245342 33636 +4889 10291 276271034 10552 +1863 2623 276505662 4 +6922 4733 276505663 1 +4170 4680 276505663 1 +3390 8068 276505663 1 +7576 77 276505664 4116 +8033 4327 276508058 5 +6002 4320 276508059 3777 +345 14188 276509002 9440 +5106 9345 276509801 969 +4687 764 276509801 969 +12623 811 276509801 969 +2935 6495 276522277 3 +4718 2175 276522277 3 +9210 4375 276522279 1 +6450 1838 276522279 1 +388 3639 276542943 16558 +454 8147 276542943 16558 +6619 354 276545548 22083 +10072 904 276550428 10 +1061 3998 276550432 19 +356 3473 276550433 4 +6212 4367 276672371 1 +7696 420 276699915 2 +11097 1805 276699916 3 +4119 2131 276699917 3 +5710 99 276699919 31 +4474 10790 276699920 6 +559 2060 277012804 1 +6411 5000 277086372 35721 +2701 5833 277086372 35721 +11154 3292 277103045 20590 +614 4822 277103045 20590 +3361 7850 277107979 3613 +12526 1099 277109202 3 +1501 8226 277109202 3 +8402 6817 277109204 4 +1882 2186 277109205 2 +3030 7390 277109206 140 +3454 5631 277138806 15 +12458 1147 277138818 2 +3316 5597 277138819 13743 +9637 1143 277140163 4 +11456 1856 277142105 29135 +8294 2601 277148034 14 +323 2977 277148034 14 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=8795,vsize=15628,psize=15553,req_len=6323).predictor.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=8795,vsize=15628,psize=15553,req_len=6323).predictor.best" new file mode 100644 index 0000000000000000000000000000000000000000..3a6dcfb05fe4850e81e01cb2cadaa0a06fc40528 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=8795,vsize=15628,psize=15553,req_len=6323).predictor.best" @@ -0,0 +1 @@ +277189358 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=8795,vsize=15628,psize=15553,req_len=6323).prophet.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=8795,vsize=15628,psize=15553,req_len=6323).prophet.best" new file mode 100644 index 0000000000000000000000000000000000000000..3a6dcfb05fe4850e81e01cb2cadaa0a06fc40528 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=8795,vsize=15628,psize=15553,req_len=6323).prophet.best" @@ -0,0 +1 @@ +277189358 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=8795,vsize=15628,psize=15553,req_len=6323).simple.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=8795,vsize=15628,psize=15553,req_len=6323).simple.best" new file mode 100644 index 0000000000000000000000000000000000000000..3a6dcfb05fe4850e81e01cb2cadaa0a06fc40528 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov+,seed=8795,vsize=15628,psize=15553,req_len=6323).simple.best" @@ -0,0 +1 @@ +277189358 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov,seed=27046,vsize=42053,psize=23668,req_len=8688).in" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov,seed=27046,vsize=42053,psize=23668,req_len=8688).in" new file mode 100644 index 0000000000000000000000000000000000000000..cafed81238f979edd7869a7127a448df041ab8dd --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov,seed=27046,vsize=42053,psize=23668,req_len=8688).in" @@ -0,0 +1,8689 @@ +42053 23668 8688 +21124 20811 1 4 +8372 5159 3 4 +7276 9503 4 4 +14874 15200 6 5 +37618 2272 9 36 +7802 12758 19 4 +18435 5032 19 4 +9772 8003 19 4 +390 4347 26 33 +4804 4283 38 4 +19906 601 38 4 +28369 9636 57 2 +27599 12821 59 23 +25842 13956 75 936 +17512 6234 588 1 +16874 16214 589 14 +23734 3073 592 2 +33408 4545 592 2 +4282 1469 594 5 +18455 3386 595 49 +13607 16531 617 3 +36840 4167 619 6 +29903 10220 626 3 +22827 1496 627 9 +18689 19564 630 5 +24638 16374 631 2 +5444 22212 632 1 +2917 23541 633 3 +20022 127 633 3 +8180 18478 635 4 +31497 6640 638 1 +9385 4114 638 1 +24037 16499 643 2 +3973 22368 647 6 +7066 12260 648 3 +21064 8642 651 2 +1569 207 654 187 +17046 22374 796 2 +19756 17494 798 4 +6361 13480 800 3 +21135 3259 801 8 +12463 5100 808 1 +17002 18274 808 1 +4539 5935 809 5 +8703 1630 810 2 +15336 15179 812 2 +12364 8489 812 2 +16945 20736 815 3 +14156 18384 818 5 +1452 14244 822 6 +21226 4189 832 4 +7824 21766 833 4 +10632 7963 835 2 +7239 20234 836 7 +765 16808 840 9 +701 2137 848 4 +29614 3669 852 6 +11572 6371 857 2 +397 22442 858 10 +8145 7097 864 6 +5041 6666 865 3 +1532 11715 866 5 +12971 11379 872 4 +1866 5698 872 4 +3453 6591 872 4 +8996 7708 874 4 +12755 15960 874 4 +2108 14695 876 4 +25398 14798 881 6 +13987 11238 885 8 +19200 5477 886 3 +24462 8571 888 2 +548 6708 890 40 +21126 3115 896 5 +35425 1399 898 5 +18847 14068 900 6 +3461 12580 910 3 +27988 5680 913 4 +11158 13162 914 9 +21794 4188 918 9 +3165 5340 930 7 +126 2335 930 7 +10296 4859 931 5 +27587 4524 935 1 +17388 7337 935 1 +29260 1425 936 3 +20814 20806 936 3 +26958 2240 937 4 +9838 10033 937 4 +9967 9530 939 3 +24739 3966 942 2 +18600 8333 944 4 +14650 20128 947 2 +15950 7829 949 3 +28240 1954 949 3 +15412 19366 952 2 +13057 18051 953 3 +12684 15122 954 3 +15087 14160 955 5 +3721 6014 957 5 +16575 12769 964 4 +18185 4154 966 2 +16266 19514 966 2 +3180 14503 967 9 +30676 4004 972 3 +19261 13320 973 2 +20202 13398 974 9 +16751 22583 978 3 +31899 8418 982 2 +9097 11669 982 2 +16250 18362 983 4 +4443 7821 986 1242 +1 19189 1431 7 +445 12325 1437 6 +6048 20114 1438 4 +8167 18756 1441 2 +9098 3125 1442 5 +3928 18987 1443 1 +16879 16823 1444 9 +21520 1348 1445 48 +21915 11164 1460 5 +6947 23346 1463 3 +7385 322 1463 3 +32286 322 1463 3 +22091 7847 1467 4 +1157 4635 1468 4 +5078 4993 1471 5 +6961 14005 1473 1 +12337 1360 1474 3 +3209 5969 1474 3 +36016 1275 1474 3 +37188 2662 2128 3 +33516 2777 2128 3 +24019 924 2129 2 +7140 12183 2130 8 +22620 15104 2134 3 +11941 14545 2135 33 +1055 9123 2135 33 +21394 9068 2137 4 +14953 2629 2139 2 +24193 5107 2140 7 +10656 22641 2143 17 +25931 15111 2150 2 +6260 18136 2152 2 +3757 5532 2152 2 +3270 9940 2155 6 +632 5508 2164 1247 +31537 3063 2768 9 +13906 12648 2769 3 +16404 23261 2770 7 +23082 6264 2773 3 +14407 8992 2773 3 +16638 2755 2774 2 +2331 7520 2777 9 +19171 2998 2778 5 +27368 5661 2780 74 +12279 1934 2804 2 +3929 17756 2805 4 +38825 1603 2806 8 +24362 7935 2808 10 +16233 3805 2808 10 +559 7433 2813 4 +9510 2218 2815 2 +10103 17893 2815 2 +10570 9101 2817 5 +15452 5788 2822 7 +12528 20515 2829 4 +13748 3153 2829 4 +1144 10140 2836 4 +15960 15472 2842 8 +5167 1270 2846 32 +7705 8603 2846 32 +17465 19612 2847 2 +11670 20250 2848 10 +18684 6524 2851 2 +19524 407 2852 3 +21392 3376 2854 3 +27709 11381 2856 4 +14065 18840 2859 9 +25396 12657 2867 2 +25665 8517 2868 3 +16763 2590 2869 2 +35334 5616 2870 6 +10914 7504 2872 6 +9676 20554 2874 4 +1693 12085 2876 4 +12786 2096 2878 5 +19669 1804 2879 2 +20729 9118 2879 2 +20152 16134 2887 3 +14290 7534 2887 3 +8051 2450 2900 215 +10301 1208 2942 4 +9478 11730 2944 9 +34451 906 2944 9 +10355 12887 2945 10 +12083 8888 2945 10 +19577 4546 2953 3 +10073 9477 2956 2 +30654 7436 2958 46 +11958 13547 2973 8 +5028 10568 2974 4 +10200 12823 2976 3 +23530 2013 2978 3 +24298 4422 2979 7 +5538 7999 2985 179 +30741 6741 3018 4 +20989 14610 3022 5 +16699 17706 3024 9 +23417 16319 3030 10 +10067 12845 3032 1 +14938 20312 3033 7 +14426 392 3040 6 +24120 11353 3042 123 +39450 751 3118 3 +26524 12690 3119 196 +41421 514 3331 4 +15296 16922 3334 31 +103 11825 3340 5 +30078 6342 3343 4 +25774 10487 3351 2 +4220 19319 3355 7 +17469 17506 3363 3 +25485 12197 3364 1 +12156 10244 3364 1 +2637 17192 3366 2 +25045 9429 3367 4 +22238 12848 3369 2 +16313 10820 3369 2 +28406 1477 3372 3 +6397 1968 3374 4 +3983 11383 3374 4 +9641 16928 3376 10 +15198 15100 3393 1 +28555 10681 3394 2 +20924 11184 3396 1 +12775 22110 3397 29 +30592 1558 3397 29 +18408 20203 3399 3 +32707 9001 3401 1 +18054 19052 3403 5 +19575 16192 3407 2 +25415 1430 3408 4 +7373 12628 3408 4 +2546 16502 3413 4 +7276 7166 3413 4 +23296 1595 3414 5 +18642 16632 3417 3 +38313 1792 3418 6 +8896 10843 3422 4 +265 9115 3426 3 +20542 1403 3426 3 +7098 9748 3427 5 +8832 635 3427 5 +9134 12988 3498 4 +5838 19570 3502 3 +12918 11904 3503 3 +30304 2846 3506 2 +12246 18703 3506 2 +33132 3514 3508 3 +8364 14928 3511 4 +16351 15114 3515 2 +7838 12599 3518 1 +1625 4302 3518 1 +14671 18715 3519 1 +18053 23319 3520 2 +9587 9156 3521 2 +4951 8372 3521 2 +9903 12740 3522 5 +13514 14555 3524 8 +831 22318 3528 8 +5310 19845 3531 1 +10164 18925 3532 2 +6070 16415 3533 2 +19595 11114 3534 1 +6701 2853 3534 1 +14356 978 3534 1 +20078 8723 3534 1 +17522 14645 3535 2 +16174 9023 3535 2 +20322 12665 3540 260 +15584 19308 3744 1 +22974 4014 3744 1 +13777 16564 3748 3 +37853 3760 3750 2 +14462 16498 3750 2 +8438 7702 3751 8 +11192 8051 3756 2 +35005 2758 3757 36 +14638 3466 3758 47 +8157 7683 3809 5 +22072 3014 3810 3 +32718 112 3810 3 +26113 2591 3814 29 +33806 2708 3817 5 +12700 3190 3822 10 +34575 5744 3823 3 +30543 8135 3825 6 +14593 5691 3828 1 +40641 1261 3829 5 +7625 3191 3832 2 +21145 18552 3832 2 +17275 7069 3833 2 +5950 20399 3835 7 +5837 3459 3838 4 +412 18874 3843 4 +19442 7779 3848 3 +2788 1750 3850 2 +20259 13668 3851 3 +16921 19879 3856 9 +20708 5627 3865 8 +4565 6464 3871 9 +11158 1601 3879 10 +7757 34 3883 4 +7143 17015 3885 5 +18319 23328 3893 3 +2379 340 3893 3 +34679 2229 3894 47 +24366 244 3943 40 +2461 17181 3970 2 +7696 6487 3970 2 +21410 4234 3972 2 +20190 11921 3973 1210 +14446 7433 4176 1 +28626 9275 4177 3 +3502 3845 4178 7 +20002 15056 4180 5 +3587 942 4180 5 +33524 4617 4181 31 +31521 10396 4223 2 +14008 13272 4223 2 +26892 9245 4225 7 +32012 6229 4227 3 +2018 5224 4231 5 +11055 5308 4234 8 +381 6244 4235 213 +21486 2920 4291 2 +8162 22269 4293 2 +8977 21113 4294 5 +3043 4670 4297 10 +16196 17591 4307 3 +19557 15811 4308 2 +9727 15995 4310 8 +33474 4255 4322 3 +8795 14613 4323 4 +6700 6762 4324 5 +24700 9118 4327 8 +17383 15984 4329 8 +5830 2871 4330 3 +6319 10728 4330 3 +33909 5261 4369 1 +1265 8105 4370 3 +4642 23448 4373 43 +22950 897 4382 2 +4282 17804 4382 2 +19133 21018 4384 2 +15183 13710 4385 4 +19108 16179 4387 4 +32769 6806 4390 34 +3680 8338 4396 7 +26753 7122 4396 7 +9461 2785 4397 4 +16179 21293 4398 1 +3717 22406 4399 38 +24323 3248 4408 2 +3709 14248 4408 2 +27491 1641 4409 4 +11863 13886 4411 4 +16376 20874 4416 9 +30519 9975 4419 10 +753 6266 4426 7 +10558 14406 4432 7 +29731 424 4443 7 +16834 16790 4446 8 +2671 19860 4451 2 +20475 3605 4453 738 +20985 18248 4731 5 +9814 23228 4733 4 +17887 7647 4734 7 +1750 8123 4735 2 +21273 14930 4737 3 +22303 15001 4738 5 +25455 10450 4739 1 +27975 2329 4739 1 +15729 822 4740 3 +26805 5121 4741 6 +23212 1184 4743 890 +33524 2994 4941 3 +28022 3111 4942 15 +8725 12736 4960 4 +486 16664 4962 2 +15112 17635 4963 4 +2516 10277 4964 1 +4664 15433 4965 32 +26976 14304 4976 9 +26176 9364 4976 9 +3865 11774 5024 3 +740 10257 5024 3 +9899 17032 5025 3 +8799 6636 5025 3 +2406 15899 5026 4 +21270 4982 5028 3 +28447 101 5028 3 +8656 5236 5031 1 +34551 1335 5032 5 +22255 15363 5033 64 +22929 19099 5074 4 +3527 6559 5076 5 +28019 3776 5080 269 +18211 18053 5190 1 +9815 5615 5190 1 +13332 11430 5196 2 +31286 9439 5197 5 +7058 2939 5198 5 +12086 3846 5203 3 +17943 13365 5205 9 +29928 10615 5207 2 +39516 1678 5208 4 +8124 15607 5210 24 +24087 15253 5215 763 +5532 14959 6063 9 +6485 15859 6064 33 +7335 288 6086 6 +8744 16505 6094 239 +22332 5040 6302 8 +2560 1714 6305 4 +6707 13828 6306 4 +18577 1774 6308 28 +37023 4739 6322 4 +3262 21100 6323 6 +12076 2568 6323 6 +18359 20509 6324 4 +8572 9587 6326 5 +3995 16238 6330 8 +9458 17002 6333 7 +15091 1941 6334 3 +30968 7835 6337 2 +25232 15892 6338 2 +26724 2348 6340 2 +15603 17017 6340 2 +9281 18580 6345 4 +504 4124 6347 7 +32114 9014 6349 1300 +11248 5493 6833 1 +38115 2645 6835 3 +41221 66 6836 182 +5486 16251 6928 3 +4536 15186 6931 3 +4985 8482 6931 3 +29251 11853 6933 4 +16567 12353 6936 4 +26171 15000 6938 6 +5044 297 6942 3 +26290 3990 6947 4 +4463 7050 6947 4 +21809 4127 6960 5 +21840 6058 6962 3 +20601 2121 6962 3 +3802 13825 6983 3 +21176 12614 6984 5 +319 21693 6990 6 +19174 5062 6991 1 +17827 12859 6992 4 +8063 17785 6994 3 +26318 13508 6997 2 +38853 2646 6998 3 +12844 14533 6998 3 +2917 6489 6998 3 +24825 15611 6999 4 +27742 4800 6999 4 +4391 20950 7000 6 +35182 5562 7002 29 +4294 8665 7005 2 +22926 6900 7007 7 +16107 1500 7008 4 +9106 3420 7012 4 +19481 18376 7014 11 +11986 3838 7016 5 +22244 9880 7019 2 +14796 13396 7020 2 +20883 7140 7022 3 +27271 12011 7022 3 +14597 214 7024 4 +12070 19531 7028 38 +33668 3741 7038 2 +13964 6429 7039 4 +12695 420 7039 4 +30570 8870 7042 2 +28336 11577 7043 2 +9891 12091 7043 2 +17309 15491 7045 1 +25834 12906 7046 5 +3079 10628 7049 100 +24272 15786 7121 2 +10879 16815 7122 3 +31130 10478 7124 1 +28479 6960 7124 1 +25118 4639 7125 4 +29259 859 7127 1 +3406 6777 7127 1 +11454 15763 7128 3 +6631 5531 7131 5 +15728 23181 7134 11 +34072 7783 7141 3 +23291 14863 7141 3 +21094 5104 7141 3 +18417 13816 7148 2 +9193 3172 7148 2 +4181 6680 7148 2 +11191 11936 7150 4 +14774 5488 7153 3 +14099 13323 7155 6 +12897 5884 7166 3 +12190 19158 7167 4 +18593 7349 7169 5 +815 14193 7174 3 +35312 765 7175 22 +7108 21898 7183 4 +19764 10925 7184 1 +22785 8353 7185 1 +32924 6383 7185 1 +24774 10564 7191 5 +26551 3521 7192 10 +27523 1296 7198 6 +14594 15315 7204 2 +18264 6111 7207 25 +12272 10323 7227 4 +32706 8732 7228 6 +29225 10584 7231 5 +33576 5140 7237 5 +8248 8300 7241 4 +1940 18422 7242 15 +16630 7641 7260 4 +23187 755 7262 8 +26429 14653 7262 8 +18259 8260 7262 8 +7949 8823 7263 9 +24847 599 7276 2 +25616 9903 7276 2 +12000 21042 7282 5 +17436 21067 7285 4 +5947 1528 7289 4 +14874 1594 7291 4 +33019 7441 7292 8 +22881 1041 7297 6 +2403 723 7298 2 +29004 4829 7298 2 +23354 2560 7303 4 +23507 3329 7304 5 +18470 5473 7307 5 +24991 2673 7314 2 +7760 857 7315 1 +5243 4876 7315 1 +21418 20250 7316 3 +4134 4932 7317 4 +25366 12112 7319 6 +10728 6025 7321 3 +3815 8051 7322 9 +9798 21906 7327 6 +28288 10484 7328 2 +27351 9621 7329 4 +2133 423 7332 3 +17646 17504 7333 1 +17648 18832 7334 5 +3775 15946 7338 148 +2922 17112 7373 1 +2169 4793 7373 1 +29619 9876 7376 1 +13298 13792 7376 1 +16776 23447 7381 7 +26209 4109 7382 3 +27108 976 7382 3 +13861 11964 7382 3 +6373 2702 7382 3 +13983 17426 7384 4 +16938 20458 7387 4 +13786 3708 7393 6 +16432 15308 7395 3 +11337 17907 7396 176 +19370 14733 7604 3 +19747 6211 7605 1 +25294 2020 7605 1 +13803 12062 7608 2 +25751 5191 7609 4 +4686 6881 7610 1 +20191 5081 7610 1 +2376 11706 7610 1 +21033 5202 7612 4 +26384 13466 7614 3 +32560 1457 7615 5 +22183 2479 7615 5 +16176 12749 7618 3 +13103 10919 7618 3 +2961 14503 7620 14 +20441 7337 7635 2 +10023 16331 7635 2 +14418 5913 7635 2 +4483 22173 7642 3 +20670 4996 7643 9 +8228 388 7645 3875 +5509 21957 8453 8 +5778 12046 8456 126 +9298 17207 8573 4 +11457 20925 8576 2 +25092 2743 8576 2 +7128 5193 8581 2 +3013 6075 8583 6 +26771 6352 8585 4 +9127 8259 8586 3 +35947 2754 8586 3 +7379 1926 8590 2 +3188 743 8590 2 +33752 4227 8593 3 +35752 5522 8594 9 +33412 521 8600 5 +1203 5111 8601 3 +24323 11767 8602 4 +6361 13386 8604 3 +30758 2055 8606 39 +29027 10653 8615 3 +15011 13502 8617 26 +11764 3405 8625 3 +5013 15026 8626 3 +11912 10942 8630 1 +24375 16630 8631 4 +15938 863 8633 129 +20780 5291 8826 4 +4822 18397 8828 10 +418 18424 8837 3 +862 3077 8839 6 +28400 5207 8844 4 +24997 16843 8846 46 +14780 19521 8870 2 +11207 4147 8870 2 +1819 1566 8874 40 +16734 15766 8931 7 +16917 8424 8934 3 +9511 13746 8937 3 +21687 9922 8937 3 +19424 22362 8940 1 +23 22819 8941 3 +7550 1073 8942 3 +37556 4164 8944 7 +3180 20770 8946 5 +20395 1113 8953 1 +4967 9596 8953 1 +33438 5977 8959 26 +17482 15978 8992 9 +36208 3589 8993 4 +21724 13636 8996 7 +16834 19310 8999 3 +9195 4198 9001 1227 +2961 14534 9438 3 +38788 2654 9439 3 +2858 5346 9441 5 +535 4688 9444 4 +4390 11381 9445 4 +25358 8533 9445 4 +18943 21399 9446 7 +1030 6397 9447 4 +35541 5781 9449 4 +5707 1851 9450 1 +7089 7359 9451 8 +36371 4030 9459 5 +2452 14270 9462 2 +13272 15242 9463 3 +2601 22133 9464 7 +34010 2238 9469 8 +34093 5728 9475 6 +25281 11105 9476 4 +7528 16292 9478 4 +30802 834 9481 2 +21968 142 9481 2 +11886 7672 9488 2 +33151 1325 9488 2 +28410 8994 9488 2 +30554 9485 9492 5 +21648 9741 9494 2 +35906 1951 9495 7 +19849 309 9497 4 +15115 2581 9498 320 +35429 3250 9517 1 +6731 14298 9518 7 +12108 8878 9521 3 +3868 455 9525 5 +16829 12404 9535 6 +5351 13926 9538 4 +26480 13788 9540 4 +17997 19544 9547 8 +29554 7069 9557 6 +7268 8014 9557 6 +2478 8585 9557 6 +10166 18449 9558 4 +21489 11993 9561 4 +8336 6756 9561 4 +16624 14509 9571 5 +13744 19692 9575 2 +971 3976 9575 2 +1227 11049 9577 1 +33774 3162 9578 36 +11884 23390 9600 4 +4355 2592 9601 4 +5174 12270 9602 2 +1482 7922 9604 10 +16097 7307 9605 5 +27072 4781 9608 2 +10443 5245 9609 4 +4045 11995 9609 4 +22702 11673 9609 4 +3876 23300 9610 27 +12398 17936 9617 1 +26013 5732 9617 1 +35997 4765 9618 2 +23549 3195 9619 10 +21945 11304 9621 5 +22575 2197 9621 5 +20137 13222 9622 3 +20500 14193 9624 3 +74 1838 9625 3 +11264 8663 9629 4 +20562 2074 9634 3 +5108 22566 9635 8 +21128 17292 9638 3 +3965 5614 9639 4 +5409 140 9639 4 +572 14155 9639 4 +2206 1781 9643 186 +3046 12981 9717 4 +13150 1786 9718 3 +22279 1638 9719 14 +3582 4568 9725 28 +11704 6566 9744 2 +13273 11070 9746 2 +23117 2110 9747 8 +2160 3218 9750 1 +7838 11634 9750 1 +3780 18434 9751 3 +18322 5234 9751 3 +25127 6052 9755 8 +4508 7661 9755 8 +1221 10541 9756 6 +28623 9506 9759 62 +2281 11033 9813 3 +29420 6680 9813 3 +8845 20862 9816 3 +9397 22434 9818 3 +26857 7376 9822 7 +33080 8688 9831 6 +32778 4030 9832 4 +14861 17827 9834 2 +16520 5841 9834 2 +3339 1846 9840 8 +5340 13206 9842 14 +11038 10462 9842 14 +31938 1203 9844 7 +16244 18973 9848 5 +33862 3064 9852 5 +19581 15923 9857 10 +18634 22418 9858 3 +15662 16230 9859 2 +24578 9438 9861 2 +15307 18441 9863 40 +10835 5227 9863 40 +7102 4264 9864 5 +10703 16867 9868 3 +18165 6801 9868 3 +22462 6135 9870 3 +2331 16285 9871 7 +14980 21673 9881 3 +20375 7192 9883 4 +6332 6271 9884 3 +2458 10437 9886 6 +7274 13231 9886 6 +6910 5522 9889 6 +21125 12339 9897 109 +18061 6441 9930 3 +3921 2555 9932 2 +15778 21113 9932 2 +15266 13371 9933 4 +12408 6654 9934 133 +11613 14328 10002 5 +28637 10703 10007 33 +7962 8256 10029 2 +14806 9370 10029 2 +21374 7862 10030 5 +17022 6377 10032 4 +680 7632 10034 233 +14140 7218 10213 3 +9193 11582 10215 9 +22018 18804 10216 4 +23332 6916 10217 5 +28 3915 10219 24 +25719 14245 10219 24 +15262 21798 10229 4 +19988 5441 10233 5 +15748 5066 10236 260 +14721 959 10396 5 +18082 5397 10398 9 +6309 8423 10404 6 +27113 12408 10405 32 +14407 23072 10437 23 +3274 11714 10447 2 +4658 7387 10449 6 +26940 1644 10450 3 +23816 2180 10452 4 +17125 21952 10455 4 +2521 1716 10455 4 +14886 10862 10460 3 +23737 2125 10462 4 +20035 16877 10466 2 +5267 6791 10466 2 +23886 9711 10470 6 +10135 12703 10471 40 +2516 319 10483 6 +23735 12268 10483 6 +14646 18663 10485 2 +30759 5240 10487 50 +18812 706 10495 3 +12575 2053 10497 1 +12387 11657 10497 1 +19940 12649 10502 2 +4794 4856 10504 2 +20982 5660 10504 2 +17457 13152 10504 2 +7339 17505 10506 3 +5413 16561 10508 9 +3254 7956 10510 5 +290 1676 10512 3 +15097 13852 10513 2 +12226 2900 10515 4 +14077 7568 10520 4 +15746 19983 10521 2 +7600 3685 10521 2 +12986 2266 10523 5 +9892 5939 10529 5 +30171 11246 10531 2 +25552 15813 10532 4 +21040 16448 10535 6 +14988 18335 10545 4 +4966 6668 10547 2 +1229 13323 10547 2 +2345 5386 10548 2 +10208 21224 10549 4 +16621 12638 10550 4 +7703 4444 10552 8 +22691 1472 10552 8 +11044 7136 10556 3 +8792 5423 10558 5 +24264 9350 10562 45 +22389 3852 10582 5 +7875 18835 10587 3 +4269 11760 10588 3 +37563 4216 10590 9 +10911 13875 10593 2 +17389 9793 10593 2 +12526 14604 10596 4 +35598 1899 10598 8 +26508 10912 10605 2 +32204 8982 10607 7 +13220 1547 10612 6 +21019 10854 10616 4 +64 16360 10619 4 +7429 14273 10627 2 +229 9395 10627 2 +17512 2195 10627 2 +16218 2617 10629 8 +6246 6069 10629 8 +13092 520 10632 10 +1251 789 10632 10 +21274 14162 10634 7 +10650 8528 10636 9 +3599 19755 10645 3 +25778 3913 10645 3 +7318 1297 10646 4 +11459 12214 10649 5 +25598 11078 10651 2 +11838 15986 10653 27 +17517 18960 10664 3 +10666 13808 10668 4 +31850 3863 10672 3 +7071 12359 10672 3 +23962 10921 10674 5 +11698 16698 10676 2 +3986 6970 10676 2 +3989 10281 10679 2 +17703 13387 10679 2 +10284 5438 10680 8 +8109 14051 10680 8 +36616 2700 10680 8 +20013 14376 10682 9 +7057 17882 10700 2 +30391 3623 10703 2 +7526 17235 10704 5 +21368 6433 10704 5 +11088 4924 10705 2 +16207 12791 10707 7 +5086 2539 10711 13 +29405 2376 10738 10 +21336 3737 10748 2 +3285 18368 10750 5 +16380 21312 10752 6 +7596 21997 10753 9 +16704 1671 10753 9 +16984 1671 10753 9 +19833 8507 10754 2 +1549 19320 10755 4 +23000 16594 10757 9 +15147 15761 10758 5 +18479 6520 10759 2 +11786 7512 10759 2 +12386 4680 10764 2 +158 18583 10764 2 +16021 19540 10825 1 +20709 17067 10826 3 +20198 21593 10829 3 +13983 2075 10829 3 +23994 16909 10831 6 +10365 2310 10838 9 +23776 4421 10842 3 +470 5349 10844 4 +4982 18319 10844 4 +24317 7630 10855 33 +3857 6604 10867 4 +18646 6839 10868 3 +24402 14054 10868 3 +23903 16291 10873 5 +3207 6900 10874 3 +14413 17722 10877 8 +27867 5946 10877 8 +29765 10386 10878 4 +1296 6509 10878 4 +3943 7380 10879 9 +12778 4488 10885 5 +34155 7289 10888 3 +4937 2632 10891 3 +14209 12130 10893 2 +6606 13386 10895 3 +2963 10282 10895 3 +22070 2659 10896 3 +15429 7439 10898 21 +2139 11097 10924 3 +19626 4794 10927 3 +2452 9083 10928 154 +13455 22456 10957 3 +20320 4604 10959 2 +5957 9219 10960 3 +13222 14449 10960 3 +25232 1954 10960 3 +3255 11430 10963 4 +7134 1458 10963 4 +641 14492 10965 15 +12133 11626 10971 3 +987 3451 10972 4 +17877 5309 10974 4 +4438 20704 10975 9 +4669 14295 10977 2 +18487 2709 10978 48 +28403 444 11008 3 +35398 1893 11009 11 +2049 15240 11015 5 +29751 479 11016 2 +20961 7193 11017 9 +14117 7567 11018 5 +5409 7521 11019 3 +13347 4190 11022 6 +14423 13510 11028 3 +19565 21951 11029 3 +23338 7348 11032 117 +28794 8145 11096 3 +32594 9447 11098 26 +21225 6427 11122 4 +9677 185 11122 4 +1114 15333 11126 4 +25759 13793 11130 4 +27383 1535 11131 2 +20284 269 11132 2 +12637 4245 11132 2 +18229 2425 11170 9 +22100 19392 11174 2 +29382 1244 11175 3 +14734 2743 11176 7 +33575 8453 11181 3 +8352 2460 11181 3 +4639 10087 11184 1 +22740 16155 11186 5 +2513 18600 11190 1068 +7923 9185 11366 3 +36025 4910 11369 2 +22280 16813 11369 2 +19412 9345 11372 9 +39205 1121 11381 17 +17026 7725 11392 1 +34072 6532 11393 5 +6551 5588 11393 5 +26330 1172 11398 16 +6086 22161 11411 5 +30337 1850 11414 3 +4715 5831 11416 8 +1486 1640 11421 4 +5463 1481 11423 4 +30741 11046 11424 8 +14689 5900 11430 2 +16585 17193 11431 4 +8707 1605 11432 3 +15217 17186 11434 2 +39169 1084 11437 3 +16354 15717 11439 6 +21746 10136 11441 4 +35197 1497 11442 5 +13557 569 11444 2 +9298 22627 11446 4 +13845 11993 11449 3 +11293 18457 11450 2 +1475 1103 11451 216 +19702 12299 11517 3 +13175 15382 11518 4 +36577 2988 11523 1 +2295 17447 11523 1 +14310 10900 11528 4 +13037 8364 11532 4 +19832 21736 11534 5 +15058 14702 11539 1 +13492 19390 11540 8 +24191 16747 11542 3 +10969 13556 11543 2 +11334 20224 11544 6 +18367 4089 11545 3 +18644 1273 11547 5 +8783 6086 11552 8 +3161 17642 11556 5 +28438 5529 11562 2 +27520 5452 11563 3 +16659 1018 11571 8 +17494 6610 11584 6 +14331 6721 11588 211 +32568 48 11652 2 +19507 5384 11653 4 +1346 16542 11653 4 +17675 19293 11654 7 +17802 12624 11656 7 +672 21682 11661 3 +136 1526 11662 2 +16663 21702 11664 4 +9626 7572 11666 42 +16206 9376 11683 4 +12924 4326 11684 28 +17785 9711 11695 6 +31421 8320 11704 2 +8091 17339 11705 2 +39830 287 11706 1 +4515 1092 11706 1 +4270 15531 11709 5 +4506 15251 11712 4 +17249 2654 11712 4 +14997 7568 11717 5 +19267 8109 11723 8 +20023 18353 11730 10 +11778 18832 11733 8 +34852 3127 11735 8 +24351 7754 11736 6 +15821 20147 11737 3 +32741 8519 11739 3 +14952 9567 11740 5 +3295 14101 11740 5 +27057 9692 11742 8 +10732 10148 11749 4 +16055 13520 11749 4 +27905 5058 11750 1 +23036 3885 11750 1 +26069 6421 11750 1 +14470 2985 11750 1 +6894 1469 11751 3 +901 1285 11752 4 +38837 536 11758 6 +13108 18088 11759 3 +36138 4152 11759 3 +14309 10777 11760 8 +22766 6340 11765 2 +25136 11232 11765 2 +12342 14782 11767 3 +6726 11271 11768 5 +16598 9151 11771 7 +4332 15413 11773 4 +24451 10326 11774 2 +20971 13342 11774 2 +27846 13592 11776 5 +10425 21911 11780 5 +4025 5431 11788 1 +4545 22790 11789 3 +11998 878 11789 3 +29317 4543 11798 117 +36111 1898 11798 117 +19115 9897 11799 8 +15971 23192 11801 255 +12293 14155 11870 2 +20574 19963 11871 10 +17670 21739 11887 24 +21775 16309 11895 8 +10407 16532 11909 3 +24281 7084 11910 2 +16073 15339 11911 9 +18689 10413 11918 2 +829 10051 11919 4 +841 3920 11920 4 +2820 7193 11921 8 +27439 12951 11924 29 +1045 12507 11941 7 +17788 19776 11948 2 +17004 3892 11948 2 +10075 6256 11949 1 +9832 20726 11950 3 +23825 2942 11950 3 +13784 2942 11950 3 +1255 17989 11953 17 +32161 807 11962 8 +27894 12195 11967 4 +23468 17867 11969 5 +17327 8398 11975 4 +2079 9200 11983 10 +25146 11560 11987 3 +35359 1618 11988 132 +15748 18644 12132 2 +9562 5024 12132 2 +23651 15797 12133 2 +17026 5673 12133 2 +8088 17651 12136 9 +14107 19578 12138 26 +12451 3556 12166 3 +25413 8959 12167 4 +6534 14709 12167 4 +22712 9486 12224 1 +11667 9287 12225 1 +20694 785 12225 1 +12643 21625 12226 6 +2512 10288 12228 5 +39520 2150 12229 3 +23552 11358 12229 3 +14282 8320 12230 2 +20045 9466 12231 2 +323 9844 12231 2 +9741 10982 12239 1 +32496 5814 12239 1 +4939 2067 12240 2 +3257 277 12242 2 +26599 12837 12242 2 +25033 9348 12249 3 +9611 3033 12249 3 +23672 12503 12250 2 +20205 7263 12250 2 +18354 7698 12250 2 +11153 6091 12253 1 +843 15409 12253 1 +20062 4030 12255 2 +17560 20512 12257 9 +3154 13742 12266 6 +11201 17259 12268 2 +15327 6409 12268 2 +19616 10096 12270 1 +15461 728 12270 1 +25527 7593 12271 2 +6915 12935 12271 2 +28215 9280 12272 3 +14177 13248 12273 4 +5653 8252 12276 2 +30342 10887 12277 8 +18596 9490 12282 1 +19794 19221 12283 4 +11403 20705 12287 10 +2823 2963 12287 10 +3877 12807 12368 4 +12434 15762 12372 2 +4165 3827 12374 2 +36004 5937 12374 2 +3402 12609 12380 6 +26424 9349 12388 5 +30909 10095 12393 4 +28123 5382 12397 2 +18094 1182 12397 2 +33751 3847 12671 2 +22133 13173 12672 94 +9441 669 12772 2 +16165 23339 12774 3 +4565 14751 12776 9 +22422 18285 12786 1 +32345 2569 12786 1 +31104 9770 12787 2 +21774 2161 12787 2 +20742 6257 12789 4 +5885 23070 12792 10 +30677 7599 12794 4 +5589 5963 12798 3 +36263 955 12801 4 +3430 22222 12806 5 +29971 5743 12807 2 +22229 14879 12809 5 +34398 633 12816 3 +755 20631 12816 3 +29603 7398 12818 2 +33965 4195 12820 5 +18877 4786 12822 2 +5876 18882 12822 2 +8171 1263 12822 2 +33684 6311 12824 3 +24819 16636 12825 9 +27034 11655 12834 2459 +36451 2295 18714 10 +24738 15255 18720 4 +8290 20879 18723 4 +27898 13569 18726 45 +2929 4187 18736 5 +12623 14663 18740 3 +6609 4972 18741 2 +3487 5344 18742 2 +17104 8909 18743 8 +14502 22446 18745 2 +12797 1222 18745 2 +23647 1245 18746 3 +18996 7404 18748 25 +9585 9612 18756 5 +7818 18621 18762 1 +8871 5047 18762 1 +13010 12784 18767 5 +40639 617 18767 5 +9508 2702 18767 5 +10161 13813 18768 5 +20178 17903 18771 1 +7701 20 18772 4 +240 6110 18775 5 +11269 6360 18778 2 +4201 9032 18778 2 +2378 11692 18798 3 +16466 12720 18799 3 +5171 8353 18803 5 +19760 5121 18803 5 +3087 11416 18808 8 +9142 17306 18811 3 +4632 325 18812 7 +8356 14283 18814 4 +18301 9385 18814 4 +16716 1148 18815 3 +6321 23373 18817 8 +6939 10526 18820 7 +22204 8212 18822 2 +13181 4232 18824 4 +21105 11297 18824 4 +12576 21344 18829 27 +27116 14781 18844 3 +5661 14919 18845 3 +32948 2482 18845 3 +4115 1189 18846 10 +16167 6023 18849 5 +28632 7414 18852 4 +21177 16254 18852 4 +14728 7188 18854 3 +15082 17546 18855 6 +33817 829 18861 2 +24651 17203 18862 3 +1103 19714 18863 5 +956 12774 18865 16 +8732 348 18872 2 +26253 11457 18872 2 +14183 5448 18874 3 +2707 4814 18876 5 +32158 8869 18878 2 +12297 2424 18880 5 +13170 7042 18885 47 +20128 14586 18922 2 +7137 3083 18923 4 +21940 8351 18928 1 +15544 15317 18928 1 +35223 2477 18930 3 +3161 16939 18932 2 +22610 8880 18933 223 +19424 13350 19094 1 +3622 2471 19095 3 +16827 7335 19097 5 +30510 2988 19102 3 +20987 16434 19103 8 +5148 19541 19111 4 +1836 12959 19116 3 +4423 16632 19119 2 +8337 512 19119 2 +31284 7036 19119 2 +17790 1327 19169 1 +29036 9465 19170 3 +5347 10695 19171 3 +2047 6363 19178 2 +16361 15424 19179 5 +15732 100 19180 3 +7451 11581 19183 3 +16661 8285 19184 2 +4909 3245 19184 2 +29625 4186 19188 4 +26985 7897 19191 3 +20160 8886 19193 3 +112 8733 19194 3 +21763 3128 19196 10 +8445 6315 19201 3 +11004 5796 19202 47 +4476 4693 19209 2 +26573 2164 19210 8 +16325 16505 19210 8 +17791 6726 19212 9 +24106 3547 19217 7 +19113 13262 19219 4 +29940 7015 19219 4 +37991 4041 19223 6 +15396 14639 19229 7 +26461 11843 19233 4 +8146 3627 19236 2 +16955 20041 19236 2 +4567 22532 19240 2 +4004 16447 19242 10 +8185 16148 19253 2 +2248 3618 19254 6 +3524 13343 19258 4 +16182 18894 19259 32 +14303 16325 19268 2 +19744 7343 19268 2 +13768 7343 19268 2 +32416 4058 19270 2 +3298 6279 19271 5 +12377 20007 19277 4 +4613 3552 19278 2 +22305 18896 19278 2 +11611 7860 19280 37 +1471 5845 19324 3 +9907 6360 19326 5 +27650 3578 19328 6 +26162 4773 19334 1 +17134 10718 19335 10 +470 12440 19341 2 +27577 12375 19342 211 +8306 17320 19660 1 +10577 6348 19660 1 +19407 6348 19660 1 +1033 16711 19663 2 +10598 916 19663 2 +685 14282 19664 2 +2810 6630 19667 3 +21163 17038 19667 3 +18285 2384 19673 2 +1867 9814 19674 3 +18651 13037 19675 6 +7489 14277 19676 6 +15185 5253 19680 4 +1472 7796 19684 2 +13215 8542 19685 2 +17539 4843 19687 9 +31312 8470 19689 47 +22963 8927 19693 1 +15720 7134 19693 1 +25528 2910 19695 1 +15199 9539 19695 1 +19156 967 19696 9 +7306 18291 19706 7 +16030 14378 19708 37 +31671 8347 19729 5 +16508 2876 19736 3 +22341 10266 19737 42 +21381 5565 19763 2 +28870 2614 19764 2 +13992 15828 19765 4 +506 280 19766 2 +1739 1921 19766 2 +489 1414 19767 7 +26582 1540 19771 7 +11472 20603 19777 5 +13800 3314 19779 49 +13582 9194 19789 30 +1950 22485 19791 4 +2012 20050 19794 4 +21058 12685 19795 1 +1357 10983 19795 1 +7210 23128 19802 8 +2869 13183 19803 9 +4453 22067 19804 3 +14362 10717 19805 6 +1929 2822 19809 8 +29323 8802 19809 8 +20126 7458 20639 2 +3431 15995 20640 5 +22241 3312 20643 3 +26651 4950 20644 10 +1286 21206 20648 5 +3757 9132 20651 1 +8985 14536 20651 1 +7955 3904 20651 1 +1763 3904 20651 1 +1876 1346 20652 34 +12132 5314 20676 5 +23418 16064 20679 3 +22141 7604 20679 3 +11461 20953 20680 2 +1293 2715 20680 2 +13594 18687 20682 20 +1267 510 20716 3 +23687 9906 20717 4 +13079 2453 20721 3 +28391 1444 20722 4 +7772 16297 20723 2 +17828 10888 20724 6 +14848 12053 20725 2 +11786 3763 20726 2 +2164 22236 20728 6 +7472 9377 20738 7 +21925 19874 20744 3 +12572 4486 20747 6 +12266 15146 20747 6 +18331 4046 20747 6 +8495 10943 20748 4 +15859 2417 20749 2 +34149 5700 20750 2 +22989 9637 20750 2 +16882 4860 20750 2 +4194 14373 20751 101 +32954 5656 20759 3 +2807 12803 20760 4 +39204 2020 20761 4 +23605 5301 20764 8 +22709 10275 20765 4 +18108 13038 20766 3 +20749 7815 20767 2 +18072 7604 20770 8 +28600 4883 20770 8 +4196 22774 20771 9 +35218 3481 20776 9 +29349 11625 20788 20 +6094 4767 20788 20 +22931 9933 20792 4 +21316 10573 20792 4 +20849 12525 20799 2 +17702 11057 20800 5 +18973 12611 20800 5 +15399 9786 20800 5 +27492 403 20805 10 +25613 10041 20809 4 +12292 7915 20809 4 +25207 10326 20810 1 +4382 22916 20811 4 +5338 2870 20812 5 +11928 8410 20816 12 +14097 16582 20824 5 +27174 14714 20826 1 +17116 11169 20827 3 +23462 13812 20832 1 +8516 9856 20832 1 +10553 470 20833 2 +16113 12341 20834 2 +19291 12046 20835 3 +36301 4086 20837 2279 +12742 5331 22038 5 +5268 17498 22041 4 +10097 15571 22043 3 +23700 8596 22046 6 +22363 18477 22048 6 +4187 9969 22053 6 +25852 8648 22060 1 +3946 12769 22060 1 +6459 14552 22063 5 +31299 3887 22067 7 +25834 3276 22068 3 +12980 5511 22069 9 +12189 18157 22069 9 +4086 13481 22075 1 +2587 1769 22076 7 +244 4755 22078 3 +3065 2809 22080 6 +10696 15896 22088 2 +14660 20392 22089 5 +19298 9901 22096 1 +4472 7417 22096 1 +19467 9127 22098 6 +12710 11263 22101 4 +29314 5001 22104 3 +409 20325 22107 9 +14073 2800 22118 5 +22518 2991 22118 5 +30972 5133 22119 3 +5041 16489 22123 4 +35649 5566 22124 40 +36961 4456 22185 50 +3392 3386 22198 4 +6001 12797 22205 2 +10990 12042 22208 6 +7592 837 22211 3 +21526 5935 22213 5 +14126 12589 22214 4 +7947 8474 22220 5 +4912 19129 22224 2 +4719 4539 22224 2 +5025 14691 22225 6 +15348 4682 22231 5 +6818 6193 22234 2 +16369 6283 22234 2 +25866 6659 22234 2 +2343 20707 22236 2 +8562 370 22239 9 +29875 3397 22249 7 +22718 11795 22251 1 +1858 12711 22252 2 +10581 13350 22254 9 +20400 4831 22263 2 +2763 14664 22265 2 +20578 18385 22266 2 +9377 5283 22266 2 +20299 5800 22269 2 +22765 2055 22270 3 +12802 18138 22271 2 +2510 18644 22272 771 +32220 6218 22707 5 +23702 16539 22710 4 +8521 22564 22712 2 +14014 13897 22713 2 +6211 18716 22715 5 +6679 16856 22716 2 +167 12570 22717 5 +6963 2997 22719 5 +8281 20173 22723 4 +14273 23011 22724 8 +8445 657 22724 8 +32150 9060 22728 41 +8688 22996 22756 3 +23575 16843 22758 2 +18065 5866 22759 3 +171 14421 22760 27 +21559 7137 22791 20 +14357 22900 22809 1 +34085 768 22809 1 +17890 4544 22814 1 +2039 662 22815 2 +1050 13114 22815 2 +16510 22707 22816 33 +10810 961 22816 33 +23335 6852 22817 3 +8253 7385 22819 40 +18801 4471 22855 6 +9142 15379 22861 4 +2506 8289 22861 4 +17542 1653 22861 4 +12996 7152 22868 9 +7458 9858 22878 8 +11233 21272 22887 1 +12271 2396 22887 1 +23091 1627 22888 3 +24288 9736 22891 3 +6384 12838 22891 3 +1317 1078 22894 3 +28438 1403 22895 3 +26016 11478 22898 41 +20194 18081 22939 4 +17706 18894 22941 4 +4712 19909 22945 4 +15056 10460 22946 1 +12762 21581 22947 47 +24538 3950 22957 9 +19876 7151 22961 8 +23866 12306 22965 5 +4347 11651 22968 5 +34215 6205 22968 5 +4694 5748 22971 2 +3932 17270 22974 4 +24513 1005 22976 3 +7714 16711 22978 7 +6581 23342 22988 7 +35616 4254 22999 24 +19474 12713 23012 1 +1803 4187 23012 1 +21859 4231 23012 1 +17495 16170 23014 4 +24922 6258 23017 1234 +5983 11202 23675 3 +27126 3658 23676 6 +16376 1584 23680 4 +15845 14710 23682 8 +24390 5306 23692 2 +10357 20716 23695 3 +14555 16544 23696 19 +3223 2188 23711 2 +9557 17036 23712 11 +19400 9054 23714 3 +8489 17103 23717 1 +3914 6565 23717 1 +18803 1990 23717 1 +12860 2395 23718 3 +17890 11170 23723 1 +30040 7514 23725 9 +15457 5105 23736 24 +25592 13545 23759 2 +5193 10434 23760 6 +27609 1161 23765 4 +34053 564 23768 3 +17224 13796 23768 3 +4399 18221 23771 5 +28419 4939 23772 10 +11172 5093 23790 2 +4825 13251 23791 6 +1153 16051 23796 18 +25191 5147 23804 4 +17594 1714 23809 18 +25128 12708 23813 4 +19054 6853 23813 4 +8958 10741 24684 27 +22574 9625 24724 4 +7331 13663 24728 1 +8781 10548 24729 4 +9281 14844 24730 4 +17514 12059 24732 4 +20070 15471 24735 4 +33166 6898 24737 9 +30501 4488 24741 1 +10687 19180 24741 1 +30345 4783 24743 6 +22543 14628 24746 7 +37520 3681 24747 6 +10682 3475 24748 2 +14013 9048 24749 39 +25187 5183 24766 29 +15552 22335 24793 1 +21921 7969 24796 2 +29275 2018 24797 12 +1374 8664 24798 44 +28340 13668 24835 4 +33941 3183 24838 5 +2758 4273 24843 9 +26501 397 24850 7 +28937 9432 24853 4 +1660 5683 24854 3 +27995 4921 24857 4 +18644 9387 24862 2 +20941 19184 24863 9 +26665 9408 24872 26 +18747 19676 24875 10 +17561 2578 24883 28 +7347 10037 24905 8 +11922 6082 24907 1 +5763 10518 24908 9 +20342 17639 24912 34 +6018 1073 24922 26 +8074 21500 24927 3 +19677 4215 24929 3 +26131 4966 24931 4 +5317 9430 24935 5 +38356 3252 24936 2 +6386 13461 24937 2 +11219 2783 24937 2 +26991 6575 24939 3 +12896 2661 24941 1 +16871 14694 24941 1 +15433 12835 24942 32 +6981 6674 24949 4 +5800 1458 24949 4 +29256 9817 24952 6 +8419 13570 24960 2 +27470 1989 24963 38 +13798 9761 24978 7 +5952 8180 24983 2 +13680 15488 24983 2 +18076 10283 24985 7 +15186 2882 24989 2 +4934 20786 24989 2 +35481 5181 25073 10 +20739 4908 25077 9 +7146 11287 25080 5 +3365 11210 25082 3 +280 188 25084 2 +17565 22993 25087 4 +24497 2516 25091 35 +17844 10503 25097 3 +609 6983 25098 4 +20211 2503 25099 4 +28102 9690 25101 9 +31525 8616 25108 1 +18738 14370 25109 2 +26142 7456 25109 2 +12919 21673 25116 4 +17666 11625 25122 9 +15643 1858 25128 2 +8767 21060 25128 2 +27865 12731 25130 2 +14040 10937 25130 2 +10737 17312 25132 42 +12424 16319 25140 3 +20353 7349 25140 3 +17982 14057 25145 8 +14445 9611 25145 8 +27892 3593 25313 33 +2636 4333 25324 4 +3746 14112 25326 2 +7543 470 25326 2 +12206 19026 25327 2 +23183 3274 25328 29 +9098 20394 25328 29 +30559 10253 25329 4 +5639 20915 25332 2 +16658 2753 25332 2 +9979 19494 25333 3 +33735 3268 25335 9 +8705 7213 25347 2 +186 20273 25348 4 +4583 22742 25349 6 +19373 20472 25356 9 +6368 18419 25358 2 +15350 16272 25360 6 +9477 17471 25363 6 +24872 5190 25366 4 +3622 2434 25367 3 +26002 1498 25370 2 +24425 275 25370 2 +24769 4427 25384 6 +1213 9919 25391 5 +29560 12013 25396 8 +22125 13658 25398 2 +32775 2912 25399 4 +96 2787 25402 2 +19222 9839 25403 65 +13595 9027 25454 1 +8017 20911 25455 7 +13438 15072 25465 9 +12745 1385 25469 2 +27328 10225 25471 3 +38271 1537 25475 6 +11549 8774 25476 7 +32402 1948 25476 7 +24462 5553 25478 3 +2548 23275 25479 7 +28522 3369 25482 2 +13091 19774 25482 2 +16412 3846 25484 3 +22151 4445 25486 24 +34769 5644 25494 2 +8176 20545 25495 69 +934 11980 25507 130 +11998 18430 25712 2 +26120 12369 25713 4 +18297 17673 25716 4 +2937 5995 25716 4 +30437 3795 25718 9 +3545 23161 25720 2 +15836 18018 25721 7 +37972 844 25725 5 +38573 278 25726 4 +15028 15081 25730 1 +17278 8587 25730 1 +29405 8589 25731 4 +8657 21325 25732 9 +12693 10 25736 3 +17040 22780 25737 10 +14604 4387 25746 9 +5026 6941 25756 3 +4583 19402 25759 8 +15308 16141 25764 2 +14668 1555 25765 3 +15896 2053 25765 3 +18165 12467 25770 2 +10003 10351 25772 7 +27833 7669 25774 10 +18799 14365 25781 5 +6100 20045 25782 1 +18360 20998 25783 5 +17318 2121 25785 2 +13742 10718 25787 40 +4101 15337 25803 4 +9127 16187 25809 8 +15362 7481 25809 8 +7212 522 25809 8 +29889 755 25811 14 +18579 10188 25831 2 +18231 2261 25832 6 +4621 4127 25835 7 +38668 1738 25841 4 +13069 14815 25846 7 +16282 6755 25851 5 +13906 11288 25852 33 +16948 1425 25877 1 +11410 23489 25878 1 +18739 9975 25879 2 +22393 14736 25882 265 +20119 330 25925 3 +4463 12144 25927 3 +19928 9002 25930 3 +20772 3636 25931 42 +20382 18639 25959 5 +16192 5029 25959 5 +16628 4935 25963 4 +17047 16797 25966 4 +291 5049 25967 5 +12283 20865 25970 1 +18804 2803 25970 1 +35467 581 25970 1 +14533 13758 26014 1 +7494 9910 26014 1 +1848 9033 26019 4 +27678 10039 26021 3 +37207 3104 26022 2 +4132 18778 26023 5 +26423 7720 26028 142 +22242 16479 26137 7 +12916 2882 26149 2 +21596 723 26149 2 +22987 7027 26150 2 +9808 5693 26151 7 +10367 19399 26153 3 +16803 4269 26153 3 +12382 4269 26153 3 +32166 3322 26153 3 +29888 2572 26154 4 +2138 20395 26154 4 +10168 21437 26164 1 +16986 2829 26165 1 +12811 293 26166 2 +13199 7466 26167 2 +1377 4954 26167 2 +7755 1624 26168 3 +18476 2921 26170 8 +3467 6424 26173 4 +30449 2650 26174 7 +18631 14266 26175 1 +6896 9402 26175 1 +20932 13900 26177 1 +11435 9768 26177 1 +26970 6759 26178 7 +1870 6040 26181 46 +8432 14501 26181 46 +24008 5974 26183 10 +28872 7296 26189 1 +17943 13355 26189 1 +7442 12010 26191 3 +7570 5829 26193 2 +3665 3619 26194 18 +11053 2915 26200 47 +36717 1560 26228 3 +15779 13834 26232 8 +31800 561 26233 7 +2083 9918 26237 60 +12940 4029 26272 5 +21771 16212 26272 5 +14656 12159 26288 2 +1331 14635 26289 8 +16176 17294 26295 3 +19654 8134 26299 6 +14879 12603 26302 3 +8988 266 26304 2 +9114 19151 26306 3 +4319 19056 26308 2 +11881 15621 26309 3 +23974 8047 26309 3 +9926 19427 26316 2 +1775 688 26318 5 +15143 14325 26320 3 +35735 4671 26320 3 +28605 4945 26322 3 +6638 10879 26322 3 +8039 12779 26325 2 +19048 14070 26326 3 +30296 3837 26328 4 +12331 114 26329 4 +8183 13607 26331 2 +4344 10061 26331 2 +3476 6222 26331 2 +2164 4661 26336 2 +22471 17849 26336 2 +7172 1158 26336 2 +32299 1152 26338 3 +2170 18079 26339 2 +9564 13852 26340 199 +16543 20248 26373 5 +18421 15365 26378 3 +21429 13062 26380 10 +16777 23019 26400 4 +23683 13582 26403 4 +22106 7726 26404 8 +3218 2848 26416 2 +12823 1768 26417 3 +26781 13345 26418 4 +7012 14902 26420 2 +17687 2150 26421 2 +6538 6006 26422 3 +6178 16220 26423 8 +2401 16461 26424 1 +21470 283 26425 1 +15408 18107 26425 1 +22977 9377 26430 2 +1074 19292 26432 6 +625 23603 26438 1 +6038 21979 26439 4 +14022 14664 26442 4 +24285 13949 26446 5 +25253 9719 26446 5 +15497 17390 26447 2 +23878 3053 26448 30 +16774 6805 26468 2 +4863 1043 26469 45 +6874 4894 26546 4116 +5276 16976 31813 2 +1652 11340 31815 3 +11343 11381 31818 9 +20147 3215 31825 5 +22364 5536 31828 6 +28948 933 31835 5 +39781 942 31837 1 +14468 14722 31838 10 +7305 8946 31838 10 +9146 18163 31840 9 +20839 12169 31856 2 +28664 7306 31858 3 +3928 16362 31858 3 +25241 13012 31860 26 +21962 10829 31888 3 +5064 20088 31889 4 +5006 18533 31890 5 +11109 7716 31893 5 +11743 13806 31899 3 +16294 2998 31903 1 +7 2813 31904 5 +25258 9055 31905 4 +5181 16932 31908 2 +32583 4013 31908 2 +8083 12184 31922 2 +3293 18322 31923 1 +1213 5346 31923 1 +18596 8470 31929 10 +20694 20784 31937 3 +32424 6410 31939 4 +11724 10706 31942 4 +22411 5942 31943 42 +36747 3551 31956 29 +237 23104 31961 7 +31633 8343 31964 4 +10086 3530 31965 8 +8501 9730 31972 5 +20234 10728 31976 1 +38966 1998 31976 1 +12074 16723 32014 2 +7164 13415 32015 4 +13339 11222 32016 180 +10041 22110 32048 4 +15677 1558 32048 4 +4538 1558 32048 4 +18094 7798 32050 2 +23168 2973 32051 5 +26110 4405 32053 4 +40238 1367 32056 10 +5655 14610 32063 6 +27748 4648 32065 2 +13451 7858 32066 8 +13080 1663 32070 4 +8656 11215 32072 2 +15154 13600 32073 5 +12709 22604 32074 2 +13481 12953 32075 1 +31715 4539 32076 1 +33870 4137 32076 1 +8143 13921 32081 2 +14248 1409 32082 4 +8925 8760 32083 9 +4520 2776 32088 2 +9520 6792 32088 2 +35262 6152 32090 2 +22999 18466 32091 5 +581 2484 32093 6 +4527 17702 32096 4 +5382 3389 32098 2 +23424 13885 32099 8 +7423 7247 32102 5 +13665 5628 32103 30 +33640 4036 32123 2 +20773 10461 32126 2 +9618 16197 32127 6 +3063 21859 32129 3 +20564 1809 32129 3 +23954 7320 32130 4 +29881 11003 32132 37 +11274 600 32144 4 +25482 6561 32146 5 +7121 13941 32149 7 +4950 7760 32158 3 +23177 6944 32158 3 +21202 8587 32159 3 +903 4836 32160 10 +1853 14395 32167 35 +25335 12691 32177 2 +17039 3937 32179 1 +22975 13207 32181 10 +4586 6661 32181 10 +31380 7330 32182 5 +22414 344 32189 2 +6694 21373 32190 4 +11994 13137 32191 4 +3861 17226 32192 4 +21347 6442 32192 4 +6990 22334 32193 5 +4157 22209 32197 8 +7133 16675 32201 3 +5646 18392 32204 4 +18277 13755 32205 5 +7692 1869 32209 1 +23039 16772 32211 1 +23809 2438 32212 4 +15165 9208 32213 5 +14241 15520 32216 1 +4480 2955 32216 1 +27200 7329 32250 2 +20658 8510 32252 2 +14490 2956 32252 2 +22769 15075 32253 2 +18219 8593 32253 2 +18941 2571 32257 4 +13781 15874 32264 7 +8956 7794 32264 7 +9977 15004 32265 2 +13114 15015 32266 2 +32043 8265 32267 2 +28829 2068 32270 34 +26379 1650 32297 2 +6502 6314 32298 5 +17962 14435 32298 5 +12072 19030 32301 1 +17806 23290 32302 1 +13821 22732 32303 8 +24127 10074 32305 6 +39330 1382 32308 6 +12829 808 32312 4 +30611 5402 32312 4 +13483 12080 32316 1 +28860 10290 32317 29 +15004 1097 32325 2 +32366 872 32329 2 +36820 2883 32331 2 +9461 3280 32334 4 +22758 18654 32334 4 +35012 6033 32336 8 +31516 4715 32339 3 +17011 18953 32339 3 +12933 6795 32341 3 +26209 12569 32342 1 +6587 8772 32342 1 +28913 567 32349 2 +15463 21952 32350 8 +32220 5795 32355 5 +25333 9026 32366 4 +25804 2811 32371 3 +7385 9424 32373 10 +29106 962 32378 1 +3135 76 32378 1 +15250 2394 32380 6 +33499 4511 32383 8 +8862 17988 32388 1 +27080 524 32389 3 +19963 10146 32394 43 +4935 7227 32445 6 +19970 11377 32446 4 +746 15314 32454 1 +17947 4446 32454 1 +22519 15895 32455 43 +21174 3459 32468 5 +15510 14646 32469 5 +14899 3127 32474 3 +21519 16772 32477 2 +23714 3362 32478 2 +8730 2473 32480 2 +26694 9167 32481 8 +14644 8186 32485 9 +5146 309 32487 1 +10813 12537 32488 2 +150 11131 32488 2 +20658 468 32488 2 +10302 468 32488 2 +26623 14637 32492 22 +11346 2331 32496 3 +10901 4696 32498 1 +3380 14498 32499 7 +28065 8280 32508 14 +26692 15240 32519 4 +30305 6534 32522 4 +22710 13431 32526 10 +19949 4104 32533 182 +9765 6147 32730 4 +2754 2924 32733 9 +20505 19896 32744 1 +24473 4379 32745 2 +30869 6467 32745 2 +260 12822 32745 2 +7867 12731 32749 8 +14816 22793 32751 5 +8231 12898 32752 26 +13539 14085 32753 6 +25100 511 32762 5 +1561 3079 32765 146 +26004 12941 32950 2 +723 10727 32950 2 +4288 10846 32951 8 +3644 21725 32953 2 +3163 1943 32953 2 +21445 4964 32970 3 +28822 12162 32971 9 +19982 21135 32972 2 +22432 1323 32975 43 +8933 4874 33023 7 +41154 366 33023 7 +30784 11240 33023 7 +20153 19219 33025 3 +6120 17326 33026 9 +9467 17176 33032 2 +13372 1593 33033 6 +158 19124 33041 4 +2241 8095 33043 47 +6013 4398 33046 2 +3682 17545 33047 7 +4340 3238 33048 5 +7497 13156 33048 5 +1082 17706 33051 18 +25118 14575 33055 7 +36371 4431 33055 7 +5005 14971 33059 2 +13436 4119 33060 5 +6437 357 33064 246 +3701 6678 33563 3 +9222 12855 33563 3 +20068 10024 33565 5 +9987 19414 33569 5 +14836 860 33573 4 +20593 13349 33576 2 +12835 12729 33577 10 +10183 6415 33577 10 +19061 8287 33577 10 +29074 6503 33577 10 +10903 8839 33583 1 +2002 9778 33584 2 +2855 21937 33586 8 +13535 14415 33588 5 +20990 4147 33590 4 +16232 11034 33591 30 +29249 11303 33593 5 +4933 17329 33596 2 +19451 15867 33599 8 +34195 5678 33613 5 +13661 20273 33617 8 +36778 390 33621 10 +27434 2735 33631 4 +4563 7077 33632 4 +12333 19911 33636 2 +8887 19992 33637 7 +29026 5872 33638 4 +11764 6112 33638 4 +20939 5044 33642 10 +25818 10864 33655 3 +16751 3581 33655 3 +19748 15584 33661 2 +3598 10102 33662 10 +4506 12256 33671 2 +12715 7155 33672 4 +9842 8683 33673 2 +24866 12390 33673 2 +14376 2128 33674 3 +31914 7215 33675 3 +8436 13071 33678 4 +20222 2295 33681 6 +2158 18070 33685 2 +11883 6525 33686 8 +12435 22798 33690 27 +27897 870 33690 27 +38379 1945 33691 4 +29912 4502 33694 5 +27081 13146 33694 5 +21393 19125 33702 2 +22185 4543 33702 2 +20639 4543 33702 2 +38427 536 33703 4 +7808 22026 33707 2 +11381 8788 33708 2 +22398 2539 33713 4 +6274 21129 33713 4 +12936 14934 33715 5 +29959 10044 33718 4 +21785 14964 33719 3 +28846 5921 33721 9 +496 393 33721 9 +13067 1044 33723 2 +16 8612 33724 4 +18008 19191 33726 4 +24917 12084 33728 4 +14391 558 33729 2 +33697 4115 33730 8 +33113 4778 33739 1 +88 19392 33740 2 +25802 4276 33740 2 +21480 13483 33741 1 +20314 15927 33742 4 +24965 7741 33742 4 +18767 18561 33751 4 +17036 17925 33752 4 +12563 10337 33754 4 +9854 2475 33754 4 +13607 14624 33755 4 +638 8380 33761 29 +22769 218 33784 9 +35867 3522 33784 9 +7808 8174 33786 49 +13292 4614 33811 5 +29438 1494 33813 5 +29593 1124 33818 3 +18013 9378 33821 4 +2910 21629 33822 5 +20124 8688 33823 3 +8276 14980 33823 3 +5705 18012 33824 41 +2937 8768 33902 3 +3867 21665 33904 2 +14377 16017 33905 1 +35078 3414 33905 1 +6913 10295 33907 3 +11781 23074 33913 1 +12786 594 33913 1 +5222 594 33913 1 +282 20981 33917 2 +16004 1805 33918 3 +4880 4754 33919 5 +18010 18035 33920 3 +16984 8583 33922 6 +13381 18444 33926 2 +20914 4876 33927 4 +12529 18792 33927 4 +26672 441 33929 15 +12894 13770 33932 5 +1646 20332 33935 4 +19931 2354 33938 2 +16644 1741 33939 5 +13317 20663 33942 3 +3635 23515 33946 3 +9482 15439 33949 4 +28330 10635 33950 8 +13278 21506 33959 1 +11726 19552 33960 3 +29035 4116 33960 3 +15937 9312 33970 3 +24108 13652 33972 5 +28408 2556 33974 5 +18648 14488 33977 42 +1320 6255 33977 42 +7824 11696 33979 3 +31380 3572 33979 3 +28422 10885 33980 3 +14508 20104 33983 3 +6055 11642 33984 8 +16685 983 33988 204 +12396 16714 34022 6 +399 3909 34029 12 +10373 17596 34034 2 +30553 7503 34035 3 +28924 3162 34036 3 +22570 12904 34037 45 +8215 16622 34122 5 +2799 19368 34123 2 +39380 403 34124 2 +5110 11578 34125 2 +12997 5496 34125 2 +8581 19169 34127 1 +14636 4499 34127 1 +18184 10919 34266 2 +16766 17731 34267 2 +5543 437 34269 5 +26045 9657 34278 8 +30208 4823 34284 3 +5930 4555 34285 32 +22416 9307 34312 4 +21221 9377 34312 4 +27679 2437 34313 1 +1060 6186 34313 1 +8095 11520 34313 1 +10584 3525 34313 1 +25378 3525 34313 1 +1823 9379 34314 2 +16852 8328 34315 6 +587 1148 34318 8 +31704 2254 34324 3 +25828 12238 34326 2 +5933 11430 34326 2 +23727 968 34340 31 +14824 22487 34366 1 +30642 1181 34366 1 +33598 6095 34367 3 +22155 1314 34369 4 +24029 2388 34369 4 +12058 6904 34372 3 +11748 8484 34373 9 +10809 14982 34377 2 +9956 8686 34377 2 +10912 15539 34379 9 +4896 13819 34380 2 +17220 22587 34382 4 +11151 11131 34383 4 +31960 6046 34383 4 +18582 6491 34383 4 +9818 15450 34385 3 +6741 19716 34386 42 +5651 3952 34386 42 +11852 4410 34390 8 +38090 3507 34391 3 +1845 7363 34391 3 +20962 278 34393 81 +17453 4243 34402 4 +28352 3226 34403 5 +20209 16825 34403 5 +14461 20318 34405 2 +21354 13312 34406 3 +19304 16304 34407 489 +2013 7693 35065 5 +6290 10797 35069 3 +20014 15327 35070 9 +20961 14348 35076 7 +17373 4133 35082 4 +12561 22550 35085 4 +276 20411 35086 3 +575 13753 35087 3 +5203 17441 35090 6 +15302 3843 35094 5 +24572 14821 35095 4 +13705 9170 35096 2 +10970 14510 35097 30 +32530 2905 35118 8 +4087 1573 35121 10 +20445 19811 35137 2 +4111 12769 35139 7 +14122 13342 35140 5 +4086 17316 35143 2 +20490 19444 35144 7 +29290 5333 35146 5 +7046 18335 35146 5 +5886 3127 35149 6 +8738 12955 35152 3 +30677 4047 35153 9 +26416 7340 35159 45 +20834 6878 35184 2 +9720 7806 35185 7 +24211 13474 35188 4 +6026 13281 35191 3 +15609 7091 35192 10 +788 22154 35198 4 +24651 6484 35200 3 +2289 10156 35202 2 +20317 13512 35202 2 +5283 691 35203 1 +13552 20818 35203 1 +34611 2080 35212 2 +25862 9264 35214 3 +14682 12317 35216 3 +23191 11765 35218 2 +5759 7548 35219 1 +4541 1116 35219 1 +37172 4880 35220 4 +34431 963 35224 4 +22619 16744 35229 1 +2326 608 35229 1 +37562 3835 35230 1 +1720 10374 35231 5 +34577 6212 35233 3 +25569 1313 35233 3 +24848 2307 35270 142 +36435 4137 35375 2 +12246 17868 35375 2 +6346 21380 35451 5 +3266 6315 35455 4 +27736 13608 35457 3 +14011 10060 35457 3 +11913 20692 35460 1188 +21962 11841 36117 8 +13891 1991 36117 8 +16157 22880 36118 3 +25665 14060 36122 8 +6300 14117 36123 4 +17768 7639 36126 2 +21412 9956 36126 2 +15509 22182 36131 8 +26288 4428 36133 3 +3524 22041 36137 9 +7793 4741 36156 5 +8046 20131 36158 4 +18764 3371 36163 1 +3918 10271 36164 1 +6182 12354 36165 3 +21556 634 36169 31 +24924 2806 36204 50 +14380 12890 36232 3 +14943 20018 36235 41 +35568 419 36259 5 +3702 22264 36260 1 +7951 1404 36260 1 +12267 5062 36270 5 +21200 732 36275 2 +16066 5043 36275 2 +36499 1895 36310 1 +3637 8466 36310 1 +26943 10600 36312 5 +170 22334 36314 2 +7528 1334 36314 2 +15675 2092 36318 37 +18591 14618 36335 5 +15674 9050 36335 5 +23842 16141 36337 7 +3685 2183 36340 2 +18494 6325 36341 7 +6413 6425 36344 2 +4809 8531 36344 2 +30420 2585 36345 5 +23348 5727 36345 5 +476 5824 36348 39 +25472 366 36389 9 +29925 5576 36389 9 +7812 6717 36391 2 +19657 7477 36391 2 +16063 9647 36392 3 +9741 17232 36397 8 +37409 3722 36398 4 +10243 18900 36402 2 +24223 17414 36403 4 +18914 15244 36406 1 +15840 9368 36407 5 +22321 15801 36411 2 +16355 14691 36413 2 +15574 8977 36413 2 +16891 5026 36415 9 +15780 22306 36419 3 +14023 1362 36419 3 +11360 870 36420 28 +7243 3619 36430 7 +21619 1658 36433 2 +2693 12514 36434 8 +33646 3480 36441 1 +6160 18391 36442 3 +27644 5277 36442 3 +4867 14576 36444 9 +33194 8454 36448 2 +8758 20060 36449 7 +13195 12345 36454 22 +22499 906 36454 22 +9119 11323 36454 22 +962 10008 36455 4 +30428 6347 36455 4 +34951 2203 36463 3 +18706 19702 36464 4 +21152 14271 36466 9 +1780 10956 36470 30 +22553 5999 36482 4 +25037 3151 36487 4 +14940 162 36492 5 +34693 3212 36492 5 +24069 7871 36493 9 +13550 9187 36503 5 +2130 14661 36507 8 +30529 1683 36513 20 +11800 1465 36517 4 +24823 6011 36520 4 +726 2187 36523 8 +3955 14010 36533 11 +4738 5839 36537 10 +9191 2042 36545 2 +38 22587 36546 5 +11763 12807 36547 2 +17384 6464 36550 4 +27545 9004 36551 10 +18313 11729 36557 39 +2453 8403 36579 5 +6985 22163 36581 4 +31688 8282 36582 3 +37382 2088 36584 3 +11173 21000 36585 9 +24466 9248 36593 2 +25617 8046 36594 9 +9969 16328 36599 213 +29102 11085 36761 2 +19145 12583 36761 2 +9504 792 36762 7 +2772 11611 36765 8 +5269 6197 36767 7 +10453 21088 36769 3 +12433 8501 36771 2 +28949 6325 36771 2 +14710 8842 36771 2 +7247 6224 36771 2 +19298 3723 36772 2 +2702 17459 36773 6 +26784 11677 36777 19 +21330 1297 36778 2 +18486 15826 36780 6 +16578 3426 36784 3 +2822 20834 36786 7 +22987 17105 36789 2 +10760 6563 36789 2 +36269 4046 37119 2 +14305 7523 37120 45 +2317 6887 37131 2 +5996 20144 37132 5 +29755 1413 37134 4 +695 1017 37134 4 +28028 11527 37135 4 +6560 2597 37137 3 +19449 12442 37138 5 +27128 12438 37142 3 +19118 10864 37143 4 +8933 22958 37145 3 +8318 10407 37146 2 +23331 6969 37146 2 +32244 3817 37148 4 +3316 12852 37150 10 +4882 10816 37150 10 +8998 10816 37150 10 +7825 3101 37151 3 +2665 1130 37153 2 +38 4188 37154 4 +12312 3860 37155 1 +20188 2936 37156 42 +14282 14000 37169 25 +31211 9585 37184 4 +10442 22262 37187 2 +31361 3599 37188 2 +3230 11879 37190 4 +12864 1404 37190 4 +129 4476 37199 49 +21676 6282 37214 201 +24638 14171 37279 5 +12260 6574 37281 4 +24236 6759 37283 9 +8415 17292 37285 2 +25341 13694 37287 5 +14767 4894 37291 8 +27763 7579 37293 4 +17197 5034 37295 2 +20477 16330 37295 2 +28991 3203 37297 11 +584 1671 37300 2 +12165 7677 37302 2 +16175 163 37303 4 +15781 20234 37304 1 +3925 17045 37305 2 +8302 7918 37306 5 +13538 11426 37308 3 +22648 7100 37309 2 +1886 16568 37309 2 +17363 19462 37310 28 +33342 1536 37315 19 +23539 7630 37323 2 +22767 18828 37324 10 +11520 21550 37343 1 +2615 18781 37345 3 +345 5143 37346 5 +12760 1484 37347 8 +4076 10602 37348 10 +18197 18017 37359 2 +532 3421 37359 2 +1239 16896 37378 6 +26925 1474 37386 5 +7202 8009 37389 6 +19386 3474 37393 7 +19288 401 37399 2 +25417 15966 37400 1 +7394 7702 37400 1 +911 2035 37402 3 +24760 14015 37403 4 +35092 5128 37405 8 +9962 1349 37407 4 +33382 6539 37407 4 +20354 16105 37419 1 +22315 10853 37420 6 +21151 10689 37427 2 +8126 20246 37429 1 +21152 3422 37429 1 +24771 15770 37430 1 +11504 1925 37431 7 +12491 1760 37440 4 +36638 2020 37442 999 +17891 1642 37983 2 +8112 23665 37986 9 +4010 8877 37994 1 +28554 4125 37994 1 +20698 18351 37996 2 +25976 5317 37996 2 +15757 3526 38002 5 +30023 7751 38003 20 +14489 5179 38022 3 +16412 11447 38023 1 +25505 12221 38023 1 +32685 7337 38027 4 +6436 5924 38030 2 +28516 10114 38031 5 +2310 23546 38034 50 +30379 2427 38067 2 +12876 3731 38067 2 +28263 68 38067 2 +7305 18807 38086 5 +22638 13060 38089 2 +12634 19670 38090 2 +38411 2673 38092 8 +1257 1229 38094 7 +17543 8398 38098 2 +17098 2879 38098 2 +10028 23554 38099 6 +13523 22421 38102 8 +4344 17284 38112 6 +22802 7132 38116 3 +16654 1687 38121 6 +31982 107 38129 2 +2671 1531 38130 4 +18294 7291 38132 2 +12704 16348 38133 5 +36463 2220 38139 5 +28736 8744 38140 1 +30860 11100 38140 1 +6760 12428 38145 1 +17700 1141 38146 1 +27326 6572 38147 6 +10167 3916 38151 7 +24179 17415 38157 3 +30346 9785 38158 5 +12137 20326 38159 2 +3502 7690 38160 4 +14882 23088 38161 5 +27628 8943 38162 2 +38044 2627 38163 3 +16974 770 38164 7 +27794 4130 38167 60 +3563 6071 38194 5 +8077 11901 38195 2 +1421 6093 38197 2 +1763 12642 38198 3 +7214 21368 38199 3 +23943 2300 38199 3 +17880 9330 38203 2 +33334 8391 38205 10 +4466 22484 38213 2 +34824 4028 38214 10 +9042 6391 38224 5 +18490 1766 38227 2 +6980 17446 38227 2 +12761 2349 38230 4 +21503 10300 38231 7 +4000 13368 38231 7 +16974 5553 38237 3 +29088 12482 38244 4 +18113 15023 38245 2 +24608 12163 38246 2 +19457 7025 38248 7 +14040 5517 38249 4 +25526 1915 38250 4 +3217 8409 38253 4 +19246 11035 38253 4 +7629 2387 38255 49 +23470 1236 38279 4 +256 21750 38279 4 +20539 682 38279 4 +17054 22895 38280 6 +11891 17234 38283 4 +32195 8679 38286 4 +15331 9627 38287 2 +786 12570 38288 5 +13020 14369 38294 4 +29347 5461 38294 4 +28300 13642 38301 3 +7414 10026 38301 3 +29438 65 38317 13 +13204 1935 38318 6 +19432 14404 38319 2 +2541 9264 38319 2 +4355 7723 38320 8 +5432 15945 38320 8 +35259 5342 38321 2 +35944 1627 38323 8 +15244 10743 38328 1 +26765 4163 38328 1 +5743 14014 38333 8 +14166 16021 38345 5 +15695 1712 38348 5 +20195 6784 38350 7 +32697 4495 38352 9 +24796 15581 38361 9 +26399 4206 38361 9 +17469 10121 38454 1 +8602 1665 38454 1 +5120 13717 38455 5 +5348 19297 38457 3 +13164 577 38457 3 +28233 4972 38459 35 +31478 6585 38488 7 +6208 750 38491 10 +925 3169 38494 8 +15760 12341 38496 2 +22817 11327 38496 2 +6766 16302 38497 4 +15233 5271 38498 2 +14911 5563 38499 6 +30007 8013 38501 2 +18017 11125 38502 9 +1398 5905 38503 4 +12826 14185 38505 7 +20349 9125 38506 3 +7636 16078 38508 3 +24085 5093 38508 3 +29326 12225 38509 5 +19006 4291 38511 4 +3712 7067 38512 5 +10794 20419 38516 4 +29269 11166 38518 5 +3935 23531 38523 9 +808 11985 38534 2 +9505 14443 38535 1 +5295 3400 38535 1 +11891 11330 38539 3 +27246 6228 38541 2 +9549 5645 38542 3 +7078 2147 38544 4 +9573 9605 38544 4 +4608 19414 38547 3 +36321 1296 38549 3 +16333 6808 38554 6 +25649 10986 38560 8 +22155 9920 38566 6 +15586 17082 38573 2 +12554 20161 38575 4 +34224 6315 38576 8 +24383 1857 38577 2 +9802 21811 38577 2 +16796 20474 38587 4 +8262 18218 38590 4 +19516 5596 38591 1 +1708 20112 38592 6 +7986 14890 38593 5 +38621 1539 38594 5 +22412 6365 38596 40 +6427 14185 38603 9 +859 11037 38621 6 +1726 3357 38630 2 +33385 8324 38630 2 +8470 7023 38630 2 +15515 18597 38636 8 +10564 9408 38641 14 +30906 3142 38644 2 +12267 7154 38646 9 +39185 1453 38646 9 +643 10167 38651 1 +16723 3959 38652 8 +18316 13190 38654 1 +25713 6925 38654 1 +884 7469 38657 73 +33561 7440 38706 2 +12946 5490 38707 23 +22415 7830 38712 4 +24723 8677 38714 5 +14616 16732 38715 3 +23017 9122 38718 7 +20357 14156 38721 1300 +8907 13706 39181 4 +21749 3053 39184 1 +3129 2998 39184 1 +10755 16550 39187 1 +6481 8578 39188 9 +6727 12403 39191 4 +14345 19522 39192 3 +15043 1725 39193 8 +11127 12339 39197 4 +2098 15549 39201 4 +23576 894 39205 5 +27559 3369 39210 4 +16180 5765 39212 4 +2917 1431 39214 4 +25177 10506 39215 3 +2053 120 39217 7 +9040 15432 39221 4 +18512 17254 39223 1 +26625 3369 39223 1 +29746 10360 39313 3 +29816 3395 39313 3 +26929 7475 39322 3 +13326 7161 39322 3 +21512 15573 39323 4 +5618 14661 39328 2 +8134 14670 39329 6 +7602 20318 39330 4 +18418 22508 39333 4 +18903 5265 39335 9 +1649 8834 39343 19 +33322 6437 39351 5 +24641 1339 39355 4 +12729 6503 39358 2 +21168 16383 39360 4 +16335 3518 39361 10 +410 14383 39366 2 +10763 13134 39367 5 +39427 144 39368 4 +10329 3622 39371 1 +15469 15839 39371 1 +10029 2976 39372 1 +19235 7167 39373 5 +17985 16741 39379 46 +23025 264 39380 4 +6596 19076 39381 4 +33005 256 39382 2 +20845 2065 39384 5 +6827 11064 39386 43 +19484 16909 39404 3 +29293 8527 39405 4 +18877 23030 39406 4 +31508 1979 39410 4 +34779 3309 39411 4 +2849 20359 39411 4 +1141 8345 39439 7 +239 2856 39445 13 +1739 12727 39464 4 +7302 20924 39468 9 +19009 4302 39472 5 +1202 11942 39479 5 +20026 10424 39479 5 +9541 12236 39482 7 +1420 19034 39483 1 +24079 4634 39483 1 +25392 12748 39486 4 +37081 567 39490 9 +15901 9282 39498 4 +435 4803 39499 41 +21799 508 39514 8 +30349 7724 39522 7 +13562 21292 39523 4 +30785 8713 39529 7 +6543 2048 39534 3 +8743 20797 39537 2 +26875 2871 39537 2 +25468 433 39543 4 +3747 1727 39544 2 +35303 93 39544 2 +36669 2370 39546 5 +12466 1902 39551 3 +14139 2008 39554 2 +1642 16 39555 27 +10413 16259 39568 3 +9667 15184 39569 2 +21973 6109 39569 2 +23006 13558 39572 1 +14052 10110 39572 1 +18781 1156 39572 1 +7758 13955 39573 9 +25112 1534 39576 2 +2234 9590 39577 71 +19118 6696 39638 4 +29901 1304 39644 2 +13379 4527 39646 5 +20465 15202 39646 5 +20857 4085 39647 4 +30531 9355 39651 43 +11305 15085 39667 9 +18194 4465 39672 4 +10005 19203 39672 4 +40825 863 39673 4 +16207 22080 39678 50 +18389 17767 39684 5 +1940 20612 39685 3 +18958 3056 39685 3 +8820 6279 39686 5 +2822 2287 39693 3 +29270 5149 39696 3 +10265 4245 39697 8 +25347 16113 39700 4 +12824 10956 39702 5 +11115 188 39702 5 +1119 12524 39702 5 +6598 2761 39703 3 +15912 11698 39703 3 +2499 1144 39703 3 +18599 8516 39706 4 +33960 2203 39708 5 +13031 20070 39713 5 +30376 9485 39719 9 +20617 7424 39723 2 +12402 3229 39725 1 +26810 8316 39726 6 +28091 7790 39732 168 +15299 3323 39757 2 +863 234 39759 10 +29420 3228 39764 6 +30157 4750 39765 47 +25180 10089 39892 11 +21880 5036 39900 2 +13596 21659 39901 5 +2913 7809 39903 3 +20364 8563 39904 1 +28172 3461 39904 1 +39425 107 39908 2 +22731 8558 39910 183 +22097 5993 40018 2 +18568 11439 40018 2 +8545 15160 40019 8 +5068 5092 40022 28 +592 11045 40039 1 +5040 12623 40039 1 +24431 16365 40042 2 +3672 7303 40042 2 +2777 23053 40044 3 +22700 5081 40046 1 +30676 3445 40047 5 +26721 10410 40053 4 +13134 7316 40053 4 +9873 13982 40055 9 +973 8707 40062 9 +36709 1270 40070 7 +4378 1256 40070 7 +13874 23173 40072 43 +646 8297 40082 2 +6878 3140 40084 2 +26128 11109 40085 5 +1512 9043 40087 3 +3646 1243 40087 3 +16709 14625 40087 3 +29549 7958 40092 36 +19223 12761 40120 2 +13502 2975 40121 1 +16115 22256 40122 8 +11430 11445 40125 3 +20578 3913 40127 3 +8354 4238 40129 7 +10082 10999 40133 3 +36046 3132 40133 3 +15554 5653 40139 3 +12666 910 40145 32 +11000 7712 40150 4 +4201 21428 40151 9 +24997 7794 40157 4 +23925 16254 40159 7 +21 13899 40161 8 +2121 16324 40163 3 +23048 3460 40166 3 +28112 10205 40167 3 +1653 13754 40171 3 +24330 8934 40174 2 +13683 8664 40175 17 +17596 9393 40189 1 +11870 12595 40189 1 +37426 221 40190 3 +21062 19548 40193 3 +18737 14922 40198 4 +18576 19193 40201 4 +36746 2826 40203 2 +2984 18442 40205 1 +27386 5226 40205 1 +24127 9553 40219 2 +30303 1209 40222 3 +27858 12942 40225 1 +23122 7379 40226 2 +11610 13025 40227 6 +7488 13071 40233 4 +1169 3369 40234 2 +18287 14546 40237 4 +1711 10055 40238 1 +27812 6826 40238 1 +10192 375 40240 8 +446 3376 40247 5 +20822 20723 40250 1 +6255 2945 40250 1 +15783 17546 40251 7 +37559 1581 40253 2 +26458 972 40255 2 +73 10147 40257 4 +23080 6492 40258 13 +6394 12689 40266 4 +35517 607 40266 4 +17950 20756 40268 1 +3028 11686 40269 9 +5196 19697 40277 4 +15052 7978 40279 2 +3932 19856 40280 24 +9574 16629 40312 2 +16826 15636 40313 3 +32562 4149 40314 2 +22676 1647 40314 2 +16678 15087 40319 41 +7237 21825 40335 2 +7408 4314 40336 3 +22481 1818 40339 4 +30014 3548 40340 1 +8710 15428 40340 1 +1716 3575 40343 8 +24008 11377 40345 47 +16840 17199 40366 6 +30778 6469 40366 6 +15565 4791 40367 9 +15899 23201 40374 1 +927 467 40374 1 +29060 8506 40376 46 +14783 20029 40392 2 +17705 14628 40393 5 +923 3090 40398 3 +4170 20031 40398 3 +15412 12176 40399 47 +12547 12967 40406 2 +3590 12400 40407 3 +4230 3470 40412 3 +32248 4946 40414 8 +8264 20304 40416 737 +6301 2157 40779 10 +26557 14186 40785 6 +446 1859 40788 2 +16975 17654 40789 32 +17951 6014 40789 32 +37710 2914 40790 6 +12260 11545 40791 2 +11380 6751 40791 2 +7551 11243 40791 2 +17271 4927 40802 3 +7255 16355 40803 2 +26653 7313 40803 2 +6804 11815 40806 5 +18983 9772 40811 5 +17786 13504 40814 49 +3983 8237 40824 3 +11678 6726 40826 3 +12928 4868 40827 9 +6391 834 40837 2 +9602 19169 40838 3 +24362 17124 40839 5 +14772 20903 40840 3 +17171 18134 40842 7 +24327 9133 40848 2 +13456 18833 40849 7 +8360 16644 40855 3 +23681 8717 40857 3 +20342 14951 40857 3 +1304 11427 40863 8 +10863 12241 40863 8 +22666 2145 40873 3 +1426 4828 40874 2 +13264 18848 40875 8 +29409 11589 40879 2 +30304 5116 40880 6 +13853 16212 40886 4 +29922 8652 40889 8 +6221 17986 40891 3 +6923 8331 40892 8 +25862 10552 40895 2 +2644 11998 40895 2 +15786 8873 40897 2 +22908 5398 40897 2 +2017 12583 41160 1 +2899 17892 41161 8 +4121 1942 41170 2 +20022 13977 41171 3 +19458 20484 41172 3 +22438 8679 41174 33 +15651 3713 41190 7 +26509 9721 41191 3 +9582 17057 41195 5 +2821 6874 41199 5 +27965 11189 41203 6 +14843 16936 41209 22 +32383 5642 41220 4 +13911 15917 41224 9 +19678 14795 41232 4 +764 5611 41235 4 +29932 3875 41236 3 +16926 11202 41236 3 +8579 6872 41237 4 +8900 4321 41241 9 +4857 22200 41244 12 +36898 942 41247 30 +14858 13294 41260 3 +23585 15896 41261 4 +4466 1060 41262 2 +6148 6612 41262 2 +6947 20566 41264 2 +23321 4030 41266 7 +18275 14850 41270 28 +36103 3485 41273 5 +33169 310 41275 2 +15561 2811 41276 5 +22037 12193 41277 2 +9726 4661 41278 1 +11102 2455 41278 1 +9036 19007 41278 1 +34025 3032 41280 1 +7002 16168 41280 1 +18856 8282 41283 3 +7576 12566 41286 27 +25555 15236 41299 3 +9712 3856 41300 9 +3001 7602 41304 9 +19511 14176 41308 4 +17317 10289 41309 27 +8347 15966 41325 7 +5130 7946 41327 156 +16268 1415 41425 29 +2941 6626 41446 2 +4763 2918 41446 2 +15619 4934 41450 2 +30674 9860 41451 1 +16965 9946 41452 3 +27738 8846 41453 5 +17127 14182 41455 4 +28743 13007 41457 855 +20863 7182 41862 2 +12297 12202 41863 2 +11085 11466 41863 2 +16629 12449 41865 2 +4469 3347 41866 8 +17880 23385 41868 4 +3052 5387 41872 1 +8025 18281 41872 1 +20153 1596 41876 3 +20534 3207 41878 7 +35359 2424 41879 1 +25352 2475 41879 1 +9749 19336 41882 6 +16388 1737 41882 6 +26195 1399 41886 1 +27088 13907 41886 1 +4300 4305 41886 1 +10793 16791 41888 4 +34638 6507 41892 23 +11373 9645 41902 5 +2977 1055 41909 2 +16393 5210 41909 2 +5514 19233 41910 10 +6308 4435 41910 10 +14325 7289 41911 7 +16333 6365 41915 8 +12873 7696 41915 8 +8404 9558 41918 2 +16453 10466 41919 1 +9103 13202 41919 1 +3195 17490 41921 4 +14472 8347 41922 2 +17538 2383 41922 2 +10196 8334 41926 3 +16822 15334 41926 3 +2079 16292 41931 31 +10341 1943 41979 1 +31141 5341 41980 6 +2530 13444 41984 4 +4684 6744 41985 4 +26430 4707 41991 12 +31613 5494 41996 5 +16165 5633 42000 2 +21379 5997 42001 2 +10388 7115 42002 3 +9070 6883 42005 4 +4110 8870 42007 3 +1617 10749 42009 10 +8931 20902 42012 4 +14940 14573 42013 4 +4329 11395 42014 3 +35907 17 42014 3 +17452 12256 42014 3 +12261 5352 42015 7 +16394 3892 42019 1 +31053 9289 42020 2 +37127 4897 42023 5 +21143 10240 42027 10 +9919 20459 42029 2 +30753 3209 42029 2 +4052 17717 42032 105 +34150 5139 42073 5 +176 13827 42083 3 +25831 3990 42083 3 +13975 21063 42084 7 +19085 12276 42088 7 +10715 221 42099 5 +8019 7692 42104 1 +2089 2659 42105 2 +14694 8606 42106 9 +2226 23032 42110 2 +25608 636 42110 2 +21943 1236 42113 5 +8274 2415 42113 5 +4528 12532 42124 2 +22153 8023 42127 6 +11026 22911 42134 5 +9390 10485 42136 6 +30242 4372 42142 1 +4232 15121 42142 1 +5051 22869 42147 1 +13264 799 42147 1 +8145 20970 42150 6 +15639 2698 42150 6 +22846 12943 42183 4 +13729 18515 42188 4 +18619 5153 42188 4 +13448 16280 42192 3 +4680 7388 42192 3 +13346 22374 42193 7 +33660 6573 42196 4 +9638 23395 42198 3 +22032 12439 42200 4 +12815 3907 42203 5 +12232 17778 42206 2 +2699 15494 42207 46 +19518 2099 42216 1 +16374 8814 42217 14 +25351 1909 42220 2 +14213 6360 42221 17 +20068 17308 42221 17 +903 5237 42226 30 +16063 3947 42233 4 +26643 8902 42237 2 +31036 10883 42237 2 +20247 18244 42246 4 +22536 12352 42249 2 +6275 11235 42250 11 +8053 2024 42250 11 +9069 5833 42250 11 +19647 2750 42256 2 +16837 5813 42256 2 +12463 14463 42259 3 +11180 829 42260 9 +12910 12696 42266 10 +19876 5398 42267 2 +6153 7564 42268 34 +497 11844 42290 2 +19688 15790 42292 6 +17763 228 42293 4 +13681 16013 42295 9 +10699 22817 42301 10 +32404 6983 42305 3 +9169 8862 42308 4 +33631 6832 42310 7 +16356 11507 42314 9 +10257 10705 42315 5 +9852 20310 42317 9 +4622 5624 42325 5 +16290 18044 42325 5 +21410 11189 42326 7 +23603 11822 42338 3 +6128 15890 42339 4 +10885 12193 42344 9 +2313 12453 42348 9 +3769 734 42363 1 +11254 5365 42363 1 +6665 17516 42368 41 +30017 10759 42390 4 +1624 8831 42390 4 +17330 4078 42390 4 +1992 21933 42391 7 +10047 14544 42397 6 +22270 3775 42401 83 +11920 9422 42475 3 +4916 5400 42475 3 +14338 15295 42481 3 +23434 8373 42481 3 +38186 2281 42482 4 +33003 5188 42487 2 +14982 8980 42487 2 +11731 3478 42489 4 +28323 3623 42493 4 +28507 8080 42496 9 +16648 2498 42503 3 +2242 17500 42503 3 +11699 5508 42504 3 +16167 11510 42504 3 +7696 22000 42505 5 +28084 5453 42516 4 +21609 18033 42518 4 +37858 3310 42521 3 +3280 20357 42522 5 +12030 3311 42522 5 +23399 13209 42526 5 +14710 19542 42530 5 +28763 7090 42535 9 +35064 5402 42539 4 +30899 9820 42539 4 +32089 1076 42540 3 +3266 21123 42541 8 +2645 3668 42543 5 +22762 10429 42547 14 +31092 467 42569 2 +9712 21873 42570 1 +10493 1795 42570 1 +551 1795 42570 1 +26125 4090 42571 43 +34744 2367 42580 2 +8161 15798 42580 2 +7360 4103 42582 2 +6254 12097 42583 76 +40514 1366 42648 4 +15751 2567 42649 8 +33792 7225 42656 8 +3615 773 42663 2 +14076 11073 42666 5 +19875 7384 42667 1 +12875 20681 42668 1 +2329 2987 42668 1 +25159 620 42670 4 +12471 3224 42673 7 +11360 9460 42673 7 +6574 2872 42673 7 +23462 11336 42673 7 +17061 11763 42681 1 +18782 18290 42682 17 +22615 4474 42682 17 +19165 4943 42682 17 +17760 18910 42684 9 +31109 3632 42691 6 +26352 14657 42698 7 +12498 15892 42701 5 +7143 11155 42702 5 +19768 6823 42709 1861 +7824 22967 43163 23 +17133 3263 43220 2 +17706 522 43221 1 +13304 965 43221 1 +16124 2679 43223 3 +4221 9871 43223 3 +27578 14331 43246 4 +33870 914 43248 2 +13944 20342 43251 2 +9413 3326 43251 2 +17737 15256 43252 4 +9820 4871 43255 4 +33752 783 43257 8 +20726 8907 43257 8 +3508 15225 43261 2 +21356 6861 43263 6 +35356 120 43265 1 +16775 3696 43265 1 +30243 1241 43265 1 +25985 15463 43270 44 +408 5617 43314 2 +23416 9128 43314 2 +14422 16748 43328 2 +6019 6920 43328 2 +6519 20306 43356 5 +16355 313 43361 3 +1383 18151 43363 1 +3950 18784 43364 63 +21060 4833 43397 4 +22042 1143 43397 4 +13382 6184 43397 4 +17140 4065 43398 5 +31414 3325 43399 2 +26513 11599 43399 2 +17194 12292 43400 3 +25430 1422 43402 5 +17266 17521 43405 4 +23612 9338 43409 4 +6707 16045 43414 2 +28501 7623 43414 2 +6515 13850 43416 6 +5733 2994 43416 6 +3664 12593 43421 4 +3118 8552 43422 3 +13858 11132 43422 3 +16076 527 43426 6 +31596 7179 43436 6 +10744 2803 43437 1 +29023 9440 43437 1 +19022 3188 43438 4 +24515 7285 43439 165 +19721 14718 43466 9 +19718 10264 43467 3 +19645 15337 43471 4 +6168 5082 43472 177 +273 22733 43646 5 +8101 6215 43651 4 +23518 10658 43651 4 +9627 13374 43652 3 +9807 21224 43654 2 +8303 2087 43655 5 +20489 17980 43655 5 +20594 20456 43661 1 +1279 10022 43662 1 +1231 12210 43662 1 +13266 22088 43674 2 +1420 1580 43674 2 +294 3417 43680 234 +9118 14489 43878 1 +98 2711 43878 1 +21612 10677 43879 33 +12360 89 43881 2 +20366 20422 43882 2 +10625 17488 43883 2 +1934 14401 43884 7 +13725 19378 43885 1 +17388 4290 43885 1 +22100 3162 43892 5 +26271 5453 43893 9 +14864 9808 43901 4 +35140 5722 43902 6 +1573 17946 43902 6 +13087 18002 43904 8 +35158 3829 43906 6 +38608 1252 43910 2 +24447 6011 43912 3 +26288 15494 43914 3 +2204 508 43915 4 +8959 22516 43916 3 +13703 1152 43916 3 +23814 14386 43922 46 +168 265 43952 1 +9892 9474 43952 1 +1950 2090 43965 875 +18951 14763 44056 8 +19598 4581 44058 4 +24134 7387 44060 16 +16331 12880 44066 1 +39174 1131 44066 1 +40622 47 44069 2 +21959 6450 44069 2 +23747 17171 44069 2 +36796 3322 44071 1 +13697 18399 44072 5 +28449 10366 44073 2 +9173 13302 44073 2 +25089 5049 44075 5 +7608 9499 44076 3 +22108 12783 44079 7 +8548 17324 44089 4 +12379 11313 44091 8 +22772 1894 44091 8 +8281 6649 44429 3 +8096 7019 44430 4 +29349 10350 44430 4 +28579 8743 44431 8 +23266 11829 44433 4 +22009 8707 44433 4 +15858 5338 44434 3 +2880 15970 44434 3 +10567 5607 44436 1 +61 9465 44436 1 +16656 368 44438 5 +25940 7491 44443 4 +12920 1048 44446 4 +1443 12887 44452 4 +11080 18175 44453 4 +422 15355 44456 3 +21715 13427 44459 2 +9319 4992 44459 2 +20219 3227 44459 2 +34793 1835 44459 2 +5356 16050 44462 4 +6030 19967 44465 5 +7027 6906 44468 2 +30021 6978 44468 2 +8657 18523 44470 26 +12343 54 44494 34 +21334 14517 44505 8 +15201 3509 44509 3 +17170 9834 44511 1 +15780 22391 44512 2 +18722 1277 44512 2 +8506 14816 44514 4 +23289 12311 44515 4 +24361 10144 44516 4 +13088 4810 44519 3 +3005 20948 44521 3 +19796 22038 44522 9 +19714 14311 44524 2 +23771 14873 44525 5 +19154 3138 44526 3 +18104 3683 44526 3 +18267 19222 44526 3 +34613 3881 44526 3 +38773 3088 44559 3 +3242 18861 44559 3 +21444 15378 44560 6 +26836 10187 44563 2 +17479 1429 44565 2 +25392 3181 44565 2 +11826 17584 44573 5 +2741 4462 44579 10 +24893 12770 44581 2 +3788 14989 44582 8 +31308 9368 44583 5 +6623 3528 44586 1 +5426 22522 44587 4 +4133 8210 44591 2 +2238 10303 44591 2 +13446 16203 44592 2 +8972 7465 44592 2 +20187 12596 44593 5 +23393 9876 44597 3 +16183 14636 44599 1 +27347 5894 44600 7 +1745 22682 44603 38 +17311 7445 44636 3 +14354 10206 44639 5 +33321 8392 44641 2 +12983 15016 44642 3 +17593 8652 44642 3 +8651 12212 44644 374 +3210 2429 45091 1 +14472 16997 45091 1 +37673 1541 45098 269 +208 2934 45175 2 +3248 17963 45176 9 +22944 12801 45182 47 +19243 14021 45200 7 +3163 21453 45207 3 +7606 1996 45208 3 +10585 16846 45212 5 +8035 23148 45216 10 +33576 3016 45219 8 +31871 5903 45224 2 +31771 6154 45227 10 +24463 10324 45227 10 +22540 2479 45228 5 +2963 4787 45232 168 +19523 8202 45322 2 +3673 18204 45323 6 +1465 8488 45325 5 +25489 15180 45325 5 +23522 3892 45333 5 +22260 48 45335 2 +1804 13760 45338 5 +28388 5470 45339 9 +5086 12770 45345 2 +20240 10226 45345 2 +1401 7904 45350 8 +24821 831 45355 5 +25770 8477 45357 4 +2033 2506 45361 4 +32931 4220 45362 5 +29208 2702 45366 3 +15429 15896 45372 3 +21550 9570 45374 4 +3869 4832 45374 4 +385 10192 45377 2 +29873 3825 45378 7 +28743 12883 45380 43 +21755 6726 45390 4 +11745 20554 45394 7 +19629 14010 45398 3 +7915 11492 45399 7 +30207 10069 45401 10 +11247 7331 45412 2 +21134 11527 45412 2 +3056 6857 45417 3 +27532 1570 45418 2 +30919 8066 45419 3 +16569 939 45420 1 +20269 17883 45421 8 +6901 18205 45424 1 +33237 637 45425 7 +34612 5848 45431 6 +30427 5480 45436 5 +6540 8051 45444 1 +35110 1290 45445 4 +1907 8768 45445 4 +6414 3872 45446 48 +7672 20317 45455 2 +19350 15015 45456 9 +32463 6028 45466 6 +2975 451 45466 6 +2562 5497 45467 3 +16833 20927 45469 3 +14149 16546 45471 5 +585 18124 45472 4 +11260 5544 45472 4 +17947 2452 45472 4 +14240 12902 45475 8 +18669 8359 45476 25 +23302 16708 45483 2 +19508 5737 45484 2 +18068 5745 45486 8 +16114 7148 45495 1 +2897 8500 45496 3 +17524 14936 45499 2 +9806 8732 45499 2 +11547 12248 45501 4 +3868 11420 45501 4 +6760 11963 45517 4 +16 3537 45521 2 +24819 7514 45522 9 +13260 17291 45526 40 +9016 11938 45534 4 +7264 741 45537 2 +21537 109 45537 2 +4775 16720 45538 9 +1971 14396 45545 5 +10689 20605 45549 38 +39002 719 45572 5 +13430 852 45579 46 +27364 8854 45597 4 +1645 5810 45603 2 +10039 17679 45604 2 +5325 6763 45608 8 +11543 3326 45613 6 +7338 6447 45613 6 +23804 7350 45616 5 +25476 2688 45619 43 +34704 4096 45629 2 +21153 19638 45631 2 +9404 4030 45631 2 +5845 18786 45634 4 +7099 3226 45635 45 +13407 17497 45668 85 +14615 9442 45687 4 +34469 3265 45688 6 +8053 17863 45692 10 +10511 16118 45698 3 +27293 8806 45701 1 +29197 6763 45701 1 +34933 7105 45701 1 +11827 11652 45703 2 +14015 19486 45704 39 +14719 9094 45712 3 +9199 14574 45712 3 +11546 9054 45712 3 +22466 17712 45716 3 +12155 1974 45716 3 +10922 14936 45722 5 +4930 8297 45725 4 +2329 6670 45727 1 +3896 1240 45728 44 +7893 18803 45753 2 +18162 1454 45754 7 +13433 14622 45760 2 +19517 4674 45761 1 +27128 3342 45762 8 +11439 1364 45767 3 +29454 384 45769 8 +13390 22637 45770 5 +15401 13009 45771 40 +15995 3347 45785 4 +20762 917 45788 4 +12281 3577 45791 1 +2535 9917 45792 4 +21185 16232 45801 19 +28653 1288 45814 3 +14548 7796 45818 5 +39221 2228 45820 45 +7587 6715 45840 3 +18000 23517 45844 3 +22130 151 45844 3 +29813 9543 45845 1 +6358 5360 45846 4 +6924 3925 45848 4 +16074 310 45848 4 +23317 12228 45849 2 +27365 742 45849 2 +15446 22864 45850 64 +6822 12272 45870 4 +41 4236 45873 997 +13950 2528 46135 3 +27411 8429 46137 2 +21764 9372 46137 2 +34024 1707 46138 24 +20736 4844 46152 10 +24746 7876 46161 47 +4430 6227 46219 2 +11353 5430 46220 3 +9875 5640 46221 4 +20691 6412 46224 1 +2163 4548 46225 7 +11211 15247 46235 3 +36960 3773 46239 3 +23576 13358 46239 3 +4446 11890 46243 3 +1149 11472 46244 1 +1799 1964 46244 1 +2193 12196 46244 1 +34117 3233 46244 1 +9943 6011 46325 3 +4554 7575 46328 5 +2924 15608 46330 244 +28296 4456 46404 2 +11275 11055 46404 2 +37747 1931 46409 3 +19173 20445 46410 5 +29730 11894 46415 4 +3571 23345 46417 34 +16492 22953 46420 5 +4378 9482 46424 5 +556 3347 46425 4 +10282 23657 46428 7 +3504 707 46432 6 +7183 4165 46436 1 +23174 15355 46437 5 +6933 17281 46440 2 +35917 5330 46442 5 +4495 21073 46445 2 +29180 6989 46446 5 +31051 363 46446 5 +27621 1219 46505 3 +29672 11282 46506 2 +18524 9805 46507 5 +6276 12909 46509 2 +19355 22588 46510 36 +376 16004 46520 25 +5876 2463 46543 1 +10472 10238 46543 1 +33898 8143 46544 3 +14883 9963 46546 4 +21400 8840 46549 20 +22786 6002 46549 20 +4738 2314 46549 20 +22448 5349 46549 20 +153 7791 46549 20 +29563 2838 46553 4 +14838 21656 46558 3 +13439 2012 46558 3 +3375 613 46558 3 +28980 11985 49474 172 +26177 2706 49507 7 +22438 17400 49513 570 +15461 13299 49740 7 +4666 10369 49740 7 +38803 2154 49758 6 +3199 19340 49763 7 +21447 4328 49763 7 +10988 16941 49769 2 +11592 14051 49771 3 +24599 6423 49773 2 +8613 2009 49773 2 +5581 9041 49776 3 +20791 10209 49777 47 +3982 12942 49777 47 +5724 13110 49778 4 +19078 9868 49779 9 +30801 8773 49783 1 +17457 22935 49784 1 +8231 17037 49785 4 +1387 7958 49788 1 +17299 3032 49789 13 +28541 8318 49799 2 +1596 22489 49801 3 +8025 20989 49803 4 +14422 2679 49803 4 +16739 22174 49805 4 +10563 16677 49806 2 +16445 20879 49808 3 +24212 16011 49810 5 +2414 11648 49811 2 +10948 12020 49811 2 +5205 19818 49818 2 +551 4317 49819 4 +20078 5432 49828 4 +11155 23317 49829 6 +16405 12392 49837 10 +20940 14641 49838 2 +13321 7535 49839 8 +19991 11668 49849 3 +26220 13064 49851 34 +23070 13190 49897 48 +19789 19762 49945 4 +29056 4601 49947 9 +14839 12059 49950 5 +3560 12160 49955 3 +18947 427 49958 5 +11353 7423 49963 2 +21853 2062 49964 4 +33576 1527 49965 256 +19430 5873 50020 4 +23085 12142 50022 4 +25377 11482 50024 4 +21027 4727 50025 30 +13487 13688 50050 5 +15027 19533 50055 5 +15912 4135 50055 5 +24791 1809 50059 3 +11268 23175 50065 1 +1131 1591 50066 2 +8858 2044 50067 5 +15314 10325 50070 1 +37687 4282 50071 4 +9525 15914 50072 3 +10871 19200 50075 2 +21668 13363 50076 2 +14081 234 50076 2 +34310 5736 50084 2 +407 1258 50084 2 +20330 1602 50085 5 +13423 21092 50090 7 +16756 16964 50095 1 +16473 6704 50095 1 +20564 7105 50096 9 +27243 9122 50103 3 +11681 492 50104 8 +31413 1706 50105 1 +12718 8312 50105 1 +20658 12206 50107 8 +13938 23087 50111 2 +20095 581 50111 2 +20575 581 50111 2 +34754 5495 50112 2 +4793 18610 50113 6 +23279 9836 50117 4 +19253 5773 50118 4 +6687 17895 50118 4 +7773 11590 50119 5 +16825 5093 50121 1 +29799 11613 50122 9 +7332 9607 50130 2 +29113 1979 50131 2 +18955 18865 50132 2 +17337 15823 50134 1 +11505 7845 50134 1 +12007 2013 50134 1 +13214 3589 50137 5 +17738 13942 50137 5 +10851 21496 50140 9 +1826 6486 50150 2 +20182 8681 50151 4 +3074 2778 50153 9 +13169 17617 50166 5 +4403 19406 50170 4 +27252 11159 50172 2 +1800 800 50173 1 +3037 1028 50174 3 +4177 18225 50176 8 +32550 5244 50181 2 +12060 2703 50183 4 +11624 859 50187 4 +12347 20107 50189 4 +9125 1012 50189 4 +23862 11359 50192 7 +3258 1071 50195 5 +7450 10022 50196 4 +25127 14974 50197 5 +10964 21854 50198 4 +30164 1549 50200 5 +9895 19553 50201 4 +15483 22779 50204 9 +5240 19292 50207 126 +5536 8155 50232 5 +31600 9475 50234 2 +25092 10563 50235 5 +20907 19929 50237 6 +18719 3303 50244 8 +10210 11182 50248 4 +9640 22969 50249 1 +31893 8820 50250 4 +31220 387 50253 23 +29628 8466 50256 6 +1546 10197 50258 221 +18265 205 50313 6 +7247 22317 50314 7 +28525 6941 50316 3 +19908 9801 50317 1 +25967 10358 50317 1 +11076 7251 50317 1 +22079 11710 50318 3 +4050 10836 50319 4 +6333 12832 50319 4 +3580 328 50400 2 +13968 4594 50401 2 +20261 1195 50402 5 +4597 3751 50404 2 +18424 7438 50406 9 +12853 704 50407 2 +16331 16496 50408 4 +26250 7172 50408 4 +17874 11772 50410 20 +4118 1740 50418 1308 +3421 6050 52593 1 +7465 17618 52593 1 +9899 2412 52594 8 +12288 8580 52598 7 +14413 21851 52607 3 +10169 1341 52608 9 +11965 23487 52616 2 +423 7973 52617 5 +12489 16001 52620 4 +2306 15490 52621 3 +13218 6632 52622 7 +24593 12696 52623 2 +4512 8094 52624 2 +33704 3057 52624 2 +17426 12517 52624 2 +16424 4777 52627 3 +29003 9666 52627 3 +34917 2161 52631 4 +13682 17990 52633 4 +11215 3681 52633 4 +27569 3698 52634 1 +20079 5323 52634 1 +12218 9835 52637 8 +3834 7107 52639 2 +22538 4643 52640 2 +26824 4444 52640 2 +27060 10581 52642 1 +24361 4107 52642 1 +1367 7863 52643 3 +12154 9156 52643 3 +25049 6772 52646 4 +31100 2159 52646 4 +3677 17895 52654 1 +24807 5773 52654 1 +24043 1198 52655 6 +22112 17761 52657 8 +21480 7433 52664 2 +19152 1480 52666 9 +15203 22860 52667 9 +30074 4992 52671 4 +13994 16928 52674 19 +23612 13905 52677 2 +470 18095 52679 3 +16916 14261 52680 15 +7847 4125 52683 26 +25267 3786 52719 2 +18329 17201 52721 5 +14712 6467 52721 5 +34781 1452 52724 5 +31271 4133 52725 8 +1890 10719 52734 2 +2419 21479 52737 3 +19521 1106 52738 5 +10750 1365 52739 251 +18066 31 52770 5 +24131 16632 52774 5 +35947 4217 52774 5 +19695 7036 52774 5 +16968 16054 52778 3 +35160 1703 52779 4 +9119 4491 52781 4 +34828 6508 52782 989 +7243 18704 53377 9 +12519 20568 53392 4 +12944 19005 53398 5 +23536 11080 53402 9 +131 12466 53410 5 +13444 2198 53411 4 +3718 14479 53414 8 +13746 18689 53416 2 +21763 2622 53417 10 +11353 473 53421 10 +1019 5296 53428 2 +16959 3589 53429 8 +22123 10408 53432 5 +604 9871 53437 8 +3322 11866 53444 3 +29054 1490 53446 9 +35293 5575 53452 2 +17828 9561 53456 10 +28153 1575 53461 5 +7687 22102 53464 10 +5823 888 53467 2 +10706 1667 53469 3 +13494 15208 53472 2 +14780 9213 53473 9 +12359 7250 53481 7 +27433 14332 53485 4 +10862 19155 53491 42 +12614 1265 53520 1 +17225 15982 53520 1 +5238 14162 53521 9 +23456 15785 53535 7 +2502 7883 53535 7 +1298 5856 53537 4 +3862 3862 53538 4 +28108 10928 53541 3 +6090 12740 53541 3 +22527 2420 53544 46 +16091 14796 53554 4 +4526 7730 53555 2 +11595 7186 53557 180 +34784 5590 53699 4 +19544 8998 53701 4 +6905 897 53703 5 +12963 4279 53708 22 +25543 9944 53749 10 +27351 11964 53757 3 +16601 11704 53757 3 +18674 16069 53760 4 +16890 6347 53764 4 +25467 1066 53765 5 +32962 6543 53768 2 +1125 21379 53772 2 +15272 16151 53773 5 +5583 16632 53780 1 +36452 3979 53781 1 +3170 4923 53783 1 +20367 1532 53785 4 +21150 5827 53786 4 +11514 8442 53790 2 +27262 4474 53790 2 +8454 14168 53792 3 +26306 9500 53792 3 +8112 8162 53794 1 +8545 6636 53796 3 +22804 11119 53797 1 +551 10630 53798 3 +31595 1988 53802 2 +39809 766 53802 2 +1153 8487 53808 3 +12971 15181 53808 3 +16092 2514 53810 8 +7683 779 53816 2 +5891 19949 53816 2 +29596 727 53817 10 +22311 12545 53829 4 +12366 9358 53829 4 +17018 6798 53831 2 +26959 9215 53832 1 +31886 8481 53832 1 +7785 6511 53843 4 +8686 3930 53844 3 +14859 23290 53847 4 +17008 6962 53851 10 +9280 8783 53866 2 +22425 18812 53867 2 +17689 1354 53868 2 +11947 13216 53871 2 +37201 1709 53872 3 +9859 7440 53876 2 +7561 5708 53876 2 +9506 8041 53880 3 +1103 23015 53881 2 +7828 22318 53883 8 +8491 6388 53890 8 +14077 16079 53895 2 +32050 277 53897 4 +6273 4421 53897 4 +17525 15161 53900 4 +16491 16936 53903 107 +592 12598 53955 5 +25486 16092 53956 5 +6912 6607 53958 1 +20281 11276 53958 1 +14166 1792 53959 7 +26057 1984 53964 3 +7405 11815 53965 5 +15523 19934 53966 88 +26658 2197 53975 2 +19196 14210 53976 3 +19236 16715 53978 6 +23334 5352 53983 3 +16881 19175 53986 2 +4502 13870 53987 17 +34199 1493 53996 3 +26445 13629 53996 3 +22889 10039 53996 3 +11505 4028 53997 4 +23224 3520 53997 4 +9195 15970 53997 4 +36261 2037 53997 4 +13101 19441 54016 1 +36005 3056 54017 5 +16950 9961 54019 4 +4046 13707 54019 4 +26512 803 54019 4 +3980 14991 54021 22 +8742 17984 54041 3 +24038 14563 54043 5 +36959 4467 54044 4 +5275 1338 54047 2 +34450 4111 54049 9 +12933 21852 54052 5 +34677 4982 54054 5 +9328 1397 54056 3 +11101 10652 54056 3 +755 16717 54059 2 +32564 9206 54060 3 +4456 18658 54061 5 +3436 15759 54062 2 +36862 1478 54062 2 +7352 14373 54067 7 +2958 21909 54071 4 +25081 10180 54076 4 +30793 3541 54079 4 +23126 3235 54082 7 +18055 922 54085 6 +27101 10469 54086 5 +10857 956 54090 1 +25234 11339 54091 2 +22980 2101 54092 4 +13471 11529 54093 3 +23981 12875 54094 6 +12207 12183 54095 116 +3557 22820 54104 2 +18828 10435 54105 7 +7699 12295 54110 3 +24289 14192 54112 2 +17316 21255 54113 5 +16938 14862 54116 8 +5576 8070 54117 5 +29025 11750 54118 115 +19852 14100 54260 1 +13754 9568 54260 1 +17760 15891 54261 10 +28664 5042 54264 35 +35987 398 54277 4 +19077 22685 54280 3 +2564 983 54280 3 +17210 18998 54281 3 +8026 4950 54285 9 +26842 827 54289 1 +26736 759 54290 10 +20319 17413 54301 9 +32559 3009 54311 14 +12482 2601 54311 14 +36995 5021 54316 5 +14871 3437 54317 7 +30992 2991 54319 2 +3815 17200 54320 4 +16571 6468 54320 4 +28925 11397 54323 9 +27003 5804 54333 7 +37162 2597 54338 1 +8773 18134 54338 1 +19669 20538 54342 3 +11681 8231 54343 4 +9309 16181 54346 4 +2368 15869 54351 1 +27380 671 54351 1 +16125 11379 54353 10 +21368 7351 54353 10 +8463 19314 54354 3 +19431 4354 54354 3 +21372 5096 54356 3 +6904 17909 54358 5 +711 5759 54358 5 +37502 989 54361 2 +17849 23467 54362 2 +30157 201 54362 2 +9357 59 54364 2 +11790 5061 54366 5 +2819 16679 54366 5 +29092 5623 54367 5 +14840 9050 54368 5 +28420 2023 54372 36 +23900 9606 54389 5 +682 21260 54391 4 +5646 10304 54392 4 +16416 8112 54397 4 +21217 9382 54399 4 +2564 9489 54403 3 +13605 5127 54404 2 +18727 4251 54405 5 +10076 13688 54410 2 +19106 1545 54411 28 +16885 10959 54430 9 +11114 19168 54437 3 +14886 5363 54442 5 +33223 377 54446 2 +35831 2212 54447 3 +7041 18915 54449 5 +24936 9312 54450 7 +18469 13674 54451 2 +5398 5425 54452 3 +10911 13124 54453 5 +10141 14469 54458 41 +19058 6408 54478 3 +23156 12366 54480 5 +5039 4135 54481 6 +9990 15969 54483 9 +4550 18754 54490 2 +20937 6628 54491 1 +10237 17040 54491 1 +7620 16741 54492 45 +25769 5833 54533 4 +25796 1992 54533 4 +4373 7746 54538 4 +11532 3481 54539 4 +1216 11015 54545 9 +5825 21935 54554 13 +5541 420 54566 4 +2898 3765 54567 50 +6692 7264 54612 5 +15763 7177 54613 3 +8937 16491 54613 3 +6329 16942 54617 2 +14337 6726 54617 2 +8918 10537 54618 2 +30291 11650 54618 2 +15356 3349 54619 4 +30021 2738 54621 2 +20413 17719 54622 4 +30429 11121 54623 5 +14988 3053 54625 7 +22512 3399 54626 3 +2627 546 54626 3 +21013 9236 54626 3 +11224 1630 55140 4 +12777 3711 55150 12 +35937 2568 55150 12 +13277 6200 55150 12 +21665 1044 55150 12 +5140 759 55152 1 +6341 10062 55153 10 +13390 2937 55155 3 +10066 12941 55159 2 +27846 814 55159 2 +18526 18471 55164 4 +4711 21624 55168 2 +13218 9835 55169 1 +6652 1175 55170 145 +28817 1537 55247 9 +16925 15706 55251 2 +17304 3607 55253 4 +13079 16423 55254 2 +1472 224 55255 4 +16668 7196 55256 4 +21078 4521 55257 9 +680 8006 55263 4 +3234 15662 55263 4 +32382 1587 55275 6 +2207 9115 55277 2 +854 11234 55279 4 +5065 7076 55281 3 +8570 1169 55282 3 +19790 10282 55285 5 +38471 2099 55289 4 +11056 10055 55292 5 +8895 8903 55293 2 +3487 16817 55294 10 +36499 3742 55304 7 +29933 5134 55313 10 +6705 2460 55315 3 +8875 18229 55316 3 +6680 22427 55319 1 +36794 1137 55320 3 +8221 5802 55322 4 +24069 1723 55323 4 +8318 23667 55328 2 +1168 7614 55329 8 +1505 222 55336 1 +23465 17830 55336 1 +23147 13955 55343 18 +1828 22756 55352 3 +9944 13930 55355 5 +17112 2685 55358 4 +18477 4123 55361 1 +11948 5075 55361 1 +26962 4519 55363 3 +21361 7492 55366 5 +29083 10944 55366 5 +25759 15730 55368 6 +27260 11968 55370 10 +26255 5440 55380 3 +23106 7158 55382 2 +9484 7499 55382 2 +11275 1627 55387 7 +22620 13173 55395 4 +1191 21448 55397 2 +25195 1637 55398 4 +24153 9568 55401 2 +811 3124 55402 1 +35999 487 55403 1 +439 20246 55404 5 +3233 10619 55411 5 +9600 5961 55413 31 +8803 12648 55414 5 +19428 15925 55415 2 +1158 3093 55416 3 +4558 3430 55417 6 +37464 1805 55421 23 +11635 5836 55430 36 +4784 17118 55464 9 +579 23546 55467 3 +856 1259 55468 37 +18095 20739 55482 2 +29681 3131 55483 6 +13700 9677 55484 5 +34631 6067 55487 4 +15933 23397 55489 9 +28705 3773 55497 5 +11255 11265 55502 14 +28656 12021 55504 1 +14404 3499 55505 4 +18237 15108 55508 37 +21196 12815 55540 4 +5613 15651 55545 6 +34694 6775 55548 98 +30836 9546 55629 28 +34274 2888 55639 9 +653 6142 55649 2 +7108 14637 55649 2 +15786 8902 55651 4 +34227 6561 55655 3 +11293 3902 55655 3 +32475 2233 55655 3 +3902 20737 55660 5 +13099 10140 55661 8 +15269 11734 55668 1 +10257 20011 55669 4 +628 10207 55671 4 +21892 1248 55672 15 +35085 3721 55689 5 +35321 1930 55692 4 +29005 9868 55692 4 +2505 2890 55692 4 +978 17920 55693 4 +2884 1215 55697 5 +15104 21980 55698 1 +2440 1688 55698 1 +5071 11391 55699 1 +1384 1437 55701 3 +23911 8564 55702 5 +29511 4929 55703 4 +29179 4449 55711 2 +3136 9504 55715 5 +6670 22660 55717 9 +15491 18203 55718 2 +22793 7150 55719 4 +7928 22449 55720 12 +3367 10574 55726 6 +2130 5693 55732 9 +1553 5308 55735 4 +2353 2771 55738 5 +33167 5073 55743 3 +28075 6891 55745 2 +24687 12127 55745 2 +23653 7358 55746 38 +6289 857 55793 1 +12986 15618 55793 1 +8715 6489 55793 1 +5686 13433 55796 1 +30021 3497 55796 1 +303 15358 55798 5 +1669 10689 55799 1549 +21902 13382 56485 5 +9929 13855 56490 4 +4735 9583 56492 2 +11757 5626 56492 2 +18637 15269 56504 1 +17637 8399 56504 1 +6871 18394 56508 4 +8422 18579 56509 4 +10487 23655 56512 1 +1793 13 56512 1 +19013 5229 56513 6 +27783 2641 56515 2 +31300 9487 56516 7 +30737 8591 56526 3 +26592 15061 56528 2 +16196 9674 56529 4 +4217 2325 56531 7 +28876 3839 56538 17 +35541 2642 56549 33 +22471 15706 56558 4 +26295 7400 56561 8 +24408 7430 56562 25 +12020 12474 56562 25 +5014 2215 56564 2 +1913 5904 56565 3 +30473 3415 56566 1 +36963 3596 56566 1 +18875 9911 56567 3 +8186 8034 56569 1 +2999 4404 56570 4 +37091 2116 56574 9 +15985 19193 56579 5 +2868 4180 56584 3 +24816 5515 56586 3 +10999 22907 56587 9 +12506 3389 56589 10 +27447 8633 56590 2 +1466 15035 56590 2 +20704 16109 56591 4 +32426 7951 56593 3 +15120 21290 56594 8 +24690 2942 56602 9 +7039 2862 56609 3 +23412 10271 56610 1 +15916 8299 56611 5 +29157 1015 56612 3 +12257 15655 56615 33 +10730 14890 56646 5 +8667 3062 56648 2 +17140 16773 56649 8 +13228 18426 56654 3 +675 5242 56654 3 +25066 413 56661 7 +2651 4572 56665 5 +4868 10127 56666 5 +17881 12701 56678 1277 +23296 9640 57272 5 +17938 11719 57273 3 +12762 11814 57275 8 +21429 8284 57281 5 +25334 12399 57281 5 +34909 1974 57377 1 +22195 715 57377 1 +5263 15686 57381 3 +8436 7982 57381 3 +20938 15650 57385 4 +6087 3262 57388 1 +31399 4115 57388 1 +863 18145 57400 3 +16279 7384 57402 2 +2322 911 57403 41 +27220 3085 57456 4 +6435 7811 57457 3 +32387 2797 57458 4 +673 8459 57461 4 +162 7717 57464 7 +23398 5640 57464 7 +6914 12386 57465 7 +3031 11282 57465 7 +22934 13433 57466 8 +20548 19426 57472 8 +1327 2498 57478 3 +4246 12144 57479 9 +34953 2481 57486 3 +20454 19388 57488 5 +23793 14950 57490 9 +22743 2176 57501 3 +27926 12898 57503 5 +2111 1533 57506 3 +3622 14448 57506 3 +7625 7709 57506 3 +31698 6418 57507 4 +10929 12791 57507 4 +6689 1187 57517 2 +14227 10053 57520 2 +2089 17061 57522 3 +19817 12571 57525 4 +676 10908 57525 4 +23144 8589 57527 2 +8741 6462 57528 7 +8767 22626 57536 1 +26076 1042 57536 1 +38490 2794 57537 1 +20415 16828 57538 5 +11930 2096 57539 3 +19944 3655 57540 2 +13607 7944 57542 5 +26718 565 57547 5 +1156 16716 57551 6 +17487 21700 57553 4 +30834 5510 57557 3 +26124 14148 57558 5 +22616 9520 57558 5 +16068 2386 57559 5 +1602 11567 57568 5 +21883 16877 57571 2 +31536 6392 57573 1 +22296 10253 57573 1 +2967 7633 57582 3 +10657 2225 57584 6 +27569 9125 57586 4 +18265 3617 57587 7 +20056 469 57589 1 +12852 773 57590 4 +15247 17086 57591 8 +8744 2104 57596 3 +10699 8543 57598 3 +9503 3676 57601 4 +25249 9206 57602 9 +5223 16190 57609 29 +24620 8077 57626 2 +11239 12364 57626 2 +17281 20898 57631 9 +17160 15714 57636 2 +18541 7954 57636 2 +13293 14540 57643 4 +24223 13736 57646 3 +26557 14963 57649 7 +1597 15083 57650 5 +30017 10047 57654 4 +30005 11038 57654 4 +10128 14600 57655 18 +13426 21347 57656 5 +22488 7379 57658 48 +11572 11407 57671 5 +19551 18445 57675 4 +2852 3414 57680 7 +32605 7582 57682 4 +18060 5689 57685 3 +19743 16475 57687 3 +19423 20400 57689 1 +4202 3268 57689 1 +30967 3703 57717 47 +8376 2003 57736 2 +16937 21665 57736 2 +15579 2136 57739 2 +10881 22146 57742 5 +8936 1522 57742 5 +12631 11285 57743 29 +7696 7108 57768 3 +19656 19687 57769 1 +1568 3981 57769 1 +7244 18097 57771 25 +14459 10476 57786 2 +10032 13192 57786 2 +31834 3692 57789 3 +37431 3668 57791 4 +10709 12673 57791 4 +25767 11026 57793 3 +6679 7325 57794 7 +30877 1425 57798 2 +6181 6820 57799 46 +18306 21810 57845 23 +13560 14783 57846 3 +19362 15999 57847 10 +107 22970 57852 15 +26748 14269 57861 3 +6780 9399 57861 3 +13218 10804 57863 4 +9487 10169 57865 8 +8936 23271 57870 5 +2339 21352 57875 18 +25755 5964 57900 5 +20467 17704 57900 5 +5062 5964 57900 5 +26503 4672 57906 2 +3719 21910 57908 7 +7871 15989 57909 1 +2472 7679 57909 1 +3084 16195 57914 9 +25559 9016 57919 2 +26041 15358 57920 2 +28610 3242 57921 3 +11621 17394 57921 3 +9872 3437 57921 3 +33858 1688 57921 3 +23480 1488 57923 1 +12189 9018 57923 1 +33402 4731 57924 4 +15931 20508 57925 9 +9498 12338 57927 230 +18659 13292 58137 2 +23141 3524 58137 2 +23797 3015 58141 19 +39728 638 58141 19 +2549 12482 58143 3 +11964 6701 58143 3 +27310 10533 58147 3 +11357 19278 58149 5 +30841 3919 58154 4 +24434 13600 58165 1 +17465 21903 58166 3 +15376 9160 58169 2 +29815 11661 58169 2 +12758 18002 58171 2 +15206 11091 58174 2 +14973 13588 58176 3 +9682 955 58176 3 +11978 23175 58178 6 +749 20083 58180 6 +11309 11824 58181 3 +92 1770 58182 1 +10009 21247 58183 1232 +5207 18581 58871 3 +3204 5087 58871 3 +10461 7840 58872 4 +33014 1648 58872 4 +15145 18222 58874 9 +16502 6620 58879 3 +32698 4624 58882 2 +35398 788 58883 2 +20955 7995 58884 35 +19725 428 58895 3 +21382 4592 58896 5 +24871 11739 58899 2 +3769 11929 58899 2 +15649 14324 58902 7 +16090 9909 58907 3 +20188 18482 58910 5 +23384 6014 58914 6 +4326 13490 58920 4 +22744 18311 58924 1282 +3216 19857 59393 5 +141 19913 59395 4 +18000 3755 59395 4 +37843 794 59414 2 +157 21107 59415 4 +7749 2561 59415 4 +13588 2561 59415 4 +23604 12718 59417 2 +8581 10950 59417 2 +23038 18396 59423 3 +9474 4091 59425 2 +16072 22267 59428 5 +21773 9138 59429 7 +10937 628 59440 4 +14892 14500 59441 4 +16795 2808 59443 4 +37546 907 59445 4 +12557 18380 59447 7 +29845 7898 59452 5 +5424 14451 59453 5 +15770 11145 59460 3 +12769 9752 59463 35 +13391 13476 59463 35 +7391 16622 59464 3 +2822 10019 59465 5 +28538 142 59466 5 +30666 7989 59474 4 +12779 7361 59477 1 +21030 2692 59478 1 +15829 19787 59479 1 +13459 23394 59480 4 +24842 274 59480 4 +19671 3791 59483 4 +29768 9408 59485 2 +24129 14260 59485 2 +28314 2074 59517 4 +18166 2673 59521 3 +12931 485 59527 2 +34793 4478 59528 10 +37779 3851 59537 4 +14945 8100 59541 4 +14929 6742 59544 3 +13660 2547 59547 5 +6037 4126 59553 3 +41025 946 59554 9 +27657 5003 59556 6 +33156 9 59558 9 +6764 6372 59563 2 +2251 1702 59563 2 +7841 21723 59568 17 +18821 11769 59571 2 +20797 12178 59573 5 +11798 18474 59575 3 +10612 13259 59576 2 +30941 1193 59576 2 +26015 3131 59577 5 +3358 19985 59581 4 +32121 6916 59582 4 +26934 1772 59584 3 +35620 2602 59585 2 +10808 13409 59585 2 +21828 18840 59593 2 +11724 18939 59594 5 +5750 15268 59598 5 +12128 15579 59599 1 +33341 175 59599 1 +11464 7914 59599 1 +5557 13808 59661 5 +5010 3532 59663 1059 +20706 16507 59663 1059 +7092 16211 59671 7 +8031 13327 59673 3 +33313 1955 59674 2 +31236 10240 59675 6 +11821 13428 59675 6 +20083 5220 59677 3 +14 17475 59679 7 +26327 5092 59681 3 +621 15436 59683 2 +9996 13265 59685 6 +6279 18975 59694 4 +28109 4693 59694 4 +14337 130 59696 5 +934 14895 59697 1 +41463 52 59698 1 +35479 3798 59698 1 +27098 2634 59702 3 +30156 1850 59707 5 +12009 13819 59710 5 +4769 2097 59710 5 +23346 12571 59713 4 +20134 13653 59716 5 +10558 16236 59718 6 +3763 895 59721 5 +13152 23365 59725 7 +1845 12373 59729 41 +7029 13658 59737 2 +6442 4188 59738 6 +6831 15390 59743 4 +24032 13498 59746 9 +18886 13289 59755 4 +12665 10198 59760 3 +19425 9528 59760 3 +31409 8401 59765 1 +25586 7076 59765 1 +11201 5692 59765 1 +17916 17394 59773 4 +2904 9650 59776 4 +20053 17301 59777 45 +37715 3429 59805 257 +15505 155 60108 4 +12987 13422 60109 6 +15187 13950 60112 5 +22735 911 60113 21 +1198 13713 60116 5 +6756 12895 60117 28 +14679 8635 60135 3 +11018 18521 60137 2 +28346 13605 60141 6 +28463 1301 60145 4 +4115 18231 60147 15 +14574 11821 60151 1 +8965 712 60152 5 +12850 4133 60155 4 +1172 19535 60155 4 +27814 14149 60158 4 +8826 13999 60163 3 +24504 12218 60164 8 +17693 12462 60166 1 +28022 12739 60167 2 +8344 3142 60169 4 +23691 17214 60170 7 +10887 4332 60181 8 +19815 3328 60182 2 +8108 16536 60183 18 +3392 6306 60194 4 +30554 9504 60198 9 +2658 8473 60205 48 +13307 4819 60216 2 +18768 1405 60217 5 +12200 8835 60219 3 +16780 16199 60221 9 +732 374 60224 1 +23334 11197 60225 2 +14076 11770 60226 4 +5671 11898 60226 4 +5402 23173 60227 4 +11183 495 60227 4 +4375 18494 60231 6 +13057 23144 60234 1 +14799 23561 60235 2 +5193 107 60235 2 +25468 7432 60239 47 +25112 9891 60276 4 +19298 14195 60279 4 +30359 7237 60280 4 +23761 3336 60281 3 +3823 4738 60284 1 +21271 20616 60285 2 +25444 3052 60285 2 +7103 11256 60294 3 +32586 4652 60295 4 +1848 8866 60296 4 +16047 18821 60297 1 +8567 15234 60298 5 +28693 2551 60299 3 +2398 19251 60299 3 +23393 3792 60301 3 +14949 7003 60302 4 +1604 14550 60303 7 +22907 6441 60310 4 +24157 6048 60311 3 +40963 344 60312 2 +4375 6501 60312 2 +128 4522 60340 1 +22535 18782 60341 1 +7179 4886 60341 1 +9573 13472 60345 4 +14988 14513 60347 4 +34021 3024 60348 5 +18605 6376 60350 9 +26927 12184 60354 5 +1128 18139 60358 2 +1493 6042 60359 8 +15048 380 60361 1 +10020 14256 60362 7 +9553 7267 60367 9 +21257 12816 60373 9 +21948 13413 60386 2 +18827 10255 60386 2 +8836 15621 60387 4 +27582 7835 60387 4 +17144 22763 60389 1 +23642 12313 60390 3 +12681 22906 60393 2 +9428 11795 60395 1 +22176 11873 60395 1 +2839 11960 60396 4 +19100 10711 60399 341 +16640 18595 60622 3 +14646 8305 60624 9 +21530 7723 60630 3 +5880 18992 60634 2 +4764 4676 60634 2 +28168 6354 60637 6 +18873 9582 60649 5 +10083 3801 60653 3 +17432 7457 60657 10 +22601 7848 60658 8 +16833 6075 60660 2 +6439 20048 60661 4 +38545 2172 60662 8 +21686 1843 60666 6 +22543 7616 60672 2 +9235 22018 60674 5 +12492 13046 60681 6 +95 17270 60683 4 +3186 6398 60683 4 +5021 22819 60684 8 +17619 17999 60687 4 +2583 11414 60691 21 +12646 7215 60704 4 +22167 18555 60706 6 +4698 21899 60710 107 +15498 2045 60723 10 +7716 18702 60727 5 +6079 8627 60731 4 +28168 2617 60735 2 +23820 4602 60739 5 +17499 13188 60739 5 +26289 4078 60756 12 +13248 7143 60760 3 +14143 7221 60761 5 +37177 272 60761 5 +13953 16924 60768 4 +2600 22064 60769 3 +12247 8689 60770 20 +2818 17042 60793 44 +4367 13369 60818 2 +13577 4964 60819 2 +12558 22591 60820 4 +14840 10745 60823 8 +12998 21105 60842 4 +17120 19095 60844 2 +1245 10893 60845 4 +21206 8268 60845 4 +4382 4507 60845 4 +19737 9590 60846 4 +5962 14964 60848 4 +20994 8704 60848 4 +27529 12044 60850 2 +16768 11346 60852 2 +8965 19969 60855 5 +15490 12423 60856 8 +18155 16531 60858 43 +15855 1559 60912 4 +21950 15963 60914 3 +17606 14064 60916 3 +454 12973 60919 6 +17835 18656 60921 7 +15809 3294 60926 16 +660 20453 60939 3 +9092 3746 60943 11 +23025 12923 60945 32 +36670 624 60960 10 +13208 19125 60961 2 +8480 21052 60964 4 +16370 4646 60967 5 +14225 466 60972 214 +10489 6315 61004 4 +16928 20234 61007 3 +6269 3434 61007 3 +4422 964 61008 4 +14378 10241 61010 39 +12429 16388 61032 8 +13665 10392 61038 5 +17535 18758 61039 5 +9355 7420 61041 4 +21004 4689 61042 847 +9784 4513 61181 2 +23278 13009 61181 2 +26293 4142 61185 9 +2697 18361 61192 3 +17983 21315 61193 2 +2472 2499 61194 2 +19412 17909 61194 2 +16610 23512 61196 38 +23239 9231 61248 7 +26271 14681 61249 4 +11455 7699 61249 4 +37177 4290 61252 2 +14181 19554 61254 8 +19515 2660 61264 20 +32181 9134 61281 5 +28243 2494 61285 119 +14205 13253 61285 119 +2453 7626 61287 5 +1797 15201 61290 2 +20409 9503 61292 1 +3894 7910 61293 5 +22465 14832 61294 2 +3788 22994 61295 10 +11837 4194 61302 247 +10894 12986 61494 3 +8755 4514 61496 6 +28294 2203 61497 4 +21786 11452 61499 3 +10875 11182 61501 8 +27534 13607 61506 3 +29921 5727 61506 3 +8652 4377 61513 2 +697 10623 61514 18 +2690 6711 61524 6 +19761 8062 61529 843 +11960 1677 61591 3 +9353 6724 61593 2 +12189 1639 61597 3 +23375 14136 61598 2 +25054 6921 61599 9 +19622 3783 61603 3 +22160 15121 61606 4 +341 17302 61608 4 +29687 5471 61609 7 +26189 11768 61609 7 +23614 2285 61628 6 +10662 18348 61633 8 +30374 8608 61638 3 +11560 16528 61640 2 +7848 21607 61642 9 +5247 15854 61644 217 +18533 3019 61644 217 +15709 15498 61645 4 +3705 20504 61649 5 +7398 2486 61655 2 +14375 18470 61657 4 +5666 2531 61660 6 +4108 19025 61665 5 +4699 411 61666 4 +1426 22309 61666 4 +27212 8930 61669 3 +2272 13600 61671 6 +3195 13318 61672 4 +20272 21010 61673 2 +23001 2658 61673 2 +5934 23531 61676 6 +35021 2458 61689 5 +652 6361 61689 5 +7764 17075 61690 4 +7020 6088 61692 3 +22511 9322 61693 5 +15402 14956 61697 995 +15778 21482 62863 2 +7979 2186 62863 2 +13778 8194 62864 9 +6786 16304 62867 4 +5617 22782 62868 5 +16765 886 62868 5 +18710 6695 62887 3 +14596 22994 62890 4 +26450 8075 62892 5 +30759 2748 62893 3 +23934 5303 62894 10 +15996 10301 62908 6 +31368 701 62911 10 +18655 15243 62915 1 +11594 1539 62916 4 +21481 14696 62919 1233 +15009 22272 63175 2 +31181 1396 63175 2 +22951 14267 63181 4 +15692 22073 63183 4 +29142 11356 63185 3 +33628 5505 63187 2 +4634 19773 63189 6 +12080 1164 63191 3 +16621 5653 63193 6 +18932 22114 63194 3 +2740 15064 63197 2 +11242 8578 63197 2 +4023 14534 63198 5 +15621 5742 63198 5 +41729 228 63200 2 +24775 15812 63201 2 +11312 7856 63201 2 +38447 713 63211 5 +3097 23109 63212 5 +26377 229 63214 3 +6761 6426 63216 4 +17624 5416 63217 1 +15169 11632 63217 1 +31255 674 63218 4 +13963 7281 63223 5 +9378 2789 63225 1 +9257 16979 63225 1 +16520 3902 63225 1 +11423 4250 63230 4 +27740 2634 63237 4 +131 580 63239 3 +4813 9972 63240 4 +5350 13696 63240 4 +12511 9231 63241 2 +34125 2323 63241 2 +1111 19936 63247 8 +30648 5845 63251 4 +11368 22072 63253 3 +900 11071 63254 4 +14059 8732 63255 3 +7688 10080 63257 3 +18587 8473 63260 1 +17011 10367 63261 13 +3573 28 63282 5 +28202 5403 63287 1 +11712 10050 63287 1 +24646 1189 63287 1 +17396 6506 63289 4 +3388 12816 63295 3 +9158 667 63297 2 +8214 20922 63300 7 +1444 2746 63300 7 +32790 5113 63302 1 +6077 4247 63302 1 +2719 999 63805 3 +28997 11928 63807 13 +6557 16972 63817 5 +10564 10573 63822 2 +16216 21003 63823 1 +4965 2665 63823 1 +2038 4341 63824 22 +22814 18135 63842 8 +30086 3396 63843 7 +28032 6769 63845 3 +20248 11254 63848 2 +28919 4225 63849 29 +30378 11569 63856 7 +24411 8965 63858 2 +11050 4456 63858 2 +2416 12888 63861 3 +218 16296 63862 2 +19800 5201 63863 7 +32419 5320 63866 4 +22131 16619 63868 7 +36531 765 63877 5 +18138 8436 63881 4 +1928 10350 63886 8 +33556 8210 63894 3 +7865 17649 63898 5 +13204 17346 63900 4 +5335 8426 63901 5 +8042 12690 63907 6 +14176 20530 63911 2 +13314 3138 63911 2 +5608 16719 63917 3 +13390 6949 63917 3 +13864 6949 63917 3 +6058 1831 63917 3 +7405 9533 63921 2 +15423 12675 63923 2 +393 10993 63923 2 +22730 9787 63924 3 +16883 20679 63925 11 +14788 7365 63936 31 +16691 17033 63944 2 +26594 6381 63945 2 +8819 23419 63946 2 +24799 249 63946 2 +18587 18712 64555 4 +28704 9995 64559 6 +23718 573 64563 5 +17702 4606 64567 3 +24348 12091 64570 3 +4380 19895 64571 45 +18946 9146 64582 4 +14266 19064 64584 10 +10965 8885 64589 4 +10120 3708 64591 2 +8076 15892 64592 2 +1759 14096 64593 4 +31668 7782 64593 4 +17875 5935 64595 33 +14234 2261 64609 4 +861 21392 64611 2 +17766 1805 64612 3 +19960 19589 64614 3 +32432 1642 64616 2 +27602 4266 64618 3 +19504 6616 64618 3 +15744 17409 64625 9 +19287 14374 64637 3 +2943 7137 64640 2 +17240 5717 64641 3 +26524 13270 64644 37 +14452 22151 64690 2 +12455 1517 64690 2 +19263 20012 64697 9 +8775 20146 64698 3 +5725 8599 64700 2 +38099 3386 64702 8 +27647 5589 64702 8 +17168 23191 64710 2 +27897 9452 64712 3 +10277 17399 64714 4 +6505 15159 64720 3 +7471 4056 64723 8 +7516 20613 64725 4 +19590 8065 64726 2 +11620 15446 64728 2 +3383 18131 64730 2 +4057 11567 64734 4 +25564 16132 64737 1 +11406 12701 64738 1 +5954 10967 64738 1 +9545 20394 64739 4 +353 17023 64741 2 +27452 5990 64742 4 +39 8808 64750 4 +11350 14858 64754 5 +22538 3047 64757 5 +7506 10918 64759 4 +37404 4251 64761 10 +20006 3428 64763 3 +17140 14423 64763 3 +908 15699 64766 9 +38274 168 64772 3 +6436 18984 64775 3 +28326 5914 64776 3 +3981 20172 64778 4 +13289 1114 64781 1 +15713 14992 64781 1 +5433 13985 64782 1 +2727 2122 64782 1 +10692 22721 64783 4 +14440 12142 64787 2 +9810 16515 64788 8 +10559 2745 64791 10 +18139 21179 64797 3 +10792 6003 64802 7 +16279 14172 64802 7 +19759 21648 64805 3 +9788 21387 64808 5 +7196 10343 64810 31 +26449 9369 64813 2 +11238 17384 64814 2 +3045 14 64816 4 +5952 22865 64818 3 +21485 803 64818 3 +39179 230 64820 20 +21485 11610 64857 8 +26754 2390 64864 4 +10965 18653 64867 3 +26846 1671 64870 7 +17527 10794 64872 9 +6125 2732 64882 2 +8601 20544 64883 3 +4376 10657 64885 2 +37913 2214 64886 2 +14107 23560 64887 2 +2439 10334 64889 194 +19521 13937 65015 3 +10625 20718 65018 3 +8330 15488 65019 2 +21270 8180 65019 2 +1359 9026 65023 3 +5534 17509 65024 21 +31066 7472 65027 8 +19056 19985 65035 1 +20744 11694 65036 1 +9280 8378 65036 1 +9782 15742 65041 9 +18761 19856 65050 6 +8612 17601 65053 9 +4955 21749 65057 2 +16907 17801 65058 4 +821 13453 65067 5 +37660 889 65068 4 +18886 18844 65070 6 +28059 1200 65070 6 +5912 16054 65078 3 +14687 17243 65079 3 +17482 530 65080 3 +9253 10780 65083 7 +12634 10751 65091 2 +16037 3879 65091 2 +17234 11293 65092 4 +13569 3105 65093 5 +21319 1584 65097 5 +10827 23269 65100 4 +2870 399 65100 4 +21959 7376 65101 3 +4366 17741 65103 7 +7666 1279 65103 7 +16256 5927 65103 7 +18506 7053 65104 1 +23715 16615 65104 1 +3914 5622 65105 3 +5396 672 65108 8 +13696 3935 65113 1 +25554 14233 65113 1 +27174 2000 65248 4 +33753 4327 65250 6 +17965 22567 65251 2 +17108 13280 65252 3 +13036 3043 65254 69 +16149 464 65378 5 +23936 2887 65382 8 +21234 2547 65385 3 +40730 36 65386 27 +14820 5769 65386 27 +20255 4385 65388 7 +19163 16546 65394 2 +14141 17225 65395 2 +27607 11804 65396 6 +26870 14108 65401 4 +16375 11468 65403 3 +10326 12277 65410 3 +14316 9478 65413 534 +19967 21994 65597 4 +15548 23489 65598 147 +24650 9873 65667 3 +24619 11481 65667 3 +14059 9281 65670 2 +22641 9054 65670 2 +6050 11556 65671 2 +16278 7948 65671 2 +17632 135 65726 2 +13751 12354 65728 4 +2596 15424 65735 2 +39206 1636 65738 4 +32572 3279 65742 7 +5060 20923 65746 4 +16633 2745 65746 4 +21667 2745 65746 4 +9144 20278 65750 2 +7758 2431 65751 1 +13436 21237 65751 1 +3314 15253 65806 2 +8602 16549 65809 10 +16336 9348 65812 3 +14907 23515 65813 3 +335 19826 65814 2 +5140 7505 65815 2 +26545 6792 65816 8 +25240 5473 65819 3 +7051 15789 65820 4 +5979 3342 65823 3 +12652 16135 65826 2 +2323 4022 65827 3 +7379 15791 65828 10 +26842 6701 65831 4 +32742 4044 65832 10 +4370 21441 65835 4 +15905 5212 65836 3 +22227 16321 65837 585 +12355 5584 66212 35 +3740 15807 66235 7 +32017 3919 66238 266 +7120 15042 66373 3 +7408 8626 66373 3 +26623 13331 66416 4 +5435 9453 66418 4 +8031 18070 66421 3 +26565 188 66421 3 +24190 15634 66426 3 +1290 1333 66429 2 +14461 4569 66430 2 +3221 19099 66430 2 +7800 22900 66433 4 +23948 1410 66434 2 +5820 3208 66436 5 +5320 22586 66437 2 +9525 1082 66437 2 +23897 1082 66437 2 +14040 1082 66437 2 +19706 12277 66620 1 +27277 11391 66620 1 +4926 22567 66656 8 +17819 22516 66663 3 +4780 23547 66664 9 +1651 12823 66668 3 +5779 5461 66671 2 +22449 6377 66672 4 +32285 612 66675 2 +35646 3433 66676 9 +20807 16196 66679 5 +24656 7685 66680 4 +2612 8176 66681 3 +14508 13023 66681 3 +25650 2344 66682 3 +19932 14035 66683 4 +26123 7446 66685 5 +24751 16734 66686 186 +6191 5829 66917 18 +5055 7901 66924 2 +10847 1570 66925 4 +1603 15394 66928 2 +17155 3572 66928 2 +9400 5269 66929 9 +29992 9217 66936 2 +33158 6972 66937 2 +39395 2449 66937 2 +26275 4998 66938 2 +3639 8172 66940 9 +21284 989 66940 9 +12075 14507 66940 9 +30607 9020 66942 4 +20784 9064 66943 4 +12048 21463 66944 6 +20092 2205 66944 6 +15222 16741 66947 4 +2275 3744 66951 9 +14431 22150 66954 9 +10403 10945 66965 7 +13932 2996 66968 3 +14597 3080 66969 3 +4911 9754 66970 5 +1537 17943 66971 3 +306 5725 66971 3 +3930 20488 66974 13 +12699 19538 66990 2 +3369 4130 66990 2 +27175 11144 66995 1 +15454 2566 66995 1 +26937 6507 66997 8 +31042 6384 67001 4 +6926 16898 67001 4 +12319 11353 67004 2 +7331 7601 67005 8 +16819 14059 67008 3 +7123 21417 67012 2 +10233 20215 67013 7 +21933 2922 67019 41 +11852 1589 67047 4 +10735 21511 67054 47 +12533 19347 67067 48 +23107 617 67081 8 +32309 5388 67086 2 +19000 12793 67086 2 +7437 5487 67086 2 +11001 17895 67087 3 +7639 19281 67090 9 +18745 19239 67101 2 +18292 4429 67101 2 +23497 16546 67108 3 +17572 5879 67111 4 +17075 17277 67112 4 +18325 1766 67119 1 +13304 12627 67119 1 +4107 12048 67120 8 +26768 10748 67126 3 +17107 12920 67126 3 +18220 20692 67129 3 +26301 5470 67130 10 +30141 2601 67144 238 +9830 18269 67319 3 +21095 17147 67321 2 +29077 1372 67321 2 +36459 2992 67321 2 +2018 884 67323 4 +19424 5901 67324 8 +1331 22197 67329 7 +4282 20239 67331 1 +24088 13002 67332 8 +4891 5244 67339 8 +18936 472 67342 34 +13889 5805 67346 4 +6552 12604 67349 2 +7526 16807 67350 10 +26587 12542 67352 7 +24368 5123 67353 1 +9207 11581 67353 1 +27866 4258 67360 1 +19055 4299 67360 1 +7948 6411 67363 4 +21527 3627 67366 205 +27053 14401 67479 3 +18896 22257 67480 4 +29444 1411 67480 4 +4976 16328 67481 3 +22442 14099 67483 38 +8036 1578 67502 4 +15776 3846 67509 4 +27489 6031 67510 9 +11169 5002 67511 3 +21334 3782 67513 2 +20015 14726 67514 5 +17840 18689 67516 5 +18302 1034 67520 18 +26173 7757 67534 3 +15970 338 67536 10 +14591 6366 67544 4 +19029 17612 67545 1 +27322 13229 67546 10 +19425 3146 67554 2 +3829 8886 67554 2 +18067 22749 67560 5 +31436 4783 67561 9 +6544 21061 67564 4 +9866 7360 67566 7 +31111 3588 67566 7 +20944 8494 67569 3 +19312 10226 67570 1 +20105 13442 67570 1 +18461 204 67581 3 +17009 9454 67582 3 +1408 23222 67584 4 +18436 6800 67586 8 +520 3993 67589 3 +1744 21007 67590 5 +7977 1956 67591 8 +25246 7746 67595 3 +20656 15777 67597 8 +6282 21349 67609 1 +2153 2319 67609 1 +13327 9359 67610 13 +16812 1555 67622 5 +14577 1562 67622 5 +36079 5067 67631 3 +23127 14406 67633 6 +24773 8324 67637 43 +23212 10599 67652 2 +21766 12264 67652 2 +6585 11404 67652 2 +18872 9443 67655 3 +6737 18967 67657 3 +22275 4701 67657 3 +21761 2076 67658 1 +22475 2244 67658 1 +9470 22257 67677 3 +32945 6115 67678 2 +881 9353 67678 2 +19666 10238 67697 3 +15888 13255 67697 3 +18078 5026 67699 5 +1022 18362 67701 5 +35221 4154 67702 9 +19610 15662 67702 9 +21148 557 67704 30 +6118 9785 67712 4 +11742 6756 67712 4 +29430 2070 67715 1 +2524 19474 67715 1 +18260 1367 67727 4 +14913 12954 67730 3 +33213 7845 67731 6 +7865 477 67731 6 +8472 308 67733 6 +25972 486 67733 6 +31645 1395 67736 2 +5591 17095 67740 103 +22901 4249 67755 42 +31993 6043 67780 4 +24978 12030 67781 5 +31633 3058 67783 3 +1970 11863 67786 5 +12135 11805 67786 5 +12984 20901 67787 5 +29553 6396 67792 5 +825 16621 67792 5 +5592 651 67792 5 +683 651 67792 5 +24517 10649 67795 5 +26800 7404 67800 4 +11317 5054 67803 1 +4801 13177 67803 1 +7653 17236 67806 2 +9202 6432 67806 2 +3714 617 67812 8 +24993 5125 67816 4 +17798 2470 67818 3 +3027 16845 67820 3 +18820 1768 67820 3 +35298 411 67821 1 +13884 22020 67821 1 +16442 4520 67823 3 +37223 2246 67825 489 +24277 16925 68220 6 +21554 6743 68220 6 +10023 11074 68221 8 +9782 12903 68226 5 +17249 5488 68230 4 +7473 7256 68231 6 +2412 16412 68231 6 +23258 7470 68232 5 +2472 19901 68234 4 +612 19919 68238 3 +27659 1548 68239 6 +19145 3799 68240 17 +10298 1482 68249 6 +14319 4420 68250 87 +3028 11676 68282 3 +29380 10856 68289 3 +12104 3469 68291 6 +20681 18225 68298 33 +6345 7610 68317 7 +15345 14989 68322 3 +26998 8679 68322 3 +16754 4527 68324 1 +41289 456 68324 1 +18955 3753 68327 2 +8558 23106 68329 9 +40355 332 68344 2 +274 1925 68346 3 +10010 21396 68347 2 +1365 6974 68351 4 +15110 22959 68355 37 +19386 16629 68374 4 +483 12767 68375 6 +7429 20539 68378 4 +21100 9036 68381 7 +21829 3025 68385 4 +29044 2484 68385 4 +23800 17680 68388 1 +8567 5988 68388 1 +18843 15344 68389 5 +11386 5364 68390 7 +24365 2418 68398 273 +23068 9778 68586 6 +33900 467 68593 2 +8946 11305 68594 4 +28864 4371 68595 5 +36545 3226 68596 2 +14126 5389 68597 2 +12286 20496 68598 48 +20172 6580 68614 3 +13815 18203 68616 7 +14618 10530 68620 2 +14717 10479 68621 2 +15278 15376 68622 9 +436 945 68623 10 +20181 2468 68627 4 +6512 13730 68629 3 +925 1512 68629 3 +21085 16858 68636 4 +17671 4703 68639 5 +382 7640 68642 3 +26746 15171 68644 4 +14814 1214 68647 8 +1170 21013 68651 4 +13231 14346 68653 1 +16978 19412 68654 4 +30894 8388 68655 8 +11256 1380 68668 47 +22093 9274 68711 3 +30822 10741 68712 8 +21158 16762 68716 3 +14485 19020 68719 173 +33286 3864 68868 2 +519 4611 68869 149 +19314 15338 69124 9 +9987 8330 69124 9 +14046 2101 69125 3 +23751 4521 69125 3 +11208 11518 69148 2 +23126 15251 69149 1 +19813 8417 69149 1 +20905 2734 69151 6 +40344 738 69152 4 +17672 17134 69155 2 +29019 6534 69155 2 +29311 11987 69156 5 +23232 15878 69160 3 +24200 7790 69160 3 +17875 2557 69161 5 +33916 6077 69165 2 +20026 4280 69167 30 +8885 11789 69179 2 +343 4214 69181 8 +1895 10471 69186 2 +9410 22242 69187 4 +16220 15022 69189 15 +16425 2071 69202 5 +7145 22226 69204 2 +1399 9944 69206 4 +11204 18557 69208 7 +6580 5111 69208 7 +22540 11651 69210 4 +9245 5215 69213 3 +9539 16643 69214 31 +20335 8531 69259 4 +17229 21553 69260 3 +8213 6838 69262 5 +11006 10254 69263 3 +1938 1230 69264 23 +26141 2854 69297 6 +20802 6811 69300 2 +6512 21518 69301 6 +34325 5836 69305 3 +16059 17832 69305 3 +6362 15801 69309 2 +10651 10379 69310 2 +22115 16304 69312 2 +21442 12180 69314 9 +14641 1417 69316 4 +16288 18706 69317 4 +3903 3106 69322 5 +17086 20197 69322 5 +10454 2943 69324 3 +5137 9562 69327 9 +32790 5243 69332 44 +2173 1389 69346 3 +19492 3067 69348 7 +2497 4527 69354 9 +11802 22846 69357 3 +20462 8530 69358 8 +13073 4341 69358 8 +29226 9786 69361 9 +21916 9262 69364 5 +17776 15015 69369 4 +1446 2660 69372 2 +21202 12858 69372 2 +10431 4297 69372 2 +24371 12464 69373 1 +32699 7859 69373 1 +22100 11710 69375 36 +16415 3338 69389 3 +122 20143 69394 2 +38231 941 69395 1 +2433 11288 69396 3 +144 6919 69398 3 +4936 17650 69402 7 +12362 20845 69405 55 +19413 3051 69459 5 +19434 13242 69460 4 +6972 10426 69460 4 +1302 18898 69461 6 +24672 5779 69464 66 +6059 8048 69485 2 +28956 5226 69487 9 +17982 6368 69494 3 +19394 13354 69495 44 +6145 9846 69499 2 +15274 7629 69499 2 +10780 22037 69500 6 +18066 1631 69500 6 +12663 17535 69504 3 +17309 18646 69505 8 +1933 1340 69508 4 +21341 3092 69511 3 +1776 1508 69512 2 +369 19783 69513 2 +9917 3885 69513 2 +26197 4081 69518 6 +7795 362 69524 3 +10088 22676 69526 2 +18856 2987 69527 6 +13324 10153 69531 3 +18305 7060 69533 5 +4426 20221 69538 4 +13510 21032 69543 6 +7815 793 69546 4 +22745 7772 69549 9 +18044 15162 69558 8 +15744 11872 69561 255 +36935 3406 69693 5 +30389 9536 69695 2 +9645 11911 69696 1 +35258 4330 69697 8 +9449 19726 69701 5 +15775 16839 69702 5 +7403 6829 69702 5 +24932 3155 69703 8 +13756 3743 69709 44 +30469 4037 69715 4 +14147 7906 69718 4 +26750 2733 69719 3 +4662 7858 69722 5 +14143 22396 69725 6 +16059 12848 69731 40 +11374 1011 69763 1 +6684 5577 69764 2 +10182 14497 69765 7 +12271 372 69767 1 +13016 7668 69767 1 +22389 1604 69772 4 +27834 3584 69773 8 +3650 11035 69778 1 +2504 10876 69779 35 +15935 12792 69779 35 +14577 16741 69780 3 +25290 7761 69781 26 +11939 12631 69814 18 +2080 15569 69826 3 +4526 4259 69829 2 +19986 15476 69832 40 +16434 4856 69871 4 +32177 9424 69875 7 +14061 14977 69876 1 +24079 5393 69876 1 +19611 9948 69884 2 +25354 6285 69886 2 +3887 8064 69886 2 +20287 15171 69888 6 +38224 3288 69894 2 +2145 12318 69894 2 +1199 8062 69894 2 +26114 10336 69895 4 +4829 16825 69896 47 +7581 17986 69956 2 +12782 9480 69957 3 +7498 7277 69957 3 +4066 1356 69979 2 +21926 17818 69979 2 +13329 4494 69979 2 +12839 23116 69980 3 +1341 17504 69982 6 +17075 8847 69983 5 +21797 7432 69984 3 +35163 1368 69985 3 +30884 4153 69989 3 +25500 10860 69989 3 +26609 2694 69991 3 +12938 14869 69992 2 +33098 2525 69993 6 +18890 17990 69997 4 +22320 4962 70000 3 +10346 19840 70006 6 +22055 13405 70013 5 +17511 1431 70018 2 +16660 18479 70019 3 +1503 18437 70020 5 +29698 1643 70028 2 +20402 10408 70028 2 +34005 5930 70028 2 +5479 630 70029 4 +1601 9751 70035 2 +24402 4998 70036 6 +11005 2102 70039 3 +6125 8527 70039 3 +21344 8214 70044 8 +25427 2316 70049 2 +6678 10226 70050 4 +28261 3125 70052 3 +4911 17162 70055 3 +392 6506 70055 3 +15997 17356 70061 4 +10754 19507 70066 13 +8669 16889 70073 46 +18010 8916 70096 10 +31023 3681 70105 22 +13044 21259 70109 6 +34060 5857 70110 2 +19865 19774 70111 6 +36832 3894 70111 6 +26814 2807 70111 6 +1291 11967 70112 2 +16824 661 70113 4 +13775 16468 70116 5 +1463 9601 70118 9 +18462 13076 70119 5 +5780 10592 70119 5 +1311 9107 70121 9 +7135 21807 70130 4 +14573 12574 70132 7 +19836 3510 70140 4 +23463 11962 70142 50 +7929 18893 70193 2 +22568 10379 70196 3 +352 19598 70198 3 +23454 4637 70200 7 +8725 12790 70202 39 +1234 21723 70230 139 +23130 4459 70364 2 +35194 2242 70366 1 +15875 6342 70366 1 +36797 5122 70368 3 +17321 7305 70368 3 +14287 21447 70372 3 +12191 7690 70375 2 +10472 7959 70376 5 +11929 10231 70377 6 +14436 6712 70382 6 +17313 4739 70384 2 +18120 14430 70386 1 +344 1131 70387 39 +30086 3592 70438 8 +13720 3739 70443 10 +25049 1634 70447 4 +16590 4036 70448 4 +13127 10693 70449 6 +330 13484 70450 3 +10128 12570 70451 2 +34610 1412 70452 4 +22510 1142 70453 2 +22672 17563 70453 2 +24190 7341 70454 7 +27890 5561 70458 748 +29067 832 71260 6 +29267 2301 71264 3 +9733 12703 71268 2 +8151 10965 71268 2 +8839 7789 71271 3 +22073 8315 71273 46 +25036 1731 71288 10 +14288 998 71298 10 +23138 7314 71300 4 +21119 1152 71305 4 +14887 14332 71306 827 +9563 9336 71306 827 +4165 22869 71307 6 +21882 5649 71311 9 +5351 175 71318 3 +4895 12118 71319 1 +16766 14103 71320 2 +21648 9565 71320 2 +5576 421 71322 1 +19922 17598 71322 1 +16027 9673 71343 2 +8082 13995 71343 2 +24341 2729 71345 262 +5893 11749 71521 2 +11880 21239 71524 6 +26048 3355 71529 3 +12267 18907 71530 2 +17226 22946 71532 9 +1687 467 71537 4 +30403 9132 71538 1 +6284 7653 71539 10 +13564 12248 71543 9 +14426 3522 71543 9 +29524 11420 71543 9 +281 13345 71546 2 +4769 10323 71546 2 +25427 11006 71551 4 +3258 1078 71553 9 +28335 9044 71559 3 +24921 3080 71562 9 +12019 1331 71566 2 +2377 18516 71566 2 +20353 16143 71568 3 +4302 16640 71571 35 +24522 3373 71575 2 +15314 11157 71576 2 +11158 1917 71577 3 +22208 970 71579 1 +8205 2033 71579 1 +15275 20704 71581 4 +30872 9192 71585 1 +25157 10379 71585 1 +17019 19235 71587 4 +4773 10036 71588 16 +32212 5948 71600 4 +10108 5342 71603 2 +10636 12757 71603 2 +22734 13024 71604 2 +20155 5266 71606 4 +8781 19955 71609 3 +4249 11093 71614 4 +13428 14172 71616 4 +11280 12304 71620 1 +1931 1077 71620 1 +10226 23308 71621 2 +3721 360 71621 2 +9201 868 71623 3 +27460 9316 71623 3 +20907 8857 71628 4 +14994 20884 71630 1 +32386 4973 71631 1 +2227 16928 71631 1 +35560 2497 71633 1 +12020 3101 71634 3 +15759 17015 71637 8 +11708 13476 71640 8 +6931 15617 71643 2 +17741 21996 71644 4 +31288 6861 71646 5 +7090 22148 71647 4 +16569 1301 71652 2 +24484 179 71653 9 +25994 13475 71658 6 +18627 22342 71662 1 +16633 1326 71662 1 +26913 1611 71663 9 +7511 14355 71668 4 +26922 769 71669 8 +21952 18190 71670 4 +2089 16697 71671 4 +33822 6722 71672 16 +10579 14396 71681 1 +22060 9272 71681 1 +12565 2915 71681 1 +15725 14321 71683 4 +2670 44 71685 5 +2840 41 71686 2 +9769 17726 71687 2 +24391 17585 71688 3 +5744 20840 71689 4 +28210 6194 71690 2 +186 16550 71690 2 +26384 14064 71691 1 +27978 7986 71691 1 +233 9604 71691 1 +18894 5812 71694 8 +2639 6272 71698 5 +14163 7409 71704 7 +24036 7743 71709 5 +26918 3619 71710 2 +20506 2351 71711 5 +1923 23365 71715 3 +997 12759 71719 11 +12971 15793 71721 10 +1589 17258 71725 2 +23907 5793 71727 3 +25864 12670 71733 2 +16420 2184 71733 2 +1162 8814 71733 2 +29528 6507 71734 2 +749 21563 71735 8 +33167 1988 71738 40 +185 11453 71757 2 +12474 7257 71758 3 +3462 23322 71759 2 +8503 21195 71760 7 +2172 10626 71765 3 +1566 5346 71766 5 +11813 8518 71768 3 +29215 12424 71769 4 +1912 15673 71770 4 +2512 21900 71773 4 +19793 1768 71773 4 +14732 4503 71774 3 +14782 21544 71775 1 +15759 2124 71775 1 +34411 482 71775 1 +21470 2124 71775 1 +12195 2124 71775 1 +21937 7796 71780 3 +17731 19282 71781 31 +22969 15906 71788 1 +4586 7762 71788 1 +19099 1450 71789 5 +19128 4260 71791 34 +8221 14870 71821 4 +7537 7956 71822 4 +27427 5426 71822 4 +22428 10286 71822 4 +28892 9895 71831 1 +18237 10259 71832 4 +15912 18255 71835 2 +700 17116 71836 8 +12070 12652 71840 2 +11168 2063 71840 2 +24933 15346 71845 4 +23407 9730 71846 6 +13793 11307 71853 2 +12574 7193 71855 3 +14809 3195 71857 4 +833 5425 71859 1 +23291 12735 71860 2 +20180 6591 71861 1 +17505 17077 71861 1 +16807 943 71862 2 +6196 6190 71863 1 +7800 14021 71864 2 +26292 1575 71865 4 +5727 1632 71866 9 +15001 14253 71868 10 +12592 22158 71873 3 +36266 758 71875 3 +13034 20430 71876 23 +35077 5323 71900 8 +5796 21969 71901 7 +14910 1255 71910 5 +13716 14163 71913 3 +3361 22454 71915 9 +23699 1937 71920 2 +21057 9191 71920 2 +38202 2170 71923 2 +19104 17707 71924 23 +9803 17637 71925 2 +19372 2064 71928 2 +11438 3011 71930 8 +9790 5381 71934 4 +2314 8724 71937 2 +6694 13469 71940 29 +19766 10199 71940 29 +21612 4199 71945 4 +5411 13747 71947 3 +12633 7906 71948 2 +12633 15762 71948 2 +13431 16120 71952 4 +2170 7548 71952 4 +3757 17871 71958 2 +18552 4326 71960 4 +20980 4845 71961 5 +19945 5492 71964 825 +20082 5955 72192 3 +9784 18019 72196 5 +443 10775 72200 7 +17849 12893 72200 7 +5602 13703 72210 38 +23218 9413 72259 13 +6778 8174 72262 9 +36828 2896 72266 9 +23017 3727 72268 3 +29272 1440 72269 20 +23963 14371 72279 4 +13485 5364 72280 33 +28384 3820 72331 4 +31568 9569 72332 2 +7511 19058 72333 4 +5890 4610 72333 4 +20785 2989 72333 4 +21662 16447 72337 3 +29732 11034 72341 46 +21547 5388 72376 1 +723 10961 72376 1 +7732 9786 72379 1 +37805 2985 72380 5 +26803 12408 72382 4 +14682 5625 72384 4 +15114 12929 72384 4 +16545 7957 72385 189 +25938 7928 72416 3 +28666 6793 72419 4 +10135 10882 72422 4 +23090 1902 72426 3 +3721 21169 72427 4 +23292 3227 72429 4 +18686 4123 72430 5 +10358 12433 72430 5 +368 1633 72438 1287 +37094 2347 72438 1287 +26758 15037 72441 3 +8842 5177 72443 4 +30216 8878 72445 2 +3532 3212 72446 2 +13861 20263 72449 3 +12895 3405 72449 3 +11484 1263 72451 45 +5689 13320 72541 2 +14242 1361 72542 4 +21809 18026 72544 6 +11269 8879 72548 2 +6588 13119 72551 2 +23600 5149 72552 9 +6635 15849 72555 4 +14645 18673 72557 3 +4004 8053 72559 2 +28082 6675 72562 3 +16457 4956 72563 4 +14269 14594 72566 5 +4636 14874 72569 10 +19422 3996 72573 3 +3668 9626 72575 1 +23218 5154 72576 8 +7842 2926 72581 4 +21765 15025 72582 8 +3438 21345 72589 4 +20970 4913 72593 197 +7363 16084 72685 18 +23825 14601 72705 4 +2912 14890 72708 4 +18821 3516 72709 2 +12077 13285 72712 10 +9825 3895 72713 1 +19842 9388 72713 1 +5312 17577 72719 8 +14189 10862 72723 4 +16683 5116 72726 2 +25802 5058 72726 2 +23749 15749 72734 3 +22302 12454 72737 3 +34167 7618 72737 3 +31261 8702 72740 8 +33193 1095 72743 2 +20199 20362 72743 2 +16254 4094 72746 4 +5204 8853 72747 34 +12955 22948 72749 2 +7463 720 72749 2 +26774 4110 72751 2 +12149 1747 72751 2 +4060 22896 72753 9 +2706 16393 72754 4 +3561 1444 72758 3 +7899 17837 72758 3 +9792 23234 72759 6 +29760 3806 72768 5 +18265 7969 72773 3 +20856 8855 72774 5 +29542 5895 72776 3 +22025 18810 72780 6 +31664 7516 72784 4 +34222 4294 72786 3 +22296 17071 72793 3 +828 6597 72793 3 +1072 6095 72794 3 +23628 14899 72797 2 +21134 3938 72797 2 +14514 18018 72798 35 +1097 18899 72832 8 +6033 8752 72840 10 +14729 21858 72848 3 +16434 4095 72849 5 +32977 6721 72850 2 +30842 3592 72850 2 +4746 14812 72850 2 +19403 6976 72853 4 +23237 9732 72853 4 +16849 20372 72858 8 +30108 11345 72868 46 +17212 12323 72868 46 +235 12696 72874 1287 +25449 15714 73296 4 +14759 22525 73297 5 +1074 14319 73298 2 +14766 2612 73299 2 +23686 18122 73301 2 +35805 2366 73305 1 +48 9111 73305 1 +16897 13889 73310 3 +11934 20172 73311 1 +10843 3496 73311 1 +33684 2047 73314 4 +4209 10715 73317 5 +14710 5780 73321 8 +34715 3319 73325 5 +10262 21518 73326 8 +6020 7930 73328 4 +23792 46 73328 4 +12900 7323 73331 5 +6020 14791 73336 1067 +23951 16008 73576 5 +15599 6440 73577 14 +16424 1194 73584 4 +19145 18045 73586 4 +35512 5492 73587 8 +9696 3257 73588 256 +14028 17971 73669 4 +36843 2381 73676 2 +21197 12280 73677 4 +8888 16486 73680 1 +10977 4368 73681 3 +7249 11517 73683 1 +9389 14846 73684 1 +11188 16453 73686 3 +18442 17254 73688 476 +23896 10791 73764 4 +22690 7599 73765 8 +14516 22261 73767 16 +18271 2843 73786 5 +5419 6236 73788 5 +3691 11398 73792 2 +12711 20859 73794 4 +18377 2809 73794 4 +636 22122 73800 4 +16393 3436 73803 5 +17238 18171 73806 3 +2744 19784 73808 2 +10601 18457 73809 2 +27506 5466 73810 2 +217 10661 73810 2 +816 2829 73815 9 +20896 2086 73826 2 +32484 3241 73830 7 +20018 2693 73833 11 +12984 1852 73852 3 +26234 4193 73853 3 +8880 19475 73853 3 +8988 22359 73858 28 +19062 22844 73871 3 +23530 12676 73873 5 +14171 5445 73877 4 +9251 15363 73878 5107 +18167 10764 75322 1 +27624 12904 75322 1 +6329 14584 75346 5 +21989 7188 75347 2 +4193 6961 75348 2 +10374 16486 75348 2 +1523 8689 75353 4 +14799 21503 75356 3 +10208 4956 75358 9 +38206 2529 75362 8 +18206 17469 75363 2 +31674 9617 75364 1 +25900 875 75364 1 +16723 14227 75736 4 +21620 11665 75737 4 +14353 20333 75740 1 +33676 3817 75741 13 +13496 9318 75748 38 +3982 12345 75775 2 +24817 3821 75778 1 +33573 5915 75778 1 +23999 6930 75780 3 +5329 10395 75784 4 +15842 5974 75785 8 +11950 4392 75790 4 +716 13041 75792 1 +9325 9529 75792 1 +22923 9722 75793 2 +2431 5032 75794 2 +8000 3815 75794 2 +12707 4979 75798 4 +17531 5481 75798 4 +1203 11690 75798 4 +15115 11786 75801 2 +7717 11882 75801 2 +21825 18499 75804 6 +30477 2064 75808 7 +8572 8185 75816 7 +23988 4577 75816 7 +19779 1016 75817 7 +17010 11251 75822 9 +31568 7605 75822 9 +10492 242 75826 5 +31201 4113 75827 23 +8834 3762 75851 4 +3674 19588 75853 5 +9931 18478 75857 11 +10384 8045 75869 4 +18792 21442 75871 1 +24996 5710 75872 550 +9129 1696 76285 9 +25161 5708 76290 215 +18754 6465 76294 3 +36396 4066 76298 4 +31110 10592 76300 5 +31871 1289 76300 5 +12569 17233 76301 2 +8580 6435 76301 2 +15383 11215 76329 11 +1319 23384 76331 8 +854 2020 76332 1 +34380 2421 76332 1 +11966 6251 76332 1 +26169 13362 76333 32 +14908 16270 76338 13 +25247 9687 76343 3 +24387 13981 76343 3 +23558 16951 76348 2 +687 11549 76349 5 +5058 13514 76353 1 +5211 6491 76353 1 +12960 14878 76356 4 +11500 1134 76358 5 +26090 10890 76362 7 +36987 1390 76367 3 +4163 17017 76367 3 +26096 1891 76367 3 +35419 3370 76367 3 +1536 16768 76375 204 +16597 6900 76375 204 +4168 1707 76375 204 +1534 11282 76376 3 +3117 21015 76378 1 +1929 17397 76379 4 +4991 10462 76382 2 +10119 5167 76383 741 +29921 6744 76734 2 +14620 9803 76735 2 +24949 7334 76735 2 +17292 15433 76738 251 +2839 2227 76838 6 +5171 8778 76838 6 +20894 8996 76842 4 +13887 16971 76843 66 +12062 15903 76862 228 +22923 114 76981 2 +8132 5638 76982 3 +1684 13171 76983 4 +23019 11539 76984 4 +3842 648 76985 5 +3108 15322 76986 8 +20667 18135 76992 2 +889 3043 76993 3 +21748 12752 76994 4 +21756 4437 76996 5 +3896 7370 76998 5 +19592 4770 77000 24 +23367 12051 77003 4 +1436 6636 77009 1 +6137 10518 77009 1 +22180 8449 77009 1 +40322 759 77010 3 +14183 18789 77010 3 +4470 21246 77011 43 +21410 10250 77061 3 +28501 6699 77061 3 +11269 8440 77066 6 +20524 7168 77072 5 +6833 18857 77076 4 +2663 7757 77077 9 +18185 6694 77077 9 +5662 6686 77078 4 +28439 3010 77082 3 +11970 17027 77083 1 +4771 944 77084 2 +21465 19159 77085 2 +16905 4260 77086 10 +33931 5990 77088 4 +10779 3106 77091 7 +6077 13469 77092 2 +6032 9008 77093 2 +4675 2422 77095 1 +17914 16115 77095 1 +6457 14489 77097 14 +33971 793 77104 3 +37614 2670 77105 6 +7893 20798 77113 9 +8637 12124 77121 7 +20985 10648 77129 1 +19827 13020 77129 1 +7518 20650 77133 3 +20258 5577 77134 181 +2912 2163 77189 3 +12754 3558 77190 3 +1250 9113 77192 2 +23116 1126 77192 2 +16034 7052 77193 1 +22023 14671 77193 1 +11069 13029 77195 2 +8842 4146 77195 2 +21022 1512 77197 1 +31781 864 77197 1 +14938 7529 78498 4 +16820 18918 78501 3 +14419 1972 78503 4 +4857 6260 78504 4 +1100 15920 78506 4 +29938 10178 78507 4 +14736 743 78511 2 +7840 15643 78511 2 +918 12097 78517 3 +3520 18922 78519 4 +28368 666 78520 16 +2070 4904 78527 7 +3037 11115 78531 9 +314 5181 78532 2 +20535 5947 78532 2 +28164 5877 78533 6 +3593 7906 78537 4 +28634 3084 78540 9 +6480 14322 78545 8 +30212 6808 78546 2 +10437 19002 78547 2 +3973 22750 78549 3 +8087 13712 78555 5 +14426 16557 78563 9 +3430 13809 78565 2 +16407 17875 78566 48 +11359 19546 78594 5 +10060 6223 78597 3 +25426 7141 78600 2 +20546 16527 78600 2 +29779 1656 78600 2 +31401 2307 78600 2 +21336 5761 78603 2 +20720 7374 78603 2 +37298 2069 78603 2 +2205 3456 78607 4 +2202 4553 78607 4 +18007 19115 78607 4 +32390 4344 78700 2 +16839 13355 78702 1 +4808 10065 78702 1 +13507 7964 78707 3 +20307 14608 78708 4 +26102 13930 78712 4 +26397 9606 78715 5 +25285 3865 78718 4 +6889 19803 78718 4 +35292 3308 78721 17 +25675 12580 78735 3 +8028 6275 78738 3 +13551 18518 78742 463 +7553 13112 78979 3 +4648 11909 78980 4 +24991 6270 78982 8 +19531 17458 78986 3 +11680 11087 78987 2 +8561 12581 78987 2 +16212 22236 78988 9 +26539 11627 78993 4 +14248 22535 78995 5 +17343 5602 78998 1 +13905 14514 78998 1 +6448 6355 78999 37 +22434 8617 79025 3 +20884 20508 79027 5 +23770 913 79028 5 +1092 13576 79030 32 +5759 19114 79046 2 +8797 21712 79047 2 +4232 18373 79048 3 +32446 2156 79049 7 +9720 16281 79051 9 +27187 2635 79053 4 +515 21033 79053 4 +16125 133 79055 4 +18792 11260 79058 3 +6375 10424 79060 7 +8573 21397 79061 2 +7718 7989 79062 2 +22698 11114 79063 2 +13 14850 79065 3 +10262 8818 79065 3 +4177 11259 79066 3 +8181 354 79072 41 +4784 7398 79104 2 +13010 16173 79104 2 +26123 13838 79107 9 +37670 1465 79109 9 +16594 22666 79120 5 +25153 2806 79126 1 +23704 1046 79126 1 +23 776 79131 1 +19925 12544 79131 1 +17322 10348 79131 1 +3597 7745 79131 1 +4538 20924 79136 4 +15021 10606 79137 1 +25971 14767 79138 3 +18972 13087 79143 6 +18551 19830 79144 4 +5136 20748 79146 5 +7761 17823 79149 8 +4255 6969 79151 5 +21444 15691 79153 2 +1584 1951 79153 2 +9102 4334 79157 4 +2995 10687 79159 5 +29801 12145 79167 1 +18231 11523 79167 1 +2238 15825 79171 5 +16674 19727 79172 10 +8674 3941 79172 10 +3957 14624 79173 14 +19332 16533 79184 968 +13353 10068 79876 171 +4446 11658 79876 171 +8514 1778 79878 6 +4857 19324 79880 3 +6452 4344 79880 3 +8675 11116 79882 5 +10176 21564 79889 5 +5185 21954 79892 11 +28836 558 79903 2 +1954 8152 79904 5 +6613 22844 79909 8 +24533 11414 79911 5 +34134 6936 79913 2 +34612 1828 79915 4 +15992 19242 79917 9 +23916 2332 79919 7 +1553 16906 79920 2 +24454 8375 79921 3 +15405 19610 79922 1 +11901 4058 79922 1 +14336 554 79922 1 +10278 10419 79923 3 +22162 2847 79925 2 +12838 6413 79928 3 +21372 15861 79929 2 +1149 20685 79931 27 +3538 16788 79958 5 +28666 8366 79960 1 +32109 3435 79960 1 +15330 10477 79999 4 +26149 1707 80002 4 +17493 11426 80003 10 +22063 12432 80011 4 +7433 4977 80012 5 +17394 23230 80014 8 +11852 9311 80019 366 +19822 21945 80060 9 +6565 22983 80066 9 +7310 685 80066 9 +11019 21421 81028 6 +28281 11906 81029 4 +28891 3051 81037 6 +27165 792 81038 9 +13356 4197 81038 9 +28229 12135 81039 4 +299 3982 81040 4 +10718 11063 81041 4 +28642 11099 81044 39 +17035 10696 81075 27 +12152 15066 81088 28 +20010 9734 81103 4 +22356 13934 81103 4 +26576 10332 81106 39 +16326 6070 81139 2 +18339 13407 81140 6 +17048 8906 81140 6 +5280 841 81142 13 +23836 8355 81153 4 +36393 1975 81157 9 +16183 19090 81164 3 +11957 10087 81166 1 +16226 13581 81166 1 +17585 21094 81178 7 +25520 14290 81181 3 +39195 27 81183 8 +8726 21615 81186 4 +6022 17732 81188 6 +15970 7318 81191 2 +8576 4174 81192 5 +6013 23137 81193 5 +2059 19028 81202 6 +36334 4101 81208 4 +28388 6463 81210 3 +10191 22949 81212 4 +7041 2226 81215 41 +23081 18042 81259 36 +1660 23263 81264 2 +610 17997 81266 3 +6727 14366 81271 3 +15404 5225 81273 9 +20235 8281 81280 7 +10983 8411 81282 3 +8783 6550 81282 3 +38035 2453 81286 3 +12565 8557 81287 5 +35923 2587 81290 5042 +3976 790 83188 4 +18216 17582 83188 4 +3062 5296 83188 4 +7456 790 83188 4 +24969 9279 83191 2 +19284 15898 83193 6 +6202 21203 83196 5 +19521 16374 83198 5 +11138 17032 83203 1 +13262 832 83204 9 +5692 8478 83209 5 +22369 12918 83209 5 +9576 6055 83210 1306 +14698 22870 84300 8 +20557 19527 84304 2 +6795 6458 84305 5 +13223 7592 84305 5 +25716 7880 84306 5 +20845 16233 84309 4 +28585 6920 84312 7 +19286 19573 84315 3 +14978 13097 84318 2 +22238 9180 84318 2 +37382 2039 84319 2 +8604 16881 84320 2 +20710 15503 84322 7 +19525 14160 84328 4 +13016 12898 84331 2 +1655 13967 84332 2 +2212 14069 84333 37 +31120 8009 84355 3 +4450 19631 84357 7 +6013 12275 84360 35 +3430 13301 84392 3 +13601 4737 84393 2 +29579 4219 84395 5 +28826 9080 84395 5 +25004 3587 84401 2 +24250 7446 84401 2 +21900 5980 84406 1 +11037 14801 84407 7 +14732 6228 84409 9 +2951 19563 84415 9 +20236 141 84417 6 +22792 5951 84422 4 +20043 17717 84422 4 +29082 9428 84424 23 +22925 9703 84440 3 +3148 16196 84441 6 +9645 3411 84447 4 +36599 1561 84451 2 +16752 22830 84452 1 +5435 2793 84453 2 +18498 8002 84453 2 +17105 14282 84454 5 +5937 3493 84460 7 +14307 9688 84462 68 +1972 11488 84549 5 +16250 2508 84549 5 +31248 5984 84551 6 +8060 16924 84553 1 +14124 6744 84553 1 +12714 9925 84555 112 +28034 10132 84641 3 +7690 12434 84642 3 +18 13578 84643 9 +18275 22776 84653 4 +19899 12321 84655 7 +34745 6739 84662 4 +17617 11102 84663 5 +2695 17842 84668 9 +5156 9497 84678 7 +36508 4721 84682 3 +19439 5937 84685 2 +31157 47 84686 4 +31998 9194 84687 5 +6519 15564 84690 8 +13718 8206 84704 18 +34898 6570 84710 4 +19987 18698 84712 17 +7974 14669 84717 4 +15496 5781 84719 5 +35718 1341 84728 272 +24408 3338 85050 4 +2343 4146 85051 16 +2839 17581 85056 6 +6199 19026 85057 1 +24418 4642 85057 1 +30698 2844 85058 3 +32019 1187 85061 3 +35909 776 85062 5 +13652 20208 85067 5 +12108 14711 85070 1 +8727 4517 85071 4 +13692 13640 85074 6 +15914 14817 85076 4 +3841 8851 85076 4 +11164 21503 85077 4 +15420 23452 85079 5 +7255 15926 85083 18 +16184 3350 85087 1 +27935 3220 85088 3 +20703 14131 85089 8 +8596 22873 85096 1 +29153 1682 85097 3 +16235 18589 85100 7 +13165 21372 85103 2 +1215 15946 85105 18 +36472 2763 85123 3 +39172 2665 85127 2 +9523 9234 85128 9 +9136 15023 85129 10 +24079 3513 85135 7 +3812 17036 85137 2 +288 13031 85138 6 +2139 1624 85142 8 +22727 8968 85145 29 +7987 6475 85153 4 +29744 2390 85157 4 +24034 9968 85158 994 +32783 3516 85755 5 +3054 22321 85757 10 +19062 21467 85761 4 +10345 2201 85761 4 +10427 5558 85765 3 +971 14592 85766 7 +4929 19934 85767 313 +10245 6573 86256 4 +19612 1494 86258 3 +36663 3438 86262 1 +8859 11593 86263 4 +12207 19688 86265 25 +5272 344 86275 2 +29245 3410 86276 5 +26516 13186 86277 4 +9497 20177 86280 6 +17397 9633 86286 4 +25355 14334 86291 9 +25230 13320 86297 4 +3865 16007 86299 1 +8324 7661 86299 1 +6727 21896 86305 2 +21613 5507 86307 2 +10724 18161 86307 2 +17030 14572 86310 10 +14976 21075 86317 11 +15393 17576 86334 3 +998 11419 86335 7 +20215 14665 86338 8 +7844 23236 86342 2 +2183 20964 86344 5 +9017 9903 86351 188 +9115 5873 86375 7 +10857 13472 86378 1 +8374 23102 86380 8 +8027 6299 86382 3 +12707 16526 86383 5 +20027 4294 86384 119 +5494 10786 86480 9 +22387 5117 86494 3 +24199 7385 86495 6 +11713 18571 86502 2 +7153 5097 86502 2 +29569 537 86502 2 +22721 1321 86506 2 +14742 11401 86506 2 +1526 1784 86506 2 +19784 5767 86510 7 +23148 16622 86517 3 +13098 1226 86519 8 +34679 5853 86520 3 +15243 7385 86523 4 +14114 15208 86528 9 +26850 14756 86535 4 +11258 22906 86536 2 +5858 762 86536 2 +10282 9987 86537 4 +440 6727 86539 46 +37192 1472 86555 5 +34224 6432 86557 1191 +25817 4491 87014 6 +22599 690 87016 7 +23418 14378 87016 7 +1418 5793 87016 7 +11362 2807 87016 7 +21518 1705 87017 2 +7939 5952 87018 2 +10672 15222 87020 4 +12417 4074 87021 2 +3513 18640 87023 5 +37901 3559 87027 4 +20830 6096 87029 1 +28243 2702 87030 4 +1171 10990 87031 4 +2972 19614 87032 2 +33916 4956 87033 2 +5192 16241 87033 2 +11349 919 87037 3 +32886 5443 87040 4 +30008 4648 87045 2 +13270 3641 87045 2 +12823 21380 87046 3 +27360 10871 87048 1 +10401 17531 87049 265 +30878 5413 87342 9 +14351 15924 87346 1 +21361 6524 87347 10 +21621 15871 87355 9 +15013 1858 87360 4 +18203 12435 87361 3 +28422 12233 87362 3 +10209 14260 87364 2 +8957 8066 87365 4 +30308 1495 87366 4 +29446 39 87370 9 +12399 13675 87370 9 +15471 6001 87373 41 +22435 9927 87400 8 +24043 4905 87406 2 +3076 16960 87408 5 +6592 7770 87410 2 +12176 15898 87410 2 +2010 23489 87414 3 +19926 11106 87417 15 +23222 549 87423 5 +6337 11939 87433 3 +29637 1472 87434 4 +6567 13552 87436 27 +12503 20440 87478 2 +21116 8158 87479 3 +13173 20695 87481 4 +376 1999 87483 5 +25041 6601 87484 1 +23988 715 87484 1 +25903 6773 87486 1 +18263 16895 87486 1 +23308 3079 87489 4 +36310 4631 87491 4 +6678 8733 87495 4 +18498 795 87498 2 +16682 17243 87499 1059 +1087 10308 87980 3 +1945 19043 87981 3 +8721 10616 87982 2 +16685 21522 87983 3 +1292 9403 87984 10 +25635 13968 87988 2 +15908 9700 87988 2 +25387 11143 88049 5 +29150 11613 88054 5 +10189 12206 88056 2 +1980 6370 88057 3 +14283 12822 88060 6 +22129 9134 88063 5 +17227 14534 88063 5 +18722 16154 88069 1 +20967 7514 88069 1 +10754 12328 88071 3 +26829 7930 88073 31 +14052 21637 88080 3 +36023 19 88082 7 +9143 13579 88086 4 +29219 10820 88091 9 +22891 13457 88094 2 +18045 10750 88095 1 +4722 2718 88095 1 +12983 672 88096 1 +19719 14512 88096 1 +27893 7204 88097 2 +38554 420 88097 2 +26128 1991 88098 1 +21944 19050 88098 1 +59 2547 88100 2 +11578 10072 88101 3 +10442 1469 88101 3 +19929 19093 88104 3 +31124 1925 88106 4 +9138 8432 88111 2 +8395 12251 88112 4 +22707 4006 88114 46 +29569 10471 88145 8 +7975 18194 88150 8 +3120 5474 88150 8 +29339 4019 88151 8 +14860 21210 88155 5 +12 18025 88161 121 +9060 13303 88229 6 +3227 19885 88232 255 +26358 15222 88240 1 +29240 7620 88240 1 +7303 4573 88259 7 +11565 3997 88265 4 +15264 6378 88269 1 +2586 16498 88269 1 +4745 15193 88270 2 +2913 8475 88270 2 +10197 6643 88270 2 +15955 14510 88271 3 +4287 9158 88271 3 +27498 7566 88278 3 +27623 2503 88278 3 +4732 16102 88278 3 +20964 18132 88286 21 +14485 19926 88311 5 +24660 3742 88311 5 +19702 1891 88314 2 +27643 12936 88316 3 +6907 3423 88319 4 +23949 15401 88320 6 +2903 8267 88320 6 +34189 2475 88321 1 +14683 2595 88321 1 +41128 362 88322 3 +20794 1484 88323 198 +12474 21638 88401 3 +8202 13445 88403 6 +39262 413 88409 3 +16080 13485 88411 3 +4986 5321 88412 6 +1569 21164 88415 6 +3369 15498 88422 5 +33472 220 88427 5 +11435 21939 88431 1 +7711 23366 88432 4 +4598 17844 88436 2 +2042 7610 88438 4 +15394 9953 88439 6 +11807 20022 88441 2 +32437 3646 88441 2 +4297 17784 88444 2 +28555 6715 88446 1 +20177 2940 88447 2 +4272 17461 88448 2 +31521 1048 88449 9 +29391 5622 88453 21 +11801 9582 88472 5 +9039 20800 88473 3 +1674 7812 88476 4 +16472 9749 88477 5 +12647 19255 88480 197 +1199 13425 88543 2 +11406 8895 88543 2 +30491 9118 88544 2 +37602 2030 88544 2 +1819 14257 88546 2 +36136 4315 88546 2 +16316 21050 88551 3 +3828 5432 88554 2 +15193 18236 88554 2 +13910 14045 88555 10 +4097 5320 88564 2 +11191 9685 88564 2 +22593 11893 88567 9 +1194 11308 88577 7 +9150 7978 88581 2 +13815 2202 88581 2 +27349 2714 88583 9 +29162 1828 88584 82 +16611 10106 88650 5 +15088 8382 88653 4 +7563 8620 88653 4 +3929 9546 88664 1 +29025 10819 88665 7 +14638 5917 88670 1 +17383 7174 88671 13 +5742 14780 88674 4 +9318 3602 88680 165 +13564 22271 88725 10 +8102 15493 88733 4 +10530 1386 88737 5 +10894 21961 88739 10 +22981 12348 88740 3 +15560 3471 88740 3 +20838 7849 88740 3 +13063 8798 88745 2 +2292 22525 88746 6 +20411 15134 88747 4 +552 2797 88750 1 +3034 2692 88752 7 +13588 2070 88754 2 +555 4075 88755 5 +14764 2383 88756 9 +28163 2941 88761 4 +10758 16840 88761 4 +1432 22086 88765 4 +5397 5925 88766 4 +28265 11611 88767 3 +4559 4458 88771 2 +7177 21631 88772 2 +3782 2037 88772 2 +2748 12380 88784 4 +17535 22370 88786 4 +23134 18679 88789 3 +23126 4821 88792 5 +17874 22007 88795 1 +23284 9305 88796 47 +21404 14731 88801 4 +105 16598 88803 5 +2579 16108 88809 5 +5427 21017 88812 38 +21642 18559 88829 3 +115 14828 88833 6 +33140 6891 88833 6 +16762 1852 88835 4 +17411 21573 88836 3 +13667 10724 88839 7 +13840 3533 88846 8 +684 13354 88866 3524 +4071 344 91228 3 +10875 6492 91230 4 +12569 15086 91235 24 +16826 7965 91235 24 +24299 9817 91239 6 +15676 12328 91242 4 +4070 7947 91242 4 +7919 3393 91242 4 +21298 13169 91246 10 +9085 3914 91266 3 +11678 9852 91266 3 +16622 3710 91266 3 +16970 12783 91270 9 +21120 7811 91273 8 +9717 3074 91274 2 +36124 5675 91274 2 +17201 8937 91274 2 +18833 4060 91277 206 +26861 4422 91349 2 +7997 17294 91352 3 +15449 5361 91354 5 +33699 1650 91354 5 +13865 14059 91355 4 +29277 6363 91358 2 +11036 832 91359 4 +11669 8017 91364 6 +18933 4221 91370 9 +20131 20 91372 2 +17284 9343 91372 2 +898 19131 91376 5 +25508 10392 91383 2 +33129 3437 91384 9 +35695 2019 91386 2 +28580 6501 91387 4 +19641 9643 91390 1 +7938 18314 91391 8 +13820 16022 91394 3 +18881 21584 91397 4 +15042 11153 91404 7 +2075 18266 91406 5 +12174 5402 91406 5 +8179 14441 91414 3 +29384 262 91418 2 +7406 19167 91420 2 +17839 4501 91420 2 +11889 8092 91422 5 +10377 15737 91423 8 +14372 17384 91430 35 +3127 14150 91436 4 +25727 12560 91438 3 +1289 1435 91439 5 +19895 8393 91440 1 +12359 23417 91441 4 +33303 1054 91443 32 +11529 13762 91453 1 +11032 353 91454 9 +4325 4748 91457 4 +32296 9003 91458 7 +12932 18026 91461 10 +38422 2361 91467 3 +28324 11381 91468 5 +18644 12287 91468 5 +18542 19780 91469 4 +27264 7989 91472 4 +12143 22552 91473 7 +2088 19537 91480 2 +9651 4131 91480 2 +8651 4131 91480 2 +24864 397 91481 8 +28042 3621 91490 5 +18533 8455 91491 42 +7010 23041 91521 8 +5834 13805 91523 4 +33269 3653 91529 4 +25840 13879 91531 1 +32103 7272 91531 1 +7628 15615 91535 4 +3792 8053 91535 4 +23356 16093 91560 2 +34240 7072 91561 4 +24188 2411 91565 78 +21095 20950 91575 3 +6646 17878 91576 7 +14027 15817 91581 5 +24560 7421 91582 605 +35673 4343 91626 2 +1524 4688 91627 10 +30037 2587 91628 5 +18615 12919 91634 8 +7228 3022 91635 242 +10146 4610 91817 49 +33341 7072 91846 44 +35804 2300 91846 44 +725 5777 91847 6 +8180 21459 91849 12 +27904 3234 91852 5 +32766 7030 91858 2 +13191 16703 91861 4 +23649 865 91863 2 +26300 4509 91867 9 +12009 22820 91872 4 +39940 324 91876 1 +32524 2276 91877 148 +19717 22066 91917 2 +6352 3567 91918 2 +38468 3385 91919 2 +6946 21801 91920 3 +1557 21073 91921 6 +37219 2046 91926 8 +40306 716 91929 3 +5660 10775 91929 3 +7071 2837 91930 1 +15602 4325 91931 5 +10163 23436 91933 3 +5346 20208 91935 4 +22790 9251 91936 10 +20234 13725 91943 3 +11357 9519 91945 9 +20000 15695 91958 3 +24406 10123 91962 3 +25663 2959 91964 2 +31903 6145 91966 8 +1215 21519 91968 2 +5083 19679 91971 7 +17362 1153 91972 5 +14356 9966 91974 4 +16782 18706 91978 7 +23375 3834 91985 5 +25955 602 91991 18 +932 14505 91992 3 +23088 14471 91994 7 +6202 20136 92000 5 +1175 21914 92004 3 +14218 20294 92005 4 +8067 21725 92008 2 +412 1943 92008 2 +27836 13255 92010 26 +6714 3230 92027 3 +11272 8043 92027 3 +24993 10450 92029 9 +22851 11016 92039 2 +22928 13377 92040 5 +18183 3 92041 8 +15006 9560 92049 3 +6748 4174 92049 3 +5673 17935 92051 4 +3256 17018 92052 1 +24082 17640 92053 3 +18929 1273 92055 2 +32165 9596 92056 2 +6138 12108 92057 3 +2982 10699 92059 9 +23868 9332 92065 2 +8794 9764 92066 26 +15020 10621 92112 2 +12536 10545 92113 4 +16475 5748 92114 7 +11939 3915 92118 2005 +20081 5518 93040 4 +20715 3370 93042 40 +7042 15486 93049 9 +3751 18880 93054 4 +26401 13359 93055 4 +27376 13578 93056 7 +13505 19015 93059 1 +4571 13114 93060 8 +17639 442 93062 106 +26128 10381 93084 1 +21039 13001 93084 1 +13741 23628 93085 5 +4662 22930 93089 5 +31196 1108 93093 134 +13770 22785 93196 1 +5598 8304 93197 9 +2649 19361 93199 2 +7856 3255 93201 1 +188 10932 93202 2 +37523 1280 93202 2 +5923 11456 93202 2 +32337 6541 93204 2 +26873 3161 93205 11 +15587 4792 93213 3 +11014 13235 93214 9 +21848 3392 93220 4 +10360 286 93223 5 +1444 20419 93224 4 +5531 5519 93229 9 +31019 5907 93233 7 +8827 9471 93238 3 +19436 14197 93238 3 +19515 10850 93242 22 +4765 19315 93253 3 +17445 11783 93256 7 +9329 7388 93261 4 +5087 8371 93265 6 +11782 19268 93267 2 +13475 16392 93269 2 +23141 18109 93270 3 +6413 17284 93271 8 +12568 3792 93273 2 +31197 5805 93275 4 +13583 11798 93277 4 +4353 5647 93281 4 +278 10122 93283 5 +3165 22696 93284 2 +17316 8124 93285 34 +24731 4655 93296 2 +7768 17321 93298 8 +16312 20897 93299 3 +19421 2771 93299 3 +16803 21802 93304 4 +35787 1866 93304 4 +15168 16482 93325 1 +19064 357 93326 3 +33273 4814 93328 8 +2593 5774 93332 4 +22292 11483 93332 4 +9508 6411 93332 4 +14439 22652 93333 2334 +11711 6542 94294 34 +21190 678 94302 2 +20494 1017 94302 2 +6791 6093 94302 2 +17104 4249 94314 4 +17530 6431 94319 9 +12430 6147 94322 2 +20961 18827 94324 2 +17043 17303 94325 50 +9273 13426 94397 12 +5058 9069 94405 3 +23170 18866 94406 8 +10436 1567 94408 9 +12596 18910 94412 3 +4105 8960 94416 5 +18412 7782 94417 45 +20643 1376 94493 2 +31036 2600 94493 2 +31334 1578 94495 2 +5193 20416 94497 26 +34170 7732 94515 4 +1349 20146 94517 7 +10190 6783 94522 4 +17399 6716 94522 4 +16224 23217 94526 7 +6405 13850 94531 30 +12096 16434 94549 2 +20196 20871 94551 4 +6823 22847 94552 1 +8860 821 94552 1 +15694 9893 94553 9 +12654 8221 94558 2 +24973 7818 94558 2 +23806 15377 94571 6 +15556 18729 94576 3 +14028 986 94581 2 +8705 14978 94582 3 +3581 18704 94585 2 +18611 1369 94587 2 +24269 15280 94588 8 +6458 5869 94595 5 +34156 7155 94602 2 +17938 376 94605 7 +29373 7677 94606 25 +32734 3749 94629 4 +21340 8480 94630 4 +12899 15188 94630 4 +1451 5444 94638 10 +12204 4009 94649 4 +13836 6718 94655 4 +21521 13446 94656 2 +33249 7057 94658 7 +17428 9458 94661 2 +1255 11512 94662 2 +10101 21257 94663 50 +5091 14905 94692 681 +29177 10584 95062 8 +2845 10535 95069 2 +10134 3571 95069 2 +11768 246 95069 2 +22364 15210 95082 4 +15029 17533 95083 1 +6673 6135 95083 1 +21428 2830 95088 2 +13241 7906 95089 4 +11541 19927 95090 2 +4527 3741 95090 2 +13676 20837 95092 3 +22979 5895 95093 3 +10052 12405 95095 3 +32047 4212 95095 3 +5353 18856 95104 83 +20736 11051 95193 9 +13677 16878 95197 5 +25029 6636 95201 6 +21923 5275 95215 2 +14835 9126 95215 2 +28844 91 95217 1 +15889 5492 95217 1 +17864 18085 95217 1 +28209 592 95218 2 +9816 23070 95218 2 +25852 6862 95219 3 +33016 8419 95219 3 +7075 4931 95221 6 +32249 9466 95229 251 +3759 8932 95361 4 +2661 7199 95364 33 +2587 20720 95373 5 +1425 22923 95379 4 +31204 10753 95382 2 +7366 9562 95384 8 +14796 12351 95389 5 +23795 10036 95389 5 +19631 22372 95584 29 +25211 8121 95589 8 +16114 9517 95592 5 +6638 14205 95595 2 +5904 8978 95596 2 +11450 13355 95597 2 +17308 13983 95598 4 +28188 2453 95598 4 +35613 4398 95600 3 +6852 1865 95601 6 +22929 4079 95607 2 +14706 6021 95607 2 +19096 17879 95609 8 +30376 370 95618 2 +38507 1115 95620 6 +13746 11219 95620 6 +10158 16618 95622 6 +27661 2775 95628 7 +29704 7367 95634 4 +16063 21751 95636 4 +22997 676 95637 2 +471 8710 95638 7 +13911 12654 95646 8 +26771 11014 95646 8 +18367 11246 95649 1 +16894 2986 95649 1 +17074 3232 95672 6 +27384 9041 95677 4 +7000 15439 95678 2 +1592 8229 95678 2 +24808 2002 95679 5 +4872 11768 95682 4 +9484 17629 95686 4 +8215 11835 95692 20 +6087 2732 95708 3 +8870 19834 95709 5 +2114 19700 95711 1 +17023 3320 95711 1 +14928 4394 96001 2 +21346 12157 96001 2 +1504 11695 96002 44 +5121 14763 96023 3 +17620 11343 96025 4 +30954 9638 96026 4 +6657 11052 96028 3 +1553 3397 96029 5 +1970 5478 96031 3 +836 4992 96032 6 +6426 15765 96032 6 +1215 16254 96033 3 +30509 135 96034 3 +28165 6739 96036 5 +5705 21229 96041 7 +7499 15464 96051 3 +15114 21421 96052 16 +35306 2247 96052 16 +1536 19072 96053 4 +7502 19699 96058 3 +18607 3969 96058 3 +12074 11946 96060 5 +23364 15361 96062 6 +6961 22246 96067 1 +18036 1422 96067 1 +1693 18713 96082 4 +11470 21263 96086 6 +17926 9638 96088 4 +10185 4650 96091 2 +9682 2387 96093 3 +2088 18547 96101 3 +10450 22484 96104 3 +15999 1184 96104 3 +24390 1184 96104 3 +5205 13457 96106 4 +752 14524 96107 4 +22911 7845 96109 1 +19449 7160 96109 1 +17783 2963 96110 1 +13705 16952 96110 1 +19034 6716 96110 1 +26751 6716 96110 1 +20706 13404 96112 9 +27986 13345 96116 6 +19565 14134 96123 44 +27791 8282 96145 5 +7990 3240 96146 4 +29498 9416 96148 7 +36736 385 96151 1 +27186 10552 96152 46 +9640 18997 96208 128 +1543 16619 96230 3 +2351 10939 96233 2 +2060 10890 96233 2 +5475 15657 96249 1 +3991 6348 96250 9 +22034 5482 96265 3 +18673 2057 96265 3 +19127 14414 96265 3 +11357 12041 96282 9 +27868 11640 96285 1297 +26997 3986 96943 2 +25098 11003 96945 2 +23717 664 96946 6 +30254 405 96949 4 +6359 391 96950 8 +459 17313 96954 5 +10714 16204 96958 5 +18380 2529 96958 5 +18882 21632 96960 2 +9992 19219 96961 4 +21586 15107 96962 14 +23166 1112 96962 14 +36528 1147 96964 4 +26042 14134 96967 4 +9241 21857 96968 4 +2587 1811 96968 4 +9770 17654 96971 7 +24136 1999 96974 33 +8468 14278 96974 33 +29648 6572 96974 33 +8343 819 96974 33 +17891 557 96975 4 +12182 2320 96981 4 +4923 18691 96982 8 +7581 5325 96988 6 +11619 2497 96994 168 +2137 11860 97070 9 +16683 11952 97073 4 +16241 1128 97081 3 +16125 14837 97083 6 +1364 8831 97083 6 +6690 20288 97091 5 +20842 2676 97092 9 +24971 16290 97095 9 +4306 14014 97100 10 +13271 13028 97104 4 +15678 2582 97108 2 +26180 9098 97109 5 +4787 14570 97109 5 +12974 1211 97113 2 +71 19884 97114 28 +23770 6727 97142 10 +32600 3811 97156 2 +34885 2757 97157 5 +14703 1036 97158 8 +28064 11909 97166 3 +32847 8630 97167 697 +4389 410 97607 8 +7639 6926 97613 7 +5455 13564 97616 16 +7727 12193 97618 5 +8592 9251 97621 10 +3632 19621 97622 1 +2668 7782 97623 4 +11526 5001 97624 2 +20034 5780 97625 2 +14277 1443 97627 2 +26392 11456 97628 2 +3318 2299 97630 3 +2719 14784 97634 4 +5268 17349 97637 7 +22188 15123 97645 1298 +34687 1093 97976 1 +29035 537 97977 8 +5057 11301 97980 2 +26851 2115 97980 2 +1546 9362 98007 1 +13827 3116 98007 1 +19231 841 98008 3 +13227 421 98010 8 +5497 16642 98018 16 +34072 2005 98024 4 +20555 10779 98026 6 +21104 4136 98031 9 +15790 7935 98032 5 +4749 21712 98034 2 +33526 2403 98035 1 +10686 15409 98035 1 +23973 12584 98046 6 +11893 17623 98061 4 +8001 3779 98062 10 +10443 4027 98072 184 +17637 16330 98307 2 +1013 7338 98307 2 +82 11603 98878 3 +25364 12065 98878 3 +5979 5732 98879 8 +5630 14439 98879 8 +24719 16760 98881 2 +18715 5571 98882 5 +5007 12847 98885 41 +33857 2045 98932 3 +31134 3927 98934 2 +6363 3717 98935 2 +9674 7633 98935 2 +1395 21287 98952 3 +11872 15508 98954 4 +12170 17788 98960 9 +25674 12021 98963 2 +10028 9869 98964 8 +13184 547 98967 9 +8418 20319 98971 4 +3418 13604 98972 3 +13929 3289 98972 3 +2101 22999 98974 4 +4997 8648 98979 5 +4484 2981 98983 6 +25882 9736 98989 20 +10432 22654 99015 1 +33292 1014 99015 1 +1072 16576 99017 1 +20231 7092 99017 1 +32585 2207 99018 3 +4354 9406 99021 1 +6692 14262 99021 1 +7474 7206 99028 3 +20085 9850 99031 6 +34174 4985 99038 3 +6284 11396 99042 8 +26885 5330 99049 2 +18323 19433 99051 1 +23821 4235 99051 1 +2765 23618 99054 4 +8991 4360 99058 5 +18172 20883 99060 2 +19408 14 99061 2 +27152 5715 99061 2 +10398 4979 99062 2 +15522 7556 99062 2 +7239 11133 99062 2 +12258 2314 99063 8 +19669 15178 99072 4 +26975 5662 99072 4 +28702 12469 99073 2 +1238 18272 99074 9 +29926 8501 99081 1 +15802 15413 99082 2078 +25331 2967 101431 2 +11549 18609 101431 2 +12163 14331 101436 3 +17580 4454 101440 7 +4739 6372 101442 4 +14617 13403 101443 9 +9494 10265 101443 9 +20939 5142 101443 9 +12956 14999 101445 4 +18714 2821 101450 3 +33905 650 101454 2 +11770 20349 101455 35 +25840 9792 101493 1 +12449 19355 101494 8 +10796 3019 101503 1 +14385 7976 101504 4 +24994 14945 101509 7 +21920 5651 101511 2 +15948 12901 101514 6 +2452 834 101519 2 +14924 22330 101521 2 +6890 1338 101521 2 +7071 10642 101522 5 +12273 16726 101524 8 +12074 18124 101525 3 +19338 2833 101525 3 +8749 18093 101527 9 +30507 3469 101529 2 +15969 22698 101530 3 +8360 970 101530 3 +5746 20885 101532 1 +9145 2783 101532 1 +3637 14489 101538 2 +11702 9179 101538 2 +14963 6424 101538 2 +5588 10681 101539 2 +3502 13100 101540 4 +18861 6928 101542 189 +21324 13578 101656 1 +12223 10090 101656 1 +24867 1136 101658 3 +1805 15528 101658 3 +31381 1286 101661 4 +24389 1571 101666 4 +8694 15808 101668 46 +17650 21720 101740 1 +1365 11239 101741 4 +18129 523 101742 3 +3758 86 101744 5 +23982 4166 101745 46 +5106 22878 101755 3 +16386 13345 101756 2 +16734 7583 101756 2 +14392 8581 101759 3 +19130 119 101760 4 +29775 8348 101766 7 +12842 2304 101772 8 +11074 13510 101775 2 +5601 21516 101777 5 +4901 2152 101777 5 +24224 6661 101781 8 +22990 17056 101793 4 +15780 3567 101799 3 +16235 19945 101801 3 +19064 3091 101803 3 +29894 2155 101805 7 +2307 22711 101811 4 +21260 15960 101814 7 +14946 8607 101821 1 +39043 1806 101822 10 +18940 17600 101824 2 +33355 6068 101824 2 +299 3185 101824 2 +25719 11029 101828 39 +33665 896 101835 7 +15269 17177 101837 2 +19644 6778 101838 4 +1662 6284 101838 4 +9575 22822 101840 4 +18685 9362 101846 10 +2590 8323 101852 2 +4038 12480 101854 10 +7177 11217 101860 2 +19609 2613 101861 9 +11407 19321 101865 1 +16934 2503 101866 9 +24505 15887 101874 2 +12351 8052 101876 3 +22713 4775 101877 6 +6039 1708 101879 2 +35396 20 101879 2 +13510 5582 101883 2 +29602 1854 101884 37 +13475 21194 101903 2 +39239 1123 101904 4 +11496 23049 101906 43 +19391 4341 101908 3 +25676 9647 101910 8 +17144 19369 101913 1 +11258 4299 101913 1 +20823 4931 101914 6 +20675 10350 101915 2 +30566 4014 101916 5 +11327 4400 101920 3 +23123 3024 101924 3 +18944 815 101925 4 +38376 3556 101927 1 +12629 8583 101927 1 +9309 8257 101931 47 +3359 7198 101951 7 +36617 2342 101954 3 +9212 17863 101955 5 +8363 5805 101955 5 +12443 9215 101959 1 +6765 20268 101960 6 +33257 2577 101961 44 +6025 14921 101961 44 +11211 16586 101967 10 +26471 9264 101971 2 +2121 4220 101971 2 +8769 20273 101974 9 +5709 7312 101984 4 +10511 7011 101986 3 +19764 8622 101986 3 +20591 20264 101993 5 +8436 1916 101995 6 +14060 2675 101998 4 +1993 17380 101998 4 +11966 16650 101999 28 +3303 7018 101999 28 +7923 13324 102626 2 +1356 9655 102627 10 +30750 7849 102634 5 +23465 18074 102637 9 +16238 16458 102639 2 +6383 5133 102642 3 +39338 1397 102642 3 +14425 11524 102656 2 +5183 15703 102658 2 +37376 4657 102658 2 +31628 6234 102660 6 +3326 13539 102664 7 +2222 14993 102666 4 +23339 11998 102668 6 +30986 3424 102677 5 +10623 521 102678 1 +4439 18556 102679 4 +4370 22706 102682 2 +21497 8320 102683 4 +31199 9768 102683 4 +16925 7030 102686 3 +5949 16445 102688 6 +15169 11293 102693 2 +9303 1649 102693 2 +5737 9029 102703 2 +5825 20830 102704 10 +24015 15650 102709 4 +29555 7363 102709 4 +6210 1918 102710 7 +24664 12986 102711 5 +6093 13459 102716 27 +1769 10209 102716 27 +10378 5885 102716 27 +36292 3803 102721 3 +10990 8137 102722 14 +12428 4329 102756 4 +20460 9774 102758 7 +12335 2597 102768 1 +17952 706 102768 1 +11667 5936 102769 3 +13217 14516 102769 3 +3142 3414 102771 4 +11179 2731 102771 4 +154 1727 102772 4 +26974 14370 102773 7 +19031 1434 102777 2 +29263 8774 102778 4 +6961 3985 102779 9 +18558 16478 102783 2 +6281 21894 102784 10 +29034 1197 102786 5 +8211 18216 102787 4 +12292 3972 102789 4 +29905 4230 102792 10 +21932 17226 102795 22 +38576 2364 102803 6 +7440 18412 102806 4 +7488 3822 102807 2 +11659 23181 102808 7 +17888 15200 102812 2 +33938 289 102814 3 +17262 20560 102819 2 +2611 18548 102820 31 +9578 20410 102821 28 +21396 11784 102834 3 +12989 11884 102834 3 +21243 1528 102838 2 +5404 20334 102839 92 +31578 5602 102852 3 +2839 14173 102854 7 +37347 2845 102857 8 +29441 5961 102857 8 +3664 16290 102861 3 +3010 18958 102865 2 +6936 18250 102867 4 +7530 4163 102868 1 +35525 405 102868 1 +10718 22973 102873 5 +13993 4037 102878 21 +18396 10538 102884 3 +11611 13130 102884 3 +20991 887 102884 3 +22688 4955 102885 8 +19261 6153 102886 3 +24056 6422 102886 3 +11647 16889 102890 4 +19492 17482 102891 4 +33507 6846 102893 1 +18235 15552 102894 8 +8397 1022 102895 3 +17775 10466 102899 3 +1687 19864 102901 3 +14478 9862 102902 4 +6526 20559 102904 2 +34359 30 102906 6 +29465 125 102911 2 +38051 859 102913 2 +31859 5944 102913 2 +11466 15223 102914 9 +9389 1968 102920 4 +7625 1652 102920 4 +23936 3921 102921 4 +28832 742 102923 3 +6663 12751 102924 3 +34366 1754 102924 3 +9778 21532 102926 9 +27006 14629 102935 3 +19993 20387 102936 39 +14739 19069 102969 5 +5958 7434 102972 2 +16223 2249 102973 4 +26063 11349 102973 4 +4536 3203 102977 2 +22266 7518 102978 4 +18288 15480 102978 4 +17845 15367 102980 21 +32055 1526 102995 9 +19860 13588 102998 2 +2925 10080 102998 2 +20702 20274 103000 3 +7201 12115 103004 3 +23903 6029 103006 3 +25425 3370 103008 1 +6441 18864 103009 3 +8354 971 103013 3 +8103 15346 103015 2 +15422 9854 103017 4 +16629 12261 103020 2 +37136 4181 103020 2 +21972 13568 103021 4 +6044 12035 103023 5 +28418 248 103024 4 +32117 1063 103024 4 +1234 9792 103024 4 +21632 12565 103024 4 +21228 4863 103025 5 +10401 9100 103029 1 +14175 2073 103029 1 +2665 5129 103030 5 +18308 5373 103031 5 +20921 16943 103031 5 +19626 12390 103033 4 +26530 7652 103034 3 +22437 13807 103036 3 +1816 1705 103037 5 +3563 20327 103041 37 +532 18408 103099 2 +24809 371 103100 2 +20115 18702 103100 2 +28667 10548 103105 28 +13227 943 103121 2 +30409 11327 103121 2 +25358 3325 103121 2 +406 6569 103122 39 +33506 1733 103122 39 +11465 19396 103126 10 +30769 4272 103126 10 +562 3969 103127 10 +25672 10349 103128 1 +13890 10822 103128 1 +3150 8305 103129 4 +8548 10005 103132 5 +3496 14257 103138 3 +11265 9411 103138 3 +18602 9781 103139 10 +28442 1579 103146 5 +19416 823 103148 3 +1783 16143 103148 3 +11475 3534 103154 7 +8904 22923 103159 4 +13558 136 103163 26 +26852 5629 103174 3 +21874 10718 103174 3 +7424 20928 103176 1 +24736 8287 103177 23 +5410 14221 103180 1 +23691 7694 103182 3 +4707 3207 103183 9 +30931 5966 103192 4 +37807 1393 103194 222 +5222 16899 103389 2 +12647 54 103389 2 +28461 9786 103393 4 +22516 7395 103395 9 +3467 20476 103397 3 +25571 1849 103399 2 +34347 4887 103400 5 +13463 11660 103403 1 +2715 12008 103403 1 +386 4351 103404 4 +23590 9403 103405 4 +22995 6965 103410 1 +30257 3641 103411 9 +38217 1327 103413 2 +6856 11343 103413 2 +2580 1537 103417 4 +14673 8977 103419 3 +12967 1873 103420 20 +51 18045 103426 4 +3841 10677 103427 2 +17304 12991 103427 2 +21751 1804 103430 9 +33394 8543 103437 3 +7848 15125 103437 3 +21337 20065 103473 1 +16279 8852 103474 4 +26239 782 103478 1 +13667 12060 103479 6 +32381 3861 103482 2 +15722 13545 103482 2 +27947 6262 103482 2 +1868 3148 103482 2 +3792 5172 103484 9 +12919 9825 103484 9 +41 21980 103508 3 +34670 792 103510 7 +14140 8724 103516 1 +32033 2403 103516 1 +702 2695 103517 4 +6339 2871 103518 9 +30604 4721 103521 10 +15815 11151 103530 9 +18592 17616 103532 4 +34950 1208 103535 22 +12878 17929 103587 4 +19493 11624 103588 2 +17783 10819 103589 2 +7202 12849 103589 2 +15501 18463 103593 2 +18995 8997 103594 17 +32661 4845 103598 2 +7263 20218 103600 3 +15471 16449 103601 10 +4246 3209 103608 7 +30500 8392 103612 2 +18708 14472 103613 5 +3839 22661 103617 3 +24529 9344 103618 4 +10569 15906 103624 1 +15505 4948 103624 1 +11516 7762 103624 1 +4006 17840 103626 4 +12449 15949 103628 4 +28347 9693 103631 4 +27969 12854 103635 6 +20306 14966 103636 4 +3184 11428 103638 5 +26283 9533 103641 2 +21537 1815 103643 5 +19026 12062 103645 4 +4490 13374 103649 9 +24611 14041 103658 1 +16164 9627 103658 1 +15129 4168 103661 18 +13398 18054 103661 18 +26691 4044 103662 39 +35680 883 103676 5 +603 2312 103679 2 +8949 12511 103680 2 +15760 13515 103682 5 +8985 22458 103684 261 +9849 14121 103718 1 +14107 9547 103718 1 +20943 16700 103719 3 +4286 10955 103723 4 +8471 15542 103725 8 +2577 2695 103727 19 +13296 18702 103732 2 +4860 7668 103734 2 +23888 1855 103734 2 +15497 10203 103737 2 +35065 5795 103738 4 +17270 9804 103743 2 +7849 7052 103744 252 +26032 52 103856 4 +38408 1415 103856 4 +18314 12011 103857 2 +27692 9672 103859 2 +24138 9923 103859 2 +12502 8471 103859 2 +10453 14811 103863 5 +32557 95 103866 10 +10082 19780 103868 12 +22038 15373 103873 1 +19863 5787 103874 8 +11535 21739 103880 13 +12180 20749 103895 2 +16999 7589 103896 5 +12 3380 103899 11 +17557 8215 103909 1 +7600 13952 103910 3 +25928 12644 103912 4 +21735 11024 103912 4 +5326 4948 103912 4 +12555 1883 103912 4 +19144 11217 103913 3 +18324 22253 103914 7 +1778 1457 103916 135 +9504 14086 104009 3 +11010 20191 104011 3 +19422 1621 104012 5 +19105 2677 104015 3 +601 4147 104018 4 +19772 11806 104018 4 +18485 8034 104276 5 +8336 3770 104276 5 +12607 5376 104277 2 +11551 9534 104277 2 +10594 3114 104278 9 +24025 7281 104278 9 +28914 8314 104279 2 +338 6119 104279 2 +5841 7957 104279 2 +446 19645 104281 4 +8444 19575 104284 8 +24667 11908 104290 2 +20382 11760 104290 2 +22603 3196 104291 5 +14075 21225 104297 9 +36292 996 104306 2 +11491 7867 104309 4 +7890 12023 104309 4 +20019 11645 104309 4 +3209 5010 104316 2 +19242 5382 104320 3 +14965 11507 104321 3 +33501 6506 104322 3 +34452 543 104324 535 +23618 5082 104876 3 +27038 2635 104877 4 +17945 8069 104877 4 +7306 11793 104881 3 +13799 15422 104883 28 +6270 14576 104906 4 +3029 17811 104908 10 +9541 11593 104913 3 +445 20931 104914 3 +8585 2737 104914 3 +1406 18185 104920 6 +18081 5188 104926 2 +24518 13773 104926 2 +10239 19662 104929 4 +21089 14781 104932 5 +7781 3618 104933 27 +18907 4656 104934 2 +16422 15299 104936 5 +6759 2726 104936 5 +14577 5643 104936 5 +24418 16050 104945 2 +3986 4601 104946 17 +32696 3430 104952 2 +1054 8386 104953 4 +36888 2562 104956 9 +6529 14403 104964 15 +14597 7102 104976 4 +5013 6235 104979 6 +24851 11809 104980 4 +8110 9597 104986 6 +22716 14677 104996 3 +33626 1509 104997 821 +26140 1653 105880 5 +5495 7929 105881 2 +8193 734 105882 33 +18308 17877 105909 4 +6316 11966 105911 37 +14522 19521 105919 3 +15200 145 105920 7 +8230 7918 105922 3 +7716 8484 105923 5 +37352 1657 105924 5 +11447 19904 105925 2 +5157 3244 105925 2 +15441 15404 105927 3 +16072 8264 105927 3 +7773 12848 105928 5 +13590 13960 105930 3 +7565 21011 105932 3 +15737 3324 105933 4 +15476 18667 105934 4 +26833 11982 105935 5 +31107 3957 105937 4 +14110 17204 105942 3 +15085 216 105943 6 +25669 9731 105946 243 +4123 7340 106021 9 +5495 13044 106027 5 +20632 13044 106029 3 +6163 20342 106031 6 +916 457 106036 3 +19455 17604 106037 4 +20489 8306 106038 5 +26484 11724 106041 32 +12321 6770 106057 1091 +5214 5499 107536 5 +18847 13848 107540 1190 +12676 20748 107986 32 +36676 1997 108004 10 +24075 4889 108005 264 +18855 8251 108120 2 +11542 13306 108121 5 +21843 13774 108124 3 +9791 822 108124 3 +18860 22410 108127 6 +22035 6800 108132 1 +16014 1476 108133 8 +12372 2161 108147 2 +6771 10223 108148 2 +30496 5999 108149 2 +6393 23160 108150 9 +13728 508 108150 9 +24226 12577 108151 32 +27221 5786 108155 2 +12291 17882 108155 2 +8400 11314 108198 10 +22111 11408 108202 457 +12478 17372 108351 3 +21828 15796 108352 5 +10742 20701 108356 7 +14079 6135 108359 2 +2718 723 108359 2 +12531 16810 108359 2 +33603 7165 108364 2 +32058 6838 108365 3 +25835 16138 108367 5 +26425 6179 108367 5 +11390 13734 108372 6 +7847 23137 108375 49 +16694 13042 108381 4 +12799 4567 108383 7 +9132 10767 108389 3 +1275 7068 108392 6 +8350 20800 108393 7 +25708 10977 108394 2 +32477 6121 108395 8 +7899 2036 108398 6 +10777 1833 108403 10 +19633 19768 108422 168 +23766 12441 108512 8 +23941 2104 108516 1 +7553 16658 108517 19 +17174 7451 108534 6 +17562 13849 108537 4 +26250 1666 108541 2 +27339 8724 108541 2 +27254 3819 108543 143 +28297 11273 108586 1 +12293 12395 108586 1 +27357 6179 108588 148 +31136 7574 108648 1 +11023 21640 108649 9 +40302 23 108651 3 +13390 10684 108651 3 +4583 16712 108656 9 +10114 11793 108661 4 +5566 12608 108664 5 +4851 13039 108668 3 +22943 3985 108669 49 +16156 19395 108682 4 +6940 4273 108682 4 +22420 9573 108683 2 +1344 2081 108683 2 +11766 11756 108688 3 +25715 1136 108690 3 +24531 10618 108690 3 +3439 7868 108694 1 +5253 2131 108695 2 +17562 3923 108695 2 +3256 14566 108703 4 +20519 3657 108710 5 +20359 8607 108713 9 +3386 495 108721 4 +23664 2149 108725 4 +11340 17844 108725 4 +28364 8216 108730 21 +588 9771 108745 3 +21167 4846 108745 3 +9055 6068 108747 1 +27721 5693 108748 8 +17419 2965 108752 9 +24404 10446 108757 2 +6057 13222 108757 2 +11044 11902 108865 3 +17929 19338 108867 3 +18309 4330 108867 3 +9437 17500 108869 34 +21835 11708 108895 2870 +4730 21401 109907 3 +21267 15397 109909 8 +162 8685 109915 4 +22686 2689 109915 4 +4651 19217 109933 4 +18059 2546 109934 2 +15076 12777 109938 3 +2194 10891 109938 3 +10228 11553 109939 2 +8297 7390 109941 3 +11839 14921 109943 13 +29854 9483 109946 3 +18524 11479 109951 3 +25000 9775 109953 8 +6560 13893 109953 8 +6019 13186 109955 3 +756 20315 109956 8 +17299 13480 109957 4 +23243 13744 109961 2 +30661 4353 109963 5 +29793 6025 109964 1 +3564 8873 109964 1 +30421 5122 109968 4 +2687 20495 109969 3 +15614 11900 109973 2 +11692 11768 109973 2 +7870 20953 109974 2 +9021 7465 109975 2 +6716 15932 109975 2 +9422 11900 109976 5 +21397 6949 109980 50 +2957 14644 110008 5 +13217 19421 110009 1 +15789 1258 110010 4 +5571 4754 110013 2 +13890 22311 110015 48 +31739 5564 110049 3 +22911 18433 110052 4 +27790 13467 110057 2 +28944 9056 110058 2 +24862 6599 110059 3 +4031 16235 110065 4 +38766 383 110065 4 +19876 11365 110066 5 +35276 5230 110070 38 +5449 4571 110103 1 +31822 5531 110104 3 +21059 8795 110105 8 +11419 13788 110108 1 +25497 9880 110108 1 +4335 21101 110109 4 +32626 167 110110 8 +16789 14585 110115 2 +33325 4476 110117 4 +2347 16569 110119 2 +35485 3696 110123 5 +10630 10390 110128 2 +7490 14436 110129 3 +20812 13020 110130 4 +404 471 110131 7 +13073 23386 110134 9 +23906 386 110135 1 +26249 9380 110135 1 +18848 18292 110136 2 +17700 14765 110138 7 +19517 8803 110140 5 +6727 7340 110147 4 +15177 20327 110148 30 +1602 15872 110171 2 +6551 7796 110171 2 +2626 10584 111048 3 +13488 21952 111050 3 +1322 15168 111053 7 +8117 12237 111056 9 +21888 3445 111060 4 +14945 21234 111065 6 +19004 4997 111075 3 +1875 7306 111078 3 +27173 7563 111079 6 +21476 3731 111081 4 +30472 7883 111085 6 +24012 15322 111087 4 +10912 10111 111088 4 +24345 663 111091 8 +430 16305 111094 3 +24156 2043 111095 28 +12112 21388 111120 4 +20077 18836 111123 7 +1567 2787 111125 5 +30919 2083 111126 3 +1345 22494 111127 5 +24672 9951 111130 3 +6730 17326 111132 2 +36037 3106 111133 3 +22852 6120 111135 4 +29558 4679 111139 9 +3330 20128 111146 2 +33935 6272 111148 1 +24002 4212 111148 1 +18326 17992 111152 416 +35100 2514 111152 416 +8313 5734 111154 5 +36906 210 111158 2 +11893 12176 111159 5 +18451 11972 111161 3 +16744 12300 111162 5 +14520 20892 111165 5 +34749 1289 111166 4 +19583 9338 111168 2 +21730 15149 111169 1 +18904 15996 111170 2 +15758 3811 111172 9 +24244 861 111179 259 +39876 2131 111301 4 +3203 1537 111302 4 +19393 15419 111305 4 +39248 2592 111310 5 +12170 5017 111315 1014 +3119 18651 111315 1014 +10577 12234 111318 2 +26288 4487 111320 7 +4927 11434 111323 8 +15495 10347 111331 4 +17573 8689 111333 3 +14927 20761 111335 7 +22759 13924 111340 3 +6243 9744 111340 3 +14453 8247 111343 3 +6283 3722 111345 2 +13392 9933 111346 4 +2031 13453 111347 1 +20810 10215 111347 1 +9839 23155 111357 2 +19289 15868 111358 6 +737 19451 111364 7 +16523 17792 111365 2 +22311 397 111366 3 +11653 2846 111369 5 +2223 22647 111372 4 +26298 13219 111376 3 +25132 4401 111379 5 +12307 8040 111380 1 +26852 5249 111381 3 +13976 8057 111381 3 +16412 20402 111384 2 +7288 22839 111386 1 +5948 8786 111387 8 +19474 13532 111392 3 +27517 1268 111392 3 +15000 11987 111397 2 +4673 6767 111399 4 +12217 16901 111399 4 +2691 10983 111401 5 +22100 14901 111406 3 +21872 8767 111406 3 +3150 6844 111414 8 +28635 5554 111415 2 +15969 3553 111417 49 +23781 3407 111472 23 +28734 12490 111494 16 +28876 10427 111499 4 +23255 11695 111499 4 +2491 4053 111500 7 +1597 10644 111502 132 +19461 10477 111529 4 +4678 10529 111535 4 +9746 15457 111541 3 +17401 4807 111544 8 +12258 19247 111548 2 +1354 4421 111548 2 +11938 8350 111551 2 +3972 19721 111552 1 +18894 19868 111553 9 +4678 4062 111570 4 +16550 4987 111570 4 +5343 18505 111571 3 +25416 10313 111574 2 +8861 13024 111575 3 +12318 945 111580 43 +6621 657 111629 4 +38768 2131 111634 7 +7459 8779 111635 10 +2789 1344 111638 7 +38223 2703 111651 2 +27844 3635 111653 8 +16687 10516 111656 2 +21048 383 111657 1 +20526 381 111658 3 +7579 8048 111660 1 +30863 2546 111660 1 +5259 8959 111663 9 +18662 9049 111666 33 +17181 19716 111686 9 +9604 16429 111692 4 +3243 14041 111697 5 +28738 3190 111698 9 +28425 9631 111705 2 +25713 2051 111706 1 +16387 13709 111706 1 +1236 12045 111714 1 +4553 10519 111715 7 +20280 14903 111721 3 +20860 10009 111724 6 +28070 9062 111731 2 +10805 17973 111733 2 +27964 5726 111734 5 +10464 3542 111740 6 +24554 12468 111742 4 +20120 4593 111743 5 +6458 21816 111748 4 +22068 12932 111749 2 +4677 14718 111750 2 +32176 1391 111750 2 +453 14854 111751 4 +9010 20207 111752 9 +2045 7757 111756 8 +13633 15599 111761 4 +17814 8603 111762 2 +1326 15065 111762 2 +21488 12751 111764 5 +27220 7771 111764 5 +5140 2035 111764 5 +1413 6218 111766 4 +34755 3487 111766 4 +26226 7942 111767 5 +24974 926 111771 1 +8716 12521 111771 1 +26519 12860 111773 1 +27689 10832 111775 1 +5888 12836 111775 1 +23249 2359 111797 2 +30694 5685 111797 2 +17863 13124 111799 3 +9913 16641 111802 270 +17745 18261 111829 1 +3446 4144 111829 1 +5191 5411 111832 8 +33749 6347 111838 4 +27926 698 111840 2 +30941 3736 111840 2 +33849 3604 111842 3 +530 4487 111844 2 +10209 16277 111845 4 +5818 7391 111845 4 +13824 180 111863 3 +23182 194 111866 41 +14447 608 111884 4 +25070 11511 111886 9 +34626 2761 111889 2 +18746 18555 111889 2 +19523 5027 111889 2 +29154 3742 111892 5 +14990 16676 111894 4 +16176 11100 111896 8 +9319 7981 111908 2 +12812 23604 111909 1 +6755 14298 111910 3 +23651 13380 111915 10 +17824 5830 111917 1 +12936 9026 111918 4 +13273 3185 111919 2946 +11053 22729 115299 3 +17764 8407 115302 46 +16762 14622 115325 1 +14748 15336 115326 3 +29637 5239 115326 3 +10588 3540 115326 3 +26219 9238 115327 5 +26117 12015 115331 4 +7995 11940 115332 5 +614 19657 115333 22 +4804 10314 115345 3 +21960 5998 115346 5 +945 11467 115348 8 +11160 18580 115351 8 +187 3561 115356 6 +22236 6465 115361 7 +16495 8028 115362 4 +1821 5003 115364 4 +17177 11080 115367 4 +31805 3184 115370 8 +3819 4711 115374 3 +9561 14459 115376 5 +38205 2889 115379 10 +37422 3839 115379 10 +19053 4920 115380 5 +25838 5604 115380 5 +30739 2797 115384 6 +18089 11283 115389 2 +5532 9480 115390 2 +20669 14997 115392 5 +16754 15013 115398 884 +31734 4453 115563 3 +10275 11142 115564 3 +12652 1987 115567 4 +865 11220 115570 10 +33491 1326 115582 17 +35976 4569 115596 2 +14770 19099 115596 2 +23668 11345 115604 3 +5403 3070 115608 3 +26634 15410 115610 38 +9382 12183 115630 3 +4814 13661 115632 8 +10606 21097 115634 27 +39226 1522 115641 3 +4287 11934 115643 4 +17592 20520 115644 4 +5369 3148 115644 4 +2223 9388 115647 2 +3918 15584 115648 2 +21929 14565 115649 5499 +26676 13844 119455 5 +13560 14861 119459 11 +27399 9109 119462 3 +26123 9926 119465 9 +9468 20741 119466 2 +23444 12022 119467 2 +27010 243 119467 2 +4937 8971 119468 3 +32295 478 119468 3 +23472 13494 119470 36 +13019 7930 119478 8 +20977 8189 119488 4 +23201 16162 119490 4 +14916 23527 119493 3 +31281 9161 119494 16 +14458 16571 119502 8 +16888 10115 119513 1 +15497 14758 119514 5 +21388 19921 119515 168 +12251 19111 119612 1 +5447 21146 119613 8 +16119 11536 119623 2 +15849 12132 119623 2 +1774 11018 119624 7 +14779 13624 119630 5 +11602 20437 119631 2 +21926 3231 119631 2 +10791 7669 119634 5 +15240 12375 119635 8 +13155 10212 119639 9 +14634 16402 119644 9 +1768 118 119647 5 +7274 15344 119648 2 +2835 12988 119651 150 +19167 7719 119673 2 +18700 11453 119675 7 +14898 13733 119679 5 +4115 15184 119684 2 +21235 13905 119685 2 +25359 12803 119686 6 +8878 4087 119694 8 +2013 3428 119696 1 +23978 16045 119696 1 +9657 17287 119701 4 +20253 6381 119701 4 +2843 5295 119702 49 +34235 1428 119718 2 +18275 7835 119720 2 +30880 582 119720 2 +20240 19825 119723 41 +20291 12307 119745 3 +20633 16587 119747 3 +837 14877 119748 3 +356 10206 119751 65 +10662 13462 119751 65 +10765 5981 119866 4 +14899 15167 119872 3 +17375 22673 119873 4 +3787 3854 119876 3 +6570 13071 119880 1 +33122 5375 119881 2 +8459 18293 119881 2 +24889 12835 119884 3 +32882 7639 119884 3 +4596 8707 119886 4 +30149 2465 119889 4 +3462 22886 119890 4 +23335 581 119892 23 +15172 6888 119908 6 +20665 13181 119912 1 +12421 13084 119913 2 +16474 18889 119914 4 +24341 16236 119916 3 +22488 2572 119917 8 +35195 6472 119934 1 +7443 12278 119936 3 +27164 11936 119937 5 +19895 2684 119937 5 +12388 9048 119937 5 +3110 13711 119943 43 +11893 21939 119970 9 +18325 8691 119975 4 +15236 14977 119975 4 +4806 12919 119977 3 +17474 20741 119982 4 +7289 2927 119982 4 +6422 18010 119984 4 +6845 20202 119985 3 +7796 3466 119985 3 +36806 2019 119987 1 +21212 9466 119988 40 +57 12767 120017 3 +21540 3742 120017 3 +6288 1351 120018 4 +10785 22484 120021 4 +33474 380 120024 2 +3408 14991 120026 7 +21691 13237 120030 2 +24397 10431 120030 2 +11856 19091 120035 3 +17553 4577 120035 3 +15881 3714 120036 7 +21829 17013 120038 9 +14068 4630 120040 49 +8091 21250 120099 4 +8654 21583 120102 4 +10758 20043 120105 5 +26383 520 120110 1 +13064 16391 120111 2 +13015 20524 120113 3 +20030 6992 120114 15 +10028 22748 120118 33 +22140 12517 120145 2 +9838 13682 120146 3 +31531 4183 120147 4 +10712 5404 120148 5 +2351 517 120149 5 +5782 14142 120150 6 +11816 14058 120155 3 +21899 11740 120157 3 +686 8179 120157 3 +10478 20123 120166 7 +31836 4295 120170 2 +36002 4858 120171 8 +22185 12805 120173 4 +38228 1316 120174 9 +9059 15262 120178 2 +134 18521 120179 8 +19407 17429 120185 3 +19613 19799 120186 5 +11000 10792 120188 5 +7912 20321 120192 3 +33552 5440 120195 4 +29549 8655 120195 4 +7233 14225 120195 4 +26170 10630 120196 3 +23822 13082 120197 2 +13340 2101 120198 4 +11379 23400 120201 9 +9720 20863 120220 1 +13523 12599 120221 42 +28710 2168 120242 3 +4456 8278 120243 4 +18534 15854 120244 2 +23638 13076 120245 2 +15624 10003 120246 9 +22851 10295 120247 2 +30921 5465 120249 7 +24510 2409 120262 4 +19630 14496 120264 8 +2659 16492 120274 8 +3592 6962 120277 4 +9017 7652 120278 4 +8243 9357 120281 9 +18374 2469 120288 2 +30554 2023 120291 11 +8970 33 120313 82 +18941 4292 120396 4 +21395 9785 120399 2 +7182 4058 120401 2 +19869 15618 120402 7 +25330 8714 120403 4 +33720 9 120409 8 +28400 10557 120411 4 +26404 13950 120418 2 +4717 9461 120421 33 +7447 1150 120426 1 +15512 16536 120427 3 +32043 3567 120428 6 +29533 1024 120435 38 +20412 17197 120483 4 +25133 11106 120486 5 +9504 15646 120488 244 +16782 16171 120535 5 +10662 6641 120536 6 +18839 6015 120537 4 +26541 2274 120542 5 +4543 9449 120544 4 +23342 6541 120547 6 +24066 15210 120549 36 +34764 2177 120588 3 +7017 3886 120589 5 +17781 811 120590 1 +8629 4722 120590 1 +10841 12432 120594 16 +19989 3742 120595 6 +5349 18027 120598 5 +14664 562 120606 5 +8569 14412 120606 5 +34206 3202 120607 3 +4440 8709 120607 3 +996 19557 120608 2 +34206 5126 120609 45 +18730 11816 120641 5 +35078 5371 120643 9 +21673 20294 120646 4 +23847 17225 120651 5 +21676 9357 120653 4 +28791 2775 120654 5 +30458 9513 120662 1 +26750 6111 120662 1 +33055 3810 120664 3 +24566 12955 120664 3 +2008 2368 120678 2 +6123 8071 120681 2 +2596 8425 120682 2 +3408 15480 120684 4 +9826 7665 120688 1 +14896 7016 120688 1 +18900 9315 120690 6 +1375 20376 120692 3 +24088 13734 120693 540 +21005 18940 120774 8 +35871 1763 120778 8 +1192 15398 120778 8 +3132 16586 120782 3 +16923 7104 120783 10 +16725 3385 120791 2 +24338 6041 120793 50 +9108 9157 120814 3 +22797 10187 120815 3 +7171 17200 120816 2 +21389 16730 120817 38 +11745 13862 120858 207 +25060 9361 121085 16 +13447 8550 121122 1 +1381 13883 121123 3 +9434 18034 121127 3 +21795 17428 121130 4 +28526 9258 121131 5 +10013 14419 121135 10 +25253 5792 121136 2 +9541 16321 121138 3 +31948 7246 121139 18 +30903 9186 121142 8 +4856 12004 121151 7 +23612 4251 121156 3 +11164 844 121158 7 +18862 21195 121161 4 +5013 21323 121162 3 +12768 2077 121164 1 +13946 12729 121165 4 +8702 7382 121168 3 +12139 17585 121169 10 +31752 4227 121175 1 +2985 19441 121175 1 +19096 17035 121179 2 +21440 12281 121181 2 +2423 17768 121182 1049 +3264 12083 121868 24 +7585 9199 121877 3 +27629 1949 121879 2 +11863 8357 121880 9 +20209 15530 121892 4 +8694 10650 121894 3 +460 8993 121895 9 +26902 6088 121901 5 +12396 10824 121903 9 +21761 9812 121905 2 +5032 14109 121906 2 +17546 9559 121906 2 +17055 20543 121911 3 +30543 307 121911 3 +19468 21837 121913 3 +15163 1831 121913 3 +7350 22713 121918 10 +25088 15004 121928 2 +22351 15490 121931 9 +16735 19614 121935 4 +1101 2636 121937 5 +18403 12709 121945 1 +34562 3818 121945 1 +32445 1196 121952 7 +22157 17529 121955 7 +14487 908 121971 4 +5552 8451 121972 4 +21959 6463 121977 2 +27974 11500 121978 5 +2897 4122 121979 9 +18201 12555 121984 5 +27369 7111 121987 1 +21814 10842 121988 4 +26013 8690 121991 391 +7878 2386 122034 7 +23728 17879 122034 7 +33780 6476 122035 2 +14571 18772 122036 2 +40300 1469 122036 2 +13719 15396 122056 8 +8852 22725 122060 8 +4428 7763 122064 3049 +8003 19035 123462 9 +6432 16200 123469 2 +15925 22904 123470 4 +17976 14031 123474 8 +33912 2430 123475 194 +10740 17823 123517 4 +14238 15750 123520 10 +15143 5192 123540 1 +17889 18476 123540 1 +30170 6463 123541 8 +13806 14918 123556 4 +35759 6291 123556 4 +13657 866 123557 3 +35367 1131 123558 4 +5731 10447 123560 3 +27086 5995 123562 10 +10074 16485 123566 42 +13833 76 123585 3 +8300 23178 123586 46 +4206 3550 123607 2 +22300 6567 123608 2 +244 4950 123609 4 +12104 15965 123614 1 +12945 7082 123615 3 +33507 7702 123617 7 +1706 13203 123621 5 +4906 17565 123624 4 +5634 11338 123629 2 +26323 7956 123630 2 +18508 3491 123631 4 +169 11853 123635 1 +6787 6311 123635 1 +31051 9240 123637 2 +27849 12876 123637 2 +1043 9227 123637 2 +6882 17833 123648 4 +9515 5227 123653 48 +17024 18947 123672 735 +21101 20058 123936 4 +14096 4338 123940 2 +13447 4939 123943 9 +23980 17125 123966 2 +2242 6543 123966 2 +14988 15986 123967 8 +32100 7522 123973 2 +17328 16146 123973 2 +21819 16679 123977 4 +14819 22057 123983 3 +21235 747 123986 2 +17653 5788 123986 2 +16080 14134 123987 7 +39874 2102 123990 1 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov,seed=27046,vsize=42053,psize=23668,req_len=8688).predictor.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov,seed=27046,vsize=42053,psize=23668,req_len=8688).predictor.best" new file mode 100644 index 0000000000000000000000000000000000000000..266e8e85968a74bf81352871271ac5f7baa9d214 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov,seed=27046,vsize=42053,psize=23668,req_len=8688).predictor.best" @@ -0,0 +1 @@ +2293583328 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov,seed=27046,vsize=42053,psize=23668,req_len=8688).prophet.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov,seed=27046,vsize=42053,psize=23668,req_len=8688).prophet.best" new file mode 100644 index 0000000000000000000000000000000000000000..9871810c28ecb7e85416821819e4b1f170b9809a --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov,seed=27046,vsize=42053,psize=23668,req_len=8688).prophet.best" @@ -0,0 +1 @@ +2095305648 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov,seed=27046,vsize=42053,psize=23668,req_len=8688).simple.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov,seed=27046,vsize=42053,psize=23668,req_len=8688).simple.best" new file mode 100644 index 0000000000000000000000000000000000000000..18301f92a81ea30f324b33e06bea40cf84280cbb --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=markov,seed=27046,vsize=42053,psize=23668,req_len=8688).simple.best" @@ -0,0 +1 @@ +3393196688 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=18555,vsize=26686,psize=7042,req_len=9255).in" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=18555,vsize=26686,psize=7042,req_len=9255).in" new file mode 100644 index 0000000000000000000000000000000000000000..5d9c87b5a4aa55b46b8e18143a2e4600d3214050 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=18555,vsize=26686,psize=7042,req_len=9255).in" @@ -0,0 +1,9256 @@ +26686 7042 9255 +13951 5194 62 31 +18729 1848 62 31 +18047 6757 92 3 +15824 360 144 18 +11496 5637 167 1 +1080 1405 167 1 +2449 4167 244 1 +2660 686 244 1 +5923 2875 244 1 +15157 68 252 1 +1092 2265 269 1 +18499 5658 273 1 +15363 5391 294 1 +6207 1651 294 1 +782 2562 358 1 +20044 1285 358 1 +4951 3195 358 1 +2707 2402 359 54 +8087 3090 380 1 +6798 3406 432 79 +10197 2937 432 79 +3965 313 450 5 +11835 6344 450 5 +22433 393 454 31 +13724 366 490 49 +4573 460 492 44 +21369 2596 492 44 +2336 4320 497 1 +9682 372 511 1 +9163 5540 595 1 +15605 17 596 1 +13471 2257 656 41 +3654 6000 678 78 +23674 2781 691 2 +22166 2113 718 3 +19526 3683 720 10 +12707 5987 754 1 +10457 1055 754 1 +4208 2961 769 2 +17177 1305 769 2 +223 2776 769 2 +5182 3753 786 3 +5740 2348 786 3 +15012 6909 821 7 +13286 5023 850 2 +2669 2019 850 2 +8626 6044 869 1 +9309 998 869 1 +23262 205 869 1 +501 793 869 1 +1138 4492 945 5 +925 1750 946 29 +23963 1683 968 67 +20772 4992 992 4 +422 1071 992 4 +22579 501 992 4 +4307 2969 1002 1 +8832 2671 1002 1 +5906 4452 1042 6 +13904 2141 1053 32 +13905 125 1059 1 +6171 572 1059 1 +18988 5759 1060 14 +6233 4988 1061 18 +6577 3707 1079 3 +14222 398 1079 3 +24797 253 1112 84 +20611 5239 1125 20 +11379 1207 1221 37 +4301 469 1316 8 +7181 1732 1320 43 +17009 3243 1323 1 +7547 2759 1354 31 +22820 3542 1397 12 +568 3500 1397 12 +16697 5634 1426 5 +2162 6503 1475 3 +10612 4639 1485 21 +23341 869 1487 36 +20840 4608 1502 1 +15212 3305 1503 1 +1961 4617 1584 2 +14195 1558 1656 39 +18220 5087 1745 13 +14040 1476 1745 13 +1575 479 1745 13 +3038 2116 1746 5 +12198 3554 1746 5 +12582 2776 1748 29 +1181 6015 1750 52 +18046 3744 1815 1 +21721 1566 1853 55 +24604 1637 1857 34 +2540 305 1859 3 +3701 4099 1892 1 +21602 2943 1892 1 +22905 289 1893 46 +3802 4105 1924 2 +10135 673 2016 3 +19341 3297 2112 1 +9229 3263 2112 1 +20320 482 2112 1 +7024 482 2112 1 +14882 2233 2197 1 +13618 4340 2214 1 +6190 3095 2217 1 +10006 2328 2249 2 +2674 1083 2249 2 +3119 819 2345 39 +18663 6651 2346 58 +3937 2812 2355 1 +21557 1175 2359 1 +12326 834 2423 1 +8700 5476 2423 1 +19259 4636 2426 1 +1638 6733 2428 1 +19328 309 2428 1 +6555 448 2444 13 +21862 4564 2484 16 +8602 4479 2566 1 +25322 385 2567 1 +17187 421 2567 1 +11090 4428 2574 1 +8394 4036 2576 3 +16090 772 2642 1 +19541 6935 2647 1 +17261 107 2647 1 +467 6589 2707 1 +1627 668 2731 36 +6752 947 2766 35 +10380 6092 2766 35 +6869 3631 2770 1 +5443 3076 2770 1 +14008 1766 2813 10 +14949 4317 2813 10 +4711 4565 2816 1 +9592 1283 2816 1 +1928 5050 2822 25 +1763 441 2823 1 +17709 3734 2870 28 +9426 1857 2885 2 +5656 258 2885 2 +10492 5717 2966 3 +9169 1325 2966 3 +6162 2 2966 3 +10028 3113 2971 16 +14808 2631 3048 1 +21649 2727 3073 2 +16064 2296 3073 2 +17734 1181 3073 2 +9403 497 3073 2 +1234 3574 3100 12 +1153 3468 3100 12 +5078 3434 3129 76 +18702 4753 3207 1 +6282 2289 3207 1 +14550 6434 3240 1 +5236 3335 3306 4 +11001 3694 3311 4 +2693 3348 3311 4 +10847 5549 3316 21 +16872 1493 3316 21 +11 1684 3329 2 +23291 2913 3407 3 +9186 2087 3407 3 +6344 983 3444 1 +6559 3059 3493 46 +1287 3324 3493 46 +2724 659 3493 46 +19517 159 3493 46 +11438 500 3493 46 +23766 1140 3496 6 +16571 5172 3504 29 +11607 1870 3504 29 +10511 6906 3523 6 +12257 2227 3591 14 +21860 3965 3608 1 +9382 1826 3664 11 +12128 1090 3729 1 +4549 2506 3730 1 +1115 143 3730 1 +23487 748 3730 1 +4762 2352 3730 1 +20289 2003 3751 5 +5917 2421 3751 5 +10334 5947 3761 1 +25615 808 3794 12 +8004 180 3887 21 +5789 2931 3887 21 +15516 2334 3887 21 +24644 1683 3898 23 +9620 6792 3904 36 +24451 250 3904 36 +9000 1550 3937 1 +9845 5492 3937 1 +18894 1784 3946 1 +730 6777 3998 16 +16508 1762 4011 4 +805 6417 4015 1 +21849 625 4015 1 +5723 6163 4074 13 +4074 879 4074 13 +22437 3251 4079 1 +9648 496 4079 1 +4480 3295 4079 1 +758 3891 4082 20 +9166 6295 4099 6 +19607 2115 4100 3 +18224 516 4100 3 +24005 2465 4100 3 +530 1946 4100 3 +3149 2641 4105 18 +458 4401 4105 18 +13832 1829 4147 51 +18253 1445 4203 1 +13099 2165 4219 3 +1955 4204 4219 3 +11839 5006 4241 36 +966 1954 4241 36 +1496 82 4241 36 +6236 6953 4326 21 +17086 89 4326 21 +15419 1291 4425 2 +2563 2773 4426 49 +2385 3132 4519 1 +4735 2789 4519 1 +955 4215 4548 1 +225 1769 4578 20 +7075 2228 4578 20 +16183 2143 4578 20 +16522 902 4578 20 +1326 902 4578 20 +1712 668 4578 20 +6372 1570 4593 1 +13254 622 4593 1 +5381 4700 4594 6 +21237 3846 4611 15 +6732 3772 4638 2 +408 3967 4653 12 +182 6078 4659 1 +3012 3388 4671 9 +159 2364 4687 1 +22004 2064 4727 5 +1257 2752 4727 5 +19007 2094 4825 58 +18300 4863 4860 9 +12247 2155 4914 47 +11681 417 4924 8 +17945 3807 4924 8 +16797 1710 4928 1 +18034 2499 4990 1 +1542 4543 4990 1 +16718 3060 4992 39 +22993 2906 5000 6 +23560 1190 5007 9 +19308 989 5007 9 +8905 4849 5065 56 +12298 2193 5065 56 +19063 4984 5153 10 +14980 6411 5203 1 +9313 2059 5214 4 +12386 3572 5217 1 +14898 161 5218 1 +9266 4279 5218 1 +7416 550 5218 1 +8713 5926 5292 42 +20614 2914 5309 13 +1394 1099 5336 10 +3899 4059 5385 1 +4054 742 5388 70 +10984 5056 5486 6 +21903 1986 5486 6 +6641 1594 5569 77 +18770 4155 5575 19 +939 673 5637 4 +16019 2090 5637 4 +8341 49 5645 1 +5023 3421 5725 95 +19192 3621 5725 95 +6131 1667 5779 1 +1700 5191 5782 4 +2607 6791 5816 10 +19388 1879 5857 2 +5703 4492 5857 2 +10594 671 5857 2 +14688 6239 5954 63 +18114 803 5954 63 +7168 3251 5996 5 +24031 2023 5996 5 +8355 2693 6002 1 +2032 4349 6002 1 +19446 6854 6023 11 +19008 6030 6064 7 +8998 1012 6064 7 +16221 1225 6071 11 +15869 5050 6071 11 +13120 1992 6071 11 +9776 2074 6077 35 +6278 3775 6095 20 +10748 5562 6102 1 +11634 3475 6121 1 +7429 1607 6121 1 +7610 2846 6142 14 +18926 790 6221 2 +13312 4504 6249 2 +8677 899 6249 2 +7477 5322 6304 1 +12751 1720 6304 1 +9555 2204 6362 62 +3571 4320 6362 62 +1189 6268 6371 15 +7863 774 6371 15 +8855 422 6373 1 +10751 3347 6398 23 +6710 3607 6465 3 +18025 5876 6470 1 +19826 2853 6480 9 +17552 4189 6480 9 +8828 5845 6481 1 +16305 3713 6549 1 +11235 513 6549 1 +12339 3297 6620 1 +15745 6527 6623 12 +6426 515 6623 12 +15880 3365 6625 1 +22714 1664 6680 30 +21758 46 6731 49 +7505 3931 6754 5 +357 1471 6754 5 +9629 5703 6764 70 +13664 3531 6794 20 +14151 2774 6794 20 +14669 942 6795 2 +613 1222 6795 2 +14976 1666 6796 1 +17795 1324 6828 1 +14990 5511 6828 1 +10480 1261 6866 73 +19480 1811 6866 73 +19567 3249 6866 73 +14906 4466 6910 4 +11668 539 6910 4 +3188 6143 6911 18 +22741 74 6942 1 +16823 800 6961 9 +3075 4048 7057 1 +11940 2994 7057 1 +1060 4417 7110 1 +17412 395 7126 6 +21482 275 7183 12 +7990 4446 7237 30 +11786 1352 7267 8 +2952 6735 7362 37 +16061 5528 7416 1 +2533 5082 7460 2 +12994 768 7460 2 +17493 6459 7537 1 +3019 1667 7545 6 +21515 4366 7548 2 +2641 1776 7548 2 +4774 1824 7550 1 +13643 1608 7550 1 +11240 6185 7562 41 +8707 782 7585 32 +7800 2261 7587 32 +18626 2152 7594 1 +8414 981 7680 6 +623 2556 7693 12 +3135 4486 7693 12 +21254 44 7693 12 +11886 143 7713 1 +18204 3590 7726 1 +20095 3452 7726 1 +3498 6172 7772 3 +11212 2549 7825 1 +20510 1665 7912 1 +18496 4716 7915 1 +18324 1008 7942 48 +19050 1209 7946 8 +3580 4545 7947 1 +13165 629 8008 8 +1910 802 8009 32 +1139 4633 8021 16 +5995 3250 8023 1 +24665 1113 8023 1 +11399 501 8109 5 +3047 4222 8109 5 +15968 2319 8109 5 +7787 2712 8169 17 +23664 198 8190 5 +18833 4188 8202 1 +5726 217 8205 1 +10842 2393 8208 5 +4853 4188 8257 1 +8116 14 8257 1 +9839 2854 8257 1 +18002 2349 8297 12 +18371 6004 8376 5 +2993 6984 8399 6 +6572 2608 8400 14 +18453 4434 8400 14 +15920 3819 8459 2 +1324 3223 8459 2 +6681 4611 8515 1 +9472 6268 8533 4 +7250 2625 8553 5 +3617 2670 8569 18 +9139 1101 8627 1 +18535 6514 8628 3 +18787 2086 8638 1 +1273 281 8638 1 +12475 2265 8638 1 +15374 6416 8697 1 +23857 596 8699 15 +4964 1136 8703 8 +16927 5298 8705 6 +6077 4658 8706 29 +17607 4361 8726 2 +4168 6923 8744 2 +980 5504 8812 9 +16436 3039 8836 26 +6463 1071 8841 21 +1705 1357 8841 21 +4502 4614 8841 21 +16371 3861 8850 5 +9772 5972 8870 5 +6791 2809 8945 1 +20920 4166 8945 1 +2911 67 8945 1 +14009 5244 8959 3 +16943 1813 8993 5 +13353 4158 9026 3 +12885 2884 9026 3 +17302 4189 9027 1 +7856 2796 9027 1 +21083 57 9027 1 +22351 3442 9028 1 +943 5990 9036 6 +19449 1052 9036 6 +13336 2744 9059 18 +16838 4298 9059 18 +2402 4510 9072 1 +11505 2532 9072 1 +4048 1838 9087 1 +4352 3424 9140 1 +23752 868 9140 1 +11151 2310 9212 1 +8303 1986 9212 1 +14754 2746 9212 1 +17659 1412 9233 1 +4002 6328 9234 8 +6747 4317 9249 84 +474 2725 9249 84 +5246 6946 9268 45 +20760 3519 9279 82 +7631 1388 9279 82 +21896 2876 9365 25 +13694 1728 9373 12 +3790 4517 9392 34 +253 1082 9405 22 +5053 2685 9405 22 +2293 957 9447 70 +8731 5306 9452 60 +2272 1355 9452 60 +19876 2177 9455 2 +9271 6961 9541 16 +21525 81 9541 16 +10503 5084 9551 4 +2500 2675 9598 1 +12775 122 9653 4 +11073 2681 9653 4 +19528 1488 9708 33 +12570 4421 9708 33 +19449 6977 9749 15 +22152 847 9756 1 +22238 3615 9756 1 +13750 4186 9786 13 +13252 2856 9786 13 +13808 2358 9786 13 +11937 2358 9786 13 +20547 1043 9786 13 +6198 2420 9814 31 +16852 4437 9814 31 +20271 6392 9865 36 +5615 650 9865 36 +1251 3339 9866 16 +1796 3048 9875 1 +12805 1230 9875 1 +25273 1376 9880 49 +7411 3336 9882 32 +16874 6281 9944 1 +25544 398 9954 2 +5159 3336 9954 2 +7857 5029 9992 47 +5230 3536 9997 1 +1083 4709 10019 76 +8099 282 10025 31 +2576 2991 10096 8 +17413 3770 10096 8 +11037 1389 10104 1 +20921 2407 10158 1 +15174 1067 10190 3 +15995 5721 10190 3 +18486 81 10190 3 +18287 4309 10255 1 +18378 2269 10257 63 +19474 3095 10257 63 +17153 4847 10272 1 +10664 2195 10272 1 +10263 6499 10277 59 +13740 4884 10297 1 +6315 1808 10301 1 +17774 3264 10362 12 +8757 38 10384 1 +9772 5743 10384 1 +13038 3861 10389 1 +4997 725 10404 5 +15959 3958 10404 5 +11454 6514 10436 1 +19438 528 10436 1 +11619 4774 10473 1 +7414 4986 10488 1 +11650 4410 10492 10 +15681 3938 10496 2 +8389 2034 10496 2 +3443 1070 10496 2 +10009 1262 10589 4 +3034 5780 10589 4 +4936 742 10590 6 +10366 1940 10591 34 +2531 2180 10591 34 +8645 3467 10613 23 +11754 5426 10621 37 +11655 1616 10621 37 +18034 874 10621 37 +18184 643 10621 37 +16573 643 10621 37 +24387 607 10621 37 +6956 2508 10648 70 +20933 980 10743 73 +1863 4235 10791 13 +875 2535 10797 1 +15923 1343 10798 2 +7710 2344 10809 1 +11535 2053 10821 12 +1260 564 10821 12 +17251 3433 10821 12 +16396 180 10821 12 +16520 812 10821 12 +7365 137 10821 12 +17026 3779 10827 11 +12341 4081 10855 59 +714 3175 10856 36 +17474 2940 10943 22 +9305 3377 10943 22 +19675 5244 10987 26 +10521 4226 10997 44 +8292 2816 10997 44 +6392 457 11051 4 +16542 2438 11074 1 +9069 648 11084 57 +13295 3860 11084 57 +5367 2311 11084 57 +16186 368 11160 4 +9909 1567 11161 1 +19303 1271 11223 1 +1136 3893 11229 5 +14015 3082 11276 9 +5731 3980 11327 2 +1977 1732 11331 3 +22012 2166 11353 6 +148 3289 11363 17 +7085 5537 11367 1 +17212 6841 11368 2 +604 4817 11371 10 +11921 2225 11371 10 +12984 6615 11393 37 +18515 427 11393 37 +20465 427 11393 37 +15617 5580 11413 41 +12685 570 11477 46 +3199 5841 11488 1 +7780 3283 11584 25 +2062 3153 11607 1 +2698 5269 11622 1 +1965 3140 11638 1 +4844 3069 11710 6 +6789 3973 11710 6 +22127 911 11799 3 +12611 4431 11826 27 +21369 3532 11830 23 +6134 5126 11833 15 +9755 1835 11864 1 +16276 3205 11864 1 +15233 2002 11864 1 +6915 6462 11866 3 +24235 377 11869 2 +13656 6601 11869 2 +20255 64 11869 2 +12345 2 11869 2 +15211 938 11896 1 +2656 3371 11923 5 +16961 818 11923 5 +10370 1033 12011 1 +734 6009 12011 1 +12874 2002 12034 1 +8014 840 12036 14 +10160 5285 12062 7 +14764 1757 12062 7 +15594 681 12062 7 +7177 6463 12063 2 +19007 1552 12125 1 +3885 6596 12175 28 +14202 1818 12251 1 +8680 4648 12255 22 +12267 2394 12255 22 +17789 1061 12255 22 +5913 387 12258 4 +6250 7011 12281 14 +6332 31 12281 14 +12673 31 12281 14 +16666 3166 12287 1 +16530 3397 12310 1 +1848 1680 12310 1 +16237 4623 12352 37 +17134 2419 12352 37 +6470 2419 12352 37 +22980 724 12355 2 +18993 6608 12388 2 +17172 6408 12391 8 +13023 634 12391 8 +6419 277 12393 19 +6542 5386 12444 2 +15407 2346 12460 2 +4821 3842 12461 1 +19233 2020 12470 16 +20125 1322 12470 16 +12244 574 12558 25 +14873 1829 12558 25 +10603 5571 12562 2 +10213 6776 12566 51 +8960 168 12664 2 +14245 3169 12666 43 +16663 3868 12666 43 +23937 835 12682 64 +14141 6640 12688 17 +12996 402 12688 17 +6701 6925 12733 25 +10113 117 12733 25 +21344 117 12733 25 +19042 108 12739 86 +1387 921 12740 26 +14817 2037 12748 1 +59 4748 12749 6 +9045 4719 12820 66 +22387 2893 12828 20 +17094 1103 12880 53 +10886 4620 12880 53 +8254 6928 12882 1 +14916 4526 12938 2 +804 1278 12938 2 +1837 1279 12941 6 +18765 5763 12941 6 +2842 6552 13002 1 +17489 5624 13036 1 +17808 6418 13124 2 +20925 613 13165 66 +21389 2408 13165 66 +8812 4170 13165 66 +8701 5665 13243 1 +8100 1377 13243 1 +17987 776 13243 1 +12874 6008 13306 33 +1449 482 13308 8 +15559 5721 13361 2 +2098 6925 13429 1 +1151 117 13429 1 +4752 841 13431 17 +15073 5697 13443 2 +5364 2432 13446 1 +1466 1284 13446 1 +13107 3877 13482 16 +698 1088 13484 1 +23771 2327 13486 1 +8945 3176 13559 2 +20835 4754 13562 69 +10979 6349 13571 13 +799 693 13571 13 +6285 3545 13652 4 +13402 3497 13652 4 +12344 4205 13667 4 +22773 546 13667 4 +891 2215 13720 8 +10302 3884 13721 1 +6732 4585 13736 10 +22934 1553 13736 10 +9260 3940 13741 27 +2930 5866 13773 20 +874 1176 13773 20 +5469 3888 13819 26 +12739 5127 13837 1 +14424 858 13837 1 +15304 6436 13925 1 +22943 1338 13929 4 +9149 2576 13929 4 +5082 3128 13929 4 +17964 6133 13945 2 +15631 945 13964 6 +14875 3329 13964 6 +25298 689 13985 1 +14517 3249 13985 1 +9582 1235 14070 1 +2221 4835 14082 18 +8003 127 14082 18 +5535 877 14085 1 +22171 3764 14085 1 +3040 1298 14098 46 +21723 3532 14175 41 +465 6371 14190 1 +6611 3834 14255 78 +18611 952 14263 63 +4126 1428 14268 1 +10919 5929 14298 10 +10376 278 14330 7 +16666 3213 14341 2 +16229 2733 14395 5 +15777 376 14441 1 +9563 4370 14451 2 +21407 2672 14451 2 +11653 1644 14472 4 +16844 2476 14472 4 +18500 1353 14472 4 +10808 2035 14502 69 +16638 3682 14551 25 +6354 6005 14558 1 +11045 351 14558 1 +3356 3437 14577 3 +20171 3253 14577 3 +20666 4941 14654 20 +1441 682 14654 20 +10960 3449 14662 25 +16227 5884 14712 3 +24417 1158 14712 3 +17120 628 14784 1 +7145 973 14852 3 +15406 4109 14877 13 +6289 3279 14920 15 +4385 2758 14974 31 +22059 1256 14982 1 +22016 3219 14983 5 +7656 1694 15067 3 +20593 2939 15141 1 +22807 1974 15141 1 +10084 2341 15141 1 +13292 643 15177 21 +11860 1910 15191 5 +1126 2697 15193 1 +8942 4215 15193 1 +15469 6382 15256 2 +470 660 15256 2 +6801 3686 15320 42 +6327 2514 15375 18 +19124 4528 15375 18 +568 5676 15378 1 +605 1366 15378 1 +15769 6320 15422 6 +15529 343 15422 6 +10055 1615 15425 11 +14911 6656 15427 1 +4981 858 15478 23 +9768 2947 15490 1 +457 4178 15510 1 +24901 877 15535 2 +16655 5140 15580 6 +5885 1829 15671 3 +21549 3640 15672 1 +16591 3402 15672 1 +16889 3221 15725 9 +12535 3821 15725 9 +6560 756 15748 12 +3932 5737 15753 38 +16988 1305 15753 38 +3222 2071 15755 24 +6729 4475 15755 24 +11751 6121 15783 4 +1421 4516 15784 1 +6193 5676 15831 2 +3436 3862 15833 15 +9313 4329 15918 2 +23050 43 15922 2 +979 825 15972 1 +483 719 15985 1 +975 2227 16069 8 +16535 4536 16069 8 +6430 490 16091 1 +12452 5316 16099 19 +18135 1459 16099 19 +16383 180 16099 19 +7011 267 16099 19 +5238 1581 16146 10 +3852 2729 16156 30 +8873 4289 16202 10 +22114 1389 16251 1 +1326 482 16293 10 +2994 2153 16293 10 +16521 3263 16293 10 +10049 7025 16295 1 +10627 17 16295 1 +3498 17 16295 1 +7364 6709 16393 32 +24060 409 16481 2 +7082 648 16481 2 +23125 3522 16485 41 +21668 1997 16541 1 +16999 1790 16541 1 +4296 5076 16557 45 +10533 5430 16560 3 +16759 1612 16560 3 +19446 2605 16576 1 +6392 3254 16588 41 +18761 3788 16588 41 +6781 2699 16640 18 +23287 2784 16646 13 +14361 1183 16647 1 +6397 1230 16647 1 +14505 2850 16647 1 +20517 2075 16736 5 +12770 1643 16758 2 +15818 655 16764 31 +4642 5600 16764 31 +11515 6134 16821 6 +5176 5818 16858 1 +1356 6080 16936 3 +7253 341 16944 1 +21251 1267 16945 3 +15605 2057 16980 3 +13193 2681 17006 12 +18314 1454 17006 12 +7678 2907 17006 12 +8777 5106 17037 4 +1441 814 17105 6 +10874 6104 17128 1 +3640 938 17128 1 +10645 1388 17163 66 +18624 6517 17167 1 +5508 4419 17207 23 +20962 3781 17212 27 +4829 346 17213 5 +19914 5061 17300 1 +19561 716 17343 1 +6543 2537 17347 12 +6770 2292 17347 12 +3503 5075 17405 14 +17363 941 17409 1 +14860 1963 17414 4 +10445 6022 17426 2 +14000 5177 17477 1 +2194 5262 17553 1 +3147 1780 17553 1 +16079 1352 17553 1 +888 428 17553 1 +3937 3597 17631 22 +16848 1616 17647 1 +6306 4179 17653 10 +25166 794 17653 10 +16812 4934 17658 39 +20995 854 17710 21 +14145 1992 17714 23 +9984 4042 17748 8 +7124 3000 17748 8 +20551 870 17789 1 +4102 3171 17802 10 +17132 3871 17802 10 +10955 3726 17820 52 +19041 1287 17820 52 +15534 6759 17837 11 +4541 283 17837 11 +12673 5658 17925 44 +2822 5566 17927 9 +13458 5707 17935 1 +4023 55 17936 1 +4459 5306 17936 1 +12717 5933 17978 1 +12691 1109 17978 1 +1431 1088 17985 58 +16319 6556 17987 1 +7813 486 17987 1 +21771 2916 18077 85 +6497 631 18077 85 +9913 1842 18102 5 +1290 5200 18102 5 +12570 6553 18135 1 +7496 489 18135 1 +11631 5300 18137 10 +5926 4570 18139 1 +16842 4127 18153 2 +6064 633 18168 1 +12601 3993 18216 1 +18562 3049 18216 1 +18085 4992 18249 1 +14289 2702 18260 1 +16726 6756 18328 2 +21509 3516 18329 1 +10891 2927 18329 1 +11901 599 18329 1 +16732 3575 18336 24 +4928 3467 18336 24 +4714 4154 18384 1 +15744 2635 18399 1 +9994 4407 18399 1 +4506 5571 18431 1 +18538 4134 18465 7 +8786 890 18465 7 +11897 1848 18465 7 +18064 170 18465 7 +21620 1804 18467 1 +3121 1625 18467 1 +22097 711 18501 1 +4084 3667 18537 7 +7913 7017 18636 29 +18889 25 18636 29 +1566 5350 18662 28 +4325 1539 18702 3 +14695 5503 18702 3 +613 3270 18704 58 +14982 2304 18704 58 +20960 1468 18704 58 +19165 2089 18709 2 +16332 4953 18709 2 +4292 3052 18723 1 +18143 420 18723 1 +8559 3570 18723 1 +1689 247 18736 1 +158 3530 18746 7 +16350 1664 18839 10 +10844 5806 18841 1 +22098 1003 18881 32 +11486 3651 18902 8 +14646 5520 18993 5 +10737 1522 18993 5 +22935 2505 19078 62 +9358 1959 19140 39 +3243 2284 19140 39 +17700 2276 19146 4 +4224 1330 19148 6 +5511 3131 19180 43 +14589 6541 19223 22 +14830 5091 19236 1 +2489 1951 19236 1 +1631 1058 19257 12 +15733 4313 19268 11 +15010 4013 19308 2 +8304 6926 19310 2 +19707 4095 19342 47 +23320 3174 19363 30 +2045 4146 19455 1 +9908 2896 19455 1 +3093 4667 19509 35 +4458 360 19515 1 +13201 2726 19515 1 +11695 190 19515 1 +3153 975 19515 1 +8546 6880 19518 1 +2578 162 19518 1 +10323 5648 19594 50 +16562 6241 19596 1 +7464 2849 19599 1 +19800 1672 19601 2 +1955 2399 19692 3 +1337 2236 19692 3 +16821 5795 19726 6 +4377 986 19726 6 +5122 261 19726 6 +4788 241 19726 6 +13265 5603 19728 6 +15871 1439 19728 6 +1074 1439 19728 6 +22862 1430 19808 1 +10586 88 19907 1 +18393 4516 19918 6 +18762 806 19970 1 +4798 4150 20013 1 +3435 6325 20015 6 +1101 2217 20056 14 +7838 1371 20056 14 +14021 1341 20111 1 +15283 71 20111 1 +12636 1252 20111 1 +3023 767 20111 1 +13576 6543 20137 1 +1216 3944 20142 1 +18153 3737 20174 7 +13617 2016 20175 1 +8466 5026 20175 1 +21695 1465 20178 3 +3789 4328 20257 2 +18900 2714 20257 2 +24647 1291 20316 1 +8513 3204 20340 16 +4729 6668 20424 48 +751 6647 20427 1 +2595 395 20427 1 +18239 395 20427 1 +17459 5737 20439 32 +4531 4800 20446 4 +2250 2242 20446 4 +6811 4370 20466 6 +15022 3658 20472 56 +16017 1456 20568 1 +9909 5586 20568 1 +15460 710 20584 1 +13477 3684 20614 55 +16848 1237 20706 15 +13645 6961 20739 7 +6489 1598 20746 1 +12731 3391 20747 30 +4763 2158 20838 36 +5324 5969 20839 19 +13705 3608 20935 1 +19933 3229 20941 1 +15380 1975 20941 1 +23474 1838 20941 1 +17610 1366 21037 1 +14585 3450 21037 1 +19480 122 21037 1 +13572 3141 21048 6 +553 282 21048 6 +16135 841 21063 1 +20095 5015 21069 47 +5234 6047 21123 1 +6419 995 21123 1 +7271 995 21123 1 +9840 4296 21140 1 +22098 1011 21140 1 +16106 5480 21168 1 +10595 5685 21184 1 +13824 6430 21226 1 +23603 612 21226 1 +12236 6447 21263 1 +15684 783 21275 40 +876 3802 21326 8 +5494 3240 21326 8 +19472 3907 21404 15 +10104 1043 21404 15 +3525 3812 21406 1 +23083 2933 21414 5 +276 2926 21414 5 +19991 4866 21430 9 +23367 800 21431 45 +8669 6313 21445 1 +19415 729 21445 1 +19453 2946 21490 9 +1145 3606 21540 24 +4700 275 21623 24 +5809 140 21625 1 +2491 351 21629 82 +24174 1421 21629 82 +8201 6015 21641 1 +3121 1027 21641 1 +11968 4649 21683 2 +15652 2393 21683 2 +15830 4519 21742 1 +23110 6 21759 1 +2041 6441 21826 30 +15575 6170 21828 16 +19449 1464 21831 1 +15734 2577 21860 8 +4946 4465 21860 8 +19356 2093 21862 4 +2969 3132 21862 4 +20085 1618 21871 1 +15204 4404 21920 3 +18773 6059 21991 17 +16883 983 21991 17 +19483 26 22040 25 +8297 4425 22040 25 +20458 5208 22067 14 +11167 1834 22067 14 +21714 2528 22069 1 +8108 4005 22069 1 +17116 2817 22107 1 +1222 1248 22107 1 +2302 4097 22134 1 +13237 1560 22177 6 +13123 2983 22184 1 +2843 4059 22184 1 +17478 4082 22189 1 +11454 6866 22251 46 +25767 73 22304 1 +3790 297 22304 1 +17022 21 22317 1 +13969 1509 22317 1 +24752 811 22317 1 +17879 2806 22323 13 +21383 467 22354 1 +22634 1638 22355 5 +2555 2718 22371 1 +11941 5004 22389 29 +18653 4521 22394 1 +9294 2521 22394 1 +22274 2997 22407 1 +11619 6351 22412 1 +15184 691 22412 1 +9670 4221 22419 1 +21014 2212 22421 1 +19638 2210 22423 19 +22717 3383 22433 14 +3953 5159 22440 2 +13538 250 22440 2 +18975 6348 22474 1 +22806 3787 22475 1 +7750 6210 22502 1 +16437 5627 22504 16 +17246 5798 22505 1 +13196 3865 22564 1 +5231 3177 22564 1 +8905 581 22599 18 +9616 4189 22601 2 +6964 6980 22617 59 +21443 2453 22627 1 +16350 4589 22627 1 +8328 4830 22682 1 +17241 749 22749 12 +1382 3149 22779 52 +20357 3563 22779 52 +19534 330 22779 52 +18782 2416 22800 1 +11766 3753 22839 2 +375 4114 22850 5 +20878 1534 22855 30 +10256 4926 22855 30 +972 1192 22924 3 +5717 6096 22925 2 +1475 4916 22981 3 +1669 6660 23044 1 +1886 3126 23098 1 +9635 955 23098 1 +10240 6166 23107 2 +2752 876 23107 2 +4791 2803 23181 1 +10186 2038 23206 25 +18930 6760 23210 1 +17456 1832 23271 17 +20123 1003 23271 17 +3738 2892 23343 22 +3793 3713 23345 4 +14364 839 23346 34 +569 5974 23402 6 +3262 6382 23432 4 +8887 1303 23437 2 +14638 1382 23437 2 +543 2693 23437 2 +9278 1664 23437 2 +15925 3882 23457 18 +13237 6378 23471 1 +4035 664 23471 1 +19942 307 23492 2 +23887 622 23583 3 +18030 6149 23661 3 +9780 3848 23698 2 +18257 3194 23698 2 +5125 6045 23713 2 +20143 2633 23764 7 +19142 141 23767 1 +7642 653 23767 1 +4847 529 23767 1 +9956 3817 23861 51 +7295 5306 23867 9 +7799 6873 23925 4 +5019 169 23925 4 +17314 4470 23974 5 +22387 2572 23974 5 +8383 1697 24003 1 +18946 5088 24076 1 +11055 4182 24163 1 +19838 2701 24165 3 +11708 3382 24217 94 +20773 5709 24225 2 +4637 1333 24225 2 +5051 4586 24231 8 +3822 2456 24231 8 +3541 1907 24261 40 +1634 2796 24327 1 +7071 6327 24331 53 +4328 4847 24382 2 +6229 3390 24425 5 +15666 3182 24437 1 +330 4663 24460 24 +19822 1765 24460 24 +1547 1281 24516 26 +2735 872 24516 26 +8896 2696 24518 5 +994 3847 24532 1 +15315 4462 24571 1 +11386 2580 24571 1 +16668 3004 24602 5 +3578 4038 24602 5 +19728 680 24622 24 +9323 2320 24689 39 +16033 6840 24716 1 +15446 1680 24719 1 +4946 737 24719 1 +10543 1428 24725 1 +11413 6917 24728 1 +6921 4268 24812 30 +13733 1453 24812 30 +12801 1321 24812 30 +13276 4982 24835 2 +8714 1402 24859 1 +8477 224 24892 4 +9053 2386 24945 1 +318 1305 24945 1 +8065 1614 24945 1 +7891 2363 24945 1 +16052 189 24957 1 +12101 3137 24983 6 +18122 3905 24983 6 +1745 4257 24991 21 +19027 5570 25039 1 +7840 5607 25042 1 +9591 7001 25065 1 +22671 2502 25130 1 +5175 3167 25139 1 +19079 3875 25139 1 +8595 6108 25157 3 +1992 5483 25236 1 +2389 1272 25236 1 +9845 4810 25294 17 +776 3135 25309 79 +7732 3907 25309 79 +5308 2584 25338 1 +11805 849 25347 9 +10402 1856 25351 17 +3531 1848 25433 53 +15491 3297 25444 4 +18120 5210 25456 74 +19344 6257 25481 71 +11084 2270 25564 53 +12987 2078 25615 1 +7593 37 25615 1 +12767 4789 25656 21 +11251 2253 25656 21 +3027 6702 25697 59 +694 340 25697 59 +5309 3516 25739 2 +24793 1837 25739 2 +14872 5733 25740 9 +12480 875 25740 9 +13242 434 25740 9 +12677 4721 25795 1 +10059 2036 25880 1 +6174 991 25880 1 +67 6898 25937 3 +20474 144 25937 3 +16858 5120 25997 4 +6611 5664 26078 1 +2516 1378 26078 1 +1766 3464 26080 1 +4773 3276 26102 2 +11297 1829 26102 2 +9168 18 26103 30 +10987 6178 26171 1 +5491 864 26171 1 +16480 4360 26238 23 +5161 2682 26238 23 +13352 1923 26249 8 +7070 2926 26326 1 +15914 4116 26326 1 +12239 3955 26327 1 +19744 3087 26327 1 +11961 1241 26391 1 +13552 1973 26391 1 +17879 6373 26408 12 +1556 669 26408 12 +2641 1408 26473 15 +24347 194 26491 4 +12540 4321 26491 4 +7906 2527 26491 4 +11968 2695 26554 45 +21864 1826 26632 1 +14107 4332 26645 1 +13401 2710 26645 1 +15116 2483 26684 5 +13672 2124 26698 12 +8159 3173 26719 9 +14387 1787 26728 37 +6485 5358 26748 1 +17883 3405 26789 4 +11172 3637 26789 4 +17424 2784 26794 17 +8365 4258 26794 17 +18511 6167 26814 4 +5031 377 26856 23 +13057 1195 26860 1 +18747 2963 26916 16 +4390 5698 26927 4 +20616 4980 26987 9 +1004 5286 26992 1 +1995 4097 27003 22 +13592 83 27006 75 +6238 4986 27009 64 +7796 5301 27067 3 +2060 1231 27067 3 +7199 510 27067 3 +16729 7010 27079 2 +11833 5438 27156 83 +4055 3729 27170 23 +1556 3313 27170 23 +5407 814 27170 23 +25301 399 27174 1 +3479 6156 27183 6 +4380 5728 27216 1 +12321 5389 27236 3 +15307 2770 27246 6 +11658 253 27246 6 +6461 945 27246 6 +17106 6027 27308 1 +12740 4943 27317 30 +23049 2655 27405 1 +4191 4387 27405 1 +7413 3866 27412 21 +4160 3176 27412 21 +5748 3899 27424 10 +9074 2538 27428 59 +21327 326 27428 59 +3658 4893 27431 21 +3162 462 27444 73 +17861 901 27444 73 +2853 2083 27453 2 +21454 989 27453 2 +8946 3162 27454 2 +18581 2307 27454 2 +10584 1573 27454 2 +14749 768 27515 28 +6151 181 27528 9 +2387 6981 27530 3 +10594 2370 27612 3 +15533 3833 27614 16 +23251 1468 27696 1 +18098 4544 27785 17 +6531 5857 27818 2 +4072 6333 27851 20 +11175 4395 27858 2 +6747 1337 27859 4 +18275 7032 27876 32 +13504 2376 27901 6 +10579 1422 27963 1 +21789 1151 27965 37 +534 1537 28010 4 +16898 1388 28012 64 +18704 6726 28021 2 +10822 316 28021 2 +6089 3216 28029 44 +2770 3487 28029 44 +20334 6093 28033 6 +10855 6094 28046 7 +23594 948 28046 7 +8421 1547 28060 2 +15332 4818 28066 11 +20753 46 28078 89 +18022 2770 28078 89 +11401 4265 28078 89 +12181 2977 28101 1 +13908 3919 28101 1 +23728 2477 28133 7 +6607 6392 28139 9 +11839 1588 28194 1 +8531 6138 28222 41 +17576 904 28222 41 +6891 5997 28232 2 +15683 3679 28318 1 +1922 1490 28318 1 +12756 5518 28330 11 +12520 2473 28403 21 +5030 148 28403 21 +19540 3482 28421 15 +10252 4751 28480 15 +506 6043 28534 1 +14563 999 28534 1 +1498 4413 28553 1 +13267 2629 28553 1 +9385 4174 28588 1 +13619 3272 28604 3 +9835 3715 28625 1 +20741 3327 28625 1 +6154 5060 28723 1 +19372 45 28766 12 +15919 5667 28778 60 +15011 1375 28778 60 +9709 6680 28784 1 +5379 4776 28788 3 +7294 2266 28788 3 +8609 618 28788 3 +5548 2266 28788 3 +22931 1382 28790 1 +22797 2015 28816 3 +2962 1559 28816 3 +22339 3913 28875 5 +23100 1241 28875 5 +7931 4793 28889 31 +10806 2781 28890 3 +4900 4243 28892 1 +8597 509 28892 1 +20234 5909 28893 17 +10526 3392 28920 6 +25137 581 28925 17 +11482 4531 28927 17 +20304 5094 28944 19 +5703 2977 28960 9 +2161 735 28960 9 +15744 588 28960 9 +12468 6317 28961 6 +20095 5101 28971 5 +24539 2107 28987 22 +13198 3808 28988 1 +22608 147 28989 4 +14697 1504 28989 4 +1276 3325 29058 1 +9147 785 29146 1 +7700 6584 29148 41 +10546 458 29148 41 +7635 5838 29227 3 +15931 1204 29227 3 +18497 6058 29257 22 +5187 984 29257 22 +5047 3877 29259 19 +19728 2189 29260 13 +6379 4853 29260 13 +4599 1595 29269 1 +408 1880 29272 28 +15655 6452 29366 13 +4466 590 29366 13 +1638 3752 29405 30 +17940 5365 29410 1 +15143 2663 29411 32 +20712 3293 29420 1 +6833 1905 29420 1 +20965 4789 29424 1 +12214 2804 29437 7 +308 2740 29463 26 +15363 1030 29463 26 +20318 4697 29466 20 +1617 2345 29466 20 +11460 860 29469 1 +21816 3474 29488 5 +11282 4380 29528 10 +10519 2485 29547 1 +1963 959 29549 21 +2671 3664 29646 1 +4863 3378 29646 1 +2078 1382 29674 2 +24110 745 29674 2 +4838 6494 29685 4 +18093 3441 29689 1 +13842 2386 29689 1 +5581 1215 29689 1 +19817 2060 29733 1 +953 2927 29809 1 +15759 4115 29809 1 +12118 6432 29827 1 +6012 610 29827 1 +4999 3716 29860 24 +21330 2993 29870 1 +11442 3392 29963 41 +11593 4546 29965 1 +5453 2298 29968 29 +21907 3429 29968 29 +14789 3604 29986 1 +12651 3435 29986 1 +13593 1300 29986 1 +13720 1300 29986 1 +9230 871 29986 1 +20584 323 30049 1 +11945 4913 30099 4 +14588 3963 30118 1 +2008 1637 30120 16 +5969 1566 30120 16 +972 6861 30196 25 +6737 65 30208 4 +18239 6358 30222 5 +9059 684 30222 5 +7832 6452 30297 1 +14653 152 30301 1 +16499 2570 30395 1 +13507 4890 30415 1 +5760 2810 30421 31 +21898 4012 30427 70 +6160 4687 30504 6 +4191 1655 30571 9 +22633 3450 30578 9 +10722 1748 30578 9 +16013 4035 30663 36 +7377 3007 30663 36 +14292 4712 30756 1 +7987 6541 30850 84 +11286 3843 30928 2 +24114 2403 30933 5 +22307 2534 30934 1 +5423 4508 30934 1 +11161 2324 30996 2 +25714 154 30997 17 +9380 3148 31014 13 +18039 1398 31027 2 +3400 3737 31048 7 +16867 3722 31059 18 +23304 121 31059 18 +10968 6635 31067 3 +3067 5260 31069 6 +3730 1557 31135 1 +2792 5485 31135 1 +21021 4485 31157 1 +7588 2866 31252 46 +5097 5109 31255 19 +18872 1933 31255 19 +10258 4174 31309 2 +15590 654 31334 3 +15046 6295 31343 3 +3962 5678 31348 49 +9420 6074 31362 11 +4815 1056 31385 9 +12886 2361 31396 1 +10385 2712 31489 28 +19835 1502 31492 1 +9908 2354 31543 3 +3843 1045 31568 2 +9279 6125 31603 7 +20257 1716 31663 1 +4493 3260 31663 1 +7681 6562 31684 29 +588 480 31684 29 +20084 493 31699 1 +6223 3284 31760 1 +22765 190 31762 6 +4731 5482 31830 1 +5771 5750 31909 1 +10557 4357 32008 1 +7381 1362 32019 1 +2139 4722 32023 2 +11481 2320 32023 2 +11160 4445 32024 1 +10787 5222 32035 1 +5523 3635 32066 1 +10626 3360 32066 1 +1543 4362 32130 42 +18207 4119 32147 56 +4069 2923 32147 56 +4041 5322 32198 1 +3792 367 32200 3 +25933 289 32206 1 +21015 4891 32218 1 +17324 2151 32218 1 +5959 6411 32244 1 +12262 631 32244 1 +14005 2987 32249 1 +13089 2751 32252 2 +3571 4047 32252 2 +22065 244 32252 2 +6748 3648 32324 1 +11981 5203 32354 2 +7879 511 32367 2 +18441 444 32367 2 +12320 966 32378 5 +22206 268 32378 5 +11846 5808 32378 5 +23349 1839 32389 23 +14740 500 32415 9 +7339 1705 32507 11 +21277 4641 32507 11 +16537 3371 32598 4 +23778 1908 32648 28 +12020 2996 32666 35 +21288 3565 32684 2 +13934 1078 32684 2 +5980 4176 32701 30 +9041 1052 32796 1 +19048 3224 32796 1 +3651 2043 32871 1 +3327 4999 32871 1 +15540 1909 32871 1 +2315 134 32871 1 +10433 5121 32875 21 +17511 6725 32955 2 +3572 317 32955 2 +11229 3387 32961 2 +13057 5261 33049 1 +16687 5368 33076 1 +4182 1056 33098 2 +3695 1861 33166 4 +7040 4351 33167 1 +6171 6137 33189 10 +4564 1604 33193 41 +557 326 33193 41 +18235 6087 33251 1 +20448 948 33260 73 +16548 3032 33283 60 +5517 3860 33283 60 +9825 2570 33293 1 +16539 4472 33293 1 +23525 468 33298 1 +23878 2140 33310 1 +7111 448 33391 1 +19636 4180 33391 1 +13231 746 33392 86 +6845 6296 33392 86 +13934 4937 33393 20 +2073 1998 33406 1 +6397 4760 33489 1 +3083 3865 33517 1 +6890 3177 33517 1 +7929 4191 33531 6 +22355 1731 33531 6 +22091 3806 33534 3 +11006 2063 33534 3 +22751 1173 33534 3 +18986 937 33619 21 +16742 1619 33619 21 +6892 5098 33632 22 +902 5942 33633 1 +14132 501 33633 1 +15606 5545 33682 5 +22281 1205 33682 5 +231 3902 33713 1 +13115 5198 33754 40 +3495 1844 33754 40 +15733 5490 33795 34 +13299 1552 33795 34 +21329 1177 33835 3 +20286 210 33839 10 +12508 5045 33839 10 +21120 4813 33848 1 +4059 2229 33848 1 +10275 4291 33862 8 +15627 2751 33862 8 +19545 5527 33865 8 +8285 1629 33910 62 +23574 2856 33932 2 +17089 1713 33932 2 +2018 5043 33976 9 +17067 898 34061 1 +10342 5774 34063 2 +14990 516 34063 2 +3933 2234 34085 2 +16125 3377 34087 8 +5212 3051 34087 8 +8611 3914 34093 2 +7026 3128 34093 2 +2470 3435 34140 3 +6877 3607 34140 3 +6360 4275 34231 1 +15682 2767 34231 1 +6068 1476 34304 23 +12363 1154 34391 2 +8457 4963 34408 1 +4387 4300 34482 1 +7593 2567 34482 1 +20672 3500 34494 1 +14998 5928 34574 6 +9809 193 34574 6 +10375 5052 34576 17 +21177 3988 34587 1 +6283 298 34622 31 +5607 6828 34655 4 +21970 2570 34659 1 +10178 336 34659 1 +6950 1561 34659 1 +14250 499 34711 1 +12799 6424 34711 1 +13082 1851 34719 13 +6587 5191 34719 13 +18651 2738 34724 5 +17867 4092 34739 4 +14190 2300 34739 4 +12885 6397 34769 71 +17434 645 34769 71 +16233 2697 34782 58 +14737 4843 34863 6 +16762 1453 34868 2 +5924 2364 34868 2 +13460 636 34868 2 +21053 2589 34868 2 +8056 2110 34953 5 +8584 3141 34962 8 +16363 3901 34962 8 +3143 244 34986 27 +22562 108 35014 1 +1979 5844 35018 3 +16227 714 35018 3 +17987 4498 35021 13 +11226 3046 35068 2 +397 537 35068 2 +19546 3459 35068 2 +5603 2841 35147 1 +10159 1500 35147 1 +2871 4316 35221 20 +10268 1103 35295 11 +9511 5939 35295 11 +18414 6234 35298 50 +5610 869 35300 1 +7687 4018 35367 2 +17301 3024 35367 2 +11880 1014 35385 1 +5344 5296 35385 1 +19223 2621 35413 1 +8220 3083 35413 1 +5354 1167 35422 1 +14446 2418 35426 35 +18166 6416 35429 1 +12376 4619 35431 15 +1678 3747 35438 9 +6688 3780 35440 29 +638 1804 35440 29 +9805 7021 35447 37 +22082 145 35496 10 +23548 398 35589 32 +20037 2664 35590 1 +3193 3158 35615 1 +20514 415 35615 1 +7751 4102 35626 10 +2805 6327 35659 1 +6544 5946 35661 18 +13485 216 35661 18 +11585 5628 35683 31 +2356 2715 35697 5 +10628 1989 35750 8 +22450 3464 35755 61 +831 6577 35766 9 +9501 2877 35802 16 +22710 112 35806 1 +17638 2538 35821 1 +4558 2271 35821 1 +22228 1791 35833 14 +5571 5251 35833 14 +25436 279 35858 1 +10384 2866 35865 8 +10221 3962 35865 8 +10321 5245 35893 1 +5399 790 35893 1 +20972 1862 35898 3 +10819 3699 35929 3 +14554 2341 35929 3 +9252 6992 35936 1 +15026 50 35936 1 +7456 50 35936 1 +13067 2902 35945 1 +22133 2138 35945 1 +2119 4673 35946 1 +18063 1466 35946 1 +232 903 35946 1 +4812 1944 36015 1 +24377 664 36015 1 +5170 3914 36035 1 +9645 3128 36035 1 +20353 632 36041 34 +18111 2651 36059 13 +8016 1130 36071 1 +306 5912 36071 1 +19875 3041 36134 9 +1135 2910 36136 7 +13457 4132 36136 7 +9757 5166 36181 10 +7679 2631 36229 3 +11015 69 36229 3 +15790 3894 36313 1 +1049 694 36349 1 +23610 1668 36349 1 +17898 5627 36380 22 +2151 6610 36400 3 +20874 1910 36422 15 +5559 4043 36441 1 +16384 6423 36458 2 +3848 2683 36474 1 +7544 4359 36474 1 +21214 773 36499 1 +16030 175 36499 1 +15819 5904 36503 1 +3303 4641 36522 1 +11169 2401 36522 1 +4538 917 36545 1 +12564 2558 36545 1 +20492 3567 36545 1 +12146 6797 36555 39 +13819 2056 36599 19 +11056 2830 36601 68 +7527 1392 36642 6 +9158 418 36647 25 +4426 34 36709 1 +4125 4148 36770 61 +12548 408 36827 76 +23147 3449 36828 2 +12880 3593 36828 2 +15985 3472 36833 6 +582 2308 36861 1 +642 4734 36861 1 +24592 824 36866 16 +10765 218 36916 12 +9322 4519 36993 26 +2716 2523 36993 26 +20696 4017 37017 20 +20376 5616 37036 1 +12895 4891 37037 30 +3367 6748 37038 1 +14805 1740 37101 9 +15861 5619 37155 44 +21217 4773 37164 63 +12594 2269 37164 63 +3303 3349 37178 1 +5494 2315 37257 1 +5623 2943 37305 30 +2222 581 37324 1 +5772 2659 37326 5 +18678 4383 37326 5 +20650 5363 37331 10 +16821 4390 37365 43 +17642 242 37392 40 +9902 1270 37392 40 +6915 3443 37394 11 +24731 1387 37395 3 +21910 796 37465 1 +6584 6180 37465 1 +18967 1297 37475 7 +811 3530 37480 1 +11867 4533 37521 4 +20915 1136 37521 4 +17063 1373 37521 4 +15996 6410 37573 58 +24804 787 37633 5 +14838 525 37633 5 +4378 5730 37633 5 +9017 5974 37634 7 +23213 555 37635 1 +5098 5389 37635 1 +14465 6497 37645 1 +7966 5658 37668 1 +14288 449 37680 27 +12866 940 37680 27 +3540 6440 37687 26 +3854 3617 37786 2 +24350 1331 37789 13 +16695 4420 37845 3 +14545 6854 37895 1 +3572 188 37895 1 +17651 6826 37896 13 +8471 2120 37898 2 +24117 1510 37898 2 +14161 2371 37900 6 +19091 2352 37934 1 +14622 1615 37958 1 +12837 660 38051 3 +11939 4445 38071 12 +12881 4650 38113 2 +10248 762 38141 1 +25744 620 38232 74 +19176 6422 38232 74 +1830 5373 38237 16 +10375 2533 38248 1 +5710 4509 38248 1 +3362 2335 38309 22 +12236 1929 38332 1 +17731 3719 38372 6 +6521 1110 38372 6 +18301 2213 38372 6 +6716 1687 38379 21 +2215 6891 38403 8 +9816 151 38403 8 +14262 5430 38425 18 +1016 175 38426 1 +22202 3819 38434 20 +12155 802 38434 20 +19764 5579 38435 2 +4058 235 38489 7 +9305 213 38526 5 +3687 714 38526 5 +16380 3565 38526 5 +11883 395 38576 1 +16256 2870 38576 1 +18443 2280 38576 1 +15539 6129 38581 8 +1864 913 38581 8 +8861 4020 38586 51 +8794 3022 38586 51 +7123 610 38593 56 +13286 1341 38671 2 +11694 4989 38735 8 +21402 736 38735 8 +12203 4538 38754 1 +16736 2504 38754 1 +9868 5 38754 1 +14278 493 38787 46 +13279 4668 38808 2 +22762 206 38820 1 +21965 178 38825 2 +15465 5868 38825 2 +13040 369 38861 1 +16567 2348 38861 1 +982 812 38861 1 +16814 810 38890 1 +19475 2032 38899 1 +1861 4930 38900 1 +12913 77 38924 1 +18866 5719 38970 18 +11585 1323 38970 18 +3359 6555 38986 9 +12290 3237 38987 2 +2658 1418 39023 1 +13018 3985 39043 2 +15581 3057 39043 2 +4218 2852 39102 51 +7860 3161 39109 70 +2841 584 39122 13 +7455 4849 39122 13 +19354 4829 39143 1 +26196 295 39143 1 +20307 4168 39182 33 +1098 2861 39182 33 +11763 1204 39239 1 +11279 6001 39242 1 +6524 4682 39256 2 +7225 2360 39256 2 +12774 6123 39291 38 +4237 2045 39301 16 +3231 1754 39342 11 +1617 1379 39441 1 +19922 810 39441 1 +18263 4643 39441 1 +6395 5523 39443 1 +16329 1519 39443 1 +20434 3879 39452 33 +18666 225 39452 33 +15741 4753 39466 4 +12458 1195 39467 23 +8284 5495 39562 1 +23649 2857 39635 1 +3503 6719 39658 5 +14985 6812 39681 3 +11705 1211 39682 18 +23103 2946 39749 12 +10800 4096 39749 12 +18342 6118 39806 1 +14478 2133 39808 11 +6578 3538 39810 39 +21634 280 39869 1 +5783 5344 39871 1 +9237 1698 39871 1 +1096 6156 39910 17 +9174 2305 39912 10 +20064 4737 39912 10 +4894 50 39965 18 +2806 2420 39967 1 +2620 4138 39967 1 +7252 2109 39968 6 +16505 4933 39968 6 +7565 4777 39969 19 +1253 1271 39969 19 +13357 6350 40019 1 +2980 692 40019 1 +7225 3594 40021 20 +2156 6138 40076 11 +23755 498 40133 6 +22031 688 40133 6 +20305 2529 40153 1 +21093 5069 40154 1 +11380 1681 40175 3 +19461 3339 40207 51 +6519 2613 40220 64 +182 3750 40237 1 +15399 282 40311 1 +1744 6454 40311 1 +8868 6828 40314 1 +6737 214 40314 1 +12377 5369 40321 1 +699 2995 40418 14 +7597 4047 40418 14 +12357 4048 40423 50 +13488 6266 40425 1 +8706 776 40425 1 +3173 2014 40468 40 +11892 5601 40471 2 +17703 3291 40559 42 +21624 3121 40573 1 +20732 1210 40575 1 +11573 1192 40665 1 +1984 1450 40665 1 +6091 2084 40666 26 +6936 6194 40695 19 +2665 1103 40696 3 +6628 6176 40707 12 +2009 866 40707 12 +18684 3329 40745 1 +9791 726 40746 2 +10403 2492 40746 2 +6448 5230 40750 1 +5284 2401 40751 4 +4986 6219 40753 1 +13937 169 40778 13 +7223 852 40852 22 +6685 4937 40861 2 +13705 3436 40862 1 +6770 3606 40862 1 +15693 49 40865 1 +623 3794 40878 5 +467 4641 40953 8 +14538 5573 40955 18 +5778 1469 40955 18 +5595 2471 40958 1 +16784 5782 40970 1 +9258 4601 40971 3 +3568 2675 41048 9 +20143 2187 41050 30 +23216 2857 41050 30 +12837 833 41053 24 +23679 799 41104 1 +6825 6210 41104 1 +18582 3438 41110 10 +16625 1365 41198 4 +8263 1596 41203 19 +15357 4697 41211 27 +7427 6378 41269 1 +15375 1079 41277 1 +1964 6187 41282 4 +10310 855 41282 4 +4738 4664 41296 1 +17117 3236 41298 8 +8834 5170 41320 41 +15270 1291 41334 1 +10308 4571 41334 1 +13825 1180 41334 1 +14442 5260 41336 31 +10338 1782 41336 31 +22552 3499 41415 7 +6736 2831 41415 7 +21503 2576 41445 18 +4384 3854 41455 11 +1938 2251 41455 11 +13370 937 41455 11 +18326 4410 41456 14 +15572 556 41456 14 +16612 2076 41456 14 +413 362 41456 14 +12940 2435 41483 1 +7852 3391 41541 1 +16047 3507 41542 34 +19439 3535 41542 34 +1267 3966 41616 20 +12767 1443 41631 27 +8210 2063 41631 27 +10579 1140 41631 27 +23480 2270 41631 27 +6377 126 41631 27 +15794 2099 41642 10 +20056 4943 41642 10 +12214 913 41697 1 +16566 2174 41699 1 +19730 1120 41716 5 +15991 6309 41725 13 +11662 4186 41728 1 +7342 1858 41728 1 +19055 2957 41764 4 +10567 6795 41826 4 +669 247 41826 4 +15987 6041 41851 10 +23165 1001 41851 10 +11965 1723 41861 1 +20724 537 41862 1 +13150 3838 41883 11 +8001 3064 41918 13 +3974 4344 41926 4 +345 5219 42013 34 +2470 1823 42013 34 +14423 1823 42013 34 +17607 3313 42021 1 +8971 3729 42021 1 +2283 6552 42101 11 +8891 490 42101 11 +11791 5997 42189 1 +6967 4428 42217 13 +20157 606 42217 13 +4625 4199 42221 5 +3035 2361 42221 5 +6766 1253 42221 5 +14883 859 42266 1 +14490 3207 42288 2 +15816 2059 42334 6 +4422 4604 42334 6 +7885 4628 42377 30 +11801 2414 42377 30 +14024 5899 42433 54 +19793 758 42442 1 +22086 3690 42487 2 +25246 119 42487 2 +19508 1167 42516 1 +21003 3289 42538 1 +10159 1969 42577 10 +2925 3480 42598 40 +116 828 42663 1 +17162 2054 42759 40 +12746 1313 42763 9 +6160 1516 42763 9 +10906 6538 42842 14 +15877 1923 42918 14 +12222 1042 42918 14 +9493 822 42918 14 +17705 739 42918 14 +15504 3138 42923 1 +3056 3562 43013 1 +4686 3782 43061 1 +12154 456 43065 6 +22676 637 43065 6 +4337 1725 43098 1 +970 3610 43149 1 +1329 2689 43149 1 +21139 2095 43211 4 +13819 3064 43211 4 +18488 4286 43218 9 +10333 5139 43272 14 +15976 2958 43273 39 +1825 4084 43273 39 +16654 4986 43321 29 +10013 1836 43330 30 +20040 4128 43414 5 +8531 5387 43415 1 +12685 452 43457 9 +12875 5903 43485 45 +11772 1139 43485 45 +3753 4397 43522 8 +3453 1140 43552 4 +5003 5902 43552 4 +16061 2336 43623 1 +22006 937 43647 1 +2461 578 43647 1 +3635 3197 43650 8 +7610 1220 43651 2 +4509 2726 43653 2 +16754 3300 43653 2 +4564 1574 43666 1 +3312 4936 43747 2 +13889 1724 43747 2 +15782 6301 43842 1 +15231 741 43842 1 +264 190 43842 1 +16521 3380 43853 18 +17861 6149 43873 15 +4891 893 43873 15 +16297 3796 43941 23 +18119 2807 43942 47 +12651 6864 43946 25 +780 5147 43993 1 +16835 506 44016 1 +14881 3252 44016 1 +14370 790 44044 10 +13369 6252 44044 10 +17186 367 44045 14 +11743 6801 44107 1 +21855 4238 44141 9 +7231 2713 44141 9 +4411 632 44176 43 +13706 6158 44176 43 +15156 2791 44177 66 +21444 4251 44177 66 +780 4639 44196 43 +6954 2403 44196 43 +18587 5916 44197 4 +2179 1126 44197 4 +18082 4440 44269 4 +1230 2817 44321 5 +9831 100 44321 5 +13067 2306 44330 24 +10618 1205 44383 1 +9375 1041 44383 1 +11730 5955 44397 7 +15565 2278 44442 8 +18955 6791 44481 4 +14515 5788 44544 13 +18777 5102 44549 1 +10299 2839 44578 29 +6100 5586 44593 41 +15232 864 44593 41 +20248 592 44593 41 +8357 3183 44603 6 +12963 2169 44692 68 +2630 801 44762 3 +19450 1589 44794 1 +5346 3061 44837 8 +13620 5411 44840 28 +12237 822 44854 29 +4782 2936 44865 30 +14928 5404 44867 1 +7325 1638 44867 1 +5848 95 44868 19 +13858 6321 44868 19 +737 616 44884 30 +12289 6961 44898 1 +11632 6994 44905 1 +829 48 44905 1 +11864 5806 44989 3 +5443 1236 44989 3 +14514 3714 44991 46 +15428 6456 44994 10 +8934 586 44994 10 +24768 1236 45033 1 +11790 5970 45113 1 +24346 1072 45113 1 +8416 5352 45119 7 +14032 1690 45119 7 +12544 6294 45134 1 +21704 2921 45159 1 +3134 1418 45159 1 +23159 2348 45164 1 +7719 5805 45198 60 +12624 3032 45239 9 +3854 1018 45239 9 +6592 4912 45241 2 +227 1438 45241 2 +5703 692 45241 2 +19594 5898 45251 37 +22346 3879 45279 1 +17479 3602 45281 2 +10655 206 45282 4 +12730 568 45285 1 +16878 152 45292 8 +6698 4566 45292 8 +11720 1592 45292 8 +23861 732 45292 8 +18175 3593 45294 21 +15706 3449 45294 21 +17462 980 45294 21 +9149 5404 45308 22 +9867 4058 45312 18 +22933 1182 45312 18 +9873 4461 45317 1 +10081 6807 45357 2 +17804 3868 45454 40 +19895 285 45491 1 +12570 3308 45504 44 +19366 6023 45505 23 +5988 2953 45573 6 +2209 918 45574 14 +13698 1366 45577 15 +16545 758 45583 20 +17793 6682 45613 1 +11952 6043 45626 14 +6240 912 45702 6 +9649 6070 45707 3 +19355 1559 45716 2 +21336 570 45738 2 +10004 4316 45738 2 +10652 1283 45738 2 +8355 976 45738 2 +15644 3210 45739 3 +997 505 45739 3 +5106 3699 45807 1 +3354 2954 45807 1 +13391 2544 45879 35 +7522 3461 45892 19 +14284 3581 45892 19 +19972 3022 45902 3 +22289 1908 45977 1 +4261 1415 45977 1 +1748 5453 46001 15 +16799 658 46015 10 +8608 2958 46015 10 +2348 899 46016 24 +3821 4090 46040 1 +16981 2952 46040 1 +521 3922 46111 1 +8397 3120 46111 1 +22178 2704 46114 4 +3917 1771 46137 1 +20361 624 46212 1 +25693 552 46219 5 +10651 5530 46231 4 +23418 1512 46231 4 +10310 4349 46289 8 +881 4000 46354 35 +12672 3031 46400 1 +9188 2437 46400 1 +10083 5802 46444 1 +18326 1373 46460 15 +1332 4948 46556 11 +4716 2094 46556 11 +13152 2094 46612 31 +9880 4948 46612 31 +1338 870 46612 31 +11441 3002 46627 14 +22219 420 46680 1 +12799 2840 46689 7 +15196 3465 46689 7 +11401 1591 46716 1 +14596 5451 46716 1 +21905 4397 46722 51 +19343 6248 46724 2 +15995 1956 46744 7 +21433 3855 46744 7 +21489 1231 46744 7 +20683 1063 46744 7 +4201 481 46744 7 +21290 308 46770 7 +22270 3585 46823 8 +15496 4363 46881 13 +18179 2679 46881 13 +3121 1682 46976 1 +13821 201 46976 1 +22367 1103 46976 1 +8903 4224 46979 5 +22980 2818 46979 5 +9272 398 46985 1 +18253 6116 46985 1 +15353 528 46985 1 +6301 3952 47053 1 +1843 2803 47056 8 +11088 1457 47063 1 +5624 5585 47063 1 +4702 121 47063 1 +2285 2520 47090 20 +11717 2955 47090 20 +1385 4012 47096 3 +15594 4985 47164 1 +6846 2057 47164 1 +8984 4849 47252 17 +18976 5748 47327 7 +14987 365 47405 18 +9828 5843 47432 14 +19179 2156 47466 22 +15943 2726 47466 22 +11260 3755 47475 1 +15842 6406 47496 1 +22007 2123 47573 8 +20706 5359 47596 13 +12233 2638 47603 4 +3095 235 47618 1 +11208 3234 47698 5 +21398 1157 47715 4 +12476 3247 47717 2 +10218 4741 47768 1 +4328 6768 47787 12 +12523 274 47787 12 +12043 6383 47807 1 +7428 678 47895 1 +11619 6109 47895 1 +8117 1000 47945 40 +13805 1559 47948 1 +2113 1062 47977 1 +12348 3264 47984 4 +13684 3744 47984 4 +12443 3862 47987 1 +7751 1547 47987 1 +6714 6821 47988 25 +15937 221 47988 25 +7604 2336 47993 10 +16681 2215 47993 10 +2253 4266 48040 21 +4516 4917 48088 3 +270 2125 48088 3 +2263 936 48111 55 +8186 2500 48202 27 +17960 1905 48209 1 +5670 3445 48209 1 +22382 1761 48278 55 +7222 1871 48297 25 +3956 1028 48298 22 +6382 3773 48368 2 +624 6664 48370 47 +4271 2801 48396 8 +1297 3263 48420 5 +5510 4529 48425 10 +7854 5458 48449 55 +2259 1584 48449 55 +20224 276 48457 21 +8648 4159 48532 3 +6865 2452 48625 1 +19261 5677 48628 1 +4864 4913 48629 12 +20965 3418 48630 1 +19452 6492 48635 11 +7698 550 48635 11 +14283 3275 48639 1 +25162 1411 48640 11 +17934 2500 48640 11 +16406 2059 48645 23 +19188 1851 48647 5 +16542 2430 48685 59 +18890 4612 48685 59 +12789 1793 48761 34 +9146 1174 48804 7 +19846 5288 48804 7 +11633 2597 48830 70 +1731 3252 48830 70 +8371 5525 48852 1 +18822 2257 48855 1 +9373 3904 48867 36 +10314 1214 48875 1 +12791 2698 48875 1 +15815 3525 48955 1 +4707 3517 48955 1 +2268 2058 48957 1 +2406 4104 48959 9 +14666 5527 48983 5 +5140 1515 48983 5 +24420 1402 49081 1 +7879 5306 49081 1 +16559 334 49081 1 +14553 3877 49162 37 +20061 3165 49162 37 +6781 1894 49225 29 +14061 2395 49225 29 +12952 5331 49227 8 +13152 1711 49227 8 +17038 6062 49229 79 +22521 2150 49237 1 +19909 2499 49242 16 +9255 4543 49242 16 +22206 4184 49257 23 +10485 2858 49257 23 +16224 1310 49271 43 +6381 2794 49271 43 +20305 6056 49297 2 +13254 5316 49314 4 +3510 5308 49342 8 +12748 3233 49428 1 +15156 4971 49442 1 +17217 1690 49472 1 +20082 3344 49489 19 +7947 4181 49496 7 +13721 729 49496 7 +14602 2132 49496 7 +546 2962 49528 15 +19238 4293 49569 1 +16552 3239 49570 12 +585 60 49613 2 +7648 129 49687 17 +364 2485 49769 31 +15023 1997 49831 1 +17974 4305 49838 86 +24314 139 49838 86 +12810 3765 49884 1 +11392 3749 49953 9 +6680 2899 50048 26 +15141 1976 50048 26 +17506 1760 50051 23 +19719 2211 50091 2 +7703 2499 50094 7 +2138 4312 50095 56 +17313 5149 50100 34 +2896 1018 50100 34 +9827 290 50159 18 +9713 4351 50159 18 +17798 2691 50159 18 +22657 1636 50173 4 +9697 4443 50195 53 +1615 2599 50195 53 +3099 813 50270 1 +14485 3910 50270 1 +12140 3175 50286 4 +22581 4052 50288 2 +16897 6177 50330 20 +367 865 50330 20 +12769 3042 50336 1 +11683 6314 50377 13 +12028 5222 50464 15 +14845 1820 50464 15 +6343 4138 50471 63 +21729 3225 50473 38 +11214 3249 50473 38 +9829 5503 50474 1 +12783 1022 50475 50 +9999 6044 50507 4 +13166 998 50507 4 +18241 998 50507 4 +17278 3885 50509 1 +12592 1698 50510 41 +1968 675 50514 3 +20975 3133 50524 6 +24295 668 50524 6 +13668 2859 50524 6 +12421 382 50524 6 +19411 6520 50525 1 +11028 4844 50601 5 +3760 4473 50602 5 +9942 1090 50602 5 +11799 1479 50602 5 +25432 567 50675 39 +82 6046 50675 39 +18550 4746 50684 1 +4966 281 50684 1 +495 5055 50689 1 +13648 1417 50735 25 +10142 479 50737 4 +16041 4228 50783 11 +853 897 50784 1 +7417 6509 50828 2 +11008 533 50828 2 +7225 533 50828 2 +7710 4972 50841 1 +5747 4585 50862 4 +10955 6557 50867 6 +18423 485 50867 6 +12260 4141 50929 9 +1953 4984 50958 33 +15575 5801 50983 15 +10788 1241 50983 15 +22176 3186 51070 1 +15406 6568 51097 1 +4655 1892 51109 10 +17905 3075 51122 32 +16638 3965 51159 2 +20024 434 51169 11 +19587 1863 51172 10 +4709 3949 51189 7 +15588 6327 51206 7 +10912 960 51261 1 +18615 340 51261 1 +6894 5742 51261 1 +8944 175 51309 1 +16527 2081 51311 50 +19279 6277 51318 5 +9261 5530 51327 1 +10043 4838 51343 1 +1510 2794 51355 6 +9383 172 51374 4 +22419 269 51387 31 +11131 5629 51387 31 +24317 840 51391 1 +12602 4690 51397 76 +9825 2352 51397 76 +13035 1284 51434 3 +1948 5562 51436 5 +16149 1480 51436 5 +14337 6617 51481 5 +15231 6742 51484 16 +20714 3710 51485 2 +24618 1767 51485 2 +8171 6510 51510 18 +4473 3057 51536 1 +3531 6672 51568 2 +22496 2020 51580 1 +10288 3413 51582 1 +10992 1866 51588 1 +22420 1520 51588 1 +20794 5507 51618 3 +12586 814 51632 42 +8872 651 51653 3 +6828 4678 51744 33 +23135 1960 51756 1 +9105 1371 51759 85 +8283 1341 51759 85 +4310 5763 51762 1 +18327 1201 51779 1 +17135 3765 51781 1 +18008 3346 51790 21 +4072 4265 51794 1 +13678 2777 51794 1 +5239 692 51823 2 +11269 6494 51837 18 +1084 1593 51840 24 +19413 27 51841 1 +12579 3231 51875 2 +5636 1877 51929 28 +16454 3396 51957 1 +26302 367 51960 2 +10944 1823 51960 2 +16573 2956 52029 1 +10843 772 52094 1 +267 1933 52094 1 +8947 3788 52094 1 +13417 2046 52097 4 +16333 1478 52097 4 +11966 3619 52106 5 +7989 5391 52132 54 +17871 1975 52133 1 +9479 3003 52199 8 +7982 3953 52201 1 +3825 2269 52201 1 +22309 1457 52203 3 +14783 1093 52252 18 +4891 206 52274 1 +16162 5761 52274 1 +4144 4692 52279 46 +21600 2519 52310 15 +5255 2583 52310 15 +762 2017 52334 1 +11866 3837 52334 1 +11769 1188 52334 1 +4635 1091 52334 1 +4504 3978 52380 7 +24086 19 52380 7 +16202 5092 52382 2 +10008 1950 52382 2 +17786 1715 52439 31 +12307 1533 52442 4 +9359 3130 52508 23 +15371 330 52508 23 +23169 3484 52518 1 +3528 5792 52571 2 +21786 1250 52571 2 +21724 1498 52576 1 +256 5294 52591 1 +12985 5548 52600 32 +7885 6548 52607 1 +639 3645 52610 9 +8809 3397 52610 9 +3165 5031 52617 9 +16500 2011 52617 9 +12448 771 52663 10 +18501 4525 52721 20 +8394 2517 52721 20 +2481 4754 52725 4 +10793 3999 52732 2 +22984 3196 52753 1 +2288 6406 52790 11 +16774 109 52790 11 +9585 3574 52792 32 +14907 497 52792 32 +21187 4191 52835 4 +10119 963 52835 4 +23014 863 52858 1 +18083 17 52858 1 +1147 6805 52927 9 +20775 5317 52939 1 +7659 4378 52947 6 +24575 1521 53009 30 +8882 5521 53009 30 +18404 6700 53010 62 +2168 4455 53046 1 +23508 434 53067 1 +6640 1941 53076 60 +3581 444 53095 14 +11367 1398 53095 14 +22727 2317 53095 14 +13519 5969 53117 1 +13260 3922 53119 15 +6157 3120 53119 15 +9406 1749 53144 1 +18036 2546 53144 1 +19152 2747 53144 1 +13002 1959 53216 8 +7527 2732 53216 8 +13962 2695 53217 15 +8008 6815 53223 20 +7351 227 53223 20 +2104 7023 53322 8 +14677 6034 53341 38 +6205 6641 53344 1 +1178 401 53344 1 +1750 3208 53352 5 +291 3378 53352 5 +11696 1065 53353 1 +1594 60 53353 1 +5980 1895 53404 28 +2393 4548 53404 28 +5903 6911 53444 8 +8997 131 53444 8 +7187 131 53444 8 +12813 6649 53459 33 +14328 393 53459 33 +23443 393 53459 33 +18655 3054 53494 1 +10723 2249 53498 1 +5522 4793 53498 1 +6250 4126 53515 1 +15238 5996 53521 32 +19982 1046 53521 32 +16561 678 53521 32 +1975 4293 53530 5 +13318 5291 53594 11 +14418 1751 53594 11 +15819 3090 53649 14 +16886 3415 53649 14 +18194 3810 53686 1 +11480 31 53686 1 +10890 3201 53686 1 +3594 759 53700 1 +17561 3724 53718 8 +11495 6815 53766 22 +9900 227 53766 22 +13590 6243 53768 1 +25354 1129 53813 1 +13653 1151 53853 12 +3136 3214 53853 12 +25445 483 53853 12 +20723 3934 53856 1 +10425 3709 53858 1 +6672 5945 53890 9 +14833 1097 53890 9 +20247 2867 53917 1 +1998 3322 53917 1 +22880 853 53917 1 +16758 234 53917 1 +17960 1152 53922 60 +20267 2434 53922 60 +15672 2734 53947 2 +6704 2299 54001 54 +11026 1231 54041 18 +4938 4582 54061 4 +17671 2026 54130 37 +20401 2999 54130 37 +9711 2528 54148 42 +12797 5364 54180 1 +4199 6839 54271 1 +350 989 54277 2 +272 694 54279 1 +21329 5156 54294 3 +13667 5456 54309 1 +22829 22 54340 1 +9861 1555 54357 5 +15879 4034 54357 5 +377 5242 54365 2 +22642 3729 54367 14 +16788 4388 54425 1 +10132 6183 54426 8 +13034 967 54436 1 +21184 2015 54436 1 +14276 4156 54492 1 +24007 1370 54496 1 +16069 4882 54496 1 +2318 790 54496 1 +17611 415 54529 20 +3449 142 54529 20 +10691 2816 54529 20 +3397 6129 54583 1 +11353 1733 54607 1 +19732 6237 54659 12 +1934 2316 54710 1 +24091 852 54710 1 +11838 113 54803 1 +3886 6131 54822 1 +2156 663 54823 1 +5590 6666 54887 4 +13878 5599 54954 3 +21774 3167 54958 16 +16756 947 54958 16 +17858 6553 54992 1 +2655 489 54992 1 +12918 4996 55058 1 +12511 5040 55070 49 +3907 1152 55070 49 +1094 5816 55109 1 +2107 5987 55111 1 +17918 2081 55180 13 +4559 3072 55180 13 +14539 1889 55180 13 +21100 3246 55184 1 +8896 3703 55184 1 +2686 93 55184 1 +11621 5061 55224 70 +12423 1336 55224 70 +13668 1351 55251 1 +8181 1191 55345 28 +5051 1910 55345 28 +3999 1233 55416 3 +22745 3105 55493 2 +19923 1541 55530 2 +15856 178 55553 7 +21347 2468 55568 23 +13946 68 55649 73 +22325 1239 55650 1 +5078 2952 55733 5 +2919 189 55779 1 +13510 2179 55799 1 +9326 3361 55799 1 +14326 1502 55799 1 +19604 3631 55805 1 +15898 5152 55893 5 +16964 4156 55905 14 +18973 2284 55910 42 +17781 808 55920 2 +23432 1591 55947 10 +17845 3682 55947 10 +15588 1769 55947 10 +7337 354 55992 67 +18096 6314 55994 1 +2622 2001 56016 2 +14437 1460 56025 2 +7150 5453 56025 2 +3545 129 56025 2 +14380 4445 56030 1 +12941 6300 56059 1 +4735 4586 56107 3 +13325 2456 56107 3 +1902 443 56119 1 +13699 6599 56119 1 +7768 5409 56175 1 +1257 3913 56193 28 +12694 1930 56197 1 +18019 1524 56242 6 +14568 3598 56242 6 +15497 5953 56267 2 +17092 1089 56267 2 +11586 3749 56268 3 +16762 3841 56272 1 +3006 3201 56272 1 +10407 2834 56274 12 +18544 4208 56274 12 +7100 1611 56347 3 +10364 5431 56347 3 +23277 1090 56349 1 +2917 2534 56349 1 +9527 5598 56350 26 +930 277 56350 26 +14846 1379 56392 1 +12277 148 56472 16 +16338 5811 56472 16 +21512 3895 56474 3 +7905 6283 56520 1 +1434 793 56533 44 +15836 1411 56535 1 +13215 5860 56558 13 +4103 1500 56563 1 +15523 3084 56564 5 +324 3661 56567 2 +8446 2131 56624 1 +15893 1419 56720 3 +7389 1990 56749 13 +19750 5052 56749 13 +637 5391 56751 1 +15716 2664 56780 1 +17729 5536 56785 8 +264 3170 56835 1 +22162 3872 56835 1 +8144 2808 56840 63 +4751 1597 56849 4 +20686 2287 56871 36 +21256 2920 56920 3 +11828 4822 57003 1 +17402 1717 57045 51 +24943 156 57045 51 +20515 3520 57136 10 +7902 3920 57152 1 +5885 6797 57159 1 +2600 6656 57175 7 +7033 5450 57182 7 +8749 1592 57182 7 +9487 1592 57182 7 +20171 3574 57192 2 +21894 4110 57197 10 +8679 840 57197 10 +5326 2128 57198 1 +21222 814 57198 1 +1398 4090 57209 32 +2880 2952 57209 32 +1927 602 57242 23 +13454 3812 57242 23 +15216 4614 57247 1 +22098 730 57268 4 +23621 1280 57268 4 +11011 847 57293 6 +8452 3091 57296 2 +16502 4355 57300 37 +3845 6047 57358 1 +5704 995 57358 1 +11394 4855 57361 13 +10074 1689 57377 12 +5102 3873 57378 5 +25563 913 57464 1 +5496 3023 57464 1 +9248 1966 57494 22 +11156 5162 57581 5 +11067 4120 57588 43 +14878 2339 57588 43 +9156 892 57588 43 +4880 2325 57590 1 +12458 3372 57595 1 +17931 5587 57598 8 +10585 162 57623 30 +19049 6715 57623 30 +9335 165 57623 30 +11751 5002 57642 24 +3732 862 57736 1 +2432 372 57747 15 +12751 2185 57777 13 +12542 4398 57777 13 +14615 2644 57777 13 +1501 2325 57777 13 +24951 189 57786 29 +829 3677 57826 1 +12074 4989 57832 2 +19212 5439 57915 1 +20935 5038 57937 1 +2151 6491 57941 12 +9501 580 57945 2 +2028 1007 57988 19 +17412 6076 57996 1 +4397 5381 58008 36 +20712 4442 58095 3 +7214 1431 58095 3 +4391 1169 58095 3 +8708 6203 58125 2 +11186 839 58125 2 +4752 2411 58138 19 +14175 6360 58140 2 +12507 250 58140 2 +15661 4945 58166 34 +14 483 58166 34 +19595 1614 58166 34 +21889 3987 58168 28 +5517 4328 58256 23 +10372 906 58261 50 +20961 2196 58305 7 +18600 1740 58305 7 +9176 3365 58331 29 +18246 3352 58335 6 +19161 6539 58338 1 +19645 503 58338 1 +9779 2536 58417 38 +13800 5937 58450 16 +10695 948 58455 34 +7578 4179 58525 1 +16919 2863 58525 1 +19759 5744 58547 1 +13285 1298 58547 1 +16336 5655 58550 1 +13740 295 58550 1 +20678 447 58589 2 +18767 4542 58642 7 +13559 5090 58643 1 +2226 7038 58644 12 +1443 4 58644 12 +1408 3752 58646 1 +2982 2322 58684 21 +18327 4720 58684 21 +5435 1368 58691 1 +5543 656 58691 1 +21460 4877 58719 1 +22680 321 58817 1 +13306 5009 58869 1 +17030 6078 58914 12 +4368 964 58914 12 +876 5398 58922 31 +4951 3309 58932 1 +10921 3733 58932 1 +4401 3746 58937 4 +5640 1887 58969 6 +2269 5155 58969 6 +3187 3522 59022 1 +17489 2490 59028 10 +1997 1738 59032 1 +8497 878 59032 1 +24782 1351 59032 1 +15971 6220 59129 2 +12729 822 59129 2 +19400 3636 59161 3 +13766 461 59191 18 +7525 6153 59207 1 +8612 5949 59220 19 +9605 1093 59220 19 +12772 1093 59220 19 +2249 1093 59220 19 +12884 5799 59250 23 +2311 1072 59285 27 +1621 3235 59285 27 +11504 1055 59285 27 +5018 6721 59349 1 +17884 3422 59360 1 +6683 2656 59431 1 +13328 221 59453 3 +23129 706 59482 10 +8415 1080 59484 22 +7466 3108 59487 6 +19069 6151 59550 2 +21771 891 59550 2 +1753 6009 59598 1 +13777 326 59648 65 +17098 4480 59648 65 +4123 5166 59733 1 +1494 1876 59733 1 +16226 6404 59734 53 +17236 232 59826 3 +6965 7035 59895 12 +10670 6536 59982 41 +18245 506 59982 41 +13421 4235 60012 54 +8866 6934 60051 1 +9401 108 60051 1 +23309 108 60051 1 +3360 3627 60123 3 +11853 1403 60145 11 +12645 4590 60220 1 +14462 2452 60220 1 +288 6583 60225 6 +18881 459 60225 6 +16982 6878 60260 1 +14107 2394 60288 14 +3171 4902 60290 5 +9831 3540 60291 1 +14779 4366 60299 12 +4003 1244 60338 2 +21889 3120 60338 2 +3321 2131 60338 2 +18427 5341 60393 81 +12475 1701 60393 81 +3228 5699 60452 33 +13095 2136 60491 5 +11984 2183 60491 5 +19360 4936 60493 42 +6777 3406 60500 12 +9558 3550 60500 12 +572 711 60500 12 +5013 4741 60506 1 +3685 815 60523 1 +24092 788 60595 4 +20148 2931 60632 3 +6449 4414 60702 29 +4637 399 60740 3 +2032 3693 60750 24 +3806 1134 60750 24 +6291 3349 60750 24 +17721 3632 60752 1 +3603 274 60800 13 +3588 1968 60800 13 +3063 6764 60818 16 +9967 4593 60896 1 +4235 1072 60896 1 +4568 1442 60956 25 +981 910 61017 1 +6000 1938 61017 1 +10200 1048 61022 1 +10682 390 61043 15 +21220 4656 61062 7 +15185 2386 61062 7 +21745 996 61069 9 +66 4165 61070 67 +14723 2877 61070 67 +14901 3772 61088 3 +18257 1116 61097 11 +17820 1495 61135 2 +15881 3459 61161 1 +17032 1800 61191 12 +650 3184 61191 12 +14047 6638 61266 1 +4146 404 61266 1 +8263 6788 61267 41 +9380 6268 61270 1 +20468 774 61270 1 +20397 424 61278 56 +23851 2813 61278 56 +2493 2884 61278 56 +25247 546 61279 1 +1347 3067 61280 7 +21165 3439 61280 7 +13292 639 61282 23 +5016 1071 61282 23 +8284 3348 61282 23 +26296 226 61354 3 +2335 1297 61371 1 +21072 2278 61371 1 +15588 3467 61371 1 +5205 5468 61416 4 +7492 1574 61416 4 +5914 378 61416 4 +10211 1574 61416 4 +11254 5522 61425 2 +12183 1645 61523 58 +4266 6759 61530 1 +10136 3325 61538 49 +18472 3717 61538 49 +16710 2989 61542 29 +22961 2750 61551 18 +4634 4529 61572 24 +7937 5531 61611 68 +23356 1511 61611 68 +11644 5289 61614 38 +13281 1753 61614 38 +4999 2372 61622 70 +9105 159 61622 70 +21111 1015 61652 8 +7673 1822 61652 8 +9553 6431 61745 38 +5475 3587 61780 1 +7482 5552 61781 11 +20178 6306 61801 1 +329 70 61801 1 +5025 666 61801 1 +14538 5174 61814 8 +531 4310 61822 1 +19787 3509 61844 1 +7315 135 61844 1 +19107 4212 61855 48 +21030 1901 61885 18 +6875 3874 61888 3 +4353 1586 61938 1 +15351 204 61943 1 +11945 5293 61943 1 +18765 1749 61943 1 +7983 370 61945 1 +14876 1928 61945 1 +7776 862 61982 1 +1887 1793 62073 1 +6599 4549 62123 43 +4908 6614 62138 13 +14002 4223 62162 1 +21075 611 62166 1 +18096 6776 62199 8 +16329 266 62199 8 +9469 451 62225 1 +11012 5043 62226 1 +6964 1999 62226 1 +20040 6195 62324 5 +3240 2801 62412 1 +15398 1691 62412 1 +117 3000 62428 45 +14613 6631 62446 1 +11808 1034 62527 2 +13009 4528 62528 2 +4185 2514 62528 2 +18324 3011 62626 3 +19090 3393 62631 18 +16007 1191 62677 37 +12596 3677 62697 66 +5972 7012 62748 2 +22553 460 62826 8 +15843 5997 62827 3 +6708 867 62828 1 +17325 2621 62828 1 +10106 5421 62844 54 +16327 1423 62861 13 +251 2229 62865 19 +3466 4813 62865 19 +2648 1120 62942 4 +11404 2671 62957 10 +6773 4371 62957 10 +14000 3179 62958 15 +12781 2524 62986 5 +21511 4518 62986 5 +22730 2575 62988 1 +2649 2738 63003 6 +14410 6813 63047 5 +19204 6335 63134 29 +14978 1593 63135 20 +20882 2634 63218 1 +17992 6033 63222 1 +23566 2960 63233 18 +17888 2320 63276 56 +2990 3030 63276 56 +20351 1692 63276 56 +12483 6114 63315 7 +10302 928 63315 7 +23468 1619 63346 1 +7089 6994 63397 1 +87 1253 63463 43 +8657 4830 63482 6 +18087 4234 63487 1 +11566 636 63487 1 +17141 931 63493 10 +3104 1148 63494 9 +14469 2704 63581 32 +3007 2709 63641 10 +12488 6793 63713 57 +5167 6379 63714 3 +10956 6573 63806 1 +10346 5904 63810 1 +2484 1138 63810 1 +15358 2675 63817 1 +3251 2655 63818 18 +19675 5923 63823 1 +19169 6191 63845 14 +11176 5919 63848 16 +13156 93 63884 38 +19524 3122 63929 34 +11381 3299 63953 1 +15012 3383 63997 37 +10782 3659 63997 37 +9638 4279 64010 23 +15983 2763 64010 23 +18589 2078 64032 36 +16427 2810 64032 36 +1465 6456 64038 2 +6429 586 64038 2 +15459 5065 64045 6 +10440 4220 64084 1 +19085 4622 64115 2 +13737 6159 64210 1 +20448 883 64210 1 +2241 1966 64226 12 +6606 3456 64234 3 +591 2233 64289 1 +14082 2440 64289 1 +11528 4861 64321 1 +10258 2532 64332 1 +5784 4331 64421 22 +2543 4175 64460 2 +2554 1406 64477 5 +21318 285 64552 3 +20079 5078 64593 1 +21328 787 64593 1 +22218 2660 64596 1 +19015 4382 64596 1 +16383 1179 64596 1 +238 5978 64672 22 +6973 3597 64677 3 +16210 4982 64678 21 +4513 1206 64707 20 +5823 4691 64709 1 +10639 5978 64777 40 +15247 1064 64777 40 +7003 582 64777 40 +3789 482 64777 40 +21024 2991 64847 73 +9301 4878 64879 13 +20175 2958 64931 1 +1232 926 64934 1 +14484 4654 65006 1 +6800 2388 65006 1 +20740 4875 65077 2 +7922 1531 65081 5 +15123 5828 65139 15 +9789 654 65218 7 +806 6749 65224 1 +4871 6239 65232 1 +24402 1880 65245 19 +22103 380 65261 4 +497 4244 65322 2 +5090 4541 65341 77 +7662 2501 65341 77 +4470 872 65341 77 +20419 1745 65353 1 +11679 5420 65388 19 +4883 1622 65388 19 +8677 1833 65462 5 +18425 351 65466 6 +8902 5573 65472 1 +8995 4708 65542 2 +24511 1915 65631 4 +4132 1628 65631 4 +5365 6714 65638 4 +10172 6570 65689 20 +3642 472 65689 20 +21976 662 65781 1 +8810 5191 65817 12 +19882 4020 65898 54 +15674 1034 65913 64 +17403 5961 65925 9 +22217 1081 65925 9 +22304 2226 65930 1 +1472 3664 65930 1 +3901 3107 66007 13 +2661 3935 66007 13 +119 2993 66031 8 +9195 1042 66052 1 +2918 5642 66052 1 +2798 5447 66093 10 +11314 991 66093 10 +1250 604 66093 10 +6722 3725 66158 1 +8694 228 66158 1 +1555 1988 66158 1 +17355 5193 66226 1 +13351 3112 66324 14 +19516 4759 66358 8 +24045 28 66359 17 +19717 1017 66360 4 +15366 5934 66361 11 +22699 188 66361 11 +14609 6973 66366 1 +20140 3480 66372 10 +3850 427 66372 10 +10450 5544 66380 1 +9568 2599 66464 8 +1027 4008 66464 8 +14827 5339 66476 51 +16559 1703 66476 51 +25129 2 66570 10 +4413 627 66570 10 +6274 5755 66570 10 +11643 6802 66651 3 +14367 1758 66718 6 +11814 1054 66720 30 +7265 1782 66720 30 +18139 4107 66729 21 +10179 5852 66767 5 +16254 1190 66767 5 +1980 3897 66770 1 +17245 4187 66776 1 +1645 4323 66781 18 +13618 1770 66781 18 +3380 4555 66821 10 +8894 2487 66821 10 +8320 6705 66824 5 +6715 5254 66844 18 +17668 1788 66844 18 +19137 6503 66853 22 +21080 3598 66888 1 +9159 4059 66929 1 +14133 2814 66930 6 +22588 2724 66956 5 +16418 532 66991 2 +4614 740 67004 23 +11152 4161 67006 35 +23727 2698 67035 24 +17073 261 67065 3 +14486 1581 67090 17 +4078 3031 67090 17 +15195 3549 67107 1 +15406 4910 67110 70 +20871 2132 67110 70 +3260 4204 67114 39 +1782 920 67116 1 +3081 2629 67204 36 +1647 226 67234 3 +6962 3558 67289 57 +14411 6533 67290 1 +10583 5875 67325 1 +1290 1167 67325 1 +13961 4579 67403 3 +7079 2739 67438 1 +13021 4303 67438 1 +7667 5200 67443 1 +17104 1842 67443 1 +24140 477 67484 21 +17636 2580 67484 21 +18023 1626 67518 1 +15596 500 67570 1 +19233 2822 67669 8 +4652 5723 67716 13 +6414 6388 67721 1 +5513 654 67721 1 +16145 1116 67755 38 +698 6486 67762 1 +2188 149 67786 23 +11828 1249 67839 1 +9402 5793 67839 1 +6649 1249 67839 1 +8142 6117 67840 15 +19401 7028 67852 4 +10053 5582 67870 2 +22655 297 67960 1 +15857 5231 67961 24 +6142 2682 67972 2 +1347 949 67972 2 +15034 3411 67972 2 +12942 3306 68019 1 +15260 2147 68058 1 +18886 214 68058 1 +19770 2249 68090 1 +16121 2830 68093 1 +21080 4181 68105 1 +2798 2182 68105 1 +12124 4447 68113 10 +7921 3226 68115 1 +16414 4545 68163 9 +2975 4625 68200 1 +1091 111 68214 3 +7746 2831 68216 13 +8835 406 68221 1 +2837 5539 68221 1 +13215 1097 68221 1 +7099 6495 68295 1 +6506 437 68352 14 +19829 3187 68412 10 +13872 330 68412 10 +8025 4185 68417 1 +6132 3238 68422 19 +8320 3912 68440 1 +17487 2275 68471 20 +5453 6702 68490 3 +11888 932 68491 37 +9744 5767 68491 37 +21359 1856 68526 23 +9335 1643 68532 5 +7227 791 68570 5 +5838 4636 68570 5 +1773 1752 68662 7 +15443 5290 68662 7 +1409 6681 68717 21 +17933 361 68717 21 +9413 745 68728 2 +19404 2006 68729 5 +9355 263 68729 5 +13839 1968 68770 2 +12303 4249 68770 2 +5397 1263 68840 55 +1728 3610 68847 1 +20478 604 68847 1 +17791 5651 68874 1 +2018 109 68909 20 +3793 5411 68911 1 +21748 593 68911 1 +10680 1038 68911 1 +13585 5176 68996 13 +2290 5886 69003 10 +16427 652 69003 10 +20480 4125 69009 1 +19455 4525 69010 6 +5509 2348 69010 6 +17281 6887 69032 3 +9063 3667 69079 6 +5323 3276 69105 20 +17688 4713 69109 30 +9623 3989 69146 1 +7808 3053 69146 1 +7217 4450 69219 7 +11542 3034 69248 2 +11965 4019 69254 1 +17946 3023 69254 1 +18667 142 69259 1 +17254 2471 69259 1 +5212 137 69259 1 +19384 3917 69277 4 +13362 2398 69277 4 +13167 3249 69278 17 +22786 902 69278 17 +894 2891 69278 17 +19961 2149 69356 5 +2788 656 69367 1 +1402 3042 69367 1 +18114 4000 69367 1 +16107 914 69369 7 +15978 3586 69418 8 +18621 3456 69418 8 +11830 943 69418 8 +21104 5092 69499 14 +20416 4444 69553 26 +7841 1065 69563 6 +22293 2442 69645 7 +11679 2104 69731 23 +405 6708 69746 1 +9086 4791 69793 16 +25356 431 69818 1 +17645 1673 69884 4 +7041 3459 69886 6 +10292 3566 69950 10 +4900 1925 69967 5 +17237 4905 69997 6 +19622 2137 69997 6 +3309 2137 69997 6 +18562 5360 70005 4 +1671 1367 70005 4 +12147 3484 70025 1 +8721 3558 70025 1 +8506 2318 70027 17 +10006 2287 70027 17 +7595 3178 70027 17 +19079 2279 70032 68 +7437 4921 70044 17 +3447 2121 70044 17 +2326 4667 70078 1 +20061 1385 70101 8 +6970 4327 70110 1 +3176 2715 70110 1 +22621 599 70143 52 +14710 2765 70188 7 +7994 967 70188 7 +16622 2202 70193 24 +5717 4840 70193 24 +8832 2201 70201 1 +11473 4841 70201 1 +10863 1985 70207 1 +13702 3492 70211 5 +19569 1936 70211 5 +5506 6046 70212 19 +15355 4361 70214 90 +18022 1480 70214 90 +1040 2681 70214 90 +5916 5254 70270 8 +6226 1788 70270 8 +17816 1788 70270 8 +10 5843 70272 19 +20235 2980 70368 1 +23598 2714 70396 4 +16387 1761 70417 7 +19866 745 70417 7 +8755 4536 70417 7 +8798 5129 70422 17 +20428 1913 70422 17 +19479 3142 70513 1 +19317 138 70513 1 +15734 2009 70555 1 +16114 5784 70587 2 +5929 6326 70665 27 +4348 716 70665 27 +2892 3752 70699 18 +17713 4290 70731 39 +3679 3643 70801 36 +10648 6557 70875 8 +18525 365 70914 2 +10290 549 70927 4 +647 3410 70942 27 +22925 2753 71035 2 +7465 1303 71035 2 +9245 2986 71035 2 +16849 5306 71129 1 +8279 2317 71145 1 +1620 3232 71145 1 +12128 1043 71145 1 +8832 6778 71194 6 +12185 1404 71270 13 +10944 4670 71288 1 +14658 1580 71311 1 +11051 211 71327 1 +44 2908 71327 1 +2221 992 71327 1 +11157 3662 71327 1 +8817 105 71327 1 +11488 6689 71348 1 +14333 5410 71371 19 +1436 835 71382 16 +7756 3638 71382 16 +6540 4945 71406 92 +8569 1487 71412 31 +13587 1191 71424 13 +9767 5267 71489 1 +7946 1377 71499 2 +4433 5919 71538 5 +6988 2191 71561 1 +17076 2049 71627 1 +18093 3834 71627 1 +11450 2191 71627 1 +9212 3735 71652 5 +19990 2807 71652 5 +16164 500 71652 5 +17129 4375 71657 24 +19355 903 71702 5 +5746 6056 71726 1 +16143 4961 71730 7 +3339 4508 71732 23 +12322 5759 71735 16 +15843 5514 71759 8 +18593 1381 71759 8 +23095 1528 71759 8 +23508 983 71770 4 +12453 426 71804 20 +13132 910 71804 20 +15802 6234 71838 1 +1049 3904 71898 1 +6779 3138 71898 1 +14764 6942 71900 25 +5108 555 71966 16 +20945 1065 72063 6 +19338 4353 72067 98 +5977 433 72070 1 +16698 4425 72113 2 +4082 1407 72113 2 +18945 6044 72114 28 +1742 3291 72115 59 +16953 812 72188 12 +18013 1261 72214 49 +909 2306 72227 47 +4126 2526 72262 1 +22435 1299 72297 1 +20372 653 72297 1 +16820 2061 72297 1 +1553 6616 72321 5 +512 6203 72337 9 +12866 839 72337 9 +12144 6801 72349 1 +19624 5373 72391 8 +16003 5910 72442 13 +17628 1132 72442 13 +11770 3415 72444 1 +3065 5047 72459 17 +24121 1513 72459 17 +8650 5913 72462 2 +21306 1129 72462 2 +7151 607 72463 32 +21714 900 72463 32 +18890 2887 72487 26 +23772 2502 72534 58 +20318 5839 72630 1 +17274 5468 72656 63 +19916 2004 72701 11 +21232 3301 72701 11 +8404 1493 72701 11 +15904 5264 72709 6 +9995 6790 72735 22 +3934 1486 72738 1 +3957 6300 72742 3 +6140 3016 72746 1 +11485 444 72751 2 +1114 472 72794 1 +15343 6676 72881 14 +2235 4450 72883 1 +14996 2592 72883 1 +5611 47 72897 2 +4991 1006 72958 45 +2546 6812 73004 1 +6859 1392 73074 57 +7892 2163 73125 1 +164 3047 73133 1 +7421 471 73135 23 +15535 916 73135 23 +16462 2132 73162 24 +8262 3489 73165 81 +5595 1375 73165 81 +16283 2178 73165 81 +5412 1964 73209 1 +10739 4634 73218 1 +6426 2408 73218 1 +20514 5230 73251 9 +3473 2665 73253 6 +16439 4350 73270 1 +31 2692 73270 1 +21308 1580 73312 1 +14199 2942 73312 1 +11350 2832 73365 3 +16401 228 73369 1 +6375 3339 73375 1 +12617 1863 73375 1 +9570 3603 73378 11 +17509 1863 73440 4 +1461 1445 73440 4 +20117 2647 73537 10 +14693 931 73538 8 +18165 1824 73539 1 +16739 6624 73626 14 +2824 4547 73634 4 +631 693 73634 4 +13473 2878 73681 16 +2395 2629 73734 32 +23881 2107 73740 2 +19818 840 73743 23 +8931 3319 73746 7 +5010 1723 73781 1 +22820 1713 73784 2 +7664 1997 73784 2 +13968 2702 73847 1 +2422 3339 73898 14 +17838 1638 73914 8 +21537 1612 74009 4 +18256 464 74078 1 +2526 3042 74080 7 +5253 432 74080 7 +22760 3238 74088 3 +4944 181 74088 3 +10153 6747 74169 7 +5553 5458 74181 6 +2471 4529 74192 1 +20826 2122 74268 21 +18218 4802 74268 21 +19274 5738 74276 2 +21004 1304 74276 2 +18814 1671 74277 1 +20234 5303 74329 66 +16124 1522 74354 40 +10677 2823 74390 41 +5757 3498 74396 20 +7981 3056 74397 18 +8078 6706 74409 4 +19912 5158 74440 49 +11856 5461 74448 5 +915 6969 74454 7 +4121 1849 74495 38 +11659 6326 74515 1 +10247 716 74515 1 +3960 1623 74517 2 +12447 5994 74587 1 +24609 149 74588 43 +20389 21 74588 43 +13043 4859 74596 1 +23093 1435 74650 15 +19495 5947 74670 1 +2532 416 74670 1 +10676 6970 74675 27 +16978 4513 74722 1 +7147 5309 74728 5 +13268 1019 74731 16 +15348 3799 74731 16 +673 2224 74731 16 +5409 6697 74732 38 +15572 1032 74814 14 +21523 2730 74832 3 +20178 2637 74832 3 +4855 4464 74877 1 +15563 4586 74921 3 +4500 2456 74921 3 +8677 1309 74959 1 +4153 4249 74964 14 +1069 2793 74964 14 +5776 6867 74985 14 +822 5537 74996 31 +4659 830 75005 2 +5314 5145 75091 1 +14770 1897 75091 1 +3176 904 75107 1 +19809 1416 75135 3 +10034 5626 75135 3 +5037 1687 75175 10 +12314 413 75178 1 +6821 1318 75194 4 +3119 1945 75199 1 +8196 5097 75199 1 +15968 3122 75210 4 +10899 3331 75210 4 +9420 761 75224 10 +1365 5115 75269 1 +15989 308 75367 14 +17479 6700 75375 2 +317 752 75437 1 +20298 57 75470 14 +23987 398 75478 3 +19489 847 75484 2 +12255 6195 75484 2 +15279 1426 75498 17 +4515 3295 75595 2 +10316 2110 75628 1 +6414 5395 75727 32 +5375 5870 75746 2 +13771 3429 75754 2 +758 6345 75771 5 +1789 6191 75786 1 +10917 851 75786 1 +16601 5453 75871 4 +11280 2746 75882 1 +14695 5641 75890 64 +18066 1401 75890 64 +7083 5596 75898 1 +2895 179 75909 1 +2220 6693 75909 1 +2512 2388 75919 2 +382 1618 75925 1 +10971 4372 75992 2 +9929 5231 76005 27 +10222 3104 76021 5 +7799 2599 76048 9 +3835 4443 76048 9 +18534 2155 76100 3 +18858 2113 76100 3 +20941 4850 76119 64 +3181 5763 76126 1 +1185 1279 76126 1 +7965 4270 76197 1 +16335 2972 76260 28 +24716 1040 76346 1 +2511 6461 76436 2 +12881 1679 76446 1 +11159 5363 76446 1 +24363 384 76447 3 +19979 4642 76447 3 +5129 6005 76512 3 +389 2416 76547 1 +15239 4626 76547 1 +6840 1097 76611 6 +12514 1422 76611 6 +8718 915 76614 9 +13067 5263 76621 8 +1912 2437 76629 2 +6370 4251 76721 2 +17954 3010 76724 1 +2326 5226 76758 1 +11969 4591 76789 15 +9550 531 76789 15 +2181 1920 76789 15 +25831 845 76861 2 +2876 5924 76861 2 +20172 6342 76881 1 +22476 108 76881 1 +18173 700 76881 1 +8804 188 76907 1 +805 2311 76907 1 +14153 4543 76907 1 +7958 4112 76908 9 +15666 2930 76908 9 +7160 6491 76912 2 +99 551 76912 2 +685 1549 76981 2 +13266 5669 77064 1 +25305 1342 77072 1 +1877 4590 77072 1 +19085 3450 77084 77 +6327 4550 77108 1 +8384 4129 77171 2 +6697 4344 77172 1 +19187 2698 77172 1 +25080 692 77212 1 +15210 6166 77250 22 +3957 3747 77293 7 +900 2879 77299 6 +8010 3324 77334 27 +13614 3237 77336 4 +9044 1233 77336 4 +7058 2572 77336 4 +4080 586 77336 4 +1208 2116 77365 1 +1334 2433 77365 1 +7309 1298 77366 75 +14921 3197 77366 75 +5297 46 77382 4 +7507 2997 77382 4 +1328 2709 77446 3 +996 1235 77456 2 +2044 1646 77461 2 +369 5925 77462 4 +14535 3430 77473 1 +21661 1802 77473 1 +8812 4915 77474 2 +12314 1347 77474 2 +623 2127 77474 2 +15768 3229 77481 1 +22969 1958 77504 21 +1084 1214 77558 3 +12350 2410 77561 1 +14406 5077 77584 8 +19645 4828 77587 8 +4701 4040 77613 5 +19687 5208 77639 35 +3986 5324 77645 5 +1680 687 77645 5 +13159 1155 77702 1 +23838 1882 77712 6 +8299 158 77714 9 +2854 1612 77714 9 +6840 4710 77714 9 +10751 928 77758 1 +17083 3071 77799 1 +14454 1589 77806 1 +5862 885 77811 1 +611 3869 77811 1 +1912 4090 77813 9 +516 2460 77876 3 +9886 1248 77876 3 +21538 3358 77902 7 +16221 5089 77910 6 +5473 3653 77946 63 +4485 3389 77946 63 +18672 624 78028 1 +2010 5331 78103 27 +1448 5375 78104 1 +13649 871 78104 1 +9786 796 78104 1 +9606 2217 78105 1 +9908 4825 78105 1 +8175 545 78105 1 +15198 172 78176 14 +4652 2802 78224 1 +20489 4263 78285 30 +21037 2766 78285 30 +15954 528 78285 30 +14213 3740 78302 18 +13223 4963 78304 1 +16536 186 78391 1 +22265 1058 78396 1 +20013 2992 78481 1 +12630 6307 78518 9 +11378 4543 78579 8 +13609 2499 78579 8 +23466 1550 78610 1 +22249 4340 78665 1 +2525 68 78665 1 +18079 2634 78665 1 +17173 2385 78671 26 +1649 1478 78671 26 +14805 2170 78696 17 +15688 4484 78769 1 +12559 3801 78838 2 +18121 6781 78852 16 +2935 261 78852 16 +16421 4884 78905 1 +18095 1366 78939 2 +22127 3653 78939 2 +17428 6185 78964 35 +20543 2274 78972 25 +15298 3640 78972 25 +16881 6796 79015 14 +6001 1835 79020 1 +18627 4367 79090 75 +14070 2158 79115 3 +7174 1547 79148 24 +9927 1262 79150 1 +18084 6559 79238 8 +10366 1211 79303 17 +761 5545 79310 1 +22923 627 79310 1 +8375 6052 79324 89 +19763 3301 79345 4 +437 4691 79346 49 +6222 3938 79347 27 +6054 6344 79389 18 +1990 698 79389 18 +6135 5098 79407 7 +12686 1944 79407 7 +4186 3854 79412 10 +16470 3188 79412 10 +8468 32 79419 1 +20317 4285 79420 1 +9386 2757 79420 1 +4256 3674 79430 9 +657 5782 79457 9 +13466 5586 79461 1 +6132 1456 79461 1 +3058 1893 79528 59 +3878 7002 79546 1 +14156 6403 79547 13 +22682 463 79547 13 +28 1097 79597 44 +20144 5663 79597 44 +15231 4523 79621 3 +11761 6129 79626 1 +14149 913 79626 1 +14781 6472 79642 1 +13922 570 79642 1 +11181 5416 79736 1 +14924 110 79774 1 +15701 1984 79822 38 +12760 1977 79893 1 +17123 5065 79893 1 +19459 3188 79897 30 +11578 6789 79907 5 +195 253 79907 5 +1110 6328 79928 62 +13026 714 79928 62 +21772 2882 79949 3 +3105 4160 79949 3 +18085 6446 79950 17 +755 2736 79984 6 +18930 4346 79994 25 +7231 2696 79994 25 +18538 2362 80032 3 +20611 1600 80050 18 +19407 190 80119 22 +227 4766 80122 8 +14248 1520 80135 1 +19903 1168 80135 1 +17856 5388 80146 3 +19600 513 80147 1 +4967 1129 80169 1 +13485 1321 80169 1 +21034 2973 80243 4 +9076 5293 80248 59 +15190 5964 80277 1 +1482 3407 80307 1 +22948 3372 80339 1 +15647 1636 80373 20 +1632 5141 80373 20 +2291 265 80373 20 +7790 265 80373 20 +6452 630 80380 38 +23636 2056 80397 31 +5563 5270 80402 11 +13957 1772 80402 11 +6110 3168 80404 1 +13311 2231 80442 1 +6825 5209 80450 94 +13369 1833 80450 94 +21956 1915 80515 7 +22584 859 80515 7 +15237 5391 80522 27 +197 3745 80523 7 +8596 491 80568 39 +16405 6159 80568 39 +10941 2204 80636 2 +1371 4838 80636 2 +12218 3802 80642 1 +8363 1685 80660 1 +420 3029 80725 1 +12746 2013 80777 4 +20988 2462 80784 2 +6803 2536 80785 1 +9142 5956 80838 2 +17701 1086 80838 2 +18190 868 80915 16 +22207 2031 80918 14 +18506 1666 80919 6 +12296 2212 81012 5 +21967 520 81012 5 +6223 1929 81016 49 +17911 2133 81017 1 +15454 4827 81029 14 +1507 3816 81032 1 +10262 6703 81087 1 +13599 339 81087 1 +19193 5597 81123 39 +6801 4892 81191 1 +7286 744 81266 7 +18984 2548 81266 7 +1426 5977 81347 1 +7697 4617 81349 10 +125 4984 81378 3 +18886 508 81440 2 +21638 4563 81440 2 +16810 1910 81440 2 +17688 5259 81495 1 +12287 3256 81580 1 +15379 32 81582 10 +13248 2559 81582 10 +1809 4230 81582 10 +18952 253 81582 10 +12865 1396 81667 14 +7083 1042 81763 6 +19925 3705 81763 6 +12333 1416 81765 1 +9209 3749 81771 1 +16825 6984 81815 25 +22924 1111 81819 3 +5087 5931 81819 3 +9603 6474 81827 1 +17263 3496 81829 2 +13477 2540 81855 40 +12022 1329 81855 40 +1106 4451 81875 1 +4103 1810 81875 1 +8303 4394 81876 30 +16509 2648 81876 30 +8606 5657 81958 43 +25823 351 81961 6 +9207 4060 81961 6 +18728 1500 81991 1 +4486 5149 81992 3 +3598 1893 81992 3 +575 6474 81995 28 +4291 3658 82007 11 +2050 5438 82011 2 +3030 1604 82011 2 +18775 363 82011 2 +6181 6176 82032 1 +13301 4797 82085 3 +8520 6547 82088 1 +15032 495 82088 1 +20451 258 82116 1 +19531 1550 82116 1 +18455 3107 82116 1 +18128 5606 82121 45 +11862 3608 82171 1 +4905 3179 82195 6 +22508 2553 82195 6 +12609 3491 82204 9 +2100 694 82211 5 +13291 3461 82217 6 +7742 2644 82237 76 +16711 5565 82268 6 +18811 1477 82268 6 +4247 4100 82288 1 +2178 2942 82288 1 +20753 873 82288 1 +14707 6771 82294 6 +19954 1009 82330 1 +5832 4956 82336 1 +8961 5283 82355 13 +3708 1784 82360 1 +22165 2617 82367 18 +12851 2290 82457 1 +6690 4724 82468 27 +21008 1344 82470 18 +483 5109 82474 87 +8417 2430 82481 1 +11291 3606 82481 1 +5986 4112 82487 14 +15058 4183 82488 1 +4993 670 82488 1 +14183 2189 82488 1 +109 1533 82489 2 +19644 5494 82489 2 +13139 2869 82534 2 +21363 3131 82535 75 +17473 6843 82564 58 +9907 6244 82621 6 +365 1449 82656 1 +4724 6902 82708 85 +16176 1300 82749 1 +14752 5742 82749 1 +4042 4896 82806 32 +23233 1421 82806 32 +1630 725 82806 32 +3418 4839 82814 24 +21232 3404 82851 8 +7434 1174 82851 8 +2883 5382 82879 6 +20122 1305 82879 6 +22517 895 82880 7 +4353 875 82887 1 +2327 3771 82966 27 +3738 1022 82969 33 +13153 2608 83058 4 +20347 2622 83058 4 +17778 4819 83076 1 +9897 4850 83109 3 +5955 894 83110 1 +16751 1698 83150 1 +15246 4317 83152 9 +19480 2038 83162 28 +19120 661 83162 28 +102 3085 83168 25 +12578 6012 83170 16 +20257 2259 83233 25 +6294 3008 83238 1 +11389 6373 83244 10 +6076 6535 83303 1 +628 507 83303 1 +21879 533 83337 1 +21199 3497 83342 1 +848 3240 83343 1 +8029 2995 83366 2 +6109 1530 83385 24 +12199 5512 83385 24 +5041 1041 83445 1 +13270 1169 83445 1 +16270 5532 83459 2 +16971 919 83487 1 +24798 336 83543 36 +6869 4143 83571 1 +15613 108 83644 1 +19724 5767 83644 1 +4554 4281 83658 50 +5740 1368 83658 50 +3227 2334 83667 12 +10472 2116 83670 7 +3769 1715 83671 1 +5046 5302 83768 45 +7662 1642 83777 1 +8312 1208 83777 1 +4163 1154 83815 1 +4679 3588 83815 1 +19937 309 83861 8 +5572 5103 83929 1 +2883 1939 83929 1 +5680 3783 83961 1 +5732 3146 83961 1 +2847 1737 83993 4 +10922 1297 83995 24 +14304 5745 83995 24 +10756 1758 84076 6 +11819 4838 84076 6 +2902 869 84090 23 +2965 6190 84170 1 +21966 3010 84173 7 +19650 3839 84251 1 +2026 1016 84251 1 +12755 260 84337 9 +11262 3340 84358 1 +10368 6617 84403 1 +353 1841 84405 3 +16561 7042 84409 13 +10235 837 84415 1 +12044 130 84433 1 +5651 317 84445 1 +12918 6218 84445 1 +8500 1131 84448 24 +7592 556 84456 6 +893 3844 84456 6 +20550 1206 84460 10 +4814 3530 84540 8 +8606 7022 84551 38 +7998 1652 84554 1 +6809 5390 84554 1 +14746 461 84554 1 +13254 1191 84554 1 +19263 3223 84555 1 +15156 2367 84581 4 +22952 2040 84581 4 +9103 2635 84581 4 +13843 4022 84590 7 +3853 4034 84625 8 +373 3008 84625 8 +5192 3608 84630 22 +16245 1566 84664 11 +15621 3766 84756 2 +12506 6649 84759 1 +21665 1557 84770 1 +3128 6566 84840 3 +24000 476 84840 3 +1618 5525 84846 1 +12205 1517 84846 1 +5826 5951 84847 1 +1559 1091 84847 1 +5121 3249 84848 5 +9962 4825 84851 4 +14201 5434 84922 1 +20457 3911 84940 1 +11858 439 84958 1 +14495 6094 85054 4 +1028 831 85057 10 +22663 2011 85057 10 +8901 2571 85059 1 +16931 4257 85092 1 +16860 4513 85094 1 +23275 1027 85094 1 +20722 1502 85094 1 +14378 651 85094 1 +2928 4014 85124 1 +14085 6739 85186 8 +12895 5247 85226 1 +3550 1399 85279 32 +15744 2240 85283 1 +12528 2309 85285 70 +15998 4733 85285 70 +8576 3921 85343 1 +4197 3121 85343 1 +9502 4015 85387 1 +12023 2409 85387 1 +10661 3871 85388 27 +15846 5151 85404 7 +10226 1558 85404 7 +6495 5296 85409 27 +26042 456 85466 35 +9632 4681 85466 35 +8072 4410 85468 4 +24532 309 85475 1 +21350 27 85515 2 +1510 5415 85523 45 +14321 1627 85523 45 +24135 240 85535 1 +4752 5961 85628 6 +21554 2253 85708 1 +21384 89 85773 39 +11883 2333 85785 1 +17298 3797 85873 3 +6616 5912 85876 1 +21415 3996 85882 15 +13097 376 85884 1 +10382 5469 85978 1 +22906 733 86003 1 +24788 641 86003 1 +5462 2989 86012 1 +6116 2551 86050 19 +19961 1490 86050 19 +7174 4788 86051 65 +5730 5384 86053 9 +7370 186 86082 9 +17254 4012 86082 9 +2915 2844 86082 9 +19329 604 86120 34 +17187 6005 86120 34 +1826 1037 86120 34 +13573 3370 86175 1 +12542 3672 86175 1 +14282 2641 86175 1 +15984 2641 86175 1 +20330 5007 86248 6 +4524 2035 86248 6 +21605 1866 86262 1 +17058 1428 86274 1 +9674 1766 86274 1 +16046 1876 86339 17 +7559 2149 86340 4 +7084 2582 86340 4 +18703 497 86435 4 +8048 3774 86448 9 +12145 6958 86473 44 +16983 4068 86531 18 +898 93 86531 18 +1068 3159 86546 3 +18379 3649 86547 5 +24240 1567 86553 1 +24101 177 86578 20 +20062 2410 86593 5 +14867 3375 86593 5 +18733 73 86593 5 +2397 706 86593 5 +10173 478 86593 5 +9303 1650 86652 1 +21577 1940 86657 13 +4405 445 86657 13 +13373 1340 86657 13 +21541 4001 86664 11 +16626 5443 86673 79 +5551 3943 86705 1 +5215 3056 86773 5 +23240 902 86776 1 +20076 4548 86820 57 +19268 5953 86831 1 +13279 6503 86858 1 +9852 2742 86911 10 +10182 760 86939 1 +13796 4226 86939 1 +19840 3821 87013 71 +7827 1259 87074 51 +3242 1080 87137 5 +3083 1699 87137 5 +10861 6274 87140 2 +2468 4627 87177 4 +14291 2692 87201 1 +11758 4350 87201 1 +12752 2874 87202 61 +1117 4168 87202 61 +23081 2691 87227 45 +19181 1020 87227 45 +20212 4575 87268 2 +13431 2467 87268 2 +13374 6062 87272 1 +2090 6526 87292 6 +9068 1848 87294 23 +4817 2931 87319 14 +9655 1453 87319 14 +19361 2658 87319 14 +12660 4495 87358 9 +9929 47 87367 1 +1616 5757 87389 4 +22734 1285 87389 4 +6580 4222 87391 27 +940 1960 87391 27 +10378 860 87391 27 +8280 2319 87440 6 +12912 2569 87443 46 +21927 1648 87443 46 +20273 2311 87450 1 +14834 5277 87503 14 +6569 1765 87503 14 +7452 2046 87512 1 +7537 4996 87512 1 +1771 1961 87512 1 +15154 1184 87514 53 +5858 6671 87537 3 +10312 3680 87538 60 +7006 1117 87538 60 +19779 2245 87538 60 +7745 2417 87584 1 +8884 2112 87585 1 +13532 4930 87585 1 +16737 4550 87594 1 +25293 1140 87594 1 +19245 1352 87594 1 +14677 1352 87594 1 +21807 1486 87638 1 +805 1410 87652 2 +2553 1057 87654 9 +1409 931 87728 37 +8101 4876 87732 1 +8173 805 87732 1 +5022 1173 87732 1 +8120 4343 87775 19 +18661 6415 87831 3 +2070 3366 87900 12 +2422 3389 87900 12 +21 2809 87995 25 +13919 5725 88008 22 +12551 342 88008 22 +4781 7012 88077 1 +17493 280 88079 61 +15480 1761 88150 4 +4778 1886 88160 4 +17718 5528 88164 5 +17193 2247 88182 1 +9003 4529 88277 13 +6560 6250 88285 1 +7449 779 88290 45 +849 741 88302 1 +6782 5652 88354 36 +25626 378 88354 36 +7814 3855 88370 1 +1376 641 88370 1 +6410 2546 88370 1 +5151 1142 88370 1 +11383 4125 88377 2 +12490 6289 88398 1 +18868 753 88398 1 +12253 5477 88406 5 +19062 4615 88482 19 +12949 2305 88489 3 +4196 726 88520 78 +7954 2170 88534 3 +6919 820 88588 1 +22643 118 88593 14 +7714 3183 88604 1 +12593 2037 88604 1 +16426 5846 88619 1 +9615 2748 88655 25 +2102 4723 88670 44 +12060 1336 88672 1 +2145 1256 88673 1 +3792 5786 88673 1 +14326 5362 88730 1 +345 592 88790 51 +13446 5940 88816 30 +545 113 88843 17 +21671 1609 88888 11 +7923 4654 88888 11 +2419 4165 88899 8 +9572 2877 88899 8 +6613 1487 88997 1 +15729 1492 89012 19 +2748 4341 89019 4 +13420 2168 89019 4 +1403 533 89019 4 +23897 565 89024 1 +15787 4562 89026 4 +7008 2480 89026 4 +17469 975 89061 5 +2694 1768 89061 5 +9842 1231 89062 50 +2431 406 89062 50 +8109 937 89076 4 +11629 5496 89088 8 +12598 6155 89089 33 +14359 6059 89164 1 +15845 2887 89191 51 +16534 4155 89191 51 +6424 4455 89195 1 +23288 138 89199 3 +12830 6178 89199 3 +5105 329 89199 3 +12372 2587 89201 39 +19263 2164 89278 7 +11328 6826 89300 47 +8545 1410 89327 1 +7886 6512 89353 25 +3836 5043 89359 1 +4117 1999 89359 1 +1610 468 89363 1 +19845 440 89439 18 +4288 440 89449 3 +20416 2491 89540 28 +17811 699 89585 5 +16396 5911 89593 1 +10339 6586 89671 1 +4784 6507 89679 24 +10152 535 89679 24 +1688 535 89679 24 +21565 3709 89739 13 +3774 997 89739 13 +6300 2451 89799 4 +7625 2234 89891 5 +16845 3995 89902 1 +1883 3047 89902 1 +102 151 89910 7 +1304 3362 89910 7 +12656 135 89960 26 +20236 3771 89961 4 +11839 5390 90029 8 +8918 4842 90031 5 +10153 877 90036 23 +20769 5855 90036 23 +11353 310 90036 23 +25187 715 90087 1 +2746 752 90087 1 +2407 5019 90087 1 +18898 5096 90105 1 +9511 2581 90163 24 +18117 2104 90169 21 +5305 2501 90210 16 +13116 330 90242 60 +16561 5690 90254 1 +4681 1352 90254 1 +7502 6585 90299 42 +15641 3533 90300 30 +20708 302 90367 1 +5619 4240 90384 7 +14934 6321 90412 1 +15904 721 90412 1 +2952 4491 90489 3 +7021 3614 90496 1 +11381 6266 90529 3 +18239 953 90596 10 +10280 973 90596 10 +11544 6744 90602 42 +6477 2035 90623 2 +13508 4232 90623 2 +5147 2355 90651 46 +4269 3068 90731 1 +15306 3634 90779 3 +17290 6725 90818 79 +120 1584 90829 14 +6056 1645 90829 14 +4060 3438 90829 14 +16035 5 90829 14 +15308 5331 90845 4 +13142 1711 90845 4 +891 4502 90927 37 +10244 2540 90927 37 +13491 2707 91009 2 +17288 2583 91009 2 +22448 2906 91074 3 +12068 4144 91160 1 +24001 873 91165 3 +11698 3648 91165 3 +3403 5475 91173 1 +3724 274 91177 13 +21544 3662 91194 1 +6278 2323 91194 1 +14155 1057 91194 1 +18848 3794 91267 2 +7304 4701 91274 6 +7243 627 91352 3 +8681 6944 91363 1 +5346 98 91363 1 +2792 1308 91448 74 +2264 5708 91452 28 +17877 3498 91454 14 +18237 6166 91456 1 +6700 876 91456 1 +23448 833 91475 27 +9730 4877 91513 10 +871 2165 91513 10 +14840 1234 91518 13 +14881 6508 91572 1 +25619 740 91600 47 +17842 3620 91628 23 +22675 1523 91695 1 +2324 6422 91702 1 +23371 360 91786 1 +16522 3303 91809 1 +8497 4025 91880 1 +727 6727 91961 21 +12023 2113 91967 15 +6250 6696 91975 1 +4722 346 91975 1 +8021 1467 91983 34 +8425 2786 91986 2 +6590 3856 92057 2 +4787 521 92057 2 +18497 6654 92085 48 +11251 6540 92087 28 +23637 502 92087 28 +19603 5689 92127 38 +11463 2033 92135 1 +4614 6816 92139 1 +17798 226 92139 1 +3423 2700 92141 1 +18942 575 92175 8 +8957 5293 92271 3 +2765 5141 92272 15 +9576 509 92273 1 +9620 4244 92300 23 +24764 120 92344 1 +4313 4237 92345 1 +18326 2916 92441 1 +13121 3248 92441 1 +16613 35 92441 1 +25092 843 92441 1 +15590 5590 92451 7 +2505 4153 92466 1 +19530 440 92473 9 +15185 4592 92557 1 +4241 6651 92575 7 +2538 4397 92593 12 +5692 2265 92593 12 +18057 6050 92595 36 +8829 798 92614 1 +21422 824 92618 4 +3533 828 92618 4 +19328 5858 92628 8 +8458 1184 92628 8 +3203 4256 92643 1 +23407 1428 92693 67 +14841 313 92758 9 +7166 959 92758 9 +19338 6753 92782 22 +2032 3360 92784 11 +5681 6840 92785 11 +55 5255 92791 4 +15853 4293 92795 3 +10075 51 92796 33 +12476 4901 92862 1 +6369 6450 92872 3 +14836 6445 92874 1 +18260 597 92874 1 +9209 597 92874 1 +2983 2095 92877 31 +20837 2486 92909 60 +19121 1041 92977 35 +9896 1889 93060 55 +3713 3119 93060 55 +4854 4867 93090 81 +24580 702 93170 4 +2961 6980 93175 22 +24268 959 93242 7 +19824 6705 93249 1 +2791 1542 93276 5 +22034 3709 93291 4 +1146 3333 93291 4 +5339 4265 93308 1 +15076 4985 93329 45 +14234 1412 93329 45 +5310 4129 93350 5 +11358 6306 93353 55 +22904 1821 93354 42 +24849 1518 93362 3 +10050 2752 93362 3 +875 856 93380 1 +16393 1360 93382 1 +8946 4063 93403 4 +23893 2441 93403 4 +15564 4346 93448 1 +9734 2696 93448 1 +5500 6368 93454 1 +13782 468 93457 24 +18598 3242 93470 1 +1759 5055 93473 1 +6756 972 93484 12 +87 5864 93484 12 +13885 4206 93554 1 +9774 3225 93612 1 +15176 6736 93658 1 +8657 32 93664 11 +17561 5501 93664 11 +7617 2555 93668 33 +13988 411 93705 2 +17090 4208 93716 5 +8396 1439 93799 1 +17161 2489 93801 38 +17951 1082 93801 38 +5837 530 93807 4 +20102 1265 93809 58 +4900 5777 93809 58 +1385 5425 93829 5 +19666 6673 93874 6 +21329 1030 93886 20 +19590 253 93931 1 +858 6504 93949 31 +12811 4560 94023 46 +13167 5949 94075 35 +3877 1093 94075 35 +2206 6786 94139 39 +4912 728 94142 19 +18686 2728 94160 1 +22862 2656 94160 1 +17220 5464 94162 19 +17128 1079 94167 61 +15371 4297 94219 1 +13786 1727 94286 2 +19498 6608 94352 37 +8808 5324 94425 6 +1621 3057 94446 41 +12129 2022 94450 8 +15937 2498 94450 8 +11126 2522 94450 8 +4731 1519 94450 8 +4410 5819 94511 22 +16390 1223 94511 22 +9823 3721 94530 1 +15945 4891 94546 1 +17632 3266 94556 15 +15631 3677 94570 5 +56 937 94588 38 +17080 636 94628 1 +2016 210 94631 1 +352 5337 94635 1 +1894 1008 94636 42 +17173 3706 94716 1 +25563 282 94744 17 +21100 460 94753 1 +731 2034 94836 15 +10544 6911 94842 20 +14872 475 94894 4 +11226 4232 94894 4 +4374 5216 94898 1 +4950 1424 94906 1 +13264 841 94906 1 +4415 5057 94922 10 +18282 5821 94923 9 +9474 1619 94954 36 +6139 4494 95013 45 +8600 4178 95094 1 +7799 2864 95094 1 +18687 2063 95094 1 +12600 271 95097 1 +14946 4899 95097 1 +22016 3663 95108 6 +9388 6874 95109 13 +16777 2784 95114 12 +7132 6898 95120 17 +12944 144 95120 17 +23301 144 95120 17 +15692 3931 95149 26 +16627 4077 95185 11 +22426 309 95185 11 +4082 2656 95185 11 +19071 4788 95193 11 +2590 3914 95203 71 +10010 786 95203 71 +13662 2342 95203 71 +14430 6755 95225 18 +6397 287 95225 18 +8234 3939 95239 30 +13613 6463 95243 5 +15673 3886 95248 31 +1001 4569 95335 1 +12072 2473 95335 1 +23857 1077 95413 62 +345 4889 95415 30 +17016 2981 95432 13 +3849 704 95499 2 +6308 3770 95500 2 +20176 4518 95567 27 +21760 2992 95591 1 +25815 246 95622 3 +20633 4726 95622 3 +12951 4667 95626 1 +15894 4397 95634 2 +3262 4208 95636 1 +857 2686 95644 1 +23221 3421 95651 11 +10630 3825 95661 64 +23562 204 95661 64 +1415 2059 95685 9 +17933 6194 95750 1 +22613 848 95750 1 +17026 253 95798 1 +21133 373 95805 12 +20728 5562 95806 9 +12814 7032 95883 9 +19693 10 95883 9 +10754 6211 95904 3 +19772 831 95904 3 +9008 601 95948 19 +10808 6536 95949 1 +17243 506 95949 1 +5662 101 95949 1 +1899 289 95968 89 +11644 6459 95969 2 +8299 997 95984 1 +19465 5419 96003 30 +13745 2282 96023 1 +4784 5832 96109 1 +20446 3002 96110 6 +18680 6099 96202 7 +19745 1384 96207 10 +10667 6077 96221 1 +3645 965 96221 1 +13579 5861 96300 1 +16819 7039 96310 1 +13630 3390 96396 21 +12217 6480 96434 3 +3201 562 96434 3 +18724 3927 96461 4 +3004 3115 96461 4 +14194 2055 96462 36 +3544 2828 96463 15 +5660 3941 96514 45 +2806 3101 96514 45 +14171 247 96514 45 +1150 5210 96535 2 +7368 1832 96535 2 +9189 121 96626 2 +9172 1107 96626 2 +13381 1596 96626 2 +1621 3120 96626 2 +18991 1655 96634 1 +11819 1744 96634 1 +14398 998 96680 1 +7401 4230 96750 1 +20869 271 96755 4 +2632 1647 96759 1 +4321 421 96760 1 +24638 1423 96791 42 +21029 4395 96831 6 +12150 3657 96912 11 +13154 1079 96916 19 +12887 5466 96922 9 +13555 1576 96922 9 +13872 4187 96930 18 +6057 63 96934 3 +23522 3134 96985 34 +16880 3172 97077 1 +25561 803 97079 19 +13124 1752 97120 1 +14993 340 97202 38 +20474 1595 97265 34 +4540 3099 97358 1 +13280 3801 97358 1 +18997 4998 97369 1 +17376 1553 97375 1 +797 2453 97381 1 +17133 5168 97384 35 +14954 6740 97454 1 +12891 4787 97507 1 +3497 4829 97521 1 +11150 2213 97521 1 +2162 291 97603 10 +7215 1700 97603 10 +20849 1147 97636 1 +26169 145 97641 4 +13841 5533 97707 1 +4916 1509 97707 1 +17406 1443 97709 9 +23965 252 97713 11 +9482 2824 97714 7 +18727 563 97715 2 +11486 4139 97717 2 +17967 2903 97717 2 +2700 5067 97796 3 +21289 1975 97796 3 +21706 4232 97807 1 +21679 532 97870 2 +4437 736 97882 7 +24545 1822 97899 1 +9190 5270 97909 5 +17598 1772 97909 5 +6465 4772 97924 1 +13628 2270 97924 1 +24028 2475 97933 1 +15286 4567 97933 1 +21421 449 97999 3 +6751 1378 98016 1 +22839 379 98069 13 +2468 6142 98070 1 +8476 3807 98120 48 +2742 3234 98156 2 +9651 2854 98183 45 +14131 3059 98222 1 +13774 3773 98223 1 +6106 3084 98274 3 +11101 3958 98274 3 +12726 1084 98281 1 +7710 6 98286 1 +4681 954 98342 35 +19791 6088 98342 35 +16664 2973 98346 38 +22793 1625 98351 2 +10496 4593 98351 2 +2023 3586 98381 1 +12352 5069 98384 2 +645 970 98384 2 +5560 1003 98384 2 +4600 6044 98385 45 +23268 1298 98409 2 +12505 5850 98454 50 +3502 1263 98498 1 +1984 2810 98509 30 +15821 5320 98521 23 +24278 1417 98521 23 +11080 305 98521 23 +11601 6785 98524 2 +14644 257 98524 2 +14279 2294 98541 8 +9048 2140 98541 8 +16353 6437 98547 18 +634 605 98547 18 +19861 922 98573 6 +23635 2899 98605 1 +19434 657 98622 45 +15537 842 98622 45 +10862 5543 98622 45 +14778 46 98622 45 +9740 4664 98649 17 +16331 5644 98651 4 +25031 407 98717 3 +10543 5869 98757 7 +6647 5585 98759 15 +6525 3584 98809 2 +16164 6037 98903 34 +6937 772 98936 11 +20874 345 98976 1 +18462 5975 99046 21 +2733 4608 99057 5 +19630 688 99057 5 +25932 566 99057 5 +16060 5371 99098 1 +13144 3816 99105 16 +9055 1951 99119 7 +9475 620 99119 7 +4875 3589 99127 1 +19557 3453 99127 1 +17859 6252 99216 31 +16045 5255 99252 5 +24556 534 99273 3 +869 825 99283 28 +20975 251 99363 33 +7914 4057 99403 4 +13798 1078 99409 1 +3347 2721 99423 2 +19831 3086 99437 22 +103 317 99437 22 +11060 1050 99500 37 +16369 3897 99500 37 +20274 6196 99599 1 +9245 2651 99693 5 +9758 958 99746 13 +15020 5281 99805 3 +18030 953 99805 3 +2108 4457 99809 8 +5545 2585 99809 8 +1496 384 99814 15 +14952 6503 99872 31 +18083 1202 99948 1 +10668 5794 99954 3 +15526 1248 99954 3 +3771 2103 99968 2 +14079 4756 99968 2 +22952 183 99968 2 +21984 1294 99988 9 +8086 6952 100043 5 +11005 6409 100051 5 +9358 633 100051 5 +15792 3216 100058 21 +9007 3183 100073 20 +18290 2372 100079 1 +510 4670 100079 1 +14077 5231 100150 15 +17460 870 100150 15 +21550 1278 100152 2 +15808 2424 100152 2 +17068 2964 100153 37 +3678 7011 100157 4 +11822 31 100157 4 +4805 2909 100235 1 +17075 6218 100320 3 +9303 6612 100321 47 +17383 6400 100353 31 +17292 3794 100357 1 +9900 863 100424 13 +11872 322 100424 13 +1515 785 100424 13 +5499 4098 100425 1 +22649 2389 100425 1 +13521 555 100425 1 +922 6925 100445 1 +7447 476 100515 1 +22248 1860 100516 1 +12675 3188 100615 12 +15164 3854 100615 12 +24440 995 100616 67 +21297 2520 100616 67 +19050 4066 100684 43 +5138 4668 100718 2 +460 4417 100757 94 +17682 2625 100757 94 +16487 433 100828 9 +7689 5034 100833 32 +2881 3363 100836 1 +4577 1981 100896 36 +19925 750 100915 19 +8563 2181 100997 90 +1478 3190 100997 90 +12608 1671 100997 90 +14386 6358 101001 21 +25211 684 101001 21 +16198 1714 101027 1 +6158 464 101038 1 +12404 6970 101039 1 +24429 1634 101095 1 +1014 1972 101112 1 +10442 2174 101113 8 +2055 4868 101113 8 +7795 6948 101190 1 +2744 5268 101197 18 +13709 1774 101197 18 +17985 3866 101217 1 +762 3480 101307 3 +15855 3562 101307 3 +4956 1812 101309 3 +11780 5230 101309 3 +20226 1631 101386 3 +5879 5516 101421 10 +16537 2613 101435 1 +902 883 101435 1 +22909 1032 101436 3 +7449 6010 101436 3 +8405 3314 101438 5 +1853 2037 101529 1 +15813 3520 101539 1 +19938 1066 101539 1 +4807 2199 101619 1 +10269 4098 101652 31 +9042 6371 101673 4 +11925 6738 101678 24 +9412 308 101758 1 +3712 4150 101758 1 +1670 3289 101843 1 +16430 5536 101855 44 +19909 1506 101855 44 +10131 3594 101856 6 +12024 185 101856 6 +12725 4081 101887 1 +12534 5887 101936 1 +1045 6363 101940 6 +358 1392 101979 1 +14686 2369 102018 6 +18893 3243 102035 47 +4279 2186 102055 1 +2207 4505 102055 1 +17554 2537 102055 1 +618 3773 102076 17 +6116 6476 102081 23 +17464 3727 102082 22 +2536 5827 102126 2 +7411 5386 102166 18 +9264 107 102166 18 +1188 1656 102166 18 +23433 787 102183 1 +17663 715 102185 60 +3414 3490 102188 4 +2200 6703 102255 2 +3527 1297 102322 1 +1370 963 102322 1 +9916 4283 102332 8 +7018 5689 102347 17 +19114 895 102347 17 +14812 3126 102367 1 +2702 1089 102384 29 +12120 5521 102411 54 +14363 4897 102413 1 +4591 6734 102465 11 +5890 2751 102520 11 +24314 1543 102522 1 +21073 2224 102522 1 +17086 3988 102601 17 +14473 6955 102682 1 +9315 87 102682 1 +18295 4443 102684 3 +16675 2599 102684 3 +13074 979 102684 3 +3716 5654 102686 1 +13631 1456 102695 22 +24076 1019 102767 1 +15666 717 102779 18 +24145 1972 102873 41 +753 2172 102878 50 +7495 981 102878 50 +4208 4682 102882 15 +12756 5417 102888 1 +12359 5376 102914 27 +18621 5172 102919 24 +21918 1870 102919 24 +13987 4617 102920 16 +22570 601 102994 16 +16007 5026 102994 16 +1897 1415 102994 16 +15150 2093 103014 12 +11777 3082 103096 1 +3755 5600 103115 20 +17188 3920 103131 6 +23933 1690 103145 3 +4924 441 103145 3 +2562 1013 103178 30 +19573 892 103178 30 +10988 2351 103178 30 +17759 6896 103180 1 +475 3459 103187 60 +23528 10 103190 6 +7166 1370 103190 6 +11795 360 103190 6 +21800 3841 103245 1 +14071 2102 103261 20 +20713 5598 103273 4 +19029 1444 103273 4 +3859 319 103365 1 +3338 5669 103365 1 +554 2528 103456 25 +21715 1689 103464 15 +15549 1306 103464 15 +6103 2225 103488 1 +15227 3538 103533 1 +20309 3284 103533 1 +8804 3220 103596 72 +19811 5288 103632 51 +1237 444 103632 51 +12663 2110 103636 16 +22368 4029 103728 5 +16754 3013 103728 5 +13647 6882 103740 1 +17320 5425 103816 1 +7599 6850 103869 34 +96 4865 103878 1 +20904 3062 103945 1 +6001 6033 104044 16 +8381 3594 104094 1 +19017 615 104127 3 +19958 488 104187 2 +5625 3082 104188 1 +4518 3960 104188 1 +19942 1069 104236 14 +18441 5451 104285 1 +745 2579 104382 15 +11641 3936 104382 15 +6408 2708 104480 1 +18948 3713 104518 1 +22341 4101 104600 2 +19794 66 104610 3 +3400 1604 104610 3 +21305 1786 104610 3 +8440 4225 104679 47 +923 1589 104734 41 +11590 211 104755 13 +12892 118 104808 1 +21306 356 104809 1 +19272 6789 104813 3 +12218 318 104846 1 +4276 3471 104868 17 +4843 1112 104868 17 +2861 1779 104939 4 +1823 1911 104963 3 +3824 219 104963 3 +12997 4912 104963 3 +1612 6660 105005 1 +324 3630 105018 1 +10440 485 105018 1 +4944 2927 105018 1 +10248 5106 105026 4 +23984 1558 105027 1 +394 1946 105027 1 +7693 6925 105105 1 +10936 3510 105106 3 +25300 764 105110 53 +4885 3510 105160 17 +8362 268 105164 7 +15839 5265 105194 1 +3362 7021 105195 2 +2465 21 105195 2 +13702 2777 105196 1 +20749 1357 105196 1 +10917 790 105230 1 +20339 1409 105314 4 +6985 3855 105314 4 +15500 4828 105411 1 +17059 2214 105411 1 +11792 5607 105452 45 +15735 3055 105515 94 +3631 5029 105574 16 +1056 26 105574 16 +4139 3190 105579 1 +10115 775 105599 25 +1203 4512 105599 25 +10769 1755 105599 25 +11353 3339 105638 43 +12667 4764 105640 27 +5229 6974 105643 3 +3994 2096 105722 1 +17227 3525 105722 1 +11312 2169 105729 17 +6598 3959 105746 50 +23016 2545 105769 3 +20741 2604 105769 3 +17783 3078 105852 39 +13533 1921 105934 1 +24075 1008 105942 1 +2539 5128 105950 1 +8779 1399 105950 1 +25034 515 105950 1 +7217 6915 106028 47 +15476 127 106028 47 +17713 2642 106038 1 +10190 4400 106038 1 +18299 5971 106110 15 +6330 2297 106111 1 +12096 4723 106111 1 +17749 6064 106176 3 +17132 3103 106220 5 +13091 1397 106293 22 +19476 5387 106293 22 +4168 258 106293 22 +6396 4070 106301 4 +2617 2972 106301 4 +2650 4663 106311 1 +16951 6858 106347 17 +4927 3675 106393 1 +12581 3136 106480 5 +1708 186 106490 1 +14869 2456 106496 8 +7863 1303 106563 9 +301 827 106569 1 +9980 5024 106589 8 +7479 943 106597 14 +16129 171 106678 1 +1213 2053 106691 2 +4376 4560 106692 6 +25634 739 106693 6 +11051 6303 106693 6 +12553 3243 106712 4 +1579 3835 106732 2 +1900 3983 106734 8 +25360 330 106734 8 +10506 6138 106833 5 +6780 904 106833 5 +20694 5582 106860 28 +14926 6664 106945 43 +1792 378 106945 43 +5299 4901 107044 1 +7733 6875 107057 1 +4257 167 107057 1 +1243 3797 107147 7 +10911 4873 107148 3 +11393 6139 107188 83 +2441 5948 107202 15 +455 4972 107225 1 +16057 2891 107250 2 +255 770 107254 11 +1987 2780 107321 65 +6064 685 107321 65 +20075 127 107321 65 +22929 2697 107321 65 +3163 6879 107344 14 +22636 3447 107350 19 +20885 5084 107373 7 +5877 3837 107374 1 +11421 2017 107374 1 +10717 1188 107374 1 +16036 3014 107382 1 +6581 4028 107382 1 +19128 6065 107460 1 +22398 977 107460 1 +19935 1048 107461 49 +13837 2177 107508 29 +6845 4399 107510 9 +20727 2643 107510 9 +2882 1855 107520 1 +10742 7011 107521 30 +4724 31 107521 30 +4525 6059 107558 8 +18197 983 107558 8 +11835 1191 107565 5 +882 2250 107576 2 +23847 2799 107670 12 +16574 3304 107748 1 +15545 3738 107748 1 +19796 2317 107775 9 +23707 1030 107775 9 +22181 1453 107775 9 +20361 1565 107777 14 +18441 5477 107777 14 +14713 2410 107858 9 +16439 5611 107879 71 +15966 1323 107879 71 +15291 4435 107937 1 +4930 1957 107945 33 +1311 808 107945 33 +14366 4807 107963 1 +1504 222 108049 1 +23397 752 108060 7 +7109 4845 108060 7 +6570 1445 108060 7 +9473 906 108060 7 +19762 1062 108110 30 +3029 4601 108175 81 +11045 2826 108177 44 +9726 1600 108178 2 +1307 1512 108178 2 +4602 1794 108178 2 +11768 5630 108225 5 +1360 1412 108225 5 +8835 6211 108250 1 +16693 182 108250 1 +16713 649 108250 1 +12234 162 108250 1 +7816 162 108250 1 +2361 3213 108294 28 +13616 1742 108294 28 +9847 2096 108306 1 +7224 2089 108310 16 +11532 1691 108373 1 +22148 3374 108373 1 +7729 3851 108374 13 +5527 4005 108440 79 +8184 2850 108441 23 +2581 2140 108474 52 +20982 1166 108483 1 +2542 2175 108484 2 +8202 952 108484 2 +3167 4288 108523 2 +6902 6759 108528 8 +8300 6920 108537 7 +2235 122 108537 7 +18772 1946 108562 25 +3826 6490 108628 9 +13638 552 108628 9 +660 5315 108636 46 +7077 3607 108659 27 +19863 2374 108660 2 +3361 5531 108692 1 +12255 1975 108767 1 +11405 1697 108833 11 +12305 4860 108834 40 +8911 5373 108870 11 +21635 1462 108870 11 +19122 408 108934 3 +16584 5559 108975 6 +14219 1483 108975 6 +11088 4444 109050 2 +7251 6315 109067 9 +10978 5356 109069 34 +6635 4902 109077 1 +1376 1516 109085 1 +9024 282 109091 3 +5836 788 109189 1 +435 3117 109189 1 +8997 3137 109189 1 +8195 5228 109230 4 +1244 787 109307 81 +13218 3215 109364 7 +20453 19 109366 80 +3873 553 109401 4 +5677 1018 109402 8 +13736 5093 109408 2 +16792 1949 109408 2 +10088 1949 109408 2 +10686 5710 109458 3 +263 403 109459 1 +987 3350 109462 1 +13384 3692 109462 1 +7140 6282 109477 51 +19052 6092 109478 3 +9806 617 109494 39 +2887 6786 109585 20 +2639 256 109585 20 +2465 8 109585 20 +23252 2214 109586 8 +10643 2146 109586 8 +6393 1918 109647 8 +23612 2007 109657 11 +15407 2368 109657 11 +15451 4187 109659 1 +9016 7025 109672 1 +1196 567 109684 2 +6334 6475 109684 2 +18082 2531 109687 1 +13803 332 109694 59 +8859 1407 109707 9 +9786 5914 109724 1 +16697 4398 109733 1 +11737 2644 109733 1 +2048 538 109735 1 +15617 2584 109747 3 +14665 2275 109747 3 +8746 1726 109747 3 +3097 1780 109747 3 +3003 2012 109808 4 +16802 3561 109825 46 +12223 1471 109832 51 +21196 2192 109861 2 +10600 4850 109861 2 +7143 1620 109891 2 +6592 65 109891 2 +22599 2891 109891 2 +19916 1519 109922 11 +1840 6300 109931 1 +21984 4600 109937 1 +4376 1840 109951 9 +13674 2749 109951 9 +139 2453 109951 9 +8319 1985 109952 8 +10092 3589 109956 88 +9567 1920 109965 5 +1929 5050 109965 5 +14301 2697 110000 11 +7055 789 110066 7 +20402 2097 110123 1 +13682 4945 110123 1 +2832 6327 110125 1 +16484 715 110125 1 +3289 1295 110135 5 +15925 6900 110136 32 +11086 4673 110202 1 +1021 4618 110263 6 +12570 5565 110320 37 +20171 3570 110374 1 +5050 2224 110379 9 +9723 1261 110379 9 +4132 6764 110385 23 +17691 5113 110388 8 +20646 3415 110390 14 +2045 423 110409 26 +9917 3343 110440 1 +19269 1688 110516 1 +6058 1588 110534 9 +5241 1416 110534 9 +23078 2871 110534 9 +5559 4667 110541 3 +13801 2375 110541 3 +6793 1233 110589 13 +11860 4759 110627 1 +7905 166 110627 1 +3630 290 110627 1 +6513 1369 110713 23 +3527 4745 110713 23 +3494 5176 110714 14 +3710 6834 110797 10 +2496 215 110834 1 +15054 3769 110923 6 +13249 1080 110923 6 +14971 155 110942 1 +10478 5118 110942 1 +4878 4662 110950 27 +2124 5541 110954 17 +13010 5984 110971 16 +12260 1842 111049 70 +4412 18 111050 1 +13106 3023 111145 67 +177 4597 111147 1 +22202 1545 111147 1 +11930 900 111147 1 +16147 4702 111153 1 +15150 2193 111153 1 +6536 1640 111203 1 +11020 4487 111287 10 +6871 2326 111308 67 +7972 798 111309 6 +14095 4217 111316 1 +11061 1437 111316 1 +10565 1388 111316 1 +21759 2025 111324 5 +2380 2448 111324 5 +1500 1904 111324 5 +17032 1689 111324 5 +1024 1799 111377 1 +12374 65 111381 39 +14710 461 111400 1 +16224 6562 111402 1 +21866 1080 111430 1 +23050 2670 111430 1 +23175 1608 111430 1 +11326 2012 111439 29 +900 5320 111441 5 +6773 1871 111461 22 +18433 2810 111461 22 +10106 1313 111468 1 +11579 3667 111562 35 +18715 3375 111562 35 +24489 823 111570 17 +6416 6883 111657 1 +14766 3354 111663 1 +11313 6997 111672 2 +9577 6756 111759 6 +2693 6055 111769 1 +24641 1886 111799 1 +4979 6471 111838 11 +10604 571 111838 11 +19672 506 111848 13 +13057 4849 111874 82 +1268 2193 111874 82 +17710 4034 111880 76 +20864 5747 111895 1 +798 4983 111963 6 +18244 2059 111963 6 +14476 5838 111966 10 +8913 1157 111970 20 +5483 3797 111972 3 +22973 2277 111972 3 +4021 3987 112046 1 +9672 1739 112046 1 +20213 6186 112050 1 +1706 5950 112051 1 +3187 5686 112076 1 +3712 1356 112076 1 +18865 1356 112076 1 +6530 146 112148 9 +19459 5517 112152 1 +21145 3631 112161 54 +7960 2725 112173 2 +2406 3791 112179 5 +20613 3585 112239 1 +4249 3457 112239 1 +19252 1029 112277 1 +1386 1330 112314 1 +2758 941 112370 57 +16048 4947 112382 16 +19196 1853 112400 6 +9429 5706 112471 1 +2737 6528 112564 6 +18610 5485 112583 10 +9279 1124 112583 10 +6055 113 112583 10 +16396 5586 112584 1 +24611 258 112584 1 +15082 1198 112584 1 +22175 838 112591 15 +21600 2133 112646 1 +12805 1267 112646 1 +3687 848 112646 1 +11120 3383 112647 1 +7564 3761 112650 1 +20818 886 112688 35 +13225 3517 112688 35 +9232 3263 112690 1 +1586 3779 112690 1 +8448 4896 112751 1 +5595 694 112751 1 +878 6916 112818 1 +10282 3520 112820 1 +17771 3522 112820 1 +6645 1150 112827 21 +4231 3131 112835 1 +5440 4552 112852 1 +6582 6341 112878 55 +22238 3015 112892 1 +9411 6740 112896 1 +4876 6205 112898 7 +10320 2422 112945 40 +12898 4160 113020 2 +17305 976 113021 1 +21435 4157 113027 1 +6089 1325 113027 1 +9211 772 113029 10 +16152 4384 113029 10 +10024 1823 113029 10 +11085 3561 113062 1 +6763 3481 113062 1 +6805 423 113072 4 +12926 5188 113074 64 +25655 362 113076 1 +1959 3508 113091 2 +14980 374 113092 1 +470 4401 113133 1 +9786 1714 113133 1 +2993 927 113133 1 +18151 927 113133 1 +9267 6236 113154 11 +378 5046 113160 13 +21482 2804 113176 4 +15613 5594 113177 1 +4986 1448 113177 1 +8668 46 113183 28 +7363 5372 113221 37 +17505 6856 113308 28 +19548 4664 113380 36 +5003 5833 113382 5 +15170 807 113382 5 +5423 4294 113384 1 +286 1201 113384 1 +18620 1963 113389 1 +2464 5079 113389 1 +10698 5402 113390 1 +1540 3599 113397 6 +22604 895 113418 1 +6429 100 113418 1 +21310 1549 113432 10 +20550 1894 113432 10 +2325 1658 113436 67 +17661 4079 113436 67 +8374 1305 113436 67 +16058 782 113489 50 +14685 5241 113498 72 +3971 6662 113502 24 +9534 3724 113504 67 +9565 2702 113505 17 +1463 5897 113553 5 +9716 4969 113555 1 +15232 1909 113558 1 +584 3824 113558 1 +17010 3851 113560 42 +19333 1736 113629 23 +12124 3260 113724 2 +13105 2182 113757 1 +9463 6268 113771 11 +14132 774 113771 11 +2121 242 113771 11 +7987 1402 113791 12 +6866 5031 113841 32 +7142 2539 113845 4 +4642 4525 113866 11 +2878 2562 113867 11 +5954 4480 113867 11 +18245 2566 113886 3 +15179 4476 113886 3 +1596 1410 113886 3 +2193 5229 113887 7 +6082 6719 113967 18 +16464 6 113967 18 +6423 4430 114032 10 +23381 1684 114072 11 +2756 3988 114120 4 +1302 3054 114120 4 +1689 1180 114161 96 +1101 4373 114161 96 +18362 978 114165 1 +20230 33 114198 1 +6867 902 114198 1 +4147 2685 114279 5 +19139 5890 114303 1 +16891 1152 114303 1 +15387 3425 114317 68 +7211 6624 114321 5 +4480 188 114321 5 +17378 6269 114346 1 +53 2613 114435 14 +1741 4429 114435 14 +8832 443 114436 3 +21285 1894 114456 2 +3354 2787 114515 1 +14637 1988 114519 9 +10666 2062 114533 15 +4139 1423 114629 29 +23187 1995 114654 7 +10594 1536 114658 4 +11049 170 114695 3 +17047 3315 114744 2 +24600 760 114744 2 +1069 2967 114744 2 +18691 5105 114745 1 +15672 384 114791 2 +20400 6237 114791 2 +24255 421 114791 2 +4927 3048 114826 1 +13318 3195 114838 1 +11705 3060 114838 1 +1818 1035 114846 1 +5299 694 114846 1 +6073 4691 114922 1 +18594 2740 114928 35 +5840 5017 114930 38 +7596 759 114930 38 +24698 1951 114930 38 +12255 74 114930 38 +7845 2626 114939 2 +17817 4944 114952 23 +5056 7033 114967 3 +17600 560 115042 32 +20950 2513 115042 32 +16991 2827 115047 28 +24383 200 115047 28 +22166 588 115109 8 +18864 5782 115135 53 +20398 4893 115138 8 +3223 2296 115160 4 +4043 6455 115226 14 +18388 2853 115232 3 +10051 1050 115264 2 +4178 6187 115286 7 +16570 501 115294 20 +12855 5050 115298 3 +3211 193 115298 3 +21586 2623 115362 2 +6345 5479 115365 1 +13336 4569 115372 2 +23350 1073 115378 2 +15453 5921 115435 15 +13109 1121 115435 15 +16003 342 115494 6 +15689 4032 115521 10 +1201 409 115521 10 +6684 5742 115578 6 +17642 966 115578 6 +3584 1726 115648 22 +14641 6790 115658 1 +10794 6293 115714 16 +18675 749 115714 16 +2436 6757 115750 48 +17412 4696 115849 1 +11061 2292 115883 1 +21449 2578 115883 1 +19214 502 115883 1 +15531 5668 115892 2 +1538 2648 115923 38 +2884 3464 115938 34 +18830 4197 116031 1 +7865 2971 116032 10 +17318 646 116032 10 +1041 3425 116032 10 +16956 5396 116113 29 +3000 406 116186 10 +4727 4585 116234 33 +18727 6179 116268 20 +24952 1674 116271 1 +14078 5368 116271 1 +6345 4212 116309 13 +1456 2830 116309 13 +16357 3597 116339 5 +16368 2251 116339 5 +24080 2596 116380 1 +15217 1267 116477 42 +19196 861 116478 12 +15544 4384 116520 1 +22410 2673 116521 1 +23336 1285 116529 13 +20540 2306 116529 13 +5711 6736 116532 1 +15703 3638 116536 69 +20718 5237 116575 1 +9269 1157 116619 2 +14725 739 116718 3 +10110 6180 116724 1 +13055 640 116769 21 +21482 2132 116849 1 +16111 3560 116852 29 +10769 2652 116889 1 +13444 3108 116889 1 +9176 6058 116953 10 +9704 3534 116979 1 +13063 1118 116979 1 +17377 2565 116979 1 +8435 2525 116980 33 +659 3297 116985 18 +9895 3745 116985 18 +25531 1141 117035 11 +14436 4391 117041 32 +3984 5728 117090 1 +15317 1314 117090 1 +8526 804 117111 2 +7403 2798 117115 46 +8377 6072 117134 25 +13313 4155 117170 1 +21296 2571 117170 1 +19476 316 117170 1 +6605 3129 117184 1 +20768 499 117186 39 +8040 5897 117186 39 +21897 4235 117225 1 +25960 716 117225 1 +15959 1946 117232 39 +13761 4069 117290 1 +12600 1992 117293 11 +8173 3023 117326 1 +16976 1572 117326 1 +12986 748 117365 1 +21552 2725 117365 1 +16193 4456 117372 1 +5466 329 117401 2 +8709 73 117401 2 +6662 431 117413 1 +7024 3139 117461 1 +22532 3098 117470 46 +11862 4295 117474 51 +3056 4474 117570 42 +19026 6424 117588 1 +10210 3560 117597 1 +17365 5365 117603 53 +860 5286 117607 2 +648 5589 117654 1 +6415 1453 117654 1 +14435 6063 117667 1 +1301 1716 117679 1 +21353 3241 117740 1 +7592 4158 117772 45 +225 1055 117828 1 +11034 3942 117830 1 +8844 2691 117830 1 +10790 5575 117833 34 +16830 4656 117900 10 +16800 2386 117900 10 +22094 3146 117908 3 +8045 5676 117954 58 +17741 4242 117977 33 +7645 6406 118038 14 +8508 636 118038 14 +18917 5701 118084 7 +20517 4665 118098 2 +17561 1002 118098 2 +23566 1375 118098 2 +14363 3932 118106 8 +24262 1302 118106 8 +3347 2409 118164 78 +24680 1759 118164 78 +9043 4159 118184 1 +23524 2698 118191 1 +20069 1836 118199 30 +3901 67 118255 1 +14004 4555 118295 1 +3538 3285 118386 1 +26065 194 118440 55 +7589 3665 118441 19 +11330 1339 118441 19 +19946 1758 118441 19 +5032 2132 118445 1 +7392 4236 118449 2 +9396 1888 118481 1 +12447 4003 118491 9 +19739 2046 118491 9 +11903 1587 118499 22 +8785 2601 118517 1 +6984 1026 118527 2 +5906 3609 118588 50 +1282 639 118588 50 +3968 5523 118656 70 +10404 1797 118749 11 +20291 1159 118760 1 +1337 128 118764 7 +14702 5227 118828 8 +13097 4441 118898 35 +11976 2410 118914 1 +5934 5953 118961 38 +9566 5797 118963 3 +10552 1245 118963 3 +15584 4956 119023 1 +12975 5699 119043 15 +22606 2974 119050 3 +11098 1731 119054 6 +7424 1583 119061 7 +2933 6124 119066 1 +15863 1621 119122 13 +6593 2876 119129 67 +30 5850 119188 1 +17890 699 119261 11 +20486 3475 119283 9 +23521 1768 119368 1 +6516 6565 119377 3 +367 2837 119448 1 +19015 3255 119448 1 +9159 6519 119492 1 +15420 4426 119582 1 +23652 790 119632 1 +20778 2514 119711 8 +11838 1340 119726 60 +20403 1897 119747 4 +3972 961 119751 10 +12961 5321 119751 10 +16413 1894 119766 13 +23143 938 119806 51 +8302 3584 119812 1 +12111 3458 119812 1 +1506 1413 119815 16 +7099 3634 119816 11 +24195 2475 119816 11 +3235 5434 119865 3 +17755 1608 119865 3 +9211 4277 119867 1 +6977 3124 119894 19 +4673 1325 119927 1 +14894 6815 119932 19 +7216 706 119933 2 +10683 231 119935 27 +14895 1262 119935 27 +17970 5549 119935 27 +20855 939 119939 4 +2101 57 119955 14 +13616 2571 119955 14 +16209 6923 119957 1 +19023 671 119958 4 +6635 3735 119958 4 +21600 361 120029 2 +3612 3423 120063 4 +15114 6097 120104 12 +10487 1110 120124 46 +24739 917 120124 46 +22019 1532 120191 14 +19315 838 120191 14 +9048 1508 120191 14 +3735 3164 120191 14 +3046 318 120192 1 +14582 6687 120199 36 +16714 355 120199 36 +12905 355 120199 36 +10044 709 120258 4 +2685 5796 120295 5 +19761 5320 120337 45 +18346 311 120384 1 +2578 2304 120393 1 +16200 6463 120441 4 +14651 5486 120496 1 +5117 314 120500 4 +7392 3740 120505 1 +6974 1394 120512 10 +6055 1316 120517 6 +12714 3850 120517 6 +12308 299 120598 10 +17853 6509 120598 10 +13926 2473 120632 1 +7648 2520 120679 1 +6833 278 120693 1 +3568 4345 120693 1 +17302 4135 120718 1 +17794 2294 120727 7 +19599 730 120748 1 +769 2509 120749 1 +22283 879 120750 1 +18820 1862 120843 5 +22271 255 120843 5 +8019 1188 120845 3 +12961 1505 120845 3 +3635 4349 120845 3 +6610 2355 120892 1 +2362 460 120959 13 +14904 4857 121008 44 +7864 6718 121013 20 +20716 946 121015 43 +13689 320 121021 2 +7046 3058 121022 1 +3525 3991 121109 1 +22760 3051 121109 1 +12911 5172 121128 1 +11273 4880 121157 60 +3070 684 121202 2 +18942 941 121202 2 +23562 2451 121212 76 +8169 3865 121224 17 +15167 2124 121224 17 +12841 3007 121271 44 +13239 3735 121271 44 +5234 5870 121273 14 +12886 6950 121339 38 +22403 92 121339 38 +20585 4266 121345 5 +1136 2018 121365 4 +19776 820 121365 4 +1842 6773 121400 38 +24892 862 121408 5 +13536 4002 121427 4 +21918 3040 121427 4 +11703 649 121428 1 +16925 6996 121437 3 +15762 2986 121439 16 +7076 2519 121439 16 +8167 816 121448 1 +5947 4954 121466 18 +19506 5193 121501 10 +5641 3743 121516 1 +13301 3232 121581 14 +13838 3810 121581 14 +15877 5230 121587 13 +19624 3481 121608 1 +133 2584 121608 1 +8874 4380 121632 2 +14384 4553 121651 8 +3835 2489 121651 8 +11342 3409 121699 16 +2758 5548 121700 3 +15987 2933 121701 1 +4822 2315 121701 1 +16994 650 121795 1 +15607 4145 121796 11 +18514 5664 121844 25 +4704 973 121845 1 +21260 743 121863 6 +18127 2221 121863 6 +10699 95 121878 3 +12656 4476 121885 1 +12823 3508 121892 1 +8573 6238 121984 1 +21160 804 121984 1 +13606 736 122026 2 +10567 898 122045 43 +10016 1274 122045 43 +17796 3115 122063 1 +405 1286 122063 1 +15476 5112 122132 1 +4620 3722 122140 27 +4071 6969 122148 11 +8875 3367 122150 1 +33 495 122150 1 +11927 4543 122183 2 +8232 2499 122183 2 +18628 4098 122195 9 +22146 3112 122202 1 +3993 4590 122203 10 +2118 2255 122232 28 +9410 3127 122242 9 +16707 3915 122242 9 +6369 3361 122312 25 +9020 4692 122405 55 +15037 2350 122405 55 +6008 4556 122419 30 +880 4572 122424 1 +10813 1112 122424 1 +17062 6605 122425 10 +2659 2965 122521 1 +17670 3344 122533 1 +2894 1927 122567 1 +7322 3554 122567 1 +19075 1561 122567 1 +4064 4872 122568 1 +8488 4811 122617 1 +18677 2893 122704 5 +15307 1789 122737 1 +5102 2615 122782 1 +15892 2796 122811 39 +21878 3260 122856 41 +18755 1920 122867 6 +1435 3962 122867 6 +8997 288 122923 11 +6526 4749 122925 1 +14898 1967 122967 22 +21412 3710 122967 22 +2084 1365 122967 22 +7941 2416 123019 7 +5346 1376 123098 4 +8485 274 123098 4 +13400 6519 123159 1 +8055 6979 123225 18 +21231 63 123225 18 +3032 1906 123301 4 +5263 4243 123309 8 +21773 4835 123323 1 +3164 2207 123323 1 +18314 2298 123337 18 +2929 5523 123338 1 +22650 1519 123338 1 +6394 3173 123339 4 +11762 4310 123381 1 +6836 7030 123396 1 +19623 12 123396 1 +13765 3397 123404 44 +3451 1629 123409 12 +18182 2307 123409 12 +18242 3106 123409 12 +18195 1174 123412 51 +18578 1971 123414 1 +16776 4558 123453 27 +2167 3097 123496 1 +21896 1241 123525 2 +19662 5 123525 2 +7310 5785 123525 2 +17703 5991 123526 5 +2366 6383 123529 14 +15908 5307 123538 58 +1621 447 123543 48 +25593 572 123619 2 +8536 505 123619 2 +18226 1833 123673 1 +9022 713 123740 7 +15270 5319 123740 7 +21101 1010 123740 7 +7708 2697 123745 22 +15304 4154 123764 42 +10598 4194 123851 1 +5254 5342 123893 25 +5951 2612 123930 23 +20355 3984 123931 10 +10461 139 123931 10 +1141 302 123999 2 +16874 3327 123999 2 +12279 3413 123999 2 +22926 127 124000 1 +3917 3059 124002 29 +1184 4602 124003 14 +20312 4767 124009 1 +17996 2275 124009 1 +18630 341 124010 1 +3913 867 124010 1 +18636 985 124031 13 +7194 1620 124066 1 +11044 2923 124066 1 +9001 2499 124066 1 +11813 456 124066 1 +19422 2246 124128 6 +1355 4810 124179 34 +2013 216 124213 1 +14189 735 124213 1 +12553 1887 124213 1 +25499 202 124213 1 +13033 3043 124226 17 +4133 3999 124226 17 +11882 1111 124237 13 +8803 2067 124238 6 +3940 4975 124238 6 +13927 6694 124259 2 +23401 291 124264 6 +24410 966 124289 1 +19983 6140 124318 41 +15336 902 124318 41 +17829 949 124319 1 +6794 2198 124354 11 +3419 4454 124437 1 +12857 1171 124437 1 +4917 2086 124442 60 +12723 3922 124499 1 +7968 1554 124502 35 +17693 941 124506 1 +18768 3140 124509 21 +7855 58 124509 21 +19160 3844 124509 21 +10810 1487 124509 21 +7254 1205 124514 25 +11643 4014 124521 3 +311 7028 124555 1 +454 14 124555 1 +24266 2025 124556 1 +2704 1944 124594 12 +18746 2820 124652 20 +2292 5353 124657 1 +17483 1689 124657 1 +10715 1939 124735 1 +8189 2623 124737 9 +22196 2840 124743 16 +5949 2849 124760 21 +11594 4193 124760 21 +12393 2814 124774 9 +5258 4863 124781 1 +2711 2773 124813 2 +17437 6311 124881 26 +21104 4595 124928 16 +13570 6529 125006 1 +5123 1352 125007 2 +19489 4142 125059 8 +19734 2900 125059 8 +12237 2900 125059 8 +5127 6031 125082 1 +19192 6503 125085 6 +2570 539 125085 6 +21824 3670 125086 17 +11242 4183 125147 8 +19817 2859 125147 8 +5529 3495 125151 3 +15286 2987 125207 1 +5532 5850 125268 1 +20061 6388 125314 1 +19926 654 125314 1 +5028 3202 125360 20 +687 4096 125380 1 +2980 4513 125382 8 +15339 6486 125414 1 +13463 4130 125420 32 +3489 4905 125421 10 +2426 2137 125421 10 +17191 1074 125421 10 +21668 674 125440 8 +19736 1763 125472 16 +23326 500 125478 1 +21391 5042 125479 42 +19731 4756 125480 42 +15278 1693 125480 42 +2640 1235 125481 1 +3738 1351 125482 1 +15238 2809 125484 1 +13411 4233 125484 1 +17327 2406 125484 1 +15458 6222 125494 40 +14784 4406 125531 1 +7149 4244 125574 1 +25857 241 125574 1 +18807 1123 125574 1 +3638 1434 125574 1 +9389 4917 125575 11 +17175 5818 125576 1 +869 5078 125653 11 +22559 1964 125653 11 +14771 1456 125679 1 +16466 948 125683 23 +19104 941 125705 30 +4550 1476 125705 30 +10829 3819 125705 30 +8441 3538 125797 26 +20031 877 125797 26 +20169 2627 125797 26 +7124 5060 125798 44 +356 2874 125803 15 +1908 972 125823 13 +21361 3110 125823 13 +11082 6292 125839 17 +3462 4754 125860 5 +22501 3428 125887 2 +13024 4774 125979 4 +15924 2991 126042 44 +6285 1903 126059 1 +3225 2840 126059 1 +7994 5323 126091 4 +6620 1719 126091 4 +5603 345 126091 4 +21028 513 126157 8 +10263 205 126158 47 +4257 6339 126181 4 +22583 2194 126226 1 +10721 4848 126226 1 +4008 4900 126271 8 +15454 2142 126271 8 +12273 716 126369 36 +12556 5145 126443 1 +5242 1897 126443 1 +6208 1940 126444 5 +9993 4375 126487 1 +4365 2170 126497 2 +3289 2669 126497 2 +11719 1840 126497 2 +14893 734 126498 41 +12837 2303 126534 9 +15281 4785 126538 2 +5813 4361 126621 1 +6427 3516 126626 1 +16294 5490 126630 1 +2542 1552 126630 1 +5021 5663 126679 27 +7132 6911 126724 5 +7536 4288 126756 10 +15616 5043 126760 2 +3123 1999 126760 2 +15039 5131 126769 24 +16342 2539 126823 3 +4461 4503 126823 3 +9296 6800 126824 1 +8710 5276 126849 1 +9800 5901 126866 38 +23453 1141 126866 38 +24079 1536 126872 4 +16468 1168 126874 65 +2513 2921 126878 23 +8616 3915 126886 3 +8397 1960 126946 1 +17173 21 126946 1 +17439 2144 126997 8 +784 4957 127084 8 +21005 5526 127120 7 +5152 5773 127166 1 +19807 3171 127171 4 +10202 1423 127187 31 +4559 3477 127187 31 +4361 7028 127241 38 +13860 2830 127242 1 +15893 560 127242 1 +18167 3257 127324 1 +4048 160 127371 1 +11328 1833 127376 6 +17244 5575 127380 2 +6291 6875 127405 51 +12188 3300 127409 1 +20133 5437 127458 59 +15838 5613 127549 31 +624 4728 127577 1 +24340 270 127577 1 +16471 2994 127607 1 +21440 4613 127658 24 +13609 3032 127666 3 +22944 3360 127691 28 +16275 6533 127750 1 +8097 509 127750 1 +19085 4687 127759 2 +19158 2091 127759 2 +2822 3161 127760 1 +19570 5802 127769 1 +13482 4230 127814 5 +3198 1146 127814 5 +9438 1666 127814 5 +18146 6972 127837 1 +12659 70 127837 1 +16814 1385 127878 4 +16040 4259 127878 4 +7421 6521 127887 26 +19637 4523 127910 27 +20322 3897 127954 34 +9850 3003 127967 9 +3314 5091 127968 1 +3210 1951 127968 1 +1838 6472 127985 22 +11041 570 127985 22 +18744 3061 127988 3 +19305 6518 127990 3 +12146 524 127990 3 +13025 1552 127991 1 +18412 4128 127991 1 +2979 1641 128018 1 +2601 4031 128018 1 +3317 5240 128106 1 +1746 1802 128106 1 +11095 231 128106 1 +18979 4691 128182 1 +13088 2351 128182 1 +4332 5463 128234 1 +8559 1579 128234 1 +13892 1236 128234 1 +4035 730 128245 1 +15225 2841 128245 1 +13493 760 128245 1 +14945 4762 128283 27 +19395 2280 128283 27 +14097 312 128283 27 +11738 3484 128306 1 +13770 4111 128307 38 +664 2931 128307 38 +7180 3734 128344 1 +18652 6625 128362 1 +8205 417 128362 1 +8222 664 128382 19 +18281 1420 128382 19 +14098 1092 128382 19 +4602 5539 128410 66 +19348 1503 128410 66 +15826 3714 128429 5 +700 2828 128429 5 +9243 5 128429 5 +1817 5386 128449 4 +2064 3616 128451 8 +22922 1302 128451 8 +20871 16 128451 8 +15261 2108 128451 8 +1800 4350 128456 1 +12790 910 128456 1 +1796 2395 128482 14 +14260 4647 128482 14 +15580 4137 128496 64 +17730 3186 128502 2 +11308 2448 128511 1 +4838 249 128511 1 +11972 4345 128511 1 +10202 4558 128512 2 +18419 4043 128517 22 +17917 2999 128517 22 +5883 4772 128532 4 +2067 2270 128532 4 +18829 1299 128540 1 +7807 2127 128544 6 +20077 1197 128556 43 +7128 4601 128561 1 +14276 1650 128591 1 +16112 1994 128591 1 +15315 2859 128593 9 +15213 5666 128596 20 +18631 1142 128596 20 +20907 1376 128596 20 +6178 5736 128655 1 +15708 1306 128655 1 +12284 2020 128664 3 +11876 224 128664 3 +24051 1067 128675 28 +15490 2693 128680 1 +18315 583 128770 1 +7549 4350 128783 5 +15840 2304 128797 9 +14985 5045 128800 7 +22606 1800 128801 1 +13727 4187 128833 76 +6942 91 128833 76 +12550 3031 128857 3 +9607 3489 128857 3 +5721 4021 128891 8 +22797 849 128932 57 +4866 1850 128932 57 +9717 3290 128934 4 +14445 6836 129002 9 +15262 93 129002 9 +5204 760 129019 1 +19664 4393 129037 24 +12765 1899 129039 1 +18316 5132 129039 1 +3468 11 129039 1 +18560 2582 129049 24 +4685 3583 129082 75 +22543 13 129106 5 +9967 5062 129106 5 +15273 2397 129118 3 +9140 3408 129140 33 +19001 4922 129141 45 +15584 4971 129167 4 +16164 3109 129240 2 +14978 6750 129241 1 +16411 4939 129286 1 +21472 4037 129308 1 +1612 5014 129331 9 +14056 1625 129335 6 +5795 2580 129337 45 +19948 5393 129382 1 +9221 1041 129382 1 +6132 5085 129418 23 +17707 1957 129418 23 +24590 549 129434 3 +23475 1212 129434 3 +11612 453 129471 1 +956 1847 129471 1 +4863 1915 129471 1 +4339 2203 129471 1 +19193 4843 129499 3 +18274 6278 129532 34 +7930 4490 129570 10 +6804 2552 129570 10 +8209 1426 129570 10 +15735 5647 129599 13 +22826 2767 129619 35 +18148 1591 129683 17 +13394 4262 129727 1 +5682 5709 129730 9 +516 2366 129732 1 +18392 4928 129744 33 +18670 4076 129746 1 +6893 5211 129747 10 +12476 2845 129818 26 +2018 1792 129824 3 +13504 1100 129849 18 +18330 1412 129883 1 +20858 5369 129883 1 +11901 5405 129906 17 +3500 1637 129906 17 +25633 817 129951 31 +22302 3444 129962 12 +13827 1822 129962 12 +20106 278 129962 12 +11084 5953 130022 1 +12119 4178 130027 51 +12324 4584 130055 21 +10751 415 130074 4 +15692 1183 130086 18 +9086 5859 130086 18 +5948 3649 130152 10 +8399 5139 130196 22 +22970 1903 130196 22 +24189 1195 130197 16 +7476 6673 130207 17 +1665 5290 130284 19 +17125 1517 130286 1 +20723 3723 130344 1 +2076 3319 130344 1 +2754 4648 130366 67 +8211 2394 130366 67 +5041 2982 130380 31 +6915 2537 130380 31 +15597 2469 130392 1 +17684 4573 130392 1 +9693 4907 130422 71 +4011 2135 130422 71 +6861 1356 130520 25 +16555 355 130520 25 +9519 2889 130606 1 +17170 4153 130606 1 +8886 1055 130609 3 +6633 2813 130656 26 +10307 4396 130718 1 +7720 3940 130745 1 +3064 3304 130772 12 +23008 2342 130836 1 +5067 6146 130840 4 +7167 3088 130841 48 +3003 4044 130919 3 +5385 3140 130921 1 +8002 5573 130932 7 +8952 1469 130932 7 +6790 743 130934 2 +3999 444 130939 17 +24394 558 130958 41 +9949 1087 130958 41 +5225 4790 130958 41 +18618 3013 131011 4 +775 111 131011 4 +1148 2681 131067 58 +19300 2119 131069 1 +4969 4298 131070 10 +14954 1677 131122 1 +17535 2426 131153 13 +18331 5160 131238 23 +20987 2868 131239 7 +9966 2587 131251 30 +7791 1257 131268 1 +608 1316 131268 1 +14606 1621 131268 1 +10029 197 131268 1 +3691 4920 131269 19 +9053 1806 131345 6 +8786 1677 131423 27 +19145 6276 131428 8 +23907 43 131486 3 +6543 3990 131520 1 +7352 1468 131528 68 +4007 5156 131529 1 +15413 1861 131533 39 +12436 1534 131533 39 +22079 2909 131533 39 +25254 479 131585 3 +541 1578 131585 3 +657 5435 131608 10 +10449 4508 131611 10 +14548 6848 131629 1 +3917 194 131629 1 +16899 2470 131662 1 +18611 3903 131665 1 +17380 3247 131701 2 +18670 3795 131701 2 +14312 1917 131701 2 +12409 4623 131783 1 +13239 45 131783 1 +20731 1963 131804 1 +15244 5079 131804 1 +16544 6078 131888 36 +17929 730 131888 36 +4884 5604 131935 1 +6998 2194 131956 9 +11526 6529 132011 4 +7111 6473 132013 5 +21125 300 132013 5 +24532 269 132013 5 +26315 50 132015 1 +5395 6696 132052 3 +17554 125 132109 2 +1272 2787 132109 2 +8838 1406 132122 2 +24779 322 132122 2 +6950 647 132122 2 +16124 3176 132166 9 +19344 3260 132211 12 +12480 975 132212 5 +3526 1612 132214 28 +21333 72 132247 18 +12419 4567 132257 1 +22125 2475 132257 1 +10318 2185 132292 1 +22940 544 132297 13 +2368 1993 132322 27 +70 5762 132324 1 +12128 5424 132352 1 +22014 1224 132363 44 +23078 2100 132364 24 +18602 4942 132364 24 +12662 466 132364 24 +17992 1974 132387 26 +16425 596 132387 26 +20038 5663 132432 16 +12843 3400 132521 12 +3250 3642 132521 12 +1005 4064 132583 24 +3082 2529 132650 76 +21419 679 132655 1 +15570 528 132657 55 +1615 4858 132657 55 +25462 261 132657 55 +13980 2470 132661 37 +12244 5720 132750 17 +24660 1322 132750 17 +12337 4803 132785 1 +133 5366 132858 12 +8137 4677 132878 4 +24117 295 132878 4 +9823 1955 132880 48 +8972 2866 132880 48 +22776 162 132889 1 +19972 1276 132898 8 +15888 1963 132928 1 +17544 5079 132928 1 +3565 4129 132935 2 +8759 2997 133022 2 +6777 6601 133026 1 +2135 6087 133041 26 +18713 4922 133043 46 +20842 3724 133054 81 +18758 2611 133131 27 +3121 6726 133155 2 +3924 316 133155 2 +12206 1678 133203 1 +4432 5612 133210 46 +2349 3057 133248 1 +2173 158 133250 39 +14220 1260 133260 6 +16779 4089 133264 1 +17349 2206 133301 1 +14124 4836 133301 1 +15378 2153 133370 6 +17034 3483 133390 1 +19153 902 133409 1 +4410 5862 133409 1 +4760 278 133409 1 +22089 278 133409 1 +11214 2790 133450 7 +23845 850 133451 1 +19572 2932 133459 1 +23292 1939 133459 1 +4759 5239 133466 1 +14728 1803 133466 1 +6747 2731 133535 2 +12312 3554 133609 2 +6959 4264 133615 4 +459 2241 133661 1 +12938 409 133661 1 +14866 3449 133661 1 +6842 1555 133668 9 +19242 721 133670 5 +13710 4801 133678 17 +6559 2855 133683 20 +18793 4920 133732 1 +10591 2308 133737 1 +7136 182 133803 1 +11290 1934 133803 1 +9114 4947 133809 1 +16190 2095 133809 1 +16498 899 133838 15 +24644 84 133838 15 +17275 1245 133839 14 +24005 2021 133843 1 +2807 2763 133942 1 +10952 5395 133963 24 +206 1134 134040 1 +1662 2438 134041 2 +600 4604 134041 2 +22100 3985 134048 1 +14114 535 134048 1 +22616 1018 134084 1 +14508 5657 134130 47 +22376 876 134130 47 +4707 6314 134159 11 +10962 2477 134188 1 +19409 1035 134188 1 +8952 3674 134202 1 +902 3978 134210 63 +13505 3064 134210 63 +1104 6000 134289 1 +6625 3530 134387 1 +16454 2475 134387 1 +2314 4599 134418 1 +14378 2443 134418 1 +3703 5135 134444 1 +6165 227 134444 1 +3430 816 134469 36 +16108 4971 134496 12 +16272 2071 134496 12 +19529 6542 134537 4 +16601 6346 134543 5 +3225 3820 134548 4 +3801 3222 134548 4 +22754 1061 134548 4 +19561 3645 134561 1 +18125 3397 134561 1 +12972 3311 134569 20 +3623 1117 134588 10 +8603 1007 134638 1 +1495 4660 134638 1 +15629 3048 134639 10 +614 4707 134650 1 +24701 1896 134652 6 +9014 645 134684 1 +13162 4477 134698 13 +7874 2565 134698 13 +69 1880 134730 76 +6758 3566 134819 8 +4436 2114 134819 8 +16382 4715 134841 72 +20177 1539 134841 72 +8927 1708 134841 72 +3420 5417 134842 3 +12910 1084 134911 11 +5547 5985 134948 9 +1353 1057 134948 9 +3061 410 134955 27 +3706 3522 134994 6 +21407 3573 135009 69 +2770 6895 135064 4 +16737 147 135064 4 +9015 2688 135072 8 +2649 786 135072 8 +8766 2850 135072 8 +8737 3319 135072 8 +11921 1119 135085 1 +11481 3380 135136 1 +20565 3662 135136 1 +21708 4371 135174 1 +3100 1537 135219 1 +13617 2182 135219 1 +11557 4665 135250 16 +7815 1048 135319 12 +15088 3430 135402 1 +837 399 135402 1 +6538 1277 135417 2 +19353 3405 135430 1 +9869 3492 135441 30 +16457 584 135470 4 +18648 5150 135470 4 +13341 1308 135470 4 +1814 5746 135472 1 +12742 897 135548 5 +4266 4987 135548 5 +5616 546 135600 59 +22728 855 135606 45 +14592 656 135679 2 +9754 4283 135679 2 +20914 2103 135679 2 +22538 2875 135682 1 +15902 5592 135753 25 +4065 4157 135767 1 +19963 3468 135773 3 +6070 2608 135777 2 +8390 3079 135777 2 +16719 995 135781 7 +953 1091 135806 1 +20476 4453 135806 1 +1733 761 135806 1 +22079 4147 135820 5 +26198 455 135820 5 +9282 5173 135914 1 +9606 874 135943 2 +10479 5055 135949 14 +1455 4758 135963 1 +9132 1740 135964 2 +18787 3719 135964 2 +18732 1427 135972 83 +18264 2665 135973 45 +13671 6667 135975 1 +5832 2421 136015 16 +3628 4621 136015 16 +7171 6114 136016 4 +11482 5934 136021 1 +19807 1108 136021 1 +10010 1891 136095 14 +15404 5834 136166 1 +15385 6040 136197 23 +73 3829 136284 1 +7839 6191 136290 59 +11091 4043 136314 4 +14768 5370 136342 1 +13661 570 136342 1 +5795 4613 136348 1 +693 3972 136353 39 +5406 6951 136421 19 +6613 6752 136450 3 +3401 6382 136498 12 +21815 660 136498 12 +7555 2964 136586 90 +1603 1296 136644 1 +8933 3021 136644 1 +21697 2725 136644 1 +16341 4518 136645 9 +1612 2744 136652 1 +6597 3952 136652 1 +20966 3169 136664 2 +11841 2144 136664 2 +6333 756 136664 2 +5711 7042 136712 5 +3924 33 136713 4 +2713 1798 136726 5 +12096 5244 136726 5 +11779 6291 136742 1 +10471 5435 136814 16 +16098 5590 136831 8 +3583 3946 136894 1 +9813 2713 136894 1 +24503 383 136894 1 +10299 4148 136990 10 +12353 6429 137047 9 +3871 5130 137069 1 +7389 4177 137108 1 +21258 5381 137132 3 +8555 5655 137133 25 +6052 3305 137144 1 +13670 6986 137223 2 +15979 868 137313 74 +4188 6719 137359 49 +18973 6508 137360 2 +5984 534 137360 2 +20924 360 137398 1 +9010 6682 137398 1 +19858 5457 137399 1 +22127 4156 137434 4 +7082 5654 137510 81 +2195 1388 137510 81 +2738 6352 137517 12 +643 6832 137537 8 +22093 1114 137560 7 +3264 6763 137655 4 +11613 279 137655 4 +5762 5587 137688 1 +10456 2244 137718 2 +15618 4798 137718 2 +3572 4356 137738 1 +6953 3639 137740 1 +13516 6322 137836 20 +376 5514 137909 1 +23463 359 137909 1 +17056 1169 137909 1 +16441 6663 137918 18 +4284 2583 137919 1 +21466 3272 137939 1 +18175 2371 137965 1 +6301 2346 137965 1 +13825 5744 138010 1 +4376 4528 138014 4 +1949 2514 138014 4 +6050 6515 138042 9 +12532 6167 138108 14 +14334 1916 138110 41 +18648 1319 138130 1 +2559 6673 138179 12 +804 3823 138189 12 +4109 3480 138207 3 +16906 3562 138207 3 +10727 7038 138287 1 +17329 6678 138352 2 +21098 102 138389 19 +8359 4272 138438 2 +21409 3296 138440 3 +19927 3746 138440 3 +7248 918 138450 1 +7807 3953 138456 5 +22713 950 138477 2 +806 4894 138481 1 +18836 1976 138561 1 +589 3653 138581 16 +7490 2452 138583 2 +4451 4318 138658 1 +20310 1985 138659 1 +9049 1722 138688 9 +15466 6296 138690 1 +10380 3301 138766 3 +2366 6086 138769 1 +20232 6287 138842 42 +19109 6581 138844 13 +8938 4309 138921 68 +5016 6767 138935 13 +6836 2470 138977 3 +13027 3940 138981 1 +3153 418 138983 1 +3312 2351 138999 8 +24255 1911 139006 1 +1262 2904 139085 2 +10391 3405 139149 3 +13907 2046 139165 3 +20623 580 139165 3 +4288 2651 139165 3 +5602 5366 139175 1 +5861 5540 139255 9 +15762 1502 139255 9 +19084 1700 139274 27 +567 109 139291 1 +12688 2902 139294 1 +11487 4140 139294 1 +10004 3204 139381 1 +11513 4229 139455 1 +19626 6598 139456 1 +15988 4615 139536 13 +22329 3723 139596 38 +4093 1798 139596 38 +9746 1521 139596 38 +9149 2646 139606 1 +14666 116 139606 1 +7477 3265 139615 14 +24559 917 139667 21 +12068 1013 139673 29 +3573 1382 139691 2 +6105 4158 139692 4 +21443 1003 139692 4 +258 5248 139694 21 +20917 1039 139784 38 +14479 6003 139784 38 +3830 4978 139817 4 +13635 4884 139834 1 +18865 766 139846 1 +13921 5906 139846 1 +10419 4376 139887 1 +4238 5839 139935 1 +2772 5824 139939 1 +14925 6596 139943 3 +6972 2259 139947 1 +24072 127 139952 1 +4185 561 139952 1 +8777 4684 139981 1 +9254 2358 139981 1 +12009 2782 140019 1 +11192 1236 140019 1 +7682 1880 140024 3 +785 3612 140028 71 +16556 4053 140078 2 +3255 2989 140078 2 +22048 2816 140079 6 +6972 2148 140118 1 +19896 264 140119 34 +12098 2764 140119 34 +1028 2368 140120 23 +13296 4674 140120 23 +7034 1307 140164 64 +444 5735 140164 64 +11986 3309 140224 79 +1238 3985 140229 1 +3629 1924 140243 1 +18164 1998 140264 1 +9939 842 140284 63 +18133 3432 140304 14 +1188 5497 140376 18 +1995 114 140376 18 +19009 3437 140382 4 +17211 2863 140387 12 +9678 4179 140387 12 +15699 3307 140394 1 +20219 4368 140395 1 +1312 2674 140395 1 +3099 5813 140400 61 +18420 1229 140400 61 +6650 369 140411 1 +5538 3459 140442 3 +6599 3280 140445 48 +1957 3145 140523 1 +11088 4188 140580 71 +533 2854 140580 71 +21761 2333 140623 10 +543 3769 140642 31 +13567 5113 140679 9 +12014 2811 140697 32 +4088 3817 140704 62 +11840 5751 140718 1 +5465 4194 140817 7 +18654 2621 140885 1 +16998 755 140885 1 +1312 4713 140925 1 +2094 1994 140975 3 +19093 2330 140975 3 +11307 4775 140979 1 +16929 395 141030 1 +9099 5310 141114 1 +13215 1732 141114 1 +15471 1354 141132 78 +18324 4720 141192 1 +21215 5417 141206 27 +19767 1625 141206 27 +16121 177 141206 27 +13221 6981 141213 1 +22089 3602 141243 3 +21823 2902 141243 3 +16453 3174 141243 3 +21373 4451 141301 1 +13565 1911 141301 1 +18120 680 141301 1 +15475 2296 141309 12 +1220 6357 141323 1 +94 5113 141338 1 +13387 2940 141383 18 +1224 3087 141383 18 +22662 1015 141383 18 +7709 4253 141399 4 +24261 1096 141407 15 +16559 3419 141407 15 +6832 4490 141410 1 +2435 507 141410 1 +7269 6777 141419 1 +20274 265 141419 1 +3134 3503 141434 19 +3127 4054 141438 1 +15153 2988 141438 1 +18634 1212 141449 13 +19831 713 141449 13 +9455 657 141449 13 +18231 4475 141449 13 +9691 5690 141461 7 +17705 5607 141486 16 +13496 1185 141486 16 +18022 1385 141557 48 +9937 4101 141557 48 +14034 3135 141558 8 +8369 6877 141561 1 +15369 3707 141575 1 +7997 3192 141575 1 +10696 6994 141609 59 +0 146 141623 15 +12149 4646 141635 2 +11807 2396 141635 2 +18383 5848 141638 2 +9826 5594 141665 1 +1776 1448 141665 1 +23093 2607 141721 1 +21611 4210 141721 1 +21832 2832 141721 1 +21321 1548 141721 1 +13494 4829 141815 1 +912 2213 141815 1 +17127 3380 141820 1 +1479 4611 141848 2 +4226 1764 141895 7 +11989 6148 141912 1 +1875 2287 141975 3 +18346 215 142037 1 +15462 2901 142038 4 +17012 452 142054 1 +12634 1643 142054 1 +534 3007 142083 5 +17690 5892 142108 5 +14674 3839 142128 26 +157 317 142128 26 +2119 2886 142128 26 +15398 2636 142154 2 +5334 2678 142154 2 +16024 1728 142154 2 +6862 1728 142154 2 +7647 4853 142218 1 +93 2485 142229 70 +20612 3390 142229 70 +15600 1167 142229 70 +8499 2234 142231 11 +85 4808 142231 11 +17002 4414 142239 1 +2355 2786 142307 11 +22283 2854 142309 1 +13839 813 142314 2 +9592 3364 142345 2 +13230 1347 142345 2 +6434 4792 142363 11 +992 4917 142365 10 +6546 1468 142365 10 +4362 657 142365 10 +190 2570 142422 19 +17992 4472 142422 19 +11619 2342 142425 4 +14884 4230 142425 4 +1408 470 142425 4 +10354 5226 142477 81 +7611 4725 142483 1 +19578 4852 142554 11 +4289 1376 142558 7 +12487 655 142589 7 +1158 5690 142674 43 +3485 1352 142674 43 +9433 5876 142762 1 +7658 1166 142762 1 +8134 4820 142800 6 +8814 6813 142801 4 +10258 2530 142856 1 +16393 4512 142856 1 +10024 666 142898 1 +3268 2681 142898 1 +12581 3695 142898 1 +15734 5115 142930 31 +303 1927 142930 31 +17821 5773 142932 23 +7658 5941 142991 4 +1078 5784 142993 25 +7058 1258 142993 25 +13314 4590 143038 1 +2507 1957 143038 1 +5733 495 143038 1 +23426 3205 143040 10 +22534 2631 143040 10 +10318 2782 143071 1 +21630 898 143094 5 +23535 1285 143100 3 +23563 1658 143100 3 +11718 3276 143103 1 +18236 3766 143103 1 +10980 702 143151 2 +7085 2882 143194 8 +9765 4160 143194 8 +19165 202 143194 8 +3094 4041 143197 24 +7074 1135 143294 2 +7830 1664 143294 2 +20612 5264 143358 11 +1981 507 143371 5 +17537 1208 143371 5 +14008 6768 143390 1 +11361 274 143390 1 +13793 624 143415 1 +1533 4827 143415 1 +10178 1591 143415 1 +67 3803 143504 32 +882 3661 143519 6 +9707 1787 143557 1 +2220 776 143578 1 +8736 3597 143594 10 +8854 148 143598 1 +10016 600 143671 4 +20560 5518 143679 22 +23174 2754 143684 1 +13877 5625 143718 28 +20919 5525 143732 5 +10383 1432 143735 13 +14188 1106 143735 13 +882 4504 143735 13 +11025 3092 143799 7 +21779 93 143804 12 +2499 4715 143804 12 +265 2234 143804 12 +12472 2181 143861 1 +18163 658 143887 38 +7651 488 143894 4 +11443 3881 143894 4 +13 742 143905 2 +19375 3892 143905 2 +19851 5957 143947 1 +18130 4455 144031 3 +22551 1084 144031 3 +9240 1537 144031 3 +13988 7027 144034 23 +9264 15 144034 23 +7523 5269 144063 16 +8960 3118 144068 4 +524 3973 144113 17 +23544 85 144113 17 +1980 466 144113 17 +7687 5497 144160 44 +8308 4367 144259 1 +4672 2675 144259 1 +758 5977 144261 5 +15838 3390 144277 2 +9084 2750 144277 2 +8618 902 144277 2 +17314 5569 144284 29 +18460 4342 144295 3 +10 316 144373 34 +5719 5348 144373 34 +4729 1373 144465 4 +10362 5669 144465 4 +20806 2024 144529 21 +108 3193 144529 21 +19784 6444 144596 17 +10311 422 144601 2 +6006 6456 144601 2 +13300 5355 144677 16 +3852 1374 144688 1 +5489 4368 144688 1 +12720 6144 144757 15 +14067 583 144856 1 +22214 4037 144921 1 +13532 193 144969 1 +17218 5626 144969 1 +16305 6369 144973 17 +21291 673 144973 17 +12976 6702 144975 5 +5042 340 144975 5 +12617 4351 145027 2 +15454 2691 145027 2 +6086 6648 145037 50 +15171 2198 145039 1 +17545 5360 145077 3 +7756 136 145085 1 +8873 6906 145085 1 +7211 1244 145130 1 +12169 1287 145130 1 +5579 7017 145133 32 +7947 5308 145134 13 +19859 1821 145187 1 +4182 5948 145206 7 +5546 2160 145223 11 +18731 3809 145224 23 +18213 1641 145229 23 +3396 3405 145229 23 +20612 1996 145229 23 +9817 4689 145232 1 +6159 2179 145285 1 +435 3799 145330 1 +8612 1189 145333 26 +11488 2319 145333 26 +12617 2140 145351 6 +19629 1491 145351 6 +16095 1416 145351 6 +18420 189 145399 11 +4464 5116 145403 2 +23612 2527 145457 1 +18864 2257 145457 1 +5426 4087 145458 6 +8013 2955 145458 6 +1344 277 145539 1 +1617 4990 145539 1 +16591 1779 145539 1 +5448 6663 145608 8 +9 379 145608 8 +5141 4552 145610 1 +9553 2490 145610 1 +16992 1163 145627 2 +4792 3145 145656 3 +7308 2207 145752 2 +21323 655 145752 2 +2519 5551 145778 2 +16741 4943 145869 88 +274 2099 145869 88 +17472 2851 145915 32 +16426 141 145926 1 +4866 1853 145927 1 +6292 3446 145939 2 +15450 1908 145949 19 +22492 664 145955 1 +8178 3657 145960 2 +13484 810 145960 2 +11192 6746 145986 5 +5383 296 145986 5 +2831 1277 145989 7 +18304 4074 146004 1 +23743 2892 146047 1 +4748 5302 146120 8 +18706 4165 146140 4 +5637 15 146170 3 +12692 5875 146177 11 +873 1704 146243 26 +13165 6527 146245 43 +20331 5362 146321 8 +10060 1680 146321 8 +10736 249 146365 5 +5469 2679 146405 3 +4215 5769 146474 59 +13522 945 146474 59 +10933 2545 146491 14 +872 4497 146491 14 +13098 2886 146581 31 +5945 4156 146581 31 +18540 6984 146675 1 +7011 5796 146747 2 +7516 1246 146747 2 +20198 2417 146785 2 +2389 2563 146824 1 +147 4723 146826 1 +6647 347 146839 75 +16541 159 146839 75 +17476 4638 146839 75 +7791 1898 146839 75 +15315 1426 146841 2 +21769 1448 146841 2 +13010 3597 146841 2 +6440 4521 146842 1 +11961 3345 146865 1 +15911 329 146865 1 +21051 3222 146867 3 +21392 232 146885 1 +18268 6381 146885 1 +16175 6741 146945 3 +14725 4226 146949 1 +11982 3541 146965 7 +14961 4533 146988 42 +13478 1468 146989 21 +3249 5574 146989 21 +19509 3317 147038 2 +18124 2065 147135 1 +13899 3564 147139 3 +17109 1538 147158 1 +15427 1330 147160 2 +13906 4347 147234 1 +24207 1478 147234 1 +11437 6217 147241 1 +251 6670 147254 1 +20707 372 147254 1 +18999 2275 147272 15 +18937 3580 147275 10 +16572 448 147353 2 +17009 454 147394 2 +1980 6633 147447 1 +17201 6861 147481 4 +23647 2265 147533 6 +10687 93 147533 6 +2955 3902 147533 6 +2996 5668 147567 2 +23171 1260 147577 1 +7976 1571 147581 1 +9306 1128 147581 1 +20006 4686 147591 27 +7308 1645 147594 3 +2133 1028 147666 1 +573 4620 147668 1 +19613 606 147668 1 +18360 5479 147760 1 +15537 1563 147760 1 +1995 3390 147775 1 +5296 3652 147775 1 +2956 89 147775 1 +7820 4467 147840 7 +24992 523 147840 7 +1179 2161 147847 6 +9197 4881 147847 6 +8911 1934 147858 1 +2779 1554 147858 1 +11858 2514 147881 4 +16990 3048 147881 4 +20068 952 147882 21 +14584 4300 147886 14 +16391 778 147886 14 +9983 3381 147887 7 +14349 859 147887 7 +9481 3527 147889 10 +19927 5164 147977 1 +13792 1548 147977 1 +1503 2124 148014 5 +6091 6216 148032 20 +14591 5972 148036 2 +3154 1121 148038 7 +17442 4588 148053 1 +6509 2127 148070 4 +23145 3016 148070 4 +20489 5284 148162 3 +15368 2262 148163 1 +21122 314 148193 6 +3346 4493 148241 1 +14378 2549 148241 1 +12057 4042 148244 76 +2736 4095 148245 1 +8591 4682 148311 50 +24087 1314 148313 1 +4033 3554 148403 1 +12839 334 148404 1 +7994 6115 148472 1 +12959 6835 148498 9 +22084 3407 148508 1 +12965 4429 148526 19 +17855 2613 148526 19 +20312 1040 148531 1 +20892 531 148558 8 +19409 5754 148643 16 +4255 2430 148670 51 +7742 4418 148671 16 +19809 1355 148766 19 +22271 1274 148772 2 +12904 3914 148773 7 +20544 4723 148787 1 +22650 3618 148838 53 +21181 3424 148838 53 +1881 3564 148851 65 +1238 1856 148852 10 +1490 4902 148921 1 +19056 2508 148956 1 +14167 4534 148956 1 +17044 4409 148959 60 +15270 2633 148959 60 +14681 624 149008 2 +3992 6799 149016 6 +4127 2802 149024 3 +21844 3597 149027 3 +13694 6468 149046 1 +16208 3013 149052 21 +19330 4244 149076 11 +19756 2798 149076 11 +3209 2877 149089 1 +20363 496 149094 2 +9171 4635 149140 2 +4341 6071 149196 57 +8933 4869 149277 1 +3194 4212 149313 1 +14275 1664 149313 1 +8996 598 149329 1 +19297 4922 149331 1 +11152 649 149331 1 +19271 1471 149331 1 +10340 6884 149382 14 +5488 5055 149413 2 +1784 2665 149415 19 +20483 1940 149424 1 +10431 5539 149425 1 +10072 6838 149429 4 +16466 3152 149433 2 +8420 1120 149436 5 +2868 73 149440 9 +8204 2028 149441 1 +4713 5956 149445 2 +24675 1444 149478 1 +13822 1432 149478 1 +25365 213 149478 1 +20021 2280 149533 1 +14671 781 149543 2 +6262 3330 149546 1 +1151 4371 149548 5 +12656 2671 149548 5 +17138 2168 149617 9 +9841 1899 149617 9 +22784 1965 149648 17 +18115 5934 149659 1 +23738 2889 149663 16 +12980 1633 149762 1 +22444 3732 149762 1 +20482 5788 149764 18 +23038 983 149764 18 +5675 513 149765 1 +1505 5786 149855 1 +21839 15 149860 1 +17611 126 149904 1 +1525 5195 149959 5 +927 1847 149959 5 +7849 1249 149959 5 +4641 2397 150047 77 +4270 4645 150047 77 +24188 716 150107 32 +21439 2322 150186 4 +13447 1375 150208 83 +16351 3529 150215 30 +13056 6359 150216 6 +2905 2583 150231 1 +9120 6146 150277 35 +2268 6378 150299 22 +14530 6294 150325 39 +12273 748 150325 39 +22650 1205 150358 22 +8489 6908 150378 1 +8672 6595 150381 1 +23928 635 150396 84 +15192 1177 150428 21 +1942 5865 150428 21 +19079 6328 150431 5 +2711 641 150431 5 +13600 1383 150450 38 +11238 4452 150518 4 +7058 5409 150557 1 +6839 1633 150557 1 +8954 320 150569 32 +11778 6812 150659 16 +23293 738 150717 4 +671 3724 150811 2 +9072 4323 150817 6 +6376 4798 150840 12 +10922 4242 150861 5 +12880 1920 150861 5 +8890 6222 150917 1 +10380 820 150917 1 +3377 5563 150930 9 +14087 1479 150930 9 +11607 2363 150934 10 +2540 1444 150934 10 +11905 1310 150998 2 +6975 6562 151005 36 +4871 480 151005 36 +11756 358 151026 3 +4443 1566 151068 1 +24681 383 151069 8 +3017 6751 151158 1 +4373 4923 151179 18 +7303 863 151181 9 +13413 1906 151213 79 +7675 422 151310 1 +14508 5217 151338 3 +22917 3323 151347 2 +17546 6318 151351 16 +5363 724 151351 16 +18548 4922 151356 1 +8786 2437 151365 2 +16024 2976 151413 26 +7690 1962 151413 26 +4756 429 151416 5 +3799 415 151416 5 +8077 6728 151429 41 +20955 965 151515 14 +21528 199 151558 18 +12155 4459 151575 1 +1852 2683 151586 12 +21650 4002 151655 2 +269 422 151655 2 +1859 2618 151655 2 +8785 2276 151686 2 +15735 4282 151745 14 +15083 2760 151745 14 +17906 3632 151751 1 +4564 3410 151751 1 +17073 4604 151760 26 +5092 2438 151760 26 +17602 4934 151776 2 +14242 4676 151817 6 +9152 4955 151820 60 +6606 2076 151820 60 +14347 11 151820 60 +8971 6416 151821 1 +1756 626 151821 1 +25763 813 151834 1 +8181 1562 151834 1 +831 1301 151834 1 +8334 3722 151841 1 +8598 4397 151904 66 +378 2825 151948 4 +16607 724 151954 76 +15777 6196 152029 1 +16031 4135 152046 1 +9032 3885 152125 9 +4040 6928 152126 50 +6711 4633 152160 2 +7051 406 152178 1 +3280 6376 152188 9 +7464 666 152188 9 +19000 2454 152203 1 +13760 2177 152203 1 +11929 2411 152203 1 +24801 995 152232 1 +8170 2934 152232 1 +10493 3113 152232 1 +443 1986 152250 28 +6751 2703 152250 28 +23529 1795 152251 63 +4830 4763 152251 63 +12324 484 152251 63 +9247 2262 152273 7 +17199 442 152273 7 +14855 4112 152273 7 +7141 4327 152343 29 +20956 1799 152348 1 +5065 5232 152429 6 +12831 1810 152429 6 +5236 3388 152438 7 +4545 5853 152451 1 +4047 1189 152451 1 +5139 691 152451 1 +8217 691 152451 1 +7130 691 152451 1 +19249 4764 152479 69 +18582 2508 152487 1 +13248 4444 152506 21 +3263 1312 152520 7 +3807 2613 152521 55 +17345 2566 152557 2 +379 4476 152557 2 +12541 940 152561 1 +18155 6604 152576 47 +13587 438 152576 47 +11345 4009 152664 21 +14771 2001 152760 9 +12656 204 152834 54 +1828 6497 152834 54 +18693 7038 152850 1 +17119 5861 152919 2 +5153 5995 152926 6 +10486 1047 152926 6 +13452 662 152926 6 +3440 2839 152958 1 +11365 4203 152958 1 +20155 5733 153003 13 +13413 1309 153003 13 +6806 4174 153051 51 +25651 38 153071 7 +1668 5785 153147 17 +8591 4495 153148 1 +3030 3778 153209 1 +5050 787 153217 1 +18523 6255 153217 1 +650 5815 153223 7 +13476 1227 153223 7 +17064 6779 153285 15 +13316 4097 153297 1 +1202 2945 153297 1 +16100 3395 153298 1 +22102 2335 153337 1 +18614 3384 153339 3 +21116 2460 153362 15 +15313 6786 153389 2 +20673 1018 153413 4 +14472 6024 153413 4 +7948 2447 153425 57 +966 1946 153495 8 +1128 3920 153522 3 +22674 2773 153547 65 +11537 1267 153569 14 +2371 6406 153663 48 +19294 3505 153724 23 +7959 3537 153724 23 +5533 74 153738 6 +11117 999 153751 18 +15902 2938 153755 26 +16416 6280 153780 1 +17676 6560 153831 1 +21659 521 153859 7 +7231 601 153865 10 +4149 4231 153881 1 +21576 1299 153890 1 +23550 2787 153890 1 +17722 2956 153890 1 +6350 3168 153903 16 +9755 3874 153903 16 +9651 1258 153904 2 +15919 4191 153905 22 +14629 2957 153907 14 +50 4085 153907 14 +24181 2309 153930 14 +22282 2801 153999 10 +8294 4241 153999 10 +11072 3226 154065 3 +15318 6522 154164 4 +19648 1946 154199 28 +15705 1575 154274 1 +18979 2833 154274 1 +8697 930 154274 1 +22544 2343 154360 3 +13915 1918 154360 3 +16582 6228 154381 2 +3618 579 154384 4 +21 1729 154400 2 +3807 1694 154400 2 +19352 4659 154424 11 +5356 1088 154509 5 +1398 2702 154533 1 +6777 2085 154533 1 +17016 5894 154620 1 +11993 1148 154620 1 +18227 6541 154621 1 +3458 1602 154669 31 +21386 4312 154722 15 +19447 4302 154735 1 +1876 670 154765 2 +10705 4502 154766 5 +15133 6535 154770 5 +8851 790 154786 14 +21087 2863 154786 14 +4425 3389 154786 14 +15340 1771 154802 23 +11439 414 154803 1 +2271 3423 154844 1 +7830 3089 154887 8 +844 937 154887 8 +18329 284 154920 2 +21243 4815 154937 1 +20040 4847 154978 11 +17783 2856 154981 80 +13873 1954 154981 80 +11105 6828 155029 34 +11158 4381 155043 1 +6599 2661 155043 1 +7201 1623 155099 19 +17150 4741 155128 1 +17752 5410 155131 3 +13430 4968 155191 16 +12388 2074 155191 16 +15320 5159 155197 6 +22666 3217 155199 1 +11788 2177 155205 1 +774 353 155205 1 +17207 1008 155283 1 +14081 6240 155297 4 +10732 802 155297 4 +12467 5277 155299 1 +18776 1765 155299 1 +15801 4847 155369 4 +3766 2179 155369 4 +15736 16 155369 4 +6047 552 155379 1 +7711 4309 155379 1 +12743 435 155384 21 +13428 4715 155386 2 +3940 3793 155425 45 +874 6411 155426 2 +16041 3540 155430 1 +8130 4115 155441 67 +10329 576 155458 6 +10989 6631 155530 19 +8363 4376 155602 2 +16876 6933 155614 1 +19160 1368 155688 5 +758 1721 155688 5 +18277 3953 155688 5 +9716 2014 155692 2 +17920 4038 155694 1 +10589 2507 155705 11 +19892 1037 155705 11 +2719 1464 155716 3 +3010 5193 155721 1 +2789 3222 155787 40 +2620 3820 155787 40 +9426 6161 155794 60 +8541 488 155862 1 +18674 5638 155862 1 +18546 72 155941 4 +15357 5568 155946 7 +2109 6674 155947 7 +22153 2410 155948 1 +7430 3765 155948 1 +18321 5671 155955 3 +14991 3297 155959 17 +15976 482 155959 17 +10912 283 155959 17 +19720 6098 156052 28 +11339 944 156052 28 +12667 1356 156095 6 +6709 4482 156095 6 +13107 6670 156189 64 +14419 57 156189 64 +18162 4213 156200 15 +16941 2829 156200 15 +20194 4699 156217 2 +21071 1839 156217 2 +19496 1996 156217 2 +11820 1645 156217 2 +3724 5895 156246 18 +7675 1463 156324 1 +11362 1793 156324 1 +15759 3041 156346 27 +18335 6397 156349 1 +3705 6726 156386 1 +10057 316 156386 1 +15288 6938 156417 45 +20883 1322 156419 23 +20434 2987 156478 1 +21544 2232 156496 18 +11015 290 156513 1 +9076 4256 156514 17 +12088 4900 156562 18 +2718 3732 156596 2 +2199 2626 156641 3 +4987 870 156643 16 +24480 124 156658 5 +5654 1065 156658 5 +15937 4060 156671 1 +9292 1168 156671 1 +6010 4628 156672 1 +14887 4624 156698 1 +5108 523 156700 11 +21102 3825 156700 11 +23131 2381 156710 33 +4575 4661 156710 33 +22026 1541 156727 1 +872 1819 156769 2 +4443 6355 156868 8 +2084 687 156868 8 +12978 2725 156869 18 +8159 4528 156872 6 +2896 1433 156877 23 +2019 5270 156878 67 +13109 1772 156878 67 +19943 491 156883 1 +23923 1212 156891 1 +14600 5866 156893 2 +16501 6933 156963 2 +9431 829 156993 13 +5736 951 157043 3 +21024 3027 157063 1 +10498 3415 157063 1 +13068 600 157063 1 +10836 2223 157064 1 +23 186 157118 23 +6249 5452 157126 1 +6275 3044 157182 1 +18309 2510 157259 11 +5261 394 157302 1 +10859 6433 157320 6 +17042 609 157320 6 +16672 875 157383 1 +17592 2195 157383 1 +20648 3972 157383 1 +13487 524 157385 16 +6059 1567 157445 6 +730 2815 157447 41 +5203 2944 157497 75 +11775 4098 157497 75 +167 424 157498 5 +4232 1789 157498 5 +10127 4087 157505 15 +18189 1881 157507 1 +18026 2715 157536 5 +15304 853 157553 35 +17608 5404 157584 8 +7685 2037 157591 1 +9052 6111 157643 74 +19394 1637 157646 5 +3005 6128 157715 5 +15019 6311 157743 1 +12801 1634 157744 39 +12097 1597 157748 24 +5359 6368 157751 13 +14849 889 157752 1 +10539 3312 157789 1 +19947 718 157795 1 +13074 2825 157805 1 +15507 6356 157823 43 +8770 995 157843 10 +21481 3949 157862 1 +8618 1633 157876 1 +13715 5409 157876 1 +19009 4538 157930 1 +10211 2504 157930 1 +13718 3250 157972 2 +16108 5600 157975 1 +214 1442 157975 1 +4643 6226 157980 12 +15533 862 158037 5 +1846 3661 158037 5 +6038 2519 158037 5 +14275 6728 158100 45 +20942 1098 158107 30 +4411 3000 158117 1 +16615 1820 158117 1 +12971 1926 158117 1 +20954 123 158127 17 +13489 4766 158129 1 +22033 1406 158129 1 +6470 5020 158224 1 +8993 143 158280 39 +19957 6504 158325 3 +21894 4242 158338 5 +19002 3167 158360 53 +13916 2613 158414 9 +8585 1194 158446 1 +24013 331 158523 36 +20218 4846 158547 48 +5914 1709 158629 2 +15372 2752 158661 1 +13671 5882 158678 1 +19610 1036 158719 1 +13848 6070 158799 1 +16423 866 158799 1 +384 3382 158821 1 +15948 2929 158830 20 +18403 3365 158830 20 +6166 1170 158850 1 +6552 6918 158851 5 +5689 4646 158924 1 +6400 2915 158940 2 +11650 5 158940 2 +5915 3690 158953 4 +3300 2534 158967 1 +11184 411 158969 3 +19839 2096 158987 4 +21287 1744 158987 4 +9042 2243 159000 1 +881 3429 159000 1 +17200 2820 159028 14 +13361 1746 159028 14 +22526 2980 159040 1 +338 561 159130 1 +18734 4360 159131 1 +20140 135 159157 20 +9559 5850 159185 1 +5763 1901 159193 5 +22615 2849 159198 1 +10452 544 159239 29 +565 329 159264 2 +12749 325 159264 2 +15851 5034 159293 29 +3843 1313 159294 37 +12057 4494 159313 60 +8112 1953 159393 10 +17282 1767 159393 10 +16216 3322 159393 10 +2632 1767 159393 10 +18257 4120 159413 12 +16234 4587 159444 1 +3123 2455 159444 1 +25295 157 159471 1 +6820 2543 159540 16 +612 5196 159544 1 +21736 2436 159607 3 +20924 3309 159705 1 +6361 5349 159724 1 +9687 1693 159724 1 +5684 1693 159724 1 +3899 6784 159729 51 +22119 754 159784 10 +18944 3203 159847 9 +2435 2844 159850 1 +3449 6401 159930 1 +3771 4132 159933 1 +7352 694 159933 1 +734 1458 159933 1 +13308 3981 159952 10 +16968 6229 159956 40 +2862 7013 159991 25 +8052 7016 160019 1 +6640 26 160019 1 +1956 5052 160029 2 +6298 5404 160107 8 +10699 2775 160111 32 +17827 5510 160128 1 +20274 4109 160151 1 +9073 4434 160216 12 +19974 5606 160219 17 +20850 3041 160252 15 +22136 2034 160252 15 +14125 3722 160252 15 +1522 2989 160331 31 +15576 4053 160331 31 +11125 1774 160381 1 +1691 1007 160382 26 +15326 2549 160390 4 +2595 164 160390 4 +6786 4076 160467 7 +20845 4913 160481 6 +13782 2129 160481 6 +353 4173 160519 1 +15164 3056 160602 21 +16761 6357 160633 8 +6982 3468 160637 3 +22225 2487 160637 3 +275 6413 160645 5 +17432 5455 160670 1 +5893 3781 160681 64 +11227 5497 160736 1 +1552 5027 160739 1 +15697 2287 160741 34 +5024 1297 160758 7 +8428 681 160829 1 +13764 5681 160920 37 +10521 1361 160920 37 +13863 1143 160922 1 +1469 2791 160922 1 +22311 3885 161013 1 +12282 2367 161015 24 +14096 46 161016 9 +24997 1466 161025 53 +10549 796 161117 4 +5203 1537 161173 2 +11594 746 161237 1 +24535 411 161237 1 +15555 830 161245 4 +5924 4529 161332 1 +7198 2513 161332 1 +18665 2513 161332 1 +8688 730 161335 1 +8347 1571 161358 1 +24284 999 161388 46 +14845 2284 161395 81 +1990 4419 161405 1 +10356 6289 161407 23 +17640 753 161407 23 +6035 2274 161413 6 +8456 3260 161510 17 +8008 200 161510 17 +19377 4088 161511 1 +17121 2954 161511 1 +18256 2062 161536 1 +6010 6521 161550 2 +26235 160 161550 2 +24175 361 161550 2 +10613 6749 161569 29 +21156 3476 161570 1 +2049 3566 161570 1 +15427 436 161578 16 +15864 4955 161580 1 +2048 4092 161583 9 +11309 4782 161588 11 +6688 568 161592 1 +1 1123 161645 1 +8763 5792 161647 22 +18035 5976 161664 4 +17506 1066 161664 4 +8081 3643 161697 2 +26213 31 161776 1 +1176 5825 161806 1 +23572 818 161898 1 +1824 3994 161905 5 +1212 3048 161905 5 +8487 2722 161918 1 +17301 2627 162014 1 +17231 4415 162014 1 +1778 3053 162017 7 +20987 4752 162025 10 +14394 3123 162052 14 +15338 3648 162069 29 +14698 2578 162069 29 +23172 291 162077 1 +9211 609 162139 1 +7528 5255 162139 1 +20208 960 162145 1 +181 2550 162211 30 +14998 803 162211 30 +19934 34 162211 30 +9647 6813 162212 1 +11938 229 162212 1 +5121 229 162212 1 +1182 2396 162280 14 +273 4648 162287 41 +18374 5 162292 2 +13200 5538 162302 15 +8396 24 162302 15 +19262 6469 162307 1 +15543 573 162307 1 +617 4859 162331 30 +1724 1892 162341 3 +21443 4282 162365 6 +17661 3975 162386 1 +14336 2389 162399 45 +16646 4263 162459 56 +14653 5034 162461 34 +15573 2978 162471 2 +24034 378 162471 2 +852 5804 162485 1 +12104 1238 162485 1 +19602 1748 162524 10 +16157 6107 162525 32 +22234 3157 162535 11 +5119 5185 162577 30 +5631 559 162611 1 +14835 3054 162628 11 +24764 1241 162628 11 +3017 6818 162632 1 +4447 3673 162633 1 +25661 931 162635 1 +12024 4146 162697 12 +1163 4488 162699 40 +14617 2554 162699 40 +12455 3299 162704 18 +12694 6335 162791 3 +10695 707 162791 3 +17208 341 162829 25 +15636 5934 162833 1 +1052 904 162919 1 +23046 760 162923 1 +16045 3249 162925 2 +12299 1990 162925 2 +356 1803 162925 2 +18561 6229 163024 2 +5607 1438 163050 1 +12239 5604 163050 1 +11541 6499 163075 1 +11706 5481 163102 8 +14962 109 163127 56 +4275 1383 163167 19 +5063 2000 163198 2 +22560 3199 163212 1 +8363 161 163229 1 +24057 2311 163247 1 +8812 3680 163248 1 +9124 4612 163251 11 +9819 2430 163251 11 +17189 3833 163293 15 +23575 1994 163299 2 +6922 3771 163299 2 +13836 5746 163356 3 +19857 2332 163383 1 +3075 3977 163470 2 +18066 3888 163489 7 +13560 2671 163489 7 +17557 3950 163513 1 +7869 4632 163514 30 +11209 1123 163514 30 +16770 2410 163514 30 +11714 815 163519 1 +9437 5312 163519 1 +5630 2095 163528 1 +2525 2816 163612 1 +25237 102 163709 69 +18752 78 163715 57 +12453 1625 163715 57 +16792 4469 163716 11 +12591 2526 163716 11 +16516 2624 163734 1 +1357 5324 163821 1 +24134 969 163821 1 +16801 749 163821 1 +687 4113 163916 1 +1671 1569 163961 1 +3645 6067 164049 1 +12789 3848 164050 1 +17202 3436 164057 1 +686 1939 164066 1 +1835 4675 164069 20 +5791 2391 164160 1 +15444 729 164201 1 +12061 2820 164201 1 +24639 1413 164252 35 +2938 4641 164252 35 +6758 988 164252 35 +19599 465 164252 35 +19778 206 164252 35 +14124 7026 164313 1 +3285 916 164324 2 +12935 814 164394 9 +19264 1306 164403 28 +10650 225 164403 28 +1193 3637 164403 28 +10255 3612 164405 16 +1845 3345 164427 9 +19106 5583 164431 15 +5766 4520 164446 1 +6389 4505 164489 18 +548 1549 164559 1 +15583 871 164559 1 +12386 5749 164603 3 +17838 6150 164604 7 +16875 892 164604 7 +9916 5905 164626 1 +16202 1137 164626 1 +2761 2196 164635 15 +21682 2478 164684 1 +20692 2154 164704 2 +7688 1392 164704 2 +11934 1561 164704 2 +18036 467 164704 2 +18314 2095 164741 65 +17867 4195 164741 65 +8008 2847 164741 65 +17243 5257 164746 29 +8765 316 164776 4 +11023 6154 164776 4 +11347 230 164799 20 +13801 704 164821 1 +14229 2733 164823 1 +19809 858 164834 1 +3895 6678 164841 10 +15771 6059 164849 1 +7775 1819 164921 15 +20728 5586 164928 1 +22030 1338 164952 9 +15586 268 165034 9 +11302 4932 165036 2 +13821 4000 165037 3 +6055 3042 165037 3 +3228 2000 165091 20 +10183 313 165092 1 +6786 358 165150 19 +24851 1423 165208 8 +5943 4958 165240 1 +16036 4599 165242 2 +23136 1658 165242 2 +20981 3780 165243 1 +8909 4435 165308 9 +10810 10 165308 9 +8592 2308 165320 1 +7630 2752 165320 1 +814 401 165341 76 +9539 1428 165354 1 +8477 4209 165354 1 +17844 6793 165368 23 +9058 3206 165374 1 +12225 1879 165376 1 +4395 1678 165382 2 +4815 1523 165383 14 +5052 2203 165386 1 +13057 3090 165469 4 +8273 3286 165479 1 +9185 1363 165481 1 +15078 4635 165481 1 +10356 1617 165491 1 +21214 3603 165506 3 +18114 5264 165509 1 +17636 1298 165509 1 +10679 699 165509 1 +102 552 165566 22 +5043 1931 165626 6 +16149 3436 165628 79 +4614 3722 165686 16 +11419 1443 165688 6 +18277 5061 165698 1 +14996 1084 165759 2 +527 3721 165768 4 +20179 3321 165768 4 +21811 1222 165772 1 +17298 3443 165835 2 +8895 6629 165861 9 +12621 5650 165866 7 +7837 2169 165900 48 +16768 637 165997 1 +15596 3534 165997 1 +7693 1694 166009 1 +23391 3118 166009 1 +5266 4177 166034 42 +21787 2865 166034 42 +10500 5100 166047 1 +1192 6850 166052 2 +5490 1383 166056 22 +11981 2275 166056 22 +19953 3384 166056 22 +3867 788 166061 51 +20715 3838 166086 12 +10793 2812 166100 1 +11945 2492 166121 31 +11986 4013 166123 5 +13777 414 166123 5 +15634 2382 166123 5 +10593 4175 166124 56 +17933 4091 166175 3 +5698 3783 166179 32 +15135 825 166179 32 +18235 4277 166247 1 +760 3117 166249 19 +21420 3245 166267 7 +2434 2238 166329 1 +18282 1306 166338 8 +3834 3453 166402 1 +11884 100 166405 15 +4210 3459 166484 8 +10765 2980 166511 10 +6813 2515 166539 16 +8410 2936 166617 1 +14468 5454 166672 1 +2856 3807 166751 3 +19812 4379 166831 48 +15773 6173 166839 37 +19769 4187 166862 17 +6943 2380 166881 2 +19732 4487 166881 2 +13849 3433 166975 16 +2334 2900 167005 7 +2354 720 167007 1 +4165 6620 167049 14 +14430 422 167049 14 +22571 806 167108 4 +14754 4749 167149 3 +13741 2293 167149 3 +14866 1280 167149 3 +21993 1280 167149 3 +5999 2782 167160 3 +10990 3499 167160 3 +4525 748 167251 21 +9131 1570 167274 2 +15021 295 167274 2 +13406 1072 167275 4 +5174 2361 167277 34 +14201 3044 167277 34 +18389 1907 167280 27 +868 5594 167295 3 +12176 6287 167302 59 +14730 4861 167336 24 +1380 2181 167336 24 +14314 4141 167414 3 +5872 3544 167447 26 +16235 1245 167447 26 +7092 152 167452 2 +191 6612 167528 1 +4380 3094 167530 1 +19738 1398 167540 1 +908 1870 167552 28 +7781 5375 167629 9 +17871 4805 167631 2 +7176 2077 167660 13 +25863 630 167670 15 +11188 5888 167748 1 +5503 1013 167767 1 +15327 1457 167772 17 +14427 2262 167794 70 +12938 2814 167800 4 +751 3213 167800 4 +22288 2728 167801 19 +8891 2925 167852 2 +2960 4860 167863 9 +6832 4984 167901 1 +8882 1586 167945 32 +15275 1054 167950 59 +13610 772 167954 41 +5484 178 168043 1 +115 1902 168043 1 +14767 5741 168044 1 +17174 3226 168087 1 +10030 3816 168087 1 +14917 5995 168133 76 +3785 486 168162 1 +474 5681 168162 1 +16971 1361 168162 1 +15618 2212 168178 8 +5261 6509 168272 20 +7060 441 168283 18 +5359 4654 168283 18 +19343 2388 168283 18 +7713 5049 168381 10 +10738 3261 168389 10 +14243 1697 168389 10 +20640 227 168393 33 +17246 6493 168398 1 +13411 6524 168452 1 +1358 5100 168524 8 +3916 1942 168524 8 +18976 1196 168528 1 +14007 465 168528 1 +841 6622 168529 5 +11432 4124 168539 2 +15416 5420 168548 13 +17959 6298 168573 32 +20933 1858 168643 9 +18654 1476 168698 11 +25009 841 168698 11 +16446 1496 168699 1 +8492 529 168731 9 +7524 6038 168737 58 +2336 1004 168737 58 +7182 5779 168739 1 +2822 5394 168741 60 +10154 3325 168782 25 +11936 5864 168857 1 +16832 2210 168858 4 +15592 4832 168858 4 +21465 621 168908 11 +13145 4158 168908 11 +8978 3434 168909 30 +13119 4182 168935 5 +8231 5081 169015 3 +1147 1961 169015 3 +13360 3698 169039 13 +13210 4238 169042 2 +15186 6127 169059 2 +15189 3182 169065 10 +19765 38 169065 10 +1602 4974 169153 1 +2659 6302 169179 12 +10480 5658 169182 9 +19610 2810 169220 19 +11447 6275 169244 4 +23506 2906 169267 2 +13099 3219 169267 2 +10553 6343 169333 60 +12258 4476 169392 14 +15706 2518 169392 14 +2515 1913 169414 16 +12771 5129 169414 16 +16004 4670 169418 13 +16319 2044 169418 13 +2985 6537 169436 7 +4966 505 169436 7 +6580 41 169488 1 +10833 6881 169488 1 +2833 6418 169579 42 +11931 2357 169588 1 +19078 3502 169593 1 +24437 2244 169644 30 +14671 4214 169644 30 +10811 999 169660 16 +18258 560 169700 35 +7102 6686 169707 19 +17365 6201 169726 12 +18904 6024 169727 1 +8514 3907 169741 55 +10547 3303 169753 78 +6419 5575 169776 1 +20311 4352 169848 11 +17453 2690 169848 11 +16619 3535 169861 42 +20923 2801 169861 42 +3893 5903 169909 2 +8170 2922 169930 2 +11201 3380 169931 1 +1131 4957 169938 9 +17250 4266 169940 1 +25222 540 170032 17 +8003 5703 170042 1 +12930 5951 170075 1 +15466 5643 170092 44 +6406 4679 170098 2 +20755 1983 170119 8 +13683 11 170200 1 +1461 5361 170205 5 +11650 1681 170205 5 +11149 2743 170250 38 +1014 2326 170250 38 +19728 993 170250 38 +8891 3015 170259 24 +3775 3942 170259 24 +20726 85 170259 24 +2192 2926 170298 1 +4899 4116 170298 1 +5921 3713 170305 1 +12375 2636 170314 1 +18667 6358 170316 1 +9303 684 170316 1 +15830 3007 170319 55 +4260 4097 170344 2 +21316 1289 170397 4 +2434 5024 170462 5 +2685 312 170469 2 +16998 5305 170469 2 +2493 99 170470 1 +23051 912 170546 4 +750 3049 170548 4 +18289 5629 170556 55 +14269 929 170556 55 +6417 10 170556 55 +430 5143 170558 45 +728 1899 170558 45 +18497 6842 170559 6 +21866 200 170559 6 +6023 1398 170584 24 +23692 992 170584 24 +1617 64 170603 1 +8512 4168 170621 9 +14550 5124 170630 52 +19694 1918 170630 52 +24354 1478 170634 5 +18905 3796 170726 1 +12902 1516 170744 1 +22106 3124 170749 3 +11555 3918 170749 3 +986 2344 170751 50 +25240 1360 170784 49 +6645 1283 170784 49 +2708 1527 170823 1 +14450 2847 170831 22 +24433 809 170854 5 +14540 6233 170854 5 +14723 3989 170862 4 +18040 1713 170867 19 +865 4078 170956 25 +24325 1110 170983 1 +7074 5302 170984 8 +17561 5217 170993 3 +9654 2893 171009 6 +8028 3251 171032 13 +6344 3464 171032 13 +20706 1859 171084 1 +25654 478 171092 13 +18209 4928 171092 13 +22239 1636 171092 13 +11354 898 171092 13 +22339 2871 171188 2 +10747 3650 171188 2 +24564 1222 171191 4 +17500 5647 171274 4 +9929 395 171323 54 +10846 2903 171323 54 +1734 903 171323 54 +16292 2438 171325 5 +13416 23 171348 14 +18542 1823 171384 19 +9069 5219 171384 19 +4665 4326 171447 1 +16154 2716 171447 1 +24187 91 171484 1 +18817 2235 171484 1 +7104 3457 171577 2 +1735 3585 171577 2 +1442 5403 171594 28 +10268 1639 171594 28 +1182 6411 171611 8 +5206 136 171611 8 +23951 1624 171626 3 +17395 2643 171626 3 +14313 3785 171723 18 +6413 1785 171723 18 +7505 3526 171765 37 +4611 5527 171766 1 +16110 1251 171766 1 +17004 3914 171781 9 +16499 2662 171782 50 +13930 6047 171812 2 +14407 4841 171838 1 +19883 2201 171838 1 +3853 3068 171927 10 +11552 5447 172016 67 +6334 1595 172016 67 +3114 3524 172113 1 +15694 870 172113 1 +885 5330 172117 6 +6274 1712 172117 6 +2752 917 172178 2 +8335 5539 172186 1 +11264 3371 172187 6 +15897 2484 172193 2 +12461 2029 172193 2 +1856 4100 172194 10 +14434 2942 172194 10 +15086 2472 172235 28 +24411 705 172235 28 +21154 4021 172238 1 +2302 3021 172238 1 +11366 3199 172243 7 +13324 1820 172288 1 +24559 767 172382 13 +5820 4397 172386 46 +9411 4896 172476 8 +22467 2113 172502 1 +18426 4876 172503 45 +18659 969 172578 1 +19500 2953 172578 1 +14733 1090 172579 17 +8877 4366 172587 1 +13873 476 172590 1 +10498 3125 172619 10 +25112 1034 172630 25 +6667 6623 172631 1 +10920 419 172631 1 +3148 419 172631 1 +15534 2353 172654 42 +20280 1370 172656 6 +6088 474 172734 1 +3753 1372 172830 1 +2921 4193 172840 11 +4076 2537 172840 11 +10801 1689 172840 11 +10728 1991 172860 13 +9503 2666 172861 1 +5325 6436 172922 13 +1450 3716 172964 29 +6252 271 172964 29 +6062 1521 172964 29 +15495 3407 172973 8 +6887 5301 173054 13 +26262 12 173076 1 +19623 3546 173080 1 +1676 3496 173080 1 +8998 3081 173094 30 +23440 1999 173094 30 +5761 3402 173140 1 +3022 3640 173140 1 +5168 901 173140 1 +12814 251 173157 69 +14681 826 173195 1 +14551 1220 173195 1 +8378 2450 173263 20 +12080 5114 173264 2 +14795 6539 173342 13 +6605 503 173342 13 +16912 53 173374 14 +776 3824 173374 14 +6960 3165 173374 14 +6812 2363 173376 37 +17107 6386 173396 8 +25649 892 173397 11 +6425 1073 173431 1 +23522 279 173441 61 +7939 3683 173450 10 +18010 1782 173450 10 +19439 1577 173450 10 +3416 2021 173459 63 +15905 5021 173459 63 +15608 1457 173461 6 +9303 1192 173531 1 +9731 1515 173531 1 +4557 509 173547 9 +19460 2408 173603 19 +1062 313 173698 1 +17580 5950 173702 23 +14730 1092 173702 23 +12133 2841 173703 1 +19349 2905 173705 33 +4980 983 173705 33 +10075 219 173714 11 +8440 1099 173714 11 +13358 2562 173716 61 +512 4480 173716 61 +13384 5467 173734 53 +14152 1575 173734 53 +14561 1575 173734 53 +270 1342 173739 12 +8016 2978 173739 12 +18777 5462 173811 19 +11385 215 173811 19 +10750 5005 173899 2 +9432 2037 173899 2 +1593 719 173899 2 +14609 5485 173903 15 +11957 454 173927 56 +12808 3492 173968 49 +1526 3550 173968 49 +1946 3572 173969 23 +23420 2882 173969 23 +9518 588 173969 23 +16183 4785 173972 1 +14572 248 173989 1 +11401 6842 174038 3 +6069 44 174053 5 +9497 6486 174056 1 +11626 1518 174129 29 +22285 69 174163 4 +16955 5412 174163 4 +9003 2338 174166 9 +17530 1598 174168 22 +6428 4856 174168 22 +5781 2691 174169 3 +22347 3680 174178 9 +18090 4547 174180 4 +6429 1733 174212 5 +13287 519 174273 1 +8277 2558 174273 1 +23868 2689 174300 26 +17828 3513 174302 22 +19286 3529 174302 22 +2272 4438 174332 38 +11829 1169 174391 1 +16231 1758 174393 1 +18292 5092 174397 1 +3985 4893 174411 6 +11488 2988 174413 47 +15423 2704 174413 47 +21113 1136 174491 20 +1655 6188 174493 30 +2423 5475 174513 1 +6375 2428 174525 7 +7270 1273 174525 7 +3222 1286 174551 7 +15476 437 174565 16 +23725 2049 174565 16 +15318 2374 174630 1 +14082 1576 174668 47 +10119 2345 174712 33 +18675 4581 174712 33 +11737 1380 174739 33 +4178 2133 174744 1 +15189 5673 174763 1 +20839 1369 174763 1 +1115 4928 174778 41 +24773 1110 174781 2 +3313 5765 174843 1 +20016 1277 174843 1 +5889 2509 174859 1 +13234 4099 174864 10 +7905 2943 174864 10 +8741 5201 174885 3 +25835 653 174903 1 +13950 3063 174903 1 +12343 1347 174945 3 +12366 646 174965 15 +2693 19 174987 5 +13363 3237 174995 5 +3723 6198 175059 12 +18569 502 175068 8 +401 873 175068 8 +23234 373 175112 1 +9397 3840 175112 1 +13788 6212 175117 5 +17273 3274 175120 8 +11216 2980 175154 3 +979 3336 175201 10 +16715 2793 175245 4 +16722 1857 175245 4 +9172 1051 175314 3 +4385 3156 175314 3 +529 2528 175314 3 +1477 5987 175335 1 +910 5346 175350 1 +19588 1205 175350 1 +23124 284 175350 1 +22823 1641 175403 1 +9013 1644 175413 5 +8627 2716 175416 22 +10484 2854 175446 10 +12875 2754 175446 10 +16227 354 175461 24 +22117 2337 175477 67 +13176 588 175478 4 +13946 6716 175488 12 +5232 5478 175494 1 +6894 5294 175496 1 +98 1748 175496 1 +4844 3822 175575 2 +5100 1898 175583 6 +21447 4626 175640 1 +5708 5151 175695 6 +9903 1891 175695 6 +17969 441 175769 1 +272 6313 175778 7 +20292 4281 175786 20 +8703 6090 175811 11 +22630 2293 175879 1 +19819 413 175900 1 +17005 5548 175906 1 +6091 3693 176004 36 +14557 6475 176012 1 +18757 2983 176087 16 +13561 5579 176090 1 +19475 5007 176091 27 +19869 6785 176092 1 +23857 257 176092 1 +1436 616 176135 1 +13615 5815 176135 1 +11174 4720 176149 1 +18285 1207 176192 6 +6336 1866 176222 1 +11518 2025 176266 1 +9967 6754 176277 3 +20242 1602 176309 4 +5625 5034 176309 4 +12973 1300 176369 1 +21478 574 176434 1 +14489 2940 176434 1 +13672 3528 176434 1 +1028 2711 176434 1 +8517 2178 176462 5 +5795 2894 176469 1 +3561 6229 176506 34 +14995 6760 176508 1 +22792 3636 176540 20 +17744 3406 176540 20 +9543 5994 176560 69 +21587 3048 176577 1 +23443 867 176597 3 +21211 4510 176659 5 +4861 6096 176731 2 +18583 5480 176776 1 +23459 1562 176776 1 +8473 604 176776 1 +11246 2382 176789 6 +3312 1027 176801 1 +15871 4699 176802 33 +4716 1565 176832 2 +2877 5090 176860 8 +4655 2240 176870 7 +5377 2999 176883 4 +10353 786 176883 4 +22927 1858 176884 7 +8412 2848 176884 7 +11043 2227 176884 7 +17913 2461 176895 3 +9705 1131 176904 8 +12394 1189 176904 8 +21579 1707 176951 2 +2760 5287 176963 24 +10511 6731 176990 1 +17457 6795 176992 20 +6152 5695 176997 1 +11144 1776 177004 3 +18882 1828 177024 2 +12405 1104 177024 2 +24960 159 177117 1 +13269 3034 177144 1 +2362 3551 177167 1 +18706 1598 177173 9 +13942 3454 177200 1 +20375 3687 177227 4 +7874 5985 177232 1 +9023 6127 177293 1 +13890 2644 177315 1 +11138 1613 177315 1 +11202 2785 177315 1 +8139 524 177341 16 +2846 2112 177412 3 +10826 622 177501 3 +13115 358 177501 3 +6490 4046 177501 3 +3036 2016 177501 3 +21694 1108 177543 5 +2221 2690 177547 9 +7230 1804 177558 5 +15994 5173 177558 5 +7546 65 177558 5 +8576 65 177558 5 +5957 4145 177565 1 +22595 220 177575 1 +12057 4541 177580 10 +4788 2501 177580 10 +21079 5039 177604 3 +8019 1095 177607 58 +18394 5947 177607 58 +5486 6708 177608 8 +652 5088 177613 5 +18681 2332 177698 2 +18315 3542 177702 1 +14551 1692 177702 1 +19784 1808 177702 1 +7834 177 177703 64 +13989 6763 177706 3 +16815 279 177706 3 +5639 1563 177712 1 +14941 3753 177713 1 +12909 6608 177757 2 +4639 434 177757 2 +16163 6213 177759 1 +20180 5196 177819 5 +1547 6010 177837 18 +3347 7038 177875 1 +4727 972 177877 14 +7354 3795 177877 14 +4547 2128 177916 47 +9925 1385 177916 47 +16497 1525 177960 1 +4961 527 177960 1 +14157 5199 178004 1 +3506 1843 178004 1 +19976 1433 178094 1 +10210 5609 178094 1 +22489 3413 178095 1 +8994 5291 178117 19 +18262 1751 178117 19 +12736 4977 178122 44 +24889 1264 178122 44 +7703 6100 178151 1 +18846 2540 178163 1 +11373 3225 178258 11 +600 3524 178299 5 +10582 1251 178304 44 +7700 2364 178305 10 +16876 251 178305 10 +7715 4427 178305 10 +21072 2349 178305 10 +17830 5038 178315 5 +21279 4794 178347 15 +15788 3946 178445 45 +2816 854 178460 21 +2732 4270 178460 21 +1690 630 178460 21 +6320 6158 178487 3 +23424 884 178487 3 +10215 4168 178521 23 +18750 1189 178537 5 +9772 3324 178543 1 +20366 724 178549 48 +10254 6318 178549 48 +16488 2210 178630 50 +737 5004 178662 40 +20936 2038 178662 40 +11591 5361 178666 3 +14161 5850 178683 1 +17301 3726 178739 19 +7631 4894 178757 10 +6418 713 178814 3 +18108 996 178872 6 +14612 3503 178872 6 +15328 5817 178934 19 +613 1115 178964 1 +25687 614 179051 1 +9484 5334 179051 1 +15950 2790 179052 1 +16961 1019 179054 1 +13810 3960 179055 9 +18699 5250 179081 8 +18311 4436 179086 1 +22527 2233 179093 1 +12659 1116 179113 1 +8503 2879 179121 5 +11405 1 179127 9 +4538 1304 179145 2 +18968 4964 179201 1 +9608 2078 179201 1 +10166 4246 179271 7 +15053 1172 179271 7 +4642 1624 179271 7 +8809 6777 179304 1 +3310 6169 179311 58 +3655 873 179311 58 +7463 5782 179389 20 +11065 1568 179451 34 +5157 3506 179516 2 +12982 3536 179516 2 +8659 2086 179603 1 +22333 3776 179645 3 +9888 974 179645 3 +351 1191 179648 4 +9130 4432 179697 34 +4710 2610 179697 34 +10627 1522 179735 3 +12201 4091 179735 3 +3018 2777 179743 2 +18575 858 179743 2 +16449 2273 179781 1 +3079 488 179781 1 +1474 1880 179800 6 +15849 3627 179800 6 +12819 1535 179800 6 +15348 4353 179850 1 +18727 289 179850 1 +13580 3866 179911 92 +17608 2506 179929 22 +828 4460 179941 1 +12550 588 180013 53 +17719 4771 180069 1 +2907 2179 180069 1 +11230 4706 180099 26 +24184 2135 180115 1 +16846 5243 180171 1 +4097 1799 180171 1 +2348 537 180180 52 +10909 6137 180181 1 +7781 905 180181 1 +9257 6042 180183 22 +4832 5697 180188 13 +144 6248 180235 1 +3152 1437 180241 1 +16897 680 180241 1 +16386 1757 180241 1 +13583 1616 180256 8 +17838 5605 180258 22 +3756 1437 180258 22 +9277 4876 180268 7 +26601 84 180289 2 +21801 1721 180321 51 +3984 6367 180386 4 +14432 6524 180424 18 +12715 502 180424 18 +17726 16 180424 18 +22033 2122 180429 9 +3681 5882 180450 22 +13039 1701 180502 8 +11016 1119 180526 7 +15503 6780 180610 7 +4223 55 180615 4 +1192 2233 180645 64 +14118 6023 180648 16 +11339 5935 180649 3 +11021 969 180649 3 +7879 2857 180660 1 +14833 4185 180660 1 +5992 5801 180669 8 +1777 1241 180669 8 +22387 392 180718 1 +12233 3983 180762 1 +20961 3059 180762 1 +3847 1545 180811 1 +15249 3641 180824 33 +11942 1536 180826 31 +3072 2128 180826 31 +13065 566 180831 1 +1684 5597 180831 1 +14887 1987 180908 1 +16066 5055 180908 1 +1198 6489 180918 1 +1575 553 180918 1 +15281 553 180918 1 +2343 5193 180928 10 +20826 3126 180946 1 +11811 1666 180948 10 +8923 4840 180968 66 +21304 2844 181003 19 +11208 3146 181006 10 +20142 3052 181024 41 +13086 131 181025 1 +9422 6000 181025 1 +16014 1042 181025 1 +4645 6338 181037 21 +19764 704 181037 21 +8482 3260 181039 15 +3922 6800 181040 1 +19246 242 181040 1 +346 2386 181044 1 +240 4656 181044 1 +4494 6140 181045 1 +8137 1937 181090 22 +5161 5105 181090 22 +9030 568 181090 22 +1797 1561 181090 22 +14667 6919 181095 14 +19111 123 181095 14 +16462 1607 181099 12 +12265 3260 181123 3 +9268 1944 181123 3 +2395 4336 181217 28 +10570 2706 181217 28 +24405 933 181245 43 +240 2450 181245 43 +19497 3573 181305 7 +4967 3469 181305 7 +20410 5330 181390 4 +5023 1712 181390 4 +335 1497 181395 1 +16177 6566 181488 1 +14201 476 181488 1 +16582 4567 181552 1 +18579 1559 181563 1 +13844 5483 181563 1 +1168 475 181564 1 +7875 6116 181566 4 +818 2679 181570 2 +18389 4561 181600 11 +11974 2481 181600 11 +16829 6956 181601 13 +1436 6894 181606 1 +20830 1575 181677 17 +10382 2750 181731 54 +22085 621 181734 1 +12318 4728 181741 7 +6140 764 181742 9 +4532 4434 181771 17 +19199 2482 181772 5 +16273 880 181774 1 +2725 6162 181774 1 +1866 2839 181804 55 +2903 1636 181805 1 +14018 1171 181843 4 +12279 677 181860 84 +3302 6722 181905 2 +21682 3718 181944 8 +5785 4063 181980 17 +21136 447 181987 53 +12169 5886 182015 15 +1768 196 182015 15 +8563 1491 182036 1 +19282 854 182061 1 +1914 5920 182127 10 +16240 3017 182157 5 +6909 5781 182226 1 +14460 1649 182236 37 +6132 2484 182252 1 +21524 2650 182253 1 +13415 1464 182253 1 +8615 2928 182253 1 +20008 1405 182258 12 +11483 194 182258 12 +1033 6475 182259 2 +7252 162 182275 1 +16930 1876 182311 3 +17388 1993 182311 3 +20608 5770 182341 28 +16571 1624 182342 5 +13325 6647 182343 14 +24638 868 182375 2 +15069 1606 182379 27 +18094 3810 182379 27 +22927 1626 182379 27 +3552 2584 182409 20 +19868 3117 182425 27 +15504 815 182426 13 +14277 1092 182495 24 +5409 6123 182504 10 +3894 6983 182551 55 +23606 1511 182571 1 +14086 1867 182571 1 +17575 5791 182577 34 +1694 4407 182584 1 +19600 5113 182586 16 +5214 1854 182590 1 +4633 826 182590 1 +3392 2532 182642 3 +17245 33 182676 8 +3225 4395 182676 8 +14408 349 182676 8 +1518 2265 182676 8 +20370 2122 182677 3 +12960 4455 182772 34 +10313 2587 182772 34 +24050 2313 182774 2 +10033 2165 182825 1 +16592 389 182825 1 +18827 2164 182825 1 +2336 986 182858 1 +10629 6847 182904 33 +13514 6425 182954 2 +16028 4019 182968 55 +6454 2898 183037 2 +14151 6657 183038 2 +18218 6464 183049 16 +10356 1748 183050 12 +4484 1509 183053 17 +2543 1748 183063 17 +2482 3918 183068 1 +8391 441 183074 20 +9467 2024 183074 20 +2589 3230 183088 4 +3364 2160 183088 4 +10561 2921 183088 4 +4166 891 183088 4 +9755 6386 183154 16 +16531 5407 183242 34 +368 2009 183318 7 +14842 6377 183319 1 +21474 3256 183344 26 +386 3786 183344 26 +910 6095 183441 1 +16102 5805 183490 3 +7358 4568 183571 6 +14832 1223 183631 3 +12412 2154 183663 1 +23949 1416 183663 1 +14601 2350 183701 19 +5736 6142 183757 36 +19657 3114 183759 1 +3329 3085 183767 1 +10548 1391 183772 23 +8242 5422 183805 1 +16855 1223 183805 1 +17814 5185 183884 5 +19173 1857 183884 5 +2372 1857 183884 5 +16747 2774 183887 2 +7324 1370 183901 1 +1480 633 183901 1 +16792 4079 183911 7 +6030 582 183914 12 +6965 5640 183915 8 +2571 6548 183918 43 +11338 1778 183919 1 +17211 1391 183923 30 +17410 6134 183931 4 +2997 908 183931 4 +2724 3524 183933 12 +22947 2646 184013 73 +6168 1354 184013 73 +2174 2733 184013 73 +9804 309 184013 73 +12843 1754 184015 1 +17331 429 184060 2 +5168 6613 184060 2 +7589 643 184133 17 +336 5789 184221 48 +12382 6675 184250 1 +4269 2212 184289 3 +7659 321 184354 65 +20273 2185 184356 1 +11104 4857 184356 1 +17639 504 184418 4 +11074 2131 184418 4 +20368 4586 184422 3 +17349 6118 184486 1 +4104 252 184489 2 +18462 2916 184489 2 +603 3874 184489 2 +16340 252 184489 2 +5374 1084 184500 29 +7949 4705 184505 52 +8943 6576 184513 44 +3718 466 184513 44 +17869 1634 184515 1 +1461 2777 184518 49 +5750 2799 184526 9 +23555 2209 184526 9 +21424 3192 184529 1 +14009 499 184529 1 +4177 3351 184529 1 +3751 6904 184530 54 +908 6072 184601 21 +17894 970 184601 21 +14278 1614 184604 10 +8491 6186 184606 26 +20405 1591 184608 27 +2057 1679 184613 1 +15780 4186 184615 22 +19062 2973 184696 29 +21705 3912 184704 74 +16863 3130 184704 74 +9353 2122 184705 6 +23758 568 184736 2 +15944 2444 184736 2 +21546 1642 184821 1 +7817 765 184856 33 +12062 2248 184892 9 +6825 3937 184892 9 +5579 2771 184893 5 +23324 1251 184925 4 +652 5493 184925 4 +6072 298 184925 4 +2764 73 184925 4 +739 2325 184928 1 +7420 1950 184981 1 +8301 1022 184981 1 +14861 3898 185033 1 +14400 479 185038 26 +19068 5560 185038 26 +10664 1003 185038 26 +22208 2880 185048 3 +18452 4162 185048 3 +17341 1910 185064 1 +13501 2764 185135 26 +7811 218 185154 74 +7319 4780 185154 74 +1829 2863 185161 29 +12044 177 185164 39 +3421 3037 185180 1 +3418 3030 185180 1 +9779 3640 185182 13 +20989 2285 185276 3 +3277 4884 185281 1 +18487 4933 185300 2 +457 23 185340 8 +6717 6346 185369 4 +7619 696 185369 4 +16664 696 185369 4 +4712 943 185422 11 +3206 3207 185470 1 +13318 2513 185552 18 +7751 3097 185617 23 +8924 5980 185621 63 +18292 1062 185621 63 +8762 4531 185634 63 +760 4235 185728 1 +8711 924 185728 1 +9538 6228 185738 1 +12247 1477 185748 3 +12486 1004 185754 21 +3150 1106 185767 11 +9177 6714 185808 1 +21294 1409 185818 5 +2742 6894 185819 49 +1999 148 185819 49 +9754 6669 185820 63 +5060 373 185820 63 +15910 5640 185893 7 +2016 6558 185906 2 +1666 484 185906 2 +10866 134 185906 2 +5833 5023 185917 7 +856 6264 185922 17 +6538 778 185922 17 +19570 6421 185942 34 +3206 5660 185951 57 +20887 754 185951 57 +15692 3167 185983 2 +12271 3963 186014 1 +9941 2436 186045 47 +17940 1387 186045 47 +14119 4271 186047 46 +16543 1543 186053 6 +3408 5499 186053 6 +2715 2815 186060 16 +5498 4489 186094 1 +18586 1218 186126 1 +10660 5344 186133 1 +20310 1698 186133 1 +8723 977 186163 2 +690 2947 186194 1 +22478 2363 186231 1 +19835 3288 186254 1 +10575 6622 186260 19 +16733 5863 186279 30 +12341 5811 186297 7 +4717 1231 186297 7 +21719 4263 186298 30 +6958 4517 186306 7 +4968 2525 186306 7 +1243 535 186306 7 +1396 6376 186307 14 +13733 365 186318 2 +15361 841 186366 3 +17509 1469 186377 1 +289 3138 186378 1 +778 3137 186381 3 +2561 6487 186395 1 +25126 160 186395 1 +13986 395 186395 1 +14248 2254 186450 49 +19579 55 186450 49 +4247 2878 186450 49 +2918 1355 186463 1 +8557 3275 186485 35 +18705 304 186488 1 +5377 2577 186489 19 +12803 6567 186535 4 +14689 2955 186606 79 +16541 4087 186606 79 +5212 1186 186609 1 +14557 4069 186615 1 +2886 1052 186622 1 +3441 3179 186622 1 +17280 6530 186634 4 +17466 2217 186636 49 +274 3367 186639 1 +7131 3690 186713 65 +3014 1947 186715 1 +13928 5896 186729 2 +3957 680 186732 3 +13521 1035 186743 61 +3758 561 186746 4 +302 2085 186746 4 +15288 5005 186778 15 +23810 1243 186828 1 +14446 6004 186908 1 +22773 1038 186908 1 +1172 4910 186991 46 +19563 226 187044 25 +388 6180 187103 14 +535 862 187103 14 +10363 3644 187178 2 +20540 6002 187185 1 +8963 1080 187226 1 +197 4495 187233 4 +1764 4849 187247 1 +4474 2193 187247 1 +11971 4915 187258 1 +11865 2127 187258 1 +14695 3815 187280 11 +9469 5701 187288 4 +18263 3458 187296 62 +17523 3584 187296 62 +10202 9 187323 40 +20194 5292 187357 1 +2597 834 187357 1 +12333 4792 187417 42 +8408 4505 187456 9 +11690 2537 187456 9 +20047 1223 187456 9 +25609 988 187516 1 +11634 5583 187516 1 +25314 251 187534 5 +18356 3135 187590 2 +9497 3907 187590 2 +22690 124 187591 90 +4551 1607 187652 6 +4604 2866 187745 13 +9195 3407 187745 13 +9549 2335 187771 1 +13999 4167 187817 90 +18828 4181 187857 1 +16612 787 187857 1 +15240 3108 187861 1 +12769 2837 187861 1 +4203 1424 187877 1 +11811 3191 187888 39 +447 1886 187888 39 +21317 4376 187889 1 +16444 2483 187889 1 +13676 183 187889 1 +8801 11 187967 6 +17524 6348 188043 42 +25742 694 188043 42 +14892 1284 188046 3 +21161 824 188046 3 +10269 4934 188046 3 +19492 311 188046 3 +19540 4891 188133 3 +1809 2151 188133 3 +3593 913 188146 29 +9985 4772 188151 1 +21439 2535 188154 2 +16213 4514 188158 23 +2872 5692 188166 9 +15330 631 188166 9 +22418 3635 188202 7 +2304 660 188203 1 +12135 4069 188210 1 +25787 892 188210 1 +10538 2081 188210 1 +11522 5895 188238 37 +16627 6600 188302 1 +16078 112 188302 1 +10557 2259 188304 37 +4070 2142 188310 1 +2777 1773 188327 17 +10229 542 188328 16 +21861 64 188333 1 +13034 6406 188349 6 +18933 636 188349 6 +11584 191 188351 1 +11480 3678 188385 34 +3012 1465 188409 3 +25011 1313 188419 22 +1615 752 188486 18 +1207 2416 188486 18 +7587 3773 188569 29 +15422 2020 188668 20 +8565 3175 188689 1 +9930 3245 188704 2 +18018 2764 188704 2 +10779 1033 188704 2 +7315 1033 188704 2 +4505 4716 188706 33 +15201 5405 188793 41 +3719 4199 188798 12 +1978 3207 188893 29 +608 3835 188893 29 +20616 5970 188901 2 +24441 1266 188960 29 +4938 5776 188960 29 +3074 6514 189000 18 +7883 53 189000 18 +15619 3934 189042 1 +10183 69 189042 1 +19670 3039 189042 1 +5167 2464 189122 1 +21129 4608 189132 1 +16407 1471 189134 8 +23056 1007 189212 4 +7506 387 189293 1 +1214 5043 189293 1 +8959 4299 189299 1 +21650 3491 189309 1 +14164 3639 189318 6 +233 2499 189352 30 +10126 1071 189352 30 +644 3472 189352 30 +10586 5854 189423 37 +11702 6289 189454 9 +16770 781 189494 12 +12215 6261 189494 12 +6630 781 189494 12 +21659 4705 189510 1 +17070 2158 189514 16 +3275 4884 189514 16 +4430 2784 189573 7 +19565 1587 189581 1 +914 1545 189660 1 +9879 4885 189664 8 +228 6601 189716 26 +15298 441 189716 26 +18807 2450 189717 7 +8850 4924 189718 16 +2026 3270 189735 23 +7995 3772 189735 23 +17039 4798 189736 9 +1335 5550 189764 3 +11450 643 189848 1 +9614 3661 189848 1 +24465 1403 189881 1 +5125 1456 189881 1 +25168 814 189888 5 +22950 903 189888 5 +23613 1162 189898 3 +4942 1409 189927 1 +12887 4701 189938 13 +6820 5767 190017 64 +21773 2688 190039 1 +12238 6618 190040 3 +5879 424 190040 3 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=18555,vsize=26686,psize=7042,req_len=9255).predictor.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=18555,vsize=26686,psize=7042,req_len=9255).predictor.best" new file mode 100644 index 0000000000000000000000000000000000000000..37f13e68369d3c2af5bdb8a3033e9ba56f40cab4 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=18555,vsize=26686,psize=7042,req_len=9255).predictor.best" @@ -0,0 +1 @@ +1584480353 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=18555,vsize=26686,psize=7042,req_len=9255).prophet.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=18555,vsize=26686,psize=7042,req_len=9255).prophet.best" new file mode 100644 index 0000000000000000000000000000000000000000..df139f38fdb627f6ad4cec1bdbb8de916717a6e7 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=18555,vsize=26686,psize=7042,req_len=9255).prophet.best" @@ -0,0 +1 @@ +1490520673 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=18555,vsize=26686,psize=7042,req_len=9255).simple.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=18555,vsize=26686,psize=7042,req_len=9255).simple.best" new file mode 100644 index 0000000000000000000000000000000000000000..8661a64b6fff7059e4950a07c804bf4ebef00a99 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=18555,vsize=26686,psize=7042,req_len=9255).simple.best" @@ -0,0 +1 @@ +1741234753 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=22538,vsize=29231,psize=27958,req_len=9842).in" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=22538,vsize=29231,psize=27958,req_len=9842).in" new file mode 100644 index 0000000000000000000000000000000000000000..390af8caa9e72ebd4a855b5c9f5b7a075b848589 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=22538,vsize=29231,psize=27958,req_len=9842).in" @@ -0,0 +1,9843 @@ +29231 27958 9842 +10657 8156 65 1 +4979 4894 66 8 +4766 4054 155 2 +3636 16395 190 19 +15725 6288 190 19 +12306 14753 232 5 +3290 11603 280 2 +2331 13948 280 2 +11212 3664 281 25 +1577 14004 281 25 +2301 16417 377 19 +2830 6568 377 19 +694 16154 402 1 +2942 24742 403 1 +626 8607 408 11 +4580 11663 414 1 +3361 6480 422 1 +11378 9976 480 11 +25220 2128 481 1 +10959 3145 563 1 +7364 10680 565 6 +6060 13012 566 4 +13117 3933 566 4 +6471 2572 582 2 +3872 8779 588 1 +2203 2688 646 1 +13408 4608 648 9 +254 5529 648 9 +15886 11017 649 1 +6219 8216 729 4 +2561 5729 730 2 +24131 986 736 3 +7518 20985 736 3 +19767 1457 756 29 +7203 2398 758 1 +10392 17796 758 1 +8022 5372 758 1 +8736 20095 768 1 +16580 6699 773 1 +497 16074 847 34 +12381 2333 847 34 +613 3910 851 5 +10499 10086 861 1 +5048 10634 899 2 +3299 15749 914 5 +12608 2999 915 12 +10918 2753 925 10 +915 13288 925 10 +4255 7869 925 10 +10841 14670 925 10 +13691 4337 932 4 +125 21013 932 4 +7860 12039 959 23 +18079 4924 970 51 +2707 1866 981 3 +24059 560 981 3 +3514 13332 1045 2 +868 20411 1115 1 +10327 6150 1115 1 +2524 7547 1115 1 +9504 17258 1116 7 +5959 15723 1152 14 +17872 8579 1161 2 +10883 13123 1161 2 +8920 11173 1225 38 +7543 16785 1225 38 +404 9204 1265 4 +18614 8277 1271 5 +17909 5029 1325 35 +6260 2466 1330 1 +750 12162 1331 5 +10801 18160 1362 4 +4785 6561 1362 4 +1313 6861 1410 32 +10872 11873 1417 1 +1796 12754 1418 24 +666 18589 1454 13 +10263 3167 1496 45 +9465 14477 1496 45 +13901 939 1506 56 +10105 9809 1506 56 +12606 11251 1541 5 +5437 23676 1583 2 +21419 235 1585 1 +7482 13471 1594 6 +15843 3797 1608 1 +19638 683 1700 1 +17908 3257 1700 1 +8206 16673 1711 1 +9288 6574 1711 1 +4921 24165 1715 1 +373 4800 1716 1 +16839 10999 1716 1 +20519 5040 1738 17 +1960 15012 1738 17 +4776 22074 1745 1 +1597 10551 1779 38 +19440 598 1875 7 +2943 20304 1876 17 +5374 14629 1877 7 +17050 9072 1877 7 +3071 8489 1899 1 +15277 8193 1907 19 +957 14941 1919 3 +5909 3281 1922 2 +2744 22041 1956 1 +12391 999 1956 1 +692 5917 1956 1 +5135 13900 2052 20 +17572 5580 2105 1 +3364 15134 2105 1 +10688 15765 2155 1 +11473 872 2155 1 +9015 4884 2252 22 +7722 7135 2255 52 +16024 5416 2255 52 +2645 26348 2256 56 +1189 5321 2260 2 +25325 2544 2260 2 +5913 19172 2326 25 +4651 14139 2396 1 +1810 280 2396 1 +5786 8145 2407 1 +6569 9149 2413 3 +19400 6239 2429 10 +18550 5527 2429 10 +20328 657 2470 46 +2796 8413 2491 39 +2546 21411 2493 31 +5609 15676 2494 2 +2602 9591 2539 1 +8754 5154 2584 59 +25245 83 2585 79 +2499 13246 2618 3 +18 15346 2650 12 +7897 19421 2699 1 +8590 7463 2699 1 +6900 19535 2700 28 +9688 18535 2760 1 +3515 1039 2772 26 +280 14681 2863 7 +9267 2815 2877 1 +597 1542 2891 34 +23752 2564 2951 30 +12200 15847 2952 3 +8728 11069 2999 31 +5314 1695 2999 31 +9352 12141 2999 31 +11516 4590 3048 22 +12604 5133 3114 1 +19792 4632 3119 1 +4797 124 3163 4 +4460 14360 3165 12 +5583 15113 3173 3 +1156 12845 3173 3 +745 11728 3180 1 +6621 16230 3180 1 +7919 5852 3180 1 +13581 5852 3180 1 +17380 1510 3184 20 +18823 4852 3269 35 +3276 22242 3300 1 +2744 21369 3369 1 +12590 2275 3420 1 +4935 13436 3459 1 +423 9611 3459 1 +12001 10293 3507 1 +6112 14865 3514 10 +16156 1451 3544 39 +63 5765 3546 60 +3245 22193 3546 60 +1762 24435 3623 1 +1797 15837 3652 1 +10834 12121 3652 1 +5008 14248 3738 1 +2153 13710 3738 1 +11650 5640 3738 1 +8947 1106 3743 6 +10469 5861 3746 1 +12725 2839 3753 1 +8772 17898 3753 1 +211 16902 3851 1 +8520 11056 3851 1 +17484 222 3851 1 +1790 18313 3856 7 +6646 9447 3920 2 +2919 12055 3920 2 +8279 16711 3921 2 +6537 5659 3955 1 +3775 19198 3955 1 +16912 5693 3963 9 +7115 6583 4012 1 +10677 9638 4077 1 +5051 172 4077 1 +17528 7259 4077 1 +15586 11089 4077 1 +359 13566 4096 13 +7104 13612 4144 1 +8656 3294 4206 1 +6347 4456 4217 3 +23280 4274 4217 3 +3673 14778 4217 3 +17743 298 4242 1 +14673 11264 4243 1 +2419 14599 4244 12 +11216 6547 4246 58 +18035 10245 4251 17 +4602 1365 4251 17 +1779 21157 4253 44 +8635 6801 4253 44 +9910 14915 4322 25 +3909 9281 4322 25 +2882 7042 4322 25 +532 2023 4352 5 +18446 5067 4354 4 +26754 996 4354 4 +8180 17845 4432 2 +11998 13210 4475 5 +23117 5831 4548 5 +18928 8078 4555 1 +3182 16545 4559 9 +18618 1055 4561 38 +3606 9809 4588 5 +20889 3711 4588 5 +8501 14438 4588 5 +4828 1956 4590 3 +16243 3253 4628 71 +20424 2071 4630 22 +9026 12959 4652 1 +12399 9569 4716 29 +8748 5529 4716 29 +18604 3108 4719 5 +5902 20820 4775 71 +812 15501 4778 18 +1056 12457 4778 18 +157 19883 4833 34 +22007 398 4843 1 +12074 10497 4843 1 +5679 2690 4864 1 +11526 7981 4864 1 +3349 11796 4864 1 +14579 717 4915 42 +3898 259 4916 1 +13430 9327 4916 1 +25439 3203 4916 1 +19948 6346 4951 1 +6277 12964 4966 1 +4220 14994 4966 1 +6968 3546 5012 61 +5796 6425 5021 1 +11864 10635 5034 8 +6074 8880 5090 35 +7609 8721 5093 1 +1570 18921 5096 3 +23196 5969 5096 3 +15156 3068 5096 3 +5557 3068 5096 3 +3640 10588 5192 33 +3601 12939 5202 1 +1632 15019 5202 1 +18003 6517 5275 1 +5746 13903 5275 1 +7932 15104 5324 23 +5672 23313 5382 4 +22320 3510 5382 4 +259 11895 5391 3 +1256 10164 5391 3 +665 20148 5394 16 +17196 11128 5401 6 +9217 16221 5461 39 +4207 8492 5470 1 +14075 8481 5508 2 +2971 19477 5508 2 +17407 848 5509 25 +2870 1104 5513 1 +3062 1609 5523 7 +3639 13007 5554 6 +7678 10561 5554 6 +22191 6205 5572 38 +6898 15325 5625 11 +15454 3576 5644 71 +99 21645 5649 3 +15306 4416 5649 3 +16361 9207 5659 5 +23603 5148 5728 4 +1902 8934 5750 1 +7752 1071 5750 1 +2250 17674 5750 1 +5490 23016 5755 30 +400 4942 5755 30 +4828 547 5844 48 +7763 10456 5907 44 +2753 20281 5961 2 +702 138 5961 2 +25365 1416 5967 1 +13841 11098 5967 1 +23686 791 5995 1 +7792 19820 5995 1 +23094 5630 6080 22 +18139 10893 6080 22 +15524 12548 6080 22 +12104 13179 6080 22 +22334 3972 6114 7 +7697 654 6114 7 +6142 11227 6114 7 +4488 12759 6114 7 +17355 7305 6125 12 +7094 10914 6211 1 +10607 2874 6288 64 +4804 13039 6288 64 +2926 9160 6291 4 +9925 18241 6293 1 +489 2418 6294 1 +7602 17406 6294 1 +17237 3284 6301 1 +20169 767 6301 1 +9676 2755 6318 7 +1240 19379 6318 7 +14184 4782 6323 1 +16406 11811 6323 1 +3211 6239 6410 3 +22921 5968 6410 3 +24732 1433 6432 1 +7041 5079 6432 1 +1314 21004 6457 3 +6776 21693 6481 5 +19046 3298 6481 5 +1287 14573 6509 7 +11578 16059 6545 21 +10641 5759 6583 3 +19936 2070 6673 31 +13881 15300 6695 1 +20323 2608 6735 1 +6066 4092 6735 1 +9432 18913 6735 1 +1756 1990 6741 2 +12585 11108 6741 2 +20519 2781 6804 15 +13835 12411 6835 18 +8689 20156 6837 13 +4613 5394 6911 1 +90 9369 6911 1 +17576 6542 6911 1 +23520 633 6959 1 +2898 21194 6983 1 +14879 6764 6983 1 +12040 11270 7039 7 +13832 7405 7039 7 +18743 907 7040 1 +5340 10681 7071 10 +3388 5863 7071 10 +6873 15325 7071 10 +4353 10810 7076 64 +17054 11274 7076 64 +9348 5874 7076 64 +19569 616 7076 64 +7333 6062 7168 14 +21177 6281 7241 1 +13551 673 7241 1 +2267 9345 7242 5 +6287 14242 7313 1 +19933 7428 7327 1 +2540 24944 7352 34 +7259 12032 7383 2 +19112 6984 7384 1 +13498 5092 7384 1 +10086 7967 7411 78 +3263 15316 7421 1 +1542 2038 7465 11 +4040 9206 7477 19 +378 9788 7481 31 +7794 12913 7546 3 +15990 1127 7547 1 +19896 2386 7547 1 +20693 4919 7547 1 +23723 1805 7547 1 +1423 8979 7548 1 +8584 18279 7555 50 +4701 11981 7584 1 +12099 9400 7584 1 +1911 8375 7584 1 +20862 2424 7584 1 +1098 10887 7603 1 +1880 11811 7679 5 +10616 1849 7691 58 +7924 5480 7691 58 +2574 12197 7707 20 +12111 10717 7735 2 +15255 5051 7735 2 +17097 11628 7736 1 +448 17635 7740 11 +9340 8600 7763 1 +11364 5828 7774 1 +25178 1444 7774 1 +7665 3380 7836 1 +4745 2898 7878 4 +5928 10821 7882 9 +1184 17924 7893 57 +11264 10034 7893 57 +9617 4118 7923 26 +2242 8873 7998 1 +2304 11568 8001 19 +2768 22221 8066 1 +9122 12498 8068 4 +11311 597 8068 4 +15887 3836 8068 4 +4240 11667 8068 4 +14551 7265 8116 10 +2029 20305 8118 1 +10654 7653 8118 1 +991 2574 8142 42 +15563 7757 8143 1 +3167 2343 8148 2 +22540 2165 8151 12 +1091 21306 8151 12 +8927 19025 8202 3 +20497 6988 8202 3 +15590 4532 8202 3 +6226 6939 8202 3 +13540 4993 8241 5 +22271 5497 8318 97 +8591 3943 8318 97 +1947 6213 8365 1 +12671 16452 8388 18 +9413 995 8397 10 +9275 15524 8397 10 +19516 3164 8412 3 +11442 11538 8509 2 +38 12761 8509 2 +8916 12978 8513 1 +21997 4184 8519 8 +3548 19331 8538 10 +2642 26183 8555 15 +23800 2052 8573 52 +22668 480 8584 24 +9921 3709 8585 30 +3190 23184 8585 30 +11047 6720 8612 58 +11289 3875 8666 54 +10608 10871 8676 1 +9517 6233 8739 28 +5533 21725 8739 28 +7334 154 8740 1 +17877 3082 8747 1 +10498 13348 8764 18 +1577 27229 8775 21 +11546 729 8775 21 +7353 729 8775 21 +6325 729 8775 21 +6337 2599 8862 5 +22467 794 8911 3 +3010 5037 8984 9 +2968 14820 8996 10 +884 21137 8998 25 +9414 6821 8998 25 +1630 13431 9000 1 +2668 14866 9002 4 +10157 7313 9098 24 +11106 1057 9098 24 +15567 1780 9098 24 +4895 7869 9098 24 +8991 6993 9098 24 +3815 17048 9131 1 +1831 15367 9134 26 +5329 15914 9141 35 +21349 1247 9141 35 +813 8171 9184 1 +7136 471 9247 17 +23370 1289 9297 2 +6266 7196 9297 2 +7895 15405 9309 1 +6371 2010 9336 3 +3910 7225 9425 1 +7784 3514 9468 58 +2912 23425 9492 13 +8982 15918 9519 4 +13338 12847 9521 1 +1232 15700 9524 2 +7591 12255 9525 33 +770 16532 9526 1 +5772 17596 9570 2 +6614 19232 9641 3 +13173 4112 9641 3 +13011 6833 9661 70 +3560 2411 9687 28 +10365 18674 9719 78 +5592 23056 9772 11 +3173 2822 9786 20 +3159 7094 9799 2 +20903 3624 9799 2 +1576 12434 9799 2 +20376 5169 9817 1 +19435 3986 9817 1 +14712 10193 9874 1 +4862 17765 9874 1 +6861 21524 9910 2 +200 6434 9910 2 +3307 9943 9936 2 +447 10944 9951 1 +13779 15014 9951 1 +17623 2000 9951 1 +16 2000 9951 1 +2126 19382 9965 1 +5479 4050 10037 56 +4425 11806 10043 1 +2661 6759 10043 1 +16549 2936 10059 37 +2734 22077 10099 48 +19185 9304 10114 1 +934 10900 10128 1 +4208 23065 10132 1 +6027 9073 10195 7 +3164 14563 10254 67 +21041 4955 10259 39 +14248 854 10259 39 +12069 10351 10262 3 +12308 15675 10294 1 +921 23452 10295 1 +6873 18642 10326 18 +7166 9142 10326 18 +15935 4453 10326 18 +9095 2175 10367 45 +23514 5530 10374 1 +7009 5407 10386 1 +17199 7763 10387 13 +16677 10797 10425 1 +10394 7599 10425 1 +4362 10878 10425 1 +8013 2873 10426 2 +660 18303 10451 1 +5180 9655 10451 1 +1712 2749 10543 4 +12475 12199 10543 4 +1659 6796 10599 1 +13993 9517 10675 45 +8244 17951 10675 45 +21845 3470 10675 45 +26722 18 10681 8 +17882 8979 10681 8 +23092 2340 10681 8 +7691 9265 10686 12 +6600 9495 10696 21 +12454 2637 10696 21 +20694 2431 10701 72 +25406 1699 10729 22 +295 24279 10729 22 +1590 22712 10736 1 +4771 3696 10736 1 +19857 6208 10748 25 +5091 17898 10825 1 +7696 10060 10825 1 +5226 8295 10849 1 +4367 23643 10850 1 +19022 419 10948 5 +7081 18543 10992 2 +12485 2436 11023 20 +4198 820 11024 1 +4972 481 11081 51 +6852 6737 11099 3 +191 1716 11099 3 +8401 12695 11121 36 +15598 11955 11125 3 +7408 581 11125 3 +12155 4250 11138 43 +13349 5420 11153 3 +696 22538 11153 3 +18996 5420 11153 3 +622 15054 11159 1 +15191 9034 11159 1 +7031 10118 11172 68 +26360 2729 11178 3 +3453 8958 11178 3 +12716 12256 11178 3 +18734 3044 11178 3 +19767 6378 11249 4 +16215 7480 11296 1 +814 15793 11354 27 +14818 91 11355 1 +2937 8932 11363 1 +22621 3294 11375 5 +6786 235 11381 1 +1198 15715 11425 36 +789 21317 11438 69 +5941 6641 11438 69 +12741 4462 11468 4 +11074 10022 11477 3 +10119 3627 11529 4 +7168 20079 11529 4 +3594 22036 11552 5 +13559 7607 11621 1 +5115 17644 11669 1 +12594 185 11674 8 +1972 227 11769 1 +4118 3163 11783 6 +16497 6507 11783 6 +8925 12758 11824 1 +1266 25252 11847 21 +5092 2706 11847 21 +4316 23527 11919 1 +23758 5017 11920 3 +22014 3401 11921 13 +11917 11427 11921 13 +19061 4429 11927 1 +11493 428 11959 1 +331 8313 11959 1 +13035 7696 12020 1 +17192 609 12020 1 +3197 12882 12083 1 +7182 9011 12088 24 +1146 218 12088 24 +23067 2393 12088 24 +9731 4572 12100 7 +7112 16381 12129 62 +5399 11577 12129 62 +20534 5711 12178 1 +6794 6615 12210 32 +11629 1448 12248 27 +5500 9959 12282 1 +25947 3106 12294 4 +9115 9723 12296 1 +27898 692 12301 1 +940 537 12347 1 +22210 5564 12347 1 +8023 9363 12438 34 +23855 864 12507 1 +7935 6990 12550 1 +13803 12625 12559 1 +2373 16170 12573 1 +13985 3494 12618 1 +1547 10898 12670 6 +19494 5010 12702 1 +13888 14591 12712 1 +18971 2724 12719 17 +8508 6103 12719 17 +9379 2854 12724 22 +25987 2125 12768 40 +16236 584 12820 84 +6972 840 12832 54 +6096 21610 12842 9 +6646 6348 12842 9 +13075 492 12879 1 +2849 13608 12958 2 +1233 2562 13045 1 +21283 1976 13045 1 +1970 13514 13045 1 +4620 10170 13045 1 +20095 2402 13084 27 +15153 5637 13084 27 +9983 3962 13123 1 +13747 1585 13188 1 +13138 9159 13277 1 +13527 5330 13324 1 +1854 7059 13324 1 +6395 19314 13325 1 +11723 8644 13325 1 +15253 5701 13325 1 +5891 7033 13353 65 +10703 7751 13354 24 +4384 16710 13357 21 +13977 7660 13375 1 +16997 7788 13375 1 +10902 16935 13381 7 +24675 278 13388 1 +687 24129 13395 1 +6317 9725 13404 3 +3133 19903 13405 22 +12765 5878 13433 43 +5810 11148 13433 43 +18067 1255 13434 1 +8398 1664 13466 19 +10573 118 13516 1 +12996 7335 13571 1 +5946 2452 13667 11 +21016 1363 13683 21 +21904 2056 13686 8 +1061 19393 13686 8 +7313 19970 13687 1 +1176 7988 13687 1 +17393 2007 13705 2 +22212 1590 13708 49 +23327 131 13734 4 +14469 9078 13772 10 +12908 389 13783 2 +1424 10575 13783 2 +2485 6484 13832 3 +15178 12783 13832 3 +18692 5074 13864 52 +16256 9930 13904 6 +7222 5709 13967 2 +8019 18168 14006 1 +887 9790 14006 1 +1235 12964 14050 1 +5178 17918 14061 4 +4939 15165 14133 23 +25880 333 14136 30 +6988 14894 14156 78 +17313 11495 14195 1 +23940 2579 14293 4 +74 17612 14293 4 +10604 1337 14293 4 +1270 17780 14304 11 +23324 2894 14337 1 +12043 5336 14338 1 +6999 12872 14348 5 +10568 458 14350 1 +14022 8826 14416 3 +1069 1250 14498 71 +7763 13054 14593 4 +16372 12251 14594 34 +19165 5031 14607 76 +6988 17237 14619 17 +4936 19290 14705 1 +26433 100 14705 1 +3384 8568 14705 1 +7270 6354 14705 1 +7084 7978 14731 7 +12937 2496 14731 7 +10725 17395 14801 1 +2334 12495 14812 1 +20613 6606 14812 1 +3530 5353 14813 1 +3915 14875 14816 6 +12836 13847 14818 24 +5823 12836 14819 54 +1076 15122 14819 54 +16926 5482 14821 54 +23061 4662 14821 54 +1749 8510 14843 3 +13800 15189 14868 1 +1060 10493 14895 1 +5179 2018 14907 1 +3330 14901 14978 1 +10031 8680 14980 24 +7164 7032 14985 1 +15998 4670 14985 1 +10838 10702 14985 1 +5020 8808 14985 1 +16549 3310 15012 1 +24722 376 15012 1 +2017 2455 15012 1 +13541 6349 15033 18 +11411 5537 15064 27 +2784 23639 15066 10 +12181 629 15076 15 +14920 1880 15076 15 +20120 2355 15105 32 +16260 2396 15123 7 +15475 4406 15130 1 +16021 11686 15131 2 +16410 12452 15167 2 +8000 6638 15187 4 +14980 12787 15235 8 +5405 780 15325 2 +5632 14192 15327 31 +1416 2131 15351 2 +240 7357 15423 2 +4727 20601 15423 2 +18703 2239 15424 1 +1884 17093 15473 3 +5769 10865 15473 3 +467 10865 15473 3 +13878 4287 15475 39 +10683 14573 15522 1 +7280 4934 15554 23 +15461 10759 15554 23 +4656 2542 15579 1 +1434 24189 15583 17 +21746 3388 15583 17 +5434 3769 15583 17 +8524 3769 15583 17 +15598 3519 15583 17 +1983 9441 15590 39 +2061 5343 15591 28 +3476 22615 15591 28 +20610 7236 15651 40 +1831 21500 15652 3 +4673 7605 15695 3 +2341 20353 15695 3 +9138 17551 15758 28 +5039 19803 15784 1 +2935 13218 15811 13 +8793 18708 15865 1 +2940 6716 15930 1 +2464 14757 15944 62 +14799 13201 15944 62 +19098 10076 15969 1 +4302 3211 15977 1 +21899 2387 15977 1 +21331 5592 15990 1 +91 4268 16067 1 +1399 14522 16067 1 +15571 13326 16070 1 +1752 16464 16071 1 +10480 1552 16095 1 +10710 11732 16104 2 +17506 6942 16107 3 +1145 22574 16139 1 +8567 5384 16139 1 +728 4995 16139 1 +14424 10210 16149 4 +15883 4470 16152 1 +293 21306 16156 1 +180 1964 16157 3 +14328 2085 16219 1 +7581 15393 16219 1 +16 15040 16249 5 +4532 11208 16249 5 +5271 15156 16265 13 +7831 18835 16284 15 +7763 413 16297 12 +10855 6130 16320 10 +2074 19059 16330 1 +532 5162 16335 4 +5133 3328 16386 1 +7814 10062 16401 13 +8212 389 16401 13 +1794 11193 16403 10 +2504 7211 16403 10 +6437 19746 16410 14 +20006 5259 16410 14 +7444 8782 16461 23 +5091 19232 16477 14 +5019 8726 16477 14 +15610 3255 16479 1 +4610 1277 16536 18 +2481 12284 16537 1 +3467 24251 16540 6 +14888 1487 16559 10 +3544 21214 16644 29 +9211 6744 16644 29 +10109 18131 16656 1 +10424 2939 16656 1 +20256 5162 16688 2 +6198 10688 16714 19 +12394 939 16761 38 +6795 14766 16761 38 +10816 4037 16761 38 +5121 13192 16761 38 +13477 5846 16765 16 +10598 4900 16765 16 +11308 1179 16765 16 +6468 10872 16838 8 +22715 4986 16838 8 +26618 628 16838 8 +25381 425 16838 8 +54 22556 16851 1 +24505 1520 16883 15 +340 26845 16884 1 +3851 25373 16982 1 +262 6386 16988 2 +9350 17088 17038 1 +14177 11430 17045 1 +23500 5096 17045 1 +3977 2343 17045 1 +5366 12256 17052 11 +315 15702 17052 11 +23341 4441 17077 3 +2204 8032 17158 6 +16890 8187 17169 43 +23170 199 17171 1 +3064 7374 17172 19 +8122 11233 17172 19 +5283 21816 17193 3 +17112 10452 17200 49 +5270 12921 17290 1 +3553 24099 17292 1 +12927 6575 17295 1 +590 12386 17323 4 +21619 4580 17327 61 +25830 233 17389 24 +12642 5035 17389 24 +13500 14026 17392 1 +7495 18337 17415 8 +26139 2558 17425 63 +3040 25400 17425 63 +13420 1292 17430 11 +22569 460 17437 16 +3286 8561 17489 1 +12207 3222 17514 1 +8890 19257 17528 11 +1713 8701 17528 11 +6338 20600 17576 1 +17097 3327 17600 1 +9467 2709 17600 1 +3240 14421 17610 1 +25 10554 17610 1 +3919 18475 17618 2 +16108 12810 17657 2 +8009 15846 17664 20 +14336 1691 17671 19 +15228 11681 17676 1 +1163 11836 17676 1 +13302 3371 17697 8 +12285 3625 17755 1 +720 9348 17829 12 +6751 9710 17829 12 +1955 12217 17829 12 +581 406 17869 8 +11590 9819 17876 1 +16928 806 17883 1 +17158 10103 17892 1 +5929 3309 17893 1 +7008 4838 17922 94 +20010 3719 18006 1 +2278 9246 18060 9 +11336 7984 18102 37 +18922 2852 18196 6 +5499 13696 18280 1 +12923 8864 18280 1 +10351 10595 18280 1 +19139 4888 18288 16 +6858 20529 18288 16 +5915 20363 18291 40 +24177 1901 18382 4 +36 1282 18406 1 +2043 11412 18411 4 +16036 8144 18471 4 +8195 7026 18471 4 +3365 12788 18471 4 +8490 12891 18476 1 +1781 21588 18479 16 +23805 2808 18481 74 +8454 11052 18488 1 +3870 16906 18488 1 +9051 7187 18488 1 +1647 11052 18488 1 +4731 18579 18489 1 +10367 82 18516 7 +9734 19074 18546 6 +26674 1593 18547 1 +8468 7326 18561 23 +13994 6592 18579 28 +7516 18494 18656 11 +1064 5582 18656 11 +13364 13952 18753 62 +8324 4465 18754 1 +7899 11224 18805 7 +15002 8339 18842 7 +14114 3858 18842 7 +8974 2768 18842 7 +11954 4664 18856 27 +4912 13576 18857 1 +4485 21311 18889 1 +12230 2435 18902 12 +6524 5322 18902 12 +8744 19442 18911 17 +25383 1797 18911 17 +13865 15031 18925 1 +1324 1999 18942 5 +3297 3380 18942 5 +7745 13933 18998 54 +465 423 18998 54 +6576 8964 19000 1 +12714 7090 19005 63 +21998 2628 19019 1 +6418 8547 19025 54 +3546 6288 19102 1 +14405 6054 19102 1 +5632 7761 19102 1 +12118 2234 19102 1 +10574 4863 19112 11 +8483 7236 19158 1 +3428 8035 19158 1 +19379 3657 19159 22 +8347 10686 19159 22 +3308 421 19159 22 +3164 13194 19159 22 +1082 26028 19169 68 +2345 3255 19173 3 +8326 316 19180 12 +13450 7951 19200 2 +23193 2579 19201 2 +17731 498 19260 11 +4135 9009 19261 23 +19561 9606 19261 23 +4112 9343 19261 23 +18363 9081 19263 30 +12618 13306 19276 30 +3594 15134 19333 10 +3508 12824 19333 10 +530 1908 19385 63 +20998 2172 19391 1 +3917 23039 19397 1 +21198 5962 19400 1 +2604 1925 19408 23 +927 6815 19410 24 +3187 15975 19478 5 +10330 3561 19478 5 +17467 5571 19531 6 +19038 8534 19531 6 +15781 11220 19543 52 +12207 12694 19568 10 +14500 6282 19587 14 +7839 5427 19587 14 +21157 7490 19659 19 +2514 20468 19659 19 +27616 166 19663 6 +3220 15874 19664 66 +4899 17754 19669 3 +8752 10750 19754 6 +7299 2824 19771 1 +11798 14300 19771 1 +9254 3649 19777 1 +7732 19918 19777 1 +13739 8040 19777 1 +10732 16942 19851 1 +8217 16423 19935 1 +9715 6125 19935 1 +502 27308 19976 76 +10992 15285 19978 1 +23733 1561 19978 1 +1041 5029 20027 2 +7291 10460 20033 3 +4820 17834 20070 58 +4024 21221 20162 9 +1909 20842 20194 1 +1237 22285 20246 15 +4414 5673 20246 15 +17933 1293 20246 15 +8829 6808 20319 10 +3889 6005 20320 17 +15048 1298 20351 3 +10196 8812 20351 3 +12881 14964 20353 25 +10074 3844 20353 25 +3725 6639 20353 25 +7972 3838 20353 25 +6019 20296 20357 2 +18223 2258 20357 2 +4219 608 20357 2 +16398 4478 20372 18 +1034 4825 20411 3 +14772 3090 20413 1 +25146 290 20417 1 +10636 14083 20427 39 +21160 1190 20436 1 +3099 17705 20436 1 +19390 9142 20441 3 +13118 7506 20441 3 +19069 10062 20441 3 +14274 14913 20448 42 +13496 7096 20448 42 +5774 11410 20448 42 +4978 1647 20448 42 +5242 9741 20455 13 +69 4100 20455 13 +11687 1008 20539 1 +7967 982 20540 7 +8131 19181 20619 1 +3994 3727 20619 1 +16622 1012 20619 1 +14388 5050 20619 1 +24948 551 20621 1 +5631 17657 20629 1 +4272 10301 20629 1 +8970 14474 20639 1 +4344 22934 20640 16 +16707 2378 20640 16 +14165 5024 20640 16 +3911 5024 20640 16 +756 20669 20641 1 +5101 7289 20641 1 +16868 3979 20641 1 +8198 19512 20723 1 +7019 7995 20732 28 +19101 2130 20744 5 +5373 21667 20744 5 +25052 1317 20811 11 +8506 6179 20813 1 +15641 7998 20819 1 +5251 9017 20841 7 +16479 3386 20853 25 +22279 6317 20854 26 +4150 10336 20854 26 +1151 23097 20855 2 +13294 4861 20855 2 +12902 5294 20903 11 +7475 203 20919 1 +1514 640 20920 1 +18239 7946 20925 63 +2104 22240 20929 1 +6654 13046 20930 4 +15062 7444 21002 6 +6940 19343 21018 1 +2358 18617 21027 37 +7931 6647 21035 56 +15929 9595 21112 18 +17773 1092 21161 1 +7130 15461 21161 1 +21765 1099 21161 1 +2207 18331 21177 1 +12037 9627 21177 1 +5624 14671 21191 6 +12714 5358 21196 11 +769 21210 21227 31 +8679 8007 21243 2 +1786 10070 21249 24 +4579 2065 21270 67 +9556 17323 21270 67 +22391 403 21354 4 +5772 3140 21357 8 +10544 2575 21370 1 +6451 7226 21389 62 +24377 1439 21391 35 +662 59 21392 6 +25469 533 21392 6 +25863 2716 21426 7 +15467 700 21505 6 +3328 25283 21505 6 +21944 86 21521 14 +4937 10125 21521 14 +2856 8971 21523 1 +11593 8044 21576 1 +2262 7106 21590 1 +18778 6371 21614 2 +3346 1196 21622 1 +6712 8159 21622 1 +12096 556 21637 16 +11268 6220 21637 16 +17745 3268 21714 4 +3829 16242 21717 9 +20914 4436 21717 9 +3025 3796 21811 9 +6113 9601 21847 16 +7309 14090 21869 8 +2516 3314 21869 8 +14470 8848 21947 1 +6855 19110 21947 1 +9720 18006 21998 47 +20882 7728 22000 4 +5947 51 22008 15 +2231 22916 22008 15 +9618 9362 22012 3 +2729 11199 22012 3 +6887 2939 22012 3 +2406 25499 22025 3 +211 7148 22029 2 +12734 12614 22029 2 +16784 4665 22119 11 +18086 6973 22119 11 +1656 2419 22195 1 +25200 167 22195 1 +6163 1443 22200 2 +16240 5844 22200 2 +8130 930 22204 75 +18039 7552 22206 1 +8638 7571 22297 50 +14355 10646 22303 1 +12484 16478 22315 2 +1253 6425 22315 2 +828 26572 22319 4 +5765 7277 22389 1 +5961 4701 22419 34 +10985 15756 22419 34 +12879 9454 22425 24 +6620 10889 22426 1 +4303 11359 22426 1 +20816 4830 22435 1 +1644 27139 22508 44 +755 819 22508 44 +359 12157 22549 1 +4811 16461 22640 9 +18590 4843 22642 2 +22918 2180 22724 14 +18754 5341 22724 14 +1645 8407 22726 1 +7682 6626 22728 51 +4591 22073 22731 1 +17545 3541 22731 1 +1306 8113 22736 19 +18078 4156 22736 19 +13963 7631 22736 19 +4355 1716 22781 1 +21079 6874 22781 1 +4336 5892 22788 1 +6851 7890 22790 5 +2616 18108 22790 5 +12403 3653 22887 1 +908 24719 22888 2 +11840 13700 22896 1 +8070 20911 22902 48 +11713 14168 22904 28 +1247 5402 22904 28 +13336 14535 22925 1 +10948 3594 22932 5 +4484 2026 22943 1 +21109 6429 22995 1 +486 2711 23013 21 +22187 3651 23013 21 +12000 1166 23016 6 +14189 7335 23057 2 +1682 9244 23098 22 +25173 2368 23098 22 +20075 1332 23119 1 +9371 16354 23168 1 +13191 7343 23255 1 +8693 6087 23263 22 +21961 1268 23263 22 +13565 6059 23270 4 +16411 9950 23270 4 +7508 3148 23291 3 +1499 23329 23291 3 +2021 4629 23291 3 +20240 8546 23293 43 +3235 21203 23373 3 +15072 6755 23373 3 +27018 2192 23462 1 +773 24278 23543 50 +12845 1477 23582 1 +4268 10049 23585 1 +2483 17909 23585 1 +17159 4390 23585 1 +24002 2391 23622 38 +10617 11785 23622 38 +4599 10806 23625 7 +16694 11809 23626 12 +9812 13304 23638 1 +13165 14654 23638 1 +5161 11041 23639 5 +15621 744 23639 5 +3088 19472 23643 26 +7303 11462 23651 18 +5666 13430 23667 1 +6318 11197 23701 13 +26222 167 23701 13 +13049 5921 23701 13 +950 18568 23704 21 +203 20046 23706 13 +1142 13948 23725 8 +5560 22303 23738 2 +5446 7728 23739 14 +934 19625 23741 18 +12954 2778 23746 11 +3858 1205 23746 11 +19967 2265 23747 2 +1740 6302 23816 1 +17804 402 23827 75 +5437 7805 23833 1 +2594 6791 23869 19 +10020 1970 23876 67 +8371 11094 23932 60 +1816 3337 23934 30 +17188 10677 23951 8 +1397 5773 23995 16 +2661 23096 24033 1 +8227 4862 24033 1 +6670 6951 24072 14 +14228 101 24078 1 +18087 10418 24129 16 +4197 15287 24141 27 +12440 4599 24174 4 +899 13096 24191 6 +13546 13278 24191 6 +1289 27191 24266 6 +21425 767 24266 6 +7899 767 24266 6 +19837 8089 24316 25 +7123 8583 24316 25 +4218 4914 24330 1 +26755 1370 24346 1 +5730 15959 24346 1 +16599 11908 24352 28 +5450 1772 24413 13 +9179 3057 24413 13 +7063 3426 24413 13 +2583 18969 24505 1 +917 8989 24505 1 +640 8060 24515 1 +16090 1596 24515 1 +20801 5029 24605 15 +916 12629 24608 1 +15387 6123 24664 4 +3025 21777 24664 4 +13619 4466 24666 1 +10065 2416 24676 1 +3852 19916 24745 1 +19295 3288 24746 95 +16564 12194 24769 2 +14671 9527 24792 1 +6368 15873 24792 1 +18326 2606 24828 12 +5722 20878 24851 1 +7126 7048 24872 15 +4835 18694 24873 13 +10711 4793 24877 17 +11561 14177 24877 17 +4070 5262 24878 3 +18857 6857 24900 49 +15512 10162 24926 20 +1686 17796 24926 20 +18787 685 24926 20 +3574 2869 24926 20 +16569 717 24969 12 +4303 1098 24981 15 +11528 15238 25066 6 +21212 7141 25096 15 +16230 2406 25096 15 +9534 47 25189 46 +9955 4323 25189 46 +3945 12617 25194 9 +1469 12430 25194 9 +8399 9854 25232 4 +8312 14374 25254 1 +27130 1018 25254 1 +9056 3736 25254 1 +2825 12566 25254 1 +11335 2722 25270 5 +9247 12116 25288 7 +13264 1600 25364 44 +13267 15510 25372 1 +13226 14268 25421 1 +16656 3770 25421 1 +3557 11459 25474 1 +24471 1847 25476 19 +5119 19387 25540 14 +11332 6563 25540 14 +309 15089 25576 1 +1031 23128 25662 3 +25267 3212 25669 14 +3920 3877 25669 14 +12670 15112 25688 35 +15769 1394 25690 1 +8679 17041 25779 1 +16877 1739 25791 51 +17198 7752 25793 12 +6608 6907 25874 39 +16014 11103 25874 39 +10577 11352 25876 1 +6788 7166 25876 1 +19584 6295 25937 5 +6440 16595 25942 1 +24466 1611 25974 5 +13495 9879 26037 1 +4874 18079 26037 1 +7369 12013 26038 92 +3388 8859 26045 7 +24115 2889 26045 7 +9146 8608 26045 7 +16579 418 26045 7 +12525 6560 26081 1 +16967 9591 26081 1 +12283 8923 26125 7 +1798 4653 26211 1 +13784 10128 26254 23 +13608 6858 26254 23 +11673 5373 26254 23 +7606 19778 26344 1 +3813 137 26344 1 +8875 15003 26346 4 +2773 6581 26351 10 +6644 16228 26372 1 +21714 1128 26372 1 +11827 1431 26377 1 +772 16414 26377 1 +5339 7454 26470 7 +2821 3313 26470 7 +14417 7355 26539 12 +19681 1639 26545 3 +1859 6547 26547 5 +6075 19261 26547 5 +843 13619 26555 6 +1332 14339 26555 6 +6065 10337 26590 1 +23171 5070 26590 1 +4754 21931 26632 49 +7777 6027 26632 49 +2312 12559 26634 6 +335 25385 26645 1 +6480 2573 26645 1 +7907 2520 26646 29 +18520 3087 26646 29 +21005 3418 26670 1 +2349 19877 26675 2 +5810 5261 26692 6 +10466 7746 26703 12 +9381 10674 26802 1 +8278 10746 26837 1 +2883 21971 26885 68 +5916 5987 26885 68 +8932 10776 26904 1 +155 5562 26923 73 +801 13932 26923 73 +3585 19157 26964 1 +8278 12640 27005 22 +8360 18919 27059 1 +9210 6316 27139 26 +4928 23136 27220 62 +2537 7236 27224 1 +3942 18821 27273 5 +3134 8953 27273 5 +4869 10230 27334 2 +7483 18211 27335 9 +18978 5380 27335 9 +9268 9747 27335 9 +24304 1024 27357 1 +15577 11198 27412 1 +9125 10062 27491 1 +5357 180 27491 1 +9398 13165 27501 2 +4152 12614 27505 10 +3374 7978 27505 10 +11989 688 27509 7 +5712 21959 27559 2 +3485 14624 27561 1 +4677 1476 27566 20 +9573 5029 27650 1 +28761 396 27684 27 +3165 6247 27690 5 +11889 10007 27760 40 +10617 10107 27826 8 +9769 17334 27875 26 +14136 4649 27935 17 +11357 2167 27935 17 +18894 6975 27938 11 +18866 2592 27945 47 +5407 830 27945 47 +4315 19508 27945 47 +7359 8450 27945 47 +4078 7240 27945 47 +12122 16828 28017 10 +9530 18982 28078 1 +3810 12414 28094 2 +1332 1025 28094 2 +3296 10091 28108 27 +2619 4274 28108 27 +26256 1550 28182 3 +3975 818 28182 3 +853 26002 28186 17 +13917 12719 28253 32 +6672 2856 28253 32 +23487 5317 28253 32 +3799 20141 28254 4 +21206 7307 28254 4 +5599 4843 28301 1 +6711 5502 28301 1 +6605 20712 28308 4 +14710 2778 28345 36 +622 18180 28362 47 +4280 9175 28365 1 +15337 12821 28450 2 +15992 9273 28452 5 +10452 10767 28467 1 +14275 8009 28507 23 +6978 11346 28507 23 +11334 865 28508 20 +28041 84 28601 1 +19730 5677 28601 1 +25056 3157 28653 14 +485 10804 28653 14 +118 13997 28653 14 +23576 408 28660 4 +9949 8335 28692 4 +53 15620 28692 4 +16340 7266 28695 5 +6402 4987 28695 5 +498 19324 28736 29 +6152 12465 28741 6 +17806 6605 28745 3 +21465 5881 28745 3 +873 6503 28756 23 +10210 11865 28764 41 +7773 10552 28769 26 +83 8419 28813 1 +9452 1219 28814 4 +1284 13134 28867 41 +3939 18514 28894 1 +23104 61 28894 1 +21181 1823 28983 65 +4659 21429 29040 1 +20804 3099 29040 1 +15109 9164 29051 1 +21346 7438 29051 1 +6865 14283 29051 1 +7329 2050 29070 1 +8822 8495 29129 56 +5226 6909 29129 56 +4773 12559 29130 22 +924 3144 29168 33 +4887 17515 29168 33 +9171 216 29181 1 +6564 1642 29181 1 +18064 5932 29220 1 +25848 1573 29220 1 +7631 16958 29220 1 +6912 9451 29272 74 +1259 27623 29278 30 +13848 12917 29307 12 +1888 15041 29307 12 +17730 9611 29308 47 +3177 10772 29321 44 +8588 2044 29412 1 +21944 5174 29412 1 +637 2516 29412 1 +25764 2841 29412 1 +2256 7346 29461 17 +10380 2508 29544 1 +1662 14274 29544 1 +3413 3597 29631 21 +2445 17025 29631 21 +4809 10933 29631 21 +10137 2532 29631 21 +19011 5153 29631 21 +9981 6239 29631 21 +18000 4780 29633 1 +11098 12512 29635 1 +24938 3126 29635 1 +5055 1894 29676 5 +8361 3660 29676 5 +5428 19848 29676 5 +10555 8142 29713 1 +7521 9656 29714 7 +9252 11392 29734 1 +15146 330 29832 1 +12563 16035 29844 11 +15080 2792 29844 11 +11729 3946 29869 1 +21965 5431 29880 1 +6506 14805 29893 2 +4548 13153 29893 2 +11614 11077 29909 1 +22479 5939 29921 13 +52 3046 29921 13 +15087 7048 29972 1 +5293 2172 29973 5 +17982 8918 29973 5 +13378 4163 29986 1 +17491 3311 30045 15 +20283 7417 30045 15 +6899 8452 30134 9 +11692 16037 30134 9 +20699 6110 30139 1 +21353 1624 30147 5 +12007 13706 30161 21 +6366 3450 30185 1 +1146 3459 30185 1 +8778 5704 30234 1 +9497 9212 30241 1 +9562 1139 30241 1 +15985 12120 30243 10 +18131 8078 30243 10 +499 13358 30243 10 +1611 5957 30315 56 +23762 4452 30315 56 +12568 15853 30315 56 +664 6148 30315 56 +637 11375 30333 2 +12256 11719 30347 12 +14055 9336 30406 6 +7214 13014 30422 1 +1346 21034 30438 19 +13135 15257 30466 1 +17023 7165 30500 1 +11381 14979 30500 1 +13505 14016 30508 7 +11662 8153 30508 7 +16110 6592 30509 5 +5728 14218 30591 82 +7473 13740 30591 82 +25648 2459 30601 30 +18481 685 30610 2 +17509 8909 30673 14 +6405 10977 30673 14 +2328 21863 30688 8 +814 6095 30688 8 +9463 11723 30700 1 +13369 15723 30709 1 +6217 13103 30710 17 +17778 1760 30710 17 +12930 850 30727 3 +9407 14678 30730 10 +3171 22957 30756 1 +5289 17912 30758 52 +15184 7157 30846 2 +1048 646 30936 11 +2293 20517 30958 20 +3665 1436 30958 20 +6093 3807 30996 8 +21031 7845 30996 8 +6253 1682 30996 8 +2783 18771 31002 2 +8329 7237 31009 1 +13012 7353 31022 23 +10685 10505 31022 23 +7766 2630 31044 1 +174 16551 31055 3 +103 11407 31055 3 +19839 811 31079 1 +7034 20046 31092 2 +9612 3998 31092 2 +18749 844 31092 2 +6185 7912 31092 2 +3311 7063 31092 2 +14640 10805 31094 21 +1710 18805 31099 2 +13863 3787 31099 2 +14667 7629 31100 1 +10290 13004 31103 1 +10925 5099 31103 1 +1042 14954 31103 1 +12998 5706 31103 1 +1084 5706 31103 1 +15778 3787 31103 1 +7824 5706 31103 1 +7504 4370 31103 1 +24562 341 31103 1 +12679 8239 31189 9 +9307 17536 31222 1 +19536 9566 31222 1 +17084 5051 31222 1 +1562 27236 31224 1 +6426 141 31224 1 +13128 12340 31230 1 +6334 2376 31258 43 +8742 18177 31346 26 +7511 19088 31365 1 +15054 554 31367 17 +22278 3588 31416 1 +12458 14672 31416 1 +6895 5027 31428 5 +11460 16656 31524 7 +23956 1325 31579 1 +11336 17570 31618 22 +8315 10388 31618 22 +3474 1051 31618 22 +12115 4627 31624 1 +3777 14414 31624 1 +4748 17002 31625 3 +6625 14770 31691 37 +18014 4385 31701 1 +3350 7361 31701 1 +24096 1012 31703 1 +3279 2772 31711 1 +10461 11283 31713 15 +12536 4930 31726 24 +14234 14349 31726 24 +15386 4588 31727 2 +10943 9241 31727 2 +13866 7515 31727 2 +6391 20038 31728 5 +24251 3366 31778 4 +1159 15319 31786 1 +11759 8395 31786 1 +19373 6635 31868 11 +12283 9973 31868 11 +10322 12635 31868 11 +1216 9954 31881 7 +17008 3046 31910 2 +6743 6445 31911 1 +270 16892 31917 2 +21814 1142 31976 9 +15464 8005 31976 9 +4842 19916 32043 19 +26195 2028 32077 6 +28201 78 32081 1 +2045 26614 32081 1 +20068 8237 32173 31 +10390 1005 32269 1 +11939 1182 32305 11 +3027 7340 32322 7 +13402 8608 32333 1 +15875 7208 32333 1 +15839 4027 32334 23 +16817 11119 32348 32 +2836 8581 32353 6 +26118 2904 32426 28 +12738 8873 32426 28 +8935 12271 32429 1 +4328 1543 32430 1 +11458 5083 32432 1 +18039 6074 32432 1 +2679 4191 32433 1 +4672 17952 32462 2 +8253 19650 32523 7 +15952 9843 32533 3 +5489 13045 32533 3 +1640 22456 32538 1 +23346 28 32543 2 +334 6674 32546 4 +3416 14647 32632 1 +617 21228 32648 20 +9388 2701 32664 1 +24365 3929 32711 75 +15057 12598 32748 1 +4740 9249 32761 19 +12156 9388 32768 5 +1093 4627 32769 74 +4403 19016 32769 74 +7352 8357 32839 28 +11717 13363 32845 23 +1499 12839 32923 9 +687 11524 32943 6 +12098 1352 32944 41 +11045 9492 32952 41 +2314 15996 32952 41 +4617 10923 32961 1 +3264 18871 32963 42 +1152 7543 32984 41 +16316 1182 32997 1 +3212 8588 32997 1 +3614 16232 32997 1 +8035 10680 32997 1 +2681 17344 32998 1 +10539 6958 33001 3 +7989 2072 33005 1 +21734 2463 33005 1 +8302 8503 33085 1 +13784 12764 33092 14 +12361 4404 33092 14 +4176 1940 33104 11 +25263 3264 33130 8 +3066 22649 33130 8 +20516 543 33137 13 +2670 19780 33142 50 +21492 1691 33226 6 +9498 3966 33296 1 +4519 12440 33296 1 +18689 529 33329 8 +1677 9841 33329 8 +19042 3993 33404 1 +90 7417 33404 1 +928 16548 33404 1 +15037 3731 33467 10 +4972 23626 33467 10 +3701 8767 33480 14 +1921 21648 33481 22 +3372 13909 33486 3 +17620 9179 33486 3 +21838 4870 33486 3 +16537 7262 33494 3 +3397 8341 33528 1 +14178 7958 33528 1 +5492 21587 33578 25 +22357 3744 33578 25 +17462 6303 33598 1 +13016 3981 33598 1 +18531 4930 33600 12 +8385 5484 33652 46 +924 22474 33652 46 +12702 6750 33717 44 +12456 2375 33726 16 +440 4072 33726 16 +16775 6729 33739 5 +598 1645 33821 41 +16786 5079 33821 41 +12191 15895 33831 1 +9808 10198 33831 1 +10192 4475 33871 13 +14797 5222 33941 1 +4307 23143 34001 46 +80 202 34029 1 +16780 10800 34087 7 +14954 8322 34089 2 +3167 19636 34089 2 +17504 353 34157 86 +5504 19120 34182 3 +503 2757 34186 7 +6041 9545 34213 7 +22550 4106 34213 7 +634 27137 34223 15 +12788 5863 34249 7 +3248 23359 34286 1 +17803 1830 34343 16 +24770 314 34343 16 +23267 2706 34344 1 +9548 6740 34421 19 +23972 2011 34445 6 +7248 15700 34465 72 +13533 1000 34465 72 +23823 519 34538 25 +2164 6996 34538 25 +23177 5570 34572 2 +3602 22388 34572 2 +4911 11023 34594 27 +1780 26731 34642 38 +794 1227 34642 38 +14069 1846 34686 6 +2832 268 34705 3 +4879 21828 34705 3 +11357 556 34705 3 +11939 7079 34794 6 +8027 13494 34796 15 +6911 18990 34809 1 +11273 5835 34893 1 +13193 1604 34893 1 +5798 11293 34911 13 +13267 6772 34911 13 +3305 13717 34911 13 +10707 16197 34927 1 +11899 1757 35021 10 +14909 6039 35045 4 +4137 21919 35045 4 +1261 6039 35045 4 +4274 4733 35073 38 +8090 8210 35084 71 +1176 12624 35144 62 +15244 8173 35163 1 +3438 14769 35183 1 +13439 6253 35183 1 +8617 18267 35196 9 +1946 4175 35196 9 +3977 3826 35196 9 +19868 2867 35196 9 +6043 14317 35198 6 +908 23145 35201 65 +22903 845 35294 3 +8508 20356 35294 3 +20226 4874 35317 1 +2825 6012 35317 1 +4776 1906 35317 1 +6215 11798 35317 1 +1541 7896 35317 1 +1892 6612 35317 1 +4819 6612 35317 1 +1138 2097 35317 1 +2093 26318 35409 1 +4848 4206 35410 1 +7792 7676 35410 1 +11497 2909 35461 12 +1578 12913 35543 2 +1668 25778 35569 74 +12864 506 35572 26 +10813 4844 35572 26 +6554 4123 35657 13 +12805 439 35660 1 +7844 17244 35666 6 +8964 17814 35667 81 +5411 3601 35722 1 +4938 15427 35797 41 +4854 1607 35805 1 +1457 26157 35805 1 +8246 19698 35806 6 +19235 8205 35806 6 +8843 8260 35806 6 +562 22642 35858 34 +12854 9877 35865 1 +13352 8723 35891 16 +10522 16209 35986 39 +11503 587 35986 39 +6333 1242 35986 39 +7523 17892 36020 1 +6309 10066 36020 1 +6694 10878 36024 1 +164 12603 36025 73 +16628 4302 36025 73 +13002 5257 36123 1 +15316 13646 36123 1 +1675 11998 36123 1 +7449 671 36123 1 +12483 2975 36153 1 +681 19008 36153 1 +14030 6701 36153 1 +14857 1666 36159 24 +7624 15117 36163 1 +20854 2534 36163 1 +796 26080 36168 1 +14109 10167 36187 1 +14985 7349 36285 1 +10414 15905 36293 3 +2186 12053 36293 3 +6293 3825 36293 3 +93 26093 36311 3 +5040 23626 36319 6 +9142 4332 36319 6 +13600 926 36411 58 +1412 16670 36414 11 +7896 12222 36496 1 +4454 18042 36498 48 +12065 16910 36540 2 +4084 15177 36630 1 +3080 12781 36630 1 +8466 7966 36631 1 +4201 14884 36695 44 +3647 4765 36701 1 +9953 11074 36704 30 +10909 5435 36704 30 +24729 40 36708 56 +21321 7025 36708 56 +17667 7495 36786 8 +6685 16553 36786 8 +1562 9481 36786 8 +15564 981 36786 8 +21522 687 36838 13 +9195 10267 36855 2 +15967 9002 36857 1 +9280 2450 36857 1 +6343 16506 36857 1 +11303 1191 36858 1 +22437 2956 36943 2 +13383 7294 36943 2 +372 19369 36945 1 +5292 14500 36949 9 +6670 11487 36949 9 +7023 19268 36951 1 +8506 8942 36966 4 +4011 24571 36997 3 +5664 8614 36998 67 +128 13637 37034 2 +21255 6334 37034 2 +12661 9418 37050 4 +3874 4482 37062 87 +1465 23476 37062 87 +20256 347 37064 12 +264 9961 37064 12 +1440 17600 37064 12 +21072 3952 37093 1 +6110 916 37143 73 +837 25794 37166 1 +4094 11756 37194 1 +20571 8611 37202 1 +3769 1083 37248 15 +12069 4071 37250 5 +5441 18736 37250 5 +11978 471 37250 5 +17669 6478 37309 1 +14839 8419 37336 3 +8113 13644 37336 3 +228 21136 37355 1 +3556 2428 37373 34 +18206 6250 37373 34 +7559 4078 37467 44 +10038 14740 37497 20 +4578 22201 37514 4 +18917 8703 37557 1 +11396 8230 37563 1 +16837 3182 37563 1 +579 21418 37593 4 +17980 5436 37593 4 +23118 1241 37599 9 +20851 4317 37650 1 +8723 20409 37653 1 +8239 1079 37661 7 +9472 17758 37694 8 +8384 10200 37694 8 +21534 4453 37694 8 +9816 16049 37778 15 +3173 20069 37808 1 +17357 11760 37817 9 +5720 1649 37817 9 +6396 5991 37817 9 +17406 3497 37819 16 +5373 9611 37819 16 +21780 70 37838 4 +9247 17452 37883 4 +10438 13388 37978 1 +8402 2068 37978 1 +10083 18851 38000 22 +10916 2649 38022 19 +18190 441 38027 30 +11968 7515 38027 30 +15806 2583 38027 30 +13352 9505 38112 21 +1541 1267 38112 21 +18794 3069 38119 1 +9316 19519 38144 28 +15295 11656 38216 2 +17835 10555 38296 11 +3644 18593 38315 4 +11777 13776 38316 58 +21070 4378 38331 1 +2225 17448 38363 1 +984 22814 38397 1 +1184 5144 38397 1 +5425 4669 38437 37 +4405 9195 38456 11 +13695 14845 38504 2 +6337 12738 38562 1 +3396 9291 38563 1 +1545 4582 38585 40 +6955 7261 38585 40 +2128 110 38670 1 +10251 5226 38670 1 +10646 3212 38694 24 +983 6863 38701 8 +3257 21095 38701 8 +10386 11241 38742 2 +14607 2646 38777 1 +90 6665 38777 1 +4512 6383 38777 1 +11199 4894 38801 72 +3399 16922 38873 11 +15679 9129 38958 4 +3352 19880 38978 6 +5670 7848 38978 6 +13145 11009 39040 1 +41 14407 39041 2 +4896 23656 39095 21 +17946 10 39155 21 +24663 618 39163 33 +5376 122 39174 5 +19551 2676 39218 16 +5347 3157 39218 16 +3965 24439 39223 7 +5132 3519 39223 7 +967 12474 39259 2 +7019 6816 39267 8 +12518 14709 39267 8 +7602 3532 39278 18 +20569 7713 39292 1 +516 26741 39387 7 +8826 15525 39391 4 +12014 6156 39435 2 +5729 14593 39442 1 +1123 8291 39451 7 +1244 1654 39479 26 +3516 1715 39501 1 +7112 14746 39501 1 +9044 15931 39502 1 +5770 8780 39531 91 +13557 15541 39603 1 +21787 2610 39628 3 +8977 19847 39628 3 +8835 5246 39628 3 +665 5770 39629 23 +27241 557 39640 2 +17384 227 39640 2 +3217 21679 39640 2 +11133 2248 39640 2 +13696 230 39731 1 +9165 7731 39742 37 +21960 5977 39742 37 +2812 13053 39781 1 +322 14662 39790 1 +7235 11566 39801 2 +5364 1725 39802 3 +11979 6416 39802 3 +17922 2428 39802 3 +6 23089 39820 1 +9722 6109 39901 1 +6141 13523 39909 28 +16646 5978 39909 28 +3013 14740 39920 23 +12155 16874 39931 5 +1637 20536 39937 1 +15415 1862 39937 1 +2472 7422 39937 1 +81 7422 39937 1 +6471 7776 39957 25 +10372 9902 39965 19 +2938 7827 40027 10 +14951 8923 40053 1 +3616 8258 40064 12 +10111 15518 40156 8 +13889 12440 40156 8 +23503 3106 40156 8 +10268 7414 40178 5 +25113 121 40178 5 +19293 3671 40193 9 +11732 5655 40193 9 +7182 3953 40226 1 +9294 15235 40243 67 +1659 12723 40243 67 +9555 66 40243 67 +11566 5088 40243 67 +1310 10919 40308 1 +21582 7421 40330 3 +9755 16902 40391 1 +8556 13671 40400 12 +22935 3050 40400 12 +10707 12157 40403 3 +10438 7292 40418 1 +17823 10882 40460 46 +19250 9859 40462 1 +1452 1201 40540 1 +14074 7103 40599 67 +635 20855 40599 67 +13516 5695 40599 67 +21480 6365 40605 10 +13546 10946 40671 16 +15621 6941 40709 1 +1967 21017 40709 1 +9055 19940 40714 19 +5752 14441 40796 2 +902 16623 40804 29 +22300 3797 40853 1 +12663 6731 40853 1 +21135 3357 40875 14 +8533 20599 40886 11 +17672 8613 40887 16 +18299 2937 40887 16 +4864 14280 40907 15 +14588 6378 40965 4 +8594 13297 40965 4 +16687 10299 41044 27 +3802 2608 41122 58 +18285 8309 41136 9 +24621 2248 41136 9 +8691 13773 41200 1 +11056 4454 41200 1 +8340 8543 41262 6 +2223 19415 41262 6 +16007 10946 41287 3 +8715 656 41356 21 +23705 378 41437 5 +7360 13752 41439 67 +14687 7813 41439 67 +7338 21500 41441 77 +7423 11026 41510 31 +7866 15604 41510 31 +13855 4436 41515 16 +12790 5450 41601 32 +18429 5863 41602 20 +6582 6309 41603 30 +1827 7368 41681 1 +5294 13674 41681 1 +15949 503 41682 67 +1117 27324 41684 6 +12492 634 41684 6 +1518 634 41684 6 +8890 4345 41685 1 +22655 4577 41685 1 +4327 10038 41746 1 +15524 9746 41746 1 +3791 8174 41746 1 +12001 15380 41826 1 +12942 9604 41912 13 +103 20274 41913 1 +18045 3979 41920 57 +18188 933 42003 4 +968 8386 42005 23 +5340 19198 42036 1 +11188 5888 42064 3 +1042 22070 42064 3 +9405 17661 42117 5 +9393 9552 42177 16 +17180 2675 42180 1 +8073 5372 42194 1 +14969 4571 42194 1 +12391 16779 42196 1 +22843 6009 42228 13 +1250 905 42238 1 +7078 9881 42283 1 +890 7813 42289 16 +13469 14658 42289 16 +951 14448 42342 1 +11952 13510 42342 1 +18733 214 42355 43 +1433 12496 42377 65 +8827 1400 42471 1 +11546 9126 42528 22 +16813 8068 42529 1 +12307 13549 42558 1 +8408 19513 42582 1 +16307 12492 42600 1 +2251 26951 42668 4 +4175 15776 42671 1 +5667 12182 42671 1 +6792 1845 42671 1 +17535 8664 42734 10 +1800 9683 42737 11 +16003 9147 42783 1 +3302 10006 42783 1 +9930 17254 42795 23 +13321 7369 42796 5 +19292 2830 42826 41 +1204 21976 42826 41 +13554 14833 42830 1 +12085 6833 42911 9 +1864 21125 42911 9 +11855 6833 42911 9 +12629 5187 42911 9 +7862 3996 42911 9 +3139 11447 42943 1 +6595 10962 42950 1 +5324 22380 42961 1 +2365 5578 42961 1 +3170 17251 42970 3 +8384 14864 42987 2 +1012 9007 43052 1 +3464 7905 43076 1 +20908 1343 43144 3 +4175 93 43168 21 +21221 1081 43235 1 +14539 8365 43236 14 +12803 8581 43266 13 +14279 1513 43266 13 +3977 1836 43267 13 +9066 11759 43305 1 +7576 15814 43326 1 +605 17066 43328 1 +27396 752 43389 1 +4657 13927 43392 75 +4359 1146 43393 1 +15856 4668 43393 1 +2820 22241 43437 1 +6858 5717 43437 1 +20721 7229 43532 6 +12310 1161 43575 1 +23342 5 43589 4 +11573 13992 43589 4 +4949 10843 43589 4 +8942 3658 43589 4 +5821 7342 43589 4 +3240 14893 43614 14 +3010 5820 43628 42 +253 10566 43629 7 +20495 6732 43629 7 +3759 17803 43641 14 +1193 17971 43673 1 +6639 16829 43675 1 +13421 7712 43729 3 +2224 11694 43730 1 +11679 2172 43730 1 +2482 23082 43753 9 +14888 4876 43753 9 +11392 17201 43772 2 +3931 1361 43811 1 +5321 11849 43841 1 +10281 6542 43858 3 +17881 3081 43876 1 +17138 3634 43876 1 +6424 16054 43876 1 +18850 3545 43880 1 +144 13585 43880 1 +16008 10433 43881 8 +7509 859 43891 1 +8260 664 43891 1 +16424 4432 43893 7 +12275 4905 43893 7 +8377 5509 43910 1 +9110 10379 43916 1 +21382 4337 43941 1 +16497 4706 43943 2 +683 13157 43943 2 +107 5139 43992 52 +5273 10476 44050 72 +6250 5960 44061 17 +23536 287 44065 9 +16524 1164 44065 9 +8853 627 44115 1 +22139 4489 44164 34 +330 2795 44164 34 +9361 17250 44206 32 +10788 8272 44206 32 +4343 18172 44224 1 +4642 9786 44224 1 +583 9786 44224 1 +13765 3186 44232 1 +2133 13186 44306 29 +25133 1806 44306 29 +3498 17186 44350 11 +11891 16819 44399 1 +14915 7170 44446 13 +3712 20952 44486 6 +3081 6754 44491 64 +2944 1491 44504 1 +5407 18625 44514 1 +928 6652 44531 1 +994 26661 44532 5 +4524 3983 44554 9 +1556 16856 44637 1 +17246 20 44707 1 +1980 22444 44707 1 +1747 4141 44708 38 +1899 21490 44718 1 +24093 3863 44727 1 +12180 15625 44731 15 +5836 17644 44732 1 +5154 7143 44735 7 +11961 8622 44735 7 +15712 2453 44735 7 +7837 7365 44735 7 +4231 8949 44752 1 +6294 16935 44790 30 +1248 11023 44790 30 +4092 19205 44823 1 +9535 8753 44823 1 +12616 7162 44851 51 +9281 7557 44905 10 +9150 17916 44905 10 +13339 3755 44944 11 +6170 1951 45027 4 +711 24184 45033 2 +2040 3774 45033 2 +1978 2473 45033 2 +14767 12598 45045 10 +7160 8411 45059 4 +8822 7483 45094 2 +9359 4157 45133 24 +14816 1677 45186 1 +2236 6176 45222 1 +22352 5798 45235 1 +7400 18337 45246 19 +15044 4328 45258 3 +2451 13256 45258 3 +6104 11037 45258 3 +6450 6937 45258 3 +8950 3864 45258 3 +17947 3675 45258 3 +10550 16633 45335 1 +596 11325 45335 1 +6159 10191 45358 34 +18 8723 45358 34 +1989 14966 45375 1 +3683 23602 45376 1 +1277 9205 45380 3 +19776 3972 45396 2 +13009 189 45439 8 +1039 18519 45456 10 +20590 4903 45508 21 +1045 11996 45598 2 +23087 5170 45691 36 +4030 22788 45691 36 +5838 633 45691 36 +21610 6856 45734 1 +11371 7260 45734 1 +12615 1450 45752 1 +7749 5842 45755 42 +19010 98 45779 1 +6437 3247 45779 1 +17493 7257 45781 38 +2831 1278 45781 38 +18129 1138 45789 2 +3754 9198 45887 9 +4186 5595 45941 6 +10653 595 45941 6 +8310 5488 45941 6 +16522 9385 45947 1 +10280 17746 45951 10 +9007 4530 45951 10 +11610 167 46008 1 +4494 2016 46091 1 +18944 6826 46097 1 +10067 15933 46097 1 +18798 6118 46122 1 +22 6091 46122 1 +4079 15749 46122 1 +3330 13226 46124 2 +7335 21699 46164 1 +6723 6259 46164 1 +18628 5647 46164 1 +6368 5647 46164 1 +1264 26947 46211 2 +5713 259 46211 2 +2198 8749 46260 11 +22833 3317 46349 2 +6777 2535 46349 2 +3258 3283 46407 31 +24667 1619 46408 3 +3694 20218 46408 3 +21790 2443 46432 8 +18581 5117 46432 8 +892 22306 46432 8 +5777 17096 46433 1 +1861 22792 46435 39 +6982 10653 46436 1 +16553 12382 46436 1 +1364 817 46443 6 +11162 14980 46443 6 +5697 14252 46452 1 +1427 13706 46452 1 +20983 7711 46520 1 +2211 20247 46520 1 +18030 216 46520 1 +10644 1475 46520 1 +5073 1475 46520 1 +14474 1475 46520 1 +436 1475 46520 1 +17442 6221 46535 43 +5705 5193 46535 43 +18695 6647 46549 30 +15135 77 46614 13 +16137 10432 46614 13 +17031 9702 46669 12 +17284 613 46688 1 +13172 5092 46715 6 +13549 3278 46788 1 +14156 12274 46801 1 +16600 3239 46809 3 +10822 909 46810 1 +11359 13594 46815 91 +2005 14364 46815 91 +6100 6513 46820 1 +6672 8909 46829 17 +1420 13884 46875 1 +637 15444 46880 7 +882 12514 46880 7 +8527 12346 46910 19 +4987 3071 46924 1 +21456 754 46924 1 +524 12177 46998 36 +7395 7432 47002 3 +10378 11132 47002 3 +19590 3999 47025 1 +3904 1994 47067 5 +25131 3863 47069 14 +3264 15755 47070 9 +9808 8960 47082 7 +8733 11625 47082 7 +3610 10506 47140 6 +3771 6476 47140 6 +14289 10636 47235 5 +1977 5805 47296 1 +9816 4326 47296 1 +5067 18927 47325 1 +3806 12258 47350 8 +1531 21819 47352 30 +16014 4145 47354 1 +15478 5586 47355 6 +12916 8296 47355 6 +9610 12476 47401 1 +8351 1849 47466 23 +3167 3432 47467 14 +12560 4115 47486 3 +8521 717 47494 10 +3822 22092 47494 10 +7898 13073 47524 3 +10068 17629 47525 1 +2747 15474 47534 95 +10502 1914 47542 1 +3912 2633 47591 1 +571 12964 47649 1 +4791 8878 47649 1 +113 14860 47649 1 +16134 249 47671 9 +10761 5962 47671 9 +3626 19941 47677 2 +5356 16079 47728 1 +7429 16576 47764 15 +3495 4043 47764 15 +6868 323 47779 8 +5596 23224 47779 8 +15193 8485 47847 1 +9836 4896 47849 25 +17042 5202 47852 2 +346 20910 47947 1 +11879 1753 47947 1 +9655 15641 47948 3 +22882 6131 47948 3 +23985 1151 47948 3 +1636 6169 47955 6 +2699 15064 47980 17 +97 9551 48036 13 +16637 3798 48110 1 +1692 3651 48111 5 +18130 7798 48111 5 +4977 14064 48111 5 +3106 22991 48116 38 +6690 3894 48116 38 +4368 4967 48116 38 +7588 4967 48116 38 +13430 3204 48178 2 +703 8041 48190 1 +18508 10187 48192 35 +2342 10229 48197 1 +2753 6973 48197 1 +1126 6549 48197 1 +16457 12422 48234 6 +10130 15645 48262 2 +4672 523 48262 2 +20857 2062 48293 1 +17071 6739 48360 2 +25427 2625 48368 1 +5245 5409 48458 1 +10922 17653 48458 1 +1654 9881 48493 2 +3602 4492 48493 2 +5085 1078 48520 57 +8473 19412 48565 5 +12390 13442 48568 1 +7572 4621 48568 1 +7570 19328 48610 44 +6370 6144 48611 11 +903 4197 48611 11 +12507 15147 48622 4 +12697 3655 48628 1 +21592 508 48632 1 +11124 15286 48633 1 +1701 8380 48650 4 +972 13419 48670 2 +16011 11518 48676 1 +21036 4990 48691 63 +8703 16083 48691 63 +12602 5244 48691 63 +1758 9703 48701 20 +1148 18255 48701 20 +3313 4027 48794 29 +530 9140 48794 29 +140 8771 48801 1 +14515 13394 48862 1 +9973 9153 48959 5 +22 6691 48971 1 +7681 2703 48971 1 +2803 13683 48973 18 +20784 3562 48973 18 +9086 10713 48973 18 +10911 6957 48982 5 +1963 20865 49024 1 +133 7093 49024 1 +107 1820 49030 72 +13069 4968 49065 4 +14381 1512 49065 4 +21932 5354 49096 4 +9519 13080 49096 4 +2882 2768 49106 1 +5422 4170 49195 1 +4048 6339 49250 19 +23868 89 49278 20 +4988 3258 49335 1 +3398 10515 49336 1 +6859 13969 49340 25 +17795 9254 49340 25 +11137 14508 49344 5 +18301 2763 49344 5 +9676 13450 49344 5 +8294 13706 49403 1 +2591 19934 49472 1 +6811 9647 49532 1 +16512 3638 49532 1 +11345 14673 49532 1 +601 13792 49570 1 +12599 1904 49572 1 +16710 1857 49572 1 +2379 2407 49588 1 +8464 4993 49680 6 +3509 23899 49748 72 +16505 3446 49748 72 +9527 3953 49748 72 +12036 12502 49800 1 +5735 4145 49800 1 +15477 4050 49802 1 +9055 18533 49803 7 +23910 261 49861 26 +9738 2933 49928 15 +10977 8406 49954 1 +6093 957 49954 1 +18306 8202 49975 44 +261 12251 49975 44 +6081 8862 50066 43 +2210 9470 50066 43 +9608 6505 50070 7 +23848 1419 50070 7 +5910 18478 50070 7 +10569 8601 50070 7 +470 8601 50070 7 +1041 22111 50072 27 +561 5847 50072 27 +4519 102 50152 2 +1287 11139 50173 1 +8947 17556 50204 1 +13280 15535 50214 4 +13056 7020 50236 6 +13731 12505 50288 1 +1691 24222 50302 1 +12610 16151 50319 28 +13018 3153 50319 28 +17174 3077 50342 13 +3289 2992 50348 37 +26078 761 50359 1 +2416 22053 50455 2 +2854 139 50484 3 +23651 4211 50484 3 +10256 9885 50489 7 +7059 14064 50490 3 +12591 11110 50522 48 +3997 7217 50522 48 +4655 20479 50535 64 +13727 1389 50613 7 +2063 13600 50673 22 +11699 7945 50743 3 +4276 23984 50747 1 +11951 1450 50750 1 +10126 9996 50751 12 +5217 11090 50751 12 +2706 13053 50751 12 +11071 2414 50751 12 +1779 25490 50771 24 +4444 6482 50790 1 +11047 11048 50828 12 +11820 8081 50893 8 +9493 14538 50907 6 +10300 7076 50907 6 +8797 9881 50918 1 +9633 13053 50918 1 +23017 3975 50982 7 +4596 4888 51049 1 +6060 2716 51118 64 +138 12800 51126 1 +9576 15097 51177 33 +11512 11050 51199 4 +19123 1629 51199 4 +853 4827 51199 4 +5677 11146 51199 4 +2697 6249 51199 4 +12486 6064 51199 4 +8315 14308 51210 9 +13978 7302 51213 1 +12350 5121 51213 1 +3794 18000 51233 6 +5353 10686 51235 61 +17327 2634 51235 61 +1182 6633 51277 1 +14249 10350 51278 3 +10001 10966 51281 7 +19583 5253 51302 3 +2015 16891 51302 3 +21626 6246 51353 9 +1070 21712 51353 9 +810 15096 51390 1 +3034 5948 51406 1 +11879 7219 51406 1 +14034 2919 51494 18 +4928 18965 51507 1 +711 8993 51507 1 +4081 7383 51515 66 +12543 7608 51523 6 +4628 15039 51523 6 +13168 14968 51550 6 +446 27228 51562 1 +12609 15195 51624 29 +17735 8897 51625 24 +6130 13290 51625 24 +6579 19236 51631 1 +359 8722 51631 1 +14247 2502 51631 1 +7070 20815 51658 7 +18359 7143 51658 7 +23379 5771 51722 1 +256 17589 51733 1 +3157 2109 51733 1 +4080 16351 51736 1 +10709 714 51737 1 +994 21282 51737 1 +3748 6676 51737 1 +8932 12092 51757 1 +25544 2964 51785 1 +10177 7336 51790 22 +6328 10341 51790 22 +282 1113 51860 2 +15563 10689 51861 73 +25097 108 51861 73 +22506 1973 51862 28 +8091 2679 51917 20 +4731 4720 51941 10 +5413 22234 51996 19 +470 15820 52052 8 +320 3566 52052 8 +21929 3461 52081 4 +4056 12795 52082 17 +6176 6467 52087 4 +12855 10205 52087 4 +2857 20723 52090 4 +8101 7235 52090 4 +16513 6213 52143 16 +22221 1867 52230 1 +13319 1478 52294 1 +1052 18452 52307 6 +3522 6822 52344 1 +13679 4925 52378 1 +7924 20402 52383 1 +18416 8725 52389 24 +12427 11731 52484 21 +2625 16227 52484 21 +9532 8051 52513 1 +5428 18703 52515 15 +10804 16610 52572 28 +3627 497 52589 1 +11728 1767 52650 1 +21041 979 52680 1 +20917 6958 52681 1 +5671 17653 52681 1 +1632 10092 52711 13 +9880 5414 52717 2 +6225 1896 52717 2 +2258 6024 52730 6 +6972 7386 52740 3 +842 16126 52749 7 +14360 12979 52756 2 +19035 1013 52855 1 +3972 6958 52855 1 +9882 19185 52856 19 +4486 23009 52868 1 +2659 9618 52965 6 +10030 4702 52988 1 +6322 397 53013 13 +22708 1962 53044 6 +7715 21282 53054 52 +2091 6676 53054 52 +5496 13592 53092 2 +3126 6271 53101 1 +2583 302 53151 22 +5269 6080 53242 42 +12858 1155 53337 21 +5251 3339 53419 4 +13270 5838 53419 4 +19830 2197 53517 1 +3413 866 53556 12 +11339 1436 53624 30 +2770 7357 53624 30 +24099 2805 53624 30 +13084 13830 53625 1 +6704 18442 53716 1 +5704 17797 53725 14 +23424 3067 53794 3 +12578 4153 53832 7 +7761 14324 53832 7 +8317 15799 53834 1 +14941 3221 53836 10 +9757 7247 53836 10 +1744 4907 53836 10 +18120 7032 53836 10 +16267 9369 53847 1 +14173 9538 53847 1 +14556 5367 53849 46 +12004 6378 53862 4 +14761 10429 53862 4 +5692 2147 53877 1 +8975 10212 53877 1 +9119 15493 53877 1 +6437 20043 53893 6 +435 7549 53964 67 +10353 3058 54059 1 +5006 505 54110 40 +6532 13255 54112 2 +1206 14703 54112 2 +23902 2183 54176 1 +16410 1941 54246 1 +22899 4411 54247 16 +3921 5084 54306 4 +3795 21475 54333 4 +4368 3472 54383 1 +21484 5389 54383 1 +9452 16899 54456 22 +8492 15093 54499 1 +12078 4299 54499 1 +11637 16852 54524 6 +7162 14041 54527 1 +5457 7374 54527 1 +5916 5240 54527 1 +3536 10185 54535 30 +1005 8656 54562 5 +14429 2017 54562 5 +8503 15604 54626 10 +16128 2455 54629 1 +676 1703 54646 2 +24472 1257 54656 8 +15219 1037 54699 1 +3690 2622 54771 1 +4953 19361 54771 1 +5148 7334 54771 1 +21551 2888 54775 1 +2181 24828 54775 1 +21843 2121 54785 4 +17992 5553 54810 6 +2437 14522 54856 1 +6280 21869 54910 7 +472 15341 54933 1 +5870 5357 54945 1 +4551 19150 54964 1 +9736 1424 54964 1 +1459 12526 54984 3 +3530 11944 55012 1 +25953 2935 55033 49 +6822 16641 55035 55 +4799 11317 55035 55 +2747 5973 55043 1 +374 27896 55059 23 +14802 62 55059 23 +11476 8833 55068 69 +18828 5384 55068 69 +9656 19511 55072 2 +4830 4800 55072 2 +16188 3647 55072 2 +10465 3647 55072 2 +8589 12583 55131 1 +8722 3696 55132 1 +16102 9625 55167 6 +9931 4987 55178 3 +10775 5871 55178 3 +744 18223 55178 3 +3845 5208 55276 18 +221 22750 55276 18 +6978 9833 55284 23 +2288 778 55293 1 +642 25390 55339 1 +16570 2568 55339 1 +15607 7168 55423 1 +13754 14754 55442 57 +7847 19859 55470 12 +102 24692 55471 1 +1055 26873 55487 5 +15304 1085 55487 5 +5150 949 55487 5 +21001 2070 55506 9 +28104 505 55557 1 +9060 1572 55557 1 +9064 6619 55559 36 +13402 10792 55559 36 +2389 20296 55564 1 +1269 7662 55564 1 +1385 20534 55609 13 +10573 7424 55609 13 +3118 10069 55675 1 +10106 16679 55696 12 +4218 16051 55786 6 +577 16299 55795 5 +6472 13821 55870 1 +8798 3165 55906 1 +5780 21238 55906 1 +809 25496 55913 43 +1271 15075 55916 1 +8150 1598 55925 1 +1454 14441 55925 1 +9937 10670 55996 2 +23464 3375 56001 8 +3507 6833 56001 8 +20390 6238 56049 51 +4252 24973 56050 1 +20497 7243 56058 26 +5594 1985 56073 56 +9166 10244 56073 56 +21750 2159 56073 56 +15442 4174 56110 28 +13567 14717 56203 11 +10652 4756 56255 7 +21748 3996 56255 7 +5399 18018 56255 7 +13491 12006 56256 1 +10359 4811 56256 1 +19008 9591 56266 11 +9358 17926 56268 61 +12431 10032 56268 61 +4617 12345 56281 20 +648 7970 56327 7 +542 25878 56329 1 +5020 22859 56338 46 +21473 1255 56340 30 +1541 25959 56350 36 +7397 3508 56355 18 +6992 21180 56377 6 +2886 6778 56377 6 +21987 4616 56383 2 +11160 9162 56383 2 +4603 22108 56438 40 +9957 1570 56494 6 +10536 11376 56532 1 +13408 9463 56532 1 +7243 386 56532 1 +2313 17257 56609 11 +2780 25211 56612 1 +6910 187 56628 1 +2345 17367 56637 38 +4518 5472 56637 38 +1933 1301 56674 1 +9059 12535 56675 1 +7711 19445 56679 1 +6329 666 56679 1 +16991 6477 56679 1 +17495 10712 56759 2 +6061 20979 56799 1 +18597 9059 56814 2 +898 17193 56828 1 +1848 6983 56828 1 +3207 25526 56875 54 +3106 5813 56885 48 +4862 18176 56885 48 +1656 13307 56944 33 +13918 9520 56961 2 +26392 1928 56961 2 +19400 6024 56964 2 +16522 8938 57042 8 +1870 10525 57045 1 +15357 6806 57049 16 +24719 1465 57049 16 +1488 19687 57049 16 +7937 9329 57133 4 +1342 5451 57228 2 +5682 10330 57241 20 +4113 1169 57241 20 +1047 2881 57244 42 +6016 15742 57267 1 +19298 9355 57267 1 +10381 18208 57287 1 +16316 10948 57289 59 +22662 3632 57307 1 +11909 12686 57316 5 +6651 2706 57320 4 +17444 9004 57326 14 +18186 3360 57326 14 +2973 7134 57326 14 +9296 3566 57326 14 +7179 10952 57352 35 +3770 23444 57355 6 +10214 9192 57357 1 +6662 18833 57400 1 +14493 1478 57404 5 +19476 5961 57404 5 +16241 12947 57434 1 +11444 15011 57434 1 +19280 1384 57434 1 +7498 1759 57472 1 +15369 13634 57490 17 +11927 11305 57490 17 +7368 5867 57490 17 +11475 7788 57491 1 +6810 254 57495 1 +24913 2161 57509 48 +1456 25797 57509 48 +13058 11337 57519 47 +14803 3002 57520 23 +121 13861 57554 1 +15128 8341 57556 1 +7420 7361 57655 78 +9307 1300 57690 20 +5308 16484 57752 44 +4111 21177 57754 8 +12831 3462 57756 4 +10535 6272 57851 14 +14535 12398 57854 3 +19614 4604 57854 3 +19446 2326 57854 3 +14956 12434 57854 3 +7803 15151 57856 45 +36 6745 57856 45 +5116 7955 57937 21 +11387 17595 57937 21 +4242 4092 57937 21 +10885 8421 57967 5 +4076 1964 57980 1 +5356 3986 57980 1 +11737 9358 57980 1 +4946 560 58030 1 +9018 6816 58034 4 +12612 14936 58039 1 +20538 7615 58135 1 +8276 18464 58135 1 +15364 5368 58135 1 +8452 7088 58135 1 +16649 8033 58198 1 +3021 21280 58274 1 +16231 11450 58289 1 +468 25752 58376 1 +2434 4953 58378 18 +11742 5461 58378 18 +10374 8120 58437 1 +5445 12055 58447 5 +9362 15626 58536 1 +15322 4238 58581 1 +22988 3822 58589 1 +9703 7535 58590 2 +2070 15721 58590 2 +7068 9028 58649 29 +2883 18930 58649 29 +5304 34 58685 1 +723 19033 58685 1 +1702 7793 58685 1 +8266 5610 58685 1 +12824 3967 58685 1 +840 23569 58688 6 +2285 25747 58743 15 +5898 2211 58743 15 +10424 18034 58746 1 +21738 687 58753 1 +5427 16605 58753 1 +21466 4871 58754 1 +9438 11545 58806 19 +7366 7157 58877 72 +11739 14664 58923 76 +19374 725 58925 1 +13652 15221 58931 3 +6122 3853 58944 3 +11328 1054 58966 35 +17750 2965 58982 1 +12354 13736 58982 1 +5801 9878 58983 9 +4669 3132 59004 18 +5128 22024 59004 18 +1917 19306 59007 13 +9305 8652 59007 13 +24074 456 59007 13 +10967 5973 59082 5 +12781 4143 59087 20 +9951 369 59132 1 +930 19381 59213 35 +1092 17125 59222 37 +6055 18210 59303 3 +20021 1330 59303 3 +10422 17562 59309 1 +12422 4846 59310 1 +16368 5003 59310 1 +568 4082 59320 23 +4910 9189 59320 23 +539 3206 59320 23 +868 25281 59321 5 +4264 15819 59380 1 +11874 10951 59412 1 +11079 7272 59413 12 +10752 790 59413 12 +3215 14701 59439 79 +13727 12481 59457 14 +586 15477 59457 14 +4874 2336 59457 14 +19440 8609 59460 25 +3851 10594 59481 3 +16663 3294 59491 56 +3187 14608 59491 56 +6236 5241 59577 23 +1736 5246 59604 1 +5485 4209 59667 1 +11806 11692 59737 10 +14707 5557 59737 10 +12380 10309 59811 23 +2863 7139 59886 23 +17041 3082 59900 4 +7821 2030 59900 4 +10833 15896 59900 4 +10642 5588 59913 23 +16059 5390 59924 3 +16230 5123 59924 3 +12386 10962 59991 1 +2375 4046 60089 16 +11316 10399 60090 1 +12630 20 60090 1 +5391 655 60107 34 +14125 6934 60133 1 +9728 12308 60209 25 +5113 10676 60210 1 +7740 8892 60224 63 +7949 1792 60224 63 +6207 3684 60225 12 +5925 4147 60272 1 +2250 7472 60289 6 +9530 18522 60306 21 +11276 16058 60308 2 +12414 5092 60322 14 +17660 7813 60351 12 +11531 4228 60383 4 +27049 1321 60390 1 +14582 9275 60391 25 +4006 8210 60391 25 +7434 3035 60404 1 +3643 9894 60404 1 +23933 4670 60404 1 +11540 3125 60404 1 +6121 6034 60420 11 +5333 15265 60420 11 +17404 8376 60420 11 +1839 2774 60422 2 +25186 3804 60433 4 +12384 4309 60433 4 +26183 1 60478 1 +16891 9575 60535 20 +2096 14091 60536 1 +9739 126 60612 1 +12925 5117 60613 1 +9329 18882 60613 1 +15737 12870 60614 1 +5193 15088 60614 1 +4067 6151 60618 9 +3479 18132 60620 1 +7464 10845 60623 1 +2680 2620 60623 1 +5465 9892 60703 78 +14821 4433 60707 21 +28 3457 60707 21 +3262 11602 60707 21 +17141 585 60707 21 +23162 4935 60735 1 +12204 11174 60754 1 +5340 5116 60763 5 +1513 18555 60767 63 +5509 9058 60787 8 +8550 6653 60849 48 +14369 7493 60853 33 +17684 1357 60868 71 +924 5952 60892 26 +1740 11982 60897 1 +16998 11570 60898 53 +6592 13334 60908 2 +19577 7668 60915 61 +12739 357 60931 2 +4372 12998 60966 21 +1309 9349 60967 10 +13070 5467 60968 11 +1824 13206 61052 22 +18493 5600 61052 22 +5822 19224 61073 1 +9406 1376 61073 1 +21919 2548 61164 10 +4569 12187 61165 10 +2780 24209 61254 28 +695 3749 61254 28 +5953 13440 61280 57 +27360 1744 61288 3 +16912 3862 61292 38 +10525 2755 61311 2 +3011 281 61311 2 +6334 22523 61311 2 +6594 15117 61328 1 +7972 9183 61347 3 +12954 9156 61383 1 +314 1720 61383 1 +857 19206 61409 1 +21119 1884 61410 3 +5064 20082 61410 3 +4561 12727 61487 46 +5504 4472 61514 1 +17574 5724 61517 73 +13797 3611 61551 1 +7140 5652 61554 1 +844 19426 61617 2 +17935 5922 61626 1 +9627 1558 61631 6 +9522 17362 61631 6 +1694 22139 61641 12 +4337 14883 61648 3 +24911 1176 61732 3 +7906 18234 61732 3 +17895 2146 61736 11 +1451 13211 61736 11 +3439 7975 61736 11 +2885 7439 61736 11 +5498 13741 61795 25 +726 14217 61795 25 +7904 1420 61803 46 +18601 5469 61830 1 +10672 12333 61836 42 +12277 6628 61922 32 +11692 3481 61922 32 +6597 5158 61923 3 +6773 5100 61930 1 +6676 12017 61930 1 +10897 9894 61950 21 +2920 14155 61961 1 +3802 13414 61971 1 +306 9936 62060 2 +666 3438 62157 3 +6326 20804 62207 55 +5862 7154 62207 55 +9505 14336 62242 2 +4862 16724 62246 31 +9061 3168 62250 1 +19571 6485 62252 60 +6010 15784 62253 1 +11166 2949 62284 3 +1613 25009 62284 3 +14954 13871 62365 1 +16703 7167 62374 15 +2776 2043 62415 87 +17146 12005 62418 6 +1763 13289 62489 52 +12759 11020 62587 22 +1210 5136 62631 35 +16182 10952 62689 7 +2943 2874 62718 4 +7796 11801 62718 4 +10147 2241 62718 4 +23527 4994 62728 83 +11227 544 62730 1 +12514 12509 62731 2 +6202 6106 62731 2 +13658 11430 62774 92 +7533 18367 62835 15 +2495 9591 62835 15 +7240 13056 62911 18 +12942 8211 62937 1 +10251 5633 62946 1 +9053 8056 63000 19 +606 7110 63012 13 +9848 17379 63012 13 +5385 2854 63013 2 +6198 10581 63055 1 +17019 4460 63055 1 +7692 13278 63058 1 +3359 11867 63068 1 +13342 8715 63070 1 +20867 6642 63158 24 +1170 20401 63227 1 +8010 7557 63227 1 +2119 5965 63227 1 +913 19234 63229 1 +3698 8724 63229 1 +9683 12427 63231 1 +10124 12183 63237 37 +6985 7699 63237 37 +15586 6108 63237 37 +31 7336 63237 37 +13557 3375 63239 33 +4820 2498 63252 11 +7163 5751 63252 11 +15616 2445 63256 1 +3658 17923 63256 1 +4570 605 63340 3 +7071 21842 63385 82 +9899 6116 63385 82 +8031 18891 63428 6 +16170 8835 63435 4 +261 16597 63437 2 +12407 7553 63479 1 +20856 6617 63496 1 +2490 21341 63496 1 +10728 2975 63496 1 +17825 758 63496 1 +13164 2273 63502 17 +8031 3534 63562 1 +15233 6879 63564 7 +4913 20389 63564 7 +3685 23770 63657 57 +22808 4126 63658 1 +11320 9265 63670 1 +23650 2667 63676 1 +4997 23755 63724 5 +7544 2220 63738 1 +22030 2722 63739 1 +5187 8533 63739 1 +5593 21259 63792 3 +6002 880 63793 4 +26172 2151 63825 1 +363 4494 63842 1 +8418 4919 63843 29 +2347 18229 63853 5 +9682 14992 63874 1 +5253 15970 63909 34 +13826 12137 63936 1 +19846 7149 63961 8 +9997 8735 64003 1 +7574 20259 64011 52 +15609 7204 64011 52 +9102 11961 64034 6 +11941 5327 64086 1 +3899 22600 64086 1 +12063 9218 64115 16 +10937 11977 64124 8 +3780 15850 64154 31 +10156 12108 64154 31 +9222 10826 64200 9 +12018 6280 64200 9 +6242 19093 64210 1 +15552 4775 64210 1 +12476 283 64210 1 +3968 8865 64210 1 +14216 11156 64231 23 +9488 11310 64231 23 +7730 13670 64234 12 +13757 11477 64235 1 +12839 4515 64235 1 +12071 7884 64235 1 +2622 13791 64239 1 +15320 2103 64239 1 +14745 13860 64258 46 +1422 3043 64277 42 +5066 5508 64277 42 +18177 7737 64278 1 +19524 5965 64283 11 +2950 8282 64283 11 +2144 3534 64284 5 +3275 22347 64364 1 +13954 805 64452 1 +20420 8515 64452 1 +2898 16954 64454 35 +23194 56 64505 20 +4034 13248 64541 17 +9070 19336 64593 8 +11291 14146 64596 13 +24633 3182 64596 13 +10318 1880 64600 22 +16649 5733 64605 6 +22158 2499 64620 44 +8412 14506 64620 44 +10415 2998 64620 44 +1618 1219 64622 1 +14859 11459 64622 1 +6679 15280 64622 1 +4972 5998 64652 47 +24133 3332 64674 1 +9039 14685 64698 3 +14847 11345 64698 3 +359 3832 64725 5 +18510 3675 64725 5 +13078 1649 64727 1 +14286 6929 64727 1 +6336 21574 64775 1 +14243 1614 64812 7 +8798 6637 64817 1 +3221 23301 64823 10 +7745 6379 64835 1 +17523 2700 64835 1 +9772 9607 64835 1 +9372 7203 64835 1 +9652 15480 64835 1 +6872 6978 64836 49 +24010 4546 64862 4 +1338 6375 64862 4 +9693 16753 64887 1 +17243 8746 64887 1 +8594 10490 64891 1 +13317 4153 64891 1 +6365 5661 64891 1 +4423 6360 64893 3 +17589 2818 64965 11 +5144 19225 64980 8 +13484 7352 64980 8 +16999 9192 64993 6 +21721 1601 64993 6 +3282 20195 65003 1 +4150 7763 65003 1 +2049 21079 65048 10 +5759 6879 65048 10 +3800 9711 65054 1 +9133 943 65071 39 +11703 8651 65071 39 +27913 559 65156 3 +586 25372 65181 5 +6114 19691 65189 37 +25148 1935 65189 37 +26647 637 65194 2 +4483 21042 65197 1 +1555 5900 65198 10 +16062 2264 65198 10 +11379 13052 65198 10 +15435 9159 65257 1 +736 8658 65257 1 +5179 18743 65294 2 +3110 22113 65314 14 +1513 11424 65321 7 +3877 2282 65324 41 +18388 3237 65324 41 +3458 4109 65399 17 +10971 10827 65399 17 +2805 3908 65399 17 +27843 778 65420 53 +19140 7174 65420 53 +288 1246 65451 51 +1990 14446 65462 9 +13781 8661 65462 9 +18058 10964 65468 25 +788 27696 65499 74 +4460 2926 65566 1 +17574 987 65573 1 +1061 19631 65600 1 +18761 851 65601 15 +9441 114 65643 4 +10146 4546 65724 37 +20114 6186 65774 1 +1246 9981 65782 17 +25036 1193 65782 17 +17580 8977 65782 17 +3230 9000 65782 17 +27435 1317 65806 1 +9434 168 65806 1 +10905 12328 65899 1 +5709 35 65899 1 +7922 1328 65899 1 +24296 515 65917 1 +16704 2726 65927 20 +7237 10528 65937 3 +4396 17430 65937 3 +10668 540 66017 1 +1499 21027 66018 29 +11894 10174 66034 4 +8560 16689 66034 4 +7350 13631 66035 3 +18219 6350 66035 3 +16881 1266 66045 7 +4980 21575 66045 7 +3201 8298 66061 23 +5032 4553 66081 1 +25188 2417 66109 35 +15445 8729 66109 35 +2957 14824 66111 41 +24029 2968 66144 1 +3452 2745 66144 1 +10085 7765 66147 4 +4044 20238 66218 6 +9744 10964 66219 1 +952 18171 66287 7 +14951 5410 66293 24 +6779 30 66305 49 +3345 12429 66305 49 +11355 8799 66394 1 +25630 2347 66398 14 +5947 21107 66399 34 +17210 8137 66441 1 +11937 5601 66505 1 +13191 15896 66566 44 +7351 510 66573 5 +5200 19381 66602 11 +2923 181 66602 11 +4355 18908 66649 1 +2883 912 66656 2 +7835 12114 66657 1 +456 6018 66658 1 +2596 12351 66664 15 +1622 10879 66707 1 +3665 16876 66707 1 +21999 6076 66748 1 +1703 5169 66755 25 +10341 7110 66772 1 +11066 10868 66801 1 +18101 3371 66801 1 +8943 5373 66801 1 +7173 14967 66801 1 +1378 12991 66801 1 +2798 7137 66891 1 +12311 2081 66892 1 +639 4138 66892 1 +2706 9237 66892 1 +5956 9499 66943 3 +11275 1205 66947 28 +21784 6336 66952 19 +19706 2254 66962 3 +6162 5670 66962 3 +10816 12160 66969 2 +10303 14572 67061 75 +13660 4473 67072 9 +21431 6509 67078 1 +14887 9674 67082 73 +20261 5303 67153 1 +1058 4576 67153 1 +11564 7188 67235 3 +4809 14075 67235 3 +11161 12316 67235 3 +7753 20272 67237 1 +10962 846 67237 1 +7526 7041 67252 6 +13811 14683 67273 1 +5937 2796 67303 1 +293 13110 67303 1 +14360 11959 67329 8 +211 21306 67336 25 +14400 7135 67337 8 +13895 4090 67341 25 +880 2193 67341 25 +15723 13142 67349 1 +14561 14366 67421 5 +1723 2051 67421 5 +24610 2408 67421 5 +19748 959 67421 5 +5726 3962 67462 1 +3328 25106 67464 3 +8923 11790 67466 7 +7034 16168 67466 7 +9604 18538 67468 2 +2820 486 67531 26 +534 25334 67614 4 +23436 830 67638 58 +5841 13473 67638 58 +3591 24784 67660 22 +18646 773 67681 7 +16552 7619 67739 11 +6423 5789 67766 1 +8970 5928 67771 2 +18906 5995 67771 2 +7506 3716 67783 13 +25456 4 67783 13 +10318 15592 67783 13 +11142 6150 67785 4 +1350 20340 67790 5 +4052 22748 67816 1 +1463 6643 67881 42 +3349 11348 67881 42 +6251 11938 67883 1 +4240 16020 67883 1 +16219 8955 67976 2 +16809 4867 67977 16 +20708 4148 67979 1 +11937 4792 67979 1 +9148 19959 68050 1 +2634 749 68081 3 +10325 5191 68137 7 +23557 493 68137 7 +6928 11885 68138 1 +10842 789 68138 1 +598 14827 68177 1 +5656 7544 68216 6 +16734 4108 68216 6 +5497 16303 68222 1 +806 23561 68270 1 +18000 1785 68270 1 +6559 18011 68308 3 +2459 9912 68338 38 +1474 18046 68338 38 +4768 9912 68338 38 +5899 14434 68346 38 +8485 6298 68346 38 +212 22887 68357 3 +19548 9288 68371 11 +7667 17540 68371 11 +6904 6789 68371 11 +5554 1670 68371 11 +7379 16625 68405 2 +1300 6405 68406 1 +11347 10636 68443 5 +5831 12326 68443 5 +10449 4263 68454 5 +9413 4216 68508 1 +4491 20626 68511 1 +4113 444 68511 1 +9859 6954 68511 1 +17493 2241 68534 13 +1788 7226 68544 2 +9645 4321 68554 2 +14026 9236 68561 2 +1659 7615 68563 5 +4878 22176 68607 27 +4923 5782 68607 27 +4682 5782 68607 27 +2996 8249 68658 2 +23128 4742 68658 2 +12695 1696 68658 2 +7437 16182 68731 32 +23598 3898 68740 11 +5216 6793 68830 86 +1613 17509 68830 86 +14052 9290 68887 1 +19017 8379 68918 2 +11625 17526 68918 2 +1682 14754 68919 30 +5028 14730 68921 2 +379 11037 68921 2 +19175 8346 68953 3 +4497 9731 69009 1 +11512 10625 69011 36 +8680 17878 69043 19 +16667 9430 69065 8 +10030 1335 69066 62 +1169 16179 69148 1 +24989 4179 69150 1 +617 986 69208 30 +15323 6543 69211 4 +9031 17171 69230 11 +1028 10787 69230 11 +5788 9232 69252 11 +14697 1414 69252 11 +9405 17635 69252 11 +925 5279 69285 1 +21964 3793 69285 1 +23605 2928 69374 25 +2341 19228 69374 25 +13129 13822 69401 44 +8863 7226 69419 1 +18787 305 69424 1 +21756 6542 69424 1 +4529 16471 69428 47 +11245 10631 69451 4 +8713 14908 69460 13 +6602 1443 69461 2 +10402 9673 69474 1 +10876 4262 69512 1 +8523 16701 69513 74 +12492 8017 69513 74 +9433 661 69513 74 +24666 145 69513 74 +15983 10969 69592 16 +21736 3487 69634 5 +11123 15995 69637 1 +8991 3633 69679 24 +11781 3765 69679 24 +15838 10734 69696 32 +13779 5527 69709 46 +4261 4245 69716 1 +5201 20690 69716 1 +10456 6328 69716 1 +7382 20329 69718 4 +22549 1220 69718 4 +18363 7629 69718 4 +13232 3000 69734 5 +16623 12062 69734 5 +17807 4161 69771 1 +16188 10751 69771 1 +6376 17724 69777 1 +7646 9954 69786 9 +2777 22790 69834 6 +12900 10109 69894 22 +21868 29 69894 22 +14281 1448 69989 43 +5940 19537 70046 5 +10818 1395 70046 5 +9865 3479 70046 5 +1767 18606 70142 3 +2328 2787 70156 1 +10742 8671 70189 8 +1418 24747 70254 41 +5275 10181 70263 15 +17838 3901 70305 1 +8142 18442 70339 10 +13695 6111 70340 11 +14468 5981 70341 5 +853 11633 70341 5 +13901 7169 70341 5 +17404 3031 70344 8 +15545 6592 70358 1 +5522 818 70358 1 +9573 298 70372 12 +1703 36 70372 12 +3405 21901 70426 32 +10309 5516 70487 12 +1354 17100 70488 1 +6887 17364 70548 2 +10528 4711 70555 22 +8659 18510 70557 17 +17310 3975 70639 9 +10131 12487 70639 9 +1278 1255 70641 1 +20464 854 70673 9 +16866 1088 70678 16 +1710 4768 70745 33 +11352 7897 70814 3 +16005 5961 70913 1 +382 689 70980 38 +3942 2983 70980 38 +25440 3546 70980 38 +2741 6808 71020 10 +9510 9209 71098 1 +908 14646 71100 2 +5829 8568 71100 2 +22949 555 71101 6 +14219 8553 71119 12 +11259 4427 71156 13 +8350 2396 71159 1 +13238 1858 71164 3 +8763 11152 71165 7 +1960 5016 71165 7 +12061 9220 71165 7 +17198 5915 71238 3 +5290 19266 71330 22 +16041 5199 71362 86 +910 17611 71386 1 +12399 16800 71435 1 +14867 10577 71436 1 +6911 15409 71436 1 +1074 20273 71437 3 +8190 20176 71446 4 +16729 3766 71450 1 +12106 11308 71451 2 +11229 10667 71451 2 +12991 15753 71453 3 +17474 3704 71499 1 +14337 10866 71499 1 +904 4982 71515 1 +324 17731 71515 1 +13678 3171 71568 60 +20605 6266 71569 1 +16295 3980 71569 1 +4039 17712 71569 1 +11881 3120 71570 23 +13523 3379 71588 2 +8773 19003 71607 1 +5347 489 71607 1 +19276 8372 71609 1 +2358 18768 71610 1 +791 21962 71704 2 +3576 3357 71774 1 +4571 13487 71810 9 +11861 4237 71885 4 +2145 22035 71984 1 +26944 1037 72020 1 +627 5820 72020 1 +8459 11060 72037 2 +19184 3101 72038 1 +19696 2297 72040 2 +23605 2704 72040 2 +1499 4367 72040 2 +21254 3688 72040 2 +11112 5434 72040 2 +6431 19623 72067 29 +17784 8335 72067 29 +17275 2617 72127 28 +13017 16141 72127 28 +17445 10862 72133 1 +5543 17703 72155 2 +5253 73 72155 2 +4286 22742 72160 17 +19645 2441 72176 8 +13355 3461 72176 8 +7171 13422 72176 8 +6150 13815 72238 17 +1059 17349 72254 5 +2856 25129 72342 5 +183 11856 72352 1 +9621 6792 72352 1 +18712 8154 72352 1 +3214 11576 72407 5 +11043 1203 72407 5 +4885 16382 72407 5 +10819 9970 72439 1 +12832 10797 72439 1 +8606 12539 72442 18 +12817 5909 72442 18 +914 27770 72446 38 +3460 188 72446 38 +9585 19084 72472 1 +7687 420 72489 56 +20874 3565 72497 19 +27136 1709 72566 1 +1349 2793 72566 1 +15596 4771 72622 33 +4299 8466 72661 11 +1298 26338 72677 2 +4454 12666 72713 3 +19357 7382 72782 48 +6233 6510 72850 1 +3215 4362 72850 1 +20692 7594 72850 1 +5589 17911 72940 1 +23112 344 72956 1 +26805 1538 72995 1 +10965 11976 72996 1 +9520 10740 73002 2 +15139 2309 73016 9 +7780 13270 73028 20 +2555 20144 73058 35 +3501 5745 73066 9 +10611 7888 73138 3 +5394 2523 73213 3 +9982 2258 73221 42 +6030 15379 73221 42 +6351 18925 73311 3 +4499 19954 73367 1 +6593 15201 73368 6 +3360 12757 73368 6 +22336 441 73380 1 +11481 17476 73405 1 +22319 3154 73411 1 +7224 2799 73450 1 +15931 9897 73450 1 +9964 18478 73497 25 +2365 14369 73508 1 +5803 15910 73521 1 +7334 12048 73521 1 +1162 1788 73521 1 +26538 801 73529 7 +14064 7313 73529 7 +26794 241 73529 7 +7853 17190 73603 33 +10279 8626 73603 33 +349 6994 73646 1 +8142 14203 73646 1 +10894 6761 73646 1 +3028 20122 73669 1 +4138 7836 73669 1 +14604 7226 73675 1 +16205 6395 73758 36 +1127 19093 73758 36 +7013 6485 73758 36 +4346 19287 73761 8 +13119 12027 73817 57 +17447 10980 73839 1 +20443 876 73839 1 +19181 2330 73839 1 +9853 1261 73852 29 +1842 9964 73852 29 +31 7381 73852 29 +14546 7839 73858 5 +781 17518 73890 7 +14589 4029 73902 1 +8350 1428 73911 1 +14891 13226 73932 4 +93 6750 73932 4 +13339 9996 73933 9 +9122 14495 73933 9 +6319 12746 73933 9 +4557 20373 73956 7 +10291 4155 74039 1 +6752 10993 74040 5 +721 11188 74089 1 +5767 10099 74090 43 +7323 783 74094 1 +6753 16748 74104 11 +5200 730 74107 1 +6450 4785 74111 39 +13615 7810 74111 39 +9272 11647 74157 2 +3839 14513 74224 1 +9474 15964 74237 1 +16035 7778 74283 9 +4077 19316 74295 18 +14250 8642 74295 18 +14030 8120 74331 1 +12789 12691 74332 3 +13045 1711 74333 18 +3884 16808 74336 5 +13903 1556 74403 13 +7343 15450 74403 13 +26063 2334 74403 13 +3237 6691 74474 34 +20721 4998 74479 61 +1433 17585 74500 1 +396 10373 74500 1 +1737 9336 74500 1 +7373 7556 74540 2 +24093 3442 74543 1 +2187 17691 74547 1 +16496 1370 74547 1 +8082 7801 74547 1 +15854 2078 74547 1 +19838 8997 74547 1 +14527 1310 74547 1 +21548 1310 74547 1 +4375 1310 74547 1 +6766 17921 74633 24 +8303 10037 74633 24 +24596 2349 74633 24 +1110 7779 74633 24 +13123 11073 74646 13 +4432 4599 74647 16 +6964 4809 74650 5 +15710 2625 74667 1 +1060 25022 74672 9 +5108 5287 74706 7 +25560 556 74706 7 +17448 11307 74735 6 +503 4991 74738 13 +4375 11367 74828 3 +18994 1058 74920 8 +4153 38 74939 2 +21536 2117 74941 25 +12807 10759 75016 1 +8947 760 75016 1 +23002 6150 75055 4 +7008 13139 75068 82 +5943 18608 75076 1 +20491 4372 75091 6 +2391 6904 75091 6 +5162 19081 75162 1 +6996 8877 75162 1 +21270 7917 75164 1 +13276 12959 75181 1 +6389 12485 75241 1 +7207 8825 75241 1 +5159 15473 75241 1 +3465 6869 75278 1 +20991 625 75278 1 +9142 9414 75315 1 +18196 3969 75316 13 +15630 9812 75316 13 +1873 13580 75371 21 +1123 14378 75371 21 +15043 9720 75373 7 +427 19865 75424 1 +2447 10088 75446 1 +47 17870 75446 1 +8416 14061 75450 2 +9800 13897 75450 2 +9635 9103 75451 2 +21100 1094 75451 2 +2536 10680 75466 1 +19808 4558 75466 1 +734 19353 75475 1 +17034 3230 75483 1 +12060 9345 75494 1 +2784 12071 75495 3 +6636 7382 75585 6 +18962 906 75627 21 +5158 19356 75645 28 +1951 26329 75649 3 +6167 17540 75659 2 +10516 10418 75659 2 +18747 3171 75677 4 +359 15941 75678 1 +3434 11255 75678 1 +8713 19324 75717 17 +4866 13868 75754 3 +9170 13825 75760 15 +14495 4842 75853 47 +1965 13093 75857 37 +9245 17551 75863 1 +14280 1330 75863 1 +12300 10407 75863 1 +11645 15425 75868 8 +15420 10985 75868 8 +4457 12533 75868 8 +16240 5345 75868 8 +2937 5345 75868 8 +5197 3825 75868 8 +15078 3825 75868 8 +21451 2768 75919 1 +5573 2696 75972 6 +7867 5850 76024 3 +2195 6899 76028 9 +4742 17484 76028 9 +19862 2932 76056 7 +11801 3377 76092 1 +5400 22884 76096 1 +9368 2887 76099 3 +6219 6932 76111 16 +26818 615 76131 3 +11108 14268 76133 11 +17980 6134 76184 1 +17842 8392 76192 2 +6716 18858 76200 70 +2434 16081 76204 1 +8022 8700 76204 1 +3106 15959 76242 59 +1896 22711 76248 37 +395 5724 76260 28 +616 14101 76260 28 +6112 17274 76262 6 +17084 8010 76271 9 +4090 1414 76368 1 +22281 4053 76372 1 +17888 11002 76374 2 +21238 2660 76375 2 +23214 5203 76437 11 +14938 8718 76529 46 +4241 19656 76568 16 +8916 2106 76568 16 +9784 12255 76629 30 +20845 3245 76629 30 +13927 2757 76646 29 +5216 15560 76661 1 +10218 14019 76670 14 +9115 15369 76672 1 +5074 12589 76672 1 +3363 4594 76683 5 +2046 21485 76683 5 +5016 3001 76710 28 +12762 16164 76731 24 +3996 11794 76731 24 +19853 3836 76762 17 +12071 3029 76762 17 +3721 19954 76765 15 +23939 3296 76778 1 +11411 844 76778 1 +23115 2590 76778 1 +11145 5342 76778 1 +7939 219 76858 15 +266 8959 76858 15 +12650 8525 76859 29 +7970 18072 76859 29 +2036 15136 76938 68 +8486 9345 76938 68 +9532 11483 76938 68 +12207 4589 76938 68 +7500 18187 76948 30 +5621 16322 77008 1 +10768 14968 77012 3 +5094 8834 77080 1 +3138 7436 77123 1 +3707 17770 77133 2 +8593 15186 77155 1 +9659 3840 77158 1 +3559 17122 77163 1 +7389 4180 77166 1 +24892 3256 77166 1 +18269 3786 77166 1 +14498 6257 77166 1 +22201 5667 77166 1 +15273 8172 77166 1 +15698 1506 77173 24 +1274 11232 77197 1 +4209 9440 77278 61 +16780 10230 77316 17 +32 11922 77316 17 +19465 47 77358 16 +7840 17641 77372 4 +6812 4992 77372 4 +20702 5797 77372 4 +16813 5742 77372 4 +11903 8271 77372 4 +7179 4104 77386 4 +20013 6094 77409 33 +13834 6785 77409 33 +5637 20542 77425 1 +11251 7416 77425 1 +12621 7011 77425 1 +7613 19765 77426 5 +2091 13733 77433 1 +10783 17056 77504 6 +10064 6923 77505 42 +3131 18700 77505 42 +9835 489 77509 1 +26937 1722 77540 2 +10056 17236 77548 21 +4342 10207 77596 1 +12681 310 77604 1 +20081 6250 77605 1 +8681 939 77665 9 +7338 7615 77721 1 +13183 5070 77721 1 +22295 6386 77774 21 +14951 11154 77778 3 +13017 8050 77778 3 +13792 9351 77819 21 +17259 10531 77819 21 +4253 15314 77840 1 +12216 13291 77926 41 +10754 17651 77932 16 +4575 19341 77945 1 +14675 8617 77945 1 +5780 23398 77947 63 +14600 4560 77947 63 +19002 6289 77959 7 +5577 20636 77978 55 +22142 3234 77978 55 +15730 2489 78015 1 +8416 3287 78037 1 +13915 12901 78048 33 +6311 17833 78144 74 +18595 3197 78154 84 +2940 17503 78211 1 +2082 2971 78211 1 +554 10144 78265 27 +11702 2231 78271 13 +3586 9334 78315 35 +10147 18014 78315 35 +177 3383 78315 35 +7238 18815 78336 1 +379 9143 78336 1 +3342 12797 78346 35 +16115 12930 78362 43 +6073 4682 78402 20 +14271 11634 78438 48 +4048 21509 78537 20 +6535 21582 78541 1 +1179 13585 78551 30 +13800 1871 78551 30 +10829 3134 78609 6 +23152 3251 78625 44 +16632 5020 78626 60 +536 11425 78638 5 +870 12628 78638 5 +66 20790 78690 4 +9497 7168 78690 4 +3573 5121 78710 2 +1941 9468 78777 22 +775 7765 78782 4 +20409 2580 78843 2 +3404 7602 78843 2 +13894 6928 78905 1 +18228 7903 78919 1 +6888 9819 78928 21 +3467 10178 78942 1 +1006 3581 78942 1 +500 8737 78972 1 +5921 20450 78973 1 +4446 4077 78982 1 +4407 7315 79020 1 +12361 5312 79059 1 +25347 3536 79131 1 +3156 12971 79134 37 +8494 2704 79195 1 +17841 6538 79199 5 +13591 13197 79200 1 +2891 12175 79200 1 +2406 2009 79200 1 +14221 2525 79266 47 +795 19478 79266 47 +8395 8480 79266 47 +20201 7253 79273 1 +3505 12621 79346 19 +3990 7255 79346 19 +19460 6243 79346 19 +17815 5911 79413 7 +15166 3786 79415 1 +12905 9427 79415 1 +7460 11264 79415 1 +22054 2110 79415 1 +3348 1383 79512 1 +8394 5120 79521 4 +9799 10578 79582 5 +473 17380 79582 5 +17775 8054 79582 5 +4868 10061 79626 1 +10439 7897 79626 1 +8212 1493 79646 3 +6727 17618 79732 4 +19887 1442 79732 4 +12825 7834 79739 1 +18934 10062 79739 1 +16084 2315 79774 27 +3088 15518 79800 1 +9777 5671 79834 1 +15010 809 79909 1 +7015 11565 79952 10 +4193 16393 79952 10 +13637 9248 79976 61 +1270 2613 80031 2 +27282 759 80031 2 +17425 1171 80065 21 +4790 4807 80076 2 +18574 5198 80081 23 +3809 3610 80082 7 +2719 957 80130 48 +19141 4268 80131 7 +17776 421 80142 72 +23266 4287 80149 1 +10860 164 80170 2 +6207 15054 80176 2 +15184 8181 80210 7 +6325 20850 80268 2 +1319 10130 80273 7 +12535 1842 80273 7 +21635 2962 80279 23 +9901 8860 80283 1 +21317 749 80283 1 +16548 1132 80340 1 +21747 1280 80340 1 +21758 6696 80340 1 +11968 9443 80341 13 +19347 8851 80341 13 +4463 11290 80357 1 +5603 52 80414 30 +5575 14147 80414 30 +11756 8024 80415 2 +24466 639 80493 5 +10536 17069 80521 12 +15653 5140 80522 1 +13573 2317 80525 39 +10556 9437 80525 39 +11383 15374 80527 1 +15366 6409 80528 1 +14608 604 80547 35 +5294 8664 80569 3 +4272 12443 80569 3 +23025 3647 80619 1 +11290 137 80639 4 +4167 16117 80652 1 +28266 48 80655 11 +13191 3563 80699 1 +18250 9885 80723 1 +4269 5064 80723 1 +3576 13009 80723 1 +8726 3336 80723 1 +23599 1950 80732 60 +3883 3294 80740 24 +1674 6128 80740 24 +7372 3925 80808 20 +9034 14279 80826 12 +18757 9388 80829 3 +677 16290 80897 1 +3711 16168 80898 1 +6583 4271 80901 1 +3876 19624 80911 5 +7093 7210 80920 86 +20872 2034 80920 86 +8184 18430 80944 21 +2619 12934 80999 1 +651 15024 80999 1 +24514 3916 81023 1 +8435 5955 81023 1 +634 22446 81048 2 +1737 7810 81059 7 +23792 2516 81110 2 +14826 12513 81110 2 +11926 8210 81203 5 +15124 13789 81236 55 +19963 954 81325 2 +2492 19392 81358 36 +22708 4039 81360 20 +13372 14326 81360 20 +9265 4213 81363 2 +15409 349 81441 5 +19258 7005 81446 2 +13545 6121 81484 3 +1222 21837 81484 3 +12618 5152 81489 10 +16405 1726 81489 10 +4723 3266 81490 7 +11491 3538 81490 7 +21728 6315 81495 17 +19097 1958 81497 1 +3405 8624 81530 19 +8852 19334 81530 19 +4284 3177 81530 19 +8758 1631 81532 1 +1908 13620 81556 1 +13090 14508 81605 1 +19204 5014 81660 2 +18159 3861 81668 25 +1387 24897 81689 39 +8138 2847 81764 1 +22491 2257 81764 1 +126 17825 81785 40 +4808 551 81800 1 +3881 14285 81802 53 +6778 9800 81847 2 +2301 12339 81847 2 +11137 9488 81908 3 +12450 5312 81910 2 +130 13032 81955 10 +4899 20219 82040 13 +2292 7739 82040 13 +20802 5132 82040 13 +22027 9 82122 30 +17658 760 82136 1 +4654 2284 82221 31 +4912 6134 82301 1 +26281 2139 82301 1 +8148 11308 82379 1 +3608 14095 82381 1 +1661 5269 82444 1 +15929 12686 82507 1 +5594 12969 82574 4 +1686 19830 82588 16 +10367 320 82601 1 +18177 10627 82601 1 +8172 17011 82601 1 +1905 9437 82636 1 +7162 11092 82648 19 +8609 3863 82648 19 +20778 6330 82654 15 +7597 1311 82654 15 +19892 1548 82654 15 +11175 16066 82654 15 +4728 15185 82688 1 +10849 2004 82688 1 +8407 19956 82691 9 +2145 8002 82691 9 +22331 4440 82693 9 +6444 10035 82702 1 +5169 13736 82727 4 +14535 2283 82735 31 +16549 11743 82749 3 +859 16215 82749 3 +27514 1494 82751 1 +22472 103 82788 1 +7691 9183 82788 1 +11920 10223 82841 1 +4195 10235 82841 1 +4209 2098 82855 28 +6966 1849 82855 28 +16241 8445 82855 28 +13031 1611 82855 28 +9809 4669 82863 78 +2196 7972 82863 78 +8567 19560 82864 4 +6248 20647 82867 4 +11785 1893 82867 4 +18820 4334 82882 27 +17056 8696 82900 19 +13715 9084 82901 1 +10373 11230 82949 1 +5678 11844 83028 1 +3109 11578 83050 57 +17204 1885 83065 4 +21203 2323 83131 1 +3206 6767 83140 1 +13185 9924 83140 1 +5821 22699 83164 1 +10667 16410 83227 6 +1784 11514 83236 17 +5147 21440 83272 27 +17929 4937 83272 27 +807 6518 83272 27 +6668 17362 83277 1 +21260 1544 83318 1 +16315 11421 83327 6 +8572 10314 83399 26 +19193 8443 83494 1 +15182 3790 83499 1 +12617 663 83501 56 +25189 77 83501 56 +18519 9055 83537 20 +11505 14966 83548 4 +12606 4011 83592 11 +12985 10317 83641 1 +10986 5913 83643 30 +19306 1543 83643 30 +8962 19363 83643 30 +18614 5016 83724 1 +2615 3549 83741 5 +11743 6702 83741 5 +4563 17707 83741 5 +4342 9212 83747 34 +20462 1271 83815 12 +7616 12533 83823 58 +1200 25192 83832 9 +14087 1560 83838 1 +1952 22619 83839 1 +21174 845 83839 1 +3389 12418 83849 1 +9166 15540 83849 1 +8991 12637 83865 6 +6005 21787 83866 1 +13663 9392 83894 2 +9671 2636 83909 9 +1107 25052 83998 23 +3079 1830 84018 1 +14925 13730 84018 1 +5029 9552 84085 1 +15836 2406 84085 1 +4458 21709 84091 2 +7540 21042 84093 60 +8985 40 84113 5 +750 25954 84131 6 +13484 6171 84133 1 +1486 175 84171 14 +255 23976 84173 1 +802 10837 84252 1 +6535 10648 84252 1 +25180 1328 84252 1 +2235 10249 84252 1 +10129 16221 84255 2 +15952 8129 84255 2 +1858 19819 84257 1 +5242 8139 84257 1 +105 1711 84273 1 +3366 24879 84273 1 +1803 1368 84273 1 +16640 13 84273 1 +19729 13 84273 1 +3710 8947 84278 3 +12583 8500 84309 1 +6607 231 84337 2 +15684 2267 84426 3 +7992 8925 84426 3 +2525 16173 84430 1 +20828 2340 84497 7 +24758 2120 84536 1 +18177 5274 84536 1 +21514 5506 84544 1 +8244 12129 84570 14 +1777 16416 84571 3 +5757 15702 84572 1 +19171 9017 84573 1 +8807 19553 84658 15 +153 24467 84680 3 +1426 5309 84737 1 +14274 13718 84737 1 +3920 11202 84827 1 +19725 5296 84827 1 +5534 6682 84835 70 +4228 7656 84836 29 +19409 7125 84840 4 +4791 4315 84894 1 +14722 6008 84898 58 +9396 7833 84898 58 +19102 5066 84945 15 +16146 8673 84958 38 +20903 6980 85003 18 +17243 2874 85008 86 +1890 5394 85009 4 +13009 8057 85012 49 +12007 9915 85012 49 +1248 682 85093 6 +3580 21434 85093 6 +22843 3421 85115 44 +13339 15270 85179 1 +16842 5361 85184 24 +14697 6675 85216 3 +12837 7319 85280 14 +18089 8168 85280 14 +6889 15795 85284 62 +1282 9853 85371 11 +13924 507 85371 11 +4725 8171 85371 11 +9026 16335 85392 2 +27334 815 85394 67 +4255 18356 85400 9 +15938 4870 85433 1 +18300 4276 85493 34 +1554 23682 85493 34 +3806 2666 85552 6 +242 377 85553 6 +26606 1091 85553 6 +4994 9747 85553 6 +19908 7174 85553 6 +8986 306 85560 7 +18182 2052 85560 7 +9309 13823 85574 22 +7094 10785 85634 1 +16052 5760 85672 1 +10937 9992 85675 38 +3957 6861 85742 1 +17618 11396 85832 1 +797 6359 85838 37 +21915 6840 85838 37 +1335 5214 85838 37 +3535 14759 85838 37 +17963 8239 85850 6 +15629 1530 85850 6 +1183 19632 85851 2 +18620 5479 85851 2 +14587 11736 85932 1 +16502 2004 85964 11 +15132 7520 85964 11 +22379 2625 85964 11 +13872 4578 85995 1 +15253 10902 85999 1 +24527 2328 85999 1 +397 10703 85999 1 +5969 5653 85999 1 +3860 9756 86001 1 +13353 9776 86090 1 +3583 9975 86090 1 +3352 22511 86173 2 +12890 3897 86215 54 +2998 2454 86218 1 +12205 6163 86218 1 +1612 6266 86219 6 +13000 13890 86254 1 +3690 10935 86254 1 +2376 4758 86254 1 +22982 819 86270 38 +15021 11250 86270 38 +9285 5166 86271 12 +27303 73 86299 42 +5540 19395 86306 1 +17204 2361 86306 1 +5335 10845 86372 2 +7617 13591 86372 2 +1513 12085 86372 2 +475 8263 86372 2 +1219 10685 86378 1 +4004 2423 86378 1 +5846 9301 86475 15 +6187 18657 86475 15 +20891 5755 86560 37 +12872 10006 86562 3 +17784 7016 86578 1 +2452 18013 86580 47 +10734 249 86606 1 +25263 1760 86678 12 +17534 8943 86708 1 +8877 4969 86708 1 +13781 1888 86708 1 +2919 18037 86728 13 +15897 2802 86731 52 +2781 14359 86735 17 +21745 5124 86738 44 +9389 12906 86738 44 +5248 8241 86738 44 +5646 6337 86738 44 +16982 11360 86747 1 +2494 3306 86761 4 +3527 16050 86762 1 +1699 3991 86807 1 +1409 17727 86812 1 +75 19518 86820 31 +25359 1185 86820 31 +24360 1427 86891 1 +10673 5111 86920 15 +13659 3342 86922 73 +10839 11774 86958 24 +8917 8431 86958 24 +12668 14262 86958 24 +3922 9945 86958 24 +19171 2941 86962 11 +11541 15271 86962 11 +7141 468 87000 75 +4273 17632 87000 75 +3630 2307 87064 1 +12130 15281 87064 1 +9588 7782 87065 1 +19083 461 87065 1 +12875 6684 87067 17 +12710 13235 87067 17 +8744 6143 87129 12 +15846 6491 87150 1 +8317 11129 87158 8 +14371 23 87249 1 +1179 12269 87338 1 +1865 11995 87426 11 +10743 5973 87432 44 +23430 1683 87432 44 +1502 22139 87450 1 +27955 8 87469 1 +6649 1177 87469 1 +10771 1193 87478 67 +21777 2101 87480 1 +16219 4230 87480 1 +12498 5664 87570 8 +3581 5003 87619 35 +15145 7776 87686 12 +14079 12524 87691 20 +14437 4779 87706 62 +1636 11813 87710 1 +12475 2772 87739 7 +19293 5418 87739 7 +24494 2679 87817 51 +706 18292 87817 51 +6843 4327 87832 1 +9571 8622 87911 11 +13589 4110 87911 11 +7410 208 87912 1 +11232 15619 87921 1 +9227 15623 87944 16 +8623 6830 87944 16 +13344 914 87948 14 +5526 10765 87949 22 +8364 17193 87949 22 +6789 494 87949 22 +6320 22896 87984 16 +19345 7271 88040 1 +2350 23039 88110 1 +13520 3265 88158 22 +21516 5610 88158 22 +1367 15178 88162 1 +2479 12780 88162 1 +14819 13084 88216 1 +5437 22563 88241 9 +3744 22212 88245 6 +17522 4448 88245 6 +8764 19870 88256 3 +16495 4824 88271 1 +3318 12316 88304 1 +7115 21504 88326 34 +2811 6454 88326 34 +20271 4129 88328 10 +7508 17544 88390 1 +24326 3362 88395 7 +4569 3812 88397 12 +11653 17559 88410 5 +13352 10916 88496 1 +19491 1568 88496 1 +8339 3081 88496 1 +1155 12152 88497 33 +21564 5427 88497 33 +2576 24826 88520 1 +4414 11059 88542 1 +2745 22841 88565 1 +14662 9739 88576 1 +11402 9134 88584 1 +1880 508 88587 2 +22464 2329 88654 27 +12789 16400 88654 27 +14604 11558 88654 27 +8044 2794 88665 1 +1641 25778 88696 10 +10272 18954 88698 35 +13672 7385 88698 35 +10093 11426 88704 2 +2147 6757 88711 1 +1088 17053 88729 1 +16101 8695 88770 2 +1970 7147 88855 1 +8285 5251 88870 8 +647 24030 88902 4 +4887 3309 88908 66 +7149 3711 88927 45 +17510 6540 88989 1 +3177 21161 89036 2 +9403 3096 89039 19 +20913 5079 89108 1 +5639 4479 89121 1 +1976 21618 89121 1 +3238 6340 89121 1 +5918 22308 89122 24 +1119 1979 89122 24 +6909 911 89123 3 +23829 5296 89124 1 +15013 9181 89163 4 +2284 21512 89174 6 +7100 2408 89181 8 +18955 9450 89183 1 +24924 599 89207 5 +234 25974 89224 20 +12703 1984 89224 20 +2526 8842 89264 3 +25708 1672 89310 4 +2589 6126 89310 4 +3971 10133 89347 11 +13249 15980 89399 2 +6903 15083 89495 5 +5104 9733 89498 13 +5085 19382 89501 26 +1167 8576 89501 26 +23230 1535 89501 26 +8770 5896 89505 8 +3915 17101 89535 5 +14434 4122 89535 5 +3936 10857 89535 5 +41 9008 89544 1 +15216 37 89544 1 +12291 15196 89568 45 +6385 3928 89618 5 +14069 10707 89623 10 +11462 17585 89645 1 +16287 386 89645 1 +16153 1990 89740 26 +22300 1709 89789 10 +5937 3192 89877 34 +3173 23479 89878 50 +21857 4479 89878 50 +9856 7237 89891 2 +26174 429 89891 2 +8900 8687 89941 3 +15742 2580 89941 3 +10267 1106 89941 3 +3386 18536 89941 3 +11199 4237 89941 3 +13381 10641 90029 1 +8357 1758 90029 1 +5699 13200 90120 1 +789 14862 90157 1 +15519 10838 90157 1 +15778 7188 90162 19 +2523 15499 90162 19 +14073 1937 90178 1 +1335 25738 90240 7 +3201 23341 90322 1 +6776 2308 90389 6 +6105 14659 90398 18 +6202 13299 90398 18 +1329 9638 90398 18 +17845 789 90481 2 +7462 1844 90493 13 +12928 2880 90566 13 +8852 16720 90566 13 +2473 2500 90566 13 +6923 16812 90632 7 +18391 5265 90632 7 +2197 11146 90632 7 +1062 4502 90670 9 +13181 9185 90753 40 +14207 14157 90753 40 +22045 192 90753 40 +5123 15359 90772 3 +9304 2459 90772 3 +2247 12261 90791 16 +10363 10224 90821 1 +3806 17734 90821 1 +1295 15915 90828 1 +4023 11667 90840 5 +16719 8093 90840 5 +11731 10897 90843 17 +2378 17061 90843 17 +13364 7708 90843 17 +11490 3014 90868 3 +10770 5809 90961 4 +20075 4158 90992 1 +5093 373 90997 1 +2065 4916 91028 4 +7881 20908 91028 4 +10101 1279 91031 28 +7940 5702 91031 28 +6344 7865 91034 11 +28970 123 91034 11 +3241 13182 91034 11 +9478 18892 91068 4 +1713 14556 91079 1 +18024 1421 91079 1 +8825 11981 91079 1 +14582 8805 91105 1 +26977 2171 91105 1 +13925 8640 91105 1 +27390 229 91105 1 +16008 2873 91105 1 +4577 6494 91106 2 +1010 21464 91106 2 +7753 6046 91108 34 +2027 1432 91119 22 +3216 13674 91120 12 +17658 3484 91120 12 +14666 1471 91167 23 +19865 8895 91224 28 +12861 8885 91320 1 +5618 17385 91326 32 +2049 3459 91341 31 +1143 17579 91367 1 +18900 4562 91369 1 +2155 3137 91369 1 +13353 7175 91372 2 +9425 13446 91413 7 +4919 10061 91425 1 +6009 17897 91425 1 +1392 23908 91473 4 +3560 2279 91473 4 +11736 14694 91474 13 +1746 13264 91474 13 +9773 2559 91540 7 +964 9701 91635 1 +10557 2842 91635 1 +13446 594 91660 3 +3112 14486 91661 21 +2300 16278 91683 5 +21892 2111 91706 6 +3890 14322 91708 39 +27182 1941 91708 39 +9941 16087 91750 3 +12260 14007 91774 17 +11896 11874 91774 17 +2375 6179 91801 43 +5744 2096 91802 1 +1208 6374 91846 22 +5567 5943 91921 3 +7995 8971 91921 3 +1714 16559 91921 3 +8746 11525 91922 1 +18304 982 91922 1 +2785 8068 91922 1 +11052 14252 91923 19 +3548 2852 91938 3 +176 2434 91939 5 +12549 12403 91940 4 +19785 7081 91976 1 +3753 16726 91979 4 +2107 10024 92000 6 +7379 5009 92001 57 +1647 5976 92009 1 +3190 3378 92029 1 +20847 6649 92032 40 +5954 17312 92032 40 +12994 7515 92037 18 +15434 10701 92059 2 +8409 7737 92059 2 +19743 4326 92059 2 +9760 9631 92107 1 +2243 18394 92115 1 +4009 4767 92157 1 +3819 1840 92233 1 +1690 20591 92305 1 +1624 440 92401 2 +1887 23726 92416 1 +2210 872 92485 1 +14217 180 92485 1 +20724 4091 92496 16 +16956 10822 92506 7 +2459 6648 92545 5 +26724 2227 92606 18 +2309 24061 92608 38 +18616 3897 92608 38 +8894 3897 92608 38 +367 1866 92608 38 +7515 17482 92649 3 +22888 4285 92649 3 +19407 8257 92650 30 +14104 10429 92662 22 +6685 17135 92667 1 +10218 13252 92714 35 +15188 12782 92724 1 +9410 309 92724 1 +8696 4050 92730 7 +20586 7577 92742 5 +1492 20381 92742 5 +13606 13123 92746 1 +15554 9319 92768 1 +23082 2573 92777 2 +1241 3264 92871 12 +14112 13563 92889 1 +5663 16295 92977 1 +2808 11663 92977 1 +6644 169 92977 1 +3628 8808 92977 1 +11354 8808 92977 1 +2012 22561 92983 57 +6026 1979 93064 1 +8947 17169 93067 1 +9793 7050 93083 34 +3283 2757 93175 20 +11324 9185 93193 24 +17470 66 93193 24 +11656 17542 93200 52 +7495 2698 93205 8 +397 6803 93207 9 +6484 7195 93286 53 +15460 226 93286 53 +10057 8244 93316 1 +8788 14582 93323 42 +4185 5596 93329 6 +18246 9727 93329 6 +6695 21657 93335 1 +21301 7275 93342 2 +557 26720 93361 1 +18474 7076 93390 25 +5237 5462 93395 5 +11350 8475 93433 14 +348 11787 93444 4 +38 16171 93444 4 +9532 10002 93444 4 +14406 7044 93444 4 +7277 16893 93460 59 +17186 5961 93460 59 +8513 10350 93460 59 +21470 2016 93467 6 +4672 22363 93540 8 +16738 5595 93540 8 +9891 12212 93541 2 +7275 12105 93541 2 +5966 4759 93541 2 +4333 23961 93559 3 +13718 2393 93625 68 +16696 5775 93643 2 +15442 10167 93658 2 +5925 17791 93658 2 +8856 12375 93681 61 +1572 25544 93742 1 +15815 4798 93743 1 +21495 4766 93789 1 +25119 373 93883 1 +12833 7846 93907 2 +21833 4476 93940 29 +15969 146 93940 29 +191 16447 93940 29 +6106 7035 93940 29 +10073 1701 94018 5 +4077 9276 94019 8 +9768 12663 94022 1 +7721 15689 94051 1 +1820 23827 94109 4 +27724 1187 94109 4 +17316 2944 94109 4 +1217 17212 94110 22 +16389 9882 94110 22 +3129 557 94110 22 +18460 4532 94201 6 +2773 9787 94201 6 +24615 3425 94208 31 +5110 14910 94274 1 +15832 7993 94322 1 +10271 10162 94322 1 +9981 11919 94324 4 +12544 9766 94360 32 +7466 8148 94378 1 +599 19810 94378 1 +25241 2160 94378 1 +13956 5988 94378 1 +2060 1218 94381 1 +9116 14719 94384 5 +5387 18684 94390 1 +4008 11994 94393 1 +13569 11612 94393 1 +7612 2419 94401 1 +2350 17643 94411 4 +15700 3364 94411 4 +8764 2931 94411 4 +780 7009 94411 4 +2942 5101 94414 14 +2461 22857 94414 14 +20419 3644 94414 14 +18137 1898 94424 2 +8586 17568 94453 6 +20035 2755 94454 83 +4461 20035 94491 72 +15878 7923 94491 72 +25068 1043 94516 15 +13305 6484 94521 4 +3680 14529 94620 11 +4025 7707 94623 37 +9631 19288 94628 12 +14289 9784 94693 17 +12588 10203 94693 17 +3728 12962 94730 14 +22756 5093 94738 57 +8486 13720 94739 1 +13059 8744 94739 1 +7810 8918 94739 1 +23829 3445 94791 2 +1314 11682 94791 2 +15814 10897 94800 1 +15806 12025 94805 13 +3624 15933 94805 13 +17306 2487 94805 13 +22438 3688 94839 3 +11841 15994 94847 1 +2053 10105 94888 4 +2808 21993 94889 16 +10072 4322 94896 2 +20889 4262 94896 2 +7698 8494 94929 1 +21041 3455 94929 1 +2257 15604 94999 4 +19064 210 95025 3 +16279 4684 95025 3 +14375 291 95025 3 +1171 7966 95025 3 +12217 9126 95025 3 +17906 175 95049 63 +15592 6106 95070 4 +1116 21852 95070 4 +7683 6205 95122 28 +1478 12008 95122 28 +25134 3507 95167 1 +15470 7557 95199 7 +2813 15637 95212 24 +24538 846 95268 16 +4688 18136 95268 16 +2698 8976 95268 16 +15014 12975 95289 4 +12857 15875 95317 1 +17195 3504 95328 13 +17700 22 95412 1 +22438 4393 95422 2 +2139 11040 95453 13 +26077 39 95531 15 +7039 14035 95609 8 +18293 208 95670 37 +13422 2508 95676 9 +11133 2387 95676 9 +2090 15360 95677 9 +12729 3158 95772 41 +9324 2065 95811 3 +22797 3098 95904 15 +1998 14555 95904 15 +373 3418 95915 10 +1227 10598 95915 10 +3507 7446 95943 2 +15595 3582 95958 1 +8695 17066 95958 1 +1531 27648 95985 4 +2492 6684 95989 3 +10136 9660 96053 44 +1981 18298 96053 44 +10486 401 96135 19 +11376 10420 96221 8 +13296 5695 96255 30 +15250 3861 96258 1 +12984 950 96258 1 +20052 3630 96258 1 +2117 8263 96298 1 +5763 17074 96298 1 +6576 7512 96303 2 +21604 2312 96303 2 +16165 2678 96355 66 +23419 3357 96420 2 +1893 13202 96431 46 +409 13954 96431 46 +2875 6875 96431 46 +6888 3983 96437 7 +16573 3206 96519 3 +20105 7476 96547 1 +3823 13368 96547 1 +2108 7114 96547 1 +14371 645 96576 67 +10467 4375 96578 1 +3540 23866 96622 4 +14246 1948 96636 2 +2838 6580 96637 1 +7389 6875 96648 31 +969 8166 96667 1 +16844 3648 96676 2 +25095 3705 96687 1 +530 21513 96733 15 +9164 1684 96770 1 +7994 14253 96772 1 +1174 9759 96775 9 +12462 8986 96775 9 +6358 9213 96775 9 +12594 7684 96775 9 +16500 10693 96803 1 +4287 10881 96803 1 +22645 1578 96813 8 +7252 18997 96829 12 +9204 5784 96841 18 +1949 22339 96873 3 +6573 15083 96875 1 +19062 2881 96918 16 +17765 8680 96990 8 +4633 8805 97084 1 +9297 11219 97084 1 +13870 8273 97089 1 +1568 23930 97090 7 +3245 3492 97097 1 +186 24979 97110 6 +8775 20282 97141 7 +18510 10209 97151 1 +986 818 97156 19 +11425 353 97245 3 +6495 19995 97278 49 +1413 7963 97278 49 +14468 6308 97348 3 +16821 5426 97354 1 +2579 5690 97354 1 +15353 5908 97354 1 +1739 6158 97359 13 +23480 3336 97401 50 +21891 178 97401 50 +1160 20727 97479 37 +26696 2422 97506 1 +6979 15373 97523 8 +4376 19791 97558 54 +12795 5658 97642 2 +6720 8273 97680 12 +3559 13184 97768 1 +3258 17118 97786 15 +11128 6264 97787 11 +3409 17459 97793 16 +9853 10004 97866 14 +7399 212 97870 4 +3229 11183 97870 4 +18369 5288 97870 4 +6420 1010 97960 5 +16940 10968 97965 1 +4070 23801 98007 11 +4541 19786 98017 21 +12608 14998 98106 63 +1659 7327 98107 53 +11194 16674 98107 53 +5479 13670 98136 1 +5549 14288 98136 1 +183 9120 98138 1 +8580 7813 98155 1 +14307 2000 98218 1 +9838 15867 98298 62 +2412 12091 98298 62 +12562 7099 98354 7 +4782 17527 98406 36 +2250 16676 98482 29 +203 27729 98492 50 +10540 229 98492 50 +8641 229 98492 50 +2822 14083 98531 23 +164 18085 98534 1 +24275 1015 98534 1 +9322 16806 98547 3 +12600 9680 98560 1 +3452 6204 98647 2 +1661 17136 98684 1 +1099 9776 98776 54 +6033 18182 98776 54 +19239 199 98803 1 +6490 17798 98803 1 +6600 10241 98807 1 +4986 7270 98850 1 +1451 22418 98868 9 +3804 3477 98869 12 +16812 7844 98916 1 +10249 7826 98916 1 +18672 8072 98916 1 +3289 9368 98987 1 +26261 160 99006 4 +5364 21903 99006 4 +23127 5132 99006 4 +19465 5497 99038 1 +3975 9052 99038 1 +11797 5065 99045 1 +10651 5389 99112 1 +4826 17062 99193 4 +8001 1168 99196 1 +5937 9964 99229 3 +23385 5808 99231 23 +3346 18993 99239 1 +24897 2928 99258 19 +4146 6500 99267 24 +7254 5516 99267 24 +25702 498 99267 24 +8749 9661 99267 24 +2872 3839 99334 55 +12436 10189 99370 3 +5229 6600 99370 3 +5814 3382 99370 3 +14376 10557 99442 1 +587 13296 99468 52 +21472 4953 99485 1 +12164 231 99485 1 +17310 2465 99485 1 +7678 12315 99516 48 +17177 9514 99521 3 +7751 17315 99529 1 +13677 15423 99579 3 +8842 12008 99625 79 +5447 6776 99690 1 +1429 18152 99690 1 +4277 9806 99690 1 +8674 15055 99709 11 +4671 9640 99770 1 +1360 2589 99797 1 +3942 10538 99841 10 +10877 4605 99846 2 +482 17128 99925 9 +3540 12314 99973 54 +598 20530 99990 1 +9040 10235 100004 1 +4576 9263 100023 9 +3633 234 100023 9 +1445 13749 100023 9 +8722 5622 100027 3 +18764 7422 100027 3 +13385 13833 100046 5 +12653 13608 100046 5 +14956 7578 100046 5 +9532 8479 100046 5 +2678 153 100047 1 +70 23528 100048 4 +7492 9641 100049 32 +21932 5812 100051 1 +8247 18031 100120 54 +4083 9927 100120 54 +1288 5075 100120 54 +7052 3977 100130 1 +5849 19484 100130 1 +927 21298 100194 6 +11668 14698 100226 45 +17819 7904 100226 45 +11862 7631 100231 1 +7555 20578 100275 1 +13816 7102 100287 1 +18195 516 100289 18 +5904 18966 100370 1 +15326 8992 100370 1 +5674 20327 100450 5 +5953 7631 100450 5 +22539 1978 100450 5 +14679 4484 100530 3 +16936 10118 100530 3 +5891 2208 100599 73 +1208 11582 100629 3 +15638 11437 100710 9 +1602 23259 100733 1 +22409 4699 100733 1 +15458 8235 100746 2 +15192 2627 100759 52 +730 18939 100760 41 +22845 2466 100760 41 +11198 3243 100856 18 +4703 6021 100909 13 +11039 16115 100909 13 +772 22892 100942 1 +4514 5066 100942 1 +3364 23400 101003 1 +9030 3116 101004 5 +3414 1401 101069 53 +3810 18420 101071 33 +5582 11799 101081 9 +23950 4462 101160 4 +4406 22826 101164 1 +8357 5833 101165 9 +13123 14156 101188 1 +13780 15246 101230 1 +20052 5 101230 1 +12602 7748 101240 36 +10924 8614 101241 3 +4963 19344 101241 3 +4400 6059 101247 56 +18139 4523 101247 56 +2159 11822 101267 1 +2210 2693 101324 6 +22752 4704 101371 11 +5665 2612 101399 1 +143 19762 101416 5 +16890 685 101500 25 +2361 4591 101524 5 +2175 19127 101524 5 +9695 12536 101539 6 +2206 3252 101604 9 +4914 4587 101604 9 +3486 14735 101616 1 +6387 13223 101616 1 +23190 3315 101625 1 +17807 6562 101625 1 +4338 19260 101625 1 +20408 7328 101633 1 +23548 1017 101645 61 +2562 1616 101673 1 +18975 10098 101676 1 +3194 2144 101676 1 +4613 15537 101676 1 +23785 763 101677 23 +8175 16 101684 6 +19618 2988 101708 17 +19550 8121 101708 17 +25259 2920 101708 17 +2258 18769 101770 59 +10635 4289 101860 23 +3681 24156 101878 3 +3168 13810 101898 1 +11307 16895 101986 1 +338 8889 102038 1 +6869 13359 102038 1 +22035 3394 102065 8 +5367 22277 102065 8 +10491 6918 102066 1 +11749 5848 102066 1 +10778 15726 102077 7 +13409 10869 102084 1 +15031 519 102166 1 +10135 3934 102166 1 +13444 9302 102166 1 +18778 9450 102186 1 +12934 10070 102186 1 +13608 8984 102186 1 +5410 15994 102259 3 +8502 2150 102259 3 +4855 11964 102259 3 +1814 6332 102259 3 +22786 4944 102262 13 +8658 1012 102268 1 +7440 9689 102288 1 +11322 13019 102297 1 +17730 8405 102297 1 +2291 20609 102300 1 +10955 17908 102381 1 +12717 3839 102381 1 +1185 2875 102409 1 +1259 25083 102409 1 +7983 14989 102465 16 +12514 11001 102510 1 +514 16957 102510 1 +3319 5399 102511 8 +18227 9366 102572 3 +2842 18592 102572 3 +15685 4092 102573 6 +2200 14989 102573 6 +7853 19849 102598 15 +13033 12291 102640 1 +23435 604 102640 1 +7621 7871 102681 2 +2246 2309 102683 40 +827 27455 102689 18 +9843 18554 102723 73 +9402 15782 102724 12 +24243 3913 102724 12 +4424 12455 102743 72 +25760 545 102743 72 +1502 18255 102745 7 +23404 2698 102745 7 +5969 941 102776 45 +22275 3897 102782 6 +15047 6647 102846 1 +12543 7900 102846 1 +8874 18447 102847 5 +12431 708 102853 3 +3154 25415 102853 3 +1676 19928 102856 1 +803 7755 102858 75 +19438 1613 102858 75 +4450 17769 102866 12 +1248 10189 102866 12 +16936 10834 102871 45 +17650 3756 102871 45 +13460 11803 102871 45 +23174 1264 102899 3 +7762 9889 102916 1 +11079 12355 102970 26 +17437 1391 102970 26 +4057 15603 102970 26 +10174 8581 102970 26 +16630 5062 102970 26 +9111 8581 102970 26 +17587 2279 102987 1 +2563 11913 103008 2 +13523 5201 103068 1 +14702 739 103109 1 +2028 22775 103113 1 +1239 5183 103113 1 +15063 4394 103113 1 +3751 4394 103113 1 +1613 11240 103129 1 +9521 15019 103145 12 +17827 9760 103177 26 +5800 15890 103194 1 +24647 3011 103194 1 +4221 4569 103198 1 +14263 12025 103214 15 +3955 11914 103266 2 +15824 5443 103320 57 +26218 1711 103327 1 +14029 5617 103330 27 +13190 4041 103340 1 +17928 8527 103389 38 +3994 601 103407 9 +11914 1968 103407 9 +8518 12953 103407 9 +2936 483 103420 14 +11352 11541 103447 9 +5608 2034 103540 1 +20358 4982 103543 29 +27301 1229 103627 82 +3762 9831 103627 82 +16125 1872 103627 82 +7839 4595 103659 1 +14618 13089 103659 1 +4810 20783 103693 17 +26939 2121 103693 17 +2278 4391 103699 2 +14451 4277 103710 1 +11451 12204 103729 1 +23380 5219 103743 37 +3055 12343 103752 49 +9178 17764 103804 7 +5639 10469 103875 16 +1200 27928 103890 4 +20208 1874 103973 63 +9703 9925 103981 1 +24735 3837 104008 2 +7655 7716 104040 1 +265 18780 104040 1 +7335 8630 104040 1 +17841 3942 104040 1 +1910 8579 104112 49 +7548 7994 104122 29 +6224 22010 104210 25 +4462 20241 104242 1 +6075 11117 104278 8 +2502 4188 104285 12 +1967 23760 104350 1 +17938 10921 104353 9 +9833 18907 104376 1 +5482 4119 104376 1 +15307 4932 104376 1 +6278 2037 104394 2 +19363 1109 104394 2 +3583 5591 104396 1 +11772 75 104398 35 +7268 18060 104426 6 +11827 7224 104431 1 +6006 13546 104486 23 +3077 18877 104494 4 +19574 1884 104496 1 +1787 3510 104496 1 +13240 9535 104497 71 +1752 18407 104557 14 +14912 8278 104557 14 +10021 7594 104629 7 +317 25181 104631 16 +18939 6441 104675 7 +12809 4102 104688 6 +14483 4575 104689 1 +7921 19992 104752 1 +7461 10117 104781 10 +9186 17541 104789 86 +12545 9470 104802 3 +6888 16915 104802 3 +10082 4634 104802 3 +7541 7617 104803 1 +21145 686 104805 7 +22481 2060 104805 7 +3350 14985 104807 1 +17098 8402 104843 4 +2830 5353 104850 1 +18748 4337 104850 1 +16465 8369 104868 3 +25798 561 104868 3 +22436 4516 104910 5 +7673 17846 104914 1 +2413 12290 104975 28 +2086 12323 104988 1 +5413 9790 105029 1 +2702 10070 105029 1 +6238 12581 105075 5 +8370 9993 105084 14 +6902 8145 105087 15 +10659 12881 105092 2 +6009 21562 105093 1 +8240 7932 105112 3 +6112 20026 105112 3 +16868 5478 105164 1 +4385 15754 105173 9 +10514 7078 105173 9 +11743 3291 105180 1 +6457 15390 105180 1 +4615 269 105180 1 +4344 3680 105257 7 +864 20042 105267 2 +4106 23246 105286 37 +15637 5993 105302 1 +12031 6508 105302 1 +21081 3542 105302 1 +2481 13511 105340 93 +7639 1957 105340 93 +6761 14447 105340 93 +13997 10763 105343 7 +18866 3893 105343 7 +5619 8168 105343 7 +2313 23422 105387 13 +1865 4536 105387 13 +22228 4088 105387 13 +4806 23631 105392 3 +12482 4327 105392 3 +10651 14294 105395 17 +2955 13391 105400 1 +19431 5600 105400 1 +3992 8967 105400 1 +11278 10093 105424 23 +10043 13985 105471 29 +4598 5733 105485 31 +7581 14959 105485 31 +7598 15758 105501 9 +4935 24074 105591 9 +14029 8612 105593 1 +2838 19346 105593 1 +6767 8155 105593 1 +318 8155 105593 1 +15500 9620 105600 5 +2170 16515 105682 1 +6261 8974 105682 1 +17755 8786 105682 1 +6368 946 105693 1 +119 20409 105700 4 +17963 4142 105714 44 +3032 22605 105718 89 +4711 13665 105743 12 +23372 5249 105747 8 +17643 2198 105752 1 +15875 2907 105752 1 +4751 12814 105752 1 +5317 4252 105752 1 +7452 12868 105752 1 +3040 12299 105752 1 +9788 5958 105754 8 +4803 9044 105756 4 +5015 9537 105757 3 +9819 16594 105759 1 +14722 6073 105800 2 +2330 10013 105823 23 +10777 17092 105886 3 +9141 10866 105886 3 +10854 4426 105896 56 +1936 7193 105902 13 +2078 2511 105962 12 +5793 3327 105965 27 +1660 1869 105965 27 +8421 18022 105965 27 +21959 3085 105972 17 +21360 6766 106070 43 +3059 16518 106094 2 +27368 746 106177 1 +8441 18513 106178 26 +12264 2218 106182 18 +14252 11485 106198 10 +5432 10723 106199 1 +3167 1538 106199 1 +2971 11892 106204 1 +725 5487 106204 1 +1471 17316 106209 9 +21696 3948 106215 1 +1159 5856 106307 1 +14442 7461 106307 1 +538 15055 106308 3 +15725 9771 106370 1 +15412 2814 106386 8 +713 241 106391 1 +16319 12478 106391 1 +6536 6219 106394 29 +2310 24841 106405 41 +20388 323 106405 41 +510 25923 106461 1 +14923 2035 106461 1 +18504 10628 106464 14 +783 17810 106556 10 +14510 4498 106643 11 +9884 11412 106644 41 +3327 8915 106647 18 +10823 3950 106728 9 +200 24008 106728 9 +6099 3950 106728 9 +1246 3950 106728 9 +10423 15750 106780 2 +2527 19395 106793 1 +4312 8563 106793 1 +11925 5660 106793 1 +4705 22744 106832 48 +2612 5214 106832 48 +11786 13041 106858 32 +5259 5082 106886 12 +6413 16431 106886 12 +17288 2000 106887 15 +11861 4938 106938 5 +1268 6379 106938 5 +13770 9598 106938 5 +13883 5872 106996 24 +11029 9327 106996 24 +19519 432 107010 1 +11930 4733 107087 3 +13855 11828 107127 9 +9739 3328 107168 1 +7503 15625 107174 76 +17260 7720 107174 76 +11078 4649 107236 70 +3258 5594 107278 11 +17166 6963 107278 11 +15594 1139 107278 11 +12462 10335 107308 2 +16996 1287 107308 2 +13243 3982 107309 1 +16213 7483 107326 69 +20993 3159 107334 1 +6748 13662 107343 3 +4605 13003 107343 3 +2664 8163 107439 1 +2869 16689 107454 31 +3248 11269 107454 31 +24474 4305 107516 1 +2732 20193 107573 4 +2216 7765 107573 4 +10568 7249 107573 4 +22809 3760 107573 4 +21958 206 107578 1 +4536 3968 107621 1 +4699 20520 107669 7 +13480 7438 107669 7 +3995 23880 107721 16 +15834 3953 107723 5 +14760 372 107730 1 +4076 8379 107731 80 +9908 17509 107768 26 +1679 2745 107776 2 +6675 15068 107870 19 +6137 14310 107918 1 +816 13648 107918 1 +18537 8327 107918 1 +8726 12324 107925 17 +7220 15190 107925 17 +17197 3959 107927 65 +2772 8889 107927 65 +11339 3212 107927 65 +15979 13043 107931 5 +8101 20440 107987 7 +10142 7518 107987 7 +868 13766 107999 1 +1034 9687 108072 31 +15133 4459 108111 12 +1607 21614 108118 1 +1821 13175 108141 8 +2171 14783 108141 8 +19712 5771 108149 1 +14584 11984 108149 1 +15919 2725 108152 1 +3761 2813 108152 1 +952 9737 108157 1 +2114 18221 108157 1 +16296 7886 108198 19 +8572 4656 108201 22 +14027 13389 108206 18 +10637 6388 108206 18 +27815 328 108210 3 +2403 9629 108213 1 +20651 8517 108213 1 +5385 22923 108222 26 +3919 5035 108222 26 +418 3569 108222 26 +15990 8411 108255 9 +14917 12662 108311 6 +6843 8699 108320 1 +3802 22462 108323 2 +12496 10478 108403 44 +1979 9818 108408 16 +15045 428 108413 1 +7575 10302 108418 70 +11316 16552 108418 70 +13739 6331 108418 70 +4283 11804 108444 2 +7906 1733 108466 10 +4663 17404 108466 10 +15215 13223 108503 14 +10675 5595 108571 33 +21880 4259 108602 1 +17719 644 108688 53 +2441 3277 108688 53 +4614 10304 108746 1 +16808 10935 108746 1 +12441 2535 108770 1 +17366 9254 108777 1 +9514 583 108800 2 +8169 999 108800 2 +1070 26376 108800 2 +976 1582 108800 2 +15126 5185 108826 1 +294 18076 108829 1 +12985 525 108849 3 +17111 9273 108919 6 +15946 10594 108919 6 +735 15732 108919 6 +24932 880 108944 28 +3032 15303 108944 28 +10296 13691 109018 1 +9668 8162 109070 15 +7911 14801 109167 7 +1707 23039 109191 22 +10260 4919 109191 22 +2501 6308 109259 1 +265 6302 109263 21 +13026 15750 109263 21 +9712 9021 109328 1 +2663 9623 109328 1 +638 482 109349 1 +10261 17862 109444 1 +3049 16056 109457 1 +9339 3796 109507 1 +9576 8181 109522 1 +3465 8788 109522 1 +9928 14102 109552 1 +5284 5462 109558 12 +5177 10269 109584 2 +16412 9167 109608 7 +21103 6013 109626 8 +11720 14984 109699 29 +13880 1062 109759 2 +6782 2400 109847 1 +4398 2761 109847 1 +1940 25651 109890 3 +20210 2503 109946 6 +1145 15162 109989 1 +14296 2369 109989 1 +3299 12438 109989 1 +1930 2185 110061 5 +10535 10078 110062 1 +2126 221 110062 1 +13869 10453 110067 5 +101 18838 110115 9 +17042 9747 110119 10 +183 340 110140 1 +22039 2645 110149 1 +4035 22844 110151 19 +4164 3157 110151 19 +1631 14666 110173 1 +6571 6978 110226 9 +14372 9495 110249 1 +6964 18463 110249 1 +3847 9495 110249 1 +20580 4051 110256 3 +10585 18518 110289 17 +16113 6548 110360 14 +20502 553 110448 59 +18541 6546 110495 12 +9965 6275 110567 4 +24627 3100 110616 1 +10746 8431 110616 1 +3005 11849 110682 10 +15319 6105 110751 1 +7708 18501 110751 1 +3627 9995 110754 7 +2213 24179 110756 3 +4173 11654 110772 1 +14987 13256 110819 4 +4791 7158 110830 3 +27457 145 110856 13 +238 976 110896 10 +6162 22214 110898 3 +11674 490 110901 31 +14954 6267 110905 1 +18369 5498 110905 1 +7206 11284 110994 2 +14561 12553 111027 46 +3940 250 111032 1 +889 18652 111052 1 +8444 9306 111052 1 +8177 12086 111053 15 +17453 940 111053 15 +6648 3807 111069 1 +7350 2779 111071 1 +12868 12217 111116 4 +3795 22059 111132 2 +2044 11864 111134 15 +8461 70 111193 1 +25507 2844 111212 1 +7091 17646 111225 27 +1385 6434 111225 27 +18215 9362 111288 63 +20391 4371 111292 20 +16659 7272 111296 55 +5244 20686 111296 55 +9388 7272 111296 55 +17063 6624 111296 55 +6112 15741 111298 16 +8601 9011 111298 16 +9009 7089 111318 64 +16079 9657 111407 2 +462 18301 111407 2 +336 17000 111412 6 +5189 10958 111412 6 +7140 6488 111417 1 +17204 7683 111441 1 +8481 7368 111466 44 +6586 1914 111466 44 +19579 1534 111466 44 +20399 3219 111472 10 +4201 15883 111472 10 +22210 874 111507 7 +7861 18396 111508 1 +3220 21147 111517 14 +2133 20960 111518 39 +16365 4108 111519 1 +411 11684 111596 15 +5159 8292 111596 15 +19390 2957 111596 15 +8861 10054 111597 1 +11109 15003 111664 3 +8550 3823 111680 32 +5803 20691 111704 4 +18126 3227 111714 4 +23370 341 111714 4 +2842 8140 111714 4 +1976 10364 111806 3 +26671 1344 111808 1 +15128 2687 111841 1 +13582 10623 111885 59 +11546 7575 111894 1 +7978 3672 111949 1 +11846 9611 111949 1 +1906 8387 111949 1 +2051 9730 111951 46 +11927 7585 111951 46 +9030 10643 111951 46 +17906 10549 111953 60 +7672 10977 111953 60 +5288 16301 111985 18 +24962 848 111990 50 +6005 13434 112013 12 +114 20563 112017 5 +12756 15348 112034 1 +964 15869 112053 1 +11910 11739 112053 1 +13424 5273 112053 1 +6698 10373 112092 1 +25601 3211 112107 36 +2441 3112 112114 1 +5193 23615 112123 1 +6640 230 112123 1 +8447 1701 112125 3 +4598 22840 112126 13 +4300 11691 112134 51 +3382 23308 112135 1 +12906 6603 112138 2 +10834 12837 112139 1 +8553 14307 112139 1 +6739 2503 112139 1 +9717 5189 112154 2 +3300 1110 112167 45 +10606 16626 112167 45 +7615 15282 112221 44 +11353 12676 112221 44 +703 23721 112222 46 +20806 5965 112229 53 +6732 6655 112229 53 +3608 14870 112229 53 +44 4378 112229 53 +25915 2558 112229 53 +5202 14247 112263 9 +236 13711 112263 9 +5805 12715 112272 1 +24067 4195 112282 1 +11013 13432 112283 22 +763 22277 112284 6 +13927 8555 112311 10 +13692 2933 112369 1 +19192 6475 112369 1 +4505 10704 112369 1 +14037 1055 112374 72 +1537 13312 112450 8 +16921 9953 112450 8 +1740 16928 112452 50 +26544 438 112453 5 +17721 5050 112466 1 +15648 9372 112466 1 +3402 11281 112484 31 +3026 15031 112503 11 +15112 12927 112503 11 +6558 2945 112503 11 +4232 2594 112503 11 +8859 2945 112503 11 +12373 15879 112506 5 +15177 12628 112522 14 +21553 6470 112524 8 +24732 163 112610 12 +12602 10512 112648 15 +6494 13426 112704 4 +9934 3609 112704 4 +3554 17108 112705 1 +1976 25043 112706 10 +26300 2874 112706 10 +14520 12327 112709 4 +20415 4846 112722 1 +12956 6909 112730 2 +13745 12186 112753 19 +4543 15772 112753 19 +4440 5728 112770 24 +4437 13455 112770 24 +2896 9127 112770 24 +23385 1251 112770 24 +8877 14081 112837 4 +6811 13877 112837 4 +22752 3171 112838 17 +13 27488 112840 27 +19034 470 112840 27 +2443 20205 112844 3 +16651 1012 112846 1 +3653 17511 112846 1 +3054 14991 112863 42 +6208 17413 112865 1 +12049 12772 112959 15 +6695 6308 112970 2 +7638 12286 113030 38 +18118 5362 113128 2 +17967 3510 113128 2 +11032 78 113129 3 +16178 1091 113138 6 +6107 15744 113139 13 +14943 2221 113155 17 +7732 15465 113240 45 +2951 13756 113245 3 +11756 3888 113303 1 +17568 1729 113303 1 +7938 5547 113303 1 +17494 9279 113343 44 +9218 2768 113412 76 +5335 17732 113466 17 +1750 14679 113531 16 +21495 5708 113556 1 +22534 4323 113615 2 +7265 19964 113615 2 +1090 18436 113620 2 +18403 1736 113620 2 +2847 8909 113620 2 +9414 16568 113623 31 +1075 18565 113635 1 +2776 10235 113705 20 +15370 9487 113706 8 +1229 18471 113706 8 +9966 2527 113769 21 +7856 6509 113777 6 +21467 6176 113825 1 +14742 14390 113825 1 +6697 15129 113880 3 +25318 3113 113969 45 +1798 16356 113969 45 +25547 1075 114016 14 +4535 21442 114054 11 +10840 10739 114060 4 +13147 5376 114064 24 +4692 4086 114064 24 +11397 13356 114160 70 +11711 353 114165 8 +4555 2485 114165 8 +23488 3886 114234 13 +4884 6755 114306 1 +9953 15633 114335 2 +13650 6853 114335 2 +18060 5966 114335 2 +12857 13045 114336 52 +4427 7753 114336 52 +12673 16099 114403 23 +4687 20076 114407 1 +5474 17795 114466 1 +9555 13028 114476 1 +9928 94 114476 1 +5145 8340 114515 5 +6658 16964 114515 5 +2226 9481 114515 5 +15308 12594 114522 1 +25 25371 114584 39 +3663 24726 114619 2 +19544 8259 114665 66 +1454 9854 114701 1 +6819 15959 114750 22 +3738 11614 114773 19 +151 6277 114808 3 +2388 4158 114847 1 +24414 3700 114940 4 +9555 4419 114965 6 +24852 3575 114965 6 +26482 1895 114968 38 +10521 15632 114969 14 +15942 6331 115055 1 +294 27284 115117 20 +20047 5418 115132 10 +21073 1776 115216 3 +22011 2476 115216 3 +8331 14915 115271 1 +9095 14177 115283 55 +8781 4794 115284 1 +2790 26068 115293 80 +9953 15489 115294 39 +8341 5187 115318 1 +587 11418 115318 1 +6258 11571 115371 56 +15525 2956 115457 1 +9268 4637 115483 11 +20434 5268 115483 11 +7097 8848 115522 11 +4981 22657 115592 1 +9051 5301 115592 1 +14061 5301 115592 1 +9322 13485 115595 6 +12169 9132 115595 6 +9051 11443 115595 6 +3592 7381 115595 6 +2813 23839 115646 1 +10429 12897 115647 7 +9446 10641 115735 13 +3578 17317 115735 13 +6117 10641 115735 13 +50 10641 115735 13 +355 5351 115735 13 +218 1649 115735 13 +19199 783 115784 37 +4160 17861 115863 19 +18610 3720 115863 19 +4836 9788 115863 19 +5008 7254 115883 19 +25184 26 115954 2 +7045 4515 115975 6 +9665 8088 115975 6 +18771 1581 115975 6 +13690 10775 115988 12 +11969 14995 116020 1 +7926 12625 116020 1 +10460 8920 116020 1 +25495 2534 116063 2 +5370 8432 116095 13 +14427 14562 116137 1 +10750 1961 116137 1 +685 14738 116175 25 +18016 9029 116178 2 +1932 23007 116208 2 +5252 19890 116291 27 +8118 17332 116307 1 +307 27599 116327 13 +23126 1543 116332 13 +9638 13810 116334 1 +3686 14539 116404 16 +6223 13375 116408 69 +2053 14583 116408 69 +6730 20335 116409 1 +9859 4231 116410 26 +6920 19721 116410 26 +22253 6254 116410 26 +12550 89 116411 1 +2491 17247 116414 8 +11134 15585 116415 11 +13872 6649 116439 1 +1580 16108 116439 1 +9626 19416 116443 82 +13587 5042 116443 82 +9581 2158 116443 82 +2646 8497 116443 82 +350 19879 116447 28 +1824 1917 116535 1 +13418 6906 116568 40 +3081 5774 116590 5 +15 3231 116590 5 +14546 11329 116590 5 +3109 7789 116590 5 +1425 5746 116590 5 +1340 2454 116594 1 +22112 3903 116597 1 +2455 14510 116617 1 +14580 12326 116619 1 +4045 22003 116622 1 +511 5955 116622 1 +15973 6084 116644 9 +6321 12545 116683 55 +4903 12738 116718 6 +17644 7843 116718 6 +6884 7377 116718 6 +25692 1837 116736 6 +611 3302 116738 1 +25337 603 116784 6 +13091 4354 116818 1 +3269 16236 116823 43 +14931 8671 116832 3 +17017 7183 116832 3 +100 5717 116911 1 +20086 7284 116911 1 +20718 4484 116915 5 +16886 2023 116998 4 +5534 3276 117004 1 +2855 19496 117005 23 +14525 13337 117024 5 +16103 5785 117076 1 +9074 10682 117076 1 +710 25780 117110 24 +26052 2253 117111 31 +3829 356 117111 31 +21439 3996 117130 12 +8563 4959 117186 6 +8592 5655 117186 6 +1734 7067 117186 6 +4014 8161 117200 5 +2095 18427 117249 16 +7493 3143 117249 16 +3147 9531 117249 16 +11528 15230 117271 1 +6984 1680 117282 7 +21135 7312 117282 7 +8850 9885 117282 7 +7579 19875 117375 21 +12997 13547 117385 3 +11171 9424 117385 3 +1787 22422 117409 4 +18107 3957 117411 11 +18937 8538 117411 11 +14395 13228 117433 11 +6376 15222 117511 56 +16704 10939 117511 56 +9938 12758 117573 1 +6477 22077 117591 1 +5958 19369 117637 7 +17056 4391 117658 11 +13488 10023 117658 11 +24754 1913 117658 11 +733 16022 117658 11 +22982 4581 117676 1 +14670 10959 117716 7 +791 16962 117716 7 +23986 1184 117732 16 +4874 14750 117807 45 +9575 15269 117876 1 +6798 12059 117891 44 +9595 15899 117891 44 +7215 386 117891 44 +4836 9262 117891 44 +8538 17543 117950 1 +4868 10870 117961 10 +6450 1644 117961 10 +17279 2372 117976 1 +14414 14367 117976 1 +20511 6269 117976 1 +3863 3799 117976 1 +17108 4580 118037 1 +18425 629 118116 26 +8650 12229 118116 26 +22654 2141 118116 26 +1071 13588 118116 26 +11515 16238 118127 1 +5718 8961 118130 1 +15035 2235 118141 1 +26360 1872 118141 1 +1225 23851 118141 1 +9294 2235 118141 1 +6024 15041 118145 1 +1296 17347 118233 1 +5286 10611 118233 1 +20296 8919 118233 1 +14739 9321 118254 61 +8917 4968 118315 8 +20463 760 118315 8 +6160 5613 118315 8 +7483 15974 118378 2 +4214 12680 118379 9 +22471 2972 118473 10 +16423 1548 118486 1 +411 22685 118489 1 +10287 5273 118489 1 +900 22210 118532 3 +2407 25356 118541 1 +12586 2602 118541 1 +2324 1331 118614 3 +1886 19625 118615 2 +231 12496 118619 1 +408 6367 118632 24 +9088 7892 118632 24 +22993 5415 118652 2 +7559 10954 118654 18 +12078 1395 118654 18 +13568 11417 118654 18 +11256 9254 118654 18 +7110 151 118655 5 +4562 11507 118658 1 +915 16441 118673 3 +833 11990 118682 1 +3217 25960 118693 13 +12524 1279 118786 11 +20364 1862 118795 1 +14683 7003 118795 1 +17064 10658 118814 1 +7657 16815 118814 1 +8480 1449 118829 2 +4810 2298 118842 44 +9518 4230 118907 9 +1120 4773 118907 9 +6070 8592 118907 9 +2686 25099 118908 68 +14927 2859 118908 68 +7224 21809 118917 27 +19489 6149 118917 27 +11539 6149 118917 27 +5223 5659 118924 1 +5602 4572 118940 2 +3972 10406 119039 1 +3917 8506 119115 28 +22912 3668 119117 1 +15036 3127 119135 1 +19801 319 119218 1 +3096 704 119294 5 +2814 18636 119317 8 +5793 29 119364 1 +2495 20688 119366 1 +60 904 119403 8 +3728 21801 119407 13 +8641 5611 119407 13 +2896 23212 119431 44 +16326 5754 119494 8 +7646 2285 119512 1 +9617 7654 119522 2 +8211 6517 119522 2 +8225 18484 119522 2 +6444 9460 119522 2 +18608 7693 119522 2 +1577 4559 119553 3 +9667 19145 119573 38 +4065 6084 119616 1 +19700 1871 119616 1 +12831 10206 119616 1 +4939 11668 119616 1 +4898 4097 119616 1 +2313 16475 119654 2 +12614 13413 119655 1 +6300 15712 119708 9 +5652 20409 119715 39 +1564 7549 119715 39 +5082 3031 119777 1 +20947 3530 119782 1 +5908 19320 119783 5 +3593 7997 119783 5 +1756 20268 119850 5 +2028 12857 119855 5 +14946 6304 119855 5 +3182 6353 119855 5 +11965 5227 119855 5 +5573 9456 119926 13 +4012 2189 119977 19 +1315 10321 119981 15 +489 16860 119988 21 +3975 5634 119988 21 +5018 11098 119988 21 +6151 8338 119988 21 +156 16413 120017 28 +13547 2174 120027 52 +4834 4955 120027 52 +7896 11345 120042 1 +12716 11953 120053 1 +5801 9502 120128 20 +13065 9171 120128 20 +2773 11523 120128 20 +11070 8495 120128 20 +13779 1169 120131 2 +22086 6776 120180 38 +2583 26144 120181 8 +1327 14058 120215 2 +7074 4129 120215 2 +14969 11167 120215 2 +22381 3149 120215 2 +9681 3801 120263 4 +16757 1657 120264 25 +6727 2387 120264 25 +3727 23930 120265 20 +20527 5387 120304 3 +11210 16584 120314 70 +16991 852 120315 8 +92 9129 120380 10 +19598 9147 120423 7 +7501 11866 120447 11 +20863 2566 120447 11 +546 15154 120449 12 +5113 12317 120453 1 +1914 935 120453 1 +19072 2156 120453 1 +6775 18779 120456 1 +2388 11357 120477 3 +14329 6609 120478 1 +1263 8345 120489 5 +1605 14828 120489 5 +2655 5927 120536 7 +5254 8017 120557 1 +2413 20796 120563 1 +4836 22975 120585 19 +17556 2618 120595 9 +2821 13722 120615 1 +24615 1767 120615 1 +662 7055 120615 1 +27484 1524 120617 37 +6808 22413 120642 9 +9912 18684 120738 31 +9170 508 120738 31 +8240 5039 120831 34 +1005 23052 120882 1 +11349 15022 120901 16 +10684 11273 120901 16 +23856 606 120901 16 +3461 10125 120904 4 +26362 2235 120905 6 +5638 2171 120914 93 +9403 17137 120914 93 +24140 4751 120915 18 +86 12829 120951 22 +24653 3832 120964 6 +906 27828 120990 12 +13683 5916 121004 21 +3419 7613 121095 3 +3170 20346 121146 45 +722 7612 121146 45 +7784 697 121225 5 +14100 7160 121225 5 +11701 12452 121232 11 +1548 25135 121284 4 +6176 14981 121300 5 +13176 5069 121300 5 +7298 4150 121312 1 +13224 2440 121317 1 +9325 15277 121320 14 +1248 24024 121326 55 +18824 5779 121327 1 +13269 15429 121327 1 +5869 2597 121361 1 +12137 13150 121374 1 +10207 1508 121462 1 +17451 5964 121528 1 +8879 15036 121528 1 +70 3717 121529 1 +6641 19270 121580 1 +9503 12561 121639 1 +23312 1348 121639 1 +15623 6336 121696 1 +1779 24517 121761 5 +10667 3441 121761 5 +3892 24327 121762 4 +1113 15121 121808 56 +20013 5726 121809 25 +5195 14762 121842 11 +3118 11469 121873 1 +18100 4438 121873 1 +6974 311 121972 14 +3333 14481 121996 1 +5078 15699 122063 69 +5026 6143 122080 1 +6276 3103 122080 1 +2954 21815 122080 1 +7133 380 122080 1 +998 26999 122133 23 +2709 959 122133 23 +16226 959 122133 23 +8265 14178 122134 1 +1419 13780 122134 1 +16109 1285 122210 13 +2454 20460 122210 13 +3250 2005 122211 2 +5620 4337 122212 1 +23710 1597 122212 1 +15427 6331 122216 47 +5869 1353 122217 39 +1521 13991 122267 12 +21570 5788 122267 12 +24166 2764 122268 49 +3046 3914 122268 49 +4096 20751 122334 1 +1873 23613 122335 19 +9510 15123 122345 14 +385 4399 122378 9 +10997 8369 122396 1 +20917 6491 122433 1 +5482 13803 122515 1 +12250 3775 122585 1 +11160 1262 122589 1 +11928 6783 122613 1 +2462 8336 122613 1 +9087 12839 122613 1 +6399 684 122613 1 +7674 15618 122623 54 +24390 1441 122691 1 +21377 7395 122701 1 +17142 2224 122729 30 +1204 21157 122731 1 +14307 4639 122731 1 +7886 16112 122733 6 +1886 11846 122733 6 +889 3186 122802 1 +2024 20814 122810 1 +4843 7144 122810 1 +5845 22480 122825 58 +22212 3006 122825 58 +587 26264 122830 15 +9700 1694 122830 15 +1766 13401 122831 14 +9231 19830 122851 1 +3587 8128 122851 1 +4306 10896 122919 1 +17112 5327 122928 31 +7458 12079 122935 1 +13984 3246 122939 1 +3326 2975 122950 12 +12956 988 122967 1 +1579 21680 123027 3 +13912 596 123028 1 +1586 4179 123104 30 +19673 3945 123189 1 +13546 6097 123214 11 +19622 4005 123275 5 +1634 23953 123275 5 +4327 11586 123282 3 +24505 2635 123301 11 +12603 26 123301 11 +11214 17537 123371 1 +7346 10421 123371 1 +5063 22052 123378 1 +10688 5906 123378 1 +17777 5906 123378 1 +6916 5866 123406 1 +5901 10575 123406 1 +6899 3049 123413 2 +15105 10754 123413 2 +19903 238 123422 1 +12440 3116 123422 1 +3387 10487 123422 1 +12584 3028 123422 1 +19136 1897 123431 8 +21249 7740 123434 4 +14764 7768 123435 7 +21927 1717 123435 7 +17320 2049 123469 1 +13663 11569 123469 1 +24243 1045 123489 1 +7679 9206 123514 1 +846 12441 123518 14 +14457 12860 123521 1 +22 5445 123521 1 +1524 3565 123522 1 +4550 22734 123522 1 +416 25676 123589 1 +16564 3540 123590 11 +6518 3125 123591 12 +8290 20880 123598 36 +16559 7078 123598 36 +7626 1419 123598 36 +15699 3872 123598 36 +6975 22202 123684 18 +18175 4805 123687 3 +7041 8069 123702 3 +4232 11631 123702 3 +5172 5919 123706 9 +21759 4807 123715 2 +5858 1243 123715 2 +19161 8737 123715 2 +5508 17827 123720 3 +2369 21769 123764 3 +20146 2183 123765 53 +27895 1119 123858 80 +7725 12860 123862 5 +1475 15098 123862 5 +12914 8848 123862 5 +24104 5042 123951 21 +4704 4158 123951 21 +27364 500 123969 29 +3808 19908 124005 4 +16641 5631 124036 3 +2444 3328 124036 3 +1509 18999 124036 3 +17630 11318 124039 65 +9422 1497 124039 65 +10047 19044 124074 1 +3000 11685 124077 71 +9086 4433 124092 2 +2332 1825 124179 1 +975 21414 124187 1 +9669 14191 124191 1 +5533 22954 124192 3 +8261 5004 124192 3 +553 5662 124193 1 +20275 1729 124193 1 +17320 6271 124196 1 +580 20382 124248 31 +10434 8633 124249 1 +790 19325 124249 1 +2175 8093 124262 16 +23340 1497 124275 5 +4486 8060 124297 35 +2218 10496 124301 1 +1377 20868 124327 1 +1289 26888 124331 34 +7149 19675 124354 1 +6712 8283 124354 1 +3392 16588 124382 7 +17975 7796 124384 3 +1224 9119 124394 21 +12559 12562 124430 1 +18251 650 124432 1 +4577 5736 124486 2 +13163 6530 124510 1 +8044 509 124530 1 +14112 4309 124572 4 +26846 1204 124643 29 +16312 9398 124644 35 +5649 4679 124667 1 +5313 22489 124730 22 +23193 1588 124730 22 +998 24572 124731 5 +8077 17245 124732 15 +488 8844 124814 1 +12105 8902 124827 1 +4203 10782 124890 1 +21886 4734 124890 1 +5151 7637 124897 1 +10733 8022 124901 11 +7340 5230 124902 9 +20977 6859 124913 1 +2937 6516 124913 1 +12333 11692 124913 1 +5634 2870 124913 1 +281 5939 124913 1 +9434 2583 124917 18 +2755 22538 124986 1 +1772 5420 124986 1 +6560 4437 124986 1 +4605 4437 124986 1 +17926 445 124986 1 +10028 5469 125024 12 +20747 2944 125024 12 +414 224 125038 63 +13095 7096 125091 76 +4071 12199 125091 76 +2371 19256 125102 17 +2757 22537 125119 45 +9204 5139 125204 1 +5607 18954 125291 2 +11539 9037 125306 46 +14845 1773 125307 20 +7148 8653 125324 1 +4489 14381 125324 1 +15222 2365 125325 8 +3773 18457 125329 1 +1672 9501 125329 1 +82 9591 125393 27 +16582 6221 125477 7 +8444 12745 125528 15 +6250 16164 125574 1 +7678 4918 125576 38 +27383 632 125594 27 +18403 2202 125618 39 +5233 6769 125618 39 +12965 13657 125713 1 +9329 14301 125713 1 +1863 2530 125717 1 +18996 2913 125792 16 +5847 19752 125800 1 +13369 4531 125800 1 +10328 4349 125800 1 +10656 16171 125816 48 +13672 181 125847 44 +7129 5514 125870 6 +11438 10538 125931 4 +14177 4082 125950 11 +13678 10383 125970 2 +21214 1069 126059 1 +6226 2496 126066 56 +8255 9435 126144 16 +6427 11559 126144 16 +1804 808 126154 59 +11969 2769 126155 2 +760 24301 126207 1 +475 27612 126265 8 +23633 346 126265 8 +7071 21786 126268 1 +6794 8826 126289 1 +11926 17167 126298 1 +4412 18532 126317 22 +8398 216 126318 58 +2175 6604 126318 58 +12676 10537 126347 4 +1512 16882 126361 26 +3896 11076 126361 26 +1238 10234 126366 18 +19705 3846 126385 1 +10316 12756 126386 1 +24895 4189 126433 2 +11517 13628 126434 63 +16778 4761 126440 1 +11766 14285 126440 1 +17259 10014 126469 1 +5173 7157 126469 1 +18934 6617 126475 1 +23378 1261 126490 1 +13826 5100 126490 1 +15917 9150 126490 1 +17534 5170 126490 1 +3263 16717 126490 1 +10750 6154 126490 1 +4245 12525 126511 2 +6565 15433 126511 2 +9138 18652 126529 1 +7651 7546 126608 12 +2208 10806 126700 38 +2733 22114 126724 19 +7379 10470 126770 45 +383 18827 126806 15 +2614 7575 126833 18 +16390 12710 126901 7 +3312 19158 126937 18 +2634 8800 126937 18 +3875 658 126961 1 +7721 18715 127006 19 +9893 1605 127006 19 +101 9243 127006 19 +9527 17659 127017 1 +3709 2866 127017 1 +15708 4989 127025 1 +6329 8622 127050 3 +1225 17688 127136 2 +8274 10270 127136 2 +5196 14376 127142 1 +12790 3854 127142 1 +1140 14638 127183 11 +293 13926 127200 5 +1134 11547 127202 5 +15262 12713 127203 7 +7361 15245 127203 7 +2208 4775 127295 1 +4315 12979 127298 42 +1136 8847 127298 42 +15904 9794 127298 42 +8846 11505 127369 85 +17350 4211 127377 1 +9239 18189 127377 1 +294 17419 127379 2 +12884 10539 127379 2 +19464 1271 127379 2 +3608 758 127379 2 +22069 3938 127465 6 +5616 14768 127489 1 +433 13190 127489 1 +8647 1946 127489 1 +5353 11318 127497 1 +5264 11666 127503 10 +9603 16961 127507 1 +4154 2454 127533 1 +22992 5427 127544 11 +11102 6931 127561 1 +3022 23530 127581 15 +11854 7208 127590 49 +19676 6529 127683 43 +8501 12387 127684 1 +3553 15543 127684 1 +16166 4902 127694 32 +8946 15669 127699 36 +2569 4399 127700 1 +1022 7952 127757 16 +857 11228 127757 16 +10793 10902 127765 10 +26086 277 127771 25 +188 4790 127772 1 +7971 15185 127781 30 +8521 2149 127795 9 +4666 13491 127801 12 +4159 10973 127802 8 +4042 16985 127802 8 +8039 2302 127802 8 +11323 8492 127831 1 +14474 856 127831 1 +101 18161 127868 1 +11239 12651 127923 54 +12819 429 127977 18 +16432 2381 127981 1 +9695 10820 127981 1 +24774 2971 127981 1 +7544 11459 128048 20 +15549 5277 128048 20 +3301 293 128056 10 +6572 17636 128056 10 +8843 14535 128064 96 +3013 20446 128072 10 +109 8303 128080 40 +2678 17382 128145 1 +14404 5547 128145 1 +6613 782 128145 1 +6067 3103 128149 37 +20975 4570 128159 1 +3938 5172 128180 20 +4581 19777 128184 1 +17550 11329 128241 1 +477 11218 128241 1 +12968 13269 128284 23 +4033 13005 128284 23 +5122 23517 128328 19 +8920 8289 128380 27 +11290 14160 128386 1 +26565 402 128386 1 +12270 14747 128407 1 +1988 13211 128407 1 +16214 2593 128407 1 +12972 14995 128408 1 +1748 12963 128408 1 +11508 4867 128434 1 +15252 6502 128442 2 +10875 16072 128442 2 +5192 11886 128442 2 +3044 6203 128442 2 +10993 15220 128443 2 +2930 14269 128459 9 +70 10870 128508 1 +4702 17572 128510 36 +4652 10386 128510 36 +18644 5525 128542 2 +1958 19963 128545 1 +5725 7995 128545 1 +958 15080 128546 5 +231 12878 128546 5 +5927 889 128546 5 +8698 2136 128597 3 +9893 8235 128602 1 +3830 10918 128657 9 +677 18675 128658 1 +22764 193 128675 1 +25107 477 128677 7 +15651 5316 128729 1 +7664 21284 128732 11 +7435 10915 128771 27 +16986 5186 128771 27 +16787 11569 128795 5 +11040 14992 128795 5 +10269 4762 128799 30 +5124 4715 128828 27 +1708 1546 128829 5 +28139 466 128830 69 +13736 90 128830 69 +10866 3759 128878 9 +14869 6728 128878 9 +11589 1282 128878 9 +5096 17471 128878 9 +4102 437 128934 1 +7190 11994 128934 1 +5133 3863 128938 1 +24461 4514 128956 1 +14826 9317 128956 1 +2905 21432 129017 1 +1876 6526 129017 1 +19708 9080 129045 1 +1339 835 129055 31 +4701 414 129055 31 +7026 20180 129055 31 +14856 10112 129154 3 +16281 12783 129164 46 +20174 5018 129204 6 +4759 8171 129204 6 +9496 8948 129204 6 +8168 16807 129209 38 +5038 6293 129209 38 +10326 14763 129245 1 +3145 16602 129253 17 +12338 7175 129313 13 +2011 18220 129313 13 +10938 1985 129313 13 +4196 19250 129343 3 +14617 8708 129343 3 +24320 4417 129343 3 +11393 2983 129343 3 +19081 7813 129351 10 +15173 6602 129351 10 +9937 5665 129419 11 +7444 1100 129424 8 +10398 16451 129470 1 +2907 25828 129474 4 +19692 3509 129475 39 +147 7973 129475 39 +20155 7101 129480 37 +3550 18457 129564 7 +5982 2131 129566 7 +2764 7164 129566 7 +9511 15375 129584 2 +1532 1107 129586 17 +6544 15972 129586 17 +8827 7804 129586 17 +1464 11472 129595 4 +6606 9167 129641 2 +2822 10264 129641 2 +10938 9153 129668 9 +9048 11800 129668 9 +7192 9153 129700 1 +14516 1153 129772 19 +651 4544 129772 19 +22886 6186 129772 19 +14153 5826 129772 19 +3626 8021 129828 4 +17797 4176 129900 1 +13171 8481 129904 2 +24462 3909 129984 1 +19850 6233 130011 1 +4802 17745 130012 57 +1151 10213 130012 57 +1338 6562 130012 57 +705 4205 130012 57 +7353 11189 130015 29 +28413 482 130015 29 +6345 9856 130019 6 +10150 16899 130024 16 +12400 1531 130081 10 +9193 13536 130081 10 +1812 10730 130098 7 +8025 12637 130111 12 +926 9505 130119 16 +18212 9315 130119 16 +23651 362 130119 16 +4248 23653 130208 22 +10722 18400 130225 6 +13420 5613 130257 3 +14773 12137 130270 7 +17408 4269 130270 7 +2663 22493 130276 1 +24491 910 130276 1 +12443 7249 130278 1 +5326 20141 130279 33 +8859 2359 130281 1 +1125 25599 130281 1 +3851 9181 130376 89 +1487 18777 130376 89 +5656 4307 130376 89 +11109 14427 130431 1 +7127 3748 130431 1 +7494 9783 130431 1 +2635 9549 130431 1 +7927 5057 130431 1 +1095 17175 130447 1 +20985 7519 130522 8 +19712 1024 130523 42 +18398 2914 130523 42 +9264 10450 130529 2 +3236 17508 130529 2 +7192 8018 130538 1 +8132 18505 130538 1 +1066 24197 130563 33 +7722 1869 130572 47 +2989 2850 130574 6 +1052 11589 130574 6 +8619 1918 130627 28 +327 26974 130667 1 +1281 984 130667 1 +2976 1730 130710 6 +1497 21700 130721 9 +1042 6258 130721 9 +871 12576 130765 1 +7995 15382 130765 1 +3203 5842 130767 17 +20306 8317 130845 2 +11787 12762 130845 2 +23710 555 130846 53 +14685 5516 130869 40 +7673 18880 130877 72 +23619 2134 130877 72 +7924 12060 130888 1 +15685 12979 130895 2 +10607 14858 130895 2 +10436 2818 130903 28 +12042 17187 130977 2 +741 19186 130991 1 +14134 4746 131082 9 +3106 6289 131085 1 +24694 1472 131085 1 +7100 7503 131086 1 +2365 16019 131118 5 +1210 11939 131118 5 +4109 5199 131161 60 +14957 7635 131161 60 +3311 5171 131169 3 +2630 2610 131178 1 +9848 2643 131178 1 +15042 2211 131178 1 +10646 7865 131183 24 +10251 12552 131198 1 +10082 3771 131261 1 +16073 9523 131265 5 +12564 4734 131317 28 +15725 1987 131405 22 +400 11429 131430 39 +20338 2088 131441 1 +16862 1420 131441 1 +17199 11253 131526 3 +7722 3852 131529 36 +2746 10366 131534 8 +2375 17544 131534 8 +7047 12759 131585 1 +11478 2112 131587 11 +15348 1924 131587 11 +4633 5628 131606 73 +18066 7834 131624 1 +1992 20244 131625 73 +5664 13559 131670 31 +7894 14442 131702 1 +6399 12603 131712 1 +1432 15355 131712 1 +6806 13037 131720 10 +364 18912 131726 1 +5175 9394 131732 17 +9809 7933 131758 1 +7325 16710 131774 20 +3768 11248 131774 20 +799 22925 131776 1 +5495 11661 131810 1 +18593 9992 131810 1 +26005 3117 131897 2 +12352 4176 131900 3 +8831 4827 131956 1 +1111 3983 131962 79 +5611 17178 131964 1 +1784 23342 131982 19 +11800 12062 131994 25 +5295 19795 131995 8 +1287 19794 131997 2 +17789 10001 132024 4 +5231 14217 132107 2 +2219 16507 132199 14 +23891 2135 132248 1 +10960 12079 132253 3 +12308 14272 132253 3 +371 20908 132260 17 +11879 2195 132273 41 +5799 7292 132273 41 +24126 4245 132340 69 +17946 1554 132340 69 +11585 15997 132348 9 +6392 11961 132348 9 +7804 6768 132348 9 +14730 9524 132380 23 +1259 23771 132396 1 +15762 46 132396 1 +1170 3384 132399 1 +1201 24574 132399 1 +20036 2711 132400 16 +11301 4842 132458 1 +20787 3219 132513 34 +10388 6926 132513 34 +16720 8823 132513 34 +7541 14016 132569 34 +10062 9900 132580 9 +25280 897 132619 3 +1106 3892 132619 3 +14075 1548 132676 22 +4960 22335 132676 22 +8488 9438 132678 10 +10620 15694 132680 35 +2885 19641 132736 1 +15989 10665 132746 1 +8935 4270 132748 7 +21137 5683 132752 1 +9270 17250 132761 3 +11232 10208 132781 1 +6514 9267 132795 11 +11584 16457 132829 14 +9033 5125 132829 14 +7133 684 132830 11 +4859 1477 132830 11 +18181 917 132830 11 +10402 6557 132836 1 +14391 6392 132884 18 +19639 6322 132906 1 +2949 8603 132914 1 +13447 11382 132914 1 +4407 20329 132918 17 +12150 12346 132937 1 +7519 13343 132940 2 +6534 3558 132944 13 +4111 17016 133038 6 +14047 10942 133038 6 +2775 7080 133038 6 +25655 378 133050 26 +8027 9516 133050 26 +7617 16671 133050 26 +14079 6689 133052 5 +13290 6797 133052 5 +6355 20568 133132 5 +4902 7390 133132 5 +14761 3642 133142 1 +9959 8387 133156 2 +3211 16933 133156 2 +8925 5201 133241 30 +11139 2092 133242 28 +966 5604 133341 1 +8027 8351 133371 1 +5199 13870 133398 55 +2544 14088 133398 55 +8674 12952 133454 1 +9646 9918 133484 11 +14398 12573 133488 17 +18480 9116 133518 27 +9167 2691 133536 3 +19512 974 133581 1 +13336 11417 133581 1 +2315 3201 133581 1 +2894 13340 133581 1 +4012 4512 133581 1 +16769 5520 133581 1 +23134 3819 133607 31 +473 17459 133612 4 +2839 25797 133621 1 +13032 12849 133623 1 +7760 462 133628 4 +19975 6412 133628 4 +16885 5250 133628 4 +5533 21445 133681 3 +22898 1528 133689 10 +7829 19556 133689 10 +7942 16374 133690 29 +11241 16535 133736 6 +7967 368 133736 6 +6867 21605 133747 1 +15244 10843 133748 3 +4867 20109 133761 4 +5268 14773 133797 8 +19665 1809 133797 8 +24574 3318 133797 8 +11468 8434 133797 8 +571 21914 133798 26 +5684 13485 133871 2 +21317 3062 133871 2 +9450 2996 133896 3 +11839 14382 133907 1 +14239 9704 133922 4 +3224 11633 133922 4 +24464 3222 133983 77 +17738 10593 134009 1 +11454 13258 134019 33 +10013 9217 134053 1 +6779 13472 134053 1 +14763 9747 134053 1 +2917 4269 134065 13 +2920 15263 134146 1 +9486 14499 134158 5 +8023 4036 134201 1 +25750 3470 134205 1 +22341 4199 134205 1 +14962 11812 134245 4 +4041 2904 134245 4 +7802 12092 134254 62 +11389 3710 134312 10 +9607 10958 134348 1 +22465 1542 134352 41 +4606 14472 134353 3 +7936 15860 134444 13 +2324 23394 134502 13 +1637 19761 134531 5 +15017 799 134544 11 +4415 5490 134611 4 +5419 15002 134661 1 +448 9836 134697 26 +10033 16589 134697 26 +13554 1784 134697 26 +6692 1784 134697 26 +21567 1784 134697 26 +20524 1784 134697 26 +8447 5187 134708 30 +12736 12731 134708 30 +1966 17066 134760 1 +3204 21473 134779 4 +3191 1156 134809 1 +10175 16668 134809 1 +17325 2408 134810 1 +16984 6935 134833 10 +7330 17571 134840 1 +23284 4659 134840 1 +9572 15466 134842 45 +1640 23261 134846 35 +9772 4697 134846 35 +12294 2505 134846 35 +2087 14356 134927 51 +7704 5454 134959 1 +15013 115 134959 1 +8651 16453 134959 1 +1438 10558 134959 1 +5173 4292 134959 1 +3563 4292 134959 1 +6849 17404 135019 1 +20372 5453 135050 4 +2094 17039 135122 1 +2167 22660 135125 70 +2317 967 135205 36 +5606 10725 135205 36 +2380 13179 135286 51 +410 6972 135326 3 +8716 2235 135401 1 +5042 22395 135403 1 +1076 26241 135430 30 +25024 1717 135430 30 +6355 21387 135439 11 +23795 3456 135439 11 +15545 10277 135446 1 +842 1903 135474 1 +1054 13973 135474 1 +15875 6466 135474 1 +5521 2919 135475 8 +3539 8284 135536 1 +19527 6419 135635 1 +10054 18360 135635 1 +10232 9070 135638 1 +24394 3517 135639 1 +5693 15590 135639 1 +3283 8398 135639 1 +7696 6441 135639 1 +9055 6893 135651 1 +5425 20693 135681 1 +19427 5563 135684 10 +2152 19266 135685 1 +3266 8692 135685 1 +94 8692 135685 1 +17420 1259 135728 2 +11727 744 135728 2 +10831 13411 135728 2 +5427 22908 135729 4 +7687 5050 135729 4 +1347 23940 135733 21 +4078 9874 135812 1 +14908 6730 135825 31 +4643 11973 135833 4 +15792 11569 135833 4 +13603 5240 135833 4 +3389 4743 135833 4 +20856 741 135851 1 +24539 2965 135860 22 +12302 5505 135869 1 +2300 5375 135869 1 +6187 8159 135952 4 +2926 19799 135952 4 +14929 2981 136008 5 +4319 10641 136036 7 +8341 17317 136036 7 +4525 7837 136054 11 +15239 3736 136054 11 +505 22473 136061 1 +11622 4800 136061 1 +13030 164 136061 1 +7301 11992 136075 17 +16757 1239 136091 35 +4292 5833 136174 14 +13430 3764 136186 3 +10364 10258 136280 20 +12611 880 136280 20 +17215 11418 136293 1 +12007 805 136356 6 +7621 4268 136405 31 +8320 5020 136460 3 +13305 5709 136460 3 +9061 14585 136461 1 +19502 1050 136461 1 +9066 13804 136542 21 +240 9072 136542 21 +17227 11148 136543 1 +16620 5900 136565 4 +23412 5332 136566 1 +20276 3192 136572 20 +18398 5000 136601 46 +2716 17772 136694 23 +22565 875 136694 23 +3605 25168 136792 58 +8869 3607 136801 1 +352 5835 136818 37 +19397 9688 136819 1 +13200 4959 136829 5 +10332 508 136830 22 +17455 995 136832 15 +24060 2561 136832 15 +20972 5363 136832 15 +15878 2060 136861 1 +5308 23333 136861 1 +15639 3024 136861 1 +21468 2018 136861 1 +5811 9491 136877 8 +2899 10025 136885 1 +15782 9207 136947 1 +16377 7179 136948 1 +17491 6442 136982 1 +12961 4009 137016 8 +26935 526 137037 1 +3669 11625 137074 27 +15721 11760 137075 36 +5263 6980 137166 1 +13133 15903 137230 1 +351 17582 137273 8 +4456 10376 137273 8 +12087 1214 137352 40 +5644 9093 137352 40 +22573 347 137359 5 +10821 15551 137381 1 +4582 12407 137381 1 +6259 298 137384 1 +2401 24808 137457 34 +522 23703 137460 42 +222 10144 137490 8 +13961 11313 137529 12 +23852 1499 137531 1 +14615 10829 137531 1 +17377 3565 137556 5 +21085 2319 137556 5 +578 7751 137569 31 +26971 285 137570 1 +4341 11064 137571 1 +7886 19028 137572 1 +8202 20261 137640 56 +17665 5887 137648 1 +10514 7986 137648 1 +9102 15595 137663 16 +11766 3181 137663 16 +2127 22793 137676 4 +14523 3387 137676 4 +3043 46 137676 4 +17520 8812 137769 1 +507 12286 137778 1 +5459 7675 137778 1 +11697 10795 137778 1 +2182 12994 137781 14 +22017 7166 137781 14 +11646 7979 137807 6 +6240 3766 137838 1 +22764 5233 137842 14 +15795 9368 137853 3 +4485 596 137865 55 +6522 14981 137865 55 +10880 14425 137900 2 +19433 6984 137942 54 +12180 14642 137996 1 +19658 322 137996 1 +2823 15840 138032 10 +7526 10327 138090 1 +1774 20497 138108 31 +11376 10269 138131 1 +2578 2789 138141 3 +4520 14672 138237 45 +5081 17977 138246 8 +10246 9981 138246 8 +9174 10935 138267 69 +4831 11420 138276 1 +5422 8455 138301 2 +19490 7945 138301 2 +7101 13914 138374 1 +12407 3243 138390 10 +8835 17972 138399 1 +1573 9986 138399 1 +14687 1591 138486 3 +12252 7991 138558 1 +3808 23228 138622 12 +9431 4730 138622 12 +5185 623 138625 1 +16653 1798 138673 1 +5420 16281 138701 7 +10317 1518 138709 22 +7361 2262 138716 1 +1358 25696 138716 1 +20118 3791 138721 4 +14067 2617 138753 1 +17946 7865 138754 31 +12136 14946 138832 4 +11014 16800 138866 1 +7996 11349 138880 1 +6390 16302 138938 46 +18213 10564 138947 7 +13878 14997 138947 7 +10750 8706 139032 82 +3368 23657 139048 2 +8335 20209 139057 1 +7490 4925 139070 1 +101 4588 139087 4 +4019 6974 139087 4 +20705 4629 139090 1 +10293 1988 139091 1 +2161 16461 139092 1 +13360 8339 139097 13 +4081 23863 139118 1 +11200 9944 139121 1 +15862 7206 139149 38 +18303 3915 139149 38 +6791 17851 139179 20 +4630 14152 139181 3 +23170 3448 139181 3 +227 17740 139242 1 +1940 10218 139242 1 +989 10218 139242 1 +5840 478 139257 50 +5566 16964 139257 50 +4149 10994 139257 50 +5134 2982 139307 17 +1494 27442 139355 1 +12987 516 139355 1 +23907 516 139355 1 +5472 13451 139389 1 +13675 12925 139389 1 +16610 11154 139392 7 +1864 27023 139407 43 +24835 935 139407 43 +9642 6724 139431 6 +8464 19137 139526 19 +17101 5736 139537 1 +7422 1620 139562 21 +23636 3507 139566 1 +24904 715 139570 5 +18198 3222 139662 1 +14570 14495 139711 1 +6164 1382 139711 1 +16830 4580 139711 1 +214 12081 139711 1 +9861 1382 139711 1 +20215 1101 139784 36 +159 10428 139784 36 +6534 289 139785 17 +14047 12587 139883 1 +17056 7388 139913 7 +3774 10736 139936 9 +23630 282 139958 11 +1831 24089 139958 11 +5775 1722 139960 1 +17778 10913 139972 39 +10850 8995 140017 3 +7764 14969 140034 2 +8287 12989 140034 2 +14927 12410 140092 75 +21381 75 140153 34 +22349 3542 140153 34 +11004 14098 140238 43 +1557 2540 140309 1 +9449 15241 140360 13 +18631 7301 140389 57 +7541 7187 140421 8 +19535 8146 140431 2 +20090 3040 140434 4 +15090 6068 140434 4 +11163 13915 140512 44 +6379 6231 140517 6 +13497 1112 140519 1 +11523 1676 140519 1 +11886 14757 140605 16 +13149 10057 140633 1 +14160 4127 140643 13 +6032 1647 140644 13 +13525 5934 140649 5 +13292 3500 140649 5 +11070 8461 140649 5 +26337 587 140683 1 +9223 16253 140683 1 +6008 18422 140684 59 +8642 13948 140706 1 +5298 20593 140723 1 +22145 5653 140723 1 +6289 18978 140788 30 +7266 13751 140794 3 +4864 10931 140794 3 +7299 10009 140827 2 +694 17949 140827 2 +7098 6934 140833 1 +2514 20618 140858 2 +1836 16752 140908 28 +12779 10307 140908 28 +9018 19374 140932 3 +2409 5275 141004 15 +154 5392 141029 2 +14582 4583 141029 2 +507 24352 141078 27 +2697 18779 141089 1 +771 4741 141177 1 +8489 16654 141177 1 +5560 6563 141177 1 +7532 19146 141185 1 +5202 4446 141185 1 +3091 6482 141185 1 +3477 5568 141192 71 +2334 1255 141192 71 +3395 12583 141192 71 +4024 24589 141250 2 +197 3369 141250 2 +719 4929 141290 1 +9138 5687 141321 28 +15056 7532 141322 1 +23535 2896 141322 1 +19685 291 141325 16 +10523 12874 141325 16 +99 10266 141325 16 +11711 2102 141325 16 +17576 11445 141377 43 +16639 3594 141473 1 +18744 4437 141517 1 +877 17612 141523 1 +2197 9207 141543 32 +6292 22104 141545 4 +12526 5854 141545 4 +7383 18114 141561 4 +10333 9844 141561 4 +18587 7187 141561 4 +16313 6456 141580 29 +9994 13629 141581 11 +15450 12238 141612 1 +872 23390 141617 3 +22734 292 141617 3 +2031 382 141666 5 +24570 1123 141666 5 +18920 2629 141692 1 +2245 4755 141710 1 +6949 7902 141710 1 +9183 11676 141746 1 +16797 6515 141750 26 +16677 7800 141751 4 +2502 5178 141758 4 +4580 3159 141758 4 +1414 25998 141763 1 +1037 27557 141802 24 +8726 15404 141872 2 +404 20213 141899 32 +5790 13748 141902 3 +9421 7778 141902 3 +213 7822 141902 3 +19838 8025 141904 1 +12105 16419 141925 37 +2229 12731 141929 1 +13567 1007 141929 1 +2678 15227 141929 1 +5402 10168 141941 1 +2633 1863 141943 2 +14865 4264 141947 91 +5343 6129 141960 1 +13148 15975 141968 2 +4841 12099 142013 3 +9899 18038 142089 6 +6259 9920 142089 6 +1646 14985 142118 8 +5164 4560 142119 15 +2166 26702 142123 1 +11889 1256 142123 1 +3015 1113 142131 1 +11086 16896 142134 2 +18662 5653 142137 4 +26629 1873 142137 4 +3056 12882 142137 4 +617 7550 142137 4 +215 6296 142159 10 +8882 4567 142160 1 +3629 23391 142160 1 +2272 4567 142160 1 +6246 15332 142197 13 +1847 12626 142197 13 +7082 8227 142197 13 +15407 940 142219 1 +10375 1977 142238 11 +12423 4293 142238 11 +12793 3035 142263 23 +8927 1184 142263 23 +14985 1475 142272 18 +9482 10841 142275 1 +11561 4262 142276 1 +4594 12793 142298 1 +597 3902 142298 1 +925 11263 142298 1 +11009 5554 142298 1 +11652 3067 142311 1 +4288 23474 142385 8 +20707 697 142468 1 +4207 23866 142503 1 +9739 4710 142539 31 +7620 13824 142635 25 +15063 13165 142635 25 +5823 18382 142673 7 +4310 4318 142684 2 +7612 3781 142693 4 +21539 7387 142714 1 +5458 8354 142714 1 +16626 7089 142714 1 +18847 9917 142762 4 +156 7181 142765 40 +6885 18794 142776 3 +5178 19716 142779 1 +4853 8242 142779 1 +4871 4525 142781 1 +5972 1236 142781 1 +2506 9255 142796 23 +20256 2028 142806 1 +17944 5162 142807 1 +2957 5213 142807 1 +14195 1071 142894 3 +15254 10417 142927 18 +8984 11255 142952 8 +15377 6911 143034 7 +9030 15214 143069 1 +8301 16226 143095 1 +14488 12471 143152 7 +10921 5387 143183 26 +12832 15790 143191 25 +17537 2134 143283 1 +377 10665 143285 1 +832 26350 143321 3 +13471 5597 143357 1 +14888 8411 143390 1 +1047 12622 143391 33 +6406 242 143405 15 +454 19284 143406 66 +2466 520 143412 1 +14251 14605 143421 30 +143 13353 143421 30 +6500 6460 143465 1 +20655 6210 143491 1 +12643 16316 143572 5 +4195 10348 143572 5 +2582 3194 143572 5 +10007 1581 143572 5 +3687 16844 143610 46 +4619 1384 143613 2 +2703 11425 143616 4 +6705 11929 143625 20 +8213 15910 143679 1 +1255 11091 143764 4 +18410 5007 143767 2 +469 2724 143779 8 +1905 20490 143784 1 +7402 6343 143784 1 +27058 325 143784 1 +7007 18339 143882 1 +687 8353 143971 1 +16667 5898 144066 1 +9051 5369 144071 74 +7383 20722 144071 74 +14490 3081 144071 74 +9908 7236 144071 74 +2840 8328 144131 1 +958 7297 144132 12 +116 20661 144132 12 +21321 2953 144147 1 +5993 8985 144174 7 +1125 18973 144174 7 +2291 8985 144174 7 +16917 8985 144174 7 +752 25929 144199 1 +8698 11275 144208 24 +7633 12040 144216 54 +35 4345 144276 3 +16159 2163 144276 3 +8438 10027 144277 1 +3742 5315 144278 9 +9210 13949 144338 17 +7465 12719 144338 17 +3793 8871 144338 17 +11121 2827 144368 17 +10385 1636 144413 3 +12545 13776 144413 3 +3675 6972 144413 3 +19302 3190 144447 2 +8034 13979 144449 3 +5482 13979 144449 3 +17059 3433 144453 16 +6210 15220 144549 1 +6005 10465 144570 3 +20760 413 144571 40 +14345 4071 144595 2 +4345 13102 144595 2 +10746 2230 144656 1 +7710 12862 144656 1 +6139 21408 144658 1 +8652 15889 144666 1 +12297 5131 144668 1 +823 22827 144668 1 +10764 11725 144685 1 +17938 4529 144686 1 +2970 23412 144693 8 +10969 4546 144693 8 +15104 13619 144698 1 +9354 11063 144732 3 +2960 5349 144738 41 +4889 9936 144751 1 +4134 15819 144766 1 +153 4366 144823 5 +9437 1294 144823 5 +4562 520 144861 14 +11909 3864 144861 14 +2127 25552 144896 12 +12343 1769 144946 2 +6788 17763 144946 2 +3937 21205 144991 1 +15537 3178 144994 15 +11076 1858 144994 15 +10539 7438 144994 15 +19088 5532 144994 15 +4245 2506 144994 15 +423 9333 144996 1 +7926 11576 144998 90 +21831 5728 144998 90 +6373 13143 145000 32 +14948 12711 145011 1 +16412 11490 145014 36 +2365 1587 145098 15 +2681 24186 145107 28 +14614 4096 145195 2 +18600 955 145197 3 +5918 20360 145197 3 +2144 5833 145197 3 +14243 10093 145283 19 +6164 15700 145311 2 +9259 9264 145317 1 +22824 241 145415 1 +20173 5546 145480 1 +13371 11651 145521 5 +15481 4831 145521 5 +5449 15481 145527 8 +18591 2178 145543 1 +3755 1455 145543 1 +11189 11356 145559 19 +2493 2832 145567 55 +20576 6783 145575 35 +19455 2799 145575 35 +15832 1743 145576 6 +13737 1260 145577 1 +12326 2086 145636 16 +12533 2954 145661 26 +14536 10426 145661 26 +8644 4953 145683 9 +23242 1975 145730 15 +8467 6399 145752 1 +3032 1908 145772 3 +7768 1812 145791 4 +6100 12589 145803 7 +13932 2684 145813 1 +745 16918 145813 1 +16486 10370 145814 23 +4431 2176 145835 3 +13427 1108 145896 2 +3662 18764 145896 2 +13196 12233 145919 2 +2003 15725 145919 2 +18525 6644 145930 8 +2485 14309 146002 10 +2879 17025 146069 14 +9901 3744 146069 14 +1409 9766 146069 14 +22180 3703 146155 1 +3964 8194 146156 3 +5190 16451 146162 1 +18805 9942 146162 1 +9345 2544 146203 7 +22120 4762 146215 7 +331 20412 146217 1 +4677 13420 146248 28 +16973 11205 146248 28 +4943 19856 146260 3 +18890 6439 146347 1 +12140 552 146347 1 +12957 13563 146412 4 +5476 12436 146414 7 +5347 2891 146438 48 +13540 2818 146470 12 +6554 8943 146520 1 +2802 6603 146524 1 +7655 8476 146581 18 +15156 4064 146625 7 +2989 17754 146633 1 +13466 9449 146700 40 +17622 9737 146703 1 +8858 6189 146705 2 +17132 5263 146711 10 +4480 5634 146714 7 +10569 1155 146724 14 +26413 2692 146754 22 +3585 5320 146754 22 +10507 8687 146755 3 +9784 3931 146769 9 +3456 13894 146786 1 +12323 5083 146825 12 +9574 14800 146825 12 +19201 5732 146859 8 +6360 16929 146859 8 +3680 23334 146895 1 +18755 1497 146984 1 +712 2884 147015 18 +12628 10019 147096 43 +4512 2058 147139 1 +6155 532 147139 1 +6423 12298 147139 1 +7542 4853 147143 1 +3430 7108 147143 1 +5332 21898 147173 1 +17565 4704 147213 34 +1750 12874 147218 1 +666 13227 147218 1 +8283 12387 147222 17 +8481 12165 147222 17 +9690 15571 147222 17 +15418 5656 147222 17 +13394 5891 147225 1 +8439 20454 147225 1 +16276 2973 147225 1 +997 21201 147261 42 +5224 6757 147261 42 +4975 6757 147261 42 +24560 3403 147261 42 +10905 3354 147261 42 +9455 5055 147264 3 +13743 10180 147264 3 +12069 13490 147264 3 +7260 1205 147264 3 +14206 4017 147266 1 +6741 6889 147266 1 +10609 5034 147297 6 +4070 19709 147297 6 +5619 9384 147301 93 +20634 6519 147301 93 +9016 16166 147335 2 +9048 18927 147348 3 +6603 8671 147354 21 +3889 9134 147370 70 +9090 4454 147420 35 +3858 6351 147457 27 +7283 3262 147478 7 +15257 3911 147483 13 +5343 6543 147533 32 +13021 4089 147533 32 +7594 17326 147533 32 +334 4097 147550 2 +19809 2015 147550 2 +13747 2708 147550 2 +1111 19138 147550 2 +21293 4275 147551 15 +17368 11174 147590 26 +12580 5446 147598 3 +11433 232 147615 30 +7050 927 147675 5 +4489 411 147675 5 +14662 13773 147706 9 +2596 21650 147709 1 +3823 22252 147770 11 +5544 5706 147770 11 +10285 17465 147835 16 +7516 14643 147836 5 +13672 8397 147886 1 +8233 14764 147886 1 +28544 353 147891 7 +24181 731 147891 7 +16543 5521 147958 8 +7907 11846 148053 1 +8783 11660 148053 1 +206 21171 148054 1 +16797 4989 148074 1 +13789 13651 148077 10 +4275 10161 148077 10 +5726 124 148078 5 +17150 1720 148081 46 +4257 20273 148085 1 +5214 7685 148085 1 +6401 6887 148127 18 +21467 3960 148127 18 +372 8614 148131 6 +16057 4888 148134 18 +1325 16176 148134 18 +14423 9796 148149 23 +17223 11590 148161 5 +5145 660 148196 11 +6875 4866 148238 13 +3959 7575 148300 22 +15923 5102 148300 22 +4197 24127 148379 20 +12593 11001 148404 1 +8445 7821 148404 1 +20264 893 148404 1 +5032 12809 148404 1 +7554 2478 148449 1 +18954 2131 148480 5 +9851 5743 148499 17 +5881 20417 148499 17 +8210 15851 148518 1 +7849 6498 148518 1 +13765 7694 148525 5 +15021 3680 148538 1 +7544 9096 148608 25 +2117 18862 148608 25 +18796 3759 148609 1 +16300 5614 148609 1 +4676 18195 148616 53 +12111 8192 148637 27 +24231 4872 148646 1 +8210 192 148651 4 +4742 224 148652 37 +16423 7984 148653 4 +5869 5412 148692 1 +4321 8225 148692 1 +4798 6853 148700 1 +437 6508 148732 83 +2019 13565 148763 1 +2648 25239 148777 11 +2139 22072 148785 20 +18881 1224 148785 20 +11466 8354 148816 13 +1990 2169 148832 10 +19964 361 148832 10 +4038 14644 148839 2 +6475 18106 148907 12 +379 24266 148908 63 +21682 611 149000 1 +14882 12146 149008 6 +12709 10958 149008 6 +5416 3028 149008 6 +18007 7941 149015 59 +18188 3558 149015 59 +898 5090 149038 29 +16007 13196 149058 1 +4405 1013 149060 54 +425 18941 149062 1 +19258 8133 149062 1 +13398 992 149062 1 +2095 14507 149095 1 +1884 13451 149095 1 +1202 6823 149097 1 +592 7511 149116 21 +4727 11909 149197 1 +12177 16682 149198 12 +8907 4068 149199 4 +891 4170 149201 3 +4763 3999 149201 3 +14743 7065 149213 1 +1813 4423 149293 2 +10814 8231 149380 1 +1624 6993 149389 2 +11739 1331 149415 11 +5034 9036 149415 11 +841 7954 149443 1 +18881 10265 149443 1 +11611 9739 149443 1 +244 2469 149443 1 +22849 1832 149526 7 +234 16812 149547 1 +19401 7625 149572 2 +18359 6900 149597 1 +9734 8435 149597 1 +23744 2552 149650 27 +7401 1920 149655 1 +3122 19497 149671 1 +1417 25683 149682 28 +11166 2275 149682 28 +1945 5155 149728 7 +21578 977 149742 1 +3304 23538 149745 26 +23396 2799 149793 1 +3234 10944 149793 1 +6167 20402 149794 22 +4824 13012 149795 12 +25846 74 149795 12 +7364 13753 149891 1 +6015 9234 149891 1 +11443 4033 149895 9 +11347 4510 149895 9 +1816 26939 149923 13 +11130 823 149923 13 +9599 14164 149942 1 +11046 17589 149972 1 +6049 15899 149993 9 +23508 366 150012 14 +10406 2499 150012 14 +1829 21340 150012 14 +938 4431 150024 2 +6146 968 150024 2 +829 21996 150024 2 +5253 20212 150069 2 +1677 7746 150069 2 +2406 8027 150078 1 +10909 3867 150112 16 +715 10035 150204 1 +8331 6804 150212 1 +6139 19662 150231 4 +3092 23009 150260 17 +21434 6208 150266 10 +871 17450 150332 94 +10845 2453 150332 94 +10218 18146 150395 29 +13820 9096 150395 29 +9142 9812 150395 29 +12469 10880 150478 4 +15880 11328 150490 5 +17406 7045 150490 5 +19051 7677 150492 18 +9946 6862 150495 23 +16177 10214 150495 23 +15000 1312 150496 1 +2518 16808 150496 1 +25543 3624 150502 25 +5236 8942 150519 1 +14252 7277 150524 1 +8845 15529 150530 33 +3108 12028 150579 46 +1153 3799 150659 20 +7627 4659 150679 5 +6389 17377 150679 5 +11206 10581 150679 5 +6797 12716 150681 12 +18064 2829 150682 1 +12031 3079 150689 1 +8916 13870 150689 1 +6546 19493 150724 47 +18056 4046 150770 38 +25548 1234 150770 38 +12148 2093 150770 38 +6046 10768 150789 17 +9756 4767 150823 2 +6147 2450 150835 1 +7659 15373 150895 5 +4874 3646 150895 5 +504 12526 150904 11 +6986 9003 150904 11 +6292 19485 150910 9 +3089 25904 150928 1 +19144 9748 150929 1 +7115 18210 150929 1 +19297 6979 150933 5 +4237 20979 150933 5 +5072 5919 150933 5 +7856 14795 150989 13 +7848 7173 150996 1 +6014 1478 151020 1 +20219 1184 151036 1 +13602 9506 151036 1 +883 6150 151036 1 +10905 5119 151040 1 +9679 16755 151040 1 +4741 21616 151077 12 +12461 466 151158 2 +8205 8332 151171 11 +5301 12084 151206 5 +3061 12413 151211 73 +12808 10769 151214 12 +8837 15478 151298 4 +11093 6172 151333 1 +15725 4450 151333 1 +1879 451 151417 1 +10705 15986 151431 1 +2604 21028 151434 21 +5555 6930 151434 21 +5396 20524 151462 2 +7993 20143 151464 1 +13937 7363 151510 41 +12099 14462 151513 25 +8193 7869 151513 25 +22664 1472 151599 6 +10668 12133 151599 6 +12099 14405 151608 2 +16731 11268 151608 2 +12375 12058 151608 2 +3084 2587 151674 1 +6350 22046 151683 9 +10733 5979 151687 5 +16901 7699 151687 5 +7806 19833 151710 1 +10569 12606 151719 3 +6478 9898 151719 3 +3917 19234 151720 1 +7718 11847 151722 1 +324 3360 151722 1 +21896 5399 151805 1 +12830 14133 151841 1 +15996 1542 151847 23 +4914 15211 151847 23 +9175 15608 151849 1 +828 7453 151849 1 +1879 18245 151852 16 +8341 20803 151905 1 +14676 7155 151905 1 +16965 2348 151910 34 +6375 13943 152003 17 +8764 14015 152003 17 +15825 11554 152003 17 +1191 6954 152003 17 +1851 4015 152066 9 +4852 18687 152069 12 +6792 8792 152069 12 +25114 1251 152070 1 +8006 7598 152070 1 +22000 1731 152070 1 +11636 1413 152079 1 +2310 23648 152121 34 +697 4310 152121 34 +808 5082 152135 16 +11062 14553 152138 1 +20824 4290 152170 45 +5597 19680 152171 1 +3249 3688 152251 18 +1755 7048 152256 1 +23489 1137 152301 48 +11498 12411 152396 1 +4113 17604 152397 24 +5298 19385 152408 3 +13241 3248 152451 61 +7621 5162 152451 61 +21219 1166 152451 61 +10116 18279 152457 1 +4696 9679 152457 1 +2100 10115 152466 6 +18768 9633 152529 1 +4843 252 152535 40 +4771 24107 152582 1 +5615 17977 152607 30 +22348 4619 152613 16 +3689 6788 152618 27 +11749 128 152666 39 +4760 18427 152666 39 +9393 14299 152669 17 +5993 23029 152670 1 +10300 7768 152701 1 +12653 3495 152747 1 +4847 18633 152747 1 +2381 9325 152747 1 +13256 7058 152780 4 +3585 7086 152780 4 +11903 16143 152791 1 +12505 247 152791 1 +7403 12730 152795 47 +16328 442 152831 50 +941 22620 152831 50 +11620 9851 152840 15 +10023 16454 152867 6 +18070 955 152896 50 +15896 537 152896 50 +15380 5721 152920 14 +23184 630 152920 14 +14366 7501 152922 2 +22021 5631 152925 3 +7310 2817 152925 3 +21633 593 152926 25 +9369 173 152926 25 +17106 4462 152927 3 +6823 2259 152957 92 +17011 6460 152995 2 +10445 836 153000 10 +3969 1381 153071 1 +6555 2417 153119 14 +8656 14775 153202 5 +9868 10286 153203 3 +24165 4933 153222 57 +7794 13215 153274 1 +15779 239 153301 1 +14946 9216 153302 1 +14029 4669 153314 19 +22394 1605 153314 19 +21905 6841 153375 14 +10180 18432 153405 38 +17053 5521 153474 1 +22389 1167 153532 18 +3018 15570 153543 18 +14747 4063 153545 1 +4999 24097 153564 8 +9821 7034 153651 2 +16757 1608 153691 1 +2491 25227 153723 31 +17853 2731 153723 31 +13394 2731 153723 31 +21192 597 153734 1 +9509 7686 153801 38 +1326 18520 153883 21 +12424 6231 153883 21 +11161 12181 153884 1 +17448 3148 153904 14 +2566 10685 153905 1 +757 17855 153906 39 +18622 6343 153950 50 +8385 4115 153952 5 +13238 5433 153952 5 +1485 20348 153953 1 +2705 7610 153953 1 +21587 2037 153954 1 +6604 3442 153959 1 +26592 282 153979 15 +144 21588 154077 1 +19363 99 154135 12 +2127 3664 154146 1 +9637 3727 154146 1 +15542 12811 154154 55 +5255 1668 154154 55 +7830 15743 154176 1 +3801 3430 154249 4 +204 20179 154274 1 +10536 7779 154274 1 +8565 6260 154343 18 +7067 12774 154439 2 +10364 11427 154449 1 +21820 7016 154518 3 +17402 2270 154518 3 +26868 543 154518 3 +3499 1796 154524 62 +12629 16582 154530 5 +24428 2525 154532 2 +3681 5122 154532 2 +8456 474 154583 5 +22413 1218 154630 45 +6730 958 154646 1 +9105 712 154646 1 +5175 5934 154722 12 +11816 16353 154729 10 +41 10717 154729 10 +5881 888 154729 10 +8123 888 154729 10 +1908 888 154729 10 +24624 888 154729 10 +21949 2581 154741 2 +16982 8185 154754 13 +9426 7273 154783 37 +22161 4333 154783 37 +8877 16165 154812 1 +11737 10633 154871 4 +3464 20864 154962 2 +1511 8872 154979 1 +6675 19983 154986 5 +1315 7975 154986 5 +7087 12105 155064 20 +1175 13856 155144 19 +6120 21298 155180 1 +5220 4617 155180 1 +9487 13751 155215 5 +5435 7789 155281 32 +3980 19169 155317 4 +9279 6018 155329 44 +21962 4100 155387 70 +17320 7119 155393 1 +13923 14034 155492 1 +318 25222 155533 30 +730 2736 155533 30 +10417 14528 155586 16 +4213 24889 155587 1 +19198 1083 155587 1 +1294 20983 155595 1 +15772 3212 155630 2 +8951 8524 155635 28 +22456 6533 155699 1 +14639 14207 155782 8 +5199 16349 155835 1 +1390 4855 155835 1 +14680 6078 155841 1 +5903 20382 155841 1 +17640 3447 155854 8 +21968 620 155856 17 +15113 8546 155856 17 +13563 1769 155868 1 +5802 13368 155890 9 +14584 13078 155891 51 +2829 7668 155939 1 +3493 18106 155960 1 +4733 21701 155968 6 +24728 3257 156008 33 +11983 6541 156038 3 +6257 10233 156057 1 +3588 7048 156063 1 +8389 18812 156065 12 +17626 7823 156066 9 +44 25683 156068 5 +11038 3475 156072 65 +2438 19098 156138 21 +10040 8861 156140 38 +3657 15509 156158 18 +8215 18154 156169 39 +11512 1497 156198 39 +10827 16550 156206 1 +10354 15494 156215 60 +5671 22584 156221 18 +6402 21409 156272 1 +829 20232 156299 47 +18495 337 156392 15 +18475 872 156392 15 +5484 11689 156397 1 +3165 22794 156401 3 +3036 24058 156409 28 +1871 2462 156409 28 +7712 9989 156416 53 +14929 736 156416 53 +9544 5501 156416 53 +6258 11797 156490 2 +3683 16161 156490 2 +9222 75 156501 11 +196 7513 156504 18 +7251 11902 156505 1 +7980 1887 156505 1 +2349 26867 156533 11 +6213 1091 156533 11 +11589 1091 156533 11 +4638 10081 156535 1 +27392 6 156535 1 +10418 4955 156627 56 +13877 8105 156687 4 +1897 3224 156745 1 +2255 23510 156745 1 +22825 2261 156751 41 +16042 3095 156752 2 +12178 5160 156752 2 +3782 20999 156752 2 +18353 1347 156752 2 +1178 2885 156821 1 +8422 4989 156823 2 +6386 19021 156824 1 +1280 8937 156824 1 +6228 20517 156883 1 +3073 1284 156885 1 +3851 7538 156892 2 +214 27560 156988 1 +3833 398 156988 1 +1163 7137 157010 2 +5678 20224 157020 1 +12593 6571 157026 68 +18753 5067 157087 1 +7226 12649 157120 52 +10500 13288 157216 1 +14782 11876 157296 41 +5082 20393 157352 39 +15089 12339 157353 4 +10610 10397 157411 1 +10485 12816 157411 1 +3255 6875 157411 1 +8730 14517 157413 1 +519 7133 157475 1 +14522 10676 157478 1 +7622 7653 157478 1 +155 24533 157479 1 +2950 15845 157499 5 +21647 1468 157518 60 +10960 15387 157589 24 +55 373 157596 3 +2073 24071 157601 26 +9669 19509 157684 3 +20239 738 157769 11 +13142 15422 157769 11 +17787 4368 157780 5 +2477 23590 157780 5 +3765 938 157780 5 +6322 13986 157804 12 +13805 8075 157804 12 +2056 23168 157835 4 +17367 4790 157835 4 +15436 8519 157904 10 +8922 15489 157988 9 +549 17583 157992 1 +4908 10375 157992 1 +9137 10375 157992 1 +1775 648 157992 1 +3057 17758 158010 1 +22137 362 158010 1 +20622 3313 158010 1 +14212 4980 158105 3 +24224 3918 158138 25 +6316 6202 158145 3 +1062 6779 158207 51 +6416 5239 158207 51 +19007 5031 158291 3 +3836 8110 158291 3 +2486 3553 158308 57 +19714 9431 158308 57 +3848 13573 158308 57 +18125 96 158323 21 +9490 19105 158339 1 +10405 18403 158424 41 +1517 25017 158437 17 +23750 664 158462 11 +7909 14364 158476 20 +10789 4327 158478 58 +17968 10294 158490 4 +10208 7236 158490 4 +12763 123 158490 4 +510 26698 158571 7 +9031 1260 158571 7 +651 20685 158577 63 +8245 12388 158580 14 +20828 1197 158622 15 +12083 8590 158622 15 +12468 3049 158623 1 +20324 2713 158701 2 +19165 581 158701 2 +19845 3942 158704 3 +8486 11789 158731 1 +12295 11193 158767 3 +22530 1560 158767 3 +6723 11421 158834 1 +2025 25700 158869 4 +1320 9340 158870 39 +8471 3511 158896 6 +20669 6648 158899 39 +114 10126 158921 1 +12436 28 158921 1 +6192 10985 158945 3 +4842 2696 158996 8 +7826 1496 159005 20 +3736 5210 159005 20 +12257 7070 159010 1 +1975 845 159010 1 +21168 1155 159043 38 +10313 16379 159044 1 +6939 6389 159044 1 +13211 10137 159055 2 +8796 1381 159059 1 +1259 17937 159061 24 +11811 15823 159079 5 +9905 4872 159095 28 +14902 7641 159100 1 +24513 3379 159118 9 +3143 6958 159141 5 +3543 10236 159158 22 +1798 5103 159158 22 +15568 11011 159228 29 +14641 7959 159228 29 +8716 10399 159238 21 +6971 4068 159238 21 +241 10143 159274 8 +2810 14513 159335 10 +7833 13520 159418 15 +470 14438 159418 15 +11310 7075 159418 15 +7011 7075 159418 15 +2561 7075 159418 15 +4768 21574 159419 1 +23031 3342 159509 5 +14298 8876 159596 1 +8110 15730 159607 2 +11560 13893 159683 15 +1872 3896 159714 28 +5698 2123 159714 28 +15424 9781 159714 28 +18508 478 159715 20 +2503 1298 159788 1 +18544 7051 159869 2 +17477 3741 159875 2 +686 9654 159882 13 +2199 3398 159883 1 +6979 5645 159902 1 +14427 9 159956 6 +18204 4841 159956 6 +12500 6932 159956 6 +2172 23257 159957 1 +23144 3176 159957 1 +1680 3810 159957 1 +7599 19445 159959 2 +741 23879 160004 1 +2359 1041 160004 1 +3162 14256 160006 42 +4862 767 160093 1 +17002 8221 160150 5 +3394 6834 160240 3 +3447 11046 160293 9 +16903 3262 160293 9 +23573 3950 160293 9 +2853 982 160361 9 +1345 19046 160407 1 +13862 15134 160408 1 +12040 7580 160486 2 +4080 21736 160525 33 +8338 11029 160548 18 +621 5668 160612 8 +3046 11940 160651 1 +177 4870 160651 1 +19627 4838 160653 8 +6831 6456 160658 2 +16604 5897 160659 2 +3666 3296 160685 1 +961 12113 160690 6 +12551 137 160741 57 +5936 19299 160758 1 +8184 8659 160758 1 +10726 8223 160758 1 +16691 11786 160763 2 +19795 4730 160764 27 +770 27375 160798 14 +18197 894 160842 31 +5517 18970 160849 4 +17705 8988 160849 4 +459 16778 160888 1 +18345 1394 160928 10 +10496 16523 160957 4 +4664 7807 160969 13 +19099 10013 160976 37 +9842 4872 160979 1 +5918 10674 160979 1 +8358 15959 160980 37 +7703 11999 160980 37 +6532 11344 160980 37 +4461 6011 160980 37 +23086 4503 160981 2 +595 21039 160981 2 +5485 20139 160984 39 +185 22156 160997 17 +2702 16911 160998 51 +3685 18269 161003 1 +14053 7247 161078 28 +2118 6430 161078 28 +20128 6277 161078 28 +10612 13759 161121 1 +19588 822 161121 1 +338 21045 161144 30 +21920 1546 161208 1 +105 10839 161285 35 +24156 1274 161285 35 +12822 7934 161352 1 +355 21790 161354 8 +7233 16341 161453 4 +11699 12075 161455 91 +3665 12486 161455 91 +6371 5635 161455 91 +11990 4237 161455 91 +28868 42 161455 91 +12168 8158 161477 1 +1000 15070 161478 1 +259 16769 161500 9 +15055 9283 161548 1 +10240 8142 161573 34 +20801 8077 161574 9 +17018 5466 161574 9 +1254 5523 161574 9 +7752 10575 161574 9 +19128 8081 161575 62 +20233 4005 161583 1 +15687 13532 161649 1 +1963 16406 161678 1 +3829 5971 161679 1 +12197 9940 161714 1 +1019 10861 161793 16 +14197 11536 161845 13 +6559 14753 161845 13 +8024 8784 161845 13 +2207 22809 161855 74 +10805 1674 161855 74 +21676 4380 161856 24 +11282 13751 161909 1 +6522 11339 161953 2 +2158 24136 162026 22 +4365 3822 162026 22 +4825 18166 162032 1 +16057 5787 162032 1 +5784 2333 162046 1 +13534 15148 162047 5 +13614 9888 162048 2 +1592 3429 162048 2 +2372 26399 162049 1 +18809 1453 162049 1 +196 4480 162110 1 +9981 17099 162110 1 +7865 9221 162205 7 +14064 13745 162213 1 +933 1330 162223 1 +8659 8297 162287 1 +3922 18187 162336 32 +10977 3811 162336 32 +10424 12397 162355 1 +6035 12146 162360 60 +16214 303 162390 34 +3174 16768 162391 17 +21729 1163 162392 20 +3491 15330 162392 20 +2273 11465 162392 20 +58 16574 162419 1 +15540 9906 162482 2 +13410 1542 162514 1 +1917 861 162518 21 +1082 25098 162518 21 +25007 3886 162551 5 +10366 9814 162592 21 +22498 1479 162594 6 +14505 9475 162609 1 +18542 3506 162665 1 +8842 12059 162729 1 +3837 16988 162821 28 +732 4756 162842 4 +4440 24524 162846 1 +16560 11180 162871 42 +1557 22856 162888 54 +26261 1512 162891 1 +3176 18817 162915 13 +22 13499 162956 1 +8086 14459 162956 1 +4992 207 163003 9 +19325 3885 163061 1 +11188 17654 163100 1 +14947 9919 163103 9 +1361 18039 163103 9 +4900 4453 163103 9 +16603 3012 163104 6 +6046 10374 163203 1 +12494 4579 163277 6 +9090 3682 163347 44 +3939 5309 163350 45 +10017 14652 163424 1 +742 7749 163433 1 +16041 10127 163470 1 +4284 9029 163477 1 +451 13413 163477 1 +20020 5087 163477 1 +1827 9458 163477 1 +587 12336 163478 1 +3291 7507 163497 1 +7160 11207 163498 17 +2107 18267 163499 8 +15477 3583 163517 39 +8706 1257 163525 3 +11300 5970 163529 1 +11380 7435 163531 3 +303 3388 163531 3 +1203 17135 163531 3 +12909 3980 163531 3 +688 1921 163531 3 +12143 10991 163550 2 +127 9553 163550 2 +6793 5408 163550 2 +11126 16280 163557 14 +22787 6080 163591 51 +8814 5317 163591 51 +1048 9259 163591 51 +1343 27236 163600 31 +14169 722 163600 31 +15620 10434 163605 2 +4431 17091 163605 2 +3627 686 163642 1 +1168 2879 163661 1 +8321 8419 163661 1 +18954 4954 163661 1 +16776 2006 163664 85 +16140 2518 163686 13 +9654 18963 163686 13 +7681 5002 163708 10 +11011 7660 163759 11 +8172 11045 163842 2 +10858 12506 163842 2 +19168 2421 163842 2 +5666 14692 163893 35 +1717 13266 163893 35 +17320 8124 163893 35 +1270 1441 163941 13 +20206 4862 163952 1 +15963 10912 163952 1 +962 23498 163957 9 +26098 430 163957 9 +5021 4030 163957 9 +3215 90 163957 9 +19221 369 163959 1 +8886 1356 163959 1 +17546 2405 163960 3 +21980 5465 163960 3 +24165 2479 163960 3 +634 414 164041 5 +23792 4132 164064 13 +12602 4541 164102 1 +8331 10353 164102 1 +16262 12885 164110 13 +2636 14316 164198 1 +9439 2804 164238 10 +6745 10380 164289 3 +1828 3489 164386 20 +12514 8143 164416 1 +9455 8339 164418 1 +21234 587 164418 1 +4298 8941 164453 3 +6611 7735 164457 1 +15993 586 164544 1 +7780 15150 164560 1 +11721 9443 164576 1 +11394 15498 164576 1 +5449 23155 164657 13 +7881 4803 164657 13 +2397 4803 164657 13 +5219 6960 164669 3 +21749 1846 164706 1 +5647 13394 164708 1 +9613 12383 164750 1 +3280 21702 164767 1 +10014 13142 164834 1 +5980 23019 164878 31 +22749 5392 164962 5 +6927 19585 164963 1 +3547 8373 164963 1 +11711 21 164963 1 +13647 9273 164987 23 +3931 976 165052 35 +3043 6062 165148 2 +7724 4938 165168 3 +265 24074 165182 5 +11551 4758 165201 2 +6601 17750 165233 4 +8594 6014 165245 1 +3468 13380 165245 1 +21879 6087 165245 1 +9101 3080 165247 30 +18853 6206 165249 1 +1345 9332 165250 84 +10848 9528 165281 1 +11903 11563 165283 3 +14710 10813 165283 3 +6849 8498 165284 1 +5821 22472 165348 15 +3419 5946 165413 95 +7167 18723 165429 1 +17916 9235 165429 1 +18436 9428 165461 1 +159 12531 165461 1 +10672 5485 165461 1 +8501 18151 165481 1 +18381 2730 165481 1 +21936 5498 165544 66 +18313 2592 165545 49 +6746 9244 165555 23 +2688 207 165557 26 +888 19042 165599 50 +11615 1747 165637 1 +2202 13703 165706 25 +5272 10670 165713 1 +2033 6138 165713 1 +5061 24097 165714 2 +5120 3861 165714 2 +2458 21139 165779 1 +543 15014 165847 5 +1425 4637 165884 5 +1526 16347 165885 2 +20576 4442 165887 11 +10999 13326 165895 1 +16156 791 165930 54 +12170 885 165992 20 +18810 1065 165992 20 +17084 854 166005 6 +4614 17653 166005 6 +26809 948 166005 6 +3922 21440 166102 22 +22626 717 166102 22 +7370 6518 166102 22 +6755 10667 166156 7 +6505 5231 166158 4 +1296 25689 166178 5 +17657 9124 166190 1 +389 3945 166190 1 +869 26406 166201 1 +5810 17352 166247 9 +8902 10606 166247 9 +8199 6611 166259 14 +10070 17168 166261 9 +6259 6856 166319 4 +16145 3474 166357 43 +12250 3000 166453 1 +4258 3176 166453 1 +16273 10812 166453 1 +2401 16786 166455 25 +8285 9410 166467 1 +23119 4450 166472 1 +8580 19557 166473 1 +25946 1102 166506 5 +6110 19710 166560 1 +9565 6286 166560 1 +9572 7315 166575 6 +5454 7873 166587 1 +2527 17945 166593 32 +356 26406 166642 2 +1989 1552 166642 2 +7919 319 166664 32 +14870 3068 166746 1 +65 15874 166746 1 +8397 16256 166756 1 +749 16970 166827 42 +836 22826 166878 16 +444 3461 166878 16 +23224 3674 166880 25 +17878 1848 166914 6 +20815 2554 166914 6 +11716 16268 166915 57 +20208 2131 166921 4 +2936 21535 166921 4 +4169 2635 166921 4 +474 15672 166992 1 +7792 9343 166992 1 +10423 4403 166992 1 +15786 1387 166998 18 +1282 26873 167080 3 +3468 1085 167080 3 +12886 11577 167114 1 +12306 10935 167114 1 +8774 8752 167163 29 +16867 8334 167260 4 +15271 10193 167291 1 +20 4417 167291 1 +451 13348 167291 1 +1051 14004 167336 42 +11760 3165 167428 20 +25665 3189 167429 1 +6934 22192 167429 1 +15308 2714 167429 1 +5763 18158 167469 5 +1411 8692 167481 1 +21813 1107 167481 1 +20048 587 167504 1 +11825 6392 167522 3 +5801 9753 167523 34 +15393 2723 167587 2 +5045 14313 167588 1 +14770 392 167588 1 +21273 1577 167614 1 +1081 4757 167614 1 +7334 4014 167615 9 +6104 9414 167618 1 +4759 17479 167645 50 +7967 21083 167669 2 +663 7275 167672 16 +2166 21955 167757 78 +12096 6003 167757 78 +6549 6003 167757 78 +26763 72 167800 60 +8495 4371 167801 30 +7015 4975 167853 1 +25090 1920 167947 1 +23235 2875 167997 1 +581 10649 168096 5 +1419 9764 168144 1 +4390 22014 168171 1 +6998 4583 168172 4 +20101 758 168172 4 +3742 6199 168172 4 +5624 16420 168195 1 +8054 12168 168205 1 +14532 11617 168205 1 +4426 9411 168205 1 +1849 6235 168205 1 +3779 3464 168206 1 +14715 556 168218 12 +4119 13906 168218 12 +3218 2268 168218 12 +12297 11517 168218 12 +8372 1346 168218 12 +1607 26122 168238 7 +6333 18867 168301 39 +6235 2305 168342 1 +10240 18879 168350 19 +11282 4697 168400 23 +18142 7859 168400 23 +2460 8754 168438 84 +10319 5332 168439 1 +14097 8691 168508 13 +14350 5931 168543 2 +6172 22863 168604 4 +6554 3999 168621 3 +16234 12658 168676 1 +10175 6634 168702 1 +9939 1186 168702 1 +7870 13881 168702 1 +2625 23819 168780 4 +13136 4139 168780 4 +22413 4139 168780 4 +8900 18055 168848 6 +21395 5921 168855 11 +5592 5583 168855 11 +6842 4981 168858 2 +16593 11447 168862 22 +15675 575 168904 2 +6649 21930 168904 2 +11526 10921 168918 2 +1643 8982 168918 2 +1680 8055 168918 2 +909 1783 168918 2 +8978 17913 168945 1 +13294 4811 168948 4 +10305 10813 169001 1 +1215 16617 169079 1 +1468 11341 169079 1 +11853 494 169102 1 +12977 983 169128 5 +24052 480 169140 30 +5251 22314 169147 1 +1295 5644 169147 1 +1312 27865 169202 10 +20187 2590 169212 9 +5714 23312 169254 1 +14841 2170 169254 1 +9015 6774 169261 1 +2254 23219 169355 3 +5432 15313 169357 1 +7445 19956 169444 35 +3298 8002 169444 35 +9192 19203 169542 1 +6629 22562 169629 2 +4471 9215 169637 55 +1997 12256 169638 4 +24872 4084 169651 3 +12942 15537 169651 3 +2171 11405 169655 2 +3460 18385 169733 2 +20725 5227 169735 2 +7244 9907 169739 1 +13942 1628 169745 2 +6233 3530 169745 2 +12362 3512 169748 1 +5765 16822 169800 1 +2676 11136 169800 1 +1357 6195 169800 1 +13473 6728 169800 1 +14016 953 169817 3 +22503 2187 169909 1 +9347 7536 169910 11 +10938 446 169921 1 +7899 12417 169922 1 +13936 10816 169971 2 +9809 12999 170024 4 +8580 14959 170024 4 +24007 1477 170024 4 +26460 133 170103 1 +7247 2950 170106 1 +11659 14146 170106 1 +5124 1595 170106 1 +10839 7173 170106 1 +1224 2014 170106 1 +21803 2003 170117 4 +10493 7024 170117 4 +11089 2255 170117 4 +9135 4172 170117 4 +15607 2026 170118 20 +14636 5838 170187 32 +11151 17665 170194 26 +25128 2416 170197 21 +7016 22181 170200 1 +16209 1206 170218 2 +4399 15542 170222 32 +2274 12416 170222 32 +20156 996 170222 32 +11082 1456 170222 32 +1238 11082 170269 2 +23915 1651 170286 1 +9307 19047 170297 2 +12569 331 170390 1 +19771 1159 170422 1 +16635 5487 170437 28 +239 12079 170437 28 +23687 3861 170437 28 +12901 14467 170452 13 +18749 393 170453 73 +9038 15467 170453 73 +6604 3593 170488 40 +2948 4731 170497 1 +6928 4208 170525 16 +18761 1921 170528 1 +13666 6152 170608 14 +20586 8558 170612 29 +8503 13872 170617 4 +10682 4439 170618 11 +7012 5129 170618 11 +6348 3596 170618 11 +8820 16776 170618 11 +18088 8179 170634 1 +1470 16529 170641 46 +5572 18961 170698 2 +2449 2102 170699 1 +8895 13053 170720 8 +3317 7667 170723 6 +16981 11129 170745 87 +9167 171 170844 28 +1958 14729 170889 14 +2165 13229 170889 14 +17358 5017 170952 5 +8520 7751 170971 1 +3440 15460 170971 1 +14362 2938 171041 18 +23543 2105 171041 18 +21747 6563 171059 33 +7472 8228 171085 26 +6725 14020 171183 15 +5193 13938 171183 15 +20637 5875 171207 3 +7576 6930 171234 6 +15422 12437 171289 24 +3835 9033 171298 4 +2642 18925 171298 4 +23070 577 171311 13 +3205 18355 171327 13 +10263 9603 171327 13 +9540 7144 171328 20 +6901 18048 171354 9 +355 14093 171356 14 +1521 10563 171356 14 +11015 6389 171381 39 +9385 10197 171381 39 +9871 1713 171395 81 +157 22666 171440 6 +17658 10387 171490 49 +16368 883 171491 3 +16289 10899 171516 26 +18599 8439 171550 1 +611 19519 171550 1 +19861 1531 171550 1 +13657 15010 171553 1 +28378 570 171558 27 +2190 3092 171575 2 +908 21920 171575 2 +20254 332 171622 17 +21225 6941 171631 1 +15261 10216 171632 1 +4270 17742 171632 1 +6955 753 171644 1 +1575 22283 171649 4 +13010 5675 171649 4 +5308 5667 171649 4 +13656 3141 171649 4 +18746 5675 171649 4 +2953 4235 171681 1 +8666 17734 171684 27 +8789 10224 171684 27 +14070 43 171690 6 +5848 7151 171690 6 +1978 12527 171735 1 +855 21937 171806 1 +5853 16382 171859 4 +392 258 171868 6 +4801 22073 171868 6 +15328 10068 171893 4 +3012 13945 171926 1 +302 10511 171937 1 +443 17405 172013 7 +11713 17197 172015 29 +4556 19047 172022 32 +6416 8911 172022 32 +9397 15572 172060 16 +22534 1004 172078 4 +4975 10380 172109 24 +7733 11238 172116 1 +20970 417 172116 1 +19699 6099 172116 1 +21593 2780 172155 1 +16651 9098 172167 6 +131 10820 172167 6 +14908 5459 172167 6 +18365 5612 172182 1 +12263 15706 172182 1 +7378 2334 172186 1 +4639 20963 172186 1 +2166 11191 172199 40 +19958 1224 172285 17 +5067 23362 172312 28 +8628 5251 172315 3 +13247 1846 172371 60 +5198 3502 172398 9 +2715 17049 172398 9 +13878 2469 172398 9 +13246 2226 172411 1 +10801 6560 172440 3 +16621 8254 172446 25 +87 4796 172446 25 +428 12086 172452 1 +635 765 172452 1 +12260 16662 172459 1 +4960 6231 172459 1 +13090 4781 172459 1 +18230 8491 172543 1 +12882 9393 172543 1 +2367 5226 172581 27 +1002 18729 172584 4 +10898 10415 172650 1 +2643 17543 172650 1 +5179 23675 172655 32 +7105 1735 172694 77 +1326 26223 172694 77 +12646 15976 172696 1 +2266 11982 172696 1 +328 6717 172697 16 +1853 14740 172778 39 +19736 7771 172817 1 +16446 1188 172817 1 +6484 5825 172817 1 +5062 10099 172817 1 +2749 14367 172847 1 +1383 955 172929 4 +7276 4436 172932 1 +28324 366 172948 14 +3374 15636 172948 14 +19995 3192 172948 14 +3627 8764 172948 14 +2481 5753 172948 14 +9090 7871 172948 14 +10900 1493 172977 27 +10822 3856 172987 2 +966 290 172987 2 +13168 2287 173016 8 +3476 12200 173074 64 +5544 17174 173124 1 +14876 724 173129 24 +17332 4568 173129 24 +18902 1974 173147 2 +17144 11729 173148 1 +17149 4472 173150 4 +1679 1666 173158 30 +7439 21148 173231 31 +10744 6810 173231 31 +18654 483 173231 31 +505 2114 173258 21 +19595 1698 173259 12 +6926 14928 173268 7 +5526 16701 173273 12 +1339 6137 173281 2 +3815 1586 173297 50 +4714 23191 173297 50 +12564 3868 173297 50 +16295 3868 173297 50 +2078 2734 173370 1 +6314 4171 173370 1 +5269 9075 173441 3 +6025 22022 173470 1 +11615 7777 173471 7 +5251 19886 173475 1 +1857 19259 173557 1 +10 20174 173567 1 +1916 16049 173617 67 +23440 788 173617 67 +20266 1918 173619 49 +4902 17705 173630 23 +522 23038 173632 8 +6373 4631 173632 8 +8679 1789 173655 15 +14207 6045 173655 15 +26297 2708 173723 1 +996 17874 173723 1 +23531 1701 173724 16 +10567 16193 173726 3 +3246 20477 173727 13 +457 3308 173742 2 +400 13994 173753 23 +2945 2675 173805 1 +1147 2505 173899 34 +11785 5636 173899 34 +3441 17548 173899 34 +22618 6470 173906 1 +2632 21021 173937 1 +12004 6937 173937 1 +14079 8710 173944 23 +1322 23517 174025 2 +3488 11336 174032 8 +6374 13676 174032 8 +13576 11396 174032 8 +9070 10551 174033 1 +5930 3118 174033 1 +433 16139 174102 4 +4667 7267 174106 3 +14255 568 174106 3 +17706 2049 174112 25 +4442 7586 174112 25 +975 7717 174112 25 +17508 27 174113 1 +1794 977 174152 6 +9162 11879 174153 4 +5761 22289 174166 17 +14817 2630 174251 1 +353 26448 174255 1 +9395 1510 174255 1 +15311 5903 174284 13 +156 6933 174349 4 +3394 20846 174350 11 +9854 11239 174386 3 +17324 10081 174403 23 +14246 7613 174404 19 +3947 20299 174405 1 +24078 747 174406 16 +7287 12625 174406 16 +18534 9448 174409 1 +1129 19082 174442 17 +7811 4510 174443 14 +19069 1566 174462 1 +2091 13375 174466 20 +11598 4443 174466 20 +2797 9226 174467 2 +2638 135 174479 15 +4967 11542 174479 15 +16372 8613 174508 1 +4962 7485 174560 10 +183 6357 174560 10 +2497 25910 174562 1 +5143 1356 174626 1 +6926 21376 174679 30 +26656 1259 174679 30 +4172 6582 174679 30 +6360 3828 174679 30 +5886 23097 174683 1 +1491 26759 174707 8 +4379 7297 174709 1 +3364 20150 174729 44 +5897 8941 174764 1 +20503 6650 174765 1 +2104 4056 174857 1 +4263 17831 174857 1 +5059 4933 174862 1 +23628 4197 174862 1 +4138 2176 174868 56 +5490 23014 174868 56 +19944 2465 174868 56 +1946 3592 174868 56 +6730 1400 174868 56 +7566 20851 174871 56 +5626 12049 174872 1 +451 12195 174942 1 +155 15392 174943 51 +15517 10193 174943 51 +16527 1190 174944 21 +1506 7121 174986 1 +4966 20837 174986 1 +15247 6501 175033 2 +3688 8357 175038 10 +27136 969 175038 10 +10528 9021 175052 23 +4488 10630 175120 1 +3775 5506 175142 2 +10217 2802 175213 39 +7342 11741 175241 1 +6296 10114 175241 1 +17393 2400 175296 1 +2593 4284 175296 1 +5338 8894 175297 5 +22165 5342 175337 10 +5957 8374 175394 1 +3156 6977 175394 1 +21522 2688 175441 18 +6202 509 175441 18 +18315 4522 175451 42 +1704 22126 175451 42 +2497 5832 175451 42 +14665 4747 175460 36 +6831 3198 175460 36 +16776 5852 175460 36 +3616 4467 175482 35 +10375 3827 175539 28 +12161 129 175542 12 +5257 6829 175564 4 +17135 11696 175564 4 +9398 9433 175564 4 +21115 2159 175565 29 +8856 6044 175602 15 +11550 12137 175602 15 +6618 13127 175602 15 +18978 5347 175643 16 +1632 25217 175644 5 +13852 12906 175675 1 +5672 12582 175675 1 +4557 1519 175694 6 +9763 12342 175694 6 +6134 3731 175694 6 +3065 10468 175694 6 +9458 15178 175705 13 +12868 1241 175705 13 +14 22026 175738 31 +7636 5932 175738 31 +12173 4286 175738 31 +12678 5932 175738 31 +9149 3967 175837 4 +19707 3852 175845 1 +5964 15132 175872 20 +7274 3234 175923 1 +13426 13721 175925 16 +111 7885 175925 16 +10300 752 175925 16 +11018 1900 175994 23 +8705 10750 175994 23 +275 18204 176012 4 +9276 9754 176012 4 +8675 924 176013 27 +11336 8023 176013 27 +1636 1573 176014 25 +22411 3175 176019 32 +1527 24783 176019 32 +16150 9346 176032 12 +29047 147 176032 12 +3108 2068 176120 1 +7892 5407 176120 1 +4686 2535 176128 46 +6828 19597 176192 3 +16427 2019 176256 1 +278 25163 176256 1 +2141 3184 176316 1 +12354 4213 176316 1 +12643 2985 176333 25 +17366 7560 176334 4 +2522 8784 176339 4 +4799 20302 176374 8 +13750 7656 176374 8 +9477 7656 176374 8 +2343 7656 176374 8 +6118 5200 176374 8 +16594 2891 176374 8 +8290 1117 176376 39 +24762 4185 176376 39 +23107 3270 176454 51 +22283 670 176470 6 +3279 4690 176471 1 +19696 3043 176482 11 +17322 9080 176482 11 +552 9945 176490 41 +7438 7922 176490 41 +17837 8284 176544 1 +17115 8859 176580 1 +6806 6455 176580 1 +1429 13014 176629 68 +4071 14836 176637 1 +16431 11378 176692 16 +12162 688 176692 16 +3579 24481 176790 31 +5217 3477 176790 31 +4813 8602 176795 2 +2738 19356 176795 2 +15830 2569 176799 13 +1280 16 176799 13 +21312 618 176833 9 +18154 7627 176833 9 +18795 5200 176834 7 +495 3451 176834 7 +8660 10949 176856 6 +9829 7387 176861 1 +3914 12496 176863 1 +4773 1773 176870 1 +15426 8257 176870 1 +15960 9361 176879 2 +6107 9901 176885 11 +12187 15971 176923 29 +21552 560 176943 9 +16756 2993 176959 42 +15601 2409 176974 4 +4893 6632 177019 1 +556 18076 177020 24 +14461 3178 177030 31 +2084 4473 177031 1 +7113 11029 177091 1 +4872 4227 177091 1 +8440 12851 177145 1 +667 5183 177182 3 +2751 4296 177208 1 +10374 10339 177209 7 +13581 14406 177209 7 +8903 14099 177276 24 +547 2107 177279 1 +4284 6352 177287 1 +16114 6318 177287 1 +7201 13632 177287 1 +2455 7301 177323 33 +13683 1799 177325 5 +13662 1021 177346 7 +6478 5354 177361 5 +8088 8507 177363 40 +17038 853 177407 61 +2120 14830 177436 1 +4612 21366 177493 4 +9292 6592 177493 4 +8827 12947 177510 2 +3165 4415 177594 13 +3902 11556 177594 13 +6185 15665 177594 13 +3743 9273 177594 13 +3211 13151 177597 66 +8857 14807 177597 66 +3559 1471 177597 66 +1081 1346 177597 66 +10663 2504 177679 16 +2066 1795 177701 3 +27551 245 177703 1 +2689 2583 177739 5 +5932 16473 177739 5 +5404 8902 177739 5 +15499 7179 177792 1 +20191 1605 177801 13 +9065 17239 177846 1 +2891 11104 177857 3 +3591 3871 177861 1 +5089 12558 177861 1 +2633 13902 177861 1 +9649 247 177864 2 +4031 73 177867 12 +5098 21146 177950 3 +19151 6812 177950 3 +7553 18240 177954 1 +18628 7078 177954 1 +3341 3228 178003 1 +14233 2400 178006 6 +16056 10165 178050 2 +7145 11225 178050 2 +9300 6728 178054 2 +15849 7947 178054 2 +1994 16190 178097 12 +20081 8366 178108 32 +4469 12034 178109 1 +25908 1093 178127 1 +22398 2171 178127 1 +14129 1628 178174 1 +5932 7848 178174 1 +16950 3668 178188 1 +1074 7654 178188 1 +12413 11449 178188 1 +17526 11665 178231 2 +6019 12567 178236 75 +4091 2909 178236 75 +4422 706 178257 56 +8642 19714 178337 31 +12119 7544 178337 31 +11843 10460 178346 25 +4350 17453 178444 1 +7053 20192 178499 14 +489 7832 178526 72 +4855 18302 178527 22 +4854 6308 178542 7 +6215 17456 178546 20 +10287 2252 178548 5 +11915 2447 178550 12 +10675 10624 178590 54 +4001 5445 178590 54 +15588 9450 178638 4 +15153 5339 178649 1 +5486 8442 178652 2 +23196 3126 178652 2 +8664 18748 178675 1 +1904 23101 178689 15 +1173 21645 178736 2 +5339 13199 178776 30 +8095 16481 178778 1 +22546 2712 178788 53 +13859 7289 178794 9 +8100 16573 178794 9 +9763 9155 178800 15 +562 3930 178847 1 +391 22072 178856 10 +3489 7123 178861 2 +13084 11274 178925 1 +18469 5364 178967 69 +12875 10329 179021 1 +21439 349 179090 1 +6788 22255 179090 1 +644 19416 179092 10 +10499 3282 179093 47 +18954 7844 179168 24 +2524 20114 179168 24 +11433 15946 179214 1 +20417 3375 179219 1 +3698 22435 179222 1 +274 5523 179222 1 +7560 1976 179253 1 +15379 11690 179313 1 +5122 9482 179321 1 +7058 11280 179321 1 +19888 1420 179321 1 +2417 10909 179322 1 +3923 12225 179322 1 +11916 11233 179330 3 +970 6864 179330 3 +6874 8695 179419 1 +5386 5085 179419 1 +4415 3662 179432 25 +11485 7241 179466 32 +3975 15054 179467 1 +5377 5643 179467 1 +3400 10516 179470 83 +16887 5188 179518 2 +1635 304 179518 2 +5750 7060 179538 49 +19178 8074 179538 49 +16858 6480 179543 1 +14009 6175 179545 8 +6366 21885 179546 41 +15630 12011 179548 1 +10951 15947 179548 1 +17959 2192 179594 34 +4059 24961 179650 10 +13793 8135 179717 2 +13447 6721 179809 2 +5634 11669 179811 1 +18146 6747 179825 3 +7710 1907 179903 55 +15193 2736 179909 8 +4161 14922 179911 1 +2278 6572 179925 17 +15605 9357 179985 1 +16337 3386 180027 25 +27427 1505 180056 1 +16833 7155 180056 1 +5713 16728 180057 14 +14311 1981 180057 14 +15161 159 180057 14 +2511 26599 180067 1 +2070 16602 180132 1 +2286 3259 180159 21 +9736 702 180159 21 +6151 3095 180248 1 +17263 7009 180250 1 +575 10543 180250 1 +12482 10406 180250 1 +637 5625 180250 1 +8926 10976 180276 26 +10151 13833 180276 26 +14564 3362 180276 26 +14248 5114 180292 5 +19813 3505 180345 4 +2378 8034 180358 1 +2012 22055 180384 4 +9686 5903 180384 4 +10460 17616 180434 1 +3579 10342 180434 1 +25152 477 180532 9 +1150 6396 180532 9 +7516 7006 180606 2 +13865 8701 180606 2 +4646 24376 180607 1 +825 19456 180619 6 +5923 10218 180644 38 +13403 10454 180644 38 +5064 16157 180666 7 +7358 16510 180719 2 +10490 16686 180756 2 +16970 4677 180756 2 +16656 2881 180791 12 +21844 4836 180794 1 +8647 6105 180824 7 +1671 884 180858 58 +25670 1949 180880 38 +19508 4875 180914 1 +5711 19845 181000 37 +3311 3779 181086 1 +22554 664 181100 31 +3671 11361 181118 4 +1462 2575 181120 40 +9363 14920 181120 40 +16686 2770 181127 13 +10720 9375 181158 14 +3337 18583 181158 14 +18071 4894 181168 2 +3649 21502 181168 2 +3250 550 181175 18 +176 19641 181198 36 +6896 6799 181200 1 +11077 13128 181211 2 +9243 19035 181213 16 +4442 13616 181244 55 +14463 10828 181244 55 +10279 4754 181250 21 +2369 14413 181308 11 +3795 11744 181329 1 +6276 16214 181329 1 +5938 15941 181338 13 +2033 19365 181345 6 +5538 8008 181362 23 +6057 1996 181363 1 +8857 6566 181401 39 +11201 526 181402 5 +13010 8185 181461 20 +12668 1616 181467 3 +1302 2520 181491 1 +8831 8620 181507 17 +15280 3751 181507 17 +5499 17673 181507 17 +8527 5158 181531 1 +6957 11962 181595 30 +3338 20673 181640 2 +5030 7285 181640 2 +6925 7285 181640 2 +10089 7285 181640 2 +7954 5706 181652 56 +944 20607 181652 56 +23639 4463 181652 56 +3059 1074 181664 27 +7977 9111 181691 3 +6384 4011 181692 22 +15640 3005 181699 9 +7940 13255 181745 14 +15161 10822 181745 14 +20192 7501 181758 38 +4926 7609 181824 1 +2779 25536 181825 1 +9784 3717 181843 1 +16819 12030 181874 1 +13019 11931 181874 1 +2675 12128 181874 1 +3767 4058 181899 7 +6831 10582 181899 7 +6748 7205 181911 4 +8294 19364 181911 4 +18812 247 181911 4 +1976 2108 181927 2 +10429 14761 181949 1 +19481 7062 181981 1 +16710 7230 182057 1 +4358 7506 182057 1 +3323 19167 182125 2 +12618 16357 182139 44 +11888 5204 182140 13 +10227 6565 182140 13 +12440 12437 182196 4 +4220 7513 182200 1 +15853 863 182203 57 +16216 4189 182272 4 +2807 10784 182298 8 +9418 4664 182298 8 +25722 32 182361 1 +6859 10710 182362 1 +26268 949 182362 1 +20124 6441 182372 14 +6145 5152 182372 14 +1459 16365 182372 14 +6955 4158 182375 50 +13159 15830 182385 1 +9083 4411 182435 8 +6920 937 182449 13 +11221 16579 182509 1 +14863 6631 182539 2 +6669 3751 182613 1 +6364 19899 182693 22 +4210 6414 182696 7 +16282 4540 182718 7 +14424 12992 182730 1 +885 8167 182736 1 +8059 2694 182736 1 +6348 11247 182740 32 +20253 1024 182741 3 +3506 16217 182750 1 +17322 11385 182802 5 +7644 8715 182843 9 +11174 12826 182846 6 +10511 6405 182898 1 +4942 7512 182898 1 +18145 2118 182990 8 +12613 9665 183010 31 +8510 11023 183013 2 +8077 11500 183013 2 +1717 15792 183018 25 +2569 22231 183110 6 +17743 1386 183112 38 +7498 7997 183112 38 +16010 6250 183112 38 +7015 19067 183114 1 +569 4490 183114 1 +18164 8561 183117 8 +16386 6817 183163 4 +14095 9237 183163 4 +1736 6473 183214 33 +11315 17660 183216 1 +3590 24800 183246 1 +24552 3211 183278 14 +9701 15092 183278 14 +11037 1217 183280 1 +16506 3444 183280 1 +15353 11881 183280 1 +8277 18384 183283 4 +21474 1315 183283 4 +2968 14483 183310 62 +2894 6768 183343 20 +6582 5022 183343 20 +8423 7546 183343 20 +15660 8697 183407 2 +14573 6677 183427 4 +2342 6159 183427 4 +22564 4408 183444 1 +24572 1632 183535 13 +14086 8579 183567 3 +5682 13935 183597 1 +22994 2196 183646 2 +7967 16511 183713 4 +278 11501 183722 28 +2805 7160 183739 22 +3221 15211 183739 22 +10067 15706 183746 1 +1521 11482 183749 1 +19073 4240 183834 9 +2738 9610 183844 1 +14282 4863 183845 5 +4418 7880 183890 2 +15775 13206 183972 1 +7959 5254 183983 2 +10336 11901 183983 2 +7758 5105 183988 1 +15514 13458 183988 1 +14897 441 183989 15 +22584 3343 184024 1 +7176 20978 184024 1 +14404 6028 184081 7 +6655 5318 184081 7 +11168 16612 184081 7 +1996 16356 184084 9 +3559 11602 184084 9 +11961 11021 184084 9 +3765 6972 184084 9 +1548 21271 184105 1 +2370 16079 184116 1 +27391 678 184129 1 +4559 11187 184152 3 +1464 10929 184156 88 +438 11269 184161 26 +12718 12344 184161 26 +14672 4345 184161 26 +629 4345 184161 26 +1014 4345 184161 26 +15705 857 184214 10 +5361 5417 184233 53 +21019 7527 184258 26 +1128 12077 184285 19 +1532 20069 184323 10 +12595 7926 184362 1 +6270 10689 184372 36 +1671 14723 184400 24 +12545 14804 184493 1 +14821 10976 184493 1 +10345 3867 184493 1 +13368 6971 184496 37 +3467 10317 184587 15 +5404 6831 184613 6 +3159 986 184650 21 +1799 98 184650 21 +24773 3232 184651 21 +9609 5749 184652 18 +16819 5043 184652 18 +15156 772 184694 2 +19800 2992 184695 2 +8569 13874 184728 7 +4457 3145 184739 1 +6107 18520 184739 1 +22767 699 184740 1 +3044 8992 184740 1 +1013 5491 184741 33 +7442 1628 184806 5 +14735 11549 184807 1 +2732 3205 184808 34 +23024 2601 184808 34 +16205 8977 184808 34 +3177 23714 184813 1 +3145 21859 184826 44 +18966 1462 184837 20 +1621 18430 184926 52 +1060 9528 184926 52 +8849 16598 184953 3 +7924 4821 184953 3 +4783 12651 184957 8 +18218 234 184961 39 +12878 103 184962 1 +228 1753 184966 83 +9250 8394 184968 11 +16948 10808 184973 18 +2717 21827 184974 2 +4159 6131 184974 2 +12309 13533 184975 12 +17163 6936 185017 45 +18433 795 185092 16 +2217 13346 185157 8 +3117 12436 185204 49 +19404 4468 185248 1 +19976 4540 185260 10 +18153 6013 185338 4 +2668 22027 185358 2 +1544 18304 185406 1 +26089 2547 185406 1 +2068 7371 185434 1 +22044 3549 185444 1 +2650 256 185444 1 +4246 11218 185533 1 +14780 1244 185534 47 +7170 1868 185534 47 +70 15444 185534 47 +14764 9119 185545 2 +19339 1134 185545 2 +2421 22501 185630 13 +2570 5457 185630 13 +3832 25122 185692 3 +6769 2836 185692 3 +5917 18407 185706 2 +10067 2116 185706 2 +5814 9551 185706 2 +8256 6324 185726 19 +4337 17195 185727 1 +4954 69 185727 1 +7375 4615 185762 72 +25623 902 185791 5 +1830 18848 185799 3 +3474 4169 185799 3 +20608 853 185827 2 +2453 3532 185878 1 +679 16447 185903 12 +8152 2391 185903 12 +2638 5072 185952 3 +6035 16537 185963 1 +8082 4307 185963 1 +5855 9576 186052 1 +506 10516 186069 8 +17235 2945 186069 8 +6092 20678 186070 6 +11685 9267 186151 1 +20982 7370 186179 1 +19442 4160 186180 10 +5476 7664 186257 1 +1300 17925 186257 1 +3689 3801 186330 2 +3646 15980 186330 2 +11311 11978 186330 2 +5361 4769 186337 2 +2967 7709 186412 2 +4128 16100 186412 2 +6611 21498 186418 5 +12076 12323 186488 7 +11197 2472 186488 7 +2304 15424 186494 1 +5999 16110 186495 10 +5006 1768 186539 3 +5610 12682 186557 1 +2975 12277 186599 4 +4116 15681 186599 4 +8803 465 186673 5 +7190 85 186673 5 +9689 17879 186675 2 +10387 13474 186688 1 +24265 1620 186688 1 +13001 1678 186688 1 +15680 1156 186689 61 +5666 7913 186691 2 +1717 20837 186759 23 +1154 7121 186759 23 +6360 13529 186762 6 +2827 15212 186814 19 +399 278 186814 19 +16155 8686 186817 26 +18250 4479 186817 26 +3210 7484 186831 1 +10590 16332 186836 1 +8210 11626 186836 1 +2412 11768 186904 2 +7225 17445 186920 17 +24664 807 186920 17 +11622 1520 186943 1 +14210 3428 186943 1 +17587 10861 186943 1 +13452 9018 186990 45 +6367 14159 186991 54 +4587 24481 187068 59 +22626 336 187070 5 +16569 563 187083 11 +25254 2812 187083 11 +8845 18345 187084 2 +19220 4599 187084 2 +20576 5231 187084 2 +11076 3847 187126 39 +4490 22512 187200 1 +1134 11241 187201 12 +14008 717 187202 5 +27230 554 187203 30 +5225 255 187241 14 +8999 6199 187252 1 +19851 8442 187337 3 +19137 7717 187423 1 +11858 5400 187482 7 +14916 5430 187482 7 +1780 23831 187527 1 +9041 4127 187527 1 +1536 9859 187584 4 +3321 14633 187584 4 +11433 9438 187584 4 +9621 3842 187584 4 +20484 287 187588 1 +14929 9684 187614 28 +2737 10642 187649 9 +1969 24393 187734 5 +1610 5017 187737 1 +13804 4709 187737 1 +9274 12312 187741 61 +11375 9806 187744 74 +4460 11589 187747 4 +6972 13397 187749 16 +5440 8138 187774 31 +14955 5024 187812 21 +3228 21077 187812 21 +5296 2303 187817 71 +6699 18820 187864 6 +11654 17116 187902 8 +21956 5683 187976 1 +3919 9049 188015 19 +44 24642 188032 14 +3649 13683 188033 1 +9486 5291 188034 1 +4970 18281 188034 1 +20481 3651 188088 1 +8133 20627 188115 4 +13114 546 188155 1 +2653 13222 188157 1 +4374 5384 188165 26 +2735 26237 188185 6 +1314 22154 188267 1 +7224 5804 188267 1 +12433 8101 188303 1 +44 9268 188323 1 +16983 9733 188332 1 +17738 6440 188332 1 +21991 1952 188336 7 +49 8131 188339 1 +6251 2075 188339 1 +9274 2765 188339 1 +1337 27243 188382 3 +8810 1013 188391 3 +6502 21325 188394 32 +17125 4547 188394 32 +5855 4696 188395 42 +376 13605 188395 42 +3726 5827 188395 42 +9832 8542 188395 42 +666 9960 188395 42 +10971 12456 188410 32 +10345 689 188414 1 +9648 13003 188422 15 +8851 3415 188447 1 +19743 683 188460 1 +6717 5219 188466 1 +4368 22637 188473 4 +6030 9580 188475 4 +11040 5105 188475 4 +9730 14889 188490 3 +6900 5353 188579 1 +2254 12068 188626 6 +20232 7516 188696 3 +6097 6520 188696 3 +9610 10573 188781 27 +4798 15202 188809 9 +8267 13015 188811 16 +4716 13831 188813 1 +22112 1726 188833 1 +14507 10240 188879 2 +8575 4421 188886 13 +8993 4632 188928 2 +15600 12929 188928 2 +7693 7236 188937 3 +9145 19559 188938 1 +20818 459 189029 16 +6169 8317 189048 5 +13195 289 189077 28 +3507 14821 189151 49 +11098 8101 189151 49 +6711 4205 189160 27 +20292 7039 189160 27 +514 17570 189184 16 +5507 14925 189196 1 +1389 18890 189277 21 +21867 3072 189278 1 +24990 1000 189285 23 +4023 4872 189286 1 +2492 10307 189287 49 +10997 17194 189314 1 +17077 716 189345 25 +12156 13274 189345 25 +25592 3312 189403 4 +12398 5588 189403 4 +4808 147 189408 4 +17859 75 189408 4 +20801 8274 189414 11 +10870 10465 189415 1 +20239 1800 189424 12 +19378 922 189490 18 +184 27036 189490 18 +14051 11657 189575 1 +4206 20664 189578 1 +7333 7294 189578 1 +430 25906 189638 1 +2569 2052 189638 1 +4392 2052 189638 1 +11981 5415 189654 3 +17606 6551 189734 1 +3208 22366 189760 1 +4917 14310 189774 74 +3783 23207 189778 5 +7452 4751 189778 5 +19827 6634 189779 1 +4753 13870 189782 1 +2594 25782 189802 3 +25799 856 189802 3 +3455 8164 189861 33 +16980 1934 189903 55 +6959 9973 189903 55 +11924 5576 189928 4 +12498 3846 189930 1 +352 9390 189930 1 +6241 20669 189977 1 +6640 3518 190018 3 +3859 7693 190019 1 +12919 5295 190107 5 +15382 10411 190113 10 +11986 11611 190129 2 +4058 5487 190137 2 +698 16728 190219 22 +10588 12825 190248 12 +10379 4522 190257 47 +6746 14367 190261 1 +986 5227 190265 1 +10801 17460 190265 1 +12093 5113 190267 9 +2470 14087 190267 9 +10609 11787 190268 15 +9051 7792 190274 19 +5903 19812 190354 1 +1511 6653 190362 3 +16552 5712 190363 23 +4361 2300 190375 25 +15356 1407 190382 1 +5573 3232 190382 1 +6313 19943 190382 1 +19891 7739 190386 1 +9593 17786 190386 1 +7474 5378 190399 1 +17963 4200 190399 1 +7943 14456 190428 1 +8619 14960 190479 1 +11074 2504 190507 85 +5067 23504 190509 9 +14512 1703 190513 1 +2549 6083 190528 3 +23458 1175 190531 8 +16493 5233 190531 8 +9795 7921 190550 1 +6625 45 190610 7 +7908 2215 190610 7 +8602 3401 190694 1 +1309 7398 190710 11 +4274 5013 190710 11 +12481 12953 190713 9 +10056 13749 190713 9 +15460 11288 190801 6 +4447 3459 190801 6 +3313 8158 190802 1 +21325 6286 190870 6 +19576 3393 190873 72 +14696 13428 190874 1 +21370 4366 190901 22 +12670 11043 190994 3 +6356 16807 191053 4 +2995 22987 191054 1 +2956 20877 191055 1 +5934 13450 191104 4 +17485 2478 191106 1 +5667 4637 191199 1 +8956 4161 191223 31 +13949 13043 191224 41 +1565 16929 191228 9 +5775 7694 191259 1 +20686 1598 191259 1 +2301 3845 191259 1 +17846 6245 191338 4 +16450 1501 191418 11 +3357 2576 191418 11 +3191 20216 191420 7 +5127 14040 191452 29 +5777 13918 191452 29 +3255 1357 191460 2 +14409 13433 191468 1 +20604 5243 191468 1 +9733 8057 191508 93 +9367 15134 191508 93 +1916 12017 191519 15 +16161 5575 191555 31 +3015 2711 191572 8 +10330 2666 191572 8 +5901 13355 191636 25 +6818 13407 191678 1 +20230 7331 191678 1 +5635 994 191681 23 +11865 71 191681 23 +16398 2102 191685 13 +4692 13111 191685 13 +1053 26585 191716 90 +11958 1373 191716 90 +62 12646 191720 1 +3948 15312 191720 1 +12425 15989 191783 1 +1863 15919 191841 23 +3248 8449 191858 3 +4244 14027 191942 9 +23681 1694 191942 9 +8530 17295 191988 29 +25512 3683 191988 29 +12076 10495 192063 63 +2265 8597 192086 1 +10922 14074 192126 2 +10127 11909 192126 2 +3868 2947 192135 1 +12839 4212 192215 19 +1539 10833 192304 2 +6968 17125 192304 2 +13949 6409 192312 3 +10408 509 192314 12 +10409 7032 192320 53 +9046 9263 192347 3 +187 5187 192371 17 +7443 5088 192373 72 +6 4676 192373 72 +9456 14170 192378 3 +10441 13788 192378 3 +8161 19287 192433 4 +15592 4873 192463 1 +7620 11164 192533 11 +18451 8828 192590 1 +12438 3521 192590 1 +17412 5504 192590 1 +8430 4423 192612 12 +6453 9870 192613 8 +9721 19173 192619 2 +16332 6257 192619 2 +6892 8801 192718 2 +1210 9457 192725 8 +3576 12047 192821 1 +9749 12398 192822 48 +9555 2427 192827 66 +4690 23444 192915 1 +15031 4514 192915 1 +12690 11811 192964 1 +26915 2063 193058 31 +4537 2762 193058 31 +9701 4789 193061 59 +11401 6877 193068 17 +19484 9731 193070 1 +6786 8664 193078 4 +13834 4343 193079 1 +23209 5746 193080 5 +13479 13310 193120 10 +1499 9857 193121 1 +21137 4738 193202 3 +2012 24189 193300 2 +20208 6137 193324 1 +12871 14562 193395 22 +20571 7976 193423 7 +7863 4584 193473 23 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=22538,vsize=29231,psize=27958,req_len=9842).predictor.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=22538,vsize=29231,psize=27958,req_len=9842).predictor.best" new file mode 100644 index 0000000000000000000000000000000000000000..166b998f0bdcf872c366adc68dbd1e17636c09e7 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=22538,vsize=29231,psize=27958,req_len=9842).predictor.best" @@ -0,0 +1 @@ +57109986 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=22538,vsize=29231,psize=27958,req_len=9842).prophet.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=22538,vsize=29231,psize=27958,req_len=9842).prophet.best" new file mode 100644 index 0000000000000000000000000000000000000000..e5d2fdd8d59dab6986eb279c2ae60291950b5c2f --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=22538,vsize=29231,psize=27958,req_len=9842).prophet.best" @@ -0,0 +1 @@ +50295186 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=22538,vsize=29231,psize=27958,req_len=9842).simple.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=22538,vsize=29231,psize=27958,req_len=9842).simple.best" new file mode 100644 index 0000000000000000000000000000000000000000..c2ebf52b144b56b93b1720fd25a340a9e513fc6d --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=22538,vsize=29231,psize=27958,req_len=9842).simple.best" @@ -0,0 +1 @@ +537159266 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=6873,vsize=12703,psize=2202,req_len=7574).in" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=6873,vsize=12703,psize=2202,req_len=7574).in" new file mode 100644 index 0000000000000000000000000000000000000000..f9abc520d67a45e145aac03fbd8f6abbea8c03f5 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=6873,vsize=12703,psize=2202,req_len=7574).in" @@ -0,0 +1,7575 @@ +12703 2202 7574 +6729 2054 72 1 +8217 1857 124 1 +4959 855 192 7 +10920 37 269 8 +1169 1197 269 8 +4133 1220 273 13 +1671 201 330 9 +11451 891 331 26 +4739 95 331 26 +9223 1726 361 22 +11892 476 361 22 +9810 1680 362 5 +2455 522 362 5 +3654 146 375 1 +4645 1484 383 1 +7234 1145 391 20 +2438 1870 446 23 +5408 1079 470 1 +1051 2173 477 50 +8033 29 477 50 +4599 41 564 2 +1737 216 658 55 +13 1971 658 55 +10179 1544 752 32 +1005 1075 847 1 +2416 264 849 5 +8133 1798 868 1 +5384 546 883 1 +5122 79 886 4 +5409 1161 943 2 +880 1481 949 16 +11712 225 949 16 +1959 2177 950 8 +333 1144 1035 23 +8739 1989 1103 1 +5267 213 1103 1 +8825 1910 1187 3 +2466 848 1219 9 +9673 1860 1255 35 +11058 342 1255 35 +9752 342 1255 35 +7133 1243 1296 7 +6523 2026 1372 18 +2591 1643 1374 12 +10537 559 1374 12 +2088 633 1448 4 +2427 995 1451 5 +8305 480 1505 85 +7665 49 1513 13 +5598 91 1518 1 +5062 1389 1518 1 +518 1145 1582 1 +1762 380 1583 1 +11211 138 1608 1 +6863 1557 1609 3 +7799 198 1679 1 +2569 2170 1762 47 +4511 2057 1851 1 +5289 230 1861 28 +8913 367 1861 28 +9216 278 1907 1 +4612 1463 1949 8 +7165 1342 1950 33 +6326 1037 1997 1 +5908 354 2006 5 +2478 517 2008 10 +10102 134 2009 35 +118 1947 2046 1 +7980 703 2061 2 +2601 2013 2151 1 +4654 72 2204 2 +7263 296 2256 8 +3191 1477 2261 1 +11552 90 2278 29 +6924 1660 2333 9 +11486 439 2352 4 +10615 1213 2395 2 +7009 1863 2469 1 +10312 339 2469 1 +7798 1672 2482 69 +3302 530 2482 69 +1769 1627 2497 68 +1107 1525 2498 43 +7271 1899 2503 1 +6006 869 2505 2 +8914 1494 2506 1 +7539 874 2509 1 +4850 1653 2523 18 +10824 1637 2599 2 +3114 565 2599 2 +4131 243 2601 52 +6817 215 2601 52 +241 293 2609 17 +10742 75 2695 4 +4425 1480 2708 21 +6609 21 2708 21 +8060 1041 2742 82 +8779 1738 2784 16 +9671 289 2784 16 +10860 1028 2789 11 +6156 612 2796 4 +10826 1590 2796 4 +416 471 2852 28 +107 1755 2871 13 +5724 31 2871 13 +33 1781 2878 1 +7011 719 2957 46 +5414 529 2959 4 +2134 24 2959 4 +4801 825 3056 1 +4435 771 3069 5 +1619 1431 3069 5 +1286 1847 3108 3 +11745 7 3108 3 +2487 348 3108 3 +2656 348 3108 3 +8483 1491 3110 1 +3819 891 3126 17 +5257 544 3126 17 +5479 504 3126 17 +2157 585 3126 17 +2289 558 3144 1 +5980 795 3144 1 +238 693 3232 1 +3355 659 3233 88 +10768 737 3289 3 +9824 1018 3289 3 +9800 521 3289 3 +9641 446 3289 3 +3156 1153 3307 13 +2465 1696 3323 2 +10009 1800 3324 43 +539 1505 3326 1 +10179 1544 3328 4 +10136 2131 3407 1 +9094 743 3421 43 +9792 1507 3444 4 +4001 874 3513 26 +4397 197 3513 26 +283 946 3516 31 +4847 2003 3528 33 +12505 184 3584 1 +11740 867 3595 1 +10290 556 3595 1 +3176 728 3630 13 +4460 776 3630 13 +6786 1063 3646 1 +10782 1566 3670 1 +11067 636 3670 1 +11681 740 3690 1 +1425 528 3693 4 +4772 489 3779 18 +9647 1604 3811 22 +481 1181 3825 29 +9211 812 3826 1 +5674 1552 3843 2 +2594 1274 3845 3 +2817 408 3917 33 +2844 1248 3955 11 +2878 767 3955 11 +5078 613 3955 11 +9201 988 4021 1 +7610 235 4021 1 +1046 183 4034 29 +7465 1300 4061 10 +9389 1310 4083 1 +1680 1139 4096 7 +8450 2091 4145 1 +9130 2067 4164 1 +7943 642 4243 1 +6797 769 4246 1 +11625 550 4246 1 +11105 785 4321 12 +8160 271 4321 12 +5085 1146 4321 12 +5211 1277 4338 1 +11226 27 4344 2 +3731 131 4344 2 +10675 962 4344 2 +6469 1109 4344 2 +5499 2193 4346 3 +5891 9 4346 3 +10169 865 4428 61 +5369 1517 4432 8 +7081 685 4432 8 +4960 2039 4435 1 +3608 992 4436 6 +9947 1138 4462 6 +6209 1576 4480 14 +2320 199 4482 38 +6303 845 4482 38 +3304 1863 4561 56 +3385 13 4564 1 +7236 471 4564 1 +10550 1468 4564 1 +9916 250 4564 1 +5746 201 4573 1 +5279 1115 4573 1 +1482 1087 4573 1 +5942 74 4580 27 +8824 745 4604 90 +7894 1994 4613 46 +7239 809 4614 2 +7664 674 4621 3 +2086 1828 4685 1 +153 155 4685 1 +4646 902 4686 1 +4322 22 4700 7 +10576 167 4707 3 +3240 1225 4784 3 +3965 876 4784 3 +7618 1106 4800 2 +4008 1084 4800 2 +9490 312 4801 2 +1187 1115 4821 32 +7975 1629 4824 3 +329 10 4858 14 +6651 1317 4932 12 +11315 487 4963 4 +7149 1987 4982 1 +3125 683 5049 1 +6691 269 5070 70 +9996 511 5076 4 +5759 1088 5123 95 +4438 432 5123 95 +3 251 5157 11 +3674 317 5193 66 +4877 2188 5194 1 +2786 14 5194 1 +6145 1635 5196 14 +10138 655 5198 8 +841 1357 5198 8 +5905 190 5198 8 +8367 1532 5217 4 +1768 670 5217 4 +6005 1075 5296 3 +7456 1990 5298 13 +3849 212 5298 13 +3645 171 5310 4 +7747 1633 5405 2 +10723 65 5473 71 +2547 1412 5563 1 +10072 1925 5566 9 +8924 1769 5640 21 +2339 79 5705 1 +3628 525 5706 20 +7513 19 5797 36 +7188 401 5800 1 +4832 657 5800 1 +3338 1418 5880 3 +1654 52 5880 3 +5952 1959 5922 7 +6863 243 5922 7 +3092 2038 5981 1 +7310 164 5981 1 +7497 1688 6076 85 +6273 1793 6078 65 +3275 1615 6098 8 +2780 206 6107 38 +7116 1200 6107 38 +3884 1506 6112 19 +6707 1457 6197 2 +3555 745 6197 2 +1282 1797 6203 2 +4492 966 6206 6 +8570 1711 6211 1 +4252 708 6255 4 +6151 1588 6258 9 +4471 647 6260 1 +10301 553 6286 21 +378 1649 6286 21 +5146 791 6294 44 +7811 1630 6296 1 +3260 1727 6385 9 +11189 475 6385 9 +298 1403 6394 1 +10678 799 6394 1 +2101 286 6395 1 +6531 1139 6395 1 +8793 1627 6434 2 +11467 1099 6457 3 +2043 796 6468 7 +8548 1948 6516 40 +323 254 6516 40 +2613 1131 6521 1 +11158 1413 6522 1 +6816 789 6522 1 +8517 1756 6524 4 +7074 2020 6544 1 +10085 1228 6546 1 +4852 795 6587 3 +7558 58 6594 1 +10760 1158 6638 3 +968 75 6672 3 +7659 1861 6761 14 +6540 341 6761 14 +1728 1719 6766 1 +3494 483 6766 1 +2788 1330 6767 10 +7987 218 6768 59 +1381 1984 6768 59 +1161 1010 6796 1 +1911 702 6796 1 +10487 750 6796 1 +8275 679 6878 11 +7421 1657 6884 2 +3805 1828 6887 71 +7304 28 6915 3 +10593 2102 6915 3 +4226 1338 7010 4 +1346 2102 7062 1 +5949 1483 7069 63 +828 1727 7074 2 +7791 2021 7172 19 +7586 719 7214 31 +8598 239 7214 31 +4080 474 7291 20 +1982 280 7304 1 +2029 614 7354 1 +3008 440 7354 1 +3982 1445 7377 13 +4515 1946 7379 30 +9173 256 7379 30 +7083 1125 7396 8 +2958 1077 7396 8 +968 2186 7439 1 +5975 614 7490 35 +6263 1501 7500 51 +8142 1125 7550 1 +8433 497 7565 1 +6554 1705 7565 1 +9740 991 7566 47 +10603 65 7566 47 +1523 245 7566 47 +7645 1879 7583 35 +3644 1497 7591 1 +9815 927 7627 36 +7643 652 7627 36 +5163 2051 7632 1 +5364 1308 7661 1 +7434 2040 7673 2 +5090 1216 7691 1 +3006 379 7708 9 +2482 471 7708 9 +5149 103 7761 26 +9655 2009 7765 13 +6442 193 7765 13 +4728 2104 7781 22 +6542 1285 7784 1 +2319 245 7784 1 +2231 672 7784 1 +11300 877 7869 4 +11312 236 7874 5 +3862 1135 7884 1 +9252 665 7884 1 +5037 294 7884 1 +9250 1762 7892 9 +3371 440 7892 9 +7187 956 7969 8 +5855 1679 8013 41 +6124 1756 8021 11 +9988 446 8021 11 +2078 2027 8022 24 +8213 410 8037 12 +535 1261 8040 32 +10753 1491 8041 37 +4873 1506 8048 10 +10375 499 8048 10 +3148 553 8090 35 +691 99 8091 5 +2014 1898 8130 18 +5018 6 8135 49 +8097 1601 8140 1 +7719 601 8140 1 +5336 737 8149 1 +11932 288 8152 7 +2887 2201 8167 58 +5585 113 8173 1 +12031 657 8173 1 +7430 1972 8188 1 +8146 2050 8189 38 +3297 33 8206 19 +8715 1554 8206 19 +6794 1820 8212 40 +11385 382 8212 40 +11068 1083 8226 14 +11010 1119 8226 14 +11475 583 8226 14 +2825 1404 8240 23 +2164 462 8333 5 +4345 803 8334 1 +5587 1399 8334 1 +11221 776 8340 13 +1271 291 8340 13 +2890 662 8340 13 +1532 830 8371 5 +10579 692 8447 1 +5418 998 8459 1 +8512 1888 8476 4 +5247 1019 8534 10 +3401 1005 8539 4 +3653 240 8574 3 +4397 1903 8635 1 +5802 299 8635 1 +263 190 8695 1 +4674 634 8724 30 +1863 1065 8769 25 +10133 399 8781 1 +6157 1803 8781 1 +4464 1488 8794 41 +4877 70 8826 68 +5471 1180 8851 1 +4892 1022 8851 1 +10512 443 8851 1 +2908 1004 8852 5 +6412 448 8852 5 +7484 1215 8885 7 +4207 768 8885 7 +1560 1191 8888 5 +164 412 8895 59 +11727 380 8895 59 +1981 1271 8986 1 +8325 690 9004 1 +2577 94 9004 1 +5313 1135 9004 1 +10939 283 9004 1 +2973 922 9070 1 +3455 296 9070 1 +4555 273 9072 10 +10859 1757 9082 1 +4322 692 9083 5 +8377 301 9110 1 +1746 1093 9110 1 +11391 314 9112 1 +6072 835 9120 19 +7397 604 9120 19 +3445 1829 9124 12 +6555 231 9138 1 +2182 1026 9152 18 +8573 1325 9202 21 +5641 23 9287 1 +4093 1807 9370 2 +7667 1411 9372 8 +2456 791 9372 8 +11264 153 9385 1 +7377 1956 9385 1 +9802 743 9462 1 +5552 1459 9462 1 +5666 1968 9466 14 +3553 234 9466 14 +1307 1063 9467 1 +6471 293 9467 1 +6289 846 9467 1 +745 217 9468 20 +3413 1577 9550 3 +9006 933 9643 10 +3594 907 9665 2 +4815 1309 9684 2 +10557 893 9684 2 +200 1266 9717 1 +2541 387 9717 1 +6978 549 9717 1 +9150 2001 9808 45 +4867 159 9808 45 +8507 587 9816 1 +634 907 9816 1 +4235 708 9816 1 +10879 1346 9820 5 +3417 199 9914 1 +8604 1096 9914 1 +5142 751 9914 1 +3316 1999 9965 1 +2051 1595 9981 12 +2263 607 9981 12 +4696 350 9981 12 +11928 133 9988 1 +11040 922 9998 1 +2595 92 9998 1 +10002 1188 9998 1 +1973 1340 9999 1 +4496 862 9999 1 +6234 1779 10066 1 +8312 35 10144 63 +1871 1489 10144 63 +2732 1970 10145 6 +8267 232 10145 6 +740 755 10151 18 +10260 695 10151 18 +11194 1464 10186 29 +2664 745 10188 5 +3953 1244 10188 5 +4228 213 10188 5 +4078 108 10208 38 +9496 2018 10208 38 +1630 2185 10243 18 +8870 2152 10300 1 +8492 50 10300 1 +4890 1594 10328 24 +3444 1411 10337 1 +4445 791 10337 1 +6658 1390 10406 8 +10725 812 10406 8 +10239 1685 10429 15 +4469 950 10462 8 +816 52 10521 12 +6513 1869 10522 15 +5844 161 10546 24 +2829 1959 10567 21 +5539 1074 10568 8 +1511 1593 10574 8 +9277 609 10574 8 +1192 735 10584 17 +5721 693 10588 7 +10361 56 10677 13 +4867 1859 10678 1 +1586 343 10678 1 +254 1140 10683 37 +9463 45 10683 37 +2874 1410 10719 3 +5948 691 10729 15 +7849 206 10729 15 +3931 433 10729 15 +10020 872 10729 15 +10899 1723 10732 4 +10895 1620 10750 38 +4364 1710 10758 1 +1093 728 10762 20 +12213 147 10765 11 +6683 1597 10790 1 +1065 605 10790 1 +4694 680 10801 1 +9036 1094 10805 9 +3386 1241 10880 3 +4166 652 10882 6 +8853 355 10895 1 +4611 694 10895 1 +257 687 10895 1 +7238 1935 10915 4 +10192 1269 10927 45 +4562 2097 10951 1 +8106 105 10951 1 +5301 660 10961 23 +9996 1498 10979 29 +9421 704 10979 29 +12347 316 11001 5 +2598 700 11042 4 +8591 211 11043 1 +7322 562 11051 38 +9798 1660 11115 39 +31 1090 11117 5 +7388 1033 11152 69 +3210 1835 11249 1 +6439 367 11249 1 +3576 985 11251 1 +2708 597 11251 1 +666 620 11251 1 +3428 1500 11263 1 +4118 1067 11276 2 +7138 1135 11276 2 +1009 1621 11277 1 +4382 768 11282 7 +10848 67 11284 4 +8688 934 11370 7 +10862 155 11435 1 +8849 1459 11435 1 +1138 279 11437 1 +3607 340 11444 2 +9020 1691 11465 4 +7598 2131 11548 3 +4809 71 11548 3 +916 1825 11552 73 +2834 1417 11566 77 +4251 1532 11599 27 +651 895 11608 10 +9136 84 11609 1 +3719 1714 11609 1 +3394 404 11609 1 +6393 1124 11705 17 +2385 2146 11722 3 +7218 56 11722 3 +8052 731 11782 2 +3108 688 11794 13 +1080 1397 11794 13 +1323 117 11794 13 +8008 117 11794 13 +10664 1454 11877 1 +9904 540 11879 1 +9978 357 11879 1 +6239 694 11910 11 +10487 1436 11912 1 +8793 1575 11921 9 +11600 533 11921 9 +1441 94 11921 9 +2069 1017 11929 16 +2246 476 11933 7 +5293 372 12030 1 +8256 2020 12055 4 +9049 313 12081 8 +925 1974 12112 1 +9484 228 12112 1 +2071 387 12117 6 +2786 210 12117 6 +10264 918 12177 46 +11256 1135 12177 46 +6907 319 12178 20 +11627 741 12247 8 +331 516 12248 1 +7199 2012 12317 5 +5928 190 12317 5 +4699 478 12349 6 +7410 1183 12370 2 +8651 646 12395 1 +1254 470 12455 18 +4275 586 12456 1 +9642 302 12468 14 +397 735 12487 21 +11488 193 12487 21 +4982 1734 12495 1 +10 1832 12519 60 +11301 729 12561 3 +3168 1473 12561 3 +4693 2122 12576 1 +5648 80 12576 1 +4885 80 12576 1 +10883 80 12576 1 +7691 1939 12626 5 +6900 263 12626 5 +5643 1971 12680 1 +11684 899 12687 1 +8439 507 12693 1 +8358 238 12694 2 +10675 1585 12704 1 +4910 974 12705 2 +1298 1443 12719 1 +5807 2146 12817 3 +7107 56 12817 3 +6647 56 12817 3 +6011 42 12863 31 +1035 55 12863 31 +7427 589 12875 1 +5114 708 12875 1 +11542 1037 12893 8 +3371 1165 12893 8 +11233 1208 12985 14 +8738 37 13046 1 +4338 1371 13046 1 +7089 2003 13053 1 +5745 1472 13064 5 +6673 1041 13091 14 +10730 1161 13091 14 +8541 1481 13103 1 +3394 517 13104 1 +6127 669 13106 4 +4042 560 13121 12 +8272 1321 13126 1 +8471 881 13126 1 +10250 967 13128 2 +11602 392 13209 9 +981 902 13240 2 +3374 1151 13245 1 +6785 1051 13245 1 +7537 197 13247 21 +1316 545 13259 29 +950 246 13259 29 +6213 1411 13259 29 +1843 245 13264 25 +5490 859 13283 1 +10548 672 13290 16 +5797 1215 13290 16 +7348 722 13381 68 +9301 1053 13381 68 +7223 1869 13394 6 +7078 1275 13409 1 +10715 354 13415 3 +2353 1645 13423 65 +8126 557 13423 65 +10425 1287 13425 3 +7648 578 13430 5 +2118 1434 13430 5 +2416 131 13497 1 +311 696 13537 10 +5316 1763 13590 2 +4829 641 13660 1 +11297 601 13665 2 +4725 1813 13720 11 +2303 389 13720 11 +1745 854 13725 1 +4216 1348 13725 1 +7908 391 13733 2 +7414 98 13831 30 +10502 273 13879 1 +9827 1929 13879 1 +7849 1973 13923 1 +6794 229 13923 1 +6149 657 13943 1 +9248 1095 13966 46 +749 1604 14048 23 +558 1909 14053 34 +1330 1748 14055 8 +1670 454 14055 8 +2664 1743 14076 1 +1337 1277 14094 9 +10153 925 14094 9 +5036 1025 14111 1 +3478 75 14115 20 +201 1247 14119 1 +3776 752 14133 47 +1319 914 14134 1 +4571 178 14143 47 +10956 763 14143 47 +5552 651 14203 9 +8800 492 14225 6 +12318 43 14230 1 +1219 1848 14265 1 +374 325 14267 5 +5321 13 14267 5 +5982 205 14282 1 +10513 927 14284 10 +521 183 14289 27 +5181 1070 14289 27 +2289 1263 14292 18 +1289 1001 14326 1 +10792 1869 14359 1 +5508 190 14371 30 +11302 4 14425 16 +4970 106 14425 16 +6581 324 14455 1 +8429 465 14463 4 +9673 491 14519 1 +7631 1711 14519 1 +2621 2058 14520 3 +4890 144 14520 3 +12212 346 14560 1 +8404 1909 14571 2 +479 1499 14631 10 +9725 311 14634 2 +2093 1891 14634 2 +8099 1022 14654 1 +10409 1923 14731 2 +4450 276 14731 2 +7762 3 14731 2 +8554 511 14736 7 +5009 665 14764 1 +5014 550 14824 5 +1718 1181 14826 1 +8376 323 14826 1 +3696 1894 14845 18 +3398 879 14861 9 +2807 409 14870 1 +7019 94 14872 9 +6668 1181 14878 1 +11626 176 14878 1 +1490 845 14878 1 +5401 1204 14915 23 +10259 996 14915 23 +8077 744 14930 1 +2449 1400 14933 6 +7711 1746 14937 1 +11235 362 14956 12 +1515 1303 14956 12 +1135 1634 14957 22 +5531 568 14957 22 +5253 545 14965 1 +2708 920 14965 1 +513 2146 14989 4 +4748 1890 15032 1 +7767 1045 15072 26 +10228 268 15072 26 +4183 984 15170 7 +4951 178 15266 5 +10325 669 15318 25 +10260 166 15324 2 +3830 2168 15362 27 +9568 34 15362 27 +3618 1777 15377 3 +1560 73 15377 3 +1579 1574 15391 1 +2620 152 15408 24 +1520 352 15408 24 +3689 802 15460 1 +50 1400 15460 1 +3078 2057 15463 1 +9418 759 15477 36 +1007 2174 15503 18 +9416 12 15507 1 +12165 468 15605 77 +3197 1357 15620 1 +9534 190 15620 1 +2871 655 15620 1 +2821 2199 15622 1 +4627 1454 15675 2 +10523 197 15734 21 +10064 677 15734 21 +5355 1250 15756 1 +4870 636 15763 29 +4406 1566 15763 29 +3832 1584 15783 21 +12121 277 15789 6 +2601 2151 15844 18 +22 1623 15868 2 +3664 579 15868 2 +2522 455 15874 3 +8456 1259 15875 1 +3549 1850 15938 7 +7551 1556 15972 1 +7289 646 15972 1 +1195 384 15972 1 +2580 598 16023 1 +2564 1604 16023 1 +4321 598 16023 1 +2180 12 16039 1 +9054 410 16039 1 +11771 260 16042 20 +10750 1432 16072 1 +10110 875 16093 5 +7108 1327 16093 5 +98 2164 16113 8 +6543 138 16174 1 +1680 2054 16185 30 +8839 1419 16199 3 +614 497 16199 3 +7544 292 16283 10 +8805 1997 16292 1 +9899 205 16292 1 +10785 205 16292 1 +2344 787 16332 4 +1711 722 16347 11 +10059 2027 16423 34 +230 1758 16432 16 +3183 244 16474 31 +9526 1730 16519 1 +6071 1361 16565 1 +3593 363 16598 12 +8365 1974 16601 8 +7432 1804 16688 41 +8703 806 16695 2 +6435 2082 16698 9 +5596 1116 16758 44 +6059 177 16774 2 +8716 1114 16800 1 +10539 1441 16845 4 +6899 1040 16891 1 +7578 981 16891 1 +1587 481 16891 1 +4447 43 16891 1 +2118 1999 16939 1 +8589 1054 16947 4 +1745 667 16950 1 +67 355 17049 5 +2887 538 17060 49 +2721 1674 17072 22 +9895 477 17072 22 +9476 667 17079 1 +1668 1535 17079 1 +6903 591 17089 4 +3589 1611 17089 4 +3317 1672 17146 80 +9229 1861 17152 25 +11107 341 17152 25 +2488 1423 17182 1 +11677 845 17204 13 +301 1180 17209 20 +9743 2169 17306 4 +10603 914 17393 29 +602 1096 17393 29 +6306 721 17477 5 +1266 1481 17477 5 +5818 1853 17544 1 +10959 349 17544 1 +1155 1785 17627 1 +8106 549 17629 4 +3979 1245 17629 4 +4568 408 17629 4 +2129 35 17644 28 +3001 44 17644 28 +10121 399 17645 88 +8985 1485 17674 13 +2081 1898 17675 1 +11163 304 17675 1 +2661 481 17679 8 +8452 1607 17683 30 +7955 1031 17767 1 +7753 553 17823 39 +8439 1541 17873 19 +1918 661 17873 19 +481 1477 17920 40 +7269 1759 17972 1 +6586 435 17980 1 +5407 2050 17996 3 +7581 364 18000 58 +6258 202 18003 16 +7846 1946 18004 2 +8616 256 18004 2 +1569 1340 18068 1 +6568 1119 18148 7 +10761 938 18227 1 +8462 2069 18325 1 +10080 133 18325 1 +661 133 18325 1 +9109 2201 18327 1 +7781 1 18327 1 +10176 163 18353 1 +2339 1681 18353 1 +5107 1263 18357 1 +2795 34 18410 13 +9649 416 18412 67 +2923 260 18454 2 +7262 1387 18455 12 +2367 2135 18476 11 +4843 479 18477 45 +3729 563 18533 12 +6523 922 18533 12 +1869 1934 18574 7 +6233 1795 18584 1 +6587 1765 18595 1 +507 437 18595 1 +3628 1157 18673 40 +1470 1045 18673 40 +10203 233 18738 4 +10094 625 18753 1 +5876 1273 18759 8 +7 327 18759 8 +8533 1196 18765 1 +8347 688 18864 2 +4659 83 18865 1 +7051 725 18865 1 +5097 1891 18878 1 +8212 311 18878 1 +813 1237 18890 5 +1687 1478 18987 1 +930 776 19027 5 +3699 257 19027 5 +2664 1328 19030 1 +9690 795 19046 1 +3416 1081 19105 11 +2119 1121 19105 11 +1247 1184 19132 1 +4082 716 19214 2 +1913 1486 19214 2 +7084 1639 19218 1 +3675 2183 19221 1 +929 1967 19225 2 +8673 2075 19237 1 +814 292 19240 1 +4216 1199 19243 14 +5715 1551 19270 51 +3216 1355 19321 18 +2500 1687 19354 2 +8331 515 19354 2 +5881 802 19417 1 +7675 503 19422 7 +10207 694 19446 3 +8046 596 19456 3 +6671 1973 19459 1 +3718 1841 19474 1 +1461 263 19485 22 +6668 1170 19503 6 +5747 1032 19503 6 +6130 1941 19598 30 +1995 2053 19599 1 +1437 1827 19608 1 +6164 837 19610 35 +10332 1796 19611 38 +2652 378 19611 38 +2506 734 19701 1 +5507 907 19730 57 +10227 764 19761 69 +8414 2013 19767 21 +2501 404 19786 1 +5315 1104 19786 1 +7067 135 19799 7 +10692 1669 19861 18 +1265 1560 19862 6 +11727 642 19862 6 +6891 1510 19921 35 +2505 321 19922 5 +8393 336 19955 1 +7614 1866 19955 1 +7076 1145 19988 32 +4984 1499 19995 1 +9010 703 19995 1 +9287 1512 20044 18 +2448 1520 20046 2 +8634 1237 20050 2 +6568 965 20050 2 +1245 574 20132 2 +3774 1779 20209 19 +6052 44 20209 19 +8738 383 20212 1 +5552 324 20214 54 +1769 1613 20216 7 +5086 772 20235 7 +2673 1312 20243 1 +650 1968 20247 1 +7474 591 20312 4 +928 786 20367 3 +8971 679 20424 11 +8757 337 20429 7 +7067 1865 20429 7 +9041 922 20463 1 +11611 96 20463 1 +7972 587 20486 1 +6428 790 20561 19 +9194 1180 20561 19 +8925 1519 20650 1 +4345 683 20650 1 +5281 929 20651 1 +3926 145 20656 4 +11386 1032 20714 1 +6360 439 20781 8 +8776 1763 20781 8 +7071 547 20820 1 +382 420 20876 59 +11169 189 20876 59 +7002 1268 20897 1 +420 2091 20964 1 +8343 558 21003 4 +1000 1179 21047 3 +913 853 21072 1 +9776 1972 21073 1 +161 1247 21075 2 +7372 1704 21076 1 +90 1100 21086 3 +36 2007 21124 25 +11962 128 21147 1 +9900 698 21147 1 +5310 2069 21155 12 +960 909 21161 10 +8858 792 21161 10 +9554 715 21258 1 +1853 139 21258 1 +4473 587 21326 5 +1486 1383 21326 5 +9350 1497 21336 72 +12507 130 21429 1 +1063 557 21432 48 +4668 277 21435 21 +1840 256 21467 13 +2299 2153 21497 12 +4294 17 21574 1 +2069 1502 21643 15 +10603 700 21643 15 +6313 484 21739 61 +719 586 21747 1 +3461 241 21760 1 +10218 1535 21760 1 +2344 22 21760 1 +6675 616 21771 38 +1027 2199 21854 2 +6993 94 21896 3 +4360 209 21920 1 +514 21 21926 10 +6588 290 21931 1 +8170 1912 21931 1 +10762 1712 21938 1 +6853 490 21938 1 +1047 1008 21962 51 +11045 741 21970 22 +8033 1461 21970 22 +3282 1638 22056 2 +6709 206 22059 76 +6930 1198 22059 76 +5868 798 22059 76 +7276 721 22062 5 +4349 1481 22062 5 +9649 75 22149 44 +1665 1274 22156 1 +10066 1999 22160 1 +6475 1674 22213 1 +5579 228 22265 1 +4614 192 22282 1 +2760 376 22295 3 +6805 1100 22295 3 +8382 1421 22305 57 +1922 17 22347 34 +6897 592 22349 9 +8708 848 22368 6 +1415 559 22372 42 +4497 698 22378 36 +5327 1910 22404 7 +365 292 22404 7 +4874 1421 22405 1 +1813 781 22405 1 +11085 828 22406 18 +768 1349 22407 29 +8276 192 22407 29 +2344 2194 22419 1 +3536 8 22419 1 +8046 1921 22482 46 +1627 281 22482 46 +2514 1195 22515 1 +4629 1623 22587 15 +3902 579 22587 15 +1915 1731 22617 38 +6535 237 22628 5 +4039 1292 22664 1 +3542 864 22667 2 +10310 426 22682 1 +6860 299 22690 1 +9968 239 22690 1 +7185 1277 22690 1 +6113 387 22690 1 +9981 1760 22756 37 +711 442 22756 37 +4375 554 22757 15 +10575 1648 22757 15 +9347 1350 22787 2 +4132 1913 22830 18 +8591 289 22830 18 +285 1508 22849 51 +469 836 22868 8 +9016 2147 22935 2 +8097 55 22935 2 +7820 1454 22941 64 +9084 1937 22978 13 +3828 92 22978 13 +7568 173 22978 13 +10452 271 22998 2 +11471 1035 22998 2 +3479 1318 23013 6 +2517 519 23020 2 +5698 1124 23110 4 +10720 1884 23114 25 +8910 318 23114 25 +1028 774 23193 48 +8871 1081 23199 3 +1273 1121 23199 3 +1349 1444 23208 46 +8551 955 23226 2 +9859 1070 23226 2 +10358 966 23249 44 +11374 977 23257 30 +10142 581 23280 1 +1608 975 23344 16 +6284 128 23344 16 +2720 1099 23344 16 +7227 724 23346 23 +5803 332 23365 5 +7536 1658 23381 1 +769 1070 23382 63 +814 15 23397 43 +8514 1158 23397 43 +10872 633 23484 1 +9415 617 23484 1 +6990 124 23484 1 +6403 1743 23495 1 +5143 1943 23504 1 +11883 259 23504 1 +183 573 23515 1 +5585 377 23541 1 +2943 300 23569 26 +7738 544 23569 26 +3239 1671 23572 37 +7533 297 23574 1 +11425 758 23574 1 +405 942 23594 16 +6540 1001 23595 37 +1851 1201 23595 37 +4590 234 23601 38 +7256 1204 23601 38 +8044 348 23601 38 +337 764 23601 38 +4466 674 23607 10 +7290 612 23687 1 +7213 968 23713 7 +4514 1195 23726 73 +5675 491 23727 1 +8189 265 23727 1 +4097 585 23789 1 +10128 1390 23789 1 +1302 227 23789 1 +10831 345 23864 4 +412 667 23870 4 +7883 1128 23910 10 +6840 1042 23910 10 +10894 32 23910 10 +1506 73 23989 1 +7210 2129 23989 1 +3586 1878 24024 4 +4088 223 24031 4 +5875 1950 24050 5 +4674 252 24050 5 +7909 1914 24054 28 +7081 1560 24110 3 +6629 1288 24124 29 +10709 1707 24125 2 +90 427 24128 8 +10779 479 24128 8 +10099 862 24128 8 +4789 701 24134 25 +9476 2137 24145 4 +1040 65 24145 4 +6814 1402 24147 1 +7006 1232 24152 1 +5068 2113 24192 1 +3411 89 24192 1 +7278 303 24227 1 +6065 549 24228 23 +6750 871 24228 23 +8651 521 24228 23 +1762 753 24265 15 +6103 28 24265 15 +1180 1305 24265 15 +5291 1443 24272 40 +10050 1856 24282 1 +2025 348 24309 7 +3144 1457 24332 29 +2287 249 24401 1 +4083 1179 24424 58 +3389 1023 24508 22 +4164 942 24508 22 +8851 485 24508 22 +8600 383 24555 51 +6471 1973 24644 7 +391 1320 24657 1 +1835 853 24695 4 +10987 536 24708 1 +11259 810 24774 70 +2337 1943 24821 2 +11299 959 24905 1 +3766 1683 24954 1 +10564 519 24954 1 +4526 53 24985 7 +11300 388 24985 7 +730 908 25011 2 +7688 1294 25011 2 +10246 1429 25017 1 +11492 778 25044 60 +11551 181 25053 21 +10593 1603 25053 21 +657 904 25061 1 +8812 1871 25120 7 +5917 134 25120 7 +3389 1241 25150 36 +166 151 25211 4 +7475 1624 25212 1 +980 1296 25278 2 +979 363 25278 2 +7868 1650 25284 2 +10033 846 25285 5 +10004 42 25285 5 +3207 1286 25289 2 +7137 2026 25329 5 +8797 936 25331 7 +3731 168 25331 7 +6027 457 25376 1 +1738 1062 25376 1 +8873 1150 25442 38 +6368 494 25443 1 +121 1876 25444 1 +11758 865 25448 9 +1967 1255 25476 6 +1043 208 25476 6 +6166 274 25505 1 +7370 928 25545 35 +8313 309 25545 35 +4044 965 25545 35 +629 859 25579 1 +1945 548 25582 2 +5430 638 25587 1 +5881 337 25587 1 +4865 316 25587 1 +1817 801 25592 1 +10518 491 25592 1 +634 1163 25605 13 +319 1927 25665 6 +11805 105 25668 1 +5439 384 25681 1 +11963 388 25681 1 +5106 1905 25688 1 +8730 245 25699 1 +4132 945 25726 1 +10668 686 25726 1 +10308 1559 25814 8 +8215 745 25827 26 +864 131 25876 1 +6865 1718 25878 1 +8455 1244 25883 13 +7710 708 25913 1 +6499 561 25913 1 +10235 2179 25922 39 +10858 359 25950 1 +2577 870 25970 1 +7819 1364 25976 1 +8570 78 25983 2 +1944 1342 25983 2 +5878 1160 25993 22 +1607 2200 25999 1 +6251 2 25999 1 +2194 1956 26059 2 +3823 246 26059 2 +727 246 26059 2 +2617 636 26082 7 +9960 221 26157 6 +8358 126 26251 32 +10271 919 26251 32 +276 313 26251 32 +6495 1902 26301 7 +4633 300 26301 7 +4783 287 26317 24 +10044 1915 26317 24 +3667 1909 26400 1 +5605 1915 26426 46 +7370 1867 26430 6 +6160 375 26449 33 +8603 721 26473 1 +3216 1180 26542 9 +10426 2172 26543 33 +4779 30 26543 33 +9135 466 26634 1 +10326 1267 26682 5 +7925 183 26683 33 +595 1151 26683 33 +5744 439 26693 7 +3776 1763 26693 7 +8371 998 26712 1 +8767 192 26712 1 +1972 1408 26767 1 +9632 794 26767 1 +5141 1661 26780 1 +7528 528 26780 1 +2291 2015 26782 59 +2272 997 26877 25 +4813 1168 26877 25 +6 18 26908 17 +7150 1460 26976 13 +629 467 26980 35 +3603 1183 27033 2 +9736 749 27033 2 +2369 122 27033 2 +601 494 27034 16 +7157 1080 27056 3 +5278 1196 27057 1 +3928 1366 27077 1 +4046 1899 27162 12 +7257 303 27162 12 +9644 1006 27165 36 +9406 902 27165 36 +7659 622 27236 3 +4557 553 27259 2 +4587 785 27263 91 +2826 1862 27266 1 +9618 340 27266 1 +2701 24 27348 6 +5646 551 27353 56 +10614 1535 27390 6 +9470 495 27390 6 +9356 172 27390 6 +11055 58 27390 6 +8396 58 27390 6 +3868 94 27462 49 +1131 1509 27522 8 +7904 693 27522 8 +747 432 27529 51 +9707 2190 27566 1 +6693 12 27566 1 +707 940 27568 5 +871 381 27568 5 +7527 1723 27629 1 +2908 450 27629 1 +6124 29 27629 1 +4586 653 27636 11 +1893 777 27657 25 +6928 102 27666 1 +11934 194 27718 1 +3343 1483 27721 1 +1645 388 27756 43 +6527 1897 27762 2 +4561 305 27762 2 +4341 2086 27796 7 +6067 116 27796 7 +7186 1469 27797 1 +1394 703 27797 1 +2254 30 27797 1 +10681 1949 27838 1 +9059 216 27838 1 +7023 37 27838 1 +4172 593 27883 80 +8729 908 27883 80 +9489 1149 27981 2 +367 106 27981 2 +1932 291 27982 4 +229 1790 27982 4 +1711 208 27982 4 +11024 1002 28018 65 +7486 768 28018 65 +1278 1454 28022 33 +8993 1118 28048 1 +3113 844 28049 1 +3174 2128 28077 8 +9730 74 28077 8 +7212 1259 28108 1 +4488 1838 28195 1 +773 429 28264 7 +6080 74 28290 14 +10592 1000 28308 8 +2198 1202 28308 8 +2565 21 28330 2 +4253 358 28330 2 +5766 30 28376 1 +6828 556 28465 13 +7532 533 28468 20 +11412 1146 28469 1 +7793 1713 28470 12 +4627 1789 28473 91 +10103 1078 28478 1 +2689 575 28552 6 +10481 304 28571 1 +6147 505 28605 9 +12102 344 28605 9 +3035 983 28626 42 +27 599 28667 32 +10285 765 28736 1 +10634 1437 28736 1 +3289 1189 28768 26 +1617 1097 28825 68 +1944 527 28893 11 +4551 1675 28893 11 +754 1192 28926 1 +10040 893 28926 1 +9707 117 28926 1 +2683 1381 28944 2 +6985 1693 29031 1 +7948 509 29031 1 +5523 349 29055 1 +2402 887 29056 4 +4948 748 29056 4 +9424 1076 29068 3 +3246 1124 29093 1 +1188 435 29148 1 +1489 1011 29186 54 +11542 608 29244 41 +9135 1295 29284 16 +764 653 29290 8 +2993 1515 29290 8 +7671 34 29290 8 +3992 907 29387 1 +258 467 29428 27 +10333 710 29428 27 +822 1591 29430 2 +10914 1744 29431 1 +2278 1659 29441 40 +6578 543 29441 40 +3328 2134 29442 19 +3756 1100 29443 3 +846 173 29443 3 +8678 929 29443 3 +5498 304 29455 9 +11887 292 29455 9 +5869 1606 29529 52 +430 12 29529 52 +1849 584 29529 52 +9380 1740 29531 2 +6825 2082 29591 1 +3853 120 29591 1 +8497 1236 29639 1 +7954 882 29639 1 +7365 17 29639 1 +1017 3 29639 1 +8343 197 29639 1 +4480 1041 29640 1 +1363 1800 29645 12 +10039 402 29645 12 +3221 974 29666 1 +10877 252 29666 1 +1846 1652 29676 1 +7844 1499 29683 2 +11696 258 29740 1 +4167 1833 29740 1 +9318 36 29837 1 +439 489 29837 1 +11465 1019 29908 10 +8768 793 29963 5 +2631 46 30029 9 +10515 1510 30029 9 +5821 297 30029 9 +5121 349 30029 9 +3338 1771 30032 27 +8137 720 30035 3 +6357 853 30050 2 +2295 892 30050 2 +9830 457 30050 2 +10788 922 30075 1 +2730 1061 30075 1 +5205 1853 30171 1 +1127 330 30171 1 +11143 218 30173 1 +2955 1711 30187 1 +8778 1579 30188 4 +5610 531 30188 4 +10342 92 30188 4 +10066 1096 30202 1 +8268 945 30209 1 +7513 401 30230 1 +248 574 30230 1 +219 683 30232 15 +8760 94 30247 19 +508 575 30308 1 +1494 1395 30346 8 +10706 1240 30384 5 +10187 858 30384 5 +4435 443 30384 5 +6472 1769 30464 1 +11714 283 30528 15 +5588 906 30623 20 +5521 1961 30684 12 +7087 241 30684 12 +7742 1801 30713 1 +2868 401 30713 1 +3305 1953 30768 34 +1654 249 30768 34 +411 1142 30795 46 +3553 1060 30795 46 +9017 2153 30797 3 +9840 600 30799 11 +5947 1266 30865 61 +7126 1196 30929 1 +5996 1011 30935 4 +8062 99 30937 1 +10652 1558 30946 12 +2813 481 30946 12 +5802 1472 31003 27 +3637 528 31045 47 +1868 1292 31045 47 +8738 382 31045 47 +2044 1290 31046 2 +8675 1643 31048 22 +7685 559 31048 22 +3356 475 31082 15 +5686 1117 31087 77 +1741 969 31116 5 +8917 1832 31118 7 +7070 127 31134 3 +5996 1566 31135 1 +1098 1530 31146 3 +1547 1893 31149 1 +2419 29 31158 1 +10697 1683 31198 5 +3563 1048 31199 1 +7810 824 31215 1 +643 1292 31281 4 +3941 372 31281 4 +5171 484 31315 19 +5455 1646 31318 1 +4642 43 31322 7 +9652 367 31322 7 +5247 478 31387 8 +6336 1724 31387 8 +9465 2102 31389 1 +8985 1870 31392 2 +4165 637 31393 17 +11964 48 31492 11 +4028 1323 31492 11 +2477 831 31492 11 +5250 796 31538 2 +10015 838 31560 25 +9975 804 31571 3 +6997 1918 31572 3 +547 343 31573 1 +9711 2019 31611 1 +8443 183 31611 1 +1702 37 31690 1 +5234 1052 31691 25 +8217 420 31693 13 +6752 687 31720 8 +4230 1515 31720 8 +3024 1093 31734 11 +2009 1663 31759 1 +3550 859 31799 1 +731 1581 31895 31 +5443 367 31896 13 +4115 1264 31979 49 +7229 1511 32050 1 +9469 624 32051 1 +9616 1921 32074 1 +9318 281 32074 1 +410 1473 32096 1 +6625 847 32188 37 +10171 213 32209 1 +5184 1353 32244 32 +6986 1135 32294 1 +8674 1289 32387 2 +61 909 32406 1 +7046 565 32421 18 +10487 2202 32424 37 +3797 1570 32434 37 +11118 824 32509 2 +5693 1968 32514 1 +4651 234 32514 1 +974 248 32525 1 +9993 792 32584 3 +6313 2118 32624 16 +2838 84 32624 16 +2193 1512 32637 1 +8336 1729 32645 15 +11410 568 32647 36 +5222 6 32652 2 +5082 395 32657 1 +1411 730 32657 1 +8194 574 32657 1 +1753 2036 32662 3 +67 1386 32718 15 +2403 1434 32721 14 +2363 1250 32777 45 +1230 359 32781 5 +8302 1861 32839 1 +5096 1145 32843 12 +9599 171 32913 1 +484 741 32913 1 +5003 16 32913 1 +2085 861 32943 1 +8873 2016 32967 35 +1570 529 33003 3 +2194 736 33003 3 +6016 1887 33022 49 +12354 26 33040 4 +7342 469 33062 1 +731 728 33064 41 +5570 1164 33135 1 +6877 1038 33135 1 +6269 788 33137 22 +11363 1138 33137 22 +3584 276 33137 22 +4564 2134 33164 5 +1311 912 33178 6 +2140 543 33201 5 +1019 942 33201 5 +6265 1364 33256 5 +3086 493 33350 15 +2189 325 33350 15 +10954 252 33356 10 +4005 1610 33370 1 +9854 1435 33382 1 +8829 767 33382 1 +4675 473 33411 6 +9248 673 33411 6 +1524 271 33434 2 +5954 849 33437 1 +4959 397 33506 1 +1236 1562 33506 1 +5403 231 33506 1 +5083 12 33506 1 +339 12 33506 1 +4744 1441 33546 2 +6905 761 33546 2 +11121 1211 33566 1 +9952 393 33566 1 +5680 900 33651 9 +3433 1701 33674 1 +6159 509 33680 47 +4231 546 33681 8 +5238 1240 33681 8 +1950 353 33706 10 +1031 1028 33801 1 +10719 898 33820 19 +1068 177 33822 42 +2150 864 33823 19 +2314 836 33823 19 +8927 593 33838 7 +3634 911 33840 1 +2555 2071 33852 11 +2713 2174 33863 49 +865 347 33902 47 +8894 1253 33902 47 +925 2104 33908 16 +7261 396 33916 38 +3054 818 33916 38 +9994 324 33916 38 +4886 2119 33939 1 +4711 1501 33945 18 +4858 532 33979 3 +3807 1062 34057 85 +9742 1774 34062 5 +6287 631 34068 1 +4928 1620 34069 1 +7792 1408 34070 6 +9907 281 34073 17 +5372 1541 34073 17 +10579 1919 34075 1 +549 679 34079 1 +3489 662 34108 1 +6408 95 34108 1 +7039 1130 34108 1 +8162 2027 34110 7 +5628 453 34132 1 +2750 1729 34132 1 +7742 20 34132 1 +5330 186 34134 4 +2389 2165 34165 20 +2900 536 34186 16 +3691 1031 34268 1 +5385 965 34283 28 +12149 227 34305 15 +9696 84 34306 1 +596 1435 34312 28 +6705 120 34335 1 +8153 1674 34352 5 +3301 528 34352 5 +453 1823 34372 1 +11740 379 34372 1 +2535 391 34467 81 +3466 1442 34467 81 +6927 427 34480 30 +9089 75 34480 30 +7162 6 34492 44 +2053 673 34547 26 +10543 1994 34619 5 +3727 208 34619 5 +3138 1178 34703 3 +6822 404 34716 1 +8565 1798 34716 1 +2309 310 34729 20 +9081 221 34774 1 +9152 1711 34824 1 +6877 286 34824 1 +3634 798 34841 6 +6200 282 34856 12 +149 375 34887 2 +5887 862 34961 1 +1711 1142 34962 1 +8376 384 34962 1 +6573 1296 34964 1 +9070 906 34964 1 +381 1888 34968 12 +9239 314 34968 12 +1857 1538 34969 52 +3241 1477 35047 1 +2165 1491 35053 21 +5872 100 35053 21 +9904 1725 35075 5 +7003 1333 35138 5 +4385 432 35138 5 +6550 437 35138 5 +9490 1102 35139 1 +4376 1100 35139 1 +9191 1705 35150 48 +11204 1426 35153 2 +2185 776 35153 2 +4281 725 35166 6 +277 1857 35207 1 +2199 345 35207 1 +1588 799 35216 16 +1350 1403 35216 16 +1011 799 35216 16 +5336 1909 35237 1 +38 293 35237 1 +304 1261 35267 2 +662 941 35267 2 +2057 255 35274 1 +8925 2129 35345 2 +1497 1991 35356 4 +5136 680 35387 30 +1764 2202 35389 1 +2364 959 35393 4 +9106 1008 35437 1 +3030 1837 35456 2 +3422 76 35456 2 +10799 995 35473 1 +10442 658 35487 2 +4913 1471 35521 33 +3326 554 35524 4 +9434 847 35525 1 +11876 555 35525 1 +3426 356 35540 2 +2381 1823 35545 1 +8517 379 35545 1 +5198 1430 35573 3 +8136 1381 35599 1 +1075 2138 35620 8 +11140 219 35628 14 +3973 1329 35634 1 +7839 1782 35663 1 +4325 1304 35664 8 +5897 1947 35688 1 +299 255 35688 1 +9885 1628 35692 31 +1656 1984 35763 1 +2888 218 35763 1 +5845 179 35805 61 +6441 1126 35825 2 +4974 603 35830 1 +234 1261 35830 1 +6523 907 35831 1 +2376 29 35924 1 +1343 2136 35924 1 +9839 188 35926 1 +6843 885 35932 1 +598 1317 35932 1 +6717 2090 35989 11 +4463 2077 36001 31 +11742 780 36025 1 +2791 1829 36036 9 +5111 1446 36048 1 +15 1446 36057 12 +2087 756 36057 12 +93 800 36081 1 +4881 89 36131 1 +9736 2012 36208 1 +9076 190 36208 1 +3237 1723 36210 2 +9991 354 36213 1 +11883 638 36252 6 +8832 629 36304 1 +767 444 36322 4 +4527 140 36327 1 +5554 810 36329 40 +4003 1392 36329 40 +980 1345 36360 4 +8038 1833 36414 11 +2451 369 36414 11 +59 2017 36461 1 +12574 51 36491 2 +2395 1239 36564 1 +6035 963 36564 1 +5216 2095 36567 1 +9907 854 36568 10 +8158 1661 36595 32 +5175 541 36595 32 +5970 192 36603 7 +11487 930 36636 3 +10898 1072 36636 3 +5042 328 36680 9 +4479 855 36749 34 +901 228 36766 9 +11349 173 36766 9 +3923 667 36813 1 +8070 1791 36861 40 +6997 389 36862 28 +1285 2131 36867 3 +7181 71 36867 3 +11243 995 36911 6 +3016 782 36920 1 +9692 977 36920 1 +5885 443 36920 1 +4024 1343 36924 6 +8095 451 36924 6 +12332 218 36931 2 +10506 554 36935 1 +7317 341 36936 39 +2947 1800 37000 3 +2174 147 37022 1 +2261 235 37022 1 +2421 659 37022 1 +8805 110 37046 2 +10521 2158 37077 1 +1903 44 37077 1 +1554 1995 37157 31 +11944 405 37162 1 +4445 1166 37180 1 +2485 164 37180 1 +5111 387 37180 1 +1273 1086 37187 3 +8570 1025 37216 1 +9981 1797 37217 59 +6712 29 37230 19 +9632 1677 37273 42 +91 417 37319 5 +4142 224 37347 14 +3732 1787 37347 14 +9482 1851 37351 10 +11325 65 37375 5 +758 837 37433 3 +8992 95 37433 3 +8270 758 37466 21 +5507 1102 37476 1 +7324 1240 37528 4 +5719 1854 37576 11 +8071 348 37576 11 +2382 917 37616 13 +1296 772 37631 2 +8738 85 37696 1 +4501 2014 37772 13 +3729 1847 37801 19 +7732 1650 37835 1 +3719 709 37849 15 +1083 457 37876 3 +6311 918 37876 3 +5471 1797 37877 26 +425 1964 37886 1 +7026 238 37886 1 +10608 767 37894 3 +3607 1238 37894 3 +5315 197 37894 3 +8591 1717 37898 10 +5952 1638 37919 1 +11082 1160 37986 1 +11107 796 38078 3 +5541 540 38078 3 +5789 1625 38113 11 +6252 577 38113 11 +1838 1030 38184 23 +1614 1172 38184 23 +9489 948 38184 23 +6775 2186 38193 10 +7344 657 38269 6 +6518 60 38321 1 +10984 165 38380 8 +7159 1028 38380 8 +10790 1091 38468 1 +5633 283 38484 1 +10823 1301 38484 1 +4095 1810 38554 3 +4574 1626 38639 1 +79 243 38639 1 +9498 602 38729 18 +359 1179 38730 32 +8548 1657 38747 1 +7954 5 38757 1 +261 863 38757 1 +1055 1922 38847 1 +2616 2154 38922 13 +8036 1268 38940 1 +10342 100 38983 2 +2116 657 38987 1 +5813 1850 39000 1 +7164 2183 39006 1 +565 1977 39007 1 +6448 353 39091 20 +7114 304 39093 24 +2803 1109 39181 1 +6859 1921 39185 1 +6209 762 39187 1 +3187 276 39199 2 +5220 484 39228 1 +9442 383 39228 1 +10772 1020 39229 1 +3367 151 39248 20 +10631 410 39269 24 +7005 750 39288 19 +1338 580 39307 5 +4302 395 39364 43 +1612 1463 39387 8 +549 730 39387 8 +4777 216 39403 1 +7068 1955 39403 1 +4875 567 39406 1 +3858 858 39440 1 +3915 809 39440 1 +8119 1336 39440 1 +619 379 39473 1 +6738 48 39517 1 +10912 383 39517 1 +953 2086 39572 1 +8174 227 39591 28 +5245 1149 39591 28 +7342 703 39591 28 +8695 1669 39594 3 +5348 1032 39647 4 +1044 880 39685 10 +3402 1259 39720 6 +6282 3 39725 1 +9794 394 39725 1 +672 981 39742 1 +8382 362 39742 1 +2525 108 39761 4 +10742 1015 39761 4 +4647 959 39761 4 +1078 1836 39772 44 +1309 890 39802 15 +1679 627 39802 15 +5865 606 39807 4 +9926 330 39825 15 +3724 1347 39830 10 +4661 807 39830 10 +3554 828 39838 1 +9204 1616 39915 15 +3956 1882 39927 43 +692 271 40019 1 +10137 186 40116 30 +355 2077 40127 1 +2615 1787 40165 14 +4464 1826 40166 1 +3872 290 40220 2 +8904 1977 40235 7 +6445 851 40290 1 +4069 973 40306 1 +1447 2019 40338 4 +8187 183 40338 4 +12122 414 40391 16 +8504 2035 40395 7 +5195 167 40395 7 +5724 1496 40396 12 +7216 1318 40464 2 +2636 1011 40529 1 +7479 1543 40534 10 +7622 1205 40537 25 +9881 300 40550 79 +7688 1902 40550 79 +951 2157 40551 1 +553 1849 40558 2 +387 320 40558 2 +1944 187 40558 2 +6447 187 40558 2 +7824 1087 40562 5 +4742 602 40562 5 +3693 972 40576 7 +8832 1230 40576 7 +4045 455 40625 1 +1114 672 40674 1 +8517 468 40685 49 +1679 1019 40690 31 +8935 1360 40703 1 +7767 3 40786 1 +2176 2193 40885 5 +3593 9 40885 5 +9429 281 40984 10 +8184 1187 41047 57 +7804 561 41048 29 +4829 1687 41124 20 +9290 270 41130 31 +8014 2150 41149 21 +3534 52 41149 21 +1133 815 41167 9 +288 190 41201 2 +694 1162 41202 1 +7052 186 41203 12 +1523 711 41283 36 +5397 1304 41290 2 +5451 1914 41308 2 +8537 1289 41309 3 +7228 1165 41366 37 +4563 775 41374 1 +11506 750 41374 1 +5482 1860 41375 1 +2818 741 41377 21 +11052 1461 41377 21 +5006 1581 41411 2 +881 116 41483 2 +7094 1153 41483 2 +8511 897 41581 1 +7499 1746 41611 2 +5952 1437 41701 1 +10126 610 41701 1 +7449 132 41707 4 +485 2070 41707 4 +4691 1061 41799 1 +3022 497 41799 1 +3804 553 41868 1 +12339 171 41869 63 +7797 1448 41869 63 +7550 583 41869 63 +1100 1489 41918 12 +9373 1739 41958 38 +10472 1444 41968 11 +6380 758 41968 11 +10131 2148 42036 5 +1457 54 42036 5 +11961 490 42038 9 +5483 960 42059 36 +10450 1242 42059 36 +5596 1706 42062 2 +11069 854 42069 6 +5848 266 42069 6 +10730 1339 42070 1 +11438 29 42154 6 +10567 212 42154 6 +7426 1990 42158 3 +10167 722 42178 15 +4057 1932 42184 29 +386 1664 42230 15 +1428 27 42257 3 +8334 995 42257 3 +4904 1180 42257 3 +5838 1304 42274 1 +3132 1887 42317 1 +4966 330 42416 1 +2348 1889 42417 20 +685 86 42417 20 +1944 1606 42419 1 +3802 1029 42420 28 +8123 1685 42442 3 +7652 517 42442 3 +2185 24 42442 3 +371 1475 42443 6 +3860 366 42456 73 +8576 828 42530 21 +990 470 42531 11 +4532 841 42546 2 +6127 1141 42569 1 +3951 946 42575 6 +8745 1974 42641 42 +11076 1354 42674 28 +2236 848 42674 28 +786 1442 42687 23 +2467 760 42687 23 +9821 1252 42723 1 +7502 828 42745 1 +5207 423 42760 1 +567 347 42765 1 +2889 1800 42811 10 +308 1974 42813 5 +7939 254 42824 36 +4328 1320 42828 13 +8212 115 42832 1 +10211 1428 42841 8 +5596 60 42874 7 +5136 1166 42874 7 +962 2106 42934 1 +1464 54 43024 3 +9563 39 43035 14 +3498 529 43035 14 +6826 123 43035 14 +10336 216 43039 1 +9716 1647 43066 36 +8775 2058 43093 1 +7487 1618 43175 3 +2801 585 43196 37 +6231 1617 43196 37 +4592 752 43269 1 +7536 292 43328 33 +9395 1338 43420 51 +10739 285 43471 3 +12132 519 43476 3 +8430 1984 43478 3 +5146 218 43478 3 +725 274 43535 1 +12393 109 43535 1 +10696 181 43583 2 +7755 778 43589 1 +10155 630 43589 1 +175 373 43589 1 +8320 329 43589 1 +7666 305 43589 1 +5684 1509 43640 34 +3748 648 43663 1 +624 1628 43665 4 +5147 574 43665 4 +6199 2085 43669 1 +7845 117 43669 1 +8995 1675 43706 18 +477 527 43706 18 +5768 780 43731 24 +3062 969 43745 1 +9306 1737 43750 30 +6952 1531 43752 1 +1539 500 43776 5 +7657 1090 43801 11 +2225 1238 43815 30 +1143 1057 43843 1 +5686 2115 43855 9 +8285 195 43856 1 +7489 2007 43856 1 +1940 195 43856 1 +10768 1236 43873 58 +10170 2122 43962 57 +6734 1792 44020 34 +9816 831 44030 1 +8171 366 44053 1 +10031 1836 44053 1 +2662 1298 44104 1 +3570 310 44109 1 +2080 175 44115 23 +9639 1631 44118 41 +8720 571 44118 41 +1151 1226 44124 68 +4475 981 44126 1 +8775 1517 44136 55 +6195 2008 44192 2 +4849 117 44193 5 +11495 791 44239 2 +9378 1055 44254 37 +6270 1091 44254 37 +51 56 44254 37 +2058 388 44268 6 +3737 1814 44268 6 +10064 1514 44336 79 +6053 892 44349 8 +9397 1048 44436 30 +5646 1689 44460 21 +3912 1795 44468 7 +5609 1274 44491 3 +11969 434 44497 1 +6441 980 44500 22 +8758 1222 44500 22 +8026 1479 44570 3 +7122 258 44594 14 +8632 861 44614 3 +6674 745 44620 1 +11147 594 44620 1 +3336 863 44620 1 +3845 1385 44628 19 +11410 891 44629 1 +8432 1311 44629 1 +11030 1379 44661 35 +10509 487 44666 11 +2611 1119 44666 11 +6676 2106 44737 14 +10451 924 44769 1 +12310 348 44769 1 +10932 721 44774 11 +8288 789 44866 3 +8875 920 44869 1 +773 1795 44881 22 +10313 874 44929 1 +2074 512 44964 1 +97 894 45029 2 +7181 590 45032 13 +1651 231 45057 45 +5026 2120 45062 3 +431 1978 45080 1 +9956 433 45084 78 +8101 1425 45085 1 +1914 426 45085 1 +5443 351 45085 1 +7000 662 45088 1 +7127 452 45103 2 +11272 535 45105 1 +1554 1709 45106 7 +3111 468 45106 7 +2117 1725 45159 1 +8889 231 45160 15 +11237 1245 45231 3 +8030 1751 45234 8 +64 1474 45311 64 +8328 226 45311 64 +9939 502 45311 64 +2448 1498 45314 1 +1002 399 45316 1 +2955 1803 45316 1 +10806 742 45366 3 +9143 355 45367 4 +3699 476 45368 9 +10439 371 45369 1 +10313 1294 45369 1 +7022 769 45369 1 +3923 139 45369 1 +1197 2013 45376 1 +1781 1882 45382 1 +6345 2002 45390 45 +2500 1209 45391 7 +9790 1387 45396 15 +9235 697 45405 1 +5121 525 45411 1 +9087 2117 45415 53 +8688 85 45415 53 +3571 336 45459 21 +852 1438 45475 30 +7069 982 45574 1 +5777 313 45577 1 +7294 172 45577 1 +5212 50 45578 1 +9522 1887 45578 1 +6713 265 45578 1 +10546 1713 45606 1 +218 1277 45615 40 +8566 991 45626 7 +3098 1441 45628 18 +574 1060 45639 1 +3475 1906 45643 1 +3314 309 45722 6 +5809 531 45811 78 +509 248 45814 10 +2318 603 45814 10 +3002 1351 45814 10 +8306 861 45816 1 +499 956 45820 10 +9147 1228 45822 52 +761 638 45852 1 +617 1022 45853 1 +578 575 45904 1 +5969 588 45910 4 +27 1614 45910 4 +8600 209 45940 42 +6580 857 45998 36 +9713 1612 46012 1 +6626 1153 46015 11 +769 1539 46043 1 +3566 2014 46044 6 +8039 153 46044 6 +4080 35 46044 6 +5684 35 46044 6 +4647 117 46057 19 +11636 222 46058 12 +6506 185 46064 3 +2414 961 46095 2 +8045 1942 46098 1 +1025 1247 46125 77 +4956 1630 46137 1 +11724 735 46150 2 +6220 580 46180 6 +9183 1791 46200 4 +7319 1166 46225 1 +305 235 46265 14 +6709 1436 46266 8 +3388 356 46336 69 +3086 1850 46381 1 +3209 408 46391 41 +6054 1902 46469 9 +3428 396 46471 1 +3358 1405 46471 1 +8290 797 46471 1 +8049 1941 46475 8 +3084 261 46475 8 +11201 216 46499 1 +2514 502 46499 1 +3251 1069 46499 1 +4758 1234 46547 1 +761 968 46547 1 +5093 354 46552 19 +10149 1663 46573 77 +11921 349 46600 3 +70 81 46600 3 +959 16 46656 4 +6572 1258 46665 14 +6584 944 46665 14 +10635 944 46665 14 +8319 335 46724 3 +2827 1572 46728 11 +1515 641 46763 12 +1627 790 46763 12 +321 1869 46779 1 +9919 1107 46784 1 +276 490 46842 6 +4339 385 46842 6 +9138 731 46845 1 +6467 1830 46863 4 +8187 1382 46903 66 +6960 606 46904 1 +4073 1596 46904 1 +8674 1203 46920 2 +4998 36 46956 24 +7917 923 46958 2 +7419 557 46958 2 +6562 1602 46970 10 +9791 521 47005 1 +6557 2096 47007 18 +1779 106 47007 18 +8881 1864 47018 1 +4021 338 47018 1 +3528 1110 47027 1 +10866 393 47030 1 +5548 1404 47053 4 +103 1348 47054 25 +7443 854 47054 25 +1479 1592 47118 21 +2041 1388 47124 42 +4489 1366 47205 3 +9760 113 47219 1 +934 1583 47219 1 +8119 1481 47231 3 +9171 178 47249 38 +10376 251 47250 9 +3029 894 47255 12 +4385 1308 47255 12 +1477 460 47344 1 +3889 1987 47435 69 +2528 1221 47444 21 +10731 1341 47445 87 +6067 1534 47448 1 +694 830 47452 1 +4451 678 47454 1 +9070 517 47508 1 +8321 196 47508 1 +4328 2117 47530 16 +1866 1374 47558 1 +5095 1001 47571 1 +3428 259 47574 2 +4068 696 47612 1 +10296 1391 47614 1 +4350 811 47614 1 +8065 2063 47622 1 +7653 1950 47623 1 +10488 252 47623 1 +6096 2200 47653 22 +5567 340 47705 3 +3766 581 47760 58 +8850 1219 47764 1 +7235 983 47764 1 +5187 833 47776 12 +3216 120 47781 16 +6119 1034 47809 1 +8658 101 47821 1 +1340 906 47821 1 +10429 934 47898 1 +3510 1368 47911 2 +2344 333 47914 2 +9884 1535 47914 2 +10442 334 47914 2 +9664 1170 47929 1 +9046 539 47953 35 +6490 176 47953 35 +2791 225 47953 35 +4833 1230 47981 8 +2785 972 47981 8 +9510 1005 47987 1 +8223 2169 48023 28 +6157 2142 48030 5 +2313 60 48030 5 +8579 752 48032 4 +3583 1217 48041 1 +2170 721 48077 1 +7795 157 48090 7 +1831 1378 48090 7 +9414 667 48090 7 +9406 117 48091 49 +7012 887 48108 4 +4486 1125 48108 4 +5264 2183 48168 8 +10175 1088 48172 1 +9857 1604 48244 42 +6801 513 48249 53 +650 1106 48250 2 +1221 1096 48250 2 +5866 535 48250 2 +7066 1764 48296 1 +2513 438 48296 1 +6568 1665 48308 6 +6260 1201 48392 2 +650 1726 48393 1 +4977 395 48399 89 +9707 1376 48399 89 +7774 971 48477 19 +6688 1135 48477 19 +4006 1717 48478 53 +9721 566 48491 6 +10370 1710 48529 33 +9184 1340 48607 21 +1633 1630 48651 59 +2322 407 48651 59 +3158 572 48651 59 +11494 105 48651 59 +7510 988 48662 20 +1630 1535 48694 36 +2065 492 48696 1 +4509 647 48725 2 +1585 852 48729 3 +9350 1234 48737 3 +3099 458 48759 1 +8667 1708 48759 1 +1380 36 48759 1 +5602 680 48776 1 +9659 1513 48783 8 +2218 1285 48842 3 +9986 630 48846 5 +10780 452 48846 5 +6326 140 48848 51 +9429 1615 48869 14 +11842 856 48900 9 +1252 1825 48906 1 +7369 446 48927 1 +4872 522 48927 1 +1985 795 48944 6 +1791 526 48945 1 +11551 419 48949 29 +3480 159 48950 2 +2048 1377 48950 2 +618 887 49000 55 +9029 1315 49000 55 +9699 910 49046 1 +8189 1393 49060 5 +1657 809 49060 5 +10310 1562 49063 1 +2495 657 49103 1 +8319 940 49177 1 +4607 176 49177 1 +7260 1086 49177 1 +373 27 49177 1 +5176 1794 49194 20 +5660 436 49195 8 +10206 132 49195 8 +1884 1738 49198 11 +5505 1117 49202 1 +1129 958 49233 18 +287 1244 49233 18 +7309 402 49233 18 +11120 1476 49245 16 +12099 296 49250 5 +11392 500 49255 2 +979 1702 49255 2 +10661 1137 49260 2 +10013 1517 49311 14 +677 315 49324 1 +1543 5 49324 1 +5509 278 49338 1 +4628 1026 49432 1 +3071 1176 49432 1 +9865 1991 49440 1 +8402 211 49440 1 +7357 146 49503 1 +3113 1790 49503 1 +7995 249 49511 59 +4480 2028 49513 4 +3728 829 49522 4 +5167 366 49606 1 +3416 1801 49626 44 +4443 1742 49658 4 +10366 460 49658 4 +9349 438 49747 1 +11637 989 49769 30 +10444 740 49769 30 +6978 362 49773 4 +5385 1314 49811 71 +2601 85 49815 2 +12359 35 49815 2 +8546 829 49857 14 +7216 869 49892 5 +557 1954 49906 28 +10657 248 49906 28 +3492 542 49980 1 +9493 828 49994 35 +4109 698 50002 4 +1360 1054 50031 70 +4521 789 50064 1 +9082 592 50066 74 +1831 1537 50100 31 +453 665 50100 31 +11670 210 50182 1 +737 1744 50182 1 +8139 1806 50185 2 +7943 992 50230 1 +237 1210 50230 1 +9547 1167 50242 1 +4034 1035 50242 1 +1485 1907 50276 1 +5229 295 50276 1 +3783 1058 50314 49 +4102 1144 50314 49 +7912 739 50314 49 +10842 1 50397 1 +10431 1081 50470 3 +5405 294 50507 30 +4189 969 50514 3 +545 710 50514 3 +3158 430 50514 3 +8395 979 50544 2 +4189 77 50550 11 +2212 1919 50550 11 +7054 1385 50567 9 +2706 9 50645 13 +6566 345 50645 13 +2683 1560 50715 7 +2716 830 50813 49 +4074 793 50870 2 +10793 338 50870 2 +2248 375 50891 15 +8347 803 50893 4 +6681 948 50893 4 +2483 451 50893 4 +3726 164 50904 4 +6277 1762 50904 4 +8051 693 50932 1 +9734 1655 51028 2 +8515 772 51052 20 +9816 1193 51052 20 +9262 229 51086 2 +3033 1568 51086 2 +4970 832 51090 1 +8647 1674 51105 3 +10966 123 51105 3 +2780 2189 51145 3 +1901 2023 51170 14 +3588 179 51170 14 +4311 204 51174 18 +618 371 51177 1 +8978 1377 51251 9 +10442 825 51251 9 +1070 1259 51297 3 +11473 1195 51342 7 +7366 2023 51351 7 +962 1685 51353 1 +143 517 51353 1 +7115 2145 51371 28 +9788 141 51468 2 +5234 170 51477 38 +5242 457 51477 38 +2036 530 51477 38 +7070 420 51494 13 +3351 1114 51502 45 +6705 637 51559 1 +10505 1552 51560 16 +6056 650 51560 16 +10985 512 51564 6 +6054 961 51573 20 +9848 772 51573 20 +10031 63 51574 1 +3096 833 51582 11 +1810 1897 51594 21 +806 305 51594 21 +4973 363 51613 10 +10276 1838 51615 14 +1276 313 51627 60 +332 1765 51627 60 +6091 2109 51631 2 +446 93 51631 2 +6769 977 51652 2 +8676 210 51668 11 +1098 1444 51668 11 +692 1134 51672 1 +7351 257 51719 1 +5833 1478 51719 1 +7298 67 51720 13 +417 442 51804 1 +2750 1760 51804 1 +168 1051 51808 1 +2843 940 51808 1 +1679 318 51809 23 +699 1884 51809 23 +4286 908 51816 27 +9686 2192 51828 9 +4035 10 51828 9 +7330 1826 51865 23 +8846 251 51955 1 +1306 1322 51955 1 +2060 437 51955 1 +177 939 51967 75 +10399 2079 52000 6 +10185 123 52000 6 +7727 1613 52068 1 +2653 928 52167 33 +5443 168 52167 33 +3068 434 52219 1 +6067 348 52238 3 +3979 545 52243 10 +5836 43 52290 1 +8736 558 52305 39 +11861 784 52308 9 +7003 1437 52309 14 +9804 8 52344 27 +9537 578 52386 1 +8337 1558 52388 5 +7353 644 52388 5 +8177 1210 52408 9 +7951 970 52421 2 +1039 1232 52421 2 +8860 1075 52428 1 +7832 1850 52456 1 +10044 352 52456 1 +6620 1745 52492 46 +8625 1403 52524 1 +11300 843 52544 11 +1087 827 52545 48 +3798 378 52545 48 +11536 859 52630 1 +11283 128 52630 1 +5411 2016 52631 8 +9013 30 52631 8 +308 2070 52635 5 +5998 132 52635 5 +4155 133 52638 22 +7396 919 52660 2 +1383 1920 52665 3 +717 443 52728 14 +4557 201 52762 13 +4984 1985 52762 13 +3127 1604 52787 16 +4581 598 52787 16 +4605 1403 52789 14 +3406 427 52789 14 +4820 1105 52806 16 +2354 1097 52806 16 +10318 1479 52836 49 +8349 346 52836 49 +11097 760 52844 3 +4002 188 52860 41 +11142 915 52910 1 +5426 483 52910 1 +3735 1335 52928 55 +9059 867 52928 55 +5034 143 52929 1 +9548 451 52974 24 +9691 793 52974 24 +6515 1266 52974 24 +6988 1689 53023 12 +9760 1829 53024 1 +7805 1737 53025 1 +9567 1421 53065 1 +50 497 53086 13 +2660 353 53114 31 +9515 498 53114 31 +8712 85 53114 31 +7013 1266 53114 31 +10741 1769 53115 1 +3232 433 53115 1 +9859 835 53143 17 +4162 140 53146 1 +12063 65 53209 37 +1090 43 53209 37 +8099 917 53209 37 +11938 58 53209 37 +2335 1119 53209 37 +9322 1207 53224 1 +7006 995 53224 1 +621 965 53232 56 +2190 1198 53232 56 +6303 1215 53236 5 +1503 1912 53266 3 +10372 290 53266 3 +3131 1501 53270 1 +4754 256 53270 1 +6134 722 53277 1 +7104 1729 53279 1 +6754 473 53279 1 +552 1458 53281 2 +8385 707 53289 1 +6785 258 53289 1 +3002 168 53289 1 +5921 1886 53336 2 +7086 66 53371 4 +4978 608 53371 4 +784 1935 53373 1 +3529 251 53373 1 +9149 2073 53433 45 +6943 129 53433 45 +10014 1842 53437 45 +5631 360 53437 45 +98 704 53451 1 +2222 1498 53451 1 +12212 360 53458 1 +4643 1642 53476 3 +6525 1895 53542 83 +1685 34 53575 2 +7626 1681 53596 1 +2930 474 53597 35 +3911 1313 53600 18 +3714 1698 53677 1 +1661 504 53677 1 +1944 1029 53772 1 +11330 631 53781 29 +7457 1578 53793 1 +8665 1889 53807 55 +8509 313 53807 55 +7388 2157 53808 17 +297 45 53808 17 +10486 542 53895 1 +11955 222 53898 31 +11360 1139 53898 31 +5319 862 53981 40 +3979 1483 53983 21 +8081 36 54044 1 +9938 845 54078 6 +1740 1723 54096 2 +8670 883 54097 11 +3733 588 54137 23 +11138 1524 54137 23 +5648 90 54137 23 +8207 1551 54144 4 +8550 1926 54145 1 +1124 276 54145 1 +9770 26 54180 1 +2788 540 54193 58 +4692 195 54195 1 +3233 2007 54195 1 +6518 195 54195 1 +1638 1758 54230 42 +12327 205 54317 33 +5972 597 54317 33 +8996 670 54319 49 +271 1532 54319 49 +4950 1365 54320 11 +4271 89 54327 2 +11117 130 54335 1 +11577 1077 54335 1 +1851 1985 54352 36 +6993 624 54420 51 +4808 2046 54422 8 +6904 1494 54431 12 +9886 708 54431 12 +3779 202 54455 39 +609 1045 54464 2 +9684 612 54469 12 +7666 599 54469 12 +7487 1207 54492 34 +9218 1496 54520 7 +2286 1005 54522 1 +7219 163 54522 1 +5632 1382 54575 2 +4318 820 54575 2 +8335 1211 54635 5 +5160 991 54635 5 +11674 826 54636 1 +2124 602 54636 1 +12210 99 54734 1 +7922 844 54816 6 +4996 868 54829 1 +3174 719 54845 27 +3455 414 54852 1 +1989 257 54864 1 +9547 1660 54864 1 +10948 758 54914 52 +9356 469 54927 9 +11559 140 54961 1 +5224 355 54971 13 +947 1757 55002 25 +10375 1411 55015 1 +205 483 55015 1 +1516 1528 55016 10 +10500 131 55016 10 +1021 543 55016 10 +4208 2185 55028 14 +10817 17 55028 14 +2457 1838 55031 1 +11508 364 55031 1 +5590 1719 55033 8 +6964 1792 55106 12 +113 766 55116 2 +3455 1488 55145 3 +5414 714 55145 3 +1267 491 55189 2 +11324 348 55189 2 +2292 819 55192 9 +10350 729 55250 29 +10528 761 55275 69 +9773 1322 55346 5 +2571 970 55409 31 +9704 1232 55409 31 +10053 264 55414 4 +9792 722 55414 4 +320 779 55414 4 +810 1178 55415 10 +9186 1024 55415 10 +6644 1891 55442 1 +3362 1083 55459 1 +4652 1063 55459 1 +3308 56 55459 1 +1079 1012 55468 36 +12116 521 55470 24 +4497 371 55470 24 +3348 1310 55470 24 +1079 1607 55523 2 +10250 595 55523 2 +1467 1332 55570 19 +1796 328 55571 15 +1932 1290 55601 40 +4661 1444 55671 1 +4502 1063 55673 5 +510 1139 55673 5 +6334 500 55674 10 +4342 877 55674 10 +1464 903 55769 1 +3039 1617 55776 8 +9982 579 55776 8 +4242 419 55837 1 +7182 2029 55838 1 +5352 1706 55843 46 +6065 1227 55905 14 +2833 975 55905 14 +3916 829 55913 5 +5136 601 55918 1 +2485 2130 55931 13 +8843 72 55931 13 +2258 1908 55938 9 +1579 1107 55947 1 +1722 1034 55947 1 +2948 520 55972 29 +6347 399 55996 8 +676 155 56064 48 +11151 416 56149 16 +4096 1375 56166 5 +9471 1845 56189 6 +7215 532 56197 1 +3742 1689 56219 5 +9720 650 56221 1 +11181 763 56221 1 +4677 1852 56223 10 +7225 350 56223 10 +9592 1517 56224 55 +10267 963 56235 26 +9238 1706 56287 50 +10850 67 56287 50 +1089 363 56287 50 +3007 133 56287 50 +9149 1891 56299 67 +4775 525 56304 47 +8250 65 56383 2 +1062 200 56387 38 +4010 148 56390 6 +8092 1223 56391 3 +7180 202 56419 1 +8538 162 56419 1 +3743 1283 56444 46 +218 919 56444 46 +1281 839 56447 26 +1824 1327 56497 2 +7280 2010 56528 1 +6988 1755 56588 2 +7085 447 56588 2 +6809 447 56588 2 +9140 1386 56590 37 +9403 2162 56687 1 +508 40 56687 1 +7078 1963 56723 6 +385 572 56739 21 +7167 1046 56774 14 +10001 1785 56809 26 +4615 1746 56826 2 +3651 1247 56918 1 +4548 2157 56981 1 +5842 1607 56984 38 +8476 1074 57007 2 +9972 2170 57077 31 +6704 748 57083 4 +12571 42 57083 4 +1883 962 57083 4 +7766 450 57083 4 +5135 1598 57171 11 +3104 1806 57193 37 +3560 1650 57195 2 +11584 372 57264 15 +9361 1830 57264 15 +5856 1880 57278 1 +6013 322 57278 1 +4916 322 57278 1 +7912 1673 57286 17 +3993 527 57286 17 +4454 1588 57344 1 +1442 1141 57351 3 +2245 710 57360 1 +5721 1806 57368 32 +807 1497 57381 21 +1027 2092 57387 3 +2651 812 57398 73 +1680 480 57400 1 +2996 1267 57423 4 +1824 1312 57468 40 +3142 580 57468 40 +6406 215 57493 1 +6857 1196 57493 1 +3568 1704 57497 32 +6707 584 57592 1 +6800 1251 57592 1 +12111 295 57597 43 +4252 776 57662 1 +7356 1426 57662 1 +5838 2109 57673 10 +2132 1142 57676 1 +3813 1539 57677 1 +4926 291 57677 1 +163 454 57677 1 +10904 966 57749 3 +9187 1404 57768 85 +9856 108 57768 85 +6023 1719 57855 27 +8507 749 57877 1 +9734 2163 57878 35 +10894 849 57945 2 +1110 1353 57945 2 +1435 1213 57950 1 +3267 989 57950 1 +4494 1937 58030 1 +2959 265 58030 1 +8586 1995 58051 8 +7559 1276 58091 60 +9940 1260 58095 20 +4046 1459 58104 21 +6458 707 58120 7 +10316 292 58120 7 +1707 1203 58120 7 +10126 54 58122 2 +5523 1606 58124 15 +3060 596 58124 15 +8533 635 58200 2 +2993 154 58244 3 +2921 1841 58244 3 +932 864 58336 2 +5290 1106 58349 10 +9624 238 58414 6 +3428 337 58427 1 +6682 163 58429 1 +4008 1391 58489 17 +5256 453 58489 17 +961 501 58489 17 +8242 899 58497 9 +8960 243 58497 9 +8932 945 58497 9 +6875 567 58497 9 +8925 1483 58591 1 +1377 432 58591 1 +8804 287 58591 1 +10798 541 58670 48 +2709 38 58670 48 +5864 1167 58670 48 +5616 24 58699 2 +2336 1136 58699 2 +3976 2115 58703 13 +194 87 58703 13 +11436 861 58773 32 +4477 1060 58773 32 +9895 281 58773 32 +7817 1318 58799 30 +554 2104 58810 12 +6175 1554 58897 6 +12038 134 58903 18 +10440 885 58903 18 +2160 264 58925 44 +8286 125 58969 1 +11331 777 58977 44 +10303 1067 59015 51 +5986 439 59097 2 +3498 396 59111 11 +9051 1874 59117 19 +7359 507 59121 4 +10844 247 59122 1 +11463 970 59130 46 +12431 98 59142 6 +10023 828 59142 6 +10081 190 59142 6 +5787 544 59142 6 +9096 1363 59210 1 +6218 989 59241 2 +1688 1260 59251 1 +3375 1602 59348 7 +10013 934 59349 1 +5234 1268 59349 1 +6780 2051 59405 1 +7464 1398 59408 26 +9184 881 59419 1 +9081 1405 59430 1 +7999 608 59431 2 +620 370 59467 6 +5597 1996 59470 19 +7861 1430 59530 55 +7564 744 59530 55 +8659 1450 59536 16 +10405 440 59536 16 +3260 312 59536 16 +2166 931 59595 5 +1646 743 59595 5 +4089 1588 59616 36 +3540 1925 59624 2 +2742 610 59642 1 +9716 29 59645 16 +9379 1045 59645 16 +7050 1178 59672 6 +6348 117 59672 6 +9333 1562 59673 1 +9674 443 59677 13 +220 1605 59773 6 +4052 765 59831 8 +7134 1462 59908 1 +4580 740 59908 1 +3708 2067 59979 1 +5066 550 60017 1 +10039 349 60030 1 +9065 19 60058 1 +5334 1766 60129 1 +1752 436 60129 1 +6519 273 60133 13 +5513 1611 60133 13 +8084 591 60133 13 +7877 618 60134 14 +9848 1584 60134 14 +9851 1610 60143 11 +10671 769 60223 32 +11113 1104 60241 1 +1210 96 60241 1 +11097 1002 60241 1 +673 1829 60242 1 +8812 373 60242 1 +2580 88 60250 1 +11769 832 60292 1 +1158 442 60358 2 +5667 1484 60358 2 +247 276 60358 2 +10298 486 60435 32 +226 1545 60448 20 +3470 1513 60486 28 +7390 710 60524 15 +10439 93 60528 31 +11495 497 60528 31 +3207 934 60528 31 +6431 1119 60600 24 +9823 583 60616 39 +3287 52 60621 9 +7392 1829 60621 9 +8792 321 60621 9 +3104 1432 60622 26 +950 587 60622 26 +5125 1154 60631 1 +9217 1048 60631 1 +1444 812 60657 27 +308 522 60683 1 +9712 193 60687 1 +8081 1985 60770 33 +4188 600 60851 52 +10405 621 60851 52 +1460 1994 60854 8 +5950 1659 60914 1 +11640 830 60939 9 +4609 1372 60939 9 +10182 1854 61028 20 +200 32 61075 2 +5837 959 61075 2 +1259 1912 61095 2 +9165 1028 61096 9 +6593 1296 61140 4 +2570 1716 61172 42 +6413 1525 61173 2 +2085 1913 61178 1 +1718 289 61178 1 +1754 635 61185 1 +2024 1567 61185 1 +5305 365 61185 1 +10541 334 61206 31 +657 1103 61206 31 +10196 765 61206 31 +3528 377 61231 44 +11025 362 61299 22 +6271 385 61326 29 +9835 1794 61326 29 +1631 1349 61377 1 +8715 877 61388 5 +12409 172 61388 5 +8553 1153 61388 5 +8705 374 61408 3 +10334 814 61408 3 +3120 346 61408 3 +8471 1511 61443 8 +5010 691 61443 8 +8424 123 61469 1 +10329 288 61502 1 +1497 1719 61517 20 +5110 483 61517 20 +6142 1332 61518 15 +10713 1376 61520 1 +8648 601 61591 1 +6108 1601 61591 1 +5162 1282 61627 1 +1572 542 61664 1 +10162 1064 61690 1 +6479 94 61698 30 +7186 1737 61704 1 +8345 1348 61716 1 +9565 590 61787 10 +6869 1400 61787 10 +1790 704 61798 1 +8110 39 61798 1 +8666 427 61809 24 +6927 1069 61830 9 +5817 972 61892 77 +3300 582 61905 14 +8365 1859 61928 1 +3691 1572 61929 1 +5739 663 61937 1 +3347 1687 61944 22 +9680 515 61944 22 +5772 1839 62000 7 +1613 363 62000 7 +5744 56 62054 1 +9953 1564 62080 49 +487 60 62080 49 +1290 578 62080 49 +5383 878 62081 8 +5655 1291 62081 8 +6002 56 62091 5 +1084 889 62096 3 +3434 1206 62147 2 +257 1318 62148 4 +5973 875 62228 20 +10016 1046 62264 1 +829 686 62264 1 +3216 32 62264 1 +774 407 62268 6 +7074 70 62281 43 +9601 1205 62294 1 +3264 499 62312 1 +6698 290 62312 1 +6613 1413 62312 1 +620 642 62325 11 +5676 706 62409 4 +9915 2134 62410 1 +10305 450 62416 1 +11389 1059 62486 3 +7391 315 62493 3 +5123 279 62493 3 +2377 1364 62504 1 +9745 838 62504 1 +7963 890 62505 2 +3126 1904 62512 37 +7050 1712 62524 3 +5926 519 62567 3 +10771 1737 62633 13 +2650 660 62634 2 +6050 791 62640 19 +10124 1176 62642 4 +9613 971 62642 4 +11693 888 62643 4 +7148 428 62643 4 +2588 937 62644 1 +1457 1265 62644 1 +2742 1895 62688 2 +7177 757 62694 2 +7343 621 62783 5 +10534 1612 62788 11 +9165 2014 62824 5 +7288 1124 62918 24 +2137 442 62972 1 +5095 1678 62972 1 +7039 1841 62973 1 +9640 949 62977 16 +10996 220 63044 52 +7656 1513 63125 5 +432 1230 63143 1 +5603 337 63175 4 +9054 1717 63262 6 +81 1113 63302 46 +210 403 63330 2 +117 870 63365 1 +9060 2026 63395 19 +4746 176 63395 19 +8382 2069 63407 15 +10169 133 63407 15 +9084 133 63407 15 +1801 133 63407 15 +536 1254 63494 68 +8721 1537 63546 1 +7074 1265 63572 69 +3032 1670 63634 1 +8105 401 63634 1 +6648 122 63638 10 +5898 2146 63670 5 +2613 56 63670 5 +6917 869 63729 1 +6311 1333 63729 1 +5507 2182 63760 1 +6951 1006 63771 1 +11080 51 63802 16 +63 1099 63812 70 +11655 25 63812 70 +9914 1796 63881 1 +4658 406 63881 1 +3611 97 63896 72 +2541 1982 63896 72 +7060 941 63933 40 +8378 1243 63952 2 +7656 1205 64007 11 +9896 179 64008 69 +4296 2185 64011 1 +8409 797 64023 13 +5948 2030 64043 15 +7006 742 64070 3 +6711 1460 64070 3 +6816 879 64100 4 +7724 1267 64100 4 +3824 36 64111 9 +3408 940 64116 27 +11554 596 64116 27 +5858 1337 64118 1 +12109 472 64192 7 +2563 2158 64205 1 +2080 44 64205 1 +8771 969 64207 3 +9456 960 64255 2 +7855 716 64262 6 +5126 394 64346 39 +755 115 64433 3 +9528 1035 64437 1 +7401 567 64439 84 +2252 1405 64439 84 +11608 209 64439 84 +10245 21 64439 84 +7668 576 64527 1 +6738 1435 64603 1 +6538 24 64685 73 +2423 1631 64716 27 +6949 1925 64725 8 +4080 198 64725 8 +8014 79 64725 8 +1457 79 64725 8 +62 1913 64796 1 +11126 289 64796 1 +8653 1020 64872 1 +11031 746 64878 6 +8264 1456 64878 6 +1009 496 64879 7 +5965 1652 64920 4 +9199 156 64927 3 +11488 473 65009 1 +5104 1033 65013 1 +3963 771 65088 38 +100 1179 65089 1 +10032 787 65115 14 +11257 877 65115 14 +11005 1194 65192 4 +4024 1078 65256 1 +5659 6 65264 56 +11662 221 65281 4 +8716 1981 65281 4 +7972 863 65285 1 +5498 1314 65290 25 +6794 1974 65357 1 +7010 1225 65363 46 +10104 655 65363 46 +10870 1341 65398 60 +5999 919 65407 42 +301 1653 65489 2 +7663 437 65489 2 +9603 1522 65506 6 +5506 75 65506 6 +2299 605 65506 6 +10852 1028 65528 6 +10616 186 65528 6 +6264 427 65528 6 +4124 1174 65622 46 +7706 899 65691 1 +9048 1535 65718 1 +4946 2181 65719 10 +8828 21 65719 10 +5194 1579 65720 3 +5779 1645 65724 3 +2557 645 65727 1 +10780 1011 65728 1 +2771 696 65728 1 +4360 681 65816 1 +3099 959 65816 1 +7548 2187 65880 21 +6217 15 65880 21 +7000 1877 65891 6 +6153 1257 65911 14 +10265 1548 65950 1 +5478 324 65955 22 +8180 1453 65955 22 +9320 425 65955 22 +7598 802 65982 1 +11331 1174 65986 1 +8244 1861 66083 24 +5816 341 66083 24 +4215 238 66085 3 +1605 1363 66088 1 +4632 578 66097 33 +11159 1274 66106 4 +10348 1709 66185 1 +1106 493 66185 1 +7699 725 66209 3 +3497 1025 66209 3 +9109 215 66215 34 +641 1489 66258 39 +2156 67 66321 39 +8115 1816 66321 39 +5670 1769 66408 18 +1421 650 66455 1 +2653 1195 66459 1 +6771 546 66459 1 +10303 650 66462 21 +4214 1966 66478 1 +10182 999 66480 20 +1756 1981 66570 1 +1886 1232 66574 1 +6512 937 66574 1 +255 42 66578 9 +11972 134 66578 9 +10610 579 66665 9 +3258 1605 66666 1 +2846 1135 66729 5 +10168 746 66742 1 +7835 1412 66742 1 +8001 1243 66801 2 +1773 1712 66836 23 +8789 490 66836 23 +1177 1378 66873 1 +4642 824 66873 1 +1201 1768 66879 3 +4411 434 66879 3 +8880 1834 66888 1 +4175 94 66888 1 +2242 2067 66913 1 +2345 1057 66915 15 +6516 1116 66988 12 +6436 1414 67073 11 +10353 1168 67080 1 +5959 1034 67080 1 +6275 1322 67157 6 +1016 880 67157 6 +6033 1938 67177 3 +1280 434 67187 22 +7676 2200 67195 18 +26 1502 67200 30 +262 361 67291 5 +12087 589 67293 28 +3957 1613 67293 28 +8265 923 67296 1 +11434 452 67335 1 +9633 1315 67335 1 +4280 1477 67336 14 +2887 116 67342 1 +3785 910 67391 1 +2559 805 67391 1 +2488 457 67392 33 +8626 1079 67416 3 +4528 1123 67416 3 +8267 1828 67422 7 +11193 1324 67423 1 +10980 165 67457 1 +6719 2037 67457 1 +3378 1118 67462 1 +3683 1260 67474 9 +9110 942 67474 9 +614 852 67475 8 +1969 549 67558 1 +5460 2193 67592 2 +4534 9 67592 2 +5835 685 67595 18 +6180 1797 67600 1 +2274 405 67600 1 +6565 840 67604 35 +8926 1124 67610 1 +8399 161 67610 1 +3160 1250 67667 1 +5571 952 67667 1 +2178 1011 67759 3 +1234 1191 67759 3 +7595 1013 67777 3 +2952 413 67777 3 +4431 325 67779 1 +5709 1630 67829 1 +8381 572 67829 1 +4853 888 67830 3 +9362 2143 67833 1 +4170 1410 67901 17 +9139 667 67952 6 +8199 1929 67980 35 +7435 329 67984 2 +3860 103 68041 5 +6411 480 68125 1 +3063 626 68125 1 +7210 2089 68175 1 +8427 1101 68228 6 +11702 848 68228 6 +8022 139 68292 17 +4859 1131 68352 1 +2510 1610 68357 1 +5273 651 68400 9 +276 142 68400 9 +4011 527 68438 2 +716 1675 68438 2 +10442 329 68449 10 +7231 661 68459 42 +7858 1541 68459 42 +5985 1207 68466 1 +10956 1306 68467 1 +4152 1097 68519 29 +9631 1904 68530 26 +1161 2105 68550 26 +10333 1432 68623 29 +741 136 68698 60 +10173 779 68722 16 +5823 750 68740 1 +1583 1944 68758 1 +4020 337 68759 1 +1052 1125 68760 1 +9028 1605 68784 3 +9974 597 68784 3 +11186 1154 68880 66 +6202 227 68975 3 +2949 540 68987 1 +349 772 68990 8 +9076 907 68990 8 +2754 523 68990 8 +8685 937 68992 2 +669 316 68999 14 +3592 382 68999 14 +4653 731 68999 14 +7588 773 68999 14 +3705 944 69002 58 +8571 13 69011 1 +5185 1618 69011 1 +2397 571 69011 1 +3705 408 69029 39 +7924 2123 69030 4 +9767 1307 69037 1 +3743 1970 69044 23 +7744 232 69044 23 +10379 1307 69046 16 +3469 212 69068 1 +1679 1171 69101 8 +11177 517 69101 8 +1021 514 69101 8 +411 2099 69104 12 +7084 2045 69203 2 +11109 39 69203 2 +3228 118 69203 2 +11552 660 69265 1 +9166 156 69265 1 +4587 663 69289 66 +3635 558 69366 8 +1473 978 69386 1 +1751 1224 69386 1 +8519 700 69386 1 +6594 2197 69485 23 +4823 1238 69497 1 +902 964 69497 1 +4129 343 69499 1 +6154 1150 69499 1 +7428 1457 69500 1 +3753 1444 69553 1 +10197 758 69553 1 +8776 140 69557 39 +4931 550 69558 30 +8753 1814 69577 1 +1862 1484 69621 1 +12282 383 69718 28 +10133 1353 69724 1 +2344 1931 69754 16 +5649 617 69820 36 +2876 411 69822 1 +1408 1270 69836 4 +11381 319 69837 10 +2920 1883 69837 10 +3444 1553 69847 3 +145 649 69847 3 +10235 1600 69866 38 +8497 857 69867 30 +6366 1293 69888 5 +257 909 69888 5 +3315 353 69893 2 +2531 2128 69894 30 +10123 106 69992 4 +816 1638 70043 1 +8113 564 70043 1 +8099 1402 70044 2 +4381 64 70097 1 +2115 1347 70097 1 +2839 240 70097 1 +9288 259 70098 58 +9605 1669 70102 68 +5803 592 70103 17 +9834 1490 70158 2 +1643 712 70158 2 +689 426 70220 1 +1963 1154 70316 28 +4992 1048 70316 28 +3317 1982 70332 36 +9291 1245 70373 1 +5286 880 70385 22 +9768 1322 70385 22 +10144 1647 70413 14 +5510 555 70413 14 +4484 569 70418 2 +9369 1995 70438 5 +8617 2087 70470 1 +4380 840 70546 8 +2242 2076 70547 3 +11000 126 70547 3 +793 1529 70548 28 +9530 1936 70573 2 +2977 1220 70580 3 +6835 88 70586 89 +6650 394 70658 1 +2408 411 70668 1 +10460 429 70699 23 +11250 922 70705 35 +6558 1280 70705 35 +4779 1793 70709 3 +11213 490 70775 1 +5262 168 70782 2 +11696 409 70783 10 +5587 1793 70783 10 +687 409 70797 1 +9100 799 70797 1 +2541 868 70797 1 +1602 126 70797 1 +828 1682 70807 1 +5985 614 70857 1 +10530 1106 70878 1 +1216 13 70891 29 +9827 113 70919 1 +2372 2089 70919 1 +8714 588 70930 1 +6624 2052 70969 22 +1698 304 70972 3 +11829 749 71065 3 +4553 1043 71065 3 +11199 410 71065 3 +2183 192 71138 1 +3940 1753 71228 1 +7830 1623 71231 46 +8618 579 71231 46 +7036 1696 71272 32 +1591 277 71272 32 +4155 367 71274 1 +1178 1735 71274 1 +3742 257 71287 1 +6918 372 71341 1 +3866 1256 71349 1 +367 121 71350 25 +814 452 71357 13 +3119 881 71357 13 +3529 807 71359 1 +1888 614 71372 29 +8518 1264 71378 5 +5973 2173 71432 2 +104 29 71432 2 +1216 1347 71458 1 +4154 396 71466 1 +2008 406 71473 7 +7198 933 71482 2 +6276 2097 71484 12 +8928 143 71487 15 +3268 2051 71487 15 +4677 8 71487 15 +5223 8 71487 15 +6018 8 71487 15 +5386 854 71552 42 +2560 1065 71564 1 +4790 304 71564 1 +2620 1256 71573 5 +2482 1625 71578 1 +6672 977 71658 39 +7811 189 71658 39 +1084 1036 71658 39 +11817 502 71660 62 +5910 1028 71664 56 +11727 142 71664 56 +5446 1032 71664 56 +310 568 71664 56 +4823 1018 71665 1 +4103 1885 71677 23 +1531 1287 71688 8 +6731 1338 71748 2 +4295 1143 71749 1 +8265 55 71749 1 +7802 478 71749 1 +10287 68 71786 22 +8283 1367 71786 22 +7009 859 71811 1 +11976 513 71823 35 +11954 509 71828 16 +11558 628 71830 5 +11727 7 71831 11 +9664 1387 71889 63 +3314 390 71889 63 +29 1551 71944 2 +707 1973 71978 49 +3082 692 71996 12 +3542 8 72003 4 +5390 703 72006 6 +4850 2168 72040 2 +1204 34 72040 2 +775 1439 72042 27 +11104 916 72061 9 +10627 788 72082 1 +5587 1912 72118 15 +2802 1977 72146 1 +6967 225 72146 1 +5559 1850 72148 8 +5882 352 72148 8 +2996 352 72148 8 +7797 2201 72211 43 +2697 537 72287 25 +5301 1534 72315 4 +1376 777 72316 24 +748 948 72363 2 +3102 2123 72426 15 +11816 600 72475 5 +5438 886 72548 5 +12090 402 72548 5 +6856 401 72594 23 +7436 818 72620 1 +6698 1017 72622 3 +10873 411 72656 3 +11875 395 72657 1 +4705 1548 72667 1 +5834 654 72667 1 +3798 1930 72759 61 +2505 1905 72790 6 +7580 1669 72831 3 +9783 483 72858 18 +1016 1423 72864 4 +5976 1886 72868 6 +2188 69 72891 11 +4618 1786 72946 1 +6624 1688 72997 4 +4920 514 72997 4 +2754 341 73018 19 +6674 1106 73085 23 +3566 1480 73182 1 +1772 321 73228 7 +6448 778 73231 1 +8599 169 73248 5 +3666 1041 73324 1 +1341 1161 73324 1 +4376 771 73367 42 +4749 451 73376 12 +851 1012 73423 1 +4230 1831 73439 4 +9915 371 73439 4 +8670 677 73457 1 +8 398 73482 72 +3328 294 73482 72 +11992 239 73482 72 +4784 1447 73503 1 +4315 1709 73504 1 +4205 743 73590 1 +6111 1007 73633 1 +603 1605 73654 5 +8282 597 73654 5 +10634 641 73691 1 +1277 704 73712 6 +9800 377 73758 1 +4823 1764 73829 16 +9221 332 73883 1 +3140 400 73915 23 +4059 1802 73915 23 +10507 1771 73927 71 +9653 712 73930 3 +2579 1911 73943 33 +1325 291 73943 33 +7073 1697 73984 5 +4559 505 73984 5 +3393 1330 74045 2 +6948 872 74045 2 +5657 821 74062 30 +5154 904 74076 2 +4401 1026 74076 2 +3158 248 74082 1 +6997 1548 74083 15 +9793 1286 74115 4 +812 916 74115 4 +654 95 74128 67 +1682 852 74128 67 +92 1054 74131 1 +7905 263 74148 34 +4557 1298 74148 34 +10144 641 74148 34 +4665 2078 74174 4 +3720 1305 74185 37 +4344 2069 74197 1 +2268 133 74197 1 +231 995 74250 5 +9398 1314 74311 1 +4774 1765 74313 37 +4216 2003 74407 3 +2744 58 74446 7 +9065 1544 74446 7 +763 589 74514 5 +4774 344 74514 5 +2904 2192 74535 31 +5062 10 74535 31 +3951 1777 74578 29 +109 1584 74631 8 +8639 1656 74633 1 +345 1074 74634 67 +2459 1127 74680 8 +10165 1949 74733 52 +11325 26 74810 1 +2711 746 74814 7 +88 860 74814 7 +8012 2126 74864 1 +2665 2179 74873 1 +3983 1904 74898 15 +8288 736 74899 7 +12203 181 74977 1 +6331 1656 74977 1 +4616 10 74977 1 +3479 2096 75001 56 +4054 1493 75082 14 +2639 119 75126 1 +2747 1586 75199 1 +4978 627 75203 11 +11082 679 75223 20 +3726 1523 75223 20 +3396 81 75227 1 +8723 463 75227 1 +6230 1339 75227 1 +2936 319 75227 1 +4367 1052 75263 2 +1253 146 75263 2 +9789 1816 75272 33 +8532 386 75272 33 +86 1961 75319 48 +11855 98 75359 15 +1945 929 75359 15 +5142 1988 75374 1 +6902 573 75425 66 +7596 836 75509 3 +10425 1762 75555 29 +2391 1611 75575 5 +9664 1796 75579 3 +7441 645 75672 8 +3498 1846 75739 4 +7075 142 75759 9 +760 1586 75821 1 +10733 1841 75893 33 +7359 1117 75900 44 +461 1208 75997 1 +9297 1380 75998 6 +6929 2158 76050 2 +4114 44 76050 2 +10210 906 76146 32 +9170 1779 76150 1 +6061 1157 76195 1 +41 1045 76195 1 +1637 221 76196 2 +1744 47 76196 2 +510 1466 76212 5 +4625 1438 76213 5 +7303 1092 76229 30 +6655 820 76229 30 +8487 462 76229 30 +6919 1766 76303 4 +1989 925 76338 1 +6809 1277 76338 1 +107 816 76343 1 +8502 1386 76343 1 +2129 2189 76388 1 +1733 13 76388 1 +9727 530 76412 36 +9126 1672 76412 36 +1561 1222 76423 1 +3266 957 76426 2 +6705 1655 76472 1 +10209 154 76472 1 +1047 393 76472 1 +107 997 76562 1 +3881 1147 76594 2 +7375 236 76594 2 +2502 65 76639 1 +1465 210 76639 1 +1128 548 76642 4 +640 219 76687 3 +7312 754 76687 3 +5960 730 76702 1 +10073 1654 76770 1 +4779 395 76791 40 +5060 1359 76806 4 +10149 1613 76808 1 +9828 589 76808 1 +341 1208 76809 1 +5550 1153 76811 1 +3002 2085 76850 33 +1483 117 76850 33 +10806 1619 76916 29 +6215 1018 76993 6 +5334 1875 77020 22 +12502 145 77020 22 +8517 182 77020 22 +3433 668 77022 1 +11589 124 77060 1 +202 743 77070 39 +494 686 77118 34 +8131 252 77118 34 +844 1024 77118 34 +582 576 77118 34 +8901 1908 77170 4 +10191 132 77178 1 +2501 184 77235 7 +4686 1734 77263 4 +6296 468 77263 4 +11274 124 77263 4 +4357 1953 77272 46 +715 707 77274 2 +3318 375 77287 11 +10515 951 77287 11 +5578 1149 77351 5 +4559 616 77351 5 +10223 988 77361 1 +8843 1214 77361 1 +7359 6 77363 3 +8376 1368 77402 1 +11492 290 77406 20 +7109 1581 77460 8 +3266 1955 77461 2 +33 239 77461 2 +9298 1404 77536 15 +6743 155 77543 1 +6782 1847 77543 1 +4421 899 77572 1 +10767 265 77572 1 +10405 1787 77577 1 +4500 1105 77587 1 +2800 1991 77655 2 +9680 1769 77698 1 +4781 433 77698 1 +5906 1109 77743 31 +10249 543 77760 13 +579 175 77784 1 +10507 1510 77785 7 +11075 577 77831 1 +10262 365 77872 6 +6227 1837 77872 6 +735 848 77873 1 +2852 855 77887 5 +2664 1554 77968 1 +8810 62 77968 1 +6914 259 78001 3 +6806 1789 78028 1 +860 1436 78035 1 +11104 906 78046 10 +2112 293 78046 10 +7118 152 78059 1 +8757 1020 78059 1 +11204 755 78061 1 +891 86 78061 1 +2763 1746 78132 1 +4166 2087 78143 1 +2701 1726 78222 1 +9114 476 78222 1 +1339 1722 78224 9 +5013 360 78262 8 +4653 1626 78262 8 +11813 306 78270 1 +3576 1832 78270 1 +9067 999 78300 2 +2508 487 78314 9 +1059 961 78337 1 +5501 1773 78425 7 +7963 2164 78456 1 +2768 390 78495 8 +4946 398 78497 8 +8726 1607 78511 1 +6705 595 78511 1 +6127 583 78591 77 +10662 1619 78591 77 +3453 553 78610 20 +9577 396 78612 3 +8275 491 78614 1 +10549 777 78631 2 +5566 607 78670 4 +5032 743 78693 1 +9818 535 78693 1 +10066 924 78693 1 +2748 287 78693 1 +10914 1324 78707 27 +9519 1345 78710 1 +9149 1850 78791 68 +6901 620 78793 4 +9036 851 78793 4 +1860 731 78793 4 +4052 1737 78805 12 +7416 2077 78903 1 +5710 125 78903 1 +1112 119 79002 1 +9189 1054 79002 1 +4499 1988 79013 1 +4052 1469 79044 29 +675 899 79092 5 +10202 1303 79092 5 +569 1899 79101 1 +10730 53 79116 15 +5079 14 79117 90 +6658 559 79117 90 +2047 1043 79129 1 +4162 1108 79144 13 +11099 1572 79216 1 +4753 1242 79284 14 +5115 96 79284 14 +9497 494 79310 5 +2352 97 79346 1 +8787 1004 79430 22 +1969 940 79432 34 +4322 971 79437 8 +5226 1189 79492 14 +5557 512 79494 4 +8433 1258 79558 29 +5715 1635 79608 57 +10232 1375 79635 3 +3163 146 79638 2 +4411 2056 79638 2 +8852 1271 79664 30 +4371 475 79666 1 +6437 1156 79677 22 +474 1813 79756 8 +2416 140 79807 18 +2145 1895 79865 1 +4139 307 79865 1 +8566 421 79948 9 +5251 603 79961 49 +8420 1988 80055 2 +10624 214 80055 2 +5809 633 80102 1 +3047 772 80102 1 +533 828 80196 36 +8943 1664 80226 1 +9319 304 80244 15 +8688 259 80244 15 +4136 1652 80249 8 +429 1633 80278 1 +7047 1932 80280 2 +648 270 80280 2 +9365 893 80282 3 +541 1309 80282 3 +8247 1299 80324 4 +5211 2023 80386 14 +4123 88 80408 21 +9067 2109 80408 21 +8615 879 80409 1 +1643 1785 80485 1 +6978 1358 80495 1 +8876 1432 80498 17 +11071 733 80539 40 +9456 965 80619 5 +8463 1654 80652 41 +282 336 80658 1 +3875 1416 80746 7 +2599 786 80746 7 +2478 1139 80753 2 +9492 2105 80811 37 +170 1110 80876 53 +1511 1092 80876 53 +6541 810 80949 1 +8396 1185 80955 1 +2483 1636 80976 1 +4030 1220 81003 7 +10597 301 81003 7 +5642 1216 81045 9 +3673 707 81045 9 +7355 506 81049 52 +7693 1696 81049 52 +10571 211 81052 48 +142 1421 81056 5 +4778 1776 81057 1 +9403 784 81155 1 +4470 301 81190 45 +9497 1691 81190 45 +11154 856 81205 7 +947 1622 81225 11 +11831 45 81225 11 +9456 535 81225 11 +9265 1367 81243 1 +4561 835 81243 1 +10381 109 81244 25 +7727 1387 81246 2 +736 1547 81250 8 +5137 40 81254 16 +1715 1256 81254 16 +8888 1140 81340 9 +6368 782 81342 1 +122 236 81392 35 +3830 516 81392 35 +5310 410 81444 46 +2111 1433 81466 11 +6215 769 81466 11 +6777 467 81468 1 +2086 1382 81468 1 +6504 377 81542 2 +10560 1428 81542 2 +1483 962 81561 7 +10894 1240 81561 7 +8611 769 81562 4 +428 595 81595 4 +9491 1607 81595 4 +2112 2170 81605 10 +3058 1205 81611 31 +9255 940 81616 12 +7335 1262 81616 12 +9585 1431 81649 3 +9959 944 81680 20 +1749 692 81739 1 +5794 992 81743 5 +4100 2083 81840 8 +532 1846 81883 5 +7912 1514 81937 3 +2022 227 81937 3 +7943 22 81995 10 +6573 1524 81997 2 +8908 985 82059 11 +1283 1217 82059 11 +11121 1534 82099 32 +1757 1591 82117 7 +10267 715 82153 17 +6877 821 82188 17 +8088 1381 82188 17 +459 1991 82253 2 +3792 211 82253 2 +3883 2160 82262 1 +3405 42 82262 1 +7481 1028 82270 1 +6433 78 82270 1 +3732 1589 82292 1 +8895 613 82292 1 +1507 1261 82353 19 +392 1914 82363 3 +4282 1258 82372 1 +6942 1990 82380 24 +7997 212 82380 24 +1726 103 82380 24 +11407 409 82396 1 +2266 941 82439 11 +9618 615 82529 49 +9401 121 82560 1 +4032 339 82561 1 +5850 629 82573 29 +6819 485 82580 52 +10824 8 82667 1 +3133 861 82667 1 +3743 391 82678 1 +37 1997 82751 29 +6994 2195 82789 1 +10230 1371 82800 4 +10080 831 82800 4 +9258 681 82800 4 +10811 1401 82865 30 +6121 122 82865 30 +10894 421 82896 7 +1689 834 82905 1 +5471 1045 82962 43 +5795 1157 82962 43 +10128 1777 83060 1 +10751 1039 83070 1 +4278 191 83070 1 +9002 633 83107 1 +1165 392 83119 82 +3694 1791 83162 3 +5959 64 83175 1 +1800 1793 83178 1 +9529 409 83178 1 +9451 451 83179 1 +8609 397 83254 5 +2907 1243 83268 7 +1411 1993 83334 1 +3908 1600 83344 1 +6712 7 83438 1 +6268 1393 83445 30 +2201 1384 83451 14 +2274 134 83459 31 +894 199 83459 31 +1604 1288 83461 1 +74 548 83461 1 +11805 42 83467 52 +6764 121 83499 1 +1598 649 83503 11 +3183 1032 83508 1 +10345 1385 83588 1 +393 817 83588 1 +9189 28 83606 1 +2052 341 83607 46 +3483 301 83607 46 +8171 1244 83636 15 +3379 958 83636 15 +9383 1124 83650 1 +3147 2088 83651 17 +7334 569 83673 1 +3686 1129 83673 1 +6197 918 83675 1 +9255 509 83675 1 +12255 322 83683 2 +8395 1436 83699 1 +1551 252 83699 1 +8366 1901 83705 1 +2763 1982 83721 1 +8028 232 83781 26 +9305 368 83836 3 +6904 1086 83841 3 +5961 294 83899 11 +9709 1599 83899 11 +2744 309 83899 11 +2018 2036 83901 36 +896 876 83918 1 +11228 1316 83927 3 +834 424 83930 1 +8461 302 83958 1 +8121 116 83958 1 +2757 1194 83958 1 +10040 1056 83980 35 +9035 1035 84000 11 +3038 613 84041 4 +272 1321 84043 19 +12289 258 84050 1 +4379 120 84050 1 +7732 627 84068 2 +10158 263 84097 27 +6617 779 84099 5 +8518 1449 84115 75 +7207 638 84115 75 +994 537 84185 1 +10663 897 84185 1 +8020 673 84231 36 +9042 1792 84233 2 +12229 285 84286 19 +10310 1917 84286 19 +5510 382 84348 1 +3262 1320 84348 1 +9762 2114 84360 4 +8063 2199 84394 1 +1749 1380 84425 48 +2127 873 84431 2 +12298 66 84445 25 +1723 572 84445 25 +4875 182 84456 7 +709 902 84549 9 +2590 1199 84549 9 +5066 1383 84550 41 +576 92 84554 7 +11303 51 84586 4 +9628 1329 84669 2 +7412 1990 84742 17 +9256 383 84753 3 +4422 356 84762 65 +12112 456 84860 1 +10271 1218 84937 1 +4666 202 84954 1 +10151 2000 84954 1 +3793 1379 84984 1 +2962 467 84997 33 +10531 818 85007 75 +10766 869 85039 47 +228 1487 85049 17 +6405 715 85049 17 +11573 744 85057 1 +10468 1296 85064 7 +1189 906 85064 7 +3897 191 85075 1 +2990 990 85075 1 +478 1870 85080 1 +10365 1753 85119 2 +1917 1902 85202 14 +9321 2038 85203 24 +7530 581 85205 1 +4865 732 85208 1 +7421 1704 85220 1 +4809 1664 85232 2 +5471 538 85232 2 +6602 400 85232 2 +2739 1507 85317 3 +2775 695 85317 3 +5749 1478 85335 13 +10707 111 85335 13 +6056 759 85337 1 +8983 743 85402 19 +2840 699 85421 2 +8269 22 85447 2 +2807 1301 85449 1 +2856 475 85449 1 +3442 1010 85504 24 +499 1056 85504 24 +11508 136 85504 24 +7260 1459 85505 27 +3489 743 85505 27 +870 165 85521 5 +1260 1861 85550 2 +897 1378 85551 6 +5364 434 85627 1 +7960 1595 85656 12 +8940 607 85656 12 +1910 547 85705 2 +10482 269 85714 1 +5382 1555 85718 2 +8417 254 85765 10 +4528 443 85769 1 +11043 61 85769 1 +7533 136 85777 50 +592 2066 85777 50 +9377 618 85780 57 +5920 1097 85786 1 +7156 525 85845 1 +10166 567 85875 10 +10055 1211 85875 10 +3706 991 85875 10 +2658 422 85892 1 +491 66 85930 31 +3649 2100 85930 31 +3440 36 85930 31 +5500 913 85943 13 +1034 1853 86027 55 +6351 349 86027 55 +6829 1504 86035 19 +5419 698 86035 19 +5431 1819 86075 26 +1127 86 86141 6 +5406 1565 86186 62 +8570 579 86186 62 +1940 1561 86195 31 +3900 1666 86278 1 +5125 341 86279 22 +12380 195 86279 22 +8149 1666 86279 22 +3094 172 86289 3 +1027 1879 86294 3 +3645 269 86317 1 +486 1860 86335 1 +9260 342 86335 1 +6108 1847 86383 1 +10773 355 86383 1 +3886 143 86386 12 +5984 43 86438 9 +10388 2058 86482 1 +7893 1348 86502 19 +6868 1040 86584 27 +2923 624 86618 6 +8126 828 86709 2 +10203 1374 86709 2 +873 548 86735 25 +222 1613 86795 6 +1468 1603 86805 62 +6404 599 86805 62 +2175 1414 86811 1 +3001 1064 86818 8 +5942 976 86819 1 +2321 733 86819 1 +10252 493 86819 1 +819 1861 86838 3 +8625 95 86838 3 +5830 274 86843 4 +4668 576 86843 4 +5854 790 86846 1 +10025 2148 86848 1 +10451 54 86848 1 +7449 54 86848 1 +1172 1062 86869 7 +862 633 86884 3 +3036 702 86884 3 +8453 1424 86885 1 +1845 815 86898 41 +9708 1241 86898 41 +7013 1114 86906 10 +1429 152 86909 19 +3504 1120 86942 1 +11923 779 86942 1 +3967 1367 86963 1 +5625 835 86963 1 +4261 1146 86974 1 +11290 401 86974 1 +4016 1994 86981 1 +10040 1289 87078 55 +5716 726 87078 55 +958 526 87123 1 +11455 377 87123 1 +2955 1419 87164 1 +4511 53 87164 1 +3540 941 87212 3 +6996 1014 87242 1 +6279 328 87276 1 +1151 1605 87308 1 +3090 1273 87360 7 +9913 406 87398 1 +1666 1134 87427 1 +7903 249 87429 13 +6181 105 87505 45 +10281 191 87603 3 +3351 2179 87613 45 +2097 549 87614 2 +4122 522 87617 1 +1874 1540 87625 8 +1188 1109 87628 41 +6370 1334 87634 1 +3981 665 87638 73 +7328 1537 87638 73 +7059 432 87663 1 +5420 392 87679 2 +9473 511 87681 52 +68 620 87684 1 +1572 89 87684 1 +11404 1067 87684 1 +8170 491 87687 40 +10583 532 87736 4 +7961 1637 87737 2 +5893 307 87774 7 +4296 1577 87778 1 +2239 678 87818 12 +4279 171 87818 12 +3367 1353 87818 12 +10194 1948 87829 1 +8008 297 87850 2 +5448 1420 87916 1 +5926 782 87916 1 +1661 1979 87917 18 +10538 223 87917 18 +1448 584 87939 3 +12124 264 87943 5 +6341 866 87998 1 +8590 455 87999 1 +3440 1259 87999 1 +4647 1118 88055 2 +4422 1532 88067 16 +547 670 88067 16 +355 1941 88080 1 +8944 261 88080 1 +11452 455 88081 1 +105 1752 88118 1 +0 1361 88179 1 +7726 941 88184 1 +10381 1007 88281 1 +438 1121 88286 4 +8414 1081 88286 4 +3177 477 88334 2 +6115 1622 88335 27 +4428 1860 88347 37 +6114 1119 88348 3 +3972 1083 88348 3 +6943 1929 88358 6 +3318 1929 88380 2 +1389 768 88385 7 +7307 479 88452 16 +1119 205 88503 1 +7879 492 88540 1 +6678 171 88540 1 +2379 393 88545 1 +6668 27 88552 1 +6155 1075 88559 2 +5211 1127 88559 2 +4292 1670 88572 2 +10278 532 88572 2 +4917 1582 88580 41 +936 1226 88610 25 +1509 2115 88613 37 +7309 2040 88615 22 +2529 2039 88620 1 +6198 33 88620 1 +1560 449 88649 12 +5923 2054 88729 22 +1073 755 88743 4 +8440 1440 88743 4 +4392 1004 88760 4 +10295 1183 88780 36 +5570 991 88780 36 +993 2041 88789 4 +4765 1103 88820 5 +982 2055 88843 7 +1426 147 88843 7 +10453 1742 88844 1 +2310 1290 88861 2 +7717 791 88862 27 +6194 1283 88923 1 +965 1761 89000 2 +9471 2170 89026 20 +1457 1425 89027 29 +6424 777 89027 29 +7232 850 89082 7 +7919 1863 89084 2 +967 339 89084 2 +2398 2197 89092 8 +3477 5 89092 8 +9166 230 89123 1 +7481 288 89153 1 +8145 2082 89196 1 +731 120 89196 1 +4407 1595 89246 2 +2936 531 89277 62 +9891 2150 89289 6 +9877 1711 89300 16 +2585 1053 89358 5 +8839 2114 89361 18 +6812 1834 89396 13 +6895 802 89415 57 +5465 1276 89453 38 +5771 711 89454 1 +999 1721 89525 1 +3173 1237 89543 36 +6100 379 89549 7 +9563 955 89549 7 +9322 1948 89648 21 +680 254 89648 21 +7008 883 89659 5 +1445 1637 89694 11 +6715 1506 89742 2 +6499 696 89742 2 +8914 480 89742 2 +6555 1704 89749 36 +6406 1663 89755 1 +10906 539 89755 1 +11209 462 89783 92 +11437 248 89826 1 +3874 257 89921 1 +6022 420 89925 3 +11261 122 89984 3 +2202 1831 89997 2 +8241 1749 90026 17 +9635 453 90026 17 +3605 545 90038 11 +5865 664 90042 8 +3157 883 90051 1 +771 737 90096 4 +1819 1967 90113 9 +7606 1953 90203 44 +9708 1283 90209 2 +551 2074 90211 9 +7218 1112 90260 9 +9470 245 90260 9 +8084 1640 90320 26 +9348 1818 90322 1 +3122 384 90322 1 +9784 369 90324 7 +4639 413 90330 7 +1552 1784 90337 1 +7038 484 90426 1 +10803 42 90504 1 +892 1142 90527 8 +6059 905 90527 8 +5492 155 90527 8 +5212 1525 90540 26 +8678 2134 90595 12 +939 1285 90599 1 +2021 1771 90601 1 +1033 770 90618 32 +9284 786 90618 32 +9724 2064 90660 54 +5110 138 90660 54 +8934 1336 90719 32 +2223 1907 90726 1 +9711 1195 90740 1 +5568 279 90740 1 +7851 1920 90745 17 +2767 1857 90790 2 +8033 2127 90791 6 +2326 1145 90793 2 +9493 1710 90848 3 +8569 1878 90875 5 +2632 1436 90937 16 +11753 745 90937 16 +6857 1393 90938 1 +9454 271 90938 1 +2465 1470 90940 51 +5103 40 90941 46 +7596 30 90967 54 +5422 441 91058 1 +11032 701 91100 1 +5988 1501 91100 1 +3359 513 91117 1 +5507 2153 91144 1 +806 2104 91158 5 +3160 1099 91217 6 +7568 178 91287 1 +7063 322 91287 1 +6296 1702 91287 1 +3800 966 91311 53 +741 1588 91336 1 +6702 1053 91346 29 +8785 1515 91350 25 +4993 794 91355 19 +2919 1376 91355 19 +3361 32 91355 19 +7463 392 91356 3 +6660 1810 91356 3 +9172 584 91372 1 +7301 1455 91382 1 +4611 1972 91425 18 +991 1026 91426 41 +3386 535 91426 41 +10643 641 91426 41 +6366 656 91442 1 +9871 564 91470 4 +427 1831 91556 24 +5929 2021 91608 21 +5411 1420 91668 1 +9272 166 91668 1 +5261 1622 91702 1 +3455 2190 91703 1 +10140 12 91703 1 +9099 1501 91704 6 +8125 519 91731 25 +9211 2199 91752 2 +6994 3 91752 2 +11162 213 91753 1 +9961 958 91784 1 +4876 15 91795 2 +6390 1497 91815 2 +8607 127 91816 1 +3681 112 91826 21 +7542 1200 91829 1 +10438 1543 91832 28 +10993 488 91856 1 +12248 110 91856 1 +3946 660 91917 1 +4054 1457 91923 1 +7634 273 91968 14 +2006 1929 91968 14 +2167 323 91991 7 +8449 980 91997 45 +8782 1222 91997 45 +6730 647 91997 45 +8714 265 92001 18 +8311 1074 92001 18 +4970 1128 92001 18 +1637 842 92030 33 +2116 1644 92031 8 +4427 558 92031 8 +2691 1831 92033 7 +10516 1565 92066 29 +3263 598 92066 29 +5858 39 92066 29 +5558 2081 92068 12 +3102 704 92154 1 +10423 425 92178 9 +789 1216 92201 26 +9479 403 92218 6 +6330 1323 92218 6 +4399 1868 92233 21 +3079 1099 92258 48 +3486 535 92258 48 +1422 866 92300 12 +10009 299 92307 13 +6684 344 92322 1 +4191 2053 92379 16 +4128 1083 92381 24 +4820 279 92381 24 +7696 1119 92381 24 +2557 2022 92415 1 +9715 180 92415 1 +3829 624 92477 1 +11263 1333 92477 1 +2028 662 92489 4 +5869 532 92513 1 +6894 705 92538 36 +7385 1448 92600 1 +9392 196 92600 1 +5067 2039 92636 18 +931 700 92670 7 +6701 1241 92717 1 +10602 358 92725 63 +9910 2077 92815 2 +4190 106 92855 1 +6715 1054 92855 1 +9679 556 92861 1 +323 1646 92861 1 +10013 1925 92875 14 +2970 200 92940 6 +8668 1856 92956 26 +7147 346 92956 26 +7790 1113 93050 1 +6967 351 93119 7 +4346 671 93121 1 +9005 1113 93121 1 +1575 189 93211 1 +979 1982 93254 14 +4422 1988 93295 12 +2243 1276 93376 17 +523 2198 93415 1 +4288 818 93419 2 +6081 1983 93439 20 +2654 424 93499 1 +4314 958 93577 2 +6953 525 93623 3 +4345 528 93623 3 +4891 838 93625 1 +3623 1350 93628 4 +10880 189 93640 18 +2126 706 93674 5 +3160 1365 93674 5 +8313 442 93676 1 +6586 1430 93697 4 +854 1237 93774 5 +8005 1630 93780 1 +1277 572 93780 1 +10967 578 93789 15 +8362 830 93789 15 +10547 794 93789 15 +1509 374 93789 15 +4488 2183 93804 11 +11262 289 93813 5 +6442 265 93815 2 +573 1160 93815 2 +3256 777 93815 2 +3462 1098 93822 2 +5679 271 93872 30 +7266 1343 93872 30 +4495 588 93872 30 +11047 29 93912 30 +4200 1784 93913 11 +339 390 93944 1 +7457 1457 93944 1 +941 355 93944 1 +3636 1778 94004 22 +9221 424 94004 22 +9518 495 94055 1 +8020 937 94129 1 +7297 1252 94129 1 +1255 542 94129 1 +4236 1101 94141 1 +7519 1444 94175 52 +3370 1356 94269 1 +3597 1392 94296 3 +5737 810 94296 3 +2202 1319 94299 25 +8392 491 94328 14 +10678 9 94328 14 +2724 408 94328 14 +7923 1294 94328 14 +908 491 94328 14 +4571 607 94330 1 +902 667 94368 38 +6034 159 94465 13 +10993 1170 94473 2 +8962 750 94473 2 +3444 2002 94525 68 +3012 300 94530 17 +5956 592 94530 17 +2743 1310 94530 17 +1611 2115 94543 7 +2655 87 94543 7 +747 2151 94585 1 +11561 51 94585 1 +5488 375 94597 1 +9872 1827 94597 1 +1243 166 94602 1 +10239 85 94685 18 +12117 577 94692 1 +6748 932 94760 33 +9598 168 94834 3 +9787 990 94834 3 +447 1044 94834 3 +2456 345 94847 79 +4523 518 94847 79 +10207 836 94847 79 +9615 503 94847 79 +1083 2002 94892 1 +3249 200 94892 1 +10253 470 94987 2 +5206 182 94991 42 +6996 1660 95029 1 +3683 1789 95116 1 +6263 764 95128 1 +302 1189 95128 1 +2355 733 95129 1 +9893 1469 95129 1 +1132 595 95140 17 +6289 782 95141 30 +5848 1557 95151 6 +10133 370 95167 12 +3810 284 95167 12 +625 651 95260 1 +1365 151 95283 3 +635 1619 95349 74 +8879 500 95355 8 +6454 879 95383 4 +7059 92 95438 1 +9807 896 95472 8 +10236 1865 95505 5 +966 592 95534 7 +1316 1046 95593 1 +6132 2165 95594 14 +4719 2014 95601 5 +11730 643 95609 11 +8153 929 95650 1 +288 296 95650 1 +120 427 95656 4 +5869 1649 95675 11 +8754 1211 95676 2 +3465 991 95676 2 +10268 1164 95677 1 +3937 106 95726 2 +3785 833 95726 2 +3203 1369 95726 2 +8275 1102 95730 10 +4759 334 95735 33 +5420 380 95739 20 +9456 1460 95764 34 +66 1770 95798 26 +8597 1136 95811 7 +6333 243 95812 1 +6753 919 95812 1 +4133 1040 95812 1 +2768 467 95880 1 +6709 1314 95880 1 +7791 738 95911 15 +1333 268 95912 28 +1240 2017 95968 1 +3008 185 95968 1 +7513 2079 95978 3 +4759 123 95978 3 +4874 1980 95999 1 +8299 1108 96077 1 +7176 520 96098 27 +1751 1156 96115 1 +9762 1356 96197 1 +8530 395 96213 1 +6931 315 96223 6 +196 1310 96223 6 +7025 291 96223 6 +12042 189 96322 29 +3290 542 96354 10 +4601 2184 96391 4 +6905 553 96478 1 +2541 536 96478 1 +1239 1781 96485 19 +10488 421 96485 19 +4838 924 96491 1 +7138 786 96512 28 +8345 204 96516 25 +8374 1141 96523 10 +11555 367 96523 10 +1907 1749 96527 62 +1396 2021 96577 1 +8519 1526 96580 11 +10542 1415 96610 1 +12198 492 96677 2 +9000 37 96690 20 +4700 366 96724 12 +3779 604 96744 33 +1982 1060 96744 33 +840 362 96744 33 +11959 78 96822 7 +10321 123 96837 1 +11984 589 96839 11 +7848 187 96895 1 +11251 461 96927 1 +6188 715 96972 20 +11352 1233 96978 1 +803 1948 96983 3 +11955 669 97025 1 +8439 1820 97027 7 +8837 757 97114 16 +6843 1981 97133 17 +10148 181 97133 17 +6192 1466 97146 27 +2589 1775 97148 1 +9895 2127 97219 1 +10598 75 97219 1 +7175 2197 97275 76 +3632 288 97277 2 +5781 43 97277 2 +2257 1871 97277 2 +573 137 97282 17 +9951 1363 97319 2 +7604 839 97319 2 +1663 1522 97360 1 +11972 487 97368 1 +10511 2069 97370 1 +2399 1678 97371 40 +10333 757 97413 1 +2470 1000 97413 1 +6372 445 97413 1 +2385 1627 97418 1 +4854 575 97418 1 +4978 86 97493 2 +7439 1041 97532 34 +3108 99 97532 34 +5583 1135 97606 2 +7584 200 97606 2 +8937 287 97606 2 +6897 354 97608 1 +7494 947 97608 1 +480 2172 97609 1 +9850 471 97705 38 +8576 1450 97716 7 +3492 415 97718 1 +8572 532 97785 3 +4440 1389 97785 3 +3657 1388 97873 28 +7652 1211 97905 2 +825 2158 97915 1 +652 568 97920 1 +3191 1917 97933 1 +2172 2043 97935 1 +2698 8 97956 56 +197 1845 97966 14 +9195 357 97966 14 +410 1524 97988 1 +1454 1450 98025 58 +764 571 98025 58 +6495 642 98077 22 +6199 2041 98085 4 +4849 161 98085 4 +309 1206 98160 13 +11151 996 98190 17 +3581 1206 98190 17 +3908 1562 98202 1 +3092 786 98204 23 +1814 1416 98204 23 +4845 1805 98207 4 +11134 932 98209 17 +2719 1946 98211 1 +4126 2054 98278 64 +8775 1956 98328 1 +2779 124 98360 71 +3441 1388 98360 71 +4402 690 98360 71 +6667 1356 98371 18 +819 846 98371 18 +809 525 98375 47 +9595 811 98450 1 +5782 599 98458 3 +1551 1565 98500 1 +6180 637 98500 1 +2406 1704 98507 1 +499 498 98507 1 +10080 1373 98509 4 +6156 1258 98529 11 +8376 694 98547 3 +6249 367 98576 19 +2303 1248 98577 3 +3186 954 98577 3 +4084 365 98577 3 +302 56 98577 3 +6594 172 98580 2 +10577 1505 98580 2 +6108 416 98624 21 +9976 501 98626 1 +7484 1701 98626 1 +4312 508 98632 16 +4499 724 98632 16 +6585 1791 98689 57 +8666 411 98689 57 +7373 664 98706 10 +1822 342 98706 10 +5466 1196 98706 10 +9237 715 98775 12 +6012 1240 98775 12 +1905 247 98775 12 +806 2008 98786 1 +8384 1320 98867 4 +8378 882 98867 4 +10646 1878 98870 3 +2711 489 98951 1 +9894 764 98951 1 +712 2035 99017 59 +11333 1090 99025 17 +10381 1473 99039 5 +5441 16 99045 2 +6855 945 99045 2 +10262 1562 99046 1 +499 2035 99047 4 +2643 167 99047 4 +2101 1786 99091 1 +8511 416 99091 1 +9837 1956 99105 8 +3489 353 99122 1 +7979 753 99122 1 +8498 2119 99125 2 +10724 83 99125 2 +538 463 99222 5 +7897 1504 99235 58 +5864 691 99235 58 +10337 639 99241 16 +7454 1506 99254 54 +9229 1 99325 15 +5530 18 99328 1 +7798 228 99328 1 +5516 1203 99328 1 +8072 1475 99333 6 +415 727 99333 6 +5919 1187 99334 1 +8993 1571 99341 33 +8983 1198 99343 1 +5854 174 99345 1 +5558 1349 99346 1 +4497 2009 99348 1 +6447 193 99348 1 +5291 1848 99352 64 +10507 354 99352 64 +619 1498 99394 15 +907 704 99394 15 +12399 151 99394 15 +11513 128 99396 26 +8245 1383 99396 26 +10406 886 99397 1 +3182 172 99431 32 +6903 2027 99475 11 +534 1454 99513 35 +5386 434 99513 35 +2 1679 99558 1 +9787 1399 99654 1 +6968 803 99654 1 +4638 1840 99714 25 +8948 1411 99722 12 +5334 1333 99726 11 +11931 400 99739 1 +9625 899 99774 1 +6112 257 99775 57 +1553 775 99785 1 +3415 1832 99815 1 +1498 1596 99895 36 +4196 510 99919 2 +1026 862 99919 2 +10492 364 99919 2 +3573 1240 99995 9 +9153 950 100011 1 +7279 1252 100011 1 +4248 537 100021 1 +4697 1776 100042 6 +10187 426 100042 6 +3365 448 100085 1 +6752 1754 100085 1 +4791 1168 100161 6 +265 1344 100163 1 +3374 993 100176 93 +5368 1799 100220 39 +9623 911 100256 1 +11483 879 100320 8 +6040 1956 100327 3 +8818 246 100327 3 +177 2096 100342 20 +1877 1420 100343 1 +7786 292 100344 1 +4365 1867 100344 1 +4788 43 100344 1 +9329 1518 100411 22 +3158 1768 100419 1 +7384 386 100419 1 +33 48 100419 1 +5892 1086 100424 48 +10235 1728 100425 1 +335 1741 100475 33 +10180 291 100564 5 +9240 1876 100564 5 +1454 303 100564 5 +7952 1651 100565 1 +9913 1960 100584 7 +8815 249 100615 32 +7405 1710 100615 32 +11666 498 100677 2 +9299 19 100739 1 +3256 399 100739 1 +9014 199 100746 1 +2925 609 100746 1 +2831 1730 100748 1 +5939 1029 100778 4 +4230 1805 100781 51 +10949 1715 100841 33 +5449 358 100889 5 +11323 1072 100889 5 +8697 772 100889 5 +9862 1396 100911 1 +8560 787 100944 1 +6124 1415 100944 1 +4837 1621 101040 26 +7280 1394 101051 9 +5196 437 101051 9 +8129 1583 101061 9 +8181 698 101153 11 +9733 327 101153 11 +10827 1364 101214 37 +481 1734 101216 5 +9973 382 101305 7 +8169 157 101348 1 +4154 802 101348 1 +2450 827 101356 1 +9114 1460 101371 5 +1011 98 101371 5 +10454 208 101413 71 +321 1450 101426 1 +5150 987 101502 26 +6994 30 101502 26 +11651 857 101505 1 +5683 1361 101529 33 +4573 1629 101532 1 +9467 734 101590 28 +2939 1949 101616 4 +679 253 101616 4 +8611 21 101624 1 +4165 1702 101647 1 +3189 826 101675 37 +1610 820 101677 53 +10368 1273 101678 39 +10100 526 101679 1 +7693 2192 101687 5 +8107 606 101694 14 +9949 298 101742 4 +5492 784 101742 4 +7500 1400 101755 3 +9173 802 101755 3 +8594 1669 101766 1 +4424 818 101767 2 +7209 1384 101767 2 +62 829 101844 3 +10528 1535 101845 1 +8933 1033 101867 11 +8045 1576 101878 1 +3579 626 101878 1 +4247 635 101886 1 +11346 643 101918 44 +10412 1878 101994 8 +8631 1902 101996 1 +8991 300 101996 1 +5535 938 102055 6 +5114 1264 102055 6 +1031 2068 102066 1 +487 134 102066 1 +4026 955 102071 82 +2135 1681 102073 8 +2377 521 102073 8 +1025 997 102150 60 +4225 821 102151 2 +8511 1538 102199 1 +10280 1773 102210 29 +7029 1070 102260 2 +10300 861 102348 1 +5450 2055 102352 6 +7908 1472 102415 16 +7429 74 102415 16 +8931 656 102415 16 +2437 1837 102446 2 +7880 1152 102505 68 +10666 1020 102574 33 +986 830 102591 1 +2383 1364 102628 2 +4224 230 102634 1 +5814 1087 102634 1 +10414 1849 102648 3 +127 306 102648 3 +2081 47 102648 3 +291 1270 102708 26 +6290 570 102708 26 +10617 945 102709 1 +6375 229 102710 24 +3216 1954 102784 7 +6818 248 102784 7 +1109 1349 102820 1 +3718 2110 102880 2 +303 231 102881 3 +8678 1750 102881 3 +10059 221 102881 3 +3050 325 102934 39 +2248 513 102985 2 +5460 1392 102985 2 +841 1852 103008 3 +6227 2172 103012 1 +12257 285 103017 3 +8439 1917 103017 3 +1222 1001 103024 10 +2778 2038 103044 4 +11527 1176 103046 1 +4692 1751 103058 1 +1825 478 103099 46 +5078 506 103107 19 +4635 1338 103120 1 +8093 986 103138 10 +5912 1160 103138 10 +3341 2188 103201 3 +10480 1996 103224 36 +7861 1648 103226 3 +6305 1799 103269 1 +2967 1788 103287 3 +2982 1895 103317 1 +11949 131 103322 33 +9102 269 103330 1 +8906 696 103336 7 +1323 793 103336 7 +2329 1510 103421 22 +7681 645 103429 97 +9149 1772 103441 2 +290 430 103441 2 +8109 1887 103442 1 +11032 1153 103489 42 +3629 576 103569 8 +9993 345 103587 19 +340 860 103587 19 +8165 1657 103593 14 +10108 545 103593 14 +7370 1532 103599 5 +2514 1054 103679 14 +9457 517 103685 37 +5210 574 103746 4 +6197 1841 103840 4 +12164 361 103840 4 +10128 1212 103854 11 +5246 334 103854 11 +4947 656 103854 11 +5963 966 103860 5 +9788 1605 103861 1 +4989 1124 103868 3 +9421 258 103868 3 +11415 808 103868 3 +11494 12 103868 3 +1624 744 103933 5 +5795 1101 103933 5 +1734 574 103942 5 +6050 158 104028 1 +7826 65 104028 1 +10850 514 104028 1 +8855 1132 104028 1 +4617 1055 104031 1 +7611 1147 104031 1 +9459 1792 104033 1 +3104 888 104074 6 +14 1643 104093 17 +11010 127 104106 15 +6757 204 104120 5 +10037 949 104137 46 +2763 1717 104197 15 +2674 1455 104218 1 +9143 464 104218 1 +1382 283 104218 1 +10298 1292 104219 1 +7178 2183 104245 8 +8609 634 104284 1 +2333 1549 104286 4 +8674 1979 104304 5 +8943 1499 104315 1 +1546 1161 104327 1 +3821 546 104328 12 +798 1533 104329 57 +9200 669 104329 57 +5473 1580 104336 13 +10859 518 104336 13 +6526 2070 104363 3 +7158 132 104363 3 +4178 1830 104377 1 +10099 372 104377 1 +2236 1542 104474 35 +4461 750 104477 1 +1749 586 104477 1 +9983 362 104521 21 +4761 1548 104529 3 +10967 1734 104543 3 +2053 468 104543 3 +8616 150 104546 15 +9024 909 104629 1 +36 1358 104630 1 +10347 1286 104642 2 +3157 1597 104689 1 +4563 785 104774 1 +5017 607 104816 11 +7527 599 104852 13 +11447 775 104869 10 +10689 675 104869 10 +9043 269 104870 1 +34 1206 104870 1 +4500 2153 104883 1 +2872 49 104883 1 +3012 1937 104899 1 +10731 202 104899 1 +4563 1978 104933 1 +3514 1268 105007 21 +692 1218 105009 23 +6537 860 105013 1 +1714 94 105016 1 +12517 184 105016 1 +10283 1571 105030 1 +2732 1220 105066 3 +1772 99 105070 4 +5790 277 105070 4 +5997 1123 105071 3 +7089 1079 105071 3 +2772 1996 105166 1 +2984 904 105190 3 +4091 1260 105193 28 +3319 942 105193 28 +11159 170 105193 28 +7025 1281 105219 25 +1545 921 105219 25 +9822 1461 105236 3 +9202 2055 105331 1 +9255 1895 105400 9 +832 602 105409 81 +4379 1318 105436 1 +6102 821 105509 3 +10938 1381 105509 3 +6743 148 105556 13 +3572 685 105556 13 +4322 1048 105561 5 +1410 457 105561 5 +3813 371 105561 5 +3740 326 105561 5 +1100 12 105574 1 +10889 14 105578 12 +12468 158 105596 1 +8274 634 105613 3 +10360 1568 105613 3 +3081 1803 105666 3 +9744 399 105666 3 +11675 11 105746 38 +5357 340 105750 1 +2450 2022 105782 1 +3636 1655 105808 5 +9019 1945 105814 3 +12393 133 105885 6 +3811 1017 105972 9 +7110 1529 105973 16 +9482 135 105983 6 +690 241 106014 10 +3664 37 106014 10 +8976 652 106083 1 +8739 1338 106150 1 +5891 1718 106153 3 +3598 484 106153 3 +5369 2000 106156 49 +4442 1177 106157 19 +3827 2047 106159 7 +3411 155 106159 7 +9292 310 106167 1 +1379 86 106203 72 +2433 1748 106203 72 +11409 1025 106226 1 +2484 691 106232 31 +3360 112 106254 1 +1744 1254 106263 1 +10632 1190 106301 10 +5137 1012 106301 10 +6745 2145 106310 6 +7368 47 106319 33 +2949 235 106319 33 +742 367 106321 37 +5695 564 106337 4 +10670 480 106337 4 +8899 1072 106346 7 +2258 367 106353 3 +1401 1835 106353 3 +8331 367 106353 3 +7131 1849 106372 1 +5746 1790 106451 7 +9263 1540 106470 12 +6322 662 106470 12 +11884 291 106496 1 +3773 1687 106522 1 +10539 78 106522 1 +472 605 106553 1 +4369 1124 106554 66 +7418 1080 106601 2 +9884 1122 106601 2 +10192 29 106623 2 +1230 80 106652 1 +2698 1739 106677 1 +3363 736 106684 1 +813 846 106719 4 +9993 161 106721 7 +1762 1763 106800 2 +3870 91 106801 1 +11124 703 106803 1 +6756 1732 106804 1 +2782 470 106804 1 +1514 867 106874 3 +2254 893 106880 18 +2006 570 106880 18 +9918 533 106881 1 +8498 1536 106894 2 +6403 1699 106908 3 +9312 550 106935 1 +2248 1996 106936 16 +9876 499 106941 7 +10534 1056 106941 7 +6074 2 107002 4 +964 1243 107002 4 +3786 957 107002 4 +3805 1551 107032 31 +2102 422 107032 31 +11625 913 107055 18 +8161 343 107104 3 +1076 1653 107104 3 +11543 206 107104 3 +7197 1204 107111 2 +6230 2062 107114 24 +6042 140 107114 24 +1299 782 107116 1 +1246 583 107125 1 +11044 1426 107141 33 +3529 2190 107232 5 +8703 315 107270 23 +1290 1266 107275 21 +545 1528 107286 5 +2711 532 107286 5 +1802 142 107286 5 +4104 682 107290 1 +6832 192 107375 1 +5115 915 107378 16 +9741 35 107434 36 +2618 2151 107435 11 +5499 290 107454 2 +9456 87 107457 2 +11819 493 107462 19 +5904 2119 107464 29 +3517 1862 107468 4 +537 1939 107479 7 +2122 1035 107497 4 +9777 753 107497 4 +7308 67 107497 4 +6482 1225 107512 7 +4307 65 107516 1 +9827 1074 107531 1 +3837 1128 107531 1 +11923 419 107557 9 +3532 1376 107557 9 +9674 1165 107559 49 +3062 638 107559 49 +8911 158 107601 8 +909 2023 107601 8 +3141 1362 107622 1 +1642 247 107622 1 +9174 1864 107642 1 +696 2125 107676 20 +1108 1900 107707 8 +2072 302 107707 8 +11120 640 107804 1 +10050 145 107832 1 +10964 152 107832 1 +2466 450 107833 1 +8070 686 107833 1 +6367 1066 107833 1 +6125 469 107862 14 +677 1733 107862 14 +9551 1258 107873 1 +9673 1253 107907 2 +759 310 107971 1 +9663 699 107971 1 +9195 886 108035 1 +10297 1352 108037 38 +7615 384 108041 6 +10561 52 108041 6 +4846 2023 108042 47 +4415 334 108138 92 +11332 543 108139 1 +8299 1748 108142 1 +5511 1925 108229 39 +10641 633 108235 1 +3970 1200 108240 23 +1244 1002 108240 23 +10664 1030 108242 2 +2775 74 108258 1 +936 535 108354 6 +1197 2083 108449 1 +2144 82 108449 1 +2200 119 108449 1 +495 1174 108511 2 +5986 2019 108521 34 +2705 183 108521 34 +4542 995 108522 23 +158 852 108546 63 +7925 2157 108593 3 +1848 45 108593 3 +5722 390 108621 1 +818 1726 108621 1 +1798 86 108621 1 +11527 533 108643 77 +5883 646 108670 32 +9081 625 108749 7 +2073 1354 108809 1 +698 848 108809 1 +2139 1826 108814 1 +7228 1300 108824 4 +1851 363 108829 1 +892 1927 108832 1 +5460 275 108832 1 +7990 750 108834 1 +10920 1007 108834 1 +1773 445 108834 1 +9971 1865 108835 8 +4341 405 108923 6 +1979 1751 108953 3 +7126 1572 108961 2 +5026 142 108974 1 +2514 444 108974 1 +9924 372 109047 1 +2032 1224 109047 1 +727 923 109053 16 +9073 1869 109151 1 +8970 2048 109161 44 +4514 805 109162 11 +9803 60 109201 1 +633 2136 109201 1 +5329 109 109202 48 +4270 1348 109214 1 +8333 2138 109220 6 +205 895 109230 1 +4141 867 109231 1 +137 489 109277 38 +1387 1775 109324 13 +3279 2149 109335 10 +1262 367 109337 10 +2731 1573 109367 46 +10354 305 109367 46 +5854 1539 109371 1 +3783 738 109416 11 +2568 1404 109426 1 +6447 601 109426 1 +8171 1279 109492 1 +1254 2130 109543 10 +8209 72 109543 10 +10030 671 109547 28 +1456 539 109550 7 +4067 535 109574 21 +9595 990 109574 21 +10113 2059 109658 15 +6762 1246 109696 32 +3348 1238 109708 2 +7895 2115 109799 4 +1830 1375 109855 17 +9220 827 109855 17 +5956 262 109861 13 +787 189 109925 1 +447 1669 109934 7 +5446 533 109937 20 +10039 1433 109982 1 +11009 769 109982 1 +4374 1037 109984 1 +5241 1617 110067 1 +6755 483 110159 15 +9323 805 110159 15 +7233 944 110219 9 +11298 50 110228 6 +9324 1029 110237 1 +7590 608 110238 2 +10328 1216 110317 1 +8130 630 110317 1 +1434 1824 110324 5 +4991 395 110357 1 +497 239 110371 30 +11863 209 110376 47 +2381 1338 110376 47 +11104 1168 110419 2 +8021 1879 110504 1 +7923 513 110506 53 +10932 1220 110541 48 +10558 1586 110550 1 +8235 401 110577 1 +946 2154 110662 21 +5234 1018 110694 17 +1580 2087 110770 1 +11950 416 110790 24 +8953 1141 110838 46 +11464 254 110869 1 +1825 1093 110869 1 +9189 855 110869 1 +701 1263 110951 4 +9568 2122 111045 64 +1439 1591 111050 5 +3748 370 111050 5 +5850 617 111053 72 +4794 1042 111089 2 +3531 1113 111089 2 +3355 1731 111094 15 +5464 1145 111154 38 +5911 351 111155 1 +8480 1740 111163 16 +3113 462 111163 16 +6387 2100 111165 26 +4561 1753 111166 4 +11703 970 111179 15 +7742 1315 111180 20 +5375 130 111180 20 +4219 1245 111184 1 +9158 390 111184 1 +6855 282 111226 6 +6213 1555 111315 6 +4170 1250 111386 1 +3460 28 111386 1 +10306 924 111386 1 +1702 766 111402 2 +10301 49 111419 2 +1392 64 111442 13 +9621 188 111443 29 +544 1545 111443 29 +3110 38 111487 14 +4982 1555 111489 10 +5209 647 111489 10 +6450 566 111534 2 +10766 1362 111534 2 +5856 274 111534 2 +1124 2014 111597 6 +4195 1948 111601 1 +799 2152 111674 5 +9131 1892 111714 1 +4794 282 111717 1 +4711 1731 111775 1 +6579 471 111775 1 +10685 866 111789 13 +11716 353 111789 13 +9348 1 111789 13 +4504 1388 111880 1 +4149 1759 111969 9 +10622 1261 112067 36 +7633 1607 112071 11 +1033 359 112071 11 +9907 1193 112080 10 +1587 1009 112080 10 +3633 192 112174 2 +3963 1289 112200 3 +5889 716 112283 8 +8397 481 112283 8 +9238 1000 112288 21 +3951 1027 112291 10 +8299 1175 112291 10 +4631 597 112301 9 +5046 19 112329 1 +4787 1873 112427 8 +5881 1749 112480 6 +4402 59 112562 1 +5145 1213 112577 1 +7649 468 112594 1 +884 833 112602 11 +4467 1698 112689 2 +6184 2148 112701 44 +7503 54 112701 44 +3573 412 112705 2 +5441 202 112771 1 +10831 483 112771 1 +5786 1921 112790 7 +8910 281 112790 7 +6396 603 112797 1 +2631 2176 112863 16 +4588 663 112922 96 +1723 1955 112925 21 +2167 247 112925 21 +7443 490 112960 52 +10592 2085 112965 1 +1150 1177 113002 1 +11690 621 113002 1 +10439 404 113002 1 +10033 1297 113006 1 +2532 905 113006 1 +8699 1137 113044 1 +8747 1065 113044 1 +6958 924 113044 1 +7389 141 113044 1 +8867 141 113044 1 +10867 141 113044 1 +11238 453 113077 1 +6193 860 113118 11 +5771 302 113118 11 +712 1040 113118 11 +2834 62 113160 10 +5645 363 113172 47 +12474 171 113172 47 +9411 1239 113172 47 +5174 1259 113175 59 +8749 294 113261 1 +1003 1840 113270 6 +5823 1885 113300 34 +9387 1446 113303 1 +2195 756 113303 1 +2449 610 113316 26 +9133 1689 113319 1 +381 513 113319 1 +10246 772 113324 1 +10853 449 113325 14 +11995 580 113325 14 +9557 1301 113357 22 +8974 1512 113424 51 +9325 1620 113464 21 +8002 582 113464 21 +7332 2024 113471 1 +4572 1917 113481 19 +3345 844 113518 1 +8670 1668 113570 1 +10907 676 113610 40 +4108 1795 113613 13 +4403 407 113613 13 +11337 1287 113663 51 +10892 915 113663 51 +3524 1476 113680 9 +5354 1174 113685 21 +11335 1313 113688 9 +2169 202 113699 4 +5042 1708 113699 4 +4750 247 113733 1 +4980 738 113826 1 +5833 1464 113826 1 +10577 1469 113925 20 +1241 733 113925 20 +5935 2121 113979 1 +8393 81 113979 1 +7240 2039 114044 10 +9076 163 114044 10 +6927 163 114044 10 +2640 2139 114062 1 +7479 1036 114096 1 +10765 318 114108 8 +1187 1214 114123 4 +2182 864 114212 1 +4429 75 114215 8 +12239 361 114287 10 +9729 1736 114367 16 +3475 466 114367 16 +4353 76 114368 2 +903 1003 114370 51 +9782 336 114370 51 +6933 2156 114415 19 +2299 46 114415 19 +1752 458 114419 5 +5466 928 114419 5 +7716 875 114421 16 +8938 1016 114443 5 +10133 270 114446 31 +7952 1932 114446 31 +9072 58 114544 7 +2022 2141 114560 1 +3232 263 114566 1 +2595 1431 114566 1 +10126 1673 114585 17 +3858 937 114636 41 +9129 19 114661 52 +8271 917 114709 1 +526 1750 114764 23 +3406 2188 114776 6 +8345 66 114835 19 +10714 291 114844 1 +6095 1911 114844 1 +3485 19 114934 4 +7645 460 114938 6 +4973 239 114949 13 +6970 1963 114949 13 +8205 1370 115017 1 +7525 2116 115043 78 +2691 86 115043 78 +2217 1981 115083 1 +899 333 115084 22 +4069 1617 115128 1 +10098 1692 115175 1 +1478 1285 115239 5 +7634 267 115240 10 +7927 1935 115240 10 +4898 1865 115242 4 +2556 1483 115270 13 +4163 719 115270 13 +2225 70 115271 1 +10509 2057 115271 1 +1719 789 115312 11 +1549 2113 115314 1 +8553 89 115314 1 +8171 1940 115315 1 +4271 262 115315 1 +7227 1452 115353 1 +1521 1422 115388 2 +4785 125 115389 46 +6747 1523 115458 4 +2466 1507 115461 19 +5209 445 115484 2 +6529 1668 115484 2 +9971 1116 115503 26 +7729 1327 115531 2 +11363 456 115593 58 +3231 1283 115601 5 +11238 239 115601 5 +8949 618 115690 69 +8527 174 115690 69 +2129 872 115697 1 +9751 1015 115699 7 +5214 1074 115711 1 +469 8 115711 1 +8036 201 115789 22 +2468 398 115789 22 +10534 1603 115789 22 +10893 71 115862 1 +8976 2012 115862 1 +10073 275 115875 40 +3125 686 115932 5 +5988 1423 115942 2 +2080 779 115942 2 +10635 804 115943 2 +5327 702 115968 13 +1345 318 115977 19 +6792 170 115977 19 +1519 1874 115978 16 +54 2182 115984 1 +330 781 115991 1 +27 1421 115991 1 +5166 1366 115993 7 +9772 1956 116000 1 +5022 287 116064 56 +4410 423 116066 7 +6846 806 116066 7 +7587 239 116093 11 +953 1963 116093 11 +10858 1719 116120 56 +10386 483 116120 56 +3682 2157 116155 7 +1533 1545 116203 29 +8763 184 116243 7 +8092 2071 116244 1 +2845 131 116244 1 +1861 221 116245 2 +10199 748 116245 2 +9078 410 116270 7 +7924 19 116270 7 +5400 1984 116275 30 +1100 1338 116366 18 +3444 1369 116412 1 +7478 1469 116420 12 +5609 733 116420 12 +6099 2158 116518 16 +10880 991 116520 1 +10846 1211 116520 1 +954 473 116613 1 +3152 2141 116628 1 +7584 61 116628 1 +9209 1459 116631 16 +10480 18 116632 4 +2924 1305 116632 4 +3821 484 116658 1 +3410 1833 116676 4 +6605 1168 116678 1 +4321 622 116683 15 +11193 1036 116712 1 +8652 1166 116712 1 +7315 341 116726 2 +5068 446 116730 6 +6441 984 116730 6 +10764 772 116730 6 +3751 299 116762 2 +2590 2016 116763 1 +6640 261 116779 15 +5793 1748 116792 58 +2780 109 116806 1 +5205 1884 116806 1 +4090 857 116869 7 +10809 942 116869 7 +4018 403 116869 7 +7820 1169 116878 4 +1475 757 116878 4 +4412 276 116878 4 +4680 1727 116879 15 +8612 475 116879 15 +10012 871 116930 43 +10512 392 116935 8 +11190 152 116994 1 +6306 351 116994 1 +4766 756 116994 1 +6043 183 116996 1 +5150 333 117004 15 +3094 1824 117007 1 +4837 378 117007 1 +5971 1235 117071 1 +5877 1105 117106 15 +1577 1740 117193 61 +11328 345 117193 61 +10429 117 117193 61 +1178 2031 117194 8 +9700 171 117194 8 +10396 406 117245 20 +10555 1413 117304 2 +901 1725 117373 11 +2425 1888 117408 10 +3184 399 117412 2 +2419 179 117412 2 +7547 49 117412 2 +7541 2005 117504 15 +9700 1510 117509 67 +8263 928 117554 1 +1282 836 117567 1 +8878 801 117592 27 +7511 286 117594 40 +1898 569 117671 1 +10740 1358 117671 1 +1960 1526 117675 25 +4129 676 117675 25 +3407 812 117694 7 +6180 1956 117697 1 +2745 1590 117750 65 +7179 255 117750 65 +90 1596 117836 14 +145 1766 117932 9 +8765 880 117963 4 +1710 1852 118018 1 +10364 1827 118039 1 +5161 1787 118110 19 +5204 420 118111 3 +10170 1782 118111 3 +10359 413 118131 34 +6018 765 118176 1 +354 1271 118235 10 +4685 931 118235 10 +4729 58 118249 7 +3139 421 118327 9 +9077 1528 118403 1 +7399 218 118411 1 +1139 2083 118420 17 +6417 119 118420 17 +9505 2153 118510 1 +108 49 118510 1 +1269 725 118528 1 +9104 1477 118528 1 +7460 789 118591 2 +1854 2175 118636 1 +10068 1966 118651 1 +10028 1874 118655 12 +354 328 118655 12 +3743 1252 118705 6 +8473 1185 118718 1 +5648 504 118770 1 +11378 329 118770 1 +7441 606 118787 43 +5597 1105 118788 1 +791 2187 118800 1 +3111 678 118804 12 +6479 1675 118807 3 +10264 737 118808 1 +5161 1842 118809 5 +3365 1031 118830 18 +7653 1171 118830 18 +8202 326 118843 1 +8764 1000 118919 2 +5831 672 118919 2 +1732 80 118919 2 +2072 1536 118940 3 +10553 292 118975 9 +6392 375 118975 9 +4763 1535 118975 9 +8681 1609 118987 2 +10031 593 118987 2 +2809 1526 119014 1 +4831 676 119014 1 +4784 1301 119015 1 +9278 327 119015 1 +10840 574 119015 1 +3274 1833 119026 34 +7482 1836 119102 5 +755 563 119140 3 +7787 1222 119200 48 +9581 980 119200 48 +11127 54 119270 26 +10482 552 119270 26 +6958 1581 119352 1 +6572 1589 119353 26 +6230 258 119380 13 +6945 898 119380 13 +10221 1109 119387 12 +8151 1537 119415 3 +10403 88 119415 3 +1366 577 119415 3 +5543 1172 119421 13 +9964 899 119431 1 +3993 282 119442 25 +4911 93 119535 11 +2877 1356 119536 4 +2156 504 119536 4 +5046 342 119536 4 +10590 1102 119537 1 +6344 1593 119541 1 +809 342 119541 1 +2932 1579 119545 5 +10961 616 119546 1 +2757 1443 119613 56 +6964 262 119619 8 +6321 1842 119620 1 +7896 1702 119621 1 +11048 11 119621 1 +11799 809 119632 31 +5746 1393 119632 31 +5362 1425 119638 13 +997 1781 119674 1 +8659 114 119684 1 +4111 1930 119685 1 +1732 272 119685 1 +3655 1462 119688 25 +2670 1847 119748 1 +8491 2063 119749 1 +7372 139 119749 1 +9774 1109 119816 1 +405 1056 119817 26 +416 1146 119817 26 +4275 1074 119823 25 +2404 1128 119823 25 +1384 1120 119825 1 +5807 1077 119835 25 +1992 502 119835 25 +5921 623 119835 25 +3477 1233 119836 4 +9008 563 119854 1 +5574 619 119858 9 +5032 243 119858 9 +6092 812 119921 36 +8606 445 119921 36 +1076 396 119931 1 +10619 483 119952 41 +4178 1528 119977 13 +10982 800 120015 1 +7452 198 120102 3 +6675 787 120116 5 +7269 382 120116 5 +2002 609 120130 32 +2397 1258 120164 49 +8261 829 120181 5 +6355 833 120181 5 +5020 1222 120183 1 +9876 617 120183 1 +10990 363 120183 1 +2897 914 120186 10 +1124 267 120228 2 +5837 658 120228 2 +2597 899 120296 35 +1894 1303 120296 35 +3950 600 120296 35 +3349 1083 120387 26 +1864 1956 120392 20 +10712 246 120392 20 +9601 971 120408 30 +3936 727 120474 1 +10357 352 120488 1 +4221 211 120527 63 +10646 366 120543 3 +8034 1309 120562 1 +551 893 120562 1 +10037 660 120592 1 +6348 973 120592 1 +4713 569 120592 1 +8423 1904 120597 1 +8978 298 120597 1 +2565 2123 120634 1 +10134 1073 120651 1 +504 1004 120706 15 +9875 769 120706 15 +382 429 120706 15 +10030 2099 120724 2 +4816 816 120763 1 +478 444 120763 1 +10538 414 120773 1 +7475 288 120775 1 +824 1008 120775 1 +7844 906 120775 1 +9603 1817 120781 11 +7644 385 120781 11 +4180 546 120791 1 +4798 1510 120814 6 +5903 692 120814 6 +4654 1944 120829 1 +4885 258 120829 1 +7647 1581 120842 22 +7254 2004 120941 24 +4206 438 120948 1 +6570 1549 120959 5 +5359 517 120959 5 +2595 653 120961 1 +9576 1223 120963 9 +8492 979 120963 9 +4155 431 120974 4 +10542 2147 120975 33 +8683 1969 120977 12 +10111 877 121050 1 +11534 527 121056 3 +8305 1516 121118 18 +2243 1936 121204 4 +9066 133 121205 4 +8983 2069 121205 4 +3457 133 121205 4 +11673 143 121271 12 +11193 1340 121309 16 +7620 2092 121364 1 +5632 110 121364 1 +10873 740 121369 51 +1291 1462 121369 51 +4796 1372 121384 5 +3787 1073 121398 1 +6250 25 121412 39 +5236 1226 121412 39 +10877 189 121423 1 +4765 748 121423 1 +7937 1169 121423 1 +6281 915 121428 1 +9132 346 121434 51 +5183 151 121434 51 +9701 1337 121476 25 +9516 601 121492 1 +2295 1601 121492 1 +7825 458 121493 12 +3663 1934 121498 29 +9900 142 121498 29 +4255 591 121509 2 +1813 1245 121513 33 +4416 887 121532 15 +114 1391 121533 2 +5799 811 121533 2 +2927 864 121555 23 +9815 381 121555 23 +1701 763 121555 23 +5960 194 121555 23 +24 1211 121588 15 +4856 1023 121667 29 +8605 2072 121688 1 +5668 1320 121691 5 +1087 882 121691 5 +206 1467 121705 7 +11432 518 121706 1 +9376 255 121757 15 +2883 151 121757 15 +8613 238 121757 15 +4650 1544 121760 2 +10249 658 121760 2 +5837 373 121783 2 +2829 834 121798 1 +7412 1023 121831 1 +10701 1577 121915 1 +2796 1933 121920 1 +6641 145 121922 13 +2486 715 121922 13 +2694 261 121922 13 +4481 504 121923 2 +2659 248 121923 2 +5055 1557 121991 15 +4776 1096 121995 1 +5562 1250 121996 1 +2910 588 122041 3 +9847 1278 122113 2 +8972 2079 122115 63 +9774 123 122115 63 +10657 1402 122138 41 +2835 1719 122231 28 +3520 1911 122246 15 +905 291 122246 15 +272 1272 122251 91 +9915 1009 122270 43 +1581 1193 122270 43 +5796 1461 122300 15 +6949 901 122331 24 +10544 1027 122339 13 +5147 1539 122377 1 +2205 504 122405 5 +9774 99 122418 2 +9267 1091 122424 28 +10501 1544 122497 8 +5715 1528 122499 8 +5429 674 122499 8 +1356 388 122499 8 +6689 26 122575 1 +3673 1946 122580 27 +1631 501 122581 9 +10291 129 122585 1 +2657 444 122585 1 +836 587 122585 1 +7868 1295 122593 1 +8326 2133 122595 25 +8858 1739 122599 18 +3965 1565 122604 1 +2940 474 122605 45 +3567 256 122609 2 +2892 664 122609 2 +2618 1233 122707 1 +2409 969 122707 1 +6344 2180 122708 53 +5626 1255 122803 14 +4324 158 122804 1 +3545 1993 122811 1 +1734 68 122811 1 +1172 2199 122826 1 +9620 522 122827 52 +5712 1679 122858 21 +9673 1246 122907 40 +9912 2128 122941 17 +1120 74 122941 17 +7249 141 122975 4 +4798 2061 122975 4 +347 1026 123004 36 +5934 505 123005 16 +4198 524 123006 21 +2615 1522 123010 1 +8090 1005 123101 4 +9945 657 123101 4 +8245 1461 123104 1 +3223 599 123104 1 +8681 1245 123115 62 +2672 1190 123152 1 +11666 446 123152 1 +1356 809 123153 10 +8577 257 123184 9 +240 1264 123197 30 +8285 1408 123201 3 +10762 794 123201 3 +1283 1546 123204 17 +9732 930 123205 1 +3139 1272 123205 1 +2543 692 123235 24 +2787 1087 123255 5 +6971 715 123258 54 +863 2011 123265 15 +6160 917 123296 1 +105 245 123357 3 +10198 1947 123381 36 +9410 1167 123393 2 +1123 1723 123403 10 +161 290 123473 4 +5977 2031 123476 33 +5089 773 123571 15 +3037 1429 123571 15 +3965 147 123572 1 +3627 587 123572 1 +5650 1622 123579 13 +141 1208 123631 1 +3885 250 123727 23 +2207 1396 123728 23 +4652 50 123747 3 +8117 30 123754 5 +8690 1549 123766 5 +800 653 123766 5 +11351 904 123769 15 +5254 1298 123769 15 +9731 862 123813 1 +8450 658 123815 1 +8357 1401 123815 1 +6668 801 123815 1 +2926 927 123868 1 +12149 162 123943 1 +2729 679 123953 63 +7333 1610 123964 1 +6100 592 123964 1 +9728 2011 123966 1 +6813 191 123966 1 +8933 135 123973 1 +3434 2069 123975 1 +1983 1268 123976 1 +4505 137 123977 71 +11329 558 124075 1 +3124 607 124076 12 +8340 83 124115 9 +8908 2013 124115 9 +3753 90 124124 21 +4640 122 124124 21 +11175 797 124124 21 +9039 637 124124 21 +1472 107 124124 21 +10661 449 124124 21 +677 1276 124197 10 +5782 1307 124204 29 +1155 895 124204 29 +889 1977 124288 38 +10701 1999 124291 10 +9389 614 124311 2 +417 1021 124323 3 +6662 733 124331 69 +3887 745 124428 1 +7832 924 124436 50 +5279 1426 124437 2 +9461 1466 124501 35 +2342 1054 124544 10 +5522 687 124544 10 +8033 461 124544 10 +8681 1468 124552 1 +5064 1900 124567 19 +4892 1732 124587 19 +8304 322 124602 4 +8548 1620 124605 4 +9172 1458 124606 9 +7155 901 124610 7 +8369 368 124610 7 +3024 1555 124614 34 +1931 518 124639 1 +12593 42 124698 4 +9171 1393 124715 1 +5715 166 124736 1 +7137 462 124736 1 +4271 464 124746 47 +4855 1034 124782 1 +9798 14 124798 1 +2217 222 124803 10 +1651 855 124829 1 +10351 1464 124851 74 +5060 738 124851 74 +7961 1071 124854 1 +11329 214 124855 1 +5376 2147 124865 1 +3611 836 124894 12 +2257 2089 124906 6 +8940 1169 124988 1 +1499 2183 124996 6 +2962 19 124996 6 +10487 2170 125005 1 +11321 589 125008 3 +10801 1711 125009 1 +3353 2176 125014 1 +6180 449 125050 6 +6031 1753 125050 6 +6538 324 125050 6 +5400 1386 125081 4 +9066 170 125143 35 +2934 1276 125145 9 +2447 926 125145 9 +11261 646 125156 1 +8678 47 125157 1 +8664 1768 125160 1 +6661 1255 125195 23 +11207 1008 125241 40 +6676 837 125241 40 +1798 830 125256 1 +6289 507 125256 1 +11348 715 125305 1 +2483 1487 125305 1 +109 1604 125343 1 +8486 381 125351 1 +11706 173 125426 6 +1924 553 125426 6 +6398 248 125478 11 +2826 1676 125481 27 +1607 672 125484 1 +11109 684 125484 1 +3059 201 125517 2 +5928 639 125574 16 +7924 156 125636 1 +982 1692 125636 1 +1449 354 125636 1 +6426 1294 125648 3 +12077 26 125648 3 +10005 805 125668 3 +1920 1229 125729 21 +7506 973 125729 21 +1607 2027 125826 8 +1353 1774 125845 15 +5543 428 125845 15 +6824 456 125872 1 +384 513 125958 1 +4492 49 126035 54 +10259 694 126046 4 +6556 1350 126102 7 +37 421 126102 7 +6189 1529 126106 4 +589 1737 126145 15 +4860 209 126186 8 +3069 1702 126225 27 +1952 500 126225 27 +10537 1658 126229 18 +5218 1948 126306 39 +7115 49 126306 39 +2035 343 126312 6 +6551 402 126334 1 +1862 111 126334 1 +2619 1895 126338 1 +6580 1075 126358 19 +6951 240 126367 5 +633 805 126367 5 +6719 1869 126368 28 +6336 1025 126371 27 +2763 280 126371 27 +231 669 126447 16 +2103 368 126460 16 +5449 2097 126506 16 +9711 1042 126507 35 +3202 981 126507 35 +6766 1752 126531 8 +2356 450 126531 8 +11361 1301 126538 8 +4927 1926 126583 2 +3960 552 126622 12 +4076 905 126622 12 +11932 454 126641 1 +360 657 126666 1 +9067 15 126666 1 +9715 1971 126751 41 +9423 231 126751 41 +11088 421 126824 1 +8315 1562 126878 6 +7943 2017 126976 45 +7997 181 127017 1 +9109 1577 127083 5 +3922 625 127083 5 +7319 537 127133 2 +1133 572 127156 13 +3565 825 127233 1 +7769 1078 127239 15 +11383 860 127242 3 +3933 1342 127242 3 +8237 583 127244 52 +1128 1619 127244 52 +3314 424 127285 22 +11046 1003 127285 22 +6920 1913 127307 7 +10110 1914 127391 3 +2823 1423 127474 3 +7751 1232 127478 24 +876 465 127478 24 +8553 505 127478 24 +8020 2013 127554 1 +7329 1063 127614 1 +6848 304 127668 1 +860 851 127688 15 +3470 240 127738 3 +7485 1340 127791 3 +5597 862 127791 3 +7901 1840 127862 1 +3659 320 127862 1 +1896 58 127875 1 +4871 1620 127875 1 +10079 1629 127888 19 +9872 125 127896 2 +905 1733 127976 20 +7456 218 128039 22 +8030 403 128040 1 +1220 427 128040 1 +8335 495 128055 12 +31 383 128084 1 +10566 657 128176 64 +395 1524 128176 64 +9978 1141 128209 15 +7590 1495 128277 1 +11987 607 128278 1 +8069 1336 128283 1 +5896 185 128283 1 +502 274 128287 1 +1501 117 128344 4 +2867 2074 128375 1 +9651 283 128376 2 +10590 1039 128383 1 +4009 51 128383 1 +2497 1112 128383 1 +10804 189 128391 2 +8528 735 128391 2 +6613 1633 128475 2 +5356 455 128524 1 +3644 1312 128527 12 +6566 1134 128569 13 +11670 423 128569 13 +4283 716 128572 43 +978 1486 128572 43 +2905 2145 128617 3 +10185 1073 128619 1 +8019 1823 128660 1 +8102 465 128746 1 +11110 309 128748 4 +9242 1032 128757 16 +3065 919 128788 1 +10283 2116 128853 6 +3934 1146 128927 6 +7676 639 128946 5 +1027 1686 128971 20 +4813 1692 128973 5 +5354 2176 129028 48 +11199 26 129028 48 +2009 850 129062 1 +8744 1037 129131 1 +3438 1760 129139 54 +6161 1217 129163 19 +122 985 129163 19 +5295 1177 129212 1 +10394 1414 129213 1 +7052 656 129213 1 +8944 466 129269 35 +3102 1493 129337 35 +430 709 129337 35 +532 2019 129344 1 +1704 1571 129345 1 +4473 533 129346 15 +881 1401 129413 7 +2925 573 129414 2 +5310 494 129424 2 +7099 1293 129424 2 +7679 442 129434 1 +3586 892 129457 14 +10934 1184 129482 15 +5071 146 129482 15 +1677 1207 129483 22 +1800 810 129483 22 +5117 995 129483 22 +1397 1436 129484 5 +5781 456 129484 5 +3339 26 129484 5 +8760 284 129484 5 +11008 740 129498 1 +11667 308 129591 1 +1483 464 129591 1 +7670 1893 129669 1 +8223 1480 129692 1 +7954 722 129692 1 +686 388 129692 1 +6354 56 129692 1 +434 9 129692 1 +6022 2032 129693 1 +8868 1599 129776 3 +8408 774 129805 34 +7176 1428 129805 34 +9862 1466 129806 1 +8868 736 129806 1 +4321 143 129816 1 +3806 678 129816 1 +3295 1697 129889 4 +2701 1603 129890 3 +6968 70 129907 19 +2880 1328 129975 36 +3152 247 129977 1 +2113 1940 129980 1 +10409 772 129985 76 +3607 1430 129985 76 +2863 1114 129996 1 +249 1857 129997 1 +8299 345 129997 1 +7914 2108 130006 30 +9507 94 130006 30 +6266 1359 130012 3 +6573 843 130012 3 +1764 1889 130032 1 +2824 2122 130042 2 +6147 1726 130043 9 +9367 1301 130058 29 +7620 1092 130124 23 +6417 1110 130124 23 +481 492 130134 1 +7558 172 130165 5 +174 6 130165 5 +354 1134 130165 5 +1834 585 130222 17 +5064 452 130224 47 +2427 1068 130308 14 +2058 1975 130405 1 +7832 227 130405 1 +8730 1218 130500 3 +11281 1180 130535 1 +8156 410 130535 1 +4543 612 130535 1 +10455 174 130538 18 +11099 316 130538 18 +3418 301 130538 18 +1821 817 130575 1 +10027 1385 130575 1 +11017 1535 130634 2 +3069 667 130634 2 +9762 625 130655 16 +7972 1743 130699 29 +4240 1750 130754 2 +1102 452 130754 2 +1893 161 130783 1 +9711 1971 130807 8 +5895 68 130809 27 +1773 1703 130834 1 +7776 575 130849 3 +1265 1277 130870 1 +7695 1867 130914 2 +7582 661 130988 92 +2684 679 131057 1 +3536 1246 131058 28 +2273 1880 131060 7 +7898 568 131066 31 +5725 271 131080 6 +3130 1096 131119 4 +1835 2098 131189 75 +10518 104 131189 75 +9643 1095 131220 12 +3945 1759 131229 7 +8944 122 131229 7 +5971 321 131229 7 +2081 210 131243 22 +5662 854 131243 22 +785 1274 131252 7 +1699 928 131252 7 +5601 313 131253 16 +8161 824 131261 1 +4913 365 131261 1 +2250 1630 131354 3 +6895 524 131355 1 +3213 913 131370 10 +1515 1410 131387 1 +6838 1067 131473 1 +3337 1913 131489 5 +8751 763 131540 7 +2006 156 131540 7 +3842 1169 131604 22 +1446 54 131680 1 +8208 1640 131711 6 +5190 562 131711 6 +2833 1341 131746 24 +6541 1205 131750 4 +1129 1921 131774 2 +197 1758 131828 66 +1515 444 131828 66 +9874 440 131828 66 +796 1968 131864 21 +8540 306 131866 48 +10857 311 131866 48 +11985 368 131877 12 +5362 796 131938 5 +4631 1316 131956 1 +42 1923 132022 4 +2662 279 132022 4 +5542 169 132089 51 +332 863 132103 1 +1256 324 132103 1 +1097 1638 132175 4 +1564 564 132175 4 +1709 112 132177 9 +9887 2090 132177 9 +9515 2202 132260 25 +10584 65 132262 1 +8953 390 132267 8 +4941 567 132331 20 +842 428 132374 1 +3457 904 132374 1 +6409 1080 132458 1 +2051 1122 132458 1 +1137 261 132501 1 +12053 389 132541 33 +731 511 132579 3 +2873 89 132583 22 +2384 866 132595 2 +5206 1789 132596 19 +3832 872 132597 1 +7771 1330 132597 1 +4814 1835 132634 4 +4686 1798 132650 18 +4007 404 132650 18 +10123 1388 132668 1 +1047 814 132668 1 +1565 313 132674 2 +8207 847 132728 22 +1244 1355 132728 22 +6147 492 132739 52 +7498 2032 132822 5 +7639 732 132918 2 +416 1294 132942 66 +9025 105 132952 1 +465 1516 133029 1 +4 41 133039 19 +9966 606 133039 19 +247 1594 133044 49 +7049 503 133090 7 +4389 1652 133101 15 +1259 550 133101 15 +3598 1100 133103 4 +5883 1102 133103 4 +8553 1036 133106 40 +9951 79 133130 2 +5469 1030 133156 70 +3697 1172 133156 70 +8021 1814 133157 41 +10997 1631 133168 19 +5237 571 133168 19 +12623 50 133180 28 +1966 471 133180 28 +6045 1363 133184 1 +1198 1112 133197 1 +1186 1876 133198 1 +10119 1416 133250 52 +1992 32 133255 1 +1793 1235 133255 1 +5593 310 133256 3 +10272 1667 133257 1 +2782 2030 133272 43 +11007 950 133365 1 +355 1905 133381 11 +9324 297 133381 11 +6036 1338 133382 36 +6519 134 133434 10 +6278 635 133434 10 +7682 30 133441 1 +5759 1129 133533 5 +6719 973 133563 6 +161 1229 133563 6 +94 319 133573 1 +10846 1291 133574 1 +4903 911 133574 1 +11985 587 133587 5 +1217 420 133587 5 +4006 1875 133605 7 +163 1251 133610 11 +10344 1631 133671 82 +1126 2065 133722 10 +3141 1817 133724 25 +1592 931 133727 1 +9889 962 133738 14 +194 1312 133742 14 +5672 890 133742 14 +8869 393 133760 1 +8287 1353 133760 1 +8512 727 133761 27 +359 1774 133853 1 +9055 255 133878 1 +2150 129 133950 33 +31 474 133955 1 +484 835 133997 32 +324 2029 134067 1 +10952 173 134067 1 +6156 65 134150 2 +7209 1842 134150 2 +626 413 134153 5 +196 196 134153 5 +4504 1449 134166 2 +8053 100 134173 1 +9067 192 134173 1 +172 338 134220 30 +3652 1043 134254 61 +11710 361 134256 2 +7637 2167 134266 50 +10037 35 134266 50 +9556 42 134267 6 +7135 1761 134267 6 +8891 399 134267 6 +663 5 134267 6 +11827 511 134317 8 +7113 352 134325 2 +521 1850 134325 2 +4788 709 134386 80 +438 1841 134387 7 +7225 1371 134451 8 +1583 1220 134452 50 +11164 967 134464 56 +9834 1235 134464 56 +7118 286 134501 48 +5965 594 134501 48 +11061 1044 134543 51 +8116 1275 134576 1 +728 238 134670 15 +11554 1081 134679 8 +10108 1089 134726 16 +8724 1398 134742 16 +688 561 134760 16 +10061 1045 134827 4 +9996 1756 134838 80 +2593 2141 134839 12 +2458 61 134839 12 +9834 95 134875 33 +4351 779 134875 33 +7547 273 134875 33 +8145 1401 134896 20 +2438 734 134989 16 +3160 1468 134989 16 +2235 14 135001 1 +6145 1659 135001 1 +6085 341 135057 7 +2377 1865 135074 1 +551 383 135151 13 +5445 1602 135151 13 +8926 217 135151 13 +5827 1965 135244 1 +356 878 135249 23 +4617 132 135249 23 +10197 435 135249 23 +2245 1412 135269 1 +3844 1065 135319 6 +11089 1531 135414 13 +2640 1249 135415 10 +850 870 135415 10 +5717 792 135417 55 +539 983 135443 6 +10265 131 135451 1 +9390 2086 135461 31 +5355 1485 135527 32 +1897 717 135527 32 +7101 1373 135547 1 +3322 829 135547 1 +11200 1092 135556 1 +11505 183 135556 1 +11114 658 135556 1 +607 781 135556 1 +1958 1973 135561 77 +3047 30 135561 77 +8180 1564 135657 1 +11961 54 135657 1 +9109 124 135657 1 +6249 584 135657 1 +10378 669 135658 12 +8159 584 135743 11 +2061 1615 135743 11 +1868 952 135775 14 +7178 219 135846 1 +1874 958 135853 1 +9502 372 135853 1 +6868 872 135853 1 +7937 598 135860 2 +865 1586 135860 2 +6886 382 135912 43 +1869 1820 135912 43 +5250 1149 135930 1 +7111 454 135931 3 +10722 1748 135931 3 +1816 330 135996 1 +5066 664 136028 2 +4103 1452 136062 3 +5385 1684 136072 6 +4688 1262 136075 70 +3399 995 136099 2 +5473 1135 136179 34 +3917 135 136195 1 +1405 1567 136285 1 +9208 1634 136302 12 +3083 568 136302 12 +3401 45 136397 23 +5954 1915 136410 48 +3018 762 136443 25 +9744 1250 136443 25 +3411 2050 136448 1 +6841 2141 136488 2 +2595 61 136488 2 +8903 1062 136536 1 +3305 596 136545 3 +2566 1606 136545 3 +2373 200 136553 9 +627 545 136578 11 +11089 563 136587 16 +4468 1322 136676 23 +7295 1160 136684 34 +2781 1941 136690 1 +7789 261 136690 1 +3509 199 136716 3 +4764 1104 136778 1 +390 1970 136782 4 +9856 1320 136784 52 +4244 474 136881 6 +11822 296 136884 1 +8196 334 136884 1 +8980 1572 136936 3 +7751 1495 136950 1 +4468 707 136950 1 +6007 2126 137034 11 +10045 122 137035 16 +6875 1467 137035 16 +4980 613 137035 16 +5549 567 137091 6 +5014 1196 137167 6 +5862 496 137185 1 +1040 642 137207 16 +2483 676 137287 29 +6414 779 137353 17 +10118 894 137356 20 +3271 1446 137361 14 +9080 571 137417 16 +4352 195 137418 6 +11183 1298 137418 6 +7148 293 137423 47 +3476 1082 137437 2 +10778 118 137437 2 +1438 127 137437 2 +482 147 137491 10 +11157 1197 137495 1 +1377 1486 137512 13 +9104 716 137512 13 +942 2011 137534 2 +5897 191 137534 2 +6569 1526 137575 1 +11355 676 137575 1 +7127 1303 137626 18 +11005 899 137626 18 +11860 449 137656 1 +8116 496 137681 4 +6809 2063 137688 1 +10757 1336 137734 1 +2023 604 137734 1 +1095 608 137735 50 +2909 1926 137790 2 +10048 1076 137793 10 +4431 313 137793 10 +6071 813 137793 10 +11211 1159 137799 31 +8269 922 137845 17 +8679 1725 137851 2 +4985 411 137876 4 +4934 950 137876 4 +819 380 137876 4 +6291 1321 137879 35 +3880 1248 137880 10 +10172 1659 137972 27 +4748 1019 137973 1 +7946 1037 137973 1 +4566 146 137973 1 +9405 324 138003 11 +4552 1366 138096 1 +6828 1160 138103 3 +8304 62 138103 3 +2400 43 138166 4 +6568 860 138217 1 +1105 235 138227 1 +1383 2121 138234 14 +7124 81 138234 14 +6189 30 138236 1 +6373 380 138261 1 +1938 1595 138264 38 +1356 607 138264 38 +273 25 138264 38 +8142 722 138319 1 +4964 709 138319 1 +7708 634 138374 80 +4021 2138 138421 1 +11119 1260 138423 1 +323 1493 138436 1 +7378 709 138436 1 +3419 863 138487 54 +6456 994 138487 54 +11433 332 138505 28 +10547 809 138519 1 +6758 1684 138585 4 +6881 840 138666 1 +7185 1362 138666 1 +1812 536 138666 1 +4283 50 138667 1 +9383 1570 138667 1 +5020 420 138671 36 +4542 421 138671 36 +4267 1361 138671 36 +5288 1741 138673 20 +3028 461 138673 20 +6716 806 138706 9 +11600 464 138708 3 +6963 2055 138773 1 +6864 147 138773 1 +691 659 138808 22 +9105 926 138824 43 +8319 1276 138824 43 +9357 1039 138840 6 +3519 1117 138865 1 +7005 1085 138865 1 +6117 1453 138929 13 +2213 749 138929 13 +3862 1269 138931 32 +2555 288 139007 4 +4074 445 139059 33 +1548 1757 139059 33 +6204 1267 139106 1 +4551 2012 139114 1 +6736 1651 139165 14 +11175 85 139168 25 +7029 373 139168 25 +9642 287 139168 25 +12512 80 139169 10 +6556 348 139169 10 +10121 1774 139169 10 +4703 1736 139239 6 +9370 466 139239 6 +9478 1722 139271 1 +4427 480 139271 1 +3708 2026 139277 3 +6949 176 139277 3 +143 1841 139279 6 +793 426 139343 21 +82 87 139375 2 +11925 326 139375 2 +1829 91 139386 1 +5537 1505 139388 1 +10398 206 139395 2 +3950 1492 139395 2 +4716 2141 139401 5 +9513 1118 139432 1 +5030 1661 139451 5 +4077 1221 139461 16 +10810 1228 139476 31 +9473 1804 139575 4 +4941 1087 139626 1 +7641 1115 139626 1 +9234 2139 139628 2 +2248 63 139628 2 +8007 526 139653 21 +8394 1676 139653 21 +9469 289 139654 3 +5951 854 139744 1 +8364 158 139744 1 +8925 1190 139744 1 +9288 625 139775 23 +1865 1366 139850 16 +4607 143 139874 27 +3787 1163 139964 13 +4537 727 139997 1 +7365 1107 140039 1 +2575 1827 140137 6 +1910 1146 140140 34 +10947 1662 140157 6 +5240 74 140157 6 +9694 1094 140194 26 +2256 1811 140211 9 +6618 391 140211 9 +2163 1964 140219 1 +5352 1860 140306 2 +10857 690 140324 70 +640 810 140356 2 +7304 195 140375 13 +1913 851 140386 1 +6990 683 140408 9 +3924 1565 140475 1 +918 637 140475 1 +11549 39 140526 1 +5413 893 140534 1 +10670 743 140609 24 +4328 69 140642 47 +5179 1353 140642 47 +9832 963 140678 48 +11467 87 140678 48 +10289 1120 140756 20 +11124 308 140757 3 +5852 56 140766 1 +744 2146 140766 1 +10670 1204 140781 4 +8494 998 140781 4 +8154 1887 140787 1 +3347 1071 140792 12 +8849 969 140816 7 +7156 856 140816 7 +11222 742 140828 1 +5034 1275 140829 61 +5139 677 140831 8 +10614 676 140832 1 +2849 1233 140836 1 +1782 871 140839 1 +7546 1008 140842 7 +3718 986 140846 18 +6693 1291 140893 7 +4211 484 140893 7 +9488 427 140893 7 +9429 1412 140967 25 +10950 887 140971 75 +5909 1548 140977 6 +1306 1863 140983 1 +10408 1916 140989 4 +2062 1483 141059 2 +1972 19 141152 1 +7162 1418 141152 1 +8589 765 141152 1 +9744 448 141154 4 +10778 1290 141182 48 +9534 616 141186 1 +9353 1492 141186 1 +10166 710 141186 1 +8409 1093 141218 1 +4494 1072 141266 4 +5708 1130 141266 4 +8863 1120 141306 1 +7789 1038 141356 11 +7669 1310 141445 1 +2519 703 141458 5 +1437 1611 141552 5 +2735 1259 141565 11 +6656 943 141565 11 +6719 1120 141601 2 +2101 663 141601 2 +9376 419 141631 3 +5572 1482 141631 3 +8798 1745 141664 2 +3772 1309 141698 1 +5822 451 141737 1 +2346 258 141753 1 +4741 1482 141812 6 +4641 720 141812 6 +1797 231 141858 7 +5682 1088 141885 8 +3661 1114 141885 8 +9831 1641 141886 1 +5614 1480 141888 5 +5200 2157 141889 21 +1536 1950 141958 51 +1558 252 141958 51 +7436 1823 142029 1 +5762 379 142029 1 +3046 1049 142088 1 +9772 1964 142132 12 +2769 212 142133 1 +7382 649 142133 1 +5297 612 142177 17 +3763 584 142226 1 +2279 1509 142306 1 +5538 230 142332 1 +8517 487 142335 94 +6999 1223 142335 94 +8468 492 142335 94 +8933 443 142335 94 +6714 71 142335 94 +4355 887 142395 32 +6299 231 142396 2 +8754 1353 142402 1 +9811 426 142467 2 +4758 1122 142467 2 +9729 1074 142469 1 +1740 644 142533 19 +7272 1167 142534 54 +5457 40 142545 1 +9027 175 142545 1 +7928 29 142545 1 +10769 548 142545 1 +11057 526 142545 1 +670 590 142569 11 +8246 1766 142603 1 +9779 657 142607 1 +10987 993 142661 1 +5488 1165 142661 1 +2574 1467 142663 3 +4369 562 142663 3 +10801 1663 142705 3 +2558 1154 142755 1 +9053 1988 142782 14 +7614 688 142796 1 +8521 1514 142796 1 +659 55 142797 2 +3556 2043 142835 15 +78 159 142835 15 +8782 241 142882 53 +7331 1036 142897 22 +5754 1166 142897 22 +7152 60 142986 11 +3554 1163 143056 5 +3078 415 143056 5 +2353 624 143056 5 +6905 2119 143059 20 +3005 1643 143060 38 +6544 2037 143068 61 +2811 165 143068 61 +3048 1509 143072 5 +6176 473 143072 5 +9013 220 143072 5 +7684 2093 143131 4 +6428 1663 143176 1 +1651 2115 143181 1 +10554 87 143181 1 +303 1675 143197 5 +8255 313 143197 5 +674 1243 143218 21 +4970 499 143219 11 +11197 827 143296 1 +1884 920 143297 5 +4306 1528 143339 1 +4140 544 143356 2 +270 1502 143439 2 +9997 1919 143465 39 +600 461 143475 1 +11411 817 143477 12 +5889 217 143550 41 +747 899 143572 1 +1565 489 143663 1 +3516 1934 143666 1 +708 952 143713 7 +3844 473 143729 8 +8719 1240 143729 8 +6360 1286 143742 12 +3870 1159 143743 35 +4155 717 143772 1 +11599 175 143774 5 +7293 1712 143774 5 +6515 315 143774 5 +4117 898 143780 13 +1177 1404 143835 6 +2978 798 143835 6 +7068 1269 143855 1 +5985 2057 143863 11 +6645 733 143868 32 +6989 351 143871 39 +10912 427 143938 6 +1052 422 143942 27 +8347 378 143995 1 +6279 1322 144019 41 +838 128 144030 16 +9105 30 144060 1 +80 956 144077 1 +7266 397 144077 1 +822 41 144117 20 +8337 2095 144180 2 +9309 1787 144224 1 +4460 1909 144265 1 +4221 494 144272 15 +6499 800 144277 36 +980 1402 144277 36 +8431 2143 144289 1 +9499 653 144331 1 +9371 1065 144335 1 +8899 142 144350 1 +7583 269 144350 1 +1931 1740 144425 1 +6637 642 144476 1 +159 1560 144476 1 +7532 1439 144544 60 +3073 1329 144591 1 +12167 322 144674 25 +1452 1847 144773 15 +3039 1652 144839 17 +2854 550 144839 17 +3752 365 144839 17 +7228 2152 144848 22 +3758 50 144848 22 +2642 1408 144862 43 +386 1140 144893 1 +11271 1179 144895 1 +10676 1023 144895 1 +5715 523 144915 43 +4065 346 144943 28 +9551 1856 144943 28 +8990 1968 144951 22 +8347 1443 144960 1 +6426 782 145006 20 +7437 1579 145013 1 +2998 1773 145099 25 +3044 1961 145118 1 +771 639 145128 41 +3938 1907 145220 5 +3127 1764 145230 19 +8847 90 145230 19 +8749 348 145230 19 +1947 100 145235 1 +79 1633 145240 2 +5069 569 145240 2 +2152 1341 145324 2 +8668 861 145324 2 +5240 198 145326 8 +5352 951 145378 1 +4839 1679 145433 7 +370 87 145493 31 +2529 1125 145495 1 +6243 1077 145495 1 +10232 1242 145526 1 +38 686 145526 1 +7706 1580 145600 18 +2075 624 145647 5 +1551 417 145649 2 +364 2162 145662 2 +9672 357 145664 53 +8193 423 145678 1 +7746 990 145678 1 +5672 1620 145707 1 +6347 1227 145720 3 +9066 1917 145750 22 +7971 95 145765 28 +1893 324 145765 28 +7548 1101 145804 2 +2162 378 145804 2 +8292 969 145858 6 +11175 1512 145862 1 +4759 431 145904 17 +898 1413 145919 13 +8639 525 145921 14 +9956 1656 145935 46 +9571 2188 145936 5 +7887 14 145936 5 +3948 92 145937 7 +8162 691 145955 4 +529 1179 145955 4 +10697 84 145955 4 +2018 2081 145959 1 +4035 1953 146000 10 +3498 643 146079 13 +10412 1493 146080 3 +1709 1148 146091 22 +9415 1243 146092 2 +3221 37 146093 1 +5225 164 146093 1 +7745 792 146106 5 +6171 604 146106 5 +3883 806 146106 5 +7923 661 146107 5 +9551 774 146126 2 +12548 116 146173 8 +3364 943 146173 8 +7807 812 146173 8 +6484 1504 146191 1 +4197 455 146197 1 +5484 405 146203 35 +9016 2117 146215 2 +7436 85 146215 2 +5202 1785 146224 8 +4457 2113 146228 1 +11035 532 146253 1 +2005 1098 146259 12 +3681 1024 146259 12 +5123 1170 146343 15 +10389 2078 146344 34 +3330 124 146344 34 +6162 714 146359 1 +5036 113 146359 1 +9717 516 146403 7 +3933 1675 146403 7 +11791 608 146405 4 +9954 1594 146405 4 +8267 592 146406 19 +5513 671 146406 19 +6485 1346 146434 5 +5777 499 146466 25 +7038 689 146469 1 +9331 1478 146479 1 +7330 806 146480 1 +1554 1572 146509 47 +4561 989 146543 2 +9133 1724 146590 1 +1091 727 146625 3 +5110 58 146626 1 +2747 853 146628 1 +10401 1211 146628 1 +10278 138 146628 1 +652 1445 146631 1 +11158 635 146639 13 +7880 973 146653 1 +4348 537 146653 1 +9179 2008 146671 2 +10620 904 146674 8 +2246 382 146682 1 +2751 1384 146735 20 +2939 1841 146819 3 +7542 361 146819 3 +4044 1125 146824 69 +5127 917 146899 8 +2672 1285 146899 8 +10755 303 146984 7 +2448 1380 147002 1 +4385 822 147002 1 +3343 935 147089 1 +8365 756 147140 1 +7463 1617 147148 13 +5240 585 147148 13 +3192 1337 147223 1 +1959 865 147223 1 +5774 2136 147225 7 +968 66 147225 7 +1649 153 147230 14 +9828 1629 147236 1 +10057 1543 147248 6 +8849 1290 147256 1 +5006 912 147256 1 +5776 1277 147261 1 +7319 713 147308 5 +7687 267 147311 1 +8843 34 147383 3 +6952 2128 147384 10 +5995 1462 147445 4 +10066 740 147445 4 +3713 891 147448 24 +6283 1744 147454 3 +5202 280 147456 1 +6644 1820 147456 1 +2142 102 147456 1 +5830 1632 147457 57 +5167 2121 147471 1 +9255 1250 147561 20 +5751 952 147561 20 +1851 959 147570 1 +7428 363 147636 16 +12203 418 147641 2 +6811 945 147641 2 +5073 2078 147687 4 +5556 124 147687 4 +11228 683 147781 1 +8434 982 147830 1 +2094 1220 147830 1 +3396 1074 147887 70 +6358 880 147887 70 +1022 248 147887 70 +5304 912 147914 50 +6160 374 147914 50 +4244 1683 147917 1 +878 403 147917 1 +3946 1620 147922 1 +2381 582 147922 1 +4170 1784 147950 25 +3797 936 148041 5 +959 1057 148099 39 +8987 1386 148112 4 +6006 1390 148125 1 +4200 1986 148212 1 +12050 216 148212 1 +7517 1533 148238 1 +6656 669 148238 1 +10289 378 148245 6 +702 28 148245 6 +5216 1512 148245 6 +1069 284 148245 6 +10755 636 148305 1 +43 1566 148305 1 +12020 585 148322 1 +8872 530 148359 73 +6008 33 148428 1 +5775 2042 148431 14 +4517 463 148490 42 +2868 893 148513 1 +7612 524 148542 1 +7863 1191 148542 1 +11923 648 148577 1 +6409 679 148577 1 +2484 875 148577 1 +7624 1570 148579 1 +4556 1943 148584 30 +1563 1510 148589 65 +7712 692 148589 65 +5244 799 148591 19 +6778 1403 148591 19 +1574 1115 148593 5 +529 1452 148643 1 +1021 1188 148684 1 +7106 1027 148693 1 +1199 1175 148693 1 +1367 2095 148714 2 +10584 1870 148715 1 +1543 1373 148790 28 +2691 406 148800 1 +2964 287 148802 1 +3759 1163 148804 15 +2181 1039 148804 15 +11359 1270 148841 1 +4833 911 148868 1 +3860 1967 148888 1 +6440 235 148888 1 +954 471 148896 1 +6210 1725 148896 1 +4897 1265 148936 1 +10761 806 149013 1 +5276 528 149023 10 +5912 8 149023 10 +3498 1666 149023 10 +5638 1191 149040 9 +7746 1692 149047 12 +9018 1543 149094 11 +3040 1433 149100 14 +11464 1222 149101 3 +5786 46 149101 3 +7844 1800 149119 5 +1094 350 149119 5 +6734 679 149136 5 +9800 1523 149136 5 +8691 1649 149171 14 +9443 177 149171 14 +1554 553 149171 14 +4022 1538 149206 1 +1858 2197 149211 2 +606 1323 149225 1 +1072 179 149244 14 +11086 1253 149333 2 +878 571 149419 1 +417 707 149422 2 +4406 1495 149422 2 +6409 283 149423 25 +3375 1585 149423 25 +1570 263 149510 1 +8117 515 149561 1 +3328 78 149561 1 +4610 1297 149617 1 +1917 240 149621 6 +10528 1097 149621 6 +2052 879 149624 1 +4806 1323 149624 1 +42 72 149698 23 +7502 800 149700 5 +9733 144 149708 1 +3717 1762 149712 11 +1342 980 149718 1 +8921 1222 149718 1 +7133 1366 149761 1 +7710 303 149763 15 +1771 387 149763 15 +10754 1783 149764 1 +9856 416 149764 1 +1081 1956 149790 78 +9663 246 149790 78 +5931 1517 149808 11 +8027 263 149820 1 +1365 851 149842 1 +8325 1701 149858 6 +2607 28 149896 14 +4146 229 149896 14 +202 1499 149985 13 +10364 1181 150077 1 +11217 1021 150077 1 +6022 328 150077 1 +8446 938 150092 2 +8351 62 150108 4 +2724 1486 150108 4 +7410 654 150108 4 +2419 128 150133 1 +10727 1584 150133 1 +8111 489 150137 1 +6770 2089 150151 1 +2678 49 150159 35 +8207 2138 150172 40 +6707 2152 150235 1 +8124 50 150235 1 +7866 50 150235 1 +10165 44 150272 1 +4631 1193 150278 19 +2547 1359 150293 40 +6905 977 150294 16 +3956 1228 150297 1 +2050 1477 150303 30 +7602 1241 150326 2 +3277 2177 150337 7 +6953 2178 150351 1 +125 1264 150354 34 +8951 1135 150357 26 +2329 445 150379 5 +1888 535 150389 1 +6341 1325 150477 1 +707 1768 150482 2 +9898 1571 150490 3 +678 1720 150503 10 +1888 482 150503 10 +3355 144 150524 1 +10629 1692 150524 1 +2809 273 150527 1 +8781 1841 150527 1 +8089 88 150527 1 +3962 937 150578 2 +7425 984 150616 27 +9527 1218 150616 27 +5384 1841 150656 6 +1145 361 150656 6 +6828 1973 150754 1 +4701 730 150767 3 +6327 803 150767 3 +12333 292 150784 3 +9082 2062 150824 4 +2635 140 150824 4 +6554 1235 150827 3 +725 1636 150906 2 +2554 611 150926 26 +7582 1606 150928 7 +10519 2079 150931 1 +9911 541 150935 1 +5787 607 150938 28 +6241 1595 150938 28 +4067 153 150938 28 +1712 1717 150953 1 +6214 980 150969 19 +6937 602 150997 1 +3553 1111 150997 1 +10554 489 150997 1 +1487 1992 151082 1 +3316 1297 151116 1 +2922 294 151116 1 +4023 1270 151117 20 +922 902 151160 7 +5892 240 151160 7 +8202 1060 151160 7 +1993 610 151237 20 +5503 18 151249 1 +2872 411 151251 16 +6192 1686 151257 1 +5925 265 151269 1 +8911 1108 151324 1 +12428 150 151324 1 +2778 477 151334 12 +1743 138 151337 1 +383 1723 151361 11 +6763 613 151362 1 +11451 415 151362 1 +3469 1367 151413 1 +2499 835 151413 1 +11810 214 151419 1 +284 69 151432 19 +99 1322 151436 1 +3408 238 151498 1 +10208 1137 151546 1 +456 1065 151546 1 +9905 1232 151590 9 +1647 1745 151611 20 +10538 457 151611 20 +3154 1006 151634 1 +9319 675 151636 8 +2580 1748 151685 4 +6558 454 151685 4 +3625 1946 151712 1 +6735 430 151730 1 +8842 780 151734 84 +8796 32 151739 1 +11704 789 151770 45 +5037 1614 151812 1 +10828 282 151812 1 +6737 677 151814 66 +4900 924 151818 71 +6153 868 151818 71 +5328 444 151819 1 +176 187 151877 1 +4890 361 151905 2 +12024 581 151905 2 +3146 1694 151906 1 +6294 810 151928 8 +8183 350 151929 28 +7212 257 151930 6 +9652 1030 151957 1 +3676 1888 151972 67 +739 305 151978 1 +1671 1744 151991 1 +7962 148 151991 1 +5469 2006 152031 9 +5111 1716 152095 1 +6886 1055 152101 33 +11280 1089 152101 33 +7798 1574 152187 7 +8037 128 152279 31 +1827 1394 152307 17 +4348 569 152328 22 +9172 651 152328 22 +8969 2077 152364 12 +2359 1545 152424 1 +9179 1574 152483 7 +4115 67 152533 25 +10975 118 152533 25 +2144 1276 152613 49 +9383 402 152613 49 +9982 524 152613 49 +3186 1296 152615 34 +9567 750 152615 34 +6299 692 152634 46 +6001 891 152634 46 +5927 70 152642 1 +6658 304 152642 1 +992 644 152667 25 +2174 2023 152669 1 +5810 1228 152733 21 +239 1337 152749 21 +8590 906 152761 72 +2090 1237 152761 72 +8079 59 152761 72 +1072 418 152806 39 +9783 618 152904 32 +1772 1507 152904 32 +4184 77 152904 32 +61 747 152944 1 +6785 1191 152950 20 +2243 1560 152981 5 +281 21 152993 1 +5388 1238 152995 41 +8487 1698 153019 13 +3578 504 153019 13 +4666 1618 153033 2 +8310 584 153033 2 +10579 1633 153127 1 +10319 1224 153155 1 +8756 249 153170 1 +4585 1215 153254 53 +11467 153 153257 1 +11574 476 153258 48 +11225 404 153283 1 +6093 1642 153346 12 +9451 2184 153347 3 +5177 1925 153349 8 +440 277 153349 8 +1944 539 153417 26 +2351 1663 153417 26 +3030 132 153417 26 +2748 1356 153454 26 +10287 14 153479 6 +6232 1480 153570 5 +2903 1371 153606 9 +9315 831 153606 9 +5589 369 153688 35 +5577 107 153695 1 +10469 1828 153695 1 +9310 109 153695 1 +5779 1954 153760 16 +2505 797 153837 82 +8560 1089 153837 82 +9825 420 153849 11 +5867 1602 153852 6 +11510 567 153852 6 +5477 1276 153914 4 +10355 1519 153962 4 +9612 1968 153972 21 +5359 155 153982 2 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=6873,vsize=12703,psize=2202,req_len=7574).predictor.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=6873,vsize=12703,psize=2202,req_len=7574).predictor.best" new file mode 100644 index 0000000000000000000000000000000000000000..176ea53e18e1e6c882e1ac977b78482ecf7dab34 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=6873,vsize=12703,psize=2202,req_len=7574).predictor.best" @@ -0,0 +1 @@ +474559979 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=6873,vsize=12703,psize=2202,req_len=7574).prophet.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=6873,vsize=12703,psize=2202,req_len=7574).prophet.best" new file mode 100644 index 0000000000000000000000000000000000000000..44daaf6d59b920af52dc4886950725fce30a72dd --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=6873,vsize=12703,psize=2202,req_len=7574).prophet.best" @@ -0,0 +1 @@ +451823718 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=6873,vsize=12703,psize=2202,req_len=7574).simple.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=6873,vsize=12703,psize=2202,req_len=7574).simple.best" new file mode 100644 index 0000000000000000000000000000000000000000..ca91b5977eff215875d183b107a396d2edb1a205 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/gen(mode=naive,seed=6873,vsize=12703,psize=2202,req_len=7574).simple.best" @@ -0,0 +1 @@ +499800419 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap1.in" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap1.in" new file mode 100644 index 0000000000000000000000000000000000000000..303e6c048d271c37898e8054283b0dcb75a02dfe --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap1.in" @@ -0,0 +1,6 @@ +300 100 5 +0 100 0 100 +100 100 200 100 +0 100 400 100 +100 100 600 100 +0 100 800 100 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap1.predictor.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap1.predictor.best" new file mode 100644 index 0000000000000000000000000000000000000000..77b5618f77386798ef7d12b26b27a72008929642 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap1.predictor.best" @@ -0,0 +1 @@ +36500 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap1.prophet.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap1.prophet.best" new file mode 100644 index 0000000000000000000000000000000000000000..77b5618f77386798ef7d12b26b27a72008929642 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap1.prophet.best" @@ -0,0 +1 @@ +36500 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap1.simple.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap1.simple.best" new file mode 100644 index 0000000000000000000000000000000000000000..77b5618f77386798ef7d12b26b27a72008929642 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap1.simple.best" @@ -0,0 +1 @@ +36500 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap2.in" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap2.in" new file mode 100644 index 0000000000000000000000000000000000000000..bbff5e8c8ff79e7d5ff2c05568df652a820ddf10 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap2.in" @@ -0,0 +1,4 @@ +300 200 3 +0 100 500 100000 +100 100 500 100000 +200 10 501 10000 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap2.predictor.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap2.predictor.best" new file mode 100644 index 0000000000000000000000000000000000000000..8cb2b06d8a7c5f75fdfe4069064fd52fbefc6e7f --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap2.predictor.best" @@ -0,0 +1 @@ +118800 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap2.prophet.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap2.prophet.best" new file mode 100644 index 0000000000000000000000000000000000000000..8cb2b06d8a7c5f75fdfe4069064fd52fbefc6e7f --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap2.prophet.best" @@ -0,0 +1 @@ +118800 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap2.simple.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap2.simple.best" new file mode 100644 index 0000000000000000000000000000000000000000..02ed385e1045b1a74bee82806ceaa9c9a47681f8 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap2.simple.best" @@ -0,0 +1 @@ +126400 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap3.in" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap3.in" new file mode 100644 index 0000000000000000000000000000000000000000..4120c6ae9b2e83675fafbf88cea74ec827f82f1e --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap3.in" @@ -0,0 +1,4 @@ +300 200 3 +0 100 500 100000 +100 100 500 100000 +200 50 108000 10000 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap3.predictor.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap3.predictor.best" new file mode 100644 index 0000000000000000000000000000000000000000..54b17530bf1a439769cc51c60e6c3eec39aa837d --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap3.predictor.best" @@ -0,0 +1 @@ +122000 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap3.prophet.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap3.prophet.best" new file mode 100644 index 0000000000000000000000000000000000000000..54b17530bf1a439769cc51c60e6c3eec39aa837d --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap3.prophet.best" @@ -0,0 +1 @@ +122000 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap3.simple.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap3.simple.best" new file mode 100644 index 0000000000000000000000000000000000000000..392c5c8c25ec459a6ec18a05343dff1ec12b5cfc --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap3.simple.best" @@ -0,0 +1 @@ +128000 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap4.in" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap4.in" new file mode 100644 index 0000000000000000000000000000000000000000..e3d184dfa0cb998b275dab501e641844a8196682 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap4.in" @@ -0,0 +1,4 @@ +300 200 3 +0 100 500 100000 +100 50 500 100000 +200 50 200000 100000 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap4.predictor.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap4.predictor.best" new file mode 100644 index 0000000000000000000000000000000000000000..67f9d558228c9c1504e25bc20af4b79b16acc307 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap4.predictor.best" @@ -0,0 +1 @@ +300000 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap4.prophet.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap4.prophet.best" new file mode 100644 index 0000000000000000000000000000000000000000..67f9d558228c9c1504e25bc20af4b79b16acc307 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap4.prophet.best" @@ -0,0 +1 @@ +300000 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap4.simple.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap4.simple.best" new file mode 100644 index 0000000000000000000000000000000000000000..67f9d558228c9c1504e25bc20af4b79b16acc307 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/overlap4.simple.best" @@ -0,0 +1 @@ +300000 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/reuse1.in" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/reuse1.in" new file mode 100644 index 0000000000000000000000000000000000000000..0934b67b9c6f3e310a488a054cf78f65f6183e8a --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/reuse1.in" @@ -0,0 +1,5 @@ +300 100 4 +0 100 0 10 +100 100 10 10 +0 100 20 10 +100 100 30 10 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/reuse1.predictor.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/reuse1.predictor.best" new file mode 100644 index 0000000000000000000000000000000000000000..3de4e04d81b4e174b89b150b910e4a6fe12f31c7 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/reuse1.predictor.best" @@ -0,0 +1 @@ +28040 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/reuse1.prophet.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/reuse1.prophet.best" new file mode 100644 index 0000000000000000000000000000000000000000..3de4e04d81b4e174b89b150b910e4a6fe12f31c7 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/reuse1.prophet.best" @@ -0,0 +1 @@ +28040 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/reuse1.simple.best" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/reuse1.simple.best" new file mode 100644 index 0000000000000000000000000000000000000000..3de4e04d81b4e174b89b150b910e4a6fe12f31c7 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/tests/reuse1.simple.best" @@ -0,0 +1 @@ +28040 diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/utils/intervals.py" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/utils/intervals.py" new file mode 100644 index 0000000000000000000000000000000000000000..1127d12eeadb4fc1eed97933aebad7412a9afb1b --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/utils/intervals.py" @@ -0,0 +1,127 @@ +from sortedcontainers import SortedList +from bisect import bisect_right + + +class IntervalSet: + def __init__(self): + # Store non-overlapping intervals [(l, r), ...] + self.intervals = SortedList() + self.total_length = 0 # Sum of all interval lengths + + def _find_left(self, x): + """Find index of interval possibly containing x (or its left neighbor).""" + i = bisect_right(self.intervals, (x, float('inf'))) + if i: + i -= 1 + return i + + def add(self, l, r): # noqa: E741 + """Insert interval [l, r) and merge with overlapping/adjacent ones.""" + if l >= r: + return + + i = self._find_left(l) + new_l, new_r = l, r + + merged = [] + while i < len(self.intervals): + il, ir = self.intervals[i] + if ir < new_l: + i += 1 + continue + if il > new_r: + break + # Merge + new_l = min(new_l, il) + new_r = max(new_r, ir) + merged.append(i) + i += 1 + + # Remove merged intervals and update total_length + for j in reversed(merged): + il, ir = self.intervals[j] + self.total_length -= (ir - il) + del self.intervals[j] + + # Add new merged interval + self.intervals.add((new_l, new_r)) + self.total_length += (new_r - new_l) + + def remove(self, l, r): # noqa: E741 + """Remove interval [l, r) and adjust possible splits.""" + if l >= r: + return + + i = self._find_left(l) + updates = [] + while i < len(self.intervals): + il, ir = self.intervals[i] + if il >= r: + break + if ir <= l: + i += 1 + continue + + # Remove current interval + self.total_length -= (ir - il) + del self.intervals[i] + + # Add back non-overlapping parts + if il < l: + updates.append((il, l)) + if ir > r: + updates.append((r, ir)) + + for iv in updates: + self.intervals.add(iv) + self.total_length += (iv[1] - iv[0]) + + def contains(self, l, r): # noqa: E741 + """Check if [l, r) is fully covered by existing intervals.""" + if l >= r: + return True + i = self._find_left(l) + if i >= len(self.intervals): + return False + il, ir = self.intervals[i] + if not (il <= l < ir): + return False + while l < r and i < len(self.intervals): + il, ir = self.intervals[i] + if il > l: + return False + if ir >= r: + return True + l = ir # noqa: E741 + i += 1 + return False + + def difference(self, l, r) -> list[tuple[int, int]]: # noqa: E741 + """Return list of intervals in [l, r) not covered by the set.""" + uncovered = [] + if l >= r: + return uncovered + pos = l + i = self._find_left(l) + while pos < r: + if i >= len(self.intervals): + uncovered.append((pos, r)) + break + il, ir = self.intervals[i] + if ir <= pos: + i += 1 + continue + if il > pos: + uncovered.append((pos, min(il, r))) + pos = max(pos, ir) + if pos >= r: + break + i += 1 + return uncovered + + def total(self) -> int: + """Return total covered length.""" + return self.total_length + + def __repr__(self): + return f"IntervalSet({list(self.intervals)}, total={self.total_length})" diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/utils/test_intervals.py" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/utils/test_intervals.py" new file mode 100644 index 0000000000000000000000000000000000000000..b58743ddb83bcb3b3f998c3f615d29770a0b0379 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/utils/test_intervals.py" @@ -0,0 +1,260 @@ +import unittest + +from .intervals import IntervalSet + + +class TestIntervalSet(unittest.TestCase): + def setUp(self): + """每个测试前创建一个新的 IntervalSet 实例""" + self.interval_set = IntervalSet() + + def test_empty_set(self): + """测试空集合""" + self.assertEqual(self.interval_set.total(), 0.0) + self.assertEqual(len(self.interval_set.intervals), 0) + + def test_add_single_interval(self): + """测试添加单个区间""" + self.interval_set.add(0, 10) + self.assertEqual(self.interval_set.total(), 10.0) + self.assertEqual(len(self.interval_set.intervals), 1) + self.assertIn((0, 10), self.interval_set.intervals) + + def test_add_invalid_interval(self): + """测试添加无效区间 (l >= r)""" + self.interval_set.add(10, 10) + self.assertEqual(self.interval_set.total(), 0.0) + self.interval_set.add(10, 5) + self.assertEqual(self.interval_set.total(), 0.0) + + def test_add_non_overlapping_intervals(self): + """测试添加不重叠的区间""" + self.interval_set.add(0, 5) + self.interval_set.add(10, 15) + self.interval_set.add(20, 25) + self.assertEqual(self.interval_set.total(), 15.0) + self.assertEqual(len(self.interval_set.intervals), 3) + + def test_add_overlapping_intervals(self): + """测试添加重叠区间会合并""" + self.interval_set.add(0, 10) + self.interval_set.add(5, 15) + self.assertEqual(self.interval_set.total(), 15.0) + self.assertEqual(len(self.interval_set.intervals), 1) + self.assertIn((0, 15), self.interval_set.intervals) + + def test_add_adjacent_intervals(self): + """测试添加相邻区间会合并""" + self.interval_set.add(0, 10) + self.interval_set.add(10, 20) + self.assertEqual(self.interval_set.total(), 20.0) + self.assertEqual(len(self.interval_set.intervals), 1) + self.assertIn((0, 20), self.interval_set.intervals) + + def test_add_contained_interval(self): + """测试添加被包含的区间""" + self.interval_set.add(0, 20) + self.interval_set.add(5, 15) + self.assertEqual(self.interval_set.total(), 20.0) + self.assertEqual(len(self.interval_set.intervals), 1) + self.assertIn((0, 20), self.interval_set.intervals) + + def test_add_containing_interval(self): + """测试添加包含现有区间的区间""" + self.interval_set.add(5, 15) + self.interval_set.add(0, 20) + self.assertEqual(self.interval_set.total(), 20.0) + self.assertEqual(len(self.interval_set.intervals), 1) + self.assertIn((0, 20), self.interval_set.intervals) + + def test_add_multiple_overlapping_intervals(self): + """测试添加多个重叠区间""" + self.interval_set.add(0, 5) + self.interval_set.add(10, 15) + self.interval_set.add(20, 25) + self.interval_set.add(3, 22) # 合并前三个区间 + self.assertEqual(self.interval_set.total(), 25.0) + self.assertEqual(len(self.interval_set.intervals), 1) + self.assertIn((0, 25), self.interval_set.intervals) + + def test_remove_from_empty(self): + """测试从空集合移除区间""" + self.interval_set.remove(0, 10) + self.assertEqual(self.interval_set.total(), 0.0) + + def test_remove_invalid_interval(self): + """测试移除无效区间""" + self.interval_set.add(0, 10) + self.interval_set.remove(5, 5) + self.assertEqual(self.interval_set.total(), 10.0) + + def test_remove_entire_interval(self): + """测试移除整个区间""" + self.interval_set.add(0, 10) + self.interval_set.remove(0, 10) + self.assertEqual(self.interval_set.total(), 0.0) + self.assertEqual(len(self.interval_set.intervals), 0) + + def test_remove_left_part(self): + """测试移除区间的左侧部分""" + self.interval_set.add(0, 10) + self.interval_set.remove(0, 5) + self.assertEqual(self.interval_set.total(), 5.0) + self.assertIn((5, 10), self.interval_set.intervals) + + def test_remove_right_part(self): + """测试移除区间的右侧部分""" + self.interval_set.add(0, 10) + self.interval_set.remove(5, 10) + self.assertEqual(self.interval_set.total(), 5.0) + self.assertIn((0, 5), self.interval_set.intervals) + + def test_remove_middle_part(self): + """测试移除区间的中间部分(分裂)""" + self.interval_set.add(0, 10) + self.interval_set.remove(3, 7) + self.assertEqual(self.interval_set.total(), 6.0) + self.assertEqual(len(self.interval_set.intervals), 2) + self.assertIn((0, 3), self.interval_set.intervals) + self.assertIn((7, 10), self.interval_set.intervals) + + def test_remove_multiple_intervals(self): + """测试移除跨越多个区间""" + self.interval_set.add(0, 5) + self.interval_set.add(10, 15) + self.interval_set.add(20, 25) + self.interval_set.remove(3, 22) + self.assertEqual(self.interval_set.total(), 6.0) + self.assertEqual(len(self.interval_set.intervals), 2) + self.assertIn((0, 3), self.interval_set.intervals) + self.assertIn((22, 25), self.interval_set.intervals) + + def test_contains_empty_interval(self): + """测试包含空区间(应返回 True)""" + self.assertTrue(self.interval_set.contains(5, 5)) + + def test_contains_full_coverage(self): + """测试完全覆盖的区间""" + self.interval_set.add(0, 10) + self.assertTrue(self.interval_set.contains(0, 10)) + self.assertTrue(self.interval_set.contains(2, 8)) + self.assertTrue(self.interval_set.contains(0, 5)) + self.assertTrue(self.interval_set.contains(5, 10)) + + def test_contains_no_coverage(self): + """测试未覆盖的区间""" + self.interval_set.add(0, 10) + self.assertFalse(self.interval_set.contains(10, 15)) + self.assertFalse(self.interval_set.contains(15, 20)) + + def test_contains_partial_coverage(self): + """测试部分覆盖的区间""" + self.interval_set.add(0, 10) + self.assertFalse(self.interval_set.contains(5, 15)) + self.assertFalse(self.interval_set.contains(-5, 5)) + + def test_contains_multiple_intervals(self): + """测试多个区间的覆盖""" + self.interval_set.add(0, 5) + self.interval_set.add(5, 10) + self.assertTrue(self.interval_set.contains(0, 10)) + self.assertTrue(self.interval_set.contains(3, 7)) + + def test_contains_gap_in_intervals(self): + """测试有间隙的区间""" + self.interval_set.add(0, 5) + self.interval_set.add(10, 15) + self.assertFalse(self.interval_set.contains(0, 15)) + self.assertFalse(self.interval_set.contains(3, 12)) + self.assertTrue(self.interval_set.contains(0, 5)) + self.assertTrue(self.interval_set.contains(10, 15)) + + def test_difference_empty_set(self): + """测试空集合的差集""" + diff = self.interval_set.difference(0, 10) + self.assertEqual(diff, [(0, 10)]) + + def test_difference_invalid_interval(self): + """测试无效区间的差集""" + diff = self.interval_set.difference(10, 10) + self.assertEqual(diff, []) + + def test_difference_full_coverage(self): + """测试完全覆盖的差集""" + self.interval_set.add(0, 10) + diff = self.interval_set.difference(0, 10) + self.assertEqual(diff, []) + diff = self.interval_set.difference(2, 8) + self.assertEqual(diff, []) + + def test_difference_no_coverage(self): + """测试无覆盖的差集""" + self.interval_set.add(20, 30) + diff = self.interval_set.difference(0, 10) + self.assertEqual(diff, [(0, 10)]) + + def test_difference_partial_coverage(self): + """测试部分覆盖的差集""" + self.interval_set.add(5, 15) + diff = self.interval_set.difference(0, 10) + self.assertEqual(diff, [(0, 5)]) + + self.interval_set = IntervalSet() + self.interval_set.add(0, 5) + diff = self.interval_set.difference(0, 10) + self.assertEqual(diff, [(5, 10)]) + + def test_difference_gap_in_intervals(self): + """测试有间隙的差集""" + self.interval_set.add(0, 5) + self.interval_set.add(10, 15) + diff = self.interval_set.difference(0, 15) + self.assertEqual(diff, [(5, 10)]) + + def test_difference_multiple_gaps(self): + """测试多个间隙的差集""" + self.interval_set.add(0, 5) + self.interval_set.add(10, 15) + self.interval_set.add(20, 25) + diff = self.interval_set.difference(0, 30) + self.assertEqual(diff, [(5, 10), (15, 20), (25, 30)]) + + def test_float_intervals(self): + """测试浮点数区间""" + self.interval_set.add(0.5, 10.5) + self.interval_set.add(5.5, 15.5) + self.assertEqual(self.interval_set.total(), 15.0) + self.assertTrue(self.interval_set.contains(1.0, 10.0)) + + def test_complex_operations_sequence(self): + """测试复杂的操作序列""" + # 添加多个区间 + self.interval_set.add(0, 10) + self.interval_set.add(20, 30) + self.interval_set.add(40, 50) + self.assertEqual(self.interval_set.total(), 30.0) + + # 移除部分 + self.interval_set.remove(5, 25) + self.assertEqual(self.interval_set.total(), 20.0) + self.assertIn((0, 5), self.interval_set.intervals) + self.assertIn((25, 30), self.interval_set.intervals) + self.assertIn((40, 50), self.interval_set.intervals) + + # 添加合并区间 + self.interval_set.add(3, 45) + self.assertEqual(self.interval_set.total(), 50.0) + self.assertEqual(len(self.interval_set.intervals), 1) + self.assertIn((0, 50), self.interval_set.intervals) + + def test_repr(self): + """测试字符串表示""" + self.interval_set.add(0, 10) + self.interval_set.add(20, 30) + repr_str = repr(self.interval_set) + self.assertIn("IntervalSet", repr_str) + self.assertIn("total=20", repr_str) + + +if __name__ == '__main__': + unittest.main() diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/uv.lock" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/uv.lock" new file mode 100644 index 0000000000000000000000000000000000000000..ce73aa19855f85edca63aea92899033decbb3ed4 --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/uv.lock" @@ -0,0 +1,526 @@ +version = 1 +revision = 3 +requires-python = ">=3.13" + +[[package]] +name = "chardet" +version = "5.2.0" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "colorlog" +version = "6.10.1" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/a2/61/f083b5ac52e505dfc1c624eafbf8c7589a0d7f32daa398d2e7590efa5fda/colorlog-6.10.1.tar.gz", hash = "sha256:eb4ae5cb65fe7fec7773c2306061a8e63e02efc2c72eba9d27b0fa23c94f1321", size = 17162, upload-time = "2025-10-16T16:14:11.978Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/6d/c1/e419ef3723a074172b68aaa89c9f3de486ed4c2399e2dbd8113a4fdcaf9e/colorlog-6.10.1-py3-none-any.whl", hash = "sha256:2d7e8348291948af66122cff006c9f8da6255d224e7cf8e37d8de2df3bad8c9c", size = 11743, upload-time = "2025-10-16T16:14:10.512Z" }, +] + +[[package]] +name = "contourpy" +version = "1.3.3" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/68/35/0167aad910bbdb9599272bd96d01a9ec6852f36b9455cf2ca67bd4cc2d23/contourpy-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5", size = 293257, upload-time = "2025-07-26T12:01:39.367Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/96/e4/7adcd9c8362745b2210728f209bfbcf7d91ba868a2c5f40d8b58f54c509b/contourpy-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1", size = 274034, upload-time = "2025-07-26T12:01:40.645Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/73/23/90e31ceeed1de63058a02cb04b12f2de4b40e3bef5e082a7c18d9c8ae281/contourpy-1.3.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286", size = 334672, upload-time = "2025-07-26T12:01:41.942Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/ed/93/b43d8acbe67392e659e1d984700e79eb67e2acb2bd7f62012b583a7f1b55/contourpy-1.3.3-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5", size = 381234, upload-time = "2025-07-26T12:01:43.499Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/46/3b/bec82a3ea06f66711520f75a40c8fc0b113b2a75edb36aa633eb11c4f50f/contourpy-1.3.3-cp313-cp313-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67", size = 385169, upload-time = "2025-07-26T12:01:45.219Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/4b/32/e0f13a1c5b0f8572d0ec6ae2f6c677b7991fafd95da523159c19eff0696a/contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9", size = 362859, upload-time = "2025-07-26T12:01:46.519Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/33/71/e2a7945b7de4e58af42d708a219f3b2f4cff7386e6b6ab0a0fa0033c49a9/contourpy-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659", size = 1332062, upload-time = "2025-07-26T12:01:48.964Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/12/fc/4e87ac754220ccc0e807284f88e943d6d43b43843614f0a8afa469801db0/contourpy-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7", size = 1403932, upload-time = "2025-07-26T12:01:51.979Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/a6/2e/adc197a37443f934594112222ac1aa7dc9a98faf9c3842884df9a9d8751d/contourpy-1.3.3-cp313-cp313-win32.whl", hash = "sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d", size = 185024, upload-time = "2025-07-26T12:01:53.245Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/18/0b/0098c214843213759692cc638fce7de5c289200a830e5035d1791d7a2338/contourpy-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263", size = 226578, upload-time = "2025-07-26T12:01:54.422Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/8a/9a/2f6024a0c5995243cd63afdeb3651c984f0d2bc727fd98066d40e141ad73/contourpy-1.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9", size = 193524, upload-time = "2025-07-26T12:01:55.73Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/c0/b3/f8a1a86bd3298513f500e5b1f5fd92b69896449f6cab6a146a5d52715479/contourpy-1.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d", size = 306730, upload-time = "2025-07-26T12:01:57.051Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/3f/11/4780db94ae62fc0c2053909b65dc3246bd7cecfc4f8a20d957ad43aa4ad8/contourpy-1.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216", size = 287897, upload-time = "2025-07-26T12:01:58.663Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/ae/15/e59f5f3ffdd6f3d4daa3e47114c53daabcb18574a26c21f03dc9e4e42ff0/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae", size = 326751, upload-time = "2025-07-26T12:02:00.343Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/0f/81/03b45cfad088e4770b1dcf72ea78d3802d04200009fb364d18a493857210/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20", size = 375486, upload-time = "2025-07-26T12:02:02.128Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/0c/ba/49923366492ffbdd4486e970d421b289a670ae8cf539c1ea9a09822b371a/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99", size = 388106, upload-time = "2025-07-26T12:02:03.615Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/9f/52/5b00ea89525f8f143651f9f03a0df371d3cbd2fccd21ca9b768c7a6500c2/contourpy-1.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b", size = 352548, upload-time = "2025-07-26T12:02:05.165Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/32/1d/a209ec1a3a3452d490f6b14dd92e72280c99ae3d1e73da74f8277d4ee08f/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a", size = 1322297, upload-time = "2025-07-26T12:02:07.379Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/bc/9e/46f0e8ebdd884ca0e8877e46a3f4e633f6c9c8c4f3f6e72be3fe075994aa/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e", size = 1391023, upload-time = "2025-07-26T12:02:10.171Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/b9/70/f308384a3ae9cd2209e0849f33c913f658d3326900d0ff5d378d6a1422d2/contourpy-1.3.3-cp313-cp313t-win32.whl", hash = "sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3", size = 196157, upload-time = "2025-07-26T12:02:11.488Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/b2/dd/880f890a6663b84d9e34a6f88cded89d78f0091e0045a284427cb6b18521/contourpy-1.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8", size = 240570, upload-time = "2025-07-26T12:02:12.754Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/80/99/2adc7d8ffead633234817ef8e9a87115c8a11927a94478f6bb3d3f4d4f7d/contourpy-1.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301", size = 199713, upload-time = "2025-07-26T12:02:14.4Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/72/8b/4546f3ab60f78c514ffb7d01a0bd743f90de36f0019d1be84d0a708a580a/contourpy-1.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a", size = 292189, upload-time = "2025-07-26T12:02:16.095Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/fd/e1/3542a9cb596cadd76fcef413f19c79216e002623158befe6daa03dbfa88c/contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77", size = 273251, upload-time = "2025-07-26T12:02:17.524Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/b1/71/f93e1e9471d189f79d0ce2497007731c1e6bf9ef6d1d61b911430c3db4e5/contourpy-1.3.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5", size = 335810, upload-time = "2025-07-26T12:02:18.9Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/91/f9/e35f4c1c93f9275d4e38681a80506b5510e9327350c51f8d4a5a724d178c/contourpy-1.3.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4", size = 382871, upload-time = "2025-07-26T12:02:20.418Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/b5/71/47b512f936f66a0a900d81c396a7e60d73419868fba959c61efed7a8ab46/contourpy-1.3.3-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36", size = 386264, upload-time = "2025-07-26T12:02:21.916Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/04/5f/9ff93450ba96b09c7c2b3f81c94de31c89f92292f1380261bd7195bea4ea/contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3", size = 363819, upload-time = "2025-07-26T12:02:23.759Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/3e/a6/0b185d4cc480ee494945cde102cb0149ae830b5fa17bf855b95f2e70ad13/contourpy-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b", size = 1333650, upload-time = "2025-07-26T12:02:26.181Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/43/d7/afdc95580ca56f30fbcd3060250f66cedbde69b4547028863abd8aa3b47e/contourpy-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36", size = 1404833, upload-time = "2025-07-26T12:02:28.782Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/e2/e2/366af18a6d386f41132a48f033cbd2102e9b0cf6345d35ff0826cd984566/contourpy-1.3.3-cp314-cp314-win32.whl", hash = "sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d", size = 189692, upload-time = "2025-07-26T12:02:30.128Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/7d/c2/57f54b03d0f22d4044b8afb9ca0e184f8b1afd57b4f735c2fa70883dc601/contourpy-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd", size = 232424, upload-time = "2025-07-26T12:02:31.395Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/18/79/a9416650df9b525737ab521aa181ccc42d56016d2123ddcb7b58e926a42c/contourpy-1.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339", size = 198300, upload-time = "2025-07-26T12:02:32.956Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/1f/42/38c159a7d0f2b7b9c04c64ab317042bb6952b713ba875c1681529a2932fe/contourpy-1.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772", size = 306769, upload-time = "2025-07-26T12:02:34.2Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/c3/6c/26a8205f24bca10974e77460de68d3d7c63e282e23782f1239f226fcae6f/contourpy-1.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77", size = 287892, upload-time = "2025-07-26T12:02:35.807Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/66/06/8a475c8ab718ebfd7925661747dbb3c3ee9c82ac834ccb3570be49d129f4/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13", size = 326748, upload-time = "2025-07-26T12:02:37.193Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/b4/a3/c5ca9f010a44c223f098fccd8b158bb1cb287378a31ac141f04730dc49be/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe", size = 375554, upload-time = "2025-07-26T12:02:38.894Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/80/5b/68bd33ae63fac658a4145088c1e894405e07584a316738710b636c6d0333/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f", size = 388118, upload-time = "2025-07-26T12:02:40.642Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/40/52/4c285a6435940ae25d7410a6c36bda5145839bc3f0beb20c707cda18b9d2/contourpy-1.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0", size = 352555, upload-time = "2025-07-26T12:02:42.25Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/24/ee/3e81e1dd174f5c7fefe50e85d0892de05ca4e26ef1c9a59c2a57e43b865a/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4", size = 1322295, upload-time = "2025-07-26T12:02:44.668Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/3c/b2/6d913d4d04e14379de429057cd169e5e00f6c2af3bb13e1710bcbdb5da12/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f", size = 1391027, upload-time = "2025-07-26T12:02:47.09Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/93/8a/68a4ec5c55a2971213d29a9374913f7e9f18581945a7a31d1a39b5d2dfe5/contourpy-1.3.3-cp314-cp314t-win32.whl", hash = "sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae", size = 202428, upload-time = "2025-07-26T12:02:48.691Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/fa/96/fd9f641ffedc4fa3ace923af73b9d07e869496c9cc7a459103e6e978992f/contourpy-1.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc", size = 250331, upload-time = "2025-07-26T12:02:50.137Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/ae/8c/469afb6465b853afff216f9528ffda78a915ff880ed58813ba4faf4ba0b6/contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b", size = 203831, upload-time = "2025-07-26T12:02:51.449Z" }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30" }, +] + +[[package]] +name = "dataproperty" +version = "1.1.0" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +dependencies = [ + { name = "mbstrdecoder" }, + { name = "typepy", extra = ["datetime"] }, +] +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/0b/81/8c8b64ae873cb9014815214c07b63b12e3b18835780fb342223cfe3fe7d8/dataproperty-1.1.0.tar.gz", hash = "sha256:b038437a4097d1a1c497695c3586ea34bea67fdd35372b9a50f30bf044d77d04", size = 42574, upload-time = "2024-12-31T14:37:26.033Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/21/c2/e12e95e289e6081a40454199ab213139ef16a528c7c86432de545b05a23a/DataProperty-1.1.0-py3-none-any.whl", hash = "sha256:c61fcb2e2deca35e6d1eb1f251a7f22f0dcde63e80e61f0cc18c19f42abfd25b", size = 27581, upload-time = "2024-12-31T14:37:22.657Z" }, +] + +[[package]] +name = "fonttools" +version = "4.60.1" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/4b/42/97a13e47a1e51a5a7142475bbcf5107fe3a68fc34aef331c897d5fb98ad0/fonttools-4.60.1.tar.gz", hash = "sha256:ef00af0439ebfee806b25f24c8f92109157ff3fac5731dc7867957812e87b8d9", size = 3559823, upload-time = "2025-09-29T21:13:27.129Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/7c/5b/cdd2c612277b7ac7ec8c0c9bc41812c43dc7b2d5f2b0897e15fdf5a1f915/fonttools-4.60.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6f68576bb4bbf6060c7ab047b1574a1ebe5c50a17de62830079967b211059ebb", size = 2825777, upload-time = "2025-09-29T21:12:01.22Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/d6/8a/de9cc0540f542963ba5e8f3a1f6ad48fa211badc3177783b9d5cadf79b5d/fonttools-4.60.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:eedacb5c5d22b7097482fa834bda0dafa3d914a4e829ec83cdea2a01f8c813c4", size = 2348080, upload-time = "2025-09-29T21:12:03.785Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/2d/8b/371ab3cec97ee3fe1126b3406b7abd60c8fec8975fd79a3c75cdea0c3d83/fonttools-4.60.1-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b33a7884fabd72bdf5f910d0cf46be50dce86a0362a65cfc746a4168c67eb96c", size = 4903082, upload-time = "2025-09-29T21:12:06.382Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/04/05/06b1455e4bc653fcb2117ac3ef5fa3a8a14919b93c60742d04440605d058/fonttools-4.60.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2409d5fb7b55fd70f715e6d34e7a6e4f7511b8ad29a49d6df225ee76da76dd77", size = 4960125, upload-time = "2025-09-29T21:12:09.314Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/8e/37/f3b840fcb2666f6cb97038793606bdd83488dca2d0b0fc542ccc20afa668/fonttools-4.60.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c8651e0d4b3bdeda6602b85fdc2abbefc1b41e573ecb37b6779c4ca50753a199", size = 4901454, upload-time = "2025-09-29T21:12:11.931Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/fd/9e/eb76f77e82f8d4a46420aadff12cec6237751b0fb9ef1de373186dcffb5f/fonttools-4.60.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:145daa14bf24824b677b9357c5e44fd8895c2a8f53596e1b9ea3496081dc692c", size = 5044495, upload-time = "2025-09-29T21:12:15.241Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/f8/b3/cede8f8235d42ff7ae891bae8d619d02c8ac9fd0cfc450c5927a6200c70d/fonttools-4.60.1-cp313-cp313-win32.whl", hash = "sha256:2299df884c11162617a66b7c316957d74a18e3758c0274762d2cc87df7bc0272", size = 2217028, upload-time = "2025-09-29T21:12:17.96Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/75/4d/b022c1577807ce8b31ffe055306ec13a866f2337ecee96e75b24b9b753ea/fonttools-4.60.1-cp313-cp313-win_amd64.whl", hash = "sha256:a3db56f153bd4c5c2b619ab02c5db5192e222150ce5a1bc10f16164714bc39ac", size = 2266200, upload-time = "2025-09-29T21:12:20.14Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/9a/83/752ca11c1aa9a899b793a130f2e466b79ea0cf7279c8d79c178fc954a07b/fonttools-4.60.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:a884aef09d45ba1206712c7dbda5829562d3fea7726935d3289d343232ecb0d3", size = 2822830, upload-time = "2025-09-29T21:12:24.406Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/57/17/bbeab391100331950a96ce55cfbbff27d781c1b85ebafb4167eae50d9fe3/fonttools-4.60.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8a44788d9d91df72d1a5eac49b31aeb887a5f4aab761b4cffc4196c74907ea85", size = 2345524, upload-time = "2025-09-29T21:12:26.819Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/3d/2e/d4831caa96d85a84dd0da1d9f90d81cec081f551e0ea216df684092c6c97/fonttools-4.60.1-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e852d9dda9f93ad3651ae1e3bb770eac544ec93c3807888798eccddf84596537", size = 4843490, upload-time = "2025-09-29T21:12:29.123Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/49/13/5e2ea7c7a101b6fc3941be65307ef8df92cbbfa6ec4804032baf1893b434/fonttools-4.60.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:154cb6ee417e417bf5f7c42fe25858c9140c26f647c7347c06f0cc2d47eff003", size = 4944184, upload-time = "2025-09-29T21:12:31.414Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/0c/2b/cf9603551c525b73fc47c52ee0b82a891579a93d9651ed694e4e2cd08bb8/fonttools-4.60.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:5664fd1a9ea7f244487ac8f10340c4e37664675e8667d6fee420766e0fb3cf08", size = 4890218, upload-time = "2025-09-29T21:12:33.936Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/fd/2f/933d2352422e25f2376aae74f79eaa882a50fb3bfef3c0d4f50501267101/fonttools-4.60.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:583b7f8e3c49486e4d489ad1deacfb8d5be54a8ef34d6df824f6a171f8511d99", size = 4999324, upload-time = "2025-09-29T21:12:36.637Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/38/99/234594c0391221f66216bc2c886923513b3399a148defaccf81dc3be6560/fonttools-4.60.1-cp314-cp314-win32.whl", hash = "sha256:66929e2ea2810c6533a5184f938502cfdaea4bc3efb7130d8cc02e1c1b4108d6", size = 2220861, upload-time = "2025-09-29T21:12:39.108Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/3e/1d/edb5b23726dde50fc4068e1493e4fc7658eeefcaf75d4c5ffce067d07ae5/fonttools-4.60.1-cp314-cp314-win_amd64.whl", hash = "sha256:f3d5be054c461d6a2268831f04091dc82753176f6ea06dc6047a5e168265a987", size = 2270934, upload-time = "2025-09-29T21:12:41.339Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/fb/da/1392aaa2170adc7071fe7f9cfd181a5684a7afcde605aebddf1fb4d76df5/fonttools-4.60.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:b6379e7546ba4ae4b18f8ae2b9bc5960936007a1c0e30b342f662577e8bc3299", size = 2894340, upload-time = "2025-09-29T21:12:43.774Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/bf/a7/3b9f16e010d536ce567058b931a20b590d8f3177b2eda09edd92e392375d/fonttools-4.60.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9d0ced62b59e0430b3690dbc5373df1c2aa7585e9a8ce38eff87f0fd993c5b01", size = 2375073, upload-time = "2025-09-29T21:12:46.437Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/9b/b5/e9bcf51980f98e59bb5bb7c382a63c6f6cac0eec5f67de6d8f2322382065/fonttools-4.60.1-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:875cb7764708b3132637f6c5fb385b16eeba0f7ac9fa45a69d35e09b47045801", size = 4849758, upload-time = "2025-09-29T21:12:48.694Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/e3/dc/1d2cf7d1cba82264b2f8385db3f5960e3d8ce756b4dc65b700d2c496f7e9/fonttools-4.60.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a184b2ea57b13680ab6d5fbde99ccef152c95c06746cb7718c583abd8f945ccc", size = 5085598, upload-time = "2025-09-29T21:12:51.081Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/5d/4d/279e28ba87fb20e0c69baf72b60bbf1c4d873af1476806a7b5f2b7fac1ff/fonttools-4.60.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:026290e4ec76583881763fac284aca67365e0be9f13a7fb137257096114cb3bc", size = 4957603, upload-time = "2025-09-29T21:12:53.423Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/78/d4/ff19976305e0c05aa3340c805475abb00224c954d3c65e82c0a69633d55d/fonttools-4.60.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f0e8817c7d1a0c2eedebf57ef9a9896f3ea23324769a9a2061a80fe8852705ed", size = 4974184, upload-time = "2025-09-29T21:12:55.962Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/63/22/8553ff6166f5cd21cfaa115aaacaa0dc73b91c079a8cfd54a482cbc0f4f5/fonttools-4.60.1-cp314-cp314t-win32.whl", hash = "sha256:1410155d0e764a4615774e5c2c6fc516259fe3eca5882f034eb9bfdbee056259", size = 2282241, upload-time = "2025-09-29T21:12:58.179Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/8a/cb/fa7b4d148e11d5a72761a22e595344133e83a9507a4c231df972e657579b/fonttools-4.60.1-cp314-cp314t-win_amd64.whl", hash = "sha256:022beaea4b73a70295b688f817ddc24ed3e3418b5036ffcd5658141184ef0d0c", size = 2345760, upload-time = "2025-09-29T21:13:00.375Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/c7/93/0dd45cd283c32dea1545151d8c3637b4b8c53cdb3a625aeb2885b184d74d/fonttools-4.60.1-py3-none-any.whl", hash = "sha256:906306ac7afe2156fcf0042173d6ebbb05416af70f6b370967b47f8f00103bbb", size = 1143175, upload-time = "2025-09-29T21:13:24.134Z" }, +] + +[[package]] +name = "hetero-memory-challenge" +version = "0.2.0" +source = { virtual = "." } +dependencies = [ + { name = "colorlog" }, + { name = "matplotlib" }, + { name = "numpy" }, + { name = "pytablewriter" }, + { name = "sortedcontainers" }, +] + +[package.metadata] +requires-dist = [ + { name = "colorlog", specifier = ">=6.10.1" }, + { name = "matplotlib", specifier = ">=3.10.7" }, + { name = "numpy", specifier = ">=2.3.4" }, + { name = "pytablewriter", specifier = ">=1.2.1" }, + { name = "sortedcontainers", specifier = ">=2.4.0" }, +] + +[[package]] +name = "kiwisolver" +version = "1.4.9" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/5c/3c/85844f1b0feb11ee581ac23fe5fce65cd049a200c1446708cc1b7f922875/kiwisolver-1.4.9.tar.gz", hash = "sha256:c3b22c26c6fd6811b0ae8363b95ca8ce4ea3c202d3d0975b2914310ceb1bcc4d", size = 97564, upload-time = "2025-08-10T21:27:49.279Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/31/c1/c2686cda909742ab66c7388e9a1a8521a59eb89f8bcfbee28fc980d07e24/kiwisolver-1.4.9-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a5d0432ccf1c7ab14f9949eec60c5d1f924f17c037e9f8b33352fa05799359b8", size = 123681, upload-time = "2025-08-10T21:26:26.725Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/ca/f0/f44f50c9f5b1a1860261092e3bc91ecdc9acda848a8b8c6abfda4a24dd5c/kiwisolver-1.4.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efb3a45b35622bb6c16dbfab491a8f5a391fe0e9d45ef32f4df85658232ca0e2", size = 66464, upload-time = "2025-08-10T21:26:27.733Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/2d/7a/9d90a151f558e29c3936b8a47ac770235f436f2120aca41a6d5f3d62ae8d/kiwisolver-1.4.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1a12cf6398e8a0a001a059747a1cbf24705e18fe413bc22de7b3d15c67cffe3f", size = 64961, upload-time = "2025-08-10T21:26:28.729Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/e9/e9/f218a2cb3a9ffbe324ca29a9e399fa2d2866d7f348ec3a88df87fc248fc5/kiwisolver-1.4.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b67e6efbf68e077dd71d1a6b37e43e1a99d0bff1a3d51867d45ee8908b931098", size = 1474607, upload-time = "2025-08-10T21:26:29.798Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/d9/28/aac26d4c882f14de59041636292bc838db8961373825df23b8eeb807e198/kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5656aa670507437af0207645273ccdfee4f14bacd7f7c67a4306d0dcaeaf6eed", size = 1276546, upload-time = "2025-08-10T21:26:31.401Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/8b/ad/8bfc1c93d4cc565e5069162f610ba2f48ff39b7de4b5b8d93f69f30c4bed/kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bfc08add558155345129c7803b3671cf195e6a56e7a12f3dde7c57d9b417f525", size = 1294482, upload-time = "2025-08-10T21:26:32.721Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/da/f1/6aca55ff798901d8ce403206d00e033191f63d82dd708a186e0ed2067e9c/kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:40092754720b174e6ccf9e845d0d8c7d8e12c3d71e7fc35f55f3813e96376f78", size = 1343720, upload-time = "2025-08-10T21:26:34.032Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/d1/91/eed031876c595c81d90d0f6fc681ece250e14bf6998c3d7c419466b523b7/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:497d05f29a1300d14e02e6441cf0f5ee81c1ff5a304b0d9fb77423974684e08b", size = 2224907, upload-time = "2025-08-10T21:26:35.824Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/e9/ec/4d1925f2e49617b9cca9c34bfa11adefad49d00db038e692a559454dfb2e/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:bdd1a81a1860476eb41ac4bc1e07b3f07259e6d55bbf739b79c8aaedcf512799", size = 2321334, upload-time = "2025-08-10T21:26:37.534Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/43/cb/450cd4499356f68802750c6ddc18647b8ea01ffa28f50d20598e0befe6e9/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e6b93f13371d341afee3be9f7c5964e3fe61d5fa30f6a30eb49856935dfe4fc3", size = 2488313, upload-time = "2025-08-10T21:26:39.191Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/71/67/fc76242bd99f885651128a5d4fa6083e5524694b7c88b489b1b55fdc491d/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d75aa530ccfaa593da12834b86a0724f58bff12706659baa9227c2ccaa06264c", size = 2291970, upload-time = "2025-08-10T21:26:40.828Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/75/bd/f1a5d894000941739f2ae1b65a32892349423ad49c2e6d0771d0bad3fae4/kiwisolver-1.4.9-cp313-cp313-win_amd64.whl", hash = "sha256:dd0a578400839256df88c16abddf9ba14813ec5f21362e1fe65022e00c883d4d", size = 73894, upload-time = "2025-08-10T21:26:42.33Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/95/38/dce480814d25b99a391abbddadc78f7c117c6da34be68ca8b02d5848b424/kiwisolver-1.4.9-cp313-cp313-win_arm64.whl", hash = "sha256:d4188e73af84ca82468f09cadc5ac4db578109e52acb4518d8154698d3a87ca2", size = 64995, upload-time = "2025-08-10T21:26:43.889Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/e2/37/7d218ce5d92dadc5ebdd9070d903e0c7cf7edfe03f179433ac4d13ce659c/kiwisolver-1.4.9-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5a0f2724dfd4e3b3ac5a82436a8e6fd16baa7d507117e4279b660fe8ca38a3a1", size = 126510, upload-time = "2025-08-10T21:26:44.915Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/23/b0/e85a2b48233daef4b648fb657ebbb6f8367696a2d9548a00b4ee0eb67803/kiwisolver-1.4.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:1b11d6a633e4ed84fc0ddafd4ebfd8ea49b3f25082c04ad12b8315c11d504dc1", size = 67903, upload-time = "2025-08-10T21:26:45.934Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/44/98/f2425bc0113ad7de24da6bb4dae1343476e95e1d738be7c04d31a5d037fd/kiwisolver-1.4.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61874cdb0a36016354853593cffc38e56fc9ca5aa97d2c05d3dcf6922cd55a11", size = 66402, upload-time = "2025-08-10T21:26:47.101Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/98/d8/594657886df9f34c4177cc353cc28ca7e6e5eb562d37ccc233bff43bbe2a/kiwisolver-1.4.9-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:60c439763a969a6af93b4881db0eed8fadf93ee98e18cbc35bc8da868d0c4f0c", size = 1582135, upload-time = "2025-08-10T21:26:48.665Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/5c/c6/38a115b7170f8b306fc929e166340c24958347308ea3012c2b44e7e295db/kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92a2f997387a1b79a75e7803aa7ded2cfbe2823852ccf1ba3bcf613b62ae3197", size = 1389409, upload-time = "2025-08-10T21:26:50.335Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/bf/3b/e04883dace81f24a568bcee6eb3001da4ba05114afa622ec9b6fafdc1f5e/kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a31d512c812daea6d8b3be3b2bfcbeb091dbb09177706569bcfc6240dcf8b41c", size = 1401763, upload-time = "2025-08-10T21:26:51.867Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/9f/80/20ace48e33408947af49d7d15c341eaee69e4e0304aab4b7660e234d6288/kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:52a15b0f35dad39862d376df10c5230155243a2c1a436e39eb55623ccbd68185", size = 1453643, upload-time = "2025-08-10T21:26:53.592Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/64/31/6ce4380a4cd1f515bdda976a1e90e547ccd47b67a1546d63884463c92ca9/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a30fd6fdef1430fd9e1ba7b3398b5ee4e2887783917a687d86ba69985fb08748", size = 2330818, upload-time = "2025-08-10T21:26:55.051Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/fa/e9/3f3fcba3bcc7432c795b82646306e822f3fd74df0ee81f0fa067a1f95668/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cc9617b46837c6468197b5945e196ee9ca43057bb7d9d1ae688101e4e1dddf64", size = 2419963, upload-time = "2025-08-10T21:26:56.421Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/99/43/7320c50e4133575c66e9f7dadead35ab22d7c012a3b09bb35647792b2a6d/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:0ab74e19f6a2b027ea4f845a78827969af45ce790e6cb3e1ebab71bdf9f215ff", size = 2594639, upload-time = "2025-08-10T21:26:57.882Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/65/d6/17ae4a270d4a987ef8a385b906d2bdfc9fce502d6dc0d3aea865b47f548c/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dba5ee5d3981160c28d5490f0d1b7ed730c22470ff7f6cc26cfcfaacb9896a07", size = 2391741, upload-time = "2025-08-10T21:26:59.237Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/2a/8f/8f6f491d595a9e5912971f3f863d81baddccc8a4d0c3749d6a0dd9ffc9df/kiwisolver-1.4.9-cp313-cp313t-win_arm64.whl", hash = "sha256:0749fd8f4218ad2e851e11cc4dc05c7cbc0cbc4267bdfdb31782e65aace4ee9c", size = 68646, upload-time = "2025-08-10T21:27:00.52Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/6b/32/6cc0fbc9c54d06c2969faa9c1d29f5751a2e51809dd55c69055e62d9b426/kiwisolver-1.4.9-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:9928fe1eb816d11ae170885a74d074f57af3a0d65777ca47e9aeb854a1fba386", size = 123806, upload-time = "2025-08-10T21:27:01.537Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/b2/dd/2bfb1d4a4823d92e8cbb420fe024b8d2167f72079b3bb941207c42570bdf/kiwisolver-1.4.9-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d0005b053977e7b43388ddec89fa567f43d4f6d5c2c0affe57de5ebf290dc552", size = 66605, upload-time = "2025-08-10T21:27:03.335Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/f7/69/00aafdb4e4509c2ca6064646cba9cd4b37933898f426756adb2cb92ebbed/kiwisolver-1.4.9-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2635d352d67458b66fd0667c14cb1d4145e9560d503219034a18a87e971ce4f3", size = 64925, upload-time = "2025-08-10T21:27:04.339Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/43/dc/51acc6791aa14e5cb6d8a2e28cefb0dc2886d8862795449d021334c0df20/kiwisolver-1.4.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:767c23ad1c58c9e827b649a9ab7809fd5fd9db266a9cf02b0e926ddc2c680d58", size = 1472414, upload-time = "2025-08-10T21:27:05.437Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/3d/bb/93fa64a81db304ac8a246f834d5094fae4b13baf53c839d6bb6e81177129/kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72d0eb9fba308b8311685c2268cf7d0a0639a6cd027d8128659f72bdd8a024b4", size = 1281272, upload-time = "2025-08-10T21:27:07.063Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/70/e6/6df102916960fb8d05069d4bd92d6d9a8202d5a3e2444494e7cd50f65b7a/kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f68e4f3eeca8fb22cc3d731f9715a13b652795ef657a13df1ad0c7dc0e9731df", size = 1298578, upload-time = "2025-08-10T21:27:08.452Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/7c/47/e142aaa612f5343736b087864dbaebc53ea8831453fb47e7521fa8658f30/kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d84cd4061ae292d8ac367b2c3fa3aad11cb8625a95d135fe93f286f914f3f5a6", size = 1345607, upload-time = "2025-08-10T21:27:10.125Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/54/89/d641a746194a0f4d1a3670fb900d0dbaa786fb98341056814bc3f058fa52/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a60ea74330b91bd22a29638940d115df9dc00af5035a9a2a6ad9399ffb4ceca5", size = 2230150, upload-time = "2025-08-10T21:27:11.484Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/aa/6b/5ee1207198febdf16ac11f78c5ae40861b809cbe0e6d2a8d5b0b3044b199/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:ce6a3a4e106cf35c2d9c4fa17c05ce0b180db622736845d4315519397a77beaf", size = 2325979, upload-time = "2025-08-10T21:27:12.917Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/fc/ff/b269eefd90f4ae14dcc74973d5a0f6d28d3b9bb1afd8c0340513afe6b39a/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:77937e5e2a38a7b48eef0585114fe7930346993a88060d0bf886086d2aa49ef5", size = 2491456, upload-time = "2025-08-10T21:27:14.353Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/fc/d4/10303190bd4d30de547534601e259a4fbf014eed94aae3e5521129215086/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:24c175051354f4a28c5d6a31c93906dc653e2bf234e8a4bbfb964892078898ce", size = 2294621, upload-time = "2025-08-10T21:27:15.808Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/28/e0/a9a90416fce5c0be25742729c2ea52105d62eda6c4be4d803c2a7be1fa50/kiwisolver-1.4.9-cp314-cp314-win_amd64.whl", hash = "sha256:0763515d4df10edf6d06a3c19734e2566368980d21ebec439f33f9eb936c07b7", size = 75417, upload-time = "2025-08-10T21:27:17.436Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/1f/10/6949958215b7a9a264299a7db195564e87900f709db9245e4ebdd3c70779/kiwisolver-1.4.9-cp314-cp314-win_arm64.whl", hash = "sha256:0e4e2bf29574a6a7b7f6cb5fa69293b9f96c928949ac4a53ba3f525dffb87f9c", size = 66582, upload-time = "2025-08-10T21:27:18.436Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/ec/79/60e53067903d3bc5469b369fe0dfc6b3482e2133e85dae9daa9527535991/kiwisolver-1.4.9-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d976bbb382b202f71c67f77b0ac11244021cfa3f7dfd9e562eefcea2df711548", size = 126514, upload-time = "2025-08-10T21:27:19.465Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/25/d1/4843d3e8d46b072c12a38c97c57fab4608d36e13fe47d47ee96b4d61ba6f/kiwisolver-1.4.9-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2489e4e5d7ef9a1c300a5e0196e43d9c739f066ef23270607d45aba368b91f2d", size = 67905, upload-time = "2025-08-10T21:27:20.51Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/8c/ae/29ffcbd239aea8b93108de1278271ae764dfc0d803a5693914975f200596/kiwisolver-1.4.9-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e2ea9f7ab7fbf18fffb1b5434ce7c69a07582f7acc7717720f1d69f3e806f90c", size = 66399, upload-time = "2025-08-10T21:27:21.496Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/a1/ae/d7ba902aa604152c2ceba5d352d7b62106bedbccc8e95c3934d94472bfa3/kiwisolver-1.4.9-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b34e51affded8faee0dfdb705416153819d8ea9250bbbf7ea1b249bdeb5f1122", size = 1582197, upload-time = "2025-08-10T21:27:22.604Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/f2/41/27c70d427eddb8bc7e4f16420a20fefc6f480312122a59a959fdfe0445ad/kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8aacd3d4b33b772542b2e01beb50187536967b514b00003bdda7589722d2a64", size = 1390125, upload-time = "2025-08-10T21:27:24.036Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/41/42/b3799a12bafc76d962ad69083f8b43b12bf4fe78b097b12e105d75c9b8f1/kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7cf974dd4e35fa315563ac99d6287a1024e4dc2077b8a7d7cd3d2fb65d283134", size = 1402612, upload-time = "2025-08-10T21:27:25.773Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/d2/b5/a210ea073ea1cfaca1bb5c55a62307d8252f531beb364e18aa1e0888b5a0/kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:85bd218b5ecfbee8c8a82e121802dcb519a86044c9c3b2e4aef02fa05c6da370", size = 1453990, upload-time = "2025-08-10T21:27:27.089Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/5f/ce/a829eb8c033e977d7ea03ed32fb3c1781b4fa0433fbadfff29e39c676f32/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0856e241c2d3df4efef7c04a1e46b1936b6120c9bcf36dd216e3acd84bc4fb21", size = 2331601, upload-time = "2025-08-10T21:27:29.343Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/e0/4b/b5e97eb142eb9cd0072dacfcdcd31b1c66dc7352b0f7c7255d339c0edf00/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:9af39d6551f97d31a4deebeac6f45b156f9755ddc59c07b402c148f5dbb6482a", size = 2422041, upload-time = "2025-08-10T21:27:30.754Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/40/be/8eb4cd53e1b85ba4edc3a9321666f12b83113a178845593307a3e7891f44/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:bb4ae2b57fc1d8cbd1cf7b1d9913803681ffa903e7488012be5b76dedf49297f", size = 2594897, upload-time = "2025-08-10T21:27:32.803Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/99/dd/841e9a66c4715477ea0abc78da039832fbb09dac5c35c58dc4c41a407b8a/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:aedff62918805fb62d43a4aa2ecd4482c380dc76cd31bd7c8878588a61bd0369", size = 2391835, upload-time = "2025-08-10T21:27:34.23Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/0c/28/4b2e5c47a0da96896fdfdb006340ade064afa1e63675d01ea5ac222b6d52/kiwisolver-1.4.9-cp314-cp314t-win_amd64.whl", hash = "sha256:1fa333e8b2ce4d9660f2cda9c0e1b6bafcfb2457a9d259faa82289e73ec24891", size = 79988, upload-time = "2025-08-10T21:27:35.587Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/80/be/3578e8afd18c88cdf9cb4cffde75a96d2be38c5a903f1ed0ceec061bd09e/kiwisolver-1.4.9-cp314-cp314t-win_arm64.whl", hash = "sha256:4a48a2ce79d65d363597ef7b567ce3d14d68783d2b2263d98db3d9477805ba32", size = 70260, upload-time = "2025-08-10T21:27:36.606Z" }, +] + +[[package]] +name = "matplotlib" +version = "3.10.7" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +dependencies = [ + { name = "contourpy" }, + { name = "cycler" }, + { name = "fonttools" }, + { name = "kiwisolver" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pyparsing" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/ae/e2/d2d5295be2f44c678ebaf3544ba32d20c1f9ef08c49fe47f496180e1db15/matplotlib-3.10.7.tar.gz", hash = "sha256:a06ba7e2a2ef9131c79c49e63dad355d2d878413a0376c1727c8b9335ff731c7", size = 34804865, upload-time = "2025-10-09T00:28:00.669Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/02/9c/207547916a02c78f6bdd83448d9b21afbc42f6379ed887ecf610984f3b4e/matplotlib-3.10.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1d9d3713a237970569156cfb4de7533b7c4eacdd61789726f444f96a0d28f57f", size = 8273212, upload-time = "2025-10-09T00:26:56.752Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/bc/d0/b3d3338d467d3fc937f0bb7f256711395cae6f78e22cef0656159950adf0/matplotlib-3.10.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:37a1fea41153dd6ee061d21ab69c9cf2cf543160b1b85d89cd3d2e2a7902ca4c", size = 8128713, upload-time = "2025-10-09T00:26:59.001Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/22/ff/6425bf5c20d79aa5b959d1ce9e65f599632345391381c9a104133fe0b171/matplotlib-3.10.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b3c4ea4948d93c9c29dc01c0c23eef66f2101bf75158c291b88de6525c55c3d1", size = 8698527, upload-time = "2025-10-09T00:27:00.69Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/d0/7f/ccdca06f4c2e6c7989270ed7829b8679466682f4cfc0f8c9986241c023b6/matplotlib-3.10.7-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22df30ffaa89f6643206cf13877191c63a50e8f800b038bc39bee9d2d4957632", size = 9529690, upload-time = "2025-10-09T00:27:02.664Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/b8/95/b80fc2c1f269f21ff3d193ca697358e24408c33ce2b106a7438a45407b63/matplotlib-3.10.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b69676845a0a66f9da30e87f48be36734d6748024b525ec4710be40194282c84", size = 9593732, upload-time = "2025-10-09T00:27:04.653Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/e1/b6/23064a96308b9aeceeffa65e96bcde459a2ea4934d311dee20afde7407a0/matplotlib-3.10.7-cp313-cp313-win_amd64.whl", hash = "sha256:744991e0cc863dd669c8dc9136ca4e6e0082be2070b9d793cbd64bec872a6815", size = 8122727, upload-time = "2025-10-09T00:27:06.814Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/b3/a6/2faaf48133b82cf3607759027f82b5c702aa99cdfcefb7f93d6ccf26a424/matplotlib-3.10.7-cp313-cp313-win_arm64.whl", hash = "sha256:fba2974df0bf8ce3c995fa84b79cde38326e0f7b5409e7a3a481c1141340bcf7", size = 7992958, upload-time = "2025-10-09T00:27:08.567Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/4a/f0/b018fed0b599bd48d84c08794cb242227fe3341952da102ee9d9682db574/matplotlib-3.10.7-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:932c55d1fa7af4423422cb6a492a31cbcbdbe68fd1a9a3f545aa5e7a143b5355", size = 8316849, upload-time = "2025-10-09T00:27:10.254Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/b0/b7/bb4f23856197659f275e11a2a164e36e65e9b48ea3e93c4ec25b4f163198/matplotlib-3.10.7-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5e38c2d581d62ee729a6e144c47a71b3f42fb4187508dbbf4fe71d5612c3433b", size = 8178225, upload-time = "2025-10-09T00:27:12.241Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/62/56/0600609893ff277e6f3ab3c0cef4eafa6e61006c058e84286c467223d4d5/matplotlib-3.10.7-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:786656bb13c237bbcebcd402f65f44dd61ead60ee3deb045af429d889c8dbc67", size = 8711708, upload-time = "2025-10-09T00:27:13.879Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/d8/1a/6bfecb0cafe94d6658f2f1af22c43b76cf7a1c2f0dc34ef84cbb6809617e/matplotlib-3.10.7-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09d7945a70ea43bf9248f4b6582734c2fe726723204a76eca233f24cffc7ef67", size = 9541409, upload-time = "2025-10-09T00:27:15.684Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/08/50/95122a407d7f2e446fd865e2388a232a23f2b81934960ea802f3171518e4/matplotlib-3.10.7-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d0b181e9fa8daf1d9f2d4c547527b167cb8838fc587deabca7b5c01f97199e84", size = 9594054, upload-time = "2025-10-09T00:27:17.547Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/13/76/75b194a43b81583478a81e78a07da8d9ca6ddf50dd0a2ccabf258059481d/matplotlib-3.10.7-cp313-cp313t-win_amd64.whl", hash = "sha256:31963603041634ce1a96053047b40961f7a29eb8f9a62e80cc2c0427aa1d22a2", size = 8200100, upload-time = "2025-10-09T00:27:20.039Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/f5/9e/6aefebdc9f8235c12bdeeda44cc0383d89c1e41da2c400caf3ee2073a3ce/matplotlib-3.10.7-cp313-cp313t-win_arm64.whl", hash = "sha256:aebed7b50aa6ac698c90f60f854b47e48cd2252b30510e7a1feddaf5a3f72cbf", size = 8042131, upload-time = "2025-10-09T00:27:21.608Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/0d/4b/e5bc2c321b6a7e3a75638d937d19ea267c34bd5a90e12bee76c4d7c7a0d9/matplotlib-3.10.7-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d883460c43e8c6b173fef244a2341f7f7c0e9725c7fe68306e8e44ed9c8fb100", size = 8273787, upload-time = "2025-10-09T00:27:23.27Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/86/ad/6efae459c56c2fbc404da154e13e3a6039129f3c942b0152624f1c621f05/matplotlib-3.10.7-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:07124afcf7a6504eafcb8ce94091c5898bbdd351519a1beb5c45f7a38c67e77f", size = 8131348, upload-time = "2025-10-09T00:27:24.926Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/a6/5a/a4284d2958dee4116359cc05d7e19c057e64ece1b4ac986ab0f2f4d52d5a/matplotlib-3.10.7-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c17398b709a6cce3d9fdb1595c33e356d91c098cd9486cb2cc21ea2ea418e715", size = 9533949, upload-time = "2025-10-09T00:27:26.704Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/de/ff/f3781b5057fa3786623ad8976fc9f7b0d02b2f28534751fd5a44240de4cf/matplotlib-3.10.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7146d64f561498764561e9cd0ed64fcf582e570fc519e6f521e2d0cfd43365e1", size = 9804247, upload-time = "2025-10-09T00:27:28.514Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/47/5a/993a59facb8444efb0e197bf55f545ee449902dcee86a4dfc580c3b61314/matplotlib-3.10.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:90ad854c0a435da3104c01e2c6f0028d7e719b690998a2333d7218db80950722", size = 9595497, upload-time = "2025-10-09T00:27:30.418Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/0d/a5/77c95aaa9bb32c345cbb49626ad8eb15550cba2e6d4c88081a6c2ac7b08d/matplotlib-3.10.7-cp314-cp314-win_amd64.whl", hash = "sha256:4645fc5d9d20ffa3a39361fcdbcec731382763b623b72627806bf251b6388866", size = 8252732, upload-time = "2025-10-09T00:27:32.332Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/74/04/45d269b4268d222390d7817dae77b159651909669a34ee9fdee336db5883/matplotlib-3.10.7-cp314-cp314-win_arm64.whl", hash = "sha256:9257be2f2a03415f9105c486d304a321168e61ad450f6153d77c69504ad764bb", size = 8124240, upload-time = "2025-10-09T00:27:33.94Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/4b/c7/ca01c607bb827158b439208c153d6f14ddb9fb640768f06f7ca3488ae67b/matplotlib-3.10.7-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1e4bbad66c177a8fdfa53972e5ef8be72a5f27e6a607cec0d8579abd0f3102b1", size = 8316938, upload-time = "2025-10-09T00:27:35.534Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/84/d2/5539e66e9f56d2fdec94bb8436f5e449683b4e199bcc897c44fbe3c99e28/matplotlib-3.10.7-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d8eb7194b084b12feb19142262165832fc6ee879b945491d1c3d4660748020c4", size = 8178245, upload-time = "2025-10-09T00:27:37.334Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/77/b5/e6ca22901fd3e4fe433a82e583436dd872f6c966fca7e63cf806b40356f8/matplotlib-3.10.7-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4d41379b05528091f00e1728004f9a8d7191260f3862178b88e8fd770206318", size = 9541411, upload-time = "2025-10-09T00:27:39.387Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/9e/99/a4524db57cad8fee54b7237239a8f8360bfcfa3170d37c9e71c090c0f409/matplotlib-3.10.7-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4a74f79fafb2e177f240579bc83f0b60f82cc47d2f1d260f422a0627207008ca", size = 9803664, upload-time = "2025-10-09T00:27:41.492Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/e6/a5/85e2edf76ea0ad4288d174926d9454ea85f3ce5390cc4e6fab196cbf250b/matplotlib-3.10.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:702590829c30aada1e8cef0568ddbffa77ca747b4d6e36c6d173f66e301f89cc", size = 9594066, upload-time = "2025-10-09T00:27:43.694Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/39/69/9684368a314f6d83fe5c5ad2a4121a3a8e03723d2e5c8ea17b66c1bad0e7/matplotlib-3.10.7-cp314-cp314t-win_amd64.whl", hash = "sha256:f79d5de970fc90cd5591f60053aecfce1fcd736e0303d9f0bf86be649fa68fb8", size = 8342832, upload-time = "2025-10-09T00:27:45.543Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/04/5f/e22e08da14bc1a0894184640d47819d2338b792732e20d292bf86e5ab785/matplotlib-3.10.7-cp314-cp314t-win_arm64.whl", hash = "sha256:cb783436e47fcf82064baca52ce748af71725d0352e1d31564cbe9c95df92b9c", size = 8172585, upload-time = "2025-10-09T00:27:47.185Z" }, +] + +[[package]] +name = "mbstrdecoder" +version = "1.1.4" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +dependencies = [ + { name = "chardet" }, +] +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/31/ab/05ae008357c8bdb6245ebf8a101d99f26c096e0ea20800b318153da23796/mbstrdecoder-1.1.4.tar.gz", hash = "sha256:8105ef9cf6b7d7d69fe7fd6b68a2d8f281ca9b365d7a9b670be376b2e6c81b21", size = 14527, upload-time = "2025-01-18T10:07:31.089Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/30/ac/5ce64a1d4cce00390beab88622a290420401f1cabf05caf2fc0995157c21/mbstrdecoder-1.1.4-py3-none-any.whl", hash = "sha256:03dae4ec50ec0d2ff4743e63fdbd5e0022815857494d35224b60775d3d934a8c", size = 7933, upload-time = "2025-01-18T10:07:29.562Z" }, +] + +[[package]] +name = "numpy" +version = "2.3.4" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/b5/f4/098d2270d52b41f1bd7db9fc288aaa0400cb48c2a3e2af6fa365d9720947/numpy-2.3.4.tar.gz", hash = "sha256:a7d018bfedb375a8d979ac758b120ba846a7fe764911a64465fd87b8729f4a6a", size = 20582187, upload-time = "2025-10-15T16:18:11.77Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/57/7e/b72610cc91edf138bc588df5150957a4937221ca6058b825b4725c27be62/numpy-2.3.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c090d4860032b857d94144d1a9976b8e36709e40386db289aaf6672de2a81966", size = 20950335, upload-time = "2025-10-15T16:16:10.304Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/3e/46/bdd3370dcea2f95ef14af79dbf81e6927102ddf1cc54adc0024d61252fd9/numpy-2.3.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a13fc473b6db0be619e45f11f9e81260f7302f8d180c49a22b6e6120022596b3", size = 14179878, upload-time = "2025-10-15T16:16:12.595Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/ac/01/5a67cb785bda60f45415d09c2bc245433f1c68dd82eef9c9002c508b5a65/numpy-2.3.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:3634093d0b428e6c32c3a69b78e554f0cd20ee420dcad5a9f3b2a63762ce4197", size = 5108673, upload-time = "2025-10-15T16:16:14.877Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/c2/cd/8428e23a9fcebd33988f4cb61208fda832800ca03781f471f3727a820704/numpy-2.3.4-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:043885b4f7e6e232d7df4f51ffdef8c36320ee9d5f227b380ea636722c7ed12e", size = 6641438, upload-time = "2025-10-15T16:16:16.805Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/3e/d1/913fe563820f3c6b079f992458f7331278dcd7ba8427e8e745af37ddb44f/numpy-2.3.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4ee6a571d1e4f0ea6d5f22d6e5fbd6ed1dc2b18542848e1e7301bd190500c9d7", size = 14281290, upload-time = "2025-10-15T16:16:18.764Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/9e/7e/7d306ff7cb143e6d975cfa7eb98a93e73495c4deabb7d1b5ecf09ea0fd69/numpy-2.3.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fc8a63918b04b8571789688b2780ab2b4a33ab44bfe8ccea36d3eba51228c953", size = 16636543, upload-time = "2025-10-15T16:16:21.072Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/47/6a/8cfc486237e56ccfb0db234945552a557ca266f022d281a2f577b98e955c/numpy-2.3.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:40cc556d5abbc54aabe2b1ae287042d7bdb80c08edede19f0c0afb36ae586f37", size = 16056117, upload-time = "2025-10-15T16:16:23.369Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/b1/0e/42cb5e69ea901e06ce24bfcc4b5664a56f950a70efdcf221f30d9615f3f3/numpy-2.3.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ecb63014bb7f4ce653f8be7f1df8cbc6093a5a2811211770f6606cc92b5a78fd", size = 18577788, upload-time = "2025-10-15T16:16:27.496Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/86/92/41c3d5157d3177559ef0a35da50f0cda7fa071f4ba2306dd36818591a5bc/numpy-2.3.4-cp313-cp313-win32.whl", hash = "sha256:e8370eb6925bb8c1c4264fec52b0384b44f675f191df91cbe0140ec9f0955646", size = 6282620, upload-time = "2025-10-15T16:16:29.811Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/09/97/fd421e8bc50766665ad35536c2bb4ef916533ba1fdd053a62d96cc7c8b95/numpy-2.3.4-cp313-cp313-win_amd64.whl", hash = "sha256:56209416e81a7893036eea03abcb91c130643eb14233b2515c90dcac963fe99d", size = 12784672, upload-time = "2025-10-15T16:16:31.589Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/ad/df/5474fb2f74970ca8eb978093969b125a84cc3d30e47f82191f981f13a8a0/numpy-2.3.4-cp313-cp313-win_arm64.whl", hash = "sha256:a700a4031bc0fd6936e78a752eefb79092cecad2599ea9c8039c548bc097f9bc", size = 10196702, upload-time = "2025-10-15T16:16:33.902Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/11/83/66ac031464ec1767ea3ed48ce40f615eb441072945e98693bec0bcd056cc/numpy-2.3.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:86966db35c4040fdca64f0816a1c1dd8dbd027d90fca5a57e00e1ca4cd41b879", size = 21049003, upload-time = "2025-10-15T16:16:36.101Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/5f/99/5b14e0e686e61371659a1d5bebd04596b1d72227ce36eed121bb0aeab798/numpy-2.3.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:838f045478638b26c375ee96ea89464d38428c69170360b23a1a50fa4baa3562", size = 14302980, upload-time = "2025-10-15T16:16:39.124Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/2c/44/e9486649cd087d9fc6920e3fc3ac2aba10838d10804b1e179fb7cbc4e634/numpy-2.3.4-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d7315ed1dab0286adca467377c8381cd748f3dc92235f22a7dfc42745644a96a", size = 5231472, upload-time = "2025-10-15T16:16:41.168Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/3e/51/902b24fa8887e5fe2063fd61b1895a476d0bbf46811ab0c7fdf4bd127345/numpy-2.3.4-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:84f01a4d18b2cc4ade1814a08e5f3c907b079c847051d720fad15ce37aa930b6", size = 6739342, upload-time = "2025-10-15T16:16:43.777Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/34/f1/4de9586d05b1962acdcdb1dc4af6646361a643f8c864cef7c852bf509740/numpy-2.3.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:817e719a868f0dacde4abdfc5c1910b301877970195db9ab6a5e2c4bd5b121f7", size = 14354338, upload-time = "2025-10-15T16:16:46.081Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/1f/06/1c16103b425de7969d5a76bdf5ada0804b476fed05d5f9e17b777f1cbefd/numpy-2.3.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85e071da78d92a214212cacea81c6da557cab307f2c34b5f85b628e94803f9c0", size = 16702392, upload-time = "2025-10-15T16:16:48.455Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/34/b2/65f4dc1b89b5322093572b6e55161bb42e3e0487067af73627f795cc9d47/numpy-2.3.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2ec646892819370cf3558f518797f16597b4e4669894a2ba712caccc9da53f1f", size = 16134998, upload-time = "2025-10-15T16:16:51.114Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/d4/11/94ec578896cdb973aaf56425d6c7f2aff4186a5c00fac15ff2ec46998b46/numpy-2.3.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:035796aaaddfe2f9664b9a9372f089cfc88bd795a67bd1bfe15e6e770934cf64", size = 18651574, upload-time = "2025-10-15T16:16:53.429Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/62/b7/7efa763ab33dbccf56dade36938a77345ce8e8192d6b39e470ca25ff3cd0/numpy-2.3.4-cp313-cp313t-win32.whl", hash = "sha256:fea80f4f4cf83b54c3a051f2f727870ee51e22f0248d3114b8e755d160b38cfb", size = 6413135, upload-time = "2025-10-15T16:16:55.992Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/43/70/aba4c38e8400abcc2f345e13d972fb36c26409b3e644366db7649015f291/numpy-2.3.4-cp313-cp313t-win_amd64.whl", hash = "sha256:15eea9f306b98e0be91eb344a94c0e630689ef302e10c2ce5f7e11905c704f9c", size = 12928582, upload-time = "2025-10-15T16:16:57.943Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/67/63/871fad5f0073fc00fbbdd7232962ea1ac40eeaae2bba66c76214f7954236/numpy-2.3.4-cp313-cp313t-win_arm64.whl", hash = "sha256:b6c231c9c2fadbae4011ca5e7e83e12dc4a5072f1a1d85a0a7b3ed754d145a40", size = 10266691, upload-time = "2025-10-15T16:17:00.048Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/72/71/ae6170143c115732470ae3a2d01512870dd16e0953f8a6dc89525696069b/numpy-2.3.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:81c3e6d8c97295a7360d367f9f8553973651b76907988bb6066376bc2252f24e", size = 20955580, upload-time = "2025-10-15T16:17:02.509Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/af/39/4be9222ffd6ca8a30eda033d5f753276a9c3426c397bb137d8e19dedd200/numpy-2.3.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7c26b0b2bf58009ed1f38a641f3db4be8d960a417ca96d14e5b06df1506d41ff", size = 14188056, upload-time = "2025-10-15T16:17:04.873Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/6c/3d/d85f6700d0a4aa4f9491030e1021c2b2b7421b2b38d01acd16734a2bfdc7/numpy-2.3.4-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:62b2198c438058a20b6704351b35a1d7db881812d8512d67a69c9de1f18ca05f", size = 5116555, upload-time = "2025-10-15T16:17:07.499Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/bf/04/82c1467d86f47eee8a19a464c92f90a9bb68ccf14a54c5224d7031241ffb/numpy-2.3.4-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:9d729d60f8d53a7361707f4b68a9663c968882dd4f09e0d58c044c8bf5faee7b", size = 6643581, upload-time = "2025-10-15T16:17:09.774Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/0c/d3/c79841741b837e293f48bd7db89d0ac7a4f2503b382b78a790ef1dc778a5/numpy-2.3.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bd0c630cf256b0a7fd9d0a11c9413b42fef5101219ce6ed5a09624f5a65392c7", size = 14299186, upload-time = "2025-10-15T16:17:11.937Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/e8/7e/4a14a769741fbf237eec5a12a2cbc7a4c4e061852b6533bcb9e9a796c908/numpy-2.3.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d5e081bc082825f8b139f9e9fe42942cb4054524598aaeb177ff476cc76d09d2", size = 16638601, upload-time = "2025-10-15T16:17:14.391Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/93/87/1c1de269f002ff0a41173fe01dcc925f4ecff59264cd8f96cf3b60d12c9b/numpy-2.3.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:15fb27364ed84114438fff8aaf998c9e19adbeba08c0b75409f8c452a8692c52", size = 16074219, upload-time = "2025-10-15T16:17:17.058Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/cd/28/18f72ee77408e40a76d691001ae599e712ca2a47ddd2c4f695b16c65f077/numpy-2.3.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:85d9fb2d8cd998c84d13a79a09cc0c1091648e848e4e6249b0ccd7f6b487fa26", size = 18576702, upload-time = "2025-10-15T16:17:19.379Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/c3/76/95650169b465ececa8cf4b2e8f6df255d4bf662775e797ade2025cc51ae6/numpy-2.3.4-cp314-cp314-win32.whl", hash = "sha256:e73d63fd04e3a9d6bc187f5455d81abfad05660b212c8804bf3b407e984cd2bc", size = 6337136, upload-time = "2025-10-15T16:17:22.886Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/dc/89/a231a5c43ede5d6f77ba4a91e915a87dea4aeea76560ba4d2bf185c683f0/numpy-2.3.4-cp314-cp314-win_amd64.whl", hash = "sha256:3da3491cee49cf16157e70f607c03a217ea6647b1cea4819c4f48e53d49139b9", size = 12920542, upload-time = "2025-10-15T16:17:24.783Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/0d/0c/ae9434a888f717c5ed2ff2393b3f344f0ff6f1c793519fa0c540461dc530/numpy-2.3.4-cp314-cp314-win_arm64.whl", hash = "sha256:6d9cd732068e8288dbe2717177320723ccec4fb064123f0caf9bbd90ab5be868", size = 10480213, upload-time = "2025-10-15T16:17:26.935Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/83/4b/c4a5f0841f92536f6b9592694a5b5f68c9ab37b775ff342649eadf9055d3/numpy-2.3.4-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:22758999b256b595cf0b1d102b133bb61866ba5ceecf15f759623b64c020c9ec", size = 21052280, upload-time = "2025-10-15T16:17:29.638Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/3e/80/90308845fc93b984d2cc96d83e2324ce8ad1fd6efea81b324cba4b673854/numpy-2.3.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:9cb177bc55b010b19798dc5497d540dea67fd13a8d9e882b2dae71de0cf09eb3", size = 14302930, upload-time = "2025-10-15T16:17:32.384Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/3d/4e/07439f22f2a3b247cec4d63a713faae55e1141a36e77fb212881f7cda3fb/numpy-2.3.4-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:0f2bcc76f1e05e5ab58893407c63d90b2029908fa41f9f1cc51eecce936c3365", size = 5231504, upload-time = "2025-10-15T16:17:34.515Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/ab/de/1e11f2547e2fe3d00482b19721855348b94ada8359aef5d40dd57bfae9df/numpy-2.3.4-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:8dc20bde86802df2ed8397a08d793da0ad7a5fd4ea3ac85d757bf5dd4ad7c252", size = 6739405, upload-time = "2025-10-15T16:17:36.128Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/3b/40/8cd57393a26cebe2e923005db5134a946c62fa56a1087dc7c478f3e30837/numpy-2.3.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5e199c087e2aa71c8f9ce1cb7a8e10677dc12457e7cc1be4798632da37c3e86e", size = 14354866, upload-time = "2025-10-15T16:17:38.884Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/93/39/5b3510f023f96874ee6fea2e40dfa99313a00bf3ab779f3c92978f34aace/numpy-2.3.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85597b2d25ddf655495e2363fe044b0ae999b75bc4d630dc0d886484b03a5eb0", size = 16703296, upload-time = "2025-10-15T16:17:41.564Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/41/0d/19bb163617c8045209c1996c4e427bccbc4bbff1e2c711f39203c8ddbb4a/numpy-2.3.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:04a69abe45b49c5955923cf2c407843d1c85013b424ae8a560bba16c92fe44a0", size = 16136046, upload-time = "2025-10-15T16:17:43.901Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/e2/c1/6dba12fdf68b02a21ac411c9df19afa66bed2540f467150ca64d246b463d/numpy-2.3.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e1708fac43ef8b419c975926ce1eaf793b0c13b7356cfab6ab0dc34c0a02ac0f", size = 18652691, upload-time = "2025-10-15T16:17:46.247Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/f8/73/f85056701dbbbb910c51d846c58d29fd46b30eecd2b6ba760fc8b8a1641b/numpy-2.3.4-cp314-cp314t-win32.whl", hash = "sha256:863e3b5f4d9915aaf1b8ec79ae560ad21f0b8d5e3adc31e73126491bb86dee1d", size = 6485782, upload-time = "2025-10-15T16:17:48.872Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/17/90/28fa6f9865181cb817c2471ee65678afa8a7e2a1fb16141473d5fa6bacc3/numpy-2.3.4-cp314-cp314t-win_amd64.whl", hash = "sha256:962064de37b9aef801d33bc579690f8bfe6c5e70e29b61783f60bcba838a14d6", size = 13113301, upload-time = "2025-10-15T16:17:50.938Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/54/23/08c002201a8e7e1f9afba93b97deceb813252d9cfd0d3351caed123dcf97/numpy-2.3.4-cp314-cp314t-win_arm64.whl", hash = "sha256:8b5a9a39c45d852b62693d9b3f3e0fe052541f804296ff401a72a1b60edafb29", size = 10547532, upload-time = "2025-10-15T16:17:53.48Z" }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, +] + +[[package]] +name = "pathvalidate" +version = "3.3.1" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/fa/2a/52a8da6fe965dea6192eb716b357558e103aea0a1e9a8352ad575a8406ca/pathvalidate-3.3.1.tar.gz", hash = "sha256:b18c07212bfead624345bb8e1d6141cdcf15a39736994ea0b94035ad2b1ba177", size = 63262, upload-time = "2025-06-15T09:07:20.736Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/9a/70/875f4a23bfc4731703a5835487d0d2fb999031bd415e7d17c0ae615c18b7/pathvalidate-3.3.1-py3-none-any.whl", hash = "sha256:5263baab691f8e1af96092fa5137ee17df5bdfbd6cff1fcac4d6ef4bc2e1735f", size = 24305, upload-time = "2025-06-15T09:07:19.117Z" }, +] + +[[package]] +name = "pillow" +version = "12.0.0" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/5a/b0/cace85a1b0c9775a9f8f5d5423c8261c858760e2466c79b2dd184638b056/pillow-12.0.0.tar.gz", hash = "sha256:87d4f8125c9988bfbed67af47dd7a953e2fc7b0cc1e7800ec6d2080d490bb353", size = 47008828, upload-time = "2025-10-15T18:24:14.008Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/62/f2/de993bb2d21b33a98d031ecf6a978e4b61da207bef02f7b43093774c480d/pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0869154a2d0546545cde61d1789a6524319fc1897d9ee31218eae7a60ccc5643", size = 4045493, upload-time = "2025-10-15T18:22:25.758Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/0e/b6/bc8d0c4c9f6f111a783d045310945deb769b806d7574764234ffd50bc5ea/pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a7921c5a6d31b3d756ec980f2f47c0cfdbce0fc48c22a39347a895f41f4a6ea4", size = 4120461, upload-time = "2025-10-15T18:22:27.286Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/5d/57/d60d343709366a353dc56adb4ee1e7d8a2cc34e3fbc22905f4167cfec119/pillow-12.0.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:1ee80a59f6ce048ae13cda1abf7fbd2a34ab9ee7d401c46be3ca685d1999a399", size = 3576912, upload-time = "2025-10-15T18:22:28.751Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/a4/a4/a0a31467e3f83b94d37568294b01d22b43ae3c5d85f2811769b9c66389dd/pillow-12.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c50f36a62a22d350c96e49ad02d0da41dbd17ddc2e29750dbdba4323f85eb4a5", size = 5249132, upload-time = "2025-10-15T18:22:30.641Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/83/06/48eab21dd561de2914242711434c0c0eb992ed08ff3f6107a5f44527f5e9/pillow-12.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5193fde9a5f23c331ea26d0cf171fbf67e3f247585f50c08b3e205c7aeb4589b", size = 4650099, upload-time = "2025-10-15T18:22:32.73Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/fc/bd/69ed99fd46a8dba7c1887156d3572fe4484e3f031405fcc5a92e31c04035/pillow-12.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bde737cff1a975b70652b62d626f7785e0480918dece11e8fef3c0cf057351c3", size = 6230808, upload-time = "2025-10-15T18:22:34.337Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/ea/94/8fad659bcdbf86ed70099cb60ae40be6acca434bbc8c4c0d4ef356d7e0de/pillow-12.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a6597ff2b61d121172f5844b53f21467f7082f5fb385a9a29c01414463f93b07", size = 8037804, upload-time = "2025-10-15T18:22:36.402Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/20/39/c685d05c06deecfd4e2d1950e9a908aa2ca8bc4e6c3b12d93b9cafbd7837/pillow-12.0.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b817e7035ea7f6b942c13aa03bb554fc44fea70838ea21f8eb31c638326584e", size = 6345553, upload-time = "2025-10-15T18:22:38.066Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/38/57/755dbd06530a27a5ed74f8cb0a7a44a21722ebf318edbe67ddbd7fb28f88/pillow-12.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f4f1231b7dec408e8670264ce63e9c71409d9583dd21d32c163e25213ee2a344", size = 7037729, upload-time = "2025-10-15T18:22:39.769Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/ca/b6/7e94f4c41d238615674d06ed677c14883103dce1c52e4af16f000338cfd7/pillow-12.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e51b71417049ad6ab14c49608b4a24d8fb3fe605e5dfabfe523b58064dc3d27", size = 6459789, upload-time = "2025-10-15T18:22:41.437Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/9c/14/4448bb0b5e0f22dd865290536d20ec8a23b64e2d04280b89139f09a36bb6/pillow-12.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d120c38a42c234dc9a8c5de7ceaaf899cf33561956acb4941653f8bdc657aa79", size = 7130917, upload-time = "2025-10-15T18:22:43.152Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/dd/ca/16c6926cc1c015845745d5c16c9358e24282f1e588237a4c36d2b30f182f/pillow-12.0.0-cp313-cp313-win32.whl", hash = "sha256:4cc6b3b2efff105c6a1656cfe59da4fdde2cda9af1c5e0b58529b24525d0a098", size = 6302391, upload-time = "2025-10-15T18:22:44.753Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/6d/2a/dd43dcfd6dae9b6a49ee28a8eedb98c7d5ff2de94a5d834565164667b97b/pillow-12.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:4cf7fed4b4580601c4345ceb5d4cbf5a980d030fd5ad07c4d2ec589f95f09905", size = 7007477, upload-time = "2025-10-15T18:22:46.838Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/77/f0/72ea067f4b5ae5ead653053212af05ce3705807906ba3f3e8f58ddf617e6/pillow-12.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:9f0b04c6b8584c2c193babcccc908b38ed29524b29dd464bc8801bf10d746a3a", size = 2435918, upload-time = "2025-10-15T18:22:48.399Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/f5/5e/9046b423735c21f0487ea6cb5b10f89ea8f8dfbe32576fe052b5ba9d4e5b/pillow-12.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7fa22993bac7b77b78cae22bad1e2a987ddf0d9015c63358032f84a53f23cdc3", size = 5251406, upload-time = "2025-10-15T18:22:49.905Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/12/66/982ceebcdb13c97270ef7a56c3969635b4ee7cd45227fa707c94719229c5/pillow-12.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f135c702ac42262573fe9714dfe99c944b4ba307af5eb507abef1667e2cbbced", size = 4653218, upload-time = "2025-10-15T18:22:51.587Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/16/b3/81e625524688c31859450119bf12674619429cab3119eec0e30a7a1029cb/pillow-12.0.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c85de1136429c524e55cfa4e033b4a7940ac5c8ee4d9401cc2d1bf48154bbc7b", size = 6266564, upload-time = "2025-10-15T18:22:53.215Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/98/59/dfb38f2a41240d2408096e1a76c671d0a105a4a8471b1871c6902719450c/pillow-12.0.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:38df9b4bfd3db902c9c2bd369bcacaf9d935b2fff73709429d95cc41554f7b3d", size = 8069260, upload-time = "2025-10-15T18:22:54.933Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/dc/3d/378dbea5cd1874b94c312425ca77b0f47776c78e0df2df751b820c8c1d6c/pillow-12.0.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7d87ef5795da03d742bf49439f9ca4d027cde49c82c5371ba52464aee266699a", size = 6379248, upload-time = "2025-10-15T18:22:56.605Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/84/b0/d525ef47d71590f1621510327acec75ae58c721dc071b17d8d652ca494d8/pillow-12.0.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:aff9e4d82d082ff9513bdd6acd4f5bd359f5b2c870907d2b0a9c5e10d40c88fe", size = 7066043, upload-time = "2025-10-15T18:22:58.53Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/61/2c/aced60e9cf9d0cde341d54bf7932c9ffc33ddb4a1595798b3a5150c7ec4e/pillow-12.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8d8ca2b210ada074d57fcee40c30446c9562e542fc46aedc19baf758a93532ee", size = 6490915, upload-time = "2025-10-15T18:23:00.582Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/ef/26/69dcb9b91f4e59f8f34b2332a4a0a951b44f547c4ed39d3e4dcfcff48f89/pillow-12.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:99a7f72fb6249302aa62245680754862a44179b545ded638cf1fef59befb57ef", size = 7157998, upload-time = "2025-10-15T18:23:02.627Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/61/2b/726235842220ca95fa441ddf55dd2382b52ab5b8d9c0596fe6b3f23dafe8/pillow-12.0.0-cp313-cp313t-win32.whl", hash = "sha256:4078242472387600b2ce8d93ade8899c12bf33fa89e55ec89fe126e9d6d5d9e9", size = 6306201, upload-time = "2025-10-15T18:23:04.709Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/c0/3d/2afaf4e840b2df71344ababf2f8edd75a705ce500e5dc1e7227808312ae1/pillow-12.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2c54c1a783d6d60595d3514f0efe9b37c8808746a66920315bfd34a938d7994b", size = 7013165, upload-time = "2025-10-15T18:23:06.46Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/6f/75/3fa09aa5cf6ed04bee3fa575798ddf1ce0bace8edb47249c798077a81f7f/pillow-12.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:26d9f7d2b604cd23aba3e9faf795787456ac25634d82cd060556998e39c6fa47", size = 2437834, upload-time = "2025-10-15T18:23:08.194Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/54/2a/9a8c6ba2c2c07b71bec92cf63e03370ca5e5f5c5b119b742bcc0cde3f9c5/pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:beeae3f27f62308f1ddbcfb0690bf44b10732f2ef43758f169d5e9303165d3f9", size = 4045531, upload-time = "2025-10-15T18:23:10.121Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/84/54/836fdbf1bfb3d66a59f0189ff0b9f5f666cee09c6188309300df04ad71fa/pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:d4827615da15cd59784ce39d3388275ec093ae3ee8d7f0c089b76fa87af756c2", size = 4120554, upload-time = "2025-10-15T18:23:12.14Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/0d/cd/16aec9f0da4793e98e6b54778a5fbce4f375c6646fe662e80600b8797379/pillow-12.0.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:3e42edad50b6909089750e65c91aa09aaf1e0a71310d383f11321b27c224ed8a", size = 3576812, upload-time = "2025-10-15T18:23:13.962Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/f6/b7/13957fda356dc46339298b351cae0d327704986337c3c69bb54628c88155/pillow-12.0.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e5d8efac84c9afcb40914ab49ba063d94f5dbdf5066db4482c66a992f47a3a3b", size = 5252689, upload-time = "2025-10-15T18:23:15.562Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/fc/f5/eae31a306341d8f331f43edb2e9122c7661b975433de5e447939ae61c5da/pillow-12.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:266cd5f2b63ff316d5a1bba46268e603c9caf5606d44f38c2873c380950576ad", size = 4650186, upload-time = "2025-10-15T18:23:17.379Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/86/62/2a88339aa40c4c77e79108facbd307d6091e2c0eb5b8d3cf4977cfca2fe6/pillow-12.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:58eea5ebe51504057dd95c5b77d21700b77615ab0243d8152793dc00eb4faf01", size = 6230308, upload-time = "2025-10-15T18:23:18.971Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/c7/33/5425a8992bcb32d1cb9fa3dd39a89e613d09a22f2c8083b7bf43c455f760/pillow-12.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f13711b1a5ba512d647a0e4ba79280d3a9a045aaf7e0cc6fbe96b91d4cdf6b0c", size = 8039222, upload-time = "2025-10-15T18:23:20.909Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/d8/61/3f5d3b35c5728f37953d3eec5b5f3e77111949523bd2dd7f31a851e50690/pillow-12.0.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6846bd2d116ff42cba6b646edf5bf61d37e5cbd256425fa089fee4ff5c07a99e", size = 6346657, upload-time = "2025-10-15T18:23:23.077Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/3a/be/ee90a3d79271227e0f0a33c453531efd6ed14b2e708596ba5dd9be948da3/pillow-12.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c98fa880d695de164b4135a52fd2e9cd7b7c90a9d8ac5e9e443a24a95ef9248e", size = 7038482, upload-time = "2025-10-15T18:23:25.005Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/44/34/a16b6a4d1ad727de390e9bd9f19f5f669e079e5826ec0f329010ddea492f/pillow-12.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa3ed2a29a9e9d2d488b4da81dcb54720ac3104a20bf0bd273f1e4648aff5af9", size = 6461416, upload-time = "2025-10-15T18:23:27.009Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/b6/39/1aa5850d2ade7d7ba9f54e4e4c17077244ff7a2d9e25998c38a29749eb3f/pillow-12.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d034140032870024e6b9892c692fe2968493790dd57208b2c37e3fb35f6df3ab", size = 7131584, upload-time = "2025-10-15T18:23:29.752Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/bf/db/4fae862f8fad0167073a7733973bfa955f47e2cac3dc3e3e6257d10fab4a/pillow-12.0.0-cp314-cp314-win32.whl", hash = "sha256:1b1b133e6e16105f524a8dec491e0586d072948ce15c9b914e41cdadd209052b", size = 6400621, upload-time = "2025-10-15T18:23:32.06Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/2b/24/b350c31543fb0107ab2599464d7e28e6f856027aadda995022e695313d94/pillow-12.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:8dc232e39d409036af549c86f24aed8273a40ffa459981146829a324e0848b4b", size = 7142916, upload-time = "2025-10-15T18:23:34.71Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/0f/9b/0ba5a6fd9351793996ef7487c4fdbde8d3f5f75dbedc093bb598648fddf0/pillow-12.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:d52610d51e265a51518692045e372a4c363056130d922a7351429ac9f27e70b0", size = 2523836, upload-time = "2025-10-15T18:23:36.967Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/f5/7a/ceee0840aebc579af529b523d530840338ecf63992395842e54edc805987/pillow-12.0.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:1979f4566bb96c1e50a62d9831e2ea2d1211761e5662afc545fa766f996632f6", size = 5255092, upload-time = "2025-10-15T18:23:38.573Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/44/76/20776057b4bfd1aef4eeca992ebde0f53a4dce874f3ae693d0ec90a4f79b/pillow-12.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b2e4b27a6e15b04832fe9bf292b94b5ca156016bbc1ea9c2c20098a0320d6cf6", size = 4653158, upload-time = "2025-10-15T18:23:40.238Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/82/3f/d9ff92ace07be8836b4e7e87e6a4c7a8318d47c2f1463ffcf121fc57d9cb/pillow-12.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fb3096c30df99fd01c7bf8e544f392103d0795b9f98ba71a8054bcbf56b255f1", size = 6267882, upload-time = "2025-10-15T18:23:42.434Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/9f/7a/4f7ff87f00d3ad33ba21af78bfcd2f032107710baf8280e3722ceec28cda/pillow-12.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7438839e9e053ef79f7112c881cef684013855016f928b168b81ed5835f3e75e", size = 8071001, upload-time = "2025-10-15T18:23:44.29Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/75/87/fcea108944a52dad8cca0715ae6247e271eb80459364a98518f1e4f480c1/pillow-12.0.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d5c411a8eaa2299322b647cd932586b1427367fd3184ffbb8f7a219ea2041ca", size = 6380146, upload-time = "2025-10-15T18:23:46.065Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/91/52/0d31b5e571ef5fd111d2978b84603fce26aba1b6092f28e941cb46570745/pillow-12.0.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7e091d464ac59d2c7ad8e7e08105eaf9dafbc3883fd7265ffccc2baad6ac925", size = 7067344, upload-time = "2025-10-15T18:23:47.898Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/7b/f4/2dd3d721f875f928d48e83bb30a434dee75a2531bca839bb996bb0aa5a91/pillow-12.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:792a2c0be4dcc18af9d4a2dfd8a11a17d5e25274a1062b0ec1c2d79c76f3e7f8", size = 6491864, upload-time = "2025-10-15T18:23:49.607Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/30/4b/667dfcf3d61fc309ba5a15b141845cece5915e39b99c1ceab0f34bf1d124/pillow-12.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:afbefa430092f71a9593a99ab6a4e7538bc9eabbf7bf94f91510d3503943edc4", size = 7158911, upload-time = "2025-10-15T18:23:51.351Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/a2/2f/16cabcc6426c32218ace36bf0d55955e813f2958afddbf1d391849fee9d1/pillow-12.0.0-cp314-cp314t-win32.whl", hash = "sha256:3830c769decf88f1289680a59d4f4c46c72573446352e2befec9a8512104fa52", size = 6408045, upload-time = "2025-10-15T18:23:53.177Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/35/73/e29aa0c9c666cf787628d3f0dcf379f4791fba79f4936d02f8b37165bdf8/pillow-12.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:905b0365b210c73afb0ebe9101a32572152dfd1c144c7e28968a331b9217b94a", size = 7148282, upload-time = "2025-10-15T18:23:55.316Z" }, + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/c1/70/6b41bdcddf541b437bbb9f47f94d2db5d9ddef6c37ccab8c9107743748a4/pillow-12.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:99353a06902c2e43b43e8ff74ee65a7d90307d82370604746738a1e0661ccca7", size = 2525630, upload-time = "2025-10-15T18:23:57.149Z" }, +] + +[[package]] +name = "pyparsing" +version = "3.2.5" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/f2/a5/181488fc2b9d093e3972d2a472855aae8a03f000592dbfce716a512b3359/pyparsing-3.2.5.tar.gz", hash = "sha256:2df8d5b7b2802ef88e8d016a2eb9c7aeaa923529cd251ed0fe4608275d4105b6", size = 1099274, upload-time = "2025-09-21T04:11:06.277Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/10/5e/1aa9a93198c6b64513c9d7752de7422c06402de6600a8767da1524f9570b/pyparsing-3.2.5-py3-none-any.whl", hash = "sha256:e38a4f02064cf41fe6593d328d0512495ad1f3d8a91c4f73fc401b3079a59a5e", size = 113890, upload-time = "2025-09-21T04:11:04.117Z" }, +] + +[[package]] +name = "pytablewriter" +version = "1.2.1" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +dependencies = [ + { name = "dataproperty" }, + { name = "mbstrdecoder" }, + { name = "pathvalidate" }, + { name = "setuptools" }, + { name = "tabledata" }, + { name = "tcolorpy" }, + { name = "typepy", extra = ["datetime"] }, +] +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/f6/a1/617730f290f04d347103ab40bf67d317df6691b14746f6e1ea039fb57062/pytablewriter-1.2.1.tar.gz", hash = "sha256:7bd0f4f397e070e3b8a34edcf1b9257ccbb18305493d8350a5dbc9957fced959", size = 619241, upload-time = "2025-01-01T15:37:00.04Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/21/4c/c199512f01c845dfe5a7840ab3aae6c60463b5dc2a775be72502dfd9170a/pytablewriter-1.2.1-py3-none-any.whl", hash = "sha256:e906ff7ff5151d70a5f66e0f7b75642a7f2dce8d893c265b79cc9cf6bc04ddb4", size = 91083, upload-time = "2025-01-01T15:36:55.63Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "pytz" +version = "2025.2" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload-time = "2025-03-25T02:25:00.538Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload-time = "2025-03-25T02:24:58.468Z" }, +] + +[[package]] +name = "setuptools" +version = "80.9.0" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958, upload-time = "2025-05-27T00:56:51.443Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload-time = "2025-05-27T00:56:49.664Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "sortedcontainers" +version = "2.4.0" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload-time = "2021-05-16T22:03:42.897Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload-time = "2021-05-16T22:03:41.177Z" }, +] + +[[package]] +name = "tabledata" +version = "1.3.4" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +dependencies = [ + { name = "dataproperty" }, + { name = "typepy" }, +] +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/b2/35/171c8977162f1163368406deddde4c59673b62bd0cb2f34948a02effb075/tabledata-1.3.4.tar.gz", hash = "sha256:e9649cab129d718f3bff4150083b77f8a78c30f6634a30caf692b10fdc60cb97", size = 25074, upload-time = "2024-12-31T14:12:31.198Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/08/64/fa4160151976ee4b2cf0c1217a99443ffaeb991956feddfeac9eee9952f8/tabledata-1.3.4-py3-none-any.whl", hash = "sha256:1f56e433bfdeb89f4487abfa48c4603a3b07c5d3a3c7e05ff73dd018c24bd0d4", size = 11820, upload-time = "2024-12-31T14:12:28.584Z" }, +] + +[[package]] +name = "tcolorpy" +version = "0.1.7" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/80/cc/44f2d81d8f9093aad81c3467a5bf5718d2b5f786e887b6e4adcfc17ec6b9/tcolorpy-0.1.7.tar.gz", hash = "sha256:0fbf6bf238890bbc2e32662aa25736769a29bf6d880328f310c910a327632614", size = 299437, upload-time = "2024-12-29T15:24:23.847Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/05/a2/ed023f2edd1e011b4d99b6727bce8253842d66c3fbf9ed0a26fc09a92571/tcolorpy-0.1.7-py3-none-any.whl", hash = "sha256:26a59d52027e175a37e0aba72efc99dda43f074db71f55b316d3de37d3251378", size = 8096, upload-time = "2024-12-29T15:24:21.33Z" }, +] + +[[package]] +name = "typepy" +version = "1.3.4" +source = { registry = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" } +dependencies = [ + { name = "mbstrdecoder" }, +] +sdist = { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/79/59/4c39942077d7de285f762a91024dbda731be693591732977358f77d120fb/typepy-1.3.4.tar.gz", hash = "sha256:89c1f66de6c6133209c43a94d23431d320ba03ef5db18f241091ea594035d9de", size = 39558, upload-time = "2024-12-29T09:18:15.774Z" } +wheels = [ + { url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/ee/31/e393c3830bdedd01735bd195c85ac3034b6bcaf6c18142bab60a4047ca36/typepy-1.3.4-py3-none-any.whl", hash = "sha256:d5ed3e0c7f49521bff0603dd08cf8d453371cf68d65a29d3d0038552ccc46e2e", size = 31449, upload-time = "2024-12-29T09:18:13.135Z" }, +] + +[package.optional-dependencies] +datetime = [ + { name = "packaging" }, + { name = "python-dateutil" }, + { name = "pytz" }, +] diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/validator.py" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/validator.py" new file mode 100644 index 0000000000000000000000000000000000000000..2bd1edfe55a4694a9f4928bf75f2b3ca3d93949b --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/validator.py" @@ -0,0 +1,329 @@ +from __future__ import annotations + +from collections import OrderedDict + +from logger import logger +from model import ( + Settings, + Action, + ReloadAction, + VisitAction, + OffloadAction, + FinAction, + Request, +) +from utils.intervals import IntervalSet + + +class Validator: + def __init__( + self, + settings: Settings, + requests: list[Request], + actions: list[Action] | None, + verbose: bool = False, + ) -> None: + self.settings = settings + self.requests = requests + self.actions = actions + self.verbose = verbose + self.requests_by_start: OrderedDict[int, list[Request]] = OrderedDict() + for req in self.requests: + if req.start not in self.requests_by_start: + self.requests_by_start[req.start] = [] + self.requests_by_start[req.start].append(req) + + def validate(self) -> bool: + try: + logger.info("Starting validation ⚡️") + self.validate_requests() + if self.actions is not None: + logger.info("------------------------------") + self.validate_actions() + logger.info("Validation completed successfully ✅") + return True + except ValueError as e: + logger.error("Validation failed ❌") + if self.verbose: + logger.exception(e) + else: + logger.error(e) + logger.error( + "Rerun with verbose mode (`-v` or `--verbose`) for more details." + ) + return False + + def validate_requests(self) -> None: + """ + Rules: + - Chronology: + - `request`s should be ordered by `request.start`. + - Integrity: + - For those with same `request.start`, their `request.time` must be the same. + - Memory Bound: + - Every `request` should not exceed memory limit. + - For those with same `request.start`, sum of their memory usage should not exceed memory limit. + - Note that overlapping memory regions should be counted only once. + """ + # Chronology check + logger.info("Validating Requests - chronology...") + for i in range(1, len(self.requests)): + if self.requests[i].start < self.requests[i - 1].start: + raise ValueError( + f"requests are not ordered by start: {self.requests[i - 1]} comes before {self.requests[i]}" + ) + + # Integrity check + logger.info("Validating Requests - integrity...") + for start, reqs in self.requests_by_start.items(): + times = set(req.time for req in reqs) + if len(times) != 1: + raise ValueError( + f"requests starting at {start} have different times: {times}" + ) + + # Memory Bound check + logger.info("Validating Requests - memory bound...") + for start, reqs in self.requests_by_start.items(): + if self.verbose: + logger.debug(f"-> validating requests starting at {start}: {reqs}") + + # Calculate total memory usage + loaded_intervals = IntervalSet() + for req in reqs: + loaded_intervals.add(req.addr, req.addr + req.size) + total_memory = loaded_intervals.total() + + if self.verbose: + logger.debug(f"--> merged intervals: {loaded_intervals}") + + if self.verbose: + logger.debug( + f"--> total memory usage: {total_memory} (limit: {self.settings.M})" + ) + if total_memory > self.settings.M: + raise ValueError( + f"total memory usage {total_memory} exceeds limit {self.settings.M} for requests starting at {start}" + ) + logger.info("Validated Requests") + + def validate_actions(self) -> None: + """ + Rules: + - Chronology: + - `action`s should be ordered by `action.time`. + - Integrity: + - `FinAction` must be the last action in the sequence, and only one `FinAction` should exist. + - `VisitAction` should refer to valid request indices one by one in ascending order (i.e. `0`, `1`, `2`, ...). + - The time of `VisitAction` (`action.time`) should be greater than or equal to the `start` time of the corresponding `request` (`request.start`). + - Memory Access & Bound: + - The memory region accessed by `VisitAction` should be within the loaded memory (via `ReloadAction`). + - The loaded memory should not exceed memory limit (`ReloadAction` increases memory usage, while `OffloadAction` decreases it). + - Note that overlapping memory regions should be counted only once. + - If a memory region is being used by a `VisitAction`, it must not be offloaded by an `OffloadAction` before the `VisitAction` is completed. + - Concurrency: + - `ReloadAction` and `OffloadAction` cannot be performed concurrently. + - IO Actions (`ReloadAction`, `OffloadAction`) and `VisitAction` can be performed concurrently. + - If some requests have same `request.start`, their corresponding `VisitAction` must be concurrent and start at the same time. + Otherwise, `VisitAction` must be sequential. + - Report Correctness: + - `FinAction` must report correct (accurate) elapsed time. + """ + # Chronology check + logger.info("Validating Actions - chronology...") + if len(self.actions) < 1: + raise ValueError("There must be at least one action") + for i in range(1, len(self.actions)): + if self.actions[i].time < self.actions[i - 1].time: + raise ValueError( + f"Actions are not ordered by time: '{self.actions[i - 1]}' comes before '{self.actions[i]}'" + ) + + # Integrity check + logger.info("Validating Actions - integrity...") + if not isinstance(self.actions[-1], FinAction): + raise ValueError("The last action must be an FinAction") + if (count := len([a for a in self.actions if isinstance(a, FinAction)])) != 1: + raise ValueError(f"There must be exactly one FinAction, found {count}") + visit_actions = [a for a in self.actions if isinstance(a, VisitAction)] + if len(visit_actions) != len(self.requests): + raise ValueError( + f"The number of VisitActions ({len(visit_actions)}) does not match the number of requests ({len(self.requests)})" + ) + for i in range(0, len(visit_actions)): + if visit_actions[i].index < 0 or visit_actions[i].index >= len( + self.requests + ): + raise ValueError( + f"VisitAction index out of range: {visit_actions[i].index}" + ) + if visit_actions[i].index != i: + raise ValueError( + f"VisitAction indices must be in ascending order without gaps: expected {i}, found {visit_actions[i].index}" + ) + if visit_actions[i].time < visit_actions[i].request.start: + raise ValueError( + f"VisitAction time {visit_actions[i].time} is less than corresponding Request start time {visit_actions[i].request.start}" + ) + + # Memory Access & Bound check + logger.info("Validating Actions - memory access & bound...") + loaded_intervals = IntervalSet() + # Track active VisitActions (those that have started but not yet completed) + active_visits: list[VisitAction] = [] + + for action in self.actions[:-1]: # Exclude FinAction + # Remove completed VisitActions from active list + active_visits = [ + v for v in active_visits if action.time < v.time + v.cost() + ] + + if self.verbose: + logger.debug(f"-> validating action: '{action}'") + if isinstance(action, ReloadAction): + difference = loaded_intervals.difference( + action.addr, action.addr + action.size + ) + if (action.addr, action.addr + action.size) not in difference: + logger.warning( + f"ReloadAction '{action}' overlaps with already loaded memory regions. Load {difference} is enough." + ) + loaded_intervals.add(action.addr, action.addr + action.size) + total_loaded_memory = loaded_intervals.total() + if self.verbose: + logger.debug( + f"--> total loaded memory: {total_loaded_memory} (limit: {self.settings.M})" + ) + if total_loaded_memory > self.settings.M: + raise ValueError( + f"total loaded memory {total_loaded_memory} exceeds limit {self.settings.M} after {action}" + ) + elif isinstance(action, OffloadAction): + # Check if offload conflicts with any active VisitAction + offload_start = action.addr + offload_end = action.addr + action.size + for visit in active_visits: + visit_start = visit.request.addr + visit_end = visit.request.addr + visit.request.size + # Check if memory regions overlap + if offload_start < visit_end and offload_end > visit_start: + raise ValueError( + f"OffloadAction '{action}' conflicts with active VisitAction '{visit}'. " + f"Memory region [{offload_start}, {offload_end}) overlaps with " + f"[{visit_start}, {visit_end}) which is in use until time {visit.time + visit.cost()}." + ) + + difference = loaded_intervals.difference( + action.addr, action.addr + action.size + ) + if ( + difference + and (action.addr, action.addr + action.size) not in difference + ): + logger.warning( + f"OffloadAction '{action}' includes regions not currently loaded. Offload {difference} is unnecessary." + ) + loaded_intervals.remove(action.addr, action.addr + action.size) + total_loaded_memory = loaded_intervals.total() + if self.verbose: + logger.debug( + f"--> total loaded memory: {total_loaded_memory} (limit: {self.settings.M})" + ) + if total_loaded_memory > self.settings.M: + raise ValueError( + f"total loaded memory {total_loaded_memory} exceeds limit {self.settings.M} after '{action}'" + ) + elif isinstance(action, VisitAction): + if not loaded_intervals.contains( + action.request.addr, action.request.addr + action.request.size + ): + difference = loaded_intervals.difference( + action.request.addr, action.request.addr + action.request.size + ) + raise ValueError( + f"VisitAction '{action}' accesses memory region not fully loaded: {difference}" + ) + # Add to active visits + active_visits.append(action) + else: + raise ValueError(f"Unknown action type: {type(action)}") + + # Concurrency check + logger.info("Validating Actions - concurrency...") + current_io_action = None + final_io_action = None + for action in self.actions[:-1]: + if ( + current_io_action is not None + and action.time >= current_io_action.time + current_io_action.cost() + ): + logger.debug( + f"--> io action '{current_io_action}' removed as completed" + ) + current_io_action = None # Reset on IO Action completion + logger.debug( + f"-> validating action: '{action}', time: {action.time}, cost: {action.cost()}" + ) + if isinstance(action, (ReloadAction, OffloadAction)): + if current_io_action is not None: + raise ValueError( + f"IO Actions '{current_io_action}' and '{action}' cannot be performed concurrently." + ) + current_io_action = action + final_io_action = action + elif isinstance(action, VisitAction): + continue # VisitAction can be concurrent with IO Actions + else: + raise ValueError(f"Unknown action type: {type(action)}") + assert final_io_action is not None + + logger.debug("------------------------------") + + current_visit_action = None + final_visit_action = None + for start, reqs in self.requests_by_start.items(): + visit_actions_for_requests = [a for a in visit_actions if a.request in reqs] + logger.debug( + f"-> validating VisitActions for requests starting at {start}: {visit_actions_for_requests}" + ) + assert len(visit_actions_for_requests) == len(reqs) + longest_action = visit_actions_for_requests[0] + for i in range(1, len(visit_actions_for_requests)): + prev_action = visit_actions_for_requests[i - 1] + curr_action = visit_actions_for_requests[i] + if curr_action.time != prev_action.time: + raise ValueError( + f"VisitActions for requests ({reqs}) starting at {start} must be concurrent and start at the same time. \ +'{curr_action}' and '{prev_action}' have different start times." + ) + if curr_action.cost() > longest_action.cost(): + longest_action = curr_action + if ( + current_visit_action is not None + and longest_action.time + < current_visit_action.time + current_visit_action.cost() + ): + raise ValueError( + f"VisitActions for requests ({reqs}) starting at {start} must be sequential. \ +'{longest_action}' starts before previous VisitAction '{current_visit_action}' completes." + ) + current_visit_action = longest_action + final_visit_action = longest_action + assert final_visit_action is not None + + # Report Correctness check + logger.info("Validating Actions - report correctness...") + last_action_end_time = max( + final_io_action.time + final_io_action.cost(), + final_visit_action.time + final_visit_action.cost(), + ) + if self.actions[-1].time < last_action_end_time: + raise ValueError( + f"FinAction reports time {self.actions[-1].time}, but actual elapsed time is {last_action_end_time}" + ) + elif self.actions[-1].time > last_action_end_time: + logger.warning( + f"FinAction reports time {self.actions[-1].time}, which is greater than actual elapsed time {last_action_end_time}. Consider reporting accurate time." + ) + + logger.info("Action Validated") diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/visualizer.py" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/visualizer.py" new file mode 100644 index 0000000000000000000000000000000000000000..be6319a99334d820e8428b475667d99e61b84f1c --- /dev/null +++ "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/src/visualizer.py" @@ -0,0 +1,299 @@ +from __future__ import annotations + +from model import ( + Settings, + Request, + Action, + ReloadAction, + VisitAction, + OffloadAction, + FinAction, +) + +import matplotlib +import matplotlib.pyplot as plt + +matplotlib.use("Agg") + + +class Visualizer: + """ + A class to visualize settings, requests, and actions. + + The settings, requests and actions must be validated before being passed to this class. + """ + + def __init__( + self, settings: Settings, requests: list[Request], actions: list[Action] + ) -> None: + self.settings = settings + self.requests = requests + self.actions = actions + + @staticmethod + def _assign_lanes(intervals: list[tuple]) -> dict: + """ + Assign lanes (y positions) to intervals to avoid overlaps. + intervals: list of tuples (start, end, ...) + Returns: dict mapping interval index to lane number + """ + if not intervals: + return {} + + # Sort by start time, then by end time + indexed_intervals = [ + (i, intervals[i][0], intervals[i][1]) for i in range(len(intervals)) + ] + indexed_intervals.sort(key=lambda x: (x[1], x[2])) + + # Greedy lane assignment + lanes = [] # Each lane stores the end time of the last interval in that lane + lane_assignment = {} + + for idx, start, end in indexed_intervals: + # Find the first available lane + assigned = False + for lane_num, lane_end in enumerate(lanes): + if start >= lane_end: # No overlap + lanes[lane_num] = end + lane_assignment[idx] = lane_num + assigned = True + break + + if not assigned: + # Create a new lane + lanes.append(end) + lane_assignment[idx] = len(lanes) - 1 + + return lane_assignment + + def visualize(self, path: str) -> None: + """ + Visualize the given (validated) settings, requests, and actions. + """ + # Build intervals for actions + visits = [] # tuples (start, end, index) + ios = [] # tuples (start, end, type, addr, size) + for action in self.actions: + if isinstance(action, VisitAction): + start = action.time + end = action.time + action.cost() + visits.append((start, end, action.index)) + elif isinstance(action, (ReloadAction, OffloadAction)): + start = action.time + end = action.time + action.cost() + typ = "Reload" if isinstance(action, ReloadAction) else "Offload" + ios.append((start, end, typ, action.addr, action.size)) + elif isinstance(action, FinAction): + # FinAction marks the reported finish time; include as vertical marker later + fin_time = action.time + + # Sort intervals + visits.sort() + ios.sort() + + # Assign lanes for parallel display + # Prepare intervals for requests + request_intervals = [ + (req.start, req.start + req.time, i) for i, req in enumerate(self.requests) + ] + request_lanes = self._assign_lanes(request_intervals) + num_request_lanes = ( + max(request_lanes.values(), default=0) + 1 if request_lanes else 1 + ) + + # Assign lanes for visits + visit_lanes = self._assign_lanes(visits) + num_visit_lanes = max(visit_lanes.values(), default=0) + 1 if visit_lanes else 1 + + # Assign lanes for IOs + io_lanes = self._assign_lanes(ios) + num_io_lanes = max(io_lanes.values(), default=0) + 1 if io_lanes else 1 + + # Calculate figure height: each lane gets 0.4 inches, plus 3 inches for memory chart + total_height = max( + 4, (num_request_lanes + num_visit_lanes + num_io_lanes) * 0.4 + 3 + ) + fig, axes = plt.subplots( + 4, + 1, + figsize=(14, total_height), + sharex=True, + gridspec_kw={ + "height_ratios": [num_request_lanes, num_visit_lanes, num_io_lanes, 3] + }, + ) + + # Bar 1 (top): Requests - show the time window [start, start+time] for each request + ax0 = axes[0] + for i, req in enumerate(self.requests): + start = req.start + end = req.start + req.time + lane = request_lanes.get(i, 0) + # Use different colors cycling through a palette + color = f"C{i % 10}" + ax0.barh( + lane, + end - start, + left=start, + height=0.8, + color=color, + alpha=0.7, + edgecolor="black", + linewidth=1.5, + ) + + ax0.set_yticks(range(num_request_lanes)) + ax0.set_yticklabels([f"Lane {i}" for i in range(num_request_lanes)]) + ax0.set_ylabel("Requests") + ax0.set_ylim(-0.5, num_request_lanes - 0.5) + ax0.grid(True, axis="x", linestyle="--", alpha=0.3) + + # Bar 2 (middle): Visits - show execution time for each VisitAction + ax1 = axes[1] + for i, (s, e, idx) in enumerate(visits): + lane = visit_lanes.get(i, 0) + color = f"C{idx % 10}" + ax1.barh( + lane, + e - s, + left=s, + height=0.8, + color=color, + alpha=0.6, + edgecolor="black", + linewidth=2, + ) + + ax1.set_yticks(range(num_visit_lanes)) + ax1.set_yticklabels([f"Lane {i}" for i in range(num_visit_lanes)]) + ax1.set_ylabel("Visits") + ax1.set_ylim(-0.5, num_visit_lanes - 0.5) + ax1.grid(True, axis="x", linestyle="--", alpha=0.3) + + # Bar 3 (bottom): IO - show execution time for each Reload/Offload + ax2 = axes[2] + for i, (s, e, typ, addr, size) in enumerate(ios): + lane = io_lanes.get(i, 0) + # Use distinct colors and hatch patterns for Reload vs Offload + if typ == "Reload": + color = "tab:blue" + hatch = "///" # Diagonal lines for Reload + else: # Offload + color = "tab:red" + hatch = "\\\\\\" # Reverse diagonal lines for Offload + + ax2.barh( + lane, + e - s, + left=s, + height=0.8, + color=color, + alpha=0.5, + edgecolor="black", + linewidth=1.5, + hatch=hatch, + ) + + ax2.set_yticks(range(num_io_lanes)) + ax2.set_yticklabels([f"Lane {i}" for i in range(num_io_lanes)]) + ax2.set_ylabel("IO") + ax2.set_ylim(-0.5, num_io_lanes - 0.5) + ax2.grid(True, axis="x", linestyle="--", alpha=0.3) + + # Bar 4 (bottom): Memory Usage - line chart showing memory occupation over time + ax3 = axes[3] + + # Build memory usage timeline + memory_events = [] # (time, delta_memory, event_type) + + for action in self.actions: + if isinstance(action, ReloadAction): + # Reload starts: memory increases instantly + memory_events.append((action.time, action.size, "reload_start")) + elif isinstance(action, OffloadAction): + # Offload ends: memory decreases instantly + offload_end_time = action.time + action.cost() + memory_events.append((offload_end_time, -action.size, "offload_end")) + + # Sort events by time + memory_events.sort(key=lambda x: x[0]) + + # Build timeline with step function + times = [0] + memory_usage = [0] + current_memory = 0 + + for time, delta, event_type in memory_events: + # Add point just before the change + if times[-1] != time: + times.append(time) + memory_usage.append(current_memory) + + # Apply the change + current_memory += delta + times.append(time) + memory_usage.append(current_memory) + + # Extend to fin_time + if times[-1] < fin_time: + times.append(fin_time) + memory_usage.append(current_memory) + + # Plot memory usage + ax3.plot( + times, memory_usage, linewidth=2, color="tab:green", label="Memory Usage" + ) + ax3.fill_between(times, 0, memory_usage, alpha=0.3, color="tab:green") + + # Add memory limit line + ax3.axhline( + self.settings.M, + color="tab:red", + linestyle="--", + linewidth=1.5, + label=f"Memory Limit ({self.settings.M})", + ) + + ax3.set_ylabel("Memory Usage (bytes)") + ax3.set_xlabel("Time") + ax3.grid(True, linestyle="--", alpha=0.3) + ax3.legend(loc="upper left", bbox_to_anchor=(1.02, 1), fontsize=8, frameon=True) + ax3.set_ylim(bottom=0) + + # Mark Fin time on all axes + for ax in axes: + ax.axvline(fin_time, color="k", linestyle=":", linewidth=2, label="Fin") + + # Add legend for IO types + from matplotlib.patches import Patch + + legend_elements = [ + Patch( + facecolor="tab:blue", + edgecolor="black", + hatch="///", + alpha=0.5, + label="Reload", + ), + Patch( + facecolor="tab:red", + edgecolor="black", + hatch="\\\\\\", + alpha=0.5, + label="Offload", + ), + ] + ax2.legend( + handles=legend_elements, + loc="upper left", + bbox_to_anchor=(1.02, 1), + fontsize=8, + frameon=True, + ) + + fig.tight_layout(rect=[0, 0, 0.85, 1]) # Leave space on the right for legends + fig.savefig(path) + plt.close(fig) + + return None diff --git "a/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/\347\255\224\350\276\251.pdf" "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/\347\255\224\350\276\251.pdf" new file mode 100644 index 0000000000000000000000000000000000000000..0c2da1e62361e94c83d1a0e5d2b455f261a596c9 Binary files /dev/null and "b/2025/work/06 \350\226\233\344\270\201\350\261\252 \345\217\266\347\204\257\344\273\201 \345\274\240\346\230\216\346\230\216/\347\255\224\350\276\251.pdf" differ