The World · a walkable city
The whole estate, as a city you can walk through.
Each family of the estate is a district, and every record is a building you can read. The traffic, the rain and the lit windows follow a clock you can speed up or rewind. This shows 103 records across 5 families.
Prefer the diagram? The orrery view.
Planned with Claude Sonnet 5.5, built entirely with Claude Haiku 5.5, at xhigh effort, for testing.
The walkable city needs WebGL and motion that is not reduced. Every record is listed below.
Walk up to a building to read its card.
- What the shapes mean
- Scheduled jobs
- Taller means it runs more often. Windows flash on a replayed clock; the times are the published cadence, not a live feed.
- Builds
- Height is decoration. Lights are steady.
- Architectures
- Taller means more parts in its diagram. Lights are steady.
- Repositories
- Brighter windows mean a more recent push, as of the last build. Height is decoration.
- Operating stack
- Height follows the count of hooks, skills and subagents; the doctrine building is mid-height.
Sound
Scheduled jobs · 34
- WeeklyClient site archiveCopies a client site's newest nightly snapshot into a private archive each week. (weekly)
- NightlyStatus page nightlyRebuilds the status page’s snapshot, sends it to the page’s server, and commits the day’s token-usage history before its source ages out. (nightly)
- Every few minutesPage taps appliedApplies the taps I make on the Command Center page to my own notes, so a close or snooze on the phone lands in the one record of them. (every few minutes)
- Every few minutesPhone checkChecks that the PC can still reach my phone, re-arms the link after the phone restarts, and reports what it found to the Command Center page. (every few minutes)
- Every few minutesStatus page refreshEvery half hour, gathers what is waiting on me, what it cost, what is broken and what moved, and sends it to my phone page. (every few minutes)
- DailyEncrypted backupTakes an encrypted backup of a private store, so losing this PC does not lose it. (daily)
- NightlyDev server reaperStops local development servers left running on registered ports. (nightly)
- NightlyDocs readingReads the pages of the AI tools’ documentation that changed overnight, checks every quoted finding against the page itself, and leaves what survives for a session to act on; it changes nothing on its own. (nightly)
- MonthlyDrive scrubReads every file stored on the PC’s drive once a month, so a damaged spot is found while the rest of the file can still be saved. (monthly)
- NightlyEstate preserveCommits and pushes every project and this machine’s settings on a clock rather than on a session, so a week without a session is not a week without a backup. (nightly)
- NightlyNightly test tierRuns the slow test tier of every project and reports any failure at the start of the next session. (nightly)
- NightlySite checkCompares this site’s systems pages with this PC each morning and opens a window to publish any change with one click. (nightly)
- Every few minutesMachine watchReads this PC’s health (disk, memory, hangs) and reports anything wrong at the start of the next session, because a machine that is merely unusable logs almost nothing. (every few minutes)
- Every few minutesTraffic log trimKeeps the logged request and response bodies, kept deliberately for studying each new tool version, from filling the disk. (every few minutes)
- NightlyReference sites rebuildRebuilds the two reference sites that map this whole setup, in the one order that is correct, because one reads what the other builds. (nightly)
- NightlyStray process sweepFinds and stops background shell processes nobody is waiting on. (nightly)
- WeeklyDesktop layout auditBacks up and audits the taskbar layout, and speaks up only when something is wrong. (weekly)
- Every few minutesTask agent wakeWakes the task agent when work is waiting for it. (every few minutes)
- Every few minutesAssistant schedule checkWakes the assistant agent when one of its scheduled entries is due. (every few minutes)
- DailyDaily ops digestSends me a summary of what the agents did and what is waiting on me. (daily)
- WeeklyAlerting heartbeatPings me every week whether or not anything broke, so a dead alert channel shows up as a missing ping instead of a missed outage. (weekly)
- Every few minutesWorkload exportExports each agent’s workload numbers into its own repo, where the board reads them. (every few minutes)
- Every few minutesDomain request brokerChecks the agents’ requests to reach new web domains and escalates each one to me for a decision. (every few minutes)
- HourlyAgent tooling updateStages each new release of the agents’ own tooling, tests it, and switches them over only when it passes. (hourly)
- Every few minutesGoal judgeDecides whether a standing goal’s latest run finished or should continue. (every few minutes)
- Every few minutesPetition brokerValidates the agents’ requests for host changes and escalates them; nothing is granted automatically. (every few minutes)
- Every few minutesPoller watchdogRestarts the agents’ chat pollers if they stall. (every few minutes)
- Every few minutesOutbound send gateValidates anything an agent wants to send outside and holds it for my approval. (every few minutes)
- WeeklyProxy log rotationRotates the logs of the proxy that all of the agents’ outbound traffic goes through. (weekly)
- Every few minutesPhone alert watchEvery five minutes, looks for a new red fault, a new question from an agent or something coming back today, and sends one notification for each; quiet overnight except for red faults. (every few minutes)
- DailyMorning summarySends one notification each morning: what is waiting, what it cost, what is broken and what moved, across everything including both agents. (daily)
- Every few minutesAgents status fetchFetches both agents’ own status files so the phone page shows their questions, spend and faults beside everything else. (every few minutes)
- NightlyRepos and job board refreshRefreshes this site’s public repos list every day, and pulls and scores the job board every morning; gates both for anything private, and commits only what changed. (nightly)
- DailyPodcast syncPublishes any new podcast episode to this site after checking its audio and provenance. (daily)
Builds · 51
- AppliedIQ Solutions siteThe business site. Planning leads: the front page opens on supply-chain planning tools built to order for a manufacturer, with the factory demos live on invented data, then Main Street for a local business, where websites and finished tools are sold.
- BOM ExplorerField-qualified BOM search, reverse where-used, multi-level explosion with true per-unit quantities across every usage path. A first version of the tool behind it ran on Abacus.AI in June 2026.
- Production Plan ChurnWeek-over-week production-plan volatility tracker: separates real reschedules from MRP renumbering noise, attributes changes to planner vs system.
- Order Confirmation Command CenterRoots every unconfirmed unit to a cause via first-match-wins waterfall, drills category→cause→line, exports a ranked worklist.
- Past-Due Order TriageFinds past-due production orders faking dependent demand, phantom-scores them, and sorts each into one action with where-used BOM impact. A first version of the tool behind it ran on Abacus.AI in June 2026.
- ASN Update RadarDaily inbound worklist: picks the firmest arrival date per open shipment and sorts each into verify/chase/reschedule/drop. A first version of the tool behind it ran on Abacus.AI in June 2026.
- Staging Triage ConsolePer-bin physical-inventory integrity checks: impossible quantities, offsetting errors that net believable, line-side overstaging. The demo runs on synthetic data; the tool it stands in for reads SAP bin-stock exports and hands a planner the materials worth walking to: stock in the wrong place, a bin that cannot be right, a line position that has not moved in two years, and a quantity falling fast enough to run out before the next delivery. That tool now runs as an Abacus.AI-hosted Next.js + Postgres app whose one analysis engine is shared by the page, a background file parser, the test suite and an independent Python recomputation, and it measures movement by adding up the falls between readings rather than subtracting the endpoints. A first version ran on Abacus.AI in June 2026.
- Parameter Audit ConsoleMRP parameter-governance console: grades five parameters against sourcing-tier × ABC × XYZ targets, dollar exposure on every finding.
- Working identity kit (v3)WORKING_IDENTITY, IDENTITY_PRIMER and DEPLOYMENT_KIT: portable working context kept as three markdown files, reshaped per destination AI by a bridge skill.
- Command CenterOne page on my phone for the whole estate and both of my agents: what's waiting on me, what Claude is costing, what's broken, and what moved. It answers with the laptop shut, sends a summary each morning and an alert only for what will not wait, and since 27 Sep 2026 it is where I act on what is waiting: my own notes, the faults, and the agents' questions. It replaced my desktop console on 25 Sep 2026; the architecture diagrams on this site are exported from its repo, and the console's public template is still available.
- Ian PDF ProCross-platform PDF suite: viewer, page organizer, annotation, forms, OCR. One Tauri codebase shipping to Windows desktop and side-loaded Android.
- bom-workbenchPublic BOM/MRP data toolkit: multi-level BOM explosion with quantity roll-up, where-used lookup, and production-plan churn diff over plain CSV. Ships with fictional demo data.
- Digital business card (/ian-card)Share-only landscape business card: save-contact vCard, tap rows, QR with the iQ mark baked in; noindex for privacy.
- co-implementation-plannerComputes feasible implementation windows per Change Order with binding constraints, stock projection, multi-CO conflict report, readiness deadlines.
- Skill libraryThe full house system: cognitive registers, operational skills, deploy machinery, and versioned skill/tool conventions — one library serving every Claude surface.
- Confirmation OutlookSupply-chain order-confirmation risk service, built end to end: risk as a conditional probability table measured from week-to-week transition history, served over an API and an MCP server, with a React operator console on top. Fictional company, synthetic data.
- ian — terminal AI agentA personal multi-provider CLI coding agent — Claude Code's shape, any model: frontier APIs or free local models behind one terminal UI, with tool use, MCP servers, and a real test suite. In daily use.
- Claude skeleton mapA drillable reference map of the whole Claude Code meta-infrastructure — doctrine, config, hooks, memory, the skills library, plugins and MCP, companion repos, and every dev port. Reads live off disk, so the map cannot go stale on its own.
- Review AutopilotReview-management dashboard for a small business: it pulls reviews into one queue, drafts on-voice replies with AI, and tracks response health. It now runs as an open demo on the AppliedIQ site.
- Confirmation-rate forecasterGenuinely-predictive order-confirmation analytics: forecasts which materials will miss confirmation next week, splits the at-risk book into recoverable vs structural, and hands the operator the specific lever to pull. Backtested across a run of historical weekly snapshots and validated on a held-out week.
- Token metrics pipelineUsage tracking across every Claude session on this PC: a transcript parser keeps durable per-day totals, because Claude Code deletes transcripts after about a month, and the Command Center page's spend figures read them. My agents report their own spend from their own status files. The nightly sync from the remote box and the console view it fed retired in September 2026.
- Headless agent fleetAn always-on agents box running autonomous Claude agents: a coding agent that answers task issues with pull requests, a Telegram personal assistant, and a shared runtime with its own verify harness — work continues while the operator sleeps.
- Claude Code status lineThe terminal status line inside every Claude Code session. It shows only the figures Claude Code hands the status line and no transcript records: the session's cost estimate, lines edited, context used, the cache read in flight and the exact model variant. It keeps a per-session copy of what it receives, which the Claude HUD panel reads; rate limits and cache timing are shown there instead.
- Claude Counter (browser extension)Live meters injected into claude.ai: per-conversation token count (exact when the stream exposes usage, a labeled approximation otherwise), a cache countdown timer, cache hit rate, and unrounded session/weekly usage bars. A modified build of the MIT claude-counter extension — this fork adds adaptive usage capture from the SSE stream, model-aware context limits, image/document token estimates, and a fail-visible badge when the page layout shifts.
- MRP Audit EngineAudits MRP master-data parameters across finished goods and components: ABC×XYZ segmentation drives geography-tiered policy targets (just-in-time through overseas), and every parameter that deviates from policy is flagged for analyst review with the dollar exposure attached. The structured migration of a proven console prototype into a version-controlled, distributable local engine — raw ERP exports never leave the machine. A first version ran on Abacus.AI by June 2026.
- NEXUS operating doctrineThe operating doctrine as infrastructure: one canonical, versioned NEXUS.md (any edit bumps the version) that a session-start hook pulls and mirrors into every Claude Code session — fail-loud, dropping a visible stale marker whenever the sync chain breaks. How the AI operates is governed from a single source of truth instead of drifting per surface.
- Claude Code home (versioned)The entire Claude Code home directory as a maintained, restorable build: session hooks, permission policy, the skill-library mount, the status line, sync scripts and a written migration runbook, auto-committed on a schedule and restored in a weekly rehearsal so the machine's AI setup survives any single computer. The substrate the Claude skeleton map renders.
- Confirmation root-cause consoleRoot-causes every unconfirmed order line in a weekly snapshot: the ERP's nested-IF classification waterfall ported to JavaScript and validated line-for-line against the reference classification, then ranked by cause category — supply, logistics, master data — with drill-down to the individual order. The proof that the classification logic could live outside the spreadsheet; its engine fed the confirmation tools that followed.
- Confirmation-rate trackerThe descriptive ancestor of the forecaster: week-over-week order-confirmation tracking with drill-downs across the usual planning dimensions — served from an embedded snapshot or a fresh workbook drop, no backend anywhere. Its interaction patterns graduated into the predictive build; this is where they were proven.
- Tokenizer — model-selection lensAnswers one question — is the right model doing the right things — by ranking model-and-effort pairs on billed tokens per completed task rather than price per token. It runs no models to score them: it reads measurements already on disk, counts tokens exactly where an exact count is obtainable, and projects burn forward for workloads that have never been run. It re-derives hand-adjudicated benchmark cells from the raw transcripts rather than trusting the earlier judgement, and every guard inside it runs twice — once on input it must accept, once on input it must reject.
- SnipnShareA clipboard that crosses networks: paste on one machine, copy on the other, text or screenshots, both directions, through nothing but a browser. It exists because two machines can share no network, no login and no filesystem while still sharing one channel — ordinary encrypted web requests — so the whole client is a web page. The health endpoint answers publicly; the page, its assets and every data endpoint sit behind an access login, and the origin box accepts no inbound connections at all.
- Favorites ManagerA private speed-dial for the sites actually opened every day: drag-and-drop tiles in named groups, and a batch paste that takes many URLs at once or a title and URL per line. Everything stays in browser storage on the one machine, so there is no account to create, nothing synced and nothing to sign into. It opens from a desktop icon into its own window with no tabs and no address bar, and leaves no console window running behind it.
- MRP parameter recommenderTurns a coverage export into a recommended MRP parameter set per material. Each material is classed by ABC and XYZ from its forward requirements, placed in a lead-time tier, and given one recommended value per field from a days-of-cover policy grid the planner edits rather than a hard-coded rule. Every recommendation carries the sentence that justifies it and the projected effect on average stock carried, so a planner can argue with the number instead of accepting it. Source exports are never committed; the test suite runs against a scrubbed fixture, and stock value reconciles to the cent.
- Requirement projection workbookReads a daily-requirements export and builds the forward projection a planner otherwise retypes by hand: three rows per part for requirement, inbound allocation and stock, running left to right across a date axis at hourly, daily or weekly granularity. Changing the granularity rebuilds the grid in about half a second, down from fifteen, which is the difference between a control that feels broken and one that feels instant. It opens empty every time on purpose and carries nothing between sessions, so a stale figure from yesterday's export can never be mistaken for today's.
- Harness mechanics referenceA reference for every mechanism that changes how a coding agent behaves on one machine, and for the places where two of those mechanisms quietly work against each other. The detail pages are generated from the real configuration rather than written once, and every quoted line points into a manifest carrying a line count and a checksum, so an anchor that has gone stale can be caught instead of trusted. Alongside it sits the recorded output of every check that was actually run, each paired with the control that proves the check could have failed. Notes and verdicts are stored apart from the generated pages so a rebuild cannot lose them.
- Agent InboxAn email inbox for inbound addresses it creates on demand, each with an expiry: mail sent to them is pulled in and kept in the app's own database, and one-time codes and links are lifted out of each message. On any message an assistant writes a summary, lists action items, assigns a category or drafts a reply; it can sort everything still uncategorized in one pass, and answers questions using only the 60 most recent messages. Its sign-in screen became the starting point for the shared sign-in template later builds are copied from.
- Container TrackerKeeps every snapshot of an ocean-container shipping list and compares each new one with the one before it, container by container, recording a change whenever the ETA, vessel, arrival, delivery date, delivery location, shipment type or supplier moves, or a container appears or drops off. A snapshot arrives either by upload or as a spreadsheet attached to an email sent to the app, and both routes run the same pipeline. People subscribe to the containers, vessels or kinds of change they care about and receive an email listing only the changes that match.
- Coverage worklist workbookTurns the SAP stock-coverage report into one list of things to do, ranked by the money each is worth, on six pages each named for the question it answers. The analysis exists twice, as a Python reference and as the VBA port inside the workbook, and the build refuses to finish unless the two agree on 50 figures, stock value to the cent included. It carries SAP's own coverage figure unchanged rather than recomputing it, and judges thin cover against how many of a part's own normal orders are on hand rather than a flat day count, because a part replenished several times a day holds a day of stock by design. Each material sits in exactly one lane so the list never shows a line twice, and statistical outliers are labelled as questions rather than errors.
- Demand Supply DeltaPuts demand against supply by model and ISO week from the two SAP APO exports for one location, on one grid that switches between demand, supply, the difference and the running balance that shows the week a model runs short; any cell opens the orders behind it. Every demand and supply row type is a switch showing its row count, and the four demand types that start switched off are the four the planners' existing report already leaves out, which was measured rather than assumed. A stored pair is shared with everyone who has the link, a private look reads two dropped files in the browser without saving them, and a test proves both paths agree byte for byte. It does not schedule, forecast or write back to SAP.
- ECO TranslatorTurns one engineering change order into the purchased materials it moves, tied to the finished products they feed. A change order names assemblies and configuration records while a planner buys parts, so the tool walks the bill of materials down from every material the order names until it reaches purchased parts, and takes the affected products from the BOM structure rather than from the document, showing the document's own list beside it as a cross-check. It also measures whether the change has already been carried out, and says so when zero purchased parts is the correct answer. Its test run breaks the engine nineteen ways, each one a defect made while building it, and fails if the suite does not notice.
- Production line-levelling workbookReads a production plan and the plants' parts explosions out of SAP, works out whether each line can build what it has been given per shift, per day and per week, moves work to flatten the peaks, and writes four sendable files; nothing goes back into SAP. Everything it does at run time is VBA inside the workbook, because a plant planner has Excel and not Python. The capacity chain and the parts digest are re-derived by a separate Python implementation whose only job is to disagree, and every check has a twin that injects a real fault and refuses to pass unless the check that owns it goes red. A hosted version limited to line levelling and efficiency levers is being built beside it.
- MD04 Bottleneck ToolLoads one part's SAP MD04 export, shows it exactly as SAP did, and lets a planner move, resize, split, add or delete any line while four answers recompute: the first day the balance drops below zero, the receipt the part hinges on, the schedule lines whose pickup passed with no shipping notice, and what to expedite by ocean or by air. The SAP view never changes; a scenario is that view plus an ordered log of edits replayed every time, saved by name and shared. The part hinges on the receipt with the least slack rather than the one whose loss causes the soonest shortage, because ranking by slack names the line a planner actually has to act on. Transit time is read from each export rather than hard-coded.
- MRP Bottleneck CoverageProjects component coverage from four exports — the production plan, the BOM explosion, the supplier schedule with its shipping notices, and stock on hand — by exploding finished-good orders into component demand and rolling each component's balance forward over 60 hourly, daily or weekly periods against starting stock and the inbound quantities backed by shipping notices, to show the first period it goes short. Each component shows requirement, ordered, notice-backed and stock rows side by side, across one plant or several consolidated. A planner can add what-if demand for a finished good, edit cells with undo, and group or filter by procurement type, MRP controller or SKU before exporting to Excel. Ported to Abacus.AI in May 2026.
- Sign-in starterA Next.js app with a working sign-in, copied at the start of a build so no tool writes its own login again; it exists because nine gated apps had each hand-rolled one, in two different styles, and one shipped with no gate file at all. The gate denies every path unless it is named in one list, and a build keeps one of two identity models: shared owner and member passwords with no personal accounts, or one account per person where it matters who did something. Every stored password carries a generation number that the cookie records, so changing a password signs out every earlier session with no session table to clear, and a fresh deployment can be claimed only with a one-time code supplied at deploy time. Tools built directly inside Abacus.AI start from it through a packaged set of house files.
- SKU IDReads one SAP production plan export and answers, for every finished-product SKU in it, which product platform it belongs to and which production line it is planned to run on. The two are kept apart on purpose: platform is what the product is and never changes, line is where it runs and can change every planning cycle, so a product routed onto another platform's line is recorded as a routing rather than given a third platform. Platform is settled from the strongest evidence first — the material number, then a line only one platform uses, then a marking in the production version description — and the production version decides the line. SAP cuts that description at 40 characters, so a rule recovers a marking severed mid-word, and descriptions sitting exactly at the cap are flagged because the export cannot say whether a marking was lost.
- Stock Location Anomaly AlertScans SAP bin-stock exports for where stock is wrong across two warehouses and returns severity-ranked findings under ten rules, among them stock stuck in transient areas, negatives where they cannot physically exist, blocked or aged stock, dead stock, posting errors and production overstaging. Nine rules judge a single bin; overstaging is judged per material and then promoted into the per-bin findings, so every view built on them, from severity cards and heatmap to worst bins and export, carries it. Which storage types count as resting or interim, production or warehouse, is kept as named, editable sets, because that classification is domain judgment that drives every result. The production staging monitor was split out of it to give the staging question its own screen, and it was ported to Abacus.AI in May 2026.
- Track and Trace ConsoleJoins two inbound-logistics exports that never meet, a shipment-line tracking export and a port vessel schedule, keeping the tracking lines as the spine and decorating each with its vessel's berth data, because the two files sit at different grains and a flat merge would lose that. A supplier console groups the lines by supplier with containers and vessels in the collapsed row, and a pulse view measures the lifecycle pipeline, overdue lines whose planned arrival has passed with goods receipt not complete, and pickup-to-receipt lead time on received lines only. It deliberately reports no dwell or delay figure, because the date fields change meaning by lifecycle stage and such a number would be invented rather than measured. Ported to Abacus.AI in June 2026.
- Range-of-coverage change trackerCompares snapshots of the SAP S/4 range-of-coverage export and flags what changed between them, for material planners. It sits behind a password sign-in.
- SupplierIQResearches, scores and compares material suppliers against ten procurement KPIs. Admins and members sign in with separate shared passwords.
- Hot Parts TrackerTracks a team's hot parts across air, sea and land shipments, together with their BOM data and containers. The team signs in with one shared password.
- Planner time trackerRecords how material planners allocate their working time. Each planner signs in to an account of their own.
Architectures · 7
- Command CenterOne page for the whole estate and both agents — what's waiting, what it costs, what's broken, what moved — that I act from as well as read, and that answers with the laptop shut.
- AppliedIQ Solutions — the public faceThe business site for custom small-business software: three doors, live tool demos a visitor can drive, all on Cloudflare's edge.
- Nightly ops — plain code, honest exitA 04:00 scheduled task that builds and pushes the Command Center snapshot, then commits the spend history nothing else can recompute.
- The mirror/bridge deploy pipelineClaude-built tools become deployed full-stack apps through two composable skills — and a repo stays the record for every app that has one.
- The demo boxOne small server, many live demos — a mirror-first deploy contract with zero inbound ports.
- Headless agents — the overnight fleetTwo autonomous Claude agents on a sandboxed box — sealed in containers, walled behind an allowlisted proxy, growing their own capabilities, and one of them holding a real wallet.
- Model routing — the control planeEvery subagent used to inherit the biggest model at the highest reasoning effort, because nothing said otherwise. Three read-only file-mapping agents burned 9.88M cached tokens proving it. What the measurements found next was the opposite of the obvious answer — and the same instrument that justified the project is the one that ended it.
Repositories · 7
- ian-pdf-proA cross-platform PDF suite — viewer, organizer, annotation, forms, and OCR — for Windows and Android. Built on Tauri v2, Rust, and React 19.
- bom-workbenchA zero-dependency Python toolkit for BOM/MRP data work — multi-level BOM explosion, where-used lookup, and production-plan churn analysis over plain CSV, with a typed core, a full pytest suite, and fictional demo data.
- confirmation-outlookA deployed supply-chain risk service, built end to end — a Python engine, a FastAPI backend, an MCP server, and a React operator console in one container. Risk is a conditional probability table of measured week-to-week transition frequencies, validated against a week the engine never saw: no fitted model, and it never claims one. The image generates its own synthetic world at build time and fails 42 assertions rather than ship wrong.
- command-center-os-templateA local-first ops console you run yourself — Next.js, TypeScript, and React 19 over a plain-JSON file database with live SSE and an agent-assignment queue. The de-identified template of the console I ran until September 2026, when one page on my phone replaced it.
- ian-provencher-siteThe public front-end of this very site — a section-registry-driven Astro build that renders reviewed, public-safe snapshots of the real infrastructure I run.
- appliediqsolutions-siteThe public front-end of AppliedIQ Solutions — Astro, React islands, and Tailwind on Cloudflare — with interactive supply-chain tool demos running on fictional data.
- Hermes-Claude-Brain-VaultA drillable C4 architecture diagram of the Hermes second brain as it ran until its shutdown in August 2026, generated straight from its own infrastructure-as-code.
Operating stack · 4
- Hooks59 hooks across 8 events.
- Skills60 skills the workflow can call.
- Subagents5 specialist subagents.
- DoctrineOperating doctrine v52.2.