From fe4dfb83156af001d8ebf43885661301f720d163 Mon Sep 17 00:00:00 2001 From: LilSpazJoekp <15524072+LilSpazJoekp@users.noreply.github.com> Date: Sat, 23 Sep 2023 12:12:20 -0500 Subject: [PATCH 1/2] Add missing tools for release workflows to work --- tools/__init__.py | 0 tools/bump_version.py | 19 ++++++ tools/extract_log_entry.py | 39 +++++++++++++ tools/set_version.py | 116 +++++++++++++++++++++++++++++++++++++ 4 files changed, 174 insertions(+) create mode 100644 tools/__init__.py create mode 100755 tools/bump_version.py create mode 100755 tools/extract_log_entry.py create mode 100755 tools/set_version.py diff --git a/tools/__init__.py b/tools/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tools/bump_version.py b/tools/bump_version.py new file mode 100755 index 0000000..5f4c3ee --- /dev/null +++ b/tools/bump_version.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python3 +import sys + +COMMIT_PREFIX = "Bump to v" + + +def main(): + line = sys.stdin.readline() + if not line.startswith(COMMIT_PREFIX): + sys.stderr.write( + f"Commit message does not begin with `{COMMIT_PREFIX}`.\nMessage:\n\n{line}" + ) + return 1 + print(line[len(COMMIT_PREFIX) : -1]) + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/tools/extract_log_entry.py b/tools/extract_log_entry.py new file mode 100755 index 0000000..2a95e35 --- /dev/null +++ b/tools/extract_log_entry.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +import sys + +import docutils.nodes +import docutils.parsers.rst +import docutils.utils + + +def get_entry_slice(doc): + current_version = sys.stdin.readline().strip() + start_line = None + end_line = None + for section in doc.children[0].children: + if start_line: + end_line = section.children[0].line - 2 + break + header = section.children[0] + if current_version in getattr(header, "rawsource", ""): + start_line = header.line - 2 + return slice(start_line, end_line) + + +def parse_rst(text: str) -> docutils.nodes.document: + parser = docutils.parsers.rst.Parser() + components = (docutils.parsers.rst.Parser,) + settings = docutils.frontend.OptionParser( + components=components + ).get_default_values() + settings.report_level = 4 + document = docutils.utils.new_document("", settings=settings) + parser.parse(text, document) + return document + + +with open("CHANGES.rst") as f: + source = f.read() + document = parse_rst(source) + +sys.stdout.write("\n".join(source.splitlines()[get_entry_slice(document)])) diff --git a/tools/set_version.py b/tools/set_version.py new file mode 100755 index 0000000..3f89a4a --- /dev/null +++ b/tools/set_version.py @@ -0,0 +1,116 @@ +#!/usr/bin/env python3 +import re +import sys +from datetime import date + +import packaging.version + +CHANGELOG_HEADER = ( + "Change Log\n==========\n\n" + "prawcore follows `semantic versioning `_.\n\n" +) +UNRELEASED_HEADER = "Unreleased\n----------\n\n" + + +def add_unreleased_to_changelog(): + with open("CHANGES.rst") as fp: + content = fp.read() + + if not content.startswith(CHANGELOG_HEADER): + sys.stderr.write("Unexpected CHANGES.rst header\n") + return False + new_header = f"{CHANGELOG_HEADER}{UNRELEASED_HEADER}" + if content.startswith(new_header): + sys.stderr.write("CHANGES.rst already contains Unreleased header\n") + return False + + with open("CHANGES.rst", "w") as fp: + fp.write(f"{new_header}{content[len(CHANGELOG_HEADER):]}") + return True + + +def handle_unreleased(): + return add_unreleased_to_changelog() and increment_development_version() + + +def handle_version(version): + version = valid_version(version) + if not version: + return False + return update_changelog(version) and update_package(version) + + +def increment_development_version(): + with open("praw/const.py") as fp: + version = re.search('__version__ = "([^"]+)"', fp.read()).group(1) + + parsed_version = valid_version(version) + if not parsed_version: + return False + + if parsed_version.is_devrelease: + pre = "".join(str(x) for x in parsed_version.pre) if parsed_version.pre else "" + new_version = f"{parsed_version.base_version}{pre}.dev{parsed_version.dev + 1}" + elif parsed_version.is_prerelease: + new_version = f"{parsed_version}.dev0" + else: + assert parsed_version.base_version == version + new_version = f"{parsed_version.major}.{parsed_version.minor}.{parsed_version.micro + 1}.dev0" + + assert valid_version(new_version) + return update_package(new_version) + + +def main(): + if len(sys.argv) != 2: + sys.stderr.write(f"Usage: {sys.argv[0]} VERSION\n") + return 1 + if sys.argv[1] == "Unreleased": + return not handle_unreleased() + return not handle_version(sys.argv[1]) + + +def update_changelog(version): + with open("CHANGES.rst") as fp: + content = fp.read() + + expected_header = f"{CHANGELOG_HEADER}{UNRELEASED_HEADER}" + if not content.startswith(expected_header): + sys.stderr.write("CHANGES.rst does not contain Unreleased header.\n") + return False + + date_string = date.today().strftime("%Y/%m/%d") + version_line = f"{version} ({date_string})\n" + version_header = f"{version_line}{'-' * len(version_line[:-1])}\n\n" + + with open("CHANGES.rst", "w") as fp: + fp.write(f"{CHANGELOG_HEADER}{version_header}{content[len(expected_header):]}") + return True + + +def update_package(version): + with open("praw/const.py") as fp: + content = fp.read() + + updated = re.sub('__version__ = "([^"]+)"', f'__version__ = "{version}"', content) + if content == updated: + sys.stderr.write("Package version string not changed\n") + return False + + with open("praw/const.py", "w") as fp: + fp.write(updated) + + print(version) + return True + + +def valid_version(version): + parsed_version = packaging.version.parse(version) + if parsed_version.local or parsed_version.is_postrelease or parsed_version.epoch: + sys.stderr.write("epoch, local postrelease version parts are not supported") + return False + return parsed_version + + +if __name__ == "__main__": + sys.exit(main()) From 17022f87a57f9728d42d9fe6f5aed761ca12ea68 Mon Sep 17 00:00:00 2001 From: LilSpazJoekp <15524072+LilSpazJoekp@users.noreply.github.com> Date: Sat, 23 Sep 2023 12:14:30 -0500 Subject: [PATCH 2/2] Upgrade build system to flit, add new pre-commit hooks, switch to ruff for most linting checks, and lint and clean up code using ruff --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .pre-commit-config.yaml | 57 +++++------ examples/caching_requestor.py | 0 prawcore/__init__.py | 12 +-- prawcore/auth.py | 87 +++++++++-------- prawcore/const.py | 12 ++- prawcore/exceptions.py | 30 +++--- prawcore/rate_limit.py | 24 ++--- prawcore/requestor.py | 19 ++-- prawcore/sessions.py | 115 +++++++++++----------- prawcore/util.py | 10 +- pyproject.toml | 124 +++++++++++++++++++++++- setup.py | 51 ---------- tests/integration/__init__.py | 2 +- tests/integration/files/comment_ids.txt | 2 +- tests/{integration => }/utils.py | 0 16 files changed, 319 insertions(+), 228 deletions(-) mode change 100644 => 100755 examples/caching_requestor.py delete mode 100644 setup.py rename tests/{integration => }/utils.py (100%) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 9447a45..aaee3c5 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -28,7 +28,7 @@ body: - id: credential-check attributes: label: | - The `Reddit()` initialization in my code example does not include the following parameters to prevent credential leakage: + The `Reddit()` initialization in my code example does not include the following parameters to prevent credential leakage: `client_secret`, `password`, or `refresh_token`. options: - label: "Yes" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f99e0c2..e6f88a8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,10 +1,36 @@ +default_language_version: + python: python3.11 repos: - - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.4.0 hooks: + - id: check-added-large-files + - id: check-executables-have-shebangs + - id: check-shebang-scripts-are-executable + - id: check-toml + - id: check-yaml - id: end-of-file-fixer - exclude: .*\.txt - rev: v4.4.0 + - id: mixed-line-ending + args: [ --fix=no ] + - id: name-tests-test + args: [ --pytest-test-first ] + files: ^tests/integration/.*\.py|tests/unit/.*\.py$ + - id: sort-simple-yaml + files: ^(\.github/workflows/.*\.ya?ml|\.readthedocs.ya?ml)$ + - id: trailing-whitespace + + - repo: https://github.com/pappasam/toml-sort + rev: v0.23.1 + hooks: + - id: toml-sort-fix + files: ^(.*\.toml)$ + + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.0.290 + hooks: + - id: ruff + args: [ --exit-non-zero-on-fix, --fix ] + files: ^(prawcore/.*.py)$ - repo: https://github.com/psf/black hooks: @@ -14,28 +40,5 @@ repos: - repo: https://github.com/LilSpazJoekp/docstrfmt hooks: - id: docstrfmt + require_serial: true rev: v1.5.1 - - - repo: https://github.com/pycqa/flake8 - hooks: - - id: flake8 - rev: 6.1.0 - - - repo: https://github.com/ikamensh/flynt/ - hooks: - - id: flynt - args: - - '-ll' - - '1000' - rev: '1.0.1' - - - repo: https://github.com/pycqa/isort - hooks: - - id: isort - rev: 5.12.0 - - - repo: https://github.com/pycqa/pydocstyle - hooks: - - id: pydocstyle - files: prawcore/.* - rev: 6.3.0 diff --git a/examples/caching_requestor.py b/examples/caching_requestor.py old mode 100644 new mode 100755 diff --git a/prawcore/__init__.py b/prawcore/__init__.py index 9c6ab3e..073c366 100644 --- a/prawcore/__init__.py +++ b/prawcore/__init__.py @@ -1,8 +1,8 @@ -"""prawcore: Low-level communication layer for PRAW 4+.""" +""""Low-level communication layer for PRAW 4+.""" import logging -from .auth import ( # noqa +from .auth import ( Authorizer, DeviceIDAuthorizer, ImplicitAuthorizer, @@ -11,9 +11,9 @@ TrustedAuthenticator, UntrustedAuthenticator, ) -from .const import __version__ # noqa -from .exceptions import * # noqa -from .requestor import Requestor # noqa -from .sessions import Session, session # noqa +from .const import __version__ +from .exceptions import * # noqa: F403 +from .requestor import Requestor +from .sessions import Session, session logging.getLogger(__package__).addHandler(logging.NullHandler()) diff --git a/prawcore/auth.py b/prawcore/auth.py index ada26cf..84abb5a 100644 --- a/prawcore/auth.py +++ b/prawcore/auth.py @@ -1,7 +1,9 @@ """Provides Authentication and Authorization classes.""" +from __future__ import annotations + import time from abc import ABC, abstractmethod -from typing import TYPE_CHECKING, Callable, List, Optional, Set, Tuple, Type, Union +from typing import TYPE_CHECKING, Any, Callable from requests import Request from requests.status_codes import codes @@ -24,9 +26,9 @@ def _auth(self): def __init__( self, - requestor: "Requestor", + requestor: Requestor, client_id: str, - redirect_uri: Optional[str] = None, + redirect_uri: str | None = None, ) -> None: """Represent a single authentication to Reddit's API. @@ -43,7 +45,9 @@ def __init__( self.client_id = client_id self.redirect_uri = redirect_uri - def _post(self, url: str, success_status: int = codes["ok"], **data) -> "Response": + def _post( + self, url: str, success_status: int = codes["ok"], **data: Any + ) -> Response: response = self._requestor.request( "post", url, @@ -58,7 +62,7 @@ def _post(self, url: str, success_status: int = codes["ok"], **data) -> "Respons def authorize_url( self, duration: str, - scopes: List[str], + scopes: list[str], state: str, implicit: bool = False, ) -> str: @@ -86,16 +90,16 @@ def authorize_url( """ if self.redirect_uri is None: - raise InvalidInvocation("redirect URI not provided") + msg = "redirect URI not provided" + raise InvalidInvocation(msg) if implicit and not isinstance(self, UntrustedAuthenticator): - raise InvalidInvocation( - "Only UntrustedAuthenticator instances can " - "use the implicit grant flow." + msg = ( + "Only UntrustedAuthenticator instances can use the implicit grant flow." ) + raise InvalidInvocation(msg) if implicit and duration != "temporary": - raise InvalidInvocation( - "The implicit grant flow only supports temporary access tokens." - ) + msg = "The implicit grant flow only supports temporary access tokens." + raise InvalidInvocation(msg) params = { "client_id": self.client_id, @@ -107,9 +111,9 @@ def authorize_url( } url = self._requestor.reddit_url + const.AUTHORIZATION_PATH request = Request("GET", url, params=params) - return request.prepare().url # type: ignore + return request.prepare().url - def revoke_token(self, token: str, token_type: Optional[str] = None) -> None: + def revoke_token(self, token: str, token_type: str | None = None) -> None: """Ask Reddit to revoke the provided token. :param token: The access or refresh token to revoke. @@ -128,7 +132,7 @@ def revoke_token(self, token: str, token_type: Optional[str] = None) -> None: class BaseAuthorizer(ABC): """Superclass for OAuth2 authorization tokens and scopes.""" - AUTHENTICATOR_CLASS: Union[Tuple, Type] = BaseAuthenticator + AUTHENTICATOR_CLASS: tuple | type = BaseAuthenticator def __init__(self, authenticator: BaseAuthenticator) -> None: """Represent a single authorization to Reddit's API. @@ -142,10 +146,10 @@ def __init__(self, authenticator: BaseAuthenticator) -> None: def _clear_access_token(self) -> None: self._expiration_timestamp: float - self.access_token: Optional[str] = None - self.scopes: Optional[Set[str]] = None + self.access_token: str | None = None + self.scopes: set[str] | None = None - def _request_token(self, **data) -> None: + def _request_token(self, **data: Any) -> None: url = self._authenticator._requestor.reddit_url + const.ACCESS_TOKEN_PATH pre_request_time = time.time() response = self._authenticator._post(url=url, **data) @@ -186,7 +190,8 @@ def is_valid(self) -> bool: def revoke(self) -> None: """Revoke the current Authorization.""" if self.access_token is None: - raise InvalidInvocation("no token available to revoke") + msg = "no token available to revoke" + raise InvalidInvocation(msg) self._authenticator.revoke_token(self.access_token, "access_token") self._clear_access_token() @@ -199,10 +204,10 @@ class TrustedAuthenticator(BaseAuthenticator): def __init__( self, - requestor: "Requestor", + requestor: Requestor, client_id: str, client_secret: str, - redirect_uri: Optional[str] = None, + redirect_uri: str | None = None, ) -> None: """Represent a single authentication to Reddit's API. @@ -216,17 +221,17 @@ def __init__( (default: ``None``). """ - super(TrustedAuthenticator, self).__init__(requestor, client_id, redirect_uri) + super().__init__(requestor, client_id, redirect_uri) self.client_secret = client_secret - def _auth(self) -> Tuple[str, str]: + def _auth(self) -> tuple[str, str]: return self.client_id, self.client_secret class UntrustedAuthenticator(BaseAuthenticator): """Store OAuth2 authentication credentials for installed applications.""" - def _auth(self) -> Tuple[str, str]: + def _auth(self) -> tuple[str, str]: return self.client_id, "" @@ -237,9 +242,9 @@ def __init__( self, authenticator: BaseAuthenticator, *, - post_refresh_callback: Optional[Callable[["Authorizer"], None]] = None, - pre_refresh_callback: Optional[Callable[["Authorizer"], None]] = None, - refresh_token: Optional[str] = None, + post_refresh_callback: Callable[[Authorizer], None] | None = None, + pre_refresh_callback: Callable[[Authorizer], None] | None = None, + refresh_token: str | None = None, ) -> None: """Represent a single authorization to Reddit's API. @@ -257,7 +262,7 @@ def __init__( :param refresh_token: Enables the ability to refresh the authorization. """ - super(Authorizer, self).__init__(authenticator) + super().__init__(authenticator) self._post_refresh_callback = post_refresh_callback self._pre_refresh_callback = pre_refresh_callback self.refresh_token = refresh_token @@ -270,7 +275,8 @@ def authorize(self, code: str) -> None: """ if self._authenticator.redirect_uri is None: - raise InvalidInvocation("redirect URI not provided") + msg = "redirect URI not provided" + raise InvalidInvocation(msg) self._request_token( code=code, grant_type="authorization_code", @@ -282,7 +288,8 @@ def refresh(self) -> None: if self._pre_refresh_callback: self._pre_refresh_callback(self) if self.refresh_token is None: - raise InvalidInvocation("refresh token not provided") + msg = "refresh token not provided" + raise InvalidInvocation(msg) self._request_token( grant_type="refresh_token", refresh_token=self.refresh_token ) @@ -300,7 +307,7 @@ def revoke(self, only_access: bool = False) -> None: """ if only_access or self.refresh_token is None: - super(Authorizer, self).revoke() + super().revoke() else: self._authenticator.revoke_token(self.refresh_token, "refresh_token") self._clear_access_token() @@ -333,7 +340,7 @@ def __init__( from Reddit in the callback to the authenticator's redirect uri. """ - super(ImplicitAuthorizer, self).__init__(authenticator) + super().__init__(authenticator) self._expiration_timestamp = time.time() + expires_in self.access_token = access_token self.scopes = set(scope.split(" ")) @@ -352,7 +359,7 @@ class ReadOnlyAuthorizer(Authorizer): def __init__( self, authenticator: BaseAuthenticator, - scopes: Optional[List[str]] = None, + scopes: list[str] | None = None, ) -> None: """Represent a ReadOnly authorization to Reddit's API. @@ -384,10 +391,10 @@ class ScriptAuthorizer(Authorizer): def __init__( self, authenticator: BaseAuthenticator, - username: Optional[str], - password: Optional[str], - two_factor_callback: Optional[Callable] = None, - scopes: Optional[List[str]] = None, + username: str | None, + password: str | None, + two_factor_callback: Callable | None = None, + scopes: list[str] | None = None, ) -> None: """Represent a single personal-use authorization to Reddit's API. @@ -401,7 +408,7 @@ def __init__( ``None``). The scope ``"*"`` is requested when the default argument is used. """ - super(ScriptAuthorizer, self).__init__(authenticator) + super().__init__(authenticator) self._password = password self._scopes = scopes self._two_factor_callback = two_factor_callback @@ -436,8 +443,8 @@ class DeviceIDAuthorizer(BaseAuthorizer): def __init__( self, authenticator: BaseAuthenticator, - device_id: Optional[str] = None, - scopes: Optional[List[str]] = None, + device_id: str | None = None, + scopes: list[str] | None = None, ) -> None: """Represent an app-only OAuth2 authorization for 'installed' apps. diff --git a/prawcore/const.py b/prawcore/const.py index 591b4ba..24fdc09 100644 --- a/prawcore/const.py +++ b/prawcore/const.py @@ -3,8 +3,12 @@ __version__ = "2.3.0" -ACCESS_TOKEN_PATH = "/api/v1/access_token" -AUTHORIZATION_PATH = "/api/v1/authorize" -REVOKE_TOKEN_PATH = "/api/v1/revoke_token" -TIMEOUT = float(os.environ.get("prawcore_timeout", 16)) +ACCESS_TOKEN_PATH = "/api/v1/access_token" # noqa: S105 +AUTHORIZATION_PATH = "/api/v1/authorize" # noqa: S105 +REVOKE_TOKEN_PATH = "/api/v1/revoke_token" # noqa: S105 +TIMEOUT = float( + os.environ.get( + "PRAWCORE_TIMEOUT", os.environ.get("prawcore_timeout", 16) # noqa: SIM112 + ) +) WINDOW_SIZE = 600 diff --git a/prawcore/exceptions.py b/prawcore/exceptions.py index 70dda71..248c0a2 100644 --- a/prawcore/exceptions.py +++ b/prawcore/exceptions.py @@ -1,12 +1,14 @@ """Provide exception classes for the prawcore package.""" -from typing import TYPE_CHECKING, Any, Dict, Optional, Tuple, Union +from __future__ import annotations + +from typing import TYPE_CHECKING, Any from urllib.parse import urlparse if TYPE_CHECKING: from requests.models import Response -class PrawcoreException(Exception): +class PrawcoreException(Exception): # noqa: N818 """Base exception class for exceptions that occur within this package.""" @@ -18,7 +20,7 @@ class OAuthException(PrawcoreException): """Indicate that there was an OAuth2 related error with the request.""" def __init__( - self, response: "Response", error: str, description: Optional[str] = None + self, response: Response, error: str, description: str | None = None ) -> None: """Initialize a OAuthException instance. @@ -42,9 +44,9 @@ class RequestException(PrawcoreException): def __init__( self, original_exception: Exception, - request_args: Tuple[Any, ...], - request_kwargs: Dict[ - str, Optional[Union[bool, Dict[str, int], Dict[str, str], str]] + request_args: tuple[Any, ...], + request_kwargs: dict[ + str, bool | (dict[str, int] | (dict[str, str] | str)) | None ], ) -> None: """Initialize a RequestException instance. @@ -57,24 +59,20 @@ def __init__( self.original_exception = original_exception self.request_args = request_args self.request_kwargs = request_kwargs - super(RequestException, self).__init__( - f"error with request {original_exception}" - ) + super().__init__(f"error with request {original_exception}") class ResponseException(PrawcoreException): """Indicate that there was an error with the completed HTTP request.""" - def __init__(self, response: "Response") -> None: + def __init__(self, response: Response) -> None: """Initialize a ResponseException instance. :param response: A ``requests.response`` instance. """ self.response = response - super(ResponseException, self).__init__( - f"received {response.status_code} HTTP response" - ) + super().__init__(f"received {response.status_code} HTTP response") class BadJSON(ResponseException): @@ -113,7 +111,7 @@ class Redirect(ResponseException): """ - def __init__(self, response: "Response") -> None: + def __init__(self, response: Response) -> None: """Initialize a Redirect exception instance. :param response: A ``requests.response`` instance containing a location header. @@ -139,7 +137,7 @@ class ServerError(ResponseException): class SpecialError(ResponseException): """Indicate syntax or spam-prevention issues.""" - def __init__(self, response: "Response") -> None: + def __init__(self, response: Response) -> None: """Initialize a SpecialError exception instance. :param response: A ``requests.response`` instance containing a message and a @@ -162,7 +160,7 @@ class TooLarge(ResponseException): class TooManyRequests(ResponseException): """Indicate that the user has sent too many requests in a given amount of time.""" - def __init__(self, response: "Response") -> None: + def __init__(self, response: Response) -> None: """Initialize a TooManyRequests exception instance. :param response: A ``requests.response`` instance that may contain a retry-after diff --git a/prawcore/rate_limit.py b/prawcore/rate_limit.py index 6decc9a..834eee9 100644 --- a/prawcore/rate_limit.py +++ b/prawcore/rate_limit.py @@ -1,7 +1,9 @@ """Provide the RateLimiter class.""" +from __future__ import annotations + import logging import time -from typing import TYPE_CHECKING, Any, Callable, Dict, Mapping, Optional +from typing import TYPE_CHECKING, Any, Callable, Mapping if TYPE_CHECKING: from requests.models import Response @@ -9,7 +11,7 @@ log = logging.getLogger(__package__) -class RateLimiter(object): +class RateLimiter: """Facilitates the rate limiting of requests to Reddit. Rate limits are controlled based on feedback from requests to Reddit. @@ -18,19 +20,19 @@ class RateLimiter(object): def __init__(self, *, window_size: int) -> None: """Create an instance of the RateLimit class.""" - self.remaining: Optional[float] = None - self.next_request_timestamp: Optional[float] = None - self.reset_timestamp: Optional[float] = None - self.used: Optional[int] = None + self.remaining: float | None = None + self.next_request_timestamp: float | None = None + self.reset_timestamp: float | None = None + self.used: int | None = None self.window_size: int = window_size def call( self, - request_function: Callable[[Any], "Response"], - set_header_callback: Callable[[], Dict[str, str]], - *args, - **kwargs, - ) -> "Response": + request_function: Callable[[Any], Response], + set_header_callback: Callable[[], dict[str, str]], + *args: Any, + **kwargs: Any, + ) -> Response: """Rate limit the call to ``request_function``. :param request_function: A function call that returns an HTTP response object. diff --git a/prawcore/requestor.py b/prawcore/requestor.py index ca3bfdd..796acbf 100644 --- a/prawcore/requestor.py +++ b/prawcore/requestor.py @@ -1,5 +1,7 @@ """Provides the HTTP request handling interface.""" -from typing import TYPE_CHECKING, Any, Optional +from __future__ import annotations + +from typing import TYPE_CHECKING, Any import requests @@ -12,7 +14,7 @@ from .sessions import Session -class Requestor(object): +class Requestor: """Requestor provides an interface to HTTP requests.""" def __getattr__(self, attribute: str) -> Any: @@ -26,7 +28,7 @@ def __init__( user_agent: str, oauth_url: str = "https://oauth.reddit.com", reddit_url: str = "https://www.reddit.com", - session: Optional["Session"] = None, + session: Session | None = None, timeout: float = TIMEOUT, ) -> None: """Create an instance of the Requestor class. @@ -44,7 +46,8 @@ def __init__( """ if user_agent is None or len(user_agent) < 7: - raise InvalidInvocation("user_agent is not descriptive") + msg = "user_agent is not descriptive" + raise InvalidInvocation(msg) self._http = session or requests.Session() self._http.headers["User-Agent"] = f"{user_agent} prawcore/{__version__}" @@ -57,9 +60,11 @@ def close(self) -> None: """Call close on the underlying session.""" return self._http.close() - def request(self, *args, timeout: Optional[float] = None, **kwargs) -> "Response": + def request( + self, *args: Any, timeout: float | None = None, **kwargs: Any + ) -> Response: """Issue the HTTP request capturing any errors that may occur.""" try: return self._http.request(*args, timeout=timeout or self.timeout, **kwargs) - except Exception as exc: - raise RequestException(exc, args, kwargs) + except Exception as exc: # noqa: BLE001 + raise RequestException(exc, args, kwargs) from None diff --git a/prawcore/sessions.py b/prawcore/sessions.py index 43f6b0a..8f0edc8 100644 --- a/prawcore/sessions.py +++ b/prawcore/sessions.py @@ -1,10 +1,13 @@ """prawcore.sessions: Provides prawcore.Session and prawcore.session.""" +from __future__ import annotations + import logging import random import time from abc import ABC, abstractmethod from copy import deepcopy -from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union +from pprint import pformat +from typing import TYPE_CHECKING, Any from urllib.parse import urljoin from requests.exceptions import ChunkedEncodingError, ConnectionError, ReadTimeout @@ -51,7 +54,7 @@ class RetryStrategy(ABC): """ @abstractmethod - def _sleep_seconds(self) -> Optional[float]: + def _sleep_seconds(self) -> float | None: pass def sleep(self) -> None: @@ -63,7 +66,7 @@ def sleep(self) -> None: time.sleep(sleep_seconds) -class Session(object): +class Session: """The low-level connection interface to Reddit's API.""" RETRY_EXCEPTIONS = (ChunkedEncodingError, ConnectionError, ReadTimeout) @@ -102,20 +105,20 @@ class Session(object): @staticmethod def _log_request( - data: Optional[List[Tuple[str, str]]], + data: list[tuple[str, str]] | None, method: str, - params: Dict[str, int], + params: dict[str, int], url: str, ) -> None: - log.debug(f"Fetching: {method} {url} at {time.time()}") - log.debug(f"Data: {data}") - log.debug(f"Params: {params}") + log.debug("Fetching: %s %s at %s", method, url, time.time()) + log.debug("Data: %s", pformat(data)) + log.debug("Params: %s", pformat(params)) @property - def _requestor(self) -> "Requestor": + def _requestor(self) -> Requestor: return self._authorizer._authenticator._requestor - def __enter__(self) -> "Session": + def __enter__(self) -> Session: # noqa: PYI034 """Allow this object to be used as a context manager.""" return self @@ -125,7 +128,7 @@ def __exit__(self, *_args) -> None: def __init__( self, - authorizer: Optional[BaseAuthorizer], + authorizer: BaseAuthorizer | None, window_size: int = WINDOW_SIZE, ) -> None: """Prepare the connection to Reddit's API. @@ -135,29 +138,27 @@ def __init__( """ if not isinstance(authorizer, BaseAuthorizer): - raise InvalidInvocation(f"invalid Authorizer: {authorizer}") + msg = f"invalid Authorizer: {authorizer}" + raise InvalidInvocation(msg) self._authorizer = authorizer self._rate_limiter = RateLimiter(window_size=window_size) self._retry_strategy_class = FiniteRetryStrategy def _do_retry( self, - data: List[Tuple[str, Any]], - files: Dict[str, "BufferedReader"], - json: Dict[str, Any], + data: list[tuple[str, Any]], + files: dict[str, BufferedReader], + json: dict[str, Any], method: str, - params: Dict[str, int], - response: Optional["Response"], - retry_strategy_state: "FiniteRetryStrategy", - saved_exception: Optional[Exception], + params: dict[str, int], + response: Response | None, + retry_strategy_state: FiniteRetryStrategy, + saved_exception: Exception | None, timeout: float, url: str, - ) -> Optional[Union[Dict[str, Any], str]]: - if saved_exception: - status = repr(saved_exception) - else: - status = response.status_code - log.warning(f"Retrying due to {status} status: {method} {url}") + ) -> dict[str, Any] | str | None: + status = repr(saved_exception) if saved_exception else response.status_code + log.warning("Retrying due to %s status: %s %s", status, method, url) return self._request_with_retries( data=data, files=files, @@ -172,15 +173,15 @@ def _do_retry( def _make_request( self, - data: List[Tuple[str, Any]], - files: Dict[str, "BufferedReader"], - json: Dict[str, Any], + data: list[tuple[str, Any]], + files: dict[str, BufferedReader], + json: dict[str, Any], method: str, - params: Dict[str, Any], - retry_strategy_state: "FiniteRetryStrategy", + params: dict[str, Any], + retry_strategy_state: FiniteRetryStrategy, timeout: float, url: str, - ) -> Union[Tuple["Response", None], Tuple[None, Exception]]: + ) -> tuple[Response, None] | tuple[None, Exception]: try: response = self._rate_limiter.call( self._requestor.request, @@ -195,11 +196,13 @@ def _make_request( timeout=timeout, ) log.debug( - f"Response: {response.status_code}" - f" ({response.headers.get('content-length')} bytes)" - f" (rst-{response.headers.get('x-ratelimit-reset')}:" - f"rem-{response.headers.get('x-ratelimit-remaining')}:" - f"used-{response.headers.get('x-ratelimit-used')} ratelimit) at {time.time()}" + "Response: %s (%s bytes) (rst-%s:rem-%s:used-%s ratelimit) at %s", + response.status_code, + response.headers.get("content-length"), + response.headers.get("x-ratelimit-reset"), + response.headers.get("x-ratelimit-remaining"), + response.headers.get("x-ratelimit-used"), + time.time(), ) return response, None except RequestException as exception: @@ -214,15 +217,15 @@ def _make_request( def _request_with_retries( self, - data: List[Tuple[str, Any]], - files: Dict[str, "BufferedReader"], - json: Dict[str, Any], + data: list[tuple[str, Any]], + files: dict[str, BufferedReader], + json: dict[str, Any], method: str, - params: Dict[str, int], + params: dict[str, int], timeout: float, url: str, - retry_strategy_state: Optional["FiniteRetryStrategy"] = None, - ) -> Optional[Union[Dict[str, Any], str]]: + retry_strategy_state: FiniteRetryStrategy | None = None, + ) -> dict[str, Any] | str | None: if retry_strategy_state is None: retry_strategy_state = self._retry_strategy_class() @@ -260,10 +263,10 @@ def _request_with_retries( timeout, url, ) - elif response.status_code in self.STATUS_EXCEPTIONS: + if response.status_code in self.STATUS_EXCEPTIONS: raise self.STATUS_EXCEPTIONS[response.status_code](response) - elif response.status_code == codes["no_content"]: - return + if response.status_code == codes["no_content"]: + return None assert ( response.status_code in self.SUCCESS_STATUSES ), f"Unexpected status code: {response.status_code}" @@ -272,9 +275,9 @@ def _request_with_retries( try: return response.json() except ValueError: - raise BadJSON(response) + raise BadJSON(response) from None - def _set_header_callback(self) -> Dict[str, str]: + def _set_header_callback(self) -> dict[str, str]: if not self._authorizer.is_valid() and hasattr(self._authorizer, "refresh"): self._authorizer.refresh() return {"Authorization": f"bearer {self._authorizer.access_token}"} @@ -287,12 +290,12 @@ def request( self, method: str, path: str, - data: Optional[Dict[str, Any]] = None, - files: Optional[Dict[str, "BufferedReader"]] = None, - json: Optional[Dict[str, Any]] = None, - params: Optional[Dict[str, Any]] = None, + data: dict[str, Any] | None = None, + files: dict[str, BufferedReader] | None = None, + json: dict[str, Any] | None = None, + params: dict[str, Any] | None = None, timeout: float = TIMEOUT, - ) -> Optional[Union[Dict[str, Any], str]]: + ) -> dict[str, Any] | str | None: """Return the json content from the resource at ``path``. :param method: The request verb. E.g., ``"GET"``, ``"POST"``, ``"PUT"``. @@ -334,7 +337,7 @@ def request( def session( - authorizer: "Authorizer" = None, + authorizer: Authorizer = None, window_size: int = WINDOW_SIZE, ) -> Session: """Return a :class:`.Session` instance. @@ -357,13 +360,13 @@ def __init__(self, retries: int = 3) -> None: """ self._retries = retries - def _sleep_seconds(self) -> Optional[float]: + def _sleep_seconds(self) -> float | None: if self._retries < 3: base = 0 if self._retries == 2 else 2 - return base + 2 * random.random() + return base + 2 * random.random() # noqa: S311 return None - def consume_available_retry(self) -> "FiniteRetryStrategy": + def consume_available_retry(self) -> FiniteRetryStrategy: """Allow one fewer retry.""" return type(self)(self._retries - 1) diff --git a/prawcore/util.py b/prawcore/util.py index 5f7c6aa..2683b60 100644 --- a/prawcore/util.py +++ b/prawcore/util.py @@ -1,5 +1,7 @@ """Provide utility for the prawcore package.""" -from typing import TYPE_CHECKING, Union +from __future__ import annotations + +from typing import TYPE_CHECKING from .exceptions import Forbidden, InsufficientScope, InvalidToken @@ -14,15 +16,15 @@ def authorization_error_class( - response: "Response", -) -> Union[InvalidToken, Forbidden, InsufficientScope]: + response: Response, +) -> InvalidToken | (Forbidden | InsufficientScope): """Return an exception instance that maps to the OAuth Error. :param response: The HTTP response containing a www-authenticate error. """ message = response.headers.get("www-authenticate") - error: Union[int, str] + error: int | str if message: error = message.replace('"', "").rsplit("=", 1)[1] else: diff --git a/pyproject.toml b/pyproject.toml index 3b29def..2325a7a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,56 @@ +[build-system] +build-backend = "flit_core.buildapi" +requires = ["flit_core >=3.4,<4"] + +[project] +authors = [{name = "Bryce Boe", email = "bbzbryce@gmail.com"}] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: BSD License", + "Operating System :: OS Independent", + "Natural Language :: English", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11" +] +dependencies = [ + "requests >=2.6.0, <3.0" +] +dynamic = ["version", "description"] +keywords = ["praw", "reddit", "api"] +license = {file = "LICENSE.txt"} +maintainers = [ + {name = "Bryce Boe", email = "bbzbryce@gmail.com"} +] +name = "prawcore" +requires-python = "~=3.7" + +[project.optional-dependencies] +ci = ["coveralls"] +dev = [ + "packaging", + "prawcore[lint]", + "prawcore[test]" +] +lint = [ + "pre-commit", + "ruff >=0.0.*" +] +test = [ + "betamax >=0.8, <0.9", + "pytest >=2.7.3", + "urllib3 ==1.26.*, <2" +] + +[project.urls] +"Issue Tracker" = "https://github.com/praw-dev/prawcore/issues" +"Source Code" = "https://github.com/praw-dev/prawcore" + [tool.black] extend_exclude = '/(\.venv.*)/' line-length = 88 @@ -6,6 +59,71 @@ line-length = 88 profile = 'black' skip_glob = '.venv*' -[tool.pytest.ini_options] -filterwarnings = "ignore::DeprecationWarning" -testpaths = "tests" +[tool.ruff] +target-version = "py37" +include = [ + "prawcore/*.py" +] +ignore = [ + "A002", # shadowing built-in + "ANN101", # missing type annotation for self in method + "ANN102", # missing type annotation for cls in classmethod + "ANN202", # missing return type for private method + "ANN401", # typing.Any usage + "D203", # 1 blank line required before class docstring + "D213", # Multi-line docstring summary should start at the second line + "E501", # line-length + "PLR0913", # too many arguments + "PLR2004", # Magic value used in comparison, + "S101" # use of assert +] +select = [ + "A", # flake8-builtins + "ANN", # flake8-annotations + "ARG", # flake8-unused-arguments + "B", # flake8-bugbear + "BLE", # flake8-blind-except + "C4", # flake8-comprehensions + "D", # pydocstyle + "DTZ", # flake8-datetimez + "E", # pycodestyle errors + "EM", # flake8-errmsg + "ERA", # eradicate + "EXE", # flake8-executable + "F", # pyflakes + "FA", # flake8-future-annotations + "FIX", # flake8-fix me + "FLY", # flynt + "G", # flake8-logging-format + "I", # isort + "INP", # flake8-no-pep420 + "ISC", # flake8-implicit-str-concat + "N", # pep8-naming + "PIE", # flake8-pie + "PGH", # pygrep-hooks + "PL", # Pylint + "PT", # flake8-pytest-style + "PTH", # flake8-use-pathlib + "PYI", # flake8-pyi + "Q", # flake8-quotes + "RET", # flake8-return + "RSE", # flake8-raise + "S", # bandit + "SIM", # flake8-simplify + "T10", # flake8-debugger + "T20", # flake8-print + "TCH", # flake8-type-checking + "TD", # flake8-todos + "W", # pycodestyle warnings + "UP" # pyupgrade +] +ignore-init-module-imports = true + +[tool.ruff.flake8-annotations] +allow-star-arg-any = true +mypy-init-return = true +suppress-dummy-args = true +suppress-none-returning = true + +[tool.ruff.per-file-ignores] +"__init__.py" = ["F401"] diff --git a/setup.py b/setup.py deleted file mode 100644 index 7bfb26a..0000000 --- a/setup.py +++ /dev/null @@ -1,51 +0,0 @@ -"""prawcore setup.py.""" - -import re -from codecs import open -from os import path - -from setuptools import setup - -PACKAGE_NAME = "prawcore" -HERE = path.abspath(path.dirname(__file__)) -with open(path.join(HERE, "README.rst"), encoding="utf-8") as fp: - README = fp.read() -with open(path.join(HERE, PACKAGE_NAME, "const.py"), encoding="utf-8") as fp: - VERSION = re.search('__version__ = "([^"]+)"', fp.read()).group(1) - -extras = { - "ci": ["coveralls"], - "lint": ["black", "flake8", "isort", "pre-commit", "pydocstyle", "flynt"], - "test": ["betamax >=0.8, <0.9", "pytest", "urllib3 ==1.26.*, <2"], -} -extras["dev"] = extras["lint"] + extras["test"] - -setup( - name=PACKAGE_NAME, - author="Bryce Boe", - author_email="bbzbryce@gmail.com", - classifiers=[ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "License :: OSI Approved :: BSD License", - "Operating System :: OS Independent", - "Natural Language :: English", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - ], - description="Low-level communication layer for PRAW 4+.", - extras_require=extras, - install_requires=["requests >=2.6.0, <3.0"], - python_requires="~=3.7", - keywords="praw reddit api", - license="Simplified BSD License", - long_description=README, - packages=[PACKAGE_NAME], - url="https://github.com/praw-dev/prawcore", - version=VERSION, -) diff --git a/tests/integration/__init__.py b/tests/integration/__init__.py index 91aff8d..56c2d34 100644 --- a/tests/integration/__init__.py +++ b/tests/integration/__init__.py @@ -6,7 +6,7 @@ import pytest from betamax.cassette import Cassette -from .utils import ( +from ..utils import ( PrettyJSONSerializer, ensure_environment_variables, ensure_integration_test, diff --git a/tests/integration/files/comment_ids.txt b/tests/integration/files/comment_ids.txt index 9509ed7..4703d31 100644 --- a/tests/integration/files/comment_ids.txt +++ b/tests/integration/files/comment_ids.txt @@ -1 +1 @@ -gxf43y8,gxfq8eb,gxfmdc4,gxfc01r,gxfkyrq,gxfh1lj,gxfnxps,gxf8ob6,gxfdlau,gxfobx5,gxfn2mw,gxf7sp0,gxfd2ce,gxesisg,gxfqxpe,gxf6y58,gxf97ai,gxfowzs,gxfhzci,gxfrzn7,gxfha2d,gxfh3qu,gxfrzym,gxfscal,gxfdxz2,gxfbu4f,gxf4gn4,gxfte82,gxfradg,gxfpphi,gxfrznr,gxffcjt,gxfsl9d,gxfom0d,gxfpphy,gxfnyaf,gxfiic8,gxf7sri,gxfe4bj,gxfezxd,gxfif0w,gxfetda,gxfg1uv,gxfrjdh,gxf9207,gxekg31,gxffiwh,gxfhzea,gxf8upg,gxfjkai,gxfcprv,gxfmq2m,gxf7utc,gxfp091,gxf911i,gxfhzez,gxf7g5o,gxf38gd,gxf8pd9,gxftea9,gxfk39v,gxfns0l,gxf6x7a,gxfq8ig,gxem10c,gxfomk1,gxf7mhr,gxfht41,gxfbu79,gxfnjht,gxf8271,gxf8ofl,gxetr5g,gxfql6e,gxfnyd5,gxf3xrx,gxf9135,gxfa9c2,gxfb9zq,gxfp6mj,gxfmwgd,gxfq28e,gxfn2rz,gxfjqoi,gxfj7pv,gxf7g7p,gxfk9ng,gxfsvdq,gxf85i7,gxft80y,gxfn2sn,gxfnyeg,gxfq8kp,gxf2pkb,gxftecy,gxfl59v,gxerh11,gxfted4,gxfbu9o,gxffpbx,gxfqbl7,gxfnls4,gxf7sw5,gxfetqh,gxfp2af,gxfoy2q,gxfdlhv,gxfob32,gxfm78g,gxfeymw,gxfn2ud,gxfnyga,gxfjeyv,gxfgxf6,gxfk3e6,gxfd3a6,gxfeh4h,gxfppob,gxftef0,gxfgenx,gxf681u,gxf6edf,gxf681w,gxfqqch,gxffcqy,gxfr49b,gxfs1r7,gxflbo6,gxfrn8j,gxfs67d,gxf85m2,gxf8bxq,gxfiv73,gxf8bxv,gxfksqc,gxfk3g5,gxfo4ty,gxfm7ax,gxfk3gb,gxfb533,gxfeni8,gxftegx,gxfont1,gxfli12,gxfs688,gxfl0x8,gxfoiag,gxfje6v,gxe7a8p,gxeu3yy,gxfq2e4,gxfpyyt,gxfnfl1,gxfhacm,gxfq2eh,gxfn2y2,gxfq5af,gxf919p,gxfrnam,gxfngda,gxfd8za,gxfnc5l,gxfetvf,gxfsvk0,gxfc729,gxfp6tf,gxfgero,gxfmqbp,gxf8ibv,gxfk9u4,gxfam6l,gxfiimm,gxf6xg2,gxfioyb,gxfm11w,gxftkuv,gxfbuft,gxfp0ii,gxftkv0,gxfnfml,gxfqfty,gxfcq20,gxfgt8c,gxf686k,gxf6xgu,gxfnlyp,gxfg8he,gxf8icz,gxfqlfb,gxf73sq,gxfmqd7,gxfbvia,gxfpji7,gxfmwow,gxf7zep,gxfqf42,gxfohl3,gxf3fsc,gxf8idm,gxf7zf2,gxfmwpd,gxf5p8y,gxfe4nn,gxf93qo,gxfmwpl,gxfpzlw,gxf1hjz,gxfkg80,gxfi61v,gxf73tx,gxfmqef,gxenm7e,gxf3lez,gxfp0ks,gxf9kbx,gxf6r77,gxfqf5k,gxfrtq2,gxfpw70,gxfjxa5,gxfppvj,gxfam9t,gxf56bm,gxfli6b,gxfq8uc,gxfsqqu,gxfiipy,gxfa9mw,gxfqrt5,gxfn6wn,gxfama4,gxffcy9,gxf91ea,gxfsvab,gxf9e1o,gxewqxv,gxfba4x,gxf7t60,gxf9x0s,gxfgl7z,gxfnype,gxfrx3o,gxfqfh4,gxfr4hl,gxftkzg,gxfr4hr,gxfs60b,gxfq8w5,gxfqf7r,gxfdfgq,gxfpogn,gxf7mvh,gxfovtw,gxfhtht,gxf85ua,gxfsj2s,gxf8v4n,gxficgx,gxfd95u,gxffl0b,gxfq2lg,gxfka05,gxfrtt4,gxf1uay,gxey5kb,gxfn35a,gxfn35c,gxfboab,gxfmwtw,gxfteph,gxesjaw,gxfaz0b,gxfrtto,gxf7mwx,gxeuzt1,gxfrnii,gxfqf9p,gxfcjww,gxf44ib,gxewedw,gxf8ij9,gxfhzvd,gxfhtju,gxfeb4v,gxfqccr,gxevbzv,gxftl2h,gxfn9ij,gxfmwvl,gxfnm5z,gxfnm63,gxfs070,gxfmwvz,gxfaz29,gxfehhe,gxfo8uu,gxfq2o6,gxfohs7,gxfn9jd,gxeru30,gxfqgx9,gxfnfv6,gxfrq83,gxevvh0,gxf9e6v,gxfmdy2,gxfentn,gxfq90g,gxfp737,gxfoxq8,gxfpq1x,gxfbodi,gxffw2v,gxfnsj3,gxei6gg,gxfnyup,gxfm1bn,gxfq088,gxflp7j,gxfr4n0,gxfnsjh,gxftetd,gxfmkav,gxea4v6,gxfenv4,gxfo579,gxfo57b,gxf8va5,gxfa9um,gxfg2fz,gxfip9e,gxfqfdy,gxfm7oo,gxfm7op,gxfnywa,gxfmkbx,gxfrzln,gxf8oz5,gxfqetv,gxfbbsl,gxelvau,gxfk3uh,gxfqgxr,gxfbu6t,gxft280,gxf5cw1,gxfmkcm,gxfq93e,gxfq93h,gxf7zpr,gxftevk,gxf68ib,gxfi6ca,gxfq2sb,gxfqffi,gxfg8te,gxf6xt0,gxf6xt2,gxfqcgh,gxfmvd3,gxfnfzi,gxfpjua,gxfrb1x,gxfj1yu,gxfq273,gxf9362,gxfn3cw,gxfn3d1,gxfn3d4,gxf745m,gxfs97m,gxfp782,gxfrnpw,gxfeuag,gxec65k,gxf8cf4,gxfmqqq,gxf7tgk,gxffd9h,gxfq2ue,gxf8vss,gxfpjvu,gxfjran,gxf7n5e,gxeaghh,gxfi03e,gxfp0xq,gxfij27,gxfpdkw,gxflv5v,gxfliis,gxfc7ig,gxfnmdl,gxfopqv,gxfbuvg,gxfehou,gxf4fo8,gxfipeb,gxf7n6d,gxf8655,gxfpmen,gxfsjdp,gxfk3z5,gxfp7aa,gxfqgyj,gxfmkh1,gxfrn3l,gxfme5p,gxf50dq,gxfn3g0,gxfproe,gxf3ltm,gxfow2n,gxflvka,gxfipfi,gxfrq9h,gxf0mdc,gxfs74b,gxfeo1w,gxfm1jb,gxfn3go,gxf7n7u,gxfouob,gxfpdn0,gxficst,gxfc7kg,gxfrnte,gxfsyih,gxfq2xn,gxfq0vw,gxfkmzk,gxfq2xt,gxf9fty,gxftf1l,gxfojfr,gxf5d2l,gxfn3hv,gxfmqut,gxfm7w6,gxfi06w,gxfr2sn,gxfsw3m,gxfi0qm,gxf6rnv,gxftf2l,gxfpzmh,gxfmx75,gxfn9ue,gxfi07u,gxftlek,gxf5jfj,gxfpqcg,gxfjeso,gxfmqwa,gxf91va,gxf91vb,gxfs0jh,gxfhaym,gxfazeo,gxfhtxg,gxfmea6,gxftknh,gxfeo5u,gxfipjn,gxf5jh4,gxevc27,gxeoc0s,gxf7tni,gxfbc2n,gxfp7fk,gxf9yt7,gxfrbac,gxfr4z0,gxfr33x,gxf7zzl,gxftjqt,gxfckcc,gxfn3lv,gxfqsck,gxfox5i,gxftf5z,gxfk45k,gxfeo7d,gxfpqff,gxfmxam,gxfss7s,gxfrbbo,gxftb6i,gxec1lq,gxflcf3,gxflvdu,gxf8pb7,gxfscff,gxfpqg5,gxfivxj,gxfamug,gxfp161,gxfijai,gxf6y41,gxfcqpe,gxfmed0,gxfn3n9,gxffdiu,gxfq33u,gxf8qkq,gxfkzsu,gxf1ohu,gxffq6c,gxfkthq,gxfp2fh,gxfe5h4,gxfpwsz,gxfq9g5,gxfn3o7,gxf8vo9,gxf802k,gxfi0d9,gxfeula,gxfeo9t,gxfspya,gxffwiv,gxf39ex,gxeprwy,gxfm6lv,gxfrtgo,gxfq9gy,gxfmxdf,gxfoi9g,gxf82cp,gxfehz2,gxfeoao,gxf216q,gxftkob,gxflvgm,gxfjxxj,gxfklkg,gxfdz0z,gxfm1sl,gxfo5nc,gxftfa2,gxfbouz,gxffdlo,gxfrpig,gxfk49q,gxfpe11,gxfkgwz,gxfnzc5,gxfobza,gxfbc87,gxfmp3w,gxff0yz,gxfg2wc,gxfh4tp,gxfouy6,gxf7nhs,gxfnzci,gxft8g5,gxfnmph,gxf922h,gxf5pyy,gxfpqkd,gxffjy6,gxfamyq,gxfipqg,gxf4bex,gxf74ju,gxfq9y2,gxfp1at,gxfq9jq,gxf4bfc,gxfr55m,gxfeuou,gxfn4x1,gxesjxo,gxfrugd,gxfjrou,gxfjjc8,gxfp1bn,gxfoiy0,gxfbcae,gxf5ddj,gxfl69o,gxfnnvu,gxfpwxq,gxfmr5x,gxf5de2,gxfmxhn,gxf8phr,gxfl36g,gxf6yah,gxforfm,gxfnt49,gxfp1d9,gxfknce,gxfd9v3,gxfk4dt,gxfmr76,gxfjy2g,gxfiptm,gxfgfng,gxfg30d,gxf8mpw,gxf9xrz,gxfn3up,gxfr2s9,gxf8pj9,gxf339i,gxfm896,gxfijij,gxfn3v6,gxfs0us,gxfnzh2,gxfhu8n,gxfqfyx,gxfkla2,gxfijj2,gxfjrs2,gxfr35n,gxfq9no,gxf7nmt,gxf8pk7,gxfpe24,gxf5dgt,gxf80a6,gxfmxkh,gxfq9o5,gxfpe2g,gxf83cu,gxfan3w,gxfjrsu,gxfn3wf,gxf8pkz,gxfnimu,gxfgm12,gxf8j9m,gxf7rcy,gxf86mm,gxf7tyl,gxf98k3,gxfp1g4,gxfg32u,gxfp1g7,gxfmkyg,gxf4xnz,gxfsrtr,gxf8vxg,gxfefb3,gxfngks,gxevd7x,gxfnt7y,gxfi6ya,gxfnzjp,gxfnmwo,gxfqasz,gxfp1bw,gxftfg5,gxfnmwx,gxfow5n,gxfd9z9,gxfqmdj,gxfgm2y,gxfd9zg,gxfn3ym,gxfpe4w,gxfnmxh,gxfi6zb,gxfjsun,gxfidb3,gxfqg2v,gxf4bmw,gxfatii,gxfn3zf,gxftgny,gxfr0cv,gxf6ygr,gxfq9rw,gxftfk2,gxf6xbf,gxfdgck,gxfqb7t,gxfiyb0,gxfijnw,gxf85kd,gxfan80,gxfgm0z,gxfov84,gxft832,gxfda1n,gxf697g,gxf33fi,gxfrodb,gxfeom8,gxfbp5y,gxfow64,gxfcr3g,gxfp7vy,gxfqg4v,gxfqi43,gxf3mes,gxfntqb,gxfmrek,gxfnmve,gxfml32,gxfmtdh,gxf8w1t,gxfiq0y,gxf6yiu,gxfeuyw,gxf698p,gxf4bpo,gxevdcd,gxfngpa,gxf6yj3,gxfq3ip,gxfi72s,gxfo5zp,gxfnn12,gxffdy1,gxfpnkf,gxfkvui,gxfqcuo,gxfl6jm,gxfra5q,gxfovad,gxfbckm,gxfl087,gxfknl4,gxfmxrd,gxfn42y,gxfp0e5,gxf6s8g,gxf4bqq,gxf6yk7,gxffwxk,gxffwxm,gxfoinw,gxf2x6l,gxfp1mn,gxfp1mp,gxe8waq,gxfqg78,gxf6fly,gxfn43u,gxfqmiz,gxfohfm,gxf45g7,gxfn4xh,gxf8psq,gxf45gc,gxf8h68,gxeq3s2,gxf6s9x,gxfpx9i,gxfpilg,gxfq3l8,gxfktyo,gxfl6lt,gxfn44z,gxfoipg,gxfazzq,gxf69bv,gxfsqch,gxft9ds,gxfmri9,gxfhbk4,gxftfph,gxfml6v,gxfmrij,gxfqg9a,gxf6lzl,gxf8puf,gxf7hll,gxfpxay,gxfp80r,gxfbpb1,gxfl0bi,gxfckwv,gxfngtd,gxfk4pu,gxfmrjb,gxftfqg,gxfngtl,gxfgjy5,gxf48fc,gxez8jf,gxf5ds5,gxffkee,gxfo7yv,gxfpxcc,gxfq9zl,gxfcxlg,gxfq9zp,gxfq1ac,gxftfrv,gxf9li7,gxfq5i3,gxftfs6,gxfskxz,gxfda98,gxfml9q,gxf92jz,gxeo6cw,gxfdt87,gxfswu0,gxfbj22,gxfh74v,gxfnaki,gxfqa10,gxfqa11,gxfp1s9,gxfjyh6,gxfknrk,gxetyzd,gxfm8nv,gxfovh8,gxftftq,gxf69gf,gxfovhc,gxfsqjl,gxfg3fp,gxfqk9d,gxfidm5,gxfpqrh,gxfovhy,gxf8jne,gxf8dbv,gxfpqe0,gxfovi7,gxfb05i,gxfev7v,gxfnn9t,gxfrono,gxfeowl,gxfop7a,gxfmi7d,gxff7vj,gxfdgo1,gxfjfl0,gxfmrol,gxfrpcs,gxfmf1m,gxfjyjv,gxfngz7,gxfn4c4,gxfb1x0,gxf6wbj,gxfth3j,gxfqf05,gxfiwn4,gxf8q0y,gxfop8j,gxfn4ck,gxf3t1i,gxfngzr,gxf80qw,gxfkngs,gxf9fbe,gxfn4cr,gxfngzw,gxfjyku,gxfsqmp,gxfqa50,gxf8jpx,gxfnnbq,gxfhgmx,gxff1lm,gxfjs9o,gxfqggt,gxfoixv,gxfnzza,gxfnnc8,gxfqa5n,gxfnzzg,gxf80rx,gxfqbul,gxei7ld,gxfhi44,gxfqt4n,gxffzys,gxfl0jm,gxf8wed,gxftfyf,gxfk4y2,gxfn4ek,gxf6fx4,gxfk4yh,gxfn4ey,gxfqb0q,gxfp1y5,gxfl0ki,gxfn4fb,gxf5wyw,gxfovmx,gxesqwa,gxfs7qj,gxfsugi,gxfp2k3,gxfh5iu,gxf4c3b,gxeau60,gxfc27v,gxfqgjg,gxfkldh,gxfc282,gxf3zgj,gxfqa85,gxfta5m,gxfk500,gxff80h,gxff80u,gxf92sh,gxfmf6r,gxfnask,gxfqmw5,gxfo02u,gxfmrtz,gxf759l,gxfbvxq,gxf9vst,gxel0ts,gxfn4hh,gxf8whk,gxf877g,gxf3mv1,gxfpxmn,gxfpxmq,gxfrwpx,gxfqaa3,gxfmy6l,gxfnwq5,gxf8jv4,gxfpeoh,gxfptjx,gxfn51f,gxfn4if,gxfprbt,gxfbd0a,gxfj9gb,gxfo6fx,gxfj9gf,gxfnaua,gxfk52f,gxfk52g,gxf57sa,gxfesl6,gxfpepb,gxf7hyp,gxfh5ma,gxfp1k6,gxfab3t,gxft9s0,gxfqabl,gxfn4jp,gxewfre,gxf92vi,gxf51hr,gxfp236,gxflpzn,gxfk53p,gxfqac7,gxf7bo9,gxfqf1h,gxfthqj,gxfr5yc,gxfrili,gxftg4n,gxfeqp3,gxffxf0,gxfo3te,gxfh5ny,gxfoj5d,gxfmrxy,gxfmry4,gxf4v7k,gxfn4li,gxfdgxz,gxfp8gk,gxfbpqn,gxf7uog,gxfq429,gxf6xht,gxfeu2b,gxfskk7,gxfdna2,gxfoj6j,gxfo6jj,gxf69sw,gxfidyc,gxf8jz9,gxf8jzb,gxfpesq,gxfpn16,gxfn4mr,gxfinvi,gxfiqly,gxf4hzd,gxfqaey,gxfl73w,gxf8qbi,gxftjr2,gxfjsjt,gxfms0a,gxfrj36,gxfs45p,gxfsqxf,gxfnnmd,gxfhc2f,gxfg3tk,gxfnhax,gxfo09m,gxfqafw,gxfo09t,gxfie03,gxf4vag,gxf8qcp,gxfn4ob,gxfqagc,gxfpxtg,gxfpmm6,gxfmlpz,gxf8dq3,gxf6z5q,gxflwfz,gxfn4ox,gxfsqyq,gxfkuiw,gxfowa4,gxf8g7r,gxfd4ek,gxfpril,gxfqb1d,gxfdtoz,gxfm93v,gxft9ya,gxfk59h,gxfmyef,gxfeizt,gxfmyej,gxf9ynh,gxfoye5,gxex583,gxfjsmt,gxf462e,gxfp275,gxfg3wb,gxfnnp9,gxfrp33,gxfnhds,gxfjrxc,gxf8k3m,gxfmls3,gxfjyyt,gxfk5ae,gxffr9n,gxfms3x,gxfn4r4,gxfojbl,gxfie36,gxfluq6,gxf8qfq,gxf9yon,gxfn4rc,gxfe02j,gxfskpp,gxfmyfz,gxf8k4g,gxfskpu,gxftgbn,gxfn4ro,gxf8qg5,gxfqn6y,gxfhr8n,gxffxm4,gxfbpwu,gxfjyzz,gxf8z6w,gxfod16,gxfms58,gxfr6gw,gxf8wso,gxfrci1,gxfmyh7,gxfqakv,gxfoxco,gxf9yqb,gxfmyhh,gxfie52,gxfgaai,gxfkbob,gxfms69,gxfiqsl,gxfow12,gxf465j,gxfdh63,gxfk7qq,gxfr8kz,gxfk6ou,gxf7uwo,gxf8d2s,gxfrp6i,gxf7uwr,gxfnb5o,gxfq9th,gxeyq83,gxef8li,gxf8qiy,gxfms7h,gxf6zbi,gxfqbhu,gxfn7ov,gxfq1cp,gxfms7r,gxfqamx,gxfp2e3,gxfkod8,gxfp8pp,gxftgf2,gxfj4rp,gxfki1s,gxel7j9,gxfnhie,gxfn4vb,gxfqnak,gxfq4bz,gxfrap4,gxfikj6,gxf7oms,gxfljzp,gxffxq0,gxeu5x7,gxfauf0,gxfldoe,gxfnb7n,gxfkoed,gxfjmh3,gxfrncc,gxf4cju,gxfngoy,gxf2xzm,gxfp2fr,gxf3gym,gxfo0in,gxf8qlc,gxeqtut,gxflwo6,gxfja1o,gxf8ka2,gxfmsa7,gxeuv8w,gxfmsad,gxf8pqh,gxfn4xm,gxfpy2j,gxfsnnf,gxf6a4f,gxfq4e9,gxey7cz,gxf7v0m,gxfmfns,gxfmsaz,gxfg43z,gxf9yvk,gxfmymp,gxfnhli,gxfk5i1,gxfqaqj,gxfd4nw,gxfj9we,gxfnhlu,gxf0nvo,gxf5r6t,gxfs1ye,gxfp2i0,gxfmsbw,gxff8j4,gxfn4za,gxfqarc,gxf7u50,gxfbdh7,gxfk5j1,gxfp2iq,gxf8x4b,gxfskxx,gxf7v2f,gxfplhk,gxfojk9,gxfqh3e,gxf7v2j,gxfiebw,gxfmyof,gxfo6xc,gxfk5jn,gxeu61g,gxf8qol,gxfnhna,gxf7c4c,gxfprtr,gxf70nb,gxfnhnw,gxfq9ul,gxf7v3n,gxf4vn8,gxfsrav,gxfqmw6,gxeuznu,gxfmse6,gxf6zi9,gxfl16r,gxfh64m,gxfqh53,gxfk5l4,gxfp2l1,gxfqawp,gxfmja5,gxekv36,gxfcq35,gxfl7je,gxfp4rr,gxf75v0,gxf8kfl,gxfrqj7,gxfgn79,gxemsmu,gxfmyrc,gxf4j21,gxfl18a,gxfe6po,gxfpf99,gxf93em,gxftabj,gxf6zk0,gxfnbet,gxf7tak,gxfsl35,gxfswlo,gxet47e,gxfclu3,gxffez0,gxfn53k,gxfqavn,gxfnbfa,gxf7t3t,gxf6zkp,gxf8qsa,gxfbdlo,gxevee6,gxfsxpb,gxfswog,gxflqjn,gxf8r6j,gxfr06d,gxfe6qv,gxflqjv,gxfjlo2,gxfm9im,gxfr7kt,gxf5epe,gxfmshi,gxfnbg7,gxfir3s,gxfkomx,gxf2gbj,gxfsm6m,gxf81j2,gxfnbgf,gxfd4u9,gxftgoz,gxfs24l,gxfnbgo,gxf6wgc,gxfgun6,gxfmsi7,gxfsl3m,gxfhter,gxfn55h,gxfmsie,gxfrvtb,gxfa5ek,gxfq4m9,gxf6aco,gxffrox,gxff8pf,gxf7v90,gxft666,gxfganr,gxf7im3,gxfcyke,gxfqnlr,gxf9n6d,gxfqayq,gxfbqbn,gxekikn,gxfoweg,gxfs26i,gxf5wn6,gxfi1w1,gxf8qvn,gxez9js,gxf6zoj,gxfowf8,gxf93j9,gxfowfh,gxfl1da,gxf4j73,gxfnuia,gxfd4xk,gxfjt4q,gxfn58d,gxfpzcl,gxfo0ue,gxfsmg7,gxfsz03,gxf4cwe,gxfr3dv,gxffrro,gxf7vbt,gxfoyhb,gxfqd7o,gxfk5sv,gxfepuo,gxfo76p,gxfsxuq,gxfsl7p,gxf7p0n,gxf8x9m,gxfp2sr,gxfjgj0,gxfrvxq,gxfn67x,gxfnblc,gxfnhwx,gxf8kmr,gxftgty,gxfepvb,gxf7ce4,gxfl7r1,gxf8ti3,gxfps3q,gxfepvv,gxfscoy,gxfg4gf,gxfnbma,gxfn5aw,gxf8qzd,gxf5evu,gxf57dm,gxfjt7l,gxfn5b7,gxfbuiu,gxelx9i,gxfl7s7,gxfnhyg,gxfcsdn,gxfn5bh,gxf3b1r,gxf6aia,gxf8xbo,gxfirav,gxfmsoo,gxft48p,gxfff7i,gxffrun,gxfb7i9,gxfo0xu,gxfrarv,gxfpoty,gxfjt8m,gxfnbnr,gxfmz0p,gxfslai,gxffrv0,gxfojwt,gxfejm6,gxf4vyo,gxfqc97,gxfkv6d,gxf5rko,gxfhvq4,gxfpluq,gxfp2w4,gxfirc6,gxf4jc8,gxelecs,gxfedbj,gxfbk6r,gxfnuno,gxfircl,gxf5xx5,gxfn5dp,gxfs2de,gxf4w04,gxfqb5x,gxfo0zq,gxfpjwf,gxfni15,gxfni18,gxfps7h,gxfk5xr,gxfsl4z,gxfq1si,gxfqc0q,gxfowm7,gxfojz5,gxfpyjm,gxfgtus,gxfpyjs,gxevl0r,gxfqd2q,gxfmz3k,gxfjzn5,gxfowms,gxfmz3v,gxfp2yk,gxf8egt,gxfoyid,gxfeq0x,gxfhyq3,gxfp7hf,gxfa5os,gxf93ri,gxf6xk3,gxfn5gd,gxf40gx,gxfqb8k,gxfp2zq,gxf34vb,gxfslf1,gxferwd,gxfq6mv,gxfqf6w,gxf1wcz,gxfiet0,gxfosjh,gxfn5h5,gxfrf0f,gxfok1t,gxfg4n9,gxfqg8x,gxfg4nc,gxfs2ha,gxfn8cd,gxfmz6c,gxfni52,gxf8u1l,gxfp314,gxfl6mc,gxf7zhr,gxfo7fi,gxfnusg,gxfrpuq,gxfpouz,gxf8xie,gxfkp0p,gxfgtyi,gxfmmjw,gxfmsvh,gxfp9da,gxf9ghb,gxf93uc,gxfoqey,gxfmg8v,gxfr0le,gxf57ez,gxfni6c,gxfqu9y,gxfpyo7,gxfqnyg,gxfhcy1,gxfsf65,gxeqo5r,gxf8r81,gxf4pua,gxfj45w,gxfr5ji,gxfoqft,gxfni6y,gxfn5jv,gxf64f3,gxfowrm,gxf8h3v,gxf8gcx,gxfslrz,gxfsy5o,gxfnuul,gxfnoj6,gxfrpx4,gxf9gje,gxfjn5n,gxflr0c,gxfnojh,gxfeuxs,gxfixvm,gxfn5l0,gxf8r9l,gxfmz9p,gxf7026,gxfeq6n,gxfso3d,gxfghec,gxfmmmt,gxf8ra1,gxfmmn0,gxf6h3x,gxffyg0,gxfnbxd,gxfnuw3,gxfk65g,gxf7j1j,gxfi8mh,gxfslka,gxfdulr,gxfowtz,gxf64hl,gxfqhq3,gxf703n,gxfpobu,gxfok7a,gxerv1d,gxfqc24,gxfq53h,gxfjn7z,gxfq53k,gxf34mw,gxffs5v,gxflr2s,gxfhqby,gxfkp5p,gxfn5ni,gxf6au7,gxfq545,gxfk9zl,gxeb81a,gxf7cs4,gxfeq9i,gxfqprd,gxfmmpl,gxfowvu,gxfk2m7,gxf822k,gxfqbgg,gxfmvr4,gxf5lky,gxfpfut,gxfnc06,gxflr47,gxfp37t,gxfi2dm,gxffyj4,gxf9ac1,gxfpytu,gxfqbgz,gxfo7mc,gxfbqtx,gxfo1av,gxfth94,gxf9zmi,gxfbe71,gxfh6sg,gxfoxi3,gxfma3p,gxfslnt,gxfiy0i,gxf941h,gxf4ddi,gxfif21,gxftha2,gxfewn1,gxfrdfi,gxfmt33,gxfcz41,gxf7vsz,gxfhps4,gxf2w81,gxf3556,gxf8rf0,gxf29ji,gxf8rf4,gxfgb82,gxerhcz,gxfkp92,gxfr74o,gxfohtd,gxfjy9t,gxfrq3m,gxfc3j7,gxf6nl0,gxfaoyu,gxfqbjb,gxfn5rd,gxfpskr,gxf9431,gxfqf2b,gxfjnvs,gxfn5rn,gxekph3,gxfg4es,gxf4q2i,gxfflyz,gxf473w,gxfowzi,gxf7pj3,gxf3bic,gxf8rgo,gxfnoqy,gxf88ib,gxfap08,gxfnift,gxfqafs,gxfqbks,gxf8rh9,gxfsye7,gxfslr5,gxfplt4,gxfslrf,gxfqble,gxfnos3,gxfd5iw,gxfrdix,gxfjtq2,gxf7pks,gxfbqym,gxf40u7,gxftb28,gxfpxcb,gxfk6dh,gxfmctd,gxfo1ft,gxfnv4a,gxfqo6c,gxfn8f7,gxfqana,gxfek49,gxfoe3h,gxfq5b4,gxfniht,gxf946a,gxfoqqt,gxf7vxi,gxfbkob,gxfk031,gxf8l7z,gxf3blc,gxell6d,gxfpg1j,gxffbzw,gxf594t,gxfjssy,gxfr445,gxfma9u,gxfniir,gxf8xvo,gxfoe4o,gxfpz0p,gxfpg22,gxfp3ez,gxfnij0,gxfi8wi,gxf7vyt,gxfqbod,gxfoe5a,gxfjtsv,gxfo1i8,gxfbwq8,gxf88ma,gxfb1rb,gxf6u20,gxfll0r,gxfthgs,gxfsnbx,gxfpjph,gxf7vzp,gxfqa0n,gxfn5x6,gxftgq9,gxfap4s,gxfpz2c,gxff9hj,gxfjtu1,gxfe0fi,gxfmmz4,gxfaci9,gxfp4wz,gxfoe6t,gxfslw6,gxf82c8,gxfavh6,gxf2z18,gxfmtb2,gxfo1k2,gxfs2xv,gxfp9t0,gxfslwl,gxfrdnq,gxfe6ws,gxf7ppo,gxfhwbx,gxfb84v,gxfjtv6,gxfqbqs,gxfox6d,gxfp3hy,gxfmtp0,gxfk6im,gxfrwn3,gxf47b5,gxfavia,gxfqoeb,gxft8xz,gxfnime,gxfifbd,gxfiryk,gxf76rx,gxfo1la,gxeqolt,gxfnimq,gxf4g3n,gxfmzo6,gxfca3d,gxfspga,gxf9zxd,gxftb8l,gxfjay4,gxeifji,gxekjeb,gxf8f1x,gxf2z3q,gxf70hm,gxfravz,gxfpz5s,gxfpyff,gxfifd0,gxfox8m,gxfoj33,gxfmn2h,gxf4wnf,gxfk6ku,gxfifdf,gxfoqxg,gxfslzq,gxf8rpz,gxfk6l5,gxfflhr,gxfo7z3,gxfn61x,gxf4dpi,gxfmzqi,gxfpzad,gxfqbu8,gxfhq41,gxejb77,gxf8y2c,gxf8rqt,gxf8rr1,gxfoxa7,gxfnvcw,gxfpjor,gxfleva,gxf4wp5,gxfoqyy,gxfqoi4,gxftgbb,gxfmtg0,gxfqbv5,gxfrwr6,gxf8lg7,gxfo1p5,gxfqbvi,gxfsm1s,gxfsm1t,gxf64yv,gxf669z,gxfthnx,gxf94fk,gxfrk4y,gxfmzsj,gxfgblg,gxffyye,gxfsypk,gxfavnd,gxfrj2f,gxfp9z2,gxfo1qb,gxfm3dt,gxfqi89,gxfk0ct,gxfsm33,gxfju1e,gxf6bbn,gxf1xas,gxfmzti,gxfnvfb,gxfl8m0,gxfi95l,gxfbemy,gxf7w7x,gxf7w7y,gxf82jj,gxeqhly,gxf650m,gxfnch3,gxfbrag,gxfmnek,gxfs358,gxftk9m,gxf82jz,gxf47ht,gxfqfye,gxfmtiv,gxfokqg,gxfq2nz,gxfsyrg,gxf9h4w,gxfsyrm,gxfovpz,gxfdc7a,gxfgoav,gxf7w97,gxfqbym,gxf35lb,gxfs0se,gxfnitt,gxfdc7n,gxfoefo,gxf8b72,gxfnity,gxf88wq,gxf47j1,gxfo84e,gxfniu7,gxf534y,gxfitej,gxfniuc,gxfapew,gxfthrd,gxfrqjx,gxfsm5q,gxfhq9c,gxfniut,gxf70os,gxfjb5p,gxepmwu,gxfmam7,gxfjhhc,gxfo85d,gxflxza,gxfncjs,gxf653d,gxfoq7r,gxftizm,gxfnivi,gxfthsi,gxfor4k,gxf2zbt,gxfh10a,gxfppm1,gxfhwm5,gxfapgi,gxf8y8z,gxfrrho,gxfrdye,gxf94pd,gxf4wvj,gxewnsg,gxfkou6,gxf8rxy,gxfsm81,gxf6hs2,gxfb24j,gxf59na,gxf9gap,gxfbers,gxfs39l,gxfrpt3,gxfjhjg,gxfrg76,gxfn6a6,gxfo87j,gxf8ln7,gxftbit,gxfoxhy,gxf8ryw,gxfqie1,gxfk6u3,gxflqrq,gxfs9lz,gxfbeso,gxfowon,gxfo88f,gxfkptf,gxfoxit,gxfkw55,gxf8rzx,gxftbjy,gxfniyr,gxfmaq1,gxf3op7,gxfqc3w,gxfqb4d,gxfrkcx,gxf7wes,gxfncnr,gxf7q3e,gxfrx0c,gxf7q3h,gxf70td,gxfqge3,gxfnco5,gxftcos,gxfczqi,gxfbbqf,gxf5skv,gxfqos1,gxf71xa,gxfkpvb,gxevym2,gxf8s1n,gxfncos,gxfpmv2,gxf70u7,gxft12m,gxfp6vt,gxfeebr,gxfqz70,gxfg5jf,gxeu7f5,gxfsmc2,gxfqc5w,gxfpa8l,gxfncpi,gxfpmvt,gxe9hjv,gxfqiho,gxfd63i,gxfs3dt,gxfn6ec,gxfqgee,gxf9x69,gxfqc6h,gxfifqk,gxfmnfx,gxfmqlv,gxfqe17,gxfpzjy,gxft0bu,gxf5sn6,gxfbrk6,gxf65af,gxfhwso,gxfmatm,gxfqx6r,gxfoxn4,gxfgi8h,gxfqc7n,gxfo8d0,gxfbrkq,gxfbrkr,gxfbrks,gxfoeot,gxf7win,gxfo21y,gxf8s4p,gxeoocd,gxfkpyr,gxfbl9z,gxf59q0,gxfim4a,gxfbrlq,gxe6mc5,gxfmtts,gxfmttw,gxfkwaz,gxfn6h8,gxfnj4e,gxfqc9i,gxf6bo9,gxekir3,gxfswjj,gxfk71a,gxfs3hb,gxf2zkz,gxfkdd1,gxf41if,gxfti22,gxfe84r,gxf70z1,gxflrxr,gxfn06o,gxf8lv7,gxfqcac,gxfqjku,gxfi37d,gxfqgf3,gxfsmgu,gxfkdds,gxf7wle,gxfkjpi,gxfoxqf,gxfqimj,gxfft1o,gxf7jyp,gxfr1le,gxfjbh0,gxfl90a,gxfoxr4,gxfgc0y,gxfowsb,gxfnj6z,gxerxf1,gxfcnam,gxf9hin,gxf5g4w,gxfiyuu,gxf6upj,gxfgv09,gxedcsc,gxfjo5d,gxfnj7q,gxfqa90,gxfqvbe,gxfisjv,gxforgx,gxf4e8k,gxf7120,gxfk74s,gxfrx9a,gxfq1ol,gxf8s9v,gxf94x0,gxf65gl,gxfs56m,gxfncx9,gxewxgd,gxfoxtd,gxfeyes,gxfoxtp,gxfer7m,gxfqcei,gxfbyyg,gxetidy,gxfmtzr,gxfqvdk,gxfism1,gxfsml7,gxfp464,gxfb8t9,gxfqcf3,gxfqcf4,gxfmu04,gxfncyv,gxf3620,gxfpug4,gxfmu0d,gxfncz6,gxfq4zo,gxfiyye,gxfi3co,gxfsanp,gxfn3ai,gxfkdj6,gxfiyyu,gxf8scn,gxf4808,gxfn6o9,gxe9570,gxfteul,gxfl95d,gxfmhea,gxf8sd0,gxfctqt,gxf6fus,gxf8sd7,gxfhx2b,gxfo2av,gxfpn6w,gxfe8bt,gxfn6pb,gxf7qgg,gxfqa4o,gxfbf76,gxfcng5,gxfnjcm,gxforlk,gxfn6pm,gxfisoz,gxferb9,gxefah6,gxfcngt,gxfi9qm,gxfqci7,gxfo2c3,gxf5dxq,gxf2we1,gxfnw0t,gxf8sf4,gxf6vo0,gxf717q,gxfg5wo,gxf835a,gxfq67l,gxfo2d1,gxf835j,gxfnvr3,gxfs8kh,gxfqp6m,gxf5a0v,gxf7q80,gxf8sg3,gxfb8xz,gxfp4ax,gxfolem,gxflpsn,gxf4efg,gxeolji,gxfhsml,gxfk103,gxfo2dz,gxel950,gxf9zux,gxfi122,gxf9o2m,gxf9540,gxf81tc,gxfp05u,gxfqw9n,gxf4961,gxfawbs,gxfadd6,gxftict,gxfnw33,gxf484z,gxf4xf8,gxfimgl,gxfnnji,gxftid6,gxfoqhb,gxfmm2r,gxfqikr,gxfn6tg,gxeys7b,gxeisng,gxfnjgr,gxf7dxp,gxfjuq7,gxfctw1,gxf4ksy,gxfmnv8,gxfqixi,gxfimhj,gxfi3ix,gxfctwe,gxfmb8m,gxfmu7i,gxfsmsw,gxfnw4x,gxf5zea,gxf7b1g,gxfawdw,gxflsai,gxf486z,gxfe8ho,gxfk7el,gxfbfcu,gxffn2a,gxfq33q,gxfjurs,gxf4uzw,gxfowsp,gxf3ix9,gxfc25p,gxf8sk1,gxfsllz,gxf8t7y,gxfnpue,gxelquw,gxfnw66,gxfcnms,gxerrfp,gxf83ae,gxftig8,gxfrvau,gxfr8a6,gxf8skz,gxf89md,gxf6v1z,gxfp1x0,gxfr1z2,gxf958l,gxfqdbr,gxfjxk2,gxfqb7y,gxf8yxi,gxf5i0w,gxftihq,gxfp411,gxf60pr,gxfmnz5,gxf6v36,gxfptr8,gxfnd9n,gxfo3yp,gxfqcq9,gxf8smq,gxfrjgz,gxf6igo,gxfbs3e,gxfptrv,gxfrxml,gxf71fi,gxfgx1x,gxforuu,gxfqmw4,gxfqvpm,gxftij1,gxfoxpp,gxfmuca,gxf6v4r,gxfr21o,gxfdn2d,gxf7x2d,gxforvv,gxfslel,gxf8som,gxf8z0j,gxfb2v9,gxfo8xz,gxfk1sc,gxfptu9,gxfigcy,gxfhr2w,gxfermh,gxfnwbh,gxft7vu,gxfbs67,gxf6c82,gxf95d0,gxft8z9,gxf8sq3,gxfnjov,gxf7e5v,gxfmhro,gxfptvb,gxfq0pg,gxf305a,gxfit1c,gxfgiv5,gxfl37n,gxfqcue,gxf8sqv,gxfqvt7,gxezo26,gxfgp73,gxfsm1d,gxf7kia,gxf8sr7,gxfoyac,gxfqvtp,gxf8g4g,gxf9odf,gxewomg,gxf6v8t,gxfqcvi,gxft6hp,gxftinl,gxfaqb9,gxfrrga,gxfqdcv,gxfc4w2,gxf65z9,gxfk1c7,gxf8sso,gxfnwej,gxf8sss,gxfnwel,gxfn74e,gxekki7,gxf65zo,gxfn74p,gxftcd7,gxf3cv0,gxfpadt,gxf48h4,gxfe2g9,gxfd6uk,gxfqcxc,gxfdd6a,gxfndh0,gxfieef,gxfnwfw,gxfmbk2,gxf5zpf,gxfn761,gxfk1e2,gxfcnwt,gxfn768,gxfnwgh,gxfrnit,gxfra0z,gxf7eae,gxfo93r,gxff4ex,gxfo2sc,gxfo93x,gxfo2se,gxfk404,gxfqplu,gxf96yu,gxfs0ny,gxfa7fr,gxfo0lr,gxfsn56,gxfey3v,gxfphd8,gxfjv3j,gxflsmq,gxfqcz7,gxfsn5h,gxfq0c7,gxfpu0q,gxfqczf,gxe8a4f,gxfbscj,gxfn77o,gxf45e5,gxfq71z,gxfn3du,gxfertd,gxfg6e7,gxfp1yz,gxfdjl2,gxf71pj,gxfrrl7,gxfbsdo,gxfbm25,gxfsh8d,gxfr8mo,gxfey5v,gxev3wa,gxfoltn,gxfmbni,gxfndkv,gxfit8m,gxfpu2v,gxft66g,gxf6vex,gxfg7tj,gxfnjwt,gxfr1m5,gxer60z,gxfmbo9,gxfrkkv,gxf7ee4,gxfoe2t,gxfo97m,gxf9bxf,gxfo2w4,gxfnjxl,gxfek9e,gxfohyq,gxfsn8x,gxfchpu,gxffaut,gxeigtz,gxf4rlm,gxf7r25,gxfr2da,gxf6667,gxfq4yo,gxfr2de,gxfs6n6,gxfoxrq,gxfndmu,gxfndmx,gxf4xxm,gxfmuoc,gxfnjym,gxf4rm9,gxf95n8,gxf4ezb,gxexmuy,gxf6672,gxfitb3,gxfoyjk,gxf8t0k,gxf7krp,gxforgc,gxfn10q,gxfoyjw,gxf6p6d,gxf95o9,gxfcwsf,gxfm0fe,gxfhyz9,gxfbm67,gxf24u9,gxfpl0o,gxfnqbo,gxfkqva,gxfrqwx,gxft7e6,gxf48p8,gxfbnhq,gxfn7do,gxe6pel,gxfol8p,gxfjoyo,gxfpnvm,gxfqd5v,gxfoylr,gxf8a40,gxfkkl0,gxfnk1i,gxfc25o,gxfrrr0,gxf7ku6,gxftcn7,gxfnash,gxfosay,gxft6bv,gxfrpsx,gxfqhfn,gxfsndb,gxfrf4h,gxfndqt,gxf6qih,gxffty0,gxfn7fd,gxfqpui,gxfk1nf,gxfr2hr,gxffhb6,gxftgmx,gxerrz8,gxfc292,gxfbm99,gxfrrsg,gxfn7g1,gxfigs5,gxfqjr1,gxfb9mh,gxfq0l6,gxfeyd7,gxflsvw,gxf9ytu,gxf8ghs,gxf9v2a,gxfiah1,gxfpnyf,gxex1mx,gxf95sf,gxfnk42,gxfqhmr,gxfopda,gxf2nx5,gxevzq4,gxftcpq,gxfnng0,gxfpwkb,gxfndt3,gxfe87w,gxf7r8x,gxf8t6a,gxfjvec,gxevzqt,gxfqpx2,gxf6s7h,gxfnws9,gxf83wd,gxf5h36,gxf8t6v,gxfn16w,gxf6cp7,gxf36x9,gxf3pw0,gxfqw9e,gxfqdas,gxfh8lx,gxfr2l5,gxevahm,gxf6vob,gxfbg0t,gxf7200,gxf6voi,gxfth3l,gxfa1ks,gxfpucs,gxfk1rh,gxfnk6m,gxf5awt,gxft6gg,gxfmi9e,gxfndv7,gxfpud3,gxfp52w,gxf7kzd,gxfbz0c,gxfoyrh,gxfqpz2,gxfmuww,gxelzi9,gxflzb6,gxeo9oj,gxfqdc4,gxfr2mh,gxfjvgr,gxfnwuk,gxfqdcd,gxfq2wd,gxfbspg,gxf7pl5,gxfsniv,gxf8gm2,gxfb9qz,gxfnwv1,gxfmuxr,gxfoexh,gxflayd,gxfnzrx,gxem5uz,gxemc6n,gxfhlbo,gxfialx,gxfdjxz,gxfpii1,gxf8myl,gxewp4y,gxf7xoj,gxfoyti,gxer96v,gxfigy4,gxf6vro,gxfl3rq,gxf3713,gxfq0rd,gxfn7mi,gxf7xp7,gxf66hp,gxfcuou,gxf8780,gxfnwx0,gxf5h7x,gxfsnlc,gxezib5,gxfmv04,gxfobpa,gxfla47,gxfndyx,gxfpphj,gxeo9rw,gxf4lml,gxfrybm,gxfsnm1,gxf7xqj,gxfd7d9,gxf7vn1,gxfqjrk,gxf4901,gxf3wd3,gxfmqtg,gxfo9lm,gxf4fbu,gxf6vtq,gxf4yaq,gxfne03,gxfr2qs,gxfqdgm,gxfqdgr,gxfcbsf,gxf8zp0,gxft6m0,gxf8gqj,gxfr2ri,gxf7ldr,gxfoanq,gxf42py,gxfnqo8,gxfqq4p,gxfhy2y,gxf7yt4,gxfq76c,gxfspuj,gxf4fdk,gxf8aft,gxf8tei,gxerdh6,gxfp59a,gxfs4ps,gxfnkdf,gxfphwk,gxfesbq,gxfne1z,gxfryeh,gxf8n3e,gxf8tf0,gxffnxq,gxfdgvc,gxfg0ky,gxfbz7d,gxfg0l6,gxfth4v,gxfk1z0,gxf8tfh,gxfr94v,gxfbsw1,gxfombm,gxf7xtw,gxffnyf,gxffhmx,gxfsnpn,gxfmih8,gxflzim,gxft85t,gxfbswh,gxfr95e,gxfn7rn,gxetpuc,gxft6ol,gxfefpz,gxfkemw,gxfn7ru,gxfk4fz,gxf7xul,gxffnz4,gxfnx2a,gxft8pn,gxfih48,gxf66ne,gxfhy5p,gxfkkz3,gxft6w3,gxfrs51,gxfnojt,gxfla9k,gxfl3y4,gxflt8f,gxfsfqx,gxfp45z,gxfsnrf,gxfddu6,gxfk21b,gxfn7tc,gxfd175,gxeu2ja,gxfiqih,gxftjdl,gxfdsa2,gxfl1qn,gxf6vz1,gxf8gv6,gxf30sb,gxfqq91,gxf8ajt,gxf7xwq,gxf378u,gxfpoc0,gxfhrw3,gxfsnsk,gxfbszb,gxfr2wp,gxffuda,gxfl404,gxfk8ee,gxf8493,gxfn7uw,gxfjpft,gxfar2i,gxfn1jf,gxftd3g,gxfiavi,gxfn3hp,gxfmv80,gxf7ezc,gxft6sc,gxf8tk1,gxf9cis,gxfgjoq,gxfqcfm,gxevnhr,gxffhrl,gxf33y1,gxe903d,gxf8tkq,gxfi06t,gxfbmps,gxfhry9,gxfq7d6,gxfd7m6,gxf44u0,gxfthmd,gxfqdp3,gxf0kig,gxfpoey,gxf9ivv,gxfpuqk,gxf72e5,gxfa2p1,gxfhfc1,gxf9iw3,gxf7ld0,gxe6pyf,gxf6d48,gxft73p,gxfd5bb,gxf84r5,gxf6w33,gxfl439,gxf6wx5,gxfdwxl,gxfn7y5,gxf5q8w,gxeq7lt,gxfr9c2,gxf386j,gxfmvb8,gxfqdqm,gxfbmjc,gxfl4xa,gxf726x,gxfr9ct,gxfkxsw,gxfg74z,gxfoz6s,gxftd7p,gxfq7fq,gxfn1nr,gxfpoh4,gxfpusq,gxfs3nr,gxf7lf5,gxfcc3b,gxfn7zs,gxfde0p,gxfde0q,gxfovrz,gxfrfp9,gxfagqk,gxfpw83,gxfmipv,gxfbt52,gxfk8jr,gxftjkh,gxf6pub,gxfgdhw,gxfkejz,gxfhydy,gxflzrs,gxf49cr,gxexl5o,gxfnqzk,gxfo4e3,gxeufdw,gxf7f51,gxfmnpt,gxf5hm2,gxf3753,gxfr33h,gxfdkdr,gxfb3w4,gxf7lh1,gxfr9fb,gxfar96,gxfpuju,gxfp5ku,gxf6w73,gxfk8li,gxez62v,gxfm3dv,gxfnkpe,gxftdas,gxf3k45,gxfnxco,gxfbmvv,gxfbgkc,gxfbc0q,gxfqduo,gxfq7j5,gxfnr1g,gxfq17q,gxfln6w,gxf8h49,gxfsbe3,gxfnkq4,gxfqk6l,gxfjvzl,gxe9cxg,gxfqdvb,gxfnxdm,gxfpwnz,gxfsoqy,gxf7y67,gxfr9hd,gxfnef7,gxfnefb,gxfr362,gxfhyhh,gxfqdw6,gxfihg8,gxfjd25,gxfmvhe,gxfd7ty,gxfozc7,gxfp5a4,gxfbzl8,gxfbmy6,gxfmvhs,gxfrb8o,gxfniab,gxf8rbo,gxfg0zh,gxfnksf,gxfa8e8,gxf37k4,gxfqk93,gxfbabu,gxf4m4t,gxfm68g,gxe6jv5,gxfr382,gxfbac9,gxfi9pr,gxfnxge,gxetjxb,gxfsbhf,gxfnxgo,gxf72nd,gxfskjr,gxfqdyn,gxevnsh,gxfiu5u,gxfnom6,gxfneig,gxfneij,gxf6wcd,gxe796m,gxfmvk4,gxfqkat,gxfehtj,gxfmvkc,gxfsorm,gxfa24v,gxfpopc,gxfqkb5,gxfk8r6,gxflnbr,gxfos6y,gxetwm2,gxfnr6m,gxfn887,gxf84mh,gxf8twr,gxf84ml,gxfsbjk,gxf3wxd,gxfsuib,gxfcozb,gxfcozd,gxfqe0t,gxfihku,gxexf2g,gxfomc7,gxeon0t,gxfnxji,gxf8txt,gxfqchv,gxeww44,gxe8oeu,gxfbaft,gxfisp1,gxf4skk,gxf84o5,gxfemjq,gxfi4z0,gxfihm9,gxf83x9,gxfozhy,gxfa27v,gxflars,gxfposp,gxfjrb3,gxfr9ox,gxf8tzo,gxfij7y,gxfslmh,gxf8no9,gxfp9on,gxfbtgd,gxfkf6n,gxfcvwb,gxft78l,gxfk2jr,gxfqx2g,gxfma2k,gxfryzv,gxfrnwy,gxfa29a,gxf9iqw,gxfot82,gxf5hwz,gxfnenp,gxfhm2e,gxfs5br,gxepipk,gxfsum4,gxfeyp6,gxfomwu,gxfgv6d,gxf7s3m,gxfbn5v,gxf8u12,gxf677t,gxf5tmm,gxfnxn2,gxfr9qn,gxfnxn5,gxesoih,gxfjpy3,gxfo3z3,gxf7s4g,gxf5hy9,gxfbtia,gxfltsz,gxf6dk7,gxfp2j3,gxfnl0s,gxf7ygf,gxfn80o,gxff5rl,gxe6rxa,gxfjds9,gxfsoca,gxfbn7g,gxf679b,gxfhyrk,gxf8b42,gxfh9hf,gxf8u2t,gxfm05i,gxf60xz,gxfp8hj,gxemqme,gxfq7v3,gxfqe6r,gxf3e54,gxfn8ex,gxf67a2,gxfneqm,gxfqmip,gxeklsx,gxfnxpf,gxfhysk,gxfra8h,gxfomzw,gxfner2,gxfner4,gxfomau,gxfon06,gxfogop,gxfn8fw,gxfs2ol,gxf8u4g,gxftdoh,gxf8hhe,gxfnxqb,gxfnl39,gxfet1p,gxf7lw3,gxfs0m5,gxfotco,gxf8u55,gxfnl3v,gxfp5zx,gxfh38f,gxfoo0d,gxfay07,gxf7yjy,gxelhh1,gxf6qba,gxftk1k,gxetwvt,gxfd4cq,gxf6ywo,gxftaxs,gxfnete,gxfg7nr,gxfnxs8,gxfi572,gxevyz2,gxfii1f,gxfnl5g,gxfqead,gxfmvvd,gxfl4nv,gxf67do,gxfm6lf,gxf8u7d,gxf8hkc,gxf6wod,gxf6woh,gxf612r,gxffoqf,gxevbi5,gxfp62p,gxfd891,gxfgkcp,gxfqcwc,gxf3wif,gxfbaq4,gxfd1kt,gxfk2ry,gxfjq4x,gxfpp1v,gxfth8l,gxfk93u,gxfa8t9,gxfq80u,gxffv35,gxfefrv,gxfr3mu,gxfn0g7,gxeyhbg,gxfa2i5,gxfnxv2,gxf7egr,gxfnewg,gxfdelv,gxf9jjp,gxflu0n,gxfn5px,gxfam8a,gxfrr4b,gxfrvc1,gxfalhm,gxfg1g0,gxf9e8n,gxf6y32,gxf5bvi,gxfsokj,gxf7sdi,gxfiulo,gxfrsz1,gxesos2,gxfn8mr,gxfk2us,gxfqeet,gxfhsom,gxfl1in,gxffo16,gxfdkzj,gxfo0a3,gxfib82,gxehg92,gxfb4hz,gxfk2vd,gxfp0fn,gxezd01,gxealqq,gxfkyhf,gxf6wt0,gxf836h,gxfg4w4,gxfqxek,gxfsom7,gxfq1sx,gxet7s4,gxfoxhl,gxfk2wa,gxf1tik,gxf6wtq,gxfmntp,gxfrzcg,gxfoh54,gxf6wtu,gxfioc3,gxfqvku,gxfszdq,gxf6dvc,gxf9709,gxftk8r,gxfp39m,gxf90ow,gxfnlc2,gxf5byb,gxfdepw,gxfsnom,gxf5t0h,gxfoqmk,gxfjqa3,gxf6wup,gxfdfz7,gxfnf13,gxfbavu,gxfotln,gxf5om5,gxfn8pq,gxeb4rm,gxfm0h1,gxf5rja,gxfqei4,gxfsouq,gxf7tpk,gxf79iu,gxfmu5d,gxfc06w,gxf5ibe,gxftgtn,gxfjewa,gxfpr6d,gxf3r45,gxfo6m9,gxf7ytn,gxfegpb,gxf972s,gxfo52r,gxfi5g8,gxf6wws,gxffo1y,gxfqypd,gxf90rt,gxfinif,gxeh3qm,gxfgx81,gxf4mr9,gxf6wxj,gxfpqgk,gxfii4a,gxfny2j,gxfn3m1,gxfdrgg,gxfi5hf,gxfiog5,gxfn2h3,gxfra6g,gxfqc7v,gxf7gzy,gxf8o5v,gxfd26t,gxf79lj,gxf7fx5,gxf8uhm,gxfoopb,gxfqelf,gxezw4n,gxf8ui0,gxf8bjl,gxf67oz,gxeh3sk,gxfetfa,gxeuprd,gxf79mh,gxfbb0b,gxfpj0d,gxf5if3,gxfqem9,gxf7ma1,gxfrt6y,gxfr3wv,gxfk9e9,gxfr1vn,gxfmw7q,gxfonff,gxfr3xd,gxfnf6u,gxf6uyv,gxfii7g,gxfk9f1,gxfqxm6,gxfocbs,gxfp6eo,gxfg4xf,gxfsotw,gxflho9,gxfi5kw,gxf8o94,gxf8ukq,gxfayff,gxfny6k,gxf7sni,gxfs5w1,gxfnf82,gxfte51,gxflhp6,gxfcd0d,gxfdrkw,gxf7yzn,gxf73dy,gxfrwfw,gxfl52y,gxfhmnv,gxfnf9b \ No newline at end of file +gxf43y8,gxfq8eb,gxfmdc4,gxfc01r,gxfkyrq,gxfh1lj,gxfnxps,gxf8ob6,gxfdlau,gxfobx5,gxfn2mw,gxf7sp0,gxfd2ce,gxesisg,gxfqxpe,gxf6y58,gxf97ai,gxfowzs,gxfhzci,gxfrzn7,gxfha2d,gxfh3qu,gxfrzym,gxfscal,gxfdxz2,gxfbu4f,gxf4gn4,gxfte82,gxfradg,gxfpphi,gxfrznr,gxffcjt,gxfsl9d,gxfom0d,gxfpphy,gxfnyaf,gxfiic8,gxf7sri,gxfe4bj,gxfezxd,gxfif0w,gxfetda,gxfg1uv,gxfrjdh,gxf9207,gxekg31,gxffiwh,gxfhzea,gxf8upg,gxfjkai,gxfcprv,gxfmq2m,gxf7utc,gxfp091,gxf911i,gxfhzez,gxf7g5o,gxf38gd,gxf8pd9,gxftea9,gxfk39v,gxfns0l,gxf6x7a,gxfq8ig,gxem10c,gxfomk1,gxf7mhr,gxfht41,gxfbu79,gxfnjht,gxf8271,gxf8ofl,gxetr5g,gxfql6e,gxfnyd5,gxf3xrx,gxf9135,gxfa9c2,gxfb9zq,gxfp6mj,gxfmwgd,gxfq28e,gxfn2rz,gxfjqoi,gxfj7pv,gxf7g7p,gxfk9ng,gxfsvdq,gxf85i7,gxft80y,gxfn2sn,gxfnyeg,gxfq8kp,gxf2pkb,gxftecy,gxfl59v,gxerh11,gxfted4,gxfbu9o,gxffpbx,gxfqbl7,gxfnls4,gxf7sw5,gxfetqh,gxfp2af,gxfoy2q,gxfdlhv,gxfob32,gxfm78g,gxfeymw,gxfn2ud,gxfnyga,gxfjeyv,gxfgxf6,gxfk3e6,gxfd3a6,gxfeh4h,gxfppob,gxftef0,gxfgenx,gxf681u,gxf6edf,gxf681w,gxfqqch,gxffcqy,gxfr49b,gxfs1r7,gxflbo6,gxfrn8j,gxfs67d,gxf85m2,gxf8bxq,gxfiv73,gxf8bxv,gxfksqc,gxfk3g5,gxfo4ty,gxfm7ax,gxfk3gb,gxfb533,gxfeni8,gxftegx,gxfont1,gxfli12,gxfs688,gxfl0x8,gxfoiag,gxfje6v,gxe7a8p,gxeu3yy,gxfq2e4,gxfpyyt,gxfnfl1,gxfhacm,gxfq2eh,gxfn2y2,gxfq5af,gxf919p,gxfrnam,gxfngda,gxfd8za,gxfnc5l,gxfetvf,gxfsvk0,gxfc729,gxfp6tf,gxfgero,gxfmqbp,gxf8ibv,gxfk9u4,gxfam6l,gxfiimm,gxf6xg2,gxfioyb,gxfm11w,gxftkuv,gxfbuft,gxfp0ii,gxftkv0,gxfnfml,gxfqfty,gxfcq20,gxfgt8c,gxf686k,gxf6xgu,gxfnlyp,gxfg8he,gxf8icz,gxfqlfb,gxf73sq,gxfmqd7,gxfbvia,gxfpji7,gxfmwow,gxf7zep,gxfqf42,gxfohl3,gxf3fsc,gxf8idm,gxf7zf2,gxfmwpd,gxf5p8y,gxfe4nn,gxf93qo,gxfmwpl,gxfpzlw,gxf1hjz,gxfkg80,gxfi61v,gxf73tx,gxfmqef,gxenm7e,gxf3lez,gxfp0ks,gxf9kbx,gxf6r77,gxfqf5k,gxfrtq2,gxfpw70,gxfjxa5,gxfppvj,gxfam9t,gxf56bm,gxfli6b,gxfq8uc,gxfsqqu,gxfiipy,gxfa9mw,gxfqrt5,gxfn6wn,gxfama4,gxffcy9,gxf91ea,gxfsvab,gxf9e1o,gxewqxv,gxfba4x,gxf7t60,gxf9x0s,gxfgl7z,gxfnype,gxfrx3o,gxfqfh4,gxfr4hl,gxftkzg,gxfr4hr,gxfs60b,gxfq8w5,gxfqf7r,gxfdfgq,gxfpogn,gxf7mvh,gxfovtw,gxfhtht,gxf85ua,gxfsj2s,gxf8v4n,gxficgx,gxfd95u,gxffl0b,gxfq2lg,gxfka05,gxfrtt4,gxf1uay,gxey5kb,gxfn35a,gxfn35c,gxfboab,gxfmwtw,gxfteph,gxesjaw,gxfaz0b,gxfrtto,gxf7mwx,gxeuzt1,gxfrnii,gxfqf9p,gxfcjww,gxf44ib,gxewedw,gxf8ij9,gxfhzvd,gxfhtju,gxfeb4v,gxfqccr,gxevbzv,gxftl2h,gxfn9ij,gxfmwvl,gxfnm5z,gxfnm63,gxfs070,gxfmwvz,gxfaz29,gxfehhe,gxfo8uu,gxfq2o6,gxfohs7,gxfn9jd,gxeru30,gxfqgx9,gxfnfv6,gxfrq83,gxevvh0,gxf9e6v,gxfmdy2,gxfentn,gxfq90g,gxfp737,gxfoxq8,gxfpq1x,gxfbodi,gxffw2v,gxfnsj3,gxei6gg,gxfnyup,gxfm1bn,gxfq088,gxflp7j,gxfr4n0,gxfnsjh,gxftetd,gxfmkav,gxea4v6,gxfenv4,gxfo579,gxfo57b,gxf8va5,gxfa9um,gxfg2fz,gxfip9e,gxfqfdy,gxfm7oo,gxfm7op,gxfnywa,gxfmkbx,gxfrzln,gxf8oz5,gxfqetv,gxfbbsl,gxelvau,gxfk3uh,gxfqgxr,gxfbu6t,gxft280,gxf5cw1,gxfmkcm,gxfq93e,gxfq93h,gxf7zpr,gxftevk,gxf68ib,gxfi6ca,gxfq2sb,gxfqffi,gxfg8te,gxf6xt0,gxf6xt2,gxfqcgh,gxfmvd3,gxfnfzi,gxfpjua,gxfrb1x,gxfj1yu,gxfq273,gxf9362,gxfn3cw,gxfn3d1,gxfn3d4,gxf745m,gxfs97m,gxfp782,gxfrnpw,gxfeuag,gxec65k,gxf8cf4,gxfmqqq,gxf7tgk,gxffd9h,gxfq2ue,gxf8vss,gxfpjvu,gxfjran,gxf7n5e,gxeaghh,gxfi03e,gxfp0xq,gxfij27,gxfpdkw,gxflv5v,gxfliis,gxfc7ig,gxfnmdl,gxfopqv,gxfbuvg,gxfehou,gxf4fo8,gxfipeb,gxf7n6d,gxf8655,gxfpmen,gxfsjdp,gxfk3z5,gxfp7aa,gxfqgyj,gxfmkh1,gxfrn3l,gxfme5p,gxf50dq,gxfn3g0,gxfproe,gxf3ltm,gxfow2n,gxflvka,gxfipfi,gxfrq9h,gxf0mdc,gxfs74b,gxfeo1w,gxfm1jb,gxfn3go,gxf7n7u,gxfouob,gxfpdn0,gxficst,gxfc7kg,gxfrnte,gxfsyih,gxfq2xn,gxfq0vw,gxfkmzk,gxfq2xt,gxf9fty,gxftf1l,gxfojfr,gxf5d2l,gxfn3hv,gxfmqut,gxfm7w6,gxfi06w,gxfr2sn,gxfsw3m,gxfi0qm,gxf6rnv,gxftf2l,gxfpzmh,gxfmx75,gxfn9ue,gxfi07u,gxftlek,gxf5jfj,gxfpqcg,gxfjeso,gxfmqwa,gxf91va,gxf91vb,gxfs0jh,gxfhaym,gxfazeo,gxfhtxg,gxfmea6,gxftknh,gxfeo5u,gxfipjn,gxf5jh4,gxevc27,gxeoc0s,gxf7tni,gxfbc2n,gxfp7fk,gxf9yt7,gxfrbac,gxfr4z0,gxfr33x,gxf7zzl,gxftjqt,gxfckcc,gxfn3lv,gxfqsck,gxfox5i,gxftf5z,gxfk45k,gxfeo7d,gxfpqff,gxfmxam,gxfss7s,gxfrbbo,gxftb6i,gxec1lq,gxflcf3,gxflvdu,gxf8pb7,gxfscff,gxfpqg5,gxfivxj,gxfamug,gxfp161,gxfijai,gxf6y41,gxfcqpe,gxfmed0,gxfn3n9,gxffdiu,gxfq33u,gxf8qkq,gxfkzsu,gxf1ohu,gxffq6c,gxfkthq,gxfp2fh,gxfe5h4,gxfpwsz,gxfq9g5,gxfn3o7,gxf8vo9,gxf802k,gxfi0d9,gxfeula,gxfeo9t,gxfspya,gxffwiv,gxf39ex,gxeprwy,gxfm6lv,gxfrtgo,gxfq9gy,gxfmxdf,gxfoi9g,gxf82cp,gxfehz2,gxfeoao,gxf216q,gxftkob,gxflvgm,gxfjxxj,gxfklkg,gxfdz0z,gxfm1sl,gxfo5nc,gxftfa2,gxfbouz,gxffdlo,gxfrpig,gxfk49q,gxfpe11,gxfkgwz,gxfnzc5,gxfobza,gxfbc87,gxfmp3w,gxff0yz,gxfg2wc,gxfh4tp,gxfouy6,gxf7nhs,gxfnzci,gxft8g5,gxfnmph,gxf922h,gxf5pyy,gxfpqkd,gxffjy6,gxfamyq,gxfipqg,gxf4bex,gxf74ju,gxfq9y2,gxfp1at,gxfq9jq,gxf4bfc,gxfr55m,gxfeuou,gxfn4x1,gxesjxo,gxfrugd,gxfjrou,gxfjjc8,gxfp1bn,gxfoiy0,gxfbcae,gxf5ddj,gxfl69o,gxfnnvu,gxfpwxq,gxfmr5x,gxf5de2,gxfmxhn,gxf8phr,gxfl36g,gxf6yah,gxforfm,gxfnt49,gxfp1d9,gxfknce,gxfd9v3,gxfk4dt,gxfmr76,gxfjy2g,gxfiptm,gxfgfng,gxfg30d,gxf8mpw,gxf9xrz,gxfn3up,gxfr2s9,gxf8pj9,gxf339i,gxfm896,gxfijij,gxfn3v6,gxfs0us,gxfnzh2,gxfhu8n,gxfqfyx,gxfkla2,gxfijj2,gxfjrs2,gxfr35n,gxfq9no,gxf7nmt,gxf8pk7,gxfpe24,gxf5dgt,gxf80a6,gxfmxkh,gxfq9o5,gxfpe2g,gxf83cu,gxfan3w,gxfjrsu,gxfn3wf,gxf8pkz,gxfnimu,gxfgm12,gxf8j9m,gxf7rcy,gxf86mm,gxf7tyl,gxf98k3,gxfp1g4,gxfg32u,gxfp1g7,gxfmkyg,gxf4xnz,gxfsrtr,gxf8vxg,gxfefb3,gxfngks,gxevd7x,gxfnt7y,gxfi6ya,gxfnzjp,gxfnmwo,gxfqasz,gxfp1bw,gxftfg5,gxfnmwx,gxfow5n,gxfd9z9,gxfqmdj,gxfgm2y,gxfd9zg,gxfn3ym,gxfpe4w,gxfnmxh,gxfi6zb,gxfjsun,gxfidb3,gxfqg2v,gxf4bmw,gxfatii,gxfn3zf,gxftgny,gxfr0cv,gxf6ygr,gxfq9rw,gxftfk2,gxf6xbf,gxfdgck,gxfqb7t,gxfiyb0,gxfijnw,gxf85kd,gxfan80,gxfgm0z,gxfov84,gxft832,gxfda1n,gxf697g,gxf33fi,gxfrodb,gxfeom8,gxfbp5y,gxfow64,gxfcr3g,gxfp7vy,gxfqg4v,gxfqi43,gxf3mes,gxfntqb,gxfmrek,gxfnmve,gxfml32,gxfmtdh,gxf8w1t,gxfiq0y,gxf6yiu,gxfeuyw,gxf698p,gxf4bpo,gxevdcd,gxfngpa,gxf6yj3,gxfq3ip,gxfi72s,gxfo5zp,gxfnn12,gxffdy1,gxfpnkf,gxfkvui,gxfqcuo,gxfl6jm,gxfra5q,gxfovad,gxfbckm,gxfl087,gxfknl4,gxfmxrd,gxfn42y,gxfp0e5,gxf6s8g,gxf4bqq,gxf6yk7,gxffwxk,gxffwxm,gxfoinw,gxf2x6l,gxfp1mn,gxfp1mp,gxe8waq,gxfqg78,gxf6fly,gxfn43u,gxfqmiz,gxfohfm,gxf45g7,gxfn4xh,gxf8psq,gxf45gc,gxf8h68,gxeq3s2,gxf6s9x,gxfpx9i,gxfpilg,gxfq3l8,gxfktyo,gxfl6lt,gxfn44z,gxfoipg,gxfazzq,gxf69bv,gxfsqch,gxft9ds,gxfmri9,gxfhbk4,gxftfph,gxfml6v,gxfmrij,gxfqg9a,gxf6lzl,gxf8puf,gxf7hll,gxfpxay,gxfp80r,gxfbpb1,gxfl0bi,gxfckwv,gxfngtd,gxfk4pu,gxfmrjb,gxftfqg,gxfngtl,gxfgjy5,gxf48fc,gxez8jf,gxf5ds5,gxffkee,gxfo7yv,gxfpxcc,gxfq9zl,gxfcxlg,gxfq9zp,gxfq1ac,gxftfrv,gxf9li7,gxfq5i3,gxftfs6,gxfskxz,gxfda98,gxfml9q,gxf92jz,gxeo6cw,gxfdt87,gxfswu0,gxfbj22,gxfh74v,gxfnaki,gxfqa10,gxfqa11,gxfp1s9,gxfjyh6,gxfknrk,gxetyzd,gxfm8nv,gxfovh8,gxftftq,gxf69gf,gxfovhc,gxfsqjl,gxfg3fp,gxfqk9d,gxfidm5,gxfpqrh,gxfovhy,gxf8jne,gxf8dbv,gxfpqe0,gxfovi7,gxfb05i,gxfev7v,gxfnn9t,gxfrono,gxfeowl,gxfop7a,gxfmi7d,gxff7vj,gxfdgo1,gxfjfl0,gxfmrol,gxfrpcs,gxfmf1m,gxfjyjv,gxfngz7,gxfn4c4,gxfb1x0,gxf6wbj,gxfth3j,gxfqf05,gxfiwn4,gxf8q0y,gxfop8j,gxfn4ck,gxf3t1i,gxfngzr,gxf80qw,gxfkngs,gxf9fbe,gxfn4cr,gxfngzw,gxfjyku,gxfsqmp,gxfqa50,gxf8jpx,gxfnnbq,gxfhgmx,gxff1lm,gxfjs9o,gxfqggt,gxfoixv,gxfnzza,gxfnnc8,gxfqa5n,gxfnzzg,gxf80rx,gxfqbul,gxei7ld,gxfhi44,gxfqt4n,gxffzys,gxfl0jm,gxf8wed,gxftfyf,gxfk4y2,gxfn4ek,gxf6fx4,gxfk4yh,gxfn4ey,gxfqb0q,gxfp1y5,gxfl0ki,gxfn4fb,gxf5wyw,gxfovmx,gxesqwa,gxfs7qj,gxfsugi,gxfp2k3,gxfh5iu,gxf4c3b,gxeau60,gxfc27v,gxfqgjg,gxfkldh,gxfc282,gxf3zgj,gxfqa85,gxfta5m,gxfk500,gxff80h,gxff80u,gxf92sh,gxfmf6r,gxfnask,gxfqmw5,gxfo02u,gxfmrtz,gxf759l,gxfbvxq,gxf9vst,gxel0ts,gxfn4hh,gxf8whk,gxf877g,gxf3mv1,gxfpxmn,gxfpxmq,gxfrwpx,gxfqaa3,gxfmy6l,gxfnwq5,gxf8jv4,gxfpeoh,gxfptjx,gxfn51f,gxfn4if,gxfprbt,gxfbd0a,gxfj9gb,gxfo6fx,gxfj9gf,gxfnaua,gxfk52f,gxfk52g,gxf57sa,gxfesl6,gxfpepb,gxf7hyp,gxfh5ma,gxfp1k6,gxfab3t,gxft9s0,gxfqabl,gxfn4jp,gxewfre,gxf92vi,gxf51hr,gxfp236,gxflpzn,gxfk53p,gxfqac7,gxf7bo9,gxfqf1h,gxfthqj,gxfr5yc,gxfrili,gxftg4n,gxfeqp3,gxffxf0,gxfo3te,gxfh5ny,gxfoj5d,gxfmrxy,gxfmry4,gxf4v7k,gxfn4li,gxfdgxz,gxfp8gk,gxfbpqn,gxf7uog,gxfq429,gxf6xht,gxfeu2b,gxfskk7,gxfdna2,gxfoj6j,gxfo6jj,gxf69sw,gxfidyc,gxf8jz9,gxf8jzb,gxfpesq,gxfpn16,gxfn4mr,gxfinvi,gxfiqly,gxf4hzd,gxfqaey,gxfl73w,gxf8qbi,gxftjr2,gxfjsjt,gxfms0a,gxfrj36,gxfs45p,gxfsqxf,gxfnnmd,gxfhc2f,gxfg3tk,gxfnhax,gxfo09m,gxfqafw,gxfo09t,gxfie03,gxf4vag,gxf8qcp,gxfn4ob,gxfqagc,gxfpxtg,gxfpmm6,gxfmlpz,gxf8dq3,gxf6z5q,gxflwfz,gxfn4ox,gxfsqyq,gxfkuiw,gxfowa4,gxf8g7r,gxfd4ek,gxfpril,gxfqb1d,gxfdtoz,gxfm93v,gxft9ya,gxfk59h,gxfmyef,gxfeizt,gxfmyej,gxf9ynh,gxfoye5,gxex583,gxfjsmt,gxf462e,gxfp275,gxfg3wb,gxfnnp9,gxfrp33,gxfnhds,gxfjrxc,gxf8k3m,gxfmls3,gxfjyyt,gxfk5ae,gxffr9n,gxfms3x,gxfn4r4,gxfojbl,gxfie36,gxfluq6,gxf8qfq,gxf9yon,gxfn4rc,gxfe02j,gxfskpp,gxfmyfz,gxf8k4g,gxfskpu,gxftgbn,gxfn4ro,gxf8qg5,gxfqn6y,gxfhr8n,gxffxm4,gxfbpwu,gxfjyzz,gxf8z6w,gxfod16,gxfms58,gxfr6gw,gxf8wso,gxfrci1,gxfmyh7,gxfqakv,gxfoxco,gxf9yqb,gxfmyhh,gxfie52,gxfgaai,gxfkbob,gxfms69,gxfiqsl,gxfow12,gxf465j,gxfdh63,gxfk7qq,gxfr8kz,gxfk6ou,gxf7uwo,gxf8d2s,gxfrp6i,gxf7uwr,gxfnb5o,gxfq9th,gxeyq83,gxef8li,gxf8qiy,gxfms7h,gxf6zbi,gxfqbhu,gxfn7ov,gxfq1cp,gxfms7r,gxfqamx,gxfp2e3,gxfkod8,gxfp8pp,gxftgf2,gxfj4rp,gxfki1s,gxel7j9,gxfnhie,gxfn4vb,gxfqnak,gxfq4bz,gxfrap4,gxfikj6,gxf7oms,gxfljzp,gxffxq0,gxeu5x7,gxfauf0,gxfldoe,gxfnb7n,gxfkoed,gxfjmh3,gxfrncc,gxf4cju,gxfngoy,gxf2xzm,gxfp2fr,gxf3gym,gxfo0in,gxf8qlc,gxeqtut,gxflwo6,gxfja1o,gxf8ka2,gxfmsa7,gxeuv8w,gxfmsad,gxf8pqh,gxfn4xm,gxfpy2j,gxfsnnf,gxf6a4f,gxfq4e9,gxey7cz,gxf7v0m,gxfmfns,gxfmsaz,gxfg43z,gxf9yvk,gxfmymp,gxfnhli,gxfk5i1,gxfqaqj,gxfd4nw,gxfj9we,gxfnhlu,gxf0nvo,gxf5r6t,gxfs1ye,gxfp2i0,gxfmsbw,gxff8j4,gxfn4za,gxfqarc,gxf7u50,gxfbdh7,gxfk5j1,gxfp2iq,gxf8x4b,gxfskxx,gxf7v2f,gxfplhk,gxfojk9,gxfqh3e,gxf7v2j,gxfiebw,gxfmyof,gxfo6xc,gxfk5jn,gxeu61g,gxf8qol,gxfnhna,gxf7c4c,gxfprtr,gxf70nb,gxfnhnw,gxfq9ul,gxf7v3n,gxf4vn8,gxfsrav,gxfqmw6,gxeuznu,gxfmse6,gxf6zi9,gxfl16r,gxfh64m,gxfqh53,gxfk5l4,gxfp2l1,gxfqawp,gxfmja5,gxekv36,gxfcq35,gxfl7je,gxfp4rr,gxf75v0,gxf8kfl,gxfrqj7,gxfgn79,gxemsmu,gxfmyrc,gxf4j21,gxfl18a,gxfe6po,gxfpf99,gxf93em,gxftabj,gxf6zk0,gxfnbet,gxf7tak,gxfsl35,gxfswlo,gxet47e,gxfclu3,gxffez0,gxfn53k,gxfqavn,gxfnbfa,gxf7t3t,gxf6zkp,gxf8qsa,gxfbdlo,gxevee6,gxfsxpb,gxfswog,gxflqjn,gxf8r6j,gxfr06d,gxfe6qv,gxflqjv,gxfjlo2,gxfm9im,gxfr7kt,gxf5epe,gxfmshi,gxfnbg7,gxfir3s,gxfkomx,gxf2gbj,gxfsm6m,gxf81j2,gxfnbgf,gxfd4u9,gxftgoz,gxfs24l,gxfnbgo,gxf6wgc,gxfgun6,gxfmsi7,gxfsl3m,gxfhter,gxfn55h,gxfmsie,gxfrvtb,gxfa5ek,gxfq4m9,gxf6aco,gxffrox,gxff8pf,gxf7v90,gxft666,gxfganr,gxf7im3,gxfcyke,gxfqnlr,gxf9n6d,gxfqayq,gxfbqbn,gxekikn,gxfoweg,gxfs26i,gxf5wn6,gxfi1w1,gxf8qvn,gxez9js,gxf6zoj,gxfowf8,gxf93j9,gxfowfh,gxfl1da,gxf4j73,gxfnuia,gxfd4xk,gxfjt4q,gxfn58d,gxfpzcl,gxfo0ue,gxfsmg7,gxfsz03,gxf4cwe,gxfr3dv,gxffrro,gxf7vbt,gxfoyhb,gxfqd7o,gxfk5sv,gxfepuo,gxfo76p,gxfsxuq,gxfsl7p,gxf7p0n,gxf8x9m,gxfp2sr,gxfjgj0,gxfrvxq,gxfn67x,gxfnblc,gxfnhwx,gxf8kmr,gxftgty,gxfepvb,gxf7ce4,gxfl7r1,gxf8ti3,gxfps3q,gxfepvv,gxfscoy,gxfg4gf,gxfnbma,gxfn5aw,gxf8qzd,gxf5evu,gxf57dm,gxfjt7l,gxfn5b7,gxfbuiu,gxelx9i,gxfl7s7,gxfnhyg,gxfcsdn,gxfn5bh,gxf3b1r,gxf6aia,gxf8xbo,gxfirav,gxfmsoo,gxft48p,gxfff7i,gxffrun,gxfb7i9,gxfo0xu,gxfrarv,gxfpoty,gxfjt8m,gxfnbnr,gxfmz0p,gxfslai,gxffrv0,gxfojwt,gxfejm6,gxf4vyo,gxfqc97,gxfkv6d,gxf5rko,gxfhvq4,gxfpluq,gxfp2w4,gxfirc6,gxf4jc8,gxelecs,gxfedbj,gxfbk6r,gxfnuno,gxfircl,gxf5xx5,gxfn5dp,gxfs2de,gxf4w04,gxfqb5x,gxfo0zq,gxfpjwf,gxfni15,gxfni18,gxfps7h,gxfk5xr,gxfsl4z,gxfq1si,gxfqc0q,gxfowm7,gxfojz5,gxfpyjm,gxfgtus,gxfpyjs,gxevl0r,gxfqd2q,gxfmz3k,gxfjzn5,gxfowms,gxfmz3v,gxfp2yk,gxf8egt,gxfoyid,gxfeq0x,gxfhyq3,gxfp7hf,gxfa5os,gxf93ri,gxf6xk3,gxfn5gd,gxf40gx,gxfqb8k,gxfp2zq,gxf34vb,gxfslf1,gxferwd,gxfq6mv,gxfqf6w,gxf1wcz,gxfiet0,gxfosjh,gxfn5h5,gxfrf0f,gxfok1t,gxfg4n9,gxfqg8x,gxfg4nc,gxfs2ha,gxfn8cd,gxfmz6c,gxfni52,gxf8u1l,gxfp314,gxfl6mc,gxf7zhr,gxfo7fi,gxfnusg,gxfrpuq,gxfpouz,gxf8xie,gxfkp0p,gxfgtyi,gxfmmjw,gxfmsvh,gxfp9da,gxf9ghb,gxf93uc,gxfoqey,gxfmg8v,gxfr0le,gxf57ez,gxfni6c,gxfqu9y,gxfpyo7,gxfqnyg,gxfhcy1,gxfsf65,gxeqo5r,gxf8r81,gxf4pua,gxfj45w,gxfr5ji,gxfoqft,gxfni6y,gxfn5jv,gxf64f3,gxfowrm,gxf8h3v,gxf8gcx,gxfslrz,gxfsy5o,gxfnuul,gxfnoj6,gxfrpx4,gxf9gje,gxfjn5n,gxflr0c,gxfnojh,gxfeuxs,gxfixvm,gxfn5l0,gxf8r9l,gxfmz9p,gxf7026,gxfeq6n,gxfso3d,gxfghec,gxfmmmt,gxf8ra1,gxfmmn0,gxf6h3x,gxffyg0,gxfnbxd,gxfnuw3,gxfk65g,gxf7j1j,gxfi8mh,gxfslka,gxfdulr,gxfowtz,gxf64hl,gxfqhq3,gxf703n,gxfpobu,gxfok7a,gxerv1d,gxfqc24,gxfq53h,gxfjn7z,gxfq53k,gxf34mw,gxffs5v,gxflr2s,gxfhqby,gxfkp5p,gxfn5ni,gxf6au7,gxfq545,gxfk9zl,gxeb81a,gxf7cs4,gxfeq9i,gxfqprd,gxfmmpl,gxfowvu,gxfk2m7,gxf822k,gxfqbgg,gxfmvr4,gxf5lky,gxfpfut,gxfnc06,gxflr47,gxfp37t,gxfi2dm,gxffyj4,gxf9ac1,gxfpytu,gxfqbgz,gxfo7mc,gxfbqtx,gxfo1av,gxfth94,gxf9zmi,gxfbe71,gxfh6sg,gxfoxi3,gxfma3p,gxfslnt,gxfiy0i,gxf941h,gxf4ddi,gxfif21,gxftha2,gxfewn1,gxfrdfi,gxfmt33,gxfcz41,gxf7vsz,gxfhps4,gxf2w81,gxf3556,gxf8rf0,gxf29ji,gxf8rf4,gxfgb82,gxerhcz,gxfkp92,gxfr74o,gxfohtd,gxfjy9t,gxfrq3m,gxfc3j7,gxf6nl0,gxfaoyu,gxfqbjb,gxfn5rd,gxfpskr,gxf9431,gxfqf2b,gxfjnvs,gxfn5rn,gxekph3,gxfg4es,gxf4q2i,gxfflyz,gxf473w,gxfowzi,gxf7pj3,gxf3bic,gxf8rgo,gxfnoqy,gxf88ib,gxfap08,gxfnift,gxfqafs,gxfqbks,gxf8rh9,gxfsye7,gxfslr5,gxfplt4,gxfslrf,gxfqble,gxfnos3,gxfd5iw,gxfrdix,gxfjtq2,gxf7pks,gxfbqym,gxf40u7,gxftb28,gxfpxcb,gxfk6dh,gxfmctd,gxfo1ft,gxfnv4a,gxfqo6c,gxfn8f7,gxfqana,gxfek49,gxfoe3h,gxfq5b4,gxfniht,gxf946a,gxfoqqt,gxf7vxi,gxfbkob,gxfk031,gxf8l7z,gxf3blc,gxell6d,gxfpg1j,gxffbzw,gxf594t,gxfjssy,gxfr445,gxfma9u,gxfniir,gxf8xvo,gxfoe4o,gxfpz0p,gxfpg22,gxfp3ez,gxfnij0,gxfi8wi,gxf7vyt,gxfqbod,gxfoe5a,gxfjtsv,gxfo1i8,gxfbwq8,gxf88ma,gxfb1rb,gxf6u20,gxfll0r,gxfthgs,gxfsnbx,gxfpjph,gxf7vzp,gxfqa0n,gxfn5x6,gxftgq9,gxfap4s,gxfpz2c,gxff9hj,gxfjtu1,gxfe0fi,gxfmmz4,gxfaci9,gxfp4wz,gxfoe6t,gxfslw6,gxf82c8,gxfavh6,gxf2z18,gxfmtb2,gxfo1k2,gxfs2xv,gxfp9t0,gxfslwl,gxfrdnq,gxfe6ws,gxf7ppo,gxfhwbx,gxfb84v,gxfjtv6,gxfqbqs,gxfox6d,gxfp3hy,gxfmtp0,gxfk6im,gxfrwn3,gxf47b5,gxfavia,gxfqoeb,gxft8xz,gxfnime,gxfifbd,gxfiryk,gxf76rx,gxfo1la,gxeqolt,gxfnimq,gxf4g3n,gxfmzo6,gxfca3d,gxfspga,gxf9zxd,gxftb8l,gxfjay4,gxeifji,gxekjeb,gxf8f1x,gxf2z3q,gxf70hm,gxfravz,gxfpz5s,gxfpyff,gxfifd0,gxfox8m,gxfoj33,gxfmn2h,gxf4wnf,gxfk6ku,gxfifdf,gxfoqxg,gxfslzq,gxf8rpz,gxfk6l5,gxfflhr,gxfo7z3,gxfn61x,gxf4dpi,gxfmzqi,gxfpzad,gxfqbu8,gxfhq41,gxejb77,gxf8y2c,gxf8rqt,gxf8rr1,gxfoxa7,gxfnvcw,gxfpjor,gxfleva,gxf4wp5,gxfoqyy,gxfqoi4,gxftgbb,gxfmtg0,gxfqbv5,gxfrwr6,gxf8lg7,gxfo1p5,gxfqbvi,gxfsm1s,gxfsm1t,gxf64yv,gxf669z,gxfthnx,gxf94fk,gxfrk4y,gxfmzsj,gxfgblg,gxffyye,gxfsypk,gxfavnd,gxfrj2f,gxfp9z2,gxfo1qb,gxfm3dt,gxfqi89,gxfk0ct,gxfsm33,gxfju1e,gxf6bbn,gxf1xas,gxfmzti,gxfnvfb,gxfl8m0,gxfi95l,gxfbemy,gxf7w7x,gxf7w7y,gxf82jj,gxeqhly,gxf650m,gxfnch3,gxfbrag,gxfmnek,gxfs358,gxftk9m,gxf82jz,gxf47ht,gxfqfye,gxfmtiv,gxfokqg,gxfq2nz,gxfsyrg,gxf9h4w,gxfsyrm,gxfovpz,gxfdc7a,gxfgoav,gxf7w97,gxfqbym,gxf35lb,gxfs0se,gxfnitt,gxfdc7n,gxfoefo,gxf8b72,gxfnity,gxf88wq,gxf47j1,gxfo84e,gxfniu7,gxf534y,gxfitej,gxfniuc,gxfapew,gxfthrd,gxfrqjx,gxfsm5q,gxfhq9c,gxfniut,gxf70os,gxfjb5p,gxepmwu,gxfmam7,gxfjhhc,gxfo85d,gxflxza,gxfncjs,gxf653d,gxfoq7r,gxftizm,gxfnivi,gxfthsi,gxfor4k,gxf2zbt,gxfh10a,gxfppm1,gxfhwm5,gxfapgi,gxf8y8z,gxfrrho,gxfrdye,gxf94pd,gxf4wvj,gxewnsg,gxfkou6,gxf8rxy,gxfsm81,gxf6hs2,gxfb24j,gxf59na,gxf9gap,gxfbers,gxfs39l,gxfrpt3,gxfjhjg,gxfrg76,gxfn6a6,gxfo87j,gxf8ln7,gxftbit,gxfoxhy,gxf8ryw,gxfqie1,gxfk6u3,gxflqrq,gxfs9lz,gxfbeso,gxfowon,gxfo88f,gxfkptf,gxfoxit,gxfkw55,gxf8rzx,gxftbjy,gxfniyr,gxfmaq1,gxf3op7,gxfqc3w,gxfqb4d,gxfrkcx,gxf7wes,gxfncnr,gxf7q3e,gxfrx0c,gxf7q3h,gxf70td,gxfqge3,gxfnco5,gxftcos,gxfczqi,gxfbbqf,gxf5skv,gxfqos1,gxf71xa,gxfkpvb,gxevym2,gxf8s1n,gxfncos,gxfpmv2,gxf70u7,gxft12m,gxfp6vt,gxfeebr,gxfqz70,gxfg5jf,gxeu7f5,gxfsmc2,gxfqc5w,gxfpa8l,gxfncpi,gxfpmvt,gxe9hjv,gxfqiho,gxfd63i,gxfs3dt,gxfn6ec,gxfqgee,gxf9x69,gxfqc6h,gxfifqk,gxfmnfx,gxfmqlv,gxfqe17,gxfpzjy,gxft0bu,gxf5sn6,gxfbrk6,gxf65af,gxfhwso,gxfmatm,gxfqx6r,gxfoxn4,gxfgi8h,gxfqc7n,gxfo8d0,gxfbrkq,gxfbrkr,gxfbrks,gxfoeot,gxf7win,gxfo21y,gxf8s4p,gxeoocd,gxfkpyr,gxfbl9z,gxf59q0,gxfim4a,gxfbrlq,gxe6mc5,gxfmtts,gxfmttw,gxfkwaz,gxfn6h8,gxfnj4e,gxfqc9i,gxf6bo9,gxekir3,gxfswjj,gxfk71a,gxfs3hb,gxf2zkz,gxfkdd1,gxf41if,gxfti22,gxfe84r,gxf70z1,gxflrxr,gxfn06o,gxf8lv7,gxfqcac,gxfqjku,gxfi37d,gxfqgf3,gxfsmgu,gxfkdds,gxf7wle,gxfkjpi,gxfoxqf,gxfqimj,gxfft1o,gxf7jyp,gxfr1le,gxfjbh0,gxfl90a,gxfoxr4,gxfgc0y,gxfowsb,gxfnj6z,gxerxf1,gxfcnam,gxf9hin,gxf5g4w,gxfiyuu,gxf6upj,gxfgv09,gxedcsc,gxfjo5d,gxfnj7q,gxfqa90,gxfqvbe,gxfisjv,gxforgx,gxf4e8k,gxf7120,gxfk74s,gxfrx9a,gxfq1ol,gxf8s9v,gxf94x0,gxf65gl,gxfs56m,gxfncx9,gxewxgd,gxfoxtd,gxfeyes,gxfoxtp,gxfer7m,gxfqcei,gxfbyyg,gxetidy,gxfmtzr,gxfqvdk,gxfism1,gxfsml7,gxfp464,gxfb8t9,gxfqcf3,gxfqcf4,gxfmu04,gxfncyv,gxf3620,gxfpug4,gxfmu0d,gxfncz6,gxfq4zo,gxfiyye,gxfi3co,gxfsanp,gxfn3ai,gxfkdj6,gxfiyyu,gxf8scn,gxf4808,gxfn6o9,gxe9570,gxfteul,gxfl95d,gxfmhea,gxf8sd0,gxfctqt,gxf6fus,gxf8sd7,gxfhx2b,gxfo2av,gxfpn6w,gxfe8bt,gxfn6pb,gxf7qgg,gxfqa4o,gxfbf76,gxfcng5,gxfnjcm,gxforlk,gxfn6pm,gxfisoz,gxferb9,gxefah6,gxfcngt,gxfi9qm,gxfqci7,gxfo2c3,gxf5dxq,gxf2we1,gxfnw0t,gxf8sf4,gxf6vo0,gxf717q,gxfg5wo,gxf835a,gxfq67l,gxfo2d1,gxf835j,gxfnvr3,gxfs8kh,gxfqp6m,gxf5a0v,gxf7q80,gxf8sg3,gxfb8xz,gxfp4ax,gxfolem,gxflpsn,gxf4efg,gxeolji,gxfhsml,gxfk103,gxfo2dz,gxel950,gxf9zux,gxfi122,gxf9o2m,gxf9540,gxf81tc,gxfp05u,gxfqw9n,gxf4961,gxfawbs,gxfadd6,gxftict,gxfnw33,gxf484z,gxf4xf8,gxfimgl,gxfnnji,gxftid6,gxfoqhb,gxfmm2r,gxfqikr,gxfn6tg,gxeys7b,gxeisng,gxfnjgr,gxf7dxp,gxfjuq7,gxfctw1,gxf4ksy,gxfmnv8,gxfqixi,gxfimhj,gxfi3ix,gxfctwe,gxfmb8m,gxfmu7i,gxfsmsw,gxfnw4x,gxf5zea,gxf7b1g,gxfawdw,gxflsai,gxf486z,gxfe8ho,gxfk7el,gxfbfcu,gxffn2a,gxfq33q,gxfjurs,gxf4uzw,gxfowsp,gxf3ix9,gxfc25p,gxf8sk1,gxfsllz,gxf8t7y,gxfnpue,gxelquw,gxfnw66,gxfcnms,gxerrfp,gxf83ae,gxftig8,gxfrvau,gxfr8a6,gxf8skz,gxf89md,gxf6v1z,gxfp1x0,gxfr1z2,gxf958l,gxfqdbr,gxfjxk2,gxfqb7y,gxf8yxi,gxf5i0w,gxftihq,gxfp411,gxf60pr,gxfmnz5,gxf6v36,gxfptr8,gxfnd9n,gxfo3yp,gxfqcq9,gxf8smq,gxfrjgz,gxf6igo,gxfbs3e,gxfptrv,gxfrxml,gxf71fi,gxfgx1x,gxforuu,gxfqmw4,gxfqvpm,gxftij1,gxfoxpp,gxfmuca,gxf6v4r,gxfr21o,gxfdn2d,gxf7x2d,gxforvv,gxfslel,gxf8som,gxf8z0j,gxfb2v9,gxfo8xz,gxfk1sc,gxfptu9,gxfigcy,gxfhr2w,gxfermh,gxfnwbh,gxft7vu,gxfbs67,gxf6c82,gxf95d0,gxft8z9,gxf8sq3,gxfnjov,gxf7e5v,gxfmhro,gxfptvb,gxfq0pg,gxf305a,gxfit1c,gxfgiv5,gxfl37n,gxfqcue,gxf8sqv,gxfqvt7,gxezo26,gxfgp73,gxfsm1d,gxf7kia,gxf8sr7,gxfoyac,gxfqvtp,gxf8g4g,gxf9odf,gxewomg,gxf6v8t,gxfqcvi,gxft6hp,gxftinl,gxfaqb9,gxfrrga,gxfqdcv,gxfc4w2,gxf65z9,gxfk1c7,gxf8sso,gxfnwej,gxf8sss,gxfnwel,gxfn74e,gxekki7,gxf65zo,gxfn74p,gxftcd7,gxf3cv0,gxfpadt,gxf48h4,gxfe2g9,gxfd6uk,gxfqcxc,gxfdd6a,gxfndh0,gxfieef,gxfnwfw,gxfmbk2,gxf5zpf,gxfn761,gxfk1e2,gxfcnwt,gxfn768,gxfnwgh,gxfrnit,gxfra0z,gxf7eae,gxfo93r,gxff4ex,gxfo2sc,gxfo93x,gxfo2se,gxfk404,gxfqplu,gxf96yu,gxfs0ny,gxfa7fr,gxfo0lr,gxfsn56,gxfey3v,gxfphd8,gxfjv3j,gxflsmq,gxfqcz7,gxfsn5h,gxfq0c7,gxfpu0q,gxfqczf,gxe8a4f,gxfbscj,gxfn77o,gxf45e5,gxfq71z,gxfn3du,gxfertd,gxfg6e7,gxfp1yz,gxfdjl2,gxf71pj,gxfrrl7,gxfbsdo,gxfbm25,gxfsh8d,gxfr8mo,gxfey5v,gxev3wa,gxfoltn,gxfmbni,gxfndkv,gxfit8m,gxfpu2v,gxft66g,gxf6vex,gxfg7tj,gxfnjwt,gxfr1m5,gxer60z,gxfmbo9,gxfrkkv,gxf7ee4,gxfoe2t,gxfo97m,gxf9bxf,gxfo2w4,gxfnjxl,gxfek9e,gxfohyq,gxfsn8x,gxfchpu,gxffaut,gxeigtz,gxf4rlm,gxf7r25,gxfr2da,gxf6667,gxfq4yo,gxfr2de,gxfs6n6,gxfoxrq,gxfndmu,gxfndmx,gxf4xxm,gxfmuoc,gxfnjym,gxf4rm9,gxf95n8,gxf4ezb,gxexmuy,gxf6672,gxfitb3,gxfoyjk,gxf8t0k,gxf7krp,gxforgc,gxfn10q,gxfoyjw,gxf6p6d,gxf95o9,gxfcwsf,gxfm0fe,gxfhyz9,gxfbm67,gxf24u9,gxfpl0o,gxfnqbo,gxfkqva,gxfrqwx,gxft7e6,gxf48p8,gxfbnhq,gxfn7do,gxe6pel,gxfol8p,gxfjoyo,gxfpnvm,gxfqd5v,gxfoylr,gxf8a40,gxfkkl0,gxfnk1i,gxfc25o,gxfrrr0,gxf7ku6,gxftcn7,gxfnash,gxfosay,gxft6bv,gxfrpsx,gxfqhfn,gxfsndb,gxfrf4h,gxfndqt,gxf6qih,gxffty0,gxfn7fd,gxfqpui,gxfk1nf,gxfr2hr,gxffhb6,gxftgmx,gxerrz8,gxfc292,gxfbm99,gxfrrsg,gxfn7g1,gxfigs5,gxfqjr1,gxfb9mh,gxfq0l6,gxfeyd7,gxflsvw,gxf9ytu,gxf8ghs,gxf9v2a,gxfiah1,gxfpnyf,gxex1mx,gxf95sf,gxfnk42,gxfqhmr,gxfopda,gxf2nx5,gxevzq4,gxftcpq,gxfnng0,gxfpwkb,gxfndt3,gxfe87w,gxf7r8x,gxf8t6a,gxfjvec,gxevzqt,gxfqpx2,gxf6s7h,gxfnws9,gxf83wd,gxf5h36,gxf8t6v,gxfn16w,gxf6cp7,gxf36x9,gxf3pw0,gxfqw9e,gxfqdas,gxfh8lx,gxfr2l5,gxevahm,gxf6vob,gxfbg0t,gxf7200,gxf6voi,gxfth3l,gxfa1ks,gxfpucs,gxfk1rh,gxfnk6m,gxf5awt,gxft6gg,gxfmi9e,gxfndv7,gxfpud3,gxfp52w,gxf7kzd,gxfbz0c,gxfoyrh,gxfqpz2,gxfmuww,gxelzi9,gxflzb6,gxeo9oj,gxfqdc4,gxfr2mh,gxfjvgr,gxfnwuk,gxfqdcd,gxfq2wd,gxfbspg,gxf7pl5,gxfsniv,gxf8gm2,gxfb9qz,gxfnwv1,gxfmuxr,gxfoexh,gxflayd,gxfnzrx,gxem5uz,gxemc6n,gxfhlbo,gxfialx,gxfdjxz,gxfpii1,gxf8myl,gxewp4y,gxf7xoj,gxfoyti,gxer96v,gxfigy4,gxf6vro,gxfl3rq,gxf3713,gxfq0rd,gxfn7mi,gxf7xp7,gxf66hp,gxfcuou,gxf8780,gxfnwx0,gxf5h7x,gxfsnlc,gxezib5,gxfmv04,gxfobpa,gxfla47,gxfndyx,gxfpphj,gxeo9rw,gxf4lml,gxfrybm,gxfsnm1,gxf7xqj,gxfd7d9,gxf7vn1,gxfqjrk,gxf4901,gxf3wd3,gxfmqtg,gxfo9lm,gxf4fbu,gxf6vtq,gxf4yaq,gxfne03,gxfr2qs,gxfqdgm,gxfqdgr,gxfcbsf,gxf8zp0,gxft6m0,gxf8gqj,gxfr2ri,gxf7ldr,gxfoanq,gxf42py,gxfnqo8,gxfqq4p,gxfhy2y,gxf7yt4,gxfq76c,gxfspuj,gxf4fdk,gxf8aft,gxf8tei,gxerdh6,gxfp59a,gxfs4ps,gxfnkdf,gxfphwk,gxfesbq,gxfne1z,gxfryeh,gxf8n3e,gxf8tf0,gxffnxq,gxfdgvc,gxfg0ky,gxfbz7d,gxfg0l6,gxfth4v,gxfk1z0,gxf8tfh,gxfr94v,gxfbsw1,gxfombm,gxf7xtw,gxffnyf,gxffhmx,gxfsnpn,gxfmih8,gxflzim,gxft85t,gxfbswh,gxfr95e,gxfn7rn,gxetpuc,gxft6ol,gxfefpz,gxfkemw,gxfn7ru,gxfk4fz,gxf7xul,gxffnz4,gxfnx2a,gxft8pn,gxfih48,gxf66ne,gxfhy5p,gxfkkz3,gxft6w3,gxfrs51,gxfnojt,gxfla9k,gxfl3y4,gxflt8f,gxfsfqx,gxfp45z,gxfsnrf,gxfddu6,gxfk21b,gxfn7tc,gxfd175,gxeu2ja,gxfiqih,gxftjdl,gxfdsa2,gxfl1qn,gxf6vz1,gxf8gv6,gxf30sb,gxfqq91,gxf8ajt,gxf7xwq,gxf378u,gxfpoc0,gxfhrw3,gxfsnsk,gxfbszb,gxfr2wp,gxffuda,gxfl404,gxfk8ee,gxf8493,gxfn7uw,gxfjpft,gxfar2i,gxfn1jf,gxftd3g,gxfiavi,gxfn3hp,gxfmv80,gxf7ezc,gxft6sc,gxf8tk1,gxf9cis,gxfgjoq,gxfqcfm,gxevnhr,gxffhrl,gxf33y1,gxe903d,gxf8tkq,gxfi06t,gxfbmps,gxfhry9,gxfq7d6,gxfd7m6,gxf44u0,gxfthmd,gxfqdp3,gxf0kig,gxfpoey,gxf9ivv,gxfpuqk,gxf72e5,gxfa2p1,gxfhfc1,gxf9iw3,gxf7ld0,gxe6pyf,gxf6d48,gxft73p,gxfd5bb,gxf84r5,gxf6w33,gxfl439,gxf6wx5,gxfdwxl,gxfn7y5,gxf5q8w,gxeq7lt,gxfr9c2,gxf386j,gxfmvb8,gxfqdqm,gxfbmjc,gxfl4xa,gxf726x,gxfr9ct,gxfkxsw,gxfg74z,gxfoz6s,gxftd7p,gxfq7fq,gxfn1nr,gxfpoh4,gxfpusq,gxfs3nr,gxf7lf5,gxfcc3b,gxfn7zs,gxfde0p,gxfde0q,gxfovrz,gxfrfp9,gxfagqk,gxfpw83,gxfmipv,gxfbt52,gxfk8jr,gxftjkh,gxf6pub,gxfgdhw,gxfkejz,gxfhydy,gxflzrs,gxf49cr,gxexl5o,gxfnqzk,gxfo4e3,gxeufdw,gxf7f51,gxfmnpt,gxf5hm2,gxf3753,gxfr33h,gxfdkdr,gxfb3w4,gxf7lh1,gxfr9fb,gxfar96,gxfpuju,gxfp5ku,gxf6w73,gxfk8li,gxez62v,gxfm3dv,gxfnkpe,gxftdas,gxf3k45,gxfnxco,gxfbmvv,gxfbgkc,gxfbc0q,gxfqduo,gxfq7j5,gxfnr1g,gxfq17q,gxfln6w,gxf8h49,gxfsbe3,gxfnkq4,gxfqk6l,gxfjvzl,gxe9cxg,gxfqdvb,gxfnxdm,gxfpwnz,gxfsoqy,gxf7y67,gxfr9hd,gxfnef7,gxfnefb,gxfr362,gxfhyhh,gxfqdw6,gxfihg8,gxfjd25,gxfmvhe,gxfd7ty,gxfozc7,gxfp5a4,gxfbzl8,gxfbmy6,gxfmvhs,gxfrb8o,gxfniab,gxf8rbo,gxfg0zh,gxfnksf,gxfa8e8,gxf37k4,gxfqk93,gxfbabu,gxf4m4t,gxfm68g,gxe6jv5,gxfr382,gxfbac9,gxfi9pr,gxfnxge,gxetjxb,gxfsbhf,gxfnxgo,gxf72nd,gxfskjr,gxfqdyn,gxevnsh,gxfiu5u,gxfnom6,gxfneig,gxfneij,gxf6wcd,gxe796m,gxfmvk4,gxfqkat,gxfehtj,gxfmvkc,gxfsorm,gxfa24v,gxfpopc,gxfqkb5,gxfk8r6,gxflnbr,gxfos6y,gxetwm2,gxfnr6m,gxfn887,gxf84mh,gxf8twr,gxf84ml,gxfsbjk,gxf3wxd,gxfsuib,gxfcozb,gxfcozd,gxfqe0t,gxfihku,gxexf2g,gxfomc7,gxeon0t,gxfnxji,gxf8txt,gxfqchv,gxeww44,gxe8oeu,gxfbaft,gxfisp1,gxf4skk,gxf84o5,gxfemjq,gxfi4z0,gxfihm9,gxf83x9,gxfozhy,gxfa27v,gxflars,gxfposp,gxfjrb3,gxfr9ox,gxf8tzo,gxfij7y,gxfslmh,gxf8no9,gxfp9on,gxfbtgd,gxfkf6n,gxfcvwb,gxft78l,gxfk2jr,gxfqx2g,gxfma2k,gxfryzv,gxfrnwy,gxfa29a,gxf9iqw,gxfot82,gxf5hwz,gxfnenp,gxfhm2e,gxfs5br,gxepipk,gxfsum4,gxfeyp6,gxfomwu,gxfgv6d,gxf7s3m,gxfbn5v,gxf8u12,gxf677t,gxf5tmm,gxfnxn2,gxfr9qn,gxfnxn5,gxesoih,gxfjpy3,gxfo3z3,gxf7s4g,gxf5hy9,gxfbtia,gxfltsz,gxf6dk7,gxfp2j3,gxfnl0s,gxf7ygf,gxfn80o,gxff5rl,gxe6rxa,gxfjds9,gxfsoca,gxfbn7g,gxf679b,gxfhyrk,gxf8b42,gxfh9hf,gxf8u2t,gxfm05i,gxf60xz,gxfp8hj,gxemqme,gxfq7v3,gxfqe6r,gxf3e54,gxfn8ex,gxf67a2,gxfneqm,gxfqmip,gxeklsx,gxfnxpf,gxfhysk,gxfra8h,gxfomzw,gxfner2,gxfner4,gxfomau,gxfon06,gxfogop,gxfn8fw,gxfs2ol,gxf8u4g,gxftdoh,gxf8hhe,gxfnxqb,gxfnl39,gxfet1p,gxf7lw3,gxfs0m5,gxfotco,gxf8u55,gxfnl3v,gxfp5zx,gxfh38f,gxfoo0d,gxfay07,gxf7yjy,gxelhh1,gxf6qba,gxftk1k,gxetwvt,gxfd4cq,gxf6ywo,gxftaxs,gxfnete,gxfg7nr,gxfnxs8,gxfi572,gxevyz2,gxfii1f,gxfnl5g,gxfqead,gxfmvvd,gxfl4nv,gxf67do,gxfm6lf,gxf8u7d,gxf8hkc,gxf6wod,gxf6woh,gxf612r,gxffoqf,gxevbi5,gxfp62p,gxfd891,gxfgkcp,gxfqcwc,gxf3wif,gxfbaq4,gxfd1kt,gxfk2ry,gxfjq4x,gxfpp1v,gxfth8l,gxfk93u,gxfa8t9,gxfq80u,gxffv35,gxfefrv,gxfr3mu,gxfn0g7,gxeyhbg,gxfa2i5,gxfnxv2,gxf7egr,gxfnewg,gxfdelv,gxf9jjp,gxflu0n,gxfn5px,gxfam8a,gxfrr4b,gxfrvc1,gxfalhm,gxfg1g0,gxf9e8n,gxf6y32,gxf5bvi,gxfsokj,gxf7sdi,gxfiulo,gxfrsz1,gxesos2,gxfn8mr,gxfk2us,gxfqeet,gxfhsom,gxfl1in,gxffo16,gxfdkzj,gxfo0a3,gxfib82,gxehg92,gxfb4hz,gxfk2vd,gxfp0fn,gxezd01,gxealqq,gxfkyhf,gxf6wt0,gxf836h,gxfg4w4,gxfqxek,gxfsom7,gxfq1sx,gxet7s4,gxfoxhl,gxfk2wa,gxf1tik,gxf6wtq,gxfmntp,gxfrzcg,gxfoh54,gxf6wtu,gxfioc3,gxfqvku,gxfszdq,gxf6dvc,gxf9709,gxftk8r,gxfp39m,gxf90ow,gxfnlc2,gxf5byb,gxfdepw,gxfsnom,gxf5t0h,gxfoqmk,gxfjqa3,gxf6wup,gxfdfz7,gxfnf13,gxfbavu,gxfotln,gxf5om5,gxfn8pq,gxeb4rm,gxfm0h1,gxf5rja,gxfqei4,gxfsouq,gxf7tpk,gxf79iu,gxfmu5d,gxfc06w,gxf5ibe,gxftgtn,gxfjewa,gxfpr6d,gxf3r45,gxfo6m9,gxf7ytn,gxfegpb,gxf972s,gxfo52r,gxfi5g8,gxf6wws,gxffo1y,gxfqypd,gxf90rt,gxfinif,gxeh3qm,gxfgx81,gxf4mr9,gxf6wxj,gxfpqgk,gxfii4a,gxfny2j,gxfn3m1,gxfdrgg,gxfi5hf,gxfiog5,gxfn2h3,gxfra6g,gxfqc7v,gxf7gzy,gxf8o5v,gxfd26t,gxf79lj,gxf7fx5,gxf8uhm,gxfoopb,gxfqelf,gxezw4n,gxf8ui0,gxf8bjl,gxf67oz,gxeh3sk,gxfetfa,gxeuprd,gxf79mh,gxfbb0b,gxfpj0d,gxf5if3,gxfqem9,gxf7ma1,gxfrt6y,gxfr3wv,gxfk9e9,gxfr1vn,gxfmw7q,gxfonff,gxfr3xd,gxfnf6u,gxf6uyv,gxfii7g,gxfk9f1,gxfqxm6,gxfocbs,gxfp6eo,gxfg4xf,gxfsotw,gxflho9,gxfi5kw,gxf8o94,gxf8ukq,gxfayff,gxfny6k,gxf7sni,gxfs5w1,gxfnf82,gxfte51,gxflhp6,gxfcd0d,gxfdrkw,gxf7yzn,gxf73dy,gxfrwfw,gxfl52y,gxfhmnv,gxfnf9b diff --git a/tests/integration/utils.py b/tests/utils.py similarity index 100% rename from tests/integration/utils.py rename to tests/utils.py