test(a3): seal integrated discovery drawer evidence
@@ -5,7 +5,7 @@ Owner addendum received 9 November 2026. Source `E:/Storage/Projects/Active/temp
|
||||
| Work package | Next independently eligible slice | Gate or residual requirement |
|
||||
| --- | --- | --- |
|
||||
| Admin information isolation | The original redaction patch passed 62 tests on the security branch. [A3 integration](ADMIN_AUDIT_ISOLATION_VALIDATION.md) matched the exact source/test patch and passed 57 selected tests. The runs overlap and remain separate evidence. | Integrated security, remaining delivery paths, broader minimisation and deployment checks remain separate. |
|
||||
| Discover Jobs | [Search-first layout](visual-correction/DISCOVERY_SEARCH_FIRST.md) moves the query above filters and qualifies the existing NAV request, keyboard submit and source disclosure. | Expose new filters, map and multilingual suggestions only with qualified data and the existing GJ architecture. Mobile filter drawer and focused detail remain open. |
|
||||
| Discover Jobs | [Search-first layout](visual-correction/DISCOVERY_SEARCH_FIRST.md) and [mobile filter drawer](visual-correction/DISCOVERY_MOBILE_FILTERS.md) qualify existing NAV search, retained drafts, keyboard submit, source disclosure and responsive focus. | Expose new filters, map and multilingual suggestions only with qualified data and the existing GJ architecture. Focused detail and broader saved-search browser qualification remain open. |
|
||||
| Applications | [Title-first rows and explicit bulk mode](visual-correction/APPLICATION_SELECTION_REVIEW.md) and [compact row actions](visual-correction/APPLICATION_ACTIONS_REVIEW.md) qualified at 36 configurations each. | Final native/visual review and broader server-backed workflows remain open. |
|
||||
| Admin Users and Audit | [Compact user actions](visual-correction/ADMIN_USER_ACTIONS_REVIEW.md) preserve alignment and read-only 2FA. [Recent audit filtering and details](visual-correction/AUDIT_FILTERS_REVIEW.md) passed its own 36-configuration checks. Additional audit filters remain open. | 2FA recovery and private support access require explicit owner approval of their technical and privacy designs. |
|
||||
| Job Correspondence | Continue inbox layout, mailbox-status presentation and existing explicit consent flow. | Provider verification, restricted scopes, multiple-account persistence and retention decisions retain their gates. Signing in grants no mailbox access. |
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
Applications runtime `bfbfaeb9` consolidates existing row controls into one keyboard menu while preserving selection, status, edit, Trash and Restore. See [application action review](visual-correction/APPLICATION_ACTIONS_REVIEW.md).
|
||||
|
||||
Discovery runtime `4f3541e5` adds the existing mobile filter drawer with 36 controlled configurations and one server-backed keyboard/import case. Application density follow-up `64603f56` passed all four server-backed EN/NB/theme cases. See [drawer review](visual-correction/DISCOVERY_MOBILE_FILTERS.md) and [density verification](visual-correction/APPLICATION_DENSITY_SERVER_REVIEW.md). Broader historical saved-search mobile sequences and final acceptance remain open.
|
||||
|
||||
Admin Users runtime `171a6908` groups existing row actions into one keyboard menu. See [Admin action evidence](visual-correction/ADMIN_USER_ACTIONS_REVIEW.md).
|
||||
|
||||
Audit runtime `cd69b769` combines exact event type and inclusive local dates with recent search and adds keyboard-expandable details for already permitted values. See [Audit filter review](visual-correction/AUDIT_FILTERS_REVIEW.md).
|
||||
|
||||
@@ -6,4 +6,12 @@ At widths up to 1000 px, the existing municipality, source disclosure and saved-
|
||||
|
||||
The initial mobile regression failed three cases against the previous page. The final 28 discovery cases passed, including EN/NB draft/submit/focus, breakpoint transitions, saved-write failure and existing permission, ordering and tracker behaviour. Type-check and scoped lint passed. Raw logs are in `evidence/discovery-mobile-filters/`.
|
||||
|
||||
This package uses the current NAV search contract. New geography, taxonomy, map, providers and data persistence retain their roadmap dependencies. Exported browser, visual and accessibility validation is pending integration. Native-device and final owner acceptance remain open.
|
||||
## Integrated verification
|
||||
|
||||
Integrated source `4f3541e5b85f3d794d8e25f3376e30758b6656c0` passed 67 selected frontend tests in four suites, export/build with TypeScript and full application lint. The verifier and keyboard-test changes additionally passed scoped lint and type-check. The source-only drawer run of 28 tests overlaps the 67 and is not added. The separate rules integration passed 35 backend cases.
|
||||
|
||||
The exported UI passed 36 controlled journeys and 108 axe scans/captures across nine widths from 320 to 1920 px, English/Bokmål and both themes. Checks cover initial presentation, the source disclosure in the open filters, retained municipality/name drafts, Escape focus, original form submission and result focus. The four 320 px language/theme cases also cross to 1024 px and back with the draft intact. There were zero page errors or writes. Company reads were unavailable in all 36 fixture configurations, and Google Fonts was blocked. Pilot coverage overlaps the final matrix. Rendered 320 px Bokmål/dark and desktop screenshots were visually reviewed.
|
||||
|
||||
One server-backed browser case passed using Playwright's isolated SQLite/API and Next development servers. Keyboard navigation reaches the mobile drawer, Enter from municipality searches, results sort and reflow across 375/768/1440 px, and the selected vacancy opens reviewed import. Vacancy and import-preview responses were fixtures. The real local server log includes a cancelled dashboard-preferences request logged as HTTP 500 during navigation. That log remains in the evidence and does not establish a successful response for that cancelled request.
|
||||
|
||||
This package uses the current NAV search contract. New geography, taxonomy, map, providers and data persistence retain their roadmap dependencies. The broader historical phase7 discovery/saved-search browser suites need their mobile sequences reconciled with the drawer and remain unexecuted for this increment. Native-device and final owner acceptance remain open.
|
||||
|
||||
@@ -42,6 +42,8 @@ Owner correction: 3 November 2026. This register extends IM10 and the original 3
|
||||
| V32 | Admin Audit search | The first no-match state clipped its message inside the wide table on phones | RESOLVED in `1a8a97a5` | [Audit search review](AUDIT_SEARCH_REVIEW.md) records the narrow screenshot and fitting feedback. |
|
||||
| V33 | Admin Users actions | Repeated role, reset and delete buttons used most of the action column and phone cards | RESOLVED in `171a6908` | [Admin actions review](ADMIN_USER_ACTIONS_REVIEW.md) covers keyboard menus and final-admin safeguards. |
|
||||
| V34 | Application row actions | Repeated edit, Trash and status controls crowd rows and phone cards | RESOLVED in `bfbfaeb9` | [Application actions review](APPLICATION_ACTIONS_REVIEW.md) covers named keyboard menus, focus, Restore and responsive boundaries. Native and final owner review remain open. |
|
||||
| V35 | Application density | Long custom status squeezes the selected phone title; selected dark listing links fall below AA | RESOLVED in `64603f56` | [Server verification](APPLICATION_DENSITY_SERVER_REVIEW.md) retains failures and all four passing cases. |
|
||||
| V36 | Discovery mobile filters | The full filter and saved-search rail pushes phone results down the page | RESOLVED in `4f3541e5` scoped validation | [Drawer review](DISCOVERY_MOBILE_FILTERS.md) retains draft, form and focus checks. Broader saved-search/native qualification remains open. |
|
||||
|
||||
The owner-approved design foundation remains original A1 dashboard, D1 visual system, B1 tracking, editor left / preview right, application context right, desktop sidebar and hybrid mobile navigation. No controls, imports, revisions, permissions or provider rights may be removed to obtain visual simplicity.
|
||||
|
||||
|
||||
@@ -59,9 +59,9 @@
|
||||
"JobDiscoveryPage"
|
||||
],
|
||||
"visualStatus": "DIVIDED_ROWS_SCOPED_RENDERED_REVIEW",
|
||||
"afterStatus": "PASSED:36 configurations /108 states; saved search synthetic actions only; full discovery-to-track journey remains open; successor discovery-to-tracker36/144 fixture states passed, exactlyone preview andcreate perconfiguration; provider/backend acceptance open",
|
||||
"afterStatus": "PASSED:36 configurations /108 drawer/search states at 4f3541e5 and one isolated server-backed keyboard/import journey. Earlier tracker fixture journey retained. Broader saved-search mobile sequences, provider/backend and final acceptance remain open.",
|
||||
"functionalCriteria": "Original preservation register retained; no capability acceptance promotion",
|
||||
"evidence": "DISCOVERY_SEARCH_FIRST.md; evidence/discovery-search-first/BROWSER.json; earlier DASHBOARD_DISCOVERY.md and DISCOVERY_TRACK_REVIEW.md"
|
||||
"evidence": "DISCOVERY_MOBILE_FILTERS.md; evidence/discovery-mobile-filters/BROWSER.json; earlier DISCOVERY_SEARCH_FIRST.md and DISCOVERY_TRACK_REVIEW.md"
|
||||
},
|
||||
{
|
||||
"route": "/jobs",
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
JobTrackerApi -> C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi\bin\Release\net9.0\JobTrackerApi.dll
|
||||
|
||||
Build succeeded.
|
||||
0 Warning(s)
|
||||
0 Error(s)
|
||||
|
||||
Time Elapsed 00:00:11.51
|
||||
@@ -0,0 +1,37 @@
|
||||
Checking 320/en/light
|
||||
Checking 320/en/dark
|
||||
Checking 320/nb/light
|
||||
Checking 320/nb/dark
|
||||
Checking 360/en/light
|
||||
Checking 360/en/dark
|
||||
Checking 360/nb/light
|
||||
Checking 360/nb/dark
|
||||
Checking 390/en/light
|
||||
Checking 390/en/dark
|
||||
Checking 390/nb/light
|
||||
Checking 390/nb/dark
|
||||
Checking 430/en/light
|
||||
Checking 430/en/dark
|
||||
Checking 430/nb/light
|
||||
Checking 430/nb/dark
|
||||
Checking 768/en/light
|
||||
Checking 768/en/dark
|
||||
Checking 768/nb/light
|
||||
Checking 768/nb/dark
|
||||
Checking 1024/en/light
|
||||
Checking 1024/en/dark
|
||||
Checking 1024/nb/light
|
||||
Checking 1024/nb/dark
|
||||
Checking 1280/en/light
|
||||
Checking 1280/en/dark
|
||||
Checking 1280/nb/light
|
||||
Checking 1280/nb/dark
|
||||
Checking 1440/en/light
|
||||
Checking 1440/en/dark
|
||||
Checking 1440/nb/light
|
||||
Checking 1440/nb/dark
|
||||
Checking 1920/en/light
|
||||
Checking 1920/en/dark
|
||||
Checking 1920/nb/light
|
||||
Checking 1920/nb/dark
|
||||
PASS:36 controlled discovery journeys,108 axe scans/captures,0 intercepted fixture mutations.
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 build
|
||||
> node --max-old-space-size=4096 ./node_modules/next/dist/bin/next build
|
||||
|
||||
▲ Next.js 16.4.1 (Turbopack)
|
||||
✓ Running next.config.js took 40ms
|
||||
|
||||
Creating an optimized production build ...
|
||||
✓ Compiled successfully in 1273ms
|
||||
Running TypeScript ...
|
||||
Finished TypeScript in 13.4s ...
|
||||
Collecting page data using 4 workers ...
|
||||
Generating static pages using 4 workers (0/3) ...
|
||||
✓ Generating static pages using 4 workers (3/3) in 796ms
|
||||
Finalizing page optimization ...
|
||||
|
||||
Route (app)
|
||||
┌ ○ /
|
||||
└ ○ /_not-found
|
||||
|
||||
|
||||
○ (Static) prerendered as static content
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 lint
|
||||
> eslint . --max-warnings=0
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 test
|
||||
> jest --runInBand job-table-density.test.tsx jobs-view-integration.test.tsx workflow-trust-signals.test.tsx job-discovery.test.tsx
|
||||
|
||||
|
||||
Test Suites: 4 passed, 4 total
|
||||
Tests: 67 passed, 67 total
|
||||
Snapshots: 0 total
|
||||
Time: 41.028 s
|
||||
Ran all test suites matching job-table-density.test.tsx|jobs-view-integration.test.tsx|workflow-trust-signals.test.tsx|job-discovery.test.tsx.
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 typecheck
|
||||
> tsc --noEmit --incremental false
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"screens": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "initial",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "filters",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "results",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "initial",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "filters",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"state": "results",
|
||||
"violations": []
|
||||
}
|
||||
],
|
||||
"journeys": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"mobileFilterDraftSubmitAndFocus": "PASS",
|
||||
"breakpoint": "PASS",
|
||||
"providerWrites": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"mobileFilterDraftSubmitAndFocus": "PASS",
|
||||
"breakpoint": "NOT RUN",
|
||||
"providerWrites": "NOT RUN"
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"unexpectedWrites": [],
|
||||
"mockedWrites": [],
|
||||
"previewRequests": [],
|
||||
"unavailableReads": [
|
||||
"/api/companies",
|
||||
"/api/companies"
|
||||
],
|
||||
"blockedExternal": [
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com"
|
||||
],
|
||||
"limits": [
|
||||
"synthetic provider/API fixtures, not live NAV or backend qualification",
|
||||
"no new providers/geography or native/security/release acceptance"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
Checking 320/en/light
|
||||
Checking 1440/en/light
|
||||
PASS:2 controlled discovery journeys,6 axe scans/captures,0 intercepted fixture mutations.
|
||||
@@ -0,0 +1,51 @@
|
||||
[WebServer] Using launch settings from ..\JobTrackerApi\Properties\launchSettings.json...
|
||||
[WebServer] warn: Microsoft.EntityFrameworkCore.Migrations[30200]
|
||||
[WebServer] An operation of type 'SqlOperation' will be attempted while a rebuild of table 'JobApplications' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration.
|
||||
[WebServer] warn: Microsoft.EntityFrameworkCore.Migrations[20410]
|
||||
[WebServer] The migration operation 'PRAGMA foreign_keys = 0;
|
||||
[WebServer] ' from migration 'AddJobEntityAndProspectStages' cannot be executed in a transaction. If the app is terminated or an unrecoverable error occurs while this operation is being executed then the migration will be left in a partially applied state and would need to be reverted manually before it can be applied again. Create a separate migration that contains just this operation.
|
||||
[WebServer] warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
|
||||
[WebServer] No XML encryptor configured. Key {e71cf08c-570a-4953-960f-6601e0b69009} may be persisted to storage in unencrypted form.
|
||||
[WebServer] (node:15984) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||
[WebServer] (node:12592) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||
|
||||
Running 1 test using 1 worker
|
||||
|
||||
(node:33128) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
[WebServer] fail: Microsoft.EntityFrameworkCore.Database.Connection[20004]
|
||||
[WebServer] An error occurred using the connection to database 'main' on server 'C:\Users\Connor\AppData\Local\Temp\jobtracker-e2e-34924-mwbq12w3\jobtracker.db'.
|
||||
[WebServer] fail: JobTrackerApi[0]
|
||||
[WebServer] HTTP GET /api/auth/preferences/dashboard 500 45ms trace=0HNPVNAIL9DFA:00000002
|
||||
[WebServer] System.Threading.Tasks.TaskCanceledException: A task was canceled.
|
||||
[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)
|
||||
[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)
|
||||
[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected)
|
||||
[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
|
||||
[WebServer] at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
|
||||
[WebServer] at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
|
||||
[WebServer] at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
|
||||
[WebServer] at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
|
||||
[WebServer] at JobTrackerApi.Controllers.AuthController.GetDashboardPreference(CancellationToken cancellationToken) in C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi\Controllers\AuthController.cs:line 554
|
||||
[WebServer] at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
|
||||
[WebServer] at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
|
||||
[WebServer] at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
|
||||
[WebServer] at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
|
||||
[WebServer] at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
|
||||
[WebServer] at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
|
||||
[WebServer] --- End of stack trace from previous location ---
|
||||
[WebServer] at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
|
||||
[WebServer] at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
|
||||
[WebServer] at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
|
||||
[WebServer] at JobTrackerApi.Services.SessionContextMiddleware.InvokeAsync(HttpContext context) in C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi\Services\SessionContextMiddleware.cs:line 47
|
||||
[WebServer] at JobTrackerApi.Services.ProEntitlementAuthorizationResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult) in C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi\Services\ProEntitlementAuthorization.cs:line 72
|
||||
[WebServer] at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
|
||||
[WebServer] at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
|
||||
[WebServer] at Program.<>c.<<<Main>$>b__0_19>d.MoveNext() in C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi\Program.cs:line 613
|
||||
[WebServer] --- End of stack trace from previous location ---
|
||||
[WebServer] at Program.<>c__DisplayClass0_0.<<<Main>$>b__18>d.MoveNext() in C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi\Program.cs:line 552
|
||||
ok 1 [chromium] › e2e\job-discovery.spec.ts:21:5 › discovery remains usable across widths and opens the reviewed import (11.7s)
|
||||
|
||||
1 passed (28.9s)
|
||||
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 73 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 73 KiB |
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 95 KiB |
|
After Width: | Height: | Size: 96 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 92 KiB |
|
After Width: | Height: | Size: 95 KiB |