max / makenotwork
18 files changed,
+34 insertions,
-34 deletions
| @@ -134,7 +134,7 @@ Prices won't go up unless infrastructure costs force it. If they ever do, we'll | |||
| 134 | 134 | ||
| 135 | 135 | ### Where Your Money Goes | |
| 136 | 136 | ||
| 137 | - | Surplus from creator tier fees funds, in order: a livable wage for the maintainer, hiring, reserves, and development. *(Planned, not yet implemented.)* The first hires are intended to come through a residency program training people without traditional credentials into full-stack engineers. The goal is graduation, not retention. See [Platform Economics](./economics.md) for the full breakdown. | |
| 137 | + | Surplus from creator tier fees funds, in order: operations and infrastructure (~$580/month today), the founder's wage on a flat pay scale that will apply equally to every resident, residency hires after 1.0 ships, reserves, and platform development. No investors taking dividends, no board taking compensation. The residency trains engineers without traditional credentials into full-stack engineers; the goal is graduation, not retention. See [Team](/team) for who's currently on this and [Platform Economics](./economics.md) for the full financial breakdown. | |
| 138 | 138 | ||
| 139 | 139 | --- | |
| 140 | 140 |
| @@ -86,7 +86,7 @@ Upload any file type (ZIP, DMG, EXE, PDF, images, fonts). Digital items support | |||
| 86 | 86 | ||
| 87 | 87 | ### Blog Posts | |
| 88 | 88 | ||
| 89 | - | Every project includes a blog using the same markdown editor as text items. Posts have draft/publish workflow, appear in the project's RSS feed and data exports, and live in their own tab separate from items. Blog posts are always free -- use them for updates, announcements, liner notes, or changelogs. | |
| 89 | + | Every project includes a blog using the same markdown editor as text items. Posts have draft/publish workflow, appear in the project's RSS feed and data exports, and live in their own tab separate from items. Blog posts are always free. Use them for updates, announcements, liner notes, or changelogs. | |
| 90 | 90 | ||
| 91 | 91 | ## Versions & Chapters | |
| 92 | 92 |
| @@ -62,7 +62,7 @@ Fans who buy first and create accounts later have all purchases automatically at | |||
| 62 | 62 | ||
| 63 | 63 | ## Direct Purchase Links | |
| 64 | 64 | ||
| 65 | - | Every item has a dedicated purchase page at `/buy/{item_id}` -- a clean page with cover art, title, price, and a "Buy Now" button. Use it for link-in-bio, social media posts, email newsletters, and QR codes on physical media. Fans purchase in one step. | |
| 65 | + | Every item has a dedicated purchase page at `/buy/{item_id}`: a clean page with cover art, title, price, and a "Buy Now" button. Use it for link-in-bio, social media posts, email newsletters, and QR codes on physical media. Fans purchase in one step. | |
| 66 | 66 | ||
| 67 | 67 | ## Payment Flow | |
| 68 | 68 |
| @@ -1,6 +1,6 @@ | |||
| 1 | 1 | # Bundles | |
| 2 | 2 | ||
| 3 | - | Sell multiple items together as a single purchase -- a "Complete Discography" pack, a "Starter Kit" with templates, or a "Full Course" combining modules. | |
| 3 | + | Sell multiple items together as a single purchase: a "Complete Discography" pack, a "Starter Kit" with templates, or a "Full Course" combining modules. | |
| 4 | 4 | ||
| 5 | 5 | ## Creating a Bundle | |
| 6 | 6 | ||
| @@ -39,5 +39,5 @@ Items marked as **unlisted** are hidden from your project's main listing but sti | |||
| 39 | 39 | ## See Also | |
| 40 | 40 | ||
| 41 | 41 | - [Items](./items.md): Creating and managing individual items | |
| 42 | - | - [Collections](./collections.md): Curated lists (display-only, not purchasable as a unit) | |
| 42 | + | - [Collections](./collections.md): Lists (display-only, not purchasable as a unit) | |
| 43 | 43 | - [Promo Codes](./promo-codes.md): Discounts on bundles and items |
| @@ -1,6 +1,6 @@ | |||
| 1 | 1 | # Collections | |
| 2 | 2 | ||
| 3 | - | Group items across projects into curated lists -- "Best of" compilations, themed sets, staff picks, or any grouping that cuts across your project structure. | |
| 3 | + | Group items across projects into lists: "Best of" compilations, themed sets, staff picks, or any grouping that cuts across your project structure. | |
| 4 | 4 | ||
| 5 | 5 | ## Creating a Collection | |
| 6 | 6 |
| @@ -40,7 +40,7 @@ Fans can switch from browsing individual items to browsing projects (albums, ser | |||
| 40 | 40 | ||
| 41 | 41 | ## Tags Are Your Main Discoverability Tool | |
| 42 | 42 | ||
| 43 | - | Tags drive how fans browse and filter. The platform maintains a curated tag hierarchy; you pick from existing tags. | |
| 43 | + | Tags drive how fans browse and filter. The platform maintains the tag hierarchy; you pick from existing tags. | |
| 44 | 44 | ||
| 45 | 45 | **Best practices:** | |
| 46 | 46 |
| @@ -6,7 +6,7 @@ Attach reusable audio segments to your items without editing source files. Uploa | |||
| 6 | 6 | ||
| 7 | 7 | 1. Upload a clip to your clip library (separate from the media library) | |
| 8 | 8 | 2. Add that clip to one or more items at a specific position | |
| 9 | - | 3. Fans hear the clips seamlessly during playback, and they can skip if they choose | |
| 9 | + | 3. Fans hear the clips during playback, and they can skip if they choose | |
| 10 | 10 | ||
| 11 | 11 | ## Managing Clips | |
| 12 | 12 |
| @@ -65,7 +65,7 @@ Re-downloads allowed anytime, unlimited. | |||
| 65 | 65 | ||
| 66 | 66 | ### Download Formats | |
| 67 | 67 | ||
| 68 | - | Files are served in their original uploaded format -- no transcoding. To offer multiple formats (e.g., FLAC and MP3), upload them as separate versions of the same item. | |
| 68 | + | Files are served in their original uploaded format. No transcoding. To offer multiple formats (e.g., FLAC and MP3), upload them as separate versions of the same item. | |
| 69 | 69 | ||
| 70 | 70 | ### Album/Project Downloads | |
| 71 | 71 |
| @@ -15,7 +15,7 @@ Your first 15 minutes on Makenot.work, from sign-up to your first published item | |||
| 15 | 15 | ||
| 16 | 16 | **Didn't get the verification email?** Check spam/junk, click "Resend verification" on the login page, or contact support. | |
| 17 | 17 | ||
| 18 | - | Your fan account is ready immediately -- browse, follow creators, and purchase right away. Fan accounts are free. | |
| 18 | + | Your fan account is ready immediately: browse, follow creators, and purchase right away. Fan accounts are free. | |
| 19 | 19 | ||
| 20 | 20 | ## Apply for Creator Access | |
| 21 | 21 | ||
| @@ -60,7 +60,7 @@ Payments go directly to your Stripe account. We never hold or touch your revenue | |||
| 60 | 60 | ||
| 61 | 61 | ## Create Your First Project | |
| 62 | 62 | ||
| 63 | - | Projects organize your work -- albums, podcast feeds, or product lines. | |
| 63 | + | Projects organize your work: albums, podcast feeds, or product lines. | |
| 64 | 64 | ||
| 65 | 65 | 1. From your Dashboard, click **New Project** | |
| 66 | 66 | 2. Enter a **URL name** (e.g., `my-album`, which becomes `/p/my-album`) and a **title** | |
| @@ -125,7 +125,7 @@ Pricing: Pay-what-you-want with a minimum works well for music. Free streaming w | |||
| 125 | 125 | ||
| 126 | 126 | ### Podcasters | |
| 127 | 127 | ||
| 128 | - | One project per show. Audio items for episodes. Your project RSS feed (`/p/project-name/rss`) works as a podcast feed -- submit it to Apple Podcasts, Spotify, etc. Use chapters for timestamp navigation. | |
| 128 | + | One project per show. Audio items for episodes. Your project RSS feed (`/p/project-name/rss`) works as a podcast feed; submit it to Apple Podcasts, Spotify, etc. Use chapters for timestamp navigation. | |
| 129 | 129 | ||
| 130 | 130 | Pricing: Most podcasts are free. Use memberships for bonus episodes or early access. | |
| 131 | 131 | ||
| @@ -169,7 +169,7 @@ After your first publish: | |||
| 169 | 169 | ||
| 170 | 170 | 1. **Fill out your profile.** Bio, avatar, header image, links. See [Profile](./profile.md). | |
| 171 | 171 | 2. **Set up security.** Enable two-factor authentication and save your backup codes. See [Security](../tech/security.md). | |
| 172 | - | 3. **Share your link.** Post your profile URL, project URL, or direct purchase link (`/buy/{item_id}`) wherever your audience is. Purchase links are minimal pages optimized for social media and link-in-bio -- fans buy in one step without an account. You can also [point your own domain](./custom-domains.md) at your profile. | |
| 172 | + | 3. **Share your link.** Post your profile URL, project URL, or direct purchase link (`/buy/{item_id}`) wherever your audience is. Purchase links are minimal pages optimized for social media and link-in-bio; fans buy in one step without an account. You can also [point your own domain](./custom-domains.md) at your profile. | |
| 173 | 173 | 4. **Set up RSS cross-posting.** Connect your RSS feed to social media or newsletter tools. See [RSS](./rss.md). | |
| 174 | 174 | 5. **Fill in metadata.** Good titles, descriptions, tags, and cover art make your content discoverable. See [Metadata](./metadata.md). Per-file size limits depend on your [tier](./tiers.md). | |
| 175 | 175 | 6. **Check your analytics.** Dashboard shows revenue, play counts, downloads, and per-project breakdowns. See [Analytics](./analytics.md). | |
| @@ -180,7 +180,7 @@ After your first publish: | |||
| 180 | 180 | ||
| 181 | 181 | Makenot.work uses [Discovery Through Exploration](./discovery.md#discovery-through-exploration). Fans find your work through search, tags, follows, direct links, RSS, embeds, and mailing lists. Every recommendation traces to a choice the fan made. See [Discovery](./discovery.md) for the full list of channels. | |
| 182 | 182 | ||
| 183 | - | Bring your existing audience. Post your links where your fans already are. The platform handles selling, hosting, delivery, and payments -- the marketing is yours. | |
| 183 | + | Bring your existing audience. Post your links where your fans already are. The platform handles selling, hosting, delivery, and payments; the marketing is yours. | |
| 184 | 184 | ||
| 185 | 185 | ## See Also | |
| 186 | 186 |
| @@ -125,7 +125,7 @@ Cover images appear on item cards, in the audio player, in social media previews | |||
| 125 | 125 | ||
| 126 | 126 | ## File Uploads | |
| 127 | 127 | ||
| 128 | - | Upload files from the item's content tab. Files are stored as-is -- what you upload is what fans download. | |
| 128 | + | Upload files from the item's content tab. Files are stored as-is: what you upload is what fans download. | |
| 129 | 129 | ||
| 130 | 130 | For audio, files also stream in-browser via the built-in player. | |
| 131 | 131 |
| @@ -72,7 +72,7 @@ Paste your published item URL into a group chat or social media post (you can de | |||
| 72 | 72 | ||
| 73 | 73 | We handle the technical SEO automatically: | |
| 74 | 74 | ||
| 75 | - | - **Page titles** follow the pattern: `Item Title — Creator Name | Makenot.work` | |
| 75 | + | - **Page titles** follow the pattern: `Item Title - Creator Name | Makenot.work` | |
| 76 | 76 | - **Meta descriptions** use the first 160 characters of your description, or an auto-generated summary | |
| 77 | 77 | - **Structured data** (JSON-LD) tells search engines this is a product with pricing, enabling rich results | |
| 78 | 78 | - **Canonical URLs** prevent duplicate content issues |
| @@ -226,7 +226,7 @@ Because you cannot export your member list, the entire strategy is building an i | |||
| 226 | 226 | ||
| 227 | 227 | **Sales data:** Download sales reports from your Publisher Admin dashboard. You get dates, product names, quantities, and revenue, but not customer emails. | |
| 228 | 228 | ||
| 229 | - | **Product files:** You should already have your originals (PDFs, maps, art assets). DriveThruRPG has no bulk download, so ensure your local copies are current. | |
| 229 | + | **Product files:** You should already have your originals (PDFs, maps, art assets). DriveThruRPG has no bulk download, so make sure your local copies are current. | |
| 230 | 230 | ||
| 231 | 231 | ### Migration playbook | |
| 232 | 232 |
| @@ -10,7 +10,7 @@ The goal is always to give the creator a real path forward, not to punish. | |||
| 10 | 10 | ||
| 11 | 11 | ## State ladder | |
| 12 | 12 | ||
| 13 | - | Every community sits in one of four states. State changes are reversible — a community can move freely between them. The audit log records every transition with the actor and timestamp. | |
| 13 | + | Every community sits in one of four states. State changes are reversible: a community can move freely between them. The audit log records every transition with the actor and timestamp. | |
| 14 | 14 | ||
| 15 | 15 | ### Active | |
| 16 | 16 | ||
| @@ -24,7 +24,7 @@ Typical trigger: unresolved flags older than ~14 days, or a pattern of reports g | |||
| 24 | 24 | ||
| 25 | 25 | ### Frozen | |
| 26 | 26 | ||
| 27 | - | Read-only for everyone except moderators performing moderation actions. Members cannot post, reply, footnote, or endorse. Mods can clear the backlog, ban bad actors, and remove posts — once the queue is addressed, they unfreeze. | |
| 27 | + | Read-only for everyone except moderators performing moderation actions. Members cannot post, reply, footnote, or endorse. Mods can clear the backlog, ban bad actors, and remove posts. Once the queue is addressed, they unfreeze. | |
| 28 | 28 | ||
| 29 | 29 | Typical trigger: continued inaction after a Restricted period. | |
| 30 | 30 | ||
| @@ -40,7 +40,7 @@ A creator (or platform admin acting on the creator's behalf) can request a clean | |||
| 40 | 40 | ||
| 41 | 41 | After the wipe, a single pinned, locked notice is posted in the first category recording who reset the forum and when. No explanation. No blame. No platform statement. | |
| 42 | 42 | ||
| 43 | - | The clean slate is irreversible at the data level, so the admin UI requires typing the community slug to confirm — the same pattern GitHub uses for repository deletion. | |
| 43 | + | The clean slate is irreversible at the data level, so the admin UI requires typing the community slug to confirm, the same pattern GitHub uses for repository deletion. | |
| 44 | 44 | ||
| 45 | 45 | The creator's account, project, tier, payment history, and fan relationships are untouched by a clean slate. | |
| 46 | 46 | ||
| @@ -59,7 +59,7 @@ State changes and clean slates require either: | |||
| 59 | 59 | - A community **Owner** or **Moderator** acting within that community, or | |
| 60 | 60 | - The **platform admin** acting from the dedicated admin view. | |
| 61 | 61 | ||
| 62 | - | A robust per-permission system is on the roadmap; for now, this two-layer model is what the Multithreaded forum software enforces. | |
| 62 | + | A per-permission system is on the roadmap; for now, this two-layer model is what the Multithreaded forum software enforces. | |
| 63 | 63 | ||
| 64 | 64 | ## Reporting a problem | |
| 65 | 65 |
| @@ -82,7 +82,7 @@ Your revenue flows through your own Stripe connected account. If Stripe suspends | |||
| 82 | 82 | - Keep chargeback rates low (clear product descriptions, visible refund policy) | |
| 83 | 83 | - Contact [Stripe support](https://support.stripe.com) directly for account issues | |
| 84 | 84 | ||
| 85 | - | We have no ability to access, hold, or redirect your funds. This is by design -- your money is always yours, but Stripe is the single point for payment issues. | |
| 85 | + | We have no ability to access, hold, or redirect your funds. This is by design: your money is always yours, but Stripe is the single point for payment issues. | |
| 86 | 86 | ||
| 87 | 87 | If Stripe rejects your account during onboarding, we cannot currently offer an alternative payment processor. We are exploring additional options. If this affects you, contact us at support@makenot.work. | |
| 88 | 88 |
| @@ -21,7 +21,7 @@ Everything in the creator dashboard works in sandbox mode: | |||
| 21 | 21 | - **Membership tiers**: Create tiers with simulated payment details | |
| 22 | 22 | - **License keys**: Configure license key settings and generate keys | |
| 23 | 23 | - **Promo codes**: Create discount and free-access codes | |
| 24 | - | - **Collections**: Group items into curated collections | |
| 24 | + | - **Collections**: Group items into collections | |
| 25 | 25 | - **Custom links**: Add links to your profile | |
| 26 | 26 | - **File uploads**: Upload real files up to 5 MB each (50 MB total) | |
| 27 | 27 | - **Analytics**: View the revenue dashboard and sales charts (with your sandbox data) |
| @@ -18,7 +18,7 @@ Hip-Hop | |||
| 18 | 18 | └── Lo-Fi | |
| 19 | 19 | ``` | |
| 20 | 20 | ||
| 21 | - | When you tag an item, you select from the existing taxonomy using the typeahead search. Tags are curated by the platform to keep the taxonomy clean and consistent. | |
| 21 | + | When you tag an item, you select from the existing taxonomy using the typeahead search. Tags are maintained by the platform to keep the taxonomy clean and consistent. | |
| 22 | 22 | ||
| 23 | 23 | ## Hierarchy | |
| 24 | 24 |
| @@ -2,9 +2,9 @@ | |||
| 2 | 2 | ||
| 3 | 3 | Choose the tier that matches your content. Every tier includes all features from lower tiers. | |
| 4 | 4 | ||
| 5 | - | ## Founder pricing — half off, locked for life | |
| 5 | + | ## Founder pricing: half off, locked for life | |
| 6 | 6 | ||
| 7 | - | We are running a founder window. **Every creator who joins right now pays half the prices below — for the entire life of the account, on any tier.** No renewal-rate surprise, no expiring promo. The founder rate is yours as long as you keep an active creator membership when the window closes. | |
| 7 | + | We are running a founder window. **Every creator who joins right now pays half the prices below, for the entire life of the account, on any tier.** No renewal-rate surprise, no expiring promo. The founder rate is yours as long as you keep an active creator membership when the window closes. | |
| 8 | 8 | ||
| 9 | 9 | | Tier | Founder monthly | Founder annual (10% off) | Eventual sticker | | |
| 10 | 10 | |------|-----------------|--------------------------|------------------| | |
| @@ -13,7 +13,7 @@ We are running a founder window. **Every creator who joins right now pays half t | |||
| 13 | 13 | | **Big Files** | **${{ tiers.founding.big_files }}/mo** | $162/yr | ${{ tiers.standard.big_files }}/mo | | |
| 14 | 14 | | **Everything** | **${{ tiers.founding.everything }}/mo** | $324/yr | ${{ tiers.standard.everything }}/mo | | |
| 15 | 15 | ||
| 16 | - | The window closes when we reach 1,000 creators or when we exit beta — whichever comes first. After that, new signups pay the sticker price. | |
| 16 | + | The window closes when we reach 1,000 creators or when we exit beta, whichever comes first. After that, new signups pay the sticker price. | |
| 17 | 17 | ||
| 18 | 18 | **Why we're doing this:** we are a small, profitable team operating without venture capital. We would rather set a sustainable post-founder price from real signup data than guess at a number we can't easily change later. The sticker prices above are our current upper-bound targets; the founder cohort gets a permanent discount in exchange for taking the chance with us before we have those numbers. If the post-founder price ends up lower, our founders stay below it. | |
| 19 | 19 |
| @@ -4,26 +4,26 @@ Every file uploaded to Makenot.work passes through a six-layer scanning pipeline | |||
| 4 | 4 | ||
| 5 | 5 | ## Why You Still Need Antivirus | |
| 6 | 6 | ||
| 7 | - | Scanning catches known malware and structural red flags. It cannot prove a file is safe. New malware, novel exploits, and targeted attacks can pass every public signature database. Treat platform scanning as one layer of defense, not the only one — keep your own antivirus software running and scan downloads before executing them. If something looks off, report it to [reports@makenot.work](mailto:reports@makenot.work). | |
| 7 | + | Scanning catches known malware and structural red flags. It cannot prove a file is safe. New malware, novel exploits, and targeted attacks can pass every public signature database. Treat platform scanning as one layer of defense, not the only one. Keep your own antivirus software running and scan downloads before executing them. If something looks off, report it to [reports@makenot.work](mailto:reports@makenot.work). | |
| 8 | 8 | ||
| 9 | 9 | ## The Six Layers | |
| 10 | 10 | ||
| 11 | 11 | Every uploaded file runs through all applicable layers. Any layer reporting a definite failure quarantines the file; any layer reporting an error (scanner unreachable, decode failure) holds the file for admin review rather than letting it through. Only files where every applicable layer passes are released to fans. | |
| 12 | 12 | ||
| 13 | 13 | 1. **Content-type verification.** The declared file type is checked against the actual magic bytes. A `.mp3` that's really a Windows executable is rejected here. | |
| 14 | - | 2. **Structural analysis.** For executables and other parseable binaries, the file's structure is inspected for the patterns malware uses to evade naive scanners — suspicious section layouts, unusual entry points, oversized resources. | |
| 14 | + | 2. **Structural analysis.** For executables and other parseable binaries, the file's structure is inspected for the patterns malware uses to evade naive scanners: suspicious section layouts, unusual entry points, oversized resources. | |
| 15 | 15 | 3. **Archive safety.** ZIP and other archive formats are checked for ZIP-bomb ratios, excessive nesting, and uncompressed-size limits before any decompression happens. Archives with nested archives more than one level deep, or with compression ratios above 100×, are rejected. | |
| 16 | 16 | 4. **YARA rules.** A continually updated set of YARA signatures runs against every file. YARA is the standard pattern-matching engine used by malware analysts; it catches families and variants by content, not just exact hashes. | |
| 17 | 17 | 5. **ClamAV.** The same open-source antivirus engine used by mail servers and gateways across the internet. Catches the long tail of known signatures. | |
| 18 | - | 6. **MalwareBazaar hash lookup.** The file's SHA-256 hash is checked against abuse.ch's MalwareBazaar — a public database of confirmed malware samples contributed by security researchers worldwide. Exact-match defense against any sample that's already been seen and classified. | |
| 18 | + | 6. **MalwareBazaar hash lookup.** The file's SHA-256 hash is checked against abuse.ch's MalwareBazaar, a public database of confirmed malware samples contributed by security researchers worldwide. Exact-match defense against any sample that's already been seen and classified. | |
| 19 | 19 | ||
| 20 | 20 | ## Outcomes | |
| 21 | 21 | ||
| 22 | 22 | After scanning, a file lands in one of three states: | |
| 23 | 23 | ||
| 24 | - | - **Clean** — every applicable layer passed. The file is available to download. | |
| 25 | - | - **Quarantined** — at least one layer reported a definite failure. The file is held; the creator is notified and can appeal. Fans never see quarantined files in their library. | |
| 26 | - | - **Held for review** — a scanner couldn't complete (network error, timeout). The file is held and an admin reviews it manually. Files don't slip through during outages — we fail closed. | |
| 24 | + | - **Clean.** Every applicable layer passed. The file is available to download. | |
| 25 | + | - **Quarantined.** At least one layer reported a definite failure. The file is held; the creator is notified and can appeal. Fans never see quarantined files in their library. | |
| 26 | + | - **Held for review.** A scanner couldn't complete (network error, timeout). The file is held and an admin reviews it manually. Files don't slip through during outages; we fail closed. | |
| 27 | 27 | ||
| 28 | 28 | The scan result (which layers ran, which passed, which failed) is recorded for every file. Creators can see the scan status for their own uploads in the dashboard. | |
| 29 | 29 | ||
| @@ -33,7 +33,7 @@ Being honest about the limits: | |||
| 33 | 33 | ||
| 34 | 34 | - **Brand-new malware.** Anything not yet in YARA rules, ClamAV signatures, or MalwareBazaar can slip through. This is why your own antivirus matters. | |
| 35 | 35 | - **Source code with malicious intent.** A script that's "syntactically clean" but designed to delete your files is still a script. Read what you run, especially for plugins and developer tools. | |
| 36 | - | - **Social engineering inside files.** A PDF asking you to disable security warnings, an installer prompting for credentials, a "free key" archive with a `README.txt` telling you to disable antivirus — these are human attacks, not code attacks. Be suspicious. | |
| 36 | + | - **Social engineering inside files.** A PDF asking you to disable security warnings, an installer prompting for credentials, a "free key" archive with a `README.txt` telling you to disable antivirus. These are human attacks, not code attacks. Be suspicious. | |
| 37 | 37 | - **Supply chain attacks on creators.** If a creator's own machine is compromised, malware can be signed and uploaded normally. We try to catch known samples regardless of who uploaded them, but a fresh attack from a compromised account is the hardest case. | |
| 38 | 38 | ||
| 39 | 39 | ## Reporting |