From 8a95431553ac9d0d64bcc93befa667d88f9e52fc Mon Sep 17 00:00:00 2001 From: Mainloop agent <12104969+oldsj@users.noreply.github.com> Date: Fri, 23 Oct 2026 02:42:06 +0000 Subject: [PATCH 1/3] Make checkpoint forks first-class workspace sessions (#311) A fork of a workspace session now gets its own workspace row (manifest copied from the source), so GET/suspend/resume/idle-suspend/delete work on it like any other workspace. Delete goes through the ordinary reconciler-rule delete path and releases the forked kagent Session with no create ever sent. DELETE /checkpoints/{id} re-reads a checkpoint kagent answers NotFound for, so it answers 409 (naming the pinning fork session when known) instead of 200 while a fork still pins it. The fork's MCP credential gap (kagent's ForkSession has nothing to attach a credential reference to) is left as a documented, explicit limitation rather than a workaround; a separate kagent-side change adds the needed reference for a follow-up task to vendor. Co-Authored-By: Claude Sonnet 5 --- api/openapi.yaml | 4 +- docs/specs/sessions.md | 36 + docs/specs/warm-state.md | 37 +- docs/specs/workspaces.md | 30 + server/internal/api/api.gen.go | 1139 +++++++++--------- server/internal/db/dbq/checkpoints.sql.go | 28 + server/internal/db/queries/checkpoints.sql | 7 + server/internal/sessions/checkpoints.go | 69 +- server/internal/sessions/checkpoints_test.go | 172 +++ server/internal/workspaces/fork_test.go | 58 + 10 files changed, 998 insertions(+), 582 deletions(-) create mode 100644 server/internal/workspaces/fork_test.go diff --git a/api/openapi.yaml b/api/openapi.yaml index 7db85aa4..07fe26f4 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -3149,7 +3149,9 @@ paths: summary: Delete Checkpoint description: |- **Experimental, owner-only.** Delete a checkpoint, scoped to the owner's own session. One - that is already gone is not an error. See docs/specs/warm-state.md. + that is already gone is not an error. One a fork still pins answers 409, naming the + pinning fork session when it is known, rather than reporting success for a checkpoint that + still exists (issue #311). See docs/specs/warm-state.md. operationId: deleteCheckpoint parameters: - name: checkpoint_id diff --git a/docs/specs/sessions.md b/docs/specs/sessions.md index 6be9fcaa..2f1bb890 100644 --- a/docs/specs/sessions.md +++ b/docs/specs/sessions.md @@ -208,6 +208,42 @@ Existing sessions are not migrated, and there is no legacy workspace enrollment conversion. The task-session checks have fake runtime and PostgreSQL evidence only; there is no live native-agent, Kubernetes or retained-source handoff qualification in this slice. +## Forked sessions (issue #311) + +A session forked with `POST /checkpoints/{id}/fork` ([warm-state](warm-state.md#checkpoint-and-fork-api-implemented-experimental)) +always gets a Mainloop session row with `parent_session_id` set. If its source session is itself a +workspace (a git checkout, not every session has one — a plain `/agents` session or the main +thread does not), the fork also gets a workspace row, so it is a first-class workspace session +like any other: its manifest (repository, ref, branch, depth, agent kind, dev settings and +development environment) is copied from the source, and `GET /workspaces/{fork}` works, as do +suspend, resume, idle suspend and delete, through the same code paths as any workspace (see +[workspaces](workspaces.md#forked-workspaces-issue-311)). Which checkpoint and source workspace a +fork came from is not duplicated onto the new row: it is the existing `checkpoint_forks` row (keyed +by the fork's request id) together with the forked binding's `parent_session_id`, which already +name the checkpoint and the source session (and, since a workspace's row shares its session's id, +the source workspace). A fork of a non-workspace session gets no workspace row; there is no +manifest to copy and this change does not invent one. + +A fork's agent binding keeps `mcp_grant_kind` `none` and is issued no MCP credential, the same as +before this change: kagent's `ForkSession` carries no credential reference for Mainloop to attach +one to (`checkpoints.proto`'s `ForkSessionRequest`, and `sessions.proto`'s `Session` comment that +forks do not inherit credential bindings; see warm-state.md's measurement). This is why the fork's +MCP calls are still rejected (401 `AUTH_HEADER_REJECTED`) where the source session's succeeded, and +it is deliberate, not an oversight left over from the fork having no workspace row: giving the fork +a credential anyway, by some path other than the one every other session's credential is issued +through, would be a workaround this change does not take. The grant staying `none` is how that +state is recorded; it is the same field an ordinary ungranted `/agents` session already carries, +read here as "this session has no Mainloop credential yet" rather than "this session never asked +for one". A kagent-side change (`oldsj/kagent`, branch `mainloop-substrate-0-4`) adds credential +references to `ForkSessionRequest`; a follow-up Mainloop task vendors it and issues per-fork +credentials once it lands and the vendored pin is bumped. + +Tested against the fake kagent only (a fork of a workspace gets the workspace row with the copied +manifest; a fork of a plain session does not); not measured against a live kagent. See +[workspaces](workspaces.md#forked-workspaces-issue-311) for the delete behavior and +[checkpoints](warm-state.md#checkpoint-and-fork-api-implemented-experimental) for +`DELETE /checkpoints/{id}` now answering 409, not 200, while a fork still pins the checkpoint. + ## React status Labels: **implemented** means built in `web/` and covered by component or route tests against a fake backend. Nothing here is live-proven. diff --git a/docs/specs/warm-state.md b/docs/specs/warm-state.md index 0ee92927..c7f30ab9 100644 --- a/docs/specs/warm-state.md +++ b/docs/specs/warm-state.md @@ -139,10 +139,18 @@ measurement says otherwise. source session, and `parent_session_id` set to it. The response carries `requested_at`, `accepted_at` and `ready_at` (each set as the fork reaches that point; repeating the idempotent request_id reads them as they fill in), so time-to-running is `ready_at` minus `requested_at` once - both are set. -- `DELETE /checkpoints/{checkpoint_id}` deletes one; already-gone is not an error. Checkpoint - snapshot retention itself is tracked separately, in - [#302](https://github.com/oldsj/mainloop/issues/302). + both are set. If the source session is itself a workspace, the fork also gets its own workspace + row with the source's manifest copied, so it is managed like any other workspace; see + [sessions](sessions.md#forked-sessions-issue-311) and + [workspaces](workspaces.md#forked-workspaces-issue-311). +- `DELETE /checkpoints/{checkpoint_id}` deletes one; already-gone is not an error. kagent's own + delete skips a checkpoint a fork still pins and answers NotFound exactly as it does for one that + is genuinely gone ([#311](https://github.com/oldsj/mainloop/issues/311)), so after that answer + this route re-reads the checkpoint before telling the caller it is gone: if it is still there, the + response is 409, naming the pinning fork session when Mainloop's own fork records know it + (`checkpoint is pinned by fork session `), or `checkpoint is pinned by a fork` otherwise. It + never answers 200 for a checkpoint that still exists. Checkpoint snapshot retention itself is + tracked separately, in [#302](https://github.com/oldsj/mainloop/issues/302). Follows the reconciler rule (AGENTS.md): both create-checkpoint and fork write a durable intent row (`session_checkpoints`, `checkpoint_forks`) keyed on the caller's `request_id` before calling kagent. @@ -406,10 +414,16 @@ version `c97e3803`. files, into `/data` with `cp -a` ran for about 30 min without finishing. - **Not measured:** `/data` small-file write throughput, and the restore time of a larger `/data` snapshot. -- Open, #311: the fork has no Mainloop workspace row. Its MCP calls were rejected (401 - `AUTH_HEADER_REJECTED`, where the source's succeeded). It can't be deleted through Mainloop. - `DELETE /checkpoints/{id}` answers 200 while kagent keeps the checkpoint, because the fork still - pins it. +- [#311](https://github.com/oldsj/mainloop/issues/311), fixed except for the credential: a fork + of a workspace now gets its own workspace row (manifest copied from the source), deleting or + archiving it deletes the forked kagent Session, and `DELETE /checkpoints/{id}` answers 409 + instead of 200 while a fork still pins the checkpoint. See + [sessions](sessions.md#forked-sessions-issue-311) and + [workspaces](workspaces.md#forked-workspaces-issue-311). Its MCP calls are still rejected (401 + `AUTH_HEADER_REJECTED`, where the source's succeeded): kagent's `ForkSession` carries no + credential reference to attach one to, so this is left as an explicit, documented gap rather + than a workaround. A kagent-side change (`oldsj/kagent`, branch `mainloop-substrate-0-4`) adds + one; a follow-up Mainloop task vendors it and issues per-fork credentials once it lands. - Related, Open: #309. A session whose stuck turn is stopped can't take another turn (its workspace preparation stays stale). Any fork or checkpoint run that needs a stopped turn hits it. @@ -430,9 +444,10 @@ The dev data so far adds no evidence for seed fork, and the ≈ 52 s dev session to measure dev's time to running separately once workspaces prepare. The dev data now points the other way for builds: with caches under `/data`, a fork carries a warm build cache (18.9 s first build against 1 m 49.7 s cold), as well as the checkout and conversation. That makes per-project -seed forks a candidate to replace the cache image, pending #311 (fork binding and cleanup), #299 -(the 15–30 min checkpoint window), production harnesses snapshotting `Data` instead of `Full`, -and a measurement of `/data` I/O and snapshot restore at realistic sizes. +seed forks a candidate to replace the cache image, pending #311's remaining credential gap (the +fork binding and cleanup are now fixed; see above), #299 (the 15–30 min checkpoint window), +production harnesses snapshotting `Data` instead of `Full`, and a measurement of `/data` I/O and +snapshot restore at realistic sizes. Two Mainloop bugs surfaced by this measurement, filed as [#299](https://github.com/oldsj/mainloop/issues/299): the stored-409 replay for kagent's retryable diff --git a/docs/specs/workspaces.md b/docs/specs/workspaces.md index a39718bb..e8bf950b 100644 --- a/docs/specs/workspaces.md +++ b/docs/specs/workspaces.md @@ -679,3 +679,33 @@ The guard denies new preview admissions after draining; it does not terminate al connections. Write-enabled handoff remains unqualified until retained-source isolation and preview fencing are proven by the handoff/runtime slices. Superseded history cannot use the ordinary immediate-delete archive path; its retention is a separate slice. + +## Forked workspaces (issue #311) + +A checkpoint fork ([warm-state](warm-state.md#checkpoint-and-fork-api-implemented-experimental), +`POST /checkpoints/{id}/fork`) of a session that is itself a workspace gets its own workspace row +in the same transaction as its session and agent binding +(`server/internal/sessions/checkpoints.go`'s `commitFork`): the manifest (repository, ref, branch, +depth, agent kind, dev settings and development environment) is copied from the source workspace's +row, and the Agent is the one the forked kagent Session actually reports, falling back to the +source's resolved Agent if kagent names none. Unlike an ordinary workspace, whose binding gets its +kagent Session id only once its first `CreateSession` reply lands, the forked binding already has +it (kagent's `ForkSession` returned it) at the moment the workspace row is written, so this +workspace is created with no `workspace_ops` create operation: there is nothing to retry and +nothing to replay. See [sessions](sessions.md#forked-sessions-issue-311) for what is deliberately +not copied (an MCP credential) and why. + +Because the row is ordinary once written — a `workspaces` row joined to an `agent_bindings` row +that already names a kagent Session — every lifecycle path above applies unchanged: `GET +/workspaces/{id}`, suspend, resume, idle suspend, and delete. In particular, deleting or archiving +a fork's workspace goes through the same reconciler-rule delete op as any other workspace (a +durable `workspace_ops` intent row, written before any kagent call): `doDelete` finds the Session +already bound and calls kagent's `DeleteSession` directly, with no create to replay first, which +releases kagent's `pinned_checkpoint_id` on the checkpoint the fork came from. A fork of a session +that is not a workspace (a plain `/agents` session, or the main thread) gets no workspace row: +there is no manifest to copy, and nothing in this change invents one. + +Tested against the fake kagent only: a fork of a workspace gets the workspace row with the copied +manifest and no create operation, and deleting it calls kagent's `DeleteSession` and removes the +rows. Not measured against a live kagent; the owner verifies this on `mainloop-dev` separately +(see warm-state.md's live fork measurement). diff --git a/server/internal/api/api.gen.go b/server/internal/api/api.gen.go index c8de7324..ba33cfe1 100644 --- a/server/internal/api/api.gen.go +++ b/server/internal/api/api.gen.go @@ -21817,575 +21817,576 @@ func (sh *strictHandler) SuspendWorkspace(w http.ResponseWriter, r *http.Request // const string: with thousands of chunks the chained `+` fold is several // times slower for the Go compiler than parsing a slice literal. var swaggerSpec = []string{ - "7P37chs50i+KvgqCZ0W03R9FyW7b0y3HiW9pbHe31rjb+iz1TJw19iKhKpDEpyJQA6Akc3p8Yj/NfrD9", - "JDuQuBRQhSoWKcmXHs4f0xarCtfMRCIvv/x9lPFVyRlhSo6Ofx/JbElWGP55kil6TdX6VJGV/rsUvCRC", - "UQJPM84UYUr/U1FVkNHx6IX9aTxS61L/IJWgbDH6OB5lgmBF8imGD+ZcrPS/RjlW5EDRFRmN61bMq+gk", - "2VBO5YpKSS/1u7+PciIzQUtFORsdjy5ERdDNkjCklgTxG0YEWuE1sh8htaQSCX6DHmCGKCsrhRhXNCPo", - "hqolYhxJJapMVYLkSJB/VESqhxN0sSRIEnFNBMpJRnMin6OsoHrJUM51Eyjj5Ro6FVVBJsFsXgbj9dO5", - "5LwgmOn5LAWZ64lgtn4zHx3//ffWlP0vrCqK0cf3dds/628/jkc0D3fhNE+t2z8qUpEpVWQ1pfm2HTZW", - "eUkQNId0c+iSLCnL/dqOEZ0jzNYTdIalRFQhxdHM7sB/6c9eUrxgXCqazcKVgmdIExs6zUcf/YN6Zhfw", - "39bkPo5Heq+oIPno+O96Ndy3Y0+lEQXaVW8uSkxcwTpHjOC755f/TTKlB3oir36TRJwweUMErG2eU71Y", - "uDgLeGaOC0nGDTbC/iM9DPhphT+8JmyhlqPj7x/98DixmSv84dS8/ejoKBinact/gIXA69b62B7D+UXj", - "757gW8MR3TNUompNkOaNOT0+evL9eLSizP3waLyBdhmRijSI9n8A34z+P4e1+Dq0suvwV3j/59OL127E", - "baI2LCH1HGS0+n0N6yb/y36V2IcVZe7PiKxtL819cX+DLNXLOsLyalpJIqZW9gTccaFf3UT6yrwEtPyP", - "oF+7gO0tf1v307nnsuRMkp3IevjKxiQ4cGlPbCfthb0DouvZG7sit9gctzypHalbb22JUoTpDUifyO4o", - "iY6HxMyGHBdXlMFbhFUrEBplKfg1LgLCGo1HcMJO9ZkozQ+l4JcFWYXz+gtlyR4YITmJRvKr+aX38Bou", - "BOA4gYVKMr8gWHI2zXie0CNeFFyCBqDfQXMukCAZZxktKNavIC7QiogFQW5dEHZ78xzhS0mYgs+4WhKB", - "JK9ERqQ+7Nx6xu2NxiNRMUVXZCoVL6cVE0Ty4hpWAzqaBhsgidTLPS04cK5UuChIHrRR0BVVsAfNhXSf", - "0jxmzdaLbk/OzQfoNE/KL80U26sTnm2wvLqDs/7KUpj9gjkysod8OOd6yBFRhWwY8VgfE54zXMolVynV", - "uDKKcU7muCrU6Dg4pF/AQ98wZYosjMjzuzFMYkYDDbbMyMn2Ztl1GN6D3fsEOchNOga1Y8jsZH3fqZX2", - "C5lY7Re4KMKF3uYIAo4haeqsNfBu8jxxDXwcj7BYVCu9OtMllkvYcs3xgo2OR//n70cHP+CD+fvfnz35", - "+D+CY+HEfYR+1h+lrkW4KFoMtOnYGsxfevEsf2WczemiEkbcDBaiF2RVFliRX7QMehG18XHc/+lfiaBz", - "SvLXBM/bX3YOufHmqCB4volQdRenOWGKqrXRHcpSr82nmOaFqKQi+QXnxS+227751e+4UU7JNc0Jy8gO", - "wzUtvHINJA86c3xckfXw9mEZ3pKM0FL9hazT7SrOiynDK3JPxKtXFP2q228KFyCJFkvWzBSObVyLgSYT", - "1HSS2Itw3Roc1S+uSnxJC6rWb4msim1FVuY/13+ltdW6i6R5hChMi10P5Jfm64/jkVuIacs8set+OipF", - "b43RQma8JNEhOarYtRUagaY0px9UJchoPCrotf5P8FbQ/Dk0l1J5FFZkkwSpF/UcXm+SXBYuumnRzaCx", - "Vn4L3qe2zFJFL+WcuwG7FfD0W2KhKKiAFZNVWXKh4PeKXTF+w9JdntvRthbmxRKr0xVekN/KguO8rQXb", - "yyFa8ZwUoM5W8CZlC4QZovpbbdzBSuFsqf+llgQx8kGhFabsIFtihVZESrwAk1hM6zlWuN3nn7Ekz54c", - "EKYV89z2cblWRnv2dsPLtZmTo1vdVspOQnKKp+4m17ZiQfPfSPTL6S+vkH5tgk6YWgpe0kz/bMYu0cnZ", - "KcJZRkqlbYhEEjTnlUBmOJFeDy0eliBUzL//uyT1HzfksvR/LOg83LJf9GDRoKtkMK+xWchw6xv7miK2", - "+JXwjt8kAfMkoAHMLBmQHMEOw2Ta+0vz9Jr7j93i03xsSYjkQE6OZtA1xUgP1RLiBL7QenxoNkzfX+Od", - "H7LE45Gk/yRToLXwm3P6T4L+DL+2lfbUdSTanKDN7i3qu/PrVy0dwhftRT1xrBgv4ufnviF2hu33aeOS", - "p/ghWsGOVQ6sm5vkoCTMSMHuBc64PqYkqBq3tri/+kCl0h2GraLTl6NIcQ6egM7v2aU9pdOXEvG52WBZ", - "syR4Qc7enF+gQ00+h/b5A6loUaCKOQp72BT7VLqVGCOqzSM5EcZvYn8GN8wlQWRVqrVx0WCFCoKlQpxZ", - "SYyoRAt6TZhezs22CdjNDsuE7bY9c21jc4MahcLX/7JB8pr3GvTVY0c1j7cQsEaoMkUEzvRbg2iriwyS", - "KqJWpMR6audyCwPOS9uUOykt4QWLP/TCYT5IXjRKw2yRqmi1ZzeOM/tKysEmS3zDSD6tzUC7zvbctIRq", - "m5jTLysZjW7Er0ZNFp6BuSmfHYMpUWhuyyuBL4u1c6BhhnhJGFKVYGOEWY7sTmlJzBBVUns04THiWpFW", - "S2yYh7BcPkczfjU7RjhfUaVIjuBZRkLlBIZlxjF6v4nSm0RWb2tyTet9SlOYX6gW5/SdfSS7Kjll296j", - "lgTn08A42dZCFBErynCB9Fugt2a+M3SDJVL4CmTUpOdka/7sbsM9Ztf0aK7wgjDlCesB4wrG9AumrOC8", - "RLYBRPOHzcFekoKzhUSKT3a//vjm0tcfs3/hZkcrbGfuOnvfu5XGvb/RlZjcV+sWS67jaU5WJVeEZWt0", - "RdYoW3JJGLo0bnltGyDiORKkJFhZr7QgSpjHEq/CRY20naqi+cZzIRhZ//R/5OJqt8nPBZHLaciWKZEY", - "L8pfCClhgnMurkiOrIfgG4luuLiSJc4ISJpMH+sSXVYKSYWF8vEQJ49P0JJKxcUaXmQcMazoNUGGZMPh", - "TNCPegzoge7QjushuiKklGYMVVFEH6CqdLfGeO3bUvxedp4LVPKiqClAr9KAvQ/cFQ1e1j/DIR6sueWb", - "525JNKuidyNNCFoHe1cdHX2XGRcRgnbhF/JuNLlrqtvNkwv3Xh+6Ux+c6SCeLTXbv2lN0Ii/byTSw3RC", - "EIx1YkXycC3twwmYtP3spl3ymNxM+0TvK1BGNUsU6TFQGQzjQbASSBL1MClvBcH5+h7Xqs3McFzxSwhQ", - "ytHbVycv/3/HSD84UPxAVIzpiwOVyI0MrSirpAtvgulM0K9VUdiVcE15ltFd2rcN7+AcUaNd6P/OaVFI", - "RM2mhK22F9zOgEqYgr77M0XsgevUooj/eparwQqNvW6SR2Nk44isg13rZyNvmoun5WkneJOIa5oRBCei", - "sZsEMm5sFlFrSaF+BiFKRoWCAemVwNT4dnNSEPusYrIkWcsC2hxmyuSnr/U/X1ycvRKCb45UamiwvxvL", - "5jEyDX6cmVMC9FbThp7uZUHQTNsPZqmLS8rbfm4+WuFsSRlB+iW7YoLMK0lyY05US1g0bQ2lORFI3lCV", - "LRG86G6Z7oNLkuFKEnO1lMiqpt41z5n1zGvuLmim5ATNLiu5nh0Dtev+0BJLo5DfgKSGixlb6FvykhYk", - "4gqB2QTNbC9aCXeDq/uG0zP8hhGSQ3icJEoVJEc2yuCaCFiOORVSTdCsYl4EzY6dppjxqsht4CE8rIdN", - "84KM4U9e1HcVWUk9EJKPkT2d3LgUFgui7MpAfy72ACZiT3sgzfpoMz1JVL88QTMY2rRi+BrTQs/Brqbt", - "4QRGri0FVErdMxcwAyD1kA30RkT3iWAJ4K8gOKLVZzLsofaKxJT3c7XC7EAPAJacaK4ITTr9Iicw9LdE", - "Bl+tqDqvViss1gmKNw/08Y9RBu+2mQVXammY1PuTzS+pCVq51BtY+7JDKgTX9Y3mkPFILnFkHl0mbX+V", - "KMK3fhPFxuWU0FJ9ycRutrkZdyXMWntLR7jEyT1girIKNE3vHd7SH8eZIh+cfjEwnOyF+ajD+kJY7m+0", - "Axt85T5JNLfAitzg9Rat/WS/SOouRp3cIsTB2Ua7Ahx8WFOkhg0c6lvzcWhw6bjhVrJhzRrYwzl8G5qv", - "Eh0EhoSBzbrApk0kv/B7Qeo9TizZOKTEMIapPffGLr6P6bLFD2m+adwwI29DfIMzh3LipI/i/RvRdYLY", - "j+mKSIVXZafKNyglIKXa/8boPyrSYy/vckeYhUxGcDXuelzhwise8IEx3/JViTO/OHLJi7xtaEbdYWAS", - "RBr9J8mn2hVZLZa39h+cvtRHTYGl9wghyrKiyo1pUdZC1PGFHwO6MGNw1s76SNt9OC/MEpHc9axHx4u8", - "tszL1ljW0bX7Nn2H1OuCDKOgQ318lXkn+b7Wy2heGE7Bv5V5DwVDXHGKjN9ACsvpS2NT0VpTQZALY9E6", - "o37+MOxH6vfzYW4z1637vN7eLipsckgjrSJYtvdp19QmgbOdpyTcS7iLOPLp95lsNIeG79ZSYXjkZO3P", - "aPL9xsjJLF4s33XHevaaz2Fr/uYMfbtZHY2C7cLBaxdHVuAq192G2SpHzQMx1CDwwT/f6/87OvhhevD+", - "2yhQUneCuiLFLwVm2TLuPvj4z+ZxUu0v1bIpxVf4A13pi8ajI5tYYP48Ct1apQoaDGRzTq437b1f75fk", - "Wn9SCq435BZ+pzPTgpXANiAruRRv0wH/gpR8187f6m8/fmyexS2qStDfS5sXYCMJt7Y7qq0VxpOsx++J", - "peSZibeP3XV/fz8extYupPWkbqkvGyvsr+2h1nbp4RIlCjwcmB7zAnpo98wrdckrlu+mMr+xX29Qmnml", - "iNg4q5RK+tHllWw3LHNS5j33Gth0qs8U7fpT5m4dxgo3s6/6c5UCytfhpi5BY9PXOq71xL5bp6c54l9D", - "xOuxmYNeCUaGBAQn2xyUceVff9+61N3XlTA84odth/tgw0zqo7CxIf3fx6tn3n1TqbK6641pND1wf+zg", - "4w1yPzZzO7PaXe+ZqLGL/s9RsBeOYZ1cSkuJhhCNIkFiWZ88DuaUUaO0zInwIe/bmGO0yWdqLVApUnxy", - "FJGisRGhDhtVidWyIWEeHT1+0iVhzrBadp2ukmoP6TamjfqjzU6+4NVgCewEok1or3ByI65fsWsqOFsR", - "pnZ1B9rjc6pV0dvF1ZzYJtFL0yT6q2nSKjy5n9XwgKLUSiSDi+a8KPjN9AYrHdc2VXgRmi1/hKfob+Yp", - "usDpEKMhgY4+NsQlO+KkDzA6+oacbcZxPG3ma5aCXFa0UFNqQx7rVZyCOjge6V3VYtftZBRND612auSN", - "5dpl08M1TV5OA/HlokuCqcZjSO7juJdWI7qKeChijjT76Jic1wTv4Es3k+yFwWgu9hIsI84cmHR007wg", - "U/09r9RUkoyzPAydDC4wBZZKn6rbDcGkShZWjKXaraPgfN6GIGQ09lPeIvLMttUxrcZo3nfv0BsgcCc3", - "dj1mdoIyGeqA+tvSxh+tWYaMrxccdDdLE6pCJbrBFEJ/TSBomzoILtRyyq9SjRNwcq5sFNlBTq6/kegS", - "Z1eE5UgQk0CCTBNrhOeKGPeeRjOZoBPjLDVRAT5IB5ydfWKwZVOlC4EV6R+ieUcHBMkqywjJSd4/Hqq6", - "BxI7G9oic8WvNobEWRo6h3fDODovYb170o849NeHOTktc1+Zb0lBG+PxIr3AJSj12eY6eObcrc0W/FJi", - "KUm41OFWdLlAAVNHd6bDWL4xoa32ZVRQRryfWjMOxKoriTioziZ8XEeewGJvdtTaAdaj6VuANcvOrGK4", - "RXDEGwhcYApTfVRjw9AZLymBIBd+DNEMTpFDsrpUghD0oBRkTj88RAVmuURYoZxIhSiTNA8ahKB6cNrz", - "HElSkExpRzUcdnKMyAdtywdn/pKggkrN1Vo51A76nAhkekkaRU0HST7Jk9kQf1sSQWyLdtjN4SYFlRkk", - "aVle4tbPWqMGD3m5Roxo/KUbQRWRmjYgIIZIvbBKYFro6csCy6VdDiL1E14eFOSaFCinAlZtPUaYrdVS", - "v04KCeEhGC0KfmnXM0d4gSmTCmFYQ5CYkiCthGzIS2jYWcz406SfoAWIi9I9OrqZC74aI0EKE4JhIyWt", - "PREJztPByY4+Ur67v1SXRDCil7DAl6SoiYmC+WW+dlRU8nyMyGQxQe9GuCz/v/4QscfHkPBEP5JxQGl+", - "XSyB9fDiBQSObMmJJ26FvpFIKryoY1yOfTz1gaPXOh0YPTAEhnU8G/H85pvS8qnetIfIdHqpW78BjtDy", - "CUKXRMWkj/bRchl4JCfXUxAKlSQQAXqpl0xLMRMEq4XzBJ0TgnKeyUNZkkwe5mYdJquUh9W0PO3n4V2U", - "FatSZKuUQ6o022CSe8ypg1ZYXBEBnFTc4LU0igIAqCywyAsi5XOE7S6Ao4ZXmr1MR26N0IJoEc+Ktcls", - "gEbGECKEIVSOESn1jlySbYLy3c1owGFv6A0uPYHe0rsOiXlxRpC8oqWFm5OKlJOuGyGY0NMSImBV/yaQ", - "lA5H0/lahtCowafRs0Tv6jbfjfwBuuRSBU3o64Rj8uusqKQiImzC/ZZk8KY7I2XcU1io9KK9rZhV6rRE", - "p2wxRpdkzgVx+t8E3cG6glaRHsCrDyUBv7PmPwKRZwea4O6m3zXLpnDq7uZdaCogiRNle8Vx7PfTYzU0", - "QtGIMjw3nASiFnso2D92CkJIclak6sxqA604QbcZimmjm0/H7QaR3flrIgTNiclRMO2kRnpVXRJzYqBz", - "kglieWpsQ1U9K90suSSIfNCXK83DBk5kYhuG+dn4RXPC9yyO1vYewBm8VKqUx4eHBc9woRn6+PsnT757", - "OEG/ahooCh3FLvUJp1uhbC4wgkblEgJFJVHN9rsGqDicZDp9307IhTL/9va1HqsiOB/rGNhsiVb4ili2", - "4HYZUcUYyYiUWKyTW+bEV0o92ayTmKMhkDJjFMjpMarPLjiCvSzQwhJRNq511cbpORl26QrEnweeqtkg", - "mN04cUBHMmKn61lwQrWDWfmNDc/PlvbmpF/+RkZaH89A3dFqc1lgymouHZtQ6hbXBrQNbUNGhokJoqrF", - "xUEcb7guronkfTianImU2cFks1kZihWbe9MU+k/6TUdm/3n2OU6d1gky8EQYIq17xUM/P96K+1I89mo+", - "50K91tfFlHAyaICULQ4IvIjgYjlBfwNRyOcWGQRrFRXuEDhTFchmPp8TIbV+7BhmZpqYQhNyVt9M9G1T", - "2+0PKEMvIMTGN2dbKTTE7orktFqN0ZIulmP0wfxnhT88hx7qFnhOPjQbgIgXfSK2WoIjWBlgA3NrNkci", - "2Jm+kb6hnBMJejm0qOc1e/L48SzkfdvJaDwq+I1FaKhWo/FI9zMajz7Y/67wh9D6Hm5BQlAElnnrI9oJ", - "Ew58wqELchenlW0JhQ6mERbZkioCCNJxy25h8Cp/9gTQq1bPnqSkYU+XYeM6LgpLMtWjIAyzrIWlZOyP", - "9ZbIqiwLg60UwCwlsIM0Cgg6q9tN4tY5eKGpJYrujehBcKhRitCZbSbBl0brmuZ04cLX/KoGPmC5xI+f", - "PjtuRSUMR8uDbtBL0w3Yv7ICa29NJYmI+90GIsE0grQz/97dmaRmkIYPMWCdDk/iEC8mZTn5cO87cap7", - "CTaixJnOe5qaDdkSwvDMfPwy+Da5dCUWhEUuwl3D9aChhhO7LLDS97XpCjM6J1Ld+yKe2R7RL7bHcEE9", - "c7ccxxBxU1ZyabBn7bE0hSMlcBqP4vhE21qnw1iQBZVq+7jxOlzCft+Kt9g1ptG2oLUSXNAcW894P2hf", - "jyj7q28FdYO8BV21HabWoQRL7XI7aDa138S5nkFv585b2la3zEtcOKIO+fuv7qEj1GH3n4aASU0p1XGb", - "5AKaGMchLpGM6eGc5sHQFNiN0zh5aKV2v32wpoRDWiqNUxpGV6hBQptJaaXXhKkXnDGwXG2bs5u5D2fH", - "JqMUzQVeaV0QEUDukUoQvGqbl+vMhnZuzcULdHr+5uD7Z0ePamsu09qgJGmfRJDg0E9kYUqCG8D7rlX5", - "mWChLgne1kUwW7oPZ8cIfMrGKvndEbJRBsG0TKIw0f3d7yo1VmLA/E/ZJf9gM0u2XQKqvz22VofZMSIU", - "5jmnpMi1Rs8tjBD4Wq2S2J5/UE+kvedMEJzXqVRRpH0bRy89xXNtb6gKsuMspf08mCjcFw0+HluQ5yYT", - "H+459l3YLLQgvm9tF6FKm8xIVumWDXmAo9W988o/ay+Sa3gQA4Qvd268TYj8JcDZ2mZRzNfHNrDT5Kub", - "3wy6FCSKT9CsjvycaZKAxG+qc6TBtVMWa20yGtcFd+DjUvC8yghAxUAe7APvqTehLdjcHQ3faVfrQ5Ou", - "TnN7iUZVgNGGqEKmWoIeEjidCqo/FQQSt2V4R22vfRzi3tZLeBEFdWApqVSYbULPH7CP9bvjUZyfyQuy", - "cWvPBF8IIuWue1va720KvnafWSwKyDl3sCDhtk/Qr+ABlQo22MACCUHhrm8EIKL5c2jPQJcRQwXIwAPq", - "d7VRmzNtS8RmY1rEZgy4hNmNMx2fKLTiUllUVWE51MhiVOox2XFiQYBw2huNdY2ehCPCQBJZdy5kQPoD", - "ENveL5bY/WoQT2T9MlCwXgrFeQGBKXKMpMUsMoSYYQYgR9rYfmNN1asgasqup1kqi8Ni8N2oDE8ftxzf", - "SDSnFkxDQXyCaSEd6xQTeAJuNeQlU6DKbD0wq+Es2YFkUxbrdFaidmK0l/TBzGzCDAFtPjxusHWUrlcP", - "CSvwScpwAXilMr7SZGTXDUzTUvFSyw7i/A/BLhiYqWALQpoH7GK7ITjIgZVuFjGM1Zvw7POC7UZwRTQr", - "dANEjEeS/COxXiInwszPErfOd2WO+l/YUmJXDqxL28aIBCL3h+ajZKrwhkA3hcUGKB6/4rBaTmqgS7LA", - "bIw26DAgjkmBS0lySIVFgAOKJeSmGueWmnTn7A8sQOFkob3paF2BfFCdcTVaIHE0xwKEkI5NyPlNIGQe", - "PUN/oX9+bna34GxBhDmAiGHJK1Ialp/pbqZKVCwD3UE/VKJKb3z8bjoYTssQmR53gZWBV+IFIJZJxzQG", - "DZIXEBdmMGFG463qd7jl07kocerYd0cbklG7DzFN52MndCNKG9fxu7BNraVx69B5BGr0hFDfK4ohmTbB", - "R+2s75mGTBiiBOr3vAKo25z4YfmUxx11UY+4F4wjPEsLOifZOit81FFSofGtDM5Dfe3abW1v3VZqL34S", - "mKndkoZLIgDkh7NQuaqkuQtrNSGyH9Vvb4zkrF8NGohGmpiJLttmUVm23LSXVJYFXiMLv2FkmqstmaNL", - "anGlAljjQB01CEkdV6dd84KDGJx29Y1hHwN+VmfZDp3FvSlve3M3TrPeamwbzrMd4B8+fuygB5ewdsrK", - "6rOnJn8VKZH3kgx5/2mQfqph4dQWAXRQCVTCMVVR5A4R4SVemJsGQ3S1qizOnW5Ty/iSSxdI+b/O3/yK", - "LnkOF4QMl6UBcH72xKgqGBVYLCB8iMBd2lognhz90BYsl1huyyTW5GkzXrb6MMMllMttQV4O+bYS0tJ4", - "j22osbBN7Sn4S98Y4b8Q2ZXOw/EvJx0wAwYdNtGXERW+t0EvXBK8/SGgP9ppx7zuGK+jtoebuGUIvJVu", - "MU1I7nOErfr89Ahu5KW9AQ3EQ/Fs5KrV1Vro06N2yAnTKmNNHtsecMBZ3SGqIZRw67Gddqi4hAs1Ngvl", - "AEZl2lBk8kwCEmu90ksS3TC/8fTq0bb6tFQV0Ilh8lHA6zH3en6Mlz8c6vsOMfnGQMaKurLzlidqnR/X", - "WigHR7tV0Gsadm5DnnX7G5+4Fw9j0zKc+9vtNkvg1267esSJtU9gkjT4y9wnDYA70PEdwBXXpRpsu87w", - "v6FoTuKj1ADH0Qp1bcGZvzptq9N9WegwFs/U14JrZx2GmKemCCzxhYUbtZ7DtjoDP25VLLkg+JrsuG7t", - "6o3JBXttukjC2XwxSDMlXvvY5j3SzGakmTO7Xh8jep6aUMvOG+qTox+ebRMK81vdNHprmt4EOeDQUNyG", - "NjjSU3wDESU5jcbFIxBRHULMl5jfqtB+tuQ0IzJeNc+BG5dvw5HREzdn+9VNVIWiZVzI+Rf3W8p78Y9g", - "pqEJ4tEPj7vYzy/OJlvRP+oX3dIEI2xsSrvVeEs03W+3HVgsZF8kUR/H/C/J2V9xUUUIgie6wcTwghrC", - "QxGKbV3g+zkLnFVqYCNpIJQUe9b1XV1pV70ijY2EjerYxL9ScrPtLV6LhAOo9Jk7LHSH4A5XcMBIIrm9", - "1VvUTCLH5oErQuJKNQDQoSvfay5bNZgnGP8hzRj9qMsxmCZddVGTOLogqmmX0FcxyhYJlyjoAvjS8mOL", - "+bLaJLpJyXTWU1dPuEPIDFGPXI1l396WYqeZvqZ13wOHCO/NKuMgWXeMzt6OUUkZI7lNWZVjVPKCZqao", - "jcMd0G5CyJ4JNsVsgvfL6Iwr53KkTBFRCqKMR5PPzWu+LjFaCKz/Y4DMqVpPGmB0m1Y9OCkaRsKhYcMx", - "KFeHobZSZLrhUqwEZrLUGQupAsMRpwebuEVlkzVStRcst+O2YSMQf6Mt6RkRClNmI06MXd2hgnCBdOOm", - "rsMNlWQSj9vjd2xlS9iklAxowiAWTAnTjWxx24/R2ZoTSezbOGT45NBrlm8Ny/F18l61Y8GQH7FUOjMM", - "vv+QEfgdrJzHqF1MpC2/PnnVBj3QOrLWT7lrVMPEXqO9j61q2wkfrD/QEgNKjRvy2pxavuXFt8tKlrSg", - "bOfN2YHlUud+0jDTXWrOrAa4bDfdwxRodR0CGJrR6oRpajzSrvgNb1eCubcrE5rX9/pv+hXzfvtedmWT", - "C4fdy5r9fxwPet/Pbtj74YDfx0v9lt9sa3FRiqzKnRygEIzWdVYFd/DNM/KrL0hG6LZmxqAyxO407idT", - "tzcOFyceWz2/DbS/rf2R+I+GmR7jrY8Uuccpk6MrXr/5ALQjqT/pnulbwgUlTA2DeWvnS6+qbGnjAF1A", - "qYOkoAqQNkg+NsUdXEST1lPe6ve05vgqp1HQjg8Wc+BqXj8xIDH+uY6CtZcFSXyfkEmvH2W8KAxSxYM5", - "ZVRC0nUlmIQISFM16aD+3oYkcgkBb2sfqkXVwwl6w/QMoVqFQZTTg5DVClL2/YikjcTD13rqz9EMfpwh", - "idcSLfVSYba2fWDhI/B08OMlQXNyA21hG1Ome/tGukYm6MRE2Gj9GlZMd2WVOyptHStY4wmsrfT1J906", - "GmCkB7xSHizBR6/YxHVJmKRwQdN3qIewUm7nKEMzPQI5gxqXFupHunjPCXrhq3bUS6x3zIToLLFgRMo6", - "8dUMy0R6rkkiHFVPk+RTmH8i4gsW3A3OUoZ2sOGcxHWxdTvP0ZGe4SPEmYtZTYLT63cTnQGNamL9m6DK", - "1MOU6QZghVKVF3C+8bOpIeEphKhN9VCSUrH+bNOdoO615g5bFc2uiv6wEaMJC8g4vDCE8s02wbcmrjen", - "+rqtr+2zcAtnBuWDIazLsy2IvcmZBAcH5N45fog1BgL2lUZhtEstRQrdyBr4w8QCOGIzNAbB1wKzBYHx", - "6dcMGiQxMQEerqqEUu1AUzIk7Y4tM5umJdqUYFFQIrqI1UCygWiyog1bGA7MkP3WPKGsnqCrG2cDpx74", - "B7aCnVXmHsIihMIBZGa78rHhD35twLMwYuSm0ZSpXCvtM9uxDbRWMhqp5uRa6qSXaDDrPt/Emc3EHmh4", - "HIsIx3wNqurdKcfx3RzYd3Bq4rqVxjYUgMvGcoderMuCa3ywGi/zfb9yNcA42KE6uc77VmJgWdxGFSAL", - "SHaMZibedRbgn80spOrsOZrlWGHtcYfnukZ7UD/SPQvj8Bu3TftGRyTDNZXJoJifqHLgbAGqEWBBg34B", - "6bygz+gRkmsv3yoGOWdaJdFpqBuCt91+2uluAe3r59WzMdvfKOwNeFst1t+cE+AnxEKGTYUxonXgKi9w", - "Gfe6ER2y6/aye1ioPTC2nLyVBIkRWrm6bYM27Lxl203cCXa7P+0WCDoegSYwcBIX5t3wHNhiCfQhkboV", - "bYq3b0iyCGzKl+hyuzL2J4mdWE0B44AVLG2mKLmb985rsPEtZKL9KsieNfH0cKmAacEkTD4V/EtvznMk", - "+A1UhIZ3wq/dyc5BkOkvEl6O3c0ItwvB9lHUG/IEt6PRXTnCr+4XzEx92SV+QZtknz7Xbfc9FKx4uTVy", - "rK8RblLN+NxRsO37G+k9eaCPei21VY/ZqPL2M5sgabLcACcWlzijynifwBIvUFZguprUTbqLgRLUAFZm", - "mGUWkskOYuzKOiN7wzOYyIgquCtQV2Qao5IIqZVojgrO9XTCZjbxVDvah/MrmQagM1YCuiKynskSS+iW", - "5I2OkaTMgprCepsy8HYL0lq5uVZMzUTzbkD5qHO3lFjqMdhbg+JuuYIRaczgOpW47TJtlrff2kyYflZr", - "VP3qU8wCnjPCNlqF7s1mtVaum3P6Qx16EiJCjVCY4FO4hYxHkmgojtF4BN65KDYtS8dyWG//FWkW1Xn0", - "+PsNRQZPDv63TlWZHB+8/4//MWpEPfyFrNOdKbKwiDJuCowznzhBrOtllZX+33Uu0jQnrFmM3zWY6Iy7", - "uhR3Oj1f7aJrjol7GFQukKAc2EnZmSRxwd7YBnpKKaV9wk+3itZyMITlEst4tCbJEEKwjU00yiKD11Pc", - "pzcwK7CMrixwA6JsNB7JJSkKs7cpCtXsoKH4pNzoWvQk6wYfdd7c+LFjG7t89Q4F9NgYyKiXa73PaxvW", - "fYyn6QLXu5PiyeMT1FkCO/be3El/MO+Ozhy+VcaZVKNj2JDg0y7AKp5lldhUqcfxhX23o7ivBcQQU1Ly", - "bHlnkz6zzaJX0Gy6Y6+juun7sq1BM07v2r54++6jH1ba3Q0gwK8Kev/ucWd3jfqyrrdOqKvxyGisYU9u", - "yYy+MMnJ9SEX2ZJIZZj4wFg9Dq8fhcWqoZnejvTxbOEao1q0cTnasEi9+yIJAQBFsdpbbNGspgbfadQs", - "7ZUUlHqpS2GDb8ImGWbcoHFExbJXGibSvd7VYHuAOMelImLqUiqabfaM0Komwzzb7vZ+p8esvtqnT9gE", - "kE9AUOPQz9sQCQFRxJInXsLWDkW3piaveNIIFqEjliI8AzyqNax14/jxkRBdZ5C7E24F3WxcKuHhrLe1", - "IIoEPuD+ikrajFyJZvDzRp8TIFqWlZoqfkXYDl+bgkQ7fy6a7ush5rrwE2ijNDDidg2mC8GrcofBeENX", - "62WA8jIBlrW3K/GWLQxv9m7a1x686VOqOt/s8JwkP+/ov7HDzS0LSKd7KRMLMK7ptucmBQFD98ENEWyt", - "/aLDUr9JhY58MO6MgO+GGPNJcyUCMTnqXZi9sjpAWbWruFdW98rqXln92pTVSgw800FY7pXV2yiregUb", - "x88mZdX66Lb1EVg4PwOft1gIssCqxjv0Hn3BbxJ29fj8apGMa09PNmDuNiPdwuk1F/yfhKUzgvRUbvA6", - "ObZBh0xvNeuEyJ9TyE6owxi+CP/dIPSAzeh7denTYSLg3H5wGzdgIEH6OT7IdXW73igpO4D7Al4d4rRr", - "bXgkE2JZ4lYvzRSejPuV7/N6C7bRwY3x1f61AQk+YMrWQLIlLfR0lKCXVdNDEubvb7rStvuaC2owjra4", - "MDR7oEzX42kMSwlCpvbJNen47o97Zb7t3ffWtowGmwa304Ast7yqtoll4624MZ+QWFJ03c2Gvw1CqG4h", - "WFHZvAdNweU/isrU0GTdg7u9Q0dc4gcUc0lYuqRepi0Yx+vWPxwd/enRDz88fvrkT0+Ofvjh0bgfGquv", - "hkpZKXRh+upnu7vv/E2l4t7DIz51a3hbnwiJWwPWe3enivE5NNnlKYV07557+Dk836xTm7cuLZ2GHBRM", - "KVicjVyZsrQYBuvnv72tZbOtpXLruDe27I0te2PLV2hs+USmE5/aOzhj9g9nbqlk6hDaYHAZhL4Sn0FL", - "XgkZscP3f3p2tAkVvyfTVG+DImwHfDjYITnN8brjBuChXzrfSaa5mrdbn6cUah0mvW1wfzMI/btkHL5U", - "uCi60xVfkoJeE+FzUKHef47sV+gB4zZKVsPBU7VGJZTOWBIqEC4KfoNZRh56FHv4zmLZoxOTMSMJU88R", - "tlgeUARcJ9vqL4RNX5GD4Ubh6q87GZCWLBUvk9l7YSSwTY6VCq9JroFITJAvyf1MXU1vXVobkH92xOwP", - "gpc3j71isipNfmxEF/7Sg7Mlgch/nKkaNu4GU1M9TddZc2qPDQ/tu9qloMKebMhoAJp1qzy2DB3fhOs5", - "hNyZYoAaFuv494/jUQQcuOUN0wC3t0xsmzCrBgcx/tl0YKs/2mTELVG6zEddujLLS06Z2qLBV+6TRHOB", - "5Xdgaz95q2Gv1fcuQBUtQGiMUTSw4TPzMbIM3dGFa3qJJejhoZLQrMDpr6ymwZ/1J7uoyH2jHqYEp69n", - "fe12Xr4abFubhElNNEn9ICDt0O4bmJcT29dY8HHIj+8jyM+awRPyQAf5nwVXGS/33FUGRFzYYvRFYkXD", - "5z9TqbhYv2K2bmksQYzuvzM8TnDPhIbCnW66JzbexxqbFyh+7VF2LEY02Q1LfcrmPIWLJPUApuHQezHB", - "w63QAm0+JxmcQekKFVu0tQlaQKfmuE7QDUBa2HT187pwhz/jPdAALQhinBFEJeT/E4+JlTo/vhsGhOaF", - "s0OHWpqd2A1Lt3NLQ1Ap20Fbn7hfmhbEmK8sHqGfnD2ga7lav5ZKwYlHV9+E+wRlO2OZcUBSs2pHjaoM", - "iUKdMVHV5hyABnp4gyeSZD6u06LbO1CnZohoYRyZdPAz8OgGPj4nxU5Q2btyuCCw4lO7tgkaaPja8xVV", - "CKO5IHLpOJTa88AkrCO7c0hhsSAWWEbn2QeLNZug0wUDp70HBzSwLlzQBVTaywTByoBVCJxBC7YBm4fm", - "aRNmgH40MxhvQjLyK9WxS/UOdGzVxVITZFrghjXrbsGrL4JmLKeueB5D+PKcpJFeXc3FYWL6V3jfsipM", - "aosKRUMpraPd1BmwwpQd+INAMyGxwj5AnNEvIQX7gMgHKpUR/rcXkrF0VLy0yP/bS/0L/e1ryiK44AvT", - "4Ib72cpsbVOliwjLb3RkU7IDblB2QLApkiZiQRzagkU3PQMc1i1FkGm5Fucu+sCAum52q8LT9wNGqCBl", - "/syltw0f4aLglx3wdGqZfJCYk+l9Cp8Mm9PYdDweNb7pmOFbj2naB5PYWN2+Ii/pzR03JzOwiWD1bwtc", - "3zO6j+PtPg1H9d6t6IvTXYNNblE/yTm1k5ZOc8x2l+EYjxaCEDbFSpuNS1fCPtkWNQfoVFZUkbrJBlCU", - "ILX5zuNy6YNU5CRHL07RHGdKQt1sZFtE0KKMSp0ma0BRps2lvL+oToml7J+yu4z2vGLdI0PLlwSRBXE1", - "naidxtgau9McV8fWJFahk8ODaksbYOvbZctMVczcQIs9mENhKFto6CHiQu+k2VX0IK4V9dBUh/6Jqp+r", - "S1NLXqJLsuYMqmtKou2l2pgqeLVYJuIj7TA7TOy4LKNgu7/7h2PDFe9jVPNE+a+C9LSvZ+rQ61PFsWRd", - "lHNzOQXnX44bitfLFyqrE7KpoST92lRUBrN5taIqzu+HWwW8lLTPljqkgFdyGs6oY8h/d98Fa9iHR5Am", - "t/oUd1PBleIBEE2kKARfpIww9WNTanVbV40Dugmdwwnv6Sv7XtsnG9AEwGL7k2/AQeEOlaaiFbYzbo8x", - "vTx2/v2r7hxrzcr3Ow48nvOmRYRPkfm2dyFrDUBrKA1Nd3T1vTz89tvReDRZULWsLs0f3357uKILI/2k", - "/+mlBo8TmrS/HYUq8gY3RW1GM+NAP8E4Eki18UgTnv/H43rsjzub7l2ONix8l0EEYDslemXf3HjpbFBa", - "cjPHbfz35v50r0OaVIEKuwjVViD4C9lWPaLsmmfmJrKT+f/Uf7/BA1AQPJ/GbqGBXWgrNQr8PV2N38oh", - "AJ0M8wp4lImAYEcri4czseRQFb581FTjbXnv4ASCVjwtbvthC43kU/iH4oKPQx1D9qsh7pDAm9Gkk+7N", - "bZZqTJNyuF9Nxgq4pouxhl46Yi3k1BejdUNEpVHeYSAGvEotBbHVaqffOmUOLCBGw+fMf239417Vh48O", - "jAIMWqTcoOttFwMeFEDD0rYwvA5p4+77cXjxPWcc3hS6/4kr8NItDGXxVTXZXqQkb7cxd1xel3zIiChV", - "K7jvaENl37os7+7D31CyF/JY/BVxu25aWsV2n3/aasHWDDR1ZaiG05orc/WLaeGVayDdDYiZeFW7lHEt", - "fQa+qo1NcldSvIOP4SJGbiIB1aOmPk2VTQja2USVtbZfj7XvPjZgGq1LwHbEWoopq1aXROzyaX8d51o9", - "XWGVLcmW+Lt1fbBPhJjZLsgkh9LFs/bwgx2xO/zo/Ubo8Vr9j1WTYC3CLatBZ1NSuUteJo+BpICOxOg4", - "0AjCQ6jBh03O6uaQFIUkdAfPNS1ib0rqgSW16SghNVv1Q1PUkDbmSRdt3MpEpmxREFf5ClGGMAp9N22d", - "C2xjKdOt7QW5FxpRaOmYsYQDslk5QBCmojGh05ejbt9jqhNh8txwYtQvBDGfAuCowqtyNO5PyHhhWuvI", - "x0jN4TdG/1HVixwNPz1iQFlPhJSewu8QMQoVSRQ3RRVs02NE5wiztS5bUawRVCiRRJnSAuCpzKAEQl3n", - "bJDK+2KJld1dGEDoIjQjSltAvAe27Ta1nngLo6oHhTNV4aJYIxu8nkOpDCmpVJipeoaMKzAQu/YRhLMz", - "VaxtuUzFLV69wWD1xf0YqiTxRd6kwc1dElPHRX/hQHQx031cEpQTRcSKMuPA3xwZ1pvtwgvSzTPwtO5C", - "D9SUBTazDzt5y4s0To/PhGii2XJ0o4UYwtECTNDM3ctnEI0toSBIUDTDLJpeGbi76qhkssTFHD3AAHu7", - "ADa4FJTMxw7k2KCHP3yOZrqvmSuY4hqIqi0mtldO2qvgRhkF0nQkcSRLvrZc0Xa1a0EVCIjo/iy78uJM", - "FIKNaV+72IpkxPsaFSRfEKHRHCDgRK+yEwXSogjjiCH6yhjuEiVgiwRCdpw5S6bA7bu15pRw9JbMjZYM", - "c2kEUznK7gimCojVWYnsdm/OJPKIVPF6/6MiFcn/5QwI/5LGHfav3GUe/Mu52fJ/+Tqg/zI+tH8ZYOwi", - "ShfqQLDaEVmhHUDbNrr6hRx7YKw6HDbau7EjCb+W78NyyC3q7KThs9o3aHCUHTFvA2ii8zMKCmeSj4cK", - "nI4IUlLl2Ffk8mW3tCfQFcq1ZqMThsiqVGt0jYuKQEGUS5lkCgN9u3Xe4MnB/8YH/zw6+OF4Mm3mlmY9", - "WgTOFBfTatvu/s+7dx+Ojg7evfvwaP7u3Yc/zVtdcoF+oz2KS7fV+nZdG0Vmg017QZgDHL7j7n/yLXfa", - "ZDUFQbGJIPP7rro/s62jdt54FzxLE4965743RJoSVZWBzSDONpwfHfzQSiQ415+gl+5609GkxU6J0btL", - "Iq6phOhQSNwBtBQS6xym+TP7+Rbhqy2hlBY3Q6TTG8jn3KVI459tefXSl8LWVRn0MQyWaO1y+Ykotyeu", - "YPJzxFypNCKlK63wpjSdOls2FsRlnEG0igXl6Lg2fVBTHxIeHpYuTeeFfzjurrV+18TYnyMUeYJq3BlZ", - "kgxKsXvtCfIPoZKEjVtZEXcH1/9gnEVnVK9z5wvgfFvgZtPVqEWm1t9iI0hdM9N29Djg/kPIRJCp3PQK", - "1PHsuhXUFT9e59VgKXlGBwHbmKFbf+BJ/Z0b+ueRfU200QSpxVH2luhCFFJn+mEL98+doEk7U5TavFzr", - "azyg68bm9wnDULoNkYYhmW1ZYAlf67u1kYNOpxy7cqbuNo1yKktt8EILgVPKV7bERUHYgrTp45ZaiWu4", - "y5hT6FvjnGYtqVRnYHj13myW36SczCmjihxYxKMIvyduN22r+vTy1+R61EDFeHuRdOEtWz41iGY2tz3K", - "54FfUycPr6lzGiJMeDtZRZl69sTEtNnwnu+fPHn2pydPjv703Z+Ofnj69HEMQHEUnAR146gXjOLO1sDd", - "UbZuJVBZWu5912ZDVizDlU2uY59YCNl8iFiop7mdUHBht9razS+rOfINjZEgmpO0lgRoEuifRHAwntW4", - "HchjRrQFBbwV4S/84P6Xpodf4YMUAZjOZER5LcJ7/PS7J0ePvzs6+lPUwcGzx4++e/r0h2ffHx2Fh5Fp", - "caPXQ/oXzXz6Nu0isCR3bFnHqbvdpr2x/GAwE+qKWC69yWIhZKSuOa2NpgQJUhY4I6uuW3Xymns7Idd/", - "zTVnztTMI1KMzRN0Yp6kZFPfBfV2Y958QXXVhe6sy44CRM3M6mjKoWWiLhrUWNMWvXZQYCfFhhlXbbeE", - "S6jTAy5tWp0rvOit8rGR0z+nzJZTS9Ci/nnqgo89LcHnkMGRDOIAsxclssPzQG6IVOjxkbXLkhzVn+iL", - "YeA8iAE4TAHqAkuFqCIrZ9s2DT4c7E1JWOc+hrZaP/y2T4XM51yoqU4qFDTfIo7iFXz4mlyTYmBem7PY", - "H5o+ketzbJLb9BaHXphvJLKW3DDX0XSL3rjx3nt+sAuYDxjy+6MN6E3v/27MgdMGrFcXeNuK52RnU/wv", - "8LFrpWMnk9bKyfT48OD974/Gj4+OjO1nY6c9uwrd77apMIVoTxlXZNcF+VV/awCX7oYurMO4iYXgT+cp", - "jw1JWymA4TWtzkbuSkdPl5U8e3N+gQ7tROXh7/WUPx7aBhEuy4KaMvXg37XvGAkUZpMaSaswy3HBmfer", - "RhXvl9gc/nBLfpjIRe7Mkxe8MTFrGhzgjdwlw95+420At8mINXf8Bi7VFoFnAfzTEMayY/9GArzV2BgD", - "KWSBb4C4okoGAFc2d9gnmU98Xu/O3ib42MHbUTadF3SxVH3ZAnry6JShH82bKcoIUL5sG0fx94N06sDA", - "YlHhghPf+2nbosEtSRrsIKYjJ7BbIrd9nAbVsOO1irQKK+9aGlWoIaXUKCIVyX8+vXhtHS6bcurS9uM7", - "hH+S1WWsYNVsPhq3u/AcZj/r1MDuEFLIlBDbArHu9OK1K9sWFY6Hnt2fcUGyjfnttQs2Biqy38bLGJJF", - "a8cTZAFJCS8DVMxt/K7a3+CQum3ohSt+PEaU5QQso0xptdbp3sqio6HgHJRdztVWzt/RUdcedlfhjQtN", - "hIbCntbMN51QW3qqWzX41qzOgESNqNxA3ZMvtfq+kVHysoVRWu/uGc60hHpJsiLIjd4GAsBc9bjoDZ8d", - "cAz85BryGWXAIgwvYtwrDFGZuLyKURnMeyltmCicY4UBhasRPxvosXKJHz99dtwCQmuxu+vRNgvQaOn4", - "MrO0w2WD3YvzksBxmJQHZ67RRH8msDNWaGzOYod5YFDy47C0x51qlESRaboFj6JkQ3XpxoDngHv8F+21", - "ua+AGE92Zb0v9T4kgm1FPM4297QJtqPsyPsWUYRM3M3qQF7b8bg7fhv3Uu3nt//9Dw05/eA/j48f/Ocx", - "XuXPnvwLi5X+/6J4+PA/w0tr15lcF3RPypH0jfM/jv//PkJm8GbWqKeBoPHlJO6/d3sa+s4bNOVUy9Z6", - "JAbZpgHY3dTmGxJKRVhbIIM6PN7FISAlcKYxcC/XcOuuJBGJc/gaKyymldja5NAwFkPyo2kN/fb2dWib", - "tT+K4lMHS1uFc3opMDPg9XHS6GjciqmEx8h+EJrNzIM/+wc9yV23W0ktC1H4UziK+led4KUTXdNgEGCI", - "ObTE6D7/UV/9ujh4qVaFI4O4rYDCGjv7s1oVsK/bBao7Ah0QqK6todNKdtDLa33B1U+HEwx88pvsJJl7", - "gCTwNPdofDt4An+0VAC50MbjGVTwbBP9/U2bFuye697QDZZIEEC4i+JXvQ5lECBgRQFxLUWQb2v51KDK", - "LoLkJWFTKmUVgfnU1oCG6NA40jnSHyH4CJmPoogghk7h0Qv3qO0D1p2WYtsez96muzsTfX1pHu1kN8PB", - "XCxGjftAGu3fJ6s3OE4a+FDdnDS2Pst9oxAZvyNvvXG2uV7c0MfutKsFUSBHxiY8fhjUQyzvGnJ7HJ5S", - "0QnSEBBpFmnuaoK02qpszyn80gfLNw8PBfFBXr5RNucISuoA7kLAU+1z2A5xi+uG6eTsbVCSLzRJtCix", - "I4nG6RUD+nIBZ0xNDeDP8NG+gPc3DvUttI5e2NbbA3Zm7cEdW6tZeNk4d21ssMvUjOI3pzX/YERtGnrp", - "Qui7KOkVu6aCsxVh6ieBty5/ROrPG/fGoOGuyyMRECHYCLyUJqhSNHy6Z/XbaXCL4P6YuBNuEiyNiTSu", - "TMFQ22vcWsJBq70rrCzOMiKlDhvlV/2IOCfwJnpr30zZuG+zfXOuTfpT33v3QH6EN5FVYJMD2X7/2peZ", - "W1zPm3cqb0W4RT22248qHExaMBjqbNGuqMcVjKK1ZeMmMaXXtJfie7F57eunK21h3OgTSJK7VvlDktBK", - "3EZmho/aw47H0T3e+kBrHbD2gbY2Y61yWXhl813ialupJY/g6U/MLxtTeG+TnyunPqEw6PlU+szHJAvW", - "AAReLfb57e04NefA3JxJZl74PShRpdIO1fhK0bsAgbqfakhEkZ/J22HTZtJM5XeeNez2K1L5ItXOaprB", - "qrdJryapHrKzMQlngsyJ8CgiWyGOA1JAT7mW7UNFtjHA6t7r0gyBQB/mwOgX96nr7FFLWG72ycYHe71k", - "dQ+J7WtvzeZ9vHtUxqMtURm/HIJo70G97H0gj+klTa89vAGRc2/JfMtlT6B/Pvtuw8po6/WD/zy2/zx4", - "/637cZi9WncJGaL32K9pf6PwC95senhb69qz9r/4sLEtInwZQSZSC9d4B5Y8EJ/PiZBjOGVNPNc3BhdZ", - "32UxyxGuFHcpz+3T15D9wFCzDTbASzOzDthBeDwoVd+0lFjgX3gettFe3bM6tXGb64Let94K7Rtu3fHu", - "N/DF43QvY87uy7cMrsAnZmCJCeOCYkl6QP7vUnzV47G9ti/8GS4NIA0lO1YeeOFaWL8FsL+w3xdh64nO", - "w9TxaeNCko6Hqd/vTf9zFi4TInRfgbaav/kcmU6mhf5KjnVMn60WRFj8DFFpkuMnCdeH6Toc/E6RqskR", - "QkvyG0Tz5vjMk96B+ZjXnMqywOtp4jx53K34vDRfdTpGohXajQTjXWuGL782LbfJLwW8a2K3fAudgLvO", - "AXMXkcqn3XHKOy5ILHc/NoJ/U2thaz+WW5VSM4FzaEiVaFvWt106OUKavWrFp5rP0Yn9fNAxFNFpe2qd", - "cmfsDpT2sGvBXZNNQ3j6HWsycJPEW9IpcWC2cvXrE+S/KlIRB+rfCigzmQ0G9mdZrTBDBhQNAbzKFnBg", - "4My0Tw/BqBD7SvtBwRz8/vCiA68+KIGR+7QVA5laiU/p6iYfSiqIvEeXIDiPYPtsX6PoQqR/sR7AJVVF", - "A1RkFwvcz1QVIXpIv1MZRjYE+kyR1dT82i+jPB1f2CIuWsWamrj4Pii5MHw+Go82AKEL+6ADDCEBajsY", - "LnLTLp4JAgnKJPcgFMj2aHHdIvclPDA6J+XCwgwPWrAz98FHk0Z/j0QJu24c1Dg/xJlGx4C8q9BR/Vav", - "+Il1X+mJ5/flO3/r1jXk6noYtu9oLJLcToP62QpR21azO0ni4oL1WVanszeS7fSS2g/GieR3v4QjJ3XM", - "UeMArgbUI9w5oq+52gVIRA33RIRJfog4zgf+jWtLaMOkvNQaGDw8lLWRcKO1tNffHo1hqHO9IV3Ggbe9", - "Flm1ibQGl2tUtW0K34B/65OvFjVBYceAhiI2qZm4YYgNzpxg0+vzv085OAuESlNMmSfI3km0/QGUA2D2", - "GMFPWHVsSRdLSJwQK0iEL/hNckhn9VK09tS/9Dbgyz5eMzmn9dDayouLRtiyvJHDAPKft2NuUmsrOsdd", - "i6VYd3kbSI0NPh37YmpR260k9vtiXSYGpn+FpFjY2lgv9Aqh2+2QskfjUaDzecDo8chD7rqSpIyrEHWj", - "LDCbOmwX+4f9Ql8f/KM5Ifklzq6mOM8FkdI46HilNGSurBYL23lqQS4sqyYpzJ4CIZFtYVFa1VC7bln8", - "5kqHqrW5tCy/2lyrz8sF12cK+vetiQvbzb0YO2kTjtdNQ0z7SRtjSo56QaUiInClbjl0LLIlVSRTlWhm", - "MOr46YBq3d8QUR0O8yRsIm0iooy240n7VLCX/pu33leSBPq2zugbwJzOpwovBtS6zTJSKkRwttRJ6QhA", - "hA2yrWkGKbxA1okNuaXYZLC7JF/0KyG5RDh8fzJqhSr8zT69wIu0YWNlOWCXS4UHGN7OSNRlHDLgmNO6", - "kJrXrgS5rGihpma0gSLVfFDv87TpOjcYpagrU7yxe+mA93fvbt7r/5scvP/9aPzo8Z8+budICncjGewe", - "cV6br3rYj+S7MyCJv+xniuuwn9ib2Wu2q7/qCvcn0UxDH1pz0ud6FauC5G8rdnd+ssdPBzms/n5g/xW4", - "qx78ffK+94WH396/Jy3V79370ZJrv2GPjC3/lJXV1qT5gWQV8LOiK8IrNQ2AhbyE+OGoFVF8CqGiRBrV", - "x7nZwC6oyYqyxcTFcaEfjo7Qg0dP0YqyShFpq1paZ7U2lwMMNM2EhVCaROYlXpmU/Boz6fHj77770+Oj", - "756FoEmTI/2/qByhnRoAOPFKoRbCkQ3miALBu9J+jzaTV4krOaQQ+5l+zxw30u7ixOBdLmytUAmoB2tT", - "GEpx5LdJ6jPLIh3NlQVrN0Em4el0ZkbSEUC3KhNGvnMLv60bNDnNnJnzc04FbOeJQisuFfru8Z+efY8u", - "14rI58ivkQkql3oCAmcK3LHSNAcDFggXkiNbsFP/rFswXzUqgEIH3Rz57t35KLLyrso00Ktd24Q9ll6T", - "A0AtRZnQ0/xQCocqYYgULXklUI7XB3x+sOJMLZH5f/vTDSFXDyfoF6yJFskqW2oF4n/mmBZrAEIV5L8h", - "VqExtQQkUpPx077HFZn+k7MGjf528aJtEjn59QRMOuifBgRjRYxfnHzA2v+NXlVaAhy+5izXGNN/LjC7", - "QiuCmUS/Xbx4jl7zDBemZH/HFL4LrQ4rgv43Z4lRN1X0enqWBDuEXijMBsm9N5W6Y8H3mYTP7vJmK77/", - "Gjnt7rno9hRtXWIBYdcd+PX2uzTuIbleTrDkvYkVDPDwDjEfG7MSUgqJDzjY5uuQs+s83KRt8jQnq5Ir", - "wrI1uiJrC8dEJTJGvYlOi0MYrnYGG78kwj57jjASRIk1WlVSIUEqSRBtnjEJYNZG1u6QS31ku3T+Vrsw", - "XZvqEKJ7t9PLj52Emy/ucFeeg9qBaBu2boE7C0XOCc4LypI1W2zhe88+xmGBtFCl2hrnQZ303VTn/U02", - "uSdfut4SI7FwuLaI1O2M/uemKCj5oI132KGtY2T7eB7EjqglEVDhgXEWqXI/mndRXV4zxS/1efPbb6cv", - "r/8Euhe1oOx69gdc5ESQPGy6I1YCswp3+0Q38NC2K0SUDY033SIl6GJBxPMahQ2bk8NqoZGPEr6Iva5d", - "6u2FwXJblcrIkZqajEfOKtW6KsdkqzMv17Vqm9he7pkuMdyFOOS/B+K8e/9evbTB+kXrGi95OO16Avo4", - "bIOY7c4Seh+CukoOmi1k70uS4ZVjjoopWlj0MJzzUpFcI4rRbImWuCwJk7BnlMElUt4QUuqzgPJcs5qJ", - "gbHbC5dU36deAqom6C+kVP4uhQMoToksXLrhJRiBQTBejx2AbAyRiaSiRWEqKchJGuc9hese+Csrxsy/", - "ZJVlhDSg3DUl5FNeqQEI7nfkt3zjaticPD4Br+UE/VrviyTqeY2oa+6uXp7Fheq0O4+yishJyumZCj1q", - "cViLaVLCKtC8IgdgXsv8GCGtVVwoOj1bB0LHsd48sIee72fOPjz8dPdBFsOSSnsG2UYG80cD/JYIbdOQ", - "X6WuzKT4FWH9R8P2Eovl+hpdt+9hOHW/8LsDBTQUBgC0pa3f569L+l29rugCxtgiLju35lw27exZRwG0", - "8OWd1LXPoobXJHBnShzxrpkozOC305dGtDrbFhRbIGLtDFcINp4qpJ2Y6B8V111giU7nB79oi34Eo6vw", - "ItV3SilykwadaLPiA/QQX9Lu4Vj+1at89nAy2quhcHNIg8LWoujYpHCHeXAp2du4y9i9Ta9Rd8pbB0cN", - "E5GfVDLuBeJwgThEDl4YnXLXVN7BhoEJOkGClEYq1d8hQQC+tKFZUoVwAVET1laQ37dVoGMJG8uTWkxI", - "l74Tn+PWCft3mlp4p9n/95oq38qO78s3bO9PchNlnYkaQ6Hpo24hTDkArQTDASkqJkOs0mKN5oKvUAPp", - "evKOvWO2bYkyrK9Mx+/YATqnYOF/AUkGkfotAXJZkJJrYJqH+uUXPCcQjmhKUVrEF9g5mxT0AB4EH71j", - "f+ZqiRREQi3xNURUUKEBe6LewBeoxwUBTTWkmzn3oAImmDrggtNV6sDFKXyqbNTGMY2jOiJ6MPVe+HIO", - "1F3c4noMEATxcWwib67vFfwqHI62ZGQFgXpufqwFleo5uiKltQZUOVWuxJW94I4agT7X3r4HddgHI9L9", - "GUuCBJk/t1VLjVNJD0KQFVekxtBvg9bBt92IdeZ9ny21+33WdKEdneYEOAQOiLIx7CvgdQEFu+Didp2e", - "SEkXjOQI2oJ9oKygjCCbXoMeLMkHSCbDK/IwytjQncMoViuqoCb+rYbyI1zmTWvo/OeTqC/z4xKPPjZu", - "wXdPvNaS3MwqGWZovm8kxggdscl0WEVMRyHqtwP4MNG6ifW81R6+0k34utl0jgIDkT2ZoZP+JBQ3gQF5", - "KHeQPGnPJGhJc592yjxYYnpVafMaY0SNES8r+XCUKBDCCMnlNMCg64uucHWSuEH59BjfdcnTSDUmuUQN", - "rLrQa3rbUhzJtBtfwsKWjqecPRxtLNuxK/BxSxZBlaMA+y2igBgeucucfsqoolDZ2prUteVUYaGbDbhj", - "kCXdKRi3m1cbWzbG/wSoUovrKkxyddRfX8x7U7HbfG/z9XP1YdeIi69Tu+2K3Y+EPdeNJ4Xrud2oExVH", - "XA/AprNZMvqzGvnoFg4y0wgqOaAkKx4XdNFapTsmwvHX0HybU2X8jblNkp0pMzsVGWn4OXQTccEaqPTe", - "OCx8RZLOLB0DVnz60tS7kZQtCuLrxJPciLmHt0LIVHYd8ujk8mZ0eKev8EigrwcpOqHQbpiIArpvmdtD", - "nbmmsjpHwkuLBvJeqCHGimtd9SRQopxe54VBu25Oz43Oqsk7Jka0cxzcpAdnOrzvHtsLyG7bcWjeFB0T", - "4YxxNbXOqVnt4HGUvcS5N6w4J/zzunAPvOtuUrxSGV9FyTJS8bIE/SXoBkrXQgHxDXkiadFrngdBkhku", - "ChN4WjFjiM7dS65AUWoa4Tg9pYY+uTiZcFiWSl1UvmsPg8v0282pUlrEub0I7+GpLC9QGocbSX8xH8T1", - "KGwbnZCng4FO01WQ6jwemWDL5Nr0LKUPjGounrHn+ZugDSeyY/iirRLGcaCH8tzdqCGHxSrZ2rLTaZO4", - "39vNQH2x+0z+LGoijCdz9rAOpfE+VI0G/fcexAlO6A4lMy8Y0JbACN/JApIo9IALU/xwbKxID+toiW8g", - "aV1CXP9Bowpmm1PuGigoxqBprVob+SM5/e5lsgJt2Dppj4y/eyter1GnsA2N77arzRnWQR5jPKnGYAfM", - "6jbJm853MPT4nUE6SD47RoJkXOQkR3kl8GWxRpdkqY2omBkYelMbUBuKbT05kuucWqokmJP1Y8RZRszd", - "kjOCCMvlczTjV7NjhPMVVeAmVvBWeEzzK5NxW211JgcT7jmYwSTxytN306pfs4uFqmN5N+OA+kHGVkfB", - "6EZQ9Rm46a6quG5f5rKvBmIM95Pig2AnNuzX3QjAuExsgtvbq3hXxWsba92UFfBrxwptlhNngi8EkfLc", - "s/QWYqJOJo2kgFpSdqXvCsc6tAHqLuqjkfMCrYmaoJmmdfPcuAd0shOVaCH4DeQazfS7ms/NR1p518/t", - "3UA3gMMGQFron6Q/g+HiGYoFN6bReGR7t4UL9Q+mteRNw0M6NiooWMu9ntzYZwDNLmwv/8//9X/Pxmj2", - "1gwY/RnL5TFa6LWQCk0OJ5PJTC/J7G+mZxj2mlezpkP62dEmtrH37hovcsM+Q03I7Xa54xDoWJkTLa0P", - "wL0haxRsdwcL1gqwbkxy2KG2+0wWfMj864SZ5LEUhVbWl8ncpGUYM8L7QUEw1pZQWNBO03jPCtsSwvce", - "9ICyJZeEuWJZelV1xLSJg9AXWcVtBoR+LPFKcxgMLYqMr0yV/K1iGTbNfCddw9ylp/UJ3FGu3usNzqkI", - "nWrRrQoTMWZaAlMZ9R4SEwTPuIkDZo3y9In49zgAqHnFbRlv7DisAWNqIfLcHWC4BpJYhp4lP+8ygMDv", - "Js8g0EzbscZQepmAfa8gDo5V2pDjDaYOLzGnnE21ITFx/HQDKvkXeKnLI9+ZFa22IznrjdkRKImi6eZ2", - "5rUVvyIvja66vnttOiXQ0peCMG65c6BBdXa5JdLyOWZU0X+SHAE6mUBznNmD1Sjvpnaq1N3oEzkBhIhL", - "nFG1ni55kROxqbBmg8OC+tKDQ/mivdnMxHUX08tKroNhBb6/4CUlKpZhRfL0m4uCX+Ji6qeNrzEtXCX8", - "Tqeiez14KYRkr+RyCnZ+serqV7+z7SqdVXI5YIVM0/0Tb5Bnc1rjNh30LVV7Vzq2oFGBvLFQiaG7n7q5", - "BRZlO5auo2K6CozektujnAbzjfNypCcCouvN1baFs2scwhVhidIkt0JkSg1UJ33sUMuoVCSfNqBUht2I", - "/6YdbyXOSAytkoAawjZQZxoXRLgLYGIfAxRUO0gGOlGDtVJHI1EyT70JSAq82mId9MK/sF/5gOfEKtxZ", - "QgA0xMXUxsn15hIm8IyGp6WaftCfTT82diEzgSDTuOb6PfRu+kFBnfYUpHVPPZPuqJsIO5pb5GgucmrS", - "SUcN40CqGbgIT/OwrP4gaokLuicJxTS9zUytNztPwxnAdiXT1u5qr2xoTQC22RVXc2c9NuNpAJN6CsDd", - "AlOmOru934orMAz0oh6GAcBt5Tx7oR+T0XiE3RXAl26okQ0zCofuZVGDGS4xy/l8bsoScpbRguLaweFR", - "g6YVC1UC+1XjV3MRafzozIcFlzbGwF5VHP54QVc0CTrYV+7NJV0LziPSHEbubzmviS3lxXZF0aYGnC1k", - "d501TjOqgkCHuh4bZTA/WMHo5yURVDWQbV0nyGC0jTa4001jx86EXt8d/Q+1VcXSgNZMCp5dDbk7DsPc", - "HVwMDIJQ7o17TRiP4d07Kzu2Rb3lwcWq6lK3trJfSK91iM+l1SZW5rBI6TsJquwrahYF4fjNaEnzpDKQ", - "lofjtLoXof8CW47bQilx5tfrHehM7+Mc5FGHmnqyS+FNnzZy34qHz7+JNY/e9J1HW6bvxHeZgVJvRwCV", - "1sDHybVs7N1JZ1VJeCoU1faLnSzet9HenGfEa2+a9EpuCNwdayvM6Ny4Zyqmb7RzapjRMEUd/SaIDWOe", - "CpIRGocDdGFuGlNN7ZMbqKK5rzrVtHXBcb4JJ7rWuMzrif2RS/z46bPIW2h+GWSdj2Y3dm4Q6Vpww2xS", - "i6OHLnoxdLZL2NxUmJvbtnWy7jpLqCuX554vYfHlCw6aqTXUrO+vU90NcpY/d/HzrOa2JNnx46Mn39/i", - "1uc7QVEmfqoC1/Y1t+4QWKlUy0AOPRo/fh9Gc+mnKbl/z4YWormAZURv0LACbkN2KzBqPnsSHHS2M71R", - "qajF2wt7asLb2uS2BdizacIRkzsZ7pGCf7FduC6t48omBd61NLKhiy9JmNZ1X5Wy6hLFKcWnp1xxKUhO", - "MiIlF/doEfB91FaBO7Y29hsZTcj7PZKWSXFxhFUrL9oPsHvpddsK+lm3otvlRXRjThSUDL/n6QtkV27X", - "XW13B/hTfc8GWW8u0Z7465+8mzbXtyPz25ywDG7Vkc826aetL+NDIKMAdepeif/c9eDWw8/grgXOuW/Z", - "CputrTc9hps7swXcuCPz3lbcH8p2xSHMUEwXhFn9udFtKDCb8rGnF2gV/VS3mlTaa3OAL6QemR62rS8I", - "MsxKAqfs9Fkr2pNvwIFF1oloc0InXFO3bR0cDVZqKjyRCB43kPlDZaKlzDY0gyYDNfOn2md6Sxw3L0j2", - "AtRxP3phHbc/g0d322uSvcR3eUA3+2w2kf3H8WhJiqbpJXEAbg/uGVlJ+8D2uo2ZW3UWWG822P7aZr62", - "pSywgaVMZM1FGzf2qsuP+yJ0Qu7iPI9gmJ92SeJuYAh/vwlL/Xu07kdHVnK2sGu6bz5WK+qsBPD0ad3K", - "25RrtrE7gcs+YDO/cBsWdidAuX/D5TUNuwFvu9i7gGd7T30Urvrd90+6V/lePPlp6XFHzuPP5B2NL0Sf", - "zTsa3KLuwRQeHAzDCjt9dh9Yn/E+6WFq8mFnwpp++qqgC2qq32+rV4Txdl3wYifXta+4HUr3Fbu+d/Jo", - "N7Yy7KINdNvcna4N9NA2w8PP9HdI8EoRBKH56JLn62M0+z0nCtPiGP1uhjNGk8nk48fZBL3FVJpob9+n", - "K8YoFReJzBzT1CbTvG/tpXm9uUS2lfd9k3/pexpeQhNWwMzd+iwmaGYmPQPU6+IGryUqTfD6cyQ5xPPr", - "5xoSO0dmYAiqbMj27EG10ypiIli8EbIJ9YaOAZBOIn05ADBSSDEwL0SR8xsPqPiqkIj0NREZg0Y16VAm", - "HNcmgfdXOFtSRiC1Ny6CIxUuiHFOW0V3kjaUZdyFew9ZuSW/0ckXc0HiNdvkBPUMl6Ks05wwtb1QtPVz", - "28dV0rQXV4jvOK8Iy40Hc3iDr9wnieYWWJEbvN6itZ/sF6mtslE+sTlvYLtvzceoL1uxy4DU126nBalB", - "AQs/L1KvV2JG43BX6wE1RLUnmA6C8h7eHa/v96VoxGEMn8uLd1eet3sIIXDqEyR32ZNa0gXzesGQqIAC", - "S1XHy0+lImV8IbNqXRT6Ff4WGKKjPbLkHP3qYhpGvvyotl2bj4MfiKFmsSBqGti+7S+uznEYWFaHm1Us", - "I0JhGmksr7FU6IWbJDrXk0zXOvnUXrY7jpkVlGW0xMX0iqyjSmDuAfoLScvLfzOFt76/5XRh0zObt7SX", - "5sl4U0rHXdz9XItbhtO4RvvCagxf3be0tgV/Y6GdcG/9EcRJT40VaPK+1/oCumms9b0GygcR8vdYZiAI", - "WI0l2Tg2LjRY10d7dTt6muwVup4iO7dz6qSOxRQvpfZ8s5cmfaeuFbEOTe3s7csYrmmLm/VvTIkKYBXP", - "3hoIBsCE5ozoknnUbBSv00Qn6ALA8jMiSlNuydZ7BaMm+u3ixwNb9XUMUCz6Oa7LvaJLXrEc6+JIgP7N", - "mWYiKG3x62+vJ8hWidXPzn8+OXj89BmCuxXcL+e6hIG++etBAA4EZgq+dQcNAuxqteTCXqn6VNPtmGC4", - "ubz14VqRaWFfaGDkt+6q9bETGiqPDn7AB/P3vz97ksQCGdn9SNuZW2/Piamy3seqzW+WBOcOVzo1sidp", - "lJJRKaYdYTaJa7pD20oZO5MoKdPJwfv/OGz8nRzHNimqwUDGteegnklDNvilqfch3nS/q+Ewom3outSf", - "1WjEu4SaQlSIswnsEExjMOFOXCsRE+zSnvUg6fsTnYYUtUtjLyj6meDcI5HTaUKtcOCQKWgD63uvi3c1", - "wCTrfjoPdu/d913vMhMfmGr6ieMqp7evZhHW8ggrW4xHKyIWEEdRcomLW3Txi24IndmGotZvtTSmXb8u", - "5iC6+yigN7ZdGwNkaWTqjpUabCQVftrlsBmdmWbQiTudTvNUYGkpptGZvI17Lz76U1P8cMBXFKTV2soK", - "0+Vt2e9MROwXyflWe0Nig84E+tUXuy7FMG7mJdF/ZgU31ZOB5PI0I5+JbkYuxS6gkUHLFv4xuOHejvDP", - "6oZq8o9PyN3CI30LUVjZkuBC7SzX6+Cxn007LcdRfBy1BGdiKJ1CcNx9PjvA52kQNjYNjmdPVcFxEZ9F", - "sdBKCcjUHndIjFheNbT6s6jQQOrwf+vsdvvEsrv0ppt72d0HU9vbd19M9R2ktaUm0KCst7W9t4OuSgcV", - "uatVf9hGBHSR2IgvKrnD4o1H9XYtEl5XrrIzBoVqhG2lE18BZ4lQ2nqCT45uw4/GAmwTHe+Fd4JqDptG", - "3SjCMNhPtkugdWegY8Q3EbfVOZPc71m0RU36bPFY2QEpqp9aA9cX7Tgj13XRv2Hr/+q6uxggzyBgdJD5", - "7419t8Mj9nkAPu4HueEukwnMD+Cxl2p0DG0fW2vmaFxLz+YD37T+vh9nYGs8AU9EoeG0PsBi/ouxBlqZ", - "/yEJ2Y4bTPdbPacU1/2VkputEaM2QN8NCAYKIp4++vbXui5cA/+x0xsbXBlP7IASU8Q2J7nnrNw0Vp/W", - "HPbom22finb/btOjaSHq0DXa7s8na9+ix9pa/jGRrZ6+f4dGto037vpteyMTt1kge5B8jK9oIrk8ykKi", - "bWozeSLaJDGzBLjeAx4uDQ6IQfhxBAvU4EhguRQ7klVZYEV+wWVJ2cJpX9tCTALo74GeZWUq986JAC2O", - "sqyocoMFj1lt/ncXNSQZLuWSJ4DqTKbQdJidPcrI7nH8bpea2peTquzK+SKWQ2OI7HemIOVGFSnqJRj/", - "uLE+79s9NPe0b/uJWJAonX1LCnjDiIcSPRDkmpIbU5FOmavjyozFoI5CWcwcgdHajeDQzSxFCKsSoHRx", - "QbHcKvrNfIhO4MP7j4DjYSSWO/5XmLKC83JiTRRVUUydiqsr8npTxOT6UaQebPlhS4TeL/1bKvWDCKbc", - "DnGggnjjajJe+564ySLCh7uxYS2jYm68uB2DRnQbBQNaoPrWIoY0lGLpNp+muJrz4iTYlm30LPiMRDUf", - "TtxvqY3bKn6yK3TGHlrTVBBTaPF59MPj7WKFbMOoI0ye1rFPsX0gWsENK7xTSte/8zonRrLj0m+E5jeS", - "qBFAT5nqS1l7cvTDs3o4P3eIembinQb7gH6F938+vXjtBp3M89JyYTgCtG4OpFQbAHpFmfszXtukvtq8", - "sXJe1BZyUdcc6b2hNiWjfcn2uTQLadetY8N7ypvEr+1WDdF+PnyBw06HLvKJ76W90E4zmtq477777DZh", - "JSv8IfwYBte64PYKj+heY9U3mz2Q2o1NFFPX8duBZOp96iST7jqBqfduIaJ3pRYPyLynmU9MM4kV24mM", - "Spq9pmxbGdNZy8aFs7QrApeEIfvUllmTLgMOMkGhhk5vLJrBB5gWdrj9C2YV1fCbenTJ+CYTd6hXzl4p", - "t7wcviUKU0ZylBN9xRBwC6SrVWXSuiwEooSKaUoXwiFzLghyqrW7PMr91fB+r4akxNqsG0LdDZz5mf22", - "FwTvLu+eK67I1NSa2jI1DD5FxmLVE8t/h1fbe76BBjfO9hYmbqGtxbvVxbQtG1ISpBK6flBRbFvMIigm", - "aWrCLbkkkNCKllgiudS1JXVYsQ1YAclScLaAQGRs6k/iouA3WFeVRKcKrfAaSUWLwtaENkWkmQ6ohnbB", - "U2IKBkpE1QT9ytVSi2YqobAdXpP8WKcmlzqG2RWtCovsQrkuCIZuCywIS3ejtT64dmUs/VY4ml8suyOJ", - "b8a6W1+y26wKlsFC0TlinJGoNlhvxLAWJlNToz9VQpioJRHNKsK+JN83MqzxP0lyQFwuqT3d3IVVQk38", - "ShJf6+uh23E9TSqRRYGfbAZ+az82n24VS510bQ7A+gHNxqGqd++w2VxbbSyqjagFgqZrAyuF1kSN0c2S", - "Zksge71Klshr2k6sfG+9qajyv/fthbQwblNrtIyNeaZUB+MIfNUAH92ilBzX85veYBOArXBiOU8AXRwR", - "nC2h4jddQSnfJUH2M6SwVqwkL64J1NW2S2iP0wn6lRCd/xC+Pwmk8I8wCPQ3+/QCLzavdWLg75t5Na8i", - "mLDW2v3VZHXowscOiKEhS3gWXU0GkKjXGUNX5mueNZQCf/dYycWgcse1cu91IT1mNEiD1/MwXbW9yc1F", - "SK2TTSI7kZJndJdE6DCAxPittlH6goAl+3FfDFW7METGmRK8mJYFZsTmt8Fm2CxyuMVQVrXOXt9zdx2I", - "guD5EEekTzE3EVZEbP1ROg22b+G682Ab9MHrrDIzNjuv9qqOU1v5Piq/0CKVHop6TfD8Nk6xDfeekogD", - "d6S6O9BzxIhWTF3JBC2rjKOvrUvECOADVz2A9d4Q6ndPnOAuc8OtKm0VM1Hvzqdn29bbsuxOSfTrui7d", - "N5ZGN8NG+JtJBIwN15cERQY0lODtNtP2cLjzp/Xb1fpiHqxekSO41iFrcQJO54wgA9hZa3YTZKLfbVLl", - "Ss/X/F2WBAvAnam1+zp+foxMpPwY6Qh4+PoSSwKlcG+IvsxwsSJ5W0jYNHsPw1VHOZms6UbRJYXTCfkj", - "3dvWerD+aPvUlY/jUbAySWU+Jzh31q6tGjbgSnL7HBKdjSmIXDIi5XRHvNGlvWFt/dFOa7hrok+UZJOS", - "SruloJlvTTjIdAV68ZaFZHdNqvno6DpZdHWH5J84wHqY/w8kjQuy7msyCHja/s659aY0jem2kXifwyjs", - "xijHsYBJMEnMc42coDADaGnunEGGD8icQIqkKMjtbZ3572VD6kLqE6BekustBf5Lcm2r20OJcn3+HNtL", - "OcTfgcQuje8B/fb2NViahL6WmhR6I9U50vW5Ea8SEW/6yVSfkLxS0xVllSJxwOJ3EVrrkydH6Spjp7qH", - "C9MO+sW2kyyPsHtIpF/Is0ZU5FkyJvJjIgdNb8GGLRrouNtv1F1uVGRcti8lZ/x+h03d3RYUZhnSKHAm", - "aLNDWQebUEPpffrocQdYwfv6n5PD6fHB+2//p6lDdfx3fDDXLzTjTk9XHWYR7cDSqlnDOVtQVn04fIBX", - "+bMn/8Ji9ezJw7C5M/dVqkVe0Eyj1NcoghHMxbPOSwd8iNpocq0Mg8byBpnomzT/xh5FLbpdCBalPZsU", - "SW2wk/n3XtM5ydZZQbb2MvicVn3dBtOsywc1ICtXkBZbuwKWRBBjjub6FqfBJErjA3A4MX2opbshD8DX", - "H8dJD8KdpdcDzpqDkbA59m5KgwWNg0iLcAC8mjWoCZfm7xOqw1Reh4UdYlLhfKqvThEmVf1bG7M9zNru", - "BMsO+uyDV7PjmAYJzk5L8T+tqJT6HrwiCudY4dF4xPgUcHEAdUTqC1g+DAqtnrf/Lj2xGiutcfNPZwD2", - "gmXeW4WU9GCiKiebpE6zrkdoXmgQYEDOzcKnTQpLEoDTZlPOkZTsqmVSn+T6JWCxLQTX35ZYWdmEsoIz", - "IhFlioMgWmLBiJTowWwmSMm18j2bHeo/5vBfQ5nwT8DYn80eWhfTO2ZaFBUDVUkQoxYZl0lLtZq8Y+/Y", - "RWSssNjFYJzQX1nK+kai2czv1WwGCFVreMsKUs60CGY5MuDI71jFsiVmC+PVDJryztgsafMAEAMHt1mz", - "i7ee3UUWuYHc6ULl/JJLNuTkerAgrnVw8yEpeAmn+z0XFLx1WYnxyJH9VsEhJQeAkM2AALbtcbpgxTik", - "QbPi3cuXkhu/1FKqW2zEp2Ro3PMFvWUlQxwl+MOGYMtqZX72ifIJKJaOvhLLHd8zdguaG8SIB+9/Pxp/", - "9yjSv7uyPwJEM8cxz54+/e7peLtCgukIOtt4arXOOnLOoxfkjmHM/jK45f3P3Hj9NXDzta/XgBI2d1ch", - "krat3r1qibO0pTIxodHYdG0+aU/uI1T+nPN2iIGPv7G+2gPw1aKTs9NR6HqyL5mffbb26GjyeHJkYwAZ", - "LunoePTd5NHkCHKr1RLW5DBEgFsQWAYfcHWaa9WcSuU0c8O/QDvw9eOjIw8Rb+VxWTrV5fC/reZqKGIw", - "4bjOtJutx+PmiBjVqBbm8uD+8RNRbSvDx5Y7xWC8zasCuRZ1p0+Onmw1s95siYuLMxNFkOj/V67Qj7xi", - "piyKN++O4lnpiWDtu/w7ZOYy45LXXxzWf3ft4E9EnfiXbrmDvRvnOjm3ubVf4XoH69S14NnS3EVKLhNh", - "dG8hkBqUSRtehrCLKkNWR64kxK9ZHx2Esdm7w2Q0bmzeOWF5Hf5iAzf/zPP1nS3XiyVWPjcoll9KVOTj", - "PVKM6dpRwWBieXz0+JMN4cQGRBzbEHkdVVEJfFmstc3mHxWpSI4uyZIyvelIi1qIGhyHJOCuGEpfnPRT", - "QL6dGML/7tMQ/o9cXNI8J+xzsZvu9Ye72zeek7y3a+2ML6jRHp48+kSrbBkJvQKzIrrgHL3GYmFk3OPH", - "dzqIZoxaYjj1K8i9Ewo9TfyBpAPJVgu5Q7Cbym5Z91upMbE12cObYyQzXpLciblQsI31j1gpHSypeB36", - "7CSjJEyZ6NOzN+cXCPqfoN+Y+YTkqIK+zN2ecWVDsDFb34BRtGKKFoGkzQpMV2BGWLVlqhm3nryzn9+X", - "XIX2TXefQ7YG3e8gZvdMk2QaS/V6fZH3v6Q4yEG5y8Pf6z+mNP9oOKkgDr007PzbbzXsoaArwhQuxibY", - "/QBKV337rS17D3jprsEm17noeH7jmW+C3jDyjsHpA5XAIAgHLTgDb4JmJ8xM7bAJOicE5TyTh7IkmTy8", - "wWJ1ADbMySpvs5IZUF3+xuA24RVRREiwy1BT5kot3TXoeBStxqjJFONgNxP1dZJ22ff3yEjnkLD25uoL", - "12bv9ngdfrJ+Cfw5Hj09evxp5v5nnCNXPgz6/UQyUof90YzoI9HHzcVyycqGiBdrueR+lIAmZu+J24ie", - "tzr+T0uMLUXPdvLkJ6L+0MIkmNwXL072nP2FcPZPRA1h6w1ax+Gci6tuZb6f+3/k4ipSO4zHD0Pmk0sm", - "gNItThjo3kj+jlk/4bm7B4CSr1+QeEWQRY4bIxeOjSxsMVyfja/Lpk3VfX8j3zGTeVFfL/TrMwsZWTti", - "Z0gSpUekEypnNcDrzOUS0pysSq4Iy9boiqyP3zFBSlPpCVGFBNG3dfOqv/9bQFhIiLQ5MkTCLYgpIkRl", - "8icslqpOLXzHTDskRzOXYDHFanY4A0VM/xPNdWYoZW6yevX0UmSE5HKMJEf1uMxgjMpM5TsG1ULpihwo", - "fmA9MMZPiXWwdnb1cFshrDf7y5DC93Erc93qWX42u1c8iO2vZnsFs6tTzsgAj3DyQBoPHvL7L/rwig4P", - "kNxDTw/OtPsIRqfPj+BPd29Nao76gMIofN2Ieaqks8jItK4XfDJMzsRDGiZpwnF9eo0v6P3r4fQvzuoC", - "OlBMLQmjS06utSv0sCA2bShJrnCVcRZK/f6Bji/SlvoDuWYZgq+BgnmlEM40gVmFgAv035yaI1ZZ+3+S", - "sl+akbwmJpfg3sgr6mc4WX1h2q2dBXLL5bbW7mdqdw/NvpBujfbEvJDYadhfHKBJjA2mRsmFqn/8RiKI", - "9NJqmd7sH09/fNO147av/a4P3XW3ObvsvCCev7ucsGaLO3aezutNRkuuQwapeq4vM/yAl4irJRE3VCa2", - "2Ta83+ah2+x2YrttjmHekzLc4LdcT0Fg1+8jzqIdH+sLKpEKzamQCj1wxUifHj08NrdKvlpRNYZ/XxOR", - "00yZy+QN+Gp1RCuUm4Lf5Ipf2YuoRBLTfILquyZiWAh+A0gfnFm0oE6/vg6rsYsSYc+nVKB/VESsax0o", - "ijOud7FZD/OulZxBwTvNKcUBPE+Pdg7I+YJoWm+dJ+jzNctkJ0EH4ZayN8LqVfjiJ9qoOBj2q42Ugu1o", - "rJ/bjWj9IRWYy8QOvCULKhURccbPfZgfUj0NMj48uvMhkLw1iIEb/m8UsfI1usC/IAtIQxcwhNfNn02R", - "efh7nNj3sS/GMWbezaaEVs7gZkvCpoTPezUkNCX23oSwgwkhJpLuY0Jn+SeUTnAGGIw1Z4kPwd440/dI", - "Pp9PkH7V2QwYYhbprRTksqKFsmBxWqdswb81Y5XakG2fkbbv/kRsT/ATG+NvwVf7g3B/EL7fJYJMk/ww", - "WbTxSDz0uWq/jyxmRdM0lZEyPB1f2g/+YILkLQEMmM/k0ttLkb0U+bRS5Bzs5o6VdxYfgAUgD3+3kRjt", - "+NTmVfmaX4XH9Y+Cr2zJw88mUcbJnuoZDerFTmKoYv+krR7uOfwL1PoNwfYq+6lT8yfNFgHhXfB/EyK/", - "+4MZlvIzHct2vsHiwmj25/Mf53z+BIYDC5ez8xkrjGoaOiybpyq88Ae+5u+ind+dzTuYtStdvpcAew39", - "3g3eQPOucsOu0sMiOgx2IP7Vvf+1WsEHOTBTLP1VOTG/xJMuIJ1bk+vh7zUI41DHjdvJL0vHjsAkN/fS", - "i1t5nx6iW55yexYIWGADB1w3IjoaS3z+CrnaZgDJLwguAK4QGew/g153rgTBK2nqMWm/kjh+xw5Qxhkz", - "1esPbNjSXPMC4nP9plgjCd/pV5cEC3VJsEIHqCSC8pxm6IqQEutoVvTAvP/dkXyo36bskn84rixM4oEB", - "HIYfEYhcZEDv9Kt6TfOqIM23sX9iX5aIC1NKClJgyAeSVXoVoBETqHTskvLrNsyDGgrjWKfuU70bJAeA", - "vTUqMMtJDoGZvuCYQQzTP91gk7cMuAF4gSlDDwQ5EC6y1/bwMBxGKfhCEClhHJBiFA9EVEweu/oHxRpJ", - "juZYmNCwrBKCQNEsUnpUQl9dQaIHer3HtoiKQRWEvnUQWHsN9a9u/Z6bRB1q4Q8WROkaN/pbD1nYbADc", - "ju4hKhzUo0um0hOyjTuMxKygMPolr4ocMpmAxBBnKKfS/QUD0BlD4MH81cDTvNLEaSr91B9KhOeKCITf", - "sVzwUueAGqJEl5WCjbHPEePs4PHREXJCD3KZMJoTlS0PNMJ67gYniBKUSHTJ1dKyB5CD5Q5DywYH1wLf", - "zjynzMZo5nlhZpLBmts+e4gyLMRak+mM5rNJ+D08onrBTFaYISIzJUvdc8FXzwd0g5b4miDGoROYrtJw", - "k4Y0VvzahKWaSX8jEQDiEQSyYvKOnQS7A/sx09i4B7ALB6cvZ7YWoDRYMhZJaEWlrFdKf0ZdIQ+LXYRu", - "KMv5zfN3DEc9Il4pSXOi6Y9KpCdsq/9gZJRXOxgdxKg35S1dLN3uhuv3AHzZbG3H99ByoYXsZLmM2Cix", - "arWMwxoLFDjSIRaYuok2t81SkKUaeMVT5YrmB/BlsGfQMYhDk/GGXkEHpj+bBniz5EX4kh4HZ16MfCMt", - "pg9MLnOuf4PYzMhzPZ9/zBAXORHSzEQiPteL7RMUYdDSImOZYWuSuyay5hVyQwTyA7OclUwveHVtI90a", - "elI7SFZToZ6Oiqv/1TRoakBdk/x5xOtm00z4gidJPRZQkHS1BCJqFSki0igsdXsFSBeyMSfsgeHAWAVo", - "T/F/nb/5Fc1yrPAMFZT53YOVfI4+HEhJDixzrHApgcTsOujxmwRRiUq81tAesOCDrpQw4ReOCTbeJuH1", - "n538GPb6qT6eLbLxsC/O7QG93UeGTB3S2DbfnFkWHvaRPty2GpkHfvRfve+I2oWyZqwub6lJ57nZa8NT", - "Sww6ygxemNnomybxmOhvGZ097sT4fHryJwt/vqjFtql7KiDnmAsklxUgL6Oc37DnVnhIOLbXkeqAHrC2", - "6pBzYjQ28z5GT4++ezhpujQlQV6yefXb/PB+PAoZ2a6G5bzjLfl05E/x0fGWPDuKtOjR8fY8PGoq16Pj", - "ndh61NCvhzXTZPRR8ygeHe/E+6NQ1R0dby0KRi11d3S8k3gAoj40WRudN7Sf4bFJ5fBXteRJa968zywf", - "08MOuaFfUE6EXyXHtXb9zXV5SVVxYBHxxaEEQKU+i9DPpxevLfCzMPBL97r+7d6+ovQHHdX6M1UFclNA", - "fsX8XlBVBDtx+HsNhPFx0zYMMsXV7Q0ykDnb/yc3kOkJ/ZWSm71ZbKfgaSAzu3kDyesQylMe/h6Udft4", - "aEpZyP78bACT0QagoHCtbQTZBsC0ppZU+nxd8gFnCult1hf69NVJP4WqeC/tMD41hXcGcgSF7wZFcpjF", - "6O2jlTqYeRTorg7q8jL1noxHGpNHL5VJfgzB5899mwMHkVVCchFdEqMaE4miEi/cJ22E/HQfBV1Rle7i", - "aVjH4mlHhbTX9vtWf/ctniLK3APCfMmIg18UggLIZiAeVMu1QRLakHPeF5wCL3w+beDuo1H0XF6SDIo9", - "nzIoM/Np49J20kT2SOH3K1j20W9fonSz4gddcBByabG2wpQdqKWwla6TauUv9TtoxXPtrjN2KlcFEmmx", - "U44D/15JM0RZTj4kNUnd4IXp8x5FRd3LKZvzr+1qqkePzPARjD+J2xRs36EvzN8H/eEU/uBDDyF5bH1P", - "hVFMjQPXPfQ+pYyzORUrktd+Jbfv3gWk/VnyhqpsqTGAnIFsgl6Am0zWKPdmBN9IpO3IUCAfkEAM0Iwp", - "NWcrMT7XLhW9JVj7qxj3A+uksDP7wn3TmOtnKypL73cw5MZm+2j7RtuwWegFFMrTxmZd3uGDvd9Fazxx", - "9X7OTpEGJ32OlKuKyjj65cUZeOUn6MRtnE29ZaasMrRkKv0ZZM8nRz94pC9wmmsLN2bW0VxDAaG3Ef4m", - "gJd6EtO9eyRRZdvPuI4b0km/phCaG1AMgJoBKQFFCJwZlFKwuk9NsMMM4XxFVe2PbcosvQiuugjxfSl9", - "nigIk5CEMIQvwTXCTf1EHURRx1KYVJ8cPZjZQWshPHsIZRK93955SgWRVQHLAFyiAzfcvJZcaj4jWkOE", - "Vck1KA7X2DuMyqVfch0OAItgDIFoZgetHahoZqfdZoezqs0Od68Zhl2cu/391Nrhzuz4+bTEfWWXvdIW", - "JSeCQN9wGuijn4tsSaQyjH7QctvEMuBN+LL3OQzAzIrSpOoV2KUkdpBC1Wl+0r6wu+hLu8h6O+rAAtul", - "r6AOc2d3FtX6Lro7MU31dlfWlJPqLCjU+cDU2P1XpvUGU9N+mw01vXSOY8krIdPWxMdPAmvi93961mFP", - "/Nm28GnticAge4fHjnmjOEf9bs2U6GqHBscSzLTYFb61kcU3m9P6yqn/IenbruWewnei8Fa4TUTh9tjs", - "dtUB+J6NQnUvmzhIXRZxbSIOK5mKYtSfnrn2B3FCj1Pn8dEn8N0MykuyUxp9rAfkS9XCark51//46irV", - "fonUHK1tQM+ehEP4x7jl01UL+FmQkkuquFh76wDcw+Hmi4Poe7hRd2C8mnZr3ID7uK/a1k1Xnym71pP8", - "FkR79OnqIvhV2afy7pP5HbPXXJkQFOHR10LG6amAYd/UB9/py6RBdxsQkfvFrzn6rOy/P7OcwXw3QnSo", - "bwcJb0kX0VmwqMAc84ejQTe3M0HmRBCWkc9kOtWGm/s5HIZlpgT93w7i4KvgIL/ZXWpfCuHJBIx/Sbxx", - "b9qhm5aZ8mfCYPqkvPmJueTr5eg7dNz0yryv3mfzJcNAbpKAfWqEjhXsVWvt68Zl+xNVP1eXEOaAHpy9", - "lWNbQEWO3TVYPuxTfE1s4h9R9bAz2yvBt1CCkSePLYkYaq4cmKCHzWXf7LffQH7jog6XOEY3JpZESaQd", - "SYAI4aOCNKFjnRPtyw5Vkkgbj3JgwjCuiU1IELxS5LmFerAlsR0jQQl+ydE1lfSysNnHOryFVwsTGaJ7", - "gLpJU1vkbFx3qocDf5jgCRfxIvu5DhbowqzPH4n54pntme92zAdriTyZtGsadYRvmXg4W0MPSub1sVnI", - "Ms8dZApRNVhD/aFmm9oUO0aSukAnU7wN7LCIM4TFJVUCi7VlVyrygxILtTafQ/iWRW4AlBoqVT0gQMyR", - "wPa2NKDOAIdKkDy7MtAWkptoQOtdwwWUbobqcTY/GioD5hCzRtXDrkoOXw5H3v1tI5rU57lr7C4PPpdB", - "em8a/kMo4INFaLcaE+CMDbDmbYsV+5Wp08H0GmGYg/g5ic/+K0fBGgO+BTRtpXZw9Ez2OkIzlq8XE6/D", - "xGa+/FII9u4PPDO/z1i76G6YZZ9Zts8s+5rO2yL2lyXwOdMHLGARHJS8oNm674SFNNoz89of6WgN5rUP", - "Cr31ddkkW3sy2dbx9NmJ7B5yZ+opfZ7b320IfH8E7o/Af788HVuKcLhM6z5doTi+RfnaULz/HDOq6D9J", - "jgqSLzTmKWTD6ksYZraaPxe23L6o2HNkqpRpQ+IalYJeayDXHoP3uf7yTTiUTy1iOyLtLwVm2fLWyTN/", - "Ns3cr7rQXsS9wrC1sgok3KDEbraCAIluvglcTZC+vqh0mH0pOKAzjRFlWVGBPTqnUnN7/dDYtDNeAqop", - "zQnLSGdMvh3GJwqXt1EhMM7esHkzrOBfX13gfDJi3a+2owvnSbd0AY6Fw9/1chp3J5UranA60/HsL80L", - "WpZWLONCkAJQvSkrK4VyiheMS0Wz59ZXSTIucsift8nluYXGaROIbfq/9JBe+oYGSVc7/kGi9VSR1ae/", - "HxngxDdXe71xj/bVLdIddwEPoIgJHANjZWH3Ozg4AbnVVGLhBR0agI1jESp0tPnRvnjBYTSabT41L979", - "NdJPJYbE/XTXSBiAXdkdYHn3MmF/l/w8+ZweKMvIJisOuqSSgyGXvUhL/i2jLOSkLPga/GcrrDG0OCOo", - "1NV9sM6AUXRFJuhNnQDqPkc0HwMYzOXaYN7oWZi3T8z3GWYQToHmUAbDVCRSS8xsAY8VVc/RnBcFv0GM", - "fFBT/dVU8Sui1RxFC1vDRF+W0prtuZ/wbdNNIwzRR0fbgoh2wR34CUW9rvCH14Qt1HJ0/Ojx93XzZ3rV", - "Luzrn1RPsuuYv63YGaDI72XjHdxGvyCHi7ZRPf50ATE/YUVu8Nr0+8XYxuB+FsoMfz/zv5miFERck/zg", - "Un+z4KPONGMbJVeXUMsRXmhBKiqmY9i4qVzTELPfSHSi35LPIQANEMnMLwGG2XdaigaVODy8WI3FCgaA", - "S56v/Wf6JR8J58b0PPktNIpRTucQZ66gIajNZp94MQ/werrQignVuySEOYCxcQi61pbQZnncet9TunQo", - "ukyHnzpZOhzBm0p57NnN4nNsqy7BkF7porItEvuviuuLPlF44Wo++Z15gNFvv52+fDhB54RBwTldr0WX", - "+jqdH/yCNYQbZ7Y+4aS3hNPHvZK7V3L3R9hXcITZIycQqgPPsOh+cPi7+6fLgTcSPWF51L/bIGsbIn3g", - "4CW9IILkhxoM8knCygifBKPebNEIRjgMJsmNZqCVMRFOuFdx9/LhK5cPhtF2kA/jtMHgBLW4vdb5niQ9", - "tl8Ulx/t1bx/YzVvL8y+amGmg/N2kWTJlLa3QSKb5y3ndIfJTSCPhwoScJa/fANr1tWHsVRQ5ltnhEqF", - "C/uCl42PHsP1nPG6Kf/s8fcT1CtXf+jKNfuMonXcJ7La6zKG2B/yAa/KgqB3o+/mj7LJZPJu5Bc5Nwj8", - "OFM0g8Rai6ePjLCMlqurSLFb21HSzVU//FTZA6EtAijrs5Si+WwnlSl7rX+yp1HviaXf02b//dH15Vgo", - "PtGRcwb1x3Oq/0Q/Qn2AvYXkLpSGJ4+//ww76CT6Xm0JQ3Dv1EZzSD6QrOoPwn3jHLe60I2XylBE0307", - "RozcaMqfUyHVBL2CuvnusS6XfiVd8XyXGQ+lSDiDgiGCmDH3u2Nf1WP9LIrK3ve7o7bgN27vBN5fKv8d", - "nMAoElV3IKaVoIuFAe9M+4zPFRYKxGktdhm/0dciZz9/XN86Gbmp3xujSla4KNZwc3I1qBQo2tpZXBII", - "Cg68vLFj2HVHlS1SlRDjF2b8n9uGd793MzvJrcC1H9+vwO2+p51kGSmVVZD3N6C9j3Z/wnzhJ4wVL7te", - "AFyuyJAKHe7lDn3cNTWsLA0kS9y+6pRp5hMV57BT7M4ycmtQ/2NfnOOuinME9JXIdNoYNaeVG/u+0Xio", - "MgBxGWfXREhjlO8KKzMf3ldUmWl9m4Cyo7vufH//2kOd3Tf0igsn8szUkbHo/jz8vS5etql2hmPt7toZ", - "dbcDLhl3WDTt/RfGvPsjxXt7dyLEQyyyJb0m3bfuFwXBAm7dpnSx9rtaCql9l1RbRE9QoRNm9aurSip0", - "CXksGSmgxDJYTVukfGK6/wOTs53hPndun0+7mZEtsezKzIbdengZniPsyvx3l2szb/6B2dJMcM+Ve64c", - "oOoZttmVKZckuyo5ZT2lQ7/99tWHkgi6IkzhYoy4BzeZfPutuY17rfAbiYImxxAzZE5eOI+vII/qG/mO", - "vfBvWcOLPqKjW2ONcuF+XhOTscQ4gxgU8o7lPJOHsiSZPLzBYnVgzOarvNdw8iKY9NcmPQZZT+oJbjSg", - "oHgx9uaTXVDC9s63Hoqy4iiUNN1GpH5ZU7dsAtS8zLGCwogXPxCsTKkArIhU75giYkUZLpB2nmnH3LyS", - "RKIHT45+eIhullRHusEzHRFBGZoXdLFUkDx5SeZckLBTEETkmoh3TC+nifkEuTSrHXUz3ZL+iOZkVXJF", - "WLZGV2R9bL16WsuhKnLnGYwfkr9jvFIZXxHoX+8xZRWgQyGqZyIq7TxCts4/SEM0XBhGtrZ6VT+PNLx7", - "M189IzPRrTyCR/cwjC9flH4NytTeIdZn5UMRH6fFbo8iGNjmhxkAtaoXfIRWREq8ILLPJPgi7OWPeHEL", - "5rfT9W1vMmyYDFGDZLa63ZD5nAvVE7RDzPGegRnxwUw7PWdj9M7FEL4bPRwbmIea5gXBkmv7xIFpHWqJ", - "CZqTCdIoPAW5JoU3MXJGGppKVgnAZXAYkohrpAaJHsx+enWBamjJGdgtJSI6ktNiQ34j0cx0OoVu5Oxh", - "iDVhuqYSzZ48fjyboHNFs6u1hdzJlpgtiAGXyCuhdTiEM8GlnlHBcW6AJwWRCgslJ+gCXxGJyHxOsqDi", - "Uz0RCPHXestzpzW5UkvShjCZYk36q2tcADAagsaJgakw67XCVKcM6C/10Gv3QkGvSDC5JREJGMxzL1le", - "ma3+gygw0aQ+k/Zix/ALz0lhV/ePJsm+5EpFjuw8YW8l+ZZUFZ2VEwJTyM+nF6+/XhtIo2EI9z41DyHe", - "e2/NuLNgEPSzpqiaCoHA+ijQqoN9hy/LdXqgec8gaKZVy5TcZ7mTT7afP5bkt7P6zKLfDWJrRfZO42oH", - "D8aF1B57K4pVddY6R9GWfbwkS8pyC1/PQHMZ21qt2k4twIyTWXws/RQRlsvJ3rtyCzsIz0m+Bw29bXE3", - "lnthXAu9rbSCldbl7vY6BE36O5AuzEyzpf2VKm+Zdfea8OJgqjZz9ke8qThT9LXZVGJa98tCirmdBNQV", - "MADwV0wHSeor482SmDxqGK2ZJ3ogiblMWkG1/kaiOaZFJfRPCtPi4RhJHpS1RqYAgbYAmf5vqCA6gX+F", - "lcF4BSFnh4ozZbJQ7I3UD7jv2gW3gz/a2avntL90/TtfuhxZbyVdjajrNJ6e5sQcNJqMS1NDpw6m1Ktp", - "dGArMQ1TUmbZs8+q+qvp+I9kTzVTst2fsjnfX99uZUX1JLIVRdsztq/8QaaP/oCQb5Zc2nMrwwxwxAmS", - "ipel1ssNOE6oGDRdtkxHcCpVkHfMHYDSHFM3RBCjs5tcRyzRbDYHkInZDD0w5ekFkYQpdxAS75RoaP9q", - "SVbv2IpDRKj2E3NdZQeOedAW7Gc2n1LapAY7ZDvWsdV1MiwEJd57S5h6x8LbqwHq1Xjp9nsgkQ8AgV5w", - "qUy3oXYBi6Awy3GhtYE4Cka+YxlmelXt7hAAK4IC+yXOoLi/wvLqQLvO63BYuxng7J68Y+/YLPRT7+So", - "ht6/kfVlK/BYv2O1y9oYwfUOYhk6r821y+ybIQy70DrHysb+odnM5C/BEM2o7axnM6Mn4ca+QDceyZgU", - "kqDZjPGpeWtqF2Q2q8GaLBG+YznNQS0C+Cix0ovy9MggPgFIghLUgOXXq2KWwlwkHmAAxFkIEObyhpAS", - "MDTDxaDqYbI4iJ7TZ41ovDd1yk7u8ypUfhD7kMp9bu6XXHDyswcVWE7x0vStvpWvtlYd9JF/oE+LPsgE", - "Xpqz0RniLMKN7fmBat66oWoeyR/CrZxXCtn7e3Dft2dbcGjAEQL6x2w21iqDzRTRSoO/YxMGBxjzuYqQ", - "EvJQH6ZweOghTvWbs9nkHTtxagvR62vPhkro8xbXR0ZB8DWR0ZVdP6ZwECYu1YqXF5X4TOL/fsWvm9te", - "/u5D2r9c0QcCybGKZcUOoWc0bMe/8vB3/+9GBmXrzn6B5dUb9+MgXg+bHsTtvvlPz+/x7D4Pl+sx3A+X", - "DzNdBf3fzmD1ZQa7f1EwwiEnOVbVvBnyqewNhLiANwYhaURlp2+HphGUpO5BmhOEqamewp10Cc0hPV/T", - "7SdJRdHdmRL/twjH+Bpkwx8speXLSi1xTNpk8TqNJJXfoL+6JyAR3fQ2KCKPv7oT9hOfdV/vuXyHOnuv", - "dNrjmQ1Zt/dfn4SzaRxWWnVqMYe/W01g4/Vi0K2iVis2XyiczvDp7xJGddhfI/bXiHu9RgznvQSMRQqc", - "4nOw4f1oOSdZrWjstZy9lrPXcvZazk5ajsEp2ULSCoKlpAvWLWvf2jf+ONLWzWgvb/fydi9v9/J2d3nr", - "JMl2EleJdZ+4VWK912z3knYvafeSdi9pa0mrxLpPzPrY3H5P5N/q1z6FZ85395rOSbbOCtINFlcPLfzn", - "V4i4/6U5tqI9d7QT0MsAuP1LgZmuaOs+Om5F4zdi7JfYRXCXXFLFxRplBWdQubULKsyP8578aY1etgoW", - "fnRno0ixxD5QbR8ovC/i84dBqrRiM5RnSbEbn9uHv/t/OwecSR1pn+Qv4few/c1XpbDxQfcl3/xQr9yT", - "RPj1Xozt423/rWWBYdXNsmDc6W3/0tj86EtRhfaxc1+Ka/t2J91hyYUaeG09E+Sakpsz+OIPyw8wvT22", - "59cdT1oTkiVa5Kh2BxYRZC6IXPbZzeGF/WGxVzj3MNv7K+v29mUQH7c9yQWR1Yr0SSn9fC+k9kJqL6T2", - "Qmp7IaWlx21llKxkSVjeLaTOzQt7KbWXUnsptZdS20opKz4GiCn9GRHXTqpUohgdjw5NQq35oF2//5ow", - "Ig06KRfZkkhlJNfBkuBCLZHgRVGVclJLJvMANjtu7A3UvZIZL4mtn1eVOVYESSUIXqEHZnAHElBIrvUa", - "PQzaNb8k2v2lATOWLbHy6CRBA/r3xOe/EpLLgzWvEIQYjBHOFL3WTjLdGGCsIS8ag+aw0ltvCvq32rR4", - "h6XGiMWFdE1J/VwakDB+aeaLDK5LuIJUFYlGbX61HKMVEQuCSl7QbD2uy26UgsyJICwj0IFc8SuCcqzw", - "pJXvLTsHfWBgGx02BLQU9ABFO8LBuhcTDdZHTuEEv23O2CfADjdJnGmpxl7qSiC8XAFxsGsqONP/lmOk", - "Cdos60JgpsyQJSlI5oDWHQUFnyV6gIA9TUVyDGhzyB/Tpkn4DUOj4agVRMW0mzvPliSvdClmE6oAyMCl", - "4B803lpQOfI5kvZN3a+giwURpkPygWRVszv/cmoGS1OeRZP+gVyzDBUES/2bgRNaYkFygB8qOC8PcnKN", - "KJMKa6DAuoecXOvHWgj/vwMA", + "7P3rchs5si+OvgqCe0e03YuiZLft6ZbjxNoa292tPe62lqWeibPH3iRUBZJYKgI1AEoyp8cnztOcBztP", + "8g8kLgVUoYpFSvKlh/Nh2mJV4ZqZSOTll7+PMr4qOSNMydHx7yOZLckKwz9PMkWvqVqfKrLSf5eCl0Qo", + "SuBpxpkiTOl/KqoKMjoevbA/jUdqXeofpBKULUYfx6NMEKxIPsXwwZyLlf7XKMeKHCi6IqNx3Yp5FZ0k", + "G8qpXFEp6aV+9/dRTmQmaKkoZ6Pj0YWoCLpZEobUkiB+w4hAK7xG9iOkllQiwW/QA8wQZWWlEOOKZgTd", + "ULVEjCOpRJWpSpAcCfKPikj1cIIulgRJIq6JQDnJaE7kc5QVVC8ZyrluAmW8XEOnoirIJJjNy2C8fjqX", + "nBcEMz2fpSBzPRHM1m/mo+O//96asv+FVUUx+vi+bvtn/e3H8Yjm4S6c5ql1+0dFKjKliqymNN+2w8Yq", + "LwmC5pBuDl2SJWW5X9sxonOE2XqCzrCUiCqkOJrZHfgv/dlLiheMS0WzWbhS8AxpYkOn+eijf1DP7AL+", + "25rcx/FI7xUVJB8d/12vhvt27Kk0okC76s1FiYkrWOeIEXz3/PK/Sab0QE/k1W+SiBMmb4iAtc1zqhcL", + "F2cBz8xxIcm4wUbYf6SHAT+t8IfXhC3UcnT8/aMfHic2c4U/nJq3Hx0dBeM0bfkPsBB43Vof22M4v2j8", + "3RN8aziie4ZKVK0J0rwxp8dHT74fj1aUuR8ejTfQLiNSkQbR/k/gm9H/OKzF16GVXYe/wvs/n168diNu", + "E7VhCannIKPV72tYN/lf9qvEPqwoc39GZG17ae6L+xtkqV7WEZZX00oSMbWyJ+COC/3qJtJX5iWg5X8E", + "/doFbG/527qfzj2XJWeS7ETWw1c2JsGBS3tiO2kv7B0QXc/e2BW5xea45UntSN16a0uUIkxvQPpEdkdJ", + "dDwkZjbkuLiiDN4irFqB0ChLwa9xERDWaDyCE3aqz0RpfigFvyzIKpzXXyhL9sAIyUk0kl/NL72H13Ah", + "AMcJLFSS+QXBkrNpxvOEHvGi4BI0AP0OmnOBBMk4y2hBsX4FcYFWRCwIcuuCsNub5whfSsIUfMbVkggk", + "eSUyIvVh59Yzbm80HomKKboiU6l4Oa2YIJIX17Aa0NE02ABJpF7uacGBc6XCRUHyoI2CrqiCPWgupPuU", + "5jFrtl50e3JuPkCneVJ+aabYXp3wbIPl1R2c9VeWwuwXzJGRPeTDOddDjogqZMOIx/qY8JzhUi65SqnG", + "lVGMczLHVaFGx8Eh/QIe+oYpU2RhRJ7fjWESMxposGVGTrY3y67D8B7s3ifIQW7SMagdQ2Yn6/tOrbRf", + "yMRqv8BFES70NkcQcAxJU2etgXeT54lr4ON4hMWiWunVmS6xXMKWa44XbHQ8+r9/Pzr4AR/M3//+7MnH", + "/xkcCyfuI/Sz/ih1LcJF0WKgTcfWYP7Si2f5K+NsTheVMOJmsBC9IKuywIr8omXQi6iNj+P+T/9KBJ1T", + "kr8meN7+snPIjTdHBcHzTYSquzjNCVNUrY3uUJZ6bT7FNC9EJRXJLzgvfrHd9s2vfseNckquaU5YRnYY", + "rmnhlWsgedCZ4+OKrIe3D8vwlmSEluovZJ1uV3FeTBlekXsiXr2i6FfdflO4AEm0WLJmpnBs41oMNJmg", + "ppPEXoTr1uCofnFV4ktaULV+S2RVbCuyMv+5/iutrdZdJM0jRGFa7HogvzRffxyP3EJMW+aJXffTUSl6", + "a4wWMuMliQ7JUcWurdAINKU5/aAqQUbjUUGv9X+Ct4Lmz6G5lMqjsCKbJEi9qOfwepPksnDRTYtuBo21", + "8lvwPrVllip6KefcDditgKffEgtFQQWsmKzKkgsFv1fsivEblu7y3I62tTAvllidrvCC/FYWHOdtLdhe", + "DtGK56QAdbaCNylbIMwQ1d9q4w5WCmdL/S+1JIiRDwqtMGUH2RIrtCJS4gWYxGJaz7HC7T7/jCV59uSA", + "MK2Y57aPy7Uy2rO3G16uzZwc3eq2UnYSklM8dTe5thULmv9Gol9Of3mF9GsTdMLUUvCSZvpnM3aJTs5O", + "Ec4yUiptQySSoDmvBDLDifR6aPGwBKFi/v3fJan/uCGXpf9jQefhlv2iB4sGXSWDeY3NQoZb39jXFLHF", + "r4R3/CYJmCcBDWBmyYDkCHYYJtPeX5qn19x/7Baf5mNLQiQHcnI0g64pRnqolhAn8IXW40OzYfr+Gu/8", + "kCUejyT9J5kCrYXfnNN/EvRn+LWttKeuI9HmBG12b1HfnV+/aukQvmgv6oljxXgRPz/3DbEzbL9PG5c8", + "xQ/RCnascmDd3CQHJWFGCnYvcMb1MSVB1bi1xf3VByqV7jBsFZ2+HEWKc/AEdH7PLu0pnb6UiM/NBsua", + "JcELcvbm/AIdavI5tM8fSEWLAlXMUdjDptin0q3EGFFtHsmJMH4T+zO4YS4JIqtSrY2LBitUECwV4sxK", + "YkQlWtBrwvRybrZNwG52WCZst+2ZaxubG9QoFL7+lw2S17zXoK8eO6p5vIWANUKVKSJwpt8aRFtdZJBU", + "EbUiJdZTO5dbGHBe2qbcSWkJL1j8oRcO80HyolEaZotURas9u3Gc2VdSDjZZ4htG8mltBtp1tuemJVTb", + "xJx+WclodCN+NWqy8AzMTfnsGEyJQnNbXgl8WaydAw0zxEvCkKoEGyPMcmR3SktihqiS2qMJjxHXirRa", + "YsM8hOXyOZrxq9kxwvmKKkVyBM8yEionMCwzjtH7TZTeJLJ6W5NrWu9TmsL8QrU4p+/sI9lVySnb9h61", + "JDifBsbJthaiiFhRhguk3wK9NfOdoRsskcJXIKMmPSdb82d3G+4xu6ZHc4UXhClPWA8YVzCmXzBlBecl", + "sg0gmj9sDvaSFJwtJFJ8svv1xzeXvv6Y/Qs3O1phO3PX2fverTTu/Y2uxOS+WrdYch1Pc7IquSIsW6Mr", + "skbZkkvC0KVxy2vbABHPkSAlwcp6pQVRwjyWeBUuaqTtVBXNN54Lwcj6p/8jF1e7TX4uiFxOQ7ZMicR4", + "Uf5CSAkTnHNxRXJkPQTfSHTDxZUscUZA0mT6WJfoslJIKiyUj4c4eXyCllQqLtbwIuOIYUWvCTIkGw5n", + "gn7UY0APdId2XA/RFSGlNGOoiiL6AFWluzXGa9+W4vey81ygkhdFTQF6lQbsfeCuaPCy/hkO8WDNLd88", + "d0uiWRW9G2lC0DrYu+ro6LvMuIgQtAu/kHejyV1T3W6eXLj3+tCd+uBMB/Fsqdn+TWuCRvx9I5EephOC", + "YKwTK5KHa2kfTsCk7Wc37ZLH5GbaJ3pfgTKqWaJIj4HKYBgPgpVAkqiHSXkrCM7X97hWbWaG44pfQoBS", + "jt6+Onn5/z5G+sGB4geiYkxfHKhEbmRoRVklXXgTTGeCfq2Kwq6Ea8qzjO7Svm14B+eIGu1C/3dOi0Ii", + "ajYlbLW94HYGVMIU9N2fKWIPXKcWRfzXs1wNVmjsdZM8GiMbR2Qd7Fo/G3nTXDwtTzvBm0Rc04wgOBGN", + "3SSQcWOziFpLCvUzCFEyKhQMSK8Epsa3m5OC2GcVkyXJWhbQ5jBTJj99rf/54uLslRB8c6RSQ4P93Vg2", + "j5Fp8OPMnBKgt5o29HQvC4Jm2n4wS11cUt72c/PRCmdLygjSL9kVE2ReSZIbc6JawqJpayjNiUDyhqps", + "ieBFd8t0H1ySDFeSmKulRFY19a55zqxnXnN3QTMlJ2h2Wcn17BioXfeHllgahfwGJDVczNhC35KXtCAR", + "VwjMJmhme9FKuBtc3TecnuE3jJAcwuMkUaogObJRBtdEwHLMqZBqgmYV8yJoduw0xYxXRW4DD+FhPWya", + "F2QMf/KivqvISuqBkHyM7OnkxqWwWBBlVwb6c7EHMBF72gNp1keb6Umi+uUJmsHQphXD15gWeg52NW0P", + "JzBybSmgUuqeuYAZAKmHbKA3IrpPBEsAfwXBEa0+k2EPtVckpryfqxVmB3oAsOREc0Vo0ukXOYGhvyUy", + "+GpF1Xm1WmGxTlC8eaCPf4wyeLfNLLhSS8Ok3p9sfklN0Mql3sDalx1SIbiubzSHjEdyiSPz6DJp+6tE", + "Eb71myg2LqeElupLJnazzc24K2HW2ls6wiVO7gFTlFWgaXrv8Jb+OM4U+eD0i4HhZC/MRx3WF8Jyf6Md", + "2OAr90miuQVW5Aavt2jtJ/tFUncx6uQWIQ7ONtoV4ODDmiI1bOBQ35qPQ4NLxw23kg1r1sAezuHb0HyV", + "6CAwJAxs1gU2bSL5hd8LUu9xYsnGISWGMUztuTd28X1Mly1+SPNN44YZeRviG5w5lBMnfRTv34iuE8R+", + "TFdEKrwqO1W+QSkBKdX+N0b/UZEee3mXO8IsZDKCq3HX4woXXvGAD4z5lq9KnPnFkUte5G1DM+oOA5Mg", + "0ug/ST7Vrshqsby1/+D0pT5qCiy9RwhRlhVVbkyLshaiji/8GNCFGYOzdtZH2u7DeWGWiOSuZz06XuS1", + "ZV62xrKOrt236TukXhdkGAUd6uOrzDvJ97VeRvPCcAr+rcx7KBjiilNk/AZSWE5fGpuK1poKglwYi9YZ", + "9fOHYT9Sv58Pc5u5bt3n9fZ2UWGTQxppFcGyvU+7pjYJnO08JeFewl3EkU+/z2SjOTR8t5YKwyMna39G", + "k+83Rk5m8WL5rjvWs9d8DlvzN2fo283qaBRsFw5euziyAle57jbMVjlqHoihBoEP/vle/9/RwQ/Tg/ff", + "RoGSuhPUFSl+KTDLlnH3wcd/No+Tan+plk0pvsIf6EpfNB4d2cQC8+dR6NYqVdBgIJtzcr1p7/16vyTX", + "+pNScL0ht/A7nZkWrAS2AVnJpXibDvgXpOS7dv5Wf/vxY/MsblFVgv5e2rwAG0m4td1Rba0wnmQ9fk8s", + "Jc9MvH3srvv7+/EwtnYhrSd1S33ZWGF/bQ+1tksPlyhR4OHA9JgX0EO7Z16pS16xfDeV+Y39eoPSzCtF", + "xMZZpVTSjy6vZLthmZMy77nXwKZTfaZo158yd+swVriZfdWfqxRQvg43dQkam77Wca0n9t06Pc0R/xoi", + "Xo/NHPRKMDIkIDjZ5qCMK//6+9al7r6uhOERP2w73AcbZlIfhY0N6f8+Xj3z7ptKldVdb0yj6YH7Ywcf", + "b5D7sZnbmdXues9EjV30f46CvXAM6+RSWko0hGgUCRLL+uRxMKeMGqVlToQPed/GHKNNPlNrgUqR4pOj", + "iBSNjQh12KhKrJYNCfPo6PGTLglzhtWy63SVVHtItzFt1B9tdvIFrwZLYCcQbUJ7hZMbcf2KXVPB2Yow", + "tas70B6fU62K3i6u5sQ2iV6aJtFfTZNW4cn9rIYHFKVWIhlcNOdFwW+mN1jpuLapwovQbPkjPEV/M0/R", + "BU6HGA0JdPSxIS7ZESd9gNHRN+RsM47jaTNfsxTksqKFmlIb8liv4hTUwfFI76oWu24no2h6aLVTI28s", + "1y6bHq5p8nIaiC8XXRJMNR5Dch/HvbQa0VXEQxFzpNlHx+S8JngHX7qZZC8MRnOxl2AZcebApKOb5gWZ", + "6u95paaSZJzlYehkcIEpsFT6VN1uCCZVsrBiLNVuHQXn8zYEIaOxn/IWkWe2rY5pNUbzvnuH3gCBO7mx", + "6zGzE5TJUAfU35Y2/mjNMmR8veCgu1maUBUq0Q2mEPprAkHb1EFwoZZTfpVqnICTc2WjyA5ycv2NRJc4", + "uyIsR4KYBBJkmlgjPFfEuPc0mskEnRhnqYkK8EE64OzsE4MtmypdCKxI/xDNOzogSFZZRkhO8v7xUNU9", + "kNjZ0BaZK361MSTO0tA5vBvG0XkJ692TfsShvz7MyWmZ+8p8SwraGI8X6QUuQanPNtfBM+dubbbglxJL", + "ScKlDreiywUKmDq6Mx3G8o0JbbUvo4Iy4v3UmnEgVl1JxEF1NuHjOvIEFnuzo9YOsB5N3wKsWXZmFcMt", + "giPeQOACU5jqoxobhs54SQkEufBjiGZwihyS1aUShKAHpSBz+uEhKjDLJcIK5UQqRJmkedAgBNWD057n", + "SJKCZEo7quGwk2NEPmhbPjjzlwQVVGqu1sqhdtDnRCDTS9IoajpI8kmezIb425IIYlu0w24ONymozCBJ", + "y/ISt37WGjV4yMs1YkTjL90IqojUtAEBMUTqhVUC00JPXxZYLu1yEKmf8PKgINekQDkVsGrrMcJsrZb6", + "dVJICA/BaFHwS7ueOcILTJlUCMMagsSUBGklZENeQsPOYsafJv0ELUBclO7R0c1c8NUYCVKYEAwbKWnt", + "iUhwng5OdvSR8t39pbokghG9hAW+JEVNTBTML/O1o6KS52NEJosJejfCZfn/8oeIPT6GhCf6kYwDSvPr", + "YgmshxcvIHBkS048cSv0jURS4UUd43Ls46kPHL3W6cDogSEwrOPZiOc335SWT/WmPUSm00vd+g1whJZP", + "ELokKiZ9tI+Wy8AjObmeglCoJIEI0Eu9ZFqKmSBYLZwn6JwQlPNMHsqSZPIwN+swWaU8rKblaT8P76Ks", + "WJUiW6UcUqXZBpPcY04dtMLiigjgpOIGr6VRFABAZYFFXhApnyNsdwEcNbzS7GU6cmuEFkSLeFasTWYD", + "NDKGECEMoXKMSKl35JJsE5TvbkYDDntDb3DpCfSW3nVIzIszguQVLS3cnFSknHTdCMGEnpYQAav6N4Gk", + "dDiaztcyhEYNPo2eJXpXt/lu5A/QJZcqaEJfJxyTX2dFJRURYRPutySDN90ZKeOewkKlF+1txaxSpyU6", + "ZYsxuiRzLojT/yboDtYVtIr0AF59KAn4nTX/EYg8O9AEdzf9rlk2hVN3N+9CUwFJnCjbK45jv58eq6ER", + "ikaU4bnhJBC12EPB/rFTEEKSsyJVZ1YbaMUJus1QTBvdfDpuN4jszl8TIWhOTI6CaSc10qvqkpgTA52T", + "TBDLU2MbqupZ6WbJJUHkg75caR42cCIT2zDMz8YvmhO+Z3G0tvcAzuClUqU8PjwseIYLzdDH3z958t3D", + "CfpV00BR6Ch2qU843Qplc4ERNCqXECgqiWq23zVAxeEk0+n7dkIulPm3t6/1WBXB+VjHwGZLtMJXxLIF", + "t8uIKsZIRqTEYp3cMie+UurJZp3EHA2BlBmjQE6PUX12wRHsZYEWloiyca2rNk7PybBLVyD+PPBUzQbB", + "7MaJAzqSETtdz4ITqh3Mym9seH62tDcn/fI3MtL6eAbqjlabywJTVnPp2IRSt7g2oG1oGzIyTEwQVS0u", + "DuJ4w3VxTSTvw9HkTKTMDiabzcpQrNjcm6bQf9JvOjL7z7PPceq0TpCBJ8IQad0rHvr58Vbcl+KxV/M5", + "F+q1vi6mhJNBA6RscUDgRQQXywn6G4hCPrfIIFirqHCHwJmqQDbz+ZwIqfVjxzAz08QUmpCz+maib5va", + "bn9AGXoBITa+OdtKoSF2VySn1WqMlnSxHKMP5j8r/OE59FC3wHPyodkARLzoE7HVEhzBygAbmFuzORLB", + "zvSN9A3lnEjQy6FFPa/Zk8ePZyHv205G41HBbyxCQ7UajUe6n9F49MH+d4U/hNb3cAsSgiKwzFsf0U6Y", + "cOATDl2QuzitbEsodDCNsMiWVBFAkI5bdguDV/mzJ4BetXr2JCUNe7oMG9dxUViSqR4FYZhlLSwlY3+s", + "t0RWZVkYbKUAZimBHaRRQNBZ3W4St87BC00tUXRvRA+CQ41ShM5sMwm+NFrXNKcLF77mVzXwAcslfvz0", + "2XErKmE4Wh50g16absD+lRVYe2sqSUTc7zYQCaYRpJ359+7OJDWDNHyIAet0eBKHeDEpy8mHe9+JU91L", + "sBElznTe09RsyJYQhmfm45fBt8mlK7EgLHIR7hquBw01nNhlgZW+r01XmNE5kereF/HM9oh+sT2GC+qZ", + "u+U4hoibspJLgz1rj6UpHCmB03gUxyfa1jodxoIsqFTbx43X4RL2+1a8xa4xjbYFrZXggubYesb7Qft6", + "RNlffSuoG+Qt6KrtMLUOJVhql9tBs6n9Js71DHo7d97StrplXuLCEXXI3391Dx2hDrv/NARMakqpjtsk", + "F9DEOA5xiWRMD+c0D4amwG6cxslDK7X77YM1JRzSUmmc0jC6Qg0S2kxKK70mTL3gjIHlatuc3cx9ODs2", + "GaVoLvBK64KIAHKPVILgVdu8XGc2tHNrLl6g0/M3B98/O3pUW3OZ1gYlSfskggSHfiILUxLcAN53rcrP", + "BAt1SfC2LoLZ0n04O0bgUzZWye+OkI0yCKZlEoWJ7u9+V6mxEgPmf8ou+QebWbLtElD97bG1OsyOEaEw", + "zzklRa41em5hhMDXapXE9vyDeiLtPWeC4LxOpYoi7ds4eukpnmt7Q1WQHWcp7efBROG+aPDx2II8N5n4", + "cM+x78JmoQXxfWu7CFXaZEaySrdsyAMcre6dV/5Ze5Fcw4MYIHy5c+NtQuQvAc7WNotivj62gZ0mX938", + "ZtClIFF8gmZ15OdMkwQkflOdIw2unbJYa5PRuC64Ax+XgudVRgAqBvJgH3hPvQltwebuaPhOu1ofmnR1", + "mttLNKoCjDZEFTLVEvSQwOlUUP2pIJC4LcM7anvt4xD3tl7CiyioA0tJpcJsE3r+gH2s3x2P4vxMXpCN", + "W3sm+EIQKXfd29J+b1PwtfvMYlFAzrmDBQm3fYJ+BQ+oVLDBBhZICAp3fSMAEc2fQ3sGuowYKkAGHlC/", + "q43anGlbIjYb0yI2Y8AlzG6c6fhEoRWXyqKqCsuhRhajUo/JjhMLAoTT3misa/QkHBEGksi6cyED0h+A", + "2PZ+scTuV4N4IuuXgYL1UijOCwhMkWMkLWaRIcQMMwA50sb2G2uqXgVRU3Y9zVJZHBaD70ZlePq45fhG", + "ojm1YBoK4hNMC+lYp5jAE3CrIS+ZAlVm64FZDWfJDiSbslinsxK1E6O9pA9mZhNmCGjz4XGDraN0vXpI", + "WIFPUoYLwCuV8ZUmI7tuYJqWipdadhDnfwh2wcBMBVsQ0jxgF9sNwUEOrHSziGGs3oRnnxdsN4Irolmh", + "GyBiPJLkH4n1EjkRZn6WuHW+K3PU/8KWErtyYF3aNkYkELk/NB8lU4U3BLopLDZA8fgVh9VyUgNdkgVm", + "Y7RBhwFxTApcSpJDKiwCHFAsITfVOLfUpDtnf2ABCicL7U1H6wrkg+qMq9ECiaM5FiCEdGxCzm8CIfPo", + "GfoL/fNzs7sFZwsizAFEDEtekdKw/Ex3M1WiYhnoDvqhElV64+N308FwWobI9LgLrAy8Ei8AsUw6pjFo", + "kLyAuDCDCTMab1W/wy2fzkWJU8e+O9qQjNp9iGk6HzuhG1HauI7fhW1qLY1bh84jUKMnhPpeUQzJtAk+", + "amd9zzRkwhAlUL/nFUDd5sQPy6c87qiLesS9YBzhWVrQOcnWWeGjjpIKjW9lcB7qa9dua3vrtlJ78ZPA", + "TO2WNFwSASA/nIXKVSXNXVirCZH9qH57YyRn/WrQQDTSxEx02TaLyrLlpr2ksizwGln4DSPTXG3JHF1S", + "iysVwBoH6qhBSOq4Ou2aFxzE4LSrbwz7GPCzOst26CzuTXnbm7txmvVWY9twnu0A//DxYwc9uIS1U1ZW", + "nz01+atIibyXZMj7T4P0Uw0Lp7YIoINKoBKOqYoid4gIL/HC3DQYoqtVZXHudJtaxpdcukDK/33+5ld0", + "yXO4IGS4LA2A87MnRlXBqMBiAeFDBO7S1gLx5OiHtmC5xHJbJrEmT5vxstWHGS6hXG4L8nLIt5WQlsZ7", + "bEONhW1qT8Ff+sYI/4XIrnQejn856YAZMOiwib6MqPC9DXrhkuDtDwH90U475nXHeB21PdzELUPgrXSL", + "aUJynyNs1eenR3AjL+0NaCAeimcjV62u1kKfHrVDTphWGWvy2PaAA87qDlENoYRbj+20Q8UlXKixWSgH", + "MCrThiKTZxKQWOuVXpLohvmNp1ePttWnpaqATgyTjwJej7nX82O8/OFQ33eIyTcGMlbUlZ23PFHr/LjW", + "Qjk42q2CXtOwcxvyrNvf+MS9eBibluHc3263WQK/dtvVI06sfQKTpMFf5j5pANyBju8Arrgu1WDbdYb/", + "DUVzEh+lBjiOVqhrC8781Wlbne7LQoexeKa+Flw76zDEPDVFYIkvLNyo9Ry21Rn4catiyQXB12THdWtX", + "b0wu2GvTRRLO5otBminx2sc275FmNiPNnNn1+hjR89SEWnbeUJ8c/fBsm1CY3+qm0VvT9CbIAYeG4ja0", + "wZGe4huIKMlpNC4egYjqEGK+xPxWhfazJacZkfGqeQ7cuHwbjoyeuDnbr26iKhQt40LOv7jfUt6LfwQz", + "DU0Qj3543MV+fnE22Yr+Ub/oliYYYWNT2q3GW6LpfrvtwGIh+yKJ+jjmf0vO/oqLKkIQPNENJoYX1BAe", + "ilBs6wLfz1ngrFIDG0kDoaTYs67v6kq76hVpbCRsVMcm/pWSm21v8VokHEClz9xhoTsEd7iCA0YSye2t", + "3qJmEjk2D1wREleqAYAOXflec9mqwTzB+A9pxuhHXY7BNOmqi5rE0QVRTbuEvopRtki4REEXwJeWH1vM", + "l9Um0U1KprOeunrCHUJmiHrkaiz79rYUO830Na37HjhEeG9WGQfJumN09naMSsoYyW3Kqhyjkhc0M0Vt", + "HO6AdhNC9kywKWYTvF9GZ1w5lyNliohSEGU8mnxuXvN1idFCYP0fA2RO1XrSAKPbtOrBSdEwEg4NG45B", + "uToMtZUi0w2XYiUwk6XOWEgVGI44PdjELSqbrJGqvWC5HbcNG4H4G21Jz4hQmDIbcWLs6g4VhAukGzd1", + "HW6oJJN43B6/YytbwialZEATBrFgSphuZIvbfozO1pxIYt/GIcMnh16zfGtYjq+T96odC4b8iKXSmWHw", + "/YeMwO9g5TxG7WIibfn1yas26IHWkbV+yl2jGib2Gu19bFXbTvhg/YGWGFBq3JDX5tTyLS++XVaypAVl", + "O2/ODiyXOveThpnuUnNmNcBlu+kepkCr6xDA0IxWJ0xT45F2xW94uxLMvV2Z0Ly+13/Tr5j32/eyK5tc", + "OOxe1uz/43jQ+352w94PB/w+Xuq3/GZbi4tSZFXu5ACFYLSusyq4g2+ekV99QTJCtzUzBpUhdqdxP5m6", + "vXG4OPHY6vltoP1t7Y/EfzTM9BhvfaTIPU6ZHF3x+s0HoB1J/Un3TN8SLihhahjMWztfelVlSxsH6AJK", + "HSQFVYC0QfKxKe7gIpq0nvJWv6c1x1c5jYJ2fLCYA1fz+okBifHPdRSsvSxI4vuETHr9KONFYZAqHswp", + "oxKSrivBJERAmqpJB/X3NiSRSwh4W/tQLaoeTtAbpmcI1SoMopwehKxWkLLvRyRtJB6+1lN/jmbw4wxJ", + "vJZoqZcKs7XtAwsfgaeDHy8JmpMbaAvbmDLd2zfSNTJBJybCRuvXsGK6K6vcUWnrWMEaT2Btpa8/6dbR", + "ACM94JXyYAk+esUmrkvCJIULmr5DPYSVcjtHGZrpEcgZ1Li0UD/SxXtO0AtftaNeYr1jJkRniQUjUtaJ", + "r2ZYJtJzTRLhqHqaJJ/C/BMRX7DgbnCWMrSDDeckrout23mOjvQMHyHOXMxqEpxev5voDGhUE+vfBFWm", + "HqZMNwArlKq8gPONn00NCU8hRG2qh5KUivVnm+4Eda81d9iqaHZV9IeNGE1YQMbhhSGUb7YJvjVxvTnV", + "1219bZ+FWzgzKB8MYV2ebUHsTc4kODgg987xQ6wxELCvNAqjXWopUuhG1sAfJhbAEZuhMQi+FpgtCIxP", + "v2bQIImJCfBwVSWUageakiFpd2yZ2TQt0aYEi4IS0UWsBpINRJMVbdjCcGCG7LfmCWX1BF3dOBs49cA/", + "sBXsrDL3EBYhFA4gM9uVjw1/8GsDnoURIzeNpkzlWmmf2Y5toLWS0Ug1J9dSJ71Eg1n3+SbObCb2QMPj", + "WEQ45mtQVe9OOY7v5sC+g1MT1600tqEAXDaWO/RiXRZc44PVeJnv+5WrAcbBDtXJdd63EgPL4jaqAFlA", + "smM0M/GuswD/bGYhVWfP0SzHCmuPOzzXNdqD+pHuWRiH37ht2jc6IhmuqUwGxfxElQNnC1CNAAsa9AtI", + "5wV9Ro+QXHv5VjHIOdMqiU5D3RC87fbTTncLaF8/r56N2f5GYW/A22qx/uacAD8hFjJsKowRrQNXeYHL", + "uNeN6JBdt5fdw0LtgbHl5K0kSIzQytVtG7Rh5y3bbuJOsNv9abdA0PEINIGBk7gw74bnwBZLoA+J1K1o", + "U7x9Q5JFYFO+RJfblbE/SezEagoYB6xgaTNFyd28d16DjW8hE+1XQfasiaeHSwVMCyZh8qngX3pzniPB", + "b6AiNLwTfu1Odg6CTH+R8HLsbka4XQi2j6LekCe4HY3uyhF+db9gZurLLvEL2iT79Lluu++hYMXLrZFj", + "fY1wk2rG546Cbd/fSO/JA33Ua6mtesxGlbef2QRJk+UGOLG4xBlVxvsElniBsgLT1aRu0l0MlKAGsDLD", + "LLOQTHYQY1fWGdkbnsFERlTBXYG6ItMYlURIrURzVHCupxM2s4mn2tE+nF/JNACdsRLQFZH1TJZYQrck", + "b3SMJGUW1BTW25SBt1uQ1srNtWJqJpp3A8pHnbulxFKPwd4aFHfLFYxIYwbXqcRtl2mzvP3WZsL0s1qj", + "6lefYhbwnBG20Sp0bzartXLdnNMf6tCTEBFqhMIEn8ItZDySRENxjMYj8M5FsWlZOpbDevuvSLOozqPH", + "328oMnhy8H90qsrk+OD9f/zPUSPq4S9kne5MkYVFlHFTYJz5xAliXS+rrPT/rnORpjlhzWL8rsFEZ9zV", + "pbjT6flqF11zTNzDoHKBBOXATsrOJIkL9sY20FNKKe0TfrpVtJaDISyXWMajNUmGEIJtbKJRFhm8nuI+", + "vYFZgWV0ZYEbEGWj8UguSVGYvU1RqGYHDcUn5UbXoidZN/io8+bGjx3b2OWrdyigx8ZARr1c631e27Du", + "YzxNF7jenRRPHp+gzhLYsffmTvqDeXd05vCtMs6kGh3DhgSfdgFW8SyrxKZKPY4v7LsdxX0tIIaYkpJn", + "yzub9JltFr2CZtMdex3VTd+XbQ2acXrX9sXbdx/9sNLubgABflXQ+3ePO7tr1Jd1vXVCXY1HRmMNe3JL", + "ZvSFSU6uD7nIlkQqw8QHxupxeP0oLFYNzfR2pI9nC9cY1aKNy9GGRerdF0kIACiK1d5ii2Y1NfhOo2Zp", + "r6Sg1EtdCht8EzbJMOMGjSMqlr3SMJHu9a4G2wPEOS4VEVOXUtFss2eEVjUZ5tl2t/c7PWb11T59wiaA", + "fAKCGod+3oZICIgiljzxErZ2KLo1NXnFk0awCB2xFOEZ4FGtYa0bx4+PhOg6g9ydcCvoZuNSCQ9nva0F", + "USTwAfdXVNJm5Eo0g583+pwA0bKs1FTxK8J2+NoUJNr5c9F0Xw8x14WfQBulgRG3azBdCF6VOwzGG7pa", + "LwOUlwmwrL1dibdsYXizd9O+9uBNn1LV+WaH5yT5eUf/jR1ubllAOt1LmViAcU23PTcpCBi6D26IYGvt", + "Fx2W+k0qdOSDcWcEfDfEmE+aKxGIyVHvwuyV1QHKql3FvbK6V1b3yurXpqxWYuCZDsJyr6zeRlnVK9g4", + "fjYpq9ZHt62PwML5Gfi8xUKQBVY13qH36At+k7Crx+dXi2Rce3qyAXO3GekWTq+54P8kLJ0RpKdyg9fJ", + "sQ06ZHqrWSdE/pxCdkIdxvBF+O8GoQdsRt+rS58OEwHn9oPbuAEDCdLP8UGuq9v1RknZAdwX8OoQp11r", + "wyOZEMsSt3pppvBk3K98n9dbsI0Oboyv9q8NSPABU7YGki1poaejBL2smh6SMH9/05W23ddcUINxtMWF", + "odkDZboeT2NYShAytU+uScd3f9wr823vvre2ZTTYNLidBmS55VW1TSwbb8WN+YTEkqLrbjb8bRBCdQvB", + "isrmPWgKLv9RVKaGJuse3O0dOuISP6CYS8LSJfUybcE4Xrf+4ejoT49++OHx0yd/enL0ww+Pxv3QWH01", + "VMpKoQvTVz/b3X3nbyoV9x4e8albw9v6REjcGrDeuztVjM+hyS5PKaR799zDz+H5Zp3avHVp6TTkoGBK", + "weJs5MqUpcUwWD//7W0tm20tlVvHvbFlb2zZG1u+QmPLJzKd+NTewRmzfzhzSyVTh9AGg8sg9JX4DFry", + "SsiIHb7/07OjTaj4PZmmehsUYTvgw8EOyWmO1x03AA/90vlOMs3VvN36PKVQ6zDpbYP7m0Ho3yXj8KXC", + "RdGdrviSFPSaCJ+DCvX+c2S/Qg8Yt1GyGg6eqjUqoXTGklCBcFHwG8wy8tCj2MN3FssenZiMGUmYeo6w", + "xfKAIuA62VZ/IWz6ihwMNwpXf93JgLRkqXiZzN4LI4FtcqxUeE1yDURignxJ7mfqanrr0tqA/LMjZn8Q", + "vLx57BWTVWnyYyO68JcenC0JRP7jTNWwcTeYmuppus6aU3tseGjf1S4FFfZkQ0YD0Kxb5bFl6PgmXM8h", + "5M4UA9SwWMe/fxyPIuDALW+YBri9ZWLbhFk1OIjxz6YDW/3RJiNuidJlPurSlVlecsrUFg2+cp8kmgss", + "vwNb+8lbDXutvncBqmgBQmOMooENn5mPkWXoji5c00ssQQ8PlYRmBU5/ZTUN/qw/2UVF7hv1MCU4fT3r", + "a7fz8tVg29okTGqiSeoHAWmHdt/AvJzYvsaCj0N+fB9BftYMnpAHOsj/LLjKeLnnrjIg4sIWoy8SKxo+", + "/5lKxcX6FbN1S2MJYnT/neFxgnsmNBTudNM9sfE+1ti8QPFrj7JjMaLJbljqUzbnKVwkqQcwDYfeiwke", + "boUWaPM5yeAMSleo2KKtTdACOjXHdYJuANLCpquf14U7/BnvgQZoQRDjjCAqIf+feEys1Pnx3TAgNC+c", + "HTrU0uzEbli6nVsagkrZDtr6xP3StCDGfGXxCP3k7AFdy9X6tVQKTjy6+ibcJyjbGcuMA5KaVTtqVGVI", + "FOqMiao25wA00MMbPJEk83GdFt3egTo1Q0QL48ikg5+BRzfw8TkpdoLK3pXDBYEVn9q1TdBAw9eer6hC", + "GM0FkUvHodSeByZhHdmdQwqLBbHAMjrPPlis2QSdLhg47T04oIF14YIuoNJeJghWBqxC4AxasA3YPDRP", + "mzAD9KOZwXgTkpFfqY5dqnegY6sulpog0wI3rFl3C159ETRjOXXF8xjCl+ckjfTqai4OE9O/wvuWVWFS", + "W1QoGkppHe2mzoAVpuzAHwSaCYkV9gHijH4JKdgHRD5QqYzwv72QjKWj4qVF/t9e6l/ob19TFsEFX5gG", + "N9zPVmZrmypdRFh+oyObkh1wg7IDgk2RNBEL4tAWLLrpGeCwbimCTMu1OHfRBwbUdbNbFZ6+HzBCBSnz", + "Zy69bfgIFwW/7ICnU8vkg8ScTO9T+GTYnMam4/Go8U3HDN96TNM+mMTG6vYVeUlv7rg5mYFNBKt/W+D6", + "ntF9HG/3aTiq925FX5zuGmxyi/pJzqmdtHSaY7a7DMd4tBCEsClW2mxcuhL2ybaoOUCnsqKK1E02gKIE", + "qc13HpdLH6QiJzl6cYrmOFMS6mYj2yKCFmVU6jRZA4oybS7l/UV1Sixl/5TdZbTnFeseGVq+JIgsiKvp", + "RO00xtbYnea4OrYmsQqdHB5UW9oAW98uW2aqYuYGWuzBHApD2UJDDxEXeifNrqIHca2oh6Y69E9U/Vxd", + "mlryEl2SNWdQXVMSbS/VxlTBq8UyER9ph9lhYsdlGQXb/d0/HBuueB+jmifKfxWkp309U4denyqOJeui", + "nJvLKTj/ctxQvF6+UFmdkE0NJenXpqIymM2rFVVxfj/cKuClpH221CEFvJLTcEYdQ/67+y5Ywz48gjS5", + "1ae4mwquFA+AaCJFIfgiZYSpH5tSq9u6ahzQTegcTnhPX9n32j7ZgCYAFtuffAMOCneoNBWtsJ1xe4zp", + "5bHz719151hrVr7fceDxnDctInyKzLe9C1lrAFpDaWi6o6vv5eG3347Go8mCqmV1af749tvDFV0Y6Sf9", + "Ty81eJzQpP3tKFSRN7gpajOaGQf6CcaRQKqNR5rw/D8e12N/3Nl073K0YeG7DCIA2ynRK/vmxktng9KS", + "mzlu478396d7HdKkClTYRai2AsFfyLbqEWXXPDM3kZ3M/6f++w0egILg+TR2Cw3sQlupUeDv6Wr8Vg4B", + "6GSYV8CjTAQEO1pZPJyJJYeq8OWjphpvy3sHJxC04mlx2w9baCSfwj8UF3wc6hiyXw1xhwTejCaddG9u", + "s1RjmpTD/WoyVsA1XYw19NIRayGnvhitGyIqjfIOAzHgVWopiK1WO/3WKXNgATEaPmf+a+sf96o+fHRg", + "FGDQIuUGXW+7GPCgABqWtoXhdUgbd9+Pw4vvOePwptD9T1yBl25hKIuvqsn2IiV5u4254/K65ENGRKla", + "wX1HGyr71mV5dx/+hpK9kMfir4jbddPSKrb7/NNWC7ZmoKkrQzWc1lyZq19MC69cA+luQMzEq9qljGvp", + "M/BVbWySu5LiHXwMFzFyEwmoHjX1aapsQtDOJqqstf16rH33sQHTaF0CtiPWUkxZtbokYpdP++s41+rp", + "CqtsSbbE363rg30ixMx2QSY5lC6etYcf7Ijd4UfvN0KP1+p/rJoEaxFuWQ06m5LKXfIyeQwkBXQkRseB", + "RhAeQg0+bHJWN4ekKCShO3iuaRF7U1IPLKlNRwmp2aofmqKGtDFPumjjViYyZYuCuMpXiDKEUei7aetc", + "YBtLmW5tL8i90IhCS8eMJRyQzcoBgjAVjQmdvhx1+x5TnQiT54YTo34hiPkUAEcVXpWjcX9CxgvTWkc+", + "RmoOvzH6j6pe5Gj46REDynoipPQUfoeIUahIorgpqmCbHiM6R5itddmKYo2gQokkypQWAE9lBiUQ6jpn", + "g1TeF0us7O7CAEIXoRlR2gLiPbBtt6n1xFsYVT0onKkKF8Ua2eD1HEplSEmlwkzVM2RcgYHYtY8gnJ2p", + "Ym3LZSpu8eoNBqsv7sdQJYkv8iYNbu6SmDou+gsHoouZ7uOSoJwoIlaUGQf+5siw3mwXXpBunoGndRd6", + "oKYssJl92MlbXqRxenwmRBPNlqMbLcQQjhZggmbuXj6DaGwJBUGCohlm0fTKwN1VRyWTJS7m6AEG2NsF", + "sMGloGQ+diDHBj384XM0033NXMEU10BUbTGxvXLSXgU3yiiQpiOJI1nyteWKtqtdC6pAQET3Z9mVF2ei", + "EGxM+9rFViQj3teoIPmCCI3mAAEnepWdKJAWRRhHDNFXxnCXKAFbJBCy48xZMgVu3601p4Sjt2RutGSY", + "SyOYylF2RzBVQKzOSmS3e3MmkUekitf7HxWpSP4vZ0D4lzTusH/lLvPgX87Nlv/L1wH9l/Gh/csAYxdR", + "ulAHgtWOyArtANq20dUv5NgDY9XhsNHejR1J+LV8H5ZDblFnJw2f1b5Bg6PsiHkbQBOdn1FQOJN8PFTg", + "dESQkirHviKXL7ulPYGuUK41G50wRFalWqNrXFQECqJcyiRTGOjbrfMGTw7+Dz7459HBD8eTaTO3NOvR", + "InCmuJhW23b3f9+9+3B0dPDu3YdH83fvPvxp3uqSC/Qb7VFcuq3Wt+vaKDIbbNoLwhzg8B13/5NvudMm", + "qykIik0Emd931f2ZbR2188a74FmaeNQ7970h0pSoqgxsBnG24fzo4IdWIsG5/gS9dNebjiYtdkqM3l0S", + "cU0lRIdC4g6gpZBY5zDNn9nPtwhfbQmltLgZIp3eQD7nLkUa/2zLq5e+FLauyqCPYbBEa5fLT0S5PXEF", + "k58j5kqlESldaYU3penU2bKxIC7jDKJVLChHx7Xpg5r6kPDwsHRpOi/8w3F3rfW7Jsb+HKHIE1TjzsiS", + "ZFCK3WtPkH8IlSRs3MqKuDu4/gfjLDqjep07XwDn2wI3m65GLTK1/hYbQeqambajxwH3H0Imgkzlpleg", + "jmfXraCu+PE6rwZLyTM6CNjGDN36A0/q79zQP4/sa6KNJkgtjrK3RBeikDrTD1u4f+4ETdqZotTm5Vpf", + "4wFdNza/TxiG0m2INAzJbMsCS/ha362NHHQ65diVM3W3aZRTWWqDF1oInFK+siUuCsIWpE0ft9RKXMNd", + "xpxC3xrnNGtJpToDw6v3ZrP8JuVkThlV5MAiHkX4PXG7aVvVp5e/JtejBirG24ukC2/Z8qlBNLO57VE+", + "D/yaOnl4TZ3TEGHC28kqytSzJyamzYb3fP/kybM/PXly9Kfv/nT0w9Onj2MAiqPgJKgbR71gFHe2Bu6O", + "snUrgcrScu+7NhuyYhmubHId+8RCyOZDxEI9ze2Eggu71dZuflnNkW9ojATRnKS1JECTQP8kgoPxrMbt", + "QB4zoi0o4K0If+EH9780PfwKH6QIwHQmI8prEd7jp989OXr83dHRn6IODp49fvTd06c/PPv+6Cg8jEyL", + "G70e0r9o5tO3aReBJbljyzpO3e027Y3lB4OZUFfEculNFgshI3XNaW00JUiQssAZWXXdqpPX3NsJuf5r", + "rjlzpmYekWJsnqAT8yQlm/ouqLcb8+YLqqsudGdddhQgamZWR1MOLRN10aDGmrbotYMCOyk2zLhquyVc", + "Qp0ecGnT6lzhRW+Vj42c/jlltpxaghb1z1MXfOxpCT6HDI5kEAeYvSiRHZ4HckOkQo+PrF2W5Kj+RF8M", + "A+dBDMBhClAXWCpEFVk527Zp8OFgb0rCOvcxtNX64bd9KmQ+50JNdVKhoPkWcRSv4MPX5JoUA/PanMX+", + "0PSJXJ9jk9ymtzj0wnwjkbXkhrmOplv0xo333vODXcB8wJDfH21Ab3r/d2MOnDZgvbrA21Y8Jzub4n+B", + "j10rHTuZtFZOpseHB+9/fzR+fHRkbD8bO+3ZVeh+t02FKUR7yrgiuy7Ir/pbA7h0N3RhHcZNLAR/Ok95", + "bEjaSgEMr2l1NnJXOnq6rOTZm/MLdGgnKg9/r6f88dA2iHBZFtSUqQf/rn3HSKAwm9RIWoVZjgvOvF81", + "qni/xObwh1vyw0QucmeevOCNiVnT4ABv5C4Z9vYbbwO4TUasueM3cKm2CDwL4J+GMJYd+zcS4K3GxhhI", + "IQt8A8QVVTIAuLK5wz7JfOLzenf2NsHHDt6Osum8oIul6ssW0JNHpwz9aN5MUUaA8mXbOIq/H6RTBwYW", + "iwoXnPjeT9sWDW5J0mAHMR05gd0Sue3jNKiGHa9VpFVYedfSqEINKaVGEalI/vPpxWvrcNmUU5e2H98h", + "/JOsLmMFq2bz0bjdhecw+1mnBnaHkEKmhNgWiHWnF69d2baocDz07P6MC5JtzG+vXbAxUJH9Nl7GkCxa", + "O54gC0hKeBmgYm7jd9X+BofUbUMvXPHjMaIsJ2AZZUqrtU73VhYdDQXnoOxyrrZy/o6OuvawuwpvXGgi", + "NBT2tGa+6YTa0lPdqsG3ZnUGJGpE5Qbqnnyp1feNjJKXLYzSenfPcKYl1EuSFUFu9DYQAOaqx0Vv+OyA", + "Y+An15DPKAMWYXgR415hiMrE5VWMymDeS2nDROEcKwwoXI342UCPlUv8+Omz4xYQWovdXY+2WYBGS8eX", + "maUdLhvsXpyXBI7DpDw4c40m+jOBnbFCY3MWO8wDg5Ifh6U97lSjJIpM0y14FCUbqks3BjwH3OO/aK/N", + "fQXEeLIr632p9yERbCvicba5p02wHWVH3reIImTiblYH8tqOx93x27iXaj+//e9/aMjpB/95fPzgP4/x", + "Kn/25F9YrPT/F8XDh/8ZXlq7zuS6oHtSjqRvnP9x/P/xETKDN7NGPQ0EjS8ncf+929PQd96gKadattYj", + "Mcg2DcDupjbfkFAqwtoCGdTh8S4OASmBM42Be7mGW3cliUicw9dYYTGtxNYmh4axGJIfTWvot7evQ9us", + "/VEUnzpY2iqc00uBmQGvj5NGR+NWTCU8RvaD0GxmHvzZP+hJ7rrdSmpZiMKfwlHUv+oEL53omgaDAEPM", + "oSVG9/mP+urXxcFLtSocGcRtBRTW2Nmf1aqAfd0uUN0R6IBAdW0NnVayg15e6wuufjqcYOCT32QnydwD", + "JIGnuUfj28ET+KOlAsiFNh7PoIJnm+jvb9q0YPdc94ZusESCAMJdFL/qdSiDAAErCohrKYJ8W8unBlV2", + "ESQvCZtSKasIzKe2BjREh8aRzpH+CMFHyHwURQQxdAqPXrhHbR+w7rQU2/Z49jbd3Zno60vzaCe7GQ7m", + "YjFq3AfSaP8+Wb3BcdLAh+rmpLH1We4bhcj4HXnrjbPN9eKGPnanXS2IAjkyNuHxw6AeYnnXkNvj8JSK", + "TpCGgEizSHNXE6TVVmV7TuGXPli+eXgoiA/y8o2yOUdQUgdwFwKeap/DdohbXDdMJ2dvg5J8oUmiRYkd", + "STROrxjQlws4Y2pqAH+Gj/YFvL9xqG+hdfTCtt4esDNrD+7YWs3Cy8a5a2ODXaZmFL85rfkHI2rT0EsX", + "Qt9FSa/YNRWcrQhTPwm8dfkjUn/euDcGDXddHomACMFG4KU0QZWi4dM9q99Og1sE98fEnXCTYGlMpHFl", + "CobaXuPWEg5a7V1hZXGWESl12Ci/6kfEOYE30Vv7ZsrGfZvtm3Nt0p/63rsH8iO8iawCmxzI9vvXvszc", + "4nrevFN5K8It6rHdflThYNKCwVBni3ZFPa5gFK0tGzeJKb2mvRTfi81rXz9daQvjRp9Akty1yh+ShFbi", + "NjIzfNQedjyO7vHWB1rrgLUPtLUZa5XLwiub7xJX20oteQRPf2J+2ZjCe5v8XDn1CYVBz6fSZz4mWbAG", + "IPBqsc9vb8epOQfm5kwy88LvQYkqlXaoxleK3gUI1P1UQyKK/EzeDps2k2Yqv/OsYbdfkcoXqXZW0wxW", + "vU16NUn1kJ2NSTgTZE6ERxHZCnEckAJ6yrVsHyqyjQFW916XZggE+jAHRr+4T11nj1rCcrNPNj7Y6yWr", + "e0hsX3trNu/j3aMyHm2JyvjlEER7D+pl7wN5TC9peu3hDYice0vmWy57Av3z2XcbVkZbrx/857H958H7", + "b92Pw+zVukvIEL3Hfk37G4Vf8GbTw9ta1561/8WHjW0R4csIMpFauMY7sOSB+HxOhBzDKWviub4xuMj6", + "LotZjnCluEt5bp++huwHhpptsAFempl1wA7C40Gp+qalxAL/wvOwjfbqntWpjdtcF/S+9VZo33Drjne/", + "gS8ep3sZc3ZfvmVwBT4xA0tMGBcUS9ID8n+X4qsej+21feHPcGkAaSjZsfLAC9fC+i2A/YX9vghbT3Qe", + "po5PGxeSdDxM/X5v+p+zcJkQofsKtNX8zefIdDIt9FdyrGP6bLUgwuJniEqTHD9JuD5M1+Hgd4pUTY4Q", + "WpLfIJo3x2ee9A7Mx7zmVJYFXk8T58njbsXnpfmq0zESrdBuJBjvWjN8+bVpuU1+KeBdE7vlW+gE3HUO", + "mLuIVD7tjlPecUFiufuxEfybWgtb+7HcqpSaCZxDQ6pE27K+7dLJEdLsVSs+1XyOTuzng46hiE7bU+uU", + "O2N3oLSHXQvummwawtPvWJOBmyTekk6JA7OVq1+fIP9VkYo4UP9WQJnJbDCwP8tqhRkyoGgI4FW2gAMD", + "Z6Z9eghGhdhX2g8K5uD3hxcdePVBCYzcp60YyNRKfEpXN/lQUkHkPboEwXkE22f7GkUXIv2L9QAuqSoa", + "oCK7WOB+pqoI0UP6ncowsiHQZ4qspubXfhnl6fjCFnHRKtbUxMX3QcmF4fPReLQBCF3YBx1gCAlQ28Fw", + "kZt28UwQSFAmuQehQLZHi+sWuS/hgdE5KRcWZnjQgp25Dz6aNPp7JErYdeOgxvkhzjQ6BuRdhY7qt3rF", + "T6z7Sk88vy/f+Vu3riFX18OwfUdjkeR2GtTPVojatprdSRIXF6zPsjqdvZFsp5fUfjBOJL/7JRw5qWOO", + "GgdwNaAe4c4Rfc3VLkAiargnIkzyQ8RxPvBvXFtCGyblpdbA4OGhrI2EG62lvf72aAxDnesN6TIOvO21", + "yKpNpDW4XKOqbVP4Bvxbn3y1qAkKOwY0FLFJzcQNQ2xw5gSbXp//fcrBWSBUmmLKPEH2TqLtD6AcALPH", + "CH7CqmNLulhC4oRYQSJ8wW+SQzqrl6K1p/6ltwFf9vGayTmth9ZWXlw0wpbljRwGkP+8HXOTWlvROe5a", + "LMW6y9tAamzw6dgXU4vabiWx3xfrMjEw/SskxcLWxnqhVwjdboeUPRqPAp3PA0aPRx5y15UkZVyFqBtl", + "gdnUYbvYP+wX+vrgH80JyS9xdjXFeS6IlMZBxyulIXNltVjYzlMLcmFZNUlh9hQIiWwLi9Kqhtp1y+I3", + "VzpUrc2lZfnV5lp9Xi64PlPQv29NXNhu7sXYSZtwvG4aYtpP2hhTctQLKhURgSt1y6FjkS2pIpmqRDOD", + "UcdPB1Tr/oaI6nCYJ2ETaRMRZbQdT9qngr3037z1vpIk0Ld1Rt8A5nQ+VXgxoNZtlpFSIYKzpU5KRwAi", + "bJBtTTNI4QWyTmzILcUmg90l+aJfCcklwuH7k1ErVOFv9ukFXqQNGyvLAbtcKjzA8HZGoi7jkAHHnNaF", + "1Lx2JchlRQs1NaMNFKnmg3qfp03XucEoRV2Z4o3dSwe8v3t3817/3+Tg/e9H40eP//RxO0dSuBvJYPeI", + "89p81cN+JN+dAUn8ZT9TXIf9xN7MXrNd/VVXuD+JZhr60JqTPterWBUkf1uxu/OTPX46yGH19wP7r8Bd", + "9eDvk/e9Lzz89v49aal+796Pllz7DXtkbPmnrKy2Js0PJKuAnxVdEV6paQAs5CXED0etiOJTCBUl0qg+", + "zs0GdkFNVpQtJi6OC/1wdIQePHqKVpRVikhb1dI6q7W5HGCgaSYshNIkMi/xyqTk15hJjx9/992fHh99", + "9ywETZoc6f9F5Qjt1ADAiVcKtRCObDBHFAjelfZ7tJm8SlzJIYXYz/R75riRdhcnBu9yYWuFSkA9WJvC", + "UIojv01Sn1kW6WiuLFi7CTIJT6czM5KOALpVmTDynVv4bd2gyWnmzJyfcypgO08UWnGp0HeP//Tse3S5", + "VkQ+R36NTFC51BMQOFPgjpWmORiwQLiQHNmCnfpn3YL5qlEBFDro5sh3785HkZV3VaaBXu3aJuyx9Joc", + "AGopyoSe5odSOFQJQ6RoySuBcrw+4PODFWdqicz/259uCLl6OEG/YE20SFbZUisQ/yvHtFgDEKog/w2x", + "Co2pJSCRmoyf9j2uyPSfnDVo9LeLF22TyMmvJ2DSQf80IBgrYvzi5APW/m/0qtIS4PA1Z7nGmP5zgdkV", + "WhHMJPrt4sVz9JpnuDAl+zum8F1odVgR9H84S4y6qaLX07Mk2CH0QmE2SO69qdQdC77PJHx2lzdb8f3X", + "yGl3z0W3p2jrEgsIu+7Ar7ffpXEPyfVygiXvTaxggId3iPnYmJWQUkh8wME2X4ecXefhJm2TpzlZlVwR", + "lq3RFVlbOCYqkTHqTXRaHMJwtTPY+CUR9tlzhJEgSqzRqpIKCVJJgmjzjEkAszaydodc6iPbpfO32oXp", + "2lSHEN27nV5+7CTcfHGHu/Ic1A5E27B1C9xZKHJOcF5QlqzZYgvfe/YxDgukhSrV1jgP6qTvpjrvb7LJ", + "PfnS9ZYYiYXDtUWkbmf0PzdFQckHbbzDDm0dI9vH8yB2RC2JgAoPjLNIlfvRvIvq8popfqnPm99+O315", + "/SfQvagFZdezP+AiJ4LkYdMdsRKYVbjbJ7qBh7ZdIaJsaLzpFilBFwsintcobNicHFYLjXyU8EXsde1S", + "by8MltuqVEaO1NRkPHJWqdZVOSZbnXm5rlXbxPZyz3SJ4S7EIf89EOfd+/fqpQ3WL1rXeMnDadcT0Mdh", + "G8Rsd5bQ+xDUVXLQbCF7X5IMrxxzVEzRwqKH4ZyXiuQaUYxmS7TEZUmYhD2jDC6R8oaQUp8FlOea1UwM", + "jN1euKT6PvUSUDVBfyGl8ncpHEBxSmTh0g0vwQgMgvF67ABkY4hMJBUtClNJQU7SOO8pXPfAX1kxZv4l", + "qywjpAHlrikhn/JKDUBwvyO/5RtXw+bk8Ql4LSfo13pfJFHPa0Rdc3f18iwuVKfdeZRVRE5STs9U6FGL", + "w1pMkxJWgeYVOQDzWubHCGmt4kLR6dk6EDqO9eaBPfR8P3P24eGnuw+yGJZU2jPINjKYPxrgt0Rom4b8", + "KnVlJsWvCOs/GraXWCzX1+i6fQ/DqfuF3x0ooKEwAKAtbf0+f13S7+p1RRcwxhZx2bk157JpZ886CqCF", + "L++krn0WNbwmgTtT4oh3zURhBr+dvjSi1dm2oNgCEWtnuEKw8VQh7cRE/6i47gJLdDo/+EVb9CMYXYUX", + "qb5TSpGbNOhEmxUfoIf4knYPx/KvXuWzh5PRXg2Fm0MaFLYWRccmhTvMg0vJ3sZdxu5teo26U946OGqY", + "iPykknEvEIcLxCFy8MLolLum8g42DEzQCRKkNFKp/g4JAvClDc2SKoQLiJqwtoL8vq0CHUvYWJ7UYkK6", + "9J34HLdO2L/T1MI7zf6/11T5VnZ8X75he3+SmyjrTNQYCk0fdQthygFoJRgOSFExGWKVFms0F3yFGkjX", + "k3fsHbNtS5RhfWU6fscO0DkFC/8LSDKI1G8JkMuClFwD0zzUL7/gOYFwRFOK0iK+wM7ZpKAH8CD46B37", + "M1dLpCASaomvIaKCCg3YE/UGvkA9LghoqiHdzLkHFTDB1AEXnK5SBy5O4VNlozaOaRzVEdGDqffCl3Og", + "7uIW12OAIIiPYxN5c32v4FfhcLQlIysI1HPzYy2oVM/RFSmtNaDKqXIlruwFd9QI9Ln29j2owz4Yke7P", + "WBIkyPy5rVpqnEp6EIKsuCI1hn4btA6+7UasM+/7bKnd77OmC+3oNCfAIXBAlI1hXwGvCyjYBRe36/RE", + "SrpgJEfQFuwDZQVlBNn0GvRgST5AMhlekYdRxobuHEaxWlEFNfFvNZQf4TJvWkPnP59EfZkfl3j0sXEL", + "vnvitZbkZlbJMEPzfSMxRuiITabDKmI6ClG/HcCHidZNrOet9vCVbsLXzaZzFBiI7MkMnfQnobgJDMhD", + "uYPkSXsmQUua+7RT5sES06tKm9cYI2qMeFnJh6NEgRBGSC6nAQZdX3SFq5PEDcqnx/iuS55GqjHJJWpg", + "1YVe09uW4kim3fgSFrZ0POXs4Whj2Y5dgY9bsgiqHAXYbxEFxPDIXeb0U0YVhcrW1qSuLacKC91swB2D", + "LOlOwbjdvNrYsjH+J0CVWlxXYZKro/76Yt6bit3me5uvn6sPu0ZcfJ3abVfsfiTsuW48KVzP7UadqDji", + "egA2nc2S0Z/VyEe3cJCZRlDJASVZ8bigi9Yq3TERjr+G5tucKuNvzG2S7EyZ2anISMPPoZuIC9ZApffG", + "YeErknRm6Riw4tOXpt6NpGxREF8nnuRGzD28FUKmsuuQRyeXN6PDO32FRwJ9PUjRCYV2w0QU0H3L3B7q", + "zDWV1TkSXlo0kPdCDTFWXOuqJ4ES5fQ6LwzadXN6bnRWTd4xMaKd4+AmPTjT4X332F5AdtuOQ/Om6JgI", + "Z4yrqXVOzWoHj6PsJc69YcU54Z/XhXvgXXeT4pXK+CpKlpGKlyXoL0E3ULoWCohvyBNJi17zPAiSzHBR", + "mMDTihlDdO5ecgWKUtMIx+kpNfTJxcmEw7JU6qLyXXsYXKbfbk6V0iLO7UV4D09leYHSONxI+ov5IK5H", + "YdvohDwdDHSaroJU5/HIBFsm16ZnKX1gVHPxjD3P3wRtOJEdwxdtlTCOAz2U5+5GDTksVsnWlp1Om8T9", + "3m4G6ovdZ/JnURNhPJmzh3UojfehajTov/cgTnBCdyiZecGAtgRG+E4WkEShB1yY4odjY0V6WEdLfANJ", + "6xLi+g8aVTDbnHLXQEExBk1r1drIH8npdy+TFWjD1kl7ZPzdW/F6jTqFbWh8t11tzrAO8hjjSTUGO2BW", + "t0nedL6DocfvDNJB8tkxEiTjIic5yiuBL4s1uiRLbUTFzMDQm9qA2lBs68mRXOfUUiXBnKwfI84yYu6W", + "nBFEWC6foxm/mh0jnK+oAjexgrfCY5pfmYzbaqszOZhwz8EMJolXnr6bVv2aXSxUHcu7GQfUDzK2OgpG", + "N4Kqz8BNd1XFdfsyl301EGO4nxQfBDuxYb/uRgDGZWIT3N5exbsqXttY66asgF87VmiznDgTfCGIlOee", + "pbcQE3UyaSQF1JKyK31XONahDVB3UR+NnBdoTdQEzTStm+fGPaCTnahEC8FvINdopt/VfG4+0sq7fm7v", + "BroBHDYA0kL/JP0ZDBfPUCy4MY3GI9u7LVyofzCtJW8aHtKxUUHBWu715MY+A2h2YXv5//9//3+zMZq9", + "NQNGf8ZyeYwWei2kQpPDyWQy00sy+5vpGYa95tWs6ZB+drSJbey9u8aL3LDPUBNyu13uOAQ6VuZES+sD", + "cG/IGgXb3cGCtQKsG5McdqjtPpMFHzL/OmEmeSxFoZX1ZTI3aRnGjPB+UBCMtSUUFrTTNN6zwraE8L0H", + "PaBsySVhrliWXlUdMW3iIPRFVnGbAaEfS7zSHAZDiyLjK1Mlf6tYhk0z30nXMHfpaX0Cd5Sr93qDcypC", + "p1p0q8JEjJmWwFRGvYfEBMEzbuKAWaM8fSL+PQ4Aal5xW8YbOw5rwJhaiDx3BxiugSSWoWfJz7sMIPC7", + "yTMINNN2rDGUXiZg3yuIg2OVNuR4g6nDS8wpZ1NtSEwcP92ASv4FXuryyHdmRavtSM56Y3YESqJourmd", + "eW3Fr8hLo6uu716bTgm09KUgjFvuHGhQnV1uibR8jhlV9J8kR4BOJtAcZ/ZgNcq7qZ0qdTf6RE4AIeIS", + "Z1Stp0te5ERsKqzZ4LCgvvTgUL5obzYzcd3F9LKS62BYge8veEmJimVYkTz95qLgl7iY+mnja0wLVwm/", + "06noXg9eCiHZK7mcgp1frLr61e9su0pnlVwOWCHTdP/EG+TZnNa4TQd9S9XelY4taFQgbyxUYujup25u", + "gUXZjqXrqJiuAqO35PYop8F847wc6YmA6HpztW3h7BqHcEVYojTJrRCZUgPVSR871DIqFcmnDSiVYTfi", + "v2nHW4kzEkOrJKCGsA3UmcYFEe4CmNjHAAXVDpKBTtRgrdTRSJTMU28CkgKvtlgHvfAv7Fc+4DmxCneW", + "EAANcTG1cXK9uYQJPKPhaammH/Rn04+NXchMIMg0rrl+D72bflBQpz0Fad1Tz6Q76ibCjuYWOZqLnJp0", + "0lHDOJBqBi7C0zwsqz+IWuKC7klCMU1vM1Przc7TcAawXcm0tbvaKxtaE4BtdsXV3FmPzXgawKSeAnC3", + "wJSpzm7vt+IKDAO9qIdhAHBbOc9e6MdkNB5hdwXwpRtqZMOMwqF7WdRghkvMcj6fm7KEnGW0oLh2cHjU", + "oGnFQpXAftX41VxEGj8682HBpY0xsFcVhz9e0BVNgg72lXtzSdeC84g0h5H7W85rYkt5sV1RtKkBZwvZ", + "XWeN04yqINChrsdGGcwPVjD6eUkEVQ1kW9cJMhhtow3udNPYsTOh13dH/0NtVbE0oDWTgmdXQ+6OwzB3", + "BxcDgyCUe+NeE8ZjePfOyo5tUW95cLGqutStrewX0msd4nNptYmVOSxS+k6CKvuKmkVBOH4zWtI8qQyk", + "5eE4re5F6L/AluO2UEqc+fV6BzrT+zgHedShpp7sUnjTp43ct+Lh829izaM3fefRluk78V1moNTbEUCl", + "NfBxci0be3fSWVUSngpFtf1iJ4v3bbQ35xnx2psmvZIbAnfH2gozOjfumYrpG+2cGmY0TFFHvwliw5in", + "gmSExuEAXZibxlRT++QGqmjuq041bV1wnG/Cia41LvN6Yn/kEj9++izyFppfBlnno9mNnRtEuhbcMJvU", + "4uihi14Mne0SNjcV5ua2bZ2su84S6srluedLWHz5goNmag016/vrVHeDnOXPXfw8q7ktSXb8+OjJ97e4", + "9flOUJSJn6rAtX3NrTsEVirVMpBDj8aP34fRXPppSu7fs6GFaC5gGdEbNKyA25DdCoyaz54EB53tTG9U", + "Kmrx9sKemvC2NrltAfZsmnDE5E6Ge6TgX2wXrkvruLJJgXctjWzo4ksSpnXdV6WsukRxSvHpKVdcCpKT", + "jEjJxT1aBHwftVXgjq2N/UZGE/J+j6RlUlwcYdXKi/YD7F563baCftat6HZ5Ed2YEwUlw+95+gLZldt1", + "V9vdAf5U37NB1ptLtCf++ifvps317cj8Nicsg1t15LNN+mnry/gQyChAnbpX4j93Pbj18DO4a4Fz7lu2", + "wmZr602P4ebObAE37si8txX3h7JdcQgzFNMFYVZ/bnQbCsymfOzpBVpFP9WtJpX22hzgC6lHpodt6wuC", + "DLOSwCk7fdaK9uQbcGCRdSLanNAJ19RtWwdHg5WaCk8kgscNZP5QmWgpsw3NoMlAzfyp9pneEsfNC5K9", + "AHXcj15Yx+3P4NHd9ppkL/FdHtDNPptNZP9xPFqSoml6SRyA24N7RlbSPrC9bmPmVp0F1psNtr+2ma9t", + "KQtsYCkTWXPRxo296vLjvgidkLs4zyMY5qddkrgbGMLfb8JS/x6t+9GRlZwt7Jrum4/VijorATx9Wrfy", + "NuWabexO4LIP2Mwv3IaF3QlQ7t9weU3DbsDbLvYu4NneUx+Fq373/ZPuVb4XT35aetyR8/gzeUfjC9Fn", + "844Gt6h7MIUHB8Owwk6f3QfWZ7xPepiafNiZsKafvirogprq99vqFWG8XRe82Ml17Stuh9J9xa7vnTza", + "ja0Mu2gD3TZ3p2sDPbTN8PAz/R0SvFIEQWg+uuT5+hjNfs+JwrQ4Rr+b4YzRZDL5+HE2QW8xlSba2/fp", + "ijFKxUUiM8c0tck071t7aV5vLpFt5X3f5F/6noaX0IQVMHO3PosJmplJzwD1urjBa4lKE7z+HEkO8fz6", + "uYbEzpEZGIIqG7I9e1DttIqYCBZvhGxCvaFjAKSTSF8OAIwUUgzMC1Hk/MYDKr4qJCJ9TUTGoFFNOpQJ", + "x7VJ4P0VzpaUEUjtjYvgSIULYpzTVtGdpA1lGXfh3kNWbslvdPLFXJB4zTY5QT3DpSjrNCdMbS8Ubf3c", + "9nGVNO3FFeI7zivCcuPBHN7gK/dJorkFVuQGr7do7Sf7RWqrbJRPbM4b2O5b8zHqy1bsMiD1tdtpQWpQ", + "wMLPi9TrlZjRONzVekANUe0JpoOgvId3x+v7fSkacRjD5/Li3ZXn7R5CCJz6BMld9qSWdMG8XjAkKqDA", + "UtXx8lOpSBlfyKxaF4V+hb8Fhuhojyw5R7+6mIaRLz+qbdfm4+AHYqhZLIiaBrZv+4urcxwGltXhZhXL", + "iFCYRhrLaywVeuEmic71JNO1Tj61l+2OY2YFZRktcTG9IuuoEph7gP5C0vLy30zhre9vOV3Y9MzmLe2l", + "eTLelNJxF3c/1+KW4TSu0b6wGsNX9y2tbcHfWGgn3Ft/BHHSU2MFmrzvtb6Abhprfa+B8kGE/D2WGQgC", + "VmNJNo6NCw3W9dFe3Y6eJnuFrqfIzu2cOqljMcVLqT3f7KVJ36lrRaxDUzt7+zKGa9riZv0bU6ICWMWz", + "twaCATChOSO6ZB41G8XrNNEJugCw/IyI0pRbsvVewaiJfrv48cBWfR0DFIt+jutyr+iSVyzHujgSoH9z", + "ppkISlv8+tvrCbJVYvWz859PDh4/fYbgbgX3y7kuYaBv/noQgAOBmYJv3UGDALtaLbmwV6o+1XQ7Jhhu", + "Lm99uFZkWtgXGhj5rbtqfeyEhsqjgx/wwfz978+eJLFARnY/0nbm1ttzYqqs97Fq85slwbnDlU6N7Eka", + "pWRUimlHmE3imu7QtlLGziRKynRy8P4/Dht/J8exTYpqMJBx7TmoZ9KQDX5p6n2IN93vajiMaBu6LvVn", + "NRrxLqGmEBXibAI7BNMYTLgT10rEBLu0Zz1I+v5EpyFF7dLYC4p+Jjj3SOR0mlArHDhkCtrA+t7r4l0N", + "MMm6n86D3Xv3fde7zMQHppp+4rjK6e2rWYS1PMLKFuPRiogFxFGUXOLiFl38ohtCZ7ahqPVbLY1p16+L", + "OYjuPgrojW3XxgBZGpm6Y6UGG0mFn3Y5bEZnphl04k6n0zwVWFqKaXQmb+Pei4/+1BQ/HPAVBWm1trLC", + "dHlb9jsTEftFcr7V3pDYoDOBfvXFrksxjJt5SfSfWcFN9WQguTzNyGeim5FLsQtoZNCyhX8Mbri3I/yz", + "uqGa/OMTcrfwSN9CFFa2JLhQO8v1OnjsZ9NOy3EUH0ctwZkYSqcQHHefzw7weRqEjU2D49lTVXBcxGdR", + "LLRSAjK1xx0SI5ZXDa3+LCo0kDr83zq73T6x7C696eZedvfB1Pb23RdTfQdpbakJNCjrbW3v7aCr0kFF", + "7mrVH7YRAV0kNuKLSu6weONRvV2LhNeVq+yMQaEaYVvpxFfAWSKUtp7gk6Pb8KOxANtEx3vhnaCaw6ZR", + "N4owDPaT7RJo3RnoGPFNxG11ziT3exZtUZM+WzxWdkCK6qfWwPVFO87IdV30b9j6v7ruLgbIMwgYHWT+", + "e2Pf7fCIfR6Aj/tBbrjLZALzA3jspRodQ9vH1po5GtfSs/nAN62/78cZ2BpPwBNRaDitD7CY/2KsgVbm", + "f0hCtuMG0/1WzynFdX+l5GZrxKgN0HcDgoGCiKePvv21rgvXwH/s9MYGV8YTO6DEFLHNSe45KzeN1ac1", + "hz36Ztunot2/2/RoWog6dI22+/PJ2rfosbaWf0xkq6fv36GRbeONu37b3sjEbRbIHiQf4yuaSC6PspBo", + "m9pMnog2ScwsAa73gIdLgwNiEH4cwQI1OBJYLsWOZFUWWJFfcFlStnDa17YQkwD6e6BnWZnKvXMiQIuj", + "LCuq3GDBY1ab/91FDUmGS7nkCaA6kyk0HWZnjzKyexy/26Wm9uWkKrtyvojl0Bgi+50pSLlRRYp6CcY/", + "bqzP+3YPzT3t234iFiRKZ9+SAt4w4qFEDwS5puTGVKRT5uq4MmMxqKNQFjNHYLR2Izh0M0sRwqoEKF1c", + "UCy3in4zH6IT+PD+I+B4GInljv8VpqzgvJxYE0VVFFOn4uqKvN4UMbl+FKkHW37YEqH3S/+WSv0ggim3", + "QxyoIN64mozXvidusojw4W5sWMuomBsvbsegEd1GwYAWqL61iCENpVi6zacprua8OAm2ZRs9Cz4jUc2H", + "E/dbauO2ip/sCp2xh9Y0FcQUWnwe/fB4u1gh2zDqCJOndexTbB+IVnDDCu+U0vXvvM6Jkey49Buh+Y0k", + "agTQU6b6UtaeHP3wrB7Ozx2inpl4p8E+oF/h/Z9PL167QSfzvLRcGI4ArZsDKdUGgF5R5v6M1zaprzZv", + "rJwXtYVc1DVHem+oTcloX7J9Ls1C2nXr2PCe8ibxa7tVQ7SfD1/gsNOhi3zie2kvtNOMpjbuu+8+u01Y", + "yQp/CD+GwbUuuL3CI7rXWPXNZg+kdmMTxdR1/HYgmXqfOsmku05g6r1biOhdqcUDMu9p5hPTTGLFdiKj", + "kmavKdtWxnTWsnHhLO2KwCVhyD61Zdaky4CDTFCoodMbi2bwAaaFHW7/gllFNfymHl0yvsnEHeqVs1fK", + "LS+Hb4nClJEc5URfMQTcAulqVZm0LguBKKFimtKFcMicC4Kcau0uj3J/NbzfqyEpsTbrhlB3A2d+Zr/t", + "BcG7y7vniisyNbWmtkwNg0+RsVj1xPLf4dX2nm+gwY2zvYWJW2hr8W51MW3LhpQEqYSuH1QU2xazCIpJ", + "mppwSy4JJLSiJZZILnVtSR1WbANWQLIUnC0gEBmb+pO4KPgN1lUl0alCK7xGUtGisDWhTRFppgOqoV3w", + "lJiCgRJRNUG/crXUoplKKGyH1yQ/1qnJpY5hdkWrwiK7UK4LgqHbAgvC0t1orQ+uXRlLvxWO5hfL7kji", + "m7Hu1pfsNquCZbBQdI4YZySqDdYbMayFydTU6E+VECZqSUSzirAvyfeNDGv8T5IcEJdLak83d2GVUBO/", + "ksTX+nrodlxPk0pkUeAnm4Hf2o/Np1vFUiddmwOwfkCzcajq3TtsNtdWG4tqI2qBoOnawEqhNVFjdLOk", + "2RLIXq+SJfKathMr31tvKqr87317IS2M29QaLWNjninVwTgCXzXAR7coJcf1/KY32ARgK5xYzhNAF0cE", + "Z0uo+E1XUMp3SZD9DCmsFSvJi2sCdbXtEtrjdIJ+JUTnP4TvTwIp/CMMAv3NPr3Ai81rnRj4+2ZezasI", + "Jqy1dn81WR268LEDYmjIEp5FV5MBJOp1xtCV+ZpnDaXA3z1WcjGo3HGt3HtdSI8ZDdLg9TxMV21vcnMR", + "Uutkk8hOpOQZ3SUROgwgMX6rbZS+IGDJftwXQ9UuDJFxpgQvpmWBGbH5bbAZNoscbjGUVa2z1/fcXQei", + "IHg+xBHpU8xNhBURW3+UToPtW7juPNgGffA6q8yMzc6rvarj1Fa+j8ovtEilh6JeEzy/jVNsw72nJOLA", + "HanuDvQcMaIVU1cyQcsq4+hr6xIxAvjAVQ9gvTeE+t0TJ7jL3HCrSlvFTNS78+nZtvW2LLtTEv26rkv3", + "jaXRzbAR/mYSAWPD9SVBkQENJXi7zbQ9HO78af12tb6YB6tX5AiudchanIDTOSPIAHbWmt0Emeh3m1S5", + "0vM1f5clwQJwZ2rtvo6fHyMTKT9GOgIevr7EkkAp3BuiLzNcrEjeFhI2zd7DcNVRTiZrulF0SeF0Qv5I", + "97a1Hqw/2j515eN4FKxMUpnPCc6dtWurhg24ktw+h0RnYwoil4xIOd0Rb3Rpb1hbf7TTGu6a6BMl2aSk", + "0m4paOZbEw4yXYFevGUh2V2Taj46uk4WXd0h+ScOsB7m/wNJ44Ks+5oMAp62v3NuvSlNY7ptJN7nMAq7", + "McpxLGASTBLzXCMnKMwAWpo7Z5DhAzInkCIpCnJ7W2f+e9mQupD6BKiX5HpLgf+SXNvq9lCiXJ8/x/ZS", + "DvF3ILFL43tAv719DZYmoa+lJoXeSHWOdH1uxKtExJt+MtUnJK/UdEVZpUgcsPhdhNb65MlRusrYqe7h", + "wrSDfrHtJMsj7B4S6RfyrBEVeZaMifyYyEHTW7BhiwY67vYbdZcbFRmX7UvJGb/fYVN3twWFWYY0CpwJ", + "2uxQ1sEm1FB6nz563AFW8L7+5+Rwenzw/tv/ZepQHf8dH8z1C82409NVh1lEO7C0atZwzhaUVR8OH+BV", + "/uzJv7BYPXvyMGzuzH2VapEXNNMo9TWKYARz8azz0gEfojaaXCvDoLG8QSb6Js2/sUdRi24XgkVpzyZF", + "UhvsZP6913ROsnVWkK29DD6nVV+3wTTr8kENyMoVpMXWroAlEcSYo7m+xWkwidL4ABxOTB9q6W7IA/D1", + "x3HSg3Bn6fWAs+ZgJGyOvZvSYEHjINIiHACvZg1qwqX5+4TqMJXXYWGHmFQ4n+qrU4RJVf/WxmwPs7Y7", + "wbKDPvvg1ew4pkGCs9NS/E8rKqW+B6+IwjlWeDQeMT4FXBxAHZH6ApYPg0Kr5+2/S0+sxkpr3PzTGYC9", + "YJn3ViElPZioyskmqdOs6xGaFxoEGJBzs/Bpk8KSBOC02ZRzJCW7apnUJ7l+CVhsC8H1tyVWVjahrOCM", + "SESZ4iCIllgwIiV6MJsJUnKtfM9mh/qPOfzXUCb8EzD2Z7OH1sX0jpkWRcVAVRLEqEXGZdJSrSbv2Dt2", + "ERkrLHYxGCf0V5ayvpFoNvN7NZsBQtUa3rKClDMtglmODDjyO1axbInZwng1g6a8MzZL2jwAxMDBbdbs", + "4q1nd5FFbiB3ulA5v+SSDTm5HiyIax3cfEgKXsLpfs8FBW9dVmI8cmS/VXBIyQEgZDMggG17nC5YMQ5p", + "0Kx49/Kl5MYvtZTqFhvxKRka93xBb1nJEEcJ/rAh2LJamZ99onwCiqWjr8Ryx/eM3YLmBjHiwfvfj8bf", + "PYr0767sjwDRzHHMs6dPv3s63q6QYDqCzjaeWq2zjpzz6AW5Yxizvwxuef8zN15/Ddx87es1oITN3VWI", + "pG2rd69a4ixtqUxMaDQ2XZtP2pP7CJU/57wdYuDjb6yv9gB8tejk7HQUup7sS+Znn609Opo8nhzZGECG", + "Szo6Hn03eTQ5gtxqtYQ1OQwR4BYElsEHXJ3mWjWnUjnN3PAv0A58/fjoyEPEW3lclk51Ofxvq7kaihhM", + "OK4z7Wbr8bg5IkY1qoW5PLh//ERU28rwseVOMRhv86pArkXd6ZOjJ1vNrDdb4uLizEQRJPr/lSv0I6+Y", + "KYvizbujeFZ6Ilj7Lv8OmbnMuOT1F4f13107+BNRJ/6lW+5g78a5Ts5tbu1XuN7BOnUteLY0d5GSy0QY", + "3VsIpAZl0oaXIeyiypDVkSsJ8WvWRwdhbPbuMBmNG5t3Tlheh7/YwM0/83x9Z8v1YomVzw2K5ZcSFfl4", + "jxRjunZUMJhYHh89/mRDOLEBEcc2RF5HVVQCXxZrbbP5R0UqkqNLsqRMbzrSohaiBschCbgrhtIXJ/0U", + "kG8nhvC/+zSE/yMXlzTPCftc7KZ7/eHu9o3nJO/tWjvjC2q0hyePPtEqW0ZCr8CsiC44R6+xWBgZ9/jx", + "nQ6iGaOWGE79CnLvhEJPE38g6UCy1ULuEOymslvW/VZqTGxN9vDmGMmMlyR3Yi4UbGP9I1ZKB0sqXoc+", + "O8koCVMm+vTszfkFgv4n6DdmPiE5qqAvc7dnXNkQbMzWN2AUrZiiRSBpswLTFZgRVm2ZasatJ+/s5/cl", + "V6F9093nkK1B9zuI2T3TJJnGUr1eX+T9LykOclDu8vD3+o8pzT8aTiqIQy8NO//2Ww17KOiKMIWLsQl2", + "P4DSVd9+a8veA166a7DJdS46nt945pugN4y8Y3D6QCUwCMJBC87Am6DZCTNTOwxeRViH9VzZdIWSMokw", + "kzdESPTk6IcxYnhlK3q9YyWFK7/9wPRnPJkUOoOb/RgJbKP5MUMGN0Z/ZAGWLTpHPSf9nnrHTP/kA5VK", + "ogdUyoqg//Hdo0cPJ+icEJTzTB7KkmTy8AaL1QFYWiervM3wZtnqIj0GXQqviCJCgvWImmJcaukua8ej", + "aM9GTdYdBzSXqAKUtB6/v0d2P4e0ujdXX7jOfbdKwPDz/0uQIuPR06PHn2buf8Y5ckXOoN9PJMl1cCLN", + "iD64fXRfLD2tBIt4sZae7kcJmGf2NruNgHyroxS1XNtSQG4nT34i6g8tTILJffHiZM/ZXwhn/0TUELbe", + "oBsdakWi+8rRz/0/aiUkUiTAL4khP8spJ1BgxgkD3RvJ3zHrzTx3txW4iugXJF4RZPHtxsgFjSMLrgyX", + "fOORs8lddd/fyHfM5IfUlyD9+swCW9bu4hmSROkR6bTPWQ1DO3MZjzQnq5IrwrI1uiLr43dMkNLUo9Jq", + "liCqEsZpWlspLGwtpG3aTB4i4a7GFBGiMlkeFvH1Aehyph2So5lLA5liNTucgbqo/4nmWiGjzE0WlL5S", + "8IyQXI6R5KgelxmMUeypfMegpildkQPFD6yfyHhTsQ4pz662Vur0Zn8ZUvg+7o6uWz3Lz2adiwex/QVy", + "r2B2dcoZGeC3Th5I48FDfv9FH17R4QGSe+jpwZl2csHo9PkR/Olu10nNUR9QGIWvGzFPlXR2I5nW9YJP", + "hsmZeEjDJE04rk+v8QW9fz2c/sXZhkAHiqklYRrKybV22B4WxCY3JckVrjLOjqrfP9BRUNqfcCDXLEPw", + "NVAwrxTCmSYwqxBwgf6bU3PEKuulSFL2SzOS18RkPNwbeUX9DCerL0y7tbNAbrnc1tr9TO3uodkX0q3R", + "npgXEjsN+4sDzIuxQf4ouVD1j99IBPFoWi3Tm/3j6Y9vunbc9rXf9aG77jZnl50XxPN3l6vYbHHHztN5", + "vcloyXVgI1XP9WWGH/AScbUk4obKxDbbhvfbPHSb3U5st80xGH1ShhuUmespCOz6fcRZtONjfUElUqE5", + "FVKhB65k6tOjh8fmVslXK6rG8O9rInKaKXOZvAGPso67haJY8Jtc8St7EZVIYppPUH3XRAwLwW8Aj4Qz", + "i2nUGX2gg3/sokQI+SkV6B8VEetaB4qioetdbFbtvGslZ1CIUXNKcZjR06Odw4a+IJrWW+cJ+nzNMtlJ", + "0EFQqOyNA3sVvviJNioO2f1q47lgOxrr53YjWn9IWOYysQNvyYJKRUScl3Qf5odUT4OMD4/ufAgkbw1i", + "4Ib/G8XVfI2O+i/IAtLQBQzhdfNnU2Qe/h6nH37si8SMmXezKaGV2bjZkrApLfVeDQlNib03IexgQoiJ", + "pPuYwCpbJpROcAYYJDhniQ8h6TjT90g+n0+QftXZDBhiFo+uFOSyooWykHZap2yB1DUjqtrAcp+Rtu/+", + "RGxP8BMb42/BV/uDcH8Qvt8lzk2T/DBZtPFIPPQZdb+PLLJG0zSVkTI8HV/aD/5gguQtAaSaz+TS20uR", + "vRT5tFLkHOzmjpV3Fh+AWCAPf7eRGO0o2uZV+Zpfhcf1j4KvbGHGzyZRxsme6hkN6sVOYqhi/6StHu45", + "/AvU+g3B9ir7qVPzJ80WAeFd8H8TIr/7gxmW8jMdy3a+weLCaPbn8x/nfP4EhgML6rPzGSuMaho6LJun", + "KrzwB77m76Kd353NO5i1K7C+lwB7Df3eDd5A866+xK7Sw+JODHYg/tW9/7VawQc5MFMs/VU5Mb/Eky4g", + "nVuT6+HvNVTkUMeN28kvS8eOIC8399KLrnmfHqJbnnJ7FghYYAMHXDciOhpLfP4KuQpskIIrCC4AVBEZ", + "hEKDsXeuBMEraapGQa7u8Tt2gDLOmKmxf2DDluaaFxCf6zfFGkn4Tr+6JFioS4IVOkAlEZTnNENXhJRY", + "R7OiB+b9747kQ/02ZZf8w3FlwRwPbDKx/hGByEUGmk+/qtc0rwrSfBv7J/ZlibgwBa8gBYZ8IFmlVwEa", + "MYFKxw46oG7DPKgBO44RRiuqd4PkAAO4RgVmOckhMNOXRTO4ZvqnG2yyqwHdAC8wZeiBIAfCRfbaHh6G", + "wygFXwgiJYwDUozigYiKyWNXpaFYI8nRHAsTGpZVQhAo7UVKj53oa0BI9ECv99iWejHYh9C3DgJrr6H+", + "1a3fc5OoQy1Iw4IoXYlHf+uBFZsNgNvRPUSFA6R0yVR6QrZxh+SYFRRGv+RVkUMmE5AY4gzlVLq/YAA6", + "Ywg8mL8aEJ1XmjhNPaL6Q4nwXBGB8DuWC17qHFBDlOiyUrAx9jlinB08PjpCTuhBLhNGc6Ky5YHGgc/d", + "4ARRghKJLrlaWvYAcrDcYWjZoPVaeN6Z55TZGM08L8xMMlhz22cPUYaFWGsyndF8Ngm/h0dUL5jJCjNE", + "ZKZkqXsu+Or5gG7QEl8TxDh0AtNVGhTTkMaKX5uwVDPpbyQC2D6CQFZM3rGTYHdgP2YawfcAduHg9OXM", + "ViyUBvHG4h2tqJT1SunPqCs3YhGW0A1lOb95/o7hqEfEKyVpTiymgJ6wrVGEkVFe7WB0EKPelLd0sXS7", + "G67fA/Bls7Ud30PLhRZYlOUyYqPEqtUyDmvEUuBIh6tg4ApsbpulIEs18IqnyhXND+DLYM+gYxCHJuMN", + "vYIOTH82DfBmyYvwJT0OzrwY+UZa5CGYXOZc/wZXmpHnej7/mCEuciKkmYlEfK4X2ycowqClxe8yw9Yk", + "d01kzSvkhgjkB2Y5K5le8OraRro19KR2kKymQj0dFdcorGnQVKq6JvnziNfNppnwBU+SeiygIOmaDkTU", + "KlJEpFFY6vYKkC63Y07YA8OBsQrQnuL/Pn/zK5rlWOEZKijzuwcr+Rx9OJCSHFjmWOFSAonZddDjNwmi", + "EpV4rQFIYMEHXSlhwi8cE2y8TcLrPzv5Mez1U308W/zlYV+c2wN6u48MmTo8tG2+ObMsPOwjfbhtNTIP", + "T+m/et8RtQvF11hdhFOTznOz14anlhh0lBm8MLPRN03iMdHfMjp73Inx+fTkTxb+fFGLbVOd1eDJcIHk", + "sgJ8aJTzG/bcCg8Jx/Y6Uh3QA9ZWHXJOjMZm3sfo6dF3DydNl6YkyEs2r36bH96PRyEj29WwnHe8JZ+O", + "/Ck+Ot6SZ0eRFj063p6HR03lenS8E1uPGvr1sGaajD5qHsWj4514fxSquqPjrUXBqKXujo53Eg9A1Icm", + "a6PzhvYzPDapHP6qljxpzZv3meVjetghN/QLyonwq+S41q6/uS4vqSoOLG6/OJQAqNRnEfr59OK1hacW", + "Bn7pXte/3dtXlP6go1p/pqpAbgrIr5jfC6qKYCcOf6+BMD5u2oZBpri6vUEGMmf7/+QGMj2hv1JyszeL", + "7RQ8DWRmN28geR1CEc3D34Picx8PTcEN2Z+fDWAy2gAUlNe1jSDbAJjW1JJKn69LPuBMIb3N+kKfvjrp", + "p1C776Udxqem8M5AjqA836BIDrMYvX20Ugczj1Xd1UFdBKfek/FIY/LopTLJjyFE/rlvc+AgskpILqJL", + "YlQJI1H64oX7pI3jn+6joCuq0l08DattPO2o4/baft/q777FU0SZe0CYLxlx8ItCUADZDMSDark2SEIb", + "cs77glPghc+nDdx9NIqey0uSQUnqUwbFcD5tXNpOmsgez/x+Bcs++u1LlG5W/KALDkIuLdZWmLIDtRS2", + "HndSrfylfgeteK7ddcZO5WpVIi12ynHg3ytphijLyYekJqkbvDB93qOoqHs5ZXP+tV1N9eiRGT6C8Sdx", + "m4LtO3RIkL3QH07hDz70EJLH1vdUGMXUOHDdQ+9TyjibU7Eiee1XcvvuXUDanyVvqMqWGgPIGcgm6AW4", + "yWSNxW9G8I1E2o4MZfwBCcQAzZiCeLZe5HPtUtFbgrW/inE/sE4KO7Mv3DeNuX62orL0fgdDbmy2j7Zv", + "tA2bhV5AOT9tbNZFKD7Y+120xhNXlejsFGlw0udIudqtjKNfXpyBV36CTtzG2dRbZoo/Q0umHqFB9nxy", + "9INH+gKnubZwY2YdzTUUEHob4W8CeKknMd27RxJVtv2M67ghnfRryrW5AcUAqBmQElCEwJlBKQWr+9QE", + "O8wQzldU1f7YpszSi+BqoBDfl9LniYIwCUkIQ/gSXCPcVHnUQRR1LIVJ9cnRg5kdtBbCs4dQzNH77Z2n", + "VBBZFbAMwCU6cMPNa8ml5jOiNURYlVyD4nCNvcOoXPol1+EAsAjGEIhmdtDagYpmdtptdjir2uxw95ph", + "2MW5299PrR3uzI6fT0vc15/ZK21RciII9A2ngT76uciWRCrD6Actt00sA96EL3ufwwDMrChNql6BXQp3", + "BylUneYn7Qu7i760i6y3ow4ssF36CqpFd3ZnUa3vorsT01Rvd2VNOanOgnKiD0wl4H9lWm8wlfe32VDT", + "S+c4lrwSMm1NfPwksCZ+/6dnHfbEn20Ln9aeCAyyd3jsmDeKc9Tv1kyJrnZocCzBTItd4VsbWXyzOa2v", + "6Psfkr7tWu4pfCcKb4XbRBRuj81uVx2A79koVPeyiYPUxRvXJuKwkqkoRv3pmWt/ECf0OHUeH30C382g", + "vCQ7pdHHekC+oC6slptz/Y+vrp7ul0jN0doG9OxJOIR/jFs+XbWAnwUpuaSKi7W3DsA9HG6+OIi+hxt1", + "B8arabfGDbiP+6pt3XT1mbJrPclvQbRHn64ugl+VfSrvPpnfMXvNlQlBER59LWScngoY9k198J2+TBp0", + "twERuV/8mqPPyv77M8sZzHcjRIf6dpDwlnQRnQWLCswxfzgadHM7E2ROBGEZ+UymU224uZ/DYVhmStD/", + "7SAOvgoO8pvdpfalEJ5MwPiXxBv3ph26aZkpfyYMpk/Km5+YS75ejr5Dx02vzPvqfTZfMgzkJgnYp0bo", + "WMFetda+bly2P1H1c3UJYQ7owdlbObYFVOTYXYPlwz7F18Qm/hFVDzuzvRJ8CyUYefLYkoih5sqBCXrY", + "XPbNfvsN5Dcu6nCJY3RjYkmURNqRBIgQPipIEzrWOdG+7FAlibTxKAcmDOOa2IQEwStFnluoB1sS2zES", + "lQgXkqNrKullYbOPdXgLrxYmMkT3AHWTprbI2bjuVA8H/jDBEy7iRfZzHSzQhVmfPxLzxTPbM9/tmA/W", + "Enkyadc06gjfMvFwtoYelMzrY7OQZZ47yBSiarCG+kPNNrUpdowkdYFOpngb2GERZwiLS6oEFmvLrlTk", + "ByUWam0+h/Ati9wAKDVUqnpAgJgjge1taUCdAQ6VIHl2ZaAtJDfRgNa7hgso3QzV42x+NFQGzCFmjaqH", + "XZUcvhyOvPvbRjSpz3PX2F0efC6D9N40/IdQwAeL0G41JsAZG2DN2xYr9itTp4PpNcIwB/FzEp/9V46C", + "NQZ8C2jaSu3g6JnsdYRmLF8vJl6Hic18+aUQ7N0feGZ+n7F20d0wyz6zbJ9Z9jWdt0XsL0vgc6YPWMAi", + "OCh5QbN13wkLabRn5rU/0tEazGsfFHrr67JJtvZksq3j6bMT2T3kztRT+jy3v9sQ+P4I3B+B/355OrYU", + "4XCZ1n26QnF8i/K1oXj/OWZU0X+SHBUkX2jMU8iG1ZcwzGw1fy5suX1RsefIVCnThsQ1KgW91kCuPQbv", + "c/3lm3Aon1rEdkTaXwrMsuWtk2f+bJq5X3WhvYh7hWFrZRVIuEGJ3WwFARLdfBO4miB9fVHpMPtScEBn", + "GiPKsqICe3ROpeb2+qGxaWe8BFRTmhOWkc6YfDuMTxQub6NCYJy9YfNmWMG/vrrA+WTEul9tRxfOk27p", + "AhwLh7/r5TTuTipX1OB0puPZX5oXtCytWMaFIAWgelNWVgrlFC8Yl4pmz62vkmRc5JA/b5PLcwuN0yYQ", + "2/R/6SG99A0Nkq52/INE66kiq09/PzLAiW+u9nrjHu2rW6Q77gIeQBETOAbGysLud3BwAnKrqcTCCzo0", + "ABvHIlToaPOjffGCw2g023xqXrz7a6SfSgyJ++mukTAAu7I7wPLuZcL+Lvl58jk9UJaRTVYcdEklB0Mu", + "e5GW/FtGWchJWfA1+M9WWGNocUZQqav7YJ0Bo+iKTNCbOgHUfY5oPgYwmMu1wbzRszBvn5jvM8wgnALN", + "oQyGqUiklpjZAh4rqp6jOS8KfoMY+aCm+qup4ldEqzmKFraGib4spTXbcz/h26abRhiij462BRHtgjvw", + "E4p6XeEPrwlbqOXo+NHj7+vmz/SqXdjXP6meZNcxf1uxM0CR38vGO7iNfkEOF22jevzpAmJ+worc4LXp", + "94uxjcH9LJQZ/n7mfzNFKYi4JvnBpf5mwUedacY2Sq4uoZYjvNCCVFRMx7BxU7mmIWa/kehEvyWfQwAa", + "IJKZXwIMs++0FA0qcXh4sRqLFQwAlzxf+8/0Sz4Szo3pefJbaBSjnM4hzlxBQ1CbzT7xYh7g9XShFROq", + "d0kIcwBj4xB0rS2hzfK49b6ndOlQdJkOP3WydDiCN5Xy2LObxefYVl2CIb3SRWVbJPZfFdcXfaLwwtV8", + "8jvzAKPffjt9+XCCzgmDgnO6Xosu9XU6P/gFawg3zmx9wklvCaePeyV3r+Tuj7Cv4AizR04gVAeeYdH9", + "4PB390+XA28kesLyqH+3QdY2RPrAwUt6QQTJDzUY5JOElRE+CUa92aIRjHAYTJIbzUArYyKccK/i7uXD", + "Vy4fDKPtIB/GaYPBCWpxe63zPUl6bL8oLj/aq3n/xmreXph91cJMB+ftIsmSKW1vg0Q2z1vO6Q6Tm0Ae", + "DxUk4Cx/+QbWrKsPY6mgzLfOCJUKF/YFLxsfPYbrOeN1U/7Z4+8nqFeu/tCVa/YZReu4T2S112UMsT/k", + "A16VBUHvRt/NH2WTyeTdyC9ybhD4caZoBom1Fk8fGWEZLVdXkWK3tqOkm6t++KmyB0JbBFDWZylF89lO", + "KlP2Wv9kT6PeE0u/p83++6Pry7FQfKIj5wzqj+dU/4l+hPoAewvJXSgNTx5//xl20En0vdoShuDeqY3m", + "kHwgWdUfhPvGOW51oRsvlaGIpvt2jBi50ZQ/p0KqCXoFdfPdY10u/Uq64vkuMx5KkXAGBUMEMWPud8e+", + "qsf6WRSVve93R23Bb9zeCby/VP47OIFRJKruQEwrQRcLA96Z9hmfKywUiNNa7DJ+o69Fzn7+uL51MnJT", + "vzdGlaxwUazh5uRqUClQtLWzuCQQFBx4eWPHsOuOKlukKiHGL8z4P7cN737vZnaSW4FrP75fgdt9TzvJ", + "MlIqqyDvb0B7H+3+hPnCTxgrXna9ALhckSEVOtzLHfq4a2pYWRpIlrh91SnTzCcqzmGn2J1l5Nag/se+", + "OMddFecI6CuR6bQxak4rN/Z9o/FQZQDiMs6uiZDGKN8VVmY+vK+oMtP6NgFlR3fd+f7+tYc6u2/oFRdO", + "5JmpI2PR/Xn4e128bFPtDMfa3bUz6m4HXDLusGja+y+MefdHivf27kSIh1hkS3pNum/dLwqCBdy6Teli", + "7Xe1FFL7Lqm2iJ6gQifM6ldXlVToEvJYMlJAiWWwmrZI+cR0/wcmZzvDfe7cPp92MyNbYtmVmQ279fAy", + "PEfYlfnvLtdm3vwDs6WZ4J4r91w5QNUzbLMrUy5JdlVyynpKh3777asPJRF0RZjCxRhxD24y+fZbcxv3", + "WuE3EgVNjiFmyJy8cB5fQR7VN/Ide+HfsoYXfURHt8Ya5cL9vCYmY4lxBjEo5B3LeSYPZUkyeXiDxerA", + "mM1Xea/h5EUw6a9NegyyntQT3GhAQfFi7M0nu6CE7Z1vPRRlxVEoabqNSP2ypm7ZBKh5mWMFhREvfiBY", + "mVIBWBGp3jFFxIoyXCDtPNOOuXkliUQPnhz98BDdLKmOdINnOiKCMjQv6GKpIHnyksy5IGGnIIjINRHv", + "mF5OE/MJcmlWO+pmuiX9Ec3JquSKsGyNrsj62Hr1tJZDVeTOMxg/JH/HeKUyviLQv95jyipAh0JUz0RU", + "2nmEbJ1/kIZouDCMbG31qn4eaXj3Zr56RmaiW3kEj+5hGF++KP0alKm9Q6zPyociPk6L3R5FMLDNDzMA", + "alUv+AitiJR4QWSfSfBF2Msf8eIWzG+n69veZNgwGaIGyWx1uyHzOReqJ2iHmOM9AzPig5l2es7G6J2L", + "IXw3ejg2MA81zQuCJdf2iQPTOtQSEzQnE6RReApyTQpvYuSMNDSVrBKAy+AwJBHXSA0SPZj99OoC1dCS", + "M7BbSkR0JKfFhvxGopnpdArdyNnDEGvCdE0lmj15/Hg2QeeKZldrC7mTLTFbEAMukVdC63AIZ4JLPaOC", + "49wATwoiFRZKTtAFviISkfmcZEHFp3oiEOKv9ZbnTmtypZakDWEyxZr0V9e4AGA0BI0TA1Nh1muFqU4Z", + "0F/qodfuhYJekWBySyISMJjnXrK8Mlv9B1Fgokl9Ju3FjuEXnpPCru4fTZJ9yZWKHNl5wt5K8i2pKjor", + "JwSmkJ9PL15/vTaQRsMQ7n1qHkK8996acWfBIOhnTVE1FQKB9VGgVQf7Dl+W6/RA855B0Eyrlim5z3In", + "n2w/fyzJb2f1mUW/G8TWiuydxtUOHowLqT32VhSr6qx1jqIt+3hJlpTlFr6egeYytrVatZ1agBkns/hY", + "+ikiLJeTvXflFnYQnpN8Dxp62+JuLPfCuBZ6W2kFK63L3e11CJr0dyBdmJlmS/srVd4y6+414cXBVG3m", + "7I94U3Gm6GuzqcS07peFFHM7CagrYADgr5gOktRXxpslMXnUMFozT/RAEnOZtIJq/Y1Ec0yLSuifFKbF", + "wzGSPChrjUwBAm0BMv3fUEF0Av8KK4PxCkLODhVnymSh2BupH3DftQtuB3+0s1fPaX/p+ne+dDmy3kq6", + "GlHXaTw9zYk5aDQZl6aGTh1MqVfT6MBWYhqmpMyyZ59V9VfT8R/JnmqmZLs/ZXO+v77dyorqSWQrirZn", + "bF/5g0wf/QEh3yy5tOdWhhngiBMkFS9LrZcbcJxQMWi6bJmO4FSqIO+YOwClOaZuiCBGZze5jlii2WwO", + "IBOzGXpgytMLIglT7iAk3inR0P7VkqzesRWHiFDtJ+a6yg4c86At2M9sPqW0SQ12yHasY6vrZFgISrz3", + "ljD1joW3VwPUq/HS7fdAIh8AAr3gUpluQ+0CFkFhluNCawNxFIx8xzLM9Kra3SEAVgQF9kucQXF/heXV", + "gXad1+GwdjPA2T15x96xWein3slRDb1/I+vLVuCxfsdql7UxgusdxDJ0Xptrl9k3Qxh2oXWOlY39Q7OZ", + "yV+CIZpR21nPZkZPwo19gW48kjEpJEGzGeNT89bULshsVoM1WSJ8x3Kag1oE8FFipRfl6ZFBfAKQBCWo", + "AcuvV8UshblIPMAAiLMQIMzlDSElYGiGi0HVw2RxED2nzxrReG/qlJ3c51Wo/CD2IZX73NwvueDkZw8q", + "sJzipelbfStfba066CP/QJ8WfZAJvDRnozPEWYQb2/MD1bx1Q9U8kj+EWzmvFLL39+C+b8+24NCAIwT0", + "j9lsrFUGmymilQZ/xyYMDjDmcxUhJeShPkzh8NBDnOo3Z7PJO3bi1Bai19eeDZXQ5y2uj4yC4Gsioyu7", + "fkzhIExcqhUvLyrxmcT//YpfN7e9/N2HtH+5og8EkmMVy4odQs9o2I5/5eHv/t+NDMrWnf0Cy6s37sdB", + "vB42PYjbffOfnt/j2X0eLtdjuB8uH2a6Cvq/ncHqywx2/6JghENOcqyqeTPkU9kbCHEBbwxC0ojKTt8O", + "TSMoSd2DNCcIU1M9hTvpEppDer6m20+SiqK7MyX+bxGO8TXIhj9YSsuXlVrimLTJ4nUaSSq/QX91T0Ai", + "uultUEQef3Un7Cc+677ec/kOdfZe6bTHMxuybu+/Pgln0zistOrUYg5/t5rAxuvFoFtFrVZsvlA4neHT", + "3yWM6rC/RuyvEfd6jRjOewkYixQ4xedgw/vRck6yWtHYazl7LWev5ey1nJ20HINTsoWkFQRLSResW9a+", + "tW/8caStm9Fe3u7l7V7e7uXt7vLWSZLtJK4S6z5xq8R6r9nuJe1e0u4l7V7S1pJWiXWfmPWxuf2eyL/V", + "r30Kz5zv7jWdk2ydFaQbLK4eWvjPrxBx/0tzbEV77mgnoJcBcPuXAjNd0dZ9dNyKxm/E2C+xi+AuuaSK", + "izXKCs6gcmsXVJgf5z350xq9bBUs/OjORpFiiX2g2j5QeF/E5w+DVGnFZijPkmI3PrcPf/f/dg44kzrS", + "Pslfwu9h+5uvSmHjg+5LvvmhXrknifDrvRjbx9v+W8sCw6qbZcG409v+pbH50ZeiCu1j574U1/btTrrD", + "kgs18Np6Jsg1JTdn8MUflh9gentsz687nrQmJEu0yFHtDiwiyFwQueyzm8ML+8Nir3DuYbb3V9bt7csg", + "Pm57kgsiqxXpk1L6+V5I7YXUXkjthdT2QkpLj9vKKFnJkrC8W0idmxf2UmovpfZSai+ltpVSVnwMEFP6", + "MyKunVSpRDE6Hh2ahFrzQbt+/zVhRBp0Ui6yJZHKSK6DJcGFWiLBi6Iq5aSWTOYBbHbc2BuoeyUzXhJb", + "P68qc6wIkkoQvEIPzOAOJKCQXOs1ehi0a35JtPtLA2YsW2Ll0UmCBvTvic9/JSSXB2teIQgxGCOcKXqt", + "nWS6McBYQ140Bs1hpbfeFPRvtWnxDkuNEYsL6ZqS+rk0IGH80swXGVyXcAWpKhKN2vxqOUYrIhYElbyg", + "2Xpcl90oBZkTQVhGoAO54lcE5VjhSSvfW3YO+sDANjpsCGgp6AGKdoSDdS8mGqyPnMIJftucsU+AHW6S", + "ONNSjb3UlUB4uQLiYNdUcKb/LcdIE7RZ1oXATJkhS1KQzAGtOwoKPkv0AAF7morkGNDmkD+mTZPwG4ZG", + "w1EriIppN3eeLUle6VLMJlQBkIFLwT9ovLWgcuRzJO2bul9BFwsiTIfkA8mqZnf+5dQMlqY8iyb9A7lm", + "GSoIlvo3Aye0xILkAD9UcF4e5OQaUSYV1kCBdQ85udaPtRD+fwYA", } // decodeSpec returns the embedded OpenAPI spec as raw JSON bytes, diff --git a/server/internal/db/dbq/checkpoints.sql.go b/server/internal/db/dbq/checkpoints.sql.go index a7758df3..c9607490 100644 --- a/server/internal/db/dbq/checkpoints.sql.go +++ b/server/internal/db/dbq/checkpoints.sql.go @@ -340,6 +340,34 @@ func (q *Queries) ListDueSessionCheckpoints(ctx context.Context, arg ListDueSess return items, nil } +const listForksByCheckpoint = `-- name: ListForksByCheckpoint :many +SELECT new_session_id FROM checkpoint_forks +WHERE checkpoint_id = $1 AND new_session_id IS NOT NULL +ORDER BY accepted_at +` + +// The Mainloop session ids of forks that still pin a checkpoint: a DeleteCheckpoint that kagent +// answered NotFound for, re-read and found still present (issue #311), names them in its 409. +func (q *Queries) ListForksByCheckpoint(ctx context.Context, checkpointID string) ([]*string, error) { + rows, err := q.db.Query(ctx, listForksByCheckpoint, checkpointID) + if err != nil { + return nil, err + } + defer rows.Close() + items := []*string{} + for rows.Next() { + var new_session_id *string + if err := rows.Scan(&new_session_id); err != nil { + return nil, err + } + items = append(items, new_session_id) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const noteCheckpointForkAttempt = `-- name: NoteCheckpointForkAttempt :exec UPDATE checkpoint_forks SET attempts = attempts + 1, detail = $1, updated_at = now() WHERE id = $2 AND state IN ('requested', 'accepted') diff --git a/server/internal/db/queries/checkpoints.sql b/server/internal/db/queries/checkpoints.sql index 8b7c6bee..ed4fdd51 100644 --- a/server/internal/db/queries/checkpoints.sql +++ b/server/internal/db/queries/checkpoints.sql @@ -68,3 +68,10 @@ SELECT * FROM checkpoint_forks WHERE state IN ('requested', 'accepted') AND updated_at < now() - make_interval(secs => sqlc.arg(idle_seconds)::float8) ORDER BY created_at, id LIMIT sqlc.arg(limit_count); + +-- The Mainloop session ids of forks that still pin a checkpoint: a DeleteCheckpoint that kagent +-- answered NotFound for, re-read and found still present (issue #311), names them in its 409. +-- name: ListForksByCheckpoint :many +SELECT new_session_id FROM checkpoint_forks +WHERE checkpoint_id = $1 AND new_session_id IS NOT NULL +ORDER BY accepted_at; diff --git a/server/internal/sessions/checkpoints.go b/server/internal/sessions/checkpoints.go index d73bf03a..86f4114d 100644 --- a/server/internal/sessions/checkpoints.go +++ b/server/internal/sessions/checkpoints.go @@ -17,6 +17,7 @@ import ( "context" "errors" "fmt" + "strings" "time" "connectrpc.com/connect" @@ -388,7 +389,11 @@ func (s *Service) DeleteCheckpoint(ctx context.Context, checkpointID string) err } if err := s.Kagent.DeleteCheckpoint(ctx, checkpointID); err != nil { if nativeAbsent(err) { - return nil + // kagent's BeginDeleteSessionCheckpoint answers NotFound both for a checkpoint that is + // genuinely gone and for one a fork still pins (issue #311): its own deletion skips a + // pinned checkpoint instead of refusing outright. A fresh read tells which; answering 200 + // here while the checkpoint still exists would not be true. + return s.checkStillPinned(ctx, checkpointID) } var se *kagent.SessionError if errors.As(err, &se) && se.Code == connect.CodeFailedPrecondition { @@ -399,6 +404,36 @@ func (s *Service) DeleteCheckpoint(ctx context.Context, checkpointID string) err return nil } +// checkStillPinned re-reads a checkpoint kagent just answered NotFound for deleting, to tell a +// checkpoint that is truly gone (not an error) from one a fork still pins (409, naming the pinning +// fork session(s) when Mainloop's own fork records know them). +func (s *Service) checkStillPinned(ctx context.Context, checkpointID string) error { + cp, err := s.Kagent.GetCheckpoint(ctx, checkpointID) + if nativeAbsent(err) { + return nil + } + if err != nil { + return &KagentError{Err: err} + } + detail := "checkpoint is pinned by a fork" + if rows, err := dbq.New(s.Pool).ListForksByCheckpoint(ctx, cp.GetId()); err == nil && len(rows) > 0 { + ids := make([]string, 0, len(rows)) + for _, id := range rows { + if id != nil { + ids = append(ids, *id) + } + } + if len(ids) > 0 { + word := "session" + if len(ids) > 1 { + word = "sessions" + } + detail = "checkpoint is pinned by fork " + word + " " + strings.Join(ids, ", ") + } + } + return conflict("%s", detail) +} + // ---- fork --------------------------------------------------------------------------------------- // Fork forks a checkpoint into a new Mainloop session bound to the forked kagent Session, with the @@ -526,6 +561,20 @@ func (s *Service) commitFork(ctx context.Context, r dbq.CheckpointFork, forked * if err != nil { return dbq.CheckpointFork{}, fmt.Errorf("get source binding: %w", err) } + // A forked session whose source is a workspace (a git checkout bound to a kagent Session; not + // every session has one, see completedSession in the tests) gets its own workspace row too, so + // it is a first-class workspace session (issue #311): GET, suspend, resume, idle suspend and + // delete all work on it like any other workspace, and delete releases the forked kagent Session + // through that ordinary path. The manifest is copied from the source; the forked binding + // inserted below already carries the forked kagent Session id, so no create is ever sent for + // this workspace row. The fork has no Mainloop MCP credential (MCPGrantKind stays none, below): + // kagent's ForkSession carries no credential reference to attach one to (see + // docs/specs/warm-state.md and #311). + srcWorkspace, err := q.GetWorkspaceForOp(ctx, r.SourceSessionID) + hasWorkspace := err == nil + if err != nil && !errors.Is(err, pgx.ErrNoRows) { + return dbq.CheckpointFork{}, fmt.Errorf("get source workspace: %w", err) + } title := r.Title if title == "" { title = "Fork of " + src.Title @@ -564,6 +613,24 @@ func (s *Service) commitFork(ctx context.Context, r dbq.CheckpointFork, forked * }); err != nil { return fmt.Errorf("create forked binding: %w", err) } + if hasWorkspace { + agentNamespace, agentName := srcWorkspace.AgentNamespace, srcWorkspace.AgentName + if v := ref.GetNamespace(); v != "" { + agentNamespace = v + } + if v := ref.GetName(); v != "" { + agentName = v + } + if _, err := q.InsertWorkspace(ctx, dbq.InsertWorkspaceParams{ + ID: newID, UserID: s.OwnerID, ProjectID: srcWorkspace.ProjectID, RepoURL: srcWorkspace.RepoURL, + Ref: srcWorkspace.Ref, Branch: srcWorkspace.Branch, Depth: srcWorkspace.Depth, + AgentKind: srcWorkspace.AgentKind, AgentNamespace: agentNamespace, AgentName: agentName, + Ports: srcWorkspace.Ports, IdleTimeoutMinutes: srcWorkspace.IdleTimeoutMinutes, + Environment: srcWorkspace.Environment, RequestID: uuid.NewString(), + }); err != nil { + return fmt.Errorf("create forked workspace: %w", err) + } + } if _, err := q.SetSessionStatus(ctx, dbq.SetSessionStatusParams{ID: newID, Status: dbstate.SessionActive}); err != nil { return fmt.Errorf("activate forked session: %w", err) } diff --git a/server/internal/sessions/checkpoints_test.go b/server/internal/sessions/checkpoints_test.go index 1b5f5a0c..868ed928 100644 --- a/server/internal/sessions/checkpoints_test.go +++ b/server/internal/sessions/checkpoints_test.go @@ -2,6 +2,7 @@ package sessions_test import ( "context" + "strings" "testing" "connectrpc.com/connect" @@ -237,3 +238,174 @@ func TestForkErrorMapping(t *testing.T) { }) } } + +// ---- fork workspace binding (issue #311) ------------------------------------------------------ + +// makeWorkspace turns an existing session into a workspace manifest: a git checkout with dev +// settings, the shape workspaces.Service.Create would leave on the row. It is built directly with +// SQL (as ready_test.go also does) rather than wiring the whole workspaces.Service into this +// package's tests, because checkpoints.go only ever reads the row through dbq. +func (e *env) makeWorkspace(sessionID, branch string) { + e.t.Helper() + ctx := context.Background() + projectID := "proj-" + sessionID + if _, err := e.pool.Exec(ctx, + `INSERT INTO projects (id,user_id,owner,name,full_name,html_url) VALUES ($1,$2,'o','n','o/n','https://github.com/o/n')`, + projectID, owner); err != nil { + e.t.Fatal(err) + } + if _, err := e.pool.Exec(ctx, + `INSERT INTO workspaces + (id,user_id,project_id,repo_url,ref,branch,agent_kind,agent_namespace,agent_name,ports,idle_timeout_minutes,environment,request_id) + VALUES ($1,$2,$3,'https://github.com/o/n','main',$4,'claude','kagent','mainloop-main', + '[{"name":"app","number":3000}]',45, + '{"environment_id":"e1","version_id":"v1","platform":"linux/arm64","image":"img@sha256:x","policy_identity":"v1:val"}', + $5)`, + sessionID, owner, projectID, branch, "req-"+sessionID); err != nil { + e.t.Fatal(err) + } +} + +// workspaceManifest reads back the fields the fork's workspace row should have copied, and +// reports whether the row exists at all. +func (e *env) workspaceManifest(id string) (repoURL, branch, agentKind, agentNamespace string, idleMinutes int32, ports, environment string, ok bool) { + e.t.Helper() + row := e.pool.QueryRow(context.Background(), + `SELECT repo_url, branch, agent_kind, agent_namespace, idle_timeout_minutes, ports, environment + FROM workspaces WHERE id=$1`, id) + var portsJSON, envJSON []byte + if err := row.Scan(&repoURL, &branch, &agentKind, &agentNamespace, &idleMinutes, &portsJSON, &envJSON); err != nil { + return "", "", "", "", 0, "", "", false + } + return repoURL, branch, agentKind, agentNamespace, idleMinutes, string(portsJSON), string(envJSON), true +} + +func (e *env) workspaceOpCount(id string) int { + e.t.Helper() + var n int + if err := e.pool.QueryRow(context.Background(), `SELECT count(*) FROM workspace_ops WHERE workspace_id=$1`, id).Scan(&n); err != nil { + e.t.Fatal(err) + } + return n +} + +// A fork of a session that is itself a workspace gets its own workspace row, with the source's +// manifest copied, and no create operation: the binding's forked kagent Session id is already +// bound (checkpoints.go's commitFork sets it in the same transaction), so GET /workspaces/{fork}, +// suspend, resume, idle suspend and delete all work through the ordinary workspace path with no +// create ever sent for it. +func TestForkOfAWorkspaceCreatesAWorkspaceRow(t *testing.T) { + e := newEnv(t) + id := e.completedSession() + e.makeWorkspace(id, "feature-x") + cp := e.mustCheckpoint(id) + + out, err := e.forkCheckpoint(cp.Id, uuid.NewString(), "", false) + if err != nil { + t.Fatal(err) + } + if out.NewSessionId == "" { + t.Fatal("fork did not return a new session id") + } + + srcRepoURL, srcBranch, srcKind, srcNamespace, srcIdle, srcPorts, srcEnv, ok := e.workspaceManifest(id) + if !ok { + t.Fatal("the source workspace row is missing") + } + repoURL, branch, agentKind, agentNamespace, idleMinutes, ports, environment, ok := e.workspaceManifest(out.NewSessionId) + if !ok { + t.Fatal("the fork has no workspace row") + } + // branch is the one field makeWorkspace gave the fork's source deliberately different from a + // fresh default, so it is compared against that literal; everything else is compared against + // the source's own row, read back the same way (jsonb re-serializes ports and environment in + // its own canonical form, so a literal here would be comparing against the wrong thing). + if repoURL != srcRepoURL || branch != "feature-x" || agentKind != srcKind || + agentNamespace != srcNamespace || idleMinutes != srcIdle || ports != srcPorts || environment != srcEnv { + t.Fatalf("manifest not copied from source (repo=%s branch=%s kind=%s ns=%s idle=%d ports=%s env=%s):\ngot repo=%s branch=%s kind=%s ns=%s idle=%d ports=%s env=%s", + srcRepoURL, srcBranch, srcKind, srcNamespace, srcIdle, srcPorts, srcEnv, + repoURL, branch, agentKind, agentNamespace, idleMinutes, ports, environment) + } + if e.bindingKsid(out.NewSessionId) == "" { + t.Fatal("the forked workspace's binding has no kagent session id") + } + if n := e.workspaceOpCount(out.NewSessionId); n != 0 { + t.Fatalf("a fork's workspace needs no create operation; found %d", n) + } +} + +// A fork of a plain session (not every checkpointed session is a workspace) gets no workspace +// row: there is no manifest to copy, and nothing in this change should invent one. +func TestForkOfAPlainSessionGetsNoWorkspaceRow(t *testing.T) { + e := newEnv(t) + id := e.completedSession() + cp := e.mustCheckpoint(id) + + out, err := e.forkCheckpoint(cp.Id, uuid.NewString(), "", false) + if err != nil { + t.Fatal(err) + } + if _, _, _, _, _, _, _, ok := e.workspaceManifest(out.NewSessionId); ok { + t.Fatal("a fork of a non-workspace session should not get a workspace row") + } +} + +// ---- checkpoint delete truthfulness (issue #311) ----------------------------------------------- + +func TestDeleteCheckpointAlreadyGoneIsStill200(t *testing.T) { + e := newEnv(t) + id := e.completedSession() + cp := e.mustCheckpoint(id) + // Deleted directly through kagent, behind Mainloop's back, so the next delete finds it gone. + if err := e.other().DeleteCheckpoint(context.Background(), cp.Id); err != nil { + t.Fatal(err) + } + if _, err := e.API().DeleteCheckpoint(context.Background(), api.DeleteCheckpointRequestObject{CheckpointId: cp.Id}); err != nil { + t.Fatalf("already-gone delete: %v", err) + } +} + +// kagent's BeginDeleteSessionCheckpoint answers NotFound both for a checkpoint that is genuinely +// gone and for one a fork still pins (issue #311). DeleteCheckpoint must not read that NotFound as +// "already gone" without checking: it re-reads the checkpoint, finds it still there, and answers +// 409 naming the pinning fork instead of 200. +func TestDeleteCheckpointStillPinnedByAForkIs409(t *testing.T) { + e := newEnv(t) + id := e.completedSession() + cp := e.mustCheckpoint(id) + forked, err := e.forkCheckpoint(cp.Id, uuid.NewString(), "", false) + if err != nil { + t.Fatal(err) + } + + e.srv.FailNext(kagent.ProcDeleteCheckpoint, kagenttest.Fault{GRPC: codePtr(connect.CodeNotFound)}) + _, err = e.API().DeleteCheckpoint(context.Background(), api.DeleteCheckpointRequestObject{CheckpointId: cp.Id}) + bad, ok := apierr.As(err) + if !ok || bad.Status != 409 { + t.Fatalf("status %v, err %v", bad, err) + } + if !strings.Contains(bad.Message, forked.NewSessionId) { + t.Fatalf("detail does not name the pinning fork %s: %q", forked.NewSessionId, bad.Message) + } + // The checkpoint must still be there: it was never actually deleted. + if _, err := e.API().GetCheckpoint(context.Background(), api.GetCheckpointRequestObject{CheckpointId: cp.Id}); err != nil { + t.Fatalf("checkpoint should still exist: %v", err) + } +} + +// Without a known pinning fork recorded, the 409 still names the reason in general terms. +func TestDeleteCheckpointStillPinnedWithNoKnownForkNamesItGenerically(t *testing.T) { + e := newEnv(t) + id := e.completedSession() + cp := e.mustCheckpoint(id) + + e.srv.FailNext(kagent.ProcDeleteCheckpoint, kagenttest.Fault{GRPC: codePtr(connect.CodeNotFound)}) + _, err := e.API().DeleteCheckpoint(context.Background(), api.DeleteCheckpointRequestObject{CheckpointId: cp.Id}) + bad, ok := apierr.As(err) + if !ok || bad.Status != 409 { + t.Fatalf("status %v, err %v", bad, err) + } + if !strings.Contains(bad.Message, "pinned by a fork") { + t.Fatalf("detail: %q", bad.Message) + } +} diff --git a/server/internal/workspaces/fork_test.go b/server/internal/workspaces/fork_test.go new file mode 100644 index 00000000..7629a809 --- /dev/null +++ b/server/internal/workspaces/fork_test.go @@ -0,0 +1,58 @@ +package workspaces + +import ( + "testing" + + "github.com/oldsj/mainloop/server/internal/kagent" + kagentapi "github.com/oldsj/mainloop/server/third_party/kagentproto/kagent/api/v1alpha1" +) + +// A forked session (checkpoints.go's commitFork, issue #311) inserts a workspace row already +// bound to the kagent Session ForkSession made, with no create operation ever sent: the binding +// is bound at the same time the row is written. This builds that shape directly with SQL, the +// same way the other packages' tests stand in for a collaborator they do not import, since +// checkpoints.go lives in the sessions package and this package's tests do not wire that one in. +func (h *harness) insertBoundWorkspace(id, kagentSessionID string) { + h.t.Helper() + h.exec(`INSERT INTO sessions (id,user_id,title,description,prompt) VALUES ($1,$2,'t','d','p')`, id, owner) + h.exec(`INSERT INTO agent_bindings (session_id,kind,role,mcp_grant_kind,kagent_session_id) VALUES ($1,'claude','agent','none',$2)`, + id, kagentSessionID) + h.exec(`INSERT INTO projects (id,user_id,owner,name,full_name,html_url) VALUES ($1,$2,'o','n','o/n','https://github.com/o/n')`, + "p-"+id, owner) + h.exec(`INSERT INTO workspaces (id,user_id,project_id,repo_url,branch,agent_kind,agent_namespace,agent_name,request_id) + VALUES ($1,$2,$3,'https://github.com/o/n','b','claude','kagent','agent',$4)`, id, owner, "p-"+id, newID()) +} + +// Deleting a fork's workspace deletes its kagent Session through the ordinary workspace delete +// path: the reconciler rule's intent row (workspace_ops) is the same one any delete writes, and +// doDelete finds the Session already bound (sid != "") and deletes it directly, with no create +// replay (there was never a create to replay). +func TestDeleteReleasesAForkedWorkspacesKagentSession(t *testing.T) { + h := newHarness(t, nil) + sess, err := h.client.CreateSession(bg, &kagentapi.CreateSessionRequest{RequestId: newID()}) + if err != nil { + t.Fatal(err) + } + id := newID() + h.insertBoundWorkspace(id, sess.GetId()) + + stop := h.run() + defer stop() + if err := h.svc.Delete(bg, id); err != nil { + t.Fatal(err) + } + if n := h.workspaceCount(); n != 0 { + t.Fatalf("workspace rows remain: %d", n) + } + if n := h.fake.Count(kagent.ProcDeleteSession); n != 1 { + t.Fatalf("delete did not reach kagent: %d calls", n) + } + if len(h.sessions()) != 0 { + t.Fatal("kagent still has the session") + } + // No create was ever sent for this workspace, replayed or otherwise: the only CreateSession + // call in this test is the direct one that stood in for ForkSession above. + if n := h.fake.Count(kagent.ProcCreateSession); n != 1 { + t.Fatalf("delete should not have sent a create of its own: %d calls", n) + } +} From 534bef4b958a0ec6b84ea897bca3bdd7749e1eb1 Mon Sep 17 00:00:00 2001 From: Mainloop agent <12104969+oldsj@users.noreply.github.com> Date: Fri, 23 Oct 2026 02:47:10 +0000 Subject: [PATCH 2/3] Regenerate web API schema for the checkpoint delete description The server-side openapi.yaml description change for DELETE /checkpoints/{id} (#311) needed the generated TypeScript schema regenerated too. Co-Authored-By: Claude Sonnet 5 --- web/src/api/schema.gen.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/web/src/api/schema.gen.ts b/web/src/api/schema.gen.ts index 19b2c3ff..fae2ad05 100644 --- a/web/src/api/schema.gen.ts +++ b/web/src/api/schema.gen.ts @@ -1129,7 +1129,9 @@ export interface paths { /** * Delete Checkpoint * @description **Experimental, owner-only.** Delete a checkpoint, scoped to the owner's own session. One - * that is already gone is not an error. See docs/specs/warm-state.md. + * that is already gone is not an error. One a fork still pins answers 409, naming the + * pinning fork session when it is known, rather than reporting success for a checkpoint that + * still exists (issue #311). See docs/specs/warm-state.md. */ delete: operations['deleteCheckpoint']; options?: never; From 6ca452272f0d6ec980928785dfc4a4a21c7c72f8 Mon Sep 17 00:00:00 2001 From: Mainloop agent <12104969+oldsj@users.noreply.github.com> Date: Fri, 23 Oct 2026 03:01:30 +0000 Subject: [PATCH 3/3] Rerun CI: web job was cancelled, not failed Local tsc -b passes cleanly on the regenerated schema.gen.ts; no web source changed. The "Type check, lint, test, build" check run was cancelled (not failed) after the previous push superseded it. Co-Authored-By: Claude Sonnet 5